これは、比較的弱いと思われる RSA アルゴリズムを使用するしかなかった私の以前の投稿に関連しています。35 ビットの数値 (0 から 34359738367 まで) を 36 ビットのモジュロ (34359738368 から 68719476735 までの間) でエンコードしたいとします。
http://en.wikipedia.org/wiki/RSAを参照すると、私の n は 34359738368 から 68719476735 までのランダムな totient (p-1 * q-1 の形式) であることがわかります。ランダムな d と e を選びます。数値をエンコードして UI に表示します。
議論の目的のために、ユーザーが最大 1,000 のそのような出力を見ることができると仮定しましょう。彼は、Polla のアルゴリズムなどを使用して、私の d、e、または n をクラックし、それによって新しい数の予測を開始できますか? もしそうなら、それはどれほど難しいでしょうか?(1000セットの入力/出力を知っているだけで)
例として (入力/出力形式のサンプルとして 6 つの出力を考えてください)、
- 10001621865,31116156015
- 10001621866,33031668326
- 10001621867,37351399313
- 10001621868,06071714212
- 10001621869,01188523761
- 10001621870,18341011998
誰かが私のn、d、eが何であるか教えてもらえますか? (34359738368 ~ 68719476735 の間の N)
私は単にそれがどれだけクラック可能かを知りたいので、どのくらいの時間、どれくらいの速さで、どれだけの出力を表示する必要があるか、どのアルゴリズムを使用できるかなどについての情報を教えていただければ幸いです。
PS: ユーザーには、標準の RSA アルゴリズムのように「e」は表示されません。彼は入出力セットしか見ることができません。
詳細が追加 されました db からユーザーに連続したユーザー ID を提示しようとしています。シーケンシャルであるため、ユーザーがいくつかの登録を行って別のユーザーの ID を推測することは望ましくありません。これを避けるには、<= 12 桁の数字にスクランブルする必要があります。これには、この質問で説明されている多くの制約がありました。
また、n、d、および e の値はユーザーにはわかりません。ユーザーが見ることができる最大値は、いくつかの入力出力サンプルです (繰り返し登録することにより)
「Jacobi」アルゴリズムを使用して数秒でこれをクラックできるため、Accipitridae によって投稿された回答を受け入れます。n、e、またはpを知らなくても。