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

อะไรทำให้ฟังก์ชันแฮชดี

สำรวจความต้านทานต่อการหาอินพุตก่อนภาพ ความต้านทานต่อการชนกัน และเอฟเฟกต์หิมะถล่ม

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

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

ฟังก์ชันแฮชเชิงเข้ารหัสจะแปลงอินพุตใด ๆ ให้เป็นค่าแฮชที่มีความยาวคงที่ ในบทเรียนนี้เราจะศึกษาคุณสมบัติที่ทำให้ฟังก์ชันแฮชมีความปลอดภัยเชิงเข้ารหัส

เอาต์พุตแบบกำหนดแน่นอน

Hash(M) จะให้เอาต์พุตเดียวกันเสมอเมื่อได้รับอินพุตเดียวกัน SHA-256('hello') จะเป็น aabb... เสมอ ไม่ว่าจะคำนวณที่ใดหรือเมื่อใด

ความยาวเอาต์พุตคงที่

SHA-256 จะให้เอาต์พุตขนาด 256 บิตเสมอ (32 ไบต์ = อักขระเลขฐานสิบหก 64 ตัว) SHA-512 จะให้เอาต์พุตขนาด 512 บิตเสมอ อินพุตอาจมีขนาด 0 ไบต์หรือ 10 GB ก็ได้ แต่ขนาดเอาต์พุตจะไม่เปลี่ยนแปลง

ความต้านทานต่อการหา pre-image

เมื่อกำหนดแฮช h แล้ว จะต้องเป็นไปไม่ได้ในทางคำนวณที่จะค้นหาข้อความ M ใด ๆ ที่ทำให้ Hash(M) = h คุณสมบัติทางเดียว: คุณไม่สามารถย้อนกลับแฮชได้

ความต้านทานต่อการหา second pre-image

เมื่อกำหนด M1 แล้ว จะต้องเป็นไปไม่ได้ในทางคำนวณที่จะค้นหา M2 ≠ M1 ที่ทำให้ Hash(M1) = Hash(M2) คุณสมบัตินี้ป้องกันผู้โจมตีไม่ให้แทนที่ข้อความด้วยข้อความอื่นที่มีแฮชเดียวกัน

ความต้านทานต่อการชนกัน

ต้องเป็นไปไม่ได้ในทางคำนวณที่จะค้นหาข้อความสองข้อความใด ๆ (ANY) ที่ M1 ≠ M2 และ Hash(M1) = Hash(M2) คุณสมบัตินี้ยากกว่า second pre-image แต่มีความแข็งแกร่งน้อยกว่าที่ฟังดู เพราะหลักรังนกยืนยันว่าการชนกันมีอยู่จริง

ปรากฏการณ์หิมะถล่ม

การพลิกบิตเพียงบิตเดียวในอินพุตควรเปลี่ยนบิตของเอาต์พุตประมาณ 50% SHA-256('hello') และ SHA-256('hellp') แตกต่างกันประมาณ 128 บิต ความไวนี้ช่วยป้องกันการโจมตีด้วยการค้นหาแบบเพิ่มทีละน้อย

โครงสร้าง Merkle-Damgård

MD5, SHA-1 และ SHA-2 ใช้โครงสร้าง Merkle-Damgård โดยแบ่งอินพุตเป็นบล็อกแล้วต่อบล็อกเหล่านั้นผ่านฟังก์ชันบีบอัด ค่าลูกโซ่สุดท้ายคือแฮช การออกแบบนี้มีช่องโหว่ต่อการโจมตีแบบขยายความยาว

โครงสร้างฟองน้ำ

SHA-3 (Keccak) ใช้โครงสร้างฟองน้ำ โดยดูดซับอินพุตเข้าสู่ state แล้วบีบเอาต์พุตออกมา โครงสร้างฟองน้ำต้านทานการโจมตีแบบขยายความยาวและยืดหยุ่นกว่า Merkle-Damgård

ขอบเขตวันเกิด

การโจมตีแบบวันเกิดค้นหาการชนกันได้ด้วยการดำเนินการ 2^(n/2) ครั้ง ไม่ใช่ 2^n ครั้ง SHA-256 มีเอาต์พุต 256 บิต ดังนั้นความต้านทานต่อการชนกันจึงอยู่ที่ประมาณ 2^128 ส่วน SHA-1 (160 บิต) อยู่ที่ประมาณ 2^80 และในทางปฏิบัติถูกทำลายแล้ว

แฮชเทียบกับ MAC และลายเซ็น

แฮช: ไม่มีคีย์และให้เฉพาะความถูกต้องครบถ้วน MAC (HMAC): แฮชที่ใช้คีย์และให้ทั้งความถูกต้องครบถ้วนกับความเป็นของแท้ ลายเซ็นดิจิทัล: ใช้คีย์แบบอสมมาตรและให้ความถูกต้องครบถ้วน ความเป็นของแท้ และการปฏิเสธความรับผิดไม่ได้

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

คุณสมบัติใดทำให้การค้นหาอินพุตใด ๆ ที่สร้างเอาต์พุตแฮชที่กำหนดไว้เป็นไปไม่ได้ในทางคำนวณ

สรุป

ตอนนี้คุณเข้าใจคุณสมบัติด้านความปลอดภัยของฟังก์ชันแฮชแล้ว ต่อไปเราจะศึกษา MD5 ซึ่งครั้งหนึ่งเคยเป็นมาตรฐาน แต่ปัจจุบันถูกทำลายโดยสมบูรณ์แล้ว

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

บทเรียน “อะไรทำให้ฟังก์ชันแฮชดี” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “อะไรทำให้ฟังก์ชันแฮชดี”

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

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

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

บทเรียน “อะไรทำให้ฟังก์ชันแฮชดี” ใช้เวลานานแค่ไหน

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

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

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

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

  1. อะไรทำให้ฟังก์ชันแฮชดี
  2. MD5: ประวัติ การใช้งาน และเหตุผลที่เสียความปลอดภัย
  3. อธิบายตระกูล SHA-1 และ SHA-2
  4. การประยุกต์ใช้แฮช: ผลรวมตรวจสอบ HMAC และ Git
← กลับไปที่ Cryptology Academy