まず、別のタグを提案します。暗号的に安全な方法で検索をサーバーにオフロードすることに本当に関心があるようです(サーバーがプレーンテキストにアクセスできないようにし、クライアントがインデックス全体を転送する必要がないようにします)。
問題:
- 攻撃者がインデックスに含まれている(および含まれていない)単語を特定できると、問題になる可能性があります。それが要件の一部であるかどうかを述べる必要があります。
- 攻撃者がインデックス内のどのアイテムがより頻繁に発生するかを把握できることは、あなたにとって問題になる可能性があります。それが要件の一部であるかどうかを述べる必要があります。
- 攻撃者が単語をドキュメントに関連付けることができると、問題になる可能性があります。それが要件の一部であるかどうかを述べる必要があります。
- 攻撃者はサーバーを完全に破壊し、クエリ/取得を監視できる可能性があります。この状況でもセキュリティのニーズを述べる必要があります。
- おそらく私が考えていなかった他の人。
私はあなたがあなた自身をデザインしていると仮定していますが、おそらく私が以下にあるよりも賢いいくつかの先行技術、研究などがあります:
まず、単語をハッシュし、ハッシュする前にプレーンテキストとシークレット(インデックスサーバーと共有されていない)を組み合わせ、インデックス内で一意でない可能性が高いポイントまでハッシュを切り捨てることをお勧めします。これはハッシュ効率を犠牲にしますが、攻撃者がハッシュをプレーンテキストの同等物として使用したり、実験的に秘密を決定したりするのを防ぐのに役立ちます
2番目と3番目については、インデックス付けされたデータ(カウント、ドキュメント+位置など)を暗号化し、クライアントで復号化する必要があります。これにより、レイテンシが発生する可能性があります。
4つ目は、関連のないリクエストのグループ内に実際のリクエストを隠すことを検討する必要がありますが、統計分析に対して脆弱でないことを確認するために多くの計算が必要です。
5つ目は、Web調査を行います。私はそこに何かがあると確信しています、そしてこれはかなり特定の(そしてあまり一般的ではない)ニーズなので、あなたは私が持っているよりももっと考えを入れてくれる人が欲しいでしょう。