27、基于欧几里得乘法器的更快双尺寸模乘法

基于欧几里得乘法器的更快双尺寸模乘法

1. 引言

在密码学中,当密码协处理器只能处理特定比特大小(n 比特)的数字时,对更大操作数进行模算术运算就成了一个复杂的实现问题。传统的多精度算法,如蒙哥马利、巴雷特、奎斯夸特尔或沃尔特的算法,虽能解决问题,但可能需要底层硬件架构不支持的小操作来处理数据块。例如,常规的 (n×n) 比特整数乘法(结果为 2n 比特),在某些密码处理器(如英飞凌的 ACE)上可能无法直接实现,该处理器只能进行 n 比特(n 最大为 1100)的模运算。

为解决此问题,一种常规方法是将块大小设为 n ≤ 1100/2(如 n = 512),使整数乘法通过模 2^1100 的乘法实现。但采用这种策略,基于蒙哥马利算法实现一次 2048 比特乘法至少需要四十次 512 比特整数乘法,性能难以接受。因此,在该平台上实现 2048 比特 RSA 并满足较高的执行速度期望并非易事,需要设计更具体的技术来模拟对更大操作数的模算术运算。

近期出现了两种不同的技术:
- Paillier 提出的方法:用 8 到 6 次 n 比特模乘法器调用(加上其他可忽略的操作)来模拟 2n 比特模乘法。该算法受蒙哥马利技术启发,依赖剩余数系统(RNS)表示数据并执行部分操作。不过,它需要在乘法前预先计算一个依赖模数的常数。
- Fischer 和 Seifert 提出的方法:消除了对预计算常数的需求。2n 比特操作数通过以 2^n 为基数的经典基数表示法处理,新技术以相同表示法输出结果。他们用欧几里得乘法(即同时返回 xy ÷ z 的商和余数的操作)取代了基本操作。

本文对 Fischer 和 Seifert 的算法进行了改进,提出了更高级的计算策略

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值