Tải bản đầy đủ (.docx) (21 trang)

KỸ THUẬT mã hóa cổ điển

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 (187.35 KB, 21 trang )

ĐỒ ÁN 3

KỸ THUẬT MÃ HÓA CỔ ĐIỂN

1


MỤC LỤC

2


DANH MỤC CÁC HÌNH VẼ

3


DANH MỤC CÁC BẢNG BIỂU

4


DANH MỤC CÁC TỪ VIẾT TẮT

P

Plaintext

C

Ciphertext



E

Encrypt

D

Decrypt

K

Key

5


ĐỒ ÁN 3
Trang 6/18

CHƯƠNG 1.

TỔNG QUAN VỀ MÃ HÓA

1.1 Khái niệm mã hóa
Ngày nay, máy tính đã thâm nhập vào hầu hết các lĩnh vực của đời sống - xã hội.
Nói đến máy tính tức là nói đến hai vấn đề lớn : lưu trữ và xử lý thông tin.
Nhưng từ xa xưa, khi công nghệ còn chưa phát triển, quá trình xử lý thông tin là
một yếu tố rất quan trọng. Tuy nhiên không có gì đảm bảo rằng thông tin mà chúng
ta truyền đi không bị đọc trộm trên đường truyền. Trong những trận đánh lớn, việc
tiết lộ thông tin thường gây ra những hậu quả rất nghiêm trọng. Để hạn chế điều đó,

các biện pháp mã hóa thông tin đã ra đời. Mục đích để bảo vệ tính bảo mật của
thông tin.
1.2 Khái niệm về Cryptography
Thuật ngữ Cryptography đề cập tới ngành khoa học nghiên cứu mã hóa và giải mã
thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin từ dạng
thông thường sang định dạng đã được mã hóa. Thông tin sau đó được làm rối, biến
đổi gây khó khăn cho người không phận sự tiếp cận vào những thông tin nhạy cảm.
Các khái niệm cơ bản của cryptography:
-

Plaintext / Cleartext (P): Dữ liệu gốc, chưa được mã hóa (bản rõ).
Ciphertext (C): Dữ liệu đã được mã hóa (bản mã).
Encipher / Encrypt (E): Quá trình mã hóa.
Decipher / Decrypt (D): Quá trình giải mã.
Key (K): chìa khóa – thông tin dùng chung trong qui trình mã hóa và giải mã.

1.3 Ứng dụng
Trong đời sống, khi chúng ta cần bảo mật tính toàn vẹn của một thông tin nào đó,
không để cho người khác biết, khi đó mã hóa được áp dụng như là một giải pháp
hạn chế các rủi ro của việc tiết lộ thông tin.
1.4 Yêu cầu đề tài
Tìm hiểu về cryptography.
Tìm hiểu kỹ thuật mã hóa cổ điển: substitution cipher và transposition cipher.
Mô phỏng hai kỹ thuật trên trong MATLAB (yêu cầu có viết GUI).


ĐỒ ÁN 3
Trang 7/18

1.5 Kỹ thuật mã hóa cổ điển

Đây là cách đơn giản nhất, tồn tại lâu nhất trên thế giới. Tuy nhiên giải pháp mã hóa
này được xem là không an toàn vì nếu một người thứ ba biết được thuật toán thì
xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên rất
quan trọng.
Có hai kỹ thuật mã hóa cổ điển chính là substitution cipher và transposition cipher.
 Substitution Cipher (Mã hóa thay thế) : Phương pháp mã hóa trong đó từng
kí tự hoặc nhóm kí tự của văn bản ban đầu được thay thế bằng một hay nhóm
kí tự khác.
 Transposition Cipher (Mã hóa hoán vị) : Phương pháp mã hóa trong đó các
kí tự trong văn bản ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các kí
tự không hề bị biến đổi.
Trong đó:
Substitution Cipher bao gồm:
-

Ceasar cipher
Playfair cipher
Hill cipher
Vigenere cipher

Substitution Cipher bao gồm:
-

Rail-fence cipher

1.6 Các phần đã làm được
Mã hóa Ceasar.
Mã hóa Playfair.
Mã hóa Hill.
Mã hóa Vigenere.

Mã hóa Rail-fence.
Viết ứng dụng trên GUI.


ĐỒ ÁN 3
Trang 8/18

CHƯƠNG 2.

NGUYÊN LÝ MÃ HÓA

