ดังนั้นเราจึงสามารถตรวจสอบแต่ละค่าที่เป็นไปได้สำหรับความลับที่ใช้ร่วมกัน
ในทางปฏิบัติ จำนวนค่าที่เป็นไปได้สำหรับความลับที่ใช้ร่วมกันนั้นมากเกินไปสำหรับการสแกนความเป็นไปได้ทั้งหมดที่จะนำไปใช้ได้จริง - มีการโจมตีที่ง่ายกว่าเสมอ และดูเหมือนว่าคุณจะคาดเดาได้ถูกต้อง รับรู้ถึงความลับที่แชร์โดยอ้างอิงจาก $g, g^a \bmod p, g^b \bmod p$ เชื่อว่าเป็นปัญหาหนัก (จริงๆ เราเรียกมันว่า "Decisional Diffie-Hellman problem")
การโจมตีหนึ่งครั้งคือการรับ $g$ และ $g^a \bmod p$ และพยายามที่จะกู้คืน $a$ (นั่นคือแก้ปัญหาบันทึกแยก) - เมื่อเรามี $a$เราสามารถคำนวณ $B^a \bmod p$ (ซึ่งเป็นความลับที่ใช้ร่วมกัน) และนั่นคือความลับที่ใช้ร่วมกัน
อีกวิธีหนึ่งที่เป็นไปได้คือโจมตีด้านสมมาตรของสิ่งต่าง ๆ - เราเพิกเฉยต่อการทำงานของ DH โดยสิ้นเชิง และเพียงแค่ทำการโจมตีด้วยกำลังดุร้ายบนปุ่มสมมาตร BTW: การไม่รู้ข้อความธรรมดาที่แน่นอนไม่ใช่ปัญหา แม้ว่าเราจะไม่รู้ว่ามันคืออะไรกันแน่ แต่โดยทั่วไปแล้วเรารู้เรื่องนี้มากพอที่จะแยกความแตกต่างจากคำที่ไม่มีความหมายแบบสุ่ม (ซึ่งเป็นสิ่งที่คุณได้รับเมื่อคุณพยายามถอดรหัสโดยใช้คีย์ผิด) นอกจากนี้ หากคุณใช้ AEAD อัลกอริทึม คีย์ถูกใช้เพื่อสร้างแท็ก (เช่นเดียวกับการเข้ารหัส) และแท็กยังสามารถใช้เพื่อแยกความแตกต่างของคีย์ที่ถูกต้อง (แม้ว่าข้อความธรรมดาจะเป็นคำที่ไม่มีความหมายแบบสุ่มก็ตาม)
สำหรับการโจมตีทั้งสองแบบนี้ เรามักจะเลือกพารามิเตอร์ความปลอดภัย (เช่น ขนาดของ $p$ และขนาดของคีย์สมมาตร) เพื่อทำให้ทั้งสองวิธีนี้เป็นไปไม่ได้