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

エルガマル暗号

公開鍵 を作り、 で暗号化し、 で復号できる。同じ が使い回されたとき、 から秘密鍵なしで平文を求められる

前提

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

読み込み中…

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

一覧で見る(前提が先)
  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. 素因数分解と約数の個数 (算数 整数の性質)
  23. 最大公約数と最小公倍数 (数学A 整数の性質)
  24. ユークリッドの互除法 (数学A 整数の性質)
  25. 1 次不定方程式の整数解 (数学A 整数の性質)
  26. 法 での逆元(拡張ユークリッドの互除法) (大学数学 暗号理論)

説明

エルガマル暗号は、ディフィー・ヘルマン鍵共有のしくみを使った公開鍵暗号です。公開鍵があれば誰でも暗号化でき、秘密鍵を持つ人だけが復号できます。素数 と ()を公開し、受信者は秘密鍵 から公開鍵 を作ります。送信者は平文 ( の整数)を毎回新しい乱数 で暗号文 に変え、受信者は を使って を取り出します。さらに、同じ を使い回すと秘密鍵がなくても平文が漏れることも確かめます。

なぜそうしてよいのか

ディフィー・ヘルマン鍵共有で、受信者の秘密を 、送信者の秘密を とみなします。受信者の公開値は 、送信者の公開値は です。このとき両者が作れる共有鍵は です。送信者はこの を「目隠し」として平文に掛け、 を送ります。受信者が を再現できるように、 も一緒に送ります。

受信者は自分の を使って を計算できます。 は素数で、 は の倍数ではありません。そのため も の倍数ではなく、 となるので逆元 が存在します。よって となり、平文が戻ります。 なので、 は余りとして一つに決まります。

安全性について、二つのことを区別しておきます。盗聴者が知っているのは です。復号するには、これらから を求める必要があります。この「 から を求める問題」を計算ディフィー・ヘルマン問題といい、これが難しいことが、第三者に平文を求められないことの根拠です。一方、離散対数問題( から を求める問題)が易しいと、 が求まって誰でも復号できてしまいます。つまり離散対数の困難性は、秘密鍵 を求められないための条件であり、安全性に必要な条件です。ただし、 を求めずに を作る方法がないことまでは、これだけでは保証されません。

同じ で2つの平文 を暗号化すると、目隠し が共通になり、、 となります。 で は素数なので、 です。 も と互いに素なので、積 も の倍数ではありません。よって と はどちらも存在します。両式の比をとると が消えて となります。したがって、 を知っている攻撃者は、秘密鍵なしで を計算できてしまいます。これが、 を毎回変えなければならない理由です。

手順

  1. 鍵を作る: 受信者は秘密鍵 ()を選ぶ。繰り返し二乗法で公開鍵 を計算し、 を公開する。

  2. 暗号化する: 送信者は毎回新しい乱数 ()を選ぶ。、 を計算して を送る。

  3. 復号で目隠しを再現する: 受信者は を繰り返し二乗法で計算する(これは と等しい)。

  4. 逆元を求める: なので、拡張ユークリッドの互除法で を解き、 を得る。

  5. 平文を取り出す: を計算し、 以上 以下の余りにする。

  6. ( の使い回しを突く場合)同じ の暗号文 と既知の平文 を使う。 は と互いに素なので が存在する。これを互除法で求め、 を計算する。

例題

エルガマル暗号で、公開パラメータを 、、受信者の秘密鍵を とする。受信した暗号文 を復号し、平文 ()を求めよ。

例題の解答

手順3(目隠しの再現): を繰り返し二乗法で計算する。、 である。よって となり、 である。

手順4(逆元): なので逆元は存在する。互除法を行うと 、 である。これを逆にたどると となる。よって である(確かめ: )。

手順5(平文の取り出し): 。

検算: 公開鍵は である。、 より となる。 とすると 、 なので となり、受信した暗号文と一致する。よって 。

答え:

よくある誤り

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

入口の問題

この技能を使う問題