RSA 暗号が強擬素数を用いたことにより壊れない必要十分条件
Published: 2021/12/30
まず、 RSA 暗号の定義については以前の記事を参照。
RSA 暗号は、その秘密鍵である素数 , の生成にあたり、ミラー–ラビン素数判定法を用いるのが一般的ではあるが、このアルゴリズムは確率的にしか合成数であることを検出できず、ごく小さな確率ではあるが、合成数がこのテストを通過してしまう場合がある。 このような合成数のことを、一般的に強擬素数と呼ぶ。
今、RSA 暗号で復号が成功することの証明は、秘密鍵 , が素数であることに依存していた。 ないし が、その実、強擬素数であった場合に、 RSA 暗号がどのように振る舞うのか、特に、メッセージを問題なく復号化できるかどうかは、自明ではない。 なので、それについて調べた結果を記す。
は平方因子を持たない整数である
必要条件1:RSA による暗号化と復号化で を満たす全ての が正しく復号できるためには、 は平方因子を持たない整数である必要がある。
証明
今、仮に が平方因子を持っていたとする。 の素因数分解して、 を素数として、 と表せる。 が平方因子を持っているとき、この中の添字 が存在して、 。
剰余環に対して一般化された中国剰余の定理によれば、 であり、 であった時、
であり、 であった場合と区別がつかなくなってしまい、復号が正しく動かないことが分かる。 (雑に言うと、 は零因子を持っているため、べき乗を行う操作は全単射ではない)
のすべての素因数 に対して、
必要条件2:が平方因子を持たない整数であったとする。 このとき素数 を用いて、 と記述できる。 すべての が を満たすことは、各 に注目すれば、そのすべてで が成立することと等しい。 特に、各 には原始根が存在し、その原始根に対しては、繰り返しのかけ算で巡回するので、それに対しても 乗した時に元の数と で等しくなるためには、 であることが必要十分であると分かる。
必要十分条件のまとめ
RSA 暗号が全ての可能なメッセージ に対して壊れないための必要十分条件は、
- が平方因子を持たない整数であること、かつ
- のすべての素因数 に対して、
ないし は、素数であるかカーマイケル数であって、互いに素であれば、 RSA によってメッセージは壊れない
定理:https://en.wikipedia.org/wiki/Carmichael_number
カーマイケル数には、以下の性質がある。
- カーマイケル数は平方因子を持たない
- カーマイケル数 は、そのすべての素因子 に対して、
よって、素数ないしカーマイケル数 , が互いに素であれば、 は平方因子を持たない。
また、 の定義により、ある整数 が存在して、 である。 今、 は平方因子を持たないので、その素因数 を用いて と記述したとき、これがすべて を割り切れば良い。 と が互いに素であると仮定したので、各 に対して もしくは が成り立つ。 であったとしても証明の対称性を失わないので、これを仮定する。 この時、 が素数であるならば、 なので、 。 そうでない場合、前提により、 はカーマイケル数なので、上記の2つめのカーマイケル数の性質により、 。 であるため、 。 よって が成立する。
以上より、 , が互いに素であり、かつそれぞれが素数もしくはカーマイケル数である時、 RSA 暗号による暗号化と復号化の処理によって元のメッセージ が復元できることが示された。
メモ
, は、冒頭に述べた通り、実用上ありうるとしたら強擬素数、ではあるのだが、強擬素数であれば RSA が壊れないのかどうかは、ちょっとまだ分かっていない。
Tags: rsa数学
関連記事
RSA 暗号と中国剰余の定理による高速化についてのまとめ
2021/12/22
ボルツァーノワイエルシュトラスとハイネボレルの同値性
2022/7/6
ラグランジュ未定乗数法についてのメモ
2022/7/3
メモ: 無限等比級数と同じ点を通る指数関数的減衰の積分値
2022/2/24
確率の定義についてのメモ
2022/1/24