JP2005311623A - System and method for electronic voting - Google Patents

System and method for electronic voting Download PDF

Info

Publication number
JP2005311623A
JP2005311623A JP2004124690A JP2004124690A JP2005311623A JP 2005311623 A JP2005311623 A JP 2005311623A JP 2004124690 A JP2004124690 A JP 2004124690A JP 2004124690 A JP2004124690 A JP 2004124690A JP 2005311623 A JP2005311623 A JP 2005311623A
Authority
JP
Japan
Prior art keywords
data
terminal
interpolation coefficient
unit
signature
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2004124690A
Other languages
Japanese (ja)
Inventor
Mikio Morioka
幹夫 森岡
Hiroyuki Suzuki
浩之 鈴木
Yutaka Tomioka
豊 富岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004124690A priority Critical patent/JP2005311623A/en
Publication of JP2005311623A publication Critical patent/JP2005311623A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Time Recorders, Dirve Recorders, Access Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To execute signature preparation by exchanging data for voting so that information regarding the pros and cons cannot be known among all the members participating the voting. <P>SOLUTION: Both pro-terminals and con-terminals prepare divided signature data of pros or cons without declaring pros or cons when voting, and further, prepare signature data in the distributed signature. Then, the signature data by secret distribution can be realized. The information regarding the pros and cons cannot be read out from the transmitting/receiving data. Therefore, it is impossible to discriminate which terminal is for and which terminal is against. The distributed signature with anonymity can be realized. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、ネットワーク上での投票システムに関し、特にn人中k人以上の(k<n)の賛成がある場合には可決となる信任投票を分散署名を利用して実現する電子投票システム及び電子投票方法に関するものである。   The present invention relates to a voting system on a network, and more particularly, an electronic voting system that realizes a vote of confidence using a distributed signature when there are k or more of n people (k <n). It relates to the electronic voting method.

近年はネットワークを利用した電子投票や電子商取引などのサービスが一般的に行われるようになってきた。その際にネットワークの高度利用を可能にする技術として、公開鍵暗号技術やデジタル署名技術が注目されている。このようなデジタル署名についての従来技術に関しては例えば非特許文献1に記載されたものがある。
"Standard Specifications For Public Key Cryptography (Draft Version 4)" IEEE P1363 Standard, IEEE, June 16, 1998
In recent years, services such as electronic voting and electronic commerce using a network have been generally performed. At that time, public key encryption technology and digital signature technology are attracting attention as technologies that enable advanced use of the network. For example, Non-Patent Document 1 discloses a related art regarding such a digital signature.
"Standard Specifications For Public Key Cryptography (Draft Version 4)" IEEE P1363 Standard, IEEE, June 16, 1998

上記の非特許文献1に記載のデジタル署名技術では、署名対象となる平文Mに、自身が秘密裏に保持する秘密鍵と自身が生成した乱数などの数値情報を作用させることで、平文M に対するデジタル署名S を生成するようにしている。そして、デジタル署名S に、メッセージM と前記秘密鍵とペアをなす公開鍵を作用させることで、デジタル署名S の検証が行うことを可能にしている。   In the digital signature technique described in Non-Patent Document 1 described above, the plaintext M to be signed is applied to the plaintext M by applying a secret key held secretly to itself and numerical information such as a random number generated by itself. A digital signature S is generated. The digital signature S 1 can be verified by applying a public key that makes a pair with the message M and the secret key to the digital signature S 1.

具体的には、参加者A は公開鍵p _a と秘密鍵s _a を保持している。秘密鍵s _a と公開鍵p _a は以下の性質をもつ。任意の素数p,q を生成し、その積n=pqを公開鍵とする。次に、ed=1mod\phi(n)を満たすe,d を計算しe を公開鍵、d を秘密鍵とする。つまり、p _a は(e,n) であり、s _a はd である。   Specifically, the participant A holds the public key p_a and the secret key s_a. The secret key s_a and the public key p_a have the following properties. Arbitrary prime numbers p and q are generated, and the product n = pq is used as a public key. Next, e and d satisfying ed = 1mod \ phi (n) are calculated, and e is a public key and d is a secret key. That is, p_a is (e, n) and s_a is d.

いま、参加者A が平文M に秘密鍵s _a を用いて署名を付加する場合について説明する。参加者A は平文M に対してM ^s _a mod(n)を計算しこれを署名文S とする。参加者A は署名文S と平文M を参加者B に送付する。参加者B は事前に受け取っている参加者A の公開鍵p _a を用いてS ^p _a mod(n)を計算し、S ^p _a=M mod(n)であるかを検証する。等式が成立する場合には署名文S が参加者A の秘密鍵で署名されたものであることが分かる。等式が成立しない場合には署名文S は参加者A の秘密鍵で署名されたものではないということが分かる。   Now, a case where the participant A adds a signature to the plaintext M using the secret key s_a will be described. Participant A calculates M ^ s_a mod (n) for plaintext M and sets it as signature sentence S. Participant A sends signature S and plaintext M to Participant B. Participant B calculates S ^ p_a mod (n) using public key p_a of participant A received in advance, and verifies whether S ^ p_a = M mod (n). If the equation holds, it can be seen that the signature S is signed with Participant A's private key. If the equation does not hold, it can be seen that the signature sentence S is not signed with Participant A's private key.

このため、正当な権限を所有しない第三者に秘密鍵が知られると、デジタル署名が不正に行われる可能性がある。ノートパソコンやPDA などの持ち運びが可能なコンピュータの普及に伴い、今後コンピュータの盗難や紛失が増加することが予想される。それに伴って、正当な権限を所有しない第三者にコンピュータを不正に利用され、デジタル署名が不正に行われる可能性も増加することが予想される。そこで、このような問題を解決する技術として、任意のn 人にそのうちのk 人が所有する数値情報を用いて秘密鍵を生成することが可能な数値情報(秘密鍵シェア)を予め与えておくことで、秘密鍵を分散管理する技術が提案されている。そして、分散管理技術を用いてデジタル署名を行う技術として、分散署名と呼ばれる技術が提案されている。分散署名に関する文献としては例えば非特許文献2に記載されたものがある。
Pierre-Alain Fouque and Jacques Stern, "Fully Distributed Threshold {RSA } under Standard Assumptions", Lecture Notes in Computer Science, vol.248, pp310--, 2001
For this reason, if a secret key is known to a third party who does not have a legitimate authority, the digital signature may be illegally performed. With the spread of portable computers such as notebook computers and PDAs, theft and loss of computers are expected to increase in the future. Along with this, it is expected that the possibility of unauthorized use of a computer by a third party who does not have a legitimate authority and digital signatures will be increased. Therefore, as a technique for solving such problems, numerical information (secret key sharing) that can generate a secret key using numerical information owned by k persons in advance is given to any n persons in advance. Thus, a technique for distributing and managing secret keys has been proposed. A technique called a distributed signature has been proposed as a technique for performing a digital signature using a distributed management technique. Documents related to distributed signatures include those described in Non-Patent Document 2, for example.
Pierre-Alain Fouque and Jacques Stern, "Fully Distributed Threshold {RSA} under Standard Assumptions", Lecture Notes in Computer Science, vol.248, pp310--, 2001

上記の非特許文献2に記載の分散署名技術では、n 人のユーザにグループの秘密鍵s を分割した秘密鍵シェアs _1 〜s _n をそれぞれ配布し、n 人のユーザのうち、k 人が自分の持つ秘密鍵シェアを用いて署名を行う。なお、署名の際にグループの秘密鍵s 自体は計算されないため、グループの秘密鍵s が漏洩する心配はない。   In the distributed signature technique described in Non-Patent Document 2, the secret key shares s_1 to s_n obtained by dividing the group secret key s are distributed to n users, and k users out of n users are distributed. Sign using your private key share. Note that since the group private key s itself is not calculated at the time of signing, there is no risk of the group private key s leaking.

ここで、分散署名技術を電子投票システムに応用する場合について説明する。投票対象の平文M に対してk 人以上が賛成し署名S を作成することを可決とみなし、逆にk-1 人以下しか賛成しなかった場合には署名S を作成することができないため否決されたものとみなすことで、投票システムを構築することが可能となる。   Here, a case where the distributed signature technique is applied to an electronic voting system will be described. It is considered acceptable to create a signature S with at least k people in favor of the plaintext M to be voted. Conversely, if only k-1 people or less are in favor, the signature S cannot be created. It is possible to construct a voting system by regarding it as being made.

以下、分散署名技術を用いて投票システムを実現する従来技術について説明する。まず、ネットワーク構成について説明する。図16はこの種の技術を説明するための端末とコンバイナとの接続構成を示すネットワーク構成図である。このネットワーク構成では、図16に示すように5台の投票用の端末(投票端末、以下、単に「端末」という)端末P _1 、P _2 、P _3 、P _4 、P _5 と1台のコンバイナ6とが同一の安全な通信路によって接続されている。端末P _1 〜P _5 はそれぞれユーザU1,U2,U3,U4,U5によって所有されているもので、ユーザU1〜U5は同一のサークルに所属している。ここで、端末P _1 について(U1)の表示は端末P _1 がユーザU1によって所有されていることを示す。他の端末P _2 、P _3 、P _4 、P _5 においても同様である。   Hereinafter, a conventional technique for realizing a voting system using a distributed signature technique will be described. First, the network configuration will be described. FIG. 16 is a network configuration diagram showing a connection configuration between a terminal and a combiner for explaining this type of technology. In this network configuration, as shown in FIG. 16, five voting terminals (voting terminals, hereinafter simply referred to as “terminals”) terminals P_1, P_2, P_3, P_4, P_5 and one combiner 6 are connected by the same secure communication path. Terminals P_1 to P_5 are owned by users U1, U2, U3, U4 and U5, respectively, and users U1 to U5 belong to the same circle. Here, the display of (U1) for the terminal P_1 indicates that the terminal P_1 is owned by the user U1. The same applies to the other terminals P_2, P_3, P_4, and P_5.

図17は上記従来技術に係る投票システムに用いられる端末の一例を示すブロック図である。この端末は、外部からの入力を受け付ける入力受付部11と、ユーザからのコマンド入力を受け付けるユーザ入力受付部12と、外部にデータを送信する送信部14と、投票に際しての賛否を表明するための賛否表明部8と、署名用データを作成する公開データ計算部9と、端末のデータを格納している端末データ蓄積部10とから構成される。そして、投票システムは、これらの端末が複数台ネットワークを経由して接続されることにより構成される。各端末には端末によって異なる端末IDが割り当てられている。端末は他の端末と通信を行う際には通信先の端末IDを元に通信先の端末のネットワーク上のアドレスを知ることができ、そのアドレスをもとに通信を行うことができる。また、ネットワーク上にはコンバイナ6が存在する。   FIG. 17 is a block diagram showing an example of a terminal used in the voting system according to the conventional technique. The terminal includes an input receiving unit 11 that receives an input from the outside, a user input receiving unit 12 that receives a command input from a user, a transmission unit 14 that transmits data to the outside, and a statement of approval or disapproval for voting. The approval / disapproval section 8, a public data calculation section 9 that creates signature data, and a terminal data storage section 10 that stores terminal data. The voting system is configured by connecting these terminals via a plurality of networks. Each terminal is assigned a different terminal ID depending on the terminal. When a terminal communicates with another terminal, the terminal can know the address of the communication destination terminal on the network based on the communication destination terminal ID, and can perform communication based on the address. A combiner 6 exists on the network.

図18は従来のコンバイナ6の構成を示すブロック図である。コンバイナ6は、図18に示すように、外部からの入力を受け付ける入力受付部31と、外部にデータを送信する送信部32と、投票動作の開始処理を行なう投票開始部33と、署名データを集計する署名データ集計部34と、賛否データを集計する賛否データ集計部35とから構成される。コンバイナ6は各端末から受け取った値に基づいた計算を行い、その計算結果を公開する。   FIG. 18 is a block diagram showing a configuration of a conventional combiner 6. As shown in FIG. 18, the combiner 6 includes an input receiving unit 31 that receives an input from the outside, a transmission unit 32 that transmits data to the outside, a voting start unit 33 that performs a voting operation start process, and signature data. It comprises a signature data totaling unit 34 for totaling and a pros and cons data totaling unit 35 for totaling pros and cons data. The combiner 6 performs a calculation based on the value received from each terminal and discloses the calculation result.

