Ciphers tradizionali
Nel secondo capitolo, abbiamo discusso i fondamenti della crittografia moderna. Abbiamo equiparato la crittografia a un toolkit in cui varie tecniche crittografiche sono considerate gli strumenti di base. Uno di questi strumenti è Symmetric Key Encryption, dove la chiave utilizzata per la crittografia e la decrittografia è la stessa.
In questo capitolo, discuteremo ulteriormente questa tecnica e le sue applicazioni per sviluppare vari crittosistemi.
Sistemi crittografici precedenti
Prima di procedere oltre, è necessario conoscere alcuni fatti sui crittosistemi storici -
Tutti questi sistemi lo sono based on symmetric key encryption schema.
L'unico servizio di sicurezza fornito da questi sistemi è la riservatezza delle informazioni.
A differenza dei sistemi moderni che sono digitali e trattano i dati come numeri binari, i sistemi precedenti lavoravano sugli alfabeti come elemento di base.
Questi sistemi crittografici precedenti sono anche indicati come cifrari. In generale, un cifrario è semplicemente un insieme di passaggi (un algoritmo) per eseguire sia una crittografia che la corrispondente decrittografia.
Cesare Cipher
È un cifrario mono-alfabetico in cui ogni lettera del testo in chiaro è sostituita da un'altra lettera per formare il testo cifrato. È una forma più semplice di schema di cifratura di sostituzione.
Questo sistema crittografico è generalmente indicato come Shift Cipher. Il concetto è quello di sostituire ogni alfabeto con un altro alfabeto "spostato" da un numero fisso compreso tra 0 e 25.
Per questo tipo di schema, sia il mittente che il destinatario concordano su un "numero di turno segreto" per spostare l'alfabeto. Questo numero compreso tra 0 e 25 diventa la chiave di crittografia.
Il nome "Caesar Cipher" è usato occasionalmente per descrivere il Shift Cipher quando viene utilizzato il "turno di tre".
Processo di Shift Cipher
Per crittografare una lettera di testo in chiaro, il mittente posiziona il righello scorrevole sotto il primo gruppo di lettere di testo in chiaro e lo fa scorrere a SINISTRA in base al numero di posizioni dello spostamento segreto.
La lettera di testo in chiaro viene quindi crittografata nella lettera di testo cifrato sul righello scorrevole sottostante. Il risultato di questo processo è illustrato nella figura seguente per uno spostamento concordato di tre posizioni. In questo caso, il testo in chiaro "tutorial" viene crittografato nel testo cifrato "WXWRULDO". Ecco l'alfabeto del testo cifrato per uno spostamento di 3 -
Alla ricezione del testo cifrato, il ricevente che conosce anche lo spostamento segreto, posiziona il suo righello scorrevole sotto l'alfabeto del testo cifrato e lo fa scorrere a DESTRA in base al numero di turno concordato, 3 in questo caso.
Quindi sostituisce la lettera del testo cifrato con la lettera del testo in chiaro sul righello scorrevole sottostante. Quindi il testo cifrato "WXWRULDO" viene decrittografato in "tutorial". Per decrittografare un messaggio codificato con uno spostamento di 3, generare l'alfabeto di testo normale utilizzando uno spostamento di "-3" come mostrato di seguito:
Valore di sicurezza
Caesar Cipher lo è not a securecryptosystem perché ci sono solo 26 possibili chiavi da provare. Un utente malintenzionato può eseguire una ricerca completa delle chiavi con risorse di elaborazione limitate disponibili.
Semplice sostituzione cifrata
È un miglioramento del Caesar Cipher. Invece di spostare gli alfabeti di un certo numero, questo schema utilizza alcune permutazioni delle lettere dell'alfabeto.
Ad esempio, AB… ..YZ e ZY …… BA sono due ovvie permutazioni di tutte le lettere dell'alfabeto. La permutazione non è altro che un insieme confuso di alfabeti.
Con 26 lettere in alfabeto, le possibili permutazioni sono 26! (Fattoriale di 26) che è uguale a 4x10 26 . Il mittente e il destinatario possono scegliere una qualsiasi di queste possibili permutazioni come alfabeto di testo cifrato. Questa permutazione è la chiave segreta dello schema.
Processo di cifratura a sostituzione semplice
Scrivi gli alfabeti A, B, C, ..., Z in ordine naturale.
Il mittente e il destinatario decidono su una permutazione selezionata casualmente delle lettere dell'alfabeto.
Sotto gli alfabeti dell'ordine naturale, scrivi la permutazione scelta delle lettere dell'alfabeto. Per la crittografia, il mittente sostituisce ogni lettera di testo in chiaro sostituendo la lettera di permutazione che si trova direttamente sotto di essa nella tabella. Questo processo è mostrato nell'illustrazione seguente. In questo esempio, la permutazione scelta è K, D, G, ..., O. Il "punto" di testo normale è crittografato in "MJBXZ".
Ecco un alfabeto cifrato confuso, in cui l'ordine delle lettere del testo cifrato è una chiave.
Alla ricezione del testo cifrato, il ricevente, che conosce anche la permutazione scelta a caso, sostituisce ogni lettera del testo cifrato nella riga inferiore con la lettera del testo in chiaro corrispondente nella riga superiore. Il testo cifrato "MJBXZ" viene decrittografato in "punto".
Valore di sicurezza
Simple Substitution Cipher è un notevole miglioramento rispetto al Caesar Cipher. Il numero possibile di chiavi è elevato (26!) E anche i moderni sistemi informatici non sono ancora abbastanza potenti per lanciare comodamente un attacco di forza bruta per rompere il sistema. Tuttavia, il Simple Substitution Cipher ha un design semplice ed è soggetto a difetti di progettazione, ad esempio scegliendo una permutazione ovvia, questo sistema crittografico può essere facilmente rotto.
Cipher monoalfabetico e polialfabetico
Il cifrario monoalfabetico è un cifrario di sostituzione in cui per una data chiave, l'alfabeto cifrato per ogni alfabeto semplice è fissato durante il processo di cifratura. Ad esempio, se "A" è crittografato come "D", per un numero qualsiasi di occorrenze in quel testo in chiaro, "A" verrà sempre crittografato in "D".
Tutti i cifrari di sostituzione che abbiamo discusso in precedenza in questo capitolo sono monoalfabetici; questi cifrari sono altamente suscettibili alla crittoanalisi.
Polyalphabetic Cipher è un cifrario sostitutivo in cui l'alfabeto cifrato per l'alfabeto semplice può essere diverso in punti diversi durante il processo di crittografia. I prossimi due esempi,playfair and Vigenere Cipher are polyalphabetic ciphers.
Playfair Cipher
In questo schema, le coppie di lettere sono crittografate, invece di singole lettere come nel caso della cifratura a sostituzione semplice.
Nel cifrario playfair, inizialmente viene creata una tabella chiave. La tabella delle chiavi è una griglia 5 × 5 di alfabeti che funge da chiave per crittografare il testo in chiaro. Ciascuno dei 25 alfabeti deve essere unico e una lettera dell'alfabeto (di solito J) viene omessa dalla tabella poiché abbiamo bisogno solo di 25 alfabeti invece di 26. Se il testo in chiaro contiene J, viene sostituito da I.
Il mittente e il destinatario decidono su una chiave particolare, ad esempio "tutorial". In una tabella chiave, il primo carattere (da sinistra a destra) nella tabella è la frase, escluse le lettere duplicate. Il resto della tabella sarà riempito con le restanti lettere dell'alfabeto, in ordine naturale. La tabella chiave risulta essere -
Processo di Playfair Cipher
Innanzitutto, un messaggio di testo normale viene suddiviso in coppie di due lettere (digrafi). Se è presente un numero dispari di lettere, viene aggiunta una Z all'ultima lettera. Supponiamo di voler crittografare il messaggio "nascondi denaro". Sarà scritto come -
HI DE MO NE YZ
Le regole di crittografia sono:
Se entrambe le lettere sono nella stessa colonna, prendi la lettera sotto ciascuna (tornando all'inizio se in basso)
T | U | O | R | io | "H" e "I" sono nella stessa colonna, quindi prendi la lettera sotto di loro per sostituirla. HI → QC |
UN | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
Se entrambe le lettere sono nella stessa riga, prendi la lettera a destra di ciascuna (tornando a sinistra se è più a destra)
T | U | O | R | io | "D" ed "E" sono nella stessa riga, quindi prendi la lettera alla loro destra per sostituirla. DE → EF |
UN | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
Se nessuna delle due regole precedenti è vera, forma un rettangolo con le due lettere e prendi le lettere sull'angolo opposto orizzontale del rettangolo.
Utilizzando queste regole, il risultato della crittografia di "denaro nascosto" con la chiave di "tutorial" sarebbe:
QC EF NU MF ZV
Decifrare il codice Playfair è semplice come eseguire lo stesso processo al contrario. Il destinatario ha la stessa chiave e può creare la stessa tabella di chiavi, quindi decrittografare tutti i messaggi creati utilizzando quella chiave.
Valore di sicurezza
È anche un codice a sostituzione ed è difficile da decifrare rispetto al semplice codice a sostituzione. Come nel caso del cifrario a sostituzione, la crittoanalisi è possibile anche sul cifrario Playfair, tuttavia sarebbe contro 625 possibili coppie di lettere (25x25 alfabeti) invece di 26 diversi possibili alfabeti.
Il codice Playfair è stato utilizzato principalmente per proteggere segreti importanti, ma non critici, poiché è veloce da usare e non richiede attrezzature speciali.
Vigenere Cipher
Questo schema di cifratura utilizza una stringa di testo (ad esempio una parola) come chiave, che viene quindi utilizzata per eseguire una serie di spostamenti sul testo in chiaro.
Ad esempio, supponiamo che la chiave sia "punto". Ogni alfabeto della chiave viene convertito nel rispettivo valore numerico: in questo caso,
p → 16, o → 15, i → 9, n → 14 e t → 20.
Quindi, la chiave è: 16 15 9 14 20.
Processo di Vigenere Cipher
Il mittente e il destinatario decidono una chiave. Dire "punto" è la chiave. La rappresentazione numerica di questa chiave è "16 15 9 14 20".
Il mittente vuole crittografare il messaggio, ad esempio "attacco da sud-est". Disporrà il testo in chiaro e la chiave numerica come segue:
Ora sposta ogni alfabeto di testo in chiaro per il numero scritto sotto di esso per creare testo cifrato come mostrato di seguito -
In questo caso, ogni carattere di testo in chiaro è stato spostato di una quantità diversa e quella quantità è determinata dalla chiave. La chiave deve essere minore o uguale alla dimensione del messaggio.
Per la decrittazione, il destinatario utilizza la stessa chiave e sposta il testo cifrato ricevuto in ordine inverso per ottenere il testo in chiaro.
Valore di sicurezza
Vigenere Cipher è stato progettato modificando il cifrario Caesar standard per ridurre l'efficacia della crittoanalisi sul testo cifrato e rendere un criptosistema più robusto. È significativomore secure than a regular Caesar Cipher.
Nella storia, è stato regolarmente utilizzato per proteggere informazioni politiche e militari sensibili. È stato indicato come ilunbreakable cipher a causa della difficoltà che poneva alla crittoanalisi.
Varianti di Vigenere Cipher
Esistono due casi speciali di cifratura Vigenere:
La lunghezza della parola chiave è la stessa del messaggio di lamentela. Questo caso è chiamatoVernam Cipher. È più sicuro del tipico cifrario Vigenere.
Il cifrario Vigenere diventa un criptosistema con perfetta segretezza, che viene chiamato One-time pad.
One-Time Pad
Le circostanze sono -
- La lunghezza della parola chiave è uguale alla lunghezza del testo in chiaro.
- La parola chiave è una stringa di alfabeti generata casualmente.
- La parola chiave viene utilizzata una sola volta.
Valore di sicurezza
Confrontiamo il cifrario Shift con il pad monouso.
Shift Cipher - Facile da rompere
In caso di cifratura Shift, l'intero messaggio potrebbe aver avuto uno spostamento tra 1 e 25. Questa è una dimensione molto piccola e molto facile da usare per la forza bruta. Tuttavia, con ogni carattere che ora ha il proprio spostamento individuale tra 1 e 26, le possibili chiavi crescono in modo esponenziale per il messaggio.
One-time pad - impossibile da rompere
Diciamo, crittografiamo il nome "punto" con un blocco unico. È un testo di 5 lettere. Per rompere il testo cifrato con la forza bruta, è necessario provare tutte le possibilità di chiavi ed eseguire calcoli per (26 x 26 x 26 x 26 x 26) = 26 5 = 11881376 volte. Questo è per un messaggio con 5 alfabeti. Pertanto, per un messaggio più lungo, il calcolo cresce in modo esponenziale con ogni alfabeto aggiuntivo. Ciò rende computazionalmente impossibile rompere il testo cifrato con la forza bruta.
Transposition Cipher
È un altro tipo di cifratura in cui l'ordine degli alfabeti nel testo in chiaro viene riorganizzato per creare il testo cifrato. Gli alfabeti in chiaro non vengono sostituiti.
Un esempio è un cifrario di "trasposizione colonnare semplice" in cui il testo in chiaro è scritto orizzontalmente con una certa larghezza dell'alfabeto. Quindi il testo cifrato viene letto verticalmente come mostrato.
Ad esempio, il testo in chiaro è "la statua d'oro è nell'undicesima grotta" e la chiave segreta scelta a caso è "cinque". Disponiamo questo testo orizzontalmente nella tabella con il numero di colonne uguale al valore della chiave. Il testo risultante è mostrato di seguito.
Il testo cifrato si ottiene leggendo la colonna verticalmente verso il basso dalla prima all'ultima colonna. Il testo cifrato è "gnuneaoseenvltiltedasehetivc".
Per decrittografare, il ricevitore prepara una tabella simile. Il numero di colonne è uguale al numero di chiave. Il numero di righe si ottiene dividendo il numero di alfabeti di testo cifrato totali per il valore della chiave e arrotondando il quoziente al valore intero successivo.
Il ricevitore quindi scrive il testo cifrato ricevuto verticalmente verso il basso e dalla colonna sinistra a destra. Per ottenere il testo, legge orizzontalmente da sinistra a destra e dall'alto verso il basso.