论文部分内容阅读
椭圆曲线作为数学研究对象已经有一百多年的历史了,随着密码学的发展,尤其是公钥密码学的出现,椭圆曲线开始从理论走向实际应用,其中以椭圆曲线密码体制(ECC)和椭圆曲线分解算法(ECM)影响最为深远、应用最为广泛。ECC是目前比特安全强度最高的公钥密码体制,具有密钥长度短、加密速度快等优点,已逐渐成为移动设备和高速应用环境中的标准公钥算法。ECM是目前分解中等规模素因子的最好算法,在RSA数域筛法的剩余因子分解中有着重要应用。ECC和ECM相关算法的研究一直是密码学界所关注的热点问题,一方面研究算法在软硬件平台上的优化实现有助于提高ECC和RSA的攻击效率、降低攻击成本,增强对ECC和RSA安全性的理解和认识;另一方面在这些算法的优化实现中还蕴含着许多有意义的理论问题,比如研究椭圆曲线的同构类和有理点数的分布有利于选择好的椭圆曲线,研究椭圆曲线伪随机序列可用于ECC中伪随机数的生成以及从新的角度寻找ECC的潜在弱点。本文主要研究ECC和ECM中相关的一些理论和工程问题,内容包括椭圆曲线的同构类与有理点数分布、椭圆曲线线性同余(EC-LCG)序列的分布与攻击、SIMD指令在ECC攻击中的应用、ECM在GPU上的效率分析和优化实现,取得的主要成果如下:1.构造了两组椭圆曲线同构类的代表元,利用指数和给出了同构类中椭圆曲线系数最小值的理论上界,并从概率论的角度对最小值的实际上界进行了分析;计算了当椭圆曲线中的一个系数固定,另外一个系数跑遍?q或?q的二次剩余类时有理点数的均值和方差,计算了当两个系数相等且同时跑遍?q或?q的二次剩余类时有理点数的均值;利用除子多项式给出了有理点数被素数整除的充要条件,把有理点数的整除性判定问题转化为方程组解的判定问题,进而研究了一个系数固定,另外一个系数跑遍?q或?q的子群时,有理点数被2和3整除的概率。2.系统考察了素数域上EC-LCG序列中连续一段比特的分布性质,证明了对于一般形式的素数p,EC-LCG序列低半部分中的比特段具有好的分布性质,当素数p=2n?c时,其中c是一个小整数,EC-LCG序列高半部分中的比特段以及中间部分的比特段也具有好的分布性质;计算了二进制域上EC-LCG序列分位序列的一致分布测度和k阶相关测度、多维分位序列的平衡性和线性复杂度,并基于分位序列构造了两类二元伪随机序列簇;给出了几种EC-LCG序列的攻击方法,说明了在参数未知的情况下,如果泄露足够多的x坐标,则序列有可能被部分还原或全部还原。3.基于SIMD指令设计了三种Montgomery模乘算法,在选择最优模乘算法的基础上给出了素数域上ECC攻击的实现方案和实验结果;在non-bitsliced和bitsliced两种数据结构下分别研究了基于SIMD指令的二元多项式乘法,并基于比特交换的思想给出了两种数据结构的快速转换算法,最后以两种数据结构相结合的方式给出了二进制域上ECC攻击的实现方案和实验结果;用概率论的方法计算了连续求解多个椭圆曲线离散对数的复杂度均值和方差,说明了求解的离散对数越多,总体复杂度相对越稳定,平均到每个离散对数的复杂度越低。4.建立了面向GPU平台的算法性能评估模型,通过对影响算法性能的主要因素进行分析,综合指令吞吐率、指令延迟、访存带宽和访存延迟的影响,给出了具体的算法耗时评估公式,为GPU平台选择最优的算法实现方案提供理论依据;基于GPU上的浮点运算和整数运算设计了三种Montgomery模乘算法,并利用本文建立的算法性能评估模型对三种算法进行了效率分析和性能比较,最后在选择最优模乘算法的基础上给出了ECM的实现方案和实验结果。