与えられた2つの素数 $p=7$ と $q=19$ を用いて、公開鍵 $e$ と秘密鍵 $d$ を計算する問題です。

数論RSA暗号素数オイラーのφ関数合同式拡張ユークリッドの互除法
2025/7/11

1. 問題の内容

与えられた2つの素数 p=7p=7q=19q=19 を用いて、公開鍵 ee と秘密鍵 dd を計算する問題です。

2. 解き方の手順

RSA暗号の鍵生成手順に従います。
ステップ1: nn を計算します。
nn は2つの素数 ppqq の積です。
n=p×qn = p \times q
n=7×19=133n = 7 \times 19 = 133
ステップ2: ϕ(n)\phi(n) (オイラーのϕ\phi関数) を計算します。
ϕ(n)=(p1)×(q1)\phi(n) = (p-1) \times (q-1)
ϕ(n)=(71)×(191)=6×18=108\phi(n) = (7-1) \times (19-1) = 6 \times 18 = 108
ステップ3: 公開鍵 ee を選択します。
ee1<e<ϕ(n)1 < e < \phi(n) を満たし、ϕ(n)\phi(n) と互いに素である必要があります。
つまり、eeϕ(n)\phi(n) の最大公約数が1である必要があります。
ee は、例えば 55 を選択できます(55108108 は互いに素)。
77は108の約数ではないため、e=7e = 7としても構いません.
解答は2桁で入力する必要があるため、e=7e = 7とすると条件を満たさないため、他の数値を探します。
e=13e=13の場合、1313108108は互いに素です。
ステップ4: 秘密鍵 dd を計算します。
dde×d1(modϕ(n))e \times d \equiv 1 \pmod{\phi(n)} を満たす必要があります。
つまり、e×de \times dϕ(n)\phi(n) で割った余りが1になるような dd を求めます。
13×d1(mod108)13 \times d \equiv 1 \pmod{108}
13d=108k+113d = 108k + 1 となる整数 kk を探します。
d=(108k+1)/13d = (108k + 1) / 13
k=5k=5とすると d=(108×5+1)/13=(540+1)/13=541/13=41.615...d = (108 \times 5 + 1)/13 = (540+1)/13 = 541/13 = 41.615...
k=8k=8とすると d=(108×8+1)/13=(864+1)/13=865/13=66.538...d = (108 \times 8 + 1)/13 = (864+1)/13 = 865/13 = 66.538...
k=10k=10とすると d=(108×10+1)/13=(1080+1)/13=1081/13=83.153...d = (108 \times 10 + 1)/13 = (1080+1)/13 = 1081/13 = 83.153...
k=13k=13とすると d=(108×13+1)/13=(1404+1)/13=1405/13=108.076...d = (108 \times 13 + 1)/13 = (1404+1)/13 = 1405/13 = 108.076...
k=2k=2とすると d=(108×2+1)/13=(216+1)/13=217/13=16.69...d = (108 \times 2 + 1)/13 = (216+1)/13 = 217/13 = 16.69...
k=16k=16とすると d=(108×16+1)/13=(1728+1)/13=1729/13=133d = (108 \times 16 + 1)/13 = (1728+1)/13 = 1729/13 = 133
13×5(mod108)=65(mod108)=65113 \times 5 \pmod{108} = 65 \pmod{108} = 65 \neq 1
拡張ユークリッドの互除法を使うと、
108=13×8+4108 = 13 \times 8 + 4
13=4×3+113 = 4 \times 3 + 1
1=134×3=13(10813×8)×3=13108×3+13×24=13×25108×31 = 13 - 4 \times 3 = 13 - (108 - 13 \times 8) \times 3 = 13 - 108 \times 3 + 13 \times 24 = 13 \times 25 - 108 \times 3
よって、13×251(mod108)13 \times 25 \equiv 1 \pmod{108}
したがって、d=25d = 25
e=13,d=25,n=133,ϕ(n)=108e = 13, d = 25, n = 133, \phi(n) = 108

3. 最終的な答え

公開鍵 e=13e = 13
秘密鍵 d=25d = 25

「数論」の関連問題

整数 $n$ に対して、「$n^2$ が 7 の倍数ならば、$n$ は 7 の倍数である」という命題が真であるという事実を利用して、$\sqrt{7}$ が無理数であることを証明する。

無理数背理法整数の性質平方根
2025/7/15

命題「$n$ は整数とする。$n^2$ が3の倍数ならば、$n$ は3の倍数である」が真であることを利用して、$\sqrt{3}$ が無理数であることを証明する。

無理数背理法整数の性質平方根
2025/7/15

数列が群に分けられており、各群の項数は 2, 4, 6,... と増えている。このとき、157 が第何群の何番目にあるかを求める問題。

数列等差数列項数
2025/7/15

$\sqrt{2}$が無理数であることを利用して、$3\sqrt{2}$が無理数であることを証明する問題です。

無理数背理法有理数平方根
2025/7/15

整数 $n$ について、「$n^2$ が奇数ならば、$n$ は奇数である」ことを証明する問題です。対偶を利用した証明の穴埋め問題となっています。

整数証明対偶偶数奇数命題
2025/7/15

自然数 $n$ に対して、$2n^3 - 3n^2 + n$ が6の倍数であることを、(1) 数学的帰納法, (2) 連続する3整数の積が6の倍数であることの利用、の2通りの方法で証明する。

整数の性質倍数数学的帰納法因数分解合同式
2025/7/15

(1) 与えられた命題の対偶が真であることを示し、元の命題が真であることを示す問題。 (2) $\sqrt{15}$ が無理数であることを利用して、$\sqrt{3} + \sqrt{5}$ が無理数...

命題対偶背理法無理数有理数連立方程式代数
2025/7/15

ヘパンの判定法を利用して、$F_2$ が素数であることを確かめる問題です。具体的には、以下の合同式を満たす①、②、③に当てはまる0から4の範囲の数字を求める問題です。 $5^2 \equiv ① \p...

合同式剰余べき乗フェルマーの小定理 (に関連)
2025/7/15

問題は、ヘパンの判定法を利用してF2が素数であることを確かめるために、与えられた合同式を満たす数字を求めることです。具体的には、以下の合同式における①、②、③に当てはまる0から4の範囲の数字を求めます...

合同式剰余べき乗
2025/7/15

問題は、ヘパンの判定法を利用して$F_2$が素数であることを確かめるというものです。具体的には、$5^2$, $5^4$, $5^8$ をそれぞれ4で割った余りを0から4の範囲で求めるという問題です。

合同式整数の性質フェルマーの小定理剰余
2025/7/15