Ikhtisar prosedur anonimisasi untuk sistem pemungutan suara elektronik jarak jauh

В publikasi sebelumnya Kami memutuskan bahwa dalam sistem pemungutan suara elektronik jarak jauh yang kami pertimbangkan, algoritma kriptografi “tanda tangan elektronik buta” digunakan untuk memastikan kerahasiaan pemungutan suara dan menganonimkan pemilih. Pada artikel ini kita akan melihatnya lebih detail.

Pertama, mari kita beralih ke algoritma tanda tangan elektronik yang terkenal dan familiar, yang banyak digunakan dalam sistem informasi untuk berbagai tujuan. Tanda tangan elektronik didasarkan pada algoritma enkripsi asimetris kriptografi. Enkripsi asimetris adalah enkripsi menggunakan 2 kunci: salah satunya digunakan untuk enkripsi, yang lain untuk dekripsi. Mereka disebut kunci terbuka (publik) dan pribadi. Kunci publik diketahui orang lain, dan kunci privat hanya diketahui oleh pemilik tanda tangan elektronik dan disimpan di tempat yang tidak dapat diakses orang lain.

Saat penandatanganan, hal berikut terjadi: pertama, dokumen elektronik, menggunakan transformasi matematika, direduksi menjadi urutan karakter dengan ukuran tertentu - ini disebut fungsi hash.

Urutan karakter yang dihasilkan (hash dari dokumen) dienkripsi oleh pengirim dokumen menggunakan kunci pribadi dan, bersama dengan kunci publik, dikirim ke penerima. Penerima mendekripsi urutan karakter menggunakan kunci publik, menerapkan fungsi hash yang sama persis ke dokumen, dan membandingkan hasil konversi dengan hasil dekripsi. Jika semuanya cocok, maka tidak ada perubahan yang dilakukan pada dokumen setelah ditandatangani oleh pengirim.

Tindakan yang dijelaskan memungkinkan Anda untuk memverifikasi bahwa dokumen tersebut tidak diubah, tetapi tidak memungkinkan Anda untuk memverifikasi bahwa pengirimnya benar-benar seperti yang dia klaim. Oleh karena itu, diperlukan pihak ketiga yang dipercaya baik oleh pengirim maupun penerima. Untuk melakukan ini, sebelum mengirim dokumen, pengirim menghubungi pihak ketiga dan memintanya untuk menandatangani kunci publiknya dengan tanda tangan elektroniknya. Pengirim sekarang mengirimkan dokumen, kunci publiknya, dan tanda tangan pihak ketiga dari kuncinya kepada penerima. Penerima memverifikasi tanda tangan pihak ketiga pada kunci publik dan mempercayai tanda tangan dokumen yang dihasilkan.

Sekarang mari kita beralih ke apa itu “tanda tangan buta” dan bagaimana hal itu dapat membantu kita dalam anonimisasi.

Bayangkan saja pada contoh di atas, pengirimnya adalah pemilih, dokumennya adalah surat suara, dan penerimanya adalah KPU, atau kita sebut “komponen penghitungan suara”. Kami akan memiliki komponen “Daftar Pemilih” sebagai pihak ketiga (validator). Dalam hal ini, prosesnya dapat terjadi sebagai berikut.

Ikhtisar prosedur anonimisasi untuk sistem pemungutan suara elektronik jarak jauh

Pemilih membuat sepasang kunci di perangkatnya – pribadi dan publik. Karena kunci ini dibuat pada perangkat pribadinya di browser, kunci tersebut hanya diketahui olehnya.

Dengan menggunakan kunci-kunci ini, dia akan menandatangani surat suara untuk mengontrol integritasnya. Dia mengirimkan surat suara yang ditandatangani dan kunci publik ke komisi pemilihan. Agar surat suara dapat diterima oleh komponen Penyimpanan dan Penghitungan Suara Terdistribusi, komponen tersebut harus memverifikasi bahwa kunci publik ditandatangani oleh validator.

Validator (komponen Daftar Pemilih) akan menandatangani kunci publik hanya setelah memverifikasi bahwa pemilih ada dalam daftar pemilih.

Untuk mengatasi masalah menjaga kerahasiaan pemungutan suara, kunci publik pemilih yang dibuat di perangkatnya tidak boleh diketahui siapa pun. Ternyata validator harus menandatangani sesuatu yang tidak diketahuinya. Tugas tersebut tampaknya mustahil, tetapi di sini algoritma kriptografi datang untuk menyelamatkan - dalam hal ini, algoritma “tanda tangan buta”.

Pertama, kunci publik harus disamarkan pada perangkat pemilih. Masking adalah kinerja operasi matematika individual pada perangkat pengguna. Bayangkan Anda memikirkan sebuah bilangan acak dari 1 hingga 100, kemudian memikirkan sebuah bilangan acak kedua dari 1 hingga 10 dan yang ketiga, dari 10 menjadi 50, menaikkan bilangan yang awalnya dipikirkan menjadi pangkat dari bilangan kedua, dan membaginya tanpa sisanya pada sepertiga. Hasilnya dilaporkan kepada orang lain. Tidak akan sulit bagi Anda untuk mengembalikan nomor aslinya, karena Anda mengetahui urutan tindakan dan nomor yang ada dalam pikiran Anda. Tetapi orang-orang di sekitar Anda tidak akan bisa melakukan ini.

Masking (blinding) kunci publik dilakukan sesuai dengan algoritma kriptografi khusus. Akibatnya, validator menandatangani kunci publik bertopeng tanpa mengetahui kunci aslinya. Namun kekhasan dari algoritma ini adalah bahwa pengguna (pemilih), setelah menerima tanda tangan untuk kunci yang disamarkan, dapat melakukan transformasi terbalik dan mendapatkan tanda tangan yang valid untuk kunci asli yang tidak kedoknya.

Algoritme yang dijelaskan banyak digunakan dalam protokol pemungutan suara rahasia. Sistem pemungutan suara elektronik jarak jauh saat ini menggunakan algoritma RSA dengan panjang kunci 4096 bit untuk tanda tangan buta.

Secara umum, prosedur anonimisasi adalah sebagai berikut.

  1. Ketika pemungutan suara dibuat, pasangan kunci “validator” terpisah dibuat, dan kunci publik dicatat dalam blockchain. Pasangan kunci unik dibuat untuk setiap suara.
  2. Pengguna diidentifikasi dalam sistem identifikasi (dalam hal ini, di ESIA), dan memberikan izin untuk mentransfer data identifikasinya dari sistem identifikasi ke DEG PTC.
  3. Komponen “Daftar Pemilih” DEG PTC memeriksa keberadaan pengguna dalam daftar pemilih.
  4. Di perangkat pengguna, kunci pribadinya dibuat - pribadi dan publik, hanya diketahui olehnya.
  5. Kunci publik disamarkan pada perangkat pengguna
  6. Bersama dengan data identifikasi dan kunci publik bertopeng, pengguna mengakses komponen “Daftar Pemilih”.
  7. Komponen sekali lagi memeriksa keberadaan pengguna dalam daftar dan fakta bahwa dia belum menerima tanda tangan sebelumnya
  8. Jika semua pemeriksaan berhasil, kuncinya ditandatangani
  9. Fakta penandatanganan kunci dicatat di blockchain
  10. Pengguna di perangkatnya menghapus topeng dari kunci publik dan menerima kunci pribadi, kunci publik, dan tanda tangan pada kunci publik, dan semua kunci hanya diketahui olehnya.
  11. Setelah ini, pengguna dipindahkan ke zona anonim - ke situs web terpisah edg2020.gov.ru, di mana tidak mungkin untuk mengidentifikasinya (misalnya, sebelum transisi ia dapat menghubungkan VPN atau mengubah penyedia Internetnya, mengubah sepenuhnya Alamat IP)
  12. Penerimaan surat suara hanya akan bergantung pada apakah tanda tangan “validator” sudah diverifikasi dan apakah kunci tersebut belum pernah digunakan sebelumnya.

Selanjutnya kami memberikan penjelasan mengenai algoritma dari sudut pandang kriptografi.
Opsi tanda tangan dan penunjukan:

Ikhtisar prosedur anonimisasi untuk sistem pemungutan suara elektronik jarak jauh
Ikhtisar prosedur anonimisasi untuk sistem pemungutan suara elektronik jarak jauh

M – dalam format padding FDN untuk tanda tangan.

Sumber: www.habr.com

Tambah komentar