TiaSang
Thứ 3, Ngày 21 tháng 9 năm 2021
Khoa học và Công nghệ

Bầu cử điện tử - Tăng tính dân chủ bằng phương pháp mật mã

09/05/2013 14:07 - Phan Dương Hiệu

Một nhà nước dân chủ nhất thiết cần xây dựng các hệ thống bầu cử tốt để thực sự lựa chọn được người đứng đầu xứng đáng. Tuy nhiên, các hệ thống bầu cử đang được sử dụng đều chưa đạt được đồng thời hai yêu cầu quan trọng sau đây:

- 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ựa chọ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ình cho bất cứ bên nào.

Trong một số cuộc bầu cử, để đả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à vì thế việc kiểm phiếu là hoàn toàn công khai và ai cũng có thể kiểm tra phiếu bầu của mình đã được tính. Tuy nhiên, đ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ếu củ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ếu bầu, hầu hết các cuộc bầu cử hiện nay chọn việc đảm bảo yêu cầu thứ hai bằng cách ẩn danh lá phiều bầu: cử tri đến trung tâm bầu cử, đượ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 tuy vậy lại khô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ử tri buộ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 được liệ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ủa mình có bị thay đổi. Việc buộc phải đặt sự tin tưởng tuyệt đối vào những người kiểm phiếu có thể làm nhiều cuộc bầu cử không có được lòng tin của cử tri. Điều này là tất yếu khi những người kiểm phiếu không ở những phe phái đối lập nhau và do vậy không có sự kiểm soát chặt chẽ lẫn nhau. Ngay cả trong các cuộc bầu cử ở những nước phát triển có các đảng phái đối lập, phương pháp ẩn danh này gần đây cũng có bị giảm lòng tin nơi cử tri do có những sai sót ở những mức độ lớn nhất: năm 2000, hơn 50.000 phiếu ở quận Brown bị bỏ sót và việc Bush thắng AlGore ở Florida với 537 phiếu chênh lệch (và dẫn tới thắng cuộc bầu cử Tổng thống) đã gây ra những cuộc tranh luận nảy lửa; mới đây năm 2012, trong cuộc bầu Chủ tịch Đảng Cộng hòa Pháp, Jean-François Copé được tuyên bố thắng cử với chênh lệch sít sao so với François Fillon nhưng cuối cùng trưởng ban kiểm phiếu đã phải thừa nhận có đến hơn 300 phiếu của một số vùng bị bỏ sót mà nếu tính những phiếu này thì kết quả bị đảo ngược và François Fillon lại vượt hơn 26 phiếu.

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ầu cử đề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 đạ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ầu cử đạt được cả hai yêu cầu trên. Người đầu tiên đặt nền móng cho việc xây dựng các hệ bầu cử tích hợp các phương pháp mật mã là Chaum vào năm 1981[1]. Cũng tương tự như việc xây dựng các hệ mã hóa khóa công khai hay các chứng minh tương tác không để lộ tri thức, các phương pháp mật mã giúp chúng ta có thể đạt được những mục tiêu tưởng chừng như không thể. Bài viết này tập trung phân tích một số phương pháp toán học của mật mã trong một hệ bầu cử điện tử nhằm đạt đồng thời tính kiểm tra được và tính tự do trong lựa chọn.

I. Mã hóa khóa công khai để mã phiếu bầu

Để đồng thời đạt tính kiểm tra được và tính tự do trong lựa chọn, ta phải làm sao 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ác phiế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ự ẩn danh 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 giấ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, lẽ dĩ nhiên là 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ông khai: 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ậy chỉ có những người có thẩm quyền mới có thể kiểm phiếu bầu.

Mật mã khóa công khai được biết đến cách đây chưa đầy bốn thập kỷ qua công trình khoa học của Diffie-Hellman nhưng nó đánh dấu bước khởi đầu cho các nghiên cứu sâu rộng của mật mã hiện đại. Để hiểu hơn về mật mã khóa công khai, bạn đọc có thể tìm đọc bài “Mật mã khóa công khai: hành trình 35 năm” trên Tia Sáng số 08 ngày 20.4.2011 (bản điện tử tại http://tiasang.com.vn/Default.aspx?tabid=62& News=4003&CategoryID=2).

Với việc dùng một thuật toán mã hóa khóa công khai E với cặp khóa công khai pk và bí mật sk, một lựa chọn ứng cử viên X sẽ bị mã thành C = E(pk,X) một cách công khai nhưng bất kể ai không có khóa bí mật sk sẽ không thể biết được X từ C. Khi đó, ta vừa có thể công bố lá phiếu của A mà vẫn giữ cho lựa chọn của A được bí mật: trên bảng phiếu sẽ công bố (A, C).

II. Kiểm tra tổng các phiếu bầu thay vì kiểm tra từng lá phiếu

Tuy nhiên, việc sử dụng mã hóa khóa công khai một cách đơn giản như trên là chưa thể đủ để giải quyết vấn đề, nhất là trong việc đảm bảo tính chất ẩn danh của cử tri trong phiếu bầu. Trở ngại là nếu ta vẫn sử dụng phương pháp kiểm phiếu thông thường thì cần giải mã lá phiếu của A và do vậy lựa chọn của A không còn là bí mật với những người kiểm phiếu. Tính tự do trong lựa chọn yêu cầu sự lựa chọn của A được bí mật không chỉ với người quan sát mà ngay cả với người kiểm phiếu.

Giải quyết vấn đề bí mật phiếu bầu cho cử tri đã có một số phương án như việc dùng các hệ mix-net (xáo trộn phiếu) hay chữ ký mù (blind signature) nhưng có lẽ ý tưởng nổi bật nhất là phương pháp gộp phiếu bầu, được đề nghị lần đầu tiên bởi Cohen và Fischer[2]. Trái với phương pháp kiểm từng phiếu một, tất cả các phiếu bầu được gộp lại với nhau và việc kiểm phiếu sẽ được thực hiện duy nhất trên kết quả gộp. Kết quả là ta sẽ có trực tiếp tổng các phiếu bầu cho từng ứng cử viên mà không cần phải kiểm tra từng phiếu đơn lẻ. Đây là một ý tưởng trọng tâm cho việc tiến tới đảm bảo đồng thời tính kiểm tra được và tính tự do trong lựa chọn của cử tri.

Một cách khá bất ngờ, các hệ mã hóa đồng cấu (homomorphic encryption) giúp giải quyết vấn đề trên một cách tương đối đơn giản. Một hệ mã đồng cấu với phép cộng cho ta tính chất: gộp hai bản mã lại với nhau (phép gộp, ký hiệu là *, có thể là phép cộng, phép nhân hay một toán tử nào đó) sẽ cho ta bản mã có nội dung là tổng của hai bản rõ tương ứng: E(pk,x) * E(pk,y) = E(pk,x+y)

Với một hệ mã có tính chất như vậy, ta có thể dễ dàng hình dung một cuộc bỏ phiếu cho ứng cử viên 3 ứng cử viên X,Y,Z với số cử tri ít hơn 100 triệu như sau: một phiếu bầu cho X có thể như là mã của 1, một phiếu bầu cho Y có thể như là mã của 108, một phiếu bầu cho Z có thể như là mã của 1016:

Phiếu cho X là mã của 00000000 00000000 00000001
Phiếu cho Y là mã của 00000000 00000001 00000000
Phiếu cho Z là mã của 00000001 00000000 00000000


Sau khi gộp tất cả các phiếu (dùng phép tính gộp* tất cả các giá trị C trong tất cả các lá phiếu (A, C)) và giải mã lá phiếu gộp với khóa bí mật sk sẽ cho ta kết quả là M và tổng số phiếu bầu cho các ứng cử viên được xác định trong các khoảng số tương ứng. Chẳng hạn với M = 09670002 04823458 15712347 thì có nghĩa ứng cử viên X được 9670002 phiếu, ứng cử viên Y được 4823458 phiếu và ứng cử viên Z được 15712347 và thắng cử.

III. Mật mã ngưỡng giúp đạt tính phân quyền trong kiểm phiếu

Phương án sử dụng mật mã như mô tả phần trên vẫn sẽ gây cho ta một điều thắc mắc: đúng là việc kiểm phiếu chỉ cần thực hiện trên kết quả gộp của các phiếu bầu nhưng nếu người kiểm phiếu bất chấp quy tắc mà cố tình giải mã từng lá phiếu để phá tính ẩn danh của lá phiếu thì sao? Ý tưởng để giải quyết vấn đề này là hệ thống sẽ phải được xây dựng để quyền kiểm phiếu được phân ra cho nhiều bên và chỉ khi các bên hợp tác với nhau thì việc giải mã mới thực hiện được. Khi đó, một mặt việc tính tổng số phiếu bầu vẫn được đảm bảo khi tất cả cùng nhau hợp tác giải mã kết quả gộp của tất cả các phiếu bầu, mặt khác lựa chọn trong từng lá phiếu sẽ chỉ bị lộ khi tất cả các bên kiểm phiếu cùng cấu kết với nhau làm sai luật. Khi quyền kiểm phiếu được phân chia cho các bên có lợi ích đối lập thì việc cùng cấu kết với nhau là rất ít có khả năng xảy ra. Lấy ví dụ một cuộc bầu người đứng đầu ở một nước. Nếu nước đó có chế độ đa đảng thì mỗi ứng cử viên của một đảng có thể chỉ định một người trong ban kiểm phiếu và vì lợi ích đối nghịch giữa các bên nên người đi bầu có thể tin việc không thể có chuyện các bên cùng cấu kết với nhau để phá vỡ tính an toàn của hệ thống bầu cử. Nếu nước đó có chế độ một đảng, để đảm bảo sự tin tưởng vào hệ thống bầu cử, cần có sự tham gia của các bên giám sát thực sự độc lập để thuyết phục cử tri tin tưởng là khó có chuyện tất cả các bên cùng cấu kết phá vỡ tính an toàn của hệ thống.

Nói tóm lại, một hệ bầu cử tốt phải đảm bảo tính chất phân quyền kiểm phiếu: không thể có một phía (một người) nào có thể tự thực hiện việc kiểm phiếu; quá trình kiểm phiếu cần sự kết hợp của nhiều bên khác nhau. Tính chất phân quyền kiểm phiếu được thực hiện thông qua các hệ mã hóa với ngưỡng (threshold cryptosystems), được xem xét lần đầu bởi Desmedt và Frankel năm 1990[3]. Một hệ mã hóa với ngưỡng là một hệ thống gồm nhiều bên, mỗi bên tự thiết lập một cách độc lập một cặp khóa bí mật/khóa công khai riêng, sau đó khóa công khai cho hệ thống chung được tính thông qua các khóa công khai của các bên. Quá trình giải mã chỉ được thiết lập khi các bên cùng hợp tác lại với nhau: mỗi bên độc lập dùng khóa bí mật của mình để tính một kết quả trung gian trên bản mã; bản mã chỉ được giải hoàn toàn bởi sự kết hợp các kết quả trung gian đó.

Các hệ mã hóa ngưỡng có một đặc tính thú vị: các bên có thể cùng xây dựng một khóa công khai thực pk và một khóa bí mật ảo sk tương ứng. Tính chất ảo ở chỗ khóa bí mật sk tồn tại nhưng không một bên nào biết, và dù không bên nào biết khóa bí mật nhưng sự giải mã vẫn có thể thực hiện được thông qua sự hợp tác giữa các bên. Ví dụ trong hệ mã RSA thì thông thường người ta tìm 2 số nguyên tố lớn p,q rồi lấy khóa công khai N = pq là tích của hai số p và q, và khóa bí mật là cặp số sk = (p,q). Trong hệ mã ngưỡng, việc xây dựng khóa công khai N được chia sẻ giữa các bên sao cho không bên nào biết cụ thể giá trị khóa bí mật của (p,q) mà vẫn có thể biết chắc chắn N là tích của hai số nguyên tố lớn. Việc sinh khóa như vậy được thực hiện bởi Boneh – Franklin từ năm 1997[4]. Bản thân hệ mã RSA không có tính chất đồng cấu với phép cộng và không sử dụng được cho các hệ thống bầu cử nhưng cách xây dựng này cũng áp dụng trong việc sinh khóa cho hệ mã Paillier[5] – một hệ mã đồng cấu với phép cộng và có những tính chất phù hợp cho việc sử dụng trong các hệ bầu cử điện tử.

IV. Mã hóa xác suất giúp giữ vững tính ẩn danh của phiếu bầu

Hệ mã dùng trong bầu cử không thể là một hệ mã tất định ở đó tương ứng một bản rõ chỉ cho duy nhất một bản mã. Thực vậy, với một hệ mã tất định, mọi lá phiếu dành cho một ứng cử viên sẽ có mã giống nhau và tính ẩn danh dễ dàng bị phá vỡ. Do vậy, hệ mã sử dụng bắt buộc phải là một hệ mã xác suất và tương ứng với cùng một lựa chọn sẽ có một tập rất lớn các bản mã tương ứng. Các hệ mã xác suất được giới thiệu lần đầu bởi Goldwasser-Micali năm 1982[6] nhằm tăng cường tính an toàn cho các hệ mã (thực tế hiện nay, điều kiện cần để một hệ mã đạt an toàn theo mức chuẩn hóa là nó phải là một hệ mã xác suất). Trước đây, xác suất thường được sử dụng như một công cụ hiệu quả để giải quyết các bài toán thì nay xác suất được đưa vào ngay cả trong bước xây dựng hệ mã và đó cũng là một cột mốc đánh dấu thêm cho vài trò của ngẫu nhiên trong khoa học máy tính. Quay trở lại với hệ bầu cử, nay lá phiếu của A bầu cho ứng cử viên X sẽ có dạng (A, C = E(pk,X,r)) với r là một giá trị ngẫu nhiên đủ lớn để khả năng xảy ra đụng độ (một giá trị ngẫu nhiên trên hai lá phiếu khác nhau) là vô cùng nhỏ. Các hệ mã hiện dùng trong thực tế như mã ElGamal hay các phiên bản tang cường của RSA đều là các hệ mã xác suất. Hệ mã Paillier là một hệ mã xác suất và có tính chất đồng cầu với phép cộng, và do vậy nó được sử dụng trong các hệ bầu cử điện tử.

V. Chứng minh tương tác để chống việc bán phiếu bầu

Tính tự do trong lựa chọn thể hiện ở cả hai khía cạnh:
- cử tri được đảm bảo sự ẩn danh trong lá phiếu của mình nhằm tránh bị gây áp lực trong lựa chọn
- hệ thống phải đảm bảo là cử tri không có cách nào có thể chủ động để bán phiếu của mình
Khía cạnh thứ nhất được đảm bảo thông qua sự mã hóa của lá phiếu. Ngay cả với những người kiểm phiếu, thông qua giải mã với ngưỡng, cũng không biết lựa chọn của từng lá phiếu. Tuy nhiên, sự ẩn danh này chưa đủ để chống lại việc chủ động bán phiếu. Theo cách hình dung tự nhiên, cử tri A sẽ tự do tạo giá trị phiếu bầu cho mình bằng cách chọn r và tính mã từ khóa công khai của hệ thống C= E(pk,X,r). Tuy nhiên, khi đó A biết giá trị r thì sẽ có thể chứng minh là mình đã bầu cho X bằng cách đưa r và X cho bất kỳ ai kiểm tra quan hệ C= E(pk,X,r). Có khả năng chứng minh mình đã bầu cho ai sẽ dẫn tới có khả năng bán phiếu bầu của mình. Benaloh và Tuinstra[7] đã lần đầu nghiên cứu việc xem xét việc ngăn cản cử tri có khả năng bán phiếu bầu.
Điểm mấu chốt để ngăn việc bán phiếu bầu là không cho cử tri A toàn quyền tạo lập giá trị lá phiếu C = E(pk,X,r). Điều đó có nghĩa là phải làm sao để cử tri A có thể tính được giá trị C = E(pk,X,r) mà lại không biết giá trị ngẫu nhiên r. Các hệ mã ngẫu nhiên hóa được (randomizable encryption) cho phép ta thực hiện công việc này: cử tri A khởi đầu bằng việc tạo một giá trị mã C = E(pk,X,r) cho lựa chọn của mình và gửi cho hệ thống, hệ thống sẽ làm ngẫu nhiên hóa giá trị lá phiếu của A sang một bản mã ngẫu nhiên C+ = E(pk,X,r+) của cùng lựa chọn X và gửi lại cho A. Khi đó C+ sẽ là giá trị lá phiếu của A nhưng A không biết giá trị r+ và không chứng minh cho ai khác biết được rằng C+ là bản mã của lựa chọn X và vì thế không thể bán được phiếu bầu. Mặt khác, hệ thống nhận phiếu chỉ có khả năng làm ngẫu nhiên bản mã chứ không biết được nội dung lựa chọn X của cử tri A và tính ẩn danh trong lựa chọn vẫn được đảm bảo.


Điều thú vị là các hệ mã đồng cấu đều có tính chất ngẫu nhiên hóa được và do vậy có thể được sử dụng trực tiếp cho việc chống bán phiếu của cử tri. Tuy nhiên, phương án trên còn một trở ngại: làm thế nào để cử tri A biết được là hệ thống đã thực sự làm ngẫu nhiên hóa phiếu bầu của mình chứ không phải là thay phiếu bầu của mình bằng một phiếu bầu cho một lựa chọn khác? Rất may là ở đây các kết quả của chứng minh tương tác đã có thể áp dụng. Một chứng minh tương tác không để lộ tri thức (zero-knowledge proof), được giới thiệu lần đầu bởi Goldwasser, Micali và Rackoff vào năm 1985[8], là một chứng minh nơi người chứng minh hoàn toàn có thể thuyết phục người đối thoại về một quan hệ (ở đây là quan hệ C+ chính là một bản mã ngẫu nhiên hóa của bản mã gốc C) mà không để lộ một chút thông tin gì. Nói cách khác, A hoàn toàn có thể bị thuyết phục là C+ là giá trị mã của lựa chọn X nhưng bản thân A lại không có khả năng chứng minh điều đó vì không có thêm bất kể thông tin gì khác. Và do không thể chứng minh được mình đã bầu cho ai, A không thể bán phiếu bầu của mình.

Việc yêu cầu mọi cử tri có khả năng kiểm tra các chứng minh tương tác là không thể, nhất là trong các cuộc bầu cử có quy mô lớn. Cách thức hiện nay là cử tri ủy thác cho các chiếc máy đã lập trình sẵn thực hiện thay công việc này. Các chiếc máy này sẽ được kiểm định chặt chẽ bởi tất cả các bên và các chuyên gia trước khi bầu cử. Trong quá trình bầu cử, sự hoạt động của các chiếc máy này cũng được đảm bảo bằng sự kiểm tra ngẫu nhiên liên tục: một số nhà chuyên môn sẽ làm cử tri giả để xem chiếc máy có vận hành đúng hay không. Do việc kiểm tra là ngẫu nhiên và được lặp lại liên tục nhiều lần, xác suất để máy có thể chạy sai mà vẫn qua mắt các lần kiểm tra là vô cùng nhỏ. Cách thức trên cũng giống như việc ta tin tưởng vào những chiếc máy ATM làm công việc mã hóa hộ ta, hay các chương trình thiết lập giao dịch trên Internet.

Bên cạnh đó, hiện nay nhiều hướng nghiên cứu đang cố gắng giảm thiểu tối đa sự tin tưởng vào máy bằng cách kết hợp vài thao tác đơn giản của người và những tính toán quan trọng của một máy trợ giúp để cử tri vẫn được thuyết phục là lựa chọn của mình đã được tính mà máy trợ giúp vẫn không biết thông tin về lựa chọn đó (mô hình assited-human interactive proofs).

Lời kết: từ lý thuyết đến thực tế

Các hệ thống bầu cử tích hợp phương pháp mật mã cho phép tăng tính dân chủ trong bầu cử. Đây là một ứng dụng thú vị của mật mã khi những khái niệm hiện đại như mã hóa xác suất, mã hóa ngưỡng, mã hóa đồng cấu, chứng minh tương tác cùng được áp dụng. Tuy đẹp về lý thuyết nhưng để có thể áp dụng vào thực tế thì còn nhiều điều cần bàn:

- Khi sử dụng các sơ đồ mã để mã hóa sự lựa chọn của cử tri, tính ẩn danh được đảm bảo dựa trên sự an toàn của các sơ đồ mã. Tính khó phá vỡ của các sơ đồ này dựa trên độ khó của một số bài toán. Các bài toán này hiện tại đều rất khó giải nhưng không có gì đảm bảo nó sẽ đứng vững mãi trong tương lai. Chẳng hạn, một khi máy tính lượng tử được xây dựng để có thể tính toán trên các số lớn, bài toán phân tích (factorization) trở nên dễ giải và các hệ mã như RSA, Paillier sẽ bị phá vỡ. Khi đó tính ẩn danh cũng sẽ bị phá vỡ, và cho dù cuộc bầu cử đã ngã ngũ từ nhiều năm trước đó thì hậu quả cũng không phải là nhỏ.

- Khó thuyết phục tất cả người dân về tính ưu việt của bỏ phiếu điện tử nên hiện tại hầu hết các ứng dụng của bầu cử điện tử là ở quy mô hẹp. Một số ví dụ như : hội mật mã đã dùng bầu cử điện tử trong việc bầu các vị trí của hội và do tính nhanh gọn của nó mà số người bỏ phiếu tăng lên đáng kể; trường Université Catholique de Louvain của Bỉ cũng đã sử dụng bầu cử điện tử cho chức hiệu trưởng; ở quy mô lớn hơn, Thụy Sỹ cũng bước đầu cho phép sử dụng bầu cử điện tử như một lựa chọn bên cạnh hệ thống bầu cử truyền thống trong một số cuộc trưng cầu dân ý (http://www.cbsnews.com/stories/2004/09/25/ world/main645615.shtml). Với nước ta, một số cuộc bầu chẳng hạn trong Quốc hội hoàn toàn có thể thử nghiệm dùng bầu cử điện tử.

Khi mã hóa khóa công khai, chữ ký điện tử ra đời, nhiều người cũng cho rằng đó là những khái niệm toán học đẹp nhưng khó có ai hình dung nó lại có những ứng dụng rộng khắp vào cuộc sống như ngày nay: các mua bán trực tuyến sử dụng mã khóa công khai; chữ ký điện tử ở nhiều nước (ở Pháp là từ năm 2000) được chấp nhận là có giá trị pháp lý như chữ ký thường và được sử dụng trong việc trả thuế thu nhập qua Internet. Do sự quan trọng của các cuộc bầu cử, yêu cầu tin cậy cho các máy bầu cử là quan trọng hơn rất nhiều so với các chiếc máy dùng trong những giao dịch đơn lẻ thông thường. Các nghiên cứu hiện tại đang nhằm tăng cường tối đa tính tin cậy của các chiếc máy bầu cử và trong tương lai, việc có thể đặt lòng tin vào các chiếc máy đã được kiểm định chặt chẽ từ nhiều phía có lợi ích đối lập không phải là không thể chấp nhận. Và do vậy, với việc giúp tăng tính dân chủ và tính chính xác trong bầu cử, rất có thể trong một ngày không xa nhiều cuộc bầu cử sẽ được thực hiện qua hệ thống bầu cử dùng mật mã.

---

Tài liệu tham khảo

[1] D. Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms. Communications of the ACM, 24(2):84–88, 1981.

[2] J. D. Cohen and M. J. Fischer. A robust and verifiable cryptographically secure election scheme. In FOCS ’85, pages 372–382, 1985.

[3] Y. Desmedt and Y. Frankel. Threshold cryptosystems. In CRYPTO ‘90, pages 307–315, 1990.

[4] D. Boneh and M.K. Franklin. Efficient Generation of Shared RSA Keys. In CRYPTO ’97, pages 425–439.

[5] P. Paillier. Public-key cryptosystems based on composite degree residuosity classes. In EUROCRYPT ‘99, pages 223–238.

[6] S. Goldwasser and S. Micali. Probabilistic encryption & how to play mental poker keeping secret all partial information. In STOC ’82, pages 365–377, 1982.

[7] J. Benaloh and D. Tuinstra. Receipt-free secret-ballot elections. In STOC ’94, pages 544–553, 1994.

[8] S. Goldwasser, S. Micali and C. Rackoff. The knowledge complexity of interactive proof systems. In STOC ‘85, pages 291-304