Tải bản đầy đủ (.doc) (10 trang)

BÀI TIỂU LUẬN- MÃ HÁO DỮ LIỆU VÀ ỨNG DỤNG

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 (218.7 KB, 10 trang )

TIỂU LUẬN
Phần 1 : Hệ mã đối xứng
1. 1. Mã hóa :
- Chuỗi cần mã : trantanhaibatribentre
1. 1. 1. Mã Ceasar : k = 5
- Bảng mã tương ứng với k = 5
1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
a b c d e f g h i j k l m
f g h i j k l m n o p q r
1
4
1
5
1
6
1
7
1
8
1
9
2
0


2
1
2
2
2
3
2
4
2
5
2
6
n o p q r s t u v w x y z
s t u v w x y z a b c d E
- Chiếu tương ứng từng cột ta có quy tắc mã hóa như sau : a = f, b = g, c = h, ,
y = d, z = e.
- Áp dụng quy tắc mã hóa vào chuỗi cần mã hóa, ta có bảng sau :

t r a n t a n h a i b a t r
y w f s y f s m f n g f y w
i b e n t r e
n g j s y w j
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre
Ceasar
→
ywfsyfsmfngfywngjsywj
1. 1. 2. Mã Affine : a = 7 và b = 3
- Hàm mã hóa : Ta chọn n = 26 (bảng chữ cái tiếng Anh), mà gcd(26, 7) = 1 nên
ta có hàm mã hóa cho từng ký tự là : E(x) = (ax + b) mod n

- Lập bảng :
0
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
1
0
1
1
1
2
a b c d e f g h i j k l m
1
3

1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
n o p q r s t u v w x y z
- Chuỗi ban đầu có giá trị lần lượt là :
1 | P a g e
t r a n t a n h a i b a t r
1
9

1
7
0
0
1
3
1
9
0
0
1
3
0
7
0
0
0
8
0
1
0
0
1
9
17
i b e n t r e
0
8
0
1

0
4
1
3
1
9
1
7
0
4
- Áp dụng hàm mã hóa cho từng ký tự :
E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g)
E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s)
E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d)
E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q)
E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g)
E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d)
E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q)
E(07) = 7 . 07 + 3 mod 26 = 00 mod 26 (tương ứng ký tự a)
E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d)
E(08) = 7 . 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h)
E(01) = 7 . 01 + 3 mod 26 = 10 mod 26 (tương ứng ký tự k)
E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d)
E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g)
E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s)
E(08) = 7 . 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h)
E(01) = 7 . 01 + 3 mod 26 = 10 mod 26 (tương ứng ký tự k)
E(04) = 7 . 04 + 3 mod 26 = 05 mod 26 (tương ứng ký tự f )
E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q)
E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g)

E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s)
E(04) = 7 . 04 + 3 mod 26 = 05 mod 26 (tương ứng ký tự f)
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre
Affine
→
gsdqgdqadhkdgshkfqgsf
1. 1. 3. Mã Reilfence : k = 5 dòng kẻ
- Viết chuỗi cần mã hóa theo chiều dọc trên 5 dòng, ta được bảng sau (các ô
trống, ta điền ký tự .) :
2 | P a g e
T A B B E .
R N A E . .
A H T N . .
N A R T . .
T I I R . .
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre
Reilfence
→
tabbe.rnae ahtn nart tiir
1. 1. 4. Mã Vigence :
- Khóa : hue, ta có bảng sau :
a b c d e f g h i j k l m
K1 h i j k l m n o p q r s t
n o p q r s t u v w x y z
K1 u v w x y z a b c d e f g
a b c d e f g h i j k l m
K2 u v w x y z a b c d e f g
n o p q r s t u v w x y z

K2 h i j k l m n o p q r s t
a b c d e f g h i j k l m
K3 e f g h i j k l m n o p q
n o p q r s t u v w x y z
K3 r s t u v w x y z a b c d
- Chia chuỗi cần mã hóa theo bộ 3 để mã hóa, ta có bảng sau :
t r a n t a n h a i b a t r
K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2
i b e n t r e
K3 K1 K2 K3 K1 K2 K3
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre
Vigence
→
aleuneubepvealmiyrali
1. 1. 5. Mã PlayFair :
- Khóa : rachmieu
- Tạo bảng sau để mã hóa :
r a c h m
i e u b d
f g k l n
o p q s t
v w x y z
3 | P a g e
- Chuỗi cần mã hóa được tách thành bộ 2 ký tự như sau (do độ dài chuỗi là 21,
nên ta thêm 1 ký tự x vào cuối chuỗi) :
tr an ta nh ai ba tr ib en tr ex
- Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả :
TR = OM IB = ED
AN = MG EN = DG

TA = PM TR = OM
NH = LM EX = UW
AI = RE
BA = EH
TR = OM
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre
PlayFair
→
ommgpmlmreehomeddgomuw
1. 2. Giải mã :
- Chuỗi cần giải mã : trantanhaibatribentre
1. 2. 1. Mã Ceasar :
- Chuỗi cần giải mã : ywfsyfsmfngfywngjsywj
- Ta có bảng mã hóa như sau :
1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
a b c d e f g h i j k l m
f g h i j k l m n o p q r
1
4
1
5

1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
n o p q r s t u v w x y z
s t u v w x y z a b c d e
- Chiếu tương ứng từng cột ta có quy tắc mã hóa như sau : a = f, b = g, c = h, ,
y = d, z = e.
- Ta có kết quả giải mã như sau :
ywfsyfsmfngfywngjsywj
decrypt
Ceasar

→
trantanhaibatribentre
1. 2. 2. Mã Affine : a = 7 và b = 3
- Chuỗi cần giải mã : gsdqgdqadhkdgshkfqgsf
- Hàm mã hóa : Ta chọn n = 26 (bảng chữ cái tiếng Anh), mà gcd(26, 7) = 1 nên
ta có hàm giải mã cho từng ký tự là : D(x) = a
-1
(x – b) mod n
- Lập bảng :
0
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
1

0
1
1
1
2
4 | P a g e
a b c d e f g h i j k l m
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2

4
2
5
n o p q r s t u v w x y z
- Chuỗi ban đầu có giá trị lần lượt là : gsdqgdqadhkdgshkfqgsf
g s d q g d q a d h k d g s
0
6
1
8
0
3
1
6
0
6
0
3
1
6
0
0
0
3
0
7
1
0
0
3

0
6
18
h k f q g s f
0
7
1
0
0
5
1
6
0
6
1
8
0
5
- Áp dụng hàm giải mã cho từng ký tự :
D(06) = 7
-1
(06 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t)
D(18) = 7
-1
(18 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r)
D(03) = 7
-1
(07 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(16) = 7
-1

(24 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(06) = 7
-1
(03 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t)
D(03) = 7
-1
(16 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(16) = 7
-1
(19 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(00) = 7
-1
(06 – 3) mod 26 = 07 mod 26 (tương ứng ký tự h)
D(03) = 7
-1
(18 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(07) = 7
-1
(13 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i)
D(10) = 7
-1
(16 – 3) mod 26 = 01 mod 26 (tương ứng ký tự b)
D(03) = 7
-1
(19 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(06) = 7
-1
(17 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t)
D(18) = 7
-1

(03 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r)
D(07) = 7
-1
(07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i )
D(10) = 7
-1
(02 – 3) mod 26 = 01 mod 26 (tương ứng ký tự b)
D(05) = 7
-1
(03 – 3) mod 26 = 04 mod 26 (tương ứng ký tự e)
D(16) = 7
-1
(15 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(06) = 7
-1
(06 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t)
D(18) = 7
-1
(07 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r)
D(05) = 7
-1
(05 – 3) mod 26 = 04 mod 26 (tương ứng ký tự e)
- Ta có kết quả giải mã như sau :
gsdqgdqadhkdgshkfqgsf
decrypt
Affine
→
trantanhaibatribentre
1. 2. 3. Mã Reilfence :
- Chuỗi cần giải mã : tabbe.rnae ahtn nart tiir

- Lập k = 5 nhóm có số ký tự bằng nhau :
tabbe. rnae a htn na rt tii r
- Điền các nhóm ký tự vào bảng sau để giải mã :
t a b b e .
5 | P a g e
r n a e . .
a h t n . .
n a r t . .
t i i r . .
- Dựa vào bảng trên, ta có kết quả giải mã như sau :
tabbe.rnae ahtn nart tiir
Re
decrypt
ilfence
→
trantanhaibatribentre
1. 2. 4. Mã Vigence :
- Khóa : hue, ta có bảng sau :
a b c d e f g h i j k l m
K1 h i j k l m n o p q r s t
n o p q r s t u v w x y z
K1 u v w x y z a b c d e f g
a b c d e f g h i j k l m
K2 u v w x y z a b c d e f g
n o p q r s t u v w x y z
K2 h i j k l m n o p q r s t
a b c d e f g h i j k l m
K3 e f g h i j k l m n o p q
n o p q r s t u v w x y z
K3 r s t u v w x y z a b c d

- Chia chuỗi cần mã hóa theo bộ 3 để mã hóa, ta có bảng sau :
a l e u n e u b e p v e a l
K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2
m i y r a l i
K3 K1 K2 K3 K1 K2 K3
- Ta có kết quả giải mã như sau :
aleuneubepvealmiyrali
decrypt
Vigence
→
trantanhaibatribentre
1. 2. 5. Mã PlayFair :
- Khóa : rachmieu
- Tạo bảng sau để giải mã :
r a c h m
i e u b d
f g k l n
o p q s t
v w x y z
- Chuỗi cần mã hóa được tách thành bộ 2 ký tự như sau (do độ dài chuỗi là 21,
nên ta thêm 1 ký tự x vào cuối chuỗi) :
6 | P a g e
om mg pm lm re eh om ed dg om uw
- Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả :
OM = TR ED = IB
MG = AN DG = EN
PM = TA OM = TR
LM = NH UW = EX
RE = AI
EH = BA

OM = TR
- Ta có kết quả mã hóa như sau :
ommgpmlmreehomeddgomuw
decrypt
PlayFair
→
trantanhaibatribentre
Phần 2 : Hệ mã mũ
2. 1. Hệ mã mũ ElGamal :
2. 1. 1. Mã hóa : (tự chọn khóa k
B
> 10 và p = 101, g = 2)
- Tên học viên – chuỗi cần mã hóa : M = hai
- Lập bảng :
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8

0
9
1
0
1
1
1
2
1
3
a b c d e f g h i j k l m
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2

3
2
4
2
5
2
6
n o p q r s t u v w x y z
- Chuỗi cần mã hóa sau khi tra vào bảng trở thành : M = 080109 (vì H = 08, A =
01, I = 09)
- Ta có p = 101, g = 2, chọn S = 23, k
B
= 11 > 10 (yêu cầu của đề bài), vậy
B
K
g
= 2048 mod 101 = 28 mod 101
- A chuyển cho B bộ (g
S
, M.
B
SK
g
) mod p = (2
23
, 80109 . 28
23
) mod 101
- Tính toán :
+ 2

23
mod 101 = 2
10
.2
10
.2
3
mod 101
= 1024 . 1024 . 8 mod 101
= 14 . 14 . 8 mod 101
= 1568 mod 101
= 53 mod 101
+ 80109 . 28
23
mod 101 :
Ta có : 23 = 16 + 4 + 2 + 1 = 2
4
+ 2
2
+ 2
1
+ 2
0
0
2
28
= 28 mod 101
1
2
28

= 28 . 28 mod 101 = 77 mod 101
2
2
28
= 77 . 77 mod 101 = 71 mod 101
3
2
28
= 71 . 71 mod 101 = 92 mod 101
4
2
28
= 92 . 92 mod 101 = 81 mod 101
7 | P a g e
Vậy
B
SK
g
= 28
23
= 81 . 71 . 77 . 28 mod 101 = 93 mod 101
Từ đó ta có : 80109 . 28
23
= 80109 . 93 mod 101 = 74 mod 101
- A chuyển cho B cặp số : (53, 74)
2. 1. 2. Giải mã :
- Cặp số mà B nhận được : (53, 74)= (g
S
, M.
B

SK
g
)
- Công thức : M = (M .
B
SK
g
) . (
B
SK
g
)
-1
mod 101. Ta chọn k
B
= 11.
Vậy : (
B
SK
g
)
-1
= (53
11
)
-1
, M .
B
SK
g

= 18
Ta có : 11 = 8 + 2 + 1 = 2
3
+ 2
1
+ 2
0
0
2
53
= 53 mod 101
1
2
53
= 53 . 53 mod 101 = 82 mod 101
2
2
53
= 82 . 82 mod 101 = 58 mod 101
3
2
53
= 58 . 58 mod 101 = 31 mod 101
Vậy 53
11
= 53 . 82 . 31 mod 101 = 134726 mod 101 = 93 mod 101
- Tìm (
B
SK
g

)
-1
mod 101 = (93)
-1
mod 101
101 = 1 . 93 + 8 1 = 3 - 1 . 2
93 = 11 . 8 + 5 = 3 - 1 . (5 - 1 . 3) = (-1) . 5 + 2 . 3
8 = 1 . 5 + 3 = (-1) . 5 + 2 . (8 - 1 . 5) = 2 . 8 + (-3) . 5
5 = 1 . 3 + 2 = 2 . 8 + (-3) . (93 - 11 . 8) = (-3) . 93 + 35 . 8
3 = 1 . 2 + 1 = (-3) . 93 + 35 . (101 - 1 . 93)
= 35 . 101 + (-38) . 93
Mà 101 + (-38) = 63. Vậy (
B
SK
g
)
-1
mod 101 = 63 mod 101
- Từ đó ta có : M = (M .
B
SK
g
) . ((
B
SK
g
)
-1
)
= 74 . 63 mod 101 = 16 mod 101

Hay ta có thể viết lại là : M = 16 + k . 101. Với k = 793 ta có thể tính được M =
80109 là giá trị ban đầu. Tra vào bảng mã ta sẽ suy ra chuỗi ban đầu.
2. 2. Hệ mã RSA :
- Tự chọn p, q sao cho p, q > 100 và gcd(p, q) = 1. Ta chọn : p = 103 và q = 107
2. 2. 1. Mã hóa :
- Tính N = p * q = 103 * 107 = 11021

( ) ( 1)( 1)N p qΦ = − −
= (103 – 1)(107 – 1) = 10812
- Chọn e = 79, ta có (e,
( )NΦ
) = (79, 10812) = 1
- Dữ liệu ban đầu : HAI  80109
d = e
-1
mod Φ(N) = 79
-1
mod 10812
10812 = 136 . 79 + 68 1 = 11 - 5 . 2
79 = 1 . 68 + 11 = 11 - 5 . (68 - 6 . 11)
68 = 6 . 11 + 2 = (-5) . 68 + 31 . 11
11 = 5 . 2 + 1 = (-5) . 68 + 31 . (79 – 1 . 68)
= 31 . 79 + (-36) . 68
= 31 . 79 + (-36) . (10812 – 136 . 79)
= (-36) . 10812 + 4927 . 79
Vậy d = 4927 mod 10812
Từ đó ta có 2 khóa : khóa công khai K
p
= (e, N) = (79, 11021) và khóa bí mật là K
s

= (d, p, q) = (4927, 103, 107)
8 | P a g e
Mã hóa M = 80109 ta có công thức mã hóa C = M
e
mod N
hay C = 80109
79
mod 11021 = 2962
79
mod 11021
79 = 64 + 8 + 4 + 2 + 1 = 2
6
+ 2
3
+ 2
2
+ 2
1
+ 2
0
2962
0
2
1803
= 1803 mod 11021
1
2
1803
= 1803 . 1803 mod 11021 = 10635 mod 11021
2

2
1803
= 10635 . 10635 mod 11021 = 5723 mod 11021
3
2
1803
= 5723 . 5723 mod 11021 = 9338 mod 11021
4
2
1803
= 9338 . 9338 mod 11021 = 92 mod 11021
5
2
1803
= 92 . 92 mod 11021 = 8464 mod 11021
6
2
1803
= 8464 . 8464 mod 11021 = 2796 mod 11021
Từ đó ta có : C = 1803
79
mod 11021
= 1803 . 10635 . 5723 . 9338 . 2796 mod 11021
= 2865154221576438120 mod 11021
C = 1889 mod 11021
2. 2. 2. Giải mã :
- Ta có C = 1889 mod 11021, ta cần giải mã với khóa công khai là :
K
p
= (e, N) = (79, 11021)

- Công thức giải mã : M = C
d
mod N. Ta có C = 1889, N = 11021, ta cần tìm d :
d = e
-1
mod Φ(N) = 79
-1
mod 10812
10812 = 136 . 79 + 68 1 = 11 - 5 . 2
79 = 1 . 68 + 11 = 11 - 5 . (68 - 6 . 11)
68 = 6 . 11 + 2 = (-5) . 68 + 31 . 11
11 = 5 . 2 + 1 = (-5) . 68 + 31 . (79 – 1 . 68)
= 31 . 79 + (-36) . 68
= 31 . 79 + (-36) . (10812 – 136 . 79)
= (-36) . 10812 + 4927 . 79
Vậy d = 4927 mod 10812
Hay d = e
-1
= 79
-1
mod 11021 = 4927 mod 11021
Từ đó ta có : M = 1889
4927
mod 11021
Ta có : 4927 = 4096 + 512 + 256 + 32 + 16 + 8 + 4 + 2 + 1
= 2
12
+ 2
9
+ 2

8
+ 2
5
+ 2
4
+ 2
3
+ 2
2
+ 2
1
+ 2
0
1889
0
2
5644
= 5644 mod 11021
1
2
5644
= 5644 . 5644 mod 11021 = 4046 mod 11021
2
2
5644
= 4046 . 4046 mod 11021 = 3931 mod 11021
3
2
5644
= 3931 . 3931 mod 11021 = 1319 mod 11021

4
2
5644
= 1319 . 1319 mod 11021 = 9464 mod 11021
5
2
5644
= 9464 . 9464 mod 11021 = 10650 mod 11021
6
2
5644
= 10650 . 10650 mod 11021 = 5389 mod 11021
7
2
5644
= 5389 . 5389 mod 11021 = 986 mod 11021
8
2
5644
= 986 . 986 mod 11021 = 2348 mod 11021
9
2
5644
= 2348 . 2348 mod 11021 = 2604 mod 11021
10
2
5644
= 2604 . 2604 mod 11021 = 2901 mod 11021
9 | P a g e
11

2
5644
= 2901 . 2901 mod 11021 = 6778 mod 11021
12
2
5644
= 6778 . 6778 mod 11021 = 5756 mod 11021
5644
10742
= 5644 . 4046 . 3931 . 1319 . 9464 . 10650 . 2348 . 2604 . 5756 mod 11021
= 112 . 5119 . 4555 . 6999 mod 11021
= 1803 mod 11021
Vậy C = 2962 mod 11021
Hay ta có thể viết là C = 2962 + k . 11021. Với k = 7 ta có giá trị C = M = 80109 (giá
trị ban đầu)
10 | P a g e

×