Bi |
Một byte |
D |
Dữ liệu |
H |
Mã băm |
IV |
Giá trị khởi tạo |
L1 |
Độ dài (theo bit) của xâu đầu tiên trong hai xâu đầu vào của hàm vòng ϕ |
L2 |
Độ dài (theo bit) của xâu thứ hai trong hai xâu đầu vào của hàm vòng ϕ, đó cũng là độ dài của xâu đầu ra của hàm vòng ϕ và của IV. |
LX |
Độ dài (theo bit) của xâu bit X |
ϕ |
Hàm vòng, ví dụ, nếu X, Y là các xâu bit có độ dài lần lượt là L1 và L2 thì ϕ(X, Y) là xâu nhận được từ việc sử dụng ϕ cho X và Y |
XÅY |
Phép xor của các xâu bit X và Y (với LX = LY) |
4.2 Các ký hiệu của phần này
Trong phần này, các ký hiệu sau đây được sử dụng.
ai, a’i
Dãy các chỉ số được sử dụng để đặc tả một hàm vòng
Ai
Một dãy các ma trận hằng số được sử dụng trong việc đặc tả hàm vòng tại Điều 13
c0
Hàm nhận đầu vào là một xâu 64 phần tử của trường GF(28), và đưa ra ma trận 8x8 với các phần tử từ trường GF(28), được sử dụng trong việc đặc tả hàm vòng tại Điều 13
c1, c2, c3
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
c4
Hàm nhận đầu vào là 2 ma trận 8x8 gồm các phần tử từ trường GF(28) và đưa ra một ma trận 8x8 gồm các phần tử từ trường GF(28), được sử dụng trong việc đặc tả hàm vòng tại Điều 13
Ci, C’i
Các từ được sử dụng trong các hàm vòng
C”
Ma trận vòng 8x8 với các phần tử được chọn từ trường GF(28) được sử dụng trong việc đặc tả hàm vòng tại Điều 13
Di
Khối nhận được từ xâu dữ liệu sau quá trình đệm.
di, ei, fi, gi
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hi
Một xâu L2 bit được sử dụng trong phép toán băm để lưu trữ kết quả trung gian
GF(28)
Trường được định nghĩa như là GF(2)[x]/p8(x) với p8(x) = x8 + x4 + x3 + x2 + 1. Các phần tử trong trường là các xâu 8 bit.
M
Ma trận 8x8 có các phần tử được chọn từ trường GF(28).
q
Số khối trong xâu dữ liệu sau quá trình đệm và tách
Rn()
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
s
Hộp thế phi tuyến thay mỗi phần tử x Î GF(28) bằng một phần tử khác s[x] Î GF(28).
Sn()
Phép dịch vòng trái n bit. Nghĩa là nếu A là một từ và n là một số nguyên dương thì khi đó Sn(A) là kết quả của phép dịch vòng sang trái nội dung của A n vị trí
S’n()
Phép dịch vòng phải n bit. Nghĩa là nếu A là một từ và n là một số nguyên dương thì khi đó S’n() là kết quả của phép dịch vòng sang phải nội dung của A n vị trí
ti, t’i
Giá trị dịch chuyển được sử dụng để đặc tả một hàm vòng.
W, Xi, X’i, Yi, Zi
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
W’, X”, Ki, Y’, Z’
Các ma trận với các phần tử được chọn từ trường GF(28) được sử dụng để lưu trữ các kết quả tính toán trung gian.
Ù
Phép toán logic AND trên xâu bit, nghĩa là nếu A và B là các từ thì A Ù B là từ nhận được bằng phép toán logic AND của A và B.
Ú
Phép toán logic OR trên xâu bit, nghĩa là nếu A và B là các từ thì A Ú B là một từ nhận được bằng phép toán logic OR của A và B
Ø
Phép toán logic NOT trên xâu bit, nghĩa là nếu A là từ thì ØA là một từ nhận được bằng phép toán logic NOTcủa A
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
●
Phép nhân của các ma trận 8x8 với các phần tử được chọn từ trường GF(28), có nghĩa là, nếu A và B là các ma trận như trên, thì A●B là ma trận nhận được bởi phép nhân A và B theo cách sau: khai triển mỗi phần tử của A hoặc B dưới dạng đa thức nhị phân của số nguyên (ví dụ, biểu diễn đa thức nhị phân của số nguyên 89 (hệ thập lục phân) là x7 + x3 + 1); thực hiện phép của 2 phần tử như là phần dư khi tích của hai đa thức được chia bởi đa thức p8(x), với p8(x) = x8 + x4 + x3 + x2 + 1; và lấy tổng bằng phép toán Å
:=
Ký hiệu “đặt bằng” được sử dụng trong mô tả tiến trình của các hàm vòng. Ở đó xác định một từ (hoặc một ma trận tại Điều 13) ở vế trái phải bằng với giá trị của vế phải
Người dùng muốn sử dụng một hàm băm của TCVN 11816-3 phải tiến hành lựa chọn sau:
- Một trong những hàm băm chuyên dụng được đặc tả dưới đây; và
- Độ dài LH của mã băm H.
CHÚ THÍCH: Các hàm băm chuyên dụng 1 và 2 được mô tả sao cho thuận tiện cho việc tích hợp phần mềm đối với máy tính ‘little-endian’, nghĩa là byte có địa chỉ thấp nhất trong một từ được mô tả như trọng số thấp nhất; và ngược lại các hàm chuyên dụng 3, 4, 5, 6 được mô tả sao cho thuận tiện cho việc tích hợp mềm đối với các máy tính ‘big-endian’ nhưng byte có địa chỉ thấp nhất trong từ lại được mô tả như trọng số cao nhất. Tuy nhiên, nếu điều chỉnh phù hợp thì bất kỳ hàm nào trong 6 hàm trên đều có tích hợp cho máy tính ‘little-endian’ hoặc ‘big-endian’. Hàm chuyên dụng thứ 7 được xác định cho ‘endian-neutral’ mà trong việc tính toán nó không sử dụng phép toán số học (như các phép cộng số nguyên). Nếu dãy các phần tử từ trường GF(28) (có nghĩa là byte) được ánh xạ tới các từ của máy tính để thực hiện các phép toán song song như phép XOR thì việc phân bố byte trong từ là không cần thiết miễn là phù hợp với ánh xạ ngược. Tất cả các hàm băm đặc tả trong TCVN 11816-3, nhận đầu vào và đưa ra đầu ra là một xâu bit; Điều này không phụ thuộc vào quy định trật tự byte bên trong mỗi hàm băm.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các hàm băm được đặc tả trong TCVN 11816-3 dựa trên mô hình tổng quát cho hàm băm được đưa ra ở TCVN 11816-1.
Trong đặc tả của các hàm băm ở phần này, giả định rằng đầu vào của hàm băm là xâu dữ liệu đã được đệm theo khuôn dạng của chuỗi các byte. Nếu xâu dữ liệu đã được đệm ở dạng chuỗi của 8n bit x0, x1,... x8n-1 thì sau đó nó sẽ được biểu diễn như một xâu của n byte, B0, B1,... Bn-1 như sau. Mỗi một nhóm 8 bit liên tiếp được coi như là một byte, bit đầu tiên của nhóm là bit có trọng số cao nhất trong byte đó. Từ đó
Bi = 27X8i+ 26X8i+1 +...+X8i+7, với i(0 ≤ i <n)
Phép biến đổi đầu ra của các hàm băm đặc tả trong TCVN 11816-3 là các mã băm H nhận được bằng cách lấy LH bit tận cùng bên trái của L2 bit cuối của xâu đầu ra Hq.
Các định danh được xác định cho mỗi hàm băm chuyên dụng được đặc tả trong chuẩn này. Các định danh hàm băm đối với các hàm băm chuyên dụng được đặc tả tại các Điều 7, 8, 9, 10, 11, 12 và 13 lần lượt tương ứng với 31, 32, 33, 34, 35, 36 và 37 (theo hệ thập lục phân). Khoảng giá trị từ 38 tới 3F (theo hệ thập lục phân) được dành riêng để sử dụng sau này như định danh các hàm băm của TCVN 11816-3. Các định danh hàm băm còn được sử dụng trong các định danh đối tượng của OSI trong Phụ lục C.
7 Hàm băm chuyên dụng 1 (RIPEMD-160)
Điều này đặc tả phương pháp đệm, giá trị khởi tạo và hàm vòng sử dụng trong các mô hình tổng quát cho hàm băm được mô tả trong TCVN 11816-1: 2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 1. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 264-1 bit.
Trong TCVN 11816, định danh của hàm băm chuyên dụng 1 là 31 (theo hệ thập lục phân).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
7.1 Các tham số, hằng số và hàm số
7.1.1 Các tham số
Đối với hàm băm này L1 = 512, L2 = 160 và LH có thể đến 160.
7.1.2 Quy ước thứ tự byte
Đặc tả hàm vòng ở điều này được giả định một khối đầu vào là một dãy các từ 32 bit, mỗi khối 512 bit được tạo thành từ 16 từ như vậy. Một dãy 64 byte B0, B1,…, B63 được biểu diễn là một dãy 16 từ Z0, Z1,…., Z15 như sau. Mỗi nhóm 4 byte liên tiếp được coi là một từ, byte đầu tiên của từ có trọng số thấp nhất. Vì vậy
Zi = 224B4i+3 + 216B4i+2 + 28B4i+1 + B4i (0 ≤ i ≤ 15)
Thực hiện phép biến đổi ngược để chuyển đổi mã băm từ một dãy các từ thành một dãy byte.
CHÚ THÍCH: Thứ tự byte được đặc tả ở đây khác với Điều 9.1.2.
7.1.3 Các hàm số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các hàm số gi được xác định như sau:
gi(X0, X1, X2) = X0 Å X1 Å X2
0≤ i ≤15
gi(X0, X1, X2) = (X0 Ù X1) Ú (Ø X0 Ù X2)
16≤ i ≤31
gi(X0, X1, X2) = (X0 Ù ØX1) Å X2
32≤ i ≤47
gi(X0, X1, X2) = (X0 Ù X2) Ú (X1 Ù ØX2)
48≤ i ≤63
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
64≤ i ≤79
7.1.4 Các hằng số
Hai dãy các từ hằng số C0, C1,..., C79 và C’0, C’1,…, C’79 được sử dụng trong hàm vòng này. Trong biểu diễn hệ thập lục phân chúng được xác định như sau (bit có trọng số cao nhất tương ứng với bit trái nhất):
Ci = 00000000,
C’i = 50A28BE6,
0 ≤ i ≤ 15,
Ci = 5A827999,
C’i = 5C4DD124,
16 ≤ i ≤ 31,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
C’i = 6D703EF3,
32 ≤ i ≤ 47,
Ci = 8F1BBCDC,
C’i = 7A6D76E9,
48 ≤ i ≤ 63,
Ci = A953FD4E,
C’i = 00000000,
64 ≤ i ≤ 79,
Hai dãy của 80 giá trị dịch được sử dụng trong hàm vòng này, mỗi một giá trị dịch có giá trị từ 5 đến 15. Ký hiệu những dãy này là (t0, t1,...,t79), (t’0, t’1,...,t’79). Ngoài ra hai dãy của 80 chỉ số được sử dụng trong hàm vòng này, mỗi một giá trị trong dãy là từ 0 đến 15. Ký hiệu những dãy này là (a0, a1,...,a79), (a’0, a’1,...,a’79). Bốn dãy được xác định trong Bảng 1 sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
0
1
2
3
4
5
6
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
11
14
15
12
5
8
7
9
t’i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9
9
11
13
15
15
5
ai
0
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2
3
4
5
6
7
a’i
5
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
0
9
2
11
4
i
8
9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
11
12
13
14
15
ti
11
13
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6
7
9
8
t’i
7
7
8
11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14
12
6
ai
8
9
10
11
12
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14
15
a’i
13
6
15
8
1
10
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
12
i
16
17
18
19
20
21
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
23
ti
7
6
8
13
11
9
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
t’i
9
13
15
7
12
8
9
11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
7
4
13
1
10
6
15
3
a’i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
11
3
7
0
13
5
10
i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
25
26
27
28
29
30
31
ti
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
15
9
11
7
13
12
t’i
7
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
7
6
15
13
11
ai
12
0
9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2
14
11
8
a’i
14
15
8
12
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9
1
2
i
32
33
34
35
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
37
38
39
ti
11
13
6
7
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
13
15
t’i
9
7
15
11
8
6
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14
ai
3
10
14
4
9
15
8
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a’i
15
5
1
3
7
14
6
9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
41
42
43
44
45
46
47
ti
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
13
6
5
12
7
5
t’i
12
13
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14
13
13
7
5
ai
2
7
0
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
13
11
5
12
a’i
11
8
12
2
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
0
4
13
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
48
49
50
51
52
53
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
55
ti
11
12
14
15
14
15
9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
t’i
15
5
8
11
14
14
6
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1
9
11
10
0
8
12
4
a’i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6
4
1
3
11
15
0
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
56
57
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
59
60
61
62
63
ti
9
14
5
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
8
6
5
12
t’i
6
9
12
9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5
15
8
ai
13
3
7
15
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6
2
a’i
5
12
2
13
9
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
64
65
66
67
68
69
70
71
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9
15
5
11
6
8
13
12
t’i
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5
12
9
12
5
14
6
ai
4
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5
9
7
12
2
10
a’i
12
15
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4
1
5
8
7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i
72
73
74
75
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
77
78
79
ti
5
12
13
14
11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5
6
t’i
8
13
6
5
15
13
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
11
ai
14
1
3
8
11
6
15
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a’i
6
2
13
14
0
3
9
11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đối với hàm vòng này giá trị khởi tạo IV luôn phải là xâu 160 bit, được biểu diễn dưới dạng một dãy của 5 từ Y0, Y1, Y2, Y3, Y4 ở hệ thập lục phân, trong đó Y0 là 32 bit trái nhất của 160 bit.
Y0 = 67452301,
Y1 = EFCDAB89,
Y2 = 98BADCFE,
Y3 = 10325476,
Y4 = C3D2E1F0.
7.2 Phương pháp đệm
Xâu dữ liệu D cần phải đệm thêm vào để số bit của nó là bội nguyên của 512. Quá trình đệm được thực hiện như sau:
1. D được nối với duy nhất một bit ‘1’.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3. Chia biểu diễn 64 bit nhị phân của LD thành hai xâu 32-bit, một nửa là xâu có trọng số cao nhất của LD, và một nửa là một xâu có trọng số thấp nhất. Ghép xâu kết quả từ bước trước đó với hai xâu 32 bit trên bằng cách ghép xâu có trọng số thấp nhất trước xâu có trọng số cao nhất.
Trong mô tả hàm vòng dưới dây, mỗi một khối dữ liệu 512 bit Di, 1 ≤ i ≤ q, được khai triển thành một dãy 16 từ Z0, Z1 ,…, Z15, trong đó Z0 tương ứng với 32 bit tận cùng bên trái của Di.
CHÚ THÍCH: Việc nối hai xâu 32-bit của L0 ở bước 3 sao cho hai xâu 32-bit này được sử dụng trực tiếp như các từ Z14 và Z15 của khối dữ liệu cuối cùng, dựa trên cơ sở quy ước thứ tự byte tại Điều 7.1.2, 8 bit tận cùng bên trái của LD có trọng số thấp nhất và 8 bit tận cùng bên phải có trọng số cao nhất.
7.3 Mô tả hàm vòng
Hàm vòng ϕ hoạt động như sau. Chú ý rằng, trong mô tả này, các ký hiệu W, X0, X1, X2, X3, X4, X’0, X’1, X’2, X’3, X’4, để ký hiệu 11 từ có giá trị khác nhau cần thiết trong các tính toán.
1. Giả sử 512 bit đầu vào (đầu tiên) của ϕ là Z0, Z1,...,Z15 trong đó Z0 là 32 bit trái nhất của 512 bit. Cũng giả sử rằng 160 bit đầu vào (thứ 2) của ϕ là 5 từ Y0, Y1, Y2, Y3, Y4
2. Đặt X0 := Y0, X1 := Yi, X2 := Y2, X3 := Y3, X4 := Y4
3. Đặt X’0 := Y0, X’1 := Y1, X’2 := Y2, X’3 := Y3, X’4 := Y4
4. Với i từ 0 đến 79 thực hiện 4 bước theo thứ tự sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5. Đặt
6. Năm từ Y0, Y1, Y2, Y3, Y4 là đầu ra của hàm vòng ϕ. Sau vòng lặp cuối cùng của hàm vòng các giá trị Y0, Y1, Y2, Y3, Y4 được chuyển thành dãy 20 byte sử dụng phép biến đổi ngược được đặc tả tại Điều 7.1.2, ở đó Y0 tạo ra 4 byte đầu tiên, Y1 sẽ tạo ra 4 byte tiếp theo, tiếp tục như vậy. Như vậy byte đầu tiên (trái nhất) tương ứng với byte có trọng số thấp nhất của Y0 và byte thứ 20 (phải nhất) tương ứng với byte có trọng số cao nhất của Y4. 20 byte phải được biến đổi thành một xâu 160 bit sử dụng phép biến đổi ngược được đặc tả tại Điều 6. Nghĩa là bit đầu tiên (trái nhất) tương ứng với bit có trọng số cao nhất của byte đầu tiên (trái nhất) và bit thứ 160 (phải nhất) tương ứng với bit có trọng số thấp nhất của byte thứ 20 (phải nhất).
Hình 1 dưới đây mô tả bước a và b của mục 4 của hàm vòng ϕ trong hàm băm chuyên dụng 1 (RIPEMD-160) (một nửa khác, tức là, bước c và d là tương tự). Trong hàm vòng ϕ, các bước từ a tới c của mục 4 được sử dụng 80 lần (i = 0,.... 79).
Hình 1: Một phần của hàm vòng trong Hàm băm chuyên dụng 1
8 Hàm băm chuyên dụng 2 (RIPEMD-128)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1: 2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 2. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 264-1 bit.
Trong TCVN 11816, định danh của hàm băm đối với hàm băm chuyên dụng 2 là 32 (theo hệ thập lục phân).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
8.1 Các tham số, hàm số và hằng số
8.1.1 Các tham số
Đối với hàm băm này L1 = 512, L2 = 128 và LH có thể đến 128.
8.1.2 Quy ước thứ tự byte
Quy ước thứ tự byte của hàm băm này tương tự như quy ước thứ tự byte tại Điều 7.
8.1.3 Các hàm số
Để thuận lợi cho việc cài đặt phần mềm, hàm vòng ϕ được mô tả theo thuật ngữ của các phép toán trên các từ 32-bit. Một dãy các hàm số g0, g1,..., g63 được sử dụng trong hàm vòng này, mỗi một hàm gi, 0 ≤ i ≤ 63, nhận ba từ X0, X1 và X2 làm đầu vào và đưa ra duy nhất một từ.
Các hàm gi được xác định giống như 64 hàm đầu tiên được quy định tại Điều con 7.1.3.
8.1.4 Các hằng số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Ci = 00000000
C’i = 50A28BE6
0 ≤ i ≤ 15
Ci = 5A827999
C’i = 5C4DD124
16 ≤ i ≤ 31
Ci = 6ED9EBA1
C’i = 6D703EF3
32 ≤ i ≤ 47
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
C’i = 00000000
48 ≤ i ≤ 63
Hai dãy 64 giá trị dịch được sử dụng trong hàm vòng này, mỗi một giá trị dịch tự 5 đến 15. Ký hiệu những dãy này là (t0, t1,...,t63), (t’0, t’1,...,t’63). Chúng được xác định bằng với 64 giá trị đầu tiên của dãy tương ứng được quy định tại Điều con 7.1.4.
Cuối cùng, hai dãy thêm của 64 chỉ số được sử dụng trong hàm vòng này, mỗi một giá trị của dãy từ 0 đến 15. Ký hiệu những dãy này như là (a0, a1,...,a63), (a’0, a’1,...,a’63), và chúng được định nghĩa bằng với 64 giá trị đầu tiên tương ứng với dãy được quy định tại Điều con 7.1.4.
8.1.5 Giá trị khởi tạo
Đối với hàm vòng này, giá trị khởi tạo IV luôn phải là xâu 128 bit, được biểu diễn dưới dạng một dãy của 4 từ Y0, Y1, Y2, Y3, ở hệ thập lục phân, trong đó Y0 là 32 bit trái nhất của 128 bit:
Y0 = 67452301,
Y1 = EFCDAB89,
Y2 = 98BADCFE,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
8.2 Phương pháp đệm
Phương pháp đệm dữ liệu được dùng với hàm băm này tương tự với phương pháp được quy định tại Điều 7.2.
8.3 Mô tả hàm vòng
Hàm vòng ϕ hoạt động như sau. Lưu ý, trong mô tả này sẽ sử dụng các ký hiệu W, X0, X1, X2, X3, và X’0, X’1, X’2, X’3 để ký hiệu 9 từ có giá trị khác nhau cần thiết trong các tính toán.
1. Giả sử 512 bit đầu vào đầu tiên của ϕ là Z0, Z1,..., Z15 với Z0 chứa 32 bit trái nhất của 512 bit. Cũng giả sử rằng 128 bit đầu vào thứ hai của ϕ là 4 từ Y0, Y1, Y2, Y3.
2. Đặt X0 := Y0, X1 := Y1, X2 := Y2, và X3 := Y3
3. Đặt X’0 := Y0, X’1 := Y1, X’2 := Y2, và X’3 := Y3
4. Với i chạy từ 0 đến 63 thực hiện 4 bước sau đây theo thứ tự xác định
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5. Đặt
6. Bốn từ Y0, Y1, Y2, Y3 là đầu ra của hàm vòng ϕ. Sau vòng lặp cuối cùng của hàm vòng các giá trị Y0, Y1, Y2, Y3 được chuyển thành dãy 16 byte sử dụng phép biến đổi ngược được đặc tả tại Điều 7.1.2, ở đó Y0 tạo ra 4 byte đầu tiên, Y1 sẽ tạo ra 4 byte tiếp theo, tiếp tục như vậy. Như vậy byte đầu tiên (trái nhất) tương ứng với byte có trọng số thấp nhất của Y0 và byte thứ 16 (phải nhất) tương ứng với byte có trọng số cao nhất của Y3. 16 byte phải được biến đổi thành một xâu 128 bit sử dụng phép biến đổi ngược được đặc tả tại Điều 6. Nghĩa là bit đầu tiên (trái nhất) tương ứng với bit có trọng số cao nhất của byte đầu tiên (trái nhất) và bit thứ 128 (phải nhất) tương ứng với bit có trọng số thấp nhất của byte thứ 16 (phải nhất).
Hình 2 dưới đây mô tả bước a và b của mục 4 của hàm vòng ϕ trong hàm băm chuyên dụng 2 (RIPEMD-128) (một nửa khác, tức là, bước c và d là tương tự). Trong hàm vòng ϕ các bước bước từ a tới c của mục 4 được sử dụng 64 lần (i = 0,.... 63).
Hình 2: Một phần hàm vòng trong hàm băm chuyên dụng 2
9 Hàm băm chuyên dụng 3 (SHA-1)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1:2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 3. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 264-1 bit.
Định danh của hàm băm trong TCVN 11816 đối với hàm băm chuyên dụng 3 là 33 (theo hệ thập lục phân).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9.1 Các tham số, hàm số và hằng số
9.1.1 Các tham số
Đối với hàm băm này L1 = 512, L2 = 160 và LH có thể đến 160.
9.1.2 Quy ước thứ tự byte
Đặc tả hàm vòng ở điều này được giả định một khối đầu vào là một dãy các từ 32 bit, mỗi khối 512 bit được tạo thành từ 16 từ như vậy. Một dãy 64 byte B0, B1,..., B63 được biểu diễn là một dãy 16 từ Z0, Z1,…, Z15 như sau. Mỗi nhóm 4 byte liên tiếp được coi là một từ, byte đầu tiên của từ có trọng số cao nhất. Vì vậy
Zi = 224B4i + 216B4i+1 + 28B4i+2 + B4i+3
(0 ≤ i ≤ 15)
Thực hiện phép biến đổi ngược để chuyển đổi mã băm từ một dãy các từ thành một dãy byte.
CHÚ THÍCH: Thứ tự byte được đặc tả ở đây khác với Điều 7.1.2.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Để thuận lợi trong việc cài đặt phần mềm, hàm vòng ϕ được mô tả theo thuật ngữ của các phép toán trên các từ 32-bit. Một dãy các hàm f0, f1,.... f79 được sử dụng trong hàm vòng này ở đó mỗi hàm fi 0 ≤ i ≤ 79 nhận ba từ X0, X1 và X2 làm đầu vào và đưa ra một từ duy nhất.
Các hàm số fi được xác định như sau:
fi(X0, X1, X2) = (X0 Ù X1) Ú (ØX0ÙX2),
(0 ≤ i ≤ 19),
fi(X0, X1, X2) = X0 Å X1 Å X2
(20 ≤ i ≤ 39),
fi(X0, X1, X2) = (X0 Ù X1) Ú (X0ÙX2) Ú (X1ÙX2),
(40 ≤ i ≤ 59),
fi(X0, X1, X2) = X0 Å X1 Å X2.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9.1.4 Các hằng số
Một dãy từ hằng số C0, C1,..., C79 được sử dụng trong hàm vòng này. Trong biểu diễn hệ thập lục phân chúng được xác định như sau (bit có trọng số cao nhất tương ứng với bit trái nhất):
Ci = 5A4827999, (0 ≤ i ≤ 19),
Ci = 6ED9EBA1, (20 ≤ i ≤ 39),
Ci = 8F1BBCDC, (40 ≤ i ≤ 49),
Ci = CA62C1D6, (60 ≤ i ≤ 79).
9.1.5 Giá trị khởi tạo
Đối với hàm vòng này giá trị khởi tạo IV luôn phải luôn là xâu 160 bit được biểu diễn dưới dạng một dãy 5 từ Y0, Y1, Y2, Y3, Y4 ở hệ thập lục phân, trong đó Y0 là 32 bit trái nhất của 160 bit.
Y0 = 67452301,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Y2 = 98BADCFE,
Y3 = 10325476,
Y4 = C3D2E1F0.
9.2 Phương pháp đệm
Xâu dữ liệu D cần phải đệm thêm vào để số bit của nó là bội nguyên của 512. Quá trình đệm diễn ra như sau:
1. D được nối với duy nhất một bit ‘1’.
2. Kết quả của bước trước được nối với bit 0 giữa 0 và 511 sao cho độ dài thu được (theo bit) của xâu là đồng dư với 448 theo mô đun 512. Một cách rõ ràng hơn, nếu chiều dài ban đầu của D là LD, và r là số dư khi LD chia cho 512, thì số các số 0 cần thêm là hoặc 447-r (nếu r ≤ 447) hoặc 959 - r (nếu r > 447). Kết quả là một xâu bit có độ dài là 64 bit là bội nguyên của 512.
3. Ghép xâu kết quả từ bước trước đó với 64-bit nhị phân của LD, bit có trọng số cao nhất đầu tiên.
Trong mô tả hàm vòng này, mỗi một khối dữ liệu Di 512-bit, 1 ≤ i ≤ q, được khai triển thành một dãy 16 từ Z0, Z1,…, Z15, ở đó Z0 tương ứng với 32 bit trái nhất của Di.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9.3 Mô tả hàm vòng
Hàm vòng ϕ thực hiện như sau. Lưu ý, trong mô tả này sử dụng các ký hiệu W, X0, X1, X2, X3, X4, Z0, Z1, Z2,.... Z79, để ký hiệu 86 từ có giá trị khác nhau cần thiết trong các tính toán.
1. Giả sử 512 bit đầu vào (đầu tiên) của ϕ là Z0, Z1,..., Z15 với Z0 là 32 bit trái nhất của 512 bit. Cũng giả sử rằng 160 bit đầu vào thứ 2 của ϕ là 5 từ Y0, Y1, Y2, Y3, Y4.
2. Với i = 16 đến 79 đặt
Zi := S1 (Zi-3 Å Zi-8 Å Zi-14 Å Zi-16).
3. Đặt X0:= Yo, X1:= Y1, X2:= Y2, X3:= Y3 và X4:= Y4
4. Với i = 0 đến 79 thực hiện hai bước sau:
5. Đặt
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình 3 dưới đây mô tả bước a và b của mục 4 của hàm vòng ϕ trong hàm băm chuyên dụng 3 (SHA-1). Trong hàm vòng ϕ, các bước từ a và b của mục 4 được sử dụng 80 lần (i = 0,.... 79).
Hình 3 - Một phần hàm vòng trong hàm băm chuyên dụng 3
10 Hàm băm chuyên dụng 4 (SHA-256)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1:2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 4. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 264-1 bit.
Trong TCVN 11816, định danh của hàm băm đối với hàm băm chuyên dụng 4 là 34 (theo hệ thập lục phân).
CHÚ THÍCH: Hàm băm chuyên dụng 4 được xác định trong Điều này còn được gọi với tên chung SHA-256, [2].
10.1 Các tham số, hàm số và hằng số
10.1.1 Các tham số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
10.1.2 Quy ước thứ tự byte
Quy ước thứ tự byte của hàm băm này tương tự như quy ước thứ tự byte tại Điều con 9.1.2.
10.1.3 Các hàm số
Để thuận lợi trong việc cài đặt phần mềm, hàm vòng ϕ được mô tả theo thuật ngữ của các phép toán trên các từ 32-bit. Một dãy các hàm số e0, e1, e2, e3, e4, e5 được dùng trong hàm vòng này, hàm e0 và e1 mỗi hàm nhận 3 từ X0, X1 và X2 làm đầu vào, e2, e3, e4, e5 mỗi hàm nhận 1 từ X0 làm đầu vào, và mỗi một hàm trong sáu hàm này đưa ra duy nhất một từ 32 bit.
Các hàm số e0, e1, e2, e3, e4, e5 được xác định như sau:
e0(X0, X1, X2) = (X0 Ù X1)Å(ØX0ÙX2),
e1(X0, X1, X2) = (X0 Ù X1)Å(X0ÙX2)Å(X1ÙX2),
e2(X0) = S’2(X0)ÅS’13(X0)ÅS’22(X0),
e3(X0) = S’6(X0)ÅS’11(X0)ÅS’25(X0),
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
e5(X0) = S’17 (X0)ÅS’19 (X0)ÅR10 (X0),
10.1.4 Các hằng số
Một dãy từ hằng số C0, C1,…, C63 được sử dụng trong hàm vòng này. Trong biểu diễn hệ thập lục phân chúng được xác định như sau (bit có trọng số cao nhất tương ứng với bit trái nhất) và theo thứ tự C0, C1,..., C63.
CHÚ THÍCH: Những giá trị này là 32 bit đầu tiên của phần phân số của căn bậc ba của 64 số nguyên tố đầu tiên.
10.1.5 Giá trị khởi tạo
Đối với hàm vòng này giá trị khởi tạo IV phải luôn là xâu 256 bit được biểu diễn dưới dạng một dãy 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 ở hệ thập lục phân, trong đó Y0 là 32 bit trái nhất của 256 bit.
Y0 = 6a09e667,
Y1 = bb67ae85,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Y3 = a54ff53a,
Y4 = 510e527f,
Y5 = 9b05688c,
Y6 = 1f83d9ab,
Y7 = 5be0cd19.
CHÚ THÍCH: Những giá trị này nhận được bằng cách lấy các phần phân số của căn bậc hai của tám số nguyên tố đầu tiên.
10.2 Phương pháp đệm
Phương pháp đệm dữ liệu được sử dụng cho hàm băm này tương tự với phương pháp đệm được quy định tại Điều 9.2.
10.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. Giả sử 512 bit đầu vào đầu tiên của ϕ là Z0, Z1,...,Z15 trong đó Z0 là 32 bit trái nhất của 512 bit. Cũng giả sử rằng 256 bit đầu vào thứ 2 của ϕ là 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7.
2. Với i = 16 đến 63 đặt
3. Đặt X0 := Y0, X1 := Y1, X2 := Y2, X3 := Y3, X4 := Y4, X5 := Y5, X6 := Y6, X7 := Y7
4. Với i = 0 đến 63 thực hiện ba bước sau:
6. Tám từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 là đầu ra của hàm vòng ϕ. Sau vòng lặp cuối cùng của hàm vòng 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 được chuyển thành một dãy 32 byte sử dụng phép biến đổi ngược được đặc tả tại Điều 10.1.2, ở đó Y0 tạo ra 4 byte đầu tiên, Y1 sẽ tạo ra 4 byte tiếp theo, tiếp tục như vậy. Như vậy byte đầu tiên (trái nhất) tương ứng với byte có trọng số cao nhất của Y0 và byte thứ 32 (phải nhất) tương ứng với byte có trọng số thấp nhất của Y7. 32 byte phải được biến đổi thành một xâu 256 bit sử dụng phép biến đổi ngược được đặc tả tại Điều 6. Nghĩa là bit đầu tiên (trái nhất) tương ứng với bit có trọng số cao nhất của byte đầu tiên (trái nhất) và bit thứ 256 (phải nhất) tương ứng với bit có trọng số thấp nhất của byte thứ 32 (phải nhất).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình 4: Một phần của hàm vòng trong hàm băm chuyên dụng 4
11 Hàm băm chuyên dụng 5 (SHA-512)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1: 2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 5. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 2128-1 bit.
Trong TCVN 11816, định danh của hàm băm đối với hàm băm chuyên dụng 5 là 35 (theo hệ thập lục phân).
CHÚ THÍCH: Hàm băm chuyên dụng 5 được xác định trong Điều này còn được gọi với tên chung SHA-512, [2].
11.1 Các tham số, hàm số và hằng số
11.1.1 Các tham số
Đối với hàm băm này L1 = 1024, L2 = 512 và LH có thể đến 512.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đặc tả hàm vòng ở điều này được giả định một khối đầu vào là một dãy các từ 64 bit, mỗi khối 1024 bit được tạo thành từ 16 từ như vậy. Một dãy 128 byte B0, B1,..., B127 được biểu diễn là một dãy 16 từ Z0, Z1,..., Z15 như sau. Mỗi nhóm 8 byte liên tiếp được coi là một từ, byte đầu tiên của từ có trọng số cao nhất. Vì vậy
Zi = 256B8i + 248B8i+1 + 240B8i+2 + 232B8i+3 + 224B8i+4 + 216B8i+5 + 28B8i+6 + B8i+7 (0 ≤ i ≤ 15)
Thực hiện phép biến đổi ngược để chuyển đổi mã băm từ một dãy các từ thành một dãy các byte.
11.1.3 Các hàm số
Để thuận lợi trong việc cài đặt phần mềm, hàm vòng ϕ được mô tả theo thuật ngữ của các phép toán trên các từ 64-bit. Một dãy các hàm số d0, d1, d2, d3, d4, d5 được dùng trong hàm vòng này, hàm d0 và d1 mỗi hàm nhận 3 từ 64 bit X0, X1 và X2 làm đầu vào, d2, d3, d4 và d5 mỗi hàm nhận 1 từ 64 bit làm đầu vào, và mỗi một hàm tròng sáu hàm này đưa ra duy nhất một từ 64 bit.
Các hàm d0, d1, d2, d3, d4, d5 được xác định như sau:
d0(X0, X1, X2) = (X0 Ù X1)Å(ØX0ÙX2),
d1(X0, X1, X2) = (X0 Ù X1)Å(X0ÙX2)Å(X1ÙX2),
d2(X0) = S’28(X0)ÅS’34(X0)ÅS’39(X0),
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
d4(X0) = S’1 (X0)ÅS’8 (X0)ÅR7 (X0),
d5(X0) = S’19 (X0)ÅS’61 (X0)ÅR6 (X0),
11.1.4 Các hằng số
Một dãy từ hằng số C0, C1,.... C79 được sử dụng trong hàm vòng này. Trong biểu diễn hệ thập lục phân chúng được xác định như sau (bit có trọng số cao nhất tương ứng với bit trái nhất) và theo thứ tự C0, C1,..., C79.
CHÚ THÍCH: Những giá trị này là những 64 bit đầu tiên của các phần phân số của căn bậc ba của 80 số nguyên tố đầu tiên.
11.1.5 Giá trị khởi tạo
Đối với hàm vòng này giá trị khởi tạo IV phải luôn là xâu 512 bit được biểu diễn dưới dạng một dãy 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 ở hệ thập lục phân, trong đó Y0 là 64 bit trái nhất của 512 bit.
Y0 = 6a09e667f3bcc908,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Y2= 3c6ef372fe94f82b,
Y3 = a54ff53a5f1d36f1,
Y4= 510e527fade682d1,
Y5 = 9b05688c2b3e6c1f,
Y6 =1f83d9abfb41bd6b,
Y7 = 5be0cd19137e2179.
CHÚ THÍCH: Những giá trị trên nhận được bằng cách lấy các phần phân số của căn bậc hai của tám số nguyên tố đầu tiên.
11.2 Phương pháp đệm
Xâu dữ liệu D cần phải đệm thêm vào để số bit của nó là bội nguyên của 1024. Quá trình đệm diễn ra như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2. Kết quả của bước trước được nối với bit 0 giữa 0 và 1023 sao cho độ dài thu được (theo bit) của xâu là đồng dư với 896 theo mô đun 1024. Một cách rõ ràng hơn, nếu chiều dài ban đầu của D là LD, và r là số dư khi LD chia cho 1024, thì số các số 0 cần thêm là hoặc 895-r (nếu r ≤ 895) hoặc 1919 - r (nếu r > 895). Kết quả là một xâu bit có độ dài là 128 bit là bội nguyên của 1024.
3. Ghép xâu kết quả từ bước trước đó với 128-bit nhị phân của LD, bit có trọng số cao nhất đầu tiên.
Trong mô tả hàm vòng này, mỗi một khối dữ liệu Di 1024-bit, 1 ≤ i ≤ q, được khai triển thành một dãy 16 từ Z0, Z1,… ,Z15, ở đó Z0 tương ứng với 64 bit trái nhất của Di.
CHÚ THÍCH: Việc nối xâu 128-bit của LD ở bước 3 sao cho xâu 64-bit có trọng số cao nhất và xâu 64-bit có trọng số thấp nhất của LD được sử dụng tương ứng với các từ Z14 và Z15 của khối dữ liệu cuối cùng, được dựa trên cơ sở quy ước thứ tự byte tại Điều 11.1.2, byte có trọng số cao nhất của LD là byte trái nhất và byte có trọng số thấp nhất của LD là byte phải nhất.
11.3 Mô tả hàm vòng
Hàm vòng ϕ hoạt động như sau. Chú ý rằng, các ký hiệu W1, W2, X0, X1, X2, X3, X4, X5, X6, X7, Z0, Z1, Z2,..., Z79, để ký hiệu 90 từ có giá trị khác nhau cần thiết trong các tính toán.
1. Giả sử 1024 bit đầu vào (đầu tiên) của ϕ là Z0, Z1,...,Z15 trong đó Z0 chứa 64 bit trái nhất của 1024 bit. Cũng giả sử rằng 512 bit đầu vào (thứ 2) của ϕ là 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7.
3. Đặt X0 := Y0, X1 := Y1, X2 := Y2, X3 := Y3, X4 := Y4, X5 := Y5, X6 := Y6, X7 := Y7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6. Tám từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 là đầu ra của hàm vòng ϕ. Sau vòng lặp cuối cùng của hàm vòng 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 được chuyển thành một dãy 64 byte sử dụng phép biến đổi ngược được đặc tả tại Điều 11.1.2, ở đó Y0 tạo ra 8 byte đầu tiên, Y1 sẽ tạo ra 8 byte tiếp theo, tiếp tục như vậy. Như vậy byte đầu tiên (trái nhất) tương ứng với byte có trọng số cao nhất của Y0 và byte thứ 64 (phải nhất) tương ứng với byte có trọng số thấp nhất của Y7. 64 byte phải được biến đổi thành một xâu 512 bit sử dụng phép biến đổi ngược được đặc tả tại Điều 6. Nghĩa là bit đầu tiên (trái nhất) tương ứng với bit có trọng số cao nhất của byte đầu tiên (trái nhất) và bit thứ 512 (phải nhất) tương ứng với bit có trọng số thấp nhất của byte thứ 64 (phải nhất).
Hình 5 dưới đây mô tả các bước a, b và c của mục 4 của hàm vòng ϕ trong hàm băm chuyên dụng 5 (SHA-512). Trong hàm vòng ϕ, các bước a, b và c của mục 4 được sử dụng 80 lần (i = 0,..., 79)
Hình 5: Một phần hàm vòng trong hàm băm chuyên dụng 5
12 Hàm băm chuyên dụng 6 (SHA-384)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1: 2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 6. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 2128-1 bit.
Trong TCVN 11816, định danh của hàm băm đối với hàm băm chuyên dụng 6 là 36 (theo hệ thập lục phân).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
12.1 Các tham số, hàm số và hằng số
12.1.1 Các tham số
Đối với hàm băm này L1 = 1024, L2 = 512 và LH có thể đến 384.
12.1.2 Quy ước thứ tự byte
Quy ước thứ tự byte của hàm băm này giống với quy ước thứ tự byte tại Điều 11.
12.1.3 Các hàm số
Các hàm số của hàm băm này giống với các hàm số đối với hàm băm tại Điều 11.
12.1.4 Các hằng số
Các hằng số của hàm băm này giống với các hằng số của hàm băm tại Điều 11.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đối với hàm vòng này giá trị khởi tạo IV phải luôn là xâu 512 bit được biểu diễn dưới dạng một dãy 8 từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 ở hệ thập lục phân, trong đó Y0 là 64 bit trái nhất của 512 bit.
Y0 =cbbb9d5dc1059ed8,
Y1 = 629a292a367cd507,
Y2 = 9159015a3070dd17,
Y3 = 152fecd8f70e5939,
Y4 = 67332667ffc00b31,
Y5 = 8eb44a8768581511,
Y6 = db0c2e0d64f98fa7,
Y7 = 47b5481dbefa4fa4.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
12.2 Phương pháp đệm
Phương pháp đệm dùng trong hàm băm này giống với phương pháp đệm được đặc tả trong Điều 11.2.
12.3 Mô tả hàm vòng
Hàm vòng dùng với hàm băm này giống với hàm vòng được xác định trong Điều 11.3.
Giá trị băm 384 bit cuối cùng nhận được bằng cách cắt bớt đầu ra của SHA-512 để lấy được 384 bit trái nhất của nó.
13 Hàm băm chuyên dụng 7 (WHIRLPOOL)
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong các mô hình tổng quát cho hàm băm được mô tả ở TCVN 11816-1: 2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng được đặc tả ở đây khi sử dụng trong mô hình tổng quát để xác định hàm băm chuyên dụng 7. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 2258-1 bit.
Trong TCVN 11816, định danh của hàm băm đối với hàm băm chuyên dụng 7 là 37 (theo hệ thập lục phân).
CHÚ THÍCH: Hàm băm chuyên dụng 7 được xác định trong Điều này còn được gọi với tên chung WHIRLPOOL, [4].
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
13.1.1 Các tham số
Đối với hàm băm này L1 = 512, L2 = 512 và LH có thể đến 512.
13.1.2 Quy ước thứ tự byte
Đặc tả hàm vòng ở điều này được giả định một khối đầu vào là ma trận M (tất cả các ma trận có kích thước 8x8 với các phần tử được chọn từ trường GF(28)), mỗi khối 512 bit được tạo thành từ một ma trận như vậy. Dãy 64 byte B = (B0, B1, .... B63) được biểu diễn như một ma trận M theo cách sau. Phần tử ở hàng đầu tiên và cột đầu tiên của ma trận là byte trái nhất (byte trái nhất tương ứng với byte trọng số lớn nhất) của dãy B (tức B0), phần tử ở hàng đầu và cột thứ hai của ma trận sẽ là byte thứ 2 trái nhất của B (tức B1), …., và phần tử ở hàng thứ 8 và cột thứ 8 của ma trận sẽ là byte phải nhất của B (tức B63). Sử dụng hàm c0 được chỉ ra tại Điều con 13.1.3 để thực hiện điều này.
Thực hiện phép biến đổi ngược để chuyển đổi mã băm từ một ma trận như vậy thành một dãy các byte.
13.1.3 Các hàm số
Để thuận lợi trong việc cài đặt phần mềm, hàm vòng ϕ được mô tả theo thuật ngữ của các phép toán trên ma trận M. Một dãy các hàm số c0, c1, c2, c3, c4 được dùng trong hàm vòng này. Chúng được xác định như sau
Hàm c0 nhận một dãy 64 byte B = (B0, B1, .... B63) là đầu vào, và đưa ra ma trận Z’ = (z’ij) trong đó
z’ij = B8i+j (0 ≤ i, j ≤ 7).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hàm c1 nhận ma trận X” = (x”ij) là đầu vào và đưa ra một ma trận W’ = (w’ij) trong đó
w’ij = s[x”ij] (0 ≤ i, j ≤ 7).
và s là hộp thế phi tuyến. Nghĩa là W’ = c1(X”) khi và chỉ khi w’ij = s[x”ij] (0 ≤ i, j ≤ 7).
Hộp thế s thay thế phần tử x Î GF(28) bằng một phần tử khác s[x] Î GF(28) như được đặc tả ở Bảng 2 (các phần tử trong cột đầu tiên là “nửa trọng số cao nhất” của x, và các phần tử trong hàng đầu là “nửa trọng số thấp nhất” của x; ví dụ, nếu x = 01010110 = 56 (hệ thập lục phân), s[x] = 49 (hệ thập lục phân) = 01001001.
Bảng 2 - Hộp thế S
0
1
2
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4
5
6
7
8
9
A
B
C
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
E
F
0
18
23
C6
E8
87
B8
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4F
36
A6
D2
F5
79
6F
91
52
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
60
BC
9B
8E
A3
0C
7B
35
1D
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
D7
C2
2E
4B
FE
57
2
15
77
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
E5
9F
F0
4A
DA
58
C9
29
0A
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A0
6B
85
3
BD
5D
10
F4
CB
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
05
67
E4
27
41
8B
A7
7D
95
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4
FB
EE
7C
66
DD
17
47
9E
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2D
BF
07
AD
5A
83
33
5
63
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
AA
71
C8
19
49
D9
F2
E3
5B
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9A
26
32
B0
6
E9
0F
D5
80
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
CD
34
48
FF
7A
90
5F
20
68
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
AE
7
B4
54
93
22
64
F1
73
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
40
08
C3
EC
DB
A1
8D
3D
8
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
00
CF
2B
76
82
D6
1B
B5
AF
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
50
45
F3
30
EF
9
3F
55
A2
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
65
BA
2F
C0
DE
1C
FD
4D
92
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
06
8A
A
B2
E6
0E
1F
62
D4
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
96
F9
C5
25
59
84
72
39
4C
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5E
78
38
8C
D1
A5
E2
61
B3
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9C
1E
43
C7
FC
04
C
51
99
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
0D
FA
DF
7E
24
3B
AB
CE
11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4E
B7
EB
D
3C
81
94
F7
B9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2C
D3
E7
6E
C4
03
56
44
7F
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
E
2A
BB
C1
53
DC
0B
9D
6C
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
74
F6
46
AC
89
14
E1
F
16
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
69
09
70
B6
D0
ED
CC
42
98
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
28
5C
F8
86
Hàm c2 nhận đầu vào là ma trận X” = (x”ij) và đưa ra ma trận W’ = (w’ij) với
w”ij = X”(i-j)mod 8j, (0 ≤ i, j ≤ 7).
Điều này có nghĩa là W’ = c2(X”) khi và chỉ khi w”ij = X”(i-j)mod 8j, (0 ≤ i, j ≤ 7).
Hàm c3 nhận ma trận X” là đầu vào và đưa ra ma trận W’ trong đó
W’ = X” • C”,
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Điều này có nghĩa là W’ = c3(X”) khi và chỉ khi W” = X” • C”.
Hàm c4 nhận đầu vào là 2 ma trận X” = (x”ij) và Y” = (y”ij) và đưa ra một ma trận duy nhất W” = (w”ij) trong đó
w’ij = x”ij Å y’ij, (0 ≤ i, j ≤ 7).
Điều này có nghĩa là W’ = c4(X”) khi và chỉ khi w’ij = x”ij Å y’ij, (0 ≤ i, j ≤ 7).
13.1.4 Các hằng số
Một dãy các ma trận hằng số Ar = (Arij) ( 0 < r ≤ 10) được sử dụng trong hàm vòng này. Hằng số vòng cho vòng thứ r là một ma trận, được xác định như sau:
Ar0j = s[8(r-1) + j], (0 ≤ j ≤ 7),
Arij = 0, (1 ≤ i ≤ 7, 0 ≤ j ≤ 7).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị khởi tạo IV là một xâu có 512 bit ‘0’.
13.2 Phương pháp đệm
Xâu dữ liệu D cần phải đệm thêm vào để số bit của nó là bội nguyên của 512. Quá trình đệm diễn ra như sau:
1. D được nối với duy nhất một bit ‘1’.
2. Kết quả của bước trước được nối với bit 0 giữa 0 và 511 sao cho độ dài thu được (theo bit) của xâu là bội lẻ của 256.
3. Nếu độ dài ban đầu của D là LD, ghép xâu thu được từ bước trước đó với 256 nhị phân bit của LD, bit trọng số lớn nhất ở đầu.
Trong mô tả của hàm vòng này, mỗi khối dữ liệu Di 512 bit, 1 ≤ i ≤ q, được khai triển thành ma trận Z’ = (z’ij) (0 ≤ i, j ≤ 7), được đặc tả tại Điều 13.1.2, ở đó z’00 tương ứng với 8 bit trái nhất của Di và z’77 tương ứng với 8 bit phải nhất của Di.
CHÚ THÍCH: Việc nối xâu 256 bit của LD trong bước 3 sao cho xâu 256-bit được sử dụng trực tiếp như nửa thứ hai của ma trận dữ liệu cuối cùng, dựa trên quy ước thứ tự byte ở Điều 13.1.2, byte có trọng số lớn nhất của LD ở hàng thứ 5 và cột đầu tiên, byte có trọng số thấp nhất của LD ở dòng thứ 8 và cột thứ 8.
13.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. Giả sử 512 bit đầu vào (đầu tiên) của ϕ là ma trận Z' với các phần tử được chọn từ trường GF(28) được định dạng bằng cách sử dụng quy ước trật tự byte được đặc tả trong Điều 13.1.2. Cũng giả sử rằng 512 bit đầu vào thứ hai của ϕ là ma trận Y' với các phần tử được chọn từ trường GF(28).
2. Đặt K0 := Y' và với i từ 1 đến 10, đặt:
Ki := c4(c3(c2(c1(Ki-1)))), Ai)
CHÚ THÍCH: Bước này mở rộng ma trận Y’ thành dãy các khoá vòng K0,…, K10.
3. Đặt X” := c4(Z’, K0); và với j từ 1 đến 10 thực hiện hai bước sau
(a) W’:= c4(c3(c2(c1(X”))), Kj);
(b) X”:=W’.
4. Đặt Y’ := W’ Å K0 Å Z’.
5. Ma trận Y’ biểu diễn đầu ra của hàm vòng ϕ. Sau vòng lặp cuối cùng của hàm vòng, ma trận Y’ được chuyển thành dãy 64 byte sử dụng phép biến đổi ngược được đặc tả tại Điều 13.1.2, ở đó phần tử ở hàng đầu tiên và cột đầu tiên của ma trận tạo ra byte đầu tiên, phần tử ở hàng đầu tiên và cột thứ hai của ma trận sẽ tạo ra byte tiếp theo,..., phần tử ở hàng thứ 8 và cột thứ 8 của ma trận tạo ra byte cuối cùng. 64 byte được chuyển thành một xâu 512 bit sử dụng phép biến đổi ngược được đặc tả trong Điều 6, có nghĩa là, bit thứ nhất (trái nhất) tương ứng với bit có trọng số cao nhất của byte đầu tiên (trái nhất), và bit thứ 512 (phải nhất) tương ứng với bit có trọng số thấp nhất của byte thứ 64 (phải nhất).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình 6. Một phần của hàm vòng trong hàm băm chuyên dụng 7
14 Hàm băm chuyên dụng 8 (SHA-224)
Hàm băm chuyên dụng 8 được bổ sung bởi ISO/IEC 10118-3:2004/Amd. 1:2006.
Điều này đặc tả một phương pháp đệm, một giá trị khởi tạo và một hàm vòng để sử dụng trong mô hình tổng quát đối với các hàm băm được mô tả trong TCVN 11816-1:2017. Phương pháp đệm, giá trị khởi tạo và hàm vòng đặc tả tại đây được sử dụng trong mô hình tổng quát trên cùng với định nghĩa hàm băm chuyên dụng 8. Hàm băm chuyên dụng này có thể được áp dụng cho tất cả các xâu dữ liệu D có nội dung lớn nhất là 264-1 bit.
Trong TCVN 11816, định danh hàm băm đối với hàm băm chuyên dụng 8 là 38 (hệ thập lục phân).
CHÚ THÍCH: Hàm băm chuyên dụng 8 được định nghĩa trong mục này được gọi chung là SHA-224, [2].
14.1 Các tham số, hàm số và hằng số
14.1.1 Các tham số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14.1.2 Quy ước thứ tự byte
Quy ước xếp thứ tự byte đối với hàm băm này giống với quy ước đối với hàm băm của Điều 10.
14.1.3 Các hàm số
Các hàm số đối với hàm băm này giống với các hàm số đối với hàm băm của điều 10.
14.1.4 Các hằng số
Các hằng số đối với hàm băm này giống các hằng số đối với hàm băm của điều 10.
14.1.5 Giá trị khởi tạo
Đối với hàm vòng này giá trị khởi tạo IV luôn là xâu 256 bit sau đây được biểu diễn như một dãy tám từ Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 cơ số 16 ở đó Y0 biểu diễn 32 bit bên trái nhất của 256 bit.
Y0 = c1059ed8
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Y2 = 3070dd17
Y3=f70e5939
Y4 = ffc00b31
Y5 = 68581511
Y6 = 64f98fa7
Y7 = befa4fa4
CHÚ THÍCH: Các giá trị này là 32 bit thứ tự thấp của các giá trị được đặc tả trong 12.1.5.
14.2 Phương pháp đệm
Phương pháp đệm sẽ được dùng với hàm băm này cần phải là giống như phương pháp đệm được định nghĩa trong Điều 10.2.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hàm vòng được dùng với hàm băm này cần phải giống hàm vòng được định nghĩa trong Điều 10.3.
Giá trị băm 224 bit cuối cùng nhận được bằng cách cắt bớt đầu ra của SHA-256 để lấy được 224 bit trái nhất của nó
(Tham khảo)
Phụ lục này đưa ra một số ví dụ cho việc tính toán của hàm băm chuyên dụng 1-8. Với mỗi hàm băm, các giá trị trung gian nhận được trong quá trình thực hiện hàm băm cũng được đưa ra đối với một số ví dụ.
Trong phụ lục này, đề cập đến mã ASCII của xâu dữ liệu; chúng tương đương với loại mã sử dụng ISO 646.
A.1 Hàm băm chuyên dụng 1
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.1.1 Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không. Mã băm là xâu 160-bit dưới đây.
A.1.2 Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là bản mã ASCII của ký tự ‘a’. Mã băm là xâu 160-bit dưới đây:
A.1.3 Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu 3 byte là bản mã ASCII của ‘abc’. Nó tương ứng với xâu bit: 01100001 01100010 01100011’
Sau quá trình đệm, khối 16 từ đơn nhận được từ xâu dữ liệu như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các giá trị X0, X1, X2, X3, X4, X’0, X’1, X’2, X’3, X’4 nhận được lần lượt như sau (biểu diễn dưới dạng thập lục phân):
Mã băm là xâu 160 bit sau:
A.1.4 Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của ‘message digest’
Mã băm là xâu 160 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.1.5 Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 26 byte là bản mã ASCII của
‘abcdefghijklmnopqrstuvwxyz’
Mã băm là xâu 160 bit sau:
A.1.6 Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
Mã băm là xâu 160 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.1.7 Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 80 byte là bản mã ASCII của tám lần lặp xâu ‘1234567890’
Mã băm là xâu 160 bit sau:
A.1.8 Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
Sau quá trình đệm, hai khối 16 từ nhận được từ xâu dữ liệu như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các giá trị X0, X1, X2, X3, X4, X’0, X’1, X’2, X’3, X’4 (biểu diễn dưới dạng thập lục phân) nhận được lần lượt như sau đối với việc tính khối thứ hai:
Mã băm là xâu 160 bit sau:
A.1.9. Ví dụ 9
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 160 bit sau:
A.1.10. Ví dụ 10
Trong ví dụ này xâu dữ liệu là xâu 112 byte là bản mã ASCII của
Mã băm là xâu 160 bit sau:
A.1.11. Ví dụ 11
Trong ví dụ này xâu dữ liệu là xâu 32 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 160 bit sau:
A.2. Hàm băm chuyên dụng 2
A.2.1. Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 128-bit dưới đây:
A.2.2. Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là mã ASCII của ký tự ‘a’.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.2.3. Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu có 3 byte là bản mã ASCII của ‘abc’. Tương ứng với xâu bit:
‘01100001 01100010 01100011’
Sau quá trình đệm, khối đơn 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X’0, X’1, X’2, X’3 (biểu diễn dưới dạng hệ thập lục phân) nhận được lần lượt như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.2.4. Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của
'message digest'
Mã băm là xâu 128 bit sau:
A.2.5. Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 26 byte là bản mã ASCII của
‘abcdefghijklmnopqrstuvwxyz’
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.2.6. Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
Mã băm là xâu 128 bit sau:
A.2.7. Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 80 byte là bản mã ASCII lặp 8 lần xâu ‘1234567890’
Mã băm là xâu 128 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.2.8. Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
Sau quá trình đệm, hai khối 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X’0, X’1, X’2, X’3 (biểu diễn dưới dạng hệ thập lục phân) nhận được trong quá trình tính toán đối với khối thứ nhất lần lượt như sau:
Các giá trị X0, X1, X2, X3, X’0, X’1, X’2, X’3 (biểu diễn dưới dạng hệ thập lục phân) nhận được trong quá trình tính toán đối với khối thứ hai lần lượt như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 128 bit sau:
A.2.9. Ví dụ 9
Trong ví dụ này xâu dữ liệu là xâu 1000000 byte là bản mã ASCII của 106 lần kí tự ‘a’.
Mã băm là xâu 128 bit sau:
A.2.10. Ví dụ 10
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 128 bit sau:
A.2.11. Ví dụ 11
Trong ví dụ này xâu dữ liệu là xâu 32 byte là ba3n mã ASCII của
Mã băm là xâu 128 bit sau:
A.3. Hàm băm chuyên dụng 3
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không. Mã băm là xâu 160-bit dưới đây:
A.3.2. Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là bản mã ASCII của ký tự ‘a’.
Mã băm là xâu 160-bit dưới đây:
A.3.3. Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu 3 byte là bản mã ASCII của ‘abc’. Nó tương ứng với xâu bit:
‘01100001 01100010 01100011’
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các giá trị X0, X1, X2, X3, X4 (biểu diễn dưới dạng hệ thập lục phân) nhận được như sau:
Mã băm là xâu 160 bit sau:
A.3.4. Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của ‘message digest’
Mã băm là xâu 160 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.3.5. Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 26 byte là bản mã ASCII của
‘abcdefghijklmnopqrstuvwxyz’
Mã băm là xâu 160 bit sau:
A.3.6. Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
Mã băm là xâu 160 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.3.7. Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 80 byte là bản mã ASCII lặp 8 lần của xâu ‘1234567890’
Mã băm là xâu 160 bit sau:
A.3.8. Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
Sau quá trình đệm, hai khối 16 từ nhận được từ xâu dữ liệu như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các giá trị X0, X1, X2, X3, X4 (biểu diễn dưới dạng thập lục phân) nhận được trong quá trình tính toán khối thứ hai như sau:
Mã băm là xâu 160 bit sau:
A.3.9. Ví dụ 9
Trong ví dụ này xâu dữ liệu là xâu 1000000 byte là bản mã ASCII lặp 106 lần kí tự ‘a’
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.3.10. Ví dụ 10
Trong ví dụ này xâu dữ liệu là xâu 112 byte là bản mã ASCII của
(không có xuống dòng sau n đầu tiên)
Mã băm là xâu 160 bit sau:
A.3.11. Ví dụ 11
Trong ví dụ này xâu dữ liệu là xâu 32 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 160 bit sau:
A.4. Hàm băm chuyên dụng 4
A.4.1. Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 256-bit dưới đây:
A.4.2. Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là bản mã ASCII của ký tự ‘a’.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.4.3. Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu 3 byte là bản mã ASCII của ‘abc’. Nó tương ứng với xâu bit:
‘01100001 01100010 01100011’.
Sau quá trình đệm, khối đơn 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) nhận được như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị băm là xâu 256 bit sau:
A.4.4. Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của
‘message digest’
Giá trị băm là xâu 256 bit sau:
A.4.5. Ví dụ 5
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị băm là xâu 256 bit sau:
A.4.6. Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
Giá trị băm là xâu 256 bit sau:
A.4.7. Ví dụ 7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
‘1234567890’
Mã băm là xâu 256 bit sau:
A.4.8. Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
Sau quá trình đệm, hai khối 16 từ tiếp theo nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) lần lượt thu được trong quá trình thực hiện trên khối đầu tiên như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của hàm vòng trong quá trình tính toán khối đầu tiên:
Các giá trị Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 (biểu diễn dưới dạng thập lục phân) lần lượt thu được trong quá trình thực hiện trên khối thứ hai như sau:
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của vòng lặp cuối cùng của hàm vòng.
Giá trị băm đối với bản tin này là:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.4.9. Ví dụ 9
Trong ví dụ này xâu dữ liệu là xâu 1000000 byte gồm mã ASCII của kí tự ‘a’ được lặp 106 lần.
Mã băm là xâu 256 bit sau:
A.4.10. Ví dụ 10
Trong ví dụ này xâu dữ liệu là xâu 112 byte là bản mã ASCII của
(không có xuống dòng sau n đầu tiên).
Mã băm là xâu 256 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.4.11.Ví dụ 11
Trong ví dụ này xâu dữ liệu là xâu 32 byte là bản mã ASCII của
Mã băm là xâu 256 bit sau:
A.5. Hàm băm chuyên dụng 5
A.5.1. Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 512-bit dưới đây:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.5.2. Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là mã ASCII của ký tự ‘a’.
Mã băm là xâu 512-bit dưới đây:
A.5.3. Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu 3 byte là bản mã ASCII của ‘abc’. Nó tương ứng với xâu bit: ‘01100001 01100010 01100011’
Sau quá trình đệm, khối đơn 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) lần lượt thu được như sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của vòng lặp cuối cùng của hàm vòng.
Giá trị băm là xâu 512 bit sau:
A.5.4. Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị băm là xâu 512 bit sau:
A.5.5. Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 26 byte là bản mã ASCII của
‘abcdefghijklmnopqrstuvwxyz’
Giá trị băm là xâu 512 bit sau:
A.5.6. Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị băm là xâu 512 bit sau:
A.5.7. Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 80 byte là bản mã ASCII lặp 8 lần xâu
‘1234567890’
Mã băm là xâu 512 bit sau:
A.5.8. Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 512 bit sau:
A.5.9. Ví dụ 9
Trong ví dụ này xâu dữ liệu là xâu 1000000 byte là bản mã ASCII kí tự ‘a’ lặp 106 lần.
Mã băm là xâu 512 bit sau:
A.5.10. Ví dụ 10
Trong ví dụ này xâu dữ liệu là xâu 112 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Sau quá trình đệm, hai khối 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) thu được trong tiến trình khối đầu tiên:
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của hàm vòng trong tiến trình khối đầu tiên:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra bước lặp cuối cùng của hàm vòng:
Giá trị băm thu được đối với bản tin này là:
A.5.11. Ví dụ 11
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 512 bit sau:
A.6. Hàm băm chuyên dụng 6
A.6.1. Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 384-bit dưới đây:
A.6.2. Ví dụ 2
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 384-bit dưới đây:
A.6.3. Ví dụ 3
Trong ví dụ này, xâu dữ liệu là xâu 3 byte gồm mã ASCII của ‘abc’. Nó tương ứng với xâu bit:
‘01100001 01100010 01100011’
Sau quá trình đệm, khối đơn 16 từ nhận được từ xâu dữ liệu như sau:
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) thu được:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của vòng lặp cuối cùng của hàm vòng:
Giá trị băm là xâu 384 bit sau:
A.6.4. Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của
‘message digest’
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.6.5. Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 26 byte là bản mã ASCII của
‘abcdefghijklmnopqrstuvwxyz’
Giá trị băm là xâu 384 bit sau:
A.6.6. Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.6.7. Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 80 byte bao gồm 8 phép lặp của bản mã ASCII của
‘1234567890’
Mã băm là xâu 384 bit sau:
A.6.8. Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.6.9. Ví dụ 9
Trong ví dụ này xâu dữ liệu là xâu 1000000 byte là bản mã ASCII tương ứng kí tự ‘a’ được lặp 106 lần.
Mã băm là xâu 384 bit sau:
A.6.10. Ví dụ 10
Trong ví dụ này xâu dữ liệu là xâu 112 byte là bản mã ASCII của
Sau quá trình đệm, hai khối 16 từ sau nhận được từ xâu dữ liệu:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các giá trị X0, X1, X2, X3, X4, X5, X6, X7 (biểu diễn dưới dạng thập lục phân) thu được trong tiến trình khối đầu tiên:
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của hàm vòng trong tiến trình khối đầu tiên:
Các giá trị Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 (biểu diễn dưới dạng thập lục phân) thu được trong tiến trình khối thứ hai:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tám giá trị tiếp theo Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của vòng lặp cuối cùng của hàm vòng:
Giá trị băm đối với bản tin này là:
A.6.11. Ví dụ 11
Trong ví dụ này xâu dữ liệu là xâu 32 byte là bản mã ASCII của
Mã băm là xâu 384 bit sau:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.7. Hàm băm chuyên dụng 7
A.7.1. Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 512-bit dưới đây:
A.7.2. Ví dụ 2
Trong ví dụ này, xâu dữ liệu gồm một byte duy nhất, chính là mã ASCII của ký tự ‘a’.
Mã băm là xâu 512-bit dưới đây:
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Trong ví dụ này, xâu dữ liệu là xâu 3 byte là bản mã ASCII của ‘abc’.
Sau quá trình đệm, ma trận Z’ kích thước 8 xã 8 nhận được từ xâu dữ liệu là như sau.
Ma trận K0 (từ giá trị khởi tạo IV) và ma trận X” là như sau.
Sau đây là các giá trị liên tiếp (biểu diễn ở dạng thập lục phân) của các biến Ki với i = 1 tới 10 và W’
Giá trị đầu ra Y’ từ hàm vòng là như sau.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là 512 bit sau.
A.7.4. Ví dụ 4
Trong ví dụ sau, xâu dữ liệu là xâu 14 byte là bản mã ASCII của
‘message digest’
Mã băm là xâu 512 bit sau.
A.7.5. Ví dụ 5
Trong ví dụ sau, xâu dữ liệu là xâu 26 byte gồm mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 512 bit sau.
A.7.6. Ví dụ 6
Trong ví dụ sau, xâu dữ liệu là xâu có 62 byte là bản mã ASCII của
‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’
Mã băm là xâu 512 bit sau.
A.7.7. Ví dụ 7
Trong ví dụ sau, xâu dữ liệu là xâu có 80 byte gồm mã ASCII của 8 lần lặp lại của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 512 bit sau.
A.7.8. Ví dụ 8
Trong ví dụ sau, xâu dữ liệu là xâu 32 byte gồm mã ASCII của
Sau quá trình đệm, hai ma trận 8x8 nhận được từ xâu dữ liệu là như sau.
Ma trận Z’ thứ nhất như sau.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Sau đây là các giá trị liên tiếp (biểu diễn theo hệ thập lục phân) của các biến Ki với i = 1 tới 10 và W’.
Giá trị đầu ra Y’ của hàm vòng đối với ma trận Z’ thứ nhất là như sau.
Ma trận Z’ thứ hai là như sau.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Sau đây là giá trị liên tiếp (biểu diễn thập lục phân) của các biến Ki với i = 1 tới 10 và W’.
Giá trị đầu ra Y’ từ hàm vòng cho mẫu trận Z’ thứ hai là
Mã băm là xâu 512 bit sau
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Trong ví dụ này xâu dữ liệu là xâu có 1000000 byte là bản mã ASCII của ‘a’ được lặp lại 106 lần.
Mã băm là xâu 512 bit sau.
A.8 Hàm băm chuyên dụng 8
A.8.1 Ví dụ 1
Trong ví dụ này, xâu dữ liệu là một xâu rỗng, tức là xâu có độ dài bằng không.
Mã băm là xâu 224-bit dưới đây:
A.8.2 Ví dụ 2
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 224 bit sau đây
A.8.3 Ví dụ 3
Trong ví dụ này xâu dữ liệu là xâu ba byte bản mã ASCII của ‘abc’. Xâu này tương đương với xâu bit ‘01100001 01100010 01100011’.
Sau quá trình đệm 16 khối từ đơn nhận được từ xâu dữ liệu như sau:
Sau đây là (biểu diễn ở hệ thập lục phân của) các giá trị liên tiếp của các biến số Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 224 bit sau:
A.8.4 Ví dụ 4
Trong ví dụ này xâu dữ liệu là xâu 14 byte là bản mã ASCII của ‘message digest’
Mã băm là xâu 224 bit sau:
A.8.5 Ví dụ 5
Trong ví dụ này, xâu dữ liệu là xâu 62 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Mã băm là xâu 224 bit sau:
A.8.6 Ví dụ 6
Trong ví dụ này xâu dữ liệu là xâu 80 byte bao gồm 8 phép lặp của bản mã ASCII của ‘1234567890’
Mã băm là xâu 224 bit sau:
A.8.7 Ví dụ 7
Trong ví dụ này xâu dữ liệu là xâu 56 byte là bản mã ASCII của
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Sau đây là (biểu diễn hệ thập lục phân) của các giá trị liên tiếp của các biến số Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 trong xử lý khối đầu tiên:
Tám từ sau đây Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 biểu diễn đầu ra của hàm vòng trong xử lý khối đầu tiên
Sau đây là (biểu diễn hệ thập lục phân) các giá trị liên tiếp của các biến số Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 trong xử lý khối thứ hai.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị băm là xâu 224 bit sau đây:
A.8.8 Ví dụ 8
Trong ví dụ này xâu dữ liệu là xâu 1.000.000 byte là bản mã ASCII của ‘a’ lặp lại 106 lần.
Mã băm là xâu 224 bit sau đây.
A.8.9 Ví dụ 9
Trong ví dụ này xâu dữ liệu chỉ là một bit 0.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
A.8.10 Ví dụ 10
Trong ví dụ này xâu dữ liệu chỉ là một bit 1.
Mã băm là xâu 224 bit sau đây.
A.8.11. Ví dụ 11
Trong ví dụ này xâu dữ liệu bao gồm 101 bit là 1010101...01.
Mã băm là xâu 224 bit sau đây.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Trong ví dụ này xâu dữ liệu bao gồm 256 octet, là 00 01 02 03 ...FE FF.
Mã băm là xâu 224 bit sau đây.
A.8.13 Ví dụ 13
Trong ví dụ này xâu dữ liệu là H0 bao gồm 224 bit 0. Đối với i = 1 đến 100 gọi Hi là mã băm của Hi-1.
Mã băm H100 là xâu 224 bit sau đây.
A.9 Các véctơ kiểm tra hoàn chỉnh đối với các hàm băm chuyên dụng 4, 5, 6 và 8
Các hàm băm chuyên dụng SHA-256, SHA-384, SHA-512 và SHA-224 được đặc tả như là một phần của TCVN 11816-3:2017 (ISO/IEC 10118-3). Phụ lục A.4, A.5, A.6 và A.8 tương ứng cung cấp các véctơ kiểm tra đối với bốn hàm băm này. Một thiếu sót quan trọng của các ví dụ này là tất cả các giá trị đầu vào được kết hợp riêng rẽ từ các ký tự đánh số theo bảng chữ cái mã ASCII. Bổ sung này chứa một tập đầy đủ hơn các véctơ kiểm tra đối với các hàm băm này.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. Các đầu vào độ dài từ 1 đến 512 (đối với SHA-224 và SHA-256) hoặc 1024 (đối với SHA-384 và SHA-512) đã được định nghĩa để kiểm tra lược đồ đệm. (Các ví dụ trong Phụ lục A.4 - A.6 và A.8 chỉ chứa các thông báo với các độ dài là bội của 8). Một số nhỏ các véctơ kiểm tra với độ dài lớn hơn được đưa vào.
2. Đảm bảo rằng tất cả các từ 32 bit (SHA-224 và SHA-256) hoặc tất cả các từ 64 bit (SHA-384 và SHA-512) với trọng số Hamming 1 xảy ra ít nhất một lần như là một phần của đầu vào. Điều này được thực hiện để kiểm tra các hàm mở rộng thông báo.
3. Xử lý tràn nhớ cờ carry từ một byte sang byte khác được kiểm tra bằng cách đảm bảo rằng các phép cộng sau đây xảy ra ít nhất một lần:
a. Đối với SHA-224 và SHA-256
b. Đối với SHA-384 và SHA-512
Danh sách đầy đủ các véctơ kiểm tra có thể được tìm thấy tại địa chỉ URL sau đây:
http://www.iaik.tu-graz.ac.at/research/sha2_testvectors.zip
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(Tham khảo)
B.0 Giới thiệu
Trong các phần này là các đặc tả hoàn chỉnh của hàm băm chuyên dụng 1, 2 và 3 theo ngôn ngữ đặc tả Z. Các ký hiệu cho Z được mô tả trong mục [1].
Đặc tả Z vẫn giữ được tên, cấu trúc, ... được sử dụng trong phần chính của TCVN 11816 (ISO/IEC 10118).
Đặc tả Z được viết hoàn toàn trong Z, bao gồm cả các bình luận. Các bình luận trỏ đến các phần của văn bản chính trong TCVN 11816 (ISO/IEC 10118).
Đặc tả Z mô hình hóa thông điệp như một xâu tuần tự các số tự nhiên 0 và 1 (xâu).
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#3 Các thuật ngữ và định nghĩa
hàm vòng
Từ
#4 Kí hiệu (và thuật ngữ viết tắt)
Sn() - Chỉ cần để xác định S như Sn (lặp quan hệ) được định nghĩa trong Z.
Ù Ú Å Được định nghĩa cho các từ chỉ khi có tất cả các yêu cầu
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#5 Các yêu cầu
#6 Mô hình cho hàm băm chuyên dụng
Quá trình băm
Bước 1 (đệm)
StringMultiple_L1 == {s: String | #s mod L1 = 0}
| pad: String → StringMultiple_L1
Bước 2 (phân tách)
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Bước 3 (lặp)
Bước 4 (phép cắt)
#7 Hàm băm chuyên dụng 1
Maximum_Length_of_String = (2 ↑ 64) -1
#7.1 Các tham số, hàm số và hằng số
#7.1.1 Các tham số
L1 = 512
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
LH = 160
#7.1.2 Quy ước thứ tự byte
#7.1.3 Các hàm số
Indexed_g == {g:seq (Word x Word x Word → Word) | # g = 80}
#7.1.4 Các hằng số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#7.1.5 Giá trị khởi tạo
#7.2 Phương pháp đệm
#7.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
B.2. Đặc tả của hàm băm chuyên dụng 2
Các phần #3, #4, #5, #6 và B.1.1 của Phụ lục B.1 được lặp lại trong phần này của Phụ lục.
#8 Hàm băm chuyên dụng 2
Maximum_Length_of_String = (2 ↑ 64) -1
#8.1 Các tham số, hàm số và hằng số
#8.1.1 Các tham số
L1 = 512
L2 = 128
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#8.1.2 Quy ước thứ tự byte
Phần # 7.1.2 của Phụ lục B.1 được lặp lại tại phần này.
#8.1.3 Các hàm số
Phần # 7.1.3 của Phụ lục B.1 được lặp lại tại phần này.
g2 == (1...64) 1 g
#8.1.4 Các hằng số
Phần # 7.1.4 của Phụ lục B.1 được lặp lại tại phần này chỉ đối với t, t’ a, a’.
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#8.2 Phương pháp đệm
Phần #7.2 của Phụ lục B.1 được lặp lại tại phần này.
#8.3 Mô tả hàm vòng
Phần #7.3 của Phụ lục B.1 được lặp lại tại phần này đối với việc xác định của StringWord và Split_String_to_StringWord
B.3 Đặc tả của hàm băm chuyên dụng 3
Các phần #3, #4, #5, #6 và B.1.1 của Phụ lục B.1 được lặp lại trong phần này của Phụ lục.
#9 Hàm băm chuyên dụng 3
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#9.1 Các tham số, hàm số và hằng số
#9.1.1 Các tham số
L1 = 512
L2 = 160
LH =160
#9.1.2 Trật tự byte
#9.1.3 Các hàm số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
#9.1.5 Giá trị khởi tạo
#9.2 Phương pháp đệm
# 9.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(Quy định)
Phụ lục này liệt kê mô đun ASN.1 được gán cho hàm băm chuyên dụng được đặc tả trong TCVN 11816-3.
Thư mục tài liệu tham khảo
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
[2] U.S. Department of Commerce/National Institute of Standards and Technology, Secure Hash Standard, Federal Information Processing Standards Publication (FIPS PUB) 180-2, 1st August 2002
[3] Bosselaers, H. Dobbertin and B. Preneel, The new cryptographic hash function RIPEMD-160, Dr. Dobbs, Vol. 22 No.1, pp.24-28, January 1997
[4] P.S.L.M. Barreto and V. Rijmen. The Whirlpool Hashing Function, First open NESSIE Workshop, Leuven, 13-14 November 2000
MỤC LỤC
Lời nói đầu
1 Phạm vi áp dụng
2 Tài liệu viện dẫn
3 Các thuật ngữ và định nghĩa
4 Các ký hiệu (và thuật ngữ viết tắt)
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6 Mô hình hàm băm chuyên dụng
7 Hàm băm chuyên dụng 1 (RIPEMD-160)
7.1 Các tham số, hằng số và hàm số
7.2 Phương pháp đệm
7.3 Mô tả hàm vòng
8 Hàm băm chuyên dụng 2 (RIPEMD-128)
8.1 Các tham số, hàm số và hằng số
8.2 Phương pháp đệm
8.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
9.1 Các tham số, hàm số và hằng số
9.2 Phương pháp đệm
9.3 Mô tả hàm vòng
10 Hàm băm chuyên dụng 4 (SHA-256)
10.1 Các tham số, hàm số và hằng số
10.2 Phương pháp đệm
10.3 Mô tả hàm vòng
11 Hàm băm chuyên dụng 5 (SHA-512)
11.1 Các tham số, hàm số và hằng số
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
11.3 Mô tả hàm vòng
12 Hàm băm chuyên dụng 6 (SHA-384)
12.1 Các tham số, hàm số và hằng số
12.2 Phương pháp đệm
12.3 Mô tả hàm vòng
13 Hàm băm chuyên dụng 7 (WHIRLPOOL)
13.1 Các tham số, hàm số và hằng số
13.2 Phương pháp đệm
13.3 Mô tả hàm vòng
...
...
...
Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14.1 Các tham số, hàm số và hằng số
14.2 Phương pháp đệm
14.3 Mô tả hàm vòng
Phụ lục A (Tham khảo) Các ví dụ
Phụ lục B (Tham khảo) Đặc tả hình thức
Phụ lục C (Quy định) Mô đun ASN.1
Thư mục tài liệu tham khảo
Tiêu chuẩn quốc gia TCVN 11816-3:2017 (ISO/IEC 10118-3:2004 with amendment 1:2006) về Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 3: Hàm băm chuyên dụng
Số hiệu: | TCVN11816-3:2017 |
---|---|
Loại văn bản: | Tiêu chuẩn Việt Nam |
Nơi ban hành: | *** |
Người ký: | *** |
Ngày ban hành: | 01/01/2017 |
Ngày hiệu lực: | Đã biết |
Tình trạng: | Đã biết |
Văn bản đang xem
Tiêu chuẩn quốc gia TCVN 11816-3:2017 (ISO/IEC 10118-3:2004 with amendment 1:2006) về Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 3: Hàm băm chuyên dụng
Chưa có Video