Bài giảng Nhập môn An toàn thông tin - Chương 2: Mã hóa - Phần 1: Mã hóa đối xứng
1. Giới thiệu 2. Những khái niệm cơ bản về mã hóa 3. Hàm cửa lật một chiều và mã công khai 4. Một số mã công khai thông dụng 5. Nguyên lý thiết kế mã đối xứng 6. Một số mã đối xứng thông dụng
Bạn đang xem trước 20 trang tài liệu Bài giảng Nhập môn An toàn thông tin - Chương 2: Mã hóa - Phần 1: Mã hóa đối xứng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2Mã hóa đối xứng
SYMMETRIC CIPHERS
(Cryptography)
NỘI DUNG
1. Giới thiệu
2. Những khái niệm cơ bản về mã hóa
3. Hàm cửa lật một chiều và mã công khai
4. Một số mã công khai thông dụng
5. Nguyên lý thiết kế mã đối xứng
6. Một số mã đối xứng thông dụng
1-2Trần Thị Kim Chi
Giới thiệu
1-3Trần Thị Kim Chi
Giới thiệu
1-4Trần Thị Kim Chi
Vấn Đề đặt ra
• Tại sao chúng ta cần mã hóa?
• Mã hóa là một phương pháp hỗ trợ rất tốt cho
trong việc chống lại những truy cập bất hợp
pháp tới dữ liệu được truyền đi qua các kênh
truyền thông.
• Mã hoá sẽ khiến cho nội dung thông tin được
truyền đi dưới dạng mờ và không thể đọc được
đối với bất kỳ ai cố tình muốn lấy thông tin đó.
1-5Trần Thị Kim Chi
Mật mã học là gì?
• Mật mã học bao gồm hai lĩnh vực : mã hóa
(cryptography) và thám mã (cryptanalysis codebreaking)
trong đó:
• Mã hóa: nghiên cứu các thuật toán và phương thức để
đảm bảo những bí mật và xác thực của thông tin gồm
các hệ mã mật, các hàm băm, các hệ chư ký điện số,
các cơ chế phân phối, quản lý khóa và các giao thức
mật mã.
• Thám mã: Nghiên cứu các phương pháp phá mã hoặc
tạo mã giả gồm các phương pháp thám mã , các
phương pháp giả mạo chư ký, các phương pháp tấn
• công ,các hàm băm và các giao thức mật mã
1-6Trần Thị Kim Chi
Mật Mã là gì?
• Mật mã (Cryptography) là ngành khoa học
nghiên cứu các kỹ thuật toán học nhằm cung
cấp các dịch vụ bảo vệ thông tin.
• W. Stallings (2003), Cryptography and Network
Security: Principles and Practice, Third Edition,
Prentice Hall
1-7Trần Thị Kim Chi
Mật Mã là gì?
• Cách hiểu truyền thống: giữ bí mật nội dung trao đổi
GỬI và NHẬN trao đổi với nhau trong khi TRUNG GIAN
tìm cách “nghe lén”
1-8Trần Thị Kim Chi
Một số vấn đề trong bảo vệ
thông tin
• Bảo mật thông tin (Secrecy): đảm bảo thông tin được giữ
bí mật.
• Toàn vẹn thông tin (Integrity): bảo đảm tính toàn vẹn thông
tin trong liên lạc hoặc giúp phát hiện rằng thông tin đã bị sửa
đổi.
• Xác thực (Authentication): xác thực các đối tác trong liên
lạc và xác thực nội dung thông tin trong liên lạc.
• Chống lại sự thoái thác trách nhiệm (Non-repudiation):
đảm bảo một đối tác bất kỳ trong hệ thống không thể từ chối
trách nhiệm về hành động mà mình đã thực hiện
• Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản
và gửi nhiều lần đến người nhận mà người gửi không hề hay
biết.
1-9Trần Thị Kim Chi
Những khái niệm cơ bản về
mã hóa
• Văn bản gốc (plaintext) là văn bản ban đầu có nội dung
có thể đọc được và cần được bảo vệ.
• Văn bản mã hóa (ciphertext) là văn bản sau khi mã
hóa, nội dung không thể đọc được.
• Mã hóa (encryption) là quá trình chuyển văn bản rõ
thành văn bản mã hóa. Giải mã (decryption) là quá
trình đưa văn bản mã hóa về lại văn bản gốc ban đầu
• Hệ thống mã hóa (cryptosystem)
• Cryptosystem = encryption + decryption algorithms
• Khóa (key) được sử dụng trong quá trình mã hóa và
giải mã
1-10Trần Thị Kim Chi
Những khái niệm cơ bản về
mã hóa
• Ví dụ:
SKC với nguyên tắc dời vị trí
Nội dung gốc : “Hello everybody”
Mã hóa : dời nội dung sang phải – Keycode =1
“Lfmmp fxfsacpea”
Giải mã : dời nội dung sang trái – Keycode =1
“Hello everybody”
1-11Trần Thị Kim Chi
Hệ thống
mã hóa
1-12Trần Thị Kim Chi
Phân loại mã hóa
• Hệ thống mã hóa đối xứng (Symmetric
cryptosystem) là hệ thống mã hóa sử dụng một khóa bí
mật chia sẻ (shared-secret-key) cho cả hai quá trình mã
hóa và giải mã.
• Hệ thống mã hóa bất đối xứng (Asymmetric
cryptosystem) là hệ thống mã hóa sử dụng một khóa
công khai (public key) và một khóa bí mật (private key)
cho quá trình mã hóa và giải mã.
• Hệ thống mã hóa bất đối xứng còn được gọi là hệ thống
mã hóa khóa công khai (public-key cryptosystem)
1-13Trần Thị Kim Chi
Phân loại mã hóa
1-14Trần Thị Kim Chi
Phân loại các thuật toán mật mã
1-15
• Các thuật toán mã hóa khóa bímật (hệmãmật khóa
bí mật hay khóa đối xứng SKC (Symmetric Key
Cryptosytems), ví dụ : Caesar, DES, AES
• Các thuật toán mã hóa khóa công khai (các hệ mã
khóa công khai PKC )(Public Key Cryptosystems).
Còn gọi là các hệmã khóa bất đối xứng (Asymmetric
Key Cryptosytems). Khóa sử dụng cho các thuật
toán này là 2 khóa : Public Key và Private key
• Các thuật toán tạo chữ ký số (Digital Signature
Algorithms) : RSA, ElGammma
• Các hàm băm (Hash functions).
Trần Thị Kim Chi
Mã hoá đối xứng
“An intro to
PKI and few
deploy hints”
“AxCvGsmWe#4^,s
dgfMwir3:dkJeTsY8
R\s@!q3%”
“An intro to
PKI and few
deploy hints”
input : văn bản thuần tuý Văn bản mật mã
Hai khoá giống nhau
Mã hoá Giải mã
output : văn bản thuần tuý
DE
S
DE
S
• Các khoá giống nhau được sử dụng cho việc mã hoá và
giải mã
• Thuật toán mã hoá sử dụng khoá đối xứng thường được
biết đến là DES (Data Encryption Standard)
• Các thuật toán mã hoá đối xứng khác được biết đến
như:
-Triple DES, DESX, GDES, RDES - 168 bit key
-RC2, RC4, RC5 - variable length up to 2048 bits
-IDEA - basis of PGP - 128 bit key
Mã hoá đối xứng
Mã hoá bất đối xứng
“An intro to
PKI and few
deploy hints”
“Py75c%bn&*)9|f
De^bDzjF@g5=&
nmdFgegMs”
“An intro to
PKI and few
deploy hints”
Hai khoá khác nhau
Mã hoá Giải mã
input : văn bản thuần tuý Văn bản mật mã output : văn bản thuần tuý
RSA RSA
• Các khoá dùng cho mã hoá và giải mã khác nhau nhưng
cùng một mẫu và là cặp đôi duy nhất(khoá private/public)
• Khoá private chỉ được biết đến bởi người gửi
• Khoá public được biết đến bởi nhiều người hơn nó được
sử dụng bởi những nhóm người đáng tin cậy đã được
xác thực
• Thuật toán mã hoá sử dụng khoá bất đối xứng thường
được biết đến là RSA (Rivest,Shamir and Adleman
1978)
Mã hoá bất đối xứng
• Một hàm băm H nhận được một thông báo m với một
độ dài bất kỳ từ đầu vào và đưa ra một xâu bít h có độ
dài cố định ở đầu ra h = H(m).
• Hàm băm là một hàm một chiều, điều đó có nghĩa là
ta không thể tính toán được đầu vào m nếu biết đầu
ra h.
• Thuật toán sử dụng hàm băm thường được biết đến
là MD5
Hàm băm
Tạo ra chữ ký số
3kJfgf*£$&Py75c%bn
This is the
document
created by
Gianni
Thông báo hoặc File Chữ ký sốThông báo sau khi luật hoá
Signatory's
private key
priv
Phát sinh
hàm băm
SHA, MD5
Mã hoá
bất đối xứng
RSA
Signed
Document
(Typically 128 bits)
• Xác minh quyền hạn của các thành viên tham
gia truyền thông
• Phương pháp phổ biến:
• Sử dụng Password : để xác thực người sử
dụng
Xác thực quyền
• Sử dụng Kerberos: phương thức mã hoá và xác thực trong
AD của công nghệ Window
• Sử dụng Secure Remote Password (SRP): là một giao thức
để xác thực đối với các truy cập từ xa
• Sử dụng Hardware Token
• Sử dụng SSL/TLS Certificate Based Client Authentication: sử
dụng SSL/TLS để mã hoá, xác thực trong VPN, Web
• Sử dụng X.509 Public Key
• Sử dụng PGP Public Key
• Sử dụng SPKI Public Key
• Sử dụng XKMS Public Key.
• Sử dụng XML Digital Signature
Xác thực quyền
Tiêu chuẩn đánh giá hệ mật mã
• Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu
tiên phải có độ an toàn cao.
• Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự
bí mật của các khoá, còn thuật toán thì công khai. Tại
một thời điểm, độ an toàn của một thuật toán phụ thuộc:
Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán
lớn hơn giá trị của thông tin đã mã hóa thuật toán thì thuật
toán đó tạm thời được coi là an toàn.
Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá
lâu thì thuật toán đó tạm thời được coi là an toàn.
Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá
lơn so với lượng dữ liệu đã được mã hoá thì thuật toán đó
tạm thời được coi là an toàn
• Bản mã C không được có các đặc điểm gây chú ý, nghi
ngờ.
• Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng
ta phải chú ý đến tốc độ mã và giải mã. Hệ mật tốt thì
thời gian mã và giải mã nhanh.
• Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa,
khóa này được truyền công khai hay truyền khóa bí mật.
Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các
hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu
chí khi lựa chọn hệ mật mã.
Tiêu chuẩn đánh giá hệ mật mã
Một số ứng dụng của mã hóa trong security
Một số ứng dụng của mã hoá trong đời sống hằng ngày nói
chung và trong lĩnh vực bảo mật nói riêng. Đó là:
• Securing Email
• Authentication System
• Secure E-commerce
• Virtual Private Network
• Wireless Encryption
SYMMETRIC CIPHERS
(Mã hóa đối xứng)
Nội Dung
1. Mã cổ điển (Classical Encryption)
2. Mã dòng (Stream Ciphers) và Mã khối (Block
Ciphers)
3. Mã DES (Data Encryption Standard)
4. Mã hiện đại AES (Advanced Encryption Standard)
5. Các mô hình ứng dụng mã khối
( Cryptography and Network Security: Principles and
Practices (3rd Ed.) – Chapter 2, 3, 5, 6)
1-28Trần Thị Kim Chi
Mã cổ điển (Classical Encryption)
1.Khái niệm về Mã đối xứng
(Symmetric Cipher)
2. Một số mã đối xứng nổi tiếng
1-29Trần Thị Kim Chi
Khái niệm về Mã đối xứng
Symmetric Ciper
• Là hệ thống mã hóa sử dụng một khóa bí mật chia sẻ
(shared-secret-key) cho cả hai quá trình mã hóa và giải
mã
1-30Trần Thị Kim Chi
Khái niệm về Mã đối xứng
Symmetric Ciper
Mô hình trên gồm 5 yếu tố:
• Bản rõ P (plaintext)
• Thuật toán mã hóa E (encrypt algorithm)
• Khóa bí mật K (secret key)
• Bản mã C (ciphertext)
• Thuật toán giải mã D (decrypt algorithm)
• Trong đó: C = E (P, K)
P = D (C, K)
• Thuật toán mã hóa và giải mã sử dụng chung một
khóa, thuật toán giải mã là phép toán ngược của thuật
toán mã hóamô hình trên được gọi là phương pháp
mã hóa đối xứng. 1-31Trần Thị Kim Chi
Khái niệm mã đối xứng
• Bản rõ X (Plaintext): được gọi là bản tin gốc. Đây là dữ
liệu ban đầu ở dạng rõ. Bản rõ có thể được chia nhỏ có
kích thước phù hợp.
˗ Thuật toán mã hóa (Encryption algorithm): là thuật toán được sử
dụng để mã hóa (thay thế hoặc biến đổi) bản rõ
• Khóa bí mật (Secret key): Khóa bí mật được đưa vào
thuật toán mã hóa. Khóa này là giá trị độc lập với bản rõ
và thuật toán mã hóa. Thuật toán sẽ tạo ra đầu ra (input)
khác nhau tùy thuộc vào khóa đặc biệt được dùng tại thời
điểm đó. Các kỹ thuật thay thế (substitution) và hoán vị
(transformation) được thực hiện bởi thuật toán tùy thuộc
vào khóa (key)
1-32Trần Thị Kim Chi
Khái niệm mã đối xứng
• Bản mã (Ciphertext): Thông tin, dữ liệu đã được mã
hoá ở dạng mờ. Nó tùy thuộc vào plain text và secret
key. Cho trước một thông điệp, 2 khóa khác nhau thì sẽ
tạo ra được hai bản mã khác nhau. Bản mã là một dòng
dữ liệu ngẫu nhiên và nó bền vững và khó hiểu.
• Thuật tóan giải mã (Decryption algorithm): Thuật
toán giải mã (Decryption algorithm): đây là thực chất là
thuật toán mã hóa chạy theo chiều ngược lại. Nó lấy
ciphertext và secret key để tạo ra plaintext gốc.
• Người gửi/Người nhận (Sender/recipient): Người
gửi/Người nhận dữ liệu
1-33Trần Thị Kim Chi
Mô hình mã đối đối xứng
1-34Trần Thị Kim Chi
Mô hình mã đối đối xứng
1-35Trần Thị Kim Chi
• Chọn một hoán vị p: Z26 Z26 làm khoá.
• VD:
• Mã hoá
ep(a)=X
• Giải mã
dp(A)=d
“nguyenthanhnhut” “SOUDHSMGXSGSGUM”
Đặc tính của mã đối xứng
• Thuật toán mã hóa và giải mã sử dụng chung
một khóa, thuật toán giải mã là phép toán ngược
của thuật toán mã hóa. Vì vậy mô hình trên
được gọi là phương pháp mã hóa đối xứng.
• Đặc tính của mã đối xứng:
• Khóa phải được giữ bí mật giữa người gởi và người
nhận, khóa phải được chuyển một cách an toàn từ
người gởi đến người nhận.
• Một hệ mã hóa đối xứng phải có tính an toàn. An toàn
khi và chỉ khi nó không thể bị phá mã (điều kiện lý
tưởng) hoặc thời gian phá mã là bất khả thi.
1-36Trần Thị Kim Chi
Đặc tính của mã đối xứng
Câu hỏi:
1.Nếu đã có một kênh an toàn để chuyển khóa
như vậy thì tại sao không dùng kênh đó để chuyển
bản tin, tại sao cần đến chuyện mã hóa?
Câu trả lời là nội dung bản tin thì có thể rất dài,
còn khóa thì thường là ngắn.
Ngoài ra một khóa còn có thể áp dụng để truyền
tin nhiều lần. Do đó nếu chỉ chuyển khóa trên kênh
an toàn thì đỡ tốn kém chi phí.
1-37Trần Thị Kim Chi
Kỹ thuật mã hóa (Cryptography)
Hệ thống mã hóa được đặc trưng bởi:
• Kỹ thuật được sử dụng để chuyển đổi bản rõ thành bản
mã. Tất cả các thuật toán được dựa vào 2 kỹ thuật cơ
bản:
(a) Phép thế (substitution): dùng từng ký tự (hay từng nhóm ký
tự) trong bản rõ được thay thế bằng một ký tự (hay một nhóm
ký tự) khác để tạo ra bản mã. Bên nhận chỉ cần đảo ngược
trình tự thay thế trên bản mã để có được bản rõ ban đầu.
(b) Hoán vị (transposition): Các ký tự trong bản rõ được giữ
nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra bản mã.
Yêu cầu cơ bản là không có thông tn nào bị mất (có nghĩa là
tất cả các thao thác có thể đảo ngược).
1-38Trần Thị Kim Chi
Kỹ thuật mã hóa (Cryptography)
• Số khóa được người gửi và người nhận dùng
khi mã hóa.
• Một khóa duy nhất: Mã đối xứng/ Mã khóa đơn/
Mã khóa bí mật khóa/ Mã hóa thông thường
(symmetric, single-key, secret-key, or conventional
encryption)
• Hai khóa: Mã hóa bất đối xứng/ mã hóa hai khóa/
Mã hóa khóa công khai (asymmetric, two-key, or
public-key encryption)
1-39Trần Thị Kim Chi
Kỹ thuật mã hóa (Cryptography)
• Cách mà bản rõ được xử lý:
• Khối (block cipher): dữ liệu được chia thành
từng khối có kích thước xác định và áp dụng thuật
toán mã hóa với tham số cho từng khối.
• Dòng (stream cipher): từng phần tử ở đầu vào
được xử lý liên tục tạo phần tử đầu ra tương ứng.
1-40Trần Thị Kim Chi
Kỹ thuật mã hóa (Cryptography)
Ví dụ: Bảng sau đây biểu diễn một thuật toán
mã hóa theo khối
1-41
Theo bảng này, dữ liệu plaintext 010100110111 sẽ đươc
mã hóa thành:
010 100 110 111 111 011 000 101 theo key=1
010 100 110 111 100 011 011 111 theo key=4
Ở đây số lượng khóa là 5, do 22< 5 < 23 nên cần 3 bit
để biểu diễn và lưu giữ khóa, tức là kich thước khóa là
3. Đồng thời kích thước khối cũng là 3.
Trần Thị Kim Chi
Phá mã (Cryptanalysis)
• Hai cách tiếp cận tấn công mã đối xứng:
• Phân tích mật mã (cryptanalysis attack) hay còn
gọi “tấn công dùng thuật toán”: dựa trên thuật
thoán và một số đặc trưng chung về bản rõ hoặc vài
cặp mậu bản rõ – bản mã. Kiểu tấn công này khai
thác các đặc trưng của thuật toán để tìm bản rõ cụ
thể hoặc tìm kiếm khóa.
• Tấn công vén cạn (Brute-force attack): Kẻ tấn công
tìm cách thử mọi khóa có thể trên bản mã cho đến khi
nhận được bản rõ. Trung bình cần thử một nữa số
khóa.
1-42Trần Thị Kim Chi
Phân tích mật mã
(Cryptanalysis)
• Các kiểu tấn công phân tích mật mã
• Biết thuật toán và bản mã xác định bản rõ.
• Biết thuật toán, biết được bản mã/bản rõ tìm
khóa.
• Chọn bản rõ và nhận được bản mã, biết thuật
toán tìm khóa.
• Chọn bản mã và có được bản rõ tương ứng, biết
thuật toán tìm khóa
1-43Trần Thị Kim Chi
Vét cạn (Brute-force)
• Về mặt lý thuyết phương pháp này luôn thực
hiện được, do có thể tiến hành thử từng
khóa, mà số khóa là hữu hạn.
• Phần lớn công sức của các tấn công đều tỷ lệ
thuận với kích thước khoá. Khóa càng dài
thời gian tìm kiếm càng lâu và thường tăng
theo hàm mũ.
• „Ta có thể giả thiết là kẻ thám mã có thể dựa
vào đặc trưng về ngữ cảnh để nhận biết
được bản rõ.
1-44Trần Thị Kim Chi
Vét cạn (Brute-force)
• Trong phương pháp Ceasar, lý do mà phương pháp này kém an toàn là ở chỗ
khóa k chỉ có 25 giá trị, do đó kẻ phá mã có thể thử được hết tất cả các trường
hợp của khóa rất nhanh chóng. Phương pháp tấn công này được gọi là
phương pháp vét cạn khóa (bruteforce attack).
• Chỉ cần nới rộng miền giá trị của khóa thì có thể tăng thời gian phá mã đến
một mức độ được coi là bất khả thi. Bảng dưới đây liệt kê một số ví dụ về thời
gian phá mã trung bình tương ứng với kích thước của khóa.
45Trần Thị Kim Chi
Một số mã đối xứng nổi tiếng
• Một số mã áp dụng phép thay thế:
• Mã Caesar (Caesar Cipher)
• Mã hóa đơn bản (Monoalphabetic Ciphers)
• Mã Playfair (Playfair Cipher)
• Mã One-Time Pad (OTP)
• Một số mã áp dụng phép hoán vị
1-46Trần Thị Kim Chi
Caesar Cipher
• Thế kỷ thứ 3 trước công nguyên, Julius Ceasar đưa ra
phương pháp mã hóa này.
• Thay thế mỗi ký tự trong bản rõ bằng ký tự đứng sau
nó k vị trí trong bảng chữ cái. Giả sử chọn k=3, ta có
bảng chuyển đổi:
1-47Trần Thị Kim Chi
Caesar Cipher
• Ví dụ:
1-48Trần Thị Kim Chi
Caesar Cipher
• Gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:
• Với mỗi ký tự trong P thay bằng chữ mã hóa C, trong
đó:
C = (P + k) mod 26 (mod: phép chia lấy số dư)
• Và quá trình giải mã đơn giản là:
P = (C – k) mod 26
• k được gọi là khóa.
• Hiện nay, mã Ceasar không được xem là an toàn.
1-49Trần Thị Kim Chi
Caesar Cipher
• Giả sử có bản tin gốc (bản rõ): meet me after the
toga party
• Mã hóa bản gốc trên?
• Giả sử bạn có được bản mã
PHHW PH DIWHU WKH WRJD SDUWB
và biết được phương pháp mã hóa và giải mã là phép
cộng trừ modulo 26Bạn có suy ra được bản gốc
không?
1-50Trần Thị Kim Chi
Caesar Cipher
1-51
• Trong 25 trường hợp
trên, chỉ có trƣờng hợp
k=3 thì bản giải mã
tương ứng là có ý
nghĩa.
• Do đó đối thủ có thể
chắc chắn rằng “meet
me after the toga
party” là bản rõ ban
đầu.
Trần Thị Kim Chi
Caesar Cipher
1-52
Với bản chữ cái Tiếng Việt (29 ký tự) với khóa là 3:
• Gán cho mỗi chữ cái một con số nguyên từ 0 đến 28:
• Phương pháp Ceasar biểu diễn tiếng Việt nhƣ sau: với
mỗi chữ cái p thay bằng chữ mã hóa C, trong đó:
C = (p + k) mod 29
• Và quá trình giải mã đơn giản là:
p = (C – k) mod 29
Trần Thị Kim Chi
Caesar Cipher
Code Java
private String encryptMessage(String msg, int k) {
String result = "";
for (int i = 0; i < msg.length(); i++)
result += encryptChar(msg.charAt(i), k);
return result;
}
private char encryptChar(char c, int k) {
if (Character.isLetter(c))
return (char) ('A' + (c - 'A' + k) % 26); //'A'=65
else
return c;
}
• Nếu giải mã: encryptMessage(msg,26-k);
1-53Trần Thị Kim Chi
Caesar Cipher
1-54Trần Thị Kim Chi
Caesar Cipher
1. Giải mã bản mã sau, giả sử mã hóa Ceasar được
sử dụng để mã hóa với k=3:
IRXUVFRUHDQGVHYHQBHDUVDJR
2. Khóa
• Plain(a): abcdefghijklmnopqrstuvwxyz
• Cipher(b): DKVQFIBJWPESCXHTMYAUOLRGZN
Mã hóa:
• Plaintext: ifwewishtoreplaceletters
• Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA
1-55Trần Thị Kim Chi
Mã hóa đơn bảng
(Monoalphabetic Substitution Cipher)
• Phương pháp đơn bảng tổng quát hóa phương pháp
Ceasar bằng cách dòng mã hóa không phải là một dịch
chuyển k vị trí của các chữ cái A, B, C, nữa mà là một
hoán vị của 26 chữ cái này. Lúc này mỗi hoán vị được
xem như là một khóa.
• Việc mã hóa được tiến hành bằng cách thay thế một
chữ cái trong bản rõ thành một chữ cái trong bản mã,
nên phương pháp này được gọi là phương pháp thay
thế.
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplaceletters
Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA 1-56Trần Thị Kim Chi
Monoalphabetic Ciphers
• Số lượng hoán vị của 26 chữ cái là 26! (tương đương
với số khóa).
• Vì 26! là một con số khá lớn tấn công phá mã vét
cạn khóa là bất khả thi (6400 thiên niên kỷ với tốc độ
thử khóa là 109 khóa/giây).
• phương pháp này được xem là một phương pháp
mã hóa an toàn trong suốt 1000 năm sau công nguyên.
• Ví dụ:
• Chữ ban đầu: 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
• Khóa : Z P B Y J R S K F L X Q N W V D H M G U T O I A E C
• Như vậy bản rõ meet me after the toga party
• được mã hóa thành: NJJU NJ ZRUJM UKJ UVSZ DZMUE
1-57Trần Thị Kim Chi
Monoalphabetic Ciphers
• Tuy nhiên vào thế kỷ thứ 9, một nhà hiền triết
người Ả Rập tên là Al-Kindi đã phát hiện ra một
phương pháp phá mã khả thi khác. Phương
pháp phá mã này dựa trên nhận xét sau:
• Trong ngôn ngữ tiếng Anh, tần suất sử dụng của các chữ
cái không đều nhau, chữ E được sử dụng nhiều nhất, còn
các chữ ít được sử dụng thường là Z, Q, J. Tương tự như
vậy, đối với cụm 2 chữ cái (digram), cụm chữ TH được sử
dụng nhiều nhất.
• Nếu chữ E được thay bằng chữ K thì tần suất xuất hiện
của chữ K trong bản mã là 13.05%. Đây chính là cơ sở để
thực hiện phá mã.
1-58Trần Thị Kim Chi
Monoalphabetic Ciphers
Tần suất của chữ