luận văn
Trang 2LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 TS LỀU ĐỨC TÂN
2 PGS.TS BẠCH NHẬT HỒNG
Hà Nội - 2011
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan, đây là công trình nghiên cứu của riêng tôi Các số liệu và kết quả trình bày trong luận án là hoàn toàn trung thực và chưa có tác giả nào công bố trong bất cứ một công trình nào khác
Người cam đoan
Hoàng Văn Thức
Trang 4LỜI CẢM ƠN
Luận án này được thực hiện tại Viện Khoa học và Công nghệ Quân sự -
Bộ Quốc phòng Tôi xin bày tỏ lòng biết ơn sâu sắc tới Tiến sĩ Lều Đức Tân, Phó giáo sư - Tiến sĩ Bạch Nhật Hồng đã tận tình hướng dẫn và giúp đỡ tôi trong suốt quá trình học tập, nghiên cứu và hoàn thành luận án này
Tôi xin cám ơn Viện Khoa học và Công nghệ Quân sự là cơ sở đào tạo
và đơn vị quản lý đã tạo mọi điều kiện, hỗ trợ, giúp đỡ tôi trong quá trình học tập, nghiên cứu
Xin cám ơn Ban Cơ yếu Chính phủ, Học viện Kỹ thuật Mật mã, Phân viện Nghiên cứu Khoa học Mật mã đã động viên, hỗ trợ, tạo điều kiện cho tôi được học tập, nghiên cứu
Tôi luôn luôn ghi nhớ công ơn của bố mẹ, gia đình và xin dành lời cảm
ơn đặc biệt tới vợ con, những người đã luôn ở bên cạnh, động viên và là chỗ dựa về mọi mặt giúp tôi vượt qua khó khăn để hoàn thành các nội dung nghiên cứu
Lời cuối cùng, cho tôi bày tỏ lòng biết ơn chân thành tới các thầy, các
cô của Viện Khoa học và Công nghệ Quân sự, các nhà khoa học, đặc biệt là những nhà khoa học có thâm niên nghiên cứu lâu năm về lĩnh vực luận án đang nghiên cứu cùng bạn bè, đồng nghiệp đã luôn động viên, chia sẻ, giúp
đỡ tôi trong suốt thời gian qua
Tác giả
Trang 5MỤC LỤC
Trang
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi
DANH MỤC CÁC BẢNG x
DANH MỤC CÁC HÌNH VẼ xi
MỞ ĐẦU … … … … … … … … … … … … … ……… 1
CHƯƠNG 1: TỔNG QUAN VỀ TIÊU CHUẨN THAM SỐ RSA VÀ CÁC GIAO THỨC BẢO MẬT WEB … 6
1.1 Một số định nghĩa và ký hiệu … … … … 7
1.2 Hệ mật mã khoá công khai RSA … … … … …… 8
1.2.1 Qui trình sinh tham số khoá RSA … … … … … … …… 8
1.2.2 Hệ mật khoá công khai RSA nguyên thuỷ … … … …… 8
1.2.3 Hệ chữ ký số RSA nguyên thuỷ … … … … … … …… 9
1.2.4 Hệ thống mật mã dựa trên RSA … … … … … … …… 10
1.2.5 Độ an toàn của hệ thống mật mã RSA 12
1.3 Một số thuật toán sinh số nguyên tố 13
1.3.1.Một số phép kiểm tra tính nguyên tố xác suất 14
1.3.2 Các phương pháp sinh số nguyên tố 16
1.3.3 Nhận xét 21
1.4 Tiêu chuẩn tham số RSA 23
1.4.1 Tiêu chuẩn tham số RSA được đưa ra trong ANSI X9.31 23
1.4.2 Tiêu chuẩn tham số RSA được đưa ra trong FIPS 186-3 24
1.4.3 Một số nhận xét 27
1.5 Hệ thống mật mã RSA và các giao thức bảo mật Web 27
1.5.1 Giới thiệu về giao thức bảo mật SSL/TLS 27
1.5.2 Giao thức SSL phiên bản 3.0 28
1.5.3 Cơ chế tính khoá phiên trong giao thức SSL 31
Trang 61.5.4 Hệ thống mật mã RSA và bảo mật dịch vụ Web 33
1.6 Kết luận chương 1 35
CHƯƠNG 2: XÂY DỰNG HỆ TIÊU CHUẨN THAM SỐ AN TOÀN CHO HỆ THỐNG MẬT MÃ RSA 37
2.1 Xem xét các tiêu chuẩn đã có và đề xuất bổ sung …… 37
2.1.1 Độ an toàn của hệ thống mật mã RSA với độ dài modulus cho trước 37
2.1.2 Tiêu chuẩn về độ dài RSA modulus … … … … … …… 39
2.1.3 Các tiêu chuẩn cho các số nguyên tố p, q 42
2.1.4 Tiêu chuẩn cho số mũ công khai e và số mũ bí mật d 50
2.2 Tiêu chuẩn mới chống lại tấn công mã hoá liên tiếp 58
2.2.1 Chu kỳ RSA và các tính chất của nó 58
2.2.2 Tiêu chuẩn mới chống lại tấn công mã hoá liên tiếp 60
2.2.3 Lực lượng bản rõ không thể được che dấu 63
2.3 Các tiêu chuẩn an toàn cho tham số RSA được đề xuất 63
2.4 Kết luận chương 2 65
CHƯƠNG 3: SINH VÀ TÍCH HỢP THAM SỐ RSA AN TOÀN CHO DỊCH VỤ BẢO MẬT WEB 67
3.1 Thuật toán sinh tham số RSA an toàn 67
3.1.1 Một số hằng số và hàm được sử dụng trong thuật toán 68
3.1.2 Thuật toán SinhP (Thuật sinh số nguyên tố thứ nhất) 68
3.1.3 Thuật toán SinhQ (Thuật toán sinh số nguyên tố thứ hai) 73
3.1.4 Tính chất của các tham số p, q 75
3.1.5 Thuật toán SinhED 77
3.1.6 Thuật toán sinh tham số SinhThamSo 79
3.2 Xây dựng chương trình sinh tham số RSA an toàn 80
3.2.1 Một số hàm thực thi thuật toán sinh tham số RSA an toàn 80
Trang 73.2.2 Kết quả chạy thực nghiệm 83
3.2.3 Bằng chứng về tính nguyên tố 86
3.3 Ứng dụng tham số RSA an toàn 89
3.3.1 Tích hợp chương trình sinh tham số RSA an toàn cho bộ chương trình sinh chứng chỉ điện tử 89
3.3.2 Sử dụng tham số RSA an toàn với giao thức bảo mật Web 91
3.4 Kết luận chương 3 96
KẾT LUẬN 97
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 98 TÀI LIỆU THAM KHẢO 99
PHỤ LỤC 1 102
PHỤ LỤC 2 112
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
: Nhóm nhân cực đại của p
gcd( , )a b : Ước số chung lớn nhất của a và b
lmc( , )a b : Bội số chung nhỏ nhất của a và b
Trang 9q : Ước nguyên tố lớn nhất của q 1 1
Proof(p): Chứng nhận tính nguyên tố của p
Prob{x : y}: Xác suất xảy ra biến cố y với giả thiết x
x modulo p: Phần dư khi chia x cho p
x || y: Chuỗi kết quả của việc nối chuỗi y vào chuỗi x
AES (Advanced Encryption Standard): Chuẩn mã hoá tiên tiến
ANSI (American National Standard Institute): Viện tiêu chuẩn quốc gia Mỹ
CA (Certificate Authority): Thẩm quyền chứng thực
CBC (Cipher Block Chaining): Chế độ mã móc xích trong mã khối
Trang 10ECDSA (Elliptic Curve Digital Signature Algorithm): Thuật toán chữ ký số
đường cong elliptic
DES (Data Encryption Standard): Chuẩn mã hoá dữ liệu
DH (Diffie-Hellman): Tên một thuật toán trao đổi khoá
DPA (Differential Power Analysis): Phân tích năng lượng sai khác
DSS (Digital Signature Standard): Chuẩn chữ ký số
ECM (Elliptic Curve Method): Phương pháp phân tích số dựa trên đường
cong elliptic
FIPS (Ferderal Infomation Processing Standard): Tiêu chuẩn xử lý thông tin
liên bang (Mỹ)
FTP (File Transfer Protocol): Giao thức truyền tệp tin
IE (Internet Explorer): Tên một trình duyệt Web của hãng Microsoft
IETF (Internet Engineering Task Force): Nhóm đặc trách về kỹ thuật
MD5 (Message Digest): Tên một hàm băm mật mã
MAC (Message Authentication Code): Mã xác thực thông báo
NFS (Number Field Sieve): Sàng trường số
NIST (National Institute of Standard and Technology): Viện các tiêu chuẩn và
công nghệ quốc gia (Mỹ)
NSS (Network Security Service): Dịch vụ bảo mật mạng
Trang 11OAEP (Optimal Asymmetric Encryption Padding): Đệm mã hoá phi đối xứng
tối ưu
PKCS (Public Key Cryptography Standards): Các chuẩn mã hoá khoá công
khai do hãng RSA đưa ra
PSM (Personal Security Manager): Mô đun quản lý bảo mật cá nhân
PSS (Probabilistic Signature Scheme): Lược đồ chữ ký xác suất
RSA: Tên một hệ thống mật mã khoá công khai do các tác giả Ron Rivest, Adi
Shamir và Leonard Adleman phát minh
SHA (Secure Hash Algorithm): Tên một hàm băm mật mã
SPA (Simple Power Analysis): Phân tích năng lượng đơn
SSL (Secure Socket Layer): Giao thức bảo mật tầng socket
TLS (Transfer Layer Security): Giao thức bảo mật tầng giao vận
VPN (Virtual Private Network): Mạng riêng ảo
Trang 12DANH MỤC CÁC BẢNG
Bảng 1.1 Xác suất sai của các phép kiểm tra tính nguyên tố … 22
Bảng 1.2 Tiêu chuẩn độ dài RSA modulus tối thiểu trong 24
Bảng 1.3 Tiêu chuẩn về độ dài các số nguyên tố p1, p2, q1 và q2 25
Bảng 1.4 Phương pháp sinh số nguyên tố được phép dùng …… 26
Bảng 2.1 Độ an toàn của hệ thống mật mã RSA theo độ dài modulus 39 Bảng 2.2 Độ dài tối thiểu RSA modulus có thể dùng an toàn đến một năm cho trước … … … … 41
Bảng 2.3 Tiêu chuẩn độ dài tối thiểu RSA modulus … … … 42
Bảng 2.4 Độ dài tối thiểu của các số nguyên tố bổ trợ … …… 45
Bảng 2.5 Tiêu chuẩn độ lớn tối thiểu của |p-q| … …… 49
Bảng 2.6 Tiêu chuẩn về ước nguyên tố của |p-q| 50
Bảng 2.7 Độ dài tối thiểu của p11, q11 62
Bảng 2.8 Tiêu chuẩn N1 63
Bảng 2.9 Tiêu chuẩn PQ2 64
Bảng 2.10 Tiêu chuẩn PQ4 64
Bảng 2.11 Tiêu chuẩn PQ5 64
Bảng 2.12 Tiêu chuẩn PQ6 65
Bảng 2.13 Tiêu chuẩn D1 65
Bảng 3.1 Cụ thể hoá một số tiêu chuẩn mang tính định lượng 68
Bảng 3.2 Thời gian sinh các bộ tham số RSA an toàn 84
Bảng 3.3 Một số bộ phần mềm Web server mã nguồn mở 92
Bảng 3.4 Một số bộ phần mềm Web browser mã nguồn mở 92
Trang 13DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Giao thức bắt tay SSL … …… 29
Hình 1.2 Giao thức bản ghi SSL … …… 30
Hình 3.1 Cấu trúc các mô đun bảo mật của Mozilla Firefox và Apache Server … … … … …… 93
Hình 3.2 Tham số RSA an toàn khi được cài đặt cho Firefox chưa sửa đổi … … … … … … … 94
Hình 3.3 Tham số RSA an toàn khi được cài đặt cho Firefox đã sửa đổi … … … … … … 95
Hình B.1 Hộp hội thoại Options 112
Hình B.2 Hộp hội thoại quản lý chứng chỉ 113
Hình B.3 Thông báo cài đặt chứng chỉ số thành công 113
Hình B.4 Danh sách chứng chỉ người dùng đã cài đặt 114
Hình B.5 Hiển thị thông tin chứng chỉ 114
Hình B.6 Kết quả cài đặt chứng chỉ CA 115
Hình B.7 Công cụ quản trị Apache 116
Hình B.8 Sử dụng giao thức HTTPS 117
Hình B.9 Thuộc tính bảo mật của phiên liên lạc 118
Hình B.10 Thông tin về chứng chỉ số trên Web server 118
Trang 14Hệ thống mật mã khoá công khai RSA từ khi được ba nhà khoa học Ron Rivest, Adi Shamir và Leonard Adleman phát minh đã trở thành một trong những nguyên thuỷ mật mã được sử dụng phổ biến nhất trong các ứng dụng bảo mật thông tin nói chung và các phần mềm bảo mật mạng máy tính nói riêng Cũng như tất cả các nguyên thuỷ mật mã khác, mô hình hệ mật, cấu trúc thuật toán của hệ thống mật mã RSA là công khai Tuy nhiên, việc lựa chọn và sử dụng các tham số cho hệ thống mật mã này sao cho an toàn và hiệu quả là một vấn đề khó
Việc xây dựng các tiêu chuẩn an toàn cho các tham số RSA là vấn đề được không ít các nhà khoa học trên thế giới quan tâm nghiên cứu Bởi vậy, hiện nay có khá nhiều tài liệu liên quan đến lĩnh vực này đã được công bố, trong đó có các bộ chuẩn về an ninh, an toàn và bảo mật thông tin của một số
tổ chức chuẩn có uy tín như ANSI X.31 [6], FIPS 186-3 [10], NIST 800-57 [22]
Trong những năm vừa qua, Ban Cơ yếu Chính phủ đã thực hiện một số
đề tài khoa học ([1], [2]) nghiên cứu về việc sử dụng các hệ thống mật mã
Trang 15khoá công khai nói chung và hệ thống mật mã khoá công khai RSA nói riêng trong lĩnh vực kinh tế xã hội sao cho an toàn và hiệu quả Một trong các kết quả quan trọng của các đề tài trên là đã xây dựng được hệ tiêu chuẩn an toàn cho các tham số RSA phục vụ cho việc bảo mật thông tin thuộc lĩnh vực kinh
không phải lúc nào cũng thực hiện được Xuất phát từ cơ chế “xuất khẩu” mật
mã và mong muốn đạt được sự cân bằng giữa sự hiệu quả và độ an toàn mà các thuộc tính mật mã được tích hợp trong các phần mềm nói chung thường
có giới hạn về mặt tham số (ví dụ, các ứng dụng phần mềm thực hiện dịch vụ Web chỉ chấp nhận các tham số RSA với modulus và số mũ công khai có độ lớn nhất định) Do đó, để có thể áp dụng được các tham số RSA có độ an toàn cao vào các phần mềm bảo mật thông tin nói chung và các phần mềm thực hiện việc bảo mật giao dịch Web nói riêng thì thuộc tính mật mã của chúng cần có những sửa đổi nhất định
Xuất phát từ những yêu cầu thực tế trên, luận án đã chọn đề tài "Hệ tiêu chuẩn tham số an toàn cho hệ mật RSA và ứng dụng" để nghiên cứu là
phù hợp
Mục đích nghiên cứu:
Nghiên cứu tổng quan nhằm nắm vững được những kiến thức về hệ thống mật mã khoá công khai RSA và các tiêu chuẩn an toàn cho tham số
Trang 16RSA đã được công bố trong một số chuẩn trên thế giới; đề xuất hệ tiêu chuẩn
an toàn cho các tham số RSA (trên cơ sở xem xét, bổ sung các tiêu chuẩn đã
có đồng thời xây dựng các tiêu chuẩn mới); áp dụng các tham số RSA an toàn cho các giao thức bảo mật Web
Đối tượng nghiên cứu
Luận án lựa chọn hệ thống mật mã RSA và các giao thức bảo mật Web làm đối tượng nghiên cứu
Nội dung nghiên cứu
Nghiên cứu tổng quan về hệ thống mật mã khoá công khai RSA, bao gồm:
o Cơ chế sinh tham số khoá, các lược đồ bảo mật và xác thực RSA
o Các tiêu chuẩn an toàn cho tham số RSA đã được chuẩn hoá trong một
số chuẩn về an ninh, an toàn và bảo mật thông tin trên thế giới
Nghiên cứu một số tấn công có liên quan đến tính chất của các tham số RSA từ đó xây dựng hệ tiêu chuẩn an toàn cho tham số RSA
Xây dựng và cài đặt thuật toán sinh tham số RSA an toàn thoả mãn các tiêu chuẩn đã đề xuất
Nghiên cứu về các giao thức bảo mật Web Phân tích mô đun cung cấp dịch vụ mật mã cho các phần mềm mã nguồn mở Apache Server và trình duyệt Mozilla Firefox, đề xuất sửa đổi mã nguồn cho các phần mềm này
để áp dụng các tham số RSA an toàn cho việc bảo mật và xác thực dịch vụ Web
Bố cục của luận án
Luận án gồm 03 chương cùng với các phần mở đầu, kết luận, danh mục các công trình, bài báo khoa học đã được công bố của tác giả và phần phụ lục Trong đó nội dung chính của 03 chương trong luận án có thể tóm tắt như sau:
Trang 17Chương 1: Tổng quan về tiêu chuẩn tham số RSA và các giao thức bảo mật Web
Để làm nền tảng cơ sở cho các nội dung nghiên cứu tiếp theo, chương này trình bày về hệ thống mật mã khoá công khai RSA như thuật toán sinh tham số, các lược đồ bảo mật, xác thực Một số thuật toán sinh số nguyên tố
có thể sử dụng cho qui trình sinh tham số khoá RSA Các tiêu chuẩn tham số
an toàn cho hệ thống mật mã RSA đã được công bố trong một số chuẩn về bảo mật và an ninh, an toàn thông tin Ứng dụng của hệ thống mật mã RSA trong bảo mật dịch vụ Web
Chương 2: Xây dựng hệ tiêu chuẩn tham số an toàn cho hệ thống mật mã RSA
Trên cơ sở các tiêu chuẩn đã được công bố, chương này trình bày việc xây dựng hệ các tiêu chuẩn an toàn cho tham số RSA Hệ tiêu chuẩn đề xuất gồm 10 tiêu chuẩn: trong đó có 08 tiêu chuẩn dựa trên các tiêu chuẩn đã có trên thế giới, có bổ sung và cập nhật thêm cơ sở đề xuất nhằm chính xác hoá một số tiêu chuẩn mang tính định lượng; 02 tiêu chuẩn được đề xuất, xây dựng mới
Chương 3: Sinh và tích hợp tham số RSA an toàn cho dịch vụ bảo mật Web
Xây dựng một thuật toán sinh tham số RSA an toàn thoả mãn hệ các tiêu chuẩn đã đề xuất Cùng với việc giới thiệu thuật toán chương này cũng đưa ra các kết quả của việc cài đặt thuật toán trên môi trường máy tính Đồng thời trình bày việc nghiên cứu, lựa chọn các gói phần mềm mã nguồn mở thực hiện chức năng của máy chủ Web và trình duyệt trên máy trạm, phân tích đánh giá chung về mô đun cung cấp dịch vụ mật mã cho chúng Từ đó sửa đổi, cải tiến để các phần mềm này có thể sử dụng các tham số RSA an toàn cho mục đích bảo mật dịch vụ Web
Trang 18Một số nội dung nghiên cứu mới của luận án
Đề xuất bổ sung về mặt định lượng đối với một số tiêu chuẩn đã có
Xây dựng các tiêu chuẩn mới nhằm kháng lại kiểu tấn công mã hoá liên tiếp đối với hệ thống mật mã RSA
Xây dựng, cài đặt chương trình thuật toán sinh tham số RSA an toàn và tích hợp vào bộ chương trình sinh chứng chỉ số theo chuẩn X509
Sửa đổi phần mềm trình duyệt Web để có thể áp dụng các tham số RSA
an toàn trong giao thức bảo mật giao dịch Web
Trang 19
CHƯƠNG 1
TỔNG QUAN VỀ TIÊU CHUẨN THAM SỐ RSA
VÀ CÁC GIAO THỨC BẢO MẬT WEB
Hệ thống mật mã khoá công khai RSA là một trong các hệ thống mật
mã mà độ an toàn của nó dựa trên tính khó giải của bài toán phân tích số nguyên ra các thừa số nguyên tố Do đó khi sinh cặp khóa RSA đòi hỏi các số
nguyên tố p, q phải được chọn sao cho việc phân tích modulus N là không thể
về mặt tính toán Để đạt được yêu cầu trên, trước hết chúng phải là các số nguyên tố lớn, độ lớn của chúng mang tính lịch sử, phụ thuộc vào tốc độ và
kỹ thuật tính toán được sử dụng khi thực hiện bài toán phân tích số Hơn nữa, không phải hai số nguyên tố lớn nào cũng có thể dùng để sinh RSA modulus được, các số nguyên tố này cần thoả mãn một số tiêu chuẩn nhằm chống lại
các kiểu tấn công phân tích modulus N dựa vào các tính chất của p, q
Khi đã chọn được các số nguyên tố lớn p, q rồi, thì không phải giá trị nào của e, d cứ thoả mãn qui trình sinh cặp khoá là được, chúng cũng cần
được lựa chọn theo một số tiêu chí nhất định nhằm chống lại các tấn công liên
quan Ví dụ đối với e nhỏ (hay d nhỏ) thì phép mã (hay phép ký) được thực
hiện nhanh, nhưng hệ thống mật mã dễ bị phá vỡ bởi nhiều cách như trong [9]
Trang 20 Triển khai, cài đặt thuật toán trên môi trường thực tế
Xây dựng được các ứng dụng bảo mật thông tin có thể áp dụng các tham số RSA an toàn
Để luận giải về sự cần thiết đồng thời tạo cơ sở cho việc thực hiện các nội dung cần giải quyết nêu trên, chương này của luận án sẽ trình bày một số kết quả nghiên cứu có liên quan đã được công bố
1.1 MỘT SỐ ĐỊNH NGHĨA VÀ KÝ HIỆU
Dưới đây là một số định nghĩa, ký hiệu được sử dụng trong luận án:
Các ước tầm thường (Trivial Divisor): Bất kỳ một số nguyên N nào
cũng luôn có các ước 1, -1, N và –N Các số này là các ước tầm thường của N
Số nguyên tố (Prime Number): Số nguyên N>1 là nguyên tố khi nó chỉ
có các ước tầm thường
Hợp số (Composit number): Số nguyên N>1 là hợp số nếu nó không là
nguyên tố, có nghĩa là tồn tại các ước không tầm thường của N
Chứng nhận tính nguyên tố (Primality Certificate): Chứng minh toán
học rằng một số cho trước là thực sự nguyên tố
Phép chia thử (Trial Division): Phép chia thử của một số N có nghĩa là
kiểm tra tất cả các số nguyên tố nhỏ hơn hoặc bằng N1/2 xem có phải là ước
của N không
Độ an toàn (ký hiệu secure_strength): Là một giá trị có liên quan đến
lượng công việc cần phải thực hiện (số lượng phép toán) để phá vỡ một thuật toán hoặc một hệ thống mật mã Cụ thể, một thuật toán mật mã với các tham
số cho trước được coi là có độ an toàn secure_strength nếu để phá vỡ thuật
toán này cần đến nỗ lực tính toán tối thiểu cỡ 2security_strength phép tính
1
p , p , 2 q , 1 q : Được gọi là các số nguyên tố bổ trợ 2
Trang 211.2 HỆ MẬT MÃ KHOÁ CÔNG KHAI RSA
Hệ thống mật mã RSA, được đặt tên theo các chữ cái viết tắt tên ba tác giả phát minh ra hệ thống mật mã này: Ron Rivest, Adi Shamir và Leonard Adleman, là một trong những hệ thống mật mã khóa công khai được dùng phổ biến nhất trong các ứng dụng bảo mật thông tin hiện nay Độ an toàn của
hệ thống mật mã RSA dựa trên tính khó giải của bài toán phân tích số nguyên
ra các thừa số nguyên tố
1.2.1 Qui trình sinh tham số khóa RSA
Mỗi thực thể trong hệ thống tạo một cặp khóa công khai, bí mật RSA theo các bước dưới đây:
Bước 1: Sinh ngẫu nhiên hai số nguyên tố lớn khác nhau p và q, chúng
có cùng độ dài theo bít
Bước 2: Tính N pq , ( )N lcm p( 1,q 1)
Bước 3:Chọn e thỏa mãn 1 e ( )N sao cho gcd( , ( )) 1e N
1(mod ( ))
Bước 5:Khóa công khai RSA là cặp (N, e) khóa bí mật là cặp (N, d)
(N, e, d) được gọi là bộ tham số RSA
1.2.2 Hệ mật khóa công khai RSA nguyên thủy
Hệ mật khoá công khai RSA sử dụng cặp khoá công khai, bí mật RSA
được sinh theo thuật toán sinh khoá RSA Khoá công khai (N, e) còn được gọi
là khoá mã, khoá bí mật (N, d) còn được gọi là khoá giải mã Các số nguyên e
và d được gọi là số mũ mã hóa và số mũ giải mã
Giả sử thông điệp *
N
mZ được thực thể B mã hóa và thực thể A giải mã
Thuật toán 1.1 (Thuật toán mã hóa RSA nguyên thuỷ)
Để mã hóa thông điệp *
N
mZ , thực thể B thực hiện theo thuật toán dưới
đây:
Trang 22Thuật toán 1.2 (Thuật toán giải mã RSA nguyên thuỷ)
Để giải mã bản mã c, thực thể A thực hiện theo thuật toán dưới đây:
1.2.3 Hệ chữ ký số RSA nguyên thuỷ
Hệ chữ ký RSA sử dụng cặp khoá công khai, bí mật RSA được sinh
theo thuật toán sinh khoá RSA Khoá bí mật (N, d) còn được gọi là khoá sinh chữ ký và khoá công khai (N, e) còn được gọi là khoá kiểm tra chữ ký
Thực thể A ký lên thông điệp *
N
mZ , bất kỳ một thực thể B nào đó đều
có thể kiểm tra chữ ký của A trên thông điệp m
Thuật toán 1.3 (Thuật toán sinh chữ ký số RSA nguyên thuỷ)
Trang 231.2.4 Hệ thống mật mã dựa trên RSA
1.2.4.1 Hệ mật khoá công khai RSA có định dạng
Trong sơ đồ hệ mật RSA có định dạng có thêm một tập các hàm dễ tính được hàm ngược G{ : g *N *N} được gọi là tập các hàm chuẩn bị thông báo Lược đồ mã hoá RSA được thực hiện như sau :
Thuật toán 1.5 (Thuật toán mã hoá RSA có định dạng)
Trang 24Optimal Asymmetric Encryption Padding) và một hàm hoán vị cửa sập một
chiều Trong trường hợp phép hoán vị cửa sập một chiều là hàm mã hoá RSA nguyên thuỷ thì lược đồ trên đã được chuẩn hoá trong các chuẩn PKCS#1
phiên bản 2.1 của hãng RSA ([29]) và ISO/IEC 18033-2:2006(E) của tổ chức chuẩn ISO ([17]), với tên gọi là lược đồ mã hoá RSA-OAEP Đây chính là
một dạng biến thể của sơ đồ mã hoá RSA có định dạng với hàm chuẩn bị thông báo là phép đệm OAEP
1.2.4.2 Hệ chữ ký RSA có định dạng
Trong sơ đồ chữ ký RSA có định dạng có thêm một tập các hàm dễ tính được hàm ngược G{ : g *N *N} được gọi là tập các hàm chuẩn bị thông báo Trong trường hợp này lược đồ chữ ký RSA được thực hiện như sau:
Thuật toán 1.7 (Thuật toán sinh chữ ký RSA có định dạng)
Thực thể A ký lên thông điệp *
Trang 251.2.5 Độ an toàn của hệ thống mật mã RSA
1.2.5.1 Các bài toán
Nhiều hệ thống mật mã có độ an toàn phụ thuộc vào tính khó giải của bài toán phân tích số nguyên, trong số đó có hệ thống mật mã RSA và các hệ thống mật mã dựa trên RSA
Bài toán phân tích số nguyên:
1e 2e e k
k
n p p p , với p là các i
số nguyên tố khác nhau và e 1
Trang 26Bài toán RSA
Cho hệ thống mật mã RSA với bộ tham số tương ứng (N, e, d) Trong
1.2.5.2 Mối quan hệ giữa bài toán RSA với bài toán phân tích N
Nếu modulus N được phân tích thành các nhân tử nguyên tố p, q thì có
thể tính được ( ) N và d như khi thực hiện sinh cặp khóa RSA Khi đã có được d thì bài toán RSA được giải và bởi vậy các hệ thống mật mã RSA và hệ
thống mật mã dựa trên RSA bị phá vỡ
Ngược lại nếu có thể bằng một cách nào đó tính được số mũ bí mật d, khi đó có thể phân tích modulus N theo phương pháp như sau Với
là một ước không tầm thường của N Bởi vậy, chỉ cần lặp lại việc lựa chọn
ngẫu nhiên a và tính *N gcd(a2s-1t 1,N); số lần thử trung bình các giá trị a
để có thể nhận được nhân tử của N là 2 lần thử
Như vậy bài toán tính toán số mũ bí mật RSA từ khóa công khai (N, e)
và bài toán phân tích modulus N về mặt tính toán là tương đương nhau
1.3 MỘT SỐ THUẬT TOÁN SINH SỐ NGUYÊN TỐ
Một bước rất quan trọng trong thuật toán sinh tham số RSA là sinh các
số nguyên tố p, q để tạo modulus N Các số nguyên tố p, q có thể được sinh
bởi một thuật toán sinh số nguyên tố xác suất hoặc một thuật toán sinh số
Trang 27nguyên tố tất định Trong phần này sẽ giới thiệu lại một số thuật toán sinh số nguyên tố đã được đưa ra trong [18]
Trước hết xét một phương pháp chứng minh tính nguyên tố của một số
nguyên N sử dụng phép chia thử Phương pháp này được thực hiện như sau:
Bước 1: Với tất cả các số nguyên tố p ≤ N 1/2
Nếu N mod p = 0 thì kết luận N là hợp số, kết thúc
Bước 2: Kết luận N là nguyên tố, kết thúc
Với các số nguyên nhỏ, phương pháp chia thử mất ít thời gian tính toán hơn các phương pháp kiểm tra khác Các cài đặt cho việc kiểm tra tính
nguyên tố trong tài liệu này có thể định nghĩa một cận cho phép chia thử, L,
dưới giá trị này phép chia thử được sử dụng để kiểm tra tính nguyên tố của
các số nguyên (có thể lấy L = 232)
1.3.1 Một số phép kiểm tra tính nguyên tố xác suất
Một phương pháp kiểm tra tính nguyên tố xác suất lấy một số nguyên
dương lẻ N làm đầu vào và trả về “chấp nhận” hoặc “không chấp nhận” Nếu
N là hợp số, các phép kiểm tra trong trường hợp này cho đầu ra là “không chấp nhận”, với xác suất sai phụ thuộc vào phép kiểm tra được dùng
Để giảm thiểu xác suất sai, người ta thường thực hiện nhiều vòng lặp với cùng một đầu vào
1.3.1.1 Phép kiểm tra tính nguyên tố Miller-Rabin
Với đầu vào một số nguyên N, phép kiểm tra Miller-Rabin bắt đầu với
bước khởi tạo như sau:
Xác định các số nguyên dương t và s thoả mãn N – 1 = 2 t s với s lẻ
Tiếp theo phép kiểm tra Miller-Rabin thực hiện với một hoặc nhiều các
vòng lặp của thuật toán dưới đây, với đầu vào là t, s và N và đầu ra là “chấp
nhận” hoặc “không chấp nhận” Với mỗi vòng lặp các cơ sở b được chọn
khác nhau, 1 < b < N – 1
Trang 28Thuật toán 1.9 (Thuật toán kiểm tra tính nguyên tố của Miller-Rabin)
Bước 1: Chọn ngẫu nhiên một số nguyên b thoả mãn 1 < b < N – 1
1.3.1.2 Phép kiểm tra tính nguyên tố Frobenius-Grantham
Phép kiểm tra này sử dụng số học trên vành N[ ]/( ( ))x f x , với f(x) là
một đa thức bậc 2 Phép kiểm tra được thực hiện như sau
Đầu vào là một số nguyên lẻ N, phép kiểm tra tính nguyên tố
Frobenius-Grantham bắt đầu với các bước khởi tạo dưới đây:
Bước 1: Kiểm tra N đối với việc chia hết cho các số nguyên tố nhỏ hơn hoặc bằng min{50000, N1/2}
Bước 2: Kiểm tra N có phải là bình phương của một số nguyên Nếu đúng, không chấp nhận N và dừng
Bước 3: Xác định các số nguyên dương r và s thỏa mãn 2 r s = N2 – 1
Tiếp theo, phép kiểm tra thực hiện với một hoặc nhiều các vòng lặp của
thuật toán dưới đây, với đầu vào là r, s, N và đầu ra là “chấp nhận” hoặc
Trang 29“không chấp nhận” Với mỗi vòng lặp các giá trị khác nhau của b và c phải
được chọn
Thuật toán 1.10 (Thuật toán kiểm tra tính nguyên tố Frobenius-Grantham)
Bước 1:Chọn ngẫu nhiên b, c cho đến khi một trong các điều N
Trường hợp thứ nhất xảy ra, thì “không chấp nhận” N và dừng
Kiểm tra bậc của đa thức x (N+1)/2 mod (N, x2 – bx – c) bằng 0 trong N
Nếu không thì “không chấp nhận” N và dừng
Bước 2: Kiểm tra x N+1 mod (N, x2 – bx – c) = -c Nếu không thì “không
chấp nhận” N và dừng
Bước 3: Kiểm tra hoặc x s mod (N, x2 – bx – c) = 1 hoặc tồn tại j (0 j
r -2) thỏa mãn x2j smod ( ,N x2bxc) Nếu không, thì “không 1
chấp nhận” N và dừng, ngược lại “chấp nhận” N
1.3.2 Các phương pháp sinh số nguyên tố
1.3.2.1 Sử dụng các phép kiểm tra tính nguyên tố xác suất
Cho T là một phép kiểm tra tính nguyên tố xác suất nào đó Xác suất sai
của thuật toán phụ thuộc vào số lần thực hiện các phép kiểm tra
Phương pháp lựa chọn ngẫu nhiên các ứng cử viên
Giả sử phép kiểm tra tính nguyên tố xác suất T được chọn để sinh các
số nguyên tố p có độ dài là k bít, khi đó thuật toán được thực hiện như sau:
Thuật toán 1.11 (Thuật toán lựa chọn ngẫu nhiên các ứng cử viên)
Bước 1: Chọn ngẫu nhiên một số nguyên lẻ p sao cho 2 k-1 < p < 2 k
Trang 30Bước 2: Nếu p qua được phép kiểm tra T thì dừng Còn không quay lại
bước 1
Chú ý:
Để ước lượng xác suất thuật toán này cho đầu ra là một hợp số, cần
phải phân tích phép kiểm tra T xử lý như thế nào với các đầu vào được
lựa chọn ngẫu nhiên Xác suất này có thể không như xác suất cực đại
mà phép thử T chấp nhận hợp số
Thuật toán được đảm bảo cho đầu ra các số nguyên tố được lựa chọn
đồng đều k bít và bởi vậy thoả mãn yêu cầu chung về phân bố đầu ra
Phương pháp tìm kiếm tăng dần
Cho là tham số giới hạn số lượng tăng dần khi thực hiện tìm kiếm
một số nguyên tố p có độ dài k bít sử dụng phép kiểm tra tính nguyên tố T
Thủ tục dựa trên một cách khác trong việc lựa chọn các ứng cử viên nguyên
tố và có những thuận lợi nhất định trong thực hành so với phương pháp lựa chọn ngẫu nhiên các ứng cử viên
Thuật toán 1.12 (Thuật toán tìm kiếm tăng dần)
Bước 1: Chọn ngẫu nhiên số lẻ n 0 sao cho 2 k-1 < n 0 < 2 k Lấy p = n 0 và
p max = min(2 k , n 0 + 2) Thực hiện thủ tục dưới đây:
Bước 2: Nếu p qua được phép kiểm tra T, cho đầu ra là p và dừng Bước 3: Lấy p = p + 2 Nếu p > p max quay lại bước 1, ngược lại quay
Trang 31cử viên Các định lượng sẽ không đồng nhất, chúng phụ thuộc vào việc
chọn T và Có một gợi ý rằng sử dụng tham số = 10ln(2 k) Kết quả này cho xác suất cao trong việc tìm thấy một số nguyên tố trong khoảng đầu tiên
Thuật toán này không lựa chọn các số nguyên tố với phân bố đồng đều
một cách chính xác trong các số k bít Điều này xuất phát từ thực tế, các
số nguyên tố không phân bố một cách bình thường; xác suất để chọn được một số số nguyên tố sẽ lớn hơn đối với một số số nguyên tố khác Tuy nhiên, phân bố đầu ra hầu như là đồng đều đối với tham số được chọn một cách thích hợp
1.3.2.2 Các thuật toán sinh số nguyên tố tất định
Trong phần này sẽ giới thiệu hai thuật toán sinh số nguyên tố tất định được đưa ra trong [18]: thuật toán sinh số nguyên tố của Shawe-Taylor và thuật toán sinh số nguyên tố của Maurer
Thuật toán của Shawe-Taylor
Thuật toán của Shawe-Taylor sinh một số nguyên tố ngẫu nhiên từ một
điểm bắt đầu Thuật toán lấy đầu vào là số nguyên k, độ dài theo bít của số nguyên tố cần sinh Thuật toán trả về một số p Thuật toán sử dụng duy nhất một tham số: L, giới hạn sử dụng phép chia thử để kiểm tra sơ bộ về tính nguyên tố
Thuật toán thực hiện như sau:
Thuật toán 1.13 (Thuật toán sinh số nguyên tố của Shawe-Taylor)
Bước 1: Nếu 2 k < L thì sinh ngẫu nhiên một số nguyên lẻ k bít, p, và kiểm tra tính nguyên tố bằng cách chia thử Lặp lại cho đến khi p là một số nguyên tố Cho đầu ra p và dừng
Trang 32Bước 2: Nếu k lẻ, lấy k 1 = (k + 3)/2 Nếu k chẵn lấy k 1 = k/2 + 1 Gọi
đệ qui thuật toán này với đầu vào là k 1 , để tìm một số nguyên tố q có độ dài k 1 bít
Bước 3: Chọn ngẫu nhiên số nguyên x, 2 k-1 x < 2 k
Bước 4: Lấy t là số nguyên nhỏ nhất lớn hơn x/(2q)
Bước 5: Nếu 2tq + 1 2k, thì lấy t là số nguyên nhỏ nhất lớn hơn (2k – 1)/(2q)
Bước 6: Lấy p = 2qt + 1
Bước 7: Lựa chọn ngẫu nhiên một số nguyên a sao cho 1 < a < p – 1
và lấy x = a 2t mod p Nếu:
x 1
gcd(x – 1, p) = 1
x q 1 mod p
thì cho đầu ra là p Bước 8: Ngược lại lấy t = t + 1 và lặp lại các bước từ 5 đến 8
Thuật toán sinh số nguyên tố của Maurer
Cũng như thuật toán sinh số nguyên tố của Shawe-Taylor, thuật toán của Maurer dựa trên một thực tế như sau:
Cho p = 1 + 2Rq, với q là một số nguyên tố lẻ và q > R Nếu tồn tại một số nguyên a thỏa mãn a p11(mod )p và gcd(a 2R -1, p) = 1 thì p là nguyên tố
Thuật toán của Maurer sinh ra một số nguyên tố ngẫu nhiên p từ một điểm xuất phát cùng với một chứng nhận về tính nguyên tố của số p
Một chứng nhận tính nguyên tố chứa đựng thông tin có thể kiểm tra hiệu quả rằng một số cho trước có phải là nguyên tố không Đối với các số
Trang 33nhỏ (nhỏ hơn hoặc bằng một giới hạn L cho trước nào đó) việc kiểm tra tính nguyên tố hiệu quả nhất là thông qua phép chia thử C0 được ký hiệu là chứng
nhận tính nguyên tố rỗng Trong trường hợp ngược lại, đối với các số p lớn hơn L, chứng nhận nguyên tố của chúng được ký hiệu là C(p)
Chứng nhận về tính nguyên tố của một số nguyên p L có cấu trúc như
Nếu p > L thì C(p) = “Proof(p), C(q)” với Proof(p) = (p, q, a)
Thuật toán sinh số nguyên tố của Maurer lấy đầu vào là một số nguyên
k là độ dài theo bít của số nguyên tố cần sinh Thuật toán trả về một số p, và
một chứng nhận tính nguyên tố của nó, C(p) Thuật toán sử dụng hai tham số:
Trang 34Thuật toán 1.14 (Thuật toán sinh số nguyên tố của Maurer)
Bước 1: Nếu 2 k < L thì sinh ngẫu nhiên một số nguyên lẻ k bít, p, và kiểm tra tính nguyên tố bằng cách chia thử Lặp lại cho đến khi p là một số nguyên tố Cho đầu ra p và chứng nhận C 0 (p)
Bước 2: Nếu k 2M, lấy r = 1/2 Ngược lại, thực hiện lặp lại điều dưới đây cho đến khi k - rk > M
Lựa chọn ngẫu nhiên một số thực s, 0 s 1, và lấy r = 2 s-1 Bước 3: Lấy k 1 = rk + 1 Gọi đệ qui thuật toán này với đầu vào là k 1 , để xác định một số nguyên tố k 1 bít q và một chứng nhận C(q)
thì cho đầu ra p và chứng nhận (p, q, a), C(q)
Bước 7: Ngược lại, lặp lại các bước từ 5 đến 7
Trang 35ra một phép kiểm tra tính nguyên tố xác suất của Lehmann, xác suất chấp nhận nhầm hợp số của ba phép kiểm tra có thể được tổng hợp như
bảng 1.1 (với số vòng thực hiện là t):
Bảng 1.1 Xác suất sai của các phép kiểm tra tính nguyên tố
Miller-Rabin Frobenius-Grantham Lehmann
Hai thuật toán sinh số nguyên tố tất định thì chỉ có thuật toán sinh số nguyên tố của Maurer là cho chúng ta các bằng chứng về tính nguyên
tố trong quá trình sinh Hơn nữa các bằng chứng này có thể được sử dụng cho một trong hai phép kiểm tra chứng nhận tính nguyên tố đã được đề xuất trong chuẩn [18]
Thuật toán sinh số nguyên tố của Shawe-Taylor rất khó để điều khiển tính chất của các số nguyên tố được sinh ra (phương pháp nhân đôi độ dài, độ dài ước nguyên tố lớn nhất của các ứng cử viên luôn bằng ½) Trong khi đó, thuật toán của Maurer cho phép sinh ra các số nguyên tố
mà độ dài ước nguyên tố lớn nhất được chọn ngẫu nhiên trong khoảng (0.5, 1) của độ dài các ứng cử viên Vì thế các số nguyên tố sinh theo thuật toán của Maurer có tính đa dạng hơn nhiều so với Shawe-Taylor
Trang 361.4 TIÊU CHUẨN THAM SỐ CHO RSA
Trong phần này luận án sẽ tóm lược lại các tiêu chuẩn tham số RSA được đưa ra trong các chuẩn ANSI X.31 [6], FIPS 186-3 [10], NIST 800-57 [22]
1.4.1 Tiêu chuẩn tham số RSA được đưa ra trong ANSI X9.31
Chuẩn X9.31 do Viện Chuẩn Quốc gia Mỹ (ANSI) phê chuẩn ngày 9 tháng 9 năm 1998 mô tả lược đồ chữ ký số RSA dùng trong lĩnh vực Công nghiệp Dịch vụ Tài chính Trong chuẩn có hướng dẫn người sử dụng thực hiện lược đồ này thông qua các thuật toán chi tiết trong nội dung chính, đồng thời có một số đảm bảo về tính pháp lý thông qua các khẳng định sự an toàn của lược đồ và việc lựa chọn tiêu chuẩn cho các tham số được trình bày trong các phụ lục Về tiêu chuẩn tham số RSA được đưa ra trong chuẩn gồm có:
Tiêu chuẩn về độ dài modulus
1 Trong chuẩn X9.31 không đề xuất cụ thể về độ dài modulus tối thiểu được dùng đến một năm nào đó, mà chỉ đưa ra độ phức tạp tính toán, dung lượng lưu trữ khi sử dụng thuật toán sàng trường số để phân tích một số modulus có độ dài cho trước
2 Chuẩn X9.31 khuyến cáo sử dụng modulus có độ dài 1024+256s, với s
là số nguyên và s0
Các tiêu chuẩn về các số nguyên tố p, q
X9.31 đề xuất một số tiêu chuẩn cho các số nguyên tố p và q như sau:
1 gcd(p-1, e) = 1 và gcd(q-1, e) = 1
2 Kích thước p và q bằng nhau và là các số 512+128s bit
3 Các số p1 và q1 có các nhân tử nguyên tố lớn hơn 2100 và không quá
2120 Tính nguyên tố của các ước nguyên tố của p1 và q1 nêu trên
được đảm bảo tối thiểu qua 27 kiểm tra của Miller-Rabin [5, tr 138]
Trang 374 Số nguyên tố p là số nguyên tố đầu tiên lớn hơn số ngẫu nhiên X p, với
511 128 512 128
22 s X p 2 s ; Số nguyên tố q là số nguyên tố đầu 1
tiên lớn hơn số ngẫu nhiên X q, với 22511 128 s X q 2512 128 s 1
5 Các số X p và X q được lựa chọn một cách ngẫu nhiên hoặc được sinh bởi thuật toán sinh số giả ngẫu nhiên được đưa ra trong chuẩn ANSI X9
6 Tính nguyên tố của p và q được đảm bảo tối thiểu qua 8 phép kiểm tra
của Miller-Rabin và một phép kiểm tra của Lucas [26, tr 142]
7 | pq| 2 412 128 s
Tiêu chuẩn tham số cho e và d
1 e là số nguyên dương thoả mãn 2 e 2nlen160
2 d được tính bởi công thức d=e-1 (mod lcm(p-1, q-1)) và thoả mãn
512 128
1.4.2 Tiêu chuẩn tham số RSA được đưa ra trong FIPS 186-3
Trong [10, tr 50] đã đề xuất các tiêu chuẩn cho tham số của các lược đồ mật mã dựa trên bài toán phân tích số (IFC - Integer Factorization Cryptography), điển hình là các lược đồ dựa trên hệ mật RSA Dưới đây là các tiêu chuẩn đã được đề xuất:
Độ dài tối thiểu của RSA modulus
Về độ dài tối thiểu của RSA modulus được [10] tham chiếu đến [22], trong tài liệu này đưa ra tiêu chuẩn về độ dài tối thiểu của RSA modulus như bảng 1.2:
Bảng 1.2: Tiêu chuẩn độ dài RSA modulus tối thiểu
Thời gian sống an toàn của thuật toán Độ dài tối thiểu modulus
Trang 38Tiêu chuẩn cho các tham số p và q
1 Tiêu chuẩn cho các ước nguyên tố của p1 và q1
Độ dài tối thiểu đối với mỗi số nguyên tố bổ trợ p1, p2, q1 và q2 phụ
thuộc vào nlen Tổng độ dài tối đa của mỗi cặp nguyên tố bổ trợ cũng phụ thuộc vào nlen và chúng là các số nguyên tố chứng minh được hay
Để sinh các số nguyên tố p1, p2, q1, q2, p và q có thể lựa chọn một trong
các phương pháp dưới đây:
Các số nguyên tố p1, p2, q1, q2, p và q là các số nguyên tố chứng minh
được
Các số nguyên tố p1, p2, q1, q2, là các số nguyên tố chứng minh được,
và p và q là các số nguyên tố xác suất, hoặc
Các số nguyên tố p1, p2, q1, q2, p và q là các số nguyên tố xác suất
Với các giá trị khác nhau của nlen, các phương pháp được phép sử dụng để sinh p và q được xác định trong bảng 1.4
Trang 39Bản 1.4: Phương pháp sinh số nguyên tố được phép dùng
nlen Các số nguyên tố ngẫu nhiên Các số nguyên tố với các
điều kiện
3 (p-1) và (q-1) là nguyên tố cùng nhau với e
4 Phần tử nguyên tố bí mật p nên được chọn ngẫu nhiên từ các số nguyên
tố thoả mãn: ( 2 )(2(nlen/ 2) 1 ) p(2nlen/ 2 1), với nlen là độ dài tương ứng đối với security_strength mong muốn
5 Phần tử nguyên tố bí mật q nên được chọn ngẫu nhiên từ các số nguyên
tố thoả mãn: ( 2 )(2(nlen/ 2) 1 )q(2nlen/ 2 1), với nlen là độ dài tương ứng đối với security_strength mong muốn
6 |p-q| > 2 (nlen/2)-100
Tiêu chuẩn cho số mũ công khai e
1 Số mũ công khai e nên được chọn trước khi sinh p, q
2 Số mũ e là số nguyên lẻ thoả mãn: 216 < e < 2256
Tiêu chuẩn cho số mũ bí mật d
Số mũ bí mật d được chọn thoả mãn các ràng buộc dưới đây, sau khi đã sinh p và q:
1 Số mũ d là giá trị nguyên dương thoả mãn d > 2 nlen/2, và
Trang 401.4.3 Một số nhận xét
Mặc dù đảm bảo toán học cho tính an toàn của các tiêu chuẩn được đề xuất trong các chuẩn vừa nêu trên đã được trích dẫn từ những công trình của các nhà khoa học trên thế giới về lĩnh vực mật mã, tuy nhiên chưa thực sự đầy
đủ Thứ nhất trong 03 bộ chuẩn mà đã giới thiệu chỉ bộ chuẩn ANSI X9.31 đề cập đến vấn đề này còn hai bộ chuẩn NIST 800-57 và FIPS 186-2 không hề
đề cập đến cơ sở toán học của việc đưa ra hệ tiêu chuẩn Thứ hai, đối với cơ
sở cho việc đề xuất các tiêu chuẩn đã được trích dẫn trong ANSI X9.31 thì về mặt thời gian và công nghệ hiện tại đã có nhiều thay đổi Do vậy nghiên cứu chi tiết về cơ sở lý thuyết và từ đó đưa ra những đề xuất chính xác hơn về mặt định lượng cho từng tiêu chuẩn là rất cần thiết
1.5 HỆ THỐNG MẬT MÃ RSA VÀ CÁC GIAO THỨC BẢO MẬT WEB
Hệ thống mật mã RSA (hệ mật RSA và hệ chữ ký RSA) hiện là một trong các hệ thống mật mã khoá công khai được sử dụng phổ biến nhất trong các ứng dụng bảo mật thông tin nói chung và các ứng dụng bảo mật thông tin trên mạng máy tính nói riêng như bảo mật thư tín điện tử (email), bảo mật Web, xác thực người sử dụng khi đăng nhập hệ thống (máy tính, mạng), Đối với việc bảo mật Web, hệ thống mật mã RSA được ứng dụng trong các giao thức bảo mật SSL/TLS được tích hợp trong các ứng dụng này (trình duyệt và Web server)
1.5.1 Giới thiệu về giao thức bảo mật SSL/TLS
SSL là một giao thức có thể được đặt ở giữa giao thức tầng mạng kết nối định hướng tin tưởng (TCP/IP) và tầng giao thức ứng dụng (FTP, HTTP, telnet ) SSL cung cấp dịch vụ truyền thông có bảo mật giữa client và server