3.1.1. Khái niệm bỏ phiếu điện tử
Bỏ phiếu điện tử là một cuộc “bỏ phiếu” đƣợc thực hiện từ xa trên mạng máy tính thông qua các phƣơng tiện “điện tử” nhƣ máy tính cá nhân, điện thoại di động… Với phƣơng pháp mới này các cử tri không cần nhìn thấy nhau, không cần trực tiếp đến địa điểm tổ chức bỏ phiếu nhƣng vẫn có thể tham gia bỏ phiếu đƣợc.
Ví dụ: Năm 2011 Vịnh Hạ Long đƣợc trang web New7Wonders của tổ chức New Open World công bố vịnh Hạ Long của Việt Nam là một trong 7 “kỳ quan thiên nhiên” mới của Thế Giới. Cuộc bầu chọn 7 kỳ quan thiên nhiên mới đƣợc New Open World phát động qua mạng Internet từ năm 2007. Đây là một hình thức bỏ phiếu từ xa để lấy ý kiến của cộng đồng thông qua mạng Internet, mạng điện thoại di động,…
Bỏ phiếu điện tử cũng nhƣ tất cả các cuộc bỏ phiếu khác phải đảm bảo các yêu cầu về tính bí mật, tính toàn vẹn và xác thực của lá phiếu; mỗi cử tri chỉ đƣợc bỏ phiếu một lần, mọi ngƣời đều có thể kiểm tra tính đúng đắn của cuộc bỏ phiếu, cử tri không thể chỉ ra mình đã bỏ phiếu cho ai để tránh cơ hội mua bán phiếu bầu…
Bỏ phiếu điện tử mang lại rất nhiều lợi ích :
- Tiết kiệm đƣợc tiền của, công sức, thời gian của nhà nƣớc và của nhân dân. - Nhanh chóng, thuận tiện, an toàn, trung thực .
- Đảm bảo cho việc bỏ phiếu diễn ra khách quan, dân chủ.
3.1.2. Yêu cầu của hệ thống bỏ phiếu điện tử
Một hệ thống bỏ phiếu điện tử phải đáp ứng đƣợc các yêu cầu sau: - Bảo đảm tính bí mật:
+ Không thể biết đƣợc nội dung lá phiếu nếu không đƣợc cấp quyền hạn: lá phiếu phải đƣợc mã hóa.
+ Không thể biết đƣợc lá phiếu đó là của ai, trừ cử tri sở hữu nó: làm mù lá phiếu, chia sẻ khóa bí mật, trộn phiếu bầu,…
- Bảo đảm tính toàn vẹn của lá phiếu: Trên đƣờng truyền tin, nội dung lá phiếu không thể bị thay đổi, tất cả lá phiếu đều đƣợc chuyển tới hòm phiếu an toàn, đúng thời gian, chúng đƣợc kiểm phiếu đầy đủ.
- Bảo đảm tính xác thực của lá phiếu: Lá phiếu gửi tới hòm phiếu phải hợp lệ, đúng là ngƣời có quyền bỏ phiếu, cử tri có thể nhận ra lá phiếu của họ.
3.1.3. Những vấn đề cần giải quyết
- Cƣỡng chế: Cử tri có thể bị cƣỡng chế bỏ phiếu cho một ứng cử viên nhất định vì bị ép buộc. Trong trƣờng hợp này cách giải quyết là cử tri không đƣợc liên kết với phiếu bầu của mình.
- Hối lộ: Cử tri có thể bị mua chuộc để bỏ phiếu cho một ứng cử viên nào đó và có thể là nghĩa vụ bỏ phiếu dƣới sự giám sát của ngƣời hối lộ. Để giải quyết vấn đề này, các cử tri trong hệ thống này không thể chứng minh phiếu bầu của mình, khi đó ngƣời mua chuộc không biết các phiếu bầu là cho mình không.
- Truy cập trái phép: Chỉ có ngƣời quản trị hay đội ngũ lập trình đáng tin cậy mới có thể theo dõi quá trình bỏ phiếu, họ cũng không thể thay đổi kết quả bỏ phiếu trong các cơ sở dữ liệu trong quá trình bỏ phiếu
3.1.4.Các thành phần trong hệ thống bỏ phiếu điện tử
- Ban tổ chức: 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, qui định cơ chế định danh cử tri.
- Ban đăng ký: Nhận dạng cử tri và ký cấp quyền bỏ phiếu cho họ, theo dõi cuộc bỏ phiếu, 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: Xác minh tính hợp lệ của lá phiếu; vì lá phiếu đã mã hoá nên ban kiểm phiếu không thể biết đƣợc lá phiếu có hợp lệ không, nên cần phải xác minh tính hợp lệ của lá phiếu trƣớc khi nó đến hòm phiếu. (Bỏ phiếu truyền thống không có ban này).
- Ban kiểm phiếu: Tính toán và thông báo kết quả bỏ phiếu. Có hệ thống "kiểm phiếu" hỗ trợ.
- Hệ thống máy tính và các phần mềm phục vụ qui trình bỏ phiếu từ xa.
- Ngƣời dùng thực hiện kiểm soát Server đảm bảo yêu cầu bảo mật và toàn vẹn của kết quả bỏ phiếu.
- Một số kỹ thuật đảm bảo an toàn thông tin: Chữ ký mù, mã hóa đồng cấu, chia sẻ bí mật.
- Hệ thống phân phối khoá tin cậy sẵn sàng cung cấp khoá cho công việc mã hoá và giải mã hay ký "số".
3.1.5. Quy trình bài toán bỏ phiếu điện tử
Hiện nay, ngƣời ta đã nghiên cứu và thử nghiệm một số quy trình bỏ phiếu từ xa, mỗi quy trình có ƣu nhƣợc điểm riêng, trong luận văn này học viên chỉ nghiên cứu sơ đồ bỏ phiếu tín nhiệm gồm ba giai đoạn chính: Giai đoạn đăng ký bỏ phiếu, giai đoạn bỏ phiếu và giai đoạn kiểm phiếu nhƣ sau:
Hình 3.1. Sơ đồ Quy trình bỏ phiếu điện tử
(1) Đăng ký bỏ phiếu: Cử tri sử dụng thông tin cá nhân của mình để đăng ký tham gia bỏ phiếu. Ban đăng ký sẽ kiểm tra tính hợp lệ của cử tri. Nếu hợp lệ (đúng thông tin trong cơ sở dữ liệu và mới chỉ đăng ký lần đầu) thì tiến hành phát mã cử tri. Ban đăng ký ghi số chứng minh thƣ của cử tri vào danh sách cử tri đã đƣợc cấp chữ ký (để tránh việc cử tri đăng ký bỏ phiếu nhiều lần).
(2) Bỏ phiếu: Chỉ những cử tri có mã cử tri hợp lệ mới đƣợc tham gia bỏ phiếu và chỉ đƣợc bỏ phiếu duy nhất một lần. Cử tri sử dụng mã cử tri hợp lệ để tham gia bỏ phiếu
(3) Kiểm phiếu: Ban kiểm phiếu sẽ tính toán dựa vào các lá phiếu hợp lệ để tổng hợp kết quả, sau đó công bố kết quả cuộc bỏ phiếu.
Chứng minh không
tiết lộ thông tin Mã hóa đồng cấu
Mạng trộn
Hòm phiếu Lá phiếu
Lá phiếu
Cử tri Bảng niêm yết
công khai Kiểm phiếu Chữ ký mù Đăng ký Sơ đồ chia sẻ bí mật
3.2. Ứng dụng hệ mật ElGamal trong quá trình bỏ phiếu thăm dò tín nhiệm Các bƣớc Các bƣớc thực hiện Cán bộ Ban tổ chức Thiết lập - Tạo khóa bí mật và khóa công khai theo thuật toán ElGamal cải tiến.
- Một số nguyên tố lớn p ngẫu nhiên.
- g là điểm sinh của *
.
p Z - Tạo khóa bí mật và khóa công khai theo thuật toán ElGamal cải tiến.
Bỏ phiếu - Chọn ý kiến của mình cho lá phiếu đã có chữ ký của ban tổ chức. - Lá phiếu đã mã hóa bằng khóa công khai của
ban tổ chức.
- Kiểm tra chữ ký và tính hợp lệ của lá phiếu.
- Mã hóa lại lá phiếu và gửi về hòm phiếu.
Mở phiếu bầu
- Khôi phục khóa bí mật. - Tính kết quả bỏ phiếu. - Thông báo và niêm yết công khai.
Hình 3.2. Sơ đồ mô tả bỏ phiếu thăm dò tín nhiệm
3.2.1. Thiết lập
Xét một cuộc bỏ phiếu thăm dò tín nhiệm với m phƣơng án lựa chọn.
Ban tổ chức bỏ phiếu tín nhiệm cần chuẩn bị hệ mật mã ElGamal cải tiến (nội dung trình bày trong mục 2.1.2.3) với :
Chọn một số nguyên tố lớn p ngẫu nhiên sao cho bài toán logarit rời rạc trong Zp là khó giải và g là điểm sinh của *
.
p Z
Chọn khóa bí mật x là số nguyên thỏa mãn: 1 < x < (p-1). Tính khóa công khai y theo công thức: y = gxmod p
3.2.2. Bỏ phiếu
Hình 3.3. Sơ đồ giai đoạn bỏ phiếu tín nhiệm
Giả sử một cán bộ muốn bỏ phiếu lựa chọn cho một phƣơng án, quá trình bỏ phiếu của cán bộ này gồm 4 bƣớc:
Bƣớc 1: Lựa chọn phƣơng án
Sau khi lá phiếu có chữ ký của Ban tổ chức, cán bộ lựa chọn phƣơng án của mình vào lá phiếu bằng cách đánh dấu lên lá phiếu.
Bƣớc 2: Mã hóa nội dung lá phiếu
Để không bị lộ thông tin về sự lựa chọn của mình, cán bộ sẽ mã hóa nội dung lá phiếu trƣớc khi lá phiếu đƣợc chuyển tới hòm phiếu.
Cán bộ mã hóa lá phiếu bằng khóa công khai của ban tổ chức và gửi tới ban tổ chức lá phiếu đã bị mã hóa, đinh danh thật ( không bị làm mù) của họ, chữ ký của ban tổ chức về cho ban tổ chức.
Giả sử cán bộ p muốn bỏ phiếu cho phƣơng án M, thực hiện nhƣ sau:
- Mã hóa phƣơng án M bằng khóa công khai y của ban tổ chức, lá phiếu đƣợc hệ thống mã hóa thành 2 giá trị C và R.
Ban kiểm tra Cán bộ
Chọn ý kiến cho lá
phiếu của mình
Kiểm tra chữ ký (Liên hệ với ban đăng ký)
Thực hiện các giao thức tƣơng tác với cán bộ để kiểm tra tính hợp lệ của lá phiếu
Mã hóa lại lá phiếu, gửi tới hòm phiếu
Lá phiếu đã mã hóa bằng khóa công khai của ban tổ chức.
- Gửi (C,R) cùng với chữ ký của nó đến trạm bỏ phiếu (ghi nhận 2 giá trị này vào cơ sở dữ liệu).
Bƣớc 3: Kiểm tra lá phiếu.
Trƣớc khi lá phiếu đƣợc chuyển đến hòm phiếu. Thì lá phiếu sẽ đƣợc kiểm tra chữ ký, cấp quyền bỏ phiếu trên lá phiếu qua ban kiểm tra.
Tiếp theo ban kiểm tra, kiểm tra xem cán bộ đó có trong danh sách đƣợc phép bỏ phiếu hay không và đảm bảo rằng cán bộ chƣa bỏ phiếu trƣớc đó. Trong trƣờng hợp này, cán bộ phải chứng minh đƣợc lá phiếu của mình là hợp lệ.
Bƣớc 4: Mã hóa lại lá phiếu và gửi tới hòm phiếu.
3.2.3. Mở phiếu bầu
Khi cuộc bỏ phiếu kết thúc, ban tổ chức bắt đầu tiến hành giải mã lá phiếu và thống kê kết quả bỏ phiếu. Quá trình này đƣợc chia thành 3 bƣớc:
Bƣớc 1: Giải mã lá phiếu
Theo phƣơng pháp mã hóa đồng cấu, ban kiểm phiếu không cần giải mã từng lá phiếu mà vẫn có thể kiểm phiếu đƣợc. Khi kiểm phiếu, từng thành viên ban kiểm phiếu dùng các mảnh khóa riêng của mình do ban tổ chức đƣa ra để khôi phục khóa bí mật x (khóa này đã bị chia sẻ qua sơ đồ bí mật Shamir).
Bƣớc 2: Tính toán kết quả
Khi các lá phiếu hợp lệ cộng tất cả các lá phiếu để cuối cùng kiểm soát kết quả của bỏ phiếu tín nhiệm.
Bƣớc 3: Công bố kết quả
Kết quả của cuộc bỏ phiếu tín nhiệm đƣợc công bố công khai trên bảng niêm yết, chứa tất cả thông tin cần thiết để xác minh tính đúng đắn của toàn bộ quá trình. Đó là:
1) Kết quả bỏ phiếu ( số lƣợng phiếu của mỗi phƣơng án). 2) Danh sách cán bộ ( tên và khóa công khai của mỗi cán bộ).
3) Phiếu đã nhận cùng với chữ ký của chúng ( ở cột "Chọn") và bằng chứng về tính đúng đắn.
3.3. Xây dựng chƣơng trình thử nghiệm mô hình bỏ phiếu thăm dò tín nhiệm
3.3.1. Môi trường cài đặt và thử nghiệm
Chƣơng trình thử nghiệm đƣợc viết bằng ngôn ngữ C#.Net trên bộ Visual Studio 2010 sử dụng phiên bản Net Framework 4.5. Dữ liệu của chƣơng trình đƣợc lƣu trữ trong hệ quản trị cơ sở dữ liệu Microsoft Access 2007.
3.3.2. Phát biểu bài toán
Với sự phát triển của khoa học kỹ thuật, nhu cầu trao đổi thông tin nhanh chóng và tiết kiệm thì hình thức họp trực tuyến, lấy ý kiến thăm dò về các vấn đề quan trọng đƣợc sử dụng phổ biến. Trong hình thức họp trực tuyến, khi cần lấy biểu quyết về một vấn đề nào đó thì biểu quyết giơ tay không hiệu quả và thiếu tính khách quan (do camera đặt cố định, không bao quát hết các thành viên tham gia họp), bên cạnh đó do yêu cầu muốn ẩn danh ý kiến biểu quyết của các cán bộ, cán bộ (ngƣời cho ý kiến) không muốn ban kiểm phiếu biết đƣợc mình biểu quyết là đồng ý hay không đồng ý, ban kiểm phiếu chỉ có thể biết đƣợc tổng số phiếu nhƣng không biết đƣợc nội dung từng lá phiếu.
Từ yêu cầu thực tế đó, luận văn đƣa ra phƣơng án giải quyết dựa trên tính chất đồng cầu của hệ mã Elgamal. Theo phƣơng pháp này thì nội dung lá phiếu sẽ đƣợc mã hóa và gửi về ban tổ chức. Khi kiểm phiếu, ban kiểm phiếu không biết đƣợc nội dung lá phiếu nhƣng xác minh đƣợc nguồn gốc của lá phiếu, ban kiểm phiếu sẽ tính đƣợc kết quả của cuộc bỏ phiếu.
Luận văn sử dụng chƣơng trình mô phỏng nhằm kiểm chứng tính đúng đắn của bài toán kết hợp sơ đồ chia sẻ bí mật Shamir và thuật toán ElGamal cải tiến để ứng dụng trong bỏ phiếu tín nhiệm với tổng công ty xăng dầu Việt Nam, ...
Dữ liệu đầu vào của chƣơng trình là các lá phiếu hợp lệ của cán bộ. Với chƣơng trình mô phỏng bỏ phiếu lấy ý kiến về mức độ tín nhiệm đối với tổng công ty xăng dầu Việt Nam, ... Trên lá phiếu có 3 sự lựa chọn: “A. Tín nhiệm cao ”, “B. Tín nhiệm ”, “C. Tín nhiệm thấp”.
Dữ liệu ra của chƣơng trình là bảng kết quả thống kê số phiếu của từng phƣơng án, phƣơng án đƣợc lựa chọn nhiều nhất. Và quan trọng nhất là kết quả của
chƣơng trình phải đảm bảo an toàn, trung thực đáp ứng đƣợc các tính chất của một cuộc bỏ phiếu tín nhiệm: tính bí mật, tính toàn vẹn, yêu cầu xác thực lá phiếu.
3.3.3 Các đối tƣợng của hệ thống
(1) Ban tổ chức: Hệ thống này có trách nhiệm tạo, lƣu trữ các khóa riêng và công bố các khóa công khai. Tất cả các bên phải tin tƣởng vào hệ thống này.
(2) Cán bộ: Họ là những ngƣời có quyền tham gia bỏ phiếu.
(3) Ban kiểm phiếu: Có trách nhiệm tổng hợp và công bố kết quả khi kết thúc cuộc bỏ phiếu.
3.3.4. Phân tích và thiết kế chƣơng trình bỏ phiếu: Phân tích chƣơng trình: Phân tích chƣơng trình:
- Nhập danh sách các cán bộ tham gia bỏ phiếu và thông tin cá nhân của cán bộ.
- Cung cấp thẻ cán bộ cho các nhân viên đƣợc tham gia bỏ phiếu. - Kiểm tra thẻ trƣớc khi cán bộ bỏ phiếu
- Kiểm phiếu và niêm yết kết quả.
Thiết kế chƣơng trình:
- Bảng lƣu giữ các thông tin của cán bộ: Xác định danh sách các cán bộ tham gia bỏ phiếu.
- Bảng xác định cán bộ đã tham gia bỏ phiếu hay chƣa, mỗi cán bộ chỉ đƣợc bỏ phiếu 1 lần, bảng này nhằm xác định những cán bộ nào chƣa bỏ phiếu và cán bộ nào đã bỏ phiếu.
- Bảng lƣu nội dung lá phiếu của các cán bộ: Nội dung của lá phiếu đã đƣợc cán bộ mã hóa và đƣợc lƣu trong bảng này
3.3.5 Các chức năng chính
- Nhập vào các thông tin của cán bộ bao gồm cả thông tin định danh, hệ thống sẽ mã hoá định danh và xác nhận tính hợp lệ của cán bộ.
- Sử dụng hệ mã hóa ElGamal cải tiến để tạo khóa: Là quá trình sinh ngẫu nhiên bộ khóa công khai và khóa riêng cho toàn bộ cán bộ. Mỗi cán bộ là một bộ khóa khác nhau.
- Sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu. - Cán bộ đăng nhập và bỏ phiếu.
- Mã hóa nội dung lá phiếu trên bộ khóa của cán bộ.
- Giải mã lá phiếu: Hệ thống nhận đƣợc văn bản mã, sẽ sử dụng khóa riêng để giải mã, sau đó thu đƣợc văn bản gốc.
- Thống kê và đƣa ra kết quả của cuộc bỏ phiếu.
Trên thực tế, để thiết kế đƣợc một chƣơng trình hoàn chỉnh, ngoài modul mã hóa còn rất nhiều modul hỗ trợ khác nhƣ: xác thực quyền bỏ phiếu của cán bộ, phân bổ khóa, xác định tính hợp lệ của lá phiếu,... Tuy nhiên, do giới hạn về mặt thời gian nghiên cứu nên luận văn chỉ tập trung vào việc sử dụng thuật toán ElGamal cải tiến và sơ đồ chia sẻ bí mật Shamir trong bỏ phiếu thăm dò về mức độ tín nhiệm đối với một đơn vị.
3.3.6. Thứ tự thực hiện chƣơng trình
Xét một cuộc bỏ phiếu thăm dò tín nhiệm, có ba phƣơng án đƣợc đƣa ra: Tín nhiệm cao, Tín nhiệm, Tín nhiệm thấp. Hệ thống thiết kế thứ tự thực hiện chƣơng