RU2751457C1 - Method and system for electronic voting in a distributed registry - Google Patents

Method and system for electronic voting in a distributed registry Download PDF

Info

Publication number
RU2751457C1
RU2751457C1 RU2020119904A RU2020119904A RU2751457C1 RU 2751457 C1 RU2751457 C1 RU 2751457C1 RU 2020119904 A RU2020119904 A RU 2020119904A RU 2020119904 A RU2020119904 A RU 2020119904A RU 2751457 C1 RU2751457 C1 RU 2751457C1
Authority
RU
Russia
Prior art keywords
voting
voting session
public key
distributed
participants
Prior art date
Application number
RU2020119904A
Other languages
Russian (ru)
Inventor
Сергей Николаевич Кяжин
Владимир Александрович Попов
Original Assignee
Публичное Акционерное Общество "Сбербанк России"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" filed Critical Публичное Акционерное Общество "Сбербанк России"
Priority to RU2020119904A priority Critical patent/RU2751457C1/en
Priority to EA202092857A priority patent/EA202092857A1/en
Application granted granted Critical
Publication of RU2751457C1 publication Critical patent/RU2751457C1/en

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

FIELD: computer technology.SUBSTANCE: invention relates to computer technology. The technical result is ensuring the anonymization of voters. A computer-implemented method for electronic voting in a distributed registry contains the stages at which a public key certificate is generated for user devices; a voting session is formed; voting session parameters are transmitted to a distributed registry network node; voting participants are registered in a voting session, during which a pair of private and public keys for a linked ring signature is generated on each of the participants’ devices; public keys for the corresponding ID of the voting session are transmitted from the participants’ devices; the users’ devices are authenticated; the validity of participation in the voting session is verified; public keys and registration marks for the corresponding public key certificates are recorded in the distributed registry; an anonymous public key certificate for the users’ devices is generated; participants vote is carried out, in which each device receives a list of all the public keys of the participants of the current voting session for generating responses by the participants’ devices and calculating the associated ring signature.EFFECT: technical result is ensuring voters’ anonymization.15 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Заявленное техническое решение относится к области компьютерных технологий, в частности, к способам и системам электронного анонимного голосования, использующим технологии распределенного реестра.[0001] The claimed technical solution relates to the field of computer technology, in particular, to methods and systems for electronic anonymous voting using distributed ledger technology.

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

[0002] Очное голосование обладает определенными недостатками, среди которых:[0002] Face-to-face voting has certain disadvantages, including:

- отсутствие возможности объективной проверки корректности результатов;- inability to objectively check the correctness of the results;

- возможность подачи сфабрикованного голоса организатором вместо полноправного участника;- the possibility of submitting a fabricated vote by the organizer instead of a full participant;

- возможность повторного голосования при условии сговора организатора и участника.- the possibility of re-voting, provided that the organizer and the participant agree.

[0003] Системы электронного голосования решают частично описанные проблемы, однако добавляют новые. Например, часто попытки сделать голосование анонимным приводят к ухудшению возможности проверки.[0003] Electronic voting systems solve partially described problems, but add new ones. For example, often attempts to make voting anonymous result in poor verification.

[0004] Для обеспечения анонимности в ряде решений используют технологию связываемой кольцевой подписи. Значение связываемой кольцевой подписи к сообщению вычисляется одним участником группы с использованием открытых ключей всех участников группы и секретного ключа подписывающего участника. Проверка подписи осуществляется с использованием открытых ключей всех участников группы. При этом: по значению подписи невозможно понять, кто из участников группы является ее автором (но известно, что кто-то из указанной группы); по двум значениям подписи (к одному или разным сообщениям) можно понять, разные у них авторы или один (при этом в последнем случае неизвестно, кто именно).[0004] To ensure anonymity, a number of solutions use bindable ring signature technology. The value of the associated message ring is computed by one group member using the public keys of all members of the group and the secret key of the signer. The signature is verified using the public keys of all members of the group. At the same time: by the value of the signature it is impossible to understand which of the group members is its author (but it is known that someone from the specified group); by two values of the signature (to the same or different messages), one can understand whether they have different authors or one (in the latter case, it is not known who exactly).

[0005] Пример такого подхода описан в работе Liu J.K. et al. Linkable Spontaneous Anonymous Group Signature for Ad Hoc Groups. Information Security and Privacy. ACISP 2004. Lecture Notes in Computer Science, vol 3108. 2004. Pp.325-335.[0005] An example of such an approach is described in the work of Liu J.K. et al. Linkable Spontaneous Anonymous Group Signature for Ad Hoc Groups. Information Security and Privacy. ACISP 2004. Lecture Notes in Computer Science, vol 3108. 2004. Pp. 325-335.

[0006] Для обеспечения возможности проверки корректности результатов голосования в ряде решений используют технологии распределенного реестра. Системы распределенного реестра можно разделить на две группы в зависимости от контроля доступа участников: открытые системы (общедоступны для любых участников) и системы с контролируемым доступом (разграничение прав доступа регламентируется администратором).[0006] To ensure the possibility of checking the correctness of voting results in a number of solutions use distributed ledger technologies. Distributed registry systems can be divided into two groups depending on the access control of participants: open systems (publicly available for any participants) and systems with controlled access (the differentiation of access rights is regulated by the administrator).

[0007] В качестве аналога предлагаемого решения можно рассмотреть систему электронного голосования, известную из работы Kirillov D. et al. Implementation of an E-Voting Scheme Using Hyperledger Fabric Permissioned Blockchain. Computational Science and Its Applications. Lecture Notes in Computer Science, vol 11620. 2019. Pp. 509-521. Данное решение предполагает использование системы распределенного реестра, допускающей возможность работы центра сертификации в режиме анонимизации участников, однако применяемая технология подписи вслепую может привести к возможности подачи сфабрикованного голоса организатором.[0007] As an analogue of the proposed solution, one can consider the electronic voting system known from the work of Kirillov D. et al. Implementation of an E-Voting Scheme Using Hyperledger Fabric Permissioned Blockchain. Computational Science and Its Applications. Lecture Notes in Computer Science, vol 11620.2019. Pp. 509-521. This solution assumes the use of a distributed registry system that allows the certification authority to work in the mode of anonymizing participants, however, the blind signature technology used can lead to the possibility of submitting a fabricated vote by the organizer.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[0008] Решаемой технической проблемой, присущей известным из уровня техники решениям, является анонимизация голосующих при сохранении возможности проверки корректности результатов голосования, а также невозможности подачи сфабрикованного голоса организатором.[0008] The technical problem to be solved inherent in the prior art solutions is the anonymization of voters while maintaining the possibility of checking the correctness of the voting results, as well as the impossibility of submitting a fabricated vote by the organizer.

[0009] Технический результат заключается в повышении безопасности электронного голосования за счет анонимизации голосующих, исключения возможности влияния на ход и результаты голосования со стороны организатора, а также открытости в распределенном реестре результатов голосования.[0009] The technical result consists in improving the security of electronic voting by anonymizing voters, eliminating the possibility of influencing the course and results of voting by the organizer, as well as openness in the distributed register of voting results.

[0010] Заявленный результат достигается за счет компьютерно-реализуемого способа электронного голосования в распределенном реестре, содержащего этапы, на которых:[0010] The claimed result is achieved due to a computer-implemented method of electronic voting in a distributed register, containing the stages at which:

- с помощью центра сертификации формируют сертификат открытого ключа для каждого устройства пользователя, участвующего в сессии голосования в распределенном реестре;- using a certification authority, a public key certificate is generated for each device of a user participating in a voting session in a distributed registry;

- на устройстве организатора формируют сессию для голосования, параметры которой содержат по меньшей мере идентификатор сессии и перечень упомянутых сертификатов открытых ключей устройств пользователей,- a voting session is formed on the organizer's device, the parameters of which contain at least a session identifier and a list of the mentioned certificates of public keys of user devices,

- передают от устройства организатора на узел сети распределенного реестра параметры сессии голосования;- transmitting the parameters of the voting session from the organizer's device to the network node of the distributed register;

- записывают в распределенный реестр параметры сессии голосования;- recording the parameters of the voting session in the distributed register;

- осуществляют регистрацию участников голосования в сессии голосования, при которой- register the voting participants at the voting session, at which

• генерируют на каждом из устройств участников пару закрытого VS и открытого VP ключей для связываемой кольцевой подписи;• generate on each of the participants' devices a pair of private VS and public VP keys for the associated ring signature;

• передают от устройств участников на упомянутый узел сети распределенного реестра упомянутые открытые ключи VP для соответствующего идентификатора сессии голосования;• transmitting from the devices of the participants to the said network node of the distributed register said public keys VP for the corresponding identifier of the voting session;

• выполняют аутентификацию устройств пользователей на основе сертификатов открытых ключей;• perform authentication of user devices based on public key certificates;

• осуществляют логикой смарт-контракта проверку допустимости участия в сессии голосования с помощью проверки наличия сертификатов открытых ключей в параметрах сессии голосования для соответствующего идентификатора сессии голосования и наличия отметки о регистрации для сертификатов открытых ключей;• check the admissibility of participation in the voting session by the logic of the smart contract by checking for the presence of public key certificates in the voting session parameters for the corresponding voting session identifier and the presence of a registration mark for public key certificates;

• записывают в распределенный реестр открытые ключи VP и отметки о регистрации для соответствующих сертификатов открытых ключей;• write VP public keys and registration marks for the corresponding public key certificates into the distributed registry;

- с помощью центра сертификации формируют анонимный сертификат открытого ключа для каждого устройства пользователя, допущенного к соответствующей сессии голосования;- with the help of a certification authority, an anonymous public key certificate is generated for each user device admitted to the corresponding voting session;

- осуществляют голосование участников, при котором- carry out voting of the participants, in which

• каждое устройство получает список всех открытых ключей VP участников текущей сессии голосования;• each device receives a list of all VP public keys of the participants in the current voting session;

• формируют на каждом из устройств участников ответы для текущей сессии голосования;• generate responses for the current voting session on each of the participants' devices;

• вычисляют на каждом из упомянутых устройств участников значение связываемой кольцевой подписи на основании сформированных ответов, секретного ключа VS участника и всех открытых ключей VP участников текущей сессии голосования;• calculating on each of the mentioned participant devices the value of the associated ring signature based on the generated responses, the participant's private key VS and all public keys VP of the participants in the current voting session;

• передают от устройств участников на узел сети распределенного реестра сформированные ответы, а также значение связываемой кольцевой подписи;• the generated responses are transmitted from the devices of the participants to the network node of the distributed register, as well as the value of the associated ring signature;

• выполняют аутентификацию устройств пользователей на основе анонимных сертификатов открытых ключей;• authenticate user devices based on anonymous public key certificates;

• осуществляют логикой смарт-контракта проверку значения связываемой кольцевой подписи, используя сформированные ответы и открытые ключи VP участников текущей сессии голосования, и проверку факта осуществленной ранее передачи результатов голосования данным участником, используя проверенное значение связываемой кольцевой подписи и значения подписей, записанные ранее в распределенный реестр;• the logic of the smart contract checks the value of the ring signature to be bound using the generated responses and the VP public keys of the participants of the current voting session, and the verification of the fact that the voting results were previously transmitted by this participant using the verified value of the ring signature to be bound and the signature values previously recorded in the distributed register ;

• записывают в распределенный реестр ответы соответственно значению связываемой кольцевой подписи.• write responses to the distributed ledger according to the value of the associated ring signature.

[0011] В одном из частных примеров реализации способа, после проверки допустимости участия пользователя в сессии голосования, открытый ключ VP и сертификат открытого ключа устройства пользователя связываются для соответствующего идентификатора сессии голосования.[0011] In one of the particular examples of the implementation of the method, after checking the validity of the user's participation in the voting session, the public key VP and the public key certificate of the user's device are associated for the corresponding identifier of the voting session.

[0012] В другом частном примере реализации способа, с помощью центра сертификации формируется сертификат открытого ключа для устройства организатора, на основе которого выполняется аутентификация устройства организатора.[0012] In another particular example of the implementation of the method, a public key certificate for the organizer device is generated with the help of the certification authority, on the basis of which the organizer device is authenticated.

[0013] В другом частном примере реализации способа, сертификаты открытых ключей хранятся в центре сертификации, на устройствах пользователей и на узлах сети распределенного реестра.[0013] In another particular example of implementation of the method, public key certificates are stored in a certification authority, on user devices and on network nodes of the distributed registry.

[0014] В другом частном примере реализации способа, сеть распределенного реестра представляет собой блокчейн-сеть.[0014] In another particular embodiment of the method, the distributed ledger network is a blockchain network.

[0015] В другом частном примере реализации способа, блокчейн-сеть содержит упорядочивающие узлы, формирующие блоки для записи в реестр. [0015] In another particular example of the implementation of the method, the blockchain network contains ordering nodes that form blocks for writing to the register.

[0016] В другом частном примере реализации способа, блокчейн-сеть выполнена с помощью системы Hyperledger Fabric.[0016] In another particular example of the implementation of the method, the blockchain network is implemented using the Hyperledger Fabric system.

[0017] Заявленный технический результат также достигается за счет системы электронного голосования в распределенном реестре, которая содержит:[0017] The claimed technical result is also achieved through an electronic voting system in a distributed register, which contains:

центр сертификации, выполненный с возможностьюenabled certification authority

формирования сертификатов открытых ключей для устройств пользователей, участвующих в сессии голосования в распределенном реестре;generating public key certificates for user devices participating in the voting session in the distributed registry;

формирования анонимных сертификатов открытых ключей для устройств пользователей, допущенных к соответствующей сессии голосования;generating anonymous public key certificates for user devices admitted to the corresponding voting session;

устройство организатора, выполненное с возможностьюorganizer device configured

формирования сессии для голосования, параметры которой содержат по меньшей мере идентификатор сессии и перечень упомянутых сертификатов открытых ключей устройств пользователей;forming a voting session, the parameters of which contain at least a session identifier and a list of said certificates of public keys of user devices;

передачи на узел сети распределенного реестра параметров сессии голосования;transmission of the voting session parameters to the network node of the distributed register;

по меньшей мере одно устройство пользователя, участвующего в сессии голосования, выполненное с возможностьюat least one device of a user participating in a voting session, configured

генерации пары закрытого VS и открытого VP ключей для связываемой кольцевой подписи;generating a pair of private VS and public VP keys for the associated ring signature;

передачи на узел сети распределенного реестра открытого ключа VP для соответствующего идентификатора сессии голосования;transmission to the network node of the distributed register of the public key VP for the corresponding identifier of the voting session;

формирования ответов для текущей сессии голосования;generating responses for the current voting session;

получения списка всех открытых ключей VP участников текущей сессии голосования;obtaining a list of all VP public keys of the participants in the current voting session;

вычисления значения связываемой кольцевой подписи на основании сформированных ответов, секретного ключа VS участника и всех открытых ключей VP участников текущей сессии голосования;calculating the value of the associated ring signature based on the generated responses, the participant's private key VS and all public keys VP of the participants in the current voting session;

