Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 1

Trang 1

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 2

Trang 2

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 3

Trang 3

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 4

Trang 4

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 5

Trang 5

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 6

Trang 6

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 7

Trang 7

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 8

Trang 8

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 9

Trang 9

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 202 trang nguyenduy 18/07/2024 290
Bạn đang xem 10 trang mẫu của tài liệu "Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng

Luận án Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng
ABCD.1 4DE9888DF46405447442A1482FCE6D7A 66 
24 12345E789ABCD.1 FAFDE0BBCA1B02062E0C41EA51EAA4CA 59 
iK iMD 1( , )H id MD MD
73 
25 123456689ABCD.1 5647C707690A665C8116D164156436EF 63 
26 123456589ABCD.1 DB844A2E5087617FAD802DE7B725F43B 72 
27 123456389ABCD.1 99D83BC5E452CF8C220F3820F57056FE 67 
28 123456F89ABCD.1 02691B4BAF2C19D4C2BE0A13118FA8D7 69 
29 123456799ABCD.1 94C0AE07C7FD69D0A29A3712DD1E46D9 66 
30 1234567A9ABCD.1 C5931124D96A37042A1747C7B2C38C07 57 
31 1234567C9ABCD.1 B1230E29431CE4E5AB1FAF3156463412 65 
32 123456709ABCD.1 66294D4112E28815F28A8961C090F57A 59 
33 123456788ABCD.1 0A26094962B080258C1109D8BD45AEB2 67 
34 12345678BABCD.1 1687BB788377B56AF3C3140EA7B8583C 62 
35 12345678DABCD.1 AA620AADE21389501DB22F4281F0D87A 60 
36 123456781ABCD.1 C2ED02CC3FEF80EACB2D9DDD0E9FF6A9 64 
37 123456789BBCD.1 88B925269AD39CA9B8AC3D1625A1C381 66 
38 1234567898BCD.1 CABC30D0FEACB816F470754EACB77855 69 
39 123456789EBCD.1 E3CBAEE9C7BA6683BB6F6F46A107494D 69 
40 1234567892BCD.1 C23FFF533ABD9CAF11CE8BD3B7DE4A46 71 
41 123456789AACD.1 49225C04B405E2C2BED98B6F8F8BDCFE 59 
42 123456789A9CD.1 7B0E7D93EC5D639AAAF2AC7C73139D8F 59 
43 123456789AFCD.1 3F15D9AE032B43BF01218A1B79296C65 65 
44 123456789A3CD.1 44B6283EEDACE7A3D39153A18700E9A8 75 
45 123456789ABDD.1 66390EDB9633D9DD84EABE37DA6D3F80 67 
46 123456789ABED.1 B76FEF9E0599154730853DFEB268F128 72 
47 123456789AB8D.1 2E20F17397ECD59C88DC48F4EBA669EC 73 
48 123456789AB4D.1 E736E98379F0DF6113E44E6151DA5426 59 
49 123456789ABCC.1 2B5BC05B31AAD3467EAC83A06C820722 67 
50 123456789ABCF.1 03F5B238816A4C288E6A8D7617902635 62 
51 123456789ABC9.1 31C16ED3723753980EDF50036D49EBFD 59 
52 123456789ABC5.1 3241034DEE9B6DF8A646133F3EB58FC1 62 
74 
Khoảng cách Hamming trung bình: 
52
( ) 0
1
1
( , ) 64,40
52
H tb H i
i
d d MD MD
  (2.28) 
Nhận xét: Như vậy bằng việc sử dụng cấu trúc nhóm nhân và cấp số nhân cyclic 
trên vành đa thức để tạo khóa cho mật mã khối, ta có thể xây dựng một hàm băm 
MDC-2 với khối mật mã dựa trên cơ sở mạng hoán vị Feistel với một số ưu điểm sau: 
- Hàm băm có độ khuếch tán rất tốt, thể hiện ở các khoảng cách Hamming đã 
tính được theo các biểu thức (2.27) và (2.28). 
- Số lượng khóa tìm được rất nhiều ( 522 1kN ) theo công thức tính toán [4] 
đáp ứng yêu cầu thực tế (vì khóa có độ dài 53 bít). 
- Việc tính toán khá đơn giản, các khóa được tạo từ các cấp số nhân cyclic và 
có thể thực hiện được dễ dàng khi thiết kế và xây dựng mạch phần cứng (do ở đây, 
việc mã hóa có thể được thực hiện được chỉ với thuật toán nhân và bình phương đa 
thức). 
2.5. KẾT LUẬN CHƯƠNG II 
 Trong chương này nghiên cứu sinh đề xuất một số hệ mật và hàm băm mới. 