かかる端末において、以下の状態を初期状態とする。すなわち、同一のグループに属する端末IDが1 〜n のn 台の端末がネットワーク上に存在する。各端末i は秘密鍵のシェアs _i を保持している。秘密鍵に対応する公開鍵PKと、署名対象の平文M と、端末の数n と、しきい値k とについては公開された情報であり、全端末のデータ格納部に保持されている。なお、ここでいう秘密鍵と公開鍵は非対称暗号系のものとする。   In such a terminal, the following state is an initial state. That is, n terminals having terminal IDs 1 to n belonging to the same group exist on the network. Each terminal i holds a secret key share s_i. The public key PK corresponding to the secret key, the plaintext M to be signed, the number n of terminals, and the threshold value k are public information and are held in the data storage units of all terminals. Here, the secret key and the public key are assumed to be of an asymmetric cryptosystem.

次に、グループが平文M に対して署名を行う場合についての動作例を示す。以下の動作例の説明においては「参加者」は「端末」と同義である。   Next, an operation example when the group signs the plaintext M is shown. In the following description of the operation example, “participant” is synonymous with “terminal”.

(Phase1:投票開始)
任意の参加者もしくはコンバイナもしくは外部の第三者により、各参加者に投票の開始を表す投票開始データが送付される。投票開始データには、署名対象の平文M と署名を要求している理由や要求者などの付加情報が含まれる。
(Phase1: Start of voting)
Voting start data indicating the start of voting is sent to each participant by any participant, combiner, or external third party. The voting start data includes the plaintext M to be signed and additional information such as the reason for requesting the signature and the requester.

(Phase2: 賛否データ共有)
入力として投票開始データを受け取った参加者i は、付加情報から署名の可否を判断する。各参加者とコンバイナに自分のID=iと賛否フラグ(署名を行うことに賛成の場合は1 、反対の場合は0 )をペアにした賛否データを送付する。全参加者による賛否データの送受信が終了すると、参加者は署名に賛成している参加者(賛否フラグ=1の参加者)のリストを作成することができる。
(Phase 2: Pros and cons data sharing)
Participant i who has received the voting start data as an input determines whether or not the signature is possible from the additional information. Pros and cons data is sent to each participant and combiner as a pair with their own ID = i and a pros and cons flag (1 for agreeing to sign, 0 for disagreement). When sending / receiving of approval / disapproval data by all participants is completed, the participants can create a list of participants who agree with the signature (participants with approval / disapproval flag = 1).

(Phase3: 公開データ計算)
賛成者i は、賛成者のリストを元にして、S _i=M ^(s_i Πj/(j-i))を求め、その値をコンバイナに送付する。
(Phase3: Public data calculation)
The supporter i obtains S_i = M ^ (s_i Πj / (ji)) based on the list of supporters and sends the value to the combiner.

(Phase4: 署名データ計算)
コンバイナは全賛成者からのS _i を受け取ったら、S=ΠS _i を計算しそれを公開する。結果として得られた署名文S を公開鍵PKで検証し、検証が成功したならばしきい値k を超える人数が賛成したということが分かる。他方、検証が失敗したらk-1 人以下の人しか賛成していなかったということが分かる。ただし、この方法では各参加者が賛成か反対を表す賛否フラグを他の参加者に伝える必要があるため、賛否に関しての匿名性が確保されていないという課題がある。
(Phase4: Signature data calculation)
When the combiner receives S_i from all the supporters, it calculates S = ΠS_i and publishes it. The signature text S obtained as a result is verified with the public key PK. If the verification is successful, it can be seen that the number of persons exceeding the threshold value k agrees. On the other hand, if the verification fails, it can be seen that only k-1 people or less were in favor. However, this method has a problem that anonymity regarding approval or disapproval is not ensured because each participant needs to convey the approval or disapproval flag indicating approval or disapproval to other participants.

従来の署名方法では、署名時にk 人の賛成メンバーによる相互の通信が行われる。その際には、k 人の賛成メンバーが誰であるかということが特定される必要がある。賛成メンバーが誰であるかが特定されることが好まれないシチュエーションにおいては、このような署名方法は好ましくない。そのために、メンバー全員の間で賛成反対に関する情報が分からないようにデータをやり取りし署名作成を行うことができる匿名性が確保された署名方法が必要となる。   In the conventional signing method, k members in favor of each other communicate with each other at the time of signing. In doing so, it is necessary to identify who the k members are in favor of. In situations where it is not preferred to identify who the members are in favor, such a signature method is not preferred. Therefore, there is a need for a signature method with anonymity that can exchange data and create a signature so that all the members do not know the information about approval and disapproval.

しかしながら、従来の(k,n) 分散署名方法では、署名時に賛成メンバーが誰であるかが特定されるため匿名性が確保されない。   However, in the conventional (k, n) distributed signature method, anonymity is not ensured because who is the member in favor is specified at the time of signing.

本発明は上述のような従来技術の不具合に鑑みてなされたもので、その目的は、投票に参加するメンバー全員の間で賛成反対に関する情報が分からないように投票のためのデータをやり取りし署名作成を行うことができる電子投票システム及び電子投票方法を提供することである。   The present invention has been made in view of the above-mentioned problems of the prior art, and its purpose is to exchange data for voting and sign so that all members participating in the voting do not know the information about the pros and cons. To provide an electronic voting system and an electronic voting method that can be created.

本発明の電子投票システムは、上記目的を達成するために、電子投票の開始を表す投票開始データを生成する投票開始部と、各端末から受け取った賛成又は反対の分割署名データから、署名データを生成する署名データ集計部とを有するコンバイナ、および、電子投票の開始を表す投票開始データを生成する投票開始部と、端末から受け取った賛成又は反対の分割署名データから、署名データを生成する署名データ集計部と、投票開始のための処理を行う投票開始処理手段と、賛成の分割署名データを作成するための手段と、反対の分割署名データを作成するための手段と、各分割署名データの一部を構成するダミーデータを作成する手段と、前記コンバイナまたは他の端末からのデータを受け取る入力受付部と、前記コンバイナまたは他の端末へデータを送付する送信部とを有する複数の端末から構成したものであり、コンバイナから投票開始データを受け取ると、賛成の端末も反対の端末も、賛成又は反対の分割署名データを作成し、さらにコンバイナで署名データを作成して秘密分散による署名データを実現するものである。   In order to achieve the above object, an electronic voting system of the present invention generates signature data from a voting start unit that generates voting start data indicating the start of electronic voting, and split signature data in favor or opposite received from each terminal. A combiner having a signature data totaling unit to be generated, a voting start unit that generates voting start data representing the start of electronic voting, and signature data that generates signature data from the approval or opposite split signature data received from the terminal A counting unit, voting start processing means for performing processing for voting start, means for creating split signature data for approval, means for creating opposite split signature data, and one of each split signature data Means for creating dummy data constituting a unit, an input receiving unit for receiving data from the combiner or other terminal, the combiner or other It is composed of a plurality of terminals having a transmission unit that sends data to the end, and upon receiving voting start data from the combiner, both the terminal in favor and the terminal in opposite form the divided signature data in favor or opposite, Furthermore, signature data is created by a combiner to realize signature data by secret sharing.

また、本発明の電子投票システムは、投票開始のための処理を行う投票開始処理手段と、賛成の分割署名データを作成するための手段と、反対の分割署名データを作成するための手段と、各分割署名データの一部を構成するダミーデータを作成する手段と、他の端末からのデータを受け取る入力受付部と、他の端末へデータを送付する送信部とをする複数の端末から構成され、前記複数の端末のうち、少なくとも1つは、電子投票の開始を表す投票開始データを生成する投票開始部と、各端末から受け取った賛成又は反対の分割署名データから、署名データを生成する署名データ集計部とを有することにより主端末としての機能を有しており、前記主端末は、各端末から賛成又は反対の分割署名データを受け取って署名データを作成するものであり、主端末から投票開始データを受け取ると、賛成の端末も反対の端末も、賛成又は反対の分割署名データを作成し、さらに主端末で署名データを作成して秘密分散による署名データを実現するものである。   Further, the electronic voting system of the present invention includes a voting start processing means for performing a process for voting start, a means for creating split signature data for approval, a means for creating opposite split signature data, Consists of a plurality of terminals having means for creating dummy data constituting a part of each divided signature data, an input receiving unit for receiving data from other terminals, and a transmitting unit for sending data to other terminals At least one of the plurality of terminals includes a voting start unit that generates voting start data indicating the start of electronic voting, and a signature that generates signature data from the approval or opposite split signature data received from each terminal. It has a function as a main terminal by having a data totaling unit, and the main terminal receives signature data in favor or opposite from each terminal and creates signature data Yes, when voting start data is received from the main terminal, both the terminal in favor and the terminal in the opposite direction create divided signature data in favor or opposite, and further create signature data in the main terminal to realize signature data by secret sharing Is.

本発明はまた、前記賛成の分割署名データを作成する手段および反対の分割署名データを作成する手段がそれぞれ、自端末IDと他端末IDとを基に分割補間係数データを作成する賛成者または反対者補間係数作成部と、この補間係数作成部において作成された分割補間係数データおよび他端末からの分割補間係数データを基に中間補間係数データを作成する補間係数データ転送部と、補間係数データ転送部において作成された中間補間係数データおよび他端末からの中間補間係数データを基に分割署名データを作成する賛成者または反対者公開データ計算部とを有しており、賛成の端末或いは反対の端末において、同様の処理動作により互いに異なった分割署名データを作成するものである。   According to the present invention, the means for creating the divided signature data for approval and the means for creating the opposite divided signature data respectively create the divided interpolation coefficient data based on the own terminal ID and the other terminal ID. An interpolation coefficient data generation unit, an interpolation coefficient data transfer unit that generates intermediate interpolation coefficient data based on the divided interpolation coefficient data generated by the interpolation coefficient generation unit and the divided interpolation coefficient data from another terminal, and interpolation coefficient data transfer And an approver or opponent public data calculation unit that creates split signature data based on the intermediate interpolation coefficient data created in the part and the intermediate interpolation coefficient data from another terminal, and the terminal in favor or the opposite terminal In the above, different divided signature data are created by the same processing operation.

また、本発明にあっては、ダミーデータを作成する前段階で中間ダミーデータを作成して他端末へ送付し、各端末からの中間ダミーデータを基にダミーデータを作成するようにしている。これにより、どの端末が賛成し、どの端末が反対しているかの判別をできなくすることができる。   In the present invention, intermediate dummy data is created and sent to another terminal before the dummy data is created, and dummy data is created based on the intermediate dummy data from each terminal. This makes it impossible to determine which terminal is in favor and which terminal is against.

また、本発明の電子投票方法は、電子投票の開始指令を受けて自端末のIDと、自端末のユーザが賛成か反対かを示す賛否フラグを取得するステップと、自端末のIDを他端末へ送付する一方で、他端末からのIDを受け取るステップと、中間ダミーデータを作成して他端末へ送付する一方で、他端末からの中間ダミーデータを受け取るステップと、各端末からの中間ダミーデータを演算処理してダミーデータを作成するステップと、前記ダミーデータを作成する処理と並行して、自端末のユーザが賛成の場合に賛成であることが反映された分割署名データを作成するための中間補間係数データを作成し、また、自端末のユーザが反対の場合に反対であることが反映された分割署名データを作成するための中間補間係数データを作成するステップと、前記ダミーデータと前記中間補間係数データとを用いて分割署名データを作成するステップと、各端末で作成された分割署名データから署名データを作成するステップとを有するものである。これにより、賛成の端末も反対の端末も、賛成又は反対の分割署名データを作成し、その後分割署名データを集めて署名データを作成し、秘密分散による署名データを実現するから、どの端末が賛成し、どの端末が反対しているかの判別をできなくすることができる。   In addition, the electronic voting method of the present invention receives an electronic voting start command, obtains an ID of the own terminal, an approval / disapproval flag indicating whether the user of the own terminal agrees or disagrees, While receiving the ID from the other terminal, creating intermediate dummy data and sending it to the other terminal, receiving the intermediate dummy data from the other terminal, and the intermediate dummy data from each terminal In parallel with the step of creating dummy data by performing an arithmetic processing, and the process of creating the dummy data, for creating divided signature data reflecting that the user of the terminal is in favor The intermediate interpolation coefficient data is created, and when the user of the terminal is opposite, the intermediate interpolation coefficient data for creating the divided signature data reflecting the opposite is created. And up, and has a step of creating a split signature data using said dummy data and said intermediate interpolated coefficient data, and creating the signature data from the divided signature data created in each terminal. As a result, both the terminal in favor and the terminal in the opposite direction create divided signature data for or against, and then collect the divided signature data to create signature data to realize signature data by secret sharing. However, it is possible to make it impossible to determine which terminal is opposite.

従来の分散署名では、事前に賛成者が名乗る必要があったため匿名性を確保することができなかったが、本方式では、賛成か反対かを名乗る必要は無く、また送受信するデータからは賛否に関する情報を読み取ることができないため匿名性のある分散署名を行うことが可能となる。   In the conventional distributed signature, it was not possible to secure anonymity because it was necessary to give the name of the proponent in advance, but in this method, it is not necessary to give the name of approval or disagreement, and the data to be sent or received Since the information cannot be read, an anonymous distributed signature can be performed.

以下本発明の一実施の形態について、図面を参照しながら説明する。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

以下に本発明の一実施の形態として、サークルやコミュニティのユーザがメッセージに対して署名を行う電子投票システムについて説明する。本発明においても、先に図16を参照して説明した端末とコンバイナとの接続構成を示すネットワーク構成が用いられる。このネットワーク構成では、5台の投票用の端末(投票端末、以下、単に「端末」という)端末P _1 、P _2 、P _3 、P _4 、P _5 と1台のコンバイナ6とが同一の安全な通信路によって接続されている。端末P _1 〜P _5 はそれぞれユーザU1,U2,U3,U4,U5によって所有されているもので、ユーザU1〜U5は同一のサークルに所属している。ここで、端末P _1 について(U1)の表示は端末P _1 がユーザU1によって所有されていることを示す。他の端末P _2 、P _3 、P _4 、P _5 においても同様である。いま、サークルに対してサークルの秘密鍵s を用いて平文M に対して署名をして欲しいという要求がきたものとする。   As an embodiment of the present invention, an electronic voting system in which a user of a circle or community signs a message will be described below. Also in the present invention, the network configuration showing the connection configuration between the terminal and the combiner described above with reference to FIG. 16 is used. In this network configuration, five voting terminals (voting terminals, hereinafter simply referred to as “terminals”) terminals P_1, P_2, P_3, P_4, P_5 and one combiner 6 are the same safety. Connected by various communication paths. Terminals P_1 to P_5 are owned by users U1, U2, U3, U4 and U5, respectively, and users U1 to U5 belong to the same circle. Here, the display of (U1) for the terminal P_1 indicates that the terminal P_1 is owned by the user U1. The same applies to the other terminals P_2, P_3, P_4, and P_5. Assume that a request is received from the circle to sign the plaintext M using the circle secret key s.

図1は、この電子投票システムにおいて用いられる端末の構成を示すブロック図である。端末(P _1 で代表させる。他の端末P _2 〜P _5 も同じである。)は、図1に示すように、外部からの入力を受け付ける入力受付部11と、ユーザからのコマンド入力を受け付けるユーザ入力受付部12と、端末のデータを格納する端末データ蓄積部13と、外部にデータを送信する送信部14と、ダミーデータを作成するための乱数を作成するダミーシード作成部15と、匿名性を確保するためのダミーデータを作成するダミーデータ作成部16と、投票動作の開始処理を行なう投票開始処理部17と、補間係数データを転送する補間係数データ転送部18と、反対者の補間係数を作成する反対者補間係数作成部19と、反対者の公開データを計算する反対者公開データ計算部20と、賛成者の補間係数を作成する賛成者補間係数作成部21と、賛成者の公開データを計算する賛成者公開データ計算部22とから構成される。   FIG. 1 is a block diagram showing a configuration of a terminal used in this electronic voting system. The terminal (represented by P_1. The other terminals P_2 to P_5 are also the same), as shown in FIG. 1, accepts an input from the outside, and accepts a command input from the user. User input reception unit 12, terminal data storage unit 13 for storing terminal data, transmission unit 14 for transmitting data to the outside, dummy seed generation unit 15 for generating random numbers for generating dummy data, and anonymous Dummy data creation unit 16 for creating dummy data for ensuring the performance, voting start processing unit 17 for starting the voting operation, interpolation coefficient data transfer unit 18 for transferring the interpolation coefficient data, and interpolation by the opponent An opponent interpolation coefficient creating unit 19 for creating a coefficient, an opponent public data calculating unit 20 for calculating the public data of the opponent, and an supporter interpolation coefficient creating unit 2 for creating an interpolation coefficient of the supporter When composed of favor's public data calculating unit 22 for calculating the public data favor's.

上記端末の構成内容をより詳しく説明すると、入力受付部11は単に入力を受け付けるのみでなく、受け付けた入力の内容に応じてその入力を各ブロックに振り分ける。ユーザ入力受付部12は、署名を行うことに賛成、または反対のユーザによる意思表明を受け付け、そのデータを端末データ蓄積部13に送付する。端末データ蓄積部13は、端末に関するデータ(賛否、ID、アドレス、シェア、等)を格納保持する。ダミーシード作成部15は、ダミーデータを作成するために、掛け合わせると1になる任意の値(乱数;ダミーシード)を生成し、他の端末に配付すべく送信部14に送付する。ダミーデータ作成部16は、他の端末(或いはユーザ)から受け取ったダミーシードを集めてダミーデータとする。投票開始処理部17は、補間係数を求めるための最初の手順として、自己の端末に関するIDを他の端末に伝える。反対者補間係数作成部19或いは賛成者補間係数作成部21は、それぞれ、他の端末の反対者補間係数或いは賛成者補間係数の一部を計算する。補間係数データ転送部18は、反対者補間係数作成部19或いは賛成者補間係数作成部21によって分散作成されたデータを中継する動作を行なう。反対者公開データ計算部20或いは賛成者公開データ計算部22は、それぞれ、他端末により計算された(或いは計算してもらった)反対者補間係数或いは賛成者補間係数を補間係数データ転送部18を経由して収集し、最終的な反対者補間係数或いは賛成者補間係数を得る。   The configuration content of the terminal will be described in more detail. The input receiving unit 11 not only receives an input, but also distributes the input to each block according to the content of the received input. The user input accepting unit 12 accepts an intention expression in favor of or against the signing of the signature, and sends the data to the terminal data storage unit 13. The terminal data storage unit 13 stores and holds data related to terminals (pros and cons, ID, address, share, etc.). In order to create dummy data, the dummy seed creation unit 15 generates an arbitrary value (random number; dummy seed) that becomes 1 when multiplied and sends it to the transmission unit 14 for distribution to other terminals. The dummy data creation unit 16 collects dummy seeds received from other terminals (or users) and sets them as dummy data. The voting start processing unit 17 transmits an ID related to its own terminal to other terminals as an initial procedure for obtaining the interpolation coefficient. The opponent interpolation coefficient creating unit 19 or the supporter interpolation coefficient creating unit 21 calculates a part of the opponent interpolation coefficient or the supporter interpolation coefficient of another terminal, respectively. The interpolation coefficient data transfer unit 18 performs an operation to relay the data created by the opponent interpolation coefficient creation unit 19 or the supporter interpolation coefficient creation unit 21. The opponent public data calculation unit 20 or the approver public data calculation unit 22 uses the interpolation coefficient data transfer unit 18 to convert the opponent interpolation coefficient or the supporter interpolation coefficient calculated (or calculated) by another terminal, respectively. To obtain the final opponent interpolation coefficient or the supporter interpolation coefficient.

図2は、本発明で用いられるコンバイナの構成を示すブロック図である。コンバイナ6は、図2に示すように、外部からの入力を受け付ける入力受付部31と、外部にデータを送信する送信部32と、投票動作の開始処理を行なう投票開始部33と、署名データを集計する署名データ集計部34と、本実施の形態におけるネットワークに含まれる全端末のアドレスおよびIDのリストを格納するグループデータ蓄積部36とから構成される。上記コンバイナ6の構成内容をより詳しく説明すると、送信部32は、端末P _1 〜P _5 からデータおよび宛て先を受け取り、データを宛て先に送付する。投票開始部33は、各端末P _1 〜P _5 に投票開始を表す投票開始データを送付する。署名データ集計部34は、各端末P _1 〜P _5 から送付される公開データを収集して署名を作成する。   FIG. 2 is a block diagram showing the configuration of the combiner used in the present invention. As shown in FIG. 2, the combiner 6 includes an input receiving unit 31 that receives input from the outside, a transmission unit 32 that transmits data to the outside, a voting start unit 33 that performs a voting operation start process, and signature data. It comprises a signature data totaling unit 34 for totaling and a group data storage unit 36 for storing a list of addresses and IDs of all terminals included in the network in the present embodiment. The configuration content of the combiner 6 will be described in more detail. The transmission unit 32 receives data and a destination from the terminals P_1 to P_5, and sends the data to the destination. The voting start unit 33 sends voting start data representing the start of voting to each of the terminals P_1 to P_5. The signature data totaling unit 34 collects public data sent from the terminals P_1 to P_5 and creates a signature.

なお、電子投票システムの運用にあたっては、端末P _1 〜P _5 とコンバイナ6とが必ずしも独立している必要はなく、端末P _1 〜P _5 とコンバイナ6の両方の機能を兼ね備える端末装置があってもよい。   In the operation of the electronic voting system, the terminals P_1 to P_5 and the combiner 6 do not necessarily have to be independent, and there are terminal devices that have both functions of the terminals P_1 to P_5 and the combiner 6. Also good.

以下、端末P _1 〜P _5とコンバイナ6により構成された電子投票システムの動作を説明する。説明のために動作を5つのフェーズに分けて説明を行う。また、各フェーズにおいて端末のユーザが賛成の意思をしている場合と反対の意思を表明している場合でも動作が異なる場合があるので、その場合については両者の動作について分けて説明を行う。以下の説明においては、端末P _1 、端末P _2 、端末P _3 のユーザは署名に対して賛成の立場を取り、端末P _4 、端末P _5 のユーザは署名に対して反対の立場を取るものとする。なお今後各Phase の説明の中で、特に断りがない限りは、端末P _1 は全ての端末を指し、端末P _2 は賛成している端末の代表を表し、端末P _4 は反対している端末の代表を表すものとする。つまり、動作説明において、「端末P _1 が〜」という記述がある場合は、その動作は全ての端末が同様に行うものであり、「端末P _2 が〜」という記述がある場合は、その動作は賛成している端末が同様に行うものであり、「端末P _4 が〜」という記述がある場合は、その動作は反対している端末が同様に行うものである。   Hereinafter, the operation of the electronic voting system constituted by the terminals P_1 to P_5 and the combiner 6 will be described. For the sake of explanation, the operation is divided into five phases. In addition, even when the terminal user expresses an intention of approval in the respective phases, the operation may be different, and in this case, both operations will be described separately. In the following description, the users of the terminal P_1, the terminal P_2, and the terminal P_3 are in favor of the signature, and the users of the terminal P_4 and the terminal P_5 are in the opposite position of the signature. And In the description of each phase in the future, unless otherwise specified, the terminal P_1 indicates all terminals, the terminal P_2 represents a representative of the terminals in favor, and the terminal P_4 is the opposite terminal It represents the representative of That is, in the operation description, when there is a description “terminal P_1 is ~”, the operation is performed by all terminals in the same manner, and when there is a description “terminal P_2 is ~”, the operation Is performed in the same manner by a terminal that agrees, and when there is a description of “terminal P_4 is ~”, the operation is performed in the same way by the opposite terminal.

