(57)【要約】【課題】複数の送信者から受信者に送られるメッセージの匿名通信を行うためのシステムを提供すること。【解決手段】送信者から送られるメッセージは、複数のトラスティの鍵を組み合わせることによって得られた送信者鍵を用いて暗号化される。トラスティは、各列ｊがｋ＋１−ｊ（ｋは、列１のトラスティの数）個のトラスティを有するｋ−１個の列に編成され、トラスティの合計数は（ｋ−１）（ｋ＋２）／２人に等しくなる。列ｊ−１中の同じ行の対応するトラスティに特有な鍵を送るとともに列ｊ−１中の行ｋ＋２−１のトラスティに特有の鍵を送る行ｋ＋１−ｊのトラスティを除き、列ｊの各トラスティは、列ｊ−１中の同じ行の対応するトラスティに特有な鍵を送り、それによって、送信者は、列１のｋ個の各トラスティから鍵を受け取り、送信者の鍵が第１列のトラスティから受け取ったすべての鍵の組合せであるようにする。【選択図】図５
2005242356.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの匿名通信を行うためのシステムであって、
送信者と受信者の間に配置される複数のトラスティを含み、
前記トラスティは、各列ｊがｋ＋１−ｊ個（ｋは、列１のトラスティの数）のトラスティを有するｋ−１個の列を編成する、（ｋ−１）（ｋ＋２）／２個の中間トラスティを含み、
列ｊ−１中の同じ行の対応するトラスティと列ｊ−１中の行ｋ＋２−ｊのトラスティの双方に特有の鍵を送る行ｋ＋１−ｊのトラスティを除き、列ｊの各トラスティは、列ｊ−１中の同じ行の対応するトラスティに特有の鍵を送り、
列１の各トラスティから前記送信者に送られたすべての鍵を組合わせて得られた送信者鍵を用いてメッセージが暗号化されることを特徴とするシステム。
【請求項２】
列ｊのトラスティから列ｊ−１のトラスティに送られた前記特有の鍵が、列ｊ＋１のトラスティから受け取った鍵と、ランダムに生成された鍵の組合せであり、前記特有の鍵が送られる際、インデックスも送られ、当該特有の鍵およびその対応するインデックスが各トラスティのデータベースに記憶される、請求項１に記載のシステム。
【請求項３】
前記送信者が前記送信者鍵を用いて暗号化されたメッセージを前記列１の第１のトラスティに送ることに応じて、当該第１のトラスティが当該メッセージを、当該第１のトラスティによって記憶されていた特有の鍵を用いて復号化すること、
前記第１のトラスティによって復号化されたメッセージが同じ列の第２のトラスティに送られることに応じて、当該第２のトラスティが当該メッセージを、当該第２のトラスティによって記憶されていた特有の鍵を用いて復号化し、当該２回復号化されたメッセージが後続の同じ列のトラスティに送られることに応じて、当該トラスティは自分の特有の鍵を用いて当該メッセージを復号化し、同様の処理が列１の最後のトラスティまで繰り返されること、ならびに
前記列１の最後のトラスティが、自分の特有の鍵を用いて復号化したメッセージを最後の列以外の列の最後のトラスティに送り、同様の処理が同じ列の最初のトラスティまで続けられ、当該トラスティは自分の鍵を用いて復号化したメッセージを次の列のトラスティに送り、以下同様にして復号化されたメッセージが自分の特有の鍵を用いてそれを復号化する前記受信者に送られること
を特徴とする、請求項２に記載のシステム。
【請求項４】
送信者の識別が、列１のトラスティによって復号化されたメッセージと共に、同じ列の隣のトラスティに送られる、請求項３に記載のシステム。
【請求項５】
特有の鍵と関連付けられたインデックスが、前記最後の列を除く各列の各トラスティによって復号化されたメッセージと共に、同じまたは隣の列のトラスティに送られる、請求項４に記載のシステム。
【請求項６】
前記特有の鍵の組合せが、桁ごとに加算するモジュロ１０演算である、請求項１ないし５のいずれかに記載のシステム。
【請求項７】
メッセージを各トラスティが自分の特有の鍵を用いて復号化することは、前記メッセージから前記特有の鍵を桁ごとに減算するモジュロ１０演算である、請求項６に記載のシステム。
【請求項８】
前記システムが選挙に使用されるシステムであり、前記送信者が、投票を前記受信者にメッセージとして送る投票者である、請求項１ないし７のいずれかに記載のシステム。
【請求項９】
前記受信者から特有の鍵を受け取り、前記受信者から受け取った前記特有の鍵と自分自身の鍵を組み合わせた鍵を前記投票者に提供する２個のトラスティがあり、前記投票者の投票が前記２個のトラスティから受け取った前記特有の鍵の組合せを用いて暗号化される、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、何人かの送信者が受信者にメッセージを送信し、そのメッセージが秘密であり匿名であるデータ伝送システムに関し、詳細には、秘密鍵暗号方式を用いてメッセージの匿名通信を行うためのシステムに関する。
【背景技術】
【０００２】
現在提案されている秘密通信システムは、秘密鍵（対称鍵とも呼ばれる）暗号か公開鍵（非対称とも呼ばれる）暗号化のいずれかによって、あるいはより高い頻度でこの２つの組合せによってセキュリティ保護される。一方の公開鍵暗号方式によると、公開鍵を配布し公開も可能であるが、復号（および署名）の可能性は秘密鍵の所有者だけに限定される。他方の秘密鍵通信は、計算上はるかに効率的である。また、ワンタイム・パッドと呼ばれる特定のタイプの秘密鍵暗号方式は、鍵が秘密のままである限り、（暗号方式の観点から）無条件に安全である。
【０００３】
上記の２方式を用いればメッセージの秘匿性が確保される。しかし、選挙システムまたは匿名の決済システムのようないくつかの状態では、通信内容だけではなく各参加者の識別もセキュリティ保護されなければならない。例えば、メッセージの受信者は、（送信者以外に）そのメッセージを復号化できる唯一の人間であるが、その受信者に誰がメッセージを送ったのかを知ることができないようにすべきである。
【０００４】
一般的な問題は、送信者についての情報をメッセージの内容それ自体から分離するのが困難なことであり、そのように分離することによって、メッセージが受信者に対して匿名になると同時に、中間の人間に対しても秘密になる。
【０００５】
従来の対称暗号化の場合では、鍵は他方の参加者にも安全に配布され、両方の参加者が同じ鍵の複製を保有する。送信者はその鍵を用いてメッセージを暗号化し、暗号化されたメッセージを受信者に送る。次いで、受信者はその鍵を用いてメッセージを復号化する。この方式における大きな問題は、受信者がメッセージの送信者は誰なのかを知っていることである。したがって、メッセージが投票である場合、受信者は投票者とその投票をリンクさせる十分な情報を有しているため、その投票は受信者にとって秘密にはならない。
【０００６】
したがって、中間的なエージェントを有することが必要である。公開鍵暗号方式に基づくこのようなシステムは、デビッド・チャウム（David Chaum）の論文、「追跡不能の電子メール、戻りアドレス、およびデジタル偽名（Untraceableelectronic Mail, Return Addresses and Digital Pseudonyms）」、コミュニケーションズ・オブＡＣＭ（Comm ACM）  ２４巻、Ｎｏ．２、１９８１年２月、８４〜８８頁に述べられており、そこで著者は、受信者を異なるエージェントに分割することを提案している。例えば、２つのエージェントの場合、送信者は一連の公開鍵を用いて暗号化した自分の暗号化メッセージをエージェント１に送信し、エージェント１が自分の秘密鍵だけでそれを復号化し、送信者の識別を伝えずに（図０．３に示すように）その結果をエージェント２に送る。
【０００７】
同じ方針を多くのエージェントに拡張することが可能である。中間のエージェントはメッセージを復号化することができず、単に公開鍵を送信者に渡すことができるだけであるため、そのシステムは、すべてのエージェントが共謀しない限り匿名性を達成する。しかし、このシステムはまた、公開鍵暗号化の典型的な限界を有する。すなわち、
・無条件に安全であるプロトコルに欠ける（これは、選挙用としては問題である）
・計算上の要求が厳しい
・したがって自分の投票を証明できるので投票の買収を防ぐことができない
・人間だけでそのシステムを実施できない、言い換えると、すべての環境において電子装置の使用が必要になる。
【０００８】
逆に、秘密鍵が使用された場合、受信者には送信者の識別は分らないが中間エージェントが復号できないメッセージをその受信者が復号できるように送信者鍵を与える問題がやはり残る。したがって、エージェントが２つである場合、第１のエージェントが第２のエージェントに鍵を与え、次いで第２のエージェントが自分自身の鍵を追加して、その鍵をユーザに送る。次いで、ユーザは自分の投票を２回暗号化する。すなわち、第１のエージェントの鍵を用いて１回行い、その結果を第２のエージェントの鍵を用いて再暗号化し、最後にその２回暗号化したメッセージを第２のエージェントに送る。次に、第２のエージェントは両方の鍵を送っているので、その２つの鍵を用いてその結果を復号化し、したがって、コンテンツと送信者の間をリンクさせることができる。暗号方式以外で秘匿性が確保できる場合以外は、秘密鍵暗号化および投票にとってこれは大きな問題である。
【０００９】
上記の問題を回避するために、両方のエージェントがそれぞれの鍵をユーザに別々に送ることもできる。送信者は、自分のメッセージを両方の鍵で暗号化し、その暗号化されたメッセージをまず第１のエージェントに送り、次いで第１のエージェントは自分の鍵で復号化し、次いでその部分的に復号化されたメッセージを第２のエージェントに送り、次いで第２のエージェントはメッセージを復号化し読み取る。残念ながら、プライバシー問題はまだ解決されておらず、（自分で復号化した）メッセージおよび（前に自分の鍵を送った）送信者の両方を知っている第２のエージェントに問題が移動しただけである。
【非特許文献１】デビッド・チャウム（David Chaum）、「追跡不能の電子メール、戻りアドレス、およびデジタル偽名（Untraceableelectronic Mail, Return Addresses and Digital Pseudonyms）」、コミュニケーションズ・オブＡＣＭ（Comm ACM）２４巻、Ｎｏ．２、１９８１年２月、８４〜８８頁
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の主な目的は、何人かの送信者から受信者へ送るメッセージの匿名通信を行うことを可能にするシステムを提供することである。本発明の他の目的は、投票を受信する受信者に対して、複数のトラスティ（鍵を管理するシステム）により各投票者の匿名性が保たれる、選挙に適合するシステムを提供することである。
【課題を解決するための手段】
【００１１】
したがって、本発明は、複数の送信者から受信者へ送るメッセージの匿名通信を行うためのシステムに関し、送信者から送られるメッセージが、送信者と受信者の間に配置される複数のトラスティ（中間トラスティ）の鍵を組み合わせることによって得られる送信者鍵で暗号化される。ここで、トラスティとは、暗号処理を実施できる限り、通常のコンピュータ・システムを用いて良い。中間トラスティは、各列ｊがｋ+１−ｊ個（ｋは、列１のトラスティの数）のトラスティを有するｋ−１個の列に編成され、その結果、合計のトラスティ数は（ｋ−１）（ｋ+２）／２個となる。列ｊ−１中の同じ行の対応するトラスティに特有の鍵を送ると共に列ｊ−１中の行ｋ+２−ｊのトラスティに特有の鍵を送る行ｋ+１−ｊのトラスティを除いて、列ｊの各トラスティは、列ｊ−１中の同じ行の対応するトラスティに特有の鍵を送り、それによって、送信者は、列１のｋ個のトラスティの中の各トラスティから１つの鍵を受け取り、その送信者鍵が、第１列のトラスティから受け取ったすべての鍵の組合せとなるようにする。ここで、行および列は、物理的な意味に必ずしも用いられているのではなく、論理的な意味に解しても良い。
【００１２】
本発明の上記および他の目的、特徴および利点は、添付の図面を、以下のより詳細な本発明の説明と併せて読めばよりよく理解されよう。
【発明を実施するための最良の形態】
【００１３】
本発明の原理は、トラスティおよび最終受信者をトラスティの行および列に編成することである。メッセージは、他の行またはトラスティからの鍵でまだ暗号化されたままであり、したがって、どのトラスティもメッセージ中の平文にアクセスすることができず、そのため匿名の要件が満たされるようになる。
【００１４】
以下の説明では、記号「°」は、式の第２の部分を構成する鍵による、式の第１の部分の対称暗号化を示す。好ましい実施形態では、鍵による暗号化は桁ごとに単純に加算するモジュロ１０演算であり、それは可換性の利点を有する。この場合、復号化は単純に減算するモジュロ１０演算である。しかし、本発明は、可換性のあるすべての暗号化、例えばバーナム（Vernam）暗号におけるＸＯＲ機能にも同様な方式で適用される。（ＤＥＳおよびＡＥＳのように）可換性のない対称暗号化も使用することができるが、ユーザはすべての対称鍵を正しい順番で使用して自分のメッセージを暗号化する必要がある。
【００１５】
３個のトラスティを有するシステム
図１に示すように、メッセージの受信者であるエージェント３は、エージェント１およびエージェント２それぞれに各鍵に対応するインデックスと共に、別々に鍵を配布する。次いで、エージェント１およびエージェント２は、ランダムに生成した自分自身の鍵を、エージェント３から受け取ったものと組み合わせ（これは、桁ごとに加算するモジュロ１０演算とすることができる）、次いで市民（ユーザ）にその結果を別々に送る。エージェントは、エージェント３から受け取ったインデックスと共に自分の鍵をデータベースに保有する。
【００１６】
この場合、そのフローは、
・エージェント３→エージェント１：  鍵３ａ、インデックス鍵３ａ
・エージェント３→エージェント２：  鍵３ｂ、インデックス鍵３ｂ
・エージェント１→市民：  鍵Ａ＝鍵３ａ°鍵１
・エージェント２→市民：  鍵Ｂ＝鍵３ｂ°鍵２
【００１７】
市民は、ちょうど２つの鍵を受け取っていることに留意されたい。その市民が、各鍵が実際は異なるエージェントから送られた鍵の組合せであることに気付く必要もない。
【００１８】
市民は、自分のメッセージ（本実施形態では「投票」とする）を両方の鍵で暗号化する。
暗号化された投票＝投票°鍵Ａ°鍵Ｂ＝投票°鍵３ａ°鍵１°鍵３ｂ°鍵２
（式１．ａ）
【００１９】
復号化のフローを図２に示す。まず、市民は、自分の暗号化された投票（式１．ａ参照）をエージェント１に送る。エージェント１は、そのメッセージに自分の鍵、鍵１だけを適用（＝減算）し、鍵３ａのインデックスを添付し、その結果をその市民の識別と共にエージェント２に送る。エージェント２は、そのメッセージに自分の鍵２だけを適用し、鍵３ｂのインデックスを添付し、市民の識別を削除し、その結果をエージェント３に送る。エージェント３は、メッセージ中のインデックスを用いて鍵、すなわち鍵３ａと鍵３ｂを参照し、次いで最終のメッセージを復号化する。
【００２０】
より正式には、
・市民→エージェント１：  投票°鍵３ａ°鍵１°鍵３ｂ°鍵２、および市民の識別も含む
・エージェント１→エージェント２：  投票°鍵３ａ°鍵３ｂ°鍵２、および市民の識別とインデックス鍵３ａも含む
・エージェント２→エージェント３：  投票°鍵３ａ°鍵３ｂ、およびインデックス鍵３ａとインデックス鍵３ｂ、市民の識別はなし
【００２１】
投票が秘匿されたままでいるための条件は、その３つのエージェントのうちの２つさえ自分のデータを適切に保護すればよいということである。３つ目のエージェントは自分のデータすべてを公開することもできる。その極端な場合であっても、その他のエージェントによってなお外部に対する機密性を保護することができる。
【００２２】
エージェントは、そのセキュリティ・インフラストラクチャによってのみ選ばれるのではなく、共謀することがないという評判によっても選ぶべきである。公に保証する方法としては、すべてのトラスティを十分な数の監査者がいる１箇所に配置し、使用したハードウェアを封印（シール）し、またはデータを適切なときに消去することである。
【００２３】
６個のトラスティを有するシステム
図３では、６つのエージェントを有するモデルの一実施例においてどのように鍵が配布されるかが示してある。それは、最初のエージェントが３行および３列で構成されているマトリックスを示しているが、ｋ−ｊ+１がｉより小さいインデックス（ｉ、ｊ）のすべてのエージェントは削除されている。この削除は有効性のために必要である。例えば、位置（ｋ、ｋ−１）のエージェントはメッセージの最終受信者（位置（１、ｋ）の「エージェント」）と直接共謀することもできる。こうすると、位置（１、ｋ）より下のすべてのエージェントがほとんど無用なものになってしまう。
【００２４】
図３の説明は、前記の３個による実施形態に類似する。その手順は、以下の通りである。
【００２５】
・エージェントｆ→エージェントｄ：  鍵＿ｆｄ、インデックス鍵＿ｆｄ
・エージェントｆ→エージェントｅ：  鍵＿ｆｅ、インデックス鍵＿ｆｅ
・エージェントｄ→エージェントａ：  鍵＿ｆｄ°鍵＿ｄａ、インデックス鍵＿ｄａ
・エージェントｅ→エージェントｂ：  鍵＿ｆｅ°鍵＿ｅｂ、インデックス鍵＿ｅｂ
・エージェントｅ→エージェントｃ：  鍵＿ｆｅ°鍵＿ｅｃ、インデックス鍵＿ｅｃ
・エージェントａ→市民：  鍵Ａ＝鍵＿ｆｄ°鍵＿ｄａ°鍵＿ａ
・エージェントｂ→市民：  鍵Ｂ＝鍵＿ｆｅ°鍵＿ｅｂ°鍵＿ｂ
・エージェントｃ→市民：  鍵Ｃ＝鍵＿ｆｅ°鍵＿ｅｃ°鍵＿ｃ
【００２６】
ただし、
鍵＿ｘｙ：  エージェントｘからエージェントｙに送る（または送った）鍵、
インデックス鍵＿ｘｙ：  鍵＿ｘｙと共にエージェントｙに送られた、ｘのデータベース中の鍵＿ｘｙのインデックス
【００２７】
市民は、エージェントｂを介して１回、もう１回はエージェントｃを介して、鍵＿ｆｅを２回受け取っていることに留意されたい。そのため、復号化段階では、後で複製される鍵を受け取った各エージェントは冗長な鍵を除去すべきであり、その列の次のエージェントにはその鍵で１回だけ暗号化されているメッセージを送ることが要求される。
【００２８】
図４は、６個のトラスティを含む実施例で市民からのメッセージがどのようにして復号化されるかを示す。この説明は、３個のトラスティを含む第１の実施形態に基づいて説明したものと類似している。手順は以下の通りである。
【００２９】
・市民→エージェントａ：  投票°鍵Ａ°鍵Ｂ°鍵Ｃ°、および市民の識別も含む
・エージェントａ→エージェントｂ：  投票°鍵＿ｆｄ°鍵＿ｄａ°鍵Ｂ°鍵Ｃ、インデックス鍵＿ｄａ、および市民の識別も含む
・エージェントｂ→エージェントｃ：  投票°鍵＿ｆｄ°鍵＿ｄａ°鍵＿ｆｅ°鍵＿ｅｂ°鍵Ｃ、インデックス鍵＿ｄａ、インデックス鍵＿ｅｂおよび市民の識別も含む
・エージェントｃ→エージェントｅ：  投票°鍵＿ｆｄ°鍵＿ｄａ°鍵＿ｆｅ°鍵＿ｅｂ°鍵＿ｆｅ°鍵＿ｅｃ、インデックス鍵＿ｄａ、インデックス鍵＿ｅｂ、インデックス鍵＿ｅｃ（市民の識別を含まない）
・エージェントｅ→エージェントｄ：  投票°鍵＿ｆｄ°鍵＿ｄａ°鍵＿ｆｅ、インデックス鍵＿ｄａ、インデックス鍵＿ｆｅ（警告：エージェントｅは、鍵＿ｆｅを用いて１回復号化することが必要である。実際に、エージェントｅに渡されたメッセージは、同じ鍵、鍵＿ｆｅで２度暗号化されている。そのエージェントがそれを変更しないままでいた場合は、それにより、投票についてエージェントｄが何かを知り得たかもしれない。最も明白な実施例は、暗号化として加算モジュロ２（ＸＯＲ）演算が使用された場合である。その場合、「鍵＿ｆｅ°鍵＿ｆｅ」は常にゼロになる。したがって、エージェントｄは単に「投票°鍵＿ｆｄ」を受け取ることになり、そのエージェントは鍵＿ｆｄを知っているので、エージェントｆに届く前に投票を復号化することができるはずである）。
・エージェントｄ→エージェントｆ：  投票°鍵＿ｆｄ°鍵＿ｆｅ、インデックス鍵＿ｆｅ、インデックス鍵＿ｆｄ
エージェントｆは上式中のすべての鍵を参照することができ、したがって、メッセージを復号化し投票を取得することができる。
【００３０】
複数のトラスティを有するシステム
図５では、６個を超えるトラスティまたはエージェントを有する一般的なシステムを示す。ただし、エージェントｉ、ｊは、１≦ｉ、ｊ≦ｋである行ｉと列ｊ上のエージェントである。
【００３１】
ｊ＝ｋである各エージェントｉ、ｊは（図５の３角形マトリクスでは、最も右の列中にだけこのようなエージェント、すなわちエージェント１、ｋがいる）、ランダムに鍵を生成し、その隣のエージェントｉ、ｋ−１にそれを渡す。その最右列の最も下のエージェント（すでに述べたように、それはエージェント１、ｋである）は、ランダムに別の鍵を生成し、３角形マトリクス中ではエージェント２、ｋ−１であるエージェントｉ+１、ｋ−１を介してそれを送る。鍵はそのインデックスと共に送達される。さらに、受信者に加えて（ｋ−１）（ｋ+２）／２個の中間トラスティがいることに留意されたい。
【００３２】
１およびｋとは異なるｊを有する各エージェントｉ、ｊは、
１）その隣のエージェントｉ、ｊ+１から鍵（ｉ、ｊ+１）およびインデックス（ｉ、ｊ+１）を受け取り、受け取ったインデックス（ｉ、ｊ+１）を記憶する。
２）ランダムに新しい鍵、すなわち鍵＊（ｉ、ｊ）を生成する。
３）インデックス（ｉ、ｊ）を鍵＊（ｉ、ｊ）に付し（attribute）、そのインデックスを記憶する。
４）鍵＊（ｉ、ｊ）を鍵（ｉ、ｊ+１）に加算し、その結果の  鍵（ｉ、ｊ）＝鍵（ｉ、ｊ+１）°鍵＊（ｉ、ｊ）  をその鍵のインデックス（ｉ、ｊ）と共にエージェントｉ、ｊ−１に渡す。
【００３３】
３角形のマトリクスでは、最も下のエージェントがランダムに別の鍵を生成し、上記のステップ２〜４で説明したように、エージェントｉ+１、ｊ−１を介してそれを送る。
ｊ＝１である各エージェントｉ、ｊは、
・上記のステップ１〜３を実施する。
・インデックス（ｉ、ｊ）、すなわちインデックス（ｉ、２）を市民の識別にマップし、あるいは最終的に市民にマップされるシリアル番号にマップする。
・鍵（ｉ、２）に鍵＊（ｉ、１）を加算し、その結果の  鍵（ｉ、ｊ）＝鍵＊（ｉ、１）°鍵（ｉ、２）  を安全で認証された方式でユーザに渡す。
【００３４】
図６は、同じ複数のエージェントを有するシステムでどのようにメッセージを復号化するかを示す。最も左の列（そのカスタマーであるユーザに直接その特有の鍵を送達したエンティティ）、言い換えるとｊ＝１である各エージェントｉ、ｊは、
・市民の識別を使用して鍵＊（ｉ、ｊ）を参照する。
・鍵＊（ｉ、１）のみを用いて暗号化されたメッセージを復号化する。
・市民の識別を使用して、配布段階で鍵をこのエージェントに渡した列２のエージェントのインデックス（たいていの場合、これはインデックス（ｉ、２）である）を参照する。
・参照したインデックスをメッセージに添付する。
・その結果のメッセージをその列の次のエージェントに渡し、あるいは列の最後に達している場合は市民の識別を削除しその結果のメッセージを第２列中のエージェントに渡す。
【００３５】
ｊがｋおよび１とは異なる各エージェントｉ、ｊは、
・メッセージからインデックス（ｉ、ｊ）を抽出して鍵＊（ｉ、ｊ）を参照する。
・鍵＊（ｉ、ｊ）のみを用いて暗号化されたメッセージを復号化する。
・そのエージェントが列ｊ−１の２つのエージェントに特有の鍵を送った場合にのみ、受信した第２のインデックス（ｉ、ｊ）を用いて上記の２つのステップを繰り返す。
・インデックス（ｉ、ｊ）を用いて、鍵配布段階で鍵をこのエージェントに渡した次の列ｊ+１のエージェントのインデックス（たいていの場合、これはインデックス（ｉ、ｊ+１）である）を参照する。
・参照した（列ｊ+１のエージェント用の）インデックスをメッセージに添付する。
・メッセージからインデックス（ｉ、ｊ）を削除する。
・そのエージェントが列ｊ−１の２つのエージェントに特有の鍵を送った場合にのみ、前に説明したように、同じ鍵で２回暗号化されたメッセージを送るのを回避するために、列ｊ+１から受け取った鍵を用いて１回だけメッセージを復号化する。
・その結果のメッセージをその列の次のエージェントに渡す、あるいは列の最後に達していた場合、次の列ｊ+１のエージェントにその結果のメッセージを渡す。
【００３６】
ｊ＝ｋである各エージェントｉ、ｊ（図６の３角形マトリックスでは、このようなエージェントが１つ、すなわちエージェント１、ｋだけがいる）は、
・メッセージからインデックス（ｉ、ｋ）を抽出して、鍵＊（ｉ、ｋ）を参照する。
・鍵＊（ｉ、ｋ）を用いて暗号化されたメッセージを復号化する。
・エージェントが列ｋ−１の２つのエージェントに特有の鍵を送った場合（それは、まさに３角形マトリクスにおける場合であるが）、他のインデックス（ｉ＋１、ｋ）も用いて上記の２ステップを繰り返し、平文のメッセージまたは投票を取得する。
【００３７】
信用の成立要件
信頼できるためには、本発明によるシステムは、誰かが平文メッセージとその送信者の間をリンクさせることができるのを回避する必要がある。以下では、エージェントによるどのような共謀がシステムを破綻（break）させ、どのような共謀がシステムを破綻させるには不十分であるかを示す。共謀を説明するためにこの章で用いられるシステムは、６個のトラスティまたはエージェントによるシステムであるが、その原理は任意の数のエージェントによるシステムに拡張できることは明らかである。以下の図では、灰色のボックス中のエージェント同士で共謀がある。
【００３８】
図７では、最も左の列のエージェント間で共謀がある。この最左列のエージェントはユーザに送られた鍵を知っており、したがって、彼らは共にメッセージを復号化することができ、ユーザにリンクさせることができる。
【００３９】
図８では、最も左の列で１つを除くすべてのエージェント（エージェントｂとｃ）同士で共謀がある。このような場合はまだ、彼らはメッセージを復号化するために必要な最後の鍵を欠いている。
【００４０】
図９では、最も左の列の１つを除くすべてのエージェントと、位置１、２のエージェント（エージェントｄ）の間で共謀がある。最左列では、すべてのエージェントが自分の受け取った鍵を知っている。位置１、２のエージェントは、位置１、１のエージェントに送る必要のあるものを知っている。彼らは協力して以下のようにメッセージを復号化することができる。
【００４１】
・エージェントｂが、鍵＿ｆｅ°鍵＿ｅｂを取り込む。
・エージェントｃが、鍵＿ｆｅ°鍵＿ｅｃを取り込む。
・エージェントｄが、鍵＿ｆｄ°鍵＿ｄａを取り込む。
・エージェントｃがエージェントｅに以下の情報を送る。
・投票°鍵＿ｆｅ°鍵＿ｅｂ°鍵＿ｆｅ°鍵＿ｅｃ°鍵＿ｆｄ°鍵＿ｄａ、したがって、彼らは、自分たちが取り込んでおいたものを用いて復号化し、投票を得ることができる。その上、エージェントｂとエージェントｃはどちらも市民の名前を知っており、したがって、投票と市民の間をリンクさせることもできる。
【００４２】
図１０では、最も左のエンティティのうちの１つを除くすべてのエンティティと、位置（ｍ、２）のエンティティの間に共謀がある。ただし（ｍ、１）は、信頼できない最も左のエンティティのうちの１つの位置とする。この場合はまだ、自分の秘密を何も開示していないエンティティが全部を占めている行がある。したがって、メッセージはいつでも、鍵＿ｆｄ°鍵＿ｄａまたは鍵＿ｄａで（信頼できない者に関して）暗号化されたままになる。
【００４３】
図１１では、完全であった行が危殆化（compromise）している。したがって、ユーザとそのメッセージの間のリンクは、インデックスを介して簡単に行うことができる。
【００４４】
図１２では、最左列を除くすべてのエージェントが危殆化している。しかし、その誰もユーザの識別を知らないので、メッセージとユーザの間をリンクさせることはできない。
【００４５】
上記によると、本システムの利点は、対称鍵を使用できる可能性を有すると共に、前述した特有のかつ十分大きな組合せでなければ、無条件に（ある種の組合せの）エンティティを信用する必要がなく、一方ではユーザと接触しユーザを知っている者と、他方では最終メッセージを復号化できる者にエンティティを分割することができる可能性にあることは明らかである。こうすることによって、システムは、（単なるバッチとは対照的に）メッセージの「実時間」での匿名性にも適することができる。
【００４６】
総選挙のための実施形態
図１３に示す、総選挙で本発明によるシステムを使用するための概要は、３つのステップを含む。
・上記のマトリクスによる鍵の配布
・投票者による投票の暗号化および送信
・上記のマトリクスによる投票の復号化
【００４７】
鍵の秘密性を保証するための１つの要件は、鍵がランダムに生成されることである。秘密性を高めるために、いくつかのシリーズの鍵を生成し、暗号的にまたは物理的にあるいはその両方でシールすることもできる。その場合、何人かの監査者が加わって最終的にそのシリーズの中のどの１つを送信するかランダムに選択することもできる。その場合、そのシリーズは秘密に保つべきであるが、他のシリーズは検証のためにオープン／公開することになる。
【００４８】
鍵の送信は、シールされた文書と同様に盗み見することができないチャネルを介して行うことも、あるいはＪａｖａ（登録商標）Ｃａｒｄを含めたスマートカード上にロードすることもできる。
【００４９】
周知のように、シールされた文書は、秘密鍵がまだ公にされていないことをユーザが検証できるように適切なコーティング（coating）を含むこともできる。自分の投票であることを投票者が証明できないようにするために、正しい鍵が１つだけに含まれている、１山のとじていないシート上でいくつかの鍵をその人に送ることもできる。どのシートに正しい鍵が含まれているかは、別のシート上で示すことができる。これはすべて１つまたは複数のシールされた封筒に入れて送ることができる。シートはいつでも順序を変えることができるので、強制者（coercer）がシールされた封筒を開けた時点からずっと物理的に存在することでもない限り、誰も自分の投票を証明することができなくなる（これは１つの利点である）。
【００５０】
投票者は、ワンタイム・パッドまたは他の対称暗号化技法を介して投票を暗号化することができる。次いで、投票者は、認証と共に自分の暗号化した投票を第１のトラスティに送る。暗号化された投票は、投票者がその投票が正しく到着したことを検証できるように公開することができることに留意されたい。
【００５１】
復号化は、十分な人数の監査者によって集中的に監視される１箇所に集められたトラスティを介してメッセージを流すことにより実施することができる。あるいは、３個のトラスティを例に取ると、エージェント１とエージェント２は投票所とし、エージェント３は集計所とする。エージェントの間を通って流れる情報は、秘密であり完全なままでなければならない。それを確保するための手段は、何といっても物理的にシールされたＣＤ−ＲＯＭと同様のシールされたデ−タ・キャリアを使用することである。ハードウェアが監視されないままである場合は、誰かがデータを修正または読み取ることを防ぐためにハードウェアもシールすることができる。
【００５２】
以下の実施例では、３つのエージェントまたはトラスティ、すなわち集計所（エージェント１）、国際機関（エージェント２）、地方自治体（エージェント３）と、投票者によって暗号化された投票を制御する公開掲示板（public board）とがある。
【００５３】
ステップ１
集計所はランダムかつ秘密に鍵３ａと、５人の投票者の場合に用いることができるインデックス３ａとを生成する。
【００５４】
【表１】
2005242356.tif 000003
【００５５】
集計所は修正できないデータ・キャリアにこのテーブルを記憶しかつシールし、複製を国際機関に送る。修正できないデータ・キャリアには、シール形式の紙への印刷物、またはＣＤ−ＲＯＭに記憶しその後それをシールするものも含めることができる。
【００５６】
ステップ２
国際機関は、自分の鍵２およびインデックス２をランダムにかつ秘密に生成する。
【００５７】
【表２】
2005242356.tif 000004
【００５８】
国際機関は、修正できないデータ・キャリアにこのテーブルを記憶しかつシールする。
【００５９】
ステップ３
次いで、以下のように、国際機関は自分の鍵のミックスを集計所から受け取った（ミックス済のまたはミックスされていない）テーブルと組み合わせる。
国際機関のミックスされたテーブル  +  集計所のテーブル（やはりここでミックスされる）＝
【００６０】
【表３】
2005242356.tif 000005
【００６１】
この最後のテーブルには、最終的に以下の実施例で示すように最終ユーザの識別を先頭につけるようにする。
【００６２】
【表４】
2005242356.tif 000006
【００６３】
多くの実施形態では、自分の鍵を解放したユーザに対処するために、インデックス２はシリアル番号の役割を果たすことになる。この実施形態では、生成された鍵の数は、ユーザの数より多くなる。各ユーザは１つのシリアル番号に関連付けられる。ユーザが自分の鍵を解放してしまった場合、ユーザは他のシリアル番号と関連付けられることになる。
【００６４】
次に鍵はユーザに送られる。これを行うために、例えば鍵はシールされ認証された封筒中に印刷されて送られ、あるいは、例えば鍵をその上に含むスマートカードを発行することができる。
【００６５】
・Ｊａｎｓｓｅｎｓ夫人は、国際機関から「鍵：０」を得る。
・Ｐｅｅｔｅｒｓ氏は、国際機関から「鍵：２」を得る。
・Ｇｒｏｓｊｅａｎ氏は、国際機関から「鍵：６」を得る。
・Ｐｅｔｉｔｂｏｉｓ夫人は、国際機関から「鍵：３」を得る。
・Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人は、国際機関から「鍵：０」を得る。
【００６６】
このステップで上記のデータから、鍵２＋３ａの列を削除することもできる。その他のデータは、シールされ修正のできないデータ・キャリアに記憶すべきである。
【００６７】
ステップ４
集計所は、鍵３ｂとインデックス３ｂをランダムにかつ秘密に生成する。
【００６８】
【表５】
2005242356.tif 000007
【００６９】
集計所は、このテーブルを安全に記憶し、複製を地方自治体に送る。
【００７０】
ステップ５
地方自治体は、自分の鍵１とインデックス１をランダムにかつ秘密に生成する。
【００７１】
【表６】
2005242356.tif 000008
【００７２】
ステップ６
次いで、以下のように、地方自治体は自分の鍵のミックスを集計所から受け取った（ミックス済のあるいはミックスされていない）テーブルと組み合わせる。
地方自治体のテーブル  +  集計所のテーブル＝
【００７３】
【表７】
2005242356.tif 000009
【００７４】
この最後のテーブルには、最終的に以下の実施例で示すように最終ユーザの識別を先頭につけるようにする。
【００７５】
【表８】
2005242356.tif 000010
【００７６】
この場合も、ステップ３に基づいて前に説明したように、インデックス１のインデックスはシリアル番号として使用することができる。
【００７７】
次に、ステップ２に基づいて前に説明したように、特有の鍵をユーザに送る。
【００７８】
・Ｊａｎｓｓｅｎｓ夫人は、地方自治体から「鍵：６」を得る。
・Ｐｅｅｔｅｒｓ氏は、地方自治体から「鍵：２」を得る。
・Ｇｒｏｓｊｅａｎ氏は、地方自治体から「鍵：９」を得る。
・Ｐｅｔｉｔｂｏｉｓ夫人は、地方自治体から「鍵：９」を得る。
・Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人は、地方自治体から「鍵：１」を得る。
【００７９】
このステップで、上記のデータから、鍵１＋３ａの列を削除することもできる。そのほかのデータは、シールされ修正のできないデータ・キャリアに記憶すべきである。
【００８０】
ステップ７
ユーザは、ステップ３およびステップ６の最後で述べたように鍵を得る。例えば、Ｊａｎｓｓｅｎｓ夫人は国際機関から「鍵＝０」を受け取り、地方自治体からは「鍵＝６」を受け取る。
【００８１】
ステップ８
ユーザは、自分の暗号化される投票を遠隔で計算する。
４人の候補者がいるものとする。
【００８２】
１．Ｊａｎ  Ｊａｎｎｓｅｎ
２．Ｐｅｔｅｒ  Ｐｅｒｓｅｎ
３．Ｂｅｒｎａｒｄ  Ｂｅｒｎａｒｄｓｅｎ
４．Ｊｕｌｉｅ  Ｊｕｎｅｓｃｏ
【００８３】
Ｊａｎｓｓｅｎｓ夫人、Ｐｅｅｔｅｒｓ氏、およびＧｒｏｓｊｅａｎ氏は、２番目の候補者、Ｐｅｔｅｒ  Ｐｅｒｓｅｎに投票したい。その他の２人の投票者は、４番目の候補者、Ｊｕｌｉｅ  Ｊｕｎｅｓｃｏに投票したい。
【００８４】
ＰＣを使用する場合、Ｊａｎｓｓｅｎｓ夫人は、（ｊａｖａ（登録商標）ｓｃｒｉｐｔを含む）ウェブ・ページにログオンし、２番目の候補者を選択し、受け取っている２つの鍵とここでの認証情報とを入力する。ｊａｖａ（登録商標）ｓｃｒｉｐｔは、（候補者用の）２プラス（国際機関から得た鍵である）０プラス（地方自治体から得た鍵である）６モジュロ１０をローカルに計算し、８が得られる。８は、Ｊａｎｓｓｅｎｓ夫人の暗号化された投票であり、夫人はそれを公開電子掲示板（public bulletin board）ウェブ・サイトにサブミットする。
【００８５】
Ｐｅｅｔｅｒｓ氏は、ＰＣへのアクセスを有していないので、手作業で自分の投票を計算する。
２+２+２ｍｏｄ１０＝６
Ｐｅｅｔｅｒｓ氏は、簡単な電話（音声応答の）アプリケーションにアクセスし、（ワンタイム・パスワードまたは声紋あるいはその両方を用いて）認証し、自分の暗号化された投票６を送信する。
【００８６】
Ｇｒｏｓｊｅａｎ氏もＰＣへのアクセスを有していない。彼も自分の投票を手作業で計算する。
２+６+９ｍｏｄ１０＝７
Ｇｒｏｓｊｅａｎ氏は、自分のユーザＩＤおよびワンタイム・パスワードを、続いて暗号化済み投票７を含むＳＭＳを送る。
【００８７】
Ｐｅｔｉｔｂｏｉｓ夫人は、Ｊａｎｓｓｅｎｓ夫人と同様にＰＣを使用して投票し、認証後、
４（候補者番号）+３+９ｍｏｄ１０＝６
をサブミットする。
【００８８】
Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人もＰＣを使用して投票し、認証後、
４（候補者番号）+０+１ｍｏｄ１０＝５
をサブミットする。
【００８９】
音声応答システム、ウェブ・サイト、およびＳＭＳゲートウェイはすべて同じ公開電子掲示板を更新する。
【００９０】
ステップ９と１０
公開電子掲示板は、以下の投票を収集する。
【００９１】
【表９】
2005242356.tif 000011
【００９２】
市民は、暗号化された投票が、ウェブ・サイト、音声サーバ、ＳＭＳによる要求など、様々な方式中で正しくリストされていることを検証することができる。本明細書では、それを検証するための認証は本質的なものではない。
【００９３】
ステップ１１
地方自治体の場所で、鍵１が参照される。
【００９４】
Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人に対しては、インデックス１＝５  →  鍵１＝７。
５（暗号化された投票）−７（鍵）ｍｏｄ１０＝８。  ８が部分的に復号化された投票である。
【００９５】
地方自治体はまた、Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人に対して、インデックス３ｂ＝１であることを参照する。
したがって、Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人に対して以下のデータを記憶する。
Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人、８、インデックス３ｂ＝１
【００９６】
同様に、そのほかの投票者の以下のデータを記憶する。
・Ｐｅｔｉｔｂｏｉｓ夫人、８、インデックス３ｂ＝２
・Ｇｒｏｓｊｅａｎ氏、６、インデックス３ｂ＝５
・Ｊａｎｓｓｅｎｓ夫人、４、インデックス３ｂ＝４
・Ｐｅｅｔｅｒｓ氏、２、インデックス３ｂ＝３
【００９７】
結果：  地方自治体は、国際機関に以下のデータを秘密に送る。
【００９８】
【表１０】
2005242356.tif 000012
【００９９】
地方自治体は、投票の意図については何も知らないことに留意されたい。投票が部分的に復号化されていても地方自治体には解読できないままである。実際、この部分的に復号化されたメッセージを暗号化している鍵のうちの１つは鍵３ａであるが、地方自治体は決してそれにアクセスすることができない。
【０１００】
ステップ１２
国際機関の場所で鍵２が参照される。
【０１０１】
Ｖａｎ  Ｐｅｔｅｇｈｅｍ夫人に対しては、インデックス２＝４  →  鍵２＝０。
８（地方自治体からの部分的に暗号化された投票）−０ｍｏｄ１０＝８。  ８は、国際機関によって復号化された後の部分的に復号化された投票である。国際機関はまた、その記憶されたテーブルを調べ、インデックス３ａ＝２であることを見つける。
結果：国際機関は、次のメッセージをＶａｎ  Ｐｅｔｅｇｈｅｍ夫人のために集計所に送る。
８、インデックス３ｂ＝１、インデックス３ａ＝２
夫人の名前を伝えることなく、またメッセージの順序をミックスして送るので、行番号を見ることにより投票者の識別を推定することはできない。
【０１０２】
行をミックスする方式はまた、後の監査のために修正できないデータ・キャリアに記憶されシールされる。
【０１０３】
ここで、国際機関に対するこのようなミックスの一実施例を示す。
【０１０４】
【表１１】
2005242356.tif 000013
【０１０５】
このミックスの後、国際機関は以下のメッセージを集計所に送る。
【０１０６】
【表１２】
2005242356.tif 000014
【０１０７】
国際機関は、投票の意図についてはやはり何も知らないことに留意されたい。投票が部分的に復号化されていても国際機関には解読できないままである。国際機関は、現在インデックス３ｂを知っているが、鍵３ｂそれ自体を知らない。
【０１０８】
ステップ１３
上記のメッセージは、名前が添付されずに集計所に到着する。
【０１０９】
第１のメッセージに対して、集計所は、インデックス３ｂ＝５の鍵を参照し、８を得る。次いで、インデックス３ａ＝１の鍵を参照し、３を得る。
３−８−３ｍｏｄ１０＝２
同様に、その他のメッセージは、以下のように生成する。
３−１−８ｍｏｄ１０＝４
３−２−９ｍｏｄ１０＝２
８−４−０ｍｏｄ１０＝４
７−８−７ｍｏｄ１０＝２
【０１１０】
したがって、誰が何に投票したか知られることなく投票の意図は復号化される。
【０１１１】
上記の最終結果を公開する前に、再度、行がランダムにミックスされる。
例えばミキシング（mixing）が以下の通りであった場合、
【０１１２】
【表１３】
2005242356.tif 000015
【０１１３】
上記ミキシング・テーブルは秘密に記憶され、最終的にリリースされ復号化された投票は、次のようになる。
【０１１４】
【表１４】
2005242356.tif 000016
【０１１５】
一般に、鍵、インデックス、および各部分的な復号化ステップ、ならびに各ミキシングに関するデータは、修正のできないシールされたデータ支持体に書き込まれ、後で監査ができるようにする。
【０１１６】
ステップ１４
上記の結果は集計され、以下の結果を生成する。
１．Ｊａｎ  Ｊａｎｎｓｅｎ：０票
２．Ｐｅｔｅｒ  Ｐｅｒｓｅｎ：３票
３．Ｂｅｒｎａｒｄ  Ｂｅｒｎａｒｄｓｅｎ：０票
４．Ｊｕｌｉｅ  Ｊｕｎｅｓｃｏ：２票
【０１１７】
監査は、以下のいずれかをランダムに選択することによって行うことができる。
すなわち、国際機関のデータにも集計所のデータにもアクセスできない監査者に、
・地方自治体で記憶されている鍵の鍵１およびインデックスと、
・国際機関に送られたメッセージと
を明らかにする、または
【０１１８】
地方自治体のデータにも集計所のデータにもアクセスできない監査者に、
・地方自治体から受け取ったメッセージと、
・国際機関に記憶されている鍵の鍵２およびインデックスと、
・国際機関のミキシング・テーブルと、
・集計所に送られたメッセージと
を明らかにする、または
【０１１９】
地方自治体のデータにも国際機関のデータにもアクセスできない監査者に、
・国際機関から受け取ったメッセージと、
・集計所に記憶されている鍵３ａ、３ｂおよびインデックスと、
・公開され復号化された投票の最終リストと比較するための集計所のミキシング・テーブルと
を明らかにする。
【図面の簡単な説明】
【０１２０】
【図１】３個のトラスティを含む本発明によるシステムにおける鍵の配布を示す図である。
【図２】３個のトラスティを含む本発明によるシステムにおけるメッセージの復号化を示す図である。
【図３】６個のトラスティを含む本発明によるシステムにおける鍵の配布を示す図である。
【図４】６個のトラスティを含む本発明によるシステムにおけるメッセージの復号化を示す図である。
【図５】本発明の原理に従ってマトリクス中に配置したｋ(ｋ＋１)／２個のトラスティを含む本発明によるシステムにおける鍵の配布を示す図である。
【図６】本発明の原理に従ってマトリクス中に配置したｋ(ｋ＋１)／２個のトラスティを含むシステムにおけるメッセージの復号化を示す図である。
【図７】６個のトラスティを含み、いくつかのトラスティ間で共謀があり弊害のある場合のシステムを示す図である。
【図８】６個のトラスティを含み、いくつかのトラスティ間で共謀があるが弊害のない場合のシステムを示す図である。
【図９】６個のトラスティを含み、いくつかのトラスティ間で共謀があり弊害のある場合のシステムを示す図である。
【図１０】６個のトラスティを含み、いくつかのトラスティ間で共謀があるが弊害のない場合のシステムを示す図である。
【図１１】６個のトラスティを含み、いくつかのトラスティ間で共謀があり弊害のある場合を示す図である。
【図１２】６個のトラスティを含み、いくつかのトラスティ間で共謀があるが弊害のない場合のシステムを示す図である。
【図１３】総選挙に用いられる、本発明による３個のトラスティを含むシステム中で使用される一連のステップを示す図である。
【図１】
2005242356.tif 000017
【図２】
2005242356.tif 000018
【図３】
2005242356.tif 000019
【図４】
2005242356.tif 000020
【図５】
2005242356.tif 000021
【図６】
2005242356.tif 000022
【図７】
2005242356.tif 000023
【図８】
2005242356.tif 000024
【図９】
2005242356.tif 000025
【図１０】
2005242356.tif 000026
【図１１】
2005242356.tif 000027
【図１２】
2005242356.tif 000028
【図１３】
2005242356.tif 000029