Với hàm băm xây dựng dựa trên hệ mật theo sơ đồ Lai-Massey thì độ khuếch tán của 
hàm băm tạo ra đạt khoảng trên dưới 32 bít (Khi độ dài mã băm được tạo ra là 64 bít). 
Với hệ mật lai ghép để xây dựng hàm băm 64 bít, trong đó hàm mã hóa sử 
dụng phép mã hóa của hệ mật Pohlig-Hellman và sơ đồ mã hóa theo mạng Feistel cân 
bằng thì độ khuếch tán đạt được cũng xấp xỉ 32 bít. 
Và cuối cùng là hàm băm dạng MDC-2 (128 bít) được xây dựng với khối mật 
mã dựa trên cấp số nhân cyclic và lưu đồ thuật toán Feistel có sửa đổi với một số ưu 
điểm: Số khóa nhiều; mạch điện phần cứng đơn giản, đễ dàng tính toán và thiết kế; 
hàm băm cũng có độ khuếch tán rất tốt, thể hiện ở các khoảng cách Hamming đã tính 
được xấp xỉ 64 bít (tức là cũng khoảng một nửa chiều dài mã băm). 
75 
Các kết quả nghiên cứu này được trình bày ở các bài báo và bài hội thảo số 
[2], [3], [5] trong Danh mục các công trình công bố của tác giả. 
Với các kết quả bước đầu này, nghiên cứu sinh tiếp tục đề xuất xây dựng các 
hàm băm mở rộng mới ở chương sau. 
76 
CHƯƠNG 3. XÂY DỰNG MỘT LỚP CÁC HÀM BĂM 
MỞ RỘNG MỚI 
3.1. GIỚI THIỆU 
Ở chương II, NCS đã xây dựng các hệ mật và hàm băm mới có độ dài nhỏ (64 
bít đến 128 bít), các kết quả này nhằm mục đích khảo sát các thuật toán và lưu đồ 
trước khi xây dựng các hàm băm có độ dài lớn hơn. 
Kết quả mô phỏng ở chương II đều cho thấy các hàm băm mới này đều có được 
các đặc tính ưu việt: Độ khuếch tán tốt, số lượng khóa tạo ra nhiều, mạch điện phần 
cứng đơn giản dễ thiết kế và xây dựng, ... 
Trên cơ sở việc khảo sát đó, trong chương III này, nghiên cứu sinh đề xuất xây 
dựng một số hàm băm mở rộng mới: 
- Xây dựng hàm băm mở rộng mới MDC-3 với độ dài mã băm tạo ra là 384 bít 
(Dựa trên hệ mật mã khối với 128 bít vào và 128 bít ra. Sơ đồ hàm băm gồm 3 nhánh, 
mỗi nhánh có một hàm mã hóa, dữ liệu đầu vào và đầu ra ở mỗi nhánh đều có độ dài 
là 128 bít). 
- Xây dựng hàm băm mở rộng mới dạng MDC-4 (Không giống như hàm băm 
kép MDC-4 thông thường chỉ là cách lặp lại 2 lần của hàm băm MDC-2 và chỉ có độ 
dài mã băm 128 bít). Ở đây hàm băm MDC-4 được xây dựng với sơ đồ gồm 4 nhánh, 
mỗi nhánh 128 bít, mã băm cuối cùng được tạo ra là cách kết hợp móc xích của các 
nửa mã băm ở các nhánh theo từng đôi một để tạo ra sự phụ thuộc lẫn nhau. Hàm 
băm mở rộng này có độ dài 512 bít, lớn hơn rất nhiều so với các hàm băm kép truyền 
thống trước đây (thường chỉ có độ dài 128 bít). 
- Xây dựng hàm băm mở rộng mới MDC 512 bít: Với mục đích nghiên cứu và 
phát triển các hàm băm, ở đây nghiên cứu sinh đề xuất thêm một sơ đồ hàm băm mở 
rộng thực hiện theo sơ đồ Miyaguchi - Preneel [4]. Sơ đồ mã hóa thực hiện theo mạng 
77 
Feistel bốn nhánh không cân bằng, hàm mã hóa và các khóa con của các vòng mã hóa 
dựa trên các cấp số nhân cyclic của vành đa thức chẵn 
2
[ ]/ 1nx x với 
62 64.n 
Các hàm băm này sử dụng các lưu đồ mã hóa khác nhau (Feistel; Lai-Massey; 
Lai-Massey và Feistel kết hợp). Mục đích chỉ khảo sát tính khuếch tán của hàm băm 
(sử dụng lưu đồ nào cũng được). 
3.2. XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC-3 
Từ hàm băm dạng MDC-2 ở chương II, ở đây, nghiên cứu sinh đề xuất một 
phương pháp xây dựng hàm băm mới có độ dài đầu ra là 384 bit dựa trên các cấp số 
nhân cyclic của vành đa thức, sơ đồ như ở hình 3.1. 
Hình 3.1. Sơ đồ hàm băm MDC-3 đề xuất 
 xi 
 g E 
 H1i-1 
 H1i 
 A B 
 A D 
