Giáo trình Bảo mật hệ thống thông tin - Chương 3: Quản lý khóa mã công khai

pdf 40 trang huongle 3750
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Bảo mật hệ thống thông tin - Chương 3: Quản lý khóa mã công khai", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_bao_mat_he_thong_thong_tin_chuong_3_quan_ly_khoa.pdf

Nội dung text: Giáo trình Bảo mật hệ thống thông tin - Chương 3: Quản lý khóa mã công khai

  1. CHCHƯƠƯƠNGNG IIIIII Quản lý khóa mã công khai NN BMHTTT 1
  2. III.1III.1 MãMã khokhoáá côngcông khaikhai „ III.1.1 giới thiệu „ Mã khoá riêng „ Mã khoá riêng còn được gọi là mã khoá đơn hay mật. „ Ở đây chỉ dùng một khoá, dùng chung cả người nhận và người gửi. „ Khi khoá này được dùng, việc trao đổi thông tin về khoá sẽ được thỏa thuận trước. „ Người ta còn gọi đây là mã đối xứng, vì hai đối tác có vai trò như nhau. „ Không bảo vệ người gửi khỏi việc người nhận giả mạo mẩu tin và tuyên bố là nó được gửi bằng người gửi. NN BMHTTT 2
  3. GiGiớớii thithiệệuu „ Khoá công khai ra đời vào đầu những năm 1970. Đây là bước tiến quan trọng nhất trong lịch sử 3000 năm mã hoá. „ Ở đây người ta sử dụng 2 khoá: một khoá riêng để giải mã và một khoá công khai để mã hóa. Hai khoá này khác nhau, mã khoá công khai còn được gọi là mã không đối xứng. „ Người ta đã ứng dụng lý thuyết số về hàm số. „ Khoá công khai ra đời hỗ trợ thêm để giải quyết một số bài toán an toàn, chứ không phải thay thế khoá riêng. Cả hai khoá cùng tồn tại, phát triển và bổ sung cho nhau. NN BMHTTT 3
  4. SSơơ đđồồ mãmã khokhoáá côngcông khaikhai NN BMHTTT 4
  5. III.1.2III.1.2 DDùùngng mãmã khokhoáá côngcông khaikhai „ Phân phối khoá: làm sao có thể phân phối khóa an toàn „ Chữ ký điện tử: làm sao có thể kiểm chứng được rằng mẩu tin gửi đến nguyên vẹn từ đúng người đứng tên gửi. NN BMHTTT 5
  6. III.1.3III.1.3 CCáácc đđặặcc trtrưưngng ccủủaa khokhoáá côngcông khakhaii „ Không có khả năng tính toán để tìm khoá giải mã nếu chỉ biết thuật toán mã và khoá dùng để mã. „ Có thể dễ dàng mã hoá hoặc giải mã mẩu tin nếu biết khoá tương ứng „ Trong một số sơ đồ: một khoá bất kỳ trong hai khoá có thể dùng để mã, còn khoá kia dùng để giải mã. Chúng có vai trò đối ngược nhau. NN BMHTTT 6
  7. III.1.4III.1.4 TTíínhnh anan totoàànn ccủủaa khokhoáá côngcông khaikhai „ Khi biết một trong hai khoá và thuật toán mã hoá về nguyên tắc ta có thể dò tìm khoá thứ hai bằng cách tính toán các giá trị liên quan. „ Nếu khoá sử dụng là rất lớn cỡ hơn 512 bit, thì hầu như bài toán tìm khoá thứ hai là không khả thi „ Bài toán dễ là mã/giải mã khi biết khoá và bài toán khó là thám mã khi không biết khoá tương ứng „ Mã công khai thường chậm hơn khá nhiều so với mã đối xứng, nên nó thường được dùng mã những thông tin nhỏ quan trọng. NN BMHTTT 7
  8. V.2V.2 RSARSA „ RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT (Trường Đại học Công nghệ Massachusetts) vào năm 1977. „ RSA là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay NN BMHTTT 8
  9. GiGiảảii thuthuậậtt RSARSA NN BMHTTT 9
  10. MãMã vvàà gigiảảii mãmã theotheo RSARSA NN BMHTTT 10
  11. VVíí ddụụ 1. Chọn các số nguyên tố: p=17 & q=11. 2. Tính n = pq, n = 17×11=187 3. Tính Ф(n)=(p–1)(q-1)=16×10=160 4. Chọn e: gcd(e,160)=1; Lấy e=7 5. Xác định d: d=e-1 mod 160 và d < 160 6. Giá trị cần tìm là d=23, vì 23×7=161= 1×160+1 7. Khoá công khai KU={7,187} 8. Giữ khoá riêng bí mật KR={23,187} NN BMHTTT 11
  12. AnAn totoàànn ccủủaa RSARSA „ Tấn công vét cạn (Brute force) „ Tấn công toán học (Mathematical attacks): cố gắng phân tích tích của 2 số nguyên tố „ Tấn công tính toán thời gian (Timing attacks) „ Tấn công bản mã (Chosen ciphertext attacks): Khai thác tính chất của giải thuật NN BMHTTT 12
  13. TTấấnn côngcông vvéétt ccạạnn (Brute(Brute force)force) „ Để phòng chống dùng kích thước khóa lớn „ Việc thực thi phức tạp làm giảm tốc độ thực hiện NN BMHTTT 13
  14. TTấấnn côngcông totoáánn hhọọcc „ 3 cách „ Phân tích N = p.q, sau đó tính Ф(N) và d „ Tìm N trực tiếp, Ф(N) và tính d „ Tìm d trực tiếp „ Đề nghị „ p và q phải khác nhau trong độ dài chỉ vài số „ (p1) và (q1) là số nguyên tố lớn „ gcd(p 1, q 1) phải nhỏ NN BMHTTT 14
  15. TTấấnn côngcông ththờờii giangian „ Phát triển vào giữa năm 1990 „ Paul Kocher chỉ ra rằng kẻ thám mã có thể xác định được khoá riêng nếu theo dõi thời gian máy tính cần để giải mã các bản tin. „ Tấn công thời gian không chỉ áp dụng cho RSA, mà cả với các hệ mã công khai khác. „ Tấn công thời gian giống như kẻ cướp đoán số điện thọai bằng cách quan sát một người nào đó trong bao lâu chuyển quay điện thoại từ số này sang số khác. NN BMHTTT 15
  16. PHÒNGPHÒNG CHCHỐỐNGNG TTẤẤNN CÔNGCÔNG THTHỜỜII GIANGIAN „ Bảo đảm các số mũ khác nhau không ảnh hưởng nhiều tới thời gian trả về kết quả (giảm tốc độ thực thi) „ Cộng thêm một trì hoãn ngẫu nhiên (Random delay „ Nhân bản mã với 1 số ngẫu nhiên trước khi mũ hóa (Blinding): tránh phân tích bit theo bit (bit by bit) NN BMHTTT 16
  17. OptimalOptimal AssymetricAssymetric EncryptionEncryption PaddingPadding (OAEP)(OAEP) NN BMHTTT 17
  18. III.3III.3 QuQuảảnn lýlý khkhóóaa V.3.1 Phân phối khóa „ Dùng mã hóa khóa công khai „ Phân phối khoá công khai „ Sử dụng mã khoá công khai để phân phối khoá mật (còn khoá mật dùng để mã hoá thông tin). „ Phân phối khoá công khai: „ Thông báo công khai khóa của người sử dụng. „ Thư mục truy cập công cộng. „ Phân phối khóa công khai từ tổ chức „ Chứng nhận khoá công khai: khoá công khai của người sử dụng được nơi có thẩm quyền chứng nhận. NN BMHTTT 18
  19. ThôngThông bbááoo côngcông khaikhai „ 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. „ Điểm yếu chính của thông báo công khai là sự mạo danh. NN BMHTTT 19
  20. ThThưư mmụụcc chocho mmọọii ngngưườờii „ Người có quyền cho phép mỗi người tham gia một đầu vào (tên, khóa) „ Mỗi người tham gia đăng ký một khóa công khai „ Người tham gia có thể thay đổi khóa „ Người tham gia có thể truy cập vào thư mục một cách an toàn Kẻ xâm nhập có thể đoạt được quyền quản trị thư mục NN BMHTTT 20
  21. PhânPhân phphốốii khokhoáá côngcông khaikhai ttừừ ttổổ chchứứcc „ Chặt chẽ được cộng thêm cho thư mục công cộng „ Tất cả phải biết khóa công khai của tổ chức phân phối „ Giới hạn: bottleness NN BMHTTT 21
  22. ChChứứngng nhnhậậnn khokhoáá côngcông khaikhai „ Giấy chứng nhận giống như CMND, dựa vào một tổ chức thứ 3 (CA, Certificate Authority) „ Chứng nhận chứa: Khóa công khai, một nhận dạng chủ của khóa, thời gian hiệu lực NN BMHTTT 22
  23. Sử dụng mã khoá công khai để phân phối khoá mật „ Các thuật toán khoá công khai chậm, nên giá để bảo mật thông tin là đắt. „ Dùng khoá đối xứng để mã hoávàgiải mã nội dung bản tin, mà còn được gọi là khoá phiên hay khóa kỳ (section key). Phân phối khóa đơn giản: dễ bị tấn công man-in-the-middle NN BMHTTT 23
  24. PhânPhân phphốốii khkhóóaa ccảảii titiếếnn NN BMHTTT 24
  25. HHệệ ththốốngng lailai „ Các Mainframe của IBM. Trung tâm phân bổ khóa (Key distribution center - KDC): phân bổ khóa chính bí mật, khóa phiên. Lược đồ khóa công cộng dùng để phân phối khóa chính „ Thuận lợi „ Phân bổ khóa phiên bởi public-key encryption cho phép giảm tải, public-key encryption dùng để cập nhật khóa chính giữa người dùng và KDC „ Dễ dàng dùng lại KDC NN BMHTTT 25
  26. III.4III.4 TrTraoao đđổổii khokhoáá DiffieDiffie HellmanHellman „ Trao đổi khoá Diffie Hellman 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 đến bởi James Ellis (Anh), người đã đưa ra mô hình tương tự năm 1970. Đây là phương pháp thực tế trao đổi công khai các khoá mật. Nó thúc đẩy việc nghiên cứu đề xuất các mã khoá công khai. Sơ đồ được sử dụng trong nhiều sản phẩm thương mại. NN BMHTTT 26
  27. KhoKhoáá DiffieDiffie HellmanHellman „ 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) là bài toán 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ố) là bài toán khó. NN BMHTTT 27
  28. TraoTrao đđổổii khokhoáá DiffieDiffie HellmanHellman „ α căn nguyên tố của mod q: a mod p, a2 mod p, , ap1 mod p NN BMHTTT 28
  29. TTạạoo ccặặpp khkhóóaa NN BMHTTT 29
  30. XXáácc đđịịnhnh khkhóóaa phiênphiên „ Dựa vào số học modulo NN BMHTTT 30
  31. VVíí ddụụ „ Đồ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: 97 „ YA=3 mod 353 = 40 (A) 233 „ YB=3 mod 353 = 248 (B) „ Tính khoá phiên chung: xA „ KAB= YB mod 353 = 24897 = 160 (A) xB „ KAB =YA mod 353 = 40233 = 160 (B) NN BMHTTT 31
  32. TTấấnn côngcông „ q = 353; a = 3; YA = 40; YB = 248 „ Vét cạn để tìm 2 khóa bằng nhau (với số nhỏ) „ Không chống được tấn công Man-in-the-Middle NN BMHTTT 32
  33. III.5III.5 MãMã đưđườờngng congcong ElipElip ECCECC „ Để đảm bảo tính an toàn đa số mã công khai sử dụng số học số nguyên lớ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. Do đóbuộc phải tải phần quan trọng vào kho nhớ để xử lý khoá và mẩu tin. Làm như vậy vừa tốn bộ nhớ vừa dễ mất an toàn. „ Để khắc phục điều đómàvẫn đảm bảo độ an toàn của mã công khai, người ta đã đề xuất cách khác là dùng đường cong Elip. Ở đây các phép toán được thực hiện trên các xâu bitcó kích thước nhỏ hơn. NN BMHTTT 33
  34. MãMã đưđườờngng congcong ElipElip „ Bài toán sau đây trong ECC là bài toán khó tương đương với bài toán logarit rời rạc: „ Giả sử cho 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. Bài toán tìm hệ số k chính là bài toán khó bài toán logarit đường cong Elip. NN BMHTTT 34
  35. MãMã đưđườờngng congcong ElipElip „ 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 „ Điểm O đóng vai trò là đơn vị đối với phép cộng và nó là điểm vô cực NN BMHTTT 35
  36. MãMã đưđườờngng congcong ElipElip NN BMHTTT 36
  37. TTạạoo khkhóóaa NN BMHTTT 37
  38. XXáácc đđịịnhnh khkhóóaa phiênphiên „ nA x PB = nA x (nB x G) = nB x (nA x G) = nB x PA NN BMHTTT 38
  39. VVíí ddụụ 3 „ p = 211 (modulo); Ep(0, 4), y2 = x +4; G = (2, 2). „ N=240, 240G = O. „ Khóa riêng của a là nA = 121, khóa công cộng của b là PA = 121(2, 2) = (115, 48). „ Khóa riêng của b là nB = 203, khóa công cộng của b là PB 203(2, 2) = (130, 203). „ Khoa bí mật chia sẻ là: 121(130, 203) = 203(115, 48) = (161, 69). NN BMHTTT 39
  40. AnAn totoàànn ECCECC „ Phụ thuộc vào xác định k dựa vào kP và P „ Phương pháp nhanh nhất giải bài toán trên đã biết là “Pollard rho method” „ Có thể dùng khóa ngắn hơn với độ an toàn tương đương so với RSA „ Người ta chứng minh được rằng với độ dài khoá bằng nhau các tính toán nói chung là tương đương NN BMHTTT 40