Come configurare smartphone e PC. Portale informativo
  • casa
  • Sicurezza
  • Criptosistemi di crittografia simmetrica. Crittografia simmetrica

Criptosistemi di crittografia simmetrica. Crittografia simmetrica

Un numero incredibile di affermazioni audaci sulla forma della crittografia asimmetrica è più ripido della crittografia simmetrica, così come il contrario. E spesso i principianti ascoltano queste parole, senza nemmeno capire veramente di cosa stanno parlando. Si dice che AES sia figo o, al contrario, le regole RSA, e tutti l'hanno preso alla lettera. Tuttavia, questo approccio spesso porta a problemi quando, a causa di una comprensione insufficiente dell'essenza del problema, vengono implementate parti completamente non necessarie o il sistema risulta indifeso.

Pertanto, nell'ambito di questo articolo, ti dirò il minimo di base che un principiante dovrebbe conoscere. Non ci saranno formule complicate o giustificazioni matematiche, ma verrà spiegata la differenza tra crittografia simmetrica e asimmetrica, oltre ad alcuni punti essenziali. Ma prima le cose principali.

Crittografia simmetrica

Nella crittografia simmetrica, viene utilizzata una sola password (o come viene anche chiamata chiave). Vediamo come succede tutto. Esiste un algoritmo di crittografia matematica, che viene fornito con una password e un testo come input. L'output è un testo cifrato. Per ottenere il testo originale, viene utilizzata la stessa password, ma con l'algoritmo di decrittazione (a volte può essere lo stesso).

In altre parole, non appena qualcuno scopre questa password, la sicurezza viene immediatamente violata. Pertanto, se si utilizza la crittografia simmetrica, si dovrebbe prestare molta attenzione al problema della creazione e della protezione della password stessa. Non dovrebbe essere trasmesso in chiaro, non importa se si tratta di una rete o di un pezzo di carta attaccato al monitor. La password deve essere sufficientemente complessa da non poter essere ottenuta con semplici attacchi di forza bruta. Se una password viene utilizzata da più persone, è necessario pensare a un metodo sicuro per la sua distribuzione, nonché a un sistema di notifica nel caso in cui la password venga nota a qualcun altro.

Nonostante i suoi limiti, la crittografia simmetrica è molto diffusa. Principalmente a causa della facilità di comprensione dell'intero processo (una password) e del carico tecnico (di solito, tali algoritmi sono veloci).

Crittografia asimmetrica

La crittografia asimmetrica utilizza due password: una aperta (pubblica) e una privata (segreta). La password aperta viene inviata a tutte le persone, mentre la password privata rimane sul lato server o altro destinatario. In questo caso, i nomi sono spesso condizionali, poiché un messaggio crittografato con una delle chiavi può essere decifrato solo con l'aiuto di un'altra chiave. In altre parole, le chiavi sono equivalenti in questo senso.

Tali algoritmi di crittografia consentono di distribuire liberamente la password (chiave) sulla rete, poiché senza la seconda chiave è impossibile ricevere il messaggio originale. Il protocollo SSL si basa su questo principio, che rende facile stabilire una connessione sicura con gli utenti grazie al fatto che la chiave privata (password) è memorizzata solo sul lato server. Se l'hai notato, periodicamente nel browser viene visualizzato un messaggio "connessione non sicura" quando apri un sito con il prefisso https. Ciò significa che è del tutto possibile che la chiave privata sia stata divulgata per molto tempo, dicono che sia stata compromessa ed è nota agli aggressori. Pertanto, una connessione così sicura potrebbe non essere sicura.

Nel caso della crittografia asimmetrica, diventa un po' più semplice in termini di memorizzazione delle password, poiché la chiave segreta non deve essere trasmessa a nessuno. È sufficiente che solo una persona o un server lo sappia. Inoltre, il problema di decifrare la password diventa più semplice, poiché il server in qualsiasi momento può modificare la coppia di chiavi e inviare a tutti la password aperta creata.

Tuttavia, la crittografia asimmetrica è più "pesante", in altre parole, richiede più risorse del computer. Ci sono anche restrizioni sul processo di generazione delle chiavi stesso (devono ancora essere raccolte). Pertanto, in pratica, la crittografia asimmetrica viene solitamente utilizzata solo per autenticare e identificare gli utenti (ad esempio, l'accesso a un sito), o per creare una chiave di sessione per la crittografia simmetrica (una password temporanea per lo scambio di dati tra un utente e un server), oppure per la creazione di firme digitali crittografate con una chiave segreta. Come probabilmente avrai già capito, in quest'ultimo caso chiunque può controllare tale firma utilizzando una chiave pubblica di dominio pubblico.

Punti importanti sulla crittografia simmetrica e asimmetrica

La differenza più importante tra la crittografia simmetrica e asimmetrica è il loro approccio. Pertanto, quando ascolti o leggi un articolo sul loro confronto del tipo "questo algoritmo è migliore" senza menzionare le specifiche (determinate condizioni e compiti), puoi tranquillamente iniziare a fare altre cose, poiché questo è un esercizio molto inutile simile alla controversia "Cosa è meglio? Un carro armato o un piroscafo?". Senza specifiche, né l'uno né l'altro. Tuttavia, ci sono punti importanti di cui essere a conoscenza:

1. L'algoritmo simmetrico è utile per il trasferimento di grandi quantità di dati crittografati. L'algoritmo asimmetrico, a parità di altre condizioni, sarà notevolmente più lento. Inoltre, per organizzare lo scambio di dati secondo un algoritmo asimmetrico, entrambe le parti devono conoscere le chiavi pubblica e privata, oppure devono esistere due di queste coppie (una coppia per ogni lato).

2. La crittografia asimmetrica consente di avviare una connessione sicura senza sforzo da parte dell'utente. L'algoritmo simmetrico presuppone che l'utente debba "scoprire in qualche modo la password". Tuttavia, dovrebbe essere chiaro che nemmeno gli algoritmi asimmetrici forniscono una sicurezza al 100%. Ad esempio, sono suscettibili agli attacchi man-in-the-middle. L'essenza di quest'ultimo è che un computer è installato tra te e il server, che invia la sua chiave pubblica per te e utilizza la chiave pubblica del server per trasferire i dati da te.

3. Dal punto di vista del cracking (compromissione) di una password, l'algoritmo asimmetrico è più semplice, poiché il server deve solo modificare la coppia di chiavi e inviare la chiave pubblica generata. Nel caso della crittografia simmetrica, sorge la domanda su come trasmettere la password successiva. Tuttavia, queste restrizioni vengono aggirate, ad esempio, su entrambi i lati le chiavi vengono costantemente generate secondo lo stesso algoritmo, quindi la domanda diventa mantenere segreto questo algoritmo.

4. Gli algoritmi simmetrici sono generalmente costruiti sulla base di alcuni blocchi con funzioni di trasformazione matematica. Pertanto, è più facile modificare tali algoritmi. Gli algoritmi asimmetrici sono generalmente basati su alcuni problemi matematici, ad esempio. RSA si basa su problemi di elevamento a potenza e modulo. Pertanto, è quasi impossibile o molto difficile modificarli.

5. Gli algoritmi asimmetrici sono solitamente usati insieme a quelli simmetrici. Succede nel modo seguente. Con l'aiuto dell'algoritmo asimmetrico, la chiave di sessione inventata dall'utente viene inviata al server per la crittografia simmetrica, dopodiché lo scambio dei dati avviene secondo l'algoritmo simmetrico. L'ordine può cambiare parzialmente, o la chiave può essere formata in modo leggermente diverso, ma il significato è più o meno lo stesso.

6. La creazione di chiavi sicure (password) negli algoritmi asimmetrici è piuttosto difficile, a differenza degli algoritmi simmetrici, dove è sufficiente generare una chiave secondo le regole per la generazione di password sicure (numeri, lettere, maiuscole, ecc.). Tuttavia, il fatto che solo il server conosca la password segreta rende più semplice mantenere la chiave al sicuro.

I crittosistemi simmetrici sono sistemi in cui viene utilizzata la stessa chiave per crittografare e decrittografare i messaggi (Figura 9.1).

L'intera varietà di sistemi simmetrici si basa sulle seguenti classi di base:

Sostituzioni mono e multialfabetiche;

permutazioni;

cifrari a blocchi;

Gommatura.

sostituzioni

Nelle sostituzioni dirette, ogni carattere nel testo di origine viene sostituito da uno o più caratteri. Una delle importanti sottoclassi di sostituzioni dirette sono sostituzioni monoalfabetiche, in cui si stabilisce una corrispondenza biunivoca tra il segno e i dell'alfabeto originario e il segno corrispondente con j del testo cifrato. Tutti i metodi di sostituzione monoalfabetica possono essere rappresentati come trasformazioni numeriche delle lettere del testo originale, considerate come numeri, secondo la seguente formula:

c ≡ (a * e + s) mod K, (5.1)

dove a è il coefficiente decimale; s è il coefficiente di taglio; e - codice della lettera del testo sorgente; c - il codice della lettera cifrata; K è la lunghezza dell'alfabeto; mod - l'operazione di calcolo del resto della divisione dell'espressione tra parentesi per il modulo K.

Esempio. cifra di Cesare

Considera la crittografia nell'alfabeto, composta da 26 lettere latine e un segno di spazio (rappresenteremo lo spazio con il segno #). Assegniamo il codice 0 al segno #, lettera A - codice 1, B - codice 2, ... lettera Z - codice 26.

Prendi i seguenti parametri: a = 1 s = 2 K = 27

La formula di crittografia assumerà la forma

c ≡ (e + 2) mod 27 (5.2)

Alfabeto di input:

# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Alfabeto di uscita

B C D E F G H I J K L M N O P Q R S T U V W X Y Z # A

(Le lettere si spostano di due posizioni: A-C B-D, ecc.)

Quindi il messaggio originale in forma crittografata sarà simile a questo:

Per la decrittazione (nel caso in cui a = 1) viene utilizzata la seguente formula

e ≡ (K + c - s) mod K (5.3)

Sostituzione multialfabetica semplice cambia in modo sequenziale e ciclico gli alfabeti utilizzati (nel caso precedente era stato utilizzato un alfabeto per la crittografia). In una sostituzione m-alfabetica, il carattere a 1 del messaggio originale viene sostituito con un carattere dell'alfabeto B 1, carattere a 2 - con un carattere dell'alfabeto B 2, ... carattere am - con un carattere dell'alfabeto alfabeto B m, carattere am +1 - con un carattere dell'alfabeto B 1, ecc. .d. L'effetto dell'utilizzo della sostituzione multi-alfabetica è che fornisce il mascheramento delle statistiche di frequenza della lingua di partenza, poiché un particolare carattere dell'alfabeto A viene convertito in diversi caratteri dell'alfabeto cifrato B.

Esempio

Messaggio originale: WE # NEED # SNOW

Chiave: SECURITYSECU

Come chiave è stata scelta la parola SICUREZZA. La parola è scritta sotto il messaggio originale, quando le lettere della chiave sono esaurite, iniziamo a ripetere la parola fino a quando le lettere del messaggio originale si esauriscono. Ogni lettera della chiave (più precisamente, il suo codice) imposterà uno spostamento nell'alfabeto originale per ottenere un carattere crittografato. Come alfabeto, usiamo lettere latine e il segno # invece di uno spazio.

Cifratura chiave originale

(W + S) mod 27 = (23 + 19) mod 27 = 15 → O

(E + E) mod 27 = (5 + 5) mod 27 = 10 → J

(# + C) mod 27 = (0 + 3) mod 27 = 3 → C

Esercizio

Proponiamo come esercizio di comporre la cifratura fino in fondo.

permutazioni

I caratteri nel testo originale possono essere riordinati secondo una certa regola.

Esempio 1. Permutazione lineare

Lascia che il seguente testo sia crittografato:

CARICO #ORANES #BOTTI

Suddividiamo il testo in gruppi di lunghezza, ad esempio 4 caratteri ciascuno:

CARGO ITE # APEL LXIN S # BO CHKAKH

Impostiamo la seguente regola di permutazione: “riordina i raggruppamenti di quattro lettere nell'ordine 1-2-3-4 nell'ordine 3-1-4-2”.

Otteniamo il seguente testo cifrato:

UGRZ EI # T EALP INNS BYO # ACHHK

Commento

Se la lunghezza del messaggio non è un multiplo della lunghezza del gruppo, l'ultimo gruppo viene completato con simboli (ad es. spazi) fino alla lunghezza richiesta.

La registrazione del testo originale e la successiva lettura del testo cifrato possono essere eseguite lungo percorsi diversi di qualche figura geometrica, ad esempio un quadrato o un rettangolo.

Esempio 2... Griglia Cardano

Un reticolo cardano è un cartoncino rettangolare forato, generalmente quadrato, che applicato su un foglio di carta lascia aperte solo alcune delle sue parti. Il numero di righe e colonne è pari. La scheda è realizzata in modo tale che con la sua successiva rotazione, ogni cella del foglio sottostante sarà occupata. Se il reticolo è quadrato, puoi ruotarlo in sequenza attorno al centro del quadrato di 90 °.

Crittografia:

VAVOCHS MUNOTI MUCHSOY MDOSTO YAASNTV

Decodifica il messaggio ruotando la griglia di 90° in senso orario. Scrivi il messaggio nel quadrato riga per riga.

I metodi di sostituzione e permutazione separati non forniscono la forza crittografica richiesta. Pertanto, vengono utilizzati insieme, nonché un metodo additivo. Quando si crittografa con il metodo additivo, all'inizio, il testo originale viene crittografato con il metodo di sostituzione, convertendo ogni lettera in un numero, quindi viene aggiunta una gamma segreta a ciascun numero (vedi sotto) - una sequenza numerica pseudo-casuale.

Cifrari a blocchi

I cifrari a blocchi sono una famiglia di trasformazioni reversibili di blocchi (parti di lunghezza fissa) del testo originale.

Per blocco di N bit si intende una sequenza di zeri e uno di lunghezza N:

x = (x 0, x 1, ... x N -1). (5.5)

x in Z 2, N può essere interpretato come un vettore e come una rappresentazione binaria di un intero

(5.6)

Per cifrario a blocchi intendiamo un elemento

Dove x = (x 0, x 1, ... x N -1), y = (y 0, y 1, ... y N -1)

Sebbene i cifrari a blocchi siano un caso speciale di sostituzioni, dovrebbero essere considerati separatamente, poiché, in primo luogo, la maggior parte dei cifrari simmetrici utilizzati nei sistemi di trasmissione dati sono cifrari a blocchi e, in secondo luogo, i cifrari a blocchi sono più convenienti da descrivere in forma algoritmica, e non come sostituzioni abituali.

Cifrari a flusso

I cifrari a flusso sono una sorta di gioco d'azzardo e convertono il testo in chiaro in testo cifrato un bit alla volta. Un generatore di sequenze di chiavi, a volte chiamato generatore di chiavi in ​​esecuzione, produce una sequenza di bit k 1, k 2, ... k N. Questa sequenza di tasti viene aggiunta modulo 2 ("esclusivo o") con la sequenza di bit del testo originale e 1, e 2, ..., e N:

Sul lato ricevente, il testo cifrato viene aggiunto modulo 2 con una sequenza di tasti identica per ottenere il testo originale:

La robustezza del sistema dipende interamente dalla struttura interna del generatore di sequenze di tasti. Se il generatore produce una sequenza con un breve periodo, la durata del sistema è bassa. Al contrario, se il generatore produce una sequenza infinita di bit veramente casuali, otteniamo un one-time pad con una durata ideale.

I cifrari a flusso sono più adatti per crittografare flussi continui di dati, ad esempio nelle reti di dati.

L'unico metodo esistente era la crittografia simmetrica. La chiave dell'algoritmo deve essere tenuta segreta da entrambe le parti. L'algoritmo di crittografia viene scelto dalle parti prima di avviare lo scambio di messaggi.

YouTube collegiale

    1 / 3

    Informatica. Protezione delle informazioni: crittografia simmetrica. Centro di apprendimento online Foxford

    PGP.01 Comprendere la crittografia asimmetrica

    La cifra di Cesare. Crittografia simmetrica

    Sottotitoli

Informazioni di base

Gli algoritmi di crittografia dei dati sono ampiamente utilizzati nella tecnologia informatica nei sistemi per nascondere informazioni riservate e commerciali dall'uso dannoso da parte di terzi. Il principio principale in loro è la condizione che il trasmettitore e il ricevitore conoscono in anticipo l'algoritmo di crittografia, così come la chiave del messaggio, senza la quale l'informazione è solo un insieme di simboli che non hanno significato.

Esempi classici di tali algoritmi sono algoritmi crittografici simmetrici elencati di seguito:

  • Permutazione semplice
  • Permutazione a chiave singola
  • Doppia permutazione
  • Permutazione "Quadrato magico"

Permutazione semplice

La semplice permutazione senza chiave è uno dei metodi di crittografia più semplici. Il messaggio viene scritto nella tabella colonna per colonna. Dopo che il testo in chiaro è stato scritto in colonne, viene letto riga per riga per formare il testo cifrato. Per utilizzare questo codice, il mittente e il destinatario devono concordare una chiave comune in termini di dimensioni della tabella. La combinazione di lettere in gruppi non è inclusa nella chiave di cifratura e viene utilizzata solo per comodità di scrittura di testo senza significato.

Permutazione a chiave singola

Una tecnica di crittografia più pratica chiamata permutazione a chiave singola è molto simile alla precedente. Differisce solo dal fatto che le colonne della tabella sono riordinate in base a una parola chiave, una frase o un insieme di numeri lunghi quanto una riga della tabella.

Doppia permutazione

Per una maggiore invisibilità, puoi crittografare nuovamente un messaggio che è già stato crittografato. Questa tecnica è nota come doppia permutazione. Per fare ciò, viene selezionata la dimensione della seconda tabella in modo che le lunghezze delle sue righe e colonne differiscano dalle lunghezze della prima tabella. È meglio se sono reciprocamente semplici. Inoltre, le colonne possono essere scambiate nella prima tabella e le righe nella seconda. Infine, puoi riempire la tabella con uno zigzag, un serpente, una spirale o in qualche altro modo. Tali metodi di riempimento della tabella, se non aumentano la forza del codice, rendono il processo di crittografia molto più divertente.

Permutazione "Quadrato magico"

I quadrati magici sono tabelle quadrate con numeri naturali sequenziali da 1 inscritti nelle loro celle, che sommano lo stesso numero per ogni colonna, ogni riga e ogni diagonale. Tali quadrati erano ampiamente usati per inscrivere il testo cifrato secondo la numerazione in essi data. Se poi scrivi il contenuto della tabella riga per riga, la crittografia è stata ottenuta riorganizzando le lettere. A prima vista, sembra che ci siano pochissimi quadrati magici. Tuttavia, il loro numero aumenta molto rapidamente con l'aumento delle dimensioni del quadrato. Quindi, c'è solo un quadrato magico che misura 3 x 3, se non prendi in considerazione le sue rotazioni. Esistono già 880 quadrati magici 4 x 4 e il numero di quadrati magici che misurano 5 x 5 è di circa 250.000. Pertanto, i quadrati magici di grandi dimensioni potrebbero essere una buona base per un sistema di crittografia affidabile dell'epoca, perché l'enumerazione manuale di tutti varianti chiave per questo cifrario era impensabile.

I numeri da 1 a 16 sono stati inscritti in un quadrato 4 per 4. La sua magia consisteva nel fatto che la somma dei numeri in righe, colonne e diagonali complete era uguale allo stesso numero - 34. Questi quadrati sono apparsi per la prima volta in Cina, dove sono stati attribuiti alcuni "poteri magici".

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

La crittografia del quadrato magico è stata eseguita come segue. Ad esempio, devi crittografare la frase: "Vengo oggi". Le lettere di questa frase sono iscritte in sequenza in un quadrato secondo i numeri scritti in esse: la posizione della lettera nella frase corrisponde al numero ordinale. Nelle celle vuote viene inserito un punto.

16. 3 e 2 r 13 giorni
5 secondi 10 e 11 g 8 giorni
9 Do 6 g 7 a 12 circa
4° e 15 i 14 n 1 P

Successivamente, il testo cifrato viene scritto su una riga (la lettura viene eseguita da sinistra a destra, riga per riga):
.irdzegyuSzhaoyanP

Durante la decifratura, il testo si inserisce in un quadrato e il testo in chiaro viene letto in una sequenza di numeri "quadrati magici". Il programma dovrebbe generare "quadrati magici" e selezionare quello richiesto con il tasto. La dimensione del quadrato è superiore a 3x3.

Storia

Requisiti

La completa perdita di tutti i modelli statistici del messaggio originale è un requisito importante per un cifrario simmetrico. Per questo, la cifra deve avere un "effetto valanga" - ci deve essere un forte cambiamento nel blocco di cifratura con una variazione di 1 bit nei dati di input (idealmente, i valori di 1/2 bit del blocco di cifratura dovrebbero modificare).

Anche un requisito importante è la mancanza di linearità (cioè le condizioni f (a) xor f (b) == f (a xor b)), altrimenti viene facilitata l'applicazione della crittoanalisi differenziale al cifrario.

Schema generale

Attualmente i cifrari simmetrici sono:

  • cifrari a blocchi. L'informazione viene elaborata in blocchi di una certa lunghezza (solitamente 64, 128 bit), applicando una chiave al blocco in un ordine prescritto, di norma, diversi cicli di mescolamento e sostituzione, detti round. Il risultato di cicli ripetuti è un effetto valanga, una crescente perdita di corrispondenza di bit tra blocchi di dati aperti e crittografati.
  • cifrari a flusso, in cui la crittografia viene eseguita su ogni bit o byte del testo originale (semplice) utilizzando la gamma. Un cifrario a flusso può essere facilmente creato sulla base di un cifrario a blocchi (ad esempio, GOST 28147-89 in modalità gamma), lanciato in una modalità speciale.

La maggior parte dei cifrari simmetrici usa una complessa combinazione di molte sostituzioni e permutazioni. Molti di questi codici vengono eseguiti in diversi passaggi (a volte fino a 80), utilizzando una "chiave di accesso" a ogni passaggio. L'insieme di "chiavi di accesso" per tutti i passaggi è chiamato "programma chiavi". Di norma, viene creato da una chiave eseguendo determinate operazioni su di essa, comprese permutazioni e sostituzioni.

Il modo tipico per costruire algoritmi di crittografia simmetrica è la rete Feistel. L'algoritmo costruisce uno schema di crittografia basato sulla funzione F (D, K), dove D è un dato grande la metà del blocco di crittografia e K è la "chiave di accesso" per questo passaggio. Non è necessario che una funzione sia reversibile: la sua funzione inversa potrebbe non essere nota. I vantaggi della rete Feistel sono che la decrittazione e la crittografia coincidono quasi completamente (l'unica differenza è l'ordine inverso delle "passkey" nella pianificazione), il che facilita notevolmente l'implementazione dell'hardware.

L'operazione di permutazione rimescola i bit del messaggio secondo una certa legge. Nelle implementazioni hardware, è banalmente implementato come wire entanglement. Sono le operazioni di permutazione che permettono di ottenere "l'effetto valanga". L'operazione di permutazione è lineare - f (a) xor f (b) == f (a xor b)

Le operazioni di sostituzione vengono eseguite sostituendo il valore di una parte del messaggio (spesso 4, 6 o 8 bit) con un altro numero standard e codificato nell'algoritmo accedendo a un array costante. L'operazione di sostituzione introduce la non linearità nell'algoritmo.

Spesso, la robustezza di un algoritmo, soprattutto nei confronti della crittoanalisi differenziale, dipende dalla scelta dei valori nelle tabelle di ricerca (S-box). Come minimo, la presenza di elementi fissi S (x) = x è considerata indesiderabile, così come l'assenza di influenza di alcuni bit del byte di input su alcuni bit del risultato, ovvero i casi in cui il bit del risultato è il uguale per tutte le coppie di parole di ingresso che differiscono solo in questo bit...

Parametri dell'algoritmo

Esistono molti (almeno due dozzine) algoritmi di cifratura simmetrica, i cui parametri essenziali sono:

  • lunghezza della chiave
  • numero di round
  • lunghezza del blocco elaborato
  • complessità dell'implementazione hardware/software
  • complessità della conversione

Tipi di cifrari simmetrici

Cifrari a blocchi

  • AES (Advanced Encryption Standard) - Standard di crittografia americano

L'algoritmo deve essere tenuto segreto da entrambe le parti. L'algoritmo di crittografia viene scelto dalle parti prima di avviare lo scambio di messaggi.

Comunicazione segreta basata su un crittosistema simmetrico.

Per l'organizzazione della comunicazione segreta, vengono tradizionalmente utilizzati sistemi di cifratura simmetrici. Gli Attori "regolari" di tali protocolli di comunicazione segreti sono il mittente, il destinatario e l'intermediario che fornisce le chiavi agli utenti. Per affrontare i problemi di sicurezza delle informazioni, aggiungi a questo elenco di partecipanti "non standard": un trasgressore passivo e attivo. Il compito del protocollo è trasmettere un messaggio segreto x dal mittente al destinatario. La sequenza delle azioni è la seguente:
1. Il mittente e il destinatario si accordano sul sistema di cifratura simmetrica da utilizzare, es. sulla famiglia di mappature E = (), kK.
2. Il mittente e il destinatario si accordano su una chiave di comunicazione segreta k, ad es. sulla mappatura utilizzata E.
3. Il mittente crittografa il testo in chiaro x utilizzando il display, ad es. crea un crittogramma y = (x).
4. Il crittogramma y viene trasmesso sulla linea di comunicazione al destinatario.
5. Il destinatario decifra il crittogramma y utilizzando la stessa chiave k e la mappatura ^ (- 1) inversa a Ek e legge il messaggio x = ^ (- 1) (y).
Il passaggio 2 del protocollo è implementato con l'aiuto di un intermediario, una terza parte, che può essere convenzionalmente chiamata centro di generazione e distribuzione di chiavi (CGC) (alcuni protocolli di comunicazione segreti basati su sistemi di cifratura asimmetrica non utilizzano un intermediario, in essi Le funzioni CGC sono eseguite dagli utenti).
Caratteristica essenziale del protocollo è la segretezza della chiave k, che viene trasmessa al mittente e al destinatario o in forma chiara tramite un canale di comunicazione protetto dalle azioni di un crittoanalista, oppure in forma crittografata tramite un canale di comunicazione aperto. Un canale sicuro può avere una larghezza di banda relativamente bassa, ma deve proteggere in modo affidabile le informazioni chiave da accessi non autorizzati. La chiave k deve rimanere segreta prima, durante e dopo l'implementazione del protocollo, altrimenti l'intruso, avendo acquisito la chiave, può decifrare il crittogramma e leggere il messaggio. Il mittente e il destinatario possono eseguire pubblicamente il passaggio 1 del protocollo (la segretezza del sistema di cifratura è facoltativa), ma devono eseguire il passaggio 2 in segreto (è richiesta la segretezza della chiave).
Ciò è dovuto al fatto che le linee di comunicazione, specialmente quelle lunghe, sono vulnerabili dal punto di vista dell'interferenza da parte di intrusi passivi e attivi. Un intruso passivo (crittoanalista), che desidera accedere al messaggio x, monitora la linea di comunicazione al passo 4 del protocollo. Senza interferire con l'implementazione del protocollo, intercetta il crittogramma y per rivelare il cifrario.

Crittoanalisi di un crittosistema simmetrico.

Quando sviluppa un sistema di cifratura, un crittografo di solito parte dai seguenti presupposti sulle capacità di un crittoanalista:
1. Il crittanalista controlla la linea di comunicazione.
2. Il crittanalista conosce la struttura della famiglia E delle mappature cifrate.
3. Il crittanalista non conosce la chiave k, es. la mappatura utilizzata per ottenere il crittogramma y è sconosciuta.
In queste condizioni, il crittanalista cerca di risolvere i seguenti problemi, detti problemi di decrittazione.
1. Determinare il testo in chiaro x e la chiave utilizzata k dal crittogramma intercettato y, ad es. costruire un algoritmo di decrittazione  tale che  (y) = (x, k). Questa formulazione del problema presuppone che il crittoanalista utilizzi le proprietà statistiche del testo in chiaro.
2. Determinare la chiave utilizzata k dal testo aperto e cifrato noto, ad es. costruire un algoritmo di decrittazione tale che (x, y) = k. Questa formulazione del problema ha senso quando un crittoanalista ha intercettato più crittogrammi ottenuti con la chiave k, e non ha testi aperti per tutti i crittogrammi intercettati. In questo caso, dopo aver risolto il problema della decrittazione del secondo tipo, "leggerà" tutto il testo in chiaro crittografato utilizzando la chiave k.
3. Determinare la chiave k utilizzata dal testo in chiaro appositamente selezionato x e il corrispondente testo cifrato y, ad es. costruire un algoritmo di decrittazione x tale che x (y) = k. Una formulazione simile del problema sorge quando un crittoanalista ha la capacità di testare un crittosistema, ad es. generando un crittogramma per un testo in chiaro appositamente abbinato. Più spesso, questa formulazione del problema si pone nell'analisi di sistemi asimmetrici. esiste una variazione su questo problema di decrittazione in cui viene utilizzato un testo cifrato appositamente selezionato.
Per risolvere i problemi di decrittazione, un crittoanalista utilizza un messaggio crittografato y, o una coppia (x, y) costituita da messaggi aperti e crittografati, o un insieme di tali messaggi o coppie di messaggi. Questi messaggi o set di messaggi sono chiamati materiale cifrato. La quantità di materiale cifrato utilizzato per la decrittazione è la lunghezza di questi messaggi o la lunghezza totale di un insieme di messaggi. La quantità di materiale cifrato è una caratteristica importante del metodo di decrittazione. La distanza di unicità della cifratura è il numero minimo di caratteri del testo cifrato necessari per determinare in modo univoco la chiave. In molti casi pratici, è uguale alla lunghezza della chiave, se la chiave e il crittogramma sono parole di alfabeti ugualmente potenti. Con la stessa quantità di materiale cifrato, i compiti di decrittazione del primo tipo si distinguono per una maggiore complessità computazionale rispetto ai compiti del secondo e del terzo tipo; i compiti di test hanno la minore complessità computazionale.
In alcuni casi, un crittoanalista può risolvere il problema di ricostruire una famiglia E di mappature cifrate da una coppia nota (x, y) di testo semplice e cifrato, utilizzando alcune condizioni aggiuntive. Questo compito può essere formulato come "decrittografia della scatola nera" utilizzando input noti e output corrispondenti.
Un intruso attivo viola l'implementazione del protocollo. Può interrompere la connessione al punto 4, ritenendo che il mittente non potrà più comunicare al destinatario. Può anche intercettare il messaggio e sostituirlo con il suo. Se un intruso attivo scoprisse la chiave (controllando il passaggio 2 o penetrando nel crittosistema), potrebbe crittografare il suo messaggio e inviarlo al destinatario al posto del messaggio intercettato, il che non susciterebbe alcun sospetto in quest'ultimo. Senza conoscere la chiave, un intruso attivo può creare solo un crittogramma casuale, che dopo la decrittazione apparirà come una sequenza casuale.

Requisiti del protocollo.

Il protocollo considerato assume la fiducia del mittente, del destinatario e del terzo rappresentato dalla CGRK. Questo è un punto debole di questo protocollo. Tuttavia, non ci sono garanzie assolute sull'impeccabilità di questo o quel protocollo, poiché l'attuazione di qualsiasi protocollo è associata alla partecipazione delle persone e dipende, in particolare, dalle qualifiche e dall'affidabilità del personale. Pertanto, le seguenti conclusioni possono essere tratte dall'organizzazione della comunicazione segreta utilizzando un crittosistema simmetrico.
1. Il protocollo dovrebbe proteggere il testo in chiaro e la chiave dall'accesso non autorizzato da parte di una persona non autorizzata in tutte le fasi del trasferimento delle informazioni dalla fonte al destinatario dei messaggi. La segretezza di una chiave è più importante della segretezza di diversi messaggi crittografati con questa chiave. Se la chiave è compromessa (rubata, indovinata, rivelata, riscattata), l'intruso che possiede la chiave può decrittare tutti i messaggi crittografati su questa chiave. Inoltre, l'intruso sarà in grado di imitare una delle parti negoziali e generare messaggi falsi al fine di fuorviare l'altra parte. Con frequenti cambi di chiave, questo problema è ridotto al minimo.
2. Il protocollo non dovrebbe consentire l'ingresso di informazioni "non necessarie" nella linea di comunicazione, che fornisce al crittoanalista dell'avversario ulteriori possibilità per decifrare i crittogrammi. Il protocollo dovrebbe proteggere le informazioni non solo dagli estranei, ma anche dall'inganno reciproco degli attori del protocollo.
3. Se assumiamo che ogni coppia di utenti della rete di comunicazione utilizzi una chiave separata, il numero di chiavi richieste è n * (n-1) / 2 per n utenti. Ciò significa che per n grandi, la generazione, l'archiviazione e la distribuzione delle chiavi diventa un problema che richiede tempo.

Concetto di crittografia

La crittografia è un metodo di trasformazione delle informazioni, utilizzato per memorizzare informazioni importanti in fonti inaffidabili o trasmetterle su canali di comunicazione non sicuri. Secondo GOST 28147-89, la crittografia è il processo di crittografia o decrittografia.

Una chiave di crittografia è un'informazione segreta utilizzata da un algoritmo crittografico per crittografare/decrittografare i messaggi. Quando si utilizza lo stesso algoritmo, il risultato della crittografia dipende dalla chiave. La lunghezza della chiave è la caratteristica principale della forza crittografica e viene misurata in bit.

A seconda della struttura delle chiavi utilizzate, i metodi di crittografia si suddividono nelle seguenti tipologie:

· Crittografia simmetrica: la stessa chiave viene utilizzata per crittografia e decrittografia;

· Crittografia asimmetrica: una chiave (pubblica) viene utilizzata per la crittografia e un'altra (privata, segreta) per la decrittografia. Questo tipo di crittografia è anche chiamato crittografia a chiave pubblica.

Diversi tipi di crittografia hanno diversi punti di forza crittografici.

La crittografia simmetrica è un metodo di crittografia che utilizza la stessa chiave crittografica per la crittografia e la decrittografia. La chiave dell'algoritmo deve essere tenuta segreta sia dal mittente che dal destinatario del messaggio. La chiave dell'algoritmo viene scelta dalle parti prima di avviare lo scambio di messaggi.

I cifrari simmetrici sono dei seguenti tipi:

· Cifrari a blocchi. L'informazione viene elaborata in blocchi di una certa lunghezza (64, 128 bit, ecc.), applicando la chiave al blocco nell'ordine prescritto, solitamente mediante più cicli di miscelazione e sostituzione, detti round. Il risultato della ripetizione dei round è un effetto valanga ¾ una crescente perdita di corrispondenza di bit tra blocchi di dati aperti e crittografati.

· Cifrari a flusso, in cui la crittografia viene eseguita su ogni bit o byte del testo originale (semplice) utilizzando la gamma. Un cifrario a flusso può essere facilmente creato sulla base di un cifrario a blocchi (ad esempio, GOST 28147-89 in modalità gamma), lanciato in una modalità speciale. Gamma è il processo di "sovrapposizione" di una sequenza specifica (sequenza gamma) su un testo normale. Ad esempio, può essere un'operazione OR esclusiva. Durante la decrittografia, l'operazione viene ripetuta, il risultato è un testo normale.

Parametri dell'algoritmo di crittografia: forza, lunghezza della chiave, numero di round, lunghezza del blocco elaborato, complessità dell'implementazione hardware/software.

Esempi di algoritmi simmetrici: DES (Data Encryption Standard), GOST 28147-89.

Confronto con la crittografia asimmetrica:



vantaggi:

· Velocità (secondo la crittografia applicata - 3 ordini di grandezza in più);

· Facilità di implementazione (grazie a operazioni più semplici);

· Lunghezza chiave richiesta più corta per una durata comparabile;

· Conoscenza (dovuta alla maggiore età).

Screpolatura:

· La complessità della gestione delle chiavi in ​​una rete di grandi dimensioni. Si riferisce all'aumento quadratico del numero di coppie di chiavi da generare, trasmettere, archiviare e distruggere sulla rete. Per una rete di 10 abbonati sono necessarie 45 chiavi, per 100 già 4950, per 1000 - 499500, ecc.;

· Complessità dello scambio di chiavi. Per utilizzarlo, è necessario risolvere il problema del trasferimento affidabile della chiave a ciascun abbonato, poiché è necessario un canale segreto per trasferire ciascuna chiave a entrambe le parti.

Per compensare le carenze della crittografia simmetrica, è attualmente ampiamente utilizzato uno schema crittografico combinato (ibrido), in base al quale la crittografia asimmetrica viene utilizzata per trasmettere chiave di sessione utilizzato dalle parti per scambiare dati utilizzando la crittografia simmetrica.

Una proprietà importante dei cifrari simmetrici è l'impossibilità di usarli per confermare la paternità, poiché la chiave è nota a ciascuna parte.

Principali articoli correlati