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

Nghiên cứu một số kĩ thuật tấn công hệ mã công khai và ứng dụng

67 441 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 67
Dung lượng 1,43 MB

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

Nội dung

Nó cũng được sử dụng để kiểm tra tính nguyên tố của một số nguyên p nào đó, bằng cách lấy ngẫu nhiên các số a và kiểm tra xem có tính chất nêu trên không, kết luận là p nguyên tố càng t

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

LUẬN VĂN THẠC SĨ TOÁN HỌC

Người hướng dẫn khoa học:TS Trần Văn Dũng

Hà Nội, 2015

Trang 2

LỜI CẢM ƠN

Luận văn được hoàn thành tại trường Đại học Sư phạm Hà Nội 2 dưới

sự hướng dẫn của thầy giáo TS Trần Văn Dũng Sự giúp đỡ và hướng dẫn

tận tình, nghiêm túc của thầy trong suốt quá trình thực hiện luận văn đã giúp tôi trưởng thành hơn rất nhiều trong cách tiếp cận một vấn đề mới Tôi xin bày tỏ lòng biết ơn, lòng kính trọng sâu sắc nhất đối với thầy

Tôi xin trân trọng cảm ơn Ban giám hiệu trường Đại học Sư phạm Hà Nội 2, phòng sau đại học và các thầy cô giáo trong nhà trường đã giúp đỡ tạo điều kiện thuận lợi cho tôi trong suốt quá trình thực tập

Tôi xin chân thành cảm ơn gia đình, bạn bè đã luôn giúp đỡ động viên

và tạo điều kiện thuận lợi để tôi hoàn thành khóa học Thạc sĩ cũng như hoàn thành luận văn này

Hà Nội, ngày 10 tháng 12 năm 2015

Tác giả

Hoàng Thị Cẩm Nguyên

Trang 3

LỜI CAM ĐOAN

Luận văn này được hoàn thành tại trường Đại học Sư phạm Hà Nội 2

dưới sự hướng dẫn của TS Trần Văn Dũng

Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này

là trung thực và không trùng lặp với các đề tài khác

Trong quá trình nghiên cứu và hoàn thành luận văn tôi đã kế thừa những thành quả khoa học của các nhà khoa học và đồng nghiệp với sự trân trọng và biết ơn

Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc

Hà Nội, này 10 tháng 12 năm 2015

Tác giả

Hoàng Thị Cẩm Nguyên

Trang 4

MỤC LỤC

MỞ ĐẦU 1

1 Lí do chọn đề tài 1

2 Mục đích nghiên cứu 2

3 Nhiệm vụ nghiên cứu 2

4 Đối tượng nghiên cứu 2

5 Phương pháp nghiên cứu 2

6 Dự kiến đóng góp mới 3

NỘI DUNG 4

Chương 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI 4

1.1 Cơ sở lí thuyết của mật mã khóa công khai 4

1.1.1 Số học Modulo 4

1.1.2 Định lí Fermat nhỏ 6

1.1.3 Định lí phần dư Trung Hoa 7

1.1.4 Hàm ϕ Euler 8

1.1.5 Kiểm tra tính nguyên tố 9

1.1.6 Phân số tiếp diễn 11

1.2 Các bài toán khó liên quan đến hệ mật mã khóa công khai 12

1.2.1 Bài toán phân tích số nguyên thành thừa số nguyên tố 12

1.2.2 Bài toán thặng dư bậc hai 12

1.2.3 Bài toán tìm căn bậc hai mod n 13

1.2.4 Bài toán logarit rời rạc 14

Trang 5

Chương 2 : MỘT SỐ THUẬT TOÁN CỦA HỆ MÃ KHÓA CÔNG KHAI 16

2.1 Hệ mật mã RSA 16

2.1.1 Định nghĩa hệ mật mã RSA 16

2.1.2 Khởi tạo khóa RSA 17

2.1.3 Sử dụng RSA 17

2.1.4 An toàn của RSA 19

2.2 Trao đổi khóa Diffie –Hellman 20

2.2.1 Yêu cầu 20

2.2.2 Khởi tạo Diffie – Hellman 21

2.2.3 Trao đổi khóa Diffie – Hellman 21

2.3 Xác thực mẩu tin 22

2.3.1 Xác thực mẩu tin 22

2.3.2 Các hàm băm Hash 23

2.4 Chữ kí điện tử 24

2.4.1 Các tính chất của chữ kí điện tử 25

2.4.2 Chuẩn chữ kí điện tử (DSS) 25

2.5 Tính an toàn của các sơ đồ khóa công khai 27

Chương 3: MỘT SỐ KỸ THUẬT TẤN CÔNG TRÊN MẬT MÃ KHÓA CÔNG KHAI 29

3.1 Thuật toán xén ngọn  29

3.2 Phân tích ra thừa số 30

3.2.1 Phân tích thừa số Fermat 31

3.2.2 Phân tích cơ sở 32

Trang 6

3.2.3 Phân tích phân số tiếp diễn 34

3.2.4 Trường số 35

3.2.5 Sàng trường số học 38

3.3 Giải quyết bài toán logarit trên trường hữu hạn 41

