3. Tấn công hàm băm
3.2. Tìm hiểu một số hàm băm mới nhất
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) 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,k1 như sau[8]:
Trong đó j,4k , j,4k1, j,4k2, j,4k3 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 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.