Xây dựng chƣơng trình thử nghiệm mô hình bỏ phiếu thăm dò dƣ luận

Một phần của tài liệu Nghiên cứu và thử nghiệm mô hình bỏ phiếu thăm dò dư luận luận văn ths công nghệ thông tin 60 48 01 04 pdf (Trang 81)

4.1.1. Các đối tƣợng của hệ thống

Hệ thống bỏ phiếu điện tử gồm các đối tƣợng sau

(1)Hệ thống lƣu trữ khóa tin cậy: 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ử tri: Họ là những học sinh có quyền tham gia bỏ phiếu.

(3)Ban kiểm phiếu: Có trách nghiệm tổng hợp, kiểm đếm và công bố kết quả sau khi kết thúc cuộc bỏ phiếu.

4.1.2. Các chức năng chính

- Nhập vào các thông tin của cử tri bao gồm cả thông tin đinh danh, hệ thống sẽ mã hóa định danh và xác nhận tính hợp lệ của cử tri.

- Sử dụng hệ mã hóa EC-ElGamal để 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ử tri. Mỗi cử tri là một bộ khóa khác nhau.

- Cử tri đăng nhập và bầu cử.

- Mã hóa lá phiếu trên bộ khóa của cử tri.

- Sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu

- 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.

4.1.3. Thiết kế chƣơng trình

Giao diện chƣơng trình:

- Form đăng nhập CA/Ban kiểm phiếu/Cử tri - Form sinh khóa cho ban kiểm phiếu/toàn bộ cử tri - Form cập nhật thông tin ban kiểm phiếu/cử tri - Form bỏ phiếu

- Form thống kê cuộc bầu cử

4.1.4. Thứ tự thực hiện chƣơng trình

Xét một cuộc bỏ phiếu thăm dò dƣ luận, có ba phƣơng án đƣợc đƣa ra: Có, Không, Phiếu trắng. Hệ thống thiết kế thứ tự thực hiện chƣơng trình nhƣ sau:

(1)Hệ thống lƣu trữ khóa (Admin) sinh ra một đƣờng cong Elliptic trên trƣờng hữu hạn Fp, với p đƣợc lấy ngẫu nhiên trong file NguyenTo.txt gồm 10.000 số nguyên tố lớn hơn 1.000.000 trong cơ sở dữ liệu. Các tham số trên đƣờng cong (a, b) lấy ngẫu nhiên trong đoạn [1, p-1]. Sau khi tạo dữ liệu cho cử tri, các khóa bí mật đƣợc lƣu thành một file SecretKey.txt.

Tiếp đó, hệ thống lƣu trữ tạo ra 3 điểm (nhúng các phƣơng án lên đƣờng cong) đại diện cho 3 phƣơng án đƣa ra khác nhau.

Cuối cùng, hệ thống sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu, danh sách trong cơ sở dữ liệu có bao nhiêu ngƣời trong ban kiểm phiếu thì hệ thống sẽ tự động chia thành từng đó mảnh khóa. Ví dụ, trong danh sách ban kiểm phiếu có 3 ngƣời thì hệ thống tự động sinh ra 3 mảnh khóa, và phát cho các thành viên.

(2)Cử tri đăng nhập vào hệ thống với tên đăng nhập là “tên + một kí tự đầu tiên của họ và tên đệm”. Ví dụ: tên đăng nhập của cử tri Vũ Thị Quyên sẽ là quyenvt. Mật khẩu mặc định ban đầu của cử tri là số chứng minh thƣ của họ. Khi cử tri login, hệ thống sẽ kiểm tra trong cơ sở dữ liệu xem có tồn tại tài khoản đó không. Nếu có, hệ thống chuyển sang giao diện tiếp theo. Nếu không, hệ thống báo lỗi đăng nhập. Trong lần đầu tiên đăng nhập vào hệ thống, cử tri sẽ đƣợc thông báo đề nghị đổi mật khẩu và sửa thông tin cá nhân.

