곡선 25519
Curve25519암호학에서 Curve25519는 128비트의 보안(256비트 키 크기)을 제공하는 타원 곡선이며 타원 곡선 Diffie와 함께 사용하도록 설계되었습니다.Hellman(ECDH) 키 어그리먼트 스킴이는 가장 빠른 ECC 곡선 중 하나이며 알려진 [1]특허의 적용을 받지 않습니다.참조 실장은 퍼블릭 도메인 소프트웨어입니다.[2][3]
원본 Curve25519에서는 Diffie로 정의했습니다.Hellman(DH) 기능Daniel J. Bernstein은 기초 곡선에 Curve25519라는 이름을 사용하고 DH [4]함수에 X25519라는 이름을 사용할 것을 제안했다.
수학적 특성
사용된 곡선은 2 255 - ({ 2 - 에 의해 정의된 소수 에 걸쳐 y + x + x { { } + x{ { \ x } )입니다.이 포인트는 2252 + ({2^{인 순환 서브그룹을 생성합니다. 즉, 이 서브그룹의 공동 계수는 8입니다간곡선군프라임 오더 서브그룹을 사용하면 폴리그의 마운트를 방지할 수 있습니다.Hellman 알고리즘 [5]공격
프로토콜은 압축된 타원점(X 좌표만)을 사용하기 때문에 XZ [6]좌표만 사용하여 ECDH용 Montgomery 래더를 효율적으로 사용할 수 있습니다.
Curve25519는 많은 잠재적 구현 [7]함정을 회피하도록 구성되어 있습니다.설계상 타이밍 공격의 영향을 받지 않고 32바이트 문자열을 유효한 공개 키로 받아들이며 특정 포인트가 곡선에 속하는지 또는 베이스 포인트에 의해 생성되는지 검증할 필요가 없습니다.
이 곡선은 Ed25519[8][9] 시그니처 [10]스킴에서 사용되는 트위스트 에드워즈 곡선과 버라이어티컬하게 동등합니다.
역사
2005년, Daniel J. Bernstein에 [5]의해 Curve25519가 처음 출시되었습니다.
2013년에는 NSA가 P-256 커브 기반의 Dual_에 백도어를 도입할 가능성이 있다는 사실이 알려지면서 관심이 크게 높아지기 시작했다.EC_DRBG [11]알고리즘NIST의 P 곡선[13] 상수에 대해 직접적인 [12]관련성은 없지만 NSA가 암호화를 [15][16]해제하는 데 유리한 값을 선택했다는 우려가[14] 제기되었습니다.
"저는 더 이상 상수를 믿지 않습니다.NSA가 업계와의 관계를 통해 그들을 조종했다고 생각합니다."
--
2013년 이후, Curve25519는 P-256의 실질적인 대안이 되어 다양한 애플리케이션에서 [17]사용되고 있습니다.2014년부터 OpenSSH는 Curve25519 기반의 ECDH로 기본 설정되며 GnuPG는 서명 및 암호화를 [19]위한 Ed25519 키에 대한 지원을 추가합니다.일반 SSH 프로토콜에 대한 동작은 2018년 [20]현재 표준화 중입니다.
2017년 NIST는 미국 [21]연방 정부가 사용하도록 승인된 타원 곡선을 명시한 특별 간행물 800-186에 Curve25519와 Curve448이 추가될 것이라고 발표했다.둘 다 RFC 7748에 [22]설명되어 있습니다."FIPS 186-5"의 2019년 초안에는 디지털 서명에 Ed25519를[23] 사용할 수 있도록 허용하려는 의도가 명시되어 있습니다.특별 간행물 800-186의 2019년 초안에는 Curve25519의 [24]사용을 허용하는 의도가 명시되어 있다.
2018년에는 [25]이 알고리즘으로 서명할 수 있도록 DKIM 규격이 개정되었습니다.
또한 2018년에는 RFC 8446이 새로운 트랜스포트 레이어 보안 v1.3 표준으로 발행되었습니다.X25519,[26] Ed25519, X448 및 Ed448 알고리즘 지원을 권장합니다.
라이브러리
프로토콜
적용들
- 대화 Android 응용 프로그램[b]
- 크립토캣[43][b]
- DNScrypt[44]
- DNSCurve
- 드롭베어[28][45]
- 페이스북 메신저 [c][d]
- 플러그인 경유[46][b] Gajim
- GNUnet[47]
- GnuPG
- 구글 알로[e][d]
- I2P[48]
- IPFS[49]
- iOS[50]
- 모네로[51]
- 오픈BSD[f]
- OpenSSH[28][g]
- 페리오[56]
- 프로톤 메일[57]
- PUTY[58]
- 신호.[d]
- 사일런트 폰
- 스마트 FTP[28]
- SSHJ[28]
- 스컬[59]
- 트레마 인스턴트 메신저[60]
- TinySSH[28]
- TinyTERM[28]
- 토르[61]
- 바이버[62]
- 왓츠앱[d][63]
- 와이어
- 와이어 가드
메모들
레퍼런스
- ^ Bernstein. "Irrelevant patents on elliptic-curve cryptography". cr.yp.to. Retrieved 2016-02-08.
- ^ Daniel J. Bernstein"My curve25519 라이브러리의 최첨단 Diffie-Hellman 함수는 매우 빠른 속도로 Curve25519 함수를 계산합니다. 라이브러리는 퍼블릭 도메인에 있습니다.
- ^ "X25519". Crypto++. 5 March 2019. Archived from the original on 29 August 2020. Retrieved 29 August 2020.
- ^ "[Cfrg] 25519 naming". Retrieved 2016-02-25.
- ^ a b Bernstein, Daniel J. (2006). "Curve25519: New Diffie-Hellman Speed Records" (PDF). In Yung, Moti; Dodis, Yevgeniy; Kiayias, Aggelos; et al. (eds.). Public Key Cryptography - PKC 2006. Public Key Cryptography. Lecture Notes in Computer Science. Vol. 3958. New York: Springer. pp. 207–228. doi:10.1007/11745853_14. ISBN 978-3-540-33851-2. MR 2423191.
- ^ Lange, Tanja. "EFD / Genus-1 large-characteristic / XZ coordinates for Montgomery curves". EFD / Explicit-Formulas Database. Retrieved 8 February 2016.
- ^ "SafeCurves: Introduction". safecurves.cr.yp.to. Retrieved 2016-02-08.
- ^ Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang (2017-01-22). "Ed25519: high-speed high-security signatures". Retrieved 2019-11-09.
{{cite web}}
: CS1 maint: 여러 이름: 작성자 목록(링크) - ^ Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang (2011-09-26). "High-speed high-security signatures" (PDF). Retrieved 2019-11-09.
{{cite web}}
: CS1 maint: 여러 이름: 작성자 목록(링크) - ^ Bernstein, Daniel J.; Lange, Tanja (2007). "Faster addition and doubling on elliptic curves". In Kurosawa, Kaoru (ed.). Advances in Cryptology – ASIACRYPT 2007. Advances in cryptology—ASIACRYPT. Lecture Notes in Computer Science. Vol. 4833. Berlin: Springer. pp. 29–50. doi:10.1007/978-3-540-76900-2_3. ISBN 978-3-540-76899-9. MR 2565722.
- ^ Kelsey, John (May 2014). "Dual EC in X9.82 and SP 800-90" (PDF). National Institute of Standards in Technology. Retrieved 2018-12-02.
- ^ Green, Matthew (2015-01-14). "A Few Thoughts on Cryptographic Engineering: The Many Flaws of Dual_EC_DRBG". blog.cryptographyengineering.com. Retrieved 2015-05-20.
- ^ https://safecurves.cr.yp.to/
- ^ Maxwell, Gregory (2013-09-08). "[tor-talk] NIST approved crypto in Tor?". Retrieved 2015-05-20.
- ^ "SafeCurves: Rigidity". safecurves.cr.yp.to. Retrieved 2015-05-20.
- ^ "The NSA Is Breaking Most Encryption on the Internet - Schneier on Security". www.schneier.com. Retrieved 2015-05-20.
- ^ "Things that use Curve25519". Retrieved 2015-12-23.
- ^ a b Adamantiadis, Aris (2013-11-03). "OpenSSH introduces curve25519-sha256@libssh.org key exchange !". libssh.org. Retrieved 2014-12-27.
- ^ "GnuPG - What's new in 2.1". August 2021.
- ^ A. Adamantiadis; libssh; S. Josefsson; SJD AB; M. Baushke; Juniper Networks, Inc. (2018-06-26). Secure Shell (SSH) Key Exchange Method using Curve25519 and Curve448. I-D draft-ietf-curdle-ssh-curves-08.
- ^ Computer Security Division, Information Technology Laboratory (2017-10-31). "Transition Plans for Key Establishment Schemes CSRC". CSRC NIST. Retrieved 2019-09-04.
- ^ RFC 7748.https://tools.ietf.org/html/rfc7748 에서 취득했습니다.
- ^ Regenscheid, Andrew (31 October 2019). "FIPS PUB 186-5 (Draft)". doi:10.6028/NIST.FIPS.186-5-draft. S2CID 241055751.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Recommendations for Discrete Logarithm-Based Cryptography" (PDF).
- ^ John Levine (September 2018). A New Cryptographic Signature Method for DomainKeys Identified Mail (DKIM). IETF. doi:10.17487/RFC8463. RFC 8463.
- ^ E Rescorla (September 2018). The Transport Layer Security (TLS) Protocol Version 1.3. IETF. doi:10.17487/RFC8446. RFC 8446.
- ^ Werner Koch (15 April 2016). "Libgcrypt 1.7.0 release announcement". Retrieved 22 April 2016.
- ^ a b c d e f g SSH implementation comparison. "Comparison of key exchange methods". Retrieved 2016-02-25.
- ^ "Introduction". yp.to. Retrieved 11 December 2014.
- ^ "nettle: curve25519.h File Reference - doxygen documentation Fossies Dox". fossies.org. Archived from the original on 2015-05-20. Retrieved 2015-05-19.
- ^ Limited, ARM. "PolarSSL 1.3.3 released - Tech Updates - mbed TLS (Previously PolarSSL)". tls.mbed.org. Retrieved 2015-05-19.
- ^ "wolfSSL Embedded SSL/TLS Library - wolfSSL Products".
- ^ "Botan: src/lib/pubkey/curve25519/curve25519.cpp Source File". botan.randombit.net.
- ^ Justinha. "TLS (Schannel SSP)". docs.microsoft.com. Retrieved 2017-09-15.
- ^ Denis, Frank. "Introduction · libsodium". libsodium.org.
- ^ Inc., OpenSSL Foundation. "OpenSSL". www.openssl.org. Archived from the original on 2018-03-17. Retrieved 2016-06-24.
- ^ "Add support for ECDHE with X25519. · openbsd/src@0ad90c3". GitHub.
- ^ "Tclers Wiki - NaCl for Tcl".
- ^ "NSS 3.28 release notes". Retrieved 25 July 2017.
- ^ "A pure-Rust implementation of group operations on ristretto255 and Curve25519". Retrieved 14 April 2021.
- ^ "Ed25519.java". GitHub. 13 October 2021.
- ^ Straub, Andreas (25 October 2015). "OMEMO Encryption". conversations.im.
- ^ "Cryptocat - Security". crypto.cat. Archived from the original on 2016-04-07. Retrieved 2016-05-24.
- ^ Frank Denis. "DNSCrypt version 2 protocol specification". GitHub. Archived from the original on 2015-08-13. Retrieved 2016-03-03.
- ^ Matt Johnston. "Dropbear SSH - Changes". Retrieved 2016-02-25.
- ^ Bahtiar Gadimov; et al. "Gajim plugin for OMEMO Multi-End Message and Object Encryption". GitHub. Retrieved 2016-10-01.
- ^ "GNUnet 0.10.0". gnunet.org. Archived from the original on 9 December 2017. Retrieved 11 December 2014.
- ^ zzz (2014-09-20). "0.9.15 Release - Blog". Retrieved 20 December 2014.
- ^ "go-ipfs_keystore.go at master". Github.com. 30 March 2022.
- ^ "iOS Security Guide" (PDF).
- ^ "MRL-0003 - Monero is Not That Mysterious" (PDF). getmonero.com. Archived from the original (PDF) on 2019-05-01. Retrieved 2018-06-05.
- ^ Murenin, Constantine A. (2014-01-19). Soulskill (ed.). "OpenBSD Moving Towards Signed Packages — Based On D. J. Bernstein Crypto". Slashdot. Retrieved 2014-12-27.
- ^ Murenin, Constantine A. (2014-05-01). timothy (ed.). "OpenBSD 5.5 Released". Slashdot. Retrieved 2014-12-27.
- ^ Friedl, Markus (2014-04-29). "ssh/kex.c#kexalgs". BSD Cross Reference, OpenBSD src/usr.bin/. Retrieved 2014-12-27.
- ^ Murenin, Constantine A. (2014-04-30). Soulskill (ed.). "OpenSSH No Longer Has To Depend On OpenSSL". Slashdot. Retrieved 2014-12-26.
- ^ "How does Peerio implement end-to-end encryption?". Peerio. Archived from the original on 2017-12-09. Retrieved 2015-11-04.
- ^ "ProtonMail now offers elliptic curve cryptography for advanced security and faster speeds". 25 April 2019.
- ^ "PuTTY Change Log". www.chiark.greenend.org.uk.
- ^ Steve Gibson (December 2019). "SQRL Cryptography whitepaper" (PDF).
- ^ "Threema Cryptography Whitepaper" (PDF).
- ^ Roger Dingledine & Nick Mathewson. "Tor's Protocol Specifications - Blog". Retrieved 20 December 2014.
- ^ "Viber Encryption Overview". Viber. 3 May 2016. Retrieved 24 September 2016.
- ^ Nidhi Rastogi, James Hendler (2017-01-24). "WhatsApp security and role of metadata in preserving privacy". arXiv:1701.06817. Bibcode:2017arXiv170106817R.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)