1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn an toàn thông tin: Chương 3a - Trần Thị Kim Chi

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

Định dạng
Số trang 69
Dung lượng 2,97 MB

Nội dung

Bài giảng Nhập môn an toàn thông tin - Chương 3: Toàn vẹn dữ liệu (Phần 1: Hàm băm mật mã học) cung cấp cho người học các kiến thức: Tính toàn vẹn và tính bí mật, tổng quan về hàm băm, ứng dụng của hàm băm, kiến trúc hàm băm, hai hàm băm MD5 và SHA1. Mời các bạn cùng tham khảo.

Trang 1

PHẦN I: HÀM BĂM MẬT MÃ HỌC

FUNCTIONS)

Trang 2

5 Hai hàm băm MD5 và SHA1

( Cryptography and Network Security: Principles

and Practices (3rd Ed.) – Chapter 11)

(Cryptography & Network Security

McGraw-Hill, Inc., 2007., Chapter 12)

Trang 3

• Bài toán ngày sinh

• Nêu các ứng dụng của hàm băm

• Chứng thực thông điệp

• Chữ ký số

• Các ứng dụng khác

• Thảo luận cơ chế Merkle-Damgard như là kiến trúc

cơ bản của hàm băm

Trang 4

Mục tiêu

• Thảo luận vầ hàm băm MD5 và SHA1

• Sơ lược vầ MD5 và SHA1

• Sơ đồ tổng thể

• Cấu trúc hàm F tại mỗi bước

• Cấu trúc của một vòng trong F

• So sánh MD5 và SHA1

Trang 5

1 Tính toàn vẹn và tính bí mật

sửa đổi nội dung thông điệp

• Mã hóa chỉ nhằm đảm bảo tính bí mật, không giúp đảm bảo tính toànvẹn thông tin

• Người tấn công có thể sửa đổi nội dung thông điệp đã được mãhóa mà không cần biết nội dung thật sự của thông điệp

• Ví dụ: Trong đấu giá trực tuyến, có thể thay đổi giá đặt của đối thủ

mà không cần biết nội dung thật sự của giá đặt

Trang 6

2 Hash Function

băm – văn bản đại diện – có kích thước cố định Do

đó người nhận không biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm.

ngược lại được nội dung thông điệp từ giá trị băm này.

Trang 7

2 Hash Function

• Input: M có kích thước bất kỳ

• Output – giá trị h có kích thước cố định, ngắn

• H(x) – hàm một chiều (“Khó để tính nghịch đảo”)

Trang 8

2 Hash Function

Trang 9

2 Hash Function

h 52f21cf7c7034a20

17a21e17e061a863

This is a clear text that

can easily read without

using the key The

sentence is longer than

the text above.

Trang 10

2 Hash Function

Không gian giá trị Băm nhỏ hơn rất nhiều so với Không gian thông điệp về mặt kích thước

chắc chắn sẽ tồn tại đụng độ (trùng), nghĩa là

có hai tin x và x ” mà giá trị Băm của chúng là

giống nhau, tức là h(x) = h(x”)

Thông điệp

Thông điệprút gọn

Trang 11

Tính chất hàm băm

1 Tính chống tiền ảnh (Preimage resistant –

one-way property):

Cho trước giá trị băm h việc tìm x sao cho H(x)=h là rất khó

2 Tính chống tiền ảnh thứ hai (Second preimage

resistant – weak collision resistant – Tính chống trùng yếu):

Cho thông điệp đầu vào x, việc tìm một thông điệp x’ với (x’x) sao cho h(x’)=h(x) là rất khó

3 Tính chống trùng mạnh (Strong Collision

resistant):

Không thể tính toán để tìm được hai thông điệp đầu vào

x 1x 2 sao cho chúng có cùng giá trị băm

Trang 12

Theo nguyên lý chuồng bồ câu Dirichlet: cần có 365+1 = 366 người để tìm thấy 2 người có cùng ngày sinh với xác suất 100% Vì vậy với 30 người thì xác xuất này rất nhỏ.Rất nhỏ, đúng không

Tính theo xác suất thống kê toán học thì

M(M-1) >=2 x 365 x loge2 (*)

chỉ cần 23 người là đủ để xác suất hơn 50% Vì vậy bài toán này gọi là nghịch lý ngày sinh

Trang 13

Nghịch lý ngày sinh

(birthday paradox)

