暗号をまとめした。種類の違いや安全性の観点からまとめています。違いを確認してください。
本ページは著者が学習のため自ら調査した内容です。内容に誤りがある可能性がありますので、参考程度にしてください。
(2014年4月現在)
1.共通鍵方式
共通鍵では、暗号化、複合化で同じ鍵を使います。処理は高速ですが、事前に共通鍵を安全に交換する必要があります。
SSL通信では、鍵の交換は「公開鍵方式」で行いますが、実際の通信は「共通鍵方式」で行います。
暗号名 | 仕様 | 安全性 |
DES(Data Encryption Standard) | 56ビットの鍵 | 現在では安全でないと見なされている |
AES(Advanced Encryption Standard) | ブロック長は128ビット、鍵長は128ビット・192ビット・256ビット | |
Triple DES(トリプル DES) | ・DESを暗号化→複合化→暗号化と異なるキーで3回行う。 ・鍵長は112ビットあるいは168ビット。 (暗号化キーが同一の2key-DESは112ビット、すべて異なるキーの3key-DESは168ビット)) ・すべてのキーを同一にした場合、DESと同等となる。 |
2.公開鍵方式
暗号化する鍵と複合化する鍵が異なります。暗号化する鍵は公開して誰でも入手できるようにします。処理は遅いですが、暗号鍵を公開することができるという利点があります。(事前に鍵の交換が不要です)。SSL通信でのサーバ証明及び共通鍵の交換で使用します。
暗号名 | 仕様 | 安全性 |
DSA(Digital Signature Algorithm) | ・デジタル署名 ・鍵長は1024,2048,,3072ビットなど ・署名サイズは320ビット ・離散対数問題を使用したデジタル署名アルゴリズム。 |
長い鍵長を使用すれば安全とされている。 |
RSA(Ronald Rivest、Adi Shamir、Leonard Adleman) | ・暗号 (Cipher) とデジタル署名 ・2014年現在では2048ビット以上を使用すること。 ・大きい合成数の素因数分解問題が困難であることを利用した公開鍵式暗号。 ・署名サイズは鍵長と同程度 |
1024ビットは2010以後は使用は危険とされている。 2048ビットは2030年を目処ごろには危険になるといわれている。 2000年に特許が切れたため、誰でも使用可能となった。 |
3.ハッシュ関数
ハッシュ関数とはあるデータから一定の長さの文字列を出力する関数のこと。証明書のデジタル署名や電子メールの完全性の証明などに使用する。
暗号名 | 仕様 | 安全性 |
MD5(Message Digest Algorithm 5) | ・128ビットのハッシュ値を出力する | 安全ではない。コリジョンを求める攻撃方法が知られている。 |
SHA-1 (Secure Hash Algorithm -1) | ・160ビットのハッシュ値を出力する | 安全ではないと言われており推奨されていない。 |
SHA-2(Secure Hash Algorithm -2) | (1)SHA-224,SHA-256 ・224、256ビットのハッシュ値を出力する (2)SHA-384,SHA-512,SHA-512/224,SHA-512/256 ・それぞれ384,512,224,256ビットのハッシュ値を出力する |
2014年現在では有効な攻撃は見つかっていないとされている。 |
SHA-3(Secure Hash Algorithm -3) | SHA3-224、SHA3-256、SHA3-384、SHA3-512 ・それぞれ224,256,384,512ビットのハッシュ値を出力する |
2014年現在では SHA-2と同様に安全とされている。 |
Redhat Linuxで MD5、SHA-1、SHA-2の計算
Redhat Linux のGrubでパスワードハッシュを生成
スポンサード リンク