อ่าน 8 นาที
เอ็ดดีเอสเอ
ใน การเข้ารหัสแบบกุญแจสาธารณะ อั ลก อริทึมลายเซ็นดิจิทัลเส้นโค้งเอ็ดเวิร์ด ( EdDSA ) เป็น รูป แบบลายเซ็นดิจิทัล ที่ใช้รูปแบบหนึ่งของ ลายเซ็น Schnorr โดยอิงจาก เส้นโค้งเอ็ดเวิร์ด...
เอ็ดดีเอสเอ
| ทั่วไป | |
|---|---|
| นักออกแบบ | Daniel J. Bernstein , Niels Duif, Tanja Lange , Peter Schwabe, Bo-Yin Yangและคณะ |
| เผยแพร่ครั้งแรก | 26 กันยายน 2554 |
| รายละเอียด | |
| โครงสร้าง | การเข้ารหัสแบบเส้นโค้งวงรี |
ในการเข้ารหัสแบบกุญแจสาธารณะอั ลก อริทึมลายเซ็นดิจิทัลเส้นโค้งเอ็ดเวิร์ด ( EdDSA ) เป็น รูป แบบลายเซ็นดิจิทัลที่ใช้รูปแบบหนึ่งของลายเซ็น Schnorrโดยอิงจาก เส้นโค้งเอ็ดเวิร์ด ที่บิดเบี้ยว[ 1 ] ได้รับการออกแบบให้เร็วกว่ารูปแบบลายเซ็นดิจิทัลที่มีอยู่โดยไม่ลดทอนความปลอดภัย พัฒนาโดยทีมงานที่ประกอบด้วยDaniel J. Bernstein , Niels Duif, Tanja Lange , Peter Schwabe และBo-Yin Yang [ 2 ] การ ใช้งานอ้างอิงเป็นซอฟต์แวร์สาธารณะ[ 3 ]
สรุป
ต่อไปนี้เป็นคำอธิบายแบบย่อของ EdDSA โดยไม่สนใจรายละเอียดของการเข้ารหัสจำนวนเต็มและจุดโค้งเป็นสตริงบิต รายละเอียดทั้งหมดอยู่ในเอกสารและ RFC [ 4 ] [ 2 ] [ 1 ]
รูปแบบลายเซ็น EdDSAเป็นทางเลือก: [ 4 ] : 1–2 [ 2 ] : 5–6 [ 1 ] : 5–7
- ของฟิลด์จำกัด เหนือเลขชี้กำลังเฉพาะคี่;
- ของเส้นโค้งวงรี ซึ่งกลุ่มของจุดตรรกยะมีอันดับโดยที่เป็นจำนวนเฉพาะขนาดใหญ่ และเรียกว่าโคแฟกเตอร์
- ของจุดฐานที่มีลำดับ; และ
- ของฟังก์ชันแฮชเข้ารหัสลับ ที่มีเอาต์พุต -บิต โดยที่องค์ประกอบของและจุดโค้งในสามารถแทนด้วยสตริงของบิตได้
พารามิเตอร์เหล่านี้เป็นพารามิเตอร์ทั่วไปสำหรับผู้ใช้ทุกคนของระบบลายเซ็น EdDSA ความปลอดภัยของระบบลายเซ็น EdDSA ขึ้นอยู่กับตัวเลือกของพารามิเตอร์อย่างมาก ยกเว้นการเลือกจุดฐานตามอำเภอใจ—ตัวอย่างเช่นอัลกอริทึม rho ของ Pollard สำหรับลอการิทึมคาดว่าจะใช้การบวกเส้นโค้งประมาณก่อนที่จะสามารถคำนวณลอการิทึมแบบไม่ต่อเนื่องได้[ 5 ]ดังนั้นต้องมีขนาดใหญ่พอที่จะทำให้เป็นไปไม่ได้ และโดยทั่วไปจะถือว่าเกิน2 200 [ 6 ] การเลือกนั้นถูกจำกัดโดยการเลือกเนื่องจากตามทฤษฎีบทของ Hasseไม่สามารถแตกต่างจากได้มากกว่าฟังก์ชันแฮชโดยปกติจะถูกจำลองเป็นออราเคิลแบบสุ่มในการวิเคราะห์ความปลอดภัยของ EdDSA อย่างเป็นทางการ
ภายใต้โครงการลงนามรับรองของ EdDSA
- กุญแจสาธารณะ
- กุญแจสาธารณะของ EdDSA คือจุดบนเส้นโค้งซึ่งเข้ารหัสเป็นบิต
- การตรวจสอบลายเซ็น
- ลายเซ็น EdDSA บนข้อความโดยใช้กุญแจสาธารณะคือคู่ของจุดบนเส้นโค้งและจำนวนเต็มที่สอดคล้องกับสมการตรวจสอบต่อไปนี้ ซึ่งเข้ารหัสเป็น บิต โดยที่ หมายถึงการต่อกัน :
- กุญแจส่วนตัว
- คีย์ส่วนตัวของ EdDSA คือสตริงขนาด n บิตซึ่งควรเลือกแบบสุ่มอย่างสม่ำเสมอ คีย์สาธารณะที่เกี่ยวข้องคือโดยที่ คือ บิตที่มีค่าน้อยที่สุด ของ ซึ่ง ถูกตีความว่าเป็นจำนวนเต็มในรูปแบบ little- endian
- การลงนาม
- ลายเซ็นบนข้อความจะถูกคำนวณอย่างแน่นอนโดยที่และซึ่งสอดคล้องกับสมการตรวจสอบ
เอ็ด25519
Ed25519คือรูปแบบลายเซ็น EdDSA ที่ใช้SHA-512 (SHA-2) และเส้นโค้งวงรีที่เกี่ยวข้องกับCurve25519 [ 2 ]โดยที่
- และ
- เป็นจุดเฉพาะที่มีพิกัดเป็นและพิกัดเป็นค่าบวก คำว่า "บวก" ถูกกำหนดในแง่ของการเข้ารหัสบิต:
- พิกัด "บวก" คือพิกัดคู่ (บิตที่มีค่าน้อยที่สุดจะถูกล้าง)
- พิกัด "ติดลบ" คือพิกัดคี่ (บิตที่มีค่าน้อยที่สุดถูกตั้งค่า)
- คือSHA-512พร้อมด้วย.
เส้นโค้งเอ็ดเวิร์ดส์บิดเบี้ยว เรียกว่าedwards25519 [ 7 ] [ 1 ]และเทียบเท่ากับ เส้นโค้งมอนต์โกเมอรี ที่เรียกว่าCurve25519 ใน ลักษณะไบราชันนัลความเทียบเท่าคือ[ 2 ] [ 7 ] [ 8 ]
ผลงาน
ทีมเดิมได้ปรับแต่ง Ed25519 ให้เหมาะสมกับ ตระกูลโปรเซสเซอร์ x86-64 Nehalem / Westmere การตรวจสอบสามารถทำได้เป็นชุดๆ ละ 64 ลายเซ็น เพื่อให้ได้ปริมาณงานที่สูงขึ้น Ed25519 มีจุดประสงค์เพื่อให้ความต้านทานต่อการโจมตีเทียบเท่ากับ การเข้ารหัสแบบสมมาตร 128 บิตคุณภาพสูง[ 9 ]
คีย์สาธารณะมีความยาว 256 บิต และลายเซ็นมีความยาว 512 บิต[ 10 ]
การเข้ารหัสที่ปลอดภัย
Ed25519 ออกแบบมาเพื่อหลีกเลี่ยงการใช้งานที่ใช้เงื่อนไขสาขาหรือดัชนีอาร์เรย์ที่ขึ้นอยู่กับข้อมูลลับ[ 2 ] : 2 [ 1 ] : 40 เพื่อลดการโจมตีช่องทางด้านข้าง
เช่นเดียวกับรูปแบบลายเซ็นแบบลอการิทึมแยกส่วนอื่นๆ EdDSA ใช้ค่าลับที่เรียกว่าnonceซึ่งเป็นเอกลักษณ์เฉพาะสำหรับแต่ละลายเซ็น ในรูปแบบลายเซ็นDSAและECDSAนั้น nonce นี้จะถูกสร้างขึ้นแบบสุ่มสำหรับแต่ละลายเซ็น และหากตัวสร้างเลขสุ่มถูกทำลายและสามารถคาดเดาได้เมื่อสร้างลายเซ็น ลายเซ็นนั้นอาจรั่วไหลคีย์ส่วนตัวได้ ดังเช่นที่เกิดขึ้นกับคีย์ลงนามการอัปเดตเฟิร์มแวร์ของ Sony PlayStation 3 [ 11 ] [ 12 ] [ 13 ] [ 14 ]
ในทางตรงกันข้าม EdDSA เลือก nonce อย่างแน่นอนโดยใช้แฮชของส่วนหนึ่งของคีย์ส่วนตัวและข้อความ ดังนั้น เมื่อสร้างคีย์ส่วนตัวแล้ว EdDSA ก็ไม่จำเป็นต้องใช้ตัวสร้างเลขสุ่มอีกต่อไปเพื่อสร้างลายเซ็น และไม่มีอันตรายใดๆ ที่ตัวสร้างเลขสุ่มที่เสียหายซึ่งใช้ในการสร้างลายเซ็นจะเปิดเผยคีย์ส่วนตัว[ 2 ] : 8
ความไม่สอดคล้องกันของการกำหนดมาตรฐานและการนำไปใช้
โปรดทราบว่ามีความพยายามในการกำหนดมาตรฐานสำหรับ EdDSA สองประการ ประการหนึ่งจาก IETF ซึ่งเป็นRFC 8032 เชิงข้อมูล และอีกประการหนึ่งจาก NIST ซึ่งเป็นส่วนหนึ่งของ FIPS 186-5 [ 15 ]ความแตกต่างระหว่างมาตรฐานได้รับการวิเคราะห์แล้ว[ 16 ] [ 17 ]และมีเวกเตอร์ทดสอบให้ใช้งานได้[ 18 ]
ซอฟต์แวร์
การใช้งานที่โดดเด่นของ Ed25519 ได้แก่OpenSSH [ 19 ] GnuPG [ 20 ]และทางเลือกต่างๆ รวมถึง เครื่องมือ signifyโดยOpenBSD [ 21 ] การใช้งาน Ed25519 (และ Ed448) ในโปรโตคอล SSH ได้รับการกำหนดมาตรฐานแล้ว[ 22 ]ในปี 2023 เวอร์ชันสุดท้ายของ มาตรฐาน FIPS 186-5 ได้รวม Ed25519 แบบกำหนดได้ไว้เป็นรูป แบบลายเซ็นที่ได้รับการอนุมัติ[ 15 ]
- Apple WatchและiPhoneใช้คีย์ Ed25519 สำหรับการตรวจสอบความถูกต้องร่วมกันของ IKEv2 [ 23 ]
- โบตัน
- คริปโต++
- โปรโตคอล สกุลเงินดิจิทัลCryptoNote
- Dropbear SSH [ 24 ]
- การใช้งาน I2Pd ของ EdDSA [ 25 ]
- ชุดพัฒนา Java 15
- ลิบก์คริปต์
- Minisign [ 26 ]และ Minisign Miscellanea [ 27 ]สำหรับmacOS
- NaCl / libsodium [ 28 ]
- OpenSSL 1.1.1 [ 29 ]
- Python - การใช้งานทางเลือกที่ช้าแต่กระชับ[ 30 ]ไม่รวมการป้องกันการโจมตีช่องทางด้านข้าง[ 31 ]
- การใช้งานอ้างอิง Supercop [ 32 ] ( ภาษา Cพร้อมแอสเซมเบลอร์ แบบอินไลน์ )
- Virgil PKI ใช้คีย์ Ed25519 เป็นค่าเริ่มต้น[ 33 ]
- wolfSSL [ 34 ]
เอ็ด448
Ed448คือรูปแบบลายเซ็น EdDSA ที่กำหนดไว้ในRFC 8032โดยใช้ฟังก์ชันแฮชSHAKE256และเส้นโค้งวงรีedwards448 ซึ่งเป็น เส้นโค้ง Edwards (ที่ไม่บิดเบี้ยว) ที่เกี่ยวข้องกับCurve448ในRFC 7748 Ed448 ยังได้รับการอนุมัติในเวอร์ชันสุดท้ายของมาตรฐาน FIPS 186-5 อีกด้วย[ 15 ]
ลิงก์ภายนอก
- หน้าหลัก Ed25519
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอ็ดดีเอสเอ
ใน การเข้ารหัสแบบกุญแจสาธารณะ อั ลก อริทึมลายเซ็นดิจิทัลเส้นโค้งเอ็ดเวิร์ด ( EdDSA ) เป็น รูป แบบลายเซ็นดิจิทัล ที่ใช้รูปแบบหนึ่งของ ลายเซ็น Schnorr โดยอิงจาก เส้นโค้งเอ็ดเวิร์ด...
สรุป
ต่อไปนี้เป็นคำอธิบายแบบย่อของ EdDSA โดยไม่สนใจรายละเอียดของการเข้ารหัสจำนวนเต็มและจุดโค้งเป็นสตริงบิต รายละเอียดทั้งหมดอยู่ในเอกสารและ RFC [ 4 ] [ 2 ] [ 1 ]
เอ็ด25519
Ed25519 คือรูปแบบลายเซ็น EdDSA ที่ใช้ SHA-512 (SHA-2) และเส้นโค้งวงรีที่เกี่ยวข้องกับ Curve25519 [ 2 ] โดยที่
ผลงาน
ทีมเดิมได้ปรับแต่ง Ed25519 ให้เหมาะสมกับ ตระกูลโปรเซสเซอร์ x86-64 Nehalem / Westmere การตรวจสอบสามารถทำได้เป็นชุดๆ ละ 64 ลายเซ็น เพื่อให้ได้ปริมาณงานที่สูงขึ้น Ed25519 มีจุดประสงค์เพื่อให้ความต้านทานต่อการโจมตีเทียบเท่ากับ การเข้ารหัสแบบสมมาตร 128...