記述方法として、端末P _n は任意の(ユーザが賛成、反対のどちらも)の端末を表し、端末P _S はユーザが賛成を表明している端末を表し、端末P _O はユーザが反対を表明している端末を代表して表すものとする。また、説明のために、端末IDの情報を含めて、端末ID=iの端末を端末P _i 、端末ID=jの端末をP _j 、端末ID=mの端末をP _m と表す。   As a description method, the terminal P_n represents an arbitrary terminal (both the user agrees and disagrees), the terminal P_S represents the terminal that the user has approved, and the terminal P_O has expressed the objection to the user A representative terminal is represented. For the sake of explanation, a terminal with terminal ID = i is represented as terminal P_i, a terminal with terminal ID = j is represented as P_j, and a terminal with terminal ID = m is represented as P_m, including terminal ID information.

また、初期状態として、端末P _1 は端末データ蓄積部に以下の情報を保持している。
・端末P _1 の秘密情報の値s1、および端末ID
・端末P _2 〜端末P _5 のアドレス、および端末ID
・コンバイナのアドレス
である。端末P _2 〜端末P _5 に関しても同様である。
Further, as an initial state, the terminal P_1 holds the following information in the terminal data storage unit.
-Secret information value s1 of terminal P_1 and terminal ID
-Addresses of terminal P_2 to terminal P_5, and terminal ID
-The address of the combiner. The same applies to terminal P_2 to terminal P_5.

なお、端末同士が通信を行う際には、事前に交換もしくは配布された認証用の情報を用いて、通信相手が正しい投票用の端末であるかの認証を行ってもよい。   When communicating between terminals, authentication information exchanged or distributed in advance may be used to authenticate whether the communication partner is a correct voting terminal.

(Phase 1:投票開始)
図3は、投票開始にあたってのコンバイナ6の投票開始部33の動作を説明するフローチャートである。図3に示されているように、コンバイナ6の投票開始部33は、投票開始に際し、処理ステップ(以下、単にステップという)ST1においてグループデータ蓄積部36から全端末のアドレスおよびIDのリストを取得する。次に投票開始部33は、署名対象の平文Mを用意して投票開始データ(M,n)を作成し、(ステップST2)、リストLおよび平文Mを上記アドレスおよびIDにしたがって、送信部32から端末P _1 〜P _5 に投票開始データを送付する(ステップST3)。投票開始データには、署名対象となる平分Mの値が含まれる。コンバイナ6から投票開始データを受け取った端末P _nにおいては、入力受付部11が、投票開始データを投票開始処理部17と、ユーザ入力受付部12と、ダミーシード作成部15に転送する。
(Phase 1: Start voting)
FIG. 3 is a flowchart for explaining the operation of the voting start unit 33 of the combiner 6 at the start of voting. As shown in FIG. 3, the voting start unit 33 of the combiner 6 obtains a list of addresses and IDs of all terminals from the group data storage unit 36 in the processing step (hereinafter simply referred to as “step”) ST1 at the start of voting. To do. Next, the voting start unit 33 prepares a plaintext M to be signed and creates voting start data (M, n) (step ST2), and sends the list L and the plaintext M to the transmission unit 32 according to the address and ID. The voting start data is sent from the terminal P_1 to P_5 (step ST3). The voting start data includes the value of the average M to be signed. In the terminal P_n that has received the voting start data from the combiner 6, the input receiving unit 11 transfers the voting start data to the voting start processing unit 17, the user input receiving unit 12, and the dummy seed creating unit 15.

図4は、入力受付部11の構成を示すブロック図である。入力受付部11は、図4に示すように、コンバイナ6や他の端末からのデータを受け付けるデータ受信部41と、受け付けたデータがどのようなデータであるのかをチェックするデータ判別部42と、端末データ蓄積部13からのデータを読み込むデータ読込部43と、データ受信部41で入力したデータの種類によって、そのデータを自己の端末内のどの作動部(機能部)に送付すべきかを示したテーブルが格納されたメモリ44とデータ送出部45とを有している。   FIG. 4 is a block diagram illustrating a configuration of the input receiving unit 11. As shown in FIG. 4, the input receiving unit 11 includes a data receiving unit 41 that receives data from the combiner 6 and other terminals, a data determination unit 42 that checks what kind of data the received data is, The data reading unit 43 that reads data from the terminal data storage unit 13 and the type of data input by the data receiving unit 41 indicate to which operating unit (functional unit) in its own terminal the data should be sent. A memory 44 storing a table and a data sending unit 45 are provided.

図5はメモリ44に格納されるテーブルの例を一覧表形式で示す図である。図5において、投票開始データは、入力受付部11から投票開始処理部17と、ユーザ入力受付部12と、ダミーシード作成部15に転送されることが示されている。また、補間係数作成依頼は、その端末のユーザが反対の投票をしたとき(テーブルの賛否の欄が「反対」)は反対者補間係数作成部19へ転送されることが示されている。これに対し、補間係数作成依頼は、その端末のユーザが賛成の投票をしたとき(テーブルの賛否の欄が「賛成」)は賛成者補間係数作成部21へ転送されることが示されている。他のデータについても同様にして転送先が示されている。   FIG. 5 is a diagram showing an example of a table stored in the memory 44 in a list form. In FIG. 5, it is shown that the voting start data is transferred from the input receiving unit 11 to the voting start processing unit 17, the user input receiving unit 12, and the dummy seed creating unit 15. Further, it is shown that the interpolation coefficient creation request is transferred to the opponent interpolation coefficient creation unit 19 when the user of the terminal makes a negative vote (the table of pros and cons of the table is “opposite”). On the other hand, it is indicated that the interpolation coefficient creation request is transferred to the supporter interpolation coefficient creation unit 21 when the user of the terminal has voted for (the approval / disapproval column in the table is “Yes”). . The transfer destination is similarly shown for other data.

図6は、入力受付部11の基本動作を説明するフローチャートである。図6に示すように、入力受付部11は、各種データを入力し(ステップST4)、入力したデータの種類をデータ判別部42で判別する(ステップST5)。次に、データ読込部43が端末データ蓄積部からユーザの賛否情報を読み込み(ステップST6)、そのデータ送出部45がメモリ44のテーブルにしたがって端末内の機能部にデータを転送する(ステップST7)。   FIG. 6 is a flowchart for explaining the basic operation of the input receiving unit 11. As shown in FIG. 6, the input receiving unit 11 inputs various data (step ST4), and the type of the input data is determined by the data determining unit 42 (step ST5). Next, the data reading unit 43 reads the approval / disapproval information of the user from the terminal data storage unit (step ST6), and the data sending unit 45 transfers the data to the function unit in the terminal according to the table of the memory 44 (step ST7). .

投票開始データを受け取ったユーザ入力受付部12は、ユーザに署名対象の平文Mを提示し平文Mに対してサークルとして署名を行うことに賛成するか反対するかの問いかけを行う。なお、問いかける方法は様々なものが考えられ、例えばディスプレイにメッセージを表示し、キーボードやマウスなどの入力装置を用いて、ユーザの意思の入力を促す方法がある。平文Mに対する署名を行うことへの賛成か反対かの情報はユーザ入力受付部12によって受け付けられ、ユーザが賛成している場合には、端末データ蓄積部13の賛否フラグを賛成を表す1に、また、ユーザが反対している場合には端末データ蓄積部13の賛否フラグを反対を表す0に書き換える。そして、投票開始フェーズの処理を終了した端末P _N は、引き続いてPhase2のダミーデータの作成を行う。   Receiving the voting start data, the user input receiving unit 12 presents the plaintext M to be signed to the user and asks whether to approve or disagree to sign the plaintext M as a circle. There are various methods for asking questions. For example, there is a method of displaying a message on a display and prompting the user to input the intention using an input device such as a keyboard or a mouse. Information on whether or not to sign the plaintext M is accepted by the user input receiving unit 12, and if the user agrees, the approval / disapproval flag of the terminal data storage unit 13 is set to 1 indicating approval. If the user is against, the approval / disapproval flag of the terminal data storage unit 13 is rewritten to 0 indicating the opposite. And terminal P_N which complete | finished the process of a voting start phase produces the dummy data of Phase2 continuously.

(Phase2:ダミーデータ作成)
図7はダミーデータ作成処理の第1段階に相当する中間ダミーデータ作成処理を説明するフローチャートである。この図に示すように、シード投票開始データ(M,n)を受け取った(ステップST11)端末P _1 のダミーシード作成部15は、掛け合わせると1になる任意の乱数yij(1 ≦j≦n)、すなわち、y11、y12、y13、y14、y15を生成する(ステップST12)。乱数yijは、後に正式なダミーデータを作成するための中間ダミーデータともいうべきものであり、掛け合わせると1になるという上記の定義付けにより、
y11×y12×y13×y14×y15=1
である。また、乱数yijの「i」は自己(の端末)を表し、「j」はそのデータ(ここでは乱数)の送受信相手を表す。そして、端末P _1 のダミーシード作成部15は、乱数y11を自端末のダミーデータ作成部16に転送(送付相手を示すjも1であるから)とともに、それ以外の乱数については、それぞれのあて先を、対応する端末P _2 〜端末P _5 となるようにアドレス指定して、送信部14に送付する。送信部14は、それぞれのあて先にデータを送信する(ステップST13)。端末P _2 〜端末P _5 に関しても同様に、自端末以外の端末に対してデータを送付する。
(Phase2: Dummy data creation)
FIG. 7 is a flowchart for explaining intermediate dummy data creation processing corresponding to the first stage of dummy data creation processing. As shown in this figure, the dummy seed creation unit 15 of the terminal P_1 that has received the seed voting start data (M, n) (step ST11) is an arbitrary random number yij (1 ≦ j ≦ n) that becomes 1 when multiplied. ), That is, y11, y12, y13, y14, and y15 are generated (step ST12). The random number yij should be referred to as intermediate dummy data for creating formal dummy data later, and by the above definition that it becomes 1 when multiplied,
y11 × y12 × y13 × y14 × y15 = 1
It is. In addition, “i” of the random number yij represents itself (terminal thereof), and “j” represents a partner of transmission / reception of the data (here, random number). Then, the dummy seed creation unit 15 of the terminal P_1 transfers the random number y11 to the dummy data creation unit 16 of its own terminal (because j indicating the transmission partner is also 1), and other random numbers are assigned to the respective destinations. Are addressed so as to be corresponding terminals P_2 to P_5, and sent to the transmission unit 14. The transmission part 14 transmits data to each destination (step ST13). Similarly, for terminals P_2 to P_5, data is sent to terminals other than the terminal itself.

図8はダミーデータ作成処理の第2段階に相当する(正式な)ダミーデータ作成処理を説明するフローチャートである。この図に示すように、各端末には他端末から中間ダミーデータyji(1≦j≦n)が入力される(ステップST21)。端末P _1 についてみると、その入力受付部11は端末P _2 、端末P _3 、端末P _4 、端末P _5 からそれぞれ、中間ダミーデータyji(2≦j≦n)、すなわち、y21、y31、y41、y51を受け取ることになる(ステップST22)。中間ダミーデータy11については、既に自端末のダミーシード作成部15からダミーデータ作成部16へ転送されている。入力受付部11は受け取ったデータが中間ダミーデータなので、図5のテーブルにしたがって、ダミーデータ作成部16に中間ダミーデータを転送する。なお、各中間ダミーデータは任意のタイミングで送られてくるため、ダミーデータ作成部16は全ての参加者(全ての端末)から中間ダミーデータを受け取ったか否かをチェックする(ステップST23)。入力受付部11は受け取った中間ダミーデータを逐次的にダミーデータ作成部16に転送してもよいし、一定量蓄積してからダミーデータ作成部16に転送してもよい。   FIG. 8 is a flowchart for explaining (formal) dummy data creation processing corresponding to the second stage of dummy data creation processing. As shown in this figure, intermediate dummy data yji (1 ≦ j ≦ n) is input to each terminal from another terminal (step ST21). As for the terminal P_1, the input receiving unit 11 receives intermediate dummy data yji (2≤j≤n), i.e., y21, y31, y41 from the terminal P_2, terminal P_3, terminal P_4, and terminal P_5, respectively. , Y51 is received (step ST22). The intermediate dummy data y11 has already been transferred from the dummy seed creation unit 15 of the own terminal to the dummy data creation unit 16. Since the received data is intermediate dummy data, the input receiving unit 11 transfers the intermediate dummy data to the dummy data creating unit 16 according to the table of FIG. Since each intermediate dummy data is sent at an arbitrary timing, the dummy data creating unit 16 checks whether or not intermediate dummy data has been received from all participants (all terminals) (step ST23). The input reception unit 11 may sequentially transfer the received intermediate dummy data to the dummy data creation unit 16, or may store a certain amount and then transfer the dummy data creation unit 16.

端末P _1 のダミーデータ作成部16は、入力受付部11からのデータの送付により、自分以外の全ての端末(端末P _2 〜端末P _5 )からの中間ダミーデータy21、y31、y41、y51を全て受け取ったら、自端末の中間ダミーデータy11を含めてそれらをすべて掛け合わせる計算を実行し、ダミーデータyi、すなわち、y1 とする(ステップST24)。   The dummy data creation unit 16 of the terminal P_1 receives the intermediate dummy data y21, y31, y41, and y51 from all terminals (terminal P_2 to terminal P_5) other than itself by sending the data from the input receiving unit 11. When all are received, a calculation is performed to multiply all of them including the intermediate dummy data y11 of the own terminal to obtain dummy data yi, that is, y1 (step ST24).

次に、端末P _1 は端末データ蓄積部13の平文Mに関する賛否フラグを参照し(ステップST25)、賛否フラグが1(賛成)の場合には、ダミーデータy _1 を賛成者公開データ計算部22に送り(ステップST26)、賛否フラグが0(反対)の場合にはダミーデータy1 を反対者公開データ計算部20に送る(ステップST27)。このように、Phase2の処理動作を行うことで、反対を表明する端末においても、公開データを作成することができるようになる。   Next, the terminal P_1 refers to the approval / disapproval flag regarding the plaintext M in the terminal data storage unit 13 (step ST25), and when the approval / disapproval flag is 1 (agree), the dummy data y_1 is assigned to the approver public data calculation unit 22. If the approval / disapproval flag is 0 (opposite), the dummy data y1 is sent to the opponent public data calculation unit 20 (step ST27). Thus, by performing the processing operation of Phase 2, it becomes possible to create public data even in a terminal that asserts the opposite.

(Phase3-1:補間係数作成開始処理;賛成反対共通)
次に、投票開始処理部17の動作について説明する。図9は、投票開始処理部17の動作を説明するフローチャートである。この投票開始処理部17の動作は、上述のPhase2の処理動作と並行して実行される。
(Phase3-1: Interpolation coefficient creation start processing; common and negative)
Next, the operation of the voting start processing unit 17 will be described. FIG. 9 is a flowchart for explaining the operation of the voting start processing unit 17. The operation of the voting start processing unit 17 is executed in parallel with the processing operation of Phase 2 described above.

コンバイナ6からの投票開始データを受け取った端末P _1 において、投票開始処理部17は、入力受付部11から投票開始データ(M,L)を受け取ると(ステップST31)、端末データ蓄積部13から自己のID情報(ID=i)すなわちID=1を読み込み(ステップST32)、M,Lの値を端末データ蓄積部13に格納する(ステップST33)。次に、投票開始処理部17は、ユーザ入力受付部12を呼び出し、賛否フラグ(賛成の場合は1、反対の場合は0)を取得するとともに、この賛否フラグを端末データ蓄積部13に格納する(ステップST34)。次いで、投票開始処理部17は、補間係数作成依頼(ID=1)を作成し自分以外の端末端末P _2 〜端末P _5 をあて先として送付するよう、送信部14に依頼を行う(ステップST35)。依頼を受けた送信部14は、端末P _2 〜端末P _5 に補間係数作成依頼を送付する。補間係数作成依頼は以下の情報を含む。その情報は、
・平文M
・端末ID=1(自端末の端末ID)
である。各端末の入力受付部11は、他の端末からの補間係数作成依頼を受け取ったら、自端末の端末データ蓄積部13の賛否フラグを参照し、ユーザが平文Mの署名に対して賛成か反対かを確認する。賛否フラグが1(賛成)の場合には、補間係数作成依頼を賛成者補間係数作成部21に転送し、賛否フラグが0(反対)の場合には補間係数作成依頼を反対者補間係数作成部19に転送する。Phase3の動作は、ここから後は、その端末のユーザが賛成したか反対したかによって動作が異なるため、それぞれについて説明を行う。
In the terminal P_1 that has received the voting start data from the combiner 6, when the voting start processing unit 17 receives the voting start data (M, L) from the input receiving unit 11 (step ST31), the voting start processing unit 17 self-registers from the terminal data storage unit 13. ID information (ID = i), that is, ID = 1 is read (step ST32), and the values of M and L are stored in the terminal data storage unit 13 (step ST33). Next, the voting start processing unit 17 calls the user input receiving unit 12 to acquire a pros and cons flag (1 in case of approval, 0 in case of negative) and stores this pros and cons flag in the terminal data storage unit 13. (Step ST34). Next, the voting start processing unit 17 requests the transmission unit 14 to create an interpolation coefficient creation request (ID = 1) and send the other terminal terminals P_2 to P_5 as destinations (step ST35). . Upon receiving the request, the transmission unit 14 sends an interpolation coefficient creation request to the terminals P_2 to P_5. The interpolation coefficient creation request includes the following information. The information is
・ Plaintext M
・ Terminal ID = 1 (terminal ID of own terminal)
It is. When receiving an interpolation coefficient creation request from another terminal, the input receiving unit 11 of each terminal refers to the approval / disapproval flag of the terminal data storage unit 13 of its own terminal, and whether the user agrees or disagrees with the signature of plaintext M Confirm. If the approval / disapproval flag is 1 (agree), the interpolation coefficient creation request is transferred to the approver interpolation coefficient creation section 21. If the approval / disapproval flag is 0 (opposite), the interpolation coefficient creation request is sent to the opponent interpolation coefficient creation section. 19 for transfer. Since the operation of Phase 3 is different from now on depending on whether the user of the terminal agrees or disagrees, each will be described.

(Phase3-2-1:分割補間係数データ作成;賛成)
端末P _2(賛成している端末の代表である)についてみると、その入力受付部11は、端末P _1、端末P _3、端末P _4、端末P _5からの補間係数作成依頼を受け取ったら、端末データ蓄積部13の賛否フラグを参照し、自端末のユーザが平文M の署名に対して賛成か反対かを確認する。いま、端末P _2 の賛否フラグは1(賛成)なので、入力受付部11は補間係数作成依頼を賛成者補間係数作成部21に転送する。
(Phase3-2-1: Creation of divided interpolation coefficient data; agree)
Looking at the terminal P_2 (which is a representative of the terminal in favor), the input receiving unit 11 receives an interpolation coefficient creation request from the terminal P_1, the terminal P_3, the terminal P_4, and the terminal P_5. With reference to the approval / disapproval flag of the terminal data storage unit 13, it is confirmed whether the user of the terminal itself agrees or disagrees with the signature of plaintext M. Now, since the approval / disapproval flag of terminal P_2 is 1 (agree), the input reception part 11 transfers the interpolation coefficient preparation request to the approval person interpolation coefficient preparation part 21. FIG.

図10は、賛成者補間係数作成部21における補間係数処理動作を説明するフローチャートである。この図に示すように、賛成者補間係数作成部21は入力受付部11からの転送により補間係数作成依頼(ID=j)すなわち、ID=1、ID=3、ID=4、ID=5、を受け取る(ステップST41)。ここで、図9のフローチャートのステップST35で各端末が出力する補間係数作成依頼がID=iであるのに対し、賛成者補間係数作成部21が受け取る補間係数作成依頼はID=jであるのは、先にも述べたように、送信端末側は自端末を表すID(すなわち、i)を出力するのに対し、受信端末側からみればそのデータは送受信の相手(すなわち、j)を表すものだからであり、両者は実質的に同一のデータである。賛成者補間係数作成部21は次に、端末データ蓄積部13から自端末のID=2を読み込み(ステップST42)、
aji=i/(i-j)
を計算する(ステップST43)。次に、賛成者補間係数作成部21は、掛け合わせるとajiになるようなajim(1≦m≦n, i≠j)を計算する(ステップST44)。このajimをここでは「分割補間係数データ」と名付ける。端末P _2の賛成者補間係数作成部21において求められる分割補間係数データajimは、具体的には、掛け合わせると2/(2-1)=2 となるような4 つの乱数a211、a213 、a214 、a215 である。賛成者補間係数作成部21は、それぞれの分割補間係数データa211、a213 、a214 、a215を端末P _1 、端末P _3 、端末P _4 、端末P _5 をあて先として送信部14に送付する(ステップST45)。送信部14は、賛成者補間係数作成部21から受け取ったそれぞれの分割補間係数を指定されたあて先に送信する。以上のPhase3-2-1の処理動作はユーザが賛成の投票をした全ての端末において実行される。
FIG. 10 is a flowchart for explaining the interpolation coefficient processing operation in the supporter interpolation coefficient creation unit 21. As shown in this figure, the supporter interpolation coefficient creating unit 21 transfers an interpolation coefficient creation request (ID = j) by transfer from the input receiving unit 11, that is, ID = 1, ID = 3, ID = 4, ID = 5, Is received (step ST41). Here, the interpolation coefficient creation request output by each terminal in step ST35 of the flowchart of FIG. 9 is ID = i, whereas the interpolation coefficient creation request received by the supporter interpolation coefficient creation unit 21 is ID = j. As described above, the transmitting terminal outputs an ID representing its own terminal (i.e., i), whereas when viewed from the receiving terminal, the data represents the partner of transmission and reception (i.e., j). This is because the data is substantially the same. Next, the supporter interpolation coefficient creation unit 21 reads ID = 2 of the terminal itself from the terminal data storage unit 13 (step ST42),
aji = i / (ij)
Is calculated (step ST43). Next, the approver interpolation coefficient creating unit 21 calculates ajim (1 ≦ m ≦ n, i ≠ j) that becomes aji when multiplied (step ST44). This ajim is named “division interpolation coefficient data” here. Specifically, the divided interpolation coefficient data ajim obtained by the approver interpolation coefficient creating unit 21 of the terminal P_2 is specifically four random numbers a211, a213, a214 such that 2 / (2-1) = 2 when multiplied. A215. The supporter interpolation coefficient creation unit 21 sends the respective divided interpolation coefficient data a211, a213, a214, and a215 to the transmission unit 14 with the terminal P_1, the terminal P_3, the terminal P_4, and the terminal P_5 as destinations (step ST45). ). The transmission unit 14 transmits the respective divided interpolation coefficients received from the supporter interpolation coefficient creation unit 21 to the designated destination. The processing operation of the above Phase 3-2-1 is executed in all terminals for which the user has voted for.

(Phase3-2-2:分割補間係数データ作成;反対)
端末P _4(反対している端末の代表である)についてみると、その入力受付部11は、端末P _1、端末P _2、端末P _3、端末P _5からの補間係数作成依頼を受け取ったら、端末データ蓄積部13の賛否フラグを参照し、自端末のユーザが平文M の署名に対して賛成か反対かを確認する。いま、端末P _4 の賛否フラグは0(反対)なので、入力受付部11は補間係数作成依頼を反対者補間係数作成部19に転送する。
(Phase 3-2-2: Create division interpolation coefficient data; opposite)
Looking at the terminal P_4 (representing the opposite terminal), the input receiving unit 11 receives an interpolation coefficient creation request from the terminal P_1, terminal P_2, terminal P_3, and terminal P_5. With reference to the approval / disapproval flag of the terminal data storage unit 13, it is confirmed whether the user of the terminal itself agrees or disagrees with the signature of plaintext M. Now, since the approval / disapproval flag of terminal P_4 is 0 (opposite), the input reception part 11 transfers the interpolation coefficient preparation request to the opponent interpolation coefficient preparation part 19. FIG.

