Hàm băm NESHA-256

Một phần của tài liệu Hàm băm an toàn và ứng dụng (Trang 34)

3. Tấn công hàm băm

3.2.1.Hàm băm NESHA-256

NESHA-256 là hàm băm 256 bít, có cấu trúc song song. Những sự thuận lợi của cấu trúc song song và cũng sử dụng những ý tưởng của thủ tục thiết kế của cipher-block dựa trên sức mạnh của những hàm băm đã được nói trước đó cả về bảo mật và hiệu quả. NESHA-256 được thiết kế không chỉ hiệu quả mà còn bảo mật hơn SHA-256. Thuật toán như sau.

- Thực hiện việc đệm bức thông điệp như việc đệm trong thuật toán hàm băm MD5.

- Thực hiện việc khởi tạo như sau IV 0= CV 0= (A, B, C, D, E, F, G, H).

A = 0x6a09e667, B = 0xbb67ae85, C = 0x3c6ef372, D = 0xa54ff53a,

E = 0x510e527f, F = 0x9b05688c, G = 0x1f83d9ab, H = 0x5be0cd19.

- Các khối 512 bít được chia thành các 16 block 32 bit.

- Các block này được đưa vào hàm băm trong quá trình tính toán như hình vẽ sau[8].

Hình 4: Thuật toán NESHA-256

Trong đó j(M) = (M (0)

j

 ,..., M (1 5)

j

 ), j=1, 2, 3, 4 là hoán vị của các

khối như trong bảng sau[8].

Mỗi một nhánh (j=1, 2, 3, 4) của hàm băm lại thực hiện theo thuật toán sau: - Khởi tạo biến Vj...0 theo CVi.

- K=0, 1, 2, 3 tính toán V j,k1 như sau[8]:

Trong đó  j,4k , j,4k1, j,4k2, j,4k3 là các giá trị hằng số, còn

được xây dựng như sau[8].

Ta có thể tóm tắt quá trình làm việc của thuật toán như sau[8].

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 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.

Một phần của tài liệu Hàm băm an toàn và ứng dụng (Trang 34)