Báo cáo Môn An toàn bảo mật Haui chủ đề Mã hóa và giải mã ElGamal chi tiết có chương trình demo với C++ GUI và C .●Phân tích được các kỹ thuật sử dụng để mã hóa và xác thực thông tin.●Hiểu và áp dụng các thuật toán liên quan đến hệ mã hóa Elgamal như (thuật toán sinh khóa, thuật toán mã hóa, thuật toán giải mã cùng vời các thuật toán liên quan như thuật toán nghịch đảo của phép nhân modulo hay thuật toán bình phưong và nhân trong modulo) vào việc mã hóa và giải mã để giải quyết bài toán có tính ứng dụng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -🙞🙞🙞🙞🙞 - BÁO CÁO THỰC NGHIỆM Học phần: An tồn bảo mật thơng tin Chủ đề : Xây dựng chương trình mã hóa giải mã ElGamal Giáo viên: Ths Phạm Văn Hiệp Lớp: 20222IT6001012 Nhóm: Nhóm Thành viên Ngơ Kim Đơng – 2020604782 Hoàng Đức Hiếu – 2020607919 Dương Thế Đoàn – 2020603456 Đằng Anh Quân – 2021606314 Hà Nội, Năm 2023 LỜI CẢM ƠN Báo cáo tập lớn với đề tài “Xây dựng chương trình mã hóa giải mã ElGamal ” kết trình cố gắng khơng ngừng nhóm, động viên khích lệ, giúp đỡ giảng viên Phạm Văn Hiệp Qua trang viết chúng em xin gửi lời cảm ơn tới người giúp đỡ chúng em thời gian học tập - nghiên cứu vừa qua Chúng em xin tỏ lịng kính trọng biết ơn sâu sắc thầy Phạm Văn Hiệp trực tiếp tận tình hướng dẫn cung cấp tài liệu thông tin khoa học cần thiết cho tập chúng em Cuối chúng em kính chúc thầy dồi sức khỏe thành cơng nghiệp cao q Nhóm thực MỤC LỤC Lời nói đầu .5 CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan An tồn bảo mật thơng tin 1.2 Lý chọn đề tài 1.3 Nội dung nghiên cứu 1.4 Các kiến thức cần có .8 CHƯƠNG 2: KẾT QUẢ NGHIÊN CỨU 2.1 Nghiên cứu, tìm hiểu hệ mã khóa cơng khai .9 2.1.1 Khái niệm: .9 2.1.2 Cách hoạt động: 2.1.3 Các thuật toán: 2.1.4 Ứng dụng: 2.2 Nghiên cứu tìm hiểu mật mã ElGamal .10 2.2.1 Giới thiệu chung hệ mã ElGamal 10 2.2.2 Mã hóa giải mã ElGamal .10 2.2.3 Độ an toàn .12 2.2.4 Ưu nhược điểm hệ mã ElGamal .12 2.3 Nội dung thuật toán 13 2.4 Thiết kế chương trình, cài đặt thuật toán .15 2.4.1 Ngôn ngữ C++ 15 2.4.2 Ngôn Ngữ C# 26 CHƯƠNG 3: KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 38 3.1 Kiến thức kỹ học trình thực đề tài 38 3.2 Bài học kinh nghiệm 39 3.3 Đề xuất tính khả thi chủ đề nghiên cứu, thuận lợi, khó khăn 39 Lời nói đầu Trước cơng nghệ máy tính chưa phát triển, nói đến vấn đề an tồn bảo mật thơng tin, thường hay nghĩ đến phương pháp nhằm đảm bảo cho thông tin trao đổi hay cất giữ cách an tồn bí mật, chẳng hạn phương pháp: đóng dấu ký niêm phong thư để biết thư có chuyển nguyên vẹn đến người nhận hay khơng, dùng mật mã hố thơng điệp để chi có người gửi người nhận hiểu thông điệp, lưu giữ tài liệu két sắt có khố nơi bảo vệ nghiêm ngặt Ngày với phát triển khoa học công nghệ, đặc biệt phát triển Internet, việc sử dụng máy tính điện thoại cá nhân trở nên rộng rãi, dẫn dắt đến nhiều thông tin lưu trữ máy tính gửi mạng Internet Do nhu cầu an tồn bảo mật thơng tin máy tính nhiều việc sử dụng mật mã mã hoá phổ biến Trong thực tế hacker, dạng virus công mối đe dọa nguồn tài nguyên thông tin Những vấn đề đảm bảo an tồn thơng tin hệ thống máy tính quan trọng Hiểu điều đó, nhóm chúng em thực xây dựng chương trình mã hóa giải mã ElGamal Từ kiến thức học với việc nghiên cứu tài liệu Internet, nhờ hướng dẫn, bảo tận tình thầy Phạm Văn Hiệp, nhóm chúng em hồn thành đề tài Trong q trình hồn thành đề tài, chúng em cịn gặp nhiều khó khăn, hiểu biết chúng em hạn hẹp nên kết cịn nhiều thiếu sót Kính mong thầy nhận xét đóng góp ý kiến để nhóm chúng em có thẻ hồn thiện tập lớn Chúng em xin chân thành cảm ơn! CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan An tồn bảo mật thơng tin An tồn thơng tin bảo vệ đặc tính riêng tư (confidentialy), tồn vẹn (intergrity) khả dụng (availabity) thơng tin ● C: (Confidentialy) bảo vệ tính riêng tư liệu thông qua chế chứng thực mã hóa, ngăn ngừa người khơng hợp lệ không đọc thông tin Giống bì thư phát lương thưởng dán chữ Confidentialy, hình dung mơi trường công nghệ thông tin người chưa đăng nhập vào Domain không truy cập liệu chia sẻ cho Domain User ● I: (Intergrity) bảo vệ tính tồn vẹn liệu thơng qua thuật toán RSA, SHA, MD5 ngăn ngừa attacker thay đổi thông tin nhạy cảm trình truyền ● A: (Available) bảo đảm liệu ln trạng thái sẵn sằng đáp ứng nhu cầu người dùng ● Non-Repudiation: Tính khơng thể chối bỏ, nghĩa liệu người gửi họ phải có trách nhiệm với thơng tin thơng qua xác nhận nguồn gốc chữ kí điện tử Để đảm bảo việc truyền tin an toàn kiểm tra tính tồn vẹn thơng tin, người ta thường mã hóa thơng tin trước truyền sổ hệ mật DES, Triple DES (3DES), RC4, AES, RSA, Rabin, Diffle-Hellman, Elgamal, Qua dự án lần nhóm sinh viên chúng em sâu tìm hiểu xây dựng phát triển mã hóa giải mã Elgamal , nắm kiến thức phương pháp mã hóa giải mã thuật toán cần thiết ngôn ngữ như: Java, Python, 1.2 Lý chọn đề tài Trước cơng nghệ máy tính chưa phát triển, nói đến vấn đề an tồn bảo mật thông tin, thường hay nghĩ đến biện pháp nhằm đảm bảo cho thông tin trao đổi hay cất giữ cách an toàn bí mật, chẳng hạn biện pháp như: Đóng dấu ký niêm phong thư để biết thư có chuyển nguyên vẹn đến người nhận hay khơng, dùng mật mã mã hóa thơng điệp để có người gửi người nhận hiểu thông điệp, lưu giữ tài liệu két sắt có khóa nơi bảo vệ nghiêm ngặt Ngày với phát triển khoa học công nghệ, đặc biệt phát triển Internet, việc sử dụng máy tính điện thoại cá nhân trở lên rộng rãi, dẫn đến nhiều thông tin lưu trữ máy tính gửi mạng Internet Do nhu cầu an tồn bảo mật thơng tin máy tính nhiều việc sử dụng mật mã mã hóa phổ biến Do có nhiều kiểu mã hóa đại phức tạp ngày sinh phát triển Chính lý dựa kiến thức học Nhóm em chọn đề tài: “Xây dựng chương trình mã hóa giải mã ElGamal ” cho thi kết thúc học phần An tồn bảo mật thơng tin 1.3 Nội dung nghiên cứu ● Tìm hiểu chung hệ mã hóa cơng khai - Khái niệm - Cách hoạt động - Các thuật toán - Ứng dụng ● Nghiên cứu tìm hiểu mật mã ElGamal - Giới thiệu chung hệ mã ElGamal - Mã hóa giải mã ElGamal - Độ an toàn - Ưu nhược điểm hệ mã ElGamal ● Áp dụng thực xây dựng chương trình với ngơn ngữ C#, C+ +… 1.4 Các kiến thức cần có 🙞 Các kiến thức thuật toán, định lý: o Nắm rõ kiến thức ElGamal o Nghiên cứu nội dung thuật toán ( Kiểm tra số nguyên tố, Euclid tìm ước chung lớn nhất, Bình phương nhân,…) 🙞 Các kiến thức ngơn ngữ lập trình: + C# + C++ CHƯƠNG 2: KẾT QUẢ NGHIÊN CỨU 2.1 Nghiên cứu, tìm hiểu hệ mã khóa cơng khai 2.1.1 Khái niệm: - Hệ mã khóa cơng khai, hay cịn gọi mã khóa cơng khai, hệ thống mã hóa sử dụng cặp khóa gồm khóa cơng khai khóa bí mật Hệ thống phát triển để giải vấn đề liên quan đến việc trao đổi thơng tin an tồn mạng khơng đáng tin cậy 2.1.2 Cách hoạt động: - Trong hệ mã khóa cơng khai, người dùng có cặp khóa gồm khóa cơng khai (public key) khóa bí mật (private key) Khóa cơng khai chia sẻ cơng khai, khóa bí mật giữ bí mật - Khi người dùng muốn gửi thông điệp cho người nhận, người gửi sử dụng khóa cơng khai người nhận để mã hóa thơng điệp Chỉ có khóa bí mật tương ứng với khóa cơng khai giải mã thơng điệp Điều đảm bảo người nhận thực có khóa bí mật đọc nội dung 2.1.3 Các thuật tốn: - Hệ mã khóa cơng khai xây dựng thuật tốn mã hóa mạnh RSA, Diffie-Hellman, ElGamal, ECC (Elliptic Curve Cryptography) Các thuật tốn dựa tính tốn học phức tạp phân tích ngun tố, tính tốn đường cong elliptic, hay toán rời rạc 2.1.4 Ứng dụng: - Một ứng dụng quan trọng hệ mã khóa cơng khai trao đổi khóa bí mật an tồn Thơng qua việc sử dụng mã khóa cơng khai, người dùng trao đổi khóa bí mật mà khơng cần giao tiếp trực tiếp với Điều hữu ích việc thiết lập kênh liên lạc an toàn mạng - Hệ mã khóa cơng khai sử dụng rộng rãi ứng dụng bảo mật chứng thực, ký số, mã hóa thơng tin Nó cung cấp chế bảo mật mạnh mẽ đáng tin cậy cho việc truyền tải thông tin mạng cơng cộng 2.2 Nghiên cứu tìm hiểu mật mã ElGamal 2.2.1 Giới thiệu chung hệ mã ElGamal Hệ mã ElGamal hệ mã khóa cơng khai đặt theo tên nhà tốn học người Mỹ Taher Elgamal Hệ mã sử dụng để mã hóa giải mã thơng điệp cách sử dụng cặp khóa - khóa cơng khai khóa bí mật Khóa cơng khai sử dụng để mã hóa thơng điệp, khóa bí mật sử dụng để giải mã thông điệp Hệ mã ElGamal sử dụng để tạo chữ ký điện tử, cho phép người dùng xác minh tính tồn vẹn nguồn gốc thông điệp Hệ mã ElGamal dựa việc tính tốn phần tử ngun thủy nhóm số học modulo lớn Q trình mã hóa giải mã thông điệp hệ mã ElGamal phức tạp, có tính tốn ngẫu nhiên giúp tăng tính bảo mật thơng điệp Hệ mã ElGamal coi hệ mã khóa cơng khai an tồn hiệu quả, sử dụng nhiều ứng dụng bảo mật, bao gồm giao tiếp mật, chữ ký điện tử trao đổi khóa 2.2.2 Mã hóa giải mã ElGamal ⮚ Quá trình mã hố giải mã Hình 1.2: Sơ đồ q trình mã hố giải mã hệ mã Elgamal - Bước 1: Tạo khóa o Cho p số nguyên tố cho toán logarit rời rạc Z p khó giải o Chọn phần tử nguyên thủy α ∈ Zp* o Chọn a ∈ {2, 3…, p-2} khóa bí mật (Khóa người nhận, giải mã) o Tính β = αa mod p Khi đó: Kpub = (p, α, β) gọi khóa cơng khai, Kpri = (a) khóa bí mật - Bước 2: Mã hóa o Chọn số ngẫu nhiên bí mật k ∈ Zp-1, (k ∈ Zp-1 = {2…, p-2}) o Định nghĩa: 𝑒𝐾𝑝ub(𝑥, 𝑘) = (𝑦1, 𝑦2) với 𝑦1 = 𝛼𝑘 𝑚𝑜𝑑 𝑝 𝑦2 = 𝑥𝛽𝑘 𝑚𝑜𝑑 𝑝 - Bước 3: Giải mã o Với y1, y2 ∈ Zp* ta xác định: 𝑑𝐾𝑝rivate(𝑦1 , 𝑦2) = 𝑦2(𝑦1𝑎 ) −1 𝑚𝑜𝑑 p ⮚ Bài toán logarithm rời rạc: 10