Mã hóa và an ninh mạng ( Chapter 10)

Chương 10: Quản lý khoá và các hệ khoá công khai khác I. Quản lý khoá (Key Management)  Mã khoá công khai giúp giải bài toán phân phối khoá  Nó bao gồm hai khía cạnh sau: • Phân phối khoá công khai • Sử dụng mã khoá công khai để phân phối kho 1. Phân phối khoá công khai Distribution of Public Keys  Có thể xem xét để được sử dụng vào một trong những việc sau: • Thông báo công khai • Thư mục truy cập công cộng • Chủ quyền khoá công khai • Giấy chứng nhận khoá công khai

ppt39 trang | Chia sẻ: khicon_1279 | Lượt xem: 3343 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Mã hóa và an ninh mạng ( Chapter 10), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 10: Quản lý khoá và các hệ khoá công khai khác Fourth Edition by William Stallings Lecture slides by Lawrie Brown Quản lý khoá Key Management Mã khoá công khai giúp giải bài toán phân phối khoá Nó bao gồm hai khía cạnh sau: Phân phối khoá công khai Sử dụng mã khoá công khai để phân phối khoá mật Phân phối khoá công khai Distribution of Public Keys có thể xem xét để được sử dụng vào một trong những việc sau: Thông báo công khai Thư mục truy cập công cộng Chủ quyền khoá công khai Giấy chứng nhận khoá công khai Thông báo công khai Public Announcement Người dùng phân phối khoá công khai cho người nhận hoặc thông báo rộng rãi cho cộng đồng. Bổ sung khoá PGP vào thư điện tử hoặc gửi cho nhóm tin hoặc danh sách email Điểm yếu chính là mạo danh Một người nào đó có thể tạo khoá và tuyên bố mình là một người khác và gửi thông báo Cho đến khi giả mạo bị phát hiện nó có thể lừa trong vai trò người khác Thư mục truy cập công cộng Publicly Available Directory Có thể đạt được tính an toàn cao hơn bằng cách đăng ký khoá với thư mục công cộng Thư mục cần được đảm bảo tin cậy với các tính chất sau: Chứa việc nhập tên và khoá công khai Người dùng đăng ký mật với Thư mục Người dùng có thể thay khoá bất cứ lúc nào Thư mục được in định kỳ Thư mục có thể truy cập qua mạng Vẫn còn lỗ hổng để sửa hoặc giả mạo Chủ quyền khoá công khai Public-Key Authority Cải thiện tính an toàn bằng việc kiểm soát chặt chẽ việc phân phối khoá từ Thư mục Có các tính chất của một Thư mục như đã nêu trên Và đòi hỏi người dùng biết khoá công khai của Thư mục đó Sau đó người dùng nhận được bất kỳ khoá công khai mong muốn nào một cách an toàn Đòi hỏi truy cập thời gian thực đến Thư mục khi cần đến khoá Public-Key Authority Giấy chứng nhận khoá công khai Public-Key Certificates Giấy chứng nhận cho phép trao đổi khoá không cần truy cập thời gian thực đến Bản quyền thư mục khoá công khai Giấy chứng nhận trói danh tính với khoá công khai thường với các thông tin khác như chu kỳ kiểm định, quyền sử dụng, … Với mọi nội dung được ký bởi khoá công khai tin cậy hoặc Bản quyền chứng nhận (CA, Certificate Authority) Có thể được kiểm chứng bới một người nào đó biết khoá công khai của Chủ quyền khoá công khai Key Management Public-Key Certificate Use Public-Key Certificates Phân phối công khai các khoá mật Sử dụng các phương pháp trước kia để nhận được khoá công khai Có thể dùng cho mục đích an toàn hoặc xác nhận Nhưng các thuật toán khoá công khai chậm Nên thông thường dùng khoá riêng đề bảo mật nội dung bản tin Suy ra cần khoá kỳ (section key) Có một số cách để thỏa thuận khoá kỳ phù hợp Phân phối khoá mật đơn giản Simple Secret Key Distribution Được đề xuất bởi Merkle vào năm 1979 A tạo ra một cặp khoá công khai mới tạm thời A gửi B một khoá công khai và danh tính của mình B tạo ra khoá bộ phận và gửi nó cho A sử dụng khoá công khai được cung cấp A giải mã khoá bộ phận và cả hai cùng dùng nó. Vấn đề nằm ở chỗ, kẻ thù có thể ngăn hoặc đóng giả cả hai bên của thủ tục Public-Key Distribution of Secret Keys Nếu có khoá công khai được trao đổi an toàn: Trao đổi khoá hỗn hợp Hybrid Key Distribution Vẫn sử dụng Trung tâm phân phối khoá Chia sẻ khoá chính (master key) với mỗi người sử dụng Phân phối khoá kỳ (section key) sử dụng khoá chính Dùng khoá công khai để phân phối khoá chính Đặc biệt hữu ích khi người phân tán rộng Yêu cầu căn bản Chất lượng thực hiện Sự tương thích nền tảng Trao đổi khoá Diffie Hellman Diffie-Hellman Key Exchange Là sơ đồ khoá công khai đầu tiên được đề xuất Bởi Diffie và Hellman năm 1976 cùng với khái niệm khoá công khai Sau này được biết James Ellis (Anh) đã đề xuất bí mật năm 1970 Là phương pháp thực tế trao đổi công khai các khoá mật Sử dụng trong nhiều sản phẩm thương mại Diffie-Hellman Key Exchange Là sơ đồ trao đổi dùng khoá công khai Không thể dùng để trao đổi mẩu tin bất kỳ Tuy nhiên nó có thể thiết lập khoá chung Chỉ có hai đối tác biết đến Giá trị khoá phụ thuộc vào các đối tác (và các thông tin về khoá công khai và khoá riêng của họ) Dựa trên phép toán lũy thừa trong trường hữu hạn (modulo theo số nguyên tố hoặc đa thức) - dễ Độ an toàn dựa trên độ khó của bài toán tính logarit rời rạc (giống bài toán phân tích ra thừa số) – khó Khởi tạo Diffie Hellman Diffie-Hellman Setup Mọi người dùng thỏa thuận dùng tham số chung: Số nguyên tố rất lớn q hoặc đa thức α là căn nguyên tố của mod q Mỗi người dùng (A chẳng hạn) tạo khoá của mình Chọn một khoá mật (số) xA < q Tính khoá công khai yA = αxA mod q Mỗi người dùng thông báo công khai khoá của mình yA Trao đổi khoá Diffie Hellman Diffie-Hellman Key Exchange Khoá bộ phận dùng chung cho hai người sử dụng A, B là KAB KAB = αxA.xB mod q = yAxB mod q (mà B có thể tính) = yBxA mod q (mà A có thể tính) KAB được sử dụng như khoá bộ phận trong sơ đồ khoá riêng giữa A và B A và B lần lượt trao đổi với nhau, họ có khoá chung KAB cho đến khi họ chọn khoá mới. Kẻ thám mã cần x, do đó phải giải tính logarit rời rạc Diffie-Hellman Key Echange Ví dụ Diffie Hellman Diffie-Hellman Example Hai người sử dụng Alice & Bob muốn trao đổi khoá kỳ (section keys): • đồng ý chọn số nguyên tố q=353 và α=3 • Chọn các khoá mật ngẫu nhiên: A chọn xA=97, B chọn xB=233 • Tính các khoá công khai: yA=397 mod 353 = 40 (Alice) yB=3233 mod 353 = 248 (Bob) Tính khoá kỳ chung (shared session key): KAB= yBxA mod 353 = 24897 = 160 (Alice) KAB= yAxB mod 353 = 40233 = 160 (Bob) Key Exchange Protocols users could create random private/public D-H keys each time they communicate users could create a known private/public D-H key and publish in a directory, then consulted and used to securely communicate with them both of these are vulnerable to a meet-in-the-Middle Attack authentication of the keys is needed Other Public-Key Cryptographic Algorithms Digital Signature Standard (DSS) Makes use of the SHA-1 Not for encryption or key echange Elliptic-Curve Cryptography (ECC) Good for smaller bit size Low confidence level, compared with RSA Very complex Mã đường cong Elip Elliptic Curve Cryptography Đa số mã công khai sử dụng số học số nguyên hoặc đa thức với các số nguyên rất lớn hoặc đa thức bậc cao Buộc phải tải phần quan trọng vào kho nhớ và xử lý khoá và mẩu tin Có cách khác là dùng đường cong Elip Có cùng độ an toàn, nhưng với kích thước bit nhỏ hơn Mã đường cong Elip thực Real Elliptic Curves Đường cong Elip được định nghĩa bởi phương trình với 2 biến x, y và hệ số thực Xét đường cong Elip bậc 3 dạng: y2 = x3 + ax + b trong đó x, y, a, b là các số thực và định nghĩa thêm điểm O. Có phép cộng đối với đường cong Elip Về hình học tổng của P và Q là điểm đối xứng của giao điểm R Real Elliptic Curve Example Đường cong Elip hữu hạn Finite Elliptic Curves Mã đường cong Elip sử dụng đường cong Elip mà các biến và hệ số là hữu hạn Có hai họ được sử dụng nói chung: Đường cong nguyên tố Ep (a,b) được xác định trên Zp Tốt nhất trong phần mềm Đường cong nhị phân E2n(a,b) xác định trên GF(2n) Sử dụng các số nguyên modulo số nguyên tố Sử dụng đa thức với hệ số nhị phân Tốt nhất trong phần cứng Mã đường cong Elip (ECC) Elliptic Curve Cryptography Phép cộng ECC giống phép nhân modulo ECC lặp phép cộng (phép nhân hệ số) giống như phép lũy thừa modulo Cần giải bài toán khó tương đương với bài toán logarit rời rạc Q = k.P, trong đó P, Q là 2 điểm của đường cong Elip. Dễ dàng tính Q, nếu cho trước P, k Rất khó tìm k, nếu cho trước P, Q. Được biết đến như bài toán logarit đường cong Elip ECC addition is analog of modulo multiply Ví dụ: Xét E11(1,6) ECC Diffie-Hellman Có thể dùng để trao đổi khoá giồng như D-H trao đổi khoá Người dùng chọn đường cong phù hợp Ep(a,b) Chọn điểm cơ sở G=(x1,y1) với bậc lớn, tức là n lớn sao cho nG = O A và B chọn khoá riêng nA< n, nB< n Tính các khoá công khai PA=nA×G, PB=nB×G Tính khoá chung K=nA×PB, K=nB×PA Như nhau vì K=nA×nB×G ECC mã và giải mã ECC Encryption/Decryption Có một số cách, ta xét cách đơn giản nhất Trước hết cần phải mã bản tin M như một điểm trên Elip PM Chọn một đường cong phù hợp và một điểm G giống như trong D-H Mỗi người sử dụng chọn một khoá riêng nA < n Và tính khoá công khai PA=nA×G Để mã tính Pm : Cm={kG, Pm+k PB}, k ngẫu nhiên Để giải mã tính Cm Pm+kPB–nB(kG) = Pm+k(nBG)–nB(kG) = Pm An toàn ECC - ECC Security Dựa trên bài toán logarit đường cong Elip Phương pháp nhanh nhất là “Pollard rho method” So với việc phân tích ra thừa số, có thể sử dụng kích thước khoá nhỏ hơn nhiều, chảng hạn so với RSA Với độ dài khoá tương đương các tính toán nói chung là tuơng đương Do đó với độ an toàn như nhau ECC có nhiều ưu điểm Comparable Key Sizes for Equivalent Security Summary have considered: distribution of public keys public-key distribution of secret keys Diffie-Hellman key exchange Elliptic Curve cryptography