Tải bản đầy đủ (.doc) (45 trang)

Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ

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 (281.35 KB, 45 trang )

An ton v bo mt thụng tin 1
mục lục
Lời nói đầu 2
Phần i: các khái niệm cơ bản 3
Phần ii: Các phơng pháp mã hóa cổ điển 6
I. Hệ mã hoá thay thế (Substitution Cipher) 6
1. Hệ mã hoá CAESAR 8
2. Hệ mã hoá AFFINE 11
3. Hệ mã hoá Playfair 14
4. Hệ mã hoá VIGENERE 16
5. Hệ mã hoá HILL 20
II. Hệ mã hoá hoán vị (Transposition Cipher) 25
III. Các cách Thám mã (Cryptanalyis) 29
Phần iii: cài đặt một số thuật toán 32
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 2
Lời nói đầu
Trong các thập niên va qua vic ng dng Công ngh thông tin trong lnh vc
kinh doanh v các hot ng dân s ã thc s bùng n. Ngân hng v các t chc
ti chính lu chuyn hng t ô la mi ngy trên các h thng EFT (Electronic
Fulds Transfer: H thng chuyn tin in t). Các tập đoàn công nghiệp tiến hành
xử lý và truyền nhập các thông tin đắt giá, chẳng hạn về thiết kế hoặc giao dịch
mua bán cổ phiếu, trái phiếu và ngoại tệ với số lợng lớn đợc thực hiện thông qua
mạng máy tính. Lợng thông tin cá nhân khổng lồ ấy đợc lu trữ và xử lý bởi máy
tính. Tất cả những ví dụ trên đều cho thấy phạm vi cho những hành vi gian lận và
tình báo công nghiệp hoạt động đã trở nên vô cùng rộng lớn.
Ngày nay, với sự bùng nổ của công nghệ thông tin đặc biệt là Internet với email,
e-buissiness thì vấn đề bảo vệ thông tin ngày càng quan trọng quyết định sự sống
còn của 1 công ty và các vấn đề an ninh quốc phòng.
Giải pháp hiện thời cho việc bảo vệ của hều hết các quốc gia là kiểm soát lỗi và
mã hóa dữ liệu. Phơng pháp mã hóa dữ liệu xuất hiện từ hàng ngàn năm trớc và đã


có những đóng góp đáng kể trong lĩnh vực bảo mật thông tin.
Với đề tài: Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán
mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ em sẽ trình bày cụ
thể hơn về các thuật toán trong mã hóa cổ điển -một phơng pháp mã hóa xuất hiện
từ rất sớm.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 3
Phần i: các khái niệm cơ bản
Mã hóa cổ điển là phơng pháp mã hóa đơn giản nhất xuất hiện đầu tiên trong
lịch sử ngành mã hóa. Thuật toán đơn giản và dễ hiểu. Những phơng pháp mã hóa
này là cơ sở cho việc nghiên cứu và phát triển thuật toán mã hóa đối xứng đợc sử
dụng ngày nay. Trong mã hóa cổ điển có hai phơng pháp nổi bật là: Mã hóa thay
thế và Mã hóa hoán vị.
Các thông điệp cần chuyển đi và cần đợc bảo vệ an toàn gọi là bản rõ
(plaintext), và đợc ký hiệu là P. Nó có thể là một dòng vào các bít, các file, âm
thanh số hoá, Bản rõ đợc dùng để lu trữ hoặc để truyền đạt thông tin. Trong mọi
trờng hợp bản rõ là thông điệp cần mã hoá.
Quá trình xử lý một thông điệp trớc khi gửi đợc gọi là quá trình mã hoá
(encryption), ký hiệu là E.
Một thông điệp đã đợc mã hoá đợc gọi là bản mã (ciphertext), và đợc ký hiệu là
C.
Quá trình xử lý ngợc lại từ bản mã thành bản rõ đợc gọi là quá trình giải mã
(decryption), ký hiệu là D.
Hàm mã hóa E thực hiện trên P để thu đợc C, ta có:
E(P)=C
Hàm giải mã D thực hiện trên C để thu đợc C, ta có:
D(C)=P
Việc mã hoá và giải mã thờng đợc thực hiện theo một hệ mã đợc mô tả rõ.
Khoá (key) là một giá trị dùng để thực hiện một thuật toán mã hoá. Khoá có thể là
một số, một xâu ký tự, Khoá này có thể nhận một trong nhiều giá trị (càng nhiều

càng tốt). Giới hạn các giá trị có thể của khoá đợc gọi là không gian khoá (space
key). Mỗi khoá k xác định một hàm mã hoá E
k
và một hàm giải mã D
k
. Giá trị của
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 4
khoá quyết định hiệu quả của các hàm mã hoá và giải mã, vì vậy các hàm mã hoá
và giải mã có thể đợc biểu diễn nh sau:
E
k
(P) = C
D
k
(C) = P
Một cách cụ thể hơn, một hệ mã hoá bao gồm: một không gian bản rõ, một
không gian bản mã và một không gian khoá.
- Không gian bản rõ có thể
*
trên bảng chữ cái hoặc tập hợp tất cả các
câu có nghĩa trong một ngôn ngữ tự nhiên nào đó.
- Không gian bản mã có thể là
*
trên bảng chữ cái .
- Không gian khoá K là giới hạn có thể nhận đợc của khoá k. Mỗi khoá sẽ
xác định một cặp các ánh xạ E
k
và D
k

