Một trong những phương pháp hiệu quả để bảo vệ thông tin là sử dụng các kỹ thuật mã hóa, trong đó có phương pháp mã hóa ElGamal.. Khác với các phương pháp mã hóa đối xứng, trong đó cùng
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN HỌC PHẦN AN TOÀN VÀ BẢO MẬT THÔNG TIN
ĐỀ TÀI :Xây dựng chương trình mã hoá và giải mã ELGAMA
Sinh viên thục hiện:
Vũ Văn Tới-102287 Bùi Văn Duy-102230 Nguyễn Minh Tuấn-102291 Bùi Quang Minh -102264
Trang 2HẢI PHÒNG – 2025
Trang 3TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN HỌC PHẦN AN TOÀN VÀ BẢO MẬT THÔNG TIN
ĐỀ TÀI: Xây dựng chương trình mã hoá và giải mã ELGAMA
Hướng dẫn:
Sinh viên thục hiện:
HẢI PHÒNG - 202
Trang 4MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU ii
DANH MỤC CÁC HÌNH iv
MỞ ĐẦU 1
CHƯƠNG 1 GIỚI THIỆU CHUNG 2
1.1 Tổng quan 2
1.2 Ứng dụng thực tiễn 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
CHƯƠNG 3 TRỂN KHAI VÀ THỰC NGHIỆM 5
3.1 Triển khai 5
3.2 Kết quả thử nghiệm 5
KẾT LUẬN 6
TÀI LIỆU THAM KHẢO 7
PHỤ LỤC 8
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
1 p: Một số nguyên tố lớn được chọn làm phần của hệ thống ElGamal Nó đóng vai trò quan
trọng trong các phép toán modulo (modulus)
2 g: Một số nguyên g là một phần tử sinh (primitive root) trong nhóm số modulo p Nó được
sử dụng để tạo các khóa công khai và khóa riêng
3 x: Khóa riêng của người dùng trong hệ thống ElGamal Đây là một số bí mật mà chỉ người
dùng biết, và nó được sử dụng để tạo khóa công khai
4 h: Khóa công khai của người dùng, được tính bằng công thức:
5 h=gxmod ph = g^x \mod ph=gxmodp
6 Khóa công khai này được phát tán công khai để mọi người có thể sử dụng nó để mã hóa thông điệp
7 m: Thông điệp cần được mã hóa trong quá trình mã hóa và giải mã.
8 k: Một số ngẫu nhiên được chọn trong quá trình mã hóa mỗi thông điệp Nó phải được giữ bí mật và được chọn lại mỗi khi mã hóa một thông điệp mới k phải được chọn sao cho nó
không trùng lặp giữa các lần mã hóa khác nhau
9 c1 và c2: Các phần của thông điệp đã mã hóa Hệ thống ElGamal sử dụng một phương pháp
mã hóa đối xứng để tạo ra hai giá trị c1 và c2:
6 c1 = g^k \mod p: Phần đầu của thông điệp mã hóa.
7 c2 = m \cdot h^k \mod p: Phần thứ hai của thông điệp mã hóa.
10 y: Đây là một ký hiệu đôi khi được dùng thay cho h, chỉ đến khóa công khai.
11 r: Một số ngẫu nhiên được sử dụng trong quá trình tạo chữ ký số ElGamal (khi sử dụng ElGamal để ký số), tương tự như k trong mã hóa.
12 s: Một phần của chữ ký số ElGamal s được tính từ khóa riêng và số ngẫu nhiên r.
13 L: Thường được dùng để chỉ kích thước của nhóm các số nguyên modulo p.
Trang 6DANH MỤC CÁC BẢNG
No table of figures entries found
Trang 7DANH MỤC CÁC HÌNH
Hình 1 Thuật toán DES cơ bản 2 Hình 2 Thuật toán sinh khóa con 3
Trang 8MỞ ĐẦU
Giới thiệu đề tài
Trong thời đại công nghệ số hiện nay, bảo mật thông tin là một trong những vấn đề được quan tâmhàng đầu Việc đảm bảo an toàn cho dữ liệu và thông tin cá nhân ngày càng trở nên cấp thiết, đặc biệt là trong các hệ thống điện tử và mạng Internet Những cuộc tấn công từ hacker, virus máy tính, và các phương thức xâm nhập trái phép ngày càng tinh vi, khiến việc bảo vệ thông tin trở thành một thách thức lớn Một trong những phương pháp hiệu quả để bảo vệ thông tin là sử dụng các kỹ thuật mã hóa, trong đó có phương pháp mã hóa ElGamal
ElGamal là một thuật toán mã hóa bất đối xứng, dựa trên lý thuyết về toán học và lý thuyết số học,cho phép mã hóa và giải mã thông tin một cách an toàn, đảm bảo rằng chỉ những người có khóa bí mật mới có thể giải mã thông tin đã được mã hóa Mục tiêu của đề tài này là nghiên cứu và xây dựng một chương trình mã hóa và giải mã ElGamal, từ đó áp dụng vào thực tế để bảo vệ thông tin trong môi trường số
Lý do chọn đề tài
Lý do chọn đề tài này xuất phát từ sự quan trọng ngày càng gia tăng của vấn đề bảo mật thông tin trong cuộc sống số Với sự phát triển mạnh mẽ của công nghệ thông tin và Internet, lượng dữ liệu được truyền tải và lưu trữ trên các thiết bị điện tử ngày càng lớn, tạo ra những nguy cơ tiềm ẩn về việc rò rỉ thông tin cá nhân hoặc tài liệu quan trọng Các cuộc tấn công mạng, virus, và các phương thức gian lận ngày càng tinh vi, dẫn đến những thiệt hại nghiêm trọng cho cả cá nhân và tổ chức
Việc nghiên cứu và phát triển các phương pháp mã hóa, đặc biệt là mã hóa ElGamal, có thể giúp bảo vệ thông tin một cách hiệu quả Đề tài này không chỉ giúp tìm hiểu sâu hơn về cơ sở lý thuyết của mã hóa bất đối xứng mà còn tạo ra một ứng dụng thực tế giúp bảo vệ dữ liệu trong môi trường
kỹ thuật số
Cấu trúc báo cáo
Báo cáo này được chia thành các phần chính như sau:
1 Giới thiệu chung: Trình bày về vấn đề bảo mật thông tin, lý do chọn đề tài và các mục tiêu
nghiên cứu
2 Cơ sở lý thuyết: Giới thiệu về thuật toán mã hóa ElGamal, các khái niệm toán học cơ bản
liên quan đến mã hóa bất đối xứng, và các thuật toán mật mã học
Trang 93 Triển khai và thực nghiệm: Mô tả quá trình lập trình, cách thức triển khai thuật toán
ElGamal vào chương trình máy tính và các kết quả thực nghiệm
4 Đánh giá và kết luận: Đánh giá hiệu quả của chương trình, những khó khăn gặp phải trong
quá trình thực hiện, và những cải tiến có thể thực hiện trong tương lai
1.GIỚI THIỆU CHUNG
1.1 Tổng quan
Mã hóa dữ liệu là một kỹ thuật quan trọng trong việc bảo vệ thông tin trong môi trường kỹ thuật
số Trong suốt lịch sử phát triển của công nghệ thông tin, các thuật toán mã hóa đã liên tục được cải tiến để đáp ứng các yêu cầu bảo mật ngày càng cao Một trong những phương pháp mã hóa nổi bật được nghiên cứu và ứng dụng rộng rãi là thuật toán mã hóa ElGamal
Thuật toán mã hóa ElGamal là một hệ thống mã hóa bất đối xứng, được đề xuất bởi Taher ElGamal vào năm 1985 ElGamal sử dụng lý thuyết về các số nguyên và các phép toán số học trên trường hữu hạn, cụ thể là phép nhân Phương pháp này đã được áp dụng rộng rãi trong các
hệ thống bảo mật hiện đại, đặc biệt là trong việc cung cấp sự bảo vệ cho các giao dịch điện tử, các thông điệp truyền tải qua mạng, và hệ thống chữ ký số
Khác với các phương pháp mã hóa đối xứng, trong đó cùng một khóa được sử dụng để mã hóa
và giải mã thông tin, ElGamal sử dụng hai khóa khác nhau: một khóa công khai (public key) và một khóa bí mật (private key) Điều này tạo ra một mức độ bảo mật cao hơn, vì ngay cả khi một đối tượng xâm nhập vào khóa công khai, họ vẫn không thể giải mã thông tin mà không có khóa
bí mật
ElGamal hoạt động dựa trên bài toán khó khăn trong lý thuyết số học, đặc biệt là bài toán logarit rời rạc Để hiểu rõ hơn về phương pháp này, giả sử có một nhóm các số nguyên modulo một số nguyên tố lớn, ElGamal sử dụng các phép toán như nhân và lũy thừa trong nhóm này để mã hóa
và giải mã thông tin Quá trình mã hóa trong ElGamal bao gồm việc sử dụng khóa công khai để
mã hóa thông điệp, và khóa bí mật sẽ được sử dụng để giải mã thông điệp đó
Mặc dù ElGamal là một thuật toán rất mạnh mẽ và an toàn, nhưng nó cũng gặp phải một số hạn chế Một trong những hạn chế chính là độ dài của các bản mã (ciphertext) lớn hơn so với các thuật toán mã hóa khác như RSA, điều này có thể làm giảm hiệu suất trong một số ứng dụng Tuy nhiên, với những tính năng mạnh mẽ và độ bảo mật cao, ElGamal vẫn được ứng dụng rộng rãi trong các hệ thống bảo mật và là nền tảng cho nhiều kỹ thuật bảo mật hiện đại
Trong phạm vi bài toán này, chúng ta sẽ nghiên cứu và phát triển một chương trình mã hóa và giải mã sử dụng thuật toán ElGamal Bài toán yêu cầu xây dựng một hệ thống mã hóa, nơi ngườidùng có thể bảo mật thông tin của mình thông qua các thao tác mã hóa và giải mã với hai khóa khác nhau Đồng thời, chúng ta cũng sẽ phân tích hiệu suất của thuật toán, và tìm hiểu về những vấn đề có thể gặp phải khi triển khai ElGamal vào thực tế
Trang 10Mã hóa dữ liệu là một kỹ thuật quan trọng trong việc bảo vệ thông tin trong môi trường kỹ thuật
số Trong suốt lịch sử phát triển của công nghệ thông tin, các thuật toán mã hóa đã liên tục được cải tiến để đáp ứng các yêu cầu bảo mật ngày càng cao Một trong những phương pháp mã hóa nổi bật được nghiên cứu và ứng dụng rộng rãi là thuật toán mã hóa ElGamal
Thuật toán mã hóa ElGamal là một hệ thống mã hóa bất đối xứng, được đề xuất bởi Taher ElGamal vào năm 1985 ElGamal sử dụng lý thuyết về các số nguyên và các phép toán số học trên trường hữu hạn, cụ thể là phép nhân Phương pháp này đã được áp dụng rộng rãi trong các
hệ thống bảo mật hiện đại, đặc biệt là trong việc cung cấp sự bảo vệ cho các giao dịch điện tử, các thông điệp truyền tải qua mạng, và hệ thống chữ ký số
Khác với các phương pháp mã hóa đối xứng, trong đó cùng một khóa được sử dụng để mã hóa
và giải mã thông tin, ElGamal sử dụng hai khóa khác nhau: một khóa công khai (public key) và một khóa bí mật (private key) Điều này tạo ra một mức độ bảo mật cao hơn, vì ngay cả khi một đối tượng xâm nhập vào khóa công khai, họ vẫn không thể giải mã thông tin mà không có khóa
bí mật
ElGamal hoạt động dựa trên bài toán khó khăn trong lý thuyết số học, đặc biệt là bài toán logarit rời rạc Để hiểu rõ hơn về phương pháp này, giả sử có một nhóm các số nguyên modulo một số nguyên tố lớn, ElGamal sử dụng các phép toán như nhân và lũy thừa trong nhóm này để mã hóa
và giải mã thông tin Quá trình mã hóa trong ElGamal bao gồm việc sử dụng khóa công khai để
mã hóa thông điệp, và khóa bí mật sẽ được sử dụng để giải mã thông điệp đó
Mặc dù ElGamal là một thuật toán rất mạnh mẽ và an toàn, nhưng nó cũng gặp phải một số hạn chế Một trong những hạn chế chính là độ dài của các bản mã (ciphertext) lớn hơn so với các thuật toán mã hóa khác như RSA, điều này có thể làm giảm hiệu suất trong một số ứng dụng Tuy nhiên, với những tính năng mạnh mẽ và độ bảo mật cao, ElGamal vẫn được ứng dụng rộng rãi trong các hệ thống bảo mật và là nền tảng cho nhiều kỹ thuật bảo mật hiện đại
Trong phạm vi bài toán này, chúng ta sẽ nghiên cứu và phát triển một chương trình mã hóa và giải mã sử dụng thuật toán ElGamal Bài toán yêu cầu xây dựng một hệ thống mã hóa, nơi ngườidùng có thể bảo mật thông tin của mình thông qua các thao tác mã hóa và giải mã với hai khóa khác nhau Đồng thời, chúng ta cũng sẽ phân tích hiệu suất của thuật toán, và tìm hiểu về những vấn đề có thể gặp phải khi triển khai ElGamal vào thực tế
Hình 1 Thuật toán ELGAMAL cơ bản.
Trang 111.2 Ứng dụng thực tiễn
Thuật toán mã hóa ElGamal là một trong những phương pháp mã hóa bất đối xứng mạnh mẽ và antoàn, được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau của bảo mật thông tin Dưới đây là một số ứng dụng nổi bật của ElGamal trong thực tiễn:
1 Bảo mật giao dịch điện tử
Một trong những ứng dụng quan trọng nhất của ElGamal là trong các hệ thống giao dịch điện tử, nơi thông tin và tài khoản của người dùng cần được bảo vệ một cách an toàn Các ngân hàng và tổ chức tài chính sử dụng ElGamal để mã hóa các giao dịch và dữ liệu của khách hàng, giúp đảm bảo rằng các giao dịch được thực hiện một cách an toàn mà không bị
rò rỉ thông tin hay bị gian lận
2 Chữ ký số
ElGamal cũng là một phần quan trọng trong các hệ thống chữ ký số, nơi thông tin và tài liệu cần được xác thực một cách an toàn Chữ ký số sử dụng các thuật toán mã hóa bất đối xứng như ElGamal để bảo vệ tính toàn vẹn và xác thực của các tài liệu điện tử Chữ ký số giúp người nhận có thể kiểm tra rằng tài liệu đã không bị thay đổi kể từ khi được ký và xác minh danh tính của người ký
3 Hệ thống bảo mật thông tin trong liên lạc điện tử
Mã hóa ElGamal còn được sử dụng trong các hệ thống nhắn tin và trao đổi dữ liệu, chẳng hạn như trong các dịch vụ email an toàn, dịch vụ tin nhắn bảo mật và các nền tảng trao đổi thông tin trực tuyến ElGamal giúp bảo vệ các thông điệp khỏi việc bị nghe lén hoặc truy cậptrái phép, đảm bảo rằng chỉ người nhận hợp lệ mới có thể giải mã và đọc thông tin
4 Blockchain và tiền điện tử
Trong các ứng dụng tiền điện tử, đặc biệt là các hệ thống blockchain, ElGamal có thể được
sử dụng để bảo vệ các giao dịch và thông tin tài khoản người dùng Mặc dù thuật toán RSA phổ biến hơn trong các hệ thống tiền điện tử, nhưng ElGamal cũng có thể được áp dụng để tăng cường bảo mật thông qua việc mã hóa thông tin giao dịch và giúp bảo vệ quyền riêng
tư của người dùng trong các giao dịch
5 Bảo vệ thông tin cá nhân
Mã hóa ElGamal có thể được sử dụng để bảo vệ các thông tin cá nhân trong các ứng dụng bảo mật như lưu trữ dữ liệu trên đám mây, nơi các tệp tin cần được mã hóa để tránh bị truy cập trái phép Người dùng có thể mã hóa tài liệu cá nhân, ảnh, video hoặc bất kỳ loại
dữ liệu nhạy cảm nào trước khi tải lên nền tảng trực tuyến
6 Ứng dụng trong lĩnh vực quân sự và an ninh quốc gia
ElGamal có thể được áp dụng trong các hệ thống bảo mật của quân đội và các cơ quan an ninh quốc gia để bảo vệ thông tin mật Với khả năng bảo vệ thông tin một cách mạnh mẽ vàđảm bảo tính toàn vẹn của dữ liệu, ElGamal là một công cụ hữu ích trong việc duy trì bảo mật cho các hoạt động liên quan đến an ninh quốc gia
7 Mã hóa trong các hệ thống bảo mật Cloud Computing
Trong các hệ thống điện toán đám mây, nơi dữ liệu được lưu trữ và xử lý từ xa, mã hóa
Trang 12ngoài Với việc sử dụng khóa công khai và khóa bí mật, ElGamal giúp đảm bảo rằng dữ liệu của người dùng được mã hóa trước khi lưu trữ và chỉ có thể được giải mã khi cần thiết.
Thuật toán ElGamal, mặc dù có một số hạn chế về hiệu suất so với các phương pháp mã hóa khác, vẫn là một công cụ mạnh mẽ trong việc bảo vệ thông tin và dữ liệu trong các hệ thống an ninh Với khả năng cung cấp mức bảo mật cao, ElGamal đã và đang được ứng dụng trong nhiều lĩnh vực quan trọng từ tài chính, y tế, cho đến các nền tảng trực tuyến và tiền điện tử Sự phát triển của các phương pháp mã hóa như ElGamal đóng vai trò quan trọng trong việc đảm bảo rằng thông tin cá nhân và dữ liệu nhạy cảm luôn được bảo vệ trong môi trường số hiện nay
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
1 Logarit rời rạc:
Trong toán học, với các số thực a và b đã cho, logarit log_b a là một số x sao cho b^x = a Tương tự, trong bất kỳ nhóm G nào, lũy thừa b^k có thể được định nghĩa cho tất cả các số nguyên k và logarit rời rạc log_b a
là một số nguyên k sao cho b^k = a.
Trong lý thuyết số, thuật ngữ "logarit rời rạc" thường được thay thế bằng thuật ngữ "index": chúng ta có thể viết x = indr_a (mod m) (đọc là "chỉ số của a đến cơ số r modulo m") nếu r là primitive root của m và gcd(a, m) = 1 Điều này có nghĩa là r^x ≡ a (mod m), nghĩa là bậc số r với chỉ số x sẽ cho kết quả bằng a theo modulo m.
Logarit rời rạc có thể tính toán nhanh chóng trong một vài trường hợp đặc biệt, tuy nhiên, không có phương pháp hiệu quả nào được biết đến để tính toán chúng nói chung Trong mật mã học, độ phức tạp tính toán của bài toán logarit rời rạc và ứng dụng của nó lần đầu tiên được đề xuất trong bài toán Diffie-Hellman.
Một số thuật toán quan trọng trong mật mã khóa công khai, điển hình như ElGamal, dựa trên tính bảo mật của chúng dựa trên giả thuyết độ khó (hardness assumption) rằng bài toán logarit rời rạc (DLP - Discrete Logarithm Problem) trên các nhóm được lựa chọn cẩn thận không có giải pháp hiệu quả.
2 Kiểm tra số nguyên tố lớn bằng Định lý Fermat nhỏ:
Trong lý thuyết số, Định lý Fermat nhỏ phát biểu rằng nếu p là một số nguyên tố, thì với bất kỳ số nguyên a nào, ta có:
a^p - a là một bội của p.
Hay trong số học modulo, điều này có thể được thể hiện bởi: