ทำไมไม่มีอัลกอริธึมการเข้ารหัสที่ใช้ปัญหา NP-Hard ที่รู้จักกันดี


109

การเข้ารหัสของวันนี้ส่วนใหญ่เช่น RSA อาศัยการแยกตัวประกอบจำนวนเต็มซึ่งไม่เชื่อว่าเป็นปัญหา NP-hard แต่เป็นของ BQP ซึ่งทำให้เสี่ยงต่อคอมพิวเตอร์ควอนตัม ฉันสงสัยว่าทำไมไม่มีอัลกอริธึมการเข้ารหัสซึ่งมาจากปัญหา NP-hard ที่เป็นที่รู้จัก ฟังดู (อย่างน้อยก็ในทางทฤษฎี) เหมือนว่ามันจะสร้างอัลกอริธึมการเข้ารหัสที่ดีกว่าแบบที่ไม่ได้พิสูจน์ว่าเป็นแบบ NP-hard

คำตอบ:


76

ความแข็งกรณีที่เลวร้ายที่สุดของปัญหาที่เกิดปัญหาแบบสมบูรณ์ไม่เพียงพอสำหรับการเข้ารหัส แม้ว่าปัญหาที่สมบูรณ์แบบของ NP นั้นยากในกรณีที่แย่ที่สุด ( ) แต่ปัญหาเหล่านั้นก็ยังสามารถแก้ไขได้ในกรณีทั่วไป วิทยาการเข้ารหัสลับสมมติว่าการมีอยู่ของปัญหาเฉลี่ยว่ายากใน NP นอกจากนี้การพิสูจน์การมีอยู่ของปัญหาที่ยากต่อค่าเฉลี่ยใน NP โดยใช้สมมติฐานP N Pเป็นปัญหาเปิดที่สำคัญPNPPNP

การอ่านที่ยอดเยี่ยมคือคลาสสิกโดย Russell Impagliazzo มุมมองส่วนตัวของความซับซ้อนเฉลี่ยเคส , 1995

การสำรวจที่ยอดเยี่ยมคือความซับซ้อนของคดีโดยเฉลี่ยโดย Bogdanov และ Trevisan มูลนิธิและแนวโน้มในวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี 2, No 1 (2006) 1–106


1
เราไม่ต้องการความแข็งในกรณีที่ดีที่สุดด้วยใช่ไหม หลังจากที่ทุกคนทั้งหมดของคีย์ของเราควรจะมีความปลอดภัย หรือว่าเราจะสามารถป้องกันกรณีที่ดีที่สุดได้อย่างมีประสิทธิภาพ (และมีประสิทธิภาพ)?
กราฟิลส์

7
ยิ่งกว่านั้นเราควรจะสามารถสร้างกรณียาก ๆ ในเวลาที่เหมาะสม ในระยะสั้นเราต้องการมากกว่าแค่ ness NP-hard
Kaveh

@ ราฟาเอลก็น่าจะพอแล้วถ้าความน่าจะเป็นที่จะได้รับเคส "ดี" ที่ไม่พึงประสงค์นั้นเล็กพอ หากมีการพูดน้อยกว่าความน่าจะเป็นในการคาดเดาคีย์ที่ถูกต้องของคดี "ไม่ดี" ที่เป็นที่ต้องการความเสี่ยงนี้ควรได้รับการพิจารณาว่าเป็น IMHO ที่ยอมรับได้
quazgar

49

มีการ.

ตัวอย่างหนึ่งคือระบบเข้ารหัสของ McElieceซึ่งมีพื้นฐานมาจากความแข็งของการถอดรหัสรหัสเชิงเส้น

ตัวอย่างที่สองคือNTRUEncryptซึ่งเป็นไปตามปัญหาเวกเตอร์ที่สั้นที่สุดซึ่งฉันเชื่อว่าเป็นที่รู้กันว่า NP-Hard

อีกอย่างหนึ่งคือระบบเข้ารหัสลับของ Merkle-Hellmanที่ชำรุด

หมายเหตุ: ฉันไม่มีเงื่อนงำถ้าสองคนแรกแตก / ดีแค่ไหน สิ่งที่ฉันรู้ก็คือพวกมันมีอยู่จริงและฉันก็ได้สิ่งนั้นจากการค้นหาเว็บ


6
เพื่อจุดประสงค์ในการเข้ารหัสลับ McEliece อาจไม่ควรถูกพิจารณาเพียงแค่ระบบ Crytosystem เดียว สำหรับแต่ละรหัสเชิงเส้นที่ถอดรหัสได้อย่างมีประสิทธิภาพที่คุณเสียบคุณจำเป็นต้องสร้างกลยุทธ์ที่แตกต่างเพื่อทำลายมัน มันถูกทำลายสำหรับรหัสบางคลาส แต่ (ตามบทความ Wikipedia บอกไว้) ไม่ใช่สำหรับรหัส Goppa ซึ่งเป็นคำแนะนำดั้งเดิมของ McEliece
Peter Shor

จากรายการที่ฉันบอกว่า NTRU ดูมีแนวโน้มมากที่สุด แต่ก็ยังไม่ได้มีการทดสอบอย่างกว้างขวางถึงวิธีที่ RSA ได้รับการทดสอบตามสิ่งที่ฉันได้อ่านมาจนถึงตอนนี้
Ken Li

ระบบเข้ารหัส Merkle-Hellman ไม่ใช่ตัวอย่างที่เหมาะสม เครื่องเป้สะพายหลัง Merkle-Hellman เป็นเพียงเซตย่อยของเวกเตอร์เป้ทั้งหมดดังนั้นปัญหาเครื่องหลังของ Merkle-Hellman อาจไม่ได้เป็นปัญหาหนัก ฉันไม่คิดว่ามันจะเป็นเรื่องยากอย่างน้อยฉันก็ไม่ได้ตระหนักถึงกระดาษที่แสดงสิ่งนี้
miracle173

25

ฉันนึกถึงอุปสรรค์สำคัญสี่ข้อที่ไม่ได้เป็นอิสระโดยสิ้นเชิง:

  • NP-hardness ให้ข้อมูลเกี่ยวกับความซับซ้อนในระดับที่ จำกัดเท่านั้น สำหรับปัญหาที่เกิดขึ้นกับ NP จำนวนมากอัลกอริธึมมีอยู่ที่แก้ปัญหาอินสแตนซ์ที่น่าสนใจทั้งหมด (ในบางสถานการณ์) ได้อย่างรวดเร็วพอสมควร กล่าวอีกนัยหนึ่งสำหรับขนาดของปัญหาคงที่ (เช่น "คีย์" ที่กำหนด) ปัญหาไม่จำเป็นต้องยากเพียงเพราะมันเป็น NP-hard
  • NP-hardness จะพิจารณาเฉพาะเวลาที่เลวร้ายที่สุดเท่านั้น หลายกรณีแม้แต่ส่วนใหญ่ทั้งหมดอาจแก้ไขได้ง่ายด้วยอัลกอริทึมที่มีอยู่ แม้ว่าเราจะรู้วิธีการจำแนกลักษณะที่ยาก (afaik เราไม่ได้ทำ) แต่เราก็ยังต้องค้นหามัน
  • 2n(n1)nn
  • คุณต้องการความสามารถในการย้อนกลับได้บ้าง ตัวอย่างเช่นเลขจำนวนเต็มใด ๆ ถูกอธิบายโดยตัวประกอบเฉพาะ รูปที่เราต้องการใช้ TSP เป็นวิธีการเข้ารหัส; ได้รับทัวร์ที่สั้นที่สุดทั้งหมดคุณสามารถสร้างกราฟที่มาจากที่ไม่ซ้ำได้หรือไม่

โปรดทราบว่าฉันไม่มีความเชี่ยวชาญในการเข้ารหัส สิ่งเหล่านี้เป็นเพียงการตอบสนองแบบอัลกอริทึม การคัดค้านความซับซ้อนเชิงทฤษฎี


สรุปยอดเยี่ยม แต่โปรดทราบว่าความแข็ง BQP มีข้อแม้เหมือนกับจุดสองจุดแรกของคุณ
มิทช์

14

การเข้ารหัสแบบพับลิกคีย์ที่เรารู้ในทุกวันนี้นั้นถูกสร้างขึ้นด้วยวิธี การเปลี่ยนทุ่นระเบิดทางเดียว

เพื่อให้โปรโตคอลมีความปลอดภัยสาธารณะคุณต้องมีรหัสสำหรับทุกคนและวิธีการเข้ารหัสข้อความโดยใช้รหัสนี้ เห็นได้ชัดว่าเมื่อเข้ารหัสแล้วมันควรจะยากที่จะกู้คืนข้อความเดิมรู้เพียงตัวเลขและรหัสสาธารณะ: รหัสจะต้องถอดรหัสได้ด้วยข้อมูลพิเศษบางอย่างคือกุญแจส่วนตัวของคุณ

ด้วยความที่อยู่ในใจมันจึงง่ายต่อการสร้างระบบ crypto ดั้งเดิมโดยอาศัยการเปลี่ยนแปลงแบบช่องทางเดียว

  1. อลิซให้การสับเปลี่ยนทางเดียวกับสาธารณะและรักษาประตูกลไว้กับตัวเอง
  2. บ๊อบใส่ข้อมูลลงในการเปลี่ยนแปลงและส่งออกไปยังอลิซ
  3. อลิซใช้ประตูกลเพื่อคว่ำการเปลี่ยนแปลงด้วยเอาท์พุทของบ็อบ

PNP

PNPNPINPNPNPINP

NPNPNP


RSA ใช่มันเป็นฟังก์ชั่นประตูกล ฉันไม่แน่ใจว่า dlog คือ TDF (เป็นทางเดียว)
111

หากปัญหาระดับกลาง - กลางเป็นปัญหาแบบ NP- พวกเขาจะเป็นปัญหาแบบสมบูรณ์
Myria

0

เพียงเพื่อให้ข้อโต้แย้งแบบฮิวริสติกโดยอิงจากประสบการณ์จริง

อินสแตนซ์เกือบทั้งหมดของปัญหา NP-complete เกือบทั้งหมดสามารถแก้ไขได้ง่าย มีปัญหาที่สิ่งนี้ไม่เป็นความจริง แต่หายากและเป็นเรื่องยากที่จะคิดในแง่บวกว่าคุณฟังเสียงในชั้นเรียน

สิ่งนี้เกิดขึ้นในทางปฏิบัติหลายครั้งเมื่อผู้คนพยายามเขียนตัวสร้างปัญหาแบบสุ่มสำหรับคลาส NP-complete ที่มีชื่อเสียงเช่นการเขียนโปรแกรมข้อ จำกัด , SAT หรือพนักงานขายที่เดินทาง ในภายหลังบางคนพบวิธีการแก้ปัญหาเกือบทุกกรณีที่เครื่องกำเนิดไฟฟ้าแบบสุ่มผลิตเล็กน้อย แน่นอนถ้าเป็นเช่นนั้นสำหรับระบบการเข้ารหัสเราจะประสบปัญหาร้ายแรง!


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.