paint-brush
Cách mã hóa có thể bảo mật việc bỏ phiếu trực tuyếnby@nerv
587
587

Cách mã hóa có thể bảo mật việc bỏ phiếu trực tuyến

Thách thức lớn nhất của bỏ phiếu điện tử từ xa là đạt được mức độ bảo mật cao trong môi trường không được kiểm soát và nền tảng không an toàn. Các thuộc tính bỏ phiếu điện tử và nhiều phân loại khác nhau đặt ra các yêu cầu tối thiểu đã được thiết lập. Mục tiêu luôn là dung hòa hai quyền lợi dường như loại trừ lẫn nhau: tính có thể kiểm chứng và quyền riêng tư.
featured image - Cách mã hóa có thể bảo mật việc bỏ phiếu trực tuyến
Network Emergency Response Volunteers HackerNoon profile picture


Lưu ý: Một số thông tin được trình bày ở đây được cố tình đơn giản hóa quá mức. Các chi tiết cụ thể phụ thuộc vào việc triển khai thực tế vì có nhiều cách và kỹ thuật mã hóa thay thế để đạt được cùng mục tiêu.


"Thách thức lớn nhất của bỏ phiếu điện tử từ xa là đạt được mức độ bảo mật cao trong một môi trường không được kiểm soát và nền tảng không an toàn. Các đặc tính của bỏ phiếu điện tử và nhiều phân loại khác nhau đặt ra các yêu cầu tối thiểu đã được thiết lập. Một số phân loại này giống nhau. thách thức lớn nhất của bỏ phiếu điện tử từ xa là đạt được mức độ bảo mật cao trong một môi trường không được kiểm soát và nền tảng không an toàn. Các thuộc tính bỏ phiếu điện tử và nhiều phân loại khác nhau đặt ra các yêu cầu tối thiểu đã được thiết lập. Mục tiêu luôn là dung hòa hai quyền sở hữu dường như loại trừ lẫn nhau : tính có thể xác minh và quyền riêng tư. các thuộc tính dưới các tên khác nhau như: tính bảo mật, tính toàn vẹn, quyền riêng tư, tính dân chủ, tính phổ quát, tính có thể xác minh, v.v.. Bất chấp điều đó, mục tiêu luôn là dung hòa hai quyền sở hữu dường như loại trừ lẫn nhau: tính có thể xác minh và quyền riêng tư."


Ý tưởng cơ bản đằng sau việc bỏ phiếu trực tuyến là khả năng xác minh được theo nghĩa là các phiếu bầu phải được mã hóa và công khai, thuyết phục cử tri mà không chút nghi ngờ rằng toàn bộ quy trình được tiến hành thường xuyên. Hãy cùng tìm hiểu xem làm cách nào để đạt được điều này, nhưng trước khi đọc phần còn lại của bài viết, chúng tôi khuyên bạn nên xem phần trình bày của Ron Rivest về ý tưởng này[ 1 ] cho đến phút 5:07.


Sau đó, hãy xem xét:


Bảng phiếu bầu công khai chỉ nối thêm sau khi cuộc bỏ phiếu an toàn trên mạng diễn ra, như được xuất bản trên blockchain


Cử tri biết duy nhất mục tương ứng với phiếu bầu của họ


ID của cử tri được mã hóa

Ở đây, v là phiếu bầu chỉ có thể được giải mã hoàn toàn bằng cách sử dụng khóa riêng và E(v) là mật mã bổ sung


Và bây giờ đây là phép thuật toán học...


Bằng cách sử dụng mã hóa đồng cấu trong E(v1), E(v2), E(v3) và E(v4), chúng ta có thể chứng minh rằng E(v1)+ E(v2) + E(v3) + E(v4) = E( v1+v2+v3+v4) !


Do đó, kết quả cuối cùng là D( E(v1+v2+v3+v4) ) trong đó D là hàm giải mã có thể được tính toán bởi bất kỳ ai sau khi cuộc thăm dò kết thúc mà không cần truy cập v riêng lẻ: D(E(v1) ), D(E(v2) ), v.v., chỉ có thể được giải mã bằng cách sử dụng khóa riêng...