tơng ứng.
Trong một hệ mã hoá nếu khoá để mã và khoá để giải giống nhau thì:
D
k
(E
k
(P))=P
Có nhiều thuật toán mà khoá mã và khoá giải khác nhau. Khi đó, khoá mã k
1
khác
với khoá giải k
2
:
E
k1
(P)=C
D
k2
(C)=P
Nguyn Th Thu Hin - TK6LC1
Bản rõ Mã hoá Giải mã Bản rõ
Bản mã
Khoá
Hình 1. Mã hoá với khoá mã và khoá giải giống nhau
An toàn và bảo mật thông tin 5
D
k2
(E
k1
(P))=P

Nguyễn Thị Thu Hiền - TK6LC1
B¶n râ M· ho¸
Gi¶i m·
B¶n râ
B¶n m·
Kho¸ gi¶i
H×nh 2. M· ho¸ víi kho¸ m· vµ kho¸ gi¶i kh¸c nhau
Kho¸ m·
An ton v bo mt thụng tin 6
Phần ii: Các phơng pháp mã hóa cổ điển
I. Hệ mã hoá thay thế (Substitution Cipher)
Hệ mã hoá thay thế là hệ mã hoá trong đó mỗi ký tự của bản rõ đợc thay thế
bằng ký tự khác trong bản mã (có thể là một chữ cái, một số hoặc một ký hiệu). Sự
thay thế này làm cho bản rõ trở lên khó hiểu đối với mọi ngời nhng ngời nhận sẽ
đảo sự thay thế trong bản mã để đợc bản rõ.
Có 4 kỹ thuật thay thế sau đây:
- Thay thế đơn (A simple substitution cipher): là hệ trong đó một ký tự
của bản rõ đợc thay bằng một ký tự tơng ứng trong bản mã. Một ánh xạ 1-1 từ bản
rõ tới bản mã đợc sử dụng để mã hoá toàn bộ thông điệp.
- Thay thế đồng âm (A homophonic substitution cipher): giống nh hệ
thống mã hoá thay thế đơn, ngoại trừ một ký tự của bản rõ có thể đợc ánh xạ tới
một trong số một vài ký tự của bản mã: sơ đồ ánh xạ 1-n (one-to-many). Ví dụ, A
có thể tơng ứng với 5, 13, 25, hoặc 56, B có thể tơng ứng với 7, 19, 31, hoặc 42,
v.v.
- Thay thế đa mẫu tự (A polyalphbetic substitution cipher): đợc tạo nên từ
nhiều thuật toán mã hoá thay thế đơn. ánh xạ 1-1 nh trong trờng hợp thay thế đơn,
nhng có thể thay đổi trong phạm vi một thông điệp. Ví dụ, có thể có năm thuật toán
mã hoá đơn khác nhau đợc sử dụng; đặc biệt thuật toán mã hoá đơn đợc sử dụng
thay đổi theo vị trí của mỗi ký tự trong bản rõ.
- Thay thế đa sơ đồ (A polygram substitution cipher): là thuật toán trong

