椭圆曲线密码系统的倍点系统的制作方法

文档序号:7686596阅读:250来源:国知局
专利名称:椭圆曲线密码系统的倍点系统的制作方法
技术领域
本发明涉及数字签名与认证技术领域。
技术背景密码体制可以分为传统(或对称)加密体制和公钥(或非对称)加密体制两类。1976年 W.Diffie和M.E.Hellman提出了公钥密码的概念,对整个密码学发展造成了深远的影响。当 前广泛应用的公钥密码系统是RSA,其优点在于原理简单,使用方便。但随着大整数因子分 解方法的不断改进以及计算机性能的不断提升,要保证RSA的安全性所需要的密钥位数不断 增长,目前一般认为RSA密钥的位数在1024 bit以上才有安全保障。密钥位数的增加直接导 致了加解密速度的大幅下降以及硬件开销的加大。椭圆曲线密码(ECC)是1985年由N.Koblitz和V. Miller提出的,它是利用有限域上的 椭圆曲线有限群代替离散对数问题中的有限循环群后得到的一类密码体制。由于椭圆曲线密 码具有安全性能高,处理速度快,带宽要求低和存储空间小等特点,与RSA相比,ECC在密 钥长度和运算速度上具有优越性。素域上的椭圆曲线E(Fp)由Weierstrass方程定义五 = + ox + 6 (mod p) (1) 其中P是素数,a, b为两个小于p的非负整数((Xa,"oo),且满足4fl3+2762(mod;^0 (2)方程(2)基于集合^(fl,&)可定义一个有限Abel群。在椭圆曲线密码体制中,核心运算是点乘(kP),我们可以将点乘分解为两种基本运算 点加(ECPADD)以及倍点(ECPDBL),点加和倍点运算可以采用不同的坐标系来实现。常用的 坐标系是仿射坐标系和Jacobi投影坐标系。以下分别介绍仿射坐标系和Jacobi投影坐标系。仿射坐标系平面上过一定点O作两条相交的轴x和y,它们的交角是w .以定点0为 原点,在每条轴上取长度单位(分别是OA、 (9五2),这样就在平面上建立了一个仿射坐标系,如图1所示。对于平面上任一点M,过M作两轴的平行线,与两轴分别交于M。 M2,它们在两轴的坐标分别是x、 y,于是点M就对应有序数组(x, _y)。Jacobi投影坐标系Jacobi投影坐标系下的点(X, Y, Z)和仿射坐标系下的点(x, y) —一对 应,且满足FX/Z2、 y=Y/Z3。给定仿射坐标系下的坐标(x,y),转换成Jacobi投影坐标系下 的坐标为(X,Y,Z),其中X^、 Y=y、 Z=l;给定Jacobi投影坐标系下的坐标(X,Y,Z),转换成 放射坐标系下的坐标为(x,y),且满足x=X/Z2、 y=Y/Z3。同时,仿射坐标系下的无穷远点和 Jacobi投影坐标系下的点(l, l,O)对应。以下介绍素数域椭圆曲线点加和倍点在仿射坐标系下的定义点加定义如图2所示,在椭圆曲线上取两点尸(^乂)和2(X2,h),令(9点表示无穷远点。计算 i^尸+ g称为倍点运算,其中R坐标为0^,h)。1) 如果a 二JC2且^ =-y2,贝1|^ =尸+ 2 = 0。2) 若l)条件不成立,则有点/ =尸+ 2,满足A二(^^)"-^)1 (4)倍点定义如图3所示,在椭圆曲线上取一点P(;^,:^),令O点表示无穷远点。计算及=2尸称为倍点 运算,其中R坐标为(&,力)。1) 如果乂二o,则及=2尸=0。2) 若y^0,则有点i 二2P,满足&=(^^)2-2x, (5) yfi = -)0! _ &) _ X (6)由于在椭圆曲线密码体制中求逆运算要比乘法慢,而在投影坐标系中不涉及求逆,所以 一般会将仿射坐标转换为投影坐标再进行计算。下面给出Jacobi在投影坐标下点加和倍点的计算公式。可以看出,公式只用到了模加和模乘操作。表l点加计算公式点加输入取,1[,2;),讽,《,1)欲《=欧-]Q2 -陷2 +《XM2 _对《=喊-鹏^2 -《)2 -《]-Wf -A):表2倍点计算公式 倍点输入:尸",i;,z,)输出:辨《,F3,Z3)二2尸 公式.-g =(3《+aZ14)(4JT1}f -X3)_8i;'对于模乘运算, 一般使用Montgomery模乘算法,该算法如下所示:输入《r,见A步骤2. r =3. M =Tx WmodA 」。T + M x5. 如果S 2 W,贝U S = S —6. 返回S。可以看出, 一次模乘主要分解为三次乘法运算。计算椭圆曲线的点加和倍点,处于縮小面积的考虑, 一般用的是串行计算的方法,但是, 串行计算的效率比较低下,通过分析点加和倍点运算的数据相关性,可以得出在串行计算中 很多相互独立的操作也被视为有了依赖关系,从而造成时钟周期数的浪费,本发明正是根据 这一问题而提出了对于倍点计算的有效解决方案。10发明内容本发明的目的在于提出一种椭圆曲线密码系统的倍点系统,在不增加面积的情况下提高 倍点的运算速度,在一个基本的层面上优化椭圆曲线点乘的性能。 本发明的特征在于该倍点系统是在专用数字集成电路芯片中采用ASIC流程实现的。含有倍点寄存器控制 器;倍点多路选择控制器;第一多路选择器组,由六个多路选择器muxl、mux2、mux3、mux4、 mux5、 mux6构成;中间变量寄存器组,由六个中间变量寄存器Regl、 Reg2、 Reg3、 Reg4、 Reg5、 Reg6构成;第二多路选择控制器,由四个多路选择器lmuxl、 lmux2、 lmux3、 lmux4 构成,其中所述倍点寄存器控制器,是一个有限状态机,输入为形式为010101......且占空比为l:l的方波时钟信号Clk,以及低电平有效的开始信号Start,输出为六个各自均为2个比特的操 作控制信号Cl、 C2、 C3、 C4、 C5、 C6,所述倍点寄存器控制器在开始信号有效后按以下 各轮中时钟节拍在各个时钟输出不同的Cl一 C2— C3— C4— C5一 C6各操作控制信号的组合 初始化时,令各中间变量寄存器分别为i eg7 <~《,i eg2 <~《,i eg3仨Z! , i eg^仨1 , i eg5 <~ 1 , i eg(5 — a ,(X,, X,;)为Jacobi投影坐标下椭圆曲线上的点P的坐标, l为常量,a为素数域椭圆曲线方程£ : / = x3 + w + 6 (mod p)中的参数a, 令R = 2P,点R的坐标为(Z3, Z3),Cl_ C2— C3_ C4— C5_ C6中每个操作控制信号均为00,在以下叙述中省略各操作 控制信号的标志; 第一轮Al中在第1时钟周期,操作控制信号均为11—11—11—11—10—11, 在第2时钟周期,操作控制信号为11—10—11—11—11—11, 在第3时钟周期,操作控制信号为10—11—11—11—11—11, 在第4~第8时钟周期,操作控制信号均为11一11—ll一ll一ll一ll, 在第9时钟周期,操作控制信号为11_11_11—11—01_11; 第二轮A2中在第10时钟周期,操作控制信号为11—11—11—11—01—11, 在第11时钟周期,操作控制信号均为11—01—11—10—11_11,在第12时钟周期,操作控制信号为10_11—11_11一11—11, 在第13时钟周期,操作控制信号为11_11—11—11—11—11, 在第14时钟周期,操作控制信号为10—11_11一11—11_11, 在第15~第17时钟周期,操作控制信号为11—11—11—11—11_11, 在第18时钟周期,操作控制信号为11—01—11—11_11_11; 第三轮A3中在第19时钟周期,操作控制信号为11_11_01—11—11—11, 在第20时钟周期,操作控制信号为11—11—11—11—11_01, 在第21时钟周期,操作控制信号为11—10_11_11一11—11, 在第22~第26时钟周期,操作控制信号均为11—11—11—11—11—11, 在第27时钟周期,操作控制信号为11—11—11—01—11—11; 第四轮A4中在第28时钟周期,操作控制信号为01—11_11_10_11_11, 在第29~第36时钟周期,操作控制信号均为11—11—11_11—11—11; 第五轮A5中在第37时钟周期,操作控制信号为01_11_11—11—11—10, 在第38时钟周期,操作控制信号为10—01—11_11_11_11, 在第39时钟周期,操作控制信号为11—11—11—10_11一11, 在第40~第45时钟周期,操作控制信号均为11_11_11_11—11—11; 第六轮A6中在第46时钟周期,操作控制信号为11—11—11—11—11—11, 在第47时钟周期,操作控制信号为11—01—11_11—11—11, 在第48时钟周期,操作控制信号为11—10—11—11一11_11; 所述倍点多路选择控制器,是一个有限状态机,输入为所述开始信号Start、所述时钟信 号Clk,输出均为3个比特的选通控制信号CL1、 CL2、 CL3、 CL4,所述倍点多路选择控 制器在所述开始信号Start有效后的各轮中,在下述每个时钟周期均输出不同的选通控制信号 CL1、 CL2、 CU、 CL4的组合;在所述初始化时,CL1—CL2_CL3_CL4中每个选通控制信号均为000,在以后叙述中省略 各选通控制信号的标志; 在所述第一轮A1中在所述第1时钟周期,选通控制信号为011—011_001_001, 在所述第2时钟周期,选通控制信号为010_010—010_010,在所述第3时钟周期,选通控制信号为001_001—101—101,在所述第4~第9时钟周期,选通控制信号均为000—000_000—000; 在所述第二轮A2中在所述第10时钟周期,选通控制信号为000—000—000—000,在所述第11时钟周期,选通控制信号为010—011—111—111,在所述第12时钟周期,选通控制信号为001—101—111_111,在所述第13时钟周期,选通控制信号为000—000—000—000,在所述第14时钟周期,选通控制信号为000—000—001—010,在所述第15~第18时钟周期,选通控制信号均为000—000—000—000; 在所述第三轮A3中在所述第19时钟周期,选通控制信号为110—000—000—000,在所述第20时钟周期,选通控制信号为100—100—000—000,在所述第21时钟周期,选通控制信号为110—110—111_111,在所述第22~第27时钟周期,选通控制信号均为000—000—000_000; 在所述第四轮A4中在所述第28时钟周期,选通控制信号为000—000一001_111,在所述第29时钟周期,选通控制信号为111—111_000—000,在所述第30时钟周期,选通控制信号为100—110—000—000,在所述第31~第36时钟周期,选通控制信号均为000—000—000_000; 在所述第五轮A5中在所述第37时钟周期,选通控制信号为000_000—001—001,在所述第38时钟周期,选通控制信号为000_000_111_010,在所述第39时钟周期,选通控制信号为111—100—111_110,在所述第40~第45时钟周期,选通控制信号均为000—000—000—000; 在所述第六轮A6中在所述第46时钟周期,选通控制信号为000—000—OOOJ)OO,在所述第47时钟周期,选通控制信号为000_000—000_000,在所述第48时钟周期,选通控制信号为000—000—100—111; 所述第一多路选择器组,其中各个多路选择器muxl mux6各自的选择信号输入端先后依次分别与所述倍点寄存器控 制器的各操作控制信号输出端相连,分别输入各个操作控制信号C1 C6,各个多路选择器muxl mux6各自的00端先后依次输入A、 ^ 、 Z, 、 1、 1、 a,各个多路选择器muxl mux6各自的模乘数据输入端01共同与所述倍点电路系统外的 模乘器的模乘数据r—niul输出端相连,各个多路选择器muxl mux6各自的模加数据输入端10共同与所述倍点电路系统外的 模加器的模加数据r—add输出端相连; 所述中间变量寄存器组,其中各个中间变量寄存器寄存Regl Reg6的第一输入端先后依次分别与所述各多路选择 器muxl mux6的信号Dl、 D2、 D3、 D4、 D5、 D6的输出端相连,所述Regl Reg6的第二输入 端互连后接时钟信号Clk的输出端;所述第二多路选择器组,其中各个多路选择器lmuxl lmux4各自的选择信号输入端先后依次分别与所述倍点多路 选择控制器的各选通控制信号输出端相连,分别输入各个选通控制信号CL1 CL4, 多路选择器lmuxl、 lraux2的000输入端互连后接所述常量1,多路选择器lmux3、 lmux4的000输入端互连后接所述模加器的模加信号r—add的输出A山顿,各个多路选择器lmuxl lmux4的001输入端互连后接所述中间变量寄存器Regl的信 号T1的输出端,所述信号T1的输出端同时与所述第一多路选择器组中的多路选择器muxl的 ll输入端相连,各个多路选择器lmuxl lmux4的010输入端互连后接所述中间变量寄存器Reg2的信 号T2的输出端,所述信号T2的输出端同时与所述第一多路选择器组中的多路选择器mux2的 ll输入端相连,各个多路选择器lmuxl lmux4的011输入端互连后接所述中间变量寄存器Reg3的信 号T3的输出端,所述信号T3的输出端同时与所述第一多路选择器组中的多路选择器mux3的 ll输入端相连,各个多路选择器lrauxl lmux4的100输入端互连后接所述中间变量寄存器Reg4的信 号T4的输出端,所述信号T4的输出端同时与所述第一多路选择器组中的多路选择器mux4的 ll输入端相连,各个多路选择器lmnxl lmijx4的101输入端互连后接所述中间变量寄存器Reg5的信 号T5的输出端,所述信号T5的输出端同时与所述第一多路选择器组中的多路选择器mux5的 ll输入端相连,各个多路选择器lmuxl l咖x4的110输入端互连后接所述中间变量寄存器Reg6的信 号T6的输出端,所述信号T6的输出端同时与所述第一多路选择器组中的多路选择器mux6的 ll输入端相连,多路选择器lmuxl、lmux2的111输入端互连后接所述模加器的模加信号r_add的输出端,多路选择器lmux3、 lmux4的111输入端互连后接所述模乘器的模乘信号r_nml的输出端,所述多路选择器lrauxl、 lmux2的输出信号mull、 mul2分别送入所述模乘器的两个输入端;所述多路选择器lmux3、 lmux4的输出信号addl、 add2分别送入所述模加器的两个输入端;在所述第一轮A1中所述模乘器的输出r—mul使r5 — r32 , r5 <~ r22 , r2 <~ f2 ,所述模加器的输出r一add使在所述第二轮A2中所述模乘器的输出r—mul使r2<~:r52, r3<~r2xr3, r6<~7;xr5,所述模加器的输出r—add使r4—:r5+r5, ?;<~r2+r2, 7;<~7;+72;在所述第三轮A3中所述模乘器的输出r_mul使r4 —r2xr6, 7;—r42, 7;—r42,所述模加器的输出r—add使在所述第四轮A4中所述模乘器的输出r—mul使7;—r42, 7;—r42, r2—r4xr6,所述模加器的输出r—add使在所述第五轮A5中使 所述模加器的输出r—add使在所述第六轮A6中所述模加器的输出r一add使:r2<~r4-r2,得到义3=7;, y3=r2, z3=r3;符号"表示用右边的数据去代替左边的数据。 本发明基于三级流水的大数模乘器,通过分析椭圆曲线密码倍点运算的数据相关性,将 其中相互独立的运算提取出来,利用六个中间变量寄存器,重复利用了模乘器逻辑单元和寄 存器单元,提高了倍点的运算速度,在一个基本的层面上提高了点乘的运算速度。本设计硬件上用ASIC实现,用Verilog进行行为级建模,用Verilog进行RTL级编码和仿真。基于SMIC0.18pm最坏的工艺完成综合,并提取门延时信息,进行门级仿真验证。测试的结果表明,与现有的设计相比,本发明在不增加面积的情况下提高了数据的吞吐率。表3给出了本倍点解决方案和串行方案的比较结果。表3方案比较结果实现方案倍点/时钟周期资源串行 (IEEE标准)901个模乘器 1个模加器 7个中间寄存器本文491个模乘器 1个模加器 6个中间寄存器


图l仿射坐标系;图2椭圆曲线点加运算定义;图3椭圆曲线倍点运算定义;图4椭圆曲线倍点数据相关性分析;图5 —种三级流水的模乘器结构;图6 —种模加器结构;图7椭圆曲线倍点实现结构;图8椭圆曲线倍点实现流程图。16本发明的思路在于1)利用Jacobi投影坐标系下椭圆曲线倍点的计算公式,进行数据相 关性分析,将相互独立的操作提取出来,确定流水线级数为三级。2)分析倍点运算中的关键 操作,将其置为最高优先级,然后将较低优先级的操作根据运算次序依次放入流水线过程中, 同时使得所用中间变量寄存器数目最小。3)根据单次模乘所需要耗费的时钟周期数,在一般 意义上提炼出针对三级流水线的倍点的时间耗费。以下详细说明这三个思路1) 倍点的数据相关性分析-如表1所示,利用Jacobi投影坐标系下椭圆曲线倍点的计算公式,分析出倍点的数据相 关性分别如图4所示。图4中,椭圆内的操作为模乘操作,方框内的操作为模加操作。模乘操作和模加操作是 并行进行的,分别调用模乘器和模加器。水平方向上的操作为一层,各层内部之间的操作是 相互独立的,不存在数据依赖性。而在各层之间的操作则存在数据依赖性,必须要等上一层 的数据计算完毕之后才能进行下一层的计算。二级和四级的流水线都会使得整个流水线的利 用率不高。由图4可确定流水线的级数为三级,使得流水线的利用率接近100%。下面详细说明倍点的数据相关性分析结论如图4所示倍点的数据相关性分析图,第一级相互独立的模乘操作为Z,, Jf, ^2,第 一级相互独立的模加操作为2i;, 4Z1;第二级相互独立的模乘操作为Z/, 23=(2《)^, (4《)}f ,第二级相互独立的模加操作为2lf , 3《2, 4=8《lf ;第三级相互独立的模乘操 作为aZ/, 4f,第三级相互独立的模加操作为4-3J^+^4, 8f;第四级相互独立的模乘操作为A2, ^3=4^^ ;i^^^,第四级相互独立的模加操作为x^A2-^,义4=^-8 ;4,如图5所示即为一种三级流水的模乘器示例。它的输入为乘数X,被乘数Y,以及模式 mode。第一级流水对X分别对X, Y进行编码;第二级流水为部分积选择和部分积阵列压縮; 第三级流水为42部分积阵列压縮。其中mode信号控制两个多路选择器选通从外部输入还是 已经计算出的sum结果。如图6所示为一种模加器示例,它由两个加法器和一个CSA组成,输入为x, y, n以及 sel信号,输出为z,在sd信号为高时为模加运算,sd信号为低时为模减运算。2) 倍点在流水线中的调度次序根据l)的分析确定流水线级数之后。从表2的计算公式来看,关键的操作是^3的得出。所以需要将计算^3的操作次序置为优先级最高。从图4中找到;^的路径,将路径上的操作放在每次流水的最前。然后将其他的操作分别安插于流水线上,使得流水次数最少。另外, 通过调度与分配算法,对中间变量寄存器的数目进行优化,在三级流水线下得到的优化结果 是需要六个中间变量寄存器,即可完成全部倍点操作。 3)倍点的时间耗费通过2)的优化过程,进行1次单独的模乘运算耗费9个时钟周期,l次单独的模加运算耗费l个时钟周期,得出的结论是利用三级流水,使用六个中间变量寄存器,经过六次流水过程即可完成倍点运算,作一次倍点运算所耗费的时钟周期数c满足C = 49 (8)根据以上三个思路,本发明提出了具体的椭圆曲线密码的倍点的实现,如图7所示为椭 圆曲线倍点实现的硬件图,包括寄存器和模乘器以及模加器的连接。图7中的倍点寄存器控制器是一个有限状态机,它的输入为开始信号Start与时钟Clk, 输出均为2个比特的控制信号C1、 C2、 C3、 C4、 C5、 C6,分别控制多路选择器muxl、 mux2、 mux3、 mux4、 mux5、 mux6。倍点寄存器控制器在Start有效后的每个时钟周期均输出不同的 CI—C2—C3—C4—C5—C6组合。Cl、 C2、 C3、 C4、 C5、 C6在Start有效后的每个时钟周期的具 体值如图8中Cl—C2—C3—C4—C5_C6所示。图7中的倍点多路选择控制器是一个有限状态机,它的输入为开始信号Start与时钟Clk, 输出均为3个比特的控制信号CL1、 CL2、 CL3、 CL4,分别控制多路选择器lmuxl、 lmux2、 lmux3、 lmux4,倍点多路选择控制器在Start有效后的每个时钟周期均输出不同的 CLl—CL2j:L3j:L4组合。CL1、 CL2、 CL3、 CL4在Start有效后的每个时钟周期的具体值如 图8中C1_C2_C3_C4_C5—C6所示。图7中有6个中间变量寄存器分别为Regl、 Reg2、 Reg3、 Reg4、 Reg5、 Reg6,用来寄 存中间计算结果。它们有一个公共输入信号为时钟Clk。除此之外Regl还有输入信号D1, 输出信号T1,其中D1为多路选择器muxl的输出;Reg2还有输入信号D2,输出信号T2, 其中D2为多路选择器mux2的输出;Reg3还有输入信号D3,输出信号T3,其中D3为多路 选择器mux3的输出;Reg4还有输入信号D4,输出信号T4,其中D4为多路选择器mux4的 输出;Reg5还有输入信号D5,输出信号T5,其中D5为多路选择器mux5的输出;Reg6还 有输入信号D6,输出信号T6,其中D6为多路选择器mux6的输出。图7中的多路选择器muxl、 mux2、 mux3、 mux4、 mux5、 mux6分别用来选通中间变量 寄存器Regl、 Reg2、 Reg3、 Reg4、 Reg5、 Reg6的输入信号。它们均为4输入1输出,有两个公共的输入信号分别为r_mul和r—add,其中r_mul为模乘器的输出,r—add为模加器的输 出。除此之外,muxl还有输入信号Xl,输出信号D1,其中XI用来初始化寄存器T1, Dl 为寄存器Regl的输入;mux2还有输入信号Yl,输出信号D2,其中Yl用来初始化寄存器 T2, D2为寄存器Reg2的输入;mux3还有输入信号Zl,输出信号D3,其中Zl用来初始化 寄存器T3, D3为寄存器Reg3的输入;mux4还有输入信号常量1,输出信号D4,其中常量 1用来初始化寄存器T4, D4为寄存器Reg4的输入;mux5还有输入信号常量1,输出信号 D5,其中常量1用来初始化寄存器T5, D5为寄存器Reg5的输入;mux6还有输入信号a, 输出信号D6,其中a用来初始化寄存器T6, D6为寄存器Reg6的输入。图7中4个多路选择器lmuxl、 lmux2、 lmux3、 lmux4均为8输入1输出,其中lmuxl、 lmux2分别用来选通模乘器的乘数和被乘数,mux3、 lmux4分别用来选通模加器的加数和被 加数。T1 T6为六个中间变量寄存器的输出,l为常数。模乘器的输入为mull, mul2,输出为 r_mul;模加器的输入为addl, add2,输出为r—add;多路选择器lmuxl的输入为1、 Tl、 T2、 T3、 T4、 T5、 T6、 r—add,输出为mull;多路选择器lmux2的输入为1、 Tl、 T2、 T3、 T4、 T5、 T6、 r_add,输出为mul2;多路选择器lmux3的输入为r—add、 Tl、 T2、 T3、 T4、 T5、 T6、 r_mul,输出为addl;多路选择器lmux4的输入为r—add、 Tl、 T2、 T3、 T4、 T5、 T6、 r—mul,输出为add2;按照图8所示的倍点的流水线实现流程,其具体步骤说明如下令中间变量寄存器分别为7;~7;,令RKA, g, Z3), P=(《,",ZJ,即计算R-2P。 步骤(l).初始化阶段对中间变量寄存器进行初始化,r2—《石—z1; r4—i, r5—i, r6 — a,其中a为椭圆曲线中的系数;步骤(2).进行第i次流水过程,对于模乘器依次进行7;—r32, r5—r22, r2—t;2,对于 模加器依次进行7;—A+7;, r2—r2+r2, 7;—r5+r5,每次模乘运算耗费时钟周期为9,每 次模加运算耗费时钟周期为1。对于模乘器,在该次流水的第1个时钟上升沿输入两个乘数T;和;,在第IO个时钟上升沿之前更新T;,在第2个时钟上升沿输入两个乘数72和72,在第ii个时钟上升沿之前更新T;,在第3个时钟上升沿输入两个乘数7;和7;,在第12个时钟上升 沿之前更新r,。从第4个到第9个时钟上升沿的输入对于模乘器无效。对于模加器,在该次 流水的第i个时钟上升沿输入两个加数^和7;,在第2个时钟上升沿之前更新z;,在第2个数7^和7^,在第3个时钟上升沿之前更新72,在第3个时钟上升沿输入两个加数7;和r5,在第4个时钟上升沿之前更新A;歩骤(3).进行第2次流水过程,对于模乘器依次进行7^2—r52, r3—r2xr3, 7jxz;, 对于模加器依次进行o仨o+o, r4er5 + r5, 7;—r2+r2,《—^+r2,其中o仨o+o代表模乘器不进行任何操作;步骤(4).进行第3次流水过程,对于模乘器依次进行7;—r2xr6, r42, z;—r42,对于模加器依次进行7;卄7;+7;, o卄o+o, r2—r6 + r6;歩骤(5).进行第4次流水过程,对于模乘器依次进行7; —r42, 7;—r42, r2 —r4xr6, 对于模加器依次进行7;仨7;+7;, o — o+o, 0 — 0+0;步骤(6).进行第5次流水过程,对于模乘器依次进行7^—7;x7; , r2 —《x7;, r2—7;xr4,对于模加器依次进行7; — 7;+7;, z;-r2, r4—r2-r6;歩骤(7).模乘器停止工作,对于模加器依次进行o —o+o, o — o+o, r2—r4-r2,之 后有^=7;, f,=7;, 4=7;,倍点计算完毕。20
权利要求
1.用于椭圆曲线密码体制的倍点系统,其特征在于该倍点系统是在专用数字集成电路芯片中采用ASIC流程实现的。含有倍点寄存器控制器;倍点多路选择控制器;第一多路选择器组,由六个多路选择器mux1、mux2、mux3、mux4、mux5、mux6构成;中间变量寄存器组,由六个中间变量寄存器Reg1、Reg2、Reg3、Reg4、Reg5、Reg6构成;第二多路选择控制器,由四个多路选择器lmux1、lmux2、lmux3、lmux4构成,其中所述倍点寄存器控制器,是一个有限状态机,输入为形式为010101……且占空比为1∶1的方波时钟信号Clk,以及低电平有效的开始信号Start,输出为六个各自均为2个比特的操作控制信号C1、C2、C3、C4、C5、C6,所述倍点寄存器控制器在开始信号有效后按以下各轮中时钟节拍在各个时钟输出不同的C1_C2_C3_C4_C5_C6各操作控制信号的组合初始化时,令各中间变量寄存器分别为Reg1←X1,Reg2←Y1,Reg3←Z1,Reg4←1,Reg5←1,Reg6←a,(X1,Y1,Z1)为Jacobi投影坐标下椭圆曲线上的点P的坐标,1为常量,a为素数域椭圆曲线方程Ey2=x3+ax+b(modp)中的参数a,令R=2P,点R的坐标为(X3,Y3,Z3),C1_C2_C3_C4_C5_C6中每个操作控制信号均为00,在以下叙述中省略各操作控制信号的标志;第一轮Δ1中在第1时钟周期,操作控制信号均为11_11_11_11_10_11,在第2时钟周期,操作控制信号为11_10_11_11_11_11,在第3时钟周期,操作控制信号为10_11_11_11_11_11,在第4~第8时钟周期,操作控制信号均为11_11_11_11_11_11,在第9时钟周期,操作控制信号为11_11_11_11_01_11;第二轮Δ2中在第10时钟周期,操作控制信号为11_11_11_11_01_11,在第11时钟周期,操作控制信号均为11_01_11_10_11_11,在第12时钟周期,操作控制信号为10_11_11_11_11_11,在第13时钟周期,操作控制信号为11_11_11_11_11_11,在第14时钟周期,操作控制信号为10_11_11_11_11_11,在第15~第17时钟周期,操作控制信号为11_11_11_11_11_11,在第18时钟周期,操作控制信号为11_01_11_11_11_11;第三轮Δ3中在第19时钟周期,操作控制信号为11_11_01_11_11_11,在第20时钟周期,操作控制信号为11_11_11_11_11_01,在第21时钟周期,操作控制信号为11_10_11_11_11_11,在第22~第26时钟周期,操作控制信号均为11_11_11_11_11_11,在第27时钟周期,操作控制信号为11_11_11_01_11_11;第四轮Δ4中在第28时钟周期,操作控制信号为01_11_11_10_11_11,在第29~第36时钟周期,操作控制信号均为11_11_11_11_11_11;第五轮Δ5中在第37时钟周期,操作控制信号为01_11_11_11_11_10,在第38时钟周期,操作控制信号为10_01_11_11_11_11,在第39时钟周期,操作控制信号为11_11_11_10_11_11,在第40~第45时钟周期,操作控制信号均为11_11_11_11_11_11;第六轮Δ6中在第46时钟周期,操作控制信号为11_11_11_11_11_11,在第47时钟周期,操作控制信号为11_01_11_11_11_11,在第48时钟周期,操作控制信号为11_10_11_11_11_11;所述倍点多路选择控制器,是一个有限状态机,输入为所述开始信号Start、所述时钟信号Clk,输出均为3个比特的选通控制信号CL1、CL2、CL3、CL4,所述倍点多路选择控制器在所述开始信号Start有效后的各轮中,在下述每个时钟周期均输出不同的选通控制信号CL1、CL2、CL3、CL4的组合;在所述初始化时,CL1_CL2_CL3_CL4中每个选通控制信号均为000,在以后叙述中省略各选通控制信号的标志;在所述第一轮Δ1中在所述第1时钟周期,选通控制信号为011_011_001_001,在所述第2时钟周期,选通控制信号为010_010_010_010,在所述第3时钟周期,选通控制信号为001_001_101_101,在所述第4~第9时钟周期,选通控制信号均为000_000_000_000;在所述第二轮Δ2中在所述第10时钟周期,选通控制信号为000_000_000_000,在所述第11时钟周期,选通控制信号为010_011_111_111,在所述第12时钟周期,选通控制信号为001_101_111_111,在所述第13时钟周期,选通控制信号为000_000_000_000,在所述第14时钟周期,选通控制信号为000_000_001_010,在所述第15~第18时钟周期,选通控制信号均为000_000_000_000;在所述第三轮Δ3中在所述第19时钟周期,选通控制信号为110_000_000_000,在所述第20时钟周期,选通控制信号为100_100_000_000,在所述第21时钟周期,选通控制信号为110_110_111_111,在所述第22~第27时钟周期,选通控制信号均为000_000_000_000;在所述第四轮Δ4中在所述第28时钟周期,选通控制信号为000_000_001_111,在所述第29时钟周期,选通控制信号为111_111_000_000,在所述第30时钟周期,选通控制信号为100_110_000_000,在所述第31~第36时钟周期,选通控制信号均为000_000_000_000;在所述第五轮Δ5中在所述第37时钟周期,选通控制信号为000_000_001_001,在所述第38时钟周期,选通控制信号为000_000_111_010,在所述第39时钟周期,选通控制信号为111_100_111_110,在所述第40~第45时钟周期,选通控制信号均为000_000_000_000;在所述第六轮Δ6中在所述第46时钟周期,选通控制信号为000_000_000_000,在所述第47时钟周期,选通控制信号为000_000_000_000,在所述第48时钟周期,选通控制信号为000_000_100_111;所述第一多路选择器组,其中各个多路选择器mux1~mux6各自的选择信号输入端先后依次分别与所述倍点寄存器控制器的各操作控制信号输出端相连,分别输入各个操作控制信号C1~C6,各个多路选择器mux1~mux6各自的00端先后依次输入X1、Y1、Z1、1、1、a,各个多路选择器mux1~mux6各自的模乘数据输入端01共同与所述倍点电路系统外的模乘器的模乘数据r_mul输出端相连,各个多路选择器mux1~mux6各自的模加数据输入端10共同与所述倍点电路系统外的模加器的模加数据r_add输出端相连;所述中间变量寄存器组,其中各个中间变量寄存器寄存Reg1~Reg6的第一输入端先后依次分别与所述各多路选择器mux1~mux6的信号D1、D2、D3、D4、D5、D6的输出端相连,所述Reg1~Reg6的第二输入端互连后接时钟信号Clk的输出端;所述第二多路选择器组,其中各个多路选择器lmux1~lmux4各自的选择信号输入端先后依次分别与所述倍点多路选择控制器的各选通控制信号输出端相连,分别输入各个选通控制信号CL1~CL4,多路选择器lmux1、lmux2的000输入端互连后接所述常量1,多路选择器lmux3、lmux4的000输入端互连后接所述模加器的模加信号r_add的输出端,各个多路选择器lmux1~lmux4的001输入端互连后接所述中间变量寄存器Reg1的信号T1的输出端,所述信号T1的输出端同时与所述第一多路选择器组中的多路选择器mux1的11输入端相连,各个多路选择器lmux1~lmux4的010输入端互连后接所述中间变量寄存器Reg2的信号T2的输出端,所述信号T2的输出端同时与所述第一多路选择器组中的多路选择器mux2的11输入端相连,各个多路选择器lmux1~lmux4的011输入端互连后接所述中间变量寄存器Reg3的信号T3的输出端,所述信号T3的输出端同时与所述第一多路选择器组中的多路选择器mux3的11输入端相连,各个多路选择器lmux1~lmux4的100输入端互连后接所述中间变量寄存器Reg4的信号T4的输出端,所述信号T4的输出端同时与所述第一多路选择器组中的多路选择器mux4的11输入端相连,各个多路选择器lmux1~lmux4的101输入端互连后接所述中间变量寄存器Reg5的信号T5的输出端,所述信号T5的输出端同时与所述第一多路选择器组中的多路选择器mux5的11输入端相连,各个多路选择器lmux1~lmux4的110输入端互连后接所述中间变量寄存器Reg6的信号T6的输出端,所述信号T6的输出端同时与所述第一多路选择器组中的多路选择器mux6的11输入端相连,多路选择器lmux1、lmux2的111输入端互连后接所述模加器的模加信号r_add的输出端,多路选择器lmux3、lmux4的111输入端互连后接所述模乘器的模乘信号r_mul的输出端,所述多路选择器lmux1、lmux2的输出信号mul1、mul2分别送入所述模乘器的两个输入端;所述多路选择器lmux3、lmux4的输出信号add1、add2分别送入所述模加器的两个输入端;在所述第一轮Δ1中所述模乘器的输出r_mul使T5←T32,T5←T22,T2←T12,所述模加器的输出r_add使T5←T1+T1,T2←T2+T2,T1←T5+T5;在所述第二轮Δ2中所述模乘器的输出r_mul使T2←T52,T3←T2×T3,T6←T1×T5,所述模加器的输出r_add使T4←T5+T5,T1←T2+T2,T1←T1+T2;在所述第三轮Δ3中所述模乘器的输出r_mul使T4←T2×T6,T1←T42,T1←T42,所述模加器的输出r_add使T4←T5+T5,T2←T6+T6;在所述第四轮Δ4中所述模乘器的输出r_mul使T1←T42,T1←T42,T2←T4×T6,所述模加器的输出r_add使T4←T1+T4;在所述第五轮Δ5中所述模乘器的输出r_mul使T2←T1×T4,T2←T1×T4,T2←T1×T4,所述模加器的输出r_add使T6←T1+T1,T1←T1-T2,T4←T2-T6;在所述第六轮Δ6中所述模加器的输出r_add使T2←T4-T2,得到X3=T1,Y3=T2,Z3=T3;符号“←”表示用右边的数据去代替左边的数据。
全文摘要
椭圆曲线密码系统的倍点系统,属于椭圆曲线密码系统的倍点技术领域。其特征在于含有倍点寄存器控制器、倍点多路选择控制器、第一多路选择器组、中间变量寄存器组以及第二多路选择器组;在倍点多路选择控制器输出的选通控制信号下,在六个流水线过程内由位于倍点系统外的模乘器和模加器对第二多路选择器组输出的乘数和加数完成倍点运算;在每一个流水过程内,在所述选通控制信号控制下,模乘器和模加器分别向第一、第二两个多路选择器组返回中间数据;在倍点寄存器控制器输出的操作控制信号控制下,控制第一多路选择器组中的各个多路选择器通过中间变量寄存器组向第二多路选择器组输出相应的乘数和加数。本发明提高了倍点运算速度,在一个基本层面上优化了椭圆曲线的点乘性能,提高了数据吞吐率。
文档编号H04L9/32GK101262345SQ200810055618
公开日2008年9月10日 申请日期2008年1月4日 优先权日2008年1月4日
发明者张霄鹏, 李树国 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1