Tải bản đầy đủ (.docx) (56 trang)

NGHIÊN CỨU CƠ CHẾ CHỮ KÝ MÙ TRÊN CƠ SỞ THUẬT TOÁN ELGAMAL CHO HỆ THỐNG BẦU CỬ ĐIỆN TỬ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1004.54 KB, 56 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU CƠ CHẾ CHỮ KÝ MÙ
TRÊN CƠ SỞ THUẬT TOÁN ELGAMAL
CHO HỆ THỐNG BẦU CỬ ĐIỆN TỬ
Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01

Sinh viên thực hiện:
Nguyễn Văn Dương
Lớp: AT8C
Người hướng dẫn 1:
TS. Hoàng Đức Thọ
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã
Người hướng dẫn 2:
Ks. Nguyễn Thị Hồng Hà
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2016
MỤC LỤC


2


DANH MỤC HÌNH VẼ



DANH MỤC BẢNG

3


LỜI CẢM ƠN
Em xin chân thành cảm ơn T.s Hoàng Đức Thọ và K.s Nguyễn Thị
Hồng Hà đã ân cần chỉ bảo, nhiệt tình hướng dẫn, cung cấp những tài liệu,
giúp đỡ em trong quá trình học tập và hoàn thành đồ án này.
Em xin cảm ơn các thầy cô giáo trong khoa An toàn Thông tin cũng
như các thầy cô trong khoa Công Nghệ Thông tin đã dạy dỗ em trong suốt
quá trình học tập tại trường Học viện Kỹ thuật Mật mã. Sự đóng góp của quý
Thầy Cô đã giúp cho em hoàn thành tốt đồ án tốt nghiệp
Hà Nội tháng 6 năm 2016
Sinh viên

Nguyễn Văn Dương

4


LỜI MỞ ĐẦU

Vào năm 2000, cuộc bỏ phiếu tranh cử vị trí tổng thống Hợp chúng
quốc Hoa Kỳ giữa 2 ứng cử viên là Al Gore và George Bush, do có rất nhiều
tranh cãi liên quan đến kết quả kiểm phiếu kéo dài cho tới nhiều năm sau. Và
khi diễn ra cuộc bầu cử lập pháp của Liên Bang Nga, đã xuất hiện một khẩu
hiệu “For Fair Elections” (tạm dịch là “Vì những cuộc bầu cử minh bạch”)
với những công bố về các vấn đề ảnh hưởng đến kết quả bầu cử như là: Gian

lận, giả mạo kết quả bầu cử thành phần, cản trở giám sát viên trái phép, vận
động bầu cử bất hợp pháp, bỏ phiếu nhiều lần, hoặc bị áp lực từ các mối đe
dọa bạo lực.
Mặc dù có rất nhiều tình huống về việc tham nhũng, gian lận, sai sót
và lừa đảo liên quan đến quá trình bỏ phiếu thông thường, nhưng lá phiếu
bằng giấy (paper ballots) vẫn luôn là sự lựa chọn phổ biến cho các cuộc bầu
cử cho tới ngày nay. Tuy nhiên, cũng đã có nhiều quốc gia tiên phong trong
việc cải cách hệ thống bầu cử, kiểm phiếu phổ thông bằng hệ thống bầu cử
điện tử (e-Voting) để nhằm minh bạch hóa và tăng mức độ an toàn, an ninh
trong quá trình bầu cử.
Công nghệ mới phát triển việc bỏ phiếu, có thể tự động hoá. Việc bỏ
phiếu tự động cần phải được bảo mật và an toàn như những cuộc bầu cử
truyền thống (đặc biệt là bí mật riêng của lá phiếu). Bỏ phiếu điện tử trực
tuyến qua Internet có lợi hơn rất nhiều. Các cử tri có thể bỏ phiếu từ bất cứ
nơi đâu. Việc bỏ phiếu thuận tiện làm gia tăng số lượng cử tri.
Việc nghiên cứu để áp dụng bầu cử điện tử vào hệ thống bầu cử là vô
cùng quan trọng, đặc biệt trong thời điểm hiện tại khi mà chúng ta đang thực
hiện chính phủ điện tử. Do đó em chọn đề tài: “Tìm hiểu hệ thống bầu cử điện
tử và các giải pháp đảm bảo an toàn cho hệ thống bầu cử điện tử”.
Đồ án sẽ nghiên cứu nội dung của một thuật toán chữ ký mù trên cơ
sở thuật toán của Elgamal; qua đó phát triển giao thức bầu cử điện tử dựa trên
cơ sở thuật toán ký mù Elgamal.
Nội dung đồ án bao gồm 4 chương :
5


Chương I: Hệ thống bầu cử điện tử
Chương II: Cơ sở lý thuyết mật mã
Chương III: Bầu cử điện tử dựa trên cơ chế chữ ký mù Elgamal
Chương IV: Mô phỏng hệ thống bầu cử điện tử.


6


CHƯƠNG I. HỆ THỐNG BẦU CỬ ĐIỆN TỬ
1.1

Giới thiệu về bầu cử

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. 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 đó.
Một cuộc bầu cử thành công phải bả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.
Phân loại bầu cử:
Cho đến nay các cuộc bỏ phiếu vẫn được thực hiện theo cách truyền
thống, tuy nhiê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ực hiện “Chính phủ điện tử” thì việc “bầu cử điện tử” thay
thế phương thức truyền thống là điều sẽ diễn ra trong tương lai gần. Có thẻ
phân loại các cuộc bầu cử như hình 1.1 dưới đây:

Hình 1. 1: Phân loại bầu cử
7



