Tải bản đầy đủ (.pdf) (91 trang)

(LUẬN văn THẠC sĩ) phân tích đánh giá một số hệ mã hóa luận văn ths công nghệ thông tin 1 01 10

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.11 MB, 91 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


TRỊNH VIẾT CƯỜNG

PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ
HĨA

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN
PGS.TS.TRỊNH NHẬT TIẾN

Hà Nội - 2007

TIEU LUAN MOI download :


Để hồn thành đƣợc luận văn này, tơi xin đƣợc gửi lời cảm ơn chân thành đến
PGS, TS. Trịnh Nhật Tiến, ngƣời đã nhiệt tình hƣớng dẫn tơi hồn thành luận
văn cao học này.
Tôi cũng xin gửi lời cảm ơn chân thành đến các thầy cô, những ngƣời đã
giảng dạy tơi trong khóa học cao học 2004 – 2006, các đồng nghiệp bạn bè và
ngƣời thân đã nhiệt tình ủng hộ tạo điều kiện cho tơi hồn thành luận văn này.

Trang phụ bìa ……………………………………………………………

1

Lời cam đoan ……………………………………………………………..



2
3

TIEU LUAN MOI download :


Lời cảm ơn ……………………………………………………………….

3

Mục lục ……………………………………………………………………

4

Danh sách các ký hiệu, các chữ viết tắt …………………………………… 7
Lời mở đầu ………………………………………………………………..

8

Chƣơng 1: CƠ SỞ LÝ THUYẾT ………………………………………… 9
1.1.

SỐ HỌC CÁC SỐ NGUYÊN ………………………………. 9

1.1.1 Tính chia hết của các số nguyên………………………………...9
1.1.2 Đồng dƣ và phƣơng trình đồng dƣ tuyến tính………………... 12
1.1.3 Thặng dƣ thu gọn và phần tử nguyên thuỷ………………….. 13
1.2


XÁC SUẤT VÀ THUẬT TOÁN XÁC SUẤT……………… 15

1.2.1 Khái niệm xác suất ………………………………………

15

1.2.2 Tính bí mật hồn tồn của một hệ mật mã…………………. 15
1.2.3 Thuật toán xác xuất ………………………………………… 16
1.3

ĐỘ PHỨC TẠP TÍNH TỐN……………………………… 17

1.3.1 Khái niệm về độ phức tạp tính tốn ………………………… 17
1.3.2 Hàm một phía và Hàm một phía có cửa sập………………… 18
Chƣơng 2: MỘT SỐ PHƢƠNG PHÁP THÁM MÃ…………………….. 19
2.1. PHƢƠNG PHÁP THÁM MÃ………………………………………… 19
2.1.1. Thám mã chỉ biết bản mã …………………………………………… 19
2.1.2. Thám mã biết bản rõ ……………………………………………….. 20
2.1.3. Thám mã với bản rõ đƣợc chọn ……………………………………. 21
2.1.4. Thám mã với bản mã đƣợc chọn …………………………………… 23
2.2. TÍNH AN TỒN CỦA HỆ MÃ ……………………………………

28

2.2.1. An tồn một chiều (One – Wayness) ………………………….

28

2.2.2. An toàn ngữ nghĩa (Semantic Security) …………………………… 29
2.2.3. Tính khơng phân biệt đƣợc (Indistinguishability)(IND) …………..


31

2.2.4. An toàn ngữ nghĩa tƣơng đƣơng với IND ………………………… 34
2.2.5. Khái niệm an toàn mạnh nhất IND-CCA …………………………. 36
Chƣơng 3: PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ HỐ …………. 38
3.1. HỆ MÃ HOÁ RSA …………………………………………………… 38
4

TIEU LUAN MOI download :


3.1.1. Hệ mã RSA an tồn trƣớc các tấn cơng KPA, COA, CPA ………… 38
3.1.2. Hệ mã RSA không an tồn ngữ nghĩa ……………………………. 38
3.1.3. Hệ mã RSA khơng đạt an tồn trƣớc tấn cơng CCA ……………….. 39
3.1.4. Ứng dụng thực tế …………………………………………………… 39
3.2. HỆ MÃ HOÁ ELGAMAL …………………………………………..

40

3.2.1. ELGAMAL đảm bảo an toàn ngữ nghĩa ………………………….. 40
3.2.2. Hệ mã ELGAMAL an tồn trƣớc các tấn cơng KPA, COA, CPA .... 41
3.2.3. Hệ mã ELGAMAL khơng đạt an tồn trƣớc tấn cơng CCA ……… 41
3.3. HỆ MÃ HỐ CRAMER-SHOUP (1998) ……………………………. 42
3.3.1. Giả thuyết Decisionnal Diffie-Hellman …………………………… 42
3.3.2. Sơ đồ Hệ mã ……………………………………………………….. 43
3.3.3. Độ an toàn của hệ mã hoá …………………………………………. 45
3.3.4. Cài đặt hệ mã hoá …………………………………………………. 45
3.3.5. Hệ mã hố khơng dùng hàm băm ..................................................


46

3.4. HỆ MÃ HỐ LAI (Hybrid Encryption) ...........................................

47

3.4.1 Hệ mã hố KEM ............................................................................

47

3.4.2 Hệ mã hố SKE ............................................................................... 49
3.4.3 Hệ mã hố cơng khai lai (Hybrid public-key encryption) (HPKE) …. 54
3.5. HỆ MÃ HỐ OAEP (Optimal Aysmmetric Encryption Padding) ...... 58
3.5.1. Mơ hình máy tƣ vấn ngẫu nhiên (Random Oracle Model) ............... 58
3.5.2. An toàn Planitext – Awareness …………………………………….. 60
3.5.3. Lƣợc đồ OAEP …………………………………………………….. 62
3.5.4. Đánh giá lƣợc đồ ………………………………………………….. 64
Chƣơng 4: THỬ NGHIỆM CHƢƠNG TRÌNH MÃ HĨA……………..

70

1. CƠNG CỤ …………………………………………….. ..........

70

4.2. CÁC THÀNH PHẦN CỦA CHƢƠNG TRÌNH ……………

70

KẾT LUẬN ……………………………………………………………… 76

TÀI LIỆU THAM KHẢO ……………………………………………

78

5

TIEU LUAN MOI download :


DANH SÁCH CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
STT

Chữ viết tắt

Ý nghĩa

6

TIEU LUAN MOI download :


1



Phép Xor

2

||


Phép ghép hai chuỗi

3

CCA

Thám mã với bản mã được chọn
(Chosen ciphert attack)

4

CCA1

Thám mã với bản mã được chọn trước bất kỳ
(Non-adaptive chosen ciphertext attack)

5

CCA2

Thám mã với bản mã được chọn trước thích hợp
(Adaptive chosen ciphertext attack)

6

COA

Thám mã chỉ biết bản mã (Ciphertext only attack)


7

CPA

Thám mã với bản rõ được chọn
(Chosen plaintext attack)

8

DDH

Giả thuyết Decisionnal Diffie-Hellman

9

HPKE

Hệ mã hố cơng khai lai
(Hybrid public-key encryption)

10

IND

Tính khơng phân biệt được (Indistinguishability)

11

KEM


Máy đóng gói khoá (key encapsulation mechanism)

12

KPA

Thám mã biết bản rõ (Known plaintext attack)

13

MAC

Mã xác thực thông tin một lần
(one-time message authentication code)

14

OAEP

Optimal Aysmmetric Encryption Padding

15

PA

An toàn Planitext – Awareness

16

Pr


Xác suất

17

RO

Máy tư vấn ngẫu nhiên (Random Oracle)

18

SKE

Hệ mã hoá khoá đối xứng một lần
(one-time symmetric-key encryption scheme)

19

TCR

Họ hàm băm Target collision resistant

20

WPA

An toàn Weak plaintext – awareness

LỜI MỞ ĐẦU


7

TIEU LUAN MOI download :


Luận văn đã tổng hợp lại các phương pháp tấn công chủ yếu đối với hệ mã
hiện nay. Luận văn cũng đã trình bày một dạng tấn cơng mạnh nhất được biết đến
hiện nay là CCA2, dạng tấn công này đã có thật trong thực tế. Về bản chất các
dạng tấn cơng chính là “năng lực” mà thám mã có được, dạng tấn cơng càng mạnh
thì có nghĩa là “năng lực” của thám mã càng lớn.
Từ những gì xảy ra trong thực tế, các nhà lập mã đã giả thiết những tình
huống xấu nhất có thể xảy ra trong thực tế (tình huống xấu có nghĩa là thám
mã sẽ có được “năng lực” gì).
Đến nay tình huống xấu nhất có thể xảy ra mà các nhà lập mã trên thế
giới có thể nghĩ đến, đó là tình huống mà thám mã có máy tư vấn giải mã
(Oracle Decryption), tức là tương đương với phương pháp tấn công CCA2, và
quả thật tình huống này đã xảy ra trong thực tế, tất nhiên là với mức độ ít.
Cũng trong khn khổ luận văn, đã trình bày và đánh giá một số hệ mã
dưới những phương pháp tấn công trên. Và dưới những phương pháp tấn công
mạnh (như CCA2), các hệ mã thông dụng như RSA và Elgamal đã dễ dàng bị
phá.
Trên cơ sở đó, luận văn cũng trình bày hai hệ mã thơng dụng và có hiệu
quả nhất hiện nay là OAEP và Cramer Shoup, có thể chứng minh là an tồn
dưới phương pháp tấn công mạnh nhất là CCA2. Tất nhiên đi đơi với điều đó
là sự phức tạp và chi phí cho việc cài đặt các hệ mã này rất cao, đồng thời
cũng đang còn nhược điểm khi chứng minh tính bảo mật.
Với OAEP, phải xem hàm băm như một máy tư vấn ngẫu nhiên
(Random Oracle) trong chứng minh tính bảo mật.
Việc có hàm băm với tính chất như thế trong thực tế, đang còn được
nghiên cứu.

Còn đối với Cramer Shoup đó là tính an tồn, phải dựa trên giả thuyết
Decisionnal Diffie Hellman.
Để so sánh hai hệ mã, thì OAEP có ưu điểm là dựa trên giả thuyết tốn
học mạnh hơn là hàm một phía (RSA), cịn Cramer Shoup dựa trên giả thuyết
toán học yếu hơn Decisionnal Diffie Hellman (mặc dù cho đến nay vẫn chưa
8

TIEU LUAN MOI download :


có một sự chứng minh cụ thể là cái nào mạnh hơn cái nào), nhưng ngược lại
OAEP lại phải dựa vào mơ hình RO cịn đang gây nhiều tranh cải.
Tất nhiên là tuỳ theo yêu cầu thực tế của người dùng và tính chất thực
tế mà hệ mã phải đáp ứng, người sử dụng có thể chọn một hệ mã nào cho phù
hợp với u cầu của mình. Ví dụ chỉ để mã hố những thơng tin khơng mang
tính quan trọng, thì khơng nhất thiết phải dùng hệ mã cài đặt với chi phí tốn
kém như hai hệ mã trên. Có thể cài đặt những phiên bản đơn giản hơn của hai
hệ mã trên. Cramer Shoup cũng đã giới thiệu cách cài đặt đơn giản hơn, vẫn
đạt an toàn IND-CCA1 hoặc dùng hệ mã đơn giản và ít tốn kém hơn.
Và tất nhiên do tính khơng ngừng của phát triển mật mã, nên những
phương pháp tấn công ở trên và độ an toàn của các hệ mã được đánh giá, chỉ
là tương đối. Tương lai có thể phải xem xét đến mơ hình kẻ tấn cơng dùng đến
máy tính lượng tử.
Trên cơ sở đánh giá phân tích các hệ mã, luận văn chính là một biện pháp bảo
vệ an tồn thông tin.

Chƣơng 1: CƠ SỞ LÝ THUYẾT
9

TIEU LUAN MOI download :



1.1. SỐ HỌC CÁC SỐ NGUYÊN
Ta ký hiệu Z là tập các số nguyên và Z+ là tập các số nguyên không
âm. Trong mục này ta sẽ nhắc lại một số kiến thức về số học của các số
nguyên cần cho việc trình bày lý thuyết mật mã.
1.1.1. Tính chia hết của các số ngun
Tập Z là đóng kín đối với các phép cộng, trừ và nhân, nhưng khơng
đóng kín đối với phép chia. Vì vậy khi một số nguyên a chia cho một số
nguyên b được thương là một số nguyên q có một ý nghĩa rất đặc biệt, khi đó
ta nói a chia hết cho b, a là bội số của b, b là ước số của a, và ký hiệu là b|a.
Dễ thấy rằng 1 là ước số của mọi số nguyên, 0 là bội số của mọi số nguyên, và
moi số nguyên a là ước số, đồng thời là bội số của chính nó.
Số ngun d được gọi là ước số chung của hai số nguyên a và b nếu d|a
và d|b. Số nguyên d được gọi là ước số chung lớn nhất của a và b nếu d > 0, d
là ước số chung của a và b, và mọi ước số chung của a và b đều là ước số của
d. Ta ký hiệu ước số chung lớn nhất của a và b là gcd(a, b).
Dễ thấy rằng với mọi số nguyên dương a ta có gcd(a, 0) = a, ta cũng
quy ước là gcd(0, 0) = 0.
Số nguyên a > 1 được gọi là số ngun tố nếu a khơng có ước số nào
ngồi 1 và chính a. Số a là hợp số nếu không phải là nguyên tố.
Số nguyên n > 1 bất kỳ đều có thể viết dưới dạng:
n = p1α1. p2α2… pkαk
Trong đó p1, p2, …, pk là các số nguyên tố khác nhau, α1, α2, …, αk là
các số mũ nguyên dương. Nếu không kể thứ tự của các thừa số ngun tố thì
dạng biểu diễn đó là duy nhất, ta gọi đó là dạng khai triển chính tắc của n.

Định lý 1.1.
10


TIEU LUAN MOI download :


Nếu b > 0 và b|a thì gcd(a, b) = b.
Nếu a = bq + r thì gcd(a, b) = gcd(b, r).
Số nguyên m được gọi là bội số chung của a và b nếu m chia hết cho cả
a và b. Số m được gọi là bội số chung nhỏ nhất của a và b ký hiệu là lcm(a, b),
nếu m là bội số chung của a và b, và mọi bội số chung của a và b đều là bội
của m.
Với mọi số nguyên dương a và b ta có quan hệ
Lcm(a, b).gcd(a, b) = a.b
Thuật tốn Euclide tìm ước số chung lớn nhất:
INPUT: hai số ngun khơng âm a và b, với a ≥ b.
OUTPUT: ước số chung lớn nhất của a và b.
1.

While b > 0 do
Begin
r := a mod b;
a := b;
b := r;
End;

2.

Cho ra kết quả (a).

Ta biết rằng nếu gcd(a, b) = d, thì phương trình bất định
a.x + b.y = d
Có nghiệm nguyên (x, y), và một nghiệm nguyên như thế có thể tìm

được bởi thuật tốn Euclide mở rộng như sau:

Thuật toán Euclide mở rộng:
11

TIEU LUAN MOI download :


INPUT: hai số nguyên không âm a và b với a ≥ b.
OUTPUT: d = gcd(a, b) và hai số x, y sao cho a.x + b.y = d.
1.

Nếu b = 0 thì đặt d ← a, x ← 1, y ← 0, và cho ra (d, x, y).

2.

Đặt x2 = 1, x1 = 0, y2 = 0, y1 = 1.

3.

While b > 0 do
Begin
q := a div b ; r :=a mod b ;
x := x2 – qx1 ; y := y2 – qy1 ;
a := b ; b := r ;
x2 := x1 ; x1 := x ;
y2 := y1 ; y1 :=y ;
End ;

4.


Đặt d := a, x := x2, y := y2, và cho ra kết quả (d, x, y).

1.1.2. Đồng dƣ và phƣơng trình đồng dƣ tuyến tính
12

TIEU LUAN MOI download :


* Khái niệm Đồng dƣ:
Cho n là một số nguyên dương. Ta nói hai số nguyên a và b là đồng dư
với nhau theo modul n, và viết a ≡ b (mod n), nếu n|(a – b).
Cho a  Zn. Số nguyên x  Zn được gọi là nghịch đảo của a theo mod
n, nếu a.x ≡ 1 (mod n). Khi đó ta nói a là khả nghịch và ký hiệu x là a-1 mod n.
Ta định nghĩa phép chia trong Zn như sau:
(a : b) (mod n) = (a. b-1 )mod n.
Phép chia chỉ thực hiện được khi b là khả nghịch theo mod n.
* Phƣơng trình đồng dƣ tuyến tính :
Phương trình đồng dư tuyến tính có dạng :
a . x ≡ b (mod n).
Trong đó a, b, n là các số nguyên, x là ẩn số.
Phương trình đó có nghiệm khi và chỉ khi d = gcd(a, n)|b. Khi đó có
đúng d nghiệm theo mod n.
Ta xét hệ các phương trình đồng dư tuyến tính :
x1 ≡ a1 (mod n1)
x2 ≡ a2 (mod n2)
…………………..
xk ≡ ak (mod nk)
Ký hiệu: n = n1.n2…nk, Ni = n / ni.
Định lý 1.2. (định lý số dƣ Trung Quốc).

Giả sử các số nguyên n1 , n2…, nk là từng cặp nguyên tố với nhau. Khi
đó, hệ phương trình đồng dư tuyến tính trên có một nghiệm duy nhất theo mod
n là :
x = ∑i=1k ai . Ni . Mi mod n,
Trong đó Mi = Ni-1 mod ni (Có Mi vì Ni và ni nguyên tố với nhau).
1.1.3. Thặng dƣ thu gọn và phần tử nguyên thuỷ
13

TIEU LUAN MOI download :


1). Tập thặng dư thu gọn
Tập Zn = {0, 1, 2, …, n - 1} thường được gọi là tập các thặng dư đầy
đủ theo mod n, vì mọi số ngun đều có thể tìm được trong Zn một số đồng dư
với mình theo mod n. Tập Zn đóng đối với các phép cộng, trừ và nhân, nhưng
khơng đóng với phép chia.
Tập Z*n = { a  Zn : gcd(a, n) = 1}, tức Z*n là tập con của Zn bao gồm
tất cả các phần tử nguyên tố với n. Tập đó được gọi là tập các thặng dư thu
gọn theo mod n.
Mọi số nguyên nguyên tố với n đều có thể tìm thấy trong Z *n một đại
diện đồng dư với mình theo mod n. Chú ý rằng nếu p là số nguyên tố thì Z*p =
{1, 2, …, p – 1}.
Tập Z*n lập thành nhóm con đối với phép nhân của Zn, vì trong Z*n
phép chia theo mod n bao giờ cũng thực hiện được, Gọi Z*n là nhóm nhân của
Zn .
2). Khái niệm cấp của một phần tử
Ta gọi số các phần tử trong một nhóm là cấp của nhóm đó. Ký hiệu
θ(n) là số các số nguyên dương bé hơn n và nguyên tố với n. Như vậy Z *n có
cấp là θ(n). Nếu p là số ngun tố thì nhóm Z*p có cấp là p – 1.
Ta nói phần tử g  Z*n có cấp m, nếu m là số nguyên dương bé nhất sao

cho gm = 1 trong Z*n .
Theo một định lý trong Đại số, ta có m | θ(n). Vì vậy với mọi b  Z*n ta
ln có bθ(n) ≡ 1 mod n.

3). Phần tử nguyên thủy
14

TIEU LUAN MOI download :


Nếu p là số nguyên tố, thì do θ(p) = p – 1, ta có với mọi b  Z*p
bp-1 ≡ 1 (mod p)
Nếu b có cấp p – 1, thì các phần tử b, b2, …, bp-1 đều khác nhau và theo
mod p, chúng lập thành Z*p. Khi đó ta nói Z*p là nhóm cyclic và b là phần tử
sinh, hay phần tử nguyên thuỷ của nhóm đó.
Người ta đã chứng minh được tính chất sau:
1. Với mọi số nguyên tố p, Z*p là nhóm cyclic, có θ(p-1) phần tử nguyên thuỷ.
2. Nếu p – 1 = p1α1. p2α2… psαs là khai triển chính tắc của p – 1, và nếu:
ap-1/p1 ≡ 1 (mod p), …, ap-1/ps ≡ 1 (mod p),
thì a là phần tử nguyên thuỷ của Z*p theo mod p.
3. Nếu g là phần tử nguyên thuỷ theo mod p, thì β = g i mod p với mọi i mà
gcd(i, p – 1) = 1, cũng là phần tử nguyên thuỷ theo mod p.

1.2. XÁC SUẤT VÀ THUẬT TOÁN XÁC SUẤT
15

TIEU LUAN MOI download :


1.2.1. Khái niệm xác suất

Ta xét tập hợp Ω, được gọi là không gian các sự kiện sơ cấp (hay khơng
gian mẫu). Các phần tử của Ω có thể xem như các kết quả có thể có (và loại
trừ lẫn nhau) của một thực nghiệm nào đó. Ta chỉ xét các không gian rời rạc,
hữu hạn, Ω = {s1, s2, …, sn}.
Một phân bố xác suất P trên Ω được định nghĩa là tập các số thực
không âm P = {p1, p2, …, pn} có tổng ∑pi = 1. Số pi được gọi là xác suất của
sự kiện sơ cấp si.
Một tập con L của Ω được gọi là một sự kiện. Xác suất của sự kiện L
được định nghĩa bởi p(L) = ∑s  L p(s).
1.2.2.Tính bí mật hồn tồn của một hệ mật mã
Năm 1949, C. Shannon cơng bố cơng trình Lý thuyết truyền thơng của
các hệ bí mật, đưa ra nhiều quan niệm làm cơ sở cho việc đánh giá tính bí mật
của các hệ mật mã, trong đó có khái niệm tính bí mật hồn tồn.
Theo Shannon một hệ mật mã là bí mật hồn tồn, nếu việc biết xác
suất bản rõ là như nhau dù biết hay khơng biết bản mã, hay nói cách khác là
việc biết bản mã cũng không đem lại thêm bất kỳ thơng tin gì về bản rõ.
Gọi P là tập không gian các bản rõ, C là tập không gian các bản mã, K
là tập khơng gian các khóa, E là giải thuật mã hóa, D là giải thuật giải mã.
Định lý 1.3.
Giả sử S = (P, C, K, E, D) là hệ mã với điều kiện |P| = |C| = |K|, tức
các tập P, C, K có số các phần tử bằng nhau.
Hệ mã S là bí mật hồn tồn, nếu và chỉ nếu mỗi khố k  K được
dùng với xác xuất bằng nhau là 1/|K|, và với mọi x  P, y  C có khố duy
nhất k  K sao cho Ek(x) = y.

1.2.3. Thuật toán xác xuất

16

TIEU LUAN MOI download :



Thuật toán xác suất là thuật toán mà cùng với dữ liệu đầu vào, ta bổ
sung thêm giá trị của một đại lượng ngẫu nhiên tương ứng nào đó.
Thuật tốn xác suất được chia làm hai loại: thuật toán Monte Carlo và
thuật tốn Las Vegas. Thuật tốn Monte Carlo ln kết thúc với kết quả có
hoặc khơng đối với mọi dữ liệu đầu vào bất kỳ. Thuật toán Las Vegas tuy
cũng kết thúc với mọi dữ liệu, nhưng có thể kết thúc với một thơng báo khơng
có trả lời có hoặc khơng.

1.3. ĐỘ PHỨC TẠP TÍNH TỐN
17

TIEU LUAN MOI download :


1.3.1. Khái niệm về độ phức tạp tính tốn
Độ phức tạp tính tốn (về khơng gian hay về thời gian) của một tiến
trình tính tốn là số ơ nhớ được dùng hay số các phép toán sơ cấp được thực
hiện trong tiến trình tính tốn đó.
Độ phức tạp tính tốn (trong trường hợp xấu nhất) của thuật toán A
được hiểu là một hàm số fA(n) sao cho với mỗi số n, fA(n) là số ơ nhớ, hay số
phép tốn sơ cấp tối đa mà A cần để thực hiện tiến trình tính tốn của mình
trên các dữ liệu vào có độ dài ≤ n.
Thuật tốn A có độ phức tạp thời gian đa thức, nếu có một đa thức P(n)
sao cho với mọi n đủ lớn ta có fA(n) ≤ P(n), trong đó fA(n) là độ phức tạp tính
tốn theo thời gian của A.
Về sau khi nói đến các bài tốn, ta hiểu đó là các bài tốn quyết định,
mỗi bài toán P như vậy được xác định bởi:



Một tập các dữ liệu vào I.



Một câu hỏi Q trên các dữ liệu vào, sao cho với mỗi dữ

