BLAKE3 1.0 Triển khai tham chiếu hàm băm mật mã đã được phát hành

Việc triển khai tham chiếu hàm băm mật mã BLAKE3 1.0 đã được phát hành, đáng chú ý là hiệu suất tính toán hàm băm rất cao đồng thời đảm bảo độ tin cậy ở cấp độ SHA-3. Trong thử nghiệm tạo hàm băm cho tệp 16 KB, BLAKE3 với khóa 256 bit hoạt động tốt hơn SHA3-256 gấp 17 lần, SHA-256 gấp 14 lần, SHA-512 gấp 9 lần, SHA-1 gấp 6 lần và BLAKE2b - 5 lần. Vẫn còn một khoảng cách đáng kể khi xử lý lượng dữ liệu rất lớn, chẳng hạn như BLAKE3 hóa ra nhanh hơn 256 lần so với SHA-8 khi tính toán hàm băm cho 1GB dữ liệu ngẫu nhiên. Mã triển khai tham chiếu BLAKE3 có sẵn ở phiên bản C và Rust theo giấy phép miền công cộng kép (CC0) và Apache 2.0.

BLAKE3 1.0 Triển khai tham chiếu hàm băm mật mã đã được phát hành

Hàm băm được thiết kế cho các ứng dụng như kiểm tra tính toàn vẹn của tệp, xác thực tin nhắn và tạo dữ liệu cho chữ ký số mật mã. BLAKE3 không nhằm mục đích băm mật khẩu, vì nó nhằm mục đích tính toán giá trị băm càng nhanh càng tốt (đối với mật khẩu, nên sử dụng các hàm băm chậm Yescrypt, bcrypt, scrypt hoặc Argon2). Hàm băm đang được xem xét không nhạy cảm với kích thước của dữ liệu băm và được bảo vệ khỏi các cuộc tấn công vào việc lựa chọn xung đột và tìm kiếm tiền ảnh.

Thuật toán được phát triển bởi các chuyên gia mật mã nổi tiếng (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) và tiếp tục phát triển thuật toán BLAKE2 và sử dụng cơ chế Bao để mã hóa cây chuỗi khối . Không giống như BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 cung cấp một thuật toán duy nhất cho tất cả các nền tảng, không bị ràng buộc bởi độ sâu bit và kích thước băm.

Hiệu suất tăng lên đạt được bằng cách giảm số vòng từ 10 xuống 7 và băm các khối riêng biệt thành các phần 1 KB. Theo những người sáng tạo, họ đã tìm thấy bằng chứng toán học thuyết phục rằng có thể đạt được 7 vòng thay vì 10 trong khi vẫn duy trì mức độ tin cậy như nhau (để rõ ràng, chúng ta có thể đưa ra một ví dụ về việc trộn trái cây trong máy trộn - sau 7 giây trái cây đã được trộn hoàn toàn và thêm 3 giây nữa sẽ không ảnh hưởng đến độ đặc của hỗn hợp). Tuy nhiên, một số nhà nghiên cứu bày tỏ nghi ngờ, tin rằng ngay cả khi 7 vòng hiện là đủ để chống lại tất cả các cuộc tấn công đã biết vào bảng băm, thì 3 vòng bổ sung có thể hữu ích nếu các cuộc tấn công mới được xác định trong tương lai.

Đối với việc chia thành các khối, trong BLAKE3 luồng được chia thành các phần 1 KB và mỗi phần được băm độc lập. Dựa trên giá trị băm của các phần, một hàm băm lớn được hình thành dựa trên cây Merkle nhị phân. Việc phân chia này cho phép chúng ta giải quyết vấn đề xử lý song song dữ liệu khi tính toán giá trị băm - ví dụ: bạn có thể sử dụng lệnh SIMD 4 luồng để tính toán đồng thời giá trị băm của 4 khối. Hàm băm SHA-* truyền thống xử lý dữ liệu một cách tuần tự.

Các tính năng của BLAKE3:

  • Hiệu suất cao, BLAKE3 nhanh hơn đáng kể so với MD5, SHA-1, SHA-2, SHA-3 và BLAKE2.
  • Bảo mật, bao gồm khả năng chống lại các cuộc tấn công kéo dài tin nhắn mà SHA-2 dễ bị tấn công;
  • Có sẵn trong Rust, được tối ưu hóa cho các hướng dẫn SSE2, SSE4.1, AVX2, AVX-512 và NEON.
  • Đảm bảo tính song song của các phép tính trên bất kỳ số lượng luồng và kênh SIMD nào.
  • Khả năng cập nhật gia tăng và xử lý các luồng được xác minh;
  • Sử dụng ở các chế độ PRF, MAC, KDF, XOF và dưới dạng hàm băm thông thường;
  • Một thuật toán duy nhất cho tất cả các kiến ​​trúc, nhanh chóng trên cả hệ thống x86-64 và bộ xử lý ARM 32 bit.

Sự khác biệt chính giữa BLAKE3 và BLAKE2:

  • Sử dụng cấu trúc cây nhị phân cho phép thực hiện song song không giới hạn trong các phép tính băm.
  • Giảm số vòng từ 10 xuống 7.
  • Ba chế độ hoạt động: băm, băm bằng khóa (HMAC) và tạo khóa (KDF).
  • Không có chi phí bổ sung khi băm bằng một khóa do việc sử dụng khu vực mà khối tham số khóa đã chiếm giữ trước đó.
  • Cơ chế vận hành tích hợp dưới dạng hàm với kết quả mở rộng (XOF, Extendable Output Function), cho phép song song hóa và định vị (seek).

Nguồn: opennet.ru

Thêm một lời nhận xét