Professional Documents
Culture Documents
Mật mã học
Bảo mật hoàn thiện
Định lý. Cho hệ mã ( P , C , K , E , D ) có tính chất | K | = | C | = | P | . Khi
đó hệ mã bảo mật tuyệt đối khi và chỉ khi mọi khoá mã được dùng với
xác suất như nhau là 1/ | K | , và x P , y C có một khoá K duy nhất
thoả eK(x) = y
Định lý. Trong hệ thống bảo mật tuyệt đối, số lượng khoá có thể (độ
lớn không gian khoá) phải lớn hơn hoặc bằng số lượng bản rõ có thể
(độ lớn không gian bản rõ)
Entropy
Độ đo lượng thông tin - độ không chắc chắn - độ bất định
Khái niệm entropy
• Biến ngẫu nhiễn, nhận hữu hạn giá trị, phân phối xác suất p(X)
• Độ bất định/lượng tin/entropy của X:
• Định nghĩa: Giả sử X là biến ngẫu nhiên có thể nhận hữu hạn giá trị với phân
phối xác suất p(X). Entropy của phân phối xác suất đó là giá trị
• Với bảng chữ tiếng Anh: 26 ký tự, entropy của từng ký tự trong xâu ngẫu
nghiên:
• Với entropy cho từng ký tự của bản rõ: có thể ước lượng xấp xỉ
• Với tiếng Anh: 4.19
Ký tự Xác Ký tự Xác Ký tự Xác Ký tự Xác Ký tự Xác
suất suất suất suất suất
A 0.082 F 0.022 K 0.008 P 0.019 U 0.028
B 0.15 G 0.020 L 0.040 Q 0.001 V 0.010
C 0.028 H 0.061 M 0.024 R 0.060 W 0.023
D 0.043 I 0.070 N 0.067 S 0.063 X 0.001
E 0.127 J 0.002 O 0.075 T 0.091 Y 0.020
Z 0.001
Khoảng cách duy nhất - unicity distance
Đánh giá số lượng khóa có thể (giải được thông điệp có nghĩa)
• Với thông điệp bản rõ - trong ngôn ngữ tự nhiên: các ký tự liên tiếp nhau kh phải
độc lập
=> tương quan giữa các ký tự làm giảm entropy
• Nếu gọi là biến ngẫu nhiên có phân phối của tổ hợp chuỗi n ký tự, định nghĩa
• entropy của ngôn ngữ L là
K(y): tập các khóa mà: y là từ mã của xâu từ hiện có nghĩa (độ dài n) x
• Có thể ước lượng được số lượng khóa trung bình là
• Biến ngẫu nhiên X, có thể lấy hữu hạn giá trị xi , có phân bố xác suất p(X)
• Gọi sự tạo mã (encoding) là ánh xạ phần tử x tương ứng xâu nhị phân
: X {0, 1}*
• Cho từ x1x2..xn , mở rộng ánh xạ
(x1 .. xn) = (x1) .. (xn)
là phép nối các chuỗi ký tự. Theo đó ta có ánh xạ:
: X* { 0, 1}*
• Để giải mã không nhập nhằng => ánh xạ là đơn ánh.
Mã Huffman
• Nửa nhóm cùng với phần tử đơn vị tạo thành một vị nhóm (monoid). Phần tử đơn vị
thường ký hiệu là 1.
• Nửa nhóm con N của vị nhóm M được gọi là vị nhóm con (submonoid) nếu N chứa
phần tử đơn vị của M.
Một số khái niệm
Bảng chữ
Giả sử A là tập hữu hạn (hoặc vô hạn) các ký hiệu (symbol), A được gọi là bảng chữ
cái (alphabet)
Từ
Dãy hữu hạn w tạo nên từ chữ cái trên bảng chữ A gọi là từ (word)
• A* được trang bị phép nhân (ghép nối xâu), phần từ đơn vị 1, gọi là vị nhóm tự do
(free monoid) sinh bởi A
• A+=A* 1 gọi là nửa nhóm tự do (free semigroup) được sinh bởi A
Một số khái niệm
Quan hệ giữa các từ trên bảng chữ
• Khúc con /thừa số (factor)
từ wA* gọi là khúc con của xA* nếu tồn tại u,vA*: x=uwv
w
w là thừa số thực sự nếu wx u v
• Khúc con trái/thừa số trái (prefix)
x
từ wA* gọi là khúc con trái của xA* nếu tồn tại uA*: x=wu w
w là thừa số thực sự nếu wx u
quan hệ prefix, ký hiệu: w x, w < x nếu w x và w x
x
• Khúc con phải (suffix)
Một số khái niệm
Quan hệ giữa các từ trên bảng chữ
• Bảng chữ A, hai từ x, y A*
• thương trái:
• thương phải
Ngôn ngữ
• Tập X A* gọi là ngôn ngữ trên bảng chữ A
• Cho 2 ngôn ngữ X, Y A*
• Tập thương trái
vd: X={ab,b}, Y={aab,baa,ab}:
• Tập thương phải
Ngôn ngữ và mã
Ngôn ngữ X trên bảng chữ A
• Bảng chữ A
• Tập X A* gọi là ngôn ngữ trên bảng chữ A
Ngôn ngữ X A* ,
• X* là vị nhóm con (submonoid) sinh bởi X
∗
∗ nếu 1X
• ∗
ngược lại
Ngôn ngữ và mã
Phân tích (factorization) của từ
• Bảng chữ A
một phân tích của từ w A* là chuỗi gồm n từ A* sao cho
• tập X là mã nếu mọi từ trong X+ có chỉ một phân tích duy nhất bởi các từ trên X
• Mọi mã X không chứa từ rỗng 1
• Nếu X là mã, mọi tập con Y X cũng là mã
Một số lớp mã cơ bản
Đồng cấu mã
Liên hệ giữa mã và đồng cấu vị nhóm
Mệnh đề
• Nếu tập con X của A* là mã thì mọi đồng cấu (morphism) : B* A* , cảm sinh
một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn ánh.
• Ngược lại, nếu tồn tại một đơn ánh đồng cấu : B* A* sao cho (B) = X thì X là
mã .
CM:
• Giả thiết X là mã, : B* A* là đồng cấu, cảm sinh song ánh B lên X.
Giả sử u,vB* là từ thỏa (u)= (v).
nếu u=1 thì v=1, thật vậy, do (b)1 với mọi chữ b do X là mã-không chứa 1.
nếu u 1 và v 1, đặt u = b1 ... bn ; v = b'1 ... b'm . Do là đồng cấu nên
(b1)... (bn) =(b'1) ... (b'm)
để ý (bi), (b'j) X và X là mã do đó n=m và (bi)= (b'i) i=1..n. Lại có là đơn
ánh trên B nên bi = b'i , i=1..n, u=v. Chứng tỏ là đơn ánh
Đồng cấu mã
Mệnh đề
• Nếu tập con X của A* là mã thì mọi đồng cấu (morphism) : B* A* , cảm sinh
một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn ánh.
• Ngược lại, nếu tồn tại một đồng cấu đơn ánh : B* A* sao cho (B) = X thì X là
mã .
CM:
• Ngược lại, nếu : B* A* là đơn ánh đồng cấu, và nếu trên X = (B) có
x1 ... xn = x'1 ... x'm với n,m ≥ 1 nào đó,
Ta xét các ký tự bi , b'j trên B mà (bi)= xi , (b'j)= x'j , i=1..n, j=1..m.
Do là song ánh đồng cấu nên từ x1 ... xn = x'1 ... x'm v kéo theo
b1 ... bn = b'1 ... b'm , dẫn đến m=n và bi = b'i , từ đây xi = x'i với i=1..n
Vậy X là mã
• Đồng cấu đơn ánh ở trên gọi là đồng cấu mã
Đồng cấu mã
• B chính là bảng chữ bản rõ, từ trong X là từ mã hóa chữ cái trong B.
Quá trình mã hóa là thực hiện ánh xạ từ bản rõ b1 ... bn
thành thông điệp mã (b1)... (bn) =(b'1) ... (b'n) dùng đồng cấu mã
là đơn ánh đảm bảo việc giải mã là duy nhất.
• Giả sử ∗ ∗ là đồng cấu đơn ánh. Nếu X là mã trên bảng chữ A thì (X) là
mã trên C. Ngược Nếu Y là mã trên C thì là mã trên A
Đồng cấu mã
Ví dụ
• Ví dụ 1 Với mọi bảng chữ cái A, tập X = A luôn là tập mã. Tổng quát hơn với mọi
số nguyên p 1, X = Ap là tập mã, được gọi là mã uniform tạo bởi các từ độ dài p
• Ví dụ 2 Tập X = {bb,abb,ab} trên bảng chữ cái A = {a, b} là tập mã.
Mã suffix
• Mọi tập suffix khác {1} đều là mã
Kiểm tra tính chất mã
Ví dụ:
Cho A = {a, b} và tập X = {b, abb, abbba, bbba, baabb}.
X không là mã vì có từ w = abbbabbbaabb có hai phân tích:
w = (abbba)(bbba)(abb) = (abb)(b)(abb)(baabb)
(abbba) = (abb)ba
(abbba) = (abb)(b)a
(abbba)bb = (abb)(b)(abb)
(abbba)(bbba) = (abb)(b)(abb)ba
(abbba)(bbba)abb = (abb)(b)(abb)(baabb)
(abbba)(bbba)(abb) = (abb)(b)(abb)(baabb)
Trong thuật toán kiểm tra, tính tất cả các phần dư trên tất cả các bước tạo phân
tích kép.
Thuật toán xác định phân tích kép qua sự kiện từ rỗng nằm trong tập các phần dư
Kiểm tra tính chất mã
Thuật toán Sardinas-Patterson
• Đầu vào: tập XA+ , đầu ra: kết luận X có là mã hay không.
B1 U1 = X-1X 1
B2 Un+1 = Un1X X1Un .
B3
If 1 Un+1 then goto B5
If Un = or Uk = Un (với k < n nào đó) then goto B4
else goto B2
B4 X là mã. Kết thúc
B5 X không là mã. Kết thúc
Kiểm tra tính chất mã
Thuật toán Sardinas-Patterson
• Giả sử X A+ và Un (n 1) được xác định như trên.
Với n 1 tuỳ ý, với mọi k {1, 2, .. ,n},
ta có 1 Un khi và chỉ khi tồn tại u Uk và 2 số nguyên i, j 0 sao cho:
u Xi Xj , và i + j + k = n
• Giả sử X là tập con của A*. Khi đó ta nói X có độ trễ giải mã hữu hạn nếu tồn tại số
nguyên d 0 sao cho:
x , x’ X; y X d ; u A*, xyu x’X* x = x’
• Nếu X có độ trễ giải mã hữu hạn thì số nguyên nhỏ nhất thoả hệ thức trên gọi
là độ trễ giải mã của X
Độ trễ giải mã
Thuật toán tính độ trễ
• Y = X, V0 = Y
• U0 = Y1X 1
• U0 = U0 + Y U0
• V1 = U01 Y + X1 V0
• Ui+1 = Vi+11X
• Ui+1 = Ui+1 + Y Ui+1
B0. Y = X; V0 = Y
B1. U0 = Y1X 1
U0 = U0 + Y U0
V1 = U01 Y + X1 V0
B2. Biết Ui , Vi+1 xác định Ui+1 , Vi+2 như sau
Ui+1 = Vi+11X
Ui+1 = Ui+1 + Y Ui+1
Vi+2 = Ui+11 Y + X1 Vi+1 .
B3. Nếu Uk = Un hoặc Vk = Vn khác rỗng thì X là mã có độ trễ giải mã vô hạn.
Kết thúc
B4. Nếu Vd+1 = thì X có độ trễ giải mã hữu hạn d. Kết thúc
Độ trễ giải mã
Ví dụ Cho X={ab,abb,baab}, tính độ trễ giải mã của X
• Ta có