Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

BÀI 3 – LÝ THUYẾT MÃ HÓA VÀ AN TOÀN THÔNG TIN


1. Mật mã học

Mật mã học là khái niệm đã có từ lâu đời, qua nhiều năm nghiên cứu, phát triển người ta
đã đưa ra một số khái niệm căn bản để định nghĩa về mật mã học như sau:

 Mật mã học (cryptography) là khoa học nghiên cứu phương pháp che dấu thông tin.

 Thông tin được che dấu vẫn có thể bị khám phá mà không cần biết khóa, ngành học đó
gọi là thám mã (cryptanalysis).

 Lý thuyết mật mã nghiên cứu đồng thời mật mã học và thám mã để đánh giá mức độ an
toàn và khả năng bảo mật thông tin

Lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển - các
phương pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng cụ đơn giản. Vào
đầu thế kỷ 20, sự xuất hiện của các thiết bị cơ khí và điện cơ, chẳng hạn như máy Enigma,
đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật mã hóa. Sự ra đời và phát
triển mạnh mẽ của ngành điện tử và máy tính trong những thập kỷ gần đây đã tạo điều kiện
để mật mã học phát triển nhảy vọt lên một tầm cao mới

1.1. Lịch sử phát triển

Mật mã là ngành khoa học biến các thông điệp trở nên bí mật trước những người khác,
những người không có quyền được biết về nội dung của thông điệp. Thông điệp đầu tiên đã
được mã hóa bằng thuật toán mã hóa dịch chuyển Ceasar, được sử dụng bởi quân đội của
Julius Ceasar. Đây là một thuật toán mã hóa đơn giản, chỉ là lấy một chữ cái trong thông
điệp gốc và thay thế bằng một chữ cái khác cách nhau một số xác định vị trí trong bảng chữ
cái Alphabet. Ví dụ như chúng ta sẽ quy định số vị trí dịch chuyển là 4, ký tự a được dịch
chuyển đi 4 vị trí sẽ là ký tự e trong bảng chữ cái Alphabet. Đây là một ví dụ về mã hóa mà
người gửi và người nhận đã biết cách mà thông điệp được mã hóa và cách giải mã thông
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 1
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

điệp, vì vậy họ phải biết khóa mã và khóa giải mã. Nên thuật toán mã hóa này được gọi là
thuật toán mã hóa đối xứng. Trải qua một thời gian dài phát triển thuật toán này ngày càng
được cải tiến, đòi hỏi phải mất rất nhiều thời gian nếu muốn bẻ (tìm được nội dung của thông
điệp đã mã hóa).

Một số thuật toán mã hóa mạnh đã được phát triển từ nguyên lý của thuật toán mà mã
hóa đơn giản Julius Ceasar đã phát triển, thuật toán mà mỗi chữ cái trong bảng Alphabet
được thay bởi một ký tự khác trong bảng Alphabet. Nhưng vấn đề của thuật toán này là nó
có thể dễ dàng bị bẻ bởi phương pháp gọi là phân tính tần số, với phương pháp này bạn có
thể phân tích số lần xuất hiện của mỗi ký tự trong thông điệp đã được mã hóa và gán ký tự
phổ biến nhất bằng ký tự e (đây là một ký tự phổ biến nhất trong bảng chữ cái Alphabet,
theo thứ tự các chữ cái phổ biến nhất là E, T, N, A, O, R, I, S, H). Và tiếp tục phân tích các
chữ các có tần số xuất hiện lớn nhất lúc này thay thế bằng chữ cái có thứ tự tiếp theo trong
dãy các chữ cái có tần suất xuất hiện lớn trong các từ tiếng Anh).

Nên đã có thuật toán mã hóa mới được cải tiến gọi là Vigenere, thuật toán không thể bị
bẻ bởi phương pháp phân tích tần suất.

Một thuật toán mã hóa mạnh khác, có vai trò lớn trong lịch sử mã hóa nhân loại là thuật
toán German enigma (người Đức bí ẩn). Thuật toán này được thực tế hóa bằng cách dụng
một máy để mã hóa ký tự, và để thực hiện những người nghiên cứu cũng đã xây dựng một
máy tính có khả năng lập trình được gọi là Colossus, máy tính được coi là tổ tiên của các
máy vi tính hiện đại.

1.2. Mật mã học qua các giai đoạn

