intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng An toàn dữ liệu và mật mã: Chương 5 - Trường ĐH Nguyễn Tất Thành

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:29

7
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng An toàn dữ liệu và mật mã: Chương 5 Các giải thuật mã hóa khóa bất đối xứng, được biên soạn gồm các nội dung chính sau: Tổng quan; Lý thuyết nền tản hệ mật mã công khai; Các giải thuật mã hóa khóa bất đối xứng; RSA. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng An toàn dữ liệu và mật mã: Chương 5 - Trường ĐH Nguyễn Tất Thành

  1. TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN AN TOÀN DỮ LIỆU VÀ MẬT MÃ Data security and encryption Giảng Viên: ThS. Dương Minh Tuấn Email: dmtuan@ntt.edu.vn 1
  2. Chương V. Các giải thuật mã hóa KHÓA BẤT ĐỐI XỨNG 1. Tổng quan 2. Lý thuyết nền tản hệ mật mã công khai 3. Các giải thuật mã hóa khóa bất đối xứng 4. RSA 2
  3. 1. Tổng quan ▪ Hệ mật mã khóa đối xứng không đáp ứng được 2 mục tiêu an toàn • Xác thực - Alice và Bob trao đổi thông tin bí mật - Alice cần phải biết thông tin chắc chắn đến từ Bob, và ngược lại • Chống phủ nhận - Alice và Bob trao đổi thông tin bí mật - Nếu Alice đã gửi thông tin nào đó cho Bob thì Alice không thể chối bỏ thông tin đó là của mình ▪ Quản lý khóa đối xứng là một vấn đề nan giải • Trong các hệ khóa đối xứng, mỗi cặp người dùng phải có khóa riêng • N người dùng cần N * (N-1)/2 khóa • Việc quản lý khóa trở nên phức tạp khi số lượng người dùng tăng 3
  4. 1. Tổng quan Khái niệm ▪ Mỗi người dùng có 1 khóa riêng và 1 khóa công khai • Khóa riêng bí mật • Khóa công khai có thể chia sẻ ▪ Quản lý khóa • N người dùng cần N khóa công khai được xác thực • Hạ tầng khóa công khai PKI 4
  5. 1. Tổng quan Khái ▪ Mã niệm hóa dùng khóa công khai k • C = E(k,M) ▪ Giải mã dùng khóa riêng K • M = D(K,C) 5
  6. 1. Tổng quan Khái niệm hóa dùng khóa riêng K ▪ Mã • C = E(K,M) ▪ Giải mã dùng khóa công khai k • M = D(k,C) 6
  7. 1. Tổng quan Khóa bí mật & khóa công khai 7
  8. 2. Lý thuyết nền tản Hệ mật mã khóa công khai Độ phức tạp Độ phức tạp tính toán (thời gian) ▪ •Vấn đề “dễ”: lớp P •Vấn đề “khó”: lớp NP ▪ Giải quyết các vấn đề P •Số trường hợp phải xét đến là một hàm đa thức ▪ Giải quyết các vấn đề NP •Số trường hợp phải xét đến là hàm lũy thừa “Các hệ mật mã khóa công khai dựa trên độ khó/phức tạp của giải thuật bẻ khóa” 8
  9. 2. Lý thuyết nền tản Hệ mật mã khóa công khai Số học đồng dư• a mod n ▪ a mod n • a op b mod n • Số dư của a chia n • op = +, -, *, /, ^ ▪ a + b mod n • Số dư của a + b chia n ▪ Ví dụ: • 40 mod 6 = 4 ▪ a - b mod n • 5 + 2 mod 6 = 1 • Số dư của a - b chia n • 9 – 4 mod 3 = 2 ▪ a * b mod n • 5 * 3 mod 6 = 3 • Số dư của a * b chia n • 4/2 mod 3 = 2 ▪ a ^ b mod n • 2^4 mod 6 = 4 • Thủ tục bình phương ▪ a / b mod n 9 • Giải thuật Euclide mở rộng
  10. 2. Lý thuyết nền tản Hệ mật mã khóa công khai Thủ tục bình phương vào tính chất ▪ Dựa • a*b mod n = ((a mod n)*(b mod n)) mod n ▪ Tính a^25 • a^25 = a^(11001) • a^(11001) = a^(10000+1000+1) • a^(10000+1000+1) = a^10000 * a^1000 * a^1 • a^10000 * a^1000 * a^1 = a^16 * a^8 * a^1 ▪ Độ phức tạp (O(logb*(logs)^2)) ▪ Hiệu quả hơn phương pháp tính lũy thừa bằng phép nhân đồng dư (O(b*(logs)^2)) 10
  11. 2. Lý thuyết nền tản Hệ mật mã khóa công khai Thủ tục bình phương ▪ ModExp1(a,b, s) ▪ Vào: • 3 số nguyên dương a,b,s sao cho a < s • bn-1 ···b1b0 là biểu diễn nhị phân của b, n = [logb] ▪ Ra: a^b mod s 11
  12. 2. Lý thuyết nền tản Hệ mật mã khóa công khai Ví dụ: ▪ Tính 6^73 mod 100 • 73 = 2^0 + 2^3 + 2^6 • 6^73 = 6 * 6^(2^3)*6^(2^6) • 6 = 6 mod 100 • 6^(2^3) = 16 mod 100 • 6^(2^6) = -4 mod 100 • 6^73 = 6 * (16) * (-4) = 16 mod 100 12
  13. 3.Các giải thuật mã hóa khóa bất đối xứng ❖Các giải thuật mã hóa khóa bất đối xứng (asymmetric key encryption) ▪ Còn gọi là mã hóa khóa công khai (public key encryption): ▪ Sử dụng một cặp khóa (key pair): • một khóa (public key) cho mã hóa • một khóa (private key) cho giải mã. 13
  14. 3. Các giải thuật mã hóa khóa bất đối xứng ❖Đặc điểm: ▪ Kích thước khóa lớn (1024 – 3072 bít) ▪ Tốc độ chậm • Phần lớn do khóa có kích thước lớn. ▪ Độ an toàn cao ▪ Thuận lợi trong quản lý và phân phối khóa: • Do khóa mã hóa là công khai và có thể trao đổi dễ dàng. ❖ Các giải thuật mã hóa khóa bất đối xứng điển hình: ▪ RSA ▪ Rabin ▪ ElGamal ▪ McEliece ▪ Knapsack 14
  15. 4. Giải thuật mã hóa khóa bất đối xứng RSA ❖ Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai. Đâ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. ❖ Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Được 3 nhà khoa học Ronald Rivest, Adi Shamir và Leonard Adleman phát minh năm 1977; ▪ Tên giải thuật RSA lấy theo chữ cái đầu của tên 3 ông. ❖ Độ an toàn của RSA dựa trên tính khó của việc phân tích số nguyên rất lớn: 15 ❖ Khóa RSA là số nguyên rất lớn có hàng trăm chữ số thập phân
  16. 4. Giải thuật mã hóa khóa bất đối xứng RSA Mô tả sơ lược: 🡪 Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân). 🡪 Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã. 🡪 Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. 🡪 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. 🡪 Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được. 16
  17. 4. Giải thuật mã hóa khóa bất đối xứng RSA Mô tả sơ lược: 🡪 Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau: 🡪 Bình muốn gửi cho An một thông tin mật mà Bình muốn duy nhất An có thể đọc được. 🡪 Để làm được điều này, An gửi cho Bình một chiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa. 🡪 Bình nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sập chốt lại, sau khi sập chốt khóa ngay cả Bình cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa). Sau đó Bình gửi chiếc hộp lại cho An. 🡪 An mở hộp với chìa khóa của mình và đọc thông tin trong thư. 🡪 Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc 17 chìa khóa chính là khóa bí mật.
  18. 4. Giải thuật mã hóa khóa bất đối xứng RSA ▪ Thuật toán mã hóa RSA thỏa mãn 5 yêu cầu của một hệ mã hiện đại: ▪ Độ bảo mật cao (nghĩa là để giải mã được mà không biết khóa mật thì phải tốn hang triệu năm); ▪ Thao tác nhanh (thao tác mã hóa và giải mã tốn ít thời gian). ▪ Dùng chung được. ▪ Có ứng dụng rộng rãi ▪ Có thể dùng để xác định chủ nhân (dung làm chữ ký điện tử) 18
  19. 4. Giải thuật mã hóa khóa bất đối xứng RSA ❖ 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. 19
  20. 4. Giải thuật mã hóa khóa bất đối xứng RSA ❖ Kích thước khóa của RSA: ▪ Khóa < 1024 bít không an toàn hiện nay. ▪ Khuyến nghị dùng khóa >= 2048 bít với các ứng dụng mật mã dân sự hiện nay. ▪ Tương lai nên dùng khóa >=3072 bít. ❖Thủ tục sinh khóa RSA: ▪ Tạo 2 số nguyên tố p và q; ▪ Tính n = p x q ▪ Tính Φ(n) = (p-1) x (q-1) ▪ Chọn số nguyên tố e sao cho 0 < e < Φ(n) và gcd(e, Φ(n)) = 1, hay e, Φ(n) là 2 số nguyên tố cùng nhau ▪ Chọn số d sao cho d ≡ e-1 mod Φ(n), hoặc (d x e) mod Φ(n) = 1 (d là molulo nghịch đảo của e) ❖Ta có (n, e) là khóa công khai, (n, d) là khóa riêng 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2