説明

シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム

【課題】暗号化された編集距離を、挿入コスト、削除コスト、及び置換コストに基づいて、第1のシーケンスから第2のシーケンスへの変形の最小コストの暗号化として求めるためのシステム及び方法を提供する。
【解決手段】行列326の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として再帰的に求め、動的計画法による解345を生成する。第1の要素は挿入コスト332を表し、第2の要素は削除コスト334を表し、第3の要素は置換コスト336を表す。現在の要素、第1の要素、第2の要素、及び第3の要素は、公開鍵360を用いて準同型に暗号化される。そしてこの方法300は、動的計画法による解345を暗号化された編集距離として選択する。この方法300のステップは、第1のプロセッサ310及び第2のプロセッサ320によって実行される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、包括的には2つのシンボルシーケンス間の編集距離を求めることに関し、より詳細には、2つのシンボルシーケンス間の暗号化された編集距離をセキュアに求めることに関する。
【背景技術】
【0002】
2つのシンボルシーケンス間の編集距離(レーベンシュタイン距離とも呼ばれる)は通常、第1のシーケンスを第2のシーケンスに変形するのに必要とされる編集操作の最小数として定義される。ここで、許容可能な編集操作は、一度につき単一のシンボルの挿入、削除、又は置換である。シンボルは、ほんの数例を挙げれば、ビット、文字、数字、グリフ、DNAヌクレオチド、OCR文字、又は指紋特徴点マップであり得る。
【0003】
編集距離は、多数の生物情報学及びデータマイニングの用途において重要な基準である。さらに、2つの入力シーケンスに共通の最長のサブシーケンスの長さが編集距離に関係付けられる。たとえば、2つの入力文字列、「JANUARY」及び「FEBRUARY」における最長の共通サブシーケンスは「UARY」である。
【0004】
編集距離、及び最長の共通サブシーケンスの長さは共に、たとえばワグナー−フィッシャー(Wagner-Fischer)法又はニードルマン−ウンシュ(Needleman-Wunsch)法を使用する動的計画法を介して求めることができる。シンボルシーケンスの長さがそれぞれn及びmである場合、動的計画法による解法はサイズn×mの行列のエントリを求めることを伴う。
【0005】
図1は、2つの入力文字列、すなわち長さmのs及び長さnのtをとり、これらの2つの文字列間の編集距離を計算する関数EditDistanceのための擬似コードを示している。
【0006】
図2は、2つの文字列「FAST」230及び「FIRST」240のための、動的計画法による解法によって使用される行列210を示している。行列の要素は、以前に求められた要素の値に基づいて再帰的に求められる。終了時に、行列の右下の要素が編集距離220を提供する。
【0007】
しかしながら、動的計画法による解法はプライバシーを提供しない。2つのプロセッサが動的計画法による解法を使用してシーケンス間の編集距離を得る場合、各プロセッサは、各文字列からの全てのシンボルを知ることになる。用途によっては、シーケンスからのシンボルを明らかにすることなく編集距離を求めることが必要である。
【0008】
プライバシーを必要とする用途の一例では、第1のプロセッサは、たとえばスミス・ウォーターマン(Smith-Waterman)アルゴリズムを使用して遺伝性疾患に対する罹患性を検査されるDNAシーケンスを有する患者に関する情報を格納する。第2のプロセッサは、これらの疾患に対応するシーケンスのデータベースを有する。患者のプライバシーを保護するために、患者情報は第2のプロセッサに公開されない。同様に、データベース内のシーケンスを分離するには、かなりの調査、時間、及び投資が必要となった場合があるため、第2のプロセッサは、事業を守るために、データベースを公開することを所望しない。それにもかかわらず、第2のプロセッサ及び第1のプロセッサは、患者のDNAシーケンスとデータベース内に格納されているDNAシーケンスとの間の編集距離を求めて、患者のDNAシーケンスが、第2のプロセッサのデータベース内の診断のためのDNAシーケンスのうちのいずれかと概ね適合するか否かを判断する必要がある。法科学におけるDNAプロファイリングは同様のプライバシー要件を有する。
【0009】
プライバシー制約の下で編集距離を求めることは、セキュアな多者計算(secure multiparty computation)(SMC)を使用することができる。SMCでは、2者の入力の任意の関数を代数回路として表すことができる限り、該2者は該関数をセキュアに計算することができる。しかしながら、2者計算問題の解は、出力及び入力が代数回路によって関係付けられており、非常に少数の入力シーケンスの場合であっても実施するのが複雑である。特に、これらの方法は、高い計算複雑度及び高い通信オーバーヘッドを有する紛失通信プロトコルに依存する。上述したDNA適合問題のような問題に対する実際的な解のために、扱いやすい計算複雑度を有すると共に、2者間の比較的少数の暗号化された送信を必要とするセキュアなプロトコルを考案することが必要である。
【0010】
たとえば、1つの方法は、第3のセミオネストであるが信頼されるプロセッサを使用して編集距離をセキュアに求める。しかしながら、第3のプロセッサは常に利用可能であるとは限らない。さらに、第3のプロセッサは、プロセッサのうちの一方と結託し、それによって他方のプロセッサによって処理されるシーケンスを見つけ出す可能性がある。
【0011】
別の方法は、2者対称プロトコルを開示する。すなわち、2つのプロセッサが、計算複雑度及び通信の観点において全く等しいプロトコルオーバーヘッドを受ける。プロトコルの終了時に、2つのプロセッサはそれぞれ、編集距離が取得される、上述したm×nの行列の加法シェア(additive share)を保有する。しかしながら、この方法はプロセッサ間で多数の暗号化された送信を必要とする。さらに、この方法は、非常に限られた種類の置換コストに対してしか効果的に機能しない。
【発明の概要】
【発明が解決しようとする課題】
【0012】
したがって、2つのシンボルシーケンス間で暗号化された編集距離をセキュアに求めるための計算効率のよい方法を見出す必要がある。
【0013】
この発明の実施の形態は、数字の最小値の暗号化を準同型に暗号化された形式で求めるように構成される最小値発見方法を開示する。
【課題を解決するための手段】
【0014】
この発明の1つの実施の形態は、暗号化された編集距離を、挿入コスト、削除コスト、及び置換コストに基づいて、第1のシーケンスから第2のシーケンスへの変形の最小コストの暗号化として求めるための方法を開示する。この方法は、行列の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として再帰的に求め、動的計画法による解を生成する。前記第1の要素は挿入コストを表し、前記第2の要素は削除コストを表し、前記第3の要素は置換コストを表し、前記現在の要素、前記第1の要素、前記第2の要素、及び前記第3の要素は、公開鍵を用いて準同型に暗号化される。この方法は、動的計画法による解を前記暗号化された編集距離として選択する。この方法のステップは、第1のプロセッサ及び第2のプロセッサによって実行され、前記第1のシーケンスが前記第1のプロセッサにのみ格納されると共に前記第2のプロセッサから秘密にされ、前記第2のシーケンスが前記第2のプロセッサにのみ格納されると共に前記第1のプロセッサから秘密にされるようにする。
【0015】
この発明の別の実施の形態は、暗号化された編集距離を、挿入コスト、削除コスト、及び置換コストに基づいて、第1のシーケンスから第2のシーケンスへの変形の最小コストの暗号化として求めるように構成されるシステムであって、前記最小コストは行列の動的計画法による解であり、前記行列の要素は、以前に求められた要素の値に基づいて再帰的に求められる、システムを開示する。
【0016】
このシステムは、第2のプロセッサとインタラクトして、前記行列の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として求めるように構成される第1のプロセッサであって、前記第1の要素は前記挿入コストを表し、前記第2の要素は前記削除コストを表し、前記第3の要素は前記置換コストを表し、前記現在の要素、前記第1の要素、前記第2の要素、及び前記第3の要素は、公開鍵を用いて準同型に暗号化されるものと、加法的準同型暗号化の特性に基づいて、前記第1の要素、前記第2の要素、及び前記第3の要素を求めるように構成される第2のプロセッサであって、前記第1のシーケンスは前記第1のプロセッサにのみ格納されると共に該第2のプロセッサから秘密にされ、前記第2のシーケンスは該第2のプロセッサにのみ格納されると共に前記第1のプロセッサから秘密にされるものと、前記動的計画法による解を再帰的に求める手段と、前記動的計画法による解を前記暗号化された編集距離として選択する手段とを備える。
【図面の簡単な説明】
【0017】
【図1】2つの入力シンボルシーケンス、すなわち長さmのs及び長さnのtをとり、これらの2つの入力シーケンス間の編集距離を計算する従来技術の関数EditDistanceの擬似コードである。
【図2】2つの文字列「FAST」及び「FIRST」のための、動的計画法による解によって使用される行列210である。
【図3】この発明の実施の形態による、暗号化された編集距離をセキュアに求めるための方法の概略図である。
【図4】この発明の実施の形態による、暗号化された数字の集合において最小の数字の暗号化を求めるための方法のブロック図である。
【図5】この発明の実施の形態による、暗号化された数字の集合において最小の数字の暗号化を求めるための方法のブロック図である。
【図6】この発明の実施の形態による、置換コストを求めるための方法の擬似コードである。
【図7】この発明の実施の形態による、置換コストを求めるための方法の擬似コードである。
【発明を実施するための形態】
【0018】
暗号化された編集距離
図3は、暗号化された編集距離345を、シンボルの第1のシーケンス315からシンボルの第2のシーケンス325への変形の最小コストの暗号化としてセキュアに求める方法300の概略図を示している。変形のコストは、下記でより詳細に説明するように、挿入コスト332、削除コスト334、及び置換コスト336に基づいて求められる。この明細書において定義される場合、挿入コストはシンボルを第2のシーケンス内に挿入するコストであり、削除コストは第2のシーケンスからシンボルを削除するコストであり、置換コストは第2のシーケンスからのシンボルを第1のシーケンスからのシンボルに置換するコストである。
【0019】
シーケンス315及び325内のシンボルは、たとえば、ビット、文字、数字、及びDNAヌクレオチドであり得る。この発明の様々な実施の形態において、置換コスト、挿入コスト、及び削除コストは、定数であるか、又は置換、挿入、若しくは削除されるシンボルに依拠する。
【0020】
方法300のステップは第1のプロセッサ310及び第2のプロセッサ320によって実行され、第1のシーケンスが第1のプロセッサにのみ格納され、第2のシーケンスが第2のプロセッサにのみ格納されるようにされる。第1のプロセッサと第2のプロセッサとの間で送信される(330)データは、公開鍵360を用いて準同型に暗号化される。公開鍵は、第1のプロセッサ及び第2のプロセッサの双方に利用可能である。しかしながら、第1のプロセッサのみが秘密鍵350を有し、このため、第1のプロセッサのみがシンボルを復号することができる。
【0021】
この発明の実施の形態は、変形の最小コストを、システム、すなわち行列326の動的計画法による解として定式化する。行列の暗号化された(ζ)要素は、以前に求められた要素の値に基づいて再帰的に求められる。
【0022】
第1のシーケンス
【0023】
【数1】

【0024】
及び第2のシーケンス
【0025】
【数2】

【0026】
は、方法300への入力である。シンボルx及びyは、有限アルファベット集合A(図示せず)に属する。便宜上、サブシーケンス
【0027】
【数3】

【0028】

【0029】
【数4】

【0030】
であり、ここで、インデックスa、bは適切な制限内にあり、シンボルyの挿入コストはI(y)であり、シンボルxの削除コストはD(x)であり、シンボルxをシンボルyに置換する置換コストはS(x,y)であり、ここでk及びiはシーケンス内のシンボルのインデックスである。
【0031】
挿入コストI(y)、削除コストD(x)、及び置換コストS(x,y)は様々な実施の形態にわたって変動する。
【0032】
M(i,j)がサブシーケンス
【0033】
【数5】

【0034】
をサブシーケンス
【0035】
【数6】

【0036】
に変形する最小コストである場合、1≦i≦n及び1≦j≦mについて以下となる。
【0037】
【数7】

【0038】
上述したように、式(1)における行列の要素は再帰的に求められる。すなわち、M(i,j)は、M(i−1,j)、M(i,j−1)、及びM(i−1,j−1)を使用して計算される。さらに、編集距離M(n,m)は、第1のシーケンス
【0039】
【数8】

【0040】
を第2のシーケンス
【0041】
【数9】

