Articles

RSAアルゴリズム(Rivest-Shamir-Adleman)

RSAアルゴリズムは、公開鍵暗号化を可能にし、特にインターネットなどの安全でないネットワークを介して送信されているときに、機密データを保護するために広く使用されている暗号システム-特定のセキュリティサービスまたは目的のために使用される暗号化アルゴリズムのスイート-の基礎である。,

RSAは1977年にマサチューセッツ工科大学のRon Rivest、Adi Shamir、Leonard Adlemanによって初めて公に記述されたが、1973年にイギリスの数学者Clifford Cocksによる公開鍵アルゴリズムの作成は1997年まで英国のGCHQによって分類され続けた。

公開鍵暗号は、非対称暗号とも呼ばれ、二つの異なるが数学的にリンクされた鍵を使用します。 公開鍵はすべての人と共有できますが、秘密鍵は秘密にする必要があります。,

RSA暗号では、公開鍵と秘密鍵の両方がメッセージを暗号化でき、メッセージを暗号化するために使用される鍵とは反対の鍵がメッセージを復号化するために使用されます。 この属性は、RSAが最も広く使用されている非対称アルゴリズムになった理由の一つであり、電子通信およびデータストレージの機密性、完全性、真正性、および否認防止を保証するための方法を提供します。secure shell、OpenPGP、S/MIME、およびSSL/TLSのような多くのプロトコルは、暗号化およびデジタル署名機能のためにRSAに依存しています。, ブラウザは、インターネットのような安全でないネットワーク上で安全な接続を確立したり、デジタル署名を検証したりする必要があるため、明白な例 RSA署名検証は、ネットワーク接続システムで最も一般的に実行される操作の一つです。

RSAアルゴリズムが使用される理由

RSAは、二つの大きな素数の積である大きな整数を因数分解することの難しさから、そのセキュリティを, これら二つの数を掛けるのは簡単ですが、合計から元の素数を決定する-または因数分解-は、今日のスーパーコンピュータを使用してかかる時間のために実

公開鍵生成アルゴリズムと秘密鍵生成アルゴリズムは、RSA暗号の中で最も複雑な部分です。 Rabin-Miller素数検定アルゴリズムを用いて二つの大きな素数pとqを生成した。 この数値は、公開鍵と秘密鍵の両方で使用され、それらの間のリンクを提供します。, 通常ビット単位で表されるその長さは、キーの長さと呼ばれます。

公開鍵は、モジュラスnと公開指数eで構成され、通常は65537に設定されます。 公開鍵は誰とでも共有されるので、e図は秘密に選択された素数である必要はありません。

秘密キーは、モジュラスnと秘密指数dからなり、拡張ユークリッドアルゴリズムを使用して計算され、nの全点に関する乗法逆行列を見つけます。,

RSAアルゴリズムがどのように機能するかの詳細な説明については、以下のビデオを読むか、または見てください。

RSAアルゴリズムはどのように機能しますか?

Aliceは、P=11とq=13の二つの素数を選択することによってRSA鍵を生成します。 モジュラスはn=p×q=143である。 トーティエントは、n∈(n)=(p−1)x(q−1)=120である。 彼女はRSA公開鍵eのために7を選択し、拡張ユークリッドアルゴリズムを使用してRSA秘密鍵を計算し、彼女に103を与えます。

BobはAliceに暗号化されたメッセージMを送信したいので、この例では(143,7)であるRSA公開鍵(n,e)を取得します。, 彼の平文メッセージはちょうど番号9であり、暗号文Cに暗号化されています。

Me mod n=97mod143=48=C

アリスがボブのメッセージを受信すると、アリスはRSA秘密鍵(d,n)を使用して次のように復号化します。

Cd mod n=48103mod143=9=M

rsaキーを使用してメッセージにデジタル署名するには、aliceはハッシュを作成する必要があります-bobへのメッセージのメッセージダイジェスト-rsa秘密キーでハッシュ値を暗号化し、そのキーをメッセージに追加します。, Bobができることを確認のメッセージが送られてきたアリスの改ざんによる復号化ハッシュ値の彼女の公開鍵があります。 この値が元のメッセージのハッシュと一致する場合、アリスだけがそれを送信できました-認証と否認防止-そしてメッセージは彼女が書いたとおりです-

Aliceは、もちろん、Bobに送信する前に、BobのRSA公開鍵(機密性)でメッセージを暗号化することができます。 デジタル証明書には、証明書の所有者を識別する情報と、所有者の公開キーも含まれています。, 証明書はそれらを発行する認証局によって署名され、公開鍵の取得と所有者の検証のプロセスを簡素化できます。

RSAセキュリティ

RSAセキュリティは、大きな整数を因数分解する計算の難しさに依存しています。 計算能力が増加し、より効率的な因数分解アルゴリズムが発見されるにつれて、より大きな数を因数分解する能力も増加する。

暗号化強度はキーサイズに直接結びついており、キーの長さを倍増すると、パフォーマンスが損なわれますが、強度が急激に増加する可能性があります。, RSAキーは通常1024ビットまたは2048ビットの長さですが、専門家は1024ビットのキーはもはやすべての攻撃に対して完全に安全ではないと考えています。 これが、政府と一部の業界が2048ビットの最小キー長に移行している理由です。

量子コンピューティングにおける予期せぬ突破口を除いて、より長い鍵が必要とされるまでには何年もかかりますが、楕円曲線暗号(ECC)は、公開鍵暗号を実装するためのRSAの代替として、多くのセキュリティ専門家に支持されています。 より速く、より小さく、より効率的な暗号鍵を作成できます。,

最新のハードウェアとソフトウェアはECC対応であり、RSAよりもモバイルアプリに適しているため、コンピューティングパワーとバッテリリソース使用量が低い同等のセキュリティを提供できるため、人気は高まる可能性があります。 最後に、RSAの共同発明者であるAdi Shamirを含む研究者チームは、音響暗号解析を使用して4096ビットRSA鍵を作成することに成功しましたが、暗号化アルゴリズムは攻撃に対して脆弱です。