Diffie-Hellmani võtmevahetus
Diffie-Hellmani võtmevahetus on avaliku võtme krüptograafias kasutusel olev algoritm, mille abil saab moodustada krüptograafilisi võtmeid ja neid mitteturvaliste arvutivõrkude kaudu jagada. See oli üks esimesi avalikustatud rakenduslikke meetodeid, mille abil avalikke võtmeid vahetada sai. Varem pidid sõnumi krüpteerimiseks ning dekrüpteerimiseks nii sõnumi saatja kui vastuvõtja omama ühte ja sama võtit. See omakorda tähendas, et saatja pidi kuidagi selle võtme vastuvõtjani toimetama, mida aga on väga keeruline turvaliselt teha. Diffie-Hellmani algoritm võimaldab kahel osapoolel, kellel pole omavahel eelnevalt mingit kokkupuudet olnud, kokku leppida ühise salajase võtme. Nad saavad kasutada suhtluseks avalikku arvutivõrku, kuna osapoolte saadetud sõnumite sisu teadmisest ei piisa, et ära arvata kokku lepitud salajast võtit. Pärast salajase võtme kokku leppimist saavad osapooled kasutada seda võtit edasise suhtluse krüpteerimiseks sümmeetrilise algoritmiga. Whitfield Diffie ja Martin Hellman avalikustasid algoritmi 1976. aastal. 1970. aastate algul tegeles Suurbritannia signaalluureasutus samuti aktiivselt krüptograafiliste võtmete jagamise probleemiga. Nende tegevust juhtis James H. Ellis, kes mõtles välja avaliku võtmevahetuse skeemi, kuid ei suutnud leida matemaatilist funktsiooni, mis rahuldaks vajalikke nõudeid. Tema alluvuses töötasid C.C. Cocks ja M.J. Williamson, kellel oli rohkem edu matemaatiliste funktsioonide tuletamisel. Cocks mõtles 1973. aastal välja algoritmi, mis on analoogiline RSA algoritmiga. Williamson avastas 1975. aastal Diffie-Hellmani algoritmi. Kumbki neist avastustest laiemat tuntust ei saavutanud, kuna tulemused olid salastatud kuni 1999. aastani. Diffie-Hellmani protokoll oma algsel kujul ei võimalda kasutajate autentimist (st me ei saa kindlad olla, kas teine osapool on see, kelle ta väidab end olevat). Seetõttu tuleb reaalses kasutuses alati kasutada sertifitseeritud avalikke võtmeid. Kombineerides sertifikaate ning igal sessioonil uue avaliku võtme genereerimist, on võimalik saavutada perfect forward secrecy. Sellist algoritmi varianti nimetatakse efemeerseks Diffie-Hellmani võtmevahetuseks. Diffie-Hellmani algoritmile järgnes 1976. aastal teine populaarne avaliku võtme protokoll RSA, mis võimaldab lisaks krüpteerimisele ka turvalist allkirjastamist.