



















Preview text:
  lOMoAR cPSD| 60701415
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á  
KHOA CÔNG NGHỆ THÔNG TIN              BÀI TẬP LỚN  
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN  
Học kỳ: I Năm học: 2025 – 2026  
Lớp Tín chỉ: ATBMTT.03.K14.03.LH.C04.1  
Đề tài 25: Trình bày các sơ đồ ký số,  
xây dựng chương trình mô phỏng sơ đồ ký số Elgamal    
 Giảng viên giảng dạy: Nguyễn Hải Bình Danh 
sách sinh viên thực hiện:   TT   Mã sinh viên  
Sinh viên thực hiện   Lớp hành chính   1   20230961  Nguyễn Văn Hiếu  DCCNTT14.C.2  2   20231132  Lê Minh Đạt  DCCNTT14.C.2  3   20231139  Trần Trung Hiếu  DCCNTT14.C.2  4   20230959  Nguyễn Hữu Hải  DCCNTT14.C.2     Bắc Ninh, năm 2025        lOMoAR cPSD| 60701415   LỜI MỞ ĐẦU 
 Trong thế giới số, làm thế nào chúng ta có thể tin tưởng vào một tài liệu điện tử? Làm sao 
để biết chắc chắn rằng một email, một hợp đồng hay một giao dịch trực tuyến đến từ đúng 
người gửi và nội dung của nó không hề bị thay đổi trên đường truyền? Đây là những câu 
hỏi nền tảng mà bất kỳ hệ thống thông tin hiện đại nào cũng phải đối mặt. Việc thiếu một 
cơ chế đảm bảo tính xác thực, tính toàn vẹn và khả năng chống chối bỏ sẽ làm lung lay 
lòng tin và tính an toàn của toàn bộ hạ tầng số. 
 Để giải quyết triệt để bài toán về lòng tin này, kỹ thuật chữ ký số đã được phát triển dựa 
trên nền tảng của mật mã hóa khóa công khai. Chữ ký số không chỉ là một công cụ kỹ thuật 
mà còn là một trụ cột thiết yếu, mang lại giá trị pháp lý và sự đảm bảo an toàn cho các giao  dịch điện tử. 
 Xuất phát từ tầm quan trọng đó, trong khuôn khổ môn học An toàn và bảo mật thông tin 
và với sự hướng dẫn của giảng viên Nguyễn Hải Bình, em đã chọn thực hiện đề tài: 
"Trình bày các sơ đồ ký số, xây dựng chương trình mô phỏng sơ đồ ký số Elgamal." Mục 
tiêu chính của đề tài là nghiên cứu các nguyên tắc cơ bản đằng sau những sơ đồ ký số phổ 
biến, sau đó tập trung đi sâu vào thuật toán Elgamal – một hệ ký tiêu biểu dựa trên bài toán 
logarit rời rạc. Để không chỉ dừng lại ở lý thuyết, đề tài sẽ được hoàn thiện bằng một 
chương trình máy tính mô phỏng lại toàn bộ quá trình tạo và xác thực chữ ký Elgamal một  cách trực quan. 
 Thông qua việc kết hợp giữa phân tích lý thuyết và triển khai thực tế, em hy vọng báo cáo 
này sẽ mang lại một cái nhìn rõ ràng và sâu sắc về cách chữ ký số hoạt động, đồng thời 
hoàn thành tốt các yêu cầu mà môn học đề ra. Em rất mong nhận được những ý kiến đóng 
góp của thầy để đề tài được hoàn thiện hơn.        MỤC LỤC 
LỜI MỞ ĐẦU ...................................................................................................................... 1 
MỤC LỤC ............................................................................................................................ 1 
DANH MỤC HÌNH ẢNH .................................................................................................... 5 
DANH MỤC BẢNG BIỂU .................................................................................................. 6    lOMoAR cPSD| 60701415
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI ............................................................................ 7 
1.1. Giới thiệu ................................................................................................................... 7 
1.2. Lý do chọn đề tài ....................................................................................................... 7 
1.3. Mục tiêu nghiên cứu .................................................................................................. 8 
1.3.1. Mục tiêu tổng quát .............................................................................................. 8 
1.3.2. Mục tiêu cụ thể ................................................................................................... 9 
1.4. Đối tượng và phạm vi nghiên cứu ............................................................................. 9 
1.4.1. Đối tượng nghiên cứu ......................................................................................... 9 
CHƯƠNG II: CƠ SỞ LÝ THUYẾT .................................................................................. 10 
2.1. Tổng quan về an toàn và bảo mật thông tin ............................................................ 10 
2.1.1. Khái niệm về An toàn và Bảo mật thông tin .................................................... 10 
2.1.2. Mục tiêu của An toàn thông tin ........................................................................ 11 
2.1.3. Các mối đe dọa và thách thức .......................................................................... 11 
2.1.4. Vai trò và tầm quan trọng ................................................................................. 11 
2.2. Tổng quan về Chữ ký số .......................................................................................... 11 
2.3. Một số sơ đồ ký số phổ biến .................................................................................... 13 
2.3.1. Sơ đồ RSA ........................................................................................................ 13 
2.3.2. Sơ đồ DSA ........................................................................................................ 13 
2.3.3. Sơ đồ ElGamal ................................................................................................. 13 
2.3.4. So sánh tổng quan ............................................................................................ 14 
2.4. Sơ đồ ký số ElGamal ............................................................................................... 14 
2.4.1. Cơ sở lý thuyết ................................................................................................. 14 
2.5. Đặc trưng của hệ chữ ký elgamal ............................................................................ 15 
2.5.1. Đặc tính của elgamal ........................................................................................ 15 
2.5.2. Độ an toàn của elgamal .................................................................................... 15    lOMoAR cPSD| 60701415
2.5.3. Ưu điểm và nhược điểm của elgamal ............................................................... 16 
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG MÔ PHỎNG ......................... 17 
3.1. Phân tích yêu cầu ..................................................................................................... 17 
3.1.1. Yêu Cầu Chức Năng ......................................................................................... 17 
3.1.2. Yêu Cầu Phi Chức Năng .................................................................................. 18 
3.2. Thiết kế luồng hoạt động ......................................................................................... 19 
CHƯƠNG IV: CÀI ĐẶT VÀ KIẾM THỬ ........................................................................ 21 
4.1. Môi trường và công cụ phát triển ............................................................................ 21 
4.1.1. Ngôn ngữ lập trình và Giao diện người dùng .................................................. 21 
4.1.2. Các thư viện cốt lõi cho thuật toán ................................................................... 21 
4.2. Cài đặt các module chính ........................................................................................ 22 
4.3.1. Cài đặt các thư viện cần thiết ........................................................................... 22 
4.3.2. Cài đặt các hàm toán học cơ sở ........................................................................ 22 
4.3.3. Cài đặt các module logic của Elgamal ............................................................. 23 
4.3.4. Tích hợp logic vào giao diện người dùng ........................................................ 25 
4.3. Kết quả chương trình ............................................................................................... 27 
4.3.1. Giao diện tổng thể chương trình ....................................................................... 27 
4.3.2. Chức năng sinh khóa tự động ........................................................................... 27 
4.3.3. Chức năng ký số .............................................................................................. 28 
4.3.4. Chức năng xác minh chữ ký ............................................................................. 29 
KẾT LUẬN ........................................................................................................................ 30 
1. Kết quả đạt được ......................................................................................................... 30 
2. Hạn chế ....................................................................................................................... 30 
3. Hướng phát triển ......................................................................................................... 30 
DANH MỤC TÀI LIỆU THAM KHẢO ........................................................................... 32    lOMoAR cPSD| 60701415               lOMoAR cPSD| 60701415 DANH MỤC HÌNH ẢNH 
Hình 3.0.1: Biểu đồ luồng dữ liệu ....................................................................................  21 
Hình 4.0.1: Giao diện tổng thể của chương trình .............................................................  29 
Hình 4.0.2: Mô tả chức năng sinh khóa tự động .............................................................. 30 
Hình 4.0.3: Mô tả chức năng ký số .................................................................................. 31 
Hình 4.4: Mô tả chức năng xác minh chữ ký ................................................................... 32            lOMoAR cPSD| 60701415
DANH MỤC BẢNG BIỂU 
Bảng 1: Bảng so sánh các chữ kỹ số ................................................................................. 14          lOMoAR cPSD| 60701415
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI  1.1. Giới thiệu 
 Trong kỷ nguyên số hóa hiện nay, thông tin đã trở thành một trong những tài sản quý giá 
nhất đối với mỗi cá nhân, tổ chức và quốc gia. Dữ liệu được tạo ra, lưu trữ, xử lý và trao 
đổi với khối lượng khổng lồ và tốc độ chóng mặt trên các hệ thống mạng toàn cầu. Quá 
trình này mang lại vô số lợi ích về kinh tế, xã hội và công nghệ, nhưng đồng thời cũng đặt 
ra những thách thức nghiêm trọng về việc đảm bảo an toàn và bảo mật cho luồng thông tin  đó. 
 An toàn và bảo mật thông tin là một lĩnh vực khoa học kỹ thuật chuyên nghiên cứu về các 
phương pháp, công cụ và chính sách nhằm bảo vệ thông tin và các hệ thống thông tin khỏi 
các nguy cơ truy cập, sử dụng, tiết lộ, sửa đổi hay phá hoại trái phép. Mục tiêu cốt lõi của 
lĩnh vực này là đảm bảo ba thuộc tính cơ bản của thông tin: tính bí mật (Confidentiality), 
tính toàn vẹn (Integrity) và tính sẵn sàng (Availability). 
 Tầm quan trọng của an toàn và bảo mật thông tin trong bối cảnh hiện đại là không thể phủ 
nhận. Với sự phát triển của Internet, thương mại điện tử, chính phủ điện tử, mạng xã hội 
và các dịch vụ trực tuyến, hầu hết mọi giao dịch và tương tác quan trọng đều được thực 
hiện trên không gian mạng. Điều này khiến cho thông tin luôn phải đối mặt với nguy cơ bị 
tấn công từ nhiều phía, với các mục đích khác nhau như đánh cắp dữ liệu cá nhân, lừa đảo 
tài chính, gián điệp công nghiệp hay phá hoại hệ thống. Một lỗ hổng bảo mật nhỏ cũng có 
thể gây ra những thiệt hại to lớn về tài chính, uy tín và thậm chí là an ninh quốc gia. Do 
đó, việc đầu tư và phát triển các giải pháp bảo mật mạnh mẽ, hiệu quả đã trở thành một 
yêu cầu cấp thiết và là ưu tiên hàng đầu của mọi tổ chức. Trong đó, các kỹ thuật mật mã 
học, đặc biệt là chữ ký số, đóng vai trò nền tảng trong việc xác thực và đảm bảo tính toàn 
vẹn của dữ liệu trong các giao dịch điện tử. 
1.2. Lý do chọn đề tài 
 Trước sự gia tăng của các hoạt động giao dịch điện tử, việc đảm bảo tính xác thực, tính 