trường hợp xác suất để hai mẩu tin có

cùng bản Hash là không nhỏ như chúng

ta nghĩ

Tính chống trùng mạnh

Trang 14

• XS để 1 người khác ngày sinh với bạn là 364/365

• XS để M người đều khác ngày sinh với bạn là (364/365) M

• XS để tồn tại ít nhất một người có cùng ngày sinh với bạn là: (364/365) M

1-• Để XS này >50%  M>=253 người

Tính chống trùng yếu

Trang 15

Nghịch lý ngày sinh

(birthday paradox)

Trang 16

lớn), nghĩa là hàm hăm đạt được tính chống trùng mạnh (tương được tấn công vét cạn khóa của DES)

Trang 17

Phân Loại hàm băm mật mã

Collision Resistant Hash Functions

(CRHF)

One-Way Hash Functions

(OWHF)

Manipulation Detection

Codes (MDC)

Message Authentication

Codes (MAC)

Cryptographic Hash Functions

Sử dụng

khóa

Không sử dụng khóa

Universal One-Way Hash Functions (UOWHF)

Trang 19

• Trong nhiều trường hợp, có một yêu cầu là

cơ chế chứng thực phải hỗ trợ nhận dạng người gửi (sender) là hợp pháp.

• Hàm băm dạng này, giá trị băm (h) được gọi

tóm tắt thông điệp (message digest)

Trang 20

• to create a one-way password file

• store hash of password not actual password

• for intrusion detection and virus detection

• keep & check hash of files on system

Trang 21

661dce0da2bcb2d8 2884e0162acf8194

Password store

Hash Matching Exactly?

Yes No

Store Hashing Password Verification an input password against the stored hash

Trang 22

Authentication

• protects both a message's integrity as well as its authenticity ,

by allowing verifiers (who also possess the secret key) to

detect any changes to the message content

Trang 23

3.1 Message Authentication

• Ví dụ cơ chế chứng thực đơn giản

Trang 24

3.1 Message Authentication

• Ví dụ cơ chế chứng thực đơn giản (tt)

Trang 25

3.2 Digital Signatures

• Giá trị băm của thông điệp được mã hóa bằng

private key của user, bất kỳ ai biết public key

của user thì có thể thẩm tra thông điệp mà được gắn kết với chữ ký số.

• Kẻ tấn công muốn hiệu chỉnh thông điệp thì sẽ cần phải biết private key của user.

Trang 26

3.2 Digital Signatures

• Ví dụ:

Trang 27

Hash Function Properties

• Arbitrary-length message to fixed-length digest

• Preimage resistant (One-way property)

• Second preimage resistant (Weak collision resistant)

• Collision resistant (Strong collision resistance)

Trang 28

Properties : Fixed length

• Arbitrary-length message to fixed-length digest

This is a clear text that

can easily read without

using the key The

sentence is longer than

the text above.

661dce0da2bcb2d8 2884e0162acf8194

Trang 29

Preimage resistant

• This measures how difficult to devise a message which hashes to the

known digest

• Roughly speaking, the hash function must be one-way

Given only a message digest, can’t find any message

(or preimage) that generates that digest

Trang 30

Exam Questions

• Can we use a conventional lossless compression method

such as zip as a cryptographic hash function?

Can we use a checksum function as a cryptographic hash

function?

Answer : No, a lossless compression method creates a

compressed message that is reversible.

Answer : No, a checksum function is not preimage

resistant, Eve may find several messages whose

checksum matches the given one.

Trang 31

Second preimage resistant

• Given one message, can’t find another message that has the same message digest

An attack that finds a second message with the same message digest is a second

pre-image attack.

• It would be easy to forge new digital signatures from old signatures if the

 This measures how difficult to devise a message which hashes

to the known digest and its message

Trang 32

Collision Resistant

• Can’t find any two different messages with the same message digest

• Collision resistance implies second preimage resistance

• Collisions, if we could find them, would give signatories a way to repudiate their signatures

Trang 33

3.3 Other Applications

Dùng lưu trữ mật khẩu (băm password):

• Hàm băm được dùng để tạo one-way password

file, trong cơ chế này giá trị băm của password được lưu, điều này tốt hơn là lưu chính bản rõ password.

chứa password.

• Khi user nhập vào một password, thì giá trị băm của

tra.

Trang 34

3.3 Other Applications

Dùng nhận diện xâm hại (intrusion

Trang 35

Phát sinh số ngẫu nhiên giả

(pseudorandom number generator

-PRNG)

Trang 36

4 Kiến trúc hàm băm an toàn

˗ Tác giả: Ralph Merkle, Ivan Damgård

˗ Hầu hết các hàm băm đều sử dụng cấu trúc này

Trang 37

5 Hàm băm MD5, SHA1

• MD5 (Message Digest)

• Kích thước giá trị băm là 128-bit

vẫn còn sử dụng phổ biến

Trang 38

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

Sơ đồ tổng thể

H0 – 128-bit, chia thành 4 từ 32-bit, ký hiệu a,b,c,d – hằng số (thập lục phân)

a=01234567; b=89abcdef; c=fedbca98; d=76543210

Trang 39

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

Bước 1: nhồi dữ liệu

• Nhồi thêm các bits sao cho dữ liệu có độ dài

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

• Luôn thực hiện nhồi dữ liệu ngay cả khi dữ liệu ban

đầu có độ dài mong muốn

• Ví dụ, dữ liệu có độ dài 448 được nhồi thêm 512 bits

để được độ dài 960 bits.

• Số lượng bit nhồi thêm nằm trong khoảng 1 đến 512

• Các bit được nhồi gồm 1 bit “1” và các bit 0 theo sau

Trang 40

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

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

• Nếu độ dài của khối dữ liệu ban đầu > 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ó đượ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

Trang 41

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

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

• Một bộ đệm 128-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 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:

Trang 42

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

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

• Trọng tâm của giải thuật là hàm nén

công thức: T[i] = 232 x abs(sin(i)), i

được tính theo radian.

• Kết quả của 4 v.ng được cộng (theo

modulo 232 với đầu vào CVq để tạo

Trang 43

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

Các giá trị trong bảng T

Trang 44

5.1 Hàm băm MD5 (128-bit,  2 64 -bit)

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

• Sau khi xử l hết L khối 512-bit, đầu ra của lần xử l thứ L là giá trị

• IV: bộ đệm gồm 4 thanh ghi ABCD

• Yq: khối dữ liệu thứ q gồm 512 bits

• L: số khối 512-bit sau khi nhồi dữ liệu

• CVq: đầu ra của khối thứ q sau khi áp dụng hàm nén

• RFx: hàm luận l sử dụng trong các “v.ng” (F,G,H,I)

• MD: message digest – giá trị băm

Trang 45

5.1 Hàm băm MD5 nén

(128-bit,  2 32 -bit)

Trang 46

MD5 Overview

1 Append padding bits

(to 448 mod 512)

2 Append length (64bits)

3 Initialize MD buffer

Word A = 01 23 45 67

Word B = 89 AB CD EF

Word C = FE DC BA 98

Trang 47

Hash Algorithm Design – MD5

16 steps

Constructed from sine function X[k] = M [q*16+k] (32 bit)

Trang 48

The ith 32-bit word in matrix T, constructed from the sine function

M [q*16+k] = the kth 32-bit word from the qth 512-bit block of the msg

Single step

Trang 49

5 Hàm băm MD5, SHA1

• SHA (Secure Hash Algorithm)

• Được phát triển bởi NIST 1993 (SHA-0)

• 1995: SHA-1 - Chính phủ Mỹ chọn làm chuẩn quốc gia Kích thước giá trị băm 160-bit

• Hiện nay còn có SHA-224, SHA-256, SHA-384, SHA-512

Trang 50

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

• Sơ đồ tổng thể của SHA1 cũng giống như MD5, kích

thước của giá trị băm tại mỗi bước là 160-bit.

H0 – 160-bit, chia thành 5 từ 32-bit, ký hiệu a,b,c,d,e – hằng số

Trang 51

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

• Đầ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

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

Trang 52

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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

• Thông điệp được nhồi thêm các bits sao cho độ dài

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

• Thông điệp luôn luôn được nhồi thêm dữ liệu

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

• Phần dữ liệu nhồi thêm bao gồm một bit 1 và theo

sau là các bit 0

Trang 53

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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ị

• Độ 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

Trang 54

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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ếtquả Bộ đệm được biểu diễn bằng 5 thanh ghi 32-bit với các giá trị khởitạ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:

Trang 55

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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

• Trọng tâm của giải thuật bao gồm 4 vòng

lặp thực hiện tất cả 80 bước

4 vòng lặp có cấu trúc như nhau, chỉ khác

nhau ở các hàm logic f1, f2, f3, f4

• Mỗi vòng có đầu vào gồm khối 512-bit hiện

thời và một bộ đệm 160-bit ABCDE Các

Trang 56

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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

• Sau khi thao tác trên toàn bộ L blocks Kết quả của khối thứ

• IV = giá trị khởi tạo của bộ đệm ABCDE

• ABCDEq = đầu ra của hàm nén trên khối thứ q

• 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

Trang 57

5.2 Hàm băm SHA-1 (160-bit, 2 64 -bit)

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

• Sau khi thao tác trên toàn bộ L blocks Kết quả của khối thứ

• IV = giá trị khởi tạo của bộ đệm ABCDE

• ABCDEq = đầu ra của hàm nén trên khối thứ q

• 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

Trang 58

5.2 Hàm băm SHA-1 – Hàm Nén

Trang 59

5.2 Hàm băm SHA-1 – Hàm Nén

Trang 60

So sánh giữa MD5 và SHA-1

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

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

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

• Khả năng chống lại thám mã: cả 2 đều có cấu trúc tốt

Trang 61

Một số ứng dụng MD5 và SHA-1

Trang 62

Một số ứng dụng MD5 và SHA-1

Trang 63

Một số ứng dụng MD5 và SHA-1

Trang 64

Một số ứng dụng MD5 và SHA-1

2 Đấu giá trực tuyến (Trang 94)

Trang 65

• Có thể tránh những hình thức lừa đảo như vậy bằng cách sử dụnghàm băm Từ mức giá bỏ thầu, Alice và Bob sẽ tính các giá trị bămtương ứng và chỉ cung cấp cho trọng tài các giá trị băm này.

• Vì hàm băm là một chiều, nếu trọng tài và Trudy bắt tay nhau thì cũng

• không thể biết được giá của Alice và Bob là bao nhiêu Đến khi công

bố, Alice, Bob và Trudy sẽ đưa ra mức giá của mình Trọng tài sẽ tínhcác giá trị băm tương ứng và so sánh với các giá trị băm đã nộp đểbảo đảm rằng mức giá mà Alice, Bob và Trudy là đúng với ý định banđầu của họ Vì tính chống trùng của hàm băm nên Alice, Bob và Trudy

Trang 66

Một số ứng dụng MD5 và SHA-1

2 DownLoad File

Trang 67

Câu hỏi và bài tập

1 Để bảo đảm tính chứng thực dùng mã hóa đối xứng hay mã hóa

khóa công khai, bản rõ phải có tính chất gì? Tại sao?

2 Nếu bản rõ là một dãy bít ngẫu nhiên, cần làm gì để bản rõ trở

thành có cấu trúc?

3 Sử dụng MAC để chứng thực có ưu điểm gì so với chứng thực

bằng mã hóa đối xứng?

4 Về mặt lý thuyết, giá trị Hash có thể trùng không? Vậy tại sao nói

giá trị Hash có thể xem là “dấu vân tay của thông điệp”?

5 Tại sao để chứng thực một thông điệp M, người ta chỉ cần mã

hóa khóa công khai giá trị Hash của M là đủ? Thực hiện như vậy

có lợi ích gì hơn so với cách thức mã hóa toàn bộ M

6 Tìm hiểu phương pháp sử dụng hàm băm MD5 và SHA trong thư

viện NET, viết chương trình mã hóa password lưu trữ và kiểm tra password

Trang 68

Câu hỏi và bài tập

1 Hãy xem xét hàm hash sau Thông điệp có dạng là một dãy các số

thập phân M = (a1, a2, …, an) Hàm hash được tính bằng công thức:

2 Hàm hash trên có thỏa mãn các tính chất của một hàm hash như đã

nêu trong phần 5.2 hay không? Giải thích lý do

3 Giả sử Alice và Bob muốn tung đồng xu qua mạng (Alice tung và Bob

đoán) Giao thức thực hiện như sau:

i Alicechọn giá trị X=0 hay 1.

Chứng tỏ rằng Alice có thể lừa Bob (chẳng hạn, Alice chọn X=1, thấy Bob đoán Z=1

thì Alice sẽ lừa như thế nào để Bob giải mã Y thì có X=0) Dùng hàm hash,hãy

Ngày đăng: 30/01/2020, 11:45

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w