40
GV. Lê Đắc Nhường An toàn thông tin Information Sercurity CHƯƠNG 2 Lê Đắc Nhường Khoa Toán Tin - Trường Đại học Hải Phòng E-mail: [email protected] Cell Phone: 0987.394.900 CƠ SỞ TOÁN HỌC CỦA LÝ THUYẾT MẬT MÃ

Chương 2 - Cơ sở toán học của lý thuyết mật mã

Embed Size (px)

DESCRIPTION

Lê Đắc Nhường - Đại học hải Phò[email protected]

Citation preview

Page 1: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

An toàn thông tinInformation Sercurity

CHƯƠNG 2

Lê Đắc Nhường

Khoa Toán Tin - Trường Đại học Hải PhòngE-mail: [email protected]

Cell Phone: 0987.394.900

CƠ SỞ TOÁN HỌC CỦA LÝ THUYẾT MẬT MÃ

Page 2: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Nội dung chương 2

2.1 Lý thuyết số

2.1.1 Khái niệm đồng dư modulo

2.1.2 Định nghĩa số học modulo

2.1.3 Phần tử nghịch đảo

2.1.4 Khái niệm nhóm

2.1.5 Bài toán Logarit rời rạc

2.2 Lý thuyết về độ phức tạp tính toán

2.3 Hàm một phía và hàm cửa sập một phía

Page 3: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.1 Lý thuyết số

2.1.1 Khái niệm đồng dư modulo

Giả sử a và b là các số nguyên và m là một số nguyên dương.

Khi đó ta viết ab(mod m) nếu m chia hết cho b-a.

Mệnh đề ab(mod m) được gọi là “a đồng dư với b theo mođun m”.

Page 4: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.1.1 Khái niệm đồng dư modulo

Giả sử chia a và b cho m và ta thu được thương nguyên và phần

dư, các phần dư nằm giữa 0 và m-1. Nghĩa là:

a = q1m + r1 và b = q2

m + r2

trong đó 0r1m-1 và 0r2m-1.

Khi đó có thể dễ dàng thấy rằng:

a b(mod m) khi và chỉ khi r1 = r2

Page 5: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ta sẽ dùng ký hiệu a mod m để xác định phần dư khi a được chia

cho m (chính là giá trị r1 ở trên).

Như vậy: ab(mod m) khi và chỉ khi:

(a mod m) = (b mod m). Nếu thay giá trị của a bằng giá trị (a mod m) thì ta nói a được rút

gọn theo modulo m.

2.1.1 Khái niệm đồng dư modulo

Page 6: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ví dụ:

2 ≡ 5 mod 3 với a=2, b=5, m=3

3 chia hết cho (5-2)

2 = 0*3 + 2

5 = 1*3 +2

Khi đó nói: 2 đồng dư với 5 theo modulo 3

2.1.1 Khái niệm đồng dư modulo

Page 7: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Chú ý:

Nhiều ngôn ngữ lập trình của máy tính xác định a mod m là

phần dư trong dải -m+1,…,m-1 có cùng dấu với a.

Ví dụ -18 mod 7 = –4,

Giá trị này khác với giá trị 3 là giá trị được xác định theo công

thức trên (vì phần bù: 7 – 4 = 3)

Tuy nhiên, để thuận tiện ta sẽ xác định a mod m luôn là một

số không âm

2.1.1 Khái niệm đồng dư modulo

Page 8: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Định nghĩa số học mođun m:

Zm được coi là tập hợp {0,1,…,m-1} có trang bị hai phép toán

cộng và nhân.

Việc cộng và nhân trong Zm được thực hiện giống như cộng và

nhân các số thực ngoại trừ một điểm là các kết quả được rút

gọn theo mođun m.

2.1.2 Định nghĩa số học modulo

Page 9: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ví dụ:

Z26 được coi là tập hợp {0,1, 2…,25} có trang bị hai phép toán

cộng và nhân.

25+7 = 32 mod 26 = 6 ( ví dụ K=7, ‘Z’ ‘H’)

5*9 = 45 mod 26 = 19

2.1.2 Định nghĩa số học modulo

Page 10: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Định lý về đồng dư thức

Đồng dư thức ax b (mod m) chỉ có một nghiệm duy nhất x Zm

với mọi bZm khi và chỉ khi UCLN(a,m) =1.

Chứng minh:

Ta giả sử rằng, UCLN(a,m) = d >1.

Với b = 0 thì đồng dư thức ax0 (mod m) sẽ có ít nhất hai nghiệm

phân biệt trong Zm là x = 0 và x = m/d.

2.1.2 Định nghĩa số học modulo

Page 11: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ví dụ 1: a=7, b=5, m=11

Đồng dư thức 7x 5 (mod 11) , kiểm tra: UCLN(7, 11) =1

Có một nghiệm duy nhất x=7 vì 7*7 mod 11 = 49 mod 11 = 5

Để giải phương trình đồng dư thức áp dụng công thức sau:

7x – 5 phải chia hết cho 11

Ví dụ 2: giải phương trình 5x 7 mod 11

KQ x=8

2.1.2 Định nghĩa số học modulo

Page 12: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Khái niệm phần tử nghịch đảo

Giả sử a Zm.

Phần tử nghịch đảo (theo phép nhân) của a là phần tử a-1 Zm

sao cho:

aa-1 a-1a1 (mod m)

2.1.3 Phần tử nghịch đảo

Page 13: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Tính chất

a có nghịch đảo theo mođun m khi và chỉ khi UCLN(a,m) = 1,

Nếu nghịch đảo tồn tại thì phải là duy nhất.

Nếu b = a-1 thì a = b-1.

Nếu m là số nguyên tố thì mọi phần tử khác không của Zm

đều có nghịch đảo.

2.1.3 Phần tử nghịch đảo

Page 14: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Thuật toán Euclide tìm phần tử nghịch đảo

Cho hai số tự nhiên a,n.

Ký hiệu

(a, n) là ước số chung lớn nhất của a,n;

(n) là số các số nguyên dương n và nguyên tố với n.

Giả sử n a.

Thuật toán Euclide tìm UCLN (a,n) được thực hiện bằng một

dãy các phép chia liên tiếp sau đây

2.1.3 Phần tử nghịch đảo

Page 15: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Thuật toán UCLN (a, n)

Đặt r0 = n, r1 = a,

r0 = q1r1 + r2 , 0 r2 r1

r1 = q2r2 + r3 , 0 r3 r2

………………………

rm-2 = qm-1rm-1 + rm , 0 rm rm-1

rm-1 = qmrm

Thuật toán phải kết thúc ở một bước thứ m nào đó. Ta có:

(n,a) = (r0,r1) = (r1,r2) = …… = (rm-1,rm) = rm

2.1.3 Phần tử nghịch đảo

Page 16: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Mở rộng thuật toán để tìm phần tử nghịch đảo

Vậy ta tìm được rm = (n,a). Mở rộng thuật toán Euclide bằng cách

xác định thêm dãy số t0, t1,…,tm :

t0 = 0,

t1 = 1,

tj = tj-2 – qj-1tj-1 mod r0 , nếu j 2 ,

ta dễ chứng minh bằng qui nạp rằng: rj tjr1 (mod r0)

Do đó, nếu (n,a) = 1, thì tm = a-1 mod n

2.1.3 Phần tử nghịch đảo

Page 17: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bước 1: Xây dựng bảng (gồm 6 cột) như sau:

Trên mỗi dòng, ta có: r0 = r1 q + r2

Bước 2: Điền giá trị vào dòng đầu tiên r0 = n, r1 = a, t0 = 0, t1 = 1

Dòng r0 r1 r2 q t0 t1

Dòng r0 r1 r2 q t0 t1

0 n a 0 1

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 18: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bước 3: Trên dòng i đang xét, tính giá trị

r2 = r0 mod r1,

q = r0 / r1

Dòng r0 r1 r2 q t0 t1

… … … … … … …

i r0 mod r1 r0 / r1

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 19: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bước 4: Tính giá trị t1 (của dòng i) từ giá trị q, t0 và t1 của dòng i-1.

Dòng r0 r1 r2 q t0 t1

… … … … … … …

i -1 X Y Z

i Y-XZ mod n

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 20: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bước 5: Trên dòng i đang xét:

Nếu r2 = 0 thì:

Nếu r1= 1 thì giá trị t1 (của dòng đang xét) là phần tử nghịch đảo của a

trong Zn

Ngược lại (tức là r1 1) thì không tồn tại phần tử nghịch đảo của a

trong Zn. Rõ ràng trường hợp này chỉ xảy ra khi USCLN(a, n) 1

Chấm dứt thuật toán

Ngược lại (tức là r2 0) thì sang bước 6Dòng R0 r1 r2 q t0 t1

… … … … … … …

i r1= 1? r2 = 0?

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 21: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bước 6: Sao chép giá trị sang dòng tiếp theo theo quy tắc dưới đây, sau đó, trở lại bước 3:

Dòng r0 r1 r2 q t0 t1

i

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 22: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Y- (X*Z) Mod n= 0 –(4*1) mod 101=0-4 mod 101 = 97

Page 23: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 24: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.1.3 Phần tử nghịch đảo – Thuật toán Euclide mở rộng

Page 25: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Khái niệm nhóm

Nhóm là một cặp (G,*) trong đó G là tập hợp khác rỗng và * là

phép toán hai ngôi trên G thỏa mãn ba điều kiện sau:

Có tính kết hợp:(x*y)*z=x*(y*z) với mọi x,y,z G

Có phần tử trung lập eG: x*e=e*x=x với mọi

xG

Với mọi xG, có phần tử nghịch đảo x’G:

x*x’=x’*x=e

2.1.4 Khái niệm nhóm

Page 26: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Khái niệm nhóm Cyclic

Nhóm G được gọi là nhóm Cyclic nếu nó được sinh ra bởi một

trong các phần tử của nó. Tức là có phần tử gG mà mọi phần

tử aG đều tồn tại số nN để gn=a.

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

của nhóm G.

Khi đó nhóm Cyclic còn có định nghĩa khác

Nhóm G được gọi là nhóm Cyclic nếu tồn tại số g sao cho mọi

phần tử trong G đều là một lũy thừa nguyên nào đó của g.

2.1.4 Khái niệm nhóm

Page 27: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ký hiệu Zn={0,1,2,…,n-1}. Tức là tập Zn là tập số nguyên không âm < n.

Tập này cùng với phép cộng lập thành nhóm Cyclic có phần tử sinh là

1. Đó là nhóm hữu hạn có cấp n.

Zn*={eZn, e là nguyên tố cùng nhau với n}.

Tức là e khác 0 và USCLN(e,n)=1.

Đó là tập các số nguyên dương <n và nguyên tố cùng nhau với n.

Zn* được gọi là tập thặng dư thu gọn theo mod n.

2.1.4 Khái niệm nhóm

Page 28: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bài toán Logarit rời rạc

Chúng ta sẽ bắt đầu bằng việc mô tả bài toán khi thiết lập môi

trường hữu hạn Zp, p là số nguyên tố.

Nhóm nhân Zp* là nhóm cyclic và phần tử sinh của Zp

* được gọi

là phần tử nguyên thủy

2.1.5 Bài toán Logarit rời rạc

Page 29: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Bài toán Logarit rời rạc

Đặc trưng của bài toán: I = (p,,) trong đó p là số nguyên tố, Zp là

phần tử nguyên thủy, Zp*

Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 a p-2 sao cho:

a (mod p)Ta sẽ xác định số nguyên:

a = log (mod p)

2.1.5 Bài toán Logarit rời rạc

Page 30: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Một vài vấn đề khác:

Thặng dư bậc hai và ký hiệu Ledendre

Thuật toán kiểm tra tính nguyên tố

Solovay_Strassen

Solovay_Strassen (cải tiến bởi Lehmann)

Sinh viên tự nghiên cứu tài liệu

Page 31: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Phân loại bài toán

2.2 Lý thuyết về độ phức tạp tính toán

Các Bài toán

Bài toán chưa có lời giải

Bài toán đã có lời giải

Bài toán không giải được

Bài toán giải được

Bài toán “dễ“ giải

Bài toán “khó” giải

Page 32: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Lý thuyết thuật toán và các hàm tính ra đời từ những năm 30 đã đặt nền

móng cho các nghiên cứu về các vấn đề “tính được”, “giải được”, và

đã thu được nhiều kết quả rất quan trọng.

Nhưng từ cái “tính được” một cách trừu tượng, tiềm năng đến việc tính

được trong thực tế của khoa học tính toán bằng máy tính điện tử là một

khoảng cách rất lớn.

Lý thuyết về độ phức tạp tính toán được nghiên cứu bắt đầu từ những

năm 60 đã bù đắp cho khoảng trống đó, cho ta nhiều tri thức cơ bản,

đồng thời có nhiều ứng dụng thực tế rất phong phú.

2.2 Lý thuyết về độ phức tạp tính toán

