0Pricing
Cryptology Academy · บทเรียน

คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman

ศึกษาทีละขั้นตอนเกี่ยวกับโพรโทคอล DH และสมมติฐานความยากของลอการิทึมไม่ต่อเนื่อง

คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

ในบทเรียนนี้เราจะติดตามการแลกเปลี่ยนคีย์แบบ Diffie-Hellman ทีละขั้น ตั้งแต่พารามิเตอร์สาธารณะ ไปจนถึงเลขชี้กำลังส่วนตัวของอลิซและบ็อบ และความลับร่วม

พารามิเตอร์สาธารณะ

อลิซและบ็อบตกลงร่วมกันต่อสาธารณะเกี่ยวกับ: - p: จำนวนเฉพาะขนาดใหญ่ (2048+ บิตเมื่อนำไปใช้งานจริง) - g: ตัวสร้างของ Z*p (โดยปกติ g=2 หรือ g=5) อีฟสามารถเห็น p และ g ได้ การรู้ค่าทั้งสองนี้ก็ยัง NOT ทำให้โปรโตคอลเสียหาย

คีย์ส่วนตัวของอลิซ

อลิซสร้างความลับแบบสุ่ม: a (1 < a < p-1) อลิซคำนวณค่าสาธารณะของตน: A = g^a mod p อลิซส่ง A ให้บ็อบ อีฟเห็น A อีฟไม่สามารถหา a จาก A ได้ เนื่องจากเป็นปัญหาลอการิทึมไม่ต่อเนื่อง

คีย์ส่วนตัวของบ็อบ

บ็อบสร้างความลับแบบสุ่ม: b (1 < b < p-1) บ็อบคำนวณค่าสาธารณะของตน: B = g^b mod p บ็อบส่ง B ให้อลิซ อีฟเห็น B อีฟไม่สามารถหา b จาก B ได้

การคำนวณความลับร่วม

อลิซ: S = B^a mod p = (g^b)^a mod p = g^(ab) mod p บ็อบ: S = A^b mod p = (g^a)^b mod p = g^(ab) mod p ทั้งคู่คำนวณ S = g^(ab) mod p เดียวกันได้โดยไม่ต้องส่งค่านี้ผ่านเครือข่ายเลย

ตัวอย่างด้วยตัวเลขขนาดเล็ก

p=23, g=5 อลิซ: a=6, A = 5^6 mod 23 = 8 บ็อบ: b=15, B = 5^15 mod 23 = 19 อลิซ: S = 19^6 mod 23 = 2 บ็อบ: S = 8^15 mod 23 = 2 ✓ อีฟเห็น: 23, 5, 8, 19 แต่ไม่สามารถหา 2 ได้โดยง่าย

ปัญหาลอการิทึมไม่ต่อเนื่อง

เมื่อกำหนด A = g^a mod p ให้ จงหา a สำหรับ p ขนาดใหญ่ (2048 บิต) อัลกอริทึมที่ดีที่สุดที่รู้จักในปัจจุบัน หรือ Number Field Sieve ใช้เวลาแบบกึ่งเอ็กซ์โพเนนเชียล แต่ยังคงยาวนานอย่างมหาศาล โดยใช้การดำเนินการประมาณ ~2^100 ครั้งสำหรับ DH ขนาด 2048 บิต

การโจมตีแบบคนกลาง

DH มีช่องโหว่ต่อ MITM: Mallory ดักจับ A และ B แล้วแทนที่ด้วยค่าของตนเอง เธอจึงมีความลับหนึ่งชุดร่วมกับอลิซ และอีกชุดร่วมกับบ็อบ วิธีแก้คือยืนยันความถูกต้องของการแลกเปลี่ยน เช่น ใช้ใบรับรองหรือการยืนยันตัวตนที่ตกลงร่วมกันล่วงหน้า

จำนวนเฉพาะปลอดภัย

ต้องเลือก p อย่างระมัดระวัง จำนวนเฉพาะปลอดภัย p=2q+1 ซึ่ง q เป็นจำนวนเฉพาะ จะรับประกันว่ากลุ่ม DH ไม่มีกลุ่มย่อยขนาดเล็กที่อาจถูกใช้ประโยชน์ในการโจมตีกลุ่มย่อยขนาดเล็กได้ NIST ระบุกลุ่ม DH ที่ได้รับการรับรองไว้

ขนาดพารามิเตอร์ DH

คำแนะนำของ NIST: - 2048 บิต: ขั้นต่ำสำหรับการนำไปใช้งานใหม่ - 3072 บิต: มีระดับความปลอดภัยเทียบเท่า RSA-3072 - 4096 บิต: ความปลอดภัยระดับสูง ห้ามใช้ Oakley Group 1/2 ที่สร้างไว้ล่วงหน้า (768/1024 บิต) เนื่องจากถูกหน่วยงานระดับรัฐทำลายได้แล้วจากการโจมตี Logjam

การโจมตี Logjam (2015)

Logjam แสดงให้เห็นว่าเซิร์ฟเวอร์ TLS จำนวนมากใช้จำนวนเฉพาะ DH ขนาด 1024 บิตเดียวกัน หน่วยงานระดับรัฐสามารถคำนวณลอการิทึมไม่ต่อเนื่องล่วงหน้าสำหรับจำนวนเฉพาะเหล่านี้ ทำให้ถอดรหัสแบบทันทีได้ วิธีแก้คือใช้จำนวนเฉพาะที่ไม่ซ้ำกันและมีขนาดอย่างน้อย 2048 บิต

ตรวจสอบอย่างรวดเร็ว

ใน DH ที่มี p=23, g=5, a=4 และ b=3 ความลับร่วมคืออะไร

สรุปทบทวน

คณิตศาสตร์ของการแลกเปลี่ยนคีย์ DH ชัดเจนแล้ว ต่อไปเราจะนำแนวคิดเดียวกันไปใช้กับเส้นโค้งวงรีเพื่อสร้าง ECDH ซึ่งให้ความปลอดภัยเท่าเดิมด้วยคีย์ที่มีขนาดเล็กกว่ามาก

คำถามที่พบบ่อย

บทเรียน “คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman”

ศึกษาทีละขั้นตอนเกี่ยวกับโพรโทคอล DH และสมมติฐานความยากของลอการิทึมไม่ต่อเนื่อง คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ปัญหาการกระจายคีย์
  2. คณิตศาสตร์ของการแลกเปลี่ยนคีย์ Diffie-Hellman
  3. ECDH: เส้นโค้งวงรีสำหรับการแลกเปลี่ยนคีย์
  4. การรักษาความลับล่วงหน้าและการแลกเปลี่ยนคีย์ชั่วคราว
← กลับไปที่ Cryptology Academy