передачи на узел сети распределенного реестра сформированных ответов и значения связываемой кольцевой подписи;transmission to the network node of the distributed register of the generated responses and the value of the associated ring signature;

по меньшей мере один узел сети распределенного реестра, выполненный с возможностьюat least one network node of the distributed ledger, configured

осуществления аутентификации устройств пользователей на основе сертификатов открытых ключей и анонимных сертификатов открытых ключей;authentication of user devices based on public key certificates and anonymous public key certificates;

хранения распределенного реестра;storage of a distributed register;

записи в распределенный реестр параметров сессии голосования;entries in the distributed register of the parameters of the voting session;

записи в распределенный реестр открытых ключей VP и отметок о регистрации для соответствующих сертификатов открытых ключей;entries in the distributed registry of VP public keys and registration marks for the corresponding public key certificates;

осуществления логикой смарт-контракта проверки допустимости участия пользователя в сессии голосования с помощью проверки наличия сертификата открытого ключа в параметрах сессии голосования для соответствующего идентификатора сессии голосования и наличия отметки о регистрации для сертификата открытого ключа;the logic of the smart contract checks the admissibility of the user's participation in the voting session by checking the presence of a public key certificate in the voting session parameters for the corresponding voting session identifier and the presence of a registration mark for the public key certificate;

осуществления логикой смарт-контракта проверки значения связываемой кольцевой подписи с использованием сформированных ответов участника и всех открытых ключей VP участников текущей сессии голосования и проверки факта осуществленной ранее передачи результатов голосования данным участником с использованием проверенного значения связываемой кольцевой подписи и значений подписей, записанных ранее в распределенный реестр;implementation by the smart contract logic of verifying the value of the ring signature to be bound using the generated responses of the participant and all VP public keys of the participants in the current voting session and verifying the fact of the previous transmission of the voting results by this participant using the verified value of the bound ring signature and the signature values recorded earlier in the distributed register ;

записи в распределенный реестр ответов соответственно значению связываемой кольцевой подписи.records in the distributed response register according to the value of the associated ring signature.

[0018] В одном из частных примеров заявленной системы, после проверки допустимости участия пользователя в сессии голосования, открытый ключ VP и сертификат открытого ключа устройства пользователя связываются для соответствующего идентификатора сессии голосования.[0018] In one particular example of the claimed system, after validation of the user's participation in the voting session, the VP public key and the user's device public key certificate are associated for the corresponding voting session identifier.

[0019] В другом частном примере заявленной системы, центр сертификации выполнен с возможностью формирования сертификата открытого ключа для устройства организатора.[0019] In another particular example of the claimed system, the certification authority is configured to generate a public key certificate for the organizer device.

[0020] В другом частном примере заявленной системы, узел распределенного реестра выполнен с возможностью осуществления аутентификации устройства организатора на основе сертификата открытого ключа.[0020] In another particular example of the claimed system, the distributed ledger node is configured to authenticate the organizer device based on a public key certificate.

[0021] В другом частном примере заявленной системы, сертификаты открытых ключей хранятся в центре сертификации, на устройствах пользователей и на узлах сети распределенного реестра.[0021] In another particular example of the claimed system, public key certificates are stored in a certification authority, on users' devices and on network nodes of a distributed registry.

[0022] В другом частном примере заявленной системы, сеть распределенного реестра представляет собой блокчейн-сеть.[0022] In another particular example of the claimed system, the distributed ledger network is a blockchain network.

[0023] В другом частном примере заявленной системы, блокчейн-сеть содержит упорядочивающие узлы, формирующие блоки для записи в реестр. [0023] In another particular example of the claimed system, the blockchain network contains sequencing nodes that form blocks for writing to the register.

[0024] В другом частном примере заявленной системы, блокчейн-сеть выполнена с помощью системы Hyperledger Fabric.[0024] In another particular example of the claimed system, the blockchain network is implemented using the Hyperledger Fabric system.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS

[0025] Фиг. 1А иллюстрирует общую схему заявленного решения.[0025] FIG. 1A illustrates a general outline of the claimed solution.

[0026] Фиг. 1Б иллюстрирует схему взаимодействия устройств - участников голосования.[0026] FIG. 1B illustrates the scheme of interaction of devices - participants in the voting.

[0027] Фиг. 2 иллюстрирует блок-схему выполнения заявленного способа.[0027] FIG. 2 illustrates a block diagram of the implementation of the claimed method.

[0028] Фиг. 3 иллюстрирует схему процесса регистрации участников голосования.[0028] FIG. 3 illustrates a diagram of the registration process for voting participants.

[0029] Фиг. 4 иллюстрирует схему процесса голосования участниками.[0029] FIG. 4 illustrates a diagram of the voting process by participants.

[0030] Фиг. 5 иллюстрирует общий вид вычислительного устройства.[0030] FIG. 5 illustrates a general view of a computing device.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯCARRYING OUT THE INVENTION

[0031] Как представлено на Фиг. 1А, общая схема заявленного решения включает в себя следующие элементы. Устройства участников голосования (110), центр сертификации (120), узел (130) распределенного реестра, содержащий смарт-контракт (131) и копию распределенного реестра (132). Все элементы системы объединены сетью передачи данных (150), например, Интернет, а также сетью распределенного реестра (151).[0031] As shown in FIG. 1A, the general diagram of the claimed solution includes the following elements. Voter devices (110), a certification authority (120), a distributed ledger node (130) containing a smart contract (131) and a copy of the distributed ledger (132). All elements of the system are connected by a data transmission network (150), for example, the Internet, as well as a distributed registry network (151).

[0032] В качестве сети распределенного реестра (151) может применяться различный тип блокчейн протоколов (блокчейн сети). Предлагаемое техническое решение предполагает использование системы с контролируемым доступом, то есть все участники и их права известны заранее. Пример такой системы - Hyperledger Fabric. В предлагаемом решении система распределенного реестра используется для того, чтобы обеспечить невозможность цензуры и возможность проверки результатов как непосредственными участниками, так и внешними наблюдателями.[0032] As a distributed ledger network (151), various types of blockchain protocols (blockchain networks) can be used. The proposed technical solution assumes the use of a system with controlled access, that is, all participants and their rights are known in advance. An example of such a system is Hyperledger Fabric. In the proposed solution, the distributed ledger system is used in order to ensure the impossibility of censorship and the possibility of verifying the results by both direct participants and external observers.

[0033] Сеть передачи данных (150) может быть организована с помощью любого известного подхода, обеспечивающего информационный обмен для используемых устройств, например, посредством принципов связи: WAN, LAN, WLAN, Wi-Fi, GSM и т.п.[0033] The data transmission network (150) can be organized using any known approach that provides information exchange for the devices used, for example, through communication principles: WAN, LAN, WLAN, Wi-Fi, GSM, etc.

[0034] В качестве центра сертификации (120) используется вычислительный узел, например, серверное приложение или сервер, обеспечивающий заданный функционал. Программный компонент, реализуемый с помощью центра (120), может быть создан на основе исполняемого кода системы распределенного реестра, либо на основе внешнего исполняемого кода. Центр сертификации (120) может работать в двух режимах: стандартный (выпуск, учет и отзыв криптографических сертификатов пользователей (110)) и режим анонимизации участников с сохранением атрибутов (выпуск, учет и отзыв анонимных криптографических сертификатов с атрибутами). В заявленном решении для обеспечения процесса голосования используется единственный атрибут - вхождение пользователя (110) в список пользователей системы. Валидность данного атрибута проверяется центром сертификации (120).[0034] A computing node is used as a certification authority (120), for example, a server application or a server that provides a given functionality. The software component implemented by the center (120) can be created on the basis of the executable code of the distributed registry system, or on the basis of external executable code. The Certification Authority (120) can operate in two modes: standard (issuance, accounting and revocation of user cryptographic certificates (110)) and mode of anonymization of participants with preservation of attributes (issuance, accounting and revocation of anonymous cryptographic certificates with attributes). In the claimed solution, to ensure the voting process, a single attribute is used - the entry of the user (110) into the list of system users. The validity of this attribute is verified by a certification authority (120).

[0035] В качестве устройств участников голосования 110) могут применяться любые технические средства, обеспечивающие обработку требуемых данных и обладающие заданным функционалом для работы через сеть передачи данных (150). Таким устройствами могут являться: смартфоны, компьютеры, ноутбуки, игровые приставки, умные устройства (телевизоры, носимые устройства) и т.п.[0035] As devices of the voting participants 110), any technical means can be used that ensure the processing of the required data and have a predetermined functionality for operation through the data transmission network (150). Such devices can be: smartphones, computers, laptops, game consoles, smart devices (TVs, wearable devices), etc.

[0036] Устройства (110) содержат исполняемый процессором устройства программный компонент, который необходим для взаимодействия пользователей (110) с сетью распределенного реестра (151) и центром сертификации (120).[0036] The devices (110) contain a software component executed by the device processor, which is necessary for users (110) to interact with the distributed ledger network (151) and the certification authority (120).

[0037] Как показано на Фиг. 1Б, устройства (110) распределяются на роли в системе для осуществления процесса голосования (111-113), в частности, такими ролями являются: организатор (111), голосующие (121-12n) и наблюдатель (113).[0037] As shown in FIG. 1B, devices (110) are assigned to roles in the system for implementing the voting process (111-113), in particular, such roles are: organizer (111), voters (121-12n) and observer (113).

[0038] Устройство организатора (111) обеспечивает инициализацию сессии голосования. Организатор (111) составляет перечень вопросов и перечень участников голосования, определяет сроки регистрации и голосования. Устройства участников голосования (121-12n) обеспечивают регистрацию в требуемой сессии голосования, а также непосредственно голосование. Наблюдатель (113) следит за корректностью работы системы.[0038] The organizer device (111) initiates the voting session. The organizer (111) draws up a list of issues and a list of voting participants, determines the terms of registration and voting. Voter devices (121-12n) provide registration for the required voting session, as well as direct voting. The observer (113) monitors the correctness of the system.

[0039] Узел сети распределенного реестра (130) (один или более) представляет собой вычислительный узел с программным компонентом, который может быть создан на основе исполняемого кода системы распределенного реестра (например, указанной выше системы Hyperledger Fabric). Узел сети распределенного реестра (130) содержит копию распределенного реестра (132), смарт-контракт (131) и среду исполнения программного кода смарт-контрактов. Смарт-контракт (131) представляет собой программную логику, реализующую функционал процесса голосования.[0039] A distributed ledger network node (130) (one or more) is a computational node with a software component that can be created based on the executable code of a distributed ledger system (eg, the above Hyperledger Fabric system). The network node of the distributed ledger (130) contains a copy of the distributed ledger (132), a smart contract (131), and an execution environment for the program code of smart contracts. A smart contract (131) is a software logic that implements the functionality of the voting process.

[0040] Также архитектура решения может включать в себя один или несколько упорядочивающих узлов сети распределенного реестра (не показан на Фиг. 1А). Программный компонент такого узла может быть сформирован на основе исполняемого кода системы распределенного реестра. Упорядочивающий узел обеспечивает упорядочивание изменений в реестре.[0040] Also, the solution architecture may include one or more sequencing nodes of a distributed ledger network (not shown in FIG. 1A). The software component of such a node can be formed on the basis of the executable code of the distributed registry system. The sequencing node ensures that registry changes are sequenced.

[0041] На Фиг. 2 представлен общий процесс выполнения заявленного способа (200) электронного голосования. Перед началом создания сессии голосования определяются права для устройств пользователей (110), перечень узлов (130), выполняется настройка центра сертификации (120), загрузка смарт-контракта (131). Дополнительно может определяться перечень упорядочивающих узлов.[0041] FIG. 2 shows the general process of implementing the claimed method (200) of electronic voting. Before starting to create a voting session, the rights for user devices (110), a list of nodes (130) are determined, a certification authority is configured (120), and a smart contract is loaded (131). Additionally, a list of ordering nodes can be defined.

[0042] На первом этапе (201) осуществляется формирование сертификатов открытых ключей для устройств пользователей (110), участвующих в сессии голосования. Сертификаты открытых ключей формируются центром сертификации (120). Для каждого пользователя (110) создается пара открытого и секретного ключа (Pi, Si), где i - номер пользователя.[0042] In the first step (201), public key certificates are generated for user devices (110) participating in the voting session. Public key certificates are generated by a certification authority (120). For each user (110), a public and private key pair (Pi, Si) is created, where i is the user number.

[0043] Сертификат открытого ключа может храниться в центре сертификации, на узлах сети распределенного реестра, на устройстве пользователя, секретный ключ - например, в личном хранилище пользователя, доступ к которому реализован с помощью устройства (110) пользователя и управляется специализированным приложением. Каждый элемент взаимодействия пользователя под номером i с сетью распределенного реестра подразумевает аутентификацию по сертификату, который содержит открытый ключ Pi.[0043] The public key certificate can be stored in the certification authority, on the network nodes of the distributed registry, on the user's device, the secret key - for example, in the user's personal storage, which is accessed by the user's device (110) and controlled by a specialized application. Each element of user interaction numbered i with the distributed registry network implies authentication using a certificate that contains the public key Pi.

[0044] На этапе (202) выполняется создание сессии голосования с параметрами допуска устройств участников (121-12n), для чего на устройстве организатора (111) формируют сессию для голосования, параметры которой содержат идентификатор сессии (ID) и перечень сертификатов открытых ключей устройств пользователей Pj, j=1, …, n. Также параметрами сессии голосования могут выступать такие данные, как: перечень вопросов, сроки регистрации и голосования и т.п.[0044] At step (202), a voting session is created with the admission parameters of the participants' devices (121-12n), for which a voting session is formed on the organizer's device (111), the parameters of which contain a session identifier (ID) and a list of device public key certificates users Pj, j = 1,…, n. Also, the parameters of the voting session can be data such as: a list of issues, terms of registration and voting, etc.

[0045] Параметры сессии голосования на этапе (203) передаются от устройства организатора (111) на узел распределенного реестра (130). В результате обработки полученных параметров в сети распределенного реестра (151) выполняется их запись в распределенный реестр (132).[0045] The voting session parameters in step (203) are transmitted from the organizer device (111) to the distributed ledger node (130). As a result of processing the obtained parameters in the network of the distributed register (151), they are recorded in the distributed register (132).

[0046] На этапе (204) осуществляется регистрация участников голосования (121-12n) в сессии голосования, сформированной устройством организатора (111). Процесс регистрации участников голосования будет рассмотрен более подробно с отсылкой к Фиг. 3.[0046] In step (204), the voting participants (121-12n) are registered in the voting session generated by the organizer device (111). The voter registration process will be discussed in more detail with reference to FIG. 3.