Page 33: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Độ phức tạp (về không gian hay thời gian) của một quá trình tính toán là số

ô nhớ hay số các phép toán được thực hiện trong quá trình tính toán đó.

Độ phức tạp tính toán của một thuật toán: được hiểu là một hàm số f, sao

cho với mỗi n, f(n) là là số ô nhớ hay số các phép toán tối đa mà thuật toán

thực hiện quá trình tính toán của mình trên các dữ liệu vào có độ lớn n.

Độ phức tạp tính toán của một bài toán (của một hàm) được định nghĩa là

độ phức tạp của một thuật toán tốt nhất có thể tìm được để giải bài toán (hay

tính hàm) đó

2.2 Lý thuyết về độ phức tạp tính toán

Page 34: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Các lớp phức tạp

P (Polynomial) là lớp các bài toán có độ phức tạp thời gian là đa thức (tức

lớp các bài toán mà đối với chúng có thuật toán giải bài toán đó trong thời

gian đa thức).

NP là lớp các bài toán mà đối với chúng có thuật toán không đơn định để

giải trong thời gian đa thức. Thuật toán không đơn định là một mô hình tính

toán trừu tượng, được giả định là sau mỗi bước có thể có một số hữu hạn

bước được lựa chọn đồng thời tiếp sau.

2.2 Lý thuyết về độ phức tạp tính toán

Page 35: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Các lớp phức tạp

Nhiều bài toán được chứng tỏ là thuộc lớp NP, nhưng chưa ai chứng minh

được là chúng thuộc lớp P hay không. Và một vấn đề cho đến nay vẫn còn

mở, chưa có lời giải là: NP = P ?

Một cách trực giác, lớp NP bao gồm các bài toán khó hơn phức tạp hơn các

bài toán thuộc lớp P, nhưng điều có vẻ hiển nhiên trực giác đó vẫn chưa

được chứng minh hay bác bỏ.

2.2 Lý thuyết về độ phức tạp tính toán

Page 36: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Các lớp phức tạp

Giả sử NP P, thì trong NP có một lớp con các bài toán được gọi là NP-

Complete, đó là những bài toán mà bản thân thuộc lớp NP, và mọi bài toán

bất kỳ thuộc lớp NP đều có thể qui dẫn về bài toán đó bằng một hàm tính

được trong thời gian đa thức.

Cho đến nay, người ta đã chứng minh được hàng trăm bài toán thuộc nhiều

lĩnh vực khác nhau là NP_đầy đủ. Bài toán đồng dư bậc hai kể trên là

NP_đầy đủ, bài toán hợp số không là NP_đầy đủ, nhưng chưa tìm được một

thuật toán làm việc trong thời gian đa thức giải nó

NP-Hard là bài toán NP khó

2.2 Lý thuyết về độ phức tạp tính toán

Page 37: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.3 Hàm một phía và hàm cửa sập một phía

Hàm một phía

Hàm f(x) được gọi là hàm một phía, nếu:

Tính y = f(x) là dễ,

Nhưng việc tính ngược x = f-1(y) là rất khó.

Page 38: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

2.3 Hàm một phía và hàm cửa sập một phía

Ví dụ: Hàm f(x) = gx (mod p) (p là số nguyên tố, g là phần tử

nguyên thủy theo mođun p) là hàm một phía.

Biết x tính f(x) là khá đơn giản

Biết f(x) để tính x thì với các thuật toán đã biết hiện nay đòi hỏi

một khối lượng tính toán cỡ lớn (với máy tính mạnh nhất hiện

nay mất khoảng 3000 năm)

Page 39: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Hàm cửa sập một phía

Hàm f(x) được gọi là hàm cửa sập một phía, nếu:

Tính y = f(x) là dễ,

Tính x = f-1(y) là rất khó

Nhưng có cửa sập z để tính x = fz-1(y) là dễ

2.3 Hàm một phía và hàm cửa sập một phía

Page 40: Chương 2 - Cơ sở toán học của lý thuyết mật mã

GV. Lê Đắc Nhường

Ví dụ: n = pq là tích của hai số nguyên tố lớn,a là số

nguyên, hàm f(x)=xa(mod n) là hàm cửa sập một phía.

Nếu chỉ biết n và a thì tính x = f-1(y) là rất khó,

Nếu biết cửa sập, chẳng hạn hai thừa số của n,

thì sẽ tính được f-1(y) khá dễ

2.3 Hàm một phía và hàm cửa sập một phía