ITストラテジスト試験(共通鍵暗号方式と公開鍵暗号方式)

二者間の通信を暗号化する際、一般的なのが共通鍵暗号方式と公開鍵暗号方式

 

◼︎共通鍵暗号方式

暗号化の鍵と復号化する鍵が同一

  1. 送信側が、データを「共通鍵」で暗号化し、受信側へ送信
  2. 受信側が受け取ったデータを、同じ「共通鍵」で復号化し、データを取得

主な種類:DES、Triple-DES、IDEA、RC2、RC4、RC5、CAST-128、AES

 

◼︎公開鍵暗号方式

暗号化/復号化する際の鍵に、「公開鍵」と「秘密鍵」を用いる
一般的には、受信側が「公開鍵」と「秘密鍵」を持っていて、「公開鍵」は ”誰でも取得できるオープンな鍵”で、「秘密鍵」は ”受信側のみ保持している鍵”

  1. 送信側は、受信側が公開している「公開鍵」を取得。「公開鍵」でデータを暗号化し、送信
  2. 受信側は、受け取ったデータを「(受信側のみ保持している)秘密鍵」で復号化し、データを取得

主な種類:DH、RSA、DSA、楕円曲線暗号(ECC)

 

SSLの暗号化通信は、大きく2段階(STEP)に分かれている

STEP1では「公開鍵暗号方式」で、通信内容を暗号化するための「共通鍵」を、クライアント/サーバー間で共有

  1. クライアントから、”SSL通信をしたい”と、サーバーへ要求
  2. サーバーは、了解し、SSL(サーバー)証明書と公開鍵を、クライアントへ送信
  3. クライアントは、受け取った公開鍵を用いて、(クライアント側で生成した)共通鍵を暗号化して、サーバーへ送信
  4. サーバーは、受け取った暗号データを、秘密鍵を用いて復号化し、共通鍵を取得

 最終的に「共通鍵」をクライアント/サーバー間で共有

 

STEP2は、STEP1で共有した共通鍵を用いた「共通鍵暗号方式」で、実際の通信データ(個人情報やログイン情報)を暗号化して通信

  1. クライアントが、通信データを共通鍵で暗号化しサーバーへ送信
  2. サーバーは、受け取った暗号データを共通鍵で復号化し、データを取得