การเข้ารหัสแบบกุญแจสาธารณะ
การเข้ารหัสแบบกุญแจสาธารณะ (แบบอสมมาตร) ใช้คู่กุญแจที่เชื่อมโยงกันทางคณิตศาสตร์ — กุญแจสาธารณะสำหรับการเข้ารหัสหรือการยืนยันลายเซ็น และกุญแจส่วนตัวสำหรับการถอดรหัสหรือการลงนาม — เพื่อให้คู่สัญญาที่ไม่เคยพบกันสามารถสื่อสารได้อย่างปลอดภัย
Definition
การเข้ารหัสแบบกุญแจสาธารณะเป็นสาขาหนึ่งของการเข้ารหัสที่แต่ละฝ่ายมีคู่กุญแจ — กุญแจสาธารณะที่สามารถแบ่งปันได้อย่างอิสระ และกุญแจส่วนตัวที่เก็บเป็นความลับ — โดยที่การดำเนินการที่ทำด้วยกุญแจหนึ่งจะถูกกลับด้านหรือตรวจสอบด้วยกุญแจอีกอันหนึ่ง
Scope
สาขานี้ครอบคลุมการเข้ารหัสที่อิงตามคู่กุญแจซึ่งความปลอดภัยขึ้นอยู่กับสมมติฐานความยากในการคำนวณ เช่น การแยกตัวประกอบจำนวนเต็ม และปัญหาลอการิทึมไม่ต่อเนื่อง ซึ่งรวมถึงการเข้ารหัสแบบกุญแจสาธารณะ (RSA, ElGamal), การสร้างกุญแจ (Diffie-Hellman), การเข้ารหัสแบบเส้นโค้งวงรี และลายเซ็นดิจิทัล โดยจะกล่าวถึงโครงสร้างแบบกับดักและแบบทางเดียวที่แผนการเหล่านี้อาศัยอยู่ และเป้าหมายความปลอดภัยมาตรฐาน (ความปลอดภัยเชิงความหมาย, การปลอมแปลงไม่ได้) ไม่รวมถึงหลักการพื้นฐานแบบสมมาตร และโครงสร้างพื้นฐานใบรับรองและความน่าเชื่อถือที่แจกจ่ายกุญแจสาธารณะ (ครอบคลุมภายใต้ความปลอดภัยของระบบและเครือข่าย)
Sub-topics
Core questions
- สองฝ่ายจะสื่อสารอย่างปลอดภัยได้อย่างไรโดยไม่ต้องแบ่งปันความลับล่วงหน้า?
- ปัญหาการคำนวณใดบ้าง (การแยกตัวประกอบ, ลอการิทึมไม่ต่อเนื่อง) ที่ทำให้แผนการแบบกุญแจสาธารณะยากต่อการถอดรหัส?
- ฟังก์ชันทางเดียวแบบกับดักคืออะไร และช่วยให้การเข้ารหัสแบบกุญแจสาธารณะเป็นไปได้อย่างไร?
- ลายเซ็นดิจิทัลให้ความถูกต้องและการปฏิเสธไม่ได้ได้อย่างไร?
- เหตุใดการเข้ารหัสแบบกุญแจสาธารณะจึงถูกรวมเข้ากับการเข้ารหัสแบบสมมาตรในทางปฏิบัติ?
Key concepts
- คู่กุญแจสาธารณะและส่วนตัว
- ฟังก์ชันทางเดียวแบบกับดัก
- ปัญหาการแยกตัวประกอบจำนวนเต็ม
- ปัญหาลอการิทึมไม่ต่อเนื่อง
- RSA
- การแลกเปลี่ยนกุญแจ Diffie-Hellman
- การเข้ารหัสแบบเส้นโค้งวงรี
- ลายเซ็นดิจิทัล
- การเข้ารหัสแบบไฮบริด
Key theories
- ฟังก์ชันทางเดียวแบบกับดัก
- การเข้ารหัสแบบกุญแจสาธารณะอาศัยฟังก์ชันที่ง่ายต่อการคำนวณแต่ยากต่อการกลับด้านหากไม่มีข้อมูล 'กับดัก' ที่เป็นความลับ การยกกำลังแบบมอดุลัสของ RSA นั้นง่ายต่อการกลับด้านเฉพาะสำหรับผู้ที่ทราบการแยกตัวประกอบของมอดุลัสเท่านั้น
- แนวคิดกุญแจสาธารณะและการแลกเปลี่ยนกุญแจ
- Diffie และ Hellman แสดงให้เห็นว่าสองฝ่ายสามารถตกลงกันในความลับร่วมกันผ่านช่องทางสาธารณะโดยใช้ฟังก์ชันทางเดียว และเสนอการแบ่งกุญแจเข้ารหัสออกเป็นส่วนสาธารณะและส่วนตัว ซึ่งเป็นการเปิดตัวสาขาการเข้ารหัสแบบกุญแจสาธารณะ
- สมมติฐานความยาก
- ความปลอดภัยแบบอสมมาตรเป็นแบบมีเงื่อนไข: แผนการได้รับการพิสูจน์ว่าปลอดภัยเมื่อเทียบกับความยากที่สันนิษฐานของปัญหาพื้นฐาน เช่น การแยกตัวประกอบจำนวนเต็ม, ปัญหา RSA และลอการิทึมไม่ต่อเนื่องในฟิลด์จำกัดหรือกลุ่มเส้นโค้งวงรี
Clinical relevance
การเข้ารหัสแบบกุญแจสาธารณะเป็นรากฐานของการสื่อสารทางอินเทอร์เน็ตที่ปลอดภัยเกือบทั้งหมด: TLS ใช้เพื่อตรวจสอบเซิร์ฟเวอร์และสร้างคีย์เซสชัน, การลงนามรหัสและการอัปเดตซอฟต์แวร์อาศัยลายเซ็นดิจิทัล, อีเมลที่ปลอดภัย (PGP, S/MIME) และ SSH ใช้คู่กุญแจ, และหน่วยงานออกใบรับรองจะผูกข้อมูลระบุตัวตนเข้ากับกุญแจสาธารณะ สกุลเงินดิจิทัลใช้ลายเซ็นกุญแจสาธารณะเพื่ออนุญาตธุรกรรม ในทางปฏิบัติจะจับคู่กับการเข้ารหัสแบบสมมาตรที่รวดเร็วในแผนการแบบไฮบริด
Evidence & guidelines
RSA, Diffie-Hellman และรูปแบบเส้นโค้งวงรี (ECDH, ECDSA, EdDSA) ได้รับการกำหนดมาตรฐาน (PKCS, NIST SP 800-56, FIPS 186) NIST แนะนำ RSA/DH อย่างน้อย 2048 บิต หรือเส้นโค้งวงรี 224 บิตสำหรับความปลอดภัยแบบคลาสสิก เนื่องจากอัลกอริทึมของ Shor คุกคามทั้งหมดนี้บนคอมพิวเตอร์ควอนตัม NIST จึงได้กำหนดมาตรฐานการทดแทนหลังควอนตัม (ครอบคลุมแยกต่างหาก)
History
การเข้ารหัสแบบกุญแจสาธารณะได้รับการแนะนำต่อสาธารณะโดย Diffie และ Hellman ในปี 1976 (และเป็นอิสระในงานลับโดย Ellis, Cocks และ Williamson ที่ GCHQ) ระบบการเข้ารหัส RSA ตามมาในปี 1977-1978 ซึ่งเป็นแผนการเข้ารหัสและลายเซ็นแบบกุญแจสาธารณะที่ใช้งานได้จริงครั้งแรก ElGamal (1985) สร้างการเข้ารหัสและลายเซ็นบนลอการิทึมไม่ต่อเนื่อง และ Koblitz และ Miller ได้เสนอการเข้ารหัสแบบเส้นโค้งวงรีอย่างอิสระในปี 1985 ซึ่งช่วยให้ใช้กุญแจขนาดเล็กลงได้
Key figures
- Whitfield Diffie
- Martin Hellman
- Ralph Merkle
- Ronald Rivest
- Adi Shamir
- Leonard Adleman
Related topics
Seminal works
- diffie1976
- rivest1978
- katz2020
Frequently asked questions
- เหตุใดการเข้ารหัสแบบกุญแจสาธารณะจึงไม่ถูกใช้สำหรับการเข้ารหัสทั้งหมด?
- การดำเนินการแบบกุญแจสาธารณะช้ากว่าแบบสมมาตรมากและเพิ่มโอเวอร์เฮดของข้อความเข้ารหัส ระบบจริงใช้การเข้ารหัสแบบกุญแจสาธารณะเพื่อตรวจสอบฝ่ายต่างๆ และตกลงในกุญแจเซสชันแบบสมมาตรเท่านั้น จากนั้นจึงเข้ารหัสข้อมูลจำนวนมากแบบสมมาตร — ซึ่งเป็นแนวทางแบบไฮบริด
- คอมพิวเตอร์ควอนตัมจะทำลายการเข้ารหัสแบบกุญแจสาธารณะหรือไม่?
- คอมพิวเตอร์ควอนตัมขนาดใหญ่ที่ใช้อัลกอริทึมของ Shor จะทำลาย RSA, Diffie-Hellman และการเข้ารหัสแบบเส้นโค้งวงรีโดยการแยกตัวประกอบและคำนวณลอการิทึมไม่ต่อเนื่องได้อย่างมีประสิทธิภาพ นี่คือเหตุผลที่แผนการหลังควอนตัมที่อิงตามปัญหาที่ยากอื่นๆ กำลังได้รับการกำหนดมาตรฐานและนำไปใช้งาน