RSAの暗号化と原理の証明

RSA暗号化の原則:

リー・ウイング-LOK教師ビデオ:https://www.bilibili.com/video/av26639065?t=8

 

 

RSA証明:

RSAの実績のある
シーケンス
(3)に、思い出させるために友人のおかげと推論が改正されました。

!最初は、この「RSAの証明」を書くことは良いテキストを確認することです - 古いぬれた、ああを強制することはない「」「:RSAの暗号化と割れ」が、ネットワーク上で最もシェアのこの記事で、ほとんどはない式完全な。そして控除を通じて、言語やプログラマの習慣の違いの数学的表現は、あまりにも使用しました。だから、簡単に理解しやすい方法には、この記事のうち、「RSAの暗号化と亀裂」に要約されたとプログラマの数学の部分。しかし、コンテンツのほとんどは、「RSAアルゴリズムの基本的な説明は、」補足説明の使用の少量を描く、「RSAの暗号化とクラック」に由来しています。

しかし、振り返ってみると、この記事では、けれども、繰り返し改訂していたが、文は厳格な、明確ではないが、また、単純では十分ではない多くの場所が残っています。例えば、式(3)証拠のより簡単な導出するリード線を効率的にRSAであることができる、より簡略化することができる。逆さまRSAを証明で、基本的な目的は明らか証拠はない。また、nの選択のために、これはそれ以上でなければなりません詳細な説明、nは確立この重要なポイントを選択するRSAですが、国内のネットワーク上のデータはほとんど言及していない、または詳細に説明しないようです。

そこで、この記事では、ほとんどの国内および野生のRSA情報に期待して、再び変更されているが、それは別の角度から問題を見て、ユーザーへのインスピレーションの役割を果たすことができる、明確な区別を再現しました。そして正確な、論理的、詳細に問題を入れて滑らかにしてみてください。

はじめに
RSAが非対称暗号化アルゴリズムである、我々は暗号化された暗号文にプレーンテキストを読むことができない他人を理解することができることができます。対照的に、同一の鍵(キー)の暗号化と復号化のために使用されるシーザーシフト暗号などの最初の暗号化は、対称暗号化アルゴリズムと呼ばれています。このアルゴリズムは、あなたが知ったら鍵は、あなたが暗号化された通信のすべてのプレーンテキストを取得することができます。

キーによる暗号化は、唯一の別の鍵で復号することができますしかし、もし、それから、人々が得る場合でも、盗聴メッセージの暗号化キーは、平文を復元することはできません。これは非常に暗号化された通信のセキュリティを向上します。暗号化と復号化鍵のこの別の方法は、非対称暗号化と呼ばれています。

1977年、ロナルド・リベスト(ロナルド・リベスト)、アディ・シャミア(アディ・シャミア)とレオナルド・エーデルマン(レオナルド・エーデルマン)は共同で、有名な3非対称暗号化アルゴリズム--RSAを提案しますこれは、最も安全な暗号化アルゴリズムの一つです。

基本
へは明らかにこのアルゴリズムを理解し、我々は最初のコアは、オイラーの定理を計算するために、いくつかの数学的概念、定理や公理を習得しなければなりません。まずフェルマー17世紀、フェルマーの小定理その定理の特殊な形式:

pは任意の整数pは割り切れないで、正の素数です。次いで、^(P-1) -1 Pで割り切れます。
1つの
IS

(A ^(P - 1))= 1%のP-
1
本は、一般的に小さすぎて余裕あるので、フェルマーは、ブック側の書き込みノートの習慣を持って、「フェルマーの推測」前方有名を置くために彼を導いたが、書き込みのない場所ありません証明は、その後、本の余白に左、「私は素晴らしい証拠を見つけましたが、理由は書き留めするには小さすぎるギャップの。」頭も許可証を壊したいので、多くの人々は、時間の長い期間に、この推測をリード。目に見える、ブック側でメモを書くためには良い習慣ではありません。同様に、「フェルマの小定理」を証明するだけでなく、長い修正後。

百年後、大きな牛は、ほとんど数学のすべてのエリアを再び征服された、依存症を克服するために、そのような人は、自然に予備費なかった、人生は70冊の以上の数学の本を書いていると言ってオイラー、オイラーを呼び出します次のように馬は、オイラー野生の子フェルマーの小定理ので、数学的な言語の広いアプリケーションにそれを拡張することは説明されています。

nは正の整数であり、ゼロ以外の整数であり、nは、次いで、互いに素である場合:
(1)。(^、Φ(N))%N = 1
。1
2は
、[ピー](n)は、欧州でありますプル関数、φ(N)= 1からN-1までのすべての整数の素数であるN。互いに素、それが唯一の公約数を意味します。(5)= 4φなるので、例えば5、1,2,3,4及び5は、互いに素です。

素数p、及びそのための1,2,3、...、P-1は、互いに素であるので、φ(P)= P-1。例えば、φ(11)= 10のため。

素数pφ(P)= P-1があるからです。そのため、オイラーの定理からフェルマーの小定理を起動することができます。オイラー子フェルマーの後、我々は(ちょうどハ、フェルマーやスーパー牛を笑うここで言って)フェルマーの小定理を忘れることができます。簡単なテストの例とオイラーの定理。nが6である場合、φ(6)= 2。11、および6は互いに素であるしましょう。121-1 120は、実際にオイラーの定理に沿って、6で割り切れることができます。

オイラーの関数について、当然の結果があります:

m、nは正の整数が互いに素です。次いで、
(2)、Φ(MN)= [ピー](M)*、Φ(N)
1
2
は、(1)及び(2)、前方の上にも留意すべきで除きます。

(3)(A * B)N-%=((N%)*(N-%B))N-%=((%はN-A)* B)N-%
1。
単純な証明は以下の通りであります:

残りは、Bがで割ったN C1、C2、次いで及びBは= N * T1 + C1、のように書くことができるされているものとする B = N * T 2 + C2。
次に、* B = N ^ 2 * T1・T2 + N * T1 * C2 + N * T2 * C1 + C1 * C2。
したがって、残り* Bは、C1とC2は(C1 * C2)%N =ので、Nの倍数ではないので、N(C1 * C2)%で割っnは C1 * C2、 すなわち(* B)%nを=(%のN)*( B%N)。
。1
2
。3
これによれば、推定することができます

(A ^ m)のN-%=((%N-A)^ m)のN-%=((%N-A)^ m)のN-%
1
上記は、実際に数論の非常に退屈な側面なものである、これらのものは、古代にあったであろうあまり実用的な意義、これらの理論の応用のための広大なスペースを開く、現代のコンピュータと通信技術の発展を期待していませんでした。RSA暗号化は、それが上記の理論を適用します。

暗号化/復号化プロセス
実績のあるRSAアルゴリズムまで、私たちは、このアルゴリズムと暗号化と復号化のプロセスを理解するために開始します

最初の二つの素数p及びqを選択し、N = P * Qをさせ;
そしてk =φ(N)=( P-1)*(Q-1);
1 <D <φ(N)という条件で、任意のDを選択しますdはkに互いに素であり、
丸みを帯びたE、その結果(D * E)%のK = 1。すなわち、D * E = K * T + 1、Tはいくつかの整数です。オイラーの定理(D ^φ(k))を %K =(D * D ^(φ(K)-1))%のk = 1、 Eを計算= D ^(φ(K )-1)。
(E、N)および(d、n)はキーです。

プレーンテキストでは、C、Cで暗号化し、nは互いに素します。X暗号文。

C暗号化プロセスである:X =(C ^ E)%nを

復号プロセスXは、C =(X ^ D)%nを

証明
まあ、それはアルゴリズムことを証明、開始するには私たちの番です。

RSAを実証するために、再度暗号化復号化した後証明Cは、C = Cであり、(((C ^ E)%N)^ D)%Nのままです。

(以下、主にD * E = K * T + 1、及び(3)および推定を使用して)証明:

(((C ^ E)%N-)^ D)%のn-
=(C ^(D * E))%のn-
=(C ^(K * T + 1))%のn-
=(C *((C ^ K )^ T))%N-
=((C%N-)*(((C ^ K)^ T)%N - ))%N-
=((C%N-)*(((C ^ K)%N-)^ T)N%)は、n%
1
2
3。
4。
5。
6。
オイラーの定理(1)によれば、任意のCのために、Cは、その後、Nに素数である場合:

