Một số phương pháp mã hoá đối xứng

Tóm tắt: Bảo mật thông tin là một trong những lĩnh vực nghiên đang được phát

triển rất mạnh trong thời đại bùng nổ thông tin ngày nay. Thông tin khi được

lưu trữ hoặc truyền tải cần được mã hóa bằng những phương pháp mã hóa tốt

và tối ưu. Trong bài viết này, sẽ trình bày các phương pháp mã hóa đối xứng

cơ bản.

pdf 6 trang phuongnguyen 9720
Bạn đang xem tài liệu "Một số phương pháp mã hoá đối xứng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Một số phương pháp mã hoá đối xứng

Một số phương pháp mã hoá đối xứng
Thông báo Khoa học và Công nghệ * Số 1-2015 108 
MỘT SỐ PHƢƠNG PHÁP MÃ HOÁ ĐỐI XỨNG 
ThS. Nguyễn Lê Tín 
Trung Tâm Ngoại ngữ - Tin học, Trường Đại học Xây dựng Miền Trung 
Tóm tắt: Bảo mật thông tin là một trong những lĩnh vực nghiên đang được phát 
triển rất mạnh trong thời đại bùng nổ thông tin ngày nay. Thông tin khi được 
lưu trữ hoặc truyền tải cần được mã hóa bằng những phương pháp mã hóa tốt 
và tối ưu. Trong bài viết này, sẽ trình bày các phương pháp mã hóa đối xứng 
cơ bản. 
Từ khóa: Bảo mật thông tin, mã hóa đối xứng, phân bố tần suất, giả mã. 
Trong bài „TỪ BẢO MẬT 
THÔNG TIN ĐẾN CHỮ KÝ ĐIỆN 
TỬ” số 2 năm 2014 Thông báo và Công 
nghệ đã trình bày một số phương pháp 
mã hóa và giải mã thông dụng trong đó 
phương pháp mã hóa đa ký tự Hill. Tuy 
nhiên, nhược điểm của phương pháp này 
là có thể giải mã bằng quy luật phân bố 
tần suất. Trong bài viết này sẽ trình bày 
một số phương pháp khắc phục được 
nhược điểm này. 
1. Mã hóa thay thế đa bảng 
Với sự phát hiện ra quy luật phân 
bố tần suất, các nhà giải mã đang tạm 
thời chiếm ưu thế trong cuộc chiến mã 
hóa - giải mã. Cho đến thế kỷ thứ 15, 
một nhà ngoại giao người Pháp tên là 
Vigenere đã tìm ra phương án mã hóa 
thay thế đa bảng. Phương pháp 
Vigenere dựa trên bảng sau đây: 
Bảng 1: Bảng mã Vigenere 
Key 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 
A 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 
Thông báo Khoa học và Công nghệ * Số 1-2015 109 
W 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 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 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 
Z 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 
Dòng thứ K của bảng mã Vigenere 
là một mã hóa Ceasar k-1 vị trí. Ví dụ, 
dòng thứ 4, ứng với từ khóa D là mã hóa 
Ceasar 3 vị trí. (Trong trường hợp tổng 
quát, mỗi dòng của bảng Vigenere 
không phải là một mã hóa Ceasar mà là 
một mã hóa đơn bảng, do đó có tên gọi 
là mã hóa đa bảng). 
Để mã hóa một thông điệp thì cần 
có một khóa có chiều dài bằng chiều 
dài của thông điệp. Thường thì khóa là 
một cụm từ nào đó và được viết lặp lại 
cho đến khi có chiều dài bằng chiều dài 
thông điệp. Ví dụ với thông điệp là, 
“Mien Trung University of Civil 
Engineering”và khóa là từ 
informatics, chúng ta mã hóa thông 
điệp như sau: 
Bảng 2: Mã hóa thông điệp 
m i e n t r u n g u n i v e r s i t y o f c i v i l e n g i n e e r i n g 
I N F O R M A T I C S I N F O R M A T I C S I N F O R A T I C S I N F O 
U V J D K D U G O P F Q I J F J U T R W H U Q I N Z V Z G B V G W Z V S U 
m i e n t r u n g u n i v e r s i t y 
I N F O R M A T I C S I N F O R M A T 
U V J D K D U G O P F Q I J F J U T R 
o f c i v i l e n g i n e e r i n g 
I C S I N F O R M A T I C S I N F O 
W H U Q I N Z V Z G B V G W Z V S U 
 Trong ví dụ trên, ứng với với ký tự 