Trải qua một quá trình hình thành và phát triển, mật mã học đã trở thành môn khoa học
quan trọng hang đầu hiện nay khi lượng thông tin trên thế giới bùng nổ kèm theo các vấn đề
an toàn trong quá trình truyền thông. Với lịch sử hình thành và phát triển, nghành mật mã
học có thể chia ra làm các giai đoạn như sau:

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 2


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

 Mật mã học Cổ điển

 Mật mã học Trung cổ

 Mật mã học từ 1800 tới Thế chiến thứ II

 Mật mã học trong Thế chiến thứ II

 Mật mã học Hiện đại

 Mã hóa cổ điển: Các chữ tượng hình không tiêu chuẩn tìm thấy trên các bức tượng
Ai Cập cổ đại (cách đây khoảng 4500). Văn tự cổ này chứa đựng các dấu tích của nền
văn hóa Ai cập cổ đại huyền bí hay văn tự của người Trung Quốc cũng là một trong
những văn tự cổ theo dạng tượng hình không được coi là dạng mật mã.

Hình 1: Văn tự người Ai Cập cổ đại


Mã hóa cổ điển được ghi nhận bởi người Hy Lạp cổ đại. Người Hy Lạp cổ đại đã xây
dựng hệ thống mật mã theo phương pháp chuyển vị (transposition) sử dụng một dụng cụ gọi
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 3
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

là gậy mật mã (scytale). Trong cùng thời đại này, Người Do Thái cổ (Hebrew) sáng
tạo ra thuật toán mã hóa atbash sử dụng phương pháp thay thế (substitution) các ký tự trong
bảng chữ cái. Hai nền văn mình này được coi là nền móng của mật mã học hình thành và
phát triển cho đến ngày nay.

Hình 2: Gậy Scytale của người Hy Lạp


 Mã hóa Trung cổ: Thời Trung cổ, hoàng đế La Mã nổi tiếng Gaius Julius Caesar đã
tạo một công cụ lập mã rất đơn giản theo nguyên lý mã vòng (cyclic code) để trao đổi
thông tin với các tướng lĩnh. Đế chế Lã Mã là một trong những quốc gia đi đầu trong
lĩnh vực mã hóa. Thậm chí đã có những đề cập đến một cuốn sách nói về mật mã
trong quân đội La Mã.

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 4


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 3: Vòng mã hóa Caesar


 Mã hóa cận đại (từ 1800 - thế chiến thứ 2): Trong những giai đoạn tiếp theo, mật mã
học được phát triển mạnh ở Châu Âu và chủ yếu chỉ được sử dụng trong lĩnh vực
quân sự. Rất nhiều các hệ thống mã hóa được phát triển dựa trên nguyên lý thay thế
(substitution) và chuyển vị (transposition). Các kỹ thuật thám mã cũng ngày càng
phát triển, phương pháp phân tích tần suất xuất hiện của các ký tự đã phá vỡ hoàn
toàn các hệ thống mã hóa sử dụng khóa là ký tự đơn (Monoalphabetic cipher). Alberti
được cho là người đã sáng tạo ra kỹ thuật mật mã sử dụng khóa đa ký tự
(Polyalphabetic cipher)

o Trong thế chiến II, các hệ thống mật mã cơ khí và cơ điện tử được sử dụng
rộng rãi mặc dù các hệ thống thủ công vẫn được dùng tại những nơi không đủ
điều kiện.

o Các kỹ thuật phân tích mật mã đã có những đột phá. Người Đức đã sử dụng
rộng rãi một hệ thống máy rô tơ cơ điện tử, dưới nhiều hình thức khác nhau,
có tên gọi là máy Enigma.

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 5


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 4: Máy Enigma của Đức


 Mã hóa cận đại (từ thừ thế chiến thứ 2 – 1970s): Trong giai đoạn này, nhiều
phương pháp toán học đã được ứng dụng trong mật mã học. William F. Friedman
công bố tác phẩm “Index of Coincidence and its application in Cryptography” năm
1920 và ông được cho là cha đẻ của “mật mã học hiện đại”

Marian Rejewski và một nhóm các nhà mật mã học thành công trong việc bẻ gãy mật
mã hệ thống Enigma của quân đội Đức và cung tấp mọi thông tin cho quân đồng
minh, theo đánh giá rút ngắn cuộc chiến được 2 năm

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 6


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 5: William Frederick Friedman (1891 - 1969)


 Mã hóa hiện đại: Claude Shannon, được coi là cha đẻ của lý thuyết thông tin. Những
công trình to lớn của ông như “Lý thuyết về truyền thông trong các hệ thống bảo mật”
và “Lý thuyết toán học trong truyền thông” - cùng với Warren Weaver đã thiết lập
một nền tảng lý thuyết cơ bản cho mật mã học và thám mã học

Giữa thập niên kỷ 1970 được chứng kiến hai tiến bộ công chính lớn (công khai).

o 17/03/1975: Công bố đề xuất Tiêu chuẩn mã hóa dữ liệu (DES). DES đã chính thức
được thay thế bởi AES (Advanced Encryption Standard) năm 2001

o 15/1/1977: Tiêu chuẩn Xử lý Thông tin của Liên bang sử dụng trong máy tính
dân sự (FISP)

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 7


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 6: Claude Elwood Shannon


2. Mật mã và an toàn thông tin

Trao đổi thông tin là mục đích cơ bản của các hệ thống mạng máy tính, và Internet là
một môi trường thuận lợi và lý tưởng để kết nối và truyền tin. Tuy nhiên đây là một môi
trường mở được thiết kế để các hệ thống có thể dễ dàng trao đổi thông tin.

Mã hóa là phương pháp hỗ trợ tốt nhất và cơ bản nhất hiện nay được sử dụng để bảo đảm
an toàn thông tin, chống lại những truy cập bất hợp pháp tới dữ liệu được trao đổi trong các
kênh truyền tin không tin cậy (môi trường mở)

Hình sau mô phỏng quá trình truyền thông tin trên môi trường Internet và những hiểm
họa của nó.

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 8


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 7: Trao đổi thông tin trên môi trường Internet

2.1. Một số khái niệm cơ bản

a) Người gửi và người nhận (Sender and Receiver)

Mục đích của người gửi là muốn gửi thông điệp cho người nhận. Hơn nữa, người gửi
muốn gửi thông điệp một cách an toàn, anh ta muốn chắc chắn rằng kẻ đọc trộm không thể
đọc hiểu được thông điệp mà anh ta gửi đi.

b) Thông điệp và mã hóa (Message and Encrytion)

 Thông điệp là đoạn văn bản rõ nghĩa (plaintext – đôi khi còn được gọi là cleartext)

 Quá trình biến đổi bản rõ trở thành thông điệp vô nghĩa hay khác nghĩa hoàn toàn
được gọi là mã hóa (encryption). Và thông điệp đã được mã hóa gọi là ciphertext (bản
mã), quá trình biến đổi ciphertext trở lại plaintext gọi là giải mã (decryption).

 Kỹ thuật và khoa học giữ cho thông điệp được an toàn như vậy gọi là mật mã (viết
mã – cryptography), và nó được thực hiện bởi người viết mã (cryptographer).

 Thám mã (cryptanalyst) là những người thực hiện kỹ thuật thám mã, kỹ thuật tìm lại
bản rõ từ bản mã mà không cần phải biết khóa mã. Các nhà thám mã hiện đại thường
là những người có kiến thức toán học rất uyên sâu.
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 9
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

 Bản rõ thường được ký hiệu là M (message) hay P (Plaintext). Bản rõ có thể là dòng
các bit dữ liệu, tệp văn bản, tệp ảnh, dòng dữ liệu âm thanh số…

 Bản mã thường được ký hiệu là C. Nó cũng là dữ liệu dạng nhị phân.

 Thủ tục mã hóa được ký hiệu là E hoạt động với dữ liệu là M, ký hiệu trong toán học
là: E(M) = C.

 Thủ tục giải mã được ký hiệu là D được thực hiện với dữ liệu là C tạo ra M: D(C)=M.

c) An ninh thông tin

 Tính bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông
tin chứa đựng trong dạng đã mã hóa của nó. Nói các khác, nó không cho phép
những người khác có thể có được bất kỳ thông tin nào đáng kể về nội dung của
thông điệp.

 Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi
trong quá trình truyền đi hay không.

 Tính xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem
người gửi đó có thực sự gửi thông tin đi hay không.

 Không thể chối bỏ: Người gửi không thể phủ nhận việc đã gửi thông điệp đi.

 Chống lập lại: Không cho phép gửi thông tin nhiều lần đến người nhận mà người
gửi không hề hay biết.

d) Thuật toán và khóa

Thuật toán mã hóa (Crytography Algorithms) hay còn được gọi là viết mã (Cipher),
là thủ tục toán học được sử dụng để mã hóa và giải mã.

Nếu sự an toàn của thuật toán dựa trên việc giữ bí mật cách thức thuật toán được thực
hiện, nó được gọi là thuật toán giới hạn (Restricted Algorithms). Thuật toán bị giới hạn

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 10


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

có những ưu điểm, nhưng chúng lại không thể tương xứng với các chuẩn ngày nay. Với
những nhóm làm việc, khi một người nào đó rời khỏi nhóm thì những người còn lại phải
thay đổi thuật toán, vì anh ta có thể tiết lộ thuật toán.

Tồi tệ hơn, thuật toán bị giới hạn không cho phép chuẩn hóa. Tất cả các nhóm người
sử dụng phải có thuật toán riêng. Chẳng hạn nhóm không thể sử dụng phần mềm nào đó
để phục vụ cho việc mã hóa, vì kẻ nghe trộm có thể cũng mua phần mềm như vậy và tìm
hiểu thuật toán. Họ phải tự thiết kế thuật toán và thực hiện, nếu không có ai trong nhóm
là một người viết mã chuyên nghiệp, họ sẽ không thể biết được thuật toán của họ có thực
sự an toàn hay không.

Khóa có thể là một con số hay một dãy các ký tự được dùng để mã hóa và giải mã
thông điệp. Đối với thuật toán mã hóa đối xứng thì có một khóa dùng chung cho cả quá
trình mã hóa và giải mã. Còn đối với thuật toán mã hóa công khai thì khóa công cộng
được dùng để mã hóa dữ liệu, khóa riêng được dùng để giải mã dữ liệu.

Viết mã hiện đại xử lý vấn đề này với khóa (key), ký hiệu là K. Khóa này có thể là
bất cứ một số nào đó có giá trị rất lớn, và phạm vi có thể của giá trị khóa được gọi là
không gian khóa (keyspace). Cả quá trình mã hóa và giải mã đều sử dụng khóa này, các
hàm này sẽ có dạng:

𝐸𝐾 (𝑀) = 𝐶
𝐷𝐾 (𝐶) = 𝑀
Các hàm này được sử dụng kết hợp như sau:

𝐷𝐾 (𝐸𝐾 (𝑀)) = 𝑀

Một số thuật toán sẽ dụng khóa mã và khóa giải mã khác nhau. Chẳng hạn khóa mã K1
khác khóa giải mã K2. Trong trường hợp này các hàm sẽ có dạng:

𝐸𝐾1 (𝑀) = 𝐶
𝐷𝐾2 (𝐶) = 𝑀
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 11
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

𝐷𝐾2 (𝐸𝐾1 (𝑀)) = 𝑀


Sự an toàn của các thuật toán dựa vào khóa, không thể dựa trên quá trình thực hiện của
thuật toán (hay nguyên lý hoạt động của thuật toán). Điều này có nghĩa là thuật toán có thể
được công bố rộng rãi và phân tích bởi những người có kiến thức trong lĩnh vực. Những
phần mềm sử dụng các thuật toán có thể rất nhiều. Cũng không quan trọng nếu như ai
đó biết được thuật toán của bạn, nếu anh ta không biết khóa mật của bạn, anh ta không thể
đọc được thông điệp của bạn. Hệ mật mã là một thuật toán, cộng thêm tất cả các bản rõ, bản
mã và các khóa.

3. Mã hóa đối xứng

Hay còn gọi là các hệ thống mã hóa khóa đồng bộ (Symmetric Key Cryptography - SKC)
là những hệ thống mã hóa được sử dụng trong suốt 4000 lịch sử mật mã học cho tới những
thập niên 70s thế kỷ trước

SKC bao gồm hai thành phần quan trọng đó là thuật toán và khóa (lock and key) để đảm
bảo an toàn thông tin trao đổi trong môi trường mở. Hai thành phần này được sử dụng để
đánh giá độ an toàn của hệ thống mã hóa

Hình 8: Mã hóa đối xứng


Các hệ thống mã hóa khóa đối xứng là những hệ thống mà quá trình mã hóa và giải mã
sử dụng cùng một khóa, tức là các đối tác phải có cùng một khóa (trao đổi trước đó). Để đảm

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 12


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

