利用者:Meauk/暗号

提供: Yourpedia
< 利用者:Meauk
2020年12月27日 (日) 14:20時点におけるMeauk (トーク | 投稿記録)による版 (Wikified)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

自分のブログよりWiki化

2014-04-06

受信者

  1. 大きな素数pを生成
  2. pに対する原始根としてgを選択
  3. 乱数として、p-1>a>1の範囲でrを生成。
  4. as ≡ 1 (mod p-1)
  5. g^a ≡ x (mod p)
  6. 秘密鍵(s)は秘密に所持し、公開鍵(p, g, x)は公開する。

送信者

  1. 乱数としてp-1>k≧1の範囲でkを生成。
  2. g^k ≡ e (mod p) (eがp-1と互いに素でないならば①からやり直し。)
  3. 秘密にするメッセージをMとするとき(Mは換字式暗号などで数列に変換してある。Mはp>M>1の範囲。)、M^e ≡ C (mod p)
  4. x^k ≡ y (mod p)
  5. 暗号(C, y)を送信

受信者

  1. y^s ≡ e (mod p)
  2. ed ≡ 1 (mod p-1)
  3. C^d ≡ M (mod p)

2014-05-05

鍵生成

  1. 2つの異なる素数PとQを生成し、積Nを計算する。
  2. φ(N)=(P-1)(Q-1)を求めて、PとQの値を破棄
  3. φ(N)と互いに素な数eをランダムに選択して、ed ≡ 1 (mod φ(N))が成り立つようにdを計算する。
  4. F×d+G ≡ 0 (mod φ(N))となるように、2つの奇数FとGを固定する。
  5. 公開鍵(N, e, F, G)を公開し、秘密鍵(d)を秘密に保持する。

暗号化

  1. M:メッセージ、K:乱数。M^e × K^F ≡ C (mod N)。K^G ≡ X (mod N)。暗号文(C, X)

復号

  1. C^d ≡ Y (mod N)。XY ≡ M (mod N)。

2014-05-09

鍵生成

  1. 素数pを生成する。
  2. pに対する原始根gを選択する。
  3. 自然数f, hをランダムに選択後、fd+h ≡ 0 (mod p-1) を計算する。
  4. g^f ≡ A (mod p) を計算する。
  5. g^h ≡ B (mod p) を計算する。
  6. 公開鍵(p, A, B)は公開し、秘密鍵(d)は秘密に保持する。

暗号化

  1. 乱数rを生成する。
  2. 周知の方法で数値に変換された平文をM(p未満)とするとき、M × B^r ≡ C (mod p) を計算する。
  3. A^r ≡ x (mod p) 計算する。
  4. 暗号文(C, x) を受信者に送信する。

復号

  1. x^d ≡ y (mod p) を計算する。
  2. Cy ≡ M (mod p) を計算する。

2014-06-11

鍵生成

  1. 素数pを生成する。
  2. pに対する原始根gを1つ選択する。
  3. φ(p)=(p-1)と互いに素な数eをランダムに選択する。
  4. ed ≡ -1 (mod p-1) となるdを計算する。
  5. x ≡ g^e (mod p) を計算する。
  6. 公開鍵(p, g, x)を公開し、秘密鍵(d)を秘密に保持する。

暗号化

  1. 乱数rを生成する。
  2. c ≡ m × g^r (mod p) を計算する。
  3. y ≡ x^r (mod p) を計算する。
  4. 暗号文(c, z)を受信者に送信する。

復号

m ≡ c × y^d (mod p) を計算する。

2014-06-12

鍵生成

  1. 素数p, qを生成する。
  2. n=pq, P=p^2, F=φ(P)=P-p を求める。
  3. (e, F)=1を満たすeをランダムに選択後、ed mod F = 1 より、dを計算する。
  4. (p+1)^e mod P = a を計算する。
  5. 公開鍵(a, n)を公開し、秘密鍵(d, p, q)を秘密に所持する。

暗号化

  1. メッセージを周知の方法で数値mに変えたあと、乱数rを生成する。
  2. N=n^2 を計算する。
  3. a^(m+nr) mod N = C
  4. 暗号文(C)を送る。

復号

  1. C^d mod P = x を計算する。
  2. (x-1)/p=m でmを得て、メッセージに戻す。

2014-07-14

鍵生成

素数 p, q。自然数x<q。F=φ(p^2)=p^2 - p。n=pq。P=p^2。(e, F) = 1 → ed ≡ 1 (mod F)。a = (Px + p + 1)^e mod n^2。

暗号化

メッセージ:m。乱数:r。a^(m+nr) mod n^2 = C(暗号文)

復号

{(C^d mod P) - 1} / p = m

2015-06-10

準備

  1. 2つの相違なる素数、pとqを生成。→ ただし、n=pq。
  2. pに対する原始根gを選択。
  3. d = [{g^(p - 1) mod p^2} - 1]/p を計算。
  4. 公開鍵(g, n) 秘密鍵(p, d)

暗号化

  1. 乱数 1<r<n^2 を生成。
  2. メッセージをmとする。→ C ≡ g^m × r^n (mod n^2) を計算。
  3. 暗号文(C)

複号

  1. D = [{C^(p - 1) mod p^2} - 1]/p を計算。
  2. D/d ≡ m (mod p) を計算。