Trasparenza, Glasnost, Transparency

Cifrario matriciale

Data: 25 set 2003


Sito on line dal 2003
Home page
email
Chi sono
Translation
ℐl cifrario che andiamo a vedere è una semplice evoluzione del cifrario di Cesare che si basa sui concetti di algebra lineare e cioè sul calcolo matriciale. Ho tratto l'idea da un articolo di Hacker Journal ma probabilmente queste idee fanno parte dell'introduzione dei testi universitari che parlano di crittografia.

Per cifrare il messaggio che supponiamo in caratteri ascii, lo dividiamo in blocchi di N*N caratteri e lo moltiplichiamo per la matrice A che supponiamo quadrata di ordine N (matrice N*N). Per la decifratura è sufficiente moltiplicare il messaggio cifrato diviso in blocchi di N*N caratteri, per la chiave A-1.

Un teorema ci dice che A è invertibile sse (se e solo se) ha determinante non nullo, un altro teorema ci dice che deve avere determinante pari a ±1 sse vogliamo che A-1 abbia valori interi (cioè matrice a elementi in Z), cosa molto comoda.

Con OCTAVE possiamo fare tutti i calcoli del caso, riporto immediatamente di seguito i comandi direttamente inseribili in Octave per seguire l'esempio. Se scegliamo:

"; ?>

eq 1

A=[1,2;3,5]

il determinante è:

eq 2

det(A)

l'inversa ha quindi valori in Z:

eq 3

inv(A)

supponiamo che il messaggio sia:

M=[1,2,3,4,5,6,7,8,9]

dove per facilità di comprensione del problema possiamo fare corrispondere al numero 1 la lettera a, al numero 2 la lettera b, ecc, quindi M sarà anche:

M=[a,b,c,d,e,f,g,h,i,l]

dividiamolo in vettori di dimensione 2:

eq 4

m1=[1;2]
m2=[3;4]
m3=[5;6]
m4=[7;8]
m5=[9;0]

il messaggio cifrato C sarà:

eq 5

C=[A*m1;A*m2;A*m3;A*m4;A*m5]

che avrà questo codice numerico:

eq 6

ovvero mettendolo in una unica riga:

C = [5  13  11  29  17  45  23  61   9  27]

L'operazione di decifratura è del tutto simmetrica, si scompone il messaggio cifrato C in 5 sotto-messaggi:

eq 7

c1=[05;13]
c2=[11;29]
c3=[17;45]
c4=[23;61]
c5=[09;27]

e si riottiene il messaggio:

eq 8

a=inv(A)
M=[a*c1;a*c2;a*c3;a*c4;a*c5]

e cioè:

M=[1,2,3,4,5,6,7,8,9]
M=[a,b,c,d,e,f,g,h,i,l]

Esistono dei piccoli problemi pratici come ad esempio il caso di messaggi a lunghezza non multipla dell'ordine della matrice scelta, come nel caso mostrato e poi il problema di riportare in codifica ASCII il messaggio cifrato.
Il primo si può risolvere riportando a inizio messaggio la lunghezza del messaggio stesso e aggiungendo nei posti liberi in coda dei caratteri casuali, il secondo si può risolvere esprimendo in base 127 (o quanti sono i caratteri ASCII stampabili) il messaggio oppure utilizzando una compressione che dia una uscita ASCII.

Per quanto riguarda la determinazione di una matrice N*N che abbia determinante unitario si ricade nella teoria delle matrici di SL(N,Z). Se qualcuno è interessato mi posso informare riguardo questa teoria che però a prima vista pare complessa e inoltre non ho trovato funzioni di Octave che le generino. Mi pare di avere capito che vengano anche chiamate matrici monodrome.

Se il problema fosse difficile si può ricorrere alla matematica delle frazioni visto che l'inversa di una matrice a elementi interi è una matrice a elementi frazionari.

Nota: Il cifrario di Cesare ottiene il testo cifrato aumentando di tre il codice ASCII di ogni lettera del messaggio in chiaro, per esempio "cesare" diventa "fhvduh". Corrisponde in pratica a un ROT-3.

𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵

Se siete persone comunicative non dimenticatevi di mettere la vostra opinione: scrivete il commento, premete "Inserisci" e il commento è immediatamente pubblicato: grazie!




lepre veloce



Altri testi sullo stesso argomento li trovate elencati di seguito sotto l'argomento Crittografia

Diaspora* button
-
Facebook button
0
Twitter button
-
Google+ button
0
LinkedIn button
0
TzeTze button
voti: 0
Data: 25 set 2003
Letture di questo articolo: 3267
argomento: Crittografia, articoli: Palladium, DES: Segreto, segretissimo o…quasi, Nozioni di Crittografia

argomento: Matematica, articoli: Filtri Bayesiani, Anonymous Remailer (GnuPG e la posta elettronica), La precisione dei sondaggi, Sondaggi, Informazione di una Password


obiezione respinta logo
Segnalazioni rivolte al mondo femminile ma non solo, delle farmacie, degli ospedali e dei consultori che non rispettano la legge e che non offrono la pillola anticoncezionale, che non fanno IVG, che non danno la RU486, che trattano malissimo la paziente, che non danno la pillola dei 5 giorni dopo magari con la scusa che l'hanno finita. Ma anche le segnalazioni positive di buona sanità, di competenza e attenzione.
Mappa delle segnalazioni.



Firefox: Riprenditi il web




Statistiche Europee d'uso dei browser 23/07/2017 :
Chrome...54%
Firefox..20%
IE.......9%
Safari...6%

Fonte: StatCounter

Borsa valori della moneta Bitcoin (23/07/2017):

prezzo di 1 bitcoin:
2379.57 €
LTC
DRK


Fonte: Bitcoincharts.com

Sostieni Wikileaks!
Se hai qualche bitcoin fai una donazione a wikileaks all'indirizzo:
1HB5XMLmzFVj8ALj6 mfBsbifRoD4miY36v

Queste sono le donazioni fatte fin'ora: 4024 bitcoin.




L'intero sito kensan.it ha avuto questi Share:

facebook: 6586
twitter: -
google+: 61
linkedIn: 0




IL TUO 5 PER MILLE PER GLI OSPEDALI DI EMERGENCY codice fiscale:
971 471 101 55







Ciao Anonimo, commenta questo articolo!

NON ci sono ancora COMMENTI per questo articolo :

commenti abilitati per gli anonimi
Commenti sperimentali
by kensan & Mp
Pubblicità
kensan logo Licenza Creative Commons 3.0
I miei testi sono sotto la Licenza "Creative Commons 3.0 Italia": se sei interessato a pubblicare i miei articoli leggi le note aggiuntive dove troverai anche le attribuzioni dei diritti per tutte le immagini pubblicate.
Questo sito memorizza sul tuo pc uno o più cookie di tipo tecnico, leggi l'informativa estesa.
Kensan geek site

e-mail
e-mail cifrata