用于RSA和椭圆曲线密码系统的灵活硬件设计
1. 背景与前期工作
在密码学领域,RSA和椭圆曲线密码系统(ECC)是两种重要的公钥密码体制。对于有限域算术,在没有专用算术协处理器的平台上,某些情况下的功耗和资源消耗相较于素域(GF(p))更小。不过,素域的优势在于它能同时适用于RSA和ECC,并且可以实现硬件资源的有效共享。
这里主要探讨如何将原本为RSA设计的蒙哥马利乘法的现场可编程门阵列(FPGA)实现,高效地用于执行素域ECC操作。该设计包含一个大型模块化蒙哥马利乘法器(MMM),它被设计成一个一维的脉动阵列,由固定数量的处理单元(PC)组成。MMM执行的蒙哥马利模乘操作如下:
$Mont(X, Y) = XY R^{-1} \mod N$
这里,$AR \mod N$ 被称为 $A$ 的蒙哥马利表示。在使用MMM进行模幂运算时,所有中间结果都采用这种形式。一个数可以通过与 $R^2 \mod N$ 进行蒙哥马利乘法转换为其蒙哥马利表示;而从蒙哥马利表示转换为正常形式,只需与1进行蒙哥马利乘法即可。
1.1 脉动阵列
脉动阵列的示意图如下:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A1(xi):::process --> B1(mi):::process
B1 --> C1(mi):::process
C1 --> D1(0):::process
D1 --> E1(y):::pro
超级会员免费看
订阅专栏 解锁全文

1152

被折叠的 条评论
为什么被折叠?



