You are on page 1of 20

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG I


AN TOÀN MẠNG THÔNG TIN

BÁO CÁO TIỂU LUẬN


Đề tài: Hàm băm SHA3

Giảng viên HD: TS.Phạm Anh Thư

Sinh viên thực hiện: Nhóm 9

Lê Xuân Việt – B19DCVT430

Phạm Văn Việt – B19DCVT438


Lê Quang Triệu – B19DCVT410

Nguyễn Quốc Trung – B19DCVT418

Trần Mạnh Dũng – B19DCVT060

Hà Nội – 2022
An toàn mạng thông tin

Mục lục
Bảng phân chia công việc 3
Danh mục hình ảnh 4
Lời mở đầu 5
I. Đặt vấn đề 6
1.1. Yêu cầu 6
1.2. Mục tiêu 6
II. Tổng quan về hàm băm mật mã 6
II.1. Khái quát về hàm băm mật mã 6
II.1.1. Lịch sử phát triển 6
II.1.2. Định nghĩa 7

III. Phân loại, so sánh hàm băm 8


III.1. Phân loai hàm băm mật mã 8
III.1.1. Lớp hàm băm không có khoá 8
III.1.2. Lớp hàm băm có khoá 9
III.2. So sánh các chức năng của SHA 9
IV. Các tính chất và thuộc tính của hàm băm 11
IV.1. Các tính chất của hàm băm 11
IV.2. Các thuộc tính của hàm băm 12
V. Xây dựng hàm băm SHA3 13
V.1. Cấu trúc của SHA-3 13
V.2. Phương thức hoạt động 15
V.2.1. Bài toán: 15
V.2.2. Phương thức hoạt động: 15
V.2.3. Hàm đệm pad: 16

VI. Ưu điểm , nhược điểm của hàm băm SHA3 16


VI.1. Ưu điểm: 16
VI.2. Nhược điểm: 17
VII. Ứng dụng 17

Nhóm 9 2
An toàn mạng thông tin
VIII. Tổng kết 20
IV. Tài liệu tham khảo 21

Nhóm 9 3
An toàn mạng thông tin

Bảng phân chia công việc


ST Họ Tên SV Nội dung tìm hiều
T
1 Lê Xuân Việt (nhóm Tính chất, thuộc tính, so sánh các hàm băm.
trưởng)
2 Phạm Văn Việt Lịch sử phát triển và định nghĩa hàm băm.
3 Lê Quang Triệu Cấu trúc của hàm băm, Tổng kết.
4 Nguyễn Quốc Trung Phân loại và Ưu nhược điểm của hàm băm.
5 Trần Mạnh Dũng Phương thức hoạt động, thuật toán, ứng dụng của
hàm băm.

Danh mục hình ảnh


Hình 2.1 Sơ đồ hàm băm 7

Hình 3.1 Phân loại hàm băm 8

Hình3.1.2 Một số loại hàm băm SHA3 9

Hình 3.2 So sánh các hàm băm SHA-3 9

Hình 3.3 Bảng so sánh các loại hàm băm 10

Hình 4.1 Ánh xạ giữa thông điệp và giá trị băm 11

Hình 5.1 Cấu trúc bọt biển của hàm băm SHA3 14

Hình 7.1 Sơ đồ lưu trữ 16

Hình 7.2 Sơ đồ download dữ liệu 17

Nhóm 9 4
An toàn mạng thông tin

Lời mở đầu
Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử
trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng
được quan tâm và có ý nghĩa hết sức quan trọng. Vì thế việc nghiên cứu chuẩn mật mã
nâng cao và ứng dụng nó trong các lĩnh vực bảo mật thông tin là rất cần thiết.
Ứng dụng của chuẩn mật mã nâng cao đang được sử dụng ngày càng phổ biến trong nhiều
ứng dụng khác nhau. Chuẩn mật mã nâng cao không chỉ đơn thuần là mã hoá và giải mã
thông tin mà cong bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giải quyết
như ứng dụng xây dựng hàm băm phục vụ việc chứng thực nguồn gốc , nội dung thông
tin (kỹ thuật chũ kí điện tử), xác thực tính nguyên vẹn dữ liệu…
Một trong những hàm băm đang được sử dụng rộng rãi nhất hiện nay là hàm băm SHA
dược phát triển bởi cục an ninh quốc gia Mỹ. Với nhiều ưu điểm và cũng có nhiều phiên
bản khác nhau được phát hành. Với bài tiểu luận với đề tài “Tìm hiểu hàm băm SHA3”
chúng ta sẽ cùng tìm hiểu về hàm băm SHA3 để rõ hơn cách thức hoạt động và các dụng
của nó nhé

Nhóm 9 5
An toàn mạng thông tin

I. Đặt vấn đề
1.1. Yêu cầu
-Làm rõ định nghĩa về hàm băm
- Nêu các tính chất, thuộc tính của hàm băm
-Phân tích cấu trúc và phương thức hoạt động của hàm băm
- Nêu các ưu nhược điểm hàm băm
- Nêu ứng dụng của hàm băm

1.2. Mục tiêu


Để hiểu rõ được hàm băm thì ta cần đạt những mục tiêu sau đây:
- Hiểu thế nào là hàm băm
- Hiểu các tính chất, thuộc tính của hàm băm
- Nêu được cấu trúc và phương thức hoạt động của hàm băm SHA3
- Ưu nhược điểm của hàm băm SHA3
- Ứng dụng của hàm băm quan trọng như thế nào

II. Tổng quan về hàm băm mật mã


II.1. Khái quát về hàm băm mật mã
II.1.1. Lịch sử phát triển
SHA là viết tắt của Secure Hash Algorithm (Thuật toán băm an toàn) và đề cập đến
một tập hợp các hàm băm mật mã được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc
gia Hoa Kỳ (NIST).
SHA-3 có thể được sử dụng cho các mục đích khác nhưng nó được biết đến như một
hàm băm cung cấp mức độ bảo mật gia tăng khi so sánh với các thuật toán băm cũ hơn
như SHA-1 và SHA-2. Mặc dù SHA-3 hỗ trợ cùng kích thước đầu ra (độ dài băm) như
SHA-2, nhưng cơ chế hoạt động của nó khá khác biệt.
Lịch sử, xuất xứ: Các cuộc tấn công lý thuyết vào SHA-1 được thực hiện vào năm
2004 và được công bố rộng rãi vào năm 2005. Vài năm sau đó, cụ thể là năm 2011, SHA-
2 được NIST tuyên bố là hàm băm tiêu chuẩn mới được sử dụng. Tuy vậy, quá trình di
chuyển từ SHA-1 sang SHA-2 diễn ra khá chậm và chỉ đến đầu năm 2017, một tỷ lệ lớn
các nhà phát triển và nhà khoa học máy tính cuối cùng đã chuyển sang SHA-2. Ngay sau

Nhóm 9 6
An toàn mạng thông tin
đó, Google đã thông báo về cuộc tấn công vào SHA-1 thành công vào tháng 2 năm 2017
và kể từ đó, SHA-1 không còn được coi là an toàn nữa và việc sử dụng nó không còn
được khuyến khích. Hàm băm SHA-3 bắt đầu được phát triển vào khoảng 2007 sau khi
NIST công bố quy trình kiểm tra và cạnh tranh công khai, nhằm tìm kiếm một hàm băm
mật mã mới có thể khắc phục những sai sót tiềm ẩn của SHA-1 và SHA-2 trước đó. Năm
2012, NIST tuyên bố Keccack là thuật toán chiến thắng của cuộc thi và nó được tiêu
chuẩn hóa là thành viên mới nhất của gia đình SHA (đó chính là SHA-3).
II.1.2. Định nghĩa
● Sơ đồ cơ bản của 1 hàm băm mật mã:
Luồng dữ liệu gốc đi qua hàm băm sẽ cho ra giá trị băm có độ dài cố định.

