对提高RSA算法中大数模乘运算速率的思考

本文针对RSA算法中的大数模乘运算进行研究,提出了一种结合Kogge-stone加法器的基2-Montgomery模乘运算方法,以提高运算效率。通过仿真分析,该混合运算方法在1 024 bit数据位宽下能有效减少模乘运算的延迟,提高运算速率,并在资源利用上进行了优化。
摘要由CSDN通过智能技术生成

目录

0 引言

1 RSA算法中模乘运算原理介绍

1.1 RSA算法中相关模块

图1

1.2 Montgomery模乘运算

1.3 基2-Montgomery算法

2 混合Montgomery乘法器的设计

2.1 Kogge-stone加法器设计

图2

2.2 改进的Montgomery算法

图3

图4

图5

图6

3 RSA算法中Montgomery的应用分析

4 大数模乘运算仿真与分析

4.1 仿真时间

4.2 结果分析

4.3 本文算法优势

5 结束语


摘要

RSA算法的核心是大数模乘运算,提高其运算速率不仅对改进RSA算法本身有着重要的意义,而且,如果能够通过专用集成电路快速而低成本的实现,将会对电子商务的推广产生积极作用。在研究蒙哥马利算法的基础上,提出一种基于并行前缀加法器架构的基2-Montgomery模乘运算,构建了1 024 bit的Kogge-stone加法器。仿真结果表明,该方法可以有效减少模乘运算中操作数的延迟时间,在一定程度上提高大数模乘的运算效率。

关键词: RSA算法; 基2-Montgomery; Montgomery算法; Kogge-stone加法器

0 引言

在信息产业和技术日益发展的今天,网络信息安全尤为重要。作为网络信息安全的基础,如何确保密码系统不断改进、升级,成为广大信息工作者研究和关注的话题。目前,国内外密码系统中应用广泛的RSA (Ron RivestAdi ShamirLeonard Adleman)加密算法是较为成熟的公开密钥加密方法,该算法操作的核心是大数模幂运算,即由大数模乘反复运算实现。为了提高安全性,RSA算法一般都在位宽1 024 bit及以上,以如此大的数据位进行计算意味着计算过程非常复杂,可能降低运算速率。笔者认为,提高模乘运算的速率是提高模幂运算的一个重要方法,也是有效加快RSA算法整体运算效率的一个重要途径。

1985,Perter Montgomery[1]提出了一种只需运用乘法和数的右移操作就可以实现模乘运算的计算,把这种方法叫做Montgomery算法。国内曾有研究提出了其他路径,一种是运用基2-Montgomery算法来实现模乘运算[2-3],优点是基2-Montgomery算法对于模乘运算只需加法器、异或运算器、移位器即可,不需要除法运算;不足是运用的硬件资源过多。另一种是运用基于保留进位加法器(Carry-Save Adder,CSA)Montgomery算法,降低时钟个数,从而提高模乘运算速率[4];不足是随着计算数的位宽不断增加,加法器的进位链也将不断增加,从而影响加法器的性能。

本文以模乘运算模块为切入点,RSA算法中模乘运算进行研究。主要方法是通过将Kogge-stone加法器[5]与基2-Montgomery算法结合,形成一种混合运算。结果表明这种混合运算可以在一定程度上提高大数模乘运算效率。

1 RSA算法中模乘运算原理介绍

1.1 RSA算法中相关模块

RSA算法[6]主要包含RSA顶层模块、模幂状态控制模块、模乘运算模块(见图1)

1


1   RSA算法实现的模块

从图1可以看出模乘运算是底层模块,是整个算法的基础,模乘运算的快速实现直接关系着整体RSA算法加解密的速度。

1.2 Montgomery模乘运算

Montgomery乘法的数学表达式是A×B×r-1mod p。其中,AB是与p同位长的大数,r-1是指r相对于p的模逆,r-1是满足如下条件的数:r×r-1mod p=1;这个条件成立的充要条件是rp互素,这一点只需要p为奇数即可,所以Montgomery乘法通常适用于对奇数求模。具体算法描述见表1

1   Montgomery乘法

输入:A,B,r,p

输出:A×B×r-1mod p

Monm(A,B,r,p)

{ t=A×B

u=(t+t×p mod r)p/r

if up

return u-p

}

新窗口打开下载CSV

Montgomery算法则是将对模数的取余计算转化为对2的除法运算,在计算机系统中对2的除法运算则是简单的移位操作,从而大大简化了计算的难度。虽然Montgomery普通算法有效降低了模乘运算,但是当、、ABp的位数超过1 024 位时,在运算处理和存储时的数值相当大,非常占用硬件资源,所以需要对Montgomery算法进行相应的改进优化。

1.3 2-Montgomery算法

一般而言,硬件加密主要从运算速率和资源利用两个方面进行设计。对普通Montgomery算法进行优化主要有两个方面:一个是在乘法计算时,每次有选择地计算一部分值,依次输出;另一个是选择基数的优化方法。

计算、ABMontgomery乘积的基2表达式[7]见表2

2   2-Montgomery算法关键步骤

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米朵儿技术屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值