đó các khối ký tự đợc mã hoá theo nhóm. Đây là thuật toán tổng quát nhất, cho
phép thay thế các nhóm ký tự của văn bản gốc. Ví dụ, ABA có thể tơng ứng với
RTQ, ABB có thể tơng ứng với SLL, v.v.
Ví dụ ROT13 là một chơng trình mã hoá đơn giản thờng thấy trên hệ thống
UNIX. Trong thuật toán mã hoá này, A đợc thay thế bằng N, B đợc thay thế bằng
O, v.v Mọi ký tự đợc quay dịch 13 vị trí. Đây là một ví dụ về mã hoá thay thế
đơn.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 7
#include <stdio.h>
void main()
{
int c;
while ((c == getchar()) != EOF)
{
if (c >= a && c <= m )
c = c + 13;
else
if (c >= n && c <= z )
c = c 13;
else
if (c >= A && c <= M )
c = c + 13;
else
if (c >= N && c <= Z )
c = c-13;
putchar(c);
}
}
Mã hoá một file hai lần bằng ROT13 và lu giữ kết quả trong file gốc:

P = ROT13(ROT13(P))
Có rất nhiều hệ mã hoá có thể dễ dàng bẻ gẫy bởi vì bản mã không ẩn đi đợc
tần số xuất hiện của các ký tự khác nhau của bản rõ, khoảng 26 ký tự tiếng Anh.
Một nhà thám mã giỏi có thể xây dựng lại đợc bản rõ.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 8
1. Hệ mã hoá CAESAR
Hệ mã hoá nổi tiếng CAESAR là một hệ mã hoá đợc biết sớm nhất, sáng tạo
bởi Julius Caesar. Lần đầu tiên đợc sử dụng trong quân sự. Hệ mã hóa này làm việc
trên bảng chữ cái tiếng Anh 26 ký tự (A, B, , Z).
Trong hệ CAESAR và các hệ tơng tự còn lại ta sử dụng các số tự nhiên thay
cho các ký tự - đánh số các ký tự trong bảng chữ cái theo thứ tự: A là 0, B là 1,
và Z là 25.
A B C D E F G H I J L M N W X Y Z
0 1 2 3 4 5 6 7 8 9 1
1
1
2
1
3
2
2
2
3
2
3
2
5
Các phép toán số học thực hiện theo modul 26. Có nghĩa là 26 đồng nhất với
0, 27 đồng nhất với 1, 28 đồng nhất với 2, Ví dụ:

2ì17 + 5ì9 = 79 = 1 + 3ì26 = 1
Thuật toán:
- Bớc 1: Đa vào bản rõ cần mã hóa
- Bớc 2: Cho khóa k (0 k 25)
- Bớc 3: thay thế mỗi ký tự trong bản rõ bằng 1 ký tự khác bằng cách dịch
ký tự cần mã hóa sang phảI k bớc theo modul 26. Tơng ứng với công
thức:
E
k
() = ( + k) MOD 26
với là một ký tự, k là khóa (0 k 25), MOD là phép chia lấy phần d.
Không gian khoá của hệ CAESAR bao gồm 26 số 0, 1, 2, 25.
Ví dụ: với k=3, A đợc thay bằng D, B đợc thay bằng E, , W đợc thay bằng
Z, , X đợc thay bằng A, Y đợc thay bằng B, và Z đợc thay bằng C. Ta có:
Bảng chữ cái gốc
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 9
Bảng chữ cái dùng để mã hoá
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Ví dụ:
Ví dụ 1: =GOOD, k=8 ta có:
E
8
(G)=(6+8) MOD 26 =14 =O
E
8
(O)=(14+8) MOD 26 =22 =W
E
8

(D)=(3+8) MOD 26 =11 =L
Vậy với bản rõ GOOD ta sẽ mã hóa thành OWWL
Ví dụ 2: =Tinhoc, k=10 ta có:
E
10
(T)=(19+10) MOD 26 =3 =D
E
10
(I)=(8+10) MOD 26 =18 =S
E
10
(N)=(13+10) MOD 26 =23 =X
E
10
(H)=(7+10) MOD 26 =17 =R
E
10
(O)=(14+10) MOD 26 =24 =Y
E
10
(C)=(2+10) MOD 26 =12 =M
Vậy với bản rõ TINHOC ta sẽ mã hóa thành DSXRYM
Ví dụ 3: =Baomat, k=17 ta có:
E
17
(B)=(1+17) MOD 26 =18 =S
E
17
(A)=(0+17) MOD 26 =17 =R
E

