Curve25519
Kriptolojide, Curve25519 256-bit anahtar boyutu için 128-bit güvenlik sağlayan ve eliptik eğri Diffie–Hellman (ECDH) anahtar değişim protokolu ile kullanılması için tasarlanan bir eliptik eğridir. ECC eğrileri içinde en hızlılarından biridir ve bilinen herhangi bir patent kapsamında değildir.[1]
Curve25519, orijinal yayınında bir Diffie–Hellman (DH) fonksiyonu olarak tanımlanmıştır. Daha sonrasında Daniel J. Bernstein DH fonksiyonu için X25519 ismini, Curve25519'un ise altındaki eğri için kullanılmasını önermiştir.[2]
Matematiksel özellikleri
Kullanılan eğri Şablon:Matematik, bir Montgomery eğrisi, Şablon:Matematik asal sayısı ile tanımlanan asal cisminin ikinci dereceden bir genişlemesi üzerindedir ve Şablon:Matematik baz noktasını kullanır. Bu bazın mertebesi; .[3]
Protokol sıkıştırılmış eliptik nokta kullanır (sadece X koordinatları) ve bu sayede ECDH için Montgomery merdiveninin, sadece XZ koordinatlarını kullanarak etkili/verimli kullanımına izin verir.[4]
Curve25519, birçok potansiyel implementasyon tuzağını önleyecek şekilde inşa edilmiştir.[5] Tasarım gereği, zamanlama saldırılarına karşı dayanıklıdır, herhangi bir 32 byte bir stringi geçerli bir açık anahtar olarak kabul edebilir ve doğrulama gerektirmez.
Eğri, Ed25519 imza şemasında kullanılan bükülmüş Edwards eğrisine birasyonel denktir.[6]
Popülerlik
Curve25519, ilk kez Daniel J. Bernstein tarafından 2005'te yayınlandı.[3] Ancak bu eğriye ilgi 2013'ten sonra, NSA'nın Dual EC DRBG'nin güvenlik sistemine gizli bir erişim implementasyonu uyguladığı keşfedildikten sonra önemli ölçüde arttı. Her ne kadar doğrudan ilişkilendirilemese de[7] NIST'in P eğrisi sabitlerinin şüpheli yönleri, NSA'nın açık anahtar üretiminde kendilerine avantaj sağlayan değerlere sahip olduğuna dair endişelere yol açmıştır.[8]
O zamandan beri, Curve25519, P-256'ya bir alternatif haline gelmiştir ve uygulamalar geniş bir yelpazede kullanılmaktadır.[9] 2014'ten itibaren OpenSSH 'da[10] ECDH tabanlı Curve25519'u varsaymaktadır.
2017 de, Curve25519 ve Curve448'in ABD Federal Hükûmeti tarafından kullanılmak üzere onaylanmış eliptik eğrileri belirten “Special Publication 800-186” yayınına eklendikleri NIST tarafından ilan edildi.[11]
Kütüphaneler
- Libgcrypt[12]
- libssh[10][13]
- NaCl[14]
- GnuTLS[15]
- mbed TLS (formerly PolarSSL)[16]
- wolfSSL[17]
- Botan[18]
- SChannelŞablon:Efn[19]
- Libsodium[20]
- OpenSSL since version 1.1.0[21]
- LibreSSL[22]
- NaCl for Tcl — a port to the Tcl language.[23]Şablon:Third-party inline
- NSS since version 3.28[24]
- Monocypher[25]
- Crypto++
Protokoller
- OMEMO, a proposed extension for XMPP (Jabber)[26]
- Secure Shell
- Signal Protocol
- Tox
- Zcash
Uygulamaları
- Conversations Android applicationŞablon:Efn
- Cryptocat[27]Şablon:Efn
- DNSCrypt[28]
- DNSCurve
- Dropbear[13][29]
- Facebook Messenger Şablon:EfnŞablon:Efn
- Gajim via plugin[30]Şablon:Efn
- GNUnet[31]
- GnuPG
- Google AlloŞablon:EfnŞablon:Efn
- I2P[32]
- iOS[33]
- minilock[34]
- OpenBSDŞablon:Efn
- OpenSSH[13]Şablon:Efn
- Peerio[35]
- PuTTY[36]
- SignalŞablon:Efn
- Silent Phone
- SmartFTP[13]
- SSHJ[13]
- Threema Instant Messenger[37]
- TinySSH[13]
- TinyTERM[13]
- Tor[38]
- Userify[39]
- Viber[40]
- Virgil[41]
- WhatsAppŞablon:Efn
- Wire
Not listesi
Kaynakça
Dış bağlantılar
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ 3,0 3,1 Şablon:Konferans kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Konferans kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ 10,0 10,1 Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ 13,0 13,1 13,2 13,3 13,4 13,5 13,6 Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı
- ↑ Şablon:Web kaynağı