sở hữu khóa riêng


Chỉ bản thân cử tri mới có thể giải mã v riêng lẻ và thực sự kiểm tra xem phiếu bầu của họ đã được đăng ký chính xác chưa! Tóm lại, cử tri có thể xác minh cả phiếu bầu của họ và cuộc kiểm phiếu cuối cùng một cách riêng tư và chính xác!


Mã hóa đồng cấu


Ồ! Tôi có thể xác minh rằng phiếu bầu của tôi là chính xác! Nhưng làm thế nào tôi có thể chắc chắn rằng phiếu bầu của người khác cũng hợp pháp nếu không sử dụng khóa riêng của họ?


Giả sử chúng ta gán giá trị 0 nghĩa là từ chối một đề xuất chính sách nhất định đang được thăm dò ý kiến và 1 là phù hợp, tạo thành một tập hợp các câu trả lời có thể có {0,1}. Người xác minh, có thể là bất kỳ ai, có thể muốn chắc chắn rằng tất cả các mục được xuất bản trên bảng chỉ bổ sung tương ứng với một phần tử hợp lệ trong tập hợp các câu trả lời có thể chứ không phải bất kỳ mục nào khác, chẳng hạn như mục nhập có giá trị 100 Bằng chứng không có kiến thức cho phép thực hiện điều này một cách chính xác. Để hiểu cách thức, trước tiên có thể giúp hiểu ZKP thực sự là gì. "Trong mật mã, bằng chứng không có kiến thức hoặc giao thức không có kiến thức là phương pháp mà một bên (người chứng minh) có thể chứng minh cho một bên khác (người xác minh) rằng một tuyên bố đã cho là đúng trong khi người chứng minh tránh truyền tải bất kỳ thông tin bổ sung nào ngoài thực tế là tuyên bố đó thực sự đúng."[ 2 ]


bằng chứng không có kiến thức


Điều này có vẻ mâu thuẫn, nhưng với ZKP, bất kỳ cử tri nào cũng có thể chứng minh một cách rõ ràng tính hợp lệ của lá phiếu của họ! Một lần nữa, một cuộc bỏ phiếu chỉ là sự thể hiện một phần tử trong số một tập hợp các lựa chọn có thể có. Để hiểu cách áp dụng ZKP vào việc bỏ phiếu, chúng tôi khuyên bạn nên xem các bài viết sau [ 3 ], [ 4 ] vì chúng giải quyết câu hỏi này chi tiết hơn.


Xác minh ZKP


Kỹ thuật này sau đó có thể được mở rộng để bao gồm các tập hợp lớn hơn {0,1} trong khi vẫn bảo toàn các thuộc tính toán học của cả mã hóa đồng cấu và ZKP, cho phép thực hiện các cuộc thăm dò phức tạp hơn so với các câu trả lời đơn giản là có, không/đồng ý, không đồng ý. Điều này tạo ra các trường hợp sử dụng thú vị như bầu cử nhiều ứng cử viên, trưng cầu dân ý có thể có các đề xuất giải pháp khác nhau cho một vấn đề nhất định, bảng câu hỏi trong nghiên cứu thị trường...


Chúng ta vừa thảo luận về cách mọi người có thể kiểm tra kết quả kiểm phiếu cuối cùng, phiếu bầu của họ có đúng như dự kiến hay không và tất cả các phiếu bầu khác đều hợp pháp! Trong khi vẫn bảo vệ quyền riêng tư của cử tri! Cách các thuật toán này được kết hợp với nhau để bảo toàn các đặc tính của cả mã hóa đồng cấu và ZKP rất phức tạp và đòi hỏi kiến thức sâu về mật mã, điều này có thể được chứng minh về mặt toán học là đúng.[ 5 ]


Bất kỳ cử tri nào cũng có thể tự mình thực hiện việc xác minh này mà không cần phụ thuộc vào bên thứ ba! Trong các ứng dụng bỏ phiếu điện tử từ xa thích hợp, cử tri là người kiểm tra cuộc bỏ phiếu!