17
(O)=(14+17) MOD 26 =5 =F
E
17
(M)=(12+17) MOD 26 =3 =D
E
17
(T)=(19+17) MOD 26 =10 =K
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 10
Vậy với bản rõ BAOMAT ta sẽ mã hóa thành SRFDRK
* Thuật toán giải mã tơng ứng D
k
là lùi lại k bớc trong bảng chữ cái theo
modul 26.
D
k
() = ( - k) MOD 26
Để minh họa, ta xét một vài ví dụ minh hoạ:
Ví dụ 1: = HPWNZXP
- Xét với k=1 ta có thể lùi lại 1 bớc trong bảng chữ cái. Nh vậy bản mã trên
tơng ứng là: GOVMYWO
- k=2, tơng tự thu đợc bản rõ FNULXVN
- k=3, thu đợc bản rõ EMTKWUM
- k=4, thu đợc bản rõ DLSJVTL
- k=5, thu đợc bản rõ CKRIUSK
- k=6, thu đợc bản rõ BJQHTRJ
- k=7, thu đợc bản rõ AIPGSQI
- k=8, thu đợc bản rõ ZHOFRPH
- k=9, thu đợc bản rõ YGNEQOG

- k=10, thu đợc bản rõ XFMDPNF
- k=11, thu đợc bản rõ WELCOME
Đến đây bản rõ có nghĩa (WELCOME) nên ta xác định đợc khóa k = 11
Ví dụ 2: Cho bản mã JBCRCLQRWCRVNBJENBWRWN ta thử liên tiếp các khóa
giải mã để thu đợc các bản rõ:
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 11
J B C R C L Q R W C R V N B J E N B W R W N
(k=1) I A B Q B K P Q V B Q U M A I D M A V Q V M
(k=2) H Z A P A J O P U A P T L Z H C L Z U P U L
(k=3) G Y Z O Z I N O T Z O S K Y G B K Y T O T K
(k=4) F X Y N Y H M N S Y N R J X F A J X S N S J
(k=5) E W X M X G L M R X M Q I W E Z I W R M R I
(k=6) D V W L W F K L Q W L P H V D Y H V Q L Q H
(k=7) C U V K V E J K P V K O G U C X G U P K P G
(k=8) B T U J U D I J O U J N F T B W F T O J O F
(k=9) A S T I T C H I N T I M E S A V E S N I N E
Tới đây ta thu đợc bản rõ có nghĩa và dừng lại, khóa tơng ứng k = 9.
Một số thuộc tính của E
k
và D
k
là:
Tính giao hoán: E
k
và D
k
đợc áp dụng lần lợt, thứ tự không quan trọng.
Ví dụ: E
3

D
7
E
6
D
11
= E
3
E
6
D
7
D
11
= D
9
= E
17
.
Với k bất kỳ thoả mãn 1 k 26 ta có: D
k
= E
26-k
, D
k
E
k
= E
0
= D

0
.
Hệ CAESAR là hệ mã hoá cũ và không an toàn vì không gian khoá của nó
rất nhỏ, do đó có thể thám mã theo phơng pháp vét cạn. Khoá giải mã có thể tính
ngay ra đợc từ khoá mã hoá. Do chỉ có 26 khoá nên ta có thể thử lần lợt các khoá
cho đến khi tìm đợc khoá đúng.
2. Hệ mã hoá AFFINE
Hệ mã hoá AFFINE đợc xác định bởi hai số nguyên a và b, với điều kiện 0
a,b 25 (tức a, b thuộc bảng chữ cái tiếng Anh 26 ký tự). ở đây chúng ta xét hệ làm
việc trên các số tự nhiên thay cho các ký tự nh đã nói ở phần trên, các phép toán số
học đợc thực hiện theo modul 26.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 12
Thuật toán:
- Bớc 1: Đa vào bản rõ cần mã hóa
- Bớc 2: Cho bớc nhảy các ký tự, tức là giá trị a và b
- Bớc 3: Thay thế ký tự ở bản rõ bằng ký tự đợc xác định bởi:
E
k
() = (a + b) MOD 26
Lu ý: khi a = 1 thì ta có hệ mã hoá CAESAR.
Ví dụ: nếu a = 3 và b = 5 thì ta có, bảng số tự nhiên tơng ứng với bảng chữ
cái gốc:
0 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22 23 24 25
bảng số tự nhiên sau khi mã hoá:
5 8 11 14 17 20 23 0 3 6 9 12 15
18 21 24 1 4 7 10 13 16 19 22 25 2
Tơng ứng ta có bảng chữ cái gốc:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

