/ / RSA暗号化。 RSAアルゴリズムの説明と実装

RSA暗号化。 RSAアルゴリズムの説明と実装

RSA暗号化は、安全なデータ伝送に広く使用されている実用的な公開鍵暗号システム。同様のサービスとの主な違いは、暗号化キーが公開されており、秘密にされている復号化キーとは異なることです。 RSAテクノロジーでは、この非対称性は、2つの大きな素数を因数分解する因数分解の実際的な複雑さに基づいています(因数分解の問題)。

RSA暗号化

創造の歴史

RSA名は姓の頭文字で構成されますRivest、Shamir、およびAdlemanは、1977年にそのような暗号化アルゴリズムを最初に公に説明した科学者です。イギリスの諜報機関で働いていた英国の数学者であるクリフォードコックスは、1973年に同等のシステムを最初に開発しましたが、1997年まで機密解除されませんでした。

RSAユーザーが作成して公開2つの大きな素数と補助値に基づく公開鍵。素数は秘密にしておくべきです。誰でも公開鍵を使用してメッセージを暗号化できますが、十分に大きい場合は、素数を知っている人だけがメッセージをデコードできます。 RSA暗号化の開示は主要な問題として知られています。今日、メカニズムの信頼性についてオープンな議論があります。

暗号化アルゴリズム

RSAは比較的遅いアルゴリズムです。このため、ユーザーデータの直接暗号化にはあまり使用されていません。この方法の最も一般的な使用法は、対称暗号化キーの共有キーを暗号化することです。対称暗号化キーは、はるかに高速で一括暗号化および復号化操作を実行できます。

暗号システムが現代の形で現れたのはいつですか?

非対称鍵暗号システムのアイデア1976年にデジタル署名を導入し、数論の適用を試みたコンセプトを発表したDiffieとHellmanの功績によるものです。それらの定式化は、素数を法とするある数の指数から生成された共有秘密鍵を使用します。ただし、ファクタリングの原理は当時は十分に理解されていなかったため、この関数の実装の問題は未解決のままでした。

マサチューセッツ州のリベスト、アディシャミール、アドルマンInstitute of Technologyは、この年、デコードが困難な単方向関数を作成するためにいくつかの試みを行いました。 RivestとShamir(コンピューター科学者として)は多くの潜在的な関数を提案しましたが、Adleman(数学者として)はアルゴリズムの弱点を探しました。彼らは多くのアプローチを取り、最終的に1977年4月にRSAとして現在知られているものを最終的に開発することになりました。

情報の暗号化

EDSと公開鍵

電子デジタル署名、またはEDS、電子文書の不可欠な部分です。データの特定の暗号化が変更されたときに形成されます。この属性を使用して、ドキュメントの完全性と機密性をチェックし、誰がそのドキュメントの所有者であるかを確認することができます。実際、これは通常の標準署名の代替手段です。

この暗号システム(RSA暗号化)は、公開鍵と対称鍵との違い。その機能の原理は、2つの異なる鍵が使用されることです-秘密(暗号化)と公開。 1つ目はEDSを生成し、その後テキストを復号化するために使用されます。 2つ目は、EDSの実際の暗号化と検証用です。

署名を使用すると、RSA暗号化をよりよく理解できます。その例は、「詮索好きな目から」通常の機密文書として引用できます。

アルゴリズムの本質は何ですか?

RSAアルゴリズムは、次の4つの段階で構成されています。キーの生成、それらの配布、暗号化、および復号化。すでに述べたように、RSA暗号化には公開鍵と秘密鍵が含まれます。 Openはすべての人に知られ、メッセージの暗号化に使用されます。その本質は、公開鍵を使用して暗号化されたメッセージは、秘密鍵を使用して特定の期間内にのみ復号化できるという事実にあります。

RSA暗号化の例

安全上の理由から、整数はランダムに選択され、同じサイズですが、因数分解をより困難にするために長さが数桁異なります。単純性テストを使用して同一の番号を効果的に見つけることができるため、情報の暗号化は必然的にさらに複雑になる必要があります。

公開鍵は、モジュールと公開指数で構成されます。閉じたものは、モジュールとプライベートインジケーターで構成され、秘密にしておく必要があります。

RSAファイルの暗号化と弱点

