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...

pdf98 trang | Chia sẻ: havih72 | Lượt xem: 320 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Truyền và bảo mật thông tin - Nguyễn Văn Khang, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
„ 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:

  • pdfbai_giang_truyen_va_bao_mat_thong_tin_nguyen_van_khang.pdf