Computer finestre Internet

Protocolli di distribuzione delle chiavi. Gestione delle chiavi Distribuzione delle chiavi che coinvolge un centro di distribuzione delle chiavi

Gestione delle chiavi

Oltre alla scelta di un sistema crittografico adatto a un particolare circuito integrato, una questione importante è la gestione delle chiavi. Non importa quanto sia complesso e sicuro il crittosistema stesso, si basa sull'uso delle chiavi. Se per garantire lo scambio riservato di informazioni tra due utenti, il processo di scambio delle chiavi è banale, allora in un IS, dove il numero di utenti è di decine e centinaia, la gestione delle chiavi è un problema serio.

Sotto informazione chiaveè inteso come la totalità di tutte le chiavi attive nell'IS. Se non viene fornito un controllo sufficientemente affidabile delle informazioni chiave, dopo averne preso possesso, l'attaccante ottiene un accesso illimitato a tutte le informazioni.

Gestione delle chiavi- processo informativo, che comprende tre elementi:

* generazione chiave;

* accumulo di chiavi;

* distribuzione delle chiavi.

Consideriamo come dovrebbero essere implementati per garantire la sicurezza delle informazioni chiave nell'IS.

Generazione di chiavi

All'inizio della conversazione sui metodi crittografici, si diceva che non si dovrebbero usare chiavi non casuali per renderle facili da ricordare. I circuiti integrati seri utilizzano metodi hardware e software speciali per generare chiavi casuali. Di norma vengono utilizzati sensori PSC. Tuttavia, il grado di casualità della loro generazione dovrebbe essere piuttosto alto. I generatori ideali sono dispositivi basati su processi casuali "naturali". Ad esempio, campioni seriali di generazione di chiavi basati su rumore radiofonico bianco. Un altro oggetto matematico casuale sono le cifre decimali dei numeri irrazionali, per esempio, o e, che vengono calcolati utilizzando metodi matematici standard.

Negli IS con requisiti di sicurezza medi, sono abbastanza accettabili i generatori di chiavi software, che calcolano il PRNG come una funzione complessa dell'ora corrente e (o) del numero inserito dall'utente.

Accumulo di chiavi

Sotto accumulo di chiavi si riferisce all'organizzazione della loro conservazione, contabilità e rimozione.

Poiché la chiave è l'oggetto più attraente per un attaccante, aprendogli la strada a informazioni riservate, occorre prestare particolare attenzione alle questioni dell'accumulazione delle chiavi.

Le chiavi segrete non devono mai essere scritte in modo esplicito su un supporto che può essere letto o copiato.

In un IS piuttosto complesso, un utente può lavorare con una grande quantità di informazioni chiave e talvolta diventa persino necessario organizzare mini-database in base alle informazioni chiave. Tali banche dati sono responsabili dell'accettazione, conservazione, contabilizzazione e cancellazione delle chiavi utilizzate.

Pertanto, ogni informazione sulle chiavi utilizzate deve essere archiviata in forma crittografata. Vengono chiamate le chiavi che crittografano le informazioni sulla chiave chiavi maestre. È auspicabile che ogni utente conosca le chiavi principali a memoria e non le memorizzi affatto su alcun supporto materiale.

Una condizione molto importante per la sicurezza delle informazioni è l'aggiornamento periodico delle informazioni chiave nell'IS. In questo caso è necessario riassegnare sia le chiavi ordinarie che le chiavi master. In un SI particolarmente responsabile, è auspicabile aggiornare le informazioni chiave su base giornaliera.

La questione dell'aggiornamento delle informazioni chiave è correlata anche al terzo elemento della gestione delle chiavi: la distribuzione delle chiavi.

Distribuzione delle chiavi

La distribuzione delle chiavi è il processo più critico nella gestione delle chiavi. Ci sono due requisiti per lui:
  1. Efficienza e precisione di distribuzione
  2. Segretezza delle chiavi distribuite.
Di recente, c'è stato un notevole spostamento verso l'uso di crittosistemi a chiave pubblica, in cui il problema della distribuzione delle chiavi scompare. Tuttavia, la distribuzione delle informazioni chiave nell'IS richiede nuove soluzioni efficaci.

La distribuzione delle chiavi tra gli utenti è implementata da due diversi approcci:

  1. Creando uno o più centri di distribuzione chiave. Lo svantaggio di questo approccio è che il centro di distribuzione sa a chi e quali chiavi sono assegnate e ciò consente di leggere tutti i messaggi che circolano nell'IS. Eventuali abusi influiscono in modo significativo sulla protezione.
  2. Scambio chiavi diretto tra utenti del sistema informativo.
In questo caso, il problema è autenticare in modo affidabile i soggetti.

In entrambi i casi deve essere garantita l'autenticità della sessione di comunicazione. Questo può essere fornito in due modi:

  1. Meccanismo di richiesta-risposta, che si compone di quanto segue. Se l'utente A vuole essere sicuro che i messaggi che riceve da B non siano falsi, include un elemento imprevedibile (richiesta) nel messaggio inviato a B. Quando risponde, l'utente B deve eseguire alcune operazioni su questo elemento (ad esempio aggiungere 1). Questo non può essere fatto in anticipo, poiché non è noto quale numero casuale arriverà nella richiesta. Dopo aver ricevuto una risposta con i risultati delle azioni, l'utente A può essere sicuro che la sessione sia autentica. Lo svantaggio di questo metodo è la possibilità di stabilire uno schema seppur complesso tra la richiesta e la risposta.
  2. Meccanismo di timestamp ("timestamp"). Significa fissare il tempo per ogni messaggio. In questo caso, ogni utente IS può sapere quanto "vecchio" è il messaggio in arrivo.
In entrambi i casi, è necessario utilizzare la crittografia per garantire che la risposta non sia stata inviata da un utente malintenzionato e che il timestamp non sia stato alterato.

Quando si utilizzano i timestamp, si verifica un problema con l'intervallo di tempo di ritardo consentito per l'autenticazione della sessione. Dopotutto, un messaggio con un "timbro temporale" in linea di principio non può essere trasmesso istantaneamente. Inoltre, gli orologi del computer del destinatario e del mittente non possono essere sincronizzati in modo assoluto. Quale ritardo del "timbro" è considerato sospetto.

Pertanto, nei circuiti integrati reali, ad esempio, nei sistemi di pagamento con carta di credito, viene utilizzato il secondo meccanismo di autenticazione e protezione dalla contraffazione. L'intervallo utilizzato va da uno a diversi minuti. Un gran numero di metodi noti per rubare denaro elettronico si basano sull'"incuneamento" in questa lacuna con false richieste di prelievo.

I crittosistemi a chiave pubblica possono essere utilizzati per lo scambio di chiavi utilizzando lo stesso algoritmo RSA.

Ma l'algoritmo Diffie-Hellman si è rivelato molto efficace, consentendo a due utenti di scambiarsi una chiave senza intermediari, che può poi essere utilizzata per la crittografia simmetrica.

Algoritmo di Diffie-Hellman

Diffie e Helman hanno proposto di creare sistemi crittografici con una chiave pubblica funzione di esponenziazione discreta.

