kich-ban-ho-so-07-mo-ta-ho-so-so-DS07 Tranh chấp Ly hôn 2.docx
btl đsttinh.pptx
1. TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Bộ môn :ĐẠI SỐ TUYẾN TÍNH
GV hướng dẫn: Nguyễn Xuân Mỹ
2. CHỦ ĐỀ 12: MẬT MÃ HILL TRONG BÀI TOÁN
MÃ HOÁ
STT HỌ VÀ TÊN MSSSV
1 Lâm Trọng Nhân 2312423
2 Huỳnh Hoài Nhân 2312421
3 Võ Phan Thanh Nguyên 2312393
4 Đỗ Minh Nhật 2312467
5 Nguyễn Anh Nhật 2312476
6 Huỳnh Nguyên Phát 2312572
7 Vĩnh Bảo Phúc 2312728
LỚP: LO6
NHÓM: 12
3.
4. Mã hoá Hill (được phát minh bởi
Lester S. Hill năm 1929) là mật mã
cổ điển cho phép mã hoá hai, hay
ba, hoặc nhiều hơn các ký tự (theo lý
thuyết) tại cùng thời điểm. Mã hoá
Hill sử dụng hai lý thuyết toán hác
cực kì quan trọng trong ngành mật
mã là Đại số Tuyến Tính và Số phức
Mô-Đun.
Trong bài báo cáo này nhóm em sẽ
trình bày tạo ra bản mã và giải bản
mã bằng phần mềm MATLAB
Lester S. Hill
5. Một số khái
niệm liên
quan
01
Ma trận
khả nghịch
trên vành
Z27
02
Các bước
để mã hóa
và giải mã
thông tin
03
6. • Mã cũng được thực hiện trên từng bộ m ký tự. mỗi ký tự
trong bản mã một tổ hợp tuyến tính (trên vành Z26) của m
ký tự trong bản rõ. Khoá sẽ được cho bởi một ma trận cấp
m, tức nó là một phần tử của Z26mxm
a b c d e f g h i j k l m n o p q r s t u v w x y z -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1
5
16 17 18 19 20 21 22 23 24 25 26 0
7. Để mã hoá thông tin:
• Đầu tiên, ta chọn một ma trận chìa khoá A (là một ma trận vuông n×n khả nghịch mà người gửi
và người nhận đều biết trước. Lưu ý, định thức của ma trận này phải là số nguyên tố cùng nhau
với 27. Tiếp theo, chuyển đoạn tin nhắn cần gửi thành dãy số theo bảng quy ước :
• Sau đó, chia dãy số thành từng nhóm n số và lập thành ma trận tin nhắn ta gọi đó là ma trận B.
• Thực hiện phép nhân: A×B=M
• Ta có thể dùng máy tính bỏ túi để thực hiện phép nhân bằng cách chia ma trận B thành những
ma trận con có số cột nhỏ hơn hoặc bằng , rồi thực hiện phép nhân ma trận A cho các ma trận
con này. Thay thế c Thay thế mỗi số trong ma trận C bởi các kí tự trong bảng quy tắc trên ta
được thông điệp mã hóa.
8. Double Chuyển đổi chuỗi sang số thập phân với độ chính xác kép
(ASCII)
Reshape Sửa lại cấu trúc của một ma trận (sửa lại số hàng, số cột )
Strrep Tìm kiếm và thay thế chuỗi String
Mod Thay thế phần dư theo modul X
Char Chuyển đổi số thập phân (ASCII) về lại dạng chuỗi ký tự
Inv Tính ma trận nghịch đảo cảu ma trận X
For Thực hiện lặp lại một hay nhiều câu lệnh với số lần định
trước
2.2.1. MỘT SỐ LỆNH ĐƯỢC DÙNGTRONG BẢN CODE
9. • Matlab (viết tắt của matrix laborary) là
một ngôn ngữ
• Lập trình bậc cao bán thế hệ, môi trường
để tính toán số học, trực quan và lập trình.
• Nó cho phép thao tác với ma trận, vẽ
biểu đồ với hàm và số liệu, hiện thực
thuật toán, tạo ra giao diện người dùng,
bao gồm C, C++, Java và Fortran; phân
tích dữ liệu, phát triển thuật toán, tạo
các kiểu mẫu và ứng dụng.
• Nó là công cụ hỗ trợ đắc lực cho
bên trong việc tính toán, vẽ các
hình, vẽ biểu đã thông dụng cả thực
thi các phương pháp tính toán.
10. • Hỗ trợ giao tiếp liên lạc giữa
các đơn vị
• Phù hợp cho việc giữ bí mật
chiến lược quan trọng.
Trong Quân Sự
2.4 Ứng dụng của mật mã
trong cuộc sống
• Tránh để bị lộ những thông
tin tuyệt mật
• Là công cụ ngôn ngữ hữu
dụng.
Trong Trao Đổi Thư Tín
11. • Tránh những tài liệu mật thông
tin cá nhân bị lộ ra ngoài
• Tránh các tình trạng mạo danh
lừa gạt người khác
Trong bảo mật cá nhân
• Bảo mật máy tính nhằm mục đích
giúp người dung
• Ngăn chặn gian lận hoặc phát hiện
gian lận trong một hệ thống dựa trê
thông tin.
Trong việc bảo mật
tin nhắn văn bản
12. IV. Kết luận
Môn Đại số tuyến tính có tính
thiết thực, được ứng dụng trong
nhiều lĩnh vực khác nhau
Mật mã Hill có nhiều ứng dụng
trong đời sống và trong mã hoá
thông tin
Dựa vào phần mềm MATLAB
có thể viết chương trình mã
hoá và giải mã thông điệp
13. V. Tham khảo
1/ Giáo trình Đại số tuyến tính- ĐặngVănVinh,
NXBĐHQGTPHCM, 2019
2/Tham khảo bài giảng trênYoutube của cô BùiThị Thuỳ
3/ Ngôn ngữ lập trình khác :https//www.geeksforgeeks.org/hill-
cipher/
4/Tham khảo các thuật toán tại: https//www.mathworks.com