Bài giảng An ninh mạng - Chương 3: Mật mã khóa công khai (TS Nguyễn Đại Thọ) thông tin đến các bạn những kiến thức về những hạn chế của mật mã đối xứng; mật mã khóa công khai đề xuất bởi Whitfield Diffie và Martin Hellman vào năm 1976; đặc điểm mật mã khóa công khai; mã hóa khóa công khai; ứng dụng mật mã khóa công khai; hạn chế của khóa công khai.
Chương MẬT MÃ KHĨA CƠNG KHAI Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 83 https://fb.com/tailieudientucntt Giới thiệu • Những hạn chế mật mã đối xứng – Vấn đề phân phối khóa • Khó đảm bảo chia sẻ mà khơng làm lộ khóa bí mật • Trung tâm phân phối khóa bị cơng – Khơng thích hợp cho chữ ký số • Bên nhận làm giả thơng báo nói nhận từ bên gửi • Mật mã khóa cơng khai đề xuất Whitfield Diffie Martin Hellman vào năm 1976 – Khắc phục hạn chế mật mã đối xứng – Có thể coi bước đột phá quan trọng lịch sử ngành mật mã – Bổ xung không thay mật mã đối xứng Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 84 https://fb.com/tailieudientucntt Đặc điểm mật mã khóa cơng khai • Cịn gọi mật mã hai khóa hay bất đối xứng • Các giải thuật khóa cơng khai sử dụng khóa – Một khóa cơng khai • Ai biết • Dùng để mã hóa thơng báo thẩm tra chữ ký – Một khóa riêng • Chỉ nơi giữ biết • Dùng để giải mã thông báo ký (tạo ra) chữ ký • Có tính bất đối xứng – Bên mã hóa khơng thể giải mã thơng báo – Bên thẩm tra tạo chữ ký Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 85 https://fb.com/tailieudientucntt Mã hóa khóa cơng khai Các khóa cơng khai Ted Joy Mike Alice Khóa công khai Alice Bản mã truyền Nguyên đầu vào Giải thuật giải mã Giải thuật mã hóa Nguyễn Đại Thọ Khóa riêng Alice An ninh Mạng CuuDuongThanCong.com Nguyên đầu 86 https://fb.com/tailieudientucntt Xác thực Các khóa cơng khai Ted Joy Mike Bob Khóa cơng khai Bob Khóa riêng Bob Bản mã truyền Nguyên đầu vào Giải thuật giải mã Giải thuật mã hóa Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com Nguyên đầu 87 https://fb.com/tailieudientucntt Ứng dụng mật mã khóa cơng khai • Có thể phân loại ứng dụng – Mã hóa/giải mã • Đảm bảo bí mật thơng tin – Chữ ký số • Hỗ trợ xác thực văn – Trao đổi khóa • Cho phép chia sẻ khóa phiên mã hóa đối xứng • Một số giải thuật khóa cơng khai thích hợp cho loại ứng dụng; số khác dùng cho hay loại Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 88 https://fb.com/tailieudientucntt Mơ hình đảm bảo bí mật Kẻ phá mã Đích B Nguồn A Nguồn th báo Giải thuật giải mã Giải thuật mã hóa Đích th báo Nguồn cặp khóa Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 89 https://fb.com/tailieudientucntt Mơ hình xác thực Kẻ phá mã Đích B Nguồn A Nguồn th báo Giải thuật giải mã Giải thuật mã hóa Đích th báo Nguồn cặp khóa Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 90 https://fb.com/tailieudientucntt Mơ hình kết hợp Đích B Nguồn A Nguồn th báo G thuật mã hóa G thuật mã hóa G thuật giải mã G thuật giải mã Đích th báo Nguồn cặp khóa Nguồn cặp khóa Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 91 https://fb.com/tailieudientucntt Trao đổi khóa Khóa ngẫu nhiên Khóa ngẫu nhiên Alice Bob Mã hóa Giải mã Khóa cơng khai Bob Khóa riêng Bob Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 92 https://fb.com/tailieudientucntt Hệ mã hóa RSA • Đề xuất Ron Rivest, Adi Shamir Len Adleman (MIT) vào năm 1977 • Hệ mã hóa khóa cơng khai phổ dụng • Mã hóa khối với khối số nguyên < n – Thường kích cỡ n 1024 bit ≈ 309 chữ số thập phân • Đăng ký quyền năm 1983, hết hạn năm 2000 • An ninh chi phí phân tích thừa số số nguyên lớn lớn Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 94 https://fb.com/tailieudientucntt Tạo khóa RSA • Mỗi bên tự tạo cặp khóa cơng khai - khóa riêng theo bước sau : – – – – Chọn ngẫu nhiên số nguyên tố đủ lớn p q Tính n = pq Tính (n) = (p-1)(q-1) Chọn ngẫu nhiên khóa mã hóa e cho < e < (n) gcd(e, (n)) = – Tìm khóa giải mã d ≤ n thỏa mãn e.d ≡ mod (n) • Cơng bố khóa mã hóa cơng khai KU = {e, n} • Giữ bí mật khóa giải mã riêng KR = {d, n} – Các giá trị bí mật p q bị hủy bỏ Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 95 https://fb.com/tailieudientucntt Thực RSA • Để mã hóa thơng báo nguyên M, bên gửi thực – Lấy khóa công khai bên nhận KU = {e, n} – Tính C = Me mod n • Để giải mã mã C nhận được, bên nhận thực – Sử dụng khóa riêng KR = {d, n} – Tính M = Cd mod n • Lưu ý thơng báo M phải nhỏ n – Phân thành nhiều khối cần Nguyễn Đại Thọ An ninh Mạng CuuDuongThanCong.com 96 https://fb.com/tailieudientucntt Vì RSA khả thi • Theo định lý Euler – – a, n : gcd(a, n) = a (n) mod n = (n) số số nguyên dương nhỏ n nguyên tố với n • Đối với RSA có – n = pq với p q số nguyên tố – (n) = (p - 1)(q - 1) – ed ≡ mod (n) số nguyên k : ed = k (n) + – M