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 (244.17 KB, 39 trang )
An ton v bo mt thụng tin
17
Z A B C D E F G H I J K L MN O P Q R S T U V WX Y
Hình vuông VIGENERE
Mỗi cột của hình vuông VIGENERE có thể xem nh là một hệ CAESAR, với
các khoá 0, 1, 2,... , 25. Để mã hoá thì bản rõ đợc đọc từ các hàng và khoá đợc đọc
từ các cột.
Thuật toán:
- Bớc 1: Cho bản rõ cần mã hóa có độ dài tùy ý
- Bớc 2: Cho trớc khóa k là 1 xâu có độ dài tùy ý. Khóa đợc áp dụng một
cách tuần hoàn, tức là nếu bản rõ dài hơn khóa thì khóa sẽ đợc áp dụng lại
từ đầu.
- Bớc 3: Đọc bản rõ từ các hàng, khóa đợc đọc từ các cột, điểm giao nhau
giữa bản rõ và khóa là ký tự trong bản mã.
Ví dụ1: mã hóa bản rõ PURPLE với từ khoá CRYPTO
Đầu tiên ta tìm điểm giao nhau của hàng P và cột C, ta đợc R.
Tơng tự, quy ớc G(X,Y) là giao của hàng X và cột Y
G(U,R) = L
G(R,Y) = P
G(P,P) = E
G(L,T) = E
G(E,O) = S
Nh vậy ta thu đợc bản mã RLPEES
Ví dụ2: mã hóa bản rõ VIGENERE với từ khoá MAHOA
G(V,M) = H
G(I,A) = I
G(G,H) = N
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin
18
G(E,O) = S
G(N,A) = N
G(E,M) = Q
G(R,A) = R
G(E,H) = L
Sau khi mã hóa ta sẽ thu đợc bản mã HINSNQRL
Ví dụ3: mã hóa bản rõ THUATTOAN với từ khoá BAOMAT
G(T,B) = U
G(H,A) = H
G(U,O) = I
G(A,M) = M
G(T,A) = T
G(T,T) = M
G(O,B) = P
G(A,A) = A
G(N,O) = B
Sau khi mã hóa ta sẽ thu đợc bản mã UHIMTMPAB
* Giải mã
Để giải mã ta vẫn dùng hình vuông VIGENERE, xét khóa k đóng vai trò là cột, ký
tự đợc mã hóa là giao của khóa và hàng nào đó tơng ứng. Có nghĩa là ta chỉ cần
gióng theo khóa xuống kỹ tự đã đợc mã hóa và từ đó gióng sang hàng ta sẽ thu đợc
kỹ tự trong bản rõ.
Ví dụ 1: Có bản mã IICANX và khóa XINH
Nhìn vào hàng có chứa I trong cột X ta có đợc L
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin
19
Hàng chứa I trong cột I là A
Hàng chứa C trong cột N là P
Hàng chứa A trong cột H là T
Hàng chứa N trong cột X là O
Hàng chứa X trong cột I là P
Vậy ta thu đợc bản rõ là LAPTOP
Ví dụ 2: Có bản mã EVJASPP và khóa LOPTKLC
Hàng chứa E trong cột L là T
Hàng chứa V trong cột O là H
Hàng chứa J trong cột P là U
Hàng chứa A trong cột T là H
Hàng chứa S trong cột K là I
Hàng chứa P trong cột L là E
Hàng chứa P trong cột C là N
Vậy ta thu đợc bản rõ là THUHIEN
* Thám mã VIGENERE
- Phơng pháp vét cạn: khó thực hiện nhát là nếu khóa có nhiều chữ cái
- Khai thác những nhợc điểm của giải thuật
+ Cấu trúc nguyên bản đợc che đậy tốt hơn nhng không hoàn toàn biến mất.
+ Chỉ việc tìm độ dài khóa sau đó phá mã từng hệ CAESAR
+ Cách tìm độ dài khóa:
Nếu độ dài khóa nhỏ hơn so với độ dài văn bản, có thể phát hiện 1 dãy
văn bản lặp lại nhiều lần.
Khoảng cách giữa 2 dãy văn bản lặp lại là bội số của độ dài khóa.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin
20
Từ đó suy ra độ dài khóa:
- VIGENERE đề xuất từ khóa không lặp lại mà đợc gắn vào đầu nguyên
bản
- Nếu biết từ khóa sẽ giải mã đợc chữ cái đầu tiên.
- Sử dụng các chữ cái này làm khóa để giải mã các chữ cái tiếp theo.
5. Hệ mã hoá HILL
Hệ mã hoá này dựa trên lý thuyết về đại số tuyến tính do Lester S.Hill đ a ra
năm 1929.
Cả không gian bản rõ và bản mã đều là *, trong đó là bản chữ cái tiếng
Anh. Chúng ta sử dụng các số tự nhiên thay cho các ký tự và các phép toán số học
đợc thực hiện theo modul 26 nh đã nói ở phần trên.
Ta chọn một số nguyên d 2. Xét M là ma trận vuông d phần tử. Các phần
tử của M là các số nguyên từ 0 đến 25. Hơn nữa M phải là ma trận khả nghịch, tức
là tồn tại M-1. Ví dụ:
3
2
M=
3
và M-1 =
5
15 17
20 9 .
Nếu d=2 ta có thể viết một phần tử của bản rõ là x = (x 1, x2) và một phần tử
của bản mã là y=( y1, y2). ở đây, y1 cũng nh y2 đều là tổ hợp tuyến tính của x 1, x2.
Chẳng hạn:
y1 = 11x1+3 x2
y2 = 8x1+7 x2
Tất nhiên có thể viết gọn hơn theo ký hiệu ma trận nh sau:
( y1, y2) = ( x1, x2) =
Nói chung, có thể lấy 1 ma trận K kích thớc dxd làm khóa. Nếu 1 phần tử ở hàng i
và cột j của K là Ki,j thì có thể viết:
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin
21
K=(Ki,j) với x = (x1, x2 xd) P và K K, ta tính:
Y= ek(x) = (y1, y2 yd) nh sau:
(y1, y2 yd) (x1, x2 xd)
Nói cách khác y = x.K
Chúng ta nói rằng bản mã nhận đợc từ bản rõ nhờ phép biến đổi tuyến tính.
Quá trình mã hoá đợc thực hiện theo công thức:
C = K.P MOD 26
trong đó P và C đợc viết thành các vector cột d chiều. Mỗi bộ d chữ cái của bản rõ
đợc viết thành vector P với các thành phần là các số biểu diễn các ký tự. Và C cũng
thể hiện khối d ký tự của bản mã.
Ví dụ1: bản rõ HELP đợc viết thành hai vector
H
7
P1 = = và P2 =
E
4
L 11
= .
P 15
theo công thức mã hoá ta có
3
2
3
5
7
33
7
H
= = = = C1 và
4
34
8
I
3
2
3
5
11 78
0
A
= = = = C2
15 97
19
T
MP1 =
MP2 =
chúng ta thu đợc bản mã HIAT.
Ví dụ 2: bản rõ XINH đợc viết thành
Nguyn Th Thu Hin - TK6LC1