[0047] На первом этапе (301) регистрации устройств участников (121-12n) сессии голосования выполняется генерация пары открытого и секретного ключей для голосования (VPj, VSj), j - номер участника (121-12n), которые будут использоваться в схеме связываемой кольцевой подписи. Далее на этапе (302) каждое из зарегистрированных устройств отправляет открытый ключ VPj и ID сессии голосования, в котором он хочет принять участие, на узел распределенного реестра (130) посредством сети передачи данных (150).[0047] At the first stage (301) of registering the devices of the participants (121-12n) of the voting session, a pair of public and secret keys for voting (VPj, VSj) is generated, j is the participant number (121-12n), which will be used in the scheme to be connected ring signature. Next, in step (302), each of the registered devices sends the public key VPj and the voting session ID in which it wants to participate to the distributed ledger node (130) via the data network (150).

[0048] Узел (130) выполняет аутентификацию устройств пользователей (этап 303) на основе сертификатов открытых ключей.[0048] Node (130) authenticates user devices (step 303) based on public key certificates.

[0049] Затем смарт-контракт (131) выполняет проверку (этап 304), что текущий пользователь (121-12n) имеет право участвовать в сессии голосования с соответствующим ID. Для этого на этапе (305) должно соблюдаться условие наличия соответствующего открытого ключа Pj в перечне параметров, сформированных устройством организатора (111). При успешной валидации в сети распределенного реестра (151) выполняется запись в реестр (132) ключа для голосования VPj соответствующего устройства участника (121-12n) (этап 306). Если запись соответствующего ключа Pj отсутствует в параметрах сессии, то пользователь не допускается к сессии голосования (этап 307). При доступе или отказе в доступе может формироваться соответствующее уведомление, отображаемое на устройстве пользователя (121-12n).[0049] The smart contract (131) then checks (step 304) that the current user (121-12n) is eligible to participate in the voting session with the corresponding ID. For this, at step (305), the condition of the presence of the corresponding public key Pj in the list of parameters generated by the organizer device (111) must be met. Upon successful validation in the distributed ledger network (151), the voting key VPj of the corresponding participant device (121-12n) is written to the register (132) (step 306). If the record of the corresponding key Pj is absent in the session parameters, then the user is not allowed to the voting session (step 307). When accessing or denying access, a corresponding notification can be generated and displayed on the user's device (121-12n).

[0050] На этапе (205) с помощью центра сертификации (120) осуществляется формирование анонимных сертификатов открытого ключа для каждого устройства пользователя (121-12n), допущенного к соответствующей сессии голосования.[0050] In step (205), the certification authority (120) generates anonymous public key certificates for each user device (121-12n) admitted to the corresponding voting session.

[0051] Каждый участник (121-12n), который зарегистрировал свой ключ VPj для сессии голосования, на этапе (205) взаимодействует с центром сертификации (120), который работает в режиме анонимизации участников с сохранением атрибутов, для получения анонимного сертификата с атрибутами, выдача которого будет означать, что владелец сертификата входит в список пользователей системы. Взаимодействие может выполняться через программное приложение, установленное на устройстве (121-12n).[0051] Each participant (121-12n) who has registered their VPj key for the voting session, in step (205) interacts with a certification authority (120), which operates in the participant anonymization mode with preservation of attributes, to obtain an anonymous certificate with attributes, the issuance of which will mean that the owner of the certificate is included in the list of system users. Interaction can be performed through a software application installed on the device (121-12n).

[0052] Процесс голосования будет описан подробнее с отсылкой на Фиг. 4. На первом этапе голосования (401) каждым из допущенных устройств (121-12n) выполняется загрузка открытых ключей всех устройств (121-12n) VPj, j=1,.…, n, для соответствующей сессии голосования. Это требуется для последующего вычисления связываемой кольцевой подписи.[0052] The voting process will be described in more detail with reference to FIG. 4. At the first stage of voting (401), each of the allowed devices (121-12n) downloads the public keys of all devices (121-12n) VPj, j = 1, ..., n, for the corresponding voting session. This is required for the subsequent computation of the associated ring signature.

[0053] Каждый участник с помощью своего устройства формирует на этапе (402) ответы на вопросы и вычисляет для полученного в результате формирования ответов сообщения значение связываемой кольцевой подписи с помощью секретного ключа участника VSj, j - номер участника, и множества всех загруженных открытых ключей для голосования VPj, j=1, …, n (этап 403).[0053] Each participant using his device generates at step (402) answers to questions and calculates the value of the associated ring signature for the message received as a result of the formation of the message responses using the participant's secret key VSj, j is the participant number, and the set of all downloaded public keys for voting VPj, j = 1, ..., n (step 403).

[0054] Далее на этапе (404) сформированные ответы в сессии голосования отправляются от каждого из устройств (121-12n) на узел (130) в виде сообщения, содержащего ответы и значение связываемой кольцевой подписи. На этапе (405) выполняется аутентификация каждого устройства (121-12n) с помощью анонимного сертификата.[0054] Next, at step (404), the generated responses in the voting session are sent from each of the devices (121-12n) to the node (130) in the form of a message containing the responses and the value of the associated ring signature. At step (405), each device (121-12n) is authenticated with an anonymous certificate.

[0055] Логикой смарт-контракта (131) проверяется, верна ли связываемая кольцевая подпись (этап 406), с использованием открытых ключей для голосования всех участников (121-12n) VPj, j=1, …, n. Также для каждого значения связываемой кольцевой подписи выполняется проверка факта осуществления ранее голосования соответствующим участником (121-12n), что проверяется возможностью связывания текущего значения подписи с одним из записанных ранее в распределенный реестр.[0055] The smart contract logic (131) checks if the associated ring signature is correct (step 406) using the public keys to vote for all participants (121-12n) VPj, j = 1, ..., n. Also, for each value of the associated ring signature, a check is made of the fact that the corresponding participant (121-12n) has previously voted, which is checked by the possibility of linking the current value of the signature with one of those previously recorded in the distributed register.

[0056] Если значение связываемой кольцевой подписи верное, то на этапе (407) выполняется запись (или перезапись, если участник ранее голосовал) ее значения и ответов участника (121-12n) в распределенный реестр (132). До окончания процедуры голосования участник (121-12n) может получить другой анонимный сертификат и отправить новое сообщение для изменения своего решения. Подсчет результатов голосования происходит одновременно, после учета каждого голоса.[0056] If the value of the associated ring signature is correct, then at step (407), it is written (or overwritten if the participant has previously voted) its value and the participant's responses (121-12n) into the distributed ledger (132). Before the end of the voting procedure, the participant (121-12n) can receive another anonymous certificate and send a new message to change his decision. The counting of voting results occurs simultaneously, after each vote has been counted.

[0057] Далее рассмотрим подробнее принцип работы связываемой кольцевой подписи. Пусть имеется группа устройств участников голосования (121-12n), у каждого устройства имеется ключ подписи VPj (открытый) и ключ проверки подписи VSj (секретный), j=1, …, n. Также есть некоторое сообщение m, которое требуется подписать.[0057] Next, we will consider in more detail the principle of operation of the linked ring signature. Let there be a group of voting participants' devices (121-12n), each device has a signature key VPj (public) and a signature verification key VSj (secret), j = 1, ..., n. There is also some message m that needs to be signed.

[0058][0058]

[0059] Кольцевая подпись от имени группы участников сессии голосования вычисляется с помощью алгоритма Sign(m, VPL, VP1-, …, VPn, VSk), который принимает на вход сообщение m, открытые ключи всех участников группы VP1-, …, VPn и секретный ключ VSk подписывающего участника, возвращает значение кольцевой подписи σ.[0059] The ring signature on behalf of the group of participants in the voting session is calculated using the Sign algorithm (m, VPL, VP1 - , ..., VPn, VSk), which takes as input message m, the public keys of all members of the group VP1 - , ..., VPn and the signer's private key VSk, returns the ring signature value σ.