図11は、反対者補間係数作成部19における補間係数処理動作を説明するフローチャートである。この図に示すように、反対者補間係数作成部19は入力受付部11からの転送により補間係数作成依頼(ID=j)すなわち、ID=1、ID=2、ID=3、ID=5、を受け取る(ステップST51)。補間係数作成依頼を受け取った端末P _4 の反対者補間係数作成部19は、分割補間係数データa411 、a412 、a413 、a415 を作成する(ステップST52)。なお、反対者補間係数作成部19が作成する分割補間係数データは、一般的に表すと、掛け合わせると1になるような任意の乱数ajim(1 ≦m ≦n, i ≠j)である。端末P _4の反対者補間係数作成部19において求められる分割補間係数データajimは、具体的には、掛け合わせると1 となるような4 つの乱数a411 、a412 、a413 、a415である。反対者補間係数作成部19は、それぞれの分割補間係数データa411 、a412 、a413 、a415を端末P _1 、端末P _2 、端末P _3 、端末P _5 をあて先として送信部14に送付する(ステップST53)。送信部14は、反対者補間係数作成部19から受け取ったそれぞれの分割補間係数を指定されたあて先に送信する。以上のPhase3-2-2の処理動作はユーザが反対の投票をした全ての端末において実行される。   FIG. 11 is a flowchart for explaining the interpolation coefficient processing operation in the opponent interpolation coefficient creation unit 19. As shown in this figure, the opponent interpolation coefficient creation unit 19 receives an interpolation coefficient creation request (ID = j) by transfer from the input reception unit 11, that is, ID = 1, ID = 2, ID = 3, ID = 5, Is received (step ST51). Upon receiving the interpolation coefficient creation request, the opponent interpolation coefficient creation unit 19 of the terminal P_4 creates divided interpolation coefficient data a411, a412, a413, a415 (step ST52). In general, the divided interpolation coefficient data created by the opponent interpolation coefficient creating unit 19 is an arbitrary random number ajim (1 ≦ m ≦ n, i ≠ j) that becomes 1 when multiplied. Specifically, the divided interpolation coefficient data ajim obtained by the opponent interpolation coefficient creating unit 19 of the terminal P_4 is four random numbers a411, a412, a413, and a415 that are 1 when multiplied. The opponent interpolation coefficient creating unit 19 sends the respective divided interpolation coefficient data a411, a412, a413, a415 to the transmission unit 14 with the terminal P_1, the terminal P_2, the terminal P_3, and the terminal P_5 as destinations (step ST53). ). The transmission unit 14 transmits each divided interpolation coefficient received from the opponent interpolation coefficient creation unit 19 to the designated destination. The processing operation of the above Phase3-2-2 is executed in all terminals for which the user has voted against.

(Phase3-3:中間補間係数データ作成;賛成反対共通)
図12は、各端末が他の端末から分割補間係数データを受信し、自端末の補間係数データ転送部18において中間補間係数データを作成する処理動作を説明するフローチャートである。この図に示すように、端末P _1 の入力受付部11は、端末P _2 、端末P _3 、端末P _4 、端末P _5 から分割補間係数データajmiを受け取ることになる。入力受付部11は、分割補間係数データを受け取ったら、転送先テーブルにしたがって、補間係数データ転送部18にデータを転送する(ステップST61)。なお、各データは任意のタイミングで送られてくるが、入力受付部11は受け取ったデータを逐次的に補間係数データ転送部18に転送してもよいし、一定量蓄積してから転送してもよい。
(Phase3-3: Interpolation coefficient data creation; common and negative)
FIG. 12 is a flowchart for explaining a processing operation in which each terminal receives divided interpolation coefficient data from another terminal and creates intermediate interpolation coefficient data in the interpolation coefficient data transfer unit 18 of its own terminal. As shown in this figure, the input reception unit 11 of the terminal P_1 receives the division interpolation coefficient data ajmi from the terminal P_2, the terminal P_3, the terminal P_4, and the terminal P_5. When receiving the divided interpolation coefficient data, the input receiving unit 11 transfers the data to the interpolation coefficient data transfer unit 18 in accordance with the transfer destination table (step ST61). Each data is sent at an arbitrary timing, but the input receiving unit 11 may sequentially transfer the received data to the interpolation coefficient data transfer unit 18, or after a certain amount of data is accumulated and transferred. Also good.

端末P _1 の補間係数データ転送部18は、入力受付部11から、自分以外の全ての端末から(端末P _2 〜端末P _5 )の分割補間係数データajmi、具体的には、分割補間係数データ a121, a131, a141, a151, a211, a231, a241, a251, a311, a321, a341, a351, a411, a421, a431, a451, a511, a521, a531, a541 を受け取る(ステップST62)。補間係数データ転送部18は、全ての分割補間係数データを受け取ったか否かをチェックし(ステップST63)、全ての分割補間係数データを受け取ったら、各分割補間係数データajmiの添え字の2番目(つまり、m)が同一の分割補間係数データを掛け合わせる計算を実行し、新たに掛け合わせた分割補間係数データの添え字の2番目を1番目に、添え字の3番目を2番目にした中間補間係数データajiを作成する(ステップST64)。また、補間係数データ転送部18は、作成された中間補間係数データを、あて先を中間補間係数データの1番目の添え字の端末IDを持つ端末として送信部14に転送する(ステップST65)。つまり、具体的には、a121, a321, a421, a521 の4つを掛け合わせたのものを中間補間係数データa21とし、あて先を端末P _2 として送信部14に転送する。同様に、補間係数データ転送部18は、中間補間係数データa31, 中間補間係数データa41, 中間補間係数データa51を作成し、それぞれあて先を端末P _3 、端末P _4 、端末P _5 として送信部14に転送する。送信部14は、補間係数データ転送部18から受け取ったデータを指定されたあて先に転送する。   The interpolation coefficient data transfer unit 18 of the terminal P_1 receives the divided interpolation coefficient data ajmi from all the terminals other than itself (terminal P_2 to terminal P_5) from the input receiving unit 11, specifically, the divided interpolation coefficient data. a121, a131, a141, a151, a211, a231, a241, a251, a311, a321, a341, a351, a411, a421, a431, a451, a511, a521, a531, a541 are received (step ST62). The interpolation coefficient data transfer unit 18 checks whether or not all the divided interpolation coefficient data has been received (step ST63), and when all the divided interpolation coefficient data is received, the second subscript of each divided interpolation coefficient data ajmi ( In other words, the calculation of multiplying the divided interpolation coefficient data with the same m) is executed, and the second of the subscripts of the newly multiplied divided interpolation coefficient data is the first and the third of the subscripts is the second Interpolation coefficient data aji is created (step ST64). Also, the interpolation coefficient data transfer unit 18 transfers the created intermediate interpolation coefficient data to the transmission unit 14 as a terminal having the terminal ID of the first subscript of the intermediate interpolation coefficient data (step ST65). Specifically, the data obtained by multiplying four of a121, a321, a421, and a521 is set as intermediate interpolation coefficient data a21, and the destination is transferred to the transmission unit 14 as the terminal P_2. Similarly, the interpolation coefficient data transfer unit 18 creates intermediate interpolation coefficient data a31, intermediate interpolation coefficient data a41, and intermediate interpolation coefficient data a51, and sets the destinations as a terminal P_3, a terminal P_4, and a terminal P_5, respectively. Forward to. The transmission unit 14 transfers the data received from the interpolation coefficient data transfer unit 18 to a designated destination.

(Phase4-1:公開データ作成;賛成)
図13は、ユーザが賛成の投票をした端末における公開データ作成処理動作を説明するフローチャートである。この図に示すように、端末P _2 の入力受付部11は、全端末から中間補間係数データaijを受け取る(ステップST71)。また、端末P _2 の賛成者公開データ計算部22は、ダミーデータ作成部16からダミーデータyIとしてy2 を受け取る(図8のステップST26の処理)。入力受付部11は、中間補間係数データを受け取ったら、図5の転送先テーブルに従って中間補間係数データを賛成者公開データ計算部22に転送する(ステップST72)。なお、中間補間係数データは各端末から任意のタイミングで送られてくるが、入力受付部11は中間補間係数データを逐次的に反対者公開データ計算部に転送してもよいし、一定量蓄積してから転送してもよい。
(Phase4-1: Create public data; agree)
FIG. 13 is a flowchart for explaining the public data creation processing operation in the terminal for which the user voted for. As shown in this figure, the input receiving unit 11 of the terminal P_2 receives intermediate interpolation coefficient data aij from all terminals (step ST71). Further, the approver public data calculation unit 22 of the terminal P_2 receives y2 as dummy data yI from the dummy data creation unit 16 (processing of step ST26 in FIG. 8). When receiving the intermediate interpolation coefficient data, the input receiving unit 11 transfers the intermediate interpolation coefficient data to the approver public data calculation unit 22 in accordance with the transfer destination table of FIG. 5 (step ST72). The intermediate interpolation coefficient data is sent from each terminal at an arbitrary timing. However, the input reception unit 11 may sequentially transfer the intermediate interpolation coefficient data to the opponent public data calculation unit, or accumulate a certain amount. Then, you may transfer.

賛成者公開データ計算部22は、入力受付部11から全ての中間補間係数データa21, a23, a24, a25を受け取ったか否かをチェックする(ステップST73)。全ての中間補間係数データa21, a23, a24, a25を受け取り、また、ダミーデータ作成部16からダミーデータy _2 を受け取っていれば、賛成者公開データ計算部22は、全ての中間補間係数データaijを掛け合わせる計算を実行し、aiを得る(ステップST74)。端末P _2についてみれば、その賛成者公開データ計算部22は、全ての中間補間係数データa21, a23, a24, a25 を掛け合わせる計算を実行し、aiとしてa2を得る(ステップST74)。次に賛成者公開データ計算部22は、端末データ蓄積部13で保持している秘密情報siとステップST74で求めたaiを用いてMに(ai* si)を累乗するとともにダミーデータyiを掛け合わせる計算を実行し、分割署名データSi を求める(ステップST75)。端末P _2についてみれば、その賛成者公開データ計算部22は、端末データ蓄積部13で保持している秘密情報s2 を用いて以下の手順に従い分割署名データS2 を計算する。   The approver public data calculation unit 22 checks whether or not all the intermediate interpolation coefficient data a21, a23, a24, a25 have been received from the input receiving unit 11 (step ST73). If all intermediate interpolation coefficient data a21, a23, a24, a25 are received and dummy data y_2 is received from the dummy data creation unit 16, the approver public data calculation unit 22 determines that all intermediate interpolation coefficient data aij And ai is obtained (step ST74). Looking at the terminal P_2, the approver public data calculation unit 22 performs a calculation of multiplying all the intermediate interpolation coefficient data a21, a23, a24, and a25 to obtain a2 as ai (step ST74). Next, the approver public data calculation unit 22 uses the secret information si held in the terminal data storage unit 13 and ai obtained in step ST74 to raise M to (ai * si) and multiply the dummy data yi. The matching calculation is executed to obtain the divided signature data Si (step ST75). As for the terminal P_2, the approver public data calculation unit 22 calculates the divided signature data S2 according to the following procedure using the secret information s2 held in the terminal data storage unit 13.

S2=M ^(s2*a21*a23*a24*a25)*y2
ここで、上式の「^」は、累乗計算を表す。次に賛成者公開データ計算部22は、分割署名データS2 を、あて先をコンバイナ6として送信部14に転送する(ステップST76)。送信部14は、賛成者公開データ計算部22から受け取った分割署名データS2 をコンバイナ6に転送する。以上の賛成者公開データ作成動作は、ユーザが賛成の投票をした全ての端末において実行される。
S2 = M ^ (s2 * a21 * a23 * a24 * a25) * y2
Here, “^” in the above expression represents power calculation. Next, the approver public data calculation unit 22 transfers the divided signature data S2 to the transmission unit 14 with the destination as the combiner 6 (step ST76). The transmission unit 14 transfers the divided signature data S2 received from the approver public data calculation unit 22 to the combiner 6. The above approval public data creation operation is executed in all terminals for which the user has voted for approval.

(Phase4-2:公開データ作成;反対)
図14は、ユーザが反対の投票をした端末における公開データ作成処理動作を説明するフローチャートである。この図に示すように、端末P _4の入力受付部11は、全端末から中間補間係数データaijを受け取る(ステップST81)。また、端末P _4の賛成者公開データ計算部22は、ダミーデータ作成部16からダミーデータyIとしてy4 を受け取る(図8のステップST27の処理)。入力受付部11は、中間補間係数データを受け取ったら、図5の転送先テーブルに従って中間補間係数データを反対者公開データ計算部20に転送する。なお、中間補間係数データは各端末から任意のタイミングで送られてくるが、入力受付部11は中間補間係数データを逐次的に反対者公開データ計算部20に転送してもよいし、一定量蓄積してから転送してもよい。
(Phase4-2: Public data creation; opposite)
FIG. 14 is a flowchart for explaining the public data creation processing operation in the terminal on which the user has voted against. As shown in this figure, the input receiving unit 11 of the terminal P_4 receives the intermediate interpolation coefficient data aij from all terminals (step ST81). Further, the approver public data calculation unit 22 of the terminal P_4 receives y4 as dummy data yI from the dummy data creation unit 16 (processing of step ST27 in FIG. 8). When receiving the intermediate interpolation coefficient data, the input receiving unit 11 transfers the intermediate interpolation coefficient data to the opponent public data calculation unit 20 according to the transfer destination table of FIG. The intermediate interpolation coefficient data is sent from each terminal at an arbitrary timing. However, the input receiving unit 11 may sequentially transfer the intermediate interpolation coefficient data to the opponent public data calculation unit 20, or a predetermined amount. You may transfer after accumulating.

入力受付部11から中間補間係数データa41, a42, a43, a45を、また、ダミーデータ作成部16からダミーデータy4 を受け取った反対者公開データ計算部20は、Si = yiを計算し、分割署名データSi を求める(ステップST82)。端末P _4についてみれば、以下の手順に従い分割署名データS4 を計算する。
S4 = y4
次に反対者公開データ計算部20は、分割署名データS4 を、あて先をコンバイナ6として送信部14に転送する(ステップST83)。送信部14は、反対者公開データ計算部20から受け取った分割署名データS4 をコンバイナ6に送信する。以上の反対者公開データ作成動作は、ユーザが反対の投票をした全ての端末において実行される。
The opponent public data calculation unit 20 that has received the intermediate interpolation coefficient data a41, a42, a43, a45 from the input reception unit 11 and the dummy data y4 from the dummy data creation unit 16 calculates Si = yi, and divides the signature. Data Si is obtained (step ST82). For the terminal P_4, the divided signature data S4 is calculated according to the following procedure.
S4 = y4
Next, opponent public data calculation unit 20 transfers divided signature data S4 to transmission unit 14 with destination 6 as combiner 6 (step ST83). The transmission unit 14 transmits the divided signature data S4 received from the opponent public data calculation unit 20 to the combiner 6. The above opponent public data creation operation is executed in all terminals for which the user has voted against the opponent.

(Phase5:署名データ作成)
図15は、コンバイナ6における署名データ集計処理動作を説明するフローチャートである。この図に示すように、コンバイナ6の入力受付部31は、全ての端末から分割署名データSiを受け取ることになる(ステップST91)。受け取る分割署名データは、S1, S2, S3, S4, S5である。入力受付部31は、分割署名データを受け取ったら、図5の転送先テーブルに従って分割署名データを署名データ集計部34に転送する。なお、分割署名データは各端末から任意のタイミングで送られてくるが、入力受付部31は受け取った分割署名データを逐次的に署名データ集計部34に転送してもよいし、一定量蓄積してから転送してもよい。
(Phase5: Signature data creation)
FIG. 15 is a flowchart for explaining the signature data totaling processing operation in the combiner 6. As shown in this figure, the input receiving unit 31 of the combiner 6 receives the divided signature data Si from all terminals (step ST91). The divided signature data received are S1, S2, S3, S4, and S5. When receiving the divided signature data, the input receiving unit 31 transfers the divided signature data to the signature data totaling unit 34 according to the transfer destination table of FIG. The split signature data is sent from each terminal at an arbitrary timing. However, the input receiving unit 31 may sequentially transfer the received split signature data to the signature data totaling unit 34 or store a certain amount. You may transfer it later.

入力受付部31から分割署名データを受け取った署名データ集計部34は、全ての分割署名データを掛け合わせる計算を行い署名データSを求める(ステップST92)。そして、署名データ集計部34は、求めた署名データSを全端末をあて先として送信部32に転送する(ステップST93)。送信部32は、署名データ集計部34から受け取った署名データS を全端末あてに送信する。この署名データはサークルの秘密鍵s を用いて、平文M に対する署名が行われた値(つまりS=M ^s を求めた値)となっている。   The signature data totaling unit 34 that has received the divided signature data from the input receiving unit 31 calculates the product of all the divided signature data and obtains the signature data S (step ST92). Then, the signature data totaling unit 34 transfers the obtained signature data S to the transmission unit 32 with all terminals as destinations (step ST93). The transmitting unit 32 transmits the signature data S received from the signature data totaling unit 34 to all terminals. This signature data is a value obtained by signing the plaintext M using the circle secret key s (that is, a value obtained from S = M ^ s).

本発明の分散署名では、投票にあたって賛成か反対かを名乗る必要は無く、賛成の端末も反対の端末も、賛成又は反対の分割署名データを作成し、さらにコンバイナで署名データを作成して秘密分散による署名データを実現する。また送受信するデータからは賛否に関する情報を読み取ることができないため、どの端末が賛成し、どの端末が反対しているかの判別をできなくすることができ匿名性のある分散署名を行うことが可能となる。   In the distributed signature of the present invention, it is not necessary to give a vote for approval or disapproval, and both the terminal of approval and the terminal of the opposite will create split signature data for approval or disagreement, and further generate the signature data with a combiner to distribute the secret Realize signature data by. In addition, because it is not possible to read information about approval or disapproval from the data sent and received, it is possible to make it impossible to determine which terminal agrees and which terminal disagrees, and it is possible to perform distributed signatures with anonymity Become.

本発明の一実施の形態に係る電子投票システムにおいて用いられる端末の構成を示すブロック図The block diagram which shows the structure of the terminal used in the electronic voting system which concerns on one embodiment of this invention 前記実施の形態で用いられるコンバイナの構成を示すブロック図The block diagram which shows the structure of the combiner used by the said embodiment. 前記実施の形態において、投票開始にあたってのコンバイナの投票開始部の動作を説明するフローチャートである。In the said embodiment, it is a flowchart explaining operation | movement of the vote start part of a combiner in the case of a ballot start. 前記実施の形態において、入力受付部の構成を示すブロック図The block diagram which shows the structure of an input reception part in the said embodiment. 前記実施の形態において、メモリに格納されるテーブルの例を一覧表形式で示す図The figure which shows the example of the table stored in memory in the said embodiment in a list form format 前記実施の形態において、入力受付部の基本動作を説明するフローチャートIn the above embodiment, a flowchart for explaining the basic operation of the input receiving unit 前記実施の形態において、ダミーデータ作成処理の第1段階に相当する中間ダミーデータ作成処理を説明するフローチャートFlowchart for explaining intermediate dummy data creation processing corresponding to the first stage of dummy data creation processing in the embodiment 前記実施の形態において、ダミーデータ作成処理の第2段階に相当する(正式な)ダミーデータ作成処理を説明するフローチャートFlowchart for explaining (formal) dummy data creation processing corresponding to the second stage of dummy data creation processing in the embodiment. 前記実施の形態において、投票開始処理部の動作を説明するフローチャートFlowchart for explaining the operation of the voting start processing unit in the embodiment. 前記実施の形態において、賛成者補間係数作成部における補間係数処理動作を説明するフローチャートIn the above embodiment, a flowchart for explaining the interpolation coefficient processing operation in the supporter interpolation coefficient creation unit 前記実施の形態において、反対者補間係数作成部における補間係数処理動作を説明するフローチャートFlowchart explaining the interpolation coefficient processing operation in the opponent interpolation coefficient creation unit in the embodiment 前記実施の形態において、各端末が他の端末から分割補間係数データを受信し、自端末の補間係数データ転送部において中間補間係数データを作成する処理動作を説明するフローチャートIn the embodiment described above, a flowchart for explaining a processing operation in which each terminal receives divided interpolation coefficient data from another terminal and creates intermediate interpolation coefficient data in the interpolation coefficient data transfer unit of the terminal itself. 前記実施の形態において、ユーザが賛成の投票をした端末における公開データ作成処理動作を説明するフローチャートIn the embodiment, a flowchart for explaining a public data creation processing operation in a terminal for which a user has voted for 前記実施の形態において、ユーザが反対の投票をした端末における公開データ作成処理動作を説明するフローチャートIn the embodiment, a flowchart for explaining a public data creation processing operation in a terminal on which a user has voted against 前記実施の形態において、コンバイナにおける署名データ集計処理動作を説明するフローチャートIn the embodiment, a flowchart for explaining the signature data totaling processing operation in the combiner 従来の技術を説明するための端末とコンバイナとの接続構成を示すネットワーク構成図Network configuration diagram showing a connection configuration between a terminal and a combiner for explaining the conventional technology 上記従来技術に係る投票システムに用いられる端末の一例を示すブロック図The block diagram which shows an example of the terminal used for the voting system which concerns on the said prior art 従来のコンバイナの構成を示すブロック図Block diagram showing the configuration of a conventional combiner

符号の説明Explanation of symbols

6 コンバイナ
11、31 入力受付部
12 ユーザ入力受付部
13 端末データ蓄積部
14、32 送信部
15 ダミーシード作成
16 ダミーデータ作成部
17 投票開始処理部
18 補間係数データ転送部
19 反対者補間係数作成部
20 反対者公開データ計算部
21 賛成者補間係数作成部
22 賛成者公開データ計算部
23 2とから構成される。
6 Combiner 11, 31 Input accepting unit 12 User input accepting unit 13 Terminal data accumulating unit 14, 32 Transmitting unit 15 Dummy seed creation 16 Dummy data creating unit 17 Voting start processing unit 18 Interpolation coefficient data transfer unit 19 Opposite interpolation coefficient creation unit 20 Opponent Public Data Calculation Unit 21 Approvers Interpolation Coefficient Creation Unit 22 Approvers Public Data Calculation Unit 23 2

33 投票開始部
34 署名データ集計部
36 グループデータ蓄積部
P _1 、P _2 、P _3 、P _4 、P _5 端末
33 Voting start unit 34 Signature data totaling unit 36 Group data storage unit
P_1, P_2, P_3, P_4, P_5 terminal

Claims (12)

