MẬT MÃ CỔ ĐIỂN
1.1 MỘT SỐ HỆ MẬT MÃ ĐƠN GIẢN
1.1.1 MẬT MÃ DỊCH CHUYỂN - SHIFT CIPHER
1.1.2 MẬT MÃ THAY THẾ - SUBSTITUTION CIPHER
1.1.3 MẬT MÃ TUYẾN TÍNH - AFFINE CIPHER
1.1.4 MẬT MÃ VIGENÈRE
1.1.5 MẬT MÃ HILL
1.1.6 MẬT MÃ HOÁN VỊ
1.1.7 MẬT MÃ DÒNG
MỞ ĐẦU:
Mục đích cơ bản của hệ mật mã cho phép hai
người, Alice và Bob, truyền thông tin qua một kênh
không được bảo mật theo cách sao cho đối thủ,
Oscar, không thể hiểu được thông tin gì đang được
nhắc đến. Kênh đó có thể là đường điện thoại hoặc
có thể là mạng máy tính.
Thông điệp mà Alice muốn gửi tới Bob, chúng ta gọi
là “ văn bản gốc ” hoặc “ bản rõ ” ( “ Plaintext ”),
được xây dựng hoàn toàn tuỳ ý, có thể là các ký tự
tiếng Anh, dữ liệu số…
Sơ đồ minh hoạ
Alice
x
Mã hoá
K
Tập các khoá
y
Giải mã
K
x
Bob
Mô tả hình thức bằng ký hiệu toán học
1.1.1 Hệ mã dịch chuyển
Hệ mã dựa trên cơ sở của phép biến đổi một ký tự trong văn
bản gốc thành một ký tự khác trong bản mã
Trong trường hợp K=3 , hệ mật mã trên được gọi là mật mã
Caesar , được thừa nhận là của Julius Caesar.
Trong hệ mật mã Caesar , mỗi ký tự được thay thế bởi ký tự
đứng sau nó ba vị trí trong bảng chữ cái Alphabet)
Để thực hiện theo phương pháp này, trước hết ta cần
định nghĩa một bảng mã để số hoá văn bản gốc:
A
B
C
D
E
F
G
H
I
J
K
0
1
2
3
4
5
6
7
8
9
10 11 12
N
O
P
Q R
S
T
U
V W X
L
Y
M
Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Xét ví dụ
Giả sử khoá K = 11, và văn bản gốc ban đầu là
wewillmeetatmidnight
Đầu tiên ta biến đổi văn bản gốc thành một dãy các số
nguyên , kết quả nhận được như sau:
22 4 22 8
0 19 12 8
11 11 12 4
3 13 8 6
4
7
19
19
Tiếp theo, ta cộng 11 vào mỗi giá trị , sau đó quy các
giá trị đó sang modulo 26
7 15 7 19 22 22 23 15 15 4
11 4 23 19 14 24 19 17 18 4
Cuối cùng, ta biến đổi dãy số nguyên sang các ký tự
Aphabet tương ứng như trên , nhận được bản mã
HPHTWWXPPELEXTOYTRSE
Để giải mã bản mã , Bob đầu tiên biến đổi tương
ứng bản mã sang dãy của các số nguyên , rồi trừ
từng giá trị trong dãy cho 11 ( sau đó quy đổi sang
modulo 26), và cuối cùng biến đổi dãy số nguyên
vừa nhận được sang các ký tự Alphabe.Ta thu được
văn bản gốc ban đầu
Wewillmeetatmidnight
Nhận xét: Ta đã sử dụng ký tự hoa cho bản mã và ký
tự thường cho văn bản gốc .
NHẬN XÉT
Ta nhận xét rằng hệ mã dịch chuyển tính bảo mật
không cao , chỉ với 26 khoá, rất dễ dàng để thử các
quy tắc giải mã dK cho đến khi nhận được văn bản
có “ ý nghĩa ”. Xem minh hoạ dưới đây :
Ví dụ 1.2
Cho văn bản dưới dạng mật mã là xâu sau đây :
JBCRCLQRWCRVNBJENBWRWN
9 1 2 17 2 11 16 17 22 2 17 21 13 1 9 4 13 1 22 17 22 13
Ta lần lượt thử các hàm giải mã d0 ,d1,… . Kết quả
nhận được dưới đây :
K=0
jbcrclqrwcrvnbjenbwrwn
iabqbkpqvbqumaidmavqvm
K=1
hzapajopuaptlzhclzupul
K=2
gyzozinotzoskygbkytotk
K=3
fxynyhmnsynrjxfajxsnsj
K=4
ewxmxglmrxmqiweziwrmri
K=5
dvwlwfklqwlphvdyhvqlqh
K=6
cuvkvejkpvkogucxgupkpg
K=7
btujudijoujnftbwftojof
K=8
a stitch in times saves nine
K=9
k cdsdmr …..
K=10
Cuối cùng thử hết tới K=26, ta xác định được văn
bản gốc và dừng lại. Khoá K= 9.
1.1.2 The Substitution Cipher ( Hệ mã thay thế )
Ví dụ : Cho hoán vị “ ngẫu nhiên ” sau :
a
b
c
d
e
f
g
h
i
j
k
l
m
X N Y A H P O G Z Q W B T
n
o
p
q
r
s
t
u
v
w x
S
F L R C V M U E K J
y
z
D I
Do đó e (a) X , e (b) N ,... , Hàm giải mã là hoán vị
nghịch đảo. Hãy mã hóa bản rõ:
thisciphertextcannotbedecrypted
A B C D E F
G H I
J
K L M
d
h
x
w p
l
r
N O P
b g f
Do đó ,
y
v
o
Q R S
j q n
e
z
t
T U V W X Y Z
m u s k a c i
d ( A) d , d ( B) l ,...
Ví dụ giải mã đoạn bản mã sau :
MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA
Ta thu được thisciphertextcannotbedecrypted
Discrete Mathematics I
Số
nguyên
Integer
phép chia
division
Chương 2.4, 2.5 Kenneth H.
Rosen
Xuân 2008
Đại học FPT
Số nguyên
GIỚI THIỆU
Integer
INTRODUCTION
Giới thiệu
Chúng ta sẽ học:
Số nguyên
•Phép chia hết: thương, số dư
•Biểu diễn số nguyên theo cơ số: 10, 2, 8, 16
•Thuật toán cho các phép tính số nguyên
•Số nguyên tố, hợp số
•Ước chung lớn nhất, bội chung nhỏ nhất
•Hàm Euler
•Thuật toán Euclid
Số nguyên
Phép chia
Integer
Định nghĩa
PHÉP CHIA
DIVISION
Definition
Cho hai số nguyên a, b với a ≠ 0, ta nói b chia hết cho
a nếu tồn tại một số nguyên c sao cho b = a.c. Khi b
chia hết cho a ta nói a là ước của b và b là bội của a
và kí hiệu là a|b, nếu trái lại b không chia hết cho a thì
ta kí hiệu a|b.
a|b cZ, (a.c =b)
Định lí
Cho 3 số nguyên a, b, c. Khi đó
Nếu a|b và a|c thì a|(b + c).
Nếu a|b thì a|bc, với mọi số nguyên c.
Nếu a|b và b|c thì a|c.
Theorem
Số nguyên
Integer
PHÉP CHIA
DIVISION
Phép chia
Ví dụ
Example
21 chia hết cho 3 vì tồn tại 7 để 21 = 3.7
Tập tất cả các bội của 2 là
tập các số chẵn
Tập tất cả các ước của 2 là
{1, -1, 2, -2}
Số nguyên
Integer
PHÉP CHIA
DIVISION
Div, mod
Định lí & định nghĩa
Theorem & definition
Cho a là một số nguyên và d là một số nguyên dương.
Khi đó tồn tại duy nhất các số q và r, với 0 r < d sao
cho a = qd + r.
Với các kí hiệu như trên ta nói d là số chia, a là số bị
chia, q được gọi là thương (q = a div d) và r được gọi
là số dư (r = a mod d).
Nhận xét: a chia hết cho d khi và chỉ khi số dư của
phép chia a cho d bằng 0.
Số nguyên
Integer
Div, mod
Thuật toán
procedure Chia(a Z, d N*)
q: = 0
r: = |a|
while r d
begin
r: = r – d
q: = q + 1
end
if (a < 0 và r > 0) then
begin
r: = d – r
q: = –(q + 1)
end
PHÉP CHIA
DIVISION
Algorithm
Số nguyên
PHÉP CHIA
Integer
Ví dụ
DIVISION
Example
Div, mod
Xác định thương và số dư khi chia 11 cho 3
q = 0 & r = 11
thương
8
11
2 33
5
2
3
1+1=1
2
q=0
r=8
11––33==5
5
28
số dư
Xác định thương và số dư khi chia -11 cho 3
-11 < 0 & 2 > 0
q = -(3 + 1) = -4
r=3–2=1
Số nguyên
Integer
SỐ NGUYÊN TỐ
PRIME
Định nghĩa
Số nguyên tố
Definition
Số nguyên dương p > 1 được gọi là số nguyên tố nếu
nó chỉ có các ước số dương là 1 và p. Các số nguyên
dương > 1 và không phải là số nguyên tố được gọi là
hợp số.
Chú ý: n N* là hợp số (a, 1< a < n, a|n).
Định lí
Theorem
Nếu n là một hợp số thì n có ước nguyên tố ≤ n1/2
Số nguyên
Integer
Định nghĩa
Số nguyên tố
SỐ NGUYÊN TỐ
PRIME
Definition
Để tìm tất cả các số nguyên tố ≤ n ta sử dụng sàng
Erathosthenes. Thủ tục này được mô tả như sau:
1. Liệt kê tất cả các số nguyên từ 2 đến n. Gọi là danh
sách A.
2. Lấy ra số 2 là số đầu tiên của danh sách A và cũng
là số nguyên tố đầu tiên. Gọi là danh sách B.
3. Xóa bỏ 2 và các bội của nó ra khỏi danh sách A.
4. Số x đầu tiên trong danh sách A mới là số nguyên tố
và viết vào B.
5. Xóa x và các bội ( x2) của x ra khỏi A.
6. Lặp lại bước 4 và 5 cho đến khi A không còn phần tử
nào. Chú ý là khi phần tử đều tiên của danh sách
còn lại > (phần tử lớn nhất)1/2 thì tất cả các phần tử
còn lại đều là số nguyên tố.
Số nguyên
SỐ NGUYÊN TỐ
Integer
Ví dụ
Tìm tất cả các số nguyên tố ≤ 120
Số nguyên tố
PRIME
Example
Số nguyên
SỐ NGUYÊN TỐ
Integer
Định lí cơ bản của số học
Số nguyên tố
PRIME
Theorem
Mọi số nguyên dương n > 1 đều có thể được viết duy
nhất dưới dạng tích của các số nguyên tố, trong đó
các số nguyên tố được viết theo thứ tự tăng dần, sự
phân tích này gọi là phân tích tiêu chuẩn của n.
n p1v1 . p2v2 ... prvr , p1 p2 ... pr .
Định lí
Theorem
Với mọi n > 1, dạng phân tích của n! là
v ( p1 )
1
n! p
v ( p2 )
2
.p
v ( pr )
r
... p
ở đó, v(pi) = [n/pi] + [n/pi2] + … + [n/pis] + …