SSLは理論から実践まで(一)——暗号学の関連概念


1.基本概念
  • 暗号学(cryptology):情報をどのように隠密に伝達するかを研究する学科.
  • 明文(plaintext):暗号化された文字はありません.
  • 暗号文(ciphertext):暗号化された文字.
  • 暗号化(encryption):明文メッセージを暗号化メッセージに変更します.
  • 復号(decryption):暗号メッセージを明文メッセージに変更します.
  • アルゴリズム(algorithm):入力テキストを取得し、出力テキストを生成します.
  • 暗号化アルゴリズム(encryption algorithm):送信者が暗号化するアルゴリズム.
  • 復号アルゴリズム(decryption algorithm):受信者が復号するアルゴリズム.
  • 鍵(secret key):暗号文を暗号文に変換したり、暗号文を明文に変換したりするアルゴリズムに入力されたパラメータである秘密の鍵.鍵は対称鍵と非対称鍵に分けられる.

  • 2.対称鍵暗号化と非対称鍵暗号化
     対称鍵暗号化(Symmetric Key Cryptography):暗号化と復号化は同じ鍵を使用します.利点は、大きなデータ量を暗号化するのに適しているが、鍵管理が困難であることです.非対称鍵暗号化(Asymmetric Key Cryptography):暗号化と復号化には異なる鍵が使用されます.1つの公開パブリケーション、すなわち公開鍵、もう1つはユーザ自身が秘密に保存する、すなわち秘密鍵である.情報送信者は公開鍵で暗号化し,情報受信者は秘密鍵で復号する.公開鍵メカニズムは柔軟であるが,暗号化と復号化の速度は対称鍵暗号化よりはるかに遅い.従って、実際の応用では、例えば、対称鍵暗号化システムは、対称鍵暗号化システムではなく、大量のデータ情報を格納するために使用され、暗号化鍵に使用されるのが一般的である(ポイントであるため、鍵交換アルゴリズムの使用が示される).
    3.鍵交換アルゴリズム
    対称暗号化アルゴリズムを使用する場合、鍵交換は大きな難題であるため、Whitfield DiffieとMartin HellmanはDiffie-Hellman鍵交換プロトコル/アルゴリズム(Diffie-Hellman Key Exchange Agreement/Algorithm)と呼ばれる奇妙な鍵交換プロトコルを提案した.Diffie-Hellman鍵交換アルゴリズムの原理:
    (1)Alice Bob       n g,        
    
    (2)Alice         x,   A  :A=gx mod n
    
    (3)Alice A  Bob
    
    (4)Bob           y,   B  :B=gy mod n
    
    (5)Bob B  Alice
    
    (6)      K1  :K1=Bx mod n
    
    (7)      K2  :K2=Ay mod n
    
     K1=K2,  Alice Bob         
    

    4.データ要約アルゴリズム
    ハッシュアルゴリズム、ハッシュアルゴリズムとも呼ばれる.主な機能は、すべてのデータに対して指紋情報を抽出することによって、データの完全性を検証することであり、すなわち、送信後および受信前にメッセージが改ざんされないことを保証することである.SSLで用いられるハッシュアルゴリズムはMD 5,SHAである.
    5.デジタル証明書
    証明書には、ユーザの個人情報とその公開鍵情報が含まれ、認証センターの署名情報も添付されている.その役割は私たちの身分証明書に似ていて、身分を証明するために使用されます.
    6.デジタル署名
      デジタル署名技術は、要約情報を送信者の秘密鍵で暗号化し、原文とともに受信者に送信する.受信者は、暗号化された要約情報を復号するには、送信者の公開鍵のみを使用し、受信した原文に対してHASH関数を使用して要約情報を生成し、復号された要約情報と比較する.同じ場合、受信した情報は完全であり、伝送中に変更されていないことを示します.そうしないと、説明情報は変更されているので、デジタル署名は情報の完全性を検証することができます.
    7.簡単にまとめる
      SSLで鍵交換アルゴリズムを使用して鍵を交換する.鍵を使用してデータを暗号化する.データ要約アルゴリズムを使用して、データの完全性を検証します.デジタル証明書を使用して自分の身分を証明します.さて、暗号学の概念についてはここまで、SSL:SSL理論から実践(二)--SSLについてご紹介します
    リファレンス
    1.SSLプロトコルの詳細2.SSL/TLSプロトコルを流行させる:SSL/TLSを深く解読して実現する.Wiresharkを使用してSSL/TLS握手プロセスを観察する-双方向認証/一方向認証4.Android 6.0 SSL通信5.SSL/TLSの原理とインターネットがどのように動作するか(1-5)6.JDKの証明書生成と管理ツールkeytool 7.証明書に関するもの(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P 12など)