(C ^ K)N-%=(C ^、Φ(N))= N-%。1
。1
したがって、

((C%N-)*(((C ^ K)%N-)^ T)%N - )%N-
((C%N-)*((1 ^ T)%N - ))=%N-
=((C%以下N)* 1)%N。
= C N%
1。
2
3。
4。
言うことであるC nのプライム、Cの%N = Cので、など。

(((C ^ E)N-%)^ D)=%N-C
1つの
このようにして得られたRSA証明書。

キー
上記の記載目に見える証拠は、RSAアルゴリズムの鍵は、cが整数である場合、それはCが数字のセットは、C1と、ある場合には、素数で見つけることは容易であり、nは平文Cと素数を見つけることです、c2は、...、CXは、その後、どのように見つけるためのn cは、それまでのすべての素数ですか?

この方法は、素数pとqは、cの全てよりも大きくなければならないこと、そして得られた必ずしもすべてのn cは互いに素です。その理由は次のとおりです。

;大きい番号のうちの二つの数が素数である場合、pおよびq cは全て素数であるように、プライムは、リレーションシップ・インデックスpおよびCの全てよりも大きいQを構成する両方の
ためだけのn pおよびqに分解、およびcは、pの全て及びqは互いに素であるので、N Cは、すべての品質と交差しています。
RSAセキュリティ
、時間のn個の残りのためには、数字が混同されることはありません、RSAアルゴリズムはすべて暗号化された数cが少ないnよりであることが必要です。

しかし、もっと重要な理由は、大きなn個のpとqを保護することです。ハックしたい、あなたはDを見つけなければなりません。RSAの見直し作業プロセス(nはパブリックであることに注意してください)、それがひび割れすることができます。

隠されたpおよびqは見つけるために
pとqを知って、Kを算出することができる
D * E = T + K * 1、すなわち、Eを見つけるために、Dは*そのk個のE-1に分割することができます。dが見つけることができます。
最初のステップは、最も困難であり、上記のプロセス全体を破る- 2つの隠されたpとqを見つけること。pおよびqは、例えば200のように、非常に大きくなるように選択されている非常に大きなNをもたらすことができる場合は、400があります。400桁の素数分解探して、現在のコンピュータのために容易ではない、それは約SQRT(10 ^ 400)/ 2回の分割を行う必要があります。^ 10 199回分裂に対応!一例として、第2号に遼寧スーパーコンピュータは、第二の容量あたりの浮動小数点演算は、10 ^ 16レベルです。だから、第天河とpとq 2は174 ^約10年かかる見つけます。神ショットを喜ばせるためにこのライブ。しかし、10 ^ 174年後であれば、(天河-2がケースまだある場合)は、次のように天河二号平文:

「10 ^ 174年マイナス1日、この情報のボイド。」
1
だから、神がまたdumbfoundingと推定されています。

[1] MOD関数および%記号()はモジュロ演算を表し、は、5%3 = 2として残り、と理解されるべきである
[2] ^は、^ 5 = 25 2として、べき乗シンボルを表す
Nの[3]ここでしか与えられたを選択する簡単な方法。反例は、qおよびcは素数ではない、pは例えば、p = 5、Q = 7、 C = 70、 これは、n = 35ことは明らかであり、cは互いに素ではない
[4]ああを強制的にではないこのデータ参照「」、古いウェット!「:​​RSAの暗号化とクラック」します。http://www.cnblogs.com/vamei/p/3480994、その簡素化、およびRSAアルゴリズムの詳細を与えることは、よりプログラマの言語に合わせてオリジナルのリンクであることを証明しています。 !htmlの#コメントは、元の式が示す異常ならば、あなたはを参照することができます:http://blog.jobbole.com/96702/
[5]参照"RSAアルゴリズムの基本的な説明"から:のhttp://www.cnblogs.com /hykun/p/RSA.html


説明リンクします。https://blog.csdn.net/desert187/article/details/51123269

おすすめ

転載: www.cnblogs.com/wisir/p/12528335.html