利用者:Meauk/暗号
提供: Yourpedia
								
												
				目次
2014-04-06[編集]
受信者[編集]
- 大きな素数pを生成
 - pに対する原始根としてgを選択
 - 乱数として、p-1>a>1の範囲でrを生成。
 - as ≡ 1 (mod p-1)
 - g^a ≡ x (mod p)
 - 秘密鍵(s)は秘密に所持し、公開鍵(p, g, x)は公開する。
 
送信者[編集]
- 乱数としてp-1>k≧1の範囲でkを生成。
 - g^k ≡ e (mod p) (eがp-1と互いに素でないならば①からやり直し。)
 - 秘密にするメッセージをMとするとき(Mは換字式暗号などで数列に変換してある。Mはp>M>1の範囲。)、M^e ≡ C (mod p)
 - x^k ≡ y (mod p)
 - 暗号(C, y)を送信
 
受信者[編集]
- y^s ≡ e (mod p)
 - ed ≡ 1 (mod p-1)
 - C^d ≡ M (mod p)
 
2014-05-05[編集]
鍵生成[編集]
- 2つの異なる素数PとQを生成し、積Nを計算する。
 - φ(N)=(P-1)(Q-1)を求めて、PとQの値を破棄
 - φ(N)と互いに素な数eをランダムに選択して、ed ≡ 1 (mod φ(N))が成り立つようにdを計算する。
 - F×d+G ≡ 0 (mod φ(N))となるように、2つの奇数FとGを固定する。
 - 公開鍵(N, e, F, G)を公開し、秘密鍵(d)を秘密に保持する。
 
暗号化[編集]
- M:メッセージ、K:乱数。M^e × K^F ≡ C (mod N)。K^G ≡ X (mod N)。暗号文(C, X)
 
復号[編集]
- C^d ≡ Y (mod N)。XY ≡ M (mod N)。
 
2014-05-09[編集]
鍵生成[編集]
- 素数pを生成する。
 - pに対する原始根gを選択する。
 - 自然数f, hをランダムに選択後、fd+h ≡ 0 (mod p-1) を計算する。
 - g^f ≡ A (mod p) を計算する。
 - g^h ≡ B (mod p) を計算する。
 - 公開鍵(p, A, B)は公開し、秘密鍵(d)は秘密に保持する。
 
暗号化[編集]
- 乱数rを生成する。
 - 周知の方法で数値に変換された平文をM(p未満)とするとき、M × B^r ≡ C (mod p) を計算する。
 - A^r ≡ x (mod p) 計算する。
 - 暗号文(C, x) を受信者に送信する。
 
復号[編集]
- x^d ≡ y (mod p) を計算する。
 - Cy ≡ M (mod p) を計算する。
 
2014-06-11[編集]
鍵生成[編集]
- 素数pを生成する。
 - pに対する原始根gを1つ選択する。
 - φ(p)=(p-1)と互いに素な数eをランダムに選択する。
 - ed ≡ -1 (mod p-1) となるdを計算する。
 - x ≡ g^e (mod p) を計算する。
 - 公開鍵(p, g, x)を公開し、秘密鍵(d)を秘密に保持する。
 
暗号化[編集]
- 乱数rを生成する。
 - c ≡ m × g^r (mod p) を計算する。
 - y ≡ x^r (mod p) を計算する。
 - 暗号文(c, z)を受信者に送信する。
 
復号[編集]
m ≡ c × y^d (mod p) を計算する。
2014-06-12[編集]
鍵生成[編集]
- 素数p, qを生成する。
 - n=pq, P=p^2, F=φ(P)=P-p を求める。
 - (e, F)=1を満たすeをランダムに選択後、ed mod F = 1 より、dを計算する。
 - (p+1)^e mod P = a を計算する。
 - 公開鍵(a, n)を公開し、秘密鍵(d, p, q)を秘密に所持する。
 
暗号化[編集]
- メッセージを周知の方法で数値mに変えたあと、乱数rを生成する。
 - N=n^2 を計算する。
 - a^(m+nr) mod N = C
 - 暗号文(C)を送る。
 
復号[編集]
- C^d mod P = x を計算する。
 - (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[編集]
準備[編集]
- 2つの相違なる素数、pとqを生成。→ ただし、n=pq。
 - pに対する原始根gを選択。
 - d = [{g^(p - 1) mod p^2} - 1]/p を計算。
 - 公開鍵(g, n) 秘密鍵(p, d)
 
暗号化[編集]
- 乱数 1<r<n^2 を生成。
 - メッセージをmとする。→ C ≡ g^m × r^n (mod n^2) を計算。
 - 暗号文(C)
 
複号[編集]
- D = [{C^(p - 1) mod p^2} - 1]/p を計算。
 - D/d ≡ m (mod p) を計算。