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

อธิบายตระกูล SHA-1 และ SHA-2

ทำความเข้าใจจุดอ่อนของ SHA-1 และความแตกต่างระหว่าง SHA-256 กับ SHA-512

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

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

SHA-1 และ SHA-2 เป็นอัลกอริทึมรุ่นต่อจาก MD5 ที่ NSA ออกแบบขึ้น ปัจจุบัน SHA-1 ถูกยกเลิกการใช้งานแล้ว ส่วน SHA-256 และ SHA-512 ยังคงเป็นมาตรฐานอุตสาหกรรมสำหรับการใช้งานส่วนใหญ่

ภาพรวม SHA-1

SHA-1 สร้างค่าแฮชขนาด 160 บิต (20 ไบต์) ออกแบบโดย NSA และเผยแพร่ในปี 1995 ตัวอย่าง: SHA1('hello') = aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

โครงสร้าง SHA-1

SHA-1 ใช้ 80 รอบ แบ่งเป็น 4 ขั้น ขั้นละ 20 รอบ แต่ละขั้นใช้ฟังก์ชันตรรกะที่แตกต่างกัน (Ch, Parity, Maj) และขยายคำข้อมูลนำเข้า 16 คำเป็น 80 คำโดยใช้ XOR และการหมุนบิต

การชนกันของ SHA-1: SHAttered (2017)

ในปี 2017 Google และ CWI Amsterdam สร้างการชนกันของ SHA-1 ที่ใช้งานได้จริงเป็นครั้งแรก หรือที่เรียกว่าการโจมตี SHAttered ได้ไฟล์ PDF สองไฟล์ที่มีค่าแฮช SHA-1 เหมือนกันแต่มีเนื้อหาต่างกัน ต้นทุนประมาณ 6,500 ปีของการใช้ GPU

ตระกูล SHA-2

SHA-2 ประกอบด้วย SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 และ SHA-512/256 ทั้งหมดใช้โครงสร้าง Merkle-Damgård โดย SHA-256 เป็นรูปแบบที่ใช้งานกันมากที่สุด

โครงสร้าง SHA-256

SHA-256 ใช้ 64 รอบกับบล็อกขนาด 512 บิต โดยเก็บคำข้อมูลสถานะ 8 คำ คำละ 32 บิต (a,b,c,d,e,f,g,h) แต่ละรอบผสมคำข้อมูลนำเข้าโดยใช้ฟังก์ชัน Ch, Maj, Σ0 และ Σ1

SHA-256 ใน Python

import hashlib msg = b'hello' digest = hashlib.sha256(msg).hexdigest() print(digest) # 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-512 เทียบกับ SHA-256

SHA-512 ใช้ 80 รอบกับคำข้อมูลขนาด 64 บิต และสร้างผลลัพธ์ขนาด 512 บิต ทำงานได้เร็วกว่าในฮาร์ดแวร์แบบ 64 บิต แต่ให้ค่าไดเจสต์ที่ใหญ่กว่า ให้ใช้ SHA-512 เมื่อต้องการระดับความปลอดภัย 256 บิต

SHA-3 (Keccak)

SHA-3 ได้รับการกำหนดเป็นมาตรฐานในปี 2015 ในฐานะการออกแบบทางเลือก โดยใช้โครงสร้างฟองน้ำแทน Merkle-Damgård จึงไม่เสี่ยงต่อการโจมตีแบบขยายความยาว

การโจมตีแบบขยายความยาวต่อ SHA-2

SHA-256(secret || message) มีช่องโหว่: ผู้โจมตีที่ทราบ Hash(message) สามารถคำนวณ Hash(message || padding || extra) ได้ นี่คือเหตุผลที่ HMAC ใช้โครงสร้างการแฮชสองชั้น

ควรใช้แบบใดเมื่อใด

SHA-256: ใช้งานทั่วไป, TLS, ใบรับรอง และ HMAC ส่วน SHA-512: งานที่ต้องการขอบเขตความปลอดภัยสูงกว่า SHA-3: โพรโทคอลใหม่ที่ไม่ต้องกังวลเรื่องการขยายความยาว ห้ามใช้ SHA-1 หรือ MD5 กับการออกแบบใหม่

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

SHA-3 ใช้โครงสร้างใดที่ทำให้ไม่เสี่ยงต่อการโจมตีแบบขยายความยาว

สรุปทบทวน

คุณเข้าใจวิวัฒนาการของตระกูล SHA แล้ว ต่อไปเราจะศึกษาการใช้งานฟังก์ชันแฮชในทางปฏิบัติ ได้แก่ ค่าตรวจสอบ, HMAC และการใช้ SHA ของ Git

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

บทเรียน “อธิบายตระกูล SHA-1 และ SHA-2” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “อธิบายตระกูล SHA-1 และ SHA-2”

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

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

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

บทเรียน “อธิบายตระกูล SHA-1 และ SHA-2” ใช้เวลานานแค่ไหน

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

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

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

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

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