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

Các tính chất đại số của hệ mã công khai RSA và khả năng mở rộ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.1 MB, 91 trang )

ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
TRẦN ĐÌNH LONG

CÁC TÍNH CHẤT ĐẠI SỐ
CỦA HỆ MÃ CÔNG KHAI RSA
VÀ KHẢ NẰNG MỞ RỘNG

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số chuyên ngành: 62 48 01 01

Phản biện 1: PGS.TS. Trần Văn Hạo
Phản biện 2: PGS.TS. Đỗ Văn Nhơn
Phản biện 3: PGS.TS. Dương Anh Đức
Phản biện độc lập 1: PGS.TS. Nguyễn Đức Nghĩa
Phản biện độc lập 2: TS. Trần Nam Dũng

NGƯỜI HƯỚNG DẪN KHOA HỌC
1. PGS.TS. Trần Đan Thư
2. PGS.TS. Nguyễn Đình Thúc

Tp. Hồ Chí Minh – 2015


LỜI CÁM ƠN
Kính dâng lên Ba Mẹ, người đã
Thương tặng Châu, Ômai và Alpha,
sinh thành và nuôi dưỡng để con những người đã chia sẻ mọi khó
có ngày hôm nay.
khăn, là chỗ dựa vững chắc về tinh
thần và vật chất trong suốt cả cuộc


đời.
Không thể nói hết bằng lời lòng biết ơn sâu sắc của tác giả đến các thầy
hướng dẫn PGS.TS. Trần Đan Thư và PGS.TS. Nguyễn Đình Thúc. Các thầy đã
hướng dẫn và động viên tác giả vượt qua những khó khăn để có được kết quả này.
Tác giả đã học được nhiều điều quí giá từ các thầy trong nghiên cứu khoa học và
ứng xử đời thường. Kính xin ghi nhận tất cả những đặc ân đó của Quý Thầy.
Tác giả xin cám ơn Khoa Công nghệ Thông tin trường Đại học Khoa Học Tự
Nhiên thành phố Hồ Chí Minh, Trường Đại học Khoa học Huế đã giúp đỡ và tạo
điều kiện thuận lợi cho tác giả trong suốt thời gian học tập và nghiên cứu. Tác giả
xin cám ơn PGS.TS Tôn Thất Trí đã có nhiều ý kiến đóng góp quý báu để tác giả
hoàn thiện luận án.
Tác giả xin chân thành cám ơn sự giúp đỡ về mặt chuyên môn cũng như tình
cảm chân thành, những lời động viên quý báu của các đồng nghiệp thuộc Khoa
Toán trường Đại học Khoa Học Huế.
Tác giả xin cám ơn chị Vân, các cháu Simpa, Lucky và Morris đã tạo điều
kiện cho tác giả có chỗ ở ổn định ở thành phố ngay từ những ngày đầu khó khăn
làm nghiên cứu sinh.
Xin cám ơn tất cả mọi người đã hỗ trợ cho tác giả hoàn thành luận án này!


LỜI CAM ĐOAN
Tác giả xin khẳng định tất cả các kết quả được trình bày trong luận án này là
kết quả nghiên cứu riêng của tác giả dưới sự hướng dẫn của PGS.TS. Trần Đan Thư
và PGS.TS. Nguyễn Đình Thúc, không sao chép từ bất kỳ một công trình nào khác.
Nếu có điều gì không trung thực, tác giả xin chịu hoàn toàn trách nhiệm.
Tác giả

Trần Đình Long



MỤC LỤC
Bảng thuật ngữ Anh-Việt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

M

...................................................

2

Chương 1 Tổng quan về RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.1 Hệ mã RSA gốc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.1.1 Mô tả hệ mã. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.1.2 Nhận xét về hệ mã. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.2 RSA trên vành

.........................................


1.3 Các biến thể của RSA trên các cấu trúc khác

9

.................

10

1.3.1 Hệ mã RSA trên vành các ma trận. . . . . . . . . . . . . . . . . . . . . .

10

1.2.2 Hệ mã RSA trên nhóm đường cong elliptic. . . . . . . . . . . . . . . 11
1.3.3 Hệ mã hóa RSA trên vành thương các đa thức. . . . . . . . . . . .

13

1.3.4 Hệ mã hóa RSA trên vành thương các số nguyên Gauss. . . .

14

1.3.5 Nhận xét về các biến thể của RSA. . . . . . . . . . . . . . . . . . . . .

15

1.4 Thiết lập sơ đồ cho RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17


1.5 Thám mã RSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.1 Thám mã RSA có khóa riêng nhỏ . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.1.1 Thám mã RSA bằng liên phân số . . . . . . . . . . . . . . . . 17
1.5.1.2 Thám mã RSA bằng cách tìm nghiệm gần đúng
có nghịch đảo nhỏ . . . . .

21

1.5.1.3 Thám mã RSA bằng dàn hai chiều . . . . . . . . . . . . . .

24

