0

私は公開鍵暗号化の理論的な側面 (Katz/Lindell の本で説明されていることは何でも) のほとんどに精通していますが、実際のプログラミングの側面はありません。

私の質問は、パイリエとその実装に直接固有のものです。

以下の形式を持つさまざまな無線構成を表す必要があります。

radio 1=[ch_1=1, ch_2=0, ch_3=0...,ch_32=1] 32 チャネルからなる 1 つのラジオの構成を構成します。各チャネルはオンまたはオフ (1 または 0) にすることができます

したがって、このような各構成には 32 ビットのデータが必要です。このような 32 個の無線を「ブロック」で表現したい場合、1024 ビットのデータで構成されます。

問題は、データの 1 ブロックで無線構成の量をほぼ 10 倍多く表す必要があることです。つまり、302 近くの無線構成を表す必要があり、それぞれが 1 つの「ブロック」内の 32 ビットのデータで構成され、ブロックあたり合計約 9664 ビットのデータになります。

Paillier を実際に使用した経験のある同僚から、1024 ビットを超えるビットを Paillier 暗号文にパックすることはできないと言われました。この声明が正しいかどうか (1024 ビットを超えるビットを Paillier 暗号文にパックすることは不可能である) かどうかを知りたいのですが、そうである場合、その背後にある理由は何ですか? おそらく、暗号文にさらに詰め込むと、計算の観点から使用するのが非現実的になるでしょうか?

個人情報検索スキームに Paillier を使用する予定です。

実装はおそらく C++ で行われます

ありがとうございました。

4

2 に答える 2

0

他のいくつかの暗号システムと同様に、Paillier 鍵の生成は、2 つの大きな素数p,qを選択して を設定することから始まりますn=p*q。メッセージはZ/nZ(これは n を法とする整数を意味する) にある必要があるため、1024 ビットの実装 (つまり、n1024 ビット) を選択した場合、1 ステップで 1024 ビットを超えるメッセージをエンコードすることはできません。

ただし、大きなメッセージを多くの小さなブロックに分割し、すべてのブロックを個別に暗号化することを妨げるものは何もありません. あなたの場合、最初の 32 個の無線の状態が最初のブロックを形成し、それを暗号化して送信します。ラジオ 33 ~ 64 などの状態について繰り返します。

于 2013-09-23T14:31:33.077 に答える