1. Trang chủ
  2. » Tất cả

An ninh mạng viễn thông đề tài hàm băm

28 1 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hàm Băm
Tác giả Thạch Thọ Quỳnh
Người hướng dẫn TS. Hoàng Trọng Minh
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành An ninh mạng
Thể loại Tiểu luận
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 1,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các ứng dụng điển hình của hàm băm mật mã là: xác thực, đảm bảo tính toàn vẹn dữ liệu, tạo chữ ký số, .... Nghiên cứu xây dựng tạo ra các hàm băm nâng cao mới và cung cấp thông tin chi t

Trang 1

KHOA VIỄN THÔNG I

Trang 2

2

LỜI CẢM ƠN

Em là Thạch Thọ Quỳnh, em xin thay mặt nhóm 13 gửi lời cảm ơn sâu sắc đến Học viện Công nghệ Bưu chính Viễn thông đã đưa bộ môn “An ninh mạng Viễn Thông” vào trong chương trình giảng dạy của khoa, em cảm thấy bộ môn rất hữu ích đối với bản thân mình nói riêng và sinh viên Học viện nói chung, sau khi học xong môn này em thấy mình nhận được nhiều kiến thức về an ninh mạng và giúp ích em trong quá trình học tập

và làm việc Đặc biệt em xin chân thành cảm ơn đến TS Hoàng Trọng Minh – giảng viên bộ môn “An ninh mạng Viễn Thông” đã truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập kì vừa qua Mặc dù đã rất cố gắng nhưng hiểu biết và kỹ năng về môn học này của chúng em còn nhiều hạn chế Do đó bài tiểu luận của nhóm em khó tránh khỏi những thiếu sót, những chỗ chưa chính xác, rất mong được thầy xem xét và góp ý giúp em để bài tiểu luận này được hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 3

3

Thông tin truyền qua mạng ngày càng bị ảnh hưởng bởi các tác động, các thám

tử có mặt ở khắp mọi nơi, luôn đề phòng để đánh cắp hoặc cố tình làm thay đổi thông tin Để bảo vệ tin nhắn, cần phải bảo vệ tốt hơn tính bảo mật và tính toàn vẹn của dữ liệu tin nhắn Ngoài lượng thông tin này, nó cũng phải xác thực Và cùng với sự phát triển của các kỹ thuật mật mã, hàm băm cũng ra đời Hàm băm tạo ra mã băm được sử dụng cho nhiều mục đích Các ứng dụng điển hình của hàm băm mật mã là: xác thực, đảm bảo tính toàn vẹn dữ liệu, tạo chữ ký số, Nghiên cứu xây dựng tạo ra các hàm băm nâng cao mới và cung cấp thông tin chi tiết về khả năng ứng dụng giúp tăng tính bảo mật và tính xác thực cũng như tính toàn vẹn và bảo mật của dữ liệu đảm bảo thông tin

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ề cơ bản, băm là quá trình chuyển đổi dữ liệu đầu vào có độ dài bất kỳ thành chuỗi đầu ra đặc trưng có độ dài

cố định Quá trình băm được thực hiện bằng cách sử dụng một hàm băm Hash là bất kỳ chức năng nào có thể được sử dụng để ánh xạ dữ liệu có kích thước bất kỳ thành các giá trị có kích thước cố định Các giá trị được trả về bởi một hàm băm được gọi là thông điệp băm, giá trị băm, mã băm hoặc hash Nhóm em đã chọn đề tài “Tìm hiểu về Hàm Băm” với nội dung của bài tiểu luận được chia làm 5 chương, với cấu trúc từng chương như sau:

Chương 1: Giới thiệu về hàm băm

Chương 2: Thuật toán băm

Chương 3: Ứng dụng của hàm băm

Chương 4: Các yêu cầu và độ an toàn của hàm băm

Chương 5: Kết luận chung

Trang 4

4

MỤC LỤC

LỜI CẢM ƠN 2

LỜI MỞ ĐẦU 3

MỤC LỤC 4

BẢNG PHÂN CÔNG CÔNG VIỆC CỦA NHÓM 6

DANH MỤC KÝ HIỆU, THUẬT NGỮ VIẾT TẮT 7

DANH MỤC HÌNH VẼ 8

DANH MỤC BẢNG BIỂU 8

CHƯƠNG 1: GIỚI THIỆU VỀ HÀM BĂM 9

1.1 Khái niệm về hàm băm (hash function) 9

1.2 Đặc tính của hàm băm 9