Có các chi tiết và kỹ thuật mã hóa khác liên quan đến bỏ phiếu trực tuyến an toàn mạng, chẳng hạn như việc sử dụng địa chỉ ẩn [ 6 ], ít nhất là trong các chuỗi khối giữ tất cả các giao dịch ở chế độ công khai như Ethereum. Chúng được sử dụng để tránh liên kết cử tri và ví của họ. Nhưng chúng tôi coi đây là một chi tiết kỹ thuật, chỉ được các nhà phát triển phần mềm quan tâm chứ không phải là điều mà tất cả người dùng bỏ phiếu trực tuyến nên biết, không giống như mã hóa đồng cấu và ZKP có kiến thức giúp tạo dựng niềm tin vào hệ thống.


Làm thế nào các khóa riêng này được tạo và trao cho cử tri mà không ảnh hưởng đến bảo mật?


Cuối cùng, các khóa riêng tư cần phải được gắn với danh tính thực sự của người dùng để ngăn chặn việc chi tiêu gấp đôi. Một cách tiếp cận là sử dụng PKI do các cơ quan đáng tin cậy cung cấp, chẳng hạn như eID do nhà nước cấp được nhúng trong thẻ thông minh nhận dạng quốc gia... Bởi vì chắc chắn các tổ chức công đã nghĩ ra cơ chế riêng để giữ an toàn cho các khóa này, phải không?


Trong mọi trường hợp, đây là một vấn đề liên quan nhiều hơn đến bản thân nhận dạng kỹ thuật số mà chúng tôi sẽ phân tích trong một bài viết sau nhằm cung cấp cho người đọc quá nhiều chi tiết và giúp thông tin được tổ chức tốt hơn. Đủ để nói rằng mặc dù bản thân danh tính kỹ thuật số là một vấn đề phức tạp nhưng vẫn có nhiều cách để đảm bảo với độ tin cậy tương đối rằng mỗi cá nhân kỹ thuật số là duy nhất bằng cách trao quyền cho nhiều thực thể đáng tin cậy với nhiệm vụ chứng thực danh tính của một người. Một trích dẫn của Bob Marley mô tả chính xác những gì chúng ta sẽ tranh luận:


“Bạn có thể lừa dối một số người một vài lần nhưng bạn không thể lừa dối tất cả mọi người mọi lúc”


Điều gì sẽ xảy ra nếu cử tri phát hiện ra gian lận hoặc nếu bị ép buộc phải bỏ phiếu theo một cách nhất định?


Biện pháp đầu tiên được thực hiện là cung cấp một kênh để mọi người có thể báo cáo những tình huống này để những sự cố này được xem xét. Ví dụ: nếu chúng ở mức cận biên, chiếm 0,01% tổng số phiếu bầu, thì đây thực sự không phải là một tình huống có vấn đề trừ khi chúng ta đang thảo luận về một cuộc trưng cầu dân ý rất nhạy cảm đòi hỏi phải duy trì các giá trị dân chủ và khi kết quả kiểm phiếu cuối cùng gần với kết quả cuối cùng. tương đương với tình huống 50/50. Điều này có thể được giảm thiểu bằng cách yêu cầu sự đồng thuận của đa số phải cao hơn, chẳng hạn như 55/45 để cuộc thăm dò được coi là hợp lệ.


Trong trường hợp ai đó thấy rằng phiếu bầu của họ đã được đăng ký không chính xác, vì toàn bộ bộ máy được hỗ trợ bởi blockchain và do đó không nằm trong sự kiểm soát của quản trị viên hệ thống cụ thể cung cấp dịch vụ, cách tiếp cận hợp lý hơn là cho rằng bản thân máy bỏ phiếu đã bị xâm phạm chứ không phải toàn bộ blockchain. Khi đó, các biện pháp bảo vệ trực tiếp nhất sẽ được thực hiện là cử tri thay đổi máy và/hoặc hệ điều hành. Vấn đề này liên quan nhiều hơn đến các mối đe dọa an ninh mạng, chẳng hạn như kỹ thuật lừa đảo xã hội và phần mềm độc hại. Nên sử dụng phần cứng và phần mềm nguồn mở cũng như sử dụng hệ điều hành mất trí nhớ [ 7 ]. Phần mềm mất trí nhớ luôn quay trở lại trạng thái được định cấu hình ban đầu, do đó, ngay cả khi cử tri cài đặt phần mềm độc hại bằng cách vô tình nhấp vào và chạy vi-rút, việc khởi động lại máy sẽ khôi phục phần mềm về cấu hình không thay đổi, giảm thiểu những sự cố này một cách hiệu quả.