bảo an toàn khóa này phải được giữ bí mật, mỗi cặp truyền tin phải có một bộ khóa riêng
(Secret Key Cryptography)

Hình 9: Sơ đồ mã hóa và giải mã


3.1. Các nguyên lý mã hóa

Dữ liệu của các hệ thống mã hóa được thực hiện trên các bộ ký tự của các ngôn ngữ,
hoặc các tín hiệu điện điện tử biểu diễn dữ liệu đó.

Tập thông điệp, tập khóa và tập bảng mã là tập hợp của bộ ký tự hoặc tập hợp các tín
hiệu sử dụng trong truyền tin. Ví dụ: trong bộ chữ cái Latin ta có 26 chữ cái, hoặc các tín
hiệu nhị phân biểu diễn dữ liệu trên máy tính

Các hệ thống mã hóa dựa trên 2 nguyên lý cơ bản của mã hóa cổ điển đó là Nguyên lý
mã thay thê (Substitution Cipher) và Nguyên lý mã chuyển vị (Transposition Cipher)

3.1.1. Nguyên lý thay thế

a) Mã thay thế đơn

Ký hiệu Zn là tập các số nguyên từ 1 đến n-1, sử dụng cho vành số nguyên Zn với các
phép cộng và nhân modulo m. Giả sử ta thực hiện trên bảng chữ cái Latin gồm 26 ký tự
(Z26) được thay thế bới các số nguyên. Mã thay thế được mô tả như sau:

 P = C = K = Z26
 Với mỗi k K ta xác định
 e  E, ek(p) = c = p + k mod 26
 d  D, dk(c) = p = c – k mod 26
 Với x, y  Z26, p  P, c  C
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 13
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Ví dụ: mã thay thế đơn Caesar

• Có thể định nghĩa việc mã hoá trên qua ánh xạ trên bảng chữ cái sau:

a b cd e fghi j k l mn opq r s t u vwxyz

DEFGHIJKLMNOPQRSTUVWXYZABC

• Bằng cách gán thứ tự các ký bởi các giá trị tương ứng của Z

abcdefghi j k l m

0 1 2 3 4 5 6 7 8 9 10 11 12

n o p q r s t u v w x y z

13 14 15 16 17 18 19 20 21 22 23 24 25

• Ta có thể xem mã Ceasar được định nghĩa qua phép tịnh tiến:

c = E(p) = (p + k) mod (26)

p = D(c) = (c – k) mod (26)

• Ở đây, p là số thứ tự của chữ trong bản rõ và c là số thứ tự của chữ tương ứng
của bản mã; k là khoá của mã Ceasar. Có 26 giá trị khác nhau của k, nên có 26
khoá khác nhau. Thực tế độ dài khoá ở đây chỉ là 1, vì mọi chữ đều tịnh tiến
đi một khoảng như nhau.

b) Phương pháp thám mã bằng phân tích tần suất

Điều quan trọng là mã thế trên bảng chữ đơn để lại dấu vết về tần suất tương đối của các
ký tự. Điều đó được phát hiện bởi các nhà khoa học Ai cập từ thế kỷ thứ 9. Baker và Piper
đã thống kê bảng chữ cái Latin sử dụng cho tiếng Anh. Do đó có cách thám mã trên bảng
chữ đơn như sau:

 Sử dụng các bảng tần suất xuất hiện các ký tự trong ngôn ngữ

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 14


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

 Tính toán tần suất của các chữ trong bản mã

 So sánh với các giá trị đã biết

 Trên bảng chữ đơn cần xác định các chữ dùng các bảng bộ đôi và bộ ba
trợ giúp.

Hình 10: Phương pháp thám mã bằng tần suất


• E: có xác suất khoảng 0,127

• T, A, O, I, N, S, H, R : mỗi ký tự có xác suất từ 0,06 đến 0,09

• D, L : mỗi ký tự có xác suất khoảng 0,04

• C, U, M, W, F, G, Y, P, B: mỗi ký tự có xác suất từ 0,015 đến 0,028

• V, K, J, X, Q, Z mỗi ký tự có xác suất nhỏ hơn 0,01

• 30 bộ đôi thông dụng nhất (theo hứ tự giảm dần) là: TH, HE, IN, ER,
AN, RE, ED, ON, ES, ST, EN, AT, TO, NT, HA, ND, OU, EA, NG,
AS, OR, TI, IS, ET, IT, AR, TE, SE, HI và OF

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 15


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

