非対称暗号化アルゴリズム-RSA

  暗号化アルゴリズムと対称暗号化アルゴリズム非対称暗号化アルゴリズム、コンピュータ通信セキュリティの基礎として前記非対称暗号化アルゴリズムに、データのセキュリティを確保する上で重要な役割を果たしています。対称暗号化アルゴリズムのわかりやすさに関しては、いくつかの困難非対称暗号化アルゴリズムがあります。以下のRSAアルゴリズムの分析を通じて、私たちはより良い、非対称暗号化アルゴリズムの原理を理解することができます。

対称暗号化アルゴリズムと非対称暗号化アルゴリズム

1、対称暗号化アルゴリズム

  対称暗号化アルゴリズム:暗号化と復号化アルゴリズムは、同じ規則(キー)を使用します。

  (1)、Aは、情報が暗号化されたルールのいずれかを選択します。

  (2)、Bは、メッセージを復号化し、同じルール(ルール逆)を使用します。

2、非対称暗号化アルゴリズム

  非対称暗号化アルゴリズム:暗号化および復号化は、対応関係ことができる2つのルールの間にいくつかの種類が存在する限り、異なるルールを使用してもよいです。

  秘密鍵は秘密にされる(1)、(公開鍵と秘密)鍵を生成するアルゴリズムに従って、2つのBは、公開鍵は、他のヒトBとの通信に使用することが開示されています。

  (2)において、Aは、Bの公開鍵を取得し、暗号化するためにそれを使用します。

  (3)、B Aは、暗号化された情報を取得した秘密鍵で復号化し、通信が終了されます。

RSAアルゴリズムの第2、数学的基礎

1、関係互いに素

  二つの整数の最大公約数が1である場合にも互いに素、または二つ以上の素数として知られていることは、それらが互いに素と呼ばれています。例えば、7と10は、その最大公約数が1であるので、彼らは互いに素です。最大の公約数の8と10は2であるので、彼らは互いに素ではありません。互いに素2つの素数の形成だけでなく。
  プライム関連し、以下の結論(オイラー関数は、後に使用されます):

  • 首相は、二つの異なる素数なければなりません。例えば、2及び7、13および19。
  • 素数は、他には、これら2つの素数それの倍数ではありません。例えば、3および10,5および26。
  • そして1は互いに素任意の自然数です。1および9908。
  • 任意の2の累乗、aは奇数の素数です。32と315と75256。
  • 隣接する二つの互いに素の自然数。15と16。
  • 隣接する二つの奇素数。49と51。

2、オイラー機能

  オイラー関数は、nφ(N)で表されるn個の素数を用いて求めるように以下の正の整数nは正の整数の数を指します。例えば1〜10、及び10は、プライム関係1,3,7,9が形成され(10)= 4φそうです。
  (。。外、[ピー](1)= 1以外はn = 1)、一般式として、オイラー関数:\
[[ピー](N)= N-(1- \ FRAC 1 {{}} P_1)(1- \ FRAC 1 {{} P_2})......(1- \ FRAC {1} {p_r})\\ N = {P_1} ^ {K_1} * {P_2} ^ {K_2} ... {p_r} ^ {K_R}は、P_1、P_2 ...... p_r素数\]請求
  例えばφ(20)= 8が算出される次のように
\ [[ピー](20)=φは(2 ^ 2 \ times5)= 20であり、(1- \ FRAC {1} {2} )(1-
\ FRAC {1} {5})= 8 \]   以下のようにオイラー関数が証明されます。

  • n = 1の場合、φ(1)= 1

   1の任意の数が素数関係を構成するので、φ(1)= 1。

  • nが素数で、φ(N)= N-1である場合

   番号は、その品質とすべての数よりも小さいので、素数関係、φ(N)= N-1を構成しています。φ(5)= 4 5-1 =。

  • 場合N pは素数であり、kは整数であり、1より大きい、素数、下記式の電源である
    \ [φ(P ^ k)は
    、P ^ K(1- \ FRAC {1} {P})= \] 素数のべき乗のプライム関係の素数の倍数に加えて形成されているため、及び素数の倍数は1つの* pを、2 * P、 3 * P、...、P ^(K-1)* P、 すなわちそこP ^(K-1)番目、次いで
    \ [φ(P ^ K) = P ^ KP ^ {K-1} = P ^ K(1- \ FRAC {1} {P})、 としてφ(5 ^ 3)= 5 ^ 3( 1- \ FRAC {1} {5})= 100。\]

  • Nは二つの素数の積に分解することができる場合、
    \ [[ピー](P_1 {} \ {P_2タイムズ})= [ピー](P_1)、Φ(P_2)は\]
    中国の剰余定理定理は、特定のを証明するのに使用することができますプロセスは、他の文書を参照することができます。φ(15)=φ(3 ×5)=φ(3)φ(5)= 2 * 4 = 8。
    、素数の積の一連のように書くことができるよりも、任意の大きい1の正の整数で推定することができるので、上記の推論に基づいて、そのNはより大きい整数であるとき1:
    \ [N = {P_1} ^ {K_1} {P_2} ^ { K_2} ... {p_r} ^ { K_R} \]

    \ [φ(N)=φ({P_1} ^ {K_1} {P_2} ^ {K_2} ... {p_r} ^ {K_R})\]

    \ [ファイ(N)= Z({P_1} ^ {K_1})ここで、f({P_2} ^ {K_2})... Z({p_r} ^ {K_R})\]

    \ [φ(N)= {P_1} ^ {K_1}(FRAC \ 1- {1} {P_1}){P_2} ^ {K_2}(1- FRAC \ {1} {P_2})... {p_r } ^ {K_R}(FRAC \ 1- {1} {p_r})\]

    \ [φ(N)= {P_1} ^ {K_1} {P_2} ^ {K_2} ... {p_r} ^ {K_R}(1- \ FRAC {1} {P_1})(FRAC \ 1- {1 } {P_2})(1- \ FRAC {1} {p_r})\]

    \ [φ(N)= N(1- \ FRAC {1} {P_1})(FRAC \ 1- {1} {P_2})...(1- \ FRAC {1} {p_r})\]

    上記一般式はオイラー関数です。

3、オイラーの定理

  また、フェルマーとして知られているオイラーの定理、 -オイラーの定理は、意味:2つの正の整数aとnが互いに素、そしてnはオイラー関数φがある場合(n)は次式が成立することができます。
\ [A ^ {φは、(N
)} = 1(MODの\ n)\]   すなわち、Φ(N)に加算剰余第nが1である、またはに、電源マイナス1番目、Φ(n)はこれは、nで割り切れます。5プライムとして7
\ [7 ^ {φ(5 )} - = 2400 1 = 7 ^ 4-1 = 2401から1、 5 \で割り切れるであってもよいです]

図4に示すように、モジュラ逆数

  2つの正の整数aとnは互いに素である場合、我々は、nが1-AB、ABまたはNで除算した余りで割り切れるように、整数Bを見つけることができることは数1です。この場合、Bは、モジュラ逆数と呼ばれています。次のように証明すること:
[A ^ {[ピー](N)}は\タイムズA ^ {φ(N-1 = \ )} = 1(MOD \のN-)、ここで^ {φ(N-1 )} 型であります抗要素\]

三、RSAアルゴリズムプロセス

