Chương 4: Mã hóa công khai RSA
Dùng khóa công khai trao đổi khóa bí mật
Do đặc điểm toán học của mã hóa công khai chậm hơn so với mã hóa đối xứng nên trong thực tế, để đảm bảo bí mật, người ta dùng mã hóa đối xứng, mã hóa công khai được dùng để thiết lập khóa bí mật cho mỗi phiên trao đổi dữ liệu.
26 trang |
Chia sẻ: vutrong32 | Lượt xem: 1297 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chương 4: Mã hóa công khai RSA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4 Mã hóa công khai RSAMô hình mã hóa công khaiMã hóa công khai RSABảo mật, chứng thực, không thể từ chối trong RSAPhương pháp trao đổi khóaNội dungMã hóa đối xứng dù phát triển từ cổ điển đến hiện đại, vẫn tồn tại 2 điểm yếu sau: Vấn đề trao đổi khóa giữa người gởi và người nhận: cần có một kênh an toàn để trao đổi khóa bí mật. Tính bí mật của khóa: không có cơ sở để quy trách nhiệm nếu khóa bị tiết lộ.Năm 1976 Whitfield Diffie và Martin Hellman đưa ra giải pháp giải quyết vấn đề trên: mã hóa công khaiĐặt vấn đềKhóa mỗi người dùng được chia ra làm hai phần: Khoa chung: để mã hóa công khai với mọi người Khóa bí mật: để giải mã thì được giữ bí mật chỉ được biết bởi chủ nhân của nó.Nếu khóa bí mật ở người nhận thì bộ sinh khóa nằm ở người nhận.Ý tưởngCác giai đoạn mã hóa công khaiĐịnh nghĩa hệ mã công khaiLà PP mã hóa công khai được xây dựng bởi Ron Rivest, Adi Shamir và Len Adleman tại viện MIT năm 1977.Là PP mã hóa theo khối, bản rõ M và bản mã C là các số nguyên từ 0 đến 2i với I là số bit của khối (i thường là 1024).Sử dụng hàm một chiều: phân tích một số thành thừa số nguyên tốPP mã hóa RSANguyên tắc thực hiện RSAVí dụ RSAVí dụ mã RSA (tt)Phép mã hóa/giải mã: dùng phép lũy thừa modular. Để an toàn, chọn N, e, M lớn.Dùng phép “bình phương liên tiếp” tránh việc tính lũy thừa lớn, nâng cao tốc độ tính toán.Phép tính sinh khóa: chọn p và q đủ lớn để việc thử là không khả thiĐộ phức tạp tính toán trong RSAVí dụ sinh khóa trong RSAVét cạn khóa: thử tất cả các khóa d có thể để tìm bản rõ có nghĩa, N lớnbất khả thi.Phân tích N thành thừa số nguyên tố p.q : việc phân tích này là bất khả thi vì đây là hàm một chiều, là nguyên tắc hoạt động của RSA.Đo thời gian: đây là PP phá mã không dựa vào toán học mà dựa vào “hiệu ứng lề” sinh ra bởi quá trình giải mã RSAĐộ an toàn của RSAGiả sử Alice và Bob dùng mã hóa công khai để gởi dữ liệu cho nhau, khóa (KRA , KUA), (KRB, KUB)Gởi dữ liệu cho Bob: C=E(M, KUB) Bob giải mã: M= D(C, KRB)Tính bảo mật, chứng thực, không từ chối trong mã hóa công khaiĐể đảm bảo tính chứng thực, Alice không từ chối tránh nhiệm gởi dữ liệu, Alice dùng khóa riêng để mã hóa C=E(M, KRA) M=D(C, KUA)Nếu bản giải mã có nghĩa, tức Alice là người gởi dữ liệu. Nếu Trudy can thiệp chỉnh sửa thì bản giải mã không có nghĩa, nếu Trudy có khóa KRA thì Alice không thể thoái tránh nhiệm làm lộ khóa.Tuy nhiên mô hình CT không bảo mật. Để giải quyết, người ta đưa ra mô hình:Khi hai người dùng muốn truyền dữ liệu cho nhau bằng mã hóa công khai, trước tiên họ phải trao đổi khóa với nhau.Khóa có thể truyền công khai trên đường truyền thường.Vấn đề: tính chứng thực của khóa KU mô hình chứng chỉ khóa công khai –CA (certificate Authority )Trao đổi khóa công khaiTrao đổi khóa công khai dùng CADo đặc điểm toán học của mã hóa công khai chậm hơn so với mã hóa đối xứng nên trong thực tế, để đảm bảo bí mật, người ta dùng mã hóa đối xứng, mã hóa công khai được dùng để thiết lập khóa bí mật cho mỗi phiên trao đổi dữ liệu.Dùng khóa công khai trao đổi khóa bí mậtA trao đổi khóa phiên Ks mã hóa bằng khóa riêng, sau đó mã hóa bằng khóa công khai của BKết thức phiên trao đỗi DL, Ks được hủy để đảm bảo tính bí mật.Dùng khóa công khai trao đổi khóa bí mật (tt)Dùng để thiết lập khóa bí mật giữa người gởi và người nhận mà không cần đến giải pháp mã hóa công khai hay chuyển chìa trên kênh truyền an toàn.Phương pháp trao đổi khóa Diffie – HellmanAliceBob1. Chọn số ngto p và số g nhỏ hơn p và là primitive root của p. hai số p và g không cần giữ bí mật.2. Chọn và giữ bí mật số aChọn và giữ bí mật số b3. Tính A= ga mod pTính B = gb mod p4. Alice và Bob trao đổi A và B với nhau5. Tính (gb)a mod p = gab mod pTính (ga)b mod p = gab mod pGiá trị này được dùng làm khóa cho mã hóa đối xứngGiải pháp của Diffie-Hellman thuật toán Diffie-Hellman lại thất bại đối với cách tấn công kẻ-đứng-giữa.Để an toàn, quá trình thiết lập khóa Diffie-Hellman vẫn phải được mã hóa bằng một khóa công khai.Nếu đã được bảo vệ bằng khóa công khai, thì chọn khóa đối xứng bất kỳ, cần gì chọn khóa Diffie-Hellman???Nhận xétBảo vệ khóa Diffie-Hellman bằng khóa công khai
Các file đính kèm theo tài liệu này:
- chuong_4_1219.pptx