liệu vào x  I, câu hỏi Q có một trả lời đúng hoặc sai.
Ta nói bài tốn quyết định P là giải được, nếu có thuật tốn để giải nó,
tức là thuật tốn làm việc có kết thúc trên mọi dữ liệu vào của bài toán, và cho
kết quả đúng hoặc sai tuỳ theo câu hỏi Q trên dữ liệu đó có trả lời đúng hoặc
sai. Bài toán P là giải được trong thời gian đa thức, nếu có thuật tốn giải nó
với độ phức tạp thời gian đa thức.

1.3.2. Hàm một phía và Hàm một phía có cửa sập
18

TIEU LUAN MOI download :


Hàm số y = f(x) được gọi là hàm một phía (one – way function), nếu
việc tính thuận từ x ra y là “dễ”, nhưng việc tính ngược từ y tìm lại x là “khó”.
Tính từ “dễ” và “khó” khơng có các định nghĩa chính xác, mà được hiểu một
cách thực hành, chẳng hạn “dễ” là có thể tính được trong thời gian đa thức
(với đa thức bậc thấp), “khó” là khơng tính được trong thời gian đa thức.
Cho đến nay việc tìm và chứng minh một hàm số nào đó là khơng tính
được trong thời gian đa thức cịn là việc khó khăn, cho nên “khó” thường chỉ
được hiểu là chưa tìm được thuật tốn tính nó trong thời gian đa thức. Với
cách hiểu tương đối như vậy thì các bài tốn về phân tích thừa số ngun tố,
logarit rời rạc, … có thể được xem như là các hàm một phía.

Hàm y = f(x) được gọi là hàm một phía có cửa sập (trapdoor one-way
function), nếu việc tính thuận từ x ra y là “dễ”, việc tính ngược từ y tìm lại x
là “khó”, nhưng có cửa sập z để với sự trợ giúp của nó, thì việc tính x từ y lại
trở thành “dễ”.

19

TIEU LUAN MOI download :


Chƣơng 2: MỘT SỐ PHƢƠNG PHÁP THÁM MÃ
2.1. PHƢƠNG PHÁP THÁM MÃ
2.1.1. Thám mã chỉ biết bản mã
Thám mã chỉ biết bản mã (Ciphertext only attack) (COA) là mơ hình
thám mã, trong đó giả sử rằng thám mã chỉ biết duy nhất tập các bản mã.
Xảy ra trường hợp này khi (như thời ngày xưa) bắt được kẻ đưa thư,
hoặc (thời ngày nay) chặn được thông tin truyền trên mạng.
Thám mã là thành cơng hồn tồn nếu như các bản rõ tương ứng có thể
được suy ra, hay tốt hơn là có thể tìm được khố giải mã. Khả năng để tìm
được bất kì thơng tin gì về bản rõ cơ sở cũng được xem là thành công.
Những hệ mã hoá trước đây thực hiện bằng bút và giấy, thường bị phá
bởi việc dùng bản mã đơn độc. Đối với hệ mã cổ điển đơn giản, nhà lập mã đã
phát triển kỹ thuật thống kê cho việc tấn công bản mã như “phân tích tần
số”(frequency analysis).
Các hệ mã hiện đại cố gắng cung cấp khả năng bảo vệ chống lại tấn
công dạng này, bằng cách sử dụng giả thuyết giải bản mã tương ứng với việc
giải bài tốn “khó”, q trình kiểm tra khả năng của hệ mã mới thường kéo
dài nhiều năm, bao gồm việc kiểm tra toàn bộ mọi khía cạnh của một số lượng
lớn các bản mã từ bất kì một sự thống kê ngẫu nhiên nào.
Ví dụ như hệ mã RSA, để tìm ra bản rõ từ bản mã thì phải giải bài tốn

“khó” là bài toán RSA.

20

TIEU LUAN MOI download :


2.1.2. Thám mã biết bản rõ
Thám mã biết bản rõ (Known plaintext attack) (KPA) là một mơ hình
tấn cơng để giải mã, trong đó thám mã biết cả bản rõ và bản mã, và tự do dùng
chúng để tìm kiếm những thông tin khác về hệ mã, đặc biệt là khố bí mật.
Tuy nhiên bản mã và bản rõ là biết được một cách ngẫu nhiên ngoài ý
muốn của thám mã, ví dụ thơng tin được cắt thành nhiều bản rõ để mã hoá
thành nhiều bản mã tương ứng, nhiều người đưa thư khác nhau mang đến một
đích nào đó, thám mã vơ tình bắt được kẻ đưa thư cầm một bản mã và một
bản rõ tương ứng với nó, sự bắt được này là hồn tồn vơ tình, thám mã khơng
thể lựa chọn trước được.
Nhiều hệ mã hố cổ điển dễ bị tấn công đối với thám mã loại này. Ví
dụ như với hệ mã chuyển dịch (shift cipher) (hệ mã Caesar) , nếu biết một cặp
bản mã và bản rõ bất kỳ, tức là biết được khoảng chuyển dịch hay sẽ biết được
khố K, lúc đó ta sẽ giải mã được toàn bộ hệ mã.
Những file lưu trữ dạng ZIP cũng dễ bị tấn công theo kiểu này. Ví dụ,
thám mã với file Zip đã được mã hố chỉ cần biết một file Zip chưa mã hoá
(được hiểu là biết bản rõ (Known plaintext)), sau đó dùng một số phần mềm
sẵn có, họ có thể tính ngay được khố để giải mã tồn bộ.
Để tìm được file chưa mã hố này, thám mã có thể tìm kiếm trên
Website một file thích hợp, tìm kiếm nó từ một kho lưu trữ, hoặc cố gắng xây
dựng lại một file rõ (plaintext file) với những tri thức của tên file từ kho lưu
trữ đã được mã hoá.


21

TIEU LUAN MOI download :


2.1.3. Thám mã với bản rõ đƣợc chọn
Thám mã với bản rõ được chọn (Chosen plaintext attack) (CPA) là mơ
hình tấn cơng để giải mã, trong đó giả sử rằng thám mã có khả năng chọn một
bản rõ tuỳ ý và biết bản mã tương ứng. Điều này có thể xảy ra khi thám mã
chiếm được tạm thời máy lập mã, với hệ mã hố cơng khai điều này là hiển
nhiên, vì biết được khố cơng khai thì thám mã có thể mã hố bất kỳ bản rõ
nào mà họ chọn. Đối với các hệ mã đối xứng thì như mơ hình trên, thám mã
có “quyền” bắt được bất kỳ kẻ đưa thư nào mà họ muốn, ta đừng hiểu theo
nghĩa là thám mã bắt tất cả các kẻ đưa thư có cặp bản rõ bản mã tương ứng,
hợp lại sẽ được bản rõ đầy đủ, mà phải hiểu là nếu thám mã có một bản rõ bất
kỳ nào đó, thì có thể “bắt” được kẻ đưa thư mang bản mã tương ứng với bản
rõ đó.
Ta thấy thám mã ở trường hợp này có “năng lực mạnh” hơn hẳn thám
mã ở mục trên, vì ở trên chỉ biết được cặp bản rõ bản mã một cách ngẫu
nhiên, còn ở đây có thể biết được do thám mã chọn trước.
Một cách hình thức, thám mã có một plaintext checking oracle (máy tư
vấn kiểm tra bản rõ) nhận đầu vào là cặp (m, c) và trả lời xem c có phải là bản
mã của m không. Trong trường hợp xấu nhất, thám mã với bản rõ được chọn
có thể khám phá ra khố bí mật của hệ mã.
Thám mã với bản rõ được chọn trở nên rất quan trọng trong các hệ mã
hố cơng khai, tại vì các khố mã hố được cơng bố và thám mã có thể mã
hố bất kì bản rõ nào mà họ chọn.
Bất kì hệ mã nào an toàn đối với “thám mã với bản rõ được chọn” , thì
cũng an tồn với “thám mã biết bản rõ” (Known plaintext attack) và “thám mã
chỉ biết bản mã” (Ciphertext only attack), đây là vấn đề an toàn kéo theo.


22

TIEU LUAN MOI download :


Có hai kiểu phân biệt “thám mã với bản rõ được chọn”:


“Thám mã với bản rõ được chọn” theo khối, trong đó thám mã

chọn tất cả các bản rõ trước, rồi sau đó mới mã hố.


“Thám mã với bản rõ được chọn” thích hợp, trong đó thám mã

tạo ra một chuỗi các bản rõ (queries) liên quan lẫn nhau, việc chọn các bản rõ
tiếp theo dựa trên thông tin về những mã hố trước đó.
Những giải thuật mã hố khố cơng khai khơng ngẫu nhiên (tất định)
(ví dụ như RSA dùng thuật toán mã hoá tất định, một bản rõ có duy nhất một
bản mã), dễ bị xâm phạm bởi các kiểu thám mã “từ điển” đơn giản. Đó là
thám mã xây dựng một bảng các bản rõ và bản mã tương ứng có thể, biết bản
mã để tìm ra bản rõ tương ứng, thám mã chỉ cần tìm kiếm trên bảng bản mã,
ánh xạ sang bản rõ tương ứng, tất nhiên là với yêu cầu rằng không gian của
các bản rõ là “đủ nhỏ”, hoặc thám mã có thể đoán trước được tập bản rõ nằm
trong khoảng đủ nhỏ nào, mà người lập mã sẽ sử dụng.
Vì vậy việc định nghĩa bí mật hồn tồn cho hệ mã hố công khai dưới
“sự thám mã với bản rõ được chọn” yêu cầu hệ mã phải là hệ mã xác xuất (ví
dụ mã hố ngẫu nhiên) ([13]).


23

TIEU LUAN MOI download :