1.3 Các hàm băm mật mã học 10

1.4 Tính chất của hàm băm 11

CHƯƠNG 2: THUẬT TOÁN 12

2.1 Hàm băm dòng MD5 12

2.1.1 Giới thiệu về hàm băm MD5 12

2.1.2 Thuật toán MD5 12

2.2 Hàm băm an toàn SHA-1 15

2.2.1 Giới thiệu về hàm băm SHA-1 15

2.2.2 Thuật toán SHA-1 15

2.3 So sánh MD5 và SHA-1 18

CHƯƠNG 3: ỨNG DỤNG CỦA HÀM BĂM 19

3.1 Định danh tệp hoặc dữ liệu 19

3.2 Bảo vệ tính toàn vẹn của thông điệp hoặc tệp tin được gửi qua mạng 19

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

3.4 Xác thực thông điệp 20

3.5 Hashing trong blockchain 21

3.6 Tạo chữ ký điện tử 22

3.7 Chống giả mạo 23

CHƯƠNG 4: CÁC YÊU CẦU VÀ ĐỘ AN TOÀN CỦA HÀM BĂM 24

4.1 Các yêu cầu bảo mật cho hàm băm bảo mật 24

4.1.1 Các tấn công đoán thử đúng sai 25

Trang 5

5

4.1.3 Tấn công vào chống xung đột 26

4.2 Độ an toàn của hàm băm 26

4.2.1 Độ an toàn của hàm băm SHA 26

4.2.2 Độ an toàn của hàm băm MD5 26

V KẾT LUẬN CHUNG 27

DANH MỤC TÀI LIỆU THAM KHẢO 28

Trang 6

6

BẢNG PHÂN CÔNG CÔNG VIỆC CỦA NHÓM

Họ và tên Mã sinh viên Nội dung thực hiện

bài báo cáo

Nội dung phân chia công việc

Chương 1: Tìm hiểu

về hàm băm Chương 2: Thuật toán băm

Chương 1: Tìm hiểu

về hàm băm Chương 3: Ứng dụng của hàm băm

Chương 5: Kết luận chung

* Chỉnh sửa, tổng hợp, sắp xếp và hoàn thiện bản word

* Viết lời mở đầu, đặt vấn đề, lập các danh mục bảng biểu, hình

vẽ, mục lục,…

* Tổng hợp các tài liệu tham khảo

* Phân chia nội dung cho các thành viên trong nhóm

Chương 1: Tìm hiểu

về hàm băm Chương 4: Các yêu cầu và độ an toàn của hàm băm

Trang 7

7

DANH MỤC KÝ HIỆU, THUẬT NGỮ VIẾT TẮT

Từ viết tắt Thuật ngữ tiếng anh Thuật ngữ tiếng việt

NIST National Institute of Standards and

Technology

Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ

Trang 8

8

DANH MỤC HÌNH VẼ

Hình 1.1……….… 9

Hình 2.1: Qúa trình trong một vòng……… 15

Hình 2.2: Phương thức mã hóa SHA-1……….…….18

Hình 3.1: Password Hash Salting……… 20

Hình 3.2: Nguyên lý hoạt động của Blockchain……… …… 21

DANH MỤC BẢNG BIỂU Bảng 1.1: Các hàm băm mật mã học……… 10

Bảng 2.1 Các giá trị trong bảng T có 64 phần tử……… … 14

Bảng 4.1: Các yêu cầu hàm băm bảo mật……… … 25

Trang 9

9

CHƯƠNG 1: GIỚI THIỆU VỀ HÀM BĂM

1.1 Khái niệm về hàm băm (hash function)

Hàm băm (Hash function) là một hàm toán học có thể 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 (theo 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),

nó đại diện cho thông điệp gốc

Hàm băm là hàm một chiều và giá trị băm là duy nhất, rất khó để suy ra nội dung

gốc hoặc độ dài ban đầu của tài liệu gốc

Hình 1.1:

1.2 Đặc tính của hàm băm

- Hàm băm h là hàm một chiều (one-way hash) với các đặc tính sau:

1) Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất

2) Nếu dữ liệu trong thông điệp x thay đổi để thành thông điệp x’ thì h(x’) h(x)  Hai

thông điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau

3) Nội dung của thông điệp gốc khó thể bị suy ra từ giá trị hàm băm  Với thông điệp

x thì dễ dàng tính được z = h(x), nhưng ngược lại thì khó thể suy ngược lại được x nếu

