ฉันกำลังทำงานในการเข้ารหัสและต้องการคำแนะนำ (โปรดอย่าแก้ปัญหา)
งานคือ:
ฉันสามารถส่งข้อความ (หมายเลขดิจิทัล) ไปยัง 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 ดังนั้น - ฉันคิดว่าฉันทำสิ่งผิด
ฉันผิดทางหรือเปล่า?
ฉันสามารถดึงค่าเพิ่มเติมด้วยข้อความอื่นๆ ได้หากจำเป็น ใครสามารถช่วยฉันได้บ้าง