toàn vẹn của dữ liệu và tính chống thoái thác đã trở thành một yêu cầu sống còn. Chữ ký 
số, một ứng dụng quan trọng của hệ mật mã khóa công khai, đã nổi lên như một giải pháp 
công nghệ hiệu quả để giải quyết các vấn đề trên. Nó không chỉ giúp xác định danh tính 
của người gửi mà còn đảm bảo rằng thông điệp không bị thay đổi trên đường truyền, đồng 
thời ngăn chặn việc người gửi chối bỏ trách nhiệm đối với nội dung đã gửi.    lOMoAR cPSD| 60701415
 Việc nghiên cứu sâu về các sơ đồ ký số là vô cùng cần thiết để có thể hiểu rõ nguyên lý 
hoạt động, ưu nhược điểm và phạm vi ứng dụng của từng loại. Trong số các sơ đồ ký số 
phổ biến, Elgamal là một hệ thống kinh điển, có giá trị lớn về mặt học thuật và là nền tảng 
cho nhiều chuẩn ký số hiện đại. Sơ đồ này dựa trên độ phức tạp của bài toán logarit rời rạc, 
một trong những bài toán một chiều được coi là rất khó giải, tạo nên nền tảng bảo mật vững  chắc. 
 Tuy nhiên, việc chỉ tìm hiểu lý thuyết suông về các thuật toán mật mã thường khó mang 
lại một cái nhìn trực quan và sâu sắc. Cách tốt nhất để nắm vững bản chất của một thuật 
toán là thông qua việc hiện thực hóa nó. Chính vì vậy, đề tài "Trình bày các sơ đồ ký số, 
xây dựng chương trình mô phỏng sơ đồ ký số Elgamal" được lựa chọn với các lý do sau: 
- Hệ thống hóa kiến thức: Đề tài giúp tổng hợp và hệ thống hóa kiến thức nền tảng 
về an toàn thông tin, mật mã học và đặc biệt là các cơ chế của chữ ký số. 
- Đi sâu vào thuật toán kinh điển: Tập trung phân tích sơ đồ ký số Elgamal, một thuật 
toán quan trọng giúp người học hiểu rõ hơn về nguyên lý hoạt động của mật mã 
khóa công khai và ứng dụng của bài toán logarit rời rạc. 
- Kết hợp lý thuyết và thực tiễn: Việc xây dựng một chương trình mô phỏng không 
chỉ giúp kiểm chứng các kiến thức lý thuyết đã học mà còn mang lại trải nghiệm 
thực tế về quá trình mã hóa, giải mã và ký số. Nó giúp người thực hiện hiểu rõ từng 
bước tính toán, các tham số cần thiết và cách chúng tương tác với nhau. 
- Tạo ra công cụ học tập hữu ích: Sản phẩm của đề tài là một chương trình mô phỏng 
có thể được sử dụng như một công cụ hỗ trợ giảng dạy và học tập, giúp sinh viên 
và những người quan tâm có thể dễ dàng tiếp cận và hình dung hoạt động của thuật 
toán Elgamal một cách trực quan. 
Với những lý do trên, việc thực hiện đề tài này được kỳ vọng sẽ mang lại những kiến thức 
và kỹ năng thực tiễn, góp phần nâng cao hiểu biết về lĩnh vực an toàn và bảo mật thông  tin. 
1.3. Mục tiêu nghiên cứu 
Để giải quyết các vấn đề đã đặt ra, đề tài tập trung vào các mục tiêu chính sau đây: 
1.3.1. Mục tiêu tổng quát 
 Mục tiêu tổng quát của đề tài là nghiên cứu cơ sở lý thuyết về các sơ đồ ký số và tập trung 