1.7 Mã hóa Ceasar
1.1.1 Lịch sử
Sáng tạo bởi Julius Ceasar, vị hoàng đế của đế chế La Mã vào thế kỉ 3 trước công
nguyên. Phương pháp này được Ceasar xây dựng trong cuộc chiến Gallic Wars
(những người Gô-loa cổ đại), được xem như là tổ tiên của người Pháp ngày nay.
1.1.2 Nguyên lý mã hóa
Thay thế mỗi kí tự bằng một kí tự khác cách nhau một khoảng m nhất định trong
bảng chữ cái [1]. Nếu m lớn hơn 26 thì xoay vòng lại về vị trí ban đầu, bằng phép
tính mod với 26. Ví dụ : X (m=3) = A.
C = (P + K) mod 26
Ví dụ:
Bản rõ (P) : CEASAR
Key (K) : m=3
Bản mã (C) : FDHVDU
Đối với bảng chữ cái tiếng Anh thì từ A-Z có 26 chữ cái, do đó điểm yếu của
phương pháp này nằm ở chỗ phạm vi của phép dịch chỉ được phép nằm trong
khoảng từ 0-25.
1.1.3 Nguyên lý giải mã
Tương tự như các bước mã hóa, nhưng thay vì dịch sang phải thì giờ sẽ dịch sang

trái m kí tự.
D = (C – P) mod 26

1.8 Mã hóa Playfair


ĐỒ ÁN 3
Trang 9/18

1.1.4 Nguyên lý mã hóa
Sử dụng một ma trận chữ cái 5x5 trên cơ sở một từ khóa, điền các chữ cái của từ
khóa (đã bỏ đi các chữ trùng lặp) lần lượt vào các vị trí còn lại của ma trận. Biến đổi
I=J hoặc ngược lại. Nếu độ dài từ khóa nhỏ hơn 25 thì điền tiếp vào sau vị trí cuối
cùng của từ khóa các kí tự từ A-Z – không bao gồm các chữ cái trùng lặp – cho đến
khi lấp đầy ma trận.
Ví dụ với từ khóa là MONARCHY ta sẽ có một ma trận như sau:

Hình 2-1: Ma trận ứng với từ khóa MONARCHY

Quy tắc mã hóa:
Mã hóa Playfair xem hai ký tự đứng sát nhau là một đơn vị mã hóa, hai ký tự này
được thay thế cùng lúc bằng hai ký tự khác. [2, tr.19]
Mã hóa từng cặp chữ cái
Nếu hai chữ cái giống nhau, tách ra bởi 1 chữ điền thêm thường là ‘X’. Ví dụ EE sẽ
được thay bởi EX.
Nếu số kí tự văn bản cần mã hóa là lẻ, thêm kí tự ‘X’ vào cuối để tạo thành cặp.
Ví dụ: ABC => AB CX
Nếu hai chữ cái nằm cùng hàng, thay bởi các chữ bên phải. Ví dụ: EF => FG
Nếu hai chữ cái nằm cùng cột, thay bởi các chữ bên dưới: Ví dụ: OF => HP



ĐỒ ÁN 3
Trang 10/18

Các trường hợp khác, mỗi chữ cái được thay bởi chữ cái khác cùng hàng dựa trên
cột chữ cái cùng cặp. Ví dụ: CQ => YL
Ví dụ với K=MONARCHY như trên, bản rõ là PLAY thì bản mã sẽ là QPNB.
1.1.5 Nguyên lý giải mã
Ngược lại với các bước trên.
1.9 Mã hóa Hill
1.1.6 Lịch sử
Sáng tạo bởi Lester.S.Hill, năm 1929
1.1.7 Nguyên lý mã hóa
Trong mã Hill, mỗi chữ cái được gán cho một con số nguyên từ 0 đến 25:

Hình 2-2: Bảng chữ cái tiếng Anh

Dựa vào đó, từ khóa sẽ được chia thành các cặp, tạo thành một ma trận vector cột
ứng với đó là các con số.
Ví dụ :
Bản rõ : PLAY
Key : HELP
HE sẽ có ma trận là [7 4] và LP sẽ có ma trận là [11 15] => từ khóa HELP sẽ có ma
trận K = [7 4;11 15]
Tương tự, bản rõ cũng chia thành các cặp. Như vậy các ma trận ứng với từng cặp sẽ
là x1=[15;11] , x2=[0;24], …


ĐỒ ÁN 3
Trang 11/18


Lần lượt nhân K với x1 và x2 được C1 và C2 . Lấy các kết quả này mod 26 ta được
D1, D2 . Từ D1 , D2 suy ra các kí tự cần tìm.
C(x1,x2,…,xm) = K x P(x1,x2,…,xm) [3, tr.25]
Với ví dụ trên:
P: PLAY
K: HELP
=> C: AWZA
1.10 Mã hóa Vigenere
1.1.8 Lịch sử
Sáng tạo bởi nhà ngoại giao người Pháp, Blaise de Vigenere, thế kỉ 16
1.1.9 Nguyên lý mã hóa
Nếu độ dài từ khóa nhỏ hơn so với độ dài bản rõ, ta tạo key bằng cách lặp đi lặp lại
từ khóa n lần.
Căn chỉnh lại độ dài key đúng bằng độ dài bản rõ bằng cách bỏ đi các kí tự thừa.
Chuyển các thông số thành mảng chứa các số ứng với vị trí của từng chữ cái trong
bảng chữ cái tiếng Anh. Gọi mảng chứa vị trí các chữ cái của bản rõ là P, mảng chứa
vị trí các chữ cái của key là K .
Tiến hành cộng hai mảng P và K theo qui tắc xoay vòng giống như mã hóa caesar,
được mảng C.
Biến đổi các số trong C thành các chữ cái cần tìm.
Ví dụ:
Key:

