ความเป็นส่วนตัวและความปลอดภัย
6 นาที

One-Time Pad คืออะไร? เข้าใจการเข้ารหัสและ OTP

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

LOCK.PUB
เผยแพร่:
One-Time Pad คืออะไร? เข้าใจการเข้ารหัสและ 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

“ครั้งเดียว” หมายความว่าข้อความจะหายไปหรือ?

สำหรับแพด คำนี้หมายถึงการใช้กุญแจ สำหรับลิงก์ หมายถึงการเข้าถึง ทั้งสองคำไม่ได้พิสูจน์ว่ามีการลบข้อมูล และไม่ได้ลบสำเนาที่ผู้อื่นทำไว้แล้ว

สร้างบันทึก

สร้างบันทึก

คำสำคัญ

one time pad คืออะไร
การเข้ารหัสแบบใช้กุญแจครั้งเดียว
one time pad ต่างจาก OTP

คุณอาจสนใจ

วิธีแชร์เลขบัตรประชาชนอย่างปลอดภัย: ป้องกันการถูกขโมยข้อมูลส่วนตัว

เรียนรู้ว่าเมื่อไหร่และอย่างไรจึงจะแชร์เลขบัตรประชาชนได้อย่างปลอดภัย ป้องกันการถูกขโมยตัวตนด้วยวิธีแชร์ที่ปลอดภัย

ความเป็นส่วนตัวและความปลอดภัย

เช็กลิสต์เอกสารฉุกเฉินของครอบครัว: PDF ฟรีสำหรับพิมพ์

ดาวน์โหลดเช็กลิสต์เอกสารฉุกเฉินของครอบครัวฟรี บันทึกผู้ติดต่อ ตำแหน่งเก็บเอกสาร และวันทบทวน พร้อม PDF สำหรับพิมพ์และแม่แบบที่คัดลอกได้

ความปลอดภัย

แชร์ Google Drive โดยไม่ต้องมีบัญชี Google: ใช้ลิงก์หรือเชิญผู้เข้าชม

เปรียบเทียบลิงก์ดูไฟล์โดยไม่เข้าสู่ระบบกับการเชิญผู้เข้าชม Workspace ผ่าน PIN ทางอีเมล พร้อมขั้นตอน แก้ปัญหาหน้าล็อกอิน และข้อจำกัดของลิงก์รหัสผ่าน

วิธีใช้งาน
One-Time Pad คืออะไร? เข้าใจการเข้ารหัสและ OTP | LOCK.PUB Blog