1.5.2 Thám mã RSA có khóa chung nhỏ . . . . . . . . . . . . . . . . . . . . . . 24
1.5.2.1 Thám mã khi biết một phần văn bản . . . . . . . . . . . . . . 25
1.5.2.2 Thám mã qua các văn bản có liên quan . . . . . . . . . . . . 25


1.5.2.3 Rò rĩ thông tin từ khóa chung nhỏ . . . . . . . . . . . . . . . 25
1.5.3 Phân tích modulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

1.6 Nhận xét về Chương 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chương 2 Xây dựng sơ ồ cho RSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

2.1 RSA trên vành thương của vành Euclid. . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Sơ đồ RSA trên vành thương của vành Euclid. . . . . . . . . . . . 31
2.1.2 So sánh với các hệ mã RSA đã biết. . . . . . . . . . . . . . . . . . . . .


31

2.1.2.1 Hệ mã RSA gốc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.2.2 RSA trên vành thương các đa thức. . . . . . . . . . . . . . . 32
2.1.2.3 RSA trên vành thương các số nguyên Gauss. . . . . . .
2.1.3 Nhận xét về sơ đồ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32
33

2.2 Sơ đồ cho RSA trên nửa nhóm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

2.2.1 Sơ đồ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

2.2.2 So sánh với các hệ mã RSA đã biết. . . . . . . . . . . . . . . . . . . . . . 35
2.2.2.1 Hệ mã RSA trên vành thương vành Euclid. . . . . . . . . 35
2.2.2.2 Hệ mã RSA trên vành các ma trận. . . . . . . . . . . . . . . 36
2.2.2.3 Hệ mã RSA trên nhóm đường cong elliptic. . . . . . . . . 36
2.2.3 Nhận xét về sơ đồ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 Xây dựng biến thể của RSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.1 Vành Bergman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 39
2.3.2 Xây dựng biến thể của RSA dựa trên vành Bergman. . . . . . . . 41
2.3.2.1 Xây dựng nửa nhóm cơ sở. . . . . . . . . . . . . . . . . . . . . . 41
2.3.2.2 Sơ đồ hệ mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.2.3 Độ phức tạp tính toán so với RSA gốc . . . . . . . . . . . . . 49



2.3.2.4 Thám mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.3 Nhận xét về hệ mã. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Chương 3 Thám mã RSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1 Thám mã RSA bằng dàn hai chiều. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Thực nghiệm thám mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Đặt vấn đề. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.3 Điều kiện để tấn công dàn hai chiều vào RSA luôn thành công 55
3.1.4 Nhận xét về phương pháp tấn công RSA bằng dàn hai chiều.

59

3.2 Bài toán DLP trên nhóm GL(2,p). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.1 Đặt vấn đề. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

3.2.2 Bài toán DLP trên nhóm GL(2,p). . . . . . . . . . . . . . . . . . . . . . . . 60
3.2.3 Ý tưởng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.4 Chéo hóa Jordan của ma trận. . . . . . . . . . . . . . . . . . . . . . . . . .

61

3.2.5 Thuật toán đưa bài toán DLP trên nhóm GL(2,p)
về trường cơ sở. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.6 Ví dụ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.7 Nhận xét. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68


Kết luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

Danh mục các công trình ã công bố. . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

Tài liệu tham khảo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Phụ lục. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80


1

BẢN THUẬT NGỮ ANH VIỆT
Tiếng Anh

Tiếng Việt

Baby step, giant step method

Phương pháp bước nhỏ, bước lớn (giải DLP)

Chinese remainder theorem

Định lý phần dư Trung Hoa

Continued fraction


Liên phân số

Cryptosystem

Hệ mã hóa

Cryptanalysis

Thám mã

Discrete logarithm problem

Bài toán logarithm rời rạc

Homomorphism

Đồng cấu

Instance

Biến thể hiện

Lattice

Dàn

Lattice reduction algorithm

Thuật toán tìm cơ sở thu gọn của dàn


Private exponent

Khóa riêng (trong hệ mã RSA)

Scheme

Sơ đồ,

Semigroup

Nửa nhóm

Unit

Ước của đơn vị (trong vành có đơn vị)

Variant

Biến thể


2

MỞ ĐẦU
Năm 1

, Di i và H

man ần đầu tiên giới thiệu khái niệm hệ mã hóa


khóa công khai, một khái niệm có t nh cách mạng trong mã hóa thông tin. Ngày
nay, các hệ mã hóa khóa công khai được d ng rộng rãi trên hầu hết các ĩnh vực có
trao đổi thông tin như đảm bảo an toàn mạng Int rn t, giao dịch trong ngân hàng,…
Là một hệ mã hóa khóa công khai đầu tiên, RSA à một hệ mã hóa nổi tiếng
và được d ng rộng rãi nhất, do 3 tác giả Riv st, Shamir và Ad man giới thiệu vào
năm 1

8 [63]. Năm 2

2, ba tác giả này được Viện Toán Học C ay (M ) trao giải

