ต่อไปนี้เป็นโครงร่าง PRE แบบทิศทางเดียวที่เรียบง่ายซึ่งไม่ใช้การจับคู่แบบไบลิเนียร์ ในกรณีที่คุณพบว่าพวกมันเสียสมาธิ มันใช้การแลกเปลี่ยน Diffie-Hellman แบบคงที่ (เช่นการรวมรหัสสาธารณะของบุคคลหนึ่งเข้ากับรหัสส่วนตัวของอีกคนหนึ่ง) เพื่อทำให้เป็นทิศทางเดียว BTW ฉันคุ้นเคยกับการอธิบายการเข้ารหัสซ้ำของพร็อกซีว่าเป็นการมอบอำนาจระหว่างอลิซกับบ็อบ มากกว่าที่บ๊อบพูดกับชาร์ลี ดังนั้นฉันจะใช้แบบแผนนั้นที่นี่
อลิซ:
- รหัสส่วนตัว: $a$
- รหัสสาธารณะ: $g^a$
บ๊อบ
- รหัสส่วนตัว: $ข$
- รหัสสาธารณะ: $g^b$
อลิซสร้างคีย์เข้ารหัสใหม่สำหรับ Bob โดยใช้คีย์สาธารณะของเขา:
- $rk = \frac{a}{H((pk_B)^{sk_A})} = \frac{a}{H(g^{ab})}$
ทุกคนสามารถเข้ารหัสข้อความที่มีไว้สำหรับอลิซได้:
- $C_A = (g^r, M · g^{ar})$
พร็อกซีเข้ารหัสอีกครั้ง $C$ ใช้คีย์เข้ารหัสใหม่:
- $C_B = ( (g^r)^{rk}, M · g^{ar}) = ( g^{\frac{ar}{H(g^{ab})}}, M · g^ {ar})$
Bob ถอดรหัสโดยใช้คีย์ส่วนตัวของเขา โดยสมมติว่าเขารู้ว่าเดิมทีมันเป็นรหัสรหัสของอลิซ (ดังนั้นเขาจึงรู้รหัสสาธารณะของเธอ $g^a$):
- $ x = (C_{B,1})^{H(pk_A^{sk_B})} = g^{ar}$
- $ M = \frac{C_{A,2}}{x}$
อย่างที่คุณเห็น แนวคิดหลักคือความลับเดียวกับที่ทำให้ข้อความบังตา ($g^{ar}$) สามารถสร้างได้ด้วยการเข้ารหัสปกติด้วยคีย์สาธารณะของ Alice และหลังจาก Bob เข้ารหัสและถอดรหัสใหม่ กล่าวอีกนัยหนึ่งคุณสามารถผลิตได้ $g^{ar}$ ในสองวิธี:
- อลิซสามารถผลิต $g^{ar}$ โดยการ $g^r$ ส่วนประกอบและใช้รหัสส่วนตัวของเธอ $a$.
- กระบวนการเข้ารหัสซ้ำจะแปลง $g^r$ ส่วนประกอบของไซเฟอร์เท็กซ์เข้าไป $g^{\frac{ar}{H(g^{ab})}}$และ Bob เสร็จสิ้นกระบวนการโดยลบ $H(g^{ab})$ โดยใช้รหัสส่วนตัวของเขา $ข$.
เมื่อคุณมีสองวิธีในการสร้างความลับเดียวกันโดย Alice (โดยการถอดรหัสเท่านั้น) และ Bob (ผ่านการเข้ารหัสและถอดรหัสซ้ำ) จากนั้นคุณก็จะได้รับรูปแบบการเข้ารหัสซ้ำของพร็อกซี มีหลายวิธีในการทำเช่นนี้ (ด้วยการจับคู่แบบบิลิเนียร์, ไม่ใช้แบบคู่, ด้วยแบบตาข่าย ฯลฯ) และเทคนิคที่ใช้โดยแต่ละแบบแผนอาจแตกต่างกันไป แต่โดยทั่วไปแล้วนั่นคือแนวคิด
สำหรับเร็กคอร์ด นี่เป็นเวอร์ชันที่เรียบง่ายสุดของ รูปแบบการเข้ารหัสซ้ำของพร็อกซี Umbral ใช้โดย เครือข่าย NuCypherซึ่งเป็นเครือข่ายแบบกระจายที่ให้บริการเข้ารหัสพร็อกซีซ้ำด้วยพร็อกซีหลายร้อยรายการ