椭圆曲线密码点乘运算的方法和装置制造方法及图纸

技术编号:11362163 阅读:58 留言:0更新日期:2015-04-29 12:46
一种椭圆曲线密码点乘运算方法和装置,所述椭圆曲线密码点乘运算方法包括控制器选择需要处理的数据流,并将所述数据流存储到第一存储器中;点乘运算器依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器。采用上述方法和装置,能够有效降低实现椭圆曲线密码点乘运算的功耗。

【技术实现步骤摘要】
椭圆曲线密码点乘运算的方法和装置
本专利技术涉及数据加密领域,特别涉及一种椭圆曲线密码点乘运算的方法和装置。
技术介绍
椭圆曲线密码学(EllipticCurveCryptography,ECC)是基于椭圆曲线数学的一种公钥密码的方法,ECC是目前公认的每比特安全性最高的密码体制,具有安全性高、速度快、密钥短、实现时所需占用资源少等优点。ECC一般基于两种有限域:二元扩域和素数域,目前常用的是素数域ECC算法。素数域ECC的实现基于大数运算。素数域ECC算法的核心运算是点乘运算,点乘运算是由一系列的倍点和点加循环操作构成,倍点和点加是由一系列的大数模加、模减、模乘构成。现有点乘运算装置中,由控制器和运算器共同实现点乘运算,其中运算器采用硬件电路来实现大数的模加、模减和模乘。点乘运算的实现过程可描述如下:控制器选取需要处理的二进制数据流,取数据流第一个数据位,控制器对数据位的值进行判断,若数据位的值为1,运算器调用RAM中倍点运算的结果,对倍点运算的结果进行点加运算,并将点加运算的结果存储到预设的目的RAM中;若当前数据位的值为0,对数据位进行倍点运算,将倍点运算的结果存储到预先设定的目的RAM中。再采用上述方案依次对其他数据位进行判断和运算,并对目的RAM中存储的运算结果进行调度,从而实现点乘运算。从上述方案中可以得知,对二进制数据流中的每一个数据位,控制器需要对数据位的值进行判断,根据不同的值调度运算器进行相应的运算,整个点乘运算的实现有大量的大数计算,需要大量的RAM搬运过程,导致点乘运算装置的功耗较大。
技术实现思路
本专利技术实施例解决的问题是椭圆曲线密码点乘运算过程中,点乘运算装置功耗较大的问题。为解决上述问题,本专利技术实施例提供一种椭圆曲线密码点乘运算的方法,包括:控制器选择需要处理的数据流,并将所述数据流存储到第一存储器中;点乘运算器依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器。可选的,所述第一存储器是寄存器,所述第二存储器是RAM或寄存器。可选的,所述第二存储器是RAM,将所述第一运算的结果和第二运算的结果存储到所述RAM中预设的RAM块中,所述RAM块的个数N等于所述RAM的存储空间容量除以椭圆曲线密码运算的运算长度。可选的,所述对数据位进行第一运算,包括:对所述数据位进行倍点运算,并对所述倍点运算的结果进行点加运算。可选的,所述倍点运算采用雅克比投影坐标系的倍点公式进行运算,所述倍点公式的运算参数预先存储在所述第二存储器中。可选的,所述点加运算采用雅克比投影—仿射混合坐标系下的点加公式进行运算,所述点加公式的运算参数预先存储在所述第二存储器中。可选的,所述进行第二运算包括:对所述数据位进行倍点运算。可选的,所述进行第二运算还包括:对所述数据位进行倍点运算的结果进行冗余运算,并将所述倍点运算的结果作为所述第二运算的结果。可选的,执行所述冗余运算的时长与执行所述点加运算的时长相等。可选的,所述冗余运算是点加运算。为解决上述问题,本专利技术实施例还提供了一种椭圆曲线密码点乘运算的装置,包括:控制单元,用于选择需要处理的数据流,并将所述数据流存储到第一存储器中;点乘运算单元,用于依次读取第一存储器中的数据位,对当前数据位的值进行判断,点乘运算器依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器。可选的,所述第一存储器是寄存器,所述第二存储器是RAM或寄存器。可选的,所述第二存储器是RAM,所述RAM中预设的RAM块用于存储第一运算的结果和第二运算的结果,所述RAM块的个数N等于所述RAM的存储空间容量除以椭圆曲线密码运算的运算长度。可选的,所述点乘运算单元包括第一运算器,所述第一运算器用于进行第一运算,包括:对所述数据位进行倍点运算,并对所述倍点运算的结果进行点加运算。可选的,所述点乘运算单元包括第二运算器,所述第二运算器用于进行第二运算,包括:对所述数据位进行倍点运算。可选的,所述点乘运算单元还包括第三运算器,所述第三运算器用于对所述数据位进行倍点运算的结果进行冗余运算,并将所述倍点运算的结果作为所述第二运算的结果。可选的,所述第三运算器执行一次冗余运算的时长与所述第二运算器执行一次点加运算的时长相等。可选的,所述第三运算器还用于对所述倍点运算的结果进行点加运算。与现有技术相比,本专利技术实施例的技术方案具有以下优点:对于一个待处理的数据流,控制器只需要调度一次,将所述需要处理的数据流存储到第一存储器中,采用点乘运算器完成对第一存储器中的每一个数据位进行点乘运算,而不需要控制器对每一个数据位都进行调度,因此可以减少控制器参与调度的次数,减少RAM搬运的过程,从而可以减少点乘运算装置的功耗。进一步,将现有的处理器中的RAM空间拆分成与预设ECC的运算长度相匹配的RAM块,由于相比于其他密码体制,ECC的运算长度较小,因此使用ECC运算时,现有的RAM空间能够拆分成更多个RAM块。除了必要的用来存储运算结果的RAM块,多出的RAM块用来存储点乘运算时的临时数据或存储其他数据,使得现有的处理器中的RAM得到充分利用,提高RAM的利用率。进一步,当数据位的值为0时,通过增加一个不影响运算结果的冗余的点加运算,使得数据位的值为0时的运算执行时长与数据位的值为1时的运算执行时长完全一致,从而使得数据运算流程实现完全对称,能够有效的防止功耗分析。附图说明图1是本专利技术实施例一中的椭圆密码曲线点乘运算流程图;图2是本专利技术实施例二中的椭圆密码曲线点乘运算流程图;图3是本专利技术实施例三中的椭圆密码曲线点乘运算流程图;图4是本专利技术实施例四中的椭圆密码曲线点乘运算装置结构示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。实施例一本实施例提供了一种椭圆曲线密码点乘运算方法,参照图1,以下通过具体步骤进行详细说明。步骤S101,控制器选择需要处理的数据流,并将所述数据流存储到第一存储器中。在具体实施中,需要处理的数据流可以是二进制比特流,第一存储器可以是寄存器,用于存储需要处理的数据流,也可以是其他类型的存储器。步骤S102,点乘运算器可以依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器。在具体实施中,点乘运算器对数据位的读取可以按照从高位到低位的顺序进行读取,并依此对读取到的当前数据位的值进行判断,根据当前数据位的值进行对应的运算。在具体实施中,第一运算可以包括如下运算:对数据位进行倍点运算,并对倍点运算的结果进行点加运算。第二运算可以包括如下运算:对数据位进行倍点运算。无论是执行第一运算还是执行第二运算,运算的结果都可以保存到第二存储器中。在具体实施中,第二存储器可以是寄存器,也可以是RAM。由于在点乘运算的本文档来自技高网...

