Score:2

จะแบ่งปันความสามารถในการถอดรหัสกับผู้อื่นที่ไม่ได้ใช้คีย์สาธารณะระหว่างการเข้ารหัสได้อย่างไร

ธง br
Leo

ตามชื่อเรื่อง เช่น A ใช้รหัสสาธารณะของ B เพื่อเข้ารหัสข้อความและส่งไปยัง B ในระยะต่อมา สมาชิกใหม่ C เข้าร่วมและ B ต้องการให้ C สามารถเห็นข้อความที่เข้ารหัสนี้ (เช่น ให้ ความสามารถในการถอดรหัสเป็น C) จะบรรลุสิ่งนี้โดยไม่ให้ A เข้ารหัสข้อความอีกครั้งโดยใช้รหัสสาธารณะของ C ได้อย่างไร

วิธีหนึ่งที่ฉันคิดได้ตอนนี้คือ B ถอดรหัสข้อความก่อนและใช้รหัสสาธารณะของ C เพื่อเข้ารหัสอีกครั้งแล้วจึงส่งไปยัง C แต่มีวิธีใดที่ต้องใช้การดำเนินการน้อยลงเพื่อแบ่งปันความสามารถในการถอดรหัสให้กับ C โดยอัตโนมัติ ? ขอบคุณ.

Eugene Styer avatar
dz flag
ดู https://crypto.stackexchange.com/questions/86483/using-public-key-cryptography-with-multiple-recipients
Leo avatar
br flag
Leo
ขอบคุณ @EugeneStyer แต่ปัญหาของฉันที่นี่คือการให้คนอื่นที่เข้าร่วมในภายหลังซึ่งไม่ได้ใช้คีย์สาธารณะในตอนเริ่มต้นสามารถอ่านข้อความได้เช่นกัน ซึ่งแตกต่างจากคำถามนี้เล็กน้อยตรงที่ข้อกำหนดคือการเข้ารหัสข้อความโดยใช้คีย์สาธารณะของผู้รับหลายคน .
Eugene Styer avatar
dz flag
เหตุผลที่ฉันเชื่อมโยงไปยังคำถามเฉพาะนั้นก็คือ โปรดทราบว่าด้วยการเข้ารหัสแบบไฮบริด เราจะเข้ารหัสข้อความหนึ่งครั้งโดยใช้ AES (หรือคล้ายกัน) จากนั้นใช้การเข้ารหัสสาธารณะเพื่อส่งคีย์ AES ดังนั้น การเพิ่มผู้รับรายอื่นจึงหมายถึงการเข้ารหัสคีย์ AES โดยใช้คีย์สาธารณะของผู้รับรายใหม่ ความจริงที่ว่าสิ่งนี้เกิดขึ้นในภายหลังไม่ได้สร้างความแตกต่างมากนัก
Score:0
ธง us

หากคุณต้องการให้ C สามารถถอดรหัสสิ่งที่ส่งถึง B ได้ วิธีที่ง่ายที่สุดคือมอบคีย์ถอดรหัสของ B ให้กับ C

นอกจากนี้ยังมีสิ่งที่เรียกว่า พร็อกซีเข้ารหัสซ้ำ ที่อยู่ในจิตวิญญาณของ "re-addressing" ไซเฟอร์เท็กซ์ ในการเข้ารหัสซ้ำของพร็อกซีมีอัลกอริทึม $\textsf{ProxyKey}(sk_B, pk_C) \ถึง rk_{B\ถึง C}$: ใช้คีย์ส่วนตัวของ B และคีย์สาธารณะของ C เป็นอินพุต และสร้างคีย์เข้ารหัสใหม่ $rk_{B \ถึง C}$. ใครก็ตามที่มีคีย์เข้ารหัสซ้ำนี้สามารถทำได้ $\textsf{ReEncrypt}(rk_{B \to C}, ctxt) \to ctxt'$ซึ่งใช้ไซเฟอร์เท็กซ์ $ctxt$ จ่าหน้าถึง $B$ และแปลงร่างเป็น $ctxt'$การเข้ารหัสของสิ่งเดียวกันแต่จ่าหน้าถึง $C$.

(นอกจากนี้ยังมีรูปแบบที่ $\textsf{ProxyKey}$ ต้องการรหัสส่วนตัวของทั้งสองฝ่าย)

ความแตกต่างที่สำคัญในที่นี้คือบุคคลที่ "ระบุที่อยู่ใหม่" ของข้อความเข้ารหัส ("พร็อกซี") สามารถเป็นบุคคลอื่นที่ไม่ใช่ B หรือ C พร็อกซีที่มีแต่ $rk_{B\ถึง C}$ แต่ใครที่ไม่รู้จักคีย์ส่วนตัวของ B หรือ C จะไม่สามารถเปิดข้อความเข้ารหัสที่ส่งถึง B หรือ C ได้ พวกเขาสามารถแปลงข้อความเข้ารหัสสำหรับ B เป็นข้อความเข้ารหัสสำหรับ C เท่านั้น (และไม่ใช่ในทางกลับกัน) โดยไม่ต้องมองเข้าไปข้างในสมมติว่าพร็อกซีและ C เป็นบุคคลที่แตกต่างกัน ดังนั้น C จะสามารถอ่านได้เฉพาะข้อความที่ส่งถึง B ซึ่งพร็อกซีเลือกที่จะแปลง

Leo avatar
br flag
Leo
ขอบคุณ @Mikero ในกรณีของฉันไม่สามารถให้รหัสส่วนตัวของ B แก่ C ดังนั้นวิธีที่ง่ายที่สุดจึงไม่สามารถทำงานที่นี่ได้ การเข้ารหัสซ้ำของพร็อกซีฟังดูน่าสนใจ แต่หลังจากที่พร็อกซีใช้คีย์การเข้ารหัสซ้ำ rkB-C เพื่อเข้ารหัส ctxt ใหม่เพื่อรับ ctxt' และส่งไปยัง C แล้ว C จะถอดรหัส ctxt' ได้อย่างไร มันใช้รหัสส่วนตัวของ C หรือไม่
us flag
ใช่ โดยทั่วไปแล้ว ctxt' จะดูเหมือนข้อความเข้ารหัสปกติที่ส่งถึง C โดยตรง และจะถูกถอดรหัสด้วยวิธีปกติ
Leo avatar
br flag
Leo
ฟังดูดี. ฉันจะค้นหาและลองก่อน ขอบคุณ @Mikero ฉันพบห้องสมุดที่ดูดี https://github.com/nucypher/pyUmbral แค่สงสัยว่าคุณมีที่แนะนำหรือไม่?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา