Bài thi cuối kỳ môn ANM 1 Nhom3 N6 TIỂU LUẬN MÔN HỌC AN NINH MẠNG VIỄN THÔNG Đề tài Tìm hiểu các ứng dụng của giải thuật RSA Giảng viên T s Phạm Anh Thư BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG N[.]
Trang 1
TIỂU LUẬN MÔN HỌC
AN NINH MẠNG VIỄN THÔNG
Đề tài:
Tìm hiểu các ứng dụng của giải thuật RSA
Giảng viên: T.s Phạm Anh Thư
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2Kết quả kiểm tra trùng lặp
Link Check:
http://doit.uet.vnu.edu.vn/documents/bao-cao-rsa-1?fbclid=IwAR1QS98UFeur8o7YEFIwu1QBcs7EZurC7t3c2Vo_xsBV6sy
FWNIt3ctX6R
Trang 3LỜI NÓI ĐẦU
Chúng ta đang sống trong kỉ nguyên công nghệ, kỉ nguyên của tri thức với sự phát triển như vũ bão của công nghệ thông tin thì những ứng dụng của Tin học đã len lỏi vào mọi ngóc ngách, phục vụ ngày một đắc lực hơn cho cuộc sống của con người Cùng với đó Chữ ký số được sử dụng trong rất nhiều lĩnh vực, ví dụ: trong kinh tế với các cuộc trao đổi hợp đồng giữa các đối tác kinh doanh; trong xã hội là các cuộc bỏ phiếu kín khi tiến hành bầu cử từ xa; hay trong các cuộc thi có phạm vi rộng lớn
Một chữ ký số đã được xây dựng và phát triển là: RSA Mặc dù bản thân nó vẫn còn tồn tại nhiều hạn chế như là về kích thước chữ ký, khả năng chống giả mạo chưa cao, tuy nhiên, những khả năng mà nó đem lại cho chúng ta là rất hữu ích
Khi áp dụng chữ ký số, vấn đề an ninh luôn được chúng ta quan tâm hàng đầu Một chữ
ký số chỉ thực sự được áp dụng trong thực tế nếu như nó được chứng minh là không thể hoặc rất khó giả mạo Mục tiêu của những kẻ tấn công các sơ đồ chữ ký chính là việc giả mạo chữ ký, điều này có nghĩa là kẻ tấn công sẽ sinh ra được chữ ký của người ký lên thông điệp, mà chữ ký này sẽ được chấp nhận bởi người xác nhận
Do vậy, để bảo mật, các thông tin truyền trên Internet ngày nay đều có xu hướng được
mã hoá Trước khi truyền qua mạng Internet, người gửi mã hoá thông tin, trong quá trình truyền, dù có ''chặn'' được các thông tin này, kẻ trộm cũng không thể đọc được vì bị mã hoá Khi tới đích, người nhận sẽ sử dụng một công cụ đặc biệt để giải mã Phương pháp
mã hoá và bảo mật phổ biến nhất đang được thế giới áp dụng là phương pháp mã hóa công khai RSA, chữ ký điện tử
Vì vậy nhóm em đã quyết định chọn đề tài “ Ứng dụng hệ mật mã RSA và chữ kí điện
tử vào việc mã hóa thông tin trong thẻ ATM ”
Nội dụng của tiểu luận của nhóm em gồm các chương sau:
Chương 1: Thuật toán mã hóa RSA
Chương 2: Các kiểu tấn công của RSA
Chương 3: Ứng dụng của RSA
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 2
MỤC LỤC 4
BẢNG PHÂN CÔNG CÔNG VIỆC 6
DANH MỤC HÌNH 6
CÁC THUẬT NGỮ VIẾT TẮT 6
Mục đích và phạm vi nghiên cứu của tiểu luận 7
Phương pháp nghiên cứu 7
CHƯƠNG 1 THUẬT TOÁN MÃ HÓA RSA 7
1.1 Giới thiệu 7
1.2 Các thuật toán sử dụng 7
1.2.1 Thuật toán sinh khóa 7
1.2.2 Thuật toán mật mã hóa 8
1.2.3 Thuật toán giải mật mã 8
1.3 Đánh giá về hệ mật mã RSA 10
1.3.1 Độ an toàn : 10
1.3.2 Hiệu suất thực hiện của thuật toán RSA 10
1.3.3 Chi phí và tốc độ thực hiện của thuật toán RSA 10
CHƯƠNG 2: CÁC KIỂU TẤN CÔNG CỦA RSA 10
2.1 Tấn công dạng 1: Tìm cách xác định khóa bí mật 10
2.1.1 Bị lộ một trong các giá trị: p, q, (n) 10
2.1.2 Tấn công dựa theo khóa công khai n và b của người ký 11
2.1.3 Khi nhiều người cùng sử dụng chung “modulo n” 11
2.1.4 Sử dụng giá trị “modulo n” nhỏ 13
2.1.5 Sử dụng các tham số (p-1) hoặc (q-1) có các ước nguyên tố nhỏ 14
2.2 Tấn công dạng 2: Giả mạo chữ ký (không tính trực tiếp khóa bí mật) 14
2.2.1 Người gửi G gửi tài liệu x cùng chữ ký y đến người nhận N, sẽ có 2 cách xử lý: 14
2.2.2 Trường hợp T lấy trộm được thông tin trên đường truyền từ G đến N 14
CHƯƠNG 3: ỨNG DỤNG CỦA THUẬT TOÁN RSA 15
3.1 Ứng dụng trong bảo mật thông điệp và xác thực thông điệp 15
3.1.1 Bảo mật thông điệp 15
3.1.2 Xác thực thông điệp 15
3.2 Ứng dụng của RSA trong bảo mật dữ liệu 15
Trang 53.2.2 Truyền tải dữ liệu 17
3.2.3 Chữ kí số 17
3.3 Ứng dụng của RSA trong công nghệ thông tin 18
3.3.1 Nghành tài chính – ngân hàng 18
3.3.2 Cho bảo mật các ứng dụng và website 18
3.4 Một số ứng dụng khác 19
3.4.1 Công nghệ ARC trên cửa cuốn Austdoor 19
3.4.2 Phát triển thiết bị PKI Token an toàn sử dụng trong hệ thống CA ( tích hợp thuật toán mật mã RSA) 19
TỔNG KẾT 22
TÀI LIỆU THAM KHẢO 23
Trang 6BẢNG PHÂN CÔNG CÔNG VIỆC
Tìm hiểu và tổng hợp nội dung: Các kiểu tấn công của RSA
Tổng hợp Nội dung của cả nhóm (Lý do chọn đề tài, mục đích, phạm vi, phương pháp)
Tìm hiểu và tổng hợp nội dung: Thuật toán mã hóa RSA
Tìm hiểu và tổng hợp nội dung: Ứng dụng của RSA
DANH MỤC HÌNH
Hình 1 : Sơ đồ biểu diễn thuật toán mã hóa RSA 8
Hình 2 : Quy trình mã hóa và giải mã dữ liệu của RSA 9
Hình 3: VD minh họa quá trình mã hóa và giải mã 9
Hình 4: Sơ đồ bảo mật thông điệp 15
Hình 5: Sơ đồ xác thực thông điệp 15
Hình 6: Giải pháp RSA SecurID 16
Hình 7: Thẻ RSA Viettinbank 18
Hình 8: Khóa mã ARC 19
Hình 9: Kiến trúc thiết bị PKI token 20
CÁC THUẬT NGỮ VIẾT TẮT
Adleman
Trang 7Mục đích và phạm vi nghiên cứu của tiểu luận
• Mục đích: Nhóm em tìm hiểu đè tài này để tìm hiểu rõ hơn về giải thuật chữ ký
số RSA cúng như nắm rõ được ưu nhược điểm của nó Đồng thời tìm hiểu các ứng dụng thiết thực của RSA trong thực thế như thế nào
• Phạm vi: Nghiên cứu về hệ mật mã hóa RSA, Các kiểu tấn công của RSA, và Ứng dụng của RSA
Phương pháp nghiên cứu
• Hoạt động nghiên cứu, tổng hợp, phân tích lý thuyết có sẵn trên cơ sở kiến thức được học
• Hoạt động nghiên cứu tài liệu
Sau đây nhóm em xin trình bày phần nội dung chính của tiểu luận
CHƯƠNG 1 THUẬT TOÁN MÃ HÓA RSA
1.1 Giới thiệu
Hệ thuật toán mã khóa công khai RSA là hệ thống mật mã do các giáo sư Ronald Rivest, Adi Sharmir và Leonard Adleman phát minh năm 1978 tại Học viện công nghệ Masachusetts (MIT)
Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn
Hệ mã RSA được xây dựng trên cơ sở mã hóa khối trong đó khóa mã hóa là cặp (e,n) gồm số mũ e và module n Với n là tích số của 2 số nguyên tố rất lớn nào đó, n = p*q còn (e, φ(n)) = 1, với φ(n) là giá trị hàm Euler của n, trong trường hợp này φ(n) = (p - 1)*(q-1)
• Tìm một số e sao cho e nguyên tố cùng nhau với ∅ (n)
• Tính số d sao cho e.d ≡ 1 mod ∅ (n) ( d là nghịch đảo của e trong phép modulo ∅(n)
• Khóa công khai KU là cặp (e, n) , khóa riêng KR là cặp (d,n)
Trang 81.2.2 Thuật toán mật mã hóa
Hệ RSA là một hệ mật mã điển hình về kiểu mã hóa khối Nghĩa là, thông điệp được chia thành nhiều khối (hoặc chuỗi) có chiều dài cố định, và mỗi khối sẽ được mã hóa riêng Giả sử để gửi thông điệp bí mật M cho người nhận trong nhóm gửi thông tin an toàn, người gửi phải thực hiện các bước như sau:
• Thu nhận khóa công khai KU (d,n) của người nhận
• Dùng khóa công khai thực hiện một thuật toán mã hóa để mã hóa thông tin mà chỉ người có KR mới có thể giải mã được
Hình 1 : Sơ đồ biểu diễn thuật toán mã hóa RSA Việc mã hóa thực hiện theo công thức :
Theo phương án 1 , mã hóa bảo mật : C =E (M, KU ) = Me mod n
Theo phương án 2 , mã hóa chứng thực : C =E (M, KR ) = Md mod n
1.2.3 Thuật toán giải mật mã
Để thực hiện quá trình giải mã, khôi phục lại nội dung của thông điệp M từ bản mã C nhận được, người nhận sẽ thực hiện các bước như sau :
• Dùng khóa riêng tư KR (e , n) của bên nhận để giải mã bản tin được mã hóa
• Thực hiện phép biến đổi ngược để giải mã thông tin và tìm ra thông tin M ban đầu
Việc giải mã thực hiện theo công thức :
• Theo phương án 1 , mã hóa bảo mật M̅ =D (C , KR ) = Cd mod n
• Theo phương án 2 , mã hóa chứng thực M̅ =D (C , KU ) = Ce mod n
Trang 9Hình 2 : Quy trình mã hóa và giải mã dữ liệu của RSA
Ví dụ RSA: Để minh họa ta sẽ thực hiện một ví dụ về mã hóa RSA
1 Chọn p = 11 và q = 3, do đó n = pq = 33 (25 = 32 <33 < 64 = 26 )
2 ∅ (n) = (p-1)(q-1) = 20
3 Chọn e = 3 nguyên tố cùng nhau với ∅ (n)
4 Tính nghịch đảo của e trong phép modulo ∅ (n) được d = 7 (3x7 = 21)
5 Khóa công khai KU = (e, n) = (3, 33) Khóa bí mật KR = (d, n) = (7, 33)
Theo phương án 1 (mã hóa bảo mật )
Trang 10Vì vậy các hệ mã RSA vẫn có thể coi là an toàn với các số nguyên tố bí mật p ,q xấp xỉ bằng nhau , và trên 100 chữ số
1.3.2 Hiệu suất thực hiện của thuật toán RSA
Tốc độ thực hiện của hệ RSA là một trong những điểm yếu so với các hệ mật mã khóa đối xứng Do thuật toán RSA sử dụng hai khóa riêng tư và công khai cùng với thuật toán module phức tạp
1.3.3 Chi phí và tốc độ thực hiện của thuật toán RSA
a) Chi phí
Để thực hiện thuật toán RSA phần lớn phải tốn chi phí thực hiện các phép tính cơ bản như: sinh khóa, mã hoá, giải mã Quá trình mã hoá và giải mã tương đương với chi phí thực hiện các phép tính luỹ thừa module n Để đảm bảo cho khoá bí mật được an toàn thì thường chọn số mũ công khai e nhỏ hơn nhiều so với số mũ bí mật d, do đó chi phí thời gian để thực hiện mã hoá dữ liệu nhỏ hơn nhiều so với thời gian giải mã
b) Tốc độ thực hiện
Tốc độ của RSA là một trong những điểm yếu của RSA so với các hệ mã đối xứng, so với hệ mã DES thì RSA chậm hơn từ 100 đến 1000 lần, vì vậy RSA không được dùng
để mã hoá khối lượng dữ liệu lớn mà trên thực tế người ta thường dùng hệ mã DES để
mã hóa khối dữ liệu lớn như văn bản và dùng RSA chỉ để mã hóa khóa giải mã của DES
CHƯƠNG 2: CÁC KIỂU TẤN CÔNG CỦA RSA
Trang 11Giải pháp phòng tránh: Quá trình tạo lập khóa phải được tiến hành ở một nơi kín đáo,
bí mật Sau khi thực hiện xong thì phải giữ cẩn thận khóa bí mật a, đồng thời hủy hết các giá tr trung gian: p, q, (n)
2.1.2 Tấn công dựa theo khóa công khai n và b của người ký
Lúc này, kẻ tấn công sẽ tìm cách phân tích giá trị n ra hai thừa số nguyên tố p và q Từ
đó, sẽ tính được (n)=(p-1).(q-1); cuối cùng tính được khóa bí mật a
Giải pháp phòng tránh: Nên chọn số nguyên tố p và q đủ lớn để việc phân tích n thành tích của hai thừa số nguyên tố là khó có thể thực hiện được trong thời gian thực Trong thực tế, người ta thường sinh ra các số lớn (ít nhất 100 chữ số), sau đó kiểm tra tính nguyên tố của nó
2.1.3 Khi nhiều người cùng sử dụng chung “modulo n”
Khi có k người cùng đ ng ký sử dụng chữ ký RSA, trung tâm phân phối khóa CA sẽ sinh
ra 2 số nguyên tố p và q, rồi tính số modulo n = p*q Sau đó, sinh ra các cặp khóa mã hóa/giải mã {ei,di} Trung tâm sẽ cấp cho người đ ng ký thứ i khóa bí mật di tương ứng, cùng với các thông tin như: n, danh sách khóa công khai {ei} (i=1…k) Lúc này, bất kỳ
ai có thông tin công khai như trên đều có thể:
- Mã hóa văn bản M để gửi cho người đăng ký thứ i, bằng cách sử dụng thuật toán
mã hóa RSA với khóa mã hóa ei:
Y = M ei mod n
- Người đăng ký thứ i có thể ký văn bản M bằng cách tính chữ ký:
Si = M di mod n Bất cứ ai cũng có thể xác thực rằng M được ký bởi người đăng ký thứ i bằng cách tính
Siei mod n và so sánh với M
• Việc sử dụng chung “modulo n” dẫn đến:
Trường hợp 1: Một thành viên có thể sử dụng khóa công khai và khóa bí mật của mình
để tính ra khóa bí mật của người khác Nghĩa là phải căn cứ vào khóa công khai e1, người giữ cặp khóa mã hóa/giải mã (e2,d2) mới có thể tìm được số nguyên d’1 để e1.d’1
= 1 mod (n) mà không cần phải biết (n)
Để có thể tìm được giá trị d’
1 này, ta cần tìm một số nguyên t, nguyên tố cùng nhau với
e1 và là bội của (n) Có thể tìm được vì (e, (n)) = 1
Khi đó, do t và e1 là ngyên tố cùng nhau nên tồn tại r và s để r.t + s.e1 = 1
Vì t là bội của (n) nên s.e1 1 mod (n), và nên d’1 = s
• Thủ tục tìm số dư d’
1 như sau:(trong đó, chỉ cần đến các giá trị e1,e2,d2)
Trang 12Nên ta có t nguyên tố cùng nhau với e1 Theo các định nghĩa trên, ta biết rằng e1 nguyên
tố cùng nhau với (n) Thủ tục trên đưa ra khóa giải mã e1. Vì độ phức tạp tính toán của thủ tục này là O((log n)2), nên đó là một khả năng đe dọa đến hệ thống Do đó, những thông tin mà có sẵn cho người dùng hợp pháp trong hệ thống có thể bẻ được hệ thống mật mã Tất nhiên, người dùng không thực hiện y nguyên theo yêu cầu của nhà thiết kế giao thức dành cho người dùng, nhưng vẫn có thể lấy được những thông tin cần thiết mà người dùng không vi phạm quy đinh của giao thức
Trường hợp 2: Sử dụng số modulo n chung cũng làm cho thuật toán RSA dễ bị tấn công, trong đó một người đăng ký có thể bẻ được hệ mật mã
Khi mật mã bị sập thì kênh bí mật bị lộ và người đăng ký này có thể giải mã các văn bản của người dùng khác, kênh chữ ký cũng hỏng vì người này có thể giả mạo chữ ký của người dùng khác mà không hề bị phát hiện Đó là sử dụng phương pháp xác suất để phân tích thừa số modulo n thành nhân tử hoặc sử dụng thuật toán tất đ nh để tính toán ra số
mũ giải mã mà không cần số modulo n Ý tưởng của kiểu tấn công này là phân tích số modulo n bằng cách tính căn bậc hai không tầm thường của 1 mod n Nghĩa là, tìm một
số b thỏa mãn:
b2 = 1 mod n
b ≠ ± mod n 1< b < n-1 Nếu mà tìm được số b như thế, thì số modulo n có thể được phân tích theo cách sau: Vì: b2 = 1 mod n nên b2 – 1=0 mod n
(b+1).(b-1)=0 (mod n) Hay (b+1).(b-1)=s.n = s.p.q trong đó s là số nguyên tùy ý Nghĩa là (b+1).(b-1) chia hết cho cả 2 số p và q
Nhưng vì 1<b<n-1 nên 0< b-1< b+1< n = p.q
Ta thấy, nếu b-1 chia hết cho p thì không chia hết cho q Tương tự với b+1
Trang 13Vì vậy, ƯCLN của b+1 và n phải là p hoặc q
Áp dụng thuật toán Euclid để phân tích ra thừa số của n Vì vậy, cách tấn công này tập trung vào việc tìm căn bậc hai không tầm thường của 1 mod n
Đặt e1 và d1 là khóa mã hóa và giải mã của người dùng hệ thống Theo định nghĩa,
e1.d1 = 1 mod (n) Vì vậy, e1.d1 – 1 phải là số nguyên nào đó, là bội của (n), và có thể tìm được các số nguyên không âm φ và k mà e1.d1 = c.(n)=2k φ, với φ là số lẻ
• Để tìm căn bậc hai không tầm thường của 1 mod n
- Chọn 1 số nguyên a sao cho (a,n) = 1 đồng thời 1<a< n-1
- Tìm số nguyên dương j nhỏ nhất thỏa mãn:
a 2j 1 mod n (Vì 2k φ là bội của (n), nên chắc chắn tồn tại số này)
- Đặt: b = a 2 j−1 mod n
- Nếu b ≠ -1 mod n thì nó là căn bậc hai không tầm thường của 1
- Nếu b = -1 mod n thì quay lại bước (1)
Nếu ta xây dựng thuật toán xác suất, thử lần lượt với m giá trị ngẫu nhiên a
Thuật toán dừng nếu tính chất đó được nghiệm đúng ở một lúc nào đó và cho kết quả
b = a 2 j−1 mod n Ngược lại, thuật toán cũng dừng nhưng không cho kết quả
Như vậy, thuật toán khi dùng m giá trị ngẫu nhiên a (1<a<n-1) sẽ cho kết quả với xác suất thành công ≥ 1– (1/2m) Và khi đó, ta tìm được phân tích p và q của modulo n Do
đó, một người trong cuộc có thể bẻ mật mã trong giao thức này với xác suất rất cao bằng cách sử dụng những thông tin mà mình có Cách tấn công này rất quan trọng vì nó chỉ
ra rằng những thông tin về cặp khóa mã hóa/giải mã có thể cho phép tìm ra thừa số của modulo n
Giải pháp phòng tránh: sử dụng giá trị modulo n khác nhau cho mỗi người tham gia
2.1.4 Sử dụng giá trị “modulo n” nhỏ
Như ta đã biết, trong sơ đồ chữ ký RSA thì công thức để tính giá trị chữ ký y trên bản
rõ x như sau: y = xa (mod n) với (y x Zn)
Lúc này, kẻ tấn công có thể tính được khóa bí mật a theo công thức sau:
a = logx (mod n) do các giá trị : x, y, n là công khai Đây chính là việc giải bài toán logarit rời rạc trên tập Zn Bởi vậy, nếu như giá trị modulo n mà nhỏ thì bằng cách áp dụng các thuật toán đã trình bày ở trên kẻ tấn công có thể tìm ra được khóa bí mật a Giải pháp phòng tránh: Nên chọn các số nguyên tố p và q đủ lớn để việc giải bài toán logarit rời rạc trên vành Zn là khó có thể th c hiện được trong thời gian thực