説明

暗号化装置及び方法

【課題】データが改竄されている場合には復号できないような暗号を作成することができる装置及び方法を提供すること。
【解決手段】暗号化装置400は、画像を読み込み、読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成し、生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出する。そして、暗号化装置400は、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、擬似乱数を算出した順に、ビットの重みを対応付け、重みが対応付けられた所定のビットに、情報を構成するビットのうち、所定のビットに対応付けられた重みと同じ重みのビットの値を埋め込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを利用して暗号化する暗号化装置及び方法に関する。
【背景技術】
【0002】
近年、コンピュータの発達に伴い、コンピュータを利用した電子投票は、安全で迅速な処理が期待できることから関心が高まっている。コンピュータを利用した電子投票には、集計においてコンピュータを利用する電子投票や、投票する方法においてコンピュータを利用する電子投票、遠隔地からの投票においてネットワークコンピュータを利用する電子投票等が存在する。
【0003】
このような電子投票は、どの投票者が誰に投票したのかは誰にも分からない、いわゆる秘匿性と、投票結果が正しく集計されたことが、集計後いつでも誰でも確認できること、等が要求される。
【0004】
このような要求を考慮したシステムとして、特許文献1に開示された、認証機関と集計機関とを備える電子投票システムが知られている。
【0005】
この特許文献1が開示するシステムにおいて、投票装置は、投票者のディジタル証明書を認証機関の公開鍵によって暗号化し、所定の情報(自己の投票が正しく集計されていることを知るための投票者のみが知る情報)を含む投票メッセージを集計機関の公開鍵によって暗号化し、暗号化されたディジタル証明書と、暗号化された投票メッセージとを連結して投票装置の秘密鍵によって暗号化した署名ブロックを認証機関に送る。認証機関は、投票装置の公開鍵によって署名ブロックを復号し、認証機関の秘密鍵によってディジタル証明書を復号して認証後、集計組織に転送する。集計組織は、投票装置の公開鍵によって署名ブロックを復号し、集計組織の秘密鍵によって投票メッセージを復号して集計する。したがって、特許文献1が開示するシステムにおいて、認証機関は投票メッセージを復号できず、集計機関はディジタル証明書を復号できないので、どの投票者が誰に投票したのかは誰にも分からない。そして、集計組織が公表した投票メッセージのうち所定の情報によって、投票者は自己の投票が正しく集計されたことを知ることができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2005−509366号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1が開示するシステムは、ディジタル証明書と投票メッセージとを連結させている。よって、認証機関が集計組織の秘密鍵を入手したり、集計組織が認証機関の秘密鍵を入手したりすると、特許文献1が開示するシステムは、どの投票者が誰に投票したのかが分かってしまう。すなわち、特許文献1が開示するシステムは、秘匿性を確保することができない。
【0008】
そして、特許文献1が開示するシステムは、ディジタル証明書及び投票メッセージが改竄されていたとしても、公開鍵によって暗号化されたディジタル証明書及び投票メッセージを秘密鍵によって復号し、復号したディジタル証明書及び投票メッセージに基づいて集計をしてしまう。
【0009】
そこで、データが改竄されている場合には復号できないような暗号が求められている。
【0010】
本発明は、データが改竄されている場合には復号できないような暗号を作成することができる装置及び方法を提供する。
【課題を解決するための手段】
【0011】
本発明では、以下のような解決手段を提供する。
【0012】
(1) 画像に情報を埋め込むことによって分散する暗号化装置であって、3原色の階調値から構成される画素によって構成される画像を読み込む画像読込手段と、前記画像読込手段によって読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する擬似乱数生成手段と、前記擬似乱数生成手段によって生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出する位置算出手段と、前記位置算出手段によって算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記位置算出手段が算出した順に、ビットの重みを対応付ける重み対応付手段と、前記重み対応付手段によって前記重みが対応付けられた前記所定のビットに、前記情報を構成するビットのうち前記重みと同じ重みのビットの値を埋め込む埋込手段と、を備える暗号化装置。
【0013】
(1)の構成によれば、本発明に係る暗号化装置は、画像に情報を埋め込むことによって分散する暗号化装置であって、3原色の階調値から構成される画素によって構成される画像を読み込み、読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成し、生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出する。そして、本発明に係る暗号化装置は、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、擬似乱数を算出した順に、ビットの重みを対応付け、重みが対応付けられた所定のビットに、情報を構成するビットのうち、所定のビットに対応付けられた重みと同じ重みのビットの値を埋め込む。
【0014】
すなわち、本発明に係る暗号化装置は、画像を構成する画素の階調値に基づいて算出した画素に、情報を埋め込むことによって情報を暗号化する。したがって、画像を構成する画素の階調値が変更されている場合には情報を埋め込んだ画素を算出することができないので、本発明に係る暗号化装置は、画像データが改竄されている場合には復号できないような暗号を作成することができる。
【0015】
(2) 前記画像内に領域を設定する領域設定手段をさらに備え、前記擬似乱数生成手段は、前記領域設定手段によって設定された領域を構成する画素のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する(1)に記載の暗号化装置。
【0016】
(2)の構成によれば、(1)に記載の暗号化装置は、さらに、画像内に領域を設定し、設定された領域を構成する画素のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する。
【0017】
すなわち、(2)に記載の暗号化装置は、画像内に設定した領域を構成する画素の階調値に基づいて算出した画素に、情報を埋め込む。したがって、画像内の領域を構成する画素の階調値が変更されている場合には、情報を埋め込んだ画素を算出することができないので、(2)に記載の暗号化装置は、画像データが改竄されている場合には復号できないような暗号を作成することができる。さらに、情報を埋め込んだ画素を算出するための特定の領域が秘密なので、(2)に記載の暗号化装置は、復号することが困難な暗号を作成することができる。
【0018】
(3) 画素の位置を引数としてハッシュ値を算出するハッシュ値算出手段をさらに備え、前記位置算出手段は、算出した画素の位置が重複する場合に、重複した画素の位置を引数として前記ハッシュ値算出手段によってハッシュ値を算出し、算出したハッシュ値に基づいて画素の位置を算出する(1)又は(2)に記載の暗号化装置。
【0019】
(3)の構成によれば、(1)又は(2)に記載の暗号化装置は、さらに、算出した画素の位置が重複する場合に、重複した画素の位置を引数としてハッシュ値を算出し、算出したハッシュ値に基づいて画素の位置を算出する。
【0020】
すなわち、(3)に記載の暗号化装置は、算出した画素の位置が重複する場合に、ハッシュ値に基づいて画素の位置を算出し、情報を埋め込む。したがって、(3)に記載の暗号化装置は、画像データが改竄されている場合には復号できないような暗号を作成することができる。さらに、情報を埋め込んだ位置が重複する場合に埋め込んだときと同じハッシュ値を得なければ復号できないので、(3)に記載の暗号化装置は、復号することがさらに困難な暗号を作成することができる。
【0021】
(4) 画像に情報を埋め込むことによって分散する暗号化装置において実行される暗号化方法であって、3原色の階調値から構成される画素によって構成される画像を読み込むステップと、読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成するステップと、生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出するステップと、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記算出した順に、ビットの重みを対応付けるステップと、前記重みが対応付けられた前記所定のビットに、前記情報を構成するビットのうち前記重みと同じ重みのビットの値を埋め込むステップと、を備える暗号化方法。
【0022】
(4)の構成によれば、暗号化装置において実行される本発明に係る暗号化方法は、3原色の階調値から構成される画素によって構成される画像を読み込み、読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する。そして、本発明に係る方法は、生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出し、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、算出した順に、ビットの重みを対応付け、重みが対応付けられた所定のビットに、情報を構成するビットのうち、所定のビットに対応付けられた重みと同じ重みのビットの値を埋め込む。
【0023】
したがって、画像を構成する画素の階調値が変更されている場合には情報を埋め込んだ画素を算出することができないので、本発明に係る方法は、画像データが改竄されている場合には復号できないような暗号を作成することができる。
【0024】
(5) 画像に埋め込まれた情報を取得する復号装置であって、3原色の階調値から構成される画素によって構成される画像を読み込む画像読込手段と、前記画像読込手段によって読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する擬似乱数生成手段と、前記擬似乱数生成手段によって生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出する位置算出手段と、前記位置算出手段によって算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記位置算出手段が算出した順に、ビットの重みを対応付ける重み対応付手段と、前記所定のビットの値を、前記重み対応付手段によって対応付けられた前記重みに従って2進数に変換した情報を取得する情報取得手段と、を備える復号装置。
【0025】
(5)の構成によれば、本発明に係る復号装置は、3原色の階調値から構成される画素によって構成される画像を読み込み、読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成し、生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出する。そして、本発明に係る復号装置は、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、算出した順に、ビットの重みを対応付け、所定のビットの値を、対応付けられた重みに従って2進数に変換した情報を取得する。
【0026】
したがって、本は発明に係る復号装置は、画像を構成する画素の階調値に基づいて算出した画素に埋め込まれた情報を、復号することができる。
【発明の効果】
【0027】
本発明は、画像データを構成する画素に基づいた暗号を作成するので、画像データが改竄されている場合には復号できないような暗号を作成することができる。
【0028】
さらに、本発明は、画像データを構成する画素に基づいて算出した画素に情報を埋め込むので、復号することが困難な暗号を作成することができる。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施形態に係る電子投票システムの実施形態1の特徴を示す特徴図である。
【図2】本発明の一実施形態に係る全体画像データの例を示す図である。
【図3】本発明の一実施形態に係る分割画像データの例を示す図である。
【図4】本発明の一実施形態に係る分割画像データを構成する画素の階調値と、擬似乱数の生成とについて説明する説明図である。
【図5】本発明の一実施形態に係る分割画像データにおいて、データのバイナリ値をビットに分解して埋め込むことを説明する図である。
【図6】本発明の一実施形態に係る分割画像データの別の例を示す図である。
【図7】本発明の一実施形態に係る電子投票データのデータを埋め込むための複数の画素の位置を算出するために設定される領域の例を示す図である。
【図8】本発明の一実施形態に係る電子投票システムの実施形態2の特徴を示す特徴図である。
【図9】本発明の一実施形態に係る電子投票データ作成装置の機能を示す機能ブロック図である。
【図10】本発明の一実施形態に係る電子投票装置の機能を示す機能ブロック図である。
【図11】本発明の一実施形態に係る電子開票装置の機能を示す機能ブロック図である。
【図12】本発明の一実施形態に係る電子投票データ作成装置の処理内容を示すフローチャートである。
【図13】本発明の一実施形態に係る暗号化処理の内容を示すフローチャートである。
【図14】本発明の一実施形態に係るGetPosの処理内容を示すフローチャートである。
【図15】本発明の一実施形態に係る電子投票装置の処理内容を示すフローチャートである。
【図16】本発明の一実施形態に係る電子開票装置の処理内容を示すフローチャートである。
【図17】本発明の一実施形態に係るビットの対応付けテーブルを示す図である。
【図18】本発明の一実施形態に係る電子投票データ作成装置において、電子投票データ521を作成する例を示す図である。
【図19】本発明の一実施形態に係る電子投票装置において、電子投票データを表示する例を示す図である。
【図20】本発明の一実施形態に係る電子開票装置において、電子投票データを集計し、公表する例を示す図である。
【図21】本発明の一実施形態に係る暗号化装置の機能を示す機能ブロック図である。
【図22】本発明の一実施形態に係る電子投票媒体の機能を示す機能ブロック図である。
【図23】本発明の一実施形態に係る電子投票媒体の例を示す図である。
【図24】本発明の一実施形態に係る電子投票媒体を利用した電子投票システムの例を示す図である。
【図25】本発明の一実施形態に係る電子投票媒体を利用する投票プログラムの処理内容を示すフローチャートである。
【図26】本発明の一実施形態に係る電子投票媒体の処理内容を示すフローチャートである。
【図27】本発明の一実施形態に係る電子投票媒体を利用する場合の電子投票データ作成装置の処理内容を示すフローチャートである。
【図28】本発明の一実施形態に係る電子投票媒体を利用する場合の電子開票装置の処理内容を示すフローチャートである。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態について図を参照しながら説明する。すなわち、実施形態1において、本発明に係る暗号方法を利用する電子投票システム10について説明し、実施形態2において、本発明に係る暗号方法を利用し、パスワードを用いる電子投票システム10について説明し、実施形態3において、本発明に係る暗号化装置400について説明し、実施形態4において、本発明に係る暗号方法を利用する電子投票媒体700について説明する。
【0031】
[実施形態1]
実施形態1は、電子投票システム10の実施例である。実施形態1の電子投票システム10は、電子投票データ作成装置100と、電子投票装置200と、電子開票装置300とを備えている。そして、電子投票データ作成装置100は、全体画像データ501に基づいて作成した鍵ペア(公開鍵と秘密鍵)のうち公開鍵を分割画像データ511に埋め込んで、電子投票データ521を作成する。電子投票装置200は、受け付けた投票内容及び確認コードを、電子投票データ521に埋め込まれた公開鍵を用いて暗号化し電子投票データ521に埋め込む。電子開票装置300は、収集した分割画像データ511に基づいて作成した鍵ペア(公開鍵と秘密鍵)のうち秘密鍵を用いて、電子投票データ521に埋め込まれた暗号化された投票内容及び確認コードを復号し、公表する。
【0032】
本実施形態は、コンピュータ及びその周辺装置に適用される。本実施形態における電子投票データ作成装置100、電子投票装置200及び電子開票装置300は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成される。
【0033】
上記ハードウェアには、制御部としてのCPU(Central Processing Unit)の他、記憶部、通信装置、表示装置及び入力装置が含まれる。記憶部としては、例えば、メモリ(RAM:Random Access Memory、ROM:Read Only Memory等)、ハードディスクドライブ(HDD:Hard Disk Drive)及び光ディスク(CD:Compact Disk、DVD:Digital Versatile Disk等)ドライブが挙げられる。通信装置としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示装置としては、例えば、液晶ディスプレイやプラズマディスプレイ等の各種ディスプレイが挙げられる。入力装置としては、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)が挙げられる。
【0034】
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布されることも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布されることも可能である。
【0035】
図1は、本発明の一実施形態に係る電子投票システム10の実施形態1の特徴を示す特徴図である。特徴図に従って、電子投票システム10の概要を各装置ごとに説明する。
【0036】
電子投票データ作成装置100は、全体画像データ501を分割し、当該分割された分割画像データ511に、全体画像データ501に基づいて作成した公開鍵を埋め込むことにより複数の電子投票データ521を固有に作成する。すなわち、電子投票データ作成装置100は、分割画像データ511を構成する画素値に基づいて、電子投票データ521ごとに異なる位置に公開鍵を埋め込んで、電子投票データ521を作成する。
【0037】
ここで、全体画像データ501は、画像の最小要素である画素によって構成されたデジタル画像データである。デジタル画像データは、画素の輝度や色をデジタル化した画素値によって構成される。画素値は、例えば、色の3原色のうち赤色をデジタル化した階調値を記憶するRチャネル、緑色をデジタル化した階調値を記憶するGチャネル、青色をデジタル化した階調値を記憶するBチャネル等から構成される。そして、例えば、デジタル画像データは、画素値が2次元配列形式でメインメモリや、補助記憶装置等に記憶されている。分割画像データ511は、全体画像データ501を所定の数で分割した画像データである。
【0038】
ここで、人間の視覚は、画像を構成する3原色のうち青色の変化に気づきにくい、という特徴がある。そこで、本発明は、画像を構成する3原色の階調値のうちBチャネルにデータを隠すことによって、画像に暗号化ブックの役割をさせつつ、画像が視認されても違和感を与えないようにすることができる。
【0039】
電子投票データ作成装置100は、全体画像データ501を構成する画素値に基づいて所定の演算を行い、公開鍵を作成する。所定の演算とは、例えば、全体画像データ501を構成する画素値のうち、公開鍵を書き込む所定のチャネル(格納用チャネルといい、例えば、Bチャネル)以外のチャネル(算出用チャネルといい、例えば、Rチャネル及び/又はGチャネル)の階調値を、加算することやビット演算を行うこと等である。そして、電子投票データ作成装置100は、所定の演算の演算結果である全体画像コードに基づいて、例えば、RSA暗号方式によって作成される鍵ペア(公開鍵と秘密鍵)を作成する。
【0040】
例えば、電子投票データ作成装置100は、まず、適当な正整数e(例えば、60001)を選択する。次に、電子投票データ作成装置100は、全体画像コードをパラメータにランダムに大きい素数の組み(p、q)を求め、pとqとの積であるNを求める。そして、電子投票データ作成装置100は、得られた(e、N)を公開鍵とする。この場合、秘密鍵dは、d=e−1(mod(lcm(p−1)(q−1)))によって求められる。
【0041】
さらに、電子投票データ作成装置100は、全体画像コードと、入力されたコード(例えば、図9で後述する秘密コード)とに基づいて算出したコード(例えば、図9で後述する暗号秘密コード)に基づいて大きい素数の組み(p、q)を求め、鍵ペア(公開鍵と秘密鍵)を作成するとしてもよい。
【0042】
そして、電子投票データ作成装置100は、データを埋め込む方法によって、公開鍵を分割画像データ511に埋め込む。
【0043】
データを埋め込む方法は、次の(1)から(3)の方法によってデータを埋め込む。
(1)データを埋め込むための複数の画素を算出する。複数の画素は次の様に算出される。
(1−1)分割画像データ511を構成する画素の各算出用チャネルの階調値に基づいて所定の演算を行う。すなわち、分割画像データ511を構成する各画素の階調値のビットの重みを用いて所定の個数の擬似乱数を生成する。所定の個数の擬似乱数は、分割画像データ511内に設定された領域内の画素に基づいて所定の演算によって算出されるとしてもよい。
(1−2)生成された所定の個数の擬似乱数に基づいて、分割画像データ511内の所定の個数の位置を算出する。例えば、位置の算出は、生成した擬似乱数を、分割画像データ511の総画素数(縦の画素数×横の画素数)で除算した剰余によって、分割画像データ511内の位置(縦及び横の位置)を算出することができる。このように、各画素の階調値から生成した擬似乱数に基づいて算出した位置は、分割画像データ511が異なると異なる位置になる。よって、位置の算出は、分割画像データ511ごとに、予測できない分散された位置を算出することができる。
【0044】
(2)算出した複数の画素の各格納用チャネルの所定のビットに、ビットの重みを対応付ける。すなわち、各格納用チャネルの所定のビット(例えば、公開鍵を埋め込むビットは3)に、(1)で算出した順にビットの重みを対応付ける。例えば、最初に算出した画素の格納用チャネルの所定のビット(例えば、ビット3)にビットの重み「2」を対応付ける。同様にして、n番目に算出した画素の格納用チャネルの所定のビット(例えば、ビット3)にビットの重み「2」を対応付ける。
【0045】
(3)ビットの重みが対応付けられた所定のビットに、データのバイナリ値をビットに分解して書き込むことによりデータを埋め込む。すなわち、例えば、「2」が対応付けられた、最初に算出された画素の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2」ビットの値を書き込む。次に、「2」が対応付けられた、次に算出された画素の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2」ビットの値を書き込む。このように順次、「2」が対応付けられた、算出された画素の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2」ビットの値を書き込むことによって公開鍵を埋め込む。
【0046】
格納用チャネルの所定のビットは、例えば、ビット1が暗号化された投票内容及び確認コードを埋め込むビット、ビット2が暗号化されたパスワードを埋め込むビット、ビット3が公開鍵を埋め込むビット、ビット4が画像の固有コード(MD5)を埋め込むビット、ビット5が全体画像コードの冗長情報を埋め込むビット、ビット6が電子投票データ521の投票状態(例えば、白票状態を0、投票済み状態を1で示す)についての情報を埋め込むビットである。
【0047】
データを埋め込む方法によって埋め込まれたデータは、データを復元する方法によって埋め込まれたデータを復元することができる。
【0048】
データを復元する方法は、上述したデータを埋め込む方法の(3)において、埋め込まれたビットの値を、格納チャネルの所定のビットに対応付けられたビットの重みに従って、バイナリ値に合成することによってデータを復元する。
【0049】
このように、データを埋め込む方法は、画像データによって異なる画素の位置にデータを埋め込む。そして、データを復元する方法は、データを埋め込む方法によって埋め込まれた画像データに基づいてデータを復元する。すなわち、データを埋め込む方法は、画像データを暗号ブックとしてデータを暗号化し、データを復元する方法は、暗号ブックである画像データに基づいてデータを復元する。したがって、画像データである電子投票データ521を用いる電子投票システム10は、電子投票データ521ごとの異なる位置にデータを秘匿するという、従来の暗号化をさらに安全にした暗号化を実行する。
【0050】
このように、電子投票データ作成装置100は、分割画像データ511に公開鍵を埋め込むことにより複数の電子投票データ521をそれぞれ固有に作成できる。
【0051】
ここで、電子投票データ521における鍵ペア(公開鍵と秘密鍵)による暗号化と復号とに付いて説明する。電子投票データ作成装置100によって全体画像コードに基づいて作成された鍵ペア(公開鍵と秘密鍵)のうちの公開鍵を用いて暗号化されたデータ(例えば、投票内容及び確認コード)は、作成された鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を用いて復号される。
【0052】
例えば、電子投票データ作成装置100は、投票率が棄権票や白紙票を含めて100パーセントであれば復号可能であることを条件として電子投票データ521を作成する。この場合には、収集した電子投票データ521によって全体画像データ501を構成する画素の全てを取得することができるので、復号は、電子投票データ作成装置100と同様に、算出された全体画像コードに基づいて作成された鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を用いることによって可能である。
【0053】
また、例えば、電子投票データ作成装置100は、投票率が一定の割合以上であれば復号可能であることを条件として電子投票データ521を作成する。この場合には、電子投票データ作成装置100は、信号訂正理論を利用して、複数の電子投票データ521に基づいて鍵ペア(公開鍵と秘密鍵)を算出することができるように、全体画像コードの冗長情報を作成し、電子投票データ521ごとに埋め込む。このようにして、複数の電子投票データ521に埋め込まれた冗長情報に基づいて復元された全体画像コードを取得することができるので、復号は、電子投票データ作成装置100と同様に、復元された全体画像コードに基づいて作成された鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を用いることによって可能である。
【0054】
また、例えば、電子投票データ作成装置100は、ビット列をSとする全体画像コードを含んだデータ(例えば、全体画像コードのビット列Sに余分のビット列を補足したデータ、「1010」+Sや、S+「1010」や、「10」+S+「10」等)を作成し、電子投票データ521ごとに埋め込む。そうすると、全体画像コードは、2件の電子投票データ521から必ず取得される(2件の電子投票データ521に書き込まれた全体画像コードを含んだデータを比較することによって同じビット列である全体画像コードSが取得される)。このようにして、複数の電子投票データ521に基づいて全体画像コードを取得することができるので、復号は、電子投票データ作成装置100と同様に、取得された全体画像コードに基づいて作成された鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を用いることによって可能である。すなわち、電子投票データ作成装置100は、全体画像データ501を分割画像データ511に分割する数を、求められる投票率に従って算出することにより、条件とする投票率に合致した電子投票データ521を作成することができる。
【0055】
また、例えば、電子投票データ作成装置100は、投票された電子投票データ521が1件でも復号可能であることを条件として電子投票データ521を作成する。この場合には、電子投票データ作成装置100は、全体画像コードを電子投票データ521ごとに埋め込む。埋め込まれた全体画像コードによって、復号は、電子投票データ作成装置100と同様に、埋め込まれた全体画像コードに基づいて作成された鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を用いることによって可能である。
【0056】
電子投票装置200は、電子投票データ521に埋め込まれている公開鍵に基づいて、受け付けた投票ごとの投票内容と、投票内容に対応付けた確認コードとを暗号化する。そして、電子投票装置200は、当該暗号化された投票内容及び確認コードを電子投票データ521に埋め込む。ここで、投票内容は、例えば、立候補者を示す番号やコード等である。電子投票装置200は、投票者によって操作された入力装置から投票内容を受け付ける。確認コードは、例えば、電子投票装置200が投票内容に対応付けたコードである。
【0057】
電子投票装置200は、電子投票データ521から公開鍵を復元する。すなわち、電子投票装置200は、電子投票データ作成装置100によって埋め込まれた公開鍵を、復元する方法によって復元する。
【0058】
電子投票装置200は、復元した公開鍵によって、投票内容及び確認コードを暗号化する。そして、電子投票装置200は、暗号化した投票内容及び確認コードを、データを埋め込む方法によって電子投票データ521に埋め込む(例えば、格納用チャネルのビット1)。
【0059】
電子開票装置300は、複数の電子投票装置200によって暗号化された各電子投票データ521を収集する。次に、電子開票装置300は、収集した各電子投票データ521に基づいて秘密鍵を作成し、作成した秘密鍵に基づいて、収集した各電子投票データ521から取得した暗号化された投票内容及び確認コードを復号する。そして、電子開票装置300は、当該復号した投票内容及び確認コードを集計し、公表する。
【0060】
ここで、秘密鍵は、電子投票データ作成装置100と同様に作成される。すなわち、電子開票装置300は、収集した電子投票データ521に基づいて全体画像コードを取得し、取得した全体画像コードに基づいて、例えば、RSA暗号方式によって作成される鍵ペア(公開鍵と秘密鍵)のうちの秘密鍵を作成する。そして、電子開票装置300は、作成した秘密鍵に基づいて、電子投票データ521から復元した、暗号化された投票内容及び確認コードを復号する。この場合に、正しい秘密鍵を作成することができるように電子投票データ521を収集できなかったり、不正な電子投票データ521が混じっていたりした場合には、作成した秘密鍵では投票内容を正しく復元し、復号することができないので、電子開票装置300は、投票が正しく行われなかったことを検出することができる。
【0061】
そして、電子開票装置300は、復号した投票内容及び確認コードを集計し、公表する。確認コードは、投票内容に対応付けられたコードであるので、電子開票装置300は、投票内容及び確認コードを公表することによって、確認コードを覚えている投票者に、投票内容が正確に集計されていることを確認させることができる。
【0062】
このように、電子投票データ作成装置100とは独立して、電子開票装置300が収集した電子投票データ521に基づいて秘密鍵を作成することによって、電子投票システム10は、システムの安全性を向上させることができる。
【0063】
図2から図7によって電子投票データ521の作成を説明する。
図2は、本発明の一実施形態に係る全体画像データ501の例を示す図である。図2の例は、全体画像データ501を、縦の破線591及び横の破線592によって、16分割する例である。全体画像データ501を分割することによって分割画像データ511が作成される。
【0064】
全体画像データ501を構成する画素値に基づいて、全体画像コードが算出される。例えば、全体画像データ501がX軸方向に640×4画素、Y軸方向に480×4画素であるとする。画素を構成する3原色の階調値を記憶するチャネルのうち、格納用チャネルは、Bチャネルとし、算出用チャネルは、Rチャネル及びGチャネルとする。各チャネルは、例えば、8ビット構成とする。
【0065】
例えば、全体画像コード(例えば、1024ビット)は、Rチャネル及びGチャネルの階調値を加算することにより得られる。加算は、チャネル単位(8ビットずつ)でなくてもよい。例えば、9ビットずつ(Rチャネルの8ビット及びGチャネルのLSBと、Gチャネルの残り7ビット及び次の画素のRチャネルの2ビットとを)加算する。このようにすることで、特定のビットの値が周期的に加算されることを避けることができる。電子投票システム10は、全体画像コードに基づいて鍵ペア(公開鍵及び秘密鍵)を作成する。
【0066】
図3は、本発明の一実施形態に係る分割画像データ511の例を示す図である。図3が示す例は、分割画像データ511に基づいて、図4のようにデータを埋め込むための複数の画素(例えば、P1からP10)を算出し、図5のようにデータを埋め込んだことを示す例である。
【0067】
図3の分割画像データ511は、図2の全体画像データ501を、例えば16分割した画像データである。分割画像データ511を構成する画素の位置は、二次元座標(例えば、XY平面のX軸及びY軸)を用いて表わされる。例えば、X軸方向の画素数をw(例えば、640画素)、Y軸方向の画素数をh(例えば、480画素)とすると、画素の位置は、開始点(0、0)、終了点(639、479)、任意の画素の位置(x、y)で表わされる。ここで、図4に基づいて、分割画像データ511を構成する画素に基づいて生成した擬似乱数によって所定の個数の画素の位置を算出することについて説明する。
【0068】
図4は、本発明の一実施形態に係る分割画像データ511を構成する画素の階調値と、擬似乱数の生成とについて説明する説明図である。
【0069】
図4(1)は、分割画像データ511を構成する画素の階調値の構成の例を示している。図4(1)が示す例は、各画素を構成する3原色のうち赤色の階調値を記憶するRチャネルと、緑色の階調値を記憶するGチャネルと、青色の階調値を記憶するBチャネルとをメモリ上に記憶していることを示す例である。そして、図4(1)が示す例は、各画素の画像データ内の位置を、XY平面上の位置で表わした場合を示す例である。
【0070】
図4(2)は、画素の階調値に基づいて所定の個数の擬似乱数を生成するための所定の演算について説明する図である。電子投票システム10は、所定の演算によって生成した所定の個数の擬似乱数に基づいて、所定の個数の画素の位置を算出することができる。
【0071】
ここで、1番目の画素のRチャネルのそれぞれのビットの値をP0R0からP0R7で表わし、n番目の画素のRチャネルのそれぞれのビットの値をPnR0からPnR7で表わす。同様に、1番目の画素のGチャネルのそれぞれのビットの値をP0G0からP0G7で表わし、n番目の画素のGチャネルのそれぞれのビットの値をPnG0からPnG7で表わす。すなわち、Rチャネル及びGチャネルのビット値は次の様な並びで表わせる。
【0072】
1番目のRチャネルのビット値=P0R0、P0R1、P0R2、P0R3、P0R4、P0R5、P0R6、P0R7
1番目のGチャネルのビット値=P0G0、P0G1、P0G2、P0G3、P0G4、P0G5、P0G6、P0G7


