Score:1

กำหนด $Ï_i$ เมื่อใช้ลายเซ็นแหวนที่ตรวจสอบย้อนกลับได้บน Curve25519

ธง in

กระดาษลายเซ็น Traceable Ring ของ Fujisaki & Suzukiซึ่งอนุญาตให้มีการลงนามด้วยคีย์ส่วนตัวหนึ่งคีย์จากวงแหวนของคีย์สาธารณะเพื่อลงนาม และสำหรับใครก็ตามที่จะยืนยันว่าสมาชิกคนหนึ่งของวงแหวนนั้นลงนาม โดยไม่ต้องเปิดเผยว่าสมาชิกของวงแหวนคนใดลงนาม เว้นแต่สมาชิกคนเดียวกันของวงแหวนจะลงนาม สองข้อความที่ต่างกันภายใต้แท็กเดียวกัน ('การใช้จ่ายสองเท่า') ซึ่งในกรณีนี้สามารถระบุผู้ใช้ที่ใช้จ่ายซ้ำซ้อนได้

สำหรับแหวนของ $n$ ผู้ลงนาม ทั้งโปรโตคอลการลงนามและโปรโตคอลการตรวจสอบขึ้นอยู่กับ $\sigma_j$ สำหรับ $i \ใน [1..n]$. ที่ไหน $i$ คือตำแหน่งผู้ลงนามที่แท้จริงในสังเวียน $\sigma_i$ ถูกกำหนดตามคีย์ส่วนตัว สมาชิกในวง และปัญหา จากนั้น การตรวจสอบย้อนกลับจะขึ้นอยู่กับแนวคิดที่ว่าด้วยข้อความเดียวสำหรับคีย์ส่วนตัว / เสียงเรียกเข้า / ปัญหาสามเท่า จึงยากที่จะระบุได้ว่าข้อความใด $\sigma_j$ เป็นข้อ จำกัด ที่ไม่มีรหัสส่วนตัว อย่างไรก็ตาม หากผู้ลงนามคนเดียวกันลงชื่อสองข้อความสำหรับปัญหา/ปัญหาเดียวกัน $\sigma_i$ จะเหมือนกันในทั้งสองข้อความ โดยระบุว่าทั้งสองข้อความมาจากผู้ลงนาม $i$. อย่างไรก็ตาม เอกสารฉบับนี้ชี้ให้เห็นว่า หากโปรโตคอลต้องให้ผู้ลงนามมีอิสระในการเลือก $\sigma_j$ สำหรับ $j \neq ผม$ผู้ลงนามอาจตีกรอบผู้ลงนามรายอื่นว่ามีการลงนามสองครั้ง

เพื่อเอาชนะสิ่งนี้ กระดาษจะอธิบายแผนภาพสำหรับการแสดงทั้งหมดแทน $\sigma_j$ เป็นเส้นที่มีการสกัดกั้นที่แก้ไขโดยอัลกอริทึมตามแฮชของอินพุต และความชัน (กำหนดโดยผู้ลงนามตาม $i$, การสกัดกั้น, และ $\sigma_i$).

กระดาษแสดงความ $\sigma_j$ ค่าที่เป็นสมาชิกของ "กลุ่มผลคูณ G ของลำดับเฉพาะ q" โดยไม่มีข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่พวกเขาคิดไว้สำหรับกลุ่มนั้น ฉันจึงขอเลือก $G$ เป็นเส้นโค้งวงรี Curve25519 ซึ่งดูจะเข้ากับสมมติฐานของผู้เขียน

อย่างไรก็ตามสิ่งนี้ทำให้เกิดความท้าทายกับแผนการวาง $\sigma_j$ ค่าในบรรทัด กระดาษบอกว่า:

ชุด $A_0 = H'(L, m)$ และ $A_1 = ({\sigma_i \over A_0})^{1/i}$

มีการตีความที่เป็นไปได้หลายประการสำหรับวิธีการคำนวณ $A_1$ จากนี้. เห็นได้ชัดว่าโคโดเมนของ $H'$ ยังเป็น $G$. แปลความหมายนี้เป็นสำนวนใน $G$ (ที่มีคนถามก่อนหน้านี้ว่า วิธีคำนวณ $x^{1/y}$)อย่างไรก็ตาม จะหมายถึงการแก้ปัญหาลอการิทึมแบบไม่ต่อเนื่องของเส้นโค้งวงรี ความปลอดภัยของโครงร่างทั้งหมดในกระดาษขึ้นอยู่กับสิ่งที่ยากจะเข้าใจ $G$ ถูกเลือก ดังนั้นฉันคิดว่าการตีความของการดำเนินการโดยใช้การดำเนินการภาคสนามอาจไม่สมเหตุสมผล - และฉันคิดว่าผู้เขียนต้องตั้งใจให้การดำเนินการดำเนินการกับจำนวนดิบที่ระบุจุดในกลุ่ม เป็นตัวเลือก

คำถามของฉันคือ: เนื่องจาก Curve25519 ใช้จุดวงรีที่บีบอัดซึ่งสามารถระบุได้ด้วยจำนวนเต็มเดียว $x$การดำเนินการที่ปลอดภัยและถูกต้องจะต้องคำนวณ $A_1 = ({\sigma_i \over A_0})^{1/i}$ บน $x$ พิกัดจุด?

ปัญหาหนึ่งที่ฉันเห็นได้จากสิ่งนี้ก็คือ $1/8$ ของค่าทั้งหมดคือจุดบนเส้นโค้งสำหรับ Curve25519 และหากอัลกอริทึมการเซ็นชื่อรับรองได้ $\sigma_i$ ออกมาตามทางโค้งแต่ไม่ใช่ $\sigma_j$ สำหรับ $i \neq j$ซึ่งอาจตัดเอา 7 ใน 8 ของผู้เข้าร่วมที่เป็นผู้รับสายได้ว่าเป็นแหล่งที่มาของลายเซ็น (ซึ่งจะเป็นการรั่วไหลของข้อมูลที่ยอมรับไม่ได้)

การแก้ไขที่สมเหตุสมผลสำหรับสิ่งนี้คือการคำนวณโปรโตคอลการตรวจสอบ $\sigma_j^{'}$ จาก $A_0$ และ $A_1$แล้วเพิ่มค่า x ประสานกันซ้ำๆ จนถึงจุดบนเส้นโค้ง ($\sigma_j$) ได้รับ? จากนั้นผู้ลงนามสามารถลด $x$ พิกัด $\sigma_i$ ซ้ำๆ เพื่อให้ได้ขนาดใหญ่ที่สุด $X < \sigma_i$ ที่ไม่อยู่บนเส้นโค้ง แล้วสุ่มตัวอย่างพิกัด x ที่น่าจะเท่ากัน $x \leftarrow [X+1..\sigma_i]$และใช้ในการคำนวณ $A_1$. ด้วยวิธีนี้ ฝ่ายตรงข้ามจะไม่สามารถบอกได้ว่าได้รับหรือไม่ $เจ$ ค่าเป็น $i$, แต่ $\sigma_i$ ค่าจะถูกจำกัดเพื่อป้องกันการโจมตีในกระดาษ มีปัญหาใด ๆ ที่ชัดเจนเกี่ยวกับการใช้งานนี้ที่ฉันขาดหายไปหรือไม่?

knaccc avatar
es flag
$H'$ เป็นฟังก์ชัน hash-to-point โดยที่ point ควรอยู่ในกลุ่มย่อยเดียวกันกับ $G$ การใช้ Ring Signature ที่เชื่อมโยงได้ของ Monero ตีความแฮช keccak-256 เป็นจุด ed25519 แล้วคูณด้วย 8 เพื่อให้แน่ใจว่าจุดนั้นอยู่ในกลุ่มย่อยที่ถูกต้อง ดูบทความที่นี่ https://github.com/monero-project/research-lab/blob/master/whitepaper/ge_fromfe_writeup/ge_fromfe.pdf และการใช้งาน python ที่นี่ https://github.com/monero-project/ mininero/blob/c5fcee9d8ec8c302bca7fda8ce79b68e20d31c34/mininero.py#L238
knaccc avatar
es flag
$P^{1/i}$ ไม่ละเมิดสมมติฐานการบันทึกแบบแยกส่วน เป็นเพียงการคูณสเกลาร์ของ $P$ ด้วยอินเวอร์สมัลติทิพลิเคทีฟแบบโมดูลาร์ของ $i$
in flag
@knaccc ขอบคุณที่ชี้ให้เห็น - อย่างที่คุณทราบอย่างถูกต้อง มันคล้ายกับการค้นหารูท ไม่ใช่ DLP และมีประสิทธิภาพในการคำนวณ ฉันสร้างการทดสอบขนาดเล็กสำเร็จโดยใช้: ``` pointMul iInv (sigmai `pointAdd` (pointNegate a0))``` กับ ```iInv = inverseFermat i qPrime``` และอย่างน้อยสำหรับกรณีทดสอบที่ฉัน พยายามสร้าง `sigmai` ขึ้นใหม่ และสร้างค่าบนเส้นโค้งเท่านั้น

โพสต์คำตอบ

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