要求和功能#
要求#
要使用 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 标准化算法,确保符合最新的加密标准。
侧信道安全性:包含防止侧信道攻击的措施,确保加密操作的稳健性。
有关每个描述符的执行和参数的详细描述,请参阅设备方法。