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
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. Việc này được thực hiện bằng cách viết
dòng thứ hai trước và sắp xếp lại các chữ cái Alphabe.
Kết quả nhận được như sau:
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
phép
chia
Integer
phép
chia
division
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
PHÉP CHIA
Integer
Định
Định nghĩa
nghĩa
DIVISION
Definition
Definition
Cho
Chohai
haisố
sốnguyên
nguyêna,
a,bbvới
vớiaa≠≠0,
0,ta
tanói
nóibbchia
chiahết
hếtcho
cho
aanếu
nếutồn
tồntại
tạimột
mộtsố
sốnguyên
nguyênccsao
saocho
chobb==a.c.
a.c.Khi
Khibb
chia
chiahết
hếtcho
choaata
tanói
nóiaalà
làước
ướccủa
củabbvà
vàbblà
làbội
bộicủa
củaaavà
và
kíkíhiệu
hiệulàlàa|b,
a|b,nếu
nếutrái
tráilại
lạibbkhông
khôngchia
chiahết
hếtcho
choaathì
thìta
takíkí
hiệu
hiệua|b.
a|b.
a|b
a|b⇔
⇔∃∃c∈Z,
c∈Z,(a.c
(a.c=b)
=b)
Định
Địnhlílí
Cho
Cho33số
sốnguyên
nguyêna,
a,b,
b,c.
c.Khi
Khiđó
đó
Nếu
Nếua|b
a|bvà
vàa|c
a|cthì
thìa|(b
a|(b++c).
c).
Nếu
Nếua|b
a|bthì
thìa|bc,
a|bc,với
vớimọi
mọisố
sốnguyên
nguyênc.
c.
Nếu
Nếua|b
a|bvà
vàb|c
b|cthì
thìa|c.
a|c.
Theorem
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
Div, mod
Định
Định lílí && định
địnhnghĩa
nghĩa
PHÉP CHIA
DIVISION
Theorem
Theorem&&definition
definition
Cho
Choaalà
làmột
mộtsố
sốnguyên
nguyênvà
vàddlà
làmột
mộtsố
sốnguyên
nguyêndương.
dương.
Khi
Khiđó
đótồn
tồntại
tạiduy
duynhất
nhấtcác
cácsố
sốqqvà
vàr,r,với
với00≤≤ rr<
sao
cho
choaa==qd
qd++r.r.
Với
Vớicác
cáckíkíhiệu
hiệunhư
nhưtrên
trênta
tanói
nóiddlà
làsố
sốchia,
chia,aalà
làsố
sốbị
bị
chia,
chia,qqđược
đượcgọi
gọilà
làthương
thương(q
(q==aadiv
divd)
d)và
vàrrđược
đượcgọi
gọi
làlàsố
sốdư
dư(r(r==aamod
modd).
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
Div, mod
PHÉP CHIA
Integer
Ví dụ
DIVISION
Example
Xác định thương và số dư khi chia 11 cho 3
q = 0 & r = 11
8
11
2 ≥≥ 33
5
thương
q=0
2
3
1+1=1
2
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
Địnhnghĩa
nghĩa
Số nguyên tố
Definition
Definition
Số
Sốnguyên
nguyêndương
dươngpp>>11được
đượcgọi
gọilà
làsố
sốnguyên
nguyêntố
tốnếu
nếu
nó
nóchỉ
chỉcó
cócác
cácước
ướcsố
sốdương
dươnglàlà11và
vàp.
p.Các
Cácsố
sốnguyên
nguyên
dương
dương>>11và
vàkhông
khôngphải
phảilà
làsố
sốnguyên
nguyêntố
tốđược
đượcgọi
gọilàlà
hợp
hợpsố.
số.
Chú ý: n ∈ N* là hợp số ⇔ (∃ a, 1< a < n, a|n).
Định
Định lílí
Theorem
Theorem
1/2
Nếu
Nếunnlàlàmột
mộthợp
hợpsố
sốthì
thìnncó
cóước
ướcnguyên
nguyêntố
tố≤≤nn1/2
Số nguyên
Integer
Định
Địnhnghĩa
nghĩa
Số nguyên tố
SỐ NGUYÊN TỐ
PRIME
Definition
Definition
Để
Đểtìm
tìmtất
tấtcả
cảcác
cácsố
sốnguyên
nguyêntố
tố≤≤nnta
tasử
sửdụng
dụngsàng
sàng
Erathosthenes.
Erathosthenes.Thủ
Thủtục
tụcnày
nàyđược
đượcmô
môtả
tảnhư
nhưsau:
sau:
1.
1. Liệt
Liệtkê
kêtất
tấtcả
cảcác
cácsố
sốnguyên
nguyêntừ
từ22đến
đếnn.
n.Gọi
Gọilà
làdanh
danh
sách
sáchA.
A.
2.
2. Lấy
Lấyra
rasố
số22là
làsố
sốđầu
đầutiên
tiêncủa
củadanh
danhsách
sáchAAvà
vàcũng
cũng
là
làsố
sốnguyên
nguyêntố
tốđầu
đầutiên.
tiên.Gọi
Gọilàlàdanh
danhsách
sáchB.
B.
3.
3. Xóa
Xóabỏ
bỏ22và
vàcác
cácbội
bộicủa
củanó
nóra
rakhỏi
khỏidanh
danhsách
sáchA.
A.
4.
4. Số
Sốxxđầu
đầutiên
tiêntrong
trongdanh
danhsách
sáchAAmới
mớilà
làsố
sốnguyên
nguyêntố
tố
và
vàviết
viếtvào
vàoB.
B.
2
5.
5. Xóa
Xóaxxvà
vàcác
cácbội
bội(≥
(≥ xx2))của
củaxxra
rakhỏi
khỏiA.
A.
6.
6. Lặp
Lặplại
lạibước
bước44và
và55cho
chođến
đếnkhi
khiAAkhông
khôngcòn
cònphần
phầntử
tử
nào.
nào.Chú
Chúýýlà
làkhi
khiphần
phầntử
tửđều
đềutiên
tiêncủa
củadanh
danhsách
sách
1/2
còn
cònlại
lại>>(phần
(phầntử
tửlớn
lớnnhất)
nhất)1/2thì
thìtất
tấtcả
cảcác
cácphần
phầntử
tử
còn
cònlại
lạiđều
đềulàlàsố
sốnguyên
nguyêntố.
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
Định lílícơ
cơbản
bảncủa
củasố
số học
học
Số nguyên tố
PRIME
Theorem
Theorem
Mọi
Mọisố
sốnguyên
nguyêndương
dươngnn>>11đều
đềucó
cóthể
thểđược
đượcviết
viếtduy
duy
nhất
nhấtdưới
dướidạng
dạngtích
tíchcủa
củacác
cácsố
sốnguyên
nguyêntố,
tố,trong
trongđó
đó
các
cácsố
sốnguyên
nguyêntố
tốđược
đượcviết
viếttheo
theothứ
thứtự
tựtăng
tăngdần,
dần,sự
sự
phân
phântích
tíchnày
nàygọi
gọilà
làphân
phântích
tíchtiêu
tiêuchuẩn
chuẩncủa
củan.
n.
n = p1v1 . p2v2 ... prvr , p1 ≤ p2 ≤ ... ≤ pr .
Định
Định lílí
Theorem
Theorem
Với
Vớimọi
mọinn>>1,
1,dạng
dạngphân
phântích
tíchcủa
củan!
n!là
là
n! = p
v ( p1 )
1
v ( p2 )
2
.p
v ( pr )
r
... p
22
ss
ởởđó,
v(p
)
=
[n/p
]
+
[n/p
]
+
…
+
[n/p
đó, v(pi i) = [n/pi i] + [n/pi i ] + … + [n/pi i]]++…
…