MIX−netと準同型性に基づいた電子投票システム
【課題】
従来のMIX−netに基づいた電子投票システムでは、投票装置の負担は軽いが、投票締切後に全投票者の投票を一度に集計する必要があるため、開票装置の負担が大きいという問題点がある。
従来の準同型性に基づいた電子投票システムでは、開票装置の負担は軽いが、投票の際にゼロ知識証明をする必要があるため、投票装置の負担が大きいという問題点がある。
【解決手段】
投票装置の組立暗号文作成指示暗号文作成手段で、ランダム置換と再暗号化の乱数リストを作成して、開票装置に送信する。
開票装置の組立暗号文作成手段で、投票装置から受信したランダム置換と再暗号化の乱数リストを用いて、組立暗号文を作成する。
従来のMIX−netに基づいた電子投票システムでは、投票装置の負担は軽いが、投票締切後に全投票者の投票を一度に集計する必要があるため、開票装置の負担が大きいという問題点がある。
従来の準同型性に基づいた電子投票システムでは、開票装置の負担は軽いが、投票の際にゼロ知識証明をする必要があるため、投票装置の負担が大きいという問題点がある。
【解決手段】
投票装置の組立暗号文作成指示暗号文作成手段で、ランダム置換と再暗号化の乱数リストを作成して、開票装置に送信する。
開票装置の組立暗号文作成手段で、投票装置から受信したランダム置換と再暗号化の乱数リストを用いて、組立暗号文を作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号技術のうち電子投票システムに関する発明である。
一般に、電子投票システムは、s台の開票装置Si(1≦i≦s)と投票装置Vによって構成される。
不正を行なう開票装置の台数をt以下として、s≧2t+1を満たすものとする。
v人の投票者Vj(1≦j≦v)が、投票装置Vへ下記の投票者Vjの選択肢Akに対する投票数n(j,k)を入力する。
【0002】
投票者が選択できる選択肢をa通りの選択肢Ak(1≦k≦a)とする。
投票者Vjの持ち票数をnjとする。
投票者Vjの選択肢Akに対する投票数をn(j,k)とする。
ただし、0≦n(j,k)≦nj、Σkn(j,k)=njを満たすものとする。
【0003】
投票には、持ち票数と持ち票数の分割の仕方に応じて、様々な投票形式がある。
例えば、単票投票形式、分割不可能な複数票投票形式、分割可能な複数票投票形式がある。
単票投票形式とは、各投票者の持ち票が一票である投票形式である。
すなわち、投票者Vjは、選択したaj番目の選択肢に一票を投票する。
すると、k=ajに対してn(j,k)=1、k≠ajに対してn(j,k)=0が成り立つ。
分割不可能な複数票投票形式とは、各投票者の持ち票が複数票であり、一つの選択肢に持ち票をすべて投票する投票形式である。
すなわち、投票者Vjは、選択したaj番目の選択肢に持ち票をすべて投票する。
すると、k=ajに対してn(j,k)=nj、k≠ajに対してn(j,k)=0が成り立つ。
分割可能な複数票投票形式とは、各投票者の持ち票が複数票であり、複数の選択肢に持ち票を分割して投票できる投票形式である。
すなわち、投票者Vjは、複数の選択肢にnj票を0≦n(j,k)≦nj、Σkn(j,k)=njを満たすようにn(j,1)票,...,n(j,a)票に分割して投票できる。
【0004】
投票締切後に、s台の開票装置が協力して、すべての選択肢Akに対して得票数Σjn(j,k)を求める。
【背景技術】
【0005】
従来の電子投票システムには、MIX−netに基づいた電子投票システムと準同型性に基づいた電子投票システムが知られている。
準同型性とMIX−netと記号の定義について説明した後に、従来の電子投票システムについて説明する。
【0006】
準同型性について説明する。
(Gasym,Easym,Dasym,PKasym,SKasym,Masym,Rasym,Casym)を確率的公開鍵暗号系とする。
Gasymは、セキュリティパラメータを入力とし、公開鍵PK∈PKasymと秘密鍵SK∈SKasymを出力する鍵生成アルゴリズムである。
Easymは、平文m∈Masymと乱数r∈Rasymを入力とし、公開鍵PKを用いて暗号文c=EasymPK(m,r)を出力する暗号化アルゴリズムである。
Dasymは、暗号文c∈Casymを入力とし、秘密鍵SKを用いて平文m=DasymSK(c)を出力する復号アルゴリズムである。
簡単のため、乱数rが重要でない場合は、確率的公開鍵暗号系の暗号化アルゴリズムの引数の乱数を省略する。
すなわち、c=EasymPK(m,r)の代わりにc=EasymPK(m)と記述する。
確率的公開鍵暗号系が準同型性を持つとは、任意の平文m1,m2に対して、EasymPK(m1)×EasymPK(m2)=EasymPK(m1+m2)が成立することである。
本発明の電子投票システムでは、任意の平文m1,m2と任意の乱数r1,r2に対して、EasymPK(m1,r1)×EasymPK(m2,r2)=EasymPK(m1+m2,r1+r2)が成立する、準同型性を持つ確率的公開鍵暗号系を使用する。
【0007】
MIX−netについて説明する。
準同型性を持つ確率的公開鍵暗号系に基づいたMIX−netとは、下記の手順からなる匿名通信路である。
ただし、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
最初に、複数の暗号文からなるリストが入力される。
次に、閾値台の開票装置が逐次に、リストに含まれる各暗号文を再暗号化EasymPK(m,r)×EasymPK(0,r’)=EasymPK(m,r+r’)して、リストに含まれる暗号文の順番をランダム置換して、再暗号化とランダム置換の処理の正当性をゼロ知識証明で示す。
最後に、複数台の開票装置が協力して、リストに含まれる各暗号文を閾値復号法を用いて復号して出力する。
閾値台以上の開票装置が結託しなければ、入力暗号文と出力復号文の対応関係が不明となるため、匿名通信路として機能する。
本発明の電子投票システムでは、複数の暗号文からなるリストに対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示すことが可能であり、秘密鍵が閾値法を用いて分散共有されることで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。(非特許文献1、非特許文献2参照)
上記の条件を満たす準同型性を持つ確率的公開鍵暗号系の例としては、変形ElGamal暗号EasymPK(m,r)=(gr,gmyr)がある。
変形ElGamal暗号の復号アルゴリズムのうち、ElGamal暗号の復号アルゴリズムで復号した値gmから平文mを求める部分には、落とし戸が存在しない。
そのため、変形ElGamal暗号の平文空間は、可能な限り狭くする必要がある。
【0008】
記号の定義について説明する。
nを総票数Σjnjとする。
Πxを{1,...,x}→{1,...,x}なる置換関数の集合とする。
||をビット列の結合演算子とする。
(Esym,Dsym,Ksym,Msym,Csym)を共通鍵暗号系とする。
Esymは、平文m∈Msymを入力とし、共通鍵K∈Ksymを用いて暗号文c=EsymK(m)を出力する暗号化アルゴリズムである。
Dsymは、暗号文c∈Csymを入力とし、共通鍵K∈Ksymを用いて平文m=DsymK(c)を出力する復号アルゴリズムである。
本発明の電子投票システムのうち分割可能な複数票投票形式の場合では、ある特殊な性質を持つ自然数の多重集合DivisibleMultiset(特許文献1参照)を使用する。
【0009】
MIX−netに基づいた電子投票システムについて説明する。
MIX−netに基づいた電子投票システムでは、複数の暗号文からなるリストに対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示すことが可能であり、秘密鍵が閾値法を用いて分散共有されることで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。
また、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
【0010】
まず最初に、単票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文EasymPK(aj)を開票装置へ送信する。
(ステップ2)
投票締切後に、s台の開票装置が協力して、受信した暗号文からなるリストをMIX−netを用いて復号する。
(ステップ3)
s台の開票装置が協力して、リストに含まれる各復号文がk(1≦k≦a)のいずれかであることを確認して、集計して得票数を求める。
本システムにおける、投票装置の計算量は各投票者毎にO(1)であり、投票締切後の開票装置の計算量はO(nt)である。
【0011】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順との差分は、下記の通りである。
(ステップ2)
投票締切前から、s台の開票装置が協力して、受信した暗号文EasymPK(aj)をnj個にコピーする。
投票締切後に、s台の開票装置が協力して、コピーされた暗号文からなるリストをMIX−netを用いて復号する。
本システムにおける、投票装置の計算量は各投票者毎にO(1)であり、投票締切後の開票装置の計算量はO(nt)である。
【0012】
最後に、分割可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順との差分は、下記の通りである。
(ステップ1)
投票装置Vが、すべての選択肢Akに対して、n(j,k)個の暗号文EasymPK(k)を開票装置へ送信する。
本システムにおける、投票装置の計算量は各投票者毎にO(nj)であり、投票締切後の開票装置の計算量はO(nt)である。
【0013】
準同型性に基づいた電子投票システムについて説明する。
準同型性に基づいた電子投票システムでは、暗号文が特定の複数の平文のいずれかを暗号化したものであることをゼロ知識証明で示すことが可能であり、秘密鍵を閾値法を用いて分散共有することで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。
また、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
また、暗号文が特定のx個の平文のいずれかを暗号化したものであることを示すゼロ知識証明を1−out−of−xPMP(PlaintextMembershipProof)と記述する。
1−out−of−xPMPの計算量と通信量は、xに比例する。
準同型性に基づいた電子投票システムには、開票装置が各選択肢毎に暗号文を準同型性を用いてまとめるSeparate−typeと、開票装置が全選択肢一緒に暗号文を準同型性を用いてまとめるCombined−typeがある。
Separate−typeでは、平文空間の大きさは総票数なので、変形ElGamal暗号を使用すれば良い。
しかし、Combined−typeでは、平文空間の大きさは総票数の選択肢数乗になるので、変形ElGamal暗号を使用すると復号の効率が悪いため、Paillier暗号を使用する。
単票投票形式の場合では、Separate−typeとCombined−typeの両方を説明するが、それ以降では、Separate−typeとCombined−typeのうち投票装置の計算量が最少の方を説明する。
【0014】
まず最初に、単票投票形式の場合について説明する。
単票投票形式の場合うちSeparate−typeの場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文e(j,k)=EasymPK(n(j,k))(1≦k≦a)を開票装置へ送信して、暗号文e(j,k)が0,1のいずれかを暗号化したものであることを1−out−of−2PMPを用いて開票装置に証明して、暗号文Πke(j,k)が1を暗号化したものであることをゼロ知識証明で開票装置に示す。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文e(j,k)を準同型性を用いて集計暗号文ek=Πje(j,k)にまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文ekを閾値復号法を用いて復号して得票数を求める。
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前の開票装置の計算量は各投票者毎にO(a)であり、投票締切後の開票装置の計算量はO(at)である。
【0015】
単票投票形式の場合うちCombined−typeの場合の投開票の手順は、下記の通りである。
ただし、Nを総票数nより大きい自然数とする。
(ステップ1)
投票装置Vが、暗号文ej=EasymPK(Nの(aj−1)乗)を開票装置へ送信して、暗号文ejがNの(k−1)乗(1≦k≦a)のいずれかを暗号化したものであることを1−out−of−aPMPを用いて開票装置に証明する。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文ejを準同型性を用いて集計暗号文e=Πjejにまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文eを閾値復号法を用いて復号して、復号文のN進数表現から得票数を求める。
復号文のN進数表現から得票数を求められるのは、次式が成立するからである。
e=ΠjEasymPK(Nの(aj−1)乗)
=EasymPK(ΣjNの(aj−1)乗)
=EasymPK(ΣjΣkn(j,k)Nの(k−1)乗)
=EasymPK(ΣkNの(k−1)乗(Σjn(j,k)))
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前の開票装置の計算量は各投票者毎にO(a)であり、投票締切後の開票装置の計算量はO(t)である。
【0016】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合うちCombined−typeの場合の投開票の手順との差分は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文ej=EasymPK(njNの(aj−1)乗)を開票装置へ送信して、暗号文ejがnjNの(k−1)乗(1≦k≦a)のいずれかを暗号化したものであることを1−out−of−aPMPを用いて開票装置に証明する。
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前のサーバの計算量は各投票者毎にO(a)であり、投票締切後のサーバの計算量はO(t)である。
【0017】
最後に、分割可能な複数票投票形式の場合について説明する。
分割可能な複数票投票形式の場合うちSeparate−typeの場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、投票者Vjの選択肢Akに対する投票数n(j,k)のB進数表現を(b(j,k,B[j]),...,b(j,k,0)),B[j]=floor(logBnj)とする。
ただし、floor(x)は実数x以下の最大の整数である。
投票装置Vが、暗号文e(j,k,z)=EasymPK(b(j,k,z))(1≦k≦a,0≦z≦B[j])を開票装置へ送信して、暗号文e(j,k,z)がb(0≦b≦B−1)のいずれかを暗号化したものであることを1−out−of−BPMPを用いて開票装置に証明して、暗号文ΠkΠze(j,k,z)の(Bのz乗)乗がnjを暗号化したものであることをゼロ知識証明で開票装置に示す。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文e(j,k,z)を準同型性を用いて集計暗号文ek=ΠjΠze(j,k,z)の(Bのz乗)乗にまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文ekを閾値復号法を用いて復号して得票数を求める。
復号文から得票数を求められるのは、次式が成立するからである。
ek=ΠjΠzEasymPK(b(j,k,z))の(Bのz乗)乗
=EasymPK(ΣjΣzb(j,k,z)Bのz乗)
=EasymPK(Σjn(j,k))
本方式における、投票装置の計算量は各投票者毎にO(a log nj)であり、投票締切前の開票装置の計算量は各投票者毎にO(a log nj)であり、投票締切後のサーバの計算量はO(at)である。
ちなみに、Bの値が3または4の時に、効率が良いことが知られている。
【非特許文献1】J.Groth、「A Verifiable Secret Shuffle of Homomorphic Encryptions」PKC2003、2003年、p.145−160
【非特許文献2】M.Abe、「Universally Verifiable Mix−net with Verification Work Independent of the Number of Mix−servers」EUROCRYPT’98、1998年、p.437−447
【特許文献1】特願2003−079904
【発明の開示】
【発明が解決しようとする課題】
【0018】
従来のMIX−netに基づいた電子投票システムでは、投票装置の負担は軽いが、投票締切後に全投票者の投票を一度に集計する必要があるため、開票装置の負担が大きいという問題点がある。
従来の準同型性に基づいた電子投票システムでは、開票装置の負担は軽いが、投票の際にゼロ知識証明をする必要があるため、投票装置の負担が大きいという問題点がある。
本発明は、投票締切後の開票装置の負担を従来の準同型性に基づいた電子投票システムと同程度に抑えたまま、投票装置の負担を少なくできる公開検証可能な電子投票システムを実現し、上記の問題点を解決することを目的とする。
【課題を解決するための手段】
【0019】
準同型性に基づいた電子投票システムのうち単票投票形式のSeparate−typeの場合では、ステップ1において投票装置はa個の暗号文の作成およびa回の1−out−of−2PMPの実行をしなければならず、選択肢の数aが大きい場合には効率的でない。
そこで、本発明では、暗号化されるa個の平文リストは(1,0,...,0)の置換であることに注目し、a個の暗号文の作成を開票装置に任せることで、投票装置の計算量を削減する。
a個の暗号文の作成は、投票内容の秘匿のためにMIX−netと同様に、閾値台の開票装置が逐次に再暗号化とランダム置換を繰り返して行なう。
投票装置は、投票内容がMIX−netから出力されるように、各開票装置に対して再暗号化に使用する乱数およびランダム置換を指定する。
また、各開票装置が再暗号化とランダム置換を指定した通りに実行したことを、任意の第三者が検証できるための情報もあらかじめ送信しておく。
また、開票装置が再暗号化とランダム置換を指定した通りに実行しなかった場合に、複数台の開票装置が協力して再暗号化とランダム置換を行なえるように、再暗号化に使用する乱数およびランダム置換を閾値復号法を用いて復号できるように送信しておく。
【発明の効果】
【0020】
本発明の電子投票システムの計算量の評価を行ない、従来の電子投票システムの計算量と比較する。
ただし、準同型性を持つ確率的公開鍵暗号系として変形ElGamal暗号の使用を想定し、計算量はべき乗計算の回数のオーダーで見積もる。
単票投票形式および分割不可能な複数票投票形式の場合について評価する。
本発明の電子投票システムにおける、投票装置の計算量は各投票者毎にO(t)であり、投票締切前の開票装置の計算量は各投票者毎にO(at)であり、投票締切後の開票装置の計算量はO(at)である。
投票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(1)であり、本発明の方が多い。
準同型性に基づいた電子投票システムではO(a)であり、
一般に選択肢の数aは不正を行なう開票装置の台数tより大きいので、本発明の方が少ない。
投票締切後の開票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nt)であり、
一般に総票数nは選択肢の数aより遥かに大きいので、本発明の方が非常に少ない。
準同型性に基づいた電子投票システムではO(t)であり、本発明の方が多い。
分割可能な複数票投票形式の場合について評価する。
本発明の電子投票システムにおける、投票装置の計算量は各投票者毎にO(t)であり、投票締切前の開票装置の計算量は各投票者毎にO((aの2乗 log nj)t)であり、投票締切後の開票装置の計算量はO(at)である。
投票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nj)であり、
準同型性に基づいた電子投票システムではO(a log nj)である。
一般に選択肢の数aおよび各投票者の持ち票数njは不正を行なう開票装置の台数tより大きいので、本発明の方が少ない。
投票締切後の開票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nt)であり、
一般に総票数nは選択肢の数aより遥かに大きいので、本発明の方が非常に少ない。
準同型性に基づいた電子投票システムではO(at)であり、本発明と同じである。
したがって、本発明により、投票締切後の開票装置の負担を従来の準同型性に基づいた電子投票システムと同程度に抑えたまま、投票装置の負担を少なくできる公開検証可能な電子投票システムを実現できる。
【発明を実施するための最良の形態】
【0021】
本発明の構成について図面を参照しながら説明する。
図1は、本発明の電子投票システムの一構成例を示した図である。
図1において、本発明の電子投票システムは、投票装置1と複数台の開票装置2から構成される。
投票装置1の代わりに、投票装置Vと記述する場合がある。
複数台の開票装置2の代わりに、s台の開票装置Si(1≦i≦s)と記述する場合がある。
投票装置1は、投票内容入力手段3と組立暗号文作成指示暗号文作成手段4から構成される。
複数台の開票装置2は、初期暗号文作成手段5と組立暗号文作成手段6と組立暗号文集計手段7と集計暗号文記憶手段8と復号手段9から構成される。
【0022】
本発明の動作について図面を参照しながら説明する。
まず最初に、単票投票形式の場合について説明する。
投票形式によって本発明の動作が異なる部分は、投票内容入力手段3と初期暗号文作成手段5の部分である。
【0023】
まず最初に、本発明の動作の実行以前の状態を説明する。
s台の開票装置Si(1≦i≦s)が秘密鍵SKを(t+1,s)−閾値法を用いて分散共有している確率的公開鍵暗号系の公開鍵をPK、乱数空間をRとする。
ただし、s≧2t+1を満たすものとする。
1≦i≦t+1に対して、開票装置Siが秘密鍵SK[i]を所有している確率的公開鍵暗号系の公開鍵をPK[i]、乱数空間をR[i]とする。
投票装置Vが、選択肢の数aと投票者Vjの持ち票数njとPKとRとPK[i]とR[i](1≦i≦t+1)を所有している。
s台の開票装置Si(1≦i≦s)が、選択肢の数aと投票者Vjの持ち票数njを所有している。
集計暗号文記憶手段8に、集計暗号文ek←EasymPK(0)(1≦k≦a)が記憶さている。
投票者Vjが、識別子jと選択肢の数aを所有している。
投票者Vjは、選択したaj番目の選択肢に一票を投票するものとする。
ただし、1≦aj≦aを満たすものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(選択肢の番号aj)を入力する。
【0024】
次に、本発明の動作の概要を説明する。
投票内容入力手段3と組立暗号文作成指示暗号文作成手段4と初期暗号文作成手段5と組立暗号文作成手段6については、後で詳細を説明する。
組立暗号文集計手段7と集計暗号文記憶手段8と復号手段9については、準同型性に基づいた電子投票システムと同様である。
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
組立暗号文作成指示暗号文作成手段4が、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を入力として、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を出力する。
投票装置1が、複数台の開票装置2へ識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を送信する。
複数台の開票装置2が、投票装置1から識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を受信する。
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
組立暗号文作成手段6が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を入力として、組立暗号文e(j,k)(1≦k≦a)を出力する。ただし、組立暗号文e(j,k)は、投票者Vjの選択肢Akに対する投票数の暗号文になっている。
組立暗号文集計手段7が、組立暗号文e(j,k)(1≦k≦a)を入力として、集計暗号文記憶手段8から集計暗号文ek(1≦k≦a)を読み出して、ek←eke(j,k)(1≦k≦a)を計算することで組立暗号文e(j,k)を準同型性を用いて集計暗号文ekにまとめて、集計暗号文記憶手段8へ集計暗号文ek(1≦k≦a)を書き込む。ただし、集計暗号文ekは、選択肢Akの得票数の暗号文になっている。
上記の組立暗号文集計手段7の動作までは、投票者が投票を行なう度に実行される。
下記の復号手段9の動作は、投票締切後に実行される。
復号手段9が、集計暗号文記憶手段8から集計暗号文ek(1≦k≦a)を読み出して、集計暗号文ek(1≦k≦a)を閾値復号法を用いて復号して集計平文pkを生成して、集計平文pk(1≦k≦a)を出力する。ただし、集計平文pkは、選択肢Akの得票数になっている。
【0025】
最後に、本発明の動作の詳細を説明する。
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
x←aとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばN(0,z)←1、z≠1ならばN(0,z)←0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。1≦z≦xに対して、z=ajならばN(t+1,z)←1、z≠ajならばN(t+1,z)←0とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0026】
組立暗号文作成指示暗号文作成手段4が、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を入力として、下記の手順により組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を出力する。
図2は、組立暗号文作成指示暗号文作成手段4による組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)の生成の流れを示した図である。
ただし、組立暗号文作成指示暗号文作成手段4には、乱数生成部があるものとする。
(ステップ1)
i←1とする。
(ステップ2)
i≠t+1ならば、乱数生成部でリストの置換πi∈Πxをランダムに生成する。
i=t+1ならば、リストの置換πt+1∈ΠxをLNt+1=πt+1・・・π1LN0を満たすように生成する。
(ステップ3)
乱数生成部でx個の要素からなるリストLR’i=(R’(i,1),...,R’(i,x))∈Rxをランダムに生成する。
(ステップ4)
乱数生成部で共通鍵K[i]∈Ksymをランダムに生成する。
(ステップ5)
組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,3)を下記の通り生成する。
e(j,i,1)←EasymPK(K[i])
e(j,i,2)←EasymPK[i](K[i])
e(j,i,3)←EsymK[i](πi||LR’i)
(ステップ6)
LNi←πiLNi−1とする。
ただし、LNi=(N(i,1),...,N(i,x))とする。
(ステップ7)
LRi←πi(R(i−1,1)+R’(i,1),...,R(i−1,x)+R’(i,x))とする。
ただし、LRi=(R(i,1),...,R(i,x))とする。
(ステップ8)
乱数生成部でx個の要素からなるリストLR”i=(R”(i,1),...,R”(i,x))∈Z|R|xをランダムに生成する。
ただし、Z|R|は集合{0,1,...,|R|−1}である。
(ステップ9)
乱数生成部で共通鍵K’[i]∈Ksymをランダムに生成する。
(ステップ10)
組立暗号文作成指示暗号文e(j,i,4),...,e(j,i,6)を下記の通り生成する。
e(j,i,4)←EasymPK(K’[i])
e(j,i,5)←EsymK’[i](LR”i)
e(j,i,6)←EasymPK(Σ1≦z≦xN(i,z)R”(i,z),Σ1≦z≦xR(i,z)R”(i,z))
(ステップ11)
i≠t+1ならば、i←i+1として、ステップ2へ戻る。
【0027】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
x←aとする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばE(0,z)←EasymPK(1,0)、z≠1ならばN(0,z)←EasymPK(0,0)とする。
【0028】
組立暗号文作成手段6が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を入力として、下記の手順により組立暗号文e(j,k)(1≦k≦a)を生成して、組立暗号文e(j,k)(1≦k≦a)を出力する。ただし、組立暗号文e(j,k)は、投票者Vjの選択肢Akに対する投票数の暗号文になっている。
図3は、組立暗号文作成手段6による組立暗号文e(j,k)(1≦k≦a)の生成の流れを示した図である。
ただし、組立暗号文作成手段6のうちステップ2とステップ3とステップ4と閾値復号法以外の手順では、s台の開票装置Si(1≦i≦s)のうち任意の一台の開票装置が、手順を実行して他の開票装置に実行結果を通知するものとする。
(ステップ1)
i←1とする。
y←x/aとする。
(ステップ2)
開票装置Siが、下記の手順によりπiとLR’iを生成する。
ただし、開票装置Siは、他の開票装置にπiとLR’iを通知しない。
K[i]←DasymPK[i](e(j,i,2))
πi||LR’i←DsymK[i](e(j,i,3))
(ステップ3)
開票装置Siが、下記の手順によりLEiを生成する。
ただし、開票装置Siは、他の開票装置にLEiを通知する。
LEi←πi(E(i−1,1)EasymPK(0,R’(i,1)),...,E(i−1,x)EasymPK(0,R’(i,x)))
ただし、LEi=(E(i,1),...,E(i,x))とする。
(ステップ4)
開票装置Siが、ステップ3におけるリストLEi−1に対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示す。
ゼロ知識証明がrejectされたならば、ステップ7へ進む。
(ステップ5)
K’[i]←s台の開票装置が協力してe(j,i,4)を閾値復号法を用いて復号する。
LR”i←DsymK’[i](e(j,i,5))とする。
(ステップ6)
次式を満たすならば、ステップ9へ進む
Π1≦z≦x(E(i,z)のR”(i,z)乗)= e(j,i,6)
(ステップ7)
K[i]←s台の開票装置が協力してe(j,i,1)を閾値復号法を用いて復号する。
πi||LR’i←DsymK[i]e(j,i,3)とする。
(ステップ8)
LEi←πi(E(i−1,1)EasymPK(0,R’(i,1)),...,E(i−1,x)EasymPK(0,R’(i,x)))とする。
(ステップ9)
i≠t+1ならば、i←i+1として、ステップ2へ戻る。
(ステップ10)
1≦k≦aに対して、e(j,k)←Π(k−1)y+1≦z≦kyE(t+1,z)とする。
【実施例1】
【0029】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投票内容入力手段3と初期暗号文作成手段5を下記のように置き換えれば、本発明の電子投票システムで、分割不可能な複数票投票形式も実現できる。
投票者Vjが、識別子jと選択肢の数aと持ち票数njを所有している。
投票者Vjは、選択したaj番目の選択肢にnj票を投票するものとする。
ただし、1≦aj≦aを満たすものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(選択肢の番号aj)を入力する。
【0030】
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
x←aとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばN(0,z)←nj、z≠1ならばN(0,z)←0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。1≦z≦xに対して、z=ajならばN(t+1,z)←nj、z≠ajならばN(t+1,z)←0とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0031】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
x←aとする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばE(0,z)←EasymPK(nj,0)、z≠1ならばN(0,z)←EasymPK(0,0)とする。
【実施例2】
【0032】
次に、分割可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投票内容入力手段3と初期暗号文作成手段5を下記のように置き換えれば、本発明の電子投票システムで、分割可能な複数票投票形式も実現できる。
投票者Vjが、識別子jと選択肢の数aと持ち票数njを所有している。
投票者Vjは、複数の選択肢にnj票を0≦n(j,k)≦nj、Σkn(j,k)=njを満たすようにn(j,1)票,...,n(j,a)票に分割して投票するものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(投票者Vjの選択肢Akに対する投票数n(j,k)(1≦k≦a))を入力する。
【0033】
投票内容入力手段3が、識別子jと投票者Vjの選択肢Akに対する投票数n(j,k)(1≦k≦a)を入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
X←(a,nj)−DivisibleMultisetとする。
x←a#Xとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。Xの要素を昇順に並べたリストに、x−#X個の要素からなるリスト(0,...,0)を結合したリストを、LN0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。
非負の整数の組(n(j,1),...,n(j,a))に対して、∪1≦k≦aX[k]=Xかつ全てのk(1≦k≦a)に対してΣN∈X[k]N=n(j,k)を満たす自然数の多重集合X[1],...,X[a]⊆Xを生成する。
#X個の要素からなるリストLN(t+1,k)(1≦k≦a)を、X[k]の要素を並べたリストと#X−#X[k]個の要素からなるリスト(0,...,0)を結合したリストとする。
リストLNt+1を、LN(t+1,1),...,LN(t+1,a)の結合とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0034】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
X←(a,nj)−DivisibleMultisetとする。
x←a#Xとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。Xの要素を昇順に並べたリストに、x−#X個の要素からなるリスト(0,...,0)を結合したリストを、LN0とする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、E(0,z)←EasymPK(N(0,z),0)とする。
【0035】
例えば、選択肢の数a=3,持ち票数nj=10の場合、(3,10)−DivisibleMultisetは、X={1,1,2,2,4}である。
これより、x=15となる。
Vjが3通りの選択肢にそれぞれ3,5,2票ずつ投票するとき、X[1]={1,2},X[2]={1,4},X[3]={2}となる。
したがって、LN0=(1,1,2,2,4,0,0,0,0,0,0,0,0,0,0),
LNt+1=(1,2,0,0,0,1,4,0,0,0,2,0,0,0,0)である。
【実施例3】
【0036】
組立暗号文作成手段6のうちステップ2以外の実行結果を公開掲示板に書き込む等して公開すれば、本発明の電子投票システムは公開検証可能となる。
また、MIX−netに基づいた電子投票システムでは、他の投票者が投票して送信された暗号文を参考に、
他の投票者の投票内容と関係のある投票内容の暗号文を作成して投票するという、不正を防止しなければならない。
提案方式についても同様の不正が考えられるが、使用する暗号系にnon−malleableな性質を持たせることなどで、不正を防止できる。
本発明では特に、再暗号化とランダム置換の検証のための情報であるリストLR”iの暗号化の際に、non−malleableな性質を持つ共通鍵暗号系を使用することで、効率的に不正を防止できると考えられる。
【実施例4】
【0037】
(PRG,SP,SEEDSP)を擬似乱数生成系とする。
PRGは、空間SPとシードSEED∈SEEDSPを入力とし、空間SPの擬似乱数を出力する擬似乱数生成アルゴリズムである。
組立暗号文作成指示暗号文作成手段4で、乱数生成部でLR’i,LR”iを生成する代わりに、乱数生成部でSEED’i∈SEEDSP,SEED”i∈SEEDSPを生成して、LR’i←PRG(Rx,SEED’i),LR”i←PRG(Z|R|x,SEED”i)とする。
そして、LR’i,LR”iを暗号化して送信する代わりに、SEED’i,SEED”iを暗号化して送信すれば、通信量を削減できる。
組立暗号文作成手段6で、SEED’i,SEED”iを復号して、LR’i←PRG(Rx,SEED’i),LR”i←PRG(Z|R|x,SEED”i)とする。
【図面の簡単な説明】
【0038】
【図1】本発明の電子投票システムの一構成例を示した図である。
【図2】組立暗号文作成指示暗号文作成手段4による組立暗号文作成指示暗号文の生成の流れを示した図である。
【図3】組立暗号文作成手段6による組立暗号文の生成の流れを示した図である。
【符号の説明】
【0039】
1 投票装置
2 複数台の開票装置
3 投票内容入力手段
4 組立暗号文作成指示暗号文作成手段
5 初期暗号文作成手段
6 組立暗号文作成手段
7 組立暗号文集計手段
8 集計暗号文記憶手段
9 復号手段
【技術分野】
【0001】
本発明は、暗号技術のうち電子投票システムに関する発明である。
一般に、電子投票システムは、s台の開票装置Si(1≦i≦s)と投票装置Vによって構成される。
不正を行なう開票装置の台数をt以下として、s≧2t+1を満たすものとする。
v人の投票者Vj(1≦j≦v)が、投票装置Vへ下記の投票者Vjの選択肢Akに対する投票数n(j,k)を入力する。
【0002】
投票者が選択できる選択肢をa通りの選択肢Ak(1≦k≦a)とする。
投票者Vjの持ち票数をnjとする。
投票者Vjの選択肢Akに対する投票数をn(j,k)とする。
ただし、0≦n(j,k)≦nj、Σkn(j,k)=njを満たすものとする。
【0003】
投票には、持ち票数と持ち票数の分割の仕方に応じて、様々な投票形式がある。
例えば、単票投票形式、分割不可能な複数票投票形式、分割可能な複数票投票形式がある。
単票投票形式とは、各投票者の持ち票が一票である投票形式である。
すなわち、投票者Vjは、選択したaj番目の選択肢に一票を投票する。
すると、k=ajに対してn(j,k)=1、k≠ajに対してn(j,k)=0が成り立つ。
分割不可能な複数票投票形式とは、各投票者の持ち票が複数票であり、一つの選択肢に持ち票をすべて投票する投票形式である。
すなわち、投票者Vjは、選択したaj番目の選択肢に持ち票をすべて投票する。
すると、k=ajに対してn(j,k)=nj、k≠ajに対してn(j,k)=0が成り立つ。
分割可能な複数票投票形式とは、各投票者の持ち票が複数票であり、複数の選択肢に持ち票を分割して投票できる投票形式である。
すなわち、投票者Vjは、複数の選択肢にnj票を0≦n(j,k)≦nj、Σkn(j,k)=njを満たすようにn(j,1)票,...,n(j,a)票に分割して投票できる。
【0004】
投票締切後に、s台の開票装置が協力して、すべての選択肢Akに対して得票数Σjn(j,k)を求める。
【背景技術】
【0005】
従来の電子投票システムには、MIX−netに基づいた電子投票システムと準同型性に基づいた電子投票システムが知られている。
準同型性とMIX−netと記号の定義について説明した後に、従来の電子投票システムについて説明する。
【0006】
準同型性について説明する。
(Gasym,Easym,Dasym,PKasym,SKasym,Masym,Rasym,Casym)を確率的公開鍵暗号系とする。
Gasymは、セキュリティパラメータを入力とし、公開鍵PK∈PKasymと秘密鍵SK∈SKasymを出力する鍵生成アルゴリズムである。
Easymは、平文m∈Masymと乱数r∈Rasymを入力とし、公開鍵PKを用いて暗号文c=EasymPK(m,r)を出力する暗号化アルゴリズムである。
Dasymは、暗号文c∈Casymを入力とし、秘密鍵SKを用いて平文m=DasymSK(c)を出力する復号アルゴリズムである。
簡単のため、乱数rが重要でない場合は、確率的公開鍵暗号系の暗号化アルゴリズムの引数の乱数を省略する。
すなわち、c=EasymPK(m,r)の代わりにc=EasymPK(m)と記述する。
確率的公開鍵暗号系が準同型性を持つとは、任意の平文m1,m2に対して、EasymPK(m1)×EasymPK(m2)=EasymPK(m1+m2)が成立することである。
本発明の電子投票システムでは、任意の平文m1,m2と任意の乱数r1,r2に対して、EasymPK(m1,r1)×EasymPK(m2,r2)=EasymPK(m1+m2,r1+r2)が成立する、準同型性を持つ確率的公開鍵暗号系を使用する。
【0007】
MIX−netについて説明する。
準同型性を持つ確率的公開鍵暗号系に基づいたMIX−netとは、下記の手順からなる匿名通信路である。
ただし、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
最初に、複数の暗号文からなるリストが入力される。
次に、閾値台の開票装置が逐次に、リストに含まれる各暗号文を再暗号化EasymPK(m,r)×EasymPK(0,r’)=EasymPK(m,r+r’)して、リストに含まれる暗号文の順番をランダム置換して、再暗号化とランダム置換の処理の正当性をゼロ知識証明で示す。
最後に、複数台の開票装置が協力して、リストに含まれる各暗号文を閾値復号法を用いて復号して出力する。
閾値台以上の開票装置が結託しなければ、入力暗号文と出力復号文の対応関係が不明となるため、匿名通信路として機能する。
本発明の電子投票システムでは、複数の暗号文からなるリストに対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示すことが可能であり、秘密鍵が閾値法を用いて分散共有されることで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。(非特許文献1、非特許文献2参照)
上記の条件を満たす準同型性を持つ確率的公開鍵暗号系の例としては、変形ElGamal暗号EasymPK(m,r)=(gr,gmyr)がある。
変形ElGamal暗号の復号アルゴリズムのうち、ElGamal暗号の復号アルゴリズムで復号した値gmから平文mを求める部分には、落とし戸が存在しない。
そのため、変形ElGamal暗号の平文空間は、可能な限り狭くする必要がある。
【0008】
記号の定義について説明する。
nを総票数Σjnjとする。
Πxを{1,...,x}→{1,...,x}なる置換関数の集合とする。
||をビット列の結合演算子とする。
(Esym,Dsym,Ksym,Msym,Csym)を共通鍵暗号系とする。
Esymは、平文m∈Msymを入力とし、共通鍵K∈Ksymを用いて暗号文c=EsymK(m)を出力する暗号化アルゴリズムである。
Dsymは、暗号文c∈Csymを入力とし、共通鍵K∈Ksymを用いて平文m=DsymK(c)を出力する復号アルゴリズムである。
本発明の電子投票システムのうち分割可能な複数票投票形式の場合では、ある特殊な性質を持つ自然数の多重集合DivisibleMultiset(特許文献1参照)を使用する。
【0009】
MIX−netに基づいた電子投票システムについて説明する。
MIX−netに基づいた電子投票システムでは、複数の暗号文からなるリストに対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示すことが可能であり、秘密鍵が閾値法を用いて分散共有されることで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。
また、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
【0010】
まず最初に、単票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文EasymPK(aj)を開票装置へ送信する。
(ステップ2)
投票締切後に、s台の開票装置が協力して、受信した暗号文からなるリストをMIX−netを用いて復号する。
(ステップ3)
s台の開票装置が協力して、リストに含まれる各復号文がk(1≦k≦a)のいずれかであることを確認して、集計して得票数を求める。
本システムにおける、投票装置の計算量は各投票者毎にO(1)であり、投票締切後の開票装置の計算量はO(nt)である。
【0011】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順との差分は、下記の通りである。
(ステップ2)
投票締切前から、s台の開票装置が協力して、受信した暗号文EasymPK(aj)をnj個にコピーする。
投票締切後に、s台の開票装置が協力して、コピーされた暗号文からなるリストをMIX−netを用いて復号する。
本システムにおける、投票装置の計算量は各投票者毎にO(1)であり、投票締切後の開票装置の計算量はO(nt)である。
【0012】
最後に、分割可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投開票の手順との差分は、下記の通りである。
(ステップ1)
投票装置Vが、すべての選択肢Akに対して、n(j,k)個の暗号文EasymPK(k)を開票装置へ送信する。
本システムにおける、投票装置の計算量は各投票者毎にO(nj)であり、投票締切後の開票装置の計算量はO(nt)である。
【0013】
準同型性に基づいた電子投票システムについて説明する。
準同型性に基づいた電子投票システムでは、暗号文が特定の複数の平文のいずれかを暗号化したものであることをゼロ知識証明で示すことが可能であり、秘密鍵を閾値法を用いて分散共有することで閾値復号法を用いて復号することが可能である、準同型性を持つ確率的公開鍵暗号系を使用する。
また、複数台の開票装置によって、秘密鍵が閾値法を用いて分散共有されているものとする。
また、暗号文が特定のx個の平文のいずれかを暗号化したものであることを示すゼロ知識証明を1−out−of−xPMP(PlaintextMembershipProof)と記述する。
1−out−of−xPMPの計算量と通信量は、xに比例する。
準同型性に基づいた電子投票システムには、開票装置が各選択肢毎に暗号文を準同型性を用いてまとめるSeparate−typeと、開票装置が全選択肢一緒に暗号文を準同型性を用いてまとめるCombined−typeがある。
Separate−typeでは、平文空間の大きさは総票数なので、変形ElGamal暗号を使用すれば良い。
しかし、Combined−typeでは、平文空間の大きさは総票数の選択肢数乗になるので、変形ElGamal暗号を使用すると復号の効率が悪いため、Paillier暗号を使用する。
単票投票形式の場合では、Separate−typeとCombined−typeの両方を説明するが、それ以降では、Separate−typeとCombined−typeのうち投票装置の計算量が最少の方を説明する。
【0014】
まず最初に、単票投票形式の場合について説明する。
単票投票形式の場合うちSeparate−typeの場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文e(j,k)=EasymPK(n(j,k))(1≦k≦a)を開票装置へ送信して、暗号文e(j,k)が0,1のいずれかを暗号化したものであることを1−out−of−2PMPを用いて開票装置に証明して、暗号文Πke(j,k)が1を暗号化したものであることをゼロ知識証明で開票装置に示す。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文e(j,k)を準同型性を用いて集計暗号文ek=Πje(j,k)にまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文ekを閾値復号法を用いて復号して得票数を求める。
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前の開票装置の計算量は各投票者毎にO(a)であり、投票締切後の開票装置の計算量はO(at)である。
【0015】
単票投票形式の場合うちCombined−typeの場合の投開票の手順は、下記の通りである。
ただし、Nを総票数nより大きい自然数とする。
(ステップ1)
投票装置Vが、暗号文ej=EasymPK(Nの(aj−1)乗)を開票装置へ送信して、暗号文ejがNの(k−1)乗(1≦k≦a)のいずれかを暗号化したものであることを1−out−of−aPMPを用いて開票装置に証明する。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文ejを準同型性を用いて集計暗号文e=Πjejにまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文eを閾値復号法を用いて復号して、復号文のN進数表現から得票数を求める。
復号文のN進数表現から得票数を求められるのは、次式が成立するからである。
e=ΠjEasymPK(Nの(aj−1)乗)
=EasymPK(ΣjNの(aj−1)乗)
=EasymPK(ΣjΣkn(j,k)Nの(k−1)乗)
=EasymPK(ΣkNの(k−1)乗(Σjn(j,k)))
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前の開票装置の計算量は各投票者毎にO(a)であり、投票締切後の開票装置の計算量はO(t)である。
【0016】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合うちCombined−typeの場合の投開票の手順との差分は、下記の通りである。
(ステップ1)
投票装置Vが、暗号文ej=EasymPK(njNの(aj−1)乗)を開票装置へ送信して、暗号文ejがnjNの(k−1)乗(1≦k≦a)のいずれかを暗号化したものであることを1−out−of−aPMPを用いて開票装置に証明する。
本方式における、投票装置の計算量は各投票者毎にO(a)であり、投票締切前のサーバの計算量は各投票者毎にO(a)であり、投票締切後のサーバの計算量はO(t)である。
【0017】
最後に、分割可能な複数票投票形式の場合について説明する。
分割可能な複数票投票形式の場合うちSeparate−typeの場合の投開票の手順は、下記の通りである。
(ステップ1)
投票装置Vが、投票者Vjの選択肢Akに対する投票数n(j,k)のB進数表現を(b(j,k,B[j]),...,b(j,k,0)),B[j]=floor(logBnj)とする。
ただし、floor(x)は実数x以下の最大の整数である。
投票装置Vが、暗号文e(j,k,z)=EasymPK(b(j,k,z))(1≦k≦a,0≦z≦B[j])を開票装置へ送信して、暗号文e(j,k,z)がb(0≦b≦B−1)のいずれかを暗号化したものであることを1−out−of−BPMPを用いて開票装置に証明して、暗号文ΠkΠze(j,k,z)の(Bのz乗)乗がnjを暗号化したものであることをゼロ知識証明で開票装置に示す。
(ステップ2)
投票締切前から、複数台の開票装置が協力して、暗号文e(j,k,z)を準同型性を用いて集計暗号文ek=ΠjΠze(j,k,z)の(Bのz乗)乗にまとめる。
(ステップ3)
投票締切後に、複数台の開票装置が協力して、集計暗号文ekを閾値復号法を用いて復号して得票数を求める。
復号文から得票数を求められるのは、次式が成立するからである。
ek=ΠjΠzEasymPK(b(j,k,z))の(Bのz乗)乗
=EasymPK(ΣjΣzb(j,k,z)Bのz乗)
=EasymPK(Σjn(j,k))
本方式における、投票装置の計算量は各投票者毎にO(a log nj)であり、投票締切前の開票装置の計算量は各投票者毎にO(a log nj)であり、投票締切後のサーバの計算量はO(at)である。
ちなみに、Bの値が3または4の時に、効率が良いことが知られている。
【非特許文献1】J.Groth、「A Verifiable Secret Shuffle of Homomorphic Encryptions」PKC2003、2003年、p.145−160
【非特許文献2】M.Abe、「Universally Verifiable Mix−net with Verification Work Independent of the Number of Mix−servers」EUROCRYPT’98、1998年、p.437−447
【特許文献1】特願2003−079904
【発明の開示】
【発明が解決しようとする課題】
【0018】
従来のMIX−netに基づいた電子投票システムでは、投票装置の負担は軽いが、投票締切後に全投票者の投票を一度に集計する必要があるため、開票装置の負担が大きいという問題点がある。
従来の準同型性に基づいた電子投票システムでは、開票装置の負担は軽いが、投票の際にゼロ知識証明をする必要があるため、投票装置の負担が大きいという問題点がある。
本発明は、投票締切後の開票装置の負担を従来の準同型性に基づいた電子投票システムと同程度に抑えたまま、投票装置の負担を少なくできる公開検証可能な電子投票システムを実現し、上記の問題点を解決することを目的とする。
【課題を解決するための手段】
【0019】
準同型性に基づいた電子投票システムのうち単票投票形式のSeparate−typeの場合では、ステップ1において投票装置はa個の暗号文の作成およびa回の1−out−of−2PMPの実行をしなければならず、選択肢の数aが大きい場合には効率的でない。
そこで、本発明では、暗号化されるa個の平文リストは(1,0,...,0)の置換であることに注目し、a個の暗号文の作成を開票装置に任せることで、投票装置の計算量を削減する。
a個の暗号文の作成は、投票内容の秘匿のためにMIX−netと同様に、閾値台の開票装置が逐次に再暗号化とランダム置換を繰り返して行なう。
投票装置は、投票内容がMIX−netから出力されるように、各開票装置に対して再暗号化に使用する乱数およびランダム置換を指定する。
また、各開票装置が再暗号化とランダム置換を指定した通りに実行したことを、任意の第三者が検証できるための情報もあらかじめ送信しておく。
また、開票装置が再暗号化とランダム置換を指定した通りに実行しなかった場合に、複数台の開票装置が協力して再暗号化とランダム置換を行なえるように、再暗号化に使用する乱数およびランダム置換を閾値復号法を用いて復号できるように送信しておく。
【発明の効果】
【0020】
本発明の電子投票システムの計算量の評価を行ない、従来の電子投票システムの計算量と比較する。
ただし、準同型性を持つ確率的公開鍵暗号系として変形ElGamal暗号の使用を想定し、計算量はべき乗計算の回数のオーダーで見積もる。
単票投票形式および分割不可能な複数票投票形式の場合について評価する。
本発明の電子投票システムにおける、投票装置の計算量は各投票者毎にO(t)であり、投票締切前の開票装置の計算量は各投票者毎にO(at)であり、投票締切後の開票装置の計算量はO(at)である。
投票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(1)であり、本発明の方が多い。
準同型性に基づいた電子投票システムではO(a)であり、
一般に選択肢の数aは不正を行なう開票装置の台数tより大きいので、本発明の方が少ない。
投票締切後の開票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nt)であり、
一般に総票数nは選択肢の数aより遥かに大きいので、本発明の方が非常に少ない。
準同型性に基づいた電子投票システムではO(t)であり、本発明の方が多い。
分割可能な複数票投票形式の場合について評価する。
本発明の電子投票システムにおける、投票装置の計算量は各投票者毎にO(t)であり、投票締切前の開票装置の計算量は各投票者毎にO((aの2乗 log nj)t)であり、投票締切後の開票装置の計算量はO(at)である。
投票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nj)であり、
準同型性に基づいた電子投票システムではO(a log nj)である。
一般に選択肢の数aおよび各投票者の持ち票数njは不正を行なう開票装置の台数tより大きいので、本発明の方が少ない。
投票締切後の開票装置の計算量について比較する。
MIX−netに基づいた電子投票システムではO(nt)であり、
一般に総票数nは選択肢の数aより遥かに大きいので、本発明の方が非常に少ない。
準同型性に基づいた電子投票システムではO(at)であり、本発明と同じである。
したがって、本発明により、投票締切後の開票装置の負担を従来の準同型性に基づいた電子投票システムと同程度に抑えたまま、投票装置の負担を少なくできる公開検証可能な電子投票システムを実現できる。
【発明を実施するための最良の形態】
【0021】
本発明の構成について図面を参照しながら説明する。
図1は、本発明の電子投票システムの一構成例を示した図である。
図1において、本発明の電子投票システムは、投票装置1と複数台の開票装置2から構成される。
投票装置1の代わりに、投票装置Vと記述する場合がある。
複数台の開票装置2の代わりに、s台の開票装置Si(1≦i≦s)と記述する場合がある。
投票装置1は、投票内容入力手段3と組立暗号文作成指示暗号文作成手段4から構成される。
複数台の開票装置2は、初期暗号文作成手段5と組立暗号文作成手段6と組立暗号文集計手段7と集計暗号文記憶手段8と復号手段9から構成される。
【0022】
本発明の動作について図面を参照しながら説明する。
まず最初に、単票投票形式の場合について説明する。
投票形式によって本発明の動作が異なる部分は、投票内容入力手段3と初期暗号文作成手段5の部分である。
【0023】
まず最初に、本発明の動作の実行以前の状態を説明する。
s台の開票装置Si(1≦i≦s)が秘密鍵SKを(t+1,s)−閾値法を用いて分散共有している確率的公開鍵暗号系の公開鍵をPK、乱数空間をRとする。
ただし、s≧2t+1を満たすものとする。
1≦i≦t+1に対して、開票装置Siが秘密鍵SK[i]を所有している確率的公開鍵暗号系の公開鍵をPK[i]、乱数空間をR[i]とする。
投票装置Vが、選択肢の数aと投票者Vjの持ち票数njとPKとRとPK[i]とR[i](1≦i≦t+1)を所有している。
s台の開票装置Si(1≦i≦s)が、選択肢の数aと投票者Vjの持ち票数njを所有している。
集計暗号文記憶手段8に、集計暗号文ek←EasymPK(0)(1≦k≦a)が記憶さている。
投票者Vjが、識別子jと選択肢の数aを所有している。
投票者Vjは、選択したaj番目の選択肢に一票を投票するものとする。
ただし、1≦aj≦aを満たすものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(選択肢の番号aj)を入力する。
【0024】
次に、本発明の動作の概要を説明する。
投票内容入力手段3と組立暗号文作成指示暗号文作成手段4と初期暗号文作成手段5と組立暗号文作成手段6については、後で詳細を説明する。
組立暗号文集計手段7と集計暗号文記憶手段8と復号手段9については、準同型性に基づいた電子投票システムと同様である。
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
組立暗号文作成指示暗号文作成手段4が、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を入力として、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を出力する。
投票装置1が、複数台の開票装置2へ識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を送信する。
複数台の開票装置2が、投票装置1から識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を受信する。
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
組立暗号文作成手段6が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を入力として、組立暗号文e(j,k)(1≦k≦a)を出力する。ただし、組立暗号文e(j,k)は、投票者Vjの選択肢Akに対する投票数の暗号文になっている。
組立暗号文集計手段7が、組立暗号文e(j,k)(1≦k≦a)を入力として、集計暗号文記憶手段8から集計暗号文ek(1≦k≦a)を読み出して、ek←eke(j,k)(1≦k≦a)を計算することで組立暗号文e(j,k)を準同型性を用いて集計暗号文ekにまとめて、集計暗号文記憶手段8へ集計暗号文ek(1≦k≦a)を書き込む。ただし、集計暗号文ekは、選択肢Akの得票数の暗号文になっている。
上記の組立暗号文集計手段7の動作までは、投票者が投票を行なう度に実行される。
下記の復号手段9の動作は、投票締切後に実行される。
復号手段9が、集計暗号文記憶手段8から集計暗号文ek(1≦k≦a)を読み出して、集計暗号文ek(1≦k≦a)を閾値復号法を用いて復号して集計平文pkを生成して、集計平文pk(1≦k≦a)を出力する。ただし、集計平文pkは、選択肢Akの得票数になっている。
【0025】
最後に、本発明の動作の詳細を説明する。
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
x←aとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばN(0,z)←1、z≠1ならばN(0,z)←0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。1≦z≦xに対して、z=ajならばN(t+1,z)←1、z≠ajならばN(t+1,z)←0とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0026】
組立暗号文作成指示暗号文作成手段4が、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を入力として、下記の手順により組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を出力する。
図2は、組立暗号文作成指示暗号文作成手段4による組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)の生成の流れを示した図である。
ただし、組立暗号文作成指示暗号文作成手段4には、乱数生成部があるものとする。
(ステップ1)
i←1とする。
(ステップ2)
i≠t+1ならば、乱数生成部でリストの置換πi∈Πxをランダムに生成する。
i=t+1ならば、リストの置換πt+1∈ΠxをLNt+1=πt+1・・・π1LN0を満たすように生成する。
(ステップ3)
乱数生成部でx個の要素からなるリストLR’i=(R’(i,1),...,R’(i,x))∈Rxをランダムに生成する。
(ステップ4)
乱数生成部で共通鍵K[i]∈Ksymをランダムに生成する。
(ステップ5)
組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,3)を下記の通り生成する。
e(j,i,1)←EasymPK(K[i])
e(j,i,2)←EasymPK[i](K[i])
e(j,i,3)←EsymK[i](πi||LR’i)
(ステップ6)
LNi←πiLNi−1とする。
ただし、LNi=(N(i,1),...,N(i,x))とする。
(ステップ7)
LRi←πi(R(i−1,1)+R’(i,1),...,R(i−1,x)+R’(i,x))とする。
ただし、LRi=(R(i,1),...,R(i,x))とする。
(ステップ8)
乱数生成部でx個の要素からなるリストLR”i=(R”(i,1),...,R”(i,x))∈Z|R|xをランダムに生成する。
ただし、Z|R|は集合{0,1,...,|R|−1}である。
(ステップ9)
乱数生成部で共通鍵K’[i]∈Ksymをランダムに生成する。
(ステップ10)
組立暗号文作成指示暗号文e(j,i,4),...,e(j,i,6)を下記の通り生成する。
e(j,i,4)←EasymPK(K’[i])
e(j,i,5)←EsymK’[i](LR”i)
e(j,i,6)←EasymPK(Σ1≦z≦xN(i,z)R”(i,z),Σ1≦z≦xR(i,z)R”(i,z))
(ステップ11)
i≠t+1ならば、i←i+1として、ステップ2へ戻る。
【0027】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
x←aとする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばE(0,z)←EasymPK(1,0)、z≠1ならばN(0,z)←EasymPK(0,0)とする。
【0028】
組立暗号文作成手段6が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を入力として、下記の手順により組立暗号文e(j,k)(1≦k≦a)を生成して、組立暗号文e(j,k)(1≦k≦a)を出力する。ただし、組立暗号文e(j,k)は、投票者Vjの選択肢Akに対する投票数の暗号文になっている。
図3は、組立暗号文作成手段6による組立暗号文e(j,k)(1≦k≦a)の生成の流れを示した図である。
ただし、組立暗号文作成手段6のうちステップ2とステップ3とステップ4と閾値復号法以外の手順では、s台の開票装置Si(1≦i≦s)のうち任意の一台の開票装置が、手順を実行して他の開票装置に実行結果を通知するものとする。
(ステップ1)
i←1とする。
y←x/aとする。
(ステップ2)
開票装置Siが、下記の手順によりπiとLR’iを生成する。
ただし、開票装置Siは、他の開票装置にπiとLR’iを通知しない。
K[i]←DasymPK[i](e(j,i,2))
πi||LR’i←DsymK[i](e(j,i,3))
(ステップ3)
開票装置Siが、下記の手順によりLEiを生成する。
ただし、開票装置Siは、他の開票装置にLEiを通知する。
LEi←πi(E(i−1,1)EasymPK(0,R’(i,1)),...,E(i−1,x)EasymPK(0,R’(i,x)))
ただし、LEi=(E(i,1),...,E(i,x))とする。
(ステップ4)
開票装置Siが、ステップ3におけるリストLEi−1に対する再暗号化とランダム置換の処理の正当性をゼロ知識証明で示す。
ゼロ知識証明がrejectされたならば、ステップ7へ進む。
(ステップ5)
K’[i]←s台の開票装置が協力してe(j,i,4)を閾値復号法を用いて復号する。
LR”i←DsymK’[i](e(j,i,5))とする。
(ステップ6)
次式を満たすならば、ステップ9へ進む
Π1≦z≦x(E(i,z)のR”(i,z)乗)= e(j,i,6)
(ステップ7)
K[i]←s台の開票装置が協力してe(j,i,1)を閾値復号法を用いて復号する。
πi||LR’i←DsymK[i]e(j,i,3)とする。
(ステップ8)
LEi←πi(E(i−1,1)EasymPK(0,R’(i,1)),...,E(i−1,x)EasymPK(0,R’(i,x)))とする。
(ステップ9)
i≠t+1ならば、i←i+1として、ステップ2へ戻る。
(ステップ10)
1≦k≦aに対して、e(j,k)←Π(k−1)y+1≦z≦kyE(t+1,z)とする。
【実施例1】
【0029】
次に、分割不可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投票内容入力手段3と初期暗号文作成手段5を下記のように置き換えれば、本発明の電子投票システムで、分割不可能な複数票投票形式も実現できる。
投票者Vjが、識別子jと選択肢の数aと持ち票数njを所有している。
投票者Vjは、選択したaj番目の選択肢にnj票を投票するものとする。
ただし、1≦aj≦aを満たすものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(選択肢の番号aj)を入力する。
【0030】
投票内容入力手段3が、識別子jと選択肢の番号ajを入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
x←aとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばN(0,z)←nj、z≠1ならばN(0,z)←0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。1≦z≦xに対して、z=ajならばN(t+1,z)←nj、z≠ajならばN(t+1,z)←0とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0031】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
x←aとする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、z=1ならばE(0,z)←EasymPK(nj,0)、z≠1ならばN(0,z)←EasymPK(0,0)とする。
【実施例2】
【0032】
次に、分割可能な複数票投票形式の場合について説明する。
単票投票形式の場合の投票内容入力手段3と初期暗号文作成手段5を下記のように置き換えれば、本発明の電子投票システムで、分割可能な複数票投票形式も実現できる。
投票者Vjが、識別子jと選択肢の数aと持ち票数njを所有している。
投票者Vjは、複数の選択肢にnj票を0≦n(j,k)≦nj、Σkn(j,k)=njを満たすようにn(j,1)票,...,n(j,a)票に分割して投票するものとする。
投票者Vjが、投票内容入力手段3へ識別子jと投票内容(投票者Vjの選択肢Akに対する投票数n(j,k)(1≦k≦a))を入力する。
【0033】
投票内容入力手段3が、識別子jと投票者Vjの選択肢Akに対する投票数n(j,k)(1≦k≦a)を入力として、下記の手順によりリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を生成して、識別子jとリスト長xと初期平文リストLN0と最終平文リストLNt+1と初期乱数リストLR0を出力する。
X←(a,nj)−DivisibleMultisetとする。
x←a#Xとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。Xの要素を昇順に並べたリストに、x−#X個の要素からなるリスト(0,...,0)を結合したリストを、LN0とする。
x個の要素からなるリストLNt+1=(N(t+1,1),...,N(t+1,x))を下記の通り生成する。
非負の整数の組(n(j,1),...,n(j,a))に対して、∪1≦k≦aX[k]=Xかつ全てのk(1≦k≦a)に対してΣN∈X[k]N=n(j,k)を満たす自然数の多重集合X[1],...,X[a]⊆Xを生成する。
#X個の要素からなるリストLN(t+1,k)(1≦k≦a)を、X[k]の要素を並べたリストと#X−#X[k]個の要素からなるリスト(0,...,0)を結合したリストとする。
リストLNt+1を、LN(t+1,1),...,LN(t+1,a)の結合とする。
x個の要素からなるリストLR0=(R(0,1),...,R(0,x))を下記の通り生成する。1≦z≦xに対して、R(0,z)←0とする。
【0034】
初期暗号文作成手段5が、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)を入力として、下記の手順によりリスト長xと初期暗号文リストLE0を生成して、識別子jと組立暗号文作成指示暗号文e(j,i,1),...,e(j,i,6)(1≦i≦t+1)とリスト長xと初期暗号文リストLE0を出力する。
X←(a,nj)−DivisibleMultisetとする。
x←a#Xとする。
x個の要素からなるリストLN0=(N(0,1),...,N(0,x))を下記の通り生成する。Xの要素を昇順に並べたリストに、x−#X個の要素からなるリスト(0,...,0)を結合したリストを、LN0とする。
x個の要素からなるリストLE0=(E(0,1),...,N(0,x))を下記の通り生成する。1≦z≦xに対して、E(0,z)←EasymPK(N(0,z),0)とする。
【0035】
例えば、選択肢の数a=3,持ち票数nj=10の場合、(3,10)−DivisibleMultisetは、X={1,1,2,2,4}である。
これより、x=15となる。
Vjが3通りの選択肢にそれぞれ3,5,2票ずつ投票するとき、X[1]={1,2},X[2]={1,4},X[3]={2}となる。
したがって、LN0=(1,1,2,2,4,0,0,0,0,0,0,0,0,0,0),
LNt+1=(1,2,0,0,0,1,4,0,0,0,2,0,0,0,0)である。
【実施例3】
【0036】
組立暗号文作成手段6のうちステップ2以外の実行結果を公開掲示板に書き込む等して公開すれば、本発明の電子投票システムは公開検証可能となる。
また、MIX−netに基づいた電子投票システムでは、他の投票者が投票して送信された暗号文を参考に、
他の投票者の投票内容と関係のある投票内容の暗号文を作成して投票するという、不正を防止しなければならない。
提案方式についても同様の不正が考えられるが、使用する暗号系にnon−malleableな性質を持たせることなどで、不正を防止できる。
本発明では特に、再暗号化とランダム置換の検証のための情報であるリストLR”iの暗号化の際に、non−malleableな性質を持つ共通鍵暗号系を使用することで、効率的に不正を防止できると考えられる。
【実施例4】
【0037】
(PRG,SP,SEEDSP)を擬似乱数生成系とする。
PRGは、空間SPとシードSEED∈SEEDSPを入力とし、空間SPの擬似乱数を出力する擬似乱数生成アルゴリズムである。
組立暗号文作成指示暗号文作成手段4で、乱数生成部でLR’i,LR”iを生成する代わりに、乱数生成部でSEED’i∈SEEDSP,SEED”i∈SEEDSPを生成して、LR’i←PRG(Rx,SEED’i),LR”i←PRG(Z|R|x,SEED”i)とする。
そして、LR’i,LR”iを暗号化して送信する代わりに、SEED’i,SEED”iを暗号化して送信すれば、通信量を削減できる。
組立暗号文作成手段6で、SEED’i,SEED”iを復号して、LR’i←PRG(Rx,SEED’i),LR”i←PRG(Z|R|x,SEED”i)とする。
【図面の簡単な説明】
【0038】
【図1】本発明の電子投票システムの一構成例を示した図である。
【図2】組立暗号文作成指示暗号文作成手段4による組立暗号文作成指示暗号文の生成の流れを示した図である。
【図3】組立暗号文作成手段6による組立暗号文の生成の流れを示した図である。
【符号の説明】
【0039】
1 投票装置
2 複数台の開票装置
3 投票内容入力手段
4 組立暗号文作成指示暗号文作成手段
5 初期暗号文作成手段
6 組立暗号文作成手段
7 組立暗号文集計手段
8 集計暗号文記憶手段
9 復号手段
【特許請求の範囲】
【請求項1】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置Si(1≦i≦s)が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を有する電子投票システムにおいて、各手段が下記の手順を有することを特徴とする電子投票システム。
投票内容入力手段は、投票内容を入力として、初期平文リストLN0と最終平文リストLNt+1を出力する。
組立暗号文作成指示暗号文作成手段は、初期平文リストLN0と最終平文リストLNt+1を入力として、
LNt+1=πt+1・・・π1LN0
を満たすt+1個(s≧2t+1)のランダム置換πi(1≦i≦t+1)と
再暗号化に用いる乱数リストLR’i(1≦i≦t+1)を作成して、
1≦i≦t+1について開票装置SiがπiとLR’iを復号できるように暗号化した暗号文と、
t+1台の開票装置がπi(1≦i≦t+1)とLR’i(1≦i≦t+1)を復号できるように
暗号化した暗号文と、
1≦i≦t+1について、開票装置Siが実行する暗号文リストに対するランダム置換と再暗号化の処理の正当性を検証するための暗号文を作成して出力する。
初期暗号文作成手段は、初期暗号文リストLE0を作成して出力する。
組立暗号文作成手段は、組立暗号文作成指示暗号文作成手段で作成された暗号文と初期暗号文リストLE0を入力として、
i=1,...,t+1について下記の手順を繰り返して、組立暗号文e(j,k)を作成して出力する。
開票装置Siが、組立暗号文作成指示暗号文作成手段で作成された暗号文からπiとLR’iを復号する。
開票装置Siが、πiとLR’iを用いて、暗号文リストに対するランダム置換と再暗号化の処理を実行する。
組立暗号文作成指示暗号文作成手段で作成された暗号文を用いて開票装置Siが実行した暗号文リストに対するランダム置換と再暗号化の処理の正当性を検証する。正当性が検証できない場合には、s台の開票装置が、組立暗号文作成指示暗号文作成手段で作成された暗号文を閾値暗号法を用いてπiとLR’iを復号して、πiとLR’iを用いて、暗号文リストに対するランダム置換と再暗号化の処理を実行する。
組立暗号文集計手段は、組立暗号文作成手段で作成された組立暗号文e(j,k)を集計暗号文ekに集計する。
復号手段は、集計暗号文ekを閾値復号法を用いて復号して集計平文pkを出力する。
【請求項2】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を
有する電子投票システムにおいて、請求項1記載の手順に従う各手段を具備することを
特徴とする投票装置と開票装置。
【請求項3】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を
有する電子投票システムにおいて、各手段を請求項1記載の手順に従って実行させるためのプログラムを
記録した記録媒体。
【請求項4】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化し、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する電子投票システム
【請求項5】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化する投票装置、及び、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する開票装置。
【請求項6】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化し、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する手続きを
コンピュータで実行させるためのプログラムを記録した記録媒体。
【請求項1】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置Si(1≦i≦s)が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を有する電子投票システムにおいて、各手段が下記の手順を有することを特徴とする電子投票システム。
投票内容入力手段は、投票内容を入力として、初期平文リストLN0と最終平文リストLNt+1を出力する。
組立暗号文作成指示暗号文作成手段は、初期平文リストLN0と最終平文リストLNt+1を入力として、
LNt+1=πt+1・・・π1LN0
を満たすt+1個(s≧2t+1)のランダム置換πi(1≦i≦t+1)と
再暗号化に用いる乱数リストLR’i(1≦i≦t+1)を作成して、
1≦i≦t+1について開票装置SiがπiとLR’iを復号できるように暗号化した暗号文と、
t+1台の開票装置がπi(1≦i≦t+1)とLR’i(1≦i≦t+1)を復号できるように
暗号化した暗号文と、
1≦i≦t+1について、開票装置Siが実行する暗号文リストに対するランダム置換と再暗号化の処理の正当性を検証するための暗号文を作成して出力する。
初期暗号文作成手段は、初期暗号文リストLE0を作成して出力する。
組立暗号文作成手段は、組立暗号文作成指示暗号文作成手段で作成された暗号文と初期暗号文リストLE0を入力として、
i=1,...,t+1について下記の手順を繰り返して、組立暗号文e(j,k)を作成して出力する。
開票装置Siが、組立暗号文作成指示暗号文作成手段で作成された暗号文からπiとLR’iを復号する。
開票装置Siが、πiとLR’iを用いて、暗号文リストに対するランダム置換と再暗号化の処理を実行する。
組立暗号文作成指示暗号文作成手段で作成された暗号文を用いて開票装置Siが実行した暗号文リストに対するランダム置換と再暗号化の処理の正当性を検証する。正当性が検証できない場合には、s台の開票装置が、組立暗号文作成指示暗号文作成手段で作成された暗号文を閾値暗号法を用いてπiとLR’iを復号して、πiとLR’iを用いて、暗号文リストに対するランダム置換と再暗号化の処理を実行する。
組立暗号文集計手段は、組立暗号文作成手段で作成された組立暗号文e(j,k)を集計暗号文ekに集計する。
復号手段は、集計暗号文ekを閾値復号法を用いて復号して集計平文pkを出力する。
【請求項2】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を
有する電子投票システムにおいて、請求項1記載の手順に従う各手段を具備することを
特徴とする投票装置と開票装置。
【請求項3】
投票装置が投票内容入力手段と組立暗号文作成指示暗号文作成手段を有し、
s台の開票装置が初期暗号文作成手段と組立暗号文作成手段と組立暗号文集計手段と復号手段を
有する電子投票システムにおいて、各手段を請求項1記載の手順に従って実行させるためのプログラムを
記録した記録媒体。
【請求項4】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化し、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する電子投票システム
【請求項5】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化する投票装置、及び、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する開票装置。
【請求項6】
請求項1記載の組立暗号文作成指示暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを暗号化し、
請求項1記載の組立暗号文作成手段において、
乱数リストLR’iの代わりに擬似乱数生成系のシードを復号する手続きを
コンピュータで実行させるためのプログラムを記録した記録媒体。
【図1】
【図2】
【図3】
【図2】
【図3】
【公開番号】特開2006−32994(P2006−32994A)
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願番号】特願2004−204042(P2004−204042)
【出願日】平成16年7月12日(2004.7.12)
【出願人】(303009537)
【出願人】(300044908)
【出願人】(303034584)
【Fターム(参考)】
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願日】平成16年7月12日(2004.7.12)
【出願人】(303009537)
【出願人】(300044908)
【出願人】(303034584)
【Fターム(参考)】
[ Back to top ]