Thuật toán được Ron Rivest, AdiShamir và Len Adleman(R.S.A) mô tả lần đầu tiên vàonăm 1977THUẬT TOÁN MÃ HÓA RSA1. Giới thiệu chung090620142Nhóm 12 lớp KHMT4 k3 Trước đó, vào năm 1973, Clifford Cocks một nhà toánhọc ngườiAnh đã mô tả một thuật toán tương tự. Nhưng tạithời điểm đó thìthuậttoán này không khảthi và chưa bao giờ được thực nghiệm1. Độ bảo mật cao (nghĩa là để giải mã được mà không biết khoá mật thì phải tốn hàng triệu năm). 2. Thao tác nhanh(thao tác mã hoá và giải mã tốn ít thời gian). 3. Dùng chung được. 4. Có ứng dụng rộng rãi. 5. Có thể dùng để xác định chủ nhân (dùng làm chữ ký điện tử)
Trang 1N H Ó M 1 2 :
1 V Ũ N G Ọ C Đ I Ệ P
2 Đ Ỗ N I N H T Ấ T Đ I Ệ P
3 N G U Y Ễ N V Ă N T O Ả N
THUẬT TOÁN MÃ HÓA
RSA
1
AN TOÀN VÀ BẢO MẬT
THÔNG TIN
GV hướng dẫn: Thạc sĩ Đỗ Thị Minh Nguyệt
Trang 2- Thuật toán được Ron R ivest, Adi
( R.S.A ) mô tả lần đầu tiên vào
THUẬT TOÁN MÃ HÓA RSA
1 Giới thiệu chung
2
học người Anh đã mô tả một thuật toán tương tự.
thi và chưa bao giờ được thực nghiệm
Trang 31 Độ bảo mật cao (nghĩa là để giải mã được mà không biết khoá
mật thì phải tốn hàng triệu năm)
2 Thao tác nhanh(thao tác mã hoá và giải mã tốn ít thời gian)
3 Dùng chung được
4 Có ứng dụng rộng rãi
5 Có thể dùng để xác định chủ nhân (dùng làm chữ ký điện tử)
3
THUẬT TOÁN MÃ HÓA RSA
Thuật toán mã hóa RSA thoả mãn 5 yêu cầu của một hệ
mã hiện đại:
Trang 4THUẬT TOÁN MÃ HÓA RSA
Thuật toán RSA có hai Khóa:
- Khóa công khai (Public key):
được công bố rộng rãi cho mọi
người và được dùng để mã hóa
- Khóa bí mật (Private key):
Những thông tin được mã hóa
bằng khóa công khai chỉ có thể
được giải mã bằng khóa bí mật
tương ứng
Trang 5THUẬT TOÁN MÃ HÓA RSA
2 Mô tả hoạt động(tiếp)
Chọn p,q nguyên tố Tính n =p*q
Tính Φ(n) = (p-1)(q-1)
e
Chọn khóa riêng d
d
Chọn khóa công khai e
(0< e < Φ(n)) (e< >Φ(n))
Bản mã C Bản rõ m
Bản rõ gốc m
n
m
n
c
1
e
d
Trang 62.1 Tạo khóa
THUẬT TOÁN MÃ HÓA RSA
Lý thuyết
Bước 1:B (người nhận) tạo hai số nguyên tố
lớn ngẫu nhiên p và q
Bước 2: tính n=p*q và Φ(n) = (p-1)(q-1)
Bước 3: chọn một số ngẫu nhiên e
(0< e < Φ(n)) sao cho ƯCLN(e,Φ(n))=1
Bước 4: tính bằng cách dùng
thuật toán Euclide
Tìm số tự nhiên x sao cho
Bước 5:
- n và e làm khoá công khai (public key),
- d làm khoá bí mật (pivate key).
Ví dụ:
Bước 1: Chọn số 23 và 41 (hai số này là 2 số nguyên tố)
Bước 2: n = 23 * 41 = 943
Φ(n) = 22 * 40 = 880
Bước 3:
chọn e = 7 vì ƯCLN(7, 880)=1
Bước 4: => 7d=1+880x
=>d= 503 và x = 4
Bước 5:
- n = 943 và e = 7
- d = 503
6
1
e
d
e
n x
d *( )1
e
n x
d *( )1
Trang 7THUẬT TOÁN MÃ HÓA RSA
7
2.2 Mã hoá và giải mã
n
m
c e mod
Bước 1: A nhận khoá công khai của B.
Bước 2: A biểu diễn thông tin cần gửi
thành số m (0 <= m <= n-1)
Bước 3: Tính
Bước 4: Gửi c cho B
Bước 5: Giải mã
tính
=> m là thông tin nhận được.
Bước 1: A nhận khoá công khai
n = 943 và e = 7 Bước 2: Thông tin cần gửi
m = 35 Bước 3:
Bước 4:
Bước 5: Gải mã
=> m = 35
943 mod
357
c
545
c
n
c
Trang 8- Độ an toàn của hệ thống RSA dựa trên 2 vấn đề: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn
và bài toán RSA.
- Vì vậy muốn xây dựng hệ RSA an toàn thì n=p*q phải
là một số đủ lớn, để không có khả năng phân tích nó về mặt tính toán Để đảm bảo an toàn nên chọn các
sốnguyên tố p và q từ 100 chữ số trở lên.
- Dưới đây là bảng thời gian phân tích mã RSA
8
THUẬT TOÁN MÃ HÓA RSA
3 Độ an toàn mã hóa RSA
Trang 9Số các chữ số trong
số được phân tích
Thời gian phân tích
THUẬT TOÁN MÃ HÓA RSA
3 Độ an toàn mã hóa RSA(tiếp)
Trang 10THUẬT TOÁN MÃ HÓA RSA
3 Độ an toàn mã hóa RSA(tiếp)
-Cách thức phân phối khóa công khai là một trong những yếu tố
quyết định đối với độ an toàn của RSA.
-Vấn đề này nảy sinh ra 1 lỗ hổng gọi là Man-in-the-middle attack
(tấn công vào giữa)
- Khi A và B trao đổi thông tin thì C có thể gửi cho A một khóa bất kì để A tin rằng đó là khóa công khai của B gửi
- Sau đó C sẽ giải mã và đánh cắp được thông tin Đồng thời mã hóa lại thông tin theo khóa công khai của B và gửi lại cho B
- Về nguyên tắc, cả A và B đều không phát hiện được sự can
thiệp của C
Trang 1111
Trang 12THUẬT TOÁN MÃ HÓA RSA
- Thông tin truyền đi trên mạng cũng cần thiết phải được xác nhận người gửi
- Các văn bản truyền trên mạng (dưới dạng số hoá) cần phải có chữ
ký của người gửi để xác nhận trách nhiệm của người gửi
- Chữ ký dùng ở đây là một dãy bit và được gọi là″chữ ký điện tử″.
- Mỗi người cần 1 cặp khóa gồm khóa công khai & khóa bí mật
Khóa bí mật dùng để tạo chữ ký số (CKS)
khóa công khai dùng để thẩm định CKS-> xác thực
4 Ứng dụng của RSA vào chữ ký điện tử
Trang 13Bản tóm lược Hàm băm
Gắn với thông điệp dữ liệu
Mã hóa
Thông điệp dữ liệu
Khóa bí mật
Chữ ký số
Thông điệp dữ liệu
được ký số
THUẬT TOÁN MÃ HÓA RSA
4.1 Tạo chữ ký số
Trang 14Bản tóm lược Hàm băm
Tách
Giải mã Thông điệp dữ liệu
Khóa công khai
Chữ ký số
Thông điệp dữ liệu được ký số
Giải mã được ?
Không đúng người gửi
Bản tóm lược
Giống nhau ?
Nội dung thông điệp bị thay đổi
Nội dung thông điệp
tòan vẹn
THUẬT TOÁN MÃ HÓA RSA
4.1 Thẩm định chữ ký số
Trang 15Tài liệu tham khảo
15
Trang 1616