【0042】
に変形する最小コストである。図3に示す例では、文字列「FAST」及び「FIRST」間の編集距離340はM(4,5)=2である。
【0043】
方法300は、第2のプロセッサにおける暗号化された領域内の行列の要素を求め、第2のプロセッサは、秘密鍵なしで要素の値を復号することができない。この発明の実施の形態は、意味論的にセキュアな(semantically secure:強秘匿性の)準同型暗号化の特性に基づいて、暗号化された数字の集合から最小の数字をセキュアに求めることが可能であるという認識に基づいている。
【0044】
動的計画法による解345が暗号化された編集距離として選択される。暗号化された編集距離をメモリ(図示せず)内に格納しかつ/又は秘密鍵を用いた復号のために第1のプロセッサに送信することができる。
【0045】
図5は、編集距離を求めることが、式(1)に従ってM(i,j)を計算することにまで低減されたものを示している。それぞれ第1のシーケンス及び第2のシーケンスの全てのi及びj(1≦i≦n、1≦j≦m)について、第1のプロセッサ及び第2のプロセッサは、最小値発見方法400を使用して、行列の現在の要素460を、第1の要素510、第2の要素520、及び第3の要素530の最小値の暗号化として求める。ここで、第1の要素は挿入コスト332を表し、第2の要素は削除コスト334を表し、第3の要素は置換コスト336を表し、現在の要素、第1の要素、第2の要素、及び第3の要素は、公開鍵360を用いて準同型に暗号化される(540)。現在の要素M(i,j)の暗号化された値は、
ξ(min{M(i−1,j−1)+S(x,y),M(i−1,j)+D(x),M(i,j−1)+I(y)})=ξ(M(i,j))
に従って求められる。
【0046】
値M(i−1,j−1)344、M(i,j−1)346、及びM(i−1,j)342は、方法300の以前の反復によって求められる。挿入コストI(y)の暗号化、すなわちξ(I(y))は、第1のプロセッサから第2のプロセッサに送信される。削除コストD(x)及びしたがって暗号化ξ(D(x))は第2のプロセッサに利用可能である。置換コストS(x,y)の暗号化、すなわちξ(S(x,y))は、下記で説明するように動的に提供されるか又は求められる。
【0047】
挿入コストを表す第1の要素は、加法的準同型暗号化の特性に基づいて
ξ(I(y))ξ(M(i,j−1))=ξ(I(y)+M(i,j−1))
に従って求められる。
【0048】
削除コストを表す第2の要素は、加法的準同型暗号化の特性に基づいて
ξ(D(x))ξ(M(i−1,j))=ξ(D(x)+M(i−1,j))
に従って求められる。
【0049】
置換コストを表す第3の要素は、加法的準同型暗号化の特性に基づいて
ξ(S(x,y))ξ(M(i−1,j−1))=ξ(S(x,y)+M(i−1,j−1))
に従って求められる。
【0050】
次に、最小値発見方法は、第1の要素、第2の要素、及び第3の要素を入力として受け取り(550)、現在の要素を最小値の暗号化された値として求める。実施の形態では、現在の要素、第1の要素、第2の要素、及び第3の要素は公開鍵を用いて準同型に暗号化される。
【0051】
いくつかの実施の形態では、初期要素M(1,1)のための置換コストの表現、すなわちM(0,0)+S(x,y)は、全ての可能なx,yについて双方の要素M(0,1)及びM(1,0)以下である。さらに、挿入コスト及び削除コストは全てのシンボルについて等しく、双方のプロセッサに知られている。1つのそのような一般的に発生する例が図2及び図3に示されている。それらの図においてM(0,0)=0、S(x,y)=1である。この実施の形態において、任意のシンボルのための挿入コスト及び削除コストは1であり、このため双方のプロセッサがM(0,1)=M(1,0)=1であることを知っている。したがって、要素M(1,1)の暗号化は最小値発見方法を使用して求められない。
【0052】
この実施の形態では、第2のプロセッサは、適切な置換コストを使用して、ξ(M(1,1))=ξ(S(x,y))に従って初期の暗号化された要素を求める。様々な実施の形態において、置換コストの暗号化は、所定であるか又は下記で説明するように動的に計算される。
【0053】
行列M内の各要素の暗号化を再帰的に求めた後、1つの実施の形態において、第2のプロセッサは、暗号化された編集距離ξ(M(n,m))の値を第1のプロセッサに送信する。第1のプロセッサはこの値を復号し、2つのシーケンス
【0054】
【数10】

【0055】
及び
【0056】
【数11】

