WEBでの暗号の基礎知識
◆暗号とは
暗号とは、大辞泉では、『通信の内容が相手以外にわからないように、当事者の間だけで決めた記号』となっています。
通信の内容の元の文章を「平文」といい、これを相手以外にわからないように「暗号文」に変換することを暗号化といいます。
一方、「暗号文」を元の文章に戻すことを復号化といい、暗号化や復号化を行う手順を「アルゴリズム」といいます。
また、当事者の間だけで決めた暗号化に用いるパラメータのことを「鍵」といいます。
整理すると、暗号には、以下の4つの要素があります。
- 平文
- 暗号文
- アルゴリズム
- 鍵
◆シーザー暗号での例
この要素について、過去記事の「シーザー暗号」について当てはめてみると以下の感じです。
(「I LOVE YOU」という言葉を、アルファベット順に5文字後ろの文字に置き換えると「N QTAJ DTZ」になる)
- 平文は、「I LOVE YOU」です。
- 暗号文は、「N QTAJ DTZ」です。
- アルゴリズムは、「アルファベット順に置き換える」です。
- 鍵は、「5文字」です。
尚、「5文字」の鍵は、暗号化と復号化で一つ(共通)ですが、暗号化は5文字後ろにずらし、復号化は5文字前にずらします。
これは、ドアの鍵が一つで、右に回すとロックされ、左に回すとアンロックされるのと同じ感じです。
◆暗号技術の分類
鍵には、共通鍵暗号方式と公開鍵暗号方式があります。
また、両方を使う「共通鍵を公開鍵方式を用いて暗号化する」方式(ハイブリッド方式)もあります。
これらに関しては『httpsってわかりますか? - 燈明日記』を参照してください。
共通鍵暗号方式と公開鍵暗号方式には、各々アルゴリズムを複数もっています。
共通鍵暗号方式アルゴリズムの種類には、ブロック暗号化方式とストリーム暗号方式の2つがあります。
また、ブロック暗号化方式には、ブロック暗号化モードを複数もっています。
ブロック暗号化モードは、ブロック化されることによるブロック単位での「暗号文一致攻撃」を防ぎやすくするモードです。
整理すると、以下のようになっています。
◆参考リンク