[0060] Значение кольцевой подписи проверяется с помощью алгоритма Verifyim, VP1-, …, VPn, σ, который принимает на вход сообщение m, открытые ключи всех участников сессии голосования VP1-, …, VPn и значение подписи σ, возвращает значение "да" или "нет".[0060] The ring signature value is checked using the Verifyim algorithm, VP1 - , ..., VPn, σ, which takes as input message m, the public keys of all participants in the voting session VP1 - , ..., VPn and the signature value σ, returns the value "yes" or not".

[0061] Таким образом, кольцевая подпись позволяет одному из участников группы подписать сообщение от имени группы, при этом по значению подписи не будет известно, кто именно из участников группы его подписал.[0061] Thus, the ring signature allows one of the group members to sign a message on behalf of the group, while the signature value will not know which of the group members signed it.

[0062] У связываемой кольцевой подписи, которая используется в предлагаемом решении, алгоритмы принимают такие же параметры, но имеются следующие отличия:[0062] The bindable ring signature used in the proposed solution has the same parameters as algorithms, but with the following differences:

- алгоритм вычисления подписи Sign(m, VP1-, …, VPn, VSk) внутри себя содержит функцию TagGen(VP1-, …, VPn, VSk), которая возвращает идентификатор, который не зависит от сообщения и по которому нельзя восстановить VSk или VPk (этот идентификатор является частью значения подписи σ);- the algorithm for calculating the signature Sign (m, VP1 - , ..., VPn, VSk) contains the TagGen function (VP1 - , ..., VPn, VSk) internally, which returns an identifier that does not depend on the message and which cannot be used to recover VSk or VPk (this identifier is part of the signature value σ);

- появляется дополнительная возможность по двум значениям подписи понять, разные у них авторы или один (но по-прежнему неизвестно, какой).- there is an additional opportunity to understand by two values of the signature whether they have different authors or one (but it is still unknown which one).

[0063] В предлагаемом решении связываемая кольцевая подпись используется для обеспечения двух свойств. В-первых, она позволяет обеспечить невозможность определить, какой участник как проголосовал, благодаря базовому свойству - неизвестно, кто из голосующих поставил подпись под сообщением с голосом, но точно известно, что кто-то из группы участников для соответствующей ID сессии.[0063] In the proposed solution, the linkable ring signature is used to provide two properties. First, it ensures that it is impossible to determine which participant voted how, thanks to the basic property - it is not known which of the voters signed the message with the vote, but it is known for sure that someone from the group of participants for the corresponding session ID.

[0064] Во-вторых, она позволяет защититься от ситуации, когда один из голосующих проголосует дважды, благодаря дополнительному свойству - если голосующий отправит два сообщения с голосом, можно будет понять, что это был один и тот же человек, но неизвестно, кто именно.[0064] Secondly, it allows you to protect yourself from the situation when one of the voters votes twice, thanks to an additional property - if the voter sends two messages with a vote, it will be possible to understand that it was the same person, but it is not known who exactly ...

[0065] Все запросы, направляемые в сеть распределенного реестра (150), по умолчанию подписываются обыкновенной подписью, для этого используются сертификаты открытого ключа (либо обыкновенные, либо анонимные), выданные центром сертификации (120). Чтобы работать с кольцевой подписью, используются ключи, которые не связаны ни с обычными сертификатами, ни с анонимными. Пользователи на этапе регистрации (204) генерируют новые ключи и отправляют их в сеть, а на этапе голосования (206) вычисляют значения связываемой кольцевой подписи с использованием упомянутых ключей и отправляют их в сеть внутри запроса, подписанного обыкновенной подписью.[0065] All requests sent to the distributed ledger network (150) are signed by default with an ordinary signature, for this, public key certificates (either ordinary or anonymous) issued by a certification authority (120) are used. To work with ring signature, keys are used that are not associated with either regular certificates or anonymous ones. At the registration stage (204), users generate new keys and send them to the network, and at the voting stage (206) calculate the values of the associated ring signature using these keys and send them to the network within a request signed with an ordinary signature.

[0066] На Фиг. 5 представлен пример общего вида вычислительного устройства (500), на базе которого может быть реализовано заявленное решение, в частности вычислительные устройства, и элементы, выполняющие вычислительную обработку информации.[0066] FIG. 5 shows an example of a general view of a computing device (500), on the basis of which the claimed solution can be implemented, in particular computing devices, and elements performing computational information processing.

[0067] В общем случае, устройство (500) содержит объединенные общей шиной информационного обмена (510) один или несколько процессоров (501), средства памяти, такие как ОЗУ (502) и ПЗУ (503), интерфейсы ввода/вывода (504), устройства ввода/вывода (505), и устройство для сетевого взаимодействия (506). В общем случае устройство (500) может представлять собой сервер, серверный кластер, мейнфрейм, суперкомпьютер, или иной тип пригодного вычислительного устройства.[0067] In the General case, the device (500) contains one or more processors (501) united by a common data exchange bus (510), memory means such as RAM (502) and ROM (503), input / output interfaces (504) , input / output devices (505), and a device for networking (506). In general, the device (500) can be a server, server cluster, mainframe, supercomputer, or other type of suitable computing device.

[0068] Процессор (501) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™, и т.п. Под процессором или одним из используемых процессоров в устройстве (500) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения заявленного способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0068] The processor (501) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as: Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the device (500), it is also necessary to take into account a graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial implementation of the claimed method, and can also be used for training and applying machine learning models in various information systems.

[0069] ОЗУ (502) представляет собой оперативную память и предназначено для хранения исполняемых процессором (501) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (502), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (502) может выступать доступный объем памяти графической карты или графического процессора.[0069] RAM (502) is a random access memory and is intended for storing machine-readable instructions executed by the processor (501) for performing the necessary operations for logical processing of data. RAM (502), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (502).

[0070] ПЗУ (503) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0070] ROM (503) is one or more persistent storage devices such as a hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[0071] Для организации работы компонентов устройства (500) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (504). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[0071] Various types of I / O interfaces (504) are used to organize the operation of the components of the device (500) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.

[0072] Для обеспечения взаимодействия пользователя с устройством (500) применяются различные средства (505) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор, мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0072] To ensure user interaction with the device (500), various I / O information means (505) are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, manipulator, mouse, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0073] Средство сетевого взаимодействия (506) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (506) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0073] The networking tool (506) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (506) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module, and dr.

[0074] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0074] The presented application materials disclose preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation, not going beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

Claims (55)