m trong thông điệp là chữ I trong khóa, 
nên dòng mã hóa thứ 9 ứng với khóa I 
trong bảng Vigenere được chọn, do đó 
ký tự m được mã hóa thành ký tự U. 
Tiếp tục, với ký tự i trong thông điệp và 
khóa là ký tự N nên dòng mã hóa thứ 14 
với khóa N trong bảng mã Vigenere 
được chọn. Dó đó ký tự i được mã hóa 
thành ký tự V. Tương tự như vậy cho 
các chữ còn lại. 
Trong ví dụ trên, các chữ e trong 
thông điệp được mã hóa tương ứng 
thành J, V, G, W, trong bảng mã. Do đó 
phương pháp giải mã dựa trên thống kê 
tần suất chữ cái là không thực hiện được. 
Trong 3 thế kỷ sau đó mã hóa Vigenere 
được xem là mã hóa không thể giải mã. 
Các nhà mã hóa lại chiếm ưu thế trở lại 
so với người giải mã. 
Đến thế kỷ 19, nhà khoa học người 
Anh Charles Barbage, đã tìm ra cách 
giải mã Vigenere. Việc giải mã bằng 
cách thống kê sự lặp lại của các cụm từ 
để phỏng đoán chiều dài của khóa, trong 
ví dụ trên cụm từ QI được lặp lại cách 
nhau 11 vị trí nên có thể đoán chiều dài 
của khóa là 11. Và từ đó có thể tách bản 
mã thành 11 phần, phần thứ nhất gồm 
các chữ 1, 12, 23, 34, , phần thứ hai 
gồm các chữ 2, 13, 24, 35, , cho đến 
phần thứ chín. Mỗi phần được xem như 
được mã hóa bằng phương pháp mã hóa 
đơn bảng (phương pháp Ceasar). Từ đó 
áp dụng phương pháp giải mã dựa trên 
tần suất chữ cái cho từng phần một. Cuối 
Thông báo Khoa học và Công nghệ * Số 1-2015 110 
cùng ráp lại sẽ tìm ra được thông điệp 
ban đầu. 
2. One-Time Pad 
Có thể thấy rằng điểm yếu của mã 
hóa đa bảng là do sự lặp lại các từ trong 
khóa, ví dụ từ INFORMATICS được lặp 
đi lặp lại nhiều lần. Điều này làm cho 
vẫn tồn tại một mối liên quan giữa thông 
điệp và bản mã hóa, ví dụ cụm từ „iv‟ 
trong thông điệp được lặp lại thì cụm từ 
QI cũng được lặp lại trong bản mã. 
Người giải mã tận dụng mối liên quan 
này để thực hiện giải mã. Do đó, vấn đề 
ở đây là làm sao để giữa thông điệp gốc 
ban đầu và bản mã hóa thật sự ngẫu 
nhiên, không tồn tại mối quan hệ nào. 
Để giải quyết vấn đề này, vào cuối cuộc 
chiến tranh thế giới lần thứ nhất, Joseph 
Mauborgne, giám đốc viện nghiên cứu 
mật mã của quân đội Mỹ đã đề xuất 
phương án là dùng khóa ngẫu nhiên. 
Khóa ngẫu nhiên có chiều dài bằng 
chiều dài của thông điệp gốc ban đầu, 
mỗi khóa chỉ sử dụng một lần. 
Ví dụ mã hóa thông điệp 
“wearediscoveredsaveyourself” 
Thông điệp: 
wearediscoveredsaveyourself 
Khóa K1: 
FHWYKLVMKVKXCVKDJSFS
APXZCVP 
Bản mã C: 
BLWPOODEMJFBTZNVJNJQOJ
ORGGU 
Nếu ta dùng khóa K1 để giải mã thì 
sẽ có được lại thông điệp gốc ban đầu 
“wearediscoveredsaveyourself”. Tuy 
nhiên xét hai trường hợp giải mã bản mã 
trên với 2 khóa khác như sau: 
Trƣờng hợp 1: 
Bản mã C: 
BLWPOODEMJFBTZNVJNJQOJ
ORGGU 
Khóa K2: 
IESRLKBWJFCIFZUCJLZXAXA
APSY 
Bản giải mã: 
theydecidedtoattacktomorrow (they 
decided to attack tomorrow) 
Trƣờng hợp 2: 
 Bản mã C: 
 BLWPOODEMJFBTZNVJNJQOJ