đi sâu vào thuật toán ký số Elgamal. Trên cơ sở đó, xây dựng thành công một chương trình    lOMoAR cPSD| 60701415
ứng dụng có khả năng mô phỏng quá trình tạo và xác thực chữ ký số bằng thuật toán này, 
nhằm mục đích minh họa trực quan và kiểm chứng các kiến thức đã nghiên cứu. 
1.3.2. Mục tiêu cụ thể 
Để đạt được mục tiêu tổng quát, đề tài cần thực hiện các mục tiêu cụ thể sau:  - Nghiên cứu lý thuyết: 
Trình bày được những kiến thức tổng quan về an toàn thông tin, mật mã học và chữ  ký số. 
Phân tích chi tiết nguyên lý hoạt động của sơ đồ ký số Elgamal, bao gồm các quy 
trình tạo khóa, tạo chữ ký và kiểm tra chữ ký, cũng như cơ sở toán học (bài toán 
logarit rời rạc) đảm bảo an toàn cho thuật toán. 
- Xây dựng chương trình mô phỏng: 
Thiết kế và xây dựng thành công một chương trình phần mềm có giao diện thân 
thiện, cho phép người dùng thực hiện các chức năng chính của sơ đồ Elgamal: tạo 
cặp khóa công khai/bí mật, dùng khóa bí mật để ký lên một thông điệp và dùng 
khóa công khai để xác thực chữ ký. 
Chương trình phải thể hiện rõ các bước tính toán và các giá trị trung gian để người 
dùng có thể theo dõi và hiểu được luồng hoạt động của thuật toán. 
- Kiểm thử và đánh giá: 
Kiểm tra tính đúng đắn của chương trình mô phỏng thông qua các bộ dữ liệu thử  nghiệm khác nhau. 
Đánh giá kết quả hoạt động của chương trình, từ đó rút ra những kết luận về tính 
ứng dụng của thuật toán và đề xuất các hướng phát triển, cải tiến có thể có trong  tương lai. 
1.4. Đối tượng và phạm vi nghiên cứu 
1.4.1. Đối tượng nghiên cứu 
Đối tượng chính mà đề tài tập trung nghiên cứu bao gồm:   
- Các khái niệm và nguyên lý cơ bản của mật mã học và chữ ký số. 
- Thuật toán và mô hình hoạt động của sơ đồ ký số Elgamal. 
- Cơ sở toán học của thuật toán, đặc biệt là bài toán logarit rời rạc trên trường hữu  hạn.    lOMoAR cPSD| 60701415
- Quy trình và kỹ thuật lập trình để xây dựng một chương trình phần mềm mô phỏng 
các hoạt động chính của sơ đồ Elgamal: tạo khóa, ký số và xác thực chữ ký. 
1.4.2. Phạm vi nghiên cứu 
Để đảm bảo tính khả thi và tập trung vào mục tiêu chính, đề tài được giới hạn trong phạm  vi sau:  - Về mặt lý thuyết: 
Trình bày tổng quan về một số sơ đồ ký số phổ biến (như RSA, DSA) để có cái nhìn 
so sánh, nhưng chỉ đi sâu phân tích chi tiết về thuật toán Elgamal. 
Tập trung vào cơ chế hoạt động và tính an toàn dựa trên lý thuyết của thuật toán.  - Về mặt thực tiễn: 
Xây dựng một chương trình mô phỏng độc lập trên môi trường máy tính cá nhân. 
Mục tiêu chính của chương trình là minh họa thuật toán một cách trực quan, không 
phải là một ứng dụng thương mại có hiệu năng cao. 
Chương trình sẽ làm việc với các số nguyên lớn nhưng không đi sâu vào việc tối ưu 
hóa tốc độ xử lý cho các hệ thống yêu cầu hiệu năng cao. 
- Giới hạn của đề tài: 
Đề tài không đi sâu nghiên cứu các kỹ thuật tấn công mật mã phức tạp nhắm vào sơ  đồ Elgamal. 
Chương trình mô phỏng không tích hợp các giao thức truyền tin qua mạng hay các 
hệ thống thực tế khác.       
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 
2.1. Tổng quan về an toàn và bảo mật thông tin 
2.1.1. Khái niệm về An toàn và Bảo mật thông tin 
 An toàn và bảo mật thông tin (Information Security) là tập hợp các biện pháp, quy trình 
và công nghệ nhằm bảo vệ thông tin và hệ thống thông tin khỏi sự truy cập trái phép, sử 
dụng sai mục đích, tiết lộ, gián đoạn, sửa đổi hoặc phá hủy. Đây là một trong những lĩnh 
vực trọng yếu trong công nghệ thông tin, gắn liền với sự phát triển của Internet, thương 
mại điện tử và các hệ thống số hóa trong thời đại 4.0.    lOMoAR cPSD| 60701415
2.1.2. Mục tiêu của An toàn thông tin 
An toàn thông tin thường được định nghĩa dựa trên mô hình CIA Triad, bao gồm: 
- Tính bảo mật: Đảm bảo thông tin chỉ được truy cập bởi những đối tượng được ủy  quyền. 
- Tính toàn vẹn: Đảm bảo thông tin không bị thay đổi trái phép trong quá trình lưu 
trữ, xử lý và truyền tải. 
- Tính sẵn sàng: Đảm bảo thông tin và hệ thống luôn sẵn sàng cho người dùng hợp lệ  khi cần thiết. 
Ngoài ra, trong một số tài liệu, còn có thêm các yếu tố như tính xác thực và tính không  chối bỏ 
2.1.3. Các mối đe dọa và thách thức 
Thông tin và hệ thống thông tin thường phải đối mặt với nhiều loại mối đe dọa khác nhau,  bao gồm: 
- Tấn công từ bên ngoài: Hacker, malware, phishing, tấn công từ chối dịch vụ  (DoS/DDoS). 
- Nguy cơ từ bên trong: Nhân viên lạm dụng quyền, rò rỉ dữ liệu nội bộ. 
- Rủi ro kỹ thuật: Lỗ hổng phần mềm, sai sót trong cấu hình hệ thống, hỏng hóc phần  cứng. 
- Rủi ro môi trường: Thiên tai, hỏa hoạn, mất điện, ảnh hưởng vật lý đến hệ thống. 
2.1.4. Vai trò và tầm quan trọng 
An toàn và bảo mật thông tin đóng vai trò sống còn đối với các cá nhân, tổ chức và quốc  gia: 
- Với cá nhân, giúp bảo vệ dữ liệu riêng tư, tài khoản ngân hàng, thông tin định danh. 
- Với doanh nghiệp, đảm bảo uy tín thương hiệu, tránh thất thoát tài chính và bảo vệ  bí mật kinh doanh. 
- Với quốc gia, bảo mật thông tin liên quan đến an ninh, quốc phòng, hạ tầng trọng  yếu. 
2.2. Tổng quan về Chữ ký số 
 Cơ sở của chữ ký số nói chung và sơ đồ Elgamal nói riêng là các nguyên lý của mật mã 
