Tải bản đầy đủ (.pdf) (131 trang)

Luận án tiến sĩ toán học: HỆ TIÊU CHUẨN THAM SỐ AN TOÀN CHO HỆ MẬT RSA VÀ ỨNG DỤNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 131 trang )


BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ









Hoàng Văn Thức





HỆ TIÊU CHUẨN THAM SỐ AN TOÀN
CHO HỆ MẬT RSA VÀ ỨNG DỤNG







LUẬN ÁN TIẾN SĨ TOÁN HỌC










Hà Nội - 2011

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ








Hoàng Văn Thức




HỆ TIÊU CHUẨN THAM SỐ AN TOÀN
CHO HỆ MẬT RSA VÀ ỨNG DỤNG

Chuyên ngành : Bảo đảm toán học cho máy tính và hệ
thống tính toán.

Mã số : 62 46 35 01



LUẬ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

i

LỜ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


ii

LỜ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ả

iii


MỤ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


iv

1.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


v

3.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






vi


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Các ký hiệu
d: Số mũ bí mật RSA.
e: Số mũ công khai RSA.
p

: Trường các số nguyên với phép cộng và phép nhân được rút gọn
theo modulo p.
*
p

: 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.
O(B): Vô cùng lớn cỡ B, x = O(B) tồn tại một hằng số dương c sao cho
x cB

.
N
ord a
: Bậc của phần tử a trong nhóm nhân
*
N


.

: Tập các số tự nhiên.
N: RSA modulus.
nlen: Độ dài RSA modulus tính theo bít.
0
n
: Độ dài
0
p
tính theo bít.
1
n
: Độ dài
1
p
tính theo bít.
2
n
: Độ dài
2
p
tính theo bít.
3
n
: Độ dài
1
q
tính theo bít.

4
n
: Độ dài
2
q
tính theo bít.
5
n
: Độ dài
11
p
tính theo bít.
6
n
: Độ dài
11
q
tính theo bít.
p, q: Các số nguyên tố.
0
p
: Ước nguyên tố lớn nhất của |p - q|.
1
p
: Ước nguyên tố lớn nhất của p - 1.

vii

2
p

: Ước nguyên tố lớn nhất của p + 1.
11
p
: Ước nguyên tố lớn nhất của
1
1
p

.
1
q
: Ước nguyên tố lớn nhất của q - 1.
2
q
: Ước nguyên tố lớn nhất của q + 1.
11
q
: Ước nguyên tố lớn nhất của
1
1
q

.
plen: Độ dài số nguyên tố p tính theo bít.
qlen: Độ dài số nguyên tố q tính theo bít.
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.
x

 
 
: số nguyên m nhỏ nhất sao cho
m x

.
x
 
 
: số nguyên m lớn nhất sao cho
m x

.

: Tập các số nguyên.
N

: Vành số nguyên với phép cộng và phép nhân rút gọn theo
modulo N.
*
N

: Nhóm nhân cực đại của vành
N

.
( )
N

: Bậc (order) lớn nhất của các phần tử trong nhóm

*
N

.
( )
N

: Số các số nguyên
0
a N
 
thỏa mãn
gcd( , ) 1
a N

.
Các chữ viết tắt
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.

viii

ECDSA (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
Internet.
IFC (Integer Factorization Cryptography): Mật mã dựa trên bài toán phân
tích số nguyên.
IIS (Internet Information Server): Tên một phần mềm Web server của hãng
Microsoft.
ISO/IEC (Internatinal Organization for Standardization/International
Electrotechnical Comission): Tổ chức ban hành chuẩn quốc tế/Uỷ ban điện tử
quốc 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.

ix

OAEP (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.









x

DANH 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ố p
1
, p
2
, q
1

và q
2
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 p
11
, q
11


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




xi

DANH 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



1

MỞ ĐẦU

Với sự phát triển mạnh mẽ trong những năm gần đây, các sản phẩm
công nghệ thông tin đã và đang có mặt ở hầu hết các lĩnh vực trong đời sống
xã hội từ việc đơn giản như soạn thảo một văn bản, trao đổi, lưu trữ, xử lý
thông tin cá nhân, cho đến việc quản lý và điều hành một đất nước. Bên
cạnh những lợi ích to lớn mà công nghệ thông tin đem lại thì việc bảo đảm an
ninh, an toàn và bảo mật cho các ứng dụng này đang là yêu cầu cấp thiết được
đặt ra hiện nay. Trong đó, kỹ thuật mật mã được biết đến như là một công cụ
hữu hiệu trong việc đảm bảo tính bí mật, xác thực và toàn vẹn dữ liệu khi
chúng được lưu trữ, xử lý và trao đổi qua các ứng dụng công nghệ thông tin.
Hệ 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ã

2

khoá 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
tế xã hội [3].
Tuy nhiên, cùng với sự phát triển của khoa học lập mã thì khoa học mã
thám cũng không ngừng phát triển với nhiều hình thức tấn công mới đối với
hệ thống mật mã RSA. Việc xem xét lại các tiêu chuẩn an toàn đã có và
nghiên cứu, xây dựng thêm các tiêu chuẩn an toàn mới cho các tham số RSA
là rất cần thiết.
Khi đã lựa chọn được các tham số RSA thoả mãn các tiêu chuẩn an
toàn rồi thì việc sử dụng chúng trong các ứng dụng bảo mật thông tin có sẵn
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ố

3

RSA đã đượ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:



4

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
Để 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.


5

Mộ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.


6

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]
đã chỉ ra.
Tóm lại để sử dụng hệ thống mật mã khoá công khai RSA sao cho an
toàn cần quan tâm đến nhiều yếu tố, đây cũng chính là các nội dung mà luận
án cần giải quyết:
 Xây dựng được hệ tiêu chuẩn an toàn cho các tham số RSA nhằm
kháng lại các tấn công có liên quan.
 Xây dựng được thuật toán sinh các tham số một cách hiệu quả, thoả
mãn hệ tiêu chuẩn an toàn.

7

 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 N
1/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ỡ 2
security_strength
phép tính.
1
p
,
2
p
,
1
q

,
2
q
: Được gọi là các số nguyên tố bổ trợ.


8

1.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

,
( ) ( 1, 1)
N lcm p q

  

Bước 3:Chọn e thỏa mãn

1 ( )
e N

 
sao cho
gcd( , ( )) 1
e N



Bước 4:Tính số nguyên dương d thỏa mãn:
1 ( )
d N

 

1(mod ( ))
ed N



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
m Z

đượ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
m Z
 , thực thể B thực hiện theo thuật toán dưới
đây:

9

Đầu vào:
Khóa công khai (N, e) của A, bản rõ
*
N
m Z


Đầu ra:
Bản mã c
Thực thi:
Tính
(mod )
e
c m N

.

Thuậ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:
Đầu vào:
Khóa bí mật (N, d) của A, bản mã
*
N
c Z


Đầu ra:
Bản rõ m
Thực thi:
Tính
(mod )
d
m c N
 .
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
m Z
 , 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ỷ)
Đầu vào:

Khóa bí mật (N, d) của A, thông điệp
*
N
m Z


Đầu ra:
Chữ ký s của A trên thông điệp m

10
Thực thi:
Tính
(mod )
d
s m N

.
Thuật toán 1.4 (Thuật toán kiểm tra chữ ký RSA nguyên thuỷ)
Đầu vào:
Khóa công khai (N, e) của A, chữ ký s của A trên thông điệp
*
N
m Z


Đầu ra:
Chữ ký s "hợp lệ" hoặc "không hợp lệ"
Thực thi:
Tính
' (mod )

e
m s N
 , trả về chữ ký "hợp lệ" khi m' = m, ngược lại trả
về chữ ký "không hợp lệ".
1.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
* *
{ : }
N N
G g 
 
đượ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)
Đầu vào:
Khóa công khai (N, e) của A, bản rõ
*
N
m Z

, g  G
Đầu ra:
Bản mã c
Thực thi:
Bước 1:
( )
x g m


;
Bước 2:
(mod )
e
c x N
 .
Thuật toán 1.6 (Thuật toán giải mã RSA có định dạng)
Đầu vào:
Khóa bí mật (N, d) của A, bản mã
*
N
c Z

, g  G

11
Đầu ra:
Bản rõ m
Thực thi:
Bước 1:
(mod )
d
x c N


Bước 2:
1
( )
m g x


 .
Bellare và Rogaway [20] đã đề xuất ra một lược đồ mã hoá khoá công
khai với sự kết hợp giữa phép đệm mã hoá phi đối xứng tối ưu (OAEP-
Optimal 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
* *
{ : }
N N
G g 
 
đượ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
*
N
m Z
 , 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.
Đầu vào:
Khóa bí mật (N, d) của A, thông điệp

*
N
m Z

, gG.
Đầu ra:
Chữ ký s của A trên thông điệp m

12
Thực thi:
Bước 1:
( )
x g m


Bước 2:
(mod )
d
s x N
 .
Thuật toán 1.8 (Thuật toán kiểm tra chữ ký RSA có định dạng)
Đầu vào:
Khóa công khai (N, e) của A, chữ ký s của A trên thông điệp
*
N
m Z

,
gG.
Đầu ra:

Chữ ký s "hợp lệ" hoặc "không hợp lệ"
Thực thi:
Bước 1: 1
(mod )
e
x s N

Bước 2:
1
' ( )
m g x

 ; trả về chữ ký "hợp lệ" khi m' = m, ngược lại trả về
chữ ký "không hợp lệ".
Tương tự như sơ đồ mã hoá RSA có định dạng, một dạng biến thể của
lược đồ chữ ký RSA có định dạng cũng đã được chuẩn hoá trong chuẩn
PKCS#1 phiên bản 2.1 ([29]) với tên gọi RSA-PSS. Đây chính là sự kết hợp
giữa hàm chuẩn bị thông báo được đề xuất bởi Bellare và Rogaway trong
[21], và sơ đồ mã hoá RSA nguyên thuỷ.
1.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:
Cho số nguyên
n


, hãy tìm biểu diễn

1 2
1 2

k
e
e e
k
n p p p
 , với
i
p
là các
số nguyên tố khác nhau và
1
i
e

.

×