Tiếp theo, cử tri lựa chọn ứng cử viên mà mình muốn bầu và submit vào hệ thống. Ở đây các cử tri đƣợc phép bỏ phiếu nhiều lần trong thời gian bầu cử, hệ thống chỉ đếm lần bỏ phiếu cuối cùng của cử tri.

(3)Sau khi kết thúc cuộc bầu cử, ban kiểm phiếu sẽ đăng nhập vào hệ thống và ghép lại các mảnh khóa để thống kê và đƣa ra kết quả cuối cùng.

4.1.5. Kết quả thực nghiệm

Giao diện chính của chƣơng trình:

Hình 4.1: Giao diện chính của chƣơng trình

a) Đối với hệ thống lưu trữ khóa

Ban quản trị hệ thống lƣu trữ khóa đăng nhập vào hệ thống:

Hình 4.2. Ban lƣu trữ khóa đăng nhập vào hệ thống Nếu sai tên đăng nhập hoặc mật khẩu, hệ thống báo lỗi:

Nếu đúng:

Hình 4.4. Ban lƣu trữ khóa đăng nhập thành công Sau khi đăng nhập thành công, màn hình hiển thị giao diện nhƣ sau:

Hình 4.5. Giao diện chính của ban lƣu trữ khóa

Ở đây, hệ thống lƣu trữ khóa sẽ có ba quyền đƣợc phân, đầu tiên là sinh khóa cho toàn bộ cử tri có trong cơ sở dữ liệu, chia sẻ khóa cho ban kiểm phiếu, và sửa đổi khóa cho cử tri bất kì.

Khi ban quản trị hệ thống chọn nút “Tạo dữ liệu cho cử tri”, hệ thống sẽ tự động sinh ngẫu nhiên bộ khóa công khai và khóa riêng cho toàn bộ cử tri. Mỗi cử tri sẽ là một bộ tham số khác nhau để tăng tính bảo mật.

Hình 4.6. Tạo thành công CSDL cử tri

Khi ban quản trị hệ thống chọn nút “Tạo dữ liệu cho ban kiểm phiếu”, hệ thống sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu, danh sách trong cơ sở dữ liệu có bao nhiêu ngƣời thì hệ thống sẽ tự động chia thành từng đó mảnh khóa. Ở đây ban kiểm phiếu có 3 thành viên, hệ thống sẽ chia làm 3 mành khóa:

Hình 4.7. Tạo thành công CSDL ban kiểm phiếu

b) Đối với cử tri

Cử tri đăng nhập vào hệ thống để bỏ phiếu. Yêu cầu cử tri có tài khoản trong danh sách cử tri ở hệ thống cơ sở dữ liệu trung tâm thì mới đƣợc đăng nhập.

Cử tri điền tên đăng nhập và mật khẩu để truy cập vào hệ thống và tham gia bầu cử:

Nếu tên đăng nhập hoặc mật khẩu là sai:

Hình 4.9. Cử tri đăng nhập không thành công Nếu đúng,

Hình 4.10. Cử tri đăng nhập thành công

Trong lần đầu tiên đăng nhập vào hệ thống, cử tri sẽ đƣợc thông báo đề nghị đổi mật khẩu và sửa thông tin cá nhân.

Tiếp theo, hệ thống hiển thị giao diện bầu cử:

Hình 4.12. Quá trình bầu cử

Cửa sổ này đƣợc chia làm hai phần. Phần bên trái chứa thông tin cử tri, phần bên phải là các phƣơng án bầu cử. Khi cử tri vào chức năng sửa thông tin, giao diện sẽ đƣợc hiển thị nhƣ sau:

Hình 4.13. Cử tri cập nhật thông tin

Cử tri có thể thay đổi mật khẩu và chỉnh sửa các thông tin cá nhân của mình nếu có sai sót. Sau đó nhấn nút “CẬP NHẬT” để ghi nhận quá trình sửa đổi. Hệ thống đƣa