Out 1 
 g E 
 H2i 
 A B 
 A D 
Out 2 
 g E 
 H3i 
 A B 
 A D 
Out 3 
 H2i-1 H3i-1 
 Hi 
78 
Hình 3.2. Sơ đồ khối mật mã E 
Dữ liệu bản rõ (128 bít) 
Dữ liệu mã hóa (128 bít) 
 
 L0(64) R0(64) 
 L1(64) R1(64) 
K1 
f 
 
 L16(64) R16(64) 
 L15(64) R15(64) 
f 
 IP 
 IP-1 
Hoán vị 
ban đầu 
Hoán vị 
đảo 
K16 
79 
Bảng 3.1. Bảng hoán vị ban đầu (IP) 
122 114 106 98 90 82 74 66 58 50 42 34 26 18 10 2 
124 116 108 100 92 84 76 68 60 52 44 36 28 20 12 4 
126 118 110 102 94 86 78 70 62 54 46 38 30 22 14 6 
128 120 112 104 96 88 80 72 64 56 48 40 32 24 16 8 
121 113 105 97 89 81 73 65 57 49 41 33 25 17 9 1 
123 115 107 99 91 83 75 67 59 51 43 35 27 19 11 3 
125 117 109 101 93 85 77 69 61 53 45 37 29 21 13 5 
127 119 111 103 95 87 79 71 63 55 47 39 31 23 15 7 
Khối E sẽ mã hóa cho chuỗi bit có độ dài 128. Trong sơ đồ hình 3.2 các hoán vị 
IP và hoán vị đảo 1IP được xây dựng và phát triển từ các bảng IP và 
1IP của hệ 
mật DES, cho trong bảng 3.1 và bảng 3.2. 
Khối mật mã E trong sơ đồ này được xây dựng theo dạng mô hình mạng hoán 
vị thay thế Feistel với một số thay đổi như trong hình 3.2. 
Tương tự như hàm băm MDC-2 ở chương II, hàm mã hóa f được xây dựng trên 
cơ sở hệ mật sử dụng các CGP trên vành đa thức 2[ ]/ 1
nx x với 
6 642n 
Trong sơ đồ ở hình 3.1, các khối bít đầu ra ở mỗi nhánh (128 bít) được tách ra 
hai nửa (mỗi nửa 64 bít để) ghép móc xích với nhau với mong muốn đầu ra sẽ thay 
đổi một nửa chiều dài mã băm. Kết quả cụ thể sẽ được khảo sát bằng việc mô phỏng 
dưới đây. 
Các khóa Ki là các phần tử trong một cấp số nhân xây dựng trên vành đa thức 
có hai lớp kề cyclic và được chọn như sau [7]: 
61
0 mod 1;( 1...16)
i
i aK K K x i (3.1) 
80 
Bảng 3.2. Bảng hoán vị đảo (IP-1) 
80 16 96 32 112 48 128 64
79 15 95 31 111 47 127 63
78 14 94 30 110 46 126 62
77 13 93 29 109 45 125 61
76 12 92 28 108 44 124 60
75 11 91 27 107 43 123 59
74 10 90 26 106 42 122 58
73 9 89 25 105 41 121 57
72 8 88 24 104 40 120 56
71 7 87 23 103 39 119 55
70 6 86 22 102 38 118 54
69 5 85 21 101 37 117 53
68 4 84 20 100 36 116 52
67 3 83 19 99 35 115 51
66 2 82 18 98 34 114 50
65 1 81 17 97 33 113 49
với Ka là một đa thức có trọng số lẻ tùy ý sao cho: deg 61aK ; 0K là một phần 
tử nguyên thủy của nhóm nhân cyclic có cấp bằng 602 1 và cũng là một đa thức có 
trọng số lẻ [23]. 
Giả sử ta chọn khóa 30 1K x x 
 Phần tử đầu là 21aK x x . 
 Phần tử đầu của cấp số nhân và cũng là khóa đầu tiên tính được như sau: 
4 5
1 0 1 (045)aK K K x x  (3.2) 
 (Ghi chú: (045) là dạng biểu diễn số mũ của đa thức). 
 Sơ đồ khối bộ mã hóa f với khóa
 1
K
như hình 3.3. 
81 
Hình 3.3. Sơ đồ khối mã hóa f với khóa 4 5
1 1K x x 
 Một khâu mã hóa được thực hiện theo quy tắc: 
1
1 1( , )
i i i
i i i i
L R K
R L f R K
  
  
 (3.3) 
 Khối g trong sơ đồ hình 3.1 thực hiện việc trích chọn các khóa cho các vòng 
tiếp theo của quá trình băm. Khối mật mã E trong sơ đồ sử dụng các khóa có độ dài 
61 bit. Trong 61 bit khóa ở bước thứ i do khối g tạo ra thì 60 bit đầu tiên sẽ được trích 
chọn từ 128 bit của 1iH còn bit thứ 61 là bit kiểm tra chẵn lẻ. Việc trích chọn được 
lấy liên tục các bit cách nhau 2 vị trí trong 1iH (trong khoảng bit 1 đến bit 120). Dưới 
đây là một vài kết quả đánh giá của hàm băm xây dựng trên các cấp số nhân cyclic. 
 Bảng 3.3 là kết quả tính toán phân bố của 8 giá trị băm khi thay đổi duy nhất 
một bit dữ liệu bản tin rõ so với bản tin ban đầu [31], để thuận tiện cho việc quan sát 
ở đây chúng ta chỉ thay đổi 1 bit trong khối bản tin đầu tiên (Cụ thể là thay đổi lần 
lượt 8 bit đầu tiên). 
 Mỗi bản tin bao gồm 10 khối bản tin, mỗi khối có độ dài 384 bit. Các hàm 
băm sử dụng cùng một bộ khóa IVK khởi tạo như sau: 
 Chọn phần tử sinh của khóa khởi tạo cho các hàm băm là đa thức sau: 
19 27 45 541iK x x x x (3.4) 
Vào 
Ra 
(63) (4) (3) (2) (1) (0) ................... 
64 bít 
64 bít 
(5) 
82 
 Phần tử đầu là: 21aK x x 
 Phần tử đầu của cấp số nhân (khóa đầu tiên) cũng là khóa khởi tạo sẽ là: 
18 19 20 27
1
28 29 45 46
47 54 55 56
aiIVK K K K x x x x
x x x x
x x x x
 (3.5) 
 Bản tin rõ đầu tiên được xây dựng như sau: 
 Khối bản tin đầu tiên gồm 96 ký tự dạng hexa (tương ứng 384 bit vì mỗi ký 
gồm 4 bit) được chọn là: 
M0=0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789
ABCDEF0123456789ABCDEF0123456789ABCDEF 
Các khối bản tin tiếp theo (từ 2 đến 10) được tạo một cách ngẫu nhiên [31]. 
Bảng 3.3. Khoảng cách Hamming dH(MD0, MDi) khi các bản tin dữ liệu 
 khác bản tin ban đầu 1 bit 
TT Bản rõ iM Giá trị băm iMD 0( , )iHd MD MD 
0 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
7ECE10DB17D1D602020BAEDDCB5F7156 
AEB620E7E2D66FE846E64F5CBBA1164D 
402B9B64C1924FC6EC3D581FA0A02CAB 
0 
1 
1123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
6A015AA71AC4DBD8E89319958FF7F5C8 
EF1D2479AF24B358F77B1B9E699770DD 
9D5AE5F266254C5A8B5721488554C9EC 
190 
2 
2123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
6513440305C13EDCEDFF906359467E3B 
2091676950CA2A41F89FD5CCB73A5C04 
77F4C239EEAB4524A72BF7E98E01C36C 
202 
3 
4123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
60137994C8749F533EB118F636E84E5E 
BC640D132F52B5AB759D9FBC92E21259 
57B9726AA009A95EF4AD4E9B7BAE71E1 
186 
83 
4 
8123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
08B805C4A9CE3FAAFDBBA60FC0246050 
163785DF6194774F2C710EE2D5AFF64E 
04CAE51DA40A6AE0298AF00C90791304 
186 
5 
0023456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
C2252DDE50F4B32D71987C4D34A0FCDC 
96744860A259007A8F986276BA2A4501 
C015A2663C3F09C462681ED18C3380B2 
186 
6 
0323456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
090C76EBE74B45FCC82C9A28246DF6DA 
E81DF39FCA9F21C0282035B158E605C1 
C5301F9EE97D5EE004FA4C975FC28073 
192 
7 
0523456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
1D506129653F7F851886702343CA6BAF 
3966DB41633D3F7B3E8C7A06BF5864F0 
C9285E90DEA037739E0E0A2E6E1D579F 
202 
8 
0923456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
0123456789ABCDEF0123456789ABCDEF 
FA583602F0CDF37B6E52D04FF5EDA698 
653B5A4485F55AC2A5141887F64F7363 
E7839362E8DD08B4E83A43A33B1CD90E 
200 
(Ghi chú: Trong bảng 3.3 và bảng 3.4, các ký tự hexa được in đậm chứa các bit 
thay đổi). 
Tiến hành thay đổi lần lượt từng bit từ bit 1 đến bit 384 của khối bản tin đầu 
tiên 0M , tính khoảng cách Hamming 0( , )iHd MD MD của từng lần thay đổi, cuối cùng 
tính được khoảng cách Hamming trung bình giữa các giá trị băm: 
384
0( ) 1
192,26
1
( , )
384
iHH tb i
d d MD MD
  
 Ta thấy khoảng cách Hamming trung bình đạt xấp xỉ một nửa ( 192 bit) độ 
dài hàm băm. 
 Bảng 3.4 là kết quả tính toán phân bố của 8 giá trị băm khi thay đổi khóa khởi 
tạo
1
K , mỗi khóa khác với khóa đầu tiên 2 bit. Sở dĩ ta phải thay đổi 2 bit (tương ứng 
thay đổi 2 vị trí) là để đảm bảo đa thức sinh của khóa có trọng số lẻ. 
Bản tin đầu vào gồm 10 khối 384 bit (MD0 đến MD9) được tạo ngẫu nhiên [31]. 
84 
Để cho tiện minh họa ta chọn phần tử đầu của cấp số nhân tạo khóa là: 
Ka = 1 
Phần tử sinh tạo khoá cũng là khoá đầu tiên 1K là: 
1( )
123456789ABCDEF.1
hex
K 
Ta có trọng số của khóa 1K : 1W( ) 33K đảm bảo là một số lẻ. 
Ghi chú: 
- Do chiều dài của khóa là 61 bit, nên khi mô tả khóa bằng 16 ký tự hexa thì 
thực tế chỉ có 15 ký tự đầu là dạng hexa, còn ký tự cuối cùng chỉ gồm 1 bit nên nó 
nhận giá trị “1” hoặc “0”. 
- Vị trí các bit “1” trong các khóa
1
K tương ứng là số mũ của x trong đa thức sinh 
tạo khóa: 
1 (123... .1) (1000.0100.....1111.1)hex binK F  
5 56 57 58 601 ...x x x x x 
Tiến hành thay đổi lần lượt từng bit từ bit 1 đến bit 60 của khóa 1K , bit 61 của 
khóa dùng để kiểm tra chẵn lẻ, sau đó tính được khoảng cách Hamming trung bình 
giữa các giá trị băm với giá trị băm ban đầu như sau: 
60
0( ) 1
193,43
1
( , )
60
iHH tb i
d d MD MD
  
Bảng 3.4. Khoảng cách Hamming dH(MD0, MDi) của 8 mã băm 
với mã băm ban đầu khi các khóa khác khóa 1K 2 bit. 
TT Khóa Ki Giá trị băm MDi 0( , )H id MD MD 
0 123456789ABCDEF1 
102DFDDAF8977EBA12BC607A6486DEEAE7E6630BC8D8CD7A 
9EC9EDFE90898CECE6B2ECB21D6A0B3CABE2D3E4BC639289 
0 
1 023456789ABCDEF0 
20CAB1621589205B111C4B02F210C81AADEF4D74C8301A78 
815E2CF878ABA440C92F4EDBFF6CD12FDF1EF332740F2783 
176 
2 323456789ABCDEF0 
A2395333805933D04DEBC207E276A3E136AA351A76A1ED48 
1669420D2BE16AD929CB59121A3FEF3126D41238C34AA888 
194 
3 523456789ABCDEF0 6DBF778AD492EDBC21B9DE2B77D9DA8C6EAF90FC7960B177 184 
85 
D572A93A8BE4EAAD438EE1C9502D7694489F0F88EEE23AA5 
4 923456789ABCDEF0 
BE4625E74277F79725E64CE043C29D768A76EA2E15339D75 
5991CE630671427D1D26903590F45B67A4D6AEA18C94AA0E 
194 
5 133456789ABCDEF0 
ED0567AD1F80DAC26CDBBBA8D8319DF611602A2F3527BD29 
CB94CC8897EEE4B205ECD5B8AD57A2F3739DCBF1859167E7 
212 
6 103456789ABCDEF0 
79EBDE78580DA8D2AF3043136B5519C19618C40FA383AF10 
54AE3364958586354C06AC251C79578DCD2BD029B4632AEC 
176 
7 163456789ABCDEF0 
4EB307D302DFBC7192BE0C1F9E27B2CA3A7B881C52420A67 
9F46423A66BFEF9ECAA0AFC79967BB118064E05971AE6822 
192 
8 1A3456789ABCDEF0 
CD8ED0204F01D809D5B9FE8D9D2B77F30D44E57715A1272D 
23D9B48E75C402A9D0F07ABE5D7C9424DE92A764A2FB9A2F 
291 
Bảng 3.5 là liệt kê trọng số (chiều dài) của các khóa trong các bước băm, thực 
hiện với 3 lần thay đổi khóa đầu tiên. Chú ý, do bản tin có 10 khối nên sẽ có 10 khóa 
tương ứng với 10 bước băm, tuy nhiên khóa đầu tiên đã được chọn trước. Từ bảng 
3.5 ta thấy tất cả các khóa ở các bước băm đều có trọng số lẻ, đảm bảo điều kiện để 
tạo khóa. 
Bảng 3.5. Trọng số của các khóa tại các bước băm 
Khóa khởi đầu Ki 123456789ABCDEF1 023456789ABCDEF0 323456789ABCDEF0 
TT 
Trọng số của 
khóa tại các 
bước băm 
Khối 
mã hóa 
1 
( H ) 
Khối 
mã hóa 
2 
( H ) 
Khối 
mã hóa 
3 
( H ) 
Khối 
mã hóa 
1 
( H ) 
Khối 
mã hóa 
2 
( H ) 
Khối 
mã hóa 
3 
( H ) 
Khối 
mã hóa 
1 
 ( H ) 