Một tình huống khác mà người ta có thể muốn giải thích là tình huống cử tri bị ép buộc bỏ phiếu theo một cách nhất định, bằng thể chất hoặc bằng cách tống tiền. Cách tiếp cận duy nhất để chống lại sự ép buộc ngoài việc sống trong một xã hội tử tế là cho phép việc bỏ phiếu diễn ra trong cùng một cuộc thăm dò. Có nghiên cứu [ 8 ] trong lĩnh vực này, mặc dù theo hiểu biết của chúng tôi, các cách để hợp nhất kỹ thuật này với tất cả các kỹ thuật khác được đề cập ở trên vẫn cần được thực hiện. Chắc chắn là có cách. Trong mọi trường hợp, việc mở lại giai đoạn bỏ phiếu luôn có khả năng xảy ra. Cũng cần lưu ý rằng việc ngăn chặn sự ép buộc cũng sẽ ngăn chặn việc bán phiếu bầu, vì những lý do hiển nhiên.


Chúng tôi không tranh luận về việc từ bỏ hoàn toàn bỏ phiếu bằng giấy vì, ít nhất là khi có mặt, bỏ phiếu bằng giấy là một cơ hội tuyệt vời để kiểm tra danh tính (thực hoặc kỹ thuật số), tuy nhiên, chúng tôi cảm thấy mạnh mẽ ủng hộ việc áp dụng nó trong chính trị như một công cụ bổ sung có thể tạo ra sự đồng thuận nhanh hơn đồng thời là nguồn thứ cấp xác nhận kết quả bỏ phiếu bằng giấy.

Chúng ta đã ở đó chưa?

Như nhà khoa học máy tính Jeffrey Dean đã hùng hồn nói:


“Động lực đằng sau mật mã máy tính hiện đại không phải là tính bảo mật mà là tính hiệu quả. Câu hỏi không phải là bạn có thể tạo một mật mã an toàn hay không. Bạn có thể. Câu hỏi đặt ra là liệu bạn có thể tạo một cái sẽ hoạt động hiệu quả trên các tập dữ liệu khổng lồ hay trên phần cứng rất hạn chế hay không”


Thách thức của công nghệ blockchain chính xác là khả năng mở rộng quy mô khi cơ sở người dùng và nhu cầu tính toán tăng lên. Việc triển khai các thuật toán mã hóa hiện tại trong bỏ phiếu trực tuyến được hỗ trợ bởi blockchain ước tính chi phí vào khoảng 10 USD cho mỗi phiếu bầu như được triển khai trong Ethereum. [ 14 ] Chúng tôi tại Brightgov tin rằng có thể thực hiện cải tiến để giảm giá trị này xuống dưới 1 USD bằng cách sử dụng một blockchain nhanh hơn cũng như điều chỉnh các thuật toán toán học cơ bản.


Trong suốt lịch sử, mật mã đã đóng một vai trò quan trọng trong việc thay đổi tiến trình của các sự kiện. Mật mã Caesar, một trong những mật mã đơn giản nhất, nổi tiếng vì đã được hoàng đế La Mã sử dụng cách đây hai thiên niên kỷ. Khả năng của quân Đồng minh trong việc chặn và giải mã các tin nhắn được mã hóa bằng máy mật mã Purple của Nhật Bản và Enigma của Đức là rất quan trọng để mang lại lợi thế chính cần thiết để kết thúc Thế chiến thứ hai.


Đối với những người biết cách lập trình và muốn tìm hiểu thêm, chúng tôi khuyên bạn nên đọc tài liệu nghiên cứu của chúng tôi.[ 15 ] Bạn cũng có thể chơi với CryptoBallot để làm quen với loại phần mềm này.[ 16 ]


Tóm lại, việc bỏ phiếu trực tuyến an toàn trên mạng không chỉ khả thi mà còn rất cần thiết. Việc áp dụng nó trong không gian chính trị có khả năng trở thành một trong những sự kiện gây rối loạn nhất trong cuộc đời của chúng ta... Tất cả những gì bạn cần làm là tin tưởng vào các thuật toán chạy trên máy tính của bạn và chuỗi khối và nếu không, bạn luôn có thể làm được tự mình giải toán bằng bút và giấy.


Người giới thiệu:


[1] " Phiếu bầu CỦA BẠN đã được tính chưa? (feat. mã hóa đồng cấu) " của giáo sư Ron Rivest, Numberphile, trên YouTube, 2016. https://www.youtube.com/watch?v=BYRTvoZ3Rho


[2] Mục nhập bằng chứng không có kiến thức trên Wikipedia, https://en.wikipedia.org/wiki/Zero-know_proof


[3] " Cách sử dụng ZKP để chứng minh tư cách thành viên của tập hợp mà không làm lộ tập hợp hoặc thành viên" của Anders Borch, blog của tác giả, 2019. https://blog.cyborch.com/how-to-use-cryptographic-accumulators-to -chứng minh-bộ-thành viên-mà không để lộ-bộ-hoặc-thành viên/


[4] " Bằng chứng không có kiến thức cho tư cách thành viên " của Dario Fiore, về Tiêu chuẩn ZKProof, 2020. https://zkproof.org/2020/02/27/zkp-set-membership/


[5] " Không có kiến thức không tương tác từ mã hóa đồng hình " của Ivan Damg ̊ard và cộng sự, Hội nghị lý thuyết về mật mã học, 2006. https://cs.nyu.edu/\~nicolosi/papers/NonIntSi.pdf


[6] " Địa chỉ ẩn (Tiền điện tử) " của Jake Frankenfield, Investopedia, 2022. https://www.investopedia.com/terms/s/stealth-address-cryptocurrency.asp


[7] Mục nhập Tails (hệ điều hành) trên Wikipedia, https://en.wikipedia.org/wiki/Tails_(operating_system)


[8] " VoteAgain: Một hệ thống bỏ phiếu chống cưỡng bức có thể mở rộng " của Wouter Lueks và cộng sự, Spring Labs, Đại học Carlos III de Madrid, 2020. https://arxiv.org/pdf/2005.11189.pdf


[9] Quỹ Di sản , https://www.heritage.org/


[10] Mục nhập " Ainda mais indícios de lừa đảo nas Legislativas 2022? " mục trên YouTube, bằng tiếng Bồ Đào Nha, năm 2022. https://www.youtube.com/watch?v=L8fA9aOuR9k


[11] Mục nhập " AnaKarina denuncia "FRAUDE ELEITORAL" por parte da CNE " trên YouTube, bằng tiếng Bồ Đào Nha, Angola, 2022. https://www.youtube.com/watch?v=hLm8ocLgXCU


[12] " Câu hỏi thường gặp - Lừa đảo cử tri ", https://www.voteaustralia.org.au/faq_voter_fraud


[13] Báo cáo " Chỉ số Dân chủ 2020: Về bệnh tật và sức khỏe? " của The Economist Intelligence Unit, 2020. https://www.eiu.com/n/campaigns/democracy-index-2020/


[14] " ethVote: Hướng tới bỏ phiếu an toàn với sổ cái phân tán " của Johannes Mols et Emmanouil Vasilomalanolakis, Đại học Aalborg, Đan Mạch, 2020. https://www.researchgate.net/publication/341000573_ethVote_Towards_secure_voting_with_distributed_ledgers


[15] " Tổng quan về bỏ phiếu điện tử từ xa " của NERV, bài viết gửi tới Hội nghị ICEGOV lần thứ 14 năm 2021, https://ia601401.us.archive.org/33/items/remote-e-voting-overview/Remote e -tổng quan về bỏ phiếu.pdf


[16] CryptoBallot , https://github.com/cryptoballot/cryptoballot


Cũng xuất hiện ở đây .