You are on page 1of 19

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..............................................................................................4
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
2.1. Khái quát về hàm băm mật mã.........................................................................6
2.1.1. Lịch sử phát triển............................................................................................................6
2.1.2. Định nghĩa.......................................................................................................................7
III. Phân loại, so sánh hàm băm.................................................................................8
3.1. Phân loai hàm băm mật mã...............................................................................8
3.1.1. Lớp hàm băm không có khoá..........................................................................................8
3.1.2. Lớp hàm băm có khoá.....................................................................................................8
3.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...........................................................10
4.1. Các tính chất của hàm băm.............................................................................10
4.2. Các thuộc tính của hàm băm...........................................................................11
V. Xây dựng hàm băm SHA3.................................................................................12
5.1. Cấu trúc của SHA-3.......................................................................................12
5.2. Phương thức hoạt động...................................................................................14
5.2.1. Bài toán:........................................................................................................................14
5.2.2. Phương thức hoạt động:...............................................................................................14
5.2.3. Hàm đệm pad:..............................................................................................................15
VI. Ưu điểm , nhược điểm của hàm băm SHA3......................................................15
6.1. Ưu điểm:.........................................................................................................15
6.2. Nhược điểm:...................................................................................................16
VII. Ứng dụng...........................................................................................................16

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

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 Tính chất, thuộc tính, so sánh các hàm băm
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, ứ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 đó, 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

Nhóm 9 6
An toàn mạng thông tin
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 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.

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

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á

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)

Nhóm 9 8
An toàn mạng thông tin
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.
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.

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

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.

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

Nhóm 9 10
An toàn mạng thông tin
 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

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

Nhóm 9 11
An toàn mạng thông tin
Đ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
Đ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 đó:

Nhóm 9 12
An toàn mạng thông tin
- 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.
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.

Nhóm 9 13
An toàn mạng thông tin
Hình 5.1: Cấu trúc bọt biển của hàm băm SHA3
Trong phiên đưa dữ liệu vào (absorbing), khối tin đầu vào Pi đượ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à

Nhóm 9 14
An toàn mạng thông tin
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 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 15
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 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.

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

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 17
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 18
An toàn mạng thông tin

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

[1] https://en.wikipedia.org/wiki/SHA-3#See_also
[3] https://123docz.net//document/4573985-nghien-cuu-ham-bam-sha3-va-cai-dat-
chuong-trinh-giao-dien-thuc-hien.htm
[3] https://deeprnd.blogspot.com/keccak-hashing-algorithm-sha-3
[4] https://academy.binance.com/en/glossary/keccak

Nhóm 9 19

You might also like