(57)【要約】      （修正有）【課題】多角的に暗号化されたデータを検索する方法、装置及びコンピュータ読み取りが可能な媒体を提供する。【解決手段】多角的に暗号化されたデータを検索する方法は、第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって１つまたは複数の仮名トークンを生成することを含む。第１のアルゴリズムは、同じ平文に対する多型アルゴリズムの各アプリケーションについて別個の仮名トークンを生成するように構成された多型アルゴリズムを含む。さらに、１つまたは複数の仮名トークンを１つまたは複数のデータストアに格納し、第２のアルゴリズムおよび暗号化鍵を使用して平文を暗号化することによって生成された検索トークンを使用してデータストアに照会することによって、暗号文に対応する識別データを１つまたは複数のデータストア内に識別することを含む。検索トークンは、１つまたは複数の仮名トークンとは異なる。【選択図】図４
2020038350.tif 000002
【特許請求の範囲】
【請求項１】
多型的に暗号化されたデータを検索するために、１つまたは複数のコンピューティングデバイスによって実行される方法であって、
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって１つまたは複数の仮名トークンを生成するステップであって、前記第１のアルゴリズムは、同じ暗号文への多型アルゴリズムのアプリケーションごとに別個の仮名トークンを生成するように構成された多型アルゴリズムを有する、ステップと、
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数の仮名トークンをデータストアに格納するステップと、
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって、暗号文に対応するデータストア内のデータを識別するステップとを含み、
前記検索トークンは、前記１つまたは複数の仮名トークンとは異なる、方法。
【請求項２】
第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって、暗号文に対応するデータストア内のデータを識別する前記ステップは、
１つまたは複数の変換された列を生成するために、１つまたは複数の仮名トークンを含む１つまたは複数の列に１つまたは複数の第１の変換を適用するステップと、
１つまたは複数の第２の変換を前記検索トークンに適用して、変換された検索トークンを生成するステップと、
１つまたは複数の変換された列および変換された検索トークンに少なくとも部分的に基づいて、暗号文に対応する１つまたは複数の行を識別するステップとを含む、
請求項１に記載の方法。
【請求項３】
前記１つまたは複数の変換された列および変換された検索トークンに少なくとも部分的に基づいて、前記暗号文に対応する１つまたは複数の行を識別する前記ステップは、
マッチング関数を使用して、１つまたは複数の変換された列内の各変換された列値を変換された検索トークンと比較して、１つまたは複数のマッチングする変換された列値を識別するステップと、
前記１つまたは複数の一致する変換済み列値を含む１つまたは複数の行を暗号文に対応するものとして識別するステップとを含む、
請求項２に記載の方法。
【請求項４】
検索トークンが複数の仮名トークンの１つまたは複数の仮名トークンと一致する場合に、１つまたは複数のコンピューティングデバイスの少なくとも１つによって第１の結果を表示するステップであって、前記第１の結果は少なくとも１つの仮名トークンのリストを含む、ステップと、
検索トークンが複数の仮名トークンの１つまたは複数の仮名トークンと一致しない場合に、１つまたは複数のコンピューティングデバイスの少なくとも１つによって異なる第２の結果を表示するステップと、をさらに含む、
請求項１に記載の方法。
【請求項５】
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数の擬似ランダム置換（ＰＲＰ）シードのそれぞれ１つを別個の擬似名トークンに追加することによって、複数の擬似名トークンの別個の擬似名トークンを修正するステップをさらに含む、請求項１に記載の方法。
【請求項６】
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数のＰＲＰシードのうちのそれぞれの１つを、異なる第３のアルゴリズムおよび暗号化鍵を使用して暗号化するステップをさらに含み、
１つまたは複数のＰＲＰシードのうちのそれぞれの１つを追加することは、別個の仮名トークンの前または後のいずれかに、それぞれのＰＲＰシードを追加することを含む、
請求項５に記載の方法。
【請求項７】
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数のＰＲＰシードを、初期化ベクトルとしての別個の仮名トークンの内容に基づいて暗号化するステップをさらに含む、
請求項６に記載の方法。
【請求項８】
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、暗号化された１つまたは複数のＰＲＰシードを除去するステップと、
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、第３のアルゴリズムおよび暗号化鍵を使用して、暗号化された１つまたは複数のＰＲＰシードを復号するステップと、をさらに含む、
請求項６に記載の方法。
【請求項９】
初期化ベクトルとしての別個の仮名トークンのコンテンツに基づいて、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数のＰＲＰシードを復号するステップをさらに含む、
請求項８に記載の方法。
【請求項１０】
１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、それぞれのＰＲＰシードを別個の仮名トークンから除去した後に、復号第１アルゴリズムおよび暗号化鍵を使用して、それぞれの仮名トークンを復号するステップをさらに含む、
請求項６に記載の方法。
【請求項１１】
前記第２のアルゴリズムは、前記第１のアルゴリズムと異なる、請求項１に記載の方法。
【請求項１２】
多型的に暗号化されたデータを検索するためのシステムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサのうちの少なくとも１つに動作可能に結合され、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、１つまたは複数のプロセッサのうちの少なくとも１つに処理を行わせる命令を格納する１つまたは複数のメモリとを備え、
前記処理は、
第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって、１つまたは複数の仮名トークンを生成するステップであって、第１のアルゴリズムは、同じ暗号文への多型アルゴリズムの各アプリケーションについて別個の仮名トークンを生成するように構成された多型アルゴリズムを備える、ステップと、
１つまたは複数の仮名トークンをデータストアに格納するステップと、
第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに問い合わせることによって、暗号文に対応するデータをデータストア内で識別するステップと、を含み、
前記検索トークンは、１つまたは複数の仮名トークンとは異なる、
システム。
【請求項１３】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
１つ以上の仮名トークンを含む１つ以上の列に１つ以上の第１の変換を適用して、１つ以上の変換された列を生成するステップと、
１つまたは複数の第２の変換を検索トークンに適用して、変換された検索トークンを生成するステップと、
１つまたは複数の変換された列および変換された検索トークンに少なくとも部分的に基づいて、暗号文に対応する１つまたは複数の行を識別するステップと、
を行わせるさらなる命令を格納した、請求項１２に記載のシステム。
【請求項１４】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
マッチング関数を使用して、１つまたは複数の変換された列内の各変換された列値を変換された検索トークンと比較して、１つまたは複数のマッチングする変換された列値を識別するステップと、
１つまたは複数のマッチングする変換された列値を含む１つまたは複数の行を暗号文に対応するものとして識別するステップと、
を行わせるさらなる命令を格納した、請求項１３に記載のシステム。
【請求項１５】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されたときに、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
１つまたは複数の擬似ランダム置換（ＰＲＰ）シードのそれぞれ１つを別個の擬似名トークンに追加することによって、複数の擬似名トークンの別個の擬似名トークンを修正するステップを行わせるさらなる命令を格納した、請求項１２に記載のシステム。
【請求項１６】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されたときに、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
異なる第３のアルゴリズムおよび暗号化鍵を使用して、１つまたは複数のＰＲＰシードのそれぞれの１つを暗号化するステップを行わせるさらなる命令を格納し、
前記１つまたは複数のＰＲＰシードのそれぞれの１つを追加することは、別個の仮名トークンの前または後のいずれかに、それぞれのＰＲＰシードを追加することを含む、
請求項１５に記載のシステム。
【請求項１７】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
１つまたは複数のＰＲＰシードを暗号化するときに、初期化ベクトルとして別個の仮名トークンのコンテンツを使用することに基づいて、１つまたは複数のＰＲＰシードを暗号化するステップを行わせるさらなる命令を格納した、請求項１６に記載のシステム。
【請求項１８】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されたときに、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
暗号化された１つまたは複数のＰＲＰシードを切り離し、第３のアルゴリズムおよび暗号化鍵を使用して、暗号化された１つまたは複数のＰＲＰシードを復号するステップを行わせるさらなる命令を格納した、請求項１６に記載のシステム。
【請求項１９】
前記１つまたは複数のメモリのうちの少なくとも１つは、前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行されたときに、前記１つまたは複数のプロセッサのうちの少なくとも１つに、
１つ以上のＰＲＰシードを復号化するときに、初期化ベクトルとして別個の仮名トークンのコンテンツを使用することに基づいて、１つ以上のＰＲＰシードを復号化するステップを行わせるさらなる命令を格納した、請求項１８に記載のシステム。
【請求項２０】
前記１つまたは複数のコンピューティングデバイスによって実行されると、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つに処理を行わせるコンピュータ可読命令を記憶する少なくとも１つの非一時的なコンピュータ可読媒体であって、
前記処理は、
第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって、１つまたは複数の仮名トークンを生成するステップであって、第１のアルゴリズムは、同じ暗号文への多型アルゴリズムの各アプリケーションについて別個の仮名トークンを生成するように構成された多型アルゴリズムを備える、ステップと、
１つまたは複数の仮名トークンをデータストアに格納するステップと、
第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに問い合わせることによって、暗号文に対応するデータをデータストア内で識別するステップとを含み、
前記検索トークンは、１つまたは複数の仮名トークンとは異なる、コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
現代のデータサイエンス、または（ビッグ）データ分析において、データは多くの目的に有用である。しかしながら、このようなデータの柔軟な使用は、暗号化によって妨げられることが多い。従来の暗号化は、常に特定の当事者、すなわち復号鍵を有する当事者のためのものである。他の誰も解読することができない。暗号化の瞬間に、誰が解読できるかの決定を下さなければならない。例えば、データが暗号化される多重使用シナリオでは、多くの当事者が鍵を有しなければならない。これは、しばしば基礎となるデータの保護レベルを損なう。
【０００２】
ＧＤＰＲ（Ｇｅｎｅｒａｌ  Ｄａｔａ  Ｐｒｏｔｅｃｔｉｏｎ  Ｒｅｇｕｌａｔｉｏｎ）の実施により、ＥＵ（Ｅｕｒｏｐｅａｎ  Ｕｎｉｏｎ）全体にわたる調和したデータ保護法の枠組みが作成されている。これは、個人データの管理を本人に戻すことを目的とすると共に、世界中のどこにおいても、このデータをホストし処理する者に厳しい規則を課すものである。ＧＤＰＲは個人識別可能情報（ＰＩＩ）をどのように使用し、処分すべきかに関する厳格な要件を規定している。ＧＤＰＲは、データ主体（個人など）に、提供したデータを撤回させる権利を提供する「忘却権」を規定している。
【０００３】
ＧＤＰＲでは、個人情報を保護する手段として、仮名化を用いることが議論されている。一般に、仮名化は、特定の人物を識別するために使用することができるデータ要素の分離を意味する。例えば、個人の名前または共通の識別番号（例えば、パスポート番号または社会保障番号）を、追跡されているデータ（例えば、個人によって購入された商品）から分離する。
【０００４】
現代の仮名化メカニズムは、トークン化と、複数の暗号鍵およびステージングデータベースを用いたマルチキー標準対称暗号化とを使用する。しかしながら、これらの解決策は共に、暗号属性を仮名データオブジェクトのインスタンスにマッピングし、生成されたトークンを保持するための追加の記憶装置を必要とするという重大な欠点を有する。さらに、対称暗号化メカニズムは、複数の暗号鍵を保護する必要がある。追加のメタ情報を記憶する必要があると、ソリューションのメンテナンスコストを増加させ、潜在的な侵入者をおびき寄せることとなり、セキュリティ体制を弱める。
【０００５】
近年、非対称多型（ｐｏｌｙｍｏｒｐｈｉｃ）暗号化に基づく仮名化メカニズムが提案されている。仮名化メカニズムは、暗号化動作モードにおけるＥｌＧａｍａｌアルゴリズムの楕円曲線変形の多型特性に基づく。しかしながら、ＥｌＧａｍａｌ暗号化動作の極めて高い性能コストのために、このアプローチの実行可能性には疑問がある。さらに、ＥｌＧａｍａｌはＲＳＡまたはＤｉｆｆｉｅ−Ｈｅｌｌｍａｎのような他のすべての現代の公開鍵スキームと共に、量子暗号攻撃の影響を受けやすいことが証明されている。
【０００６】
ＰＩＩに関連するデータを仮名化することに向けられた従来の実装は、ルックアップソースデータまたは暗号化鍵のいずれかを危険にさらし、個人および他の潜在的に機密なデータに危険が及ぶ可能性があるため、フェールセーフアプローチとは考えられない。したがって、１つまたは複数の暗号化された機密データを、１つまたは複数の機密でないデータに一致させるために、暗号化されたデータを復号することなく、暗号化されたデータの検索を可能にする技術的改善が必要とされている。
【図面の簡単な説明】
【０００７】
開示された態様は以下に、開示された態様を例示するためであって、限定する目的ではなく、添付の図面と併せて説明される。類似の符号は、類似の要素を示す。
【図１】図１は、ユーザの機密情報またはデータを暗号化するためのシステムを示す。
【図２】図２はユーザから機密情報またはデータを受信し、そのような情報を複数の暗号文に変換するプロセスを説明するフローチャートの形式の特殊アルゴリズムを示す。
【図３】図３は、多型対称暗号化アルゴリズムを使用した後に生成される複数の暗号文を示す。
【図４】図４は、検索トークンを複数の暗号文のそれぞれ１つまたは複数にマッチングさせるプロセスを説明する、フローチャートの形の特殊アルゴリズムを示す。
【図５Ａ】図５Ａは、例示的な実施形態による、開示されたデータ構造および方法を使用して実行され得る検索プロセスの例を示す。
【図５Ｂ】図５Ｂは、例示的な実施形態による、開示されたデータ構造および方法を使用して実行され得る検索プロセスの例を示す。
【図５Ｃ】図５Ｃは、例示的な実施形態による、開示されたデータ構造および方法を使用して実行され得る検索プロセスの例を示す。
【図６Ａ】図６Ａは、Ｓｏｎｇ−Ｗａｇｎｅｒ  Ｐｅｒｒｉｇ（ＳＷＰ）対称暗号アルゴリズムを用いる標準モデルを示す。
【図６Ｂ】図６Ｂは、拡張された暗号テキストが記述される特殊化されたアルゴリズムの例示的な実施形態を示す。
【図６Ｃ】図６Ｃは、拡張された暗号テキストが記述される特殊化されたアルゴリズムの例示的な実施形態を示す。
【発明を実施するための形態】
【０００８】
（実施例の詳細な説明）
本明細書で開示される新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に説明される。しかしながら、本開示は多くの異なる形態で具現化されることができ、本開示全体を通して提示される任意の特定の構造または機能に限定されるものとして解釈されるべきではない。むしろ、これらの態様は、本開示が完全かつ完全になるように提供され、本開示の範囲を当業者に完全に伝える。本明細書の教示に基づいて、当業者は、開示の範囲が開示の任意の他の態様から独立して実装されるか、またはそれと組み合わされるかにかかわらず、本明細書で開示される新規なシステムおよび方法の任意の態様をカバーすることが意図されることを理解すべきである。例えば、本明細書に記載された任意の数の態様を使用して、システムを実装することができ、または方法を実施することができる。加えて、本開示の範囲は、本明細書に記載された本開示の様々な態様に加えて、またはそれ以外の、他の構造、機能、または構造および機能を使用して実施されるそのようなシステムまたは方法をカバーすることが意図されている。本明細書で開示される任意の態様は、請求項の１つまたは複数の要素によって実装され得ることを理解されたい。
【０００９】
特定の態様が本明細書で説明されるが、これらの態様の多くの変形および置換は開示の範囲内にある。好ましい態様のいくつかの利益および利点が言及されているが、開示の範囲は特定の利益、使用、および／または目的に限定されることを意図されていない。詳細な説明および図面は限定するのではなく、単に開示を例示するものであり、開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００１０】
ここで、本開示のシステムおよび方法の様々な実装および変形の詳細な説明が提供される。本明細書で説明される多くの例は、暗号化および暗号化されたデータの検索のコンテキストにあるが、本明細書に含まれ説明されるシステムおよび方法は、専有情報、秘密情報、または機密情報の暗号化に関する関連技術で使用され得ることが、当業者には理解されよう。本明細書に記載された技術のための種々の他の例示的な実装または使用は、本開示の内容から当業者によって容易に想定されるであろう。
【００１１】
上述のような従来の技術は、個人情報を含む「生の」データ（すなわち、元のデータまたは平文データ）を公開しなければ、記憶されたデータの分析、アクセス、更新、および検索が可能とならない。
【００１２】
前述したような必要性は、とりわけ、暗号化されたデータを検索するための方法、装置、およびコンピュータ可読媒体を提供する本開示によって満たされる。本明細書で説明される例示的な実装形態は、革新的な特徴を有し、そのうちの１つだけが、それらの望ましい属性に必須でまたは単独に寄与するものではない。特許請求の範囲を限定することなく、有利な特徴のいくつかをここで要約する。
【００１３】
本出願人は、１つまたは複数の暗号化された機密データを１つまたは複数の機密でないデータに一致させるために、暗号化されたデータを復号することなく、暗号化されたデータを検索することができる方法、システム、および非一時的なコンピュータ可読媒体を発明した。すなわち、本発明の概念は、データオブジェクトを仮名化し、多型対称暗号化の手段によって忘れられる権利を行使することを対象とする。「機密」は限定されるものではないが、秘密情報または所有権のある情報および／またはデータを含むことができる。本明細書で開示される例示的な実施形態は、高速対称多型暗号を使用し、これは、追加の記憶空間を必要としない単一の鍵によって操作される。トレーサビリティおよび「忘れられる権利」を含むＧＤＰＲの要件を満たす一方で、本明細書に開示される方法、システム、および非一時的なコンピュータ可読媒体は、オペレータが平文を知ることなく仮名化されたデータを追跡することを可能にする。開示された方法、システム、および非一時的なコンピュータ可読媒体は公開鍵を使用する従来の方法よりも高速であり、より少量の記憶装置しか必要とせず、複数の暗号鍵を必要とする従来の方法よりもエラーの傾向が少ない。
【００１４】
例示的な実施形態によれば、ユーザによって提供された平文データオブジェクトは、第１の暗号鍵で暗号化または保護される。これにより第１の暗号文が生成される。第１の暗号文は、多型対称暗号アルゴリズムを適用することによって第２の暗号鍵で暗号化される。第２の暗号鍵を用いた第１の暗号文の暗号化は、複数回繰り返され、複数の別個の暗号文を生成する。第２の暗号鍵は後に、第２の秘密暗号鍵の所有者（すなわち、第三者）が別個の暗号文を復号化することなく、他の複数の暗号文の中で別個の暗号文を識別することを可能にするために、マッチングトークンを生成するために使用される。マッチングトークンは、複数の暗号文のうちのいずれかとは異なる。第１の暗号鍵の所有者は、第１の暗号鍵を破棄することによって、忘れられる権利を行使する。
【００１５】
本開示のこれらおよび他の目的、特徴、および性質、ならびに構造の関連する要素の動作および機能の方法、ならびに部品の組合せおよび製造の経済性はすべて本明細書の一部を形成する添付の図面を参照して以下の説明および添付の特許請求の範囲を考慮するとより明らかになり、同様の参照番号は、様々な図中の対応する部品を示す。しかしながら、図面は例示および説明のみを目的としたものであり、本開示の限定の定義として意図されていないことを明確に理解されたい。本明細書および特許請求の範囲で使用されるように、単数形の「ａ」、「ａｎ」、および「ｔｈｅ」は文脈が沿わないことを明確に示さない限り、複数の指示対象を含む。
【００１６】
ここで図１を参照すると、機密情報またはデータを受信し、暗号化し、それを復号することなく検索するシステム１００が示されている。機密情報またはデータは、例えば、人種的または民族的な起源、政治的見解、宗教的または哲学的信念、クレジットカード情報、銀行情報（すなわち、口座番号およびルーティング番号）、または労働組合のメンバーシップを明らかにする個人データ、自然人を一意に識別するための遺伝データ、健康に関するデータ、自然人の性生活または性的指向に関するデータ（以下、「機密」情報またはデータと呼ぶ）に関連するデータを含むが、これらに限定されない。
【００１７】
図１に示すように、ユーザの機密情報またはデータを暗号化するためのシステム１００が示されている。当業者は、暗号化がデータ、プログラム、画像、または他の情報を読み取り不可能な暗号に変換する一種のセキュリティであることを理解するであろう。暗号化は、複雑なアルゴリズムおよび秘密鍵の集合を使用することによって行われる。システム１００には、１人以上のユーザ１０１Ａ−１０１Ｂ、１つ以上のサーバ１０２、および１つ以上の仮名トークン１０３を保存するデータベース１０４（Ｃ１，Ｃ２，Ｃ３．．．Ｃｎ）が含まれる。仮名トークン、または単にトークンは、以下でより詳細に説明され、本明細書で説明される仮名化プロセスを通して生成されるデータのアイテム（リレーショナルデータベース内のレコードまたはフィールド、半構造化データベース内のフィールド、または非構造化データストア内の値など）である。
【００１８】
各仮名トークンは固有の暗号文に対応するが、以下で説明するように、各固有の暗号文は複数の異なる仮名トークンに対応することができる。ユーザ１０１Ａ、１０１Ｂは、自分のパーソナルコンピュータおよび／またはコンピューティング電子デバイスを使用して、機密情報またはデータを受信する第三者ベンダに自分の機密情報またはデータを共有することができる。例えば、病院または医師のウェブサイトに健康フォームを記入する患者、または銀行のウェブサイトにローン申請書を記入する見込みホームバイヤーは、機密情報またはデータがしばしば第三者ベンダと共有されるいくつかの例である。したがって、そのような第三者ベンダは、例えば、病院、銀行、ソーシャルメディアウェブサイト、および／またはしばしば、機密情報またはデータの入力を必要とするオンライントレーダを含むことができるが、これらに限定されない。
【００１９】
本明細書に開示される発明概念によれば、暗号化の分野において、「暗号文」は暗号化されたデータを指すことができ、事前暗号化テキストは平文またはそれ自体別の暗号文のいずれかとすることができることが、当業者には理解されよう。「暗号化」はメッセージ（すなわち、平文）を、送信者および意図された受信者によってのみ読み取ることができるように符号化するプロセスを指すことができる。また、「暗号鍵」（以下、「鍵」という）は、データをスクランブル及びアンスクランブルするために生成されるビット系列である。鍵の大きさは、それが有するビットの数によって定義することができ、例えば、２ｎとすることができ、ここで、ｎは１より大きい整数である。したがって、例えば、暗号化鍵は、６４ビット、１２８ビット、または２５６ビットなどとすることができる。本明細書に開示された発明概念は、特定の暗号化鍵サイズに限定されず、または特定されない。
【００２０】
本明細書で使用されるように、コンピュータおよび／またはコンピューティングデバイスは、デスクトップ、ラップトップ、またはメインフレームコンピュータ、ワークステーション、サーバ、パーソナルデジタルアシスタント（「ＰＤＡ」）、携帯型コンピュータ、埋め込み型コンピュータ、プログラマブル論理デバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、携帯ナビゲーション補助装置、携帯電話、スマートフォン、パーソナル統合通信または娯楽デバイス、および／または一組の命令を実行し、着信データ信号を処理することができる任意の他のデバイスを含むことができるが、それらに限定されない。
【００２１】
そのような機密情報またはデータを受信すると、１つまたは複数のサーバ１０２は特別なコンピュータ実装アルゴリズムおよびソフトウエアを使用してそのような情報を処理し、複数の仮名トークンを生成する（以下でより詳細に説明する）。複数の仮名トークンは、後の処理、検索および分析のためにデータベース１０４に記憶される。
【００２２】
ここで図２を参照すると、１人または複数のユーザから機密情報またはデータを受信し、そのように受信された機密情報またはデータから複数の暗号文を生成するプロセスを例示するために、専用アルゴリズム２００がフローチャートの形で示されている。
【００２３】
図２を参照すると、特殊化されたアルゴリズム２００が示されている。ステップ２０１において、機密情報を含む情報が受信される。このような情報は例えば、ユーザ１０１Ａ〜１０１ＢのそれぞれのＰＣ、ＰＤＡ、または携帯型デバイスから、図１に示す１つまたは複数のサーバ１０２に送信することができ、この場合、１つまたは複数のサーバ１０２は、例えば、銀行または病院など、このような機密情報またはデータを収集または要求するエンティティの保管設備に配置され得る。１つまたは複数のサーバ１０２は、暗号化された形式でユーザ１０１Ａ、１０１Ｂの機密情報を含む要求を受信することができる。すなわち、ユーザ１０１Ａ、１０１Ｂによって送信される機密情報は、データ所有者の鍵を使用してすでに暗号化されている可能性がある。そのような機密情報を、図１に示す１つまたは複数のサーバ１０２に送信すると、ユーザ１０１Ａ、１０１Ｂは、ＧＤＰＲ規則に従って、データ所有者の鍵に関して「忘れられる権利」を行使することができる。したがって、データ所有者の鍵を使用して既に暗号化されているユーザ１０１Ａ、１０１Ｂから機密情報を受信する１つまたは複数のサーバ１０２は、ユーザの識別および機密情報を保護するためにデータ所有者の鍵を忘れ、それによってＧＤＰＲ規則に準拠することができる。
【００２４】
ステップ２０２に関して、ユーザ１０１Ａ、１０１Ｂが機密情報を受信した１つまたは複数のサーバ１０２は、提供された機密情報または平文（Ｐ）が保護されているかどうかを判定する。機密情報または平文（Ｐ）が保護されていない場合、ステップ２０３に示すように、鍵（ｋ１）を使用して暗号化アルゴリズム（Ａ１）を介して機密情報を処理することによって、またはセキュアハッシングアルゴリズムを適用することによって、平文（Ｐ）の暗号文またはハッシュ値を生成することができる。しかし、機密情報がすでに保護されていると判定された場合（例えば、１人または複数のユーザ１０１Ａ、１０１Ｂが秘密情報を暗号文またはハッシュ値として提供した場合）、プロセスはステップ２０４に進む。
【００２５】
ステップ２０４では、ステップ２０５に示すように、多型対称暗号化アルゴリズム（Ａ２）および鍵（ｋ２）を使用して暗号文をさらに暗号化し、１つまたは複数の仮名トークンを生成する。１つまたは複数の仮名トークンは、多型暗号化アルゴリズム（Ａ２）および暗号化鍵（ｋ２）を使用して暗号文を暗号化することによって生成することができる。１つ以上の仮名トークンが生成された後、ステップ２０６において、それらはデータストアに記憶される。データストアは構造化データベースであってもよく、その場合、仮名トークンはデータベースのテーブルに格納することができる。データストアは、フィールド識別子を有する文書など、非構造化または半構造化することもできる。
【００２６】
ステップ２０５で使用される多型対称暗号化アルゴリズムは、以下の式で表すことができる。
【００２７】
【数１】
2020038350.tif 000003
【００２８】
この式において、「Ｈ（Ｐ）」は、平文（Ｐ）の暗号化またはハッシュ化によって生成された暗号文を指す。平文（Ｐ）は、ユーザ１０１Ａ、１０１Ｂによって提供される機密情報またはデータである。例えば、上述のように、１人以上のユーザ１０１Ａ、１０１Ｂは、平文（Ｐ）を構成する機密情報を提供することができる。式（１）の右辺は、鍵（ｋ２）を使用する暗号文Ｈ（Ｐ）の多型暗号化を指す。また、最後に、Ｃｉは暗号文Ｈ（Ｐ）を暗号化した後に得られる擬似的な名前のトークンを示す。このアルゴリズムを暗号文Ｈ（Ｐ）上で初めて実行すると、第１の仮名トークンＣ１が得られ、このアルゴリズムを同じ暗号文Ｈ（Ｐ）上で２度目に実行すると、第２の仮名トークンＣ２が得られ、以下同様である。その結果、１つ以上の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）が得られる。それぞれの仮名トークン（Ｃｎ）は、１つ以上の仮名トークン１０３の中の他のｃ仮名トークン（Ｃｎ＋１、Ｃｎ−１）とは異なっているか、または区別できる。
【００２９】
式（１）を使用して１つまたは複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）を生成するとき、平文（Ｐ）または暗号文Ｈ（Ｐ）に固有の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）の組は、平文を公開せずに一連の１つまたは複数の変換（Ｔ１、Ｔ２、．．．Ｔｎ）を通して公開することができるいくつかの共有特性または特徴をすべて共有することになる。例えば、仮名トークンＣ１および仮名トークンＣ２が両方とも同じ暗号文から生成された場合、一連の変換をＣ１およびＣ２に適用して、対応する変換済み値を生成することができる。
【００３０】
Ｔｘ（Ｃ１）＝ＴＶ１
Ｔｘ（Ｃ２）＝ＴＶ２
【００３１】
ここで、ｘが１以上の場合、Ｔｘは１つ以上の変換に対応し、ＴＶは変換された値である。変換された値ＴＶ１およびＴＶ２は次に、それらが等しいか、または何らかの共有特性を共有しているかを判定するために比較される。もしそうであれば、Ｃ１とＣ２の両方が、その平文を明らかにしたり公開したりすることなく、同じ暗号文に対応していると判定される。
【００３２】
共通の性質または特性は、仮名トークンの集合が派生または生成される平文（Ｐ）または暗号文Ｈ（Ｐ）に、１つまたは複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のそれぞれをリンクさせまたは対応させる特定の特性に対応し得る。例えば、特定の暗号文Ｈ（Ｐ）について、変換値ＴＶは、その特定の暗号文Ｈ（Ｐ）に対応する１つまたは複数の仮名トークンのそれぞれに含めることができるバイトシーケンスまたは一意の数のセットを含むことができる。そのような変換値は、そのような暗号文が多型対称暗号化アルゴリズムを使用して生成されるとき、特定の仮名トークン（Ｃｎ）の最初、最後、または特別な位置に含まれることができる。複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）を平文（Ｐ）に対応させる変換値に関連する発明概念は、ここで開示された例に限定されない。当業者は、変換値ＴＶを構成する他の同様の変形を使用して、特定の仮名トークン（Ｃｎ）を特定の暗号文Ｈ（Ｐ）または平文（Ｐ）に相関させる所望の結果を達成することができることを理解するであろう。
【００３３】
次に図３を参照すると、鍵（ｋ２）を使用して多型対称暗号化アルゴリズムが実行された後に生成された複数の仮名トークンの例示的な結果３００が示されている。例えば、「Ｏｒａｎｇｅ  Ｃｌｏｗｎ」、「Ｊｅａｎｎｅ  ｄ’Ａｒｃ」、または年齢「１８−３４」のような平文（Ｐ）は、複数の暗号文Ｈ（Ｐ）（図示せず）を生成するために暗号化される。結果３００に示されるように、同じ平文（Ｐ）に対応する暗号文Ｈ（Ｐ）が多型対称暗号化アルゴリズムを介して反復されるたびに、同じ暗号文Ｈ（Ｐ）に対する異なる仮名トークンが生成される。例えば、平文「Ｏｒａｎｇｅ  Ｃｌｏｗｎ」の暗号文が多型対称暗号化アルゴリズムによって暗号化されるたびに、異なる仮名トークンが生成された。このプロセスは、同じ暗号文Ｈ（Ｐ）と平文（Ｐ）に対して異なる、一意の擬似同義トークンをもたらす。非限定的な例示的実施形態によれば、仮名トークンの長さは、平文（Ｐ）のサイズに４バイトを加えたものであってもよい。例えば、１６バイトのサイズを有する平文（Ｐ）には、追加の４バイトが追加され、暗号文のサイズは２０バイトになる。本明細書に開示された発明概念は、特定の暗号文サイズに限定されず、または特定されない。
【００３４】
次に、図４を参照し、特殊なアルゴリズム４００は、検索トークン（Ｔ）を複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のそれぞれ１つ以上に対応させる処理を説明するためのフローチャートの形式で描写される。最初の事柄として、図４のステップ４０１、４０２、４０３で示される情報は上述のように、図２のステップ２０１、２０２、２０３で示される情報と同じである。図４は、ステップ４０４における検索トークン（Ｔ）の生成、ステップ４０５における複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のうちの１つ以上に対する検索トークン（Ｔ）間の一致を検索すること、およびステップ４０６において一致が見つからないことを決定すること、または検索トークンに一致する仮名トークンを特定することの、いずれかの追加のステップを含む。
【００３５】
ステップ４０４において、異なるアルゴリズム（Ａ３）および鍵（ｋ２）を使用することによって、検索トークン（Ｔ）が生成される。検索トークン（Ｔ）を生成するために暗号文Ｈ（Ｐ）を暗号化するために使用されるアルゴリズムは、Ｓｏｎｇ−Ｗａｇｎｅｒ  Ｐｅｒｒｉｇ対称暗号アルゴリズムであり得る。以下の式は、検索トークン（Ｔ）と暗号文Ｈ（Ｐ）との間の関係を示す。
【００３６】
ＴＫ２（Ｈ（Ｐ））              （２）
【００３７】
ここで、ＴＫ２は、暗号文Ｈ（Ｐ）から鍵（ｋ２）を用いて生成される検索トークン（Ｔ）を表す。また、式（１）で述べたように、Ｈ（Ｐ）は、平文（Ｐ）の暗号化によって生成された暗号文を指す。当業者であれば、本明細書に開示された発明概念は、特定の検索トークンサイズに限定されず、または特定されないことを理解するのであろう。
【００３８】
ステップ４０５において、検索トークン（Ｔ）を、図２のステップ２０５で上述したように生成された複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のうちの１つ以上とマッチングさせることによってマッチング処理が実行される。ステップ４０５でのマッチングステップを実行するために、専用プロセッサは図２のステップ２０６で上述したように、先に記憶されたデータベース１０４から複数の仮名トークン（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）を最初に取り出すことができる。
【００３９】
以下の式は、ステップ４０５でのマッチングステップを示す。
【００４０】
Ｃｉ？＝ＴＫ２（Ｈ（Ｐ））              （３）
【００４１】
ここで、式（１）について述べたように、Ｃｉは暗号文Ｈ（Ｐ）を暗号化した後に得られる１つまたは複数の仮名トークンを指し、式（２）の下では、ＴＫ２が暗号文Ｈ（Ｐ）から鍵（ｋ２）を使用して生成される検索トークン（Ｔ）を表す。Ｈ（Ｐ）は、平文（Ｐ）の暗号化によって生成された暗号文を指す。「？＝」は、ステップ４０５で達成される判定、すなわち、検索トークン（Ｔ）と複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）の１つ以上とのマッチの有無、を表している。
【００４２】
マッチングステップ４０５の間に、変換値ＴＶＳＴを特定の基礎となる暗号文Ｈ（Ｐ）または平文（Ｐ）に相関させることができるように、１つまたは複数の変換値ＴＶＳＴが検索トークン（Ｔ）から生成される。このプロセスは、２つの仮名トークンが同じ暗号文Ｈ（Ｐ）または同じ平文（Ｐ）に対応するかどうかを判定するために使用することができる、前述の変換値を生成するためのプロセスに類似している。すなわち、検索トークン（Ｔ）は、平文（Ｐ）を公開することなく一連の１つまたは複数の変換（Ｔ１、Ｔ２、．．．Ｔｎ）を通して公開することができる、何らかの一般的な特性または特徴をすべて共有する平文（Ｐ）または暗号文Ｈ（Ｐ）に固有である。例えば、検索トークン（Ｔ）および仮名トークン（Ｃｎ）が両方とも同じ暗号文（Ｐ）から生成される場合、一連の変換を検索トークン（Ｔ）および仮名トークン（Ｃｎ）に適用して、対応する変換値を生成することができる。
【００４３】
Ｔｘ（Ｔ）＝ＴＶＳＴ
Ｔｘ（Ｃｎ）＝ＴＶＰＴ
【００４４】
ここで、ｘが１以上の場合、Ｔｘは１つ以上の変換に対応し、ＴＶは変換値である。変換値ＴＶＳＴは、検索トークン（Ｔ）を、その検索トークン（Ｔ）が派生するかまたは生成された暗号文Ｈ（Ｐ）または平文（Ｐ）にリンクさせるかまたは対応させる、固有の特性またはプロパティに対応し得る。マッチングステップ４０５の間に、検索トークン（Ｔ）のための変換値ＴＶＳＴは、１回変換されてもよい。変換値ＴＶＳＴに関する発明概念は、本明細書に開示された例に限定されない。当業者であれば、変換値ＴＶＳＴを構成する他の同様の変形を使用して、特定の検索トークン（Ｔ）を特定の暗号文Ｈ（Ｐ）または特定の平文（Ｐ）に相関させる所望の結果を達成できることを理解するであろう。
【００４５】
また、マッチング処理４０５は、複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のそれぞれに対応する１つ以上の変換値ＴＶＰＴを生成する。仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のそれぞれについて、一組の変換値ＴＶＰＴを生成するために使用される変換は、検索トークン（Ｔ）、ＴＶＳＴの変換値を生成するために使用される変換と相互的（ｒｅｃｉｐｒｏｃａｌ）である。さらに、複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のそれぞれの仮名トークンについて、変換値ＴＶＰＴを生成するために使用される変換は、仮名トークンを生成するために使用される多型暗号化（Ａ２）および鍵（ｋ２）とは異なっていることに留意されたい。換言すれば、ＴＶＳＴを生成するために適用される変換は例えば、基礎となる暗号文の値を公開する復号化アルゴリズムではない。マッチングステップ４０５の間に、複数の仮名トークン１０３の各々についての変換値ＴＶＰＴは、少なくとも１回変換され得る。
【００４６】
その後、マッチング処理４０５は検索トークン（Ｔ）、ＴＶＳＴに対応する変換値と、仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）、ＴＶＰＴそれぞれに対応する変換値とを比較し、検索トークン（Ｔ）と複数の仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のうちの１つ以上との間にマッチがあるかどうかを判定する。すなわち、変換された値ＴＶＳＴおよびＴＶＰＴが比較され、それらが等しいか、または何らかの共有特性を共有しているかどうかが判定される。この比較は、変換値ＴＶＳＴとＴＶＰＴとの間の厳密な一致、数値一致、または文字列一致である必要はないことに留意されたい。比較は、変換された価値ＴＶＳＴおよびＴＶＰＴの１つまたは複数のプロパティまたは属性を比較して、それらが共有プロパティを共有するかどうかを判定することもできる。
【００４７】
ステップ４０５で一致が見つかった場合、ステップ４０７で、検索トークン（Ｔ）に一致した仮名トークン１０３が特定され、例えば、クエリに応答して、またはクエリの実行の一部として返すことができる。そうではなく、一致がない場合、ステップ４０６で、例えば、クエリに応答して、またはクエリの実行の一部として、一致する仮名トークンがないという判定が識別される。検索トークン（Ｔ）と仮名トークン（Ｃｎ）との一致は両方とも同じ暗号文Ｈ（Ｐ）に対応し、平文（Ｐ）を明らかにしたり公開したりしない。上述のように、ここで開示された方法は検索トークン（Ｔ）または明らかな仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）のいずれかの復号化も必要とせずに、その検索トークン（Ｔ）に対応する複数の明らかな仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）に検索トークン（Ｔ）をマッチングさせた結果を達成する。したがって、検索トークン（Ｔ）の基礎となる暗号文値Ｈ（Ｐ）および仮名トークン１０３（Ｃ１、Ｃ２、Ｃ３．．．Ｃｎ）は、検索処理のどの部分においても公開されない。
【００４８】
したがって、病院および／または銀行などのベンダが例えば、ＧＤＰＲ規則および規制の遵守を維持しながら、機密情報を含む「生」データ（すなわち、元のデータまたは平文（Ｐ）データ）にアクセスすることなくデータ分析を実行したい場合、ベンダは、上述の方法、プロセス、およびシステムを使用して、そのようにすることができる。このような方法、プロセスおよびシステムは、病院および銀行が例えば、データがもはや特定のデータ主体に帰することができないような方法で、個人データを処理することを可能にする。それによって、データ主体の機密情報またはデータを洩らすことなく、および／またはＧＤＰＲの規則および規則に違反することなく、データ分析の所望の目標を達成する。
【００４９】
図５Ａ〜５Ｃは、例示的な実施形態による、開示されたデータ構造および方法を使用して実行され得る検索プロセスの例を示す。
【００５０】
図５Ａは、データベース内のサンプルデータテーブル５００を示す。テーブル５００は、列５００Ａ、５００Ｂ、５００Ｃおよび５００Ｄを含む。図５Ａに示すように、列５００Ａは、仮名トークンとして暗号化された形で記憶される社会保障番号（ＳＳＮ）に対応する。残りの列はこの例では平文として格納されているが、もちろん、他の列のうちの１つまたは複数も暗号化された形式で格納することができる。
【００５１】
図５Ｂは、平文５０１から暗号テキスト５０２へ、続いて検索トークン５０３への変換のプロセスを示す。図５Ｂに示す検索トークン値５０３はデータベースを検索するために使用される検索トークンに対応することができ、前述の手法のいずれかを使用して生成することができる。
【００５２】
例えば、研究機関は、メインデータベースとは別の安全な遠隔地（リモート位置）に平文情報を格納することができる。関連する平文５０１の値は、暗号文を生成するために、リモート位置のデータ主体によって提供される暗号鍵を使用して、暗号化され得る。あるいは、リモート位置が、データ主体によって提供された暗号文のみを格納することができ、平文にアクセスできないようにしても良い。
【００５３】
検索トークンを生成するために使用される暗号化がメインデータベースで実行される場合、暗号文はデータベース内の対応するデータを検索または更新するために、テーブル５００を格納するメインデータベースへのクエリで送信され得る。この場合、クエリはメインデータベース、またはメインデータベースで実行されるエージェントに、クエリを実行するときに必要な暗号化を実行するように指示するコマンドを含むことができる。あるいは、暗号化がリモート位置で実行される場合、暗号文はリモート位置で暗号化されて、検索トークンを生成することができ、検索トークンは関連情報を検索するために、クエリの一部としてメインデータベースに送信されることができる。
【００５４】
クエリ（照会）は、リレーショナルデータベースＳＱＬ選択または更新照会など、任意のタイプのクエリとすることができる。例えば、テーブル５００が「所得格差（ＩｎｃｏｍｅＤｉｓｐａｒｉｔｙ）」と呼ばれ、検索トークンを生成するために使用される暗号化がクエリをメインデータベースに送信する前にリモート位置で実行されると仮定すると、クエリは、以下のようになり得る。
【００５５】
ＳＥＬＥＣＴ＊  ｆｒｏｍ  ＩｎｃｏｍｅＤｉｓｐａｒｉｔｙ
ＷＨＥＲＥ（Ｔｘ１（ｓｅａｒｃｈ  ｔｏｋｅｎ）＝Ｔｘ２（ＳＳＮ））
このケースではクエリが検索トークンおよびＴｘ２に適用される１つ以上の第１の変換を参照し、ここで、Ｔｘ２はＳＳＮ列内の仮名トークンに適用される１つ以上の第２の変換を参照する。第１の変換Ｔｘ１は例えば、メインデータベース、リモート位置、またはリモート位置とメインデータベースとの間のデータベースネットワークルータなどの中間ノードで適用することができる。例えば、クエリは１つまたは複数のコマンド（変換を適用するためのコマンドなど）を含むことができ、これらのコマンドはメインデータベースのエージェントによって解釈され、次いで、クエリ内の条件を評価する前に、対応する変換をルックアップし適用するために使用される。
【００５６】
図５Ｃは、検索トークン５０３を１つまたは複数の仮名トークン５００Ａに一致させるために使用されるプロセスを示す。段階５０５において、変換（Ｔ２（Ｘ））が検索トークン５０３に適用され、変換された検索トークン５０７を生成する。同様に、段階５０４において、変換（Ｔ１（Ｘ））が列５００Ａ内の仮名トークンの各々に適用され、変換された列値５０６を生成する。列５００Ａは例えば、クエリで指定されたドメインに基づいて選択され得る。ステップ５０８では変換された列値５０６と変換された検索トークン５０７とが、マッチング関数を使用して比較される。マッチング関数は例えば、イコールマッチ、数値マッチ、またはストリング（文字列）マッチを使用することができる。マッチング関数は、変換された列値と変換された検索トークンのプロパティを比較することもできる。マッチング関数は、変換された検索トークン５０７に一致する変換された列値５０６を有する任意の行を識別する。ステップ５０９では、変換された検索トークンに一致する変換された列値を有する行が返される。
【００５７】
ここで図６Ａを参照する。非限定的な例示的実施形態によれば、図６Ａは、Ｓｏｎｇ−Ｗａｇｎｅｒ  Ｐｅｒｒｉｇ（ＳＷＰ）アルゴリズムのような（ただしこれに限定されない）多型対称暗号化アルゴリズムの標準的な使用を示す。標準モデルでは、平文データ要素Ｐ６００Ａ−１は鍵（ｋ）で暗号化される。平文データ要素Ｐの暗号化プロセスの一部として、擬似ランダム置換（ＰＲＰ）シードＲ６００Ａ−３が６００Ａ−２によって示されるように、平文データ要素Ｐに注入される。このような注入処理により、多型暗号文データエレメントＣＫ（Ｐ）６００Ａ−４が得られる。
【００５８】
その後、多型暗号文データ要素ＣＫ（Ｐ）６００Ａ−４が鍵（ｋ）で復号化される場合、ＰＲＰシードＲ６００Ａ−３は、鍵（ｋ）と共に復号化処理に注入されなければならない。このような演算は、平文データ要素Ｐ６００Ａ−１を復元することになる。当業者は、ＰＲＰシードＲ６００Ａ−３の存在がマッチング動作中に必要でない場合があることを理解するであろう。図６Ａに示すこの図では、暗号化プロセス中に注入されたＰＲＰシードＲ６００Ａ−３が後に暗号解読動作を実行するために、データベースのどこかに保存されなければならない。復号化プロセスにおいて後で使用するためにＰＲＰシードＲ６００Ａ−３をこのように記憶しておくことは、メタデータ管理の増加、複雑さ、およびシステム全体の信頼性の低下をもたらす。
【００５９】
ここで図６Ｂ〜Ｃを参照する。図６Ｂは図６Ａに開示された従来の方法に対する改良を表し、図６Ｃは、図６Ｂで行われたアルゴリズムをフローチャートで示す。図６Ｂに示すように、平文データ要素Ｐ６００Ｂ−１は、鍵（ｋ）で暗号化され、擬似ランダム置換（ＰＲＰ）シードＲ６００Ｂ−２によって増補される。ＰＲＰシードＲ６０６Ｂ−２は、暗号化動作のプロセスにおいて注入される。この暗号化演算により、多型暗号文データエレメントＣＫ（Ｐ）６００Ｂ−３が生成される。ＰＲＰシードＲ６００Ｂ−２は、暗号文データ要素ＣＫ（Ｐ）６００Ｂ−３に付加され、鍵（ｋ）を用いたストリーム動作方式でストリーム暗号またはブロック暗号で暗号化され、拡張暗号文６００Ｂ−４を形成または生成する。ＰＲＰシードＲ６００Ｂ−２のサイズは一定であるため、拡張暗号文６００Ｂ−４における要素の位置は一意に決まる。
【００６０】
ここで、図６Ｂに示されるフローチャートの実装を表す図６Ｃを参照すると、増補された暗号テキストが示される専用アルゴリズム（６００）が示される。最初の事柄として、ステップ６０１、６０２、および６０３によって示される情報は上述したように、図２のステップ２０１、２０２、および２０３によって示される情報と同じである。図１に示す１つまたは複数のサーバ１０２の専用プロセッサは、暗号文Ｈ（Ｐ）を受信した後、ステップ６０４で、擬似ランダム置換（ＰＲＰ）シードを生成する。ステップ６０５で、１つまたは複数のサーバ１０２は、異なるアルゴリズム（Ａ２）および鍵（ｋ２）を使用して暗号文Ｃ１を暗号化し、異なる第２の暗号文を生成する。当業者は、暗号化アルゴリズムが例えば、Ｓｏｎｇ−Ｗａｇｎｅｒ−Ｐｅｒｒｉｇ対称暗号アルゴリズムであり得ることを理解するであろう。次に、ステップ６０６で、サーバは、暗号アルゴリズム（Ａ３）、鍵（ｋ２）および初期化ベクトル（ＩＶ）のソースとしての第２の暗号文を使用して、前記ＰＲＰシードを暗号化する。ＰＲＰシードは、出力フィードバックモード（ＯＦＢ）、カウンタモード（ＣＴＲ）、またはガロアカウンタモード（ＧＣＭ）などのストリーム暗号動作モードにおいて、ＲＣ４暗号、タリング暗号、またはブロック暗号アルゴリズムなどのストリーム暗号を使用して暗号化できることを当業者は理解するであろう。当業者は、初期化ベクトル（ＩＶ）がＳＨＡ−２５６、ＳＨＡ−３などの暗号的に安全なハッシュアルゴリズムを使用して生成され得ることを理解するであろう。ＰＲＰシードのサイズは、アルゴリズム（Ａ２）の要求を満たすように選択される。
【００６１】
次に、ステップ６０７で、暗号化されたＰＲＰシードを暗号文に追加して、増補暗号文を生成することができる。すなわち、ＰＲＰシードは増補暗号文を形成するために、第２の暗号文の先頭または第２の暗号文の末尾に追加することができる。本質的に、増補された暗号文は、第２の暗号文と暗号化されたＰＲＰシードとの組み合わせである。
【００６２】
当業者は、ＰＲＰシードＲ６００Ｂ−２がＡＥＳ暗号の手段によって暗号化されることがストリームモード業務であることを理解するであろう。暗号化演算のための適切なＩＶは暗号文データ要素ＣＫ（Ｐ）６００Ｂ−３のＳＨＡ−２５６暗号ハッシュ値を計算し、前記計算されたハッシュ値の左端の１６バイトをとることによって導出される。さらに、ＳＥＡＬまたはＴＤＥＡのような他の暗号化アルゴリズムが暗号文データ要素ＣＫ（Ｐ）６００Ｂ−３を暗号化するために使用され得、ＭＤ５またはＳＨＡ−３ファミリーのような他のハッシュアルゴリズムが好適なＩＶを生成するために使用され得ることが、当業者によって理解される。また、ＲＣ４＋またはＳｐｒｉｔｚなどのＩＶを必要としない暗号化アルゴリズムを暗号化に使用できることも理解されたい。また、ＩＶは、固定値を使用するなど、異なるアプローチを使用して導出することができることも理解されたい
さらに図６Ｃを参照して、解読プロセスをステップ６０８、６０９および６１０に関して説明する。増補された暗号文から平文（Ｐ）に戻るために、図１に示すように、１つまたは複数のサーバ１０２の専用プロセッサはステップ６０８に示すように、増補された暗号文から暗号化されたＰＲＰシードを除去する。上述したように、暗号化されたＰＲＰシードは、暗号化プロセス中に暗号文に付加される。復号化のために、暗号化されたＰＲＰシードは暗号文から分離され、アルゴリズム（Ａ３）および鍵（ｋ２）を使用して復号化される。次に、ステップ６０９に示すように、アルゴリズム（Ａ２）および鍵（ｋ２）を使用して、結果として得られる暗号文を復号化する。その後、ステップ６１０に示すように、元の暗号文Ｈ（Ｐ）が得られる。
【００６３】
本明細書で開示される非限定的な例示的な実施形態によれば、本発明の概念は、多型的に暗号化されたデータを検索するために１つまたは複数のコンピューティングデバイスによって実行される少なくとも１つの方法を対象とする。本方法は１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって１つまたは複数の仮名トークンを生成することを含み、第１のアルゴリズムは同じ暗号文への多型アルゴリズムの各アプリケーションについて区別可能の仮名トークンを生成するように構成された多型アルゴリズムを含み、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数の仮名トークンをデータストアに格納することと、第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、暗号文に対応するデータをデータストア内で識別することとを含む。検索トークンは、１つまたは複数の仮名トークンとは区別可能である。第２のアルゴリズムは、第１のアルゴリズムと異なる。
【００６４】
第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって暗号文に対応するデータストア内のデータを識別することは、１つまたは複数の変換済み列を生成するために１つまたは複数の仮名トークンを含む１つまたは複数の列に１つまたは複数の第１の変換を適用することと、変換済み検索トークンを生成するために１つまたは複数の第２の変換を検索トークンに適用することと、１つまたは複数の変換済み列および変換済み検索トークンに少なくとも部分的に基づいて暗号文に対応する１つまたは複数の行を識別することとを含む。
【００６５】
１つまたは複数の変換された列および変換された検索トークンに少なくとも部分的に基づいて暗号文に対応する１つまたは複数の行を識別することは、１つまたは複数の一致する変換された列値を識別するために一致関数を使用して、１つまたは複数の変換された列内の各変換された列値を変換された検索トークンと比較することと、１つまたは複数の一致する変換された列値を含む１つまたは複数の行を暗号文に対応するものとして識別することとを含む。
【００６６】
多型的に暗号化されたデータを検索するための方法は、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、検索トークンが複数の仮名トークンのうちの１つまたは複数の仮名トークンと一致する場合、少なくとも１つの仮名トークンのリストを含む第１の結果を表示することと、検索トークンが複数の仮名トークンのうちの１つまたは複数の仮名トークンと一致しない場合、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、異なる第２の結果を表示することとをさらに含む。
【００６７】
多型的に暗号化されたデータを検索するための方法は、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、別個の仮名トークン内の１つまたは複数の擬似ランダム置換（ＰＲＰ）シードのそれぞれ１つを追加することによって、複数の仮名トークンの別個の仮名トークンを修正することをさらに含む。
【００６８】
多型的に暗号化されたデータを検索するための方法は１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数のＰＲＰシードのうちのそれぞれ１つを、異なる第３のアルゴリズムおよび暗号化鍵を使用して暗号化することをさらに含み、１つまたは複数のＰＲＰシードのうちのそれぞれ１つを追加することは、別個の仮名トークンの前または後のいずれかで、それぞれのＰＲＰシードを追加することを含む。
【００６９】
多型的に暗号化されたデータを検索するための方法は、初期化ベクトルとして、別個の仮名トークンのコンテンツに基づいて、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、１つまたは複数のＰＲＰシードを暗号化することをさらに備える。
【００７０】
多型的に暗号化されたデータを検索するための方法はさらに、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、暗号化された１つまたは複数のＰＲＰシードを切り離すことと、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、第３のアルゴリズムおよび暗号化鍵を使用して、暗号化された１つまたは複数のＰＲＰシードを復号することとを含む。
【００７１】
多型的に暗号化されたデータを検索するための方法は、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、初期化ベクトルとしての別個の仮名トークンのコンテンツに基づいて１つまたは複数のＰＲＰシードを復号することと、１つまたは複数のコンピューティングデバイスのうちの少なくとも１つによって、それぞれの仮名トークンを、別個の仮名トークンからそれぞれのＰＲＰシードを除去した後に、復号第１アルゴリズムおよび暗号化鍵を使用して復号することとをさらに備える。
【００７２】
本明細書で開示される非限定的な例示的実施形態によれば、本発明の概念は、１つまたは複数のプロセッサと、１つまたは複数のプロセッサのうちの少なくとも１つに動作可能に結合され、その上に格納された命令を有する１つまたは複数のメモリとを備える、多型暗号化されたデータを検索するためのシステムを対象とする。命令は１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、１つまたは複数のプロセッサのうちの少なくとも１つに、第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって１つまたは複数の仮名トークンを生成させる。第１のアルゴリズムは、同じ暗号文への多型アルゴリズムの各アプリケーションについて別個の仮名トークンを生成するように構成された多型アルゴリズムを含む。前記命令は、さらに、１つまたは複数の仮名トークンをデータストアに格納させ、第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって、暗号文に対応するデータをデータストア内で識別させる。検索トークンは、１つまたは複数の仮名トークンとは区別可能である。
【００７３】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、１つまたは複数のプロセッサに、１つまたは複数の仮名トークンを含む１つまたは複数の列に１つまたは複数の第１の変換を適用させて１つまたは複数の変換された列を生成させ、１つまたは複数の第２の変換を検索トークンに適用させて変換された検索トークンを生成させ、１つまたは複数の変換された列および変換された検索トークンに少なくとも部分的に基づいて暗号文に対応する１つまたは複数の行を識別させる、命令をさらに格納する。
【００７４】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されるときに、１つまたは複数のプロセッサのうちの少なくとも１つに、１つまたは複数の一致する変換された列値を識別するために一致関数を使用して１つまたは複数の変換された列内の各変換された列値を変換された検索トークンと比較させ、１つまたは複数の一致する変換された列値を含む１つまたは複数の行を暗号文に対応するものとして識別させる、１つまたは複数のメモリ上に格納された命令をさらに含む。
【００７５】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されるときに、１つまたは複数のプロセッサのうちの少なくとも１つに、別個の仮名トークン内の１つまたは複数の擬似ランダム置換（ＰＲＰ）シードのそれぞれ１つを追加することによって、複数の仮名トークンの別個の仮名トークンを修正させる、１つまたは複数のメモリ上に格納されたさらなる命令を含む。
【００７６】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されるときに、１つまたは複数のプロセッサのうちの少なくとも１つに、異なる第３のアルゴリズムおよび暗号化鍵を使用して１つまたは複数のＰＲＰシードのうちのそれぞれ１つを暗号化させる、１つまたは複数のメモリ上に格納されたさらなる命令を含む。１つまたは複数のＰＲＰシードのうちのそれぞれ１つを追加することは、別個の仮名トークンの前または後のいずれかに、それぞれのＰＲＰシードを追加することを含む。
【００７７】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されるときに、１つまたは複数のＰＲＰシードを暗号化するときに初期化ベクトルとして別個の仮名トークンのコンテンツを使用することに基づいて、１つまたは複数のプロセッサのうちの少なくとも１つに、１つまたは複数のＰＲＰシードを暗号化させる、１つまたは複数のメモリ上に格納されたさらなる命令を含む。
【００７８】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されると、１つまたは複数のプロセッサのうちの少なくとも１つに、暗号化された１つまたは複数のＰＲＰシードを切り離させ、第３のアルゴリズムおよび暗号化鍵を使用して、暗号化された１つまたは複数のＰＲＰシードを復号させる、１つまたは複数のメモリ上に格納されたさらなる命令を含む。
【００７９】
前記１つまたは複数のメモリのうちの少なくとも１つは、１つまたは複数のプロセッサのうちの少なくとも１つによって実行されるときに、１つまたは複数のＰＲＰシードを復号するときに初期化ベクトルとして別個の仮名トークンのコンテンツを使用することに基づいて、１つまたは複数のプロセッサのうちの少なくとも１つに、１つまたは複数のＰＲＰシードを復号させる、１つまたは複数のメモリ上に格納されたさらなる命令を含む。
【００８０】
本明細書で開示される非限定的な例示的実施形態によれば、本発明の概念は１つまたは複数のコンピューティングデバイスによって実行されるときに、第１のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって１つまたは複数の仮名トークンを生成させるコンピュータ可読命令を格納する少なくとも１つの非一時的なコンピュータ可読媒体を対象とする。第１のアルゴリズムは同じ暗号文への多型アルゴリズムの各アプリケーションについて別個の仮名トークンを生成するように構成された多型アルゴリズムを含み、１つまたは複数の仮名トークンをデータストアに格納し、第２のアルゴリズムおよび暗号化鍵を使用して暗号文を暗号化することによって生成された検索トークンを使用してデータベースに照会することによって暗号文に対応するデータをデータストア内で識別する。検索トークンは、１つまたは複数の仮名トークンとは異なる。
【００８１】
各コンピュータプログラムは記憶媒体（例えば、ＣＤ−ＲＯＭ、ハードディスク、または磁気ディスケット）またはデバイス（例えば、コンピュータ周辺機器）などの製造品に記憶することができ、記憶媒体またはデバイスはデータフレーマインターフェースの機能を実行するためにコンピュータによって読み取られるときに、コンピュータを構成し、動作させるために、プログラマブルコンピュータによって読み取り可能である。暗号化データを検索するためのシステム、装置、および方法はコンピュータプログラムで構成された機械可読記憶媒体として実装することもでき、実行時に、コンピュータプログラム内の命令は機械に、上述の暗号化データを検索する機能を実行させるように動作させる。
【００８２】
本明細書で使用されるように、コンピュータプログラムおよび／またはソフトウェアは、機能を実行する任意のシーケンスまたは人間または機械認識可能なステップを含むことができる。そのようなコンピュータプログラムおよび／またはソフトウエアは例えば、Ｃ／Ｃ＋＋、Ｃ＃、Ｆｏｒｔｒａｎ、ＣＯＢＯＬ、ＭＡＴＬＡＢ（商標）、ＰＡＳＣＡＬ、Ｐｙｔｈｏｎ、アセンブリ言語、マークアップ言語（例えば、ＨＴＭＬ、ＳＧＭＬ、ＸＭＬ、ＶｏＸＭＬ）など、ならびに、コモンオブジェクトリクエストブローカアーキテクチャ（「ＣＯＲＢＡ」）、ＪＡＶＡ（登録商標）（Ｊ２ＭＥ、Ｊａｖａ  Ｂｅａｎｓなどを含む）、バイナリランタイム環境（例えば、ＢＲＥＷ）などのオブジェクト指向環境を含む、任意のプログラム言語または環境でレンダリングすることができる。
【００８３】
本開示の特定の態様は、方法のステップの特定のシーケンスに関して説明されるが、これらの説明は本開示のより広範な方法の例示にすぎず、特定のアプリケーションによって必要とされるように修正され得ることが認識されるであろう。特定のステップは、特定の状況下では不要または任意選択である。さらに、特定のステップまたは機能性を、開示された構成に追加することができ、または２つ以上のステップの実行順序を入れ替えることができる。全てのそのような変形は、本明細書に開示され、特許請求される開示内に包含されると考えられる。
【００８４】
上記の詳細な説明は様々な実装形態に適用されるような本開示の新規な特徴を示し、説明し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更は本開示から逸脱することなく当業者によってなされ得ることが理解されるであろう。前述の説明は、本開示を実施するために現在考えられる最良の形態のものである。この説明は、決して限定することを意味するものではなく、むしろ、本開示の一般的な原理の例示として解釈されるべきである。開示の範囲は、特許請求の範囲を参照して決定されるべきである。
【００８５】
本開示は図面および前述の説明において詳細に図示および説明されてきたが、そのような図示および説明は例示的または例示的であり、限定的ではないと見なされるべきである。本開示は、開示される実施形態に限定されない。開示された実施形態に対する変形は図面、開示、および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され、実施されることができる。
【００８６】
本明細書で開示される方法は１つまたは複数の処理デバイス（たとえば、デジタルプロセッサ、アナログプロセッサ、情報を処理するように設計されたデジタル回路、情報を処理するように設計されたアナログ回路、状態機械、および／または情報を電子的に処理するための、および／またはコンピュータ可読命令として記憶されたコンピュータプログラムモジュールを実行するように構成された他の機構）で実装され得る。１つまたは複数の処理デバイスは、非一時的電子記憶媒体上に電子的に記憶された命令に応答して、方法の動作のいくつかまたはすべてを実行する１つまたは複数のデバイスを含むことができる。１つまたは複数の処理デバイスは、本明細書の方法の１つまたは複数の動作の実行のために特に設計されるようにハードウェア、ファームウェア、および／またはソフトウエアを介して構成された１つまたは複数のデバイスを含むことができる。
【００８７】
さらに、サーバは特定のステップを参照して説明されるが、これらのステップは説明の便宜のために定義され、構成要素部品の特定の物理的配置を暗示することを意図しないことを理解されたい。さらに、ステップは、物理的に別個の構成要素に対応する必要はない。ステップは例えば、プロセッサをプログラミングすることによって、または適切な制御回路を提供することによって、様々な動作を実行するように構成することができ、様々なステップは、初期構成がどのように得られるかに応じて、再構成可能であってもなくてもよい。本発明の概念の実施は、回路およびソフトウエアの任意の組合せを使用して実施される電子デバイスを含む様々な装置で実現することができる。
【００８８】
本明細書で実施され、開示されるプロセッサおよび／またはコントローラは処理がより高速かつより効率的に行われるように、コントローラによって実行される特殊化されたコンピュータ実装命令とハードコード化ロジックとの両方を備えることができる。これは、プロセッサおよび／またはコントローラによるより速い意思決定をもたらし、それによって、所望の結果をより効率的にかつ迅速に達成する。そのようなプロセッサおよび／またはコントローラは特殊化されたアルゴリズムの実行を介してコンピュータ機能性を改善し、コンピュータ技術に必然的に根ざす問題を解決し、既存の従来技術および／または従来技術を超える改善を提供する専用コンピュータを対象とする。例えば、本明細書で開示されるシステム、方法、および装置は、暗号化されたデータのデータ分析、検索、検索、および更新中にコンピュータセキュリティを改善する。さらに、本明細書で開示される新規なデータ構造はデータの完全な匿名性を維持しながら、ならびにＧＤＲＰの厳格な要件に準拠するために「忘れられる権利」を維持しながら、データの検索および分析を可能にする。最後に、本明細書で開示される技法は特定の人物に対応するデータを検索し、削除する必要がないように、「忘れられる権利」を計算効率のよい方法で実装する。必要とされるのは、暗号文を生成するために使用される初期鍵が破棄されることだけである。このような技法は公開鍵を使用する従来の方法よりも高速な処理を可能にし、必要とする追加の記憶装置が大幅に少なく、複数の暗号鍵を必要とする従来の方法よりも誤りの傾向が少ない。
【００８９】
本開示の特定の特徴または態様を説明するときの特定の用語の使用は、その用語が関連付けられる本開示の特徴または態様の任意の特定の特性を含むように限定されるように本明細書で用語が再定義されることを暗示すると解釈されるべきではないことに留意されたい。特に添付の特許請求の範囲において、本出願において使用される用語および語句、ならびにそれらの変形は特に明示的に記載されない限り、限定ではなく、オープンエンドとして解釈されるべきである。前述の例として、用語「含む」は「限定されるものではないが」などを意味すると解釈されるべきであり、本明細書で使用される用語「含む」は「含む」、「含む」または「特徴付けられる」と同義であり、包括的または限定されない要素または方法ステップを排除するものではなく、用語「有する」は「少なくとも有する」と解釈されるべきである。用語「そのような」は「限定されるものではないが」として解釈されるべきである。用語「含む」は「含むが限定されるものではない」として解釈されるべきである。用語「例」は論議中のアイテムの例示的な例を提供するために使用され、そのリストを網羅的または限定するものではなく、「例であり、限定されるものではない」」と解釈されるべきである。「既知の」、「通常の」、「標準」および同様の形容詞は、所定の期間または所定の時点で利用可能なアイテムを意味するものとして解釈されるべきではなく、現在または将来の任意のときに利用可能または既知であり得る、既知の、通常の、または標準的な技術を包含するように読み取られるべきである。
【００９０】
さらに、「好ましくは」、「好ましい」、「望まれる」、または「望ましい」などの用語、および同様の意味の用語の使用は、特定の特徴が本開示の構造または機能にとって決定的、本質的、または重要でさえあることを暗示するものとして理解されるべきではなく、代わりに、特定の実施形態で利用することができ、または利用することができない代替または追加の特徴を強調することを単に意図するものとして理解されるべきである。同様に、用語「および」にリンクされた項目のグループは、それらの項目のそれぞれおよびすべてがグループ内に存在することを必要とするものとして解釈されるべきではなく、むしろ、特に断りのない限り「および／または」として解釈されるべきである。同様に、用語「または」でリンクされた項目のグループは、そのグループ間で相互排他性を要求するものとして解釈されるべきではなく、むしろ、特に明記しない限り「および／または」として解釈されるべきである。
【００９１】
用語「約」または「略」などは同義語であり、この用語によって修飾された値がそれに関連する理解される範囲を有することを示すために使用され、この範囲は、±２０％、±１５％、±１０％、±５％、または±１％であり得る。用語「実質的に」は結果（例えば、測定値）が目標値に近いことを示すために使用され、ここで、近いとは、例えば、結果が値の８０％以内、値の９０％以内、値の９５％以内、または値の９９％以内であることを意味し得る。また、本明細書で使用される「定義された」または「決定された」は、「事前に定義された」または「所定の」および／または他の方法で決定された値、条件、閾値、測定値などを含むことができる。
【図１】
2020038350.tif 000004
【図２】
2020038350.tif 000005
【図３】
2020038350.tif 000006
【図４】
2020038350.tif 000007
【図５Ａ】
2020038350.tif 000008
【図５Ｂ】
2020038350.tif 000009
【図５Ｃ】
2020038350.tif 000010
【図６Ａ】
2020038350.tif 000011
【図６Ｂ】
2020038350.tif 000012
【図６Ｃ】
2020038350.tif 000013
【外国語明細書】
2020038350.tif 000014
2020038350.tif 000015
2020038350.tif 000016
2020038350.tif 000017
2020038350.tif 000018
2020038350.tif 000019
2020038350.tif 000020
2020038350.tif 000021
2020038350.tif 000022
2020038350.tif 000023
2020038350.tif 000024
2020038350.tif 000025
2020038350.tif 000026
2020038350.tif 000027
2020038350.tif 000028
2020038350.tif 000029
2020038350.tif 000030
2020038350.tif 000031
2020038350.tif 000032
2020038350.tif 000033
2020038350.tif 000034
2020038350.tif 000035
2020038350.tif 000036
2020038350.tif 000037
2020038350.tif 000038
2020038350.tif 000039
2020038350.tif 000040
2020038350.tif 000041
2020038350.tif 000042
2020038350.tif 000043
2020038350.tif 000044
2020038350.tif 000045
2020038350.tif 000046
2020038350.tif 000047
2020038350.tif 000048
2020038350.tif 000049
2020038350.tif 000050
2020038350.tif 000051
2020038350.tif 000052
2020038350.tif 000053
2020038350.tif 000054
2020038350.tif 000055