Bài giảng Truyền và bảo mật thông tin - Nguyễn Văn Khang
Tóm tắt Bài giảng Truyền và bảo mật thông tin - Nguyễn Văn Khang: ...iữa xác suất giải mã và khoảng cách Hamming Giả sử nhận được v: Xét 2 từ mã w1 và w2 cần chọn để giải mã cho v, độ dài từ mã là n: Gọi d1=d(v, w1), d2=d(v,w2). Xác suất đế nhận v khi truyền w1: p(v/w1)= β d1(1− β)n-d1 Xác suất đế nhận v khi truyền w2: p(v/w2)= β d2(1− β)n-d2 N...oi bản rõ là một luồng bit, byte liên tục. Truyền và bảo mật thông tin 208 I.6. Phân loại các thuật toán mật mã học Phân loại theo thời gian ra đời: 1. Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) 2. Mật mã hiện đại (ra đời sau năm 1970) Truyền và bảo mật thông tin - Nguyễn Văn Kha... tin 286 II.1. Tổng quan về các hệ mã khóa công khai Các điều kiện cho hệ bảo mật không đối xứng: 1. Từ điều kiện ban đầu, việc tính Kp và Ks, là (tại máy nhận B) dễ dàng (khoảng thời gian đa thức) 2. Người gửi A, với khóa công khai Kp và bản thông báo p, có thể dễ dàng tính bản mã: c=Ekp...
Các đặc trưng của khoá công khai Các thuật toán khoá công khai dùng 2 khoá với các đặc trưng sau: 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. Truyền và bảo mật thông tin 348 II.4. Tổng kết Mặc dù an toàn nhưng các hệ mã khóa công khai đòi hỏi tài nguyên lớn khi thực thi: thời gian và bộ nhớÆ Trong thực tế các hệ mã này thường chỉ được sử dụng trong những công đoạn quan trọng như: chứng thực, tạo chữ ký, cất giữ mật khẩu, mã hóa khóa Với những ứng dụng cụ thể, đòi hỏi phải có các nghi thức và quy trình bảo mật thích hợp Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 88 Truyền và bảo mật thông tin 349 II.4. Tổng kết 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 Khi cần gửi thông tin qua mạng, người ta thường mã hóa chúng bằng một thuật toán đối xứng. Khóa bí mật của hệ mã này được mã bằng một hệ mật mã khóa công khai để truyền qua cho người nhận Truyền và bảo mật thông tin 350 II.4. Tổng kết Ví dụ kết hợp 2 loại mật mã: Đối tượng cần truyền tin A gửi tín hiệu yêu cầu nhận tin tới đối tượng B Đối tượng B chấp nhận và gửi khoá công khai KPB cho đối tượng A Đối tượng A sinh ra khoá bí mật K, mã hoá thành EKpB(K), rồi gửi cho B Đối tượng B nhận EKPB (K), dùng KSBgiải mã lại thành K, và gửi sẵn sàng nhận tin cho A Đối tượng A chuẩn bị gói tin P, mã hoá thành K(P), rồi gửi cho B Đối tượng B nhận gói K(P), giải mã thành P, và lưu lại cho mình Truyền và bảo mật thông tin 351 II.4. Tổng kết Tại sao lại phải dùng mã khoá công khai? Người ta muốn giải quyết hai vấn đề sau về khoá nảy sinh trong thực tế: Phân phối khoá - làm sao có thể phân phối khóa an toàn mà không cần trung tâm phân phối khoá tin cậy 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. Nếu chỉ dùng khoá đối xứng, thì không có giải pháp cho hai bài toán trên. Truyền và bảo mật thông tin 352 II.4. Tổng kết Ứng dụng khoá công khai Có thể phân loại các ứng dụng của khoá công khai thành 3 loại khác nhau: Mã/giải mã – cung cấp bảo mật. Đây là ứng dụng bảo mật truyền thống giống như ta vẫn thường dùng với khoá đối xứng. Chữ ký điện tử - cung cấp xác thực. Một trong các ứng dụng mới của khoá công khai mà khoá đối xứng không thể thực hiện được, đó là khoá công khai có đủ cơ sở để xác nhận người gửi và có thể là một lựa chọn để tạo chữ ký điện tử của người gửi. Một số thuật toán mã công khai phù hợp với mọi ứng dụng, còn một số khác chuyên dùng cho ứng dụng cụ thể. Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 89 Truyền và bảo mật thông tin 353 Chương IV. Chữ ký điện tử và các hàm băm IV.1. Chữ ký điện tử IV.2. Các hàm băm Truyền và bảo mật thông tin 354 IV.1. Chữ ký điện tử IV.1.1. Khái niệm về chữ ký điện tử IV.1.2. Sơ đồ chữ ký RSA IV.1.3. Sơ đồ chữ ký Elgamal IV.1.4. Chuẩn chữ kí số (DSS) Truyền và bảo mật thông tin 355 IV.1.1. Khái niệm về chữ ký điện tử Sơ đồ chữ ký điện tử (CKĐT) là phương pháp kí một bức điện lưu dưới dang điện tử. Chẳng hạn một bức điện có ký hiệu được truyền trên mạng máy tinh. Là một cơ chế xác thực hóa cho phép đính kèm một mã số vào thông điệp tương tự như là việc kí một chữ ký lên môt văn bản bình thường. Truyền và bảo mật thông tin 356 IV.1.1. Khái niệm về chữ ký điện tử Khác biệt giữa CKĐT và chữ ký thường: Bản copy đồng nhất với bản gốc Æ bị dùng lạiÆ khắc phục bằng cách dán nhãn thời gian Bản copy thường khác với bản gốc Kiểm tra nhờ thuật toán xác thực công khai, sơ đồ chữ ký an toàn ngăn chặn được giả mạo Kiểm tra bằng cách so sánh nó với các chữ kí xác thực khácÆ dễ giả mạo Không gắn theo kiểu vật lý, là sự mã hóa, “không nhìn thấy” Là một phần vật lý của tài liệu Chữ ký điện tửChữ ký thường Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 90 Truyền và bảo mật thông tin 357 IV.1.1. Khái niệm về chữ ký điện tử Một sơ đồ chữ kí số thường chứa hai thành phần: Thuật toán kí và thuật toán xác minh. Chữ kí sig(x) nhận được có thể kiểm tra bằng thuật toán xác minh công khai ver. Truyền và bảo mật thông tin 358 IV.1.1. Khái niệm về chữ ký điện tử Định nghĩa Một sơ đồ chữ kí số là bộ 5( P,A, K,S,V) thoả mãn các điều kiện dưới đây: 1. P là tập hữu hạn các bức điện có thể. 2. A là tập hữu hạn các chữ kí có thể. 3. K không gian khoá là tập hữu hạn các khoá có thể. 4. Với mỗi k thuộc K tồn tại một thuật toán kí sigk ∈ S và là một thuật toán xác minh verk∈ V. Mỗi sigk : P → A và verk: P×A →{true,false} là những hàm sao cho mỗi bức điện x∈ P và mối chữ kí y∈ A thoả mãn phương trình dưới đây: True nếu y=sigk(x) verk(x,y)= False nếu y ≠ sigk(x) Truyền và bảo mật thông tin 359 IV.1.1. Khái niệm về chữ ký điện tử sigk và verk là các hàm thời gian đa thức. Verk là hàm công khai sigk là mật. Không thể dể dàng tính toán để giả mạo chữ kí Một sơ đồ chữ kí không thể an toàn vô điều kiện có thể kiểm tra tất cả các chữ số y có thể có trên bức điện x nhờ dùng thuât toán ver công khai cho đến khi tìm thấy một chữ kí đúng. Truyền và bảo mật thông tin 360 IV.1.2. Sơ đồ chữ ký RSA Độ an toàn rất cao, dựa vào ưu điểm của hệ mã RSA, Đảo ngược hàm mã và giải mã Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 91 Truyền và bảo mật thông tin 361 IV.1.2. Sơ đồ chữ ký RSA Sơ đồ chữ ký RSA Cho n= pq, p và q là các số nguyên tố. Cho P =A= Zn và định nghĩa: K= {(n,p,q,a,b):n=pq,p và q là nguyên tố, ab ≡1(mod φ(n)) }. Các giá trị n và b là công khai, còn p, q, a là bí mật Ta định nghĩa : sigk(x)= xa mod n và verk(x,y)= true ⇔ x ≡yb (mod n) với x,y ∈Zn Truyền và bảo mật thông tin 362 IV.1.2. Sơ đồ chữ ký RSA Chữ ký thường dùng kết hợp với hàm mã hóa công khai: Giả sử rằng, A muốn gửi thông điệp đã mã hóa và ký đến B: A tính y= sigA(x) và sau đó mã cả x và y bằng hàm mã khoá công khai eB của B, B nhận được z = eB(x,y), dùng hàm dB giải mã z để nhận được (x,y). Sau đó kiểm tra xem verA(x,y) có bằng True hay không. Truyền và bảo mật thông tin 363 IV.1.2. Sơ đồ chữ ký RSA Nếu đầu tiên A mã x rồi sau đó mới kí lên bản mã thì sao?. Tức là: A tính: z=eB(x) và y= sigA(z). A sẽ truyền cặp (z,y) tới B. B sẽ dùng verA xác minh chữ ký và dùng dB giải mã z, nhận x Æ Một vấn đề tiểm ẩn trong biện pháp này là nếu C nhận được cặp (z,y) có thể thay chữ kí y của A bằng chữ kí của mình: y’ = sigC(z)=sigC(eB(x)). Khi đó nếu C truyền(z, y’ ) đến B thì chữ kí C được B xác minh bằng verC và B có thể suy ra rằng, bản rõ x xuất phát từ C. Do khó khăn này, hầu hết người sử dụng được khuyến nghị nên kí trước khi mã. Truyền và bảo mật thông tin 364 IV.1.3. Sơ đồ chữ ký Elgamal Sơ đồ chữ kí Elgamal đã từng dưới thiệu trong bài báo năm 1985. Bản cả tiến của sơ đồ này đã được Viện Tiêu chuẩn và Công Nghệ Quốc Gia Mỹ (NIST) chấp nhận làm chữ kí số. Sơ đồ Elgamal (E.) được thiết kế với mục đích dành riêng cho chữ kí số, khác sơ đồ RSA dùng cho cả hệ thống mã khoá công khai lẫn chữ kí số. Đối với sơ đồ E, có nhiều chữ kí hợp lệ trên bức điện cho trươc bất kỳ. Thuật toán xác minh phải cố khả năng chấp nhận bất kì chữ kí hợp lệ khi xác thực. Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 92 Truyền và bảo mật thông tin 365 IV.1.3. Sơ đồ chữ ký Elgamal Định nghĩa: cho a ∈ZN, bậc t của a (ký hiệu là ord(a)) là số nguyên dương nhỏ nhật sao cho at=1 (mod N) Nếu a ∈ZN* và có bậc φ(N) thì ta gọi a là phần tử sinh hay phần tử nguyên thủy của tập ZN. Theo định lý Euler, nếu a ∈ZN* thì aφ(N)=1 (mod N), => t là ước số của φ(N) Truyền và bảo mật thông tin 366 IV.1.3. Sơ đồ chữ ký Elgamal Sơ đồ chữ ký Elgamal: Cho p là số nguyên tố sao cho bài toán logarit rời rạc trên Zp là khó và giả sử α ∈ Zn là phần tử nguyên thủy, P = Zp* , A = Zp* × Zp-1 và định nghĩa : K ={(p,α ,a,β ): β ≡ αa (mod p)}. Giá trị p,α ,β là công khai, còn a là mật. Với K = (p,α ,a,β ) và một số ngẫu nhiên (bí mật) k∈ Zp-1. và định nghĩa : Sigk(x,y) =(γ ,δ), trong đó γ = αk mod p và δ =(x-aγ) k-1 mod (p-1). Với x,γ ∈ Zp* và δ ∈ Zp-1 , ta định nghĩa : Ver(x,γ ,δ ) = True ⇔ βγ γδ ≡ αx (mod p). Truyền và bảo mật thông tin 367 IV.1.3. Sơ đồ chữ ký Elgamal Nếu chữ kí được thiết lập đúng khi xác minh sẽ thành công vì : βγ γδ ≡ αaγ αk δ (mod p)= α aγ +k δ (mod p) Mặt khác ta có: a γ+ k δ = a γ+ (k(x-aγ) k-1 mod (p-1)) = a γ + (x - a γ) mod (p-1) = a γ + x mod (p-1) - a γ mod (p-1) = x (mod p-1) => a γ+ k δ =t(p-1)+x (với t là một số nguyên nào đó) => α aγ +k δ (mod p) = α t(p-1) α x (mod p) = α x (mod p) (Do αp-1 mod p=1 khi p là SNT - Định lý Ferma) Vì vậy: βγ γδ = α aγ +k δ (mod p) ≡ αx(mod p) Truyền và bảo mật thông tin 368 IV.1.3. Sơ đồ chữ ký Elgamal Ví dụ Giả sử cho p = 467, α =2,a = 127; khi đó: β = αa mod p = 2127 mod 467=132 Bức điện x = 100, chọn số ngẫu nhiên k =213 (chú ý là UCLN(213,466) =1 và 213-1 mod 466 = 431. Khi đó γ =2213 mod 467 = 29 và δ =(100-127 × 29) 431 mod 466 = 51. Bất kỳ ai cũng có thể xác minh chữ kí bằng các kiểm tra : 13229 2951 ≡ 189 (mod 467) và 2100 ≡ 189 (mod 467) Vì thế chữ kí là hợp lệ. Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 93 Truyền và bảo mật thông tin 369 IV.1.3. Sơ đồ chữ ký Elgamal Xét độ mật của sơ đồ chữ kí E. Giả sử, C thử giả mạo chữ kí trên bức điện x cho trước không biết a. Nếu C chọn γ và sau đó thử tìm giá trị δ tương ứng, anh ta phải tính logarithm rời rạc logγ αxβ-γ. Mặt khác, nếu đầu tiên ta chọn δ và sau đó thử tìm γ và thử giải phương trình: βγ γδ ≡ αx(mod p). để tìm γ. Đây là bài toán chưa có lời giải nào: Tuy nhiên, dường như nó chưa được gắn với đến bài toán đã nghiên cứu kĩ nào nên vẫn có khả năng có cách nào đó để tính δ và γ đồng thời để (δ, γ) là một chữ kí. Hiện thời không ai tìm được cách giải song củng ai không khẳng định được rằng nó không thể giải được. Truyền và bảo mật thông tin 370 IV.1.3. Sơ đồ chữ ký Elgamal Tuy nhiên, có một cách để C có thể kí lên bức điện ngẫu nhiên bằng việc chọn γ, δ và x đồng thời: giả thiết i và j là các số nguyên 0 ≤ i ≤ p-2, 0 ≤ j ≤ p-2 và UCLN(j,p-2) = 1. Khi đó C thực hiện các tính toán sau: γ = αi βj mod p δ = -γ j-1 mod (p-1) x = -γ i j-1 mod (p-1) trong đó j-1 được tính theo modulo (p-1) (ở đây đòi hỏi j nguyên tố cùng nhau với p-1). Truyền và bảo mật thông tin 371 IV.1.3. Sơ đồ chữ ký Elgamal Xem (δ, γ) là giá trị chữ ký cho bức điện x. Việc xác minh sẽ hợp lệ: Truyền và bảo mật thông tin 372 IV.1.3. Sơ đồ chữ ký Elgamal Vấn đề khác: có thể giả mạo chữ ký bằng cách sử dụng chữ ký trước đó ký cho nhiều bức khác: Nếu có cặp (δ, γ) và x, lấy h, i va ̀ j là các số nguyên, trong đó 0≤ i, j, h ≤ p-2 và UCLN (h γ - j δ, p-1) = 1. Tính: Cặp (λ, μ) là chữ ký cho bức điện x’ Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 94 Truyền và bảo mật thông tin 373 IV.1.4. Chuẩn chữ kí số (DSS) Chuẩn chữ kí số(Digital Signature Standard- DSS) là phiên bản cải tiến của sơ đồ chữ kí Elgamal. Nó được công bố trong Hồ Sơ trong liên bang vào ngày 19/5/94 và được làm chuẩn voà 1/12/94 tuy đã được đề xuất từ 8/91. Truyền và bảo mật thông tin 374 IV.1.4. Chuẩn chữ kí số Giả sử p là số nguyên tố 512 bít sao cho bài toán logarithm rời rạc trong Zp khong Giải được, cho q là số nguyên tố 160 bít là ước của (p-1). Giả thiết α ∈ Zp là căn bậc q của 1 modulo p (αq≡1 (mod p). Cho P =Zp . A = Zq× Zq và định nghĩa : K = {(p,q,α ,a,β ) : β ≡ αa (mod p)} các số p, q, α và β là công khai, còn a mật. Với K = (p,q,α ,a,β )và với một số ngẫu nhiên (mật) k ,1 ≤ k ≤ q-1, ta định nghĩa: sig (x,k) = (γ ,δ) trong đó γ =(αk mod p) mod q và δ = (x +aγ )k-1 mod q Với x ∈ Zp và γ ,δ ∈ Zq , qua trình xác minh sẽ hoàn toàn sau các tính toán : e1= xδ-1 mod q e2= γδ-1 mod q ver (x, γ, δ) = true ⇔( αe1βe2 mod p) mod q = γ Truyền và bảo mật thông tin 375 IV.1.4. Chuẩn chữ kí số Chú ý: p-1=qt, với t là số nguyên Để chọn α, ta có thể chọn g bất kỳ ∈ Zp* và tính α =gt bởi vì khi đó: αq (mod p) =gtq (mod p) = g(p-1) (mod p) = 1 (mod p) (ĐL Ferma) Truyền và bảo mật thông tin 376 IV.1.4. Chuẩn chữ kí số Ví dụ: Giả sử p=29 q =7, p = 4q+1. 3 ∈ Zp* nên ta có thể lấy: α = 34 mod 29 =23 Chọn a =5, khi đó : β = αa mod p=235 mod 29=25 Ký bức điện x = 6: Chọn số ngẫu nhiên k =3=> k-1=5 : khi đó: γ =(αk mod p) mod q =(233 mod 29) mod 7=2 và δ = (x +aγ )k-1 mod q =(6+5*2)*5 mod 7=3 Chữ kí (2, 3) trên bức điện 6 được xác minh bằng các tính toán sau:δ-1 = 5 e1= xδ-1 mod q=6*5 mod 7=2 e2= γδ-1 mod q=2*5 mod 7=3 ( αe1βe2 mod p) mod q=232*253 mod 29 mod 7=2 (= γ ) Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 95 Truyền và bảo mật thông tin 377 Mô hình ứng dụng CKĐT Truyền và bảo mật thông tin 378 IV.2. Các hàm băm IV.2.1. Khái niệmhàm băm IV.2.2. Tính chất hàm băm IV.2.3. Một số hàm băm nổi tiếng IV.2.4. Ứng dụng các hàm băm Truyền và bảo mật thông tin 379 IV.2.1. Khái niệm hàm băm Đặt vấn đề Với các sơ đồ ký số, chỉ cho phép ký các bức thông điệp (thông tin) có kích thước nhỏ. Đối với thông điệp lớn (chẳng hạn vài chục MB)? Có giải pháp đơn giản là chặt bản thông điệp ra nhiều đoạn nhỏ (chẳng hạn 160 bit) rồi ký lên từng đoạn. Biện pháp này sẽ gặp những vấn đề gì? Truyền và bảo mật thông tin 380 IV.2.1. Khái niệm hàm băm Các vấn đề mắc phải: Thứ nhất: kích thước thông điệp sẽ lớn lên (nếu sử dụng DSS thì riêng kích thước chữ ký gấp đôi thông điệp). Thứ hai: với các chữ ký “an toàn” thì tốc độ chậm vì chúng dùng nhiều phép tính số học phức tạp như số mũ modulo. Thứ ba : vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung của thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có thể bị mất mát, trong khi người nhận cần phải xác minh lại thông điệp. Ta cần phải bảo vệ tính toàn vẹn của thông điệp. Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 96 Truyền và bảo mật thông tin 381 IV.2.1. Khái niệm hàm băm Giải pháp cho các vấn đề vướng mắc đến chữ ký số là dùng hàm băm (Hash) để trợ giúp cho việc ký số. Các thuật toán băm với đầu vào là các bức thông điệp có dung lượng, kích thước tùy ý (vài KB đến vài chục MB thậm chí hơn nữa) – các bức thông điệp có thể là dạng văn bản, hình ảnh, âm thanh, file ứng dụng v.v - và với các thuật toán băm: MD2, MD4, MD5, SHA cho các bản băm đầu ra có kích thước cố định (128 bit với dòng MD, 160 bit với SHA) được gọi là cốt của bức điện (message digest). Truyền và bảo mật thông tin 382 IV.2.1. Khái niệm hàm băm Định nghĩa Hàm băm là các thuật toán không sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra một bản băm – văn bản đại diện – có kích thước cố định. Do đó người nhận không biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm. Giá trị của hàm băm là duy nhất, và không thể suy ngược lại được nội dung thông điệp từ giá trị băm này. Truyền và bảo mật thông tin 383 IV.2.1. Khái niệm hàm băm Kết hợp CKĐT với hàm băm: y=sigA(z)z=h(x) verA(z,y) z=h(x) true false y x x A B K ê n h k h ô n g a n t o à n Truyền và bảo mật thông tin 384 IV.2.1. Khái niệm hàm băm Kết hợp CKĐT với hàm băm: Giả sử A muốn gửi cho B thông điệp x. A thực hiện các bước sau: 1. A băm thông điệp x, thu được bản đại diện z = h(x) – có kích thước cố định 128 bit hoặc 160 bit. 2. A ký số trên bản đại diện z bằng khóa bí mật của mình, thu được bản ký số y = sigA(z). 3. A gửi (x, y) cho B Khi B nhận được (x, y). B thực hiện các bước sau: 1. B dùng thuật toán băm – tương ứng với thuật toán băm mà A dùng – để băm thông điệp x đi kèm, nhận được z=h(x). 2. B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có phải được gửi từ A hay ko bằng cách sử dùng hàm verA(z,y) Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 97 Truyền và bảo mật thông tin 385 IV.2.2. Tính chất hàm băm Tính chất 1: Hàm băm không va chạm yếu Không gian hàm băm nhỏ hơn không gian thông điệpÆ có sự đụng độ: tồn tại 2 thông điệp x, x’, x≠x’ mà h(x)=h(x’) Do đó có thể tấn công: Người A gửi cho B (x, y) với y = sigA(h(x)). Nhưng trên đường truyền, tin bị lấy trộm. Tên trộm, bằng cách nào đó tìm được một bản thông điệp x’ có h(x’) = h(x) mà x’ ≠ x. Sau đó, hắn đưa x’ thay thế x rồi truyền tiếp cho người B. Người B nhận được và vẫn xác thực được thông tin đúng đắn. Để tránh tấn công trên, hàm băm phải không va chạm yếu Truyền và bảo mật thông tin 386 IV.2.2. Tính chất hàm băm Tính chất 1: Hàm băm không va chạm yếu: Hàm băm h là không va chạm yếu nếu khi cho trước một bức điện x, không thể tiến hành về mặt tính toán để tìm ra một bức điện x’ ≠ x mà h(x’) = h(x). Truyền và bảo mật thông tin 387 IV.2.2. Tính chất hàm băm Tính chất 2: Hàm băm không va chạm mạnh: Xét một kiểu tấn công: Đầu tiên, tên giả mạo tìm ra được hai bức thông điệp x’ và x (x’ ≠ x) mà có h(x’) = h(x) (ta coi bức thông điệp x là hợp lệ, còn x’ là giả mạo). Tiếp theo, hắn đưa cho ông A và thuyết phục ông này kí vào bản tóm lược h(x) để nhận được y. Khi đó (x’, y) là bức điện giả mạo nhưng hợp lệ. Để tránh kiểu tấn công này, hàm h phải thỏa mãn tính không va chạm mạnh: Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra hai bức thông điệp x và x’ mà x ≠ x’ và h(x) = h(x’). Truyền và bảo mật thông tin 388 IV.2.2. Tính chất hàm băm Tính chất 3: Hàm băm một chiều: Việc giả mạo các chữ kí trên bản tóm lược thông báo z ngẫu nhiên thường xảy ra với sơ đồ chữ kí. Giả sử tên gải mạo tính chữ kí trên bản tóm lược thông báo z ngẫu nhiên như vậy. Sau đó anh ta tìm x sao cho z= h(x). Nếu làm được như vậy thì (x,y) là bức điện giả mạo hợp lệ. Để tránh được tấn công này, h cần thoả mãn tính chất một chiều: Hàm Hash h là một chiều nếu khi cho trước một bản tóm lược thông báo z, không thể thực hiện về mặt tính toán để tìm bức điện x sao cho h(x) = z. Truyền và bảo mật thông tin - Nguyễn Văn Khang - ĐHSP Huế 98 Truyền và bảo mật thông tin 389 IV.2.3. Một số hàm băm nổi tiếng IV.2.3.1. Hàm băm MD5 IV.2.3.2. Hàm băm SHA Truyền và bảo mật thông tin 390 IV.2.3.1. Hàm băm MD5 (Message Digest) Ronald Rivest là người đã phát minh ra các hàm băm MD2, MD4 (1990) va ̀ MD5 (1991). Hàm MD5 là bản cải tiến được dùng rộng rãi nhất, là nguyên tắc chung cho nhiều hàm băm khác Đầu ra MD là 128 bit, MD5 được xem là an toàn Tuy nhiên, với sự phát triển của thuật toán thám mã hiện nay, các hàm băm 128 bit được khuyến nghị là không nên dùng cho các hệ thống mới Truyền và bảo mật thông tin 391 IV.2.3.2. Hàm băm SHA (Secure Hash Algorithm) Được công bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST) Được thiết kế dựa trên những nguyên tắc của MD4/MD5 nhưng phức tạp hơn Kết quả đầu ra có độ dài 160 bit. Tốt hơn MD5 Truyền và bảo mật thông tin 392 IV.2.4. Ứng dụng các hàm băm Úng dụng chính của các hàm băm là sử dụng với CKĐT Xác thực tính nguyên vẹn của dữ liệu trên đường truyền: Truyền cả dữ liệu lẫn giá trị băm, Khi nhận được dữ liệu, sử dụng hàm băm tính kết quả và so sánh với giá trị băm nhận được Xác thực người dùng: lưu tên tài khoản và giá trị băm của mật khẩu. Để kiểm tra xem người đăng nhập hợp lệ: băm mật khẩu nhập vào và so sánh với giá trị mật khẩu lưu trong hệ thống.
File đính kèm:
- bai_giang_truyen_va_bao_mat_thong_tin_nguyen_van_khang.pdf