【技术保护点】
一种椭圆曲线密码点乘运算方法,其特征在于,包括:控制器选择需要处理的数据流,并将所述数据流存储到第一存储器中;点乘运算器依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器。

【技术特征摘要】
1.一种椭圆曲线密码点乘运算方法,其特征在于,包括:控制器选择需要处理的数据流,并将所述数据流存储到第一存储器中;点乘运算器依次读取第一存储器中的数据位,当所述数据位的值为1时,对所述数据位进行第一运算,并将第一运算的结果存储到第二存储器;当所述数据位的值为0时,对所述数据位进行第二运算,并将第二运算的结果存储到第二存储器;所述对所述数据位进行第一运算包括:对所述数据位进行倍点运算,并对所述倍点运算的结果进行点加运算;所述对所述数据位进行第二运算包括:对所述数据位进行倍点运算,并对所述数据位进行倍点运算的结果进行冗余运算,且执行所述冗余运算的时长与执行所述点加运算的时长及功耗均相等,并将所述倍点运算的结果作为所述第二运算的结果。2.如权利要求1所述的椭圆曲线密码点乘运算方法,其特征在于,所述第一存储器是寄存器,所述第二存储器是RAM或寄存器。3.如权利要求2所述的椭圆曲线密码点乘运算方法,其特征在于,所述第二存储器是RAM,将所述第一运算的结果和第二运算的结果存储到所述RAM中预设的RAM块中,所述RAM块的个数N等于所述RAM的存储空间容量除以椭圆曲线密码运算的运算长度。4.如权利要求1所述的椭圆曲线密码点乘运算方法,其特征在于,所述倍点运算采用雅克比投影坐标系的倍点公式进行运算,所述倍点公式的运算参数预先存储在所述第二存储器中。5.如权利要求1所述的椭圆曲线密码点乘运算方法,其特征在于,所述点加运算采用雅克比投影—仿射混合坐标系下的点加公式进行运算,所述...

【专利技术属性】
技术研发人员:闫守礼张志敏王立辉宁兆熙李清张纲刘枫
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1