Come configurare smartphone e PC. Portale informativo
  • casa
  • Sicurezza
  • Tipi di crittografia. Che cos'è la crittografia dei dati? Crittografia WiFi - informazioni generali

Tipi di crittografia. Che cos'è la crittografia dei dati? Crittografia WiFi - informazioni generali

  1. La crittografia avviene su entrambi i lati. Dopotutto, se solo una parte (ad esempio, solo il server) esegue la crittografia, il traffico dall'altra parte (dal client) non verrà crittografato. Può essere ascoltato o addirittura modificato.
  2. Formalmente, nessuno dà la chiave a nessuno. Nel protocollo TLS, il client e il server devono generare un segreto condiviso, un insieme di 48 byte. Quindi il client e il server calcolano le chiavi in ​​base al segreto condiviso: la chiave di crittografia del client e la chiave di crittografia del server. La procedura per calcolare le chiavi da un segreto condiviso è standard ed è specificata nella descrizione protocollo TLS. Il server e il client conoscono 2 chiavi di crittografia, crittografano con una e decrittografano con la seconda. E ora la cosa più interessante è come il client e il server calcolano il segreto condiviso. Dipende dalla suite di cifratura scelta:

    • TLS_RSA_CON_: dentro questo caso il client stesso crea un segreto condiviso generando 48 byte casuali. Quindi li crittografa utilizzando la chiave RSA pubblica trovata nel certificato del server. Il server riceve i dati crittografati e li decrittografa utilizzando la chiave RSA privata. Questo schema utilizzato raramente.
    • TLS_DHE_RSA_/TLS_ECDHE_RSA_/TLS_ECDHE_ECDSA_: utilizza lo schema crittografico Diffie-Hellman (DHE) o la sua versione a curva ellittica (ECDHE). L'essenza dello schema è la seguente: il server e il client generano casuali grandi numeri(chiavi private), calcolare altri numeri in base ad essi (chiavi pubbliche) e inviarli l'un l'altro. Data la loro chiave privata e la chiave pubblica dell'altra parte, calcolano il segreto condiviso. La terza parte che ascolta sul canale vede solo 2 chiavi pubbliche e non può calcolare il segreto condiviso. Successivamente, tutti i dati scambiati tra il client e il server per ottenere questa chiave vengono firmati dal certificato del server (firma RSA o ECDSA). Se il client si fida del certificato del server, verifica questa firma e, se è corretta, inizia lo scambio di dati. Questo è lo schema più comunemente usato.
    • Esistono molti altri schemi, ma sono usati molto raramente o per niente.

    A proposito di intercettazione. Come ho descritto sopra, è inutile intercettare i messaggi qui, poiché nel primo caso solo il server può decifrarlo, e nel secondo viene utilizzato uno schema crittografico astuto.

    Gli algoritmi di crittografia sono noti sia al server che al client. Dopotutto, se il client non sa quale algoritmo di crittografia, come crittograferà i dati da inviare? A crittografia moderna nessuno usa algoritmi proprietari. Gli algoritmi aperti sono costantemente studiati dai migliori crittografi del mondo, alla ricerca di vulnerabilità e offrono soluzioni per aggirarle.

    In TLS, possiamo affermare condizionatamente che gli algoritmi cambiano, poiché ogni volta vengono generate chiavi di crittografia diverse. E poi, se vuoi usare un algoritmo privato, ad esempio, per visualizzare una pagina web, come può questo algoritmo essere privato se il tuo computer/dispositivo esegue la crittografia/decodifica?

Ho omesso/semplificato alcuni dettagli per descrivere solo le idee principali.

Sergey Panasenko,
capo del dipartimento di sviluppo Software ditta "Ankad",
[email protetta]

Concetti basilari

Il processo di conversione dei dati aperti in dati crittografati e viceversa è solitamente chiamato crittografia e le due componenti di questo processo sono chiamate rispettivamente crittografia e decrittografia. Matematicamente, questa trasformazione è rappresentata dalle seguenti dipendenze che descrivono le azioni con le informazioni iniziali:

С = Ek1(M)

M" = Dk2(C),

dove M (messaggio) - informazioni aperte(spesso indicato nella letteratura sulla sicurezza delle informazioni come " testo di partenza");
C (testo cifrato) - il testo cifrato (o crittogramma) ottenuto come risultato della crittografia;
E (crittografia) - funzione di crittografia che esegue trasformazioni crittografiche sul testo sorgente;
k1 (chiave) - parametro di funzione E, chiamato chiave di crittografia;
M" - informazioni ottenute a seguito della decrittazione;
D (decrittografia) - funzione di decrittazione che esegue trasformazioni crittografiche inverse alla crittografia sul testo cifrato;
k2 è la chiave utilizzata per decrittografare le informazioni.

Il concetto di "chiave" nello standard GOST 28147-89 (algoritmo di crittografia simmetrica) è definito come segue: "uno stato segreto specifico di alcuni parametri dell'algoritmo di trasformazione crittografica, che garantisce la scelta di una trasformazione da un insieme di tutti i possibili per questo algoritmo trasformazioni". In altre parole, la chiave è un elemento unico con il quale è possibile modificare i risultati dell'algoritmo di crittografia: lo stesso testo sorgente verrà crittografato in modo diverso quando si utilizzano chiavi diverse.

Affinché il risultato della decrittazione corrisponda al messaggio originale (cioè, per M "= M), è necessario esecuzione simultanea due condizioni. In primo luogo, la funzione di decrittazione D deve corrispondere alla funzione di crittografia E. In secondo luogo, la chiave di decrittazione k2 deve corrispondere alla chiave di crittografia k1.

Se per la crittografia è stato utilizzato un algoritmo di crittografia crittograficamente forte, in assenza della chiave corretta k2, è impossibile ottenere M" = M. La forza crittografica è la caratteristica principale degli algoritmi di crittografia e indica, prima di tutto, il grado di difficoltà nell'ottenere il testo originale dal cifrato senza la chiave k2.

Gli algoritmi di crittografia possono essere suddivisi in due categorie: simmetrici e crittografia asimmetrica. Per i primi, il rapporto tra chiavi di crittografia e decrittografia è definito come k1 = k2 = k (cioè, le funzioni E e D utilizzano la stessa chiave di crittografia). Con la crittografia asimmetrica, la chiave di crittografia k1 viene calcolata dalla chiave k2 in modo tale che trasformazione inversa impossibile, ad esempio, dalla formula k1 = ak2 mod p (a e p sono i parametri dell'algoritmo utilizzato).

Crittografia simmetrica

Gli algoritmi di crittografia simmetrica risalgono all'antichità: era questo metodo per nascondere le informazioni che veniva utilizzato dall'imperatore romano Gaio Giulio Cesare nel I secolo a.C. e., e l'algoritmo da lui inventato è noto come il "crittosistema Cesare".

Attualmente, l'algoritmo più noto è quello simmetrico Crittografia DES(Data Encryption Standard), sviluppato nel 1977. Fino a poco tempo fa era lo "standard USA" perché il governo di questo paese ne raccomandava l'uso per implementare vari sistemi crittografia dei dati. Nonostante il fatto che DES fosse originariamente previsto per essere utilizzato per non più di 10-15 anni, i tentativi di sostituirlo sono iniziati solo nel 1997.

Non discuteremo in dettaglio di DES (in quasi tutti i libri dell'elenco materiali aggiuntivi mangialo descrizione dettagliata), ma passiamo ad algoritmi di crittografia più moderni. Vale solo la pena notare che il motivo principale per la modifica dello standard di crittografia è la sua forza crittografica relativamente debole, il motivo è che la lunghezza della chiave DES è solo 56 bit significativi. È noto che qualsiasi algoritmo resistente alle criptovalute può essere violato ordinando tutte le possibili opzioni per le chiavi di crittografia (il cosiddetto metodo della forza bruta - attacco della forza bruta). È facile calcolare che un cluster di 1 milione di processori, ciascuno dei quali calcola 1 milione di chiavi al secondo, controllerà 256 varianti di chiavi DES in quasi 20 ore E poiché tale potenza di calcolo è abbastanza reale per gli standard odierni, è chiaro che un La chiave a 56 bit è troppo corta e Algoritmo DES deve essere sostituito con uno più potente.

Oggi vengono sempre più utilizzati due moderni algoritmi di crittografia resistenti alle criptovalute: lo standard domestico GOST 28147-89 e il nuovo standard crittografico statunitense - AES (Advanced Encryption Standard).

Standard GOST 28147-89

L'algoritmo definito da GOST 28147-89 (Fig. 1) ha una lunghezza della chiave di crittografia di 256 bit. Crittografa le informazioni in blocchi di 64 bit (tali algoritmi sono chiamati algoritmi di blocco), che vengono poi divisi in due sottoblocchi di 32 bit (N1 e N2). Il sottoblocco N1 viene elaborato in un certo modo, dopodiché il suo valore viene sommato al valore del sottoblocco N2 (l'addizione viene eseguita modulo 2, cioè viene applicata operazione logica XOR - "esclusivo o"), quindi i sottoblocchi vengono scambiati. Questa trasformazione viene eseguito un certo numero di volte ("round"): 16 o 32 a seconda della modalità di funzionamento dell'algoritmo. In ogni round vengono eseguite due operazioni.

Il primo è la digitazione. Il contenuto del sottoblocco N1 viene aggiunto modulo 2 alla parte a 32 bit della chiave Kx. Chiave completa la crittografia è rappresentata come una concatenazione di sottochiavi a 32 bit: K0, K1, K2, K3, K4, K5, K6, K7. Una di queste sottochiavi viene utilizzata nel processo di crittografia, a seconda del numero tondo e della modalità operativa dell'algoritmo.

La seconda operazione è una sostituzione della tabella. Dopo la digitazione, il sottoblocco N1 viene suddiviso in 8 parti di 4 bit, il cui valore viene sostituito secondo la tabella di sostituzione per questa parte del sottoblocco. Il sottoblocco viene quindi ruotato a sinistra bit a bit di 11 bit.

Sostituzioni tabelle(Box di sostituzione - S-box) sono spesso utilizzati nei moderni algoritmi di crittografia, quindi vale la pena spiegare come è organizzata tale operazione. I valori di uscita dei blocchi vengono scritti nella tabella. Un blocco dati di una certa dimensione (nel nostro caso, 4 bit) ha una propria rappresentazione numerica, che determina il numero del valore di uscita. Ad esempio, se la S-box ha la forma 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 e un blocco a 4 bit "0100 " è arrivato all'ingresso (valore 4), quindi, secondo la tabella, il valore di uscita sarà 15, ovvero "1111" (0 a 4, 1 a 11, 2 a 2 ...).

L'algoritmo definito da GOST 28147-89 prevede quattro modalità di funzionamento: sostituzione semplice, ridimensionamento, ridimensionamento con feedback e generazione di prefissi di imitazione. Usano la stessa trasformazione di crittografia sopra descritta, ma poiché lo scopo delle modalità è diverso, questa trasformazione viene eseguita in ciascuna di esse in modo diverso.

In modalità semplice sostituzione per crittografare ogni blocco di informazioni a 64 bit, vengono eseguiti i 32 round descritti sopra. In questo caso, le sottochiavi a 32 bit vengono utilizzate nella sequenza seguente:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1, ecc. - nei round da 1 a 24;

K7, K6, K5, K4, K3, K2, K1, K0 - nei round da 25 a 32.

Decrittografia in questa modalità eseguita esattamente allo stesso modo, ma con una sequenza di sottochiavi leggermente diversa:

K0, K1, K2, K3, K4, K5, K6, K7 - nei round da 1 a 8;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, ecc. - nei round da 9 a 32.

Tutti i blocchi sono crittografati indipendentemente l'uno dall'altro, ovvero il risultato della crittografia di ciascun blocco dipende solo dal suo contenuto (il blocco di origine corrispondente). Se sono presenti più blocchi identici del testo originale (normale), anche i blocchi di testo cifrato corrispondenti saranno gli stessi, il che fornisce un'ulteriore informazioni utili per un crittoanalista che cerca di infrangere la cifra. Pertanto, questa modalità viene utilizzata principalmente per crittografare le chiavi di crittografia stesse (spesso vengono implementati schemi a più chiavi, in cui, per una serie di motivi, le chiavi vengono crittografate l'una sull'altra). Per crittografare le informazioni stesse, sono previste altre due modalità operative: gamma e gamma con feedback.

A modalità gamma ogni blocco testo in chiaro viene aggiunto bit per bit modulo 2 al blocco gamma di cifratura di 64 bit. Il cifrario gamma è una sequenza speciale, che si ottiene a seguito di alcune operazioni con i registri N1 e N2 (vedi Fig. 1).

1. Nei registri N1 e N2 viene scritto il loro riempimento iniziale: un valore a 64 bit chiamato messaggio di sincronizzazione.

2. La crittografia del contenuto dei registri N1 e N2 (in questo caso, messaggi di sincronizzazione) viene eseguita nella modalità di sostituzione semplice.

3. Il contenuto del registro N1 viene aggiunto modulo (232 - 1) con la costante C1 = 224 + 216 + 28 + 24 e il risultato dell'addizione viene scritto nel registro N1.

4. Si somma il contenuto del registro N2 modulo 232 con la costante C2 = 224 + 216 + 28 + 1, e si scrive il risultato dell'addizione nel registro N2.

5. Il contenuto dei registri N1 e N2 viene emesso come un blocco gamma di cifratura a 64 bit (in questo caso, N1 e N2 formano il primo blocco gamma).

Se è necessario il blocco gamma successivo (ovvero, è necessario che la crittografia o la decrittografia continuino), tornare al passaggio 2.

Per decifrare si produce gamma allo stesso modo, e quindi il testo cifrato e i bit gamma vengono nuovamente XOR. Essendo questa operazione reversibile, nel caso di gamma correttamente sviluppata si ottiene il testo originale (tabella).

Crittografia e decrittografia in modalità gamma

Per sviluppare l'intervallo di cifratura richiesto per la decrittografia, l'utente che decrittografa il crittogramma deve avere la stessa chiave e lo stesso valore del messaggio di sincronizzazione che sono stati utilizzati quando le informazioni sono state crittografate. In caso contrario, non sarai in grado di ottenere il testo originale da quello crittografato.

Nella maggior parte delle implementazioni dell'algoritmo GOST 28147-89, il messaggio di sincronizzazione non è segreto, ma esistono sistemi in cui il messaggio di sincronizzazione è lo stesso elemento segreto della chiave di crittografia. Per tali sistemi, la lunghezza effettiva della chiave dell'algoritmo (256 bit) viene aumentata di altri 64 bit del messaggio di sincronizzazione segreto, che può anche essere considerato un elemento chiave.

Nella modalità feedback gamma, per riempire i registri N1 e N2, a partire dal 2° blocco, non viene utilizzato il precedente blocco gamma, ma il risultato della crittografia del precedente blocco di testo in chiaro (Fig. 2). Il primo blocco in questa modalità viene generato esattamente allo stesso modo del precedente.

Riso. 2. Sviluppo del cifrario gamma in modalità gamma con feedback.

Considerando la modalità generazione di prefissi di imitazione, è necessario definire il concetto di soggetto di generazione. Il prefisso di imitazione è crittografico somma di controllo, calcolata utilizzando la chiave di crittografia e progettata per verificare l'integrità dei messaggi. Quando si genera un prefisso, vengono eseguite le seguenti operazioni: il primo blocco a 64 bit dell'array di informazioni, per il quale viene calcolato il prefisso, viene scritto nei registri N1 e N2 e crittografato nella modalità di sostituzione semplice ridotta (i primi 16 vengono eseguiti turni su 32). Il risultato ottenuto viene sommato modulo 2 con il successivo blocco di informazioni, salvando il risultato in N1 e N2.

Il ciclo si ripete fino a ultimo blocco informazione. Il contenuto a 64 bit dei registri N1 e N2, o parte di esso, risultante da queste trasformazioni, è chiamato prefisso di imitazione. La dimensione del prefisso viene scelta in base all'affidabilità richiesta dei messaggi: con una lunghezza del prefisso r bit, la probabilità che un cambiamento nel messaggio passi inosservato è 2-r Molto spesso, un prefisso a 32 bit è usato, ovvero metà del contenuto dei registri. Questo è sufficiente, poiché, come ogni checksum, il prefisso di imitazione ha principalmente lo scopo di proteggere dalla distorsione accidentale delle informazioni. Per proteggere dalla modifica intenzionale dei dati, altro metodi crittografici- Innanzitutto una firma digitale elettronica.

Quando si scambiano informazioni, il prefisso di imitazione funge da sorta di mezzi aggiuntivi controllo. Viene calcolato per il testo in chiaro quando alcune informazioni vengono crittografate e vengono inviate insieme al testo cifrato. Dopo la decrittazione, viene calcolato un nuovo valore del prefisso di imitazione, che viene confrontato con quello inviato. Se i valori non corrispondono, significa che il testo cifrato è stato distorto durante la trasmissione o sono state utilizzate chiavi errate durante la decrittazione. Il prefisso di imitazione è particolarmente utile per verificare la corretta decrittazione delle informazioni chiave quando si utilizzano schemi multi-chiave.

L'algoritmo GOST 28147-89 è considerato un algoritmo molto potente: al momento non ne sono stati proposti altri per la sua divulgazione. metodi efficaci rispetto al metodo della "forza bruta" di cui sopra. La sua elevata sicurezza è ottenuta principalmente grazie alla grande lunghezza della chiave - 256 bit. Quando si utilizza un messaggio di sincronizzazione segreto, la lunghezza effettiva della chiave viene aumentata a 320 bit e il segreto della tabella di sostituzione aggiunge bit aggiuntivi. Inoltre, la forza crittografica dipende dal numero di cicli di trasformazioni, che, secondo GOST 28147-89, dovrebbe essere 32 ( pieno effetto la dispersione dei dati di input si ottiene dopo 8 round).

Norma AES

A differenza dell'algoritmo GOST 28147-89, che per molto tempo rimasto segreto, standard americano Crittografia AES, progettato per sostituire DES, è stato selezionato in un concorso pubblico, in cui tutte le organizzazioni e gli individui interessati potevano studiare e commentare gli algoritmi dei candidati.

Un concorso per sostituire DES è stato bandito nel 1997 dal National Institute of Standards and Technology degli Stati Uniti (NIST - National Institute of Standards and Technology). Al concorso sono stati presentati 15 algoritmi candidati, sviluppati sia da note organizzazioni nel campo della crittografia (RSA Security, Counterpane, ecc.) sia da privati. I risultati del concorso sono stati annunciati nell'ottobre 2000: il vincitore è stato l'algoritmo Rijndael, sviluppato da due crittografi belgi, Vincent Rijmen e Joan Daemen.

L'algoritmo Rijndael è diverso dalla maggior parte dei noti algoritmi di crittografia simmetrica, la cui struttura è chiamata "rete Feistel" ed è simile al GOST 28147-89 russo. Una caratteristica della rete Feistel è che il valore di input è diviso in due o più sottoblocchi, alcuni dei quali vengono elaborati secondo una certa legge ad ogni giro, dopodiché viene sovrapposto ai sottoblocchi non elaborati (vedi Fig. 1).

A differenza dello standard di crittografia nazionale, l'algoritmo Rijndael rappresenta un blocco di dati sotto forma di un array di byte bidimensionale di dimensioni 4X4, 4X6 o 4X8 (diversi dimensioni fisse blocco di informazioni crittografato). Tutte le operazioni vengono eseguite su singoli byte dell'array, nonché su colonne e righe indipendenti.

L'algoritmo di Rijndael esegue quattro trasformazioni: BS (ByteSub) - sostituzione della tabella di ogni byte dell'array (Fig. 3); SR (ShiftRow) - spostamento della riga dell'array (Fig. 4). Con questa operazione la prima riga rimane invariata e il resto viene spostato ciclicamente byte per byte a sinistra di un numero fisso di byte, a seconda della dimensione dell'array. Ad esempio, per un array 4X4, le righe 2, 3 e 4 vengono spostate rispettivamente di 1, 2 e 3 byte. Poi arriva MC (MixColumn) - un'operazione su colonne di array indipendenti (Fig. 5), quando ogni colonna certa regolaè moltiplicato per una matrice fissa c(x). E infine, AK (AddRoundKey) - l'aggiunta di una chiave. Ciascun bit dell'array viene sommato modulo 2 al bit corrispondente della chiave tonda, che, a sua volta, viene calcolato in un certo modo dalla chiave di cifratura (Fig. 6).


Riso. 3. Operazione BS.

Riso. 4. Operazione SR.

Riso. 5. Operazione MC.

Il numero di cicli di crittografia (R) nell'algoritmo Rijndael è variabile (10, 12 o 14 round) e dipende dalla dimensione del blocco e dalla chiave di crittografia (ci sono anche diverse dimensioni fisse per la chiave).

La decrittografia viene eseguita utilizzando le seguenti operazioni inverse. La tabella viene invertita e viene eseguita una sostituzione della tabella sulla tabella inversa (relativa a quella utilizzata nella crittografia). L'operazione inversa a SR è uno spostamento circolare di righe a destra, non a sinistra. L'operazione inversa per MC è la moltiplicazione secondo le stesse regole per un'altra matrice d(x) che soddisfa la condizione: c(x) * d(x) = 1. L'addizione della chiave AK è l'inversa di se stessa, poiché essa utilizza solo l'operazione XOR. Queste operazioni inverse vengono utilizzati per la decrittazione nell'ordine inverso a quello utilizzato per la crittografia.

Rijndael è diventato il nuovo standard di crittografia dei dati grazie a una serie di vantaggi rispetto ad altri algoritmi. Innanzitutto fornisce alta velocità crittografia su tutte le piattaforme: sia nell'implementazione software che hardware. È incomparabilmente distinto migliori opportunità parallelizzazione dei calcoli rispetto ad altri algoritmi presentati per il concorso. Inoltre, i requisiti di risorse per il suo funzionamento sono minimi, il che è importante quando viene utilizzato in dispositivi con capacità di elaborazione limitate.

Lo svantaggio dell'algoritmo può essere considerato solo il suo schema intrinseco non tradizionale. Il fatto è che le proprietà degli algoritmi basati sulla rete Feistel sono ben studiate e Rijndael, al contrario, può contenere vulnerabilità nascoste che possono essere scoperte solo dopo che è trascorso del tempo dall'inizio della sua ampia distribuzione.

Crittografia asimmetrica

Gli algoritmi di crittografia asimmetrica, come già notato, utilizzano due chiavi: k1 è la chiave di crittografia, o pubblica, e k2 è la chiave di decrittazione, o segreto. chiave pubblica calcolato dal segreto: k1 = f(k2).

Gli algoritmi di crittografia asimmetrica si basano sull'uso di funzioni unidirezionali. Secondo la definizione, una funzione y = f(x) è unidirezionale se: è facile da calcolare per tutti opzioni x e per la maggior parte valori possibili y è abbastanza difficile calcolare un tale valore di x per cui y = f(x).

Un esempio di funzione unidirezionale è la moltiplicazione di due numeri grandi: N = P*Q. Di per sé, una tale moltiplicazione - semplice operazione. Tuttavia, la funzione inversa (scomposizione di N in due grandi fattori), chiamata fattorizzazione, secondo le moderne stime temporali è piuttosto complicata. problema di matematica. Ad esempio, la fattorizzazione di N con dimensione 664 bit a P ? Q richiederà circa 1023 operazioni e per calcolare x indietro per l'esponente modulo y = ax mod p con noti a, p e y (con le stesse dimensioni di a e p) è necessario eseguire circa 1026 operazioni. L'ultimo di questi esempi è chiamato "Discrete Logarithm Problem" (DLP - Discrete Logarithm Problem) e tali funzioni sono spesso utilizzate negli algoritmi di crittografia asimmetrica, nonché negli algoritmi utilizzati per creare una firma digitale elettronica.

Un'altra importante classe di funzioni utilizzate nella crittografia asimmetrica sono le funzioni backdoor unidirezionali. La loro definizione afferma che una funzione è unidirezionale con una backdoor se è unidirezionale ed è possibile calcolare in modo efficiente funzione inversa x = f-1(y), cioè se è noto il "passaggio segreto" (un certo numero segreto, in applicazione di algoritmi di crittografia asimmetrica - il valore della chiave segreta).

Le funzioni backdoor unidirezionali sono utilizzate nell'algoritmo di crittografia asimmetrica RSA ampiamente utilizzato.

Algoritmo RSA

Sviluppato nel 1978 da tre autori (Rivest, Shamir, Adleman), ha preso il nome dalle prime lettere dei nomi degli sviluppatori. L'affidabilità dell'algoritmo si basa sulla difficoltà di fattorizzare grandi numeri e calcolare logaritmi discreti. Il parametro principale dell'algoritmo RSA è il modulo del sistema N, che viene utilizzato per tutti i calcoli nel sistema, e N = P*Q (P e Q sono numeri primi grandi casuali segreti, di solito della stessa dimensione).

Viene scelta la chiave segreta k2 a caso e deve soddisfare le seguenti condizioni:

1

dove gcd è il massimo comun divisore, cioè k1 deve essere coprima con il valore della funzione di Eulero F(N), quest'ultima uguale al numero di interi positivi compresi tra 1 e N che sono coprimi con N, ed è calcolato come F(N) = (P - 1)*(Q - 1).

La chiave pubblica k1 è calcolata dalla relazione (k2*k1) = 1 mod F(N), e per questo viene utilizzato l'algoritmo Euclide generalizzato (un algoritmo per il calcolo del massimo comun divisore). Il blocco dati M viene crittografato utilizzando l'algoritmo RSA come segue: C=M [alla potenza k1] mod n. Si noti che poiché in un vero crittosistema che utilizza RSA il numero k1 è molto grande (attualmente la sua dimensione può arrivare fino a 2048 bit), il calcolo diretto di M [alla potenza k1] irreale. Per ottenerlo si usa una combinazione di quadrature multiple di M con moltiplicazione dei risultati.

L'inversione di questa funzione a grandi dimensioni non è fattibile; in altre parole, è impossibile trovare M da C, N e k1 noti. Avendo però una chiave segreta k2, con l'ausilio di semplici trasformazioni, si può calcolare M = Ck2 mod N. Ovviamente, oltre alla chiave segreta stessa, è necessario garantire la segretezza dei parametri P e Q. Se un l'attaccante ottiene i loro valori, quindi può anche calcolare la chiave segreta k2.

Qual è la migliore crittografia?

Il principale svantaggio della crittografia simmetrica è la necessità di trasferire le chiavi "di mano in mano". Questa lacuna è molto grave, poiché rende impossibile l'utilizzo della crittografia simmetrica in sistemi con un numero illimitato di partecipanti. Tuttavia, sotto altri aspetti, la crittografia simmetrica presenta alcuni vantaggi che sono chiaramente visibili sullo sfondo dei gravi svantaggi della crittografia asimmetrica.

Il primo di questi è la bassa velocità di esecuzione delle operazioni di crittografia e decrittografia, a causa della presenza di operazioni ad alta intensità di risorse. Un altro inconveniente è "teorico": matematicamente, la forza crittografica degli algoritmi di crittografia asimmetrica non è stata dimostrata. Ciò è dovuto principalmente al problema del logaritmo discreto - finora non è stato possibile dimostrare che la sua soluzione in un tempo accettabile sia impossibile. Difficoltà inutili sono create anche dalla necessità di proteggere le chiavi pubbliche dalla sostituzione: sostituendo la chiave pubblica di un utente legale, un utente malintenzionato potrà crittografare un messaggio importante utilizzando la sua chiave pubblica e successivamente decrittografarlo facilmente con la sua chiave segreta.

Tuttavia, queste carenze non impediscono l'uso diffuso di algoritmi di crittografia asimmetrici. Oggi esistono crittosistemi che supportano la certificazione a chiave pubblica, oltre a combinare algoritmi di crittografia simmetrica e asimmetrica. Ma questo è un argomento per un articolo separato.

Ulteriori fonti di informazione

Per quei lettori che non sono pigramente interessati alla crittografia, l'autore consiglia di espandere i propri orizzonti con l'aiuto dei seguenti libri.

  1. Brassard J. "Crittologia moderna".
  2. Petrov A. A. "Sicurezza informatica: metodi crittografici di protezione".
  3. Romanets Yu. V., Timofeev PA, Shangin VF "Sicurezza delle informazioni nei moderni sistemi informatici".
  4. Sokolov AV, Shangin VF "Protezione delle informazioni nelle reti e nei sistemi aziendali distribuiti".

Una descrizione completa degli algoritmi di crittografia può essere trovata nei seguenti documenti:

  1. GOST 28147-89. Sistema di elaborazione delle informazioni. Protezione crittografica. Algoritmo di trasformazione crittografica. - M.: Gosstandart dell'URSS, 1989.
  2. Algoritmo AES: http://www.nist.gov/ae.
  3. Algoritmo RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

Durata dell'informazione

§ Intercettando un messaggio crittografato per alcuni tipi di algoritmi di crittografia, è possibile calcolare la frequenza di occorrenza di determinati caratteri e confrontarli con le probabilità di occorrenza di determinati caratteri o loro combinazioni (bigram, trigram, ecc.). Questo, a sua volta, può portare alla decrittazione (divulgazione) inequivocabile di singole sezioni del messaggio crittografato.

§ La presenza di parole probabili. Si tratta di parole o espressioni che possono essere visualizzate nel messaggio intercettato (ad esempio, per il testo inglese - "and", "the", "are", ecc.).

§ Esistono metodi per rendere i messaggi crittografati praticamente inadatti all'analisi statistica e probabile delle parole. Questi includono quanto segue.

§ Diffusione. L'influenza di un carattere di un messaggio aperto si estende a molti caratteri di un messaggio crittografato. Questo metodo, sebbene porti ad un aumento del numero di errori durante la decrittazione, può essere utilizzato per nascondere la struttura statistica del messaggio aperto.

§ Intreccio. Sviluppo del principio di scattering. In esso, l'influenza di un carattere della chiave si estende a molti caratteri del cifrato

messaggi.

§ Miscelazione. Si basa sull'uso di particolari trasformazioni del messaggio originario, in conseguenza delle quali le probabili sequenze sembrano essere sparse sull'intero spazio dei possibili messaggi aperti. Lo sviluppo di questo metodo è stato l'uso di algoritmi di crittografia compositi, costituiti da una sequenza di semplici operazioni di permutazione e sostituzione.

Esempi dei metodi di cui sopra sono gli standard di crittografia DES e GOST 28147-89.

Esistono due tipi principali di algoritmi di crittografia:

§ algoritmi di crittografia simmetrica;

§ algoritmi di crittografia asimmetrici.

Crittografia simmetrica.

Gli algoritmi di crittografia simmetrica si basano sul fatto che la stessa chiave (comune) viene utilizzata sia per crittografare un messaggio che per decrittografarlo (Fig. 1).

Uno dei principali vantaggi dei metodi simmetrici è la velocità di crittografia e decrittografia e il principale svantaggio è la necessità di trasferire il valore della chiave segreta al destinatario.



Il problema sorge inevitabilmente: come trasferire la chiave e allo stesso tempo non permettere agli attaccanti di intercettarla.

Vantaggi della crittografia con chiavi simmetriche:

· Alte prestazioni.

· Elevata durata. A parità di altre condizioni, la forza di un algoritmo crittografico è determinata dalla lunghezza della chiave. Con una lunghezza della chiave di 256 bit, è necessario eseguire 10 77 ricerche per determinarlo.

Svantaggi della crittografia con chiavi simmetriche.

§ Problema di distribuzione delle chiavi. Poiché la stessa chiave viene utilizzata per la crittografia e la decrittazione, sono necessari meccanismi molto affidabili per la loro distribuzione (trasmissione).

§ Scalabilità. Poiché sia ​​il mittente che il destinatario utilizzano un'unica chiave, il numero di chiavi necessarie aumenta in modo esponenziale a seconda del numero di partecipanti alla comunicazione. Per scambiare messaggi tra 10 utenti, devi avere 45 chiavi e per 1000 utenti - già 499.500.

§ Uso limitato. La crittografia a chiave segreta viene utilizzata per crittografare i dati e limitarne l'accesso; non può essere utilizzata per garantire proprietà delle informazioni come l'autenticità e

non ripudio.

Crittografia asimmetrica

Gli algoritmi di crittografia asimmetrica (crittografia a chiave pubblica) prevedono l'utilizzo di due chiavi. La prima chiave è aprire.È distribuito in modo completamente gratuito, senza alcuna precauzione. Secondo, Chiuso la chiave è tenuta segreta.

Qualsiasi messaggio crittografato utilizzando una di queste chiavi può essere decrittografato solo utilizzando la chiave associata. In genere, il mittente di un messaggio utilizza la chiave pubblica del destinatario e il destinatario utilizza la propria chiave privata privata.

In uno schema asimmetrico per la trasmissione di messaggi crittografati, entrambe le chiavi sono derivate da un unico genitore chiave maestra. Quando due chiavi sono derivate da una, sono matematicamente dipendenti, ma a causa della complessità computazionale, nessuna delle due può essere calcolata dall'altra. Dopo che entrambe le chiavi (sia pubbliche che private, private) sono state formate, la chiave master viene distrutta e quindi viene interrotto qualsiasi tentativo di ripristinare i valori delle chiavi da essa derivate in futuro.

Lo schema asimmetrico è idealmente combinato con l'uso di reti di messaggistica pubbliche (ad esempio Internet). Qualsiasi abbonato di rete può inviare in assoluta libertà la chiave pubblica al proprio interlocutore, e quest'ultimo, nel ruolo di mittente del messaggio, utilizzerà tale chiave per crittografare il messaggio inviato (Fig. 2). Questo messaggio può essere decifrato con la sua chiave privata solo dal destinatario del messaggio che ha precedentemente inviato la chiave pubblica corrispondente. Un utente malintenzionato che intercetta tale chiave potrà utilizzarla solo al solo scopo di trasmettere alcuni messaggi crittografati al legittimo proprietario della chiave.

Lo svantaggio dello schema asimmetrico è il grande tempo dedicato alla crittografia e alla decrittazione, che non consente il loro utilizzo per lo scambio rapido di lunghi messaggi in modalità dialogo. L'implementazione di metodi di crittografia asimmetrica richiede molto tempo della CPU. Pertanto, nella sua forma pura, la crittografia a chiave pubblica non viene solitamente utilizzata nella pratica mondiale.



Riso. 2. Schema di crittografia asimmetrica

È impossibile confrontare quale sia l'algoritmo di crittografia migliore, simmetrico o asimmetrico. Si noti che gli algoritmi crittografici simmetrici hanno una lunghezza della chiave inferiore e funzionano più velocemente.

La crittografia a chiave segreta e la crittografia a chiave pubblica sono progettate per risolvere problemi completamente diversi. Gli algoritmi simmetrici sono adatti per la crittografia dei dati, gli algoritmi asimmetrici sono implementati nella maggior parte dei protocolli crittografici di rete.

I metodi più utilizzati combinano i vantaggi di entrambi gli schemi. Il principio di funzionamento degli schemi combinati è che viene generata una chiave simmetrica (di sessione) per la successiva sessione di messaggistica. Questa chiave viene quindi crittografata e inviata utilizzando uno schema asimmetrico. Al termine della sessione di negoziazione corrente, la chiave simmetrica viene distrutta.

In questo giorno, il servizio crittografico russo celebra la sua festa professionale.

"Crittografia" dal greco antico significa "scrittura segreta".

Come sono state nascoste le parole?

Un metodo particolare per trasmettere una lettera segreta esisteva durante il regno della dinastia dei faraoni egizi:

ha scelto uno schiavo. Gli hanno rasato la testa e gli hanno applicato il testo del messaggio con vernice vegetale impermeabile. Quando i capelli sono cresciuti, sono stati inviati al destinatario.

Cifra- si tratta di una sorta di sistema di trasformazione del testo con un segreto (chiave) per garantire la segretezza delle informazioni trasmesse.

AiF.ru ha fatto una selezione di fatti interessanti dalla storia della crittografia.

Tutti i sistemi di scrittura segreti hanno

1. Acrostico- un testo significativo (parola, frase o frase), composto dalle lettere iniziali di ogni verso della poesia.

Ecco, ad esempio, una poesia indovinello con un indizio nelle prime lettere:

D Sono generalmente conosciuto con il mio stesso nome;
R il ladro e l'innocente giurano su di lui,
In tehoy nei disastri io sono più di ogni altra cosa,
E la vita è più dolce con me e nella migliore parte.
B Posso servire solo la felicità delle anime pure,
MA tra i cattivi - non sarò creato.
Yuri Neledinsky-Meletsky
Sergei Yesenin, Anna Akhmatova, Valentin Zagoryansky usavano spesso acrostici.

2. Litorrea- una sorta di scrittura cifrata usata nell'antica letteratura manoscritta russa. È semplice e saggio. Una semplice è chiamata lettera senza senso, consiste nel seguente: mettere in ordine le consonanti su due righe:

usano le lettere maiuscole invece di quelle inferiori per iscritto e viceversa, e le vocali rimangono invariate; Per esempio, tokepot = gattino eccetera.

Litorea saggia implica regole di sostituzione più complesse.

3. "ROT1"- cifra per bambini?

Potresti averlo usato anche da bambino. La chiave del cifrario è molto semplice: ogni lettera dell'alfabeto è sostituita dalla lettera successiva.

A diventa B, B diventa C e così via. "ROT1" significa letteralmente "ruotare 1 lettera in avanti nell'alfabeto". Frase "Io amo il borsch" trasformarsi in una frase segreta "A yavmya vps". Questa cifra è pensata per essere divertente, facile da capire e decifrare, anche se la chiave viene utilizzata al contrario.

4. Dal riordinamento dei termini ...

Durante la prima guerra mondiale, i messaggi riservati venivano inviati utilizzando i cosiddetti caratteri di permutazione. In essi, le lettere vengono riorganizzate utilizzando alcune regole o chiavi date.

Ad esempio, le parole possono essere scritte al contrario in modo che la frase "mamma ha lavato la cornice" si trasforma in una frase "amam alym umar". Un'altra chiave di permutazione consiste nel permutare ogni coppia di lettere in modo che diventi il ​​messaggio precedente "am um um al ar um".

Può sembrare che regole di permutazione complesse possano rendere questi cifrari molto difficili. Tuttavia, molti messaggi crittografati possono essere decifrati utilizzando anagrammi o moderni algoritmi informatici.

5. Il codice a turni di Cesare

Si compone di 33 cifre diverse, una per ogni lettera dell'alfabeto (il numero delle cifre varia a seconda dell'alfabeto della lingua utilizzata). La persona doveva sapere quale cifra Giulio Cesare usare per decifrare il messaggio. Ad esempio, se viene utilizzata la cifra Ё, allora A diventa Ё, B diventa F, C diventa Z e così via in ordine alfabetico. Se si usa Y, allora A diventa Y, B diventa Z, C diventa A e così via. Questo algoritmo è la base per molti cifrari più complessi, ma di per sé non fornisce una protezione affidabile del segreto dei messaggi, poiché il controllo di 33 diverse chiavi di cifratura richiederà relativamente poco tempo.

Nessuno potrebbe. Mettiti alla prova

I messaggi pubblici crittografati ci stuzzicano con i loro intrighi. Alcuni di loro rimangono ancora irrisolti. Eccoli:

Criptovalute. Una scultura dell'artista Jim Sanborn che si trova di fronte al quartier generale della Central Intelligence Agency a Langley, in Virginia. La scultura contiene quattro cifre; non è stato finora possibile aprire il quarto codice. Nel 2010, è stato rivelato che i caratteri 64-69 NYPVTT nella quarta parte stanno per la parola BERLINO.

Ora che hai letto l'articolo, sarai sicuramente in grado di risolvere tre semplici cifrari.

Lascia le tue opzioni nei commenti a questo articolo. La risposta apparirà alle 13:00 del 13 maggio 2014.

Risposta:

1) piattino

2) L'elefantino è stanco di tutto

3) Bel tempo

la crittografia può anche essere interpretata come autenticazione.

Sembra tutto piuttosto carino e di solito si giustifica in pratica quando si utilizza la crittografia. La crittografia è senza dubbio il mezzo più importante per garantire la sicurezza. I meccanismi di crittografia aiutano a proteggere riservatezza e integrità delle informazioni. I meccanismi di crittografia aiutano a identificare la fonte delle informazioni. Tuttavia, la crittografia da sola non è la soluzione a tutti i problemi. I meccanismi di crittografia possono e devono essere parte di un programma di sicurezza completamente funzionale. In effetti, i meccanismi di crittografia sono ampiamente utilizzati meccanismi di sicurezza solo perché aiutano a fornire riservatezza, integrità e identificazione.

Tuttavia, la crittografia è solo un'azione ritardante. È noto che qualsiasi sistema di crittografia può essere violato. Si tratta del fatto che l'accesso alle informazioni protette dalla crittografia può richiedere molto tempo e una grande quantità di risorse. Dato questo fatto, un utente malintenzionato può tentare di trovare e sfruttare altri punti deboli in tutto il sistema nel suo insieme.

Questa lezione tratterà i concetti di base relativi alla crittografia e come utilizzare la crittografia per mantenere le informazioni al sicuro. Non considereremo in dettaglio le basi matematiche della crittografia, quindi il lettore non avrà bisogno di molte conoscenze in quest'area. Tuttavia, esamineremo alcuni esempi per capire quanto sia diverso algoritmi di crittografia usato nel bene programma di sicurezza.

