Score:1

การตัดแต่งอินพุตแบบสุ่มอย่างสม่ำเสมอสำหรับคีย์ส่วนตัวของเส้นโค้งวงรี

ธง ru

ลองนึกภาพว่ามีเครื่องแบบ 256 บิต ป้อนข้อมูล จาก CSPRNG สมมติว่ามีเส้นโค้งเช่น secp256r1 ซึ่งมีลำดับเส้นโค้งน้อยกว่า 256 บิตเล็กน้อย

เราไม่สามารถเพียงแค่ mod (อินพุต, curve_order) เพราะมันจะแนะนำโมดูโลอคติ จะเกิดอะไรขึ้นถ้าเราตัด 256 บิตเป็น 255 บิตซึ่งน้อยกว่าคำสั่งเส้นโค้ง จากนั้นค่าทั้งหมดภายใน 255 บิตจะมีโอกาสปรากฏเท่ากัน

ดูเหมือนว่า ed25519 จะทำเช่นนั้นด้วยคำสั่งโค้ง ~ 252 บิต - ปรับ 3 บิต

การสุ่มตัวอย่างการปฏิเสธจาก NIST SP 800-56A rev 3 หัวข้อ 5.6.1.2.2 ไม่ใช่เวลาคงที่ ดังนั้นจึงควรมองหาสิ่งที่ง่ายกว่า

คำถามเพิ่มเติม: จะเกิดอะไรขึ้นถ้าเราปรับ 1 บิตสุดท้ายด้วยเพื่อให้คีย์นั้น 0 และ 1 จะไม่ปรากฏขึ้นโดยใช้ |= 2 ที่จะบังคับให้เป็น 1 เสมอ (เหมือนกับที่เราบังคับให้เริ่มต้นเป็น 0 เสมอ?

knaccc avatar
es flag
เหตุใดจึงสำคัญสำหรับกระบวนการทั้งหมดที่จะเป็นเวลาคงที่ การทดสอบตัวเลขสุ่มแต่ละตัวให้อยู่ในช่วงเวลาคงที่เป็นสิ่งสำคัญ แต่ฉันไม่เห็นเหตุผลที่จะต้องวนซ้ำจำนวนครั้งที่ไม่แน่นอนจะเป็นปัญหา
ru flag
สิ่งนี้มีไว้เพื่อความเรียบง่ายเท่านั้น ไม่ใช่สำหรับ "ความตรงต่อเวลา" ในความหมายดั้งเดิม/ความปลอดภัย
knaccc avatar
es flag
โปรดทราบว่าสำหรับเทคนิคที่ฉันได้อธิบายไว้ในคำตอบ หากคุณวนซ้ำ 29 ครั้งเสมอ นั่นจะล้มเหลวในการวนซ้ำ $1$ ในทุกๆ $2^{128}$ ครั้ง นั่นจะมีคุณสมบัติเป็นเวลาคงที่ แต่ฉันคิดว่าจะไม่มีคุณสมบัติเป็น "ง่าย" ตามความต้องการของคุณ ฉันไม่เห็นวิธีอื่นที่จะมีสเกลาร์ที่เป็นกลางอย่างแท้จริง
Score:1
ธง es

นี่คือวิธีที่ Monero codebase สร้างสเกลาร์แบบสุ่มเพื่อใช้กับ ed25519:

สำหรับเส้นโค้ง ed25519 คำสั่ง $\ell$ ของกลุ่มของจุดฐานคือ $2^{252}+27742317777372353535851937790883648493$.

เพื่อสร้างจำนวนสุ่มที่เป็นกลางน้อยกว่า $\ell$ก่อนอื่นเราจะพิจารณาว่าผลคูณสูงสุดของ $\ell$ ที่สามารถใส่ได้ 32 ไบต์คือ $15$.

ในการสร้างหมายเลขสุ่มที่ไม่เอนเอียง เราสร้างลำดับสุ่ม 32 ไบต์ซ้ำๆ และทดสอบว่ามีค่าน้อยกว่า $15\ell$. เมื่อเราพบจำนวนดังกล่าวแล้ว เราก็ลดจำนวนนี้ลงได้ $mod\ \ell$ โดยไม่แนะนำอคติแบบโมดูโล ความน่าจะเป็นในการหาหมายเลขสุ่มที่เหมาะสมในการวนซ้ำครั้งแรกนั้นมีค่าประมาณ 94%

เทคนิคเดียวกันนี้ใช้กับ secp256r1 ซึ่งคุณจะใช้ $3 \ell$ แทน $15\ell$ เนื่องจากลำดับของกลุ่มของจุดฐานสำหรับ secp256r1 มีขนาดใหญ่กว่า (ดู 2.4.2 พารามิเตอร์ที่แนะนำ secp256r1).ความน่าจะเป็นในการหาหมายเลขสุ่มที่เหมาะสมในการวนซ้ำครั้งแรกนั้นมีค่าประมาณ 95%

โพสต์คำตอบ

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