Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
591,72 KB
Nội dung
CƠ SỞTOÁNHỌC
C
C
h
h
ư
ư
ơ
ơ
n
n
g
g
CƠ SỞTOÁN HỌC
Trong phần này chúng ta sẽ nhắc lại tóm tắt một số kiến thức toán học, là cơ
sở cho Lý thuyết mật mã được sử dụng xuyên suốt tàiliệu này. Các kết quả
quan trọng của Lý thuyết số cũng sẽ được trình bầy và có ví dụ cụ thể.
Nội dung chính
I. Lý thuyết thông tin 2
II. Lý thuyết về độ phức tạp 5
III. Lý thuyết số 17
Lý thuyết Mật mã và An toàn thông tin
I. Lý thuyết thông tin
1. Entropy
X là một biến ngẫu nhiên trong một tập các giá trị xác định x
1
, x
2
,…, x
n
với xác suất P(X=x
i
) = p
i
, 0 ≤ p
i
≤ 1, 1 ≤ i
≤ n ,
1
1
n
i
i
p
=
=
∑
Cũng như vậy, Y và Z cũng là các biến ngẫu nhiên.
Entropy của X là một phép đo toánhọc khối lượng thông tin được cung
cấp bởi một sự quan sát X. Tương đương, nó là một sự không chắc chắn
về kết quả trước một sự quan sát của X. Entropy cũng hữu dụng cho
xấp xỉ số bit trung bình được yêu cầu để mã hóa yếu tố X.
1.1. Định nghĩa
Entropy hoặc sự không chắc chắn của X được định nghĩa bởi:
1
() .lg
n
ii
i
H
Xp
=
=−
∑
p =
1
1
.lg
n
i
i
i
p
p
=
⎛
⎜
⎝⎠
∑
⎞
⎟
mà p
i
lg p
i
= p
i
lg(1/p
i
) = 0 nếu
p
i
=0
1.2.
Tính chất của Entropy
X là một biến ngẫu nhiên
(i) 0 ≤ H(X)
≤ lgn
(ii) H(X) = 0
⇔
p
i
= 1 và p
j
= 0 ∀j ≠ i
(iii) H(X) = lgn
⇔
p
i
= 1/n và 1 ≤ i
≤ n
1.3.
Định nghĩa
Entropy kết hợp của X và Y được định nghĩa:
,
(,) ( , ).l
g
(( , ))
xy
HXY PX xY
y
PX x Y
y
=− == ==
∑
Định nghĩa trên có thể được mở rộng tới bất kỳ số lượng biến ngẫu
nhiên nào.
Lê Thụy
2
Trường Đại học Dân lập Hải Phòng
1.4. Định lý
Nếu X và Y là các biến ngẫu nhiên thì: H(X, Y) ≤ H(X) + H(Y). Dấu
“=” xảy ra nếu X và Y là độc lập.
1.5.
Định nghĩa
Nếu X và Y là các biến ngẫu nhiên thì Entropy điều kiện của X được
cho bởi Y = y là:
(| ) ( | ).lg(( | )
x
HXYy PXxYy PXxYy==− = = = =)
∑
Entropy điều kiện của X được cho bởi Y cũng được gọi là sự lập lờ của Y
về X
(|) ( ).(|
y
)
H
XY PY yHXY y
=
==
∑
1.6. Tính chất của Entropy điều kiện
X và Y là các biến ngẫu nhiên
(i) Số lượng H(X|Y) đo khối lượng sự không chắc chắn duy trì về
phía X sau khi Y được quan sát.
(ii) H(X|Y) ≥ 0 và H(X|X) = 0
(iii) H(X|Y) = H(X) + H(Y|X) = H(Y) + H(X|Y)
(iv) H(X|Y) ≤ H(X) . Dấu “=” xảy ra nếu X và Y là độc lập.
2. Thông tin qua lại (mutual information)
2.1. Định nghĩa thông tin qua lại hoặc thông tin (transinformation) của
các biến ngẫu nhiên X và Y là :
I(X; Y) = H(X) – H(X|Y).
Tương tự, thông tin của X và cặp Y, Z được định nghĩa bởi:
I(X; Y, Z) = H(X) – H(X|Y, Z)
Lê Thụy
3
Lý thuyết Mật mã và An toàn thông tin
2.2. Tính chất của thông tin qua lại
(i) Số lượng I(X; Y) có thể được nghĩ như là khối lượng tin mà Y
bộc lộ về X. Tương tự, số lượng I(X; Y, Z) có thể được nghĩ như
là khối lượng tin mà Y và Z đồng thời bộc lộ về X
(ii) I(X; Y) ≥ 0
(iii) I(X; Y) = 0 nếu X và Y là độc lập (Y không đóng góp thông tin về
X)
(iv) I(X; Y) = I(Y; X)
2.3.
Định nghĩa
Thông tin có điều kiện của cặp X, Y được cho bởi Z được định nghĩa:
I
Z
(X; Y) = H(X|Z) – H(X|Y, Z)
2.4.
Tính chất của thông tin có điều kiện
(i) Số lượng I
Z
(X; Y) có thể được thể hiện như khối lượng tin mà Y
cung cấp về X, khi Z được quan sát.
(ii) I(X; Y, Z) = I(X; Y) + I
Y
(X; Z)
(iii) I
Z
(X; Y) = I
Z
(Y; X)
Lê Thụy
4
Trường Đại học Dân lập Hải Phòng
II. Lý thuyết về độ phức tạp (complexity theory)
Ý chính của thuyết phức tạp là cung cấp kĩ thuật phân loại các bài toán
tính toán tùy theo các tài nguyên cần dùng để giải chúng. Việc phân
loại không nên phụ thuộc vào một mô hình tính toán cụ thể mà nên tính
toán từng độ khó của mỗi loại bài toán. Các tài nguyên được đo lường
có thể bao gồm thời gian, không gian lưu trữ, các bit ngẫu nhiên, số
tiến trình… Nhưng việc tập trung chính là vào thời gian, đôi khi là
không gian.
1. Định nghĩa cơ bản
Độ phức tạp tính toán (về không gian hay thời gian) của một tiến trình
tính toán là số ô nhớ được dùng hay số các phép toánsơ cấp được thực
hiện trong quá trình tính toán đó. Dữ liệu đầu vào đối với một thuật
toán thường được biểu diễn thông qua các từ trong một bảng kí tự nào
đó. Độ dài của một từ là số kí tự trong từ đó
1.1. Định nghĩa
Một thuật toán là một qui trình tính toán hoàn toàn xác định mà dùng
một biến dữ liệu đầu vào và dừng lại với một kết quả ở đầu ra.
Thuật ngữ “
qui trình tính toán hoàn toàn xác định” không đơn thuần
là toán học. Nó có thể được tạo ra bằng cách sử dụng các mô hình tính
toán như: máy Turing, máy truy cập ngẫu nhiên, hoặc các mạch
logic…Hơn thế nữa, nó còn liên quan đến độ phức tạp về kĩ thuật của
các mô hình này. Vì vậy, đơn giản hơn, một thuật toán như là một
chương trình máy tính, được viết bằng một ngôn ngữ lập trình cụ thể
cho mỗi máy tính cụ thể, dùng một biến dữ liệu đầu vào và dừng lại với
một kết quả ở đầu ra.
Lê Thụy
5
Lý thuyết Mật mã và An toàn thông tin
Vấn đề thường được quan tâm là tìm ra được thuật toán hiệu quả nhất
để giải một bài toán tính toán được đưa ra. Thời gian thực hiện giải
thuật phụ thuộc vào từng trường hợp của bài toán. Do đó, cần đưa ra
chính xác đơn vị của thời gian, đặc biệt là khi so sánh sự thực thi của 2
thuật toán.
1.2.
Định nghĩa
Kích cỡ của đầu vào (input) là tổng số bit cần thiết để mô tả nó trong
cách kí hiệu nhị phân thông thường, bằng việc dùng một lược đồ mã
hóa phù hợp. Thông thường, cỡ của đầu vào sẽ là số của mục chọn
trong dữ liệu đầu vào.
Ví dụ: (về kích cỡ của một vài đối tượng)
(i) Số các bit trong mô tả nhị phân của 1 số nguyên dương n là 1 +
⎣ln(n)⎦. Để đơn giản, cỡ của n sẽ ≈ lg(n)
(ii) Nếu f là 1 đa thức bậc k, mỗi hệ số là 1 số nguyên không âm n
thì cỡ của f là (k+1)lg(n) bit
(iii) Nếu A là 1 ma trận với r hàng, s cột, và với các mục nhập n
nguyên không âm thì cỡ của A là r.s.lgn bit
1.3.
Định nghĩa
Thời gian chạy thực (running time) của một thuật toán với một đầu vào
cụ thể là số các thao tác nguyên thủy hoặc các bước thực hiện. Thường
một bước cần đến 1 bít thao tác. Nhưng đối với một vài giải thuật, sẽ
thuận tiện hơn khi trải qua các bước như: so sánh, chỉ dẫn cơ khí, một
chu kì đồng hồ cơ khí, một phép nhân module…
1.4.
Định nghĩa
Trường hợp chậm nhất (worst-case) của thời gian chạy thực của một
thuật toán là một cận trên (upper bound) thời gian chạy thực đối với bất
kỳ đầu vào nào, được diễn tả như là một hàm của dữ liệu đầu vào.
Lê Thụy
6
Trường Đại học Dân lập Hải Phòng
1.5. Định nghĩa
Trường hợp trung bình (average-case) của thời gian chạy thực của 1
thuật toán là mức trung bình của thời gian trên tất cả các đầu vào của
các cỡcố định, được diễn tả như là một hàm của dữ liệu đầu vào.
2. Ký hiệu tiệm cận (asymptotic notation)
Thường rất khó để nhận biết được thời gian chạy thực của một thuật
toán. Trong trường hợp như vậy, một hàm xấp xỉ sẽ được dùng thay
thế, nhưng chỉ thu được gần sát với thời gian chạy thực. Chính vì vậy,
sẽ tìm hiểu cách mà thời gian chạy thực của một thuật toán tăng như cỡ
của bộ dữ liệu đầu vào tăng mà không cần có sự ràng buộc nào.
Với những gì dưới đây, các hàm được định nghĩa trên các số nguyên
dương và các giá trị thực dương, f và g là hai hàm như vậy.
2.1.
Định nghĩa (order notation –sắp xếp kí hiệu )
(i) Cận trên tiệm cận (asymptotic upper bound) :
f(n) = O(g(n)) nếu tồn tại một hằng số dương c và 1 số nguyên
dương n
0
để 0 ≤ f(n) ≤ cg(n) với n ≥ n
0
.
(ii) Cận dưới tiệm cận (asymptotic lower bound) :
f(n) = Ω(g(n)) nếu tồn tại một hằng số dương c và 1 số nguyên
dương n
0
để 0 ≤ cg(n) ≤ f(n) với n ≥ n
0
.
(iii) Cận sát theo tiệm cận (asymptotic tight bound) :
f(n) = (g(n)) nếu tồn tại hằng số dương c
1
và c
2
và 1 số
nguyên dương n
0
để c
1
g(n) ≤ f(n) ≤ c
2
g(n) với n ≥ n
0
.
(iv) Kí hiệu o (o- notation):
f(n) = o(g(n)) nếu đối với bất kỳ hằng số c > 0 nào đều tồn
tại một hằng n
0
> 0 để 0 ≤ f(n) ≤ cg(n) với n ≥ n
0
.
Lê Thụy
7
Lý thuyết Mật mã và An toàn thông tin
2.2. Tính chất của sắp xếp kí hiệu
Đối với các hàm bất kì: f(n), g(n), h(n), l(n) thì các điều sau là đúng:
* f(n) = O(g(n))
⇔
g(n) = Ω(f(n))
* f(n) = (g(n))
⇔
f(n) = O(g(n)) và f(n) = Ω(g(n))
* Nếu f(n) = O(h(n)) và g(n) = O(h(n)) thì (f + g)(n) =
O(h(n))
* Nếu f(n) = O(h(n)) và g(n) = O(l(n)) thì (f.g)(n) =
O(h(n)l(n))
* f(n) = O(f(n))
* Nếu f(n) = O(g(n)) và g(n) = O(h(n)) thì f(n) = O(h(n))
2.3.
Định lý (sự xấp xỉ của 1 vài hàm phổ biến)
(i) Hàm đa thức (polynomial function): Nếu f(n) là một đa thức
bậc k với các số hạng dương thì f(n) = (n
k
).
(ii) Với mọi hằng số c > 0 thì log
c
(n) = (lgn)
(iii) Công thức Stirling: Với mọi số nguyên n ≥ 1 thì:
)
n12
1
(n
n
)
e
n
(n2!n)
e
n
(n2
+
≤≤
ππ
Do đó: n! =
))
n
1
(1()
e
n
(n2
n
θπ
+ , n! = o(n
n
) và n! =
Ω(2
n
)
(iv) Ta có: lg(n!) = (nlgn)
Ví dụ: (so sánh tỉ lệ tăng của 1 vài hàm)
ε
và c là các hằng số tùy ý với 0 <
ε
< 1 < c. Các hàm sau được liệt
kê theo thứ tự tăng dần của tỉ lệ tăng tiệm cận:
1< ln ln n < lnn < exp (
ln lnlnnn
) < < n
ε
n
c
< n
ln n
< c
n
< n
n
<
n
c
c
Lê Thụy
8
Trường Đại học Dân lập Hải Phòng
3. Lớp phức tạp
3.1. Định nghĩa:
Một thuật toán thời gian đa thức là một thuật toán mà hàm thời gian
chạy thử trường hợp tồi nhất (worst-case running time function) của nó
có dạng O(n
k
), trong đó n là cỡ dữ liệu đầu vào (input) và k là hằng số.
Với bất kì thuật toán nào mà thời gian chạy thực của nó không thể bị
giới hạn (bound) được gọi là một thuật toán thời gian theo số mũ
(exponential- time algorithm)
Nói một cách tổng quát, thuật toán thời gian đa thức có thể ngang bằng
với các thuật toán tốt hoặc hiệu quả, trong khi thuật toán thời gian theo
số mũ lại bị xem là không hiệu quả. Tuy nhiên, đối với một vài tình
huống thực tế thì nét riêng biệt này lại không phù hợp.
Khi xem xét độ phức tạp của thời gian đa thức (polynomial- time), bậc
của đa thức rất quan trọng, thậm chí dù một thuật toán với một thời
gian chạy thực của O(n
ln ln n
), n là cỡ của dữ liệu đầu vào (input), thì
chậm hơn so với thuật toáncó thời gian chạy thực của O(n
100
). Thuật
toán trước có thể nhanh hơn trong thực tế đối với các giá trị n nhỏ hơn,
đặc biệt nếu các hằng số bị ẩn bởi kí hiệu O-lớn là nhỏ hơn.
Hơn thế nữa, trong mật mã học, độ phức tạp trung bình thì quan trọng
hơn nhiều độ phức tạp trong trường hợp tồi nhất (worst-case) - một
điều kiện cần thiết cho một lược đồ mã hóa (encryption scheme) để
được coi như là an toàn. Mà bài toán giải mã tương ứng thì khó trên
trung bình (hoặc chính xác hơn là luôn luôn khó), và không chỉ đối với
một vài trường hợp riêng biệt.
3.2.
Định nghĩa
Một thuật toán thời gian chạy thử số mũ con (subexponential- time
algorithm) là một thuật toán mà hàm thời gian chạy thử tồi nhất có
dạng e
O(n)
, trong đó n là cỡ của của bộ dữ liệu đầu vào.
Lê Thụy
9
[...]... tạp tính toán hạn chế sự chú ý của nó tới các bài toán quyết định (decision problems), ví dụ: Các bài toán mà có câu trả lời YES hoặc NO Điều này không quá hạn chế trong thực tiễn, vì tất cả các bài toán tính toán sẽ bị bắt gặp (encounter) ở đây có thể là cụm từ như các bài toán quyết định theo một cách như vậy, mà một thuật toán hiệu quả đối với các bài toán quyết định mang lại một thuật toán hiệu... các bài toán 3.7 Định nghĩa Cho L1 và L2 là 2 bài toán quyết định L1 là ‘polytime reduce’ đối với L2 và được viết : L1 ≤ p.L2 nếu có một thuật toán giải L1 mà dùng một thuật toán để giải L2 như một thường trình con, và chạy trong thời gian đa thức nếu thuật toán cho L2 được dùng Nếu L1 ≤ p.L2 thì L2 ít nhất cũng khó như L1 hoặc tương đương L1 không khó hơn L2 3.10 Định nghĩa L1 và L2 là 2 bài toán quyết... Dân lập Hải Phòng (iii) Các bài toán NP- trọn vẹn là các bài toán khó nhất trong NP, ít nhất thì cũng khó như bất kì bài toán nào trong NP Có hàng nghìn bài toán đa dạng như: kết hợp, lý thuyết số, logic,… được biết đến như là NP- trọn vẹn Ví dụ: ( bài toán tổng tập con - subset sum problem ) Cho một tập các số nguyên dương {a1, a2 , …, an} và một số nguyên dương s, thì liệu rằng có một tập con của ai... chúng được biết đến hiệu quả hơn, cả về thời gian và không gian, hơn là các thuật toán tiền định Thuật toán ngẫu nhiên dành cho các bài toán quyết định có thể được phân lớp theo xác suất mà chúng quay trở lại câu trả đúng Lê Thụy 14 Trường Đại học Dân lập Hải Phòng 4.1 Định nghĩa A là một thuật toán ngẫu nhiên dành cho bài toán quyết định L A có 0- sided error nếu P(A xuất YES | Câu trả lời của I là YES)... hiệu quả cho bài toán tính toán và ngược lại 3.3 Định nghĩa Lớp phức tạp P là tập của tất cả các bài toán quyết định mà có thể giải được trong thời gian đa thức 3.4 Định nghĩa Lớp phức tạp NP là tập của tất cả các bài toán quyết định cho một câu trả lời YES, có thể được xác minh trong thời gian đa thức bằng cách đưa ra một vài thông tin thêm, gọi là một chứng nhận Lê Thụy 10 Trường Đại học Dân lập Hải... minh bài toán quyết định L1 là NP- trọn vẹn (hình 2 – Phỏng đoán mối quan hệ giữa các lớp phức tạp P, NP, co-NP, NPC) Lê Thụy 13 Lý thuyết Mật mã và An toàn thông tin 3.14 Định nghĩa Một bài toán là NP- khó (hard) nếu tồn tại một vài bài toán NP- trọn vẹn mà polytime rút gọn (reduce) tới nó Chú ý rằng việc phân loại NP- khó thì không hạn chế tới các bài toán quyết định Quan sát thấy rằng một bài toán NP-... thấy rằng một bài toán NP- trọn vẹn cũng là NPkhó Ví dụ: (bài toán NP- khó) Cho các số nguyên dương a1, a2 , …, an và một số nguyên dương s Phiên bản của bài toán tổng tập con sẽ yêu cầu tìm ra một tập con của ai mà tính tổng bằng s, được cho như một tập con tồn tại Bài toán này là NP- khó 4 Thuật toán ngẫu nhiên (Randomized algorithm) Thuật toán được nghiên cứu trong phần này đã được tiền định trước... mặt tính toán (computationally equivalent) 3.11 Tính chất L1 , L2 , L3 là 3 bài toán quyết định (i) Nếu L1 ≤ pL2 và L2 ≤ pL3 thì L1 ≤ pL3 (ii) Nếu L1 ≤ pL2 và L2 ∈ P thì L1 ∈ P 3.12 Định nghĩa Một bài toán quyết định L được nói là NP- trọn vẹn (NP- complete) nếu: (i) L ∈ NP và (ii) L1 ≤ pL với mọi L1 ∈ NP Lớp của tất cả các bài toán NP- trọn vẹn được kí hiệu là NPC, Lê Thụy 12 Trường Đại học Dân lập... các bài toán ngẫu nhiên với 0- sided error, chạy trong thời gian đa thức mong đợi Lớp phức tạp RP (randomized polynomial time) là tập của tất cả các bài toán quyết định mà có một thuật toán ngẫu nhiên với 1-sided error, chạy trong thời gian đa thức tồi nhất (worst-case) Lớp phức tạp BPP (bounded error probabilistic polynomial time) là tập của tất cả các bài toán quyết định mà có một thuật toán ngẫu... của ai là tổng của s hay không ? Bài toán này là NP- trọn vẹn 3.13 Hệ quả L1 và L2 là 2 bài toán quyết định (i) Nếu L1 là NP- trọn vẹn và L1 ∈ P thì P = NP (ii) Nếu L1 ∈ NP, L2 là NP- trọn vẹn và L2 ≤ pL1 thì L1 cũng là NP- trọn vẹn (iii) Nếu L1 là NP- trọn vẹn và L1 ∈ co-NP thì NP = co-NP Theo (1): Nếu một thuật toán thời gian đa thức được áp dụng cho bất kì bài toán NP- trọn vẹn đơn lẻ nào thì đó .
CƠ SỞ TOÁN HỌC
C
C
h
h
ư
ư
ơ
ơ
n
n
g
g
CƠ SỞ TOÁN HỌC
Trong phần này chúng ta sẽ nhắc lại tóm tắt một số kiến thức toán học, . bài toán quyết định mang lại một
thuật toán hiệu quả cho bài toán tính toán và ngược lại.
3.3.
Định nghĩa
Lớp phức tạp P là tập của tất cả các bài toán