以下の表は、暗号化アルゴリズムを扱い、サポートされている各機能への アプリケーション プログラミング インターフェイス( API ) 関数呼び出しを持つ暗号化 ライブラリを比較したものです。
暗号化ライブラリ
140 の
この表は、暗号化ライブラリがFIPS 140の技術要件を満たしているかどうか、および FIPS 140 認定のステータス ( NISTの CMVP 検索、処理中のモジュール リスト、テスト中の実装リスト による) を示します。
- ^ Crypto++ は 2003 年から 2008 年にかけて 3 回の FIPS 140 検証を受けました。2016 年に NIST は Crypto++ を過去の検証リストに移動しました。
- ^ GnuTLS は GnuTLS.org によって FIPS 140-2 の検証を受けていませんが、Amazon Web Services Inc.、Oracle Corporation、Red Hat Inc.、SUSE LLC のバージョンについては検証を受けています。
- ^ デフォルトの JDK JCA/JCE プロバイダーはいずれも FIPS 140-2 で検証されていませんが、FIPS 140-2 で検証されている他の JCE/JCA サードパーティ プロバイダーが存在します。
- ^ Libgcrypt は g10code によって FIPS 140-2 の検証を受けていませんが、Amazon Web Services Inc.、Canonical Ltd.、Oracle Corporation、Red Hat Inc.、および SUSE LLC のバージョンについては検証が行われています。
- ^ Network Security Services (NSS) は Mozilla Foundation によって FIPS 140-2 の検証を受けていませんが、Amazon Web Services Inc.、Canonical Ltd.、Cisco Systems Inc.、Hewlett Packard Enterprise、Oracle Corporation、Red Hat Inc.、SafeLogic Inc.、SUSE LLC、および Trend Micro Inc. のバージョンについては検証を受けています。
- ^ OpenSSL は OpenSSL.org によって FIPS 140-2 の検証を受けていませんが、Amazon Web Services Inc.、Aqua Security Software Ltd.、Broadcom Inc.、Canonical Ltd.、Cisco Systems Inc.、Cohesity Inc.、ControlUp Technologies Inc.、Crestron Electronics Inc.、Dell Inc.、Gallagher Group、Hewlett Packard Enterprise、IBM Corporation、ICU Medical Inc.、Intelligent Waves、Ixia、KeyPair Consulting Inc.、Koninklijke Philips NV、Lenovo Group Limited、LG Electronics Inc.、LogRhythm、McAfee LLC、Metaswitch Networks Ltd、NetBrain Technologies Inc.、Nutanix Inc.、Onclave Networks Inc.、Oracle Corporation、REDCOM Laboratories Inc.、Red Hat Inc.、SafeLogic Inc.、Super Micro Computer Inc.、SUSE LLC、Tanium Inc.、Trend Micro Inc.、Unisys Corporation、Verizon、VMware Inc.、および Wickr Inc. のバージョンについては検証を受けています。
主な操作
キー操作には、キー生成アルゴリズム、キー交換契約、公開キー暗号化標準が含まれます。
公開鍵アルゴリズム
- ^ 下位レベルのインターフェースを使用します。
楕円曲線暗号(ECC)のサポート
公開鍵暗号規格
- ^ ライブラリはデフォルトで PEM なしの X.509 および PKCS #8 エンコードを提供します。公開鍵と秘密鍵の PEM エンコードには PEM パックが必要です。
- ^ abcde これらの公開鍵暗号化標準 (PKCS) は、実際の libgcrypt ライブラリではなく、GnuPG フレームワークの一部でもある付属のライブラリとツールによってサポートされています。
ハッシュ関数
サポートされている暗号化ハッシュ関数の比較。ここでハッシュ関数は、任意の長さのメッセージを受け取り、元のメッセージを再作成するために使用することが事実上不可能な固定サイズの出力を生成するものとして定義されます。
MACアルゴリズム
メッセージ認証コード(MAC) アルゴリズムの実装の比較。MAC は、メッセージを認証するために使用される短い情報です。つまり、メッセージが指定された送信者から送信されたこと (信頼性) と、送信中に変更されていないこと (整合性) を確認するために使用されます。
ブロック暗号
表はブロック暗号の実装を比較します。ブロック暗号は決定論的であり、対称キーを使用して一定数のビット (ブロックと呼ばれる) で動作するものとして定義されます。各ブロック暗号は、実行可能なキー サイズとブロック暗号モードに分割できます。
ブロック暗号アルゴリズム
- ^ Crypto++ は GOST 28147-89 のみをサポートし、GOST R 34.12-2015 はサポートしません。
- ^ libsodium は AES-256 のみをサポートし、AES-128 や AES-192 はサポートしません。
暗号モード
ストリーム暗号
以下の表は、さまざまなストリーム暗号のサポートを示しています。ストリーム暗号は、疑似ランダム暗号の数字ストリームと組み合わせたプレーンテキストの数字を使用するものと定義されています。ストリーム暗号は通常、ブロック暗号よりも高速で、ハードウェアの複雑さも低くなりますが、攻撃を受けやすくなる可能性があります。
ハードウェア支援サポート
これらの表は、ハードウェア強化暗号化を使用する能力を比較しています。特定のハードウェアの支援を利用することで、ライブラリは、そうでない場合よりも高速化やセキュリティの向上を実現できます。
スマートカード、SIM、HSMプロトコルのサポート
- ^ PKCS#11 プロバイダーと組み合わせて、または基本操作へのアクセスを提供するオペレーター インターフェイスの実装を通じて。
- ^ BSAFE Crypto-C Micro Edition を使用してネイティブ モードで BSAFE Crypto-J を使用する場合。
- ^ ab サポートは JDK の javax.smartcardio パッケージを通じて利用できます。
汎用CPU、プラットフォームアクセラレーションサポート
- ^ ab AltiVec には、 POWER4 から POWER8 までの SIMD 処理が含まれています。POWER8 では、ARMv8.1 と同様に高速化された AES、SHA、PMUL を提供するインコア暗号化が追加されました。
- ^ abcde BSAFE Crypto-C Micro Editionを使用してネイティブモードでRSA BSAFE Crypto-Jを使用する場合
- ^ Crypto++ は Padlock 乱数ジェネレータへのアクセスのみを提供します。AES アクセラレーションなどの他の機能は提供されません。
- ^ abcdefg HotSpot JVMを使用する場合
- ^ OpenSSL RDRAND サポートは、ENGINE インターフェースを通じて提供されます。RDRAND ジェネレーターはデフォルトでは使用されません。
コードサイズとコードとコメントの比率
- ^ ab Crypto-J 6.2.5 に基づき、テストソースは除く。https://github.com/XAMPPRocky/tokei を使用して生成
ポータビリティ
- ^ Crypto++ はオブジェクト レベルでスレッド セーフです。つまり、インスタンス間で共有されるデータはありません。2 つの異なるスレッドが同じオブジェクトにアクセスする場合、ユーザーがロックを行う必要があります。
参考文献
- ^ 「Botan: リリースノート」 。 2024年8月13日閲覧。
- ^ 「リリースノート - bouncycastle.org」 2023年11月13日. 2023年11月18日閲覧。
- ^ 「Java LTS リソース - bouncycastle.org」。2024 年 3 月 1 日。2024 年 3 月 31 日閲覧。
- ^ 「Java FIPS リソース - bouncycastle.org」。2023 年 9 月 28 日。2022年 9 月 29 日に閲覧。
- ^ 「The Legion of the Bouncy Castle C# Cryptography APIs」2024 年 2 月 5 日。2024年 2 月 6 日閲覧。
- ^ 「C# .NET FIPS リソース - bouncycastle.org」。2023 年 2 月 28 日。2023 年 2 月 28 日に閲覧。
- ^ 「Dell BSAFE Crypto-C Micro Edition 4.1.5 および Micro Edition Suite 4.6 リリース アドバイザリ」。
- ^ 「Dell BSAFE Micro Edition Suite 4.6.2 リリース アドバイザリ」。
- ^ 「Dell BSAFE Micro Edition Suite 5.0.2.1 リリース アドバイザリ」。
- ^ 「Dell BSAFE Crypto-J 7.0 リリース アドバイザリ」。
- ^ 「Dell BSAFE Crypto-J 6.3 リリース アドバイザリ」。
- ^ Gutmann, Peter (2019). 「ダウンロード」. cryptlib.オークランド大学コンピューターサイエンス学部. 2019年8月7日閲覧。
- ^ 「gnutls 3.8.5」。
- ^ 「JDK リリース」。Oracle Corporation。2022年 12 月 9 日閲覧。
- ^ 「JDK リリース」。Oracle Corporation。2024年 1 月 17 日閲覧。
- ^ Brent Cook (2024年5月12日). 「LibreSSL 3.9.2 リリース」. 2024年5月12日閲覧。
- ^ “Libgcrypt 1.11.0 リリース”. dev.gnupg.org . 2024-06-19 . 2024-06-20閲覧。
- ^ “Libgcrypt 1.8.11 リリース”. dev.gnupg.org . 2023-11-16 . 2023-11-16閲覧。
- ^ 「Mbed TLS リリース」 2021-07-07 . 2021-10-14閲覧。
- ^ NaCl、Bernstein、Lange、Schwabe のダウンロードとインストール、2017 年 5 月 22 日取得
- ^ Niels Möller (2024年6月16日). 「ANNOUNCE: Nettle-3.10」 . 2024年6月16日閲覧。
- ^ ab “NSS:リリースバージョン”. Mozilla Wiki . 2022年11月7日閲覧。
- ^ 「リリース OpenSSL 3.3.2 · openssl/openssl」。2024年9月4日閲覧。
- ^ 「wolfSSL ChangeLog」2023年10月31日。 2023年10月31日閲覧。
- ^ 「暗号モジュール検証プログラム」。CSRC.nist.gov。2021年10月21日時点のオリジナルよりアーカイブ。
- ^ abc 「処理中のモジュールリスト - 暗号モジュール検証プログラム」。CSRC。
- ^ 「暗号モジュール検証プログラム」。CSRC.nist.gov。2021年9月24日時点のオリジナルよりアーカイブ。
- ^ 「暗号モジュール検証プログラム」。CSRC.nist.gov。2021年10月23日時点のオリジナルよりアーカイブ。
- ^ 「検索 - 暗号モジュール検証プログラム」。CSRC 。 2022年5月29日閲覧。
- ^ abcd 「テスト対象実装リスト - 暗号モジュール検証プログラム」。CSRC。
- ^ 「検索 - 暗号モジュール検証プログラム」。CSRC。2016年10月11日。
- ^ https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search?SearchMode=Basic&ModuleName=libgcrypt&CertificateStatus=Active&ValidationYear=0 [リンク切れ]
- ^ 「暗号モジュール検証プログラム」。CSRC.nist.gov。2021年9月24日時点のオリジナルよりアーカイブ。
- ^ 「暗号モジュール検証プログラム」。CSRC.nist.gov。2021年4月14日時点のオリジナルよりアーカイブ。
- ^ https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/3389 [ベア URL ]
- ^ RFC 7091
- ^ RFC 8018
- ^ RFC 5831
- ^ RFC 6986
- ^ RFC 5830
- ^ RFC 8891
- ^ RFC 7801
- ^ バウンシーキャッスル仕様、bouncycastle.org、2018年4月10日取得
- ^ cryptlib 暗号化ツールキット、Peter Gutmann、2015-11-28 取得
- ^ Scute、scute.org より
- ^ ab GnuPG の SCdaemon と gpg-agent、gnupg.org
- ^ ab libp11エンジン搭載
- ^ hwfeatures.c、dev.gnupg.org
- ^ 「WolfSSL 非同期 Intel QuickAssist サポート - wolfSSL」。2017 年 1 月 18 日。
- ^ 「WolfSSL ARMv8 サポート - wolfSSL」。2016 年 10 月 13 日。
- ^ ab 牡丹の言語分析、OpenHub.net、2018年7月18日取得
- ^ ab Bouncy Castle の言語分析、OpenHub.net、2015 年 12 月 23 日取得
- ^ ab Crypto++ の言語分析、OpenHub.net、2018 年 7 月 18 日取得
- ^ ab GnuTLS の言語分析、OpenHub.net、2020 年 9 月 15 日取得
- ^ ab Libgcrypt の言語分析、OpenHub.net、2015-12-23 取得
- ^ ab libsodium の言語分析、OpenHub.net、2017 年 5 月 7 日取得
- ^ ab mbed-tls の言語分析、OpenHub.net、2019 年 9 月 15 日取得
- ^ ab イラクサの言語分析、OpenHub.net、2015-12-23 取得
- ^ ab OpenSSL の言語分析、OpenHub.net、2017 年 5 月 7 日取得
- ^ GnuTLS - 機能、GnuTLS.org、2022年9月15日取得
- ^ GnuPG ドキュメント: Libgcrypt の概要 - スレッド セーフティ、GnuPG.org、2016 年 4 月 16 日取得