và bảng chữ cái dùng để mã hoá:
F I L O R U X A D G J M P S V Y B E H K N Q T W Z C
Ví dụ1: = THUHIEN, với a=3, b=5 ta có:
E
k
(T) = (3.19 + 5) MOD 26 = 10 = K
E
k
(H) = (3.7 + 5) MOD 26 = 0 = A
E
k
(U) = (3.20 + 5) MOD 26 = 13 = N
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 13
E
k
(I) = (3.8 + 5) MOD 26 = 3 = D
E
k
(E) = (3.4 + 5) MOD 26 = 17 = R
E
k
(N) = (3.13 + 5) MOD 26 = 18 = S
Vậy, với bản rõ THUHIEN ta thu đợc bản mã: KANADRS
Ví dụ2: = KHOGHE, với a=9, b=3 ta có:
E
k
(K) = (9.10+3) MOD 26 = 15 = P
E
k

(H) = (9.7+3) MOD 26 = 14 = O
E
k
(O) = (9.14+3) MOD 26 = 25 = Z
E
k
(G) = (9.6+3) MOD 26 = 5 = F
E
k
(E) = (9.4+3) MOD 26 = 13 = N
E
k
(N) = (3.13 + 5) MOD 26 = 18 = S
Vậy, với bản rõ KHOGHE ta thu đợc bản mã: POZFON
Ví dụ3: = TOTNGHIEP, với a=4, b=11 ta có:
E
k
(T) = (4.19+11) MOD 26 = 9 = J
E
k
(O) = (4.14+11) MOD 26 = 15 = P
E
k
(N) = (4.13+11) MOD 26 = 11 = L
E
k
(G) = (4.6+11) MOD 26 = 9 = J
E
k
(H) = (4.7+11) MOD 26 = 13 = N

E
k
(I) = (4.8+11) MOD 26 = 17 = R
E
k
(E) = (4.4+11) MOD 26 = 1 = B
E
k
(P) = (4.15+11) MOD 26 = 19 = T
Vậy, với bản rõ TOTNGHIEP ta thu đợc bản mã: JPJLJNRBT
Để có thể giải mã đợc ta chú ý rằng hàm mã hoá AFFINE:
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 14
E
k
()=(a + b) MOD 26
phải là hàm đơn ánh hay nói cách khác hàm này có ánh xạ 1-1. Ví dụ với a = 10,
b= 1 ta có ánh xạ 10 + 1. ánh xạ này không thoả mã vì hai ký tự A và N cùng ánh
xạ tới B, vì vậy khi giải mã B có thể đợc giải mã thành A và N. Ngợc lại không có
một ký tự nào ánh xạ tới O, và vì vậy O không xuất hiện trong bảng chữ cái thay
thế. Ta có thể dễ dàng tìm thấy tất cả các cặp ký tự cùng ánh xạ tới một ký tự cũng
nh tất cả các ký tự không xuất hiện trong bảng chữ cái thay thế.
3. Hệ mã hoá Playfair
Nh chúng ta đã thấy, không phải số khóa lớn trong mã bảng chữ đơn đảm
bảo an toàn mã. Một trong các hớng khắc phục là mã bộ các chữ tức là mỗi chữ sẽ
đợc mã bằng 1 số chữ khác nhau tùy thuộc vào các chữ mà nó đứng cạnh. Playfair
là một trong các mã nh vậy, nó đợc sáng tạo bởi Charles Wheastone vào năm 1854
và mang tên ngời bạn là Barlon Playfair. ở đây mỗi chữ có thể đợc mã bằng 1 trong
7 chữ khác nhau tùy ý vào cặp chữ đứng cùng nó trong bảng chữ cái.
Ma trận khóa Playfair: cho trớc 1 từ làm khóa, với điều kiện trong từ khóa đó