【0057】
間の編集距離を取得する。1つの実施の形態では、第1のプロセッサは編集距離の値を第2のプロセッサに返送する。このため、編集距離はプライバシーを侵害することなく求められる。すなわち、第1の信号は第1のプロセッサにのみ知られ、第2の信号は第2のプロセッサにのみ知られる。
【0058】
準同型暗号化
Pを二項演算子
【0059】
【数12】

【0060】
に関連付けられる平文の集合とし、Hを二項演算子
【0061】
【数13】

【0062】
に関連付けられる暗号文の集合とする。
【0063】
定義1
全てのa,b∈Pについて以下が成り立つ場合、マッピングξ:P→Hは準同型である。
【0064】
【数14】

【0065】
実施の形態は準同型暗号システムを使用する。準同型暗号システムにおいて、演算子
【0066】
【数15】

【0067】
は加法演算子であり、演算子
【0068】
【数16】

【0069】
は乗法演算子である。そのような暗号システムは、加法性準同型の、たとえばベナロー(Benaloh)暗号システム及びパイエ(Paillier)暗号システムと呼ばれることがある。これらの双方の暗号システムは意味論的にセキュアである。すなわち、同じ平文の反復暗号化の結果、異なる暗号文が生じる。この発明の実施の形態は、様々な意味論的にセキュアな加法性準同型暗号システムを使用する。例として、パイエ暗号システムを以下に簡潔に要約する。
【0070】
構成:2つの大きな素数p、qを選択し、N=pqとする。
【0071】
【数17】

【0072】
によって、Nを法とする逆数を有する非負整数の集合を表す。gcd(L(gλ mod N),N)=1となるように
【0073】
【数18】

【0074】
を選択する。ここで、λ=lcm(p−1,q−1)及び
【0075】
【数19】

【0076】
である。(N,g)を公開鍵とし、(p,q)を秘密鍵とする。
【0077】
暗号化:
【0078】
【数20】

【0079】
を平文とする。次いで、暗号文が以下によって与えられる。
ξ(m)=g・r mod N (2)
ここで、
【0080】
【数21】

【0081】
はランダムに選択される数字である。
【0082】
復号:
【0083】
【数22】

【0084】
を暗号文とする。次いで、以下に従って対応する平文が求められる。
【0085】
【数23】

【0086】
復号は暗号化の間に使用される数字rの値に関わらず機能する。数字rは全ての暗号化ごとにランダムで選択することができるため、パイエ暗号システムは確率的であり、したがって意味論的にセキュアであり、すなわち
【0087】
【数24】

【0088】
である。
【0089】
また、式(2)に従った、平文集合(Z,+)から暗号文集合
【0090】
【数25】

【0091】
へのマッピングの特性は、以下の関係を満たす。
【0092】
【数26】

【0093】
【数27】

【0094】
ここで、m及びmは任意の2つの整数メッセージであり、上記で説明した暗号システムを使用して暗号化される。上記の下付き文字r、rは、式(2)におけるパラメーター「r」を表し、式(2)における「r」の異なる値によって結果として異なる暗号文が生じるように、暗号化時に選択される。「r」の値を暗号化ごとに変更することによって、パイエ暗号化は意味論的セキュリティを達成する。この明細書において、意味論的セキュリティの概念に関連しない場合、下付き文字「r」は表記を簡単にするために省かれる。
【0095】
この発明のいくつかの実施の形態はパイエ暗号化を使用する。しかしながら、他の実施の形態は他の意味論的にセキュアな加法性準同型方式を使用する。
【0096】
最小値発見方法
図4は、この発明の実施の形態による、暗号化された数字の集合における最小の数字の暗号化を求めるための方法400のブロック図である。方法400は、この発明の実施の形態によって、行列の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として求めるのに使用される。
【0097】
たとえば、第2のプロセッサ320は、準同型に暗号化された形式の数字の集合
【0098】
【数28】

【0099】
たとえば、L個の数字a,a,…,a
【0100】
【数29】

【0101】
410を格納する。最小値発見方法によって、第2のプロセッサが、これらの数字の最小値の暗号化を求める、すなわち、或る係数
【0102】
【数30】

【0103】
について、ξ(min{a})460を求めることが可能になる。方法400は、第2のプロセッサが、a又は最小値のインデックス若しくは値に関するいかなる情報も見つけ出すことを可能にしない。
【0104】
同様に、第1のプロセッサは数字a,a,…,aに関するいかなる情報も見つけ出さない。この方法のステップは以下の通りである:
【0105】
1. 第2のプロセッサが、正の整数μ及びα450をランダムに選択する。すなわちμはスケーリング定数であり、αはランダムに選択される整数シフトである。パイエ暗号システムの場合、μを後に除去することができることを確実にするために、第2のプロセッサはμを集合
【0106】
【数31】

【0107】
からランダムに選択する。次いで、第2のプロセッサは公開鍵360を使用して暗号化
【0108】
【数32】

【0109】
451を取得し、i=1,2,…,Lについて暗号化された和
【0110】
【数33】

【0111】
420を求めて暗号化された和の集合420を生成し、該暗号化された和の集合を第1のプロセッサに送信する(425)。パイエ暗号システムの場合、暗号化係数r’=rであり、第2のプロセッサは暗号化係数rを知ることなく暗号化係数r’を求めることができない。
【0112】
2. 第1のプロセッサが秘密鍵350を用いて数字を復号し、min{μa}+α 430によって与えられる最小値を求め、次いで、その結果を公開鍵を用いて暗号化して暗号化された最小値
【0113】
【数34】

【0114】
460を生成し、該暗号化された最小値を第2のプロセッサに返送する(465)。
【0115】
3. 第2のプロセッサが
【0116】
【数35】

【0117】
452を計算し、
【0118】
【数36】

【0119】
470を求める。
【0120】
非常に高い確率で、ξ(min{μa})が、暗号化
【0121】
【数37】

