Mã nén
1Lecture 6: Giao thức thỏa thuận, trao đổi khóa - Diffie-HellmanLecture 6: Giao thức thỏa thuận, trao đổi khóa - Diffie-Hellman1. Tổng quan về Diffie-Hellman Cryptosystem (DHC)2. Quá trình thỏa thuận khóa bí mật chia sẻ3. Kiểu tấn công Man-in-the-middile4. Ứng dụng của Diffie-Hellman1. Tổng quan về Diffie-Hellman Cryptosystem (DHC)2. Quá trình thỏa thuận khóa bí mật chia sẻ3. Kiểu tấn công Man-in-the-middile4. Ứng dụng của Diffie-Hellman 2Tổng quan về lược đồ Diffie-Hellman(1)Tổng quan về lược đồ Diffie-Hellman(1)Diffie-Hellman là hệ thống mã hóa khóa công khai cổ điển nhất(1976)hiện nay vẫn đang được sử dụng.Diffie-Hellman cho phép 2 cá nhân thỏa thuận một khóa bí mật chia sẻ (shared secret) :zCó thể được truyền tải qua những kết nối không an toàn vàcông khai.zThông tin được mã hóa bằng khóa bí mật chia sẻ.Diffie-Hellman là hệ thống mã hóa khóa công khai cổ điển nhất(1976)hiện nay vẫn đang được sử dụng.Diffie-Hellman cho phép 2 cá nhân thỏa thuận một khóa bí mật chia sẻ (shared secret) :zCó thể được truyền tải qua những kết nối không an toàn vàcông khai.zThông tin được mã hóa bằng khóa bí mật chia sẻ. 3Tổng quan về giao thức Diffie-Hellman(2)Tổng quan về giao thức Diffie-Hellman(2)Alice & Bob, 2 người cần trao đổi thông tin với nhau:zCùng tính toán và thỏa thuận một“khóa bí mật chia sẻ”.Alice & Bob, 2 người cần trao đổi thông tin với nhau:zCùng tính toán và thỏa thuận một“khóa bí mật chia sẻ”.AliceAliceBobBobAlice’s public keyBob’s public keyPrivate key Private key 4Quá trình thỏa thuận khóa trong Diffie-Hellman(1)Quá trình thỏa thuận khóa trong Diffie-Hellman(1)Lược đồ thỏa thuận khóa Diffie-Hellman được tính toán dựa trên 6 con số (p, g, a, b, x,vày) Lược đồ thỏa thuận khóa Diffie-Hellman được tính toán dựa trên 6 con số (p, g, a, b, x,vày) Alice BobPrivate key aPrivate key aPublic key xPublic key xPrivate key bPrivate key bPublic key yPublic key yKhóa công khai có thể được gửi qua network mà không cần mã hóaKhóa công khai có thể được gửi qua network mà không cần mã hóaSố nguyên tố p vàCơ số g 5Quá trình thỏa thuận khóa trong Diffie-Hellman(2)Quá trình thỏa thuận khóa trong Diffie-Hellman(2)Khóa công khai x và y được tính toán dựa trên các số: p, g, a và bKhóa công khai x và y được tính toán dựa trên các số: p, g, a và bAlice BobPrivate key aPrivate key aPublic key xPublic key xPrivate key bPrivate key bPublic key yPublic key ySố nguyên tố p vàCơ số gx = gamodpy= gbmodp 6Quá trình thỏa thuận khóa trong Diffie-Hellman(3)Quá trình thỏa thuận khóa trong Diffie-Hellman(3)Alice tính toán được“shared secret” : Kabằng cách sửdụng khóa riêng của mình và khóa công khai củaBob.Alice tính toán được“shared secret” : Kabằng cách sửdụng khóa riêng của mình và khóa công khai củaBob.Alice BobPrivate key aPrivate key aPublic key xPublic key xPrivate key bPrivate key bPublic key yPublic key yy = gbmodpKa= yamodp= (gbmodp)amodp 7Quá trình thỏa thuận khóa trong Diffie-Hellman(4)Quá trình thỏa thuận khóa trong Diffie-Hellman(4)Bob tính toán được“shared secret” : Kbbằng cách sửdụng khóa riêng của mình và khóa công khai của Alice.Bob tính toán được“shared secret” : Kbbằng cách sửdụng khóa riêng của mình và khóa công khai của Alice.Alice BobPrivate key aPrivate key aPublic key xPublic key xPrivate key bPrivate key bPublic key yPublic key yx = gamodpKb= xbmodp= (gamodp)bmodp 8Quá trình thỏa thuận khóa trong Diffie-Hellman(5)Quá trình thỏa thuận khóa trong Diffie-Hellman(5)Ka= Kb= KĐứng từ góc nhìn của kẻ tấn công (attacker), nếu chỉbằng việc sử dụng các khóa công khai x và y thìkhông thể tính toán và tìm ra được khóa KKa= Kb= KĐứng từ góc nhìn của kẻ tấn công (attacker), nếu chỉbằng việc sử dụng các khóa công khai x và y thìkhông thể tính toán và tìm ra được khóa KAlice BobPrivate key aPrivate key aPublic key xPublic key xPrivate key bPrivate key bPublic key yPublic key yKb= xbmodp= (gamodp)bmodpKa= yamodp= (gbmodp)amodp 9Quá trình thỏa thuận khóa trong Diffie-Hellman(6)Quá trình thỏa thuận khóa trong Diffie-Hellman(6)Việc tính toán khóa K ở đây là tính toán bí mật.⇒ Các khóa công khai không cần phải mã hóa⇒ Khóa K được dùng sau đóvới mục đích là mã hóa và giải mã dữ liệu truyền qua mạngViệc tính toán khóa K ở đây là tính toán bí mật.⇒ Các khóa công khai không cần phải mã hóa⇒ Khóa K được dùng sau đóvới mục đích là mã hóa và giải mã dữ liệu truyền qua mạngEncryptionEncryptionDecryptionDecryptionPlaintext PlaintextCiphertextK K 10Kiểu tấn công Man-in-the-middleKiểu tấn công Man-in-the-middleLược đồ thỏa thuận khóa là một kẽ hở được sử dụng trong kiểu tấn công Man-in-the-middleLược đồ thỏa thuận khóa là một kẽ hở được sử dụng trong kiểu tấn công Man-in-the-middleAlice BobMan-in-the-middleMan-in-the-middlePublic key xFake public key nPublic key yFake public key mAlice BobKa= KnKm= KbKaKnKmKbMan-in-the-middleMan-in-the-middle . bí mật.⇒ Các khóa công khai không cần phải mã hóa⇒ Khóa K được dùng sau đóvới mục đích là mã hóa và giải mã dữ liệu truyền qua mạngViệc tính toán khóa. bí mật.⇒ Các khóa công khai không cần phải mã hóa⇒ Khóa K được dùng sau đóvới mục đích là mã hóa và giải mã dữ liệu truyền qua mạngEncryptionEncryptionDecryptionDecryptionPlaintext