184 Shares 7119 views

algoritmo Diffie-Hellman: appuntamento

A quanto pare, poche persone oggi, utilizzando i dati su canali di comunicazione sicuri, immaginare ciò che l'algoritmo Diffie-Hellman. In realtà, molti non capiscono e hanno bisogno. Tuttavia, gli utenti dei sistemi informatici, per così dire, più curioso di capire questo non può far male. In particolare, lo scambio di chiavi Diffie-Hellman può essere utile per gli utenti che sono interessati a questioni di sicurezza delle informazioni e la crittografia.

Qual è il metodo di Diffie-Hellman?

Se affrontiamo la questione dell'algoritmo stesso, ma senza entrare nei dettagli tecnici e matematici, possiamo definirlo come un metodo di codifica e decodifica delle informazioni trasmesse e ricevute tra due o più utenti di computer di o altri sistemi che coinvolgono lo scambio di dati con l'uso di un canale di comunicazione protetto.

Come è evidente, in assenza del canale di protezione di intercettare o modificare file nel processo di trasmissione e ricezione, e l'attaccante può. Tuttavia, la distribuzione delle chiavi Diffie-Hellman per l'accesso per trasmettere e ricevere dati in modo tale che la manomissione è quasi completamente eliminato. In questa informazione comunicazione registrato con il canale di comunicazione (senza protezione dello stesso) diventa sicura se entrambe le parti utilizzano la stessa chiave.

preistoria

L'algoritmo Diffie-Hellman è stato introdotto per il mondo nel 1976. I suoi creatori diventano Uitfrid Diffie e Martin Hellman, che nella sua ricerca di metodi di crittografia dei dati sicure e affidabili basati sul lavoro di Ralph Merkle, che ha sviluppato il cosiddetto sistema di distribuzione a chiave pubblica.

Ma se Merkle sviluppato basi esclusivamente teorica, Diffie Hellman e presentati al pubblico una soluzione pratica a questo problema.

La spiegazione più semplice

In realtà, il test si basa su tecnologie di crittografia di crittografia che sono ora ha sorpreso molti esperti in questo campo. cifrari antologia include una lunga storia abbastanza. L'essenza di tutto il processo è quello di garantire che ci sono due partiti, e-mail, o da alcuni Scambio di dati con l'aiuto dei programmi per elaboratore. Ma la difesa è fatta in modo tale che l'algoritmo Diffie-Hellman si richiede che la chiave di decrittazione è noto per le due parti (invio e ricezione). Quando questo è assolutamente irrilevante quale di essi genera un numero casuale iniziale (questo punto si spiega se si considera formule di calcolo chiave).

I metodi di cifratura dei dati dei periodi precedenti

Per rendere più chiaro, si nota che il modo più primitivo per crittografare i dati è, ad esempio, l'ortografia non è da sinistra a destra, come è consuetudine nella maggior parte degli script e da destra a sinistra. Allo stesso modo, si può facilmente utilizzare e sostituzione di lettere dell'alfabeto in un comunicato. Ad esempio, la parola cambia la seconda lettera al primo, il quarto – la terza e così via. Lo stesso documento, alla vista di esso può essere una completa assurdità. Tuttavia, quello che ha scritto il codice sorgente, in base alla persona che ha di leggere, in quale ordine deve essere posto alcuni caratteri. Questo si chiama la chiave.

Si noti che la maggior parte dei testi ancora indecifrabili e scritti cuneiformi degli antichi Sumeri e gli Egizi non si intendono cripto-analisti solo a causa del fatto che non sanno come impostare la sequenza desiderata di caratteri.

E nel nostro caso – la variante Diffie-Hellman presuppone che la chiave di decrittazione è noto per un numero limitato di utenti. Tuttavia, e qui è necessario effettuare una prenotazione, perché l'interferenza nella trasmissione dei dati cifrati di questo tipo può essere violata da terzi, se sono risolvere la sostituzione o la sostituzione di caratteri.

E 'ovvio che ci sono ora potente sistema di crittografia a sufficienza sulla base di algoritmi come AES, ma non dare piena garanzia di protezione contro la pirateria informatica dei dati di terze parti.

Bene, ora ci concentriamo sul sistema di crittografia più, la sua applicazione pratica e il grado di protezione.

algoritmo Diffie-Hellman: appuntamento

L'algoritmo è stato creato in modo da garantire non solo la privacy dei dati durante la trasmissione di una parte all'altra, ma anche al fine di rimuovere in modo sicuro loro al momento della ricezione. Grosso modo, un tale sistema di trasmissione deve assicurare la protezione completa per tutti i possibili canali di comunicazione.

Ricordiamo, durante la seconda guerra mondiale, quando l'intelligenza di tutti i paesi alleati, senza successo, cacciato per la crittografia chiamato "Enigma", con la quale trasmettono messaggi codificati per il codice Morse. Dopo tutto, non potrebbe risolvere il cifrario nessuno, anche il modo in cui stiamo parlando, "avanzato" esperto in crittografia. Solo dopo la sua cattura è stata ottenuta la chiave per decifrare i messaggi inviati dalla marina tedesca.

algoritmo Diffie-Hellman: una panoramica