【0122】
のうちのいずれとも等しくないことに留意されたい。これは、第1のプロセッサが、第2のプロセッサに知られていないランダムな暗号化係数rを選択し、これによって暗号化が意味論的にセキュアになるためである。これによって、第2のプロセッサが最小値の暗号化を取得するとき、元のシーケンス
【0123】
【数38】

【0124】
における最小値のインデックスが第2のプロセッサから隠されたままであることが確実になる。
【0125】
4. 第2のプロセッサは、
(ξ(min{μa}))1/μ=(ξ(μmin{a}))1/μ=ξ(min{a})
に従って、いずれが暗号化された最小値460であるのかを確定する(480)。
【0126】
正の整数μ及びαを使用することによって、第1のプロセッサが数字αのいかなる情報を見つけ出すことも阻止されることに留意されたい。さらに、意味論的セキュリティに起因して、第2のプロセッサは最小値のインデックス「i」を見つけ出すことができない。最後に、第2のプロセッサは、復号鍵を有しないため、最小値の実際の値を求めることができない。
【0127】
編集距離を求めるために、3つの値、すなわち上記のL=3を用いて最小値発見方法が実行される。1つの実施の形態では、各シンボルが正の挿入コスト及び削除コスト、並びに非負の置換コストを有する。
【0128】
他の実施の形態では、いくつかのシンボルは負若しくはゼロの挿入コスト及び/又は負若しくはゼロの削除コストを有する。付加的に又は代替的に、挿入コスト、削除コスト、及び置換コストに対応する3つのエントリ全てを等しくすることができる。そのような場合、第1のプロセッサが変数μ及びαの値を求めることができない場合であっても、第1のプロセッサは各シンボルの挿入コストに基づいて、最小値を求めることができる。
【0129】
そのような実施の形態では、第2のプロセッサは、ベクトル
【0130】
【数39】

【0131】
に2つ以上の「ダミー」変数を付加する。すなわち、L>3である。最小値発見方法の各反復において、第1のプロセッサがダミー変数に関するいかなる情報を取得することも阻止するために、異なるダミー変数及び/又は異なる数のダミー変数が使用される。次いで、第1のプロセッサは、上記のステップ2のように復号し最小値を求めた後で、1つ又は複数の暗号化された値を求めて該値を第2のプロセッサに送信する。
【0132】
たとえば、いくつかの実施の形態では、第2のプロセッサはベクトル
【0133】
【数40】

【0134】
にダミーの変数ξ(A)及びξ(B)を付加する。ここで、aの全ての値と比較して、変数Aは大きい数であり、変数Bは小さい数である。次いで、第2のプロセッサは、第1のプロセッサからの2つの最も小さい値の暗号化を要求する。その際いずれの値が最も小さく、いずれの値が2番目に小さいかが特定される。
【0135】
第1のプロセッサは最も小さい値が変数Bに対応することを知っているため、第2のプロセッサは、第1のプロセッサから受信した最小値のインデックスに対応する暗号化された要素を除外し、真の最小値の暗号化された値として2番目に小さい値の暗号化を選択する。
【0136】
いくつかの実施の形態では、共通の定数αを有する代わりに、第2のプロセッサは2の累乗としてμを使用し、全てのi=1,2,…,Lについてα<μとなるように様々な等しくない定数α、α,…,αを選択する。第2のプロセッサは、上記のステップ1のように暗号化ξ(μa+α)を第1のプロセッサに送信する。次いで、第1のプロセッサは、ステップ2と同様に、暗号化を復号し、最小値min μa+αを求める。しかしながら、第1のプロセッサは、最小値の暗号化を返送する代わりに、最小値をバイナリに変換し、各ビットを暗号化し、該暗号化されたビットを第2のプロセッサに送信する。第2のプロセッサがα、α,…,αの値を選択したため、第2のプロセッサはαに対してどれだけ多くのビットが利用されたかを正確に知り、μによってスケーリングされた所望の最小値に対して残りのビットが利用されたことを知っている。全てのi=1,2,…,Lについてα<μであるため、これらのビット間に重複が存在しないことに留意されたい。このため、準同型暗号化の特性を使用して、第2のプロセッサはμによってスケーリングされた最小値に対応するビットを取得する。次いで、第2のプロセッサは上記のステップ4に従ってμによって乗算を反転させる(reverse the multiplication)。第1のプロセッサは、aの値のうちの1つ又は複数が等しい場合であっても、最小値の値を知ることを阻止される。
【0137】
置換コストを求める
この発明の実施の形態は、行列の現在の要素を、挿入コスト、削除コスト、及び置換コストを表す要素の最小値の暗号化として求める。異なる実施の形態では、挿入コスト、削除コスト、及び置換コストは所定であるか、動的に求められるか、又はそれらの組み合わせが使用される。
【0138】
たとえば、1つの実施の形態では、挿入コスト、削除コスト、及び置換コストは所定である。これらの実施の形態の1つの変形形態では、全てのコストは整数値である。別の実施の形態では、挿入コスト及び削除コストは所定であるが、置換コストは動的に求められる。この実施の形態の1つの変形形態では置換コストは置換されるシンボルの値に基づいて求められる。
【0139】
定数の置換コスト
1つの実施の形態では、置換コストは、第1のシーケンス及び第2のシーケンスが異なる場合に或る定数であり、シンボルが同一である場合にゼロである。この実施の形態の1つの変形形態は、アルファベットのシンボルを整数集合{1,2,3,…,Q}にマッピングする。ここでQはアルファベット集合のサイズである。たとえば、シンボルA、T、C、Gを有するDNAシーケンスの場合、サイズQ=4である。この実施の形態における置換コストは、a=bの場合にS(a,b)=0であり、a≠bの場合にS(a,b)である。ここでaは第1のシーケンスのシンボルであり、bは第2のシーケンスのシンボルである。
【0140】
図6は、以下のステップに従って定数の置換コストを求めるための方法の擬似コードを示している。
1.第1のプロセッサが第1の文字列のシンボル「a」を、最初の「a」個のビットが1に等しく、最後のQ−a個のビットが0に等しい長さQの第1のバイナリシーケンスに変換する。第1のバイナリ文字列からの文字列はaとして定義される。ここでiは1からQの範囲をとる。同様に、第2のプロセッサが第2のシーケンスのシンボル「b」を、最初の「b」個のビットが1に等しく、最後のQ−b個のビットが0に等しい長さQの第2のバイナリシーケンスに変換する。
2.第1のプロセッサが、第1のバイナリシーケンス内の各ビットの暗号化を第2のプロセッサに送信する。
3.第2のプロセッサが、第2のバイナリ列からの第1のビット及び第2のビット、並びに第1のバイナリシーケンスからの第1の暗号化されたビット及び第2の暗号化されたビットから、
ξ(U)=ξ(a−a)=ξ(a)ξ(−a)=[ξ(b)のa乗][ξ(b)の(−a)乗]
に従って2×2の行列式を計算する。
4.第2のプロセッサが双方のバイナリシーケンスからの第2のビット及び第3のビットに対して、次いで第3のビット及び第4のビットに対して、そして以下同様に、長さQのシーケンス全体が使い果たされるまで以前のステップを反復する。このようにして、第2のプロセッサは暗号化された2×2の行列式ξ(U),ξ(U),…,ξ(UQ−1)を求める。
5.第2のプロセッサは行列式ξ(U)の和をΠξ(U)=ξ(Σ)として計算する。ここでiは1からQ−1で変動する。これは加法的準同型暗号化の特性を使用する。
6.第2のプロセッサは数字dをランダムに選択し、ξ(U+d)=ξ(U)ξ(d)を計算し、結果を第1のプロセッサに送信する。
7.第1のプロセッサは2つの数字を暗号化し、積(U+d)=U’を求め、積U’を暗号化してξ(U’)を第2のプロセッサに返送する。
8.第2のプロッセッサーがξ(U’)ξ(−2dU)ξ(−d)=ξ(U’−2dU−d)=ξ(U)を計算する。
【0141】
構築によって、U=0、1、又は−1である。したがって、Uは、シンボル「a」及び「b」が同じであるか又は異なっているかにそれぞれ依拠して、0又は1である。このため、ξ(U)は置換コストの暗号化された値を提供する。第2のプロセッサは、実際の時間コストではなく暗号化された置換コストしか取得しない。これは、第2のプロセッサが復号鍵を有しないためである。第1のプロセッサは数字「d」を知らないことに起因して何も知らない。
【0142】
絶対距離置換コスト
別の実施の形態では、置換コストは第1のシーケンスのシンボルと第2のシーケンスのシンボルとの間の絶対距離であり、すなわち、シンボルがそれぞれ「a」及び「b」である場合、置換コストS(a,b)=|a−b|である。上述の実施の形態と同様に、アルファベットにおけるシンボルは整数集合{1,2,3,…,Q}にマッピングされる。最小化プロトコルによれば、第1のプロセッサは置換コストの暗号化を求めることができる。第2のプロセッサは求めることができない。
【0143】
図7は、以下のステップに従って絶対距離置換コストを求めるための方法の擬似コードを示している。
1.第1のプロセッサが第1のシーケンスのシンボル「a」を、最初の「a」個のビットが1に等しく、最後のQ−a個のビットが0に等しい長さQの第1のバイナリシーケンスに変換する。第1のバイナリ文字列からの文字列はaとして定義される。ここでiは1からQの範囲をとる。同様に、第2のプロセッサが第2のシーケンスのシンボル「b」を、最初の「b」個のビットが1に等しく、最後のQ−b個のビットが0に等しい長さQの第2のバイナリシーケンスに変換する。
2.第1のプロセッサが、バイナリシーケンス内の各ビットの暗号化を第2のプロセッサに送信する。
3.第2のプロセッサが、加法的準同型暗号化の特性に基づいて以下の式に従って置換コストの暗号化ξ(S(a,b))を求める。
4.
【0144】
【数41】

【0145】
多項式関数置換コスト
別の実施の形態では、参照によりこの明細書に援用される米国特許出願第12/495,721号に記載されているように、置換コストは2つのシーケンスのシンボルに多項式関数を適用した結果である。たとえば、第2のプロセッサは整数aを格納し、第1のプロセッサは整数bを格納する。実施の形態は、第2のプロセッサにおいて、暗号化された形式の置換コスト
【0146】
【数42】

【0147】
を求める。
【0148】
置換コストS(a,b)=(a−b)はbにおける次数Sの多項式であり、すなわち0≦j≦Sである。このため、第2のプロセッサは、或る暗号化係数
【0149】
【数43】

【0150】
について置換コストξ(Σi,jij)を求める。第2のプロセッサは、秘密鍵を保有していないため、置換コストを復号することができない。第1のプロセッサは整数bの値しか知らない。ステップは以下の通りである:
1.0≦j≦Sについて、第1のプロセッサがbを暗号化し、
【0151】
【数44】

【0152】
を第2のプロセッサに送信する。
2.第2のプロセッサがci,j及びaの値に基づいて
【0153】
【数45】

【0154】
を求める。
【0155】
この方法は、紛失通信に基づく方法と比較して、多項式評価法に関して大幅に低い計算及び通信のオーバーヘッドを受ける。紛失通信に基づく方法は非常に単純な多項式の場合であっても極度に複雑となり、大きな送信オーバーヘッドを受ける。
【0156】
最も長い共通サブシーケンス
この発明の1つの実施の形態は、第1のシーケンスと第2のシーケンスとの間の最も長い共通サブシーケンスの長さを求める。この実施の形態は、多くの点において編集距離を求めるための実施の形態に類似している。主な違いは2つしかない。
【0157】
第1に、方法の各ステップにおいて3つの要素の最小値を計算する代わりに、この実施の形態は3つの要素の最大値を求める。たとえば、数値の場合、2つのプロセッサは全ての値の符号を逆にし、上述した最小値発見方法を使用する。
【0158】
第2に、セッサがmn個の暗号化された要素を用いて1つ又は複数の最大値発見プロトコルを実行して、所望の結果を取得することを意味する。所望の結果は、最も長い共通サブシーケン編集距離を行列の最後の要素M(n,m)として選択する代わりに、行列全体を検索して該行列内の最大の要素を発見する。最大の要素の暗号化は、行列M内の各要素の符号を逆にし、上述した最小化プロトコルを適用することによって発見することができる。次いで、取得した結果が第1のプロセッサに送信され、第1のプロセッサは、該結果を復号して最大の要素を取得する。最大の要素は最も長い共通サブシーケンスの長さを与える。これは、行列全体を計算した後、2つのプロスの長さの暗号化である。
【0159】
この発明を好ましい実施の形態の例として説明してきたが、この発明の精神及び範囲内で様々な他の適応及び変更を行うことができることは理解されたい。したがって、添付の特許請求の範囲の目的は、この発明の真の精神及び範囲内に入るすべての変形及び変更を包含することである。

【特許請求の範囲】
【請求項1】
暗号化された編集距離を、挿入コスト、削除コスト、及び置換コストに基づいて、第1のシーケンスから第2のシーケンスへの変形の最小コストの暗号化として求めるための方法であって、
前記最小コストを、行列の動的計画法による解として定式化するステップであって、前記行列の要素が、以前に求められた要素の値に基づいて再帰的に求められるものと、
前記行列の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として求めるステップであって、前記第1の要素は前記挿入コストを表し、前記第2の要素は前記削除コストを表し、前記第3の要素は前記置換コストを表し、前記現在の要素、前記第1の要素、前記第2の要素、及び前記第3の要素が、公開鍵を用いて準同型に暗号化されるものと、
前記求めるステップを再帰的に反復して前記動的計画法による解を生成するステップと、
前記動的計画法による解を前記暗号化された編集距離として選択するステップと、
を含み、該方法の複数の前記ステップは、第1のプロセッサ及び第2のプロセッサによって実行され、前記第1のシーケンスが前記第1のプロセッサにのみ格納されると共に前記第2のプロセッサから秘密にされ、前記第2のシーケンスが前記第2のプロセッサにのみ格納されると共に前記第1のプロセッサから秘密にされるようにする、方法。
【請求項2】
前記求めるステップは、意味論的にセキュアな準同型暗号化の特性に基づくものである、請求項1に記載の方法。
【請求項3】
前記第1のプロセッサ及び前記第2のプロセッサに前記公開鍵を提供するステップと、
前記第1のプロセッサにのみ秘密鍵を提供するステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記暗号化された編集距離を前記第1のプロセッサに送信するステップと、
前記暗号化された編集距離を前記秘密鍵を用いて復号するステップと、
をさらに含む、請求項3に記載の方法。
【請求項5】
前記行列の初期要素を前記置換コストとして求めるステップをさらに含み、前記第1の要素は前記第1のシーケンスの第1のシンボルであり、前記第2の要素は前記第2のシーケンスの第1のシンボルである、請求項1に記載の方法。
【請求項6】
前記現在の要素を
ξ(min{M(i−1,j−1)+S(x,y),M(i−1,j)+D(x),M(i,j−1)+I(y)})=ξ(M(i,j))
に従って求めるステップであって、ここで、ξ(.)は暗号化関数であり、M(i,j)は前記現在の要素であり、I(y)はシンボルyの前記挿入コストであり、D(x)はシンボルxの前記削除コストであり、S(x,y)は前記シンボルxを前記シンボルyに置換する前記置換コストであり、i及びjは前記シーケンス内の前記シンボルのインデックスであるものをさらに含む、請求項1に記載の方法。
【請求項7】
前記第1の要素を、加法的準同型暗号化の特性に基づいて
ξ(I(y))ξ(M(i,j−1))=ξ(I(y)+M(i,j−1))
に従って求めるステップと、
前記第2の要素を、加法的準同型暗号化の特性に基づいて
ξ(D(x))ξ(M(i−1,j))=ξ(D(x)+M(i−1,j))
に従って求めるステップと、
前記第3の要素を、加法的準同型暗号化の特性に基づいて
ξ(S(x,y))ξ(M(i−1,j−1))=ξ(S(x,y)+M(i−1,j−1))
に従って求めるステップと、
をさらに含む、請求項6に記載の方法。
【請求項8】
前記第1の要素、前記第2の要素、及び前記第3の要素を前記第1のプロセッサに送信するステップをさらに含む、請求項7に記載の方法。
【請求項9】
最小値発見方法を使用して前記現在の要素を求めるステップであって、該最小値発見方法が、準同系に暗号化された形式で数字の最小値の暗号化を求めるようにされているものをさらに含む、請求項1に記載の方法。
【請求項10】
前記第1の要素、前記第2の要素、及び前記第3の要素のそれぞれについて、暗号化された和を求めるステップであって、暗号化された和の集合を生成し、前記暗号化された和は
【数1】

に従って求められ、ここで、i=1,2,…,L及びL=3であり、μは定数であり、αはランダムに選択される整数シフトであり、r、rはランダムに選択される暗号化係数であり、暗号化係数r’=rであり、ξ(.)は暗号化関数であるものと、
前記第2のプロセッサから前記第1のプロセッサに前記暗号化された和の集合を送信するステップであって、前記第1のプロセッサは、秘密鍵を使用して前記暗号化された和を復号し、前記暗号化された和の集合から最小値を求めると共に、該最小値を前記公開鍵を用いて暗号化して前記現在の要素を生成するようにされたものと、
前記第2のプロセッサによって、前記第1のプロセッサから送信された前記現在の要素を受信するステップと、
をさらに含む、請求項9に記載の方法。
【請求項11】
スケーリング定数μを2の累乗として選択するステップと、
前記第2のプロセッサによって、各前記整数シフトが前記スケーリング定数よりも小さくなるように、前記第1の要素、前記第2の要素、及び前記第3の要素のために異なる整数シフトα、i=1,2,3を選択するステップと、
前記第2のプロセッサから前記第1のプロセッサに前記暗号化された和の集合を送信するステップであって、前記第1のプロセッサは秘密鍵を使用して前記暗号化された和を復号し、前記暗号化された和の集合から最小値を求め、該最小値をバイナリ形式に変換すると共に、該最小値を暗号化して暗号化されたビットを生成するものと、
前記第2のプロセッサによって、前記第1プロセッサから前記暗号化されたビットを受信するステップと、
前記整数シフトα及び前記スケーリング定数μに基づいて前記暗号化されたビットから関連するビットのみを選択するステップと、
をさらに含む、請求項10に記載の方法。
【請求項12】
前記置換コストは、前記第1のシーケンスからのシンボル及び前記第2のシーケンスからのシンボルの多項式関数である、請求項1に記載の方法。
【請求項13】
前記置換コストは、前記第1のシーケンスからのシンボルと前記第2のシーケンスからのシンボルとの間の絶対距離である、請求項1に記載の方法。
【請求項14】
前記置換コストは、前記第1のシーケンスからのシンボルが前記第2のシーケンスからのシンボルと異なる場合に或る定数であり、前記第1のシーケンスからの前記シンボルが前記第2のシーケンスからの前記シンボルと同一である場合にゼロである、請求項1に記載の方法。
【請求項15】
前記第1のシーケンスと前記第2のシーケンスとの間の最も長い共通サブシーケンスの長さを求めるステップをさらに含む、請求項1に記載の方法。
【請求項16】
暗号化された編集距離を、挿入コスト、削除コスト、及び置換コストに基づいて、第1のシーケンスから第2のシーケンスへの変形の最小コストの暗号化として求めるように構成されたシステムであって、前記最小コストは行列の動的計画法による解であり、前記行列の要素は、以前に求められた要素の値に基づいて再帰的に求められ、該システムは、
前記行列の現在の要素を、第1の要素、第2の要素、及び第3の要素の最小値の暗号化として求めるように構成される第1のプロセッサであって、前記第1の要素は前記挿入コストを表し、前記第2の要素は前記削除コストを表し、前記第3の要素は前記置換コストを表し、前記現在の要素、前記第1の要素、前記第2の要素、及び前記第3の要素は、公開鍵を用いて準同型に暗号化されるものと、
加法的準同型暗号化の特性に基づいて、前記第1の要素、前記第2の要素、及び前記第3の要素を求めるように構成される第2のプロセッサであって、前記第1のシーケンスは前記第1のプロセッサにのみ格納されると共に該第2のプロセッサから秘密にされ、前記第2のシーケンスは該第2のプロセッサにのみ格納されると共に前記第1のプロセッサから秘密にされるものと、
前記動的計画法による解を再帰的に求める手段と、
前記動的計画法による解を前記暗号化された編集距離として選択する手段と、
を備える、システム。
【請求項17】
前記公開鍵は前記第1のプロセッサ及び前記第2のプロセッサに提供され、秘密鍵は前記第1のプロセッサにのみ提供される、請求項16に記載のシステム。
【請求項18】
前記第1のプロセッサは、前記現在の要素を
ξ(min{M(i−1,j−1)+S(x,y),M(i−1,j)+D(x),M(i,j−1)+I(y)})=ξ(M(i,j))
に従って求める手段を備え、ここで、ξ(.)は暗号化関数であり、M(i,j)は前記現在の要素であり、I(y)はシンボルyの前記挿入コストであり、D(x)はシンボルxの前記削除コストであり、S(x,y)は前記シンボルxを前記シンボルyに置換する前記置換コストであり、i及びjは前記シーケンス内の前記シンボルのインデックスである、請求項16に記載のシステム。
【請求項19】
前記第2のプロセッサは、
前記第1の要素を、加法的準同型暗号化の特性に基づいて
ξ(I(y))ξ(M(i,j−1))=ξ(I(y)+M(i,j−1))
に従って求める手段と、
前記第2の要素を、加法的準同型暗号化の特性に基づいて
ξ(D(x))ξ(M(i−1,j))=ξ(D(x)+M(i−1,j))
に従って求める手段と、
前記第3の要素を、加法的準同型暗号化の特性に基づいて
ξ(S(x,y))ξ(M(i−1,j−1))=ξ(S(x,y)+M(i−1,j−1))
に従って求める手段と、
を備える、請求項16に記載のシステム。
【請求項20】
前記第1のプロセッサは、最小値発見方法を使用して前記現在の要素を求める手段であって、該最小値発見方法は、準同系に暗号化された形式で数字の最小値の暗号化を求めるように構成されているものをさらに備える、請求項16に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−164607(P2011−164607A)
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−19368(P2011−19368)
【出願日】平成23年2月1日(2011.2.1)
【出願人】(597067574)ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド (484)
【住所又は居所原語表記】201 BROADWAY, CAMBRIDGE, MASSACHUSETTS 02139, U.S.A.
【Fターム(参考)】