CHƯƠNG 03
CÁC GIẢI THUẬT MÃ HÓA DỮ LIỆU
ĐỐI XỨNG
9/28/2014
ThS.Nguyễn Duy
[email protected]
Nội Dung
2
[email protected]
Giới thiệu về mật mã học
Lịch sử của mật mã học
Giải thuật mã hoá cổ điển
Giải thuật mã hoá hiện đại
Phá mã một hệ thống mật mã
9/28/2014
Nội Dung
3
[email protected]
Giới thiệu về mật mã học
Lịch sử của mật mã học
Giải thuật mã hoá cổ điển
Giải thuật mã hoá hiện đại
Phá mã một hệ thống mật mã
9/28/2014
Giới thiệu về mật mã học
Giới thiệu
4
[email protected]
Mật mã hoá được sử dụng kể từ cổ đại cho đến
tận ngày nay.
Hiện nay, các giao dịch tài chính, chuyển khoản,
mua sắm hàng hoá, thư từ, tài liệu… được thực
hiện nhiều qua môi trường mạng đòi hỏi dữ liệu
phải được bảo mật tốt => phải được mã hoá
9/28/2014
Giới thiệu về mật mã học
Giới thiệu - tt
5
[email protected]
Mã hóa là một dạng của mật mã. Mã hóa cách
thức xáo trộn hay biến thông tin từ dạng có thể
đọc được sang dạng không thể đọc được.
Ví dụ :
Xáo trộn dữ liệu : 2 ký tự đứng cạnh nhau thì hoán
đổi vị trí cho nhau, những ký tự nào lẻ thì giữ nguyên
vị trí
ABCDEF
BADCFE
Biến đổi thông tin : tăng giá trị mỗi ký tự lên 1 đơn vị
ABCDEF
BCDEFG
9/28/2014
Giới thiệu về mật mã học
Mô hình mã hóa đối xứng
6
[email protected]
9/28/2014
Giới thiệu về mật mã học
Mô hình hệ thống mật mã đối xứng
7
[email protected]
9/28/2014
Giới thiệu về mật mã học
Cryptographic Systems
8
[email protected]
Phụ thuộc vào 3 yếu tố:
The type of
operations used for
transforming
plaintext to
ciphertext
The number of keys
used
The way in which the
plaintext is processed
Substitution
Symmetric,
single-key,
secret-key,
conventional
encryption
Block cipher
Transposition
Asymmetric,
two-key, or
public-key
encryption
Stream cipher
9/28/2014
Giới thiệu về mật mã học
Các khái niệm cơ bản
9
[email protected]
Plaintext: dữ liệu trước khi mã hóa
Ciphertext: dữ liệu sau khi mã hóa
Encryption algorithm: thuật toán mã hóa
Decryption algorithm: thuật toán giải mã
Secret key: khóa được thuật toán mã hóa và
thuật toán giải mã sử dụng để mã hóa và giải
mã dữ liệu
9/28/2014
Nội Dung
10
[email protected]
Giới thiệu về mật mã học
Lịch sử của mật mã học
Giải thuật mã hoá cổ điển
Giải thuật mã hoá hiện đại
Phá mã một hệ thống mật mã
9/28/2014
Lịch sử của mật mã học
11
[email protected]
Mật mã học là ngành có lịch sử hàng ngàn năm.
Mật mã học cổ điển với bút và giấy.
Mật mã học hiện đại với điện cơ, điện tử, máy tính.
Sự phát triển của mật mã học đi liền với sự phát triển
của phá mã (thám mã):
Phát hiện ra bức điện Zimmermann khiến Hoa Kỳ tham gia Thế
chiến I
Việc phá mã thành công hệ thống mật mã của Đức Quốc xã góp
phần đẩy nhanh thời điểm kết thúc thế chiến II.
Hai sự kiện khiến cho mật mã học ứng dụng rộng rãi:
Sự xuất hiện của tiêu chuẩn mật mã hóa DES.
Sự ra đời của các kỹ thuật mật mã hóa khóa công khai.
9/28/2014
Nội Dung
12
[email protected]
Giới thiệu về mật mã học
Lịch sử của mật mã học
Giải thuật mã hoá cổ điển
Giải thuật mã hoá hiện đại
Phá mã một hệ thống mật mã
9/28/2014
Giải thuật mã hoá cổ điển
Kĩ thuật Substitution
13
[email protected]
Substistution hay còn gọi là mã hóa “thay thế”
Những kí tự trong plaintext sẽ được thay thế
bằng những kí tự khác, những con số hoặc
những kí hiệu.
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán Caesar Cipher
14
[email protected]
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán Caesar Cipher
15
[email protected]
Can define transformation as:
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
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
Mathematically give each letter a number
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
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
Algorithm can be expressed as:
c = E(3, p) = (p + 3) mod (26)
A shift may be of any amount, so that the general
Caesar algorithm is:
C = E(k , p ) = (p + k ) mod 26
Where k takes on a value in the range 1 to 25; the
decryption algorithm is simply:
p = D(k , C ) = (C - k ) mod 26
9/28/2014
16
[email protected]
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán Monoalphabetic Cipher
17
[email protected]
Đối với một số nguyên dương d bất kỳ, chia
thông báo m thành từng khối có chiều dài d. Rồi
lấy một hoán vị h của 1, 2, …, d và áp dụng h
vào mỗi khối.
Ví dụ: nếu d=5 và h=(4 1 3 2 5), hoán vị (1 2 3 4
5) sẽ được thay thế bằng hoán vị mới (4 1 3 2
5).
Ví dụ: ta có thông báo
m = JOHN IS A GOOD ACTOR
Qua phép mã hoá này m sẽ trở thành chuỗi
mật mã c sau:
c = NJHO IO S GAOT DCAOR
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán One-time Pad
18
[email protected]
e=000 h=001 l=010 d=011 p=100 n=101 a=110
Encryption: Plaintext Key = Ciphertext
Plaintext:
Key:
h
e
l
p
n
e
e
d
e
d
001
000
010
100
101
000
000
011
000
011
111
101
110
101
111
100
000
101
110
000
110
101
100
001
010
100
000
110
110
011
a
n
p
h
l
p
e
a
a
d
Ciphertext:
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán Affine Cipher
19
[email protected]
Mã tuyến tính là mã thay thế có dạng:
e(x) = ax + b (mod 26), với a, b Z26
Nếu a = 1 ta có mã dịch chuyển.
Giải mã: Tìm x?
y = ax + b (mod 26)
ax = y – b (mod 26)
x = a-1(y – b) (mod 26).
9/28/2014
Giải thuật mã hoá cổ điển
Thuật toán Affine Cipher - tt
20
[email protected]
Ví dụ: y = E(x) = (5x + 8)
a=5
b=8
9/28/2014