One Time Pad การเข้ารหัสที่สมบูรณ์แบบ

การเข้ารหัสที่สมบูรณ์แบบ One time pad (OTP) เป็นการเข้ารหัสที่ง่ายมาก อัลกอริทึมมันเป็นแบบนี้ และเป็นการเข้ารหัสเดียวที่ได้รับการพิสูจน์แล้วว่าปลอดภัยอย่างสมบูรณ์แบบ

  • แปลงข้อมูลที่คุณต้องการเข้ารหัสเป็นไบนารี (เราเรียกว่าข้อความธรรมดา)
  • สร้างอาร์เรย์ไบนารีแบบสุ่มที่แท้จริงโดยมีความยาวเท่ากับข้อความธรรมดาของคุณ (เราเรียกสิ่งนี้ว่าแพด)
  • ดำเนินการ XOR ระดับบิตระหว่างข้อความธรรมดาและแพด ผลลัพธ์คือรหัสของเรา
  • ในการรับข้อความธรรมดาจากรหัส เราเพียงแค่ต้อง XOR รหัสด้วยแพด

OTP เป็นการเข้ารหัสเดียวที่ได้รับการพิสูจน์แล้วว่าปลอดภัยอย่างสมบูรณ์แบบ หากใช้อย่างถูกต้อง การเข้ารหัสจะไม่เปิดเผยข้อมูลเพิ่มเติมใดๆ ที่เราไม่ทราบเกี่ยวกับข้อความธรรมดา สำหรับตัวอย่างข้างต้น จากรหัสตัวเลข0011 1010 1101 1101เราทราบว่าข้อความธรรมดามีความยาวไม่เกิน 2 ไบต์ อย่างไรก็ตาม สำหรับข้อมูลที่มีความยาว 2 ไบต์ใดๆ ระหว่าง0000 0000 0000 0000และ1111 1111 1111 1111มีแพดที่เมื่อ XOR พร้อมรหัสจะให้ข้อมูลที่แน่นอนแก่เรา และเนื่องจากแพดของเราเป็นแบบสุ่มจริงๆ หากไม่มี ทางออกที่ดีที่สุดสำหรับฝ่ายตรงข้ามในการถอดรหัสรหัสคือการเดาแบบสุ่ม

แพ็ดครั้งเดียว การเข้ารหัสที่ไม่มีประโยชน์มากนัก

หาก OTP นั้นเรียบง่ายแต่มีความปลอดภัยอย่างสมบูรณ์แบบ เหตุใดเราจึงยังต้องการ AES, RSA หรือการเข้ารหัสอื่นๆ อีก คำตอบคือ เนื่องจากเพื่อความปลอดภัยอย่างสมบูรณ์ OTP จึงจำเป็นต้องใช้ในลักษณะที่เฉพาะเจาะจงมาก จะต้องเป็นไปตามข้อกำหนดดังต่อไปนี้

  • แผ่นต้องสุ่มอย่างแท้จริงและมีความยาวอย่างน้อยเท่ากับข้อความธรรมดา
  • ทั้งผู้ส่งและผู้รับต้องมีแผ่นรองและเก็บเป็นความลับ
  • ห้ามใช้แผ่นรองซ้ำ

มาดูแต่ละจุดด้านบนกัน

แผ่นต้องสุ่มอย่างแท้จริงและมีความยาวอย่างน้อยเท่ากับข้อความธรรมดา

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

ตัวสร้างตัวเลขสุ่มเทียมบางตัว เช่นCryptGenRandom , YarrowหรือFortunaถูกเรียกว่าcryptographically -secure ซึ่งหมายความว่าค่าที่ให้นั้นแทบจะแยกไม่ออกจากการสุ่มจริงและเหมาะสมที่จะใช้ในการเข้ารหัส

หมายความว่าเราสามารถใช้ตัวสร้างหมายเลขสุ่มเทียมที่ปลอดภัยในการเข้ารหัส เพื่อสร้างแพดของเราได้หรือไม่ น่าเสียดาย เพราะโซ่มีความแข็งแรงพอๆ กับข้อต่อที่อ่อนแอที่สุดเท่านั้น การเข้ารหัสของเราจะปลอดภัยในการเข้ารหัสเท่านั้น ค่อนข้างดี แต่ไม่มีที่ใดใกล้เคียงสมบูรณ์แบบ

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

ทั้งผู้ส่งและผู้รับต้องมีแผ่นรองและเก็บเป็นความลับ

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

บางท่านอาจสงสัยว่าทำไมเราไม่ใช้เพียงอัลกอริทึมการแลกเปลี่ยนคีย์ เป็นความจริงที่การแลกเปลี่ยนข้อมูลลับในช่องทางที่ไม่ปลอดภัยนั้นไม่ใช่ปัญหาใหม่ การเข้ารหัสคีย์สาธารณะได้แก้ไขมันได้ค่อนข้างดีด้วยอัลกอริทึมอย่าง Diffie–Hellman หรือ ECDH เป็นต้น แต่เมื่อพยายามนำไปใช้กับ OTP เราเผชิญกับอุปสรรคสำคัญสองประการ อันแรกคืออัลกอริธึมการแลกเปลี่ยนคีย์แบบดั้งเดิมได้รับการออกแบบมาสำหรับคีย์ลัดและไม่มีประสิทธิภาพเมื่อใช้แพดขนาดใหญ่ (โปรดจำไว้ว่าแพดต้องมีความยาวอย่างน้อยเท่ากับข้อความธรรมดา) และเหตุผลที่สองก็คือเรื่องของห่วงโซ่และการเชื่อมโยงที่อ่อนแออีกครั้ง ท้ายที่สุด ไม่มีอัลกอริธึมการแลกเปลี่ยนคีย์ใดที่สมบูรณ์แบบ

ห้ามใช้แผ่นรองซ้ำ

เราจะแสดงประสบการณ์เล็ก ๆ น้อย ๆ เพื่อดูว่าเหตุใดการใช้แผ่นรองซ้ำจึงเป็นความคิดที่ไม่ดี สมมติว่าฉันมีภาพนี้

ฉัน XOR ด้วยแผ่นรองและรับสิ่งนี้ซึ่งดูสุ่มพอ

ตอนนี้ฉันมีภาพอื่นที่นี่

ฉัน XOR ด้วยแผ่นเดียวกันด้านบนและรับภาพสุ่มอีกภาพ

ทุกอย่างดูโอเคใช่มั้ย? ลองเดาดูว่าผลลัพธ์คืออะไรเมื่อเรา XOR ทั้งสองรหัสด้านบน

ทันใดนั้นเราก็มีความคิดที่ดีว่าข้อความธรรมดาทั้งสองมีลักษณะอย่างไร คุณสามารถลองใช้สคริปต์ที่ฉันอัปโหลดไว้ที่นี่ได้ด้วยตัวเอง เนื่องจากฉันเคยurandomสร้างแผ่นนี้ในทางเทคนิคจึงไม่ใช่ OTP แต่ก็ดีพอสำหรับการสาธิต

OTP มีประโยชน์หรือไม่?

น่าเสียดายที่การเข้ารหัสที่เรียบง่ายแต่ปลอดภัยอย่าง OTP ไม่มีประโยชน์มากนักในทางปฏิบัติ มีกรณีใดบ้างที่เหมาะสม? ที่จริงมันเป็น OTP ช่วยให้เราสามารถประชุมล่วงหน้าได้อย่าง ปลอดภัย สมมติว่าคุณพบเพื่อนด้วยตนเองและแลกเปลี่ยนไดรฟ์ USB ที่เต็มไปด้วยข้อมูลแบบสุ่มอย่างแท้จริง ตอนนี้คุณและเพื่อนของคุณสามารถแลกเปลี่ยนข้อมูลระหว่างกันได้อย่างปลอดภัยในภายหลัง เป็นที่ชัดเจนว่าสถานการณ์ดังกล่าวมักเกิดขึ้นในหน่วยสืบราชการลับ

แอปพลิเคชัน OTP ที่มีชื่อเสียงที่สุดที่ฉันนึกถึงคือสายด่วนมอสโก-วอชิงตัน เพื่ออ้างอิงพิพิธภัณฑ์ Crypto

แทนที่จะใช้เครื่องเข้ารหัสของอเมริกาหรือรัสเซียในการเข้ารหัสข้อความ เครื่อง ETCRRM ถูกสร้างขึ้นในนอร์เวย์โดย STK 1 ซึ่งถือว่าเป็นกลางและเป็นกลาง

เนื่องจาก ETCRRM เป็น One-Time Tape machine (OTT) จึงใช้หลักการของ One-Time Pad (OTP) เมื่อใช้ร่วมกับเทปคีย์สุ่มอย่างแท้จริง เครื่อง OTT จะปลอดภัยและไม่แตกหักอย่างแน่นอน ขณะที่รัสเซียยืนกรานที่จะผลิตกุญแจของตนเอง จึงมีการตัดสินใจว่าแต่ละฝ่ายจะสร้างเทปกุญแจของตนเอง

เทปสำคัญเหล่านี้ถูกส่งโดยผู้ให้บริการขนส่งพิเศษไปยังสถานทูตที่ปลายทางอีกฝั่งหนึ่ง ซึ่งส่งเทปดังกล่าวที่ปลายทางของอีกฝ่ายหนึ่ง [9] ดังนั้น สถานทูตอเมริกันในมอสโกจึงส่งเทปสำคัญที่สถานีสายด่วนมอสโก

บทสรุป

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *