NGHIÊN CỨU ỨNG DỤNG HỆ MẬT TRÊN CẤP SỐ NHÂN CYCLIC TRONG HÀM BĂM Với sự bùng nổ của mạng internet hiện nay, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, đi đôi với lợi ích mà nó mang lại thì một vấn đề hết sức quan trọng đó là yêu cầu bảo mật thông tin, xác thực nội dung thông tin cũng như xác thực chủ thể nội dung.
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học:
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
TS Ngô Đức Thiện
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài:
Với sự bùng nổ của mạng internet hiện nay, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, đi đôi với lợi ích mà nó mang lại thì một vấn đề hết sức quan trọng đó là yêu cầu bảo mật thông tin, xác thực nội dung thông tin cũng như xác thực chủ thể nội dung
Sự phát triển của ngành mật mã học gắn liền với quá trình hình thành của hai hệ mật chính
là hệ mật khóa bí mật và hệ mật mã công khai Hệ mật khóa công khai với các ưu điểm như: không phải sử dụng kênh an toàn để truyền khóa, số lượng khóa cần tạo và bảo mật phù hợp cho số lượng người dùng, thuận tiện và phù hợp cho yêu cầu bảo mật thông tin và các dịch
vụ xác thực trên mạng với sự bùng nổ số lượng người dùng như hiện nay
Việc giao dịch điện tử an toàn cũng như truyền thông tin trên mạng đòi hỏi cần có các dịch
vụ xác thực nội dung và chữ ký số Trong các sơ đồ xác thực và chữ ký số thì hàm băm đóng một vai trò quan trọng, nó là một hàm dùng để nén một chuỗi bit ở đầu vào tùy ý thành một chuỗi bit có độ dài cố định ở đầu ra, chuỗi đầu ra được gọi mã băm, (hay kết quả băm, giá trị băm, mã xác thực) Mã băm có thể xem như “đại diện” của tài liệu số hay “tóm lược” thông báo và được sử dụng trong một số ứng dụng như: Xác thực tính toàn vẹn của dữ liệu; xác thực số, chữ ký số, bảo vệ bản quyền tài liệu số, nhận dạng mật khẩu; nhận dạng đối tượng
Các sơ đồ hàm băm thường được xây dựng trên mật mã khối theo một số sơ đồ cụ thể Đặc tính quan trọng nhất của hàm băm là tính khuếch tán và độ dài mã băm, cả hai đặc tính này đều phụ thuộc vào mật mã khối được sử dụng trong lược đồ hàm băm Do đó, nếu ta xây dựng được một hệ mật đảm bảo tính khuếch tán tốt và tính dễ tính toán (không yêu cầu tính bảo mật cao) thì hoàn toàn có thể sử dụng để xây dựng các hàm băm mới thỏa mãn các yêu cầu của thực tế
Theo các kết quả nghiên cứu gần đây về hệ mật xây dựng trên các cấp số nhân cyclic cho thấy các hệ mật mới này thỏa mãn các yêu cầu để xây dựng hàm băm Trên cơ sở đó luận văn sẽ tập trung tìm hiểu hệ mật xây dựng trên các cấp số nhân trên vành đa thức lớn và từ
đó áp dụng vào xây dựng các hàm băm có độ dài tối thiểu là 128 bit
Trang 42 Mục đích nghiên cứu:
Tìm hiểu hệ mật xây dựng trên cấp số nhân cyclic của vành đa thức
Áp dụng các hệ mật này để xây dựng các hàm băm mới
Mô phỏng tính khuếch tán của các hàm băm đề xuất
3 Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu: Mật mã khối, hàm băm, nhóm nhân và cấp số nhân trên vành đa thức
Phạm vi nghiên cứu: Sử dụng cấp số nhân cyclic trên vành đa thức xây dựng hệ mật mã khối và áp dụng vào hàm băm
4 Phương pháp nghiên cứu:
Sử dụng lý thuyết về mật mã học, các cấu trúc đại số trên vành đa thức, kết hợp với việc tính toán và mô phỏng tính khuếch tán của các hàm băm đề xuất
5 Cấu trúc luận văn
Luận văn có phần mở đầu, kết luận và 03 chương nội dung được trình bày trong 69 trang đánh máy, không kể tài liệu tham khảo và các phụ lục
Chương 1: Tổng quan về mật mã học và hàm băm
Chương này sẽ trình bày các vấn đề cơ bản về mật mã cổ điển, hệ mật mã khóa công khai, hàm băm và một số sơ đồ xác thực thông tin và chữ ký số
Chương 2: Hệ mật xây dựng trên cấp số nhân cyclic của vành đa thức
Chương này tập trung vào việc nghiên cứu phân tích cấu trúc nhóm nhân cyclic và cấp số nhân trên vành đa thức, trên cơ sở đó xây dựng một hệ mật khóa bí mật làm cơ sở thực hiện các hàm băm mới
Chương 3: Áp dụng hệ mật xây dựng trên cấp số nhân cyclic vào hàm băm
Nội dung chương này đề cập đến cấu trúc cơ bản của các hàm băm, một số ví dụ về hàm băm và các phép tấn công hàm băm cơ bản Phần tiếp theo là đề xuất xây dựng một hàm băm MDC-2 mới 256 bit
Trang 5Được sự giúp đỡ tận tình của thầy TS Ngô Đức Thiện và sự nổ lực của bản thân luận văn
đã được hòan thành Tuy nhiên do thời gian hạn hẹp và trình độ hạn chế việc hiểu và trình bày các vấn đề được nêu không thể tránh khỏi còn nhiều thiếu sót Rất mong được sự góp ý của các thầy và các bạn có quan tâm
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HỌC VÀ HÀM BĂM
1.1 Hệ mật khóa bí mật
Thám mã
Kênh an toàn Nguồn khóa
1.1.3 Ưu nhược điểm của mật mã khóa bí mật
1.2 Hệ mật khóa công khai
Hình 1.2 Sơ đồ mật mã hóa công khai 1.2.2 Một số bài toán xây dựng hệ mật khóa công khai
Trang 6Với yêu cầu với hệ mật khóa công khai: Dễ mã hóa, khó giải mã (Hàm một chiều), các hướng nghiên cứu từ năm 1976 cho đến nay đã tìm được 5 hàm một chiều, tương ứng với 5 bài toán
1.2.2.1 Bài toán logarit rời rạc và hệ mật liên quan
1.2.2.2 Bài toán phân tích thừa số và hệ mật RSA
1.2.2.3 Bài toán xếp ba lô và hệ mật Merkle – Hellman
1.2.2.4 Bài toán mã sửa sai và hệ mật Mc Eliece
1.2.2.5 Đường cong Elliptic và các hệ mật liên quan
1.3 Hàm băm và ứng dụng
Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại Hàm băm sẽ tạo ra một đầu
ra từ bản tin đầu vào Đầu ra này được định nghĩa là mã băm (kết quả băm, giá trị băm) Nói một cách chính xác hơn, hàm băm h sẽ tạo ra ánh xạ các xâu bit có độ dài hữu hạn tuỳ ý thành các xâu bit có độ dài n cố định
Hàm băm được phân ra thành 2 loại chính :
- Các hàm băm không khóa MDC
- Các hàm băm có khóa MAC
Trang 7Hàm băm là một hàm h có ít nhất hai tính chất sau:
a)Tính chất nén: h sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tuỳ ý tới một đầu ra có độ dài bit n hữu hạn
b) Tính chất dễ dàng tính toán: Với h cho trước và một đầu vào x, có thể dễ dàng tính được
1.3.1.2 Một số tính chất của các hàm băm không có khoá
a) Tính khó tính toán nghịch ảnh
c) Tính khó va chạm
b) Khó tìm nghịch ảnh thứ hai
1.3.1.3 Thuật toán mã xác thực thông báo (MAC)
1.3.2 Các phương pháp xây dựng hàm băm
1.3.2.1 Các hàm băm không có khoá
a) MDC độ dài đơn
Ba sơ đồ dưới đây có liên quan chặt chẽ với các hàm băm độ dài đơn, xây dựng trên các mật
mã khối Các sơ đồ này có sử dụng các thành phần được xác định trước như sau:
Hình 1.3 Sơ đồ xây dựng hàm băm độ dài đơn
- Một mật mã khối n bit khởi sinh được tham số hoá bằng một khoá đối xứng k
Trang 8- Một hàm g ánh xạ n bit vào thành khoá k sử dụng cho E (Nếu các khoá cho E cũng
có độ dài n thì g có thể là hàm đồng nhất)
- Một giá trị ban đầu cố định IV thích hợp để dùng với E
b) MDC độ dài kép: MDC -2 và MDC - 4
MDC -2 và MDC - 4 là các mã phát hiện sự sửa đổi yêu cầu tương ứng là 2 và 4 phép toán
mã hoá khối trên mỗi khối đầu vào hàm băm Chúng sử dụng 2 hoặc 4 phép lặp của sơ đồ M
- D - O để tạo ra hàm băm có dộ dài kép
* Thuật toán MDC - 2 * Thuật toán MDC – 4
Hình 1.4 Thuât toán MDC -2 Hình 1.5 Thuật toán MDC-4
1.3.2.2 Các hàm băm có khoá (MAC)
1.3.3 Ứng dụng của hàm băm
1.3.3.1 Tính toàn vẹn của dữ liệu và xác thực thông báo
Tính toàn vẹn của dữ liệu là tính chất đảm bảo dữ liệu không bị sửa đổi một cách bất hợp pháp kể từ khi dữ liệu được tạo ra, được phát hoặc được lưu giữ bởi một nguồn xác định Các phương pháp cung cấp tính toàn vẹn của dữ liệu đó bằng cách dùng các hàm băm:
Trang 9- Sử dụng MDC và kênh tin cậy
2.1 Nhóm nhân Cyclic trên vành đa thức
2.1.1 Định nghĩa nhóm nhân cyclic trên vành đa thức
Định nghĩa 2.1: Nhóm nhân cyclic (CMG-Cyclic Multiplicate Group) trong vành đa thức là tập hợp các phần tử đều bằng lũy thừa của một phần tử gọi là phần tử sinh Trong vành đa thức có nhiều nhóm nhân cyclic, số nhóm nhân bằng số các lũy đẳng có thể có trong vành
Trang 102.1.2.1 Nhóm nhân cyclic đơn vị
Định nghĩa 2.3:Nhóm nhân cyclic đơn vị là một nhóm nhân bao gồm mọi đơn thức có
2.1.2.2 Nhóm nhân cyclic với phần tử sinh a x( )
2.1.2.3 Đa thức đối xứng và các nhóm nhân cyclic đối xứng
2.2 CẤP SỐ NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
2.2.1 Khái niệm về cấp số nhân cyclic trên vành đa thức
Xét vành đa thức 2[ ]/x x n1 với n lẻ, giả sử a x là số hạng đầu tiên của cấp số ( )nhân cyclic và q x là công bội của cấp số nhân ( )
Định nghĩa 2.6:Cấp số nhân cyclic (CGP - Cyclic Geometic Progressions) trên vành
đa thức là một tập hợp con có dạng sau:
( , )a q { ( ), ( ) ( ), ( ) ( ), , ( ) m ( )}
Trong đó: m là số các số hạng của cấp số nhân
a x là số hạng đầu của cấp số nhân ( )
( )
q x là công bội
( ) m( ) ( ) mod n 1
a x q x a x x trong vành đa thức, nếu ta chọn số hạng đầu và hạt nhân phân hoạch khác nhau thì ta sẽ tạo
ra nhiều kiểu phân hoạch khác nhau của vành, do đó ta có các cấp số nhân cyclic để xây dựng được các mã cyclic có cấu trúc khác nhau
2.2.2 Phân hoạch vành đa thức
Trang 11Quá trình phân hoạch vành đa thức thực chất là quá trình phân chia các phần tử trong vành
đa thức thành các tập (hay các lớp kề) không trùng nhau
2.2.2.3 Các loại phân hoạch
a) Phân hoạch chuẩn
b) Phân hoạch cực đại
c) Phân hoạch cực tiểu
d) Phân hoạch vành thành các cấp số nhân có cùng trọng số
e) Phân hoạch vành thành các phần tử có trọng số cùng tính chẵn lẻ
f) Phân hoạch vành đa thức thành các cấp số nhân theo modulo h(x)
2.3 HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC
2.3.1 Vấn đề mã hóa
Hình 2.1 Mã hóa và giải mã xây dựng trên cấp số nhân cyclic 2.3.2 Xây dựng hệ mật dùng cấp số nhân cyclic
2.3.2.1 Mạng hoán vị - thay thế Feistel
2.3.2.2 Xây dựng hệ mật dùng cấp số nhân cyclic
Trong sơ đồ xây dựng hệ mật, sơ đồ Feistel được sử dụng làm nền cho hệ mật dùng các cấp
số nhân cyclic trên vành đa thức
Trang 12Hàm f được xây dựng trên cơ sở hệ mật sử dụng
các cấp số nhân cyclic trên vành đa thức có hai
vớiK a là một đa thức có trọng số lẻ tùy ý
sao cho: degK a 61
0
K là một phần tử nguyên thủy của nhóm
nhân cyclic có cấp bằng 260 1 và cũng là một đa
thức có trọng số lẻ Cần chú ý rằng với n61
vành Z x2[ ]/x611 là một vành có hai lớp kề
cyclic
Hình 2.5 Sơ đồ mã hóa khối E
Hàm f được xây dựng trên cơ sở hệ mật sử dụng các cấp số nhân cyclic trên vành đa thức
có hai lớp kề Các khóa K i là các phần tử trong một cấp số nhân được chọn như sau:
Trang 13Bảng 2.3 Bảng hoán vị ban đầu (IP)
Bảng 2.4 Bảng hoán vị đảo (IP -1 )
Giả sử ta chọn phần tử sinh của khóa K0 1 x x3 (013),
Phần tử đầu K a 1 x x2 (012); Phần tử đầu của cấp số nhân và cũng là khóa
K K K x x Sơ đồ khối bộ mã hóa f với khóa K1như trong hình 2.6
Hình 2.6 Sơ đồ khối mã hóa , với khóaK1 1 x4x5
Một khâu mã hóa được thực hiện theo quy tắc:
Trang 142.3.2.3 Tạo khóa cho hệ mật
Ta có thể sử dụng các CGP để tạo các khóa cho hệ mật, tuy nhiên để tạo số lượng khóa nhiều nên sử dụng các CGP trên vành đa thức có hai lớp kề cyclic Thực chất các CGP này được coi là M-dãy lồng ghép
a) Vành đa thức có hai lớp kề cyclic
0
( )
n i i
phần tử thứ hai phải thoả điều kiện 2( )/n p 1modn với mỗi ước nguyên tố p của
(n) (Trong đó (n) là hàm phi Euler)
b) M-dãy xây dựng trên vành đa thức
Xét vành đa thức 2[ ]/x x n 1 với n là số lẻ Theo cách thông thường thì các M-dãy
có thể được tạo từ bất kỳ các thức nguyên thủy ( )g x có bậc là m theo phương trình đồng
dư sau:
( ) ( ) mod ( );i 1, 2,3
a x b x x g x i
Trang 15Trong đó: g x - đa thức nguyên thủy; deg ( )( ) g x m
b x - đa thức mầm; deg ( )( ) b x m 1
c) M-dãy lồng ghép xây dựng từ các cấp số nhân cyclic trên vành đa thức có hai lớp kề
Bổ đề 2.15: M-dãy lồng ghép trên vành đa thức có hai lớp kề có thể được tạo từ
phương trình đồng dư sau:
c x là đa thức mầm với deg ( )c x m 1
Số lượng các M-dãy lồng ghép tính theo công thức:
N N N
Số lượng các M-dãy lồng ghép của một số vành tính được như trong bảng 2.5
Bảng 2.5 Số lượng M-dãy lồng ghép với một vài giá trị n khác nhau
Trang 1611 600 512 30.720 1.023
2.3.2.4 Đánh giá độ khuếch tán của hệ mật
Tiến hành tính toán độ khuếch tán khi thay đổi dữ liệu của hệ mật như trên với các tham số sau:
Phần tử sinh của khóa: K x0( ) 1 x15x30x45x59
Bảng 2.6 Khoảng cách Hamming d H( ,C C1 i) giữa các cặp bản mã khi các bản rõ khác nhau 1
bit, d H(M M1 , i) 1 , với cùng một khóa K
Trang 1722 00112233445566778899ABBBCCDDEEFF 1950C0289C0D1A57740554D84258838E 67
23 00112233445566778899AA9BCCDDEEFF 470768A9204B1C419D3A1AC965B158FC 63
24 00112233445566778899AABFCCDDEEFF 9AAE7AD6BFCAD5F7F8C603389F079D6B 67
25 00112233445566778899AABBECDDEEFF 8B4BC681C4325A269364DDFBDBDFA9A1 63
26 00112233445566778899AABBC8DDEEFF 6E966F93BBADDBEF250121E22A251F64 67
27 00112233445566778899AABBCCFDEEFF DC878A2FECD62360F46A833CE961C750 63
28 00112233445566778899AABBCCDFEEFF 10696449CE5E01AC1A959296F861928D 63
29 00112233445566778899AABBCCDDCEFF A0D0466342FEC719B20D8D622E53793E 63
30 00112233445566778899AABBCCDDECFF D71CA88D24DC4F3B7EE372738442796B 63
31 00112233445566778899AABBCCDDEE7F 2A4878CC92B11A80C1DD235F75B6B180 63
32 00112233445566778899AABBCCDDEEFE D0FE170E5E42167DAE8EEA0D6823B3FC 67
(Chú ý: trong bảng 2.6, những ký tự hexa in đậm chứa bit thay đổi)
Khoảng cách Hamming trung bình giữa các bản mã là:
Trang 18M = 00112233445566778899AABBCCDDEEFF
Chọn phần tử đầu của cấp số nhân tạo khóa vẫn làK a 1 x x2
Đa thức lấy modulo vẫn là: 60
0
i
;
Ví dụ 2.7:
0
12 F.1 1000.0100 1111.1
1
Hex Bin K x x x x x x Bảng 2.7 là kết quả tính toán phân bố của bộ mã khi thay đổi khóa K, mỗi khóa khác với khóa đầu tiên 2 bit, với cùng một bản rõ [2]: Bảng 2.7 Khoảng cách Hamming d H( ,C C1 i) giữa các cặp bản mã khi các khóa khác khóa K1 2 bit d H(K K1 , i) 2 với cùng một bản rõ M TT Khóa K i Bản mã C i d H(C C1, i) W K( i) 0 123456789ABCDEF1 B5FF8B3C0D4729EBDF1F7B1E23E22971 0 33 1 423456789ABCDEF1 B25EF4355618A32DF68218698388C07E 66 33
2 173456789ABCDEF1 956624ACFB8C1D2BB5F253B7BF2C768E 68 35
3 126456789ABCDEF1 C818DED35C9B8B4A5B5DBA1697C703E6 60 33 4 123156789ABCDEF1 D15BC0521DF97629CDA9CFD095FC8429 64 33 5 1234C6789ABCDEF1 DA311FCD09B6CE36A1A305A6878FD5BE 78 33
6 12345C789ABCDEF1 B642596F432140C01E9025F6844E9A16 68 33
7 123456D89ABCDEF1 03BCB6B5C13900D62AB10084932CDC9E 76 33
8 1234567D9ABCDEF1 F31E17D1E00C2B976DF3DAC80A7A2CD9 61 35
9 12345678CABCDEF1 9617EB92518C15D9FEA5B18EBF88BB12 58 33
10 123456789FBCDEF1 EBA5472FD411C5D83663EB8860CE0C8D 65 35
11 123456789A1CDEF1 93F98F046E233FE39FFF2D32D24145BA 49 31
12 123456789AB9DEF1 0E78D682F8673EF703DF8E95697D4990 67 33
13 123456789ABC7EF1 A688E42CC74777E5E40A195302CE18CF 57 33
14 123456789ABCDBF1 E9E58EC43FDACE98F3C3BA6A029525A9 62 33
15 123456789ABCDEA1 27E8EAE2859B880B277345112B8B7104 60 31
(Chú ý: trong bảng 2.7, các ký tự hexa in đậm chứa các bit của khóa đã thay đổi, trọng
số các đa thức sinh tạo khóa luôn đảm bảo là lẻ)
Khoảng cách Hamming trung bình giữa các bản mã:
15
1
1
( , ) 63,93 15
i