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 58 0
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 một phương pháp biến đổi thơng tin dưới 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 tồ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 có thể 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 tố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 toá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 đơi "kẻ thứ ba" khơng có 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 tồn mãi 1.2 Phân loại thuật toá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ù hoà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 là 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 các chữ cái của từ khóa Nó dạng đơn giản mật mã thay dùng nhiều bảng chữ Để mã hoá, 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 N F O R M A T I U N I V E R S I O N T E C H N O L O G Y T Y U N I V E R S I T Y U Hình 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ữ 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 Hình 2.2.3 Nhập keyword để mã hố - Chọn encrypt để mã hoá đoạn text - Kết sau mã hoá thuật toán Substitution phần mềm Cryptool Ta có chuỗi Ciphertext sau Hình 2.2.4 Kết sau Encrypt Tiến hành giải mã: - Đầu tiên ta chọn Encrypt/ Decrypt => Symmetric (classic) => Substitution/Atbash 21 Hình 2.2.5 Chọn thuật tốn Substitution - Sau đó, ta tiến hành nhập keyword để thực giải mã - Ở ta nhập keyword ban đầu “UIT” Hình 2.2.6 Nhập keyword để giải mã - Sau ta chọn Decrypt để lấy lại chuỗi lúc đầu - Ta có kết giống với chuỗi ban đầu trước thực mã hoá 22 Hình 2.2.7 Kết sau Decrypt 2.3 Thuật tốn AES Ta có đoạn Plaintext P : “Two One Nine Two” lưu file Plaintext.txt keyword “That’s my Kung Fu” Keyword có mã hex(128 bit) là: 54 68 61 74 73 20 6D 79 20 4B 75 6E 67 20 46 75 Hình 2.3.1 Đoạn plaintext Tiến hành mã hoá: - Mở file cần mã hoá(Plaintext.txt) - Tiếp theo ta chọn Encrypt/ Decrypt => Symmetric (modern) => AES(CBC) 23 Hình 2.3.2 Chọn thuật toán AES - Tiếp theo ta nhập mã hex độ dài key Hình 2.3.3 Chọn độ dài nhập key - Sau nhập key xong ta chọn Encrypt để mã hoá chuỗi plaintext - Kết ta có chuỗi ciphertext là: Hình 2.3.4 Kết sau Encrypt Tiến hành giải mã: 24 - Đầu tiên ta chọn Encrypt/Decrypt => Symmetric (modern) => AES(CBC) Hình 2.3.5 Chọn thuật toán AES - Nhập key mà ban đầu dùng để mã hố Hình 2.3.6 Chọn độ dài nhập key - Sau chọn Decrypt để giải mã - Kết ta có chuỗi plaintext ban đầu: Hình 2.3.7 Kết sau Decrypt 25 2.4 Thuật tốn RSA Ta có plaintext m = 123, số nguyên tố p = 61, q =53 chọn e 17 Tiến hành mã hoá: - Chọn Indiv.Procedures => RSA Cryptosystem => RSA Demonstration Hình 2.4.1 Chọn thuật toán RSA - Nhập số nguyên tố p, d Public key e Hình 2.4.2 Nhập số nguyên tố p, q public key e - Tiếp theo ta cần chọn input as “text” “number” tuỳ thuộc vào plaintext, sau nhập m cần mã hố 26 Hình 2.4.3 Nhập plaintext m - Sau chọn Encrypt để tiến hành mã hố Ta có kết sau Hình 2.4.4 Kết sau Encrypt Tiến hành giải mã: - Để giải mã từ ciphertext c = 855 ta nhập c vào phần “plaintext code in number of base 10”, sau chọn Decrypt để giải mã Ta có kết sau: Hình 2.4.5 Kết sau Decrypt 27 2.5 Thuật toán Hill Ta có: đoạn message “ACT” lưu file Plaintext.txt có key “GYBNQKURP” Hình 2.5.1 Đoạn plaintext Tiến hành mã hoá: - Chọn Encrypt/Decrypt => Symmetric (classic) => Hill Hình 2.5.2 Chọn thuật tốn Hill - Tiếp theo nhập kích thước ma trận key 28 Hình 2.5.3 Nhập key chọn kích thước cho ma trận - Sau chọn Encrypt để tiến hành mã hố Ta có kết sau Hình 2.5.4 Kết sau Encrypt Tiến hành giải mã: - Chọn Encrypt/Decrypt => Symmetric (classic) => Hill Hình 2.5.5 Chọn thuật tốn Hill 29 - Tiếp theo nhập kích thước ma trận key Hình 2.5.6 Nhập key chọn kích thước cho ma trận - Chọn Encrypt để tiến hành giải mã Ta có kết sau Hình 2.5.7 Kết sau Decrypt 2.6 Thuật tốn Permutation Ta có Plaintext là: “THIS IS PERMUTATION” lưu file Plaintext.txt key “CIPHER” Tiến hành mã hoá: 30 - Chọn Encrypt/Decrypt => Symmetric (classic) => Permutation Hình 2.6.2 Chọn thuật tốn Permutation - Tiếp theo nhập key dịng “1st Permutation” Hình 2.6.3 Nhập key để tiến hành mã hố - Sau chọn Encrypt => Display ciphertext để tiến hành mã hoá Ta kết sau 31 Hình 2.6.4 Kết sau Encrypt Tiến hành giải mã: - Chọn Encrypt/Decrypt => Symmetric (classic) => Permutation Hình 2.6.5 Chọn thuật tốn Permutation - Tiếp theo nhập key dịng “1st Permutation” 32 Hình 2.6.6 Nhập key để tiến hành giải mã - Sau chọn Decrypt => Display cleartext để tiến hành giải mã Ta kết sau Hình 2.6.7 Kết sau Decrypt 33 Chương Kết Luận Trong thời đại 4.0, môi trường internet tiềm ẩn nhiều nguy rủi ro, việc mã hóa liệu cần thiết để bảo vệ tốt thông tin người dùng Các ứng dụng ngày hỗ trợ đầy đủ phương pháp bảo mật Tuy nhiên, khơng người dùng sử dụng giao thức khơng an tồn, dễ bị rị rỉ thơng tin Bên cạnh báo cáo làm rõ mã hóa phương pháp mã hóa sử dụng phát triển tương lai Trong báo cáo này, tìm hiểu lý thuyết thuật tốn, từ sử dụng cơng cụ mã hố có sẵn để mã hoá liệu sử dụng thuật toán Hill, RSA, Vigenère, Kết cho thấy công cụ hoạt động tốt giúp bảo vệ thơng tin cách hiệu Ngồi ra, cần lưu ý thuật toán mã hoá có ưu nhược điểm riêng, phải chọn thuật tốn phù hợp với nhu cầu Ví dụ, thuật tốn RSA có độ bảo mật cao tốc độ mã hố chậm, thuật tốn Vigenere có tốc độ nhanh độ bảo mật thấp Tổng kết, thực hành sử dụng cơng cụ mã hố giúp hiểu rõ công cụ mã hố có sẵn cách sử dụng chúng, cần tìm hiểu chọn thuật tốn phù hợp với nhu cầu để bảo vệ thơng tin cách tốt Tài Liệu Tham Khảo [1] Wikipedia, "Mật mã Vigenère," [Online] Available: https://vi.wikipedia.org/wiki/M%E1%BA%ADt_m %C3%A3_Vigen%C3%A8re [Accessed 30 2023] [2] Wikipedia, "Substitution cipher," [Online] [Accessed 30 2023] 34 [3] Geekforgeeks, "Substitution Cipher," [Online] Available: https://www.geeksforgeeks.org/substitution-cipher/ [Accessed 30 2023] [4] B K Jena, "What Is AES Encryption and How Does It Work?," [Online] Available: https://www.simplilearn.com/tutorials/cryptography-tutorial/aes -encryption [Accessed 30 2023] [5] B Q Hoat, "Tìm hiểu thuật tốn mã hóa khóa đối xứng AES," [Online] Available: https://viblo.asia/p/tim-hieu-thuat-toan-mahoa-khoa-doi-xung-aes-gAm5yxOqldb [Accessed 30 2023] [6] Wikipedia, "RSA (mã hóa)," [Online] Available: https://vi.wikipedia.org/w/index.php?title=RSA_(m%C3%A3_h %C3%B3a)&veaction=edit§ion=7 [Accessed 30 2023] [7] manhhomienbienthuy, "Hệ mã hóa RSA chữ ký số," [Online] Available: https://viblo.asia/p/he-ma-hoa-rsa-va-chuky-so-6J3ZgkgMZmB [Accessed 30 2023] [8] Wikipedia, "Hill cipher," [Online] https://en.wikipedia.org/wiki/Hill_cipher Available: [Accessed 30 2023] 35

Ngày đăng: 20/09/2023, 15:49