Επισκόπηση της διαδικασίας ανωνυμοποίησης για το εξ αποστάσεως ηλεκτρονικό σύστημα ψηφοφορίας

В προηγούμενες δημοσιεύσεις Καταλήξαμε στο γεγονός ότι στο εξ αποστάσεως ηλεκτρονικό σύστημα ψηφοφορίας που εξετάζουμε, χρησιμοποιείται κρυπτογραφικός αλγόριθμος «τυφλής ηλεκτρονικής υπογραφής» για τη διασφάλιση του απορρήτου της ψήφου και την ανωνυμία του ψηφοφόρου. Σε αυτό το άρθρο θα το δούμε αναλυτικότερα.

Αρχικά, ας στραφούμε στον γνωστό και γνωστό αλγόριθμο ηλεκτρονικής υπογραφής, ο οποίος χρησιμοποιείται ευρέως στα πληροφοριακά συστήματα για διάφορους σκοπούς. Η ηλεκτρονική υπογραφή βασίζεται σε κρυπτογραφικούς αλγόριθμους ασύμμετρης κρυπτογράφησης. Η ασύμμετρη κρυπτογράφηση είναι κρυπτογράφηση με χρήση 2 κλειδιών: το ένα χρησιμοποιείται για κρυπτογράφηση και το άλλο για αποκρυπτογράφηση. Ονομάζονται ανοιχτό (δημόσιο) και ιδιωτικό κλειδί. Το δημόσιο κλειδί είναι γνωστό σε άλλους και το ιδιωτικό κλειδί είναι γνωστό μόνο στον κάτοχο της ηλεκτρονικής υπογραφής και αποθηκεύεται σε μέρος απρόσιτο σε άλλους.

Κατά την υπογραφή, συμβαίνει το εξής: πρώτον, το ηλεκτρονικό έγγραφο, χρησιμοποιώντας μαθηματικούς μετασχηματισμούς, μειώνεται σε μια ακολουθία χαρακτήρων συγκεκριμένου μεγέθους - αυτό ονομάζεται συνάρτηση κατακερματισμού.

Η προκύπτουσα ακολουθία χαρακτήρων (ένας κατακερματισμός από το έγγραφο) κρυπτογραφείται από τον αποστολέα του εγγράφου χρησιμοποιώντας ένα ιδιωτικό κλειδί και, μαζί με το δημόσιο κλειδί, αποστέλλεται στον παραλήπτη. Ο παραλήπτης αποκρυπτογραφεί την ακολουθία χαρακτήρων χρησιμοποιώντας το δημόσιο κλειδί, εφαρμόζει ακριβώς την ίδια λειτουργία κατακερματισμού στο έγγραφο και συγκρίνει το αποτέλεσμα μετατροπής με το αποτέλεσμα αποκρυπτογράφησης. Εάν όλα ταιριάζουν, τότε δεν έγιναν αλλαγές στο έγγραφο μετά την υπογραφή του από τον αποστολέα.

Οι περιγραφόμενες ενέργειες σάς επιτρέπουν να επαληθεύσετε ότι το έγγραφο δεν έχει αλλάξει, αλλά δεν σας επιτρέπουν να επαληθεύσετε ότι ο αποστολέας είναι πραγματικά αυτός που ισχυρίζεται ότι είναι. Επομένως, χρειαζόμαστε ένα τρίτο μέρος που να είναι αξιόπιστο τόσο από τον αποστολέα όσο και από τον παραλήπτη. Για να γίνει αυτό, πριν στείλει το έγγραφο, ο αποστολέας επικοινωνεί με ένα τρίτο μέρος και του ζητά να υπογράψει το δημόσιο κλειδί του με την ηλεκτρονική της υπογραφή. Ο αποστολέας στέλνει τώρα στον παραλήπτη το έγγραφο, το δημόσιο κλειδί του και μια υπογραφή τρίτου μέρους του κλειδιού του. Ο παραλήπτης επαληθεύει την υπογραφή του τρίτου μέρους στο δημόσιο κλειδί και εμπιστεύεται την υπογραφή του εγγράφου που προκύπτει.

Τώρα ας προχωρήσουμε στο τι είναι η «τυφλή υπογραφή» και πώς μπορεί να μας βοηθήσει με την ανωνυμοποίηση.