thưởng cho RSA như à một ứng dụng đơn giản và hiệu quả nhất của Toán học.
Việc không có một hệ mã nào d ng rộng rãi như RSA cho đến bây giờ cho thấy đây
à một hệ mã an toàn, khó bị tấn công. Ch nh vì vậy có rất nhiều công trình iên
quan đến RSA.
Trên thế giới, có thể chia các công trình ý thuyết iên quan đến RSA àm hai
oại: phát triển các biến thể của RSA và thám mã RSA.
Sự phát triển các biến thể của RSA có thể chia àm hai hướng. Trong hướng
thứ nhất, các tác giả tập trung vào hệ mã RSA gốc nhưng cải tiến các thuật toán mã
hóa và giải mã nhằm giảm độ phức tạp tính toán hoặc xây dựng RSA trên vành
với

có dạng phức tạp hơn thay vì à t ch của hai số nguyên tố phân biệt. Công

trình như [11] là ví dụ về RSA được cải tiến thuật toán mã hóa sao cho có thể tạo ra
cùng lúc nhiều chữ ký điện tử. Công trình [33] của D. Pointcheval cải tiến thuật
toán mã hóa của RSA nhằm mục đ ch àm cho văn bản đã mã hóa có t nh ngẫu
nhiên, qua đó tránh được cách tấn công bằng cách chọn văn bản gốc (chosen
plaintext attack). Đối với RSA trên


với

có dạng phức tạp hơn t ch của hai số

nguyên tố, có thể kể ra đây công trình của T. Collins [66] khảo sát

là tích của

nhiều số nguyên tố phân biệt, công trình của T. Takagi [67] khảo sát modulus




3

. Các biến thể này của RSA sau đó được Garg D. và Verma S. kết hợp

dạng

với k thuật của D. Pointcheval trong [33] để tránh cách tấn công chọn văn bản gốc
[37-38]. Trong hướng thứ hai, các biến thể của RSA được xây dựng trên các cấu
trúc đại số phức tạp hơn. Varadhara an V. và Odoni [70] vào 1 85 xây dựng một
biến thể của RSA trên nhóm các ma trận không suy biến

có hệ số trên

vành

3, tác giả N.


, với

à t ch của hai số nguyên tố phân biệt. Năm 1

Demytko [59] giới thiệu tại hội nghị
dựng trên nhóm các đường cong

ROCR PT một phiên bản của RSA xây

iptic. Do

à vành thương của vành số nguyên

nên cách xây dựng tự nhiên nhất à xây dựng biến thể của RSA trên vành thương
của các vành có phép chia (vành uc id). Các tác giả
Y. Awad [36] vào 2

- assar A.N., R. Hatary và

xây dựng các biến thể của RSA trên vành thương của vành

số nguyên Gauss và trên vành thương của vành các đa thức có hệ số trên trường
hữu hạn. Việc xây dựng các biến thể mới này của RSA đều dựa trên t nh chất cụ thể
của cấu trúc đại số mà RSA được xây dựng trên đó.
Song song với việc phát triển các biến thể của RSA, bài toán thám mã RSA
cũng thu hút được nhiều tác giả [23-24], [26-27], [35] và [40]. Cách tấn công cổ
điển dựa vào bài toán phân t ch một số nguyên dương

thành các thừa số nguyên


tố, hiện nay thuật toán phân t ch hiệu quả nhất à thuật toán Si v (General Number
Fie d Si v ) với độ phức tạp à

với

của . Mặc d hiện nay chưa có thuật toán phân t ch số

, trong đó

à số bit

cho trước với thời gian đa

thức, vẫn có rất nhiều cách tấn công vào RSA với các công cụ khác nhau. Năm
1

, tác giả M. Wiener [57] đưa ra cách tấn công RSA trong trường hợp khóa

riêng

bằng công cụ iên phân số. Đến 1

Durfee [25] đạt được kết quả tốt hơn khi

, hai tác giả D. Boneh và G.
, bằng cách giải bài toán tìm

phần tử gần đúng có nghịch đảo nhỏ ta có thể tìm được khóa riêng . Gần đây, sau
lần giới thiệu đầu tiên của D. Coppersmith tại hội nghị Eurocrypt 1996 [30], các
thuật toán tìm cơ sở thu gọn của dàn như thuật toán LLL hay thuật toán Gauss à

một công cụ rất hiệu quả để tấn công RSA trong các trường hợp khóa riêng

nhỏ,


4

