1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận MẬT MÃ VÀ AN TOÀN THÔNG TIN Hàm băm MD4

10 1,9K 7

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 175,21 KB

Nội dung

Tiểu luận MẬT MÃ VÀ AN TOÀN THÔNG TIN Hàm băm MD4 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 (tuỳ 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.

Trang 1

ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI

-BÁO CÁO MÔN HỌC

MẬT MÃ VÀ AN TOÀN THÔNG TIN

Giảng viên: PGS.TS Trịnh Nhật Tiến Học viên: Phan Thị Thơm

HÀ NỘI – 2013

Trang 2

Mục Lục

Trang 3

I Giới thiệu về hàm băm

1 Giới thiệu

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 (tuỳ 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 sẽ cho ra một chuỗi có độ dài cố định ở đầu ra

2 Tính chất cơ bản của hàm băm

Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự

như việc bạn không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của

Trang 4

Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai

thông điệp khác nhau có cùng một kết quả hash là cực kỳ nhỏ

3 Ứng dụng của hàm băm

Xác thực mật khẩu

Mật khẩu thường không được lưu dưới dạng văn bản rõ (clear 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 (Message authentication – Thông điệp tóm tắt -message digests)

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 1 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 1 chiều Từ khối dữ liệu hay giá trị đầu vào chỉ có thể đưa ra 1 giá trị băm duy nhất Như chúng ta đã biết đối với tính chất của hàm 1 chiều Một người nào đó dù bắt được giá trị băm họ cũng không thể suy ngược lại giá trị, đoạn tin nhắn băm khởi điểm

Ví dụ: việc xác định xem một file hay một thông điệp có bị sửa đổi hay không có thể thực hiện bằng cách so sánh tóm tắt được tính trước và sau khi gửi (hoặc một sự kiện bất kỳ nào đó) Còn có thể dùng tóm tắt thông điệp làm một phương tiện đáng tin cậy cho việc nhận dạng file

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 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

Tạo chữ ký điện tử (Digital signatures)

Chữ ký số có được bằng cách đem mã hoá bản tóm tắt của thông điệp bằng khoá

bí mật của người ký

Trang 5

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

Nếu kết quả băm giống nhau, Thông điệp được xác thực Đây là một ứng dụng cực

kỳ quan trọng của hàm Hash, đặc biệt là trong thương mại điện tử

Trang 6

II Hàm băm MD4

1 Giới thiệu

Hàm hash MD4 được Rivest đề xuất năm 1990 Hàm băm MD4 được mô tả như sau:

Đầu vào: Bản tin M có chiều dài nhỏ hơn 264

Mở rộng bản tin: Thêm các bít vào bản tin để bản tin có chiều dài là bội của 512 Quá trình thêm diễn ra như sau Thêm bít 1 vào cuối bản tin, sau đó thêm vào một số bít 0

để nhận bản tin có chiều dài là đồng dư với 448 modulo 512, và cuối cùng thêm vào 64 bít, 64bít này biểu diễn chiều dài của bản tin ban đầu Bản tin được thêm vào bao gồm các khối M1, M2, … , Mn, chiều dài mỗi khối là 32 bít

Đầu ra: 128 bít là liên kết của 4 từ 32 bít:A|B|C|D.

Hàm băm MD4 chủ yếu thực hiện nhờ các phép toán logic và một phép cộng theo modulo 232 nên thuật toán chạy rất nhanh, thích ứng với việc sử lý bản tin có độ lớn Tuy nhiên thuật toán MD4 tồn tại một số hạn chế Cụ thể là có thể tìm thấy va chạm nếu sử dụng 2 vòng Vì điểm yếu này mà MD5 ra đời thay thế cho MD4

2 Nội dung thuật toán

“Thông điệp đệm” (Messege Padding) là xâu bit có độ dài chia hết cho 512

“Thông điệp đệm” được lưu trong mảng M = M[0] M[1] … M[N-1] Trong đó M[i]

là xâu bit có độ dài 32 bit, gọi là word

N ≡ 0 mod 16 (32 bit x 16 đoạn = 512 bit)

M được xây dựng từ Bản tin gốc a bằng thuật toán:

1/ d = 447 – ( |a| mod 512) ≥ 0 (d = 512 nếu 447< |a| mod 512).

2/ Kí hiệu l là biểu diễn nhị phân của |a| mod 264, tl: | l | = 64.

3/ M = a || 1 || 0 d || l, d là số bit 0 ghép thêm vào M cho đủ độ dài 512.

Trang 7

* Độ dài của xâu a || 1 || 0 d là |a| + 1 + d = 448 mod 512.

* Độ dài của “Thông điệp đệm” M là

(|a| + 1 + d) +| l | = 448 mod 512 + 64 = 512 mod 512.

Chú ý: Vì M = a || 1 || 0 d || l nên d = |M| - ( |a| + 1 + | l | ) =

d = 512 - ( |a| + 1 + 64 ) = 512 - (|a| +65) = 447 – ( |a| mod 512)

Ví dụ: Xâu đầu vào là a = “ABC”, xây dựng M như sau:

a: = “ABC” = "01000001 01000010 01000011"

(Chú ý theo bảng mã: ‘A’ =65, ‘B’ =66, ‘C’ =67= 26 + 21 + 20)

* Độ dài tính theo bit của xâu a: |a| = 24 bit

=> d = 447 – (|a| mod 512) = 447 – 24 = 423.

|a| + 1 + d = 24 + 1 + 423 = 448 mod 512.

* Biểu diễn nhị phân của độ dài xâu a là l:

l = |a| mod 264 = 24 mod 264 = 24 = 24 + 23 = (11000 )2 = (



 

so

59 00

00

11000 )2

=> Độ dài của l là |l| = |



 

so

59 00

00

11000| = 59 + 5 = 64.

M = a || 1 || 0d || l

=> M = 01000001 01000010 01000011 || 1 ||



 

so

423

00

00

||



 

so

59 00

00

11000

Trang 8

M[0] = 01000001 01000010 01000011 10000000

M[1] = M[2] = … = M[13] = M[14] =



 

so

32

00

00

M[15] = 00000000 00000000 00000000 00011000

Trong việc xây dựng M, ta gắn số 1 đơn lẻ vào sau a, sau đó thêm tiếp các số 0

vào đủ để độ dài của M đồng dư với 448 modulo 512 Cuối cùng nối thêm 64 bit (chính

là |l|) chứa biểu diễn nhị phân về độ dài ban đầu của a (được rút gọn theo modulo 264 nếu cần)

Xâu M có độ dài chia hết cho 512, vì thế khi chặt M thành các word 32 bit, số

word nhận được là N, sẽ chia hết cho 16

Mục đích việc tạo ra “thông điệp đệm” M là để các hàm băm xử lý trên từng

khối (block) 512 bit (16 word) cùng một lúc.

Trang 9

III Chương trình hàm băm MD4

1 Môi trường và công cụ làm thử nghiệm

Bảng 3.1 Cấu hình hệ thống thử nghiệm

Bảng 3.2 Các phần mềm sử dụng

1 NetBeans IDE

7.0

Môi trường phát triển

https://netbeans.org/c ommunity/releases/

2 Tiến hành thực thi và kết quả

• Chương trình được xây dựng gồm các file sau:

 Md4.java: File chương trình chính bao gồm thuật toán MD4

 HamBamDongMD4AboutBox.java : File giao diện About của chương trình

 HamBamDongMD4App.java và HamBamDongMD4View.java: File giao diện chính của chương trình

• Giao diên chương trình như sau:

Ngày đăng: 24/10/2014, 16:06

HÌNH ẢNH LIÊN QUAN

Bảng 3.1. Cấu hình hệ thống thử nghiệm - Tiểu luận MẬT MÃ VÀ AN TOÀN THÔNG TIN Hàm băm MD4
Bảng 3.1. Cấu hình hệ thống thử nghiệm (Trang 9)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w