การเปิดตัวการใช้งานอ้างอิงของฟังก์ชันแฮชการเข้ารหัส BLAKE3 1.0

การใช้งานอ้างอิงของฟังก์ชันแฮชการเข้ารหัส BLAKE3 1.0 เปิดตัวแล้ว โดยโดดเด่นด้วยประสิทธิภาพการคำนวณแฮชที่สูงมาก ในขณะเดียวกันก็รับประกันความน่าเชื่อถือที่ระดับ SHA-3 ในการทดสอบการสร้างแฮชสำหรับไฟล์ขนาด 16 KB นั้น BLAKE3 ที่มีคีย์ 256 บิตมีประสิทธิภาพเหนือกว่า SHA3-256 17 เท่า, SHA-256 14 เท่า, SHA-512 9 เท่า, SHA-1 6 เท่า และ BLAKE2b - 5 ครั้ง ช่องว่างที่สำคัญยังคงอยู่เมื่อประมวลผลข้อมูลจำนวนมาก เช่น BLAKE3 ปรากฏว่าเร็วกว่า SHA-256 ถึง 8 เท่าเมื่อคำนวณแฮชสำหรับข้อมูลสุ่มขนาด 1GB โค้ดการใช้งานอ้างอิง BLAKE3 มีให้ใช้งานในเวอร์ชัน C และ Rust ภายใต้ลิขสิทธิ์โดเมนสาธารณะคู่ (CC0) และ Apache 2.0

การเปิดตัวการใช้งานอ้างอิงของฟังก์ชันแฮชการเข้ารหัส BLAKE3 1.0

ฟังก์ชันแฮชได้รับการออกแบบมาสำหรับแอปพลิเคชัน เช่น การตรวจสอบความสมบูรณ์ของไฟล์ การรับรองความถูกต้องของข้อความ และการสร้างข้อมูลสำหรับลายเซ็นดิจิทัลที่เข้ารหัส BLAKE3 ไม่ได้มีไว้สำหรับการแฮชรหัสผ่าน เนื่องจากมีจุดมุ่งหมายเพื่อคำนวณแฮชโดยเร็วที่สุด (สำหรับรหัสผ่าน ขอแนะนำให้ใช้ฟังก์ชันแฮชช้า yescrypt, bcrypt, scrypt หรือ Argon2) ฟังก์ชันแฮชที่อยู่ระหว่างการพิจารณานั้นไม่คำนึงถึงขนาดของข้อมูลที่แฮช และได้รับการป้องกันจากการโจมตีการเลือกการชนกันและการค้นหาภาพล่วงหน้า

อัลกอริธึมได้รับการพัฒนาโดยผู้เชี่ยวชาญด้านการเข้ารหัสที่มีชื่อเสียง (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) และยังคงพัฒนาอัลกอริธึม BLAKE2 ต่อไปและใช้กลไก Bao เพื่อเข้ารหัสแผนผังบล็อกเชน . ต่างจาก BLAKE2 (BLAKE2b, BLAKE2s) BLAKE3 มีอัลกอริธึมเดียวสำหรับทุกแพลตฟอร์ม โดยไม่ผูกติดกับความลึกของบิตและขนาดแฮช

ประสิทธิภาพที่เพิ่มขึ้นทำได้โดยการลดจำนวนรอบจาก 10 เป็น 7 และบล็อกแฮชแยกกันเป็น 1 KB ตามที่ผู้สร้างระบุ พวกเขาพบข้อพิสูจน์ทางคณิตศาสตร์ที่น่าเชื่อถือว่าเป็นไปได้ที่จะผ่าน 7 รอบแทนที่จะเป็น 10 รอบ ในขณะที่ยังคงความน่าเชื่อถือในระดับเดิม (เพื่อความชัดเจน เราสามารถยกตัวอย่างการผสมผลไม้ในเครื่องผสม - หลังจากผ่านไป 7 วินาที ผลไม้ผสมกันเรียบร้อยแล้ว และการเพิ่มอีก 3 วินาทีจะไม่ส่งผลต่อความคงตัวของส่วนผสม) อย่างไรก็ตาม นักวิจัยบางคนแสดงความสงสัย โดยเชื่อว่าแม้ว่าในปัจจุบัน 7 รอบจะเพียงพอที่จะตอบโต้การโจมตีแฮชที่ทราบทั้งหมด แต่การเพิ่ม 3 รอบอาจมีประโยชน์หากมีการระบุการโจมตีใหม่ในอนาคต

สำหรับการแบ่งเป็นบล็อก ใน BLAKE3 สตรีมจะถูกแบ่งออกเป็นส่วนขนาด 1 KB และแต่ละส่วนจะถูกแฮชแยกกัน จากแฮชของชิ้นส่วน แฮชขนาดใหญ่หนึ่งอันถูกสร้างขึ้นโดยอิงจากไบนารี Merkle tree การแบ่งส่วนนี้ช่วยให้เราแก้ปัญหาการประมวลผลข้อมูลแบบขนานเมื่อคำนวณแฮช - ตัวอย่างเช่น คุณสามารถใช้คำสั่ง SIMD แบบ 4 เธรดเพื่อคำนวณแฮช 4 บล็อกพร้อมกันได้ ฟังก์ชันแฮช SHA-* แบบดั้งเดิมจะประมวลผลข้อมูลตามลำดับ

คุณสมบัติของ BLAKE3:

  • ประสิทธิภาพสูง BLAKE3 เร็วกว่า MD5, SHA-1, SHA-2, SHA-3 และ BLAKE2 อย่างมาก
  • ความปลอดภัย รวมถึงการต่อต้านการโจมตีด้วยการยืดข้อความซึ่ง SHA-2 อ่อนแอ
  • มีจำหน่ายในรูปแบบ Rust ปรับให้เหมาะสมสำหรับคำสั่ง SSE2, SSE4.1, AVX2, AVX-512 และ NEON
  • รับประกันการคำนวณแบบขนานบนเธรดและช่อง SIMD จำนวนเท่าใดก็ได้
  • ความเป็นไปได้ในการอัปเดตเพิ่มเติมและการประมวลผลสตรีมที่ได้รับการตรวจสอบ
  • ใช้ในโหมด PRF, MAC, KDF, XOF และเป็นแฮชปกติ
  • อัลกอริธึมเดียวสำหรับสถาปัตยกรรมทั้งหมด รวดเร็วบนทั้งระบบ x86-64 และโปรเซสเซอร์ ARM 32 บิต

ความแตกต่างหลักระหว่าง BLAKE3 และ BLAKE2:

  • การใช้โครงสร้างไบนารีทรีที่ช่วยให้สามารถคำนวณแฮชได้แบบขนานไม่จำกัด
  • ลดจำนวนรอบจาก 10 เป็น 7
  • โหมดการทำงานสามโหมด: การแฮช, การแฮชด้วยคีย์ (HMAC) และการสร้างคีย์ (KDF)
  • ไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อทำการแฮชด้วยคีย์ เนื่องจากการใช้พื้นที่ก่อนหน้านี้ถูกครอบครองโดยบล็อกพารามิเตอร์คีย์
  • กลไกการทำงานในตัวในรูปแบบของฟังก์ชันพร้อมผลลัพธ์เพิ่มเติม (XOF, ฟังก์ชันเอาต์พุตที่ขยายได้) ช่วยให้สามารถขนานและกำหนดตำแหน่งได้ (ค้นหา)

ที่มา: opennet.ru

เพิ่มความคิดเห็น