• L'algoritmo di crittografia Diffie-Hellman

    merkle-hellman-diffie.jpg

    In questo articolo presenteremo l’implementazione originale e la più semplice dell’algoritmo di crittografia a chiave pubblica Diffie-Hellman, che porta proprio il nome dei “padri” della crittografia asimmetrica.

    Nel 1976 Diffie ed Hellman hanno descritto un protocollo per lo scambio di una chiave segreta sopra un canale insicuro; tale meccanismo era stato inteso essenzialmente per risolvere il problema dell’avvio di un normale sistema di cifratura a chiavi simmetriche, quale il DES, ma in realtà ha posto le basi della crittografia a chiavi pubbliche.

    Il protocollo, utilizzato da due interlocutori Alice e Bob, può essere descritto come segue:

    • Alice e Bob scelgono pubblicamente un insieme di interi G = [0,N - 1] ed un suo elemento s.
    • Alice sceglie in modo casuale un elemento a di G, calcola A = sa mod N ossia (s elevato a) modulo N e lo invia a Bob.
    • Bob sceglie in modo casuale un elemento b di G, calcola B= sb mod N ossia (s elevato b) mod N e lo invia ad Alice.
    • Alice, ricevuto B , calcola K = (B elevato a) modulo N
    • Bob, ricevuto A, calcola K = (s elevato a)(elevato b) modulo N

    Nota: le formule matematiche sono espresse in modo esteso.

    In questo modo entrambi gli interlocutori possiedono la chiave K ma sopra il canale insicuro sono stati trasferiti solo N, s, A e B che non consentono di ricostruire K.

    In realtà la determinazione di a, noti s ed A, richiede la soluzione del problema del logaritmo discreto che consiste nella determinazione dell’intero che corrisponde al logaritmo in una base intera di un intero di cui è noto solo resto della divisione rispetto al modulo N. Tale problema è computazionalmente difficile.

    Il brevetto originale, ora scaduto, è disponibile a questa pagina.

    Tags:

    Se vuoi aggiornamenti su L'algoritmo di crittografia Diffie-Hellman inserisci la tua e-mail nel box qui sotto:


    Ho letto e acconsento l'informativa sulla privacy

    Si No

    Acconsento al trattamento dei dati personali di cui al punto 3 dell'informativa sulla privacy

    Si No

    Commenta

    Your email address will not be published. Required fields are marked *