L'irreversibilità della trasformazione in questo caso è assicurata dal fatto che è abbastanza facile calcolare la funzione esponenziale in un campo finito di Galois costituito da p elementi. ( p- un numero primo o un numero primo di qualsiasi potenza). Il calcolo dei logaritmi in tali campi è un'operazione che richiede molto più tempo.

Se un y= X, 1<X<p-1, dove è un elemento fisso del campo GF(p), poi X= lo g y sopra GF(p). Avendo X, è facile da calcolare y. Ciò richiederà 2 ln( X+y) operazioni di moltiplicazione.

Problema di calcolo inverso X a partire dal y sarà abbastanza difficile. Se un pè scelto abbastanza correttamente, quindi l'estrazione del logaritmo richiederà calcoli proporzionali a

L(p) = esp((ln p ln ln p) 0.5 }

Per scambiare informazioni, il primo utente sceglie un numero casuale X 1 , equiprobabile di intero 1... p-uno. Mantiene segreto questo numero e invia il numero a un altro utente

y 1 = X mod p

Il secondo utente fa lo stesso, generando X 2 e calcolo y 2 , inviandolo al primo utente. Di conseguenza, possono calcolare K 12 = X 1 X 2 mod p.

Per calcolare K 12, il primo utente rilancia y 2 alla potenza X uno . Il secondo utente fa lo stesso. Pertanto, entrambi gli utenti hanno una chiave comune K 12, che può essere utilizzato per crittografare informazioni con algoritmi convenzionali. A differenza dell'algoritmo RSA, questo algoritmo non consente di crittografare le informazioni effettive.

Senza sapere X 1 e X 2 , un utente malintenzionato potrebbe provare a calcolare K 12, sapendo solo intercettato y 1 e y 2. L'equivalenza di questo problema con il problema del calcolo del logaritmo discreto è una questione importante e aperta nei sistemi a chiave pubblica. Una soluzione semplice non è stata ancora trovata. Quindi, se la trasformazione diretta di numeri primi a 1000 bit richiede 2000 operazioni, la trasformazione inversa (calcolo del logaritmo nel campo di Galois) richiederà circa 10 30 operazioni.

Come puoi vedere, con tutta la semplicità dell'algoritmo Diffie-Hellman, il suo secondo inconveniente rispetto al sistema RSA è l'assenza di una stima inferiore garantita della complessità di apertura della chiave.

Inoltre, sebbene l'algoritmo descritto aggiri il problema della trasmissione della chiave nascosta, rimane la necessità di autenticazione. Senza fondi aggiuntivi, uno degli utenti non può essere sicuro di aver scambiato le chiavi esattamente con l'utente di cui ha bisogno. In questo caso resta il pericolo dell'imitazione.

Come generalizzazione di quanto detto sulla distribuzione delle chiavi, va detto quanto segue. Il compito della gestione delle chiavi si riduce a trovare un tale protocollo di distribuzione delle chiavi che fornisca:

* la possibilità di rifiuto dal centro di distribuzione delle chiavi;

* Autenticazione reciproca dei partecipanti alla sessione;

* Conferma dell'autenticità della sessione mediante un meccanismo di richiesta-risposta, utilizzando software o hardware per questo;

* utilizzando il numero minimo di messaggi nello scambio delle chiavi.

Per quanto complesso e sicuro sia il crittosistema stesso, si basa sull'uso delle chiavi. Se il processo di scambio delle chiavi è banale per garantire lo scambio riservato di informazioni tra due utenti, in un sistema in cui il numero di utenti è di decine e centinaia, la gestione delle chiavi è un problema serio.

L'informazione chiave è intesa come la totalità di tutte le chiavi che operano nel sistema. Se non viene fornita una gestione sufficientemente affidabile delle informazioni chiave, allora, dopo averne preso possesso, l'attaccante ottiene un accesso illimitato a tutte le informazioni.

La gestione delle chiavi è un processo informativo che comprende tre elementi:

    generazione di chiavi;

    accumulo di chiavi;

    distribuzione delle chiavi.

Generazione di chiavi. I sistemi reali utilizzano metodi hardware e software speciali per generare chiavi casuali. Di norma, vengono utilizzati generatori di numeri casuali. Tuttavia, il grado di casualità della loro generazione dovrebbe essere sufficientemente alto. I generatori ideali sono dispositivi basati su processi casuali “naturali”. Ad esempio, generazione di chiavi basata sul rumore radio bianco. Un altro oggetto matematico casuale sono le cifre decimali dei numeri irrazionali, come  o e, che vengono calcolati utilizzando metodi matematici standard.

In sistemi con requisiti di sicurezza medi, sono abbastanza accettabili i generatori di chiavi software, che calcolano numeri casuali come una funzione complessa dell'ora corrente e/o un numero inserito dall'utente.

Accumulo di chiavi. Per accumulo di chiavi si intende l'organizzazione della loro conservazione, contabilità e cancellazione.

Poiché la chiave è l'oggetto più attraente per un attaccante, aprendogli la strada a informazioni riservate, è opportuno prestare particolare attenzione alle questioni dell'accumulo di chiavi.

Le chiavi segrete non devono mai essere scritte in modo esplicito su un supporto che può essere letto o copiato.

In un sistema abbastanza complesso, un utente può lavorare con una grande quantità di informazioni chiave e talvolta diventa persino necessario organizzare minidatabase di informazioni chiave. Tali database sono responsabili dell'accettazione, della memorizzazione, della registrazione e della cancellazione delle chiavi utilizzate.

Ogni informazione sulle chiavi utilizzate deve essere conservata in forma crittografata. Le chiavi che crittografano le informazioni sulla chiave sono chiamate chiavi master. È auspicabile che ogni utente conosca le chiavi principali a memoria e non le memorizzi affatto su alcun supporto materiale.

Una condizione molto importante per la sicurezza delle informazioni è l'aggiornamento periodico delle informazioni chiave nel sistema. In questo caso è necessario riassegnare sia le chiavi ordinarie che le chiavi master. In sistemi particolarmente critici, le informazioni chiave devono essere aggiornate quotidianamente.

La questione dell'aggiornamento delle informazioni chiave è correlata anche al terzo elemento della gestione delle chiavi: la distribuzione delle chiavi.

Distribuzione delle chiavi. La distribuzione delle chiavi è il processo più critico nella gestione delle chiavi. Ha due requisiti:

    efficienza e precisione di distribuzione;

    segretezza delle chiavi distribuite.

Di recente, c'è stato un notevole spostamento verso l'uso di crittosistemi a chiave pubblica, in cui il problema della distribuzione delle chiavi scompare. Tuttavia, la distribuzione delle informazioni chiave nel sistema richiede nuove soluzioni efficienti.

La distribuzione delle chiavi tra gli utenti è implementata da due diversi approcci:

1 Creando uno o più centri di distribuzione chiave. Lo svantaggio di questo approccio è che il centro di distribuzione sa a chi e quali chiavi sono assegnate e ciò consente di leggere tutti i messaggi che circolano nel sistema. Eventuali abusi influiscono in modo significativo sulla protezione.

2 Scambio di chiavi diretto tra gli utenti del sistema. In questo caso, il problema è autenticare in modo affidabile i soggetti.

