暗号ライブラリの比較

暗号ライブラリの比較（あんごうライブラリのひかく）では、暗号化アルゴリズムを扱い、サポートする各機能を呼び出すAPIを持つ暗号ライブラリを比較する。 ^ 実際のcryptlibはFIPS 140検証されていないが、第三者の独自の商用製品の一部として使われたcryptlibが検証されている。 ^ Crypto ++は2003年から2008年の3回のFIPS 140検証を受けた。2016年にNISTはCrypto ++をHistorical Validation Listに移行。このによりFIPS検証が取り消され、連邦政府機関は検証された暗号としてはこのモジュールを使用することができなくなっている。 鍵処理には鍵生成アルゴリズム、鍵交換合意、公開鍵暗号標準が含まれる。 ^ 下位レベルのインターフェイス使用による。 ^ ライブラリは、デフォルトでPEMなしでX.509およびPKCS＃8エンコーディングを提供。公開鍵と秘密鍵のPEMエンコーディングでは、PEM Packが必要。 ^ a b c d e Public Key Cryptographic Standards（PKCS）は、実際のlibgcryptライブラリではないが、GnuPGフレームワークの一部でもある付随するライブラリとツールでサポートされている。 サポートされている暗号化ハッシュ関数を比較する。メッセージのMACタグを生成するために使用される暗号を含む。ここではハッシュ関数は、任意の長さのメッセージから、元のメッセージの復号が実質不可能な固定サイズの出力を生成するものとして定義する。 メッセージ認証コード（MAC）アルゴリズムの実装を比較する。MACは、メッセージを認証するために使用される短い情報である。メッセージが指定された送信者から送信されたもので（真正性）、送信中に変更されていない（完全性）ことを確認するために用いられる。 ブロック暗号の実装を比較する。ブロック暗号は、決定論的であり、対称鍵を用いて設定された数のビット（ブロックと呼ばれる）上で動作するものとして定義される。 各ブロック暗号は、実行可能な鍵サイズとブロック暗号モードに分割することができる。 ^ Crypto ++は、1990年代からGOSTの64ビット版を提供。2015年からGOSTの128ビット版は提供していない。 ^ libsodiumはAES-256のみを提供。AES-128、AES-192は提供していない。 ストリーム暗号の実装を比較する。ストリーム暗号は、擬似乱数暗号の文字列と結合した平文文字列を使用する。ストリーム暗号は通常、ブロック暗号より高速でハードウェアの複雑さは減るが、攻撃の影響を受けやすくなる。 ハードウェア暗号の使用可否を比較する。特定のハードウェアを利用できる場合、ライブラリは高速化、および/またはセキュリティを向上させることができる。 ^ PKCS＃11プロバイダ、または基本操作へのアクセスを提供するオペレータインターフェイスの実装を使用。 ^ AltiVecには、POWER4からPOWER8までのSIMD処理が含まれる。POWER8は、SSEやARMv8.1に似たAESアクセラレータ、SHA、PMULを提供するメモリー内暗号化を追加。 ^ Crypto ++は、Padlock乱数ジェネレータへのアクセスを提供。 AESアクセラレータのような他の機能は提供されていない。 ^ OpenSSL RDRANDのサポートは、ENGINEインターフェースを介して提供される。 RDRANDジェネレータはデフォルトでは使用されていない。 ^ Crypto ++はオブジェクトレベルでスレッドセーフである。インスタンス間で共有データはない。2つの異なるスレッドが同じオブジェクトにアクセスする場合、ロックはユーザーが行う必要がある。 ^ Validated FIPS 140 Cryptographic Modules, NIST.gov, retrieved 2015-12-22 ^ “GnuTLS help mailing list” (2024年3月20日). 2024年6月17日閲覧。 ^ Downloading and installing NaCl, Bernstein, Lange, Schwabe, retrieved 2017-05-22 ^ “FIPS”. Mozilla Foundation (2012年2月1日). 2013年5月2日時点のオリジナルよりアーカイブ。2013年5月17日閲覧。 ^ a b “Release notes for recent versions of NSS” (2021年5月13日). 2021年7月18日閲覧。 ^ “OpenSSL: Newslog”. 2024年10月10日閲覧。 ^ “wolfSSL ChangeLog”. 2022年9月5日閲覧。 ^ Bouncy Castle Specifications, bouncycastle.org, retrieved 2018-04-10 ^ cryptlib Encryption Toolkit, Peter Gutmann, retrieved 2015-11-28 ^ With Scute, scute.org ^ a b With GnuPG's SCdaemon & gpg-agent, gnupg.org ^ hwfeatures.c, git.gnupg.org ^ https://www.wolfssl.com/wolfSSL/Blog/Entries/2017/1/18_wolfSSL_Asynchronous_Intel_QuickAssist_Support.html ^ https://www.wolfssl.com/wolfSSL/Blog/Entries/2016/10/13_wolfSSL_ARMv8_Support.html ^ https://www.wolfssl.com/wolfSSL/wolfssl-atmel.html ^ http://processors.wiki.ti.com/index.php/Using_wolfSSL_with_TI-RTOS ^ a b Language Analysis of Bouncy Castle, OpenHub.net, retrieved 2015-12-23 ^ a b Language Analysis of Crypto++, OpenHub.net, retrieved 2018-07-18 ^ a b Language Analysis of Libgcrypt, OpenHub.net, retrieved 2015-12-23 ^ a b Language Analysis of libsodium, OpenHub.net, retrieved 2017-05-07 ^ a b Language Analysis of OpenSSL, OpenHub.net, retrieved 2017-05-07 ^ GnuPG documentation: Libgcrypt overview - thread safety, GnuPG.org, retrieved 2016-04-16 Crypto++ project, https://cryptopp.com/ OpenSSL libraries libssl and libcrypto, https://wiki.openssl.org/index.php/Libcrypto_API SafeLogic's CryptoComply family of cryptographic libraries, https://www.SafeLogic.com wolfSSL embedded crypto libraries, https://wolfssl.com/wolfSSL/Products-wolfcrypt.html