Quindi, l'algoritmo prevede l'utilizzo di alcuni concetti di base. Supponiamo di avere il caso più semplice, quando le due parti (l'utente) sono presenti sulla connessione. Noi li indichiamo come A e B.

Essi utilizzano due numeri X e Y, non sono segreti in questo canale di comunicazione, per controllare l'handover. Tutta l'essenza della questione si riduce a, per creare sulla loro base di un nuovo tipo di valore che sarà la chiave. Ma! Il primo interlocutore sta usando un gran numero primo, e la seconda – sempre un numero intero (divisibili), ma inferiore in modo del primo.

Naturalmente, gli utenti concordano sul fatto che questi numeri sono tenuti segreti. Tuttavia, perché il canale non è sicuro, i due numeri possono farsi conoscere e le altre parti interessate. Ecco perché la gente nelle stesse messaggi scambiati chiave segreta per decifrare il messaggio.

Le formule di base per il calcolo chiave

Si presume che il Diffie-Hellman si riferisce ad un sistema della cosiddetta crittografia simmetrica, su cui ci sono state segnalazioni di cifratura asimmetrica. Tuttavia, se consideriamo gli aspetti principali del calcolo delle parti ospitanti chiave, devono ricordare almeno l'algebra.

Così, ad esempio, ciascuna delle abbonati genera numeri casuali ae b. Sanno in anticipo i valori di x ed y, che può anche essere "cuciti" nel software richiesto.

Durante l'invio o la ricezione di un tale messaggio l'abbonato A calcola il valore di chiave, partendo dalla formula A = x a y mod, mentre la seconda utilizza una combinazione di B = x b mod y, seguita dalla invio della chiave decodificato sul primo utente. Questo è il primo passo.

Supponiamo ora che il terzo interessato ha a sua disposizione sia i valori calcolati di A e B. Tutti gli stessi, non può intervenire nel processo di trasferimento dei dati, perché il secondo passo è quello di sapere come calcolare una chiave comune.

Dalle formule di cui sopra, è possibile soggiornare presso il calcolo chiave comune. Se guardate l'esempio Diffie-Hellman potrebbe essere simile a questa:

1) calcola una prima chiave di abbonato sulla base x dalla formula B mod y = x ab mod y;

2) In secondo luogo, in base al numero y iniziale e preparato secondo l'opzione di protocollo di rete B, definisce una chiave da un parametro esistente A: A b mod y = x ba mod y.

Come si può vedere, i valori finali anche quando gradi di permutazione coincidono. Così, la decodifica dei dati da parte di entrambe le parti è ridotto, come si dice, ad un comune denominatore.

Vulnerabilità a intervento nel processo di trasferimento dei dati

Come ci si potrebbe aspettare, l'intervento di terzi non è esclusa. Tuttavia, in questo caso è inizialmente specificare il numero di 10 100, o anche 10.300.

Va da sé che nessuno di oggi per creare una password o un codice di accesso generatori per determinare il numero in sé non può (salvo che le opzioni intermedie iniziali e finali, e non per un intervento nel sistema di trasmissione). Ci sarebbe voluto così tanto tempo che la vita sulla Terra si concluderà. Tuttavia, le lacune in un tale sistema di sicurezza è ancora lì.

Il più delle volte essi sono associati con la conoscenza del logaritmo discreto. Se tale conoscenza è per rompere l'algoritmo Diffie-Hellman può essere (ma solo per i parametri iniziali e finali come detto sopra). Un'altra cosa è che possiedono tali unità di conoscenze.

Usando l'algoritmo per la piattaforma Java

algoritmo Diffie-Hellman viene utilizzato in Java esclusivamente con appelli come "client-server".

In altre parole, il server è in attesa macchine client di connessione. Quando questo collegamento è fatto, v'è una performance dell'algoritmo sulla ricerca di una chiave pubblica o privata, e quindi l'utente può ottenere l'accesso completo a tutte le funzioni e dati del server stesso. A volte questo è vero anche in sistemi mobili, tuttavia, questo pochissime persone conoscono, tanto più che la parte esecutiva delle opere in modalità invisibile in forma di script eseguibili.

Usando l'algoritmo per la piattaforma C (+ / ++)

Se si guarda al Diffie-Hellman nel «C» (+ / ++), allora non è così liscia. Il fatto è che a volte c'è un problema quando la maggior parte del lavoro con i calcoli sé programmazione lingua associata virgola mobile. Ecco perché quando si imposta un valore intero, o quando si cerca di arrotondamento (anche esponenziale), ci possono essere problemi in fase di compilazione. Soprattutto riguarda la funzione abuso int.

Tuttavia, vale la pena prestare attenzione al resto dei componenti eseguibili che, di regola, sono le classi di posti di lavoro, lo stesso elevamento a potenza o relative biblioteca attaccabile GMP.

algoritmi di crittografia moderni

Si ritiene che il Diffie-Hellman è ancora da battere, nessuno può. In realtà, è stato lui che ha servito come base per la nascita di tali sistemi noti di protezione nel campo della crittografia dei dati come AES128 e AES256.

Tuttavia, come dimostra la pratica, nonostante la disponibilità di numeri in astratto non è percepito dall'uomo, la maggior parte dei sistemi di questo tipo, utilizzare solo il valore della prima dozzina (non di più), ma lo stesso algoritmo implica un numero un milione di volte di più.

invece di un epilogo

In generale, probabilmente, è già chiaro ciò che costituisce questo sistema e quali sono i suoi componenti algoritmici. Resta solo da aggiungere che è dotato di un grande potenziale che è pienamente quasi nessuno usa.

D'altra parte, e la vulnerabilità nell'algoritmo con sufficiente chiarezza. Giudicate voi: infatti, scrivere un programma per calcolare logaritmi discreti, quasi tutti del suo creatore possono accedere non solo ai parametri iniziali impostati dall'utente, ma anche per la chiave pubblica, che è generato nel sistema di cifratura e decifratura.

Nel caso più semplice è sufficiente per rendere l'installazione dell'eseguibile di applet Java, che può essere utilizzato anche nelle comunicazioni mobili. Naturalmente, l'utente non saprà su di esso, ma i suoi dati saranno in grado di sfruttare nessuno.