กระดาษลายเซ็น 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$ ค่าจะถูกจำกัดเพื่อป้องกันการโจมตีในกระดาษ มีปัญหาใด ๆ ที่ชัดเจนเกี่ยวกับการใช้งานนี้ที่ฉันขาดหายไปหรือไม่?