Hình 4.14. Cập nhật thông tin cử tri thành công

hoặc nếu không muốn thay đổi cử tri chọn nút “Back” để quay lại giao diện bầu cử, hoặc nút “Thoát” để đăng xuất khỏi hệ thống.

Cuối cùng, cử tri lựa chọn phƣơng án mà mình muốn bỏ phiếu sau đó ghi nhận bằng việc nhấn vào nút “BỎ PHIẾU”. Hệ thống đƣa ra xác nhận xem cử tri đã chắc chắn với phƣơng án cửa mình chƣa:

Hình 4.15. Thông báo nhắc nhở lựa chọn của cử tri

Nếu chƣa, hệ thống đƣa cử tri về giao diện bầu cử. Nếu đã chắc chắn với phƣơng án lựa chọn, hệ thống đƣa ra thông báo bỏ phiếu thành công và tự đăng xuất tài khoản của cử tri.

Hình 4.17. Thông báo bỏ phiếu thanh công

d) Giai đoạn kiểm phiếu

Cuối cùng khi kết thúc cuộc bỏ phiếu, ban bầu cử có trách nhiệm tập hợp và công bố kết quả bỏ phiếu.

Ban kiểm phiếu đăng nhập vào hệ thống:

Hình 4.18. Ban kiểm phiếu đăng nhập vào hệ thống Nếu sai tên đăng nhập hoặc mật khẩu:

Hình 4.19. Ban kiểm phiếu đăng nhập sai Nếu đúng:

Hình 4.20. Ban kiểm phiếu đăng nhập thành công

Khi ban kiểm phiếu đăng nhập thành công, màn hình sẽ hiển thị bộ khóa mà ngƣời thuộc ban kiểm phiếu này đang giữ.

Hình 4.21. Mảnh khóa của ban kiểm phiếu

Cũng nhƣ cử tri, ban kiểm phiếu có thể xem và sửa đổi thông tin cá nhân của mình:

Hình 4.22. Ban kiểm phiếu cập nhật thông tin

Ban kiểm phiếu có thể thay đổi mật khẩu của mình. Sau đó nhấn nút “CẬP NHẬT” để ghi nhận quá trình sửa đổi. Hệ thống đƣa ra thông báo cập nhật thành công:

Hình 4.23. Ban kiểm phiếu cập nhật thông tin thành công

hoặc nếu không muốn thay đổi cử tri chọn nút “Back” để quay lại giao diện bầu cử, hoặc nút “Thoát” để đăng xuất khỏi hệ thống.

Cuối cùng, các thành viên trong ban kiểm phiếu ghép các mảnh khóa lại với nhau bằng cách nhấn vào nút “Gửi khóa”. Hệ thống đƣa ra xác nhận xem cử tri đã chắc chăn muốn gửi khóa chƣa:

Hình 4.24. Thông báo xác nhận quá trình gửi mảnh khóa

Nếu chƣa, hệ thống trở về giao diện bầu cử. Nếu đã chắc chắn với phƣơng án lựa chọn, hệ thống đƣa ra thông báo submit khóa thành công.

Hình 4.25. Gửi mảnh khóa thành công

Khi tất cả các thành viên trong ban kiểm phiếu đã sumbit khóa, lúc này hệ thống mới cho phép kiểm phiếu.

Hình 4.26. Xác nhận ghéo mảnh khóa Nếu tất cả các mảnh khóa đã khớp, hệ thống đƣa ra thông báo

Hình 4.27. Thông báo ghép mảnh khóa thành công và hiển thị giao diện thống kê các lá phiếu:

Hình 4.28. Kết quả bầu cử

Ban kiểm phiếu công bố tất cả những phiếu kín đƣợc chấp nhận. Mỗi cử tri phải kiểm tra xem phiếu của mình đã đƣợc công bố chƣa.

Bất kì ai đều có thể kiểm tra tính hợp lý của các phiếu kín và xem tổng số phiếu kín có bằng tổng số đăng kí hay không để ngăn chặn ban kiểm phiếu bỏ thêm phiếu kín vào.

Hình 4.29. Cơ sở dữ liệu trong mô hình bỏ phiếu

4.2. Các tính chất đạt đƣợc

Tính toàn vẹn: Khi bảng thông báo đƣợc đƣa ra công khai, không thể có lá phiếu nào đƣợc mã hóa mà có thể bị xóa khỏi bảng, vì bất kì ngƣời nào cũng có thể chứng minh đƣợc tính hợp lệ của lá phiếu. Vì vậy không có lá phiếu nào đƣợc mã hóa hợp lệ mà bị mất đi hoặc xử lý sai.

Tính bí mật: Bảo đảm tính bí mật của lá phiếu riêng lẻ đƣợc đảm bảo bởi sự an toàn của hệ thống chia sẻ bí mật. Bất kỳ nhóm ít hơn t ngƣời kiểm phiếu đều không giải mã đƣợc lá phiếu.

Tính hợp pháp: Mỗi cử tri chỉ có thể có đƣợc 1 định danh. Định danh không hợp lý hoặc trùng sẽ bị loại. Lá phiếu không hợp lệ cũng sẽ không đƣợc tính.

Tính xác minh phổ thông: bất kỳ một ngƣời nào cũng có thể kiểm tra phần chứng minh tính hợp lệ của lá phiếu, tính tích các lá phiếu hợp lệ và xác minh tính đúng đắn của việc giải mã bằng cách kiểm việc sử dụng khóa bí mật của ban tổ chức.

Tổng kết chƣơng 4

Chƣơng 4 tác giả xây dựng thử nghiệm mô hình bỏ phiếu thăm dò dƣ luận tại một trƣờng THPT sử dụng hệ mã hóa trên đƣờng cong elliptic, giúp đáp ứng nhu cầu thăm dò ý kiến của học sinh, sinh viên về các hoạt động của đoàn đội, hoạt động dạy học tại trƣờng,..

KẾT LUẬN

Các kết quả đã đạt đƣợc:

Luận văn đạt đƣợc hai kết quả chính:

a. Nghiên cứu tài liệu để trình bày các vấn đề sau:

- Giới thiệu về cấu trúc và hoạt động của một số hệ thống bầu cử điện tử ở một số nƣớc trên thế giới: Estonia, Israel. Đồng thời nghiên cứu tổng quan hệ thống thăm dò dƣ luận đang đƣợc sử dụng trên thế giới.

- Trình bày một số thuật toán nền tảng trong bầu cử điện tử: Thuật toán mã hóa đồng cấu, mô hình chữ kí vòng, hệ mã hóa trên đƣờng cong elliptic.

b. Thử nghiệm mô hình bỏ phiếu thăm dò dƣ luận tại một trƣờng trung học phổ thông sử dụng hệ mã hóa trên đƣờng cong elliptic:

- Cài đặt thuật toán mã hóa dữ liệu để mã hóa thông tin định danh của cử tri, thông tin ban kiểm phiếu.

- Sử dụng hệ mã hóa EC-ElGamal để tạo khóa: sinh ngẫu nhiên bộ khóa công khai và khóa riêng cho toàn bộ cử tri. Mỗi cử tri là một bộ khóa khác nhau. - Cài đặt chƣơng trình thuật toán mã hóa lá phiếu sử dụng hệ mật đƣờng cong

Elliptic trên bộ khóa của cử tri.

- Sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu.

- 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ả bầu cử.

Những hƣớng nghiên cứu tiếp theo:

- Nghiên cứu mô hình bỏ phiếu, kiểm thử ứng dụng trong phạm vi một địa phƣơng và cải thiện chất lƣợng công cụ.

