対称暗号文の検索

ブルームフィルター

ここに画像の説明を挿入

S = {x 1、x 2、...、x n }を設定します

配列BFの初期値は0で、k個のハッシュ関数h 1、h 1、h 2、...、h kを選択します。これらのハッシュ関数は、コレクションの各要素について、コレクションの要素を配列の特定の位置にマッピングします要素x iについて、h 1(x i)、h 2(x i)、...、h k(x i)を計算し、配列内の対応する位置を1に設定します。

要素yがセットSに属しているかどうかを判断するとき、配列内の対応するk要素の位置が1でない場合、最初にk h 1(y)、h 2(y)、...、h k(y)を計算します、それからyが集合Sに属してはならないことを確認できます。ただし、配列のk hask値がすべて1の場合、yがセットSに含まれている必要があるとは言えません。明らかに、BF配列に対応するyの値を1に割り当てるx iのハッシュ値など、他の要素がある可能性があります

ブルームフィルターの助けを借りて、それが提案されています:ドキュメントキーワードインデックスに基づく暗号文キーワード検索スキーム

  1. セットアップアルゴリズム。データ所有者は、r個の秘密鍵k 1、k 2、...、k rと疑似ランダム関数fを生成します。

  2. BuildIndexアルゴリズム。t個のキーワードw 1、w 2、...、w tを含むドキュメントDの場合、データ所有者はまず、そのためのビット配列BF(D)を生成し、BF(D)のすべてのビットを0に設定します。

    各キーワードW用I

    1. 入力としてw iを使用してr値計算:x 1 = f(w i、k 1)、x2 = f(w i、k 2)、…、x r = f(w i、k r
    2. 入力としてドキュメントIDを使用してr値を計算します:(X-アウトカウントする1 私が引き継ぐを)y 1 = f(id、x 1)、y2 = f(id、x 2)、…、y r = f(id、x r)。
    3. BF(D)のr値y 1、y 2、...、y rに対応する位置を1に設定します。そしてランダムにBFを埋める(D)なぜこのランダムな充填が理解されないのですか?
  3. Gentrapdoorアルゴリズムは、2.1のr x i値をサーバーに送信します。

  4. 検索アルゴリズム:トラップドアに従って、サーバーはドキュメントDのr y iを計算します2.3のr y iは、BFのr値の対応する位置(D)がすべて1の場合。もしそうなら、それはドキュメントDがwを含み、それをユーザーに返すことを意味します。

ドキュメントキーワードインデックスの要約:疑似乱数を数回計算するだけで十分です。速度はフルテキストスキャンに基づく方法よりもはるかに高速ですが、ブルームフィルターの欠陥のため(つまり、BF(D)は上記のように他の値によって変更されます)の対応する値は1に割り当てられます。クエリキーワードを含まないドキュメントを返す可能性はある程度あります。

ブルームフィルターに基づくセキュリティを証明するには、最初にキーワードセマンティックセキュリティIND-CKAおよびIND2-CKAを正式に定義し、スキームがこれらのセキュリティを満たすことを証明します。主にIND2-CKA、IND2-CKAの意味を紹介します。2つのデータファイルV 0とV 1の場合、暗号テキストインデックスだけでは2つを区別できません。

マスク技術に基づくスキーム:

定理3-1:

関数fが疑似ランダム関数の場合、ブルームフィルターベースのスキームはIND2-CKAセキュリティを満たします。

マスク技術を通じて、人々は偽陽性率0の暗号文キーワード検索スキームを実現しました。スキームの中核となるアイデアは、キーワードの辞書を事前に作成し、ユーザーがローカルに保存することです。辞書には2 dのペア(i、w i)が含まれ、w i {0 {0,1}はキーワードを表し、i∈[1,2 d ]はw iに対応する一意の値です。

具体的な概要:

  1. セットアップアルゴリズム。データ所有者は、キーs、r、疑似ランダム置換関数P、および疑似ランダム関数F、Gを生成します。
    ここに画像の説明を挿入ここに画像の説明を挿入
    上記のスキームでは、各キーワードはビット文字列の特定のビットに対応し、競合は発生しないため、検索結果には含まれません。冗長データ。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
元の記事を22件公開しました 賞賛されました0 訪問数787

おすすめ

転載: blog.csdn.net/sjxgghg/article/details/105394753