vì vậy có rất nhiều công trình dùng công cụ dàn để thám mã RSA như [12], [19],
[22], [61]. Một điều đáng ngạc nhiên à cho d có rất nhiều công trình thám mã
RSA gốc, có rất t các công trình khảo sát thám mã các biến thể của RSA. Điều này
cho thấy hệ mã RSA gốc vẫn được quan tâm hơn rất nhiều so với các biến thể của
nó. Tuy vậy, các biến thể của RSA ngày càng được quan tâm và khảo sát nhiều hơn.
Có thể kế ra đây các công trình như [1 ] khảo sát thám mã biến thể RSA trong [67],
công trình [55] khảo sát thám mã hệ mã Multi-Power RSA của T. Collins trong [66]
hay công trình [ 2] thám mã RSA trong trường hợp khóa chung lớn và bị lộ một
phần.
Trong nước, các công trình hay uận án iên quan đến RSA còn rất khiêm
tốn. Các uận án thường ch dừng ại ở mức hiện thực RSA có cải tiến các thuật toán
số học trong mã hóa và giải mã [9-10] khảo sát áp dụng chữ ký điện tử của RSA
[2], [7]; iệt kê ại các phương pháp tấn công RSA [1] hay áp dụng RSA trong bảo
mật thông tin [3]. Cuốn sách viết nhiều nhất về RSA như [6] ch tóm tắt lại các
nghiên cứu và thám mã về RSA. Có rất ít các luận án tiến sĩ như [8] đề cập đến các
tiêu chuẩn an toàn cho các tham số trong hệ mã RSA như modu us, các modu i hay
các khóa riêng, khóa chung.
Xuất phát từ những khảo sát trên đây về hệ mã RSA ở trong nước và quốc tế,
uận án này nhằm giải quyết các vấn đề sau:
(1) Nghiên cứu hệ mã RSA gốc, ta gọi là RSA 2 số nguyên tố, và tất cả các
biến thể của nó. Giải th ch vì sao các biến thể của RSA ch xây dựng trên các cấu
trúc đại số khác với


, trong đó

à t ch của các số nguyên tố phân biệt.

(2) Căn cứ vào nghiên cứu trên, đề xuất sơ đồ tổng quát cho hệ mã RSA, sơ
đồ phải bao quát hệ mã RSA gốc và các biến thể đã biết của nó.
(3) Căn cứ vào sơ đồ đề xuất, xây dựng biến thể cho RSA trên cấu trúc đại số
khác với các cấu trúc đã biết mà các tác giả khác đã xây dựng các biến thể RSA trên
đó.


5

(4) Tìm hiểu các k thuật tấn công đã biết vào RSA, qua đó cải tiến một số
k thuật và giải quyết một số bài toán còn mở trong thám mã RSA.
Nội dung của uận án gồm các phần sau.
Phần mở đầu giới thiệu tổng quan về các nghiên cứu RSA trong và ngoài
nước, đồng thời nêu ra các vấn đề cần giải quyết cho luận án.
Chương 1 mô tả chi tiết hơn về hệ mã RSA gốc và các biến thể của RSA trên
các cấu trúc khác với

. Các biến thể này d ng để đối chứng với sơ đồ mà tác giả

đưa ra ở Chương 2. Một số các kết quả về thám mã RSA cũng được nhắc lại trong
chương này.
Chương 2 đề cập đến các kết quả nghiên cứu của tác giả về việc xây dựng sơ
đồ cho RSA, bao gồm xây dựng hệ mã RSA trên vành thương của vành uc id và
sơ đồ tổng quát cho RSA trên nửa nhóm, sơ đồ này bao quát được RSA và các biến
thể đã biết của RSA trong chương 1. Phần còn lại trong chương này đề cập đến kết
quả của tác giả trong việc xây dựng một biến thể cho RSA, biến thể này được xây

dựng dựa trên vành

rgman và tuân th o sơ đồ vừa đề xuất.

Chương 3 đề cập đến các kết quả đạt được của tác giả trong ĩnh vực thám
mã RSA. Các kết quả này bao gồm việc đưa ra điều kiện cho khóa riêng nhằm đảm
bảo phương pháp tấn công RSA bằng dàn hai chiều luôn thành công và việc đưa bài
toán logarithm rời rạc (DLP – Discrete Logarithm Problem) trên nhóm nhân
về bài toán DLP trên trường cơ sở
hai của

hoặc trên một trường mở rộng bậc

.

Do các thuật toán tìm cơ sở thu gọn trên dàn được dùng nhiều trong việc
trình bày thám mã RSA, các kiến thức cơ sở về dàn sẽ được nhắc lại trong phần phụ
lục.


6

Phần kết uận tóm tắt lại những kết quả mà luận án đã đạt được, đồng thời
nêu ra một số hướng nghiên cứu mở có thể phát triển được trong quá trình thực hiện
uận án.
Được các thầy hướng dẫn giới thiệu hướng nghiên cứu về mã hóa thông tin
lần đầu tiên vào tháng 3/2009, tác giả cảm thấy rất thích thú và phù hợp với hướng
nghiên cứu này. Tác giả mong muốn rằng những kết quả đạt được khi thực hiện
luận án sẽ là những minh chứng cho thấy ứng dụng của toán học vào ngành mã hóa
thông tin

Cuối c ng, mong muốn của tác giả à có được sự hiểu biết sâu sắc để tạo ra
được một nhóm nghiên cứu về mật mã ở trường Đại học
có sự trao đổi mật thiết với
Phố HCM.

hoa học Huế, đồng thời

hoa Công Nghệ Thông Tin trường ĐH

