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

Mật mã ứng dụng trong an toàn thông tin (4)

7 7 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mật mã ứng dụng trong an toàn thông tin (4)
Trường học Đại học Công nghệ Thông tin, ĐHQG TP. HCM
Chuyên ngành An toàn Thông tin
Thể loại Bài giảng
Năm xuất bản 2019
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 7
Dung lượng 630,97 KB

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

Nội dung

MẬT MÃ ỨNG DỤNG TRONG ATTT Bài 04.. Hàm băm và mật mã khóa công khai Hàm băm 1 Tấn công từ điển 2 Một số thuật toán mật mã khóa công khai điển hình 3 Hàm băm 1 Tấn công từ điển 2 Một số

Trang 1

MẬT MÃ ỨNG DỤNG

TRONG ATTT

Bài 04 Hàm băm và

mật mã khóa công khai

Hàm băm

1

Tấn công từ điển

2

Một số thuật toán mật mã khóa công khai điển hình

3

Hàm băm

1

Tấn công từ điển

2

Một số thuật toán

mật mã khóa công

khai điển hình

3

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

4

• Giá trị băm “đại diện” cho một thông báo (văn bản) rất dài

– Có thể gọi là “bản tóm lược”

của thông báo (message

digest)

• Một bản tóm lược thông báo như là một `` dấu vân tay số -digital fingerprint'' của tài liệu gốc

Tóm lược thông báo có độ dài tùy ý thành bản tóm lược có độ dài cố định

h = H(M)

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

5

• Hàm nghiền

 Hàm băm như hàm “nghiền” hay “tóm lược”

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

6

• Băm và mã hóa

– Băm là một chiều Không có khả năng tính ngược lại ( no 'de-hashing’)

h 52f21cf7c7034a20

17a21e17e061a863

Đây là một bản rõ dễ dàng đọc được mà không cần dùng khóa

Các câu dài hơn văn bản trên rất nhiều.

Xin chào.

Đây là một ví dụ về mã hóa.

E

NhbXBsZSBzZW50ZW5jZS B0byBzaG93IEVuY3J5cHR pb24KsZSBzZ

Xin chào.

Đây là một ví dụ về mã hóa.

D NhbXBsZSBzZW50ZW5jZSB0byBzaG93IEVuY3J5cHR

pb24KsZSBzZ

k e

k d

 Mã hóa là hai chiều, và yêu cầu khóa để mã hóa/giải mã

Trang 2

 Có độ dài cố định

 Kháng tiền ảnh:

 Kháng tiền ảnh thứ hai:

 Kháng va chạm:

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

7

Hàm băm

1

Tấn công từ điển

2

Một số thuật toán mật mã khóa công khai điển hình

3

Tấn công từ ñiển

9

Tấn công từ ñiển

10

Tấn công từ ñiển

11

Password Hash

mimoza 0x938ff302c906

violet210 0xf2357adef39c

luckyday 0x03aa8c0ff391

mysecret 0xff0cea390de9

vietninja 0x930000b8ca8

p@$$w0rd 0xe3bca98abcd

khongbiet 0xac0bb81ca83

0xe3bca98abcd

Precomputed Hash Table

Tấn công từ ñiển

12

mimoza 0x7381a0f10c3 0x938ff3a2c906 violet210 0xa0c110f139d 0xf23e7adef39c luckyday 0x30ea0fd1d2f 0x03aa8c01f391 p@$$w0rd 0x31ffac10ca0 0xff0cea3d0de9 p@$$w0rd 0xffa0cc103e1 0x930e00b8ca8 p@$$w0rd 0x00a10fc13d 0xe3bc098abcd khongbiet 0xd103c3f13f1 0xac0bb80ca83

Sử dụng Salt chống lại Precomputed Hash Table

Trang 3

 Sử dụng salt ngăn chặn được việc dùng

Precomputed Hash Table nhưng không ngăn

chặn được việc sử dụng từ điển

 Để chống lại tấn công từ điển cần sử dụng mật

khẩu không có trong từ điển!

Tấn công từ ñiển

13

Hàm băm

1

Tấn công từ điển

2

Một số thuật toán mật mã khóa công khai điển hình

3

Hàm băm và ứng dụng

15

Cơ sở toán học

Thuật toán Diffie-Hellman

Thuật toán El-Gamal

Thuật toán RSA

Hàm băm và ứng dụng

16

Cơ sở toán học

Thuật toán Diffie-Hellman Thuật toán El-Gamal Thuật toán RSA

Nhóm (G, *) là một tập hợp G, cùng với

phép toán hai ngôi * thỏa mãn:

1 Tính đóng

2 Tính kết hợp

3 Tồn tại phần tử trung hòa

4 Tồn tại phần tử nghịch đảo

Nhóm

17

a bGa bG

( * ) *a b c=a* ( * )b ca b c, , ∈G

e G a e e a a a G

a G b G a b b a e

Ví dụ: (Z, +) là một nhóm

 Nhóm hữu hạn là nhóm có số phần

tử hữu hạn

|G| = q

 Nhóm cộng Zn

G = {0, 1, 2, , n-1}

 Nhóm nhân Z*

n

Nhóm hữu hạn

18

Trang 4

 Nhóm cyclic là nhóm mà trong đó tồn tại

phần tử g , sao cho khi áp dụng liên tiếp

phép toán * lên phần tử g thì thu được

tất cả các phần tử khác của nhóm.

 Ví dụ 1 : Z5= {{0, 1, 2, 3, 4}, +}

2+2 = 4 (mod 5)

2+2+2 = 1 (mod 5)

2+2+2+2 = 3 (mod 5)

2+2+2+2+2 = 0 (mod 5)

2+2+2+2+2+2 = 2 (mod 5)

Phần tử sinh của nhóm cyclic

19

 Ví dụ 2 : Z* = {{1, 2, 3, 4}, ×}

3 × 3 = 4 (mod 5)

3 × 3 × 3 = 2 (mod 5)

3 × 3 × 3 × 3 = 1 (mod 5)

3 ^1 = 3 (mod 5)

 Nếu n = 2, 4, pk, 2pk(p là số nguyên tố lẻ) thì Z* là nhóm cyclic.

 Phần tử g được gọi là phần tử sinh hay căn nguyên thủy.

Phần tử sinh của nhóm cyclic

20

Hàm băm và ứng dụng

21

Cơ sở toán học

Thuật toán Diffie-Hellman

Thuật toán El-Gamal

Thuật toán RSA

Thuật toán Diffie-Hellman

22

Thuật toán Diffie-Hellman

23

Hàm băm và ứng dụng

24

Cơ sở toán học Thuật toán Diffie-Hellman

Thuật toán El-Gamal

Thuật toán RSA

Trang 5

Thuật toán mã hóa ElGamal

Là thuật toán mật mã khóa công khai

Thuật toán mã hóa ElGamal

25

Sinh cặp khóa cho Alice:

 Chọn số nguyên tố p, phần tử sinh g của Z *

 Chọn ngẫu nhiên x ∈∈ [1, p-1]

 Tính h = g x

 Khóa bí mật là KS A = (p, g, x)

 Khóa công khai là KP A = (p, g, h)

Ví dụ:

Thuật toán mã hóa ElGamal

26

* 29

15

; 28; 8 15; 8 21 mod 29 29,8,15 ; 29,8, 21

x

= = = =

Mã hóa (thông điệp m gửi cho Alice)

 Biết khóa công khai là KP A = (p, g, h)

 Chọn ngẫu nhiên y ∈∈ [1, p-1]

 Tính khóa chung s = h y

 Bản mã: c = (c 1 , c 2 ) = (g y , m⋅⋅⋅⋅s)

Ví dụ:

Thuật toán mã hóa ElGamal

27

7 7

1 2

29,8, 21 ; 10;

7; 21 12

8 17; 10 12 4 , 17, 4

A

y

y

= = = =

= = = = = ⋅ =

Giải mã (bởi Alice)

 Bản mã c = (c 1 , c 2 )

 Dùng khóa bí mật là KS A = (p, g, x)

 Tính khóa chung s = c 1 x

 Bản rõ: m = c 2 ⋅⋅⋅⋅s -1

Ví dụ:

Thuật toán mã hóa ElGamal

28

1 1 2

29,8,15 ; 17, 4 ;

17 12; 17;

4 17 10 mod 29

A x

= = ⋅ =

Lược đồ kí số ElGamal

Tuy cùng tên với thuật toán mã hóa ElGamal

nhưng bản chất thuật toán rất khác biệt

Lược ñồ kí số ElGamal

29

Sinh cặp khóa cho Alice:

 Chọn số nguyên tố p, phần tử sinh g của Z *

 Chọn ngẫu nhiên x ∈∈ [1, p-1]

 Tính h = g x

 Khóa bí mật là KS A = (p, g, x)

 Khóa công khai là KP A = (p, g, h)

Ví dụ:

Lược ñồ kí số ElGamal

30

* 29

15

; 28; 8 15; 8 21 mod 29 29,8,15 ; 29,8, 21

x

= = = =

Trang 6

Thực hiện kí số (bởi Alice)

Thông điệp m, sử dụng KS A = (p, g, x)

1 Sinh ngẫu nhiên: 1<k <p-1; gcd(k,p-1)=1

2 Tính r=g k (mod p)

3 Tính s = (m-xr)k -1 (mod p-1)

4 Nếu s=0 thì trở lại bước 1

5 Chữ kí số lên thông điệp m là (r,s)

Ví dụ:

sign(10) = (3,7)

Lược ñồ kí số ElGamal

31

Kiểm tra chữ kí (bởi bất kì ai) Thông điệp m, sử dụng KP A = (p, g, h)

1 Kiểm tra: 0< r <p; 0< s <p-1

2 Kiểm tra: g m == h r ⋅⋅⋅⋅r s (mod p)

Cơ chế:

Ví dụ:

Lược ñồ kí số ElGamal

32

( )

1

mod 1 mod 1

mod

s m xr k p

m xr sk p

+

10

10; 10 3, 7 ; 29,8, 21

8 4 mod 29

21 3 4 mod 29

A m

r s

g

h r

= =

= ⋅ =

Hàm băm và ứng dụng

33

Cơ sở toán học

Thuật toán Diffie-Hellman

Thuật toán El-Gamal

Thuật toán RSA

Thuật toán mã hóa RSA

Thuật toán mã hóa RSA

34

Sinh cặp khóa cho Alice:

 Chọn 2 số nguyên tố p, q

 Tính n = pq, ϕϕϕ = (p-1)(q-1)

 Chọn số mũ công khai e: gcd(e, ϕϕϕ)=1

 Tính số mũ bí mật d: ed=1 (mod ϕϕϕ)

Ví dụ:

Thuật toán mã hóa RSA

35

1

41, 43, 1763, 40 42 1680

11, 11 611 mod1680

1763, 611 ; 1763,11

ϕ

Mã hóa và giải mã

 Mã hóa: c = m e (mod n)

 Giải mã m = c d (mod n)

Cơ chế:

m = c d = m ed = m kϕϕϕ+1 = m (mod n)

Ví dụ:

Thuật toán mã hóa RSA

36

11

611

100; 1763, 611 ; 1763,11

100 182 mod1763

182 100 mod1763

e

d

= = =

= = =

Trang 7

Thuật toán kí số RSA

Thuật toán kí số hoàn toàn tương tự thuật toán

mã hóa Trong đó, khóa bí mật được dùng để

kí, khóa công khai được dùng để kiểm tra chữ

Thuật toán kí số RSA

37

Sinh cặp khóa cho Alice:

 Chọn 2 số nguyên tố p, q

 Tính n = pq, ϕϕϕ = (p-1)(q-1)

 Chọn số mũ công khai e: (e, ϕϕϕ)=1

 Tính số mũ bí mật d: ed=1 (mod ϕϕϕ)

Ví dụ:

Thuật toán kí số RSA

38

1

41, 43, 1763, 30 42 1680

11, 11 611 mod1680

1763, 611 ; 1763,11

ϕ

Kí số và kiểm tra chữ kí

 Kí số: sign(m) = s = m d (mod n)

 Kiểm tra: s e == m (mod n)

Ví dụ:

Thuật toán kí số RSA

39

611

11

100; 1763, 611 ; 1763,11

100 1658 mod1763

1658 100 mod1763

d

e

= = = =

= = =

Hàm băm

1

Tấn công từ điển

2

Một số thuật toán mật mã khóa công khai điển hình

3

Ngày đăng: 28/08/2022, 12:26

TỪ KHÓA LIÊN QUAN

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

🧩 Sản phẩm bạn có thể quan tâm