1. 序章

このチュートリアルでは、暗号化で素数が重要である理由を探ります。 これを行うには、特定の暗号システム、つまりRSAアルゴリズムを調べます。 RSAアルゴリズムのアプリケーションで使用されるメソッドには、暗号化を可能な限り安全に保つための多くの詳細が含まれていますが、ここではその主な側面に焦点を当てます。

2. 素数の特別な性質

すべての数は素数に因数分解できます。 一般に、数の素因数を見つけるのは非常に困難です。自然数のすべての素因数を見つけるには、最大で可能な因数で除算する必要があります。

多数の素数を見つけるのは非常に困難です。 一方、すでに素数が与えられている数を計算するのは非常に簡単です。

理想的には、素数である2つの大きな数を使用します。 次に、これら2つの積を計算して、メッセージを暗号化します。 Prime1とPrime2を単独で計算する簡単な方法がないため、復号化するには素数の1つが必要です。 ただし、これらの数値を正確に使用する方法の詳細に入る前に、さまざまな暗号化システムを見てみましょう。

3. 暗号システム

暗号化では、メッセージを暗号化するための2つの重要な方法があります。対称暗号化と非対称暗号化です。

対称の場合、両方の当事者が同じキーを共有します。 同じキーを使用して、メッセージの暗号化と復号化を行います。 2人だけが鍵を持っていて、たとえば直接会って安全に共有する方法がある限り、非常に安全です。

これで、このメソッドを実装するのは非常に難しいことが想像できます。 暗号化された電子メールを誰かに書きたい場合、秘密鍵を交換するために最初に彼と直接会う必要はありません。

そのため、非対称暗号化では、暗号化用と復号化用の2つの異なるキーがあります。1つのキーはメッセージの作成者用です。 メッセージを書き込んだ後、受信者からの公開鍵を使用してメッセージを暗号化できます。 このキーは、その名前が示すように公開されており、検索することができます。 キーデータベース内。 暗号化専用なので、公開しても害はありません。 一方、秘密鍵があります。 このキーは、メッセージの受信者である1人だけに表示されます。 彼はそれを使用して、受信したメッセージを復号化できます。

 

 

4. 暗号化に素数を使用する

2つのの異なる暗号化システムについて明確に理解したので、非対称暗号化の場合に公開鍵と秘密鍵を作成する方法を見てみましょう。

まず、テキストを直接暗号化することはできませんが、最初に数値に変換する必要があることに注意してください。 このプロセスはパディングと呼ばれ、各シンボルに番号を割り当てるリストで発生します。 次に、各番号を接続して別の番号を作成し、それを呼び出して暗号化します。 非常に簡単なパディングリストは、各文字をアルファベットの位置に割り当てるだけです。たとえば、「A」から1、「B」から2などです。 このリストでは非常に単純な単語しか使用できませんが、RSAの背後にある理論を理解するだけで十分です。

4.1. キーの作成

2番目の段落ですでに述べたように、既知の素数から多数を計算するのは非常に簡単です。 一方、既知の多数の要因を推測することは非常に困難です。 このメカニズムを次のプロセスで使用して、プライベートキーとパブリックキーの2つのキーを作成します。

  1. 2つのランダムで確率的に独立した素数を選択し、
  2. 両方の積を計算する
  3. 両方のファイ関数を計算します。
  4. 互いに素で、以下の自然数を選択してください
  5. モジュロの逆数を計算します。

次に、公開鍵を作成し、それらを使用してメッセージを暗号化します。 一方、暗号化されたメッセージを復号化するために使用するInverseは、秘密鍵です。 これをより明確に確認するために、暗号化と復号化のプロセスを見ていきます。

4.2. メッセージの暗号化と復号化

次に、公開鍵を使用してメッセージを暗号化します。

   

そしてそれを次のように復号化します:

   

ご覧のとおり、modの逆数がある場合にのみ、暗号化を反転できます。これらは、次のいずれかがある場合にのみ取得できます。

  • 秘密鍵
  • の主な要因

近い将来、ラージの素因数を計算することは不可能であるため、秘密鍵なしでメッセージを復号化する方法はありません。 これにより、システムは非常に安全になります。

5. 例

アルゴリズムがどのように機能するかを理解するために、例を計算してみましょう。

5.1. キーの作成

暗号化したい文字は「O」で、アルファベットの15番目の数字なので数字に変換します。 次に、ランダムな素数を選択します。 物事を簡単にするために、素数とを選択します。

次に、素数のファイ関数を次のように構築します。

また、互いに素な数を選択します。29を取りましょう。

計算する必要があるのは、の逆数だけです。 ユークリッドアルゴリズムを使用して、53と計算します。

したがって、公開鍵があります。 また、秘密鍵。

5.2. 暗号化と復号化

次に、番号を暗号化します。

   

これにより、暗号化されたメッセージが作成され、文字「O」の略であることが誰にもわからなくても、受信者に安全に転送できます。

メッセージを復号化するには、53である逆が必要です。

   

ここでもう一度アルファベットを見ると、15番目の文字が「O」であることがわかります。これは、メッセージの暗号化と復号化に成功したことを意味します。

6. 結論

これまで見てきたように、安全で非対称な暗号化システムを生成するために、素数に多数を因数分解できないことを利用できます。