Theo đó, bầu cử có thể chia làm hai loại chính là bầu cử trên giấy và
bầu cử điện tử. Bầu cử trên giấy có thể sử dụng lá phiếu giấy thông thường
hoặc sử dụng thẻ đục lỗ; mặc dù phương pháp sử dụng thẻ đục lỗ có thể sử
dụng thiết bị điện tử trong giai đoạn kiểm đếm tuy nhiên vẫn còn rất thô sơ và
không được xếp vào bầu cử điện tử.
Bầu cử điện tử có thể thực hiện bằng 2 cách là bầu cử tại địa điểm
bầu cử sử dụng máy bầu cử điện tử đặt tại địa điểm bầu cử truyền thống
hoặc phi truyền thống như thư viện, siêu thị… và thực hiện bầu cử qua
internet hay còn gọi là 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 di động…
nó cũng được gọi là bỏ phiếu điện tử.
1.2

Một số hệ thống bầu cử điện tử hiện có

1.2.1.
Lịch sử máy bầu cử trên thế giới
a) Đục lỗ thẻ
Với hệ thống đục lỗ thẻ, lá phiếu sẽ được làm trên những chiếc thẻ
hoặc chiếc thẻ được gắn vào một bộ phận trong lá phiếu. Trong hệ thống này,
cử tri sẽ được ban bầu cử cung cấp thiết bị đục lỗ, sau đó cử tri sẽ bấm lỗ bên
cạnh sự lựa chọn của mình trên các phiếu bầu giấy. Sau khi bỏ phiếu cử tri có
thể quét trực tiếp thẻ của mình vào hệ thống máy tính tại các điểm bỏ phiếu
hoặc đưa thẻ vào các thùng phiếu.
Biểu quyết đục lỗ trên thẻ có nguồn gốc từ những năm 1980, và nhà
phát minh tiếp tục phát triển và nghiên cứu trong những năm sau đó. Hai loại
đục lỗ thẻ phổ biến được sử dụng ở Mỹ là thẻ “Votomatic” và thẻ “Datavote”.
Với thẻ Votomatic, các vị trí để đục lỗ là các số. Trên thẻ chỉ được in thông tin
số lượng các lỗ. Danh sách các ứng cử viên và hướng dẫn đục lỗ in trong tập

riêng biệt. Với thẻ Datavote, tên của các ứng cử viên được in trên lá phiếu,
bên cạnh vị trí các lỗ được đục. Hệ thống Votomatic đã rất thành công.
Đến năm 1996, một số biến thể của hệ thống đục lỗ thẻ đã được cử tri
đăng kí sử dụng tại Hoa Kì. Tuy nhiên đây cũng là hình thức bỏ phiếu đã gây
nhiều tranh cãi trong việc kiểm phiếu của cuộc bầu cử tổng thống Mỹ năm
2000 tại Florida. Do hậu quả của trường hợp này, các thiết bị đục lỗ thẻ cũng
dần bị loại bỏ.
b) Hệ thống quét quang học
8


Hệ thống quét quang học (marksense) là thiết bị quang học kết hợp
phần cứng và phần mềm máy tính chuyên dụng. Các thiết bị phần cứng chụp
ảnh và phần mềm chuyển đổi hình ảnh vào máy. Cử tri sử dụng một máy
chuyên dụng tại các trạm để đọc được lá phiếu cho thẻ bỏ phiếu của mình, và
tên của ứng cử viên được in trên thẻ đó. Cạnh mỗi ứng cử viên, các biểu
tượng được in ra chẳng hạn một hình chữ nhật, hình tròn hoặc mũi tên không
đầy đủ. Cử tri lựa chọn ứng cử viên nào thì đánh dấu trực tiếp vào các hình
chữ nhật hoặc hình tròn thích hợp hoặc hoàn thành các mũi tên trên lá phiếu.
Sau khi bỏ phiếu cử tri có thể quét trực tiếp thẻ của mình vào hệ thống
máy tính tại các điểm bỏ phiếu hoặc đưa thẻ vào các thùng phiếu. Các thiết bị
máy tính sẽ tổng hợp kết quả và lưu lại thông tin cá nhân của cử tri vào cơ sở
dữ liệu.
c) Thiết bị điện tử ghi nhận trực tiếp (DRE – Direct-recording Electronic)
Vào cuối những năm 1990, công nghệ máy tính ngày càng tinh vi hơn.
Nó dẫn đến sự phát triển gần đây nhất trong lịch sử hệ thống bầu cử, đó chính
là thiết bị điện tử ghi nhận trực tiếp - DRE. Hệ thống DRE ngày càng được
mở rộng hơn, tại Hoa Kì và các nước khác tỉ lệ cử tri sử dụng các thiết bị
DRE để bỏ phiếu ngày càng tăng. Với hệ thống này, cử tri đưa lá phiếu của họ
trực tiếp vào một thiết bị điện tử. Trong thiết bị đó có màn hình cảm ứng được

vi tính hóa giống máy ATM trong ngân hàng.
Trường hợp cho phép cử tri ghi nhận lựa chọn trên các lá phiếu, hệ
thống cung cấp một bàn phím chữ cái để cử tri có thể đổi sang ghi trên lá
phiếu.
Với hệ thống DRE cử tri không cần bỏ phiếu giấy. Dữ liệu bầu cử được lưu
trữ trên các thiết bị điện tử, trên thẻ thông minh hoặc ổ cứng máy tính, mục
đích của việc này để sao lưu và xác nhận kết quả. Sau khi bỏ phiếu, cử tri đặt
thẻ thông minh trong một thùng phiếu. Thẻ thông minh được sử dụng như
một thẻ dự phòng khi bản ghi trên các đĩa cứng bị lỗi, hoặc như một cách để
kiểm tra các dữ liệu được ghi trên đĩa cứng.
Khi cuộc bầu cử kết thúc, dữ liệu từ các điểm bỏ phiếu được tổng hợp
lại trên một máy tính trung tâm để tính toán tổng số phiếu bầu. Kể từ những
9


