[r]
(1)Chủ đề 5:
Hàm băm mật mã Hash & MAC
Chủ đề 5:
Hàm băm mật mã
(2)Nội dung
Nội dung
Đ
Địịnhnh nghnghĩĩaa hhààmm bbăămm mmậậtt mãmã C
Cấấuu trútrúcc ccủủaa hhàmàm bbăămm mmậậtt mãmã C
Cáácc ttíínhnh chchấấtt ccủủaa hhààmm bbăămm mmậậtt mãmã Phân
Phân loloạạii hhààmm bbăămm mmậậtt mãmã M
Mộộtt ssốố kikiếếnn trtrúúcc hhààmm bbăămm phphổổ bibiếếnn H
Hààmm bbăămm MD5MD5 C
Cácác hàhàmm bbăămm SHASHA MAC
(3)Định nghĩa
Định nghĩa
H
Hààmm bbăămm mmậậtt mãmã llàà hhààmm totoáánn hhọọcc chuychuyểểnn đđổổii mmộộtt thơng
thơng đđiiệệpp ccóó đđộộ ddàiài bbấấtt kkỳỳ thàthànhnh mmộộtt dãydãy bit bit cócó đđộộ
d
dààii ccốố đđịịnhnh ( ( tutuỳỳ thuthuộộcc vvààoo thuthuậậtt totoáánn bbăămm)) Dãy
Dãy bit bit nnààyy đưđượợcc ggọọii llàà thôngthông đđiiệệpp rrúútt ggọọnn (message (message digest) hay
digest) hay gigiáá trtrịị bbăămm (hash value), (hash value), đđạạii didiệệnn chocho thông
thông đđiiệệpp ban ban đđầầuu H
Hààmm bbăămm llàà nnềềnn ttảảngng chocho nhinhiềềuu ứứngng ddụụngng mãmã hhóóaa, , ch
chữữ kýký đđiiệệnn ttửử C
Cáácc thuthuậậtt totoánán phphổổ bibiếếnn ttừừ ththậậpp niênniên 1990 1990 đđếếnn nay: nay: MD5
(4)Cấu trúc của hàm băm
Cấu trúc hàm băm
Cho
Cho trtrưướớcc mmộộtt thôngthông đđiiệệpp MM ccóó đđộộ ddààii bbấấtt kkỳỳ TTùùyy theo
theo thuthuậậtt tốtốnn đưđượợcc ssửử ddụụng, ng, ccóó ththểể bbổổ sung msung mộộtt ssốố
bit
bit vvààoo thôngthông đđiiệệpp nnààyy đđểể nhnhậậnn đưđượợcc thơngthơng đđiiệệpp ccóó đđộộ
d
dààii llàà bbộộii ssốố ccủủaa mmộộtt hhằằngng ssốố chocho trtrưướớcc Chia
Chia nhnhỏỏ thôngthông đđiiệệpp ththàànhnh ttừừngng khkhốốii ccóó kkííchch ththưướớcc b
bằằngng nhaunhau: : MM11, M, M22, , ……MMss
G
Gọọii HH llàà trtrạạngng ththááii ccóó kkííchch ththưướớcc nn bit, bit, ff llàà ““hhààmm nnéénn”” th
thựựcc hihiệệnn thaothao ttáácc trtrộộnn khkhốốii ddữữ liliệệuu vvớớii trtrạạngng ththááii hihiệệnn h
hàànhnh Kh
Khởởii ggáánn HH00 bbằằngng mmộộtt vector vector khkhởởii ttạạoo nnààoo đđóó
H
Hi i = f (H= f (Hi-i-11, M, Mii)) vvớớii i = 1,2,3, i = 1,2,3, ……, s, s H
(5)Ý tưởng của hàm băm mật mã
Ý tưởng hàm băm mật mã
H
H llàà hhààmm nnéénn mmấấtt thôngthông tin (tin (lossylossy compression compression function)
function) Hi
Hiệệnn ttưượợngng đđụụngng đđộộ (Collision): (Collision): HH((xx)=)=HH((xx’’) ) vvớớii xx≠≠xx’’ K
Kếếtt ququảả ccủủaa viviệệcc bbăămm ““nhnhìnìn cócó vvẻẻ ngngẫẫuu nhiênnhiên””
Thơng
Thơng đđiệiệpp
Thông
Thông đđiệiệpp r
rúútt gọgọnn x
x11 x
x22 x x33
y y11
y y22 Chu
(6)Hàm băm mật mã H
Hàm băm mật mã H
H
H ccóó ththểể áápp ddụụngng trêntrên ddữữ liliệệuu ccóó kkííchch ththưướớcc bbấấtt kkỳỳ
K
Kếếtt ququảả ccủủaa HH làlà mmộộtt chuchuỗỗii nn bit (bit (nn ccốố địđịnhnh)) D
Dễễ ddààngng ttíínhnh gigiáá trtrịị HH((xx) ) vvớớii xx bbấấtt kkỳỳ
H
H llàà hhààmm mmộộtt chichiềềuu
H
(7)Tính tồn vẹn tính bí mật
Tính tồn vẹn tính bí mật
T
Tíínhnh totồànn vvẹẹnn (Integrity): (Integrity): ngngưườờii ttấấnn côngcông khôngkhông ththểể
can
can thithiệệpp đểđể ssửửaa nnộộii dung thôngdung thông đđiiệệpp Mã
Mã hhóóaa chchỉỉ nhnhằằmm đđảảmm bbảảoo ttíínhnh bbíí mmậậtt, , khơngkhơng gigiúúpp
đ
đảảmm bbảảoo ttíínhnh totồànn vvẹẹnn thơngthơng tintin
Ỵ
Ỵ NgNgưườờii ttấấnn cơngcơng ccóó ththểể ssửửaa đđổổii nnộộii dung dung thơngthơng đđiiệệpp
đã
đã đưđượợcc mãmã hhóóaa mmàà khơngkhơng ccầầnn bibiếếtt nnộộii dung dung ththậậtt ssựự
c
củủaa thôngthông đđiiệệpp V
Víí ddụụ: : Trong
Trong đđấấuu gigiáá trtrựựcc tuytuyếếnn, , ccóó ththểể thaythay đđổổii gigiáá đđặặtt c
củủaa đđốốii ththủủ mmàà khôngkhông ccầầnn bibiếếtt nnộộii dung dung ththậậtt ssựự ccủủaa gi
(8)Tính “một chiều”
Tính “một chiều”
H
Hààmm bbăămm đưđượợcc xemxem llàà hhààmm mmộộtt chichiềềuu khikhi chocho trtrưướớcc gi
giáá trtrịị bbăăm, m, khôngkhông ththểể ttáiái ttạạoo llạạii thôngthông đđiiệệpp ban ban đđầầuu, , hay
hay còncòn ggọọii llàà ““titiềềnn ảảnhnh”” ((““prepre imageimage””)) N
Nếếuu ttììmm rara đưđượợcc mmộộtt phphươươngng phpháápp ttấấnn cơngcơng chocho phphéépp x
xáácc đđịịnhnh ““titiềềnn ảảnhnh”” ttươươngng ứứngng vvớớii mmộộtt gigiáá trtrịị bbăămm chocho trư
trướớcc ththìì thuthuậậtt totốánn bbăămm ssẽẽ khơngkhơng cịncịn an an totồànn nnữữaa C
Cááchch ttấấnn côngcông nhnhằằmm ttạạoo rara mmộộtt thôngthông đđiiệệpp khkháácc vvớớii thông
thông đđiiệệpp ban ban đđầầuu nhnhưưngng ccóó ccùùngng gigiáá trtrịị bbăămm ggọọii llàà t
tấấnn côngcông ““titiềềnn ảảnhnh ththứứ haihai”” ((““second pre-second pre-image image attack
(9)Tính “một chiều”
Tính “một chiều”
H
Hààmm HH rrấấtt khkhóó bbịị bibiếếnn đđổổii ngngưượợcc Cho
Cho trtrưướớcc chuchuỗỗii bit ngbit ngẫẫuu nhiênnhiên yy∈∈{0,1}{0,1}nn, , rrấấtt khkhóó
t
tììmm rara đưđượợcc chuchuỗỗii bit bit x x saosao chocho HH((xx)=)=yy
V
Víí ddụụ:: Brute
Brute force: force: VVớớii mmỗỗii gigiáá trtrịị xx, , kikiểểmm tratra HH((xx)=)=yy
SHA
SHA 1 chocho kkếếtt ququảả llàà chuchuỗỗii ggồồmm 160160 bitbit
Gi
Giảả ssửử phphầầnn ccứứngng chocho phphéépp ththựựcc hihiệệnn 223434 phphéépp ththửử trongtrong m
mộộtt giâygiây C
Cóó ththểể ththựựcc hihiệệnn 225959 phéphépp ththửử trongtrong mộmộtt nămnăm C
Cầầnn 22101101 (~ 10(~ 103030) năm) năm đểđể biếbiếnn đđổổii ngưngượcợc SHA-SHA-1 1 vvớớii gigiáá tr
(10)Tính an tồn đối với hiện tượng đụng độ
Tính an tồn đối với tượng đụng độ
R
Rấấtt khkhóó ccóó ththểể ttììmm đưđượợcc xx, , xx’’ saosao chocho HH((xx)=)=HH((xx’’)) Trong
Trong mmộộtt ttậậpp hhợợpp màmà cácácc phphầầnn ttửử mangmang mmộộtt trongtrong NN
gi
giáá trtrịị chocho trtrưướớcc vvớớii xxáácc susuấấtt bbằằngng nhaunhau, , chchúúngng tata ccầầnn kho
khoảảngng phphéépp ththửử ngngẫẫuu nhiênnhiên đđểể ttììmm rara mmộộtt ccặặpp ccóó c