ระบบเข้ารหัสต่อไปนี้เป็นไปได้หรือไม่:
โดยทั่วไปความยาวของคีย์จะน้อยกว่าความยาวของข้อความที่ป้อน
ฉันจะถือว่าข้อความธรรมดาไม่สามารถบีบอัดได้ นั่นคือพวกเขาได้รับอนุญาตให้เป็นรูปแบบบิตโดยพลการ
ถ้าเป็นเช่นนั้น หากคุณได้รับอนุญาตให้เลือกคีย์ตามข้อความธรรมดา ก็เป็นไปได้ แต่ถ้าความยาวของคีย์มีความยาวอย่างน้อยครึ่งหนึ่งของข้อความธรรมดา หากเลือกคีย์โดยไม่ขึ้นกับข้อความธรรมดา แสดงว่าเป็นไปไม่ได้
ให้แสดงคำสั่งสุดท้ายก่อน สมมติว่าคุณมีวิธีการดังกล่าว สิ่งที่คุณสามารถทำได้เพื่อเข้ารหัสสองข้อความ T1 และ T2 คือการเลือกคีย์ K1 และ K2 ตามอำเภอใจ (และรู้จักกันดี) และเข้ารหัสเป็นข้อความ M จากนั้นส่งข้อความ M นั้นไปยังบุคคลอื่น สิ่งที่บางคน (ที่รู้จัก K1, K2) สามารถทำได้เพื่อกู้คืน T1, T2 คือการเรียกใช้ฟังก์ชันถอดรหัสบน M (ใช้ทั้ง K1, K2); นั่นทำให้เขา T1, T2 นั่นหมายความว่า ถ้าความยาวของ T1, T2, M คือ n บิต จะถูกส่งไปให้เขา 2n บิตของข้อมูลที่แสดงเป็น n บิตเท่านั้น - เนื่องจากเราคิดว่า T1, T2 ไม่สามารถบีบอัดได้ นั่นเป็นไปไม่ได้
ข้อความแรกคล้ายกัน ในการส่ง T1, T2 คุณต้องมีขั้นตอนเลือก K1, K2 แล้วส่ง K1, K2 และ M - คุณจะต้องส่ง K1, K2 เพราะเราไม่สามารถสันนิษฐานได้ว่าผู้รับรู้จักพวกเขาอีกต่อไป เครื่องรับใช้ฟังก์ชันถอดรหัสอีกครั้งเพื่อกู้คืน T1, T2 - ถ้า T1, T2, M มีความยาว n บิต และ K1, K2 มีความยาว k บิต เราจะส่งบิตไปให้เขา 2n บิต รวมเป็น n+2k บิต - นี่ เป็นไปได้ก็ต่อเมื่อ 2n $\le$ n+2k หรือ k $\ge$ n/2.
ส่วนสุดท้ายคือการแสดงให้เห็นว่าข้อความแรกเป็นไปได้ วิธีหนึ่งที่ง่าย (แม้ว่าจะไม่ปลอดภัย) ในการแสดง [1] คือการหาร $T1, T2$ แบ่งครึ่ง $T1_a, T1_b, T2_a, T2_b$. จากนั้นเราก็ตั้งค่า $K1 = T1_a$ และ $K2 = T2_b$ และตั้งค่า $M = T2_a || T1_b$ - วิธีการ "ถอดรหัส" ค่อนข้างชัดเจน
[1]: สิ่งนี้ถือว่าเป็นเรื่องปกติที่วิธีการถอดรหัสสองวิธีสำหรับ T1 และ T2 นั้นแตกต่างกัน วิธีหนึ่งสามารถรวบรวมวิธีการแบบรวมที่ใช้ได้กับทั้งสองวิธี แต่ฉันไม่สามารถนึกถึงวิธีที่อธิบายได้ง่ายเช่นนี้