Concetti di crittografia di base

La crittografia è occultamento di informazioni da persone non autorizzate fornendo allo stesso tempo agli utenti autorizzati l'accesso. Gli utenti vengono chiamati autorizzati se dispongono della chiave appropriata per decrittografare le informazioni. Questo è un principio molto semplice. L'intera difficoltà sta nel modo in cui l'intero processo viene implementato.

Un altro concetto importante da tenere presente è che l'obiettivo di qualsiasi sistema di crittografia è rendere il più difficile possibile l'accesso alle informazioni da parte di persone non autorizzate, anche se dispongono del testo cifrato e l'algoritmo utilizzato per la crittografia è noto. Finché un utente non autorizzato non dispone della chiave, la segretezza e l'integrità delle informazioni non vengono violate.

La crittografia fornisce tre stati di sicurezza delle informazioni.

  • Riservatezza. La crittografia viene utilizzata per nascondere le informazioni da utenti non autorizzati durante la trasmissione o la memorizzazione.
  • Integrità. La crittografia viene utilizzata per impedire che le informazioni vengano modificate durante la trasmissione o l'archiviazione.
  • Identificabilità. La crittografia viene utilizzata per autenticare la fonte delle informazioni e impedire al mittente delle informazioni di negare che i dati gli siano stati inviati.

Termini relativi alla crittografia

Prima di entrare nei dettagli della crittografia, definiamo alcuni dei termini che verranno utilizzati nella discussione. In primo luogo, ci occuperemo dei termini per i componenti coinvolti nella crittografia e decrittografia. La Figura 12.1 mostra il principio generale alla base del funzionamento della crittografia.

Ci sono anche quattro termini che devi conoscere:

  • Crittografia. La scienza di nascondere le informazioni attraverso la crittografia.
  • Crittografo. Una persona che pratica la crittografia.
  • Crittoanalisi. L'arte di analizzare gli algoritmi crittografici per le vulnerabilità.
  • Crittoanalista. Una persona che utilizza la crittoanalisi per identificare e sfruttare le vulnerabilità negli algoritmi crittografici.

Attacchi al sistema di crittografia

I sistemi di crittografia possono essere attaccati in tre modi:

  • Attraverso i punti deboli dell'algoritmo.
  • Attraverso un attacco di "forza bruta" alla chiave.
  • Attraverso le vulnerabilità nel sistema circostante.

Quando si attacca un algoritmo, un crittoanalista cerca le vulnerabilità nel metodo di trasformazione testo in chiaro in un cifrario per rivelare il testo in chiaro senza usare una chiave. Gli algoritmi con tali vulnerabilità non possono essere definiti abbastanza potenti. Il motivo è che una vulnerabilità nota può essere utilizzata per ripristinare rapidamente il testo originale. In questo caso, l'attaccante non dovrà utilizzare risorse aggiuntive.

Gli attacchi di forza bruta sono tentativi di indovinare qualsiasi chiave possibile per convertire un codice in testo in chiaro. In media, un analista che utilizza questo metodo deve testare il 50 percento di tutte le chiavi prima di avere successo. Pertanto, la potenza dell'algoritmo è determinata solo dal numero di chiavi che l'analisi deve provare. Pertanto, più lunga è la chiave, maggiore è il numero totale di chiavi e più chiavi deve provare un utente malintenzionato prima di trovare la chiave corretta. Gli attacchi di forza bruta dovrebbero teoricamente sempre avere successo, data la giusta quantità di tempo e risorse. Pertanto, gli algoritmi devono essere valutati in termini di periodo di tempo durante il quale le informazioni rimangono protette quando viene effettuato un attacco di forza bruta.

Articoli correlati in alto