Ας φανταστούμε ότι στο παράδειγμα που περιγράφεται παραπάνω, ο αποστολέας είναι ο ψηφοφόρος, το έγγραφο είναι το ψηφοδέλτιο και ο παραλήπτης είναι η εκλογική επιτροπή ή όπως είπαμε «το στοιχείο καταμέτρησης ψήφων». Θα έχουμε το στοιχείο "Λίστα ψηφοφόρων" ως τρίτο μέρος (επικυρωτή). Σε αυτή την περίπτωση, η διαδικασία μπορεί να συμβεί ως εξής.

Επισκόπηση της διαδικασίας ανωνυμοποίησης για το εξ αποστάσεως ηλεκτρονικό σύστημα ψηφοφορίας

Ο ψηφοφόρος δημιουργεί ένα ζεύγος κλειδιών στη συσκευή του - ιδιωτικά και δημόσια. Δεδομένου ότι αυτά τα κλειδιά δημιουργούνται στην προσωπική του συσκευή στο πρόγραμμα περιήγησης, είναι γνωστά μόνο σε αυτόν.

Χρησιμοποιώντας αυτά τα κλειδιά, θα υπογράψει το ψηφοδέλτιο για να ελέγξει την ακεραιότητά του. Στέλνει το υπογεγραμμένο ψηφοδέλτιο και το δημόσιο κλειδί στην εκλογική επιτροπή. Για να γίνει αποδεκτό ένα ψηφοδέλτιο από το στοιχείο Κατανεμημένης αποθήκευσης και καταμέτρησης ψήφων, πρέπει να επαληθεύσει ότι το δημόσιο κλειδί είναι υπογεγραμμένο από τον επικυρωτή.

Ο επικυρωτής (συστατικό της λίστας ψηφοφόρων) θα υπογράψει το δημόσιο κλειδί μόνο αφού επαληθεύσει ότι ο ψηφοφόρος βρίσκεται στον εκλογικό κατάλογο.

Για να λυθεί το πρόβλημα της διατήρησης του απορρήτου της ψήφου, το δημόσιο κλειδί του ψηφοφόρου που δημιουργήθηκε στη συσκευή του δεν θα πρέπει να είναι γνωστό σε κανέναν. Αποδεικνύεται ότι ο επικυρωτής πρέπει να υπογράψει κάτι που του είναι άγνωστο. Το έργο φαίνεται αδύνατο, αλλά εδώ οι κρυπτογραφικοί αλγόριθμοι έρχονται στη διάσωση - σε αυτήν την περίπτωση, ο αλγόριθμος "τυφλής υπογραφής"

Πρώτον, το δημόσιο κλειδί πρέπει να είναι καλυμμένο στη συσκευή του ψηφοφόρου. Απόκρυψη είναι η εκτέλεση μεμονωμένων μαθηματικών πράξεων στη συσκευή του χρήστη. Φανταστείτε ότι σκεφτήκατε έναν τυχαίο αριθμό από το 1 έως το 100, μετά σκεφτήκατε έναν δεύτερο τυχαίο αριθμό από το 1 έως το 10 και έναν τρίτο, από το 10 στο 50, ανυψώσατε τον αρχικά θεωρημένο αριθμό στη δύναμη του δεύτερου αριθμού και τον διαίρησατε χωρίς ένα υπόλοιπο από το τρίτο. Το αποτέλεσμα αναφέρθηκε σε άλλους. Δεν θα σας είναι δύσκολο να επαναφέρετε τον αρχικό αριθμό, αφού γνωρίζετε τη σειρά των ενεργειών και τους αριθμούς που έχετε στο μυαλό σας. Αλλά οι γύρω σας δεν θα μπορούν να το κάνουν αυτό.

Η κάλυψη (τύφλωση) του δημόσιου κλειδιού πραγματοποιείται σύμφωνα με ειδικό κρυπτογραφικό αλγόριθμο. Ως αποτέλεσμα, ο επικυρωτής υπογράφει ένα καλυμμένο δημόσιο κλειδί χωρίς να γνωρίζει το αρχικό κλειδί. Αλλά η ιδιαιτερότητα του αλγορίθμου είναι ότι ο χρήστης (ψηφοφόρος), έχοντας λάβει μια υπογραφή για ένα καλυμμένο κλειδί, μπορεί να κάνει αντίστροφους μετασχηματισμούς και να λάβει μια υπογραφή που ισχύει για το αρχικό κλειδί χωρίς μάσκα.

