説明

リスト署名を生成する方法及びシステム

本発明は、署名されるメッセージ(M)のためのリスト署名を生成する方法に関し、その方法は、リストのメンバーの電子式ハードウェアサポート(7)によって実行されるステップを有する。前記ステップにおいて、電子式ハードウェアサポートは、認証機関によって電子式ハードウェアサポートに提供されるシーケンス番号(REPSEQ)と、メンバーのリストに所属することの証拠(SK)と、電子式ハードウェアサポートに関連するデータ(Id,SK)と、任意的に、生成された署名の匿名性を解除する資格を与えられた機関の鍵とに基づいて、電子署名(S)を生成するのみである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号技術を必要とするメッセージ電子署名の分野に関する。
【背景技術】
【0002】
本発明は、特に、投票、調査、及び入札の電子式サービス、又は、匿名の競争のあらゆる形態に適用されるが、適用はこれらに限定されない。また、本発明は、アクセスチケット(入場切符)によって、輸送サービスや映画サービスのような支払いサービスへのアクセス(入場)を制御することにも適用され、ユーザによる限られた回数だけサービスへのアクセスを許可する。アクセス回数が制限値に達すると直ちに、彼/彼女は、彼/彼女のチケットを使用することが、もはやできなくなるべきである。この種の使用においては、ユーザのアイデンティティ(身元、identity)を知ることは必要ではない。彼/彼女にとっては、アクセス中に、彼/彼女がアクセス権を有することを証明することができれば十分である。
【0003】
電子署名は、いわゆる非対称鍵暗号すなわち公開鍵(パブリックキー)暗号の部類に入るメカニズムである。このメカニズムにおいては、署名者は、秘密鍵すなわち私有鍵(プライベート鍵)と、関連付けられた公開鍵とを持っている。彼/彼女は、彼/彼女の秘密鍵を用いて、それに暗号アルゴリズムを適用することによって、メッセージの署名を生成する。検証者は、対応する公開鍵を用いる同じ暗号アルゴリズムを適用することによって、署名を検証することができる。
【0004】
グループ署名の概念も提案されている。それは、適切な公開鍵を持つ検証者が、署名者のアイデンティティを判定することができなくても、その署名がそのグループのメンバーによって送出されたことを検証することができるように、グループの各メンバーに、署名を生成することを許可する。この概念は、例えば、以下の文献に記述されている。
【0005】
【非特許文献1】「ア プラクティカル アンド プロバブリー セキュア コアリション・レジスタント グループ シグネチャ スキーム(A Practical and Provably Secure Coalition−Resistant Group Signature Scheme)」、 ジー・アテニエーゼ(G. Ateniese)、ジェイ・カメニッシュ(J. Camenisch)、エム・ジョイ(M. Joye)、及びジー・ツディック(G. Tsudik)、 エム・ベラーレ(M. Bellare)監修者(Editor)、 アドバンス・イン・クリプトロジー(Advance in Cryptology)、 CRYPTO2000、 Vol.1880 LNCS、 p.255−270、 シュプリンガー・フェアラーク(Springer−Verlag) 2000.
【非特許文献2】「イフィシエント グループ シグネチャ スキーム フォー ラージ グループス(Efficeient Group Signature Scheme for Large Groups)、 ジェイ・カメニッシュ(J. Camenisch)及びエム・スタッドラー(M. Stadler)、 ビー・カリシ(B. Kalishi)監修者(Editors)、 アドバンス・イン・クリプトロジー(Advance in Cryptology)、 EUROCRYPT’97、 Vol.1294 LNCS、 p.410−424、 シュプリンガー・フェアラーク(Springer−Verlag) 1997.
【0006】
グループ署名の概念の根底にある一般原理は、グループの各メンバーを、共通の困難な課題に対する明確なソリューション(解決法)に関連付けることである。このソリューションは、彼/彼女の登録時に、グループの新メンバーの各々に、権限を有する認証機関によって付与される。彼/彼女の登録の間、メンバーは、この困難な課題に対する彼/彼女自身のソリューションを取得するために、彼/彼女に固有である署名プライベート鍵を計算し、認証機関と相互に影響し合う。メンバーと認証機関は、メンバーのプライベート鍵に強く関連し、ときとしてメンバーに知られている課題のソリューションと関連する、メンバー証明書をも算出する。グループを代表してメッセージに署名するために、メンバーは、彼/彼女の証明書を認証機関の公開暗号鍵を用いて暗号化し、彼/彼女がグループメンバーのプライベート鍵、困難な課題に対するソリューション、及び暗号文に含まれた平文に関連付けられたメンバー証明書(グループに所属することの証拠)を知っていることを証明する。ここでの基礎は、暗号法であり、特に、グループ署名の望ましい特性を取得するために、知っていることの証拠(evidence of knowledge)である。グループ署名の検証は、知っていることの証拠を検証することから構成される。署名を開くこと(opening)は、証明書を解読(復号)することから構成されるのみである。
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、このグループ署名の概念においては、認証機関は、いかなるときにも、署名者の匿名性を解除することができ、すなわち、署名を送出したグループの人のアイデンティティを判定することができる。また、このタイプの署名は、「ノン・リンカブル(non−linkable)」と呼ばれている。すなわち、このタイプの署名は、署名の匿名性を解除すること無く、2つの署名が同じ人によって送出されたか否かのいかなる判定も許可しない。したがって、グループ署名の概念は、電子投票にあまり適していない。
【0008】
また、リスト電子署名と呼ばれるものもある。リスト電子署名は、メンバーのアイデンティティを判定することができなくても、署名がリストのメンバーによって生成されたということを、検証者が認識することができるように、署名を生成することを、リストのメンバーに許可する。例えば、本出願人によって出願された特許出願FR2842680に記述されているリスト署名の概念によれば、時間は、予め決められた有効期間を付されたシーケンスの代表によって特徴付けられた複数のシーケンスに分割される。あるシーケンスの間、リストの各メンバーは、署名者のアイデンティティにアクセスすることができなくても、検証者が2つの署名がリストの同じメンバーによって送出されたものであるか否かを判定することができるような署名を生成する権限を与えられている。このように、もしもリストのメンバーが同じシーケンスの期間中に2つの署名を生成したならば、署名者のアイデンティティを判定することができなくても、これを検出することができる。
【0009】
リスト署名は、このように電子投票や電子調査に非常に適している。なぜなら、各投票者が、彼/彼女の匿名性を保証する彼/彼女の投票のリスト署名を生成することができ、一方、同じ所定の選挙(シーケンス)の期間中に同じ人によって送出された投票を検出することができるからである。また、リスト署名は、例えば、交通機関の乗車券や映画のチケットのようなアクセスチケットにも非常に適している。なぜなら、ユーザは、彼/彼女が権利を与えられたアクセスの毎に、彼/彼女の匿名性を保証するリスト署名を生成することができ、一方、支払われた金額に応じたある回数だけ彼/彼女にサービスにアクセスする権限を付与するように、あるシーケンスの期間中に既に送出された署名の数を判定できるからである。しかし、あるリスト署名は、「オープナブル(openable)」と呼ばれており、これは、認証機関が、署名から署名者のアイデンティティを判定できるということである。
【0010】
より具体的に言えば、リストの各メンバーは、彼/彼女がリストに登録されている期間中に、プライベート鍵を計算し、認証機関からリストのメンバーの証明、及び困難な課題に対するソリューションを取得する。リスト署名の概念は、匿名性が解除されることを許可しておらず、署名を生成するときにおけるいかなる暗号化も含まない。あるシーケンスの開始時に、認証機関は、シーケンスの期間中、唯一有効となるシーケンスの代表を生成する。署名の生成の際、リストのメンバーは、グループ署名の場合と同様、彼/彼女が、プライベート鍵、困難な課題に対するソリューション、及びリストのメンバーであることの証明を知っていることの証拠を提供する。彼/彼女はまた、冪指数がプライベート鍵である、シーケンスの代表の冪(累乗)をも計算する。シーケンスの代表とプライベート鍵はこのシーケンスのために設定されているので、あるシーケンスの期間中、リストの同じメンバーによって生成された2つの署名をリンクさせることが可能である。したがって、同じシーケンスの期間中に、リストの各メンバーによって送出された署名の数を数えることができる。
【0011】
これらの概念のすべての主要な問題点は、これらは膨大な計算を必要とすることに起因する。実際に、生成された署名の各々に対して、多くのモジュラ冪法(modular exponentiation)を適用する、複数個の知っていることの証拠を生成することが必要であり、計算、特に乱数を発生させるのに多くの時間を要する。暗号処理プロセッサを備えたチップカードは、モジュラ冪ごとに約1秒を要する。
【0012】
計算時間の費用の問題に対する解決策は、本出願人によって出願された特許出願FR2842680において、グループ署名のために提案されている。チップカード(暗号処理プロセッサ)を適用することから成るこの解決策は、グループ署名の問題点、すなわち、あるメンバーによって送出された署名を、署名の匿名性を解除することなく、リンクさせることができないという問題点を有する。
【課題を解決するための手段】
【0013】
本発明の目的は、これらの欠点を軽減することにある。本発明の目的は、署名されるメッセージに関するリスト署名を生成する方法であって、リストのメンバーの電子式ハードウェアサポートによって実行され、前記電子式ハードウェアサポートが、前記署名されるメッセージから電子署名を生成し、前記生成された署名を送出するステップを有する方法を提供することによって達成される。本発明によれば、前記電子署名は、前記署名されるメッセージと、認証機関によって前記電子式ハードウェアサポートに提供されるシーケンス番号と、メンバーの前記リストに所属することの証拠と、前記電子式ハードウェアサポートに固有のデータと、任意的に(オプションとして)前記生成された署名の匿名性を解除する資格を与えられた機関からの鍵とに基づいて生成されるのみである。
【0014】
本発明の一実施形態によれば、前記電子式ハードウェアサポートは、前記シーケンス番号に基づいて、前記電子署名を生成するために用いられる擬似乱数を生成し、前記生成された擬似乱数は、前記シーケンス番号と前記電子式ハードウェアサポートに固有のデータとに基づいて変わるのみである。
【0015】
本発明の一実施形態によれば、前記擬似乱数の生成は、前記電子式ハードウェアサポートに記憶され且つ前記電子式ハードウェアサポートに固有である秘密鍵を用いて、暗号化関数によって実行される。
【0016】
本発明の一実施形態によれば、前記シーケンス番号から生成された前記擬似乱数は、前記生成された電子署名と共に送出される。
【0017】
本発明の一実施形態によれば、メンバーの前記リストに所属することの前記証拠は、前記リストの前記メンバーに共通の秘密鍵を知っていることから構成される。
【0018】
本発明の一実施形態によれば、前記電子式ハードウェアサポートは、前記電子署名を生成するために用いられる暗号化された識別子を取得するために、前記生成された署名の匿名性を解除する資格を与えられた前記機関の前記鍵による暗号アルゴリズムを用いて、前記電子式ハードウェアサポートに記憶され、前記電子式ハードウェアサポートを有する前記メンバーを特定する識別コードを、暗号化する。
【0019】
本発明の一実施形態によれば、前記シーケンス番号から生成された擬似乱数は、前記メンバー識別コードを暗号化するために用いられる。
【0020】
前記暗号化された識別子は、前記生成された電子署名と共に送出されることが望ましい。
【0021】
本発明の一実施形態によれば、前記電子式ハードウェアサポートは、認証機関に代わって、前記シーケンス番号の署名に関連付けられた前記シーケンス番号を受信し、前記シーケンス番号の前記署名を検証し、前記シーケンス番号に関連付けられた前記署名が正しくない場合には新たな署名を生成することを拒否する。
【0022】
本発明の一実施形態によれば、前記電子式ハードウェアサポートは、以前に送出された署名の数が、許可された署名の最大数以下である場合に、署名を生成する。
【0023】
本発明の一実施形態によれば、送出された署名の前記最大数は、シーケンス番号の変更時に、リセットされる。
【0024】
本発明は、また、組織機関が、投票に要求されるパラメータの生成を進め、投票が暗号解読され検証され得るようにするために用いられる鍵を投票検査人に割り当てる、選挙を準備する段階と、各投票者に署名権を割り当てる段階と、前記投票者が投票に署名する投票段階と、前記投票検査人が前記投票を検証し、前記暗号解読された有効な投票用紙の内容に基づいて、前記投票の結果を計算する集計段階とを有する電子投票方法に関する。
【0025】
本発明によれば、その方法は、投票に署名するために、以上に定義された一つのリスト署名方法を適用し、各投票者がリストのメンバーとして登録されており、シーケンス番号が前記投票のために生成され、許可された署名の最大数が1である。
【0026】
本発明は、また、以上に定義された方法を適用する手段を有する電子式ハードウェアサポートに関する。
【0027】
本発明の一実施形態によれば、電子式ハードウェアサポートは、暗号マイクロプロセッサカードである。
【発明を実施するための最良の形態】
【0028】
本発明の好ましい実施形態を、非限定的な例として、添付の図面を参照して、以下に説明する。
図1は、本発明に係るリスト署名方法及び電子投票方法を適用するシステムを示す図であり、
図2は、本発明に係る方法にしたがってリスト署名を生成するために用いられることができるチップカードの機能的構成要素を概略的に示す図であり、
図3は、図2に示されるチップカードによって、“ノンオープナブル”(non−openable、“オープナブル”ではない)であるが実行可能な、本発明に係るリスト署名手順をフローチャートとして示す図であり、
図4及び図5は、図2に示されるチップカードによって“オープナブル”(openable)であり実行可能な、本発明に係るリスト署名手順をフローチャートとして示す図であり、
図6は、図2に示されるチップカードによって実行可能な、本発明に係るリスト署名手順の他の変形例を、フローチャートとして示す図であり、
図7から図9までは、本発明に係るリスト署名方法を電子投票に適用した場合をフローチャートとして示す図である。
【0029】
本発明は、権限を与えられたすべての人、すなわち、リストに所属するすべての人が、匿名の署名を生成することができ、その署名の有効性を、署名を送出したリストのメンバーのアイデンティティ(identity)にアクセスせずに、誰もが検証できる、リスト署名方法を提案する。
【0030】
そのような方法は、図1に示されるシステムにおいて適用されることができる。このシステムは、ユーザが利用できるようにされており、インターネットネットワークのようなデジタルデータ伝送ネットワーク5に接続されている端末2を有している。各端末は、チップカード7のような電子式ハードウェアサポートを読み取る装置8に好都合に接続される。ネットワーク5を通して、ユーザは、例えば、データベース4に格納された情報へのアクセスを許すサーバ6に接続することができる。このシステムは、特にチップカード7をユーザに届ける認証機関のコンピュータ1をも有している。
【0031】
また、本発明に係るシステムは、例えば、上記特許出願FR2834403に記載されているように、グループ署名を置くことに基づいているが、それにもかかわらず、対称暗号アルゴリズム又は非対称暗号アルゴリズムを用いていることに基づいている。
【0032】
グループに対して責任を負う認証機関は、選択されたグループ署名を置くために要求される鍵とパラメータのすべてを生成し、ディレクトリ(例えば、データベース4)の中に、これらの要素の内の、すべての公開の要素を置く。
【0033】
このグループに所属するために、各メンバーは、認証機関から、例えば、図2に示される機能的アーキテクチャ(構成)を有するチップカード7を受け取っている。このアーキテクチャは、
・内部機能の処理及びカードのメモリに記憶されたアプリケーションプログラムの実行を提供し、暗号計算を実行する最適化された暗号プロセッサを有することができる、マイクロプロセッサ11と、
・プロセッサ11が、一時データ、例えば、暗号計算の中間結果を、記録することができる、読取り及び書込みが可能なランダムアクセスメモリ14、
例えば、再プログラム可能なタイプ(EEPROM)であり、カスタマイズされたデータ及びアプリケーションプログラムのように、カードの製造後のデータ長期保存が可能なリードオンリーメモリ13、及び、
チップカードの製造中に変更されないデータを用いてプログラムされ、特にチップカードの内部処理プログラム及び場合によっては暗号データが記憶される、ROMタイプのリードオンリーメモリ15
を含むメモリ12と、
・そこを通して、カードが適切なチップカードリーダ8とデータを交換する通信インターフェース16と、
・それによって、前記構成要素が互いに接続される内部バス17と
を有している。
【0034】
チップカード7は、特に、ROMメモリ15に記憶されているあるデータに、外部からアクセスさせないための保護がなされることが望ましい。また、本発明に係るリスト署名方法を適用するために、カードのメモリ12は、グループ署名を生成する手段と、擬似乱数を生成する手段とを含む。グループ署名を生成する手段は、署名アルゴリズムと、メンバーiの識別子Idと、リストのすべてのメンバーに共通であるリスト署名秘密鍵SKと、チップカードに知られているだけであり、それに固有である秘密鍵SKとを用いることによって生成される。
【0035】
もしも生成されたリスト署名が、匿名性を解除する資格を与えられた機関によって開けられる(オープンする)ことができる必要があるならば、対称暗号アルゴリズム又は非対称暗号アルゴリズムが用いられる。このアルゴリズムは、暗号化されるメッセージと、必要に応じて、アルゴリズムが実行される度に、同じメッセージの異なる暗号文を生成するように、アルゴリズムが実行される度に異なる疑似乱数、例えば、擬似乱数Rとを、入力とする。一方、もしも擬似乱数が変わらないならば、同じメッセージのために取得された暗号文は、常に同じである。
【0036】
また、認証機関は、所定の期間の連続したシーケンスを管理する。認証機関は、所定期間の各々において、それ以前に生成されたどのシーケンス番号とも異なり、リストのすべてのメンバーに共通であるべきである固有のシーケンス番号REPSEQをランダムに生成する。また、この番号は、認証機関によって署名されることがさらに望ましい。
【0037】
シーケンス番号は、例えば、認証機関が、ハッシュ関数、例えば、SHA−1関数によって圧縮を計算し、例えば、PKCS#1のv2.1規格のOS2IP関数を適用することによって、その結果をフォーマットするために、ランダムに生成された要素から得られる。
【0038】
リストの代表としてメッセージMに署名するため、リストのメンバーは、認証機関からそのメンバーに渡されたチップカード7を用いる。チップカードは、端末2とチップカード読取装置8を介して、署名されるメッセージMとシーケンス番号REPSEQを入力として受信する。
【0039】
その後、チップカードは、図3に示されるリスト署名の手順を実行する。この手順は、擬似乱数生成関数PRNGにより、チップカードに応じた擬似乱数Rを生成することと、有効にされている間にシーケンス番号REPSEQを入力とし受信することとを有し、この入力データは、前記擬似乱数生成関数の「シード(seed)」として用いられる。
【0040】
生成された擬似乱数Rがカードに依存するようにするために、リストのメンバーの2つの異なるカードが、同じシーケンス番号REPSEQから2つの異なる擬似乱数を必ず生成するような関数が選ばれる。典型的には、関数PRNGは、リストのメンバーに渡されたどのチップカードに対しても一般的な関数であり、また、それはチップカード7に固有の秘密鍵SKをシードとして受け取る。
【0041】
チップカードによって実行されるリスト署名の手順は、そのとき、グループ署名アルゴリズムの実行を含む。このアルゴリズムは、例えば、署名されるメッセージMを取得された擬似乱数Rに連結することと、従来の署名関数Signをチップカードに記憶されたリスト署名の秘密鍵SKを用いることによって得られた値に適用することとから構成される。チップカードによって出力時に届けられた署名Sは、署名関数Signによって与えられた署名値Sが連結された擬似乱数Rを含む。
【0042】
この手順によって適用される署名アルゴリズムは、以下の式にまとめることができる。
=PRNG(SK,REPSEQ) (1)
=Sign(SK,R‖M) (2)
S =R‖S (3)
記号‖は、連結(concatenation)演算子である。
【0043】
例えば、関数PRNGは、例えばAES(Advanced Encryption Standard)タイプの従来の暗号化関数を用いて、又は、代わりに、シーケンス番号REPSEQを“SKモジュロn”乗するモジュラ累乗(modular exponentiation)(すなわち、シーケンス番号REPSEQを基数(底)とし、“SKモジュロn”を冪指数としたときの、冪(累乗)を算出するモジュラ累乗)を用いて、生成される。
【0044】
選択された関数Signは、例えば、RSA(Rivest,Shamir,Adleman)タイプである。このRSAタイプは、値R‖Mで得られた値を“SKモジュロn”乗すること(すなわち、値R‖Mで得られた値を基数とし、(SK modulo n)を冪指数としたときの、冪(累乗)を算出すること)によるR‖Mの変換で構成される。値R‖Mのフォーマットを許可する変換は、例えば、PKCS#1のv2.1規格において提供されるように、文字列を正の整数に変換するOS2IP関数である。
【0045】
署名Sを確認するには、それを上記例におけるグループ署名検証手順に適用すれば十分である。グループ署名検証手順は、得られた値を文字列に変換するため(PKCS#1規格のI2OSP関数)、署名Sを“SKモジュロn”乗して(すなわち、署名Sを基数とし“SKモジュロn”を冪指数としたときの、冪(累乗)算出して)、得られた値を変換するステップと、得られた変換値を、署名されたメッセージMと比較するステップとを含む。署名の検証は、当然、署名Sと関連付けられた値Rが、署名においてメッセージMと関連づけられた値Rと一致することの検証も含む。
【0046】
同じシーケンス番号REPSEQを用いて生成された2つの署名が、リストの同じメンバーから送出されたか否かを確認するために、署名Sにおいてメッセージの署名Sに関連付けられた番号Rを比較すれば十分である。これらの番号Rは、同じシーケンス番号のために同じチップカードによって送出された両方の署名Sにおいて同一である。
【0047】
署名Sの検証を可能にするリスト鍵を持たない人でさえも、同じシーケンスのための同じチップカードによって送出された2つの署名をリンクさせることができることが要求されている場合を除いて、番号Rは生成された署名Sの中に現れるので、番号Rを署名Sに添えて送出する必要はない。
【0048】
今説明した手順は、いわゆる“ノンオープナブル”署名を生成する。すなわち、必要な権限を有する機関でさえも、得られたリスト署名Sの匿名性を解除することは不可能である。署名が“オープナブル”であることが要望される場合には、チップカード7は、図4に示されるリスト署名手順を実行する。
【0049】
図3に基づく上述の手順と比較すると、この手順は、カードを有するリストのメンバーiが特定されることができる要素Idに、暗号化関数Encを適用することを含む。この要素は、識別子、又は、この証明書の一部とメンバーの実際のアイデンティティとの間のリンクを知っている認証機関によって届けられた証明書の一部から構成される。この暗号化は、リストのメンバーによって送出された署名の匿名性を解除する資格を与えられた機関に所属するプライベート解読鍵SKMOに関係付けられた、公開暗号化鍵PKMOを用いる。この暗号化の結果Cは、“ノンオープナブル”なリスト署名手順におけるのと同様にして得られた擬似乱数Rに連結される。この連結を用いることにより、署名の以前にメッセージMが連結され、場合によっては得られた署名Sが連結される、値R‖Cを得ることができる。
【0050】
識別子Idの暗号化は、対称又は非対称なものであることができる。もしもこの暗号化が非対称であるならば、カードは公開鍵PKMOを記憶する。もしもこの暗号化が対称であるならば、カードは、リストのメンバーによって送出された署名の匿名性を解除する資格を与えられた機関が知るのみである秘密鍵SKMOを、安全な方法で記憶する。
【0051】
この処理に適用される署名アルゴリズムは、以下の式にまとめることができる。
=PRNG(SK,REPSEQ) (4)
=Enc(PKMO,Id) (5)
=Sign(SK,R‖C‖M) (6)
S =R‖C‖S (7)
【0052】
関数PRNGは、例えば、AESタイプの従来の暗号化関数であってもよい。暗号化関数Encは、鍵PKMO及びリストのメンバーiの識別子Idを受信し、場合によっては擬似乱数Rも入力として受信する、例えば、AESタイプ又はRSAタイプの従来の暗号化関数である。
【0053】
署名関数Signは、例えば、入力時に適用される値R‖C‖Mを、PKCS#1のv2.1規格のOS2IPのような関数によって変換すること、及び、取得された変換値M´をSK乗した累乗のモジュロnをとる関数を適用することを含む。
【数1】

【0054】
このように、このアルゴリズムは、乱数計算と、それぞれが単純なモジュラ累乗を含む2つの暗号計算から構成されるのみである。
【0055】
署名がリストのメンバーによって送出されたことを検証するためには、署名関数(上述の例においては番号n)と、リストの公開鍵PKがわかれば十分である。この例においては、PKCS#1のv2.1規格の逆変換関数I2OSPを用いて値M″を変換し、メッセージMを用いて得られた値を検証するために、以下の値が計算されれば十分である。
【数2】

【0056】
2つの署名がリストの同じメンバーによって送出されたかどうかを判定するためには、両方の署名に含まれる擬似乱数Rの値を比較すれば十分である。図3を参照した上述の例においては、署名Sの検証を許可するリスト鍵を持たない人でさえ、同じシーケンスに同じチップカードによって送付された2つの署名をリンクさせることできることが要望される場合を除いて、署名Sを添えた擬似乱数Rを送出する必要はない。
【0057】
鍵SKMOを持たない人は、署名の匿名性を解除することができないことに注目すべきである。
【0058】
もしも認証機関が署名の匿名性を解除することを望むのであれば、認証機関は、暗号化関数Encに対応する解読(復号)関数を、鍵SKMOを用いることによって値Cに適用すれば十分である。この動作によって、リストの署名メンバーのアイデンティティを再検出するために、それを用いて、そのディレクトリ(データベース4)内においてサーチを行うことが可能になる識別子を取得することができる。
【0059】
追加のセキュリティ(安全確保)は、認証機関を2つの別個のエンティティ(entities)に分割することから構成される。第1の機関は、プライベート鍵SKを有するのみであり、リストのメンバーの識別子Idを知らない。第1の機関は、リストに対する新メンバーの登録のときに、関係するリストの機関である。第2の機関は、リストのメンバーのすべての識別子の他に、鍵SKMOを有するのみである。第2の機関は、単独で署名の匿名性を解除する資格を与えられたオープニング(opening)機関である。
【0060】
第2の機関は、識別子Idの一部の解読だけができるようにするために、オープニング鍵SKMOのそれぞれの部分を持つだけである幾つかのエンティティに分割されることもでき、また、識別子と、対応する人のアイデンティティとの間にリンクを形成する機関であることもできる。
【0061】
セキュリティレベルを向上させる変形例は、それぞれの鍵SKMOiを各識別子Idに割り当てること、及び、暗号化を確率的にするために用いられる擬似乱数Rのみを暗号化することを含む。ディレクトリに現れる識別子Idが得られるまで、署名の匿名性の解除は、すべての暗号化鍵SKMOiをテストすることを含む。
【0062】
したがって、チップカードが変造された場合には、ハッカーは、カードに含まれているもの以外の識別子を代表するリスト署名を生成することができることなく、カードのSKMOiにアクセスするだけである。したがって、ハッカーは、リストの他のメンバーになりすますことはできない。
【0063】
もしも署名の匿名性を解除する資格を与えられた機関が、リストのメンバーにチップカードを渡す認証機関と同じであるならば、署名Sは署名されたメッセージに関連づけられた署名内に現れるので、署名Sを添えた識別子Cを送出する必要はないことに注目すべきである。
【0064】
図5は、本発明に係るリスト署名方法の他の“オープナブル”な変形例を示す図である。
【0065】
この図に示される手順は、関数PRNGによって取得された擬似乱数Rは、暗号化関数を確率的にするために用いられるという事実においてのみ、図4に示される手順と相違する。ここで、前記手順は、チップカード7を有するリストのメンバーの識別子Idに適用され、この暗号化の結果Cには、署名されるメッセージMが連結され、そして生成された署名Sが連結される。チップカードによって提供される署名は、暗号値Cと連結された、生成された署名Sを含む。
【0066】
このように、この手順によって適用される署名アルゴリズムは、以下の式にまとめることができる。
=PRNG(SK,REPSEQ) (10)
=Enc(PKMO,R,Id
=Sign(SK,C‖M) (11)
S =C‖S (12)
【0067】
このように、署名Sに関連付けられた値Cは、リストの同じメンバーと同じシーケンス番号に対して不変である。したがって、これを用いることによって、2つの署名がリストの同じメンバーによって送出されたものであるかどうかを判定することができる。
【0068】
署名の匿名性を向上させるために、鍵PKMOに対応する秘密鍵SKMOを用いることによって、暗号化関数Encに対応する解読(復号)関数を、値Cに適用すれば十分である。
【0069】
上述のように、暗号化関数Encは、対称又は非対称であることができる。第1のケースにおいては、リストのメンバーのチップカードに記憶され、署名を開く資格を与えられた機関に知られているだけである、1つの秘密鍵SKMOが用いられる。
【0070】
本発明の他の実施形態においては、チップカードによって送付可能な署名の数の設定を行ってもよい。このとき、チップカードは、既に送られた署名の数が所定値を上回ると、署名を送出する手順の間、エラーメッセージを送出する手段を有している。
【0071】
本発明の一実施形態においては、チップカードは、図7に示される署名生成手順40を実行する。この手順において、カードによって送出されることができる署名の数が設定される。チップカードは、既に送出された署名の数が所定数を超えるときに、ある署名を送出する手順のときに、エラーメッセージを送出する手段を有している。
【0072】
手順40の第1のステップ41において、チップカード7は、署名されるメッセージMとシーケンス番号REPSEQを受け取り、シーケンス番号REPSEQの有効性を、例えば、認証機関によって生成されシーケンス番号と共に伝送された署名を用いて、検証する。この検証は、チップカードに記憶されている、認証機関の公開鍵PKを用いて実行される。もしもシーケンス番号に関連付けられた署名が有効でないならば、チップカードはエラーメッセージを送出し(ステップ49)、カードによって生成されているいかなる署名をも用いずに、手順40を終了する。
【0073】
もしも署名が有効であるならば、チップカードは、次のステップ42に処理を進め、そこで、受け取られたシーケンス番号をランダムアクセスメモリ13に予め記憶されているシーケンス番号と比較する。そして、もしもこの番号が予め記憶されていなかったならば、ステップ43においてチップカードは受け取られたシーケンス番号を記憶する。
【0074】
第1の変形例においては、送付されることができる署名NBSIGの最大数が、すべての署名につき1回ずつカードのランダムアクセスメモリ13に記憶される。この数はカードのタイプによって異なる。したがって、例えば、交通機関の乗車券に適用するためには、10回使えるカード及び20回使える他のカードが提供されてもよい。
【0075】
他の実施形態においては、送出されることができる署名の最大数NBSIGがシーケンス番号と共に送信され、ステップ41においてチップカードによって検証される署名の中に含まれる。この場合には、認証機関によって生成され、チップカードによって受け取られた署名は、許可された署名の数及び現在の日付(date)が連結されたシーケンス番号を持ってもよい(REPSEQ‖NBSIG‖date)。
【0076】
いずれかの変形例又は両方の変形例において、チップカードは、シーケンス番号が変わる度に、許可された署名の受信数NBSIGを用いてCPTカウンタをリセットする追加ステップ44を実行する。
【0077】
上述の両方の変形例において実行される以下のステップ45において、もしも記憶されているシーケンス番号が受け取られたシーケンス番号(ステップ42)と同一であるならば、生成されることができる署名の数NBSIGは、リードオンリーメモリ13においてデクリメントされる。もしも得られた数が厳密に負であるならば(ステップ46)、チップカードは、エラーメッセージを送出する(ステップ49)。そうでない場合には、ステップ47において、チップカードは、上述のリスト署名方法の一つに基づいて、メッセージMの署名Sを計算し、生成された署名Sを送出する(ステップ48)。
【0078】
カードは、シーケンス番号ごとに異なるカウンタを管理することもできる。カードが新しいシーケンス番号、及び、必要であれば、署名の最大数NBSIG(NBSIGがシーケンス番号ごとに異なることができる場合)を受信する度に、カードは、シーケンス番号と関連するテーブルに記憶されたCPTカウンタをリセットする。カードは、署名されるメッセージを備えたシーケンス番号を受信する際、このテーブルに受信されたシーケンス番号が記憶されているかどうかを調べる。その場合、新しく生成された署名を考慮に入れるため、関連付けられたカウンタを更新する。
【0079】
ここに説明されたリスト署名方法は、電子投票方法に適用されることができる。本発明に係る電子投票方法は、上述のリスト署名方法の手順の実行を含むいくつかの段階から構成される。
【0080】
この方法は、選挙を準備し、この目的で、投票を組織する(organize)手順50を実行する認証機関の介在が必要である。この手順は、選挙が適切に行われるために必要なデータを生成すること、投票を集めたもので、誰もがアクセスできる公開のデータベースを生成することを含む。投票の準備の際、投票を集計し、選挙の結果を判定する投票検査人も指名される。
【0081】
組織機関は、まず、リスト署名を設定するために要求される異なるパラメータを生成する処理を進める。その後、投票者は事前に、例えば、市庁舎で、上述のようにチップカード7を受信するため必要となるすべてのデータ、すなわち、メンバーiの識別子Id、リストのすべてのメンバーによって共有されるリスト署名秘密鍵SK、及び、チップカードのみに知られそれに固有の秘密鍵SKを含む電子リストへの登録を行わなければならない。これらのパラメータによって、投票者は将来の選挙のすべてに参加することができる。
【0082】
手順50のステップ51において、組織機関は、投票者がこの選挙で2回投票(署名)することがないように、新しいリスト署名シーケンスを作成するのに必要なシーケンス番号mの発行も行う。
【0083】
また、投票の集計を行うことに責任を持つ投票検査人は、公開鍵/プライベート鍵の要求される対を生成する(52)。暗号化されたメッセージを公開鍵を用いて復号できるようにするために、彼らは全員協力しなければならない。そのため、投票者が少なくとも1つの公開鍵を用いてメッセージ(投票)を暗号化できるような暗号化システムが選択される。対応する秘密鍵(又は複数の秘密鍵)を用いて、そしてそれによってメッセージを復号することに、すべての投票検査人が協力する義務を負わせている。
【0084】
すべての投票検査人の間における復号化プライベート鍵の共有は、以下の方法によって実行されることができる。
【0085】
巡回群(cyclic group)Gの生成元(generator)gについて考える。個々の秘密鍵xは、各投票検査人iに割り当てられ、各投票検査人iはGに属する値yを以下のように算出する。
【数3】

【0086】
投票者によって用いられる公開鍵Yは、以下の式によって得られる。
【数4】

そして、すべての投票検査人iによって共有される、対応する秘密鍵Xは以下の通りであ
る。
【数5】

【0087】
投票検査人の個々の公開鍵のすべてを用いて暗号化の処理を進めることによって、同じ結果に到達することができる。復号には、対応するプライベート鍵のすべてを知ることが必要である。
【0088】
投票所が開いている期間中に、各投票者は、端末において手順60を実行することによって、投票を送出する。ステップ61において、投票者は、彼/彼女の投票vを選択し、暗号化された投票Dを得るために、投票検査人の公開鍵を用いて、投票vを暗号化する。次に、彼/彼女は、署名Sを得るために、リスト署名方法を用いて暗号化された投票に署名をする。その後、投票と署名のセット(D,S)から構成される投票は、公開のデータベース4において匿名で公開される。
【0089】
ステップ62で、例えば、エルガマル(El Gamal)アルゴリズム又はPaillierアルゴリズムなどの暗号化アルゴリズムを用いることによって、投票の暗号化が実行される。もしもエルガマルアルゴリズムが適用されるならば、以下の数を計算することによって暗号化が実行される。
=v 及び b=g (4)
ここで、rは擬似ランダム要素である。暗号化された投票vは、対
=(a,b
から構成される。投票者Eは、暗号化された投票のリスト署名
=Siglist(a‖b
を計算する(63)。Siglistは、以上に説明されたように、リスト署名であり、彼/彼女のチップカード7によって得られ、上述の端末2に伝送される。
【0090】
投票者Eは、匿名伝送チャンネル、すなわち、伝送されたメッセージをその送信者にリンクさせることを禁止するチャンネルによって、公開データベース4に送信される(64)彼/彼女の投票(D,S)を生成した。投票者は、この目的のために、公開端末又はミキサー(mixers)のネットワークを用いてもよい。
【0091】
投票が終了したときに、投票検査人は、端末3で手順70を実行することによって、投票の集計を実行する。この手順は、まず、復号プライベート鍵Xをそれぞれのプライベート鍵xから式(3)によって生成するステップを含む。次に、ステップ72において、投票(D,S)を取得し、それらを復号するために、投票の公開データベース4にアクセスする。
【0092】
投票の実際の復号は、送出された投票の各々について(ステップ73)、上述のリスト署名検証手順40を実行することによって、署名Sを検証すること(74)と、もしも署名が有効且つ固有であるならば(ステップ75)、暗号化された投票Dを以下の式に基づいて復号すること(ステップ76)とを含む。
=a/b (5)
【0093】
したがって、復号され、対応する検証の結果を用いて検証された投票vは、投票(D,S)に関連して、投票のデータベース4に入れられる(ステップ77)。
【0094】
誰もが投票の集計を検証できるようにするために、復号プライベート鍵Xも公開される。
【0095】
すべての投票が集計されると、この手順70は、ステップ78において、選挙の結果を算出し、データベースにその結果を、また必要であれば復号プライベート鍵Xも、書き込むことによって投票のデータベースを更新する。
【0096】
電子投票システムを立ち上げるのに必要な上述の特徴が、上述の方法によって検証されることを、理解することは容易である。もしも送出される見込みの署名の最大数が1に設定されたならば、各投票者は、1度だけ投票することができる(チップカードは、与えられたシーケンス番号1つにつき、1つの署名のみを送出することができる。)。
【0097】
次に、投票の集計にはすべての投票検査人の参加が要求されるので、投票検査人のうち少なくとも1人がこの規則を守っている場合には、投票が終了する前に、投票の集計を開始することは不可能である。最後に、投票検査人はこの検証を行うために要求される要素のすべて(特に、集計用のプライベート鍵)をデータベース内に入れており、そして、署名の検証は、認証機関の公開鍵PKを用いることによって誰でもアクセス可能であるので、選挙の結果は、すべての人によって検証されることができる。このように、誰もが投票検査人と同様の方法で集計を実行することができ、それゆえ、誰もが、集計が適切に実行されたことを確かめることができる。
【0098】
投票検査人の鍵は、公表されるので、投票の終了時に当然廃止される。
【図面の簡単な説明】
【0099】
【図1】本発明に係るリスト署名方法及び電子投票方法を適用するシステムを示す図である。
【図2】本発明に係る方法によって、リスト署名を生成するために用いられることができるチップカードの機能素子を概略的に示す図である。
【図3】図2に示されるチップカードによって、“ノンオープナブル”であるが、実行可能な、本発明に係るリスト署名手順を、フローチャートとして示す図である。
【図4】図2に示されるチップカードによって“オープナブル”で且つ実行可能な、本発明に係るリスト署名手順を、フローチャートとして示す図である。
【図5】図2に示されるチップカードによって“オープナブル”で且つ実行可能な、本発明に係るリスト署名手順を、フローチャートとして示す図である。
【図6】図2に示されるチップカードによって実行可能な、本発明に係るリスト署名手順の他の例を、フローチャートとして示す図である。
【図7】本発明に係るリスト署名方法を電子投票に適用した場合を、フローチャートとして示す図である。
【図8】本発明に係るリスト署名方法を電子投票に適用した場合を、フローチャートとして示す図である。
【図9】本発明に係るリスト署名方法を電子投票に適用した場合を、フローチャートとして示す図である。

【特許請求の範囲】
【請求項1】
署名されるメッセージ(M)に関するリスト署名を生成する方法であって、
リストのメンバーの電子式ハードウェアサポート(7)によって実行され、前記電子式ハードウェアサポートが、前記署名されるメッセージから電子署名(S)を生成し、前記生成された署名を送出するステップを有し、
前記電子署名(S)は、
前記署名されるメッセージと、
認証機関によって前記電子式ハードウェアサポートに提供されるシーケンス番号(REPSEQ)と、
メンバーの前記リストに所属することの証拠(SK)と、
前記電子式ハードウェアサポートに固有のデータ(Id,SK)と、
任意的に、前記生成された署名の匿名性を解除する資格を与えられた機関の鍵(PKMO)と
に基づいて、生成されるのみである
ことを特徴とするリスト署名を生成する方法。
【請求項2】
前記電子式ハードウェアサポート(7)が前記シーケンス番号(REPSEQ)に基づいて、前記電子署名(S)を生成するために用いられる擬似乱数(R)を生成するステップを有し、
前記生成された擬似乱数は、前記シーケンス番号と前記電子式ハードウェアサポートに固有のデータとに基づいて変わるのみである
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記擬似乱数(R)の前記生成は、前記電子式ハードウェアサポート(7)に記憶され且つ前記電子式ハードウェアサポート(7)に固有である秘密鍵(SK)を用いて、暗号化関数によって実行されることを特徴とする請求項2に記載の方法。
【請求項4】
前記シーケンス番号(REPSEQ)から生成された前記擬似乱数(R)は、前記生成された電子署名(S)と共に送出されることを特徴とする請求項2又は3に記載の方法。
【請求項5】
メンバーの前記リストに所属することの前記証拠は、前記リストの前記メンバーに共通の秘密鍵(SK)を知っていることから構成されることを特徴とする請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記電子式ハードウェアサポート(7)が、前記電子署名(S)を生成するために用いられる暗号化された識別子(C)を取得するために、前記生成された署名の匿名性を解除する資格を与えられた前記機関の前記鍵(PKMO)による暗号アルゴリズムを用いて、前記電子式ハードウェアサポートに記憶され、前記電子式ハードウェアサポートを有する前記メンバー(i)を特定する識別コード(Id)を、暗号化するステップをさらに有することを特徴とする請求項1乃至5のいずれか1項に記載の方法。
【請求項7】
前記シーケンス番号(REPSEQ)から生成された擬似乱数(R)は、前記メンバー識別コード(Id)を暗号化するために用いられることを特徴とする請求項6に記載の方法。
【請求項8】
前記暗号化された識別子(C)は、前記生成された電子署名(S)と共に送出されることを特徴とする請求項6又は7に記載の方法。
【請求項9】
前記電子式ハードウェアサポート(7)は、前記シーケンス番号の署名に関連付けられた前記シーケンス番号(REPSEQ)を受信し、認証機関に代わって、前記シーケンス番号の前記署名を検証し、前記シーケンス番号に関連付けられた前記署名が正しくない場合には新たな署名を生成することを拒否することを特徴とする請求項1乃至8のいずれか1項に記載の方法。
【請求項10】
前記電子式ハードウェアサポート(7)は、以前に送出された署名の数が、許可された署名の最大数以下である場合に、署名を生成することを特徴とする請求項1乃至9のいずれか1項に記載の方法。
【請求項11】
送出された署名の前記最大数は、シーケンス番号(REPSEQ)の変更時に、リセットされることを特徴とする請求項10に記載の方法。
【請求項12】
組織機関が、投票に要求されるパラメータの生成を進め、投票を暗号解読し検証するために用いられる鍵を投票検査人に割り当てる、選挙を準備する段階(50)と、
各投票者に署名権を割り当てる段階と、
前記投票者が投票に署名する投票段階(60)と、
前記投票検査人が前記投票を検証し、暗号解読された有効な前記投票の内容に基づいて、前記投票の結果を計算する集計段階(70)と
を有する電子投票方法であって、
投票に署名するために、請求項10又は11に記載のリスト署名方法を適用し、
各投票者がリストのメンバーとして登録されており、
シーケンス番号(REPSEQ)は前記投票のために生成され、
許可された署名の前記最大数が1である
ことを特徴とする電子投票方法。
【請求項13】
請求項1乃至12のいずれか1項に記載の方法を適用する手段を有することを特徴とする電子式ハードウェアサポート。
【請求項14】
暗号マイクロプロセッサカード(7)であることを特徴とする請求項13に記載の電子式ハードウェアサポート。

【図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


【公表番号】特表2007−538443(P2007−538443A)
【公表日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2007−517338(P2007−517338)
【出願日】平成17年5月18日(2005.5.18)
【国際出願番号】PCT/FR2005/001248
【国際公開番号】WO2005/122466
【国際公開日】平成17年12月22日(2005.12.22)
【出願人】(591044452)フランス テレコム (9)
【氏名又は名称原語表記】FRANCE  TELECOM
【Fターム(参考)】