Score:3

ฉันสามารถหลีกเลี่ยงการสร้าง 512 บิต k (และ d) สำหรับ ECDSA ตาม P-521 ได้หรือไม่

ธง vu

ฉันใช้ไลบรารีการเข้ารหัสแบบงานอดิเรก และฉันอยู่ในส่วนที่ใช้การเข้ารหัสแบบวงรีโค้ง ฉันได้ใช้งานและทดสอบ 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$?

kelalaka avatar
in flag
ทำไมคุณไม่เลือกบิตสุ่มแบบเดียวกัน คุณกำลังวางแผนที่จะสร้างรหัสลับ $d$ จากรหัสผ่านของผู้ใช้หรือไม่? ไม่ใช่ $s = k^{-1} (z + rd)$ คุณวางแผนที่จะใช้ ECDSA เชิงกำหนดหรือไม่
DannyNiu avatar
vu flag
@kelalaka คุณพลาดจุดของฉัน ฉันวางแผนที่จะสร้างเอนโทรปี 512 บิตบนเส้นโค้ง P-521 เท่านั้น แต่ฉันไม่แน่ใจว่าจะปลอดภัยหรือไม่
kelalaka avatar
in flag
ฉันตระหนักถึงมัน ฉันแค่ถามว่าทำไมคุณถึงต้องการสิ่งนี้
DannyNiu avatar
vu flag
@kelalaka เพื่อให้ง่ายต่อการใช้งานอย่างที่ฉันพูดในคำถาม คีย์ 521 บิตต้องมีการมาสก์เพิ่มเติมหลังจากสร้าง 65 ไบต์แบบสุ่ม ดังนั้นฉันจึงขอข้ามไป นอกจากนี้ยังช่วยประหยัดพื้นที่สแต็คเล็กน้อยและดีกว่าสำหรับการจัดตำแหน่ง Datum
DannyNiu avatar
vu flag
@kelalaka ฉันใช้สูตรอื่นใน Q2 เพราะมันง่ายกว่าในการวิเคราะห์ และผลลัพธ์ของมันสามารถนำไปใช้กับสูตร DSS อื่นได้ง่ายกว่า หรืออย่างน้อยฉันก็คิดอย่างนั้น
kelalaka avatar
in flag
คุณยังไม่รู้เกี่ยวกับ ["การโจมตีแบบลำเอียง" บน (EC)DSA ทำงานอย่างไร](https://crypto.stackexchange.com/q/44644/18298)
DannyNiu avatar
vu flag
ฉันไม่เก่งคณิตศาสตร์คริปโต และฉันคิดว่านี่น่าจะเป็นอคติประเภทอื่น
kelalaka avatar
in flag
นี่คือวิดีโอ https://www.youtube.com/watch?v=6ssTlSSIJQE
Score:6
ธง ru

อย่าทำแบบนี้!

อคติใน ECDSA nonce ในหลายๆ ลายเซ็นจะทำให้คีย์การลงนามรั่วไหลเมื่อเวลาผ่านไป ดูตัวอย่างกระดาษ Biased Nonce Sense: Lattice โจมตีลายเซ็น ECDSA ที่อ่อนแอใน Cryptocurrencies โดย Breiner และ Heninger

ไตรมาสที่ 2 ทั่วไปเรียกว่าปัญหาจำนวนที่ซ่อนอยู่ และแน่นอนว่าปัญหานี้ได้รับการแก้ไขในกระดาษเมื่อมีหลายรายการ $r$ และ $s$ ถูกจัดหา.

Score:4

ไม่! แม้แต่การสร้าง 520 บิต $k$ น่าจะเป็นช่องโหว่ที่ใช้ประโยชน์ได้

ผลลัพธ์ปี 2020 ในหัวข้อคือ LadderLeak: ทำลาย ECDSA ด้วยการรั่วไหลของ Nonce น้อยกว่าหนึ่งบิต. §5 กล่าวถึงค่าใช้จ่ายโดยประมาณสำหรับการโจมตี: เป็นไปไม่ได้จริงๆ สำหรับค่าอคติบิตเดียวที่เกินกว่า P256 แต่ค่าอคติที่มากขึ้นทำให้การโจมตีถูกลง และการโจมตีจะดีขึ้นตามกาลเวลาเท่านั้น

ใช้ ECDSA ที่กำหนดขึ้น เว้นแต่คุณจะมีเหตุผลที่ดีที่จะใช้ ECDSA แบบสุ่ม ECDSA เชิงกำหนดสามารถใช้ HMAC_DRBG เป็นกล่องดำได้ คุณเพียงแค่สร้างอินสแตนซ์ HMAC_DRBG ด้วยพารามิเตอร์ที่จำเป็น ข้อได้เปรียบของการเป็นอัลกอริทึมเชิงกำหนดก็คือ หากการทดสอบที่ทราบคำตอบของคุณให้ผลลัพธ์ที่คาดหวัง คุณจะมีความมั่นใจค่อนข้างสูงว่าคุณได้ดำเนินการอย่างถูกต้องระบบส่วนใหญ่ที่ใช้ลายเซ็นจะมี RNG อยู่แล้ว และ HMAC_DRBG ก็เป็น DRBG ที่ค่อนข้างดี (ไม่ใช่ระบบที่เร็วที่สุด แต่ใช้งานได้ค่อนข้างง่ายและสอดคล้องกับ FIPS)

หากคุณใช้ ECDSA แบบสุ่ม ฉันขอแนะนำให้ใช้งานโดยทำ ECDSA เชิงกำหนดและป้อนการสุ่มเพิ่มเติมใน HMAC_DRBG ด้วยวิธีนี้ หากคุณทำผิดในส่วนของการสุ่ม มันจะลดระดับลงเป็น ECDSA ที่กำหนดขึ้นอย่างเลวร้ายที่สุด โดยไม่มีความเสี่ยงในการรั่วไหลของ nonce มีเหตุผลสองประการที่คุณอาจชอบ ECDSA แบบสุ่ม: หากเป็นวัตถุประสงค์ด้านความปลอดภัยที่ฝ่ายตรงข้ามไม่สามารถบอกได้ว่าลายเซ็นสองรายการที่สร้างขึ้นแยกกันนั้นมีไว้สำหรับข้อความเดียวกันหรือไม่ (วัตถุประสงค์ด้านความปลอดภัยที่ไม่ธรรมดา) หรือเพราะอาจทำให้บางช่องทางด้านข้าง หรือจุดอ่อนแบบ Fault Injection ที่ยากแก่การถูกโจมตี (ในทางกลับกัน มันยังทำให้จุดอ่อนบางอย่างถูกโจมตีได้ง่ายขึ้นอีกด้วย)

DannyNiu avatar
vu flag
ขอบคุณ. โปรเจ็กต์ของฉันมีชุดโมดูลาร์ของการใช้งานแฮช prng และ ecc และแต่ละคอมโพเนนต์สามารถนำกลับมาใช้ใหม่ได้อย่างง่ายดาย ฉันกระตือรือร้นที่จะตรวจสอบให้แน่ใจว่าฉันไม่ได้ทำผิดพลาดด้านความปลอดภัยเมื่อเพิ่ม p521 ใน p256 และ p384 ที่มีอยู่
kelalaka avatar
in flag
ฉันต้องการทราบว่า LadderLeak ใช้ช่องด้านข้างเพื่อปรับปรุงอคติ 2 บิตเป็น $

โพสต์คำตอบ

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