Về một phương pháp xây dựng hàm băm cho việc xác thực trên cơ sở ứng dụng thuật toán mã hóa đối xứng
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi, các số liệu và kết quả trình bày trong luận án là trung thực và chưa được công bố ở bất kỳ công trình nào khác
Tác giả
Hồ Quang Bửu
Trang 2LỜI CẢM ƠN
Luận án Tiến sĩ kỹ thuật này được thực hiện tại Học viện Công nghệ Bưu chính Viễn thông Tác giả xin tỏ lòng biết ơn đến thầy giáo GS.TSKH Nguyễn Xuân Quỳnh đã trực tiếp định hướng, tạo mọi điều kiện trong suốt quá trình nghiên cứu Tác giả cũng xin cảm ơn GS.TS Nguyễn Bình đã trực tiếp hướng dẫn học thuật hóa, kiểm tra những kết quả của các công trình nghiên cứu
Tôi xin chân thành cảm ơn Lãnh đạo Học viện Công nghệ Bưu chính Viễn thông đã tạo những điều kiện thuận lợi để hoàn thành và bảo vệ luận án trong thời gian nghiên cứu của nghiên cứu sinh Tôi xin cảm ơn khoa Quốc tế và Đào tạo sau đại học, Sở Thông tin truyền thông tỉnh Quảng Nam (nơi tôi đang công tác), cũng như các đồng nghiệp đã tạo điều kiện và giúp đỡ tôi hoàn thành được đề tài nghiên cứu của mình
Cuối cùng là sự biết ơn tới gia đình, bạn bè đã thông cảm, động viên giúp đỡ cho tôi có đủ nghị lực để hoàn thành luận án
Hà nội, tháng 12 năm 2013
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG viii
DANH MỤC CÁC HÌNH VẼ ix
PHẦN MỞ ĐẦU 1
1 MỞ ĐẦU 1
2 TÌNH HÌNH NGHIÊN CỨU 1
3 LÝ DO CHỌN ĐỀ TÀI 4
4 MỤC TIÊU NGHIÊN CỨU 4
5 ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU 5
6 PHƯƠNG PHÁP NGHIÊN CỨU 5
7 Ý NGHĨA KHOA HỌC VÀ THỰC TIÊN CỦA ĐỀ TÀI 5
CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC 6
1.1 CÁC KHÁI NIỆM CƠ BẢN 6
1.2 CÁC HỆ MẬT KHÓA BÍ MẬT 8
1.2.1 Sơ đồ khối chức năng hệ mật khóa bí mật 8
1.2.2 Các hệ mật thay thế 8
1.2.3 Các hệ mật hoán vị (MHV) 11
1.2.4 Các hệ mật mã tích 12
1.2.5 Các hệ mật mã dòng và việc tạo các dãy giả ngẫu nhiên 15
1.2.6 Chuẩn mã dữ liệu DES 26
1.2.7 Ưu nhược điểm của mật mã khóa bí mật 29
Trang 41.3 HỆ MẬT KHÓA CÔNG KHAI 30
1.3.1 Sơ đồ chức năng 30
1.3.2 Một số bài toán xây dựng hệ mật khóa công khai 31
1.4 CƠ BẢN VỀ HÀM BĂM 33
1.4.1 Mở đầu 33
1.4.2 Các định nghĩa và tính chất cơ bản 35
1.4.3 Một số phương pháp xây dựng hàm băm 37
1.4.4 Các loại tấn công hàm băm cơ bản 41
1.4.5 Độ an toàn mục tiêu 43
1.5 TÍNH TOÀN VẸN CỦA DỮ LIỆU VÀ XÁC THỰC THÔNG BÁO 44
1.5.1 Các phương pháp kiểm tra tính toàn vẹn dữ liệu 44
1.5.2 Chữ ký số 46
1.6 KẾT LUẬN CHƯƠNG 1 49
CHƯƠNG 2 HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC 50
2.1 NHÓM NHÂN CYCLIC TRÊN VÀNH ĐA THỨC 50
2.1.1 Định nghĩa nhóm nhân cyclic trên vành đa thức 50
2.1.2 Các loại nhóm nhân cyclic trên vành đa thức 52
2.2 CẤP SỐ NHÂN CYCLIC TRÊN VÀNH ĐA THỨC 54
2.2.1 Khái niệm về cấp số nhân cyclic trên vành đa thức 54
2.2.2 Phân hoạch vành đa thức 55
2.3 XÂY DỰNG M-DÃY LỒNG GHÉP TRÊN VÀNH ĐA THỨC CÓ HAI LỚP KỀ CYCLIC 61
2.3.1 Vành đa thức có hai lớp kề 61
2.3.2 M-dãy xây dựng trên vành đa thức 63
2.3.3 Xây dựng M-dãy lồng ghép từ các cấp số nhân cyclic trên vành đa thức có hai lớp kề 64
Trang 52.4 HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC 71
2.4.1 Vấn đề mã hóa 71
2.4.2 Xây dựng hệ mật dùng cấp số nhân cyclic 76
2.5 KẾT LUẬN CHƯƠNG 2 82
CHƯƠNG 3 HÀM BĂM XÂY DỰNG TRÊN CẤP SỐ NHÂN CYCLIC 83
3.1 CÁC HÀM BĂM HỌ MD4 83
3.1.1 Cấu trúc 83
3.1.2 Mở rộng thông báo 87
3.1.3 Các bước mã hóa 89
3.2 XÂY DỰNG HÀM BĂM MỚI TRÊN CÁC CẤP SỐ NHÂN CYCLIC 94
3.2.1 Sơ đồ khối mật mã trong hàm băm 94
3.2.2 Các đánh giá kết quả mô phỏng hàm băm mới 100
3.3 KẾT LUẬN CHƯƠNG 3 101
KẾT LUẬN VÀ KIẾN NGHỊ 102
DANH MỤC CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN LUẬN ÁN 104
TÀI LIỆU THAM KHẢO 105
PHỤ LỤC A: THÔNG SỐ CỦA MỘT SỐ HÀM BĂM 109
PHỤ LỤC B: CÁC CHƯƠNG TRÌNH TÍNH TOÁN VÀ MÔ PHỎNG 122
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
AES Advanced Encryption Standard
ANSI American National Standards Institute
CAST Carlisle Adams and Stafford Tavares
CBC Cipher Block Chaining
CFB Cipher Feedback Block
CGP Cấp số nhân cyclic (Cyclic Geometic Progressions)
CMG Nhóm nhân cyclic (Cyclic Multiplicate Group)
CRC Cyclic Redundancy Check
CRF Collision Resistant Function
CRHF Collision Resistant Hash Function
S
0
deg Bậc của đa thức (Degree)
DEA Data Encryption Algorithm
DES Chuẩn mã dữ liệu (Data Encryption Standard)
MAC Message Authentication Code
MDC Manipulation Detection Code
MD-x Message Digest x
NESSIE New European Schemes for Signatures, Integrity
and Encryption
Trang 7NIST National Institute for Standards and Technology (US)
ord Cấp của đa thức (Order)
OWHF One-Way Hash Function
RIPE Race Integrity Primitives Evaluation
RSA Rivest Shamir Adleman
SHA Secure Hash Algorithm
TDEA Triple Data Encryption Algorithm
UOWHF Universal One-Way Hash Function
VEST Very Efficient Substitution Transposition
2[ ]/x x n1
Z Vành đa thức trên GF 2
Trang 8DANH MỤC CÁC BẢNG
Bảng 1 Một số hàm băm 3
Bảng 1.1 Trạng thái của các vector đầu ra M-dãy 22
Bảng 1.2 Các đặc tính của dãy tuyến tính có chu kỳ 2m -1 26
Bảng 1.3 Bảng IP và IP-1 28
Bảng 1.4 Độ an toàn mục tiêu của hàm băm 43
Bảng 2.1 Số kiểu phân hoạch không suy biến M của một số vành 57
Bảng 2.2 Tổng số các kiểu phân hoạch của vành Z2[ ]/x x n1 58
Bảng 2.3 M-dãy xây dựng trên vành 15 2 [ ] /x x 1 Z 63
Bảng 2.4 Các tam thức cấp cực đại 4095 (32 5.7.13) trên vành x13 + 1 68
Bảng 2.5 Một số phần tử của M-dãy trên vành x13+1 69
Bảng 2.6 M-dãy với chiều dài 4095 theo phân hoạch cực đại 69
Bảng 2.7 Số lượng M-dãy lồng ghép với một vài giá trị n khác nhau 70
Bảng 2.8 Bảng hoán vị ban đầu (IP) 78
Bảng 2.9 Bảng hoán vị đảo (IP-1) 78
Bảng 2.10 Khoảng cách Hamming d H (C 1 ,C i) giữa các cặp bản mã khi các bản rõ khác nhau 1 bit, d H (M 1 ,M i ) = 1, với cùng một khóa K 80
Bảng 2.11 Khoảng cách Hamming d H (C 1 ,C i) giữa các cặp bản mã khi các khóa khác khóa K 1 2 bit d H (K 1 , K i )=2 với cùng một bản rõ M 81
Bảng 3.1 Thông số của các hàm băm họ MD4 85
Bảng 3.2 Ký hiệu các thông số và các biến 86
Bảng 3.3 Khoảng cách Hamming d H (MD 1 , MD i) khi các khối dữ liệu khác khối ban đầu 1 bit 97
Bảng 3.4 Khoảng cách Hamming d H (MD 1 , MD i) giữa các cặp giá trị băm khi các khóa khác khóa K 1 2 bit 99
Bảng 3.5 Tính khoảng cách Hamming trung bình khi thay đổi khóa K và thay đổi bản tin rõ 100
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Sơ đồ khối chức năng hệ mật khóa bí mật 8
Hình 1.2 M-dãy tạo từ thanh ghi dịch phản hồi tuyến tính LFSR 22
Hình 1.3 Mạch tạo M-dãy từ đa thức g(x) = 1+x+x4 23
Hình 1.4 Bộ tạo dãy Gold đối với g1(d) = d3 + d +1 và g2(d) = d3 + d2 +1 24
Hình 1.5 Sơ đồ mã hóa DES 27
Hình 1.6 Mô tả hàm f trong DES 28
Hình 1.7 Các bước tạo khóa cho các vòng mã hóa của DES 29
Hình 1.8 Sơ đồ khối chức năng hệ mật khóa công khai 30
Hình 1.9 Phân loại hàm băm 36
Hình 1.10 Các sơ đồ hàm băm đơn a) Matyas-Mayer–Oseas; b) Davies-Mayer và c) Miyaguchi – Preneel 37
Hình 1.11 Thuật toán MDC-2 39
Hình 1.12 Thuật toán MDC-4 40
Hình 1.13 Sơ đồ Miyaguchi – Preneel 41
Hình 1.14 Kiểm tra tính toàn vẹn bằng MAC 45
Hình 1.15 Kiểm tra tình toàn vẹn dùng MDC và thuật toán mã hóa 45
Hình 1.16 Kiểm tra tính toàn vẹn dùng MDC và kênh an toàn 46
Hình 1.17 Quá trình tạo chữ ký số và kiểm tra chữ ký số 47
Hình 1.18 Sơ đồ chữ ký số dùng RSA 47
Hình 1.19 Sơ đồ chữ ký số dùng RSA và có bảo mật thông báo 48
Hình 2.1 Mã hóa và giải mã xây dựng trên cấp số nhân cyclic 71
Hình 2.2 Sơ đồ thiết bị mã hoá 75
Hình 2.3 Sơ đồ thiết bị giải mã 75
Hình 2.4 Sơ đồ mạng thay thế Feistel 76
Hình 2.5 Sơ đồ mã hóa khối E 77
Hình 2.6 Sơ đồ khối mã hóa , với khóa 4 5 1 1 K x x 79
Hình 3.1 Tương tác giữa mở rộng thông báo và các thao tác bước 83
Hình 3.2 Một bước mã hóa của MD5 92
Hình 3.3 Sơ đồ thực hiện hàm băm 95
Hình 3.4 Sơ đồ bộ mã hóa khóa E với khóa K1 95
Trang 10PHẦN MỞ ĐẦU
1 MỞ ĐẦU
Trong sự phát triển của xã hội loài người, kể từ khi có sự trao đổi thông tin, thì an toàn thông tin trở thành một nhu cầu gắn liền với nó Từ thủa sơ khai, an toàn thông tin được hiểu đơn giản là giữ bí mật và điều này được xem như một nghệ thuật chứ không phải là một ngành khoa học Với sự phát triển của khoa học
kỹ thuật và công nghệ, cùng với các nhu cầu đặc biệt có liên quan tới an toàn thông tin, ngày nay cần có các yêu cầu kỹ thuật đặc biệt trong việc đảm bảo an toàn thông tin, các kỹ thuật đó bao gồm: Kỹ thuật mật mã (Cryptography); kỹ thuật ngụy trang (Steganography); kỹ thuật tạo bóng mờ (Watermarking – hay thủy vân)
Hiện nay việc trao đổi thông tin thương mại trên Internet có nhiều nguy cơ không an toàn do thông tin có thể bị lộ hay bị sửa đổi Nói chung, để bảo vệ các thông tin khỏi sự truy cập trái phép cần phải kiểm soát được những vấn đề như:
thông tin được tạo ra, lưu trữ và truy nhập như thế nào, ở đâu, bởi ai và vào thời điểm nào
Để giải quyết các vấn đề trên, kỹ thuật mật mã hiện đại phải đảm bảo các dịch vụ
an toàn cơ bản: (1) bí mật (Confidential); (2) xác thực (Authentication); (3) đảm bảo tính
toàn vẹn (Integrity), và để thực hiện các nhiệm vụ này người ta sử dụng hàm băm mật mã
(Cryptographic Hash Function)
Trang 11Hiện nay trên thế giới có khá nhiều hệ mật mã khối khóa bí mật đã được nghiên cứu sử dụng cho các lược đồ xây dựng hàm băm, điển hình là các hệ mật sau: DES, IDEA, TDEA, AES, CAST,… Những nghiên cứu về các hệ mật này đã xuất hiện trong rất nhiều công trình từ rất nhiều năm qua, tuy nhiên chúng đã được tổng kết trong các công trình sau [19], [20], [25], [28], [31], [33] Các sơ đồ mã hóa thường sử dụng một số lưu đồ như: Feistel cân bằng (như trong DES), Feistel không cân bằng 4 nhánh, Lai-Massey, các mạng thay thế hoán vị…
Một hàm băm mật mã học là một hàm h x( )phải có các tính chất sau [24], [25], [26]:
Bảng 1: Một số hàm băm
Trang 12TT Thuật toán Kích thước đầu ra (bit) Xung đột
2005 người ta lại ghi nhận một tấn công khác đối với SHA-1
Các hàm băm SHA-1, MD5, RIPEMD đều thuộc họ MD4 Cấu trúc và thuật toán mã hóa của họ MD4 khá phức tạp (được trình bày trong chương 3 của luận án) và trải qua nhiều bước như: mở rộng thông báo đầu vào (theo kiểu hoán vị
Trang 13vòng hoặc đệ quy), các bước mã hóa sử dụng các phép toán Boolean, phép cộng số
tự nhiên theo modulo, phép dịch và quay bit, tổ hợp mã băm đầu ra với vector khởi tạo IV…[23], [24]
Ở Việt Nam việc nghiên cứu các hệ mật cũng đã rất phát triển từ nhiều năm qua, tuy nhiên việc sử dụng các hệ mật này cho các lược đồ xây dựng hàm băm còn khá mới mẻ Cũng có một số công trình nghiên cứu về hệ mật [13], [14] và xây dựng hạ tầng khóa công khai phục vụ thương mại điện tử [3]
3 LÝ DO CHỌN ĐỀ TÀI
Việc sử dụng cấu trúc nhóm nhân cyclic và cấp số nhân cyclic trên vành đa thức trong việc tạo mã sửa sai trong thời gian qua ở Việt nam đã có các kết quả đáng khích lệ [2,] [6], [7], [8], [9], [10], [11], [12], [13], [14],bởi một số lý do: cấu trúc đại số chặt chẽ, số lượng cấp số nhân trên vành đa thức nhiều (thuận lợi cho việc tạo khóa trong các hệ mật), mạch điện phần cứng thực hiện khá dễ dàng (thuận lợi cho việc áp dùng vào thực tế)
Trên cơ sở đó phân tích các hàm băm hiện có tác giả thấy rằng, mặc dù các hàm băm có tính chất tốt nhưng lại có nhược điểm là phức tạp dẫn tới yêu cầu về tài nguyên tính toán và thời gian tính toán Với các ưu điểm của cấu trúc của cấp
số nhân cyclic như đề cập ở trên tác giả nhận thấy việc sử dụng cấu trúc này vào việc xây dựng các hệ mật và các hàm băm là hướng nghiên cứu mở, đây là một vấn đề cần thiết trong quá trình phát triển lý thuyết mật mã nói chung và xây dựng các hàm băm mới nói riêng ở Việt Nam
4 MỤC TIÊU NGHIÊN CỨU
Khảo sát đánh giá hệ mật khối sử dụng cho lược đồ hàm băm
Xây dựng hệ mật trên các cấp số nhân cyclic trên vành đa thức
Xây dựng các hàm băm mới sử dụng hệ mật dựa trên các cấp số nhân cyclic trên vành đa thức
Trang 14 Viết các chương trình phần mềm mô phỏng, thử nghiệm và đánh giá kết quả
đã nghiên cứu
5 ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU
Luận án thuộc phạm vi lý thuyết cơ sở, tập trung nghiên cứu các thuật toán mật mã hóa và sử dụng chúng trong lược đồ xây dựng các hàm băm Các thuật toán mã hóa và sơ đồ tạo khóa trong các sơ đồ mã hóa được xây dựng trên cấu trúc cấp số nhân cyclic, đây là một cấu trúc đại số chặt chẽ được xây dựng trên cơ sở là nhóm nhân cyclic trên vành đa thức
6 PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp nghiên cứu của đề tài là phân tích và tổng hợp dựa vào các công cụ toán học, đặc biệt là đại số đa thức, lý thuyết thông tin và mật mã, lý thuyết xác xuất cùng với sự hỗ trợ tính toán của máy tính và các chương trình phần mềm mô phỏng để thử nghiệm đánh giá
7 Ý NGHĨA KHOA HỌC VÀ THỰC TIÊN CỦA ĐỀ TÀI
Những kết quả trong luận án này là một đóng góp nhỏ bé vào việc phát triển
lý thuyết mật mã nói chung và các hàm băm nói riêng Các nghiên cứu trong luận
án đưa ra được một phương pháp xây dựng mật mã khối và một số hàm băm trên
cơ sở là các cấp số nhân cyclic của vành đa thức
Trang 15CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC
1.1 CÁC KHÁI NIỆM CƠ BẢN
Mật mã học là một bộ phận của khoa học mật mã (Cryptology), được chia thành 2 bộ phận chính [4]:
+ Mật mã học (Cryptography): chia thành 3 nội dung:
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ã (Cryptonalys): 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áp thống kê
Phương pháp phân tích cấu trúc…
Trong lý thuyết mã mã hóa nguồn và mã sửa sai khâu mã hóa (coding) thường chỉ có đầu vào là bản tin và đầu ra là bản mã (và ngược lại với khâu giải
mã (decoding)) Tuy nhiên với mật mã học thì hai khâu này có một sự khác biệt đó
là đầu vào của mã hóa (giải mã) ngoài bản tin ra còn có thêm khóa (K)
Trong đó: M – bản rõ; C – bản mã; K – khóa
* Các phương pháp xử lý thông tin số trong các hệ thống mật mã bao gồm:
+ Mật mã khóa bí mật (khóa đối xứng):
Trang 16Với hệ mật 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ác thuật toán
mã hóa trong hệ mật khóa bí mật thường sử dụng các phương pháp sau:
Hoán vị
Thay thế
Xử lý bit (chủ yếu trong các ngôn ngữ lập trình)
Phương pháp hỗn hợp (điển hình là chuẩn mã hóa dữ liệu – DES)
+ Mật mã khóa công khai (khóa không đối xứng):
Thông thường mỗi bên liên lạc tự tạo cho mình một cặp khóa Công khai và bí mật, khóa công khai dùng để mã hóa bản tin và khóa này được công khai trên mạng, còn khóa bí mật dùng để giải mã (chỉ có bên nhận tin lưu trữ) Các thuật toán mã hóa công khai cho đến nay được xây dựng theo một trong năm bài toán một chiều cơ bản đó là:
Bài toán logarit rời rạc
Bài toán phân tích thừa số
Bài toán xếp ba lô
Bài toán mã sửa sai
Bài toán trên đường cong elliptic
+ Mật mã khối:
Trong các hệ mật mã khối quá trình xử lý thông tin được thực hiện theo các khối bit có độ dài xác định
+ Mật mã dòng: Trong các hệ mật mã dòng quá trình xử lý thông tin thực
hiện trên từng bit
Trang 171.2 CÁC HỆ MẬT KHÓA BÍ MẬT
1.2.1 Sơ đồ khối chức năng hệ mật khóa bí mật
Hình 1.1 Sơ đồ khối chức năng hệ mật khóa bí mật
Một hệ mật là một bộ gồm 5 tham số P,C,K,E,D thoả mãn các điều kiện sau [4]:
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 kK có một quy tắc mã ekE
CP
ek :
và một quy tắc giải mã tương ứng dkD
PC
DKE
K
Bản rõ M Bản mã C
Bản mã C Bản rõ M
Kênh an toàn
Thám mã
Nguồn khoá
K Nguồn tin Bộ mã hoá Kênh mở
(không an toàn) Bộ giải mã Nhận tin
Trang 18Ví dụ 1.1:
Với văn bản tiếng Anh, n26 hoặc 27, như vậy M C K, , Z26 hoặc Z 27
Ta sử dụng MDV (với modulo 26) để 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
- Từ ví dụ trên ta thấy rằng, điều kiện cần để một hệ mật an toàn là phép tìm khoá vét cạn phải không thể thực hiện được Tuy nhiên, một không gian khoá lớn vẫn chưa đủ để đảm bảm độ mật
Trang 19Nhận xét: Do khoảng trống xuất hiện nhiều trong văn bản, nên khi mã hóa nên mã hóa cả khoảng trống để giảm số lần xuất hiện
Sử dụng phép tương ứng A0,B1,, Z25 mô 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ã
Vigenère 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
OMTA QV CB HBRJGB
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 đó
Trang 20Chú ý: Để giải mã, ta có thể dùng cùng từ khoá nhưng thay cho cộng, ta trừ
dclassonsecaSau đó, 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ó:
RIENATOTGHNE
RICARALSDSAC
EOANCSCuối cùng, ta có bản mã sau:
EOANCSLSDSACRICARAOTGHNERIENAT
Trang 21Khi 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:
Định nghĩa 1.1 [[4]: Cho m là một số nguyên dương xác định nào đó
Để đơn giản, trong phần này chỉ hạn chế xét các hệ mật trong đó C=P; các hệ mật loại này được gọi là tự đồng cấu Giả sử S1P, P,K1,E1,D1 và
2 P,P, K , E , D
S là hai hệ mật 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à S1S2) được xác định là hệ mật sau:
( , ,P P K K E D, , ) (1.1) Khoá của hệ mật tích có dạng kk1,k2 trong đó k1K1 và k2K2 Các quy tắc mã và giải mã của hệ mật tích được xác định như sau: Với mỗi
Trang 22hệ 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ỏ SM cũng là hệ mã Affine khó hơn một chút (cũng với các khóa đồng xác suất)
Ta sẽ chứng minh các khẳng định này Một khoá dịch vòng là phần tử
26
Z
k và quy tắc giải mã tương ứng là ek x xk mod26 Còn khoá trong hệ
mã nhân là phần từ aZ26 sao cho UCLNa, 261 Quy tắc mã tương ứng là
Trang 23Bây giờ ta sẽ xét SM Một khoá này trong hệ mã này có dạng ( , )k a , trong
đó:
( , )k a ( ) ( ) mod 26
Như vậy, khoá k,a của mã tích SM đồ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 SM Nhận thấy rằng akk1 khi và chỉ khi k a k1 1, (hãy nhớ lại rằng UCLNa,261, bởi vậy a có phần tử nghịch đảo) Nói cách khác, khoá a, k1 của hệ mã Affine tương đương với khoá 1
1
(a k a , ) của mã tích SM Bởi vậy, ta có một song ánh giữa hai không gian khoá Vì mỗi khoá là đồng xác suất nên có thể thấy rằng SM thực sự là mã Affine
Ta chứng minh rằng MSSM Bởi vậy, hai hệ mật là giao hoán Tuy nhiên, không phải mọi cặp hệ mật đều giao hoán; có thể tìm ta được các cặp phản
ví dụ Mặt khác ta thấy rằng phép tích luôn kết hợp:
S1S2S3 S1S2S3Nếu lấy tích của một hệ mật tự đồng cấu với chính nó thì ta thu được hệ mật S
S (kí hiệu là S ) Nếu lấy tích n lần thì hệ mật kết quả là 2 S Ta gọi n S là hệ nmật lặp
Một hệ mật S được gọi là luỹ đẳng nếu S2 S Có nhiều hệ mật đã nghiên cứu trong chương 1 là hê mật luỹ đẳng Chẳng hạn các hệ MDV, MTT, Affine, Hill, Vigenère và hoán vị đều là luỹ đẳng Hiển nhiên là nếu hệ mật S là luỹ đẳng thì không nên sử dụng hệ mật tích S2 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 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 DES dùng 16 phép lặp, tất nhiên hệ mật ban đầu phải là hệ mật không luỹ đẳng Một phương pháp có thể xây dựng các hệ mật không luỹ đẳng đơn giản là lấy tích của hai hệ mật đơn giản khác nhau
Nhật xét:
Có thể dễ dàng chứng tỏ rằng, nếu cả hai hệ mật S1 và S2 là luỹ đẳng và 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:
Trang 24
2 1
2 2 1 1
2 2 1 1
2 1 2 1 2 1 2 1
SS
SSSS
SSSS
SSSSSSSS
(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 S1S2 là 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 đơ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ị
1.2.5 Các hệ mật mã dòng và việc tạo các dãy giả ngẫu nhiên
1.2.5.1 Các hệ mã dòng
Trong các hệ mật nghiên cứu ở trên, các phần tử liên tiếp của bản rõ đều được
mã hoá bằng cùng một khoá k Tức xâu bản mã y nhận được có dạng:
1 2 k( ) ( ) 1 k 2
Các hệ mật thuộc dạng này thường được gọi là các mã khối Một quan điểm
sử dụng khác là mật mã dòng Ý tưởng cơ bản ở đây là tạo ra một dòng khoá
Mã dòng hoạt động như sau Giả sử kK là khoá, và x x x1 2 là xâu bản
rõ Hàm f được dùng để tạo i z ( i z là phần tử thứ i của dòng khoá), trong đó i f là i
một hàm của khoá k và i1 là ký tự đầu tiên của bản rõ:
( , , , )
z f k x x
Phần tử z của dòng khoá được dùng để mã i x tạo ra i y i e x iz( )i Bởi vậy, để
mã hoá xâu bản rõ x x1 2 ta phải tính liên tiếp z y z y1, ,1 2, 2
Việc giải mã xâu bản mã y y1 2 có thể được thực hiện bằng cách tính liên tiếp z x z x1, ,1 2, 2
Sau đây là định nghĩa dưới dạng toán học:
Định nghĩa 1.2 [4]
Trang 25Mật mã dòng là một bộ ( , , P C K L F E D, , , , ) thoả mãn các điều kiện sau:
1) P là một tập hữu hạn các bản rõ có thể
2) C là tập hữu hạn các bản mã có thể
3) K làtập hữu hạn các khoá có thể (không gian khoá)
4) L là tập hữu hạn các bộ chữ của dòng khoá
5) F (f f1 2 ) là bộ tạo dòng khoá Với i1
Ta có thể coi mã khối là một trường hợp đặc biệt của mã dòng, trong đó dùng khoá không đổi: Z i k với mọi i1
Mã dòng được gọi là đồng bộ nếu dòng khoá không phụ thuộc vào xâu bản
rõ, tức là nếu dòng khoá được tạo ra chỉ là hàm của khoá k Khi đó, ta coi k là một
"mầm" để mở rộng thành dòng khoá z z1 2
Một hệ mã dòng được gọi là tuần hoàn với chu kỳ d nếu z i d z i với mọi số nguyên i1 Mã Vigenère với độ dài từ khoá m có thể coi là mã dòng tuần hoàn với chu kỳ m Trong trường hợp này, khoá là k ( , ,k1 k m) Bản thân k sẽ tạo m phần tử đầu tiên của dòng khoá: z i k i, 1 i m Sau đó, dòng khoá sẽ tự lặp lại Nhận thấy rằng, trong mã dòng tương ứng với mật mã Vigenère, các hàm mã và giải mã được dùng giống như các hàm mã và giải mã được dùng trong MDV:
Ta xem xét một phương pháp tạo một dòng khoá (đồng bộ) khác Giả sử bắt đầu với ( , ,k1 k m) và z i k i, 1 i m(cũng giống như trước đây), tuy nhiên bây
giờ ta tạo dòng khoá theo một quan hệ đệ quy tuyến tính cấp m:
Trang 26Ở đây khoá k gồm 2m giá trị k1, ,k c m, , ,0 c m1 Nếu ( , ,k1 k m)(0, ,0) thì dòng khoá sẽ chứa toàn các số 0 Dĩ nhiên phải tránh điều này vì khi đó bản mã sẽ đồng nhất với bản rõ Tuy nhiên, nếu chọn thích hợp các hằng số c0, ,c m1thì một vector khởi đầu bất kì khác ( , ,k1 k m) sẽ tạo nên một dòng khoá có chu kỳ 2m 1
Việc mã hóa và giải mã hệ mật mã dòng mô tả như dưới đây
+ Mã hóa: C i m i k imod 2
+ Giải mã: m i C i k imod 2
Để hệ thống an toàn, dãy bit khóa ngẫu nhiên phải dài hơn bản tin:
k m (Dẫy ngẫu nhiên có p 0 p 1 0,5)
Trang 27Một dãy có chiều dài cực đại (MLS) là một kiểu dãy nhị phân giả ngẫu nhiên Chúng là các bit tuần tự được tạo ra bằng các thanh ghi dịch phản hồi tuyến tính (LFSR) và do vậy chúng có chu kỳ và các chuỗi nhị phân tái tạo được nhờ tính
dịch vòng (ví dụ với thanh ghi m ô nhớ có thể tạo được chuỗi có chiều dài 2m-1) Một dãy có chiều dài cực đại còn được gọi là M-dãy
Các M-dãy có thể được biểu diễn bằng các hệ số của các đa thức bất khả quy của vành đa thức trên trường nhị phân Các ứng dụng cơ bản của M-dãy bao gồm:
đo đáp ứng xung, tạo chuỗi giả ngẫu nhiên trong các hệ thống thông tin số dùng để trải phổ trực tiếp và trải phổ nhảy tần…
Biểu diễn LFSR – dãy M bằng mô hình hệ thống LFSSM
LFSSM là tên viết tắt của Linear Finite State Sequencial Machine – máy trình tự tuyến tính có trạng thái hữu hạn
Trình tự vì sử dụng các ô nhớ theo trình tự
Hữu hạn vì số trạng thái 2m là hữu hạn
Tuyến tính vì sử dụng các thuật toán tuyến tính XOR trên GF(2) Một LFSSM được đặc trưng bởi tập hợp 5 phần tử {S, I, Y, M, }, trong đó:
S là trạng thái hiện tại, I là tập đầu vào, Y là tập đầu ra, M là hàm trạng thái kế tiếp ánh xạ SI lên S và là hàm truyền đạt ánh xạ từ S lên Y
(a) không gian trạng thái S của M M, không gian đầu vào I , không gian M
đầu ra Y là các không gian vector trên trường hữu hạn K M
(b) với vector trạng thái s , vector vào i u , và vector ra i y tại thời điểm i , i
trạng thái kế tiếp s i thì đầu ra M có dạng sau:
Trong đó: A,B,C là các ma trận trên K, , ,s u y là các vector cột i i i
Hưởng ứng cưỡng bức: tín hiệu ra khi có tín hiệu vào
Trang 28Hưởng ứng tự do: tín hiệu ra khi không có tín hiệu vào
LFSR như hình dưới là lớp con của LFSSM, được mô tả như sau:
1 1
2 2
3 3
s s
s s
s s
Một số tính chất cơ bản của M-dãy [1]
i) Tính chất dịch: Dịch vòng trái hoặc phải của một M-dãy cũng là M-dãy
ii) Tính chất hồi qui: Một M-dãy bất kỳ trong S m đều thỏa mãn sự hồi qui:
C g c g c K g c c i (1.10) Ngược lại, bất cứ nghiệm nào của phương trình hồi qui này cũng là M-dãy
trong tập S m Có m nghiệm độc lập tuyến tính của phương trình hồi qui này, do đó
có M-dãy độc lập tuyến tính trong S m
iii) Tính chất cửa sổ: Nếu trượt một cửa sổ có độ rộng m dọc theo M-dãy
trong S m thì ta nhìn thấy đúng 1 lần mỗi bộ m nhị phân khác 0 trong 2 m -1 bộ
iv) Tính chất số lượng số ‘1’, số ‘0’: số 1 nhiều hơn số số 0 một đơn vị: Bất
0
Trang 29kì M-dãy nào trong S m cũng chứa 2m-1 số 1 và 2m-1-1 số 0
v) Tính chất cộng: Tổng của hai M-dãy trong S m (mod 2, từng số hạng một) là M-dãy khác trong S m
vi) Tính chất dịch và cộng: Tổng của M-dãy và dịch vòng của chính nó (mod 2, từng số hạng một) là M-dãy khác
vii) Tính chất tự tương quan có dạng nhọn: Hàm tự tương quan tuần hoàn chuẩn hóa của M-dãy được xác định bởi:
1
0
1( ) ( 1) j i j
N
e c j
i N
và bằng 1 khi i=0(modN) và bằng -1/N khi i ≠ 0(mod N)
viii) Tính chất hành trình: Hành trình là một dãy các số 1 liên tiếp hoặc các
số 0 liên tiếp Trong M-dãy bất kì, một nửa các hành trình có độ dài 1, một phần tư
có độ dài 2, 1/8 có độ dài 3 v.v… đến khi nào các phân số này còn cho số nguyên các hành trình Cụ thể, có 1/ 2m
của g(d)
b) Tạo M-dãy bằng đa thức nguyên thủy
* Đa thức nguyên thủy: Đa thức bất khả quy bậc m được gọi là đa thức
nguyên thủy nếu nó là ước của x n1 với n2m1 nhưng không là ước của 1
p
x (với pn) [4]
Trang 30Trạng thái các vec tơ mã đầu ra của M-dãy cho trong bảng 1.1 Nếu ta lấy bất
kỳ cột nào ta cũng được một M-dãy
Trang 31Bảng 1.1 Trạng thái của các vector đầu ra M-dãy
Dạng tổng quát phần cứng như trong hình 1.2
Hình 1.2 M-dãy tạo từ thanh ghi dịch phản hồi tuyến tính LFSR
Hình 1.3 là mạch điện tạo M-dãy với đa thức nguyên thủy là:
Trang 32Hình 1.3 Mạch tạo M-dãy từ đa thức g(x) = 1+x+x4
c) Một số M-dãy tuyến tính khác
+ Các dãy Gold
Để tạo dãy tuyến tính có khoảng tuyến tính và kích thước tập hợp lớn, thông thường sử dụng giải pháp ghép tuyến tính các M-dãy Trong một hệ thống truy nhập ngẫu nhiên hoặc các hệ thống hỗn hợp, kích thước yêu cầu của tập hợp có thể đến vài trăm Tập hợp Gold chứa đựng một số lớn các dãy thoả mãn hai tính chất
ACF và CCF đến một mức độ chấp nhận được Tập gồm N+2 các dãy Gold với độ dài N bằng 2 m -1 có thể được xây dựng từ cặp ưa thích các M-dãy có chu kì N
giống nhau Cặp M-dãy ưa thích, chẳng hạn x và y, có hàm tương quan chéo 3 trị:
θ x, y (n) = -1; - t(m) ; t(m) - 2
Khi tính các trị tương quan chéo, đầu tiên các số 0 và 1 được biến đổi thành
các số +1 và -1 Tập các M-dãy bao gồm cặp ưa thích các dãy x và y , các tổng mod 2 của x và các dịch vòng của y Cụ thể, tập các dãy Gold là:
SGold = {x, y, x y, xT-1y, xT-2 y, , xT-(N-1) y} (1.12)
Với Ty = (y1, y2, y3, , yN -1, y0) là dịch vòng trái của y Biên độ tương quan
cực đại đối với hai M-dãy bất kì trong cùng tập là bằng hằng số t(m) Người ta biết rằng các cặp ưa thích của các M-dãy không tồn tại đối với m = 4, 8, 12, 16 và tiên đoán rằng không tồn tại nghiệm đối với tất cả m = 0 (mod 4)
Trang 33Hình 1.4 Bộ tạo dãy Gold đối với g 1 (d) = d 3 + d +1 và g 2 (d) = d 3 + d 2 +1
Mỗi dãy trong tập Gold có thể được tạo nên bởi đa thức f(d) cho bởi:
( ) ( ) ( )
Vì hai đa thức h(d) và h’(d) đều là nguyên tố, ta có:
deg[ ( )]f d deg[ ( ) deg[ ( )]h d h d 2m (1.14)
Điều đó có nghĩa là Gold thoả mãn quan hệ hồi quy tuyến tính bậc 2m, hay nói cách khác ELS của dãy Gold là 2m Mặc dù giá trị này cao hơn giá trị ELS của
tập hợp liên thông, nó vẫn còn thấp hơn so với yêu cầu của các hệ thống cần bảo mật Dãy Gold tạo nên một tập hợp lớn có các tính chất tương quan ACF và CCF tốt nhưng giá trị ELS thấp
+ Các dãy Kasami
Lớp quan trọng khác các dãy nhị phân SSMA là các dãy Kasami Giả sử m là
số nguyên chẵn và x là M-dãy có chu kì N = 2 m -1, được tạo từ đa thức nguyên
thủy h(d) Các dãy Kasami nhận được bằng cách chia dãy x và thực hiện phép cộng
mod 2 trên các dãy dịch vòng Decimating dãy tức là lấy mẫu nó một cách tuần
hoàn Để xây dựng các dãy Kasami đầu tiên ta nhận được dãy y = x[s(m)],
s(m)=2 m/2 +1 Dãy lấy mẫu y cũng là M-dãy tuần hoàn, nhưng với chu kì nhỏ hơn
và bằng (2m -1) / s(m) = 2 m/2 -1 Tập nhỏ các dãy Kasami được cho bởi:
Trang 34 1 2 (2 /2 2)
k
S x x y xT y x T y xT y (1.15) Tổng số dãy trong tập là 2m/2 Hàm tương quan chéo đối với 2 dãy bấy kỳ trong tập Sk asami nhận các giá trị trong tập {-1, -s(m), s(m) - 2}
Tập bé Kasami được thiết kế để cải thiện các tính chất liên quan của dãy Gold và các dãy liên thông cực đại Với M-dãy, khi thực hiện lấy mẫu với khoảng các lấy mẫu 2m/2 +1, ta sẽ thu được một M-dãy có chu kỳ N=2 m/2-1 và tạo nên bởi
đa thức nguyên thủy h’(d) có bậc m/2 Như vậy, mỗi thành viên của tập bé Kasami
có thể được tạo nên bởi đa thức f(d) =h(d+h’(d) bậc 3m/2
Tập lớn Kasami: Được tổ hợp từ tập Gold với tập bé theo cách sau:
Cho m là một số chẵn và h(d) là một đa thức nguyên thủy sinh ra M-dãy {u} Cho w = u[s(m)] là một M-dãy có chu kỳ 2 m/2-1 tạo nên bởi đa thức nguyên
thủy h’(d) bậc m/2 và h”(d) là một đa thức bậc m sinh ra dãy u[t(m)]
Tập Kasami lớn, ký hiệu K L (n), được tạo bởi f(d) = h(d)h’(d)h”(d)
Người ta đã chứng minh được rằng các hàm tương quan cho dãy K L (n) lấy
giá trị trong tập:
{-1, -t(m), t(m) -2, -S(m), S(m) -2} (1.16)
Do đó ta có: c max = t(m)
Tương tự như dãy Gold tập K l (n) chứa 2 m/2(2m +1) dãy khi m=2mod 4 và
2m/2(2m +1)-1 dãy khi m= 0mod 4
Các tập Gold và các tập bé Kasami là những tập con của tập Kasami lớn Đồng thời trong khi kích thước của tập tăng lên đáng kể, giới hạn trên c max
vẫn
như của tập Gold ELS của các phần tử trong tập là 5m/2, tức là bằng deg[f(d)]
Các dãy được đề cập trong Bảng 1.2 là những dãy nổi tiếng nhất được tạo nên từ M-dãy Đó là những dãy tuyến tính và chúng được tạo ra bằng thuật toán
cộng modulo 2, là thuật toán tuyến tính trong trường nhị phân GF(2) Các dãy này
có các đặc tính tương quan tốt, trong đó dãy bé Kasami là tốt nhất Các dãy khác như dãy Gold, dãy Kasami lớn đều có kích thước lớn Tuy nhiên, giá trị ELS của
Trang 35chúng thấp, khoảng cùng bậc với ELS của M-dãy trong khi các giá trị ACF và CCF kém hơn M-dãy nhiều lần Nguyên nhân chính dẫn tới ELS thấp rõ ràng là do phương pháp tuyến tính để cấu tạo dãy
Bảng 1.2 Các đặc tính của dãy tuyến tính có chu kỳ 2m
-1
Gold (good-like) 2(mod 4) 2m +1 1+2(m+2) /2
Kasami (large set) Chẵn 2m/2(2m+1) 1+2(m+2) /2
1.2.6 Chuẩn mã dữ liệu DES
Mô tả đầy đủ của DES được nêu trong Công bố số 46 về các chuẩn xử lý thông tin Liên bang (Mỹ) vào 15.1.1977 [4], [25], [28], [31], [32] DES mã hoá một xâu bit x của bản rõ độ dài 64 bằng một khoá 54 bit Bản mã nhận được cũng
là một xâu bit có độ dài 64 Trước hết ta mô tả ở mức cao về hệ thống
Thuật toán tiến hành theo 3 giai đoạn:
1) Với bản rõ cho trước x, một xâu bit x sẽ được xây dựng bằng cách hoán 0
vị các bit của x theo phép hoán vị cố định ban đầu IP Ta viết:
x IP x L R , trong đó L gồm 32 bit đầu và 0 R là 32 bit cuối 0
2) Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính L R , i i
1 i 16 theo quy tắc sau:
trong đó kí hiệu phép cộng theo modulo 2 f là một hàm mà ta sẽ mô tả ở
sau, còn k k1, 2, ,k là các xâu bit độ dài 48 được tính như hàm của khoá k (trên 16
Trang 36thực tế mỗi k là một phép chọn hoán vị bit trong k) Các khóa con i k k1, 2, ,k sẽ 16
tạo thành bảng khoá
3) Áp dụng phép hoán vị ngược IP1 cho xâu bit R L , ta thu được bản mã 16 16
y, tức là yIP1(R L16 16)
Sơ đồ mã hóa DES được xây dựng trên lược đồ Feistel như trong hình 1.5
Hình 1.5 Sơ đồ mã hóa DES
Có 64! cách chọn các bảng hoán vị, DES chọn các bảng hoán vị IP và hoán vị đảo IP-1 như trong bảng 1.3
Trang 38Hình 1.7 Các bước tạo khóa cho các vòng mã hóa của DES
1.2.7 Ưu nhược điểm của mật mã khóa bí mật
1.2.7.1 Ưu điểm:
Đơ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ễ và các ứng dụng di động
1.2.7.2 Nhược điểm:
Phải dùng kênh an toàn để truyền khóa (Khó thiết lập và chi phí tốn kém)
Việc tạo và giữ khóa bí mật phức tạp, khó làm việc trên mạng do phải tạo khóa nhiều
Các thuật toán là song ánh, vì vậy nếu biết M và K thì chắc chắn biết C Thám mã có thể suy luận ra K, kết hợp với C tại kênh mở có thể suy ra M
Khó xây dựng các dịch vụ an toàn khác như: đảm bảo tính toàn vẹn, xác thực, chữ ký số…
Vì các nhược điểm này nên phải sử dụng cả các hệ mật khóa công khai
Trang 391.3 HỆ MẬT KHÓA CÔNG KHAI
Ưu điểm của hệ mật khóa công khai:
+ Không sử dụng kênh an toàn (đây là nhược điểm của hệ mật khóa bí mật) + Dễ bảo vệ, lưu trữ và sinh khóa
Nhược điểm của hệ mật khóa công khai:
Trang 401.3.2 Một số bài toán xây dựng hệ mật khóa công khai
Vớ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 [4]
1.3.2.1 Bài toán logarit rời rạc:
Bài toán này xây trên các hàm mũ của các phần tử trong trường hữu hạn
p
Z với p là số nguyên tố lớn Bài toán ngược là phép logarit nhưng trên trường hữu
hạn và đây là bài toán khó giải khi p lớn
Các hệ mật liên quan bao gồm:
Thủ tục trao đổi và thỏa thuận khóa Diffie-Hellman
+ Hệ mật RSA (Rivest – Shamir – Adleman)
- Tạo khóa: Mỗi bên liên lạc (A,B) tạo cho mình một cặp khóa công khai –
bí mật theo các bước sau:
Bước 1: Chọn hai số nguyên tố lớn p và q có độ lớn tương đương
Bước 2: Tính n pq ( ) n ( p 1)( q 1)
Bước 3: Chọn e ngẫu nhiên thỏa mãn: ( , ( )) 1 e n
Bước 4: Tính d với ed 1mod ( ) n
Bước 5: + Khóa công khai: (n,e)
+ Khóa bí mật: d