Sơ đồ giao thức thỏa thuận khóa Diffie Hellman.
4.2.3.3. Giao thức là không an toàn đối với việc tấn công chủ động.
• Giao thức là không an toàn đối với việc tấn công chủ động bằng cách đánh tráo giữa đường. Nghĩa là một người thứ ba Eve có thể đánh tráo các thông tin trao đổi giữa Alice và Bob.
• Chẳng hạn, Eve thay gaA mà Alice định gửi cho Bob bởi ga’A và thay gaB mà Bob định gửi cho Alice bởi ga’B . Như vậy, sau khi thực hiện giao thức trao đổi khoá, Alice đã lập một khoá chung gaAa’B với Eve mà vẫn tưởng là với Bob; đồng thời Bob cũng lập một khoá chung ga’AaB với Eve mà vẫn tưởng là với Alice. Eve có thể giải mã mọi thông báo mà Alice tưởng nhầm là mình gửi đến Bob cũng như mọi thông báo mà Bob tưởng nhầm là mình gửi đến Alice.
• Một cách khắc phục kiểu tấn công này là làm sao để Alice và Bob có kiểm thử để xác nhận tính đúng đắn của các khoá công khai bA và bB. Người ta đưa vào giao thức trao đổi khoá Diffie-Hellman thêm vai trò điều phối của một TA để được một hệ phân phối khoá Diffie-Hellman như một cách khắc phục nhược điểm này. Trong hệ phân phối khoá Diffie-Hellman, sự can thiệp của TA là rất yếu, thực ra TA chỉ làm mỗi việc là cấp chứng chỉ xác nhận khoá công khai cho từng người dùng chứ không đòi hỏi biết thêm bất cứ một bí mật nào của người dùng.
Giao thức giành cho nhiều người
Nguyên tắc cơ bản
Trước tiên xét ví dụ Alice, Bob và Carol cùng tham gia giao thức Diffie-Hellman như sau (tất cả tính toán dưới đây dựa trên modulo ):
1. Các bên thỏa thuận trước về các tham số p và g. 2. Mỗi bên tự tạo khóa riêng tư, gọi tên là a, b, và c . 3. Alice tính ga gửi cho Bob.
4. Bob tính (ga)b và gửi cho Carol.
5. Carol tính (gab)c =gabc và sử dụng giá trị đó làm khóa bí mật chia sẻ. 6. Bob tính gb và gửi cho Carol.
7. Carol tính (gb)c và gửi cho Alice.
8. Alice tính (gbc )a = gbca =gabc và sử dụng giá trị đó làm khóa bí mật chia sẻ. 9. Carol tính gc và gửi cho Alice.
10.Alice tính (gc)a và gửi cho Bob.
Mã hóa đối xứng (mã hóa bí mật Mã hóa bất đối xứng(mã hóa công khai) + Sử dụng cùng 1 khóa bởi người gửi (cho
việc mã hóa) và người nhận (cho việc giải mã).
+Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa khóa bí mật là thuật toán chuẩn mã hóa dữ liệu (DES) . Giao thức SET chấp nhận thuật toán DES với chìa khóa 64 bit của nó . Thuật toán này có thể phá mã được nhưng phải mất nhiều năm với chi phí hàng triệu đôla.
+Người gửi và người nhận thông điệp phải chia sẻ 1 bí mật, gọi là chìa khóa.
Sử dụng 2 khóa khác nhau ,1 khóa công khai (để mã hóa thông điệp – tất cả người sử dụng được phép biết ) và 1 khóa riêng (để mã hóa thông điệp –chỉ có người sở hữu nó mới biết .
+ Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa công khai là thuật toán RSA với nhiều kích cỡ khác nhau (1024 bít) .Thuật toán này không bao giờ bị phá bởi các hacker ,do đó nó được xem là phương pháp mã hóa an toàn nhất được biết cho đến nay .
+ Thông điệp được mã hóa chỉ có thể được giải mã với chìa kháo riêng của người nhận .
+ Hiện nay người ta phổ biến dùng các thuật toán bất đối xứng có tốc độ chậm hơn để phân phối chìa khóa đối xứng khi một phiên giao dịch bắt đầu, sau đó các thuật toán khóa đối xứng tiếp quản phần còn lại . Vấn đề về bảo quản sự phân phối chìa khóa một cách đáng tin cậy cũng tồn tại ở tầng đối xứng, song ở một điểm nào đấy, người ta có thể kiểm soát chúng dễ dàng hơn. Tuy thế, các khóa đối xứng hầu như đều được sinh tạo tại chỗ.
+Các thuật toán khóa đối xứng không thể dùng cho mục đích xác thực(authentication ) hay mục đích thoái thác (non-repudiation) được.
+ Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán thấp .
+ Ứng dụng rõ ràng nhất của mật mã hóa bất đối xứng là bảo mật :1 văn bản được mã hóa bằng khóa công khai của 1 người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó .
+Các thuật toán tạo chữ ký số khóa công khai có thể dùng để nhận thực .
+Các thuật toán bất đối xứng có công suất tính toán cao .(có khối lượng tính toán nhiều hơn hàng trăm,hàng ngàn lần 1 thuật toán khóa đối xứng có chất lượng tương đương