Tải bản đầy đủ (.pdf) (23 trang)

Nghiên cứu hàm băm SHA256 và thực hiện cài đặt mô phỏng trên Java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 23 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN

BÁO CÁO BÀI TẬP LỚN MÔN HỌC
MẬT MÃ ỨNG DỤNG TRONG AN TOÀN THÔNG TIN
ĐỀ TÀI:
TÌM HIỂU, CÀI ĐẶT THUẬT TOÁN SHA-256

Giảng viên: Phạm Quốc Hoàng
Nguyễn Văn Nghị
Nhóm sinh viên: Nguyễn Tuấn Anh
Trần Văn Hoàng
Nguyễn Đại Hiệp

Hà Nội, Tháng 3-2015


Ý KIẾN CỦA GIẢNG VIÊN

.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


MỤC LỤC
DANH MỤC HÌNH ẢNH ............................................................................................... 2
MỞ ĐẦU ......................................................................................................................... 3
CHƯƠNG 1: HÀM BĂM MẬT MÃ .............................................................................. 4
1.1. HÀM BĂM ................................................................................................................... 4
1.2. HÀM BĂM MẬT MÃ .................................................................................................. 4
1.2.1.

Giới thiệu ............................................................................................................ 4

1.2.2.

Các tính chất của hàm băm mật mã .................................................................... 5

1.2.2.1. Tính kháng tiền ảnh (Preimage resistance) ..................................................... 5

1.2.2.2. Tính kháng tiền ảnh thứ hai (2nd-Preimage resistance) ................................... 5
1.2.2.3. Tính kháng xung đột (Collission resistance) .................................................. 5
1.2.3.

Phân loại hàm băm mật mã ................................................................................. 5

1.2.4.

Cấu trúc của thuật toán hàm băm ....................................................................... 6

1.2.5.

Ứng dụng của hàm băm mật mã ......................................................................... 7

1.2.6.

Các hàm băm mật mã hiện nay ........................................................................... 9

CHƯƠNG 2: THUẬT TOÁN SHA-256 ....................................................................... 11
2.1. GIỚI THIỆU SHA ...................................................................................................... 11
2.2. SHA-256 ..................................................................................................................... 12

CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN SHA-256...................................................... 17
KẾT LUẬN .................................................................................................................... 20
TÀI LIỆU THAM KHẢO ............................................................................................. 21

“Tìm hiểu, cài đặt thuật toán SHA-256”

1



DANH MỤC HÌNH ẢNH
Hình 1: Cấu trúc tổng quát của hàm băm ................................................................................... 6
Hình 2: Quá trình ký số .............................................................................................................. 8
Hình 3: Quá trình xác thực ......................................................................................................... 8
Hình 4: Hàm nén SHA-256 ...................................................................................................... 15
Hình 5: SHA-256 message schedule ........................................................................................ 16
Hình 6: Giao diện chính chương trình cài đặt thuật toán SHA-256 ......................................... 17
Hình 7: Chức năng băm file ..................................................................................................... 17
Hình 8: Chọn file cần băm ........................................................................................................ 18
Hình 9: Giá trị băm trả về khi thực hiện băm file .................................................................... 18
Hình 10: Chức năng băm thông điệp nhập vào từ bàn phím .................................................... 18
Hình 11: Giá trị băm trả về khi thực hiện băm thông điệp nhập vào từ bàn phím ................... 19

“Tìm hiểu, cài đặt thuật toán SHA-256”

2


MỞ ĐẦU
Ngày này, với sự phát triển 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 đi kèm cũng ngày càng được quan tâm và có ý nghĩa
quan trọng. Một trong những công việc quan trọng của giao dịch điện tử chính là quá trình
chứng thực nguồn gốc nội dung thông tin (chữ ký điện tử) và xác thực tính toàn vẹn dữ liệu.
Để làm được điều này, chúng ta cần phải áp dụng ứng dụng chuẩn mật mã nâng cao, trong đó
ứng dụng xây dựng các hàm băm mật mã là một trong những vấn đề cần được nghiên cứu và
giải quyết.
Ở bài báo cáo này, chúng ta sẽ đi tìm hiểu về các nội dung sau:
 CHƯƠNG 1: HÀM BĂM MẬT MÃ
Tìm hiểu về khái niệm, tính chất, phân loại, cấu trúc và ứng dụng của hàm băm mật mã.

 CHƯƠNG 2: THUẬT TOÁN SHA-256
Trình bày về một trong những thuật toán băm được sử dụng rộng rãi hiện nay là SHA256. Chi tiết về các bước của thuật toán này.
 CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN SHA-256
Sử dụng ngôn ngữ lập trình Java để cài đặt thuật toán SHA-256, thực hiện demo băm
đoạn thông điệp nhập vào từ bàn phím.

“Tìm hiểu, cài đặt thuật toán SHA-256”

3


CHƯƠNG 1: HÀM BĂM MẬT MÃ
1.1.

HÀM BĂM

Hàm băm (hash function) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi
khối dữ liệu (có thể là một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v...).
Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu. Hàm băm
thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu
trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ
liệu có kích thước lớn).
Vì tính thông dụng của bảng băm, ngày nay, đa số ngôn ngữ lập trình đều cung cấp thư
viện ứng dụng bảng băm, thường gọi là thư viện collection trong đó có các vấn đề như: tập
hợp (collection), danh sách (list), bảng (table), ánh xạ (mapping), từ điển (dictionary). Thông
thường, các lập trình viên chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện
bảng băm đã được xây dựng sẵn.
Một hàm băm tốt phải thỏa mãn các điều kiện sau:
 Tính toán nhanh.
 Các khoá được phân bố đều trong bảng.

 Ít xảy ra đụng độ.
 Xử lý được các loại khóa có kiểu dữ liệu khác nhau.
1.2.

HÀM BĂM MẬT MÃ

1.2.1. Giới thiệu
Hàm băm mật mã là hàm toán học chuyển đổi một thông điệp 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 h(x) được gọi là một hàm băm nếu nó thoã mãn hai tính chất sau:
 Nén gọ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
tuỳ ý vào chuỗi bit y = h(x) có chiều dài cố định n > 0 cho trước.

“Tìm hiểu, cài đặt thuật toán SHA-256”

4


 Dễ 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
tuỳ ý, h(x) được tính toán dễ dàng.
1.2.2. Các tính chất của hàm băm mật mã
1.2.2.1.

Tính kháng tiền ảnh (Preimage resistance)

Với mọi đầu ra y cho trước, không thể tìm được bất kỳ 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).
1.2.2.2.


Tính kháng tiền ảnh thứ hai (2nd-Preimage resistance)

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 giá trị
x’≠x sao cho h(x’)=h(x) (hay không thể tìm ra 2 thông điệp khác nhau mà có cùng giá trị
băm).
1.2.2.3.

Tính kháng xung đột (Collission resistance)

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ó
cùng giá trị băm h(x)=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ó).
1.2.3. Phân loại 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ã được phân thành hai
lớp:
 Lớp các hàm băm sử dụng khoá (keyed hash functions), chẳng hạn như MAC
(Message Authentication Codes): nhận hai giá trị đầu vào
o Thông điệp cần tính giá trị băm
o Khoá bí mật để băm văn bản theo đúng chuẩn quy định
 Lớp các hàm băm không sử dụng khoá (unkeyed hash functions): chỉ nhận duy nhất
một giá trị đầu vào là Thông điệp (message).
Trong lớp các hàm băm không sử dụng khoá thì MDCs (Modification Detection Codes –
mã nhận diện sự thay đổi) là lớp con của lớp này. Lớp hàm này lại tiếp tục phân thành các lớp
con nhỏ hơn:
“Tìm hiểu, cài đặt thuật toán SHA-256”

5


 Hàm băm một chiều (One-Way Hash Functions - OWHFs): các hàm trong lớp này đều

thoả tính chất là với mọi mã băm biết trước, không thể tính toán để tìm được chuỗi bit
đầu vào có mã băm bằng với mã băm đã cho.
 Hàm băm kháng xung đột (Collision Resistant Hash Functions-CRHFs): các hàm
trong lớp này thoã mãn tính chất không thể tính toán để tìm ra hai chuỗi bit có cùng
giá trị băm.
1.2.4. Cấu trúc của thuật toán hàm băm
Thành phần chính của một hàm băm là một hàm nén và các hàm biến đổi khác. Hàm nén
được thực thi nhiều lần để băm thông điệp ban đầu của hàm băm thành một chuỗi có chiều
dài cố định. Các hàm biến đổi khác (có thể có hoặc không) nhận vào chuỗi bít sau lần cuối
cùng thực thi hàm nén và cho kết quả chính là mã băm cuối cùng của hàm băm. Hình dưới
đây là cấu trúc tổng quát của hàm băm.

Hình 1: Cấu trúc tổng quát của hàm băm

Có rất nhiều thuật toán hàm băm cho đến nay sử dụng chung một cấu trúc cơ bản. Cụ thể,
một hàm băm thường gồm các bước như sau:

“Tìm hiểu, cài đặt thuật toán SHA-256”

6


