1. Trang chủ
  2. » Tất cả

Tìm hiểu các ứng dụng của giải thuật rsa

23 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu Các Ứng Dụng Của Giải Thuật RSA
Tác giả Nhóm 3 N6
Người hướng dẫn T.s Phạm Anh Thư
Trường học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Ninh Mạng
Thể loại Tiểu luận
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 0,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

Kế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 3

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

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

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

BẢ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 7

Mụ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 8

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

Hì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 10

Vì 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 11

Giả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 12

Nê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 13

Vì 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

Ngày đăng: 26/02/2023, 16:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w