(57)【要約】  ビットコインブロックチェーン上で秘密(k0,k1)を通信する方法が開示される。当該方法は、受信者により選択可能な複数の秘密を識別する情報を送信するステップと、受信者によるアクセスのために選択される第1の秘密(Si)に対応する、楕円曲線暗号システムの第1の公開鍵(Ui)を受信するステップとを含み、第1の秘密鍵(m)は、受信者にアクセス可能である。受信者によるアクセスのために選択されていない第2の秘密に対応する第2の公開鍵(U1-i)が受信され、対応する第2の秘密鍵は、受信者に利用可能でない。それぞれの第1及び第2の公開鍵(X0,X1)によって暗号化された第1及び第2の秘密は受信者に送信され、第1の秘密は、第1の秘密鍵によって受信者にアクセス可能であり、第2の秘密は、受信者にアクセス不可能であり、送信者は、第1の秘密と第2の秘密とを区別できない。
2021523620.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも1つの秘密を送信者から受信者に通信する方法であって、
前記受信者により選択可能な複数の秘密を識別する情報を前記送信者から前記受信者に送信するステップと、
前記送信者において、前記受信者から、前記受信者によるアクセスのために選択されるそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を受信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、前記受信者にアクセス可能である、ステップと、
前記送信者において、前記受信者から、前記受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を受信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、前記受信者に利用可能でない、ステップと、
対応する前記第1の公開鍵によって暗号化された少なくとも1つの前記第1の秘密を前記送信者から前記受信者に送信するステップと、
対応する前記第2の公開鍵によって暗号化された少なくとも1つの第2の秘密を前記送信者から前記受信者に送信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない、方法。
【請求項２】
対応する前記第1の公開鍵によって少なくとも1つの前記第1の秘密を暗号化し、対応する前記第2の公開鍵によって少なくとも1つの前記第2の秘密を暗号化するステップを更に含む、請求項１に記載の方法。
【請求項３】
少なくとも1つの前記第1の秘密及び少なくとも1つの前記第2の秘密は、それぞれの排他的論理和暗号によって暗号化される、請求項２に記載の方法。
【請求項４】
少なくとも1つの前記排他的論理和暗号は、対応する前記第1又は第2の公開鍵に基づくそれぞれの暗号化鍵を有する、請求項３に記載の方法。
【請求項５】
少なくとも1つの前記暗号化鍵は、スカラー楕円曲線点の乗算によって、前記送信者に既知の、それぞれの第1又は第2の暗号整数により乗算された対応する前記第1又は第2の公開鍵を含む、請求項４に記載の方法。
【請求項６】
対応する前記第1又は第2の公開鍵によって暗号化された少なくとも1つの前記第1及び/又は第2の暗号整数を前記送信者から前記受信者に送信するステップを更に含む、請求項５に記載の方法。
【請求項７】
少なくとも1つの前記第1の秘密は、楕円曲線点の追加によってそれぞれの第1の暗号項に追加される、前記楕円曲線暗号システムの楕円曲線生成点の、前記送信者に既知のそれぞれの第1のマスキング整数により、スカラー乗算の結果を含むそれぞれの第1のマスキング項を含むそれぞれの第3の公開鍵によって暗号化される、請求項１乃至６のうちいずれか１項に記載の方法。
【請求項８】
少なくとも1つの前記第1の暗号項は、対応する前記第1の公開鍵に依存したそれぞれの第3の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、請求項７に記載の方法。
【請求項９】
少なくとも1つの前記第3の暗号整数は、対応する前記第1の公開鍵のハッシュ値である、請求項８に記載の方法。
【請求項１０】
少なくとも1つの前記第2の秘密は、楕円曲線点の追加によってそれぞれの第2の暗号項に追加される、前記楕円曲線暗号システムの前記楕円曲線生成点の、前記送信者に既知のそれぞれの第2のマスキング整数により、スカラー乗算の結果を含むそれぞれの第2のマスキング項を含むそれぞれの第4の公開鍵によって暗号化される、請求項７乃至９のうちいずれか１項に記載の方法。
【請求項１１】
少なくとも1つの前記第2の暗号項は、対応する前記第2の公開鍵に依存したそれぞれの第4の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、請求項１０に記載の方法。
【請求項１２】
少なくとも1つの前記第4の暗号整数は、対応する前記第2の公開鍵のハッシュ値である、請求項１１に記載の方法。
【請求項１３】
少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び/又は第1の公開鍵から決定できる、請求項１乃至１２のうちいずれか１項に記載の方法。
【請求項１４】
前記送信者と前記受信者との間で共有されるべき少なくとも1つの第3の秘密を生成するステップを更に含む、請求項１乃至１３のうちいずれか１項に記載の方法。
【請求項１５】
少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び第1の公開鍵と、少なくとも1つの前記第3の秘密とに基づく、請求項１３及び１４に記載の方法。
【請求項１６】
前記送信者において、前記受信者から受信した対応する前記第2及び/又は第1の公開鍵で、前記受信者から受信した少なくとも1つの前記第1及び/又は第2の公開鍵の整合性を検査するステップを更に含む、請求項１乃至１５のうちいずれか１項に記載の方法。
【請求項１７】
前記第2の秘密鍵による少なくとも1つの前記第1の公開鍵のスカラー乗算の結果は、それぞれの前記第1の秘密鍵によるそれぞれの前記第2の公開鍵のスカラー乗算の結果と等しい、請求項１乃至１６のうちいずれか１項に記載の方法。
【請求項１８】
少なくとも1つの前記第1の秘密鍵及び少なくとも1つの前記第2の秘密鍵は、前記送信者に既知の前記楕円曲線暗号システムの秘密鍵から決定論的に導出される、請求項１乃至１７のうちいずれか１項に記載の方法。
【請求項１９】
送信者から受信者に送信された少なくとも1つの秘密を受信する方法であって、
前記受信者において、前記受信者により選択可能な複数の秘密を識別する情報を受信するステップと、
前記受信者によるアクセスのために選択されたそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を前記受信者から前記送信者に送信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、前記受信者にアクセス可能である、ステップと、
前記受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を前記受信者から前記送信者に送信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、前記受信者に利用可能でない、ステップと、
前記受信者において、前記送信者から、対応する前記第1の公開鍵によって暗号化された少なくとも1つの第1の秘密を受信するステップと、
前記受信者において、前記送信者から、対応する前記第2の公開鍵によって暗号化された少なくとも1つの第2の秘密を受信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない、方法。
【請求項２０】
少なくとも1つの前記第1の秘密及び少なくとも1つの前記第2の秘密は、それぞれの排他的論理和暗号によって暗号化される、請求項１９に記載の方法。
【請求項２１】
少なくとも1つの前記排他的論理和暗号は、対応する前記第1又は第2の公開鍵に基づくそれぞれの暗号化鍵を有する、請求項２０に記載の方法。
【請求項２２】
少なくとも1つの前記暗号化鍵は、スカラー楕円曲線点の乗算によって、前記送信者に既知の、それぞれの第1又は第2の暗号整数により乗算された対応する前記第1又は第2の公開鍵を含む、請求項２１に記載の方法。
【請求項２３】
前記受信者において、前記送信者から、対応する前記第1又は第2の公開鍵によって暗号化された少なくとも1つの前記第1及び/又は第2の暗号整数を受信するステップを更に含む、請求項２２に記載の方法。
【請求項２４】
少なくとも1つの前記第1の秘密は、楕円曲線点の追加によってそれぞれの第1の暗号項に追加される、前記楕円曲線暗号システムの楕円曲線生成点の、前記送信者に既知のそれぞれの第1のマスキング整数により、スカラー乗算の結果を含むそれぞれの第1のマスキング項を含むそれぞれの第3の公開鍵によって暗号化される、請求項１９乃至２３のうちいずれか１項に記載の方法。
【請求項２５】
少なくとも1つの前記第1の暗号項は、対応する前記第1の公開鍵に依存したそれぞれの第3の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、請求項２４に記載の方法。
【請求項２６】
少なくとも1つの前記第3の暗号整数は、対応する前記第1の公開鍵のハッシュ値である、請求項２５に記載の方法。
【請求項２７】
少なくとも1つの前記第2の秘密は、楕円曲線点の追加によってそれぞれの第2の暗号項に追加される、前記楕円曲線暗号システムの前記楕円曲線生成点の、前記送信者に既知のそれぞれの第2の整数により、スカラー乗算の結果を含むそれぞれの第2のマスキング項を含むそれぞれの第4の公開鍵によって暗号化される、請求項２４乃至２６のうちいずれか１項に記載の方法。
【請求項２８】
少なくとも1つの前記第2の暗号項は、対応する前記第2の公開鍵に依存したそれぞれの第4の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、請求項２７に記載の方法。
【請求項２９】
少なくとも1つの前記第4の暗号整数は、対応する前記第2の公開鍵のハッシュ値である、請求項２８に記載の方法。
【請求項３０】
少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び/又は第1の公開鍵から決定できる、請求項１９乃至２９のうちいずれか１項に記載の方法。
【請求項３１】
前記送信者と前記受信者との間で共有されるべき少なくとも1つの第3の秘密を生成するステップを更に含む、請求項１９乃至３０のうちいずれか１項に記載の方法。
【請求項３２】
少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び第1の公開鍵と、少なくとも1つの前記第3の秘密とに基づく、請求項３０及び３１に記載の方法。
【請求項３３】
前記第2の秘密鍵による少なくとも1つの前記第1の公開鍵のスカラー乗算の結果は、それぞれの前記第1の秘密鍵によるそれぞれの第2の公開鍵のスカラー乗算の結果と等しい、請求項１９乃至３２のうちいずれか１項に記載の方法。
【請求項３４】
請求項１乃至３３のうちいずれか１項に記載の方法を実行するように構成されたコンピュータ実施システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ実施システム及び方法に関し、より詳細には、デジタル資産を転送するコンピュータ実施システム及び方法に関する。本開示は、ブロックチェーンに基づくデータ転送システムに特に適しているが、これに限定されない。
【背景技術】
【０００２】
この文献では、全ての形式の電子的なコンピュータに基づく分散型の台帳を含む「ブロックチェーン(blockchain)」という用語を使用する。これらは、コンセンサスに基づくブロックチェーン及びトランザクションチェーン技術、プライベート型(permissioned)及びパブリック型(un-permissioned)台帳、共有台帳及びこれらの変形を含む。ブロックチェーン技術の最も広く知られているアプリケーションはビットコイン台帳であるが、他のブロックチェーンの実装も提案されて開発されている。ここでは、便宜上及び説明上の目的でビットコインが参照されることがあるが、本開示は、ビットコインブロックチェーンでの使用に限定されず、代替のブロックチェーンの実装及びプロトコルも、本開示の範囲内に入る点に留意すべきである。「ユーザ」という用語は、ここでは人間又はプロセッサに基づくリソースを示すことがある。
【０００３】
ブロックチェーンは、ピアツーピアの電子台帳であり、これは、結果としてトランザクションで構成される、ブロックで構成されるコンピュータに基づく非集中的な分散型システムとして実装される。各トランザクションは、ブロックチェーンシステム内の参加者の間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは、前のブロックのハッシュを含み、それにより、ブロックチェーンの開始以降にブロックチェーンに書き込まれた全てのトランザクションの永続的で修正不可能なレコードを作成するように、ブロックが一緒につながれる。トランザクションは、トランザクションのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さいプログラムを含み、これは、トランザクションのアウトプットがどのように誰によってアクセスできるかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を使用して記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるために、これは「承認され(validated)」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを確保するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、ロック及びロック解除スクリプトを実行することにより、未使用トランザクション(unspent  transaction,  UTXO)に対してこの承認作業を実行する。ロック及びロック解除スクリプトの実行がTRUEに評価された場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるために、これは、i)トランザクションを受信した最初のノードにより承認されなければならず、トランザクションが承認された場合、ノードはそれをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新たなブロックに追加されなければならず、且つ、iii)マイニングされなければならず、すなわち、過去のトランザクションの公開台帳に追加されなければならない。
【０００５】
ブロックチェーン技術は、暗号通貨の実装の使用にとって最も広く知られているが、デジタル起業家は、新たなシステムを実装するために、ビットコインが基礎となる暗号セキュリティシステムと、ブロックチェーンに記憶できるデータとの双方の使用を調査し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動化タスク及びプロセスに使用され得る場合には、非常に有利になる。このような解決策は、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止記録、分散処理等)を利用することができる一方で、これらの用途においてより多目的になることができる。
【０００６】
関係者の間でのデータの交換の場合、データファイルの受信者は、選択肢から1つ又は限られた数のファイルにのみにアクセスできる一方で、どのファイルがアクセスされたかをデータの送信者が認識できないようにすることがしばしば望ましい。この構成は、紛失通信(Oblivious  Transfer)として知られており、図１〜図３を参照して以下に説明する。
【０００７】
図１を参照すると、紛失通信は、リソース(ファイル、データベースレコード又はいずれかの他のデジタル資産)のアクセスを制御し、向上したプライバシーでそのリソースを転送する方法である。紛失通信の基本的な問題は、送信者が受信者に送信された多くのファイルのうち、受信者がどれを開くかを習得すべきでないメカニズムを定義することである。Aliceは送信者であり、Bobは受信者であり、mはメッセージであり、bはメッセージのインデックスである。Aliceは多数のメッセージを送信し、Bobはどれかのメッセージを受信して復号することを望むかを選択する。Aliceは、Bobがどれを選択するかを認識しない。
【０００８】
基本的なメカニズムは、図２を参照してディフィー・ヘルマン(Diffie-Hellman,  DH)鍵交換[10]を考慮することにより定義できる。図２に示すように、コア・ディフィー・ヘルマン(Core  Diffie  Hellman,  CDH)鍵交換では、どの鍵が交換されているか、したがって、ディフィー・ヘルマンプロトコルの結果としてどのメッセージが解読されるかが明らかであることが分かる。Cは暗号化されたメッセージであり、Eは秘密鍵Kの引数をとる暗号化関数であり、Dは暗号化されたメッセージC及び秘密鍵Kの引数をとる解読関数である。どのメッセージが解読されているかという第三者による認識は、特定の状況では低減したデータのセキュリティをもたらし、これは、許可されていない者がデータにアクセスすることをもたらす可能性がある。
【０００９】
次に図３を参照して、紛失通信に適応するためのDHメカニズムの変形について説明する。受信者は複数の鍵を送信者に返信するが、1つの鍵のみが本物であり、他のものが「ダミー」又は冗長であることが分かる。図３に示す構成と図２に示す標準的なコア・ディフィー・ヘルマン(core  Diffie  Hellman,  CDH)プロトコルとの間の主な違いは、BobからAliceに戻される鍵がビット'b'の値に依存するということである。この計算はBobにより行われる。次いで、AliceはBobから受信した鍵に基づいて2つの鍵を構築する。Aliceはこれらの2つの鍵をBobに返信する。Bobは、Aliceから受信した鍵と、AliceがBobに渡した前の値からBobが計算した鍵とを使用して、Aliceから受信したメッセージを解読できる。図２の構成の場合と同様に、Eは暗号化アルゴリズムであり、Dは解読アルゴリズムである。Bobはメッセージペアの一方のみを解読でき、他方の組み合わせは「ダミー」であり、動作しない。
【００１０】
ディフィー・ヘルマンメカニズムの変形を使用して、AliceはBobが解読するメッセージを「紛失している(oblivious)」ままであることが分かる。この例では、Bobが解読できる2つの可能なメッセージのうちの1つのみが存在する。
【００１１】
したがって、ブロックチェーンに適用可能な紛失通信メカニズムを提供することにより、データセキュリティを改善することが望ましい。
【００１２】
現在、このような改善された解決策が考案されている。
【発明の概要】
【００１３】
したがって、本開示によれば、添付の特許請求の範囲に定義される方法及びシステムが提供される。
【００１４】
少なくとも1つの秘密を送信者から受信者に通信する方法が提供されてもよく、当該方法は、
受信者により選択可能な複数の秘密を識別する情報を送信者から受信者に送信するステップと、
送信者において、受信者から、受信者によるアクセスのために選択されるそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を受信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、受信者にアクセス可能である、ステップと、
送信者において、受信者から、受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を受信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、受信者に利用可能でない、ステップと、
対応する前記第1の公開鍵によって暗号化された少なくとも1つの前記第1の秘密を送信者から受信者に送信するステップと、
対応する前記第2の公開鍵によって暗号化された少なくとも1つの前記第2の秘密を送信者から受信者に送信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない。
【００１５】
送信者から受信者に送信された少なくとも1つの秘密を受信する方法が提供されてもよく、当該方法は、
受信者において、受信者により選択可能な複数の秘密を識別する情報を受信するステップと、
受信者によるアクセスのために選択されたそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を受信者から送信者に送信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、受信者にアクセス可能である、ステップと、
受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を受信者から送信者に送信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、受信者に利用可能でない、ステップと、
受信者において、送信者から、対応する前記第1の公開鍵によって暗号化された少なくとも1つの前記第1の秘密を受信するステップと、
受信者において、送信者から、対応する前記第2の公開鍵によって暗号化された少なくとも1つの前記第2の秘密を受信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない。
【００１６】
システムが提供されてもよく、当該システムは、
プロセッサと、
プロセッサによる実行の結果として、システムにここに記載のコンピュータ実施方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと
を含む。
【００１７】
コンピュータシステムのプロセッサによって実行された結果として、コンピュータシステムにここに記載のコンピュータ実施方法の実施形態を少なくとも実行させる実行可能命令を記憶した非一時的なコンピュータ読み取り可能記憶媒体が提供されてもよい。
【図面の簡単な説明】
【００１８】
本開示に従った様々な実施形態について、図面を参照して説明する。
【図１】送信者と受信者との間のメッセージ転送を示す。
【図２】ディフィー・ヘルマン鍵交換の動作を示す。
【図３】紛失通信の動作の原理を示す。
【図４】紛失通信プロセスを示す。
【図５】紛失通信プロセスを示す。
【図６】様々な実施形態が実装できる計算環境を示す概略図である。
【発明を実施するための形態】
【００１９】
図４を参照すると、ビットコインブロックチェーン上で送信者Bobから受信者Aliceへの紛失通信プロセスを実行する方法が示されている。Bobは、n個の鍵{k1,k2,...,kn}を作成することにより始める。これらは、国際特許出願WO2017/145016に開示された方法によって、楕円曲線デジタル署名アルゴリズム(elliptic  curve  digital  signature  algorithm,  ECDSA)マスター鍵k0のサブ鍵として決定論的に作成される。これらのn個の鍵は、n個の異なる値を暗号化する際に使用される。Aliceは、どれが選択されたかをBobに知らせることなく、これらの値のうち1つのみにアクセスすることを要求する。Bobは、Aliceがそれぞれの交換において単一の値と及び1つの鍵のみにアクセスできることを確保することを要求する。
【００２０】
当該プロセスは、Alice及びBobが(ビットコイン等を用いた)楕円曲線暗号(elliptic  curve  cryptography,  ECC)/楕円曲線デジタル署名アルゴリズム(elliptic  curve  digital  signature  algorithm,  ECDSA)システムのための曲線パラメータを設定することにより開始する。
【００２１】
ECDSAメカニズムから、dAQB=dAdBG=dBdAG=dBQAである。
【００２２】
ここで、Aliceは点(xK,yk)=dAQBを計算する。Bobは点(xK,yK)=dBQAを計算する。xKは共有の秘密である。dA及びdBはそれぞれAlice及びBobの秘密鍵である。QA及びQBはそれぞれの公開鍵である。
【００２３】
この基本的なアルゴリズムから、数字のペアを交換するメソッドが作成できる。このロジックは、n個の値のうち1つを選択するためにlog2(n)回繰り返されることができる。これは、交換された一対の鍵のみが有効であることを確保することにより行われる。
【００２４】
この第1のステップは、Aliceが2つの可能な選択肢k0及びk1から1つの値のみを選択することを可能にする。
【００２５】
1.Alice及びBobは、値Cに合意することにより始める。Alice及びBobは、現在のブロック高さ及びそれらのマスター鍵により生成された秘密のハッシュを選択するために、ECDSA交換を使用する。このような交換については、国際特許出願WO2017/145016により詳細に記載されており、C=h(BH|S)又はC=h(BH|S|Blockhash)である。
【００２６】
ここで、h()はハッシュ関数であり、|は連結演算子である。
【００２７】
BHはブロック高さである。
【００２８】
Sは、例えば、国際特許出願WO2017/145016に開示されている方法によって生成された共有の秘密である。
【００２９】
Blockhash=ブロックハッシュである。
【００３０】
いずれかのランダム値が使用できるが、ブロック高さは外部の同意されたランダム性の好適なソースである点に留意すべきである。
【００３１】
2.Aliceは値を選択する。Aliceはこれを自分で保持する。この値(i)はBobがkiにおいて作成した鍵を表す。
【００３２】
3.次いで、Aliceは、国際特許出願WO2017/145016の方法によってAliceのマスター鍵ペアdA/QAからサブ鍵を作成し、ここでQA0を有する。ここで、QAはQA0のマスター鍵である。
【００３３】
Aliceはまず、ECDSA交換を使用してBobにQA0を知らせる。Bobは暗号化する。BobはAliceの選択肢kiを暗号化する。
【００３４】
Bobがi=0又は1のどちらをAliceが選択したかを知らないことを確保するために、Aliceはおとり公開鍵QA1も作成する。
【００３５】
4.Bobはどちらが真の値であるか分からない。
【００３６】
Aliceが選択された値を解読するために秘密鍵dA0を使用することを望む場合、Aliceは公開鍵QA0=(xA0,yA0)に対応するサブ鍵dA0を作成する。
【００３７】
AliceはdA0を認識しており、したがって、QA0を認識している。
【００３８】
Aliceはまた、dA0QA1=dA0dA1G=dA1dA0G=QA0dA1を認識している。
【００３９】
AliceはdA0を認識しているが、dA1を計算できない。
【００４０】
次に、Bobは、C≡xA0=dA0QA1=dA1QA0を要求する。
【００４１】
AliceはdA0を認識しており、QA1を計算できる。QA0はdA0の積であり、Aliceに認識されている。
【００４２】
5.仮にAliceがQA0について暗号化された情報のみを復号できるとしても、Aliceは双方の鍵QA0及びQA1をBobに与える。すなわち、Aliceは、QA0についての秘密鍵dA0を有するが、QA1についての秘密鍵dA1は有さない。
【００４３】
6.BobはAliceに対してkiを暗号化する。この例では、k0はAliceが解読できるものである。すなわち、BobはQA0に対してk0を暗号化してQA1に対してk1を暗号化するので、BobはAliceがk0又はk1を望むか否かを認識しないが、BobはAliceがパケットを解読するために必要な鍵dA0又はdA1のうち1つのみを有することを認識している。
【００４４】
7.Bobは2つのランダムな値r0及びr1を選択する。Bobは2つの鍵Qr0=r0G、Qr1=r1Gを計算し、これらをAliceに送信する。
【００４５】
8.Bobはh(QA0)及びh(QA1)を計算する。
【００４６】
9.Bobは公開鍵QAB0=(h(QA0)+r0)G、QAB1=(h(QA1)+r1)Gを作る。
【００４７】
BobはそれぞれQAB0及びQAB1でk0及びk1を暗号化する。BobはQr0=r0G及びQr1=r1GをAliceに送信する。
【００４８】
10.Aliceはr0又はr1を得るように反対にできない。
【００４９】
11.Aliceは1つの値を決定する必要があるが、1つの値のみを解読できる(ブランク鍵は使用されない)。Alice及びBobの双方は以下のように制限される。Aliceは双方ではなくk0又はk1を解読(受信)することを選択でき、Bobはどちらかを認識せず、Bobは双方をAliceに送信できる。
【００５０】
2つのシステムのうち1つでは、Aliceは2つの秘密を有するが、これらのうち1つを開示することを要求する。同時に、Bobは、2つの秘密のうち、どちらが欲しいかをAliceに知られたくない。Bobは、Aliceの秘密のうちの1つのみに興味があるが、どちらであるかをAliceに知られたくない。Bobは、Bobが何に答えたいのかをAliceが認識しない一方で、1つの回答のみを受け取る。
【００５１】
図５は、非インタラクティブ紛失通信プロトコルの動作を示しており、Aliceは2つの値k0及びk1をBobに送信することにより始める。これらはBobの公開鍵及び秘密鍵の関数として送信され、それにより、Bobは2つの鍵のうち1つのみを抽出できる。
【００５２】
素数として(p)を有する有限場Zp上の楕円曲線が使用される。全ての値は0と(p-1)との間にあり、全ての計算はモジュロpで完了する。
【００５３】
楕円曲線の式の一般的な形式はy2modp=(x3+ax+b)modpである。
【００５４】
楕円曲線の式を満たす(x,y)の点の集合は、Ep(a,b)により与えられる。楕円曲線上の点T=(x1,y1)の次数(order)rは、rT=0であるような最小の正の整数rとして定義され、ここで0は無限大の点である。
【００５５】
点GはEp(a,b)における基準点である。この値は、次数rが非常に大きくなるように選択される。システムのセキュリティは、楕円曲線離散対数問題(elliptic  curve  discrete  logarithm  problem,  ECDLP)に基づいており、解くことは実施できないほど困難である。点QのECDLPを解くことは、Q=kP(又はQ=kG)のような整数kを解くことと等価である。ここで、Q及びPは既知である。
【００５６】
Alice及びBobの双方は、同じ楕円曲線及び基準点Gを使用する。Aliceは2つの値k0及びk1を選択し、2つの点P0=k0G及びP1=k1Gを生成する。
【００５７】
値k0及びk1はBobに認識されるべきでなく、Aliceにより保持される秘密鍵として機能する。
【００５８】
これらの値は、国際特許出願WO2017/145016に記載されている交換プロセスを使用して決定できる。
【００５９】
Aliceがksaのマスター鍵を有する場合、値k0及びk1は、ksa+v0=k0、ksa+v1=k1のようにksaにリンクできる。
【００６０】
ここで、v0及びv1はAliceにより認識されている値である。このプロセスは、紛失通信メッセージ交換の前に完了できる。
【００６１】
プロトコルは以下のように定義される。
【００６２】
図５を参照して、基準点G並びに点P0及びP1で始まる。
【００６３】
P=P0+P1とし、i∈{0,1}とする。
【００６４】
1.Bobは、ランダムな整数mを選択してUi=mGを設定することにより、公開鍵(U0,U1)を作成する。ここで、Uiは、U0又はU1のどちらが、Bobが選択したk0又はk1に対応するかを表す。Bobは公開鍵U0及びU1をAliceに送信する。
【００６５】
次に、Ub=mG-Pi、U1-i=P1-i-Ubとする。
【００６６】
Bobの秘密鍵はmである。mは国際特許出願WO2017/145016に記載されているプロセスを使用して導出できる。
【００６７】
2.Aliceは2つのランダムな整数a0及びa1を選択し、V0=a0G及びV1=a1Gを計算する。
【００６８】
次いで、AliceはW0=a0U0及びW1=a1U1を計算する。
【００６９】
AliceはV0及びV1をBobに送信する。
【００７０】
次いで、Aliceは
【００７１】
【数１】
2021523620.tif 000003
及び
【００７２】
【数２】
2021523620.tif 000004
を計算する。
【００７３】
ここで、
【００７４】
【数３】
2021523620.tif 000005
は暗号化鍵としてのWiのバイナリ表現を有する排他的論理和暗号を用いた秘密の値Siのバイナリ表現の暗号化を表す。
【００７５】
Aliceはまた、X0及びX1をBobに送信する。
【００７６】
3.Bobは値mVi=maiG=Wiを計算する。
【００７７】
これは、Bobが
【００７８】
【数４】
2021523620.tif 000006
としてSiを抽出することを可能にする。
【００７９】
Siは第iの秘密である。
【００８０】
Bobはnを計算できないので、S1-iを抽出できない点に留意すべきであり、ここで、U1-i=nGである。Aliceは、Bobがmの値を決定できるように、U0又はU1のうちどちらの値がmGに等しいかを認識しない。したがって、Aliceは、2つの秘密のうちのどちらをBobが受け取ったかを認識しない。
【００８１】
Aliceは、Bobの公開鍵が以下の方式で正しく形成されていることを検証できる。
【００８２】
1.Ui+U1-i=Pであることを検査する。
【００８３】
2.Ub=Ui-Piを計算する。
【００８４】
これは、U1-i-P1-iの負であるか否かを検証するために使用される。
【００８５】
プロトコルのセキュリティ側面は以下の通りである。
【００８６】
1.Aliceは2つの秘密のうちどちらをBobが受け取ったかを推定できない。
【００８７】
2.プロトコルのセキュリティは、楕円曲線について離散対数問題(discrete  logarithm  problem,  DLP)が成立する場合に成立する。
【００８８】
3.Aliceがプロトコルに従う場合、BobはAliceの秘密のうち1つのみを見つけることができる。
【００８９】
このシステムは、交換に対する公正な管理を可能にする。Bob及びAliceは、何が交換されたかを認識せずに情報を交換できる。これは、データ又は情報の全ての閲覧、データベースへのアクセス、及び他の記録(例えば、医療ファイル)を制御するために使用でき、この情報は、どの関係者がどの情報を見たかという記録と共に、ビット毎に分割されて公表できる。これにより、信頼されるサーバ又は第三者の必要を除去できる。
【００９０】
次に図６を参照すると、本開示の少なくとも1つの実施形態を実施するために使用され得る計算デバイス2600の簡略化したブロック図が例として提供される。様々な実施形態では、計算デバイス2600は、上記に示して説明した実施システムのいずれかを実装するために使用されてもよい。例えば、計算デバイス2600は、データサーバ、ウェブサーバ、ポータブル計算デバイス、パーソナルコンピュータ又はいずれかの電子計算デバイスとして使用するために構成されてもよい。図６に示すように、計算デバイス2600は、1つ以上のレベルのキャッシュメモリを有する1つ以上のプロセッサと、メインメモリ2608及び永続ストレージ2610を含む記憶サブシステム2606と通信するように構成できるメモリコントローラ(併せて2602とラベル付けされる)とを含んでもよい。メインメモリ2608は、図示のように、ダイナミックランダムアクセスメモリ(DRAM)2618及び読み取り専用メモリ(ROM)2620を含んでもよい。記憶サブシステム2606及びキャッシュメモリ2602は、本開示に記載のトランザクション及びブロックに関連する詳細のような情報の記憶のために使用されてもよい。プロセッサ2602は、本開示に記載のいずれかの実施形態のステップ又は機能を提供するために利用されてもよい。
【００９１】
プロセッサ2602はまた、1つ以上のユーザインタフェース入力デバイス2612、1つ以上のユーザインタフェース出力デバイス2614及びネットワークインタフェースサブシステム2616と通信できる。
【００９２】
バスサブシステム2604は、計算デバイス2600の様々な構成要素及びサブシステムが、意図したように相互に通信することを可能にする機構を提供してもよい。バスサブシステム2604は、単一のバスとして概略的に示されているが、バスサブシステムの代替実施形態は、複数のバスを利用してもよい。
【００９３】
ネットワークインタフェースサブシステム2616は、他の計算デバイス及びネットワークへのインタフェースを提供してもよい。ネットワークインタフェースサブシステム2616は、他のシステムからデータを受信し、計算デバイス2600から他のシステムにデータを送信するためのインタフェースとして機能してもよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、データセンタのような遠隔地にいる間に、データをデバイスに送信し、デバイスからデータを受信することができるように、デバイスをネットワークに接続することを可能にしてもよい。
【００９４】
ユーザインタフェース入力デバイス2612は、キーボードのような1つ以上のユーザ入力デバイスと、統合マウス、トラックボール、タッチパッド又はグラフィックスタブレットのようなポインティングデバイスと、スキャナと、バーコードスキャナと、ディスプレイに組み込まれたタッチスクリーンと、音声認識システム、マイクロフォンのようなオーディオ入力デバイスと、他のタイプの入力デバイスとを含んでもよい。一般的に、「入力デバイス」という用語の使用は、情報を計算デバイス2600に入力するための全ての可能な種類のデバイス及び機構を含むことを意図する。
【００９５】
1つ以上のユーザインタフェース出力デバイス2614は、表示サブシステム、プリンタ、又はオーディオ出力デバイス等のような非視覚的ディスプレイを含んでもよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイのようなフラットパネルデバイス、又は投影若しくは他の表示デバイスでもよい。一般的に、「出力デバイス」という用語の使用は、計算デバイス2600から情報を出力するための全ての可能な種類のデバイス及び機構を含むことを意図する。1つ以上のユーザインタフェース出力デバイス2614は、例えば、ユーザ相互作用が適切になり得るときに、ここに記載のプロセス及びその変形を実行するアプリケーションとのユーザ相互作用を実現するように、ユーザインタフェースを提示するために使用されてもよい。
【００９６】
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供し得る基本的なプログラミング及びデータ構成を記憶するためのコンピュータ読み取り可能記憶媒体を提供してもよい。アプリケーション(プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されたとき、本開示の1つ以上の実施形態の機能を提供してもよく、記憶サブシステム2606に記憶されてもよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてもよい。記憶サブシステム2606は、本開示に従って使用されるデータを記憶するためのリポジトリを更に提供してもよい。例えば、メインメモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性ストレージを提供できる。永続ストレージ2610は、プログラム及びデータのための永続的な(不揮発性)ストレージを提供でき、フラッシュメモリと、1つ以上のソリッドステートドライブと、1つ以上の磁気ハードディスクドライブと、関連する取り外し可能媒体を有する1つ以上のフロッピーディスクドライブと、関連する取り外し可能媒体を有する1つ以上の光ドライブ(例えば、CD-ROM又はDVD又はブルーレイ)ドライブと、他の同様の記憶媒体とを含んでもよい。このようなプログラム及びデータは、本開示に記載の1つ以上の実施形態のステップを実行するためのプログラムと、本開示に記載のトランザクション及びブロックに関連するデータとを含むことができる。
【００９７】
計算デバイス2600は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、又は以下に記載のいずれかの他のデバイスを含む、様々な種類のものでもよい。さらに、計算デバイス2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、ライトニングコネクタ等)を通じて計算デバイス2600に接続され得る他のデバイスを含んでもよい。計算デバイス2600に接続され得るデバイスは、光ファイバコネクタを受け入れるように構成された複数のポートを含んでもよい。したがって、このデバイスは、光信号を電気信号に変換するように構成されてもよく、電気信号は、処理のために当該デバイスを計算デバイス2600に接続するポートを通じて送信されてもよい。コンピュータ及びネットワークの絶えず変化する性質のため、図６に示す計算デバイス2600の説明は、デバイスの好ましい実施形態を説明する目的のための特定の例としてのみ意図されている。図６に示すシステムよりも多くの構成要素又は少ない構成要素を有する多くの他の構成が可能である。
【００９８】
［例示的な実施形態の列挙］
本開示の実施形態の例は、以下の項目を考慮して記載できる。
【００９９】
1.少なくとも1つの秘密を送信者から受信者に通信する方法であって、
前記受信者により選択可能な複数の秘密を識別する情報を前記送信者から前記受信者に送信するステップと、
前記送信者において、前記受信者から、前記受信者によるアクセスのために選択されるそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を受信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、前記受信者にアクセス可能である、ステップと、
前記送信者において、前記受信者から、前記受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を受信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、前記受信者に利用可能でない、ステップと、
対応する前記第1の公開鍵によって暗号化された少なくとも1つの前記第1の秘密を前記送信者から前記受信者に送信するステップと、
対応する前記第2の公開鍵によって暗号化された少なくとも1つの前記第2の秘密を前記送信者から前記受信者に送信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない、方法。
【０１００】
これは、どのメッセージに受信者がアクセスしたかを送信者が認識することを妨げつつ、受信者が限られた数のメッセージにアクセスすることのみを可能にすることにより、当該方法のデータのセキュリティを改善する利点を提供する。
【０１０１】
2.対応する前記第1の公開鍵によって少なくとも1つの前記第1の秘密を暗号化し、対応する前記第2の公開鍵によって少なくとも1つの前記第2の秘密を暗号化するステップを更に含む、項目1に記載の方法。
【０１０２】
3.少なくとも1つの前記第1の秘密及び少なくとも1つの前記第2の秘密は、それぞれの排他的論理和暗号によって暗号化される、項目2に記載の方法。
【０１０３】
これは、迅速且つ効率的な暗号化及び解読を可能にする利点を提供する。
【０１０４】
4.少なくとも1つの前記排他的論理和暗号は、対応する前記第1又は第2の公開鍵に基づくそれぞれの暗号化鍵を有する、項目3に記載の方法。
【０１０５】
5.少なくとも1つの前記暗号化鍵は、スカラー楕円曲線点の乗算によって、前記送信者に既知の、それぞれの第1又は第2の暗号整数により乗算された対応する前記第1又は第2の公開鍵を含む、項目4に記載の方法。
【０１０６】
6.対応する前記第1又は第2の公開鍵によって暗号化された少なくとも1つの前記第1及び/又は第2の暗号整数を前記送信者から前記受信者に送信するステップを更に含む、項目5に記載の方法。
【０１０７】
7.少なくとも1つの前記第1の秘密は、楕円曲線点の追加によってそれぞれの第1の暗号項に追加される、前記楕円曲線暗号システムの楕円曲線生成点の、前記送信者に既知のそれぞれの第1のマスキング整数により、スカラー乗算の結果を含むそれぞれの第1のマスキング項を含むそれぞれの第3の公開鍵によって暗号化される、項目1乃至6のうちいずれか１項に記載の方法。
【０１０８】
8.少なくとも1つの前記第1の暗号項は、対応する前記第1の公開鍵に依存したそれぞれの第3の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、項目7に記載の方法。
【０１０９】
9.少なくとも1つの前記第3の暗号整数は、対応する前記第1の公開鍵のハッシュ値である、項目8に記載の方法。
【０１１０】
10.少なくとも1つの前記第2の秘密は、楕円曲線点の追加によってそれぞれの第2の暗号項に追加される、前記楕円曲線暗号システムの前記楕円曲線生成点の、前記送信者に既知のそれぞれの第2のマスキング整数により、スカラー乗算の結果を含むそれぞれの第2のマスキング項を含むそれぞれの第4の公開鍵によって暗号化される、項目7乃至9のうちいずれか１項に記載の方法。
【０１１１】
11.少なくとも1つの前記第2の暗号項は、対応する前記第2の公開鍵に依存したそれぞれの第4の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、項目10に記載の方法。
【０１１２】
12.少なくとも1つの前記第4の暗号整数は、対応する前記第2の公開鍵のハッシュ値である、項目11に記載の方法。
【０１１３】
13.少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び/又は第1の公開鍵から決定できる、項目1乃至12のうちいずれか１項に記載の方法。
【０１１４】
14.前記送信者と前記受信者との間で共有されるべき少なくとも1つの第3の秘密を生成するステップを更に含む、項目1乃至13のうちいずれか１項に記載の方法。
【０１１５】
15.少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び第1の公開鍵と、少なくとも1つの前記第3の秘密とに基づく、項目13及び14に記載の方法。
【０１１６】
16.前記送信者において、前記受信者から受信した対応する前記第2及び/又は第1の公開鍵で、前記受信者から受信した少なくとも1つの前記第1及び/又は第2の公開鍵の整合性を検査するステップを更に含む、項目1乃至15のうちいずれか１項に記載の方法。
【０１１７】
17.前記第2の秘密鍵による少なくとも1つの前記第1の公開鍵のスカラー乗算の結果は、それぞれの前記第1の秘密鍵によるそれぞれの前記第2の公開鍵のスカラー乗算の結果と等しい、項目1乃至16のうちいずれか１項に記載の方法。
【０１１８】
18.少なくとも1つの前記第1の秘密鍵及び少なくとも1つの前記第2の秘密鍵は、前記送信者に既知の前記楕円曲線暗号システムの秘密鍵から決定論的に導出される、項目1乃至17のうちいずれか１項に記載の方法。
【０１１９】
19.送信者から受信者に送信された少なくとも1つの秘密を受信する方法であって、
前記受信者において、前記受信者により選択可能な複数の秘密を識別する情報を受信するステップと、
前記受信者によるアクセスのために選択されたそれぞれの第1の前記秘密に対応する少なくとも1つの第1の公開鍵を前記受信者から前記送信者に送信するステップであり、前記第1の公開鍵又はそれぞれの前記第1の公開鍵は、楕円曲線暗号システムの公開鍵/秘密鍵ペアの一部であり、前記第1の公開鍵に対応する第1の秘密鍵は、前記受信者にアクセス可能である、ステップと、
前記受信者によるアクセスのために選択されていないそれぞれの第2の前記秘密に対応する少なくとも1つの第2の公開鍵を前記受信者から前記送信者に送信するステップであり、前記第2の公開鍵又はそれぞれの前記第2の公開鍵は、前記楕円曲線暗号システムの公開鍵であり、前記第2の公開鍵に対応するそれぞれの第2の秘密鍵は、前記受信者に利用可能でない、ステップと、
前記受信者において、前記送信者から、対応する前記第1の公開鍵によって暗号化された少なくとも1つの前記第1の秘密を受信するステップと、
前記受信者において、前記送信者から、対応する前記第2の公開鍵によって暗号化された少なくとも1つの前記第2の秘密を受信するステップと
を含み、
前記第1の秘密又はそれぞれの前記第1の秘密は、対応する前記第1の秘密鍵によって前記受信者にアクセス可能であり、前記第2の秘密又はそれぞれの前記第2の秘密は、前記受信者にアクセス不可能であり、前記送信者は、前記第1の秘密と前記第2の秘密とを区別できない、方法。
【０１２０】
20.少なくとも1つの前記第1の秘密及び少なくとも1つの前記第2の秘密は、それぞれの排他的論理和暗号によって暗号化される、項目19に記載の方法。
【０１２１】
21.少なくとも1つの前記排他的論理和暗号は、対応する前記第1又は第2の公開鍵に基づくそれぞれの暗号化鍵を有する、項目20に記載の方法。
【０１２２】
22.少なくとも1つの前記暗号化鍵は、スカラー楕円曲線点の乗算によって、前記送信者に既知の、それぞれの第1又は第2の暗号整数により乗算された対応する前記第1又は第2の公開鍵を含む、項目21に記載の方法。
【０１２３】
23.前記受信者において、前記送信者から、対応する前記第1又は第2の公開鍵によって暗号化された少なくとも1つの前記第1及び/又は第2の暗号整数を受信するステップを更に含む、項目22に記載の方法。
【０１２４】
24.少なくとも1つの前記第1の秘密は、楕円曲線点の追加によってそれぞれの第1の暗号項に追加される、前記楕円曲線暗号システムの楕円曲線生成点の、前記送信者に既知のそれぞれの第1のマスキング整数により、スカラー乗算の結果を含むそれぞれの第1のマスキング項を含むそれぞれの第3の公開鍵によって暗号化される、項目19乃至23のうちいずれか１項に記載の方法。
【０１２５】
25.少なくとも1つの前記第1の暗号項は、対応する前記第1の公開鍵に依存したそれぞれの第3の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、項目24に記載の方法。
【０１２６】
26.少なくとも1つの前記第3の暗号整数は、対応する前記第1の公開鍵のハッシュ値である、項目25に記載の方法。
【０１２７】
27.少なくとも1つの前記第2の秘密は、楕円曲線点の追加によってそれぞれの第2の暗号項に追加される、前記楕円曲線暗号システムの前記楕円曲線生成点の、前記送信者に既知のそれぞれの第2の整数により、スカラー乗算の結果を含むそれぞれの第2のマスキング項を含むそれぞれの第4の公開鍵によって暗号化される、項目24乃至26のうちいずれか１項に記載の方法。
【０１２８】
28.少なくとも1つの前記第2の暗号項は、対応する前記第2の公開鍵に依存したそれぞれの第4の暗号整数による前記楕円曲線生成点のスカラー乗算の結果を含む、項目27に記載の方法。
【０１２９】
29.少なくとも1つの前記第4の暗号整数は、対応する前記第2の公開鍵のハッシュ値である、項目28に記載の方法。
【０１３０】
30.少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び/又は第1の公開鍵から決定できる、項目19乃至29のうちいずれか１項に記載の方法。
【０１３１】
31.前記送信者と前記受信者との間で共有されるべき少なくとも1つの第3の秘密を生成するステップを更に含む、項目19乃至30のうちいずれか１項に記載の方法。
【０１３２】
32.少なくとも1つの前記第1及び/又は第2の公開鍵は、対応する前記第2及び第1の公開鍵と、少なくとも1つの前記第3の秘密とに基づく、項目30及び31に記載の方法。
【０１３３】
33.前記第2の秘密鍵による少なくとも1つの前記第1の公開鍵のスカラー乗算の結果は、それぞれの前記第1の秘密鍵によるそれぞれの第2の公開鍵のスカラー乗算の結果と等しい、項目19乃至32のうちいずれか１項に記載の方法。
【０１３４】
項目1乃至33のうちいずれか１項に記載の方法を実行するように構成されたコンピュータ実施システム。
【０１３５】
上記の実施形態は、本発明を限定するものではなく例示するものであり、当業者は、添付の特許請求の範囲により定義される本開示の範囲から逸脱することなく、多くの代替実施形態を設計できる点に留意すべきである。特許請求の範囲において、括弧内に付したいずれかの参照符号は、特許請求の範囲を限定するものと解釈されないものとする。「含む(comprising)」及び「含む(comprises)」等の用語は、全体としていずれかの請求項又は明細書に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む(comprises)」とは、「含む(includes)又はからなる(consists  of)」を意味し、「含む(comprising)」とは、「含む(comprising)又はからなる(consisting  of)」を意味する。要素の単数形の参照は、このような要素の複数形の参照を除外するものではなく、逆も同様である。本発明は、いくつかの別個の要素を含むハードウェアにより、且つ、適切にプログラムされたコンピュータにより実装されてもよい。いくつかの手段を列挙するデバイスの請求項において、これらの手段のいくつかは、1つの同じハードウェアアイテムにより具体化されてもよい。特定の手段が相互に異なる従属項に記載されているという単なる事実は、これらの手段の組み合わせが有利に利用できないことを示すものではない。
【０１３６】
［参考文献］
[1]  “Generalised  Oblivious  Transfer  Protocol”,  Partha  Sarathi  Roy,  Department  of  Pure  mathematics,  University  Cacutta  India
[2]  “Generalised  oblivious  transfer  by  secret  sharing”  Tamir  Tassa
[3]  “Computationally  secure  oblivious  transfer”  Moni  Naor,  Benny  Pinkas
[4]  “The  simplest  protocol  for  oblivious  transfer”  Tung  Chou  and  Claudio  Orlandi
[5]  “Smooth  projective  hashing  and  two  message  oblivious  transfer”  Yuri  Tauman  KAlai  MIT
[6]  “Oblivious  Transfer  with  Access  Control”  Jan  Camenisch,  Maria  Dubovitskaya,  Gregory  Neven
[7]  “Practical  Fully  Simulatable  Oblivious  Transfer  with  Sub-linear  communication”  BingSheng  Zhang,  Helger  Lipmaa,  Cong  Wang,  Kuri  Ren
[8]  Rabin  (1981)  for  papers  on  oblivious  transfer
[9]  Bellare  M.;  Micalli,  S.  [1989]  “Non-Interactive  Oblivious  Transfer  and  Applications”  :  Proc.  On  Adv  in  Cryptography  CRYPTO  89.  PP  547-557.
[10]  Diffie,  W.;  Hellman,  M.  (1976).  "New  directions  in  cryptography"  (PDF).  IEEE  Transactions  on  Information  Theory.  22  (6):  644-654.  doi:10.1109/TIT.1976.1055638.
[11]  Prof  Bill  Buchanan,  www.asecuritysite.com
[12]  Boneh,  Franklin,  “Identity-Based  Encryption  from  the  Weil  Pairing”.  Appears  in  SIAM  J.  of  Computing,  Vol.  32,  No.  3,  pp.  586-615,  2003.  An  extended  abstract  of  this  paper  appears  in  the  Proceedings  of  Crypto  2001,  volume  2139  of  Lecture  Notes  in  Computer  Science,  pages  213-229,  Springer-Verlag,  2001.  “Bilinear  paring”
【図１】
2021523620.tif 000007
【図２】
2021523620.tif 000008
【図３】
2021523620.tif 000009
【図４】
2021523620.tif 000010
【図５】
2021523620.tif 000011
【図６】
2021523620.tif 000012
【国際調査報告】
2021523620.tif 000013
2021523620.tif 000014
2021523620.tif 000015