.- Ta có kết quả mã hóa như sau : trantanhaibatribentre Reilfence 1... Tra vào bảng mã ta sẽ suy ra chuỗi ban đầu.
Trang 1TIỂ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 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
- 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 :
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
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
- Chuỗi ban đầu có giá trị lần lượt là :
Trang 219 17 00 13 19 00 13 07 00 08 01 00 19 17
08 01 04 13 19 17 04
- Á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 :
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ự .) :
Trang 3N A R T .
- Ta có kết quả mã hóa như sau :
trantanhaibatribentre Reilfence
1 1 4 Mã Vigence :
- Khóa : hue, ta có bảng sau :
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
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
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 :
K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2
K3 K1 K2 K3 K1 K2 K3
- Ta có kết quả mã hóa như sau :
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
- 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
Trang 4- Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả :
AI = RE
BA = EH
TR = OM
- Ta có kết quả mã hóa như sau :
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 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
- 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 :
Ceasar
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
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
Trang 5n 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
06 18 03 16 06 03 16 00 03 07 10 03 06 18
07 10 05 16 06 18 05
- Á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
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 :
Trang 6tabbe.rnae ahtn nart tiir Re
decrypt ilfence
1 2 4 Mã Vigence :
- Khóa : hue, ta có bảng sau :
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
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
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 :
K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2
K3 K1 K2 K3 K1 K2 K3
- Ta có kết quả giải mã như sau :
aleuneubepvealmiyrali decrypt
Vigence
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) :
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ả :
Trang 7LM = NH UW = EX
RE = AI
EH = BA
OM = TR
- Ta có kết quả mã hóa như sau :
ommgpmlmreehomeddgomuw PlayFair decrypt trantanhaibatribentre
Phần 2 : Hệ mã mũ
2 1 Hệ mã mũ ElGamal :
2 1 1 Mã hóa : (tự chọn khóa kB > 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
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
- 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, kB = 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ộ (gS, M.g SK B) mod p = (223, 80109 2823) mod 101
- Tính toán :
+ 223mod 101 = 210.210.23 mod 101
= 1024 1024 8 mod 101
= 14 14 8 mod 101
= 53 mod 101
+ 80109 2823 mod 101 :
Ta có : 23 = 16 + 4 + 2 + 1 = 24 + 22 + 21 + 20
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
Vậy SK B
g = 2823 = 81 71 77 28 mod 101 = 93 mod 101
Từ đó ta có : 80109 2823 = 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)= (gS, M.g SK B)
Trang 8- Công thức : M = (M SK B
g ) ( SK B
g )-1 mod 101 Ta chọn kB = 11
Vậy : ( SK B
g )-1 = (5311)-1 , M SK B
g = 18
Ta có : 11 = 8 + 2 + 1 = 23 + 21 + 20
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 5311 = 53 82 31 mod 101 = 134726 mod 101 = 93 mod 101
- Tìm (g SK B)-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 (g SK B)-1 mod 101 = 63 mod 101
- Từ đó ta có : M = (M g SK B) ((g SK B)-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
( ) (N p 1)(q 1)= (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 Kp = (e, N) = (79, 11021) và khóa bí mật là Ks
= (d, p, q) = (4927, 103, 107)
Mã hóa M = 80109 ta có công thức mã hóa C = Me mod N
hay C = 8010979 mod 11021 = 296279 mod 11021
79 = 64 + 8 + 4 + 2 + 1 = 26 + 23 + 22 + 21 + 20
2962 2 0
1
2
1803 = 1803 1803 mod 11021 = 10635 mod 11021
Trang 91803 = 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 = 180379 mod 11021
= 1803 10635 5723 9338 2796 mod 11021
= 2865154221576438120 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à :
Kp = (e, N) = (79, 11021)
- Công thức giải mã : M = Cd 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 = 18894927 mod 11021
Ta có : 4927 = 4096 + 512 + 256 + 32 + 16 + 8 + 4 + 2 + 1
= 212 + 29 + 28 + 25 + 24 + 23 + 22 + 21+ 20
1889 5644 2 0 = 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
11
2
5644 = 2901 2901 mod 11021 = 6778 mod 11021
12
2
5644 = 6778 6778 mod 11021 = 5756 mod 11021
= 112 5119 4555 6999 mod 11021
= 1803 mod 11021
Trang 10Vậ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)