ただし、ハッキングにはいくつかのメカニズムがあります単純なRSA。レートが低く、数値の値が小さい暗号化では、整数ではなく暗号文のルートを選択することで、暗号を簡単に解読できます。

rsa暗号化c

RSA暗号化は決定論的アルゴリズム(つまり、ランダムなコンポーネントがない)を使用すると、攻撃者は、公開鍵で可能性のある平文を暗号化し、それらが暗号文と等しいかどうかを確認することで、暗号システムに対して選択された平文攻撃を正常に開始できます。攻撃者が開示された形式の対応するテキストを知っていても、攻撃者が2つの暗号化を互いに区別できない場合、暗号システムは意味的に安全であると呼ばれます。上記のように、RSAは、他のサービスで補完されない限り、意味的に安全ではありません。

追加の暗号化および保護アルゴリズム

上記の問題を回避するために、実用的なRSA実装は通常、暗号化の前に何らかの形式の構造化されたランダム化されたパディングを埋め込みます。これにより、コンテンツが安全でない平文の範囲内に収まらず、メッセージが偶然に明らかになることがなくなります。

rsaファイルの暗号化

RSA暗号システムのセキュリティと暗号化情報は、2つの数学的問題に基づいています。大きな数の因数分解の問題とRSA問題自体です。 RSAでの暗号文とEDSの完全な開示は、これらの問題の両方を一緒に解決できないことを前提として、受け入れられないと見なされます。

ただし、回復の可能性があるため単純な乗数であるため、攻撃者は公開鍵から秘密の数字を計算し、標準的な手順を使用してテキストを復号化できます。今日、古典的なコンピューターで多数を因数分解するための既存の方法が見つかっていないという事実にもかかわらず、それが存在しないことは証明されていません。

自動化

Yafuと呼ばれるツールはこのプロセスを最適化するために使用されます。 YAFUの自動化は、任意の入力数の因子を見つける時間を最小限に抑えるインテリジェントで適応性のある方法論に因数分解アルゴリズムを組み合わせた最先端の機能です。アルゴリズムのほとんどの実装はマルチスレッドであるため、Yafuはマルチコアまたはマルチコアプロセッサ(SNFS、SIQS、およびECMを含む)を最大限に活用できます。まず第一に、それは管理されたコマンドラインツールです。通常のコンピューターでYafuを使用して暗号化係数を探すのにかかる時間は、103.1746秒に短縮できます。このツールは、320ビット以上の容量のバイナリファイルを処理します。これは非常に複雑なソフトウェアであり、インストールと構成にある程度の技術的スキルが必要です。したがって、RSA暗号化Cは脆弱である可能性があります。

RSAフィンガー暗号化

現代におけるハッキングの試み

2009年にビットを使用してベンジャミンムーディRSA-512キーは、既知のソフトウェア(GGNFS)と平均的なデスクトップコンピューター(1900 MHzのAthlon64デュアルコア)のみを使用して、73日間暗号テキストの復号化に取り組みました。この経験が示すように、「ふるい分け」プロセスには5ギガバイト弱のディスクと約2.5ギガバイトのRAMが必要でした。

2010年の時点で、最大の因数分解されたRSA番号は768ビット長(232桁の10進数、またはRSA-768)でした。その開示は、数百台のコンピューターで同時に2年間続きました。

実際には、RSAキーは長いです-通常は1024〜4096ビットです。一部の専門家は、1024ビットのキーが近い将来信頼できなくなる可能性がある、またはかなり資金のある攻撃者によってすでに侵害されている可能性があると考えています。ただし、近い将来、4096ビットの鍵も明らかになる可能性があると主張する人はほとんどいません。

見通し

したがって、一般的にRSAは数が十分に大きければ安全です。メインナンバーが300ビット以下の場合、すでにパブリックドメインになっているソフトウェアを使用して、パーソナルコンピュータ上で暗号文とEDSを数時間以内に分解することができます。 512ビットのキーは、数百台のコンピューターを使用して、早くも1999年に解読できることが証明されています。これは、最近、公開されているハードウェアを使用して数週間可能です。したがって、将来的にRSA暗号化が簡単に破られ、システムが絶望的に​​時代遅れになる可能性は十分にあります。

2003年に公式に、1024ビットキーのセキュリティが疑問視されました。現在、少なくとも2048ビット長であることが推奨されています。