Xây dựng được một lớp các hàm băm mới và hàm băm mở rộng
mới có tính khuếch tán cao: Các hàm băm MDC-64 bít, hàm băm
MDC-2, MDC-3, MDC-4, MDC-512 bit, . Các hệ mật tạo nên các
hàm băm này sử dụng các lưu đồ Feistel, Lai-Massey, Lai-Massey kết
hợp với Feistel với một số điểm mới, cải tiến.
- Xây dựng được các thuật toán để tạo nên các hàm đó, đồng thời
đề xuất khả năng ứng dụng của các hàm băm xây dựng mới vào một
số lĩnh vực mật mã học như: Chữ ký số, kiểm tra tính toàn vẹn của
thông điệp, bảo vệ mật khẩu.
27 trang |
Chia sẻ: honganh20 | Ngày: 07/03/2022 | Lượt xem: 319 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tóm tắt 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
xây dựng các hàm băm mở rộng).
-3-
- Xây dựng được một lớp các hàm băm mở rộng mới (là lớp hàm
băm có độ khuếch tán cao) với mục đích mở rộng chiều dài mã băm
qua việc ghép móc xích để tạo ra sự phụ thuộc các bít đầu ra với các
khối bít đầu vào (có kiểm chứng qua mô phỏng). Đồng thời đề xuất
khả năng ứng dụng các hàm băm mở rộng mới xây dựng.
5. Đối tượng nghiên cứu
- Lý thuyết đại số (đa thức, các kiểu phân hoạch vành đa thức, đa
thức sinh, ma trận ,).
- Các thuật toán mã hóa khóa bí mật, khóa công khai
- Lý thuyết hàm băm, cấp số nhân cylic trên vành đa thức
- Các ứng dụng của hàm băm.
6. Phương pháp nghiên cứu
- Phương pháp giải tích
- Phương pháp mô phỏng
- Phương pháp thực nghiệm
7. Ý nghĩa khoa học và thực tiễn của đề tài
Kết quả nghiên cứu của luận án có thể góp phần vào việc xây
dựng và phát triển các hàm băm, đặc biệt là các hàm băm mở rộng.
Luận án đã đưa ra được nhiều phương pháp xây dựng hàm băm khác
nhau. Hiện nay hàm băm có nhiều loại nhưng vẫn chưa thực sự phong
phú, vẫn cần xây dựng thêm các hàm băm mới để đáp ứng được các
ứng dụng đa dạng trong thực tế.
8. Bố cục của luận án
Luận án gồm: Phần mở đầu, 4 chương nội dung, Phần kết luận,
Phần phụ lục (trong đó có Chương trình phần mềm mô phỏng kết quả
nghiên cứu).
Chương I tập trung giới thiệu về phương pháp xây dựng các hệ
-4-
mật cơ bản (khóa bí mật, khóa công khai), về hàm băm và các cấp số
nhân cyclic.
Chương II trình bày một số kết quả mới của nghiên cứu sinh về
hàm băm, bao gồm: Hàm băm dựa trên hệ mật theo sơ đồ Lai-Massey;
Xây dựng một hệ mật mã lai ghép sử dụng hệ mật Pohlig-Hellman kết
hợp với sơ đồ Feistel và đề xuất khả năng sử dụng hệ mật này vào
hàm băm; Xây dựng hàm băm dựa trên sơ đồ MDC-2, với điểm mới là
dùng các hệ mật sử dụng cấp số nhân cyclic trên vành xn + 1, với n =
2k, các khóa dùng trong mật mã khối cũng được tạo từ các cấp số nhân
cyclic trên vành đa thức.
Chương III, trên cơ sở kết quả khảo sát ở chương II, NCS đề xuất
xây dựng một lớp hàm băm mở rộng mới:
- Hăm băm MDC-3 với độ dài mã băm 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).
- Hàm băm MDC-4 với độ dài mã băm 512 bít (sơ đồ gồm 4
nhánh, mỗi nhánh 128 bít).
- Hàm băm MDC-512 bít (sơ đồ gồm 2 nhánh, mỗi nhánh 256 bít)
Phần kết luận nêu những đóng góp của luận án và hướng phát
triển tiếp theo.
-5-
CHƯƠNG 1. TỔNG QUAN VỀ MẬT MÃ VÀ HÀM BĂM
1.1. PHƯƠNG PHÁP XÂY DỰNG CÁC HỆ MẬT CƠ BẢN
1.1.1. Phương pháp xây dựng các hệ mật khóa bí mật
1.1.1.1. Mã hoán vị
1.1.1.2. Mã thay thế
Gồm mã dịch vòng và mã thay thế
1.1.1.3. Các lưu đồ thông dụng
Gồm lưu đồ Feistel và lưu đồ Lai-Massey, các lưu đồ này được sử
dụng để xây dựng các hàm băm mới trong chương II và chương III.
1.1.1.4. Chuẩn mã dữ liệu (DES)
a) Mô tả DES
DES là thuật toán mã hoá một xâu bit x của bản rõ độ dài 64 bít
bằng một khoá 56 bit. Bản mã nhận được cũng là một xâu bit có độ
dài 64 bít.
b) Các chế độ hoạt động của DES
Có 4 chế độ làm việc đã được phát triển cho DES: Chế độ quyển
mã điện tử (ECB), chế độ phản hồi mã (CFB), chế độ liên kết khối mã
(CBC) và chế độ phản hồi đầu ra (OFB).
1.1.2. Phương pháp xây dựng các hệ mật khóa công khai
1.1.2.1. Hệ mật RSA
a) Tạo khóa
Tóm lược: Mỗi đầu liên lạc cần tạo một khoá công khai và một
khóa riêng tương ứng theo 05 bước.
b) Mã hoá và giải mã
Tóm lược: B mã hoá một thông báo m để gửi cho A bản mã c:
modec m n ; A giải mã bằng cách tính: moddm c n
-6-
1.1.2.2. Hệ mật ELGAMAL
1.1.2.3. Hệ mật McEliece
Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính
(cũng là một bài toán nhị phân đầy đủ).
Bài toán nhị phân được áp dụng là bài toán giải mã cho một mã
sửa sai (nhị phân) tuyến tính nói chung. Tuy nhiên, đối với nhiều lớp
mã đặc biệt đều tồn tại các thuật toán giải mã với thời gian đa thức.
Một trong những lớp mã này là mã Goppa, chúng được dùng làm cơ
sở cho hệ mật McEliece.
1.2. HÀM BĂM
1.2.1. Mô tả hàm băm
Hàm băm là một hàm có ít nhất hai tính chất sau: Tính chất nén
và tính chất dễ dàng tính toán.
Ngoài hai tính chất trên hàm băm còn có một số tính chất khác:
Khó tìm nghịch ảnh; khó tìm nghịch ảnh thứ hai; kháng va chạm.
Ngoài ra, một đặc tính quan trọng cần có của hàm băm là tính
khuếch tán. Tính khuếch tán này sẽ là tối ưu nếu nó đạt xấp xỉ một
nửa chiều dài mã băm.
1.2.2. Phân loại hàm băm
Hình 1.7. Phân loại hàm băm
Hàm băm
Không có khóa Có khóa
MDC
Các ứng
dụng khác
Các ứng
dụng khác
MAC
OWHF CRHF
-7-
1.3. CẤP SỐ NHÂN CYCLIC
1.3.1. Nhóm nhân của vành đa thức
Nếu: ( ); ( )g x f x G thì ( )* ( ) ( )g x f x d x G
Có tất cả 22n các nhóm nhân cyclic cấp n và nhóm nhân cyclic
đơn vị I cũng thuộc vào lớp các nhóm nhân này.
1.3.2. Các cấp số nhân cyclic cấp n
2 1( , ) { ( ), ( ) ( ), ( ) ( ),..., ( ) ( )}
m
a qA a x a x q x a x q x a x q x
1.3.3. Phân hoạch vành đa thức
Phân hoạch vành đa thức thường được chia thành các loại: Phân
hoạch chuẩn, phân hoạch cực đại, phân hoạch cực tiểu, ....
KẾT LUẬN CHƯƠNG I
Chương này giới thiệu các kiến thức cơ bản có liên quan đến đề
tài luận án, gồm các phương pháp xây dựng hệ mật khóa bí mật, hệ
mật khóa công khai: Mã hoán vị, mã thay thế, các lưu đồ thuật toán
Lai-Massey, Feistel, chuẩn mã dữ liệu DES; Thuật toán RSA, thuật
toán Elgama và McEliece, ...
Chương này cũng tập trung vào việc giới thiệu, mô tả hàm băm,
các loại hàm băm thông dụng. Các kiến thức cơ bản về nhóm nhân
cyclic và các cấp số nhân cyclic, các thuật toán dùng để xây dựng lớp
hàm băm mới ở các chương sau cũng được để cập ở đây, là cơ sở nền
tảng lý thuyết để nghiên cứu sinh sử dụng xây dựng các hàm băm mở
rộng mới.
-8-
CHƯƠNG 2. XÂY DỰNG CÁC HÀM BĂM MỚI
2.1. HÀM BĂM DỰA TRÊN HỆ MẬT THEO SƠ ĐỒ LAI-MASSEY
2.1.1. Hệ mật sử dụng cấp số nhân cyclic theo LAI-MASSEY
NCS đưa ra một hệ mật mã khối xây dựng theo sơ đồ Lai-Massey,
tuy nhiên các hàm mã hóa và các khóa được xây dựng từ các cấp số
nhân cyclic trên vành đa thức. Trên cơ sở đó áp dụng hệ mật mã mới
này vào một sơ đồ hàm băm đơn 64 bit, và tính toán tính khuếch tán
của hàm băm này.
Lưu đồ thuật toán của hệ mật là Lai-Massey, các khối mã hóa f
sử dụng các CGP trên vành đa thức 2[ ] / 1
nx x với
52 32 ( 5)n k
Cấu trúc CGP tạo khối mã hóa f có dạng: ( ). ; 0,31iA a x x i
Mạch điện mã hoá là một phép cộng theo các hệ số của đa thức
( )a x với n bước dịch vòng. Thuật toán giải mã cũng thực hiện tương tự
với các hệ số của đa thức nghịch đảo ( )b x .
Hình 0.1. Mạch điện mã hóa f với 2( ) 1a x x x
Các khóa iK cũng được tạo từ các CGP nhưng chúng được xây
dựng trên các vành đa thức có hai lớp kề cyclic.
Chọn vành đa thức có hai lớp kề cyclic 29 1x , khi đó 16 khóa iK
cho các vòng mã hóa là 16 phần tử đầu tiên trong một CGP được xây
dựng như sau:
29mod 1; ( 0,15)ia oiK K K x i (2.4)
(Để thuận tiện cho mạch điện mã hóa ta chọn
0K x )
Vào
Ra
(31) (4) (3) (2) (1) (0) ...................
-9-
Trong sơ đồ mã hóa, NCS có đưa ra một điểm mới so với sơ đồ
Lai-Massey truyền thống, đó là nửa phải ở bước thứ i sẽ được cộng
thêm với khóa iK trước khi cộng với đầu ra của hàm f.
Tiến hành tính toán độ khuếch tán của bộ mã khi thay đổi khóa K
với cùng một bản rõ đầu vào. Thực hiện việc tính toán bằng chương
trình mô phỏng (viết bằng MATLAB), tính được khoảng cách
Hamming trung bình giữa các bản mã tính được như trong biểu thức:
29
1( )
2
1
( , ) 31,5
28
iHH tb
i
d d C C
(2.7)
2.1.2. Xây dựng hàm băm trên cơ sở hệ mật
Với ưu điểm mạch điện mã hóa khá đơn giản, ta có thể xây dựng
một hàm băm mới từ hệ mật đề xuất ở trên.
Hình 2.3. Sơ đồ hàm băm
Bảng 2.2 là kết quả tính toán phân bố của một số mã băm khi thay
đổi lần lượt từng bit từ bit 1 đến bit 64 của bản tin rõ so với ban đầu.
Bảng 2.2. Khoảng cách Hamming dH(C1,Ci) của hàm băm khi thay đổi
1 bit bản rõ đầu vào
TT Bản tin rõ Mi Bản mã Ci dH(C1,Ci)
1 0123456789ABCDEF B588E9ED8C722E5C 0
2 1123456789ABCDEF 123F4C166B0601C7 42
3 2123456789ABCDEF ADCDA2C 8ECC0FC59 24
g E
xi
Hi-1
Hi
-10-
4 4123456789ABCDEF 796EF2C1BD130CC0 28
30 0123456689ABCDEF E2 F E113434 F91554 34
31 0123456589ABCDEF 1CE49C51C13DE941 36
32 0123456389ABCDEF 718A64A3B0F3FBF2 28
63 0123456789ABCDED 1CE49C51C13DE941 36
64 0123456789ABCDEB 718A64A3B0F3FBF2 28
65 0 123456789ABCDE 7 D D F49C D 63 3A 89 DA7 42
Khoảng cách Hamming trung bình giữa các bản mã tính được như
sau:
65
1( )
2
1
( , ) 30,75
64
iHH tb
i
d d C C
(2.8)
Tương tự tiến hành tính toán phân bố của hàm băm khi thay đổi
khóa khởi tạo và giữ nguyên bản tin rõ đầu vào, ta được khoảng cách
Hamming trung bình giữa các bản mã tính được như trong biểu thức
(2.9):
29
( ) 1
2
1
( , ) 31,5
28
H tb H i
i
d d C C
(2.9)
Tóm lại: Việc sử dụng cấu trúc cấp số nhân cyclic trên vành đa
thức 2 1
k
x làm hàm mã hóa cho hệ mật sử dụng cho hàm băm và sử
dụng các CGP trên vành có hai lớp kề để tạo khóa cho các vòng mã
hóa của hệ mật theo sơ đồ Lai-Massey như đề cập ở trên có một số ưu
điểm sau:
- Sơ đồ mã hóa đơn giản thuận tiện khi sử dụng cho hàm băm
- Số lượng khóa tìm được rất nhiều (Nk = 229-1).
- Độ khuếch tán của hệ mật khi thay đổi khóa, độ khuếch tán của
hàm băm khi thay đổi dữ liệu, hoặc thay đổi khóa đều cho kết quả khá
tốt (đạt xấp xỉ một nửa độ dài mã băm).
-11-
2.2. HÀM BĂM DỰA TRÊN HỆ MẬT MÃ LAI GHÉP
Với mục đích kết hợp ưu điểm của các hệ mật và sơ đồ mã hóa đã
có, NCS đề xuất một phương pháp xây dựng hệ mật mã lai ghép, 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 (có cải tiến).
2.2.1. Bài toán Logarit rời rạc và hệ mật POHLIG-HELLMAN
Bài toán logarit rời rạc là bài toán khó, hệ mật Pohlig-Hellman là
một hệ mật sử dụng bài toán logarit rời rạc. Phép mã hóa thực hiện
theo phương trình đồng dư modec m p , phép giải mã được thực hiện
theo modem c p .
2.2.2. Đề xuất một phương pháp xây dựng hệ mật mã lai ghép
Lược đồ mã hóa của hệ mật thực hiện theo sơ đồ Feistel cân bằng.
Hàm mã hóa f sử dụng thuật toán mã hóa của hệ mật Pohlig-
Hellman, thực hiện theo một trong hai cách sau:
( , ) modiei i i ic f m e m p (2.15)
( , ) modimi i i ic f m e e p (2.16)
Hình 2.6. Tách các khóa con cho các vòng mã hóa
Tiến hành mô phỏng tính khuếch tán của hệ mật khi thay đổi dữ
liệu bản rõ M và thay đổi khóa bí mật K.
Khoảng cách Hamming trung bình của 64 lần thay đổi bản rõ (lần
lượt từ bit 1 đến 64) được tính theo công thức sau:
64
0( ) 1
1
( , )
64
jHH tb j
d d C C
(2.20)
Với trường hợp 1 tính được: dH(tb) = 31,84 bít (2.21)
e1 (32bit) e2 (32bit) e3 (32bit) e4 (32bit)
Khóa bí mật K (128 bits)
-12-
Và trường hợp 2 là: dH(tb) = 31,98 bít (2.22)
Khoảng cách Hamming trung bình của các bản mã so với bản mã
ban đầu khi thay đổi lần lượt từng bit của khóa K từ bit 1 đến bit 128
được tính theo công thức sau:
128
0( ) 1
1
( , )
128
jHH tb j
d d C C
(2.23)
Với trường hợp 1 tính được: dH(tb) = 28,25 bít (2.24)
Và trường hợp 2 là: dH(tb) = 28,23 bít (2.25)
Như vậy: Độ khuếch tán của hệ mật khi thay đổi dữ liệu đầu vào
và khóa cũng đều đạt xấp xỉ một nửa chiều dài mã băm.
2.2.3. Khả năng xây dựng hàm băm từ hệ mật
Với hệ mật như đề xuất ở mục 2.3.2, ta có thể áp dụng vào việc
xây dựng các hàm băm không khóa với một số ưu điểm nhất định sau:
- Hệ mật sử dụng sơ đồ Feistel cân bằng nên có độ khuếch tán tốt
khi thay đổi dữ liệu bản rõ cũng như thay đổi khóa.
- Hệ mật có độ an toàn khá tốt vì áp dụng bài toán một chiều
logarit rời rạc vào làm hàm mã hóa, ngoài ra độ dài khóa là 128 bit
cũng đảm bảo trước tấn công vét cạn.
2.3. HÀM BĂM SỬ DỤNG CÁC CẤP SỐ NHÂN CYCLIC
2.3.1. Mô tả hàm băm MDC-2 sử dụng lưu đồ FEISTEL
NCS tập trung xây dựng một hàm băm kép dạng MDC-2 với
điểm mới là sử dụng các cấp số nhân cyclic làm hàm mã hóa (trên
vành đa thức 2[ ]/ 1
nx x với 5 322n ) và tạo khóa (trên vành đa
thức có hai lớp kề để đảm bảo số lượng khóa tạo ra là lớn nhất). Mật
mã E được xây dựng theo 16 vòng mã hóa theo mô hình mạng hoán vị
thay thế Feistel.
2.3.2. Xây dựng hàm băm và kết quả mô phỏng
Mô phỏng tính toán tương tự như các hàm băm trước. Tiến hành
thay đổi lần lượt từng bit từ bit 1 đến bit 128 của bản tin đầu vào 1M
-13-
rồi đưa vào hàm băm và tính khoảng cách Hamming 1( , )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 với giá trị băm ban đầu là:
128
1( )
1
1
( , ) 64,12
128
iHH tb
i
d d MD MD
(2.27)
Tiếp tục tính toán phân bố của hàm băm khi thay đổi khóa khởi
tạo K, mỗi khóa khác với khóa đầu tiên 2 bit. Bản tin đầu vào gồm 10
khối 128 bit được tạo ngẫu nhiên. Chúng ta tính được khoảng cách
Hamming trung bình:
52
0( )
1
1
( , ) 64,40
52
iHH tb
i
d d MD MD
(2.28)
KẾT LUẬN CHƯƠNG II
Trong chương này, NCS đề 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 32 bít (Khi độ dài
mã băm được tạo ra là 64 bít).
- Với hệ mật mã 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.
- 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 cũng có được độ khuếch tán tốt (xấp xỉ
64 bít).
Tóm lại qua khảo sát bằng lý thuyết và mô phỏng, các hệ mật và
hàm băm tạo ra ở trên có nhiều ưu điểm: Số khóa nhiều; mạch điện
phần cứng đơn giản, dễ 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 ở khoảng cách Hamming tính được ở
các trường hợp đều xấp xỉ một nửa chiều dài mã băm.
-14-
CHƯƠNG 3. XÂY DỰNG MỘT LỚP CÁC HÀM BĂM
MỞ RỘNG MỚI
3.1. XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC-3
NCS đề 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
Khối E mã hóa cho chuỗi bit có độ dài 128, được xây dựng theo
dạng mô hình Feistel với một số đổi mới, cải tiến.
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
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:
61
0 mod 1;( 1...16)
i
aiK K K x i (3.1)
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
-15-
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
0
M , 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.
Tiến hành thay đổi lần lượt từng bit từ bit 1 đến bit 60 của
khóa
1
K , 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
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. 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).
3.2. HÀM BĂM DỰA TRÊN HỆ MẬT MÃ KHỐI KẾT HỢP SƠ ĐỒ LAI-
MASSEY VỚI SƠ ĐỒ FEISTEL
3.2.1. Hệ mật mã khối kết hợp sơ đồ LAI-MASSEY và FEISTEL
Với mục đích kết hợp ưu điểm của hai sơ đồ này, NCS đề 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.
Các hàm mã hóa f trong sơ đồ sử dụng các CGP trên vành đa thức
2
[ ]/ 1nx x với 2sn , với hệ mật đề xuất, chọn 62 64n và như thế f
-16-
sẽ hoạt động với các khối 64 bit và là các CGP có dạng sau:
( ). ; 0,63iA a x x i
(3.8)
Sơ đồ mạch mã hóa với CGP có số hạng đầu là đa thức
7 35 60( ) 1a x x x x x và công bội x như trong hình 3.5.
Hình 3.5. Mạch mã hóa f với 7 35 60( ) 1a x x x x x
Các khóa con ki cũng được tạo từ các CGP nhưng trên các vành
đa thức có hai lớp kề cyclic.
Chọn vành đa thức có hai lớp kề cyclic 61 1x , khi đó 16 khóa cho
các vòng mã là 16 phần tử đầu tiên trong một CGP được xây dựng:
61
0
mod 1;( 0,1,...,15)iaik K K x i (3.12)
Tiến hành khảo sát tính khuếch tán của hệ mật đề xuất khi thay
đổi dữ liệu đầu vào và thay đổi khóa (bằng chương trình mô phỏng).
Khoảng cách Hamming trung bình giữa các bản mã của 128 lần
thay đổi bit dữ liệu tính được như biểu thức (3.12):
128
( ) 1
1
1
( , ) 64,5bit
128
H tb H i
i
d d C C
(3.12)
Độ khuếch tán trung bình giữa các bản mã khi thay đổi khóa:
30
( ) 0
1
1
( , ) 62,53bit
30
H tb H i
i
d d C C
(3.13)
3.2.2. Xây dựng hàm băm trên cơ sở hệ mật kết hợp
3.2.2.1. Sơ đồ hàm băm
Ở đây, nghiên cứu sinh đề xuất một sơ đồ hàm băm không khóa
dạng MDC-4 với mã băm 512 bit như mô tả trong hình 3.6.
Vào
Ra
(63) (7) (1) (0)
64 bít
64 bít
(35)
Dịch 64 nhịp
... ... ... (60) .......
-17-
Hình 0.2. Sơ đồ hàm băm MDC-4 (512 bit)
3.2.2.2. Đánh giá tính khuếch tán của hàm băm
Tương tự ta cũng tiến hành tính toán tính khuếch tán của hàm
băm khi thay đổi dữ liệu và thay đổi khóa. Dữ liệu băm là 5120 bit
bao gồm 10 khối 512 bit và được tạo ngẫu nhiên.
Tiến hành tính toán độ khuếch tán của một nghìn lần băm khi thay
đổi dữ liệu băm, mỗi lần băm chỉ thay ngẫu nhiên 1 bit trong 5120 bit
dữ liệu băm ban đầu. Tất cả các lần băm đều dùng chung khóa ban
đầu Ka. Sau mỗi lần băm ta tính khoảng cách Hamming giữa mã băm
so với mã băm ban đầu và từ đó tính được khoảng cách Hamming
trung bình của một nghìn lần băm theo biểu thức (3.15) dưới đây:
1000
0( )
1
1
( , ) 255,84bit
1000
iHH tb
i
d d C C
(3.15)
g E
xi (512 bít)
1 1iH
Hi (512 bít)
A1 B1
A1 B2
g E
A2 B2
A2 B3
g E
A4 B4
A4 B1
g E
A3 B3
A3 B4
xi1
(128 bít)
xi2
(128 bít)
xi3
(128 bít)
xi4
(128 bít)
2 1iH
3
1iH
4
1iH
Hi1
(128 bít)
Hi2
(128 bít)
Hi3
(128 bít)
Hi4
(128 bít)
-18-
Tương tự, tính toán độ khuếch tán trong 60 lần băm khi thay đổi
khóa băm khởi tạo Ka, mỗi lần băm thay đổi ngẫu nhiên 1 bit trong số
60 bit khóa ban đầu (bit 61 vẫn để đảm bảo khóa có trọng số lẻ). Tất
cả các lần băm đều có cùng dữ liệu băm, ta cũng tính được độ khuếch
tán trung bình của 60 lần băm theo biểu thức (3.16) sau đây:
60
0( )
1
1
( , ) 256,57bit
60
iHH tb
i
d d C C
(3.16)
Như vậy: Độ khuếch tán của hàm băm khi thay đổi dữ liệu, thay
đổi khóa đều cho kết quả tốt (xấp xỉ 254 bit so với mã băm 512 bit).
3.3. XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC 512 BÍT
3.3.1. Mô tả hệ mật mã khối 256 bít
Sơ đồ mã hóa của hệ mật mã khối dựa trên mạng Feistel bốn
nhánh không cân bằng (mỗi nhánh có độ dài 64 bít).
Hàm mã hóa f có bốn đầu vào, ba đầu vào dữ liệu ( ,i ib c và id ) và
một đầu vào khóa ik . Độ dài của tất cả bốn đầu vào và đầu ra đều là 64
bit. Việc mã hóa được thực hiện bởi các CGP trên vành đa thức
2
[ ]/ 1nx x với
62 64n .
Cấu trúc của CGP sử dụng trong hàm f có dạng:
64( ). ( )mod 1; 1,2,...,64ji iA k x g x x j (3.19)
Hình 3.9. Mạch mã hóa hàm f
3.3.2. Đánh giá độ khuếch tán của hệ mật
Tiến hành tính toán độ khuếch tán của hệ mật khi thay đổi mỗi bit
dữ liệu bản rõ, đa thức sinh ka và đa thức đầu k0 để tạo khóa của hệ
(63) (2) (1) (0)
Ra
(64 bit)
Dịch 64 nhịp
Khóa con
ki (64 bit)
MAJ
bi
ci
di
mi = p0 + p1x + p2x
2
+ +p62x
62
+ p63x
63
(64 bits)
p0p1p2p63 p62
(62)
-19-
mật được giữ cố định, ta được khoảng cách Hamming trung bình
256
0( )
1
1
( , ) 127,19( )
256 jHH tb j
d d C C bit
(3.26)
Thực hiện 10 lần tính toán như trên với tham số khóa
0
, ak k giữ
cố định. Mỗi lần tính ta cũng thay đổi lần lượt từng bit từ 1 đến 256
của mỗi bản rõ ban đầu, kết quả có được:
10
( ) ( )
1
1
127,84
10 tH tb H tbt
d d
(3.27)
Tiến hành thay đổi lần lượt từng bit của khóa ban đầu
0
k từ bit 1
đến bit 63, ta tính được độ khuếch tán giữa các cặp bản mã
0
( , )jHd C C của từng lần thay đổi, sau đó tính giá trị trung bình như sau:
63
0( )
1
1
( , ) 127,02( )
63 jHH tb j
d d C C bit
(3.28)
3.3.3. Xây dựng hàm băm 512 bit trên cơ sở hệ mật
3.3.3.1. Mô tả hàm băm
Hình 3.11. Sơ đồ hàm băm không khóa 512 bít
Eg E g
A2 B2
Hi (512 bits)
xi (512 bits)
xi (2)
(256 bits)
xi (1)
(256 bits)
Hi-1 (1) Hi-1 (2)
Hi (2)Hi (1)
C2 D2
A1 B2 C1 D2
A1 B1 C1 D1
A2 B1 C2 D1
k0.j (2)k0.j (1)
-20-
3.3.3.2. Đánh giá độ khuếch tán của hàm băm
Tiến hành tính toán độ khuếch tán của hàm băm khi thay đổi dữ
liệu, khoảng cách Hamming trung bình của 100 lần băm tính được
như sau:
100
0( )
1
1
( , ) 243,48bit
100 iHH tb i
d d C C
(3.30)
Tiến hành tính toán như trên 10 lần, mỗi lần với dữ liệu đầu vào
khác nhau (chọn ngẫu nhiên), ta được khoảng cách Hamming trung
bình của 10 lần:
10
( ) ( )
1
1
244,02( )
10 tH tb H tbt
d d bit
(3.31)
Như vậy: Kết quả khuếch tán của hàm băm MDC-512 bít rất tốt,
đạt tiệm cận tới một nửa chiểu dài mã băm.
KẾT LUẬN CHƯƠNG III
Trong chương này, nghiên cứu sinh tập trung vào xây dựng 3 hàm
băm mở rộng mới với độ dài mã băm từ 384 đến 512 bít:
- Hàm băm MDC-3 được xây dựng với sơ đồ gồm 3 nhánh, có
tổng độ dài đầu ra là 384 bit. Hàm băm được xây dựng theo dạng mô
hình mạng Feistel với một số đổi mới, cải tiến.
- Hàm băm MDC-4 có độ dài mã băm 512 bít, sơ đồ 4 nhánh, mỗi
nhánh 128 bít. Sơ đồ hệ mật kết hợp sơ đồ Lai-Massey và sơ đồ
Feistel, trong đó các hàm mã hóa và khối tạo khóa trong hệ mật mới
này được xây dựng từ các cấp số nhân cyclic trên vành đa thức.
- Hàm băm MDC 512 bít gồm 2 nhánh, mỗi nhánh 256 bít. Sơ đồ
mã hóa được xây dựng theo mạng Feistel bốn nhánh không cân bằng,
Các kết quả nghiên cứu và mô phỏng đều cho thấy các hàm băm
này có độ 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 đầu vào hoặc thay đổi khóa. Số lượng khóa tạo
được cũng rất nhiều, mạch điện phần cứng khá đơn giản.
-21-
CHƯƠNG 4. KHẢ NĂNG ỨNG DỤNG CỦA HÀM BĂM
XÂY DỰNG MỚI
4.1. CHỮ KÝ SỐ
Hình 4.8. Lược đồ tạo chữ ký kép với hàm băm mở rộng mới
Thông tin đặt hàng (OI) Thông tin chi trả (PI)
Hàm băm mở rộng mới Hàm băm mở rộng mới
Bản tóm lược của OI
(OIMD)
Bản tóm lược của PI
(PIMD)
Hàm băm mở rộng mới
Bản tóm lược (POMD)
Mã hóa RSA
Chữ ký kép (DS)
Khóa của khách hàng
-22-
Các hàm băm mở rộng mà nghiên cứu sinh xây dựng mới có thể
ứng dụng vào sơ đồ chữ ký kép theo sơ đồ hình 4.8.
4.2. KIỂM TRA TÍNH TOÀN VẸN CỦA THÔNG ĐIỆP
Với các hàm băm mà nghiên cứu sinh xây dựng mới trong luận
án, việc ứng dụng vào thực tế với mục đích để đảm bảo tính toàn vẹn
của thông điệp là rất khả quan.
Các hàm băm mở rộng mới trong luận án có thể được sử dụng để
đảm bảo tính toàn vẹn của thông điệp do đặc tính quan trọng là có tính
khuếch rất cao, khi chỉ cần có một thay đổi rất nhỏ ở đầu vào sẽ dẫn
đến thay đổi rất lớn ở đầu ra, do đó sự thay đổi, việc bị thám mã sẽ rất
dễ bị phát hiện. Một khả năng ứng dụng được minh họa với việc cắt
mẩu bản tin và gắn nhãn thời gian như dưới đây:
Hình 0.1. Ứng dụng gắn nhãn mã băm của hàm băm mở rộng mới
Các hàm băm mà nghiên cứu sinh đề xuất ở đây sử dụng các
phương pháp băm cơ bản nhưng có ưu điểm vượt trội về mặt giá thành
khi triển khai ứng dụng, mặt khác với độ khuếch tán đạt được rất tốt
(đã được tính toán, phân tích với nhiều lưu đồ và kết quả mô phỏng)
thì việc lựa chọn các hàm băm này để sử dụng cho việc kiểm tra, đảm
bảo tính toàn vẹn của thông điệp sẽ mang lại kết quả khả quan.
-23-
4.3. BẢO VỆ MẬT KHẨU
Với các hàm băm mới được tạo ra trong luận án thì việc ứng dụng
chúng vào bảo vệ mật khẩu là điều hết sức khả thi.
Lưu đồ cụ thể của ứng dụng đề xuất như hình 4.10:
Hình 4.10. Dùng hàm băm mở rộng mới để lưu trữ và kiểm tra
mật khẩu
Khi người dùng đăng nhập vào hệ thống thông qua form đăng
nhập thì mật khẩu được băm ra và so sánh với giá trị băm đang
Các file đính kèm theo tài liệu này:
- tom_tat_luan_an_nghien_cuu_xay_dung_mot_lop_ham_bam_mo_rong.pdf