lOMoARcPSD| 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
lOMoARcPSD| 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 nội dung của không hề bị thay đổi trên đường truyền? Đây những câu
hỏi nền tảng 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
chế đảm bảo tính xác thực, tính toàn vẹn 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 y, kỹ thuật chữ số đã được phát triển dựa
trên nền tảng của mật hóa khóa công khai. Chữ số không chỉ một công cụ kỹ thuật
còn 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 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ố, xây dựng chương trìnhphỏ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ệ tiêu biểu dựa trên bài toán
logarit rời rạc. Để không chỉ dừng lại 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àng sâu sắc về cách chữ 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
lOMoARcPSD| 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
lOMoARcPSD| 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
lOMoARcPSD| 60701415
lOMoARcPSD| 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ô tchc năng sinh khóa tự động .............................................................. 30
Hình 4.0.3: Mô tchc năng ký số .................................................................................. 31
Hình 4.4: Mô tchức năng xác minh chữ ký ................................................................... 32
lOMoARcPSD| 60701415
DANH MỤC BẢNG BIỂU
Bảng 1: Bảng so sánh các chữ kỹ số ................................................................................. 14
lOMoARcPSD| 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 nhân, tổ chức và quốc gia. Dữ liệu được tạo ra, lưu trữ, xử trao
đổi với khối lượng khổng lồ tốc độ chóng mặt trên các hệ thống mạng toàn cu. 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 đảm bảo ba thuộc tính cơ bản của thông tin: tính 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 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 hội
các dịch vụ trực tuyến, hầu hết mọi giao dịch 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 thậm chí an ninh quốc gia. Do
đó, việc đầu 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 ưu tiên hàng đầu của mọi tổ chức. Trong đó, các kỹ thuật mật
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 tính chống thoái thác đã trở thành một yêu cầu sống còn. Chữ
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. 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.
lOMoARcPSD| 60701415
Việc nghiên cứu sâu về các đồ số cùng cần thiết để có thể hiểu nguyên lý
hoạt động, ưu nhược điểm phạm vi ứng dụng của từng loại. Trong số các đồ 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 số hiện đại. đồ 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 thuyết suông về các thuật toán mật thường khó mang
lại một cái nhìn trực quan 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 thông qua việc hiện thực hóa nó. Chính vậy, đề tài "Trình bày các đồ 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 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ơ đ số Elgamal, một thuật
toán quan trọng giúp người học hiểu hơn về nguyên hoạt động của mật
khóa công khai và ứng dụng của bài toán logarit rời rạc.
- Kết hợp thuyết thực tiễn: Việc xây dựng một chương trình phỏng không
chỉ giúp kiểm chứng các kiến thức thuyết đã học 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
thể được sử dụng nmột ng cụ hỗ trợ giảng dạy 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
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 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
lOMoARcPSD| 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 hoạt động của đồ số Elgamal, bao gồm các quy
trình tạo khóa, tạo chữ kiểm tra chữ ký, cũng như 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ế xây dựng thành công một chương trình phần mềm 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 mật để lên một thông điệp 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 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 đề xuất các hướng phát triển, cải tiến thể 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.
- sở toán học của thuật toán, đặc biệt i toán logarit rời rạc trên trường hữu
hạn.
lOMoARcPSD| 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ố đồ 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 phỏng độc lập trên môi trường máy tính 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 bảo mật thông tin (Information Security) tập hợp các biện pháp, quy trình
công nghệ nhằm bảo vệ thông tin 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 một trong những lĩnh
vực trọng yếu trong 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.
lOMoARcPSD| 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 thêm các yếu tố như tính xác thực 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 bảo mật thông tin đóng vai trò sống còn đối với các nhân, tổ chức 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ố
sở của chữ số nói chung sơ đồ Elgamal nói riêng là các nguyên của mật
học. Mật 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 ngược lại, nhằm đảm bảo tính mật,
lOMoARcPSD| 60701415
toàn vẹn xác thực. Trong đó, hệ mật 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ữ 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) 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ữ số một chế toán học cho phép xác minh nh xác thực, toàn vẹn 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 mật (Private Key): một khóa được giữ tuyệt đối 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 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 nhnhấ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 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 chữ 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 bản
tóm lược thu được sau khi giải 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ệ.
lOMoARcPSD| 60701415
- Chữ ký hợp lệ chứng tỏ:
Tính xác thực: Chỉ người sở hữu khóa mật tương ứng mới 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ữ số (Digital Signature) một trong những ng dụng quan trọng nhất của mật
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 không
chối bỏ của thông tin. Trên thực tế, nhiều đồ số khác nhau đã đ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ố
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à nguồn mnhư
GnuPG.
lOMoARcPSD| 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
học
Ưu điểm
Ứng dụng tiêu
biểu
RSA
Phân tích thừa
số
Phổ biến, dễ
triển khai
SSL/TLS, PKI,
email
DSA
Logarit rời rạc
Chuẩn FIPS,
tốc độ nhanh
Hệ thống chính
phủ
ElGamal
Logarit rời rạc
Ngẫu nhiên, an
toàn
GnuPG, thương
mại điện tử
2.4. Sơ đồ ký số ElGamal
đồ ký số ElGamal, được đề xuất bởi Taher ElGamal vào m 1984, là một trong những
thuật toán chữ 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à ơ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).
lOMoARcPSD| 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ứ nht ca 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.
* Kim thch
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 pv2= 𝑔
𝐻(𝑀)
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 đặc tính nổi bật nhất của ElGamal. ng một thông điệp
cùng một khóa mật, mỗi lần sẽ tạo ra một chữ hoàn toàn khác nhau. Điều này
do việc sử dụng một số ngẫu nhiên 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ữ gồm hai thành phần: Chữ ElGamal không phải một giá trị duy nhất
một cặp số nguyên (r, s).
Kích thước chữ lớn: Chữ ký ElGamal thường có kích thước lớn hơn so với chữ RSA
với cùng mức độ an toàn. Kích thước chữ 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à m ra khóamậ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.
lOMoARcPSD| 60701415
Yêu cầu sống còn về sngẫ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ị ky bị tiết lộ hoặc tái sử dụng cho hai chữ
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 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 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 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ữ lớn: Đây nhược điểm lớn nhất. Chữ ElGamal
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ữ số dựa trên đường cong Elliptic).
dụ: Với p 2048-bit, chữ RSA cũng 2048-bit, nhưng chữ ElGamal 4096bit.
Quá trình xác minh chậm: Việc xác minh chữ 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.
lOMoARcPSD| 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ý để
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, số,
Xác minh, Sao chép, Xóa). Các trường nhập liệu phải 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 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 ng nhập thông điệp, nút số stạo chữ 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 giá trị băm của thông
điệp. Kết quả chữ (r, s) phải được hiển thị ràng các bước trung gian được
tả trong nhật ký.
lOMoARcPSD| 60701415
d. Chức năng xác minh chữ
Ứng dụng cần nút Xác minh để kiểm tra tính hợp lệ của chữ (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 một vùng văn bản chỉ đọc để ghi lại toàn bộ các bước xử 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 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ý li
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 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 giao diện đơn giản, dễ sử dụng trực quan. Các nhãn gợi ý
(placeholder) đều được trình bày ràng bằng tiếng Việt. Nhật 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
lOMoARcPSD| 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â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,
và xác minh phải được thực hiện gần ntức thời (< 1 giây) trên 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 bản: không tự động lưu trữ khóa mật x vào các
tệp tin không an toàn, trừ khi sự đồng ý của người dùng; khi sao chép dữ liệu chữ
vào clipboard, cần cảnh báo cho người dùng. Ứng dụng phải thể hiện ràng rằng đây
không phải công cụ mật thực tế 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 tả tổng quan hệ thống số ElGamal. Người
dùng có thể gửi yêu cầu sinh khóa,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ữ số nhật
thực thi, sau đó trả về kết quả hoặc thông báo cho người dùng.

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.