เครื่องมือสร้าง SHA-3/384

5 จาก 2 การให้คะแนน

เครื่องมือสร้าง SHA-3/384 เป็นเครื่องมือฟรีสำหรับแปลงสตริงใด ๆ ให้เป็นแฮชเข้ารหัสลับ SHA3-384 ที่มีความยาวคงที่

SHA3-384 คืออะไร และยังปลอดภัยอยู่หรือไม่?

SHA3-384 เป็นฟังก์ชันแฮชเข้ารหัสลับที่ยังใช้งานอยู่ในปัจจุบัน มีค่าไดเจสต์ขนาด 384 บิต และยังไม่พบวิธีโจมตีอัลกอริทึมที่ใช้ได้จริง ผลลัพธ์มีขนาด 48 ไบต์ โดยทั่วไปเขียนเป็นเลขฐานสิบหก 96 อักขระ

SHA3-384 รับอินพุตได้ทุกความยาวและให้ผลลัพธ์ที่มีความยาวคงที่ ทั้งยังออกแบบมาให้ต้านทานการย้อนหาอินพุตจากค่าแฮช ทำให้การกู้คืนอินพุตจากไดเจสต์แทบเป็นไปไม่ได้ในเชิงการคำนวณ เมื่อใช้เครื่องมือนี้ ไบต์อินพุตชุดเดิมจะให้ไดเจสต์เดิมเสมอ ขณะที่การเปลี่ยนอินพุตแม้เพียงเล็กน้อยควรทำให้ผลลัพธ์แตกต่างออกไปอย่างมาก

ฟังก์ชัน SHA3-384 ที่เครื่องมือนี้ใช้เป็นส่วนหนึ่งของ SHA-3 ซึ่งสถาบันมาตรฐานและเทคโนโลยีแห่งชาติของสหรัฐอเมริกาได้กำหนดเป็นมาตรฐาน FIPS 202 ในปี 2015 ฟังก์ชันนี้พัฒนาจาก Keccak ซึ่งออกแบบโดย Guido Bertoni, Joan Daemen, Michaël Peeters และ Gilles Van Assche และ NIST ได้คัดเลือกให้เป็นผู้ชนะการแข่งขัน SHA-3 ในปี 2012

SHA3-384 ใช้โครงสร้างฟองน้ำ Keccak ที่มี rate 832 บิต และ capacity 768 บิต โครงสร้างฟองน้ำของ SHA3-384 แตกต่างจากโครงสร้างภายในที่ SHA-2 ใช้ โดยคาดว่าจะต้านทานการชนกันแบบทั่วไปได้ที่ระดับ 192 บิต หมายความว่าวิธีที่รู้จักในปัจจุบันต้องใช้ทรัพยากรการคำนวณสูงเกินกว่าจะทำได้จริง เพื่อค้นหาอินพุตสองชุดที่ให้ไดเจสต์เดียวกัน

สร้างแฮช SHA3-384 อย่างไร?

ป้อนสตริงที่ต้องการแฮชให้ตรงทุกอักขระ แล้วนำค่าที่แสดงในช่อง แฮช SHA-3/384 ไปใช้ ผลลัพธ์จะเป็นสตริงเลขฐานสิบหก 96 อักขระ ซึ่งประกอบด้วยตัวเลข 0 ถึง 9 และตัวอักษร a ถึง f

ตัวอย่างเช่น อินพุต invoice-2026-09.pdf จะให้ไดเจสต์ขนาด 384 บิตหนึ่งค่า หากเปลี่ยนตัวอักษรแรกเป็นตัวพิมพ์ใหญ่ เติมช่องว่างท้ายข้อความ หรือแทรกการขึ้นบรรทัดใหม่ ไดเจสต์ที่ได้จะแตกต่างกัน แต่ผลลัพธ์ยังคงมีความยาว 96 อักขระฐานสิบหกในทุกกรณี

การประมวลผลเกิดขึ้นบนเซิร์ฟเวอร์ อินพุตของคุณจะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และจะไม่ถูกจัดเก็บ

ถอดรหัสหรือย้อนกลับ SHA3-384 ได้หรือไม่?

ไม่ได้ แฮช SHA3-384 ถอดรหัสไม่ได้ เพราะการแฮชไม่ใช่การเข้ารหัสและไม่มีกุญแจสำหรับถอดรหัส อัลกอริทึมตั้งใจตัดข้อมูลบางส่วนทิ้งระหว่างสร้างลายนิ้วมือดิจิทัลที่มีความยาวคงที่