• 12 bộ ba thông dụng nhất (theo thứ tự giảm dần ) là: THE, ING, AND,
HER, ERE, ENT, THA, NTH, WAS, ETH, FOR và DTH.

Ví dụ: cho bản mã, biết rằng sử dụng mã thay thế đơn

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZH
MDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOUDTM
OHMQ

- Tính tần suất các chữ

- Đoán P và Z là e và t

- Khi đó ZW là th và ZWP là the


- Suy luận tiếp tục ta có bản rõ:

“It was disclosed yesterday that several informal but direct contacts have been made
with politicalrepresentatives in Moscow”

c) Mã thay thế đa hình

Tương tự như mã thay thế đơn nhưng không thực hiện trên từng ký tự mà thực hiện trên
từng bộ m ký tự với một dòng khóa thay thế. Mã được xác định như sau:

 Cho m là số nguyên dương

 P = C = K = Zm26

 Với mỗi K = (k1, k2, …, km) K ta xác định

 e  E, eK(p1, p2, …, pm) = c = (pi + ki) mod 26

 d  D, dK(c1, c2, …, cm) = p = (ci – ki) mod 26

 Với x, y  Z26, p  P, c  C

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 16


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Mã thay thế đa hình làm tăng độ an toàn cho mã trên bảng chữ vì sử dụng nhiều khóa
khác nhau để mã hóa. Ở đây mỗi chữ có thể được mã bằng bất kỳ chữ nào trong bản mã tùy
thuộc vào ngữ cảnh khi mã hoá.

Nguyên lý này sẽ che dấu tần suất các chữ xuất hiện trong bản mã. Do đó làm mất bớt
cấu trúc của bản rõ được thể hiện trên bản mã và làm cho thám mã đa hình khó hơn. Sử dụng
lần lượt dòng khóa để mã hóa bản rõ và lặp lại từ đầu sau khi kết thúc. Độ dài khoá là chu
kỳ lặp của các bảng chữ. Độ dài càng lớn và nhiều chữ khác nhau được sử dụng trong từ
khoá thì càng khó thám mã.

Mã thay thế đa hình đơn giản nhất là mã Vigenère. Thực chất quá trình mã hoá Vigenere
là việc tiến hành đồng thời dùng nhiều mã Ceasar cùng một lúc trên bản rõ với nhiều khoá
khác nhau. Khoá cho mỗi chữ dùng để mã phụ thuộc vào vị trí của chữ đó trong bản rõ và
được lấy trong từ khoá theo thứ tự tương ứng. Cách thực hiện (hoặc dùng bảng tabula recta)

• Viết bản rõ ra

• Viết từ khoá lặp nhiều lần phía trên tương ứng của nó

• Sử dụng mỗi chữ của từ khoá như khoá của mã Ceasar

• Mã chữ tương ứng của bản rõ với bước nhảy tương ứng.

Ví dụ: Chẳng hạn sử dụng khoá deceptive

plaintext: wearediscoveredsaveyourself

key: deceptivedeceptivedeceptiveDE

ciphertext: ZICVTWQNGRZGVTWAVZHCQYGL

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 17


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Hình 11: Mã thay thế đa hình


3.1.2. Nguyên lý mã chuyển vị

Khóa của mã lý thay thế là một hoán vị bảng chữ cái. Gọi S(E) là tập hợp tất cả các hoán
vị các phần tử của E. Giả sử ta thực hiện trên bảng chữ cái Latin gồm 26 ký tự (Z26). Mã
thay thế được mô tả như sau:

• P=C=Z26

• Với mỗi k  K là một hoán vị trên Z26, ta xác định.

• ek E, ek(x) = k(x) = y

• dk  D, dk (y) = k-1(y) = x

Với x, y  Z26, và k-1 là nghịch đảo của k

a) Mã chuyển vị đơn

Về nguyên tắc, mã thay thế sẽ sử dụng ký tự bản mã để thay vào cho ký tự bản rõ. Mã
chuyển vị là nguyên lý thay đổi vị trí của các ký tự trong bản rõ để tạo thành bản mã theo
phương pháp nào đó. Theo nguyên lý này, tất cả các ký tự trong bản mã tương tự với các ký
tự trong bản rõ

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 18


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Nguyên lý này bắt nguồn từ mã Scytale với phương pháp sử dụng bảng chuyển vị hình
chữ nhật. Nguyên lý này đòi hỏi thống nhất kích thước của bảng và cách thức đọc dữ liệu từ
bảng. Với các bước:

 Bản rõ được viết theo hàng của bảng (kích thước tùy chọn)

 Bản mã sẽ được lấy ra theo cột

 Bản mã được viết theo cột và lấy ra theo hàng để giải mã

 Ví dụ: Cho bảng chuyển vị có kích thước 5x6

Plaintext LASTNITEWASHEAVENPLEASEMARRYME

Hình 12: Mã chuyển vị đơn


b) Một số phương pháp thám mã

Nhận dạng sự phân bổ ký tự: nếu lượng ký tự trong bản mã và bản rõ tương tự như nhau
ta có thể nhận ra đây là mã chuyển vị. Sau đó ta có thể dùng phương pháp anagramming
(dịch chuyển quay vòng) để tìm được từ có nghĩa

Nếu ta biết được một chút thông tin trong bản rõ hoặc ý đồ của thông tin, có thể nhận
dạng theo mẫu. Sử dụng phương pháp dự đoán keyword theo mẫu của bản mã.

Ví dụ: LTELAAEAERSWVARTAESYNSNEMIHPME

c) Mã chuyển vị đa hình
Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 19
Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Mã chuyển vị đơn rất dễ dàng bị phá những nếu ta sử dụng các phương pháp đa hình thì
sẽ tăng độ phức tạp tính toán lên nhiều lần

Hình 13: Lặp lại nhiều lần trên bảng dịch chuyển
Hoặc dịch chuyển theo bảng đường chéo.

Bảng sơ đồ thay thế

3.1.3. Nguyên lý kết hợp

Các nhà mật mã học đã nhận ra việc sử dụng kết hợp cả 2 nguyên lý nói trên tạo ra những
thuật toán mã hóa đảm bảo che dấu được các vết tích để chống lại các dạng tấn công. Dù chỉ
cần sử dụng mã thay thế đơn và dịch chuyển đơn lặp đi lặp lại nhiều lần

Việc che dấu các vết tích trong mật mã rất quan trọng vì nó sẽ gây khó khăn cho những
nhà thám mã, vì với sự hỗ trợ bởi các thiết bị máy móc cho phép tăng tốc độ xử lý và sử
dụng các phép thử cần thiết

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 20


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Đặc biệt trong mã hóa hiện đại, ta cần thiết phải xây dựng được những hệ thống mã hóa,
trong đó các thuật toán (phương pháp) là công khai mà vẫn đảm bảo được độ an toàn khi chỉ
cần giữ bí mật được khóa

Polibius, người Hy Lạp 203-120 B.C đã xây dựng phương pháp lập mã, chuyển đổi các
ký tự thành chữ số và sau này được biết đến với tên thuật toán Checkerboard (có thể sử
dụng bảng không ký tự ngẫu nhiên – không tuần tự)

Hình 14: Ma trận vuông Polobius


Cách thức biến đổi ký tự thành số:

• Một ký tự bản rõ đưa vào sẽ được biến đổi thành số như sau: chữ số thứ nhất
lấy chỉ số hàng, chữ số thứ 2 lấy chỉ số cột

• I và J có chung chỉ số và sẽ được sử dụng tùy vào ngữ cảnh của bản rõ

Ví dụ: H O M N A O

Được thay thế bằng các số: 23 34 32 33 11 34

Áp dụng chuyển vị như sau:

Ta được kết quả: 23 33 13 34 23 14

H N C O H D

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 21


Trung tâm Đào tạo E-Learning Cơ hội học tập cho mọi người

Một trong những thuật toán kết hợp là ADFGVX của người Đức trong Thế chiến thứ I.
Georges Painvin, nhà mật mã học người Pháp đã tìm ra phương pháp phá mã dựa vào phương
pháp tần số, cùng số lượng lớn thông điệp, so sánh các thông điệp có cùng chuỗi kết thúc và
tần suất để dò tìm mã

Các thuật toán mã hóa hiện đại phần lớn dựa trên nguyên lý kêt hợp. Thuật toán kinh
điển DES sử dụng 16 vòng dịch chuyển và thay thế các khối ký tự để mã hóa và giải mã.

Chúc Anh/ Chị học tập tốt!

Bài 3: Lý thuyết mã hóa và an toàn thông tin Trang 22

You might also like