小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

WEBでの暗号の基礎知識

◆暗号とは

暗号とは、大辞泉では、『通信の内容が相手以外にわからないように、当事者の間だけで決めた記号』となっています。
通信の内容の元の文章を「平文」といい、これを相手以外にわからないように「暗号文」に変換することを暗号化といいます。
一方、「暗号文」を元の文章に戻すことを復号化といい、暗号化や復号化を行う手順を「アルゴリズム」といいます。
また、当事者の間だけで決めた暗号化に用いるパラメータのことを「鍵」といいます。


整理すると、暗号には、以下の4つの要素があります。

  1. 平文
  2. 暗号文
  3. アルゴリズム

◆シーザー暗号での例

この要素について、過去記事の「シーザー暗号」について当てはめてみると以下の感じです。
(「I LOVE YOU」という言葉を、アルファベット順に5文字後ろの文字に置き換えると「N QTAJ DTZ」になる)

  • 平文は、「I LOVE YOU」です。
  • 暗号文は、「N QTAJ DTZ」です。
  • アルゴリズムは、「アルファベット順に置き換える」です。
  • 鍵は、「5文字」です。

尚、「5文字」の鍵は、暗号化と復号化で一つ(共通)ですが、暗号化は5文字後ろにずらし、復号化は5文字前にずらします。
これは、ドアの鍵が一つで、右に回すとロックされ、左に回すとアンロックされるのと同じ感じです。

◆暗号技術の分類

鍵には、共通鍵暗号方式と公開鍵暗号方式があります。
また、両方を使う「共通鍵を公開鍵方式を用いて暗号化する」方式(ハイブリッド方式)もあります。
これらに関しては『httpsってわかりますか? - 燈明日記』を参照してください。


共通鍵暗号方式と公開鍵暗号方式には、各々アルゴリズム複数もっています。
共通鍵暗号方式アルゴリズムの種類には、ブロック暗号化方式とストリーム暗号方式の2つがあります。
また、ブロック暗号化方式には、ブロック暗号化モードを複数もっています。
ブロック暗号化モードは、ブロック化されることによるブロック単位での「暗号文一致攻撃」を防ぎやすくするモードです。


整理すると、以下のようになっています。

  • 共通鍵暗号方式アルゴリズム
    • ブロック暗号化方式
      • DES (Data Encryption Standard)
      • AES (Advanced Encryption Standard)
      • など
      • ブロック暗号化モード
        • ECB (Electronic Code Book Mode)
        • CBC (Cipher Block Chaining Mode)
        • OFB (Output Feed Back)
        • CFB (Cipher Feedback Mode)
    • ストリーム暗号方式
  • 公開鍵暗号方式アルゴリズム
    • RSA(安全性の根拠は「大きな数の素因数分解が難しいこと」)
    • ECC (安全性の根拠は「楕円曲線上の離散対数問題が難しいこと」)
    • El Gamal(安全性の根拠は「有限体上の離散対数問題が難しいこと」)
    • など


◆参考リンク