RSAアルゴリズムは非対称暗号アルゴリズムです。 非対称は、実際には二つの異なるキー、すなわち公開鍵と秘密鍵で動作することを意味します。 名前が説明しているように、公開鍵はすべての人に与えられ、秘密鍵は非公開に保たれます。

非対称暗号の例:

  1. クライアント(例えば、ブラウザ)はその公開鍵をサーバーに送信し、何らかのデータを要求します。
  2. サーバーは、クライアントの公開鍵を使用してデータを暗号化し、暗号化されたデータを送信します。
  3. クライアントはこのデータを受信し、それを復号化します。,

これは非対称であるため、第三者がbrowserの公開鍵を持っていても、browser以外の誰もデータを復号化することはできません。

アイデア! RSAの考え方は、大きな整数を因数分解することが困難であるという事実に基づいています。 公開鍵は二つの数で構成され、一つの数は二つの大きな素数の乗算です。 また、秘密鍵も同じ二つの素数から導出されます。 したがって、誰かが大きな数を因数分解できれば、秘密鍵は侵害されます。, したがって、暗号化強度は完全にキーサイズにあり、キーサイズを倍増または三倍にすると、暗号化の強度は指数関数的に増加します。 RSAキーは通常1024ビットまたは2048ビットの長さになりますが、専門家は1024ビットキーが近い将来に壊れる可能性があると考えています。 しかし、今までそれは実行不可能な仕事のようです。

RSAアルゴリズムの背後にあるメカニズムを学びましょう:

    >>公開鍵の生成:

  • 二つの素数noを選択します。P=53とQ=59とします。,ここで、公開鍵の最初の部分:n=P*Q=3127。
  • 私たちの公開鍵はnとeで作られています
  • >>秘密鍵を生成します:

    
    
  • Θ(n)を計算する必要があります:Θ(n)=(P-1)(Q-1)となるように、Θ(n)=3016
  • i次に、秘密鍵を計算します。d:d=(k*π(n)+1)/e整数k=2の場合、dの値は2011です。,

    これで、–公開鍵(n=3127およびe=3)および秘密鍵(d=2011)

    ここで、”こんにちは”を暗号化します。

    
    
  • 文字を数字に変換します。H=8およびI=9
  • したがって、暗号化されたデータは1394になります。
  • ここで、1394を復号化します。

  • したがって、暗号化されたデータは89
  • 8=hおよびi=9、つまり”こんにちは”になります。,

    以下は、小さな値に対するRSAアルゴリズムのC実装です。

    
    
    
    

    出力:

    Message data = 12.000000Encrypted data = 3.000000Original Message Sent = 12.000000

    この記事はMohit Gupta_omgúによって寄稿されています。 GeeksforGeeksが好きで、貢献したい場合は、以下を使用して記事を書くこともできますcontribute.geeksforgeeks.org またはあなたの記事を郵送する[email protected]のメインページに表示されるあなたの記事を参照してくださいし、他のオタクを助けます.