Chính vì thấy được lợi ích và khó khăn của việc triển khai bỏ phiếu điện tử tại cơ quan công tác nên học viên chọn đề tài: “Nghiên cứu kỹ thuật An toàn thông tin trong kiểm phiếu điện tử
Trang 1MẠC THÙY LINH
NGHIÊN CỨU KỸ THUẬT AN TOÀN THÔNG TIN TRONG KIỂM PHIẾU ĐIỆN TỬ - ỨNG DỤNG CHO TRƯỜNG TRUNG
HỌC PHỔ THÔNG CHUYÊN HẠ LONG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2020
Trang 2MẠC THÙY LINH
NGHIÊN CỨU KỸ THUẬT AN TOÀN THÔNG TIN TRONG KIỂM PHIẾU ĐIỆN TỬ - ỨNG DỤNG CHO TRƯỜNG TRUNG
HỌC PHỔ THÔNG CHUYÊN HẠ LONG
Chuyên ngành: Khoa học máy tính
Mã số: 8 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Giáo viên hướng dẫn: TS Hồ Văn Hương
THÁI NGUYÊN - 2020
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện, dưới sự hướng dẫn khoahọc của TS Hồ Văn Hương, các kết quả lý thuyết được trình bày trong luận văn là
sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ, kết quả củachương trình thực nghiệm trong luận văn này được tác giả thực hiện là hoàn toàntrung thực, nếu sai tôi hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày 20 tháng 9 năm 2020
Học viên
Mạc Thùy Linh
Trang 4LỜI CẢM ƠN
Luận văn này được hoàn thành tại Trường Đại học Công nghệ Thông tin vàTruyền thông dưới sự hướng dẫn của TS Hồ Văn Hương Tác giả xin bày tỏ lòngbiết ơn tới các thầy cô giáo thuộc Trường Đại học Công nghệ Thông tin và Truyềnthông, các thầy cô giáo thuộc Viện Công nghệ Thông tin – Viện Hàn lâm Khoa học
và Công nghệ Việt Nam đã tạo điều kiện, giúp đỡ tác giả trong quá trình học tập vàlàm luận văn tại Trường, đặc biệt tác giả xin bày tỏ lòng biết ơn tới TS Hồ VănHương đã tận tình hướng dẫn và cung cấp nhiều tài liệu cần thiết để tác giả có thểhoàn thành luận văn đúng thời hạn
Xin chân thành cảm ơn anh chị em học viên cao học và bạn bè đồng nghiệp đãtrao đổi, khích lệ tác giả trong quá trình học tập và làm luận văn tại Trường Đại họcCông nghệ Thông tin và Truyền thông - Đại học Thái Nguyên
Cuối cùng tác giả xin gửi lời cảm ơn đến gia đình, những người đã luôn bêncạnh, động viên và khuyến khích tôi trong quá trình thực hiện đề tài
Thái Nguyên, ngày 20 tháng 9 năm
2020
Học viên cao học
Mạc Thùy Linh
Trang 5MỤC LỤC
LỜI CẢM ƠN ii
LỜI CAM ĐOAN i
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU viii
MỞ ĐẦU 1
1 Tính khoa học và cấp thiết của đề tài 1
2 Đối tượng và phạm vi nghiên cứu của đề tài 2
3 Phương pháp luận nghiên cứu 2
4 Nội dung và bố cục của luận văn 2
CHƯƠNG 1 TỔNG QUAN VỀ BỎ PHIẾU VÀ KIỂM PHIẾU ĐIỆN TỬ 4
Giới thiệu chương 4
Những vấn đề chung về an toàn thông tin 4
1.2.1 Khái niệm an toàn thông tin 4
1.2.2 Các phương pháp bảo vệ thông tin 5
Bài toán bỏ phiếu và kiểm phiếu điện tử 7
1.3.1 Khái niệm về bỏ phiếu 7
1.3.2 Khái niệm bỏ phiếu điện tử 7
1.3.3 Các thành phần trong hệ thống bỏ phiếu điện tử 7
1.3.4 Các giai đoạn bỏ phiếu điện tử 8
1.3.5 Các yêu cầu đối với hệ thống bỏ phiếu điện tử 9
Đảm bảo an toàn thông tin trong bỏ phiếu và kiểm phiếu điện tử 10
1.4.1 Sử dụng kỹ thuật mật mã 10
1.4.2 Đảm bảo tính toàn vẹn trong hệ thống thông tin mật mã bằng chia sẻ khóa bí mật 15
1.4.3 Bảo mật và xác thực bằng chữ ký số 16
Kết luận chương 1 20
CHƯƠNG 2 SỬ DỤNG MẬT MÃ ĐẢM BẢO AN TOÀN THÔNG TIN TRONG KIỂM PHIẾU ĐIỆN TỬ 21
Trang 6Giới thiệu chương 21
Cơ sở toán học của mật mã 22
2.2.1 Nhóm, vành và không gian Zp 22
2.2.2 Bài toán logarit rời rạc 23
Sử dụng hệ mã hóa khóa công khai Elgamal trong bỏ phiếu điện tử 24
2.3.1 Tổng quan về hệ mật mã khóa công khai Elgamal 24
2.3.2 Tính đồng cấu của hệ mã hóa Elgamal 26
2.3.3 Ứng dụng hệ mã hóa Elgamal cho bài toán bỏ phiếu đồng ý /không đồng ý 27
Sử dụng sơ đồ chia sẻ bí mật Shamir kết hợp với hệ mã hóa Elgamal trong bỏ phiếu điện tử 29
2.4.1 Sơ đồ ngưỡng Shamir 1979 29
2.4.2 Sơ đồ chia sẻ bí mật Shamir kết hợp với hệ mã hóa Elgamal 31
2.4.3 Ứng dụng sơ đồ kết hợp giải quyết bài toán bỏ phiếu chọn L trong K 32 Xác thực cử tri bằng Chữ ký số Elgamal 35
2.5.1 Sơ đồ chữ ký Elgamal 35
2.5.2 Họ sơ đồ chữ ký Elgamal 36
Kết luận chương 2 39
CHƯƠNG 3 ỨNG DỤNG KỸ THUẬT MẬT MÃ TRONG KIỂM PHIẾU ĐIỆN TỬ 41
Giới thiệu chương 41
Phân tích yêu cầu bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long 41
3.2.1 Giới thiệu về trường THPT chuyên Hạ Long 41
3.2.2 Phân tích bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long 43
Xây dựng chương trình thử nghiệm 48
3.3.1 Môi trường cài đặt 48
3.3.2 Cấu trúc chương trình 48
Kết quả thử nghiệm và đánh giá 51
Trang 7Kết luận chương 3 57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58
TÀI LIỆU THAM KHẢO 60
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến
HTTPS Hypertext Transfer Protocol Giao thức truyền tải siêu văn
IDEA International Data Encryption Thuật toán mã hóa dữ liệu quốc
LDAP Lightweight Directory Access Chuẩn dịch vụ thư mục
ProtocolPKCS Public Key Cryptography Standards Chuẩn mã hóa khóa công khaiPKI Public Key Infrastructure Hạ tầng cơ sở khóa công khai
khai RSA
TLS Transport Layer Security Giao thức bảo mật tầng truyền
thông
Trang 9DANH MỤC CÁC HÌNH ẢNH
Hình 1.1 Sơ đồ mã hóa và giải mã bằng khóa riêng 12
Hình 1.2 Sơ đồ mã hóa và giải mã bằng khóa công khai 13
Hình 1.3 Hoạt động của hệ thống chữ ký số 17
Hình 1.4 Quá trình tạo chữ ký 17
Hình 1.5 Quá trình xác thực chữ ký 18
Hình 2.1 Hệ mật mã công khai 24
Hình 2.2 Sơ đồ bỏ phiếu đồng ý/ không đồng ý 28
Hình 2.3 Sơ đồ bỏ phiếu chọn L trong K 32
Hình 3.1 Giới thiệu về trường THPT chuyên Hạ Long 41
Hình 3.2 Hình ảnh mẫu phiếu hỏi lớp 10 toán năm học 2018-2019 43
Hình 3.3 Hình ảnh mẫu phiếu hỏi lớp 12 Anh 2 toán năm học 2018-2019 44
Hình 3.4 Một ví dụ minh họa về mô hình phần cứng bỏ phiếu điện tử 47
Hình 3.5 Giao diện của chương trình chính 51
Hình 3.6 Minh họa sử dụng mã hóa Elgamal với các câu hỏi dạng có/không 52
Hình 3.7 Minh họa sử dụng kết hợp mã hóa khóa công khai Elgamal và sơ đồ chia sẻ bí mật Shamir với các câu hỏi dạng “chọn 1 trong K” 54 Hình 3.8 Minh họa việc xác thực chữ kí số Elgamal 56
Trang 10DANH MỤC BẢNG BIỂU
Bảng 2.1 Ví dụ về mã hóa và giải mã 26Bảng 3.1 Các file chính để minh họa bỏ phiếu dạng có/không đồng ý 49Bảng 3.2 Các file chính để minh họa bỏ phiếu với câu hỏi dạng “chọn 1 trong K” 49Bảng 3.3 Các file chính để minh họa Bài toán bỏ phiếu có/không đồng ý 50
Trang 11MỞ ĐẦU
1 Tính khoa học và cấp thiết của đề tài
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, máy tính điện
tử và mạng máy tính là công cụ có ý nghĩa quyết định, mang tính đột phá, hỗ trợ đắclực cho con người tiếp cận, trao đổi những thông tin mới nhất một cách nhanhchóng, thuận tiện
Chúng ta đang sống trong một xã hội dân chủ, rất nhiều việc cần đến bỏ phiếunhư bỏ phiếu thăm dò các kế hoạch, chính sách; bỏ phiếu bầu cử chức vụ, chứcdanh,… Tại trường THPT chuyên Hạ Long, cuối mỗi năm học đều cho học sinhnhận xét, đánh giá các giáo viên giảng dạy tại lớp mình thông qua phiếu hỏi Có haihình thức có thể thực hiện là bỏ phiếu trực tiếp bằng các lá phiếu in trên giấy - đây
là cách nhà trường vẫn thực hiện, tuy nhiên cần nhiều thời gian từ khâu bỏ phiếuđến kiểm phiếu trong khi quỹ thời gian giai đoạn cuối năm có rất ít, mà kết quảkiểm phiếu cần có trước buổi tổng kết năm học Hình thức thứ hai là bỏ phiếu bằngcác lá phiếu đã được số hóa (lá phiếu điện tử) từ máy tính điện tử hoặc điện thoại diđộng Hình thức này hiện nay vẫn chưa được thực hiện nhưng rõ ràng về mặt líthuyết ta thấy nó sẽ giúp tiết kiệm thời gian, nhân lực rất nhiều Vấn đề chỉ còn làthời gian và kỹ thuật cho phép
Cũng như hình thức bỏ phiếu trực tiếp, bỏ phiếu điện tử phải đảm bảo yêu cầu
bí mật, toàn vẹn, xác thực của lá phiếu [9] Bí mật tức là ngoài học sinh bỏ phiếu thì
chỉ có người kiểm phiếu mới biết nội dung lá phiếu, nhưng sẽ không biết ai bỏphiếu; Toàn vẹn là trên đường truyền tin, thông tin trên lá phiếu không bị thay đổi,
lá phiếu đến hòm phiếu an toàn, đúng thời điểm và được kiểm phiếu; Xác thực là láphiếu phải hợp lệ, đúng là người được quyền bỏ phiếu và học sinh bỏ phiếu có thểnhận ra lá phiếu của mình
Việc bỏ phiếu này trải qua nhiều công đoạn: Lên danh sách học sinh được bỏphiếu, bỏ phiếu, kiểm phiếu Mọi giai đoạn cần đạt được mọi yêu cầu của bỏ phiếutrực tiếp Tuy nhiên lại gặp phải các vấn đề về an toàn, bảo mật thông tin Để giải
Trang 12quyết vấn đề này, mỗi giai đoạn trong quá trình bỏ phiếu nên sử dụng một kỹ thuật
an toàn bảo mật để giải quyết
Chính vì thấy được lợi ích và khó khăn của việc triển khai bỏ phiếu điện tử tại
cơ quan công tác nên học viên chọn đề tài: “Nghiên cứu kỹ thuật An toàn thông tin trong kiểm phiếu điện tử - Ứng dụng cho trường Trung học phổ thông chuyên Hạ Long” làm đề tài tốt nghiệp thạc sĩ Đề tài tập trung nghiên cứu kỹ thuật An toàn
thông tin trong kiểm phiếu điện tử - Ứng dụng cho trường Trung học phổ thôngchuyên Hạ Long trong kiểm phiếu hỏi nhận xét giáo viên
2 Đối tượng và phạm vi nghiên cứu của đề tài Đề tài tập trung tìm hiểu về:
- Thực trạng và nhu cầu an toàn thông tin trong bỏ phiếu và kiểm phiếu điệntử
- Các giải pháp đảm bảo an toàn trong bỏ phiếu và kiểm phiếu điện tử
- Cơ sở mật mã, chữ ký số trong nhằm đảm bảo an toàn trong bỏ phiếu vàkiểm phiếu hỏi - đánh giá giáo viên của các học sinh trường THPT chuyên Hạ
Long
- Nghiên cứu, thu thập các tài liệu đã xuất bản, các bài báo trên các tạp chíkhoa học và các tài liệu trên mạng Internet có liên quan đến vấn đề đang nghiên cứucủa các tác giả trong và ngoài nước Từ đó chọn lọc và sắp xếp lại theo ý tưởng củamình
- Tìm hiểu, vận dụng và kế thừa một số thuật toán mã hóa và giải mã thuật toán
ký số
- Khai thác, xây dựng chương trình demo minh họa việc xác thực, bỏ phiếu vàkiểm phiếu hỏi nhận xét giáo viên của các học sinh trong trường THPT chuyên Hạ
Long - tỉnh Quảng Ninh
4 Nội dung và bố cục của luận văn
Ngoài phần mở đầu, kết luận và hướng phát triển, luận văn được bố cục thành
ba chương chính như sau:
Trang 13Chương 1 Tổng quan về bỏ phiếu và kiểm phiếu điện tử
Chương này tập trung trình bày những vấn đề chung về an toàn thông tin; Tổngquan bài toán bỏ phiếu và kiểm phiếu điện tử; Đảm bảo an toàn thông tin trong bỏphiếu và kiểm phiếu điện tử bằng kỹ thuật mật mã, chữ kí số và chia sẻ khóa bí mật
Chương 2: Sử dụng kỹ thuật mật mã đảm bảo an toàn trong kiểm phiếu điện tử
Nội dung chính của chương phân tích việc sử dụng hệ mật mã Elgamal, chữ ký
số Elgamal, sơ đồ chia sẻ khóa bí mật Shamir nhằm đảm bảo an toàn thông tin trongkiểm phiếu điện tử
Chương 3: Ứng dụng kỹ thuật mật mã trong kiểm phiếu điện tử
Từ các kết quả phân tích lý thuyết ở các chương trước, chương này sẽ đi sâuvào phân tích yêu cầu bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trườngTHPT chuyên Hạ Long, từ đó xây dựng chương trình thử nghiệm và đánh giá khảnăng áp dụng trong thực tế
Trang 14CHƯƠNG 1 TỔNG QUAN VỀ BỎ PHIẾU VÀ KIỂM PHIẾU ĐIỆN TỬ
Giới thiệu chương
Nội dung chương 1 của luận văn chia làm ba phần Phần đầu tiên trình bày vềnhững vấn đề chung của an toàn thông tin mà bất cứ hệ thống thông tin điện tử nàocũng phải đối mặt Phần tiếp theo phân tích về ưu điểm của việc chuyển đổi từ bỏphiếu truyền thống sang bỏ phiếu điện tử Khi áp dụng bỏ phiếu điện tử, hệ thống bỏphiếu trở thành một hệ thống thông tin điện tử và các vấn đề an toàn của hệ thốngnày sẽ được đảm bảo thông qua việc sử dụng mật mã để mã hóa lá phiếu, sử dụng
kỹ thuật chia sẻ khóa bí mật để đảm bảo tính toàn vẹn trong kiểm phiếu, sử dụngchữ ký số để xác thực người bỏ phiếu Các nội dung này được trình bày trong phâncuối của chương
Những vấn đề chung về an toàn thông
tin 1.2.1 Khái niệm an toàn thông tin 1.1.2.1
Khái niệm
Theo [1] an toàn thông tin nghĩa là thông tin được bảo vệ, các hệ thống và dịch
vụ có khả năng chống lại những sự can thiệp, lỗi và những tai họa không mong đợi.Các thay đổi tác động đến độ an toàn của hệ thống là nhỏ nhất Hệ thống không antoàn là hệ thống tồn tại những điểm: thông tin bị rò rỉ ra ngoài - thông tin dữ liệutrong hệ thống bị người không được quyền truy nhập lấy và sử dụng, thông tin bịthay đổi - các thông tin trong hệ thống bị thay thế hoặc sửa đổi làm sai lệch mộtphần hoặc hoàn toàn nội dung
Giá trị thực sự của thông tin chỉ đạt được khi thông tin được cung cấp chính xác
và kịp thời, hệ thống phải hoạt động chuẩn xác thì mới có thể đưa ra những thông tin cógiá trị cao Mục tiêu của an toàn bảo mật trong công nghệ thông tin là đưa ra một sốtiêu chuẩn an toàn và áp dụng các tiêu chuẩn an toàn này vào chỗ thích hợp để giảm bớt
và loại trừ những nguy hiểm có thể xảy ra Ngày nay với kỹ thuật truyền nhận và xử lýthông tin ngày càng phát triển và phức tạp nên hệ thống chỉ có thể đạt tới một mức độ
an toàn nào đó và không có một hệ thống an toàn tuyệt đối Ngoài ra
Trang 15khi đánh giá còn phải cân đối giữa mức độ an toàn và chất lượng của dịch vụ đượccung cấp.
Khi đánh giá độ an toàn thông tin cần phải dựa trên nội dung phân tích các rủi
ro có thể gặp, từ đó tăng dần sự an toàn bằng cách giảm bớt những rủi ro Các đánhgiá cần hài hoà với đặc tính, cấu trúc hệ thống và quá trình kiểm tra chất lượng
1.1.2.2 Các yêu cầu an toàn bảo mật thông tin.
Với sự phát triển rất nhanh của khoa học công nghệ, các biện pháp tấn côngngày càng tinh xảo hơn, độ an toàn của thông tin có thể bị đe dọa từ nhiều nơi, theonhiều cách khác nhau, chúng ta cần phải đưa ra các chính sách đề phòng thích hợp.Các yêu cầu cần thiết của việc bảo vệ thông tin và tài nguyên [4]:
- Đảm bảo bí mật (Bảo mật) thông tin không bị lộ đối với người không đượcphép
- Đảm bảo tính tin cậy (Confidentiality): Thông tin và tài nguyên không thể bịtruy cập trái phép bởi những người không có quyền hạn
- Đảm bảo tính toàn vẹn (Integrity): Thông tin và tài nguyên không thể bị sửa đổi, bị thay thế bởi những người không có quyền hạn
- Đảm bảo tính sẵn sàng (Availability): Thông tin và tài nguyên luôn sẵn sàng
để đáp ứng sử dụng cho người có quyền hạn
- Đảm bảo tính không thể chối bỏ (Non-repudiation): Thông tin và tài nguyên được xác nhận về mặt pháp luật của người cung cấp
1.2.2 Các phương pháp bảo vệ thông tin
Các giải pháp bảo đảm an toàn thông tin
Phương pháp che giấu, bảo đảm toàn vẹn và xác thực thông tin:
- “Che” dữ liệu (mã hóa): thay đổi hình dạng dữ liệu gốc, người khác khó nhậnra
- “Giấu” dữ liệu: Cất giấu dữ liệu này trong môi trường dữ liệu khác
- Bảo đảm toàn vẹn và xác thực thông tin (đánh giấu thông tin)
- Mã hóa, hàm băm, giấu tin, ký số
Trang 16- Giao thức bảo toàn thông tin, giao thức xác thực thông tin,
Phương pháp kiểm soát lỗi vào ra của thông tin:
- Kiểm soát, ngăn chặn các thông tin vào ra hệ thống máy tính
- Kiểm soát, cấp quyền sử dụng các thông tin trong hệ thống máy tính
- Kiểm soát, tìm diệt “sâu bọ” vào trong hệ thống máy tính
- Kỹ thuật: Mật khẩu, tường lửa, mạng riêng ảo, nhận dạng, xác định thực thể, cấp quyền hạn
Phát hiện và xử lý các lỗ hổng trong an toàn thông tin:
- Các “lỗ hổng” trong các thuật toán hay giao thức mật mã, giấu tin
- Hạ tầng mật mã khóa công khai (PKI)
- Kiểm soát nối vào – ra: Mật khẩu, tưởng lửa, mạng riêng ảo, cấp quyền hạn
- Kiểm soát và xử lý các lỗ hổng
Các kỹ thuật bảo đảm an toàn thông tin:
- Kỹ thuật diệt trừ: Virus máy tính, chương trình trái phép
- Kỹ thuật tường lửa: Ngăn chặn truy cập trái phép, lọc thông tin không hợppháp
- Kỹ thuật mạng riêng ảo: Tạo ra hành lang riêng cho thông tin “đi lại”
- Kỹ thuật mật mã: Mã hóa, kỹ số, các giao thức mật mã, chống chối cãi
- Kỹ thuật giấu tin: Che giấu thông tin trong môi trường dữ liệu khác
- Kỹ thuật thủy ký: Bảo vệ bản quyền tài liệu số hóa
- Kỹ thuật truy tìm “dấu vết” kẻ trộm tin
Các công nghệ đảm bảo an toàn thông tin:
- Công nghệ chung: Tường lửa, mạng riêng ảo, PKI (khóa công khai), thẻ thông minh,
- Công nghệ cụ thể: SSL, TLS, PGP, SMINE
Trang 17Bài toán bỏ phiếu và kiểm phiếu điện tử.
1.3.1 Khái niệm về bỏ phiếu
Theo [5]thì bỏ phiếu là việc người dùng phiếu để bày tỏ sự lựa chọn hay thái
độ của mình trong cuộc bầu cử hoặc biểu quyết Một cuộc bỏ phiếu thành công phảibảo đảm các tính chất:
- Quyền bỏ phiếu: chỉ người có quyền bầu cử mới được bỏ phiếu Mỗi cử tri chỉ được bỏ phiếu một lần
- Bí mật: không thể biết được lá phiếu nào đó là của ai, trừ cử tri của nó
- Kiểm soát kết quả: có thể phát hiện được những sai sót trong quá trình bỏ phiếu
Cho đến nay các cuộc bỏ phiếu vẫn được thực hiện theo cách truyền thống, tuynhiên với tốc độ phát triển của ngành công nghệ thông tin, đặc biệt là xu thế thựchiện “Chính phủ điện tử” thì việc “bỏ phiếu điện tử” thay thế phương thức truyềnthống là điều sẽ diễn ra trong tương lai gần [6], [8]
1.3.2 Khái niệm bỏ phiếu điện tử
Người ta bỏ phiếu để bầu cử các chức vụ, chức danh hay để thăm dò dư luận
về một kế hoạch, chính sách nào đó Hiện nay có hai loại bỏ phiếu chính Bỏ phiếutrực tiếp tại hòm phiếu bằng các lá phiếu in trên giấy Bỏ phiếu từ xa bằng các láphiếu “số hóa” tạm gọi là các lá phiếu điện tử từ các máy tính cá nhân trên mạng,trên điện thoại di động,… Nó cũng được gọi là bỏ phiếu điện tử [9]
Bỏ phiếu điện tử là bỏ phiếu bằng các phương pháp điện tử Các hệ thống bỏphiếu điện tử cho phép cử tri sử dụng các kỹ thuật mã hóa, để giữ bí mật lá phiếuđiện tử trước khi chuyển đến hòm phiếu qua các kênh công khai Cử tri có thể bỏphiếu qua Internet, các máy bỏ phiếu tự động
1.3.3 Các thành phần trong hệ thống bỏ phiếu điện tử
- Cử tri: Là người tham gia bỏ phiếu Cử tri có quyền hợp lệ để bỏ phiếu,
đồng thời là người giám sát cuộc bầu cử: kiểm tra xem lá phiếu của mình có được đếmkhông?
Trang 18- Ban điều hành (ĐH): Quản lý các hoạt động bỏ phiếu, trong đó có thiết lập
danh sách cử tri cùng các hồ sơ của mỗi cử tri, quy định cơ chế định danh cử tri
- Ban đăng ký (ĐK): Nhận dạng cử tri và cấp quyền bỏ phiếu cho cử tri, theo
dõi cuộc bầu cử chống lại việc cử tri bỏ phiếu hai lần Có hệ thống ký hỗ trợ
- Ban kiểm tra (KT): Kiểm tra cử tri có hợp lệ không? Nội dung lá phiếu có
hợp lệ không? (Vì là lá phiếu đã mã hóa nên ban kiểm phiếu không biết được lá phiếu cóhợp lệ không, nên cần xác minh tính hợp lệ của lá phiếu trước khi nó chuyển đến hòmphiếu)
- Ban kiểm phiếu (KP): Kiểm phiếu và thông báo kết quả bầu cử Có hệ
thống kiểm phiếu hỗ trợ.
- Hệ thống phân phối khóa tin cậy: Cung cấp khóa ký của ban ĐK, quá trình
mã hóa và giải mã lá phiếu
- Hệ thống ký: Giúp ban ĐK ký vào các định danh cử tri.
- Hệ thống kiểm phiếu: Giúp ban KP tính kết quả cuộc bầu cử.
- Bảng niêm yết công khai (BB): Giúp theo dõi quá trình bầu cử Đây là kênh
liên lạc công khai của tất cả các thành phần tham gia hệ thống bỏ phiếu điện tử
1.3.4 Các giai đoạn bỏ phiếu điện tử
Bỏ phiếu điện tử gồm ba giai đoạn chính: Đăng ký, bỏ phiếu, kiểm phiếu và công bố kết
quả
Chuẩn bị các thành phần kỹ thuật của hệ thống bỏ phiếu cũng như cơ cấu tổchức Ban KP, ban ĐK, ban KT được chỉ định Danh sách các cử tri cũng được thiếtlập Trong bước này, quan trọng nhất là cơ chế định danh người gửi dùng trong quátrình bỏ phiếu của cử tri
Các cử tri thực hiện bỏ phiếu Các cử tri phải có một hình thức định danh tínhhợp lệ của lá phiếu Thêm vào đó, một số kỹ thuật mã hóa cần được áp dụng để bảođảm tính toàn vẹn của lá phiếu
Trang 19 Giai đoạn kiểm phiếu và công bố kết quả:
Ban KP sẽ tính toán kết quả dựa vào các lá phiếu đã thu thập, sau đó công bố kết quả
1.3.5 Các yêu cầu đối với hệ thống bỏ phiếu điện tử
Để hoạt động bỏ phiếu hay bỏ phiếu phát huy đúng tác dụng thì cần đảm bảo hai yêu cầu [2]:
- Tính kiểm tra được: việc kiểm phiếu được kiểm tra một cách công khai và mỗi cử tri đều có thể kiểm tra chắc chắn rằng lá phiếu của mình đã được tính
- Tính tự do trong lựa chọn: mỗi cử tri đều được đảm bảo tuyệt đối quyền lựachọn lá phiếu của mình, không bị ai ép buộc và cũng không thể bán phiếu bầu của mìnhcho bất cứ bên nào
Tuy nhiên, các hệ thống bỏ phiếu truyền thống không đạt được đồng thời haiyêu cầu trên [8] Trong một số cuộc bỏ phiếu, để đảm bảo yêu cầu thứ nhất thìngười ta công khai danh sách ai đã bầu cho ai, vì thế việc kiểm phiếu là hoàn toàncông khai và ai cũng có thể kiểm tra phiếu bầu của mình đã được tính Nhưng, điều
đó lại không đảm bảo quyền hoàn toàn tự do lựa chọn của cử tri: người bầu có thể bịkhống chế buộc phải bầu cho một ứng cử viên hoặc người bầu có thể bán lá phiếucủa mình vì chứng minh được cho người mua thấy mình đã bầu cho ai
Để tránh những hạn chế của việc cử tri bị khống chế hoặc việc mua bán phiếubầu, hầu hết các cuộc bỏ phiếu chọn việc đảm bảo yêu cầu thứ hai bằng cách ẩndanh lá phiều bầu: cử tri đến trung tâm bỏ phiếu, được phát một lá phiếu bầu, chọnứng cử phiên và cho lá phiếu ẩn danh vào thùng phiếu Cử tri do vậy hoàn toàn tự
do lựa chọn và bản thân họ khi ra khỏi phòng bỏ phiếu cũng không thể chứng minh
là mình đã bỏ cho ai và do vậy cũng không bán được phiếu bầu Cách làm này lạikhông thể đảm bảo yêu cầu thứ nhất: một khi lá phiếu đã cho vào hòm phiếu, cử tribuộc phải đặt tin tưởng vào người kiểm phiếu và không có cách nào chắc chắn đượcliệu lá phiếu của mình sẽ được tính và cũng không thể kiểm tra liệu lá phiếu củamình có bị thay đổi
Cả hai tính chất kiểm tra được và tự do trong lựa chọn của một hệ thống bỏphiếu đều rất cơ bản nhưng luôn bị coi là đối ngược nhau và do vậy không thể cùng
Trang 20đạt được Tuy nhiên, các phương pháp mật mã chứng tỏ rằng ta có thể xây dựng các
hệ bỏ phiếu đạt được cả hai yêu cầu trên [9]
Để đồng thời đạt tính kiểm tra được và tính tự do trong lựa chọn, ta phải làmsao kết hợp được cả hai phương pháp bỏ phiếu nêu trên: vừa công bố danh sách cácphiếu bầu để cử tri có thể kiểm tra phiếu của mình đã được tính, vừa đảm bảo sự ẩndanh cho cử tri trong lựa chọn Một cách tự nhiên, các hàm mã hóa được sử dụng để
mã lựa chọn của cử tri nhằm che dấu lựa chọn của cử tri trong phiếu bầu Mặt khác,
để đảm bảo tính bí mật cho việc kiểm phiếu, chìa khóa giải mã phải được giữ kín vàkhông thể chia sẻ với cử tri Từ đó dẫn tới viêc sử dụng các hệ mã hóa khóa côngkhai: khóa để mã hóa là công khai và việc mã hóa lựa chọn được thực hiện dễ dàng
mà không cần biết thông tin bí mật nào, khóa để giải mã được giữ bí mật và vì vậychỉ có những người có thầm quyền mới có thể kiểm phiếu bầu
Đảm bảo an toàn thông tin trong bỏ phiếu và kiểm phiếu điện tử.
1.4.1 Sử dụng kỹ thuật mật mã
1.4.1.1 An toàn thông tin bằng mật mã
Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin
bí mật Mật mã bao gồm: Lập mã và phá mã Lập mã bao gồm hai quá trình: mã hóa
và giải mã [1], [9]
Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạngnhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quátrình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quátrình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đãđược mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải
mã Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trongmôi trường mạng
1.4.1.2 Vai trò của hệ mật mã
Các hệ mật mã phải thực hiện được các vai trò sau:
Trang 21- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText) để đảmbảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin(Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity)
Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phứctạp tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữliệu đã được mã hoá Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau,nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mãhoá khác nhau cho từng ứng dụng cụ thể tuỳ theo yêu cầu về độ an toàn
1.4.1.3 Các thành phần của một hệ mật mã
Một hệ mật là một bộ 5 (P, C, K, E, D) thoả mãn các điều kiện sau [1]:
- P là một tập hợp hữu hạn các bản rõ (PlainText), nó được gọi là không gianbản rõ
- C là tập các hữu hạn các bản mã (Crypto), nó còn được gọi là không gian các bản mã Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của P, với k ∈ K.
- K là tập hữu hạn các khoá hay còn gọi là không gian khoá Đối với mỗiphần tử k của K được gọi là một khoá (Key) Số lượng của không gian khoá phải đủ lớn
để “kẻ địch: không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn)
- Đối với mỗi k ∈ K có một quy tắc mã e K : P → C và một quy tắc giải mã tương ứng d K ∈ D Mỗi e K : P → C và d K : C → P là những hàm mà:
d K (e K (x)) = x với mọi bản rõ x ∈ P.
1.4.1.4 Phân loại hệ mật mã
Có nhiều cách để phân loại hệ mật mã Dựa vào cách truyền khóa có thể phân các hệ mật mã thành hai loại:
Trang 22- Hệ mật đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật dùngchung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu Do đó khoá phải được giữ bí mật tuyệt đối.
- Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai): Hay còngọi là hệ mật mã công khai, các hệ mật này dùng một khoá để mã hoá sau đó dùngmột khoá khác để giải mã, nghĩa là khoá để mã hoá và giải mã là khác nhau Cáckhoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suyđược từ khoá kia Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải
mã phải giữ bí mật
Mã hóa và giải mã bằng khóa bí mật.
Quá trình
mã hóa Bản tin gốc
-
-Khóa bí mật(chỉ
Có người mã hóa và người giải mã biết)
-Quá trình Bản tin gốc giải mã
Hình 1.1 Sơ đồ mã hóa và giải mã bằng khóa riêng
Các hệ thống mã hóa với khóa bí mật còn được gọi là mã hóa bằng khóa riêng,
mã hóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn quá trìnhgiải mã
Có hai loại thuật toán mã hóa bí mật:
- Stream Algorithms/Stream Ciphers: các thuật toán hoạt động trên văn bảnbình thường theo từng bit một
- Block Algorithms/Block Ciphers: các thuật toán hoạt động trên văn bản theo các khối (32 bit, 64 bit, 128 bit, )
Trang 23 Mã hóa và giải mã bằng khóa công khai.
Bản tin gốc
- - -
-Khóa công khai, chỉ dùng để mã hóa (có thể cho mọi người biết)
```
```
Bản tin mã
-
-Quá trình Bản tin gốc giải mã
Hình 1.2 Sơ đồ mã hóa và giải mã bằng khóa công khai
Mã hóa bằng khóa công khai còn gọi là mã hóa bất đối xứng hay mã hóa bằngkhóa chung Sự khác biệt cơ bản giữa một hệ thống mã hóa bằng khóa bí mật với hệthống mã hóa bằng khóa công khai là hệ thống mã hóa khóa công khai dùng haikhóa khác nhau để mã hóa và giải mã Do đó, một bộ mã công khai sẽ bao gồm haikhóa: một khóa dành cho người mã hóa thường được công khai, và khóa còn lạidùng cho người giải mã thường được giữ bí mật Như vậy, hệ thống mã hóa vớikhóa công khai cần có một quá trình sinh ra hai khóa để mã hóa và giải mã thôngđiệp Các khóa này được xem như là một đôi
- Public-key (khóa công khai): được phép công khai mà không phải chịu rủi
ro về an toàn Khóa này được dùng để mã hóa thông điệp
- Private-key (khóa bí mật): không được để lộ Mỗi thông điệp được mã hóa bằng public-key chỉ có thể giải mã bằng một khóa mật thích hợp
Một số thuật toán mã hóa công khai phổ biến: RSA, Diffie-Hellman Exchange Algorithm, Elgamal
Key-Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại:Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời saunăm 1970) Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia
Trang 24làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào cáckhóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòngkhóa và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau).
1.4.1.5 Tiêu chuẩn đánh giá hệ mật mã
Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tính chất sau:
Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:
- Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khoá,công khai thuật toán
- Khi cho khoá công khai eK và bản rõ P thì chúng ta dễ dàng tính được eK(P)
= C Ngược lại khi cho dK và bản mã C thì dễ dàng tính được dK(M)=P Khi khôngbiết dK thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm f: X → Y thì việc tính y=f(x) với mọi x∈ X là dễ còn việc tìm x khi biết y lại là vấn đề khó và nó được gọi là hàm một chiều.
- Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ
Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc
độ mã và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh
Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền
công khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so vớicác hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã
Trang 251.4.2 Đảm bảo tính toàn vẹn trong hệ thống thông tin mật mã bằng chia sẻ khóa
bí mật
1.4.2.1 Kỹ thuật Chia sẻ khóa bí mật (Secret Sharing)
Sơ đồ chia sẻ bí mật không phải là một lĩnh vực mới mẻ của an toàn bảo mậtthông tin, nhưng hứa hẹn sẽ mang đến những ứng dụng rộng khắp, quan trọng nhất
là ứng dụng bỏ phiếu điện tử
Sơ đồ chia sẻ bí mật chính là phương thức dùng đề chia một bí mật ra là mnhiều phần riêng biệt sau đó phân phối tới những người tham gia Trong đó chỉnhững người được chỉ định trước mới có khả năng khôi phục bí mật bằng cách gộpnhững phần thông tin của họ, những người không được chỉ định sẽ không thu đượcbất kỳ thông tin gì về bí mật
Ý tưởng: thông tin quan trọng cần bí mật, không nên trao cho một người nắm
giữ, mà phải chia thông tin đó thành nhiều mảnh và trao cho mỗi người một hay một sốmảnh Thông tin gốc chỉ có thể được xem lại, khi mọi người giữ các mảnh
thông tin đều nhất trí Các mảnh thông tin được khớp lại để được thông tin gốc Yêu cầu: để thực hiện công việc trên, phải sử dụng một sơ đồ gọi là Sơ đồ chia
sẻ bí mật, ta có khái niệm
Khái niệm chia sẻ bí mật: Sơ đồ chia sẻ bí mật dùng để chia sẻ một thông tin
cho m thành viên, sao cho chỉ những tập con hợp thức các thành viên mới có thểkhôi phục lại thông tin bí mật, còn lại không ai có thể làm được điều đó
Mục đích:
- Chia sẻ Thông tin mật thành nhiều mảnh
- Chia sẻ Password, Khoá mật thành nhiều mảnh Mỗi nơi, mỗi người hay mỗi máy tính cất giấu 1 mảnh
Các thành phần của sơ đồ chia sẻ bí mật:
Người phân phối bí mật (Dealer): Là người trực tiếp chia bí mật ra thành nhiềuphần
- Những người tham gia nhận dữ liệu từ Dealer (Participant) ký hiệu P
Trang 26- Nhóm có khả năng khôi phục bí mật (Acess structure): Là tập con của P trong đó có các tập con có khả năng khôi phục bí mật.
1.4.2.2 Ứng dụng của chia sẻ khóa bí mật
- Trong việc giữ khóa két bạc: Không nên trao khoá két bạc cho một ngườiduy nhất Khoá phải được chia nhỏ thành nhiều mảnh và trao cho mỗi thành viên mộtmảnh
- Trong bỏ phiếu điện tử: Không thể tin hoàn toàn vào tất cả các thành viênBan kiểm phiếu Vì vậy, lá phiếu nên chia thành nhiều mảnh và trao cho mỗi Kiểm phiếuviên một mảnh của lá phiếu
- Trong lưu trữ các khóa bí mật: Khoá bí mật và quan trọng không nên lưu trữ tại một Server Nó phải được chia nhỏ và lưu trữ tại nhiều máy trạm
1.4.3 Bảo mật và xác thực bằng chữ ký số
Có thể nói ứng dụng quan trọng nhất của hệ mã hóa công khai là chữ ký số
Nó cung cấp khả năng bảo mật mà các hình thức khác khó có thể có được Chữ ký
số có vai trò tương tự chữ ký tay trong giao dịch số, giúp xác thực bản tin đến từngười gửi hợp pháp trong giao dịch [4] Ngoài ra nó cũng đảm bảo tính toàn vẹn dữliệu (integerity) và chống lại khả năng chối bỏ nguồn gốc (nonrepudiation) củangười gửi Chữ ký số mang một số đặc điểm sau:
- Phải xác minh được người ký và thời gian ký cụ thể
- Phải xác thực được nội dung tại thời điểm ký
- Phải được xác minh bởi bên thứ ba để tránh những tranh chấp xảy ra
Cơ sở hạ tầng chủ yếu để xây dựng hệ thống chữ ký số là các thuật toán mãhóa công khai và hàm băm (sẽ được trình bày trong chương 2)
1.4.3.1 Khái niệm về chữ ký số
Chữ ký số là xâu bit được dùng để xác thực một tài liệu số, đảm bảo người gửikhông thể chối bỏ rằng mình đã gửi bản tin và người nhận không thể giả mạo bảntin hoặc chữ ký [3] Đồng thời, người nhận có thể chứng minh với người khác nộidung bản tin là chính xác và do người gửi ban đầu gửi đến
Trang 27Hệ thống chữ ký số hoạt động dựa trên sự phối hợp giữa bên gửi và bên nhậnthông điệp, nhằm thực hiện đồng bộ hai quá trình tạo và xác minh chữ ký.
1.4.3.2 Hoạt động của chữ ký số
Hoạt động của hệ thống chữ ký số gồm hai quá trình:
Hình 1.3 Hoạt động của hệ thống chữ ký số
Tạo chữ ký số (Digital signature creation):
Đầu vào của quá trình này chính là bản tin cần ký, bằng cách sử dụngkhóa bí mật của người gửi, ta có thể tạo ra chữ ký cho bản tin hiện thời Bản tin gửi
đi bao gồm bản tin ban đầu được ký bằng chữ ký vừa tạo ra
Xác minh chữ ký số (Digital signature verification):
Đây là quá trình sử dụng khóa công khai của người nhận giải để xác thực chữ ký
A/ Quá trình tạo chữ ký
Quá trình tạo chữ ký thực hiện tại bên gửi, gồm hai bước sau đây:
Hình 1.4 Quá trình tạo chữ ký
Trang 28 Tính toán giá trị băm
Bước đầu tiên của quá trình tạo chữ ký là tạo giá trị băm của bản tin cần gửi.Các hàm băm có thể sử dụng là SHA-256, SHA-384, SHA-512…Kết quả thu được
là một message digest có chiều dài cố định, nhỏ hơn rất nhiều lần bản tin ban đầu.Theo tính chất của hàm băm, xác suất để hai bản tin khác nhau có cùng một giá trịbăm là rất nhỏ và có thể bỏ qua Vì vậy nếu giá trị băm của hai bản tin trùng nhauthì bản tin ban đầu cũng trùng nhau (Xem Hình 1.4)
Tính toán chữ ký số
Kết quả băm thu được (message digest) được ký bằng khóa bí mật (privatekey) của bên nhận Kết quả thu được này chính là chữ ký số Các thuật toán tạokhóa có thể sử dụng là RSA (dựa trên bài toán số nguyên tố), Elgamal (dựa trên líthuyết logic rời rạc), ECDSA (dựa trên bài toán logarit trên EC) Chữ ký này đượcgắn vào bản tin ban đầu (ký) và truyền đến người gửi trên môi trường mạng
B/ Quá trình xác thực
Quá trình xác thực gồm các bước sau đây:
Hình 1.5 Quá trình xác thực chữ ký
Tính toán giá trị băm hiện thời
Sau khi nhận được bản tin bao gồm bản tin ban đầu (nói chính xác là bản tin màbên nhận cho là bản tin ban đầu) và chữ ký gửi kèm, bên nhận tiến hành tách riêng haiphần của bản tin ra Phần bản tin ban đầu trở thành đầu vào của thuật toán băm
Trang 29giống với thuật toán băm khi tạo chữ ký số Giá trị băm nhận được gọi là giá trị bămhiện thời vì nó được tính từ bản tin hiện thời.
Tính toán giá trị băm ban đầu
Trong bước thứ hai của quá trình giải mã, chữ ký số đính kèm được giải mãbằng khóa công khai (public key) tương ứng với khóa bí mật (private key) dùng đểtạo chữ ký ở bên gửi Kết quả thu được giá trị băm ban đầu
So sánh giá trị băm hiện thời với giá trị băm ban đầu
Trong bước này ta tiến hành so sánh giá trị băm thu được từ bước 1 và bước
2 của quá trình xác thực
- Nếu hai giá trị băm này trùng nhau: quá trình xác thực thành công, bản tin đãđược ký bằng khóa bí mật tương ứng với khóa công khai khi xác minh, đồng thời bản
tin cũng không bị thay đổi trong quá trình truyền đi
- Nếu hai giá trị băm không trùng nhau: quá trình xác thực thất bại, có haitrường hợp mất an toàn đã xảy ra:
Khóa bí mật của người gửi không được sử dụng khi tạo chữ ký
1.4.3.3 Hàm băm mật mã
Hàm băm (hash function) là một kĩ thuật phục vụ quá trình xác thực Chứcnăng chính của nó là thực hiện ánh xạ các bản tin có chiều dài khác nhau thành mộtmiếng băm có kích thước cố định Miếng băm mới tạo ra thường có kích thước nhỏhơn rất nhiều so với bản tin ban đầu
Một giá trị miếng băm h được sinh ra bởi hàm băm H có dạng: h= H (M) trongđó: M là bản tin có chiều dài tùy ý, h là giá trị băm chiều dài cố định
Các yêu cầu đối với hàm băm
- Hàm H có thể áp dụng cho các khối dữ liệu với kích thước tùy ý
- Đầu ra của hàm H có độ dài xác định
- Việc tính giá trị H(x) đủ đơn giản để việc cài đặt là khả thi đối với cả phần mềm và phần cứng
Trang 30- Hàm H là hàm một chiều, nghĩa là với x cho trước thì H(x) xác định nhưng với h cho trước thì việc tính x là cực kỳ khó khăn.
- Với hai giá trị đầu vào x ≠ y thì H(x) ≠ H(y)
Hiện nay, một số kỹ thuật băm được sử dụng phổ biến như: 256,
SHA-384, SHA-512
Kết luận chương 1
Qua nội dung chương 1, có thể thấy phương pháp bỏ phiếu và kiểm phiếuđiện tử khẳng định được ưu việt vượt trội so với phương pháp truyền thống và là xuhướng tất yếu của tương lai Hệ thống bỏ phiếu, kiểm phiếu điện tử cũng bao gồmcác thành phần và cũng phải trải qua các giai đoạn như bỏ phiếu, kiểm phiếu thôngthường
Khi áp dụng bỏ phiếu điện tử, ta phải đối mặt với vấn đề an toàn thông tin.Tuy nhiên, nhờ sự trợ giúp của kỹ thuật mật mã và chữ ký số, bỏ phiếu điện tử cóthể hạn chế thấp nhất các sai nhầm mang yếu tố con người khi đo lường kết quảkiểm phiếu như: đảm bảo sự ẩn danh trong lá phiếu của cử tri (tránh việc cử tri bịkhống chế) bằng mật mã, ngăn ngừa việc mua bán phiếu bầu; tránh gian lận trongban kiểm phiếu bằng sơ đồ chia sẻ khóa bí mật; xác thực cử tri bằng chữ ký số Cơ
sở toán học cho các phương pháp mật mã, các biện pháp an toàn thông tin được luậnvăn lựa chọn hướng đến sẽ được trình bày chi tiết trong chương 2
Trang 31CHƯƠNG 2
SỬ DỤNG MẬT MÃ ĐẢM BẢO AN TOÀN THÔNG TIN
TRONG KIỂM PHIẾU ĐIỆN TỬ
Giới thiệu chương
Mục tiêu của luận văn là áp dụng mật mã và chữ ký số để đảm bảo an toàn thôngtin cho việc triển khai phiếu hỏi điện tử tại trường PTTH chuyên Hạ Long Việc triển
khai phiếu hỏi điện tử phải đảm bảo yêu cầu bí mật, toàn vẹn, xác thực của lá phiếu.
- Bí mật tức là ngoài học sinh bỏ phiếu thì chỉ có người kiểm phiếu biết
được kết quả mà không cần biết ai cụ thể danh tính của người bỏ phiếu cũng nhưnội dung cụ thể của lá phiếu Hệ mã hóa khóa công khai Elgamal cho phép thựchiện điều này thông qua tính đồng cấu của nó [10]
- Toàn vẹn là đảm bảo lá phiếu không bị thay đổi khi kiểm phiếu Điều này
có thể thực hiện được khi áp dụng sơ đồ chia sẽ khóa bí mật Shamir [11]
thể nhận ra lá phiếu của mình Sử dụng chữ ký số Elgamal cho phép thực hiện điều
đó [3]
Chính vì vậy, chương 2 sẽ đi sâu vào phân tích chi tiết các kỹ thuật liên quan.Phần đầu của chương sẽ trình bày cơ sở toán học chung của mật mã Hai bài toán bỏphiếu thường gặp là bỏ phiếu dạng có/không và bỏ phiếu chọn L/K [2] Vì vậy, cácphần tiếp theo của luận văn sẽ trình bày chi tiết về việc lựa chọn hệ mã hóa côngkhai Elgamal để mã hóa phiếu trả lời cho hai dạng câu hỏi này Tiếp đó, luận văn đềcập đến việc tránh gian lận cần áp dụng kỹ thuật chia sẻ khóa bí mật Shamir kết hợpvới mật mã Elgamal Phần cuối của chương trình bày việc xác định người dùngbằng chữ kỹ số Elgamal
Trang 32Cơ sở toán học của mật mã
2.2.1 Nhóm, vành và không gian Zp
Nhóm là cấu trúc bao gồm tập G và toán tử hai ngôi ∗, trường G Với a, b ∈ G, a b ∈ G được định nghĩa như sau:
a ∗ (b∗ c) = (a ∗b) ∗c với mọi a, b, c ∈ G
Tồn tại e ∈ G thoả mãn e ∗a=a ∗e=a với mọi a ∈ G, (e gọi là phần tử trung hoà).
Với mỗi a ∈ G, tồn tại một phần tử b ∈ G thoả mãn b∗ a=a∗ b=e (b là duy nhất và được gọi là phần tử nghịch đảo của a).
Ký hiệu <G, >là nhóm nhân và <G, +> là nhóm cộng Trong nhóm cộng,phần tử trung hoà là 0 và phần tử nghịch đảo của a là –a Trong nhóm nhân, phần tửtrung hoà là 1 và phần tử nghịch đảo của a la a-1
<G, > được gọi là nhóm abel nếu a∗ b=b∗ a với mọi a, b thuộc G.
Nếu <G, > là nhóm hữu hạn thì số phần tử của <G, > được gọi là bậc của G
và ký hiệu là |G|
Bậc của phần tử a ∈ G là số nguyên dương nhỏ nhất n thỏa mãn an = 1 Ở đây,trong nhóm nhân an được hiểu là a.a a (n lần), còn trong nhóm cộng là a+a+ +a (nlần) Trong nhóm nhân với mọi phần tử thuộc nhóm thì n luôn tồn tại
Nếu a G có bậc m thì H = { ak | k Z } là nhóm con của G và có bậc m
Nếu G có một phần tử a có bậc n = |G| thì G = { a k | k Z} và G được gọi là mộtnhóm cylic, a được gọi là phần tử sinh của G
Ví dụ, tập hợp Zn = {0, 1, 2,…, n - 1} là một nhóm cylic bậc n với toán tửcộng module n
Định nghĩa: Tập hợp R được gọi là vành nếu trên đó có hai phép toán hai ngôi
mà ta ký hiệu là "+" (phép cộng) và "." (phép nhân) thỏa mãn các điều kiện sau:
R là một nhóm giao hoán đối với phép cộng, nghĩa là:
Trang 33- Phép cộng có tính kết hợp: x, y, z R : ( x y ) z x ( y z)
- Phép cộng có phần tử trung hòa, nghĩa là: 0 R, x R: 0 x x 0 x
- Mọi phần tử của R có phần tử đối: x, x' :x x' x'x
0
- Phép cộng có tính giao hoán, nghĩa là: x, y R:x y y x
- Phép nhân có tính phân phối với phép cộng, nghĩa là:
Phép nhân có tính kết hợp, nghĩa là x, y, zR: (x y).z x.( y.z)
Phép nhân có phần tử đơn vị, nghĩa là: 1R,x R:1x x1 x
2.2.2 Bài toán logarit rời rạc
Định nghĩa: giả sử G là một nhóm cyclic hữu hạn có n phần tử Chúng ta kýhiệu phép toán của G theo kiểu nhân Giả sử b là một phần tử sinh của G khi đómọi phần tử g G có thể viết dưới dạng g = bk với một số nguyên k nào đó Hơnnữa, hai số nguyên có cùng tính chất đó với g là đồng dư theo module n [1]
Ta định nghĩa một hàm: logb : G Z n (trong đó Zn ký hiệu cho vành các sốnguyên modulo n) theo g là lớp các số nguyên k modul n Hàm này là một đồng cấunhóm, được gọi là logarit rời rạc theo cơ số b
Công thức đổi cơ số giống như logarith thông thường: Nếu c là một phần tửsinh khác của G, thì: logc (g ) logc (b).logb (g)
Cho p là một số nguyên tố Xét nhóm nhân các số nguyên module p: với phépnhân module p Z*p {1,2, p}
Nếu ta tính luỹ thừa bậc k của một số trong nhóm rồi rút gọn theo module p thì
ta được một số trong nhóm đó Quá trình này được gọi là luỹ thừa rời rạc modulo p.Chẳng hạn với p=17, lấy a=3, k=4 ta có: 34
81 13(mod17)Lôgarit rời rạc là phép tính ngược lại, biết: 3k 13(mod17) hãy tìm k
Hiện nay, chưa có thuật toán hiệu quả nào để tính logarit rời rạc tổng quát
Có nhiều thuật toán phức tạp, thường sinh ra từ những thuật toán tương tự chobài toán phân tích thừa số nguyên Chúng chạy nhanh hơn các thuật toán thô sơ,nhưng vẫn còn chậm hơn so với thời gian đa thức
Trang 34Logarit rời rạc là bài toán khó (chưa biết một thuật toán hiệu quả nào), trongkhi bài toán ngược luỹ thừa rời rạc lại không khó (có thể sử dụng thuật toán bìnhphương và nhân) Tình trạng này giống như tình hình giữa bài toán thừa số nguyên
và phép nhân các số nguyên Chính vì vậy, chúng đều có thể dùng để xây dựng cấutrúc cho một hệ mật mã
Người ta thường chọn nhóm G trong mật mã logarit rời rạc là nhóm cyclic(Zp)× chẳng hạn như mật mã ElGamal, Trao đổi khoá Diffie-Hellman, và Chữ ký sốElgamal
Ngoài ra còn có mật mã sử dụng lôgarit rời rạc trong nhóm con cyclic của cácđường elliptic trên trường hữu hạn gọi là mật mã đường cong elliptic
Sử dụng hệ mã hóa khóa công khai Elgamal trong bỏ phiếu điện tử
2.3.1 Tổng quan về hệ mật mã khóa công khai Elgamal
Hình 2.1 Hệ mật mã công khai
Hệ mật Elgamal hình thành trên cơ sở bài toán logarith rời rạc Được đề xuấtnăm 1984 Sau đó chuẩn chữ ký điện tử của Mỹ và Nga hình thành trên cơ sở hệmật mã này [10][11]
Trang 35Hình thành khóa:
Sơ đồ của hệ mã công khai Elgamal được cho ở Hình 2.1 Giả sử Alice và Bob
muốn trao đổi thông tin mật với nhau bằng hệ mật Elgamal Thì trước tiên Alicethực hiện qúa trình hình thành khóa như sau [10]:
1 Chọn số nguyên tố đủ lớn p có chiều dài là k sao cho bài toán logarithm trong
Z plà khó giải
2 Chọn g Z *
p là phần tử nguyên thủy (phần tử sinh) Chọn a là số ngẫu nhiên sao cho 1<a<p.
3 Tính giá trị h thỏa mãn công thức: h g a mod p
Khóa mật là a, còn khóa công khai là 3 số (g,p,h).
Quá trình mã hóa bản tin T:
Chúng ta kiểm chứng lại quá trình giải mã là đúng như sau: