Curve25519 wurde 2005 vom Kryptographen Daniel J. Bernstein entwickelt. Er veröffentlichte auch eine gemeinfreieProgrammbibliothek als Referenzimplementierung. Sie wurde als die erste (schnellste) Kurve festgelegt, die einen vorgegebenen Kriterienkatalog erfüllt. Diese deterministische Ableitung aus öffentlich bekannten Faktoren erübrigt Vertrauen in komplexe Basiskonstanten und soll so den Ausschluss von Hintertüren gewährleisten.[8]
Ursprünglich wurde Curve25519 als Diffie-Hellman-Funktion definiert. Daniel J. Bernstein schlägt seitdem den Namen „Curve25519“ für die zugrundeliegende Kurve vor, während die Bezeichnung X25519 für die Diffie-Hellman-Funktion verwendet werden sollte.[9]
Standardisierung
Seit 2014 bemüht sich die Kryptographie-Arbeitsgruppe der Internet Engineering Task Force (IETF) um die Standardisierung neuer elliptischer Kurven für asymmetrische Kryptographie im Internet. Curve25519 gilt als vielversprechendster Kandidat für die Standardisierung einer elliptischen Kurve, welche die vom National Institute of Standards and Technology (NIST) standardisierten Kurven ablösen sollen.[8] Diese sind in Verruf geraten, da sie von der National Security Agency (NSA) aus unerklärten Ausgangsdaten abgeleitet wurden und eine Hintertür nicht ausgeschlossen werden kann. Außer mehr Transparenz soll sie auch bei der Implementierung weniger fehleranfällig sein.[10] Die Verwendung von Curve25519 wurde schließlich 2020 sowohl für den Schlüsselaustausch als auch für Signaturen standardisiert.[11][12]
Ed25519 und weitere Kurven
Curve25519 lässt sich nicht mit älteren Signaturalgorithmen wie beispielsweise ECDSA nutzen. Speziell für Kurven wie Curve25519 gibt es daher das dafür u. a. von Daniel J. Bernstein und Tanja Lange entwickelte Verfahren Ed25519.[13]
Neben Curve25519 gibt es noch weitere Kurven, die nach ähnlichen Prinzipien entwickelt wurden und ebenfalls mit Ed25519 zusammenarbeiten, darunter etwa Ed448-Goldilocks von Mike Hamburg und die von mehreren Personen unabhängig entdeckte Kurve E-521.[7]