NESHA-256 sử dụng 16 hằng số như sau[8]
Bảng 18: 16 hằng số của phép cộng của hàm băm NESHA-256
Những hằng số này được khởi tạo trong mỗi nhánh như những hằng số cộng cho hàm nén theo hoán vị như bảng sau[8].
Bảng 19: Các nhánh sử dụng các giá trị hoán vị của hàm băm NESHA-256 Người ta cũng đã tìm được thuật toán tấn công NESHA-256 cũng bằng phương pháp Người ta cũng đã tìm được thuật toán tấn công NESHA-256 cũng bằng phương pháp xung đột băm. Về sự áp dụng NESHA-256 trong thực tế vì một vào lý do mà NESHA- 256 không được áp dụng trong thực tế và nghiên cứu hàm băm NESHA-256 chỉ mang tính lý thuyết.
3.2.2. Hàm băm SHA-3
Trong tháng 11 năm 2007 Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) đã mở một cuộc thi để phát triển thuật toán hàm "băm" mới thay cho SHA-2. Các thuật toán băm mới sẽ được gọi là Secure Hash Algorithm-3 (SHA-3). Có 56 trong số 64 mẫu thiết kế đã tham gia cuộc thi SHA-3, 51 mẫu đệ trình đã lọt qua vòng 1 và vào ngày 01 tháng 11 năm 2008, 14 mẫu đã lọt vào vòng 2. Chung kết thiết kế SHA-3 đã được công bố vào ngày 09 tháng 12 năm 2010. Các thuật toán cuối cùng được coi như một ứng viên thay thế cho SHA-2 là BLAKE, Grøstl, JH, Keccak và Skein. Các tiêu chí lựa chọn bao gồm việc thực thi trong phần mềm và phần cứng, dung lượng thực hiện phần cứng, phản ứng với những nguy cơ tấn công đã biết tốt nhất và đủ khác biệt với các ứng viên khác.
BLAKE bao gồm 4 hàm băm: BLAKE-224, BLAKE-256, BLAKE-384 và BLAKE-
512. Cũng giống như SHA-2, BLAKE cũng có phiên bản 32 bít(BLAKE-256) và
phiên bản 64 bít(BLAKE-512), BLAKE cũng chấp nhận chiều dài tối đa của message đầu vào là 64
2 bít như các hàm băm khác. Thêm vào những yêu cầu trên BLAKE còn có tính tính toán song song, phù hợp với các môi trường tính toán nhỏ, và tính hoán vị.
Thêm gia số (salt) trong qua trình tính toán, điều này làm cho việc tấn công BLAKE trở nên khó khăn hơn rất nhiều, yêu cầu tính tính toán song song là một cơ hội lớn cho
việc cài đặt trên phần cứng, phù hợp với các microprocessor, tính hoán vị làm cho việc cài đặt được phù hợp tùy thuộc vào sức mạnh của microprocessor[7].
STT Thuật toán Chiều dài từ Chiều dài dữ liệu Chiều dài khối Chiều dài đầu ra Muối 1 BLAKE-224 32 < 264 512 224 128 2 BLAKE-256 32 < 264 512 256 128 3 BLAKE-384 64 <2128 1024 384 256 4 BLAKE-512 64 <2128 1024 512 256
Bảng 20: Các thuật toán BLAKE
Tất cả hàm băm BLAKE sử dụng giá trị khởi tạo khác nhau, giá trị đệm khác nhau. Tất cả các hàm băm BLAKE sử dụng phương pháp lặp HAIFA, hàm băm phụ thuộc vào salt và số lượng bít đã băm trước đó, để băm mỗi một block message với mỗi một hàm khác nhau. Cấu trúc của mỗi hàm băm BLAKE kế thừa từ LAKE. Trạng thái bên trong được khởi tạo từ những giá trị khởi tạo, salt, và counter. Sau đó nó được cập nhật vào message tùy thuộc vào các vòng, và cuối cùng hàm nén trả lại giá trị chaining variable tiếp theo. Hàm nén bên trong là ma trận 4x4(chúng ta sẽ xem sét sau). Một vòng xử lý bao gồm hai vòng kép(một vòng xử lý các cột, một vòng xử lý các đường chéo, chúng ta xem xét vấn đề này sau) mỗi vòng gồm các giá trị khởi tạo khác nhau. Với việc xây dựng hàm băm như vậy thì việc tấn công BLAKE-256 trở nên rất khó khăn và thuật toán tấn công hiệu quả nhất là brute-fore, để tấn công thành công thì yêu cầu ít nhất là 2|s| phép thử, trong đó |s| là độ dài của chiều dài thông điệp[7].