lucy

Bản rõ: youmustvisitme


ĐỒ ÁN 3

Trang 12/18

Bản mã: jiwkfmvttmkrxy

Hình 2-3: Mã hóa Vigenere [4, tr.21]

1.1.10 Nguyên lý giải mã
D = C(x1,x2,…,xm) – K(k1,k2,…,km) mod 26
1.11

Mã hóa Rail-fence

1.1.11 Nguyên lý mã hóa
Đối với phương pháp này, các chữ cái của bản rõ sẽ được viết theo đường zig zac từ
trên xuống dưới, từ trái qua phải theo m hàng cho trước. Sau đó bản mã sẽ là tập
hợp các kí tự từ hàng thứ 1 đến hàng thứ m, viết liền nhau.

Ví dụ:
Bản rõ : RAIL-FENCE
M=2
Bản mã:
RI-ECALFNE


ĐỒ ÁN 3
Trang 13/18

CHƯƠNG 3.

KẾT QUẢ MÔ PHỎNG


Chương trình viết bằng MATLAB R2013a
1.12 Yêu cầu mô phỏng
1.1.12 Mã hóa Ceasar
Mã hóa và giải mã chữ và số, phân biệt chữ in hoa, in thường, khoảng trắng.
1.1.13 Mã hóa Playfair
Mã hóa và giải mã chữ , phân biệt chữ in hoa, in thường, khoảng trắng.
1.1.14 Mã hóa Hill
Mã hóa và giải mã chữ.
1.1.15 Mã hóa Vigenere
Mã hóa và giải mã chữ, phân biệt chữ in hoa, in thường, khoảng trắng.
1.1.16 Mã hóa Rail-fence
Mã hóa và giải mã chữ và số, phân biệt chữ in hoa, in thường, khoảng trắng.
1.13 Kết quả mô phỏng
1.1.17 Mã hóa Ceasar
Key : K=15
Bản rõ : Ma Hoa Bao Mat 0123 4567
Bản mã: Bp Wdp Qpd Bpi 5678


ĐỒ ÁN 3
Trang 14/18

Hình 3-1 : Kết quả mô phỏng mã hóa Ceasar

1.1.18 Mã hóa Playfair
Key: K = password
Bản rõ: Ma hoa Playfair
Bản mã: Vd kss Ampuiwgbu



ĐỒ ÁN 3
Trang 15/18

Hình 3-2 : Kết quả mô phỏng mã hóa Playfair

1.1.19 Mã hóa Hill
Key: K = password
Bản rõ: cryptography
Bản mã: jxrjavlpffwz


ĐỒ ÁN 3
Trang 16/18

Hình 3-3 : Kết quả mô phỏng mã hóa Hill

1.1.20 Mã hóa Vigenre
Key: K = password
Bản rõ: Cryptography Vigenere Cipher
Bản mã: Ssriqdyvqqar Sxyidfkx Zxhlus


ĐỒ ÁN 3
Trang 17/18

Hình 3-4 : Kết quả mô phỏng mã hóa Viegenere

1.1.21 Mã hóa Rail-fence
Key: K = 3

Bản rõ: Cryptography rail-fence
Bản mã: Cta lnrporpyri-ecyghafe


ĐỒ ÁN 3
Trang 18/18

Hình 3-5 : Kết quả mô phỏng mã hóa Rail-fence


ĐỒ ÁN 3
Trang 19/18

CHƯƠNG 4.

KẾT LUẬN

1.14 Đề tài làm được những phần nào
Mã hóa và giải mã chữ và số.
1.15 Ưu điểm
Mã hóa nhanh chóng các văn bản.
Bước đầu gây khó khăn cho người không phận sự tiếp cận thông tin.
1.16 Nhược điểm
Quá trình mã hóa và giải mã còn đơn giản.
Dễ bị giải mã bằng các phương pháp vét cạn.
Vẫn còn xảy ra lỗi, chưa thực sự tối ưu.
Ít được sử dụng do xuất hiện từ lâu trong lịch sử.


ĐỒ ÁN 3

Trang 20/18

TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]

.

[2]

Bài giảng An toàn và bảo mật thông tin, ĐH. Nha Trang.

Tiếng Anh:
[3]

Classical Cryptography, CSG 252 Fall 2006, Riccardo Pucella.

[4]

Classic Cryptography (Lecture 5), Thomas Johansson, Lund University.


ĐỒ ÁN 3
Trang 21/18

PHỤ LỤC A




×