1. Компьютерно-реализуемый способ электронного голосования в распределенном реестре, содержащий этапы, на которых:1. A computer-implemented method of electronic voting in a distributed register, containing the stages at which: - с помощью центра сертификации формируют сертификат открытого ключа для каждого устройства пользователя, участвующего в сессии голосования в распределенном реестре;- using a certification authority, a public key certificate is generated for each device of a user participating in a voting session in a distributed registry; - на устройстве организатора формируют сессию для голосования, параметры которой содержат по меньшей мере идентификатор сессии и перечень упомянутых сертификатов открытых ключей устройств пользователей;- a voting session is formed on the organizer's device, the parameters of which contain at least a session identifier and a list of the above-mentioned certificates of public keys of user devices; - передают от устройства организатора на узел сети распределенного реестра параметры сессии голосования;- transmitting the parameters of the voting session from the organizer's device to the network node of the distributed register; - записывают в распределенный реестр параметры сессии голосования;- recording the parameters of the voting session in the distributed register; - осуществляют регистрацию участников голосования в сессии голосования, при которой- register the voting participants at the voting session, at which • генерируют на каждом из устройств участников пару закрытого и открытого ключей для связываемой кольцевой подписи;• generate on each of the participants' devices a pair of private and public keys for the associated ring signature; • передают от устройств участников на упомянутый узел сети распределенного реестра упомянутые открытые ключи для соответствующего идентификатора сессии голосования;• transferring from the devices of the participants to the said network node of the distributed register said public keys for the corresponding identifier of the voting session; • выполняют аутентификацию устройств пользователей на основе сертификатов открытых ключей;• perform authentication of user devices based on public key certificates; • осуществляют с помощью смарт-контракта проверку допустимости участия в сессии голосования путем проверки наличия сертификатов открытых ключей в параметрах сессии голосования для соответствующего идентификатора сессии голосования и наличия отметки о регистрации для сертификатов открытых ключей;• using a smart contract, check the admissibility of participation in the voting session by checking for the presence of public key certificates in the voting session parameters for the corresponding voting session identifier and the presence of a registration mark for public key certificates; • записывают в распределенный реестр открытые ключи и отметки о регистрации для соответствующих сертификатов открытых ключей;• write in the distributed registry public keys and registration marks for the corresponding public key certificates; - с помощью центра сертификации, работающего в режиме анонимизации, формируют анонимный сертификат открытого ключа для каждого устройства пользователя, при этом выдача упомянутого анонимного сертификата подтверждает факт допуска пользователя к соответствующей сессии голосования;- using a certification authority operating in the anonymization mode, an anonymous public key certificate is generated for each user's device, while the issuance of the said anonymous certificate confirms the fact that the user has been admitted to the corresponding voting session; - осуществляют голосование участников, при котором- carry out voting of the participants, in which • каждое устройство получает список всех открытых ключей участников текущей сессии голосования;• each device receives a list of all public keys of the participants in the current voting session; • формируют на каждом из устройств участников ответы для текущей сессии голосования;• generate responses for the current voting session on each of the participants' devices; • вычисляют на каждом из упомянутых устройств участников значение связываемой кольцевой подписи на основании сформированных ответов, секретного ключа участника и всех открытых ключей участников текущей сессии голосования;• calculating on each of the mentioned participant devices the value of the associated ring signature based on the generated responses, the participant's secret key and all public keys of the participants in the current voting session; • передают от устройств участников на узел сети распределенного реестра сформированные ответы, а также значение связываемой кольцевой подписи;• the generated responses are transmitted from the devices of the participants to the network node of the distributed register, as well as the value of the associated ring signature; • выполняют аутентификацию устройств пользователей на основе анонимных сертификатов открытых ключей;• authenticate user devices based on anonymous public key certificates; • осуществляют с помощью смарт-контракта проверку значения связываемой кольцевой подписи, используя сформированные ответы и открытые ключи участников текущей сессии голосования, и проверку факта осуществленной ранее передачи результатов голосования данным участником, используя текущее проверенное значение связываемой кольцевой подписи и значения подписей, записанные ранее в распределенный реестр;• using a smart contract, check the value of the ring signature to be bound using the generated responses and public keys of the participants of the current voting session, and check the fact of the previously transmitted voting results by this participant using the current verified value of the ring signature to be bound and the signature values previously recorded in the distributed registry; • записывают в распределенный реестр ответы соответственно значению связываемой кольцевой подписи.• write responses to the distributed ledger according to the value of the associated ring signature. 2. Способ по п. 1, характеризующийся тем, что после проверки допустимости участия пользователя в сессии голосования открытый ключ и сертификат открытого ключа устройства пользователя связываются для соответствующего идентификатора сессии голосования.2. The method according to claim 1, characterized in that after checking the admissibility of the user's participation in the voting session, the public key and the public key certificate of the user's device are associated for the corresponding voting session identifier. 3. Способ по п. 1, характеризующийся тем, что с помощью центра сертификации формируется сертификат открытого ключа для устройства организатора, на основе которого выполняется аутентификация устройства организатора.3. The method according to claim 1, characterized in that a public key certificate for the organizer device is generated with the help of the certification authority, on the basis of which the organizer device is authenticated. 4. Способ по п. 1, характеризующийся тем, что сертификаты открытых ключей хранятся в центре сертификации, на устройствах пользователей и на узлах сети распределенного реестра.4. The method according to claim 1, characterized in that the public key certificates are stored in a certification center, on users' devices and on network nodes of the distributed registry. 5. Способ по п. 1, характеризующийся тем, что сеть распределенного реестра представляет собой блокчейн-сеть.5. The method according to claim 1, characterized in that the distributed ledger network is a blockchain network. 6. Способ по п. 5, характеризующийся тем, что блокчейн-сеть содержит упорядочивающие узлы, формирующие блоки для записи в реестр. 6. The method according to claim 5, characterized in that the blockchain network contains ordering nodes that form blocks for writing to the register. 7. Способ по п. 5, характеризующийся тем, что блокчейн-сеть выполнена с помощью системы Hyperledger Fabric.7. The method according to claim 5, characterized in that the blockchain network is implemented using the Hyperledger Fabric system. 8. Система электронного голосования в распределенном реестре, содержащая:8. Electronic voting system in a distributed register, containing: центр сертификации, выполненный с возможностьюenabled certification authority формирования сертификатов открытых ключей для устройств пользователей, участвующих в сессии голосования в распределенном реестре;generating public key certificates for user devices participating in the voting session in the distributed registry; работы в режиме анонимизации для формирования анонимных сертификатов открытых ключей для устройств пользователей, подтверждающих допуск пользователей к соответствующей сессии голосования;work in anonymization mode to generate anonymous certificates of public keys for user devices, confirming the admission of users to the corresponding voting session; устройство организатора, выполненное с возможностьюorganizer device configured формирования сессии для голосования, параметры которой содержат по меньшей мере идентификатор сессии и перечень упомянутых сертификатов открытых ключей устройств пользователей;forming a voting session, the parameters of which contain at least a session identifier and a list of said certificates of public keys of user devices; передачи на узел сети распределенного реестра параметров сессии голосования;transmission of the voting session parameters to the network node of the distributed register; по меньшей мере одно устройство пользователя, участвующего в сессии голосования, выполненное с возможностьюat least one device of a user participating in a voting session, configured генерации пары закрытого и открытого ключей для связываемой кольцевой подписи;generating a pair of private and public keys for the associated ring signature; передачи на узел сети распределенного реестра открытого ключа для соответствующего идентификатора сессии голосования;transmission to the network node of the distributed register of the public key for the corresponding identifier of the voting session; формирования ответов для текущей сессии голосования;generating responses for the current voting session; получения списка всех открытых ключей участников текущей сессии голосования;receiving a list of all public keys of the participants of the current voting session; вычисления значения связываемой кольцевой подписи на основании сформированных ответов, секретного ключа участника и всех открытых ключей участников текущей сессии голосования;calculating the value of the associated ring signature based on the generated responses, the participant's secret key and all public keys of the participants in the current voting session; передачи на узел сети распределенного реестра сформированных ответов и значения связываемой кольцевой подписи;transmission to the network node of the distributed register of the generated responses and the value of the associated ring signature; по меньшей мере один узел сети распределенного реестра, выполненный с возможностьюat least one network node of the distributed ledger, configured осуществления аутентификации устройств пользователей на основе сертификатов открытых ключей и анонимных сертификатов открытых ключей;authentication of user devices based on public key certificates and anonymous public key certificates; хранения распределенного реестра;storage of a distributed register; записи в распределенный реестр параметров сессии голосования;entries in the distributed register of the parameters of the voting session; записи в распределенный реестр открытых ключей и отметок о регистрации для соответствующих сертификатов открытых ключей;entries in the distributed register of public keys and registration marks for the corresponding public key certificates; осуществления смарт-контрактом проверки допустимости участия пользователя в сессии голосования с помощью проверки наличия сертификата открытого ключа в параметрах сессии голосования для соответствующего идентификатора сессии голосования и наличия отметки о регистрации для сертификата открытого ключа;the smart contract checks the admissibility of the user's participation in the voting session by checking the presence of a public key certificate in the voting session parameters for the corresponding voting session identifier and the presence of a registration mark for the public key certificate; осуществления смарт-контрактом проверки значения связываемой кольцевой подписи с использованием сформированных ответов участника и всех открытых ключей участников текущей сессии голосования и проверки факта осуществленной ранее передачи результатов голосования данным участником с использованием текущего проверенного значения связываемой кольцевой подписи и значений подписей, записанных ранее в распределенный реестр;the smart contract verifies the value of the associated ring signature using the generated responses of the participant and all public keys of the participants in the current voting session and verifies the fact of the previously transmitted voting results by this participant using the current verified value of the associated ring signature and the signature values previously recorded in the distributed register; записи в распределенный реестр ответов соответственно значению связываемой кольцевой подписи.records in the distributed response register according to the value of the associated ring signature. 9. Система по п. 8, характеризующаяся тем, что после проверки допустимости участия пользователя в сессии голосования открытый ключ и сертификат открытого ключа устройства пользователя связываются для соответствующего идентификатора сессии голосования.9. The system according to claim 8, characterized in that after checking the admissibility of the user's participation in the voting session, the public key and the public key certificate of the user's device are associated for the corresponding voting session identifier. 10. Система по п. 8, характеризующаяся тем, что центр сертификации выполнен с возможностью формирования сертификата открытого ключа для устройства организатора.10. The system according to claim 8, characterized in that the certification center is configured to generate a public key certificate for the organizer device. 11. Система по п. 8, характеризующаяся тем, что узел распределенного реестра выполнен с возможностью осуществления аутентификации устройства организатора на основе сертификата открытого ключа.11. The system according to claim 8, characterized in that the distributed registry node is configured to authenticate the organizer device based on the public key certificate. 12. Система по п. 8, характеризующаяся тем, что сертификаты открытых ключей хранятся в центре сертификации, на устройствах пользователей и на узлах сети распределенного реестра.12. The system according to claim 8, characterized in that the public key certificates are stored in the certification center, on users' devices and on the network nodes of the distributed registry. 13. Система по п. 8, характеризующаяся тем, что сеть распределенного реестра представляет собой блокчейн-сеть.13. The system according to claim 8, characterized in that the distributed ledger network is a blockchain network. 14. Система по п. 13, характеризующаяся тем, что блокчейн-сеть содержит упорядочивающие узлы, формирующие блоки для записи в реестр. 14. The system according to claim 13, characterized in that the blockchain network contains ordering nodes that form blocks for writing to the register. 15. Система по п. 13, характеризующаяся тем, что блокчейн-сеть выполнена с помощью системы Нуperledger Fabric.15. The system according to claim 13, characterized in that the blockchain network is executed using the Nuperledger Fabric system.
RU2020119904A 2020-06-16 2020-06-16 Method and system for electronic voting in a distributed registry RU2751457C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2020119904A RU2751457C1 (en) 2020-06-16 2020-06-16 Method and system for electronic voting in a distributed registry
EA202092857A EA202092857A1 (en) 2020-06-16 2020-12-23 METHOD AND SYSTEM OF ELECTRONIC VOTING IN A DISTRIBUTED REGISTER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020119904A RU2751457C1 (en) 2020-06-16 2020-06-16 Method and system for electronic voting in a distributed registry

Publications (1)

Publication Number Publication Date
RU2751457C1 true RU2751457C1 (en) 2021-07-14

Family

ID=77019831

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020119904A RU2751457C1 (en) 2020-06-16 2020-06-16 Method and system for electronic voting in a distributed registry

Country Status (2)

Country Link
EA (1) EA202092857A1 (en)
RU (1) RU2751457C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109955A1 (en) * 2015-10-20 2017-04-20 Follow My Vote, Inc. Blockchain electronic voting system and method
US20190164153A1 (en) * 2017-11-30 2019-05-30 Shashank Agrawal Blockchain system for confidential and anonymous smart contracts
CN110572267A (en) * 2019-09-09 2019-12-13 北京工业大学 Anonymous electronic voting method based on block chain of alliances
WO2020008445A1 (en) * 2018-07-06 2020-01-09 Scytale Technologies Ltd Encrypted blockchain voting system
RU2721100C1 (en) * 2018-11-30 2020-05-15 Алибаба Груп Холдинг Лимитед Updating smart contracts based on block chains using decentralized solution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109955A1 (en) * 2015-10-20 2017-04-20 Follow My Vote, Inc. Blockchain electronic voting system and method
US20190164153A1 (en) * 2017-11-30 2019-05-30 Shashank Agrawal Blockchain system for confidential and anonymous smart contracts
WO2020008445A1 (en) * 2018-07-06 2020-01-09 Scytale Technologies Ltd Encrypted blockchain voting system
RU2721100C1 (en) * 2018-11-30 2020-05-15 Алибаба Груп Холдинг Лимитед Updating smart contracts based on block chains using decentralized solution
CN110572267A (en) * 2019-09-09 2019-12-13 北京工业大学 Anonymous electronic voting method based on block chain of alliances

Also Published As

Publication number Publication date
EA202092857A1 (en) 2021-12-31

Similar Documents

Publication Publication Date Title
US20210409221A1 (en) Portable Biometric Identity on a Distributed Data Storage Layer
US10530577B1 (en) Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management
US11757627B2 (en) Cryptoasset custodial system with proof-of-stake blockchain support
US20210336782A1 (en) Cryptoasset custodial system with different rules governing access to logically separated cryptoassets and proof-of-stake blockchain support
KR102215245B1 (en) Blockchain data protection using quasi-homogeneous encryption
US11146394B2 (en) Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management
US10872336B2 (en) System and method for independent user effort-based validation
AU2017100968A4 (en) System for issuance, verification and use of digital identities on a public or private ledger.
CN104104672B (en) The method that dynamic authorization code is established in identity-based certification
JP2018537022A (en) System and method for managing digital identities
EP3726412A1 (en) Selectively verifying personal data
US20080046982A1 (en) Methods and systems for remote password reset using an authentication credential managed by a third party
EP3997606B1 (en) Cryptoasset custodial system with custom logic
BR112018007449B1 (en) COMPUTING DEVICE, COMPUTER IMPLEMENTED METHOD AND COMPUTER READABLE MEMORY DEVICE
Bergquist Blockchain technology and smart contracts: privacy-preserving tools
CN113966597B (en) Resolving a dispersion identifier using multiple resolvers
CA3049685A1 (en) Managing distributed content using layered permissions
EP3883204B1 (en) System and method for secure generation, exchange and management of a user identity data using a blockchain
KR20210032880A (en) Method of Decision Making Through Deliberation and Vote
Prakasha et al. Automated user authentication in wireless public key infrastructure for mobile devices using Aadhar card
RU2751457C1 (en) Method and system for electronic voting in a distributed registry
US20210258141A1 (en) Method for recognizing expression of opinion capable of ensuring anonymity and preventing sybil attacks, method for registering that stores user?s identification information, and method for authenticating the user
LU101756B1 (en) Verifiable credential with dynamic claim
EA041495B1 (en) METHOD AND SYSTEM OF ELECTRONIC VOTING IN A DISTRIBUTED REGISTER
Al-Zoubi et al. Preserving transparency and integrity of elections utilising blockchain technology