07/01/2018
1
Chương 3a:
HÀM BĂM MT MÃ HC
(CRYTOGRAPHIC HASH FUNCTIONS)
GV: Nguyn ThHnh
Ni dung chính
1. Tng quan vhàm băm (Hash Function)
2. ng dng ca hàm băm
3. Kiến trúc hàm băm
4. Hai hàm băm MD5 và SHA1
( Cryptography and Network Security: Principles
and Practices (3rd Ed.) – Chapter 11)
(Cryptography & Network Security. McGraw-Hill,
Inc., 2007., Chapter 12)
07/01/2018
2
Mc tiêu
˗Gii thiu ý tưởng tng quát ca hàm băm
mt mã hc
Định nghĩa hàm băm
Tính cht hàm băm cn có
Bài toán ngày sinh
˗Nêu các ng dng ca hàm băm
Chng thc thông đip
Ch ký s
Các ng dng khác
˗Tho lun cơ chế Merkle-Damgard như là kiến
trúc cơ bn ca hàm băm
3
Mc tiêu
˗Tho lun vhàm băm MD5 và SHA1
Sơlược vMD5 và SHA1
Sơ đồ tng th
Cu trúc hàm F ti mi bước
Cu trúc ca mt vòng trong F
So sánh MD5 và SHA1
4
07/01/2018
3
1. Hàm băm (Hash Function)
˗Hàm băm là các thut toán không s dng
khóa để mã hóa, nó có nhim v băm thông
đip được đưa vào theo mt thut toán hmt
chiu nào đó, ri đưa ra mt bn băm – văn
bn đại din – kích thước c định. Do đó
người nhn không biết được ni dung hay độ
dài ban đầu ca thông đip đã được băm
bng hàm băm.
˗Giá tr ca hàm băm là duy nht, và không
th suy ngượcli được ni dung thông đip
t giá tr băm này.
5
1. Hàm băm (Hash Function)
˗Input: M có kích
thước bt ky
˗Output – giá trh có
kích thước c định,
ngn.
˗H(x) hàm mt
chiu (“Khó để tính
nghch đảo”)
6
07/01/2018
4
1. Hàm băm (Hash Function)
7
1. Hàm băm (Hash Function)
Không gian giá trị Băm nh hơn rt nhiu so
với Không gian thông đip v mt ch thước
chắc chắn s tồn tại đụng độ (trùng), nghĩa
có hai tin xvà x” mà giá trị Băm của
chúng là giống nhau, tức là h(x) = h(x”)
8
Thông đip
Thông đip
rút gn
x1
x2
x3
y1
y2
Không gian thông đipKhông gian giá trbăm
07/01/2018
5
Tính cht hàm băm
1. Tính chng tin nh (Preimage resistant one-way
property):
Cho trước giá tr băm h vic tìm x sao cho H(x)=h là rt khó
2. Tính chng tin nh th hai (Second preimage
resistant – weak collision resistant – Tính chng
trùng yếu):
Cho thông đip đu vào x, vic tìm mt thông đip x’ vi
(x’
x) sao cho h(x’)=h(x) là rt khó
3. Tính chng trùng mnh (Strong Collision resistant):
Không th tính toán để tìm được hai thông đip đầu vào
x1
x2sao cho chúng có cùng giá tr băm
(Nghch lý ngày sinh – Birthday paradox)
9
Nghch ngày sinh (birthday paradox)
Bài toán 1: Gi s trong phòng có M sinh viên.
Vy xác sut để có hai SV có cùng ngày sinh là
bao nhiêu phn trăm? (1 năm 365 ngày khác
nhau)
Theo nguyên lý chung b câu Dirichlet: cn có
365+1 = 366 người để tìm thy 2 người có cùng
ngày sinh vi xác sut 100%. Vì vy vi 30 người
thì xác xut này rt nh.
Rt nh, đúng không
Tính theo xác sut thng kê toán hc thì
M(M-1) >=2 x 365 x loge2 (*)
ch cn 23 ngưi là đủ để xác sut hơn 50%. Vì vy
bài toán này gi là nghch lý ngày sinh
10