Bước 1: Phân chia thông điệp đầu vào chiều dài hữu hạn thành các khối thông điệp con
liên tiếp có chiều dài cố định r (giả sử là m1, m2, m3,…, mk)
Bước 2: Do m có độ dài bất kỳ nên luôn có một bước thêm các bit phụ sao cho chiều dài
chuỗi mới m’ chia hết cho r. (trong các bit thêm thường thêm 64 bit để lưu lại chiều dài ban
đầu của chuỗi trước khi chèn).
Bước 3: Đưa khối thông điệp con m1, m2, m3,…, mk sẽ lần lượt đi qua một hàm nén f
của hàm băm h(m).
Bước 4: Kết quả của khối thứ mi-1 sau khi đi qua hàm nén f sẽ là nguồn dữ liệu đầu vào

cho bước thứ I tiếp theo.
1.2.5. Ứng dụng của hàm băm mật mã
Xác thực mật khẩu: Mật khẩu thông thường không được lưu dưới dạng bản rõ (plaint
text), mà ở dạng tóm tắt. Để xác thực một người dùng, mật khẩu do người đó nhập vào được
băm ra bằng hàm Hash và so sánh với kết quả băm được lưu trữ.
Xác thực thông điệp: Giá trị đầu vào (tin nhắn, dữ liệu,…) bị thay đổi tương ứng giá trị
băm cũng bị thay đổi. Do vậy nếu một kẻ tấn công phá hoại, chỉnh sửa dữ liệu thì server có
thể biết ngay lập tức.
Bảo vệ tính toàn vẹn của tập tin, thông điệp được gửi qua mạng: Hàm băm mật mã có tính
chất là hàm một chiều. Từ khối dữ liệu hay giá trị đầu vào chỉ có thể đưa ra một giá trị băm
duy nhất. Như chúng ta đã biết đối với tính chất của hàm một chiều. Kẻ tấn công nếu bắt
được giá trị băm của thông điệp được gửi trên đường truyền cũng không thể suy ngược lại
được nội dung của thông điệp đó.
Tạo chữ ký điện tử: Chữ ký số có được bằng cách đem mã hóa bản tóm tắt thông điệp
bằng khóa bí mật của người ký.

“Tìm hiểu, cài đặt thuật toán SHA-256”

7


Hình 2: Quá trình ký số

Chứng thực bằng chữ ký số

Hình 3: Quá trình xác thực

 Đây là một ứng dụng cực kỳ quan trọng của hàm băm, đặc biệt là trong thương mại
điện tử


“Tìm hiểu, cài đặt thuật toán SHA-256”

8


1.2.6. Các hàm băm mật mã hiện nay

Thuật toán

HAVAL

Kích thước
đầu ra

256/224/192/1
60/128

Kích thước
trạng thái
trong

256

Kích thước
khối

1024

Độ dài


64

Kích thước
world

32

Xung đột



khả
MD2

128

384

128

Không

8

năng
lớn

MD4

128


128

512

64

32



MD5

128

128

512

64

32



PANAMA

256

8736


256

No

32

Có lỗi

RIPEMD

128

128

512

64

32



128/256

128/256

512

64


32

Không

160/320

160/320

512

64

32

Không

RIPEMD128/256

RIPEMD160/320

“Tìm hiểu, cài đặt thuật toán SHA-256”

9


SHA-0

160


160

512

64

32

Không

SHA-1

160

160

512

64

32

Có lỗi

256/224

256

512


64

32

Không

512/384

512

1024

128

64

Không

192/160/128

192

512

64

64

Không


160/256

256/384

8

80/128

1

Không

320/512

512/768

8

160/256

1

Không

512

512

512


256

8

Không

SHA256/224

SHA512/384

Tiger(2)192/160/128

VEST-4/8
(hash mode)

VEST-16/32
(hash mode)

WHIRLPO
OL

“Tìm hiểu, cài đặt thuật toán SHA-256”

10


CHƯƠNG 2: THUẬT TOÁN SHA-256
2.1.

GIỚI THIỆU SHA


SHA (Secure Hash Algorithm) là thuật toán băm an toàn dùng để chuyển một đoạn dữ
liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao.
Thuật toán SHA được gọi là an toàn vì theo chuẩn FIPS 180-2 phát hành ngày 1 tháng 8
năm 2002:
 Cho một giá trị băm nhất định được tạo nên bởi một trong những thuật toán SHA, việc
tìm lại được đoạn dữ liệu gốc là không khả thi.
 Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi một trong
những thuật toán SHA là không khả thi.
 Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm
hoàn toàn khác với xác suất rất cao.
SHA gồm 5 thuật toán là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài
224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit) và SHA512 (trả lại kết quả dài 512 bit).
Các tính chất của các thuật toán băm an toàn:
Kích thước (đơn vị: bit)

Thuật toán
Thông điệp

Khối

Từ

Độ an toàn
Thông điệp

(đơn vị: bit)

rút gọn
SHA-1


< 264

512

32

160

80

SHA-224

< 264

512

32

224

112

SHA-256

< 264

512

32


256

128

SHA-384

< 2128

1024

64

384

192

SHA-512

< 2128

1024

64

512

256

“Tìm hiểu, cài đặt thuật toán SHA-256”


11


2.2.

SHA-256

SHA-256 cùng với SHA-224, SHA-384 và SHA-512 là bốn giải thuật thuộc họ SHA và
gọi chung là SHA-2. Về giải thuật, các biến thể của SHA-2 không khác nhau. Mặc dù chúng
sử dụng giá trị biến và hằng số cũng như độ dài từ,… khác nhau.
SHA-256 hoạt động giống như MD4, MD5 và SHA-1. Gồm 2 bước cơ bản:
 Bước 1: Tiền xử lý
o Mở rộng thông điệp
Thông điệp M được mở rộng trước khi thực hiện băm. Mục đich của việc mở rộng này là
để đảm bảo rằng thông điệp mở rộng có độ dài là bội số của 512.
Giả sử độ dài của thông điệp M là l bit. Thêm bit 1 vào cuối thông điệp, theo sau là k bit 0
(k là số không âm nhỏ nhất sao cho l + 1 + k ≡ 448(mod512)). Sau đó thêm khối 64 bit biểu
diễn nhị phân của l.
Ví dụ: thông điệp “abc”(8 bit ASCII) có độ dài 8 × 3 = 24. Thêm bít 1 vào cuối và 448 –
(24+1) =423 bit 0. Cuối cùng là thêm độ dài của thông điệp. Lúc này độ dài thông điệp mở
rộng sẽ là 512 bit.
01100001 01100010 01100011 1
o Phân tích thông điệp
Sau khi thông điệp đã được mở rộng, thông điệp cần được phân tích thành N khối 512 bit:
M(1), M(2),…, M(N). Mỗi khối này lại được chia thành 16 từ 32 bit.M0(i) chứa 32 bit đầu của
khối i, M1(i) chứa 32 bit tiếp theo,…
o Khởi tạo biến (căn bậc 2 của 8 số nguyên tố đầu tiên)
= 6a09e667
= bb67ae85

= 3c6ef372
= a54ff53a

“Tìm hiểu, cài đặt thuật toán SHA-256”

12


= 510e527f
= 9b05688c
= 1f83d9ab
= 5be0cd19

 Bước 2: Tính toán giá trị băm
Việc tính toán giá trị băm được thực hiện như sau:
For i = 1 to N (N là số khối của thông điệp mở rộng)
{
o Khởi tạo a,b,c,d,e,f,g,h với giá trị băm trung gian thứ (i-1) (= giá trị băm ban
đầu khi i =1)
a⃪
b⃪

h⃪
o Áp dụng chức năng nén của SHA-256 để cập nhật các biến a,b,c,d,e,f,g,h
For j = 0 to 63
{
Tính Ch(e,f,g), Maj(a,b,c),
T1 ⃪ h +
T2 ⃪


,

và Wj

+ Kj + Wj
+ Maj(a,b,c)

h⃪g
g⃪f
f⃪e

“Tìm hiểu, cài đặt thuật toán SHA-256”

13


e ⃪ d + T1
d⃪c
c⃪b
b⃪a
a ⃪ T1 + T2
}
o Tính toán giá trị băm trung gian thứ i, H(i)

⃪a+
⃪b+


⃪h+
}

H(N) = (

,

,…,

) là mã băm của thông điệp M

Định nghĩa sáu hàm sử dụng trong SHA-256: Mỗi hàm hoạt động theo 1 từ 32 bit có đầu
ra là 1 từ 32 bit. Các hàm được định nghĩa như sau:
Ch(x,y,z) = (x ⋀ y)  (x ⋀ z)
Maj(x,y,z) = (x ⋀ y)  (x ⋀ z)  (y ⋀ z)
= R2(x)  R13 (x)  R22(x)
= R6(x)  R11 (x)  R25(x)
0(x)= R7(x)  R18(x)  S3(x)
1(x)= R17(x)  R19(x)  S10(x)
Trong đó:
 : phép XOR
⋀ : phép AND
 : phép phủ định
