ฉันใช้ไลบรารีการเข้ารหัสแบบงานอดิเรก และฉันอยู่ในส่วนที่ใช้การเข้ารหัสแบบวงรีโค้ง ฉันได้ใช้งานและทดสอบ ECDSA กับ P-256 และ P-384 แล้ว โดยที่คีย์ส่วนตัวแบบคงที่และชั่วคราวเป็นแบบ 256 บิตและ 384 บิต ซึ่งดีมาก
สิ่งที่กวนใจฉันคือ P-521 ฉันวางแผนที่จะสร้างสแตติก 512 บิต ($d$) และคีย์ชั่วคราว ($k$) เพื่อให้ใช้งานได้ง่ายขึ้น เนื่องจากฟังก์ชันแฮชส่วนใหญ่ (ไม่รวม XOF) มีเอาต์พุตสูงสุด 512 บิต (ฉันไม่ได้ใช้ฟังก์ชันแฮชเพื่อสร้างคีย์โดยตรง ฉันแค่จัดสรรพื้นที่สแต็กตามความยาวเอาต์พุตของฟังก์ชันแฮชทั่วไป ).
ถ้าฉันทำเช่นนี้ คอมโพเนนต์ลายเซ็นที่เป็นผลลัพธ์ $s$ อาจมีอคติบ้าง แต่เนื่องจากผลิตภัณฑ์ของ $d \cdotk^{-1}$ จะล้น $n$ฉันมีความเชื่อหลอกๆ ว่านี่ไม่ใช่ปัญหาร้ายแรงเกินไป
ดังนั้นฉันจึงถามคำถามที่เกี่ยวข้อง 2 ข้อ:
ไตรมาสที่ 1: ฉันจะหลีกหนีจากการสร้างคีย์แบบคงที่และแบบชั่วคราว 512 บิตสำหรับ ECDSA บน P-521 และไม่เป็นอันตรายต่อความปลอดภัยได้หรือไม่
ไตรมาสที่ 2: สำหรับกรณีทั่วไป กำหนดโมดูลัสเฉพาะ $n$ศัตรูจะได้รับ $s = k \cdot r + d \pmod n$ และ $r$, ที่ไหน $d$ เป็นแบบคงที่และ $r$ เป็นการคำนวณแบบสุ่มเชิงกำหนดจาก $k$; ทั้งสอง $k$ และ $d$ มีน้อยกว่า $\lceil {\log_2{n} \over 4} \rceil$ ของบิตบนสับออก; ฝ่ายตรงข้ามสามารถได้รับส่วนหนึ่งส่วนใดของ $d$ หรือ $k$?