Semplice sistema di cifratura
Il sistema di cifratura di Vernam è oggi l’unico sistema a cifratura simmetrica considerato “perfetto”: il problema principale è creare una chiave di cifratura di tipo completamente casuale che sia lunga quanto il messaggio da cifrare . L’altro fondamentale problema è l’invio della chiave (chiave molto lunga) in un canale tipicamente insicuro. Il sistema di Vigenere da cui si è sviluppato quello di Vernam non è considerato un buon algoritmo perché dall’analisi statistica delle lettere del messaggio cifrato (nell’ipotesi di conoscere la lingua del testo originale) è possibile risalire alla chiave di cifratura. Vediamo quindi un semplice meccanismo che potrebbe garantire un buon livello di cifratura dei dati mantenendo un ottimo livello di praticità e di semplicità d’uso.
Utilizziamo l’algebra delle matrici. Usiamo un codice di n lettere (es codice ASCII). Ad ogni lettera del testo da cifrare associamo un numero es a =1, a = 2, ecc e formiamo una matrice quadrata di m righe e m colonne. (m x m). Chiamiamo questa matrice M.
Stabiliamo una matrice numerica C (m x m) che costituisce la chiave di cifratura. Questa matrice può essere così costituita: si sceglie una parola chiave (la lunghezza della chiave può essere variabile) “ mariorossi” e si riporta riga per riga consecutivamente nella matrice C di m righe e m colonne il codice numerico di “mariorossi” rispetto al codice ASCII (lettera per lettera, a = 1, b = 2,…). Questa stringa numerica verrà quindi ripetuta consecutivamente nelle righe e nelle colonne di C a condizione che
det ( C ) <> 1 ovvero che C sia invertibile
Se C non dovesse essere invertibile possiamo ripetere la chiave consecutivamente sulle colonne invece che sulle righe.
Per cifrare il messaggio moltiplichiamo M e C ovvero M x C= A (messaggio cifrato)
Per decifrare il messaggio basta A x C-1 = M (tutti i calcoli vengono fatti normalmente e non in aritmetica modulare) . Chi decifra deve conoscere sia m che la parola chiave per costruire la matrice C.
L’invio della parola chiave da cui si costruisce la matrice C può essere fatto attraverso il sistema dello scambio delle chiavi di Diffie-Helmann.
La potenza di questo sistema sta nel fatto che da A cioè dal messaggio cifrato non è possibile con metodi statistici risalire a C, inoltre è semplice e non richiede una grande potenza di calcolo
Utilizziamo l’algebra delle matrici. Usiamo un codice di n lettere (es codice ASCII). Ad ogni lettera del testo da cifrare associamo un numero es a =1, a = 2, ecc e formiamo una matrice quadrata di m righe e m colonne. (m x m). Chiamiamo questa matrice M.
Stabiliamo una matrice numerica C (m x m) che costituisce la chiave di cifratura. Questa matrice può essere così costituita: si sceglie una parola chiave (la lunghezza della chiave può essere variabile) “ mariorossi” e si riporta riga per riga consecutivamente nella matrice C di m righe e m colonne il codice numerico di “mariorossi” rispetto al codice ASCII (lettera per lettera, a = 1, b = 2,…). Questa stringa numerica verrà quindi ripetuta consecutivamente nelle righe e nelle colonne di C a condizione che
det ( C ) <> 1 ovvero che C sia invertibile
Se C non dovesse essere invertibile possiamo ripetere la chiave consecutivamente sulle colonne invece che sulle righe.
Per cifrare il messaggio moltiplichiamo M e C ovvero M x C= A (messaggio cifrato)
Per decifrare il messaggio basta A x C-1 = M (tutti i calcoli vengono fatti normalmente e non in aritmetica modulare) . Chi decifra deve conoscere sia m che la parola chiave per costruire la matrice C.
L’invio della parola chiave da cui si costruisce la matrice C può essere fatto attraverso il sistema dello scambio delle chiavi di Diffie-Helmann.
La potenza di questo sistema sta nel fatto che da A cioè dal messaggio cifrato non è possibile con metodi statistici risalire a C, inoltre è semplice e non richiede una grande potenza di calcolo
Risposte
Non è molto originale...
Di cifrature del genere ne esistono e se ne possono creare quante se ne vuole...
Mi sembra che ad oggi il metodo più utilizzato, e certamente sicuro, sia il DES (Data Encryption Standard).
Poi il problema vero è lo scambio delle chiavi, brillantemente risolto dal metodo Diffie-Helmann che citi, o (ancora meglio perché più comodo) dal metodo a chiave pubblica e privata di Rivest, Shamil e Adleman, noto come RSA, che è il metodo più usato per connessioni sicure su internet e che si basa sulla difficoltà della scomposizione di un prodotto in fattori primi....
Il pacchetto PGP offre proprio tutto questo.
Insomma niente di nuovo.
Di cifrature del genere ne esistono e se ne possono creare quante se ne vuole...
Mi sembra che ad oggi il metodo più utilizzato, e certamente sicuro, sia il DES (Data Encryption Standard).
Poi il problema vero è lo scambio delle chiavi, brillantemente risolto dal metodo Diffie-Helmann che citi, o (ancora meglio perché più comodo) dal metodo a chiave pubblica e privata di Rivest, Shamil e Adleman, noto come RSA, che è il metodo più usato per connessioni sicure su internet e che si basa sulla difficoltà della scomposizione di un prodotto in fattori primi....
Il pacchetto PGP offre proprio tutto questo.
Insomma niente di nuovo.
A parte che dovresti usare le formule per rendere il tutto più leggibile non comprendo a pieno lo scopo del tuo testo. Comunque non saprei giudicare la sua sicurezza...