2.1.4. Thám mã với bản mã đƣợc chọn
2.1.4.1. Kiểu tấn công CCA
Thám mã với bản mã được chọn (Chosen ciphertext attack) (CCA) là
mơ hình tấn cơng để giải mã, trong đó thám mã chọn bản mã và giải mã bản
mã đó với khố chưa được biết. Điều này đạt được khi thám mã giành được
quyền kiểm soát tạm thời máy giải mã.
Hai dạng cụ thể của loại tấn công này cịn được gọi là tấn cơng
“lunchtime” (CCA1) và tấn cơng “midnight” (CCA2). Thiết bị cung cấp khả
năng giải mã các bản mã được chọn (ngẫu nhiên hay có chủ định), gọi là thiết
bị giải mã hoặc máy tư vấn giải mã (decryption oracle).
Rõ ràng kẻ địch có thể giải mã các bản mã đã chọn trước (bằng cách
dùng một vài thiết bị giải mã (decryption oracle)), thì có thể đánh bại sự an
tồn của một lược đồ mã hố. Tuy nhiên thám mã với bản mã được chọn có
thể kéo theo nhiều ý nghĩa hơn đối với một số sơ đồ mã hố. Ví dụ trong
trường hợp đặc biệt thám mã có thể khơi phục lại được khố giải mã của lược
đồ, bằng cách đưa ra những bản mã chọn trước một cách phù hợp và phân tích
những kết quả đã được giải mã. Một thành công của thám mã với bản mã
được chọn là có thể gây mất an tồn tới lược đồ mã hố, thậm chí ngay khi
thiết bị giải mã (decryption oracle) trở nên khơng cịn hiệu lực. Vì thế tấn
cơng dạng này có thể có hiệu lực trong cả những trường hợp mà thiết bị giải
mã (decryption oracle) không thể được dùng để giải mã một cách trực tiếp các
bản mã mục tiêu.
Một số lược đồ an tồn khác có thể khơng cịn tác dụng trước kiểu tấn
cơng này. Ví dụ như lược đồ El Gamal là “an tồn ngữ nghĩa” (semantically
secure) (2.2.2) trước mơ hình tấn cơng CPA nhưng khơng cịn “an tồn ngữ

nghĩa” trước tấn công này (chương 3).

24

TIEU LUAN MOI download :


Những phiên bản trước đây của hệ RSA, dùng giao thức an toàn SSL
(Secure socket layer) dễ bị xâm phạm bởi tấn cơng với bản mã chọn trước
thích hợp (Adaptive chosen ciphertext attack), cách tấn cơng này khám phá ra
khố phiên SSL. Nhà thiết kế ra thẻ thông minh (Smart card) phải có hiểu biết
cụ thể về loại tấn cơng này, những thiết bị này hồn tồn có thể nằm dưới sự
điều khiển của kẻ địch nếu chúng đưa ra một số lượng lớn các bản mã chọn
trước để cố gắng khơi phục lại khố bí mật.
Khi một hệ mã hố dễ bị xâm phạm với CCA, thì khi thực hiện nên
tránh những trường hợp để cho kẻ địch giải các bản mã đã chọn trước (ví dụ
như tránh cung cấp cho kẻ địch máy giải mã (decryption oracle). Đôi khi cịn
khó khăn hơn nữa, khi chỉ cần giải một phần những bản mã được chọn trước
(khơng cần hồn tồn), cũng có thể cho cơ hội tấn cơng hệ mã một cách khơn
ngoan. Hơn nữa một vài hệ mã hố (như RSA) dùng cùng một kỹ thuật để ký
và giải mã những thông báo. Việc này cho cơ hội tấn công khi việc “băm”
(hashing) không được dùng trên thông báo đã được ký. Vì thế nên dùng những
hệ mã, mà có thể chứng minh là an tồn trước tấn cơng của CCA, bao gồm
RSA-OAEP và Cramer-Shoup .
Hiện nay hai hệ được quan tâm nhất là OAEP và Cramer-Shoup:
۰ OAEP hiệu quả hơn, dựa trên giả thuyết toán học mạnh hơn là hàm một
phía. Cramer-Shoup dùng giả thuyết tốn học DDH (Decisionnal DiffieHellman) nhưng phải coi hàm băm như một máy tư vấn ngẫu nhiên (RORandom Oracle) trong chứng minh tính bảo mật.
۰ Một số nghiên cứu chỉ ra nhược điểm của RO, do vậy Cramer-Shoup được
ưa chuộng hơn trong một số trường hợp.


25

TIEU LUAN MOI download :


2.1.4.2. Kiểu tấn công CCA1
Trong kiểu tấn công với bản mã được chọn trước bất kỳ (Non-adaptive
chosen ciphertext attack), hay cịn gọi là tấn cơng có bản mã chọn trước không
phân biệt (indifferent chosen ciphertext attack) hoặc tấn công “lunchtime”
(CCA1), trong đó kẻ địch chỉ có thể chiếm được máy tư vấn giải mã (có
decryption oracle) trước khi chọn bản mã cụ thể để tấn công. Mục tiêu tấn
công là thu thập đủ thông tin để làm giảm độ an tồn của hệ mã. Nếu thành
cơng thì có thể khám phá ra khố bí mật và do đó có thể phá vở sự an toàn của
hệ mật.

26

TIEU LUAN MOI download :


×