อย่างไรก็ตาม ผู้โจมตียังสามารถเดาอินพุตที่เป็นไปได้ ป้อนแต่ละค่าในเครื่องมือนี้เพื่อคำนวณไดเจสต์ SHA3-384 แล้วเปรียบเทียบผลลัพธ์ วิธีนี้ทำได้จริงหากค่าต้นฉบับมาจากชุดข้อมูลขนาดเล็กหรือคาดเดาได้ เช่น รหัสผ่านที่ใช้กันทั่วไป PIN สั้น ๆ หรือหมายเลขอ้างอิงที่ทราบอยู่แล้ว ไดเจสต์ขนาด 384 บิตของ SHA3-384 ไม่ได้ทำให้อินพุตที่อ่อนแอกลายเป็นค่าที่คาดเดาไม่ได้

ด้วยเหตุนี้ จึงห้ามใช้ SHA3-384 เพียงอย่างเดียวเพื่อจัดเก็บรหัสผ่าน การจัดเก็บรหัสผ่านต้องใช้ฟังก์ชันแฮชรหัสผ่านที่ใส่ salt และตั้งใจออกแบบให้ใช้ทรัพยากรสูง เช่น Argon2id, scrypt, bcrypt หรือ PBKDF2 พร้อมกำหนดพารามิเตอร์ให้เหมาะกับระบบที่จัดการบัญชีเหล่านั้น

การใช้งาน SHA3-384 ในปัจจุบัน

SHA3-384 เหมาะกับระบบที่กำหนดให้ใช้ไดเจสต์ SHA-3 ขนาด 384 บิตโดยเฉพาะ หรือระบบที่ออกแบบใหม่และเลือกใช้โครงสร้างฟองน้ำของ SHA-3 ตัวอย่างการใช้งานที่เหมาะสม ได้แก่

  • ตรวจสอบว่าไฟล์ที่ดาวน์โหลดหรือถ่ายโอนมายังคงตรงกับค่า checksum SHA3-384 ที่เผยแพร่ไว้หรือไม่
  • ค้นหาเนื้อหาซ้ำด้วยการเปรียบเทียบไดเจสต์ โดยต้องยืนยันรายการที่คาดว่าตรงกันก่อนลบข้อมูล
  • สร้างตัวระบุเนื้อหาในระบบที่กำหนดมาตรฐานให้ใช้ SHA3-384
  • รักษาความเข้ากันได้กับ API คลังข้อมูล หรือโพรโทคอลเข้ารหัสลับที่ระบุให้ใช้อัลกอริทึมนี้โดยเฉพาะ
  • แฮชข้อมูลก่อนดำเนินการลายเซ็นดิจิทัล ในกรณีที่รูปแบบลายเซ็นที่เกี่ยวข้องรองรับ SHA3-384

ไดเจสต์ SHA3-384 แบบไม่ใช้กุญแจที่เครื่องมือนี้สร้างขึ้นไม่สามารถพิสูจน์ได้ว่าใครเป็นผู้สร้างข้อความ เพราะทุกคนที่มีข้อความดังกล่าวสามารถคำนวณค่าเดียวกันได้ หากต้องยืนยันความแท้จริง ให้ใช้ HMAC-SHA3-384 หรือลายเซ็นดิจิทัลแทนค่าที่ได้จากเครื่องมือนี้

SHA3-256 ให้ไดเจสต์เลขฐานสิบหกที่สั้นกว่า โดยมีความยาว 64 อักขระ และมักเพียงพอเมื่อต้องใช้ SHA-3 แต่ไม่ได้กำหนดให้ผลลัพธ์ต้องมีขนาด 384 บิต ส่วน SHA3-512 ให้ผลลัพธ์ 128 อักขระฐานสิบหก และอาจจำเป็นสำหรับโพรโทคอลที่กำหนดให้ใช้ไดเจสต์ขนาด 512 บิต ควรเลือกตัวแปรตามข้อกำหนดของระบบปลายทาง ไม่ใช่เปลี่ยนขนาดไดเจสต์ตามความสะดวก

ควรจัดการช่องว่าง Unicode และอินพุตว่างอย่างไร?

