Tải bản đầy đủ (.pptx) (12 trang)

Slide Lập Trình Hệ Mật Vigenere ( đính kèm source code)

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 (353.49 KB, 12 trang )

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



×