daigai

Well-Known Member
Link tải luận văn miễn phí cho ae Kết Nối
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 á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), thay mặt 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 k•hoá (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ó hay 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
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Nghiên cứu đặc điểm sinh thái học và hàm lượng Palmatin trong cây Hoàng đằng (Fibraurea tinctoria) sinh trưởng tại vùng Bắc Trung Bộ Nông Lâm Thủy sản 0
N Nghiên cứu một số hàm băm và ứng dụng Luận văn Kinh tế 2
D Nghiên cứu sự thay đổi hàm lượng và thành phần tinh dầu đại bi theo thời gian Y dược 0
D Nghiên cứu xây dựng phương pháp xác định hàm lượng một số chất phân lập được từ vỏ thân cây gạo Y dược 0
D Nghiên cứu xây dựng phương pháp xác định hàm lượng một số chất phân lập được từ lá cây gạo Y dược 0
D Nghiên cứu ảnh hưởng của hàm lượng đường và NaCl trong qúa trình lên men vang vải thiều (Litchi chin Công nghệ thông tin 0
D NGHIÊN CỨU HÀM LƯỢNG VÀ KHẢ NĂNG KHÁNG OXI HÓA CỦA POLYPHENOL, L-ERGOTHIONEINE TRONG MỘT SỐ LOẠI NẤM Nông Lâm Thủy sản 0
I Nghiên cứu hiện trạng môi trường đất thông qua hàm lượng chì hòa tan trong nước khu vực xung quanh n Luận văn Sư phạm 0
M Nghiên cứu phân tích hàm lượng tồn dư thuốc kháng sinh họ B-lactam trong đối tượng sinh học bằng phư Luận văn Sư phạm 0
L Nghiên cứu tác dụng giảm hàm lượng lipid máu của mướp đắng (mormodica charntia L.) trên động vật thự Luận văn Sư phạm 0

Các chủ đề có liên quan khác

Top