In entrambi i casi deve essere garantita l'autenticità della sessione di comunicazione. Questo può essere fornito in due modi:

1 Il meccanismo di richiesta-risposta, che è il seguente. Se l'utente A vuole essere sicuro che i messaggi che riceve dall'utente B non siano falsi, include un elemento imprevedibile (richiesta) nel messaggio inviato a B. Quando risponde, l'utente B deve eseguire alcune operazioni su questo elemento (ad esempio aggiungere 1). Questo non può essere fatto in anticipo, poiché non è noto quale numero casuale arriverà nella richiesta. Dopo aver ricevuto una risposta con i risultati delle azioni, l'utente A può essere sicuro che la sessione sia autentica. Lo svantaggio di questo metodo è la capacità di stabilire schemi, anche se complessi, tra la richiesta e la risposta.

2 Meccanismo timestamp. Implica fissare il tempo per ogni messaggio. In questo caso, ogni utente del sistema può sapere quanti anni ha il messaggio in arrivo.

In entrambi i casi, la crittografia dovrebbe essere utilizzata per garantire che la risposta non sia stata inviata da un utente malintenzionato e che il timestamp non sia stato alterato.

Quando si utilizzano i timestamp, si verifica un problema con l'intervallo di tempo di ritardo consentito per l'autenticazione della sessione. Dopotutto, un messaggio con un timestamp, in linea di principio, non può essere trasmesso istantaneamente. Inoltre, gli orologi del computer del destinatario e del mittente non possono essere sincronizzati perfettamente.

I crittosistemi a chiave pubblica possono essere utilizzati per lo scambio di chiavi utilizzando lo stesso algoritmo RSA.

Ma l'algoritmo Diffie-Hellman si è rivelato molto efficace, consentendo a due utenti di scambiarsi una chiave senza intermediari, che può poi essere utilizzata per la crittografia simmetrica.

Algoritmo di Diffie-Hellman. Diffie e Helman hanno proposto una funzione di esponenziazione discreta per la creazione di sistemi crittografici a chiave pubblica.

L'irreversibilità della trasformazione in questo caso è assicurata dal fatto che è abbastanza facile calcolare la funzione esponenziale in un campo finito di Galois costituito da p elementi ( pè primo o primo di qualsiasi potenza). Il calcolo dei logaritmi in tali campi è un'operazione che richiede molto più tempo.

Per scambiare informazioni, il primo utente sceglie un numero casuale X 1, equiprobabile di interi da 1 a p– 1. Mantiene segreto questo numero e invia il numero a un altro utente y 1 = , dove α è un elemento fisso del campo di Galois GF(p), che insieme a p è predistribuito tra gli utenti.

Il secondo utente fa lo stesso, generando X 2 e calcolo y 2 , inviandolo al primo utente. Di conseguenza, entrambi possono calcolare la chiave segreta condivisa K 12 =
.

Per calcolare K 12, il primo utente rilancia y 2 alla potenza X 1 e trova il resto dopo aver diviso per p. Il secondo utente fa lo stesso, usando solo y 1 e X 2. Pertanto, entrambi gli utenti hanno una chiave comune K 12, che può essere utilizzato per crittografare informazioni con algoritmi convenzionali. A differenza dell'algoritmo RSA, questo algoritmo non crittografa le informazioni effettive.

Senza sapere X 1 e X 2 , un utente malintenzionato potrebbe provare a calcolare K 12, sapendo solo intercettato y 1 e y 2. L'equivalenza di questo problema con il problema del calcolo del logaritmo discreto è una questione importante e aperta nei sistemi a chiave pubblica. Una soluzione semplice non è stata ancora trovata. Quindi, se la trasformazione diretta di numeri primi a 1000 bit richiede 2000 operazioni, la trasformazione inversa (calcolo del logaritmo nel campo di Galois) richiederà circa 1030 operazioni.

Come si può notare, nonostante la semplicità dell'algoritmo di Diffie-Hellman, il suo svantaggio rispetto al sistema RSA è l'assenza di una stima inferiore garantita della complessità della divulgazione della chiave.

Inoltre, sebbene l'algoritmo descritto aggiri il problema della trasmissione della chiave nascosta, rimane la necessità di autenticazione. Senza fondi aggiuntivi, uno degli utenti non può essere sicuro di aver scambiato le chiavi con l'utente esatto di cui ha bisogno.

Gestione delle chiavi

Oltre alla scelta di un sistema crittografico adatto a un particolare circuito integrato, la gestione delle chiavi è una questione importante. Per quanto complesso e sicuro sia il crittosistema stesso, si basa sull'uso delle chiavi. Se per garantire lo scambio riservato di informazioni tra due utenti, il processo di scambio delle chiavi è banale, ma in un IS, dove il numero di utenti è di decine e centinaia, la gestione delle chiavi è un problema serio.

Per informazione chiave si intende la totalità di tutte le chiavi operanti nell'IS. Se non viene fornita una gestione sufficientemente affidabile delle informazioni chiave, dopo averne preso possesso, l'attaccante ottiene un accesso illimitato a tutte le informazioni.

La gestione delle chiavi è un processo informativo che comprende tre elementi: generazione delle chiavi, accumulazione delle chiavi, distribuzione delle chiavi.

Generazione di chiavi

Non utilizzare chiavi non casuali per renderle facili da ricordare. Nei circuiti integrati seri vengono utilizzati metodi hardware e software speciali per la generazione di chiavi casuali. Il grado di casualità della loro generazione dovrebbe essere sufficientemente alto. I generatori ideali sono dispositivi basati su processi casuali naturali. Ad esempio, sono apparsi campioni seriali di generazione di chiavi basati sul rumore radio bianco.

Accumulo di chiavi

Per accumulo di chiavi si intende l'organizzazione della loro conservazione, contabilità e cancellazione. Le chiavi segrete non devono mai essere scritte in modo esplicito su un supporto che può essere letto o copiato.

In un IS abbastanza complesso, un utente può lavorare con una grande quantità di informazioni chiave e talvolta diventa persino necessario organizzare mini-database di informazioni chiave. Tali database sono responsabili dell'accettazione, della memorizzazione, della contabilizzazione e della cancellazione delle chiavi utilizzate.

Una condizione molto importante per la sicurezza delle informazioni è l'aggiornamento periodico delle informazioni chiave nell'IS. In un SI particolarmente responsabile, è auspicabile aggiornare le informazioni chiave su base giornaliera.

Distribuzione delle chiavi

Questo è il processo più responsabile nella gestione delle chiavi. Gli vengono imposti due requisiti: l'efficienza e l'accuratezza della distribuzione e la segretezza delle chiavi distribuite.

La distribuzione delle chiavi tra gli utenti è implementata da due diversi approcci:

creando uno o più centri di distribuzione chiave.

Lo svantaggio di questo approccio è che il centro di distribuzione sa a chi e quali chiavi sono assegnate e ciò consente di leggere tutti i messaggi che circolano nell'IS. Eventuali abusi influiscono in modo significativo sulla protezione.

scambio diretto di chiavi tra utenti del sistema informativo.

In questo caso, il problema è autenticare in modo affidabile i soggetti.

In entrambi i casi deve essere garantita l'autenticità della sessione di comunicazione.

Come generalizzazione di quanto detto sulla distribuzione delle chiavi, va detto quanto segue. Il compito della gestione delle chiavi si riduce a trovare un protocollo di distribuzione delle chiavi che fornisca:

Opportunità di rinunciare a un centro di distribuzione delle chiavi

autenticazione reciproca dei partecipanti alla sessione

la conferma dell'autenticità della sessione da parte del meccanismo di richiesta-risposta, l'utilizzo di software o hardware per questo, l'utilizzo di un numero minimo di messaggi nello scambio delle chiavi.

Lezione 6: Gestione delle chiavi crittografiche. protocolli crittografici.

Domande:

1. protocolli crittografici.

2. Distribuzione di chiavi segrete.

3. Distribuzione di chiavi pubbliche.

4. Distribuzione di chiavi segrete mediante un sistema a chiave pubblica.

1 Protocolli crittografici.

Protocollo crittografico - un insieme di regole formalizzate che descrivono la sequenza di azioni compiute da due o più parti per risolvere il problema della protezione delle informazioni mediante crittografia. Cioè, un protocollo crittografico include un algoritmo crittografico.

Nella vita di tutti i giorni, i protocolli informali sono usati quasi ovunque:

· quando si gioca a carte;

· quando si ordinano merci per telefono.

Questi protocolli sono stati sviluppati per molto tempo e funzionano in modo abbastanza affidabile.

I protocolli informatici sono un'altra cosa. Per fare ciò che gli esseri umani fanno senza pensare, i computer hanno bisogno di protocolli formali.

Per facilitare la dimostrazione del funzionamento dei protocolli, vengono utilizzati più partecipanti:

· Alice è la prima partecipante.

· Bob è il secondo partecipante.

· Carol partecipa a protocolli tripartiti.

· Dave è un protocollo a quattro vie.

· Eve è un intercettore di messaggi.

· Mallory è un ladro attivo.

· Trento è un intermediario di fiducia.

· Walter è il guardiano (protegge Alice e Bob).

· Peggy è una sfidante (cerca di dimostrare qualcosa).

· Victor è il verificatore (controlla Peggy).

Distinguere:

· protocolli autonomi;

· protocolli con un intermediario;

· protocolli arbitrali.

In protocolli autonomi l'onestà delle parti è garantita dal protocollo stesso. Non sono necessarie terze parti per eseguire il protocollo. L'assenza di controversie è assicurata dalla progettazione del protocollo. Questo è il miglior tipo di protocollo, ma sfortunatamente questi protocolli non sono adatti a tutte le situazioni.

Alice Bob

Protocolli intermedi.

mediatorechiamata disinteressato terza parte, che affidato completare l'esecuzione del protocollo. "Disinteresse" significa che l'intermediario è indifferente sia al risultato dell'esecuzione del protocollo che a qualsiasi suo partecipante. Tutti i partecipanti al protocollo percepiscono le parole del mediatore come verità, tutte le sue azioni sono riconosciute come corrette.

Nella vita di tutti i giorni, un intermediario può essere un avvocato, un'agenzia, una banca, ecc. Con le reti di computer, la situazione è più complicata.


Protocolli con un arbitro.


Arbitroè un tipo speciale di intermediario. Questo è disinteressato e fidato il terzo lato. A differenza del mediatore, non partecipa necessariamente all'esecuzione di ogni protocollo, ma solo quando sorgono disaccordi tra le parti.

I giudici sono un esempio.

Sono noti i protocolli informatici dell'arbitrato. Questi protocolli si basano sul presupposto che le parti siano oneste. Tuttavia, se qualcuno sospetta una frode, una terza parte fidata può esporre la frode in base al set di dati esistente. Inoltre, un buon protocollo di arbitrato consente all'arbitro di identificare l'attaccante. Quindi, protocolli arbitrali non prevenire, un rilevare le frodi. In questo caso, l'inevitabilità del rilevamento funge da misura preventiva che scoraggia l'attaccante.

Organizzazione della comunicazione mediante crittografia simmetrica.

Modello simmetrico del crittosistema:

1. Alice e Bob scelgono un crittosistema.

2. Alice e Bob scelgono una chiave.

3. Alice crittografa il testo in chiaro del messaggio utilizzando l'algoritmo di crittografia e la chiave.

4. Alice invia il testo cifrato a Bob.

5. Bob decifra il testo cifrato usando la chiave e ottiene il testo in chiaro.

Eve, trovandosi tra Alice e Bob, può origliare la trasmissione solo al passaggio 4, quindi dovrà crittografare il testo cifrato. Questo è un attacco passivo che utilizza solo testo cifrato.

Eve può intercettare i passaggi 1 e 2. In un buon sistema crittografico, la sicurezza dipende dalla conoscenza della chiave. Questo è il motivo per cui la gestione delle chiavi è così importante nella crittografia.

Il cracker attivo di Mallory può andare oltre. Al passaggio 4, può interrompere la linea di comunicazione. Oppure intercetta il messaggio di Alice e sostituiscilo con il suo. Non c'è modo per Bob di riconoscere che il messaggio non è stato inviato da Alice.

Alice o Bob possono dare una copia della chiave a Eve e così via.

Riassumendo, elenchiamo svantaggi dei crittosistemi simmetrici:

1. Le chiavi sono preziose quanto i messaggi che crittografano, quindi problema di distribuzione delle chiavi.

2. Al ricevimento della chiave è possibile generare messaggi falsi.

3. Se ogni coppia di utenti della rete utilizzerà una chiave separata, il numero totale di chiavi aumenta rapidamente con il numero di utenti.

n utenti - n (n - 1) / 2 - chiavi,

10 utenti - 45 chiavi,

100 utenti - 4950 chiavi, ecc.

Stabilire la comunicazione utilizzando la crittografia a chiave pubblica.

1. Alice e Bob accettano di utilizzare un sistema crittografico a chiave pubblica.

2. Bob invia la sua chiave pubblica ad Alice.

3. Alice crittografa il suo messaggio utilizzando la chiave pubblica di Bob e lo invia a Bob.

4. Bob decifra il messaggio con la sua chiave privata.

Pertanto, il problema della distribuzione delle chiavi, che è doloroso per i crittosistemi simmetrici, viene eliminato.


2. Distribuzione delle chiavi segrete.

Con la crittografia tradizionale, entrambe le parti devono ricevere la stessa chiave. Per motivi di sicurezza, sono necessari frequenti cambi di chiave.

Così la forza di qualsiasi sistema crittografico simmetrico dipende molto dal sistemi di distribuzione delle chiavi (vale a dire mezzi per consegnare le chiavi a due parti).

Per i due lati A e B, la distribuzione delle chiavi può essere organizzata in vari modi:

1. La chiave viene scelta dalla parte A e consegnata fisicamente a B.

2. La chiave viene scelta da una terza parte e consegnata fisicamente ad A e B.

3. Una delle parti trasmette la nuova chiave in forma crittografata utilizzando la vecchia chiave.