HTN Thành


7

Chương 1
TỔNG QUAN VỀ RSA
Nội dung chương này gồm:
1. Nhắc lại hệ mã RSA gốc.
2. Trả lời câu hỏi: với những số nguyên dương
được hệ mã RSA trên

nào thì ta có thể xây dựng

.

3. Tóm tắt các nghiên cứu về RSA trên vành

.

4. Duyệt qua các biến thể của RSA trên các cấu trúc khác


, bao gồm:

-Hệ mã RSA trên vành ma trận.
-Hệ mã RSA trên nhóm đường cong elliptic.
-Hệ mã RSA trên vành thương các đa thức.
-Hệ mã RSA trên vành thương các số nguyên Gauss.
5. Tóm tắt các kết quả đã có về thám mã RSA.
Chúng tôi trình bày trong chương này hệ mã hóa khóa công khai RSA gốc, sau
đó giới thiệu một số biến thể của RSA được xây dựng trên các cấu trúc khác
cũng như một số kết quả đã có về thám mã RSA. Chương này à cơ sở để trình bày
các chương sau. Chúng tôi cũng đưa ra câu giải thích vì sao các biến thể của RSA
được xây dựng trên các cấu trúc đại số khác
1.1



ãR

.

gốc

RSA à hệ mã hóa được công bố năm 1

8 bởi 3 tác giả Ron Riv st, Adi

Shamir và L onard Ad man [63]. Chúng tôi tóm tắt ại hệ mã này sau đây. Chi tiết
về hệ mã có thể tham khảo tại các tài iệu [4], [5], [63].



8

1.1.1 Mô tả hệ

ã

Sinh hóa
-Chọn hai số nguyên tố phân biệt
-Chọn số nguyên

và t nh

.

nguyên tố c ng nhau với

-T nh

.

.

-Công bố

như khóa công khai và giữ

àm khóa riêng.

ã hóa

-Một văn bản

sẽ được mã hóa thành

.

iải mã
- được giải mã thành
1.1.2 Nhận

t ề hệ

.

ã
à một số nguyên dương, trong đó

Với
các số nguyên tố phân biệt và

, chúng ta sẽ d ng k hiệu

thường được d ng trong số học à

. Một kết quả của T. Collins

et. al. [66] vào 1997 à xây dựng hệ mã RSA trên
ch ra rằng
trên


à dạng duy nhất của

khi

à đơn ánh

hi đó

tồn tại ố tự nhiên

.

. Chúng tôi sẽ

nếu chúng ta có thể xây dựng RSA

.

Mệnh ề 1.1 iả

à

sa ch ánh ạ


9

hứng minh.
Giả sử


trong đó

biệt. Giả sử phản chứng rằng

à các số nguyên tố phân

, khi đó tồn tại t nhất một trong các số

ớn hơn . hông mất tổng quát chúng ta có thể giả sử
Xét
. Suy ra

, r ràng

Do

nên

, mâu thuẩn với t nh đơn ánh của . ■

Mệnh đề trên cho thấy rằng để xây dựng hệ mã RSA trên
sao cho

.

và đây à điều kiện cần và đủ của

thì phải chọn

cần phải thỏa mãn. Điều


này giải th ch vì sao có hai hướng để phát triển RSA. Hướng thứ nhất chú trọng đến
sự giảm độ phức tạp tính toán của RSA trên

bằng cách đưa ra các thuật toán cải

tiến tính toán trong các quá trình mã hóa và giải mã. Hướng thứ hai chú trọng xây
dựng các biến thể của RSA trên các cấu trúc đại số khác với

, chúng tôi sẽ tóm tắt

các biến thể RSA được xây dựng th o hướng thứ hai trong phần 1.2 ngay sau đây.
1.2 RSA trên vành
Như chúng tôi đã nói trong phần mở đầu, các công trình khảo sát về hệ mã
RSA trên vành cơ sở

tập trung vào hai hướng. Trong hướng thứ nhất, các tác giả

tập trung vào hệ mã RSA gốc nhưng cải tiến các thuật toán mã hóa, giải mã nhằm
giảm độ phức tạp tính toán hoặc thêm vào các k thuật khi mã hóa nhằm nâng cao
độ an toàn của hệ mã. Có thể kể ra các k thuật cải tiến cho RSA gốc như sau:
-Tạo ra văn bản mã hóa ngẫu nhiên: đó à các kết quả nghiên cứu của D.
Pointcheval [33], S. Goldwasser et. al. [65] hay M. Blum et. al. [54]. Các k thuật
àm tăng t nh ngẫu nhiên của văn bản đã mã hóa àm cho hệ mã RSA gốc tránh
được cách tấn công bằng cách chọn văn bản gốc. Padded RSA của J.S. Coron [47]
cũng à một kết quả trong hướng nghiên cứu này.


10


-Tạo đồng thời nhiều chữ ký điện tử: đó à

atch RSA của tác giả A. Fiat

