EP11 over gRPC の紹介-標準プラン
Enterprise PKCS #11 (EP11) は、オープン・スタンダードのサポートとセキュリティーの向上を必要としているお客様のために設計されたものです。 EP11 ライブラリーには、業界標準の Public-Key Cryptography Standards(PKCS)#11 APIに類似したステートレス・インターフェースが用意されています。 PKCS #11 API では、ハードウェア・セキュリティー・モジュール (HSM) やスマート・カードなどの暗号トークンを操作するための、プラットフォームに依存しない API が定義されています。 PKCS #11 を使用する既存のアプリケーションには、セキュアな鍵暗号方式によってセキュリティーが向上するというメリットだけでなく、暗号操作を非常に効率的に実行できるステートレス・インターフェースを使用できるというメリットがあります。
EP11 ライブラリーについて詳しくは、 Enterprise PKCS #11(EP11)Library structure 資料を参照してください。 EP11 の機能と拡張機能について詳しくは、 EP11 の概要を参照してください。
IBM Cloud® Hyper Protect Crypto Services には、EP11 over gRPC (GREP11) の一連の API 呼び出しが用意されています。これらの API 呼び出しを使用すると、すべての暗号関数が Hyper Protect Crypto Services のクラウド HSM の内部で実行されます。 GREP11 API は、クラウドで暗号操作を行うためのステートレス・インターフェースです。
Hyper Protect Crypto Services は gRPC などのフレームワークを利用して、リモート・アプリケーション・アクセスを可能にします。gRPC は最新のオープン・ソースのハイパフォーマンス・リモート・プロシージャー・コール (RPC) フレームワークで、ロード・バランシング、トレース、ヘルス・チェック、認証のためにデータ・センター内でも、データ・センター間でもサービスを接続できます。 gRPC を使用してリモートから EP11 API を呼び出すことにより、アプリケーションから Hyper Protect Crypto Services にアクセスできます。 gRPCについて詳しくは、 gRPC の資料を参照してください。
GREP11 API を使用して、以下の操作を実行できます。
- 鍵生成。
- 暗号化と復号。
- 署名と検証。
- 鍵のラップとアンラップ。
- 鍵の導出。
- メッセージ・ダイジェストの生成。
- メカニズム情報の取得。
一部の操作には、一連のサブ操作があります。 例えば、複数部構成のデータの暗号化操作は、EncryptInit()、EncryptUpdate()、および EncryptFinal() のサブ操作で構成されます。
EncryptInit()では操作を初期化します。Encrypt()は、EncryptUpdate()とEncryptFinal()のサブ操作を実行する必要がない 1 部構成のデータを暗号化します。 この操作は、EncryptInit()呼び出しの後に実行する必要があります。EncryptUpdate()とEncryptFinal()は、複数部構成のデータの暗号化を実行する場合に組み合わせて使用します。 これらのサブ操作は、EncryptInit()呼び出しの後に実行する必要があります。EncryptSingle()は、標準 PKCS#11 の仕様に対する IBM EP11 の拡張機能であり、EncryptInit()とEncrypt()のサブ操作を実行することなく、1 回の呼び出しで 1 部構成のデータを暗号化できます。
以下の図は、暗号化を実行する GREP11 関数の 3 つの呼び出しシーケンス・フローを示しています。 フローは、暗号化解除、ダイジェスト、署名、検証などの他の操作にも適用できます。 GREP11 API について詳しくは、GREP11 API リファレンスを参照してください。
GREP11 API は、単一の暗号装置に対して最大 500 要求/秒を処理できます。
ポスト量子暗号化後のサポート
GREP11 API を使用して、 量子暗号後 操作を実行することもできます。 従来の暗号化は、従来のコンピューターでは解決が難しい複雑な数学的問題に依存しています。 しかし、コンピューティング能力によって、量子コンピューターはこれらの問題を解決することができます。 ポスト量子暗号化後は、量子コンピューターからの暗号分析攻撃に対して抵抗性があると考えられています。 通常は非対称アルゴリズムを使用し、複数のアプローチがあります。
GREP11 API は、量子暗号化後のための Dilithium アルゴリズム を提供します。 これは、格子ベースのデジタル署名スキームであり、署名の生成と検証に使用できます。 現在、 高セキュリティー・バージョンのラウンド 2 Dilithium のみがサポートされており、 SignUpdate および VerifyUpdate の操作には使用できません。
Dilithium アルゴリズムは、IBM 4769 暗号カード (Crypto Express 7S (CEX7S) とも呼ばれる) でのみサポートされます。 CEX7S 暗号カードが使用されている仮想プライベート・クラウド (VPC) ベースのリージョンでインスタンスを作成する場合は、GREP11 API を使用して、ポスト量子暗号化後の Dilithium アルゴリズムを使用できます。 VPC ベースのリージョンのリストについては、地域とロケーションを参照してください。
GREP11 での Dilithium アルゴリズムのサポートについて詳しくは、GREP11 API リファレンスを参照してください。 以下のリポジトリーで、Dilithium アルゴリズムのコード例を見つけることもできます。