基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,暗号化についてシンプルにまとめています。暗号化のしくみ,ブロック暗号とストリーム暗号,共通鍵暗号方式(秘密鍵暗号方式),公開鍵暗号方式,ハイブリッド暗号方式,暗号方式の種類について説明しています。特に,共通鍵暗号方式と公開鍵暗号方式については,そのしくみと鍵管理,使い方について,理解できるまで繰り返し,じっくり読んでみましょう。
暗号化
暗号化とは,「おはよう」などのふつうの文章(平文)を「くへるか」などの読めない文章(暗号文)に変換することをいいます。逆に,元のふつうの文章に戻すことを復号といいます。
暗号化のしくみ
暗号化には暗号アルゴリズムと鍵が必要です。暗号アルゴリズムとは,「平文の各文字を□文字ずらす」などという暗号化の方法のことをいい,鍵とは,この場合,「ずらす文字数」のことをいいます。
※ シーザー暗号…最もシンプルな暗号方式で,平文の各文字を3文字分シフトして暗号化する。
この場合,暗号化と復号には同じ鍵を使用し秘密にします。また,鍵の桁数を増やせば解読しにくくなり暗号強度も上がります。
ブロック暗号とストリーム暗号
ブロック暗号は,平文を固定長のブロックに分割して暗号化する方式です。ストリーム暗号は,平文をビット単位やバイト単位で暗号化する方式です。ストリーム暗号は,リアルタイム性が求められる通信に向いています。
暗号化の方式
共通鍵暗号方式(秘密鍵暗号方式)
シーザー暗号のように暗号化と復号に同じ鍵(共通鍵)を使う暗号方式を共通鍵暗号方式といいます。共通鍵は他人に知られてしまうと暗号文を復号されてしまいますので通信者間で秘密にします。共通鍵のことを秘密鍵,共通鍵暗号方式のことを秘密鍵暗号方式ともいいます。
※ 通信者間(Aさん,Bさん)で,あらかじめ同じ鍵を持っていなければならない。
利点
- 暗号化と復号にかかる時間が公開鍵暗号方式に比べて短い
処理が単純なので暗号化と復号にかかる時間が短く,データの暗号化などに使われています。
欠点
- 通信相手の数だけ鍵が必要
- 鍵の受け渡しが手間
共通鍵は通信相手と同じものを使用し秘密にしておかなければならないため,通信相手の数だけ必要になります。そのため,通信相手が増えると必要な鍵の数も増え,鍵管理の負担が大きくなります。
また,実際の通信に先立ち,通信相手に共通鍵を渡す必要があります。この鍵は気軽にやり取りすることはできません。鍵は通信相手に直接会って渡すなどします。
鍵の数
3人で通信する場合に必要な鍵の数は次のとおりです。
共通鍵は1人につき(3人-1)=2個(通信相手の数)必要なので,3人では2個×3人=6個…,となりそうですが,「Aさん ⇒ Bさん」,「Bさん ⇒ Aさん」のように二重に数えているので,2で割って3個になります。
したがって,n人で通信する場合に必要な鍵の数は次のようになります。
(n人-1)×n人÷2=n(n-1)2(個)
公開鍵暗号方式
公開鍵暗号方式では,対になった2種類の鍵(キーペア)を使用し,それぞれを暗号化と復号に使います。一方の鍵は自分の元で秘密にし(秘密鍵),もう一方の鍵は公開します(公開鍵)。
守秘や鍵共有
通信相手の公開鍵で暗号化した文書などは,通信相手の秘密鍵のみで復号できます。(秘密鍵を持っていない)他の人は復号できませんので,その文書などを読むことはできません(守秘)。また,この仕組みを利用して,共通鍵暗号方式で使用する共通鍵を送信することもできます(鍵共有)。
署名
送信者の秘密鍵で暗号化し,通信相手が送信者の公開鍵で復号するというように,守秘や鍵共有の場合とは逆の使い方をすることもできます。この場合,送信者が署名を行い本人であることを証明できます。
利点
- 自分の秘密鍵だけを管理すればよい
- 通信相手には自分の公開鍵を使用してもらうので鍵の受け渡しが簡単
欠点
- 暗号化と復号にかかる時間が共通鍵暗号方式に比べて長い
暗号化や復号の際の計算が複雑で処理が遅いため,データの暗号化などには,あまり向いていません。
鍵の数
1人が2種類の鍵(秘密鍵と公開鍵)を使用しますので,n人で通信する場合に必要な鍵の数は次のようになります。
n人×2種類=2n(個)
共通鍵暗号方式と公開鍵暗号方式の比較
共通鍵暗号方式 | 公開鍵暗号方式 | |
---|---|---|
処理時間 | 短い | 長い |
鍵 | 通信者間で共通鍵(秘密鍵)を使用 | 秘密鍵は手元で管理 公開鍵は通信相手が使用 |
鍵の管理 | 通信相手の数だけ管理する | 自分の秘密鍵だけを管理すればよい |
鍵交換 | 共通鍵(秘密鍵)の受け渡しが手間 | 公開鍵を渡せばよい |
鍵の数 (n人) | n(n-1)2 | 2n |
使い方 | 守秘 | 守秘や鍵共有,署名 |
ハイブリッド暗号方式
ハイブリッド暗号方式は,共通鍵暗号方式と公開鍵暗号方式を組み合わせた暗号方式です。
共通鍵暗号方式の処理が速いという利点と,公開鍵暗号方式の鍵の受け渡しが容易という特長を生かしています。
暗号方式の種類
代表的な暗号方式の種類を簡単にまとめておきます。各暗号方式については詳しく説明しませんので、興味がある人は調べてみてください。
共通鍵暗号方式
DES | ブロック暗号 56ビット | Data Encryption Standard。鍵の長さが短く,安全性が低い |
RC4 | ストリーム暗号 40~256ビット | Revest’s Cipher 4。WEP(無線LANの暗号技術)で使用されている。解読される恐れがある |
Triple DES (3DES) | ブロック暗号 | DESを3回繰り返して暗号化を行う 2-key Triple DES:安全性が低い 3-key Triple DES:168ビット 政府推奨 |
AES 政府推奨 | ブロック暗号 128,192,256ビット | Advanced Encryption Standard。DESの後継。排他的論理和の演算を繰り返し行う。繰り返す回数を段数といい,鍵の長さによって段数が決まっている |
Camellia (カメリア) 政府推奨 | ブロック暗号 128,192,256ビット | AESと同等の安全性。暗号化と復号が速く,消費電力が少ない |
KCipher-2 (ケーサイファー・ツー) 政府推奨 | ストリーム暗号 128ビット | 暗号化と復号が速い |
公開鍵暗号方式
RSA 政府推奨 | 守秘,署名 1024,2048ビット | Rivest Shamir Adleman。大きい数での素因数分解の困難さを安全性の根拠としている |
DH 政府推奨 | 鍵共有 | Diffie-Hellman。離散対数問題を安全性の根拠としている |
DSA 政府推奨 | 署名 | Digital Signature Algorithm。離散対数問題を安全性の根拠としている |
楕円曲線暗号 | Elliptic Curve Cryptography:ECC。RSAの後継。RSAより短い鍵長で同等の安全性が実現できる。処理も速い。楕円曲線上の離散対数問題を安全性の根拠としている ECDSA(Elliptic Curve Digital Signature Algorithm) 署名,政府推奨 ECDH(Elliptic Curve Diffie-Hellman) 鍵共有,政府推奨 |
※離散対数問題とは、鍵の推測を難しくする数学的な性質のことをいう。
まとめ
今回は,暗号化について,シンプルにまとめてみました。みなさん,理解できましたか?難しいようでしたら,もう一度,じっくり読んでみましょう。暗号化については,基本情報技術者試験や応用情報技術者試験など,実際の情報処理技術者試験でよく出題されます。しっかり,頑張りましょう。