1は、鍵のペアを生成(パブリックとプライベート)

  • (より大きなを確保し、AとB)2つのランダム素数a、bを取得し、その積nを算出し、

    例えば、A = 5、B = 11のため。それらの積を計算し、N = * 11 = 55 5、6つの暗号化アルゴリズムである、110111にバイナリに変換されます。この例では、計算の便宜のため、それは比較的少ない数、実際のアルゴリズムは、1024または2048であるかかりされ、ビットのより長い数、難しく、それはアルゴリズムを破ることです。

  • N計算オイラー関数m =φ(N)

    式M =φに応じて(55)=φ(5)φ(11)=(5-1)、(11-1)= 40

  • 1 <E <M、M個の互いに素Eとの条件で、ランダムな整数eを選択

    私たちはランダムに選択されたE = 17

  • E成形φ(N)(すなわち、m)の逆元Dについて計算

    すなわち、このような(Eは* d)が%m = 1のことを、整数dを見出すことです。Dを見つける1 = Y×m個(yは整数である)、以下の線形方程式を解くエッセンス - イー・Dに相当します。E * X - のM *のY = 1。E = 17、M = 40,17x請求 - 40Y = 1この式は、可能な "拡張ユークリッドアルゴリズム" は解決します。詳細わずかに解決プロセス、計算された整数の組(X、Y)=(33,14)、すなわち、D = 33の溶液。この鍵ペアの生成が完了する。異なるE dを生成する異なる、鍵ペアを複数生成することができます。

  本実施形態の公開鍵(N、E)=(55、17)、秘密鍵(N、D)=(55、33)、のみ(N、E)=(55、17)内に残っている、開いています数値は、公開されません。唯一の場合は、時間のブルートフォースだけ強引に頼ることができ、中央値より長く、長く、Dを導出する方法を、想像してN Eすることができます。

2、暗号化された暗号文を生成し、

  平文は、デジタルに変換する必要があり、かつn未満でなければならない公開鍵(N、e)を用いて、Z平文は、暗号化されています。次のように暗号化式は:
\ [E ^のZ = Cの(MOD \ N-)\]
  zは平文であり、nは、公開鍵eは、Cは暗号化暗号文である場合、これは、Cに変換することができる:
\ [C = Z ^ E \%N \]
  プレーンテキスト15、公開鍵(N、E)=(55場合 、17)、 暗号化された暗号文cは:
[C = 15。17 ^ {} \ = 55、5%\ \ ]

図3は、復号された平文を生成します

  公開鍵(N、D)復号化された公開暗号解読を使用して暗号文cは、以下:
\ [Z = C ^ Dを(MOD \ N-)\]
  cは、N、暗号文であり、dは秘密鍵であり、Zは、復号され平文後、それをzに変換することができる:
\ [DがZ = C ^ \ N-%\]
  上記の条件に応じて、暗号文cは5であり、秘密鍵(N、D)=(55 、33)、 復号化した後Zは明白である:
\ [^ {Z = 33である5。} 55 = 15%\ \]

の有効性を証明するために四、RSAアルゴリズム

1.妥当性

  上述の例示的なアルゴリズムRSAによると、RSAアルゴリズムは、有効性を検証するために、即ち、式に従って暗号化された認証:
\ [Z ^ E = C(MOD \のN-)\]は、
  復号式が有効である、推定することができる:
\ [^ D = C Z(MODの\ n)\]

2、証拠

  暗号化規則を導き出すことができる:
\ [C ^ E = Z - KN \]
  、すなわち、それを確認し、復号化された式に、上記式の子孫は、以下:
\ [(Z ^ E-KN)= Z ^ D(MOD \ N)\]

