要求和功能#


要求#

要使用 cuPQC,用户需要以下组件

  • CUDA 工具包 12.4 或更高版本

  • 受支持的 CUDA 编译器

  • 受支持的主机编译器(需要 C++17)

  • (可选)CMake(版本 3.20 或更高版本)

  • x86_64 CPU

  • 具有以下架构之一的 NVIDIA GPU:70、75、80、86、89、90

受支持的编译器#

CUDA 编译器

  • NVCC 12.4.90+(CUDA 工具包 12.4 或更高版本)

主机 C++ 编译器

  • GCC 7+

  • Clang 9+

功能#

cuPQC 库旨在满足对强大加密解决方案日益增长的需求,这些解决方案能够抵御量子计算机的计算能力。通过利用 NVIDIA GPU,cuPQC 实现了显著的性能提升,使其成为需要速度和安全性的应用程序的宝贵资产。此外,该库在设计时考虑了侧信道安全措施,以防止各种形式的侧信道攻击。

cuPQC 是 NVIDIA 的设备扩展库之一,它使您能够在 CUDA 内核内部执行计算。当与其他 CUDA 函数一起使用时,这有助于减少延迟并提高应用程序的性能。

软件包中包含使用该库的内核示例,作为 cuPQC 示例。

ML-KEM (FIPS-203)#

ML-KEM,或基于模块格的密钥封装机制,已由 NIST 在 FIPS-203 下标准化。 cuPQC 库包含以下 ML-KEM 操作的高度优化实现

  • 密钥生成:高效生成加密密钥对。

  • 封装:安全地封装共享密钥。

  • 解封装:从封装的数据中恢复共享密钥。

该库支持多种参数集,以满足各种安全级别和性能需求

  • ML-KEM-512

  • ML-KEM-768

  • ML-KEM-1024

ML-DSA (FIPS-204)#

ML-DSA,或基于模块格的数字签名算法,已由 NIST 在 FIPS-204 下标准化。 cuPQC 库提供以下 ML-DSA 操作的优化实现

  • 密钥生成:生成适用于数字签名的加密密钥对。

  • 签名:为给定的消息生成数字签名。

  • 验证:验证数字签名的真实性。

与 ML-KEM 类似,该库支持各种参数集,以满足不同的安全需求

  • ML-DSA-44

  • ML-DSA-65

  • ML-DSA-87

主要特性#

  • 高性能:利用 NVIDIA GPU 的并行处理能力来加速加密操作。

  • 批量操作:支持批量处理以提高吞吐量和效率。

  • 安全性:实施 NIST 标准化算法,确保符合最新的加密标准。

  • 侧信道安全性:包含防止侧信道攻击的措施,确保加密操作的稳健性。

有关每个描述符的执行和参数的详细描述,请参阅设备方法