共通鍵暗号 / 公開鍵暗号
cover
おすすめ
暗号は「共通鍵暗号方式」と「公開鍵鍵暗号方式」の2種類の形式に大きく分類されます。
当ページでは、共通鍵暗号方式と公開鍵鍵暗号方式の仕組みや使われ方などについてまとめています。
共通鍵暗号方式共通鍵暗号のアルゴリズムの種類ストリーム暗号方式ブロック暗号方式ブロック暗号の暗号モード公開鍵暗号方式利用例① 相手の公開鍵で暗号化して情報を送信する場合利用例② 自身の秘密鍵で暗号化して情報を送信する場合公開鍵暗号の種類ハイブリッド方式
共通鍵暗号方式
共通鍵暗号方式とは、暗号化と復号化に同じ鍵を使う方式。
- 利点:暗号化・復号化が高速(主に排他的論理和を使うため、処理が単純なため)
- 欠点:鍵の受け渡し時に第三者に鍵を盗まれるリスクがある
共通鍵暗号のアルゴリズムの種類
共通鍵暗号は、暗号化・復号化を一度に行う単位によって、「ストリーム暗号方式」と「ブロック暗号方式」の2種類に分類される。
ストリーム暗号方式
ストリーム暗号方式とは、ビット・バイト単位で暗号化・復号化する共通鍵暗号のこと。
主なストリーム暗号は以下の通り。
暗号名 | 概要 |
---|---|
RC4(Rivest's Cipher 4) | ビット単位で暗号化。解読の危険有 |
KCipher-2 | 処理が高速 |
ブロック暗号方式
ブロック暗号方式とは、ブロック(規定のビット数)単位で暗号化・復号化する共通暗号のこと。
主なブロック暗号は以下の通り。
暗号名 | 概要 |
---|---|
DES (Data Encryption Standard) | ブロック長:64bit固定,鍵長:3種類から選択可 |
Triple DES | DESを異なる鍵を利用して三重適用 |
AES (Advanced Encryption Standard) | ブロック長:3種類から選択可,鍵長:3種類から選択可 鍵長によって段数(ラウンド数)が決まる。 |
Camellia | 暗号と復号が同一手順 。メモリ容量が少ないICカード等に利用 |
IDEA |
ブロック暗号の暗号モード
ブロック長以上の長い文を暗号化する場合、ブロック暗号を繰り返し利用する必要がある。
この繰り返しの際のルールを
暗号モード
と呼ぶ。主な暗号モードの種類は以下の4種である。
- ECB(Electronic Code Book)
- CBC(Cipher Block Chaining)
- CFB(Cipher Feedback)
- OFB(Output Feedback)
公開鍵暗号方式
公開鍵暗号方式とは、暗号化と復号化に異なる鍵を使う方式。
- 利点:暗号を解くことが非常に困難。通信相手の数が増えても必要な鍵の数は変わらない。
- 欠点:データの暗号化に大きな負荷がかかる(送受信する情報量に比例)
利用例① 相手の公開鍵で暗号化して情報を送信する場合
相手の公開鍵で暗号化して情報を送信する場合、第三者の盗聴を防止することができる。
利用例② 自身の秘密鍵で暗号化して情報を送信する場合
自身の秘密鍵で暗号化して情報を送信する場合、以下の事が可能となる。
- 送信データの改竄検知
- 送信者のなりすまし検知
- 送信者の事後否認防止
下記の図では
デジタル署名
(データが通信途中で改ざんされていないことを証明するための仕組み)の動作を示す。公開鍵暗号の種類
種類 | 概要 | 安全な鍵長 | フルネーム |
---|---|---|---|
RSA | 同じ鍵ペアを暗号化と署名の両方に利用できる。 大きな数の素因数分解の困難さを利用する。 | 2048bit | Rivest Shamir Adleman |
DH鍵交換 | 鍵配送アルゴリズム。 離散対数問題を利用する。 | Deffie-Hellman | |
DSA | デジタル署名のためのアルゴリズム(暗号化機能はない) 有限体上の離散対数問題を利用する。 | 2048bit | Digital Signature Algorithm |
楕円曲線暗号 | 楕円曲線上の離散対数問題を利用。 RSAの後継として注目されている。 | Elliptic Curve Cryptography(ECC) | |
ECDSA | DSAに楕円曲線暗号を利用 デジタル署名のためのアルゴリズム。 | 224bit | Elliptic Curve Digital Signature Algorithm |
ハイブリッド方式
公開鍵暗号方式で鍵を送信 → 共通鍵暗号方式で情報通信