技能一覧 › 大学数学 暗号理論

RSA 暗号の鍵生成・暗号化・復号

素数 から と を作り、 を満たす復号指数 を求めて、, で暗号化・復号できる

前提

この技能までの道筋(28 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 分数のたし算・ひき算 (算数 計算と数のきまり)
  2. 小数の四則計算 (算数 計算と数のきまり)
  3. 正負の数の加法・減法 (中学数学 数と式)
  4. 分数のかけ算・わり算 (算数 計算と数のきまり)
  5. 四則の混じった計算の順序 (算数 計算と数のきまり)
  6. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  7. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  8. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  9. 乗法公式による展開 (中学数学 数と式)
  10. 因数分解 (中学数学 数と式)
  11. 約数の見つけ方 (算数 整数の性質)
  12. 文字式で表した整数の性質 (中学数学 数と式)
  13. 余りによる整数の分類 (数学A 整数の性質)
  14. 樹形図で数え上げる (算数 場合の数)
  15. 積の法則と和の法則 (算数 場合の数)
  16. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  17. 合同式 (数学A 整数の性質)
  18. n 進法 (数学A 整数の性質)
  19. 繰り返し二乗法によるべき剰余 (大学数学 暗号理論)
  20. 最大公約数と最小公倍数 (算数 整数の性質)
  21. 素因数分解と約数の個数 (算数 整数の性質)
  22. 最大公約数と最小公倍数 (数学A 整数の性質)
  23. ユークリッドの互除法 (数学A 整数の性質)
  24. 1 次不定方程式の整数解 (数学A 整数の性質)
  25. 法 での逆元(拡張ユークリッドの互除法) (大学数学 暗号理論)
  26. 群の位数と元の位数 (大学数学 代数学)
  27. 有限アーベル群の構造と部分群の個数 (大学数学 代数学)
  28. 剰余類環の単元群とオイラー関数 (大学数学 代数学)

説明

RSA 暗号は、だれでも使える「公開鍵」で暗号化し、持ち主だけが知る「秘密鍵」でしか復号できないしくみの代表例です。異なる 2 つの素数 から と を作り、暗号化の指数 に対して となる復号指数 を求めます。暗号化は 、復号は というべき剰余の計算だけで行えます。鍵の作成には拡張ユークリッドの互除法を、暗号化と復号には繰り返し二乗法を使います。

なぜそうしてよいのか

を素数とし、 とおきます。オイラー関数は互いに素な数の積に対して積になり、素数 では です。したがって で、これは単元群 の位数です。元の位数は群の位数を割り切るので、 なら が成り立ちます。 を となるように選べば、 は法 で逆元 をもちます。このとき ( は 0 以上の整数)と書けるので、 となります。つまり、 乗して暗号化したものを 乗すると元に戻ります。

が と互いに素でない場合( で または の倍数の場合)も、復号は正しく働きます。法 で考えると、 なら両辺とも なので です。 なら の位数は なので です。 は の倍数ですから、やはり になります。法 でも同じことが言えます。 は互いに素なので、中国剰余定理により が従います。 なので、 を で割った余りは そのものです。

は公開してかまいません。 を求めるには が必要で、それには を素因数分解しなければなりません。 が巨大だとこの分解が現実的に困難であることが、安全性の根拠になっています。

手順

  1. 鍵の準備: 異なる素数 を選び、 と を計算する。

  2. 暗号化指数を選ぶ: かつ となる を選ぶ。公開鍵は である。

  3. 復号指数を求める: 拡張ユークリッドの互除法で を解き、 を の範囲に直す。 が秘密鍵である。

  4. 暗号化: 平文 に対して を繰り返し二乗法で計算する。

  5. 復号: を繰り返し二乗法で計算する(法は ではなく )。

例題

として RSA 暗号の鍵を作る。暗号文 を復号して得られる平文 ()を求めよ。

例題の解答

【手順 1】、 である。
【手順 2】 なので、 は条件を満たす。
【手順 3】互除法を行うと となる。よって であり、 が成り立つ。 なので である。確認すると となる。
【手順 5】 を求める。(2 進法で )なので、 の 2 の累乗乗を順に 2 乗して求める。





これらを掛け合わせると である。順に計算すると 、、 となる。よって である。
(検算: なので、 を暗号化すると確かに になる。)

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題