Xem mẫu

  1. TRƯỜNG ĐẠI HỌC SÀI GÒN CHƯƠNG 4: MÃ HÓA CÔNG KHAI VÀ XÁC THỰC THÔNG ĐIỆP GV: LƯƠNG MINH HUẤN
  2. NỘI DUNG I. Các nguyên lý mã hóa công khai. II. Giải thuật mã hóa công khai RSA. III.Các giải pháp xác thực thông điệp. IV.Mã xác thực thông điệp. V. Hàm Hash an ninh. VI.Chữ ký số.
  3. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Mã hóa đối xứng có 2 yếu điểm: ▪ Vấn đề trao đổi khóa giữa người gửi và người nhận. ▪ Tính bí mật của khóa. ➢Vào năm 1976 Whitfield Diffie và Martin Hellman đã tìm ra một phương pháp mã hóa khác mà có thể giải quyết được hai vấn đề trên, đó là mã hóa khóa công khai (public key cryptography) hay còn gọi là mã hóa bất đối xứng (asymetric cryptography).
  4. Mô hình mã hóa công khai
  5. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Để khắc phục điểm yếu của mã hóa đối xứng người ta tập trung vào nghiên cứu theo hướng: có phương pháp nào để việc mã hóa và giải mã dùng hai khóa khác nhau? ➢Có nghĩa là C = E(P, K1) và P = D(C, K2).
  6. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Phương án 1: người nhận (Bob) giữ bí mật khóa K2, còn khóa K1 thì công khai cho tất cả mọi người biết. ▪ Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa. Bob dùng K2 để giải mã. ▪ Ở đây Trudy cũng biết khóa K1, tuy nhiên không thể dùng chính K1 để giải mã mà phải dùng K2. ▪ Do đó chỉ có duy nhất Bob mới có thể giải mã được. Điều này bảo đảm tính bảo mật của quá trình truyền dữ liệu. ▪ Ưu điểm của phương án này là không cần phải truyền khóa K1 trên kênh an toàn.
  7. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Phương án 2: người gửi (Alice) giữ bí mật khóa K1, còn khóa K2 thì công khai cho tất cả mọi người biết. ▪ Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa. Bob dùng K2 để giải mã. ▪ Ở đây Trudy cũng biết khóa K2 nên Trudy cũng có thể giải mã được. ▪ Do đó phương án này không đảm bảo tính bảo mật. Tuy nhiên lại có tính chất quan trọng là đảm bảo tính chứng thực và tính không từ chối.
  8. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Vì vậy nếu kết hợp phương án 1 và phương án 2, thì mô hình đề xuất của chúng ta khắc phục được các nhược điểm của mã hóa đối xứng. ➢Trong cả hai phương án, một khóa được giữ bí mật chỉ một người biết, còn khóa kia được công khai.
  9. MỘT SỐ QUY ƯỚC ➢ Để tránh nhầm lẫn với khóa bí mật của mã đối xứng, khóa bí mật trong mô hình trên được gọi là khóa riêng (private key) và ký hiệu là KR. ➢ Khóa công khai (public key) được ký hiệu là KU. ➢ Bản rõ được ký hiệu là M, còn bản mã giữ nguyên ký hiệu là C ➢ Phương án 1 viết lại thành: ▪ C = E(M, KU) ▪ M = D(C, KR) ➢ Phương án 2 viết lại thành: ▪ C = E(M, KR) ▪ M = D(C, KU)
  10. MỘT SỐ QUY ƯỚC ➢Để có được cặp khóa KR và KU như trên, người ta thường dùng các hàm một chiều (oneway function). Các hàm một chiều có tính chất là hàm nghịch đảo của chúng rất khó thực hiện. ➢Ví dụ về hàm một chiều: việc sinh ra hai số nguyên tố lớn p, q và tính tích N = pq thì thực hiện dễ dàng. ➢Tuy nhiên nếu chỉ cho trước N và thực hiện phân tích N để tìm lại hai số nguyên tố p, q là việc hoàn toàn bất khả thi về mặt thời gian.
  11. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Các phương pháp mã hóa thuộc loại mã hóa công khai: ▪ Knapsack; ▪ RSA; ▪ Elgaman; ▪ Phương pháp đường cong elliptic ECC; ▪ …..
  12. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Một số vấn đề cần nắm khi tìm hiểu mã hóa công khai: ➢Phép chia modulo: ▪ Phép chia modulo là phép chia lấy phần dư. Ví dụ: 27 mod 8 = 3, 35 mod 9 = 8. ▪ Nếu hai số a, b có cùng số dư trong phép chia cho n thì ta nói rằng a và b là đồng dư trong phép chia modulo cho n , phép so sánh đồng dư được ký hiệu bằng dấu : a  b (mod n)
  13. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ▪ Một số tính chất của phép modulo ▪ Ước số • Nếu a mod n = 0 thì có nghĩa là a chia hết cho n, hay n là ước số của a. • Ước số chung lớn nhất của hai số: ký hiệu gcd(a, b) . Để tìm USCLN của hai số a, b, chúng ta có thể dùng thuật toán Euclid
  14. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ▪ Số nguyên tố • Một số p được gọi là số nguyên tố nếu p chỉ chia hết cho 1 và chính nó, ngoài ra không chia hết cho số nào khác từ 2 đến p − 1. ▪ Số nguyên tố cùng nhau • Hai số nguyên a, b được gọi là nguyên tố cùng nhau nếu USCLN của a và b là 1 ▪ Phần tử nghịch đảo của phép nhân modulo • Nếu hai số nguyên a và n nguyên tố cùng nhau, thì tồn tại số nguyên w sao cho: a.w  1 mod n • Ta gọi w là phần tử nghịch đảo của a trong phép modulo cho n và ký hiệu là a- 1
  15. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI
  16. I. CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI ➢Định lý Fermat ▪ Nếu p là số nguyên tố và a là số nguyên không chia hết cho p thì ap-1  1 mod p ➢Phép logarit rời rạc ▪ Ta định nghĩa phép lũy thừa modulo như sau, để tính y từ a, x và n là các số nguyên:
  17. II. GIẢI THUẬT MÃ HÓA CÔNG KHAI RSA ➢Phương pháp RSA là một phương pháp mã hóa khóa công khai. RSA được xây dựng bởi các tác giả Ron Rivest, Adi Shamir và Len Adleman tại học viện MIT vào năm 1977, và ngày nay đang được sử dụng rộng rãi. ➢Về mặt tổng quát RSA là một phương pháp mã hóa theo khối. ➢ Trong đó bản rõ M và bản mã C là các số nguyên từ 0 đến 2i với i số bít của khối. Kích thước thường dùng của i là 1024 bít. ➢RSA sử dụng hàm một chiều là vấn đề phân tích một số thành thừa số nguyên tố.
  18. ➢Nguyên tắc thực hiện: 1. Chọn hai số nguyên tố lớn p và q và tính N = pq. Cần chọn p và q sao cho: M < 2i-1 < N < 2i . Với i = 1024 thì N là một số nguyên dài khoảng 309 chữ số. 2. Tính n = (p − 1)(q − 1) 3. Tìm một số e sao cho e nguyên tố cùng nhau với n 4. Tìm một số d sao cho e.d  1 mod n (d là nghịch đảo của e trong phép modulo n)
  19. 5. Hủy bỏ n, p và q. Chọn khóa công khai KU là cặp (e, N), khóa riêng KR là cặp (d, N). 6. 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: • Theo phương án 2, mã hóa chứng thực: 7. 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: • Theo phương án 2, mã hóa chứng thực: ➢Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít.
  20. ➢Ví dụ: Để minh họa ta sẽ thực hiện một ví dụ về mã hóa RSA với kích thước khóa là 6 bít. 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)
nguon tai.lieu . vn