[11] cho phép tính toán một lúc nhiều chữ k điện tử với độ phức tạp t nh toán t hơn
so với độ phức tạp tính toán của việc tạo ra từng chữ k điện tử một.
-Cho phép thực hiện nhanh quá trình giải mã: cải tiến này làm cho RSA có
thể sử dụng trong các ứng dụng chuyên biệt nào đó, chẳng hạn cần tạo chữ k điện
tử mà sau đó có thể kiểm tra nhanh chóng trên các tổng đài điện thoại. Rebalanced
RSA của tác giả M. Wiener [58] là ví dụ cho cải tiến này, trong đó quá trình giải mã
được thực hiện bằng nhiều khóa riêng thay vì một khóa riêng, sau đó văn bản gốc
được tính dựa vào định lý phần dư Trung Hoa.
Trong hướng thứ hai, các tác giả khảo sát các hệ mã RSA trên vành

với

không còn là tích của hai số nguyên tố phân biệt. Hai kết quả đáng kể trong hướng
này thuộc về T. Collins [66] khảo sát trường hợp n là tích của nhiều số nguyên tố
phân biệt (MultiPrime RSA), và T. Takagi [67] khảo sát khi
trong đó

là hai số nguyên tố phân biệt, còn

có dạng

là số nguyên dương (Mu tiPow r

RSA). Các biến thể này của RSA sau đó được các tác giả khác kết hợp với các k
thuật cải tiến trong hướng thứ nhất, có thể kể ra các công trình sau đây.
-Công trình của C. A ison vào năm 2


2 [18]: thực hiện k thuật Rebalanced

RSA cho MultiPrime RSA.
-Công trình của D. Garg và S. Verma vào 2009 [37]: thực hiện k thuật
Rebalanced RSA cho MultiPower RSA.
1.3 Các b ến th c
1.3.1 Hệ

ãR

R
tr n

trên các cấu trúc khác
nh các

trận

iến thể này của RSA do các tác giả Varadhara an V. và Odoni đưa ra vào
năm 1 85 [70]. Giả sử
dương.

hiệu

à hai số nguyên tố,


và l à một số nguyên


à các nhóm nhân các ma trận vuông cấp


11

không suy biến hệ số tương ứng trên



. Các bậc của các nhóm này

tương ứng à


Chọn hai số nguyên


thỏa mãn các điều kiện

. Từ định ý Lagrange trong ý thuyết nhóm, chúng ta suy ra

rằng

trong đó
với mọi

thành
1.3.2

à ma trận đơn vị trong


. Điều này cho phép chúng ta tiến hành mã hóa

và giải mã bằng cách t nh


ãh

. Từ đó

R

tr n nh

cho các văn bản

ư ng c ng

.

tc

Biến thể này của RSA do N. Demytko giới thiệu lần đầu tiên tại hội nghị
urocrypt’ 3 [59].
Giả sử rằng

à một số nguyên tố và

. Nhóm đường cong elliptic theo modulo , được


sao cho
k hiệu à

, à tập gồm các cặp

trên

, c ng với một phần tử được k hiệu à

định nghĩa sao cho

thỏa mãn

.Nếu



được

được xác định như

sau:
à phần tử đơn vị

. Phép toán + trên

à đơn vị của phép toán, ngoài ra với hai điểm
, kết quả

.Nếu


à các số nguyên được chọn

thì
thì

.


12

.Ngược ại,

với

Nhóm đường cong

iptic b với nhóm

đó à tập hợp các cặp
trên



,

thỏa mãn phương trình

, c ng với một phần tử cũng k hiệu à


với

được k hiệu à

; nhưng tọa độ

có dạng

không phải à một bình phương trong

. Phép toán + trên

được định nghĩa hoàn toàn tương tự như phép + trên

. ậc của các

nhóm



được k hiệu tương ứng à



,

các số này có thể t nh được bằng các thuật toán thời gian đa thức, chẳng hạn như
thuật toán được đề cập trong [60].
Đối với hệ mã RSA trên nhóm đường cong elliptic, chúng ta chọn hai số
nguyên tố phân biệt


và đặt

. Chọn

sao cho

27 2, =1.
hiệu



Chọn hai số nguyên
sẽ đúng với mọi

, hệ thức

sao cho


. Điều này cho phép chúng ta

tiến hành mã hóa và giải mã như trong RSA gốc.
Có thể chọn bộ gồm
trong đó
phần

thành phần

thay cho khóa riêng ,

. Để giải mã cặp

sẽ được chọn để giải mã bằng cách t nh

, thành
, trong đó


13

Do phép toán

trên các tập

,
được định nghĩa hoàn toàn tương tự


nhau nên tọa độ thứ nhất

trong phương trình

không phụ thuộc vào việc

à như nhau,

thuộc tập nào trong 4 tập trên.

Demytko trong [59] đã đưa ra công thức t nh cho
về tọa độ thuần nhất


1.3.3 Hệ

ãR

tr n

như sau, bằng cách đưa

:

nh thương các

th c

iến thể này của RSA c ng với hệ mã RSA trên vành thương các số nguyên
Gauss do các tác giả

- assar A.N., R. Hatary và

. Awad đưa ra vào năm 2004

[36].
Trong biến thể này, vành đa thức
tố. Chọn hai đa thức bất khả quy

được xét đến với

à một số nguyên


có bậc tương ứng à

và đặt

. Số các phần tử khả nghịch trong các vành thương


14

<h(x)> và

<g(x)>,

<f(x)> tương ứng à

; trong đó với
sinh bởi

, kí hiệu

ch ideal của

, tức là

.

hi đó hệ thức
trong đó




đúng với mọi

/

à các số nguyên được chọn sao cho

,
. Hệ thức

cho phép chúng ta mã hóa văn bản
thành
1.3.4

và sau đó giải mã


ãh

R

tr n

thành

nh thương các số ng

.
nG


ss

Vành các số nguyên Gauss à vành con của trường số phức

Chuẩn trên
à

được t nh bởi

. Một phần tử

định nghĩa bởi

. Các ước của đơn vị trong
à nguyên tố khi và ch khi

à t ch của ước

đơn vị với một trong các phần tử có dạng sau:
i.

, khi đó

ii.

với
, khi đó

được gọi à phần tử nguyên tố dạng .
à số nguyên tố thông thường có dạng


được gọi à phần tử nguyên tố dạng .

à số nguyên tố thông thường có dạng

iii.

, khi đó

được gọi à

phần tử nguyên tố dạng .
Hàm u r tại phần tử nguyên tố

có giá trị à

.

Đối với biến thể này của RSA, ta chọn hai phần tử nguyên tố
.
khóa riêng

hi đó

. Các khóa chung

được chọn sao cho


bằng cách t nh


và t nh


. Văn bản à các phần tử

sẽ được mã hóa thành
.

. Sau đó

sẽ được giải mã


15

1.3.5 Nhận xét về các biến th c a RSA
Bây giờ chúng tôi sẽ so sánh sự an toàn của hệ mã RSA với các biến thể của nó
dưới khía cạnh thám mã bằng cách phân t ch modu us. Để đơn giản cho việc phân
tích, chúng tôi giả sử rằng độ dài của mỗi văn bản là 1024 bit và thuật toán phân
tích modulus

là thuật toán vét cạn.

Trước hết, do có rất nhiều thuật toán hiệu quả phân tích một đa thức cho trước
như thuật toán Berlekamp [52], thuật toán Ben-Or [53], thuật toán
Cantor-Zassenhaus [71]…nên biến thể của RSA trên vành thương các đa thức trong
phần 1.3.3 có thể bị thám mã hoàn toàn nếu áp dụng các thuật toán này.
Đối với hệ mã RSA gốc, do mỗi văn bản


có độ dài 1024 bit nên

phải

có độ lớn 1 2 bit. Như vậy thuật toán phân t ch modu us được áp dụng cho số



độ lớn 1024 bit.
Đối với biến thể của RSA trên vành ma trận, mỗi văn bản
1024 bit. Do

là một ma trận vuông nên

có độ dài

có ít nhất 4 phần tử, do đó mỗi phần tử

có độ dài không quá 256 bit. Vì mỗi phần tử này thuộc

của

không quá 256 bit. Việc phân tích

nên

có độ dài

trong trường hợp này đơn giản hơn nhiều so


với hệ mã RSA gốc.
Đối với hệ mã RSA trên vành thương các số nguyên Gauss, mỗi văn bản
có độ lớn 1024 bit nên



đều có độ lớn 512 bit. Do đó độ lớn của

không thể vượt quá 1025 bit. Do
vượt quá 1025 bit. Nếu
1025 bit, vì vậy

thì

không vượt quá 256 bit. Việc phân tích

nên

không

không vượt quá
bằng thuật toán vét

cạn chưa hẳn đơn giản hơn trong trường hợp phân tích modulus của hệ mã RSA
gốc. Tuy nhiên, mặc dù các tính toán trong quá trình mã hóa và giải mã trong
trường hợp này được thực hiện trong vành thương
trên

và sau đó ấy modulo theo


Nhưng do phép chia uc id trên

, thực tế sẽ được tính

(bằng cách thực hiện phép chia cho

).

thực hiện không duy nhất nên việc giải mã tính


16

có thể cho ra kết quả khác
trên vành thương

. Điều này cho thấy để xây dựng hệ mã RSA

, trước hết cần xây dựng một hệ đầy đủ và duy nhất

các phần dư có thể có trong phép chia một phần tử trong

cho ,

không gian các văn bản cần mã hóa trong trường hợp này. Việc xây dựng

chính là
không

phải đơn giản và đây có thể là lý do vì sao biến thể của RSA trong trường hợp này ít

được d ng đến.
Đối với hệ mã RSA trên nhóm đường cong elliptic, mỗi văn bản là một phần tử
, do đó

sẽ có c ng k ch thước với

là 1024 bit. Việc phân tích modulus