học. Mật mã học là ngành khoa học về việc che giấu thông tin, biến đổi thông tin từ dạng 
có thể đọc được thành dạng không thể đọc được và ngược lại, nhằm đảm bảo tính bí mật,    lOMoAR cPSD| 60701415
toàn vẹn và xác thực. Trong đó, hệ mật mã khóa bất đối xứng (hay khóa công khai) đóng 
vai trò then chốt trong việc tạo ra chữ ký số, với một cặp khóa đặc biệt gồm khóa công 
khai (Public Key) dùng để xác thực và khóa bí mật (Private Key) dùng để tạo chữ ký. Bên 
cạnh đó, để đảm bảo tính toàn vẹn cho những thông điệp có kích thước lớn một cách hiệu 
quả, hàm băm mật mã là một thành phần không thể thiếu. Hàm băm giúp tạo ra một "dấu 
vân tay" số có kích thước cố định cho mỗi thông điệp, và chính giá trị băm này sẽ được ký 
thay vì ký trên toàn bộ dữ liệu gốc. 
 Chữ ký số là một cơ chế toán học cho phép xác minh tính xác thực, toàn vẹn và chống 
chối bỏ của một thông điệp, tài liệu hoặc dữ liệu số. Về cơ bản, nó hoạt động như một chữ 
ký tay trong thế giới số. Nguyên tắc cốt lõi của chữ ký số dựa trên mật mã hóa khóa công 
khai. Trong hệ thống này, mỗi người dùng sở hữu một cặp khóa duy nhất: 
- Khóa bí mật (Private Key): Là một khóa được giữ tuyệt đối bí mật bởi người chủ 
sở hữu. Khóa này được dùng để tạo ra chữ ký số. 
- Khóa công khai (Public Key): Là một khóa được công bố rộng rãi cho mọi người. 
Khóa này được dùng để xác minh chữ ký số. 
- Quy trình ký và xác minh diễn ra như sau: 
- Tạo bản tóm lược: Đầu tiên, thông điệp gốc được đưa qua một hàm băm an toàn 
(như SHA-256) để tạo ra một chuỗi dữ liệu có độ dài cố định gọi là bản tóm lược 
thông điệp. Hàm băm đảm bảo rằng bất kỳ thay đổi nào dù là nhỏ nhất trên thông 
điệp gốc cũng sẽ tạo ra một bản tóm lược hoàn toàn khác. Điều này đảm bảo tính 
toàn vẹn của dữ liệu. 
- Tạo chữ ký: Người gửi sau đó dùng khóa bí mật của mình để mã hóa bản tóm lược. 
Kết quả của quá trình mã hóa này chính là chữ ký số. Chữ ký này sau đó được đính 
kèm với thông điệp gốc.  - Xác minh chữ ký: 
Người nhận nhận được thông điệp gốc và chữ ký số đính kèm. 
Người nhận sử dụng chính hàm băm mà người gửi đã dùng để tạo ra một bản tóm 
lược mới từ thông điệp gốc nhận được. 
Đồng thời, người nhận dùng khóa công khai của người gửi để giải mã chữ ký số. 
Kết quả giải mã này sẽ là bản tóm lược ban đầu do người gửi tạo ra. 
Cuối cùng, người nhận so sánh hai bản tóm lược: bản tóm lược họ vừa tạo và bản 
tóm lược thu được sau khi giải mã chữ ký. Nếu hai bản tóm lược này giống hệt 
nhau, chữ ký được xem là hợp lệ.    lOMoAR cPSD| 60701415
- Chữ ký hợp lệ chứng tỏ: 
Tính xác thực: Chỉ người sở hữu khóa bí mật tương ứng mới có thể tạo ra chữ ký  này. 
Tính toàn vẹn: Thông điệp không bị thay đổi trong quá trình truyền đi. 
Tính chống chối bỏ: Người gửi không thể phủ nhận việc mình đã ký vào thông điệp. 
2.3. Một số sơ đồ ký số phổ biến 
 Chữ ký số (Digital Signature) là một trong những ứng dụng quan trọng nhất của mật mã 
khóa công khai, được sử dụng rộng rãi nhằm đảm bảo tính xác thực, toàn vẹn và không 
chối bỏ của thông tin. Trên thực tế, có nhiều sơ đồ ký số khác nhau đã và đang được sử  dụng phổ biến:  2.3.1. Sơ đồ RSA 
- Nguyên lý: Dựa trên bài toán khó phân tích thừa số của số nguyên lớn.  - Đặc điểm: 
Người gửi dùng khóa bí mật để tạo chữ ký số trên bản tin. 
Người nhận dùng khóa công khai để kiểm tra tính hợp lệ của chữ ký. 
- Ứng dụng: Được dùng trong SSL/TLS, chứng thư số, xác thực email (S/MIME), và 
nhiều giao thức bảo mật.  2.3.2. Sơ đồ DSA 
- Nguyên lý: Dựa trên bài toán logarit rời rạc trong trường hữu hạn.  - Đặc điểm: 
Là tiêu chuẩn ký số của chính phủ Mỹ (FIPS 186). 
Ký và kiểm tra chữ ký nhanh hơn RSA trong một số trường hợp. 
- Ứng dụng: Thường được sử dụng trong các hệ thống chính phủ, chứng thư số và 
các sản phẩm tuân thủ chuẩn FIPS. 
2.3.3. Sơ đồ ElGamal 
- Nguyên lý: Cũng dựa trên bài toán logarit rời rạc, có quan hệ chặt chẽ với DSA.  - Đặc điểm: 
Tạo chữ ký ngẫu nhiên, mỗi lần ký cần sinh ra giá trị ngẫu nhiên mới. 
Kích thước chữ ký thường dài hơn RSA và DSA. 
- Ứng dụng: Sử dụng trong một số hệ thống thương mại điện tử và mã nguồn mở như  GnuPG.    lOMoAR cPSD| 60701415
2.3.4. So sánh tổng quan 
Bảng 1: Bảng so sánh các chữ kỹ số  Sơ đồ ký số  Nền tảng toán  Độ dài khóa  Ưu điểm  Ứng dụng tiêu  học  biểu  RSA  Phân tích thừa 
2048–4096 bit Phổ biến, dễ  SSL/TLS, PKI,  số  triển khai  email  DSA 
Logarit rời rạc 1024–3072 bit Chuẩn  FIPS, Hệ thống chính  tốc độ nhanh  phủ  ElGamal 
Logarit rời rạc 1024–2048 bit Ngẫu nhiên, an GnuPG, thương  toàn  mại điện tử 
2.4. Sơ đồ ký số ElGamal 
 Sơ đồ ký số ElGamal, được đề xuất bởi Taher ElGamal vào năm 1984, là một trong những 
thuật toán chữ ký số đầu tiên dựa trên độ khó của bài toán logarit rời rạc (Discrete  Logarithm Problem). 
2.4.1. Cơ sở lý thuyết 
 Độ an toàn của ElGamal không dựa vào việc phân tích một số lớn ra thừa số nguyên tố 
(như RSA), mà dựa vào sự khó khăn của việc giải bài toán logarit rời rạc. Bài toán được 
phát biểu như sau: Cho một nhóm cyclic hữu hạn G, một phần tử sinh g của G và một phần 
tử h G. Tìm số nguyên x sao cho:  𝐺𝑥  (𝑚𝑜𝑑 𝑝) 
Trong đó p là một số nguyên tố lớn. Việc tính toán h từ g, x và p là tương đối dễ dàng. Tuy 
nhiên, việc tìm ra x khi chỉ biết g, h và p là một bài toán cực kỳ khó khăn về mặt tính toán  khi các số đủ lớn. 
b. Các bước trong thuật toán ElGamal  * Tạo khóa 
- Để một người dùng có thể ký, cần tạo một cặp khóa công khai và bí mật: 
- Chọn môt số nguyên tố d lớn p. 
- Chọn một số nguyên g sao cho g là nguyên thủy (phần tử sinh) của Z*p. 
- Chọn một số nguyên bí mật a sao cho 1 a p-2. 
- Tính giá trị y = 𝑔𝑎𝑚𝑜𝑑 𝑝 
- Khóa công khai: (p, g, y); khóa bí mật: (a).    lOMoAR cPSD| 60701415 * Tạo chữ ký 
- Đầu tiên, thông điệp M được băm để tạo ra giá trị m = H(M). 
- Chọn một số nguyên ngẫu nhiên k sao cho 1 k p -2 và gcd(k, p-1) = 1. 
- Tính thành phần thứ nhất của chữ ký: r = 𝑔𝑘mod p. 
- Tính thành phần thứ hai của chữ ký: s = 𝑘−1 (H(M) – a.r) mod (p -1). 
- Cặp giá trị (r,s) chính là chữ ký số trên thông điệp M. Chữ ký này sẽ được gửi kèm  với thông điệp M.  * Kiểm thử chữ ký 
Người nhận kiểm tra chữ ký (r, s) của thông điệp M bằng cách: 
- Kiểm tra 1 r p-1 và 1 s p-2. 
- Tính hai giá trị v1 = 𝑦𝑟. 𝑟𝑠 mod p và v2= 𝑔𝐻(𝑀) mod p. Nếu v1 = v2 thì chữ kỹ hợp 
lệ, ngược lại thì chữ ký không hợp lệ. 
2.5. Đặc trưng của hệ chữ ký elgamal 
2.5.1. Đặc tính của elgamal 
 Tính không xác định: Đây là đặc tính nổi bật nhất của ElGamal. Cùng một thông điệp và 
cùng một khóa bí mật, mỗi lần ký sẽ tạo ra một chữ ký hoàn toàn khác nhau. Điều này là 
do việc sử dụng một số ngẫu nhiên bí mật k trong quá trình tạo chữ ký. Ngược lại, các hệ 
thống như RSA là xác định , tức là một thông điệp sẽ luôn tạo ra cùng một chữ ký với cùng  một khóa. 
 Chữ ký gồm hai thành phần: Chữ ký ElGamal không phải là một giá trị duy nhất mà là 
một cặp số nguyên (r, s). 
 Kích thước chữ ký lớn: Chữ ký ElGamal thường có kích thước lớn hơn so với chữ ký RSA 
với cùng mức độ an toàn. Kích thước chữ ký là gấp đôi kích thước của số nguyên tố p được 
sử dụng (ví dụ, nếu p là 2048-bit, chữ ký sẽ là 4096-bit). 
2.5.2. Độ an toàn của elgamal   
Độ an toàn của sơ đồ ElGamal được xây dựng dựa trên độ khó của bài toán logarit 
rời rạc trên một trường hữu hạn. 
 Nền tảng an toàn: Việc phá vỡ hệ thống ElGamal (tức là tìm ra khóa bí mật a từ khóa công 
khai (p, α, β)) tương đương với việc giải bài toán logarit rời rạc: tìm a sao cho 𝛽 ≡ 𝛼𝑎 (mod 
p )Cho đến nay, không có thuật toán hiệu quả nào để giải quyết bài toán này khi các tham 
số p đủ lớn (ví dụ 2048-bit trở lên), do đó hệ thống được coi là an toàn về mặt tính toán.    lOMoAR cPSD| 60701415
 Yêu cầu sống còn về số ngẫu nhiên k: Điểm yếu tiềm tàng lớn nhất của ElGamal nằm ở 
việc sử dụng số ngẫu nhiên k. Nếu giá trị k này bị tiết lộ hoặc tái sử dụng cho hai chữ ký 
khác nhau, kẻ tấn công có thể dễ dàng tính toán ra khóa bí mật a của người ký. Do đó, việc 
tạo ra một số k thực sự ngẫu nhiên và duy nhất cho mỗi lần ký là yêu cầu bắt buộc để đảm  bảo an toàn. 
2.5.3. Ưu điểm và nhược điểm của elgamal 
 Ưu điểm: An toàn dựa trên bài toán khó: Độ an toàn của nó dựa trên bài toán logarit rời 
rạc, một bài toán được nghiên cứu kỹ lưỡng và được tin tưởng là khó giải. 
Miễn phí bản quyền: Không giống như thuật toán RSA bị bằng sáng chế trong những năm 
đầu (hiện đã hết hạn), ElGamal không bị ràng buộc bởi các vấn đề pháp lý về bản quyền, 
cho phép nó được sử dụng tự do trong nhiều ứng dụng. 
Tạo khóa và ký nhanh hơn RSA: Trong một số trường hợp, quá trình tạo khóa và tạo chữ 
ký của ElGamal có thể nhanh hơn so với RSA. 
 Nhược điểm: Kích thước chữ ký lớn: Đây là nhược điểm lớn nhất. Chữ ký ElGamal có 
kích thước gấp đôi so với mô-đun p, gây tốn băng thông và không gian lưu trữ hơn so với 
các thuật toán khác như RSA hay ECDSA (Chữ ký số dựa trên đường cong Elliptic). Ví 
dụ: Với p là 2048-bit, chữ ký RSA cũng là 2048-bit, nhưng chữ ký ElGamal là 4096bit. 
Quá trình xác minh chậm: Việc xác minh chữ ký ElGamal yêu cầu hai phép tính lũy thừa 
theo module, làm cho quá trình này chậm hơn đáng kể so với quá trình xác minh của RSA 
(chỉ yêu cầu một phép tính lũy thừa). Phụ thuộc vào trình tạo số ngẫu nhiên: Hệ thống đòi 
hỏi một trình tạo số ngẫu nhiên chất lượng cao để tạo ra giá trị k cho mỗi chữ ký. Bất kỳ 
sự yếu kém nào trong trình tạo số ngẫu nhiên đều có thể dẫn đến thảm họa về bảo mật. 
Phức tạp hơn trong triển khai: So với RSA, thuật toán ElGamal phức tạp hơn một chút để 
cài đặt và hiểu đúng.          lOMoAR cPSD| 60701415
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG MÔ  PHỎNG 
3.1. Phân tích yêu cầu 
3.1.1. Yêu Cầu Chức Năng   
Ứng dụng mô phỏng sơ đồ chữ ký số ElGamal được xây dựng nhằm mục đích học 
tập và minh họa, do đó hệ thống cần đáp ứng các yêu cầu chức năng sau: a. Giao diện  chính 
 Ứng dụng cần có một cửa sổ chính bao gồm các thành phần: ô nhập thông điệp, các trường 
nhập và hiển thị tham số hệ thống (p, g, x, y), khu vực hiển thị chữ ký số, vùng nhật ký để 
mô tả chi tiết các bước thực hiện, cùng với các nút chức năng chính (Sinh khóa, Ký số, 
Xác minh, Sao chép, Xóa). Các trường nhập liệu phải có gợi ý (placeholder) nhằm hỗ trợ 
người dùng sử dụng dễ dàng.  b. Chức năng sinh khóa 
Hệ thống cần cung cấp nút Sinh khóa, cho phép tự động sinh ra bộ tham số ElGamal bao  gồm p, g, x, y. Trong đó:  - 
p là số nguyên tố, được tìm bằng hàm sinh số nguyên tố gần nhất  (next_prime).  - 
g là phần tử sinh, thỏa mãn điều kiện thuộc đoạn [2, p-2].  - 
x là khóa bí mật, được chọn ngẫu nhiên trong khoảng [2, p-2].  - 
y được tính theo công thức y = g^x mod p. 
Kết quả sinh khóa phải được điền tự động vào các trường giao diện và đồng thời ghi lại chi 
tiết các bước vào vùng nhật ký. 
c. Chức năng ký thông điệp 
Khi người dùng nhập thông điệp, nút Ký số sẽ tạo chữ ký ElGamal (r, s) cho thông điệp 
đó. Quá trình ký được mô tả như sau:  - 
Tính giá trị băm của thông điệp bằng hàm SHA-256, sau đó lấy modulo p.  - 
Chọn ngẫu nhiên số k sao cho gcd(k, p-1) = 1.  -  Tính r = g^k mod p.  - 
Tính s = k^{-1} * (h - x*r) mod (p-1) trong đó h là giá trị băm của thông 
điệp. Kết quả chữ ký (r, s) phải được hiển thị rõ ràng và các bước trung gian được mô  tả trong nhật ký.    lOMoAR cPSD| 60701415
d. Chức năng xác minh chữ ký 
Ứng dụng cần có nút Xác minh để kiểm tra tính hợp lệ của chữ ký (r, s). Các bước xác  minh bao gồm:  - 
Kiểm tra giá trị r có nằm trong miền xác định hợp lệ hay không.  -  Tính h = hash(msg) mod p.  - 
Tính hai vế kiểm chứng:v1 = y^r * r^s mod p, v2 = g^h mod p.  - 
So sánh v1 và v2 để đưa ra kết luận chữ ký hợp lệ hay không hợp lệ. 
Kết quả xác minh cần được hiển thị kèm giải thích chi tiết trong nhật ký. e.  Nhật ký thực thi 
 Hệ thống cần có một vùng văn bản chỉ đọc để ghi lại toàn bộ các bước xử lý và các kết 
quả trung gian. Nội dung nhật ký phải được diễn giải bằng tiếng Việt dễ hiểu, phù hợp với 
mục đích giảng dạy và minh họa. Ví dụ: “Chọn k = …, vì gcd(k, p-1) = 1 nên chấp nhận”, 
“Tính r = g^k mod p = …”. 
f. Chức năng sao chép và xóa dữ liệu 
Nút Sao chép: cho phép sao chép chữ ký hiện tại vào clipboard. 
Nút Xóa: đặt lại toàn bộ các ô nhập liệu, chữ ký và nhật ký về trạng thái ban đầu. g.  Thông báo trạng thái 
 Ứng dụng cần có một thanh trạng thái để hiển thị các thông báo ngắn gọn liên quan đến 
kết quả xử lý, chẳng hạn: “Đã sinh khóa”, “Ký số thành công”, “Xác minh thất bại”. h. Xử  lý lỗi   
Hệ thống cần có cơ chế bắt lỗi trong các trường hợp nhập liệu không hợp lệ (ví dụ: 
nhập ký tự thay vì số), hoặc lỗi toán học (ví dụ: không tồn tại nghịch đảo). Khi xảy ra lỗi, 
ứng dụng phải hiển thị thông báo rõ ràng trong vùng nhật ký và trên thanh trạng thái. 
3.1.2. Yêu Cầu Phi Chức Năng 
 Bên cạnh các yêu cầu chức năng, hệ thống còn cần đáp ứng các yêu cầu phi chức năng sau 
đây nhằm đảm bảo tính tiện dụng, ổn định và khả năng mở rộng trong quá trình sử dụng  và phát triển:  a. Khả năng sử dụng 
 Ứng dụng phải có giao diện đơn giản, dễ sử dụng và trực quan. Các nhãn và gợi ý 
(placeholder) đều được trình bày rõ ràng bằng tiếng Việt. Nhật ký thực thi phải cung cấp 
lời giải thích ngắn gọn đi kèm giá trị tính toán để người dùng không am hiểu toán học vẫn    lOMoAR cPSD| 60701415
có thể theo dõi quy trình. Các thao tác chính của ứng dụng cần được phản hồi trong vòng 
một giây; trong trường hợp xử lý lâu hơn, hệ thống cần hiển thị thông báo hoặc hiệu ứng 
chờ để tránh gây nhầm lẫn cho người dùng.  b. Hiệu năng 
 Trong phạm vi mô phỏng (kích thước p khoảng 1000–5000), các chức năng sinh khóa, ký 
và xác minh phải được thực hiện gần như tức thời (< 1 giây) trên máy tính thông thường. 
Nếu người dùng sử dụng giá trị p lớn hơn mức khuyến nghị, ứng dụng có thể chậm lại; khi 
đó cần có cảnh báo về thời gian xử lý.  c. Tính đáng tin cậy 
 Ứng dụng không được phép bị dừng đột ngột (crash) khi người dùng nhập liệu sai định 
dạng hoặc không hợp lệ. Các ngoại lệ phải được xử lý an toàn, đồng thời thông báo lỗi rõ 
ràng cho người dùng. Ngoài ra, các thao tác có thể được lặp lại nhiều lần (ví dụ: sinh khóa 
mới, ký lại, xác minh lại) mà không gây rò rỉ trạng thái hoặc sai lệch dữ liệu. d. Bảo mật 
 Ứng dụng chỉ phục vụ mục đích học tập nên không yêu cầu tính bảo mật cao. Tuy nhiên, 
vẫn cần tuân thủ một số nguyên tắc cơ bản: không tự động lưu trữ khóa bí mật x vào các 
tệp tin không an toàn, trừ khi có sự đồng ý của người dùng; khi sao chép dữ liệu chữ ký 
vào clipboard, cần cảnh báo cho người dùng. Ứng dụng phải thể hiện rõ ràng rằng đây 
không phải là công cụ mật mã thực tế và không được sử dụng cho mục đích bảo mật thương  mại. 
3.2. Thiết kế luồng hoạt động 
 Biểu đồ luồng dữ liệu mức 0 dưới đây mô tả tổng quan hệ thống ký số ElGamal. Người 
dùng có thể gửi yêu cầu sinh khóa, ký số hoặc xác minh chữ ký. Hệ thống sẽ xử lý các yêu 
cầu này thông qua việc trao đổi dữ liệu với các kho tham số khóa, chữ ký số và nhật ký 
thực thi, sau đó trả về kết quả hoặc thông báo cho người dùng.