4. La terza parte C consegna la chiave ad A e B tramite canali di comunicazione sicuri, ad es. alcuni Centro distribuzione chiavi (KDC).

Lo schema di distribuzione delle chiavi (protocollo) può essere centralizzato e distribuito(con un intermediario e autosufficiente).

Considera l'elemento 4.

L'utilizzo del CRC comporta l'organizzazione di una gerarchia di chiavi (almeno due livelli). La comunicazione tra gli utenti finali è crittografata utilizzando una chiave temporanea chiamata chiave di sessione . La chiave di sessione viene ricevuta dal CRC tramite gli stessi canali di comunicazione utilizzati per la consegna dei dati. Le chiavi di sessione vengono trasmesse in forma crittografata e vengono crittografate utilizzando chiave maestra , comune per CRC e questo utente.

Chiavi principali richieste N (in base al numero di utenti). Sono distribuiti in modo non crittografico (consegna fisica al destinatario).

Scenario di distribuzione delle chiavi (schema centrale).

Si supponga che l'utente A intenda trasmettere informazioni all'utente B e che sia necessaria una chiave di sessione monouso per proteggere i dati.

L'utente A ha la chiave segreta K. un , noto solo a lui e CRC, e l'utente B ha K b (K a e K b sono le chiavi principali, K S – chiave di sessione monouso).

Lo scambio di informazioni avviene come segue:

1. L'utente A invia una richiesta al CRC per ricevere una chiave di sessione per proteggere la comunicazione con B.

La richiesta inviata deve contenere:

- informazioni che consentono di identificare in modo univoco A e B ( ID A, ID B);

- qualche identificatore N 1 , unico per ogni richiesta e chiamato un'opportunità. L'opportunità può essere il tempo, un contatore, un numero casuale.

2. CRC risponde alla richiesta dell'utente A, crittografare la risposta con la chiave K un(A principale). L'unico utente che può leggere la risposta è A (quindi A è sicuro che il messaggio provenga dal CRC).

Il messaggio di risposta include i seguenti elementi:

· Progettato per A :

S (per collegare A con B).

- Richiesta con una svolta N 1 in modo che l'utente A possa abbinare la risposta alla richiesta.

Pertanto, A può assicurarsi che la sua richiesta non sia stata modificata sulla strada per il CRC e l'opportunità non consente di confondere la risposta a questa richiesta con la risposta a richieste precedenti.

· Progettato per B .

Tasto sessione monouso K S .

ID utente A - ID A (ad esempio, indirizzo di rete A).

Entrambi gli elementi vengono crittografati utilizzando la chiave KB (la chiave principale del CRC e B). Dovrebbero essere successivamente inviati a B per stabilire una connessione e identificare A.

E Ka [ K S ||Richiesta|| N 1 || E Kb (K S , ID A )]

3. L'utente A salva la sua chiave di sessione e invia alla parte B le informazioni dalla CMC destinate a B.

L'utente B riceve K S e sa che le informazioni ricevute provengono dal CRC (perché è crittografato da C B, che è noto solo a B e CRC).

Pertanto, A e B hanno una chiave di sessione, ma prima di scambiare i dati, è opportuno eseguire le seguenti operazioni:

4. Utilizzando la chiave di sessione ricevuta K S l'utente B invia all'utente A una nuova opportunità N2.

5. Con l'aiuto di K s l'utente A ritorna f (N 2 ). Ciò è necessario per convincere B che il messaggio originariamente ricevuto non è stato riprodotto dall'attaccante.

Pertanto, non viene fornito solo il trasferimento della chiave, ma anche l'autenticazione (passaggi 4 e 5).


Non è necessario assegnare la funzione di distribuzione delle chiavi a un CRC. È più vantaggioso utilizzare una gerarchia CRC. Più spesso vengono modificate le chiavi di sessione, più sono affidabili, ma la distribuzione delle chiavi di sessione ritarda l'inizio di una sessione di scambio di dati e aumenta il carico di rete.

L'uso del CRC implica che il CRC dovrebbe ispirare fiducia ed essere protetto in modo affidabile dall'invasione. Questi requisiti possono essere derogati se viene utilizzato uno schema di distribuzione delle chiavi decentralizzato (autosufficiente).

Schema di distribuzione delle chiavi decentralizzato.

La chiave di sessione può essere determinata come risultato della seguente sequenza di azioni:


1) A invia una richiesta per ricevere K s + opportunità N 1 .

2) B risponde crittografando la risposta utilizzando la chiave master comune di A e B E MK m .

3) A restituisce f (N 2 ), cifrando con K S .

3. Distribuzione delle chiavi pubbliche.

Una delle principali applicazioni dello schema di crittografia a chiave pubblica è una soluzione al problema della distribuzione delle chiavi. Ci sono due usi completamente diversi per la crittografia a chiave pubblica in quest'area:

1. distribuzione di chiavi pubbliche;

2. utilizzando la crittografia a chiave pubblica per distribuire le chiavi segrete.

Sono stati proposti diversi metodi per la distribuzione delle chiavi pubbliche. Infatti, possono essere raggruppati nelle seguenti classi generali:

1. annuncio pubblico;

2. directory accessibile al pubblico;

4. certificati a chiave pubblica.

1) Annuncio pubblico di chiavi pubbliche (Distribuzione incontrollata) .

Qualsiasi parte coinvolta nello scambio di dati può fornire la propria chiave pubblica a qualsiasi altra parte o trasferire la chiave tramite i mezzi di comunicazione a chiunque: una distribuzione incontrollata di chiavi pubbliche.

Questo approccio è conveniente, ma uno svantaggio: un tale annuncio pubblico può essere fatto da chiunque, incluso un attaccante. Ciò significa che qualcuno si atteggia a utente A e invia la chiave pubblica a un altro utente della rete o offre tale chiave pubblica per uso pubblico. Mentre l'utente A apre la frode e avverte gli altri utenti, il falsario sarà in grado di leggere tutti i messaggi crittografati ricevuto durante questo periodo per A e sarà in grado di utilizzare chiavi falsificate per l'autenticazione.

2) Directory accessibile al pubblico (Schema centralizzato).

È possibile fornire un livello di sicurezza più elevato utilizzando un catalogo di chiavi pubbliche dinamiche pubblicamente disponibile. Qualche centro o organizzazione di fiducia dovrebbe essere responsabile della manutenzione e della distribuzione del catalogo pubblico. Tale schema dovrebbe includere i seguenti elementi:

1. Un oggetto autorevole che mantiene una directory con voci del modulo (nome, chiave pubblica) per ogni membro.

2. Ogni partecipante registra la sua chiave pubblica. Tale registrazione dovrebbe avvenire sia alla comparsa personale del partecipante, sia attraverso canali di comunicazione sicuri.

3. Ogni partecipante può sostituire in qualsiasi momento la chiave esistente con una nuova utilizzando i mezzi di autenticazione. (Forse la chiave privata è stata compromessa in qualche modo, o molte informazioni sono già state trasferite utilizzandola.)

4. L'intero catalogo oi suoi aggiornamenti vengono pubblicati periodicamente.

