Professional Documents
Culture Documents
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
Hình 5.1 Cấu trúc bọt biển của hàm băm SHA3 14
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 đề
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.
Đị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
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á
Nhóm 9 8
An toàn mạng thông tin
Một số loại SHA3
Nhóm 9 9
An toàn mạng thông tin
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.
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
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.
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:
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.
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.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.
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.
Nhóm 9 16
An toàn mạng thông tin
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
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
[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