การเข้ารหัสที่สมบูรณ์แบบ 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