182 : RSA暗号

RSA暗号は以下のアルゴリズムに基づいている:

  • 鍵生成

    1. 二つの異なる素数ppqqを生成する.

    2. n=pqn=pqとし,φ=(p1)(q1)φ=(p-1)(q-1)とする.

    3. 1<e<φ1<e<φの範囲でgcd(e,φ)=1\gcd(e,φ)=1となる整数eeを決定する.

  • 暗号化

    1. 平文を[0,n1][0,n-1]中の整数mmとする. 平文は以下の方法で[0,n1][0,n-1]中の整数に暗号化される.

    2. c=memodnc=me \mod nとし,ccを暗号文とする.

  • 復号

    1. 暗号文をccとし以下の操作を行う.

    2. ed=1modφed=1 \mod φとなるddを計算する.m=cdmodnm=cd \mod nが元の平文となる.

さてあるeemmについてmemodn=mme \mod n=mとなることがある. 以下,memodn=mme \mod n=mとなるmm公然の平文と呼ぶことにする.

公開鍵の一部eeを選ぶときには, 公然の平文が多くならないという点が重要である. 例えばp=19,q=37p = 19, q = 37とする. このときn=19×37=703n = 19 \times 37 = 703でありφ=18×36=648φ = 18 \times 36 = 648である. もしe=181e = 181とすると,gcd(181,648)=1\gcd(181, 648) = 1であるが, 全ての平文m  (0mn1)m \; (0≤m≤n-1)が公然の平文となってしまう. eeについてどのような選び方をしても, 必ずいくつかは公然の平文が存在する. 従って, 公然の平文の数を最小化するようにeeを選ぶのは重要である.

さて,p=1009,q=3643p = 1009, q = 3643とする. このとき, 公然の平文の個数が最小となる全てのeeの総和を求めよ (ただし1<e<φ(1009,3643)1<e<φ(1009,3643)かつgcd(e,φ)=1\gcd(e,φ)=1).

最終更新