Questo schema è più sicuro dei singoli annunci pubblici, ma è anche vulnerabile. . Se un avversario riesce ad ottenere la chiave privata di un oggetto autorizzato a mantenere una directory, lui sarà in grado emettere chiavi pubbliche falsificate e, pertanto, parlare a nome di qualsiasi partecipante allo scambio di dati e leggere i messaggi destinati a qualsiasi partecipante. Stesso risultato il nemico può raggiungere con modifiche alle voci memorizzate nella directory.

La migliore protezionela distribuzione delle chiavi pubbliche può essere ottenuta mediante un controllo più rigoroso sulla distribuzione delle chiavi pubbliche.

Di seguito è mostrato uno scenario tipico. Lo scenario presuppone la presenza di alcuni CRC autorizzati a mantenere un catalogo dinamico delle chiavi pubbliche di tutti i partecipanti allo scambio dati. Inoltre, la chiave pubblica del centro è nota in modo affidabile a ciascuno dei partecipanti, ma solo il centro conosce la chiave privata corrispondente. In tal modo, vengono eseguite le seguenti azioni:

(1) L'iniziatore A invia un messaggio con un contrassegno di data/ora (opportunità N 1 ) a una fonte autorevole di chiavi pubbliche con una richiesta della chiave pubblica corrente del partecipante B.

(2) La fonte autorevole risponde con un messaggio crittografato utilizzando la chiave privata della fonte autorevole KR aut . Questo messaggio può essere decrittografato dall'originatore A utilizzando la chiave pubblica della fonte autorevole. Pertanto, il mittente A può essere sicuro che il messaggio provenga da una fonte autorevole. Questo messaggio dovrebbe includere quanto segue:

· Chiave pubblica del partecipante B , KU b ;

· Richiesta originale in modo che la parte A possa verificare che la richiesta non sia stata modificata in rotta verso una fonte autorevole.


· Data/ora originale (opportunità N 1 ) in modo che il mittente A possa verificare che questa sia la risposta a questa particolare richiesta.

(3) L'iniziatore A salva la chiave pubblica della parte B e la usa per crittografare un messaggio inviato al destinatario B contenente l'identità del mittente A ( ID A ) e opportunità N 1 .

(4) (5) Il convenuto B riceve la chiave pubblica del partecipante A da una fonte autorevole esattamente nello stesso modo in cui il mittente A ha ricevuto la chiave pubblica del destinatario B.

A questo punto, le chiavi pubbliche sono state consegnate ai partecipanti A e B, quindi che ora A e B possono avviare uno scambio di dati sicuro. Ma prima è auspicabile farne due prossimo azioni aggiuntive.

(6) Il convenuto B invia un messaggio all'iniziatore A, crittografato con KU A e contenente l'opportunità del mittente A ( N 1 ), nonché una nuova opportunità generata dal partecipante B ( N2). Presenza N 1 nel messaggio (6) convince il partecipante A che il mittente del messaggio ricevuto era B.

(7) L'iniziatore A ritorna N2 crittografato con la chiave pubblica della parte B in modo che la parte B possa verificare che il mittente della risposta sia A.

Così, saranno richiesti un totale di sette messaggi. Tuttavia inviare i primi quattro messaggi di rado, poiché entrambe le parti possono archiviare le reciproche chiavi pubbliche per un uso successivo, operazione comunemente denominata memorizzazione nella cache.

4) Certificati a chiave pubblica .

Un approccio alternativo è stato proposto da Confelder. Si basa su certificati.

Ogni certificato contiene chiave pubblica e altre informazioni generate da un'autorità di certificazione autorevole e rilasciate al partecipante.

Requisiti di sistema :

1. Qualsiasi parte deve essere in grado di leggere il certificato per determinare il nome e la chiave pubblica del proprietario del certificato.

2. Qualsiasi partecipante dovrebbe essere in grado di verificare che il certificato provenga da una fonte di certificato autorevole e non sia un falso.

4. Denningaggiunto il seguente requisito - ogni partecipante deve essere in grado di verificare il periodo di validità del certificato.


Riso. Scambio di certificati a chiave pubblica.

Ogni partecipante si candida all'AIS , fornendo una chiave pubblica e richiedendo un certificato tramite un modulo di comunicazione sicura.

AIS invia i certificati C A e C B contenenti 1) il periodo di validità del certificato; 2) l'identificativo del titolare; 3) la chiave pubblica del titolare del certificato. I certificati sono crittografati con la chiave privata della fonte autorevole.

E può inviare il certificato a qualsiasi partecipante.

Il destinatario utilizza la chiave pubblica KU aut AIS per leggere il certificato. Ciò garantisce che il certificato provenga da lui.

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. Distribuzione di chiavi segrete mediante un sistema a chiave pubblica.

Alcuni utenti preferiranno utilizzare la crittografia a chiave pubblica solo in casi eccezionali, poiché le velocità di trasferimento dei dati sono relativamente lente quando viene utilizzata la crittografia. Pertanto, la crittografia a chiave pubblica dovrebbe essere considerata più come un mezzo di distribuzione delle chiavi segrete utilizzate per la crittografia tradizionale.

1) Schema Merkle (protocollo autonomo)

Se l'iniziatore A intende scambiare dati con l'utente B, si assume la seguente procedura:


1. La parte A genera una coppia di chiavi pubblica/privata ( KU A, KR A ) e invia un messaggio alla parte B contenente KU A e ID mittente A, ID A.

2. Il destinatario B genera una chiave segreta KS e trasmette questa chiave all'iniziatore del messaggio A crittografato con la chiave pubblica dell'iniziatore A.

3. L'utente A calcola D KRa [ E KUa [ K S ]] per recuperare la chiave segreta. Poiché solo la parte A può decifrare questo messaggio, solo le parti A e B conosceranno il valore KS.

Ora entrambe le parti, A e B, possono utilizzare la comunicazione protetta dalla crittografia tradizionale con una chiave di sessione K S . Al termine dello scambio di dati, sia A che B si buttano fuori K S . Nonostante la sua semplicità, questo protocollo è molto interessante.

Dignità: Nessuna chiave esiste prima dell'inizio della comunicazione e nessuna chiave rimane al termine della comunicazione. Pertanto, il rischio di compromesso è minimo.. Allo stesso tempo, la comunicazione è protetta dalle intercettazioni.

Difetto: Questo protocollo è vulnerabile a attacchi attivi. Se l'avversario E ha la capacità di penetrare nel canale di comunicazione, allora può compromettere la comunicazione senza essere scoperto, nel modo seguente.

1. Il partecipante A genera una coppia di chiavi pubblica/privata ( KU A, KR A KU A e ID partecipante A, ID A.

2. L'avversario E intercetta il messaggio, genera la propria coppia di chiavi pubblica/privata ( KU E, KR E ) e invia un messaggio al destinatario B contenente KU E || ID A.

3. B genera una chiave segreta K S e trasmette E KUe [ K S ].

4. L'avversario E intercetta questo messaggio e impara K S , calcolando D KRe [ E KUe [ K S ]].

5. L'avversario E invia un messaggio al partecipante A E KU a [ K S ].

Di conseguenza, entrambi i partecipanti, A e B, lo sapranno K S , ma non lo sospetterò K S noto anche al nemico E . Così, questo semplice il protocollo è utile solo quando c'è l'unica minaccia possibile intercettazione passiva dei messaggi.

2) Distribuzione di chiavi segrete con riservatezza e autenticazione.