năm 1990, điện thoại cũng được sử dụng như một loại hệ thống bầu cử DRE.
Hệ thống DRE có thể in ra lá phiếu giấy để cử tri xác nhận trước khi họ bỏ
phiếu.
1.2.2. Hệ thống bầu cử điện tử Estonia
a) Giới thiệu
Một số quốc gia đã thử nghiệm với bầu cử điện tử, nhưng không một
quốc gia nào có mức độ và quy mô lớn như Estonia. Bỏ phiếu điện tử ở
Estonia đã được giới thiệu lần đầu trong cuộc bầu cử địa phương năm 2005,
khi hơn 9.000 cử tri bầu cử thông qua Internet (tương ứng với khoảng 2% số
cử tri tham gia). Ngày nay, bỏ phiếu điện tử đã được thực hiện bảy lần ở
Estonia: trong các cuộc bầu cử địa phương vào tháng 10 năm 2005, các cuộc
bầu cử quốc hội tháng 3 năm 2007, các cuộc bầu cử Nghị viện châu Âu trong
tháng 6 năm 2009 và tháng 5 năm 2014, các cuộc bầu cử địa phương vào
tháng Mười năm 2009, các cuộc bầu cử quốc hội tháng 3 2011 và cuộc bầu cử
địa phương vào tháng Mười năm 2013. Tính đến năm 2013, mã nguồn của

phần mềm bầu cử điện tử đã được công bố tại: />Tuy nhiên, hệ thống này còn gây nhiều tranh cãi. An ninh hệ thống đã
được các nhà nghiên cứu đặt ra hàng loạt các câu hỏi, sự minh bạch không
đầy đủ để các quan sát viên bên ngoài thiết lập được sự toàn vẹn của kết quả.
b) Cơ sở hệ thống
Trong cuộc bầu cử năm 2013, bầu cử điện tử diễn ra trong bảy ngày,
từ 10-16/10, và chính thức là ngày 20/10. Theo số liệu được công bố thì
133808 phiếu bầu được bỏ trực tuyến, tương ứng với 21,2% số cử tri tham
gia .
• Chứng minh thư điện tử
Chứng minh thư điện tử (thẻ ID) của cử tri Estonia là thẻ thông minh
với chức năng mã hóa. Với việc sử dụng đầu đọc thẻ và phần mềm máy
khách, Estonia đã cóthể xác thực đến các trang web và tạo chữ ký ràng buộc
pháp lý về tài liệu. Các thẻ được sử dụng phổ biến cho ngân hàng trực tuyến
và truy cập vào các dịch vụ chính phủ điện tử. Trong hệ thống bầu cử điện tử,
cử tri sử dụng thẻ của mình để xác thực đến máy chủ và ký phiếu của họ.
Mỗi thẻ chứa hai cặp khóa RSA, một để xác thực và một để làm chữ
ký số. Thẻ không cho phép tạo ra các khóa riêng, vì vậy tất cả các phép mã
hóa được thực hiện trong nội bộ. Để tăng tính an toàn mỗi khóa được gắn với
một mã PIN. Estonia cũngcó thể sử dụng điện thoại di động với thẻ SIM đặc
10


biệt để thẩm định và ký kết thông qua một hệ thống Mobile-ID. Trong cuộc
bầu cử năm 2013, 9% phiếu bầu trực tuyến đã được bỏ bằng phương pháp
này.
• Cơ sở hạ tầng máy tính phục vụ bầu cử điện tử
Phần lớn mã nguồn máy chủ của hệ thống bỏ phiếu điện tử được công
bố trên một kho GitHub từ 2-3 tuần trước khi diễn ra cuộc bầu cử. Các cơ sở
hạ tầng máy chủ được cấu hình công khai một tuần trước khi cuộc bầu cử và
bao gồm bốn máy:

Máy chủ chuyển tiếp lá phiếu (Vote Forwarding Server - VFS /
HES): VFS (hoặc HES) là các máy chủ duy nhất có thể truy cập công khai.
Nó chấp nhận các kết nối HTTPS từ các phần mềm máy khách, xác minh đủ
điều kiện tham gia bỏ phiếu và như một máy trung gian để các máy chủ lưu
trữ lá phiếu trong kì cuối của giai đoạn bỏ phiếu.
Máy chủ lưu trữ lá phiếu (Vote Storage Server - VSS / HTS): Các
VSS là một máy chủ phụ trợ mà cơ quan chức năng đã ký kết, các lá phiếu
được mã hóa trong khoảng thời gian bình chọn trực tuyến. Khi nhận được một
phiếu bầu từ các VFS, nó xác nhận phiếu bầu có được định dạng chính xác
không và xác minh chữ ký số của cử tri bằng cách sử dụng một thêm máy chủ
OCSP.
Máy chủ nhật kí (Log server): máy chủ này chỉ được đăng nhập nội
bộ, và nó có trách nhiệm thu thập các sự kiện và số liệu thống kê từ các VFS
và VSS. Các mã nguồn và thiết kế không được công khai, nó có thể được truy
cập từ xa bởi các nhân viên bầu cử.
Máy kiểm phiếu (VCS / HLR - Vote Counting Server): Các VCS
tuyệt đối không được kết nối với mạng Internet và nó chỉ được sử dụng trong
giai đoạn cuối cùng của cuộc bầu cử. Các nhà chức trách sử dụng một đĩa
DVD để sao chép các lá phiếu đã được mã hóa (không chứa chữ ký của cử tri)
từ VSS. Các VCS được gắn vào một mô-đun bảo mật phần cứng (HSM) có
chứa khóa riêng bầu cử. Nó sử dụng HSM để giải mã phiếu, đếm chúng và
đưa ra kết quả chính thức cuối cùng.

