2023
1
ThS. Nguyn Chí Hiếu
2023
Hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 2
1
2
2023
2
Gii thiu hàm băm mt mã
Các tính cht ca hàm băm mt mã
Hàm băm MD5
Ni dung
2023 An toàn bảo mật Hệ thống thông tin 3
Hàm băm (hash function) là hàm toán hc biến đi thông đip
có chiu dài bt k thành mt thông đip rút gn/giá tr băm
(chui
𝑛
bit) có chiu dài c đnh.
= 𝐻(𝑀)
: giá tr băm,
𝑀
: thông đip (đu vào ca hàm băm),
𝐻
: hàm băm.
Đu ra ca hàm băm đưc gi là thông đip rút gn (message
digest) hay giá tr băm (hash value).
Gii thiu hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 4
3
4
2023
3
Hàm băm mt mã (cryptographic hash functions) là mt
loi hàm băm đưc ng dng trong an toàn và bo mt
thông tin.
Phi tha mt s tính cht đ k tn công không th
tìm đưc thông đip ban đu, hoc đưc dùng đ kim
tra d liu toàn vn.
Gii thiu hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 5
Gii thiu hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 6
Mã hóaHàm băm
Hàm 2 chiềuHàm 1 chiều
Biến đổi bản rõ thành bản mã, và có thể
biến đổi ngược lại bản rõ
Băm bản rõ thành thông điệp có chiều dài
cố định
Bảo mật dữ liệuĐảm bảo toàn vẹn dữ liệu
5
6
2023
4
Hàm băm mt mã là mt hàm nén
(hàm phi tuyến) mt thông tin.
Chiu dài ca giá tr băm phi đ
ln đ chng li mt s loi tn
công. Chiu dài thưng là: 128,
256, 512, bit
Gii thiu hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 7
Thông điệp hay khối dữ liệu
𝑴
chiều dài bất kỳ
Giá trị m
𝒉
chiều dài cố định
Hàm băm mt mã phi có nhng tính cht sau:
Nén (compression): thông đip đu vào có chiu dài bt k và
giá tr băm có chiu dài c đnh.
Tính hiu qu (eficiency) khi cài đt phn cng và phn mm.
Tính mt chiu (one-way).
Tính chng đng đ yếu (weak collision resistance).
Tính chng đng đ mnh (strong collision resistance).
Các tính cht ca hàm băm mt mã
2023 An toàn bảo mật Hệ thống thông tin 8
7
8
2023
5
Cho
0,1
vi
𝑛 > 0
là chiu dài ca giá tr băm,
rt khó tìm
𝒙
sao cho:
𝐻(𝑥) =
Chng tn công tin nh (pre-image resistance).
Tính mt chiu
2023 An toàn bảo mật Hệ thống thông tin 9
𝑥
𝐻: 0,1
0,1
Rt khó tìm
𝒙
và
𝒙
sao cho:
𝑥 = 𝑥
󰆒
và 𝐻(𝑥) = 𝐻(𝑥
󰆒
)
Chng đng đ (collision resistance)
Tính an toàn vi Đng đ mnh
2023 An toàn bảo mật Hệ thống thông tin 10
𝑥
𝑥′
𝐻: 0,1
0,1
9
10
2023
6
Cho
𝑥 0,1
, rt khó tìm
𝒙 𝒙
sao cho:
𝐻(𝑥) = 𝐻(𝑥
󰆒
)
Chng tn công tin nh th 2 (pre-image resistance).
Tính an toàn vi Đng đ yếu
2023 An toàn bảo mật Hệ thống thông tin 11
𝑥
𝑥′
𝐻: 0,1
0,1
An toàn vi hin tưng đng đ mnh thì an toàn
tính an toàn vi hin tưng đng đ yếu.
An toàn vi hin tưng đng đ yếu không đm bo
an toàn vi hin tưng đng đ mnh.
S liên quan gia các tính cht
2023 An toàn bảo mật Hệ thống thông tin 12
11
12
2023
7
Chng thc (authentication)
Kim tra tính toàn vn (integrity) ca d liu
Chng thoái thác/chi b (non-repudiation)
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 13
Chng thc (authentication) nhm thc hin chc năng
đăng nhp vào mt h thng nào đó bng mt khu đã
đăng ký và lưu trong cơ s d liu.
Chng tn công tin nh
Chng tn công tin nh th 2
Chng đng đ
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 14
13
14
2023
8
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 15
An Illustrated Guide to Cryptographic Hashes (unixwiz.net)
Mt khu (password) là mt dãy gm các ký s và các
ký t, đưc dùng đ đăng nhp vào mt h thng nào
đó.
Đây chính là yếu t thưng b k tn công khai thác.
Vn đ chng thc bng mt khu
2023 An toàn bảo mật Hệ thống thông tin 16
15
16
2023
9
Bo v mt khu bng hàm băm
Thưng kết hp thêm k thut Rc mui (salting)
Vn đ chng thc bng mt khu
2023 An toàn bảo mật Hệ thống thông tin 17
Kim tra tính toàn vn (integrity) ca d liu nhm
phát hin d liu đã b thay đi bt hp pháp.
Chng tn công tin nh
Chng tn công tin nh th 2
Chng đng đ
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 18
17
18
2023
10
Kim tra tính toàn vn (integrity) ca d liu
Server: cung cp giá tr băm tương ng tp tin.
Client: sau khi ti tp tin, tính li giá tr băm và so sánh vi
giá tr băm do server cung cp
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 19
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 20
https://en.wikipedia.org/wiki/MD5
19
20
2023
11
Chng thoái thác/chi b (non-repudiation) dùng đ
ngăn chn hành vi thoái thác vic mt t chc/cá nhân
đã giao dch vi các bên khác.
Chng tn công tin nh
Chng tn công tin nh th 2
Chng đng đ
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 21
ng dng ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 22
An Illustrated Guide to Cryptographic Hashes (unixwiz.net)
21
22
2023
12
An toàn vi hin tưng đng đ mnh thì an toàn
tính an toàn vi hin tưng đng đ yếu.
An toàn vi hin tưng đng đ yếu không đm bo
an toàn vi hin tưng đng đ mnh.
Các tính cht ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 23
1990:
MD4
(message digest) đưc thiết kế bi
Ronald
Rivest
1991:
MD5
đưc phát trin t
MD4
1995:
SHA-1
(secure hash algorithm 1)
2001:
SHA-2 (SHA-256, SHA-384, SHA-512
Cu trúc ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 24
23
24
2023
13
Merkle-Damgard đã đưa ra cu trúc hàm băm là mt
quá trình lp như sau:
Cu trúc ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 25
1280px-Merkle-damgard.svg.png (1280×343) (wikimedia.org)
Đu vào là thông đip
𝑀
kích thưc bt k, có th thêm
mt s bit đ kích thưc phù hp vi thut toán
Chia thông đip
𝑀
thành
𝑛
khi
𝑀
có kích thưc bng
nhau, vi
𝑖 = 1,2, , 𝑛
Khi to mt giá tr
𝐻
hay đưc gi véc tơ khi to
𝐼𝑉
Lp quá trình các khi
𝑀
bng mt hàm
𝑓(𝐻
, 𝑀
)
Đu ra là giá tr băm
𝐻
ca thông đip
𝑀
Cu trúc ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 26
25
26
2023
14
S nh hưng ca hàm
𝑓
đến giá tr băm
𝐻
Hàm
𝑓
chng li đng đ => Giá tr băm
𝐻
chng li
đng đ
Cu trúc ca hàm băm
2023 An toàn bảo mật Hệ thống thông tin 27
2023 An toàn bảo mật Hệ thống thông tin 28
An Illustrated Guide to Cryptographic Hashes (unixwiz.net)
27
28
2023
15
MD5 đưc Ronald Rivest gii thiu năm 1991, là
ci tiến ca MD4 trưc đó
Đu vào: thông đip vi đ dài bt k.
Đu ra: giá tr băm
128
bit (
16
byte).
Thut toán x lý theo tng khi
512
bit (
64
byte)
MD5
2023 An toàn bảo mật Hệ thống thông tin 29
2023 An toàn bảo mật Hệ thống thông tin 30
29
30
2023
16
Bưc 1: Tin x lý sao cho chiu dài thông đip là bi s ca
512
.
Thêm bit
1
vào cui thông đip ban đu.
Thêm
𝑘
bit
0
vào cui thông đip sao cho
𝐿 = 448 𝑚𝑜𝑑 512
.Trong
đó,
𝐿
là chiu dài thông đip sau khi thêm bit
1
và
𝑘
bit
0
.
Thêm
64
bit vào cui thông đip (
64
bit biu din chiu dài ca thông
đip ban đu).
MD5
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 31
Bưc 2: Chia thông đip thành
𝑁
khi
𝑀
vi
1
𝑖 𝑁
. Mi khi
𝑀
gm
512
bit.
MD5
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 32
31
32
2023
17
Bưc 3: Khi to
𝐻
(véc tơ khi to -
𝐼𝑉
)
𝐻
gm
128
bit đưc chia thành
4
t
32
bit
𝐴, 𝐵, 𝐶, 𝐷
Vi
𝐴, 𝐵, 𝐶, 𝐷
là các hng s sau:
𝐴 = 0𝑥67452301
𝐵 = 0𝑥𝐸𝐹𝐶𝐷𝐴𝐵89
𝐶 = 0𝑥98BADCFE
𝐷 = 0𝑥10325476
MD5
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 33
Bưc 4: Lp
i = 1
đến
𝑁
Khi
𝑀
kết hp vi giá tr khi to
𝐻
thông qua hàm
phi tuyến
𝐹
đ tính giá tr
𝐻
.
MD5
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 34
33
34
2023
18
Bưc 5: Xut
𝐻
là giá tr băm ca thông đip.
MD5
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 35
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 36
Đu vào:
𝑀
(
512
bit) và
𝐻
(
128
bit).
Đu ra:
𝐻
(
128
bit).
Hàm nén (hàm phi tuyến)
𝐹
thc hin qua
64
vòng lp.
Phép toán
là phép cng
modulo
2
.
Hàm ca MD5
35
36
2023
19
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 37
Bưc 1: Chia
𝑀
thành
16
t
32
bit
𝑊
,𝑊
, , 𝑊
Bưc 2: Chia
𝐻

thành
4
t
32
bit
𝐴
,𝐵
,𝐶
,𝐷
.
Bưc 3: Lp
𝑗 = 0 63
𝑡 = 𝐴
+ 𝑓 𝐵
,𝐶
,𝐷
+ 𝐾
+ 𝑊
𝐷

=
𝐶
𝐶

=
𝐵
𝐵

= 𝐵
+ 𝑅𝑂𝑇𝐿 𝑡,𝑠
, vi
𝑅𝑂𝑇𝐿 𝑡,𝑠
= 𝑡 𝑠
𝐴

=
𝐷
Bưc 4: Tính
𝐻
𝐻
= 𝐴
+ 𝐴
,𝐵
+ 𝐵
,𝐶
+ 𝐶
,𝐷
+ 𝐷
.
s
j
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 38
Tính
𝑓
𝐵
,
𝐶
,
𝐷
𝑔
𝑗
theo quy ưc sau:
0 𝑗 15
𝑓 𝐵,𝐶,𝐷 = 𝐵 𝐶 ¬𝐵 𝐷 , 𝑔 𝑗 = 𝑗
16 𝑗 31
𝑓 𝐵,𝐶,𝐷 = 𝐷 𝐵 ¬𝐷 𝐶 , 𝑔 𝑗 = 5 × 𝑗 + 1 𝑚𝑜𝑑 16
32 𝑗 47
𝑓 𝐵,𝐶,𝐷 = 𝐵⨁𝐶⨁𝐷
,
𝑔 𝑗 = 3 × 𝑗 + 5 𝑚𝑜𝑑 16
48 𝑗 63
𝑓 𝐵,𝐶,𝐷 = 𝐶⨁ 𝐵 ¬𝐷 , 𝑔 𝑗 = 7 × 𝑗 𝑚𝑜𝑑 16
37
38
2023
20
2014 Khoa Công Nghệ Thông Tin | Đại học Cửu Long 39
Hng s
𝐾
tính theo công thc
𝐾
= 𝑠𝑖𝑛 𝑗 + 1 2
.
Trong hàm
𝑅𝑂𝑇𝐿 𝑡, 𝑠
, s bit xoay vòng
𝑠
đưc quy
đnh theo bng sau
Hàm ca MD5 (tt)
𝑠
𝒋
Cám ơn đã theo dõi
Hi & Đáp
2023 An toàn bảo mật Hệ thống thông tin 40
39
40

Preview text:

2023 ThS. Nguyễn Chí Hiếu 2023 1 Hàm băm mật mã 2023
An toàn bảo mật Hệ thống thông tin 2 2 1 2023 Nội dung
 Giới thiệu hàm băm mật mã
 Các tính chất của hàm băm mật mã  Hàm băm MD5 2023
An toàn bảo mật Hệ thống thông tin 3 3
Giới thiệu hàm băm mật mã
 Hàm băm (hash function) là hàm toán học biến đổi thông điệp
có chiều dài bất kỳ thành một thông điệp rút gọn/giá trị băm
(chuỗi 𝑛 bit) có chiều dài cố định. ℎ = 𝐻 (𝑀)
 ℎ : giá trị băm, 𝑀 : thông điệp (đầu vào của hàm băm),  𝐻 : hàm băm.
 Đầu ra của hàm băm được gọi là thông điệp rút gọn (message
digest) hay giá trị băm (hash value). 2023
An toàn bảo mật Hệ thống thông tin 4 4 2 2023
Giới thiệu hàm băm mật mã
 Hàm băm mật mã (cryptographic hash functions) là một
loại hàm băm được ứng dụng trong an toàn và bảo mật thông tin.
 Phải thỏa một số tính chất để kẻ tấn công không thể
tìm được thông điệp ban đầu, hoặc được dùng để kiểm tra dữ liệu toàn vẹn. 2023
An toàn bảo mật Hệ thống thông tin 5 5
Giới thiệu hàm băm mật mã Hàm băm Mã hóa Hàm 1 chiều Hàm 2 chiều
Băm bản rõ thành thông điệp có chiều dài Biến đổi bản rõ thành bản mã, và có thể cố định
biến đổi ngược lại bản rõ
Đảm bảo toàn vẹn dữ liệu Bảo mật dữ liệu 2023
An toàn bảo mật Hệ thống thông tin 6 6 3 2023
Giới thiệu hàm băm mật mã Thông điệp hay khối dữ liệu 𝑴
 Hàm băm mật mã là một hàm nén chiều dài bất kỳ
(hàm phi tuyến) mất thông tin.
 Chiều dài của giá trị băm phải đủ
lớn để chống lại một số loại tấn
công. Chiều dài thường là: 128, 256, 512, … bit Giá trị băm 𝒉 chiều dài cố định 2023
An toàn bảo mật Hệ thống thông tin 7 7
Các tính chất của hàm băm mật mã
 Hàm băm mật mã phải có những tính chất sau:
 Nén (compression): thông điệp đầu vào có chiều dài bất kỳ và
giá trị băm có chiều dài cố định.
 Tính hiệu quả (eficiency) khi cài đặt phần cứng và phần mềm.
 Tính một chiều (one-way).
 Tính chống đụng độ yếu (weak collision resistance).
 Tính chống đụng độ mạnh (strong collision resistance). 2023
An toàn bảo mật Hệ thống thông tin 8 8 4 2023 Tính một chiều  Cho ℎ ∈ 0,1
với 𝑛 > 0 là chiều dài của giá trị băm, rất khó tìm 𝒙 sao cho:  𝐻 (𝑥) = ℎ 𝑥 ℎ 𝐻: 0,1 ∗ → 0,1
 Chống tấn công tiền ảnh (pre-image resistance). 2023
An toàn bảo mật Hệ thống thông tin 9 9
Tính an toàn với “Đụng độ mạnh”
 Rất khó tìm 𝒙′ và 𝒙′ sao cho:
𝑥 = 𝑥 và 𝐻(𝑥) = 𝐻(𝑥 ) 𝑥 𝑥′ 𝐻: 0,1 ∗ → 0,1
 Chống đụng độ (collision resistance) 2023
An toàn bảo mật Hệ thống thông tin 10 10 5 2023
Tính an toàn với “Đụng độ yếu”
 Cho 𝑥 ∈ 0,1 ∗, rất khó tìm 𝒙 ≠ 𝒙′ sao cho: 𝐻(𝑥) = 𝐻(𝑥 ) 𝑥 𝑥′ 𝐻: 0,1 ∗ → 0,1
 Chống tấn công tiền ảnh thứ 2 (pre-image resistance). 2023
An toàn bảo mật Hệ thống thông tin 11 11
Sự liên quan giữa các tính chất
 An toàn với hiện tượng đụng độ “mạnh” thì an toàn
tính an toàn với hiện tượng đụng độ “yếu”.
 An toàn với hiện tượng đụng độ “yếu” không đảm bảo
an toàn với hiện tượng đụng độ “mạnh”. 2023
An toàn bảo mật Hệ thống thông tin 12 12 6 2023 Ứng dụng của hàm băm
 Chứng thực (authentication)
 Kiểm tra tính toàn vẹn (integrity) của dữ liệu
 Chống thoái thác/chối bỏ (non-repudiation)  … 2023
An toàn bảo mật Hệ thống thông tin 13 13 Ứng dụng của hàm băm
 Chứng thực (authentication) nhằm thực hiện chức năng
đăng nhập vào một hệ thống nào đó bằng mật khẩu đã
đăng ký và lưu trong cơ sở dữ liệu.
 Chống tấn công tiền ảnh 
 Chống tấn công tiền ảnh thứ 2   Chống đụng độ  2023
An toàn bảo mật Hệ thống thông tin 14 14 7 2023 Ứng dụng của hàm băm
An Il ustrated Guide to Cryptographic Hashes (unixwiz.net) 2023
An toàn bảo mật Hệ thống thông tin 15 15
Vấn đề chứng thực bằng mật khẩu
 Mật khẩu (password) là một dãy gồm các ký số và các
ký tự, được dùng để đăng nhập vào một hệ thống nào đó.
 Đây chính là yếu tố thường bị kẻ tấn công khai thác. 2023
An toàn bảo mật Hệ thống thông tin 16 16 8 2023
Vấn đề chứng thực bằng mật khẩu
 Bảo vệ mật khẩu bằng hàm băm
 Thường kết hợp thêm kỹ thuật “Rắc muối” (salting) 2023
An toàn bảo mật Hệ thống thông tin 17 17 Ứng dụng của hàm băm
 Kiểm tra tính toàn vẹn (integrity) của dữ liệu nhằm
phát hiện dữ liệu đã bị thay đổi bất hợp pháp.
 Chống tấn công tiền ảnh 
 Chống tấn công tiền ảnh thứ 2   Chống đụng độ  2023
An toàn bảo mật Hệ thống thông tin 18 18 9 2023 Ứng dụng của hàm băm
 Kiểm tra tính toàn vẹn (integrity) của dữ liệu
 Server: cung cấp giá trị băm tương ứng tập tin.
 Client: sau khi tải tập tin, tính lại giá trị băm và so sánh với
giá trị băm do server cung cấp 2023
An toàn bảo mật Hệ thống thông tin 19 19 Ứng dụng của hàm băm
https://en.wikipedia.org/wiki/MD5 2023
An toàn bảo mật Hệ thống thông tin 20 20 10 2023 Ứng dụng của hàm băm
 Chống thoái thác/chối bỏ (non-repudiation) dùng để
ngăn chặn hành vi thoái thác việc một tổ chức/cá nhân
đã giao dịch với các bên khác.
 Chống tấn công tiền ảnh 
 Chống tấn công tiền ảnh thứ 2   Chống đụng độ  2023
An toàn bảo mật Hệ thống thông tin 21 21 Ứng dụng của hàm băm
An Il ustrated Guide to Cryptographic Hashes (unixwiz.net) 2023
An toàn bảo mật Hệ thống thông tin 22 22 11 2023
Các tính chất của hàm băm
 An toàn với hiện tượng đụng độ “mạnh” thì an toàn
tính an toàn với hiện tượng đụng độ “yếu”.
 An toàn với hiện tượng đụng độ “yếu” không đảm bảo
an toàn với hiện tượng đụng độ “mạnh”. 2023
An toàn bảo mật Hệ thống thông tin 23 23 Cấu trúc của hàm băm
 1990: MD4 (message digest) được thiết kế bởi Ronald Rivest
 1991: MD5 được phát triển từ MD4
 1995: SHA-1 (secure hash algorithm 1)
 2001: SHA-2 (SHA-256, SHA-384, SHA-512 2023
An toàn bảo mật Hệ thống thông tin 24 24 12 2023 Cấu trúc của hàm băm
 Merkle-Damgard đã đưa ra cấu trúc hàm băm là một quá trình lặp như sau:
1280px-Merkle-damgard.svg.png (1280×343) (wikimedia.org) 2023
An toàn bảo mật Hệ thống thông tin 25 25 Cấu trúc của hàm băm
 Đầu vào là thông điệp 𝑀 kích thước bất kỳ, có thể thêm
một số bit để kích thước phù hợp với thuật toán
 Chia thông điệp 𝑀 thành 𝑛 khối 𝑀 có kích thước bằng
nhau, với 𝑖 = 1,2, … , 𝑛
 Khởi tạo một giá trị 𝐻 hay được gọi véc tơ khởi tạo 𝐼𝑉
 Lặp quá trình các khối 𝑀 bằng một hàm 𝑓(𝐻 , 𝑀 )
 Đầu ra là giá trị băm 𝐻 của thông điệp 𝑀 2023
An toàn bảo mật Hệ thống thông tin 26 26 13 2023 Cấu trúc của hàm băm
 Sự ảnh hưởng của hàm 𝑓 đến giá trị băm 𝐻
 Hàm 𝑓 chống lại đụng độ => Giá trị băm 𝐻 chống lại đụng độ 2023
An toàn bảo mật Hệ thống thông tin 27 27
An Il ustrated Guide to Cryptographic Hashes (unixwiz.net) 2023
An toàn bảo mật Hệ thống thông tin 28 28 14 2023 MD5
 MD5 được Ronald Rivest giới thiệu năm 1991, là
cải tiến của MD4 trước đó
 Đầu vào: thông điệp với độ dài bất kỳ.
 Đầu ra: giá trị băm 128 bit (16 byte).
 Thuật toán xử lý theo từng khối 512 bit (64 byte) 2023
An toàn bảo mật Hệ thống thông tin 29 29 2023
An toàn bảo mật Hệ thống thông tin 30 30 15 2023 MD5
 Bước 1: Tiền xử lý sao cho chiều dài thông điệp là bội số của 512. 
Thêm bit 1 vào cuối thông điệp ban đầu. 
Thêm 𝑘 bit 0 vào cuối thông điệp sao cho 𝐿 = 448 𝑚𝑜𝑑 512 .Trong
đó, 𝐿 là chiều dài thông điệp sau khi thêm bit 1 và 𝑘 bit 0. 
Thêm 64 bit vào cuối thông điệp (64 bit biểu diễn chiều dài của thông điệp ban đầu). 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 31 31 MD5
 Bước 2: Chia thông điệp thành 𝑁 khối 𝑀 với 1 ≤
𝑖 ≤ 𝑁. Mỗi khối 𝑀 gồm 512 bit. 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 32 32 16 2023 MD5
 Bước 3: Khởi tạo 𝐻 (véc tơ khởi tạo - 𝐼𝑉)  𝐻
gồm 128 bit được chia thành 4 từ 32 bit 𝐴, 𝐵, 𝐶, 𝐷
 Với 𝐴, 𝐵, 𝐶 , 𝐷 là các hằng số sau:  𝐴 = 0𝑥67452301
 𝐵 = 0𝑥𝐸𝐹𝐶𝐷𝐴𝐵89  𝐶 = 0𝑥98BADCFE  𝐷 = 0𝑥10325476 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 33 33 MD5
 Bước 4: Lặp i = 1 đến 𝑁
 Khối 𝑀 kết hợp với giá trị khởi tạo 𝐻 thông qua hàm
phi tuyến 𝐹 để tính giá trị 𝐻 . 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 34 34 17 2023 MD5  Bước 5: Xuất 𝐻
là giá trị băm của thông điệp. 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 35 35 Hàm của MD5
 Đầu vào: 𝑀 (512 bit) và 𝐻 (128 bit).  Đầu ra: 𝐻 (128 bit).
 Hàm nén (hàm phi tuyến) 𝐹
thực hiện qua 64 vòng lặp.
 Phép toán ⊞ là phép cộng modulo 2 . 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 36 36 18 2023
 Bước 1: Chia 𝑀 thành 16 từ 32 bit 𝑊 , 𝑊 , … , 𝑊  Bước 2: Chia 𝐻
thành 4 từ 32 bit 𝐴 ,𝐵 ,𝐶 ,𝐷 .
 Bước 3: Lặp 𝑗 = 0 → 63
 𝑡 = 𝐴 + 𝑓 𝐵 , 𝐶 , 𝐷 + 𝐾 + 𝑊 sj  𝐷 =𝐶  𝐶 =𝐵  𝐵
= 𝐵 + 𝑅𝑂𝑇𝐿 𝑡, 𝑠 , với 𝑅𝑂𝑇𝐿 𝑡, 𝑠 = 𝑡 ⋘ 𝑠  𝐴 =𝐷  Bước 4: Tính 𝐻
 𝐻 = 𝐴 + 𝐴 , 𝐵 + 𝐵 , 𝐶 + 𝐶 , 𝐷 + 𝐷 . 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 37 37
 Tính 𝑓 𝐵, 𝐶, 𝐷 và 𝑔 𝑗 theo quy ước sau:  0 ≤ 𝑗 ≤ 15
 𝑓 𝐵, 𝐶, 𝐷 = 𝐵 ∧ 𝐶 ∨ ¬𝐵 ∧ 𝐷 , 𝑔 𝑗 = 𝑗  16 ≤ 𝑗 ≤ 31
 𝑓 𝐵, 𝐶, 𝐷 = 𝐷 ∧ 𝐵 ∨ ¬𝐷 ∧ 𝐶 ,
𝑔 𝑗 = 5 × 𝑗 + 1 𝑚𝑜𝑑 16  32 ≤ 𝑗 ≤ 47
 𝑓 𝐵, 𝐶, 𝐷 = 𝐵⨁𝐶⨁𝐷,
𝑔 𝑗 = 3 × 𝑗 + 5 𝑚𝑜𝑑 16  48 ≤ 𝑗 ≤ 63
 𝑓 𝐵, 𝐶, 𝐷 = 𝐶⨁ 𝐵 ∨ ¬𝐷 ,
𝑔 𝑗 = 7 × 𝑗 𝑚𝑜𝑑 16 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 38 38 19 2023 Hàm của MD5 (tt)
 Hằng số 𝐾 tính theo công thức 𝐾 = 𝑠𝑖𝑛 𝑗 + 1 2 .
 Trong hàm 𝑅𝑂𝑇𝐿 𝑡, 𝑠 , số bit xoay vòng 𝑠 được quy định theo bảng sau 𝑠 𝒋 2014
Khoa Công Nghệ Thông Tin | Đại học Cửu Long 39 39 Hỏi & Đáp  Cám ơn đã theo dõi 2023
An toàn bảo mật Hệ thống thông tin 40 40 20