💳
Phan Tich Chi Tiet RSA + CRT
INFORMATION
Pham Van Phu
PROJECT
🪆 Project Security
Status
Not started
Triển khai thuật toán RSA với Định lý Dư
Trung Hoa cho mô-đun N 1024 bit và 4096
bit
Tóm tắt
Mật mã học có một số khía cạnh quan trọng trong việc hỗ trợ bảo mật dữ liệu, bao
gồm tính bảo mật (confidentiality), tính toàn vẹn (integrity) và tính xác thực
(authenticity) của dữ liệu. Một trong những thuật toán mật mã sử dụng khóa công
khai là mật mã RSA.
Khi kích thước mô-đun n càng lớn, thì việc phân tích thừa số nguyên tố của n
càng trở nên khó khăn hơn, giúp tăng tính bảo mật. Tuy nhiên, nhược điểm của
thuật toán RSA là thời gian giải mã rất lâu.
Trong nghiên cứu này, nhóm tác giả sử dụng Định lý Dư Trung Hoa (Chinese
Remainder Theorem - CRT) để tối ưu hóa quá trình giải mã. Mục tiêu chính là:
Đo lường thời gian thực hiện RSA-CRT trên mô-đun 1024 bit và 4096 bit.
Triển khai thuật toán trong ngôn ngữ lập trình Python.
Kết quả thử nghiệm cho thấy:
RSA-CRT 1024 bit nhanh hơn khoảng 3 lần so với RSA thông thường trong
quá trình giải mã.
Phan Tich Chi Tiet RSA + CRT
1
RSA-CRT 4096 bit cũng giúp giải mã nhanh hơn đáng kể.
Tuy nhiên, thời gian tạo khóa trong RSA-CRT 4096 bit dài hơn so với RSA
thông thường.
Từ khóa: Mã hóa và giải mã, RSA, RSA-CRT, 1024 bit, 4096 bit.
1. GIỚI THIỆU
Trong thời đại thông tin ngày nay, khả năng tiếp cận thông tin một cách dễ dàng
là một yêu cầu quan trọng của con người. Bên cạnh sự tiện lợi, nội dung thông tin
thu thập được cũng có ảnh hưởng rất lớn. Vì vậy, bảo mật và tính riêng tư là
những yếu tố quan trọng để ngăn chặn rò rỉ thông tin bí mật vào tay những người
không có quyền truy cập.
Dữ liệu có thể được bảo mật bằng cách mã hóa nội dung, phương pháp này được
gọi là mật mã học (cryptography) 1 .
【】
1.1. Mật mã học và thuật toán RSA
Mật mã học là một lĩnh vực nghiên cứu về các kỹ thuật toán học liên quan đến
bảo mật thông tin, bao gồm:
Tính bảo mật dữ liệu (data confidentiality)
Tính toàn vẹn dữ liệu (data integrity)
Xác thực dữ liệu (data authentication)
Một trong những thuật toán mật mã khóa công khai nổi tiếng là RSA (RivestShamir-Adleman).
Thuật toán RSA sử dụng cặp khóa mã hóa, gồm:
Khóa công khai (public key): Dùng để mã hóa dữ liệu.
Khóa riêng tư (private key): Dùng để giải mã dữ liệu.
Quy trình toán học của RSA bao gồm:
1. Chọn hai số nguyên tố p và q.
2. Tính mô-đun n=p×q.
3. Sử dụng lũy thừa và phép toán mô-đun để mã hóa và giải mã dữ liệu.
Phan Tich Chi Tiet RSA + CRT
2
1.2. Nhược điểm của RSA và giải pháp
Mặc dù RSA được coi là bảo mật, nhưng khi kích thước mô-đun n quá lớn, quá
trình giải mã trở nên chậm 2 .
【】
Lý do là vì phép toán trong RSA yêu cầu tính toán lũy thừa mô-đun lớn, điều này
làm tăng độ phức tạp tính toán.
🔍 Giải pháp:
Định lý Dư Trung Hoa (Chinese Remainder Theorem - CRT) được sử dụng để
tăng tốc độ giải mã trong RSA.
Phép toán lũy thừa mô-đun trong RSA-CRT được thực hiện trên p và q, thay vì
trên n, giúp tăng hiệu suất đáng kể 3 .
【】
1.3. Mục tiêu nghiên cứu
So sánh thời gian xử lý của thuật toán RSA và RSA-CRT khi sử dụng mô-đun
1024 bit và 4096 bit.
Kiểm tra hiệu suất thực tế khi triển khai thuật toán trong ngôn ngữ lập trình
Python.
2. THUẬT TOÁN VÀ PHƯƠNG PHÁP
2.1. Thuật toán RSA
Thuật toán RSA bao gồm ba bước chính:
1. Tạo khóa
2. Mã hóa
3. Giải mã
Quá trình tạo khóa trong thuật toán RSA được thực hiện theo các bước sau:
1. Chọn hai số nguyên tố p và q sao cho p≠q.
2. Tính mô-đun: n=p×q và ϕ(n)=(p−1)×(q−1)
3. Chọn một số nguyên e thỏa mãn điều kiện: 1<e<ϕ(n) và gcd(e, ϕ(n))=1
Phan Tich Chi Tiet RSA + CRT
3
4. Tính số nghịch đảo của e theo modulo ϕ(n): d=e^−1 mod ϕ(n) hay d*e = 1
mod ϕ(n).
5. Xác định khóa công khai và khóa riêng tư:
Khóa công khai: (n,e)
Khóa riêng tư: (n,d)
2.1.1. Quá trình mã hóa
Dữ liệu gốc (plaintext) M được mã hóa thành bản mã (ciphertext) C bằng công
thức: C = M^e (mod n)
Trong đó:
C là bản mã sau khi mã hóa.
M là bản rõ (plaintext).
e là số mũ công khai (thuộc khóa công khai).
n là mô-đun RSA.
2.1.2. Quá trình giải mã
Bản mã C được giải mã để lấy lại bản gốc M bằng công thức: M = C^d (mod n)
Trong đó:
M là bản rõ sau khi giải mã.
C là bản mã (ciphertext).
d là số mũ riêng tư (thuộc khóa riêng tư).
RSA là một thuật toán có tính bảo mật cao, tuy nhiên thời gian giải mã rất lâu khi
kích thước mô-đun n lớn.
2.2. Thuật toán RSA-CRT
RSA-CRT là một biến thể của RSA sử dụng Định lý Dư Trung Hoa (Chinese
Remainder Theorem - CRT) để tăng tốc độ giải mã.
Quy trình tạo khóa trong RSA-CRT:
Phan Tich Chi Tiet RSA + CRT
4
1. Chọn hai số nguyên tố p và q sao cho p≠q.
2. Tính mô-đun: n=p×q và ϕ(n)=(p−1)×(q−1)
3. Chọn một số nguyên e thỏa mãn điều kiện: 1<e<ϕ(n)vaˋgcd(e, ϕ(n))=1
4. Tính số nghịch đảo của e theo modulo ϕ(n): d=e^−1 mod ϕ(n)
5. Tính các giá trị cần thiết cho CRT:
dP=dmod (p−1)
dQ=dmod (q−1)
qInv=q−1mod p
6. Xác định khóa công khai và khóa riêng tư:
Khóa công khai: (e,n)
Khóa riêng tư: (dP,dQ,qInv,p,q)
2.2.1. Quá trình mã hóa trong RSA-CRT
Quá trình mã hóa giống hoàn toàn với RSA thông thường, sử dụng công thức:
C = M^e mod n
Vì vậy, không có sự khác biệt giữa RSA và RSA-CRT trong bước mã hóa.
2.2.2. Quá trình giải mã trong RSA-CRT
Quá trình giải mã sử dụng Định lý Dư Trung Hoa, gồm các bước sau:
1. Tính giá trị lũy thừa mô-đun trên từng số nguyên tố:
x1 = C^{dP} \mod p
x2 = C^{dQ} \mod q
2. Tính giá trị hiệu chỉnh h để kết hợp hai phần tử trên:
h=qInv×(x1−x2) mod p
3. Tính giá trị bản rõ cuối cùng:
M=x2+h×q
Phan Tich Chi Tiet RSA + CRT
5
Nhờ tính toán trên p và q thay vì n, thuật toán RSA-CRT giúp tăng tốc độ giải mã
đáng kể.
2.3. Thử nghiệm
Thử nghiệm được thực hiện trên các văn bản có kích thước khác nhau. Bảng dưới
đây liệt kê các văn bản được sử dụng và kích thước của chúng (tính theo byte):
STT
Văn bản gốc (Plaintext)
Kích thước
(byte)
1
"Hai"
3
2
"SEGERA BERKUMPUL NANTI SORE AKAN ADA RAPAT
PENTING"
50
3
"anGKasAdiRganTara666679"
23
4
"Rp 95.345.000,-"
15
5
"Segera Lakukan Re-shuffle Kabinet Kerja!"
40
📌 Lưu ý:
Dữ liệu thử nghiệm có chứa chữ hoa, chữ thường, số và ký tự đặc biệt để
đánh giá tính đa dạng của hệ thống.
3. KẾT QUẢ THỬ NGHIỆM
Trong phần này, chúng tôi tiến hành thử nghiệm thuật toán RSA và RSA-CRT trên
mô-đun 1024 bit và 4096 bit, sau đó so sánh thời gian thực thi của chúng.
3.1. Kết quả thử nghiệm với mô-đun 1024 bit
Trong thử nghiệm đầu tiên, khóa RSA có kích thước 1024 bit được tạo ngẫu nhiên.
Giá trị e được hệ thống sinh ngẫu nhiên theo điều kiện:
1<e<ϕ(n) và gcd(e, ϕ(n))=1
Trong thử nghiệm này, giá trị e được chọn là 3.
3.1.1. Giá trị các khóa trong RSA-CRT 1024 bit
Phan Tich Chi Tiet RSA + CRT
6
Số nguyên tố pp được tạo ngẫu nhiên:
p = 10277651387301176987572317325479097395047746036448
09259710908734340250231174881775912743279205016377
33979655095360153800010911836260705198915653142336
10391
→ Gồm 155 chữ số thập phân.
Số nguyên tố q được tạo ngẫu nhiên:
q = 11477990785403537825829714057028719300154941210754
98780912268468497672034368407332370186424197056338
84617243251249168877722536665242249074891552040518
84923
→ Gồm 154 chữ số thập phân.
Mô-đun n=p×q:
n = 11796678791903279657847637919373441536852260211807
21756891581313624284029594204420437699481533561502
05907103863786409262454101821911942847169605133844
12454088268637081919279132101575631548968303775379
00396870079715414202890886129151448171128723026655
67529874887655142902239658345808376618266144606443
149034893
Các giá trị liên quan đến RSA-CRT:
dP=d mod (p−1)
dQ=d mod (q−1)
qInv=q−1
📌 Nhận xét:
mod p
Các khóa tạo ra có độ dài lớn, giúp đảm bảo tính bảo mật.
Phan Tich Chi Tiet RSA + CRT
7
RSA-CRT giúp tăng tốc giải mã nhờ tính toán trên pp và qq thay vì nn.
3.2. So sánh thời gian mã hóa và giải mã với mô-đun
1024 bit
Bảng 1: So sánh thời gian mã hóa RSA và RSA-CRT 1024 bit
STT
Mã hóa bằng RSA (ns)
Mã hóa bằng RSA-CRT (ns)
1
330,130
371,148
2
316,803
348,592
3
330,131
358,845
4
344,485
375,250
5
351,661
382,426
📌 Nhận xét:
Thời gian mã hóa giữa RSA và RSA-CRT không có sự khác biệt đáng kể.
Bảng 2: So sánh thời gian giải mã RSA và RSA-CRT 1024 bit
STT
Giải mã bằng RSA (ns)
Giải mã bằng RSA-CRT (ns)
1
103,534,963
29,710,330
2
102,998,756
29,400,697
3
103,437,564
29,477,594
4
103,300,180
29,538,084
5
103,515,483
29,730,836
📌 Nhận xét:
RSA-CRT giải mã nhanh hơn RSA thường khoảng 3 lần.
Mã hóa không thay đổi giữa RSA và RSA-CRT, nhưng RSA-CRT có ưu thế
vượt trội khi giải mã.
3.3. Kết quả thử nghiệm với mô-đun 4096 bit
Phan Tich Chi Tiet RSA + CRT
8
Thử nghiệm tiếp theo sử dụng mô-đun 4096 bit để đánh giá hiệu suất của RSA và
RSA-CRT khi xử lý khóa lớn hơn.
Bảng 3: So sánh thời gian mã hóa RSA và RSA-CRT 4096 bit
STT
Mã hóa bằng RSA (ns)
Mã hóa bằng RSA-CRT (ns)
1
6,623,256
6,643,762
2
6,634,535
6,573,018
3
6,626,332
6,591,474
4
6,660,166
6,659,142
5
6,706,303
6,714,506
📌 Nhận xét:
Thời gian mã hóa giữa RSA và RSA-CRT 4096 bit không có sự khác biệt đáng
kể.
Bảng 4: So sánh thời gian giải mã RSA và RSA-CRT 4096 bit
STT
Giải mã bằng RSA (ns)
Giải mã bằng RSA-CRT (ns)
1
5,853,890,548
1,304,281,228
2
5,842,122,477
1,149,450,813
3
5,906,614,132
1,171,997,568
4
5,944,532,789
1,311,686,767
5
5,945,090,537
1,168,936,106
📌 Nhận xét:
RSA-CRT giúp giảm thời gian giải mã xuống khoảng 3-5 lần so với RSA thông
thường.
4. KẾT LUẬN
RSA-CRT tối ưu hóa giải mã giúp tốc độ nhanh hơn gấp 3 lần so với RSA
truyền thống.
Phan Tich Chi Tiet RSA + CRT
9
Mã hóa trong RSA và RSA-CRT không có sự khác biệt.
RSA-CRT 4096 bit nhanh hơn đáng kể nhưng quá trình tạo khóa lâu hơn so
với RSA 1024 bit.
📌 Ứng dụng thực tế:
RSA-CRT phù hợp với hệ thống cần giải mã nhanh như chữ ký số, bảo mật
giao tiếp mạng.
RSA thông thường phù hợp hơn cho hệ thống không yêu cầu tốc độ giải mã
cao.
5. TÀI LIỆU THAM KHẢO
[1] Muslim, M. A., & Prasetiyo, B.
“Triển khai thuật toán Twofish để bảo mật dữ liệu trong mạng truyền thông bằng
thư viện Chilkat Encryption ActiveX.”
Tạp chí Công nghệ Thông tin Lý thuyết và Ứng dụng (Journal of Theoretical and
Applied Information Technology), Tập 84, Số 3, Trang 370, năm 2016.
[2] Chen, C., Wang, T., & Tian, J.
“Cải thiện tấn công thời gian vào RSA-CRT thông qua chiến lược phát hiện và sửa
lỗi.”
Tạp chí Khoa học Thông tin (Information Sciences), Tập 232, Trang 464-474,
năm 2013.
[3] Lu, Y., Zhang, R., & Lin, D.
“Các cuộc tấn công lộ một phần khóa mới đối với CRT-RSA với số mũ công khai
lớn.”
Hội nghị Quốc tế về Mật mã Ứng dụng và An ninh Mạng (International
Conference on Applied Cryptography and Network Security), Springer
International Publishing, tháng 6 năm 2014, Trang 151-162.
[4] Quisquater, J. J., & Couvreur, C.
Phan Tich Chi Tiet RSA + CRT
10
“Thuật toán giải mã nhanh cho hệ mật khóa công khai RSA.”
Tạp chí Điện tử (Electronics Letters), Tập 18, Số 21, Trang 905-907, năm 1982.
[5] Abutaha, Mohammed, et al.
“Bài báo khảo sát: Mật mã học là khoa học về bảo mật thông tin.”
Tạp chí Quốc tế về Khoa học Máy tính và Bảo mật (International Journal of
Computer Science and Security - IJCSS), Tập 5, Số 3, Trang 298, năm 2011.
[6] Alawadhi, R., & Nair, S.
“Một hệ mật mã có kiểm soát lỗi tích hợp để truyền thông bảo mật và đáng tin
cậy.”
Tạp chí Quốc tế về Khoa học Máy tính và Bảo mật (International Journal of
Computer Science and Security - IJCSS), Tập 7, Số 2, Trang 48, năm 2013.
Phan Tich Chi Tiet RSA + CRT
11
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )