- CTR decrytption:
a) Tưtưởng chính của SHA – 512 +) Một số tính chất của SHA – 512.
+) Một số tính chất của SHA – 512.
- Cỡ của thông điệp : 0<= l< 2128 - Cỡ của khối : 1024 bits.
- Cỡ của giá trị băm của thông điệp : 512 bits. - Cỡ của từ: 64 bits.
- Sử dụng 8 biến trung gian, mỗi biến là một từ 64 bits.
* Thuật toán hàm băm SHA-512 gồm 2 bước: tiền xử lý và tính toán giá trị băm.
Bước tiền xử lý bao gồm các thao tác: o Mở rộng thông điệp
o Phân tích thông điệp đã mở rộng thành các khối m bit o Khởi tạo giá trị băm ban đầu
Bước tính toán giá trị băm bao gồm các thao tác: o Làm N lần các công việc sau:
- Tạo bảng phân bố thông điệp (message schedule) từ khối thứ i. - Dùng bảng phân bố thông điệp cùng với các hàm, hằng số, các thao tác trên từ để tạo ra giá trị băm i.
o Sử dụng giá trị băm cuối cùng để tạo thông điệp rút gọn. 1. Tiền xử lý:
+) Padding message(Mở rộng thông điệp):
- Mục đích : Thêm x bits vào thông điệp để được bội của 1024: l+x = N*1024.
- Phương pháp :
+ Thêm bit 1 vào cuối message.
+ Thêm k bit 0 vào cuối, với k là số không âm nhỏ nhất: k+l+1 ≡896 mod 1024(thêm sao cho thiếu 128 bít nữa là bội của 1024).
+ Gắn vào cuối khối 128 bits là biểu diễn nhị phân của l. +) Phân tích thông điệp đã mở rộng thành N khối 1024 bit
- Thông điệp sau khi được độn thêm bit để có độ dài là bội của 1024, sẽ được phân tích thành các khối 1024 bits.
M1 , M2 , M3….Mn-1, Mn.
- 1024 bít của khối dữ liệu đầu vào được biểu diễn bằng 16 từ 64 bit. +) Khởi tạo giá trị băm ban đầu, mỗi giá trị băm có 16 từ:H00, H10, H20, H30, H40, H50, H60, H70
2. Tính toán giá trị băm:Từ khối 16 từ ban đầu mở rộng thành khối 80 từ. Tính giá trị băm thứ i dựa vào trung gian
- Lặp N lần để xử lý lần lượt N khối. - Tại lần lặp thứ i(1≤i≤N):
+ Message schedule: chuyển block thành 80 từ 64-bit. + Thiết lập giá trị cho 8 biến trung gian.
+ Thực hiện vòng lặp để biến đổi giá trị các biến trung gian. + Tính giá trị băm thứ i.
- Giá trị băm thứ N là giá trị băm của thông điệp(Message digest). +) phân bố thông điệp(message schedule).
- Tại lần lặp thứ i:
Tức là: 16 từ đầu tiên của message=16 từ đầu của khối đó, còn các từ còn lại từ 17 đến 80 được tính bằng công thức
+)Thiết lập các biến trung gian - Tại lần lặp thứ i:
a = H0i-1 b= H1i-1 c = H2i-1
tương tự d, e, f , g , h.
+) Biến đổi các biến trung gian.
- Tại lần lặp thứ i For I = 0 to 79
Trong đó Kt là các hằng số.
- Một số hàm băm đã được sử dụng.
+) tính giá trị băm thứ i: Giá trị băm mới=giá trị băm cũ + trung gián H0i = a+H0i-1.
H1i= b+ H1i-1. H2i = c + H2i-1 Tương tự đến H7i.
b) Khẳng định SHA – 512 được xây dựng dựa trên tư tưởng của Merkle – Damgard’s construction :