Với tính chất như vậy ta có thể sử dụng các cấp số nhân cyclic để sinh khóa cho mật mã khối nói chung và hệ mật DES nói riêng.. Phạm vi nghiên cứu: Sử dụng cấp số nhân cyclic trên vành đ
Trang 1TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
Trang 3MỞ ĐẦU
Lý do chọn đề tài
Mật mã khóa bí mật hay còn gọi là mật mã cổ điển có lịch sử phát triển từ lâu đời Cho đến ngày này hệ mật này vẫn được sử dụng rộng rãi với các ưu điểm nổi bật như: Đơn giản (thời gian nhanh, yêu cầu phần cứng không phức tạp); Hiệu quả: (Tỷ
lệ mã bằng 1) dễ sử dụng cho các ứng dụng nhạy cảm với độ trễn và các ứng dụng di động
Các phương pháp xây dựng các hệ mật khóa bí mật thường được xây dựng trên các phép thay thế, hoán vị và kết hợp cả thay thế và hoán vị và nổi bật trong các hệ mật này là chuẩn mã dữ liệu DES Đây là một phương pháp mật mã được tổ chức Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ chọn làm chuẩn chính thức vào năm 1976, sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới
Phương pháp xử lý thông tin trong DES theo mật mã khối Khi sử dụng DES ở chế độ bình thường ECB có một nhược điểm là khi các khối bản tin rõ đầu vào giống nhau và sử dụng cùng một khóa thì mã đầu ra sẽ giống nhau, điều này là rất nguy hiểm và thám mã có thể lợi dụng để phá mã Để giải quyết vấn đề này ta có thể sử dụng DES ở chế độ liên kết mã khối (CBC) nhưng ở chế độ này cũng có nhược điểm
là khi giải mã sai một khối thông tin thì toàn bộ các khối thông tin tiếp theo sẽ bị giải
mã sai Một phương pháp khác để khắc phục điểm yếu này là sử dụng các khóa khác nhau cho mỗi khối thông tin đầu vào và các khóa này được tạo một cách ngẫu nhiên
là tốt nhất Tuy nhiên, việc tạo và lưu trữ các khóa kiểu ngẫu nhiên sẽ tốn kém và không hiệu quả
Cấp số nhân cyclic trên vành đa thức đặc biệt là trên vành đa thức có hai lớp kề cyclic có một tính chất là số lượng các phần tử của cấp số nhân rất lớn và xuất hiện
có tính gần giống ngẫu nhiên Việc tạo các cấp số nhân khá đơn giản, chỉ cần một đa thức sinh và có thể thêm một đa thức ban đầu Với tính chất như vậy ta có thể sử dụng các cấp số nhân cyclic để sinh khóa cho mật mã khối nói chung và hệ mật DES nói riêng Đây là một hướng nghiên cứu mở mà luận văn sẽ tập trung vào nghiên cứu Các kết quả của luận văn góp một phần vào việc nâng cao tính bảo mật chống lại khả năng thám mã của các mật mã khối
Trang 4Đối tượng và phạm vi nghiên cứu
Đối tương nghiên cứu: Mật mã khối; 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 để tạo khóa cho hệ mật DES
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 hệ mật DES với khóa đề xuất
Nội dung của đồ án bao gồm
Chương 1: Tổng quan về mật mã học
Chương 2: Nghiên cứu sử dụng cấp số nhân Cyclic vào việc tạo khóa cho mật mã khối Chương 3: Một số kết quả mô phỏng đánh giá
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC 1.1 Các khái niệm cơ bản về mật mã học
1.1.1 Sơ lược lịch sử về khoa học mật mã
1.2.1 Sơ đồ chức năng của hệ mật khóa bí mật
Hình 1.1 Sơ đồ chức năng của hệ mật khóa bí mật [1]
1.2.2 Hệ mật thay thế
- Các hệ mật thay thế đơn biểu
- Các hệ mật thay thế đa biểu
1.2.3 Các hệ mật hoán vị
- Mật mã Rail fence
- Mật mã Route
- Mật mã Columnar
Trang 61.2.4 Chuẩn mã dữ liệu DES
- Giới thiệu về DES
Trang 7Hình 1.3 Khối tạo khóa cho các vòng mã hóa của DES
- Giải mã DES
- Sự an toàn của DES
1.2.5 Chuẩn mã dữ liệu tiên tiến (AES)
- Tổng quan về AES
- Thiết kế tổng quát của AES
Hình 1.4 Thiết kế tổng quát của AES [4]
Trang 81.3 Hệ mật khóa công khai
1.3.1 Sơ đồ chức năng của hệ mật khóa công khai
Hình 1.5 Sơ đồ chức năng của hệ mật khóa công khai
KCB: Khóa công khai của B
KRB: Khóa bí mật của B
Mã hóa: C = E (M,KCB) Giải mã: M = E -1 (C, KRB) = D (C, KRB) [1]
1.3.2 Một số bài toán sử dụng trong hệ mật khóa công khai
1.3.3 Ưu và nhược điểm của hệ mật khóa công khai
1.3.4 Xây dựng các chương trình ứng dụng kiến trúc PGP
Hình 1.6 Chương trình ứng dụng kiến trúc PGP
Với mô hình này sẽ kết hợp 2 ưu điểm của hai hệ mật khóa bí mật và hệ mật khóa công khai
1.3.5 Sử dụng mã hóa công khai để truyền khóa bí mật K
1.3.6 Sử dụng hệ mật mã khóa bí mật để mã hóa bản tin M
KRB
Trang 91.4 Kết luận chương
Khi thiết kế mật mã thì vấn đề đảm bảo độ vững chắc của thuật toán là một vấn đề quan trọng nhất Đánh giá độ bền vững của thuật toán là một trong các vấn đề lâu nhất và khó nhất
Phương pháp mã hóa cổ điển sử dụng giải thuật đơn giản, không gian khóa nhỏ Phương pháp mã hoá cổ điển có thể dễ dàng bị giải mã bằng cách đoán chữ dựa trên phương pháp thống kê tần xuất xuất hiện các chữ cái trên mã và so sánh với bảng thống kê quan sát của bản rõ Để dùng được mã hoá cổ điển thì bên mã hoá và bên giải mã phải thống nhất với nhau về cơ chế mã hoá cũng như giải mã Việc thay đổi mã là rất khó và dễ bị lộ Hệ mật mã khóa đối xứng có khóa lập mã và khóa giải mã là trùng nhau cho nên mật mã đó phải được giữ bí mật chỉ có người lập mã và người nhận mã được biết mà thôi Khóa phải được gửi đi trên kênh an toàn, nếu kẻ địch tấn công trên kênh này có thể sẽ phát hiện ra khóa
Thuật toán mã hóa công khai được thiết kế sao cho khóa sử dụng vào việc mã hóa là khác so với khóa giải mã Khóa giải mã không thể tính toán được từ khóa mã hóa Nếu kẻ tấn công cố tình tìm ra khóa giải mã thì sẽ gặp phải khó khăn về thời gian và số phép thử vô cùng lớn, như vậy là không khả thi vì bản tin chỉ có giá trị trong một thời gian ngắn Khóa
mã hóa được gọi là khóa công khai còn khóa giải mã được gọi là khóa riêng Khóa công khai và bản tin mã hóa đều được gửi đi trên một kênh thông tin không an toàn
Trang 10CHƯƠNG 2 NGHIÊN CỨU SỬ DỤNG CẤP SỐ NHÂN CYCLIC
VÀO VIỆC TẠO KHÓA CHO MẬT MÃ KHỐI 2.1 Những vấn đề cơ bản về cấu trúc đại số
Những vấn đề cơ bản được trình bày trong mục này gồm có:
2.2.1 Khái niệm đa thức
Nếu R là một vành giao hoán thì một đa thức của biến x trên vành R là một biểu thức
0 ) (
n
i
i
i x f x
Nếu R là một vành giao hoán thì vành đa thức R[x] là một vành được tạo bởi tập tất cả các
đa thức của biến x có các hệ số trong R Hai phép toán là phép cộng và phép nhân đa thức
thông thường với số học các hệ số được thực hiện trong vành R [1]
Trong trường nhị phân, vành đa thức được ký hiệu:
(f(x); f, ) = Z2[x]/xn + 1
e(x) = 0 gọi là phần tử đơn vị, deg e(x) = 0
(f(x), +) là một nhóm đối với phép cộng, thỏa mãn tiên đề của nhóm
(f(x), *) là nửa nhóm đối với phép nhân, không tồn tại f(x), g(x) mà f(x).g(x) = 0
2.2.3 Vành đa thức có hai lớp kề cyclic
Vành đa thức theo modulo xn+1 được gọi là vành đa thức có hai lớp kề cyclic nếu phân tích của xn+1 thành tích của các đa thức bất khả quy trên trường GF(2) có dạng sau:
xn + 1 = (x + 1) n1 i
Trang 11Trong đó (1+x) và eo(x) =
1
Theo thuật toán ta xác định được một số giá trị n đảm bảo vành đa thức theo mod xn+1
là một vành đa thức có hai lớp kề cyclic
Dưới đây là một số giá trị n thỏa mãn [3]:
Trang 122.3 Các nhóm nhân cyclic trên vành đa thức
2.3.1 Nhóm nhân của vành đa thức
Tập các đa thức f(x) trong vành đa thức Z2[x]/x n+1 với một phép toán nhân đa thức tạo nên một nhóm nhân G
<f(x); * > = G Nếu g(x), f(x) G thì g(x).f(x) = d(x) G Trong nhóm nhân tồn tại phần tử đơn vị e(x) với f(x).e(x) = f(x)
Với a(x) = 1 + x ta có thể viết a(x) = 1.x0 + 1.x1 W(a(x)) = 2
2.3.2 Nhóm nhân cyclic trong vành đa thức
- Nhóm nhân cyclic (CMG – Cyclic Multiplicate Groups)
- Nhóm nhân cyclic đơn vị
- Nhóm nhân cyclic với phần tử sinh a(x)
- Đa thức đối xứng và các nhóm nhân cyclic đối xứng
2.3.3 Cấp số nhân cyclic trên vành đa thức
Xét vành đa thức Z2[x]/ x n + 1 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.10: Cấp số nhân cyclic (CGP - Cyclic Geometic Progressions)
Cấp số nhân cyclic trên vành đa thức là một tập hợp con có dạng sau:
A(a,q) = {a(x), a(x).q(x), a(x).q2(x), , a(x).q m -1 (x)} (2.16) 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
a(x).qm(x) a(x) mod x n + 1
Giá trị của m được xác định bởi cấp của nhóm nhân cyclic [3]
Trong trường hợp ta chọn số hạng đầu a(x) = 1, công bội là q(x) thì:
A(1,q) = {1, q(x), q2(x), …, qm-1(x)}; qm(x) = q0(x) =1;
Trang 13là cấp số nhân cyclic cấp m
2.4 Phương pháp tạo khóa cho hệ mật mã khối bằng các cấp số nhân cyclic
2.4.1 Đề xuất sử dụng cấp số nhân cyclic cho việc tạo khoá
Ta nhận thấy rằng các hệ mật tuyến tính là không an toàn Bởi vậy, để sử dụng được chúng ta phải liên tục thay đổi khoá
Để thực hiện điều kiện này ta có thể làm như sau:
- Hai bên liên lạc chọn trước một phần tử nguyên thủy a(x) với:
ord a(x) = 2n-1–1 (a(x) là phần tử sinh của nhóm nhân cyclic có cấp = 2n-1–1)
- Số các phần tử này được xác định bởi công thức sau:
M = (2n-1–1) (2.17)
Ở đây, (.) là hàm -Euler
2.4.2 Đề xuất sử dụng dãy m lồng ghép cho việc tạo khóa
Đối với vành đa thức có hai lớp kề cyclic, phân tích của vành này luôn có phân tích nhị thức ở dạng:
n
i
i n
x x x
(2.18)Vành đa thức có hai lớp kề cyclic sẽ có hai đa thức h(x) ở dạng như sau:
+ h(x) = (1+x) và:
+ h(x) =
1
0
n
i
i x
Cấp lớn nhất trên vành đa thức có hai lớp kề cyclic sẽ là 2n-1 -1 Trên vành này, chúng
ta hoàn toàn có thể xây dựng một dãy m có chiều dài L = 2n-1 -1 đúng bằng cấp lớn nhất của
đa thức trên vành Cách thức xây dựng dãy m lồng ghép ở đây sẽ dựa trên phân hoạch theo modulo h(x), với phương pháp phân hoạch tạo ra cấp số nhân có chiều dài 2n11 trên vành như sau:
1
( ) mod ( ), 1 2, , 2 1
a x h x i (2.19) (a(x) là công bội của cấp số nhân)
Ở đây h(x) đóng vai trò là đa thức sinh để tạo ra dãy m và là đa thức bất khả quy bậc n-1
Muốn để cho phân hoạch có chiều dài cực đại L = 2n-1 -1 thì đa thức a(x) được chọn làm công bội sẽ phải thỏa mãn:
Max(ord (a(x)) = 2n-1 -1 (2.20)
Trang 14Để minh họa cụ thể, ta sẽ sẽ xây dựng dãy m trên vành x13 + 1 Vành này có cấp cực đại là: max(ord (a(x)) = 213-1 -1 = 4095 = 3.3.5.7.13
Vành này có cấp hay chiều dài của các phân hoạch là bội số chung của tổ hợp 3, 5, 7,13
Ta sẽ tạo ra dãy m trên vành này có chiều dài hay chu kỳ là 4095: 212 -1 = 4095
Ở đây, ta thấy: h(x) =
12
0
i i
x
Công bội a(x) sẽ được chọn là các đa thức có cấp là 4095, chẳng hạn ta có thể chọn các tam thức ở bảng sau để trở thành công bội a(x) trong phân hoạch tạo dãy m theo modulo h(x)
2.5 Kết luận chương
Chương này đã trình bày về một số khái niệm cơ bản về đại số trừu tượng, các khái niệm về: vành đa thức, nhóm nhân, cấp số nhân cyclic trên vành đa thức, đặc biệt là vành đa thức có hai lớp kề cyclic Đây là một vành đặc biệt không được sử dụng trong xây dựng mã
cổ điển, tuy nhiên với cấu trúc của các cấp số nhân cyclic trên các vành đa thức có hai lớp
kề ta có thể ứng dụng vào việc xây dựng các hệ mật và việc tọa khóa cho các hệ mật khá lý thú
Cấp số nhân cyclic trên vành đa thức đặc biệt là trên vành đa thức có hai lớp kề cyclic
có một tính chất là số lượng các phần tử của cấp số nhân rất lớn và xuất hiện có tính gần giống ngẫu nhiên Việc tạo các cấp số nhân khá đơn giản, chỉ cần một đa thức sinh và có thể thêm một đa thức ban đầu Với tính chất như vậy ta có thể sử dụng các cấp số nhân cyclic
để sinh khóa cho mật mã khối nói chung Việc đề xuất sử dụng các cấp số nhân cyclic vào việc tọa khóa cho mật mã khối sẽ được trình bày ở chương 3
Trang 15CHƯƠNG 3 MỘT SỐ CHƯƠNG TRÌNH TÍNH TOÁN KHÓA
VÀ MÃ HÓA 3.1 Tạo khóa mã hóa cho từng khối bản tin của hệ mật khóa bí mật
3.1.2 Sử dụng cấp số nhân có cấp cực đại
Sơ đồ mã hóa và giải mã được mô tả như hình 3.1
Hình 3.1 Sử dụng cấp số nhân cyclic làm khóa mã hóa cho từng khối bản tin
Như đã phân tích trong chương 2, trong vành đa thức có hai lớp kề Z x2[ ]/x có các n 1phần tử có cấp cực đại là: 2n11, với n lớn thì ta có thể tạo chuỗi khóa rất dài
Dưới đây là một ví dụ tạo khóa cho hệ mật DES
(Chú ý: (0 9 18 27 36 45 54) là biễu diễn dạng số mũ của a x ) ( )
Bước 3: Chọn đa thức đầu: b x( ) 1 x x2 (012)
Bước 4: Tính cấp số nhân cyclic:
Các khóa tương ứng
i
K
Các khối bản tin M i
Trang 16Bảng 3.1 Các khóa K đầu tiên tạo theo cấp số nhân cyclic
Trang 17Khi tính toán với số lượng khóa nhiều hơn thì xác suất của bit “1” và bit “0” sẽ tiến đến xấp xỉ bằng 0,5
Tiến hành mã hóa DES với các khóa đề xuất như trong bảng 3.1
Mã hóa 32 khối bản tin đầu vào giống nhau là:
Bảng 3.2 Khoảng cách Hamming giữa các từ mã khi dùng các khóa khác nhau
mã hóa cùng một bản tin đầu vào Khóa
Trang 183.1.2 Sử dụng cấp số nhân lấy theo modulo của h(x)
Như đã đề cập ở chương 2, ta có thể sử dụng dãy m lồng ghép xây dựng từ các vành đa thức có hai lớp kề lấy theo modulo của đa thức h x cho việc tạo khóa ( )
Đối với vành đa thức có hai lớp kề cyclic, phân tích của vành này luôn có phân tích nhị thức ở dạng:
Trang 19Bước 3: Chọn đa thức đầu: b x( ) 1 x x2 (012)
( ) ( ) mod ( ) ;i 1, 2 1
Bảng 3.2 là 32 khóa đầu tiên (phần tử của cấp số nhân cyclic) của K
Bảng 3.3 Các khóa K đầu tiên tạo từ cấp số nhân lấy theo modulo h(x)
Trang 20Tương tự ta tiến hành mã hóa DES với các khóa đề xuất như trong bảng 3.3
Mã hóa 32 khối bản tin đầu vào giống nhau là:
Mỗi lần mã hóa ta sử dụng các khóa khác nhau tương ứng từ K1K32; các khóa này
có độ dài 58 bit, nên trước khi mã hóa ta sẽ loại bỏ 2 bit cuối đi Kết quả tính toán như trong bảng 3.4
Bảng 3.4 Khoảng cách Hamming giữa các từ mã khi dùng các khóa là cấp số nhân cyclic lấy theo modulo h(x)
Trang 213.2 Tạo các khóa con cho DES
Sơ đồ mã hóa và giải mã theo phương pháp này được mô tả như hình 3.2 Trong sơ đồ này các bộ mã hóa DES-K và giải mã DES-1-K cũng tương tự như DES và DES-1 tuy nhiên
bộ tạo khóa sẽ được thay thế bằng các cấp số nhân
Hình 3.2 Sử dụng cấp số nhân tạo các khóa con cho DES
Các bộ 16 khóa con
Các khối bản tin M i
Trang 22Để tạo các khóa con cho DES ta cũng có thể sử dụng các cấp số nhân có cấp cực đại hoặc các cấp số nhân lấy theo modulo h(x) Các bước tạo khóa cũng tương tự như trong mục 3.1.1 và 3.1.2 Chỉ có điểm khác là khi mã hóa một khối bản tin 64 bit, sẽ sử dụng 16 phần tử (các khóa con) của cấp số nhân, ta sẽ sử dụng lần lượt các khóa trong cấp số nhân tạo khóa, tức là cứ hết 16 phần tử ta lại tiếp tục lấy 16 phần tử tiếp theo
Chiều dài của các khóa con đưa vào mã hóa là 48 bit, nên ta sẽ xây dựng các cấp số nhân trên vành Z x2[ ] /x , sau đó loại bỏ 5 bit cuối để còn 48 bit 53 1
Dưới đây là các mô phỏng hệ mật DES với các khóa con được xây dựng từ cấp số nhân cyclic
Bước 3: Chọn đa thức đầu: b x( ) 1 x20x40 (0 20 40)
Bước 4: Tính cấp số nhân cyclic:
Bảng 3.5 Các khóa con đầu tiên dùng cho DES
Trang 2311 23E61DDCD553 27 671924CD38EE 43 04BB23D8B640 59 B2CE8E2290F4
Tiến hành mã hóa 32 khối bản tin giống nhau, mỗi khối bản tin sử dụng 16 khóa và do
đó ta sẽ cần đến 32 x 16 = 512 khóa con từ cấp số nhân cyclic trên
Các khối bản tin đầu vào vẫn chọn là M hex 0123456789ABCDEF64bit
Bảng 3.6 Khoảng cách Hamming giữa các từ mã khi dùng
các khóa con là cấp số nhân cyclic