3.3.1 Định lí phần dư Trung Hoa 41

3.3.2 Thuật toán Pohlig- Hellman 42

Chương 4: ỨNG DỤNG AN TOÀN CÁC THUẬT TOÁN MÃ KHÓA 47

CÔNG KHAI 47

4.1 Một số sai lầm trong sử dụng RSA 47

4.2 Phục hồi bản mã được mã hóa với số mũ công khai nhỏ 50

4.2.1 Tấn công tin nhắn rập khuôn 50

4.2.2 Tấn công thông điệp liên quan 51

4.2.3 Tấn công đệm ngẫu nhiên 53

4.2.4 Thông tin bị rò rỉ 54

4.3 Nhân tử của các RSA modulus với số mũ riêng nhỏ d 55

4.3.1 Tấn công phân số tiếp diễn Wiener 56

4.4 Một số kiến nghị trong sử dụng mật mã khóa công khai 58

KẾT LUẬN 60

TÀI LIỆU THAM KHẢO 61

Trang 7

MỞ ĐẦU

1 Lí do chọn đề tài

Bảo mật là nhu cầu đã xuất hiện từ rất lâu trong đời sống của con người Dưới nhu cầu cần thiết này “ Mật mã học” đã ra đời và phát triển ngày càng mạnh mẽ Mật mã học là một lĩnh vực liên quan với các kĩ thuật ngôn ngữ và toán học để đảm bảo an ninh an toàn thông tin Mật mã học là một lĩnh vực liên ngành, được tạo ra từ một số lĩnh vực khác Các dạng cổ nhất của mật mã há chủ yếu liên quan đến ngôn ngữ gần đây thì tầm quan trọng đã thay đổi mật mã hóa sử dụng và gắn liền nhiều hơn tới toán học cụ thể là toán rời rạc bao gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê và tổ hợp

Mã hóa và thám mã là hai mặt của một vấn đề và luôn phát triển song hành Cùng với sự phát triển của mật mã, các phương pháp thám mã ngày càng tinh vi hiệu quả và luôn là thách thức lớn đối với các nhà mật mã

Mục tiêu của thám mã là tìm những điểm yếu hoặc không an toàn trong phương thức mật mã hóa Thám mã có thể được thực hiện bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết kế ra hệ thống (hoặc những người khác) với ý định đánh giá độ an toàn của hệ thống

Cuối thế kỉ XX hệ mật mã khóa công khai được ra đời, nó được coi như tiến triển làm thay đổi nền tảng cơ bản trong cách làm việc của hệ thống mật

mã hóa Hệ thống mật mã khóa công khai được phát triển và ứng dụng rộng rãi trong thương mại điện tử, tạo khóa và xác thực của mail, xác thực, truy cập

từ xa, và đặc biệt là hệ thống chữ kí điện tử

Chính vì lí do được sử dụng rộng rãi trong thương mại điện tử nên luôn

có rất nhiều sự tấn công nhằm phá vỡ sự an toàn của hệ mật mã này Thêm vào đó, chưa có một chứng minh nào khẳng định được nền tảng toán học của mật mã dùng khóa công khai là “không thể bẻ gãy”, cho nên tiến triển của

Trang 8

toán học trong tương lai có thể sẽ làm cho những hệ thống phụ thuộc vào chúng trở nên mất an toàn

Qua tìm hiểu và nắm bắt được vấn đề, tôi cảm thấy hứng thú với chủ đề

về phương pháp tấn công các mã khóa công khai và được sự đồng ý hướng dẫn luận văn từ TS Trần Văn Dũng nên tôi đã lựa chọn đề tài:

“NGHIÊN CỨU MỘT SỐ KĨ THUẬT TẤN CÔNG HỆ MÃ CÔNG KHAI

VÀ ỨNG DỤNG”

cho luận văn tốt nghiệp của mình

2 Mục đích nghiên cứu

Tổng hợp lại các phương pháp thám mã các mật mã khóa công khai, từ

đó mong muốn người sử dụng sẽ tránh được các lỗi dẫn đến việc mất an toàn của loại mật mã này

3 Nhiệm vụ nghiên cứu

- Nghiên cứu về lý thuyết mật mã

- Nghiên cứu các thuật toán mã hóa và thám mã

- Nghiên cứu một số phương pháp thám mã và ứng dụng

4 Đối tượng nghiên cứu

- Các khái niệm cơ bản về mật mã

- Cơ sở toán học của mã hóa và thám mã

5 Phương pháp nghiên cứu

- Sử dụng phương pháp thu thập thông tin, tài liệu liên quan đến nội dung đề tài

- Phân tích tổng hợp và hệ thống các phương pháp thám mã mật mã khóa công khai

Trang 9

6 Đóng góp mới

Luận văn này là một tài liệu hệ thống khá đầy đủ về mật mã và một số

kỹ thuật tấn công thám mã phổ biến

Luận văn được trình bày theo hướng đi từ cơ sở lý thuyết toán học đến thực tiễn, vì vậy hy vọng luận văn sẽ là một tài liệu dễ hiểu đối với người đọc

và áp dụng được vào trong thực tiễn

Trang 10

NỘI DUNG Chương 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI

Mật mã khóa công khai là một chuyên ngành mật mã học cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật)

Trong mật mã học khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng

để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống

là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai

1.1 Cơ sở lí thuyết của mật mã khóa công khai

1.1.1 Số học Modulo

Số học modulo là cơ sở cơ bản cho mật mã học nói chung và RSA nói riêng

Định nghĩa 1: Cho số nguyên dương N Chúng ta nói hai số nguyên a và b

đồng dư theo modun N nếu tồn tại số nguyên k sao cho a b kN  Chúng ta miêu tả mối quan hệ này bởi kí hiệu sau :

mod

Dễ dàng chứng minh được rằng quan hệ đồng dư là quan hệ tương đương

Định nghĩa 2: Cho 2 lớp tương đương [x] và [y] theo modun N, ta định nghĩa

2 phép toán sau :

Phép cộng:     xy  x y

Phép nhân:     x yxy

Trong luận văn này tôi sẽ kí hiệu lớp tương đương [x] một cách đơn giản là x,

nếu có điều gì thay đổi sẽ được chú thích rõ ràng

Định nghĩa 3: Cho số nguyên N > 0 , modulo vòng Z N là tập :

Trang 11

TrongZ N, ta rất dễ dàng xác định được phần tử nghịch đảo, điều đó rất cần thiết cho các thuật toán mã công khai

Định nghĩa 4: Cho a là một phần tử của Z N Phần tử nghịch đảo của a theo modulo N là số nguyên x thỏa mãn:

1 mod

phần tử nghịch đảo của a kí hiệu : a1 mod N

Điều quan trọng cần lưu ý ở đây là 1

mod

aN tồn tại khi và chỉ khi a và

N nguyên tố cùng nhau, tức là ước chung lớn nhất của chúng bằng 1:

Nếu ( ,a N) 1 thì sẽ không có nghiệm nguyên x, k cho phương trình này,

do đó không có nghịch đảo của a theo modN

Một thủ tục rất quan trọng cho các thuật toán mã công khai về đồng dư là

modulo lũy thừa Cho các số nguyên b, e, N giả sử ta muốn tính số nguyên c

Trang 12

khả thi cho các giá trị e lớn Sau đây, tôi xin giới thiệu một phương pháp

khác, hiệu quả hơn:

Thuật toán 1: Cho các số nguyên b, e, N để tính modulo lũy thừa

(mod )

e

cb N ta tiến hành như sau:

1 Viết e dưới dạng biểu diễn nhị phân của nó : (e m1,e m2, , ,e e1 0 2) sao

Độ phức tạp của thuật toán là O m( )O(log( ))e

Định nghĩa 5: Cho số nguyên a và số nguyên N sao cho (a, N) = 1, bậc của a

theo modulo N, được kí hiệu o N( )a , là số nguyên dương k nhỏ nhất sao cho:

1 mod

k

Định nghĩa 6: Cho số nguyên q và số nguyên n, ta nói q là đồng dư bậc 2 theo

modulo n, nếu tồn tại số nguyên x sao cho:

trong đó, p là số nguyên tố và a là số nguyên bất kỳ khác bội của p, tức là

gcd( , )a p 1 , hay với mọi số nguyên tố p và số nguyên a không là bội của

p, ta luôn có

mod

p

aa p

Trang 13

Công thức trên luôn đúng, nếu p là số nguyên tố, còn a là số nguyên dương nhỏ hơn p

Ví dụ1: Vì 5 và 7 là các số nguyên tố Và 2 và 3 không là bội tương ứng của 7

và 5, nên theo định lý Ferma ta có

Kết quả trên được dùng trong mã khoá công khai Nó cũng được sử

dụng để kiểm tra tính nguyên tố của một số nguyên p nào đó, bằng cách lấy ngẫu nhiên các số a và kiểm tra xem có tính chất nêu trên không, kết luận là p

nguyên tố càng thuyết phục nếu phép thử trên đúng với nhiều lần chọn ngẫu

nhiên các số a

1.1.3 Định lí phần dư Trung Hoa

Tính toán theo modulo số lớn:

Để tính A mod M, với M khá lớn và A là biểu thức số học nào đó Trước

hết ta cần tính tất cả aiA mod mi Sau đó sử dụng công thức:

1

mod

k

i i i

Trang 14

8 8 8

Vậy 17 mod 778 (2.22 4.56) mod 77 268mod 77 37

Giải hệ phương trình modulo:

Cho n số nguyên a a1, 2, ,a và n p p1, 2, ,p đôi một nguyên tố cùng n

nhau Đặt

1

n i i

Định nghĩa 7: Cho n ≥1 ( )n được định nghĩa là số các số nguyên nhỏ hơn n

và nguyên tố cùng nhau với n hàm ( )n được gọi là hàm phi Euler

Trang 15

ma ima j mod n, do đó am am1, 2, ,am( )n là một hoán vị theo modn

của m m1, 2, ,m( )n Suy ra:

Giản ước đồng dư thức ta được: a( )n 1 modn đccm

1.1.5 Kiểm tra tính nguyên tố