Lo schema fornisce protezione contro le forme di attacco sia attive che passive. Come premessa, supponiamo che A e B abbiano già scambiato chiavi pubbliche utilizzando uno degli schemi sopra descritti.


(1) La Parte A utilizza la chiave pubblica della Parte B per inviare alla Parte B un messaggio crittografato contenente l'identità della Parte A ( ID A ) e opportunità (N 1 ) utilizzato per identificare questa particolare transazione.

(2) L'utente B decodifica (1) utilizzando KR B . L'utente B invia un messaggio all'utente A crittografato con KU A e contenente l'opportunità da essa ricevuta ( N 1) e una nuova opportunità (N 2 ). Poiché solo la parte B può decifrare il messaggio (1), la presenza N 1 nel messaggio (2) convince il partecipante A che la parte B è il rispondente.

( 3) Ritorna la parte A N 2 , crittografando il messaggio con la chiave pubblica della parte B per garantire che la parte A sia il rispondente.

(4) Il partecipante A sceglie una chiave segreta K S e invia un messaggio al partecipante B M = E KUb [E KRa [K S ]]. La crittografia di questo messaggio con la chiave pubblica di B garantisce che solo B possa leggerlo e la crittografia con la chiave privata di A garantisce che solo A possa inviarlo.

(5) La parte B calcola B KU a [ E KRb [ K S ]] per recuperare la chiave segreta.

Durante lo scambio di chiavi segrete, questo schema garantisce sia la riservatezza che l'autenticazione.

3) Schema ibrido (a tre livelli).

Rappresenta un approccio ibrido applicato ai mainframe IBM . Questo schema mediato prevede la partecipazione di un centro di distribuzione delle chiavi (KDC), con il quale ogni utente condivide la propria chiave segreta principale, e la distribuzione di chiavi di sessione segrete crittografate dalla chiave principale. Uno schema di crittografia a chiave pubblica viene utilizzato per distribuire le chiavi master. Questo approccio a tre livelli si basa sulla seguente logica:

· La velocità della procedura .

Esistono molte applicazioni in cui le chiavi di sessione devono essere modificate molto frequentemente. La distribuzione delle chiavi di sessione utilizzando uno schema a chiave pubblica potrebbe rallentare le prestazioni del sistema a causa dei requisiti relativamente elevati di risorse di calcolo per la crittografia e la decrittografia utilizzando tale schema. Nel caso di una gerarchia a tre livelli, la crittografia a chiave pubblica viene utilizzata solo occasionalmente per modificare la chiave master.

· retrocompatibilità .

Lo schema ibrido può essere facilmente implementato come estensione di uno schema già esistente che prevede l'uso della RDC, con modifiche minime alla procedura e al software forniti.

L'aggiunta di un livello di crittografia a chiave pubblica fornisce un mezzo sicuro ed efficiente per distribuire le chiavi principali. Questo è un vantaggio in una configurazione in cui un DSC serve un gran numero di utenti situati a notevole distanza l'uno dall'altro.

5. Scambio di chiavi Diffie-Hellman.

Il primo algoritmo pubblicato basato su chiavi pubbliche è apparso nel lavoro di Diffie e Hellman, in cui è stato definito il concetto stesso di crittografia a chiave pubblica. Generalmente questo algoritmo è chiamato scambio di chiavi Diffie-Hellman. Questa tecnologia di scambio di chiavi è implementata in numerosi prodotti commerciali. .

Scopo dello schema– fornire a due utenti un'opportunità sicura per comunicare la chiave tra loro in modo che possano utilizzarla per crittografare i messaggi successivi.

La forza crittografica dell'algoritmo Diffie-Hellman si basa sulla difficoltà di calcolare logaritmi discreti . Formalmente, il logaritmo discreto può essere definito come segue. Innanzitutto, viene determinata la radice primitiva di un numero primo p- il numero a, le cui potenze generano tutti gli interi da 1 a p-1. Ciò significa che se a è una radice primitiva di un numero primo p , quindi tutti i numeri

a mod p, a 2 mod p,…, a p-1 mod p

deve essere diverso e rappresentare tutti gli interi da 1 a p -1 in alcune permutazioni.

Lo scambio di chiavi Diffie-Hellman è illustrato nella figura. In questo schema, ci sono due numeri aperti a tutti: un numero primo q e un intero a, che è una radice primitiva q . Supponiamo che gli utenti A e B intendano scambiarsi chiavi.

L'utente A sceglie un numero intero casuale X A< q e calcola Y A =a XA mod q . Allo stesso modo, l'utente B sceglie indipendentemente un numero intero casuale XB< q и вычисляет Y B = a XB mod q . Ciascuna parte mantiene segreto il valore di X e ne fa il valore Y libero dall'altra parte. L'utente A calcola la chiave utilizzando la formula K = ( Y B ) XA mod q , e l'utente B con la formula K = ( Y A ) X B mod q . Questi due formule di calcolo danno gli stessi risultati.

Quindi entrambe le parti si sono scambiate le chiavi segrete. E poiché allo stesso tempo X A e X B erano solo per uso personale e quindi tenuti segreti, il nemico dovrà lavorare solo con q , a , X A, X B . Pertanto, dovrà calcolare il logaritmo discreto per determinare la chiave. Ad esempio, per definire una chiave.

Dopodiché, sarà in grado di calcolare la chiave K allo stesso modo dell'utente B.

La sicurezza dello scambio di chiavi Diffie-Hellman si basa infatti sul fatto che mentre le potenze modulo di un numero primo sono relativamente facili da calcolare, i logaritmi discreti sono molto difficili da calcolare. Per i numeri primi grandi, quest'ultimo è considerato un problema praticamente irrisolvibile.


Il nemico lo sa q, a, Y A, Y B. Per determinare la chiave, devi calcolare il logaritmo discreto.

Per quanto complesso e sicuro sia il crittosistema stesso, si basa sull'uso delle chiavi. Se il processo di scambio delle chiavi è banale per garantire lo scambio riservato di informazioni tra due utenti, in un sistema in cui il numero di utenti è di decine e centinaia, la gestione delle chiavi è un problema serio.

L'informazione chiave è intesa come la totalità di tutte le chiavi che operano nel sistema. Se non viene fornita una gestione sufficientemente affidabile delle informazioni chiave, allora, dopo averne preso possesso, l'attaccante ottiene un accesso illimitato a tutte le informazioni.

La gestione delle chiavi è un processo informativo che comprende tre elementi:

generazione di chiavi;

Accumulo di chiavi;

Distribuzione delle chiavi.

Generazione di chiavi. I sistemi reali utilizzano metodi hardware e software speciali per generare chiavi casuali. Di norma, vengono utilizzati generatori di numeri casuali. Tuttavia, il grado di casualità della loro generazione dovrebbe essere sufficientemente alto. I generatori ideali sono dispositivi basati su processi casuali “naturali”. Ad esempio, generazione di chiavi basata sul rumore radio bianco. Un altro oggetto matematico casuale sono le cifre decimali dei numeri irrazionali, come p o e, che vengono calcolati utilizzando metodi matematici standard.

