BÀI TẬP LỚN
Lập Trình Hệ Mật Vigenere
Nhóm 2:
Giảng viên giảng dạy:
Sinh viên thực hiện:
Đỗ Như Hải
Nguyễn Ngọc Hưng
1
Lê Thế Quý
GIỚI THIỆU
Thế kỷ thứ 15, một nhà ngoại giao người Pháp tên là Vigenere đã tìm ra phương pháp mã hóa
thay thế đa bảng
Mã Vigenere là mã thế đơn giản nhất
Thực chất quá trình mã hoá Vigenere là việc tiến hành đồng thời dùng nhiều mã Ceasar cùng một
lúc trên bản rõ với nhiều khoá khác nhau. Khoá cho mỗi chữ dùng để mã phụ thuộc vào vị trí của
chữ đó trong bản rõ và được lấy trong từ khoá theo thứ tự tương ứng.
Độ an toàn của mã hóa Vigenere phụ thuộc vào độ dài của khóa.
2
GIỚI THIỆU
Phương pháp Vigenere sử dụng một từ khóa có độ dài m
Có thể xem như phương pháp mã hóa Vigenere bao gồm m phép mã hóa bằng dịch chuyển được
áp dụng luân phiên nhau theo chu kỳ.
Không gian khóa K của phương pháp Vigenere có số phần tử là n m , lớn hơn hẳn phương pháp
số lượng phần tử của không gian khóa K trong phương pháp mã hóa bằng dịch chuyển.
3
CÁCH LÀM
BẢNG CHỮ CÁI
0
1
2
3
4
5
A
B
C
D
E
F
6
7
8
9
10
11
G
H
I
J
K
L
12
13
14
15
16
17
M
N
O
P
Q
R
18
19
20
21
22
23
S
T
U
V
W
X
24
25
Y
Z
4
VÍ DỤ
Khóa là CIPHER tương ứng với dạy số.
Bản rõ meetmeatsunset.
Bản mã OMTAQVCBHBRJGB
Bản mã = (Bản rõ + khóa) mod 26.
Bản rõ = (Bản mã – khóa + 26) mod 26.
Bản rõ
12
4
4
19
12
4
0
19
18
20
13
18
4
19
Khóa
2
8
15
7
4
17
2
8
15
7
4
17
2
8
Bản mã
14
12
19
0
16
21
2
1
7
1
17
9
6
1
5
LẬP TRÌNH
Giới thiệu
Sử dụng ngôn ngữ lập trình JavaScript.
Ngôn ngữ đánh dấu siêu văn bản HTML,
CSS để viết giao diện trên web và định dạng.
6
LẬP TRÌNH
Thuật Toán
Mã hóa
(Bản rõ + khóa) mod 26. Trong JavaScript phép chia lấy dư (mod) được biểu diễn là %.
(Bản rõ + khóa) % 26.
Kiểm tra độ dài các phần tử trong input > độ dài các phẩn tử khóa lặp lại khóa. Dùng vòng lặp while
Giải mã
(Bản mã – khóa + 26) mod 26.
(Bản mã – khóa + 26) % 26.
Kiểm tra độ dài các phần tử trong input > độ dài các phẩn tử khóa lặp lại khóa. Dùng vòng lặp while
7
LẬP TRÌNH
JavaScipt
Xử lý logic, tạo thuật toán
Tương tác với DOM để gửi lấy dữ liệu qua các thẻ input
Thông báo khi người dùng nhập nhập các kí tự không phải là chữ tiếng anh vào input và key
8
LẬP TRÌNH
HTML
Gồm có các div để chứa các thẻ bên trong tạo thành 1 khối.
Thẻ h1, h3, h4 chứa các tiên đề.
Thẻ form chứa các thẻ div, input… bên trong.
Các thẻ input type submit, reset, text, radio để tạo ra các input trong form
9
LẬP TRÌNH
CSS
Làm cho giao diện đẹp hơn
Style thông qua class, id của các thẻ HTML
10
LẬP TRÌNH
11
12