ORGGU 
 Khóa K3: 
 FHAHDDRAIQFIASJGJWQSVV
BJAZB 
Bản giải mã: 
wewillmeetatthepartytonight (we 
will meet at the party tonight) 
Trong cả hai trường hợp trên thì 
bản giải mã đều có ý nghĩa. Điều này có 
nghĩa là nếu người giải mã thực hiện giải 
mã vét cạn thì sẽ tìm được nhiều khóa 
ứng với nhiều bản tin có ý nghĩa, do đó 
sẽ không biết được bản tin nào là thông 
điệp gốc. Điều này chứng minh phương 
pháp One-Time Pad là phương pháp mã 
hóa an toàn tuyệt đối. 
Một điều cần chú ý là để phương 
pháp One-Time Pad là an toàn tuyệt đối 
thì mỗi khóa chỉ được sử dụng một lần. 
Nếu một khóa được sử dụng nhiều lần 
thì cũng không khác gì việc lặp lại một 
từ trong khóa (ví dụ khóa có từ 
INFORMATICS được lặp lại). Ngoài ra 
các khóa phải thật sự ngẫu nhiên với 
nhau. Nếu các điều này bị vi phạm thì sẽ 
có một mối liên hệ giữa thông điệp và 
bản mã, mà người giải mã sẽ tận dụng 
mối quan hệ này. 
Tuy nhiên, phương pháp One-Time 
Pad không có ý nghĩa sử dụng thực tế. 
Thông báo Khoa học và Công nghệ * Số 1-2015 111 
Vì chiều dài khóa bằng chiều dài bản tin, 
mỗi khóa chỉ sử dụng một lần, nên thay 
vì truyền khóa trên kênh an toàn thì có 
thể truyền trực tiếp thông điệp mà không 
cần quan tâm đến vấn đề mã hóa. 
3. Mã hoán vị (Permutation Cipher) 
Các phương pháp mã hóa đã trình 
bày cho đến thời điểm này, đều sử dụng 
phương thức thay một chữ cái trong 
thông điệp bằng một chữ cái khác trong 
bản mã (phương pháp thay thế). 
Một cách thực hiện khác là xáo 
trộn thứ tự của các chữ cái trong thông 
điệp gốc. Do thứ tự của các chữ cái bị 
mất đi nên người đọc không thể hiểu 
được ý nghĩa của bản tin dù các chữ đó 
không thay đổi. 
Một cách thực hiện đơn giản là ghi 
thông điệp theo từng hàng, sau đó kết 
xuất bản mã dựa trên các cột. Ví dụ 
thông điệp 
“attackpostponeduntilthisnoon” được 
viết lại thành bảng 4x7 như sau: 
Bảng 3: Thông điệp được mã hóa theo cột và dòng 
Khi kết xuất theo từng cột thì có được bản mã: 
“AODHTSUITTNSAPTNCOIOKNLOPETN” 
Một cơ chế phức tạp hơn là chúng ta có thể hoán vị các cột trước khi kết xuất bản 
mã. Ví dụ chọn một khóa là MONARCH, ta có thể hoán vị các cột: 
Bảng 4: Thông điệp được mã hóa theo cột và dòng nhưng được hóa vị cột 
Hoán vị cột thứ 1 với cột thứ 4 trước khi kết xuất bản mã và có được bản mã: 
“APTNKNL OPETNAO DHTTNST SUICOIO”việc giải mã được tiến hành theo thứ 
tự ngược lại. 
Để an toàn hơn nữa, có thể áp dụng phương pháp hoán vị 2 lần (double 
transposition), tức sau khi hoán vị lần 1, ta lại lấy kết quả đó hoán vị thêm một lần 
nữa: 
Thông báo Khoa học và Công nghệ * Số 1-2015 112 
Bảng 5: Thông điệp được mã hóa theo cột và dòng nhưng được hóa vị cột 2 lần 
Hoán vị cột thứ 2 và cột thứ 7 
trước khi kết xuất bản mã và có được 
bản mã: 
“APTNPETNTTNSAODHCOIOKNLO
TSUI”. Người ta đã đánh giá rằng giải 
mã phương pháp hoán vị 2 lần không 
phải là chuyện dễ vì rất khó đoán ra 
được quy luật hoán vị. Ngoài ra không 
thể áp dụng được phương pháp phân tích 
tần suất chữ cái giống như phương pháp 
thay thế vì tần suất chữ cái của thông 
điệp và bản mã là giống nhau. 
4. Tổng kết 
Các phương pháp mã hóa cổ điển 
thường dựa trên hai phương thức. Cách 
thứ nhất là dùng phương thức thay thế 
một chữ cái trong bản thông điệp gốc 
ban đầu thành một chữ cái khác trong 
bản mã (substitution). Các mã hóa dùng 
phương thức này như: mã hóa Ceasar, 
mã hóa thay thế đơn bảng, đa bảng, 
One-time pad. Cách thứ hai là dùng 
phương thức hoán vị để thay đổi thứ tự 
ban đầu của các chữ cái trong bản thông 
điệp gốc. Hai phương thức này cũng 
đóng vai trò quan trọng trong mã hóa đối 
xứng hiện đại được trình bày trong phần 
sau. Trong chương này, chúng ta đã xem 
xét một số phương thức giải mã. Mục 
tiêu của việc giải mã là từ bản mã đi tìm 
thông điệp gốc, hoặc khóa, hoặc cả hai. 
Chúng ta giả định rằng người giải mã 
biết rõ thuật toán mã hóa và giải mã 
(luật Kerchoff). Việc giải mã sẽ có 3 
tình huống sau: 
Chỉ biết bản mã (ciphertext–only): 
Đây là trường hợp gây khó khăn nhất 
cho người giải mã. Các trường hợp giải 
mã được trình bày trong chương này 
thuộc dạng ciphertext only. 
Biết một số cặp thông điệp – bản 
mã (known–plaintext): Trong trường 
hợp này, người giải mã có được một vài 
cặp thông điệp và bản mã tương ứng. 
Việc biết được một vài cặp thông điệp – 
bản mã làm cho người giải mã dễ dàng 
hơn trong việc tìm khóa. Ví dụ, đối với 
mã hóa Vigenere, nếu người giải mã chỉ 
cần biết một cặp thông điệp – bản mã thì 
sẽ dễ dàng suy ra được khóa, từ đó giải 
các bản mã khác mà cũng được mã hóa 
bằng khóa này. Ví dụ: nếu biết bản mã: 
UVJDKDUGOPFQIJFJUTRWHUQIN
ZVZGBVGWZVSU tương ứng thông 
điệp gốc là ‘mien trung university of 
civil engineering’, người giải mã có thể 
tra ngược bản Vigenere và tìm được 
khóa INFORMATICS để giải các bản 
mã khác. 
Một số cặp thông điệp – bản được lựa 
chọn (choosen–plaintext): Trong trường 
hợp này, người giải mã có khả năng tự 
lựa một số thông điệp gốc và quan sát 
được bản mã tương ứng. Ví dụ khi bạn 
đi ăn trưa và quên khóa máy, người giải 
mã có thể dùng chương trình mã hóa của 
bạn để thực hiện mã hóa một số bản tin 
Thông báo Khoa học và Công nghệ * Số 1-2015 113 
chọn trước và có được bản mã tương 
ứng (dù không biết khóa). Như vậy đối 
với trường hợp 2 và 3 thì người giải mã 
sẽ dễ dàng hơn trong việc giải mã so với 
trường hợp 1. Điều này đặt ra thách thức 
cho các nhà nghiên cứu là phải tìm ra 
các thuật toán mã hóa sao cho không thể 
bị giải mã không chỉ trong trường hợp 1 
mà còn ngay cả trong trường hợp 2 và 
3. Đó là một số thuật toán mà chúng ta 
sẽ tìm hiểu trong phần tiếp theo của 
Thông báo Khoa học và Công nghệ của 
số kế tiếp “Mã hóa đối xứng hiện đại”.
TÀI LIỆU THAM KHẢO 
[1] Mark Stamp. 2006. Information Security Principles and Practices - John 
Wiley&Son. 
[2]. William Stallings. 2011. Cryptographyand Network Security Principlesand 
Practice Fifth Edition - Prentice Hall. 
[3]. Lee Barken. 2003. How Secure Is Your Wireless Network - Prentice Hall. 

File đính kèm:

  • pdfmot_so_phuong_phap_ma_hoa_doi_xung.pdf