\ [Z ^ {ED} = Z(MODの\ n)\]

  • ZがNに素数である場合

    オイラーの定理
    \ [Z ^ {φ(N
    )} = 1(MODの\ n)\] 解放することができる
    \ [Zの\時間{(Z ^ {φ(N)})} ^ P = Z(MOD \ N)\]

    \ [Z ^ {1 +Pφ(N)} = Z(MODの\ n)\]

    ための
    \ [ED = 1(MOD \の φ(N))\]

    \ [ED = 1 +Pφ(N)\]

    推測することができる
    \ [Z ^ {ED} = Z(MODの\ n)\]

  • Zは、Nと互いに素されていない場合

    Nので= AおよびBは素数である* Bを、。zがあり、n次いで、素数でないnおよびnは2つの素数AおよびBの積であるので、Zは、公約数を持たなければならないので、その後、Zはaまたはbの倍数でなければならない、またはKA KBと呼ばれます。

    (= kbの共感)Z = KA仮定。kはBの倍数、hは正の整数であり、推定ZがNよりも大きいが、暗号化された平文の条件によれば、N未満である必要があり、それは推定することができる、すなわち、K = HB、次にZ = HABである場合、Bは、素数であるのでkは、Bの倍数ではないbが素数であるので、K aおよびbは互いに素である推測することができ、同様に誘導されたKAとB、すなわち、Z及びbは互いに素であり、互いに素です。

    オイラーの定理は、次式が見出さ確立された:
    \ [^ {[ピー] Z(B)}≡1(MOD \ B)\]
    導出することができる:
    \ [^ {[ピー] Z(B)} =(KA)^ { φ(B)} =(KA
    )^ {B-1}≡1(MOD \ b)は\] モジュロ番号1、そのn乗、また残りの結果のために。この定理によれば、推定することができる
    [{[(KA)1-B ^ {}]}、{(1-A)H ^}≡1(MOD \ B)\] \

    \ [{[(A)「{B-1}]} * {H(a-1)}倍ka≡ka(MOD \ b)は\ \]

    \ [{(A)} ^ {ED}≡ka(MODの\ B)\]

    \ [OBにおける{(AT)} ^ {ED} = + \]

    二つの式が成立し、AおよびBは互いに素であるので、Oの特定の倍数、すなわち0 = JAとして導出してもよいし、推定することができる:
    [{(KA)} ^ {} = ED = KA KA + OB \ +ジャブ\]
    Zが= KAとして、N = AB、あなたが終了することができる:
    \ [^ {Z}≡zED(月\ N-)\]

第五に、RSAアルゴリズムのセキュリティ

  セキュリティのRSAアルゴリズムは、空間と時間の現在の状況に基づいており、それが効果的に解決することはできません。

  上記導出によれば、RSAアルゴリズムは、B、N、M、E、Dに6つの数字を使用します。公開鍵(N、e)が開示されており、残りの4桁は、機密です。ここで、dは鍵アルゴリズムのコアです。

  • E * D≡1(MOD M)。eが公開されている場合、それはdで計算することができ、メートルを知っている必要があります。
  • 式φ(N)=に係る(a-1)(B-1)及びbを知って、Mを計算するために、Mを=。
  • N = AB。Nのみ-因数分解は、aとbをうまくします。

  現時点では、分解率の多数のために、ブルートフォースに加えて、何より良い方法はありません。コンピューティングリソースや能力を既存の、現在最も長いRSA鍵が割れることができるので、長いRSAキーは1024以上であるとして、あなたは、アルゴリズムのセキュリティを確保することができ、768です。

VIの概要

1、RSAアルゴリズムの流れ

2、RSAアルゴリズムのセキュリティ

  現時点では、分解率の多数のために、ブルートフォースに加えて、何より良い方法はありません。コンピューティングリソースや能力を既存の、現在最も長いRSA鍵が割れることができるので、長いRSAキーは1024以上であるとして、あなたは、アルゴリズムのセキュリティを確保することができ、768です。

3、RSAアルゴリズム

  在RSA算法中,公钥(n,e) 只能加密小于n的整数。对于大于n的整数,可以采用两种方法。一是把长信息分割成若干段短消息,每段分别加密;另一种是先选择一种对称性加密算法加密信息,再用RSA公钥加密对称性加密算法的密钥。

  另外,由于RSA算法性能问题,通常加解密都比较慢,所以通常和对称性加密算法一起配合使用。

おすすめ

転載: www.cnblogs.com/xtiger/p/10972373.html