โมน โมน โมน
สมมติว่ามีคู่กุญแจสองคู่ (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 หรืออัลกอริทึมที่เหมาะกับกรณีของฉันหรือไม่
ขอบคุณล่วงหน้า
แก้ไข: คู่กุญแจไม่ได้ใช้โมดูลัสเดียวกัน