3

整数を別の整数にマップする良い可逆 1-1 関数はありますか? たとえば、範囲が 0 ~ 5 の場合、マップするものを見つけたいとします。

0->3
1->2
2->4
3->5
4->1
5->0

また、マッピングはランダムに見えるはずです。

4

4 に答える 4

4

配列を昇順で埋めてシャッフルできます。これは、メモリに関して最も効率的ではないにしても、通常はかなりうまく機能します。

乗算などの閉じた離散変換を利用することもできます。P と K の 2 つの数値がある場合、(私が思うに) P と K が互いに素である限り、P^n mod K は、1 からK. 離散数学のこの特定の表現は、暗号化の前提の 1 つです。シーケンスから指数への逆行は、離散対数問題として知られており、従来の RSA が安全である理由です。

あなたは可逆アルゴリズムを求めました。指数を追跡していれば、P^n mod K から P^(n-1) mod K に問題なく進むことができます。暗号化を難しくするためにアルゴリズムの特定のパラメーターが意図的に破棄されるため、暗号化では機能しない累乗から指数に戻るためのいくつかのショートカットを使用できます。

とはいえ、これに取り組んでいる間に離散ログの問題を解決して RSA を壊してしまった場合は、必ず私に知らせてください。

于 2012-07-18T04:24:50.177 に答える
0

(リストをシャッフルする場合のように)すべてをメモリに保持する必要なしに、ブロック暗号を使用してそのような順列を生成できます。私はそれについて少し前にブログ投稿を書きました、それはあなたがここで見つけることができます。

于 2012-07-20T03:31:05.490 に答える
0

置換多項式はどうですか?この記事のセクション 3 を参照してください

の形式の関数を構築することを提案し(Ax^2 + Bx) mod Mます。これらの関数の小さなサブセットのみが可逆/順列を生成しますが、実際の逆が存在する場合、それを見つけるのは難しくありません。

于 2012-07-18T08:21:51.877 に答える
0

これに似たものは、範囲アルゴリズムでの非反復ランダムシークで説明されました。http://www.mcdowella.demon.co.uk/PermutationFromHash.htmlにいくつかのアイデアを書き留めるのに十分興味をそそられました

于 2012-07-18T18:12:45.840 に答える