trong trường hợp này hoàn toàn như trong hệ mã RSA gốc. Tuy nhiên độ phức tạp
tính toán trong các quá trình mã hóa và giải mã trong trường hợp này là lớn hơn
nhiều so với hệ mã RSA gốc. Đối với hệ mã RSA gốc, mã hóa
phải thực hiện xấp x

cần

phép nhân theo thuật toán ũy thừa nhanh. Đối với hệ

mã RSA trên nhóm đường cong elliptic, các công thức ở phân 1.3.2 ch ra để tính
trong công thức mã hóa

cần thực hiện ít nhất xấp x

phép

toán.
Các phân t ch trên đây ch ra rằng, với cùng một modulus , việc thiết lập hệ mã
RSA gốc à đơn giản và an toàn hơn các biến thể của nó. Điều này giải thích phần
nào hệ mã RSA gốc được dùng rộng rãi hơn các biến thể của nó.
Trong các biến thể trên của RSA, hệ thức
phép thực hiện mã hóa


và giải mã

là hệ thức cốt lõi, nó cho
. Tuy vậy hệ thức này đạt được

bằng nhiều con đường khác nhau, tùy theo cấu trúc đại số mà RSA được xây dựng
trên đó. Đối với RSA trên vành thương các đa thức và vành thương các số nguyên
Gauss, hệ thức này iên quan đến phép chia Euclid và các khái niệm bất khả quy
hoặc nguyên tố. Đối với hai biến thể còn lại, hệ thức này tìm được nhờ vào định lý
Lagrange trong lý thuyết nhóm. Trong Chương 2, chúng tôi sẽ ch ra sơ đồ chung
cho RSA, cụ thể là ch ra các điều kiện làm cho hệ thức này được thỏa mãn trên cấu
trúc nửa nhóm.


17

1.4 Thiết lậ sơ ồ cho RSA
Bài toán lập sơ đồ cho RSA hoặc mở rộng RSA cũng à một bài toán được
nhiều tác giả khảo sát. Có thể kể ra đây các công trình như sau. Công trình của
Tsuyoshi Takagi [68] trong đó đưa ra sơ đồ cho RSA với trường cơ sở à trường các
số đại số trên

. Hàm mã hóa

được mở rộng thành hàm bậc hai theo

hai biến bởi các tác giả Kobayashi K. [50] hay Koyama K. [51] hoặc mở rộng thành
một đa thức bậc


trên trường cyclotomic bởi tác giả Uematsu.Y [69]. Tác giả

oyama . sau đó đưa ra sơ đồ cho RSA với hàm mã hóa là một phân thức theo hai
biến trên nhóm elliptic.
1.5 Thám mã RSA
Thật khó để có thể liệt kê ra hết tất cả các công trình nghiên cứu về thám mã
RSA. Ngoài một số phương pháp thám mã hệ mã RSA khi hệ mã này được dùng
một cách máy móc, chúng tôi chia các phương pháp thám mã RSA thành hai oại
sau đây.
1.5.1 Thám mã hệ mã RSA có khóa riêng nhỏ
Tiêu biểu cho thám mã loại này là công trình của M. Wiener và D. Boneh
như sau.
1.5.1.1 Thám mã RSA bằng liên phân số
Cách thám mã RSA bằng liên phân số do M. Wi n r đưa ra năm 1

. Chi

tiết về cách thám mã này có thể đọc ở [57], chúng tôi mô tả một cách tóm tắt lại như
sau.
1.5.1.1.1 Liên phân số
Với

là số nguyên dương và
để ch

…))).

liên phân số

là các số nguyên, Wiener dùng kí hiệu



18

Một số hữu tỷ dương

có thể đưa về dạng liên phân số

bằng

thuật toán sau.

Repeat

Until
Ngược lại, nếu biết các số nguyên

ta có thể t nh được

bằng thuật toán sau.
, đặt

Tính

, đặt

Tính
For

to

Tính

do


Endfor

Một tính chất có thể thấy ngay của liên phân số là với số

thì

nếu

chẵn,


nếu

lẻ.

1.5.1.1.2 Tìm số hữu tỷ bằng liên phân số nếu biết giá trị g n úng


19

Thuật toán thám mã của Wiener dựa trên thuật toán sau đây. Giả sử
là hai phân số dương mà
được

với


nếu biết được dạng liên số

là số nào đó.
của



hi đó có thể tìm
và với

đủ nhỏ.

Thuật toán như sau.
Tìm dạng liên phân số
For

to

của

do

Nếu chẵn, xét
Nếu lẻ, xét
Kiểm tra

đang xét có thỏa mãn bài toán xét chưa, nếu có thì

STOP

Endfor
Thuật toán trên sẽ thành công nếu phân số tìm được

thỏa mãn
nếu

chẵn,

nếu m lẻ,
đồng thời số

thỏa mãn điều kiện sau đây:
nếu

,

nếu

nếu
nếu
Trong đó

,

chẵn,
lẻ,

,
.


là các số tính theo thuật toán ở phần 1.5.1.1.1 trên.


×