n番目のRチャネルのビット値=PnR0、PnR1、PnR2、PnR3、PnR4、PnR5、PnR6、PnR7
n番目のGチャネルのビット値=PnG0、PnG1、PnG2、PnG3、PnG4、PnG5、PnG6、PnG7


【0073】
所定の演算は、データを埋め込むために必要なn個(例えば、1024個)の擬似乱数を生成する。所定の演算は、例えば、Dat[i]=Dat[i]+X(k)*2のように表わすことができる。ここで、X(k)は、Rチャネル又はGチャネルの階調値のkビット目の値である。データを埋め込むために必要な個数より1個多い変数を用いて演算を実行することで、所定の演算は、ある特定のビットの数値がある特定の変数に演算されるような周期的配置になることを避けることができる。
【0074】
例えば、1024個の擬似乱数を生成するための所定の演算は次の様に行われる。
1巡目
Dat[0]=Dat[0]+P0R0*2
Dat[1]=Dat[1]+P0G0*2


Dat[1022]=Dat[1022]+P63R7*2
Dat[1023]=Dat[1023]+P63G7*2
Dat[1023+1]=Dat[1023+1]+P64R0*2
2巡目
Dat[0]=Dat[0]+P64G0*2
Dat[1]=Dat[1]+P64R1*2