11


1.2.3. Hệ

thống bầu cử điện tử Israel


a) Giới thiệu
Israel đang chuẩn bị để chuyển đổi từ một hệ thống lá phiếu giấy
truyền thống sang một hệ thống bỏ phiếu điện tử. Trong năm 2007, chương
trình đã được thử nghiệm thí điểm ở một số cuộc bầu cử thành phố ở Israel.
Hệ thống bầu cử Israel được đề xuất chạy trên một hệ thống bỏ phiếu trong đó
lá phiếu sử dụng tính năng giống thẻ RFID (Radio Frequency Identification Công nghệ nhận dạng đối tượng bằng sóng vô tuyến). Sự mới lạ trong hệ
thống này là thay vì sử dụng các lá phiếu giấy, số phiếu trong hệ thống đề
nghị được ghi nhận trên thẻ thông minh không tiếp xúc.
Để bỏ phiếu, các cử tri sử dụng một thiết bị đầu cuối máy điện toán để
ghi nhận sự lựa chọn của họ vào một thẻ thông minh không tiếp xúc, và sau
đó gửi thẻ này vào thùng phiếu. Bằng cách mã hóa các lá phiếu, hệ thống
nhằm bảo vệ sự riêng tư và tính xác thực của các phiếu bầu trong khi đó các
phiếu vẫn có thể được tính bằng tay.
Tuy nhiên vấn đề an ninh chưa thuyết phục, có rất nhiều câu hỏi được
đưa ra:
Người khởi tạo những thẻ thông minh được sử dụng là ai?
Phần cứng gì được cài đặt trên mỗi thẻ thông minh?
Các thuật toán được thực hiện trên mỗi thẻ thông minh là gì?
Phần mềm nào các máy tính tại các điểm bỏ phiếu chạy?
Mã chạy bởi các máy là gì?
Điều chúng ta biết chắc chắn là hệ thống là hoàn toàn dựa trên phần
mềm, và không có bất kỳ thành phần "vật lý". Đây có thể là một lỗ hổng trong
thiết kế của hệ thống.
b) Hệ thống RFID
Radio Frequency Identification (RFID) là công nghệ nhận dạng đối
tượng bằng sóng vô tuyến. Hai thiết bị này hoạt động thu phát sóng điện từ
cùng tần số với nhau. Các tần số thường được sử dụng trong hệ thống RFID là
125Khz hoặc 900Mhz Cấu tạo: Một thiết bị hay một hệ thống RFID được cấu
tạo bởi hai thành phần chính là thiết bị đọc (reader) và thiết bị phát mã RFID
có gắn chip hay còn gọi là tag. Thiết bị đọc được gắn antenna để thu-phát

12


sóng điện từ, thiết bị phát mã RFID tag được gắn với vật cần nhận dạng, mỗi
thiết bi RFID tag chứa một mã số nhất định và không trùng lặp nhau.
Thiết bị RFID reader phát ra sóng điện từ ở một tần số nhất định, khi
thiết
bị
RFID tag trong vùng hoạt động sẽ cảm nhận được sóng điện từ này và thu
nhận năng lượng từ đó phát lại cho thiết bị RFID Reader biết mã số của mình.
Từ đó thiết bị RFID reader nhận biết được tag nào đang trong vùng hoạt
động.
c) Hệ thống bầu cử điện tử Israel
• Các thành phần của hệ thống
Mỗi trạm bỏ phiếu bao gồm các yếu tố sau :
- Một thiết bị đầu cuối để bỏ phiếu là một máy tính xách tay cùng với một đầu
đọc thẻ thông minh không tiếp xúc. Việc bỏ phiếu ghi nhận hai việc: Đầu tiên,
cử tri bỏ phiếu được ghi vào lá phiếu. Thứ hai, tổng số phiếu bầu được cập
nhật ngay lập tức và tổng này được ghi vào một thẻ thông minh tiếp xúc được
cắm vào thiết bị.
- Một thiết bị đầu cuối để xác thực là một máy tính xách tay cùng với một đầu
đọc thẻ thông minh không tiếp xúc. Thiết bị đầu cuối này chỉ có khả năng đọc
lá phiếu. Các cử tri đặt lá của mình trên thiết bị đầu cuối này để xác thực lá
phiếu của mình đã được ghi nhận chính xác chưa.
- Một Tập hợp các phiếu trắng được lấy theo form bảo mật của thẻ thông minh
không tiếp xúc.
- Một phòng bỏ phiếu cho phép các cử tri bỏ phiếu trong sự riêng tư.
- Một thùng phiếu chứa các lá phiếu đã của cử tri (chứa các thẻ thông minh
không tiếp xúc). Các hòm phiếu thường được làm ra từ những tấm bìa cứng,
được làm trong ngày bầu cử.

- Ủy ban bầu cử địa phương thường bao gồm ba thành viên tin tưởng lẫn
nhau do các bên tham gia trong các cuộc bầu cử đề xuất.
- Một thiết bị đầu cuối chứa danh sách cử tri đăng ký tham gia bỏ phiếu
được sử dụng bởi các ủy ban bầu cử địa phương để xác minh rằng mỗi cử
tri bỏ phiếu là đủ điều kiện tham gia bỏ phiếu và chưa bỏ phiếu trước đó.
• Quá trình bỏ phiếu

13


Quá trình bỏ phiếu thực tế được minh họa trong hình dưới đây, và
được thực hiện theo các bước sau:
(1) Cử tri đăng kí bỏ phiếu: Cử tri mang thẻ ID của mình đăng kí với
ủy ban bầu cử, ban bầu cử sẽ xác nhận xem cử tri có đủ điều kiện bỏ phiếu
hay không bằng cách sử dụng thiết bị đầu cuối chứa danh sách các cử tri tham
gia bỏ phiếu để xác thực. Nếu thỏa mãn điều kiện, ban bầu cử sẽ giữ lại thẻ
ID của họ và cung cấp cho cử tri một lá phiếu trắng (thẻ thông minh không
tiếp xúc).
(2) Cử tri vào phòng bỏ phiếu, đặt lá phiếu của mình vào đầu đọc đã
kết nối với các thiết bị đầu cuối để bỏ phiếu. Cử tri ghi lại sự lựa chọn của
mình qua một giao diện màn hình cảm ứng. Một khi các cử tri đã chắc chắn
với lựa chọn của mình, hệ thống sẽ ghi lại bằng điện tử cho lá phiếu của họ.
Việc cập nhật tổng số phiếu bầu được tiến hành song song, nó được ghi vào
một thẻ thông minh nhúng trong các máy bỏ phiếu. Các cử tri được phép thay
đổi lựa chọn của mình và cập nhật nhiều lần lá phiếu của mình.
(3) Để xác minh rằng lá phiếu của mình đã được ghi nhận chính xác,
cử tri có thể đặt lá phiếu của mình vào một đầu đọc kết nối với một thiết bị
đầu cuối xác thực, thiết bị này sẽ hiển thị lên bình chọn của cử tri. Các thiết bị
đầu cuối xác thực chỉ có khả năng đọc phiếu bầu tại trạm cụ thể này.
(4) Sau khi đã quyết định lựa chọn của mình cử tri bỏ lá phiếu của họ

vào thùng phiếu.
(5) Sau khi bỏ phiếu xong, ban bầu cử trả về thẻ ID cho cử tri.

14


Hình 1. 2: Hệ thống bỏ phiếu Israel
(6) Vào cuối ngày, các ủy ban bầu cử địa phương lấy ra các thông tin
trên thẻ thông minh từ các thiết bị đầu cuối có quyền biểu quyết và cung cấp
nó cho ủy ban bầu cử trung ương. Ban bầu cử trung ương thu thập thẻ trên cả
nước để kiểm phiếu và tính toán kết quả bầu cử sơ bộ toàn quốc.
(7) Sau khi kết quả sơ bộ được công bố, Ủy ban bầu cử đếm bằng tay
tất cả các phiếu trong các thùng phiếu. Kết quả đếm bằng tay được ưu tiên
hơn trên các kết quả đếm sơ bộ của máy tính. Nếu việc đếm tay và bằng máy
không phù hợp trong một tỷ lệ nhất định (đề nghị 30%), tất cả các lá phiếu tại
trạm này đều bị loại trừ. Bất kỳ việc tái kiểm phiếu nào cũng sẽ được thực
hiện đối với các thẻ thông minh trong các thùng phiếu.
d) Các tính năng an ninh của hệ thống
Đề án e-Voting Israel được thiết kế với một sự nhấn mạnh nhất định
về an ninh. Các thẻ toàn cầu nền tảng Java được sử dụng bởi hệ thống phù
hợp với tiêu chí chung EAL 4+ và được sử dụng trong các ứng dụng bảo mật
cao khác như kiểm soát thương mại điện tử và truy cập. Các thiết bị đầu cuối
15


có quyền biểu quyết và xác minh được mã hóa kết hợp với các lá phiếu trắng
được sử dụng trong mỗi trạm cụ thể, có nghĩa là một lá phiếu không có thể
được đọc từ hay ghi vào thiết bị đầu cuối bên ngoài trạm bỏ phiếu. Điều này
theo lý thuyết tương đương với việc kẻ tấn công không thể ăn cắp một thiết bị
đầu cuối từ một trạm bỏ phiếu này và sử dụng nó để lấy lợi thế của mình

trong một trạm khác.
Các thiết bị đầu cuối không có kết nối trực tuyến, danh tính của cử tri
chỉ được xác nhận bởi ban bầu cử và danh tính ko ghi trên lá phiếu. Khi bộ
đếm phiếu bầu được ghi vào thẻ thông minh bên trong các thiết bị thì tổng số
phiếu thu được trong bộ đếm phải khớp với tổng số phiếu trong thùng phiếu.
Do đó theo lý thuyết thì kẻ tấn công sẽ phải phá hoại cả hai vị trí trước khi
ảnh hưởng đến kết quả bầu cử.
Tuy nhiên, các nhà khoa học thuộc trường đại học Tel-Aviv, Israel đã
phân tích hệ thống và đã chỉ ra rằng: Nếu kẻ tấn công sở hữu thiết bị relay, họ
có thể thiết lập một cuộc tấn công dò phiếu. Dạng tấn công này cho phép kẻ
tấn công biết bất cứ lúc nào mà phiếu đã được bỏ vào thùng phiếu. Trong
dạng khác, mô hình hoàn toàn có thể bị tấn công bởi sự gây nhiễu hệ thống
RFID để làm gián đoạn hoạt động tại các trạm bỏ phiếu, hoặc tấn công sửa
đổi có thể nhanh chóng loại bỏ toàn bộ một thùng phiếu. Qua đây ta thấy
được hệ thống còn rất nhiều lỗ hổng, cần phải khắc phục điểu chỉnh sao cho
đảm bảo an ninh chặt chẽ và chính xác hơn.
1.3. Một số vấn đề trong hệ thống bầu cử điện tử
1.3.1. Các yêu cầu đối với hệ thống bầu cử điện tử
Theo cách mà các cuộc bầu cử đã tiến hành có ảnh hưởng rất lớn đến
xã hội và công dân có thể mất lòng tin vào hệ thống nếu có sự chênh lệch hay
gian lận trong quá trình bầu cử, vì vậy an toàn là rất quan trọng đối với một
hệ thống bầu cử điện tử.
Gian lận trong bầu cử là một mối đe dọa vô cùng to lớn cho hệ thống
bầu cử điện tử, do đó vấn đề bảo mật là vô cùng quan trọng để ngăn chặn
hiểm họa này. Hệ thống bầu cử điện tử khá khác so với hệ thống thương mại
điện tử như vậy đòi hỏi một mức độ bảo mật cao hơn so với thương mại điện
16


