いくつかのドキュメントをクラウドに保存する必要があり、検索用にドキュメント、ドキュメントメタデータ、単語/フレーズを保存する必要があります。
私の計画では、ドキュメント全体を暗号化するために対称暗号を使用する予定ですが、各単語をハッシュする正しい方法がわかりません。安全なものが欲しいのですが、不必要に各単語の文字数を増やしたくありません。
ドキュメントに対して対称暗号化を行うのに最適な実装はどれですか。また、単語やフレーズを必要以上に大きくすることなくハッシュするための最良の方法は何ですか。
いくつかのドキュメントをクラウドに保存する必要があり、検索用にドキュメント、ドキュメントメタデータ、単語/フレーズを保存する必要があります。
私の計画では、ドキュメント全体を暗号化するために対称暗号を使用する予定ですが、各単語をハッシュする正しい方法がわかりません。安全なものが欲しいのですが、不必要に各単語の文字数を増やしたくありません。
ドキュメントに対して対称暗号化を行うのに最適な実装はどれですか。また、単語やフレーズを必要以上に大きくすることなくハッシュするための最良の方法は何ですか。
まず、別のタグを提案します。暗号的に安全な方法で検索をサーバーにオフロードすることに本当に関心があるようです(サーバーがプレーンテキストにアクセスできないようにし、クライアントがインデックス全体を転送する必要がないようにします)。
問題:
私はあなたがあなた自身をデザインしていると仮定していますが、おそらく私が以下にあるよりも賢いいくつかの先行技術、研究などがあります:
まず、単語をハッシュし、ハッシュする前にプレーンテキストとシークレット(インデックスサーバーと共有されていない)を組み合わせ、インデックス内で一意でない可能性が高いポイントまでハッシュを切り捨てることをお勧めします。これはハッシュ効率を犠牲にしますが、攻撃者がハッシュをプレーンテキストの同等物として使用したり、実験的に秘密を決定したりするのを防ぐのに役立ちます
2番目と3番目については、インデックス付けされたデータ(カウント、ドキュメント+位置など)を暗号化し、クライアントで復号化する必要があります。これにより、レイテンシが発生する可能性があります。
4つ目は、関連のないリクエストのグループ内に実際のリクエストを隠すことを検討する必要がありますが、統計分析に対して脆弱でないことを確認するために多くの計算が必要です。
5つ目は、Web調査を行います。私はそこに何かがあると確信しています、そしてこれはかなり特定の(そしてあまり一般的ではない)ニーズなので、あなたは私が持っているよりももっと考えを入れてくれる人が欲しいでしょう。
要件は相互に排他的です。この種のメタデータは、ドキュメントコンテンツに関する膨大な量の情報を漏えいさせ、安全とは言えないほどになります。
さらに、個々の単語を暗号化することは無駄です。暗号化を破る難しさは、通常、鍵を破るのと同じくらい難しいと言われていますが、これは、平文の情報コンテンツが鍵の情報コンテンツよりも大きいことを前提としています。一言で言えば、それは確かに真実ではありません。