Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ข้อกำหนดของฟังก์ชันแฮชในความปลอดภัยข้อมูลคืออะไร?

ฟังก์ชันแฮชแบบเข้ารหัส (Cryptographic Hash Function)

ฟังก์ชันแฮชแบบเข้ารหัสคือการแปลงข้อมูลนำเข้า (Message) ขนาดผันผวน ให้กลายเป็นสตริงขนาดคงที่ เรียกว่า ค่าแฮช (Hash Value) หรือ Message Digest

สัญลักษณ์: h = H(M) โดย M = ข้อความความยาวผันผวน, H(M) = ค่าแฮชความยาวคงที่

คุณสมบัติที่จำเป็นของฟังก์ชันแฮชที่ปลอดภัย

ฟังก์ชันแฮช H ต้องมีคุณสมบัติ 5 ข้อสำคัญ:

  1. รับนำเข้าขนาดใดก็ได้: สามารถประมวลผลข้อมูลบล็อกขนาดไม่จำกัด
  2. คำนวณง่าย (Efficiency): H(x) คำนวณได้รวดเร็วทั้งฮาร์ดแวร์และซอฟต์แวร์
  3. คุณสมบัติหนึ่งทาง (Pre-image Resistance / One-way): ถ้ารู้ h ไม่สามารถหา x ที่ H(x) = h ได้ในเวลาที่เป็นไปได้ (Computationally Infeasible)
  4. ความต้านทานการชนกันแบบอ่อน (Weak Collision Resistance / Second Pre-image Resistance): ถ้ารู้ x ไม่สามารถหา y ≠ x ที่ H(y) = H(x) ได้
  5. ความต้านทานการชนกันแบบแข็ง (Strong Collision Resistance): ไม่สามารถหาคู่ (x, y) ใดๆ ที่ x ≠ y แต่ H(x) = H(y) ได้

การประยุกต์ใช้ทั่วไป

  • ตรวจสอบรหัสผ่าน: เก็บแฮชของรหัสผ่าน แทนรหัสผ่านจริง เมื่อล็อกอิน จะแฮชรหัสที่ป้อนมาเปรียบเทียบ
  • ความสมบูรณ์ของข้อมูล (Data Integrity): ส่งข้อความพร้อมค่าแฮช ผู้รับคำนวณแฮชใหม่เปรียบเทียบ ถ้าเท่ากัน ข้อมูลไม่ถูกเปลี่ยนแปลง
  • ลายเซ็นดิจิทัล (Digital Signatures)
  • การสร้างเลขสุ่มนิยาม (Pseudo-random Generation)
  • การประทับเวลาดิจิทัล (Digital Timestamping)

หลักการทำงาน

แฮชทำงานเหมือน "ลายนิ้วมือ" ของข้อมูล: ใครรู้ข้อมูลต้นฉบับก็สามารถคำนวณแฮชได้ แต่ใครรู้แฮจเพียงอย่างเดียว ไม่สามารถย้อนกลับหาข้อมูลต้นฉบับได้ (One-way) และยากมากที่จะหาข้อมูลอีกชุดที่ให้แฮชเหมือนกัน (Collision Resistance)