[发明专利]在ECC中实现位数自适应模乘运算的方法及模乘运算器有效
申请号: | 201410191201.4 | 申请日: | 2014-05-07 |
公开(公告)号: | CN103970504B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 胡建国;黄晴晴;李仕仁;谭宇泉;白小楠 | 申请(专利权)人: | 广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学;胡建国 |
主分类号: | G06F7/72 | 分类号: | G06F7/72 |
代理公司: | 广州三环专利代理有限公司44202 | 代理人: | 郝传鑫,熊永强 |
地址: | 528000*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ecc 实现 位数 自适应 运算 方法 运算器 | ||
技术领域
本发明涉及椭圆曲线加密算法(ECC)技术领域,具体涉及一种在ECC中实现位数自适应模乘运算的方法及模乘运算器。
背景技术
ECC加密算法是单位比特安全性能最高的非对称加密算法,由于硬件实现ECC算法速度比软件快很多,很多智能卡芯片、阅读器芯片及安全芯片中,均有ECC算法的实现电路。随着该算法的应用广泛,ECC算法实现的位数需要也不一样,不同标签芯片在ECC加密算法位数选择也不尽相同,为了保证安全模块的广泛使用性,在同一个安全模块内实现多位数的ECC加密算法。但是为了保证ECC加密算法的高速性,在基本模块的实现上需要使关键模块具有长度自适应性。
ECC加密算法中最关键的基本的运算为模乘运算,其决定了ECC加密算法具体实现时的运算速度。对于椭圆曲线中模乘算法也有三种,通常实现模乘算法主要直接相乘求模算法、KOA模乘算法和Montgomery模乘算法三种以及相关算法的改进。对于直接相乘求模的算法来说,虽然实现和算法都比较直接简单,但其在实现上占用的时间和面积也是最多的。而Montgomery模乘算法虽然高效,但是当我们只需要计算一次模乘时,需要的额外操作较多,比较适合RSA算法的模幂操作,ECC的标量乘算法并不一直使用模乘计算,中间还会用到其它的操作,并且每一个循环周期内都需要各种操作的组合,接下来要进行其它操作时,因此该算法在模乘算法上并不能取得高效的性能。
通常采用KOA乘法器来实现模乘算法。乘法器按运算周期来分,主要有串行乘法器、全并行乘法器和串并乘法器三种。对于串行乘法器来说,它通过不断的移位运算进行实现,该算法是以牺牲运算速度来获取较小的实现面积,其实现面积为O(m)其实现速度也为O(m)。第二种是全并行乘法器,该乘法器是在先分别求出部分积然后再对每一部分的部分积进行累加的操作,该算法是以牺牲面积来获取最快的运算速度,其实现面积为O(m2),而运算速度则为O(1)。第三种方法是串并混合乘法器,是以上两种方法的折中,其实就是以串行乘法器的思想调用底层并行乘法器加以实现。其面积及计算速度都介于前面两者中间。
KOA乘法器从理论上讲,是通过多次的分治处理可以将基础乘法器的数目减至到一位,这样算法的复杂度可以降低至但随着分治算法的进行,辅助操作随之增加,故一般分治的次数不会太多,因此必须根据实际需要进行合理设计。对于乘法器来说,串行乘法器和并行乘法器都不能在面积和速度上有很好的折合,因此目前通常采用串并乘法器来实现模乘器。但是位数越大的乘法器,消耗的时间越长。对于进行乘法操作的位数不是固定的情况,当位数较低时,传统的方法是采用高位补0法,补齐为最高位时再输入乘法器进行计算。但这无疑产生了极大的时间浪费,特别是位数低于最高位一半时,乘法器花了一半的时间在计算无用的数。
发明内容
针对以上几种实现算法的不足,本发明提出了在ECC中实现位数自适应模乘运算的方法及ECC模乘运算器,在原始的KOA算法进行改进,使其自动的根据输入乘数的位数进行计算调整,以达到最优的计算效果。
本发明提供了一种在ECC中实现位数自适应模乘运算的方法,所述方法包括如下步骤:
基于零位检测模块获取输入数据的位数;
根据输入数据的位数选择与输入数据相接近的模乘运算档位;
基于模乘运算档位所关联的64位KOA并行乘法器对所述输入数据进行运算。
所述64位KOA并行乘法器包括至少两个或者以上串并在一起的64位KOA乘法器。
所述64位KOA乘法器由9个16位乘法器构成。
所述64位KOA并行乘法器至少满足512位乘法运算。
相应的,本发明实施例还提供了一种ECC模乘运算器,包括:
零位检测模块,用于获取输入数据的位数;
模乘运算档位选择模块,用于根据输入数据的位数选择与输入数据相接近的模乘运算档位;
模乘运算模块,用于基于模乘运算档位所关联的64位KOA并行乘法器对所述输入数据进行运算。
所述64位KOA并行乘法器包括至少两个或者以上串并在一起的64位KOA乘法器。
所述64位KOA乘法器由9个16位乘法器构成。
所述64位KOA并行乘法器至少满足512位乘法运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学;胡建国,未经广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学;胡建国许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410191201.4/2.html,转载请声明来源钻瓜专利网。