+ : phép cộng modul 232
Rn : quay phải n bit
Sn : dịch phải n bit
“Tìm hiểu, cài đặt thuật toán SHA-256”

14


Các khối thông điệp W0, W1,…, W63 được tính toán như sau:
Wj =


for j = 0,1,…,15 và

For j = 16 to 63
{
Wj ⃪ 1(Wj-2) + Wj + 0(Wj-15) + Wj-16
}
Khởi tạo hằng số K0,…, K63 (căn bậc 3 của 64 số nguyên tố đầu tiên)
428a2f98 71374491 b5c0fbcf

e9b5dba5 3956c25b 59f111f1 923f82a4

ab1c5ed5

d807aa98 12835b01 243185be 550c7dc3 72be5d74 80deb1fe 9bdc06a7 c19bf174
e49b69c1 efbe4786

0fc19dc6 240ca1cc

2de92c6f 4a7484aa 5cb0a9dc 76f988da

983e5152 a831c66d b00327c8 bf597fc7

c6e00bf3 d5a79147 06ca6351 14292967

27b70a85 2e1b2138 4d2c6dfc
a2bfe8a1

53380d13 650a7354 766a0abb 81c2c92e 92722c85


a81a664b c24b8b70 c76c51a3 d192e819 d6990624 f40e3585 106aa070

19a4c116 1e376c08 2748774c 34b0bcb5 391c0cb3 4ed8aa4a 5b9cca4f
748f82ee

78a5636f 84c87814 8cc70208 90befffa

682e6ff3

a4506ceb bef9a3f7 c67178f2

Hình 4: Hàm nén SHA-256

“Tìm hiểu, cài đặt thuật toán SHA-256”

15


Hình 5: SHA-256 message schedule

“Tìm hiểu, cài đặt thuật toán SHA-256”

16


CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN SHA-256
Việc cài đặt thuật toán SHA-256 được triển khai bằng ngôn ngữ lập trình java. Giao diện
chương trình được tạo bằng Netbean.
Giao diện chính của chương trình:


Hình 6: Giao diện chính chương trình cài đặt thuật toán SHA-256

Chương trình được xây dựng với 2 chức năng, là băm file (chọn Encrypt File) và băm một
thông điệp bất kỳ nhập vào từ bàn phím (chọn Encrypt Message)
Một số giao diện khác của chương trình:
Chức năng băm 1 file:

Hình 7: Chức năng băm file

“Tìm hiểu, cài đặt thuật toán SHA-256”

17


Chọn file: chọn đường dẫn file cần băm.

Hình 8: Chọn file cần băm

Khi băm xong file, giá trị băm được hiển thị trong textbox SHA-256

Hình 9: Giá trị băm trả về khi thực hiện băm file

Chức năng băm 1 thông điệp nhập vào từ bàn phím:

Hình 10: Chức năng băm thông điệp nhập vào từ bàn phím

“Tìm hiểu, cài đặt thuật toán SHA-256”

18



Thông điệp nhập vào ô textbox Message và giá trị băm trả về ô textbox SHA-256

Hình 11: Giá trị băm trả về khi thực hiện băm thông điệp nhập vào từ bàn phím

“Tìm hiểu, cài đặt thuật toán SHA-256”

19


KẾT LUẬN
Với sự phát triển mạnh mẽ của Internet và các hoạt động giao dịch điện tử, vấn đề an toàn
thông tin cũng ngày càng được quan tâm hơn. Việc nghiên cứu, xây dựng các hàm băm mật
mã để phục vụ cho vấn đề này được coi là quan trọng và ý nghĩa. Vì vậy đề tài: “Tìm hiểu,
cài đặt thuật toán SHA-256” được đưa ra với mục đích trình bày tổng quan về hàm băm mật
mã, giúp các bạn hiểu rõ hơn về tính chất, cấu trúc cũng như ứng dụng của hàm băm mật mã.
Đồng thời cũng đi vào nghiên cứu thuật toán băm SHA-256 và cài đặt thuật toán SHA-256
bằng ngôn ngữ java, giúp chúng ta có được cái nhìn chi tiết hơn về cách thức thực hiện của
thuật toán.

“Tìm hiểu, cài đặt thuật toán SHA-256”

20


TÀI LIỆU THAM KHẢO
[1]

Hàm băm
/>

[2]

Hàm băm mật mã
/>A3_h%E1%BB%8Dc

[3]

SHA
vi.wikipedia.org/wiki/SHA

[4]

Descriptions of SHA-256, SHA-384, SHA-512
/>
[5]

Recommendation for Applications Using Approved Hash Algorithms
/>
“Tìm hiểu, cài đặt thuật toán SHA-256”

21



×