ทำความเข้าใจ Birthday Attack (โจมตีวันเกิด) และ Birthday Paradox
ตัวอย่าง Birthday Attack
ไม่ได้หมายความว่ามีปาร์ตี้วันเกิดเกิดขึ้นจริง แต่มาจาก Birthday Paradox ความน่าจะเป็นที่คน 2 คนในกลุ่ม n คนจะมีวันเกิดเดียวกัน สูงกว่าที่คิดมาก ถ้ามี 23 คน โอกาส ~50% ถ้า 70 คน โอกาส ~99.9%
Birthday Attack เป็นรูปแบบของ Brute Force อย่างไร?
เป็น Cryptographic Attack แบบ Brute Force ที่ใช้ Birthday Paradox รวมการพยายามแบบสุ่มกับจำนวน Permutation ที่คงที่ เพื่อหา Collision (การชนกันของค่าแฮช) เร็วกว่า Brute Force ธรรมดา
คำนวณ Birthday Attack อย่างไร?
ความน่าจะเป็นประมาณ: n=60 → 99.4%, n=70 → 99.9%, n=75 → 99.97%, n=100 → 99.99997% สูตรโดยประมาณ: p(n) ≈ 1 - e^(-n²/2N) โดย N = จำนวนค่าที่เป็นไปได้ (เช่น 2^128 สำหรับ 128-bit hash)
Birthday Attack โจมตี Hash Function อย่างไร?
เป้าหมายคือหา Collision ภายใน r^(1/2) trials (r = ขอบเขตของ Hash Function) สำเร็จถ้าหาเจอคู่ i,j ที่ x_i ≠ x_j แต y_i = y_j (ค่าแฮชชนกัน)
อะไรเปราะบางต่อ Birthday Attacks?
Digital Signatures (ลายเซ็นดิจิทัล) อันตรายเพราะการลงนามมักแฮชก่อน (H(m)) แล้วค่อยลงนาม H(m) ด้วย Private Key โจมตีอาจหลอกให้ลงนามสัญญาปลอมโดยหา Collision
อัลกอริทึมไหนเปราะบางต่อ Birthday Attacks?
MD5 สามารถโจมตีแบบ Birthday Attack ได้ (เพราะพื้นที่ 128-bit เล็กเกินไป)
Birthday Attack เป็นการโจมตีประเภทไหน?
Cryptographic Attack ที่ใช้ Birthday Problem ในทฤษฎีความน่าจะเป็น เพื่อ exploit การชนกันของค่าแฮช ใช้ได้กับ 2 ฝ่ายขึ้นไปที่สื่อสารกัน
Birthday Attack หมายถึงอะไร?
จาก Wikipedia: การโจมตีทางเข้ารหัสที่พิงพา Birthday Problem โจมตีอาจใช้หลอกลวง 2 ฝ่ายขึ้นไปที่สื่อสารกัน
Birthday Attacks ทำงานอย่างไร?
ใช้ Birthday Paradox: ความน่าจะเป็นที่ 2 คนใน n คนสุ่ม จะมีวันเกิดเดียวกัน สูงกว่าที่คาดคิด มาประยุกต์กับ Hash Function: หา Input 2 ค่าที่ให้ Hash เดียวกัน (Collision) ได้ง่ายกว่าการหา Pre-image
โอกาสที่คนอื่นมีวันเกิดเดียวคุณคือเท่าไหร่?
โอกาสประมาณ 1/365 (0.27%) แต่ในกลุ่ม 23 คน โอกาสที่จะมีคู่นึงตรงกัน ~50% เพราะจำนวนคู่ที่เป็นไปได้ = 23×22/2 = 253 คู่