基于GPU的高性能密码计算

GPU(图形处理器):提供一个并行计算平台

非对称密码学又称公钥密码学,主流三大类有:

有限域密码学,如EIGamal及其变种数字签名算法

椭圆曲线密码学,如NIST的ECDSA、韩国的EC-KCDSA,中国的SM2椭圆曲线公钥密码算法

整数分解密码学,如RSA

对于非对称密码算法的并行实现:算法是否可以并行化,算法并行的粒度

完全串行,细粒度并行和粗粒度并行

完全串行方案:ECC,理由是ECC本身计算量较小,可通过与计算的方法进行加速;难以并行。串执行延迟并不大

细粒度并行方案:可用多线程计算一个大整数模乘算法,目前实现有剩余数系统RNS,理由是剩余数系统非常容易并行化,他的单个字的运算都是完全独立的,且不需要向其他线程传递信息;乘法运算也少。缺点是大整数表示和RNS表示之间的相互转化需要大量运算。所以最终实现中,RNS虽然有着更好的延迟,但是运算吞吐率只有Montgomery乘法对的一半左右。

目前主流的是Montgomery乘法的非完全并行方案,采用多线程,每个线程处理多个字。这样既满足在片上资源的分配和延迟下,尽可能地提高了吞吐率,现下性能最优的几个RSA实现都使用了该方案。

粗粒度并行方案:底层串行,在模幂或椭圆曲线算术层面并行,即基于单线程实现有限域算法,多线程处理模幂或椭圆曲线算术。可以采用单个线程处理单个大整数数模乘算法,但使用多线程处理一个点加/倍点算法。

RSA算法在GPU平台的实现:浮点数的实现和多线程进位优化处理

ECC算法在GPU平台上的实现:有限域算法优化和椭圆曲线算术优化和GPU-CPU有效协同和GPU化整为零

目前在GPU并行计算平台上实现地后量子算法十分匮乏,主要是基于格的NTRU和Ring-LWE的相关实现。

                      

posted @ 2021-10-12 21:52  吉吉的奥利奥  阅读(759)  评论(0)    收藏  举报