an toàn dữ liệu - bảo mật thông tin
1 Tr Tr ờng ờng đạ đạ i i h h ọ ọ c c s s ph ph ạ ạ m m k k ỹ ỹ thu thu ậ ậ t t vinh vinh khoa khoa c c ô ô ng ng ngh ngh ệ ệ th th ô ô ng ng tin tin ---------- ---------- &&& &&& ---------- ---------- H H ồ ồ ng ng ọ ọ c c vinh vinh An to An to n d n d li li u u CH CH Kí I Kí I N T N T V V QU QU N Lí KH N Lí KH ể ể A TRONG H A TRONG H TH TH NG M NG M T M T M Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 2 N N I DUNG I DUNG 1. Ch 1. Ch ký i ký i n t n t . . 2. Ch 2. Ch ký i ký i n t n t v v i mó kh i mó kh ú ú a cụng khai a cụng khai 3. Qu 3. Qu n lý kh n lý kh ú ú a. a. Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 3 Trong i sng thng ngy, chỳng ta vn thng hay dựng ch ký (vit tay) trờn mt vn bn minh chng v bn quyn hoc ớt nht l s tỏn ng, tha nhn ca mỡnh i vi cỏc ni dung trong vn bn. Nhng yu t no lm nờn "sc thuyt phc" ca ch ký?. V mt lý tng thỡ: 1. Ch ký l bng chng th hin ngi ký cú ch nh ký vn bn. 2. Ch ký th hin "ch quyn", nú lm cho ngi nhn vn bn bit rng ai ớch th l ngi ó ký vn bn. 3. Ch ký khụng th "tỏi s dng c", tc l nú l phn ca vn bn m khụng th sao chộp sang vn bn khỏc. 4. Vn bn ó ký khụng th thay i c. 5. Ch ký khụng th gi mo v cng l th khụng th chi b. 1. CH 1. CH Kí I Kí I N T N T Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 4 Ch ký in t (hay cũn gi l s ch ký s) l phng phỏp ký mt vn bn lu di dng in t. Ch ký in t l mt th tc to ra mt hiu qu tng t nh ch ký vit tay. Nú l mt du hiu m ch cú ngi gi mi cú th to ra nhng nhng ngi khỏc cú th d nhn thy c rng nú l ca ngi gi. Mt s ch ký in t thng cha hai thnh phn: Thut toỏn ký. Thut toỏn xỏc thc (kim tra ch ký). * Mt ngi A cú th ký vn bn in t x dựng thut toỏn ký an ton y = Sig(x). Ch ký y nhn c cú th kim tra bng thut toỏn xỏc thc cụng khai Ver(x, y). 1.1 Kh 1.1 Kh ỏ ỏ i ni i ni m ch m ch ký i ký i n t n t 2 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 5 Một trong những ứng dụng sớm nhất của chữ ký điện tử được thực hiện trong việc kiểm tra hiệp ước cấm phổ biến vũ khí hạt nhân giữa Liên Xô và Mỹ. Liên Xô và Mỹ có thể đặt các máy đo địa chấn của mình trong lòng đất của đối phương để kiểm tra các vụ thử hạt nhân của nhau. Chữ ký điện tử được sử dụng trong thương mại điện tử: như mua bán qua mạng, thanh toán điện tử, ký kết các hợp đồng . Xác thực các tác phẩm nghệ thuật trên mạng: Tranh ảnh, bản nhạc, . 1.2. C 1.2. C á á c c ứ ứ ng d ng d ụ ụ ng c ng c ủ ủ a ch a ch ữ ữ ký đi ký đi ệ ệ n t n t ử ử Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 6 2. CH 2. CH Ữ Ữ KÝ ĐI KÝ ĐI Ệ Ệ N T N T Ử Ử V V Ớ Ớ I MÃ KH I MÃ KH Ó Ó A CÔNG KHAI A CÔNG KHAI Giao thức cơ bản trong giao dịch điện tử (sử dụng chữ ký điện tử với mã khóa công khai) được thực hiện dựa trên ý tưởng của Diffie và Hellman: (1). Người gửi (chủ nhân văn bản) ký văn bản bằng cách mã hóa nó với khóa bí mật của mình. (2). Người gửi chuyển văn bản đã “ký” cho người nhận. (3). Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa công khai của người gửi để giải mã văn bản. Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 7 2. CH 2. CH Ữ Ữ KÝ ĐI KÝ ĐI Ệ Ệ N T N T Ử Ử V V Ớ Ớ I MÃ KH I MÃ KH Ó Ó A CÔNG KHAI A CÔNG KHAI Người gửi Tạo chữ ký số cho văn bản Người nhận Xác thực chữ ký số Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 8 2.1. 2.1. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA ký RSA Có thể coi bài toán xác thực là bài toán "đối ngẫu" với bài toán bảo mật. Vì vậy, sử dụng ngược thuật toán RSA ta có thể có được một sơ đồ chữ ký số RSA như sau: Cho n = p.q, với p, q là hai số nguyên tố đủ lớn. Khoá K = {(n, p, q, e, d) | d ∈ Z n *, e.d ≡ 1 (mod φ(n) ) } Với khóa k ∈ K. Ta định nghĩa: Tạo chữ ký : y = Sig k (x) = x d mod n Xác thực : Ver k (x, y) = TRUE ⇔ x = y e mod n Trong đó: Phần công khai là: (n, e) Phần bí mật là (p, q, d). 3 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 9 2.1. 2.1. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA ký RSA Lấy E A Người nhận B E B = (e B , n B ) E A = (e A , n A ) Công bố E A Công bố E B Người gửi A ( x, S A ) Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA (không b ký RSA (không b í í m m ậ ậ t b t b ả ả n tin) n tin) Quán lý khóa công khai Ký tên: S A = x d A mod n A Xác thực: x = S A e A mod n A Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 10 2.1. 2.1. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA ký RSA Người nhận B Công bố E B Công bố E A Người gửi A E B = (e B , n B ) E A = (e A , n A ) Quán lý khóa công khai Lấy E A Bản mã Y Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA (c ký RSA (c ó ó b b í í m m ậ ậ t b t b ả ả n tin) n tin) 1. S A = x d A mod n A 2. M = x || S A 3. Y = E B (M) = M e B mod n B Lấy E B 1. M = D B (Y) = Y d B mod n B 2. M = x || S A 3. x = S A e A mod n A Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 11 2.1. 2.1. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA ký RSA Người nhận B Công bố E A Lấy E A Công bố E B Người gửi A ( M, S A ) Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký RSA (c ký RSA (c ó ó b b í í m m ậ ậ t b t b ả ả n tin) n tin) E B = (e B , n B ) E A = (e A , n A ) Quán lý khóa công khai 1. M = E B (x) =x e B mod n B 2. S A = Sig A (M) = M d A mod n A Lấy E B 1. M = S A e A mod n A 2. x = D B (M) = M d B mod n B Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 12 2.2. 2.2. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký ElGramal ký ElGramal Trong đó: Phần công khai là: (p, e, d) Phần bí mật là : a Điểm mạnh của sơ đồ chữ ký Elgamal là cùng số nguyên tố p trong cùng một sơ đồ thì với k là ngẫu nhiên nên ta có thể có nhiều chữ ký số. Có nghĩa là có nhiều chữ ký hợp lệ trên văn bản cho trước. Thuật toán xác thực phải có khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi xác thực chữ ký đó. Cho p là một số nguyên tố đủ lớn và e ∈ Z p * . Khoá K = { (p, e, a, d) | d ≡ e a (mod p ) } Chọn một số ngẫu nhiên k ∈ Z p-1 . Ta định nghĩa Tạo chữ ký: Sig k (x) = (y 1 , y 2 ), với y 1 = e k mod p y 2 = (x- a.y 1 ).k -1 mod (p-1) Xác thực : Ver k (x, y 1 , y 2 ) = TRUE ⇔ d y 1 . y 1 y 2 = e x (mod p) 4 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 13 2.2. 2.2. Sơ đ Sơ đ ồ ồ ch ch ữ ữ ký ElGramal ký ElGramal Ví du: Với x = 5, p = 11→ e = 2 Chọn a = 8 → d = 2 8 = 256 mod 11= 3 Chọn k = 9 Ký tên: y 1 = 2 9 mod 11 = 512 mod 11 = 6 y 2 = (5 - 8*6) *9 -1 (mod 10) = (5 - 48) * 9 (mod 10) = 3 Thử xác thực: z = 3 6 * 6 3 mod 11 = 10 e x = 2 5 mod 11 = 10 (đúng) Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 14 2.3. Chu 2.3. Chu ẩ ẩ n ch n ch ữ ữ ký đi ký đi ệ ệ n t n t ử ử Chuẩn chữ ký số (Digital Signature Standard - DSS) được đề xuất từ năm 1991 và được chấp nhận vào cuối năm 1994 để sử dụng trong một số lĩnh vực giao dịch điện tử tại Hoa kỳ. DSS dựa vào sơ đồ chữ ký ElGamal, với một vài sửa đổi. Để bảo đảm an toàn, số nguyên tố p cần phải đủ lớn, biểu diễn nhị phân của p phải có từ 512 bit trở lên (cụ thể từ 512 đến 1024 bit) Ta được Sơ đồ chuẩn chữ ký số DSS như mô tả sau đây: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 15 2.3. Chu 2.3. Chu ẩ ẩ n ch n ch ữ ữ ký đi ký đi ệ ệ n t n t ử ử Chọn p là một số nguyên tố lớn có độ dài biểu diễn ≥ 512 bit sao cho bài toán tính logarit rời rạc trong Z p là khó, q là một ước số nguyên tố của (p - 1), có độ dài biểu diễn cỡ 160 bit. Gọi e ∈ Z p là một căn bậc q của 1 theo (mod p). Đặt P = Z p , A = Z q × Z q . Chọn a ∈ Z q và tính d ≡ e a (mod p). Xác định khoá k = (p, q, a, e,d), trong đó khoá bí mật là (a) và khoá công khai (p, q, e,d). Thuật toán ký và thuật toán kiểm thử được định nghĩa như sau: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 16 2.3. Chu 2.3. Chu ẩ ẩ n ch n ch ữ ữ ký đi ký đi ệ ệ n t n t ử ử Với e ∈ Z p ∗ , ta chọn số ngẫu nhiên k (0≤ k ≤ q -1). Ta định nghĩa chữ ký: Sig(x, k) = (y 1 , y 2 ), trong đó y 1 = e k (mod p) y 2 = (x + a.y 1 ).k -1 (mod q) Thuật toán kiểm thử được định nghĩa bởi: Ver(x, (y 1 , y 2 )) = TRUE ⇔ (e c 1 . d c 2 mod p) (mod q) = y 1 trong đó: c 1 = x. y 2 -1 (mod q) và c 2 = y 1 . y 2 -1 (mod q) Chú ý rằng ta phải có y 2 ≠ 0 (mod q) để có thể tính được (y 2 -1) (mod q) dùng trong thuật toán kiểm thử, vì vậy nếu chọn k mà y 2 ≡ 0 (mod q) thì phải chọn lại số k khác để có được y 2 ≠ 0 (mod q). 5 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 17 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Ta biết rằng, tốc độ mã hóa khóa công khai là rất chậm, cho nên nếu ký một văn bản có kích thước lớn thì việc dùng chữ ký số với mã khóa công khai trực tiếp là không phù hợp. Một cách đơn giản, để giải bài toán trên là chia văn bản lớn thành nhiều đoạn con, sau đó ký lên các đoạn đó độc lập nhau. Điều này cũng tương tự như mã một chuỗi dài bản rõ bằng cách mã tường kí tự bản rõ độc lập nhau bằng cùng một khoá. Tuy nhiên phương pháp này có nhược điểm đó là vẫn tốn kém về thời gian đối với những văn bản có kích thước lớn. Mặt khác, một số đoạn có thể bị thất lạc trong quá trình lưu chuyển đến người nhận, do đó mà có thể bị lỗi trong quá trình xác thực chữ ký. Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 18 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Mô h Mô h ì ì nh mã h nh mã h ó ó a t a t ừ ừ ng kh ng kh ố ố i i Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 19 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Phương pháp cải tiến cho các nhược điểm trên là: Thay vì ký tất cả các đoạn văn bản, ta sẻ xây dựng một bản tóm lược thông tin của văn bản (Messgage digest). Bản tóm lược này có kích thước cố định cho mọi văn bản (tùy thuộc vào sơ đồ). Bản tóm lược này phải thõa mãn điều kiện là bất kỳ sự thay đổi nào trên văn bản đều làm thay đổi bản tóm lược của nó. (Nói cách khác, hai văn bản khác nhau không thể có cùng bản tóm lược). ⇒ Giải pháp cho vấn đề trên là sử dụng hàm băm mã khóa công khai. Hàm này lấy một văn bản điện tử có độ dài hữu hạn tùy ý và tạo ra một bản tóm tắt có kích thước quy định. Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 20 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Mô h Mô h ì ì nh h nh h à à m băm m băm h h 6 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 21 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Định nghĩa tổng quát hàm băm Hàm h(x) được gọi là một hàm băm nếu nó thỏa mãn hai tính chất sau: Tính nén : Hàm h(x) tương ứng chuỗi đầu vào x có độ dài hữu hạn tùy ý vào chuỗi bit y = h(x) có chiều dài cố định n > 0 cho trước (thường là không lớn). Dễ tính toán : Với mọi chuỗi đầu vào x có chiều dài hữu hạn tùy ý, hàm băm h(x) được tính “dễ dàng” * Ta có thể hiểu “dễ tính toán” theo nghĩa độ phức tạp về thời gian tính toán là đa thức. Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 22 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Cấu trúc cơ bản của thuật toán hàm băm: Với khối đầu vào x có chiều dài hữu hạn tùy ý sẽ được phân thành các khối con x 1 , x 2 , ., x m có chiều dài cố định r. H 0 = Init_value; H i = f (H i-1 , x i ), (i = 1,2, ., m) h(x) = g(H m ) Quá trình xử lý dãy các khối con x 1 , x 2 , ., x m được mô tả như sau. * Khâu then chốt trong xây dựng hàm băm đó là thiết kế hàm nén f (H i-1 , x i ). Thông thường, trong các thuật toán, hàm g(x) thường được chọn là ánh xạ đồng nhất, tức là g(H m ) = H m Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 23 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Sơ đ Sơ đ ồ ồ thu thu ậ ậ t to t to á á n h n h à à m băm m băm H 2 H m Hash H 1 Init value Message Block m Message Block 2 Message Block 1 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 24 Danh s Danh s á á ch c ch c á á c h c h à à m băm m m băm m ậ ậ t mã h t mã h ọ ọ c c 512512WHIRLPOOL 8320/512VEST-16/32 (hash mode) 8160/256VEST-4/8 (hash mode) 512192/160/128Tiger(2)-192/160/128 1024512/384SHA-512/384 512256/224SHA-256/224 512160SHA-1 512160SHA-0 512160/320RIPEMD-160/320 512128/256RIPEMD-128/256 512128RIPEMD 256256PANAMA 512128MD5 512128MD4 128128MD2 1024256/224/192/160/128HAVAL Kích thước khối (Block size)Kích thước đầu ra (output size)Thuật toán 7 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 25 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Thực hiện sinh chữ ký số với hàm băm Khi A muốn ký bức điện x , trước tiên A ta xây dựng một bản tóm lược của văn bản h(x) bằng cách sử dụng hàm băm có sẵn trên hệ thống. A sử dụng chìa khóa riêng (bí mật) của mình ký lên bản tóm lược Sig k (h(x)) . A gửi cho B cả văn bản x và bản tóm lược đã được ký Sig k (h(x)) . Khi B nhận được văn bản cùng với bản tóm lược thì tiến hành công việc: Xây dựng lại bản tóm lược h(x) của văn bản nhận được bằng hàm băm có sẵn trên hệ thống. Giải mã bản tóm lược đã được ký Sig k (h(x)) bằng khóa công khai của A So sánh hai bản tóm lược này với nhau. Nếu chúng khớp thì chứng tỏ văn bản không bị thay đổi so với trước khi ký gửi cho B . Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 26 2.4. Sinh ch 2.4. Sinh ch ữ ữ ký s ký s ố ố v v ớ ớ i h i h à à m băm m băm (Hash) (Hash) Sơ đồ xác thực chữ ký số với hàm băm Nơi gửi thông tin Nơi nhân thông tin Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 27 3. QU 3. QU Ả Ả N LÝ KHOAV N LÝ KHOAV À À PHÂN PH PHÂN PH Ố Ố I KH I KH Ó Ó A A Chúng ta đã thấy rằng, hệ thống mã khoá công khai có ưu điểm hơn hệ thống mã khoá bí mật ở chỗ không cần có kênh an toàn để trao đổi khoá mật. Tuy nhiên, hầu hết các hệ thống mã khoá công khai đều chậm hơn nhiều so với hệ mã khoá bí mật, chẳng hạn như DES. Vì thế, trong thực tế người ta thường dùng các hệ mã khoá bí mật để mã hóa các văn bản có kích thước lớn. ⇒ Làm thế nào để quản lý khoá được bí mật ? Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 28 3.1. C 3.1. C á á c giao th c giao th ứ ứ c m c m ậ ậ t mã t mã Giao thức là nghi thức giao dịch bao gồm một chuỗi các bước hoạt động có sự tham gia của 2 hay nhiều phía nhằm hoàn thành một nhiệm vụ xác định. Giao thức mật mã là giao thức dùng trong mật mã học và được xây dựng dựa trên các công cụ của mật mã học 8 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 29 3.2. Phân ph 3.2. Phân ph ố ố i v i v à à th th ỏ ỏ a thu a thu ậ ậ n kh n kh ó ó a a Phân phối khoá : Là cơ chế một nhóm tạo ra khoá bí mật và sau đó truyền khóa bí mật đó đến cho các nhóm khác. Thoả thuận khoá : Là giao thức để hai nhóm (hoặc nhiều nhóm) liên kết lại với nhau để cùng tạo ra một khoá bí mật bằng cách liên lạc với nhau trên kênh công khai. ⇒ Mục tiêu của phân phối khoá và giao thức thoả thuận khoá là: Tại thời điểm kết thúc thủ tục tạo khóa, hai nhóm đều có cùng khoá K song không nhóm khác nào biết được (trừ người ủy quyền tín nhiệm). Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 30 3.2. Phân ph 3.2. Phân ph ố ố i v i v à à th th ỏ ỏ a thu a thu ậ ậ n kh n kh ó ó a a Giao thức phân phối khóa của Diffie – Hellman: Giao thức phân phối khoá Diffie-Hellman không đòi hỏi TA (trọng tài – cơ quan ủy thác) phải biết và chuyển bất kỳ thông tin bí mật nào về khoá của các người tham gia trong mạng để họ thiết lập được khoá chung bí mật cho việc truyền tin với nhau. Trong một hệ phân phối khoá Diffie-Hellman, TA chỉ việc chọn một số nguyên tố lớn p và một phần tử nguyên thuỷ e theo (mod p), sao cho bài toán tính log e trong Z p ∗ là rất khó. Các số p và e được công bố công khai cho mọi người tham gia trong mạng. Ngoài ra, TA có một sơ đồ chữ ký với thuật toán ký (bí mật) Sig TA và thuật toán kiểm thử (công khai) Ver TA . Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 31 3.2. Phân ph 3.2. Phân ph ố ố i v i v à à th th ỏ ỏ a thu a thu ậ ậ n kh n kh ó ó a a Giao thức trao đổi khóa bí mật của Diffie – Hellman: Hệ phân phối khoá Diffie-Hellman nói trong mục trước có thể dễ dàng biến đổi thành một giao thức trao đổi (hay thoả thuận) khoá trực tiếp giữa các người sử dụng mà không cần có sự can thiệp của một TA làm nhiệm vụ điều hành hoặc phân phối khoá. Một nhóm bất kỳ người sử dụng có thể thoả thuận cùng dùng chung một số nguyên tố lớn p và một phần tử nguyên thuỷ α theo (mod p), hai người bất kỳ trong nhóm A và B mỗi khi muốn truyền tin bảo mật cho nhau có thể cùng thực hiện giao thức say đây để trao đổi khoá: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 32 3.2. Phân ph 3.2. Phân ph ố ố i v i v à à th th ỏ ỏ a thu a thu ậ ậ n kh n kh ó ó a a Giao thức trao đổi khóa bí mật của Diffie – Hellman: Nếu A và B cùng muốn có chung một con số để làm khóa chung cho hệ mã đối xứng thì họ có thể chọn ngay số M = α k A k B . Cả A và B có thể tính ra số này một cách dễ dàng (Người khác không thể tìm được M nếu không biết trước k A hoặc k B ). Muốn vậy, A chọn ngầu nhiện một số k A và gửi cho B giá trị X = α k A , còn B chọn ngầu nhiên một số y rồi gửi cho A giá trị Y = α k B . Khi đó 2 người sẽ tinh dược dễ dàng con số chung: K = Y k A = (α k B ) k A = (α k A ) k B = X k B Nếu nhu cầu trao đổi thông tin lớn thì A và B phải lấy giá trị số khác cho những lần trao đổi thông tin khác nhau. 9 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 33 3.3. Qu 3.3. Qu ả ả n lý kh n lý kh ó ó a a Trong thực tế, quản lý khoá là vấn đề khó nhất của an toàn hệ mã hoá. Để thiết kế an toàn thuật toán mã hoá là một việc là không phải là dễ dàng nhưng để tạo và lưu trữ khoá bí mật là một điều khó hơn. Kẻ thám mã thường tấn công cả hai hệ mã hoá đối xứng và công khai thông qua hệ quản lý khoá của chúng. Đối với hệ mã hoá công khai việc quản lý khoá dễ hơn đối với hệ mã hoá đối xứng, nhưng nó có một vấn đề riêng duy nhất. Mối người chỉ có một khoá công khai, bất kể số người ở trên mạng là bao nhiêu. Nếu A muốn gửi thông báo đến cho B, thì A cần có khoá công khai của B. Có một vài phương pháp mà A có thể lấy khoá công khai của B: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 34 3.3. Qu 3.3. Qu ả ả n lý kh n lý kh ó ó a a Giả sử A muốn lưu giữ khóa công khai tin cây của B (vì có thể C giả dạng B để đưa khóa công khai cho A ) thì có thể thực hiện bằng các cách sau: B chứa khóa công khai trên đĩa mềm (đĩa cầm tay) và trao nó cho A , sau đó A có thể nạp khóa vào hệ thống của A từ đĩa mềm (phương pháp này đảm bảo được bí mật nhưng thực tế thì nó không thuận lợi khi thực hiện). A gọi điện cho B và yêu cầu B cho biết khóa. Hoặc B có thể gửi khóa cho A thông qua Email. Thông qua cá nhân tin cậy D : Trươc hết, D tạo chứng thực chữ ký gồm có khóa công khai của B , thời gian tạo khóa và chu kỳ hợp lệ của khóa, sau đó sử dụng hàm băm để tạo bản tóm lược của chứng thực này (Message digest), mã hóa nó bằng khóa bí mật của mình và gửi tới A . Khi nhận được, A có thể giải mã để lấy khóa công khai của B . Thực hiện thông qua người xác thực ủy quyền CA . Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 35 3.4. Qu 3.4. Qu ả ả n lý kh n lý kh ó ó a a Chứng nhận khoá công khai là xác định khoá thuộc về một ai đó, được quản lý bởi một người đáng tin cậy. Chứng nhận khóa nhằm cản trở sự cống gắng thay thế một khoá này bằng một khoá khác (của người xấu). Chứng nhận của B, trong sơ sở dữ liệu khoá công khai, lưu trữ nhiều thông tin hơn chứ không chỉ là khoá công khai. Nó lưu trữ thông tin về B như tên, địa chỉ, . và nó được viết bởi ai đó mà A tin tưởng, người đó thường gọi là CA(certifying authority). Chứng nhận khóa công khai: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 36 3.4. Qu 3.4. Qu ả ả n lý kh n lý kh ó ó a a Bằng cách xác nhận cả khoá và thông tin về B. CA xác nhận thông tin về B là đúng và khoá công khai thuộc quyền sở hữu của B. Người A kiểm tra lại các dấu hiệu và sau đó A có thể sử dụng khoá công khai, và gửi bản mã an toàn cho B và không một ai khác biết. Chứng nhận đóng một vai trò rất quan trọng trong giao thức của khoá công khai. Chứng nhận khóa công khai: 10 Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 37 3.4. Qu 3.4. Qu n lý kh n lý kh ú ú a a Trong mt vi trng hp, trung tõm qun lý khoỏ cú th khụng lm vic. Cú l khụng cú mt CA (certifying authority) no m A v B tin tng. Cú l h ch tin tng bn bố thõn thit hoc h khụng tin tng bt c ai. Qun lý khoỏ phõn phi, s dng trong nhng chng trỡnh min cụng khai, gii quyt vn ny vi ngi gii thiu (introducers). Ngi gii thiu l mt trong nhng ngi dựng khỏc ca h thng anh ta l ngi nhn ra khoỏ cụng khai ca bn anh ta. Qun lý phõn phi khúa: Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 38 H H NG NGHIấN C NG NGHIấN C U M U M R R NG NG - Ch ký s khụng th ph nhn. - Cỏc giao thc trong trao i thụng tin. - Cỏc giao thc trao i khúa - Thut toỏn ca hm bm: MD4, MD5, SHA-1, SHA-2, SHA-256, SHA-512, . - Qun lý khúa trong bo mt thụng tin. Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó 3 - 39 Xin chân thành cảm ơn . đổi thông tin khác nhau. 9 Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 33 3. 3. Qu 3. 3. Qu ả ả n lý kh n lý kh ó ó a a Trong. Ta được Sơ đồ chu n chữ ký số DSS như mô tả sau đây: Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã 3 - 15 2 .3. Chu 2 .3. Chu ẩ ẩ n ch