SSHの暗号化原則、RSA非対称暗号化アルゴリズムの学習と理解

ここではSSHではなく、3つの従来のJavaフレームワークが、アプリケーション層での確立Secure Shellプロトコルや、多くの場合、シェルCilentのセキュアSSHを使うおなじみのLinux友人に基づいて、トランスポート層の話についての最初の文ツールは、この記事では、学び、理解することも、RSA非対称暗号化アルゴリズムを使用して一緒に行うために、原則的に暗号化ツール、暗号化されたSSHを学習の原理に基づいています。

    非対称暗号化アルゴリズム

    日々の生産作業では、私たちは頻繁に通信する必要があり、開発者は多くの場合、データのセキュリティを確保するために、データの暗号化と復号化操作のためのデータを必要とします。データ暗号化アルゴリズムは、非対称暗号化と非対称暗号化二種類、一般的に使用されるDES、トリプルDES、AES対称暗号化属し、漏れすなわち、データの暗号化と復号化キーによって実行されてもよい、データキーイベント、送信不安。

    数学の問題からコア非対称暗号化アルゴリズムは、それが完了するために、公開鍵と秘密鍵、暗号化と復号化処理の概念が存在する、参加して、同時に2つのキーを必要とします。私たちはしばしば、「公開鍵暗号、秘密鍵暗号化」や「秘密鍵暗号化、復号化するための公開鍵」非対称暗号化アルゴリズムは、非対称暗号化の範疇に属し、RSAアルゴリズムの記事はまた、典型的な言及を言います。データを暗号化するために同じ秘密鍵を解読できる秘密鍵を使用する必要があります公開鍵暗号化データは、公開鍵で復号化することができます。

    対称暗号化と比較すると、非対称暗号化セキュリティが改善されているが、明らかな欠点が、非対称暗号化および復号化効率が対称暗号化よりもはるかに小さいがあります。そのため、非対称暗号化は、多くの場合、フィールド内のいくつかの高セキュリティアプリケーションや要件に使用されています。

    典型的なRSA非対称暗号化

    RSAの暗号化アルゴリズムは、典型的な数学の問題の多くを因数分解に基づいて非対称暗号化アルゴリズム、それはまた、最も広く使用されている非対称暗号化アルゴリズムである、のマサチューセッツ工科大学(MIT)による1978年3学ぶ:ロナルド・リベスト、アディ・シャミアとレオナルド・エーデルマンが共同提案しました。

    その原理は、我々はメッセージBメッセージの送信者Aと受信者を想定してシンプルで、次の手順では、我々は、送信されたメッセージの暗号化を完了することができます:

  1. メッセージの送信者は、地元の公開鍵と秘密鍵で鍵ペアを作成し、

  2. メッセージの送信者が生成した公開鍵がメッセージの受信者Bに送信されます。

  3. B、場合によって送信データの公開鍵によって受信された暗号化され、データA の秘密鍵の完全な通信を解読します。

  4. 逆に、場合によってBへの送信データA、秘密鍵データ、Bによって受信されたデータを暗号化する公開鍵暗号解読のために。

    以来、公開鍵は、メッセージの送信者にさらされているメッセージ受信Bは、このようにいくつかのセキュリティ上のリスクがあるようならば、公開鍵 Aによるデータ送信処理で漏れ、秘密鍵暗号化されたデータを復号化することができます。

    あなたはより安全な暗号化されたメッセージングモデルを確立したい場合はBによるメッセージパッシング、Aを実行し、メッセージの送信者とメッセージの受信者各構築のための鍵のペアを必要とし、互いの公開鍵にさらされた、公開鍵 Bを介してデータ、受信したメッセージBを暗号化し、秘密鍵、Bにより、復号化するため、およびその逆の公開鍵のメッセージを受信した後、によって暗号化秘密鍵復号化のために。

    もちろん、データ転送がシミュレートされ、このようにリスクがあるかもしれない、我々はさらに、デジタル署名技術のセキュリティを強化することができます。非対称暗号化および復号化の存在のために何回も、この方法では、効率性とより深刻なをもたらします。   

    SSHの暗号化の原則

    原則SSHセキュアなプロトコルでは、対称暗号化と非対称暗号化アルゴリズムと併せて、以下を見てください:

    ここで明確化:

  1. まず、サーバは、非対称暗号化意志生成する公開鍵秘密鍵を

  2. 在客户端发起请求时,服务端将公钥暴露给客户端,这个公钥可以被任意暴露;

  3. 客户端在获取公钥后,会先产生一个由256位随机数字组成的会话密钥,这里称为口令;

  4. 客户端通过公钥将这个口令加密,发送给服务器端;

  5. 服务器端通过私钥进行解密,获取到通讯口令;

  6. 之后,客户端和服务端的信息传递,都通过这个口令进行对称的加密。

    个人感觉,这样的设计在一定程度上提高了加解密的效率,不过,与客户端服务端各构建一套密钥对的加解密方式相比,在安全性上可能有所下降。在上面所述的通过口令进行加密的过程中,数据也是可以被窃听的,不过由于密钥是256个随机数字,有10的256次方中组合方式,所以破解难度也很大。相对还是比较安全的。服务端和客户端都提前知道了密钥,SSH的这种方式,服务端是通过解密获取到了密钥。

    DH密钥交换算法

    SSH的原理,是基于RSA非对称加密,RSA是基于大数的因式分解数学难题,下面要提到的DH密钥交换算法则是基于有限域上的离散对数难题。

    DH算法是一种密钥协商算法,只用于密钥的分配,不用于消息的加解密。它提供了一种安全的交换密钥的方式,通过交换的密钥进行数据的加解密。就像SSH原理中,口令的交换,不过DH算法更安全。

    我们举个例子来进行说明,假设有A、B两方,A作为发送者,B作为接收者。通过下面的几个步骤就可以构建出一个只属于双方的密钥口令,如下:

  1. 首先A、B双方,在通信前构建专属于自己的密钥对,假设分别是公钥A,私钥A,公钥B,私钥B;

  2. A将自己的公钥A暴露给B,B通过私钥B公钥A经过一定的运算产生出本地的密钥B

  3. 同样,B将自己的公钥B暴露给A,A通过私钥A公钥B经过一定的运算产生出本地的密钥A

  4. 最后,这个算法有意思的一点就是,密钥A密钥B是一致的,这样A、B双方就拥有了一个属于双方的“秘密”口令;

    DH算法的产生是,对称加密向非对称加密的过度,为后续非对称加密的产生和发展奠定了基础。

转载于:https://www.cnblogs.com/Alenliu/p/5040062.html

おすすめ

転載: blog.csdn.net/weixin_33896069/article/details/93470063