ข้อเสนอมุ่งเป้าไปที่ 1/2/3/4 ของส่วนสุดท้ายของคำถาม: การเข้ารหัสแบบลูกโซ่แบบลูกโซ่
เราจะใช้
- รูปแบบการเข้ารหัสที่รับรองความถูกต้องแบบสมมาตรอย่างรวดเร็ว เช่น AES-GCM หรือ ChaCha20-Poly1305 ด้วยคีย์ลับ 256 บิต การเข้ารหัสด้วยคีย์ $K$ ข้อสังเกต $C=E_K(M)$ และการถอดรหัส $M=D_K(C)$.
- รูปแบบการเข้ารหัสแบบอสมมาตรที่สามารถเข้ารหัสข้อความ 256 บิต โดยมีการบันทึกการเข้ารหัส $C=\คณิตศาสตร์ E_P(M)$ และการถอดรหัส $M=\คณิตศาสตร์ D_S(C)$, ที่ไหน $(ป,ส)$ เป็นคู่คีย์ (สาธารณะ ส่วนตัว/ลับ) RSAES-สศอ หรือ ECIES จะทำ.
เราถือว่า Bob และ Carol ได้สร้างคู่คีย์ $(P_B,S_B)$ และ $(P_C,S_C)$และส่งคีย์สาธารณะ $P_B$ และ $P_C$ ถึงอลิซในลักษณะที่รับประกันความสมบูรณ์และหลักฐานแหล่งกำเนิด (อาจใช้ใบรับรองดิจิทัล)
เพื่อเข้ารหัสต่อแครอลโดยผู้รับมอบฉันทะจากบ็อบ อลิซ
- ดึงคีย์สุ่ม 256 บิตสองคีย์ $K_B$ และ $K_C$
- คำนวณ $C_B=\คณิตศาสตร์ E_{P_B}(K_B)$
- คำนวณ $C_C=\คณิตศาสตร์ E_{P_C}(K_C)$
- คำนวณ $C_0=E_{K_B}(C_C)$
- คำนวณ $C_1=E_{K_C}(M)$
- ส่งข้อความถึงบ๊อบ $C=C_B\mathbin\|C_0\mathbin\|C_1$.
Bob รับและจัดเก็บ $C$. เมื่อแครอลขอข้อความที่เข้ารหัส บ็อบ
- สารสกัด $C_B$, $C_0$ และ $C_1$ จาก $C$
- คำนวณ $K_B=\คณิตศาสตร์ D_{S_B}(C_B)$
- คำนวณ $C_C=D_{K_B}(C_0)$
- แบบฟอร์มและส่งให้แครอล $C'=C_C\mathbin\|C_1$.
แครอลได้รับ $C'$ และ
- สารสกัด $C_C$ และ $C_1$ จาก $C'$
- คำนวณ $K_C=\คณิตศาสตร์ D_{S_C}(C_C)$
- คำนวณ $M=D_{K_C}(C_1)$
เมื่อใดก็ตามที่การถอดรหัสล้มเหลว Bob หรือ Carol จะล้มเลิก
สังเกตว่าข้อความจำนวนมาก $M$ ได้รับการเข้ารหัสเพียงครั้งเดียว ซึ่งเป็นไปตามข้อกำหนดด้านประสิทธิภาพ
เราสามารถแทนที่โครงร่างการเข้ารหัสแบบอสมมาตรด้วยแบบสมมาตร $(P_B,S_B)$ กับคำถามที่ว่า $K_2$ และ $(P_C,S_C)$ กับคำถามที่ว่า $K_3$ (และนอกจากนั้นระบบยังสามารถทำให้ง่ายขึ้นเพื่อกำจัด $K_B$). แต่การใช้แบบสมมาตรทำให้เราสูญเสียประโยชน์ของการเข้ารหัสแบบอสมมาตร นั่นคืออลิซไม่จำเป็นต้องเก็บอะไรเป็นความลับ และไม่สามารถใช้ความลับดังกล่าวเพื่อพยายามถอดรหัสการสื่อสารอื่น ๆ ที่ส่งถึงบ็อบหรือแครอล