Ο περιγραφόμενος αλγόριθμος χρησιμοποιείται ευρέως σε πρωτόκολλα μυστικής ψηφοφορίας. Το απομακρυσμένο ηλεκτρονικό σύστημα ψηφοφορίας χρησιμοποιεί επί του παρόντος τον αλγόριθμο RSA με μήκος κλειδιού 4096 bit για τυφλές υπογραφές.

Γενικά, η διαδικασία ανωνυμοποίησης είναι η εξής.

  1. Όταν δημιουργείται μια ψηφοφορία, δημιουργείται ένα ξεχωριστό ζεύγος κλειδιών "επικύρωσης" και το δημόσιο κλειδί καταγράφεται στο blockchain. Ένα μοναδικό ζεύγος κλειδιών δημιουργείται για κάθε ψήφο.
  2. Ο χρήστης αναγνωρίζεται στο σύστημα αναγνώρισης (στην προκειμένη περίπτωση, στην ΜΠΚΕ) και παρέχει άδεια μεταφοράς των δεδομένων αναγνώρισής του από το σύστημα αναγνώρισης στο DEG PTC.
  3. Το στοιχείο "Λίστα ψηφοφόρων" του DEG PTC ελέγχει την παρουσία του χρήστη στον εκλογικό κατάλογο.
  4. Στη συσκευή του χρήστη δημιουργούνται τα προσωπικά του κλειδιά - ιδιωτικά και δημόσια, γνωστά μόνο σε αυτόν.
  5. Το δημόσιο κλειδί καλύπτεται στη συσκευή του χρήστη
  6. Μαζί με τα δεδομένα αναγνώρισης και ένα καλυμμένο δημόσιο κλειδί, ο χρήστης έχει πρόσβαση στο στοιχείο "Λίστα ψηφοφόρων".
  7. Το στοιχείο ελέγχει για άλλη μια φορά την παρουσία του χρήστη στη λίστα και το γεγονός ότι δεν έχει λάβει υπογραφή στο παρελθόν
  8. Εάν όλοι οι έλεγχοι είναι επιτυχείς, το κλειδί υπογράφεται
  9. Το γεγονός της υπογραφής του κλειδιού καταγράφεται στο blockchain
  10. Ο χρήστης στη συσκευή του αφαιρεί τη μάσκα από το δημόσιο κλειδί και λαμβάνει ένα ιδιωτικό κλειδί, ένα δημόσιο κλειδί και μια υπογραφή στο δημόσιο κλειδί και όλα τα κλειδιά είναι γνωστά μόνο σε αυτόν.
  11. Μετά από αυτό, ο χρήστης μεταφέρεται σε μια ανώνυμη ζώνη - σε έναν ξεχωριστό ιστότοπο edg2020.gov.ru, όπου είναι αδύνατο να τον αναγνωρίσετε (για παράδειγμα, πριν από τη μετάβαση μπορεί να συνδέσει ένα VPN ή να αλλάξει τον πάροχο Διαδικτύου του, αλλάζοντας εντελώς την Διεύθυνση IP)
  12. Η αποδοχή του ψηφοδελτίου θα εξαρτηθεί μόνο από το εάν έχει επαληθευτεί η υπογραφή του «επικυρωτή» και εάν τέτοιο κλειδί δεν έχει χρησιμοποιηθεί προηγουμένως.

Στη συνέχεια, δίνουμε μια περιγραφή του αλγορίθμου από την άποψη της κρυπτογραφίας.
Επιλογές υπογραφής και χαρακτηρισμού:

Επισκόπηση της διαδικασίας ανωνυμοποίησης για το εξ αποστάσεως ηλεκτρονικό σύστημα ψηφοφορίας
Επισκόπηση της διαδικασίας ανωνυμοποίησης για το εξ αποστάσεως ηλεκτρονικό σύστημα ψηφοφορίας

M – σε μορφή padding FDN για υπογραφή.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο