私の学校の作品の 1 つで、いくつかのフィールドを暗号化するために決定論的アルゴリズム (http://en.wikipedia.org/wiki/Deterministic_encryption) を使用する必要があります。
この特定のケースでは、テーブルをブール値で暗号化する必要があります。これは問題ありませんが、決定論的アルゴリズムを使用してもほとんど役に立ちません。
どうしてこんなことに?(あなたは尋ねるかもしれません)
たとえば、値「true」を暗号化すると、常に「AB1」の暗号文が取得され、値 false を暗号化すると、常に「SQ2」の暗号文が取得されます。したがって、値「true」と「false」で満たされたテーブルを持つ代わりに、値「AB1」と「SQ2」で満たされたテーブルがあります。攻撃者は、テーブルにブール値が格納されていることをすぐに理解し、AB1=true および SQ2=false であると理解するのにそれほど時間はかかりません。
これは私が宿題で防ぎたいことです。この問題を回避するために、特定のプロパティを持つ数値を使用してみました。たとえば、「true」の値は素数に置き換えられ、「false」の値は非素数に置き換えられます。したがって、私のテーブルは多くの異なる素数と非素数でいっぱいになります。
計算できる素数の数が「限られている」 (大きな素数を計算するには非常に長い時間がかかる) という小さな問題がなければ、これは許容できる解決策です。10000000 の間隔で、素数は 664579 のみです (6.64579% のみ)。
そこで、素数の代わりに奇数を使用することを検討しましたが、奇数の品質についてはわかりません。攻撃者は暗号から「奇数」という性質を取り出して攻撃できると思います。
奇妙さについての私の仮定は正しいですか?他の解決策はありますか?何かアイデアはありますか?
事前にペドロに感謝します。