tử, ví dụ nặc danh là một yêu cầu lớn đối với hệ thống bầu cử điện tử nhưng

có thể không cần thiết cho một hệ thống thương mại điện tử.
Với mức độ nhạy cảm cao, bầu cử điện tử đặt ra rất nhiều yêu cầu cần
được đáp ứng. Rất nhiều phương thức bầu cử điện tử đã được đề xuất không
đáp ứng được tất cả các yêu cầu và trong hầu hết các trường hợp thường
không đáp ứng các yêu cầu có xu hướng trái ngược nhau, ví dụ khả năng xác
nhận cá nhân và không tự do xác nhận có vẻ khá khó khăn để đáp ứng cùng
lúc.
Dưới đây là những yêu cầu bảo mật cho một giao thức bầu cử điện tử
cố gắng đáp ứng
• Riêng tư: đây là tính chất an toàn mà nó yêu cầu rằng định danh của cử tri
không nên được liên hệ đến một lá phiếu nào đó. Ví dụ, cử tri A thực hiện bỏ
lá phiếu XYZ, nó phải đảm bảo không một bên thứ 3 nào biết được lá phiếu
XYZ là của A, điều này có nghĩa là hệ thống không nên tiết lộ các cử tri đã bỏ
phiếu như thế nào. Tính chất này đòi hỏi danh tính của cử tri phải được ẩn
danh. Tính riêng tư của cử tri nên được đảm bảo thậm chí sau khi kết thúc
cuộc bầu cử
• Dân chủ: bất kì hệ thống hay phương thức bầu cử điện tử nào cũng nên đảm
bảo rằng chỉ có cử tri đủ điểu kiện mới được phép bỏ phiếu và phương thức
bầu cử cũng nên ngăn chặn các cử tri đủ điều kiện bỏ phiếu nhiều hơn 1 lần.
• Không tự do xác nhận: tính chất này đảm bảo rằng cử tri không thể có bất cứ
thông tin gì để họ có thể chứng minh cho người khác rằng họ đã bỏ phiếu theo
cách nào hay bỏ cho ai. Tính chất này sẽ giúp ngăn chặn việc bán phiếu bầu
của người có đủ điều kiện bầu cử. đây là tính chất cho phép bỏ phiếu điện tử
đáp ứng tính bảo mật của các cuộc bầu cử bỏ phiếu kín được thực hiện tại
phòng bỏ phiếu truyền thống.
• Kiểm tra được: đây là khả năng cho bất cứ ai như cử tri, bên kiểm phiếu bên
ngoài hay bên kiểm phiếu của công chúng có thể xác minh hay kiểm đếm các
lá phiếu để đảm bảo tính chính xác. Hình thức kiểm tra này mạnh mẽ hơn về
mặt kiểm chứng vì xác minh không giới hạn cả tri cụ thể đã bỏ phiếu, bất kì ai
kể cả bên thụ động cũng có thể quan sát và được thuyết phục rằng cuộc bầu


17


cử là công bằng. Điều này có khả năng ngăn chặn giả mạo kết quả bởi bất kì
ai.
• Khả năng xác nhận cá nhân: điều này đảm bảo rằng những cơ chế tại chỗ cho
phép cử tri xác minh rằng lá phiếu của họ đã được kiểm đếm và có thể nộp
đơn khiến nại nếu nó không phải là trường hợp không tiết lộ nội dung lá
phiếu. tính chất này của hệ thống bầu cử điện tử cho phép cử tri có thể kiểm
tra lá phiếu của họ đã được kiểm đếm và chính xác với nội dung lá phiếu của
họ.
• Tính bền vững: tính chất nàu đảm bảo rằng ngay cả khi nhiều bên cấu kết với
nhau hệ thống vẫn có thể phục hồi từ bất kỳ hành động lỗi nào. tính chất này
cũng có nghĩa là lá phiếu không thể cho phép sự gian lân của nhà chức trách
cho cử tri và hệ thống cần đàn hồi với bất kỳ cuộc tấn công bên ngoài như
DOS
• Công bằng: nếu cử tri đã có một định hướng về kết quả trước khi họ bỏ phiếu,
nó có thể ảnh hưởng đến quyết định của họ. vì vậy tính chất này đảm bảo rằng
tất cả các ứng viên được cho một cơ hội như nhau bằng cách ngăn chặn việc
kiểm đếm trước, như vậy không có bất kì ai có đầu mối về kết quả và quyết
định của cử tri không bị ảnh hưởng.
• Tính chính xác: tính chất này đòi hỏi tất cả các lá phiếu hợp lệ cần được đếm
một cách chính xác, phiếu không hợp lệ không thể được thêm vào, các lá
phiếu hợp lệ không thể bị sửa đổi, xóa hoặc hủy bỏ hiệu lực ở giai đoạn kiểm
đếm cuối cùng; nếu điều này xảy ra nó có thể dễ dàng bị phát hiện.
• Tính chất không bị ép buộc: tính chất này đảm bảo rằng người ép buộc(có thể
là ứng cử viên hặc được ứng cử viên thuê) không thể ép buộc cử tri bầu cho
họ, hay một ứng cử viên đặc biệt nào đó. Ngày cả nhà chức trách cũng không
thể lấy giá trị của lá phiếu.

