Score:2

พิสูจน์ว่าการเข้ารหัสซ้ำสองครั้งของคู่ ElGamal เดียวกันมีการถอดรหัสเหมือนกัน

ธง br

ฉันกำลังทำงานเกี่ยวกับระบบการเลือกตั้งทางอินเทอร์เน็ตที่ต้องมีการสลับบัตรลงคะแนนพร้อมกับการพิสูจน์ความถูกต้องของการสับเปลี่ยนแบบโต้ตอบ ฉันกำลังทำงานอยู่ กระดาษแผ่นนี้ และฉันติดอยู่ที่ส่วนที่ระบุไว้ด้านล่าง:

โดยปล่อยค่าเดียว $(r'-r'')\mod(p-1)$, ElGamal สองคู่ $(x',y')$ และ $(x'',y'')$ สามารถแสดงได้ว่ามีการถอดรหัสเดียวกันโดยไม่มีการเชื่อมโยงหรือการเชื่อมโยงกับคู่ ElGamal ดั้งเดิม $(x,y)$.

จัดการได้เลยค่า $(r'-r'')\mod(p-1)$ ระบุไว้ข้างต้น แต่ฉันไม่แน่ใจว่าจะใช้ค่านี้เพื่อพิสูจน์ว่าการเข้ารหัสซ้ำทั้งสองมีการถอดรหัสเดียวกันอย่างไร

ขอบคุณสำหรับเวลา ,

อังเดร

Score:2
ธง ru

การเขียนเครื่องหมายบวก สมมติว่าเรามีเครื่องกำเนิดไฟฟ้า $G$ และรหัสสาธารณะ $A$. ของเราสองคู่คือ $(xâ,yâ)=(M+râA,râG)$ และ $(xââ,yââ)=(M+rââA,rââG)$. ที่ให้ไว้ $râ-rââ$เราสามารถตรวจสอบได้ $yâ-yââ=(râ-rââ)G$ และ $xâ-xââ=(râ-rââ)A$

ในสัญกรณ์การคูณเรามี $(xâ,yâ)=(MA^{râ},G^{râ})$ ฯลฯ เราตรวจสอบว่า $yâ/yââ=G^{râ-rââ}$ และ $xâ/xâ=A^{râ-rââ}$.

หากข้อความแตกต่างกัน แต่มีชั่วคราวเดียวกัน $r$ ค่า การตรวจสอบครั้งแรกจะผ่าน แต่ครั้งที่สองไม่ผ่าน

Andrei Florian avatar
br flag
สวัสดี ขอบคุณสำหรับการตอบรับและขออภัยในความล่าช้า ฉันตรวจสอบสูตรที่ให้ไว้และดูเหมือนว่าจะใช้ได้ (xâ²,yâ²)=(M+râ²A,râ²G) ในกรณีของฉัน (xâ²,yâ²)=(MA^r', G^r') คุณพอจะทราบวิธีปรับหลักฐานให้พอดีกับสิ่งนี้หรือไม่?
Daniel S avatar
ru flag
ใช่ นี่คือสัญกรณ์การคูณในย่อหน้าที่สอง ฉันได้แก้ไขเพื่อให้ชัดเจนยิ่งขึ้น
Andrei Florian avatar
br flag
ขอบคุณสำหรับสิ่งนั้น ขออภัยที่รบกวน ฉันพยายามใช้งานผ่านโค้ด (จาวาสคริปต์ ใช้ไลบรารี jsbn เพื่อทำคณิตศาสตร์กับจำนวนเต็มขนาดใหญ่) แต่ดูเหมือนจะใช้งานไม่ได้ ฉันกำลังพยายามหาทางด้านซ้ายและด้านขวาของสมการ แล้วทำการสมการตามด้านล่าง: `const left = y1.divide(y2);` `const right = g.pow(proof);` `console.log(left.equals(ขวา));` y1 คือ y', y2 คือ y'' และการพิสูจน์คือ (r'-r'') เมื่อไหร่ก็ตามที่ฉันยก g ยกกำลัง (r'-r'') ฉันได้ 1 และเมื่อฉันหาร y' ด้วย y'' ฉันได้ 0 เท่ากับ y1y2 คุณจะรู้ว่าฉันทำอะไรผิด?
Daniel S avatar
ru flag
ดูเหมือนว่าคุณกำลังคิดเลขแบบไร้เดียงสาแทนที่จะเป็นโมดูโลเลขคณิต $p$ คุณควรมี `left=(y1*modInverse(y2,p))%p` สำหรับฟังก์ชัน modInverse ที่เหมาะสม (ฉันไม่รู้ว่ามีจาวาสคริปต์ในตัวอะไร) และ `right=modPower(g,proof,p)` สำหรับ ฟังก์ชัน modPower ที่เหมาะสม
Andrei Florian avatar
br flag
นั่นคือประเด็น! ขอขอบคุณ. ฉันกำลังประสบปัญหาอย่างหนึ่งกับมัน ฉันกำลังสร้าง (r' - r'') เป็น r' - r'' % p การพิสูจน์ใช้งานได้โดยให้ r'>r'' แต่ไม่เปลี่ยนจนกว่าฉันจะเปลี่ยน left=(y1*modInverse(y2, p))%p to left=(y2*modInverse(y1, p))%p จะมีวิธีแก้ปัญหานั้นทางคณิตศาสตร์เพื่อให้ r'-r'' ทำงานโดยไม่คำนึงถึงความไม่เท่าเทียมกันหรือไม่
Daniel S avatar
ru flag
ใช่. ให้ใช้ `(r'-r'')%(p-1)` แทน
Andrei Florian avatar
br flag
ใช่แล้วล่ะ ขอบคุณมากสำหรับความช่วยเหลือทั้งหมด

โพสต์คำตอบ

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