Tổng quan về quy trình ẩn danh cho hệ thống bỏ phiếu điện tử từ xa

В ấn phẩm trước đây Chúng tôi đã giải quyết trên thực tế rằng trong hệ thống bỏ phiếu điện tử từ xa mà chúng tôi đang xem xét, thuật toán “chữ ký điện tử mù” bằng mật mã được sử dụng để đảm bảo tính bí mật của việc bỏ phiếu và ẩn danh cử tri. Trong bài viết này chúng ta sẽ xem xét nó chi tiết hơn.

Đầu tiên, chúng ta hãy chuyển sang thuật toán chữ ký điện tử nổi tiếng và quen thuộc, được sử dụng rộng rãi trong các hệ thống thông tin với nhiều mục đích khác nhau. Chữ ký điện tử dựa trên thuật toán mã hóa bất đối xứng bằng mật mã. Mã hóa bất đối xứng là mã hóa sử dụng 2 khóa: một khóa dùng để mã hóa, khóa còn lại dùng để giải mã. Chúng được gọi là khóa mở (công khai) và khóa riêng. Khóa chung được người khác biết và khóa riêng chỉ được biết bởi chủ sở hữu chữ ký điện tử và được lưu trữ ở nơi người khác không thể truy cập được.

Khi ký, điều sau đây xảy ra: đầu tiên, tài liệu điện tử, sử dụng các phép biến đổi toán học, được rút gọn thành một chuỗi ký tự có kích thước nhất định - đây được gọi là hàm băm.

Chuỗi ký tự kết quả (mã băm từ tài liệu) được người gửi tài liệu mã hóa bằng khóa riêng và cùng với khóa chung, được gửi đến người nhận. Người nhận giải mã chuỗi ký tự bằng khóa chung, áp dụng chính xác hàm băm tương tự cho tài liệu và so sánh kết quả chuyển đổi với kết quả giải mã. Nếu mọi thứ đều khớp thì không có thay đổi nào được thực hiện đối với tài liệu sau khi nó được người gửi ký.

Các hành động được mô tả cho phép bạn xác minh rằng tài liệu chưa bị thay đổi, nhưng không cho phép bạn xác minh rằng người gửi thực sự là người mà họ tuyên bố. Vì vậy, chúng ta cần một bên thứ ba được cả người gửi và người nhận tin cậy. Để làm điều này, trước khi gửi tài liệu, người gửi liên hệ với bên thứ ba và yêu cầu cô ấy ký khóa công khai của mình bằng chữ ký điện tử của mình. Người gửi hiện gửi cho người nhận tài liệu, khóa chung của anh ta và chữ ký của bên thứ ba đối với khóa của anh ta. Người nhận xác minh chữ ký của bên thứ ba trên khóa chung và tin tưởng vào chữ ký tài liệu thu được.

Bây giờ chúng ta hãy chuyển sang “chữ ký mù” là gì và nó có thể giúp chúng ta ẩn danh như thế nào.

Hãy tưởng tượng rằng trong ví dụ được mô tả ở trên, người gửi là cử tri, tài liệu là lá phiếu và người nhận là ủy ban bầu cử, hay như chúng ta đã nói “thành phần kiểm phiếu”. Chúng tôi sẽ có thành phần “Danh sách cử tri” với tư cách là bên thứ ba (người xác nhận). Trong trường hợp này, quá trình có thể xảy ra như sau.

Tổng quan về quy trình ẩn danh cho hệ thống bỏ phiếu điện tử từ xa

Cử tri tạo một cặp khóa trên thiết bị của mình – riêng tư và công khai. Vì các khóa này được tạo trên thiết bị cá nhân của anh ấy trong trình duyệt nên chỉ có anh ấy mới biết.

Sử dụng những chiếc chìa khóa này, anh ta sẽ ký vào lá phiếu để kiểm soát tính toàn vẹn của nó. Anh ta gửi lá phiếu đã ký và khóa công khai cho ủy ban bầu cử. Để một lá phiếu được thành phần Lưu trữ và Kiểm phiếu Phân phối chấp nhận, nó phải xác minh rằng khóa công khai đã được người xác thực ký.

Trình xác thực (thành phần Danh sách cử tri) sẽ chỉ ký khóa chung sau khi xác minh rằng cử tri đó có trong danh sách cử tri.

Để giải quyết vấn đề giữ bí mật của cuộc biểu quyết, không ai được phép biết khóa công khai của cử tri được tạo trên thiết bị của mình. Hóa ra người xác nhận phải ký một cái gì đó mà anh ta không biết. Nhiệm vụ này dường như là không thể, nhưng ở đây các thuật toán mật mã đã ra tay cứu nguy - trong trường hợp này là thuật toán “chữ ký mù”

Đầu tiên, khóa chung phải được ẩn trên thiết bị của cử tri. Tạo mặt nạ là hiệu suất của các phép toán riêng lẻ trên thiết bị của người dùng. Hãy tưởng tượng rằng bạn nghĩ về một số ngẫu nhiên từ 1 đến 100, sau đó nghĩ đến số ngẫu nhiên thứ hai từ 1 đến 10 và số thứ ba, từ 10 đến 50, nâng số nghĩ ban đầu lên lũy thừa của số thứ hai và chia nó mà không phần còn lại vào phần thứ ba. Kết quả đã được báo cáo cho người khác. Sẽ không khó để bạn khôi phục lại số ban đầu vì bạn biết trình tự hành động và những con số mà bạn nghĩ đến. Nhưng những người xung quanh bạn sẽ không thể làm được điều này.

Việc che giấu (làm mù) khóa chung được thực hiện theo thuật toán mã hóa đặc biệt. Kết quả là, người xác nhận ký vào khóa chung bị che mà không biết khóa gốc. Nhưng điểm đặc biệt của thuật toán là người dùng (người bỏ phiếu), sau khi nhận được chữ ký cho khóa bị che, có thể thực hiện các phép biến đổi ngược và nhận được chữ ký hợp lệ cho khóa ban đầu, được che giấu.

Thuật toán được mô tả được sử dụng rộng rãi trong các giao thức bỏ phiếu bí mật. Hệ thống bỏ phiếu điện tử từ xa hiện sử dụng thuật toán RSA với độ dài khóa 4096 bit cho chữ ký mù.

Nói chung, quy trình ẩn danh như sau.

  1. Khi một cuộc bỏ phiếu được tạo, một cặp khóa “trình xác thực” riêng biệt sẽ được tạo và khóa chung được ghi lại trong chuỗi khối. Một cặp khóa duy nhất được tạo cho mỗi phiếu bầu.
  2. Người dùng được xác định trong hệ thống nhận dạng (trong trường hợp này là trong ESIA) và cho phép chuyển dữ liệu nhận dạng của mình từ hệ thống nhận dạng sang DEG PTC.
  3. Thành phần “Danh sách cử tri” của DEG PTC kiểm tra sự hiện diện của người dùng trong danh sách cử tri.
  4. Trên thiết bị của người dùng, các khóa cá nhân của anh ta được tạo - riêng tư và công khai, chỉ có anh ta mới biết.
  5. Khóa công khai được che giấu trên thiết bị của người dùng
  6. Cùng với dữ liệu nhận dạng và khóa chung được che giấu, người dùng truy cập vào thành phần “Danh sách cử tri”
  7. Thành phần này một lần nữa kiểm tra sự hiện diện của người dùng trong danh sách và thực tế là anh ta chưa nhận được chữ ký trước đó
  8. Nếu tất cả các lần kiểm tra đều thành công, khóa sẽ được ký
  9. Việc ký khóa được ghi lại trong blockchain
  10. Người dùng trên thiết bị của anh ta loại bỏ mặt nạ khỏi khóa chung và nhận khóa riêng, khóa chung và chữ ký trên khóa chung và tất cả các khóa chỉ có anh ta mới biết.
  11. Sau đó, người dùng được chuyển đến một vùng ẩn danh - đến một trang web riêng edg2020.gov.ru, nơi không thể xác định được danh tính của anh ta (ví dụ: trước khi chuyển đổi, anh ta có thể kết nối VPN hoặc thay đổi nhà cung cấp dịch vụ Internet của mình, thay đổi hoàn toàn địa chỉ Địa chỉ IP)
  12. Việc chấp nhận lá phiếu sẽ chỉ phụ thuộc vào việc chữ ký của “người xác thực” có được xác minh hay không và liệu khóa đó có được sử dụng trước đó hay không.

Tiếp theo, chúng tôi cung cấp mô tả thuật toán theo quan điểm của mật mã.
Tùy chọn chữ ký và chỉ định:

Tổng quan về quy trình ẩn danh cho hệ thống bỏ phiếu điện tử từ xa
Tổng quan về quy trình ẩn danh cho hệ thống bỏ phiếu điện tử từ xa

M – ở định dạng đệm FDN cho chữ ký.

Nguồn: www.habr.com

Thêm một lời nhận xét