Rất nhiều phương án bầu cử điện tử được đề xuất lấy giả định về một
kênh nặc danh giữa chính quyền với cử tri hay một kênh không thể truy vết,
dựa vào xác thực tin cây hoặc phòng bỏ phiếu được giám sát bởi cơ quan tổ
chức bầu cử. những giả định có thể xác định yêu cầu bảo mật có thể cần thiết
trong bầu cử điện tử.

18


Qua việc phân tích các hệ thống bầu cử hiện có, ta có thể khái quát lại
các thành phần cơ bản và quy trình hoạt động của một hệ thống bầu cử điển
hình như được mô tả dưới đây.
1.3.2.

Các thành phần của hệ thống bầu cử điện tử.

Dưới đây là sơ đồ quy trình của hệ thống bầu cử điện tử.

Hình 1. 3: Quy trình hệ thống bầu cử điện tử
Thành phần của hệ thống bầu cử điện tử bao gồm :
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 đếm không?.
Ban điều hành : 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ý : 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ợ.


19


Ban kiểm tra : 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òm phiếu).
Ban kiểm phiếu : 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 đăng ký, quá trình mã hóa và giải mã lá phiếu.
Hệ thống ký: Giúp ban đăng ký ký vào các định danh cử
tri.
Hệ thống kiểm phiếu: Giúp ban kiểm phiếu tính kết quả
cuộc bầu cử.
Bảng niêm yết công khai : 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.3.
Tiến trình bầu cử
Hình dưới đây cho một cái nhìn tổng quan về sự tương tác giữa các
thành phần hệ thống bỏ phiếu điện tử:

Hình 1. 4: Tiến trình trong hệ thống bầu cử điện tử
Giai đoạn 1: Bỏ phiếu
20


Lúc bắt đầu của mỗi cuộc bầu cử, nhà chức trách công bố một tập hợp
các ứng dụng khách để bỏ phiếu cho các hệ điều hành Windows, Linux, và

Mac OS. Nó được tùy biến cho mỗi cuộc bầu cử và bao gồm một khóa công
khai cho việc mã hóa các lá phiếu bình chọn và một chứng chỉ TLS cho các
máy chủ.
Các cử tri bắt đầu bằng cách khởi chạy các ứng dụng khách và chèn
thẻ ID của họ. Sau đó nhập mã PIN kết hợp với khóa xác thực của mình, được
sử dụng để thiết lập kết nối giữa client và xác thực TLS đến VFS. Bên sever
xác nhận các điều kiện của cử tri dựa trên khóa công khai của mình và trả về
danh sách C các ứng cử viên cho cử tri.
Các cử tri lựa chọn ứng cử viên và nhập mã PIN. Bên Client mã hóa lá
phiếu, và kí lên lá phiếu mã hóa bằng khóa riêng của cử tri. Sau đó chữ kí và
lá phiếu mã hóa được gửi đến sever. Sau đó bên client sẽ hiển thị một mã QR
để xác thực lựa chọn của cử tri. Ở đây các cử tri được phép bỏ phiếu nhiều lần
trong thời gian bầu cử trực tuyến, hệ thống chỉ đếm lần bỏ phiếu cuối cùng
của cử tri. Tất cả các phiếu trước đó bị thu hồi và giữ lại trên máy chủ lưu trữ,
và nó không hiển thị số lần cử tri bỏ phiếu.
Giai đoạn 2: Xác thực
Các cử tri có thể xác minh lá phiếu của mình đã được ghi nhận bằng
cách sử dụng một ứng dụng điện thoại thông minh được cung cấp bởi các cơ
quan bầu cử như hình dưới đây:
Các máy chủ cho phép xác minh lên đến ba lần mỗi lá phiếu và lên
đến 30 phút sau khi bỏ phiếu.
Giai đoạn 3: Kiểm phiếu
Sau khi bỏ phiếu trực tuyến kết thúc, các máy chủ lưu trữ sẽ xử lý
phiếu mã hóa để xác minh chữ ký và loại bỏ bất kỳ phiếu nào không hợp lệ.
Trong một phiên làm việc để đếm công khai các lá phiếu, cơ quan bầu cử đưa
ra các bộ phiếu hợp lệ sau khi tước bỏ chữ ký, để lại phiếu đã được mã hóa ẩn

21



danh. Chúng được ghi ra DVD và được chuyển đến máy vật lý riêng biệt,
trong đó giải mã và đếm chúng.
Cơ quan bầu cử xuất tổng các lá phiếu bằng cách đưa chúng vào một
đĩa DVD. Những kết quả này được kết hợp với các phiếu ở các điểm bỏ phiếu
và được công bố như là kết quả tổng thể của cuộc bầu cử.

22