In sistemi con requisiti di sicurezza medi, sono abbastanza accettabili i generatori di chiavi software, che calcolano numeri casuali come una funzione complessa dell'ora corrente e/o un numero inserito dall'utente.

Accumulo di chiavi. Per accumulo di chiavi si intende l'organizzazione della loro conservazione, contabilità e cancellazione.

Poiché la chiave è l'oggetto più attraente per un attaccante, aprendogli la strada a informazioni riservate, è opportuno prestare particolare attenzione alle questioni dell'accumulo di chiavi.

Le chiavi segrete non devono mai essere scritte in modo esplicito su un supporto che può essere letto o copiato.

In un sistema abbastanza complesso, un utente può lavorare con una grande quantità di informazioni chiave e talvolta diventa persino necessario organizzare minidatabase di informazioni chiave. Tali database sono responsabili dell'accettazione, della memorizzazione, della registrazione e della cancellazione delle chiavi utilizzate.

Ogni informazione sulle chiavi utilizzate deve essere conservata in forma crittografata. Le chiavi che crittografano le informazioni sulla chiave sono chiamate chiavi master. È auspicabile che ogni utente conosca le chiavi principali a memoria e non le memorizzi affatto su alcun supporto materiale.

Una condizione molto importante per la sicurezza delle informazioni è l'aggiornamento periodico delle informazioni chiave nel sistema. In questo caso è necessario riassegnare sia le chiavi ordinarie che le chiavi master. In sistemi particolarmente critici, le informazioni chiave devono essere aggiornate quotidianamente.


La questione dell'aggiornamento delle informazioni chiave è correlata anche al terzo elemento della gestione delle chiavi: la distribuzione delle chiavi.

Distribuzione delle chiavi. La distribuzione delle chiavi è il processo più critico nella gestione delle chiavi. Ha due requisiti:

Efficienza e precisione di distribuzione;

Segretezza delle chiavi distribuite.

Di recente, c'è stato un notevole spostamento verso l'uso di crittosistemi a chiave pubblica, in cui il problema della distribuzione delle chiavi scompare. Tuttavia, la distribuzione delle informazioni chiave nel sistema richiede nuove soluzioni efficienti.

La distribuzione delle chiavi tra gli utenti è implementata da due diversi approcci:

1 Creando uno o più centri di distribuzione chiave. Lo svantaggio di questo approccio è che il centro di distribuzione sa a chi e quali chiavi sono assegnate e ciò consente di leggere tutti i messaggi che circolano nel sistema. Eventuali abusi influiscono in modo significativo sulla protezione.

2 Scambio di chiavi diretto tra gli utenti del sistema. In questo caso, il problema è autenticare in modo affidabile i soggetti.

In entrambi i casi deve essere garantita l'autenticità della sessione di comunicazione. Questo può essere fornito in due modi:

1 Il meccanismo di richiesta-risposta, che è il seguente. Se l'utente A vuole essere sicuro che i messaggi che riceve dall'utente B non siano falsi, include un elemento imprevedibile (richiesta) nel messaggio inviato a B. Quando risponde, l'utente B deve eseguire alcune operazioni su questo elemento (ad esempio aggiungere 1). Questo non può essere fatto in anticipo, poiché non è noto quale numero casuale arriverà nella richiesta. Dopo aver ricevuto una risposta con i risultati delle azioni, l'utente A può essere sicuro che la sessione sia autentica. Lo svantaggio di questo metodo è la capacità di stabilire schemi, anche se complessi, tra la richiesta e la risposta.

2 Meccanismo timestamp. Implica fissare il tempo per ogni messaggio. In questo caso, ogni utente del sistema può sapere quanti anni ha il messaggio in arrivo.

In entrambi i casi, la crittografia dovrebbe essere utilizzata per garantire che la risposta non sia stata inviata da un utente malintenzionato e che il timestamp non sia stato alterato.

Quando si utilizzano i timestamp, si verifica un problema con l'intervallo di tempo di ritardo consentito per l'autenticazione della sessione. Dopotutto, un messaggio con un timestamp, in linea di principio, non può essere trasmesso istantaneamente. Inoltre, gli orologi del computer del destinatario e del mittente non possono essere sincronizzati perfettamente.

I crittosistemi a chiave pubblica possono essere utilizzati per lo scambio di chiavi utilizzando lo stesso algoritmo RSA.

Ma l'algoritmo Diffie-Hellman si è rivelato molto efficace, consentendo a due utenti di scambiarsi una chiave senza intermediari, che può poi essere utilizzata per la crittografia simmetrica.

Algoritmo di Diffie-Hellman. Diffie e Helman hanno proposto una funzione di esponenziazione discreta per la creazione di sistemi crittografici a chiave pubblica.

L'irreversibilità della trasformazione in questo caso è assicurata dal fatto che è abbastanza facile calcolare la funzione esponenziale in un campo finito di Galois costituito da p elementi ( pè primo o primo di qualsiasi potenza). Il calcolo dei logaritmi in tali campi è un'operazione che richiede molto più tempo.

Per scambiare informazioni, il primo utente sceglie un numero casuale X 1, equiprobabile di interi da 1 a p– 1. Mantiene segreto questo numero e invia il numero a un altro utente y 1 = , dove α è un elemento fisso del campo di Galois GF(p), che insieme a p è predistribuito tra gli utenti.

Il secondo utente fa lo stesso, generando X 2 e calcolo y 2 , inviandolo al primo utente. Di conseguenza, entrambi possono calcolare la chiave segreta condivisa K 12 = .

Per calcolare K 12, il primo utente rilancia y 2 alla potenza X 1 e trova il resto dopo aver diviso per p. Il secondo utente fa lo stesso, usando solo y 1 e X 2. Pertanto, entrambi gli utenti hanno una chiave comune K 12, che può essere utilizzato per crittografare informazioni con algoritmi convenzionali. A differenza dell'algoritmo RSA, questo algoritmo non crittografa le informazioni effettive.

Senza sapere X 1 e X 2 , un utente malintenzionato potrebbe provare a calcolare K 12, sapendo solo intercettato y 1 e y 2. L'equivalenza di questo problema con il problema del calcolo del logaritmo discreto è una questione importante e aperta nei sistemi a chiave pubblica. Una soluzione semplice non è stata ancora trovata. Quindi, se la trasformazione diretta di numeri primi a 1000 bit richiede 2000 operazioni, la trasformazione inversa (calcolo del logaritmo nel campo di Galois) richiederà circa 1030 operazioni.

Come si può notare, nonostante la semplicità dell'algoritmo di Diffie-Hellman, il suo svantaggio rispetto al sistema RSA è l'assenza di una stima inferiore garantita della complessità della divulgazione della chiave.

Inoltre, sebbene l'algoritmo descritto aggiri il problema della trasmissione della chiave nascosta, rimane la necessità di autenticazione. Senza fondi aggiuntivi, uno degli utenti non può essere sicuro di aver scambiato le chiavi con l'utente esatto di cui ha bisogno.