---
# System prepended metadata

title: RSA暗号がうまくいくわけ

---

# RSA暗号がうまくいくわけ
この資料は [RSA暗号の仕組みと安全性](https://mathtrain.jp/rsaango)を参考にしています．

- $(p, q)$：2つの異なる素数．
- $N = pq$, $M=(p-1)(q-1).$
- $r$: $M$と互いに素な自然数($M$と$r$の最大公約数が1)．
- $s$: $rs \equiv 1 \mod M$ ($rs$を$M$で割った余りが1)．
- $x$: 送りたいメッセージ．

とする．このとき，RSA暗号がうまくいくためには，
1. $r$ に対して, $s$が常にただ一つ決まる．
2. $x^{rs} \equiv x \mod N$となる(「$x^{rs}$を$N$で割った余り」の世界では，$x^{rs}$と$x$は等しい)

の2つが成立すればいい． 

ここでは，2つめの命題を証明する．まず，
$$
a \equiv b \mod p \text{ かつ }
a \equiv b \mod q \Rightarrow a \equiv b \mod pq
$$
を示しておこう．
証明：合同の差の性質から，
$$
a - b \equiv 0 \mod p \text{ かつ } a-b \equiv 0\mod q
$$
より， $a-b$は $p$でも$q$でも割り切れるから，$pq$で割り切れる．従って，$a-b \equiv 0 \mod pq$が成り立つ．(証明終わり)

以上のことから，
$$
x^{rs} \equiv x \mod p
$$
となることが証明できればよい(対称性から$x^{rs} \equiv x \mod q$は自明)．

$x$が$p$の倍数の場合は$x^{rs} \equiv x \equiv 0$なので自明．

$x$が$p$の倍数でない場合，
$rs = M+1 = (p-1)(q-1)+1$だから，
$$
x^{rs} = x^{M+1} = x \cdot x^{(p-1)(q-1)}.
$$

[フェルマーの小定理](https://mathtrain.jp/fermat_petit)：
> $p$が素数で，$a$が任意の自然数のとき
> $$
> a^{p} \equiv a \mod p
> $$
> $p$が素数で，$a$が$p$と互いに素な自然数のとき，
> $$
> a^{p-1} \equiv 1 \mod p
> $$

より， 
$$
x^{rs} = x \cdot x^{(p-1)(q-1)} \equiv x \mod p.
$$

従って, RSA暗号では，任意の$x$について$x^{rs} \equiv x \mod N$．