หากต้องการสร้างค่าเดียวกับเครื่องมือนี้ในระบบอื่น ต้องแฮชลำดับไบต์ที่ตรงกันทุกประการ รวมถึงช่องว่าง เครื่องหมายวรรคตอน การเข้ารหัสอักขระ และรูปแบบการขึ้นบรรทัดใหม่ SHA3-384 ประมวลผลข้อมูลในรูปไบต์ ดังนั้นข้อความที่ดูคล้ายกันอาจให้ผลลัพธ์ต่างกันหากมีรูปแบบข้อมูลเบื้องหลังต่างกัน

  1. Report 7 และ report 7 เป็นอินพุตคนละค่า เพราะตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ต่างกัน
  2. ช่องว่างท้ายข้อความหรืออักขระขึ้นบรรทัดใหม่ที่มองไม่เห็นถือเป็นส่วนหนึ่งของอินพุตและทำให้ไดเจสต์เปลี่ยนไป
  3. ตัวเลขที่ป้อนเป็นข้อความจะถูกแฮชในรูปไบต์ของอักขระ ข้อความ 007 จึงแตกต่างจาก 7
  4. ใช้อักขระที่มีเครื่องหมายกำกับเสียงและอักขระที่ไม่ใช่ละตินเป็นอินพุตได้ แต่ทั้งสองระบบต้องใช้การเข้ารหัสอักขระและการปรับรูปแบบ Unicode แบบเดียวกัน
  5. อินพุตว่างก็มีไดเจสต์ SHA3-384 ที่กำหนดไว้ ไม่ใช่ค่าเดียวกับกรณีที่ไม่มีผลลัพธ์หรือเกิดข้อผิดพลาด
  6. อินพุตที่ยาวมากยังคงให้ผลลัพธ์ขนาด 48 ไบต์ แต่ระยะเวลาประมวลผลขึ้นอยู่กับปริมาณอินพุต

เมื่อเปรียบเทียบผลลัพธ์ ให้ตรวจสอบไดเจสต์ทั้งค่าแทนการดูเพียงส่วนต้นสั้น ๆ และยืนยันด้วยว่าอัลกอริทึมที่ต้องการคือ SHA3-384 จริง เพราะไดเจสต์ SHA-384 จากตระกูล SHA-2 มีความยาวที่แสดงผลเท่ากัน แต่ให้ค่าต่างกัน

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

SHA3-384 กับ SHA-384 เหมือนกันไหม?

ไม่เหมือนกัน SHA-384 อยู่ในตระกูล SHA-2 ส่วน SHA3-384 ใช้โครงสร้างฟองน้ำ Keccak ที่กำหนดเป็นมาตรฐานใน SHA-3 ทั้งคู่สร้างไดเจสต์ขนาด 384 บิต แต่ผลลัพธ์ใช้แทนกันไม่ได้

SHA3-384 กับ Keccak-384 เป็นอัลกอริทึมเดียวกันหรือไม่?

ไม่ใช่ SHA-3 มาตรฐานกับ Keccak ฉบับที่ส่งเข้าประกวดใช้ padding สำหรับการแยกโดเมนต่างกัน ดังนั้น SHA3-384 และ Keccak-384 จึงให้ไดเจสต์ต่างกันเมื่อใช้อินพุตเดียวกัน ก่อนเปรียบเทียบค่า ให้ตรวจสอบว่าข้อกำหนดระบุชื่อใดไว้

ใช้ SHA3-384 กับ HMAC ได้ไหม?

ได้ HMAC-SHA3-384 เป็นโครงสร้างแบบใช้กุญแจที่มีข้อกำหนดชัดเจน แต่ต้องมีทั้งข้อความและกุญแจลับ เครื่องมือนี้ให้ไดเจสต์ SHA3-384 แบบไม่ใช้กุญแจ จึงใช้แทน HMAC ไม่ได้

SHA-3 โดนโจมตีแบบ length-extension ได้หรือไม่?

SHA-3 ไม่มีช่องโหว่ต่อการโจมตีแบบ length-extension ดั้งเดิมที่ส่งผลต่อแฮช Merkle–Damgård แบบไม่ใช้กุญแจ แต่ไม่ได้หมายความว่าไดเจสต์ SHA3-384 จากเครื่องมือนี้จะเป็นแท็กยืนยันความถูกต้องที่ปลอดภัย หากต้องยืนยันข้อความ ให้ใช้ HMAC-SHA3-384 หรือรูปแบบลายเซ็นที่ได้รับการรับรอง

ใช้เครื่องมือนี้คำนวณ checksum ของไฟล์ได้ไหม?

เครื่องมือนี้กำหนดให้รับอินพุตเป็นสตริง จึงไม่ควรถือว่าเครื่องมือจะอ่านไฟล์เป็นไบต์ดิบ หากต้องการ checksum ของไฟล์ ให้ใช้โปรแกรม SHA3-384 ที่รองรับไฟล์โดยตรง แล้วเปรียบเทียบอักขระฐานสิบหกทั้ง 96 ตัวกับค่าที่ผู้เผยแพร่ให้มา

เครื่องมือยอดนิยม