BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ NGHIÊN CỨU HỆ MẬT MÃ KHÓA BÍ MẬT TRÊN VÀNH ĐA THỨC CHẴN NGUYỄN HOÀNG QUÂN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: 604
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
NGHIÊN CỨU HỆ MẬT MÃ KHÓA BÍ MẬT
TRÊN VÀNH ĐA THỨC CHẴN
NGUYỄN HOÀNG QUÂN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60480201
NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TS NGUYỄN BÌNH
HÀ NỘI – 2015
Trang 2LỜI CAM ĐOAN
Tôi cam đoan đề tài này là công trình nghiên cứu do chính tôi thực hiện Các số liệu và kết quả phân tích trong luận văn là trung thực, đề tài không trùng với bất kỳ đề tài nghiên cứu khoa học nào
Hà Nội, ngày 05 tháng 12 năm 2015
Học viên
Nguyễn Hoàng Quân
Trang 3LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn chân thành tới tất cả các thầy, cô đang
giảng dạy tại Viện Đại học Mở Hà Nội đã tận tình truyền đạt những kinh nghiệm và kiến thức quý báu giúp em hoàn thành nhiệm vụ học tập trong suốt thời gian là học viên cao học của trường
Em xin gửi lời biết ơn sâu sắc đến thầy giáo – Giáo sư, tiến sỹ Nguyễn Bình,
người đã tận tình hướng dẫn, chỉ bảo cho em trong suốt quá trình học tập và hoàn thành luận văn này
Xin được gửi lời cảm ơn chân thành đến gia đình đã luôn động viên, ủng hộ,
cổ vũ và tạo mọi điều kiện tốt nhất trong thời gian học tập
Xin gửi lời cảm ơn đến những người bạn, những người luôn chia sẻ, động viên, giúp đỡ trong suốt quá trình học tập
Hà Nội, ngày 05 tháng 12 năm 2015
Học viên
Nguyễn Hoàng Quân
Trang 4MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài: 1
2 Mục tiêu của luận văn: 1
2.1 Mục tiêu nghiên cứu: 1
2.2 Đối tượng và phạm vi nghiên cứu: 1
3 Phương pháp nghiên cứu 2
4 Các đóng góp của luận văn 2
5.Bố cục của luận văn 2
CHƯƠNG 1: 3
TỔNG QUAN VỀ MẬT MÃ KHÓA BÍ MẬT 3
1.1 Giới thiệu: 3
1.2 Sơ đồ hệ mật mã mã khóa bí mật.[6] 4
1.3 Mật mã thay thế [6] 5
1.3.1.Mật mã dịch vòng (MDV) 5
1.3.2 Mã thay thế (MTT) 8
1.3.3 Mã Playfair: [11] 10
1.3.4 Mật mã Hill: [11] 12
1.3.5 Mật mã Vigenere [6] 14
1.3.6 Mã Affine: 17
1.4 Mật mã hoán vị 23
1.5 Các hệ mật mã mã tích 24
Kết luận chương 1 28
CHƯƠNG 2:CẤU TRÚC VÀNH ĐA THỨC CHẴNVÀ HỆ MẬT MÃ 29
2.1 Mã bất đối xứng (mã công khai) và phong bì số (bao bảo mật): 29
2.1.1 Mã RSA: 29
2.1.2 Phong bì số: 34
2.2 Vành đa thức: 35
Trang 52.2.1 Phép cộng đa thức: 35
2.2.2 Phép nhân đa thức: 36
2.2.3 Định nghĩa vành đa thức: 37
2.3 Vành đa thức lẻ: 38
2.4 Vành đa thức chẵn: 39
2.4.1.Khái niệm: 39
2.4.2 Biểu diễn toán học của vành đa thức chẵn: 39
2.4.3 Cấu trúc vành đa thức chẵn và các phần tử liên hợp: 39
2.5 Các thặng dư bậc hai và các phần tử liên hợp: 39
2.6 Hệ mật mã khóa bí mật dựa trên các thặng dư bậc 2 và các phần tử liên hợp: 45
Kết luận chương 2 48
CHƯƠNG 3: 49
THỰC NGHIỆM ÁP DỤNG VÀ ĐÁNH GIÁ 49
3.1 Thực nghiệm áp dụng: 49
3.1.1 Thực nghiệm 1: 49
3.1.2 Thực nghiệm 2: 51
3.2 Đánh giá: 53
3.2.1 Ưu điểm của hệ mật mã: 53
3.2.2 Nhược điểm của hệ mật mã: 54
Kết luận chương 3 56
KẾT LUẬN 57
DANH MỤC TÀI LIỆU THAM KHẢO 59
PHỤ LỤC 61
CÁC CƠ SỞ TOÁN HỌC MẬT MÃ 61
1 Số học trên Modulo 61
1.1 Định nghĩa Modulo: 61
1.2 Các phép toán số học trên Modulo 61
1.3 Ước số chung lớn nhất 62
Trang 62 Giới thiệu lý thuyết số: 62
2.1 Các số nguyên tố: 62
2.2 Phân tích ra thừa số nguyên tố 63
2.3 Các số nguyên tố cùng nhau và gcd 63
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Bảng 26 ký tự và mã tương ứng 6
Bảng 1.2.Bảng ma trận các chữ cái trong tiếng Anh 10
Bảng 1.3.Bảng mã ký tự và số nguyên tương ứng 14
Bảng 4.1 Phép cộng modulo với các phần tử liên hợp trong vành Z6 42
Bảng 5.2: Phép nhân modulo với các phần tử liên hợp trong vành Z6 43
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Sơ đồ hệ mật mã khóa bí mật 5
Hình 1.2 Bảng mã thử 25 trường hợp khóa k 7
Hình 1.3 Bảng mã Vigenere 15
Hình 1.4 Mã Affine 21
Hình 1.5 Hệ mật mã mã tích 25
Hình 1.6: Mô hình thuật toán DES Error! Bookmark not defined Hình 1.7: Hàm Feistel (F) dùng trong DES Error! Bookmark not defined. Hình 1.8: Quá trình tạo khóa con trong DES Error! Bookmark not defined Hình 1.9 : Bước AddRoundKey Error! Bookmark not defined. Hình 1.10 : Bước SubBytes Error! Bookmark not defined Hình 1.11 : Bước ShiftRow Error! Bookmark not defined. Hình 1.12 : Bước MixColumns Error! Bookmark not defined. Hình 2.1.Phân hoạch vành Z6 theo lớp các phần tử liên hợp 42
Hình 2.2: Sơ đồ hệ mật mã 46
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài:
Trong thời đại của sự phát triển của công nghệ thông tin, truyền thông nói chung và Internet nói riêng đã giúp cho việc trao đổi thông tin nhanh chóng, dễ dàng Do vậy, bảo mật thông tin luôn là vấn đề quan trọng hàng đầu và đây cũng là
một vấn đề đã được nghiên cứu hàng nghìn năm nay
Bảo mật thông tin là duy trì tính bảo mật, tính toàn vẹn và tính sẵn sàng của thông tin Bảo mật nghĩa là đảm bảo thông tin chỉ được tiếp cận bởi những người được cấp quyền tương ứng Tính toàn vẹn là bảo vệ sự chính xác, hoàn chỉnh của thông tin và thông tin chỉ được thay đổi bởi những người được cấp quyền Tính sẵn sàng của thông tin là những người được quyền sử dụng có thể truy xuất thông tin khi họ cần Vấn đề bảo mật đang được nhiều người tập trung nghiên cứu và tìm mọi
giải pháp để đảm bảo an toàn, an ninh cho hệ thống phần mềm, đặc biệt là các hệ thống thông tin trên mạng
Việc lựa chọn một hệ mật mã mã có thuật toán tạo khóa, mã hóa và giải mã đơn giản với số bản rõ có tính hiệu dụng cao nhưng vẫn đảm bảo tính bí mật luôn được quan tâm và xây dựng, phát triển Vành đa thức chẵn có các đặc tính toán học đặc biệt nên có nhiều ứng dụng tiềm năng trong mật mã
Nhằm tìm hiểu một trong những phương pháp bảo mật thông tin là dùng hệ mật mã khóa bí mật dựa trên các đặc điểm của thặng dư bậc hai và các phần tử liên
hợp trên vành đa thức chẵn, vậy nên em đã chọn đề tài: “Nghiên cứu hệ mật mã khóa bí mật trên vành đa thức chẵn" để làm đề tài luận văn thạc sỹ của mình
2 Mục tiêu của luận văn:
2.1 M ục tiêu nghiên cứu:
Nghiên cứu các đặc điểm của các thặng dư bậc hai và các phần tử liên hợp trên vành đa thức chẵn Từ đó xây dựng một hệ mật mã khóa bí mật dựa trên vành
đa thức chẵn
2.2 Đối tượng và phạm vi nghiên cứu:
+ Đối tượng nghiên cứu:
Trang 11Nghiên cứu về cáchệ mật mã khóa bí mật, vành đa thức chẵn và các
phần tử liên hợp trên vành đa thức chẵn
+ Phạm vi nghiên cứu:
Sử dụng đặc điểm của lớp các phần tử liên hợp trên vành đa thức chẵn xây dựng hệ mật mã khóa bí mật
3 Phương pháp nghiên cứu
Sử dụng phương pháp nghiên cứu tổng hợp và phân tích, trong đó tổng hợp các nghiên cứu của các tác giả về vành đa thức chẵn Trên cơ sở đó xây dựng hệ
mật mã khóa bí mật dựa trên các phần tử liên hợp trên vành đa thức chẵn
4 Các đóng góp của luận văn
Những kết quả đạt được của luận văn góp phần làm rõ hơn ứng dụng và tiềm
năng của vành đa thức chẵn trong mật mã Luận văn đã trình bày được việc đề xuất
một hệ mật mã khóa bí mật dựa trên việc phân hoạch vành đa thức chẵn thành các
thặng dư bậc hai và các phần tử liên hợp Các dữ liệu khảo sát thực nghiệm là những ví dụ minh họa chi tiết, dễ hiểu cho việc tạo ra một hệ mật mã khóa bí mật mới trên vành đa thức chẵn
5.Bố cục của luận văn
Chương 1: Tổng quan vềhệ mật mã mã khóa bí mật
Trong chương này sẽ nghiên cứu về hệ mật mã mã khóa bí mật, các
mật mã thường sử dụng và đặc trưng cho hệ mật mã khóa bí mật: mật mã thay thế,
mật mã hoán vị, các hệ mật mã mã tích
Chương 2: Cấu trúc vành đa thức chẵn và hệ mật mã đề xuất
Chương này trình bày về vành đa thức lẻ và vành đa thức chẵn, nghiên cứu
về cấu trúc của vành đa thức chẵn, các phần tử liên hợp trên vành đa thức chẵn Trên cơ sở đó xây dựng hệ mật mã khóa bí mật dựa trên cấu trúc của vành đa thức
chẵn
Chương 3:Thực nghiệm áp dụng và đánh giá
Chương này trình bày về thực nghiệm áp dụnghệ mật mã khóa bí mật trên vành đa thức chẵn
Trang 12Mật mã học được chia thành 3 nội dung:[6]
- Mật mã khóa bí mật (Khóa đối xứng)
- Mật mã khóa công khai (khóa bất đối xứng)
- Hàm băm, xác thực và chữ ký số
Phân tích mật mã là khoa học nghiên cứu cách phá các hệ mật mã mã nhằm
phục hồi bản rõ ban đầu từ bản mã Việc tìm hiểu các thông tin về khóa và các
phương pháp biến đổi thông tin cũng là một nhiệm vụ quan trọng của phân tích mật
mã
Phân tích mật mã dành riêng cho các nhà nghiên cứu chuyên sâu về mật mã, chuyên nghiên cứu tìm hiểu các phương pháp thám mã:
- Phương pháp tấn công tổng lực (tìm khóa vét cạn)
- Phương phápphân tích thống kê
- Phương pháp phân tích toán học
*Hệ mật mãmã khóa bí mật (Khóa đối xứng):
Mã hóa cổ điển là phương pháp mã hóa đơn giản nhất xuất hiện đầu tiên trong lịch sử ngành khoa học mật mã Thuật toán mã hóa cổ điển đơn giản và dễ hiểu Những phương pháp mã hóa này là cơ sở cho việc nghiên cứu và phát triển thuật toán mã hóa đối xứng được sử dụng ngày nay
Trang 13Thuật toán ở mã hóa cổ điển đều là mã khóa đối xứng Ở đó thông tin về khóa được chia sẻ giữa người gửi và người nhận
Với hệ mật mã mã này, việc mã hóa và giải mã sử dụng chung một khóa, do
đó hai bên liên lạc phải thống nhất và bảo mật khóa trước khi truyền tin Có thể gọi đây là mã một khóa, mã khóa riêng hay mã thỏa thuận
Hiện nay hệ mật mã mã khóa bí mật và hệ mật mã mã khóa công khai tiếp tục được phát triển và hoàn thiện Hệ mật mã mã khóa công khai ra đời hỗ trợ hệ
mật mã mã khóa bí mật chứ không thay thế nó, do đó đến nay hệ mật mã mã khóa
- Xử lý bit (chủ yếu nằm trong các ngôn ngữ lập trình)
Ngoài ra còn có phương pháp hỗn hợp thực hiện kết hợp các phương pháp trên mà điển hình là chuẩn mã dữ liệu (DES – Data Encryption Standard) của Mỹ
1.2 Sơ đồ hệ mật mã mã khóa bí mật.[6]
Trang 14Hình 1.1 Sơ đồ hệ mật mã mã khóa bí mật
Một hệ mật mã mã là một bộ gồm 5 tham số (P, C, K, E, D) thỏa mãn các điều kiện sau:
a) P là một tập hữu hạn các bản rõ có thể
b) C là một tập hữu hạn các bản mã có thể
c) K là một tập hữu hạn các khoá có thể (không gian khoá)
d) Đối với mỗi k ∈ K có một quy tắc mã ek∈ E
ek: P → C
và một quy tắc giải mã tương ứng dk∈ D
dk: C → P sao cho: dk(ek(x)) = x với ∀ x ∈P
Trang 15Sử dụng mã dịch vòng (với modulo 26) để thực hiện mã hoá một văn bản
tiếng Anh thông thường bằng cách thiết lập sự tương ứng giữa các ký tự và các thặng dư theo mod 26 như sau:
(với văn bản tiếng Anh, n = 26, như vậy M, C, K ∈ Z26):
Sau đó ta cộng 5 vào mỗi giá trị ở trên và rút gọn tổng theo mod 26
Ta được dãy số sau:
17.9.9.24.17.9.5.24.23.25.18.23.9.24
Cuối cùng, ta lại biến đổi dãy số nguyên trên thành các ký tự tương ứng, ta
có bản mã sau:
RJJY RJ FY XZSXJY
Để giải mã cho bản mã này, trước tiên ta biến bản mã thành dãy số nguyên
rồi trừ mỗi giá trị cho 5 (rút gọn theo modulo 26), và cuối cùng là lại biến đổi lại dãy số nhận được này thành các ký tự
Ví dụ 1.2:
Giả sử khóa cho MDV: k = 3
Vẫn sử dụng bản rõ M ở trên là: meet me at sunset
Trang 16Làm như phần trên, biến đổi bản rõ thành chữ in hoa và biến đổi thành dãy các số nguyên theo bảng trên (không biến đổi dấu cách giữa 2 từ)
Ta có:
MEET ME AT SUNSET
124 419124 019 18201318419
Sau đó cộng 3 vào mỗi giá trị ở trên và rút gọn tổng theo mod 26
Ta được dãy số sau:
- Trừ mỗi giá trị cho 3 (rút gọn theo modulo 26)
- Cuối cùng lại biến đổi lại dãy số nhận được này thành các ký tự
Ví dụ 1.3:
Giả sử ta có bản rõ là: meet me after the toga party
Như vậy bản tin mã hóa (bản mã) sẽ là:
Trang 17Trong 25 trường hợp trên, chỉ có trường hợp k=3 thì bản giải mã tương ứng
1.3.2 Mã thay th ế (MTT)
Mã thay thế là việc thay thế một ký tự bằng một ký tự khác trong bảng ký tự Cho P = C = Z26
Trang 18K chứa mọi hoán vị có thể có của 26 ký tự từ 0 đến 25
Với mỗi phép hoán vị Π∈ K, ta định nghĩa như sau:
eΠ (x) = Π(x)
và dΠ(y) = Π-1(y)
Trong đó: Π-1 là hoán vị ngược của Π
Ví dụ 1.4:
Phép hoán vị ngẫu nhiênΠ tạo nên một hàm mã hoá (tương tự như trên, các
ký tự của bản rõ được viết bằng chữ thường, còn các ký tự của bản mã được viết
Ta thấy: eΠ(a) = X, eΠ(b) = N
Hàm giải mã là phép hoán vị ngược Điều này được thực hiện bằng cách viết hàng thứ hai lên trước rồi sắp xếp heo thứ tự chữ cái Ta có:
Với phép thay thế trên, từ bản rõ: meet me at sunset
ta thu được bản mã sau: THHM TH XM VUSHM
Sử dụng phép hoán vị ngược, ta dễ dàng tìm lại được bản rõ ban đầu
Mỗi khoá của mã thay thế là một phép hoán vị của 26 ký tự Số các hoán vị này là26! 4.10> 26 Đây là một số rất lớn nên khó có thể tìm được khoá bằng phép
Trang 19tìm khoá vét cạn Tuy nhiên, bằng phương pháp thống kê, ta có thể dễ dàng thám được các bản mã loại này
1.3.3 Mã Playfair: [11]
Chúng ta thấy rằng không phải số khóa lớn trong mã bảng chữ đơn đảm bảo
an toàn mã Một trong các hướng khắc phục là mã hóa bộ các chữ, tức là mỗi chữ sẽ được mã hóa bằng một số chữ khác nhau tùy thuộc vào các chữ mà nó đứng cạnh
Mã hóa Playfair là một trong các mã như vậy Mã hóa này cho trước một từ làm khóa, với điều kiện trong từ khóa đó không có chữ cái nào bị lặp Playfair dùng
một ma trận 5x5 dựa trên các từ khóa đã cho và gồm các chữ trên bảng chữ cái, được sắp xếp theo thứ tự nhất định
Quy tắc sắp xếp như sau:
- Trước hết viết các chữ của từ khóa vào các hàng của ma trận bắt đầu từ hàng thứ nhất
- Nếu ma trận còn trống, viết các chữ khác trên bảng chữ cái chưa được sử dụng vào các ô còn lại Có thể viết theo một trình tự quy ước trước , chẳng hạn từ đầu bảng cho đến cuối bảng chữ cái
- Ở đây, trong tiếng Anh có 26 chữ cái nên thiếu 1 ô Thông thường ta dồn hai chữ nào đó vào 1 ô chung, chẳng hạn là I và J
Trang 20Trong bảng trên, khóa là từ MONARCHY được điền vào các dòng đầu của
bảng, các chữ cái còn lại được điền tiếp theo Riêng hai chữ I, J được điền vào cùng một ô vì trong tiếng Anh, ít khi nhầm lẫn giữa chữ I và chữ J
Ví dụ, nếu gặp đoạn ký tự CL_MATE, ta sẽ biết đó là từ CLIMATE chứ không phải là CLJMATE
Trước khi mã hóa, bản rõ được tách ra thành các cặp ký tự Nếu hai ký tự trong một cặp giống nhau thì sẽ được tách bằng chữ X (trong tiếng Anh ít khi có 2
ký tự X sát nhau)
Ví dụ 1.6:
Từ balloon được tách thành ba lx lo on Việc mã hóa từng cặp được thực
hiện theo quy tắc:
- Nếu hai ký tự trong cặp thuộc cùng một hàng, thì được thay bằng hai ký tự
tiếp theo trong hàng Nếu đến cuối hàng thì quay về đầu hàng
Ví dụ 1.7:
Cặp ar được mã hóa thành RM
- Nếu hai ký tự trong cặp thuộc cùng một cột, thì được thay bằng hai ký tự
tiếp theo trong cột Nếu đến cuối cột thì quay về đầu cột
Ví dụ 1.8:
Cặp ov được mã hóa thành HO
Trong các trường hợp còn lại, hai ký tự được mã hóa sẽ tạo thành đường chéo của một hình chữ nhật và được thay bằng 2 ký tự trên đường chéo kia
cặp chữ cái, mỗi chữ được mã hóa bằng 7 chữ khác nhau, do đó các cặp chữ cái này
ít bị chênh lệch về tần suất hơn so với sự chênh lệnh tần suất của từng chữ cái
Trang 21Muốn sử dụng thống kê tần suất, cần có bảng tần suất của 676 cặp để thám
mã (so với 26 của bảng mã thay thế đơn biểu) Như vậy phải xem xét nhiều trường hợp hơn và tương ứng sẽ có thể có nhiều bản mã hơn cần lựa chọn Dó đó khó thám
mã hơn mã trên bảng chữ đơn
Đây chính là lý do mà người ta tin rằng mã hóa Playfair không thể bị phá và được quân đội Anh sử dụng trong chiến tranh thế giới lần thứ nhất
1.3.4 M ật mã Hill:[11]
Mật mã Hill là một hệ mật mã thay thế đa biểu khác Mật mã này do Lester S.Hill đưa ra năm 1929
Giả sử cho m là một số nguyên dương Đặt P = C = (Z26)m
Ý tưởng là lấy m tổ hợp tuyến tính của m ký tự trong một phần tử của bản rõ
để tạo ra m ký tự ở một phần tử của bản mã
Như vậy, ta có thể thấy mã Hill thực hiện mã hóa một lần m ký tự bản rõ
Ký hiệu là p1, p2, , pm và thay thế thành m ký tự trong bản mã, ký hiệu là c1,
c2, , cm Việc thay thế này được thực hiện bằng m phương trình tuyến tính
Tất cả đều được thực hiện trong Z26 (theo modulo 26)
Trang 22- "ju" tương ứng với (p1, p2) = (9, 20)
- "ly" tương ứng với (p3, p4) = (11, 24)
+ Ta thực hiện mã hóa như sau:
Trang 23"july" ban đầu
Trong mã Hill, mỗi chữ cái được gán cho một số nguyên từ 0 đến 25:
Ta có thể thấy rằng mã hóa Hill ẩn giấu các thông tin về tần suất nhiều hơn
mã hóa Playfair do có thể mã hóa 3 hoặc nhiều hơn nữa các ký tự cùng một lúc
1.3.5 M ật mã Vigenere[6]
Một hệ mật mã mã thay thế đa biểu đơn giản hệ mật mã Vigenere
Quá trình mã hóa Vigenere là việc tiến hanh đồng thời dùng nhiều mã Caesar cùng một lúc trên bản rõ với nhiều khóa khác nhau Khóa cho mỗi chữ dùng để mã
phụ thuộc vào vị trí của chữ đó trong bản rõ và được lấy trong từ khóa theo thứ tự đúng
Sử dụng phép tương ứng A ↔0,B ↔1, ,Z ↔ 25mô tả ở trên, ta có thể
gắn cho mỗi khoá k một chuỗi ký tự có độ dài m, được gọi là từ khoá Mật mã Vigenere sẽ mã hoá đồng thời m ký tự: mỗi phần tử của bản rõ tương đương với m
ký tự
Để hỗ trợ mã Vigenere, ta có bảng sau:
Trang 24Dòng thứ k của b
tương ứng với từ khóa D là mã hóa Ceasar 3 v
Để mã hóa một bả
tin Thườn thì khóa là mộ
dài bằng chiều dài bản rõ
Ví dụ 1.12:
Cho bản rõ:
"We are discovered save your self"
Cho khóa là từ "DECEPTIVE"
Ta thực hiện mã hóa nh
Hình 1.3 Bảng mã Vigenere
a bảng là một mã hóa Ceasar k - 1 vị trí Ví dkhóa D là mã hóa Ceasar 3 vị trí
ản tin thì cần có một khóa có chiều dài bằng chi
ột cụm từ nào đó và được viết lặp lại cho đ
ng chiều dài bản
i cho đến khi có chiều
Trang 25Trong ví dụ trên, các chữ e trong bản rõ được mã hóa tương ứng thanh I, T,
G, T, H, M trong bản mã Do đó phương pháp phá mã dựa trên thống kê tần suất
chữ cái là không thực hiện được
Ví dụ 1.13:
Giả sử bản tinm = và t6 ừ khoá là k = CIPHER
Từ khoá này tương ứng với dãy số k =(2,8,15,7, 4,17)
Ta có thể mô tả mật mã Vigenère như sau:
Cho m là một số nguyên dương cố định nào đó
Ta định nghĩa:
( 26)
n
P =C =K = Z
Trang 26Với khoá k =(k k1, 2,K,k m), ta xác định:
và trong đó tất cả các phép toán được thực hiện trong
Chú ý:
Để giải mã, ta có thể dùng cùng từ khoá nhưng thay cho cộng, ta trừ nó theo modulo 26
Ta thấy rằng, số các từ khoá có thể với độ dài m trong mật mã Vigenere là
26m Bởi vậy, thậm chí với m khá nhỏ, phương pháp tìm kiếm vét cạn cũng yêu
cầu thời gian khá lớn Ví dụ, với m = thì không gian khoá c6 ũng có kích thước lớn hơn 3.108 khoá
1.3.6 Mã Affine:
Mã dịch vòng là một trường hợp đặc biệt của mã thay thế chỉ gồm 26 trong
số 26! các hoán vị có thể của 26 phần tử Một trường hợp đặc biệt khác của MTT là
mã Affine được mô tả dưới đây Trong mã Affine, ta giới hạn chỉ xét các hàm mã
Để việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải
là đơn ánh Nói cách khác, với bất kỳy∈ Z , ta muốn có đồng nhất thức sau: 26
Vì y thay đổi trên Z nên y b26 − cũng thay đổi trên Z Bởi vậy, ta chỉ cần 26
nghiên cứu phương trình đồng dư:
Trang 27mod 26
ax ≡y
Ta biết rằng, phương trình này có một nghiệm duy nhất đối với mỗi y khi và
chỉ khi ƯCLN( , 26) 1a = (ở đây hàm ƯCLN là ước chung lớn nhất của các biến của nó)
Trước tiên ta giả sử rằng, ƯCLN( , 26)a =d >1 Khi đó, đồng dư thức 0mod 26
ax ≡ sẽ có ít nhất hai nghiệm phân biệt trong Z là 26 x = và 0 x =26 /d Trong trường hợp này, e x( )=ax +bmod 26 không phải là một hàm đơn ánh
và bởi vậy nó không thể là hàm mã hoá hợp lệ
Ví dụ 1.14:
mã hoá thành cùng một giá trị đối với bất kỳx∈ Z 26
Ta giả thiết ƯCLN( , 26) 1a = Giả sử với x1và x2 nào đó thoả mãn:
26 | (a x −x )Bây giờ ta sẽ sử dụng một tính chất của phép chia sau: Nếu ƯCLN( , ) 1a b =
và a bc| thì a c| Vì 26 | (a x1−x2)và ƯCLN( , 26) 1a = nên ta có:
26 | (x −x )tức là:
Trang 28Không có gì đặc biệt đối với số 26 trong khẳng định này Bởi vậy, bằng cách
tương tự, ta có thể chứng minh được kết quả sau:
Định lý 1.1:
Đồng dư thức ax ≡bmodm chỉ có một nghiệm duy nhất x ∈ Z với mọi m
m
b ∈ Z khi và chỉ khi ƯCLN( , ) 1a m =
Vì 26 2 13= × nên các giá trị a∈ Z thoả mãn ƯCLN26 ( , 26) 1a = là a = 1 3, 5,
7, 9, 11, 13, 15, 17, 19, 21, 23 và 25
Tham số b có thể là một phần tử bất kỳ trongZ Như vậy , mã Affine có 26
12 26 312× = khoá có thể (dĩ nhiên, con số này là quá nhỏ để bảo đảm an toàn)
Bây giờ, ta sẽ xét bài toán chung với modulom Ta cần một định nghĩa khác trong lý thuyết số
Định nghĩa 1.1:
Giả sử a ≥1 và m ≥2 là các số nguyên ƯCLN( , ) 1a m = thì ta nói rằng a
và m là nguyên tố cùng nhau Số các số nguyên trong Z nguyên tố cùng nhau với m
m thường được ký hiệu là ϕ( )m (hàm này được gọi là hàm phi-Euler)
Một kết quả quan trọng trong lý thuyết số cho ta giá trị của ϕ( )m theo các
thừa số trong phép phân tích theo luỹ thừa các số nguyên tố của m (Một số nguyên 1
p > là số nguyên tố nếu nó không có ước dương nào khác ngoài 1 và p) Mọi số nguyên m >1 có thể phân tích được thành tích của các luỹ thừa các số nguyên tố theo cách duy nhất
=
=∏ ; Trong đó các số nguyên tố p khác nhau và i e i >0; 1≤ ≤ Khi đó : i n
Trang 29Ví dụ 1.16:
Khi m =60, (60) 2 2 4 16ϕ = × × = và số các khoá trong mã Affine là 960
Bây giờ, ta sẽ xét xem các phép toán giải mã trong mật mã Affine:
Cho m =26 Giả sử ƯCLN( , ) 1a m = Để giải mã cần giải phương trình đồng dư y =ax +bmod 26theo x Từ thảo luận trên thấy rằng, phương trình này có một nghiệm duy nhất trong Z 26
Tuy nhiên, ta vẫn chưa biết một phương pháp hữu hiệu để tìm nghiệm Điều
cần thiết ở đây là có một thuật toán hữu hiệu để làm việc đó Rất may là một số kết quả tiếp sau về số học modulo sẽ cung cấp một thuật toán giải mã hữu hiệu cần tìm
Định nghĩa 1.2:
Giả sử a ∈ Z Phần tử nghịch đảo (theo phép nhân) của m a là phầntử
1
m
a− ∈ Z sao cho aa−1 =a a−1 =1modm
Bằng các lý luận tương tự như trên, có thể chứng tỏ rằng a có nghịch đảo theo modulo m khi và chỉ khi ƯCLN( , ) 1a m = , và nếu nghịch đảo này tồn tại thì
0 đều có nghịch đảo được gọi là một trường
Trong [3] có một thuật toán hữu hiệu để tính các nghịch đảo của Z với m m
tuỳ ý Tuy nhiên, trong Z , chỉ bằng phương pháp thử và sai cũng có thể tìm được 26
các nghịch đảo của các phần tử nguyên tố cùng nhau với 26:
Trang 30(Có thể dễ dàng kiểm chứng lại điều này, ví dụ: 7 15 105 1mod 26× = ≡ , bởi vậy
của đồng dư thức với 1
Trang 31Ở đây, tất cả các phép toán đều thực hiện trên Z Ta sẽ kiểm tra liệu 26
Để minh hoạ, ta hãy mã hoá bản rõ "hot"
Trước tiên, biến đổi các chữ h, o, t thành các thặng dư theo modulo 26 Ta được các số tương ứng là 7, 14 và 19 Bây giờ sẽ mã hoá:
Văn bản gốc được chuyển thành dãy số [7, 4, 11, 11, 14, 22, 14, 17, 11, 3]
Với từng số x trong dãy số trên, áp dụng hàm mã hóa:
E(x) = (17x + 6) mod 26, ta được dãy số [21, 22, 11, 11, 10, 16, 10,
Nghịch đảo của 17 theo module 26 là 23, ta có a-1 = 23
Với từng số x trong dãy số C1, áp dụng hàm giải mã:
D(x) = a-1(x - b) mod m = 23(x - 6) mod 26
Ta được dãy số [7, 4, 11, 11, 14, 22, 14, 17, 11, 3]
Chuyển dãy số này về dạng ABC, ta được văn bản gốc:
HELLO WORLD
Trang 321.4 Mật mã hoán vị
Khác với mật mã thay thế, mật mã hoán vị giữ các ký tự của bản rõ không thay đổi nhưng thay đổi vị trí của chúng bằng cách sắp xếp lại các ký tự này.Ở đây không có một phép toán đại số nào cần thực hiện khi mã hoá và giải mã [6]
asecon dclass carria geonth etrain
Sau đó, mỗi nhóm 6 chữ cái lại được sắp xếp lại theo phép hoán vị π , ta có:
EOANCS LSDSAC RICARA OT GHNE RIENAT
Cuối cùng, ta có bản mã sau:
EOANCSLSDSACRICARAOTGHNERIENAT Khi sử dụng phép hoán vị ngược 1
π− trên dãy bản mã (sau khi đã nhóm lại theo các nhóm 6 ký tự), ta sẽ nhận lại được bản rõ ban đầu
Từ ví dụ trên, ta có thể định nghĩa MHV như sau:
Cho là một số nguyên dương xác định nào đó
Cho P=C= Z( 26)m và cho K là tất cả các hoán vị có thể có của:
m
{1, 2,K, m }
Trang 33Đối với một khoá (tức là một phép hoán vị nào đó), ta xác định:
và:
1.5 Các hệ mật mã mã tích
Một phát minh khác do Shannon đưa ra trong bài báo của mình năm 1949 là
ý tưởng kết hợp các hệ mật mã bằng cách tạo tích của chúng Ý tưởng này có tầm quan trọng to lớn trong việc thiết kế các hệ mật mã hiện nay (chẳng hạn, chuẩn mã
dữ liệu - DES ) [6]
Để đơn giản, trong phần này chỉ hạn chế xét các hệ mật mã trong đóC P= : các hệ mật mã loại này được gọi là tự đồng cấu Giả sử S1=( , ,P P K E D1, , )1 1 và
2 ( , ,P P K2,E D2, 2)
S = là hai hệ mật mã tự đồng cấu có cùng các không gian bản mã
và rõ Khi đó, tích của S1 và S2 (kí hiệu làS1×S2) được xác định là hệ mật mã sau:
( , ,P P K ×K , , )E DKhoá của hệ mật mã tích có dạng k =( , )k k1 2 trong đó k1∈K1 vàk2∈K2 Các quy tắc mã và giải mã của hệ mật mã tích được xác định như sau: Với mỗi
Trang 34Ta biết rằng, các hệ mật mã đều có các phân bố xác suất ứng với các không gian khoá của chúng Bởi vậy, cần phải xác định phân bố xác suất cho không gian khoá K của hệ mật mã tích Hiển nhiên ta có thể viết:
hệ mã Affine (cùng với các khoá được chọn đồng xác suất) Tuy nhiên, việc chứng
tỏ S ×M cũng là hệ mã Affine khó hơn một chút (cũng với các khóa đồng xác
Trang 35Đây chính là định nghĩa về khoá trong hệ mã Affine Hơn nữa, xác suất của
một khoá trong hệ mã Affine là: 1 312=(1 12 1 26)( ) Đó là tích của xác suất tương ứng của các khoá avà k Bởi vậy M ×S là hệ mã Affine
Bây giờ ta sẽ xétS ×M Một khoá này trong hệ mã này có dạng( , )k a , trong đó:
e x =a x+k =ax +ak
Như vậy, khoá ( , )k a của mã tích S×M đồng nhất với khoá ( ,a ak) của hệ
mã Affine Vấn đề còn lại là phải chứng tỏ rằng mỗi khoá của mã Affine xuất hiện
với cùng xác suất 1/312 như trong mã tích S×M Nhận thấy rằng ak =k1 khi và
(S ×S )×S =S ×(S ×S )Nếu lấy tích của một hệ mật mã tự đồng cấu với chính nó thì ta thu được hệ
luỹ đẳng thì không nên sử dụng hệ mật mã tích 2
S vì nó yêu cầu lượng khoá cực
lớn mà không có độ bảo mật cao hơn
Nếu một hệ mật mã không phải là luỹ đẳng thì có thể làm tăng độ mật bằng cách lặp nhiều lần Ý tưởng này đã được dùng trong chuẩn mã dữ liệu (DES) Trong
Trang 36DES dùng 16 phép lặp, tất nhiên hệ mật mã ban đầu phải là hệ mật mã không luỹ đẳng Một phương pháp có thể xây dựng các hệ mật mã không luỹ đẳng đơn giản là lấy tích của hai hệ mật mã đơn giản khác nhau
Nhận xét:
Có thể dễ dàng chứng tỏ rằng, nếu cả hai hệ mật mãS và 1 S là luỹ đẳng và 2
giao hoán thì S1 và S2 cũng là luỹ đẳng Điều này rút ra từ các phép toán đại số sau:
(Chú ý: Dùng tính chất kết hợp trong chứng minh trên)
Bởi vậy, nếu cả S1 và S2đều là luỹ đẳng và ta muốn S1×S2là không luỹ đẳng thì điều kiện cần là S1 và S2 không giao hoán
Rất may mắn là nhiều hệ mật mã đơn giản thoả mãn điều kiện trên Kỹ thuật
thường được sử dụng trong thực tế là lấy tích các hệ mã kiểu thay thế và các hệ mã kiểu hoán vị