KHÁI NIỆM VỀ THUẬT TOÁN RSA - RSA là thuật toán mã hóa sử dụng một cặp khóa, bao gồm khóa công khai và khóa bí mật, để mã hóa thông tin được phát triển vào năm 1977 bởi ba nhà khoa học R
Trang 1UỶ BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG CAO ĐẲNG LÝ TỰ TRỌNG THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN KẾT THÚC HỌC PHẦN
BẢO MẬT DỮ LIỆU
CHỦ ĐỀ:
THUẬT TOÁN MẬT MÃ RSA Giảng viên hướng dẫn: LÊ ĐỨC ANH
Sinh viên: Võ Cao Thái Sơn (23004199)
Sinh viên: Vũ Thị Bảo Hân (23004177)
Sinh viên: Nguyễn Công Nhật (23004193)
Lớp: 23C2-TKW1
Tp.Hồ Chí Minh, tháng 09/2024
Trang 2DANH SÁCH NHÓM
TÊN
CÔNG VIỆC ĐƯỢC PHÂN CÔNG
MỨC ĐỘ HOÀN THÀNH ( SV đánh giá )
MỨC ĐỘ HOÀN THÀNH (GV Đánh giá)
Thái Sơn
- CODE
- Demo giao diện 100%
2 23004177 Vũ Thị BảoHân -Tìm thông tin 100%
3 23004193 Công NhậtNguyễn - Làm word-CODE 100%
NHẬN XÉT, ĐÁNH GIÁ CỦA GIÁO VIÊN
Trang 3
MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ THUẬT TOÁN RSA
1 KHÁI NIỆM VỀ THUẬT TOÁN RSA
2 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN THUẬT TOÁN RSA
3 PHẠM VI ỨNG DỤNG THUẬN TOÁN RSA CHƯƠNG 2: MÃ HÓA – GIẢI MÃ
1 CÁCH THỨC MÃ HÓA THUẬT TOÁN RSA
CHƯƠNG 3: TRIỂN KHAI THUẬT TOÁN
1 CODE
2 DEMO GIAO DIỆN:
CHƯƠNG 4: TÀI LIỆU THAM KHẢO
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ THUẬT TOÁN RSA
1 KHÁI NIỆM VỀ THUẬT TOÁN RSA
- RSA là thuật toán mã hóa sử dụng một cặp khóa, bao gồm khóa công khai và khóa bí mật, để mã hóa thông tin được phát triển vào năm 1977 bởi ba nhà khoa học Ron Rivest, Adi Shamir và Leonard Adleman RSA sử dụng rộng rãi trong nhiều ứng dụng bảo mật, bao gồm chữ ký số, xác thực, mã hóa đường truyền
2 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN THUẬT TOÁN RSA
- Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuy nhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật
- RSA đã tạo ra một bước đột phá trong lĩnh vực bảo mật thông tin và đã trở thành nền tảng cho nhiều giao thức bảo mật, bao gồm HTTPS và SSL/TLS
- Các cải tiến liên tục đã thực hiện để nâng cao độ an toàn và hiệu suất, chẳng hạn như sử dụng số nguyên tố lớn hơn và các phương pháp mã hoá hybrid kết hợp giữa mã hoá đối xứng và bất đối xứng
3 PHẠM VI ỨNG DỤNG THUẬT TOÁN RSA
- Bảo mật truyền thông : RSA được sử dụng trong giao thức SSL/TLS để bảo vệ
dữ liệu trong quá trình truyền tải trên internet
- Chữ ký số : RSA cho phép xác thực danh tính và tính toàn vẹn của tài liệu qua chữ ký số, giúp đảm bảo rằng nội dung không bị thay đổi
- Mã hoá dữ liệu : Dùng để mã hoá thông tin nhạy cảm, như thông tin thẻ ứng dụng hoặc hồ sơ cá nhân
- Quản lý khoá : RSA hỗ trợ trong việc trao đổi khoá an toàn giữa các bên, đóng vai trò quan trọng trong các hệ thống hybrid
- Xác thực : Được áp dụng trong các hệ thống xác thực người dùng, đảm bảo chỉ những người có quyền mới có thể truy cập thông tin
Trang 5CHƯƠNG 2: MÃ HÓA – GIẢI MÃ
1 CÁCH THỨC MÃ HÓA THUẬT TOÁN RSA
1.1 MÃ HOÁ VÀ GIẢI MÃ THUẬT TOÁN RSA
- Mã Hoá: Khi có một bản rõ (thông điệp) M, ta cần chuyển nó thành một số tự nhiên m sao cho 0 < m < n và m nguyên tố cùng nhau với n Điều này có thể thực hiện dễ dàng bằng cách sử dụng các kỹ thuật padding (thêm dữ liệu bổ sung) Sau đó, ta tiến hành mã hóa số m thành c (bản mã) bằng công thức:
c = m^e mod n
- Giải mã: Người nhận sử dụng private key (n, d) để giải mã bản mã c nhằm lấy lại số m bằng công thức:
m = c^d mod n
- Sau khi có m, ta có thể khôi phục lại bản tin ban đầu M bằng cách đảo ngược quá trình padding
Trang 61.2QUY TRÌNH TẠO KHOÁ
- Chọn hai số nguyên tố lớn: p và q
- Tính n = p × q
- Tính hàm Euler φ(n) = (p - 1) × (q - 1)
- Chọn e sao cho 1 < e < φ(n) và gcd(e, φ(n)) = 1
- Tính d sao cho d × e ≡ 1 (mod φ(n))
- Khóa công khai là (e, n) và khóa riêng tư là (d, n)
Ví dụ:
Trang 7Bước 1: Chọn hai số nguyên tố lớn p và q
Chọn hai số nguyên tốp và q Các số này phải được chọn ngẫu nhiên và phải đủ lớn để đảm bảo tính bảo mật
Chọn p = 61 và q = 53
Bước 2: Tính n = p × q
Tínhn = p × q Số n này sẽ là một phần của cả khóa công khai và khóa riêng tư n
sẽ là modulus trong các phép toán mã hóa và giải mã
n=61×53=3233n = 61 \times 53 = 3233n=61×53=3233
Bước 3: Tính hàm Euler φ(n)
Tínhφ(n) = (p - 1) × (q - 1), trong đó φ(n) là hàm Euler của n Hàm Euler này được sử dụng để tính toán khóa riêng tư
ϕ(3233)=(61−1)×(53−1)=60×52=3120\phi(3233) = (61 - 1) \times (53 - 1) = 60 \
times 52 = 3120ϕ(3233)=(61−1)×(53−1)=60×52=3120
Bước 4: Chọn số e (khóa công khai)
Chọn một số nguyên e sao cho:
1 < e < φ(n)
e phải là một số nguyên tố cùng nhau với φ(n), tức là gcd(e, φ(n)) = 1 Điều này đảm bảo rằng e và φ(n) không có ước chung ngoài 1
Sốe này sẽ là phần của khóa công khai và thường được chọn là các số nhỏ như
65537 hoặc 17 vì chúng dễ tính toán và đảm bảo tính bảo mật
Chọn e = 17 (vì gcd(17, 3120) = 1, e và φ(n) là số nguyên tố cùng nhau) Bước 5: Tính số d (khóa riêng tư)
Tính sốd sao cho d×e≡1mod φ(n)d \times e \equiv 1 \mod φ(n)d×e≡1modφ(n), nghĩa làd là nghịch đảo modular của e modulo φ(n)
Có thể tínhd bằng cách sử dụng thuật toán Euclid mở rộng
Tính d = 2753 sao cho 17×2753≡1mod 312017 \times 2753 \equiv 1 \mod
312017×2753≡1mod3120
Bước 6: Khóa công khai và khóa riêng tư
Trang 8Khóa công khai bao gồm hai giá trị (e, n).
Khóa riêng tư bao gồm hai giá trị (d, n)
Ví dụ của cặp khóa trong trường hợp này:
Khóa công khai (e, n) = (17, 3233)
Khóa riêng tư (d, n) = (2753, 3233)
1.3 QUY TRÌNH MÃ HOÁ
-Chuẩn bị khóa công khai: Sử dụng khóa công khai (e, n)
-Chuyển đổi thông điệp thành số nguyên : Chuyển thông điệp (plaintext) thành
số nguyênm
-Áp dụng công thức mã hóa: Mã hóa thông điệp bằng công thức c = m^e \mod n
-Truyền thông điệp mã hóa: Gửi thông điệp mã hóa c đến người nhận.
Ví dụ:
Giả sử chúng ta có các giá trị sau:
Khóa công khai(e = 17, n = 3233)
Thông điệp cần mã hóa là m = 65 (giả sử thông điệp là ký tự "A", mã ASCII của
"A" là 65)
Áp dụng công thức mã hóa:
Sử dụng công thức mã hóa c=memod nc = m^e \mod nc=memodn:
c=6517mod 3233c = 65^{17} \mod 3233c=6517mod3233
Việc tính toán này có thể sử dụng phần mềm hoặc công cụ tính toán số học Kết quả tính toán sẽ cho ra giá trịc = 2790
Kết quả mã hóa:
Thông điệp mã hóa làc = 2790
Thông điệp đã mã hóa này sẽ được gửi đi, và chỉ có người nhận với khóa riêng tư phù hợp mới có thể giải mã được nó
Trang 10CHƯƠNG 3: TRIỂN KHAI THUẬT TOÁN
1. CODE
Trang 181 DEMO GIAO DIỆN
Trang 20CHƯƠNG 4: TÀI LIỆU THAM KHẢO
- Bài báo “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems" Tác giả: Ron Rivest, Adi Shamir, Leonard Adleman
- Bài báo“The RSA Algorithm” Tác giả: David R Stinson
- Sách "Cryptography and Network Security" Tác giả: William
Stallings
- Sách "Introduction to Modern Cryptography" Tác giả: Jonathan Katz, Yehuda Lindell
~ ~ HẾT ~ ~