Nghiên cứu ứng dụng mã sửa sai trong bảo mật thông tin
Trang 2Luận án được hoàn thành tại Học viện Kỹ thuật Quân sự Bộ Quốc Phòng
Người hướng dẫn khoa học:
1 GS TS Nguyễn Bình
2 TS Nguyễn Đức Thắng
Phản biện 1: PGS TS Lê Mỹ Tú
Phản biện 2: PGS.TS Nguyễn Quốc Trung
Phản biện 3: PGS.TS Phan Hữu Huân
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án cấp nhà nước họp tại Học viện Kỹ thuật Quân sự
Vào hồi 14 giờ 00 ngày 03 tháng 5 năm 2007
Có thể tìm hiểu luận án tại:
• Thư viện Học viện kỹ thuật Quân sự
• Thư viện Quốc gia
Trang 31 Th.S Ph¹m ViÖt Trung (1999), “øng dông ph−¬ng ph¸p m·
ho¸ vµ gi¶i m· Huffman trong b¶o mËt th«ng tin”, T¹p chÝ Nghiªn cøu khoa häc kü thuËt qu©n sù, sè 30, pp 81-85
2 Ass.Prof Nguyen Binh, Vu Viet, Pham Viet Trung (2000),
“Decompositions of polynomial ring and coding with random clock”, CAFEO2000, pp 149 - 154
3 Ass Prof Dr Nguyen Binh, M.E Van Danh Nhuan, M.E
Pham Viet Trung (2001), “Constructing cyclic codes over cyclic multiplicative groups”, 25th AIC Conference (Shanghai),
pp 413 – 417
4 Ass Prof Dr Nguyen Binh, M.E Tran Duc Su, M.E Pham
Viet Trung (2001), “Decomposition of polynomial ring according to the classes of conjugate elements ”, 26 th AIC Conference (Ha Noi), (WG1, Distribution only)
5 Bïi ViÖt Hång, B¹ch NhËt Hång, NguyÔn ThÕ HiÕu, Ph¹m
ViÖt Trung (2005), "X©y dùng thuËt to¸n ch−¬ng tr×nh an toµn th«ng tin, ¸p dông cho m« h×nh an toµn th− ®iÖn tö", T¹p chÝ nghiªn cøu KHKT vµ c«ng nghÖ qu©n sù, sè 12, pp 49 - 52
6 Th.S Ph¹m ViÖt Trung (2005), “X©y dùng hÖ mËt McEliece
trªn m· xyclic côc bé”, T¹p chÝ nghiªn cøu KHKT vµ c«ng nghÖ qu©n sù, sè 13, pp 63 - 69
Trang 4A Mở đầu
Tính cấp thiết: ngày nay với sự phát triển mạnh mẽ của công nghệ
thông tin và truyền thông, mạng máy tính đang trở thành một phương tiện điều hành thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội do
vậy an toàn thông tin truyền trên mạng đóng một vai trò rất quan trọng
Trong những thập kỷ 70 và 80 của thế kỷ trước công nghệ mã hoá thông tin đã có bước phát triển vượt bậc [27] [36] [45], các hội nghị khoa học thường niên của hiệp hội quốc tế về nghiên cứu công nghệ mã được
tổ chức liên tục, các hội nghị Euro Crypt tại châu âu, Crypto tại Mỹ thu hút được sự quan tâm của các chuyên gia công nghệ hàng đầu trên thế giới Các công nghệ mã hoá hiện đại đều không dựa vào khả năng giữ bí mật về công nghệ mã hoá ( thuật toán là công khai), mà chỉ dựa vào bí mật chìa khoá giải mã, một hệ mã như vậy được gọi là hệ mật khoá công khai Một hệ mật như vậy đáp ứng được đầy đủ đòi hỏi của các chuyên gia về bảo mật thông tin, phù hợp cho các ứng dụng rộng rãi trong cộng
đồng Trong thời gian gần đây nhiều thuật toán tốt đã được xây dựng song song với tốc độ phát triển của công nghệ thông tin nói chung, tuy nhiên đó là những thuật toán và công nghệ mã hoá do nước ngoài cung cấp, do vậy để bảo vệ các thông tin trong lĩnh vực an ninh quốc phòng chúng ta phải tự mình xây dựng các giải pháp cho bảo mật thông tin
ý nghĩa khoa học và thực tiễn của luận án:
Về khoa học: Nghiên cứu của luận án góp phần làm phong phú thêm
về lý thuyết mã XCB, chứng minh một khả năng mới xây dựng hệ mật khoá công khai dựa trên lý thuyết mã đại số
Về thực tiễn: Kết quả nghiên cứu sẽ đưa ra một khả năng có thể ứng
dụng trong thực tế, góp phần nâng cao tính bảo mật của thông tin trên
đường truyền Một số kết quả nghiên cứu mới về mã xyclic cục bộ(XCB) cho phép các đồng nghiệp có thể tham khảo và xây dựng các bộ mã XCB
có số dấu thông tin lớn
Mục đích của luận án
- Nghiên cứu phát triển lý thuyết về mã xyclic cục bộ
- Xây dựng một hệ mật khoá công khai dựa trên thuật toán McEliece
sử dụng mã XCB
Những kết quả mới cơ bản trong nội dung nghiên cứu của luận án:
- Nghiên cứu hệ mật khoá công khai McEliece, trên cơ sở đó đề xuất các vấn đề cần giải quyết
- Nghiên cứu về mã XCB, hoàn thiện thuật toán, kiểm chứng bằng phần mềm, phương án phân hoạch tổng quát vành theo nhóm nhân xyclic đơn vị với k > 20
- Đề xuất và chứng minh về mặt lý thuyết phân hoạch vành đa thức chẵn theo lớp các phần tử liên hợp
Trang 5- Đề xuất và chứng minh một phương án xây dựng hệ mật McEliece trên mã XCB
- Kết quả nghiên cứu của luận án sẽ góp phần phát triển lý thuyết mã XCB nói riêng và mã sửa sai nói chung Đưa ra một kết quả mới trong việc xây dựng hệ mật khoá công khai dựa trên lý thuyết mã đại số
Bố cục của luận án
Luận án gồm: 104 trang, có 13 bảng số liệu, 13 hình vẽ, 83 tài liệu tham khảo Nội dung của luận án được chia làm 3 chương, kết luận, tài liệu tham khảo, phụ lục và đĩa chương trình:
Chương 1 Tổng quan về hệ mật khoá công khai
Chương 2 Lý thuyết về mã XCB và phân hoạch vành theo các phần tử
liên hợp
Chương 3.Xây dựng hệ mật McEliece trên mã XCB
Kết luận Kết luận về kết quả nghiên cứu đã đạt được, những kết quả
nghiên cứu mới của luận án và kiến nghị về hướng phát triển tiếp theo
Phụ lục Phụ lục A: Chương trình nguồn của thuật toán phân hoạch vành
dựa trên nhóm nhân xyclic đơn vị (kèm theo 01 đĩa
CD chương trình)
Phụ lục B: Chương trình nguồn xây dựng hệ mật McEliece trên
mã XCB: chương trình mã hoá, chương trình giải mã, chương trình tạo khoá (kèm theo 01 đĩa CD chương trình)
B Nội dung nghiên cứu của luận án
Chương 1 Tổng quan về hệ mật khoá công khai
Nghiên cứu tổng quan về hệ mật khoá công khai: Khái quát chung về hệ mật mã cổ điển, trên cơ sở đó phân tích các ưu nhược điểm của hệ mật mã cổ điển và sự ra đời của hệ mật khoá công khai Nghiên cứu tổng quan về hệ mật khoá công khai phân tích quá trình phát triển của hệ mật khoá công khai, tập trung sâu vào phân tích hệ mật khoá công khai dựa trên thuật toán McEliece
1.1 Khái quát chung hệ mật mã cổ điển
1.1.1 Mô hình hệ thống truyền tin mật
1.1.2 Một số hệ mật mã cổ điển điển hình
1.1.2.1 Mã dịch vòng (MDV)
1.1.2.2 Mã thay thế (MTT)
1.1.3 Các ưu nhược điểm của hệ mật m∙ cổ điển
1.2 Hệ mật mã phi đối xứng (Hệ mật khóa công khai)
1.2.1 Khái quát chung
Trang 61.2.2 Nguyên tắc chung m∙ hoá với khoá công khai
1.2.3 Quá trình phát triển của hệ mật m∙ khoá công khai (phi đối
ở đây, e ∈ (Z 2)n là một vector ngẫu nhiên có trọng số t
Người nhận giải mã bản mã y ∈ (Z 2)n theo các bước sau:
- Đánh giá chung: McEliece đã đưa ra hệ mật mã khoá công khai đầu
tiên dựa trên lý thuyết mã hoá đại số vào năm 1978 ý tưởng đằng sau của hệ mật mã khoá công khai này dựa trên một thực tế là vấn đề giải mã của một mã tuyến tính bất kỳ là một vấn đề rất khó khăn Trong quá khứ, rất nhiều nhà nghiên cứu đã rất cố gắng để phá vỡ lược đồ McEliece nhưng không ai trong số họ thành công, một số người quả quyết rằng họ
đã phá được lược đồ McEliece, tuy nhiên, hầu hết các nhà mật mã đều không tin vào kết quả của họ bởi vì có quá ít các bằng chứng rõ ràng để
Trang 7chứng thực giới hạn thời gian họ đã đạt được Theo đánh giá của McEliece, một mã sửa sai có khả năng tạo ra nhiều lớp mã khác nhau có thể được ứng dụng vào để xây dựng hệ mật
Ưu nhược điểm của hệ mật McEliece dùng mã Goppa:
- Dung lượng khoá lớn
- Mã hóa và giải mã khá phức tạp
- Chưa có thuật toán tìm mã hữu hiệu
Mã Xyclic có thuật toán mã hoá và giải mã rất đơn giản nhưng không dùng được trong hệ mật McEliece do số lượng hạn chế các Ideal trong vành làm giảm khả năng lựa chọn
Mã tuyến tính ngẫu nhiên cũng không phải là ứng cử viên trong hệ mật này mặc dù có khả năng lựa chọn rất lớn vì các mã này có thuật toán mã hoá và giải mã phức tạp
Các mã XCB có thuật toán mã hoá và giải mã đơn giản và có nhiều khả năng lựa chọn, bởi vậy các mã XCB có thể xem xét để ứng dụng trong hệ mật McEliece
1.3 Kết luận: - Trong chương này đã đề cập tới các nội dung về các hệ
mật mã cổ điển và các hệ mật mã khoá công khai, trên cơ sở phân tích các ưu nhược điểm của các hệ mật, chúng ta nhận thấy rằng trong các hệ mật khoá công khai chỉ có hệ mật McEliece là sử dụng lý thuyết mã đại
số cụ thể là mã Goppa để xây dựng hệ mật Với sự phát triển của lý thuyết xây dựng mã XCB, chúng ta hoàn toàn có thể tự xây dựng một hệ
mật khoá công khai dựa trên lược đồ McEliece sử dụng mã XCB
Bên cạnh các ưu điểm của mã XCB là đơn giản dễ thực hiện về mặt kỹ thuật mã hoá và giải mã (đặc biệt thích hợp với phương pháp giải mã ngưỡng), có nhiểu khả năng lựa chọn các lớp kề để lập mã thì vẫn còn tồn tại các nhược điểm đó là chưa tìm được lớp mã tốt nào Vì vậy các vấn đề cần phải tiếp tục nghiên cứu là:
- Cần tối ưu hoá các thuật toán phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị để đưa ra các phân hoạch với số dấu thông tin lớn
- Phát triển lý thuyết về mã XCB để chứng minh tính đa dạng trong tạo mã, xây dựng phân hoạch vành mới (phân hoạch vành theo các phần tử liên hợp), đề xuất các lớp mã tốt đưa vào sử dụng trong thực tế
Chương 2 Lý THUYếT Về M∙ XYCLIC CụC Bộ Vμ PHÂN
HOạCH VμNH THEO CáC PHầN Tử LIÊN HợP
2.1 Mã Xyclic cục bộ
2.1.1 Nhóm nhân Xyclic trong vành đa thức
2.1.2 Phân hoạch của vành theo các nhóm nhân Xyclic
Trong vành Rn, trước tiên xác định nhóm nhân xyclic A, số phần tử nhóm nhân nhiều nhất là max ord a(x) và các đa thức
* Các bước thực hiện:
Trang 8Bảng 2.1 Phân hoạch vành theo nhóm nhân Xyclic đơn vị
Đây là nhóm nhân Xyclic cấp 15 có a(x)= 1+ x + x2
Trong mọi phân hoạch bất kỳ luôn tồn tại nhóm nhân cấp 1 tầm thường Như vậy chọn hạt nhân khác nhau sẽ cho các phân hoạch khác nhau.Nếu a(x) = 1 + x2 + x3 ↔ {0 2 3} Ta có phân hoạch vành:
A
b(x)
R n
Trang 9Bảng 2.3 Phân hoạch vành với a(x) = 1 + x 2 + x 3
Định nghĩa 2.1 (Phần tử đối xứng): a(x) đ−ợc gọi là phần tử đối xứng
của a x( ) nếu:
1 0
Mã XCB đ−ợc lựa chọn là mã hệ thống nếu các lớp kề đ−ợc chọn chứa các phần tử trong nhóm nhân Xyclic đơn vị ng−ợc lại mã XCB là một mã tuyến tính không hệ thống
2.1.4 M∙ XCB xây dựng trên các nhóm nhân Xyclic
Trờn Z 2 [x]/(x k + 1) xột nhúm nhõn Xyclic sau: A = {ai(x)} i = 1, 2,… Giả sử ord a(x) = n Mỗi nhúm nhõn Xyclic sẽ tạo nờn một mó Xyclic (n, k, d) nào đú Số cỏc nhúm nhõn Xyclic tạo nờn cỏc mó (n, k, d) cú cựng tham số là ϕ(n), trong đú ϕ(n) là hàm Euler, ϕ(n) là số cỏc số nguyờn nguyờn tố cựng nhau với n
Nếu n = p là một số nguyờn tố thỡ ϕ(p) = p – 1
Bằng cỏch dịch vũng (Xyclic) cỏc phần tử trong mỗi nhúm nhõn, ta cũng
cú thể tạo ra cỏc mó Xyclic (n, k, d) cú cựng tham số Như vậy số cỏc
mó Xyclic cú cựng tham số cú thể tạo ra là: N = n.ϕ(n)
2.1.5 Quan điểm xây dựng m∙ dựa trên các phân hoạch
Với các vấn đề đã trình bày ở trên chúng ta hình dung đ−ợc các tồn tại của mã XCB Các vấn đề của mã xyclic cục bộ là tìm các mã tốt theo một tiêu chí nào đó:
Trang 10- Các tiêu chí chọn lớp kề như thế nào để đạt được mã tốt: chọn lớp
kề đối xứng lập mã, xây dựng 2 lớp mã trực giao, tự trực giao Bóc
từ lớp kề có trọng số bé nhất đến lớp cao.Bóc tất cả các lớp có trọng số lẻ có khả năng trực giao
- Chọn lớp kề như thế nào để có khả năng sửa sai tốt nhưng tốc độ cao?
Một trong những vấn đề cơ bản của mã xyclic cục bộ là nghiên cứu các khả năng phân hoạch khác nhau trên cơ sở đó đề xuất các phương án lựa chọn bộ mã tối ưu Trong các nghiên cứu trước đây đã đề cập đến các
phương án phân hoạch: Phân hoạch theo nhóm nhân Xyclic đơn vị, Phân
hoạch theo nhóm nhân xyclic cực đại Phân hoạch theo nhóm nhân Xyclic cấp bất kỳ với các hạt nhân phân hoạch khác nhau Với các phân hoạch khác nhau sẽ tạo ra các bộ mã khác nhau và các phương pháp giải mã khác nhau Tuy nhiên để mở rộng thêm về lý thuyết mã XCB sau đây chúng ta sẽ xây dựng chương trình tổng quát phân hoạch vành theo nhóm nhân xyclic đơn vị, đưa ra các ,nghiên cứu lý thuyết mới về phân hoạch vành dựa trên: phân hoạch vành hỗn hợp, phân hoạch dựa trên các phần tử liên hợp
2.2 Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị
2.2.1 Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị
Ta ký hiệu vành đa thức Z 2 [x] / [x k +1] có nhóm nhân xyclic đơn vị được
biểu diễn: [I] = {x 0 , x 1 , , x k-1 } Hạt nhân phân hoạch của nhóm nhân
xyclic đơn vị chính là x Vấn đề cơ bản là phải xây dựng thuật toán xác
định chính xác các lớp kề cần có và các phần tử trong các lớp kề Thực chất vành đa thức bao gồm nhóm nhân xyclic đơn vị và các lớp kề được tạo từ nhóm nhân xyclic đơn vị [I] Việc xây dựng các lớp kề được thực hiện như sau:
Bước 1 Chọn A(x) không thuộc nhóm nhân [I], là tổ hợp của các đơn
thức trong nhóm nhân [I], A(x) chính là trưởng lớp kề Tiếp theo lần lượt xây dựng các phần tử trong lớp kề này bằng cách nhân với hạt nhân phân hoạch
Bước 2 Tiếp tục thực hiện bước 1 cho đến khi quét hết các lớp kề có thể
có của vành đa thức Phân hoạch này có số phần tử của vành là (2n-1) đa thức khác 0 Trong các nghiên cứu trước đây đều phân hoạch vành với k nhỏ, tuy nhiên để phân hoạch được vành với các k lớn cần phải hoàn thiện thuật toán tổng quát để tính toán được hết các phần tử và các lớp kề của phân hoạch
2.2.2 Thuật toán xây dựng vành đa thức theo nhóm nhân xyclic đơn vị
Phân hoạch vành Z2[x] /xk+1 theo nhóm nhân xyclic đơn vị, ta có thể ứng dụng hầu hết các ngôn ngữ lập trình hiện nay Với Visual Basic, ta
có thể lập trình đưa ra bảng phân hoạch với số k lớn Trong thực tế, với
số dấu thông tin nhỏ thì tốc độ tính toán là rất nhanh Khi thử nghiệm
Trang 11thực tế với máy tính có cấu hình Pentium VI 2.4GHz, 1Gb RAM, kết quả tính toán cụ thể được thống kê trong bảng 2.4
Bảng 2.4 Kết quả thử nghiệm chương trình phân hoạch vành đa thức
Chú ý: Để thuận tiện cho việc giải mã thì ord q1(x) và ord q2(x) phải là bội của nhau Với vành Z2[x]/ xk + 1, nên chọn ord q1(x) = k (hoặc
ord q2(x) = k) lúc đó ord q2(x) (hoặc ord q1(x)) sẽ bội của n Có thể khái quát các bước thực hiện phân hoạch hỗn hợp vành Z2[x]/ xk + 1 như sau:
Bước 1: Xác định max ord a(x) của phần tử trong vành, tính số ước của
max ord a(x), số ước số này cũng chính là M (số kiểu phân hoạch không suy biến của vành)
Bước 2: Phân hoạch vành theo hai hạt nhân trong đó phải có ít nhất một
hạt nhân có trọng số lẻ Chọn một hạt nhân phân hoạch q1(x) sao cho
q1(x) = k, một hạt nhân phân hoạch thứ hai q2(x) với ord q2(x) là bội số của n Một hạt nhân có trọng số lẻ được dùng để phân hoạch các phần tử
có trọng số lẻ của vành, hạt nhân còn lại được dùng để phân hoạch các phần tử có trọng số chẵn của vành
Bước 3: Kết hợp các CGP của hai phân hoạch với nhau để được một
phân hoạch mới
Trang 122.4 Mã xyclic và xyclic cục bộ xây dựng trên các vành đa thức có độ dài chẵn
Xét phân hoạch vành đa thức theo lớp các phần tử liên hợp Với n lẻ ta xét vành Z2[x]/x2k+1, ta ký hiệu là Z2k Ta có các khái niệm sau
2.4.1 Các khái niệm (Các thặng d− bậc 2 và các căn bậc 2 của chúng)
- Nếu n là lẻ với mọi a(x) thì luôn tồn tại a x( ) Phần tử có căn bậc hai
nh− vậy gọi là thặng d− bậc 2 và a x( ) này là duy nhất
- Nếu n là chẵn thì các đa thức trong vành có hai loại khác nhau, một loại có căn bậc hai, một loại không có căn bậc hai
Trang 13Sqr = (1+x2)
Sqr = (1)
Sqr = (1+x2+x4) Sqr= (1+x4)
Sqr = (x4) Sqr = (x2) Sqr = (0)
Sqr = (x2+x4)
Nhận xét:
- Ta có 8 căn bậc hai của x2 Bằng phương pháp tương tự tính được các 8 căn bậc hai của các QR còn lại Số căn bậc 2 của thặng dư bậc 2 là 2k
2.4.2 Phân hoạch vành Z 2k theo các căn bậc của các thặng dư bậc hai (QR)
Trong Z 2k có 2k các QR, mỗi QR có 2k các căn bậc hai khác nhau do vậy tạo được nhiều kiểu phân hoạch mới Vấn đề là sử dụng phân hoạch này
để tạo mã như thế nào? j = ±j trong số phức j được gọi là phần tử liên
hợp Do căn bậc hai không phải duy nhất do vậy Sqr được gọi là phần tử liên hợp
Nghiên cứu tính chất của phần tử liên hợp là căn bậc hai của một đa thức duy nhất.Theo ví dụ 2.1 ta có:
+x 4 ) S r (0)