(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-16
(45)【発行日】2024-04-24
(54)【発明の名称】情報の安全な比較
(51)【国際特許分類】
H04L 9/08 20060101AFI20240417BHJP
G06F 21/64 20130101ALI20240417BHJP
G06F 21/62 20130101ALI20240417BHJP
G06Q 30/08 20120101ALI20240417BHJP
G06Q 50/10 20120101ALI20240417BHJP
【FI】
H04L9/08 C
H04L9/08 F
G06F21/64
G06F21/62 309
G06Q30/08
G06Q50/10
【外国語出願】
(21)【出願番号】P 2022003246
(22)【出願日】2022-01-12
(62)【分割の表示】P 2018521023の分割
【原出願日】2016-10-24
【審査請求日】2022-02-07
(32)【優先日】2015-10-22
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】511024975
【氏名又は名称】オープンアイ サイエンティフィック ソフトウェア, インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100169823
【氏名又は名称】吉澤 雄郎
(72)【発明者】
【氏名】アンソニー ニコルス
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2011-114392(JP,A)
【文献】特表2008-521025(JP,A)
【文献】特開平04-360068(JP,A)
【文献】特開2006-303683(JP,A)
【文献】特開2001-160803(JP,A)
【文献】特開2015-139014(JP,A)
【文献】特開2010-237853(JP,A)
【文献】特表2015-525542(JP,A)
【文献】特開2011-211593(JP,A)
【文献】北原 昂ほか,生体情報を暗号化したままで行われる効率的な認証プロトコル,2012 第29回 暗号と情報セキュリティシンポジウム概要集,日本,電子情報通信学会,2012年01月30日,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/64
G06F 21/62
G06Q 30/08
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
第1の当事者からの第1のデータと第2の当事者からの第2のデータとの類似性のレベルを、前記第1のデータ及び前記第2のデータ自体を公表せずに計算する方法であって、
前記第1の当事者が、前記第1のデータから第1指紋を作成するステップであって、前記第1指紋は、前記第1のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第2の当事者が、前記第2のデータから第2指紋を作成するステップであって、前記第2指紋は、前記第2のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第1の当事者が、第1組のGMキーを、関連する公開キー及び秘密キーと共に生成するステップと、
前記第1の当事者が、前記第1指紋を前記公開キーで暗号化して、第1の暗号化した指紋を作成するステップと、
前記第1の当事者が、前記公開キーを前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第2指紋を前記公開キーで暗号化して、第2の暗号化した指紋を作成するステップと、
前記第1の当事者が、前記第1の暗号化した指紋を前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第1の暗号化した指紋及び前記第2の暗号化した指紋に対してXOR演算を実行し、これにより暗号化した指紋XORを作成するステップと、
前記第2の当事者が、前記暗号化した指紋XORをスクランブルし、これにより、暗号化してスクランブルした指紋XORを作成するステップと、
前記第2の当事者が、前記暗号化してスクランブルした指紋XORを、前記第1の当事者に送信するステップと、
前記第1の当事者が、前記暗号化してスクランブルした指紋XORを、前記秘密キーを用いて暗号解読して、スクランブルされた前記暗号化した指紋XOR中のビット数を数え、これにより、前記第1指紋と前記第2指紋との類似性のレベルを知るステップと
を含む方法。
【請求項2】
第1の当事者からの第1のデータと第2の当事者からの第2のデータとを、前記第1のデータ及び前記第2のデータ自体を公表せずに比較する方法であって、
前記第1の当事者が、前記第1のデータから第1指紋を作成するステップであって、前記第1指紋は、前記第1のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第2の当事者が、前記第2のデータから第2指紋を作成するステップであって、前記第2指紋は、前記第2のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第1の当事者が、第1組のGMキーを、関連する公開キー及び秘密キーと共に生成するステップと、
前記第1の当事者が、前記第1指紋を前記公開キーで暗号化して第1の暗号化した指紋を作成し、該第1の暗号化した指紋を、第1の安全なクラウド・アカウントにアップロードするステップと、
前記第2の当事者が、前記第2指紋を前記公開キーで暗号化して第2の暗号化した指紋を作成し、該第2の暗号化した指紋を、第2の安全なクラウド・アカウントにアップロードするステップと、
次に、前記第1の当事者が、前記第1のクラウド・アカウント上の前記第1の暗号化した指紋に対する読出し特権を、前記第2の当事者に与えるステップと、
前記第2の当事者が、前記第1の暗号化した指紋及び前記第2の暗号化した指紋に対してXOR演算を実行し、これにより、暗号化した指紋XORを前記第2のクラウド・アカウント内に作成するステップと、
前記第2の当事者が、前記暗号化した指紋XORをスクランブルし、これにより、暗号化してスクランブルした指紋XORを前記第2のクラウド・アカウント内に作成するステップと、
前記第2の当事者が、前記暗号化してスクランブルした指紋XORに対する読出し特権を、前記第1の当事者に与えるステップと、
前記第1の当事者が、前記秘密キーを用いて、前記暗号化してスクランブルした指紋XORに対してプログラムを実行して、オン状態にされたビットの数を評価して、前記ビットの数を暗号化して前記第1のクラウド・アカウント内に暗号化形式で記憶するステップと、
前記第1の当事者が、前記暗号化したビットの数を、前記第1のクラウド・アカウントからダウンロードし、該第1の当事者のコンピュータ上で暗号解読し、これにより前記第1指紋と前記第2指紋との類似性を知るステップと
を含む方法。
【請求項3】
第1の当事者からの第1のデータと第2の当事者からの第2のデータとを、前記第1のデータ及び前記第2のデータ自体を公表せずに比較する方法であって、
前記第1の当事者が、前記第1のデータから第1指紋を作成するステップであって、前記第1指紋は、前記第1のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第2の当事者が、前記第2のデータから第2指紋を作成するステップであって、前記第2指紋は、前記第2のデータに関連する1つ以上の特性を表すビット・ストリングであるステップと、
前記第1の当事者が、一組のGMキーを、関連する第1組の公開キー及び第1組の秘密キーと共に生成するステップと、
前記第1の当事者が、前記第1指紋を前記第1組の公開キーで暗号化して、第1の暗号化した指紋を作成するステップと、
前記第1の当事者が、前記第1組の公開キーを前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第2指紋を前記第1組の公開キーで暗号化して、第2の暗号化した指紋を作成するステップと、
前記第1の当事者が、前記第1の暗号化した指紋を前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第1の暗号化した指紋及び前記第2の暗号化した指紋に対してXOR演算を実行し、これにより、暗号化した指紋XORを作成するステップと、
前記第2の当事者が、前記暗号化した指紋XORをスクランブルし、これにより、暗号化してスクランブルした指紋XORを作成するステップと、
前記第2の当事者が、第2組のESAキーを、関連する第2組の公開キー及び第2組の秘密キーと共に生成するステップと、
次に、前記第2の当事者が、前記暗号化してスクランブルした指紋XORを、前記第2組の公開キーで暗号化して、二重に暗号化してスクランブルした指紋XORを作成するステップと、
前記第2の当事者が、前記二重に暗号化してスクランブルした指紋XORを、前記第1の当事者に送信するステップと、
前記第2の当事者が、前記第2組の秘密キーを前記第1の当事者に送信するステップと、
前記第1の当事者が、前記二重に暗号化してスクランブルした指紋XORを、前記第2組の秘密キーで暗号解読し、さらに前記第1組の秘密キーで暗号解読することによって前記暗号化してスクランブルした指紋XOR中のビットの数を数え、これにより前記第1指紋と前記第2指紋との類似性を知るステップと
を含む方法。
【請求項4】
第1の当事者及び第2の当事者が、第1のデータと第2のデータとを、前記第1のデータ及び前記第2のデータ自体を公表せずに比較して、当該比較を独立してチェックして確かめる方法であって、
前記第1の当事者が前記第1のデータから第1指紋を作成するステップと、
前記第2の当事者が前記第2のデータから第2指紋を作成するステップと、
前記第1の当事者が、第1組のGMキーを、関連する公開キー及び秘密キーと共に生成するステップと、
前記第1の当事者が、前記第1指紋を前記公開キーで暗号化して、第1の暗号化した指紋を作成するステップと、
前記第1の当事者が、前記公開キーを前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第2指紋を前記公開キーで暗号化して、第2の暗号化した指紋を作成するステップと、
前記第1の当事者と前記第2の当事者とが、それぞれの前記第1の暗号化した指紋と前記第2の暗号化した指紋とを互いに交換するステップと、
前記第1の当事者が、前記第1の暗号化した指紋と前記第2の暗号化した指紋との第1XOR値を計算するステップと、
前記第2の当事者が、前記第1の暗号化した指紋と前記第2の暗号化した指紋との第2XOR値を計算するステップと、
前記第1の当事者が第1組のRSAキーを生成するステップと、
前記第2の当事者が第2組のRSAキーを生成するステップと、
前記第1の当事者が、前記第1XOR値を前記第1組のRSAキーで暗号化し、これにより第1の暗号化したXOR値を作成するステップと、
前記第2の当事者が、前記第2XOR値を前記第2組のRSAキーで暗号化し、これにより第2の暗号化したXOR値を作成するステップと、
前記第1の当事者が、前記第1の暗号化したXOR値を前記第2の当事者に送信するステップと、
前記第2の当事者が、前記第2の暗号化したXOR値を前記第1の当事者に送信するステップと、
前記第1の当事者が、前記第2組のRSAキーのうちの第2組の秘密キーを用いて前記第2の暗号化したXOR値を暗号解読し、これにより前記第2XOR値のコピーを明示するステップと、
前記第2の当事者が、前記第1組のRSAキーのうちの第1組の秘密キーを用いて前記第1の暗号化したXOR値を暗号解読し、これにより前記第1XOR値のコピーを明示するステップと、
前記第1の当事者が、前記第2XOR値のコピーが、元の前記第2XOR値と同じであるか否かをチェックして確かめるステップと、
前記第2の当事者が、前記第1XOR値のコピーが、元の前記第1XOR値と同じであるか否かをチェックして確かめるステップと
を含む方法。
【請求項5】
前記第1指紋及び前記第2指紋が、デジタル符号化した1つ以上の分子構造を含む、請求項1~
4のいずれかに記載の方法。
【請求項6】
前記第1指紋及び前記第2指紋の各々が、分析試料中の分子の活性を表す1つ以上のビットを含む、請求項1~
4のいずれかに記載の方法。
【請求項7】
前記第1指紋及び前記第2指紋の各々が、分子の三次元形状を表す1つ以上のビットを含む、請求項1~
4のいずれかに記載の方法。
【請求項8】
前記第1の当事者及び前記第2の当事者がモバイルコンピュータ装置を使用中である、請求項1~
4のいずれかに記載の方法。
【請求項9】
指紋をスクランブルすることが、ランダム・ビット・パディングを導入することを含み、ランダム・ビット・パディングは、前記指紋にランダムなストリングを付加することである、請求項1~3のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書中に説明する技術は、一般に情報の安全性を共有する方法に関するものであり
、特に、準同形暗号化を伴う秘密キー(秘密鍵)/公開キー(公開鍵)・パラダイムに頼
る非対称で安全な計算方法に関するものである。
【背景技術】
【0002】
商業及び生活の多数の局面において、2者以上の当事者が、自分が知っていることどう
しを、その情報を実際に公表せずに比較することが有利である。例として、あなた及びあ
なたの隣人が、どちらがより多額の金を稼いでいるかを知りたいとすれば:あなたの給料
について何らかのことを公表せずにこのことができるであろうか?こうした例は多数存在
する。家を買いたいが、その所有者が価格のリストを作成しないものとする。あなたが進
んで支払う額についてのこと以上のことを所有者に告げずに、そして所有者が、あなたが
進んで支払う最高額よりも自分が進んで受け入れる額が少ないこと以外のことを所有者が
公表せずに、あなたが出すつもりの最高額が、所有者が受け入れるつもりの最低額より多
いか否かがわかるであろうか?
【0003】
スポーツチームが他のチームと選手どうしをトレードしたいものとする。これら2チー
ムが、何らかの選手名を開示せずに、まず希望が一致するか否か、即ち、第1チームの選
手を行かせて第2チームが雇用したいか否かを決定することができるであろうか?
【0004】
2つの当事者が何かに(1回)入札したいが、いずれの当事者も「先発者利益」を失い
たくないものとする。即ち、一方が最初に入札すれば、他方は必要最低限だけ上回る額を
提示して落札することができる。何らかの第三者に頼らずに、これら2つの当事者が、ど
ちらかにこうした利益を得させることなしに、入札を(電子的に)共有することができる
であろうか?
【0005】
化学の分野では、2つの当事者が既知の組成の分子の集合を有する場合、当事者のいず
れかが、(a)これらの分子のいずれかが同一であるか否か、あるいは(b)2つの集合体がど
れほど類似しているかを、実際の分子名についての何らかの情報を公表せずに知ることが
できるであろうか?例えば、2つの会社が、例えば、化合物を取引することによって両社
の価値を高める目的で、それぞれの集合体を比較したいが、各社が実際に有するものを取
引先の外部に公表したくないことがある。他のシナリオでは、小規模なバイオテクノロジ
ー(生命工学)会社が、ある疾患に対して有効性のある何らかの化合物を作製しており、
この化合物を大手の製薬会社に使用許諾したい:一旦、この大手会社が、このバイオテク
ノロジー会社の化合物を見ると、この大手会社はこれらの化合物を自社で作製しようとす
るだけのことがある。バイオテクノロジー会社が特許権保護を出願していても、大手会社
はそれに対処するのに十分な資力を有することができる。こうしたより小さい会社が、自
分自身の化合物の正体を公表せずに、これらの化合物が、大手が自社内に有するものと完
全に異なることについて、大手会社を納得させることができるであろうか?
【0006】
こうした状況の他の異形では、ある会社が、自社のデータセット中の分子毎に一連の特
性、例えば標準的な一連のキナーゼに対する活性を知っているものとする。この会社が、
他社の集合体を検査して、同様なプロファイル(外観)を有するが異なる分子組成を有す
る分子を発見することが、いずれかの側が自社の分子または自社のキナーゼ・プロファイ
ルを公表せずにできるであろうか?あるいは逆に:第1社が、自分自身のデータセット中
の関心分子と化学的に同様であるが、ラジカル的に異なるキナーゼ・プロファイルを有す
る分子を、第2社の集合体中に見つけることができるであろうか?
【0007】
最後に、製薬業界内では、測定または計算した既知の分子の特性に基づいて予測モデル
を構築する多大な努力がなされている。分子または測定した特性のいずれかを公表せずに
、こうしたモデルを社外の他者と共有することができるであろうか?2社が、この例でも
主要事項、即ち分子構造データの発表なしに、自社のデータどうしを組み合わせて、両社
が使用することができ、いずれかの社が独自に作成することができるものより良いモデル
を構築することができるであろうか?
【0008】
従って、取引に関係する2つの当事者が、その取引を進めるか否かを決定するために十
分な当事者毎の情報を公表するだけで、いずれかの当事者のデータに歩み寄らない方法で
、所有するデータを安全に共有することを可能にする方法の必要性が存在する。
【0009】
本明細書中の背景の説明は、上記技術の状況を説明するために含める。このことは、参
照する題材のいずれもが、本明細書に添付する請求項のいずれの優先日においても、公開
され、既知であり、あるいは共通の一般知識の一部であったことを認めるものとして解釈
するべきではない。
【0010】
本願の発明の詳細な説明及び特許請求の範囲全体を通して、「具える」、及び「具えて
いる」、「具えた」のようなその変形は、他の追加物、構成要素、数値、またはステップ
を排除することを意図していない。
【先行技術文献】
【非特許文献】
【0011】
【文献】Craig Gentry, “A fully homomorphic encryption scheme”, Ph.D. thesis, Stanford Univ. (2009)
【発明の概要】
【課題を解決するための手段】
【0012】
本発明は、2つまたは複数の当事者間での情報の安全な共有に応えるものである。特に
、本発明は、情報を安全に共有するためのコンピュータベースの方法を含む。本発明は、
情報の安全な共有を実行する装置をさらに含む。本発明の装置及びプロセスは、特に交渉
取引に応用可能である。
【0013】
本発明は、本明細書中に記載する方法のいずれをも提供し、これらの方法は、本明細書
に添付する特許請求の範囲として表現するものを含み、これらの方法を実行するための装
置を提供し、並びにこれらの方法を実行するための命令を符号化したコンピュータ可読媒
体を提供する。
【図面の簡単な説明】
【0014】
【
図1】同時入札を管理する方法を示す図であり、例えば素因数分解の困難性に頼る「デジタル・ロックボックス」の例を含む。
【
図2A】2つの当事者間の非対称で安全な情報比較の方法を示す図であり、次の4ステップ:i)指紋を作成するステップと;ii)公開キーで暗号化して他の当事者と交換するステップと;iii)暗号化してスクランブルしてXORをとった指紋を返送するステップと;iv)ローカルに暗号解読するステップとを有する。
【
図2B】ASCの同期バージョンを示す図であり。L1距離は一方の側が暗号解読コードを公表する際のみに決定することができる。
【
図3A】非対称で安全な比較を、単数の買い手と売り手が関与する入札状況に適用する方法を示す図である。
【
図3B】非対称で安全な比較を、単数の買い手と売り手が関与する入札状況に適用する方法を示す図である。
【
図3C】非対称で安全な比較を、単数の買い手と売り手が関与する入札状況に適用する方法を示す図であり、但し買い手の付け値が売り手の価格と正確に一致するか否かを確定することができる場合である。
【
図3D】非対称で安全な比較を、単数の買い手と売り手が関与する入札状況に適用する方法を示す図であり、但し買い手の付け値が売り手の価格と正確に一致するか否かを確定することができる場合である。
【
図3E】非対称で安全な比較を、単数の買い手と売り手が関与する入札状況に適用する方法を示す図であり、但し買い手の付け値が売り手の価格と正確に一致するか否かを確定することができる場合である。
【
図3F】非対称で安全な比較を、ある範囲の数の買い手と売り手が関与する入札状況に適用する方法を示す図である。
【
図3G】非対称で安全な比較を、ある範囲の数の買い手と売り手が関与する入札状況に適用する方法を示す図である。
【
図3H】非対称で安全な比較を、ある範囲の数の買い手と売り手が関与する入札状況に適用する方法を示す図である。
【
図4A】ゼロ知識証明の思想を行使する例を示す概略図である。
【
図4B】ゼロ知識証明の思想を行使する例を示す概略図である。
【
図4C】ゼロ知識証明の思想を行使する例を示す概略図である。
【
図5A】非対称なASC:ASCUSバーション1(L1等価によって対称性を強化された)を示す図である。
【
図5B】ランダム
・ビット・パディングを伴うASCUSバージョン2を示す図である。
【
図6A】ランダム
・ビット・パディング、及び「正直な交換」の一例を示す図である。
【
図6B】ランダム
・ビット・パディング、及び「不正直な交換」の一例を示す図である。
【
図7A】距離空間内で分子どうしを比較する方法を示す図である。具体的には、
図7Aは類似性(非類似性)の共有行列を生成する方法を示す図である。
【
図7B】距離空間内で分子どうしを比較する方法を示す図である。
【
図8A】安全な公売におけるステップ(ステップ1~3)を示す図である。
【
図8B】安全な公売におけるステップ(ステップ4及び5)を示す図である。
【
図8C】安全な公売におけるステップ(ステップ6及び7)を示す図である。
【
図8D】安全な公売におけるステップ(ステップ8及び9)を示す図である。
【
図8E】安全な公売におけるステップ(ステップ10及び11)を示す図である。
【
図8F】安全な公売におけるステップ(ステップ12~14)を示す図である。
【
図8G】安全な公売におけるステップ(ステップ15~17)を示す図である。
【
図9】本明細書中に説明する方法を実現する好適なコンピュータ装置を示す図である。
【発明を実施するための形態】
【0015】
種々の図面中では、同様な参照符号は同様な要素を示す。混乱を減らし明瞭さを向上さ
せるために、本明細書中では、図面中の参照符号を丸カッコ内で、例えば(123)のよ
うに、意味の暗黙の変更なしに用いることがある。
【0016】
詳細な説明
情報の安全な比較の課題、及び関連する課題は、整数論の適用によって解決することが
でき、整数論は一度はほとんど実用的価値のないものと考えられた数学の一分野である!
例えば、個人識別番号(PIN:personal identification number)を保護する例は、「
ゼロ知識証明(ZKP:Zero Knowledge Proofs)」として知られているものによって解
決することができる。ZKPは、一方の当事者が、ある数「X」を知っていることを、「
X」が何であるかを公表せずに他方の当事者に対して証明することを可能にする。他のよ
り複雑な例は、本明細書中に説明する技術によって応えることができる。第2の当事者が
第1の当事者の隠し情報を実際に見出すことができる唯一の方法が、人間のリソースを超
えるものであることを証明することができる何らかの計算プロセスによるものである意味
で、そのすべてが「証明可能な安全性がある」。
【0017】
現代世界にとって大きな重要性があり、実際に現代の暗号化法の大部分の基になる整数
論の2つの例は、離散対数問題(DLP:Discrete Logarithm Problem)及び素因数分解
(PNF:Prime Number Factorization)である。これらは、化学構造を含む情報を比較
するための本発明の方法において役割を果たすので、以下の節ではこれらを簡潔に説明す
る。
【0018】
離散対数問題
次式(1)で表される関係があるものとする:
gx=y(mod N) (1)
ここに、Nは素数であり、「mod」は「モジュロ」または「時計」算術を意味し、即ち
、N以上の数からNの整数倍を減じた剰余が0からN-1までになることを意味する。「
生成元(生成作用素)」と称する値gは、xが1からN-1までの範囲である場合に、g
xがこれらの同じ整数を、但し異なる順序で再現するように見出すことができる。例えば
、N=5であるものとすれば:
21:2=2(mod N) (2a)
22:4=4(mod N) (2b)
23:8=3(mod N) (2c)
24:16=1(mod N) (2d)
となる。
【0019】
式(2a)~(2d)に示すように、数「2」は素数「5」にとっての生成元である。
【0020】
ここで、Nは、例えば200桁以上の非常に大きな素数であるものとし、y、即ち式(1)の右辺(RHS:right hand side)は既知であるものとする。逆算して有効なxを得ることはできるであろうか?即ち、(N,g,y)が与えられれば、xを計算することができるであろうか?yが十分に小さければ、単にいくつかのxの値を入れて、yよりも大きいか小さい値を得て、それに応じてxを調整したい気になることがある。xが十分に小さければ、このことは奏功する。しかし、xを1からN-1までの値にランダムに選定するとなると、このことが常に成り立つ可能性は非常に低い(10200分の1のオーダーである)。それどころか、yも200桁の数であり、10200個の数をすべて探索してどの数がこのことをもたらすかを確かめるための実際的な方法は存在しない。こうした探索を実現可能にするための既知のあるgリズムも存在しない。関係する量が「離散的」(即ち、モジュラー演算に従う整数)でないとすれば、解は次式(3)のようになる:
【0021】
従って、この方法は「離散対数問題」(DLP)と称され、計算が「困難である」もの
と信じられ、その意味は、関係する数の桁数(の増加)と共に、問題が多項式的に難しく
なるのとは対照的に指数関数的に難しくなることであり、即ち、yが200桁を有する場
合、問題は、yが100桁を有する場合の2倍(線形で)難しくなるか4倍(二乗で)難
しくなるのではなく、10100倍(指数関数的に)難しくなる。
【0022】
DLPはデジタル署名及びすべての安全なインターネット接続の基になる。DLPは、
ディフィー・ヘルマン鍵共有として知られているものの基礎にもなる(例えば、http://e
n.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange#Cryptographic_explanati
on)参照、2つの当事者が互いに公開でデータを送信した上で、暗号化メッセージを互い
に送信するために使用することができる秘密の数字(「キー(鍵)」)を生成することが
できるであろうか。このことが真に安全な通信プロトコルの始まりである。
【0023】
素因数分解
問題を次式(4)によって表現するものとする:
N=p*q (4)
ここに、p及びqは大きな素数である。N(非素数)が与えられれば、p及びqを見出
すことができるであろうか?DLPだけでは、この問題は計算が困難であるものと信じら
れ、即ち、この困難さはNの桁数と共に拡大する。こうした数を予期されるよりも小さい
個数に因数分解する方法は知られているが、p及びqを選定するに当たり比較的単純なセ
ーフガードを無視する場合だけである(例えば、pはqに近過ぎないようにするべきであ
る)。この問題の困難性が、RSA暗号化法の基になる。手短に言えば、次のこと(次式
(5))が成り立つことを示すことができ:
mn(p-1)(q-1)+1=m(mod N) (5)
ここにm及びnは任意の整数である。
【0024】
2つの数e及びdが存在し、
e*d=n(p-1)(q-1)+1 (6)
即ち、
e*d=1(mod(p-1)(q-1)) (7)
であるものとすれば:
med=m(mod N) (8)
となる。
【0025】
但し、
med=(me)d (9)
となる。
暗号化方法では、e及びdを、それぞれ暗号化キー(暗号鍵)及び暗号解読キーと考え
ることができる。従って、数mが暗号化する必要のあるメッセージであるものとする。m
をe乗すれば、新たな数me mod Nが得られ、この数は全くmのように見えない。しかし
、dを知っていれば、符号化された数meをd乗して、m(「メッセージ」!)に戻すだ
けで済む。このことが容易にmに戻すための唯一の方法であること、及びeとNを知って
もdについて役立つことは何も得られず、「秘密」キーと称される。数p及びqは、dを
容易に計算するために必要であるが、このことはNを因数分解することを意味し、このこ
とは計算が非常に困難である。従って、数e及びNは「公開されて」おり(「公開」キー
と称する):誰もがこれらを用いてメッセージを暗号化することができるが、数dを有す
る者だけが、これらのメッセージを暗号解読することができる。そして、dは関係者間で
、(前述した)ディフィー・ヘルマン鍵共有のような安全な方法を用いて交換することが
でき、この方法はDLPに頼る。インターネットのウェブサイト:wikipedia.org/wiki/P
ublic-key_cryptographyも参照。
【0026】
同時入札
DLP及びPNFは共に、本願の背景の節で説明した問題のいくつかに対する解決策を
既に提供している。各解決策は、現代世界において他の同等のものを有し、他の問題に対
するより大きな新たな取り組みの一部を形成することができる。こうした問題の1つは同
時入札であり、即ち、第三者が所有するアイテム(品目)に入札したい2つの当事者が、
どちらがより高額で進んで入札するかを見出したい場合であるが、他者が示す自分の入札
に基づいて自分の入札を変更する機会がどちらにもない場合である。このことは普遍的な
「先発者不利益」の例であり、即ち、一旦、一方の当事者が自分の入札を公表すると、他
方はそれで得をすることができる知識上の有利性を有する。
【0027】
物の世界では、2つの入札(数値)を含む封印された封筒が売り主に与えられ、これに
より、いずれかの入札者が、他者が進んで支払う額に基づいて自分が入札することができ
ること、例えば、一方の入札者が他方の入札者よりも1ドル高く入札して、入札されてい
るアイテムを購入する権利を勝ち取ることができることを防止する。一旦、入札が提出さ
れると、封筒が開封されるまでこれらの入札を知らなくても、これらの入札を変更するこ
とはできない。異なる入札を申し入れる企ては、(開封された)封筒の内容によって否定
される。
【0028】
電子の世界では、PNF(及び公開-秘密キー交換方法のような)暗号化方法が、同様
なレベルの秘匿性を実現すること、並びにある当事者が(例えば、他の当事者の数値を知
った際に)自分の立場を変更したか否かを示すことを可能にするが:ある当事者が不正を
しようとする(「封印した」ものとは異なる入札を申し入れようとする)ことを防止する
ことはできず、実際には、この当事者が不正をしたことを露見させることができることが
わかっている。両方の入札が預けられて「開封されて」初めて、各当事者が他者の入札が
どうであるかを知ることができる。しかし、提供される保護は、それぞれの入札の送信中
だけではない。
【0029】
従って、本明細書中に説明する方法は、大きな素数の因数分解に頼る、公開-秘密キー
交換の新たな応用である。一方の当事者はこの素数を用いて自分の入札を暗号化するが、
他方の当事者の入札を受信するまでは暗号化キーを送信しない。
【0030】
従って、同時入札の状況は、非対称暗号化の形式を用いて次のように進めることができ
る。第1の当事者が素数p及びqを選定し、第2の当事者が異なる素数p’及びq’を選
定するものとする。第1の当事者は、自分の入札mを、p及びqから導出したeを用いて
符号化して、me、並びにe及びN、pとqの積を第2の当事者に提供する。第2の当事
者は、自分の(m’)e、e’、及びN’のそれぞれを第1の当事者に提供する。第1の当
事者が、第2の当事者の暗号化した入札を受信した後に、第1の当事者はpとq、Nの因
数を第2の当事者に送信する。これにより、第2の当事者は式(6)よりdを計算すること
ができ、これより、第1の当事者の暗号化した入札を、式(9)を用いて暗号解読すること
ができる。なお、第1の当事者が自分の入札を変更する方法は存在しない。算術の基本定
理(FTA:Fundamental Theorem of Arithmetic)は、ある数を素数のべき乗に因数分
解する方法は1つしか存在しないことを述べており(ここに、これらのべき乗の各々は個
別に1とすることができる)、従って、p及びqは、掛け合わせてNにすることができる
唯一の素数であり、Nは暗号化した入札と共に提供されている。p及びqによれば、eと
共に役立つdは1つしか存在せず、eも第1の当事者が第2の当事者に送信している。
【0031】
従って、現在第2の当事者が保有する数値(入札)は、一旦、送信されると、第1の当
事者の側では自分から変更することはできず:第1の当事者がp及びqを送信するまでは
、第2の当事者がこの数値を読むことができないだけである。同様に、第1の当事者は、
第2の当事者のp’及びq’を受信するまでは第2の当事者の入札を読むことができず、
第2の当事者も既に第1の当事者に既に提供した数値を変更することはできない。
【0032】
このプロセスを
図1に例示し、
図1は、当事者1及び当事者2が情報を交換することを
可能にする「デジタル・ロックボックス」(100)を示し、(破線の境界を有する別個
のボックスで表される)3つの段階(150)、(170)、及び(190)を構成する
。なお、コンピュータなしで実行することができる(ロックボックス(鍵付き箱)のよう
な)方法には類似性が存在するが、本明細書中の実現は、物理的物体だけを扱う者にとっ
て利用可能でない技術に頼る。
【0033】
第1段落(150)では、両方の当事者が自分のキーの組を生成して、それぞれの入札
を暗号化する。第1段階では、両方の当事者が、素因数分解のような方式を用いて暗号化
することに同意することができる。
【0034】
従って、当事者1はRSA(Rivest-Shamir-Adleman(リベスト-シャミア-アーデル
マン))キーを生成して(107)、公開キー1(109)及び一組の秘密キー(111
)をもたらす。次に、当事者1は、入札1(101)による入札プロセスを開始し、入札
1を暗号化(103)して、暗号化した入札1(105)を生成する。
【0035】
これに対応して、当事者2はRSAキーを生成して(107)、自分のキーの組、即ち
:公開キー2(110)及び秘密キー2(112)を生成する。次に、当事者2は、入札
2(102)による入札プロセスに入り、入札2を暗号化(104)して暗号化した入札
2(106)を生成する。
【0036】
第2段階(170)では、これらの当事者がそれぞれの公開キー及び暗号化したフォー
ム(伝票)を交換する。
【0037】
従って、当事者1は、暗号化した入札1(105)及び公開キー1(109)を当事者
2に送信し(115)、当事者2は、暗号化した入札2(106)及び公開キー2(11
0)を当事者1に送信する(116)。
【0038】
この段階では、いずれの当事者も、互いの入札をまだ読むことはできず;各々がデジタ
ル・ロックボックスを有効に受信している。さらに、いずれの当事者も、自分の暗号化し
た入札及び対応する公開キーを他方の当事者に同時に送信する必要はなく;もちろん、受
信側の当事者は、対応するキーを(公開キー及び秘密キーを共に)受信するまでは、受信
した暗号化した入札に対して何もすることはできない。
【0039】
要約すれば、3つの情報、即ち:秘密キー及び2つの公開キーが存在する。いずれの当
事者も、2つの公開キーから秘密キーを解明することはできない。
【0040】
第3及び最終段階では、これらの当事者がそれぞれの秘密キーを交換する。
【0041】
当事者1は、自分の秘密キー1(111)を当事者2に送信し(123)、次に、当事
者2は、これらの秘密キーを(以前に受信した公開キー1と共に)用いて、暗号化した入
札1を暗号解読し(120)、これにより入札1(101)を明示する。
【0042】
これに対応して、当事者2は秘密キー(112)を当事者1に送信し(124)、次に
、当事者1は、これらの秘密キーを(以前に受信した公開キー1と共に)用いて、暗号化
した入札2(106)を暗号解読し、これにより入札2を明示する。
【0043】
この状況と物理的に等価なものは、2つの当事者が「ロックボックス(鍵付き箱)」を
交換しており、各々が、それぞれの入札を封入されて封印された封筒を保持していること
である。一旦、ロックボックスを交換すると、次にこれらの当事者は鍵を交換して互いの
ボックスを開ける。鍵の交換は同時でなくてもよい、というのは、他の当事者は既に他者
の入札を有しており、まだそれにアクセスすることができないだけである。この交換を傍
受して一方の当事者の秘密キーを入手する第三者は、対応する公開キーを持たない限りメ
ッセージを暗号解読することはできない。もちろん、一方の当事者が、他方の当事者に、
自分が所有するボックスのキーを与えることができ、他方の当事者は自分が有するボック
スのキーを提供することを拒むことはできるが、このことは同時のキー交換ではない。そ
して、こうした事態では、取引における信用が自動的に無効になる。本明細書において考
慮するプロセスは、当事者による取引に対する良い振る舞いを強いることができるプロセ
スではなく;むしろ、これらのプロセスは、悪い振る舞いを明らかにするプロセスである
。以下では、「ロックボックス」の能力が、本明細書中に記載する他の課題に対する解決
策の構成要素として有用であることがわかる。
【0044】
化学への応用
化学への実際的応用として、2つの分子構造が同一であるか否かを見出すためのDLP
の使用を考える。あらゆる分子が、SMILES(スアイルズ)ストリング(Daylight C
hemical Information Systems社、カリフォルニア州ラグーナ ニゲル(Laguna Niguel,
CA);www.daylight.com/smiles/index.html)として知られている辞書式記述によって表
現することができる。例えば、ベンゼンのSMILESストリングはc1ccccc1である。
【0045】
こうした記述は、一意的(正準)にすることができ、こうした「メタ」情報を立体化学
として含むことができる。従って、同じ長さの正準のSMILESストリングは、企業が
有する集合体中のあらゆる分子を一意的に表現するのに十分なものである。こうした文字
の「ストリング(列)」が数に変換されるものとする。このことを行う方法はいくつか存
在するが、例えば、特定の方法は、SMILESストリング内の各記号がASCII(Am
erican National Standard Code for Information Interchange:アスキー)コードを有
することに基づくことができ:「c」は99、「1」は49である。FTAによれば、S
MILESストリングは一意的な数に変換することができ、従って次式:
f(SMILES)=299349599799119913991749 (10)
のようになり、ここに、元のストリング内のn番目の文字は、n番目の素数をその文字の
ASCII等価値でべき乗した値に置き換えられる。FTAは、任意の数fが唯一のこう
した因数分解を有することを述べており、従って、この数はSMILESストリングを一
意的に表現する。さらに、これはとても大きな数でもある!
【0046】
しかし、こうした数に離散対数問題を適用することを考え、即ち、次式のようになる。
gf(SMILES)modN=y (11)
ここで、SMILESストリングを表現する数yは1~Nでなければならない。
【0047】
さらに、DLPを前提とすれば、yからf(SMILES)を計算することは非実際的である。
しかし、問題は、与えられたSMILESストリングからf(SMILES)の一意的な値が存在
しても、前者の関数yが証明可能な方法で一意的であることを保証されていないことであ
り、式(11)のyが証明可能な方法で一意的であるに過ぎない。このため、f(SMILES)は一
方向ハッシュ関数と称され、ハッシュは、一部の情報を失ったより大きな数の表現である
。一般に、良好なハッシュ関数については、ハッシュ衝突の確率、即ち、この例では、同
じyを生じさせる2つのfの値が、可能なyの値の数の平方根、即ち√Nに依存する。こ
のため、Nが非常に大きく、例えば200桁である場合、10100個のSMILESスト
リングを、反復されるyに追い付きそうになる前にデジタル化しておかなければならない
。このことは、各SMILESストリングが本質的にランダムなyを生じさせるものと仮
定する。SMILESストリングの小変化が著しく異なるyの値を生じさせる、というこ
とが、ここでは非常に起こりがちである、という妥当な議論を行うことができる。こうし
た主張が裏付けではないとしても、このようなハッシュ関数が「衝突耐性(耐衝突性)が
ある」ことは証明することができ、このことは、衝突を探すことによって衝突を実際に見
つけることは計算が困難であることを意味する。例えば、一方の当事者が、第2の当事者
に属する分子に対応するyの値を有するが、同じyの値を生じさせる分子を作製したいも
のとする。第1の当事者は、この分子が実際に第2の当事者の分子と同じであることは気
にせず;ただこの分子が同じハッシュyを与えることだけを気にする。このことを行うた
めに、第1の当事者は、(あり得る分子の数が膨大であることを念頭に置いて)単にラン
ダムな分子を作製して検査するか、あるいは、どのようなfがあり得るかを見出そうと試
みて、それより、どのような分子が同じyの値を生じさせるかについてより良い見当をつ
けるかのいずれかをしなければならない。しかし、DLPが機能する方法に起因して、y
からfに至ることはできない。このため、分子の識別子yを、異なる分子で「真似る」こ
とは計算が困難である。
【0048】
一般に用いられる分子構造の第2の表現は「指紋」と称される。指紋は一般に1と0と
の集合であり、1はある性質の存在を表し、0は欠如を表す。指紋は、分子を比較する標
準的方法の基礎となっており、即ち、2つの分子が一組の性質の存在または欠如の同じパ
ターンを有する場合、これらの分子は同様な分子形状を有することが多い。代表的な指紋
は、実際に分子の結合パターンのいくつかの態様を符号化し、このため、同様な指紋を有
する2つの分子は同様な化学構造を有することも多い。逆に、2つの異なる分子が同一の
指紋を有する場合、これらの分子が同じ分子構造を有することを意味せず;このように、
指紋はある種のハッシュ関数でもある、というのは、指紋を作成する際に一部の構造情報
は失われているからである。
【0049】
原則として、異なる分子の集合体から生成することができる多数の指紋が存在する。こ
のため、分子を安全に比較する1つの方法は単に指紋を比較することとすることができる
ように思われ得る。結局は、指紋を検査して、この指紋を生成した分子を知ることはでき
ず、2つの指紋が同じであっても、そのことは、これらの指紋が同じ分子を表現すること
は意味しない。しかし、分子の指紋は一般に衝突耐性がないことが示されている。ある指
紋が与えられると、全く同じ指紋を有する分子を生成することはコンピュータ計算で実現
可能である。このことは、分子に加える変更の指紋に対する影響が線形加算可能であるこ
とに起因し、即ち、分子構造に加える小変化は一般に指紋の小変化を生じさせ、従って、
「適合性」関数を定義して、例えば一般的アルゴリズムを学習させて、出発構造と、対象
(ターゲット)の指紋と最終的に正確に一致する構造との類似性を改善することは容易で
ある。分子を比較することについて評価される(同様な分子は同様な指紋を有する)こと
がまさに指紋の特徴であり、このことが指紋を衝突耐性のないものとし、従って安全でな
くする。
【0050】
しかし、指紋を安全に比較することができる方法が存在するものとし、即ち、第1指紋
の所有者が、自分の指紋と第2の当事者に属する指紋との類似性を学習することはできる
が、第2指紋との同一性は学習せず、1つの例外は、2つの指紋が実際に同一であること
をアルゴリズムが報告する場合であるものとする。この場合、2つの分子が同一であるこ
とを報告する2つの方法が存在し得る。これらの方法は共に高度な安全性があり、かつ互
いに共通なものを有さない。この方法により、(天文学的な確実性で)同一性を確立する
ことだけでなく、2つの分子の化学的類似性(あるいは類似性の他の根拠)を、さらなる
情報の交換なしに確立することができる。
【0051】
指紋(ビット・ストリング)比較
問題の性質は、次の事例を利用して説明することができる。アリスが、20個の1と0
とのストリングを有し、従って:
[100100010010101010001] (12)
ボブが次のような長さ20のストリングを有し、従って:
[010101010010101010011] (13)
【0052】
ボブとアリスのストリングは共に同数のビットを有するが、各ストリング中の各「1」
及び「0」の位置は同じではない。質問は、これら2つのストリングがどれほど類似して
いるか?である。この例では、ビット・ストリング(12)及び(13)が多数の共通なビットを
有するが、(左から右に読むと)1番目、2番目、6番目、及び19番目のビットは異な
る。
【0053】
ビット・ストリングの差の一般的尺度は「ハミング距離」と称され、「市街距離」、あ
るいは数学的にL1距離としても知られている。L1は、各位置における差の絶対値の総
和をとることを意味するのに対し、L2は各位置における差の二乗の総和の平方根をとる
ことを意味する。この例では、L1を用いるかL2を用いるかはほとんど差がない、とい
うのは、各順序集合(「ベクトル」)のエントリ(各入力値)が1及び0である(従って
、あらゆる所定位置における差が1を超えることはあり得ず、従って、差の二乗も1を超
えることはあり得ない)からである。いずれの場合にも、この差は便宜上L1距離と称す
る。また、L1距離は、これら2つのストリングにXOR(排他的論理和の)論理演算
(外1)
を適用した結果における0でないビットの数にも等しい。アリスのストリングとボブのス
トリングとの間のL1距離は4である、というのは、(値が)異なる4つの位置が存在す
るからである。アリス及びボブの各々が、自分の実際のストリングを公表せずにL1の値
を学習することができる場合、彼ら二人はそれぞれの類似性を評価するために必要な最小
限の情報を開示されているが、それ以上学習することはできない。このことはZKPでは
ないが、追加的開示ゼロ(ZAD:Zero Additional Disclosure)を含む、というのは、
開示されているもののすべてが要求したもの、即ち、これらのストリングがどれほど類似
しているかであり、それ以上のものはない。
【0054】
アリス及びボブが信頼できる第三者クリストファーを知っているものとする。彼ら二人
は共に自分のストリングを暗号化してクリストファーに送信し、クリストファーはこれら
のストリングを暗号解読し、各ビットを比較してL1距離を特定する。従って、次式のよ
うになる:
【数2】
【0055】
演算
(外2)
は論理XOR演算である。XORは「排他的論理和(Exclusive OR)」を意味し、互いに
異なる一対のビットから「1」を生成し、それ以外は0を生成する。即ち、次式のように
なる:
【数3】
【0056】
従って、XORはアリスのストリングとボブのストリングとの間に4つの差を見出し、
「1」は式(14)中の最後のストリングとして表現される結果的なストリング中の「1」の
箇所に出現する。ここで、クリストファーがしなければならないことは、XORストリン
グL1中のビットの数を数え上げて、その結果をアリス及びボブに送信することだけであ
る。なお、クリストファーは結果のストリングをいずれに送信することもできない。クリ
ストファーがそのことをすれば、アリスまたはボブが、他者のストリングとして、そうで
あるはずのものを再構成することは容易になる。実際に、次式であることを示すことは容
易である:
【数4】
換言すれば、アリスがしなければならないことは、結果的なストリングと自分自身のス
トリングとのXORをとって、ボブのストリングを生成することだけである(その逆も同
様である)。
【0057】
しかし、クリストファーは戻りのストリング中のビットの数を数え上げて、その結果を
アリス及びボブに戻す必要はなく、そしてこのことは本発明における主要な発見である。
クリストファーがしなければならないことは、このストリング内のビットをランダムに順
序変更して、アリス及びボブに返送することだけである。例えば、1から20までの数の
うちの1つを各ビットにランダムに割り当て、これらのビットを各自が受信した乱数のサ
イズによって順序付けし直す。次に、彼ら二人はこのストリングを見て、ビットの数を数
え、その数はまだ4であるが、彼ら二人のどちらも実際に差がある箇所はわからない。ク
リストファーが、元のXORストリングに適用した順序変更の記録を保持しているものと
仮定すれば、クリストファーだけがこの箇所を知っている。アリス及びボブは、彼ら二人
のストリング間の差の大きさは知っているが、これらの差の箇所については何も知ってお
らず、従って、このことが今度はZADの状況である。
【0058】
しかし、アリス及びボブがクリストファーを知っていなければどうであろうか?彼ら二
人は同じ結果を自分自身で得ることはできるであろうか?驚くべき答えは「そうであるが
」である。アリスが彼ら二人のストリング間のL1を、ボブのストリングを知ることなし
に知ることはできるが、ボブは何も知っていない。即ち、安全であるが非対称な情報の転
送を行うことはできる。もちろん、アリスがL1をボブと共有することは自由であるが、
ボブは、アリスと同じストリングに対して同じアルゴリズムを実行することを許可されな
い限り、これを信用しなければならない。このことがどのように機能するかを確かめるた
めに、上記のシナリオを考えるが、アリス及びボブは自分のストリングを最初に暗号化し
ているものとする(とりあえず、どのよう暗号化するかは脇に置く)。クリストファーは
両者のストリングを受信するが、ここでは、これらのストリングが暗号化されているもの
とすれば、どのようなストリングであるかは知らない。次に、クリストファーは、これら
のストリングのXORをとって、比較ストリングの結果を生成したい。しかし、クリスト
ファーはそれができない、というのは、これらのストリングが暗号化されているからであ
る。しかし、クリストファーはそのことを無視して、とにかくこれらのストリングのXO
Rをとり、次にその結果を順序変更してアリス及びボブに返送するものとする。このスト
リングはL1距離と関連性がないものと予期されるかもしれない。しかし、GoldWasser及
びMicali(GM)は1982年に、暗号化したストリングのXORが真の結果を暗号化し
たストリングになることを述べている。即ち、GM方式を用いて、クリストファーは、暗
号化して順序変更したXORストリングを返送している。ここで、アリス及びボブは共に
、この暗号化方法を知っているので、その結果を暗号解読してL1を復元することはでき
るが、ストリング中のどこに差があるのかは知らない。このことは注目に値する結果であ
り、「準同形暗号化」の新たな応用の例である。これに対し、RSAのような他の暗号化
方式は、メッセージまたは数の全体に適用され、GMキーをビット暗号化に用いる。従っ
て、RSAキーは、XORの事象が存在することになるビット・ストリング暗号化にGM
キーを用いることができる「ロックボックス」の状況に適用される。
【0059】
準同形暗号化は、暗号化形式に対する算術計算を可能にし、これにより、暗号化形式を
暗号解読する際に、その結果は、この算術計算を非暗号化形式に対して実行したのと同じ
になる。GM法は、暗号化形式に対するXOR演算を可能にする準同形暗号化の例である
。何年にもわたって、準同形暗号化の比較的少数の例が存在し、各々が1つの数学演算(
加算、減算、等)にしか役に立たなかった。1つの例は、RSAアルゴリズムにより既に
上述している。上述したように、数mを暗号化することが望まれ、次の表現式を形成する
ことができる:
me=j(mod N) (17)
ここに、e及びNは上述した通りであり、ここでjはmの暗号化形式である。
【0060】
第2の数nが存在し、暗号化したkになるものとする:
ne=k(mod N) (18)
【0061】
ここで、暗号化した数jとkを乗算した結果は表現式(19)となる:
j*k=mene=(mn)e(mod N) (19)
【0062】
j×kの積を暗号化すれば、表現式(20)となる:
(j*k)d=(mene)d=medned=mn(mod N) (20)
この式は、暗号化した数どうしを乗算することは、その基になる暗号化していない数ど
うしを乗算することも含むことを意味する。これは準同形計算であるが、乗算にのみ当て
はまる。乗算はElGamal(エルガマル)暗号システムでも可能であり、ElGamal暗号システ
ムはDLPに頼る。加算は、Benaloh(ベナロー)暗号システム、及びPaillier(パイリ
ア)暗号システムでも可能であり、これらの両者もDLPに頼る。
【0063】
GoldWasser-Micali暗号化の数学
GM暗号化は、「平方剰余性」と称されるものに基づき、基本的に、数が平方(二乗)
の、所定のNのモジュロであるか否かを問う。通常の算術では、ある数が平方であるか否
かを見分けることは容易であり:その平方根が整数であるか否かをチェックすればよい。
ここで、この質問を、モジュロまたは時計の算術について考える。
【0064】
通常のように、Nが2つの大きな数p及びqの積であるものとする。次に、質問は、所
定のxについて、次式のようなyが存在するか否かである:
x=y2(mod N) (21)
【0065】
p及びqが共に既知である場合、この質問に答えることは相当容易である。必要なもの
は:
x(p-1)/2=1(mod p) (22)
及び
x(q-1)/2=1(mod q) (23)
だけである。
しかし、p及びqは既知でない場合、式(21)の解を確定することは非常に困難であり、
即ち、Nを因数分解するのと同じくらい困難である。
【0066】
ここで、式(21)が成り立たない数が存在するものとし、即ち、xが平方でないものとす
る。さらに:
x(p-1)/2=-1(mod p) (24)
かつ
x(q-1)/2=-1(mod q) (25)
であるものとすれば、任意数z2にxを乗じたものも平方にはなり得ない。このことを確
かめるために、次式を考える:
(z2x)(p-1)/2=z(p-1)x(p-1)/2=x(p-1)/2=-1(mod p) (26)
というのは、「フェルマーの小定理」により:
zp-1=1(mod p) (27)
かつ
ab(mod p)=a(mod p)*b(mod p) (28)
となるからである。
【0067】
従って、こうしたxが存在し(容易に見つけることができ)、積xz2は何らかの大き
な乱数zから計算されるものとする。p及びqは共に既知であるので、xz2が平方でな
いことはすぐに見出すことができるが、p及びqの知識なしでは他のだれもできない。こ
れはコード中の「1」を表す。次に、z2だけを考える(即ち、xのことは忘れる)。こ
こでも、これは因数p及びqを用いた平方であることは容易に証明することができる。従
って、これはコード中の「0」を表す。従って、ビット・ストリングを符号化するために
必要なことは、各0または1を、それぞれz2またはxz2に置き換えることだけであり、
ここにzはビット毎に異なる(ランダムに選定した)数であり、xは式(24)及び(25)に従
う。他の当事者にx及びNの値を提供することによって、その当事者は同じことを行うこ
とができ、即ち、これらは「公開」キーである。しかし、このプロセスを逆にすること、
即ち、各数が1を表すか0を表すかを見出すことは、p及びqを知らずには計算が指数関
数的に困難になり、p及びqは「秘密」キーである。
【0068】
ここで4つのことを注記することが重要である。
【0069】
第1に、メッセージのサイズが大幅に拡大されている。ここで、非常に大きな数がビッ
ト・ストリング中の各ビットを表す。このことが、この方法が暗号化法と同じくらい広く
用いられてこなかった理由である。
【0070】
第2に、「1」及び「0」の乗算は興味深い性質に従う。2つの暗号化した「1」の値
を掛け合わせるものとする:
(z2x)(w2x)=(zwx)2(mod N) (29)
即ち、平方でない2つの数を掛け合わせることは、平方のモジュロNを生じさせ、即ち
{1,1}={0}である。
【0071】
一方が平方である他方が平方でない2つの数を掛け合わせると、次式のようになる:
(xz2)(w2)=x(zw)2(mod N) (30)
その結果は平方ではなく、従って{1,0}または{0,1}は{0}を与え、これは平方で
ある。
【0072】
最後に平方である2つの数を掛け合わせると、次式のようになる:
(z2)w2=x(zw)2(mod N) (31)
即ち、{0,0}は{0}を与え、これは平方である。
要約すれば、「1」及び「0」を表す大きな数どうしの乗算は、基になる1及び0のX
ORの性質を正確に有する他の大きな数を与える。このことが本願全体を通して用いられ
る準同形の性質である。
【0073】
第3に、各ビットは乱数(及びx)によって表される。実際に、GMは非常に少数の確
率暗号化法の1つである。このことは以下に続くことにおいて重要である、というのは、
ビット毎に同じキーを用いるが、表現はすべて予測不可能な様式で異なることを意味する
からである。このことは非常に重要である。安全な比較プロトコルを効果的にするここで
の主要なステップは、ビットの順序変更である。しかし、2つの当事者(例えば、前述し
たアリス及びボブ)が、順序変更されたビットを「デスクランブルする(スクランブルを
元に戻す)」ことができるならば、彼ら二人は互いのストリングを解明することができる
。彼ら二人がこのことを行うことを防ぐものは、基本的に、各ビットを新たなランダムシ
ードで符号化すること、及び、一旦、各ビットを表す値がスクランブルされると、これら
の値を元の値まで逆に「辿る」ことができないことである。
【0074】
第4に、安全のレベルは各ビットを表す数のサイズによって決まる。
【0075】
2つの大きな数どうしを掛け合わせて、他の大きな数のモジュロをとることによって上
記XOR演算を実行するものとすれば、即ち、A*B=C(mod N)であるとすれば、この
演算の1つの追加的な特徴を注記するべきである。ここでの大きな特徴は、結果的なCを
とって、これを、XORをとったビット・ストリング中のビットを表す他のすべての数の
リスト中のランダム位置に置くことができ、従って、元のXORストリングがどのように
見えるかを隠すこと(従って、何者かが元のストリングを暴くことを防ぐこと)ができる
。従って、1つの要件は、何者かがCだけからAを解明することができないことである。
これがモジュロ算術でないとすれば、これは問題となり得る。例えば当事者A及び当事者
Bからの次の数があるものとする:
A1=5、B1=7、従ってC1=35;及び
A2=8、B2=3、従ってC2=24。
【0076】
この手順は(C1,C2)を任意の順序で戻すことになり、これにより、{B1,B2
}の提供者は、相手が{A1*B1,A2*B2}を見ているか{A1*B2,A2*B
1}を見ているかは知らない。しかし、当事者「B」は自分の値を知っているので、当事
者Bは、(35は3で割り切れないので)C1がB2に何かを乗算したものに由来するは
ずがないものと推論し、従ってC1はB1に由来するはずであり、即ち、元の順序が復元
される。
【0077】
しかし、モジュロ算術を実行する際には、事態が異なる。実際に、本明細書中に説明す
るシステムでは、こうした容易な因数分解を行う方法は基本的に存在しない。しかし、例
外が存在する。当事者Bからの数のうちの1つがキーのうちの1つの倍数であれば、どの
ような「A」の数を用いても、このキーの倍数が戻され、即ち、誰かは「C」が由来した
所がわかる。このことはあまり役に立たないことがわかり;一例を挙げれば、この方法を
用いる当事者Bは基本的に自分のキーを明かし、そのいくつかは(当事者)Aが容易に検
出することができる。
【0078】
近年、完全に準同形の計算、即ち加算及び乗算を共に可能にする第1の方法が報告され
ている(Craig Gentry, “A fully homomorphic encryption scheme”, Ph.D. thesis, S
tanford Univ. (2009)(非特許文献1)、参照することによって本明細書に含める)。こ
の方法の利点は、ホストコンピュータのリソース(例えば、いわゆる「クラウド」コンピ
ュータ)上で安全な計算を実行する能力にある。
【0079】
しかし、本発明における適合は異なる。計算を行う場所は問題ではなく;その代わりに
、問題となるものは、情報の安全な生成及び転送である。従って、このことは準同形暗号
化の数学の新規な応用である。特に、主要なデータの公表なしにL1距離を安全に計算す
ることができるという見解は、以前には実証されていない。
【0080】
アリス及びボブ及びクリストファーの例に戻れば:これまでは、アリス及びボブが暗号
化したストリングをクリストファーに送信し、クリストファーが暗号化計算を実行し、結
果をスクランブルして、アリス及びボブの両者に、いずれの者にも他者のストリングどの
ようであるかは公表せずに戻す。クリストファーがアリスの元の(暗号化した)ストリン
グをボブに漏らすことを止めさせるものは何か?クリストファーがこのことを行うような
ことがあれば、ボブはアリスのストリングを暗号解読することだけはできる。しかし、R
SAアルゴリズム中に示されているように、アリス及びボブが共に暗号化するために用い
ることができる公開キー(上記ではeで表される)を持つことはできるのに対し、暗号解
読キーdはアリスしか知っていない。こうした状況では、クリストファーがアリスのスト
リングをボブに漏らすことはボブにとって無駄であるのに対し、クリストファーがボブの
ストリングをアリスに漏らすことはボブのストリングを明らかにする。こうした方式は非
対称であり、ボブにとって安全でない。もちろん、クリストファーはe及びdを知ること
ができ、アリス及びボブはeしか知らないが、このことは、クリストファーがすべてを知
っており、これらの当事者のクリストファーに対する信頼が完全でなければならない状況
に、これらの当事者を引き戻す。
【0081】
しかし、この方式の進展がもう1つ存在するものとする。クリストファーにストリング
を受信させて仲介者の役を務めさせるのではなく、この仲介者を解任するものとする。ア
リスがe及びdを生成し、自分のストリングをeで暗号化して、自分の暗号化したストリ
ング及びeをボブに送信するものとする。ボブは自分のストリングをeで暗号化して、ア
リスの暗号化したストリングとのXORを実行し、次に結果的なビットに順序変更を適用
し、これをアリスに返送する。アリスはボブのストリングを、暗号化されていてもいなく
ても、全く目にすることはなく:ボブ以外の誰も目にすることはない!アリスは暗号解読
するに至り、従って結果的なストリングを見るが、ボブは順序変更を適用しており、アリ
スは各ビットが元々あった箇所についての情報を有さない。従って、ここでアリスはL1
を保有しており、アリスもボブも、強力な暗号化法によって保護されていなかったもの以
上のものは露わにしていない。この装置によって、信頼できる第三者がなくなるだけでな
く、安全性が実際に増加する、というのは、関係する当事者以外の何者も、暗号化してい
ないストリングを操ることは決してないからである。本明細書では、この方法を非対称で
安全な比較(「ASC」:Asymmetric Secure Comparison)と称し、
図2A及び2Bに例
示する。
【0082】
図2A及び2Bでは、取引が当事者1と当事者2との間で行われる。このプロセスを図
2Aに4つの段階(250)、(260)、(270)、及び(280)で例示し、
図2
Bに5つの段階(250)、(260)、(270)、(280)、及び(290)で提
示する(各段階は、破線の境界を有するボックス(箱形)で表す)。
【0083】
第1段階(250)では、当事者がそれぞれの指紋を作成する。
図2Aでは、当事者1が分子または他のデータ1(201)を取得して、指紋(205)を作成する(203)。その間に、当事者2は分子または他のデータ2(202)を取得して、指紋2(206)を作
成する(204)。
【0084】
第2段階(250)では、当事者の指紋の暗号化を行う。当事者1は、GMキー(20
7)及び関連する公開キー(209)と秘密キー(219)を生成する。指紋1を公開位
キー(209)で暗号化して、暗号化した指紋1(213)を作成する。
【0085】
当事者1は公開キー(209)を当事者2に送信し(215)、当事者2もこの公開キ
ーを用いて指紋2を暗号化し(210)、これにより暗号化した指紋2(212)を作成
する。また、当事者1は暗号化した指紋1(213)を当事者2に送信し、当事者2は、
暗号化した指紋1と暗号化した指紋2(212)とのXORをとり(216)、これによ
り、暗号化した指紋XOR(218)を作成する。
【0086】
第3段階(270)では、スクランブルを行う。従って、当事者2は、暗号化した指紋
XORをスクランブルして(220)、暗号化してスクランブルした指紋XOR(222
)を作成して、当事者1に返送する(224)。
【0087】
第4段階(290)では、当事者1がL1を計算する。当事者1は、まず、秘密キー(
219)を用いて、暗号化してスクランブルした指紋XOR(222)を暗号解読し(2
21)、これにより(暗号解読された)スクランブルしたXOR指紋(225)を生成す
る。この指紋中のビット数を数えて(227)L1(229)の値を与え、この時点でプ
ロセスを終了する(231)ことができる。
【0088】
図2Bでは、第1段階(250)で、最初の2、3ステップを
図2Aのように進める。
当事者1は、分子または他のデータ1(201)を取得して指紋1(205)を作成する
。その間に、当事者2は分子または他のデータ2(202)を取得して、指紋2(206
)を作成する(204)。
【0089】
第2段階(260)では暗号化を行う。当事者1は、GMキー(207)及び関連する
公開キー1(209)と秘密キー1(219)を生成する。指紋1を公開キー1(209
)で暗号化して、暗号化した指紋1(213)を作成する。
【0090】
当事者1は、公開キー1(209)を当事者2に送信し、当事者2もこの公開キーを用
いて指紋1を暗号化し(210)、これにより、暗号化した指紋2(212)を作成する
。また、当事者1は、暗号化した指紋1(213)を当事者2に送信し、当事者2は、暗
号化した指紋1と暗号化した指紋2(212)とのXORをとり(216)、これにより
、暗号化した指紋XOR(218)を作成する。
【0091】
そして、第3段階(270)では、当事者2は、暗号化した指紋XOR(218)をス
クランブルして(220)、暗号化してスクランブルした指紋XOR(222)を作成す
る。
【0092】
ここで、追加的に、(当事者2が、当事者1がXORストリングを暗号解読する時点を
管理する)
図2Aとは異なり、当事者2はRSAキー(236)を生成し、このRSAキ
ーから公開キー2(238)及び秘密キー2(240)を生成する。次に、暗号化してス
クランブルした指紋XOR(222)をRSA公開キー2で暗号化して、RSA公開キー
2と共に当事者1に送信し、当事者1は、これを、二重に暗号化してスクランブルした指
紋XOR(251)として受信する。
【0093】
第4段階(280)では、当事者2は公開キー2(240)も当事者1に送信し(24
8)、当事者1は、この公開キー2を用いて、二重に暗号化してスクランブルした指紋X
OR(251)を暗号解読する(253)。なお、このことは、当事者1が指紋比較の結
果を見ることができる時点を当事者2が管理することを可能にする。
【0094】
最後に、段階(290)では、暗号化してスクランブルした指紋XORを再生したもの
を、秘密キー1(219)でさらに暗号解読する(255)。この暗号解読された指紋中
のビット数を数えて(255)L1(257)の値を与え、この時点でプロセスを終了す
ることができる(259)。
【0095】
しかし、上述したように、
図2Bのプロセスには非対称性がとり入れられている。(例
えば当事者1として図示される)アリスはL1を保有するが、(当事者2として図示され
る)ボブは保有しない。多数の状況では、このことが問題にならないことがあり、このこ
とが当事者間の実際の関係を反映する場合には、利点にさえもなり得る。例えば、小さい
会社が自社の化合物をより大きい会社の化合物と比較する場合には、より大きい会社はL
1に含まれる情報に影響を与える者である。より大きい会社は、より小さい会社にそれ以
上伝えるに値することが存在するものと判定すれば、そうすることを決定する。より小さ
い会社は、大きい会社にさらに事を進めさせる力はなく;その関係は非対称である。
【0096】
他の場合には、一旦、有益な商取引を実施することができることの証拠が存在すると、
両方の側がそれぞれの主要なデータを示すであろう、という理解が存在する。例えば、売
買取引、恐らくは家屋の販売の場合を考える。家の所有者(売り手)が、進んで受け入れ
る最低価格を表すビット・ストリングを作成し、売り手は、価格が1000ドルに最も近
く示されることについて入札者と同意することによってこのことを行い、そして長さ10
00ビットのビット・ストリングから開始する。売り手が最低限受け入れ可能な価格が4
00,000ドルであれば、売り手は最初の400ビットを1にセットし、残りを0にセ
ットする。予想される買い手が考えることができる最高額の入札が420,000ドルで
あれば、この買い手は、420ビット目の値以外はすべて0であるストリングを作成し、
420ビット目は1にセットする。次に、ASCプロトコルに従って売り手がL1を受信
し、売り手は、入札者のビット・ストリングと自分のビット・ストリングとの間に401
の距離が存在することを見出す。このことは、入札者がセットしたビットが400番目の
ビットよりも高位であった場合のみに発生し、即ち、このビットでは売り手のビットが0
になっている。入札者の最高価格が例えば380,000ドルであった場合、入札者は3
80番目のビットを1にセットしており(他のビットは1にセットしておらず)、売り手
は、ストリング間で399個のビットが異なっていることを見出し、これは、売り手が受
け入れ可能な最低価格よりも少し低いことを示している。しかし、これはASCであるの
で、売り手は最高額の入札の実際値を知らず、妥結する用意のある価格を上回るか(下回
るか)否かしか知らない。従って、401ビットが1にセットされていることを売り手が
見出した場合、売り手はさらに議論を進める価値があることを知り;逆に、399ビット
が1にセットされていることを売り手が見出した場合、当事者が互いの時間を無駄にして
も意味がない。要するに、ASC法は、売り手と買い手とが取引の可能性から始める指標
を提供するに過ぎない。ASC法は、買い手の最初の入札が売り手が要求する価格を大幅
に上回か否かを、いずれの当事者にも伝えない。
【0097】
買い手がL1について売り手に嘘をつくことは無意味であることが興味深い。入札が一
致している場合(即ち、二者間に「ギャップ」が存在せず:要求する価格が購入価格未満
である場合)、両当事者を満足させるか両当事者を痛み分けさせる価格に達することがで
きることを売り手が知ると、交渉から引き下がる。双方の期待が一致していない際に、一
方の当事者が交渉したいことを他方の当事者に伝えると、同等に欲求不満になるはずであ
る。L1が両当事者にとって有益であることが両当事者の関心事である。ここでASCは
実際的な有用性を有する、というのは、それぞれの当事者の立場について何も開示するこ
となしに合意の可能性が存在することを、当事者が認めているからである。
【0098】
このプロセスを種々の形態で
図3A~3Hに、16ビットを有するビット・ストリング
及び当事者A(売り手)と当事者B(買い手)との間の取引について例示する。各場合に
、Bの入札は異なるように表現され、ASCの結果はA XOR B、及びL1の値として
示す。記号
(外3)
は、ストリング内のビットの総和を計算する演算子を示す。各場合に、スクランブルした
A XOR Bのストリングも示す。もちろん、スクランブルは、A XOR B中の0にセ
ットされたビットが位置する箇所を目立たなくする。
【0099】
図3A及び3Bでは、Bの入札は単一のビットをセットすることによって表現される。
図3Aでは、当事者Bの入札が低額過ぎ、
図3Bでは、当事者Bの入札が高額である。従
って、
図3A及び3Bでは、1ビットのみを用いることによって、Bの入札がAが提示す
る価格よりも大きいか小さいかだけを示すことができる。
【0100】
図3C~3Eでは、(同じ16ビットのビット・ストリングについて)、入札者(B)
が、1にセットされた2つの隣接するビットを用いれば、入札が要求される価格よりも大
きいか、要求される価格に等しいか、要求される価格よりも小さいかを示すことができる
。各場合に、2つのセットされたビットのうち低位の方がその入札であり;それに隣接す
る第2のビットをより高位の側に追加して、区別を実現する。今度は、Aが要求する価格
との0、1、または2ビットのオーバーラップ(重複)を有することができる。ここで、
当事者は、入札が(i)売値よりも高いか(
図3C)、(ii)売値に等しいか(
図3D)、あ
るいは(iii)売値よりも低いかを実際に伝えることができる。本明細書では、このことを
「GEL」(より高い、等しい、より低い)と称する。
【0101】
GEL方式を拡張して、
図3F~3Hに例示するように、2つの数値範囲がオーバーラ
ップするか否かを判定することができ、これらの図では、売り手Aが、自分が希望する売
値を2つの境界内で表現し(境界間の範囲内のすべてのビットがセットされている)、入
札者は、自分の範囲の両端のビットを「オン」にセットする。
図3Fでは、これらの範囲
が一方の端でオーバラップしているのに対し、
図3Gでは、これらの範囲がオーバーラッ
プしていない。
図3Hは、入札の範囲が要求される範囲の内側にある状況を例示する。
【0102】
その代わりに、当事者の立場のASC比較後に、それぞれの主要データを開示するとい
う2つの当事者の合意が存在し得る。例えば、合意の一種は、買い手が売り手の最低額を
上回る価格価格で進んで購入する場合、当事者は直ちに、売り手の最低額と入札者の最高
額との差を互いに分け合うことに当事者が合意する、ということとすることができる。以
上の例示では、このことは、410,000ドルの価格で合意することを意味する。
【0103】
この例では、ASCのGMコンポーネント(構成要素)の他の性質が有用であり、ボブ
が自分の価格をごまかしていないことをアリスが確信することを可能にするために設立さ
れた二次的メカニズムを可能にする。GM用の暗号解読キーは大きな素因数であり、符号
化Nのp及びqである。上記の例では、ボブがアリスのビット・ストリングのコピーをN
と共に受信して、自分の符号化を可能にする。アリスが、一旦L1を知って、自分とボブ
が商取引を行うことを決めた場合、彼ら二人は、アリスがp及びqを公表することに同意
していることがある。家屋を購入する例では、このことは、アリスが最低限受け入れ可能
な売値をボブ(入札者)が直ちに見出すことを意味する。事実上、ここでは非対称性が入
れ替えられている!今度は、ボブがアリスよりも多くの情報を有する!ボブは、アリスが
商取引をしたいか否かを示すL1を知っているが、ボブはアリスの情報の主要なものも知
っており、即ち、アリスが購入価格として進んで受け入れる最低額を知っている。アリス
はL1しか知らないが、アリスは、自分が保持するストリングからは、ボブの元のストリ
ングが実際にどうであったかは分からない。しかし、ボブが、自分がスクランブルしたA
SCストリングに加えて、自分の実際の購入価格を、但しRSA方式を用いて符号化して
いれば、バランスを取り戻すことができる。即ち、ボブは、自分の(暗号化した)真の価
格を、式(8)からのN及びeと共にアリスに送信する。アリスが自分の秘密キーを示せば
、ボブはアリスが最低限受け入れ可能な価格を知るが、自分のキーを返す以外に選択肢は
なく、従ってアリスはボブが最大限受け入れ可能な価格を知ることができる。あらゆる拒
絶が不誠実になる、というのは、こうした価格が、アリスが提示する最低限の閾値を上回
ることを、ボブのASCストリングがアリスに伝えているからである。従って、ASCプ
ロトコルとPNFアルゴリズムの「ロックボックス」機能との組合せが、このように組み
合わせたプロトコルのある程度の対称性を可能にする。こうした組合せが、ASCをより
概ね対称なプロトコル「対称的に用いられる非対称で安全な比較(ASCUS:Asymmetr
ic Secure Comparison Used Symmetrically)」にする方法は、以下でさらに説明する。
【0104】
対称性は、以下に続く開示が起こりそうにない状況において重要な特徴である。背景の
節で参照した例を考え、今度は、暦年中にどちらがより多額の金を稼いでいるかという問
題にASCを適用する。1ドルを賭ける友好的な者がいて、より多額を稼ぐ人の所、ある
いは最少額を稼ぐ人の所、のいずれかに行くが、いずれの当事者も自分の実際の給料を公
表しないことの合意があるものとする。前述した(
図3A~3Eの)家屋の価格のシナリ
オに従うが、当事者が 想定される売値として今回は自分の給料を公式に符号化している
場合、L1の受信者であるアリスは、自分がボブよりも多く稼いでいるか少なく稼いでい
るかを知る。しかし、家屋の価格の変形例におけるように、彼ら二人が自分の主要なデー
タを公表しようとしない場合、アリスは自分のキーを有し、ボブはアリスに送信したロッ
クボックスのキーを有し、アリスが上記の1ドルを受け取るために嘘をついているか否か
をボブが知る方法は存在しない。対称な比較では、ボブもL1を知るが、アリスに尋ねる
必要はない。表面的には、このことを実現することは困難であるように思われる。同時に
、アリスが自分のキーで暗号化した自分のストリングをボブに送信し、ボブは、自分のキ
ーで暗号化した自分のストリングをアリスに送信し、各自がASCプロトコルに従う場合
、各自がL1に到達するはずである。さらに、暗号化してスクランブルしたビット・スト
リングを元の当事者に返送する、ASCにおける最終ステップは、PNFの「ロックボッ
クス」内にまとめることができ、即ち、アリス及びボブの両者がL1を同時に見出すこと
ができる、というのは、彼ら二人は、次に互いのキーを要求して、暗号化してスクランブ
ルしたそれぞれのビット・ストリングがどのように見えるかを見出すからである。この仮
定には2つの良くない点があることが分かっている。
【0105】
ASCUS問題点1
アリスは正直であるが、ボブは正直でないものと仮定する。ボブがアリスに送信してX
ORをとられるストリングとは異なるストリングを用いて、アリスがボブに送信するスト
リングに対して(ボブの暗号化に基づいて)XORをとることを、「悪意あるボブ」が行
うことは止めさせようがない。このことを、化学的比較に関連して想定する。恐らくは、
悪意あるボブは、自分の化合物がアリスの化合物に非常に近いことを疑っているが、アリ
スがこのことを知って欲しくない。アリスが暗号化した指紋をボブが受信すると、ボブは
自分のではなくランダムな化合物に対してXORをとり、その結果をスクランブルしてア
リスに返送する。その間に、ボブは自分の実際の化合物をアリスに送信しており、アリス
は、正直に、この化合物に対して自分の貴重な化合物のXORをとって、その結果をボブ
に返送する。アリスは、両者が非常に異なる化合物を有していると思い込んで終わるのに
対し、悪意あるボブは他のことを知っている。
【0106】
ACUSの問題点2
ASCUSの問題点1におけるように、悪意あるボブがアリスをだまして、両者が非常
に類似した化合物を有するものと信じ込ませる。ボブがアリスの化合物を知っていれば、
ボブは厳密に一致する指紋を生成して、アリスの化合物に対してXORをとって、スクラ
ンブルしたストリングをアリスに送信することができ、アリスはこのストリングを非常に
類似した化合物に由来するものと解釈し、即ち、XOR後に非常に相違が少ないものと解
釈する。しかし、悪意あるボブはアリスの主要な化合物を知らず;ボブはその後に知る(
例えば、恐らくはアリスをだまして主要なデータを開示させる)。しかし、このことは悪
意あるボブにとって問題ではない。ボブはアリスからの暗号化キーを有し、従って、ボブ
は、アリスに返送したいストリングを任意数のビットで作り上げることができ、即ち、ア
リスは、自分に返送されたストリングが実際には何物かに対してXORをとられていない
ことを知る方法がない。
【0107】
ACSUSの問題点1及び2は難しい問題であり、元々非対称でない状況にASC法を
適用する問題を反映している。賭け金にされた1ドルが存在しても、不正直な挙動の結果
は存在しないことがある。しかし、ASCを部分的にASCUSにすることができる、A
SCに加える2つの適応が存在し、即ち、これにより、悪意あるボブの本性が見出される
可能性はある程度存在する。
【0108】
ASCUSの適応1
今までは、ASCの対称な応用に基づくASCUSでは、各当事者がL1を伝える必要
はない。しかし、L1の伝達が合意の必要な部分をなしているものとする。各自が(他の
当事者から返送された、暗号化したXORストリングを受信した際に自分が計算した)L
1を他の当事者に提出しなければならないが、上述した暗号化したロックボックスによっ
て提出するものとする。こうした方法で、ASCUSの第1の問題点に応えることができ
る。ASCUSの第1の問題点では、ボブが、自分の分子を表すものとは異なる分子を選
定し、XORをとり、スクランブルしてアリスに返送している。しかし、このことはボブ
がアリスのL1を知らないことを意味する。ボブはそれを当てることしかできない。ボブ
が正直であったとして、正しい指紋を用いたならば、ボブはアリスの分子に対するL1を
知ることになるが、ボブはそれを知ることがない。もちろん、アリスが自分のL1を示せ
ば、悪意あるボブはこの番号を自分自身の番号として復唱して返送することができる。し
かし、その代わりに、これら2つの番号がロックボックスに入っていれば、ボブは、自分
が申告したL1をアリスのものにすり替えることはできない。このため、アリスは自分の
L1を計算し、ロックボックスを介してボブのL1を受信し、そしてこれらの番号が同じ
でない(なさそうな)ことを見出して、ボブが不正直であったことを知る。もちろん、悪
意あるボブがアリスのL1を当てることはあり得るが、その勝算は通常、ボブに非常に不
利であり:ボブは、自分が実際に用いた分子がアリスの未知の構造とどれだけ異なるかを
知る方法がない。
【0109】
この方式を
図5Aに例示し、この方式は4つの段階(520)、(530)、(540
)、及び(550)を構成し、これらの段階のうち最初の3つは、
図2Bに示すそれぞれ
の段階と同じである。
図5A中の最後の段階は、追加的な検証ステップである。
【0110】
図5Aでは、当事者1及び当事者2が安全な取引に入る。これらの当事者のそれぞれの
機密情報が指紋1(505)及び指紋2(506)として表現される。
図5A中の第1段
階(520)では、当事者がそれぞれの指紋を安全な方法で互いに交換する(503)、
(504)。各当事者は、両方の指紋を「同期ASC」プロセスに提出し、
図5Aでは、
当事者1及び当事者2用の同期ASCプロセスが、それぞれ(507)及び(508)で
表される。それぞれの同期ASCプロセスは、当事者1のL1-1(509)及び当事者
2のL1-2(510)を生成する。
【0111】
その間に、段階2(530)では、当事者1及び当事者2が、それぞれのRSAキー1
(515)及びRSAキー2(516)を生成し(501)、(502)、これらのキー
は互いに異なる。それぞれのキーを用いて、これらの当事者のL1を次のように暗号化す
る:当事者1は、キー1(515)を用いてL1-1(509)を暗号化して(511)
、暗号化したL1-1(514)を生成して当事者2に送信する(517)。これに対応
して、当事者2は、キー2(516)を用いてL1-2(510)を暗号化して(512
)、暗号化したL1-2を当事者1に送信する。
【0112】
段階3(540)では、2つの当事者が、秘密キー1(521)及び秘密キー2(52
4)を用いて、他の当事者から受信した、それぞれの暗号化したL1-1及びL1-2を
暗号解読し(519)、(522)、これにより、それぞれのL1-1(509)及びL
1-2(510)の元の値を取り出す。
【0113】
ここで、当事者1は、当事者2のL1-2を暗号解読した値が自分自身の元のL1-1
と同じであるか否かをチェックし(525)、これに対応して、当事者2は、当事者1の
L1-1の値が自分自身の元のL1-2と同じであるか否かをチェックする(528)。
各場合に、それぞれがチェックした値が互いに同じであれば、プロセスを停止する(52
9)、(534)。そうでなければ、いずれの当事者も、問題があるか否かを確認するこ
とができる(527)、(528)。
【0114】
ASCUSの適応2.
ASCUSの適応1は、ASCUSの問題点2に直面すれば、即ち、悪意あるボブが、
アリスがボブに送信する公開キーを完全に最初から用いて、XORをとってスクランブル
した自分のストリングであるとするものを構成する場合には、役に立たない。ここで、ボ
ブは、アリスが知覚するものを正確に知っており、この番号をロックボックス内に置いて
、でっち上げた返送用ストリングと共にアリスに送信することができる。アリスはこのス
トリングを暗号解読し、ロックボックスを解錠して、何も間違っていないものと信じる。
一見して、対称にされたASCでは、このことはアリスの信頼にとって乗り越えられない
問題であるように思われる。(アリスは、自分が見るものがボブが見るものであることに
ついて、ボブを信頼することができない。)
【0115】
しかし、指紋中でセットされたビットの数は少数である。このことは、一般に分子の指紋の場合である。さらに、2つの指紋間でいつも異なり得るビットの数は、常にビット数の半分未満であるものと仮定する。こうした状況では、アリス及びボブは実際に、L1を取り出すために互いに対して送信することができるストリングにおいて、2つの選択肢を有する。彼ら二人は、それぞれの分子構造について通常のビット・ストリングを送信することができ、あるいは、彼ら二人は自分のストリングの補数、即ち、すべての0が1にされ、すべての1が0にされたストリング
を送信することができる。ここで、XOR演算によって明らかにしたすべての相違を同値として記録し、すべての同値を相違にする。ビット・ストリングが長さKであり、2つのストリング間にh個(箇所)の相違が存在する場合、一方のストリングをこの方法で「反転」させれば、H=K-h個の相違が存在する。両方のストリングを反転させれば、相違の個数は再びhに等しくなる。h<K/2という上記の条件下では、アリスまたはボブが自分のストリングに施す反転の入れ替えがどうであれ、彼ら二人は真のhを常に解明することができる。即ち、次式のようになる:
【数5】
従って、セットされたビットの見かけの数がK/2より大きければ、実際の数はK-hである。
【0116】
従って、L1についての情報を収集する意味では、アリスまたはボブが自分の真のスト
リングを送信するか自分のストリングの補数を送信するかに違いはない。しかし、ボブが
偽のXORストリングをでっち上げる場合には、違いが生じる。ボブは、アリスがK/2
よりも大きいビット数を期待しているかK/2よりも小さいビット数を期待しているかを
知る方法がない。このことは、ボブがアクセスできない情報に依存する。ボブは、自分の
L1から知覚しているビット数をアリスに送信して初めて、このビット数を知ることがで
きる。例として、ビット・ストリング長が20であり、正しいL1は2であるが、悪意あ
るボブは、5ビットが1にセットされた、即ち5であるL1に対応する偽のXORストリ
ングをアリスに送信しようとしている。悪意あるボブは、アリスが自分に返送したXOR
ストリング中に1にセットされた5つのビットが見られることをアリスに報告しなければ
ならない、というのは、これが、アリスが自分のストリング中に見る(ビット)数であり
、ボブがそのように作り上げているからである!しかし、アリスは、実際には、暗号化し
たストリングを反転してボブに送信しており、アリスは、5つではなく15個のビットが
見えるものと期待しているはずである。悪意あるボブは誤った数を伝えており、しかも自
分の報告を変更することはできない。アリスがストリングをランダムに反転させていれば
、悪意あるボブが見破られる50%の可能性が常に存在する。
【0117】
従って、こうしたACSと何らかのPNFロックボックス適応との組合せは、ビット密
度が50%未満であることが分かっている場合、不正を少なくとも50%の効率で発見す
ることができるASCUSのバージョンを作り上げることができる。しかし、一見すれば
、ASCUSの悪用の2形態、即ち、他の当事者が暗号化したストリングに対して異なる
ストリングを用いてXORをとること、あるいは、偽の暗号化したXORストリングを生
成することに対する保護は、同等に効果的でないように思われる。
【0118】
前者の場合には、悪意あるボブは、自分の代わりのビット・ストリングとアリスからの
ストリングとの間でいくつのビットが異なるかを当てなければならない。ボブは、こうし
た相違の予備知識を有さないので、このことは困難な作業となり得る。例えば、代表的な
相違が、均等に、1個(箇所)から100個までの範囲に及ぶ場合、ボブが見破られない
可能性は1/100しかない。この値は、ボブが偽のXORストリングを構成する場合の
1/2のリスクよりもずっと小さい。しかし、これら2つの状況間には1つの違いがある
。彼らが自分達のストリングを再検査することを要求するものとする。悪意あるボブがあ
るXORストリングを構成していたならば、ボブは、初回の検査より前と同じ状況のまま
である。上記の例では、ボブは、5ビットがセットされたストリングを構成するか15ビ
ットがセットされたストリングを構成するかを決めなければならず、ボブは、そのどちら
を受信することをアリスが期待しているかを知ることができず、回数の50%は誤る。即
ち、検査毎に、悪意あるボブが見破られる1/2の確率が独立して存在する。
【0119】
この状況は、導入部で言及したゼロ知識証明に非常に特有である。例えば、古典的なZ
KPの例を
図4A~4Cに示す。ここでは、その思想は、記号「A」及び「B」を付けた
2つの開口を有するループ化された通路(405)が存在し、通路のいずれかの端(40
1)、(403)にも1つの開口が存在するが、通路(405)は魔法のドア(407)
によって内部が閉鎖されており、魔法のドアを開けるためには秘密のパスワードが必要で
ある。この通路に入って正しい端(AまたはB)からうまく出ることができるための作業
は、一切れの紙に書き留められた命令に基づく。人は、基本的には、出るための秘密の命
令を持って入る。人は、このトンネルの内部に入るまでは、その命令を開封しない。例え
ば、ボブがドア(407)に対するパスワードを知りたいと主張する。アリスは、「A」
または「B」を一切れの紙に書き留め、封筒に入れ封印してボブに手渡す。次に、アリス
は、ボブが一方の出入り口(401)または他方の出入り口(403)の中に姿を消すこ
とを見届ける。ボブが見えなくなると、ボブは封筒を開封することを許され、封筒の中身
は、ボブが通って戻る必要がある通路をボブに伝える。ボブがAの側に行っており、アリ
スの書置きが「A」であれば、ボブは単に向き直って戻ってくる。しかし、アリスの書置
きが「B」であり、ボブが「A」を通って入っていれば、ボブは、パスワードを知ってい
れば、書置きに従うことしかできない。ボブがパスワードを知っていなければ、ボブがア
リスの要求に従う可能性は50%であるが、ボブがパスワードを知っていれば、その可能
性は100%である。このプロセスには確率的要素が存在する。この手順を1回繰り返す
場合、ボブがパスワードを知っていなければ、ボブが2回とも書置きに従う可能性は25
%に低下し、従って、これに続く例では12.5%に低下し、即ち、毎回書置きに従う確
率は1/2
Nであり、ここにNは試行の回数である。ボブがアリスからの(ランダムな)
命令に従い続ければ、ボブがパスワードを知っていることを、ボブが決してアリスに示さ
なくても、アリスはますます確信することができる。
【0120】
しかし、
図4に関して説明したZKPと、本発明におけるASCの状況とには、重要な
相違がある。ボブがアリスによって「テストされる」毎に、ボブは、アリスのビット・ス
トリングに対して選定するビット・ストリングを調整することにもなり;即ち、ボブは実
際に情報を得る。このことは不可避である、というのは、ASCはゼロ知識のテストでは
ないからである。「類似性」を知ることの概念は、少なくともいくらかの知識を暗に意味
する。例えば、ボブはまず全部0のビット・ストリングを用いることができ:このことは
、アリスのストリング中にいくつのビットがセットされているかをボブに伝える。次に、
ボブは、体系的に、一度に1つのビットを「オン」にして、アリスの指紋中のどのビット
がセットされているかを特定することができる。基本的に、ボブは、アリスが要求するテ
スト毎に1ビットの情報を得る。
【0121】
しかし、悪意あるボブは、偽のXORストリングの方策を進めておらず、その代わりに
、単に異なる分子の指紋に置き換えているものとする。ボブが、初回に、アリスが自分の
L1中に見るビット数を正しく当てていれば、ボブは、今後のテストのために、単に、こ
の数を常に報告することを知る。その間に、各テストは、アリスにとっての安全性を何ら
加えることなしに、アリスのストリングの匿名性を徐々に、一度に1ビットずつそぎ落と
していく。換言すれば、相補性のテストは適用するのは簡単であるが、限界がある。しか
し、これらの例は、ASCUSを不正直さに対してよりロバストにするためのより良い方
法を示唆している。核となる見解は、PNFロックボックスを介してアリスに報告するべ
きことに対するボブの不確実性を低減するもののいずれも、安全性を増加させる、という
ことである。ボブが、暗号化してXORをとるステップにおいて異なる指紋を用いれば、
ボブはアリスが見るものの知識を失う。ボブが、アリスが見るものを知っていると確信し
ていれば、アリスがランダムに適用したビット・ストリングの反転がこの確実性を取り去
る。以下の方法「ランダム・ビット・パディング(付加)」(RBP:random bit paddi
ng)が両見解に基づいて構築される。
【0122】
ASCUS及びランダム・ビット・パディング
アリス及びボブがストリングを比較するプロセスを開始する前に、彼ら二人は長さMの
ビット・ストリングをランダムに生成する手順を決めるものとする。このことは、ビット
をランダムにセットすることに合意することによって、あるいは、この長さの既存のビッ
ト・ストリングの集合からランダムに選択することによって行うことができる。彼ら二人
は、各自がこうしたランダムなストリングを秘密裏に生成して、このストリングを、彼ら
二人が比較したい指紋に付加することに合意している。彼ら二人は、さらに、自分の指紋
の2つのバージョンを作成することに合意し、各バージョンは、異なるこの種のランダム
なストリングを有し:一方のバージョンは、他方の当事者が提供したキーでGM暗号化さ
れて検査用に他者に送信され、他方のバージョンは、自分自身のGMキーで暗号化され、
他者が暗号化したストリングに対してローカルにXORをとられている。実際に、彼ら二
人は共に、ASCUSの問題点1の悪事、即ち:異なる公開ストリング及び秘密ストリン
グの使用を犯すことに合意している。しかし、各自は、どのようなランダム・ストリング
を生成したかも、同じPNFロックボックス内に記録しており、このロックボックスは、
後に、L1についての彼ら二人の主張を含む。ここでの予想は、これらのL1の値が同じ
ではないことであるはずである、ということが直ちにわかる。このことが、ASCUSの
問題点1を理解する方法であり、即ち、一方の側が同じ公開ストリング及び秘密ストリン
グを使用しなければ、ボブまたはアリスは、両方のL1の値を知ることを保証されないか
らである。しかし、ランダム・ストリングを記録しているので、これらを入手すれば、ア
リス及びボブは共にバックトラックして(逆に辿って)、互いのL1の値から彼ら二人の
ランダム・ストリングを減じたものが実際に確かに一致しているか否かを確かめることが
できる。両者が正直であったならば、このことはその通りになるはずであるが、こうした
ランダム・ストリングの使用は、不正直な挙動にとっては関心事の実現となる。この方式
を
図5Bに例示し、その簡略化した概要を
図5Cに示す。
【0123】
図5B、5C中の方式の4つの段階は次の通りである:第1段階(560)では、当事
者1及び当事者2がそれぞれのRSAキー及びランダム・ビット・パディング(RBP)
を生成し、その後者を暗号化してデジタル・ロックボックス内で他の当事者と共有し、即
ち、このロックボックスは後になるまで開くことはできない。第2段階(570)では、
当事者1及び当事者2が(自分自身のRBPを用いて)それぞれのパディング付き指紋を
作成し、これらの指紋をASCを介して共有して、各当事者がそれぞれのL1を計算する
ことを可能にし、次に、これらのL1を暗号化して、第1段階でのランダム・ビット・パ
ディングと同じ方法で、即ち、デジタル・ロックボックス内に共有する。第3段階(58
0)では、相手の当事者のランダム・ビット・パディング及びL1を各当事者が暗号解読
して(デジタル・ロックボックスを開いて)、各当事者が観測したL1と比較し、これら
のL1は受信したランダム・ビット・パディングに応じて調整されている。最終段階(5
90)は検証であり:これらのL1どうしが実際に一致しているか否かを確かめるための
チェックである。
【0124】
図5Bに示す実施形態では、当事者1及び当事者2を、それぞれ「アリス」及び「ボブ
」に置き換える。
【0125】
一般的な意味で、
図5Bでは、取引を行う当事者、アリス及びボブが、それぞれ指紋A
(561)及び指紋B(564)を有し、それぞれがRSAキーを生成し(551)、(
552)、これらのRSAキーは、それぞれ、秘密キーA(533a)と公開キーA(5
54a)、及び秘密キーB(553b)と公開キーB(554b)を与える。2つの当事
者間で公開キーAとBを交換する(548)(図面中の「交換1」)。
【0126】
アリス及びボブは、それぞれ、2組のランダム・ビット・パディングも生成しており、
即ち:ランダム・ビット・パディングA1(557-1)、ビット・パディングA2(5
57-2)、ビット・パディングB1(558-1)、及びビット・パディングB2(5
58-2)である。それぞれの当事者は、それぞれの公開キーA(554a)及び公開キ
ーB(554b)を用いて、これらのRBPを暗号化して(555)、(556)、暗号
化したランダム・ビット・パディングA1(562-1)、暗号化したランダム・ビット
・パディングA2(562-2)、暗号化したランダム・ビット・パディングB1(55
9-1)、及び暗号化したランダム・ビット・パディングB2(559-1)を作成し、
これらの各々を他の当事者に送信する(549)(図面中の「交換2」)。
【0127】
第2段階(570)では(「XFPはパディング付き指紋を表す」)アリスは自分の指
紋A(561)を受け取り、ランダム・ビット・パディングA1(557-1)及びラン
ダム・ビット・パディングA2(557-2)のそれぞれと併合して、パディング付き指
紋A1(565-1)及びパディング付き指紋A2(565-2)を作成する。ボブは、
指紋B(564)及びランダム・ビット・パディングB1(558-1)とランダム・ビ
ット・パディングB2(558-2)で同じことを行って、それぞれのパディング付き指
紋B1(568-1)及びパディング付き指紋B2(568-2)を作成する。
【0128】
ここで、ボブは、パディング付き指紋A1及びパディング付き指紋B1にASC(57
2)を適用して、「L1B」(582)で表されるL1の値を作成する。
【0129】
これに対応して、アリスは、パディング付き指紋A2及びB2にASC(567)を適
用することにより、L1A(577)を作成する。
【0130】
これら2つのL1(577)及び(584)は必ずしも互いに同じではない、というの
は、これらを形成した元の指紋は、異なるビット・ストリングをパディングされているこ
とが多いからである。
【0131】
第2段階の終わりに、2つの当事者はこれらのL1の値を交換する(546)(図面中の「交換3」)。図面中には示していないが、これらの当事者は、例えば公開キーA及びBで暗号化したL1の暗号化値を交換することができる。
【0132】
第3段階では、アリスが秘密キー(553a)をボブに送信する(545)。これに対
応して、ボブは秘密キー(576)をアリスに送信する(554)(図面中の「交換4」
)。
【0133】
次に、アリスは、暗号化したランダム・ビット・パディングB1(559-1)及びB
2(559-2)を暗号解読する(571)に当たり秘密キーBを使用し、これによりラ
ンダム・ビット・パディングB1(558-1)及びB2(558-2)を取り出す。
【0134】
これに対応して、ボブは、暗号化したランダム・ビット・パディングA1(562-1
)及びA2(562-2)を暗号解読する(578)に当たり秘密キーAを使用し、これ
によりランダム・ビット・パディングA1(557-1)及びB2(557-2)を取り
出す。
【0135】
次に、アリスは、すべてのランダム・ビット・パターンについての自分の知識を用いて
、2つのL1(
図5A参照)を調整して(573)2つの別個のL1を作成し、これらは
L1A’(579)及びL1B’(584)で表される。これら2つの値を検査して、こ
れらが互いに同じであるか否かを確かめ、同じであればプロセスを停止し(585);そ
うでなければ問題をフラグで知らせる(583)。(段階2でL1を暗号化していれば、
この調整の前にこれらのL1を暗号解読する。)
【0136】
同様に、ボブは同じ2つのL1を調整して、2つの別個のL1(582)、(584)
を作成する。これら2つを検査して、これらが互いに同じであるか否かを確かめ(586
)、同じであればプロセスを停止し(592);そうでなければ問題をフラグで知らせる
(588)。
【0137】
ここで、ランダム・ストリングの使用を含む2つのシナリオを考える。
【0138】
シナリオ1:悪意あるボブが、アリスに送信する公開の分子とは異なる分子のビット・
ストリングを自分の秘密ストリングとして用いる。RBPなしでは、悪意あるボブは、ア
リスの分子に代わる自分の分子のL1を当てることを強いられる。ここではボブがいくら
かの助けを受ける、というのは、ボブが自分の実際の分子に対して推し量るL1が、アリ
スが見るL1についていくらかの情報を提供し得るからであり、即ち、ボブの公開ストリ
ングと秘密ストリングとが、異なってはいるが比較的類似している場合である。ここでの
RBPの主要な特徴は、悪意あるボブは、自分のバージョンのL1を記録した後まで、即
ち、RBPが示された後まで、実際のL1を知らないということである。即ち、ボブは真
のヒントを全く与えられない、というのはランダム要素が挿入されているからである。ア
リスが繰り返しの推し量り、即ち、ASCUSの問題点2を検出するに当たり有用なもの
、即ち、偽の返送ストリングを求めれば、この利点は度合いを増す。換言すれば、通常、
ボブは、各回の後に、アリスのストリングについての自分の知識を改善することができる
が、ここでは、RBPの値を複数回の検査の終わりまで保持しておき、実際の知識の蓄積
を防止することができる。
【0139】
シナリオ2:悪意あるボブが、アリスに返送するXORストリングを、全体的に、ある
いはランダム部分に属するサブストリングを付加して、のいずれかで偽る。前者の場合に
は、ボブは、アリスが記録する初期のL1を正確に知り、後者の場合には、ボブは、RB
Pが公表されアリスがこのRBPを自分のL1から減じた際に、ボブはアリスが見出す値
を知る。上記では、アリスがビット・ストリング反転を用いて、ボブが偽のXORストリ
ングを構成しているか否かを50%の成功率で検査することができる方法を説明しており
、この検査は反復することができるが、ボブがアリスのストリングについて一層知る可能
性があるという代償を払う。ここではこの状況を考える。ボブがどちらの選択肢を選定す
るかにかかわらず、ボブは、アリスに報告するべきL1を知らない、というのは、ボブは
自分のXORストリング中にいくつのランダムビットがあるかを知らないからである。問
題は:アリスのXORストリングについてのボブの知識はもはや役に立たず:アリスは、
ボブがそれを明確にすることは期待していない、ということにある、というのは、両者の
ストリングにはランダム要素が付いているからである。アリスは、これらのランダム要素
を減じた後に数どうしが一致することを期待しており、このランダム要素はボブが知らな
い。以下は単純な例であり、各数値は表1からのものである。
【0140】
【0141】
表1中の数値は、ボブ及びアリスが暗号解読することができるXORストリングの各部
分中で1にセットされたビット数を表す。もちろん、これらのストリングはスクランブル
されており、従って、彼ら二人はその分解を見ることはできない。しかし、ロックボック
スを開けた後には、彼ら二人は、自分達が考えたRBP要素がわかる。
【0142】
悪意あるボブが、アリスのビット・ストリング全体を合成するものと仮定する。アリス
は、ロックボックスを開くと、「オン」になった8つのビットが存在することがわかり、
アリスは、これらのビットのうちの3つがRBPに由来していることがわかり:この数は
、ボブがそれより早く操作するか知ることができる数ではない。従って、アリスは、正し
いL1は5であるものと確信する。アリスは、ボブのXORストリング中のRBPより、
ボブが5ビットを有していたはずであることもわかり;これもボブがそれより早く操作す
るか知ることができる数ではない。従ってアリスは、ボブが10のL1を報告するはずで
あるものと推論する。ここで、悪意あるボブがアリスのストリングを構成するものとすれ
ば、ボブは、アリスが8ビットを見ることを知り、ボブは、自分自身の7ビットが存在す
ることはわかるが、ボブがいずれかのRBP数を知らないものとすれば、アリスを満足さ
せる10のL1を報告するべきことを、ボブはどのようにして知るであろうか?アリスが
見るビットの数をボブが知っている際でも、ボブは、自分の報告において、まだ知ってい
ない2つの数の差によってこの数を調整する必要がある。なお、ここで、2つの異なるR
BPを有することがどれほど必要であろうか。これらのRBPからのビット数が同じであ
ったならば、アリスは、ボブが報告したL1が自分のL1と同じであることを期待するだ
けであり、ボブがアリスのストリング全体を偽れば、これはボブが容易に提供することが
できる何らかのものである。ボブが、どのような偽のL1をアリスに提出するかを知るこ
とを防止するものは、これら2つのRBP間の差の不確定性である。この手順の実施例を
図6A及び6Bに示す。
【0143】
図6Aでは、量L1
B-L1
RB(601)及びL1
A-L1
RA(603)を計算し、ここ
にL1
A及びL1
Bはストリングの全体部分を参照し、L1
RA及びL1
RBはストリングのラ
ンダムビット部分である。これらの量が互いに同じであれば(605)、プロセスを停止
する(607)。
【0144】
図6Bでは、量L1
B-L1
RB(602)及びL1
A-L1
RA(604)を計算する。こ
れらが互いに同じでなければ(606)、プロセスは問題があったことを報告する(60
8)。
【0145】
RBPの追加的な複雑性を各ビット・ストリングに含めることの効果は、ボブが有する
、アリスを誤った方向に導くための2つの方法、即ち(1)アリスのビット・ストリングと
のXORをとるものとは異なるビット・ストリングを用いて、(2)ボブが返送するビット
・ストリングを完全に偽ることを、アリスが見破ることを同じくらい容易にする、という
ことである。実際に、ボブにとっての道筋(1)での困難さは、彼ら二人の2つのビット・
ストリングの実際の類似性と、アリスのビット・ストリング-ボブが自分のビット・スト
リングを置き換えたビット・ストリング間の類似性との相違を、ボブがうまく当てなけれ
ばならないことである。道筋(2)では、ボブは、彼ら二人のビット・ストリングの実際の
類似性と、ボブが構成する偽のビット・ストリング中でボブが「オン」にセットするビッ
ト数との相違を、ボブがうまく当てなければならない。ボブは、彼ら二人の2つの真のビ
ット・ストリングの実際の類似性についての予備知識を必要とし、これはボブが事前に知
ることができないことである(ボブが既にこれを知っていたならば、ボブはこれを見出す
ための口実を口にする必要はない。)ボブの不正直さが見つかる可能性は、上記いずれか
の相違を推定することの困難さに直接比例する。アリスが保有するものをボブが当てるこ
とが先験的に困難である場合には、不正の確率は低くなる。ボブがうまく当てることがで
きる場合、ボブがアリスをだます可能性は増加する。しかし、両者が同じ先験的な期待を
有する場合、ボブはアリスを大いにだますことはできず、即ち、両者が自分達のストリン
グの類似性について妥当な期待を有する場合、アリスは、自分達のストリングが非常に異
なることを示すボブによってだまされる可能性は低い。従って、ボブがアリスを誤った方
向に導く可能性がより高い領域内であっても、ASCUS手順からの結果をアリスが少な
くとも疑う可能性もより高くなる。
【0146】
一般に、当事者が情報を安全に、あるいは秘密に保持したいことがある理由は多数存在
する。これは、時々ではあるが、機密保持違反に至る商業的因果関係が存在するからであ
ることが多く、人間の感情に起因して、人間は特定の情報についてはプライバシーを保ち
たくなる。例えば、入札のプロセスを考える。一方の側が、他者が所有するものに対して
入札する。売却されるアイテムへの感情的愛着がなければ、入札を開示するのに不都合な
点は存在しない。しかし、そうでないことが多い。売却されるアイテムが事業であり、所
有者が価値あるものを築き上げるために何年も尽力してきたものとし、しかも入札が「低
く見積もられた」付け値であるものとする。所有者が拒否し得るだけでなく、この付け値
が「侮辱的」に見えて、当事者間の将来の取引に摩擦を生じさせることがある。こうした
状況では、「仕事上だけのこと」という格言に訴えるのが一般的であるが、それが一人の
人物の生涯の仕事であった際には、「仕事上だけのこと」では済まされない。
【0147】
ASCUSは、両方の側に、関係を損なう恐れなしにやり取りする機会を与える。ベン
チャー・コミュニティー(冒険的事業団体)における共通のルール、即ち「トップ(Topp
)」ルールは、2つの側が価格において2という因数の範囲内であれば、取引に至り得る
が、そうでなければ、先に進めない方がよい、というものである。所有者が自分の価格を
考え出し、それを2で割ったものを自分の「最低限受け入れ可能な入札」として提示し、
買い手は自分が購入を考える価格を提示すれば、ASCUSは、このルールのどちらの側
に両者が該当するかを、両方の側が知ることを可能にする。価格がその範囲内でなければ
、両者が期待を裏切られ得るが、いずれかの側が動揺するような単一の数字は存在しない
。価格がその範囲内であれば、両方の側が真の入札を提出することが感情的により安全に
なり、所有者が求める最低額よりも多額を買い手が進んで支払う、という状況が存在する
か否かを確かめ、この時点で、詳細な交渉無しに取引が均等になりやすい。実際に、この
段階で、参加者は、さらなる交渉なしに自動的に取引に合意する機会を有する:というの
は、参加者は共に入札及び要求価格を、但し暗号化形式で有し、参加者がしなければなら
ないことは、自分のGM暗号化キーを交換することだけである。ASCUSプロセスにお
いて公開キーを交換することによって、参加者は自動的に「ロックボックス」を構成して
おり、即ち、既に送信したものを変更する方法は存在しない。このため、興味深い可能性
は、入札が要求価格よりも高額である場合、入札と要求価格との差を分け合うことへの事
前合意を確立することである。両方の側が満足であるはずであり:所有者は進んで売るよ
りも多額を得て、買い手は自分が進んで支払うよりも少額を支払う。このことは最高相互
満足感(MMH:Maximum Mutual Happiness)の原理と称され;このことは以下の例で、
競売及び株式交換を考える際に再検討する。
【0148】
なお、取引決定状況では、範囲比較用のGELプロセスを用いることもでき、即ち、両
方の側が、自分が考えることができる価格範囲を有する場合、GELプロセスは、これら
の範囲が少しでもオーバーラップするか否かを示す。考慮に値する他の詳細は、ビット増
分のプロセスである、というのは、ビット増分はビット・ストリングの長さを決めるから
である。増分は1ドル、10ドル、100ドル、あるいはより大きい数値であるべきか?
明らかに、このことは購入価格に依存する。何千ドルもの購入価格中の1ドルが重要であ
る可能性は低い;百万ドルの取引における100ドルの増分も同様である。購入価格に合
った自然な尺度及び「問題となる」増分が存在する。こうした増分は売り手、買い手が設
定するか、あるいは交渉することができるが、大部分は前者による。一般的慣行では、一
旦、増分を決定すると上限も決定しなければならず、例えば、増分が1ドルである場合、
下限が1ドルであれば最高価格はビット数に等しい。例えば、十分なダイナミックレンジ
(大小範囲)を入札プロセスに与えるのに十分なビット数が存在するように、このことを
事前に決定することができる。標準的な数は、ビット数及び増分が販売価格についての情
報を明かさないように選定することができ、但し非常に大きな範囲内の販売価格を除く。
実際的であると思われる代表的なビット・ストリング長は、100、128、200、2
56、500、512、1000、及び1024である。
【0149】
実現の詳細
本明細書中に説明する方法は1つ以上のコンピュータシステム上で実現することが好ましく、こうした実現は当業者の能力の範囲内である。分子の指紋を表現すること、公開、秘密キーの生成、暗号化及び暗号解読演算のような、ビット・ストリング操作用のコンピュータ機能は、当業者のプログラマーが開発することができる。これらの機能は多種多様なプログラミング言語によって実現することができ、これらのプログラミング言語は、一部の場合には、混合実現を含む(即ち、互いに伝達し合うように適切に構成された1つ以上のコンピュータ言語によって書かれた別個な部分に頼る)。例えば、これらの機能、並びにあらゆる必要なスクリプト記述機能は、C、C++、Java(登録商標)、JavaScript(登録商標)、ビジュアルベーシック(VisualBasic:登録商標)、Tcl/Tk(登録商標)、Python(ピュトン:登録商標)、Perl(パール:登録商標)、C#のようなネット言語、及び他の等価な言語でプログラムすることができる。こうした技術の能力は、基本機能にアクセスすることの実現または制御に使用する基になる言語によって制限されず、こうした言語に依存しない。その代わりに、こうした機能は、ビット・ストリング及び指紋を操作するための以前に開発された機能に頼るツールキットのような、より高位の機能により実現することができる。
【0150】
2つ以上の当事者が別個に独立して、暗号化演算または指紋の操作のような計算を実行
する場合、種々の当事者によって操作される種々のコンピュータシステムの能力が、ある
いは各当事者がプログラムした方法の正確な細部が互いに同一である必要はないとしても
、各当事者は独立して、本明細書中に説明する能力を有するコンピュータシステムにアク
セスするものと仮定するべきである。
【0151】
本発明における技術は、今日使用されているコンピュータのオペレーティングシステム
のいずれで実行されるようにも、並びに本明細書中に挙げていない他のもので実行される
ようにも開発することができる。ここれらのオペレーティングシステムは:Window
s(ウィンドウズ:登録商標)(マイクロソフト社から入手可能なWindows XP、Windows
95、Windows 2000、Windows Vista、Windows 7、Windows 8(Windows 8.1として知られて
いる種々のアップデート、等を含む)、Windows 10を含む);Apple iOS(登録
商標)(iOS3、iOS4、iOS5、iOS6、iOS7、iOS8のような改良版、及びそれらの中間アップ
デートを含む);アップル社のMacintosh(マッキントッシュ:登録商標)オペ
レーティングシステム、例えばOS9、OS10.x、OS X(”Leopard”、”Snow Leopard”、”
Mountain Lion”、”Lion”、”Tiger”、”Panther”、”Jaguar”、”Puma”、”Cheet
ah”、”Mavericks”、及び”Yosemite”として知られている改良版を含む);UNIX
(ユニックス:登録商標)オペレーティングシステム(例えばBerkeley Standard versio
n(バークレー標準版))及びIRIX(登録商標)、ULTRIX(登録商標)、及び
AIX(登録商標)のような改良版;及びLinux(リナックス:登録商標)オペレー
ティングシステム(例えば、Red Hat Computing社より入手可能)を含むが、これらに限
定されない。
【0152】
所定の実現が、順序変更操作を適用する機能、ビット・ストリングのオーバーラップ及
びスクランブルを計算する機能、公開キー及び秘密キーを計算する機能、及びデータを暗
号化及び暗号解読する機能のような既に実現されている他のソフトウェア・コンポーネン
トに頼る範囲内で、これらの機能は当業者のプログラマーにとってアクセス可能であるも
のと仮定することができる。
【0153】
さらに、本明細書中に説明する、分子の指紋を匿名化する方法を、適切にプログラムさ
れたコンピュータに実行させる実行可能な命令は、あらゆる適切なコンピュータ可読なフ
ォーマットで記憶して伝達することができることは明らかである。このことは、例えばコ
ンピュータのUSB(Universal Serial Bus:ユニバーサル・シリアル・バス)ポートに
接続することができる大容量の「ハード(ディスク)ドライブ」または「ペン・ドライブ
」のような携帯型可読ドライブ(駆動装置)、コンピュータの内蔵ドライブ、及びCD-
ROMまたは光ディスクを含むことができるが、それらに限定されない。さらに、実行可
能な命令は、携帯型コンピュータ可読媒体上に記憶し、こうした有形の形態で購入者また
はユーザに送り届けることができるが、実行可能な命令は、リモート位置から例えばイン
ターネット接続を通してユーザのコンピュータにダウンロードすることができることは明
らかであり、インターネット接続は部分的にWiFiのような無線技術に頼ることができ
る。こうした技術の態様は、実行可能な命令が信号または他の無形の具体化の形態をとる
ことを暗に意味しない。実行可能な命令は、「仮想マシン」の実現の一部分として実行す
ることもできる。
【0154】
計算装置
本明細書中に説明する方法を実施するのに適した好適な汎用コンピュータ装置(900
)を概略的に
図9に示す。こうしたシステムは、本明細書中に説明するように情報を安全
に共有したい2つ以上の当事者のうちの1つ以上の当事者のいずれも使用することができ
る。
【0155】
コンピュータシステム(900)は、少なくとも1つのデータ処理装置(CPU:cent
ral processing unit)(922)、メモリ(938)、ユーザ・インタフェース(92
4)、1つ以上のディスク(934)、及びネットワーク上で他のコンピュータと通信す
るための少なくとも1つのネットワーク接続または他の通信インタフェースを具え、上記
メモリは、一般に高速なランダムアクセスメモリ並びに(1つ以上の磁気ディスクドライ
ブのような)不揮発性メモリを共に含み、上記ネットワーク接続または通信インタフェー
スは、インターネット(960)、並びに高速ネットワークケーブルまたは無線接続経由
のような他の装置を含む。ネットワーク接続(936)は、(ビット・ストリングとして
符号化されたデータのような)データを一社が他社と共有するために用いることができ、
他社は、コンピュータシステム(990)と同様な能力を有するコンピュータシステム(
990)(図示せず)を有し、共有するデータをコンピュータ(900)から受信するこ
とができる。コンピュータ(900)とインターネット(960)との間にはファイアウ
ォール(952)が随意的に存在することができる。少なくとも、CPU(922)、メ
モリ(938)、ユーザ・インタフェース(924)、ディスク(934)、及びネット
ワーク・インタフェース(936)は、少なくとも1つの通信バス(933)を通して互
いに通信する。
【0156】
メモリ(938)は手順及びデータを記憶し、一般に次のものの一部または全部を含む
:基本的なシステムサービスを提供するためのオペレーティングシステム(940);パ
ーサー(構文解析)ルーチン(950)のような1つ以上のアプリケーション・プログラ
ム、コンパイラ(
図9には図示せず)、ファイルシステム(942)、分子構造または「
指紋」のようなデータを記憶する1つ以上のデータベース(944)、及び随意的に、暗
号化及び暗号解読演算のような高度な数学演算を実行する浮動小数点コプロセッサを必要
な所に含む。本発明の技術の方法は、1つ以上のダイナミックリンクされるライブラリに
含まれる機能を利用することもでき、これらのライブラリは
図9に図示しないが、メモリ
(938)にもディスク(934)にも記憶することができる。
【0157】
図9に、メモリ(938)に記憶されているものとして示すデータベース及び他のルー
チンは、代わりに、随意的にディスク(934)に記憶することができ、データベース内
のデータの量は、メモリ(938)に効率的に記憶するには大量過ぎる。データベースは
、その代わりに、あるいは部分的に1つ以上のリモート・コンピュータ上に記憶すること
もでき、こうしたリモート・コンピュータは、本明細書中の「例」で説明する方法により
、ネットワーク・インタフェース(936)を通してコンピュータシステム(900)と
通信することができる。
【0158】
メモリ(938)には、少なくとも次のことを行うための命令(946)が符号化され
ている:暗号化及び暗号解読演算を実行すること;データベース内に電子的に記憶された
分子のビット・ストリング表現のような指紋またはビット・ストリングを操作すること;
及び指紋の対(つい)に対して類似性のスコア(得点)またはXOR演算値を計算するこ
と。これらの命令は、所望に応じて、乱数を発生すること、及びデータベース内に記憶さ
れた分子構造の指紋またはビット・ストリング表現を計算すること、のうちの1つ以上を
実行するためにプログラムされた命令をさらに含むことができる。多数の具体例では、指
紋自体は、暗号化または暗号解読を実行するコンピュータ(900)上では計算されず、
異なるコンピュータ(図示せず)上で計算されて、例えばネットワーク・インタフェース
(936)を通してコンピュータ(900)上に転送される。乱数または擬似乱数を発生
する場合には、プロセスは、数学的な公式またはプロセスだけに基づかないことが好まし
い。乱数、あるいは乱数発生方法の「種」の選定は、使用中のコンピュータ装置内の電位
のような現実世界における変動量から得ることが好ましい。
【0159】
本明細書中の技術の種々の実現は、特に、複雑性が変化する1つ以上のコンピュータ装
置(算術を実行するようにプログラムすることができるマシン)上で実行されるものと考
えることができ、これらのコンピュータ装置は、限定なしに、ワークステーション、PC
(personal computer:パーソナル・コンピュータ)、ラップトップ・コンピュータ、ノ
ート型コンピュータ、タブレット、ネットブック(廉価なノート型コンピュータ)、及び
他のモバイル(携帯)コンピュータ装置を含み、これらのモバイル・コンピュータ装置は
、セルラ電話機、携帯電話機、及びパーソナル・デジタル・アシスタント(個人用形態情
報端末)を含む。本明細書中の方法は、さらに、量子コンピュータ上での実行を可能にす
ることができる。上記コンピュータ装置は、適切に構成されたプロセッサを有することが
でき、こうしたプロセッサは、限定なしに、本明細書中の方法を実行するソフトウェアを
実行するためのグラフィック・プロセッサまたは数値演算コプロセッサを含む。これに加
えて、特定の計算機能を2つ以上のコンピュータにわたって分散させ、これにより、例え
ば、1つのコンピュータが入力及び命令を受け入れ、第2または追加的なコンピュータが
、これらの命令をネットワーク接続を通して受信して、リモート位置で処理を実行して、
随意的に結果または出力を第1のコンピュータに返送する。従って、本明細書中の方法は
、特に、クラウド・コンピュータ環境内で実行可能であり、クラウド・コンピュータ環境
では、データが、一時的または恒久的に、データ記憶装置の1つ以上のホスト・アレイ上
に安全な方法で記憶され、これにより、データは特定のアカウント保有者にしか見えない
。クラウド・コンピュータ環境では、リモート・プロセッサのアレイの処理能力を利用し
て、クラウド環境内に記憶されたデータに対する操作を実行することもでき、これにより
、こうした操作の結果は、特定のアカウント保有者及び/または操作にアクセスする許可
を与えた者にしか知られない。
【0160】
コンピュータ装置の制御は、ユーザ・インタフェース(924)を介することができ、
ユーザ・インタフェースは、ディスプレイ、マウス、キーボード、及び/または
図9に図
示していない他のアイテム、あるいはユーザ・インタフェースの入力装置の任意のサブコ
ンビネーション(副次的組合せ)または組合せを含むことができ、これらの他のアイテム
は、例えばトラックパッド、トラックボール、タッチスクリーン、スタイラス(入力ペン
)、音声認識装置、ジェスチャー認識技術、人間の指紋読み取り器、または例えばユーザ
の眼の動きに基づく他の入力装置である。
【0161】
一実施形態では、入札をQR(Quick Response)コードで表現して、例えば、携帯電話
インタフェース上に表示することができ;こうしたコードは、互いの装置のスクリーンを
光学的にスキャンすることによって個人間で往復して交換することができる。このように
して、通信の手段、例えば無線、インターネット、近赤外通信の妥協を回避することがで
きる。
【0162】
こうした技術の動作の様式は、1つ以上のソフトウェア・モジュール、関数、またはサブルーチンとしての具体例に単純化すると、分子構造または指紋を記憶しているデータベース上におけるように、バッチモードの形にすることができ、これらの分子構造または指紋は、バッチ処理され、あるいは単一の分子構造または指紋に対する特定の命令を入力するユーザとの対話によって処理される。
【0163】
本明細書中の技術によって行われる類似性の計算、並びに匿名化された指紋自体は、有
形の形で、例えば1つ以上のコンピュータ・ディスプレイ上に表示することができ、こう
したディスプレイは、例えばモニタ、ラップトップ・ディスプレイ、あるいはタブレット
、ノート型コンピュータ、ネットブック、またはセルラ電話機のスクリーンである。類似
性のスコア及び指紋は、さらに、紙面の形に印刷することができ、こうした紙面は電子フ
ァイルとして、コンピュータ可読媒体上に蓄積するためのフォーマットで、またはコンピ
ュータ間で転送または共有するためのフォーマットで記憶され、あるいは、プレゼンテー
ション(発表)中のように会場のスクリーン上に投影することができる
【0164】
特定のデフォルト設定を、コンピュータ実現に対して構築することができるが、ユーザは、望むだけの数の選択肢を、指紋の類似性の計算において用いる特徴に対して与えられることができる。
【0165】
例
例1:対象物のリストの比較
メモリ帯域幅の要求
単一のビットを要求される安全性のレベルまで拡張するというGM暗号化の性質は、必
要な計算リソースの意味で、(例えば2社間で)分子のリストどうしを比較するためのA
SCまたはASCUS法の実際的応用に大きな影響を与える。次の2つの主要な場合が存
在する:まず、単一の分子をリストと比較し(1対多)、次に、2つの分子リストを比較
する(多対多)。両方の場合に、単に、2社の代表者間の物理的な会合を設けることによ
って、ネットワーク帯域幅の必要性を回避することができ、各自がそれぞれの装置上に符
号化された集合体を持ってくる。例えば、2社間に高速なギガビット・スイッチを確立す
ることによって、ネットワーク・リソースの必要性をなくすことができる。それにもかか
わらず、リモート取引の状況では、次の考察が当てはまる。
【0166】
1対多
各指紋が1000ビットを有し、従って、暗号化したストリングのサイズは必要な安全
性のレベルに依存するものとする。今日、商取引では、256ビットの暗号化が代表的で
ある。米国国家安全保障局(NSA:National Security Agency)はこうしたレベルの暗
号化を当たり前に解読することができるものと信じられ、但し、多数の小国の計算能力を
超える専用の計算能力による。従って、必要性が生じても256ビットで十分であるもの
と仮定することができ、1024ビットのセキュリティは今日の地球上のあらゆるリソー
スを超えることはほぼ確かである。256ビットのセキュリティでは、各分子指紋は32
キロバイト長になる。企業の代表的な集合体は百万個のオーダーの化合物となり得る。従
って、こうした集合体は、暗号化されると32ギガバイトのサイズになる。この値は、今
日のハードディスクの容量を前提とすれば、記憶するには手に負えないサイズである。し
かし、ASC法は、公開指紋及びXOR指紋の両方の完全な伝送を要求し、このことは、
単一の分子と企業の集合体との比較の完全な転送が、こうした量の双方向の伝送を必要と
することを意味する。即ち、32ギガバイトのサイズのファイルを送信して比較毎に検索
する必要がある。非常に高速なインターネット接続をもってしても、(1秒当たり1メガ
バイトの速度を仮定すれば)このことは1回の転送当たり12時間のオーダーを要する可
能性が高い!この数字を低減する唯一の方法は、セキュリティのレベルを、例えば適度な
128ビットまで低減するか、あるいは比較する化合物の数を低減するかのいずれかであ
り、これによりファイルのサイズを2分の1以下に低減することができる。
【0167】
後者に対する妥当な方法は、化合物をクラスタ(群)分けすることである。企業の集合体は、完全に異なる化合物を百万個は含まない。これらの化合物を「化学者にとって非常に類似している」ことと等価な類似性の閾値に合わせてクラスタ分けしたならば、恐らくは約2万個のクラスタが存在する。群に分けることの他の利点は、実際の化合物どうしを比較する必要がないことであり:会社は、代表的な化合物とは対照的に、化合物のクラスタの中心を表すビット・パターンを選択することができる。このため、実際の指紋は「理想的な」分子を表す。従って、検索は、これらのクラスタに合わせたターゲットの発見した類似性に基づいて改良することができる。レベルが低減された128ビット(まだ十分であるものと考えられる)の暗号化は、比較に要する時間が10分のオーダーになることを意味する。
【0168】
多対多
各社が、比較すべき10,000個のクラスタの中心を有するものとし、これは合計1
億(即ち、108)回の比較になり、各社が32kBのデータの転送を必要とする。これは
、往復で送信する必要のある3.2テラバイトのデータになる。今日、このことを行うた
めの最高速の方法は、安全なハード・ドライブ及びFedEx(登録商標)のような国際
宅配便であり、こうした運用にとって妥当な選択肢であり得る、というのは、このことは
、何週間または何カ月のタイムスケール(時間的尺度)を有する2社間の事業計画であり
得るからである。今日のブロードバンド(広帯域)接続によっても、個別ユーザの1%未
満しか1テラバイト以上のデータを所定の月極の支払い請求サイクル中にダウンロードし
ていない。
【0169】
核となる問題はASCの「往復の」性質にある。一般に(即ち、暗号化の必要性なしに
)こうした大規模な比較操作はフィルタをかけることができ、即ち、重要であるものと考
えられる分子の類似性しか返送する必要がない。しかし、ASCでは、2社が「公開」ス
トリングの発生源を返送されるまでは類似性がどうであるかを知らず、従って、当事者間
の完全な類似性行列(マトリクス)の送信を回避する方法は存在しない。(1つの集合か
らのm個の分子と第2の集合からのn個の分子との間での、対(つい)毎の類似性の計算
は、m×nの類似性行列を生成し、その(i,j)要素は分子jに対する分子iの類似性
である。)このため、ASCまたはASCUSは、大規模な全部対全部(多対多)の比較
のための理想的な技術ではない。
【0170】
大規模な比較の他の問題:1対多
ASCUS方式で、帯域幅及び可能なディスク空間に制限がなかったとしても、多数の
化合物に対する1つの化合物の類似性を考える際に出される基本的な質問が存在する。例
えば、対象の指紋を、各々が1ビットだけ有する一連の指紋と比較することによって、「
多数の」指紋の所有者は、「1つの」指紋が含むものを正確に復号化することができ、こ
のことは比較の目的を無効にする。
【0171】
「1対多」は、1つの化合物の所有者が、多数の化合物の所有者に返送される暗号化し
たXORストリングの順序を再編成することによって、この種の攻撃に対して安全にする
ことができる。このため、前者が「1ビットの」ストリングを含めていたならば、多数の
化合物の所有者は今回自分が参照するビットがわからない。このため、情報の送信は:「
多数の化合物中のどの化合物が1つの化合物に類似しているか」から「自分がどの化合物
であるかを知らなくても、類似したストリングが存在するか」に移り換わる。このことは
まだ価値ある安全な比較である。
【0172】
多対多の比較のための追加的保護
1対多の比較が情報を公表し過ぎる危険性を有する(というのは、各回の安全な比較が
少なくとも1ビットの情報を伝えるからである)のと同様に、多対多の比較も同じ理由で
そうした危険性を有する。取引の一方の当事者は、自分のビット・ストリングのリストを
、他の当事者のビット・ストリング中のビットの位置を明らかにするだけのために選定し
たストリングで「改ざんする」ことができる。しかし、1対多の比較におけるのと同じ方
法をとって、こうした危険性を取り除くことができる。基本的に、各当事者は、互いに対
して送信する「返信」ビット・ストリングをスクランブルする。
【0173】
例えば、アリス及びボブの各々が次の2つのビット・ストリングを有し:A1及びA2
がアリスに属し、B1及びB2がボブに属するものとする。アリスはA1を暗号化形式で
ボブに送信する。ボブはA1とB1及びB2とのXORを計算し、これにより、2つの暗
号化してスクランブルしたストリングEB1及びEB2を生成して、これらのストリング
を返送する順序をランダムにし、この順序変更はアリスに伝えない。即ち、EB1を最初
に、EB2を2番目に返送することができ、あるいは、EB2を最初に、EB1を2番目
に返送することができる。次に、アリスは、自分が受信したストリング中のストリング中
のビット数を数え上げて、これら2つのビット数を、アリスもランダムな順序でボブに返
送する。即ち、ボブは、A1とB1とで異なるビット数が、アリスが最初に送信したビッ
ト数であるか2番目に送信したビット数であるかがわからないようにする。次に、両者は
共に、この手順をアリスのビット・ストリングA2に対して繰り返す。この手順の終わり
に、各当事者は4つの数を保有し、これらの数は、A1とB1とで異なるビット数(=N
1:1)、A1とB2とで異なるビット数(=N1:2)、A2とB1とで異なるビット
数(=N2:1)、及びA2とB2とで異なるビット数(=N2:2)である。しかし、
アリスもボブもこれらの数ごとの2番目のインデックスは知らない。即ち、いずれの当事
者も、(N1:1)が実際には(N1:2)であるか否か、あるいは(N2:1)が現実
には(N2:2)であるか否かは知らない。
【0174】
これら4つの数を2×2行列として表現し、アリスのストリングが行列の行を表すると
すれば、この行列は「行をスクランブルした」ものとして記述される(各行内の値がスク
ランブルされている)。ここで、このことは非対称な配列であり:ボブの「インデックス
」だけがスクランブルされ、アリスの「インデックス」はスクランブルされていない。こ
の状況に固有の情報は、アリス及びボブは、アリスの集合体中の各化合物と類似した化合
物または非類似の化合物がボブの集合体中に存在するか否かは知っているが、それがどの
化合物であるかは知らない。
【0175】
単純には、この状況を対称にするためにしなければならないことは、プロセスを反復す
ることだけであるように思われるが、今回は、ボブとアリスの役割を交換させることであ
る(ボブがアリスの役割を演じ、アリスがボブの役割を演じる)。従って、このことを行
うことは、「列をスクランブルした」行列を返送することであり、即ち、今度は、彼ら二
人は共に、ボブの集合体中の所定の化合物と類似した、あるいは非類似の化合物がアリス
の集合体中に存在するか否かを知っているが、ここでも、どの化合物であるかは知らない
だけである。
【0176】
しかし、アリス及びボブが共に、「行をスクランブルした」行列及び「列をスクランブ
ルした」行列の両方のコピーを保有していれば、彼ら二人は正しい行及び列のインデック
スを解明することができる可能性があることを、ちょっとした考察が示している。例えば
、行をスクランブルした行列及び列をスクランブルした行列が次の通りであるものとする
:
行をスクランブルした行列:
(外4)
列をスクランブルした行列:
(外5)
【0177】
「4」のカウント数が、行をスクランブルした行列からのA1に関連するので、列をス
クランブルした行列についても同じはずであり、即ち、恐らくはスクランブルされている
第1列の順序は、A2、次にA1であるはずである。このことは、行をスクランブルした
行列中の第1行の順序は、B1にB2が続くはずであることを意味する。このプロセスを
継続すれば、各行列は次のようにデスクランブルする(スクランブルを元に戻す)ことが
できる:
行をデスクランブルした行列:
(外6)
列をデスクランブルした行列:
(外7)
【0178】
このため、対称な比較のためには、最終的な交換を回避しなければならず、即ち、アリ
スは行をスクランブルした自分の行列を決してボブに送信してはならず、ボブは列をスク
ランブルした自分の行列を決してアリスに送信してはならない。このようにして、各当事
者は、各自の集合体中にある既知の化合物と類似しているか非類似の化合物が互いの集合
体中に存在するか否かについての情報を有するが、いずれの当事者も、どの化合物どうし
が互いに類似しているかは知らない。
【0179】
最後に、各側が差分の情報を有する必要性を回避する完全に対称な比較のためのメカニ
ズムが存在する。アリスが暗号化したA1及び暗号化したA2を共にボブに送信するもの
とする。次に、ボブは、自分のB1及びB2を暗号化してXORをとったストリングを構
成して、4つのストリングを自分に与える。しかし、ボブは、B1及びB2をA1及びA
2に適用する順序をランダムにし、即ち、ボブは行及び列をランダムにする。ボブから返
送された、これら4つの暗号化したXORストリングを受信すると、アリスは、各ストリ
ングに対してビットを数える操作を実行するが、アリスが返送するものも行及び列をスク
ランブルされ、即ち、彼ら二人は共に、行及び列をスクランブルした行列を有する。従っ
て、この行列は、いくつの化合物が類似し、いくつが類似していないかのような、それぞ
れの集合体についての情報を含むが、彼ら二人のどちらも、自分の化合物のどれに、こう
した名称を付けることができるかは知らない。このデータは、集合体間の類似性の分布を
表現するに過ぎないが、こうしたデータを知ることはまだ有益であり得る。例えば、アリ
スのライブラリとボブのライブラリとが互いに同じように見えるか見えないか?同じよう
に見えなければ、恐らくは、より綿密な比較を行って、彼ら二人が化合物を交換したいか
否かを確かめて、各自の集合体の多様性を豊富にすることが有益であり得る。
【0180】
クラウドベースの多対多の比較
大規模な多対多の比較に関係する問題の1つが、当事者が非常に大きなデータセットを
生成することである。例えば、(以上で参照した)各々が10,000個の化合物から成
る2つの集合体の、対(つい)毎の類似性を暗号化形式で捕捉するために、3.2×10
12バイト(3.2テラバイト)が必要であったとする。これら2つの集合体が、その代わ
りに、各々が百万個の化合物であったならば、この数は薬品の集合体にとって実情に合わ
ない数とは言えず、上記の数値は記憶装置における32ペタバイト(3.2×1016バイ
ト)まで増加する。比較的少数の組織しかこうした記憶装置にアクセスすることができず
、こうした量のデータの伝送は、現在のインターネット・インフラストラクチャをもって
しても許容外に大きい。
【0181】
しかし、近年、ホスト・コンピュータのリソース、いわゆる「クラウド」コンピュータ
センターが経済的に実現可能である。複数ペタバイトに及ぶほど莫大な記憶装置の要求で
も、レンタル(賃借)で利用可能である。このことは、大規模な多対多の比較に固有の問
題を完全には解決しない、というのは、準同形暗号化の古典的概念は、(まだ暗号化形式
の)最終的な「結果」ファイルをいずれの当事者にも送信すること、即ち、インターネッ
トのような公共インフラストラクチャを経由したペタバイト級のファイルを送信すること
を要求するからである。
【0182】
しかし、ストリングの全部の対におけるビット・カウント数の差を計算するような何ら
かの形態の暗号解読がクラウド内で可能であれば、送信の要求は扱いやすくなる。各々が
百万個の化合物から成る2つの集合体間の、1012回のビット・カウント数の比較を送信
することは、高速インターネット接続により完全に可能である。多数の大手会社が、こう
したことを1時間くらいで遂行することができるギガビット・スイッチを有する。
【0183】
従って、本発明における、第1の当事者と第2の当事者との間で、実際の情報を公表せ
ずに情報を安全に比較する方法は、次のステップを含む:第1の当事者が第1のデータか
ら第1指紋を作成する。第2の当事者は第2のデータから第2指紋を作成する。次に、第
1の当事者は、第1組のGMキーを、関連する公開キー及び秘密キーと共に生成して、第
1指紋をこの公開キーで暗号化して、第1の暗号化した指紋を作成する。次に、第1の当
事者は、第1の暗号化した指紋を、自分しか管理できない第1の安全なクラウド・アカウ
ントにアップロードし、次に、公開キーを第2の当事者に送信する。同様に、第2の当事
者は、第2指紋を自分の公開キーで暗号化して、第2の暗号化した指紋を作成して、第2
の暗号化した指紋を、自分しか管理できない第2の安全なクラウド・アカウントにアップ
ロードする。次に、第1の当事者は、第1のクラウド・アカウント上の第1の暗号化した
ストリングに対する「読出し」特権を、第2の当事者に与える。(このことは、自分の暗
号化したストリングを第2の当事者に送信することと等価である。)第2の当事者は、第
1の暗号化した指紋に対してXOR演算を実行し、これにより、暗号化した指紋XORを
第2のクラウド・アカウント内に作成する。次に、第2の当事者は、暗号化した指紋XO
Rをスクランブルし、これにより、暗号化してスクランブルした指紋XORを第2のクラ
ウド・アカウント内に作成する。次に、第2の当事者は、暗号化した指紋XORに対する
「読出し」特権を第1の当事者に与える。(ここでも、このことは、暗号化してXORを
とりスクランブルした自分のストリングを第1の当事者に送信することと等価である。)
第1の当事者は、暗号化してスクランブルした指紋XORに対してプログラムを実行して
、「オン」状態にされたビット数を評価し、この数を暗号化して第1の当事者のクラウド
・アカウント内に記憶し;最後に、第1の当事者は、この暗号化した結果を第1のクラウ
ド・アカウントからダウンロードして、自分のコンピュータ上で暗号解読し、これにより
、第1指紋と第2指紋との類似性を知る。
【0184】
しかし、この方法の主な欠点は、一方の当事者が、暗号化したストリングのビット数を
数えることを可能にするプログラムを、クラウド・リソースにアップロードしなければな
らないことである。敵意を抱く者がこのプログラムにアクセスできたならば、この者はこ
のプログラムを用いて、例えば、このプログラムを、いずれかの当事者が現在クラウド上
に記憶している集合体を表現する暗号化したストリングの集合体に適用することによって
、あらゆる暗号化したストリングを暗号解読することができる。(例えば、こうした当事
者は、暗号化したストリングの各ビットを一度に取得し、これらのビットをこうしたプロ
グラムに供給して、1または0のビット・カウント数を戻させることができる。)2つの
当事者は、各ストリングをクラウド内に記憶する前に、即ち、あらゆる暗号解読がずっと
低価値になるように、各ストリング内のビットのランダムなスクランブルについて合意す
ることによって、このことを防ぐことができる。しかし、このことは、暗号解読方法を有
する第三者が、やり取り中の当事者の一方にこの方法を売却することを防止することはで
きない。この危険性を軽減するための1つの可能な方法は、あらゆるクラウドベースのビ
ット・カウント数の暗号解読の結果自体を暗号化してしまうことである。こうした結果を
、暗号解読プログラムの所有者以外の誰も暗号解読することができず、かつ、この結果が
元のビット・ストリングよりも小さければ、暗号化したストリングの集合全体を一方の当
事者に返送することに関係する問題を軽減することができる。例えば、ストリングが10
24ビット長であれば、何個のビットがオンにされているかを記述するために10ビット
しか要さず、即ち100分の1の圧縮率である。本明細書中に説明する同様な暗号化の方
法を用いたならば、これを128倍または256倍に拡張したものがまだ存在するが、こ
うした拡張を考えても、対(つい)毎の行列全体の送信は、物理的媒体上でも、高速イン
ターネット接続上でも、数日中に可能である。
【0185】
GM法を用いて、共通のビット数を暗号化することは、大部分のコンピュータ・リソー
スにとってまだ挑戦的である、というのは、GM法はこうした大きなビット数を用いるか
らである。例えば、128ビットのセキュリティを用いている場合には、10ビットの数
を記憶するために10*128ビットを要し、あるいは、256ビットのセキュリティに
ついては10*256ビットである。より単純な方法は、例えば100ビットのランダム
なビット・ストリングを生成し、次に、このストリングの最初の10ビットを、「共通の
ビット」のカウント数を表す10ビットになるようにセットする。次に、これらの100
ビットは、あらゆる方式、例えばRCAを用いて暗号化して記憶することができる。必要
なことは、暗号化方法が、同じビット・カウント数に対して毎回同じ「メッセージ」を生
成しないことであり、さもなければ、このプログラムにアクセスできる敵対者(例えば、
クラウド・リソースの所有者)は、暗号化したメッセージがどのようであるかを、オン状
態にされたビットのないストリング、1ビットがオン状態にされたストリング、2ビット
がオン状態にされたストリング、等について単に確かめ、次に、こうしたメッセージの集
合を、このプログラムが任意のストリングに対して生成したあらゆるものと単に比較する
ことができる。「オン状態にされたビットのない」ストリングに対して、2**90個(=1
0**27個)の可能なメッセージが存在する場合、敵対者は、これらのメッセージのほんの
一部分さえも補足する見込みがない。このレベルの比較、即ち、ビット・カウント数当た
り100ビットによれば、対の比較のN*N行列の全体は10**14ビットであり、即ち、
~10テラバイトである。こうした量のデータを送信するための配送コストは今日でも妥
当である。
【0186】
例2:活性プロフィールの比較
例1では、化学構造の集合を比較し、指紋中の各ビットは分子構造の特徴を表す。指紋
によって表されるものを拡張することによって、分子の対の他の性質どうしを比較するこ
とができる。例えば、1つの拡張は、指紋中のビットが分析試料における活性を表現する
ことである。活性が二者択一の特性(例えば、活性/不活性)であれば、この拡張は単純
であり:活性の指紋は、単に「1」を指紋中の「活性」用に予約された位置に置き、そう
でない位置に「0」を置く。その代わりに、活性を帯域または範囲の形に定量化する場合
、このことは指紋を拡張することによって行うことができる。例えば、特定の分析試料中
の活性物質は、次の8つの、対数単位の範囲に定量化することができる:
{<1nM}、{1nM<10nM}、{10nM<100nM}、{100nM<1μM}、{1
μM<10μM}、{10μM<100μM}、{100μM<1mM}、{>1mM}。
【0187】
ある化合物が50nMの活性物質を有するものとし、即ち3番目のカテゴリーに入る。こ
のことは次の短いビット・ストリングとして表すことができ、ビット・ストリング中の各
位置は上記8つの範囲のうちの1つに対応する:
(外8)
この場合、最初の3つのビットは「1」にセットされる。このビット・ストリングを、
2mMの活性物質を有する他の化合物のビット・ストリングと対比すれば、この化合物は次
のビット・ストリングを有する:
(外9)
(これらのビット・ストリングの両方において、ある範囲のビットが、2つのストリン
グが互いに同じカテゴリーを表すか否かの単純な判定ではなく、これらのストリング間の
実際の差を得ることができるようにセットされている。)従って、これらのストリング間
のL1距離は5になり、この活性物質についての2つの分子間のカテゴリー番号の差を表
している。分子毎に2つの、測定される活性物質が存在する場合、例えば、考慮する第1
の分子が:第1のキナーゼに対して50nM、第2のキナーゼに対して5μMであれば、こ
のことは、2つのこうしたビット・ストリングをこのように連結することによって表現す
ることができる(付加したストリングは下線付きのビットで示している):
(外10)
【0188】
第2の化合物が、第2のキナーゼに対する5nMの活性物質を有すれば、その合成ストリ
ングは次のようになる(ここでも、付加したストリングは下線付きのビットを有する):
(外11)
【0189】
これらのストリング間のL1は5+3=8である。従って、ASCまたはASCUSは
、活性カテゴリーの差L1の平均値、即ち4を示す。両方の側が、一方のキナーゼに対す
る活性が非常にある化合物を有することを知っているので、両方の側が、他方の側が異な
るキナーゼに対する活性を有する化合物を有するものと仮定することができる。差の平均
値が非常に小さかったならば、両方の側が、両方のキナーゼのキナーゼ・プロフィールど
うしが相当類似しているものと仮定している。
【0190】
活性プロフィールを比較するこうした概念は、任意の多数の分析試料の結果に拡張する
ことができる。その有用性は一般に次のいずれかを見出すことである:(A)同様な化学的
性質を有するが、異なる活性プロフィールを有する化合物(化学的L1は低いが活性のL
1は高い)、あるいは(B)化学的には非常に異なるが非常に類似した活性プロフィールを
有する化合物(化学的L1は高いが活性のL1は低い)。
【0191】
当然、性質はカテゴリーの意味で必要に応じて細かく表現することができる。性質をま
とめてグループ化して、グループ単位の活性の類似性を与えることができる。例えば、恐
らくは、あるキナーゼ・スクリーンが存在するが、GPCR(G-protein-coupled recept
on:Gタンパク質受容体)用のスクリーンも存在する。従って、各々が別個の指標的な差
L1を与える。
【0192】
2つの性質間の実際の差の尺度を与える上記のようなビット表現を用いることの代案と
して、GEL指紋プロセスを用いて、単一の性質がより高い、より低い、または同じであ
るかを、カテゴリー毎に(あるいは、所定のカテゴリーについて)判定することもできる
。例えば、2つの化合物を化学的に比較する必要があるが、一方の化合物の溶解度が他方
の化合物の溶解度よりも高いか否かを確認する必要があるものとする。上記の指紋は差の
度合いしか与えず、この差の向き(より大きいかより小さいか)は与えない。しかし、上
記のGEL形式は、後者を可能にする。それだけでも、化学的指紋と同時にも用いられ、
2人の研究者が、2つの化合物が類似しているが一方がより良好な溶解度を有することを
確認することができる。創薬における化合物の第一線の最適化では、多数の性質を同時に
最適化することが重要であり、化合物の合成の大部分は性質を改善することを中心に展開
され、即ち、性質を変更する方向に展開される。
【0193】
例えば、2社が同様な分子に取り組んでいるが、異なる物理的性質が欠如している状況
にある、ということがあり、恐らくは、一方の側では溶解度が低過ぎ、他方の側では代謝
クリアランスが高過ぎる。GELフォーマットを化学的類似性L1と共に用いて、2つの
側が自分達の化学的情報を共有して、個別の不具合に対してどのような責任があるかを両
社が知ることができるか否か、即ち、こうした状況が存在することを両社が知っていれば
、両社が自社の化合物を改良する可能性を有するか否かを確かめることができる。そして
、ここでも、このことは実際の化合物または実際の物理的性質を公表せずに行うことがで
きる。
【0194】
最後に、考慮してきた2つのストリング間の測定基準は「市街距離」またはL1距離で
ある。しかし、2つの、数値のリストまたは数値のベクトルを比較する場合、L2距離を
求めることがより有用であり、L2距離は距離の二乗の総和である。
【0195】
以上に述べたように、リストまたはベクトルにおけるエントリ(各入力値)が1または
0であれば、L1とL2との間に差は存在しない(1*1=1、0*0=0である)。し
かし、上記のように表現される活性物質のリストが、順序付きのカテゴリであるものと考
えるとすれば、どの測定基準を計算するべきであるかの選定が存在する。このことを確か
めるために、上記の例を考え、ここでは2つの性質が次のように表現される:
(外12)
及び
(外13)
【0196】
ASC/ASCUSプロセスは次のようなXORベクトルを生成する:
(外14)
次に、これを次のようにスクランブルすることができる:
(外15)
これは、L1=8、即ち8ビットがセットされていることを示している。
【0197】
しかし、その代わりに、ストリングをそのサブベクトルの範囲内でスクランブルするも
のとし、即ち、次のようにスクランブルする:
(外16)
ここで、読者は、5及び3のL1距離がストリング中に埋め込まれていることを知るが
、これらのL1距離がどの性質を参照しているかは知らない。さらに、個別の距離が与え
られれば、L2距離(二乗)は5*5+3*3=34として計算することができる。従っ
て、ASC/ASCUS法は、性質のベクトル間のL2距離も可能にし、ここで各性質の
差はビット・ストリングとして表されるが、性質の順序は失われている。明らかに、この
プロセスは、性質の数が大きい場合に最良に機能する。
【0198】
例3:共有モデル
2社が、自社の化合物を公表せずに、共同予測モデルを作成することに向けて協力する
ことができるか否かの課題は、実際に簡単であり、ASC法を何ら必要としない。一般に
、こうした予測モデルはデータセットを出しあうことによって作成されるが、各分子は、
そのモデルにおいて使用される一組の性質に、予測が必要な数量を加えたものによってし
か表現されない。従って、QSARのような標準的な方法を適用して、その数量向けの(
一般に高度にパラメータ化された)モデルを考え出す。
【0199】
しかし、一組の性質ではなく、ある特性空間内での分子間の類似性に由来する第2のク
ラスのモデルが存在する。例えば、指紋の差がこうしたクラスを形成する。指紋中の各ビ
ットは、(一部のQSARモデルに含めるための)異なる性質として扱われず、むしろ、
その距離を全体論的な対(つい)毎の性質として解釈する。例えば、kNN法(「k」人
の最寄りの隣人)が、k人の隣人の性質を平均することによって、新たな化合物について
の予測を作成する。これらのモデルは共有することがより困難である、というのは、新た
な分子までの距離を計算しなければならないからである。例えば、A社が自社の新たな分
子についての予測を欲しい場合、A社はその分子をB社に開示して、B社の集合体中の、
構造及び/または性質がA社の新たな化合物に近いあらゆる分子から予測するための入力
を受信しなければならない。また、例えばクリギング(Kriging)法における加重距離方
式では、今までのすべての分子間の距離(即ち、A社のすべての化合物とB社のすべての
化合物との間の距離)を必要とする。しかし、もちろん、こうした状況は、ASCUS法
にとって理想的であり、即ち、分子の2つの集合間の類似性を計算する。このため、分子
構造を示さずに2つ以上の会社のリソースを使用する単一モデルが実際的である。
【0200】
この手順を
図7A及び7Bに示す。開始点は指紋の種々の集合であり、
図7A中に(7
03)、(705)、(707)、(709)、(711)で表す。これらの集合は互い
に同じサイズである必要はなく、図面中では異なるサイズの平行四辺形で表される。
図7
Aの上部のパネル中に示すように、ASCUS法(701)を用いて、指紋の種々の集合
を対(つい)毎に比較することができる。最初のステップは、各寄与者が自分達の化合物
間の類似性(715)の行列を生成する(713)ことを含む。これらの化合物は、全体
的な類似性行列の中心部を形成する。第2部分は、ASCUSを用いてこの行列の非対角
要素を形成することであり、即ち、各社の化合物の、互いの集合との類似性をセットする
。図示するように、寄与分は同等である必要はない。計算した量が、ASCUSのL1距
離におけるような差であり得るとしも、「類似性」行列のことを話すことは通常のことで
ある。各寄与者は、この行列の1つの行、即ち自社の化合物の各他社との類似性、及びす
べての他社どうしの化合物の類似性にアクセスすることができる。次に、これらの行を寄
与者間で共有し、これにより各社が行列全体を有して終了するものと仮定する。次に、新
たな化合物を予測する必要がある場合、この化合物から各社の化合物までの距離のベクト
ルを計算する必要がある。予測を行うためには、完成したベクトル(712)が必要であ
り、このことは、指紋の集合(709)について
図7Bに例示するように、他社の集合の
各々に対してASC/ASCUSを用いることに比べれば、各社が部分的に寄与しなけれ
ばならない。この第2ステップでは、提出した会社だけがベクトル全体を有し、従って、
提出した会社を越えて予測を知らせる必要がある理由は存在しない。このため、対称なプ
ロセス(ACS)は、類似性のベクトルを生成するために適用するのに適した方法である
。
【0201】
次に、類似性のベクトルを類似性の行列と共に用いて、関心のある性質を予測する。な
お、この行列は、クリギングのような方法にしか役に立たず、こうした方法は、距離と性
質の分散との相関を考慮に入れる。kNNのような方法は、類似性のベクトルを計算する
ことしか必要とせず、即ち、必要なものは上記第2ステップだけである。
【0202】
例4:形状比較
これまでは、ASC/ASCUSプロセスの用途は、活性物質のリスト、あるいは化学
的パターンまたは性質を表す指紋のような物理的性質に限定されていた。しかし、この方
法は、分子の三次元形状の比較にも適応させることができる。分子の配座(立体構造)の
配向を考えると、規則的な間隔をおいた点の格子を分子構造上に重ね合わせることができ
、各点は1(分子の内部)または0(分子の外部)の値を与えられる。ここで、こうした
1または0の格子は1及び0のベクトルに変化させることができる。
【0203】
例えば、格子が{x=-10Å,x=10Å}、{y=-10Å,y=10Å}、{z
=-10Å,z=10Å}の範囲内に広がるものとし、格子点は1Åの間隔をおいて直線
をなすものとする。このことは、21*21*21=9261個の点が格子上に存在する
ことを意味する。まず、直線{y=-10Å,z=-10Å}に沿ったx=-10Åから
x=+10Åまでの21個の値をとり、次に、{y=-9Å,z=-10Å}に沿った2
1個の値をとり、等によって、この格子からベクトルを形成することができる。ここで、
このように格子をベクトルにする順序付けは、所定配向の2つの形状を表す2つのベクト
ルを比較することができることを意味する。これに加えて、格子をx軸及びy軸の周りに
180度回転させることによって、他の3つの配向を比較することができる。これらの回
転は、指紋内のビットの順序を変更することに相当し、即ち、形状を新たな格子にマッピ
ング(対応付け)する必要なしに、4つの異なる配向を比較することができる。もちろん
、格子に対するこうした代わりの配向及び変換を構成して比較することもでき、例えば「
正準(カノニカル)な」配向の集合は、分子の慣性モーメントをデカルト軸に合わせて整
列させることができるが、他の配向も考えることができる。
【0204】
なお、最後に、形状の比較を分子構造の例によって説明してきたが、形状は完全に一般
的な概念であり、分子だけに限定されない。
【0205】
考えることができる一対の拡張は、各格子点において1でも0でもない値を用いること
、及び他の三次元的性質を比較することである。第1の拡張は、各格子点を単一のビット
として表現するのではなく、一組のビットを各格子点に与えることができ、即ち、上述し
たように、活性のような性質の比較を考える際である。ここで、こうした格子から生成さ
れたベクトルを拡張し:例えば、上記の例では、各格子点に8ビットを与えてその点にお
けるいくつかの性質を表現する場合、生成されるビット・ベクトルは8*21*21*2
1ビットのサイズになる。次に、2つの形状間のXORが21*21*21個のサブベク
トルを生成し(各々が8ビット長)、これらのサブベクトルは上述したようにスクランブ
ルすることができる。このようにスクランブルしたストリングの読者は、各点における形
状値の差は知るが、その値がどの点を参照するかは知らない。しかし、ここでも、上述し
たように、読者はL2距離を計算することができる。こうした手順を用いる例は、電界ど
うしを比較することであり得る。即ち、各点における電位をビット・パターンに変換し、
これにより、2つのこうしたパターン間のXORは、その点における電位差を近似する。
【0206】
これら2つの方法では、形状の値のアレイまたは形状のビットのアレイどうしを組み合
わせることができ:例えば、2つの分子形状間のL1距離を、それらの電界間のL1また
はL2距離と同時に計算することができる。薬物のような分子上に一般に見られる水素結
合供給体及び水素結合受容体のような官能基の種類までの空間距離のような他の分野も、
こうした方法で比較することができる。
【0207】
化学的指紋の比較を越える
安全な比較の原理の特徴は、情報交換を期待される方法に限定することを可能にするこ
とである。化学的類似性以外の人間に関する事柄でも、本明細書中に説明する方法を有効
にすることができる例が存在する。そのいくつかは以上に例として参照または説明してお
り、例えば、給与を比較すること、あるいは入札価格と販売価格とが近いか否かを判定す
ることである。以下の例は他のいくつかの例示を提供する。
【0208】
例5:特徴の集合の比較:スポーツチーム間での選手のトレード
選手をトレードすることに関心のある2つのスポーツチームを考える。これらのチーム
は、進んで手放そうとする選手のリストを互いに対して提示することしかできない。しか
し、こうした情報は公にしにくい。スター選手は、自分がトレードを考えられていること
を見出して非常に不満になり得る。チームどうしの会合が機密であっても、一旦、リスト
が交換されると、その情報は漏れることがあるし、恐らくは漏れる。一方、リストを比較
することは、良好なトレードを行うことができる場合に真価を有する。チーム1が自チー
ムの選手のリストをアルファベット順に作成して、引き留めたい各選手の直後に0を付け
るが、トレードを考えている各選手の直後には1を付けるものとする。チーム2は、チー
ム1の選手のリストと同様なリストを作成し、関心のない選手毎に0を付け、トレードし
得る選手毎に1を付けるものとする。ベクトルはこのようになる:
チーム1:チーム1が売却し得る4人の選手:
(外17)
チーム2:をチーム2が買収を考えている5人の選手:
(外18)
【0209】
これら2つのストリング間の距離は、各チームがASCUSを介して見出すことができ
、L1=5である。しかし、いずれのチームも、他の1つの情報:即ち、他のチームのス
トリング中の「1」がセットされたビット数なしには、いくつの一致が存在するかを正確
に分かることはできない。この数を、チーム1についてはN、チーム2についてはMと称
する。従って、一致の数は次式の通りである:
【数6】
このことは、単に、ビット間の一致のすべてが(M+N)なる最大のL1から2を取り
去ることに起因する。従って、上記の例では、N=4、M=5、L1=5であり、従って
2つの一致があるはずであり、これらの一致はリスト中の位置3及び位置9に存在する。
この時点で、これらのチームは自チームのリストを互いに示し合うことを考えることがで
きる。まだいくらかの危険性が存在する、というのは、そのスター選手はチーム1のリス
ト上に存在し得るが、チーム2のリストに対する当たりではなかった。しかし、この危険
性は減少させることができる、というのは、これらのチームはある程度の共通の見地を有
するからである。
【0210】
こうした交換の変形例は考慮するに値する。各チームが共通のビット数、即ち一致の個
数を計算するためには、N及びMを知る必要がある:このことはXOR演算の性質に起因
し、XOR演算は、共通のビット数ではなくビット・ストリング間の相違の個数を特定す
る。2つのチームが、それぞれのチームがいくつのビットを「1」にセットしているかを
認めたくないものとする。驚くべきことに、それでも進展を遂げることができる。上記の
例では、各チームがXORをとってスクランブルしたストリングを返送するものとし、こ
のストリングは受信したストリングの2倍の大きさであり、ここに、追加されたビットは
、全部1のストリングを、公開された、即ち受信したストリングに対してXORをとるこ
とに由来する。即ち、チーム2は次のストリングを計算する:
(外19)
【0211】
このストリングは、到着したストリング中のビットがセットされた箇所にしか0を有さ
ず、即ち、セットされたビットの総数は{B-N}であり、ここにBはビットの総数であ
り、ここでは16に等しい。ここで、チーム2は、このストリングを、自チームのストリ
ングと受信したストリングとのXOR(をとったストリング)に付加して、これら2つの
ストリングを一緒にスクランブルしてチーム1に返送する。ここで、チーム1によって報
告されたL1(拡張)は次式の通りである:
L1(拡張)=(B-N)+L1 (34)
【0212】
この式より、一致の個数は次式のようになる:
【数7】
即ち、チーム2は、この式の右辺の各要素を知っているので、ここで、いくつのビット
がセットされているかをチーム1が公表することなしに、チーム2は一致の個数を知る。
しかし、ASCUSを用いていれば、こうした難読化は継続しない。即ち、各チームが一
致の個数を知っていれば、これらのチームは、自チームが報告したL1(拡張)に戻って、
いくつのビットを他のチームがセットしているかを計算することができる。このための式
は単に次式の通りである:
M=L1(拡張)+2*一致-B (36)
【0213】
例6:インターネット・ベースの一致実行
情報交換に含めることができる他の1つの人間の感情は困惑である。インターネットの
重要な発明の1つは、Match.com、Tinder、他のようなオンライン・デート・サイトであ
る。こうしたサイトは一般に互いの関心、例えばスポーツ、キャンプ、特定種類の音楽が
好きか、に基づいて人どうしを仲介しようと試みる。しかし、人どうしを頻繁に結び付け
るものは、共有することを戸惑い得るものであり:例えば、どの低俗映画を自分達が好き
であるか!である。参加者が100本の映画のリストを与えられ、これらの映画は「罪深
き愉しみ(guilty pleasure)」であるものと考えられ、即ち、自分は好きかも知れない
が、自分が好きであることを他人に知って欲しいかは自信がないと考えられる場合を想像
する。一例は、”Terms of Endearment”のような過度の感傷主義、あるいは”Harold an
d Kumar”のような子供向けのユーモアであり得る。このことは、例5において自分達の
名簿を比較する2つのスポーツチームについて説明した問題とちょうど同じ問題であり、
いくつの映画を選択したかを各側に知らせることに加えて、L1は、いくつのこうした「
罪深き愉しみ」を2人の人が共に楽しめるかを、この人達が見出すことを可能にする。大
きなオーバーラップが存在する場合、これら2人の人が互いの交わりを楽しむ確率は高く
なり得るし、ASCUSにより、参加者がどの映画を選択するかを開示せずに、このこと
を行うことができる。このことは効果的であるだけでなく、サービス・プロバイダがすべ
てを知ってしまうというオンライン仲介サイトの問題を回避する。
【0214】
より巧妙な例として、内気な少年の集団と内気な少女の他の集団とのパーティ用の招待
客名簿を作成することを考える。どの少年も、他の集団の誰かに興味があるか否かについ
て、他の少年、及び間違いなく少女の誰に対しても認めたくはなく;少女にも逆のことが
当てはまる。各側は、自分達自身の公開GMキー及び秘密GMキーを導出して、公開キー
を交換する。次に、各少年は1と0のベクトルを作成し、1と0は、アルファベット順に
並べた、興味のある少女及び興味のない少女に、それぞれ対応する。彼らは、これらのベ
クトルを互いに共有しない、というのは、各少年は、他者のベクトルを暗号解読してその
所有者をからかうことができるからである。むしろ、彼らは自分のベクトルを暗号化して
少女に送信し、少女がこのビット・ストリングを暗号解読することができないことは知っ
ている。他のすべての少年が、同じ順序に作成した、例えば少女の名前をアルファベット
順にしたこうしたストリングを送信しており、少女は、各ストリングから自分に関係する
1ビットを抽出する。例えば、Abigailがアルファベット順のリスト上の2番目の少女で
あれば、彼女は、各少年のリスト中の2番目にあるすべての暗号化したビットのリストを
作成して、各少年からの興味に対応する暗号化したストリングを、ここでも、多分アルフ
ァベット順に形成する。次に、各少女は、各少年に対する自分の興味または興味のなさに
対応する自分自身のストリングを、その少年の公開キーを用いて作成し、このストリング
と上記抽出したストリングとのXORをとってスクランブルする。
【0215】
名簿を比較するスポーツチームの例と同様に、興味のアイテムは共通するビット数であ
り、このビット数は(興味の)一致の可能性が存在するか否かを暗に意味する。しかし、
上記のように、XORプロセスは相違、即ち、一方の側が異なる意見を有することについ
てしか伝えない。共通するビット数は、各側でいくつのビットがセットされているかを知
っている場合にしか抽出することができない。しかし、このことは困難なことであり:ど
の少年も自分に興味がないことは、どの少女も知りたくはなく、その逆も同様である。同
様に、少女は、少年のうちの誰も実際に自分に興味がない(あるいは、全員が!実際に自
分に興味がある)ことを少年が知ることに当惑し得る。従って、このことは、上述した拡
張されたL1が最適な解決策であることの例である。上記のように、少女が拡張されたス
トリングを少年に返送すれば、少年が計算した(拡張された)L1は、彼女に興味がある
として少年がセットした個数、あるいは彼女が興味があるとして少年に対してセットした
個数を少年には知らせず、これらの数量の差に関係する数値のみを知らせる。自分がいく
つのビットをセットしたかを知る少女のみが、(興味の)一致の個数を知るが;彼女は、
何人の少年が彼女に会いたいかは知らない。逆に、少年は、自分達のうちの何人が彼女を
好んでいるか、あるいは自分達のうちの何人が彼女に好かれているかは知らない。(興味
の)一致が存在しない場合、少女は落胆するかもしれないが、このことは、彼女を好んだ
少年が、彼女が好む少年ではなかったという永遠の真理であり:人生とはそのようなもの
である!
【0216】
このようにして、各少年(及び各少女)は、「好み」の一致がいくつ存在するかを、次
のことについての情報なしに見出す:(a)他の集団のうちの何人が自分を好むか;(b)同じ
集団のうちの何人が、特定の少女(または少年)を好んだかについてのあらゆること;(c
)他方の集団中のどの特定のメンバーが自分を好んだか。
【0217】
こうした特定の方式を(N(N-1)/2回の対(つい)毎の比較により)N個の集合に
拡張して、これら3つの原理を維持しつつ、集合中の各アイテムと、他のあらゆる集合中
のあらゆるアイテムとの間に何らかの一致の可能性が存在するか否かを判定することがで
きる。
【0218】
例7:入札システム
例えば、取引を行うことができるか否かを判定するに当たり、自分の数値が他者の数値
よりも高いか、他者の数値に等しいか、他者の数値よりも低いかをいずれかの当事者が判
定することができるシステムは、(例えば、
図2及び3A~3Hに関して)既に説明して
きた。例えば競売(オークション)のように、2つ以上の当事者が、異なる当事者が保持
するアイテムに入札したい際に、同じシステムを用いることができる。このことが奏功す
ることができる方法を確かめるために、2つの当事者だけが入札していることを想像する
。入札は、比較することになる数値を表現する。ASCUS法を適用した後に、各当事者
は、自分の入札が他者の入札よりも高いか低いかを知る。次に、この入札を第三者である
売り手に転送し、売り手は、前述したようにこの入札が十分に高いか否かを判定すること
ができる。ここで、売り手の「最低限受け入れ可能な価格」を通常「最低競売価格」と称
する。
【0219】
この手順について注記するべきいくつかの事項は次の通りである:
i.すべての入札が公開されて入手可能であり、但し暗号化形式である。(入札を公開
し、但し暗号化されているとは、これらの入札を後に変更することはできないが、これら
の入札を(その所有者が)暗号化するだけでよいことを意味し、暗号化はこのプロセスに
とって必要である。)
ii.「入札」の提出は、この入札が中に入っている「ロッボックス」に相当する。即
ち、販売の決定時に、落札者(だけ)に秘密キーを公表し、落札できなかった当事者は、
誰の入札が実際により高額であるかの判定の正確さをチェックすることができる。従って
、確立されたルールが存在すれば、ASCUSにおける対称性を強制しようとする必要性
は存在しない。
iii.落札できなかった入札を公開する(暗号解読する)必要はない。
iv.落札が最低競売価格に達しない場合、その入札を公開する必要はない。
v.(iv)の場合、例えば、一方の入札者が他方の入札者をだまして、実際にはそう
でなくても自分がより高額の入札者であるものと思い込ませるような場合でも、対称性を
強いる必要がある可能性がまだ存在する。このことは、受け入れ可能な入札を落札者が有
していない際に、落札できなかった入札者が、実際には受け入れ可能な入札を有するか否
かを販売者にチェックさせることによって容易に見つけることができる。落札できなかっ
た入札者が実際には受け入れ可能な入札を有する場合、落札者は嘘をついている。落札で
きなかった入札者が実際には受け入れ可能な入札を有さない場合、落札者が嘘を付いてい
るか否かは無関係であり:誰もその競売で落札していない。
【0220】
このプロセスは、複数当事者の入札システムに拡張することができる。本発明における
中心概念は、「整数(入札)Aが整数(入札)Bよりも大きいか」という概念を、整数の
リストをソートすることに拡張し、これにより、最終的に、(同等な入札の場合を除いて
)リスト中の皆が他者の入札を知ることなしに自分の入札のランクを知る。このことが機
能することができる方法を
図8A~8Gに示して以下に説明する。入札を順序付けするた
めのプロセスは、単に、各当事者が自分の入札を他のすべての入札と比較して、いくつの
入札が、自分の入札よりも高額であるか、自分の入札に等しいか、自分の入札よりも低額
であるかの経過を追う、というだけである。このプロセスの終了時に、各入札者は自分の
ランク(同順位があれば同順位を含む)を知る。次に、最高額の入札者は、最低競売価格
をチェックすることができる。この方式では、落札の公開を用いてセキュリティ(安全性
)を保証し、即ち、各参加者は順序付けの有効性をチェックすることができる。
【0221】
この順序付けを実現することができる方法については変形例が存在する。順序付けが完
全でなくても、単一アイテムの競売において必要なことは、最高額の入札者が存在するこ
とだけである。このことは最大(N-1)回のASCUS比較しか必要とせず、ここにN
は入札者の数であり、入札のリストの順序付けを確立するための(N-1)*(N-1)回と
は対照的である。同様に、アイテム対アイテムの比較のみに依存するソート・アルゴリズ
ムは、N*N回ではなくNlogN回のオーダーの比較を必要とするように書くことができ
る。このことは、ネットワーク・トラフィックを(暗号化した公開入札ストリングの往復
のために、N*N回からNlogN回に)低減する入札の完全なソートを行うことができる
ことを意味する。
【0222】
図8A~8Gに示すステップは次の通りである:
(1) 入札を指紋として用意する(800)。(
図8A);
(2) GMキーを生成し(802)、このGMキーより、公開キー(804)を導出する
ことができ、公開キーを用いて指紋(806)を暗号化して、暗号化したビット・ストリ
ング(808)を作成する。(
図8A);
(3) RSAキーを生成し(810)、このRSAキーからRSA公開キー(812)を
導出することができ、RSA公開キーを用いて入札(814)を暗号化して、暗号化した
入札(816)を作成する。(
図8A);
(4) GM公開キー(804)、暗号化した指紋(808)、及び入札ファイル(816
)の集合(831)を登録所(828)に送信する。このことは、他のすべての入札者(
830)についても行うことができる。(
図8B);
(5) 公開キー及び暗号化したファイルのすべての集合(831)、(833)、(83
5)、(837)を、登録所(828)(または他の入札者)から読み出す(。
図8B)
;
(6) すべての公開キー及び暗号化したファイルを読み出すと、入札をGEL指紋(84
0)として用意する。(
図8C);
(7) 図示するように、3つの異なる入札者「K」、「T」、及び「P」について、GE
L指紋(840)を、読み出した各公開キー(804)、(805)、(807)で暗号
化し、これにより暗号化したGEL指紋(843)、(846)、(849)を作成する
。(なお、全員の入札を各自のキーで暗号化する。)(
図8C);
(8) 暗号化したGEL指紋の各々と、同じキーで暗号化されている読み出した指紋との
XORをとって(852)、暗号化してXORをとった指紋(853)を生成する。この
指紋をスクランブルして(854)、暗号化してXORをとってスクランブルした指紋(
855)を生成する。(
図8Dは、暗号化したGEL指紋(843)及び暗号化されてい
る読み出した指紋(808)の例を示す。);
(9) すべての、暗号化してXORをとりスクランブルした指紋(855)、(857)
、(859)を、登録所(828)(または他の入札者(図示せず))に返送する。(図
8D);
(10) すべての、暗号化してXORをとりスクランブルした指紋(855)、(857
)、(859)、(861)を登録所(828)(または他の入札者)から読み出し、こ
れらの指紋は自分の公開キーで符号化されている。(
図8E;5つの指紋を示す);
(11) XORをとってスクランブルした指紋(855)、(857)、(859)、(
861)の各々を、自分のGM秘密キー(871)で暗号解読し(872)、これにより
、それぞれの指紋毎のGEL番号(874)、(876)、(878)、(880)を生
成する。(
図8E;4つの指紋を示す);
(12) すべてのGEL番号からの{G,E,L}の三つ組を形成し、最初はG=E=L
=0にセットする。自分の入札を他の全員の入札と比較する;今度は、どんな価格である
かを見出す必要がある。入札(822)中の入札の数をGEL番号(883)と比較する
:入札がGELを超える場合、カウンタGを1だけ進める;入札がGELに等しい場合、
カウンタEを1だけ進める;入札がGELよりも低い場合、カウンタLを1だけ進める。
G=0である場合(自分が最高額の入札者である)、(13)に進んでキーを公表する。(図
8F);
入札のランクは(1+L,E+L+1)で与えられる。例えば、G=9、E=2、L=
0、ランク=(1,3)は、1番目から3番目までが最高額の入札で同順位である(自分
の入札と他の2者の入札とが最高位の入札で横並びすることを意味し;自分と他の2者は
同順位であり、自分は1、2、及び3位を占める;
(13) 最高額の入札者用のRSA公開キー(888)を登録所(828)に送信する;
(14) (1,1)にランク付けされた(即ち、明らかに最高位にランク付けされた)場
合、入札の秘密キーを登録所に送信する(894)ことによって公表する;このことは、
1つの入札が最高額であることのチェックである。登録所(828)は公開にすることが
できる。(ボックス(894)は、最高額の入札を有することを主張する人物に対する申
し立てである;このボックスは、最高額の入札者であることを主張する人物に対する申し
立てのように、何かうまくいかないことがあった場合のみに必要になる。)
【0223】
最後に、入札の治安(
図8には図示せず)及び誤りの報告が存在し得る:例えば、公表
された落札者よりも高額の入札を申請したことを誰かが主張した場合、自分の秘密キーを
公表することによってそのことを証明することができ;誤りがなかった場合には、その申
し立てをされた最高額の入札者が落札するが;誤りが検証された場合には、最高額にラン
ク付けされた入札を破棄し、次に最高額の入札でステップ(14)を繰り返す、等を、入札が
全員によって検証されるまで、即ち、誰もより高額の入札を提出したことを主張しなくな
るまで行うことができる。(このことによって例示する基本的思想は、入札者が自分の入
札をランク付けすることができるか否かである。上記リストは、入札の値を知ることなし
に順序付けすることができる:というのは、この方法は、対をどのように比較するかを示
し、従って、対(つい)毎の比較を用いてリストをソートすることができる。)
【0224】
例8:最高相互満足感(MMH)証券取引
例7で説明した安全な競売は、非常に新規な方法での証券の買い付け及び売り付けに拡
張することができる。現在、株式は、一方の側が価格をリストに挙げ、他方の側がその価
格に応じたいか否かを決定することによって、売却または取り引きされる。しかし、この
ことは先発者利益の古典的な例であり、即ち、買い手は売り手が期待することを知ってお
り、その価格よりも多額を支払おうとはしない。売り手は常に自分がリストに挙げた価格
を得ることしかできず、売り手にとっての「利点」は存在せず、買い手にとっての利点し
か存在しない。さらに、売却は一対一のベースでは行われず:一般に中間ブローカー(仲
介業者、仲買人)を必要とする。その結果、「鞘取り」の機会が存在し、即ち、買い手が
進んで支払う金額と買い手が進んで受け入れる金額との間に差が存在することをブローカ
ーが知っている場合、ブローカーは売り手から買い付けて買い手に売却して、その差を着
服することができ、このことが「首位独走」の本質であり、超高速取引から得られる利益
における強い特徴であり、小規模な投資家はより大規模な運用者に対して不利であること
を意味する。この例では、株式取引のこれらの問題となる状況をすべて取り除くシステム
の例を説明する。
【0225】
単一の売り手
証券の売り手が1000株を売却する場合を考える。売り手は自分の売値を取引での暗
号化した売り注文として(即ち、ASCUSストリングとして)自分の公開キーと共に記
録し、こうして自分の価格用のロックボックスを確立し、即ち、この売り注文は売り手の
命令により暗号解読することができるが変更することはできない。入札の増分及びビット
・ストリング中のビット数は、売り手が規定するか一般的な協約によって規定することが
できる。
【0226】
次に、取引での一連の入札を登録すると共に、並びに買い手が取得することに関心のあ
る価格の株数を登録する。
【0227】
図7において上述した入札のASCUS順序付けがこれに続く。
【0228】
本明細書中の他所に説明するように、通常のASCUSプロセスによって、最高額の入
札を、暗号化した売値と比較する。最高額の入札が売値以上であれば、契約によって売り
付けが保証される。買い手は、その入札に対する自分の秘密キーを公表し(買い手は1つ
以上の秘密キーを作成しておくことができる);売り手は自分の秘密キーを公表する。買
い手が1000株よりも多く買い付けたい場合、この注文の一部しか叶えられずに競売を
終了する。買い手が1000株よりも少なく買い付けたい場合、売り手の注文の一部しか
叶えられない。買い手が支払う価格は、売り手の価格と入札との平均値である(MMH原
理)。残りの株式が存在する場合、これらの株式は次に最高額の入札者に渡され、この入
札者の入札をASCUSによって売値と比較する。入札が売値よりも高額である(または
売値に等しい)場合、かつ、その入札者が残りの株式の量よりも大量の注文を登録してい
る場合には、競売を終了する。2番目の入札者が支払う価格は、自分の入札と売値との平
均値である。このプロセスは、(a)売り手の株式の全部が売却されること、あるいは(b)売
値以上の入札を有するすべての買い手が自分の注文を叶えること、のいずれかが先に発生
するまで継続する。これらの条件のいずれかが満たされると、すべての売り付けが公開さ
れ、登録された入札に基づく申し立てが行われる。申し立てがなければ、競売は終了した
ものと考える。
【0229】
入札は最高額から最低額まで進むので、同額の入札が存在する場合、この入札は、単に
、残りの株式から各入札者に同数の株式をその価格で与えることによって処理され、売り
残しはランダムな抽選によって割り当てられる。例えば、上位2つの入札の各々が600
株を欲しい場合、各々が、売りに出された1000株から500株ずつ取得する。一方の
入札が10株で他方の入札が2000株である場合、第1の入札者は10株を取得し第2
の入札者は990株を取得する。各々が333株よりも多数の3つの同等な入札が存在す
る場合、各入札者は333株を取得し、残りの株式はランダムな抽選によって買い手のう
ちの1人に行く。
【0230】
ここで発生することを分析することは発展的である。第1に、各買い手は自分の入札未
満(または以下)を支払い、売り手は自分の売値よりも高額(または売値以上)を得る。
第2に、価格差の利益を得る仲介者は存在せず:こうした利益はすべて買い手及び売り手
に同等に行く。取引は、一般的な競売におけるように、標準的な売り上げの取り分によっ
て、あるいは「満足感」、即ち、買値と売値との差の取り分を得るより進んだプロセスに
よって金を稼ぐことができ、本質的に、鞘取りの割合を取り除きつつ、大部分は参加者に
行く。第3に、大規模または小規模であること、あるいは高速または低速であることの利
点は存在しない。すべての入札を考慮し、参加者にとって最大の満足感を生み出す順序で
叶える。
【0231】
複数の売り手
売り出しに複数の売値が存在し、各々が複数の株式割り当てを伴う場合、このことは同様に対処することができる。唯一の相違は、これらの売値も、まず、ASCUSの順序付けを施されることである。その後は、最低の売値については競売を通常通りに進める。この順序を完了すると、プロセスは次に低い売値に進む、等である。どの売値よりも高額な買いの入札が存在しない際に、またはすべての売り注文が叶えられた際に、あるいは全ての買い注文が完了した際に、競売を終了する。もちろん、売り手が単数及び複数の取引の両方について、その後に未売却株の売り競売が存在し得る。
【0232】
複数の売り手が存在する際には、価格増分及びビット数(売上範囲)を誰が設定するか
の疑問が存在する。このことは、各売り手が増分及び範囲を要求して、取引は、最小の増
分と最大の範囲との組合せを用い、あるいは取引設定「方針」による。このことは数値の
比較でもあるので、このことをASCUSによって実現することもでき、即ち、完全に分
散された取引を望む場合、最小のステップサイズ(増分)は、ASCUSを用いてすべて
の売り手が提案する最小の増分を見出すことによって、そして同様に最大の範囲を見出す
ことによって決定することができ、両者のための増分は一般的な指針によって決定される
。
【0233】
例9:モバイル機器上で実現される価格交渉
価格交渉は、2つ(以上)の当事者が、何らかの形の補償(通常は金銭)と引き換えに
商品またはサービスを交換することに関心があり、本明細書中の他所に説明する方法によ
り実現することができ、但しモバイル技術の基盤に基づく。通常、交渉に入るに際し、各
当事者は一般に、それを超えたら交渉を進めない数値を念頭に置き、本明細書では取引の
「中止」数と称する。このプロセスでは、こうした「中止」数を秘密にして厳重に保護し
、その結果、決して「先に進まない」取引交渉では多大な労力が無駄になる、というのは
、当事者の「中止」数は成功する取引とは両立しないからである。(「ノゴシエーション
(nogotiation)」と非公式に称する)これらの状況では、一刻も早く立ち去ることが両
当事者の関心事である。
【0234】
この例は、すべての当事者の「中止」の制約を前提とし、自分の制約を他のあらゆる当
事者に公表することなしに、2つ(以上)の当事者が、取引の可能性があり得るか否かを
判定することを可能にする方法を説明する。ASCUS技術を用いれば、すべての当事者
が自分の制約を暗号化様式で指定することができ、これにより、買い手の最高価格が売り
手の最低価格を超えているか否かを判定することができる。
【0235】
実際問題として、このプロセスは、妥当な量の計算資源を、取引における当事者毎に必
要とする。こうした理由で、次のモデルが適用可能である:
【0236】
ピア・ツー・ピアの直接交渉
このモデルでは、各当事者が、直接または無線のネットワーク能力によりコンピュータ装置(セルラ電話機、モバイル機器、タブレット、ラップトップ(コンピュータ)、PC(personal computer:パーソナル・コンピュータ)、等)にアクセスすることができる。各装置には、交渉アプリケーション(「NA」;Negotiation Application)または交渉サービスがインストールされている。NAは、起動されると、利用可能なネットワークのうちの1つ以上に発見可能なように現れると共に、これらのネットワーク上で発見可能なNAの他の例を検索する。
【0237】
一方の当事者がNAを通して所望の相手を識別することができ、次に、この開始する当
事者(「開始者」)が、NAを通して招待状を相手(「受信者」)に送信するものと仮定
する。受信者がこの招待状を受け取れば、取引プロセスを開始することができる。
【0238】
その代わりに、NAは発見不能な様式で動作することができ、この場合、開始者は、(
電子メールまたはテキスト・メッセージのような)他の手段を通して招待状を所望の相手
に送信することができる。招待状は、適切なネットワークを介してこのNAに接続するた
めに必要な情報を受信者に提供する。受信者がこの招待を受け入れて、ある種の相互接続
ネットワークを介して自分のNAを開始者のNAに接続して、交渉プロセスを開始するこ
とができるものと仮定する。
【0239】
サポートされるネットワーク能力に応じて、このプロセスを直接に、あるいはリモート
で行うことができる。両方の場合において、各当事者は自分の装置にアクセスして、最低
レベルのセキュリティ(安全性)を保証することができる。
【0240】
一旦、2つのNA間の交渉を開始すると、この交渉は次のプロセスを用いる:
【0241】
この時点で、「開始者」は、自分がどのような種類の取引(買い、売り、バーター(物
々交換)、等)に関心があるか、及び取引の最小単位(「MUE:minimum unit of exch
ange」)をどうするかを示す。MUEは、取引の通貨、及び「中止」の値をどれほど木目
細かくするかを定める(例えば、+/-百万ドルに対して+/-1ドル)。
【0242】
各当事者は自分の「中止」数を自分のNAに入力する。
【0243】
ASCUS技術を用いれば、これらのNAは自分の「中止」数を暗号化して、取引が可
能であるか否かを判定することができる。
【0244】
一旦、各装置上での計算を完了すると、「続行」または「中止」の答えを両当事者に提
出し、この時点で、両当事者は、立ち去るか、あるいは妥協点に達することのできる実際
の交渉を誠意をもって開始するかを選定することができる。
【0245】
約束のあるピア・ツー・ピアの直接交渉
上述した第1のモデルは、(その成果にかかわらず)交渉にかかわることを望む2つ(
以上)の当事者に大きな価値をもたらすことができる。しかし、最初の交渉プロセスが、
取引が可能であることを示すものと仮定しても、標準的な交渉戦術がまだ必要である。1
つの修正は、各当事者が互いに最適な価格設定(MOP:Mutually Optimal Pricing)を
実現することを保証しつつ、これらの取引を簡略化して促進するためのモデルである。互
いに最適な価格設定は、元の「中止」数を開示し、次に差を2者間で分け合うことによっ
て実現される。このことは、買い手及び売り手が共に、交渉の終わりに受け入れたであろ
う価格よりも良い価格を実現し、その結果を迅速に、かつ対立的な交渉戦術の感情的影響
なしに実現することを保証する。
【0246】
このプロセスを効果的にするためには、各当事者が、最初の交渉を実行する前に、これ
らの条件下で取引を完了することを約束する必要がある。この約束は、他の当事者との適
法契約の完了を要求することによって、NAを通して得ることができる。このことは、デ
ジタル署名または法的に容認された他の結合手段を用いて実現することができる。取引の
あり得る規模次第では、NAは個人向け電子銀行取引(例えばPayPal(ペイパル:
登録商標)、Google Wallet(グーグル・ウォレット:登録商標))情報の
提供を同時に求めて、交渉の完了時に資金を直接移動することができることを保証するこ
とができる。直接の資金移動が可能でない場合、NAは、適切な購入注文/納品書・請求
書(インボイス)を必要に応じて当事者に提供することができる。
【0247】
この取引のブローカーのように、NAは取引の料金を徴収することができ、この料金は
均一料金、取引総額の一定割合、または2つの「中止」数間の差の一定割合であり、こう
して、取引の料金が2つの当事者のためのMOPの実現に悪影響を与えないことを保証す
る。この料金は、NAの実現に応じた種々の手段によりNA内で徴収することができ、N
Aの実現は、直接的なクレジットカード課金、EFT(electronic fund transfer:電子
決済、電子資金移動)、PayPal(登録商標)、または他のデジタル手段、iTun
es(登録商標)によるアプリケーション内課金、Google Play(グーグルプ
レイ:登録商標)、Amazon Marketplace(アマゾン・マーケットプレ
イス:登録商標)、等を含む。
【0248】
MOPはあらゆる個別の取引にとって理論的に最適であるが、売り手の最低価格を頻繁
に変更することができず、販売の完了による最低価格の開示が商売に損害を与え得る商品
を販売する大企業(例えば、自動車の販売業者)にとっては最適でないことがある。こう
した状況では、NAは、プロセス中に実際の価格をユーザに示すことを防ぎ、最終的な取
引価格だけを報告するためのステップを踏むことができる。もちろん、MOPに到達する
ための機能を知っていれば、元の「中止」価格はその機能から決定することができる。こ
のことを最終的に回避するために、NAはその代わりに、価格の単純なランダム選択から
、大きく変化する料率に及び、追加的かつより巧妙な方法に至る広範な手段を用いて、互
いに有益な価格(MBP:Mutually Beneficial Price)を選択することができ、MBP
は「中止」価格間にあるが、必ずしもこれらの価格の中間値ではない。
【0249】
本明細書中に引用したすべての参考文献は、その全文を参照することによって本明細書
に含める。
【0250】
以上の説明は、本発明の技術の種々の態様を例示することを意図している。本明細書中
に提示する例は、添付した特許請求の範囲を限定することは意図していない。本発明はこ
こで十分に説明されており、添付した特許請求の範囲の精神及び範囲から逸脱することな
しに、多数の変更及び修正を本発明に加えることができることは、通常の当業者にとって
明らかである。さらに、添付した特許請求の範囲は、本明細書中に説明した種々の実施形
態のいくつかを代表すること、及び、そのように説明しているが添付した請求項のうちの
1つには表現していないあらゆる実施形態は、同時に発生する優先権の喪失なしに、本願
の優先権を主張する応用の形で、請求項の形に表現することができることも明らかである
。