không có chữ nào bị lặp. Ta lập ma trận Playfair là ma trận cỡ 5x5 dựa trên từ khóa
đã cho và gồm các chữ trên bảng chữ cái, đợc sắp xếp theo thứ tự nh sau:
- Trớc hết, viết các chữ của từ khóa vào các hàng của ma trận bắt đầu từ
hàng thứ nhất.
- Nếu ma trận còn trống, viết các chữ khác lên bảng chữ cái cha đợc sử
dụng vào các ô còn lại. Có thể viết theo 1 trình tự quy ớc trớc, chẳng hạn
từ đầu bảng chữ cái cho đến cuối.
- Vì có 26 chữ cái tiếng Anh nên thiếu 1 ô. Thông thờng ta dồn 2 chữ nào
đó vào 1 ô chung, chẳng hạn I và J.
- Giả sử sử dụng từ khóa MONARCHY. Lập ma trận khóa Playfair:
M O N A R
C H Y B D
E F G I K
L P Q S T
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 15
U V W X Z
Mã hóa và giải mã: bản rõ đợc mã hóa hai chữ cùng 1 lúc theo quy tắc nh sau:
- Chia bản rõ thành từng cặp chữ. Nếu 1 cặp nào đó có 2 chữ nh nhau thì
chèn thêm 1 chức lọc, chẳng hạn X. Ví dụ trớc khi mã ballon biến đổi thành
balxlon.
- Nếu cả hai chữ trong cặp đều rơi vào cùng 1 hàng thì mã mỗi chữ bằng chữ
ở phía bên phải nó trong cùng 1 hàng của ma trận khóa (cuộn vòng quanh từ cuối
về đầu), chẳng hạn ar thì biến thành RM.
- Nếu cả hai chữ trong cặp đều rơi vào cùng 1 cột, thì mã mỗi chữ bằng chữ ở
phía bên dới nó trong cùng 1 cột của ma trận khóa (cuộn vòng quanh từ cuối về
đầu), chẳng hạn mu thì biến thành CM.
- Trong các trờng hợp khác, mỗi chữ trong cặp đợc mã bởi chữ cùng hàng với
nó và cùng cột với chữ cùng cặp với nó trong ma trận khóa, chẳng hạn hs mã
thành BP và ea thành IM hoặc JM (tùy theo sở thích).

An toàn của mã Playfair:
- An toàn đợc nâng cao hơn so với bảng đơn, vì ta tổng cộng 26x26 = 676
cặp. Mỗi chữ có thể đợc mã bằng 7 chứ khác nhau nên tần suất các chữ cái trên văn
bản tiếng Anh nói chung.
- Muốn sử dụng thống kê tần suất, cần có bảng tần suất 676 cặp để thám mã
(so với 26 của bảng đơn). Nh vậy phải xem xét nhiều trờng hợp hơn và tơng ứng sẽ
có thể có nhiều bản mã hơn cần lựa chọn. Do đó khó thám mã hơn trên mã bảng
chữ đơn.
- Mã Playfair đợc sử dụng rộng rãi nhiều năm trong giới tuân sự Mỹ và Anh
trong chiến tranh Thế giới thứ nhất. Nó có thể bị bẻ khóa nếu cho trớc vài trăm chữ
vì bản mã vẫn còn chứa nhiều cấu trúc của bản rõ.
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 16
4. Hệ mã hoá VIGENERE
Hệ mã hoá này đợc đặt theo tên của một nhà mật mã ngời Pháp Blaise de
Vigenère (1523-1596).
VIGENERE cũng giống nh CAESAR, nhng ở đây khoá đợc thay đổi theo
từng bớc. Hình vuông VIGENERE đợc sử dụng để mã hoá và giải mã.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 17
Z A B C D E F G H I J K L M N O P Q R S T U V W X 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ụ:
M =









5 2
3 3
và M
-1
=








9 20
17 15
.
Nếu d=2 ta có thể viết một phần tử của bản rõ là x = (x
1
, x
2
) và một phần tử
của bản mã là y=( y
1
, y
2
). ở đây, y
1
cũng nh y
2

đều là tổ hợp tuyến tính của x
1
, x
2
.
Chẳng hạn:
y
1
= 11x
1
+3 x
2
y
2
= 8x
1
+7 x
2
Tất nhiên có thể viết gọn hơn theo ký hiệu ma trận nh sau:
( y
1
, y
2
) = ( x
1
, x
2
) =
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à K