電子投票の開始を表す投票開始データを生成する投票開始部と、端末から受け取った賛成又は反対の分割署名データから、署名データを生成する署名データ集計部とを有するコンバイナ、および、
投票開始のための処理を行う投票開始処理手段と、賛成の分割署名データを作成するための手段と、反対の分割署名データを作成するための手段と、各分割署名データの一部を構成するダミーデータを作成する手段と、前記コンバイナまたは他の端末からのデータを受け取る入力受付部と、前記コンバイナまたは他の端末へデータを送付する送信部とを有し、前記コンバイナから投票開始データを受け取って賛成又は反対の分割署名データを作成する複数の端末とから構成され、
前記コンバイナは、各端末から賛成又は反対の分割署名データを受け取って署名データを作成することを特徴とする電子投票システム。
A combiner having a voting start unit that generates voting start data representing the start of electronic voting, and a signature data totaling unit that generates signature data from the split signature data in favor or opposite received from the terminal; and
A voting start processing means for performing a process for starting voting, a means for creating split signature data for approval, a means for creating opposite split signature data, and a part of each split signature data A means for creating dummy data; an input receiving unit for receiving data from the combiner or another terminal; and a transmission unit for sending data to the combiner or another terminal; receiving voting start data from the combiner And a plurality of terminals that create split signature data for or against
The electronic voting system, wherein the combiner receives divided signature data in favor or opposite from each terminal and creates signature data.
投票開始のための処理を行う投票開始処理手段と、賛成の分割署名データを作成するための手段と、反対の分割署名データを作成するための手段と、各分割署名データの一部を構成するダミーデータを作成する手段と、他の端末からのデータを受け取る入力受付部と、他の端末へデータを送付する送信部とをする複数の端末から構成され、
前記複数の端末のうち、少なくとも1つは、電子投票の開始を表す投票開始データを生成する投票開始部と、各端末から受け取った賛成又は反対の分割署名データから、署名データを生成する署名データ集計部とを有することにより主端末としての機能を有しており、
前記主端末は、各端末から賛成又は反対の分割署名データを受け取って署名データを作成することを特徴とする電子投票システム。
A voting start processing means for performing a process for starting voting, a means for creating split signature data for approval, a means for creating opposite split signature data, and a part of each split signature data It is composed of a plurality of terminals having means for creating dummy data, an input receiving unit for receiving data from other terminals, and a transmitting unit for sending data to other terminals,
Among the plurality of terminals, at least one of the plurality of terminals is signature data for generating signature data from a voting start unit that generates voting start data indicating the start of electronic voting, and split signature data that is approved or opposite from each terminal. It has a function as a main terminal by having a counting part,
The electronic voting system, wherein the main terminal receives divided signature data in favor or opposite from each terminal and creates signature data.
前記賛成の分割署名データを作成する手段は、自端末IDと他端末IDとを基に分割補間係数データを作成する賛成者補間係数作成部と、賛成者補間係数作成部において作成された分割補間係数データおよび他端末からの分割補間係数データを基に中間補間係数データを作成する補間係数データ転送部と、補間係数データ転送部において作成された中間補間係数データおよび他端末からの中間補間係数データを基に分割署名データを作成する賛成者公開データ計算部とを有し、また、
前記反対の分割署名データを作成する手段は、演算処理により所定の値となる端末の個数分の数からなる分割補間係数データを作成する反対者補間係数作成部と、反対者補間係数作成部において作成された分割補間係数データおよび他端末からの分割補間係数データを基に中間補間係数データを作成する補間係数データ転送部と、補間係数データ転送部において作成された中間補間係数データおよび他端末からの中間補間係数データを基に分割署名データを作成する反対者公開データ計算部とを有することを特徴とする請求項1又は2記載の電子投票システム。
The means for creating the divided signature data for the approval includes an approval interpolation coefficient generation unit for generating the division interpolation coefficient data based on the own terminal ID and the other terminal ID, and the division interpolation generated in the approval interpolation coefficient generation unit. Interpolation coefficient data transfer unit for creating intermediate interpolation coefficient data based on coefficient data and divided interpolation coefficient data from another terminal, intermediate interpolation coefficient data created in the interpolation coefficient data transfer unit, and intermediate interpolation coefficient data from another terminal An approvers public data calculation unit that creates split signature data based on
The means for creating the opposite divided signature data includes an opponent interpolation coefficient creating unit that creates divided interpolation coefficient data composed of the number of terminals that have a predetermined value by arithmetic processing, and an opponent interpolation coefficient creating unit. An interpolation coefficient data transfer unit that creates intermediate interpolation coefficient data based on the created divided interpolation coefficient data and the divided interpolation coefficient data from another terminal, and the intermediate interpolation coefficient data created in the interpolation coefficient data transfer unit and the other terminal The electronic voting system according to claim 1, further comprising: an opponent public data calculation unit that creates divided signature data based on the intermediate interpolation coefficient data.
ダミーデータを作成する手段は、演算処理により所定の値となる端末の個数分の数からなる中間ダミーデータを作成するダミーシード作成部と、ダミーシード作成部において作成された中間ダミーデータおよび他端末からの中間ダミーデータを基にダミーデータを作成するダミーデータ作成部とを有することを特徴とする請求項1乃至3のいずれかに記載の電子投票システム。   The means for creating dummy data includes a dummy seed creation unit that creates intermediate dummy data consisting of the number of terminals that have a predetermined value by an arithmetic process, the intermediate dummy data created by the dummy seed creation unit, and other terminals 4. The electronic voting system according to claim 1, further comprising: a dummy data creating unit that creates dummy data based on the intermediate dummy data from. 反対者補間係数作成部は掛け合わせると1となる端末の個数分の数からなる分割補間係数データを作成することを特徴とする請求項3記載の電子投票システム   4. The electronic voting system according to claim 3, wherein the opponent interpolation coefficient creating unit creates divided interpolation coefficient data composed of the number of terminals which are 1 when multiplied. ダミーシード作成部は、掛け合わせると1となる端末の個数分の数からなる中間ダミーデータを作成することを特徴とする請求項4記載の電子投票システム。   The electronic voting system according to claim 4, wherein the dummy seed creation unit creates intermediate dummy data composed of the number of terminals equal to 1 when multiplied. ダミーデータ作成部は、各端末から受け取った中間ダミーデータを掛け合わせてダミーデータを作成することを特徴とする請求項4記載の電子投票システム。   5. The electronic voting system according to claim 4, wherein the dummy data creation unit creates dummy data by multiplying the intermediate dummy data received from each terminal. 賛成者補間係数作成部は、自端末ID (i)と補間係数作成の依頼を送付してきた他端末ID(j)とを基に、
aji=i/(i-j)
を計算し、さらに、掛け合わせるとajiになるような端末の個数分の数ajim(1≦m≦n, i≠j)からなる分割補間係数データを作成することを特徴とする請求項3記載の電子投票システム。
Based on the own terminal ID (i) and the other terminal ID (j) that has sent the interpolation coefficient creation request,
aji = i / (ij)
4. The division interpolation coefficient data consisting of the number ajim (1 ≦ m ≦ n, i ≠ j) of the number of terminals which are calculated to be aji when multiplied is further created. Electronic voting system.
反対者補間係数作成部は、自端末ID (i)と補間係数作成の依頼を送付してきた他端末ID(j)とを基に、
a=1
として、掛け合わせると1になるような端末の個数分の数ajim(1≦m≦n)からなる分割補間係数データを作成することを特徴とする請求項3記載の電子投票システム。
The opponent interpolation coefficient creation unit, based on its own terminal ID (i) and the other terminal ID (j) that has sent the request for interpolation coefficient creation,
a = 1
4. The electronic voting system according to claim 3, wherein divided interpolation coefficient data consisting of ajim (1 ≦ m ≦ n) corresponding to the number of terminals that are multiplied by 1 is created.
補間係数データ転送部は、各端末からの分割補間係数データを掛け合わせて中間補間係数データを作成することを特徴とする請求項3記載の電子投票システム。   4. The electronic voting system according to claim 3, wherein the interpolation coefficient data transfer unit creates intermediate interpolation coefficient data by multiplying the divided interpolation coefficient data from each terminal. 賛成者公開データ計算部は、各端末からの中間補間係数データを掛け合わせて求めた値aiと、秘密情報si と、ダミーデータyiとを用いてMに(ai* si)を累乗するとともにダミーデータyiを掛け合わせる計算を実行し、分割署名データを作成することを特徴とする請求項3記載の電子投票システム。   The approver public data calculation unit uses the value ai obtained by multiplying the intermediate interpolation coefficient data from each terminal, the secret information si, and the dummy data yi to raise M to (ai * si) and increase the dummy 4. The electronic voting system according to claim 3, wherein a calculation for multiplying the data yi is executed to generate divided signature data. 電子投票の開始指令を受けて自端末のIDと、自端末のユーザが賛成か反対かを示す賛否フラグを取得するステップと、
自端末のIDを他端末へ送付する一方で、他端末からのIDを受け取るステップと、
中間ダミーデータを作成して他端末へ送付する一方で、他端末からの中間ダミーデータを受け取るステップと、
各端末からの中間ダミーデータを演算処理してダミーデータを作成するステップと、
前記ダミーデータを作成する処理と並行して、自端末のユーザが賛成の場合に賛成であることが反映された分割署名データを作成するための中間補間係数データを作成し、また、自端末のユーザが反対の場合に反対であることが反映された分割署名データを作成するための中間補間係数データを作成するステップと、
前記ダミーデータと前記中間補間係数データとを用いて分割署名データを作成するステップと、
各端末で作成された分割署名データから署名データを作成するステップと、
を有する電子投票方法。
Receiving an electronic voting start command, obtaining an ID of the own terminal, and a pros and cons flag indicating whether the user of the own terminal is in favor or against;
While receiving the ID of the own terminal to another terminal, receiving the ID from the other terminal;
Creating intermediate dummy data and sending it to other terminals, while receiving intermediate dummy data from other terminals;
Calculating intermediate dummy data from each terminal to create dummy data;
In parallel with the process of creating the dummy data, intermediate interpolation coefficient data for creating divided signature data reflecting that the user of the terminal is in favor is created, Creating intermediate interpolation coefficient data for creating split signature data reflecting the opposite when the user is opposite;
Creating split signature data using the dummy data and the intermediate interpolation coefficient data;
Creating signature data from the split signature data created on each device;
An electronic voting method.
JP2004124690A 2004-04-20 2004-04-20 System and method for electronic voting Pending JP2005311623A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004124690A JP2005311623A (en) 2004-04-20 2004-04-20 System and method for electronic voting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004124690A JP2005311623A (en) 2004-04-20 2004-04-20 System and method for electronic voting

Publications (1)

Publication Number Publication Date
JP2005311623A true JP2005311623A (en) 2005-11-04

Family

ID=35439895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004124690A Pending JP2005311623A (en) 2004-04-20 2004-04-20 System and method for electronic voting

Country Status (1)

Country Link
JP (1) JP2005311623A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111478775A (en) * 2020-06-22 2020-07-31 杭州趣链科技有限公司 Interactive aggregated signature method, equipment and storage medium
CN111788791A (en) * 2018-03-02 2020-10-16 区块链控股有限公司 Computer-implemented voting process and system
US12126733B2 (en) 2020-06-22 2024-10-22 Hangzhou Qulian Technology Co., Ltd. Interactive aggregate signature method, and device and storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111788791A (en) * 2018-03-02 2020-10-16 区块链控股有限公司 Computer-implemented voting process and system
JP2021515271A (en) * 2018-03-02 2021-06-17 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Computer-based voting process and system
JP7328237B2 (en) 2018-03-02 2023-08-16 エヌチェーン ライセンシング アーゲー Computer-implemented voting process and system
CN111478775A (en) * 2020-06-22 2020-07-31 杭州趣链科技有限公司 Interactive aggregated signature method, equipment and storage medium
US12126733B2 (en) 2020-06-22 2024-10-22 Hangzhou Qulian Technology Co., Ltd. Interactive aggregate signature method, and device and storage medium

Similar Documents

Publication Publication Date Title
Zhao et al. Machine learning based privacy-preserving fair data trading in big data market
Fang et al. Digital signature scheme for information non-repudiation in blockchain: a state of the art review
Zhao et al. Secure multi-party computation: theory, practice and applications
Huang et al. Blockchain-based multiple groups data sharing with anonymity and traceability
Huang et al. Cost-effective authentic and anonymous data sharing with forward security
EP3794766B1 (en) Computer-implemented systems and methods for using a blockchain to perform an atomic swap
Tso et al. Strongly secure certificateless short signatures
Hoens et al. A private and reliable recommendation system for social networks
CN111819817A (en) Method and system for block chain implementation for bilinear mapping accumulator-based authorization
Li et al. Secure, efficient, and weighted access control for cloud-assisted industrial IoT
Bilogrevic et al. Meetings through the cloud: privacy-preserving scheduling on mobile devices
WO2019198548A1 (en) Blockchain network and establishment method therefor
KR20030062401A (en) Apparatus and method for generating and verifying id-based blind signature by using bilinear parings
Zhu et al. Two novel semi-quantum-reflection protocols applied in connected vehicle systems with blockchain
Patil et al. A provably secure data sharing scheme for smart gas distribution grid using fog computing
CN115630713A (en) Longitudinal federated learning method, device and medium under condition of different sample identifiers
Yang et al. Publicly verifiable outsourced data migration scheme supporting efficient integrity checking
Yang et al. SFPM: A secure and fine-grained privacy-preserving matching protocol for mobile social networking
Wen et al. A new secret handshake scheme with multi-symptom intersection for mobile healthcare social networks
Wen et al. Provably secure authenticated key exchange protocols for low power computing clients
CN114172655A (en) Secure multi-party computing data system, method, equipment and data processing terminal
Wang et al. A universal designated multi verifiers content extraction signature scheme
Hong et al. Constructing conditional PKEET with verification mechanism for data privacy protection in intelligent systems
Alamati et al. Two-round adaptively secure MPC from isogenies, LPN, or CDH
Shi et al. A Novel Privacy-Preserving Multi-Attribute Reverse Auction Scheme with Bidder Anonymity Using Multi-Server Homomorphic Computation.