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

Bài giảng lý thuyết mật mã và an toàn thông tin mật mã cổ điển vũ đình hòa

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 (16.36 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
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  cZ, (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] + …



×