(57)【要約】【課題】  投票日前にクライアントにおいて仮の投票操作を可能とすることで投票日当日の作業を軽減し、また、仮の投票操作により得られた投票データを可搬とすることで、他のクライアントからの投票を可能とすることを目的とする。【解決手段】  クライアント１０１及びサーバ１００がネットワーク１を介して接続されており、前記クライアント１０１からサーバ１００に対して電子投票を行う電子投票方法において、前記クライアント１０１が、投票者から投票日前に入力された投票データを挿抜可能な記録媒体１０に記録する投票データ記録段階と、前記クライアント１０１が、投票日に投票者から入力された指示により、前記記録媒体１０に記録した投票データを前記サーバ１００に送信して電子投票を行う電子投票段階とを有することにより上記課題を解決する。【選択図】  図１
2005070892.tif 000002
【特許請求の範囲】
【請求項１】
クライアント及びサーバがネットワークを介して接続されており、前記クライアントからサーバに対して電子投票を行う電子投票方法において、
前記クライアントが、投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録段階と、
前記クライアントが、投票日に投票者から入力された指示により、前記記録媒体に記録した投票データを前記サーバに送信して電子投票を行う電子投票段階と、
を有することを特徴とする電子投票方法。
【請求項２】
前記サーバが、投票日前に、前記クライアントから仮投票データを受信する仮投票データ受信段階と、
前記サーバが、投票日に、前記仮投票データ受信段階により受信した仮投票データのうち前記クライアントのメールアドレスに基づいて、該クライアントに投票日を報知するメールを送信する投票日報知段階と、
を有することを特徴とする請求項１記載の電子投票方法。
【請求項３】
前記サーバが、投票日に、前記クライアントから投票データを受信する投票データ受信段階と、
前記サーバが、前記投票データ受信段階により受信した投票データの時刻署名をタイムスタンプ発行者から取得する時刻署名取得段階と、
を有することを特徴とする請求項１又は２記載の電子投票方法。
【請求項４】
前記投票者からの指示に基づき、前記記録媒体に記録された投票データを所定のクライアントに表示させる投票データ表示段階、
有することを特徴とする請求項１乃至３いずれか記載の電子投票方法。
【請求項５】
コンピュータを、
投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録手段と、
投票日に投票者から入力された指示により、前記記録媒体に記録した投票データをサーバに送信して電子投票を行う電子投票手段と、
して機能させるための電子投票プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子投票方法及び電子投票プログラムに関する。
【背景技術】
【０００２】
電子投票とは、投票用紙に自筆で候補者の指名を記入する従来の投票方式ではなく、タッチパネルや押しボタンなどを利用し投票行為そのものを電子化することをいう。従来の投票方式では、投票用紙の準備が必要であること、投票用紙に誤字脱字があり得ること、開票作業が煩雑であること、などから電子化された投票方式が提案されている。
【０００３】
更に、より進んだ形態の電子投票方法として指定された投票所以外での投票を可能としたり、投票所での投票を義務付けず、個人の所有するコンピュータ端末などを用いて投票する方式も検討されている。
【０００４】
中でも、個人の所有するコンピュータ端末をインターネットなどのネットワークに接続し、自宅から投票を可能とする方式は、投票所に来所する必要が無いため投票の利便性が向上することから、将来期待される方式である。
【０００５】
インターネット投票を実現するためには、最低限投票者が本人であることや投票データが改ざんされていないことを保証しなければならないため、これまで、本人確認の方法や投票データのセキュリティに関し提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００２−３４２５２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１などの方法で、本人確認がなされ、投票データが正当であることが保証されてもなお下記の問題が残る。
【０００７】
現在までに、提案若しくは実施されている選挙等の電子投票システムは、投票操作を行うための個人の自宅等に設置される複数のクライアントと、投票データを集計するサーバから構成されるものである。かかる構成の電子投票システムでは、投票操作は常にサーバコンピュータにネットワークを介して接続されたクライアントを操作することにより行う。
【０００８】
すなわち、投票は所定の日の所定の時間内に行わなければならないにもかかわらず、投票日にある程度の時間を要することとなり、操作に不慣れな人が投票時間の終了する間際に投票操作を開始した場合に投票ができないケースが発生し得る。また、サーバへの接続時間が長くなると、サーバに負担がかかり他の投票者がアクセスできない。仮にサーバがダウンすると全ての操作が不可能となる。また、ネットワークを介して自宅での投票が可能であっても、投票日当日に、突然勤務が必要となった場合など、自宅に不在となる場合に投票できないこととなる。
本発明は、上記の課題を解決すべく、投票日当日の投票操作を軽減し、また、他のクライアントからの投票操作を容易化することが可能な電子投票方法及び電子投票プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
そこで、上記課題を解決するため、本発明は、クライアント及びサーバがネットワークを介して接続されており、前記クライアントからサーバに対して電子投票を行う電子投票方法において、前記クライアントが、投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録段階と、前記クライアントが、投票日に投票者から入力された指示により、前記記録媒体に記録した投票データを前記サーバに送信して電子投票を行う電子投票段階と、を有することを特徴とする。
【００１０】
このような、電子投票方法では、投票日の前に投票操作を行い、投票データを可搬な記録媒体に保存し、投票当日に記録媒体に保存した投票データをサーバに送信し投票を完了する。
【００１１】
従って、投票データの作成に時間的余裕があるため、コンピュータの操作に関し操作支援を得やすい。また、投票データは既に記録媒体に保存してあるので、自宅以外のコンピュータから投票を行うことが可能となる。
【発明の効果】
【００１２】
本発明によれば、投票日当日の投票操作を軽減し、また、他のクライアントからの投票操作を容易化することができる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態について図に基づき説明する。本実施例は、投票日前に投票に必要な操作をクライアント側で行い、投票操作により得られた投票データをＩＣカードに記録し携帯可能とすることで、他のクライアントからの投票を可能とすることに特徴がある。従来と同様に投票当日に全ての投票作業を行うことも可能であるが、始めに投票日前にＩＣカードに投票データを保存すると共にサーバに事前に仮の登録を行う形態を説明する。なお、本実施例では、この事前に行う仮の登録を仮投票と呼称する。
【実施例１】
【００１４】
図１は、本実施例の全体像を示す図である。サーバ１００は、インターネットなどのネットワーク１を介してクライアント１０１と通信する。サーバ１００は、投票の受付を行う選挙人受付事務システム３、投票日に投票を受け付ける電子投票システム５、投票後に開票や集計を行う開票・集計システム９を有する。図１では、説明のためこれら３つのシステムが独立に存在しているが、１つのサーバで集中管理してもよい。また、公正さが要求される開票・集計システム９は、別のサーバで管理されるとしてもよい。
【００１５】
クライアント１０１は、ネットワーク１に接続可能なコンピュータ２、４，８及び投票者の認証や投票データの記録に使用するＩＣカード１０を有する。なお、図１では、説明のために投票日前に仮投票を行うコンピュータをコンピュータ２と、投票日当日に投票を行うコンピュータをコンピュータ４と、投票後に投票履歴を確認するコンピュータをコンピュータ８と符合した。
【００１６】
はじめに、サーバ１００について説明する。選挙人受付事務システム３は、当該選挙を一意に特定する選挙コードを管理する選挙コード管理テーブル３１、当該選挙に投票権を有する投票者が記録された選挙人名簿３２、投票者に投票のための番号を一意に割り振る投票識別番号管理テーブル３３、当該選挙に立候補した立候補者のリストを管理する立候補者テーブル３４を有する。これらのテーブルは、選挙人受付事務システム３が有する投票受付プログラム３６に参照される。
【００１７】
選挙コード管理テーブル３１の一例を図２（ａ）に示す。選挙コード管理テーブル３１の“選挙種別”欄には衆議院選挙や知事選挙などの選挙種別に応じ所定の種別コードが、“都道府県コード”欄には都道府県毎に定められたコード（国政選挙の場合００）が、“年”欄には当該選挙の行われる西暦が、“名称”には当該選挙の名称が、“Ｎｏ”欄には例えば同一年に同一の選挙が行われた場合に当該選挙を特定するための番号が、それぞれ記載されている。従って、図２（ａ）の選挙コード管理テーブル３１によれば、例えば１９９８年の神奈川県知事選挙の選挙コードは１１１４−１９９８−００となる。
【００１８】
選挙人名簿３２の一例を図２（ｂ）に示す。選挙人名簿３２の“Ｎｏ”欄には投票者をコード化した番号が、“名前”欄には投票者の氏名が、“住所”欄には当該投票者の住所が、“受付済みフラグ”欄には、当該選挙の受付が終了しているか否かを示すフラグが、それぞれ記載されている。選挙人名簿には、選挙コード管理テーブルで付与された選挙コードが付与されており、これにより同日または近日中に複数の選挙が行われる場合でも、個々の選挙毎に選挙人名簿を管理できる。選挙人名簿３２は、住所、生年月日などに基づき、予め自治体などにより作成されている。
【００１９】
投票識別番号管理テーブル３３の一例を図２（ｃ）に示す。投票識別番号管理テーブル３３の“投票識別番号”欄には、投票者を一意に特定するため乱数により生成された番号が記載されている。これにより各投票者は、当該選挙に関して投票識別番号管理テーブルにより与えられた投票識別番号により識別される。従って、投票者が実名で特定されることがなく、現行の投票行為である無記名式の投票が保証される。また、投票識別番号は、投票後も投票者が投票した立候補者データと共に図１の確定投票データ９１に保存されるため、投票者の投票内容が計数されているか否かを後日確認するための参照番号となる。“発行日時”欄には識別番号が生成された時間が記載される。また、投票識別番号管理テーブルには当該選挙を特定するために選挙コードが付与されている。
【００２０】
立候補者テーブル３４の一例を図２（ｄ）に示す。立候補者テーブル３４の“Ｎｏ”欄には立候補者を識別するための番号が、“氏名”欄には立候補者の氏名が、“所属”欄には当該立候補者の所属する政党名が、それぞれ記載されている。なお、立候補者テーブルには当該選挙を特定するために選挙コードが付与されている。
【００２１】
次に、電子投票システム５について説明する。電子投票システム５は、投票日前に仮の投票を受け仮投票した投票者の情報を記録する仮投票データベース（以下ＤＢという）５１と、投票日に行われた投票内容を記録する投票データＤＢ５２を有する。仮投票サーバプログラム５４は、クライアント１０１の依頼により、仮投票ＤＢ５１に仮投票の内容を登録する。投票サーバプログラム５８は、クライアント１０１の依頼により、投票データＤＢ５２に投票内容を登録する。投票催促通知プログラム５６は、次述する仮投票ＤＢ５１と投票データＤＢ５２を照らし合わせ、投票日の所定の時刻までに、仮投票をしたにもかかわらず投票を行わなかった投票識別番号を抽出し、メールを送信するプログラムである。
【００２２】
また、電子投票システム５は、公開鍵暗号方法で用いられる選挙システムの公開鍵１１７と秘密鍵１１８を有する。選挙システムの公開鍵１１７は、クライアント１０１が投票データを暗号化する際に使用され、選挙システムの秘密鍵１１８は、クライアント１０１が暗号化した投票データを復号化する際に使用される。なお、公開鍵１１７と秘密鍵１１８は電子投票システム５に保存されていなくとも、サーバ１００で利用できる場所で管理されていればよい。ただし、秘密鍵１１８については、電子投票システム５以外には漏洩しないよう安全に管理されていなければならない。
【００２３】
仮投票ＤＢ５１の一例を図３（ａ）に示す。仮投票ＤＢ５１の“Ｎｏ”欄には各投票者の仮投票を識別するための番号が、“日時”欄には仮投票された日時が、“投票識別番号”欄には仮投票を行った投票者の投票識別番号が、“通知先”欄には当該投票者の通知先メールアドレスが、それぞれ記載されている。なお、仮投票ＤＢ５１には選挙コードを名称としたテーブルとして保存しておくことで、選挙毎に識別を可能とする。仮投票は投票日前の行為であり、いったん仮投票しておくことで投票に必要な作業が既に行われたことになり、後日投票を行う際にかかる時間が低減される。
【００２４】
投票データＤＢ５２の一例を図３（ｂ）に示す。投票データＤＢ５２の“Ｎｏ”欄には各投票者の投票を識別するための番号が、“日時”欄には投票された日時が、“投票識別番号”欄には投票を行った投票者の投票識別番号が、“立候補者”欄には図２（ｄ）の立候補者テーブル３４における“Ｎｏ”欄記載の番号が、それぞれ記載されている。“立候補者”欄には立候補者の氏名が記載されていてもよい。なお、投票ＤＢ５２には選挙コードを名称としたテーブルとして保存しておくことで、選挙毎に識別を可能とする。
【００２５】
次に、開票・集計システム９について説明する。開票・集計システム９は、投票が締め切られることによって生成される確定投票データ９１を有する。すなわち、確定投票データ９１は、開票の対象となる最終的な投票データである。確定投票データ９１は投票データＤＢ５２の内容はそのままに、投票の刻限が経過することで生成されるため、その内容は投票データＤＢ５２と等しい。確定投票データ９１をクライアント１０１から参照できるプログラムは存在しないので、投票後の投票データが改ざんされることがない。
【００２６】
続いて、クライアント１０１について説明する。クライアント１０１には、主にコンピュータ２、４，８が用いられる。コンピュータなどを使用しない場合には、投票所や区役所など自治体に設置されたＫＩＯＳＫ（キオスク）端末６を用いてもよい。また、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ
Ｄａｔａ Ａｓｓｉｓｔａｎｔ）などの端末であってもよい。
【００２７】
コンピュータ２は投票受付から仮登録までを行うための端末であるので、サーバに投票の受付を依頼する投票受付クライアントプログラム２１、仮投票を行う仮投票クライアントプログラム２２を有する。コンピュータ４は投票日に投票を行うための端末であるので、サーバに投票を依頼する投票クライアントプログラム４１を有する。コンピュータ８は投票後にクライアント側で投票履歴を表示・出力するための端末であるので、投票後にクライアント側に投票履歴を表示・出力する投票履歴表示・出力プログラム６１を有する。投票受付から投票後まで同一のコンピュータを使用してもよい。
【００２８】
これら、投票受付クライアントプログラム２１、仮投票クライアントプログラム２２、投票クライアントプログラム４１、投票履歴表示・出力プログラム６１は、コンピュータに事前にインストールされていてもよいし、サーバ１００からダウンロードした後にインストールしてもよいし、ＪＡＶＡ（登録商標）アプレットをブラウザ上で実行するものとしてもよい。
【００２９】
クライアント１０１におけるＩＣカード１０は、投票に必要な情報を記憶するカードである。ＩＣカード１０が投票に必要なデータを記録しているため、ＩＣカード１０を携帯すれば投票場所の選択肢を広げることができる。ＩＣカード１０に記録される内容の一例を図４に示す。
【００３０】
図４のＩＣカード１０は、当該投票者の投票履歴を記録した投票履歴テーブル１１１、住民基本台帳の基本４情報を記録した基本４情報テーブル１１２を有する。これまで一度も投票をしたことがない場合には、投票履歴テーブル１１１には記録がない。
【００３１】
また、立候補者テーブル１１３は、図１で説明した投票受付を行うことでＩＣカード１０に記録される。認証データ１１４は、投票者が本人であることを確認するための認証データである。例えば、パスワード、又は、指紋、声紋、網膜、顔の輪郭、ＤＮＡなどの生体認証情報が記録されている。投票者は、コンピュータなどでパスワード、生体認証情報を照合することで本人であることが確認される。
【００３２】
ＩＣカード１０に保管されている公開鍵１１５、秘密鍵１１６は、公開鍵暗号方法に用いられるクライアント１０１の公開鍵と秘密鍵である。公開鍵１１５は、サーバ１００が投票データを暗号化する際に使用され、秘密鍵１１６はサーバ１００が暗号化した投票データをクライアント１０１が復号化する際に使用される。
【００３３】
以上の構成に基づいて、投票受付処理、仮投票処理、投票処理、投票履歴表示・出力処理をフローチャート図に従い説明する。始めに、投票受付処理について説明する。投票受付を行える期間は、例えば、公示日から投票日当日である。これ以前に投票受付を行うと、図１の選挙人名簿３２が準備されていないなどの理由で処理を行えない。
【００３４】
〔投票受付処理〕
図５は、投票受け付け処理のフローチャート図を示す。図５においては、左側にクライアント１０１で行われる処理を、右側にサーバ１００で行われる処理を示す。クライアント１０１で行われる処理は、図１で説明した投票受付クライアントプログラム２１が行い、サーバ１００で行われる処理は、投票受付サーバプログラム３６が行う。
【００３５】
なお、図６は、投票受付及び仮投票の全体像を示す図である。図６の全体像は、図１で説明した選挙人名簿３２、選挙コード管理テーブル３１、立候補者テーブル３４、投票識別番号管理テーブル３３、仮投票ＤＢ５１、投票受付サーバプログラム３６、仮投票サーバプログラム５４、投票受付クライアントプログラム２１、仮投票クライアントプログラム４１、及び、図４で説明したＩＣカード１０を有する。すなわち図６は、図１の全体像のうち投票受付及び仮投票に用いられる構成を示す。
【００３６】
まず、投票受付クライアントプログラム２１が実行させられ、本人の認証処理を開始する（Ｓ５０１）。投票受付クライアントプログラム２１は、投票者の差し込んだＩＣカード１０をコンピュータ２及びＩＣカードリーダーを通して読み取り、上述した所定の認証方式に従い本人を認証する。
【００３７】
本人であることが確認されると、投票受付クライアントプログラム２１は、投票者が指示する投票を行う選挙を特定するため、ポータルサーバ１３へ接続する（Ｓ５０２）。ポータルサーバ１３には、選挙のリストがアップロードされており、投票受付クライアントプログラム２１は、選挙リストをＩＣカード１０へダウンロードする。このとき、本人認証が済むと自動的に所定のサイトから選挙リストをダウンロードしてもよい。投票者は、選挙リストの中から投票予定の選挙を選択する。
【００３８】
選挙リストをダウンロードしたら、投票受付クライアントプログラム２１は、ネットワーク１を介して投票者により特定された選挙のサーバ１００に接続する（Ｓ５０３）。投票受付クライアントプログラム２１の要求により、クライアント１０１とサーバ１００が接続状態となる（Ｓ５２０）。投票受付サーバプログラム３６は、当該クライアント１０１へ送信予定の、投票識別番号と立候補者リストの欄を初期化しておく（Ｓ５２１）。
【００３９】
引き続き、投票受付クライアントプログラム２１は、ＩＣカード１０に記録されている基本４情報（氏名、住所、生年月日、性別）を読み取り（Ｓ５０４）、読み取った基本４情報をサーバ１００へ送信する（Ｓ５０５）。基本４情報を受信した投票受付サーバプログラム３６は（Ｓ５２２）、基本４情報に基づいて、当該投票者に当該選挙の選挙資格があるか、すなわち選挙人名簿３２に登録されているかを検索する（Ｓ５２３）。
【００４０】
選挙人名簿３２に該当者が無かった場合は、投票受付サーバプログラム３６は「−１」を戻り値に設定する（Ｓ５２４、Ｓ５２５）。戻り値は、処理結果のステータスを表す。選挙人名簿３２に該当者があった場合は、続いて投票受付が既に終了しているか否かを、受付済みフラグをチェックして判断する（Ｓ５２６）。投票受付が既に終了している場合は、投票受付サーバプログラム３６は「−２」を戻り値に設定する（Ｓ５２７）。これにより重複して投票受け付けされることが防止される。投票受付サーバプログラム３６は、戻り値が「−１」又は「−２」の場合は、次の処理をステップＳ５３４とし、戻り値をクライアント１０１に送信する（投票識別番号、立候補者リストはＮＵＬＬ）。戻り値が「−１」又は「−２」以外の場合には、ステップＳ５２８へ処理を進める。
【００４１】
ステップＳ５２６の判断の結果、受付済みでなければ、投票受付サーバプログラム３６は、乱数を利用して投票識別番号を生成する（Ｓ５２８）。投票識別番号は、投票者を一意に識別するための番号である。このため、投票受付サーバプログラム３６は、生成された投票識別番号が投票識別番号管理テーブル３３ですでに使用されているか否かをチェックする（Ｓ５２９）。投票識別番号が既に割り当てられている場合には、再度乱数により投票識別番号を生成し（Ｓ５３０、Ｓ５２８）、投票識別番号管理テーブル３３に存在しない投票識別番号が生成されるまでステップＳ５２８からＳ５３０の処理を繰り返す。
【００４２】
新たな投票識別番号が生成されたら、当該投票識別番号を投票識別番号管理テーブル３３に登録する（Ｓ５３１）。これにより、その投票識別番号は別の投票者に使用されず、現在サーバ１００に接続しているクライアント１０１固有の投票識別番号となる。
【００４３】
投票識別番号が生成されたら、投票受付サーバプログラム３６は、立候補者テーブル３４から選挙コードに該当する選挙の立候補者のリストを読み出す（Ｓ５３２）。これにより投票に必要な情報が準備できたので、投票受付サーバプログラム３６は、戻り値「０」を返す（Ｓ５３３）。従って、戻り値が「０」の場合は、サーバ１００における処理が正常に終了したことを意味する。
【００４４】
処理が終了すると、投票受付サーバプログラム３６は、戻り値、投票識別番号及び立候補者リストをクライアント１０１へ送信する（Ｓ５３４）。
【００４５】
戻り値、投票識別番号及び立候補者リストを受信した投票受付クライアントプログラム２１は、戻り値をチェックする（Ｓ５０６、Ｓ５０７）。その結果、戻り値が「−１」の場合は、ステップＳ５２４からＳ５２５で説明したように選挙の該当者ではないため、投票受付クライアントプログラム２１は、「本選挙に参加資格がない」旨のメッセージをコンピュータ２に出力する。戻り値が「−２」の場合は、ステップＳ５２６からＳ５２７で説明したように既に受付済みのため、投票受付クライアントプログラム２１は、「本選挙の受付は完了済み」旨のメッセージをコンピュータ２に出力する（Ｓ５０８、Ｓ５０９、Ｓ５１０）。
【００４６】
戻り値が「０」の場合には、ＩＣカード１０の投票履歴テーブルに投票識別番号を、立候補者テーブルに立候補者情報を記録する（Ｓ５１１、Ｓ５１２）。投票識別番号は、当該投票者を識別する番号として当該選挙が終了するまで使用されるだけでなく、投票の記録として所定の期間ＩＣカード１０に記録され、立候補者情報は投票する立候補者を選択するために使用する。
【００４７】
以上で、投票受付処理が終了したので、クライアント１０１及びサーバ１００の接続を解放する（Ｓ５１３、Ｓ５３５）。
【００４８】
〔仮投票処理〕
次に、仮投票処理について説明する。図７は、仮投票処理のフローチャート図を示す。図７においては、左側にクライアント１０１で行われる処理を、右側にサーバ１００で行われる処理を示す。クライアント１０１で行われる処理は、図１で説明した仮投票クライアントプログラム２２が行う。サーバ１００で行われる処理は、仮投票サーバプログラム５４が行う。
【００４９】
投票受付処理を終えた投票者は、必要に応じて仮投票を行う。上述したように仮投票とは、投票日当日に投票する前に仮の投票を行うことで、投票日当日の作業を低減し、投票場所の選択肢を増大させる処理である。仮投票は、投票受付に引き続いて行ってもよいし、投票受付処理とは別の日や投票日当日に行ってもよい。投票受付と別の日に行う場合は、改めて本人認証を行う。
【００５０】
投票受付処理に続いて仮投票を行う場合、まず、仮投票クライアントプログラム２２が実行させられる。そして、仮投票クライアントプログラム２２は、ＩＣカード１０から、投票受付処理でダウンロードした立候補者情報を読み取る。これにより、仮投票画面が生成される（Ｓ７０１）。
【００５１】
図８に仮投票画面の一例を示す。図８の仮投票画面は、電子投票操作メニュー選択欄１２１と投票者操作欄１２２とからなる。電子投票操作メニュー選択欄１２１は、投票受付処理を選択する投票受付８０、仮投票処理を選択する仮投票８２、投票処理を選択する投票９２、当日投票処理を選択する当日投票９３、投票履歴を表示させる投票履歴９９の各ボタンを有する。電子投票操作メニュー選択欄１２１では、電子投票操作メニュー８１の下側にあるメニューにより処理を選択でき、また現在行っている処理名が反転して表示される。現在は、“仮投票”８２が反転表示されていることにより、仮投票処理が行われていることがわかる。投票者操作欄１２２は、“選択”欄８８、“所属”欄８９、“候補者名”欄９０からなる投票欄と、連絡用メールアドレス入力欄９１及び署名ボタン８３、仮投票ボタン８４、取り消しボタン８５、入力クリアボタン８６を有する。
【００５２】
投票者は、所属８９や候補者名９０を参照し、投票者の投票する立候補者を選択欄８８で選択する。連絡用メールアドレス９１は、投票者が選挙システムからの連絡を受けるメールアドレスを記入する。署名ボタン８３は、投票内容に電子署名をする際に使用する。署名ボタン８３をクリックすることで、投票者の公開鍵と秘密鍵からなるペア鍵のペア鍵認証コードの入力欄８７がポップアップする。投票者は、ペア鍵認証コードの入力欄８７にペア鍵にアクセスするためのコード（以後、ペア鍵認証コードという）を入力することで、ＩＣカード１０に記録された投票者の公開鍵と秘密鍵へのアクセスが可能となり、秘密鍵を用いることによって電子署名が可能となる。仮投票ボタン８４をクリックすると最終的に仮投票が行われ、取り消しボタン８５をクリックすると仮投票が行われないまま、仮投票の中止処理が開始され、入力クリアボタン８６をクリックするとそれまでに入力した立候補者の選択内容などがクリアされる。
【００５３】
仮投票クライアントプログラム２２が仮投票画面を生成し、投票者が立候補者を選択し、連絡用メールアドレスを入力したら、仮投票クライアントプログラム２２は選挙システムの公開鍵をダウンロードする（Ｓ７０２）。選挙システムの公開鍵をダウンロードしたら、仮投票クライアントプログラム２２は、該公開鍵で投票者が選択した立候補者データ（候補Ｎｏ、立候補者氏名、所属）を暗号化する（Ｓ７０３）。仮投票クライアントプログラム２２は、投票者が選択した立候補者の記録のため、選挙コード、投票識別番号、暗号化された立候補者データ（候補Ｎｏ、立候補者氏名、所属）をＩＣカード１０の投票履歴テーブルに追加する。
【００５４】
次に、投票者は図８の署名ボタン８３をクリックすることで、ＩＣカードのペア鍵アクセスの認証を行う（Ｓ７０４）。投票者は、ペア鍵認証コードをペア鍵認証コードの入力欄８７に入力することで、投票者のＩＣカード１０に記録されたペア鍵（公開鍵、秘密鍵）が使用可能となる。鍵ペアアクセスの認証が済んだら、投票者の秘密鍵を用い、ＩＣカード１０の当該選挙に該当する投票レコードの電子署名欄に電子署名を付与する（Ｓ７０５、Ｓ７０６）。このとき、電子署名の対象となるのは、選挙コード、投票識別番号、候補Ｎｏ、立候補者氏名、所属、であり、公開鍵も電子署名に添付しておく。なお、公開鍵は投票レコードに添付する方式であってもよい（該当データ項目は図示せず）。これで、投票データは暗号化され、かつ、電子署名も行われたので、投票できる準備が整う。これで、ＩＣカード１０という可搬な記録媒体に投票に必要な情報が記録される。
【００５５】
次に、仮投票クライアントプログラム２２は、ネットワーク１を介してサーバ１００に接続する（Ｓ７０７、Ｓ７１０）。そして、仮投票クライアントプログラム２２は、投票識別番号と連絡用メールアドレスをサーバ１００へ仮投票する（Ｓ７０８）。なお、この時点では投票データは送信しない。
【００５６】
仮投票サーバプログラム５４は、仮投票クライアントプログラム２２から送信された投票識別番号と連絡用メールアドレスを受信する（Ｓ７１１）。そして現在の日時を所定のタイムサーバ（ＮＴＰサーバ等）から入手し、投票識別番号、連絡用メールアドレス、現在の日時を、仮投票ＤＢ５１へ記録する（Ｓ７１２、Ｓ７１３）。
【００５７】
以上で仮投票処理が終了し、投票日の処理が低減され、また、ＩＣカード１０には暗号化された投票データ及び電子署名が記録されているため、ネットワーク１に接続できる環境であれば投票を行うことができる。
【００５８】
仮登録は、投票準備が完了したことを図６の電子投票システム５へ連絡するものであり、連絡したメールアドレスに基づき投票日の実際の投票を催促するメールを受信することができる。また、仮投票を行った投票者には、投票時間を延長するなどの仕組みを設けてもよい。
【００５９】
〔投票処理〕
続いて、投票処理について説明する。投票処理は、投票日当日に行われるので、投票者は、投票日の自治体などに定められた投票時間内に投票処理を行う。投票者の投票に先立って、仮投票ＤＢ５１に登録された電子メールアドレスを用い、投票者に投票の催促を行う。投票の催促は、図１の電子投票システム５における投票催促通知プログラム５６が行う。なお、投票日の所定の時間までに投票が行われなかったときは、再度メールを送信してもよい。これにより、投票を忘れることが少なくなる。
【００６０】
図９は、投票処理のフローチャート図を示す。図９においては、左側にクライアント１０１で行われる処理を、右側にサーバ１００で行われる処理を示す。クライアント１０１の処理は、図１で説明した投票クライアントプログラム４１が行う。サーバ１００の処理は、投票サーバプログラム５８が行う。
【００６１】
図１０は、投票システムの全体像を示す図である。図１０のうち、図６と同一構成部分には同一の符号を付しその説明は省略する。図１０においては、投票データＤＢ５２、タイムスタンプ発行者１５０が記載されている点、２つの投票レコード１１１ａ及び１１１ｂが表示されている点で、図６と異なる。
【００６２】
タイムスタンプ発行者（ＴＳＡ（Ｔｉｍｅ Ｓｔａｍｐ
Ａｕｔｈｏｒｉｔｙ））１５０は、デジタル情報の存在日時の証明を第三者の立場で行う機関である。この場合のデジタル情報とは、投票データのことなので、タイムスタンプ発行者１５０によるタイムスタンプを受けることにより、投票所に行かなくても、投票データが投票日の投票可能時間内に送信されたことが証明できる。
【００６３】
同様に、タイムスタンプ発行者１５０は、投票データのハッシュデータに時刻情報を付与し、デジタル署名として発行する。これにより投票データ、投票時間が改ざんされていないことが第三者によって証明される。
【００６４】
投票レコード１１１ａはクライアント１０１から送信された直後の投票データを、投票レコード１１１ｂは投票後の投票データを示す。図１１（ａ）に投票レコード１１１ａを、図１１（ｂ）に投票レコード１１１ｂを示す。投票直後には、図１１（ａ）のように投票日時と時刻署名は空欄となるが、投票後、タイムスタンプ発行者１５０にタイムスタンプ及び時刻署名を付与されると、図１１（ｂ）のように投票日時と時刻署名が記入される。
【００６５】
図９の投票処理のフローチャート図について説明する。既に投票日の報知については上述した（Ｓ９００）。投票クライアントプログラム４１は、始めに本人の認証を行う（Ｓ９０１）。投票クライアントプログラム４１は、投票者の差し込んだＩＣカード１０をコンピュータ４及びＩＣカードリーダーを通して読み取り、上述した所定の認証方式に従い本人を認証する。
【００６６】
認証が終了すると、投票クライアントプログラム４１は、確認投票画面を生成する（Ｓ９０２）。このとき、ＩＣカード１０から立候補者テーブルと投票履歴テーブルが読み込まれ、再度立候補者が画面に表示される。
【００６７】
図１２は、確認・投票画面の一例を示す。図１２において、図８と同一構成部分には同一の符号を付し、その説明は省略する。図１２の確認・投票画面は、操作メニュー８１のうち、投票９２が反転表示されている点、内容変更ボタン９４と投票ボタン９５が表示されている点で図８と異なる。内容変更ボタン９４は、仮投票時に選択した立候補者名を変更する場合にクリックされ、投票ボタン９５は、投票を行うときにクリックされる。
【００６８】
ステップＳ９０２で、確認・投票画面が表示される。図１２の内容変更ボタン９４がクリックされた場合には、投票内容変更が選択される。ステップＳ９０３で投票内容変更が選択された場合は、投票クライアントプログラム４１は投票内容変更処理へ進む（Ｓ９１２）。投票内容変更処理については後述する。
【００６９】
投票内容を変更しない場合は、投票クライアントプログラム４１はインターネット１を介し投票サーバプログラム５８へ接続する（Ｓ９０４、Ｓ９１３）。クライアント１０１と接続した投票サーバプログラム５８は、新たな投票レコードを受信するために投票レコードの領域の初期化と戻り値への０設定を行う（Ｓ９１４）。
【００７０】
サーバ１００に接続した投票クライアントプログラム４１は、仮投票で作成しＩＣカード１０に記録した該当選挙の投票レコードを読み込み、該投票レコードをサーバ１００へ送信する（Ｓ９０５）。投票レコードを受信した投票サーバプログラム５８は、当該投票レコードをステップＳ９１４で初期化した領域に入力する（Ｓ９１５）。これにより、投票サーバプログラム５８は図１１（ａ）形式の投票レコードを受信する。
【００７１】
次に、投票サーバプログラム５８は、投票者の公開鍵を入手して、投票レコードの電子署名を検証する（Ｓ９１６、Ｓ９１７）。投票者の公開鍵は、電子署名の中に添付されていても、投票レコードに添付してあってもよい。具体的には、暗号化されたままの立候補者データを含む投票レコードに基づき、ハッシュデータを作成し、当該ハッシュデータと、投票者の公開鍵で復号化した電子署名内のハッシュデータを比較する。
【００７２】
検証の結果、２つのハッシュデータが等しくない場合には、戻り値「−１」を返してステップＳ９２８へ進む（Ｓ９１８、Ｓ９１９）。２つのハッシュデータが等しい場合には、投票レコードは改ざんされていないことが証明されるので、立候補者データの復号化を行う。
【００７３】
立候補者データ（候補Ｎｏ、立候補者氏名、所属）は図７のステップＳ７０３で説明したように、選挙システムの公開鍵で暗号化されているため、復号するためには選挙システムの秘密鍵が必要となる。このため投票サーバプログラム５８は、選挙システムの秘密鍵を入手する（Ｓ９２０）。選挙システムの秘密鍵は選挙システム自身が管理しているので入手経路を規定しなくとも入手できる。選挙システムの秘密鍵を入手した投票サーバプログラム５８は、選挙システムの秘密鍵で立候補者データを復号化する（Ｓ９２１）。
【００７４】
続いて、投票サーバプログラム５８は現在時刻と時刻署名を入手する（Ｓ９２２）。投票サーバプログラム５８は、タイムスタンプ発行者１５０へ接続する。そして、タイムスタンプ発行者が発行する現在時刻と時刻署名を入手する。このときの電子署名は、電子署名をのぞく投票レコード全体に対して行う。投票サーバプログラム５８は入手した現在時刻及び時刻署名を投票レコードに入力する（Ｓ９２３、９２４）。これにより、投票サーバプログラム５８は、図１１（ｂ）形式の投票レコードを生成する。
【００７５】
ここまでで、投票データが改ざんされていないこと、投票時間内に投票されたことが確認でき、また、投票時刻における投票レコードの内容がタイムスタンプ発行者という第三者により保証される。
【００７６】
続いて、投票サーバプログラム５８は、投票データＤＢにアクセスし、選挙コードで特定される選挙の選挙テーブルに、投票日時、投票識別番号及び立候補者の番号を登録する（Ｓ９２５）。これにより、投票に必要なデータが選挙システムに投票された。
【００７７】
次に、投票サーバプログラム５８は、投票クライアントプログラム４１に投票データの登録を通知する処理を行う。ステップＳ９１７で入手した投票者の公開鍵を用いて、投票レコードの立候補者データを暗号化する（Ｓ９２６）。暗号化したら、暗号化後の内容で投票レコードを更新する（Ｓ９２６）。これにより立候補者のデータが秘匿される。
【００７８】
また、投票サーバプログラム５８は、選挙システムの秘密鍵で投票レコードに電子署名を付与する（Ｓ９２７）。電子署名が付与されたら、投票レコードを更新する（Ｓ９２７）。
【００７９】
ここまでで、投票日時の保証された投票レコード（暗号化された立候補者データを含む）が生成され、クライアント１０１へ送信する準備が整った。ステップＳ９１８における検証結果の戻り値と合わせ、投票レコードがクライアント１０１へ送信される（Ｓ９２８）。
【００８０】
投票クライアントプログラム４１は、投票レコード及び戻り値を受信する（Ｓ９０６）。投票クライアントプログラム４１は、戻り値をチェックし、「０」以外の値であった場合は、「サーバにおける立候補者データの検証が失敗した」旨のメッセージをコンピュータ４に表示し、ステップＳ９１１へ進む（Ｓ９０７、Ｓ９０８）。
【００８１】
戻り値が「０」の場合は、投票クライアントプログラム４１は、ＩＣカード１０の投票履歴テーブルを、受信した投票済み投票レコードで更新する（Ｓ９０９）。これにより、投票履歴テーブルの該当レコードに投票結果が反映される。この段階では、投票履歴の中の立候補者データは暗号化されたままであるので、第三者への漏洩を防止できる。なお、投票履歴テーブルを更新する前に、投票者の秘密鍵での投票履歴テーブルの内容を検証してもよい。
【００８２】
投票履歴テーブルに追加登録が終了したら、投票クライアントプログラム４１は、投票サーバプログラム５８への接続を解放して終了する（Ｓ９１１、Ｓ９２９）。
【００８３】
以上で投票処理が終了したが、ステップＳ９０３で投票内容の変更を選択した場合の処理について説明する。
【００８４】
〔投票内容修正処理〕
図１３は、投票クライアントプログラム４１の投票内容変更処理を示すフローチャート図である。図１３の投票内容変更処理は、図７の仮投票の処理を再度行うことになるので、その処理は一部重複する。このため、図１３のフローチャート図において、図７のフローチャート図と同一ステップには同一の符号を付した。
【００８５】
まず、図１２の投票画面の内容変更ボタン９４を押すと、投票内容変更処理が開始される。
【００８６】
投票内容変更処理が開始されると、投票内容修正画面が生成される（Ｓ９３０）。図１４は、投票内容修正画面の一例を示す図である。なお、図１４の投票内容修正画面において、図８又は図１２と同一構成部分には同一符号を付しその説明は省略する。図１４では、仮投票画面の図８と同様に、署名ボタン８３、取り消しボタン８５、入力リアボタン８６、及び、署名ボタンをクリックすることでポップアップ表示されるペア鍵認証コードの入力欄８７が表示される。また、図１４では、再度投票画面へ戻れるように投票へボタン９７が表示される。
【００８７】
投票者により、投票内容修正画面で投票内容が修正される。仮投票処理で仮投票した内容が修正されたため、投票内容修正操作後は、仮投票処理と同等な処理が行われる。従って、投票クライアントプログラム４１は、まず対象選挙システムの公開鍵を入手する（Ｓ７０２）。この公開鍵は、修正後の立候補者データを暗号化する際に用いる。
【００８８】
選挙システムの公開鍵を入手したら、投票クライアントプログラム４１は、候補者Ｎｏ、立候補者氏名、所属、を暗号化する（Ｓ７０３）。暗号化したら、現在のＩＣカード１０には、仮投票時の投票レコードが入力されているので、修正されかつ暗号化された投票レコードでＩＣカード１０の内容を更新する。
【００８９】
続いて、投票者により図１４の署名ボタン８３がクリックされると、投票クライアントプログラム４１はＩＣカードのペア鍵アクセスの認証を行う（Ｓ７０４）。投票者が、ペア鍵認証コードをペア鍵認証コードの入力欄８７に入力することで、投票者のＩＣカード１０に記録されたペア鍵（公開鍵、秘密鍵）が使用可能となる。鍵ペアアクセスの認証が済んだら、投票クライアントプログラム４１は、投票者の秘密鍵を用い、ＩＣカード１０の当該選挙に該当するレコードの電子署名欄に電子署名を付与する（Ｓ７０５、Ｓ７０６）。このとき、電子署名の対象となるのは、選挙コード、投票識別番号、候補Ｎｏ、立候補者氏名、所属、であり、公開鍵も電子署名に添付しておく。なお、公開鍵は投票レコードに添付する方式であってもよい（該当データ項目は図示せず）。これで、投票データは暗号化され、かつ、電子署名も行われた。なお、電子署名がされたら、ＩＣカード１０の投票レコードの電子署名欄を生成された電子署名で更新する。
【００９０】
投票者により、投票へボタン９７をクリックされると、投票クライアントプログラム４１は、図１２の確認・投票画面を生成する。投票内容修正画面へ移行する前の投票処理は、図９のステップＳ９１２で中断されていたが、確認・投票画面へ戻った際はステップＳ９０２の処理から再開される。従って、再度投票内容を修正することも可能である。以降は、上述した図９の投票処理に従って処理が進行する。
【００９１】
〔投票履歴表示・出力処理〕
投票者の投票履歴は、これまで説明したように、ＩＣカード１０に記録されている。投票履歴表示・出力処理では、ＩＣカード１０に記録されている投票履歴を表示・出力する処理が行われる。
【００９２】
図１５は、投票履歴表示・出力処理のフローチャート図を示す。投票履歴表示・出力処理は、図１で説明した投票履歴表示・出力プログラム６１が行う。図１５のフローチャート図において、図５又は図７のフローチャート図と同一ステップには同一の符号を付した。
【００９３】
図１６は、投票履歴表示・出力処理の対象となるＩＣカード１０及び表示端末としてのコンピュータ８を示す図である。図１６のうち、図１又は図４と同一構成部分には同一の符号を付しその説明は省略する。
【００９４】
ＩＣカード１０に記録されている投票履歴を表示・出力する場合には、投票履歴表示・出力プログラム６１は、最初にＩＣカード１０の本人認証を行う（Ｓ５０１）。投票履歴表示・出力プログラム６１、投票者の差し込んだＩＣカード１０をコンピュータ８及びＩＣカードリーダーを通して読み取り、上述した所定の認証方式に従い本人を認証する。
【００９５】
本人であることが確認できると、投票履歴表示・出力プログラム６１は、ＩＣカード１０に記録されたペア鍵アクセスの認証を行う（Ｓ７０４）。投票履歴表示・出力プログラム６１が生成するペア鍵認証コードの入力欄（図示せず）にペア鍵認証コードが入力されると、ＩＣカード１０に記録されたペア鍵（公開鍵、秘密鍵）が使用可能となる。
【００９６】
ステップＳ７０４の認証が済んだら、投票履歴表示・出力プログラム６１は、ＩＣカード１０から投票レコードを読み取る（Ｓ１５１）。読み取られた投票レコードは暗号化されているため、このままでは表示できない。このため、以下の手続きを行う。
【００９７】
投票レコードには選挙システムの秘密鍵による電子署名がされているので、投票履歴表示・出力プログラム６１は、当該電子署名を検証するために選挙システムの公開鍵を入手する（Ｓ７０２）。選挙システムの公開鍵は、電子署名に添付されていても、インターネット１を介し投票履歴表示・出力プログラム６１が選挙システムからダウンロードしてもよい。
【００９８】
続いて、入手した選挙システムの公開鍵で投票レコードの電子署名を検証する（Ｓ１５２）。検証の方法は、暗号化されたままの立候補者データを含む投票レコードに基づき、ハッシュデータを作成し、当該ハッシュデータと、選挙システムの公開鍵で復号化した電子署名内のハッシュデータを比較する。
【００９９】
検証結果が正しくなければ、投票履歴表示・出力プログラム６１は「署名検証に失敗」した旨のメッセージを表示し（Ｓ１５３、Ｓ１５４）、ステップＳ１６２へ進む。検証結果が正しい場合は、投票レコードの内容を投票履歴表示・出力プログラム６１内の投票履歴編集テーブル（図示せず）に追加（Ｓ１５３、Ｓ１５５）。この時点では、選挙コードと投票識別番号のみが暗号化されていない状態となる。
【０１００】
次に、投票履歴表示・出力プログラム６１は、投票者の秘密鍵を入手する（Ｓ７０５）。すでに鍵ペアアクセス認証は終了しているので、ＩＣカード１０から投票者の秘密鍵を読み取る。図９のステップＳ９２６で説明したとおり、投票サーバプログラム５８は投票者の公開鍵で立候補者データ（候補Ｎｏ、立候補者氏名、所属）を暗号化しているので、復号化するときは投票者の秘密鍵で復号化する（Ｓ１５６）。復号化したら投票履歴表示・出力プログラム６１内の投票履歴編集テーブルの、候補Ｎｏ、立候補者氏名、所属から成る立候補者データを復号化された内容で更新する。
【０１０１】
次に、時刻署名を検証する。時刻署名は、タイムスタンプ発行者１５０の秘密鍵で署名されているため、投票履歴表示・出力プログラム６１は、タイムスタンプ発行者１５０の公開鍵を入手する（Ｓ１５７）。タイムスタンプ発行者１５０の公開鍵は、時刻署名に添付されていてもよいし、インターネット１を介し投票履歴表示・出力プログラム６１がタイムスタンプ発行者１５０からダウンロードしてもよい。検証の方法は、投票日時のハッシュデータを作成し、当該ハッシュデータと、タイムスタンプ発行者１５０の公開鍵で復号化した電子署名内のハッシュデータを比較する（Ｓ１５８）。
【０１０２】
検証の結果が正しくない場合は、投票履歴表示・出力プログラム６１は、「時刻署名検証失敗」のメッセージをコンピュータ８の画面上に出力する（Ｓ１５９、Ｓ１６０）。検証結果が正しくない場合には、投票レコードに記載された時刻が改ざんされているため、投票履歴表示・出力プログラム６１内の投票履歴編集テーブルから該当する投票レコードを削除する（Ｓ１６１）。
【０１０３】
検証結果が正しい場合には、以上で当該投票レコードの投票履歴表示・出力用編集処理が終了する。しかし、投票履歴の表示・出力処理は、投票レコード毎に行わなければならないので、続いて、投票履歴テーブル１１１の全てのレコードを処理したか否かをチェックする（Ｓ１６２）。投票履歴テーブル１１１の全てのレコードを処理していない場合は、投票履歴表示・出力プログラム６１はステップＳ１５１へ戻り、次の投票レコードを処理する。
【０１０４】
投票履歴テーブル１１１の全てのレコードを処理した場合には、出力プログラム６１内の投票履歴編集テーブルの内容をコンピュータ８の画面上へ表示する（Ｓ１６３）。
【０１０５】
図１７は、投票履歴表示・出力画面の一例を示す。図１７の投票履歴表示・出力画面において、図８の仮投票画面と同一構成部分には同一符号を付しその説明は省略する。図１７の電子投票操作メニュー８１では、投票履歴９９が反転表示されているため、現在の画面が投票履歴を表示していることが示される。画面には、投票者がこれまで投票した選挙名、所属、投票した候補者名、が表示される。表示が終了したら閉じるボタン９８をクリックして終了する。過去の投票履歴を表示できることで、投票者は自己の投票履歴を管理でき、次回以降の選挙に参照して投票することができる。
【０１０６】
以上で、投票受付処理、仮投票処理、投票処理、投票履歴表示・出力処理が終了した。本実施例によれば、投票日前にクライアント１０１において仮の投票操作を可能となり、また、投票操作により得られた投票データを可搬とすることで、他のクライアントからの投票が可能である。
【実施例２】
【０１０７】
次に、本発明の第２実施例について説明する。第１実施例では、仮投票と投票を別の日又は場所で行ったが、第２実施例では仮投票を行わず、投票日に投票受付から投票までを続けて行う方法について説明する。
【０１０８】
図１８は、当日投票システムの全体像の一例を示す図である。図１８において、図１、図４及び図１０と同一構成部分には同一の符号を用いるものとし、その説明は省略する。本実施例では、仮投票を行わないので仮投票ＤＢ５１は使用しないため図１８に仮投票ＤＢ５１は存在しない。また、当日投票を行うための当日投票クライアントプログラム１８０が存在する。それ以外の構成は第１実施例と同一である。
【０１０９】
図１９乃至２１に当日投票処理のフローチャート図を示す。本実施例では、投票受付から投票までを一連の処理として行うため、処理の内容は第１実施例の投票受付処理と投票処理、を連続して行う処理となる。このため、処理の大部分が重複するので、第１実施例と処理が異なる点を中心に説明する。なお、当日投票処理のうちクライアント１０１側の処理は、当日投票クライアントプログラム１８０が行う。当日投票クライアントプログラム１８０は、コンピュータに事前にインストールされていてもよいし、サーバ１００からダウンロードした後にインストールしてもよいし、ＪＡＶＡ（登録商標）アプレットをブラウザ上で実行するものとしてもよい。
【０１１０】
図１９は、当日投票処理のうち、投票受付処理の内容を示すフローチャート図である。図１９のフローチャート図は、図５のフローチャート図と同一であり、図１９の各ステップには図５のフローチャート図の各ステップと同一符号を付した。従って図５の説明で前述したように、図１９の投票受付機能を実行すると、投票識別番号が生成され、投票者のＩＣカード１０に投票識別番号と立候補者テーブルが記録される。
【０１１１】
すなわち、当日投票クライアントプログラム１８０は、本人の認証を行い（Ｓ５０１）、投票予定の選挙を特定する（Ｓ５０２）。当日投票クライアントプログラム１８０は、ネットワーク１を介して投票者により特定された選挙のサーバ１００に接続し（Ｓ５０３）、ＩＣカード１０に記録されている基本４情報（氏名、住所、生年月日、性別）をサーバ１００へ送信する（Ｓ５０４、Ｓ５０５）。基本４情報を受信した投票受付サーバプログラム３６は（Ｓ５２２）、選挙人名簿３２に登録されているかを検索する（Ｓ５２３）。投票受付サーバプログラム３６は、乱数を利用して投票識別番号を生成し（Ｓ５２８）、当該投票識別番号を投票識別番号管理テーブル３３に登録する（Ｓ５３１）。投票識別番号が生成されたら、投票受付サーバプログラム３６は、立候補者テーブル３４から選挙コードに該当する選挙の立候補者のリストを読み出す（Ｓ５３２）。処理が終了すると、投票受付サーバプログラム３６は、戻り値、投票識別番号及び立候補者リストをクライアント１０１へ送信する（Ｓ５３４）。
【０１１２】
戻り値、投票識別番号及び立候補者リストを受信した当日投票クライアントプログラム１８０は、ＩＣカード１０の投票履歴テーブルに投票識別番号及び立候補者情報を記録する（Ｓ５１１、Ｓ５１２）。以上が、図１９のフローチャート図で行われる処理である。
【０１１３】
図２０は、当日投票処理のうち、投票データを作成する処理を示すフローチャート図である。まず、当日投票クライアントプログラム１８０は、当日投票画面を生成する（Ｓ２０１）。当日投票画面の一例を図２２に示す。図２２の当日投票画面において、図１２の確認・投票画面と同一構成部分には同一符号を付し、その説明は省略する。図２２の電子投票操作メニュー８１では、当日投票９３が反転表示されていることから、当日投票画面であることが示される。画面には、“選択”欄８８、“所属”欄８９、“候補者名”欄９０で構成されるテーブルが表示され、署名ボタン８３、投票ボタン９５、取り消しボタン９６、入力クリア８６が表示されている。また、ペア鍵の認証を行うためのペア鍵認証コードの入力欄８７が、署名ボタン８３をクリックすることでポップアップ表示される。
【０１１４】
当日投票クライアントプログラム１８０が当日投票画面を生成すると、図１９のフローチャートのステップＳ５１２でＩＣカード１０に記録された立候補者テーブルがＩＣカード１０から読み出され、当日投票画面に表示される。投票者は、自己が投票する投票者を選択し、“選択”欄をチェックする。図２２では「△△党  ○○○」が選択された。
【０１１５】
次に、当日投票クライアントプログラム１８０は、対象選挙システムの公開鍵を入手する（Ｓ２０２）。これにより、選挙システムが復号化できる形で暗号化される（Ｓ２０３）。なお、選挙システムの公開鍵は、当日投票クライアントプログラム１８０が電子投票システム５からダウンロードする。
【０１１６】
次に、図２２の署名ボタン８３がクリックされると、当日投票クライアントプログラム１８０は、ＩＣカードのペア鍵アクセスの認証を行う（Ｓ２０４）。投票者により、ペア鍵認証コードがペア鍵認証コードの入力欄８７に入力されることで、当日投票クライアントプログラム１８０は、投票者のＩＣカード１０に記録されたペア鍵（公開鍵、秘密鍵）が使用可能となる。
【０１１７】
当日投票クライアントプログラム１８０は、鍵ペアアクセスの認証が済んだら、投票者の秘密鍵を用い、ＩＣカード１０の当該選挙に該当するレコードの電子署名欄に電子署名を付与する（Ｓ２０５、Ｓ２０６）。このとき、電子署名の対象となるのは、選挙コード、投票識別番号、候補Ｎｏ、立候補者氏名、所属、である。これで、投票データは暗号化され、かつ、電子署名も行われたので、投票できる準備が整った。なお、電子署名がされたら、ＩＣカード１０の投票レコードの電子署名欄を新たに生成された電子署名で更新する。
【０１１８】
投票準備が整ったら、投票処理を行う。図２１は、当日投票処理のうち、投票を行う処理を示すフローチャート図である。
【０１１９】
図２０のステップＳ２０６で電子署名を付与すると、当日投票クライアントプログラム１８０は、ＩＣカード１０に記録された立候補者テーブルの選挙コードなどにより、該当する選挙の投票サーバに接続する（Ｓ２０７）。投票サーバは投票受付サーバと共通であってもよいので、その場合には、図１９の投票受付処理で接続したまま、投票処理を行ってもよい。
【０１２０】
投票サーバに接続したら、図２２の投票ボタン９５をクリックし、図２０で生成された投票データを投票サーバに送信する。
【０１２１】
以上で、投票サーバプログラムは投票データを受信したので、これ以降の処理は、仮投票を介した投票処理（図９）と同一となる。すなわち、当日投票クライアントプログラム１８０は、投票者の公開鍵で投票レコードの電子署名を検証し（Ｓ９１６）、選挙システムの秘密鍵で立候補者データを復号化し（Ｓ９２１）、タイムスタンプ発行者１５０から現在時刻と時刻署名を受け（Ｓ９２２）、投票データＤＢ５２に投票データを登録し（Ｓ９２５）、投票者の公開鍵で立候補者データを暗号化し（Ｓ９２６）、選挙システムの秘密鍵で電子署名を付与し（Ｓ９２７）、投票レコード及び戻り値をクライアント１０１に送信する（Ｓ９２８）。当日投票クライアントプログラム１８０は、受信した投票レコードをＩＣカード１０に記録し、図４で説明した投票履歴テーブルを更新する。
【０１２２】
以上で当日投票処理が終了した。本実施例によれば、仮投票がないため電子メールによる投票の催促がなく構成を簡易化でき、仮投票を必要としないことから投票方法の選択肢が増す。
【０１２３】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）  クライアント及びサーバがネットワークを介して接続されており、前記クライアントからサーバに対して電子投票を行う電子投票方法において、
前記クライアントが、投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録段階と、
前記クライアントが、投票日に投票者から入力された指示により、前記記録媒体に記録した投票データを前記サーバに送信して電子投票を行う電子投票段階と、
を有することを特徴とする電子投票方法。
（付記２）  前記サーバが、投票日前に前記クライアントから仮投票データを受信する仮投票データ受信段階と、
前記サーバが、投票日に、前記仮投票データ受信段階により受信した仮投票データのうち前記クライアントのメールアドレスに基づいて、該クライアントに投票日を報知するメールを送信する投票日報知段階と、
を有することを特徴とする付記１記載の電子投票方法。
（付記３）  前記サーバが、投票日に、前記クライアントから投票データを受信する投票データ受信段階と、
前記サーバが、前記投票データ受信段階により受信した投票データの時刻署名をタイムスタンプ発行者から取得する時刻署名取得段階と、
を有することを特徴とする付記１又は２記載の電子投票方法。
（付記４）  前記投票者からの指示に基づき、前記記録媒体に記録された投票データを所定のクライアントに表示させる投票データ表示段階、
を有することを特徴とする付記１乃至３いずれか記載の電子投票方法。
（付記５）  前記記録媒体は個人認証データが記録されたＩＣカードであることを特徴とする付記１乃至４いずれか記載の電子投票方法。
（付記６）  クライアント及びサーバがネットワークを介して接続されており、前記クライアントからサーバに対して電子投票を行うクライアントにおける電子投票方法において、
前記クライアントが、投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録段階と、
前記クライアントが、投票日に投票者から入力された指示により、前記記録媒体に記録した投票データを前記サーバに送信して電子投票を行う電子投票段階と、
を有することを特徴とする電子投票方法。
（付記７）  クライアント及びサーバがネットワークを介して接続されており、前記クライアントからサーバに対して電子投票を行うサーバにおける電子投票方法において、
前記サーバが、投票日前に前記クライアントから仮投票データを受信する仮投票データ受信段階と、
前記サーバが、投票日に、前記仮投票データ受信段階により受信した仮投票データのうち前記クライアントのメールアドレスに基づいて、該クライアントに投票日を報知するメールを送信する投票日報知段階と、
を有することを特徴とする電子投票方法。
（付記８）  コンピュータを、
投票者から投票日前に入力された投票データを挿抜可能な記録媒体に記録する投票データ記録手段と、
投票日に投票者から入力された指示により、前記記録媒体に記録した投票データをサーバに送信して電子投票を行う電子投票手段と、
として機能させることを特徴とする電子投票プログラム。
（付記９）  コンピュータを、
投票日前にクライアントから仮投票データを受信する仮投票データ受信手段と、
投票日に、前記仮投票データ受信段階により受信した仮投票データのうち前記クライアントのメールアドレスに基づいて、該クライアントに投票日を報知するメールを送信する投票日報知手段と、
として機能させることを特徴とする電子投票プログラム。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一実施形態の全体像の一例を示す図である。
【図２】選挙人受付事務システムの各テーブルの一例を示す図である。
【図３】電子投票システムの各テーブルの一例を示すである。
【図４】ＩＣカードの記録内容を示す図である。
【図５】受付処理を示すフローチャート図の一例である。
【図６】受付処理と仮投票の全体像の一例を示す図である。
【図７】仮投票の処理を示すフローチャート図の一例である。
【図８】仮投票画面の一例を示す図である。
【図９】投票の処理を示すフローチャート図の一例である。
【図１０】投票段階の全体像の一例を示す図である。
【図１１】投票レコードの一例を示す図である。
【図１２】確認・投票画面の一例を示す図である。
【図１３】投票内容変更処理を示すフローチャート図の一例である。
【図１４】投票内容修正画面の一例を示す図である。
【図１５】投票履歴表示・出力処理を示すフローチャート図の一例を示す図である。
【図１６】投票履歴表示・出力処理の全体像の一例を示す図である。
【図１７】投票履歴表示・出力処理画面の一例を示す図である。
【図１８】当日投票の全体像の一例を示す図である。
【図１９】当日投票の場合の投票受付処理のフローチャート図を示す図である。
【図２０】当日投票の場合の投票データ作成処理のフローチャート図を示す図である。
【図２１】当日投票の場合の投票処理のフローチャート図を示す図である。
【図２２】当日投票画面の一例を示す図である。
【符号の説明】
【０１２５】
２      コンピュータ
３      選挙人受け付け事務システム
５      電子投票システム
６      ＫＩＯＳＫ端末
９      開票・集計システム
１０    ＩＣカード
２１    投票受付クライアントプログラム
２２    仮投票クライアントプログラム
３６    投票受付サーバプログラム
４１    投票クライアントプログラム
５４    仮投票サーバプログラム
５６    投票催促通知プログラム
５８    投票サーバプログラム
６１    投票履歴表示・出力プログラム
１１１  投票履歴テーブル
１１２  基本４情報テーブル
１１３  立候補者テーブル
１１４  認証データ
１１５  投票者公開鍵
１１６  投票者秘密鍵
１１７  選挙システムの公開鍵
１１８  選挙システムの秘密鍵
１５０  タイムスタンプ発行者（ＴＳＡ）
１８０  当日投票クライアントプログラム
【図１】
2005070892.tif 000003
【図２】
2005070892.tif 000004
【図３】
2005070892.tif 000005
【図４】
2005070892.tif 000006
【図５】
2005070892.tif 000007
【図６】
2005070892.tif 000008
【図７】
2005070892.tif 000009
【図８】
2005070892.tif 000010
【図９】
2005070892.tif 000011
【図１０】
2005070892.tif 000012
【図１１】
2005070892.tif 000013
【図１２】
2005070892.tif 000014
【図１３】
2005070892.tif 000015
【図１４】
2005070892.tif 000016
【図１５】
2005070892.tif 000017
【図１６】
2005070892.tif 000018
【図１７】
2005070892.tif 000019
【図１８】
2005070892.tif 000020
【図１９】
2005070892.tif 000021
【図２０】
2005070892.tif 000022
【図２１】
2005070892.tif 000023
【図２２】
2005070892.tif 000024