RSA暗号(受信者)
試験のときはこの枠内の情報は与えられる。
Aを送信者、Bを受信者とするときのRSA暗号方式を以下に示す。
Step 1. Bは自身の公開鍵と秘密鍵を作る。
- 素数 $p,q$ を用意し、$n=pq$ とする。
- 自然数 $e$ を $(p-1)(q-1)$ と互いに素な数とする。
- 自然数 $d$ を $ed \equiv 1 \pmod{(p-1)(q-1)}$ を満たすようにとる。
Step 2. Bは公開鍵($n$ と $e$)をAに送る。
Step 3. Aは受け取った公開鍵を使って文章(平文)を暗号化。
- 送りたいメッセージを $x$ とする(ただし $x$ は $n$ 未満の自然数とする)。
- $x^e$ を $n$ で割った余りを $y$ とする、つまり $y \equiv x^e \pmod{n}$ とする。
Step 4. Aは暗号文 $y$ をBに送る。
Step 5. Bは自身の秘密鍵を使って復号化、ものの文章(平文)を得る。
- $y^d$ を $n$ で割った余りを求める。これが平文 $x$ である。
[ 例題 ]
あなたは受信者である。
あなたはふたつの素数として $p=3, q=5$ を選び $(p-1)(q-1)=8$ と互いに素な数として $e=3$ を選んだ。
次の問に答えよ。
- あなたの秘密鍵 $d$ を求めよ。ただし $d$ は秘密鍵として使える数のうち最小の自然数とする。
- 送信者から暗号文 $y=3$ が送られてきた。送信者の暗号文 $y$ を復号し、送信者の平文 $x$ を求めよ。
[ 解法 ]
- 受信者が $p,q,e$ から秘密鍵 $d$ を作るのは Step 1 である。
$d$ は
\[ ed \equiv 1 \pmod{(p-1)(q-1)} \]
を満たすように取るので合同方程式 $3d \equiv 1 \pmod{8}$ を解けばよい。
これを満たす最小の自然数 $d$ は $d = 3$ である。
- 受信者が暗号文を復号化するのは Step 5 である。
暗号文の復号は「$y^d$ を $n$ でわった余りを求める」ことを実行すればよい。
$3^3 = 27$ を $n = 15$ でわった余りは $12$ であるから、送信者の平文は $x = 12$ である。
[問題]
あなたは受信者である。
あなたはふたつの素数として $p=$ , $q=$ を選び
$(p-1)(q-1)=$ と互いに素な数として$e=$ を選んだ。
このとき、あなたの秘密鍵 $d$ は である。
ただし $d$ は秘密鍵として使える数のうち最小の自然数とする。
いま、送信者から暗号文 $y=$ が送られてきた。
暗号文 $y$ を復号し、送信者の平文 $x$ を求めると である。