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
Để 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
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
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.
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
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ố
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
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
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à
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ố