Giả sử cần phải tìm một số nguyên tố rất lớn Lấy ngẫu nhiên một số đủ lớn, ta cần phải kiểm tra xem số đó có phải là số nguyên tố không Phương pháp truyền thống là thử bằng phép chia như sau:

 Chia cho tất cả các số (chỉ cần nguyên tố) nhỏ hơn hoặc bằng căn bậc hai của số đó Nếu nó không chia hết cho số nào, thì đó là số nguyên tố

 Chỉ hiệu quả khi xét các số nhỏ

Trang 16

Có phương pháp khác, mà ta sẽ xét ở đây, sử dụng các phép kiểm tra tính nguyên tố thống kê dựa trên các tính chất:

 Mà mọi số nguyên tố phải thỏa mãn;

 Nhưng có một số số không nguyên tố, gọi là giả nguyên tố cũng thoả mãn tính chất đó

Cụ thể là phép kiểm tra dựa trên định lý Ferma như sau: nếu số n cần kiểm tra là số nguyên tố, thì nó sẽ thỏa mãn định lý Ferma đối với mọi số a nhỏ

được chọn Sau mỗi lần qua được phép thử, xác suất để n là số nguyên tố lại tăng lên Chú ý rằng

 nếu modb i n1, thì b2imodn1 mod2 n1

 nếu modb i n n 1, thì b2imodn(n1) mod2 n

a  , ta tính a q , sau đó bình phương liên tiếp k lần Cụ thể

thuật toán thể hiện ở phần sau

* Thuật toán Miller – Rabin

Thuật toán như sau:

TEST (n) is:

1 Find integers k, q, k > 0, q odd, so that (n 1) 2 k q

2 Select a random integer a, 1  a n 1

3 if a q(mod ) 1nthen return (“maybe prime");

4 for j = 0 to k – 1 do

Trang 17

5 if(a2 j qmodn n 1)

then return(" maybe prime ")

6 return ("composite")

Các xem xét về mặt xác suất

Nếu thuật toán Miller - Rabin trả về số “composite” thì số đó chắc chắn

không là số nguyên tố, vì khi đó số n và số a n không thoả mãn định lý Ferma, tức là 1

n

Ngược lại số đó có thể là số nguyên tố hoặc giả nguyên tố theo nghĩa nó

thoả mãn định lý Ferma với số a n Người ta chứng minh được rằng xác

suất để số giả nguyên tố đó không là số nguyên tố là là 1/4 Suy ra nếu lặp t phép thử với các lựa chọn ngẫu nhiên khác nhau của số a, thì khi đó xác suất

1.1.6 Phân số tiếp diễn

Sự khai triển phân số tiếp diễn của số nguyên x là phép biểu diễn như bộ

1111

1

n

x a

a a

với hệ số a là số nguyên không âm và các hệ số 0 a1, , , an là nguyên

dương Nếu x là số hữu tỉ thì số các hệ số a là hữu hạn i

Trang 18

Phân số tối giản t

d là một trong những hội tụ của khai triển liên phân số của e

N

1.2 Các bài toán khó liên quan đến hệ mật mã khóa công khai

1.2.1 Bài toán phân tích số nguyên thành thừa số nguyên tố

Cho số nguyên dương n, tìm tất cả các ước số nguyên tố của nó, hay là

tìm dạng phân tích chính tắc của 1 2

1 2 k

k

nppp , trong đó p là các số i

nguyên tố đôi một khác nhau và i 1

Bài toán này có liên hệ mật thiết với các bài toán kiểm tra tính nguyên

tố của một số nguyên, nhưng với những gì mà ta biết đến nay, nó dường như khó hơn nhiều so với bài toán kiểm tra tính nguyên tố

1.2.2 Bài toán thặng dư bậc hai

Định nghĩa8: Ký hiệu Legendre được định nghĩa như sau:

Nếu p là số nguyên tố lẻ và a là một số tự nhiên thì kí hiệu Legendre a

p

 

 

  là:

0 nếu p chia hết cho a;

1 nếu a là thặng dư bậc hai theo mod p

 1 nếu a không là thặng dư bậc 2 theo mod p

Định nghĩa9: Ký hiệu Jacobi được định nghĩa như sau:

Trang 19

trong đó tất cả các kí hiệu bên vế bên phải là kí hiệu Legendre

Cho một số nguyên n lẻ là hợp số và một số nguyên a ϵ Jn, tập tất cả

các số a có kí hiệu Jacobi Hỏi a có thặng dư bậc hai theo mod n hay không

Trong lý thuyết mật mã, bài toán này cũng thường được xét với trường

hợp n là số nguyên Blum, tức n là tích của 2 số nguyên tố p và q Ta chú ý rằng trong trường hợp này, nếu a ϵ Jn, thì a là thặng dư bậc hai theo mod n,

điều này có thể thử được dễ dàng vì nó tương đương với điều kiện

( 1)/2

1 mod

p

a   p Như vậy, trong trường hợp này bài toán thặng dư bậc hai

có thể qui dẫn trong thời gian đa thức về bài toán phân tích số nguyên Mặt khác, nếu không biết cách phân tích n thành thừa số nguyên tố thì cho đến nay, không có cách nào giải được bài toán thặng dư bậc hai trong thời gian đa thức Điều đó củng cố niềm tin rằng bài toán thặng dư bậc hai và bài toán phân tích số nguyên tố là có độ khó tương đương nhau

1.2.3 Bài toán tìm căn bậc hai mod n

Cho một số nguyên lẻ n là hợp số Blum và một số a ϵ Qn, tức a là một

thặng dư bậc hai theo mod n Hãy tìm một căn bậc hai của a theo mod n, tức là tìm x sao cho x2 a mod n

Nếu phân tích được n thành thừa số nguyên tố n=pq, thì bằng cách giải

các phương trình 2

mod

xa px2 a mod q, rồi sau đó kết hợp nghiệm của chúng lại theo định lý số dư Trung Hoa ta sẽ được nghiệm của phương trình x2 a mod n Người ta đã tìm được một số thuật toán tương đối đơn giản (giải thuật trong thời gian đa thức) để giải phương trình x2 a mod p

Trang 20

với p là số nguyên tố Như vậy, bài toán tìm căn bậc hai theo mod n có thể

quy dẫn trong thời gian đa thức về bài toán phân tích số nguyên Ngược lại,

nếu có thuật toán A giải bài toán tìm căn bậc hai theo mod n thì cũng có thể

xây dựng một thuật toán giải bài toán phân tích số nguyên như sau: Chọn

ngẫu nhiên một số x với gcd(x, n)=1 và tính ax2 mod n Dùng thuật

toán A cho a để tìm một căn bậc hai mod n của a Gọi căn bậc hai tìm được là

y nếu y x mod n thì phép thử coi như thất bại, còn nếu ngược lại, thì gcd

(x−y, n) chắc chắn là một ước số không tầm thường của n, cụ thể là p hay q

Vì n có 4 căn bậc hai mod n, nên xác xuất thành công ở mỗi lần thử là ½, do

đó số trung bình các phép thử để thu được một số p hay q của n là 2, từ đó ta

thu được một thuật toán giải bài toán phân tích số nguyên Blum với thời gian trung bình đa thức Tóm lại, ta có thể xem hai bài toán phân tích số nguyên và

tìm căn bậc hai mod n là khó tương đương

1.2.4 Bài toán logarit rời rạc

Cho số nguyên tố p, một phần tử nguyên thủy α theo mod p (α là phần

tử nguyên thủy củaZ*p ,tức là bậc của a theo p bằng p1) và một phần tử

*

p

 Tìm số nguyên x(0   x p 2)sao cho x modp

Ta biết rằng cho đến nay chưa có một thuật toán thời gian đa thức nào cho bài toàn logarit rời rạc

Trang 21

Tóm tắt chương

Trong chương này tôi đã trình bày các vấn đề về cơ sở toán học của mật mã khóa công khai và một số bài toán khó có liên quan đến mật mã khóa công khai

Trong phần cơ sở toán học đã trình bày các vấn đề sau:

- Số học modulo

- Định lí Fermat nhỏ

- Định lí phần dư Trung Hoa

- Hàm  Euler

- Kiểm tra tính nguyên tố

- Phân số tiếp diễn

Trong mục các bài toán khó liên quan đến hệ mật mã khóa công khai tôi đã trình bày các bài toán sau:

- Bài toán phân tích số nguyên thành thừa số nguyên tố

- Bài toán thặng dư bậc hai

- Bài toán tìm căn bậc hai mod n

- Bài toán logarit rời rạc

Trang 22

Chương 2 : MỘT SỐ THUẬT TOÁN CỦA HỆ MÃ KHÓA

CÔNG KHAI

Thuật toán mật mã hóa công khai được thiết kế đầu tiên vào những năm

1970 và phát triển rất mạnh mẽ đến ngày nay Có rất nhiều thuật toán đã được phát triển và đánh giá cao như RSA, Diffie –Hellman, xác thực và chữ kí điện

tử

2.1 Hệ mật mã RSA

RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT (Trường Đại học Công nghệ Massachusetts) vào năm 1977 RSA là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay Nó dựa trên các phép toán lũy thừa trong trường hữu hạn các số nguyên theo modulo nguyên tố Cụ thể, mã hóa hay giải mã là các phép toán luỹ thừa theo modulo

số rất lớn Việc thám mã, tức là tìm khóa riêng khi biết khóa công khai, dựa trên bài toán khó là phân tích một số rất lớn đó ra thừa số nguyên tố Nếu không có thông tin gì, thì ta phải lần lượt kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ hơn căn của nó Đây là việc làm không khả thi

Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán, nên có thể coi lũy thừa là bài toán dễ Cần chú ý rằng ở đây ta sử dụng các số rất lớn khoảng 1024 bit, tức là cỡ 10350 Tính an toàn dựa vào độ khó của bài toán phân tích ra thừa số các số lớn Bài toán phân tích ra thừa số yêu cầu O(e log n log log n) phép toán, đây là bài toán khó

Mã công khai RSA gồm hai giai đoạn: khởi tạo khóa RSA và giai đoạn

Trang 23

e và d được gọi tương ứng là số mũ công khai và số mũ bí mật Số mũ này

thỏa mãn phương trình ed  1 k( )N , do đó nó được gọi là phương trình khóa

2.1.2 Khởi tạo khóa RSA

Mỗi người sử dụng A tạo một cặp khóa công khai – riêng như sau:

1 Đưa ra hai số nguyên tố lớn p,q

2 Tính N = pq và ( )N (p1)(q1)

3 Chọn e: ( , ( )) 1eN  và tính de1 mod ( ) N Để chọn được ethỏa

mã điều kiện đó thì ta chỉ cần chọn một số nguyên tố e'  max p q,

Chú ý: vai trò của e và d có thể thay đổi cho nhau, tức là có thể lấy e làm khóa mật, khi đó tính d nghịch đảo của e làm khóa công khai

4 Mọi người đều có khóa công khai: KU = < e, N > và hoàn toàn giữ bí mật khóa riêng: KR = < p, q, d, N >

2.1.3 Sử dụng RSA

Việc truyền tải thông tin được mô tả như sau: giả sử Alice muốn gửi một bản

tin rõ m ∈ M cho Bob Alice mã hóa m sử dụng khóa công khai của Bob

Trang 24

Sau đó, cô ấy gửi c cho Bob thông qua một kênh mở Bod nhận được c và giải mã nó bằng biệc sử dụng khóa riêng < d, N> của anh ấy:

Bob nhận được số 156 và tính M 156 modd n 156 mod 69797 207

 Cách sử dụng định lý phần dư Trung Hoa để giải mã cho nhanh như sau:

Tính 156 mod1797 3 mod1797 (3 ) 3mod178 12  ( 1) 3mod1712 3

Trang 25

Vậy M (493.2205.3) mod 697 207

2.1.4 An toàn của RSA

Trên thực tế có nhiều cách tấn công khác nhau đối với mã công khai RSA như sau:

Tìm kiếm khóa bằng phương pháp vét cạn, phương pháp này không khả thi với kích thước đủ lớn của các số hoặc tấn công bằng toán học dựa vào độ khó việc tính ( ) N bằng cách phân tích N thành hai số nguyên tố p và q hoặc

tìm cách tính trực tiếp ( ) N Trong quá trình nghiên cứu việc thám mã người

ta đề xuất kiểu tấn công thời gian trong khi giải mã, tức là căn cứ vào tốc độ

mã hóa và giải mã các mẩu tin cho trước mà phán đoán các thông tin về khóa Cuối cùng có những nghiên cứu tấn công RSA với điều kiện biết trước bản

mã cho trước Cụ thể như sau:

Bài toán phân tích

- Có các bước tiến chậm theo thời gian;

- Hiện tại cho rằng RSA 1024 hoặc 2048 là an toàn

Tấn công thời gian:

- Được phát triển vào giữa năm 1990;

- Paul Kocher chỉ ra rằng kẻ thám mã có thể xác định được khóa riêng nếu theo dõi thời gian máy tính cần để giải mã các bản tin

Trang 26

- Tấn công thời gian không chỉ áp dụng cho RSA, mà cả với các hệ

- RSA có điểm yếu với tấn công bản mã chọn trước;

- Kẻ tấn công chọn bản mã và đoán bản rõ được giải mã;

- Chọn bản mã cho việc khám phá RSA, cung cấp thông tin để thám mã;

2.2 Trao đổi khóa Diffie –Hellman

2.2.1 Yêu cầu

Trao đổi khóa Diffie Hellman là sơ đồ khóa công khai đầu tiên được đề xuất bởi Diffie và Hellman năm 1976 cùng với khái niệm khóa công khai Sau này được biết đến bởi James Ellis (Anh), người đã đề xuất bí mật năm 1970

mô hình tương tự Đây là phương pháp thực tế trao đổi công khai các khóa mật đối xứng Nó thúc đẩy việc nghiên cứu tìm ra các mã khóa công khai Sơ

đồ được sử dụng trong nhiều sản phẩm thương mại

Trao đổi khóa Diffie Hellman là sơ đồ trao đổi khóa mật đối xứng dùng khóa công khai có các đặc trưng sau:

 Không thể dùng để trao đổi mẩu tin bất kỳ

 Tuy nhiên nó có thể thiết lập khóa chung

 Chỉ có hai đối tác biết đến

 Giá khóa phụ thuộc vào các đối tác (và các thông tin về khóa công khai

và khóa riêng của họ)

 Dựa trên phép toán lũy thừa trong trường hữu hạn (chẳng hạn, modulo theo số nguyên tố) là bài toán dễ

Trang 27

 Độ an toàn dựa trên độ khó của bài toán tính logarit rời rạc (giống bài toán phân tích ra thừa số) là bài toán khó

2.2.2 Khởi tạo Diffie – Hellman

- Mọi người dùng thỏa thuận tham số chung:

Số nguyên tố rất lớn p

  là căn nguyên thủy của mod q

- Mỗi người dùng ( A chẳng hạn) tạo khóa riêng của mình:

2.2.3 Trao đổi khóa Diffie – Hellman

Sau bước khởi tạo khóa, giả sử hai người sử dụng A và B đã thông bào công khai cho nhau biết khóa công khai yAyB Khi đó mỗi người sử dụng

A và B có thể tự tính được khóa phiên dùng chung như sau:

 Khóa phiên dùng chung cho hai người sử dụng A, B là KAB

.

mod

A B

x x AB

mod

B

x A

Trang 28

 Kẻ thám mã cần biết khóa riêng của một trong hai người sử dụng, do

đó phải giải bài toán logarit rời rạc, tìmxA từ phương trình

mod

A

x A

y  q Đây là bài toán khó, nó là cơ sở an toàn cho thủ tục trao đổi khóa Diffie – Hellman

Ví dụ 7: Hai người sử dụng Alice và Bob muốn trao đổi khóa phiên:

Đồng ý chọn số nguyên tố: q 353 và  3

Chọn các khóa mật ngẫu nhiên:

A chọn xA  97; B chọn xB  233Tính các khóa công khai của A và B:

- Kiểm chứng danh tính và nguồn gốc: xem xét mẩu tin có đúng do người xưng tên gửi không hay một kẻ mạo danh nào khác gửi

Trang 29

- Không chối từ bản gốc: trong trường hợp cần thiết, bản thân mẩu tin chứa các thông tin chứng tỏ chỉ có người xưng danh gửi, không một ai khác có thể làm điều đó Như vậy người gửi không thể từ chối hành động gửi, thời gian gửi và nội dung của mẩu tin

2.3.2 Các hàm băm Hash

Mục đích

- Nén mẩu tin bất kỳ về kích thước cố định Và giả thiết là hàm hash là công khai và không dùng khóa Hash chỉ phụ thuộc mẩu tin, còn MAC phụ thuộc thêm cả vào khóa

- Hash được sử dụng để phát hiện thay đổi của mẩu tin Hash có thể sử dụng nhiều cách khác nhau với mẩu tin, Hash thường được kết hợp dùng để tạo chữ ký trên mẩu tin

Yêu cầu

- Có thể áp dụng cho mọi mẩu tin có kích thước tùy ý Tuy nhiên phải

tạo đầu ra h có kích thước cố định, thường là 128 bit đến 1024 bit

- Dễ tính hH M( )cho mọi mẫu tin M, hàm H tính toán nhanh, hiệu quả phụ thuộc chặt vào mẩu tin M và không tính toán ngược lại

- Cho trước h rất khó tìm đượcx sao cho H x( )h Tính chất này gọi là tính chất một chiều, chiều tìm nghịch ảnh rất khó khăn, tuy chiều tìm ảnh lại dễ dàng

Trang 30

- Cho x không thể tìm được y sao cho H y( ) H x( ) Đây là tính chất chống đỡ va chạm yếu, không tìm được mẩu tin có cùng Hash với mẩu tin đã cho

- Và không thể tìm được x, y sao cho H y( ) H x( ) Đây gọi là tính chất chống đỡ va chạm mạnh, đây là yêu cầu cao hơn tính chống đỡ va chạm yếu

Giới thiệu thuật toán Hash an toàn SHA ( Secure Hash Algorithm)

SHA có nguồn gốc từ Viện chuẩn công nghệ quốc gia Hoa Kỳ - NIST

& NSA vào năm 1993, sau đó được nâng cấp vào 1995 theo chuẩn US và chuẩn là FIPS 180-1 1995 và Internet RFC3174, được nhắc đến như SHA-1

Nó được sử dụng với sơ đồ chữ ký điện tử DSA (Digital Signature Algorithm)

Thuật toán là SHA dựa trên thiết kế MD4 với một số khác biệt tạo nên giá trị Hash 160 bit Các kết quả nghiên cứu 2005 về an toàn của SHA-1 đề xuất sử dụng nó trong tương lai

Viện chuẩn công nghệ quốc gia NIST xuất bản bản sửa FIPS 180-2 vào năm 2002, đề nghị bổ sung ba phiên bản mới của SHA: SHA-256, SHA-384, SHA-512 Các phiên bản trên được thiết kế tương thích với việc tăng độ an toàn được cung cấp bởi chuẩn mã nâng cao AES Về cấu trúc và chi tiết giống SHA-1, suy ra việc phân tích cũng tương tự, nhưng mức độ an toàn cao hơn

nhiều so với SHA-1

2.4 Chữ kí điện tử

Chữ ký điện tử của một người sử dụng trên một mẩu tin tại một thời điểm xác định được xem như nén mẩu tin về một kích thước cố định và được xác thực Nó cung cấp các khả năng để

 Kiểm chứng tác giả, ngày và giờ ký;

 Xác thực nội dung mẩu tin;

Trang 31

 Được kiểm chứng bởi bên thứ ba để chống từ chối

Vì vậy việc tạo chữ ký điện tử bao gồm việc sử dụng một hàm băm bản tin và một hàm xác thực có một số khả năng bổ sung như nhận bản băm, thông tin mật của người ký, một số thông tin ngẫu nhiên đặc trưng cho thời điểm ký để tạo ra chữ ký điện tử đính kèm mẩu tin

Đồng thời thuật toán cũng hỗ trợ người nhận kiểm tra chữ ký điện tử kèm với mẩu tin đó

2.4.1 Các tính chất của chữ kí điện tử

 Cần phải phụ thuộc vào nội dung ký

 Cần sử dụng thông tin đặc trưng duy nhất đối với người gửi

Để chống cả giả mạo và từ chối

 Cần phải tương đối dễ dàng tạo ra

 Dễ dàng đoán nhận và kiểm chứng

 Không thể tính toán giả mạo được

- Với bản tin mới và chữ kí đã có

- Với chữ kí giả mạo cho một bản tin

 Có thể lưu trữ chữ kí điện tử

Chữ kí điện tử RSA: chẳng hạn khi A muốn tạo chữ ký RSA, A băm thông

điệp, rồi mã hóa nó bằng khóa riêng của A và đính kèm với thông điệp gửi cho B Người S muốn kiểm tra thông điệp có toàn vẹn không và có phải gửi

từ A không, sẽ băm thông điệp nhận được, đồng thời giải mã bản băm đính kèm với thông điệp bằng khóa công khai của A Và so sánh hai kết quả nhận được ở bước trước, nếu chúng trùng nhau, thì thông điệp không bị sửa và đúng là do A gửi

2.4.2 Chuẩn chữ kí điện tử (DSS)

 Chính phủ Mỹ ủng hộ sơ đồ chữ ký điện tử FIPS 186

 Sử dụng thuật toán hash SHA

Trang 32

 DSS là chuẩn và DSA là thuật toán

 Có phương án cải biên Elgamal và Schnorr

 Tạo 320 bit chữ ký và độ an toàn 512-1024 bit an toàn

An toàn phụ thuộc vào độ khó của tính logarit rời rạc

Sinh khóa DSA

 Chia sẻ giá trị khóa công khai tổng thể ( , , )p q g :

- Số nguyên tố lớn p2L ở đó L512đến 1024 bit và là bội của 64;

- Chọn q là số nguyên tố 160 bit và là ước của p1;

Để ký mẩu tin M người gửi trước hết cần:

 Sinh khóa chữ ký ngẫu nhiên : k kp k, phải là số ngẫu nhiên, được xóa sau khi dùng và không bao giờ dùng lại;

Trang 33

2.5 Tính an toàn của các sơ đồ khóa công khai

Cũng giống như khóa riêng việc tìm kiếm vét cạn luôn luôn có thể, tức

là khi biết một trong hai khóa và thuật toán mã hóa về nguyên tắc ta có thể dò tìm khóa thứ hai bằng cách tính toán các giá trị liên quan Nói chung khối

Ngày đăng: 24/08/2016, 12:46

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trần Văn Dũng, (2014), Bài giảng An toàn và bảo mật thông tin, Trường Đại học Giao thông vận tải Sách, tạp chí
Tiêu đề: Bài giảng An toàn và bảo mật thông tin
Tác giả: Trần Văn Dũng
Năm: 2014
[2] Filip da Costa Boucinha, (2011), A Survey of Cryptanalytic Attacks on RSA, Universidade Técnica de Lisboa Sách, tạp chí
Tiêu đề: A Survey of Cryptanalytic Attacks on RSA
Tác giả: Filip da Costa Boucinha
Năm: 2011
[3] Dan Boneh, (1999), Twenty Years of Attacks on RSA Cryptosystem, American Mathematical Society Sách, tạp chí
Tiêu đề: Twenty Years of Attacks on RSA Cryptosystem
Tác giả: Dan Boneh
Năm: 1999
[4] S.M van den Broek, (1999),Digital signatures and the Public Key infrastrucre, Department of Econometrics Faculty of Economics Erasmus University Rotterdam Sách, tạp chí
Tiêu đề: Digital signatures and the Public Key infrastrucre
Tác giả: S.M van den Broek
Năm: 1999
[5] Paul Krzyzanowski, (2009), Cryptographic communication and authentication, Rutgers University Sách, tạp chí
Tiêu đề: Cryptographic communication and authentication
Tác giả: Paul Krzyzanowski
Năm: 2009
[6] David J.C. MacKay, (2005), Information Theory , Inference and Learning Algorithms, Cambridge University Press Sách, tạp chí
Tiêu đề: Information Theory , Inference and Learning Algorithms
Tác giả: David J.C. MacKay
Năm: 2005
[7] Edward Schaefer, (2008), An introduction to Cryptography and Cryptanalysis, Santa Clara University Sách, tạp chí
Tiêu đề: An introduction to Cryptography and Cryptanalysis
Tác giả: Edward Schaefer
Năm: 2008
[8] Nigel Smart, (2001), Cryptography : An Introduction, University of Bristol Sách, tạp chí
Tiêu đề: Cryptography : An Introduction
Tác giả: Nigel Smart
Năm: 2001
[9] William Stallings, (2011), Cryptography and Network security principles and practice, Pearson Education, Inc Sách, tạp chí
Tiêu đề: Cryptography and Network security principles and practice
Tác giả: William Stallings
Năm: 2011

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w