chỉ biết giá trị hàm băm h

Trang 10

Kích thước khối

Độ dài Kích

thước word

Xung đột

Trang 11

11

1.4 Tính chất của hàm băm

Tính chất 1 – hàm băm h là hàm một chiều: hàm băm h được gọi là hàm một

chiều nếu khi cho trước một bản tóm lược thông báo z thì khó thể tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z

Tính chất 2 - Hàm băm h không va chạm yếu: hàm băm h được gọi là không

va chạm yếu, nếu cho trước bức thông điệp x, khó thể tính toán để tìm ra bức thông điệp x’ x mà h(x’) = h(x)

Tính chất 3 – Hàm băm h không va chạm mạnh: hàm băm h được gọi là không

va chạm mạnh nếu khó thể tính toán để tìm ra hai bức thông điệp khác nhau x và x’ mà

có h(x) = h(x’)

Trang 12

12

CHƯƠNG 2: THUẬT TOÁN

2.1 Hàm băm dòng MD5

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

MD5 (viết tắt của thuật toán Message-Digest 5, Thuật toán thông báo số 5) là một hàm băm được sử dụng để mã hóa với giá trị băm là 128 bit Nó từng được coi là một tiêu chuẩn trên Internet MD5 đã được sử dụng rộng rãi trong các chương trình bảo mật mạng và cũng thường được sử dụng để kiểm tra tính toàn vẹn của tệp

Năm 1991, Giáo sư Ronald L Rivest đã phát triển MD5 MD5 không nhanh bằng thuật toán MD4, nhưng dữ liệu trả về an toàn hơn MD4 Nó được sử dụng trong nhiều ứng dụng bảo mật và để xác minh xem tệp có bị thay đổi hay không, bên cạnh đó còn kiểm tra tính toàn vẹn của tệp dữ liệu, MD5 có hai ứng dụng quan trọng:

- MD5 phần mềm được sử dụng rộng rãi trên thế giới để đảm bảo rằng các tập tin tải về không bị hỏng Người dùng có thể so sánh các thông số kiểm tra phần mềm thông qua MD5 Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối, trong khi Windows

sử dụng phần mềm của hãng thứ ba

- Người dùng cũng sử dụng MD5 để mã hóa mật khẩu Mục đích của mã hóa này là chuyển đổi một chuỗi mật khẩu thành một mã khác để mật khẩu không thể được truy tìm lại

2.1.2 Thuật toán MD5

 Đầu vào: thông điệp với độ dài bất kỳ

 Output: giá trị băm (message digest) 128 bits

 Giải thuật gồm 5 bước thao tác trên khối 512 bits

Bước 1: Điền dữ liệu

 Thêm các bits sao cho dữ liệu có độ dài l ≡ 448 mod 512 hay

Trang 13

Nhóm 13 – Hàm Băm 13

 Độ dài của khối dữ liệu ban đầu được biểu thị dưới dạng nhị phân 64 bit và được thêm vào cuối chuỗi nhị phân được tạo ở bước 1

 Nếu độ dài của khối dữ liệu ban đầu lớn hơn 264, chỉ 64 bits thấp được sử dụng,

nghĩa là giá trị được thêm vào bằng K mod 264

 Kết quả của hai bước đầu tiên là một khối dữ liệu có độ dài là bội số của 512 Khối dữ liệu được biểu diễn như sau

- Bằng một dãy L khối 512-bit Y0, Y1,, YL-1

- Bằng một dãy N từ (word) 32-bit M0, M1, MN-1

Vậy N = L x 16 (32 x 16= 512)

Bước 3: Khởi tạo bộ đệm MD (MD buffer)

 Để lưu trữ các giá trị băm kết quả và trung gian dùng một bộ đệm 128-bit Nó được biểu diễn bằng 4 thanh ghi 32-bit với các giá trị khởi tạo ở dạng little-endian

(byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau:

Bước 4: Xử lý các khối dữ liệu 512- bit

 Trọng tâm của thuật toán là một hàm nén bao gồm 4 "vòng" xử lý Các vòng này

có cấu trúc giống nhau, nhưng sử dụng các hàm luận lý khác nhau, bao gồm F,

G, H và I

Trang 14

Kết quả của 4 vòng được cộng (theo modulo 232với đầu vào CVq để tạo CVq +1

T[1] = d76aa478 T[17] = f61e2562 T[33] = fffa3942 T[49] = f4292244 T[2] = e8c7b756 T[18] = c040b340 T[34] = 8771f681 T[50] = 432aff97 T[3] = 242070db T[19] = 265e5a51 T[35] = 6d9d6122 T[51] = ab9423a7 T[4] = c1bdceee T[20] = e9b6c7aa T[36] = fde5380c T[52] = fc93a039 T[5] = f57c0faf T[21] = d62f105d T[37] = a4beea44 T[53] = 655b59c3 T[6] = 4787c62a T[22] = 2441453 T[38] = 4bdecfa9 T[54] = 8f0ccc92 T[7] = a8304613 T[23] = d8a1e681 T[39] = f6bb4b60 T[55] = ffeff47d T[8] = fd469501 T[24] = e7d3fbc8 T[40] = bebfbc70 T[56] = 85845dd1 T[9] = 698098d8 T[25] = 21e1cde6 T[41] = 289b7ec6 T[57] = 6fa87e4f T[10] = 8b44f7af T[26] = c33707d6 T[42] = eaa127fa T[58] = fe2ce6e0 T[11] = ffff5bb1 T[27] = f4d50d87 T[43] = d4ef3085 T[59] = a3014314 T[12] = 895cd7be T[28] = 455a14ed T[44] = 4881d05 T[60] = 4e0811a1 T[13] = 6b901122 T[29] = a9e3e905 T[45] = d9d4d039 T[61] = f7537e82 T[14] = fd987193 T[30] = fcefa3f8 T[46] = e6db99e5 T[62] = bd3af235 T[15] = a679438e T[31] = 676f02d9 T[47] = 1fa27cf8 T[63] = 2ad7d2bb T[16] = 49b40821 T[32] = 8d2a4c8a T[48] = c4ac5665 T[64] = eb86d391

Bảng 2.1 Các giá trị trong bảng T có 64 phần tử

Bước 5: Xuất kết quả

 Sau khi xử lý tất cả các khối L 512-bit, đầu ra của xử lý thứ L là giá trị băm 128-

bit

Trang 15

Nhóm 13 – Hàm Băm 15

Hình 2.1 Qúa trình trong một vòng

2.2 Hàm băm an toàn SHA-1

2.2.1 Giới thiệu về hàm băm SHA-1

- Năm 1990 Ron Rivest đã phát triển hàm băm MD4 Sau đó, ông đã cải tiến và tạo ra một hàm băm khác, MD5 Năm 1993, Cơ quan An ninh Quốc gia Hoa Kỳ / Cơ quan An ninh Trung ương (NSA) đã công bố hàm băm rất giống với MD5 là SHA Năm 1995, sau khi khắc phục các sự cố kỹ thuật, NSA đã thay đổi SHA thành một hàm băm mật mã khác gọi là SHA-1

- SHA-1 là thuật toán cũng dựa trên thuật toán MD4 Thuật toán SHA-1 tạo ra chuỗi mã băm có chiều dài 160 bit cố định từ chuỗi bit dữ liệu đầu vào x có chiều dài tùy ý

2.2.2 Thuật toán SHA-1

Đầu vào: Thông điệp với độ dài tối đa 264 bits

Đầu ra: Giá trị băm (message digest) có độ dài 160 bits

Thuật toán: 5 bước được thao tác trên các khối 512 bit

Bước 1: Nhồi thêm dữ liệu

 Thông điệp được thêm các bits sao cho độ dài l  448 mod 512 hay

l = n * 512 + 448 (n,l nguyên)

 Luôn luôn được nhồi thêm dữ liệu vào thông điệp

 Số bits nhồi thêm nằm trong khoảng 1 đến 512

Trang 16

Nhóm 13 – Hàm Băm 16

 Phần dữ liệu nhồi thêm gồm một bit 1 và theo sau là các bít 0

Bước 2: Thêm vào độ dài

 Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và được thêm vào cuối chuỗi nhị phân kết quả của bước 1

 Độ dài được biểu diễn dưới dạng nhị phân 64-bit không dấu

 Kết quả có được từ 2 bước đầu là một khối dữ liệu có độ dài là bội số của 512 Khối dữ liệu được biểu diễn:

+ Bằng một dãy L khối 512-bit Y0, Y1,, YL-1

+ Bằng một dãy N từ (word) 32-bit M0, M1, MN-1

Vậy N = L x 16 ( 32 x 16 = 512)

Bước 3: Khởi tạo bộ đệm MD (MD buffer)

 Một bộ đệm 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả Bộ đệm được biểu diễn bằng 5 thanh ghi 32- bit với các giá trị khởi tạo ở dạng big-endian (byte có trọng số lớn nhất trong từ nằm ở địa chỉ thấp nhất) như sau:

Bước 4: Các khối dữ liệu 512-bit được xử lý

 Trọng tâm của giải thuật bao gồm 4 vòng lặp thực hiện 80 bước

 4 vòng lặp có cấu trúc như nhau và khác nhau ở các hàm logic f1, f2, f3, f4

 Mỗi vòng có đầu vào gồm một bộ đệm 160-bit ABCDE và khối 512-bit hiện thời

 Mỗi bước sẽ dùng một hằng số

Kt (0  t 79)

Kt = 5A 8 2 7 9 9 9 ( 0  t  1 9 )

Kt = 6ED9EBA1 (20  t  39)

Trang 17

Nhóm 13 – Hàm Băm 17

Kt = CA62C1D6 (60  t  79)

 Đầu ra của 4 vòng (bước 80) sẽ cộng với đầu ra của bước CVq để cho ra CVq+1

Bước 5: Xuất kết quả

 Kết quả của khối thứ L là bảng băm 160-bit

 Giải thuật được tóm tắt như sau:

L = số khối 512-bit của thông điệp

SUM32 = phép cộng modulo 232 trên từng từ (32 bits) của đầu vào

MD = giá trị băm

Giải thuật thực hiện tất cả 80 bước, mỗi bước được mô tả như sau:

Trang 18

Nhóm 13 – Hàm Băm 18

Hình 2.2: Phương thức mã hóa SHA-1

2.3 So sánh MD5 và SHA-1

- Khả năng chống lại tấn công brute-force:

 Cần 2128 thao tác với MD5 và 2160 với SHA-1 để tạo được ra thông điệp có giá trị băm cho trước

 Sẽ cần 264 thao tác với MD5 và 280 với SHA-1 để tìm ra 2 thông điệp có cùng giá trị băm

 Cả 2 đều có cấu trúc tốt để chống lại thám mã

- Tốc độ:

 SHA-1 và MD5 đều dựa trên phép toán 32 bit, thực hiện tốt trên các kiến trúc 32 bit

 MD5 có tốc độ thực hiện nhanh hơn SHA-1 do nó thực hiện ít hơn 16 bước

- Tính đơn giản: SHA-1 và MD5 đều được mô tả đơn giản và dễ dàng cài đặt trên cả phần cứng và phần mềm

Trang 19

Nhóm 13 – Hàm Băm 19

3.1 Định danh tệp hoặc dữ liệu

Hashing cũng có thể được sử dụng như một phương tiện để xác định tập tin một cách đáng tin cậy Một số hệ thống quản lý mã nguồn, như Monotone, Mercurial hay Git, sử dụng giá trị SHA1sum của nội dung cây thư mục, thông tin thư mục gốc, tệp v.v

3.2 Bảo vệ tính toàn vẹn của thông điệp hoặc tệp tin được gửi qua mạng

Hàm băm mật mã có tính chất là một hàm một chiều Từ khối dữ liệu hoặc giá trị đầu vào chỉ có 1 giá trị băm duy nhất có thể được lấy ra Đối với tính chất của hàm 1 chiều như chúng ta đã biết Có nghĩa là, ngay cả việc ghi lại hàm băm của nó cũng không thể suy ra giá trị, hàm băm ban đầu của thông điệp

Ví dụ, để xác định xem một tệp hoặc tin nhắn đã thay đổi hay chưa, bạn có thể

so sánh các tính chất của thông điệp báo trước và sau khi nó được đăng (hoặc bất kỳ sự kiện nào khác) Thông báo tóm tắt cũng có thể được sử dụng như một phương tiện nhận dạng tệp đáng tin cậy

Các hàm băm thường được sử dụng trong bảng băm để giảm nỗ lực tính toán cần thiết để tìm một khối dữ liệu trong tập hợp Giá trị băm hoạt động gần giống như một chìa khóa để phân biệt giữa các khối dữ liệu

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

Xác minh mật khẩu thường dựa trên các hàm băm mật mã Mật khẩu người dùng, khi được cung cấp rõ ràng, có thể tạo ra lỗ hỏng bảo mật nghiêm trọng nếu tệp mật khẩu

bị xâm phạm Đối với cơ chế này, chúng ta thường chỉ lưu 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 sẽ đượ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

Ngày đăng: 26/02/2023, 17:42

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

TÀI LIỆU LIÊN QUAN

w