- Nghiên cứu và ứng dụng mô hình bỏ phiếu thăm dò dƣ luận trong việc trƣng cầu dân ý vào việc khảo sát mức độ ủng hộ của mỗi khu vực đối với các ứng cử viên trƣớc các cuộc tranh cử.

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] PGS.TS Trịnh Nhật Tiến, Giáo trình An toàn dữ liêu, NXB Đại học Quốc Gia, 2008.

[2] GS. Phan Đình Diệu, “Lý thuyết mật mã và an toàn thông tin”, Đại học Quốc gia Hà Nội, 2004

[3] PGS.TS Trịnh Nhật Tiến, ThS. Trƣơng Thị Thu Hiền, “Về một quy trình bỏ phiếu từ xa”, Trƣờng Đại học Công nghệ - ĐHQGHN.

Tiếng Anh

[4] Shafi Goldwasser, Mihir Bellare, Lecture Notes on Cryptography, 2008 [5] DarrelHankerson, Alfred Menezes, ScottVanstone, “Guide to Elliptic Curve

Cryptography”.

[6] An Elliptic Curve Based Homomorphic Remote Voting System, 2014 [7] An elecronic voting platform with elliptic curve cryptography, 2011 [8] Securing E-voting with EC-ElGamal, 2010

[9] Craig Gentry and Shai Halevi, “Implementing Gentry’s fully-homomorphic encryption scheme”, In EUROCRYPT, 2011

[10] Kristin Lauter, Michael Naehrig, and Vinod Vaikuntanathan, “Can Homomorphic Encryption be Practical?”, ACM, 2011

[11] Drew Springall, Travis Finkenauer, Zakir Durumeric, Jason Kitcat, Harri Hursti, Margaret MacAlpine, J. Alex Halderman, “Security Analysis of the Estonian Internet Voting System”, University of Michigan, Ann Arbor, MI, U.S.A 2014 [12] Yossef Oren, Dvir Schirman and Avishai Wool, “RFID jamming and attacks on

Israeli e-Voting”, Tel-Aviv University, Ramat Aviv 69978, Israel.

[13] Basso, A., F. Bergadano, I. Coradazzi and P. D. Checco, “Lightweight security for internet polls”, in: EGCDMAS (2004)

[14] Andrea Huszti, “A homomorphic encryption-based secure electronic voting scheme”, 2011

[15] K. Sako and J. Kilian, “Receipt-free mix-type voting scheme: A practical solution to the implementation of a voting booth,” in Advances in Cryptology –

EUROCRYPT ’95, ser. LNCS, vol. 921, 1995, pp. 393–403

[16] Andong Fan, Yangsong Zhang, Xiao Yang, “The Scheme and Implementation of Anonymous Electronic Voting Based on Ring Signature”.

[17] Rivest, R.L., Shamir, A. and Tauman, Y. “How to leak a secret”, 2001

[18] David Chaum & Van Heyst , “Group Signature”, in Advances in Cryptology – EUROCRYPT ’91, 1991, pp257-265.

[19] Yong Yang, Zhiguang Qin,Hu Xiong, Yang Zhao,Tian Lan ,”A Write-in Electronic Voting scheme Based on Ring Signature”, 2007

[20] Sansar Choinyambuu, “Homomorphic Tallying with Paillier Cryptosystem”, 2009. Trang web [21] http://www.businessinsider.com/surveymonkey-election-online-poll-2012-11 [22] http://www.cpc.vn/Home/default.aspx [23] https://ezgsm.fpts.com.vn/EzGSM/Login/ [24] http://antoanthongtin.vn/ [25] http://www.pcworld.com.vn

Một phần của tài liệu Nghiên cứu và thử nghiệm mô hình bỏ phiếu thăm dò dư luận luận văn ths công nghệ thông tin 60 48 01 04 pdf (Trang 81)

Tải bản đầy đủ (PDF)

(96 trang)