Score:0

การเข้ารหัส (DSA) รับค่า k และรหัสส่วนตัว

ธง ng

ฉันกำลังทำงานในการเข้ารหัสและต้องการคำแนะนำ (โปรดอย่าแก้ปัญหา)

งานคือ:

ฉันสามารถส่งข้อความ (หมายเลขดิจิทัล) ไปยัง Docker Container การตอบสนองคือค่า p,q,g,z1,s,r และ hashvalue(m+z1) ดังนั้น... เมื่อฉันป้อนหมายเลข 1 ฉันจะได้รับค่า DSA ที่ใช้ในการเซ็นชื่อ

ไม่ทราบคือค่าของ k, z2 และ x (คีย์ส่วนตัว)

เป็นที่ทราบกันดีว่า p,q,g,z1,z2 ได้รับการแก้ไขสำหรับทุกข้อความ ดังนั้นพวกเขาจึงเหมือนกันทุกครั้ง

เป็นที่ทราบกันดีว่าค่าของ k ถูกคำนวณ:

k = g^(ค่าแฮช + z2) mod q

ดังนั้น - ในความเข้าใจของฉัน: เพื่อหาค่าของ k ฉันต้องหาข้อความ 2 ข้อความที่ใช้ k เดียวกัน ถ้าฉันทำสำเร็จฉันสามารถคำนวณคีย์ด้วย

k = (M1 - M2) / (s1 - s2)

แต่ฉันจะทราบได้อย่างไรว่า 2 ข้อความนั้นใช้ k เดียวกันกับค่าที่กำหนด

สิ่งที่ฉันทำจริง:

ฉันเขียนโปรแกรม Python ซึ่งวนซ้ำทุกข้อความโดยเริ่มจากข้อความ = 0 จากนั้นคำนวณ k ด้วยสูตรและละเว้น z2 (ซึ่งฉันคิดว่าผิดอย่างแน่นอน ... ) การบันทึกค่าจาก k ที่คำนวณได้ในอาร์เรย์ จากนั้นขึ้นข้อความ += 1 และทำเช่นเดียวกัน หลังจากนั้นฉันจะเปรียบเทียบ k จากข้อความจริงกับค่าที่บันทึกไว้จากข้อความก่อนหน้าว่ามันเหมือนกันหรือไม่ แต่ตอนนี้ฉันอยู่ที่ข้อความ 2000000 ดังนั้น - ฉันคิดว่าฉันทำสิ่งผิด

ฉันผิดทางหรือเปล่า?

ฉันสามารถดึงค่าเพิ่มเติมด้วยข้อความอื่นๆ ได้หากจำเป็น ใครสามารถช่วยฉันได้บ้าง

fgrieu avatar
ng flag
ไม่ชัดเจนว่าคำถาม z1 และ z2 คืออะไร [DSA จริง](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf#page=28) แฮชข้อความ ไม่ใช่การต่อข้อความและ z1 บางส่วน (น้อยกว่ามาก ผลบวก) และผลลัพธ์จะไม่เรียกว่า z2 คำแนะนำ: ก่อนอื่นให้ค้นหาว่าอะไรคืออะไรโดยการตรวจสอบลายเซ็นที่คุณได้รับ

โพสต์คำตอบ

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