Dat[1022]=Dat[1022]+P127G7*2
Dat[1023]=Dat[1023]+P128R0*2
Dat[1023+1]=Dat[1023+1]+P128G0*2
このような演算により、例えば、1025個の乱数のうち最初の1024個の疑似乱数を得る。
【0075】
次に、生成された所定の個数(例えば、1024個)の擬似乱数に基づいて、分割画像データ511内の所定の個数(例えば、1024個)の画素の位置を算出する。例えば、生成した擬似乱数(Dat[0]からDat[1023])を分割画像データ511の縦の画素数及び横の画素数でそれぞれ除算した剰余(Dat[0] mod w、Dat[0] mod h)によって、分割画像データ511内の位置(縦及び横の位置)を算出することができる。
【0076】
ここで、位置の算出において、剰余演算の法をそれぞれ(w−2)と(h−1)にすることで、Dat[i]に基づく位置の生成は、画像の対角線の近くに集中することを回避することができる。
【0077】
このようにして算出された位置が重複している場合には、ハッシュ変換が行われる。ハッシュ変換は、算出された位置を重複しない位置に変換する。例えば、分割画像データ511の画素の位置と、使用しているか否かのフラグを対応付けたハッシュテーブルを用いて、ハッシュ変換は、算出された位置が使用されている場合には、使用していない位置に変換することができる。または、ハッシュ変換は、ハッシュ変換のための演算(例えば、新格納位置x=(格納位置x+23)mod(w)、新格納位置y=(格納位置y+11)mod(h)を行うとしてもよい。
【0078】
ここで、図3に戻って、図3が示すP1からP10は、上述のようにして算出された分割画像データ511内の画素である。ここで、図5に基づいて、算出された画素にデータを埋め込むことについて説明する。
【0079】
図5は、本発明の一実施形態に係る分割画像データ511において、データのバイナリ値をビットに分解して埋め込むことを説明する図である。
【0080】
電子投票システム10は、上述のようにして算出した複数の画素の各格納用チャネルの所定のビットに、ビットの重みを対応付ける。すなわち、電子投票システム10は、各格納用チャネルの所定のビット(例えば、公開鍵を埋め込むビットは3)に、複数の画素を算出した順にビットの重みを対応付ける。例えば、電子投票システム10は、擬似乱数Dat[0]に基づいて位置を算出し、算出した画素P1の格納用チャネルの所定のビット(例えば、ビット3)にビットの重み「2」を対応付ける。同様にして、電子投票システム10は、擬似乱数Dat[n−1]に基づいて位置を算出し、算出した画素Pnの格納用チャネルの所定のビット(例えば、ビット3)にビットの重み「2n−1」を対応付ける。
【0081】
電子投票システム10は、ビットの重みが対応付けられた所定のビットに、データのバイナリ値をビットに分解して書き込むことによりデータを埋め込む。すなわち、電子投票システム10は、例えば、ビットの重み「2」が対応付けられた画素P1の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2」ビットの値を書き込む。次に、電子投票システム10は、「2」が対応付けられた画素P2の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2」ビットの値を書き込む。このように順次、電子投票システム10は、ビットの重み「2n−1」が対応付けられた画素の格納用チャネルのビット3に、公開鍵のバイナリ値を構成するビットのうち「2n−1」ビットの値を書き込むことによって公開鍵を埋め込む。このようにして、電子投票データ521は、作成される。
【0082】
ここで、図3に戻って、図3が示すP1からP10は、上述のようにして算出された分割画像データ511内の画素に、データを構成するビットを埋め込んだ画素である。
【0083】
図6は、本発明の一実施形態に係る分割画像データ511の別の例を示す図である。図6が示す例は、データを埋め込むための画素が、分割画像データ511内に設定された領域601内の画素の階調値に基づいて算出されることを示す例である。
【0084】
分割画像データ511内に設定された領域601は、XY平面内において、開始点611(a、b)と、終了点612(a+A、b+B)とによって表わされる。ここで、Aは、X方向の幅、Bは、Y方向の高さである。
【0085】
分割画像データ511内に設定された領域601を構成する画素の階調値に基づいて、上述の様に擬似乱数が生成され、生成された擬似乱数に基づいてデータを埋め込む複数の画素の位置が、算出される。そして、算出された複数の画素の各格納用チャネルの所定のビットにデータが、埋め込まれる。
【0086】
領域601は、開始位置及び領域の大きさを示すパラメータによって設定される。例えば、領域601を構成する画素に基づいてデータを埋め込むための複数の画素を算出する関数は、GetPos(*pos,num,par)のように表わされる。
【0087】
ここで、*posは、データを埋め込むための複数の画素へのポインタを示し、numは、データを埋め込むための複数の画素の個数を示し、parは、開始位置へのパラメータを示す引数である。すなわち、GetPos(*pos,num,par)は、parによって領域の開始位置(a+par、b+par)を求め、領域の大きさ(幅がA、高さがB)を設定する。そして、GetPos(*pos,num,par)は、設定した領域を構成する画素の階調値に基づいて、上述の様にnum個の擬似乱数を生成し、生成した擬似乱数に基づいて複数の画素の位置を算出し、算出した画素へのポインタを返す。ここで、a、b、A及びBは、例えば、パラメータ記憶部(図9、図10及び図11で後述する作成パラメータ記憶部131、投票パラメータ記憶部231及び開票パラメータ記憶部331)に予め記憶されている。また、この値が、a=b=0、A=電子投票データ521の幅、B=電子投票データ521の高さの場合、GetPos(*pos,num,0)は、電子投票データ521全体を構成する画素に基づいてデータを埋め込むための複数の画素を算出する。
【0088】
図7は、本発明の一実施形態に係る電子投票データ521のデータを埋め込むための複数の画素の位置を算出するために設定される領域の例を示す図である。
【0089】
図7(1)が示す例は、領域601内の画素に基づいて、公開鍵と、冗長情報と、投票内容及び確認コードとを埋め込むことを示す例である。例えば、電子投票データ作成装置100は、GetPos(*pos,1024,0)によって得られる1024個の画素621のBチャネルのビット3に、1024ビットの公開鍵を構成するビットを、対応付けられたビットの重みに従って書き込むことによって公開鍵を埋め込む。同様に、電子投票データ作成装置100は、Bチャネルのビット5に冗長情報を埋め込む。電子投票装置200は、同様に、GetPos(*pos,1024,0)によって取得した画素のBチャネルのビット3から公開鍵を復元する。そして、電子投票装置200は、Bチャネルのビット1に、復元した公開鍵によって暗号化した投票内容及び確認コードを埋め込む。電子開票装置300は、同様に、GetPos(*pos,1024,0)によって取得した画素のBチャネルのビット5から冗長情報を復元し、複数の電子投票データ521から復元した冗長情報に基づいて全体画像コードを作成し、作成した全体画像コードに基づいて算出した秘密鍵によって、Bチャネルのビット1から復元した投票内容及び確認コードを復号する。
【0090】
図7(2)が示す例は、後述する実施形態2において、領域601内の画素に基づいて、公開鍵と、冗長情報と、暗号化されたパスワードとを埋め込み、領域602内の画素に基づいて、投票内容及び確認コードを埋め込むことを示す例である。ここで、パスワードは、電子投票装置200において受け付けられるコードである(後述する実施形態2の図10参照)。また、領域602は、パスワードに基づいて作成した値(Ci)をパラメータ(par=Ci)とする領域である。例えば、電子投票データ作成装置100は、図7(1)と同様に、公開鍵と、冗長情報とを埋め込む。電子投票装置200は、図7(1)と同様に、公開鍵を復元し、受け付けたパスワードを暗号化する。そして、電子投票装置200は、GetPos(*pos,1024,0)によって取得した画素621のBチャネルのビット2に、暗号化したパスワードを埋め込むと共に、GetPos(*pos,1024,Ci)によって取得した画素622のBチャネルのビット1に、受け付けた投票内容及び確認コードを埋め込む。
【0091】
図7(3)が示す例は、後述する実施形態2において、図7(2)の例に加えて、さらに領域603内の画素に基づいて、固有コード(MD5)を埋め込むことを示す例である。ここで、固有コード(MD5)は、電子投票データ作成装置100が分割画像データ511に基づいて作成したコードである(後述する実施形態2の図9参照)。また、領域603は、電子投票データ作成装置100が受け付けた秘密コードに基づいて作成した値(CAS)を、パラメータ(par=CAS)とする領域である。例えば、電子投票データ作成装置100は、秘密コードを受け付ける(後述する実施形態2の図9参照)。そして、電子投票データ作成装置100は、秘密コードと、全体画像コードとに基づいて公開鍵と、冗長情報とを作成し、埋め込む。そして、電子投票データ作成装置100は、GetPos(*pos,1024,CAS)によって取得した画素623のBチャネルのビット4に、固有コード(MD5)を埋め込む。電子開票装置300は、復元した固有コード(MD5)が同一の電子投票データ521同士を一の電子投票データ521とみなす。
【0092】
[実施形態2]
実施形態2は、電子投票システム10の実施例であって、実施形態1に加えて、電子投票データ作成装置100は、全体画像コードと受け付けた秘密コードとに基づいて公開鍵を作成し、固有コード(MD5)を作成して電子投票データ521に埋め込む。電子投票装置200は、パスワードを受け付け、投票内容及び確認コードをパスワードに基づいて電子投票データ521に埋め込み、パスワードを暗号化して電子投票データ521に埋め込む。電子開票装置300は、同じ固有コード(MD5)の電子投票データ521を一の電子投票データ521とみなす。そして、電子開票装置300は、開票条件を判断し、電子投票データ作成装置100と同様に、全体画像コードと受け付けた秘密コードとに基づいて作成した秘密鍵に基づいて、電子投票データ521に埋め込まれた暗号化されたパスワードを復号し、復号したパスワードに基づいて投票内容及び確認コードを取得し、公表する。各装置の詳細について、図8から図20に従って、説明する。
【0093】
図8は、本発明の一実施形態に係る電子投票システム10の実施形態2の特徴を示す特徴図である。実施形態2の電子投票システム10は、実施形態1に加えて、秘密コードと、パスワードとを受け付け、固有コード(MD5)を作成する。特徴図に従って、電子投票システム10の概要を各装置ごとに説明する。
【0094】
電子投票データ作成装置100は、実施形態1に加えて、投票管理委員会によって入力された秘密コードを受け付ける。そして、電子投票データ作成装置100は、全体画像データ501の一部を変更し、受け付けた秘密コードと、全体画像コードとに基づいて算出した暗号秘密コードに基づいて鍵ペア(公開鍵と秘密鍵)を作成する。そして、電子投票データ作成装置100は、分割画像データ511内に設定された領域を構成する画素に基づいて、公開鍵を埋め込む位置を算出し、公開鍵を埋め込む。さらに、電子投票データ作成装置100は、電子投票データ521に基づいて固有コード(MD5)を作成し、電子投票データ521に埋め込む。
【0095】
電子投票装置200は、実施形態1に加えて、パスワードを受け付ける。そして、電子投票装置200は、受け付けたパスワードに基づいて作成した値(Ci)をパラメータ(par=Ci)とする電子投票データ521内の領域を設定し、設定した領域を構成する画素に基づいて算出した位置の画素に、受け付けた投票内容及び確認コードを埋め込む。そして、電子投票装置200は、受け付けたパスワードを、復元した公開鍵に基づいて暗号化し、電子投票データ521に埋め込む。
【0096】
電子開票装置300は、実施形態1に加えて、収集した電子投票データ521において、同一の固有コード(MD5)が存在するか否かを判断し、同一の固有コード(MD5)を有する電子投票データ521を一の電子投票データ521とみなす。さらに、電子開票装置300は、秘密コードを受け付け、受け付けた秘密コードと、収集した電子投票データ521に基づいて作成した全体画像コードとに基づいて鍵ペア(公開鍵と秘密鍵)のうち秘密鍵を作成する。そして、電子開票装置300は、復元したパスワードを秘密鍵に基づいて復号し、復号したパスワードに基づいて作成した値(Ci)をパラメータ(par=Ci)とする電子投票データ521内の領域を設定し、設定した領域を構成する画素に基づいて復元した投票内容及び確認コードを集計し、公表する。
【0097】
図9は、本発明の一実施形態に係る電子投票データ作成装置100の機能を示す機能ブロック図である。電子投票データ作成装置100は、秘密コード受付部101と、全体画像データ変更部102と、全体画像コード算出部103と、暗号秘密コード算出部104と、暗号鍵作成部105と、分割数設定部106と、全体画像分割部107と、作成領域設定部108と、公開鍵位置算出部109と、固有コード作成部110と、固有コード位置算出部111と、冗長情報書込部112と、電子投票データ作成部113と、電子投票データ出力部114と、作成パラメータ記憶部131とを備えている。このような電子投票データ作成装置100について各部ごとに説明する。
【0098】
作成パラメータ記憶部131は、電子投票データ521内に設定する領域についての所定のパラメータを記憶している。例えば、作成パラメータ記憶部131は、図6における、開始点の値(a、b)と、領域の幅Aと、領域の高さBとを記憶している。
【0099】
秘密コード受付部101は、秘密コード(CAS)の入力を受け付ける。秘密コードは、例えば、16桁からなるコードであって、選挙管理委員会によって秘密に管理されている。
【0100】
全体画像データ変更部102は、全体画像データ501の一部を、乱数に基づいて変更する。全体画像データ変更部102は、例えば、全体画像データ501を構成する画素であって、各分割画像データ511に少なくとも1個入るように乱数に基づいて算出した画素について、その画素の算出用チャネルのビット0を反転する。
【0101】
全体画像コード算出部103は、全体画像データ501に基づいて全体画像コード(CAI)を算出する。全体画像コードは、例えば、全体画像データ501を構成する3原色のうちの算出用チャネルの各階調値を、加算やビット演算等することによって算出される。
【0102】
暗号秘密コード算出部104は、秘密コード受付部101によって受け付けられた秘密コード(CAS)と、全体画像コード算出部103によって算出された全体画像コード(CAI)とに基づいて暗号秘密コード(CA)を算出する。暗号秘密コードは、秘密コードと全体画像コードとを、例えば、加算やビット演算等することによって算出される。
【0103】
暗号鍵作成部105は、暗号秘密コード算出部104によって算出された暗号秘密コードに基づいて公開鍵(N、e)と、公開鍵(N、e)に対応する秘密鍵(d)とを作成する。
【0104】
分割数設定部106は、全体画像データ501を分割する数を設定する。分割する数は、例えば、全体画像データ501を等分割することができる整数である。設定は、分割する数を、縦の分割数と横の分割数とによって入力されてもよい。
【0105】
全体画像分割部107は、分割数設定部106によって設定された数に基づいて全体画像データ501を分割する。例えば、設定された数が3×4の場合、全体画像分割部107は、縦を3分割し、横を4分割する。
【0106】
作成領域設定部108は、所定のパラメータに基づいて、全体画像分割部107によって分割された各分割画像データ511内に領域を設定する。例えば、設定する領域の開始位置への所定のパラメータがpar=0である場合、作成領域設定部108は、作成パラメータ記憶部131に記憶された値と、parとに基づいて、図7(3)の領域601を設定する。
【0107】
公開鍵位置算出部109は、作成領域設定部108によって設定された領域を構成する画素に基づいて、公開鍵を埋め込む公開鍵位置を算出する。すなわち、公開鍵位置算出部109は、上述のように領域601を構成する画素の階調値に基づいて、擬似乱数を生成し、生成した擬似乱数に基づいて複数の画素の位置を算出する。
【0108】
固有コード作成部110は、電子投票データ521に基づいて固有コード(MD5)を作成する。固有コード作成部110は、例えば、電子投票データ521を構成する画素の算出用チャネルの階調値を、加算やビット演算等し、電子投票データ521ごとに固有の固有コード(MD5)を作成する。
【0109】
固有コード位置算出部111は、作成領域設定部108によって設定された領域を構成する画素に基づいて固有コード(MD5)を埋め込む固有コード位置を算出する。例えば、固有コード位置算出部111は、秘密コード受付部101によって受け付けられた秘密コード(CAS)に基づいて電子投票データ521内に設定された領域(例えば、図7(3)の領域603)を構成する画素に基づいて、固有コード(MD5)を埋め込む固有コード位置を算出する。そして、電子投票データ作成部113は、固有コード位置算出部111によって算出された固有コード位置に、固有コード(MD5)を埋め込む。
【0110】
冗長情報書込部112は、算出された複数の画素の各格納用チャネルの所定のビットに、全体画像コードの冗長情報をビットに分解して埋め込む。
【0111】
電子投票データ作成部113は、公開鍵位置算出部109によって算出された公開鍵位置に、暗号鍵作成部105によって作成された公開鍵(N、e)を埋め込むことによって複数の電子投票データ521を固有に作成する。すなわち、電子投票データ作成部113は、上述のように、算出された複数の画素の各格納用チャネルの所定のビットに、公開鍵の値をビットに分解して埋め込む。
【0112】
電子投票データ出力部114は、電子投票データ作成部113によって作成された電子投票データ521を電子投票装置200に出力する。例えば、電子投票データ出力部114は、コンピュータネットワークを介して電子投票データ521を電子投票装置200に出力する。そして、電子投票データ出力部114は、電子投票データ521の投票状態を投票済み状態にする。
【0113】
図10は、本発明の一実施形態に係る電子投票装置200の機能を示す機能ブロック図である。電子投票装置200は、投票入力部201と、投票領域設定部202と、投票公開鍵位置算出部203と、公開鍵取得部204と、投票受付部205と、パスワード受付部206と、投票内容領域設定部207と、投票内容位置算出部208と、パスワード暗号化部209と、パスワード位置算出部210と、投票書込部211と、再投票受付部212と、投票出力部213と、投票パラメータ記憶部231とを備えている。このような電子投票装置200について各部ごとに説明する。
【0114】
投票入力部201は、電子投票データ521を入力する。投票入力部201は、例えば、コンピュータネットワークを介して電子投票データ作成装置100から電子投票データ521を入力する。
【0115】
投票パラメータ記憶部231は、所定のパラメータを記憶する。所定のパラメータは、電子投票データ作成装置100によって電子投票データ521内に公開鍵を埋め込むために設定された領域のパラメータ(作成パラメータ記憶部131の値)と同じである。
【0116】
投票領域設定部202は、投票パラメータ記憶部231に記憶された所定のパラメータに基づいて、投票入力部201によって入力された電子投票データ521を構成する画像データ内に領域を設定する。例えば、設定する領域の開始位置への所定のパラメータがpar=0である場合、投票領域設定部202は、電子投票データ作成装置100と同様に、図7(3)の領域601を設定する。
【0117】
投票公開鍵位置算出部203は、投票領域設定部202によって設定された領域を構成する画素に基づいて公開鍵位置を算出する。すなわち、投票公開鍵位置算出部203は、電子投票データ作成装置100と同様に、公開鍵位置を算出する。
【0118】
公開鍵取得部204は、投票公開鍵位置算出部203によって算出された公開鍵位置から、電子投票データ作成装置100によって埋め込まれた公開鍵を取得する。
【0119】
投票受付部205は、投票内容と、確認コードとの入力を受け付ける。
【0120】
パスワード受付部206は、パスワードの入力を受け付ける。
【0121】
投票内容領域設定部207は、パスワード受付部206によって受け付けられたパスワードに基づいて、電子投票データ521を構成する画像データ内に領域を設定する。例えば、投票内容領域設定部207は、パスワードに基づいて、設定する領域の開始位置への所定のパラメータ(Ci)を算出し、算出したパラメータによって、図7(3)の領域602を設定する。
【0122】
投票内容位置算出部208は、投票内容領域設定部207によって設定された領域を構成する画素に基づいて投票内容及び確認コードを埋め込む投票内容位置を算出する。
【0123】
パスワード暗号化部209は、公開鍵取得部204によって取得された公開鍵に基づいて、パスワード受付部206によって受け付けられたパスワードを暗号化する。
【0124】
パスワード位置算出部210は、電子投票データ521を構成する画素に基づいて、パスワード暗号化部209により暗号化されたパスワードを埋め込むパスワード位置を算出する。
【0125】
投票書込部211は、パスワード位置算出部210によって算出されたパスワード位置に、パスワード暗号化部209によって暗号化されたパスワードを埋め込むと共に、投票内容位置算出部208によって算出された投票内容位置に、投票受付部205によって受け付けられた投票内容及び確認コードを埋め込む。
【0126】
再投票受付部212は、再度の投票を受け付ける。例えば、再投票受付部212は、再度の投票であることを受け付けると、電子投票データ521の投票状態を白票状態にする。そして、投票書込部211は、新たに受け付けられた投票内容及び確認コードを、パスワードに基づいて埋め込む。または、後述する電子投票媒体700を用いると、電子投票装置200は、電子投票データ作成装置100に電子投票データ521を要求し、要求した電子投票データ521を受信して電子投票データ521を作成する。
【0127】
投票出力部213は、投票書込部211によって埋め込まれた電子投票データ521を電子開票装置300に出力する。例えば、投票出力部213は、コンピュータネットワークを介して電子投票データ521を電子開票装置300に出力する。
【0128】
図11は、本発明の一実施形態に係る電子開票装置300の機能を示す機能ブロック図である。電子開票装置300は、開票入力部301と、開票判断部302と、開票秘密コード受付部303と、開票固有コード位置算出部304と、固有コード取得部305と、電子投票データ検索部306と、電子投票データ決定部307と、開票全体画像コード算出部308と、開票暗号秘密コード算出部309と、秘密鍵作成部310と、開票領域設定部311と、開票パスワード位置算出部312と、暗号パスワード取得部313と、暗号パスワード復号部314と、開票投票内容領域設定部315と、開票投票位置算出部316と、投票データ取得部317と、開票公表部318と、開票パラメータ記憶部331と、電子投票データ記憶部332とを備えている。このような電子開票装置300について各部ごとに説明する。
【0129】
開票入力部301は、電子投票装置200から電子投票データ521を入力する。開票入力部301は、例えば、コンピュータネットワークを介して電子投票装置200から電子投票データ521を入力し、入力時の時刻を対応付ける。
【0130】
電子投票データ記憶部332は、開票入力部301によって入力された電子投票データ521を記憶する。
【0131】
開票判断部302は、電子投票データ521を開票するための開票条件を満たすか否かを判断する。開票条件は、例えば、電子投票データ521を開票するために定められた開票日時等である。
【0132】
開票秘密コード受付部303は、開票判断部302が開票条件を満たすと判断した場合に、秘密コード(CAS)の入力を受け付ける。この秘密コード(CAS)は、電子投票データ作成装置100が受け付けた秘密コード(CAS)と同一のコードでなければならない。
【0133】
開票固有コード位置算出部304は、電子投票データ521を構成する画素に基づいて固有コード(MD5)を埋め込む固有コード位置を算出する。例えば、開票固有コード位置算出部304は、開票秘密コード受付部303によって受け付けられた秘密コード(CAS)に基づいて電子投票データ521内に設定された領域(例えば、図7(3)の領域603)を構成する画素に基づいて、固有コード位置を算出する。
【0134】
固有コード取得部305は、開票固有コード位置算出部304によって算出された固有コード位置から、電子投票データ作成装置100によって埋め込まれた固有コード(MD5)を取得する。すなわち、固有コード取得部305は、上述のデータを復元する方法によって、固有コード(MD5)を復元する。
【0135】
電子投票データ検索部306は、固有コード取得部305によって取得された固有コード(MD5)に基づいて、電子投票データ記憶部332に記憶された電子投票データ521を検索する。
【0136】
電子投票データ決定部307は、電子投票データ検索部306によって固有コード(MD5)と同一の電子投票データ521が検索された場合には、検索された電子投票データ521の内から一の電子投票データ521を決定して電子投票データ記憶部332に記憶する。例えば、電子投票データ決定部307は、電子投票データ検索部306が検索した固有コード(MD5)が同一の複数の電子投票データ521において、開票入力部301が電子投票データ521に対応付けた時刻を比較し、最新の時刻に対応付けられた電子投票データ521を、入力した電子投票データ521として電子投票データ記憶部332に記憶する。なお、電子投票データ決定部307は、固有コード(MD5)が同一の複数の電子投票データ521において、最初に記憶した電子投票データ521のみを記憶するとしてもよい。
【0137】
開票全体画像コード算出部308は、電子投票データ記憶部332によって記憶された電子投票データ521に基づいて、投票後の画像コード(投票後CAI)を算出する。例えば、投票率が100パーセントであることが条件である場合には、投票後の画像コードは、収集した全ての電子投票データ521を構成する画素に基づいて、電子投票データ作成装置100と同様に作成される。例えば、投票率が一定の割合以上であることが条件である場合には、投票後の画像コード(投票後CAI)は、収集した電子投票データ521に電子投票データ作成装置100によって埋め込まれた冗長情報に基づいて、作成される。例えば、電子投票データ521が1件であっても開票できることが条件である場合には、投票後の画像コード(投票後CAI)は、収集した電子投票データ521に電子投票データ作成装置100によって埋め込まれた冗長情報(全体画像コードと同一)に基づいて、作成される。
【0138】
開票暗号秘密コード算出部309は、開票秘密コード受付部303によって受け付けられた秘密コード(CAS)と、開票全体画像コード算出部308によって算出された投票後の画像コード(投票後CAI)と、に基づいて投票後の暗号秘密コード(投票後CA)を算出する。
【0139】
秘密鍵作成部310は、開票暗号秘密コード算出部309によって算出された投票後の暗号秘密コード(投票後CA)に基づいて、秘密鍵を作成する。
【0140】
開票パラメータ記憶部331は、所定のパラメータを記憶する。所定のパラメータは、電子投票データ作成装置100によって電子投票データ521内に公開鍵を埋め込むために設定された領域のパラメータ(作成パラメータ記憶部131の値)と同じである。
【0141】
開票領域設定部311は、開票パラメータ記憶部331に記憶された所定のパラメータに基づいて、開票入力部301によって入力された電子投票データ521を構成する画像データ内に領域を設定する。例えば、設定する領域の開始位置への所定のパラメータがpar=0である場合、開票領域設定部311は、電子投票データ作成装置100と同様に、図7(3)の領域601を設定する。
【0142】
開票パスワード位置算出部312は、開票領域設定部311によって設定された領域を構成する画素に基づいてパスワード位置を算出する。
【0143】
暗号パスワード取得部313は、開票パスワード位置算出部312によって算出されたパスワード位置から、電子投票装置200によって埋め込まれた暗号化されたパスワードを取得する。
【0144】
暗号パスワード復号部314は、秘密鍵作成部310によって作成された秘密鍵に基づいて、暗号パスワード取得部313によって取得された暗号化されたパスワードを復号する。
【0145】
開票投票内容領域設定部315は、暗号パスワード復号部314部によって復号されたパスワードに基づいて、電子投票データ521を構成する画像データ内の領域を設定する。例えば、設定する領域の開始位置への所定のパラメータがpar=Ci(パスワードに基づいて算出した電子投票データ521内の位置)である場合、開票投票内容領域設定部315は、図7(3)の領域602を設定する。
【0146】
開票投票位置算出部316は、開票投票内容領域設定部315によって設定された領域を構成する画素に基づいて、投票内容位置を算出する。
【0147】
投票データ取得部317は、開票投票位置算出部316によって算出された投票内容位置から、電子投票装置200によって埋め込まれた投票内容及び確認コードを取得する。すなわち、投票データ取得部317は、上述のデータを復元する方法によって、投票内容及び確認コードを復元する。
【0148】
開票公表部318は、投票データ取得部317によって取得された投票内容及び確認コードを集計し、公表する。
【0149】
図12は、本発明の一実施形態に係る電子投票データ作成装置100の処理内容を示すフローチャートである。
【0150】
ステップS101において、電子投票データ作成装置100のCPU(以下、作成CPUという)は、秘密コード(CAS)の入力を受け付ける。より具体的には、作成CPUは、入力端末150(図9参照)から秘密コード(CAS)を受け付ける。そして、作成CPUは、全体画像データ501の一部を、乱数に基づいて変更する(例えば、秘密コード(CAS)の値に基づいて作成した位置の算出用チャネルのビット0を反転する)。その後、作成CPUは、処理をステップS102に移す。
【0151】
ステップS102において、作成CPUは、全体画像データ501に基づいて全体画像コード(CAI)を算出する。より具体的には、作成CPUは、全体画像データ501を構成する3原色のうちの算出用チャネルの各階調値を、加算して全体画像コード(CAI)を算出する。その後、作成CPUは、処理をステップS103に移す。
【0152】
ステップS103において、作成CPUは、秘密コード(CAS)と全体画像コード(CAI)とに基づいて暗号秘密コード(CA)を算出する。より具体的には、作成CPUは、受け付けられた秘密コード(CAS)と、算出された全体画像コード(CAI)とを加算して暗号秘密コード(CA)を算出する。その後、作成CPUは、処理をステップS104に移す。
【0153】
ステップS104において、作成CPUは、暗号秘密コード(CA)に基づいて公開鍵及び秘密鍵を作成する。より具体的には、作成CPUは、正整数e(例えば、60001)を選択する。次に、暗号秘密コード(CA)に基づいて大きい素数の組(p、q)を求め、pとqとの積であるNを求める。そして、作成CPUは、得られた(e、N)を公開鍵とする。その後、作成CPUは、処理をステップS105に移す。
【0154】
ステップS105において、作成CPUは、全体画像データ501を分割する。より具体的には、作成CPUは、設定によって入力された値に従って、全体画像データ501の縦及び横を分割し、分割画像データ511を作成する。その後、作成CPUは、処理をステップS106に移す。
【0155】
ステップS106において、作成CPUは、暗号化処理(後述する図13参照)によって、公開鍵を電子投票データ521に埋め込む。より具体的には、作成CPUは、作成パラメータ記憶部131に記憶したパラメータによって、GetPos処理(後述する図14参照)へのパラメータがpar=0である領域を設定し、設定された領域を構成する画素に基づいて、公開鍵を書き込む公開鍵位置を算出する。そして、作成CPUは、算出された複数の公開鍵位置の画素の各格納用チャネルのビット3に、公開鍵の値をビットに分解して埋め込む。ここで、設定された領域は、作成パラメータ記憶部131に記憶されたa、b、A及びBによって設定され、電子投票データ521全体の場合や、電子投票データ521内に設定された領域(例えば図7)の場合がある。その後、作成CPUは、処理をステップS107に移す。
【0156】
ステップS107において、作成CPUは、全体画像コードの冗長情報を作成し、電子投票データ521に埋め込む。より具体的には、ステップS106と同様に、作成CPUは、作成した全体画像コードの冗長情報をビットに分解して各格納用チャネルのビット5に埋め込む。その後、作成CPUは、処理をステップS108に移す。
【0157】
ステップS108において、作成CPUは、電子投票データ521の固有コード(MD5)を作成し、電子投票データ521に埋め込む。より具体的には、ステップS106と同様に、作成CPUは、作成した固有コード(MD5)をビットに分解して各格納用チャネルのビット4に埋め込む。その後、作成CPUは、処理をステップS109に移す。
【0158】
ステップS109において、作成CPUは、電子投票データ521を出力する。より具体的には、作成CPUは、コンピュータネットワークを介して電子投票データ521を電子投票装置200に出力する。そして、作成CPUは、電子投票データ521の投票状態を投票済み状態(算出された複数の画素の各格納用チャネルのビット6の例えば、2から2を1)にする。その後、作成CPUは、処理を終了する。
【0159】
図13は、本発明の一実施形態に係る暗号化処理の内容を示すフローチャートである。なお、暗号化処理は、電子投票データ作成装置100だけでなく、電子投票装置200、電子開票装置300及び電子投票媒体700(後述する図22参照)においても存在する。よって、本処理のCPUは、電子投票データ作成装置100のCPU、電子投票装置200のCPU、電子開票装置300のCPU又は電子投票媒体700のCPUに適宜読み替える。
【0160】
ステップS121において、CPUは、GetPos処理を実行する。その後、CPUは、処理をステップS122に移す。
【0161】
ステップS122において、CPUは、格納位置にビットの重みを対応付ける。より具体的には、CPUは、GetPos処理が算出した格納位置に、算出した順にビットの重み(2、2、・・・、21023)を対応付ける。その後、CPUは、処理をステップS123に移す。
【0162】
ステップS123において、CPUは、埋め込む値を構成するそれぞれのビットを、そのビットの重みと同じ重みに対応付けられた格納位置に、書き込む。より具体的には、CPUは、埋め込む値を構成するそれぞれのビットを、そのビットの重みと同じ重みに対応付けられた格納位置のうち格納用チャネルの所定のビットに、書き込む。その後、CPUは、処理を戻して本処理に移る処理の次の処理に移す。
【0163】
図14は、本発明の一実施形態に係るGetPosの処理内容を示すフローチャートである。なお、GetPosの処理は、例えば、引数が(*pas、num、par)であり、電子投票データ作成装置100だけでなく、電子投票装置200、電子開票装置300及び電子投票媒体700(後述する図22参照)においても存在する。よって、本処理のCPUは、電子投票データ作成装置100のCPU、電子投票装置200のCPU、電子開票装置300のCPU又は電子投票媒体700のCPUに適宜読み替える。
【0164】
ステップS131において、CPUは、格納位置を算出するための領域をparに基づいて設定する。例えば、CPUは、引数の値parに基づいて、開始点及び終了点のXY座標が(a+par、b+par)、(a+par+A、b+par+B)とする領域(横A、縦B)を設定する。ここで、a及びbは開始点の初期座標値、AはX方向の幅、BはY方向の高さである。a、b、A及びBは、所定の方法によって変更可能な値である。その後、CPUは、処理をステップS132に移す。
【0165】
ステップS132において、CPUは、設定した領域を構成する画素値のうちR及びGチャネルの階調値に基づいて、引数の値num個の擬似乱数を算出する。その後、CPUは、処理をステップS133に移す。
【0166】
ステップS133において、CPUは、算出した擬似乱数に基づいて格納位置を算出する。例えば、CPUは、格納位置x=擬似乱数mod(w−2)、格納位置y=擬似乱数mod(h−1)によって格納位置を算出する。その後、CPUは、処理をステップS134に移す。
【0167】
ステップS134において、CPUは、格納位置のハッシュ変換を行う。例えば、CPUは、算出した格納位置が重複していると判断した場合に、新格納位置x=(格納位置x+23)mod(w)、新格納位置y=(格納位置y+11)mod(h)によってハッシュ変換を行い、重複している格納位置を重複しない格納位置に変換する。そして、CPUは、算出したnum個の格納位置へのポインタ(*pos)を作成し、処理を戻して本処理に移る処理の次の処理に移す。
【0168】
図15は、本発明の一実施形態に係る電子投票装置200の処理内容を示すフローチャートである。電子投票装置200は、電子投票データ作成装置100の暗号化処理及びGetPos処理と同様の処理を備えている。
【0169】
ステップS201において、電子投票装置200のCPU(以下、投票CPUという)は、電子投票データ521を入力する。より具体的には、投票CPUは、コンピュータネットワークを介して電子投票データ作成装置100から電子投票データ521を入力する。再投票の場合には、投票CPUは、既に入力済みの電子投票データ521の中から、固有コード(MD5)によって電子投票データ521を検索する。その後、投票CPUは、処理をステップS202に移す。
【0170】
ステップS202において、投票CPUは、電子投票データ521に基づいて、公開鍵を埋め込んだ位置を算出する。より具体的には、投票CPUは、GetPos処理(図14参照)へのパラメータがpar=0である領域を設定し、設定された領域を構成する画素に基づいて、公開鍵位置を算出する。ここで、設定された領域は、投票パラメータ記憶部231のパラメータによって設定され、電子投票データ作成装置100において設定された領域と同じである。その後、投票CPUは、処理をステップS203に移す。
【0171】
ステップS203において、投票CPUは、算出した位置から公開鍵を取得する。より具体的には、投票CPUは、算出した公開鍵位置の格納用チャネルのビット3から、公開鍵のビットを復元し、公開鍵を取得する。その後、投票CPUは、処理をステップS204に移す。
【0172】
ステップS204において、投票CPUは、投票内容及び確認コードの入力を受け付ける。より具体的には、投票CPUは、入力端末250(図10参照)から投票内容及び確認コードの入力を受け付ける。その後、投票CPUは、処理をステップS205に移す。
【0173】
ステップS205において、投票CPUは、パスワードの入力を受け付ける。より具体的には、投票CPUは、入力端末250(図10参照)からパスワードの入力を受け付ける。その後、投票CPUは、処理をステップS206に移す。
【0174】
ステップS206において、投票CPUは、パスワードに基づいて投票内容及び確認コードを埋め込む位置を算出する。より具体的には、投票CPUは、パスワードに基づいて領域設定用の値(Ci)を算出し、GetPos処理(図14参照)へのパラメータがpar=Ciである領域を設定し、設定された領域を構成する画素に基づいて、投票内容及び確認コードを書き込む投票位置を算出する。その後、投票CPUは、処理をステップS207に移す。
【0175】
ステップS207において、投票CPUは、算出した位置に投票内容及び確認コードを埋め込む。より具体的には、投票CPUは、算出した位置の各格納用チャネルのビット1に、投票内容及び確認コードを構成するビットを書き込む。その後、投票CPUは、処理をステップS208に移す。
【0176】
ステップS208において、投票CPUは、公開鍵に基づいてパスワードを暗号化し、電子投票データ521に埋め込む。より具体的には、投票CPUは、GetPos処理(図14参照)へのパラメータがpar=0である領域を設定し、設定された領域を構成する画素に基づいて、パスワード位置を算出する。そして、投票CPUは、復元した公開鍵に基づいて、受け付けたパスワードを暗号化し、暗号化したパスワードを構成するビットを、算出したパスワード位置の各格納用チャネルのビット2に書き込む。その後、投票CPUは、処理をステップS209に移す。
【0177】
ステップS209において、投票CPUは、電子投票データ521を出力する。より具体的には、投票CPUは、コンピュータネットワークを介して電子投票データ521を電子開票装置300に出力する。その後、投票CPUは、処理を終了する。
【0178】
図16は、本発明の一実施形態に係る電子開票装置300の処理内容を示すフローチャートである。電子開票装置300は、電子投票データ作成装置100の暗号化処理及びGetPos処理と同様の処理を備えている。
【0179】
ステップS301において、電子開票装置300のCPU(以下、開票CPUという)は、電子投票データ521を入力し、時刻を対応付けて記憶する。より具体的には、開票CPUは、コンピュータネットワークを介して電子投票データ521を電子投票装置200から入力し、入力した時の時刻を電子投票データ521に対応付けて電子投票データ記憶部332に記憶する。その後、開票CPUは、処理をステップS302に移す。
【0180】
ステップS302において、開票CPUは、開票条件を満たすか否かを判断する。すなわち、開票CPUは、現在の時刻を取得し、開票する時刻になったか否かを判断する。この判断がYESの場合、開票CPUは、処理をステップS303に移し、NOの場合、開票CPUは、処理をステップS301に移す。ここで、時刻の取得は、時計部(図示せず)を設けて、現在の時刻を取得するとしてもよいし、標準時を含む標準電波を受信して時刻を取得するとしてもよい。
【0181】
ステップS303において、開票CPUは、秘密コード(CAS)の入力を受け付ける。より具体的には、開票CPUは、入力端末350(図11参照)から秘密コード(CAS)の入力を受け付ける。その後、開票CPUは、処理をステップS304に移す。
【0182】
ステップS304において、開票CPUは、電子投票データ521から固有コード(MD5)を取得し、同一の固有コード(MD5)を有する電子投票データ521が存在すると判断した場合に、最新の時刻に対応付けられた電子投票データ521を電子投票データ記憶部332に記憶する。より具体的には、開票CPUは、電子投票データ記憶部332に記憶された各々の電子投票データ521から各々の固有コード(MD5)を取得する。固有コード(MD5)は、電子投票データ作成装置100によって埋め込まれた画素から復元することによって取得できる。そして、開票CPUは、取得した固有コード(MD5)によって電子投票データ記憶部332内を検索し、同一の固有コード(MD5)を有する電子投票データ521が存在すると判断した場合に、同一の固有コード(MD5)を有する電子投票データ521に対応付けられた時刻を比較し、最新の時刻に対応付けられた電子投票データ521を電子投票データ記憶部332に記憶する。その後、開票CPUは、処理をステップS305に移す。なお、開票CPUは、時刻を比較し、最初の電子投票データ521を電子投票データ記憶部332に記憶する、としてもよい。
【0183】
ステップS305において、開票CPUは、入力した電子投票データ521から投票後の画像コードを取得する。より具体的には、開票CPUは、収集した電子投票データ521に埋め込まれた冗長情報に基づいて、投票後の画像コードを取得する。その後、開票CPUは、処理をステップS306に移す。
【0184】
ステップS306において、開票CPUは、秘密コードと投票後の画像コードとに基づいて投票後の暗号秘密コードを算出する。より具体的には、開票CPUは、電子投票データ作成装置100と同様に、受け付けられた秘密コード(CAS)と、取得した投票後の画像コード(投票後のCAI)とを加算して投票後の暗号秘密コード(投票後のCA)を算出する。その後、開票CPUは、処理をステップS307に移す。
【0185】
ステップS307において、開票CPUは、投票後の暗号秘密コードに基づいて秘密鍵を算出する。より具体的には、開票CPUは、電子投票データ作成装置100と同様に、秘密鍵を算出する。その後、開票CPUは、処理をステップS308に移す。
【0186】
ステップS308において、開票CPUは、入力した電子投票データ521から暗号化されたパスワードを取得し、秘密鍵によって復号する。より具体的には、開票CPUは、GetPos処理(図14参照)へのパラメータがpar=0である領域を設定する。ここで、設定された領域は、開票パラメータ記憶部331のパラメータによって設定され、電子投票データ作成装置100において設定された領域と同じである。次に、開票CPUは、設定された領域を構成する画素に基づいて、パスワードが書き込まれたパスワード位置を算出し、算出したパスワード位置の格納用チャネルのビット2から暗号化されたパスワードを復元する。そして、開票CPUは、復元したパスワードを秘密鍵に基づいて復号する。その後、開票CPUは、処理をステップS309に移す。
【0187】
ステップS309において、開票CPUは、復号したパスワードに基づいて、投票内容及び確認コードを取得する。より具体的には、開票CPUは、復号したパスワードに基づいて領域設定用の値(Ci)を算出し、GetPos処理(図14参照)へのパラメータがpar=Ciである領域を設定し、設定された領域を構成する画素に基づいて、投票位置を算出する。そして、開票CPUは、算出した投票位置の格納用チャネルのビット1から、投票内容及び確認コードのビットを復元し、投票内容及び確認コードを取得する。その後、開票CPUは、処理をステップS310に移す。
【0188】
ステップS310において、開票CPUは、取得した投票内容及び確認コードを集計し、公表する。より具体的には、開票CPUは、取得した投票内容及び確認コードを投票内容によって集計して、投票結果を取得する。そして、開票CPUは、投票内容及び確認コードをランダムに表示装置360に表示する(図20参照)。また、開票CPUは、集計内容の送信要求を受信し、受信した要求に従って集計内容を送信する。その後、開票CPUは、処理を終了する。
【0189】
図17は、本発明の一実施形態に係るビットの対応付けテーブルを示す図である。
【0190】
ビットの対応付けテーブルは、画素の位置に階調値と、ビットの重みとを対応付けて記憶している。画素の位置は、GetPos処理によって算出された画素の位置である。ビットの重みは、GetPos処理が算出した順に、2から2nー1を対応付けて記憶している。
【0191】
図18は、本発明の一実施形態に係る電子投票データ作成装置100において、電子投票データ521を作成する例を示す図である。
【0192】
図18が示す例は、電子投票データ作成装置100が、全体画像データ501を表示装置160に表示していることを示す例である。電子投票データ作成装置100は、秘密コード入力欄161に入力された秘密コードを受け付ける。また、電子投票データ作成装置100は、分割数設定欄162に入力された分割数を受け付けて、全体画像データ501を分割して電子投票データ521を作成する。
【0193】
図19は、本発明の一実施形態に係る電子投票装置200において、電子投票データ521を表示する例を示す図である。
【0194】
図19が示す例は、電子投票装置200が、電子投票データ521を表示装置260に表示していることを示す例である。電子投票装置200は、投票入力欄261に入力された投票内容を受け付ける。そして、電子投票装置200は、確認コード入力欄262に入力された確認コードを受け付ける。電子投票装置200は、電子投票媒体700(後述する図22参照)が接続されている場合、電子投票媒体700が確認コードを自動的に作成する。
【0195】
図20は、本発明の一実施形態に係る電子開票装置300において、電子投票データ521を集計し、公表する例を示す図である。
【0196】
図20が示す例は、電子開票装置300が、集計内容を表示装置360に表示していることを示す例である。電子開票装置300は、表示装置360に、投票内容と、確認コードとを並べて表示することによって、投票者に投票結果が正しく集計されていることを示すことができ、投票者に投票結果を確認させることができる。
【0197】
[実施形態3]
実施形態3は、暗号化処理をする暗号化装置400の実施形態である。
【0198】
図21は、本発明の一実施形態に係る暗号化装置400の機能を示す機能ブロック図である。暗号化装置400は、画像読込部401と、領域設定部402と、擬似乱数生成部403と、位置算出部404と、ハッシュ値算出部405と、重み対応付部406と、埋込部407とを備える。
【0199】
画像読込部401は、3原色の階調値から構成される画素によって構成される画像を読み込む。
【0200】
領域設定部402は、画像内に領域を設定する。
【0201】
擬似乱数生成部403は、画像読込部401によって読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する。さらに、擬似乱数生成部403は、領域設定部402によって設定された領域を構成する画素のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する。
【0202】
位置算出部404は、擬似乱数生成部403によって生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出する。さらに、ハッシュ値算出部405は、画素の位置を引数としてハッシュ値を算出する。そして、位置算出部404は、算出した画素の位置が重複する場合に、重複した画素の位置を引数としてハッシュ値算出部405によってハッシュ値を算出し、算出したハッシュ値に基づいて画素の位置を算出する。例えば、領域設定部402、擬似乱数生成部403、位置算出部404及びハッシュ値算出部405のフローチャートは、実施形態2の図14と同様である。
【0203】
重み対応付部406は、位置算出部404によって算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、位置算出部404が算出した順に、ビットの重みを対応付ける。
【0204】
埋込部407は、重み対応付部406によって重みが対応付けられた所定のビットに、情報を構成するビットのうち、所定のビットに対応付けられた重みと同じ重みのビットの値を埋め込む。例えば、重み対応付部406及び埋込部407のフローチャートは、実施形態2の図13と同様である。
【0205】
[実施形態4]
実施形態4は、電子投票媒体700によって、電子投票データ521に投票内容及び確認コードを書き込み、再度の投票をする実施形態である。
【0206】
図22は、本発明の一実施形態に係る電子投票媒体700の機能を示す機能ブロック図である。電子投票媒体700は、時刻取得部701と、投票識別コード作成部702と、投票識別コード出力部703と、投票データ入力部704と、確認コード作成部705と、パスワード作成部706と、投票内容書込部707と、公開鍵取得部708と、暗号化書込部709と、電子投票データ出力部710と、表示部711と、媒体パラメータ記憶部731と、投票データ記憶部732と、媒体識別情報記憶部733とを備える。
【0207】
媒体パラメータ記憶部731は、電子投票データ521内に設定する領域についての所定のパラメータを記憶している。例えば、媒体パラメータ記憶部731は、実施形態1の図6における、開始点の値(a、b)と、領域の幅Aと、領域の高さBとを記憶している。
【0208】
媒体識別情報記憶部733は、電子投票媒体を識別するための媒体識別情報(製品ID)を記憶する。
【0209】
時刻取得部701は、現在の時刻を取得する。
【0210】
投票識別コード作成部702は、媒体識別情報記憶部733によって記憶された媒体識別情報(製品ID)と、時刻取得部701によって取得された時刻を含むシリアル番号とに基づいて、投票ごとに投票識別コード(投票IDという)を作成する。例えば、投票識別コード作成部702は、製品IDをPQRS01234とすると、投票IDとして、PQRS01234−200901231659−0001を作成する。なお、電子投票データ作成装置100は、受信した投票IDに基づいて、初回と同じ電子投票データ521を送信する場合、投票IDのうち固定である製品IDの部分を利用する。
【0211】
投票識別コード出力部703は、投票IDのうち最新の投票IDを出力する。
【0212】
投票データ入力部704は、公開鍵が所定の方法によって書き込まれた画像データである電子投票データ521と、受け付けられた候補者を示す投票内容とを入力する。
【0213】
確認コード作成部705は、投票内容に対応付けて確認コードを作成する。
【0214】
パスワード作成部706は、投票内容及び確認コードを抽出するためのパスワードを作成する。
【0215】
投票内容書込部707は、電子投票データ521に、パスワード作成部706によって作成されたパスワードに基づいて、投票内容及び確認コードを埋め込む。例えば、投票内容書込部707は、実施形態2の電子投票装置200と同様に、パスワード作成部706によって作成されたパスワードに基づいて、GetPos処理(図14参照)へのパラメータ(par=Ci)を算出し、算出したパラメータによって領域を設定する。次に、投票内容書込部707は、設定された領域を構成する画素に基づいて投票内容及び確認コードを埋め込む投票内容位置を算出し、算出した投票内容位置に、投票内容及び確認コードをビットに分解して埋め込む。
【0216】
公開鍵取得部708は、投票データ入力部704によって入力された電子投票データ521から公開鍵を取得する。
【0217】
暗号化書込部709は、電子投票データ521に、公開鍵取得部708によって取得された公開鍵に基づいてパスワードを暗号化して埋め込む。例えば、暗号化書込部709は、実施形態2の電子投票装置200と同様に、GetPos処理(図14参照)へのパラメータがpar=0である領域を設定する。次に、暗号化書込部709は、設定された領域を構成する画素に基づいてパスワードを埋め込むパスワード位置を算出する。そして、暗号化書込部709は、算出したパスワード位置に、暗号化されたパスワードをビットに分解して埋め込む。
【0218】
電子投票データ出力部710は、投票内容及び確認コードと、パスワードとが書き込まれた電子投票データ521を出力する。
【0219】
投票データ記憶部732は、投票内容及び確認コードに、パスワードと、投票IDとを対応付けて記憶する。
【0220】
表示部711は、投票データ記憶部732に記憶された投票内容及び確認コードと、パスワードと、投票IDとを対応付けて表示する。
【0221】
図23は、本発明の一実施形態に係る電子投票媒体700の例を示す図である。電子投票媒体700は、CPU(図示せず、以下媒体CPUという)、記憶部(図示せず、媒体パラメータ記憶部731、投票データ記憶部732及び媒体識別情報記憶部733を含む)、接続部734、表示装置735及び操作ボタン(ID作成ボタン721、確認コード作成ボタン722、表示ボタン723、投票ボタン724)を備えている。接続部734は、例えば、USB(Universal Serial Bus)又は近距離無線通信等の接続インターフェースによって構成されている。表示装置735は、例えば、液晶ディスプレイ等によって構成される。
【0222】
電子投票媒体700は、電子投票データ521を書き込む媒体として、例えば、次のように利用される。
(1)最初に、電子投票データ作成装置100は電子投票媒体700を接続する。電子投票データ作成装置100は、電子投票媒体700が作成した投票IDを登録し、電子投票媒体700に電子投票データ521を書き込む。電子投票媒体700は、最新の投票IDをアクティブにする。
(2)電子投票装置200は、電子投票媒体700を接続し、受け付けた投票内容を電子投票媒体700に書き込む。電子投票媒体700は、確認コードを作成し、パスワードを作成する。そして、電子投票媒体700は、電子投票データ521に、投票内容及び確認コードと、パスワードとを埋め込む。
(3)電子開票装置300は、電子投票媒体700を接続し、投票内容及び確認コードを入力して集計し、公表する。
【0223】
さらに、電子投票媒体700は、電子投票システム10において次のように利用される。図24は、本発明の一実施形態に係る電子投票媒体700を利用した電子投票システム10の例を示す図である。電子投票媒体700が接続されたパソコンや携帯端末等(以下、電子投票媒体接続端末790という)は、電子投票データ作成装置100及び電子開票装置300と通信を行い、電子投票データ521の送受信を行う。電子投票媒体接続端末790は、電子投票システム10用のプログラムをダウンロードして動作する。
【0224】
電子投票媒体接続端末790は、電子投票媒体700を接続する。電子投票媒体700は、投票IDを作成する。電子投票媒体接続端末790は、電子投票媒体700から読み込んだ投票IDに基づいて、電子投票データ作成装置100に電子投票データ521の送信要求を送信する。そして、電子投票媒体接続端末790は、電子投票データ作成装置100から電子投票データ521を受信し、受信した電子投票データ521を表示する(例えば、図19のような表示であって、確認コードを入力する欄がない表示をする)。そして、電子投票媒体接続端末790は、投票内容の入力を受け付け、受け付けた投票内容と、電子投票データ521とを電子投票媒体700に書き込む。電子投票媒体700は、電子投票データ521から公開鍵を取得し、取得した公開鍵に基づいて、自動生成したパスワードを暗号化し、投票内容及び自動生成した確認コードを電子投票データ521に書き込む。そして、電子投票媒体接続端末790は、電子投票媒体700から、電子投票データ521を読み込み、電子開票装置300に送信する。
【0225】
再投票をする場合、電子投票媒体接続端末790は、電子投票媒体700からアクティブになっている最新の投票IDを読み込み、読み込んだ投票IDに基づいて、電子投票データ作成装置100に電子投票データ521の送信要求を送信する。電子投票データ作成装置100は、受信した投票IDに基づいて、初回と同じ電子投票データ521を送信する。そして、上述と同様に、電子投票媒体接続端末790は、受信した電子投票データ521に基づいて、新たな投票内容を受け付け、電子投票媒体700が書き込んだ電子投票データ521を電子開票装置300に送信する。
【0226】
図25は、本発明の一実施形態に係る電子投票媒体700を利用する投票プログラムの処理内容を示すフローチャートである。
【0227】
ステップS401において、電子投票媒体接続端末790のCPU(以下、端末CPUという)は、電子投票媒体700から投票IDを読み込む。その後、端末CPUは、処理をステップS402に移す。
【0228】
ステップS402において、端末CPUは、投票IDに基づいて電子投票データ作成装置100から電子投票データ521を受信する。その後、端末CPUは、処理をステップS403に移す。
【0229】
ステップS403において、端末CPUは、電子投票データ521を表示する。その後、端末CPUは、処理をステップS404に移す。
【0230】
ステップS404において、端末CPUは、投票内容を受け付ける。その後、端末CPUは、処理をステップS405に移す。
【0231】
ステップS405において、端末CPUは、投票内容と電子投票データ521とを電子投票媒体700に書き込む。その後、端末CPUは、処理をステップS406に移す。
【0232】
ステップS406において、端末CPUは、電子投票媒体700から暗号化された電子投票データ521を読み込む。その後、端末CPUは、処理をステップS407に移す。
【0233】
ステップS407において、端末CPUは、読み込んだ電子投票データ521を電子開票装置300に送信する。その後、端末CPUは、処理を終了する。
【0234】
図26は、本発明の一実施形態に係る電子投票媒体700の処理内容を示すフローチャートである。
【0235】
ステップS501において、媒体CPUは、入力したデータが電子投票データ521か否かを判断する。この判断がYESの場合、媒体CPUは、処理をステップS502に移し、NOの場合、媒体CPUは、処理をステップS503に移す。
【0236】
ステップS502において、媒体CPUは、投票内容と電子投票データ521とを記憶部に記憶する。その後、媒体CPUは、処理をステップS501に移す。
【0237】
ステップS503において、媒体CPUは、ID作成ボタン721押下か否かを判断する。この判断がYESの場合、媒体CPUは、処理をステップS504に移し、NOの場合、媒体CPUは、処理をステップS505に移す。
【0238】
ステップS504において、媒体CPUは、投票IDを作成する。より具体的には、媒体CPUは、現在の時刻を含んだシリアル番号と、媒体識別情報記憶部733に記憶された製品IDとに基づいて投票IDを作成する。そして、媒体CPUは、作成した最新の投票IDのみをアクティブにする。その後、媒体CPUは、処理をステップS501に移す。
【0239】
ステップS505において、媒体CPUは、確認コード作成ボタン722押下か否かを判断する。この判断がYESの場合、媒体CPUは、処理をステップS506に移し、NOの場合、媒体CPUは、処理をステップS507に移す。
【0240】
ステップS506において、媒体CPUは、確認コードとパスワードとを作成し、記憶する。より具体的には、媒体CPUは、確認コード作成ボタン722押下によって、確認コード用の乱数とパスワード用の乱数とを次々と発生させ、2度目の確認コード作成ボタン722押下によって押下時に発生させていた乱数を決定する。そして、媒体CPUは、決定した乱数と現在の時刻とを組合せて確認コードとパスワードとを作成し、投票内容に対応付けて確認コードとパスワードとを記憶部に記憶する。その後、媒体CPUは、処理をステップS501に移す。
【0241】
ステップS507において、媒体CPUは、表示ボタン723押下か否かを判断する。この判断がYESの場合、媒体CPUは、処理をステップS508に移し、NOの場合、媒体CPUは、処理をステップS509に移す。
【0242】
ステップS508において、媒体CPUは、投票内容及び確認コードとパスワードとを表示する。より具体的には、媒体CPUは、検出した表示ボタン723押下によって投票内容及び確認コードとパスワードとを表示装置735に表示する。そして、媒体CPUは、検出した表示ボタン723押下ごとに記憶部に記憶している投票内容及び確認コードとパスワードとを表示装置735に表示する。その後、媒体CPUは、処理をステップS501に移す。
【0243】
ステップS509において、媒体CPUは、投票ボタン724押下か否かを判断する。この判断がYESの場合、媒体CPUは、処理をステップS510に移し、NOの場合、媒体CPUは、処理をステップS501に移す。
【0244】
ステップS510において、媒体CPUは、電子投票データ521に投票内容及び確認コードと、パスワードとを埋め込む。より具体的には、媒体CPUは、パスワードに基づいてGetPos処理(図14参照)へのパラメータ(par=Ci)を算出し、算出したパラメータによって電子投票データ521内に領域を設定し、設定した領域を構成する画素に基づいて算出した投票内容位置に、投票内容及び確認コードを埋め込む。次に、媒体CPUは、電子投票データ521から公開鍵を取得し、取得した公開鍵に基づいてパスワードを暗号化する。そして、媒体CPUは、GetPos処理(図14参照、par=0)によって算出された電子投票データ521内のパスワード位置に、暗号化したパスワードを埋め込む。その後、媒体CPUは、処理をステップS501に移す。
【0245】
図27は、本発明の一実施形態に係る電子投票媒体700を利用する場合の電子投票データ作成装置100の処理内容を示すフローチャートである。
【0246】
ステップS151において、作成CPUは、電子投票データ521を作成する。作成CPUは、図12のステップS101からステップS108と同様に電子投票データ521を作成する。その後、作成CPUは、処理をステップS152に移す。
【0247】
ステップS152において、作成CPUは、投票IDを受信か否かを判断する。すなわち、作成CPUは、電子投票媒体接続端末790から投票IDを受信したか否かを判断する。この判断がYESの場合、作成CPUは、処理をステップS153に移し、NOの場合、作成CPUは、処理を終了する。
【0248】
ステップS153において、作成CPUは、最初か否かを判断する。すなわち、作成CPUは、投票IDが記憶部(図示せず)に記憶されているか否かを判断する。この判断がYESの場合、作成CPUは、処理をステップS154に移し、NOの場合、作成CPUは、処理をステップS156に移す。
【0249】
ステップS154において、作成CPUは、電子投票データ521に投票IDを対応付けて記憶する。その後、作成CPUは、処理をステップS155に移す。
【0250】
ステップS155において、作成CPUは、電子投票データ521を送信する。すなわち、作成CPUは、投票IDを送信した電子投票媒体接続端末790に電子投票データ521を送信する。その後、作成CPUは、処理を終了する。
【0251】
ステップS156において、作成CPUは、受信した投票IDによって検索し、検索した投票IDに対応付けられた電子投票データ521を取得する。すなわち、作成CPUは、電子投票データ521と投票IDとを対応付けて記憶した記憶部(図示せず)を投票IDによって検索し、検索した投票IDに対応付けられた電子投票データ521を取得する。その後、作成CPUは、処理をステップS155に移す。
【0252】
図28は、本発明の一実施形態に係る電子投票媒体700を利用する場合の電子開票装置300の処理内容を示すフローチャートである。
【0253】
ステップS351において、開票CPUは、電子投票データ521を入力する。すなわち、開票CPUは、図16のステップS301と同様に、電子投票データ521を入力する。その後、開票CPUは、処理をステップS352に移す。
【0254】
ステップS352において、開票CPUは、投票IDを受信か否かを判断する。すなわち、開票CPUは、電子投票媒体接続端末790から投票IDを受信したか否かを判断する。この判断がYESの場合、開票CPUは、処理をステップS353に移し、NOの場合、開票CPUは、処理をステップS355に移す。
【0255】
ステップS353において、開票CPUは、最初か否かを判断する。すなわち、開票CPUは、投票IDが電子投票データ記憶部332に記憶されているか否かを判断する。この判断がYESの場合、開票CPUは、処理をステップS354に移し、NOの場合、開票CPUは、処理をステップS357に移す。
【0256】
ステップS354において、開票CPUは、電子投票データ521に投票IDを対応付けて電子投票データ記憶部332に記憶する。その後、開票CPUは、処理をステップS355に移す。
【0257】
ステップS355において、開票CPUは、開票条件を満たすか否かを判断する。すなわち、開票CPUは、図16のステップS302と同様に、開票条件を満たすか否かを判断する。この判断がYESの場合、開票CPUは、処理をステップS356に移し、NOの場合、開票CPUは、処理をステップS351に移す。
【0258】
ステップS356において、開票CPUは、開票処理を行う。すなわち、開票CPUは、図16のステップS303からステップS310と同様に、開票処理を行う。その後、開票CPUは、処理を終了する。
【0259】
ステップS357において、開票CPUは、受信した投票IDによって検索し、検索した投票IDに対応付けられた電子投票データ521に上書きする。すなわち、開票CPUは、電子投票データ521と投票IDとを対応付けて記憶した電子投票データ記憶部332を投票IDのうち製品IDによって検索し、検索した製品IDを含む投票IDに対応付けられた電子投票データ521に上書きして電子投票データ記憶部332に記憶する。その後、開票CPUは、処理をステップS355に移す。なお、開票CPUは、投票IDに含まれる時刻に基づいて上書きするとしてもよい。
【0260】
本実施形態によれば、暗号化装置400は、3原色の階調値から構成される画素によって構成される画像を読み込み、読み込まれた画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成し、生成された複数の各擬似乱数に基づいて、所定の演算を実行し、画像内の画素の位置を順に複数個算出する。そして、暗号化装置400は、算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、擬似乱数を生成するために用いた一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、擬似乱数を算出した順に、ビットの重みを対応付け、重みが対応付けられた所定のビットに、情報を構成するビットのうち、所定のビットに対応付けられた重みと同じ重みのビットの値を埋め込む。したがって、画像を構成する画素の階調値が変更されている場合には情報を埋め込んだ画素を算出することができないので、暗号化装置400は、画像データが改竄されている場合には復号できないような暗号を作成することができる。
【0261】
さらに、暗号化装置400は、画像内に領域を設定し、設定された領域を構成する画素の階調値に基づいて算出した画素に、情報を埋め込む。さらに、暗号化装置400は、算出した画素の位置が重複する場合に、算出したハッシュ値に基づいて算出した画素に、情報を埋め込む。したがって、暗号化装置400は、復号することが困難な暗号を作成することができる。
【0262】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【0263】
10 電子投票システム
100 電子投票データ作成装置
101 秘密コード受付部
102 全体画像データ変更部
103 全体画像コード算出部
104 暗号秘密コード算出部
105 暗号鍵作成部
106 分割数設定部
107 全体画像分割部
108 作成領域設定部
109 公開鍵位置算出部
110 固有コード作成部
111 固有コード位置算出部
112 冗長情報書込部
113 電子投票データ作成部
114 電子投票データ出力部
131 作成パラメータ記憶部
200 電子投票装置
201 投票入力部
202 投票領域設定部
203 投票公開鍵位置算出部
204 公開鍵取得部
205 投票受付部
206 パスワード受付部
207 投票内容領域設定部
208 投票内容位置算出部
209 パスワード暗号化部
210 パスワード位置算出部
211 投票書込部
212 再投票受付部
213 投票出力部
231 投票パラメータ記憶部
300 電子開票装置
301 開票入力部
302 開票判断部
303 開票秘密コード受付部
304 開票固有コード位置算出部
305 固有コード取得部
306 電子投票データ検索部
307 電子投票データ決定部
308 開票全体画像コード算出部
309 開票暗号秘密コード算出部
310 秘密鍵作成部
311 開票領域設定部
312 開票パスワード位置算出部
313 暗号パスワード取得部
314 暗号パスワード復号部
315 開票投票内容領域設定部
316 開票投票位置算出部
317 投票データ取得部
318 開票公表部
331 開票パラメータ記憶部
332 電子投票データ記憶部
400 暗号化装置
401 画像読込部
402 領域設定部
403 擬似乱数生成部
404 位置算出部
405 ハッシュ値算出部
406 重み対応付部
407 埋込部
700 電子投票媒体
701 時刻取得部
702 投票識別コード作成部
703 投票識別コード出力部
704 投票データ入力部
705 確認コード作成部
706 パスワード作成部
707 投票内容書込部
708 公開鍵取得部
709 暗号化書込部
710 電子投票データ出力部
711 表示部
721 ID作成ボタン
722 確認コード作成ボタン
723 表示ボタン
724 投票ボタン
731 媒体パラメータ記憶部
732 投票データ記憶部
733 媒体識別情報記憶部
734 接続部
735 表示装置

【特許請求の範囲】
【請求項1】
画像に情報を埋め込むことによって分散する暗号化装置であって、
3原色の階調値から構成される画素によって構成される画像を読み込む画像読込手段と、
前記画像読込手段によって読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する擬似乱数生成手段と、
前記擬似乱数生成手段によって生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出する位置算出手段と、
前記位置算出手段によって算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記位置算出手段が算出した順に、ビットの重みを対応付ける重み対応付手段と、
前記重み対応付手段によって前記重みが対応付けられた前記所定のビットに、前記情報を構成するビットのうち前記重みと同じ重みのビットの値を埋め込む埋込手段と、
を備える暗号化装置。
【請求項2】
前記画像内に領域を設定する領域設定手段をさらに備え、
前記擬似乱数生成手段は、前記領域設定手段によって設定された領域を構成する画素のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する請求項1に記載の暗号化装置。
【請求項3】
画素の位置を引数としてハッシュ値を算出するハッシュ値算出手段をさらに備え、
前記位置算出手段は、
算出した画素の位置が重複する場合に、重複した画素の位置を引数として前記ハッシュ値算出手段によってハッシュ値を算出し、算出したハッシュ値に基づいて画素の位置を算出する請求項1又は2に記載の暗号化装置。
【請求項4】
画像に情報を埋め込むことによって分散する暗号化装置において実行される暗号化方法であって、
3原色の階調値から構成される画素によって構成される画像を読み込むステップと、
読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成するステップと、
生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出するステップと、
算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記算出した順に、ビットの重みを対応付けるステップと、
前記重みが対応付けられた前記所定のビットに、前記情報を構成するビットのうち前記重みと同じ重みのビットの値を埋め込むステップと、
を備える暗号化方法。
【請求項5】
画像に埋め込まれた情報を取得する復号装置であって、
3原色の階調値から構成される画素によって構成される画像を読み込む画像読込手段と、
前記画像読込手段によって読み込まれた前記画像を構成する3原色のうち一の原色又は二の原色の階調値に基づいて複数の擬似乱数を生成する擬似乱数生成手段と、
前記擬似乱数生成手段によって生成された複数の各前記擬似乱数に基づいて、所定の演算を実行し、前記画像内の画素の位置を順に複数個算出する位置算出手段と、
前記位置算出手段によって算出された複数個の各位置に係る画素を構成する3原色の階調値のうち、前記擬似乱数を生成するために用いた前記一の原色又は二の原色以外の原色の階調値を構成するビットのうち所定のビットに、前記位置算出手段が算出した順に、ビットの重みを対応付ける重み対応付手段と、
前記所定のビットの値を、前記重み対応付手段によって対応付けられた前記重みに従って2進数に変換した情報を取得する情報取得手段と、
を備える復号装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2011−107279(P2011−107279A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−260371(P2009−260371)
【出願日】平成21年11月13日(2009.11.13)
【出願人】(592218300)学校法人神奈川大学 (243)
【Fターム(参考)】