Hàm băm mật mã
Hash & MAC
Tham khảo bài giảng ThS. Trần Minh Triết
Tham khảo bài giảng ThS. Trần Minh Triết
Nội dung
!"#$%!
!"#$%!
&'(
&'(
)&*
)&*
*+&*
*+&*
Tính toàn vẹn và tính bí mật
, +-
, +-
./01"234 156 71 71 8
./01"234 156 71 71 8
9$8:;1719$
9$8:;1719$
<
<
=>??@ 711#$?
=>??@ 711#$?
?+-71
?+-71
A15671<8:%;1719$
A15671<8:%;1719$
5B< 71!;1C
5B< 71!;1C
719$
719$
D;E4
D;E4
,"11"C2!@<82%1F
,"11"C2!@<82%1F
71!;1C1
71!;1C1
F
F
Ý tưởng chính của hàm băm mật mã
&G71.2$"0
&G71.2$"0
H3
H3
&95B1E1.34
&95B1E1.34
H
H
.
.
x
x
3I
3I
H
H
.
.
x
x
J3+K
J3+K
x
x
≠
≠
x
x
J
J
L!M?+9NO<+P1QRS
L!M?+9NO<+P1QRS
,719$
,719$
,719$
,719$
"#1T
"#1T
x
x
U
U
x
x
V
V
x
x
W
W
y
y
U
U
y
y
V
V
X<; YZ
X<; YZ
X<;[
X<;[
Hàm băm mật mã H
H
H
<8$;E1"R;\9< 5K Y
<8$;E1"R;\9< 5K Y
L!M?
L!M?
H
H
X
X
n
n
].
].
n
n
[3
[3
'^;11"[
'^;11"[
H
H
.
.
x
x
3+K
3+K
x
x
Y
Y
H
H
_
_
H
H
+K95B1NE1S
+K95B1NE1S
Tính “một chiều”
&
&
H
H
" <[!%15B
" <[!%15B
"5KX1QR
"5KX1QR
y
y
`a@Ub∈
`a@Ub∈
n
n
@" <
@" <
O"5BX
O"5BX
x
x
H
H
.
.
x
x
3I
3I
y
y
D;E4
D;E4
c"0]H"04DKX1"[
c"0]H"04DKX1"[
x
x
@ 8"
@ 8"
H
H
.
.
x
x
3I
3I
y
y
)&*]U !M?X1dUea]
)&*]U !M?X1dUea]
f?:$g1$G$C9V
f?:$g1$G$C9V
Wh
Wh
$G$:"1
$G$:"1
12
12
<8C9V
<8C9V
(i
(i
$G$:"1
$G$:"1
V
V
UaU
UaU
.jUa
.jUa
Wa
Wa
38!%15B)&*]U+K1"[
38!%15B)&*]U+K1"[
1QR
1QR
y
y
"5K
"5K
Tính an toàn đối với hiện tượng đụng độ
k <<8O5B
k <<8O5B
x
x
@
@
x
x
J
J
H
H
.
.
x
x
3I
3I
H
H
.
.
x
x
J3
J3
,O !E1>1c"0]H"0=l.V
,O !E1>1c"0]H"0=l.V
mV
mV
3@
3@
71$?l.V
71$?l.V
3
3
c";2$";n
c";2$";n
1"[
1"[
x
x
i
i
+1"[5o1g1
+1"[5o1g1
y
y
i
i
I.
I.
x
x
i
i
3
3
DKXF$
DKXF$
x
x
i
i
@
@
x
x
j
j
@nE1UmV
@nE1UmV
,%1F$
,%1F$
C
C
V
V
I
I
t
t
.
.
t
t
]U3mV l.∼
]U3mV l.∼
t
t
V
V
3
3
A!
A!
t
t
n$n=V
n$n=V
mV
mV
@5B1F$n$n=V
@5B1F$n$n=V
DKXF$@nn?2"E1UmV
DKXF$@nn?2"E1UmV
@;<@
@;<@
nO5BF$1"[E1"1U
nO5BF$1"[E1"1U
Birthday Paradox
D;E4
D;E4
fT
fT
p
p
.
.
n
n
3nO5BV156<p112
3nO5BV156<p112
"1<
"1<
n
n
156
156
fTnV156 Y"1<
fTnV156 Y"1<
n
n
156_<12 q
156_<12 q
p
p
.
.
n
n
3rIU
3rIU
DK
DK
≤
≤
We(@<
We(@<
3.np
3.np
3Zsss.sss
Zsss
sss
s
sqqq
sss
s
s
sss
s
ss3.
n
n
np
n
−
=
−
−
−
−=
Birthday Paradox
p
p
.
.
n
n
3
3
n
n
An toàn với hiện tượng đụng độ “yếu”
Weak Collision Resistance
Weak Collision Resistance
;2
;2
x
x
T"5K1QR@" <O5B
T"5K1QR@" <O5B
x
x
J
J
H
H
.
.
x
x
3I
3I
H
H
.
.
x
x
J3
J3
A15671$?O5B1"[E1+K1
A15671$?O5B1"[E1+K1
"[
"[
x
x
E8"5Kqt_2 <o+9O+
E8"5Kqt_2 <o+9O+
="F$1"[
="F$1"[
x
x
+
+
x
x
JE1+Kq
JE1+Kq
,71c"0]H"04l.V
,71c"0]H"04l.V
n
n
3
3
Nhận xét:
Nhận xét:
*+K95B1E1N2!S
*+K95B1E1N2!S
71??+K95B1E1
71??+K95B1E1
Tính chất của hàm băm
*+K71N_?S
*+K71N_?S
"010"00
"010"00
"5K
"5K
y
y
@ " < O 5B 1 "[ n
@ " < O 5B 1 "[ n
H
H
.
.
x
x
3I
3I
y
y
*+K95B1E14
*+K95B1E14
" <O5B1"[$9
" <O5B1"[$9
x
x
+
+
x
x
J
J
H
H
.
.
x
x
J3I
J3I
H
H
.
.
x
x
3
3
*+K71N_?gVS
*+K71N_?gVS
V
V
;
;
$"010"00
$"010"00
"5K
"5K
x
x
+
+
y
y
I
I
H
H
.
.
x
x
3@" <O5B1"[nJ
3@" <O5B1"[nJ
≠
≠
n
n
H
H
.
.
x
x
J3I
J3I
H
H
.
.
x
x
3
3
Phân loại hàm băm mật mã
Collision Resistant
Collision Resistant
Hash Functions
Hash Functions
(CRHF)
(CRHF)
Collision Resistant
Collision Resistant
Hash Functions
Hash Functions
(CRHF)
(CRHF)
One-Way
One-Way
Hash Functions
Hash Functions
(OWHF)
(OWHF)
One-Way
One-Way
Hash Functions
Hash Functions
(OWHF)
(OWHF)
Manipulation
Manipulation
Detection Codes
Detection Codes
(MDC)
(MDC)
Manipulation
Manipulation
Detection Codes
Detection Codes
(MDC)
(MDC)
Message
Message
Authentication Codes
Authentication Codes
(MAC)
(MAC)
Cryptographic
Cryptographic
Hash Functions
Hash Functions
Sử
Sử
dụng
dụng
khóa
khóa
Không
Không
sử dụng
sử dụng
khóa
khóa
Không
Không
sử dụng
sử dụng
khóa
khóa
Cấu trúc Merkle-Damgård
Khối
Khối
1
1
Khối
Khối
1
1
f
f
f
f
Length
Length
padding
padding
Length
Length
padding
padding
f
f
f
f
Finali-
Finali-
sation
sation
Finali-
Finali-
sation
sation
IV
IV
IV
IV
Hash
Hash
Hash
Hash
Khối
Khối
2
2
Khối
Khối
2
2
f
f
f
f
Khối
Khối
n
n
Khối
Khối
n
n
f
f
f
f
,1?4k$0" 0@/+'1u";
,1?4k$0" 0@/+'1u";
&!_:;E1"#2
&!_:;E1"#2
D;E4)&*]U@'(
D;E4)&*]U@'(
MD5
&'h.010'10h35Bf5
&'h.010'10h35Bf5
k+0_1[+Uiiaq
k+0_1[+Uiiaq
D@$R??!'(
D@$R??!'(
2"6q
2"6q
MD5
Khởi gán các biến:
Khởi gán các biến:
a4Ianevh(VWaU
a4Ianevh(VWaU
U4Ianwx'*cyi
U4Ianwx'*cyi
V4Ianiyc*'xw
V4Ianiyc*'xw
W4IanUaWV(hve
W4IanUaWV(hve