この記事は、インテルのウェブサイトで公開されている「Exceed FIPS 140 Level 1 Information Security with Intel® Integrated Performance Primitives Cryptography」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
今日のデジタル環境では、特に機密情報を管理する組織にとって、暗号化モジュールのセキュリティーを確保することが非常に重要です。インテル® クリプトグラフィー・プリミティブ・ライブラリー (旧称インテル® IPP Cryptography) は、セキュリティー・インフラストラクチャーを強化すると同時に、米国およびカナダ政府機関で採用されている暗号化要件である連邦情報処理規格 (FIPS) 140 シリーズへの準拠を保証するように設計された高性能関数を提供します (FIPS の一般情報 (英語))。
FIPS 認証と FIPS 準拠
FIPS 140-3 は、4 つのセキュリティー・レベル (最も容易なレベル 1 から最も厳格なレベル 4 まで) を定義しています。一般に、ソフトウェアはレベル 2 までの認証が可能です。
インテル® クリプトグラフィー・プリミティブ・ライブラリーは、エンドユーザーが FIPS レベル 1 要件に適合するのに役立つ FIPS モード API のビルディング・ブロック (セルフテストや FIPS 承認機能ステータス照会など) を提供します。セルフテストの対象となる FIPS 承認 API の一覧は、「Covered Algorithms」セクションを参照してください。
注: インテル® クリプトグラフィー・プリミティブ・ライブラリー自体は FIPS 認証されていませんが、FIPS 準拠です。つまり、インテル® クリプトグラフィー・プリミティブ・ライブラリーでは、Cryptographic Algorithm Validation Program (CAVP) テストと認証は行われますが、インテル® クリプトグラフィー・プリミティブ・ライブラリーの高性能プリミティブの使用コンテキストはより高度なアプリケーションに依存するため、完全な Cryptographic Module Validation Program 認証は行われません。
CAVP テストの結果については、以下のリンクを参照してください。
- インテル® IPP Cryptography の Multi-buffer Cryptography 機能 (Crypto Multi-Buffer) (英語)
- インテル® AVX2 ISA 向けに最適化されたインテル® IPP Cryptography (英語)
- インテル® AVX-512 ISA 向けに最適化されたインテル® IPP Cryptography (英語)
または、インテル® IPP コミュニティー (英語) までお問い合わせください。
インテル® クリプトグラフィー・プリミティブ・ライブラリーは、暗号化シングルバッファーの場合は IPPCP_FIPS_MODE=on
、暗号化マルチバッファーの場合は MBX_FIPS_MODE=on
の FIPS モードでビルドできます (詳細は、GitHub リポジトリーにある readme の「Build」セクション (英語) を参照してください)。
インテル® クリプトグラフィー・プリミティブ・ライブラリーを使用するアプリケーションは、FIPS 140 要件に適合し、NIST 認証を取得することで FIPS 認証を受けたり、顧客に対して FIPS 準拠となる場合があります。
インテル® クリプトグラフィー・プリミティブ・ライブラリー: FIPS 140 レベル 1 への適合
インテル® クリプトグラフィー・プリミティブ・ライブラリーは、アプリケーションが FIPS レベル 1 準拠の実現に必要なビルディング・ブロックを提供します。主な機能は、以下のとおりです。
- モジュール識別: IPPCP 用の
ippcpGetLibVersion()
API や crypto_MB 用のmbx_getversion()
API などの API を通じて、モジュール名、識別子、バージョンを出力できます。 - FIPS 承認サービス照会:
ippcp_is_fips_approved_func
やmbx_is_fips_approved_func
などの関数は、サービスが FIPS 承認済みかどうかを示します。 - セルフテスト: 暗号化アルゴリズムの整合性と適切な動作を保証するセルフテスト用に
fips_selftest_ippcp
などの API を提供しています。
インテル® クリプトグラフィー・プリミティブ・ライブラリーが提供するものと、アプリケーションで実装が必要なものの詳細は、「Level 1 固有要件」 (英語) を参照してください。
FIPS モードでのビルド
インテル® クリプトグラフィー・プリミティブ・ライブラリーを FIPS モードでビルドするには、次の CMake フラグが必要です。
- ippcp の場合: -DIPPCP_FIPS_MODE=on
- Crypto Multi-Buffer の場合: -DMBX_FIPS_MODE=on
これらを設定することで、セルフテストと FIPS サポート照会用の追加の API が有効になり、ユーザーは暗号化実装を検証できます。
インテル® C++ コンパイラーと ippcp を使用する場合の設定例:
CC=icx CXX=icpx cmake CMakeLists.txt -B_build -DARCH=intel64 -DIPPCP_FIPS_MODE=on[-DIPPCP_SELFTEST_USE_MALLOC=on]
GCC と Crypto Multi-Buffer を使用する場合の設定例:
CC=gcc CXX=g++ cmake CMakeLists.txt -B_build -DARCH=intel64 -DMBX_FIPS_MODE=on
API の使用例
インテル® クリプトグラフィー・プリミティブ・ライブラリーの例 | Crypto Multi-buffer の例 |
---|---|
|
|
インテル® クリプトグラフィー・プリミティブ・ライブラリーでサポートされるアルゴリズム
インテル® クリプトグラフィー・プリミティブ・ライブラリーは、AES、RSA 暗号化/復号化、RSA 署名/検証、ハッシュ、HMAC、署名/検証、楕円曲線、Crypto Multi-buffer の RSA など、幅広いアルゴリズムをサポートしています。これらのアルゴリズムはすべて、FIPS 要件への準拠を保証するセルフテストでサポートされています。各アルゴリズム固有のセルフテスト API を呼び出すことで、FIPS モードで使用する前にその適切な動作を検証できます。
サポートされるシンボルの正確な一覧は、include/ippcp/fips_cert.h の FIPS_IPPCP_FUNC
列挙子と、include/crypto_mb/fips_cert.h の FIPS_CRYPTO_MB_FUNC
列挙子を参照してください。
アプリケーションにデータ・セキュリティーを追加
インテル® クリプトグラフィー・プリミティブ・ライブラリーは、FIPS 140 レベル 1 準拠をサポートする、パフォーマンスが最適化された暗号化プリミティブのセットを提供します。インテル® クリプトグラフィー・プリミティブ・ライブラリーを FIPS モードで活用することで、開発者は政府および業界標準に準拠したセキュアなアプリケーションを構築し、機密データを確実に保護できます。
インテル® クリプトグラフィー・プリミティブ・ライブラリーを利用した FIPS 140 要件の実装に関する詳細は、インテル® クリプトグラフィー・プリミティブ・ライブラリーのドキュメント (英語) を参照してください。
FIPS 準拠アルゴリズムのリスト拡張に関する質問や要望は、Github (英語) またはオンライン・サービス・センター (英語) からご連絡ください。
皆様からのフィードバックとご提案をお待ちしております。
関連情報
製品および性能に関する情報
1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。