Hình 2.1: Sơ đồ hàm băm

● Định nghĩa:

Hàm băm( Hash function) là một hàm toán học chuyển đổi một thông điệp đầu vào
có độ dài bất kỳ thành một dãy bit có độ dài cố định (tùy thuộc vào thuật toán

Nhóm 9 7
An toàn mạng thông tin
băm). Dãy bit này được gọi là thông điệp rút gọn( message digest) hay giá trị băm
(hash value), đại diện cho thông điệp ban đầu.

● Hàm băm(hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu
bất kì qua hàm này cho ra một chuỗi có độ dài cố định ở đầu ra.

III. Phân loại, so sánh hàm băm


III.1. Phân loai hàm băm mật mã

Dựa trên tham biến đầu vào của các hàm băm , các hàm băm mật mã chia thành hai
lớp: gồm lớp hàm băm có khoá và lớp hàm băm không có khoá

Hình 3.1: Phân loại hàm băm


III.1.1. Lớp hàm băm không có khoá
● Lớp hàm băm không có khoá: Một hàm băm không có khoá là một hàm
gồm:
▪ Thông điệp cần tính giá trị băm
▪ Khoá bí mật để băm văn bản theo đúng quy định
● Một số họ hàm băm hiện có thuộc lớp này như: Họ hàm băm MD (MD2,
MD4, MD5 ), họ hàm băm SHA (SHA1, SHA-224, SHA-256, SHA-384…)

🡺Hàm băm SHA3 sử dụng lớp hàm băm không khoá

Nhóm 9 8
An toàn mạng thông tin

III.1.2. Lớp hàm băm có khoá


● Lớp hàm băm có khoá: Các hàm băm có khoá được sử dụng để xác thực
thông báo và thường được gọi là các thuật toán tạo mã xác thực thông báo
(MAC).

Một số loại SHA3

Hình 3.1.2: Một số loại hàm băm SHA3

III.2. So sánh các chức năng của SHA


Hai bảng dưới đây sẽ cho chúng ta thấy sự khác biệt của hàm các hàm băm:

Hình 3.2: So sánh các hàm băm SHA-3


Các phiên bản SHA-3 là sự thay thế bổ sung cho SHA-2, nhằm có các đặc tính bảo mật
giống hệt nhau.

Nhóm 9 9
An toàn mạng thông tin
SHAKE sẽ tạo ra bao nhiêu bit từ miếng bọt biển của nó theo yêu cầu, được gọi là XOFs
(Chức năng đầu ra có thể mở rộng). Ví dụ: SHAKE128 (M, 256) có thể được sử dụng như
một hàm băm với dòng bit 256 ký tự với độ bền bảo mật 128 bit. Độ dài lớn tùy ý có thể
được sử dụng làm trình tạo số giả ngẫu nhiên. Ngoài ra, SHAKE256 (M, 128) có thể được
sử dụng như một hàm băm với độ dài 128 bit và khả năng kháng 128 bit.
Tất cả các trường hợp đều thêm một số bit vào thông báo, ngoài cùng bên phải đại diện
cho hậu tố phân tách miền. Mục đích của việc này là để đảm bảo rằng không thể xây dựng
các thông báo tạo ra cùng một đầu ra băm cho các ứng dụng khác nhau của hàm băm
Keccak.

Hình 3.3: Bảng so sánh các loại hàm băm

Việc triển khai tối ưu hóa bằng cách sử dụng AVX-512VL (tức là từ OpenSSL , chạy trên
CPU Skylake-X ) của SHA3-256 đạt được khoảng 6,4 chu kỳ mỗi byte cho các thư
lớn, và khoảng 7,8 chu kỳ mỗi byte khi sử dụng AVX2 trên CPU Skylake .  Hiệu suất trên
các CPU x86, Power và ARM khác tùy thuộc vào lệnh được sử dụng và kiểu CPU chính
xác thay đổi từ khoảng 8 đến 15 chu kỳ mỗi byte, với một số CPU x86 cũ hơn lên đến 25–
40 chu kỳ mỗi byte.

Nhóm 9 10
An toàn mạng thông tin
IV. Các tính chất và thuộc tính của hàm băm
IV.1. Các tính chất của hàm băm

Hàm băm được đặc trưng bởi hai tính chất sau đây:
● Tính chất nén(compression): Hàm h(x) tương ứng chuỗi bit đầu vào x có chiều
dài hữu hạn tùy ý vào chuỗi bit y = h(x) có chiều dài cố định n>0 cho trước (tuỳ
vào thuật toán băm được sử dụng)

● Tính chất dễ dàng tính toán (easy of computation): với mọi chuỗi bit đầu vào x
có chiều dài hữu hạn tùy ý, h(x) được tính toán dễ dàng.

Ngoài 2 tính chất cơ bản trên còn thoả mãn 3 tính chất an toan dưới đây
● Tính kháng tiền ảnh (tính một chiều): Với mọi đầu ra y cho cho trước, không thể
tìm được dữ liệu đầu vào x sao cho h(x)=y (Hay không thể tìm được một thông
điệp từ một giá trị băm cho trước)
● Tính kháng tiền ảnh thứ 2: Với mọi dữ liệu đầu vào x cho trước và y=h(x),
không thể tính toán để tìm ra được x’ khác x sao cho h(x’)=h(x) (Hay không thể
tìm ra hai thông điệp khác nhau mà có cùng giá trị băm)
● Tính kháng va chạm: Không thể tính toán để tìm được hai dữ liệu đầu vào x và x’
phân biệt sao cho chúng cùng giá trị băm h(x0=h(x’) (Hay không thể sửa được một
thông điệp mà không làm thay đổi giá trị băm của nó)

Kích thước của thông điệp đầu vào là bất kì, còn kích thước của giá trị băm của thông
điệp là nhỏ nên việc trùng giá trị băm là không thể loại bỏ. Tính chống trùng của hàm
băm là yêu cầu rằng việc tìm ra hai thông điệp đầu vào như vậy thì phải rất khó khan về
mặt thời gian và tính toán

Nhóm 9 11
An toàn mạng thông tin

Hình 4.1: Ánh xạ giữa thông điệp và giá trị băm

IV.2. Các thuộc tính của hàm băm


Để một hàm băm trở thành một hàm băm mật mã, nó phải có một số thuộc tính.
● Thuộc tính số 1 - Tốc độ
Các hàm băm mật mã phải hiệu quả về mặt tính toán. Điều đó có nghĩa là hàm băm có thể
tạo ra một hàm băm trong một phần của giây.
● Thuộc tính số 2 - Hiệu ứng tuyết lở
Hiệu ứng tuyết lở có nghĩa là ngay cả một thay đổi nhỏ trong thông báo cũng sẽ dẫn đến
sự thay đổi lớn trong giá trị băm.
● Thuộc tính 3 - Hàm băm mật mã nên xác định
Điều đó có nghĩa là bất kể bạn sử dụng hàm băm bao nhiêu lần cho cùng một đầu vào,
bạn sẽ luôn nhận được cùng một đầu ra. Điều này là hiển nhiên vì nếu bạn có các băm
ngẫu nhiên cho cùng một thông báo, toàn bộ quá trình sẽ trở nên vô nghĩa.
● Thuộc tính 4 - Kháng trước hình ảnh (Chức năng một chiều)
Điều này có nghĩa là rất khó để truy cập đầu vào thông qua đầu ra. Nói cách đơn giản, bạn
không thể đảo ngược hàm băm mật mã để truy cập dữ liệu. Tuy nhiên, điều này không có
nghĩa là không thể xem tin nhắn.
Thuộc tính kháng trước hình ảnh của băm mật mã đóng một vai trò quan trọng trong cuộc
tranh luận về băm và mã hóa - bạn có thể giải mã một thông điệp được mã hóa, nhưng
bạn không thể làm điều tương tự đối với băm mật mã.
● Thuộc tính số 5 - Khả năng chống va chạm

Nhóm 9 12
An toàn mạng thông tin
Điều đó có nghĩa là hai thông báo khác nhau sẽ không thể tạo ra cùng một giá trị băm. Vì
giá trị băm có độ dài cố định, điều này có nghĩa là có giới hạn kết hợp đầu ra. Mặt khác,
các đầu vào là một số vô hạn. Vì vậy, về lý thuyết, có khả năng hai thông điệp khác nhau
có thể tạo ra cùng một hàm băm.
Tuy nhiên, hàm băm trong mật mã làm cho tỷ lệ xảy ra va chạm băm trên thực tế không
đáng kể.
Tất cả các thuộc tính này đảm bảo tính bảo mật và khả năng sử dụng của một băm mật
mã. Vì vậy, đáp ứng các hàm băm mật mã khác nhau.

V. Xây dựng hàm băm SHA3


V.1. Cấu trúc của SHA-3
SHA-3 sử dụng cấu trúc bọt biển trong đó dữ liệu được đưa vào cấu trúc bọt biển và kết
quả được đẩy ra ngoài.
● Cấu trúc bọt biển là bất kỳ loại thuật toán bất kỳ nào có trạng thái bên trong hữu
hạn lấy dòng bít đầu vào có độ dài bất kì và tạo ra dòng bít đầu ra có độ dài mong
muốn
● Hàm bọt biển được xây dựng từ ba thành phần:
o Một bộ nhớ trạng thái S chứa b bit
o Một chức năng f: { 0 , 1 }b → { 0 , 1 }b
o Một hàm đệm P

Trong đó:

- S được chia thành phần: một phần có kích thước r(tốc độ bít) và phần còn lại có
kích thước c (dung lượng). Các phần này được kí hiệu R và C tương ứng.
- f tạo ra một hoán vị giả ngẫu nhiên của 2b trạng thái từ S.
- P nối đủ các bít vào chuỗi đầu vào sao cho độ dài của đầu vào được đệm là bội số
của toàn bộ tốc độ bít r. Điều này có nghĩa là đầu vào được phân đoạn thành các
khối r bít.

Nhóm 9 13
An toàn mạng thông tin
Hàm bọt biển "hấp thụ"tất cả các khối của một chuỗi đầu vào được đệm như sau:

● S được khởi tạo bằng 0


● Mỗi khối r -bit B của P (chuỗi)
- R được thay thế bằng R XOR B (sử dụng bitwise XOR)
- S được thay thế bởi f (S)
Đầu ra chức năng bọt biển hiện đã sẵn sàng để sản xuất như sau:

● Xuất phần R của S


● S được thay thế bằng f (S) trừ khi đầu ra đầy
Nếu vẫn còn ít hơn r bit được xuất ra, thì R sẽ bị cắt bớt (chỉ một phần của R sẽ được
xuất ra).

Lưu ý rằng các bit đầu vào không bao giờ được XOR vào phần C của bộ nhớ trạng
thái, cũng như không có bất kỳ bit nào của C được xuất trực tiếp. Mức độ mà C bị
thay đổi bởi đầu vào phụ thuộc hoàn toàn vào hàm biến đổi f. Trong các ứng dụng
băm, khả năng chống va chạm hoặc các cuộc tấn công preimage phụ thuộc vào C và
kích thước của nó (dung lượng c) thường gấp đôi mức kháng mong muốn.

Hình 5.1: Cấu trúc bọt biển của hàm băm SHA3

Nhóm 9 14
An toàn mạng thông tin
Trong phiên đưa dữ liệu vào (absorbing), khối tin đầu vào P i được thực thi phép cộng mô-
đun (XOR) thành một tập hợp con của trạng thái, sau đó được chuyển đổi thành một tập
hợp tổng bằng việc sử dụng hàm hoán vị f.

Trong phiên đưa dữ liệu ra (squeezing), các đầu ra Z i được đọc từ cùng một tập con của
trạng thái, xen kẽ với hàm hoán vị f.

V.2. Phương thức hoạt động


V.2.1. Bài toán:
Input: Cho chuỗi bit đầu vào N, một hàm đệm pad, một hàm hoán vị f hoạt động trên
các khối bit có chiều rộng b. Trạng thái S gồm “tỷ lệ” r và “dung lượng” c = b – r.
Output: Z = sponge[f,pad,r](N,d) trong đó chuỗi bit Z đầu ra có chiều dài d.
V.2.2. Phương thức hoạt động:
● Sử dụng hàm đệm pad để đệm thêm bit cho chuỗi bit đầu vào N, từ đó tạo ra một
chuỗi bit đệm có độ dài chia hết cho r.
● Tách P thành các khối r bit nên ta thu được n = (len(P))/r khối.
● Khởi tạo trạng thái ban đầu S gồm một chuỗi b bit 0.
● Quá trình absorbing: (đối với mỗi khối Pi)
▪ Thực hiện phép cộng modul Pi với r ta được giá trị Pi mới.
▪ Mở rộng Pi mới ở cuối bằng một chuỗi c bit từ đó thu được chuỗi độ dài b bit.
▪ Áp dụng hàm hoán vị f cho chuỗi b bit tạo ra trạng thái S mới.
● Quá trình squeezing:
▪ Khởi tạo Z là chuỗi rỗng.
▪ Khi mà độ dài chuỗi Z nhỏ hơn d:
- Nối r bit đầu tiên của trạng thái S vào Z.
- Nếu độ dài chuỗi Z vẫn nhỏ hơn d bit, thực hiện hàm hoán vị bổ sung f cho
S, tạo ra trạng thái S mới.
▪ Cắt ngắn Z cho tới khi còn độ dài là d bit.

V.2.3. Hàm đệm pad:


● Mục đích: để đảm bảo rằng chuỗi bit thông tin đầu vào có độ dài chia hết đủ
cho r bit.
● Cách thức hoạt động: Đối với SHA-3 thì dạng hàm đệm sẽ là: 10…001. Bắt
đầu bằng một bit 1, tiếp đó là một hoặc nhiều biết 0 (tối đa r-1 bit 0) và cuối
cùng kết thúc bằng một bit 1. Trường hợp đệm r-1 bit 0 xảy ra khi khối tin cuối

Nhóm 9 15
An toàn mạng thông tin
có độ dài r-1 bit, khi đó khối tin cuối sẽ có độ dài sau khi thêm là (r-1) + (r-1) +
1 + 1 = 2r – thỏa mãn điều kiện chia hết cho r. Trong hàm đệm, bit khởi tạo là
bit 1 bắt buộc nên các khối tin chỉ khác nhau ở số bit 0 được bổ sung nên sẽ
không tạo ra cùng một hàm băm.
Ví dụ:
Input: 01 -> Output: 0110*1
Input: 11 -> Output: 1110*1
Input: 1111 -> Output: 111110*1

VI. Ưu điểm , nhược điểm của hàm băm SHA3


VI.1. Ưu điểm:
● Là thuật toán mã hóa linh hoạt vì nó cho phép độ dài thay đổi cho đầu vào và đầu
ra, làm cho nó lý tưởng cho một hàm băm.
● SHA-3 cung cấp chức năng một chiều an toàn. Điều này có nghĩa là bạn không thể
tạo lại dữ liệu đầu vào từ đầu ra băm, cũng như không thể thay đổi dữ liệu đầu vào
mà không thay đổi hàm băm. Bạn cũng sẽ không tìm thấy bất kỳ dữ liệu nào khác
có cùng một hàm băm hoặc bất kỳ hai bộ dữ liệu nào có cùng một hàm băm.
● Các phiên bản của nó sử dụng một hoán vị duy nhất cho tất cả các điểm mạnh về
bảo mật, giảm chi phí triển khai.
● Họ thuật toán SHA3 cho phép cân bằng hiệu suất-bảo mật bằng cách chọn cặp tỷ lệ
dung lượng phù hợp.
● Không dễ bị tấn công mở rộng độ dài, mức độ bảo mật cao.
● Nhanh hơn nhiều so với những người tiền nhiệm của nó khi mật mã được xử lý bởi
các thành phần phần cứng.

VI.2. Nhược điểm:


● SHA3 chậm hơn nhiều so với SHA-2 về vấn đề phần mềm (ví dụ như trên máy chủ
và PC tiêu dùng) và nhanh về phần cứng (ví dụ như FPGA, ASIC) và do đó kẻ tấn
công có thể thử nhiều mật khẩu tương đối nhanh.
● Thiếu hỗ trợ phần cứng và phần mềm nên chưa được triển khai rộng rãi.
● Tấn công va chạm có thể xảy ra

Nhóm 9 16
An toàn mạng thông tin
VII. Ứng dụng
● Lưu trữ và xác minh mật khẩu: Việc xác minh mật khẩu thường dựa vào các
hàm băm mật mã. Mật khẩu người dùng nếu được dưới dạng bản rõ có thể dẫn đến
những lỗ hổng bảo mật nghiêm trọng khi tệp mật khẩu bị xâm phạm. Do đó, để
làm giảm nguy cơ này, chúng ta thường chỉ lưu trữ giá trị băm của mỗi mật khẩu.
Để xác thực người dùng, mật khẩu do người dùng nhập vào được băm và so sánh
với giá trị băm được lưu trữ tương ứng. Mật khẩu ban đầu không thể được tính
toán lại từ giá trị băm được lưu trữ trong cơ sở dữ liệu.

Hình 7.1: Sơ đồ lưu trữ


Hình 7.1: Mô phỏng quá trình đăng ký đăng nhập của người dùng vào hệ thống.
Khi đăng ký thì mật khẩu của người dùng sẽ được mã hóa bằng cách đi qua hàm
băm SHA-3 rồi mới được lưu trữ vào trong cơ sở dữ liệu. Khi đăng nhập thì mật
khẩu người dùng nhập vào cũng sẽ được cho qua hàm băm SHA-3 rồi sau đó so
sánh với các giá trị băm có trong cơ sở dữ liệu. Nếu trùng giá trị băm thì đăng nhập
hệ thống thành công và ngược lại.

● Đấu giá trực tuyến:


● Dowload dữ liệu từ trên Internet: Khi download file từ mạng internet, nếu chất
lượng mạng không tốt thì có thể xảy ra lỗi trong quá trình download làm cho file

Nhóm 9 17
An toàn mạng thông tin
tại máy khách (client) khác với file trên máy chủ (server). Hàm băm có thể giúp
chúng ta phát hiện ra những trường hợp bị lỗi như vậy.

Hình 7.2: Sơ đồ download dữ liệu


Hình 7.2: Khi tải file từ trên server đã được mã hóa qua hàm băm thì khi chúng ta
tải về máy vẽ phải đưa file vừa tải qua lại hàm băm để xác thực với giá trị băm đã
lưu trên server.

Note: Trong hình là quá trình download file của hàm băm SHA2 nhưng đối với
SHA3 cũng tương tự.
● Đảm bảo tính toàn vẹn và xác thực: Đảm bảo tính toàn vẹn là đảm bảo thông tin,
dữ liệu nhận được được chính xác giống như khi nó được gửi (tức là không bị sửa
đổi, chèn, xóa hay phát lại). Đặc biệt, khi hai bên thực hiện truyền thông trên một
kênh truyền thông không an toàn, đòi hỏi một phương pháp để hai bên truyền
thông có thể xác thực lẫn nhau..
Xác thực và toàn vẹn thông báo có thể được thực hiện bằng nhiều cách trong đó có
cả việc sử dụng mật mã khóa đối xứng nhưng đơn giản nhất là sử dụng hàm MAC
và hàm băm.
● Nâng cao hiệu quả chữ ký số: Hầu như tất cả các lược đồ chữ ký số đều yêu cầu
tính toán bản tóm lược của thông điệp bằng các hàm băm mật mã. Điều này cho
phép việc tính toán và tạo chữ ký được thực hiện trên một khối dữ liệu có kích
thước tương đối nhỏ và cố định thay vì trên toàn bộ văn bản dài. Tính chất toàn
vẹn thông điệp của hàm băm mật mã được sử dụng để tạo các lược đồ chữ ký số an
toàn và hiệu quả.

Nhóm 9 18
An toàn mạng thông tin

VIII. Tổng kết

Khi bạn cần bảo mật và quyền riêng tư, hàm băm mật mã sẽ phát huy tác dụng. Nhược
điểm của băm mật mã là nó thường chậm hơn các loại băm khác. Nếu bạn cần băm nhanh
và không cần bảo mật cấp cao - thì tốt hơn là băm không phải mã hóa. Ví dụ - nếu bạn
đang tạo chỉ mục của một số dữ liệu không nhạy cảm.

Sự khác biệt chính giữa băm không mật mã và mã hóa là băm cực kỳ khó bị phá vỡ. Lưu
ý rằng nó không phải là không thể. Tuy nhiên, băm mật mã làm cho việc bẻ khóa một
hàm gần như không thể.

Hàm băm là một trong những khối xây dựng chính cơ bản của công nghệ. Đó là lý do tại
sao bạn cần hiểu về băm và các khái niệm liên quan của nó - những thứ như tốc độ băm
và chức năng và sau đó thảo luận về những gì mới về thuật toán Keccak.

Hash là quá trình lấy bất kỳ dữ liệu đầu vào nào và chạy nó thông qua một thuật toán, sau
đó tạo ra dữ liệu đầu ra có kích thước cụ thể và nhất quán.

Dữ liệu đầu ra là một hàm băm. Thuật toán được sử dụng trong quá trình này được gọi là
hàm băm. Và cuối cùng, tốc độ mà bạn có thể đẩy dữ liệu thông qua hàm băm để tạo ra
một hàm băm mới là tốc độ băm của bạn.

Nhóm 9 19
An toàn mạng thông tin

IV. Tài liệu tham khảo

[ V. GENIN, "Keccak hashing algorithm (sha-3)," 12 March 2019. [Online].


1 Available: https://deeprnd.blogspot.com/keccak-hashing-algorithm-sha-3.
]

[ "SHA-3 Cryptographic Hash Algorithms," Movable Type Scripts, [Online].


2 Available: https://www.movable-type.co.uk/scripts/sha3.html.
]

[ H. Q. Tran, "Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực
3 hiện," 123docz.net, [Online]. Available: https://123docz.net//document/4573985-
] nghien-cuu-ham-bam-sha3-va-cai-dat-chuong-trinh-giao-dien-thuc-hien.htm.

[ "SHA3," wikipedia, [Online]. Available: https://en.wikipedia.org/wiki/SHA-


4 3#See_also.
]

[ P. M. Tuấn, "HASH FUNCTION LÀ GÌ," 5 April 2021. [Online]. Available:


5 https://baoninhsunrise.com/hash-function-la-gi/.
]

Nhóm 9 20

You might also like