Khối 
mã hóa 
2 
( H ) 
Khối 
mã hóa 
3 
( H ) 
1 1( )W K 31 31 31 29 29 29 29 29 29 
2 2( )W K 29 25 31 31 35 31 25 33 33 
3 3( )W K 35 35 31 33 35 29 37 29 31 
4 4( )W K 27 29 23 31 29 29 29 33 29 
5 5( )W K 25 27 27 31 29 31 33 27 27 
86 
6 6( )W K 31 29 29 31 31 25 33 29 35 
7 7( )W K 27 29 25 29 31 33 31 27 37 
8 8( )W K 33 37 31 29 33 37 35 35 31 
9 9( )W K 27 33 31 25 27 29 29 31 23 
10 10( )W K 29 31 29 27 29 27 29 37 31 
Như vậy với mục đích tăng độ dài mã băm nhằm hạn chế phép tấn công ngày 
sinh nhật, NCS đã đưa ra được một lược đồ hàm băm mới (MDC-3) với độ dài mã 
băm 384 bit. Hàm mật mã sử dụng trong lược đồ xây dựng theo các cấp số nhân cyclic 
trên vành đa thức, với các ưu điểm như: Số lượng khóa tạo được rất nhiều (được tính 
toán theo [4]), mạch điện phần cứng đơn giản (vì chỉ gồm các thanh ghi dịch và bộ 
cộng module 2). Các kết quả mô phỏng đánh giá hàm băm đề xuất cho thấy độ khuếch 
tán rất tốt, đạt xấp xỉ một nửa chiều dài mã băm khi ta thay đổi dữ liệu vào hoặc thay 
đổi khóa (khoảng cách mã Hamming trung bình đạt xấp xỉ 192 bít). Tuy nhiên, để có 
đánh giá toàn diện hơn cần có thêm các nghiên cứu khác như khả năng xung đột 
3.3. HÀM BĂM DỰA TRÊN HỆ MẬT MÃ KHỐI KẾT HỢP SƠ ĐỒ LAI-MASSEY 
VỚI FEISTEL 
Các hàm băm phổ biển hiện nay đều là các hàm băm thuộc họ MD như HAVAL, 
MD4, MD5, PANAMA, RIPEMD, SHA, VEST, [35, 37, 51] Trong đó nổi bật là 
MD5 và SHA-1, hai hàm băm này có số vòng mã hóa khá nhiều (64 vòng đối với 
MD5 và 80 vòng đối với SHA-1), các hàm mật mã thường trải qua nhiều khâu, do đó 
phải có yêu cầu nhất định về tài nguyên phần cứng cũng như tốc độ xử lý. 
Với mục đích xây dựng một hệ mật đơn giản nhưng vẫn đảm bảo một số yêu 
cầu như: độ khuếch tán tốt, dễ dàng mã hóa và giải mã [15, 16, 25], nghiên cứu sinh 
đề xuất một hệ mật mã khối kết hợp sơ đồ Lai - Massey với sơ đồ Feistel, và sau đó 
sử dụng hệ mật này vào xây dựng hàm băm. 
87 
3.3.1. Hệ mật mã khối kết hợp sơ đồ LAI-MASSEY và FEISTEL 
Như ta đã biết sơ đồ mã hóa Feistel cân bằng có ưu điểm: (1) Quá trình mã hóa 
và giải mã sử dụng chung một sơ đồ, chỉ khác nhau ở thứ tự khóa con, điều này sẽ 
tiết kiệm được tài nguyên khi thực hiện thuật toán trên phần cứng, (2) hàm mã hóa f 
có thể chọn với độ khó bất kỳ, vì không phải tìm hàm nghịch đảo. Tuy nhiên nó lại 
có nhược điểm: vì mỗi vòng mã chỉ thực hiện biến đổi một nửa khối dữ liệu, nên cần 
số vòng mã hóa lớn để đảm bảo độ khuếch tán của hệ mật, điều này làm giảm đáng 
kể tốc độ mã hóa. Ngoài ra các hệ mật xây dựng trên cơ sở mạng Feistel tồn tại lớp 
khóa tương đương, nên làm không gian khóa giảm đi một nửa. 
Trong khi đó với sơ đồ Lai-Massey, mỗi vòng mã hóa được thực hiện trên cả 
hai nửa dữ liệu làm tốc độ khuếch tán nhanh, và cũng không phải tính hàm ngược của 
hàm mã hóa f. 
Trên cơ sở các ưu điểm của cả hai sơ đồ này, nghiên cứu sinh đề xuất một hệ 
mật xây dựng theo sơ đồ kết hợp, trong đó mười sáu vòng mã hóa được đan xen luân 
phiên giữa sơ đồ Lai-Massey và sơ đồ Feistel như hình 3.4. 
Các vòng mã hóa lẻ được thực hiện theo sơ đồ Lai-Massey và có thuật toán như 
sau [31]: 
1 1 1
1 1 1
)
)
( ,
( ,
i ii i i
i ii i i
L L f L R k
R R f L R k
 
 
 (3.6) 
Và các vòng mã hóa chẵn thực hiện theo sơ đồ Feistel với thuật toán như sau 
[31]: 
1
1 1( , )
i i
i ii i
L R
R L f R k
 (3.7) 
88 
Hình 3.4. Sơ đồ mã hóa của hệ mật 
Các hàm mã hóa f trong sơ đồ sử dụng các CGP trên vành đa thức 2[ ]/ 1
nx x
với 2sn đây là vành đặc biệt không được xem xét đến trong lý thuyết mã sửa sai 
[8], tuy nhi

File đính kèm:

  • pdfluan_an_nghien_cuu_xay_dung_mot_lop_ham_bam_mo_rong_moi_va_k.pdf
  • pdfTomtatLANCSNguyenToanThang.pdf
  • pdfTrang TTLA (TA) NCSNguyenToanThang.pdf
  • pdfTrang TTLA (TV) NCSNguyenToanThang.pdf