อ่าน 14 นาที
แผ่นรองแบบใช้ครั้งเดียว
รหัสแบบใช้ครั้งเดียว ( OTP ) เป็น เทคนิค การเข้ารหัสที่ไม่สามารถถอดรหัสได้ในทางวิทยาการเข้ารหัสลับต้องใช้รหัสที่ใช้ร่วมกันล่วงหน้าแบบ ใช้ครั้งเดียว...
แผ่นรองแบบใช้ครั้งเดียว

รหัสแบบใช้ครั้งเดียว ( OTP ) เป็น เทคนิค การเข้ารหัสที่ไม่สามารถถอดรหัสได้ในทางวิทยาการเข้ารหัสลับต้องใช้รหัสที่ใช้ร่วมกันล่วงหน้าแบบ ใช้ครั้งเดียว ซึ่งมีขนาดใหญ่กว่าหรือเท่ากับขนาดของข้อความที่ส่ง ในเทคนิคนี้ ข้อความธรรมดา จะถูกจับคู่กับ รหัสลับแบบสุ่ม(เรียกอีกอย่างว่ารหัสแบบใช้ครั้งเดียว ) จากนั้นแต่ละบิตหรืออักขระของข้อความธรรมดาจะถูกเข้ารหัสโดยการรวมกับบิตหรืออักขระที่สอดคล้องกันจากรหัสแบบใช้ครั้งเดียวโดยใช้การบวกแบบโมดูลาร์[ 1 ]
ข้อความเข้ารหัสที่ได้จะไม่สามารถถอดรหัสหรือแยกออกได้หากตรงตามเงื่อนไขทั้งสี่ข้อต่อไปนี้: [ 2 ] [ 3 ]
- กุญแจต้องมีความยาวอย่างน้อยเท่ากับความยาวของข้อความต้นฉบับ
- กุญแจสำคัญจะต้องเป็น แบบ สุ่มอย่างแท้จริง
- ห้ามนำกุญแจไปใช้ซ้ำไม่ว่าทั้งหมดหรือบางส่วนเด็ดขาด
- กุญแจสำคัญจะต้องถูกเก็บเป็นความลับโดยสมบูรณ์ระหว่างคู่สัญญา
ข้อกำหนดเหล่านี้ทำให้ OTP เป็นระบบการเข้ารหัสเพียงระบบเดียวที่ทราบกันว่าไม่สามารถถอดรหัสได้ทางคณิตศาสตร์ภายใต้หลักการของทฤษฎีสารสนเทศ[ 4 ]
รหัสลับแบบใช้ครั้งเดียวในรูปแบบดิจิทัลถูกนำมาใช้โดยหลายประเทศเพื่อ การสื่อสาร ทางการทูตและการทหาร ที่สำคัญ แต่ปัญหาเรื่องการแจกจ่ายกุญแจ ที่ปลอดภัย ทำให้รหัสเหล่านี้ไม่เหมาะสมสำหรับการใช้งานหลายอย่าง
แฟรงค์ มิลเลอร์อธิบายครั้งแรกในปี พ.ศ. 2425 [ 5 ] [ 6 ]และคิดค้นรหัสแบบใช้ครั้งเดียวขึ้นใหม่ในปี พ.ศ. 2460 เมื่อวันที่ 22 กรกฎาคม พ.ศ. 2462 สิทธิบัตรของสหรัฐอเมริกาหมายเลข 1,310,719 ออกให้แก่กิลเบิร์ต เวอร์แนมสำหรับ การดำเนินการ XORที่ใช้สำหรับการเข้ารหัสรหัสแบบใช้ครั้งเดียว[ 7 ]การใช้งานเพียงครั้งเดียวเกิดขึ้นในภายหลัง เมื่อโจเซฟ มอบอร์นตระหนักว่าหากเทปคีย์เป็นแบบสุ่มทั้งหมดการวิเคราะห์รหัสก็จะเป็นไปไม่ได้[ 8 ] เพื่อเพิ่มความปลอดภัย บางครั้งรหัสแบบใช้ครั้งเดียวจะถูกพิมพ์ลงบนแผ่นไนโตรเซลลูโลส ที่ติดไฟได้ง่าย เพื่อให้สามารถเผาทำลายได้ง่ายหลังการใช้งาน
ประวัติศาสตร์
แฟรงค์ มิลเลอร์เป็นคนแรกที่อธิบายระบบแพดแบบใช้ครั้งเดียวเพื่อรักษาความปลอดภัยในการส่งโทรเลขในปี พ.ศ. 2425 [ 6 ] [ 9 ]
ระบบแพดแบบใช้ครั้งเดียวถัดไปเป็นแบบไฟฟ้า ในปี พ.ศ. 2460 กิลเบิร์ต เวอร์แนม (แห่งบริษัท AT&T ) ได้คิดค้น[ 10 ]และต่อมาได้จดสิทธิบัตรในปี พ.ศ. 2462 ( สิทธิบัตรของสหรัฐอเมริกาหมายเลข 1,310,719 ) รหัสลับที่ใช้ เทคโนโลยี โทรพิมพ์อักขระแต่ละตัวในข้อความจะถูกรวมเข้ากับอักขระบนเทปกระดาษเจาะรู ด้วยไฟฟ้า โจเซฟ มอบอร์น (ซึ่งในขณะนั้นเป็นกัปตันในกองทัพสหรัฐฯและต่อมาเป็นหัวหน้าหน่วยสื่อสาร ) ตระหนักว่าลำดับอักขระบนเทปกุญแจสามารถสุ่มได้อย่างสมบูรณ์ และหากเป็นเช่นนั้น การวิเคราะห์รหัสลับก็จะยากขึ้น พวกเขาร่วมกันคิดค้นระบบเทปแบบใช้ครั้งเดียวระบบแรก[ 11 ]
การพัฒนาต่อมาคือระบบแผ่นกระดาษ นักการทูตใช้รหัสและรหัสลับมานานแล้วเพื่อรักษาความลับและลด ต้นทุน การส่งโทรเลขสำหรับรหัส คำและวลีจะถูกแปลงเป็นกลุ่มตัวเลข (โดยทั่วไป 4 หรือ 5 หลัก) โดยใช้สมุดรหัส คล้ายพจนานุกรม เพื่อเพิ่มความปลอดภัย ตัวเลขลับสามารถรวมเข้ากับ (โดยปกติคือการบวกแบบโมดูลาร์) แต่ละกลุ่มรหัสก่อนการส่ง โดยตัวเลขลับจะถูกเปลี่ยนเป็นระยะ (เรียกว่าการเข้ารหัสขั้นสูง ) ในช่วงต้นทศวรรษ 1920 นักถอดรหัสชาวเยอรมันสามคน (เวอร์เนอร์ คุนเซ่ รูดอล์ฟ ชอฟฟ์เลอร์ และเอริช แลงลอตซ์) ซึ่งมีส่วนร่วมในการถอดรหัสระบบดังกล่าว ตระหนักว่าระบบเหล่านี้ไม่สามารถถอดรหัสได้เลยหากใช้ตัวเลขบวกที่เลือกแบบสุ่มแยกต่างหากสำหรับแต่ละกลุ่มรหัส พวกเขาจึงพิมพ์แผ่นกระดาษสำเนาที่มีแถวของกลุ่มตัวเลขสุ่ม แต่ละหน้ามีหมายเลขประจำและแปดบรรทัด แต่ละบรรทัดมีตัวเลข 5 หลักหกตัว หน้าหนึ่งจะถูกใช้เป็นแผ่นงานเพื่อเข้ารหัสข้อความแล้วทำลายทิ้งหมายเลขประจำของหน้าจะถูกส่งไปพร้อมกับข้อความที่เข้ารหัสแล้ว ผู้รับจะย้อนขั้นตอนและทำลายสำเนาหน้านั้น กระทรวงการต่างประเทศของเยอรมนีได้นำระบบนี้มาใช้ในปี พ.ศ. 2466 [ 11 ]
แนวคิดที่แยกต่างหากคือการใช้แผ่นตัวอักษรแบบใช้ครั้งเดียวเพื่อเข้ารหัสข้อความธรรมดาโดยตรงดังตัวอย่างด้านล่างLeo Marksอธิบายถึงการคิดค้นระบบดังกล่าวให้กับหน่วยปฏิบัติการพิเศษ ของอังกฤษ ในช่วงสงครามโลกครั้งที่สองแม้ว่าในขณะนั้นเขาจะสงสัยว่าระบบนี้เป็นที่รู้จักอยู่แล้วในโลกของการเข้ารหัสลับที่มีการแบ่งส่วนอย่างเข้มงวด เช่น ที่Bletchley Park [ 12 ]
การค้นพบครั้งสุดท้ายเกิดขึ้นโดยนักทฤษฎีสารสนเทศClaude Shannonในช่วงทศวรรษ 1940 ซึ่งตระหนักและพิสูจน์ถึงความสำคัญทางทฤษฎีของระบบรหัสเวลาเดียว Shannon นำเสนอผลลัพธ์ของเขาในรายงานลับในปี 1945 และเผยแพร่อย่างเปิดเผยในปี 1949 [ 4 ]ก่อนหน้านี้ นักทฤษฎีสารสนเทศชาวโซเวียตVladimir Kotelnikovได้พิสูจน์ความปลอดภัยอย่างสมบูรณ์ของระบบรหัสเวลาเดียวโดยอิสระ ผลลัพธ์ของเขาถูกนำเสนอในปี 1941 ในรายงานที่ดูเหมือนจะยังคงเป็นความลับ[ 13 ]
นอกจากนี้ยังมีสิ่งที่คล้ายกับแผ่นรหัสเวลาเดียวแบบควอนตัม ซึ่งสามารถใช้แลกเปลี่ยนสถานะควอนตัม ผ่าน ช่องสัญญาณควอนตัมแบบทางเดียวด้วยความลับสมบูรณ์แบบ ซึ่งบางครั้งใช้ในการคำนวณควอนตัม สามารถแสดงให้เห็นได้ว่าต้องใช้ความลับร่วมกันอย่างน้อย 2n บิตแบบคลาสสิกเพื่อแลกเปลี่ยนสถานะควอนตัม n บิตผ่านช่องสัญญาณควอนตัมแบบทางเดียว (โดยเปรียบเทียบกับผลลัพธ์ที่ว่าต้องใช้กุญแจ n บิตเพื่อแลกเปลี่ยนข้อความ n บิตด้วยความลับสมบูรณ์แบบ) แผนการที่เสนอในปี 2000 บรรลุขีดจำกัดนี้ วิธีหนึ่งในการใช้งานแผ่นรหัสเวลาเดียวแบบควอนตัมนี้คือการแบ่งกุญแจ 2n บิตออกเป็น n คู่ของบิต ในการเข้ารหัสสถานะ สำหรับแต่ละคู่บิต i ในคีย์ จะต้องใช้เกต X กับคิวบิต i ของสถานะก็ต่อเมื่อบิตแรกของคู่เป็น 1 เท่านั้น และต้องใช้เกต Z กับคิวบิต i ของสถานะก็ต่อเมื่อบิตที่สองของคู่เป็น 1 เท่านั้น การถอดรหัสเกี่ยวข้องกับการใช้การแปลงนี้อีกครั้ง เนื่องจาก X และ Z เป็นส่วนกลับของกันและกัน ซึ่งสามารถแสดงให้เห็นว่าเป็นความลับอย่างสมบูรณ์ในการตั้งค่าควอนตัม[ 14 ]
ตัวอย่าง
สมมติว่าอลิซต้องการส่งข้อความhelloถึงบ็อบสมมติว่ามีกระดาษสองแผ่นที่บรรจุตัวอักษรเรียงลำดับแบบสุ่มเหมือนกัน ซึ่งถูกจัดเตรียมและแจกจ่ายให้ทั้งสองคนอย่างปลอดภัยแล้ว อลิซเลือกหน้ากระดาษที่ยังไม่ได้ใช้งานจากแผ่นกระดาษนั้น โดยปกติแล้ววิธีการทำเช่นนี้จะมีการตกลงกันไว้ล่วงหน้า เช่น "ใช้แผ่นที่ 12 ในวันที่ 1 พฤษภาคม" หรือ "ใช้แผ่นถัดไปที่ว่างสำหรับข้อความต่อไป"
เนื้อหาบนแผ่นกระดาษที่เลือกคือหัวใจสำคัญของข้อความนี้ ตัวอักษรแต่ละตัวจากแผ่นกระดาษจะถูกนำมารวมกับตัวอักษรตัวใดตัวหนึ่งในข้อความตามรูปแบบที่กำหนดไว้ล่วงหน้า (โดยทั่วไปแล้ว มักจะกำหนดค่าตัวเลขให้กับตัวอักษรแต่ละตัวเช่นaคือ 0 bคือ 1 เป็นต้น แต่ไม่จำเป็นต้องทำเช่นนั้นเสมอไป)
ในตัวอย่างนี้ เทคนิคคือการรวมกุญแจและข้อความโดยใช้การบวกแบบโมดูลาร์ซึ่งไม่ต่างจากรหัสลับวิเจเนียร์มากนัก โดยจะนำค่าตัวเลขของตัวอักษรในข้อความและกุญแจที่สอดคล้องกันมาบวกกันแบบโมดูลาร์ 26 ดังนั้น หากกุญแจเริ่มต้นด้วยXMCKLและข้อความคือhelloการเข้ารหัสจะทำได้ดังนี้:
ข้อความสวัสดี 7 (h) 4 (e) 11 (l) 11 (l) 14 (o) ข้อความ + 23 (X) 12 (M) 2 (C) 10 (K) 11 (L) คีย์ = 30 16 13 21 25 ข้อความ + คีย์ = 4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) (ข้อความ + คีย์) mod 26 EQNVZ → ข้อความเข้ารหัส
ถ้าจำนวนนั้นมากกว่า 25 เศษที่เหลือหลังจากลบด้วย 26 จะถูกคำนวณในรูปแบบเลขคณิตมอดูลาร์ ซึ่งหมายความว่า ถ้าการคำนวณ "เลย" Z ไป ลำดับจะเริ่มต้นใหม่ที่ A
ข้อความเข้ารหัสที่จะส่งให้บ็อบคือEQNVZบ็อบใช้หน้ากุญแจที่ตรงกันและกระบวนการเดียวกัน แต่ในทางกลับกัน เพื่อให้ได้ข้อความต้นฉบับในที่นี้ กุญแจจะถูกลบออกจากข้อความเข้ารหัส โดยใช้เลขคณิตแบบโมดูลาร์อีกครั้ง:
ข้อความเข้ารหัส EQNVZ 4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) ข้อความเข้ารหัส − 23 (X) 12 (M) 2 (C) 10 (K) 11 (L) คีย์ = −19 4 11 11 14 ข้อความเข้ารหัส – กุญแจ = 7 (h) 4 (e) 11 (l) 11 (l) 14 (o) ไซเฟอร์เท็กซ์ – คีย์ (mod 26) สวัสดี → ข้อความ
เช่นเดียวกับข้างต้น หากตัวเลขเป็นลบ จะนำ 26 มาบวกเพื่อให้ตัวเลขนั้นเป็นศูนย์หรือสูงกว่า
ดังนั้น บ็อบจึงกู้คืนข้อความธรรมดาของอลิซได้ ซึ่งก็คือข้อความนั้นhelloทั้งอลิซและบ็อบทำลายแผ่นกุญแจทันทีหลังจากใช้งานเสร็จ จึงป้องกันการนำกลับมาใช้ใหม่และการโจมตีรหัสลับKGBมักจะแจก แผ่นกุญแจแบบใช้ครั้งเดียวให้กับ สายลับโดยพิมพ์ลงบนกระดาษแฟลชแผ่นเล็กๆ ซึ่งเป็นกระดาษที่แปลงทางเคมีเป็นไนโตรเซลลูโลสซึ่งจะไหม้เกือบจะในทันทีและไม่ทิ้งเถ้าถ่าน[ 15 ]
รหัสลับแบบใช้ครั้งเดียว (One-Time Pad) แบบดั้งเดิมที่ใช้ในการจารกรรมนั้น ใช้กระดาษขนาดเล็กที่ซ่อนได้ง่าย ดินสอที่เหลาแหลม และการคำนวณในใจปัจจุบันวิธีการนี้สามารถนำมาใช้ในรูปแบบโปรแกรมซอฟต์แวร์ได้ โดยใช้ไฟล์ข้อมูลเป็นอินพุต (ข้อความต้นฉบับ) เอาต์พุต (ข้อความเข้ารหัส) และวัสดุสำคัญ (ลำดับสุ่มที่ต้องการ) การดำเนินการ Exclusive OR (XOR) มักใช้ในการรวมข้อความต้นฉบับและองค์ประกอบของวัสดุสำคัญ และมีประสิทธิภาพเป็นพิเศษในคอมพิวเตอร์ เนื่องจากโดยปกติแล้วเป็นคำสั่งเครื่องพื้นฐาน จึงทำงานได้เร็วมาก อย่างไรก็ตาม เป็นเรื่องยากที่จะรับประกันได้ว่าวัสดุสำคัญนั้นเป็นแบบสุ่มอย่างแท้จริง ถูกใช้เพียงครั้งเดียว ไม่เปิดเผยต่อฝ่ายตรงข้าม และถูกทำลายอย่างสมบูรณ์หลังการใช้งาน ส่วนประกอบเสริมของการใช้งานซอฟต์แวร์รหัสลับแบบใช้ครั้งเดียวเป็นความท้าทายอย่างแท้จริง ได้แก่ การจัดการ/การส่งข้อความต้นฉบับอย่างปลอดภัย วัสดุสำคัญที่เป็นแบบสุ่มอย่างแท้จริง และการใช้วัสดุสำคัญเพียงครั้งเดียวเท่านั้น
ความพยายามในการวิเคราะห์รหัสลับ
เพื่อยกตัวอย่างจากข้างต้น สมมติว่าอีฟดักฟังข้อความเข้ารหัสของอลิซได้: EQNVZถ้าอีฟลองใช้กุญแจทุกแบบที่เป็นไปได้ เธอจะพบว่ากุญแจXMCKLจะให้ข้อความต้นฉบับhelloแต่เธอก็จะพบว่ากุญแจTQURIจะให้ข้อความต้นฉบับlaterซึ่งเป็นข้อความที่ดูสมเหตุสมผลเช่นกัน:
4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) ข้อความเข้ารหัส − 19 (T) 16 (Q) 20 (U) 17 (R) 8 (I) คำตอบที่เป็นไปได้ = −15 0 −7 4 17 รหัสลับ-คีย์ = 11 (l) 0 (a) 19 (t) 4 (e) 17 (r) ciphertext-key (mod 26)
ในความเป็นจริง เป็นไปได้ที่จะ "ถอดรหัส" ข้อความใดๆ ก็ตามที่มีจำนวนอักขระเท่ากันจากข้อความที่เข้ารหัสได้ เพียงแค่ใช้กุญแจที่แตกต่างกัน และไม่มีข้อมูลใดๆ ในข้อความที่เข้ารหัสที่จะทำให้อีฟสามารถเลือกการอ่านข้อความที่เข้ารหัสได้หลากหลายรูปแบบ[ 16 ]
หากรหัสลับไม่ได้สุ่มอย่างแท้จริง ก็สามารถใช้การวิเคราะห์ทางสถิติเพื่อพิจารณาว่ารหัสลับใดในบรรดารหัสลับที่เป็นไปได้นั้นมีความสุ่มน้อยที่สุด และมีแนวโน้มที่จะเป็นรหัสที่ถูกต้องมากกว่า หากมีการนำรหัสลับมาใช้ซ้ำ จะสังเกตได้ว่ารหัสลับนั้นจะเป็นรหัสลับเพียงรหัสเดียวที่สร้างข้อความต้นฉบับที่มีความหมายจากข้อความเข้ารหัสทั้งสอง (โอกาสที่ รหัสลับ ที่ไม่ถูกต้อง แบบสุ่ม จะสร้างข้อความต้นฉบับที่มีความหมายสองข้อความนั้นมีน้อยมาก)
ความลับที่สมบูรณ์แบบ
รหัส แบบใช้ครั้งเดียว (One-time pad) นั้น “ มีความปลอดภัยตามทฤษฎีสารสนเทศ ” เนื่องจากข้อความที่เข้ารหัส (เช่นข้อความที่เข้ารหัส ) จะไม่ให้ข้อมูลใดๆ เกี่ยวกับข้อความต้นฉบับแก่นักวิเคราะห์รหัส (ยกเว้นความยาวสูงสุดที่เป็นไปได้[หมายเหตุ 1 ]ของข้อความ) นี่เป็นแนวคิดด้านความปลอดภัยที่แข็งแกร่งมาก ซึ่งได้รับการพัฒนาขึ้นครั้งแรกในช่วงสงครามโลกครั้งที่สองโดยClaude Shannonและได้รับการพิสูจน์ทางคณิตศาสตร์ว่าเป็นจริงสำหรับรหัสแบบใช้ครั้งเดียวโดย Shannon ในเวลาเดียวกัน ผลลัพธ์ของเขาได้รับการตีพิมพ์ในBell System Technical Journalในปี 1949 [ 17 ]หากใช้อย่างถูกต้อง รหัสแบบใช้ครั้งเดียวจะมีความปลอดภัยในแง่นี้แม้กระทั่งต่อศัตรูที่มีพลังการคำนวณไม่จำกัด
แชนนอนพิสูจน์โดยใช้ การพิจารณา ทางทฤษฎีสารสนเทศว่า รหัสวันไทม์แพดมีคุณสมบัติที่เขาเรียกว่าความลับสมบูรณ์แบบกล่าวคือ ข้อความเข้ารหัสCไม่ให้ข้อมูล เพิ่มเติมใดๆ เกี่ยวกับข้อความต้นฉบับ เลย [หมายเหตุ 2 ]ทั้งนี้เพราะ (โดยสัญชาตญาณ) เมื่อกำหนดกุญแจสุ่มแบบสม่ำเสมออย่างแท้จริงที่ใช้เพียงครั้งเดียว ข้อความเข้ารหัสสามารถแปลงเป็น ข้อความต้นฉบับ ใดๆที่มีความยาวเท่ากันได้ และทุกข้อความมีโอกาสเกิดขึ้นเท่ากัน ดังนั้น ความน่าจะ เป็นล่วงหน้าของข้อความต้นฉบับMจึงเท่ากับ ความน่าจะ เป็นภายหลังของข้อความต้นฉบับMเมื่อกำหนดข้อความเข้ารหัสที่สอดคล้องกัน
อัลกอริทึมการเข้ารหัสแบบสมมาตรทั่วไปใช้รูปแบบการแทนที่และการสลับตำแหน่ง ที่ซับซ้อน สำหรับอัลกอริทึมที่ดีที่สุดที่ใช้กันอยู่ในปัจจุบัน ยังไม่เป็นที่ทราบแน่ชัดว่าจะมีกระบวนการวิเคราะห์การเข้ารหัสใดที่สามารถย้อนกลับ (หรือแม้แต่ย้อนกลับบางส่วน ) การแปลงเหล่านี้ได้อย่างมีประสิทธิภาพโดยไม่ต้องรู้กุญแจที่ใช้ในการเข้ารหัสหรือไม่ อัลกอริทึมการเข้ารหัสแบบอสมมาตรขึ้นอยู่กับปัญหาทางคณิตศาสตร์ที่คิดว่ายากต่อการแก้ เช่นการแยกตัวประกอบจำนวนเต็มหรือลอการิทึมแบบไม่ต่อเนื่องอย่างไรก็ตาม ยังไม่มีหลักฐานว่าปัญหาเหล่านี้ยาก และความก้าวหน้าทางคณิตศาสตร์อาจทำให้ระบบที่มีอยู่มีความเสี่ยงต่อการโจมตี[หมายเหตุ 3 ]
ด้วยความลับที่สมบูรณ์แบบ ซึ่งแตกต่างจากการเข้ารหัสแบบสมมาตรทั่วไป รหัสแบบใช้ครั้งเดียว (One-Time Pad) จึงปลอดภัยแม้กระทั่งจากการโจมตีแบบเดาแบบสุ่ม (Brute-force attack) การลองใช้คีย์ทั้งหมดจะให้ผลลัพธ์เป็นข้อความต้นฉบับทั้งหมด ซึ่งมีโอกาสเท่ากันที่จะเป็นข้อความต้นฉบับที่แท้จริง แม้จะมีข้อความต้นฉบับที่ทราบเพียงบางส่วน การโจมตีแบบเดาแบบสุ่มก็ไม่สามารถทำได้ เนื่องจากผู้โจมตีไม่สามารถได้รับข้อมูลใดๆ เกี่ยวกับส่วนของคีย์ที่จำเป็นในการถอดรหัสส่วนที่เหลือของข้อความ ส่วนของข้อความต้นฉบับที่ทราบจะเปิดเผยเฉพาะส่วนของคีย์ที่สอดคล้องกับส่วนนั้นๆ และจะสอดคล้องกันแบบหนึ่งต่อหนึ่งอย่างเคร่งครัดบิตของคีย์แบบสุ่มอย่างสม่ำเสมอจะเป็นอิสระต่อกัน
การเข้ารหัสควอนตัมและการเข้ารหัสหลังควอนตัมเกี่ยวข้องกับการศึกษาผลกระทบของคอมพิวเตอร์ควอนตัมต่อความ ปลอดภัยของข้อมูลปีเตอร์ ชอร์ และคนอื่นๆ ได้แสดงให้เห็นว่าคอมพิวเตอร์ควอนตัมเร็วกว่ามากในการแก้ปัญหาบางอย่างที่ความปลอดภัยของอัลกอริทึมการเข้ารหัสแบบอสมมาตรแบบดั้งเดิมขึ้นอยู่กับ อัลกอริทึมการเข้ารหัสที่ขึ้นอยู่กับความยากของปัญหาเหล่านี้จะล้าสมัยไปหากใช้คอมพิวเตอร์ควอนตัมที่มีประสิทธิภาพมากพอ อย่างไรก็ตาม รหัสแบบใช้ครั้งเดียว (One-time pad) จะยังคงปลอดภัยอยู่ เนื่องจากความลับที่สมบูรณ์แบบไม่ได้ขึ้นอยู่กับสมมติฐานเกี่ยวกับทรัพยากรการคำนวณของผู้โจมตี
ปัญหา
แม้ว่าแชนนอนจะพิสูจน์ได้ว่าระบบรหัสผ่านแบบใช้ครั้งเดียวมีความปลอดภัย แต่ในทางปฏิบัติแล้วระบบนี้ก็มีข้อเสียร้ายแรงหลายประการ เนื่องจากต้องใช้เงื่อนไขดังต่อไปนี้:
- ต้องเป็นตัวเลขสุ่มอย่างแท้จริง ต่างจากตัวเลขสุ่มเทียมที่ใช้ค่าแบบเติมครั้งเดียว ซึ่งเป็นข้อกำหนดที่สำคัญมากการสร้างตัวเลขสุ่มในคอมพิวเตอร์มักเป็นเรื่องยาก และมักใช้เครื่องกำเนิดตัวเลขสุ่มเทียม เนื่องจากความเร็วและความเหมาะสมสำหรับการใช้งานส่วนใหญ่ แม้ว่าจะมี เครื่องกำเนิดตัวเลขสุ่มอย่างแท้จริงอยู่ แต่โดยทั่วไปแล้วจะช้ากว่าและมีความเฉพาะทางมากกว่า
- การสร้างและการแลกเปลี่ยนค่าแพดแบบใช้ครั้งเดียวอย่างปลอดภัย ซึ่งต้องมีความยาวอย่างน้อยเท่ากับข้อความ นี่เป็นสิ่งสำคัญเพราะความปลอดภัยของแพดแบบใช้ครั้งเดียวขึ้นอยู่กับความปลอดภัยของการแลกเปลี่ยนแพดแบบใช้ครั้งเดียว หากผู้โจมตีสามารถดักจับค่าแพดแบบใช้ครั้งเดียวได้ พวกเขาสามารถถอดรหัสข้อความที่ส่งโดยใช้แพดแบบใช้ครั้งเดียวได้[ 16 ]
- การจัดการอย่างระมัดระวังเพื่อให้แน่ใจว่าค่าของแผ่นเข้ารหัสแบบใช้ครั้งเดียวจะยังคงเป็นความลับและถูกกำจัดอย่างถูกต้อง ป้องกันการนำกลับมาใช้ใหม่ (ไม่ว่าบางส่วนหรือทั้งหมด) – จึงเรียกว่า "แบบใช้ครั้งเดียว" ปัญหาเกี่ยวกับการคงอยู่ของข้อมูลอาจทำให้การลบข้อมูลในสื่อคอมพิวเตอร์อย่างสมบูรณ์เป็นเรื่องยาก
แผ่นรหัสแบบใช้ครั้งเดียวแก้ปัญหาในทางปฏิบัติของการเข้ารหัสได้เพียงเล็กน้อย รหัสลับคุณภาพสูงมีให้ใช้กันอย่างแพร่หลาย และความปลอดภัยของรหัสลับเหล่านี้ในปัจจุบันยังไม่ถือเป็นปัญหาใหญ่[ 18 ]รหัสลับเหล่านี้มักจะใช้งานง่ายกว่าแผ่นรหัสแบบใช้ครั้งเดียว เนื่องจากปริมาณของวัสดุสำคัญที่ต้องสร้าง แจกจ่าย และจัดเก็บอย่างถูกต้องและปลอดภัยนั้นมีน้อยกว่ามาก[ 16 ]นอกจากนี้การเข้ารหัสแบบกุญแจสาธารณะยังช่วยแก้ปัญหาการแจกจ่ายกุญแจได้ อีกด้วย
ความสุ่มที่แท้จริง
การสร้างตัวเลขสุ่มคุณภาพสูงนั้นทำได้ยาก ฟังก์ชันการสร้างตัวเลขสุ่มใน ไลบรารี ภาษาโปรแกรม ส่วนใหญ่ ไม่เหมาะสำหรับการใช้งานด้านการเข้ารหัส แม้แต่ตัวสร้างตัวเลขสุ่มที่เหมาะสมสำหรับการใช้งานด้านการเข้ารหัสตามปกติ รวมถึง/dev/randomและตัวสร้างตัวเลขสุ่มฮาร์ดแวร์ จำนวนมาก ก็อาจใช้ฟังก์ชันการเข้ารหัสบางอย่างที่ยังไม่ได้รับการพิสูจน์ความปลอดภัย ตัวอย่างของเทคนิคในการสร้างความสุ่มบริสุทธิ์คือการวัดการปล่อยรังสี[ 19 ]
โดยเฉพาะอย่างยิ่ง การใช้งานเพียงครั้งเดียวนั้นจำเป็นอย่างยิ่ง ตัวอย่างเช่น ถ้าและแทนข้อความธรรมดาที่แตกต่างกันสองข้อความ และแต่ละข้อความถูกเข้ารหัสด้วยกุญแจร่วมกันข้อความที่เข้ารหัสแล้วจะเป็นดังนี้:
โดยที่XORหมายถึงการดำเนินการ XOR หากผู้โจมตีมีทั้งข้อความที่เข้ารหัสแล้วและXOR การนำXORระหว่าง XOR กับ XOR จะ ได้ผลลัพธ์เป็นXORของข้อความต้นฉบับทั้งสอง(เนื่องจากบิตสตรีมทุกตัวที่ XOR กับตัวเองจะได้ 0 ซึ่งเป็นเอกลักษณ์ของการดำเนินการ XOR) ดังนั้น XOR จึงเทียบเท่ากับการเข้ารหัสแบบใช้คีย์ต่อเนื่อง
หากข้อความธรรมดาทั้งสองเป็นภาษาธรรมชาติ (เช่น ภาษาอังกฤษหรือภาษารัสเซีย) แต่ละข้อความมีโอกาสสูงมากที่จะได้รับการกู้คืนโดย การวิเคราะห์การเข้ารหัส แบบฮิวริสติกโดยอาจมีความกำกวมอยู่บ้าง แน่นอนว่าข้อความที่ยาวกว่าจะสามารถถอดรหัสได้เฉพาะส่วนที่ทับซ้อนกับข้อความที่สั้นกว่าเท่านั้น บวกกับส่วนอื่นๆ อีกเล็กน้อยโดยการเติมคำหรือวลีให้สมบูรณ์ การใช้ประโยชน์จากช่องโหว่นี้ที่โด่งดังที่สุดเกิดขึ้นกับโครงการVenona [ 20 ]
การแจกจ่ายที่สำคัญ
เนื่องจากแพด เช่นเดียวกับความลับที่ใช้ร่วมกัน ทั้งหมด จะต้องถูกส่งต่อและเก็บรักษาให้ปลอดภัย และแพดจะต้องมีความยาวอย่างน้อยเท่ากับข้อความ จึงมักไม่มีประโยชน์ที่จะใช้แพดแบบใช้ครั้งเดียว เนื่องจากสามารถส่งข้อความธรรมดาแทนแพดได้ (เนื่องจากทั้งสองอย่างสามารถมีขนาดเท่ากันและต้องส่งอย่างปลอดภัย) [ 16 ]อย่างไรก็ตาม เมื่อแพดที่ยาวมากถูกส่งอย่างปลอดภัยแล้ว (เช่น ดิสก์คอมพิวเตอร์ที่เต็มไปด้วยข้อมูลแบบสุ่ม) ก็สามารถนำไปใช้กับข้อความในอนาคตได้มากมาย จนกว่าผลรวมของขนาดข้อความจะเท่ากับขนาดของแพด การแจกจ่ายคีย์ควอนตัมยังเสนอวิธีแก้ปัญหานี้ โดยสมมติว่าคอมพิวเตอร์ควอนตัม ทนต่อข้อผิดพลาดได้
การแจกจ่ายคีย์วันไทม์แพดที่ยาวมากนั้นไม่สะดวกและมักก่อให้เกิดความเสี่ยงด้านความปลอดภัยอย่างมาก[ 2 ]แพดนี้โดยพื้นฐานแล้วคือคีย์การเข้ารหัส แต่ต่างจากคีย์สำหรับการเข้ารหัสสมัยใหม่ แพดนี้ต้องยาวมากและยากเกินกว่าที่มนุษย์จะจำได้ สื่อจัดเก็บข้อมูลเช่นแฟลชไดรฟ์ , DVD-Rหรือเครื่องเล่นเสียงดิจิทัล ส่วนบุคคล สามารถใช้ในการพกพาวันไทม์แพดขนาดใหญ่จากที่หนึ่งไปยังอีกที่หนึ่งได้อย่างไม่น่าสงสัย แต่ความจำเป็นในการขนส่งแพดทางกายภาพเป็นภาระเมื่อเทียบกับโปรโตคอลการเจรจาคีย์ของระบบการเข้ารหัสแบบกุญแจสาธารณะสมัยใหม่ สื่อดังกล่าวไม่สามารถลบข้อมูลได้อย่างปลอดภัยด้วยวิธีการใดๆ นอกจากการทำลายทางกายภาพ (เช่น การเผา) DVD-R ขนาด 4.7 GB ที่เต็มไปด้วยข้อมูลวันไทม์แพด หากถูกฉีกเป็นอนุภาคขนาด 1 มม. ² (0.0016 ตารางนิ้ว) จะเหลือข้อมูลมากกว่า 4 เมกะบิตในแต่ละอนุภาค นอกจากนี้ ความเสี่ยงที่จะถูกโจมตีระหว่างการส่ง (เช่น การที่มิจฉาชีพขโมยคัดลอก และเปลี่ยนแผ่นรหัส) มีแนวโน้มที่จะสูงกว่าความเสี่ยงที่จะถูกโจมตีสำหรับรหัสลับอย่างAES มาก สุดท้ายแล้ว ความพยายามที่จำเป็นในการจัดการวัสดุของรหัสแบบใช้ครั้งเดียว จะไม่สามารถ ปรับขนาดได้อย่างดีสำหรับเครือข่ายขนาดใหญ่ที่มีผู้สื่อสารจำนวนมาก จำนวนแผ่นรหัสที่ต้องการจะเพิ่มขึ้นเป็นกำลังสองของจำนวนผู้ใช้ที่แลกเปลี่ยนข้อความกันอย่างอิสระ สำหรับการสื่อสารระหว่างบุคคลเพียงสองคน หรือ โครงสร้าง เครือข่ายแบบดาวปัญหานี้จะมีน้อยกว่า
วัสดุสำคัญจะต้องถูกกำจัดอย่างปลอดภัยหลังจากใช้งาน เพื่อให้แน่ใจว่าวัสดุสำคัญจะไม่ถูกนำกลับมาใช้ใหม่ และเพื่อปกป้องข้อความที่ส่ง[ 2 ]เนื่องจากวัสดุสำคัญจะต้องถูกส่งจากจุดปลายหนึ่งไปยังอีกจุดปลายหนึ่ง และคงอยู่จนกว่าจะมีการส่งหรือรับข้อความ จึงอาจมีความเสี่ยงต่อการกู้คืนทางนิติวิทยาศาสตร์มากกว่าข้อความธรรมดาชั่วคราวที่ได้รับการปกป้อง (เนื่องจากอาจมีข้อมูลหลงเหลืออยู่)
การตรวจสอบสิทธิ์
ตามการใช้งานแบบดั้งเดิม รหัสแบบใช้ครั้งเดียว (one-time pad) ไม่มีการตรวจสอบความถูกต้องของข้อความซึ่งการขาดการตรวจสอบความถูกต้องนี้อาจก่อให้เกิดภัยคุกคามด้านความปลอดภัยในระบบจริง ตัวอย่างเช่น ผู้โจมตีที่รู้ว่าข้อความมีเนื้อหาว่า "meet jane and me tomorrow at three thirty pm" สามารถอนุมานรหัสที่สอดคล้องกันของรหัสแบบใช้ครั้งเดียวได้โดยตรงจากองค์ประกอบที่ทราบสองส่วน (ข้อความที่เข้ารหัสและข้อความต้นฉบับที่ทราบ) จากนั้นผู้โจมตีสามารถแทนที่ข้อความนั้นด้วยข้อความอื่นใดที่มีความยาวเท่ากัน เช่น "three thirty meeting is cancelled, stay home" ความรู้ของผู้โจมตีเกี่ยวกับรหัสแบบใช้ครั้งเดียวถูกจำกัดไว้ที่ความยาวไบต์นี้ ซึ่งต้องคงไว้เพื่อให้เนื้อหาอื่นใดของข้อความยังคงถูกต้อง นี่แตกต่างจากความยืดหยุ่น[ 21 ]ซึ่งไม่จำเป็นต้องทราบข้อความต้นฉบับ หากไม่ทราบข้อความ ผู้โจมตียังสามารถเปลี่ยนบิตในข้อความที่ส่งด้วยรหัสแบบใช้ครั้งเดียวได้โดยที่ผู้รับไม่สามารถตรวจจับได้ เนื่องจากความคล้ายคลึงกัน การโจมตีรหัสแบบใช้ครั้งเดียวจึงคล้ายกับการโจมตีการเข้ารหัสแบบสตรีม[ 22 ]
เทคนิคมาตรฐานในการป้องกันการโจมตีประเภทนี้ เช่น การใช้รหัสยืนยันข้อความสามารถใช้ร่วมกับระบบ One-Time Pad (OTP) เพื่อป้องกันการโจมตีดังกล่าวได้ เช่นเดียวกับวิธีการแบบดั้งเดิม เช่น Variable Length PaddingและRussian Copulationแต่เทคนิคเหล่านี้ล้วนขาดความปลอดภัยที่สมบูรณ์แบบเหมือนกับ OTP เอง การแฮช แบบ Universal Hashingช่วยให้สามารถตรวจสอบความถูกต้องของข้อความได้ถึงระดับความปลอดภัยที่กำหนด (เช่น สำหรับp > 0 ใดๆ ค่าแฮชที่มากพอจะทำให้โอกาสที่ผู้โจมตีที่มีความสามารถในการคำนวณไม่จำกัดจะปลอมแปลงได้สำเร็จนั้นน้อยกว่าp ) แต่เทคนิคนี้ใช้ข้อมูลสุ่มเพิ่มเติมจาก Pad และเทคนิคบางอย่างก็ทำให้ไม่สามารถใช้งานระบบได้โดยไม่ต้องใช้คอมพิวเตอร์
ข้อผิดพลาดในการใช้งานทั่วไป
เนื่องจากความเรียบง่ายในการนำไปใช้งาน และเนื่องจากคำมั่นสัญญาเรื่องความลับที่สมบูรณ์แบบ รหัสแบบใช้ครั้งเดียว (one-time-pad) จึงได้รับความนิยมอย่างสูงในหมู่นักเรียนที่เรียนรู้เกี่ยวกับวิทยาการเข้ารหัสลับ โดยเฉพาะอย่างยิ่งเพราะมักเป็นอัลกอริธึมแรกที่ถูกนำเสนอและนำไปใช้งานในระหว่างหลักสูตร การนำไปใช้งาน "ครั้งแรก" ดังกล่าว มักจะละเมิดข้อกำหนดด้านความปลอดภัยทางทฤษฎีสารสนเทศในหนึ่งหรือหลายด้าน:
- รหัสลับแบบใช้ครั้งเดียว (one-time pad) ถูกสร้างขึ้นโดยใช้อัลกอริทึมบางอย่าง ซึ่งขยายค่าเล็กๆ หนึ่งค่าหรือมากกว่านั้นให้กลายเป็น "รหัสลับแบบใช้ครั้งเดียว" ที่ยาวขึ้น หลักการนี้ใช้ได้กับอัลกอริทึมทุกประเภท ตั้งแต่การคำนวณทางคณิตศาสตร์พื้นฐานที่ไม่ปลอดภัย เช่น การหาค่ารากที่สองของเลขฐานสิบ ไปจนถึงตัวสร้างเลขสุ่มเทียมที่ซับซ้อนและปลอดภัยทางด้านการเข้ารหัส (CSPRNGs) การใช้งานเหล่านี้ไม่มีอันไหนเป็นรหัสลับแบบใช้ครั้งเดียว แต่เป็นรหัสแบบสตรีมตามนิยาม รหัสลับแบบใช้ครั้งเดียวทั้งหมดจะต้องถูกสร้างขึ้นโดยกระบวนการที่ไม่ใช่อัลกอริทึม เช่น โดยตัวสร้างเลขสุ่มฮาร์ดแวร์
- การแลกเปลี่ยนรหัสแบบใช้ครั้งเดียว (one-time pad) จะใช้วิธีการที่ไม่ปลอดภัยตามทฤษฎีสารสนเทศหากรหัสแบบใช้ครั้งเดียวถูกเข้ารหัสด้วยอัลกอริทึมที่ไม่ปลอดภัยตามทฤษฎีสารสนเทศสำหรับการส่งมอบ ความปลอดภัยของระบบการเข้ารหัสจะมีความปลอดภัยเท่ากับกลไกการส่งมอบที่ไม่ปลอดภัยเท่านั้น กลไกการส่งมอบรหัสแบบใช้ครั้งเดียวที่มีข้อบกพร่องที่พบได้ทั่วไปคือระบบการเข้ารหัสแบบไฮบริด มาตรฐาน ที่อาศัยการเข้ารหัสแบบสมมาตรสำหรับการเข้ารหัสรหัส และการเข้ารหัสแบบอสมมาตรสำหรับการส่งมอบกุญแจแบบสมมาตร วิธีการที่ปลอดภัยทั่วไปสำหรับการส่งมอบรหัสแบบใช้ครั้งเดียว ได้แก่การแจกจ่ายกุญแจควอนตัมบริการ เครือ ข่ายลับหรือ บริการ จัดส่งหรือ การส่งมอบแบบซ่อนเร้น ( dead drop )
- ระบบนี้ไม่มีกลไกการตรวจสอบสิทธิ์ที่ปลอดภัยอย่างไม่มีเงื่อนไข เช่นMAC แบบใช้ครั้งเดียว
- แผ่นรองถูกนำกลับมาใช้ใหม่ ( เช่น นำ ไปใช้ประโยชน์ในระหว่าง โครงการ Venona ) [ 23 ]
- แผ่นรองไม่เสียหายทันทีหลังการใช้งาน
การใช้งาน
ความสามารถในการใช้งาน
แม้จะมีปัญหาอยู่บ้าง แต่รหัสแบบใช้ครั้งเดียว (one-time pad) ก็ยังคงมีประโยชน์ในทางปฏิบัติอยู่บ้าง ในสถานการณ์การจารกรรมสมมติบางอย่าง รหัสแบบใช้ครั้งเดียวอาจมีประโยชน์ เพราะการเข้ารหัสและการถอดรหัสสามารถคำนวณได้ด้วยมือโดยใช้เพียงดินสอและกระดาษเท่านั้น รหัสลับคุณภาพสูงอื่นๆ เกือบทั้งหมดไม่สามารถใช้งานได้จริงหากไม่มีคอมพิวเตอร์ อย่างไรก็ตาม ในโลกปัจจุบัน คอมพิวเตอร์ (เช่น คอมพิวเตอร์ที่ฝังอยู่ในโทรศัพท์มือถือ ) มีอยู่ทั่วไปจนการครอบครองคอมพิวเตอร์ที่เหมาะสมสำหรับการเข้ารหัสแบบดั้งเดิม (ตัวอย่างเช่น โทรศัพท์ที่สามารถใช้งานซอฟต์แวร์เข้ารหัสลับที่ซ่อนอยู่ได้) มักจะไม่ก่อให้เกิดความสงสัย
- One-Time-Pad คือระบบการเข้ารหัสที่เหมาะสมที่สุดซึ่งมีความลับสมบูรณ์แบบในทางทฤษฎี[ 17 ]
- รหัสแบบใช้ครั้งเดียว (One-Time Pad) เป็นหนึ่งในวิธีการเข้ารหัสที่ใช้งานได้จริงมากที่สุด โดยที่ฝ่ายใดฝ่ายหนึ่งหรือทั้งสองฝ่ายต้องดำเนินการทั้งหมดด้วยตนเอง โดยไม่ต้องใช้คอมพิวเตอร์ นี่ทำให้รหัสนี้มีความสำคัญในยุคก่อนคอมพิวเตอร์ และอาจยังคงมีประโยชน์ในสถานการณ์ที่การครอบครองคอมพิวเตอร์เป็นสิ่งผิดกฎหมายหรือเป็นการกระทำที่ผิดกฎหมาย หรือในกรณีที่ไม่มีคอมพิวเตอร์ที่น่าเชื่อถือให้ใช้งาน
- แผ่นบันทึกแบบใช้ครั้งเดียวมีประโยชน์ในสถานการณ์ที่คู่กรณีสองฝ่ายในสภาพแวดล้อมที่ปลอดภัยต้องสามารถแยกจากกันและสื่อสารกันจากสภาพแวดล้อมที่ปลอดภัยสองแห่งที่แยกจากกันได้อย่างเป็นความลับอย่างสมบูรณ์
- สามารถใช้แพดแบบใช้ครั้งเดียวในการเข้ารหัสขั้นสูงได้[ 24 ]
- อัลกอริทึมที่เกี่ยวข้องกับ การแจกจ่ายคีย์ควอนตัมโดยทั่วไปคือแพดแบบใช้ครั้งเดียว[ 25 ]
- รหัสแบบใช้ครั้งเดียวจะถูกจำลองโดยรหัสสตรีม[ 22 ]
- สถานีตัวเลขมักจะส่งข้อความที่เข้ารหัสด้วยรหัสแบบใช้ครั้งเดียว[ 2 ]
การเข้ารหัสควอนตัมและการเข้ารหัสหลังควอนตัม
การใช้งาน One-Time Pad ในการเข้ารหัสควอนตัม ที่พบได้ทั่วไป คือการใช้ร่วมกับการแจกจ่ายกุญแจควอนตัม (Quantum Key Distributionหรือ QKD) โดยทั่วไปแล้ว QKD จะใช้ร่วมกับ One-Time Pad เพราะเป็นวิธีการแจกจ่ายกุญแจลับร่วมกันที่มีความยาวมากได้อย่างปลอดภัยและมีประสิทธิภาพ (โดยสมมติว่ามี ฮาร์ดแวร์ เครือข่ายควอนตัม ที่ใช้งานได้จริง ) อัลกอริทึม QKD ใช้คุณสมบัติของระบบกลศาสตร์ควอนตัมเพื่อให้สองฝ่ายตกลงกันในสตริงสุ่มแบบสม่ำเสมอที่ใช้ร่วมกันได้ อัลกอริทึมสำหรับ QKD เช่นBB84ยังสามารถตรวจสอบได้ว่าฝ่ายตรงข้ามพยายามดักจับข้อมูลกุญแจหรือไม่ และช่วยให้สามารถตกลงกันในกุญแจลับร่วมกันได้โดยมีการแลกเปลี่ยนข้อความค่อนข้างน้อยและมีค่าใช้จ่ายในการคำนวณค่อนข้างต่ำ ในระดับสูง แผนการเหล่านี้ทำงานโดยใช้ประโยชน์จากวิธีการทำลายล้างของการวัดสถานะควอนตัมเพื่อแลกเปลี่ยนความลับและตรวจจับการดัดแปลง ในเอกสาร BB84 ฉบับดั้งเดิม ได้พิสูจน์แล้วว่า One-Time Pad ที่แจกจ่ายกุญแจผ่าน QKD เป็นวิธีการเข้ารหัสที่ปลอดภัยอย่างสมบูรณ์แบบ[ 25 ]อย่างไรก็ตาม ผลลัพธ์นี้ขึ้นอยู่กับการนำแผนการ QKD ไปใช้อย่างถูกต้องในทางปฏิบัติ การโจมตีระบบ QKD ในโลกแห่งความเป็นจริงมีอยู่จริง ตัวอย่างเช่น ระบบจำนวนมากไม่ได้ส่งโฟตอนเดี่ยว (หรือวัตถุอื่น ๆ ในสถานะควอนตัมที่ต้องการ) ต่อบิตของคีย์เนื่องจากข้อจำกัดในทางปฏิบัติ และผู้โจมตีสามารถดักจับและวัดโฟตอนบางส่วนที่เกี่ยวข้องกับข้อความ ทำให้ได้รับข้อมูลเกี่ยวกับคีย์ (เช่น การรั่วไหลของข้อมูลเกี่ยวกับแพด) ในขณะที่ส่งโฟตอนที่ไม่ได้วัดซึ่งสอดคล้องกับบิตเดียวกันของคีย์ไปด้วย[ 26 ]การรวม QKD กับแพดแบบใช้ครั้งเดียวสามารถลดข้อกำหนดสำหรับการใช้คีย์ซ้ำได้ ในปี 1982 BennettและBrassardแสดงให้เห็นว่าหากโปรโตคอล QKD ไม่ตรวจพบว่าฝ่ายตรงข้ามกำลังพยายามดักจับคีย์ที่แลกเปลี่ยน คีย์นั้นก็สามารถใช้ซ้ำได้อย่างปลอดภัยในขณะที่ยังคงรักษาความลับได้อย่างสมบูรณ์[ 27 ]
รหัสวันไทม์แพด (One-Time Pad) เป็นตัวอย่างหนึ่งของวิทยาการเข้ารหัสลับหลังควอนตัม เนื่องจากความลับที่สมบูรณ์แบบเป็นนิยามของความปลอดภัยที่ไม่ขึ้นอยู่กับทรัพยากรการคำนวณของฝ่ายตรงข้าม ดังนั้น ฝ่ายตรงข้ามที่มีคอมพิวเตอร์ควอนตัมก็ยังไม่สามารถได้ข้อมูลเพิ่มเติมเกี่ยวกับข้อความที่เข้ารหัสด้วยรหัสวันไทม์แพดได้มากกว่าฝ่ายตรงข้ามที่มีเพียงคอมพิวเตอร์แบบคลาสสิก
การใช้งานทางประวัติศาสตร์
แผ่นรหัสแบบใช้ครั้งเดียวถูกนำมาใช้ในสถานการณ์พิเศษตั้งแต่ต้นทศวรรษ 1900 ในปี 1923 หน่วยงานทางการทูตของเยอรมนีได้นำมาใช้ในการสื่อสารทางการทูต[ 28 ] หน่วยงานทางการทูตของสาธารณรัฐ ไวมาร์เริ่มใช้วิธีนี้ประมาณปี 1920 การ ที่ อังกฤษสามารถถอดรหัสลับของโซเวียต ได้ไม่ดีนัก ทำให้ข้อความถูกเปิดเผยต่อสาธารณะด้วยเหตุผลทางการเมืองในสองกรณีในช่วงทศวรรษ 1920 ( กรณี ARCOS ) ดูเหมือนจะทำให้สหภาพโซเวียตนำแผ่นรหัสแบบใช้ครั้งเดียวมาใช้ในบางวัตถุประสงค์ประมาณปี 1930 สายลับ KGBก็เป็นที่ทราบกันดีว่าใช้แผ่นรหัสแบบใช้ครั้งเดียวที่ทำจากดินสอและกระดาษเมื่อไม่นานมานี้ ตัวอย่างเช่น พันเอกรูดอล์ฟ อาเบลซึ่งถูกจับกุมและตัดสินลงโทษในนครนิวยอร์กในช่วงทศวรรษ 1950 และ 'โครเกอร์' (เช่นมอร์ริสและโลนา โคเฮน ) ซึ่งถูกจับกุมและตัดสินลงโทษในข้อหาจารกรรมในสหราชอาณาจักรในช่วงต้นทศวรรษ 1960 ทั้งคู่ถูกพบว่ามีแผ่นรหัสแบบใช้ครั้งเดียวอยู่ในครอบครอง
หลายประเทศใช้ระบบแพดแบบใช้ครั้งเดียวสำหรับการรับส่งข้อมูลที่ละเอียดอ่อนLeo Marksรายงานว่าหน่วยปฏิบัติการพิเศษ ของอังกฤษ ใช้แพดแบบใช้ครั้งเดียวในช่วงสงครามโลกครั้งที่สองเพื่อเข้ารหัสการรับส่งข้อมูลระหว่างสำนักงานต่างๆ แพดแบบใช้ครั้งเดียวสำหรับใช้กับสายลับในต่างประเทศถูกนำมาใช้ในช่วงปลายสงคราม[ 12 ]เครื่องเข้ารหัสเทปแบบใช้ครั้งเดียวของอังกฤษบางเครื่อง ได้แก่RockexและNoreen เครื่อง Stasi Sprach Machine ของเยอรมนีก็สามารถใช้เทปแบบใช้ครั้งเดียวได้เช่นกัน ซึ่งเยอรมนีตะวันออก รัสเซีย และแม้แต่คิวบาใช้ในการส่งข้อความที่เข้ารหัสไปยังสายลับของตน[ 29 ]
ระบบเข้ารหัสเสียงSIGSALY ในช่วง สงครามโลกครั้งที่สองก็เป็นระบบแบบใช้ครั้งเดียวเช่นกัน โดยจะเพิ่มสัญญาณรบกวนให้กับสัญญาณที่ปลายด้านหนึ่งและลบออกที่ปลายอีกด้านหนึ่ง สัญญาณรบกวนจะถูกกระจายไปยังปลายช่องสัญญาณในรูปแบบของแผ่นเสียงเชลแล็กขนาดใหญ่ที่ผลิตเป็นคู่ที่ไม่ซ้ำกัน มีปัญหาทั้งเรื่องการซิงโครไนซ์เริ่มต้นและการเลื่อนเฟสในระยะยาวที่เกิดขึ้นและต้องได้รับการแก้ไขก่อนที่ระบบจะสามารถใช้งานได้[ 30 ]
สายด่วนระหว่างมอสโกและวอชิงตัน ดี.ซี.ซึ่งจัดตั้งขึ้นในปี พ.ศ. 2506 หลังวิกฤตการณ์ขีปนาวุธคิวบา ในปี พ.ศ. 2505 ใช้เครื่องพิมพ์โทรเลขที่ได้รับการปกป้องโดยระบบเทปแบบใช้ครั้งเดียวเชิงพาณิชย์ แต่ละประเทศเตรียมเทปคีย์ที่ใช้ในการเข้ารหัสข้อความของตนและส่งผ่านสถานทูตของตนในอีกประเทศหนึ่ง ข้อได้เปรียบที่โดดเด่นของ OTP ในกรณีนี้คือไม่มีประเทศใดต้องเปิดเผยวิธีการเข้ารหัสที่ละเอียดอ่อนกว่านี้ให้แก่กันและกัน[ 31 ]
หน่วยรบพิเศษของกองทัพบกสหรัฐฯ ใช้แผ่นเวลาเดียวในเวียดนาม โดยใช้รหัสมอร์สร่วมกับแผ่นเวลาเดียวและการส่งสัญญาณวิทยุคลื่นต่อเนื่อง (คลื่นพาหะสำหรับรหัสมอร์ส) ทำให้สามารถสื่อสารได้อย่างเป็นความลับและเชื่อถือได้[ 32 ]
ตั้งแต่ปี พ.ศ. 2531 พรรคแอฟริกันเนชั่นแนลคองเกรส (ANC) ได้ใช้แผ่นดิสก์แบบใช้ครั้งเดียวเป็นส่วนหนึ่งของ ระบบ การสื่อสารที่ปลอดภัยระหว่างผู้นำ ANC นอกประเทศแอฟริกาใต้และผู้ปฏิบัติงานในประเทศ ซึ่งเป็นส่วนหนึ่งของปฏิบัติการวูลา [ 33 ] ซึ่งเป็นความพยายามที่ประสบความสำเร็จในการสร้างเครือข่ายต่อต้านภายในแอฟริกาใต้ ตัวเลขสุ่มบนแผ่นดิสก์จะถูกลบหลังจากใช้งาน พนักงานต้อนรับบนเครื่องบินชาวเบลเยียมทำหน้าที่เป็นผู้ส่งสารเพื่อนำแผ่นดิสก์เข้ามา จำเป็นต้องมีการจัดหาแผ่นดิสก์ใหม่เป็นประจำเนื่องจากมีการใช้งานค่อนข้างเร็ว ปัญหาหนึ่งของระบบนี้คือไม่สามารถใช้สำหรับการจัดเก็บข้อมูลที่ปลอดภัยได้ ต่อมา วูลาได้เพิ่มการเข้ารหัสแบบสตรีมโดยใช้รหัสหนังสือเพื่อแก้ปัญหานี้[ 34 ]
แนวคิดที่เกี่ยวข้องคือรหัสใช้ครั้งเดียว — สัญญาณที่ใช้เพียงครั้งเดียว เช่น "อัลฟา" สำหรับ "ภารกิจสำเร็จ" "บราโว" สำหรับ "ภารกิจล้มเหลว" หรือแม้แต่ "ทอร์ช" สำหรับ " การรุกรานแอฟริกาเหนือของฝรั่งเศสโดยฝ่ายสัมพันธมิตร " [ 35 ]ไม่สามารถ "ถอดรหัส" ได้ในความหมายที่สมเหตุสมผล การทำความเข้าใจข้อความจะต้องใช้ข้อมูลเพิ่มเติม ซึ่งมักจะเป็น 'ความลึก' ของการทำซ้ำ หรือการวิเคราะห์การจราจร บางอย่าง อย่างไรก็ตาม กลยุทธ์ดังกล่าว (แม้ว่าจะถูกใช้โดยผู้ปฏิบัติงานจริงและ โค้ช เบสบอล บ่อยครั้ง ) [ 36 ]ไม่ใช่แผ่นรหัสใช้ครั้งเดียวในความหมายที่สำคัญใดๆ
เอ็นเอสเอ
อย่างน้อยจนถึงช่วงทศวรรษ 1970 สำนักงานความมั่นคงแห่งชาติ ของสหรัฐอเมริกา (NSA) ได้ผลิตแผ่นรหัสแบบใช้ครั้งเดียวด้วยมือหลายประเภท ทั้งแบบใช้งานทั่วไปและแบบเฉพาะทาง โดยมีการผลิตแผ่นรหัสแบบใช้ครั้งเดียวจำนวน 86,000 แผ่นในปีงบประมาณ 1972 แผ่นรหัสแบบเฉพาะทางนั้นผลิตขึ้นสำหรับสิ่งที่ NSA เรียกว่าระบบ "แบบฟอร์ม" ซึ่ง "โครงสร้างพื้นฐาน รูปแบบ หรือรูปแบบของข้อความทุกข้อความนั้นเหมือนกันหรือเกือบเหมือนกัน ข้อมูลประเภทเดียวกัน ข้อความต่อข้อความ จะถูกนำเสนอในลำดับเดียวกัน และมีเพียงค่าเฉพาะ เช่น ตัวเลข เท่านั้นที่เปลี่ยนแปลงไปในแต่ละข้อความ" ตัวอย่างเช่น ข้อความเกี่ยวกับการปล่อยนิวเคลียร์และรายงานการค้นหาทิศทางวิทยุ (COMUS) [ 37 ] : หน้า 16–18
แผ่นเข้ารหัสอเนกประสงค์ผลิตขึ้นในหลายรูปแบบ ได้แก่ รายการตัวอักษรแบบสุ่มอย่างง่าย (DIANA) หรือเฉพาะตัวเลข (CALYPSO) แผ่นขนาดเล็กสำหรับสายลับ (MICKEY MOUSE) และแผ่นที่ออกแบบมาเพื่อการเข้ารหัสข้อความสั้นๆ อย่างรวดเร็ว โดยแลกกับความหนาแน่นที่ต่ำกว่า ตัวอย่างเช่น ORION มีตัวอักษรข้อความธรรมดา 50 แถวอยู่ด้านหนึ่ง และตัวอักษรเข้ารหัสแบบสุ่มที่สอดคล้องกันอยู่ด้านตรงข้าม โดยการวางแผ่น ORION ไว้บนกระดาษคาร์บอนโดยหงายด้านคาร์บอนขึ้น ก็สามารถวงกลมตัวอักษรหนึ่งตัวในแต่ละแถวด้านหนึ่ง และตัวอักษรที่สอดคล้องกันอีกด้านหนึ่งก็จะถูกวงกลมโดยกระดาษคาร์บอน ดังนั้นแผ่น ORION หนึ่งแผ่นจึงสามารถเข้ารหัสหรือถอดรหัสข้อความได้ยาวถึง 50 ตัวอักษรอย่างรวดเร็ว การผลิตแผ่น ORION จำเป็นต้องพิมพ์ทั้งสองด้านให้ตรงกันอย่างแม่นยำ ซึ่งเป็นกระบวนการที่ยาก ดังนั้น NSA จึงเปลี่ยนไปใช้รูปแบบแผ่นเข้ารหัสอื่น คือ MEDEA ซึ่งมีตัวอักษรคู่และตัวอักษรแบบสุ่ม 25 แถว ( ดูCommons:Category:NSA one-time padsสำหรับภาพประกอบ)
นอกจากนี้ NSA ยังสร้างระบบอัตโนมัติสำหรับ "สำนักงานใหญ่ส่วนกลางของหน่วย CIA และหน่วยรบพิเศษ เพื่อให้พวกเขาสามารถประมวลผลข้อความแพดแบบใช้ครั้งเดียวจำนวนมากที่แยกจากกันไปยังและจากผู้ถือแพดแต่ละรายในภาคสนามได้อย่างมีประสิทธิภาพ" [ 37 ] : หน้า 21–26
ในช่วงสงครามโลกครั้งที่สองและต่อเนื่องมาจนถึงทศวรรษ 1950 สหรัฐอเมริกาได้ใช้ระบบเทปแบบใช้ครั้งเดียวอย่างแพร่หลาย นอกเหนือจากการรักษาความลับแล้ว วงจรที่ได้รับการรักษาความปลอดภัยด้วยเทปแบบใช้ครั้งเดียวจะทำงานอย่างต่อเนื่องแม้ว่าจะไม่มีการรับส่งข้อมูลก็ตาม จึงช่วยป้องกันการวิเคราะห์ข้อมูลได้ ในปี 1955 NSA ผลิตเทปแบบใช้ครั้งเดียวได้ประมาณ 1,660,000 ม้วน แต่ละม้วนมีเส้นผ่านศูนย์กลาง 8 นิ้ว บรรจุอักขระได้ 100,000 ตัว ใช้งานได้นาน 166 นาที และมีต้นทุนการผลิต 4.55 ดอลลาร์สหรัฐ ภายในปี 1972 มีการผลิตเทปแบบใช้ครั้งเดียวเพียง 55,000 ม้วน เนื่องจากเทปแบบใช้ครั้งเดียวถูกแทนที่ด้วยเครื่องโรเตอร์เช่น SIGTOT และต่อมาด้วยอุปกรณ์อิเล็กทรอนิกส์ที่ใช้ รีจิส เตอร์แบบเลื่อน[ 37 ] : หน้า 39–44 NSA อธิบายว่าระบบเทปแบบใช้ครั้งเดียว เช่น5-UCOและ SIGTOT ถูกใช้สำหรับการรับส่งข้อมูลข่าวกรองจนกระทั่งมีการนำระบบเข้ารหัสอิเล็กทรอนิกส์KW-26 มาใช้ ในปี พ.ศ. 2490 [ 38 ]
ช่องโหว่
แม้ว่ารหัสแบบใช้ครั้งเดียวจะให้ความลับที่สมบูรณ์แบบหากสร้างและใช้งานอย่างถูกต้อง แต่ความผิดพลาดเล็กน้อยก็อาจนำไปสู่การถอดรหัสได้สำเร็จ:
- ในปี พ.ศ. 2487–2488 หน่วยข่าวกรองสัญญาณของกองทัพบกสหรัฐฯสามารถไขระบบแพดแบบใช้ครั้งเดียวที่กระทรวงการต่างประเทศของเยอรมนีใช้สำหรับการสื่อสารระดับสูง ซึ่งมีรหัสว่า GEE [ 39 ] GEE ไม่ปลอดภัยเนื่องจากแพดไม่ได้สุ่มอย่างเพียงพอ เครื่องที่ใช้สร้างแพดนั้นผลิตผลลัพธ์ที่คาดเดาได้
- ในปี ค.ศ. 1945 สหรัฐอเมริกาค้นพบว่า ข้อความระหว่าง แคนเบอร์ราและมอสโกถูกเข้ารหัสโดยใช้สมุดรหัสก่อน แล้วจึงใช้รหัสแบบใช้ครั้งเดียว (one-time pad) อย่างไรก็ตาม รหัสแบบใช้ครั้งเดียวที่ใช้นั้นเป็นรหัสเดียวกับที่มอสโกใช้สำหรับ ข้อความระหว่าง วอชิงตัน ดี.ซี.และมอสโก ประกอบกับข้อเท็จจริงที่ว่าข้อความบางส่วนระหว่างแคนเบอร์ราและมอสโกมีเอกสารของรัฐบาลอังกฤษที่ทราบกันดีอยู่ด้วย ทำให้สามารถถอดรหัสข้อความที่เข้ารหัสบางส่วนได้
- หน่วยงานจารกรรม ของโซเวียตใช้รหัสแบบใช้ครั้งเดียว (One-time pad) สำหรับการสื่อสารลับกับสายลับและผู้ควบคุมสายลับ การวิเคราะห์แสดงให้เห็นว่ารหัสเหล่านี้ถูกสร้างขึ้นโดยพนักงานพิมพ์ดีดโดยใช้เครื่องพิมพ์ดีดจริง วิธีนี้ไม่ใช่การสุ่มอย่างแท้จริง เนื่องจากทำให้รหัสเหล่านี้มีแนวโน้มที่จะมีลำดับปุ่มที่สะดวกบางอย่างบ่อยขึ้น วิธีนี้พิสูจน์แล้วว่ามีประสิทธิภาพโดยทั่วไป เพราะรหัสเหล่านี้ยังคงคาดเดาได้ยากอยู่บ้าง เนื่องจากพนักงานพิมพ์ดีดไม่ได้ปฏิบัติตามกฎ และพนักงานพิมพ์ดีดแต่ละคนก็สร้างรูปแบบของรหัสที่แตกต่างกัน หากไม่มีสำเนาของวัสดุที่ใช้เป็นกุญแจ การถอดรหัสจะทำได้ก็ต่อเมื่อมีข้อบกพร่องในวิธีการสร้างหรือการนำปุ่มกลับมาใช้ใหม่เท่านั้น ตั้งแต่ปลายทศวรรษ 1940 หน่วยงานข่าวกรองของสหรัฐฯ และสหราชอาณาจักรสามารถถอดรหัสการสื่อสารด้วยรหัสแบบใช้ครั้งเดียวของโซเวียตไปยังมอสโก ได้บาง ส่วนในช่วงสงครามโลกครั้งที่สอง อันเป็นผลมาจากข้อผิดพลาดในการสร้างและแจกจ่ายวัสดุที่เป็นกุญแจ ข้อเสนอแนะหนึ่งคือ เจ้าหน้าที่ศูนย์มอสโกอาจเร่งรีบเนื่องจากการมีอยู่ของกองทัพเยอรมันนอกกรุงมอสโกในช่วงปลายปี 1941 และต้นปี 1942 และพวกเขาจึงสร้างสำเนาของวัสดุที่เป็นกุญแจเดียวกันมากกว่าหนึ่งชุดในช่วงเวลานั้น ความพยายามที่ยาวนานหลายทศวรรษนี้ในที่สุดก็ได้รับการตั้งชื่อรหัสว่าVENONA (ก่อนหน้านี้ใช้ชื่อว่า BRIDE) ซึ่งได้ข้อมูลจำนวนมาก ถึงกระนั้นก็ตาม มีเพียงเปอร์เซ็นต์เล็กน้อยของข้อความที่ถูกดักฟังเท่านั้นที่ได้รับการถอดรหัสอย่างสมบูรณ์หรือบางส่วน (เพียงไม่กี่พันข้อความจากหลายแสนข้อความ) [ 23 ]
ดูเพิ่มเติม
หมายเหตุ
- ^ความยาวที่แท้จริงของข้อความต้นฉบับสามารถซ่อนได้โดยการเพิ่มส่วนที่ไม่จำเป็นเข้าไป ซึ่งเรียกว่าการเติม (padding ) ตัวอย่างเช่น ข้อความเข้ารหัส 21 ตัวอักษรสามารถซ่อนข้อความ 5 ตัวอักษรได้โดยใช้รูปแบบการเติมบางอย่าง (เช่น "-PADDING- HELLO -XYZ-") เช่นเดียวกับข้อความ 21 ตัวอักษรที่แท้จริง ดังนั้นผู้สังเกตการณ์จึงสามารถอนุมานได้เพียงความยาวสูงสุดที่เป็นไปได้ของข้อความสำคัญเท่านั้น ไม่ใช่ความยาวที่แน่นอน
- ^กล่าวคือ "การเพิ่มขึ้นของข้อมูล " หรือความแตกต่างของ Kullback–Leiblerระหว่างข้อความต้นฉบับกับข้อความที่เข้ารหัสแล้วมีค่าเป็นศูนย์
- ^อัลกอริทึมการเข้ารหัสแบบไม่สมมาตรส่วนใหญ่อาศัยข้อเท็จจริงที่ว่าอัลกอริทึมที่ดีที่สุดสำหรับการแยกตัวประกอบเฉพาะและการคำนวณลอการิทึมแบบไม่ต่อเนื่องนั้นใช้เวลามากกว่าพหุนาม มีความเชื่ออย่างแรงกล้าว่าปัญหาเหล่านี้ไม่สามารถแก้ไขได้ด้วยเครื่องจักรทัวริงในเวลาที่แปรผันตามความยาวของข้อมูลเข้า ทำให้ยาก (หวังว่าจะเป็นไปไม่ได้เลย) ที่จะถูกเจาะโดยการโจมตีทางด้านการเข้ารหัส อย่างไรก็ตาม เรื่องนี้ยังไม่ได้รับการพิสูจน์
อ่านเพิ่มเติม
ลิงก์ภายนอก
- คำอธิบาย โดยละเอียดและประวัติของ One-Time Padพร้อมตัวอย่างและภาพประกอบในหัวข้อเครื่องเข้ารหัสและวิทยาการเข้ารหัสลับ
- คำอธิบายศัพท์ใน FreeS /WAN ที่กล่าวถึงจุดอ่อนของ OTP
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แผ่นรองแบบใช้ครั้งเดียว
รหัสแบบใช้ครั้งเดียว ( OTP ) เป็น เทคนิค การเข้ารหัสที่ไม่สามารถถอดรหัสได้ในทางวิทยาการเข้ารหัสลับต้องใช้รหัสที่ใช้ร่วมกันล่วงหน้าแบบ ใช้ครั้งเดียว...
ประวัติศาสตร์
แฟรงค์ มิลเลอร์ เป็นคนแรกที่อธิบายระบบแพดแบบใช้ครั้งเดียวเพื่อรักษาความปลอดภัยในการส่งโทรเลขในปี พ.ศ. 2425 [ 6 ] [ 9 ]
ตัวอย่าง
สมมติว่า อลิซ ต้องการส่งข้อความ hello ถึง บ็อบ สมมติว่ามีกระดาษสองแผ่นที่บรรจุตัวอักษรเรียงลำดับแบบสุ่มเหมือนกัน ซึ่งถูกจัดเตรียมและแจกจ่ายให้ทั้งสองคนอย่างปลอดภัยแล้ว อลิซเลือกหน้ากระดาษที่ยังไม่ได้ใช้งานจากแผ่นกระดาษนั้น...
ความพยายามในการวิเคราะห์รหัสลับ
เพื่อยกตัวอย่างจากข้างต้น สมมติว่าอีฟดักฟังข้อความเข้ารหัสของอลิซได้: EQNVZ ถ้าอีฟลองใช้กุญแจทุกแบบที่เป็นไปได้ เธอจะพบว่ากุญแจ XMCKL จะให้ข้อความต้นฉบับ hello แต่เธอก็จะพบว่ากุญแจ TQURI จะให้ข้อความต้นฉบับ later ซึ่งเป็นข้อความที่ดูสมเหตุสมผลเช่นกัน: