(57)【要約】【課題】安全テキスト検索に係る優れた方法及びシステムを提供する。【解決手段】本明細書に記載されている方法及びシステムは、１つ又は複数の文書の単語レベル暗号化及び文レベル暗号化を実施することができる。単語レベル暗号化及び文レベル暗号化は、クライアントデバイスによって生成される暗号化キーを用いて実施することができる。文書インデクサが、１つ又は複数のストレージネットワークに記憶される。文書インデクサは、１つ又は複数の暗号化文書の暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む。クライアントデバイスは、検索語を受信し、暗号化キーを用いて検索語を暗号化する。暗号化検索語並びに暗号化単語頻度及び／又は暗号化単語位置識別子の少なくとも一方を用いた検索に基づいて、１つ又は複数のストレージネットワーク内で１つ又は複数の暗号化文書が識別される。【選択図】図２
2016197396.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイスにより実行される方法であって、
クライアントデバイスによって生成される暗号化キーに基づいて文書の単語レベル暗号化及び文レベル暗号化を決定するステップであって、暗号化された暗号化文書が、前記単語レベル暗号化からの暗号化単語及び前記文レベル暗号化からの暗号化文を含む、当該決定するステップと、
１つ又は複数のストレージネットワークに前記暗号化文書を記憶するステップと、
前記１つ又は複数のストレージネットワーク内で文書インデクサを決定するステップであって、前記文書インデクサが、前記暗号化文書の前記暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む、当該文書インデクサを決定するステップと、
前記暗号化キーに基づいて前記クライアントデバイスによって受信される検索語の暗号化を決定するステップと、
暗号化検索語並びに前記暗号化単語頻度及び前記暗号化単語位置識別子の少なくとも一方を用いて実施される検索に基づいて、前記１つ又は複数のストレージネットワーク内で前記暗号化文書を識別するステップと、
を含む方法。
【請求項２】
前記暗号化キーが、前記暗号化キーが外部デバイスによってアクセス不可能であるように、前記クライアントデバイスによって安全確保される、請求項１に記載の方法。
【請求項３】
前記方法は、
前記クライアントデバイスによって受信される前記検索語に基づいて前記暗号化検索語の１つ又は複数の置換形態を決定するステップ、
をさらに含み、
前記暗号化文書を識別するステップは、
前記暗号化検索語の前記１つ又は複数の置換形態を用いて実施される前記検索に、さらに基づく、請求項１に記載の方法。
【請求項４】
前記方法は、
前記暗号化キーとは異なる、前記クライアントデバイスによって生成されるサブキーを決定するステップ、
をさらに含み、
前記暗号化単語頻度及び前記暗号化単語位置識別子が、前記サブキーに基づいて決定される、請求項１に記載の方法。
【請求項５】
前記方法は、
前記暗号化検索語の第２の暗号化を決定するステップと、
前記１つ又は複数のストレージネットワークのプロバイダに、第２の暗号化検索語を送信するステップと、
をさらに含み、
前記暗号化文書を識別するステップは、
前記第２の暗号化検索語の、前記暗号化検索語への復号に基づく、請求項１に記載の方法。
【請求項６】
前記文書インデクサが、前記１つ又は複数のストレージネットワークと関連付けられる第１のプロバイダによって記憶され、前記暗号化文書が、前記１つ又は複数のストレージネットワークと関連付けられる第２のプロバイダによって記憶される、請求項１に記載の方法。
【請求項７】
前記文書インデクサが、前記暗号化文書に対応する単語識別子、文書識別子、及び文識別子をさらに含む、請求項１に記載の方法。
【請求項８】
クライアントシステムであって、
命令を含む持続性コンピュータ可読媒体と、
動作を実施するために前記命令を実行するように構成されている１つ又は複数のプロセッサと、
を備え、
前記動作が、
１つ又は複数の暗号化キーに基づいて１つ又は複数の文書の暗号化を決定するステップと、
１つ又は複数のストレージネットワーク内で文書インデクサを決定するステップであって、前記文書インデクサが、前記１つ又は複数の暗号化文書の暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む、当該決定するステップと、
前記１つ又は複数の暗号化キーに基づいて前記クライアントシステムのユーザインターフェースによって受信される１つ又は複数の検索語の暗号化を決定するステップと、
前記１つ又は複数の暗号化検索語並びに前記暗号化単語頻度及び前記暗号化単語位置識別子の少なくとも一方を用いて実施される検索に基づいて、前記１つ又は複数のストレージネットワーク内で前記１つ又は複数の暗号化文書を識別するステップと、
を含む、
クライアントシステム。
【請求項９】
前記１つ又は複数の暗号化キーが、前記１つ又は複数の暗号化キーが外部デバイスによってアクセス不可能であるように、クライアントデバイスによって安全確保される、請求項８に記載のクライアントシステム。
【請求項１０】
前記１つ又は複数のプロセッサが、さらなる動作を実施するために前記命令を実行するように構成されており、
前記さらなる動作が、受信される前記１つ又は複数の検索語に基づいて前記１つ又は複数の暗号化検索語の１つ又は複数の置換形態を決定することを含み、
前記暗号化文書を識別するステップは、前記暗号化検索語の前記１つ又は複数の置換形態を用いて実施される前記検索に、さらに基づく、請求項８に記載のクライアントシステム。
【請求項１１】
前記暗号化単語が、単語レベル暗号化、文レベル暗号化、及び段落レベル暗号化の少なくとも１つから生成される、請求項８に記載のクライアントシステム。
【請求項１２】
前記１つ又は複数のプロセッサが、さらなる動作を実施するために前記命令を実行するように構成されており、
前記さらなる動作は、前記１つ又は複数の暗号化キーとは異なる、前記クライアントシステムによって生成されるサブキーを決定することを含み、
前記暗号化単語頻度及び前記暗号化単語位置識別子が、前記サブキーに基づいて決定される、請求項８に記載のクライアントシステム。
【請求項１３】
前記１つ又は複数のプロセッサが、さらなる動作を実施するために前記命令を実行するように構成されており、
前記さらなる動作が、
前記１つ又は複数の暗号化検索語の第２の暗号化を決定するステップと、
前記１つ又は複数のストレージネットワークのプロバイダに、第２の暗号化検索語を送信するステップと、
を含み、
前記暗号化文書を識別するステップは、前記第２の暗号化検索語の、前記１つ又は複数の暗号化検索語への復号に基づく、請求項８に記載のクライアントシステム。
【請求項１４】
前記文書インデクサが、前記１つ又は複数のストレージネットワークと関連付けられる第１のプロバイダによって記憶され、前記１つ又は複数の暗号化文書が、前記１つ又は複数のストレージネットワークと関連付けられる第２のプロバイダによって記憶される、請求項８に記載のクライアントシステム。
【請求項１５】
サーバにより実行される方法であって、
クライアントデバイスから１つ又は複数の暗号化文書を受信するステップであって、前記１つ又は複数の暗号化文書が、単語レベル暗号化からの暗号化単語及び文レベル暗号化からの暗号化文を含む、当該受信するステップと、
１つ又は複数のストレージネットワーク内で文書インデクサを決定するステップであって、前記文書インデクサが、前記暗号化文書の前記暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む、当該決定するステップと、
前記クライアントデバイスから１つ又は複数の暗号化検索語を受信するステップと、
前記１つ又は複数の暗号化検索語並びに前記暗号化単語頻度及び前記暗号化単語位置識別子の少なくとも一方を用いて実施される検索に基づいて、前記１つ又は複数のストレージネットワーク内で前記１つ又は複数の暗号化文書を識別するステップと、
を含む方法。
【請求項１６】
前記サーバが、
前記文書インデクサと、
前記クライアントデバイスによって生成されるサブキーと、
を含み、
前記暗号化単語頻度及び前記暗号化単語位置識別子が、前記サブキーに基づいて暗号化される、請求項１５に記載の方法。
【請求項１７】
前記１つ又は複数の暗号化検索語が第２の暗号化検索語を含み、
前記方法は、
前記クライアントデバイスによって生成されるサブキーを用いた前記第２の暗号化検索語の復号に基づいて単一の暗号化検索語を決定するステップ、
をさらに含み、
前記暗号化文書を識別するステップは、前記単一の暗号化検索語を用いて実施される前記検索に、さらに基づく、請求項１５に記載の方法。
【請求項１８】
前記方法は、
前記暗号化検索語の１つ又は複数の置換形態を決定するステップ、
をさらに含み、
前記暗号化文書を識別するステップは、前記暗号化検索語の前記１つ又は複数の置換形態を用いて実施される前記検索に、さらに基づく、請求項１５に記載の方法。
【請求項１９】
前記文書インデクサが、前記１つ又は複数のストレージネットワークと関連付けられる第１のプロバイダによって記憶され、前記暗号化文書が、前記１つ又は複数のストレージネットワークと関連付けられる第２のプロバイダによって記憶される、請求項１５に記載の方法。
【請求項２０】
前記文書インデクサが、前記１つ又は複数の暗号化文書に対応する複数の単語識別子、複数の文書識別子、及び複数の文識別子をさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセキュリティの様々な態様に関し、より詳細には、暗号化キーを用いて文書を暗号化すること、及び、暗号化文書を検索することに関する。
【０００２】
［関連出願の相互参照］
本出願は、参照によりその開示全体が本明細書に組み込まれる、２０１５年４月３日付で出願された「Ｓｅｃｕｒｅ  Ｔｅｘｔ  Ｒｅｔｒｉｅｖａｌ」と題する米国仮特許出願第６２／１４２，９９４号に対する優先権を主張する。
【背景技術】
【０００３】
文書内の内容を保護することは、暗号化キーを用いて文書内の１つ又は複数の単語を暗号化することを含み得る。そのため、暗号化キーを保持している認可された人間が、文書内の単語を読むために暗号化単語を復号することが可能である。けれども、そのような実践にあたっては、様々な種類の課題に直面する。例えば、所定のプロバイダ（例えば、グーグルメール（Ｇｏｏｇｌｅ  Ｍａｉｌ））を用いて重要な文書を記憶するユーザについて考慮されたい。プロバイダは、所定の暗号化キーを用いて文書を暗号化し、暗号化文書をプロバイダのストレージネットワークに記憶することができる。プロバイダはまた、暗号化キーもプロバイダのストレージネットワークに記憶し得る。したがって、プロバイダは、暗号化文書と暗号化キーの両方を保持し得る。そのため、プロバイダは一般的に、暗号化文書の内容にアクセスすることができ、事実、可能性としてユーザに気付かれずに文書の内容にアクセスすることができる。さらに、侵害があり、侵害しているパーティがプロバイダのストレージネットワークにアクセスする状況について考慮されたい。そのような状況において、侵害しているパーティは、記憶されている暗号化文書とプロバイダによって維持されている暗号化キーの両方にアクセスすることができ、それによって、文書の内容が露見する危険にさらされることになる。したがって、文書をプロバイダに預けることには、安全上の危険性がある。
【０００４】
加えて、様々なシステムはまた、システムによって与えられる安全性のレベルと、システムが文書を検索する全体的な効率との平衡についても、課題に直面し得る。例えば、プロバイダが、文書のより高いレベルの安全性を維持するために文書内の各単語を暗号化する状況について考慮されたい。そのため、ユーザが文書を検索する場合、プロバイダは、検索を実施することができるように、文書内の各単語を復号し得る。したがって、文書の内容を保護するために文書内の各単語を暗号化すること、及び、単純に文書を検索するために文書内の各単語を復号することは、特に、それに従って復号及び検索される必要がある多数の文書がある場合に、全体的なシステム効率に悪影響を及ぼすおそれがある。
【０００５】
そのため、データ安全性を向上させ、さらに、安全性のレベルを、全体的なシステム効率と平衡させることが大いに必要とされている。
【発明の概要】
【０００６】
文書の内容を保護するために暗号化を使用することによってさらなる課題にも直面する場合がある。例えば、システムは、内容が不透明であることに起因する、暗号化による課題に直面する場合がある。特に、文書内の暗号化単語は、暗号化文書の検索、より詳細には、暗号化文書の暗号化単語の検索に関係する様々な問題に基づいて不透明になる場合がある。いくつかの事例において、場合によっては使用されている暗号化の種類に基づいて、暗号化単語は内容が不透明であることに起因して全体が検索不可能になる場合がある。したがって、暗号化文書の安全性を保証することはできるが、暗号化によって、場合によっては検索不可能な文書に起因して検索効率が低減する場合がある。
【０００７】
以下の例示的な実施形態は、文書の安全性を保証するために文書を暗号化することに関し、システム効率を最適化しながらの暗号化文書の検索を可能にする。例えば、ユーザは、暗号化キーを生成し、ユーザが保護を所望する文書の暗号化を実施するために、クライアントデバイスを利用することができる。さらに、暗号化キーは、クライアントデバイスによってローカルに安全確保され、暗号化文書は、プロバイダに送信されて、プロバイダのストレージネットワークに記憶され得る。特に、暗号化キー及び暗号化文書は、プロバイダのストレージネットワークに侵害が発生した場合に、侵害しているパーティが暗号化文書と暗号化キーの両方にアクセスすることができないように、別個の場所に記憶される。特に、侵害しているパーティは、暗号化キーがクライアントデバイスによって安全確保されていることを知らないことになる。プロバイダのストレージネットワークに記憶されている暗号化文書の検索を実施するために、クライアントデバイスは、クライアントデバイスによって安全確保されている暗号化キーを使用して暗号化検索語を生成することが可能である。暗号化文書は、文書内の単語を復号することなく、検索から識別することができる。したがって、暗号化文書の検索をより少ないステップ又は動作で実施することができ、それによって、それに従ってシステムの効率が最適化される。
【０００８】
文書を暗号化するために、クライアントデバイス又はシステムは、文書内の単語、単語組み合わせ、文、段落、節、ページ及び／又は他の単語長によって暗号化を実施することができる。暗号化文書は、１つ又は複数のストレージネットワークに記憶することができる。クライアントデバイスは、同じく１つ又は複数のストレージネットワークに記憶される文書インデクサを構築することができる。文書インデクサは、他の可能性の中でも、暗号化文書の暗号化単語頻度及び暗号化文書の暗号化単語位置識別子を含むことができる。
【０００９】
暗号化文書の検索を実施するために、クライアントデバイスは、検索語を受信し、暗号化キーを用いて検索語を暗号化することができる。そのため、クライアントデバイスは、暗号化検索語を用いて検索を実施することができ、１つ又は複数のストレージネットワークから暗号化文書を識別することができる。クライアントデバイスはまた、文書インデクサからの暗号化単語頻度及び暗号化単語位置識別子を利用して検索を実施することもできる。提示されているように、暗号化キーは、暗号化キーが外部デバイスによってアクセス不可能であるように、クライアントデバイスによって安全確保することができる。
【００１０】
クライアントデバイスはまた、可能性としてクライアントデバイスによって受信される検索語に基づいて、暗号化検索語の１つ又は複数の置換形態を決定することもできる。例えば、１つ又は複数の置換形態は、暗号化検索語の変更形態、修正形態、及び／又は変形形態を含んでもよい。そのため、クライアントデバイスは、暗号化検索語の１つ又は複数の置換形態を用いた検索の実施に基づいて暗号化文書を識別することができる。
【００１１】
クライアントデバイスはまた、第１の暗号化検索語の第２の暗号化を実施することもできる。さらに、クライアントデバイスは、第２の暗号化検索語を１つ又は複数のストレージネットワークのプロバイダに送信することができる。そのため、暗号化文書は、第２の暗号化検索語の、第１の暗号化検索語への復号に基づいて識別することができる。特に、第１の暗号化検索語は、暗号化文書を検索及び識別するために使用することができる。
【００１２】
文書インデクサは、１つ又は複数のストレージネットワークと関連付けられる第１のプロバイダによって記憶することができる。暗号化文書は、１つ又は複数のストレージネットワークと関連付けられる第２のプロバイダによって記憶することができる。そのため、文書インデクサと暗号化文書とは、異なるプロバイダによって記憶することができる。文書インデクサはまた、暗号化文書に対応する単語識別子、文書識別子、及び文識別子も含むことができる。
【００１３】
クライアントデバイスはまた、暗号化キーとは異なるサブキーを生成することもできる。例えば、暗号化キーはマスターキーであってもよく、サブキーは、マスターキーに基づいて生成されてもよい。特に、マスターキー及びサブキーは、異なる鍵であり得る。けれども、マスターキーとサブキーの両方が、同じ文書を暗号化及び／又は復号するために使用されてもよい。したがって、文書インデクサ内の暗号化単語頻度及び暗号化単語位置識別子は、サブキーを用いて暗号化することができる。
【００１４】
本明細書に記載されている方法及び／又は動作の１つ又は複数のステップは、上述したクライアントデバイスによって実施することができることが留意されるべきである。なおさらに、１つ又は複数のプロセッサを含むクライアントシステムもまた、１つ又は複数のステップ及び／又は動作を実施してもよい。例えば、クライアントシステムは、命令を有する持続性コンピュータ可読媒体を含んでもよく、１つ又は複数のプロセッサは、それに従ってステップ及び／又は動作を実施するために命令を実行するように構成されてもよい。
【００１５】
別の例において、サーバが、クライアントデバイスから１つ又は複数の暗号化文書を受信する。１つ又は複数の暗号化文書は、１つ又は複数の暗号化文書の暗号化単語、暗号化単語組み合わせ、暗号化文、暗号化段落、及び／又は他の暗号化単語長を含んでもよい。サーバは、１つ又は複数のストレージネットワーク内の文書インデクサを決定する。文書インデクサは、暗号化文書の暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む。サーバは、クライアントデバイスから１つ又は複数の暗号化検索語を受信する。そのため、サーバは、１つ又は複数の暗号化検索語を用いて実施される検索に基づいて、１つ又は複数のストレージネットワーク内の１つ又は複数の暗号化文書を識別する。サーバは、文書インデクサ内の暗号化単語頻度及び暗号化単語位置識別子にさらに基づいて１つ又は複数の暗号化文書を識別することができる。
【００１６】
サーバは、文書インデクサ、及び、クライアントデバイスによって生成されるサブキーを含んでもよい。暗号化単語頻度及び暗号化単語位置識別子は、サブキーに基づいて暗号化することができる。さらに、文書インデクサは、１つ又は複数のストレージネットワークと関連付けられる第１のプロバイダによって記憶することができる。なお、暗号化文書は、１つ又は複数のストレージネットワークと関連付けられる第２のプロバイダによって記憶することができる。文書インデクサは、１つ又は複数の暗号化文書に対応するいくつかの単語識別子、いくつかの文書識別子、及び、いくつかの文識別子を含んでもよい。
【００１７】
１つ又は複数の暗号化検索語は、第２の暗号化検索語を含んでもよい。サーバは、クライアントデバイスによって生成されるサブキーを用いた第２の暗号化検索語の復号に基づいて、単一の暗号化検索語を決定することができる。そのため、サーバは、単一の暗号化検索語を用いて実施される検索に基づいて１つ又は複数の暗号化文書を識別することができる。サーバは、暗号化検索語の１つ又は複数の置換形態を決定することができる。そのため、サーバは、暗号化検索語の１つ又は複数の置換形態を用いて実施される検索に基づいて１つ又は複数の暗号化文書を識別することができる。
【図面の簡単な説明】
【００１８】
【図１Ａ】クライアントデバイスを含む例示的なシステムの図である。
【図１Ｂ】クライアントデバイスを含む例示的なシステムの図である。
【図２】文書インデクサを含む例示的なシステムの図である。
【図３】文書インデクサを含む例示的なシステムの図である。
【図４】文書の暗号化と関連付けられる流れ図である。
【図５】文書の暗号化と関連付けられる流れ図である。
【発明を実施するための形態】
【００１９】
安全テキスト検索（ＳＴＲ）は、暗号化及び情報検索を含む。特に、ＳＴＲは、暗号化検索語及び／又は暗号化文書を復号する必要なしに、暗号化文書を検索及び識別するために暗号化検索語を使用することを含む。そのため、暗号化文書は、検索効率を損なうことなく、文書の安全性を維持又は増大するために、それらの文書の暗号化された形態で検索及び識別することができる。例えば、プロバイダのシステムが侵害を受け、プロバイダが暗号化文書を記憶している状況について考慮されたい。そのような状況において、暗号化文書内の暗号化データは、プロバイダが文書を復号するのに使用することができる暗号化キーを有していないため、安全なままである。特に、クライアントは、暗号化キーを保持し、それらの暗号化キーをクライアントのデバイス（例えば、パーソナルデバイス）を用いてローカルに安全確保し、それによって、暗号化キーを外部デバイスによってアクセス不可能なままにする。
【００２０】
ここで図面を参照すると、図１Ａは、クライアントデバイス１０６を含む例示的なシステム１００を提供する。図示されているように、システム１００は、１つ又は複数のストレージネットワーク１０２と、安全テキスト検索（ＳＴＲ）サーバ１０４と称される場合もあるサーバ１０４とを含む。例えば、１つ又は複数のストレージネットワーク１０２は、企業環境に設けられてもよく、１つ又は複数のストレージネットワーク１０２は私的クラウドネットワークである。クライアントデバイス１０６は、例示を目的として文字「Ｋ」で示す暗号化キー１１０を生成する暗号化キーマネージャ１０８を含む。特に、暗号化キー１１０は、暗号化キー１１０が他の外部デバイスによってアクセス不可能であるように、クライアントデバイス１０６によって安全確保される。
【００２１】
文書１１２は、暗号化文書１１４を作成するために暗号化キー１１０を用いて暗号化され、暗号化文書１１４はサーバ１０４に送信される。クライアントデバイス１０６は、安全テキスト検索（ＳＴＲ）文書インデクサ１１６と称される場合もある文書インデクサ１１６を構築することもできる。文書インデクサ１１６は、ユーザが、可能性として、サーバ１０４及び／又は１つ若しくは複数のストレージネットワーク１０２の他の場所に記憶されている多数の他の文書の間で、暗号化文書１１４を検索することを容易にすることができる。クライアントデバイス１０６は、文書インデクサ１１６をサーバ１０４に送信することもできる。図示されているように、サーバ１０４は、暗号化文書１１４と、ＳＴＲ文書インデクサ１１６とを含む。なお、文書インデクサ１１６はサーバ１０４に記憶されてもよく、暗号化文書１１４はサーバ１０４から遠隔した異なるサーバに記憶されてもよいことが留意されるべきである。特に、文書インデクサ１１６の場所とは異なる場所に暗号化文書１１４を記憶することによって、暗号化文書１１４に対してさらに別のレベルの安全性を追加することができる。
【００２２】
図１Ｂは、クライアントデバイス１０６を含む例示的なシステム１００を提供する。図示されているように、システム１００は、図１Ａに関連して上述したようなサーバ１０４と、クライアントデバイス１０６とを含む。システム１００はまた、１つ又は複数のストレージネットワーク１０２をも含み、ストレージネットワーク１０２は、追加のストレージネットワーク１２４、１２６、及び１２８を含む。図示されているように、クライアントデバイス１０６は、上述したように文字「Ｋ」で示されている暗号化キー１１０を生成することができる。暗号化キー１１０は、文書１１２を暗号化して、ストレージネットワーク１２４に記憶することができる暗号化文書１１４を作成するために使用することができる。さらに、暗号化キー１１０は、文書１２０を暗号化して、ストレージネットワーク１２８に記憶することができる暗号化文書１２２を作成するために使用することができる。
【００２３】
さらに、クライアントデバイス１０６はまた、例示を目的として文字「Ｑ」で示されている暗号化キー１１８を生成することもできる。暗号化キー１１０及び／又は１１８は、上述した暗号化キーマネージャ１０８によって生成及び記憶することができる。特に、暗号化キー１１０はマスターキーであってもよく、暗号化キー１１８は、マスターキーのサブキーであってもよい。そのため、マスターキー（例えば、暗号化キー１１０）を保持しているユーザが、サブキー（例えば、暗号化キー１１８）を生成し、暗号化文書１１４及び１２２を検索することを認可されている他のユーザにサブキーを配布することができる。別の例において、マスターキーは、文書１１２及び１２０を暗号化するために使用されてもよく、サブキーは文書１１４及び１２２を復号するために使用されてもよい。様々なユーザが異なるサブキーを有し得るが、各ユーザは、文書１１２及び１２０を暗号化すること、並びに／又は、文書１１４及び１２２を復号することのために自身のそれぞれのサブキー１１８を使用することが可能であり得る。
【００２４】
暗号化キー１１０及び１１８は、暗号化キー１１０及び１１８が他の外部デバイスによってアクセス不可能であるように、クライアントデバイス１０６によって安全確保することができる。なお、いくつかの事例において、暗号化キー１１８は、場合によって、１つ又は複数の暗号化文書１１４及び１２０を検索するために使用される文書インデクサ１１６を維持するために、サーバ１０４に与えられてもよい。特に、文書インデクサ１１６は、暗号化文書１１４及び１２２から暗号化単語を維持又は編成することができる。特に、２つの異なる暗号化キー１１０及び１１８を有することによって、さらなる層の安全性をもたらすことができる。加えて、サーバ１０４並びに暗号化文書１１４及び／又は１２２は、さらなる層の安全性をもたらすために、異なるデータネットワークに与えられてもよい。例えば、上記の状況を想定して、データネットワーク１２６及び／又はサーバ１０４を巻き込むデータ侵害がある場合、侵害しているパーティは、暗号化文書１１４及び１２２から内容を理解できるように読むことはもちろんのこと、それぞれ他のデータネットワーク１２４及び１２８に記憶されている暗号化文書１１４及び１２２にアクセスすることも不可能である。
【００２５】
別の例において、暗号化文書１１４は、ストレージネットワーク１２４を運営及び維持する第１のプロバイダ（例えば、アマゾン（Ａｍａｚｏｎ）ウェブサーバ）によって記憶することができる。文書インデクサ１１６は、ストレージネットワーク１２６を運営及び維持する第２のプロバイダ（例えば、ドロップボックス（ＤＲＯＰＢＯＸ）（登録商標））によって記憶することができる。特に、暗号化文書１１４及び文書インデクサ１１６をそれぞれ異なるストレージネットワーク１２４及び１２６に記憶されるようにすることによって、可能性としてデータ侵害の場合に文書の安全性を促進することができる。さらに、文書インデクサ１１６は、ストレージネットワーク１２８内の複数の異なるプロバイダ（例えば、エバーノート（Ｅｖｅｒｎｏｔｅ））によって維持される他の暗号化文書（例えば、暗号化文書１２２）を検索するために使用することができ、それによって、システム１００全体の検索効率が促進される。
【００２６】
別の例において、ストレージネットワーク１２４でのデータ侵害があり、侵害しているパーティが暗号化文書１１４の暗号化単語を見ることが可能である状況について考慮されたい。そのような状況において、暗号化キー１１０は、上記で言及したように、クライアントデバイス１０６によって安全確保される。そのため、侵害しているパーティは、文書１１４の内容を合理的に読み又は理解するために文書１１４内の単語を復号することは不可能である。さらに、暗号化キー１１０はクライアントデバイス１０６によって安全確保されているため、第１のプロバイダから暗号化キー１１０を取り出そうとする、侵害しているパーティによるいかなる試行も成功しない。いくつかの事例において、侵害しているパーティは、暗号化キー１１０がクライアントデバイス１０６によって安全確保されていることを知らずに、ストレージネットワーク１２４内で暗号化キー１１０を検索し続ける場合がある。
【００２７】
第２のストレージネットワーク１２６でのデータ侵害の場合、侵害しているパーティは、文書インデクサ１１６の内容を解読することが不可能であることが留意されるべきである。特に、侵害しているパーティは、データが英数字コード、数、及び／又は数字の表であるように見えるため、文書インデクサ１１６内のデータを合理的に読むことが不可能である。特に、文書インデクサ１１６は、侵害しているパーティにとっては何ら意味を成さない単語、文書、文、及び他のデータエントリの識別子（例えば、識別番号）を含む。さらに、侵害しているパーティは、異なるストレージネットワーク１２４に記憶されている暗号化文書１１４にアクセスすることが不可能である。
【００２８】
図２は、文書インデクサ２１４を含む例示的なシステム２００である。場合によってはＳＴＲ文書インデクサ２１４とも称される文書インデクサ２１４は、図１Ａ〜図１Ｂに関連して上述した文書インデクサ１１６の形態をとることができる。１つ又は複数の文書２０２は、図１Ａ〜図１Ｂに関連して上述した文書１１２及び／又は１２０の形態をとることができ、それによって、１つ又は複数の文書２０２は、クライアントデバイス１０６によって暗号化することができる。図示されているように、１つ又は複数の文書２０２は、暗号化単語及び／又は文２０６を生成するために、ＳＴＲ暗号化２０４によって暗号化することができる。
【００２９】
１つ又は複数の文書２０２は、複数の異なるレベルで暗号化することができる。例えば、１つ又は複数の文書２０２は、暗号化単語及び／又は文２０６を決定するために、単語レベル及び文レベルで暗号化することができる。暗号化単語及び／又は文２０６は、ＳＴＲ文書ストレージコネクタ２０８に転送することができる。ＳＴＲ文書ストレージコネクタ２０８は、１つ又は複数のストレージネットワーク２１０、特に、複数のデータベースを示すために「ＳＴＲ  ＤＢ１」、「ＳＴＲ  ＤＢ２」〜「ＳＴＲ  ＤＢｎ」として図示されているＳＴＲデータベースに暗号化単語及び／又は文２０６を記憶する。１つ又は複数のストレージネットワーク２１０は、図１Ａ及び図１Ｂに関連して上述した１つ又は複数のストレージネットワーク１０２（例えば、ストレージネットワーク１２４〜１２８）の形態をとることができる。
【００３０】
ＳＴＲ暗号化２０４は、暗号化単語及び転置インデックス２１２を生成することができる。暗号化単語及び転置インデックス２１２は、ＳＴＲ文書インデクサ２１４に転送することができる。そのため、ＳＴＲ文書インデクサ２１４は、上述した様々な識別子（例えば、単語識別子、文書識別子、及び文識別子）を記憶することができる。図示されているように、ＳＴＲ文書インデクサ２１４は、ＳＴＲインデックスデータベース２１６にこのデータを記憶することができる。特に、ＳＴＲインデックスデータベース２１６は、所定のプロバイダによって維持することができ（例えば、データストレージネットワーク１２６によって表される）、ＳＴＲデータベース（例えば、ＳＴＲ  ＤＢ１〜ＤＢｎ）は、複数の異なるプロバイダによって維持することができる（例えば、データストレージネットワーク１２４及び１２８によって表される）。いくつかの事例において、文レベル暗号化（例えば、暗号化文２０６）及び単語レベル暗号化２１２に基づいて、さらなる層の安全性をシステム２００に追加することができる。例えば、暗号化文２０６を使用してＳＴＲインデックスデータベース２１６を用いて検索が実施される場合、ＳＴＲインデックスデータベースは単語レベル暗号化２１２において構築されるため、結果はもたらされない。
【００３１】
特に、様々な他の暗号化が実施されてもよく、本明細書に記載されている実施形態は、上述した文レベル暗号化及び／又は単語レベル暗号化に限定されるべきではない。例えば、本明細書に記載されている暗号化は、他の可能性の中でも、文字、文字組み合わせ、単語、及び／又は単語組み合わせに基づいてもよい。さらに、暗号化は、文、段落、節、ページ、及び／又は本明細書において企図されているような文書のそのような態様の様々な他の組み合わせに基づいてもよい。実際には、例えば、文書は、文、段落、及び／又は文書によって与えられる他の単語長に基づいて暗号化されてもよい。特に、文レベル暗号化は、単語を文に対してインデックス付けする１つの方法を提供することができる。なお、段落レベル暗号化は、単語を段落に対してインデックス付けする別の方法を提供することができる。なおさらに、単語レベル暗号化は、検索語（例えば、キーワード）を暗号化し、暗号化検索語（例えば、暗号化キーワード）に基づく検索をさらに実施するために使用することができる。
【００３２】
検索を実施するために、例えば、上述したクライアントデバイス１０６によって、いくつかの検索語２１８を受信することができる。ＳＴＲ検索暗号化２２０が、暗号化検索語２２２を作成するために１つ又は複数の暗号化キー（例えば、暗号化キー１１０及び／又は１１８）を用いて検索語２１８を暗号化することができる。暗号化検索語２２２は、一致する文書及び／又は場所２２４を判定するためにＳＴＲ文書インデクサ２１４に送信することができる。ＳＴＲ文書ストレージコネクタ２０８は、ＳＴＲ復号２２６を実施することができるように、ＳＴＲデータベースＳＴＲ  ＤＢ１〜ＤＢｎから暗号化文書（例えば、暗号化された形態の１つ又は複数の文書２０２）をフェッチすることができる。したがって、文書２０２を、検索から取り出すことができる。
【００３３】
図３は、文書インデクサ３１４を含む例示的なシステム３００である。場合によってはＳＴＲ文書インデクサ３１４とも称される文書インデクサ３１４は、図２に関連して上述したＳＴＲ文書インデクサ２１４の形態をとることができる。図示されているように、場合によっては「パス」及び「ファイル名」によって識別される１つ又は複数の文書３０２があり得る。場合によって文「Ｓ１」と称される１つ又は複数の文書３０２内の１つの文は、「Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｓ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ．」と読むことができる。１つ又は複数の文書３０２内で、「Ｓ２」及び「Ｓ３」として表されるさらなる文が、Ｓ１に後続し得る。１つ又は複数の文書３０２は、場合によって上述したＳＴＲ暗号化２０４と同様に、ＳＴＲ暗号化３０４によって暗号化することができる。
【００３４】
ＳＴＲ暗号化３０４は、場合によってはクライアントデバイス（例えば、クライアントデバイス１０６）によって安全確保されている暗号化キー（例えば、暗号化キー１１０）を使用した、文レベル暗号化を含むことができる。図示されているように、ＳＴＲ暗号化３０４は、文辞書３０６に記憶されているいくつかの暗号化文を与える。１つの暗号化文が「Ｅｋ（Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｓ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ）」として示されており、その文に、さらなる暗号化文「Ｅｋ（Ｓ２）」及び「Ｅｋ（Ｓ３）」が後続している。特に、ＳＴＲ暗号化３０４は、それぞれ文Ｓ１、Ｓ２、及びＳ３全体を暗号化することができる。したがって、１つ又は複数の文書３０２をその暗号化された形態で記憶するために、文レベル暗号化は、暗号化文を文辞書３０６に記憶するために使用することができる。そのため、文辞書３０６内の各暗号化文には、転置インデックス３１１に示されている文識別子（例えば、「ＳｅｎｔｅｎｃｅＩＤ」）を与えることができる。
【００３５】
加えて、ＳＴＲ暗号化３０４は、同じく場合によってはクライアントデバイス（例えば、クライアントデバイス１０６）によって安全確保されている暗号化キー（例えば、暗号化キー１１０）を使用した、単語レベル暗号化を含むことができる。図示されているように、ＳＴＲ暗号化３０４は、暗号化形態にある文Ｓ１から、「Ｅｋ（Ｔｈｅ）」、「Ｅｋ（ｑｕｉｃｋ）」、「Ｅｋ（ｂｒｏｗｎ）」、「Ｅｋ（ｆｏｘ）」、「Ｅｋ（ｊｕｍｐｓ）」、「Ｅｋ（ｏｖｅｒ）」、「Ｅｋ（ｔｈｅ）」、「Ｅｋ（ｌａｚｙ）」、「Ｅｋ（ｄｏｇ）」、及び「Ｅｋ（．）」として示すような単語を与える。暗号化単語３１０はまた、それに従って、文Ｓ２及びＳ３からの各暗号化単語も含むことができる。したがって、暗号化単語３１０は、単語レベル暗号化に基づいてＳＴＲ文書インデクサ３１４に送信される。そのため、暗号化単語３１０から各暗号化単語には、転置インデックス３１１に示されている単語識別子（例えば、「ＷｏｒｄＩＤ」）を与えることができる。
【００３６】
さらに、文書辞書３０８が、「Ｅｋ（．．．）」として示されている１つ又は複数の文書３０２からの他の文書の他の暗号化パス及びファイル名とともに、「Ｅｋ（Ｐａｔｈ＋ｆｉｌｅｎａｍｅ）」として示されている暗号化パス及びファイル名を与える。したがって、新たな文書がクライアントデバイス１０６によって作成される度毎に、新たな文書に文書識別子を割り当て、文書辞書３０８に記憶することができる。さらに、転置インデックス３１１は、文書辞書３０８内の各文書に対する文書識別子（例えば、「ＤｏｃｕｍｅｎｔＩＤ」）、１つ又は複数の暗号化単語３１０の各暗号化単語に対する単語識別子（例えば、「ＷｏｒｄＩＤ」）、文辞書３０６内の各文に対する文識別子（例えば、「ＳｅｎｔｅｎｃｅＩＤ」）、及び、各文内の各単語の位置を示す位置識別子（例えば、「ＰｏｓｉｔｉｏｎＩＤ」）を与えることができる。加えて、単語頻度計算器３１２が、検索を促進するために１つ又は複数の単語３１０からの各単語の頻度（例えば、「ＷｏｒｄＦｒｅｑｕｅｎｃｙ」）を判定することができる。
【００３７】
ＳＴＲ文書インデクサ３１４は、上述したＳＴＲインデックスデータベース２１６と同様であってもよいＳＴＲインデックスデータベース３１８のデータを生成する。なお、暗号化されている１つ又は複数の文書３０２からの各暗号化単語は、暗号化されていない単語自体よりも多い文字又は数字を有する場合がある。したがって、メモリ記憶容量を節約するために、ＳＴＲインデックスデータベース３１８は、場合によっては転置インデックス３１１によって決定される単語識別子に基づいて、暗号化単語の各々に対する単語識別子（例えば、「ＷｏｒｄＩＤ」）を決定する。そのため、暗号化単語を識別するためのストレージ空間を低減することができ、それによって、検索効率が最適化される。
【００３８】
単語辞書３１６が、各暗号化単語を含むことができる。例えば、単語辞書３１６は、アルファベット順の暗号化単語「Ｅｋ（．．．）」、「Ｅｋ（ｂｒｏｗｎ）」、「Ｅｋ（ｄｏｇ）」、「Ｅｋ（ｆｏｘ）」、「Ｅｋ（ｊｕｍｐｓ）」、「Ｅｋ（ｌａｚｙ）」、「Ｅｋ（ｏｖｅｒ）」、「Ｅｋ（Ｔｈｅ）」、「Ｅｋ（ｔｈｅ）」、「Ｅｋ（ｑｕｉｃｋ）」、「Ｅｋ（．）」、及び「Ｅｋ（．．．）」を与えることができる。したがって、各暗号化単語について、ＳＴＲインデックスデータベース３１８は、単語識別子、文書識別子（例えば、「ＤｏｃｕｍｅｎｔＩＤ」）、「ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）」として示されている暗号化単語頻度を含む。さらに、各暗号化単語について、ＳＴＲインデックスデータベース３１８は、文識別子（例えば、「ＳｅｎｔｅｎｃｅＩＤ」）、及び「ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）」として示されている暗号化位置識別子のいくつかのタプルを含む。ＳＴＲ暗号化３０４は、単一のステップで、すなわち、一度にすべてを実施することができ、フィルタを各暗号化単語に適用することができ、暗号化単語頻度を（例えば、単語頻度計算器３１２によって）計算することができ、それによって、ＳＴＲインデックスデータベース３１８を、頻度によって順序付けすることができる。
【００３９】
したがって、暗号化単語が出現する度毎に、タプル（例えば、文識別子及び暗号化位置識別子）の数を判定することができる。そのため、同じ暗号化単語の任意の冗長な単語識別子を削除することによって、メモリが節約される。括弧によって示されているように、文識別子及び暗号化位置識別子の両端の第１の括弧セットが第１のタプルであり、第２のタプルを示す第２の括弧セットがそれに後続し、さらなるタプルを示す後続の括弧がそれに後続する。
【００４０】
図示されているように、「ＥＫ（ｗｏｒｄ）」は、場合によってクライアントデバイス（例えば、クライアントデバイス１０６）によって安全確保されている第１の暗号化キー（例えば、暗号化キー１１０）によって暗号化されている、暗号化単語の宛先である。さらに、「ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）」は暗号化単語頻度であり、「ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）」は、場合によって第２の暗号化キー（例えば、暗号化キー１１８）によって暗号化されている暗号化位置識別子である。したがって、ＳＴＲインデックスデータベース３１８においてデータ侵害があった場合、単語識別子、文書識別子、及び文識別子は転置インデックス３１１によって割り当てられている数字に過ぎないため、侵害しているパーティは、いずれの単語も解読することができない。
【００４１】
なお、いくつかの状況において、侵害しているパーティが、使用されている単語頻度及び文における単語の位置を判定して、この情報を利用してＳＴＲインデックスデータベース３１８に関する何らかの理解を発見することが可能であり得るといういくらかの可能性があり得る。したがって、そのような可能性を防ぐために、単語頻度及び位置識別子は、ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）及びＥＱ（ＰｏｓｉｔｉｏｎＩＤ）によって示すように、ＳＴＲインデックスデータベース３１８内で暗号化される。さらに、さらなるセキュリティ手段として、ＳＴＲインデックスデータベース３１８内の特定のエントリに数字をパディングすることができ、それによって、各データエントリは同じ長さを有し、それによって、データベース３１８の可視性が最小限に抑えられる。
【００４２】
いくつかの事例において、同じ暗号化単語に対する単語識別子は冗長であり得る。例えば、所定の暗号化単語に対する単語識別子は２２２２であり得る。この暗号化単語が再び現れた場合、単語識別子２２２２も再び現れ得る。そのため、そのような事例において、第２の又は「二重」暗号化を、冗長な識別子の１つ又は複数に対して実施することができる。特に、クライアントデバイス（例えば、クライアントデバイス１０６）がサーバ（例えば、サーバ１０４）と通信するとき、クライアントデバイスは、単語識別子が繰り返され得る場合に詳細を隠すためにワンタイムパスワードを使用して特定の単語を２回暗号化することができる。そのため、二重暗号化によって、たとえ同じ暗号化単語であっても、異なる単語識別子を有することになる。
【００４３】
いくつかの事例において、様々な暗号プリミティブをＳＴＲ暗号化３０４とともに使用することができる。例えば、ＳＴＲ暗号化３０４は、ＳＴＲ暗号化３０４は、１つ又は複数の文書３０２を暗号化するために高度暗号化標準（ＡＥＳ）又はＲｉｊｎｄａｅｌを利用することができる。さらに、ＳＴＲ暗号化３０４は、１つ又は複数の文書３０２を暗号化するために、上述したようなデータエントリのパディングとともに、暗号ブロック連鎖（ＣＢＣ）を利用することができる。侵害しているパーティが、クライアントデバイスとサーバとの間で転送されるデータを監視するためにクライアントデバイスの通信回線を（例えば、オシロスコープを用いて）追跡することを防止するために、ワンタイムパスワード（ＯＴＰ）を用いてさらなるレベルのセキュリティを実施することができる。ＯＴＰは、そのような状況下でのデータ侵害の可能性をなくす。
【００４４】
ＳＴＲ文書インデクサ３１４による検索を実施するために、クライアントデバイス（例えば、クライアントデバイス１０６）によって安全確保されている暗号化キー（例えば、暗号化キー１１０）を用いて検索語が暗号化される。そのため、検索語の各々は、検索語を部分語に分解することなく、暗号化キーを用いて暗号化される。いくつかの事例において、単語の様々な置換形態も暗号化及び検索することができる。例えば、検索語「Ｗａｌｔ」はそれ自体では興味を惹かないものであり得る。さらに、検索語「Ｄｉｓｎｅｙ．」は、子ども向けの話、本、マルチメディア、及びテーマパークに対する様々な含意を有し得る。なお、２つの単語が一緒になった「Ｗａｌｔ  Ｄｉｓｎｅｙ」は、有名な企業家、漫画家、アニメータ、声優、及び映画製作者を指す。そのため、正規表現検索を利用することによって、所望の結果を生成するために「Ｗａｌｔ」及び「Ｄｉｓｎｅｙ」の様々な置換形態を検索することができる。
【００４５】
別の例において、検索を実施するためにクライアントデバイスによって受信される検索語の別個のセット「Ｂｉｌｌ  Ｃｌｉｎｔｏｎ」について考慮されたい。ＳＴＲ文書インデクサ３１４及びＳＴＲインデックスデータベース３１８は、システム３００が、所望される暗号化文書を識別するために語「Ｗｉｌｌｉａｍ  Ｊｅｆｆｅｒｓｏｎ  Ｃｌｉｎｔｏｎ」を用いて検索を実施することを可能にする。検索語「Ｂｉｌｌ  Ｃｌｉｎｔｏｎ」は２つの単語しか有しないため、ブール検索のような従来の検索メカニズムは文書を識別していないことに留意されたい。なお、検索される文書内で識別され得る単語は３単語「Ｗｉｌｌｉａｍ  Ｊｅｆｆｅｒｓｏｎ  Ｃｌｉｎｔｏｎ」である。そのため、ＳＴＲ文書インデクサ３１４及びＳＴＲインデックスデータベース３１８による検索機能によって、システム３００は、従来のシステムを超えた多数の置換形態及び可能性を用いて検索を実施することが可能になる。
【００４６】
特に、検索は、暗号化検索語の可能な置換形態のリストを生成すること、及び、ＳＴＲインデックスデータベース３１８との一致を識別することを含み得る。特に、単語サブセットしか暗号化することができない従来のシステムを超えて検索機能を最適化するために、１つ又は複数の文書３０２のすべての単語を暗号化することができる。そのため、ＳＴＲ文書インデクサ３１４及びＳＴＲインデックスデータベース３１８による検索機能によって、システム３００は、多数の置換形態（例えば、単数形、複数形、及び異なるつづり）を用いて検索を実施することが可能になる。特に、暗号化されていない語を検索するように構成することができる検索エンジンは、本明細書に記載されているＳＴＲ暗号化及びＳＴＲベースの検索にシームレスに変換することができる。
【００４７】
図４は、文書の暗号化と関連付けられる方法４００の流れ図である。例えば、ステップ４０２〜４１０は、図１Ａ〜図１Ｂに関連して上述したクライアントデバイス１０６のようなクライアントデバイスによって実施されてもよい。
【００４８】
ステップ４０２において、方法４００は、クライアントデバイスによって生成される暗号化キーに基づいて文書の単語レベル暗号化及び文レベル暗号化を決定することを含み、暗号化文書は、単語レベル暗号化からの暗号化単語及び文レベル暗号化からの暗号化文を含む。例えば、方法４００は、１つ又は複数の文書３０２のＳＴＲ暗号化３０４からの単語レベル暗号化及び文レベル暗号化を決定することを含んでもよい。さらに、ＳＴＲ暗号化３０４は、クライアントデバイス（例えば、クライアントデバイス１０６）によって生成される暗号化キー（例えば、暗号化キー１１０及び／又は１１８）に基づいてもよい。
【００４９】
ステップ４０４において、方法４００は、１つ又は複数のストレージネットワークに暗号化文書を記憶することを含む。例えば、方法４００は、場合によっては１つ又は複数のストレージネットワークに位置する文辞書３０６及び／又はＳＴＲインデックスデータベース３１８に、ＳＴＲ暗号化３０４からの暗号化単語３１０を記憶することを含んでもよい。さらに、方法４００は、１つ又は複数のストレージネットワークに、１つ又は複数の文書３０２の暗号化パス及びファイル名を記憶することを含んでもよい。なおさらに、方法４００は、１つ又は複数のストレージネットワークに位置するＳＴＲインデックスデータベース３１８に、転置インデックス３１１及び計算された単語頻度（例えば、単語頻度計算器３１２からの）を記憶することを含んでもよい。図１Ａ及び図１Ｂに戻って参照すると、１つ又は複数のストレージネットワークは、１つ又は複数のストレージネットワーク１０２、１２４、１２６、及び／又は１２８を含んでもよい。
【００５０】
ステップ４０６において、方法４００は、１つ又は複数のストレージネットワーク内で文書インデクサを決定することを含み、文書インデクサは、暗号化文書の暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む。例えば、方法４００は、上述した１つ又は複数のストレージネットワーク内でＳＴＲ文書インデクサ３１４を決定又は構築することを含んでもよい。ＳＴＲ文書インデクサ３１４は、ＳＴＲインデックスデータベース３１８内の「ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）」として上述した、計算された暗号化単語頻度を含んでもよい。ＳＴＲ文書インデクサ３１４はまた、ＳＴＲインデックスデータベース３１８内の「ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）」として上述した、暗号化単語位置識別子も含んでもよい。暗号化単語頻度及び暗号化単語位置識別子は、暗号化単語３１０に基づいてもよい。
【００５１】
ステップ４０８において、方法４００は、暗号化キーに基づいてクライアントデバイスによって受信される検索語の暗号化を決定することを含む。例えば、方法４００は、暗号化キー（例えば、暗号化キー１１０及び／又は１１８）に基づいてクライアントデバイス（例えば、クライアントデバイス１０６）によって受信される検索語２１８のＳＴＲ暗号化２２０を決定することを含んでもよい。
【００５２】
ステップ４１０において、方法４００は、暗号化検索語並びに暗号化単語頻度及び暗号化単語位置識別子の少なくとも一方を用いて実施される検索に基づいて、１つ又は複数のストレージネットワーク内で暗号化文書を識別することを含む。例えば、方法４００は、暗号化検索語２２２を用いて実施される検索に基づいて１つ又は複数のストレージネットワーク２１０内で暗号化文書（例えば、一致する文書及び／又は場所２２４）を識別することを含んでもよい。暗号化文書は、ＳＴＲインデックスデータベース３１８内のＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）として上述した、暗号化単語頻度に基づいて識別されてもよい。さらに、暗号化文書は、ＳＴＲインデックスデータベース３１８内のＥＱ（ＰｏｓｉｔｉｏｎＩＤ）として上述した、暗号化単語位置識別子に基づいて識別されてもよい。
【００５３】
方法４００は、クライアントデバイス（例えば、クライアントデバイス１０６）によって受信される検索語２１８に基づいて、上述したような暗号化検索語２２２の１つ又は複数の置換形態を決定することを含んでもよい。さらに、方法４００は、暗号化検索語２２２の１つ又は複数の置換形態を用いて実施される検索にさらに基づいて１つ又は複数のストレージネットワーク２１０内で暗号化文書（例えば、一致する文書及び／又は場所２２４）を識別することを含んでもよい。
【００５４】
方法４００は、上記暗号化キーとは異なる、クライアントデバイス１０６によって生成されるサブキー１１８を決定することを含んでもよく、暗号化単語頻度ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）及び暗号化単語位置識別子ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）は、サブキー１１８に基づいて決定されてもよい。
【００５５】
方法４００は、暗号化検索語２２２の第２の暗号化（例えば、二重暗号化）を決定することを含んでもよい。方法４００は、１つ又は複数のストレージネットワーク（例えば、ストレージネットワーク１０２、１２４、１２６、及び／又は１２８）のプロバイダに第２の暗号化検索語を送信することを含んでもよい。方法４００は、第２の暗号化検索語の、暗号化検索語２２２への復号（例えば、ＳＴＲ復号２２６）に基づいて、一致する文書及び／又は場所２２４の暗号化文書を識別することを含んでもよい。
【００５６】
場合によってはクライアントシステム１００とも称されるシステム１００は、命令を含む持続性コンピュータ可読媒体を含んでもよい。さらに、クライアントデバイス１０６の１つ又は複数のプロセッサは、動作を実施するために命令を実行するように構成されてもよい。言及したように、動作は、１つ又は複数の文書３０２のＳＴＲ暗号化３０４からの暗号化（例えば、単語レベル暗号化、文レベル暗号化、及び／又は段落レベル暗号化）を決定することを含む。動作はまた、１つ又は複数のストレージネットワークに位置する文辞書３０６に、ＳＴＲ暗号化３０４からの暗号化単語を記憶することも含んでもよい。
【００５７】
さらに、動作は、上述したように、１つ又は複数のストレージネットワーク（例えば、ストレージネットワーク１０２、１２４、１２６、及び／又は１２８）内でＳＴＲ文書インデクサ３１４を決定することを含む。なおさらに、動作は、暗号化キー（例えば、暗号化キー１１０及び／又は１１８）に基づいてクライアントデバイス（例えば、クライアントデバイス１０６）によって受信される検索語２１８のＳＴＲ暗号化２２０を決定することを含んでもよい。加えて、動作は、暗号化検索語２２２を用いて実施される検索に基づいて１つ又は複数のストレージネットワーク２１０内で暗号化文書（例えば、一致する文書及び／又は場所２２４）を識別することを含んでもよい。
【００５８】
クライアントシステム１００は、クライアントデバイス（例えば、クライアントデバイス１０６）によって受信される検索語２１８に基づいて、暗号化検索語２２２の１つ又は複数の置換形態を決定することを含む動作を実施してもよい。さらに、動作は、暗号化検索語２２２の１つ又は複数の置換形態を用いて実施される検索にさらに基づいて１つ又は複数のストレージネットワーク２１０内で暗号化文書（例えば、一致する文書及び／又は場所２２４）を識別することを含んでもよい。
【００５９】
クライアントシステム１００は、上記暗号化キーとは異なる、クライアントデバイス１０６によって生成されるサブキー１１８を決定することを含む動作を実施してもよい。さらに、暗号化単語頻度ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）及び暗号化単語位置識別子ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）が、サブキー１１８に基づいて決定されてもよい。
【００６０】
クライアントシステム１００は、暗号化検索語２２２の第２の暗号化（例えば、二重暗号化）を決定することを含む動作を実施してもよい。動作はまた、１つ又は複数のストレージネットワーク（例えば、ストレージネットワーク１０２、１２４、１２６、及び／又は１２８）のプロバイダに第２の暗号化検索語を送信することも含んでもよい。さらに、クライアントデバイス１００は、第２の暗号化検索語の、暗号化検索語２２２への復号（例えば、ＳＴＲ復号２２６）に基づいて、一致する文書及び／又は場所２２４の暗号化文書を識別してもよい。
【００６１】
図５は、文書の暗号化と関連付けられる方法５００の流れ図である。例えば、ステップ５０２〜５０８は、図１Ａ〜図１Ｂに関連して上述したサーバ１０４のようなサーバによって実施されてもよい。
【００６２】
ステップ５０２において、方法５００は、クライアントデバイスから１つ又は複数の暗号化文書を受信することを含み、１つ又は複数の暗号化文書は、単語レベル暗号化からの暗号化単語及び文レベル暗号化からの暗号化文を含む。例えば、方法５００は、クライアントデバイス１０６から１つ又は複数の暗号化文書１１４及び／又は１２２を受信することを含んでもよい。１つ又は複数の暗号化文書１１４及び／又は１２２は、１つ又は複数の文書３０２のＳＴＲ暗号化３０４からの単語レベル暗号化からの暗号化単語及び文レベル暗号化からの暗号化文を含んでもよい。
【００６３】
ステップ５０４において、方法５００は、１つ又は複数のストレージネットワーク内で文書インデクサを決定することを含み、文書インデクサは、暗号化文書の暗号化単語に基づく暗号化単語頻度及び暗号化単語位置識別子を含む。例えば、方法５００は、上述した１つ又は複数のストレージネットワーク（例えば、ストレージネットワーク１０２、１２４、１２６、及び／又は１２８）内でＳＴＲ文書インデクサ３１４を決定又は構築することを含んでもよい。
【００６４】
ステップ５０６において、方法５００は、クライアントデバイスから１つ又は複数の暗号化検索語を受信することを含む。例えば、方法５００は、クライアントデバイス１０６から１つ又は複数の暗号化検索語２２２を受信することを含んでもよい。
【００６５】
ステップ５０８において、方法５００は、１つ又は複数の暗号化検索語並びに暗号化単語頻度及び暗号化単語位置識別子の少なくとも一方を用いて実施される検索に基づいて、１つ又は複数のストレージネットワーク内で１つ又は複数の暗号化文書を識別することを含む。例えば、方法５００は、場合によって１つ又は複数の暗号化検索語２２２を用いて実施されるＳＴＲ検索２２０に基づいて、１つ又は複数のストレージネットワーク２１０内で１つ又は複数の暗号化文書（例えば、一致する文書及び／又は場所２２４）を識別することを含む。１つ又は複数の暗号化文書はまた、ＳＴＲインデックスデータベース３１８内のＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）として上述した暗号化単語頻度、及び／又は、ＳＴＲインデックスデータベース３１８内のＥＱ（ＰｏｓｉｔｉｏｎＩＤ）として上述した暗号化単語位置識別子に基づいて識別されてもよい。
【００６６】
サーバ１０４は、サーバ１０４の１つ又は複数のメモリに、ＳＴＲ文書インデクサ３１４及び／又はＳＴＲインデックスデータベース３１８を記憶してもよい。さらに、サブキー（例えば、暗号化キー１１８）が、クライアントデバイス（例えば、クライアントデバイス１０６）によって生成されてもよい。一例において、ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）として上述した暗号化単語頻度、及び、ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）として上述した暗号化単語位置識別子が、サブキー１１８に基づいて暗号化されてもよい。
【００６７】
図１Ｂに戻って参照すると、１つ又は複数の暗号化検索語は、場合によって、クライアントデバイス１０６によって複数回暗号化されている、二重暗号化検索語を含んでもよい。方法５００は、クライアントデバイス１０６によって生成されるサブキー１１８を用いた二重暗号化検索語の復号に基づいて、単一の暗号化検索語２２２を決定することを含んでもよい。したがって、１つ又は複数の暗号化文書（例えば、一致する文書２２４）は、単一の暗号化検索語２２２を用いて実施される検索２２２にさらに基づいて識別されてもよい。
【００６８】
方法５００は、暗号化検索語２２２の１つ又は複数の置換形態を決定することを含んでもよい。そのため、１つ又は複数の暗号化文書（例えば、一致する文書２２４）は、暗号化検索語２２２の１つ又は複数の置換形態を用いて実施される検索２２２にさらに基づいて識別されてもよい。
【００６９】
特に、方法５００のステップ５０２〜５０８のいずれか１つ又は複数は、ステップ４０２〜４１０のいずれか１つ又は複数と組み合わされてもよい。特に、クライアントデバイス（例えば、クライアントデバイス１０６）が、クライアントデバイスによって生成される暗号化キーに基づいて単語レベル暗号化及び文レベル暗号化を実施してもよく（例えば、ステップ４０２）、それによって、暗号化文書がサーバ（例えば、サーバ１０４）によって記憶される。なお、サーバが、ＳＴＲ文書インデクサ及び／又はＳＴＲインデックスデータベース３１８を構築してもよい（例えば、ステップ５０４）。そのため、サーバが、クライアントデバイスから１つ又は複数の暗号化検索語を受信してもよく（例えば、ステップ５０６）、１つ又は複数の暗号化文書を識別してもよい（例えば、ステップ５０８）。
【００７０】
本明細書に記載されているクライアントシステム１００は、命令を含む持続性コンピュータ可読媒体を含んでもよい。クライアントシステム１００は、命令を実行するように構成されているクライアントデバイス１０６の１つ又は複数のプロセッサを含んでもよい。クライアントシステムは、１つ又は複数の暗号化キー１１０及び／又は１１８に基づいて１つ又は複数の文書の暗号化を決定するための手段を含んでもよい。クライアントシステム１００は、１つ又は複数のストレージネットワーク１０２、１２４、１２６、及び／又は１２８内で文書インデクサ３１４を決定するための手段を含んでもよく、文書インデクサ３１４は、１つ又は複数の暗号化キー１１０及び／又は１１８を用いて暗号化される１つ又は複数の文書３０２の暗号化単語３１０に基づく暗号化単語頻度ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）及び暗号化単語位置識別子ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）を含む。クライアントシステム１００は、暗号化キー１１０及び／又は１１８に基づいてクライアントシステム１００のユーザインターフェース（例えば、クライアントデバイス１０６）によって受信される１つ又は複数の検索語２１８の暗号化２０４を決定するための手段を含んでもよい。クライアントシステム１００は、１つ又は複数の暗号化検索語２２４並びに暗号化単語頻度ＥＱ（ＷｏｒｄＦｒｅｑｕｅｎｃｙ）及び暗号化単語位置識別子ＥＱ（ＰｏｓｉｔｉｏｎＩＤ）の少なくとも一方を用いて実施される検索に基づいて、１つ又は複数のストレージネットワーク１０２、１２４、１２６、及び／又は１２８内で１つ又は複数の暗号化文書２２４を識別するための手段を含んでもよい。
【符号の説明】
【００７１】
１００  システム
１０２  ストレージネットワーク
１０４  サーバ
１０６  クライアントデバイス
１０８  暗号化キーマネージャ
１１０  暗号化キー
１１２  文書
１１４  暗号化文書
１１６  文書インデクサ
１１８  暗号化キー
１２０  文書
１２２  暗号化文書
１２４  ストレージネットワーク
１２６  ストレージネットワーク
１２８  ストレージネットワーク
２００  システム
２０２  文書
２０４  ＳＴＲ暗号化
２０６  暗号化単語及び／又は文
２０８  ＳＴＲ文書ストレージコネクタ
２１０  ストレージネットワーク
２１２  暗号化単語及び転置インデックス
２１４  ＳＴＲ文書インデクサ
２１６  ＳＴＲインデックスデータベース
２１８  検索語
２２０  ＳＴＲ検索暗号化
２２２  暗号化検索語
２２４  一致する文書及び／又は場所
２２６  ＳＴＲ復号
３０２  文書
３０４  ＳＴＲ暗号化
３０６  文辞書
３０８  文書辞書
３１０  暗号化単語
３１１  転置インデックス
３１２  単語頻度計算器
３１４  文書インデクサ
３１６  単語辞書
３１８  ＳＴＲインデックスデータベース
【図１Ａ】
2016197396.tif 000003
【図１Ｂ】
2016197396.tif 000004
【図２】
2016197396.tif 000005
【図３】
2016197396.tif 000006
【図４】
2016197396.tif 000007
【図５】
2016197396.tif 000008
【外国語明細書】
2016197396000001.pdf