อ่าน 17 นาที
Dual_EC_DRBG
Dual_EC_DRBG ( เครื่องกำเนิดบิตสุ่มแบบกำหนดค่าได้แบบเส้นโค้งวงรีคู่ ) เป็นอัลกอริทึมที่นำเสนอเป็นเครื่องกำเนิดเลขสุ่มเทียมที่มีความปลอดภัยทางด้านการเข้ารหัส (CSPRNG)
Dual_EC_DRBG
Dual_EC_DRBG ( เครื่องกำเนิดบิตสุ่มแบบกำหนดค่าได้แบบเส้นโค้งวงรีคู่ ) [ 1 ]เป็นอัลกอริทึมที่นำเสนอเป็นเครื่องกำเนิดเลขสุ่มเทียมที่มีความปลอดภัยทางด้านการเข้ารหัส (CSPRNG) โดยใช้วิธีการในการเข้ารหัสเส้นโค้งวงรีแม้จะมีการวิพากษ์วิจารณ์อย่างกว้างขวางจากสาธารณชน รวมถึงการระบุความเป็นไปได้ที่สำนักงานความมั่นคงแห่งชาติจะใส่ช่องโหว่ไว้ในการใช้งานที่แนะนำ แต่อัลกอริทึมนี้ก็ยังเป็นหนึ่งในสี่ CSPRNG ที่ได้รับการกำหนดมาตรฐานในNIST SP 800-90A เป็นเวลาเจ็ดปี ตามที่เผยแพร่ครั้งแรกเมื่อประมาณเดือนมิถุนายน พ.ศ. 2549 จนกระทั่งถูกถอนออกในปี พ.ศ. 2557
จุดอ่อน: ช่องโหว่ที่อาจเกิดขึ้นได้
จุดอ่อนด้านความปลอดภัยทางด้านการเข้ารหัสของอัลกอริทึมนั้นเป็นที่ทราบกันดีและถูกวิพากษ์วิจารณ์อย่างเปิดเผยมานานแล้ว ก่อนที่อัลกอริทึมนี้จะกลายเป็นส่วนหนึ่งของมาตรฐานอย่างเป็นทางการที่ได้รับการรับรองจากANSI , ISOและในอดีตโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) หนึ่งในจุดอ่อนที่ถูกระบุอย่างเปิดเผยคือ ศักยภาพของอัลกอริทึมในการซ่อนช่องโหว่ทางด้านการเข้ารหัส ที่ได้เปรียบเฉพาะผู้ที่รู้เกี่ยวกับมันเท่านั้น นั่นคือ สำนักงานความมั่นคงแห่งชาติของรัฐบาลสหรัฐฯ(NSA) และไม่มีใครอื่น ได้รับประโยชน์ ในปี 2013 หนังสือพิมพ์ The New York Timesรายงานว่าเอกสารที่อยู่ในครอบครองของพวกเขาแต่ไม่เคยเปิดเผยต่อสาธารณะ "ดูเหมือนจะยืนยัน" ว่าช่องโหว่นั้นมีอยู่จริง และถูกแทรกเข้าไปโดยเจตนาโดย NSA ในฐานะส่วนหนึ่งของโครงการถอดรหัสBullrun ของพวกเขา ในเดือนธันวาคม 2013 บทความข่าว ของรอยเตอร์อ้างว่าในปี 2004 ก่อนที่ NIST จะกำหนดมาตรฐาน Dual_EC_DRBG นั้น NSA ได้จ่ายเงินให้RSA Securityจำนวน 10 ล้านดอลลาร์ในข้อตกลงลับเพื่อใช้ Dual_EC_DRBG เป็นค่าเริ่มต้นใน ไลบรารีการเข้ารหัส RSA BSAFEซึ่งส่งผลให้ RSA Security กลายเป็นผู้จัดจำหน่ายอัลกอริทึมที่ไม่ปลอดภัยที่สำคัญที่สุด[ 2 ] RSA ตอบว่าพวกเขา "ปฏิเสธอย่างสิ้นเชิง" ว่าพวกเขาเคยสมรู้ร่วมคิดกับ NSA ในการนำอัลกอริทึมที่ทราบว่ามีข้อบกพร่องมาใช้ แต่ยังระบุด้วยว่า "เราไม่เคยเก็บความสัมพันธ์นี้ [กับ NSA] เป็นความลับ และในความเป็นจริงเราได้เปิดเผยต่อสาธารณะแล้ว" [ 3 ]
ก่อนการเผยแพร่ครั้งแรกที่เป็นที่รู้จักในปี 2547 มีการค้นพบ ช่องโหว่การขโมยข้อมูล ที่อาจเกิดขึ้นได้ ในการออกแบบ Dual_EC_DRBG โดยการออกแบบ Dual_EC_DRBG มีคุณสมบัติพิเศษที่ในทางทฤษฎีแล้วเป็นไปไม่ได้เลยที่ใครก็ตามนอกจากผู้ออกแบบ Dual_EC_DRBG (NSA) จะยืนยันการมีอยู่ของช่องโหว่ ดังกล่าว บรูซ ชไนเออร์สรุปหลังจากมีการกำหนดมาตรฐานไม่นานว่าช่องโหว่ที่ "ค่อนข้างชัดเจน" (พร้อมกับข้อบกพร่องอื่นๆ) จะหมายความว่าไม่มีใครจะใช้ Dual_EC_DRBG [ 4 ]ช่องโหว่นี้จะทำให้ NSA สามารถถอดรหัส การเข้ารหัส SSL/TLSซึ่งใช้ Dual_EC_DRBG เป็น CSPRNG ได้[ 5 ]
สมาชิกของกลุ่มมาตรฐาน ANSI ที่ส่ง Dual_EC_DRBG เป็นครั้งแรกทราบถึงกลไกที่แน่นอนของช่องโหว่ที่อาจเกิดขึ้นและวิธีการปิดใช้งาน[ 6 ]แต่ไม่ได้เลือกที่จะปิดใช้งานหรือเผยแพร่ช่องโหว่ดังกล่าว ชุมชนการเข้ารหัสลับโดยทั่วไปในตอนแรกไม่ทราบถึงช่องโหว่ที่อาจเกิดขึ้น จนกระทั่ง การตีพิมพ์ของ Dan ShumowและNiels Fergusonหรือการยื่นขอสิทธิบัตรในปี 2005 ของ Daniel RL Brown และ Scott Vanstone จาก Certicomที่อธิบายกลไกของช่องโหว่
ในเดือนกันยายน พ.ศ. 2556 หนังสือพิมพ์นิวยอร์กไทมส์รายงานว่าบันทึกภายในของ NSA ที่รั่วไหลโดยเอ็ดเวิร์ด สโนว์เดนระบุว่า NSA ได้ทำงานในระหว่างกระบวนการกำหนดมาตรฐานเพื่อให้ในที่สุดกลายเป็นผู้แก้ไขมาตรฐาน Dual_EC_DRBG เพียงผู้เดียว[ 7 ]และสรุปว่ามาตรฐาน Dual_EC_DRBG มีช่องโหว่สำหรับ NSA จริง[ 8 ]ในการตอบสนอง NIST ระบุว่า "NIST จะไม่จงใจทำให้มาตรฐานการเข้ารหัสอ่อนแอลง" [ 9 ]แต่ตามเรื่องราวของนิวยอร์กไทมส์ NSA ได้ใช้เงิน 250 ล้านดอลลาร์ต่อปีเพื่อแทรกช่องโหว่ในซอฟต์แวร์และฮาร์ดแวร์ซึ่งเป็นส่วนหนึ่งของโครงการ Bullrun [ 10 ] คณะกรรมการที่ปรึกษาของประธานาธิบดีที่จัดตั้งขึ้นในภายหลังเพื่อตรวจสอบพฤติกรรมของ NSA ได้แนะนำว่ารัฐบาลสหรัฐฯ ควร "สนับสนุนอย่างเต็มที่และไม่บ่อนทำลายความพยายามในการสร้างมาตรฐานการเข้ารหัส" [ 11 ]
เมื่อวันที่ 21 เมษายน 2557 NIST ได้ถอน Dual_EC_DRBG ออกจากร่างคำแนะนำเกี่ยวกับเครื่องกำเนิดเลขสุ่ม โดยแนะนำให้ "ผู้ใช้ Dual_EC_DRBG ในปัจจุบันเปลี่ยนไปใช้อัลกอริทึมที่ได้รับการอนุมัติอีก 3 ตัวโดยเร็วที่สุด" [ 12 ]
ลำดับเหตุการณ์ของ Dual_EC_DRBG
| เวลา | เกิดอะไรขึ้น |
|---|---|
| พฤษภาคม 2540 | Adam L. Young และMoti Yungนำเสนอ เอกสาร คริปโตไวโรโลยี "Kleptography: Using Cryptography Against Cryptography" ในงาน Eurocrypt 1997 [ 13 ]เอกสารนี้แสดงวิธีการสร้างการแลกเปลี่ยนคีย์แบบลับๆ ลงในโปรโตคอลการแลกเปลี่ยนคีย์ Diffie–Hellman แบ็กดอร์ EC-DRBG นั้นเทียบเท่ากับแบ็กดอร์ Young–Yung ใน Diffie–Hellman จากงาน Eurocrypt 1997 เมื่อมีการดัดแปลงเพียงเล็กน้อยเท่านั้น |
| สิงหาคม พ.ศ. 2540 | Adam L. Young และMoti Yungนำเสนอ เอกสาร คริปโตไวโรโลยีเรื่อง "ความแพร่หลายของการโจมตีแบบขโมยข้อมูลในระบบการเข้ารหัสแบบใช้ลอการิทึมแบบไม่ต่อเนื่อง" ในงาน Crypto 1997 [ 14 ]เอกสารนี้นำเสนอสูตรในการสร้างแบ็กดอร์แบบไม่สมมาตรในอัลกอริธึมการเข้ารหัสโดยใช้ลอการิทึมแบบไม่ต่อเนื่อง เอกสารนี้ได้ขยายรูปแบบที่ใช้ในการโจมตี Diffie–Hellman จาก Eurocrypt 1997 เอกสารนี้ได้แนะนำ 'discrete log kleptogram' ซึ่งต่อมาจะถูกออกแบบลงใน EC-DRBG |
| กระบวนการกำหนดมาตรฐาน ANSI X9.82 เริ่มขึ้นในช่วงต้นทศวรรษ 2000 | NSA ผลักดันให้มีการรวม Dual_EC_DRBG ไว้ในANSI X9.82เมื่อกระบวนการกำหนดมาตรฐานเริ่มต้นขึ้นในช่วงต้นทศวรรษ 2000 [ 6 ] |
| หลังจากกระบวนการกำหนดมาตรฐาน ANSI X9.82 เริ่มต้นขึ้น และก่อนที่ NIST จะเผยแพร่มาตรฐานดังกล่าว | ตามที่John Kelsey (ซึ่งมีรายชื่อเป็นผู้เขียน NIST SP 800-90 ร่วมกับ Elaine Barker) กล่าวไว้ ความเป็นไปได้ของช่องโหว่โดยการเลือก ค่า PและQ อย่างระมัดระวังได้ ถูกหยิบยกขึ้นมาใน การประชุม ANSI X9.82 ส่งผลให้มีการกำหนดวิธีการให้ผู้ใช้งานสามารถเลือก ค่าPและQของตนเองได้[ 15 ]ต่อมาพบว่าสูตรเฉพาะที่ NIST ใส่ไว้ในมาตรฐานนั้นหมายความว่าผู้ใช้จะได้รับการตรวจสอบความถูกต้อง FIPS 140-2 ที่สำคัญสำหรับการใช้งานของตนได้ก็ต่อเมื่อพวกเขาใช้ค่าPและQ ที่ถูกบิดเบือนแต่เดิมเท่านั้น [ 16 ] |
| ตุลาคม พ.ศ. 2546 | Goh, Boneh, Pinkas และ Golle เผยแพร่เอกสารวิจัยเกี่ยวกับปัญหาการเพิ่มการกู้คืนคีย์ให้กับโปรโตคอล SSL/TLS และ SSH [ 17 ]พวกเขาระบุว่า "รัฐบาลสามารถโน้มน้าวให้ผู้จำหน่ายซอฟต์แวร์รายใหญ่แจกจ่ายการใช้งาน SSL/TLS หรือ SSH2 ที่มีการกู้คืนคีย์ที่ซ่อนเร้นและไม่สามารถกรองได้ ... ผู้ใช้จะไม่สังเกตเห็นกลไกการกู้คืนคีย์เนื่องจากแผนการถูกซ่อนไว้" จากนั้นพวกเขาแนะนำว่าเมื่อเซิร์ฟเวอร์ต้องการ nonce แบบสุ่ม เซิร์ฟเวอร์สามารถใช้การเข้ารหัสคีย์เซสชันที่คำนวณภายใต้คีย์เอสโครว์แทนได้ วิธีนี้ไม่ได้ใช้ประโยชน์จาก kleptogram ล็อกแบบไม่ต่อเนื่องของเส้นโค้งวงรี และส่งผลให้ต้องใช้ช่องทางซับลิมินัลที่มีแบนด์วิดท์ขนาดใหญ่ในการดำเนินการ |
| มิถุนายน 2547 | ร่างมาตรฐาน ANSI X9.82 ส่วนที่ 3ได้รับการเผยแพร่ ซึ่งรวมถึง Dual_EC_DRBG [ 6 ]ไม่ทราบว่ามีการเผยแพร่ร่างมาตรฐานก่อนหน้านี้หรือไม่ |
| ในช่วงปี 2004 | RSA กำหนดให้ Dual_EC_DRBG เป็น CSPRNG เริ่มต้นใน BSAFE ในปี 2013 สำนักข่าวรอยเตอร์รายงานว่านี่เป็นผลมาจากข้อตกลงลับมูลค่า 10 ล้านดอลลาร์กับ NSA [ 2 ] |
| 21 มกราคม 2548 | วันที่ยื่นคำขอสิทธิบัตร[ 18 ]โดย สมาชิก Certicom สองคน ของคณะกรรมการมาตรฐาน ANSI X9.82 สิทธิบัตรนี้อธิบายการทำงานของแบ็คดอร์ CSPRNG วงรีที่เหมือนกับแบ็คดอร์ที่อาจเกิดขึ้นใน Dual_EC_DRBG และวิธีการทำให้แบ็คดอร์ที่ซ่อนอยู่ดังกล่าวเป็นกลางโดยการเลือกจุดโค้งทางเลือกและการตัดบิตเพิ่มเติมในฟังก์ชันเอาต์พุต[ 6 ] |
| ในช่วงปี พ.ศ. 2548 [ 19 ] | ISO/IEC 18031 :2005 ได้รับการเผยแพร่และรวมถึง Dual_EC_DRBG [ 6 ] |
| ธันวาคม พ.ศ. 2548 [ 20 ] | ร่างแรกของ NIST SP 800-90 ได้รับการเผยแพร่สู่สาธารณะ ซึ่งรวมถึง Dual_EC_DRBG [ 5 ] |
| 16 มีนาคม 2549 | Kristian Gjøsteen เผยแพร่ความคิดเห็นเกี่ยวกับ Dual-EC-DRBG/NIST SP 800-90 ฉบับร่าง ธันวาคม 2005ซึ่งแสดงให้เห็นว่าส่วนหนึ่งของ Dual_EC_DRBG นั้น "ไม่ถูกต้องตามหลักการเข้ารหัส" และสร้างตัวทำนายบิตที่มี ข้อได้ เปรียบ 0.0011 ซึ่งถือว่ายอมรับไม่ได้สำหรับ CSPRNG [ 5 ] [ 20 ] |
| 29 มีนาคม 2549 | Daniel RL Brown ตีพิมพ์บทความเรื่อง " ความปลอดภัยที่คาดการณ์ไว้ของตัวสร้างเลขสุ่มเส้นโค้งวงรี ANSI-NIST " โดยสรุปว่า "[Dual_EC_DRBG] ควรได้รับการพิจารณาอย่างจริงจัง" โดยสมมติว่ามีการตัดจุดบนเส้นโค้งน้อยกว่าที่มีอยู่ใน Dual_EC_DRBG ดังที่แสดงให้เห็นในบทความของ Gjøsteen ในปี 2006 บทความนี้ยังคาดการณ์ถึงการประกาศของ Shumow และ Ferguson ในปี 2007 เกี่ยวกับช่องโหว่ที่เป็นไปได้: "การพิสูจน์นี้ใช้ประโยชน์อย่างมากจาก การที่ Qเป็นค่าสุ่ม เหตุผลสำหรับเรื่องนี้ไม่ใช่แค่เพื่อให้การพิสูจน์ใช้งานได้ หากQไม่ใช่ค่าสุ่ม อาจเป็นไปได้ว่าฝ่ายตรงข้ามรู้ค่าd ที่ทำให้ dQ = Pจากนั้นdR i = dS i +1ดังนั้นตัวแยกแยะดังกล่าวจึงสามารถกู้คืนสถานะก่อนหน้าที่เป็นความลับจากผลลัพธ์ได้ทันที เมื่อตัวแยกแยะได้รับสถานะก่อนหน้าแล้ว ก็สามารถแยกแยะผลลัพธ์จากค่าสุ่มได้อย่างง่ายดาย ดังนั้นโดยทั่วไปแล้วจึงควรเลือกQ แบบสุ่มเมื่อเทียบกับ P " [ 21 ] |
| 29 พฤษภาคม 2549 | Berry Schoenmakers และ Andrey Sidorenko เผยแพร่Cryptanalysis ของ Dual Elliptic Curve Pseudorandom Generatorซึ่งแสดงให้เห็นว่าในทางปฏิบัติแล้ว ผลลัพธ์จาก Dual_EC_DRBG สามารถแยกแยะได้จากบิตสุ่ม ซึ่งสรุปได้ว่า Dual_EC_DRBG ไม่ปลอดภัยในฐานะ CSPRNG โปรดทราบว่านี่เป็นปัญหาที่แยกต่างหากจากแบ็กดอร์ ผู้เขียนยังชี้ให้เห็นว่าการอ้างความปลอดภัยของ Dual_EC_DRBG ได้รับการสนับสนุนจากการอภิปรายอย่างไม่เป็นทางการเท่านั้น ไม่มีการพิสูจน์ความปลอดภัย (เช่น ผ่านการโต้แย้งแบบลดทอน) [ 22 ]เป็นผลให้ NIST เพิกเฉยต่อเครื่องกำเนิดตัวเลขสุ่มเทียมที่พิสูจน์ได้ว่าปลอดภัยซึ่งมีอยู่ในเอกสารทางวิชาการที่ผ่านการตรวจสอบโดยผู้ทรงคุณวุฒิมานานแล้ว |
| มิถุนายน 2549 | NIST SP 800-90 ได้รับการเผยแพร่แล้ว โดยรวมถึง Dual_EC_DRBG ซึ่งข้อบกพร่องที่ Kristian Gjøsteen, Berry Schoenmakers และ Andrey Sidorenko ชี้ให้เห็นนั้นยังไม่ได้รับการแก้ไข |
| มีนาคม 2550 | NIST SP 800-90 ฉบับปรับปรุงได้รับการเผยแพร่แล้ว มีการเพิ่มขั้นตอนใน Dual_EC_DRBG "เพื่อให้มีความต้านทานต่อการย้อนกลับ" |
| มิถุนายน 2550 | Young และ Yung เผยแพร่เอกสารวิจัยที่ให้รายละเอียดเกี่ยวกับช่องโหว่แบบอสมมาตรที่มีความปลอดภัยที่พิสูจน์ได้ใน SSL [ 23 ]ช่องโหว่แบบอสมมาตรนี้ใช้เส้นโค้งวงรีคู่บิดเบี้ยวซึ่งส่งผลให้เกิดลอการิทึมแบบแยกส่วนที่พอดีกับ nonce hello ได้อย่างง่ายดาย การโจมตีนี้เป็นการโจมตีการสร้างตัวเลขสุ่มของ SSL การสร้าง nonce hello โดยใช้ EC-DRBG ที่ NIST เจาะช่องโหว่ไว้นั้นเลียนแบบการโจมตี SSL โดย Young และ Yung อย่างแม่นยำ |
| สิงหาคม 2550 | Dan ShumowและNiels Fergusonนำเสนอแบบไม่เป็นทางการเพื่อแสดงให้เห็นว่าผู้โจมตีที่มีแบ็กดอร์และเอาต์พุตจำนวนเล็กน้อย (32 ไบต์) สามารถกู้คืนสถานะภายในของ Dual_EC_DRBG ได้อย่างสมบูรณ์ และด้วยเหตุนี้จึงสามารถคาดการณ์เอาต์พุตในอนาคตทั้งหมดได้ค่าคงที่ที่ไม่ได้รับ การอธิบาย ใน Dual_EC_DRBG ถูกตั้งสมมติฐานว่าทำหน้าที่เหมือนกุญแจสาธารณะผู้โจมตีจะใช้ชุดตัวเลขที่แตกต่างกัน (คล้ายกับกุญแจส่วนตัว) เพื่อทำการโจมตี Shumow และ Ferguson ไม่สามารถกู้คืนกุญแจของ NSA ได้ แต่พวกเขาสามารถสร้างคู่กุญแจของตนเองเพื่อสาธิตได้[ 24 ] |
| 15 พฤศจิกายน 2550 | Bruce Schneier เผยแพร่บทความที่มีชื่อว่า " NSA ใส่ช่องโหว่ลับไว้ในมาตรฐานการเข้ารหัสใหม่หรือไม่? " ในWiredโดยอ้างอิงจากการนำเสนอของ Dan Shumow และ Niels Ferguson [ 4 ] |
| มกราคม 2555 | NIST SP 800-90A ได้รับการเผยแพร่แล้ว ฟังก์ชันการสร้างอินสแตนซ์สำหรับ Dual_EC_DRBG ได้รับการแก้ไขอย่างมาก และภาคผนวกที่อธิบายเหตุผลของ DBRG นี้ได้รับการเพิ่มย่อหน้าใหม่ |
| 6 มิถุนายน 2556 | ข่าวชุดแรก (ที่ไม่เกี่ยวข้องกับ Dual_EC_DRBG) ที่อ้างอิงจากการรั่วไหลของเอกสาร NSA โดยเอ็ดเวิร์ด สโนว์เดน ได้ถูกเผยแพร่แล้ว |
| 5 กันยายน 2556 | การมีอยู่ของโปรแกรม Bullrunของ NSA ถูกเปิดเผยโดยอาศัยการรั่วไหลของ Snowden หนึ่งในวัตถุประสงค์ของ Bullrun ถูกอธิบายว่า " เพื่อแอบนำจุดอ่อนเข้าไปในมาตรฐานการเข้ารหัสที่นักพัฒนาฮาร์ดแวร์และซอฟต์แวร์ทั่วโลกปฏิบัติตาม " หนังสือพิมพ์นิวยอร์กไทมส์ระบุว่า "NSA ได้แทรกช่องโหว่เข้าไปในมาตรฐานปี 2006 ที่ NIST นำมาใช้ ... เรียกว่ามาตรฐาน Dual EC DRBG" [ 25 ]ยืนยันว่า NSA ได้ดำเนินการโจมตีด้วยซอฟต์แวร์ที่เป็นอันตราย |
| 10 กันยายน 2556 | Gail Porter ผู้อำนวยการสำนักงานประชาสัมพันธ์ของ NIST ได้ออกแถลงการณ์โดยระบุว่า "NIST จะไม่จงใจทำให้มาตรฐานการเข้ารหัสอ่อนแอลง" [ 26 ]แถลงการณ์ดังกล่าวไม่ได้กล่าวถึงข้อเท็จจริงที่ว่า NIST เพิกเฉยต่อคำเตือนเกี่ยวกับช่องโหว่ที่อาจเกิดขึ้นในมาตรฐานจาก John Kelsey นักเข้ารหัสของ NIST เองในที่สุด |
| 19 กันยายน 2556 | RSA Security แนะนำลูกค้าให้หยุดใช้ Dual_EC_DRBG ใน ชุดเครื่องมือ BSAFEและData Protection Manager ของ RSA Security โดยอ้างอิงคำแนะนำของ NIST เมื่อวันที่ 12 กันยายน 2013 ที่ระบุว่า: "NIST แนะนำอย่างยิ่งว่า จนกว่าจะมีการแก้ไขข้อกังวลด้านความปลอดภัยและการออก SP 800-90A ฉบับใหม่ ไม่ควรใช้ Dual_EC_DRBG ตามที่ระบุไว้ใน SP 800-90A ฉบับเดือนมกราคม 2012 อีกต่อไป" [ 27 ]รายงานข่าวเบื้องต้นตั้งข้อสงสัยเกี่ยวกับการที่ RSA ยังคงใช้ Dual_EC_DRBG เป็นค่าเริ่มต้นในผลิตภัณฑ์ BSAFE และ Data Protection Manager โดยเฉพาะอย่างยิ่งหลังจากปี 2007 เนื่องจากมีข้อกังวลที่เผยแพร่ก่อนหน้านี้เกี่ยวกับศักยภาพของช่องโหว่ในอัลกอริทึม Sam Curry หัวหน้าฝ่ายเทคโนโลยีของ RSA เขียนคำอธิบายสั้น ๆ เกี่ยวกับการเลือกใช้ Dual_EC_DRBG เป็นค่าเริ่มต้นของ RSA Security ซึ่งถูกวิพากษ์วิจารณ์อย่างกว้างขวางโดยนักเข้ารหัสลับ Curry ไม่ได้กล่าวถึงข้อตกลงมูลค่า 10 ล้านดอลลาร์ที่เปิดเผยในภายหลังกับ NSA เพื่อใช้ Dual_EC_DRBG [ 28 ] |
| 18 ธันวาคม 2556 | คณะกรรมการที่ปรึกษาของประธานาธิบดีที่จัดตั้งขึ้นเพื่อตรวจสอบ NSA แนะนำว่ารัฐบาลสหรัฐฯ ควร "สนับสนุนอย่างเต็มที่และไม่บั่นทอนความพยายามในการสร้างมาตรฐานการเข้ารหัส" [ 11 ] |
| 20 ธันวาคม 2556 | สำนักข่าวรอยเตอร์รายงานเกี่ยวกับข้อตกลงมูลค่า 10 ล้านดอลลาร์ระหว่าง RSA และ NSA เพื่อกำหนดให้ Dual_EC_DRBG เป็น CSPRNG เริ่มต้นใน BSAFE [ 2 ] |
| 22 ธันวาคม 2556 | RSA Security ออกแถลงการณ์ปฏิเสธอย่างชัดเจนว่า "ไม่ได้ทำสัญญาลับกับ NSA เพื่อรวมตัวสร้างเลขสุ่มที่มีข้อบกพร่องที่ทราบกันดีอยู่แล้วเข้ากับไลบรารีการเข้ารหัส BSAFE" แม้ว่าแถลงการณ์ดังกล่าวจะไม่ปฏิเสธการมีอยู่ของข้อตกลงมูลค่า 10 ล้านดอลลาร์ระหว่าง RSA และ NSA เพื่อกำหนดให้ Dual_EC_DRBG เป็นมาตรฐานใน BSAFE ก็ตาม[ 3 ]บางเว็บไซต์ข่าว เช่น BBC สรุปข่าวประชาสัมพันธ์ว่าเป็นการปฏิเสธโดยตรงถึงการมีอยู่ของข้อตกลงมูลค่า 10 ล้านดอลลาร์[ 29 ]ในขณะที่ความคิดเห็นอื่นๆ ชี้ให้เห็นว่าไม่ชัดเจนว่าข่าวประชาสัมพันธ์ของ RSA Security ที่เขียนอย่างระมัดระวังนั้นปฏิเสธข้อเรียกร้องใดบ้าง หากมี[ 30 ] [ 31 ] |
| 25 กุมภาพันธ์ 2557 | ใน การกล่าวสุนทรพจน์หลัก ในการประชุม RSA ปี 2014 ประธานกรรมการบริหาร RSA Security (และรองประธานบริหาร EMC) Art Coviello ได้กล่าวเป็นนัยว่า RSA Security ไม่เห็นคุณค่าในเอกสารวิจัยปี 2006 และ 2007 ที่ชี้ให้เห็นข้อบกพร่องใน Dual_EC_DRBG จนกระทั่ง NIST ออกคำแนะนำให้หยุดใช้ CSPRNG Coviello กล่าวว่า RSA Security มีรายได้จากการเข้ารหัสลดลง และไม่ต้องการใช้ทรัพยากรในการขับเคลื่อนการวิจัยด้านการเข้ารหัสอีกต่อไป แต่ในฐานะ "ผู้มีส่วนร่วมและผู้ได้รับประโยชน์จากมาตรฐานเปิด" จะเชื่อถือคำแนะนำของ NIST และ NSA และกล่าวโทษ NSA ว่าหลอกลวงบริษัท[ 32 ] |
| 21 เมษายน 2557 | หลังจากช่วงเวลาการแสดงความคิดเห็นสาธารณะและการตรวจสอบ NIST ได้ลบ Dual_EC_DRBG ออกจากแนวทางร่างเกี่ยวกับตัวสร้างเลขสุ่มของอัลกอริธึมการเข้ารหัสลับ โดยแนะนำว่า "ผู้ใช้ปัจจุบันของ Dual_EC_DRBG ควรเปลี่ยนไปใช้อัลกอริธึมที่ได้รับการอนุมัติอีก 3 ตัวโดยเร็วที่สุด" [ 12 ] |
| สิงหาคม 2557 | Checkoway และคณะได้เผยแพร่เอกสารวิจัยที่วิเคราะห์ความเป็นไปได้ในการใช้ EC-DRBG เพื่อสร้างช่องโหว่แบบไม่สมมาตรใน SSL และ TLS [ 33 ] |
| มกราคม 2558 | Michael Wertheimer ผู้อำนวยการฝ่ายวิจัยของ NSA เขียนว่า "เมื่อมองย้อนกลับไป NSA ควรจะยุติการสนับสนุนอัลกอริทึม Dual EC DRBG ทันทีหลังจากที่นักวิจัยด้านความปลอดภัยค้นพบศักยภาพของกับดัก อันที่จริง ผมคิดว่าไม่มีวิธีใดที่จะอธิบายความล้มเหลวของเราในการยุติการสนับสนุนอัลกอริทึม Dual EC DRBG ได้ดีไปกว่านี้ นอกจากคำว่าน่าเสียใจ" [ 34 ] |
| มิถุนายน 2558 | มาตรฐาน NIST 800-90A ฉบับแก้ไข 1 ได้รับการเผยแพร่แล้ว ทำให้การลบ Dual_EC_DRBG ออกเป็นไปอย่างเป็นทางการ |
คำอธิบาย
ภาพรวม
อัลกอริทึมนี้ใช้จำนวนเต็มs เพียงตัวเดียว เป็นสถานะ เมื่อใดก็ตามที่มีการร้องขอหมายเลขสุ่มใหม่ จำนวนเต็มนี้จะได้รับการ อัปเดต สถานะที่ kจะกำหนดโดย
จำนวนเต็มสุ่มr ที่ส่งคืนนั้น เป็นฟังก์ชันของสถานะจำนวนสุ่มลำดับ ที่ k คือ
ฟังก์ชันนี้ขึ้นอยู่กับจุดP บนเส้นโค้งวงรีที่กำหนดไว้ มีลักษณะคล้ายกัน แต่ใช้จุดQแทนจุดPและQจะคงที่สำหรับการใช้งานอัลกอริทึมในรูปแบบเฉพาะ
รายละเอียด
อัลกอริทึมนี้อนุญาตให้ใช้ค่าคงที่ที่แตกต่างกัน ความยาวเอาต์พุตที่แปรผันได้ และการปรับแต่งอื่นๆ เพื่อความง่าย อัลกอริทึมที่อธิบายไว้ในที่นี้จะใช้ค่าคงที่จากเส้นโค้ง P-256 (หนึ่งใน 3 ชุดของค่าคงที่ที่มีอยู่) และมีความยาวเอาต์พุตคงที่ อัลกอริทึมทำงานเฉพาะกับฟิลด์จำกัดเฉพาะจำนวนเฉพาะ( ) โดยที่pเป็นจำนวนเฉพาะ สถานะ เมล็ดพันธุ์ และตัวเลขสุ่มทั้งหมดเป็นองค์ประกอบของฟิลด์นี้ ขนาดของฟิลด์คือ
กำหนดให้ เส้นโค้งวงรีเหนือ
โดยที่ค่าคงที่bคือ
จุดบนเส้นโค้งคือโดยสองจุดนี้ถูกกำหนดให้เป็นจุดคงที่PและQ
พิกัดของพวกเขาคือ
มีการใช้ฟังก์ชันเพื่อดึงค่าพิกัด x โดยฟังก์ชันนี้จะ "แปลง" จุดบนเส้นโค้งวงรีไปเป็นองค์ประกอบของฟิลด์
ตัวเลขจำนวนเต็มที่ได้จะถูกตัดทิ้งก่อนที่จะแสดงผล
ฟังก์ชันเหล่านี้ยกกำลังจุดคงที่ โดย "การยกกำลัง" ในบริบทนี้ หมายถึงการใช้การดำเนินการพิเศษที่กำหนดไว้สำหรับจุดบนเส้นโค้งวงรี
ตัวสร้างถูกป้อนด้วยองค์ประกอบจาก
สถานะ ที่ kและหมายเลขสุ่ม
ตัวเลขสุ่ม
ความปลอดภัย
วัตถุประสงค์ที่ระบุไว้ของการรวม Dual_EC_DRBG ไว้ในNIST SP 800-90Aคือความปลอดภัยของมันขึ้นอยู่กับสมมติฐานความยากในการคำนวณจากทฤษฎีจำนวน การพิสูจน์ การลดความปลอดภัยทางคณิตศาสตร์สามารถพิสูจน์ได้ว่าตราบใดที่ปัญหาทางทฤษฎีจำนวนนั้นยาก ตัวสร้างเลขสุ่มเองก็จะปลอดภัย อย่างไรก็ตาม ผู้สร้าง Dual_EC_DRBG ไม่ได้เผยแพร่การลดความปลอดภัยสำหรับ Dual_EC_DRBG และไม่นานหลังจากที่ร่าง NIST ได้รับการเผยแพร่ ก็พบว่า Dual_EC_DRBG ไม่ปลอดภัยจริง ๆ เพราะมันส่งออกบิตมากเกินไปต่อรอบ[ 22 ] [ 35 ] [ 36 ]การส่งออกบิตมากเกินไป (พร้อมกับจุดเส้นโค้งวงรีPและQ ที่เลือกอย่างระมัดระวัง ) คือสิ่งที่ทำให้ NSA สามารถเจาะระบบได้ เพราะมันทำให้ผู้โจมตีสามารถย้อนกลับการตัดทอนได้โดยการเดาแบบ brute force การส่งออกบิตมากเกินไปไม่ได้ถูกแก้ไขในมาตรฐานที่เผยแพร่ฉบับสุดท้าย ทำให้ Dual_EC_DRBG ทั้งไม่ปลอดภัยและมีช่องโหว่[ 5 ]
ในมาตรฐานอื่นๆ จำนวนมาก ค่าคงที่ที่ตั้งใจให้เป็นค่าโดยพลการจะถูกเลือกโดย หลักการ ของตัวเลขที่ไม่มีอะไรซ่อนเร้นโดยที่ค่าเหล่านั้นได้มาจากค่าพายหรือค่าคงที่ทางคณิตศาสตร์ ที่คล้ายกัน ในลักษณะที่แทบไม่มีช่องว่างสำหรับการปรับเปลี่ยน อย่างไรก็ตาม Dual_EC_DRBG ไม่ได้ระบุวิธี การเลือกค่าคงที่ PและQ เริ่มต้น อาจเป็นเพราะว่าค่าเหล่านั้นถูกสร้างขึ้นโดย NSA เพื่อให้มีช่องโหว่ เนื่องจากคณะกรรมการมาตรฐานตระหนักถึงศักยภาพของช่องโหว่ จึงได้รวม วิธีการให้ผู้ใช้งานเลือกค่า PและQ ที่ปลอดภัยของตนเองไว้ด้วย [ 6 ] [ 15 ]แต่สูตรที่แน่นอนในมาตรฐานถูกเขียนขึ้นในลักษณะที่การใช้ค่าPและQ ที่ถูกกล่าวหาว่ามีช่องโหว่ นั้นจำเป็นสำหรับ การตรวจสอบ FIPS 140-2ดังนั้น โครงการ OpenSSLจึงเลือกที่จะใช้ค่าPและQ ที่มีช่องโหว่ แม้ว่าพวกเขาจะตระหนักถึงช่องโหว่ที่อาจเกิดขึ้นและต้องการสร้างค่าPและQ ที่ปลอดภัยของตนเองมากกว่า [ 37 ] ต่อมานิวยอร์กไทมส์ได้เขียนว่า NSA ได้ทำงานในระหว่างกระบวนการกำหนดมาตรฐานเพื่อให้ในที่สุดกลายเป็นบรรณาธิการแต่เพียงผู้เดียว ของมาตรฐาน[ 7 ]
ต่อมา Daniel RL Brown และ Kristian Gjøsteen ได้เผยแพร่บทพิสูจน์ความปลอดภัยของ Dual_EC_DRBG ซึ่งแสดงให้เห็นว่าจุดเส้นโค้งวงรีที่สร้างขึ้นจะแยกไม่ออกจากจุดเส้นโค้งวงรีแบบสุ่มอย่างสม่ำเสมอ และหากมีการส่งออกบิตน้อยลงในการตัดทอนเอาต์พุตสุดท้าย และหากจุดเส้นโค้งวงรีสองจุดPและQเป็นอิสระต่อกัน Dual_EC_DRBG ก็จะมีความปลอดภัย บทพิสูจน์นี้อาศัยสมมติฐานที่ว่ามีปัญหาที่ยากสามปัญหา ได้แก่สมมติฐาน Diffie–Hellman แบบตัดสินใจ (ซึ่งโดยทั่วไปยอมรับว่ายาก) และปัญหาใหม่กว่าอีกสองปัญหาที่ไม่ค่อยเป็นที่รู้จักซึ่งโดยทั่วไปไม่ยอมรับว่ายาก ได้แก่ปัญหาจุดที่ถูกตัดทอนและปัญหาx-logarithm [ 35 ] [ 36 ] Dual_EC_DRBG ค่อนข้างช้าเมื่อเทียบกับ CSPRNG ทางเลือกอื่นๆ หลายตัว (ซึ่งไม่มีการลดความปลอดภัย[ 38 ] ) แต่ Daniel RL Brown โต้แย้งว่าการลดความปลอดภัยทำให้ Dual_EC_DRBG ที่ช้ากลายเป็นทางเลือกที่ถูกต้อง (โดยสมมติว่าผู้พัฒนาปิดใช้งานช่องโหว่ที่ชัดเจน) [ 38 ]โปรดทราบว่า Daniel RL Brown ทำงานให้กับ Certicom ซึ่งเป็นเจ้าของสิทธิบัตรการเข้ารหัสแบบวงรีหลัก ดังนั้นอาจมีความขัดแย้งทางผลประโยชน์ในการส่งเสริม EC CSPRNG
ช่องโหว่ของ NSA ที่ถูกกล่าวหาจะทำให้ผู้โจมตีสามารถกำหนดสถานะภายในของตัวสร้างเลขสุ่มได้จากการดูเอาต์พุตจากรอบเดียว (32 ไบต์) จากนั้นจึงสามารถคำนวณเอาต์พุตในอนาคตทั้งหมดของตัวสร้างเลขสุ่มได้อย่างง่ายดาย จนกว่า CSPRNG จะถูกกำหนดค่าใหม่ด้วยแหล่งสุ่มภายนอก ซึ่งทำให้ SSL/TLS มีความเสี่ยง ตัวอย่างเช่น เนื่องจากการตั้งค่าการเชื่อมต่อ TLS รวมถึงการส่งnonce เข้ารหัส ที่สร้างขึ้นแบบสุ่ม ในรูปแบบที่อ่านได้[ 5 ]ช่องโหว่ของ NSA ที่ถูกกล่าวหาจะขึ้นอยู่กับการที่พวกเขารู้ค่าe เพียงค่าเดียว เช่นนี่เป็นปัญหาที่ยากหากPและQถูกกำหนดไว้ล่วงหน้า แต่จะง่ายกว่าหากPและQถูกเลือก[ 24 ] eเป็นกุญแจลับที่คาดว่ามีเพียง NSA เท่านั้นที่รู้ และช่องโหว่ที่ถูกกล่าวหาเป็นช่องโหว่ที่ซ่อนอยู่แบบอสมมาตรแบบขโมย[ 39 ]บทความในบล็อกของ Matthew Green เรื่องThe Many Flaws of Dual_EC_DRBG [ 40 ] มีคำอธิบายแบบง่ายๆ เกี่ยวกับวิธีการทำงานของแบ็กดอร์ NSA ที่ถูกกล่าวหา โดยใช้ kleptogramแบบลอการิทึมแยกส่วนที่แนะนำใน Crypto 1997 [ 14 ]
การกำหนดมาตรฐานและการนำไปใช้
NSA ได้นำ Dual_EC_DRBG มาใช้ในANSI X9.82 DRBG เป็นครั้งแรก ในช่วงต้นทศวรรษ 2000 ซึ่งรวมถึงพารามิเตอร์เดียวกันกับที่สร้างแบ็กดอร์ที่ถูกกล่าวหา และ Dual_EC_DRBG ได้รับการเผยแพร่ในร่างมาตรฐาน ANSI นอกจากนี้ Dual_EC_DRBG ยังมีอยู่ในมาตรฐานISO 18031 อีกด้วย [ 6 ]
ตามที่ John Kelsey (ซึ่งร่วมกับ Elaine Barker ได้รับการระบุว่าเป็นผู้เขียน NIST SP 800-90A) ความเป็นไปได้ของช่องโหว่โดยการเลือกPและQ อย่างระมัดระวัง ได้ถูกหยิบยกขึ้นมาในการประชุมกลุ่มมาตรฐานและแนวทางเครื่องมือ ANSI X9F1 [ 6 ]เมื่อ Kelsey ถาม Don Johnson จากCygnacomเกี่ยวกับที่มาของQ นั้น Johnson ตอบในอีเมลถึง Kelsey เมื่อวันที่ 27 ตุลาคม 2004 ว่า NSA ได้ห้ามการอภิปรายต่อสาธารณะเกี่ยวกับการสร้างQ ทางเลือกอื่นนอกเหนือ จาก Q ที่ NSA จัดหาให้[ 41 ]
อย่างน้อยสองคนในกลุ่มมาตรฐานและแนวทางเครื่องมือ ANSI X9F1 ซึ่งเขียน ANSI X9.82 ได้แก่ Daniel RL Brown และ Scott Vanstone จากCerticom [ 6 ] ทราบถึงสถานการณ์และกลไกที่แน่นอนที่อาจทำให้เกิดช่องโหว่ได้ เนื่องจากพวกเขายื่นคำขอจดสิทธิบัตร[ 18 ]ในเดือนมกราคม 2548 เกี่ยวกับวิธีการแทรกหรือป้องกันช่องโหว่ใน DUAL_EC_DRBG การทำงานของ "กับดัก" ที่กล่าวถึงในสิทธิบัตรนั้นเหมือนกับที่ได้รับการยืนยันใน Dual_EC_DRBG ในภายหลัง เมื่อเขียนเกี่ยวกับสิทธิบัตรในปี 2557 นักวิจารณ์ Matthew Green อธิบายว่าสิทธิบัตรนี้เป็นวิธี " ก้าวร้าวแบบแฝง " ในการแก้แค้น NSA โดยการเผยแพร่ช่องโหว่ ในขณะเดียวกันก็วิพากษ์วิจารณ์ทุกคนในคณะกรรมการที่ไม่ปิดใช้งานช่องโหว่ที่พวกเขารู้ดีอยู่แล้ว[ 41 ]สิทธิบัตรของ Brown และ Vanstone ระบุเงื่อนไขที่จำเป็นสองประการสำหรับการมีอยู่ของช่องโหว่:
1) คำถาม ที่เลือก
เครื่องกำเนิดเลขสุ่มแบบเส้นโค้งวงรีหลีกเลี่ยงการใช้กุญแจสำรองโดยการเลือกจุดQบนเส้นโค้งวงรีเป็นจุดสุ่มที่ตรวจสอบได้ การใช้กุญแจสำรองโดยเจตนาอาจช่วยสำรองข้อมูลได้ ความสัมพันธ์ระหว่างPและQถูกใช้เป็นกุญแจสำรองและจัดเก็บไว้ในโดเมนความปลอดภัย ผู้ดูแลระบบจะบันทึกผลลัพธ์ของเครื่องกำเนิดเพื่อสร้างเลขสุ่มขึ้นใหม่โดยใช้กุญแจสำรอง
2) การตัดทอนผลลัพธ์ขนาดเล็ก
[0041] อีกวิธีหนึ่งสำหรับการป้องกันการโจมตีแบบ escrow key บนเอาต์พุตของ ECRNG ดังแสดงในรูปที่ 3 และ 4 คือการเพิ่มฟังก์ชันการตัดทอนให้กับ ECRNG เพื่อตัดทอนเอาต์พุตของ ECRNG ให้มีความยาวประมาณครึ่งหนึ่งของความยาวจุดเส้นโค้งวงรีที่ถูกบีบอัด โดยควรดำเนินการนี้ควบคู่ไปกับวิธีการที่แนะนำในรูปที่ 1 และ 2 อย่างไรก็ตาม จะเห็นได้ว่าสามารถดำเนินการนี้เป็นมาตรการหลักในการป้องกันการโจมตีแบบ escrow key ได้เช่นกัน ข้อดีของการตัดทอนคือ รายการค่า R ที่เกี่ยวข้องกับเอาต์พุต r ของ ECRNG แต่ละตัวนั้นโดยทั่วไปแล้วไม่สามารถค้นหาได้ ตัวอย่างเช่น สำหรับกลุ่มเส้นโค้งวงรี 160 บิต จำนวนจุด R ที่เป็นไปได้ในรายการมีประมาณ 2⁸⁰ และการค้นหาในรายการจะยากพอๆ กับการแก้ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ข้อเสียของวิธีนี้คือ ECRNG จะมีประสิทธิภาพลดลงครึ่งหนึ่ง เนื่องจากความยาวของเอาต์พุตลดลงครึ่งหนึ่งอย่างมีประสิทธิภาพ
ตามที่ John Kelsey กล่าว ตัวเลือกในมาตรฐานในการเลือกQ ที่สุ่มอย่างตรวจสอบได้ ถูกเพิ่มเข้ามาเป็นตัวเลือกเพื่อตอบสนองต่อช่องโหว่ที่ต้องสงสัย[ 15 ]แม้ว่า การตรวจสอบ FIPS 140-2จะทำได้ก็ต่อเมื่อใช้Q ที่อาจมีช่อง โหว่[ 37 ] Steve Marquess (ผู้ช่วยในการใช้งาน NIST SP 800-90A สำหรับ OpenSSL) คาดการณ์ว่าข้อกำหนดในการใช้จุดที่อาจมีช่องโหว่นี้อาจเป็นหลักฐานของการสมรู้ร่วมคิดของ NIST [ 42 ]ไม่ชัดเจนว่าเหตุใดมาตรฐานจึงไม่ระบุQ เริ่มต้น ในมาตรฐานเป็นหมายเลขที่สร้างขึ้นอย่างตรวจสอบได้โดยไม่มีอะไรซ่อนอยู่หรือเหตุใดมาตรฐานจึงไม่ใช้การตัดทอนที่มากขึ้น ซึ่งสิทธิบัตรของ Brown กล่าวว่าสามารถใช้เป็น "มาตรการหลักในการป้องกัน การโจมตี การเฝ้ารักษากุญแจ " การตัดทอนเล็กน้อยนั้นผิดปกติเมื่อเทียบกับ EC PRG ก่อนหน้านี้ ซึ่งตามที่ Matthew Green กล่าวไว้ว่าส่งออกเพียง 1/2 ถึง 2/3 ของบิตในฟังก์ชันเอาต์พุตเท่านั้น[ 5 ]ในปี 2006 Gjøsteen ได้แสดงให้เห็นว่าการตัดทอนที่ต่ำทำให้ RNG สามารถคาดเดาได้และใช้งานไม่ได้ในฐานะ CSPRNG แม้ว่าQจะไม่ได้ถูกเลือกให้มีช่องโหว่ก็ตาม[ 20 ]มาตรฐานระบุว่าการใช้งาน "ควร" ใช้ max_outlen ขนาดเล็กที่ให้มา แต่ให้ตัวเลือกในการส่งออกบิตที่น้อยลงเป็นทวีคูณของ 8 ภาคผนวก C ของมาตรฐานให้เหตุผลอย่างหลวมๆ ว่าการส่งออกบิตที่น้อยลงจะทำให้เอาต์พุตกระจายตัวไม่สม่ำเสมอมากขึ้น การพิสูจน์ความปลอดภัยของ Brown ในปี 2006 อาศัย outlen ที่มีค่าน้อยกว่าค่า max_outlen เริ่มต้นในมาตรฐานมาก
กลุ่มมาตรฐานและแนวทางเครื่องมือ ANSI X9F1 ซึ่งหารือเกี่ยวกับช่องโหว่ยังรวมถึงพนักงานสามคนจากบริษัทรักษาความปลอดภัยที่มีชื่อเสียงอย่าง RSA Security ด้วย[ 6 ]ในปี 2547 RSA Security ได้นำ Dual_EC_DRBG ที่มีช่องโหว่ของ NSA มาใช้ใน CSPRNG เริ่มต้นในRSA BSAFE ของพวกเขา อันเป็นผลมาจากข้อตกลงลับมูลค่า 10 ล้านดอลลาร์กับ NSA ในปี 2556 หลังจากที่ New York Times รายงานว่า Dual_EC_DRBG มีช่องโหว่ของ NSA RSA Security กล่าวว่าพวกเขาไม่ทราบถึงช่องโหว่ใดๆ เมื่อทำข้อตกลงกับ NSA และบอกให้ลูกค้าเปลี่ยน CSPRNG ในการกล่าวปาฐกถาหลักในการประชุม RSA ปี 2557 Art Coviello ประธานบริหารของ RSA Security อธิบายว่า RSA พบว่ารายได้จากการเข้ารหัสลดลง และได้ตัดสินใจที่จะหยุดเป็น "ผู้ขับเคลื่อน" การวิจัยการเข้ารหัสอิสระ แต่จะ "วางใจ" ในมาตรฐานและคำแนะนำจากองค์กรมาตรฐานเช่น NIST แทน[ 32 ]
ร่างมาตรฐาน NIST SP 800-90A ซึ่งรวมถึง Dual_EC_DRBG ได้รับการเผยแพร่ในเดือนธันวาคม พ.ศ. 2548 มาตรฐาน NIST SP 800-90A ฉบับสมบูรณ์ซึ่งรวมถึง Dual_EC_DRBG ได้รับการเผยแพร่ในเดือนมิถุนายน พ.ศ. 2549 เอกสารที่รั่วไหลโดยสโนว์เดนได้รับการตีความว่าชี้ให้เห็นว่า NSA ได้แทรกช่องโหว่ใน Dual_EC_DRBG โดยผู้ที่กล่าวหาอ้างถึงการทำงานของ NSA ในระหว่างกระบวนการกำหนดมาตรฐานจนในที่สุดก็กลายเป็นผู้แก้ไขมาตรฐานแต่เพียงผู้เดียว[ 7 ]การใช้งาน Dual_EC_DRBG ในช่วงแรกโดย RSA Security (ซึ่งต่อมามีรายงานว่า NSA ได้จ่ายเงิน 10 ล้านดอลลาร์อย่างลับๆ) ถูก NSA อ้างถึงเป็นข้อโต้แย้งสำหรับการยอมรับ Dual_EC_DRBG เข้าสู่มาตรฐานNIST SP 800-90A [ 2 ]ต่อมา RSA Security อ้างถึงการยอมรับ Dual_EC_DRBG เข้าสู่มาตรฐาน NIST เป็นเหตุผลที่พวกเขาใช้ Dual_EC_DRBG [ 43 ]
บทความของ Daniel RL Brown ในเดือนมีนาคม 2549 เกี่ยวกับการลดความปลอดภัยของ Dual_EC_DRBG กล่าวถึงความจำเป็นในการตัดทอนเอาต์พุตเพิ่มเติมและการเลือกQ แบบสุ่ม แต่กล่าวถึงเพียงเล็กน้อย และไม่ได้กล่าวถึงข้อสรุปจากสิทธิบัตรของเขาที่ว่าข้อบกพร่องสองประการใน Dual_EC_DRBG นี้สามารถใช้เป็นช่องโหว่ได้ Brown เขียนไว้ในบทสรุปว่า: "ดังนั้น ECRNG ควรได้รับการพิจารณาอย่างจริงจัง และประสิทธิภาพสูงของมันทำให้เหมาะสมแม้ในสภาพแวดล้อมที่มีข้อจำกัด" โปรดทราบว่าผู้อื่นได้วิพากษ์วิจารณ์ Dual_EC_DRBG ว่าช้ามาก โดย Bruce Schneier สรุปว่า "มันช้าเกินไปจนไม่มีใครเต็มใจจะใช้มัน" [ 4 ]และ Matthew Green กล่าวว่า Dual_EC_DRBG นั้น "ช้ากว่าทางเลือกอื่นถึงพันเท่า" [ 5 ]ศักยภาพของช่องโหว่ใน Dual_EC_DRBG ไม่ได้ถูกเผยแพร่อย่างกว้างขวางนอกเหนือจากการประชุมกลุ่มมาตรฐานภายใน หลังจากที่Dan ShumowและNiels Fergusonนำเสนอในปี 2007 ศักยภาพของช่องโหว่จึงเป็นที่รู้จักกันอย่างแพร่หลาย Shumow และ Ferguson ได้รับมอบหมายให้ดำเนินการใช้งาน Dual_EC_DRBG สำหรับ Microsoft และอย่างน้อย Ferguson ก็ได้พูดคุยเกี่ยวกับช่องโหว่ที่เป็นไปได้ในการประชุม X9 ในปี 2005 [ 15 ] Bruce Schneier เขียนในบทความ Wired ปี 2007 ว่าข้อบกพร่องของ Dual_EC_DRBG นั้นชัดเจนมากจนไม่มีใครจะใช้ Dual_EC_DRBG: "มันไม่สมเหตุสมผลในฐานะกับดัก: มันเป็นสาธารณะและค่อนข้างชัดเจน มันไม่สมเหตุสมผลจากมุมมองทางวิศวกรรม: มันช้าเกินไปจนไม่มีใครเต็มใจจะใช้มัน" [ 4 ]เห็นได้ชัดว่า Schneier ไม่ทราบว่า RSA Security ได้ใช้ Dual_EC_DRBG เป็นค่าเริ่มต้นใน BSAFE ตั้งแต่ปี 2004
OpenSSL ได้นำมาตรฐาน NIST SP 800-90A ทั้งหมดมาใช้ รวมถึง Dual_EC_DRBG ตามคำขอของลูกค้า นักพัฒนา OpenSSL ตระหนักถึงช่องโหว่ที่อาจเกิดขึ้นเนื่องจากการนำเสนอของ Shumow และ Ferguson และต้องการใช้วิธีการที่รวมอยู่ในมาตรฐานเพื่อเลือก P และ Q ที่ รับประกันว่าไม่มีช่องโหว่ แต่ได้รับแจ้งว่าเพื่อให้ได้รับการตรวจสอบ FIPS 140-2 พวกเขาจะต้องใช้PและQ เริ่มต้น OpenSSL เลือกที่จะใช้งาน Dual_EC_DRBG แม้จะมีชื่อเสียงที่ไม่ดีในเรื่องความสมบูรณ์ โดยสังเกตว่า OpenSSL พยายามที่จะสมบูรณ์และใช้งานอัลกอริทึมที่ไม่ปลอดภัยอื่นๆ อีกมากมาย OpenSSL ไม่ได้ใช้ Dual_EC_DRBG เป็น CSPRNG เริ่มต้น และในปี 2013 พบว่ามีข้อบกพร่องที่ทำให้การใช้งาน Dual_EC_DRBG ของ OpenSSL ไม่ทำงาน ซึ่งหมายความว่าไม่มีใครสามารถใช้งานได้[ 37 ]
Bruce Schneier รายงานในเดือนธันวาคม 2007 ว่า Microsoft ได้เพิ่มการสนับสนุน Dual_EC_DRBG ให้กับ Windows Vista แม้ว่าจะไม่ได้เปิดใช้งานโดยค่าเริ่มต้น และ Schneier ได้เตือนถึงช่องโหว่ที่อาจเกิดขึ้น[ 44 ] Windows 10และเวอร์ชันต่อมาจะแทนที่การเรียกใช้ Dual_EC_DRBG ด้วยการเรียกใช้ CTR_DRBG ที่ใช้ AES โดยไม่แจ้งให้ ทราบ [ 45 ]
เมื่อวันที่ 9 กันยายน 2013 หลังจากการรั่วไหลของข้อมูลโดยสโนว์เดน และรายงานของนิวยอร์กไทมส์ เกี่ยวกับช่องโหว่ใน Dual_EC_DRBG สถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) ITL ได้ประกาศว่าเนื่องจากความกังวลด้านความปลอดภัยของชุมชน จึงได้ออก SP 800-90A อีกครั้งในรูปแบบร่างมาตรฐาน และเปิด SP800-90B/C ให้สาธารณชนแสดงความคิดเห็นอีกครั้ง ปัจจุบัน NIST "แนะนำอย่างยิ่ง" ให้หลีกเลี่ยงการใช้ Dual_EC_DRBG ตามที่ระบุไว้ใน SP 800-90A เวอร์ชันเดือนมกราคม 2012 [ 46 ] [ 47 ]การค้นพบช่องโหว่ในมาตรฐานของ NIST ถือเป็นเรื่องน่าอับอายอย่างมากสำหรับNIST [ 48 ]
RSA Security ยังคงใช้ Dual_EC_DRBG เป็น CSPRNG เริ่มต้นใน BSAFE แม้หลังจากที่ชุมชนการเข้ารหัสลับในวงกว้างตระหนักถึงช่องโหว่ที่อาจเกิดขึ้นในปี 2550 แต่ดูเหมือนว่าจะไม่มีการรับรู้โดยทั่วไปเกี่ยวกับการใช้ Dual_EC_DRBG ของ BSAFE เป็นตัวเลือกของผู้ใช้ในชุมชน มีเพียงหลังจากที่เกิดความกังวลอย่างกว้างขวางเกี่ยวกับช่องโหว่ จึงมีความพยายามที่จะค้นหาซอฟต์แวร์ที่ใช้ Dual_EC_DRBG ซึ่ง BSAFE เป็นซอฟต์แวร์ที่โดดเด่นที่สุดที่พบ หลังจากมีการเปิดเผยในปี 2556 Sam Curry หัวหน้าฝ่ายเทคโนโลยีของ RSA Security ได้ให้ เหตุผลแก่ Ars Technicaสำหรับการเลือกมาตรฐาน Dual EC DRBG ที่มีข้อบกพร่องเป็นค่าเริ่มต้นแทนตัวสร้างเลขสุ่มทางเลือกอื่น[ 49 ]ความถูกต้องทางเทคนิคของข้อความดังกล่าวถูกวิพากษ์วิจารณ์อย่างกว้างขวางโดยนักเข้ารหัสลับ รวมถึงMatthew GreenและMatt Blaze [ 28 ]เมื่อวันที่ 20 ธันวาคม 2013 สำนักข่าวรอยเตอร์รายงานว่า RSA ได้รับเงินจำนวน 10 ล้านดอลลาร์สหรัฐจาก NSA เพื่อตั้งค่าเครื่องกำเนิดเลขสุ่ม Dual_EC_DRBG เป็นค่าเริ่มต้นในผลิตภัณฑ์การเข้ารหัสสองรายการ[ 2 ] [ 50 ]เมื่อวันที่ 22 ธันวาคม 2013 RSA ได้โพสต์แถลงการณ์ลงในบล็อกของบริษัทโดยปฏิเสธข้อตกลงลับกับ NSA ในการแทรก "เครื่องกำเนิดเลขสุ่มที่มีข้อบกพร่องที่ทราบ" ลงในชุดเครื่องมือ BSAFE [ 3 ]
หลังจากเรื่องราวในนิวยอร์กไทมส์ที่อ้างว่า Dual_EC_DRBG มีช่องโหว่ บราวน์ (ซึ่งได้ยื่นขอสิทธิบัตรช่องโหว่และเผยแพร่การลดความปลอดภัย) ได้เขียนอีเมลถึงรายชื่อผู้รับจดหมาย ของ IETF เพื่อปกป้องกระบวนการมาตรฐาน Dual_EC_DRBG: [ 38 ]
1. Dual_EC_DRBG ตามที่ระบุไว้ใน NIST SP 800-90A และ ANSI X9.82-3 อนุญาตให้เลือกค่าคงที่PและQ ทางเลือกได้ เท่าที่ผมทราบ ทางเลือกเหล่านั้นไม่ได้นำไปสู่ช่องโหว่ที่ทราบได้ ในความเห็นของผม การกล่าวอ้างว่า Dual_EC_DRBG มีช่องโหว่อยู่เสมอเป็นเรื่องไม่ถูกต้อง แม้ว่าผมจะยอมรับว่าการใช้ถ้อยคำเพื่อระบุกรณีที่ได้รับผลกระทบอาจจะดูไม่เหมาะสมก็ตาม
2. หลายสิ่งหลายอย่างนั้นชัดเจนเมื่อมองย้อนกลับไป ฉันไม่แน่ใจว่าเรื่องนี้ชัดเจนตั้งแต่แรกหรือไม่ [...]
8. เมื่อพิจารณาโดยรวมแล้ว ผมไม่เห็นว่ามาตรฐาน ANSI และ NIST สำหรับ Dual_EC_DRBG จะถูกมองว่าเป็นมาตรฐานที่บิดเบือนไปจากเดิมได้อย่างไร แต่บางทีอาจเป็นเพราะผมมีอคติหรือมองโลกในแง่ดีเกินไปก็ได้
— แดเนียล บราวน์, [ 38 ]
ซอฟต์แวร์และฮาร์ดแวร์ที่มีช่องโหว่ที่อาจซ่อนอยู่
การใช้งานที่ใช้ Dual_EC_DRBG มักจะได้รับผ่านไลบรารี อย่างน้อย RSA Security (ไลบรารี BSAFE), OpenSSL , Microsoft และ Cisco [ 51 ]มีไลบรารีที่รวม Dual_EC_DRBG ไว้ แต่มีเพียง BSAFE เท่านั้นที่ใช้เป็นค่าเริ่มต้น ตามบทความของ Reuters ที่เปิดเผยข้อตกลงลับมูลค่า 10 ล้านดอลลาร์ระหว่าง RSA Security และ NSA BSAFE ของ RSA Security เป็นผู้จัดจำหน่ายอัลกอริทึมที่สำคัญที่สุด[ 2 ]มีข้อบกพร่องในการใช้งาน Dual_EC_DRBG ของ OpenSSL ที่ทำให้ใช้งานไม่ได้นอกโหมดทดสอบ ซึ่ง Steve Marquess ของ OpenSSL สรุปว่าไม่มีใครใช้การใช้งาน Dual_EC_DRBG ของ OpenSSL [ 37 ]
รายชื่อผลิตภัณฑ์ที่ได้รับการตรวจสอบความถูกต้องตามมาตรฐาน FIPS 140-2 สำหรับการใช้งาน CSPRNG นั้นมีอยู่ใน NIST [ 52 ] CSPRNG ที่ได้รับการตรวจสอบความถูกต้องจะแสดงอยู่ในช่องคำอธิบาย/หมายเหตุ โปรดทราบว่าแม้ว่า Dual_EC_DRBG จะถูกระบุว่าได้รับการตรวจสอบความถูกต้องแล้ว แต่ก็อาจไม่ได้เปิดใช้งานตามค่าเริ่มต้น การใช้งานหลายอย่างมาจากสำเนาที่เปลี่ยนชื่อของการใช้งานไลบรารี[ 53 ]
ซอฟต์แวร์BlackBerryเป็นตัวอย่างของการใช้งานที่ไม่ใช่ค่าเริ่มต้น ซึ่งรวมถึงการสนับสนุน Dual_EC_DRBG แต่ไม่ใช่ค่าเริ่มต้น อย่างไรก็ตาม BlackBerry Ltd ไม่ได้ออกคำแนะนำใดๆ ให้กับลูกค้าที่อาจใช้งานซอฟต์แวร์นี้ เนื่องจากพวกเขาไม่ถือว่าช่องโหว่ดังกล่าวเป็นช่องโหว่[ 54 ] Jeffrey Carrอ้างจดหมายจาก BlackBerry: [ 54 ]
อัลกอริทึม Dual EC DRBG สามารถใช้งานได้เฉพาะนักพัฒนาบุคคลที่สามผ่านทาง API ด้านการเข้ารหัสลับบนแพลตฟอร์ม [Blackberry] เท่านั้น ในกรณีของ API ด้านการเข้ารหัสลับ จะสามารถใช้งานได้ก็ต่อเมื่อนักพัฒนาบุคคลที่สามต้องการใช้ฟังก์ชันการทำงานและได้ออกแบบและพัฒนาระบบที่ร้องขอการใช้งาน API นั้นอย่างชัดเจน
บรูซ ชไนเออร์ ชี้ให้เห็นว่า แม้ว่าจะไม่ได้เปิดใช้งานโดยค่าเริ่มต้น แต่การมี CSPRNG ที่ถูกดัดแปลงเป็นตัวเลือก จะช่วยให้ NSA สามารถสอดแนมเป้าหมายที่มีสวิตช์บรรทัดคำสั่งที่ควบคุมด้วยซอฟต์แวร์เพื่อเลือกอัลกอริธึมการเข้ารหัส หรือระบบ " รีจิสทรี " ได้ง่ายขึ้น เช่น ผลิตภัณฑ์ส่วนใหญ่ของ Microsoftเช่นWindows Vista
โทรจันนั้นใหญ่มาก ๆ คุณบอกไม่ได้หรอกว่านั่นเป็นความผิดพลาด มันเป็นโค้ดขนาดมหึมาที่เก็บรวบรวมการกดแป้นพิมพ์ แต่การเปลี่ยนบิตที่หนึ่งเป็นบิตที่สอง [ในรีจิสทรีเพื่อเปลี่ยนตัวสร้างเลขสุ่มเริ่มต้นของเครื่อง] อาจจะไม่ถูกตรวจพบ มันเป็นวิธีการสร้างช่องโหว่ที่มีความซับซ้อนต่ำและปฏิเสธได้ง่าย ดังนั้นจึงมีประโยชน์ที่จะนำมันเข้าไปในไลบรารีและในผลิตภัณฑ์
— บรูซ ชไนเออร์, [ 51 ]
ในเดือนธันวาคม พ.ศ. 2556 มีการเผยแพร่ แบ็กดอร์ต้นแบบ[ 39 ]ที่ใช้สถานะภายในที่รั่วไหลเพื่อทำนายตัวเลขสุ่มถัดไป ซึ่งเป็นการโจมตีที่สามารถทำได้จนกว่าจะมีการรีซีดครั้งถัดไป
ในเดือนธันวาคม 2015 Juniper Networksประกาศ[ 55 ] ว่า เฟิร์มแวร์ ScreenOS บางเวอร์ชันใช้ Dual_EC_DRBG กับ จุด PและQ ที่น่าสงสัย ทำให้เกิดช่องโหว่ในไฟร์วอลล์ เดิมทีคาดว่าจะใช้จุด Q ที่ Juniper เลือก ซึ่งอาจสร้างขึ้นด้วยวิธีที่ปลอดภัยหรือไม่ก็ได้ จากนั้น Dual_EC_DRBG จะถูกใช้เพื่อกำหนดค่าเริ่มต้นให้กับ ANSI X9.17 PRNG ซึ่งจะทำให้เอาต์พุตของ Dual_EC_DRBG คลุมเครือและทำให้ช่องโหว่นั้นใช้งานไม่ได้ อย่างไรก็ตาม "บั๊ก" ในโค้ดทำให้เอาต์พุตดิบของ Dual_EC_DRBG ปรากฏออกมา จึงทำให้ความปลอดภัยของระบบลดลง ช่องโหว่นี้จึงถูกเจาะโดยบุคคลที่ไม่รู้จักซึ่งเปลี่ยนจุด Q และเวกเตอร์ทดสอบบางส่วน[ 56 ] [ 57 ] [ 58 ]ข้อกล่าวหาที่ว่าNSAสามารถเข้าถึงช่องโหว่ผ่านไฟร์วอลล์ของ Juniper ได้อย่างต่อเนื่องนั้น ได้รับการเผยแพร่แล้วในปี 2013 โดยDer Spiegel [ 59 ]ช่อง โหว่ การขโมยข้อมูลเป็นตัวอย่างหนึ่งของ นโยบาย NOBUS ของ NSA ซึ่งมีช่องโหว่ด้านความปลอดภัยที่เฉพาะพวกเขาเท่านั้นที่สามารถใช้ประโยชน์ได้
ดูเพิ่มเติม
- การโจมตีด้วยตัวสร้างตัวเลขสุ่ม
- Crypto AG – บริษัทสัญชาติสวิสที่เชี่ยวชาญด้านการสื่อสารและความปลอดภัยของข้อมูลซึ่งเชื่อกันอย่างกว้างขวางว่าอนุญาตให้หน่วยงานรักษาความปลอดภัยของตะวันตก (รวมถึง NSA) แทรกช่องโหว่ในเครื่องเข้ารหัสลับของพวกเขา[ 60 ]
ลิงก์ภายนอก
- NIST SP 800-90A – ข้อแนะนำสำหรับการสร้างเลขสุ่มโดยใช้ตัวสร้างบิตสุ่มแบบกำหนดค่าได้
- Dual EC DRBG – การรวบรวมข้อมูล Dual_EC_DRBG โดยDaniel J. Bernstein , Tanja LangeและRuben Niederhagen
- เกี่ยวกับการนำ Dual EC ไปใช้ประโยชน์ในทางปฏิบัติในการใช้งาน TLS – บทความวิจัยสำคัญโดย Stephen Checkoway และคณะ
- ความแพร่หลายของการโจมตีแบบขโมยข้อมูลต่อระบบเข้ารหัสแบบลอการิทึมแยกส่วน – Adam L. Young , Moti Yung (1997)
- เอกสารเผยแพร่คำขอสิทธิบัตรของสหรัฐอเมริกาUS 2007189527 , Brown, Daniel RL และ Vanstone, Scott A, "การสร้างตัวเลขสุ่มด้วยเส้นโค้งวงรี" ซึ่งมอบให้แก่ Certicom Corp.สำหรับช่องโหว่ Dual_EC_DRBG และวิธีการลบล้างช่องโหว่ดังกล่าว
- ความคิดเห็นเกี่ยวกับ Dual-EC-DRBG/NIST SP 800-90 ฉบับร่าง ธันวาคม 2005บทความของ Kristian Gjøsteen ในเดือนมีนาคม 2006 สรุปว่า Dual_EC_DRBG สามารถคาดเดาได้ และด้วยเหตุนี้จึงไม่ปลอดภัย
- การวิเคราะห์ความปลอดภัยของเครื่องกำเนิดเลขสุ่มแบบวงรี NIST SP 800-90การวิเคราะห์ความปลอดภัยของ Dual_EC_DRBG ในปี 2007 โดย Daniel RL Brown และ Kristian Gjøsteen แม้ว่าอย่างน้อย Brown จะทราบถึงช่องโหว่ (จากสิทธิบัตรของเขาในปี 2005) แต่ก็ไม่ได้มีการกล่าวถึงช่องโหว่นั้นอย่างชัดเจน สันนิษฐานว่ามีการใช้ค่าคงที่ที่ไม่มีช่องโหว่ และการตัดทอนบิตเอาต์พุตมากกว่าที่ Dual_EC_DRBG กำหนดไว้
- เกี่ยวกับความเป็นไปได้ของช่องโหว่ใน NIST SP800-90 Dual Ec Prngการนำเสนอของ Dan Shumow และ Niels Ferguson ซึ่งทำให้ช่องโหว่ดังกล่าวเป็นที่รู้จักกันอย่างแพร่หลาย
- ข้อบกพร่องมากมายของ Dual_EC_DRBG – คำอธิบายแบบง่ายๆ ของ Matthew Green เกี่ยวกับวิธีการและเหตุผลที่ช่องโหว่นี้ทำงาน
- ข้อสังเกตเพิ่มเติมเกี่ยวกับเครื่องกำเนิดเลขสุ่มของ NSA – แมทธิว กรีน
- ขอโทษนะ RSA ฉันไม่เชื่อหรอก – สรุปและลำดับเหตุการณ์ของ Dual_EC_DRBG และข้อมูลที่เปิดเผยต่อสาธารณะ
- [Cfrg] Dual_EC_DRBG ... [เกี่ยวกับ: การขอให้ถอดถอนประธานร่วมของ CFRG]อีเมลจาก Daniel RL Brown เมื่อเดือนธันวาคม 2013 ที่ปกป้อง Dual_EC_DRBG และกระบวนการมาตรฐาน
- การโต้เถียงเรื่อง Dual EC DRBG: ผลที่ตามมาจากการทำลายกระบวนการกำหนดมาตรฐานการเข้ารหัสลับ บทความของ Kostsyuk และ Landau เกี่ยวกับความเชื่อมั่นที่ยังคงมีอยู่มากของชุมชนการเข้ารหัสลับระหว่างประเทศที่มีต่อ NIST แม้จะมี Dual EC DRBG ก็ตาม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ Dual_EC_DRBG
Dual_EC_DRBG ( เครื่องกำเนิดบิตสุ่มแบบกำหนดค่าได้แบบเส้นโค้งวงรีคู่ ) เป็นอัลกอริทึมที่นำเสนอเป็นเครื่องกำเนิดเลขสุ่มเทียมที่มีความปลอดภัยทางด้านการเข้ารหัส (CSPRNG)
จุดอ่อน: ช่องโหว่ที่อาจเกิดขึ้นได้
จุดอ่อนด้านความปลอดภัยทางด้านการเข้ารหัสของอัลกอริทึมนั้นเป็นที่ทราบกันดีและถูกวิพากษ์วิจารณ์อย่างเปิดเผยมานานแล้ว ก่อนที่อัลกอริทึมนี้จะกลายเป็นส่วนหนึ่งของมาตรฐานอย่างเป็นทางการที่ได้รับการรับรองจาก ANSI , ISO และในอดีตโดย สถาบันมาตรฐานและเทคโนโลยีแห่งชาติ...
ลำดับเหตุการณ์ของ Dual_EC_DRBG
เวลา เกิดอะไรขึ้น พฤษภาคม 2540 Adam L. Young และ Moti Yung นำเสนอ เอกสาร คริปโตไวโรโลยี "Kleptography: Using Cryptography Against Cryptography" ในงาน Eurocrypt 1997 [ 13 ] เอกสารนี้แสดงวิธีการสร้างการแลกเปลี่ยนคีย์แบบลับๆ ลงในโปรโตคอลการแลกเปลี่ยนคีย์...
ภาพรวม
อัลกอริทึมนี้ใช้จำนวนเต็ม s เพียงตัวเดียว เป็นสถานะ เมื่อใดก็ตามที่มีการร้องขอหมายเลขสุ่มใหม่ จำนวนเต็มนี้จะได้รับการ อัปเดต สถานะที่ k จะกำหนดโดย