โมน โมน โมน
สมมติว่ามีคู่กุญแจสองคู่ (d1,e1) และ (d2,e2), ที่ไหน d1 และ d2 เป็นคีย์ส่วนตัวที่ไม่เกี่ยวข้องและ e1 และ e2 คีย์สาธารณะที่เกี่ยวข้อง ลองนึกภาพอลิซรู้ ไม่ใช่ทั้งสองอย่าง d1 ก็ไม่เช่นกัน d2 และบ๊อบเท่านั้น d1, ไม่ d2. อลิซมีไซเฟอร์เท็กซ์ ค ที่เกิดจากการเข้ารหัสข้อความ ม กับ e1 ใช้ RSA เธอไม่สามารถถอดรหัสได้เพราะเธอไม่รู้ d1. อลิซเข้ารหัส ค อีกครั้งกับ e2 ใช้รหัสอสมมาตร (ยังคงต้องเลือก) และส่งไปให้ Bob Bob ไม่สามารถถอดรหัสได้เนื่องจากไม่มี d2. จากนั้นเขาสามารถใช้อัลกอริทึมบางประเภทและ d1 เพื่อสร้างสิ่งที่เขาสามารถส่งมาให้ฉันซึ่งสามารถถอดรหัสได้ d1 และ d2 ส่งผลให้ข้อความเดิม?
สิ่งที่ฉันต้องการคือ อลิซและบ็อบไม่สามารถอ่านข้อความได้ มีเพียงความรู้ที่รวมกันของกุญแจลับทั้งสองเท่านั้นที่จะทำให้พวกเขาถอดรหัสได้
รหัสเทียม:
ม เป็นข้อความ
c := RSAEncrypt(m, ใช้: e1)
อลิซไม่:
c2 := AsymEncrypt(c, ใช้: e2)
บ๊อบไม่:
c3 := RSADecryptAlgo(c2, ใช้: d1)
ฉันต้องการ:
m = SomeDecryptionAlgo(c3 ใช้: d2)
สถานการณ์นี้ (แม้ว่าจะค่อนข้างแปลก) เป็นไปได้หรือไม่? ถ้าเป็นเช่นนั้น มีใครทราบคำที่ Googleable หรืออัลกอริทึมที่เหมาะกับกรณีของฉันหรือไม่
ขอบคุณล่วงหน้า
แก้ไข: คู่กุญแจไม่ได้ใช้โมดูลัสเดียวกัน