CHƯƠNG II. MỘT SỐ KỸ THUẬT MẬT MÃ VÀ ỨNG DỤNG
CHO BÀI TOÀN BẦU CỬ ĐIỆN TỬ
2.1. Tổng quan về mật mã khóa công khai
Mật mã khóa công khai là một quá trình phát triển tiếp nối từ tất cả
những thành tựu của mật mã học đã được nghiên cứu và xây dựng trước đó.
Có một điều hoàn toàn khác đó là các thuật toán khóa công khai dựa trên các
hàm toán học hơn là dựa các phép thay thế và hoán vị. Quan trọng hơn, mật
mã khóa công khai là phi đối xứng, nó bao gồm việc sử dụng hai khóa tách
biệt nhau và đối lập hoàn toàn với mật mã khóa đối xứng, kiểu mật mã chỉ sử
dụng một khóa duy nhất. Việc sử dụng hai khóa thay vì một khóa có một tầm
quan trọng vô cùng lớn trong các vấn đề vềtính bí mật, phân phối khóa và xác
thực.
Diffie và Hellman đã thực hiện một phát minh mang tính chất đột phá
vào năm 1976 bằng việc đề xuất một giải pháp nhằm giải quyết triệt để cả hai
vấn đề trên và hoàn toàn khác so với các phương pháp mật mã đã được biết
đến trước đó.
2.1.1. Hệ mật khóa công khai
Các thuật toán khóa phi đối xứng dựa trên việc sử dụng hai khóa tách
biệt nhau, một khóa được giành cho việc mã hóa và một khóa khác (có liên
quan về mặt toán học đối với khóa mã hóa) để giành cho việc giải mã. Các
thuật toán này có các đặc tính quan trọng sau:

 Không thể tính toán để xác định khóa giải mã khi chỉ biết thông tin về thuật
toán mật mã và khóa mã hóa.
Thêm vào đó, một số thuật toán như RSA cũng cho thấy các đặc tính
sau:
 Một trong hai khóa có thể được sử dụng cho việc mã hóa, trong khi khóa còn
lại có thể sử dụng cho việc giải mã.

23


Một lược đồ mã hóa khóa công khai bao gồm 6 thành phần:
- Bản rõ (Plaintext): Là thông điệp hoặc dữ liệu mà người dùng có thể đọc
được và đóng vai trò như là dữ liệu đầu vào của thuật toán.
- Thuật toán mã hóa (Encryption algorithm): Thuật toán thực hiện rất nhiều
các biến đổi khác nhau trên bản rõ đầu vào.
- Các khóa công khai và khóa riêng (Public and Private keys): Là cặp khóa
đã được lựa chọn, nếu một trong hai khóa được sử dụng để mã hóa thì khóa
còn lại sẽ được sử dụng để giải mã. Chính xác hơn các biến đổi sẽ được thực
hiện bởi thuật toán phụ thuộc vào khóa công khai hay khóa riêng sẽ được
cung cấp cho đầu vào của thuật toán.
- Bản mã (Ciphertext): Là thông điệp đã được trộn thành dữ liệu đầu ra. Nó
phụ thuộc vào bản rõ và khóa. Đối với một thông điệp cho trước, hai khóa
khác nhau sẽ tạo ra hai bản mã hoàn toàn khác nhau.
- Thuật toán giải mã (Decryption algorithm): Thuật toán sử dụng bản mã và
khóa tương ứng để tạo ra bản rõ ban đầu.

Hình 2. 1:Mô hình mật mã khóa công khai
Giải thích các khối chức năng trên sơ đồ:
1.
2.

3.
4.

Encryption: Chức năng mã hóa.
Descryption: Chức năng giải mã.
Plaintext input:Bản rõ đầu vào.
Encryption algorithm: Thuật toán mã hóa như RSA.
24


5.
6.
7.
8.

Cipher text transmitted: Bản mã được truyền từ người gửi sang người nhận.
Descryption algorithm: Thuật toán giải mã.
Plaintext outut: Bản rõ đầu ra.
Public-key ring: Nơi lưu khóa công khai của các người dùng khác đã được
công bố.
9. Private key: Khóa bí mật.
Các bước cơ bản của mật mã khóa công khai được thực hiện như sau:
1. Mỗi người dùng tạo ra một cặp khóa để sử dụng cho mã hóa và giải mã thông
điệp.
2. Mỗi người dùng đặt một trong hai khóa lên sổ đăng ký công khai hoặc là một
file có thể truy xuất. Đây là khóa công khai, khóa còn lại được giữ bí mật.
Như hình 1.1 cho thấy mỗi người dùng duy trì một tập hợp các khóa công
khai nhận được từ các người dùng khác.
3. Nếu B muốn gửi một thông điệp bí mật cho A, B mã hóa thông điệp sử dụng
khóa công khai của A.

4. Khi A nhận được thông điệp, A sẽ sử dụng khóa riêng của mình để giải mã
thông điệp. Không một ai khác có thể giải mã được thông điệp này bởi vì chỉ
có A mới biết khóa riêng đó.
Với phương pháp này, tất cả các bên tham gia vào lược đồ đều phải
truy xuất được các khóa công khai còn các khóa riêng được tạo cục bộ và vì
vậy không cần phải phân phối cho người khác. Đến chừng nào khóa riêng của
một người dùng còn được bảo vệ và được giữ bí mật, các trao đổi đến người
này đều được bảo vệ một cách an toàn. Bất cứ lúc nào hệ thống cũng có thể
thay đổi khóa riêng của nó và thông báo khóa công khai mới để các người
dùng khác thay thế khóa công khai cũ trước đó.
Giả sử có một nguồn A được sử dụng để tạo thông điệp dưới dạng bản
rõ . M thành phần của X là các ký tự trong bảng alphabet hữu hạn. B là người
sẽ nhận thông điệp. B tạo ra một cặp khóa có liên hệ nhau về mặt toán học:
Một khóa công khai và một khóa riêng . chỉ có B mới biết được trong khi
được công bố công khai, do đó A cũng có thể truy xuất được khóa này.

25


×