(Tiểu luận) nhập môn bảo đảm và an ninh thông tin báo cáo thực hành lab04 – tìm hiểu và mô phỏng các thuật toán mã hoá

38 4 0
(Tiểu luận) nhập môn bảo đảm và an ninh thông tin báo cáo thực hành lab04 – tìm hiểu và mô phỏng các thuật toán mã hoá

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC VÀ KỸ THUẬT THÔNG TIN NHẬP MÔN BẢO ĐẢM VÀ AN NINH THÔNG TIN BÁO CÁO THỰC HÀNH LAB04 – TÌM HIỂU VÀ MƠ PHỎNG CÁC THUẬT TỐN MÃ HỐ Giảng viên hướng dẫn: TS Nguyễn Tấn Cầm CN Phạm Nhật Duy Lớp: IE105.N22.1 Sinh viên thực hiện: Vũ Phạm Ngọc Tân MSSV: 19520930 Nguyễn Thanh Ngân MSSV: 20520250 Nguyễn Hoàng Huy MSSV: 20520542 Huỳnh Sinh Trường MSSV: 21521600 Trần Ngơ Gia Bảo MSSV: 21521864 Nguyễn Võ Hồng Huy MSSV: 21522162 TP Hồ Chí Minh – 05/2023 MỤC LỤC Chương Cơ Sở Lý Thuyết 1.1 Giới thiệu loại thuật tốn mã hóa liệu 1.2 Phân loại thuật tốn mã hố liệu 1.2.1 Mã hóa cổ điển 1.2.2 Mã hóa chiều 1.2.3 Mã hóa đối xứng 1.2.4 Mã hóa bất đối xứng 1.3 Một số thuật toán mã hoá phổ biến 1.3.1 Thuật toán Vigenere 1.3.2 Thuật toán Substitution 1.3.3 Thuật toán AES(Advanced Encryption Standard) 1.3.4 Thuật toán RSA 1.3.5 Thuật toán Hill 1.3.6 Thuật toán Permutation(Hoán vị) Chương Thực Hiện Thuật Toán Trên Cryptool 2.1 Thuật toán Vigenere 2.2 Thuật toán Substitution 2.3 Thuật toán AES 2.4 Thuật toán RSA 2.5 Thuật toán Hill 2.6 Thuật toán Permutation Chương Kết Luận Tài Liệu Tham Khảo NỘI DUNG THỰC HIỆN STT Thuật toán Đánh giá Vigenere Hoàn thành Substitution Hoàn thành AES Hoàn thành RSA Hoàn thành Hill Hoàn thành Permutation Hoàn thành Chương Cơ Sở Lý Thuyết 1.1 Giới thiệu loại thuật toán mã hóa liệu Mã hóa thực chất phương pháp biến đổi thơng tin dạng bình thường trở nên khơng thể hiểu khơng có phương tiện giải mã Hay nói cách đơn giản dễ hiểu mã hóa cách xáo trộn liệu cách lộn xộn mà bên trao đổi thơng tin hiểu Về mặt kỹ thuật, mã hóa q trình chuyển đổi cấu trúc văn túy mà người dễ dàng đọc hiểu nội dung Cấu trúc hiểu theo thuật ngữ kỹ thuật gọi mã Lúc toàn thông tin văn ban đầu chuyển sang dạng ngôn ngữ khác không giống với văn ban đầu Dữ liệu mã hóa thay đổi xuất cách ngẫu nhiên với cấu trúc khác Dữ liệu có người sở hữu phương tiện mã hóa hiểu Mã hóa liệu muốn thực phải sử dụng khóa mã hóa Khóa mã hóa tập hợp giá trị toán học mà người gửi người nhận tin nhắn mã hóa biết Thuật tốn mã hóa thuật tốn để mã hóa thơng tin chúng ta, biến đổi thơng tin từ dạng rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung thông tin Thông thường thuật toán sử dụng nhiều key (Một chuỗi chìa khóa để mã hóa giải mã thơng tin) để mã hóa giải mã (Ngoại trừ thuật tốn cổ điển) Bạn coi key password để đọc nội dung mã hóa Người gửi dùng key mã hóa để mã hóa thơng tin, người nhận sử dụng key giải mã để giải mã thông tin Chỉ người có key giải mã đọc nội dung Nhưng "kẻ thứ ba" key giải mã đọc thơng tin, cách phá vỡ thuật tốn Và có ngun tắc thuật tốn mã hóa bị phá vỡ Do khơng có thuật tốn mã hóa coi an toàn mãi 1.2 Phân loại thuật tốn mã hố liệu Có thể phân chia thuật tốn mã hóa thành loại: 1.2.1 Mã hóa cổ điển Đây phương pháp mã hóa cổ xưa nhất, thơng dụng so với phương pháp khác Ý tưởng phương pháp đơn giản bên A mã hóa thơng tin thuật tốn mã hóa cổ điển, bên B giải mã thông tin dựa vào thuật tốn bên A mà khơng dùng đến key Do đó, độ an tồn thuật tốn dựa vào độ bí mật thuật tốn, cần ta biết thuật tốn mã hóa, ta giải mã thơng tin Hình 1.2.1 Mơ hình mã hóa cổ điển 1.2.2 Mã hóa chiều Đơi ta cần mã hóa thơng tin khơng cần giải mã thơng tin, ta dùng đến phương pháp mã hóa chiều (Chỉ mã hóa khơng thể giải mã) Thơng thường phương pháp mã hóa chiều sử dụng hàm băm (hash function) để biến chuỗi thông tin thành chuỗi hash có độ dài định Ta khơng có cách để khơi phục (hay giải mã) chuỗi hash lại chuỗi thông tin ban đầu Đặc điểm hash function thực băm hai chuỗi liệu nhau, dù hồn cảnh cho chuỗi hash có độ dài định thường nhỏ nhiều so với chuỗi gốc, hai chuỗi thông tin dù khác cho chuỗi hash khác nhiều Do hash function thường sử dụng để kiểm tra tính tồn vẹn liệu Hình 1.2.2 Mơ hình mã hóa chiều 1.2.3 Mã hóa đối xứng Mã hóa đối xứng (Hay cịn gọi mã hóa khóa bí mật) phương pháp mã hóa mà key mã hóa key giải mã (Sử dụng secret key để mã hóa giải mã) Đây phương pháp thông dụng dùng để mã hóa liệu truyền nhận hai bên Vì cần có secret key giải mã được, nên bên gửi bên nhận cần làm cách để thống secret key Các thuật tốn mã hóa đối xứng thường gặp: DES, AES… Hình 1.2.3 Mơ hình mã hóa đối xứng 1.2.4 Mã hóa bất đối xứng Mã hóa bất đối xứng (Hay cịn gọi mã hóa khóa cơng khai) phương pháp mã hóa mà key mã hóa (lúc gọi public key – khóa công khai) key giải mã (lúc gọi private key – khóa bí mật) khác Nghĩa key ta sử dụng để mã hóa liệu khác với key ta dùng để giải mã liệu Tất người biết public key (kể hacker), dùng public key để mã hóa thơng tin Nhưng có người nhận nắm giữ private key, nên có người nhận giải mã thơng tin Để thực mã hóa bất đối xứng thì: Bên nhận tạo cặp khóa (public key private key) Bên nhận giữ lại private key truyền cho bên gửi public key Vì public key cơng khai nên truyền tự mà không cần bảo mật Bên gửi trước gửi liệu mã hóa liệu thuật tốn mã hóa bất đối xứng với key public key từ bên nhận Bên nhận giải mã liệu nhận thuật toán sử dụng bên gửi, với key giải mã private key 1.3 Một số thuật toán mã hoá phổ biến - 1.3.1 Thuật toán Vigenere Mật mã Vigenere phương pháp mã hóa văn cách sử dụng xen kẽ số phép mã hoá caesar khác dựa chữ từ khóa Nó dạng đơn giản mật mã thay dùng nhiều bảng chữ Để mã hố, ta dùng hình vng Vigenere Nó gồm 26 hàng, hàng dịch bên trái bước so với hàng phía trên, tạo thành 26 bảng mã caesar Hình 1.3.1 Bảng mật mã Vigenere Ta xét ví dụ để hiểu rõ Cho chuỗi Plaintext P: “INFORMATION TECHNOLOGY” Hãy mã hoá chuỗi biết Keyword “UNIVERSITY” Bước 1: Điền Keyword “UNIVERSITY” chuỗi P viết lặp lặp lại nhiều lần hết chuỗi I NF U N OR M A I VE R S T I I ON T E C H T YU N IVERS N O L I O GY T YU Hinh 1.3.2 Minh hoạ cách tạo khoá từ từ khoá Bước 2: Lấy chữ hàng ứng với chữ hàng dựa vào bảng mật mã Vigenere(Hình 1.3.1) để tìm chữ tương ứng - I-U(cột I-hàng U) => C - N-N(cột N-hàng N) => A - F-I(cột F-hàng I) => N - O-V(cột O-hàng V) => J - R-E(cột R-hàng E) => V - M-R(cột M-hàng R) => D - A-S(cột A-hàng S) => S - T-I(cột T-hàng I) => B - I-T(cột I-hàng T) => B - O-Y(cột O-hàng Y) => M - N-U(cột N-hàng U) => H - T-N(cột T-hàng N) => G - E-I(cột E-hàng I) => M - C-V(cột C-hàng V) => X - H-E(cột H-hàng E) => L - N-R(cột N-hàng R) => E - O-S(cột O-hàng S) => G - L-I(cột L-hàng I) => T - O-T(cột O-hàng T) => H - G-Y(cột G-hàng Y) => E - Y-U(cột Y-hàng U) => S Bước 4: Kết luận Plaintext: INFORMATION TECHNOLOGY Ciphertext: CANJVDSBBMH GMXLEGTHES 1.3.2 Thuật toán Substitution Mã thay (Substitution Cipher) hệ mã kí tự rõ thay ký tự tương ứng mã theo cách Ta xét ví dụ để hiểu rõ Cho chuỗi Plaintext P: “INFORMATION TECHNOLOGY” Hãy mã hoá chuỗi biết keyword “UIT” Để mã hoá ta cần sử dụng bảng mixed alphabets có dạng sau: Plaintext alphabet ABCDFGHIJKLMNOPQRSTUVWXYZ Ciphertext alphabet Ciphertext alphabet: tạo cách viết từ khoá keyword trước tiên, loại bỏ chữ bị lặp lại, sau viết chữ cịn lại bảng chữ theo thứ tự tăng dần Ở đâu ta có keyword “UIT” => Ciphertext alphabet là: UITABCDEFGHJKLMNOPQRSVWXYZ Ta có mixed alphabets sau: Plaintext ABCDEFGHIJKLMNOPQRSTUVWXYZ alphabet Ciphertext UITABCDEFGHJKLMNOPQRSVWXYZ alphabet Dựa vào bảng ta so sánh với đoạn message cần mã hoá: INFORMATION TECHNOLOGY Thay thế: I=F, N=L, F=C, O=M, R=P, M=K, A=U, T=R, E=B, C=T, H=E, N=L, L=J, G=D, Y=Y Kết luận : Plaintext: INFORMATION TECHNOLOGY Ciphertext: FLCMPKURFML RBTELMJMDY 1.3.3 Thuật toán AES(Advanced Encryption Standard) Thuật toán AES(advanced encryption standard) hay tiêu chuẩn mã hoá tiến tiến AES làm việc với khối liệu 128bit độ dài khóa 128bit, 192bit 256bit Các khóa mở rộng sử dụng chu trình tạo thủ tục sinh khóa Rijndael Hầu hết phép toán thuật toán AES thực trường hữu hạn byte Mỗi khối liệu đầu vào 128bit chia thành 16 byte, xếp thành cột, cột phần tử hay ma trận 4x4 byte, gọi ma trận trạng thái

Ngày đăng: 28/09/2023, 20:30