One-Time Pad คืออะไร? เข้าใจการเข้ารหัสและ OTP
เรียนรู้ว่า one-time pad ใช้ XOR และกุญแจสุ่มชุดใหม่อย่างไร ความลับสมบูรณ์หมายถึงอะไร ทำไมจึงห้ามใช้กุญแจซ้ำ และต่างจาก OTP เข้าสู่ระบบอย่างไร

One-time pad เป็นวิธีเข้ารหัสข้อความด้วยกุญแจลับแบบสุ่มที่ยาวไม่น้อยกว่าข้อความ โดยต้องใช้ส่วนของแพดชุดใหม่สำหรับการเข้ารหัสทุกครั้ง เมื่อทำตามเงื่อนไขที่เคร่งครัด การเห็นข้อความที่เข้ารหัสแล้วจะไม่ให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อความต้นฉบับแก่ผู้โจมตี
ตัวย่อ OTP ยังอาจหมายถึงรหัสผ่านหรือรหัสยืนยันสำหรับเข้าสู่ระบบด้วย One-time pad, OTP เข้าสู่ระบบ และลิงก์ที่เปิดได้ครั้งเดียวจึงเป็นสิ่งที่ใช้แก้ปัญหาต่างกัน
เงื่อนไขของ one-time pad ที่แท้จริง
สำหรับ ข้อความยาว n บิต วิธีแบบไบนารีต้องใช้ บิตของแพดลับชุดใหม่ n บิต:
- สุ่มแพดจากการแจกแจงแบบสม่ำเสมอ กุญแจขนาด n บิตทุกค่าต้องมีโอกาสถูกเลือกเท่ากัน
- สร้างแพดอย่างเป็นอิสระจากข้อความและส่วนของแพดอื่น ๆ
- เก็บแพดเป็นความลับจากผู้สังเกตการณ์
- ใช้แพดแต่ละส่วนเข้ารหัสข้อความเพียงข้อความเดียว ห้ามนำส่วนเดิมหรือส่วนที่ทับซ้อนกันไปใช้เข้ารหัสอีกข้อความ
สมมติฐานเหล่านี้เป็นพื้นฐานของบทพิสูจน์ความปลอดภัยใน บทเรื่อง one-time pad ของ Mike Rosulek วลีที่จำง่ายหรือกุญแจที่วนซ้ำไม่เป็นไปตามเงื่อนไขนี้
ตัวอย่าง XOR ขนาดสี่บิต
XOR เขียนด้วยสัญลักษณ์ ⊕ ให้ผลเป็น 0 เมื่อบิตทั้งสองเหมือนกัน และเป็น 1 เมื่อแตกต่างกัน การเข้ารหัสนำข้อความมาทำ XOR กับแพด ส่วนการถอดรหัสใช้แพดเดิมทำ XOR อีกครั้ง
| ขั้นตอน | การคำนวณ | ผลลัพธ์ |
|---|---|---|
| เข้ารหัส | 1010 ⊕ 0110 |
1100 |
| ถอดรหัส | 1100 ⊕ 0110 |
1010 |
ในตัวอย่างนี้ ข้อความคือ 1010 แพดคือ 0110 และข้อความที่เข้ารหัสแล้วคือ 1100 การทำ XOR ซ้ำด้วยแพดเดิมจะหักล้างแพด ตัวอย่างนี้แสดงหลักคณิตศาสตร์เท่านั้น การส่งข้อความจริงยังต้องมีการจัดการกุญแจอย่างปลอดภัยและการยืนยันตัวตน
ความลับสมบูรณ์หมายถึงอะไรจริง ๆ
ใน บทความต้นฉบับของ Claude Shannon ส่วนที่ 10 ความลับสมบูรณ์หมายถึง การได้รับข้อความที่เข้ารหัสแล้วไม่ทำให้ความน่าจะเป็นที่ผู้สังเกตการณ์ประเมินไว้สำหรับข้อความต่าง ๆ เปลี่ยนไป
เงื่อนไขนี้ ไม่ได้ กำหนดว่าทุกข้อความต้องมีความเป็นไปได้เท่ากัน หากข้อความหนึ่งที่มีความยาวเท่ากันดูมีแนวโน้มมากกว่าตั้งแต่แรก ก็ยังมีแนวโน้มมากกว่าได้หลังจากเห็นข้อความที่เข้ารหัสแล้ว เพราะข้อความที่เข้ารหัสไม่ได้เพิ่มหลักฐานใหม่ นอกจากนี้ แบบจำลองความยาวคงที่ที่ใช้กันทั่วไปไม่ได้ซ่อนเวลาที่ติดต่อสื่อสาร ผู้ที่ติดต่อกัน หรือความยาวของข้อความ
ทำไมการใช้แพดซ้ำจึงทำลายการรับประกัน
หากข้อความสองข้อความที่ยาวเท่ากันใช้แพด K เดียวกัน จะได้ C1 = M1 ⊕ K และ C2 = M2 ⊕ K เมื่อนำข้อความที่เข้ารหัสแล้วทั้งสองมาทำ XOR กัน K จะถูกหักล้าง:
C1 ⊕ C2 = M1 ⊕ M2
ผู้โจมตีจึงรู้ความสัมพันธ์ระหว่างข้อความทั้งสอง แต่ไม่ได้หมายความว่าจะเห็นข้อความทั้งหมดของทั้งคู่ทันที อย่างไรก็ตาม หากรู้ข้อความต้นฉบับบางส่วน ก็จะรู้แพดส่วนที่ตรงกันและส่วนเดียวกันของอีกข้อความ โครงสร้างที่คาดเดาได้ยังช่วยให้ผู้โจมตีทดสอบข้อสันนิษฐานได้ด้วย
ข้อจำกัดในการใช้งานที่อยู่นอกสมการ
ทั้งสองฝ่ายต้องมีแพดลับร่วมกันในปริมาณที่เพียงพออยู่แล้ว ต้องป้องกันการจัดเก็บ ติดตามตำแหน่งที่ใช้ให้ตรงกัน และไม่ใช้ส่วนที่ใช้แล้วซ้ำ ปริมาณกุญแจที่ต้องส่งมอบเพิ่มขึ้นตามปริมาณข้อมูลที่ส่ง การทำ XOR ไม่ได้แก้ปัญหาการแจกจ่ายกุญแจนี้
แพดเพียงอย่างเดียว ไม่รับรองความครบถ้วนของข้อมูลหรือยืนยันตัวผู้ส่ง การเปลี่ยนบิตหนึ่งในข้อความที่เข้ารหัสแล้วทำให้บิตตำแหน่งเดียวกันหลังถอดรหัสเปลี่ยนไป โดยไม่มีคำเตือนในตัว ความลับของเนื้อหาเพียงอย่างเดียวจึงไม่พิสูจน์ว่าใครเป็นผู้ส่งหรือข้อความถูกแก้ไขหรือไม่
เปรียบเทียบ one-time pad, OTP เข้าสู่ระบบ และลิงก์ดูครั้งเดียว
| คำศัพท์ | จุดประสงค์ | คำว่า “ครั้งเดียว” หมายถึงอะไร |
|---|---|---|
| One-time pad | เข้ารหัสเนื้อหาข้อความ | ใช้ส่วนของแพดสำหรับการเข้ารหัสครั้งเดียว |
| OTP เข้าสู่ระบบ | ยืนยันการครอบครองอุปกรณ์หรือแอปยืนยันตัวตน | ยอมรับรหัสที่สร้างขึ้นเพียงครั้งเดียวในช่วงที่ยังใช้ได้ |
| ลิงก์ดูครั้งเดียว | จำกัดการเข้าถึงผ่านบริการ | ปิดกั้นการเปิดเนื้อหาครั้งใหม่หลังปลดล็อกสำเร็จ |
แนวทางเรื่องเครื่องมือยืนยันตัวตนของ NIST ส่วน 3.1.4 อธิบาย OTP เข้าสู่ระบบที่สร้างจากค่าลับของเครื่องมือยืนยันตัวตนร่วมกับเวลาหรือตัวนับ รหัสเหล่านี้ใช้ยืนยันตัวตน ไม่ใช่แพดสำหรับเข้ารหัสข้อความ
LOCK.PUB เกี่ยวข้องอย่างไร
เครื่องมือสร้างบันทึกที่ป้องกันด้วยรหัสผ่าน ของ LOCK.PUB ใช้แบ่งปันบันทึกที่เปิดซ้ำได้ บันทึกทั่วไปไม่ได้จำกัดให้ดูครั้งเดียวโดยค่าเริ่มต้น LOCK.PUB ไม่ได้ใช้ one-time pad และไม่ได้ให้การเข้ารหัสจากต้นทางถึงปลายทาง เพราะเซิร์ฟเวอร์ประมวลผลข้อความบันทึกในรูปแบบที่อ่านได้ (plaintext) นโยบายเข้าถึงแบบดูครั้งเดียวเป็นอีกแนวคิดหนึ่ง นโยบายลักษณะนี้ปิดกั้นการเปิดเนื้อหาครั้งใหม่หลังแสดงเนื้อหาสำเร็จด้วยรหัสผ่านที่ถูกต้อง แต่ไม่ได้ลบเนื้อหาที่จัดเก็บหรือเรียกคืนไฟล์ดาวน์โหลด ภาพหน้าจอ และสำเนาอื่น ๆ
สำหรับการแบ่งปันในทางปฏิบัติ อ่าน คู่มือบันทึกลับ ส่วน คู่มือเข้ารหัสข้อความออนไลน์ อธิบายสิ่งที่ควรเข้าใจเกี่ยวกับการเข้ารหัสและการประมวลผลข้อมูลของบริการเมื่อแบ่งปันข้อความ
คำถามที่พบบ่อย
One-time pad ถอดรหัสโดยผู้โจมตีไม่ได้เลยหรือ?
รูปแบบในอุดมคติให้ความลับสมบูรณ์เมื่อสมมติฐานทั้งหมดเป็นจริง แต่ต้องพิจารณาแยกต่างหากในกรณีแพดรั่วไหล ใช้ส่วนของแพดซ้ำ อุปกรณ์ถูกยึดควบคุม หรือข้อความถูกดัดแปลง
ใช้ค่าเริ่มต้นสั้น ๆ สร้างแพดที่แท้จริงได้ไหม?
ตัวสร้างเลขสุ่มเทียม ที่ปลอดภัยสามารถขยายค่าเริ่มต้นสั้น ๆ ให้เป็นชุดบิตสำหรับปิดบังข้อความที่ยาวขึ้น และให้ความปลอดภัยเชิงคำนวณภายใต้สมมติฐานบางอย่างได้ แต่ผลลัพธ์ไม่ได้กระจายอย่างสม่ำเสมอครอบคลุมชุดบิตที่ยาวกว่าทุกค่าที่เป็นไปได้ จึงไม่ให้ความลับสมบูรณ์แบบเดียวกับ one-time pad
“ครั้งเดียว” หมายความว่าข้อความจะหายไปหรือ?
สำหรับแพด คำนี้หมายถึงการใช้กุญแจ สำหรับลิงก์ หมายถึงการเข้าถึง ทั้งสองคำไม่ได้พิสูจน์ว่ามีการลบข้อมูล และไม่ได้ลบสำเนาที่ผู้อื่นทำไว้แล้ว
สร้างบันทึก
สร้างบันทึกคำสำคัญ
คุณอาจสนใจ
วิธีแชร์เลขบัตรประชาชนอย่างปลอดภัย: ป้องกันการถูกขโมยข้อมูลส่วนตัว
เรียนรู้ว่าเมื่อไหร่และอย่างไรจึงจะแชร์เลขบัตรประชาชนได้อย่างปลอดภัย ป้องกันการถูกขโมยตัวตนด้วยวิธีแชร์ที่ปลอดภัย
เช็กลิสต์เอกสารฉุกเฉินของครอบครัว: PDF ฟรีสำหรับพิมพ์
ดาวน์โหลดเช็กลิสต์เอกสารฉุกเฉินของครอบครัวฟรี บันทึกผู้ติดต่อ ตำแหน่งเก็บเอกสาร และวันทบทวน พร้อม PDF สำหรับพิมพ์และแม่แบบที่คัดลอกได้
แชร์ Google Drive โดยไม่ต้องมีบัญชี Google: ใช้ลิงก์หรือเชิญผู้เข้าชม
เปรียบเทียบลิงก์ดูไฟล์โดยไม่เข้าสู่ระบบกับการเชิญผู้เข้าชม Workspace ผ่าน PIN ทางอีเมล พร้อมขั้นตอน แก้ปัญหาหน้าล็อกอิน และข้อจำกัดของลิงก์รหัสผ่าน