「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
対策技術 - 暗号
基礎 †
暗号の基礎
概念 †
何らかの意味のある文字列、バイト配列などを
- (1)「ある定められた約束事」に従い
- (2)「固有の値」を用いて
他の文字列、バイト配列などに変換すること。
用語 †
操作 †
- 上記の(1)の操作を暗号化。
- 逆の操作を復号(化)と言う。
アルゴリズムと鍵 †
- アルゴリズム
(1)は何らかの数学的な処理であり、
「暗号アルゴリズム」、「アルゴリズム」と言う。
- (2)は同じアルゴリズムを用いても
結果が変わるように与える「鍵」と言う。
- 暗号化に用いる鍵は、暗号化鍵
- 復号化に用いる鍵は、復号化鍵
- 鍵は文字列、バイト配列で
データ長が長い程、暗号化の強度は高まる。
秘匿、署名 / 認証 †
暗号技術には、秘匿、署名 / 認証の機能がある。
秘匿 †
暗号化、復号化
署名 / 認証 †
主に、署名 / 認証の機能で使用する。
暗号方式 †
主に、暗号化の機能で使用する。
古典的方式 †
- 転置式暗号
文字の位置を入れ替える。
- 換字式暗号
文字を記号と入れ替える。
※ 現在はほとんど使用されない。
- ストリーム暗号
- ビット、バイト、文字毎に処理
- ブロック暗号より仕組みが単純で高速
- 暗号化してもデータサイズが変化しない(通信処理に適する)。
- 鍵ストリーム(擬似乱数列)
・を、共通鍵や初期化ベクトル(IV)をシード(初期値)としてを生成。
・と、平文 / 暗号文との排他的論理和で暗号化 / 復号化する。
- ブロック暗号
- ブロック毎に処理
- ストリーム暗号より仕組みが複雑で低速
- 空きはパディングするのでデータサイズが増加する。
- そのままでは、暗号強度が弱いので、鍵ストリーム(擬似乱数列)代替として、
前ブロック値を平文 / 暗号文との排他的論理和に使用する暗号利用モードがある。
などがある。
比較 †
- 特徴と仕組
# | 暗号方式 | 特徴 | 仕組 |
1 | 秘密鍵・暗号化 | 暗号化と復号化に同じ鍵を使う | 送信者と受信者は秘密鍵を共有する。 送信者と受信者は秘密鍵を使用して暗号化 / 復号化する。 |
2 | 公開鍵・暗号化 | 暗号化と復号化に異なる鍵を使う | 送信者は公開鍵を使用して暗号化し、 受信者は秘密鍵を使用して復号化する。 |
- メリットとデメリット
# | 暗号方式 | メリット | デメリット |
1 | 秘密鍵・暗号化 | 簡単、高速 | 鍵の共有やマネジメントが複雑 |
2 | 公開鍵・暗号化 | 鍵の共有が不要でマネジメントが容易 | 複雑、低速 |
セキュア通信 †
VPN †
IPSec †
SSL/TLS †
その他 †
無線LANセキュリティ †
可用性対策 †