i,j
thì có thể viết:
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 21
K=(K
i,j
) với x = (x
1
, x
2
x
d
) P và K K, ta tính:
Y= e
k
(x) = (y
1
, y
2
y
d
) nh sau:
(y
1
, y
2
y
d
) (x
1

, x
2
x
d
)
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
P
1
=








E
H
=









4
7
và P
2
=








P
L
=








15

11
.
theo công thức mã hoá ta có
MP
1
=








5 2
3 3








4
7
=









34
33
=








8
7
=








I
H
= C

1

MP
2
=








5 2
3 3








15
11
=









97
78
=








19
0
=








T
A
= C
2

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
An ton v bo mt thụng tin 22
P
1
= = và P
2
= =
Ta có: theo công thức mã hóa thì
KP
1
= = C
1
KP
2
= = C
2
Vậy ta thu đợc bản mã PIIJ
Ví dụ 3: bản rõ LAMA đợc viết thành
P
1
= = và P
2
= =
Ta có: theo công thức mã hóa thì
KP
1
= = C
1

KP
2
= = C
2
Vậy ta thu đợc bản mã HWKY
Ta xét xem phải thực hiện giải mã nh thế nào, tức là làm thế nào để tính x từ y.
Chúng ta phải dùng ma trận nghịch đảo K
-1
để giải mã. Bản mã đợc giải bằng công
thức:
Nguyn Th Thu Hin - TK6LC1
An ton v bo mt thụng tin 23
P = K
-1
C mod 26
Ví dụ với K =








5 2
3 3
ta có K
-1
=









9 20
17 15
.
Ví dụ 1: Cho bản mã MIXK ta biểu diễn
C
1
= = và C
2
= =
áp dụng công thức giải mã ta có:
K
-1
C
1
= = P
1
K
-1
C
2
= = P
2
Vậy ta thu đợc bản rõ EAVE

Ví dụ 2: Cho bản mã LXAP ta biểu diễn
C
1
= = và C
2
= =
áp dụng công thức giải mã ta có:
K
-1
C
1
= = P
1
Nguyn Th Thu Hin - TK6LC1
An toàn và bảo mật thông tin 24
K
-1
C
2
= = P
2
VËy ta thu ®îc b¶n râ KLVF
Nguyễn Thị Thu Hiền - TK6LC1
An ton v bo mt thụng tin 25
II. Hệ mã hoá hoán vị (Transposition Cipher)
Hệ mã hóa hoán vị là hệ mã hóa trong đó các chữ cái trong bản sẽ không đợc
thay thế bằng các chữ cái khác mà chỉ thay đổi vị trí tức là việc mã hóa chỉ dịch
chuyển vị trí tơng đối giữa các chữ trong bản rõ. Nh vậy, nó dấu bản rõ bằng cách
thay đổi các chữ thực tế đợc dùng. Do đó bản rõ có cùng phân bố tần suất xuất hiện
các chữ nh bản gốc.

Ví dụ một hệ mã hoá đổi chỗ cột đơn giản, bản rõ đợc viết theo hàng ngang
trên trang giấy với độ dài cố định, và bản mã đợc đọc theo hàng dọc (Hình 7).
Bản rõ: COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST ITS
EXPENSIVE
COMPUTERGR
APHICSMAYB
ESLOWBUTAT
LEASTITSEX
PENSIVE
Bản mã:
CAELPOPSEEMHLANPIOSSUCWTITSBIUEMUTERATSGYAERBTX
Hình 7. Mã hoá thay đổi vị trí cột
Phơng pháp này có các kỹ thuật sau:
Đảo ngợc toàn bộ bản rõ: nghĩa là bản rõ đợc viết theo thứ tự ngợc lại để tạo
ra bản mã. Đây là phơng pháp mã hoá đơn giản nhất vì vậy không đảm bảo an toàn.
Ví dụ: bản rõ TRANSPOSITION CIPHER đợc mã hoá thành
REHPICNOITISOPSNART.
Mã hoá theo mẫu hình học: bản rõ đợc sắp xếp lại theo một mẫu hình học
nào đó, thờng là một mảng hoặc một ma trận hai chiều.
Nguyn Th Thu Hin - TK6LC1

×