暗号ライブラリの比較
From Wikipedia, the free encyclopedia
暗号ライブラリの比較(あんごうライブラリのひかく)では、暗号化アルゴリズムを扱い、サポートする各機能を呼び出すAPIを持つ暗号ライブラリを比較する。
鍵処理
ハッシュ関数
サポートされている暗号化ハッシュ関数を比較する。メッセージのMACタグを生成するために使用される暗号を含む。ここではハッシュ関数は、任意の長さのメッセージから、元のメッセージの復号が実質不可能な固定サイズの出力を生成するものとして定義する。
| 実装 | MD5 | SHA-1 | SHA-2 | SHA-3 | RIPEMD-160 | Tiger | Whirlpool | GOST | Stribog | BLAKE2 |
|---|---|---|---|---|---|---|---|---|---|---|
| Bouncy Castle | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| CryptoComply | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| cryptlib | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No |
| Crypto++ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
| Libgcrypt | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| libsodium | No | No | Yes | No | No | No | No | No | No | Yes |
| OpenSSL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| wolfCrypt | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes |
MACアルゴリズム
メッセージ認証コード(MAC)アルゴリズムの実装を比較する。MACは、メッセージを認証するために使用される短い情報である。メッセージが指定された送信者から送信されたもので(真正性)、送信中に変更されていない(完全性)ことを確認するために用いられる。
| 実装 | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA2 | Poly1305-AES | BLAKE2-MAC |
|---|---|---|---|---|---|
| Bouncy Castle | Yes | Yes | Yes | Yes | Yes |
| CryptoComply | Yes | Yes | Yes | Yes | Yes |
| cryptlib | Yes | Yes | Yes | No | No |
| Crypto++ | Yes | Yes | Yes | Yes | Yes |
| Libgcrypt | Yes | Yes | Yes | Yes | Yes |
| libsodium | No | No | Yes | Yes | Yes |
| OpenSSL | Yes | Yes | Yes | Yes | Yes |
| wolfCrypt | Yes | Yes | Yes | Yes | Yes |
ブロック暗号
ストリーム暗号
ストリーム暗号の実装を比較する。ストリーム暗号は、擬似乱数暗号の文字列と結合した平文文字列を使用する。ストリーム暗号は通常、ブロック暗号より高速でハードウェアの複雑さは減るが、攻撃の影響を受けやすくなる。
| 実装 | RC4 | HC-256 | Rabbit | Salsa20 | ChaCha | SEAL | Panama | WAKE | Grain | VMPC | ISAAC |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Bouncy Castle | Yes | Yes | No | Yes | Yes | No | No | No | Yes | Yes | Yes |
| CryptoComply | Yes | Yes | No | Yes | Yes | No | No | No | Yes | Yes | Yes |
| cryptlib | Yes | No | No | No | No | No | No | No | No | No | No |
| Crypto++ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Libgcrypt | Yes | No | No | Yes | Yes | No | No | No | No | No | No |
| libsodium | No | No | No | Yes | Yes | No | No | No | No | No | No |
| OpenSSL | Yes | No | No | No | Yes | No | No | No | No | No | No |
| wolfCrypt | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |