- Dựa vào bảng trên, ta có kết quả giải mã như sau : bnnlenuggangitcyg.drati.auiia.
Trang 1TIỂU LUẬN
Phần 1 : Hệ mã đối xứng
- Mã hóa : họ tên + quê quán (huyện + tỉnh)
VD :- Chuỗi cần mã : PhanVinhTungHuongThuyThuaThienHue
- Mã Ceasar : k = 5
- Affine : a = 7 và b = 3
- Reilfence : k = 5 dòng kẻ
- Vigence : khóa : hue
- PlayFair : khóa : rachmieu
- Giải mã tương ứng
Phần II : lập và giải mã tên học viên theo 2 hệ mã mũ ElGamal (tự chọn khóa kB > 10
và p = 101, g = 2) và RSA
GIẢI QUYẾT
Phần 1 : Hệ mã đối xứng
1 1 Mã hóa :
- Chuỗi cần mã : buidangtrungcailaytiengiang
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
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
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 :
b u i d a n g t r u n g c a
g z n i f s l y w z s l h f
i l a y t i e n g i a n g
n q f d y n j s l n f s l
- 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 :
Trang 2-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à :
01 20 08 03 00 13 06 19 17 20 13 06 02 00
08 11 00 24 19 08 04 13 06 08 00 13 06
- Áp dụng hàm mã hóa cho từng ký tự :
E(01) = 7 01 + 3 mod 26 = 10 mod 26 (tương ứng ký tự k)
E(20) = 7 20 + 3 mod 26 = 13 mod 26 (tương ứng ký tự n)
E(08) = 7 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h)
E(03) = 7 03 + 3 mod 26 = 24 mod 26 (tương ứng ký tự y)
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(06) = 7 06 + 3 mod 26 = 19 mod 26 (tương ứng ký tự 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(20) = 7 20 + 3 mod 26 = 13 mod 26 (tương ứng ký tự n)
E(13) = 7 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q)
E(06) = 7 06 + 3 mod 26 = 19 mod 26 (tương ứng ký tự t)
E(02) = 7 02 + 3 mod 26 = 17 mod 26 (tương ứng ký tự r)
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(11) = 7 11 + 3 mod 26 = 02 mod 26 (tương ứng ký tự c)
E(00) = 7 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d)
E(24) = 7 24 + 3 mod 26 = 15 mod 26 (tương ứng ký tự p)
E(19) = 7 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g)
E(08) = 7 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h)
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)
Trang 3E(08) = 7 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h)
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(06) = 7 06 + 3 mod 26 = 19 mod 26 (tương ứng ký tự t)
- 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ự .) :
B N N L E N
U G G A N G
I T C Y G .
- Ta có kết quả mã hóa như sau :
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 :
K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3
Trang 4- 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 j k l
n o p q s
t v 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à 27,
nên ta thêm 1 ký tự x vào cuối chuỗi) :
bu id an gt ru ng ca il ay ti en gi an gx
- Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả :
BU = DB (Cùng hàng) IL = DF (Khác hàng, khác cột)
ID = EI (Cùng hàng) AY = HV (Khác hàng, khác cột)
AN = RO (Khác hàng, khác cột) TI = RF (Khác hàng, khác cột)
GT = FV (Cùng cột) EN = IO (Khác hàng, khác cột)
RU = CI (Khác hàng, khác cột) GI = FE (Khác hàng, khác cột)
NG = OF (Khác hàng, khác cột) AN = RO (Khác hàng, khác cột)
CA = HC (Cùng hàng) GX = JV (Khác hàng, khác cột)
- Ta có kết quả mã hóa như sau :
1 2 Giải mã :
- Chuỗi cần giải mã : buidangtrungcailaytiengiang
1 1 1 Mã Ceasar :
- Chuỗi cần giải mã : gznijslywzslhfnqfdynjslnfsl
- 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
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
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 :
gznifslywzslhfnqfdynjslnfsl decrypt
Ceasar
1 1 2 Mã Affine : a = 7 và b = 3
Trang 5- 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
- Chuỗi ban đầu có giá trị lần lượt là : knhydqtgsnqtrdhcdpghfqthdqt
10 13 07 24 03 16 19 06 18 13 16 19 17 03
07 02 03 15 06 07 05 16 19 07 03 16 19
- Áp dụng hàm giải mã cho từng ký tự :
D(10) = 7-1(10 – 3) mod 26 = 01 mod 26 (tương ứng ký tự b)
D(13) = 7-1(13 – 3) mod 26 = 20 mod 26 (tương ứng ký tự u)
D(07) = 7-1(07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i)
D(24) = 7-1(24 – 3) mod 26 = 03 mod 26 (tương ứng ký tự d)
D(03) = 7-1(03 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(16) = 7-1(16 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(19) = 7-1(19 – 3) mod 26 = 06 mod 26 (tương ứng ký tự g)
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(13) = 7-1(13 – 3) mod 26 = 20 mod 26 (tương ứng ký tự u)
D(16) = 7-1(16 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(19) = 7-1(19 – 3) mod 26 = 06 mod 26 (tương ứng ký tự g)
D(17) = 7-1(17 – 3) mod 26 = 02 mod 26 (tương ứng ký tự c)
D(03) = 7-1(03 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(07) = 7-1(07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i)
D(02) = 7-1(02 – 3) mod 26 = 11 mod 26 (tương ứng ký tự l)
D(03) = 7-1(03 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(15) = 7-1(15 – 3) mod 26 = 24 mod 26 (tương ứng ký tự y)
D(06) = 7-1(06 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t)
D(07) = 7-1(07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i)
D(05) = 7-1(05 – 3) mod 26 = 04 mod 26 (tương ứng ký tự e)
D(16) = 7-1(16 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(19) = 7-1(19 – 3) mod 26 = 06 mod 26 (tương ứng ký tự g)
Trang 6-D(07) = 7-1(07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i)
D(03) = 7-1(03 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a)
D(16) = 7-1(16 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n)
D(19) = 7-1(19 – 3) mod 26 = 06 mod 26 (tương ứng ký tự g)
- Ta có kết quả giải mã như sau :
knhydqtgsnqtrdhcdpghfqthdqt decrypt
Affine
1 1 3 Mã Reilfence :
- Chuỗi cần giải mã : bnnlenuggangitcyg.drati.auiia.
- Lập k = 5 nhóm có số ký tự bằng nhau :
bnnlen uggang itcyg drati auiia.
- Điền các nhóm ký tự vào bảng sau để giải mã :
b n n l e n
u g g a n g
i t c y g
d r a t i
a u i i a
- Dựa vào bảng trên, ta có kết quả giải mã như sau :
bnnlenuggangitcyg.drati.auiia Re
decrypt ilfence
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 :
K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3
Trang 7- Ta có kết quả giải mã như sau :
Vigence
1 1 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 j k l
n o p q s
t v 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à 27,
nên ta thêm 1 ký tự x vào cuối chuỗi) :
db ei ro fv ci of hc df hv rf io fe ro jv
- Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả :
DB = BU (Cùng hàng) DF = IL (Khác hàng, khác cột)
EI = ID (Cùng hàng) HV = AY (Khác hàng, khác cột)
RO = AN (Khác hàng, khác cột) RF = TI (Khác hàng, khác cột)
FV = GT (Cùng cột) IO = EN (Khác hàng, khác cột)
CI = RU (Khác hàng, khác cột) FE = GI (Khác hàng, khác cột)
OF = NG (Khác hàng, khác cột) RO = AN (Khác hàng, khác cột)
HC = CA (Cùng hàng) JV = GX (Khác hàng, khác cột)
- Ta có kết quả mã hóa như sau :
dbeirofvciofhcdfhvrfioferojv decrypt
PlayFair
Phần 2 :
2 1 Hệ mã mũ ElGamal :
2 1 1 Mã hóa :
2 1 2 Giải mã :
2 2 Hệ mã RSA :
2 2 1 Mã hóa :
2 2 2 Giải mã :