Track
/
Python
Python
/
Esercizi
/
Diffie-Hellman
Diffie-Hellman

Diffie-Hellman

Facile

Istruzioni

Scambio di chiavi Diffie-Hellman.

Alice e Bob usano lo scambio di chiavi Diffie-Hellman per condividere dei segreti. Partono da numeri primi, scelgono le chiavi private, generano e condividono le chiavi pubbliche, poi generano una chiave segreta condivisa.

Passo 0

Il programma di test fornisce i numeri primi p e g.

Passo 1

Alice sceglie una chiave privata, a, maggiore di 1 e minore di p. Bob fa lo stesso per scegliere una chiave privata b.

Passo 2

Alice calcola una chiave pubblica A.

A = gᵃ mod p

Usando gli stessi p e g, Bob calcola allo stesso modo una chiave pubblica B dalla sua chiave privata b.

Passo 3

Alice e Bob si scambiano le chiavi pubbliche. Alice calcola la chiave segreta s.

s = Bᵃ mod p

Bob calcola

s = Aᵇ mod p

I calcoli producono lo stesso risultato! Ora Alice e Bob condividono la chiave segreta s.

Dovrei usare random o secrets qui?

A partire da Python 3.6, ci sono due moduli diversi per produrre numeri «casuali»:

Il modulo chiamato random è pseudo-casuale: non genera vera casualità, ma segue un algoritmo che simula la casualità. Dato che questi «numeri casuali» sono generati tramite un algoritmo noto, non sono davvero casuali. Di conseguenza, il modulo random non è adatto alla crittografia e non dovrebbe essere usato, proprio perché è pseudo-casuale.

Il modulo chiamato secrets genera numeri «casuali» crittograficamente forti, che offrono il maggior livello di sicurezza richiesto dalla crittografia. Nel senso più stretto sono comunque pseudo-casuali, ma garantiscono che i numeri che producono siano assolutamente imprevedibili.

Dato che questo è solo un esercizio di pratica, usare il modulo random va bene, ma tieni presente che sarebbe molto insicuro se lo si usasse davvero per la crittografia.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Python Exercism

Vuoi iniziare Diffie-Hellman?

Iscriviti a Exercism per imparare e padroneggiare Python con 17 concetti146 esercizi e il mentoring di persone reali, tutto gratis.