matlab hamming 点乘,一种改进的联合点乘算法及其应用

0前言VictorMiller[1]和NealKoblitz[2]首先在1980年提出了椭圆曲线密码系统。ECC可以提供很高级别的安全水准,因此被用于各种各样的密码系统中。点乘算法占了整个算法的大部分,其定义为一个整数k和一个在ECC上的点P的乘法。例如,在密码系统中ECDSA的签名生成过程中,签名方案需要同时计算uP+vQ,而不能拆成uP和vQ(其中u和v是整数,P和Q是椭圆上的点)。因此,为了实际需要,需要研究有效的多点乘算法,并且同时尽量减少内存使用和计算消耗。Shamir方法[3]和交错方法[4]是计算多点乘的两种有效方法。这些方法依赖k和l的二进制表达式,被称之为联合Hamming重量(jointHammingweight)。通过引入有符号的表示,联合Hamming重量可以减少很多。然而,以上的算法都是基于倍乘和加的算法。而在现在的ECDSA签名中,需要更快的计算多点乘。本研究在介绍几种利用预计算方法的基础上,提出一个新算法,即采用基为4的4倍乘算法。1算法概述1.1ECDSA签名算法ECDSA用特定的数字签名算法来保证文件的真实性和不可抵赖性,并实现身份验证。ECDSA算法包括签名生成和验证两部分。1.2几种点乘算法(1)计算uP+vQ的Shamir方法和交错方法:两种算法惟一的区别在于Shamir方法能同时计算,而交错方法不能同时计算。算法1需预计算uiP+viQ,而算法2只需预计算uiP和viQ,因此,算法1需要更多的内存来存储预计算点。(2)因为点乘计算占了ECC操作的大部分时间,人们提出了许多改进的方法。常见的方法是根据算法采用提供预计算的ECC点来加速。先简单描述一下Lim-Lee算法在椭圆曲线上对于固定点G的点乘操作kG。首先,l比特的乘数k被分成hv个b比特的子模块:l-1k=u=02ueu=h-1i=0(v-1j=0ki,j2bj)2ia,其中,a=lh,b=av,ki,j=b-1t=02teia+jb+t。在离线(off-line)阶段,计算并储存点GG[i][j],如下所示:Gi,j=2ia+jbGfor0j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值