Cơ bản về mã hóa thông tin và giải thuật mã hóa khóa bất đối xứng RSA
Bài đăng này đã không được cập nhật trong 3 năm
I. Mã hóa thông tin là gì ?
1. Khái niệm.
- Có nhiều định nghĩa khác nhau về mã hóa thông tin, nhưng có thể hiểu nôm na: "Mã hóa thông tin là việc biến một bản rõ(cái mà bất kì ai chỉ cần đọc cũng có thể dễ dàng hiểu được) thành một bản mã(cái mà chỉ những người "giải mã" được thì mới có thể hiểu được)."
- Để hiểu rõ hơn khái niệm này chúng ta cùng đến với phần 2 dưới đây.
2. Các thuật ngữ cơ bản trong mã hóa thông tin.
- Bản rõ (plaintext) : là thông tin chưa được mã hóa hay thông tin ở dạng có thể hiểu được.
- Bản mã (ciphertext hay encrypted text) : là thông tin đã được mã hóa hay thông
- tin ở dạng đã bị xáo trộn.
- Mã hóa (Encryption): là hành động xáo trộn bản rõ để chuyển thành bản mã.
- Giải mã (Decryption): là hành động giải xáo trộn bản mã để chuyển thành bản rõ.
- Mã hóa sử dụng một thuật toán (Algorithm) để mã hóa thông tin.
3. Các phương pháp mã hóa cơ bản.
- Phương pháp thay thế
- Phương pháp đổi chỗ
- Phương pháp XOR
- Phương pháp Vernam
- Phương pháp sách hoặc khóa chạy.
- Phương pháp sử dụng hàm băm. Tương ứng với nó thì cũng có phương pháp giải mã.
4. Các phương pháp giải mã.
Các giải thuật mã hóa khóa đối xứng: DES, Triple-DES, AES,.. Các giải thuật mã hóa khóa bất đối xứng: RSA, Rabin, ElGamal,.. Các hàm băm: MD2, MD4, MD5, MD6, SHA0, SHA1, SHA2, SHA3.
5. Vai trò của mã hóa.
Mã hoá thông tin có thể được sử dụng để đảm bảo an toàn thông tin trên đường truyền với các thuộc tính:
- Bí mật (confidentiality).
- Toàn vẹn (integrity).
- Xác thực (authentication).
- Không thể chối bỏ (non-repudiation).
6. Lịch sử của mã hóa.
- Cách đây khoảng 4000 năm, mã hóa thô sơ đã được người Ai Cập sử dụng.
- Người Hy Lạp và Ấn Độ cũng đã biết sử dụng mã hóa thông tin từ hàng ngàn năm trước đây.
- Tuy nhiên mã hóa chỉ được phát triển mạnh từ những năm 1800 trở đi nhờ áp dụng toán học và đặc biệt từ thế kỉ 20, mã hóa đã có bước tiến vượt bậc nhờ vào sự phát triển của khoa học máy tính và ngành công nghệ thông tin.
- Năm 1976 chuẩn mã hóa DES (Data Encryption Standard) được cơ quan an ninh quốc gia Mỹ thừa nhận và sử dụng rộng rãi.
- Năm 2000, chuẩn mã hóa AES (Advanced Encryption Standard) được thừa nhậnNăm 1977, ba nhà khoa học Ronald Rivest, Adi Shamir, và Leonard Adleman giới thiệu giải thuật mã hóa khóa công khai RSA.
II. Giải thuật mã hóa khóa bất đối xứng RSA.
1. Mã hóa khóa bất đối xứng RSA là gì ?
- Giải thuật mã hóa RSA được 3 nhà khoa học Ronald Rivest, Adi Shamir và Leonard Adleman phát minh năm 1977 và tên gọi của nó cũng được lấy theo 3 chữ cái đầu của 3 nhà khoa học.
- RSA sử dụng một cặp khóa: Khóa công khai (Public key) dùng để mã hóa; Khóa riêng (Private key) dùng để giải mã. Chỉ khóa riêng cần giữ bí mật. Khóa công khai có thể công bố rộng rãi.
2. Tìm hiểu về giải thuật mã hóa RSA
a. Thủ tục sinh khóa RSA.
Khi đó ta có (n, e) là khóa công khai, (n, d) là khóa riêng.
b. Thủ tục mã hóa và giải mã.
c. Ví dụ minh họa.
Sinh khóa: Mã hóa và giải mã:
d. Một số yêu cầu với quá trình sinh khóa RSA.
- Các số nguyên tố p và q phải được chọn sao cho việc phân
- tích n (n = pq) là không khả thi về mặt tính toán.
- p và q nên có cùng độ lớn (tính bằng bit) và phải là các số đủ lớn.
- Hiệu số p – q không nên quá nhỏ.
- Không nên sử dụng số mũ mã hóa (e) nhỏ. Khi sử dụng e nhỏ có thể tăng tốc độ mã hóa, tuy nhiên đồng nghĩa với nó là chi phí cho việc phân tích vét cạn là không lớn => Kẻ tấn công có thể nghe trộm và lấy được bản mã.
- Không nên sử dụng số mũ giải mã (d) nhỏ. Khi sử dụng d nhỏ có thể tăng tốc độ giải mã, tuy nhiên nếu d nhỏ và gcd(p-1, q-1) (gcd: ước số chung lớn nhất) cũng nhỏ thì d có thể tính được tương đối dễ dàng từ khóa công khai (n, e).
Tham khảo
- HANDBOOK of APPLIED CRYPTOGRAPHY - Alfred J. Menezes , Paul C. van Oorschot , Scott A. Vanstone .
- Giáo trình an toàn và bảo mật thông tin - TS. Hoàng Xuân Dậu.
All rights reserved