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$ を求めると  である。