3.1.1. Khái niệm bỏ phiếu từ xa
Bỏ phiếu “từ xa” đƣợc thực hiện từ xa trên mạng máy tính qua các phƣơng tiện “điện tử” nhƣ máy tính cá nhân, điện thoại di động,... Nhƣ vậy mọi ngƣời trong cuộc “không nhìn thấy mặt nhau” và các “lá phiếu” (lá phiếu “số”) đƣợc chuyển từ xa trên mạng máy tính tới “hòm phiếu”.
Cũng nhƣ cuộc bỏ phiếu truyền thống, cuộc bỏ từ xa phải bảo đảm yêu cầu: bí mật, 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 (nhằm loại bỏ khả năng mua bán phiếu), …
Yêu cầu bí mật lá phiếu là: ngoài cử tri, chỉ có Ban kiểm phiếu mới đƣợc biết nội dung lá phiếu, nhƣng họ lại không thể biết ai là chủ nhân của nó.
Yêu cầu toàn vẹn lá phiếu là: trên đƣờng truyền tin, nội dung lá phiếu không thể thay đổi, tất cả các lá phiếu đều đƣợc chuyển tới hòm phiếu an toàn, đúng thời gian, đƣợc kiểm phiếu đầy đủ.
Yêu cầu xác thực lá phiếu là: lá phiếu gửi tới hòm phiếu phải hợp lệ, đúng là của ngƣời có quyền bầu cử.
3.1.2. Tổ chức bỏ phiếu từ xa
Để tiến hành bỏ phiếu từ xa, ngƣời ta phải thực hiện hai công việc nhƣ sau: + Chuẩn bị hệ thống bỏ phiếu
+ Thực hiện bỏ phiếu
3.1.2.1. Chuẩn bị hệ thống bỏ phiếu
1/. Các thành phần kỹ thuật của hệ thống bỏ phiếu:
+ Hệ thống máy tính và các phần mềm phục vụ quy trình bỏ phiếu từ xa.
+ Ngƣời trung thực kiểm soát server nhằm đả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 bảo đảm an toàn thông tin: Chữ ký mù, mã hóa đồng cấu, chia sẻ bí mật, “chứng minh không tiết lộ thông tin”,...
2/. Các thành viên trong tổ chức bỏ phiếu:
+ Ban điều hành (ĐH): quản lý các hoạt động bầu cử, trong đó có thiết lập danh
sách cử tri, qui định cơ chế định danh cử tri.
+ Ban đăng ký (ĐK): Nhận dạng cử tri và ký cấp quyền bỏ phiếu cho cử tri.
+ Ban kiểm tra (KT): Để xác minh tính hợp lệ của lá phiếu (vì là phiếu đã mã hóa nên Ban kiểm phiếu không thể biết đƣợc lá phiếu có hợp lệ hay không).
+ Ban kiểm phiếu (KP): Kiểm phiếu và thông báo kết quả bỏ phiếu.
3.1.2.2. Quy trìnhbỏ phiếu từ xa
Để thực hiện bỏ phiếu từ xa có thể chia thành 3 giai đoạn chính:
Đăng ký bỏ phiếu
Bỏ phiếu
Kiểm phiếu
1/. Giai đoạn đăng ký bỏ phiếu:
+ Cử tri gửi hồ sơ xin đăng ký bầu cử tới ban ĐK, hồ sơ gồm các minh chứng hợp lệ nhƣ: Chứng minh thƣ điện tử (CMTĐT), giấy xác nhận của địa phƣơng, chữ ký của cử tri,...
+ Ban ĐK thẩm định hồ sơ của cử tri
+ Nếu hồ sơ của cử tri hợp lệ, ban ĐK cấp cho cử tri một định danh bầu cử + Sau đó thực hiện cấp lá phiếu ẩn danh cho cử tri.
2/. Giai đoạn bỏ phiếu: + Cử tri:
Lựa chọn ứng cử viên ghi lá phiếu ẩn danh
Mã hóa lá phiếu, chuyển tới ngƣời xác minh trung thực (XMTT) + Ngƣời XMCT:
Mã hóa lá phiếu lần thứ 2
Gửi lá phiếu về hòm phiếu
3/. Giai đoạn kiểm phiếu và thông báo kết quả:
+ Ban KP tính kết quả dựa vào các lá phiếu (đã đƣợc ngƣời XMTT mã hóa gửi về).
3.2. BÀI TOÁN VỀ AN TOÀN THÔNG TIN TRONG BỎ PHIẾU TỪ XA 3.2.1. Giai đoạn Đăng ký bỏ phiếu 3.2.1. Giai đoạn Đăng ký bỏ phiếu
+ Bảo vệ hồ sơ của CT xin bầu cử: Để đảm bảo hồ sơ của cử tri đƣợc đảm bảo về nội dung không bị sửa chữa.
+ Ban bầu cử thẩm định hồ sơ của CT xin bầu cử: Đảm bảo tƣ cách bầu cử của mỗi cử chi.
+ Ẩn danh lá phiếu: Phòng tránh lá phiếu bị theo dõi.
+ Một cử tri đăng ký bỏ phiếu nhiều lần: Đảm bảo mỗi cử tri chỉ đƣợc bỏ phiếu đúng một lần. (ví dụ: Giả danh tên cử tri không bỏ phiếu)
+ Ban bầu cử ký nhiều lá phiếu cho cho 1 CT: Mỗi cử tri chỉ đƣợc cấp không quá một lá phiếu.
3.2.2. Giai đoạn bỏ phiếu
+ Bảo mật nội dung lá phiếu: Đảm báo nội dung lá phiếu không bị lộ (phiếu bị xem trộm)
+ Bảo toàn nội dung lá phiếu: Đảm báo nội dunglá phiếu không bị bị sửa đổi nội dung.
3.2.3. Giại đoạnkiểm phiếu
+ Thành viên ban KP thông gian: Có thể ngƣời kiểm phiếu thông gian với ứng cử viên để sửa nội dung lá phiếu
3.3. PHƢƠNG PHÁP GIẢI QUYẾT CÁC BÀI TOÁN VỀ THÔNG TIN TRONG BỎ PHIẾU TỪ XA BỎ PHIẾU TỪ XA
Quy trình bỏ phiếu từ xa đƣợc chi tiết trong hình 3.1
Hình 3.1.Quy trình bỏ phiếu điê ̣n tử
3.3.1. Bài toán trong Giai đoạn đăng ký bỏ phiếu
Quy trình đăng ký bỏ phiếu đƣợc chi tiết trong hình 3.2.
a/. Bảo vệ hồ sơ của cử tri xin bầu cử:
Giải quyết: Dùng phƣơng pháp mã hóa, chữ ký số, …
b/. Ban Bầu cử thẩm định hồ sơ của cử tri xin bầu cử:
Giải quyết: Dùng phƣơng pháp giải mã, kiểm tra chữ ký số, …
Cử tri
Ban đăng ký
Ban kiểm phiếu
Hòm phiếu Lá phiếu Lá phiếu Bảng niêm yết công khai Chứng minh không
tiết lộ thông tin
Mã hóa đồng cấu
Trộn phiếu
Sơ đồ chia sẻ bí mật Chữ ký mù
c/. Ẩn danh lá phiếu: Đề phòng lá phiếu bị theo dõi.
Giải quyết:Dùng phƣơng pháp chữ ký “mù”
Giả sử ban KP dùng sơ đồ chữ ký RSA (n, p, q, b, a).
Nếu CT chuyển ngay Số định danh x của mình cho ban KP thì sẽ nhận đƣợc chữ ký là Sig(x) = x a (mod n). Cử tri không làm nhƣ vậy vì có thể bị theo dõi lá phiếu.
Cử tri che dấu Số định danh x bằng bí danh y: y = Blind(x) = x * r b(mod n)
với r đƣợc chọn ngẫu nhiên sao cho tồn tại phần tử nghịch đảo r -1 (mod n). Cử tri gửi bí danh y cho ban KP.
Ban KP ký trên bí danh y đƣợc chữ ký z:
z = E(y) = Sig(Blind(x)) = Sig(x * rb) = (x * rb) a = xa * (rb)a= xa * r . Ban KP gửi chữ ký z cho CT.
CT “xoá mù” trên z sẽ nhận đƣợc chữ ký trên Số định danh x:
Unblind(z)=Unblind(Sig(blind(x)))=Unblind(xa * r)= (xa * r) * r -1 = x a (mod n). Cử tri đó có đƣợc chữ kí của ban KP trên x, đó là x a (mod n).
Hình 3.2. Quy trình đăng ký bỏ phiếu
d/. Một cử tri đăng ký bỏ phiếu nhiều lần:
Giải quyết: Sử dụng “nhóm” thẩm định hồ sơ: Khóa giải mã hồ sơ đƣợc chia sẻ
thành nhiều mảnh và mỗi ngƣời trong ban thẩm định giữ một mảnh.
Cử tri
Id đã bị làm mù, Số CMT, Hộ khẩu,…
Ban ĐK
- Kiểm tra các giấy tờ của CT. Nếu hợp lệ thì ký trên Id đã làm mù do CT gửi về.
- Ghi lại Số CMT của CT để tránh việc CT đăng ký 2 lần. Xóa mù để thu đƣợc
Chữ kýtrên Id
e/. Ban bầu cử ký nhiều lá phiếu cho một cử tri:
Giải quyết:
+ Cách 1: Chia sẻ khóa ký mù đơn, mỗi ngƣời trong ban ĐK giữ 1 mảnh khóa.
+ Cách 2: Ký mù nhóm
+ Cách 3: Ký mù bội
Mỗi lá phiếu phải có thông tin định danh. Nó có thể là một con số x nào đó, và phải khác nhau. Trên mỗi lá phiếu phải có chữ ký trên số định danh x, thì lá phiếu mới có giá trị để bầu cử. Nếu cử tri chuyển ngay số định danh x cho ban KP ký, thì lập tức họ xác lập đƣợc mối liên hệ giữa cử chi và x (ví dụ qua địa chỉ nơi gửi trên Internet).
Đó là điều cử tri không muốn vì sợ rắc rối sau này.Để tránh tình huống trên, cử tri biến đổi x thành y trƣớc khi đƣa cho ban ĐK kí xác nhận.ban ĐK ký vào y, mà không biết đó là số định danh x đã bị che dấu (làm mù). Họ trao chữ ký trên y là z cho cử chi. Cử tri “xoá mù” trên z sẽ đƣợc chữ ký của ban ĐK trên số định danh x, nhƣ vậy cử chi có quyền bầu cử.
Để phòng tránh sự gian lận “thông đồng” giữa một ngƣời nào đó trong ban KP và cử tri, hệ thống dùng “đa chữ ký mù” để bảo đảm sự nhất trí cao khi cấp quyền bỏ phiếu cho cử tri.
3.3.2. Bài toán trong giai đoạn bỏ phiếu
Quy trình trong giai đoạn bỏ phiếu đƣợc chi tiết trong hình 3.3.
a/. Bảo mật nội dung lá phiếu: Phòng tránh lá phiếu bị xem trộm.
Giải quyết: Dùng phƣơng pháp mã hóa để mã hóa lá phiếu.
Giải quyết: Dùng phƣơng pháp mã hóa, chữ ký số, … Hình 3.3. Quy trình bỏ phiếu Chọn ý kiến cho lá phiếu của mình Cử tri
- Chữ ký của Ban đăng ký. - Lá phiếu đã mã hóa bằng khóa công khai của Ban KP.
- “Chứng minh không tiết lộ thông tin”. -
- Kiểm tra chữ ký (Liên hệ với Ban ĐK).
- Thực hiện các giao thức tƣơng tác với CT để kiểm tra tính hợp lệ của lá phiếu.
- Mã hóa lại lá phiếu, gửi về Ban KP. - Chứng minh không tiết lộ thông tin
XMTT Bankiểm phiếu
3.3.3. Bài toán trong Giai đoạn Kiểm phiếu
Quy trình giai đoạn Kiểm phiếu đƣợc chi tiết trong hình 3.4
a/. Thành viên Ban kiểm phiếu thông gian: Sửa đổi nội dung Lá phiếu.
Theo suy nghĩ thông thƣờng, khi cử tri chuyển lá phiếu tới ban KP thì họ chỉ cần mã hóa nội dung lá phiếu là đủ. Vì tiếp theo ban KP chỉ cần giải mã nội dung lá phiếu là tính đƣợc kết quả (kiểm phiếu).
Nhƣng trên thực tế có thể xảy ra các tình huống sau: ban KP hay một nhóm thành viên ban KP không trung thực đã gian lận phiếu thăm dò, ví dụ sửa lại nội dung lá phiếu sau khi giải mã (trƣớc khi kiểm phiếu). Để khắc phục tình hình này, ngƣời ta sử dụng kỹ thuật “mã hóa đồng cấu - chia sẻ bí mật”. Với giải pháp này ban KP không phải giải mã từng lá phiếu nhƣng vẫn tính đƣợc kết quả.
Giải quyết:
+ Cách 1: Dùng phƣơng pháp chia sẻ khóa giải mãlá phiếu, mỗi ngƣời kiểm
phiếu giữ 1 mảnh khóa.
+ Cách 2: Mã hóa lá phiếu nhiều lần với các khóa công khai của từng thành viên
ban KP. Sau đó Trộn thứ tự các lá phiếu sau mỗi lần giải mã.
+ Cách 3: Chiasẻ lá phiếu thành nhiều mảnh, mỗi ngƣời trong ban KP giữ một
mảnh.
Chia sẻ khóa giải mã và chia sẻ lá phiếu:
Chìa khoá để giải mã nội dung lá phiếu đƣợc chia thành m mảnh, mỗi ngƣời trong ban KP giữ 1 mảnh, và phải bảo đảm rằng 1 nhóm ngƣời ít hơn m không thể khôi phục đƣợc khoá giải mã.
Bản thân nội dung lá phiếu có thể đƣợc chia thành m mảnh.Cử tri gửi cho m thành viên của ban KP, mỗi ngƣời giữ 1 mảnh và phải bảo đảm rằng 1 nhóm ngƣời ít hơn m không thể xác định đƣợc nội dung lá phiếu.
Với kỹ thuật này, cuộc bỏ phiếu bảo đảm đƣợc bí mật và kiểm soát đƣợc kết quả bỏ phiếu: cụ thể là tránh gian lận phiếu.
Hiện nay có nhiều loại sơ đồ “chia sẻ bí mật” để thực hiện các công việc nhƣ trên, ví dụ: sơ đồ chia sẻ bí mật ngƣỡng Shamir, cấu trúc mạch đơn điệu, không gian Vector Brickell,…
b/. Phòng tránh cử tri bán lá phiếu cho ứng cử viên:
Giải quyết: Dùng ngƣời XMTT mã hóa lá phiếu lần thứ 2. Do đó cử tri không
nhận ra lá phiếu của mình.
Giải quyết: Kiểm tra định danh, kiểm tra chữ ký của ban ĐK
Hình 3.4. Quy trình kiểm phiếu
3.3.4. Bài toán trong kiểm tra phiếu của ngƣời XMTT a/. Kiểm tra tính hợp lệ lá phiếu của CT: a/. Kiểm tra tính hợp lệ lá phiếu của CT:
Giải quyết: Dùng phƣơng pháp “Chứng minh không tiết lộ thông tin”.
Chứng minh không tiết lộ thông tin
+ Khái niệm:Chứng minh không tiết lộ thông tin là phép chứng minh để một
ngƣời P thuyết phục một ngƣời V tin vào một điều gì đó có thật mà không để lộ thông tin.
Chứng minh không tiết lộ thông tin đƣợc Goldwasser, Micali và Rackoff năm 1981 (đƣợc viết tắt GRM) có ảnh hƣởng rất lớn trong lĩnh vực khoa học máy tính.
+ Giao thức :
Giao thức là giao thức “hỏi - đáp” 3 bƣớc, để P chứng minh cho V một vấn đề nào đó.
- Bƣớc 1: P gửi cho V: một giá trị ngẫu nhiên.
- Bƣớc 2: V gửi lại P: một giá trị ngẫu nhiên nhƣ là giá trị dùng để kiểm thử. - Bƣớc 3: P gửi đáp lại V: một giá trị.
Kết quả V thừa nhận hoặc bác bỏ vấn đề P chứng minh.
+ Ví dụ: Hòm phiếu Mạng trộn Ban KP - Khôi phục khóa bí mật. - Tính kết quả bầu cử. - Công bố kết quả lên bảng niêm yết công khai
Phép chứng minh không tiết lộ thông tin đã đƣợc mô hình hóa bởi Quisquater và Guillou trong ví dụ về “hang động của Ali Baba”. Ví dụ này đƣợc minh họathông qua hình 3.5 và đƣợcgiải thích nhƣ sau:
Hình 3.5. Ví dụ minh họa chứng minh không tiết lộ thông tin
Từ bây giờ chúng ta sẽ coi Peggy là Prover (ngƣời chứng minh), còn Victor là Verifier (ngƣời kiểm thử). Peggy(P) muốn chứng minh với Victor(V) rằng cô ta biết câu thần chú có thể mở đƣợc cánh cửa bí mật tại các điểm R-S, nhƣng cô ta không muốn tiết lộ bí mật đó với Victor.
Quá trình đến nơi đó diễn ra nhƣ sau: Victor đi tới P và đợi đến khi Peggy đi khỏi R hoặc S. Sau đó Victor di chuyển đến Q và gọi Peggy ra ngoài từ bên trái hoặc bên phải của đƣờng hầm(kỹ thuật cut and choose). Nếu Peggy không biết câu thần chú, cô ta chỉ có 50% khả năng ra ngoài từ bên đúng. Giao thức có thể đƣợc lặp lại nhiều lần đến khi Victor tin rằng Peggy đã biết câu thần chú. Nếu giao thức đƣợc lặp lại k lần, xác suất lừa gạt của Peggy là 2k.Và nó không có nghĩa là giao thức đã đƣợc lặp bao nhiêu lần.Victor vẫn không biết đƣợc bí mật.
Ý nghĩa chính ẩn trong nguyên nhân là: Peggy muốn chứng minh một sự thật hiển nhiên F1 nhƣng cô ta không muốn tiết lộ sự chứng minh này. Vì thế cô ta đi tìm những sự thật F2 khác, mà có thể tiết lộ công khai, nhƣ là F2 là đúngnếu F1 đúng
(điều kiện cần thiết).Vì thế cô ta “thay thế” phép chứng minh của F1 chỉ bằng chứng minh F2. Trong ví dụ, F1 là câu thần chú bí mật,và F2 là khả năng xuất hiện từ mọi phía của đƣờng hầm. Nếu Victor đồng ý rằng F2 không thể đúng nếu F1 không đúng, sau đó giao thức có thể tiến hành.
Theo quy trình trong hình 3.3 giai đoạn CT chuyển lá phiếu tới Ban KP, phải thực hiện giao thức nhƣ trong bảng 3.1. Tức là CT sẽ mã hóa lá phiếu bằng hệ mã hóa Elgamal, lá phiếu đã mã hóa đƣợc gửi tới ngƣời XMTT kèm theo “Chứng minh không tiết lộ thông tin” cho tính hợp lệ của lá phiếu đó. Giả sử trong cuộc bầu cử “chọn 1 trong k”, nếu cử tri nào đó chọn Gi là ứng cử viên thứ i trong danh sách thì lá phiếu hợp lệ phải ghi Gi với i = 1, 2,…, k. Bằng mã hóa Elgamal, lựa chọn Gi đƣợc mã hóa
thành (x, y) = (gα, hαGi). Nhƣ vậy CT muốn chứng minh với ngƣời XMTT rằng lá phiếu (x, y) là hợp lệ, thì anh ta phải chỉ ra một trong k đẳng thức sau là đúng: (logg x = logh (y/G1))… (logg x = logh (y/Gk)). Để chứng minh đẳng thức trên là đúng mà không bị lộ Gi, CT và ngƣời XMTT thống nhất dùng giao thức “Chứng minh không tiết lộ thông tin” nhƣ sau:
Bảng 3.1. Giao thức cử tri chứng minh lá phiếu hợp lệ
Cử tri Ngƣời XMTT
- Mã hóa lá phiếu [(x, y) = (gα, hαGi)] - Chọn ngẫu nhiên wZ p Tính ai = gw, bi = hw - Với j = 1,…, i - 1, i + 1,…, k Chọn ,dj, rj Zpf(chƣa chọn di, ri) Tính a j= 𝑔𝑟𝑖𝑥𝑑𝑖, b j= ℎ𝑟𝑖(𝑦 𝐺𝑗)𝑑𝑖 - Đặt (A,B)= (a1,b1),…,(ak,bk) (Sử dụng ai, bi đã tính ở trên) (x, y), (A,B) c Chọn ngẫu nhiên c Zp - Tinh: di= c- 𝑗 ≠𝑖𝑑𝑗 r i=w-𝛼𝑑𝑗 d, r = (d1, r1),…, (dk, rk) d, r -Kiểm tra: c=d1+d2+...dk Cho j = 1,…, k aj= 𝑔𝑟𝑖𝑥𝑑𝑖 và bj=ℎ𝑟𝑖(𝑦 𝐺𝑗)𝑑𝑖 Nếu đều đúng ngƣời XMTT kết luận: Lá phiếu hợp lệ
b/. Kiểm tra tính hợp lệ khóa mã hóa của ngƣời XMTT:
Giải quyết: Dùng phƣơng pháp “Chứng minh không tiết lộ thông tin”.
Theo quy trình trong hình 3.3 ngƣời XMTT sẽ thực hiện Giao thức 2. Tức là sau