Tải bản đầy đủ (.ppt) (48 trang)

Mật mã và an toàn thông tin Mật mã 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 (1.22 MB, 48 trang )

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à

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ó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à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à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à


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]]++…




×