基于 gRPC 的 EP11 简介- Unified Key Orchestrator 计划
Enterprise PKCS #11 (EP11) 专为寻求支持开放式标准和增强安全性的客户而设计。 EP11 库提供了一个无状态接口,该接口类似于业界标准的 公用密钥密码术标准(PKCS)#11 API。 PKCS #11 API 定义了与平台无关的 API 以用于加密令牌,例如硬件安全模块 (HSM) 和智能卡。 使用 PKCS #11 的现有应用程序可受益于通过安全密钥密码术以及无状态接口增强的安全性,这使加密操作效率更高。
可以在 Enterprise PKCS #11(EP11)库结构文档中找到有关 EP11 库的更多信息。 有关 EP11 功能和扩展的更多信息,请参阅 EP11 简介。
IBM Cloud® Hyper Protect Crypto Services 通过 gRPC (GREP11) API 调用提供一组 EP11,使用这些 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()
子操作。 此操作需要在EncryptInit()
调用后执行。EncryptUpdate()
和EncryptFinal()
组合使用以执行多部分数据加密。 这些子操作需要在EncryptInit()
调用后执行。EncryptSingle()
是对标准 PKCS #11 规范的 IBM EP11 扩展,用于执行单个调用以加密单部分数据,而无需运行EncryptInit()
和Encrypt()
子操作。
下图显示了用于执行加密的 GREP11 函数的三个调用序列流。 这些流还可以应用于其他操作,例如解密,摘要,签名和验证。 有关 GREP11 API 的更多信息,请参阅 GREP11 API 参考。
对于单个加密单元,GREP11 API 最多可以处理 500 个请求/秒。
后量子密码术支持
通过 GREP11 API,您还可以执行 后量子加密 操作。 传统密码学依赖于复杂的数学问题,这些问题是经典计算机难以解决的。 但是,借助计算能力,量子计算机可以解决这些问题。 后量子密码学被认为对来自量子计算机的隐秘攻击具有抵抗力。 它通常使用非对称算法,并具有多种方法。
GREP11 API 为后量子密码术提供了 Dilithium 算法。 它是一种基于点阵的数字签名方案,可用于签名生成和验证。 目前,仅支持 高安全性版本的圆形 2 Dilithium,它不可用于
SignUpdate
和 VerifyUpdate
操作。
仅 IBM 4769 加密卡 (也称为 Crypto Express 7S (CEX7S)) 支持 Dilithium 算法。 如果在使用 CEX7S 加密卡的基于虚拟私有云 (VPC) 的区域中创建实例,那么可以将 Dilithium 算法与 GREP11 API 配合使用。 有关基于 VPC 的区域的列表,请参阅 区域和位置。
有关 GREP11中的 Dilithium 算法支持的更多信息,请参阅 GREP11 API 参考。 您还可以在以下存储库中找到 Dilithium 算法代码示例: