一种流水线型椭圆曲线双标量乘法系统及方法

文档序号:6576478阅读:196来源:国知局
专利名称:一种流水线型椭圆曲线双标量乘法系统及方法
一种流水线型椭圆曲线双标量乘法系统及方法
技术领域
本发明涉及快速实现椭圆曲线加密算法的电路结构领域,特别涉及一种流 水线型椭圆曲线双标量乘法系统及方法。背景技术
随着计算机网络和通信技术的飞速发展,互联通信成为生活中最重要的组
成部分。传统公钥密码体制如RSA由于公钥位数很长(一般为1024比特以上), 给网络数据传输带来了很大的负担。椭圆曲线密码在同样安全等级下具有更短 的密钥长度,从而在实现上节省了数据存储空间,减少了IC实现的面积,同时 更有效的利用网络带宽。椭圆曲线密码(ECC)由Koblitz和Miller于1985年 各自独立发现。其安全性是基于椭圓曲线上的加法群的离散对数问题(ECDLP) 求解的困难性。随着计算机性能的提高,密码所需要的密钥长度也不断增加, ECC与其他公钥密码相比更具有优势,如图1所示,椭圆曲线双标量乘法在ECC 加密算法中的应用。
几种重要的ECC加密算法涉及到两个椭圆曲线标量乘法的计算,而椭圆曲 线标量乘法是ECC的核心运算。由于椭圆曲线标量乘法计算步骤的复杂性,算 法中的循环和有限域元素的求逆运算一般采用硬件实现,而其它部分采用软件 的方式实现。
发明内容
为了解决现有技术椭圆曲线标量乘法计算步骤的复杂性的技术问题,本发 明提供了 一种流水线型椭圆曲线双标量乘法系统及方法。
本发明解决现有技术椭圆曲线标量乘法计算步骤的复杂性的技术问题所采 用的技术方案是提供一种流水线型椭圆曲线双标量乘法系统及方法。
本发明提供的一种流水线型椭圆曲线双标量乘法系统包括两个或三个有 限域平方运算单元、三个有限域乘法运算单元、 一个有限域加法运算单元、寄 存器组、若干多路选通器及控制逻辑单元;外部输入的常数b、椭圆曲线上两点
9的原始坐标(x,力、(",v)通过多路选通器与有限域乘法运算单元连接,原始坐标 的投影坐标/^1,^^,&)和0("1,1;,,"2,^)通过多路选通器与寄存器组连接;所述有 限域平方运算单元、有限域乘法运算单元分别通过多5^选通器与寄存器组连接。
根据本发明提供的流水线型椭圆曲线双标量乘法系统一优选技术方案是 所述流水线型椭圆曲线双标量乘法系统包括三个有限域平方运算单元的具体结 构为有限域平方运算单元(201)的输入端与多路选通器(220 )的输出端连 接,有限域平方运算单元(201)的输出端分别与多路选通器(208 )、多路选通 器(213)、多路选通器(214)及多路选通器(219)的输入端连接;有限域平 方运算单元(202 )的输入端与多路选通器(221)的输出端连接,有限域平方 运算单元(202 )的输出端分别与多路选通器(209 )及多路选通器(215)的输 入端连接;有限域平方运算单元(203 )的输入端与多路选通器(222 )的输出 端连接,有限域平方运算单元(203 )的输出端分别与多路选通器(210)及多 路选通器(216)的输入端连接;有限域乘法运算单元(204 )的输入端分别与 多路选通器(223 )及多路选通器(227 )的输出端连接,有限域乘法运算单元
(204 )的输出端分别与多路选通器(209 )、多路选通器(210 )、多路选通器(215 ) 及多路选通器(216)的输入端连接;有限域乘法运算单元(205 )的输入端分 别与多路选通器(224 )及多路选通器(228 )的输出端连接,有限域乘法运算 单元(205 )的输出端分别与多路选通器(211)及多路选通器(217)的输入端 连接;有限域乘法运算单元(206 )的输入端分别与多路选通器(225 )及多路 选通器(229 )的输出端连接,有限域乘法运算单元(206 )的输出端分别与多 路选通器(212)、多路选通器(213)、多路选通器(218)及多路选通器(219) 的输入端连接;有限域加法运算单元(207 )的输入端分别与多路选通器(226 ) 及多路选通器(230 )的输出端连接,有限域乘法运算单元(207 )的输出端分 别与多路选通器(208 )、多路选通器(211)、多路选通器(212)、多路选通器
(213)、多路选通器(214)、多路选通器(217)、多路选通器(218)及多路选 通器(219)的输入端连接;寄存器(231)的输入端与多路选通器(208)的输 出端连接,寄存器(231 )的输出端分别与多路选通器(208 )、多路选通器(209 )、 多路选通器(220 )及多路选通器(223 )的输入端连接;寄存器(232 )的输入 端与多路选通器(209 )的输出端连接,寄存器(232 )的输出端分别与多路选通器(208 )、多路选通器(209 )、多路选通器(210)、多路选通器(221)、多 路选通器(224 )、多路选通器(226 )、多路选通器(227 )及多路选通器(229 ) 的输入端连接;寄存器(233 )的输入端与多路选通器(210)的输出端连接, 寄存器(233 )的输出端分别与多路选通器(210)、多路选通器(222 )、多路选 通器(227 )及多路选通器(230 )的输入端连接;寄存器(234 )的输入端与多 路选通器(211)的输出端连接,寄存器(234 )的输出端分别与多路选通器(211 )、 多路选通器(224 )、多3各选通器(226 )及多^f各选通器(228 )的输入端连接; 寄存器(235 )的输入端与多路选通器(212)的输出端连接,寄存器(235 )的 输出端分别与多路选通器(210)、多路选通器(211)、多路选通器(225 )及多 路选通器(228 )的输入端连接;寄存器(236 )的输入端与多路选通器(213) 的输出端连接,寄存器(236 )的输出端分别与多路选通器(213)、多路选通器
(220 )、多路选通器(229 )及多路选通器(230 )的输入端连接;寄存器(237 ) 的输入端与多路选通器(214)的输出端连接,寄存器(237 )的输出端分别与 多路选通器(214)、多路选通器(215)、多路选通器(220 )及多路选通器(223) 的输入端连接;寄存器(238 )的输入端与多路选通器(215)的输出端连接, 寄存器(238 )的输出端分别与多路选通器(214)、多路选通器(215)、多路选 通器(221X多路选通器(224 )、多路选通器(226 )、多路选通器(227 )及多 路选通器(229 )的输入端连接;寄存器(239 )的输入端与多路选通器(216) 的输出端连接,寄存器(239 )的输出端分别与多路选通器(216)、多路选通器
(222 )、多路选通器(223 )及多路选通器(230 )的输入端连接;寄存器(240 ) 的输入端与多路选通器(217)的输出端连接,寄存器(240 )的输出端分别与 多路选通器(217 )、多路选通器(224 )、多路选通器(226 )及多路选通器(228 ) 的输入端连接;寄存器(241)的输入端与多路选通器(218)的输出端连接, 寄存器(241)的输出端分别与多路选通器(217)、多路选通器(218)、多路选 通器(225 )及多路选通器(228 )的输入端连接;寄存器(242 )的输入端与多 路选通器(219)的输出端连接,寄存器(242 )的输出端分别与多路选通器(219)、 多路选通器(220 )、多路选通器(225 )及多^各选通器(230 )的输入端连4妻; 所述x^ Zl, x2, Z2分别与多路选通器(208)、多路选通器(209 )、多路选通器
(211)及多路选通器(212)连接;所述un Vl, u2, V2分别与多路选通器(214)、多路选通器(215)、多路选通器(217)及多路选通器(218)连接;所述x, u 分别与多路选通器(225 )及多路选通器(229 )连接。
根据本发明提供的流水线型椭圆曲线双标量乘法系统一优选技术方案是 对于包括两个有限域平方器运算单元的流水线型椭圆曲线双标量乘法系统定义 所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的执行
时钟周期数分别为;,r"rs,其中,rw=z;=r, rM=3r+i;所述的流水线型椭 圆曲线双标量乘法系统^吏用4(3r+l)(w-i)个时钟周期完成两个椭圆曲线标量乘 法。
根据本发明提供的流水线型椭圆曲线双标量乘法系统一优选技术方案是 所述流水线型椭圓曲线双标量乘法系统包括两个有限域平方运算单元的具体结 构为有限域平方运算单元(301)的输入端与多路选通器(319)的输出端连 接,有限域平方运算单元(301)的输出端分别与多路选通器(307 )、多路选通 器(308 )、多路选通器(313)及多路选通器(314)的输入端连接;有限域平 方运算单元(302 )的输入端与多路选通器(320 )的输出端连接,有限域平方 运算单元(302)的输出端分别与多路选通器(309 )、多路选通器(312)、多路 选通器(315 )及多路选通器(318)的输入端连接;有限域乘法运算单元(303 ) 的输入端分别与多路选通器(321)及多路选通器(325)的输出端连接,有限 域乘法运算单元(303 )的输出端分别与多路选通器(308 )、多路选通器(309 )、 多路选通器(314)及多路选通器(315)的输入端连接;有限域乘法运算单元
(304 )的输入端分别与多路选通器(322 )及多路选通器(326 )的输出端连接, 有限域乘法运算单元(304 )的输出端分别与多路选通器(310)及多路选通器
(316)的输入端连接;有限域乘法运算单元(305 )的输入端分别与多路选通 器(323)及多路选通器(327 )的输出端连接,有限域乘法运算单元(305 )的 输出端分别与多路选通器(311)、多路选通器(312)、多路选通器(317)及多 路选通器(318)的输入端连接;有限域加法运算单元(306 )的输入端分别与 多路选通器(324 )及多路选通器(328 )的输出端连接,有限域乘法运算单元
(306 )的输出端分别与多路选通器(307 )、多路选通器(310 )、多路选通器(311 )、 多路选通器(312)、多路选通器(313)、多路选通器(316)、多路选通器(317) 及多路选通器(318 )的输入端连接;寄存器(329 )的输入端与多路选通器(307 )的输出端连接,寄存器(329 )的输出端分别与多路选通器(307 )、多路选通器 (308 )、多路选通器(319)及多路选通器(321)的输入端连接;寄存器(330) 的输入端与多路选通器(308 )的输出端连接,寄存器(330 )的输出端分别与 多路选通器(307 )、多路选通器(308 )、多5各选通器(309 )、多路选通器(319) 及多路选通器(322 )的输入端连接;寄存器(331)的输入端与多路选通器(309 ) 的输出端连接,寄存器(331)的输出端分别与多路选通器(309)、多路选通器 (320 )、多路选通器(325 )及多路选通器(328 )输入端连接;寄存器(332 ) 的输入端与多路选通器(310)的输出端连接,寄存器(332)的输出端分别与 多路选通器(310)、多路选通器(322 )、多路选通器(324 )及多路选通器(326 ) 的输入端连接;寄存器(333 )的输入端与多路选通器(311)的输出端连接, 寄存器(333 )的输出端分别与多路选通器(311)、多路选通器(323 )及多路 选通器(326 )的输入端连接;寄存器(334 )的输入端与多路选通器(312)的 输出端连接,寄存器(334 )的输出端分别与多路选通器(312 )、多路选通器(320 )、 多路选通器(327)及多路选通器(328 )的输入端连接;寄存器(335 )的输入 端与多路选通器(313)的输出端连接,寄存器(335 )<的输出端分别与多路选 通器(313)、多路选通器(319)、多路选通器(321)的输入端连接;寄存器(336 ) 的输入端与多路选通器(314)的输出端连接,寄存器(336 )的输出端分别与 多路选通器(313)、多路选通器(314)、多路选通器(315)、多路选通器(319)、 多路选通器(322 )多路选通器(324 )、多路选通器(325 )及多路选通器(3") 的输入端连接;寄存器(337)的输入端与多路选通器(315)的输出端连接, 寄存器(337 )的输出端分别与多路选通器(315)、多路选通器(320 )、多路选 通器(321)及多路选通器(328 )的输入端连接;寄存器(338 )的输入端与多 路选通器(316 )的输出端连接,寄存器(338 )的输出端分别与多路选通器(316 )、 多路选通器(322 )、多路选通器(324 )及多路选通器(326 )的输入端连接; 寄存器(339 )的输入端与多路选通器(317)的输出端连接,寄存器("9)的 输出端分别与多路选通器(316)、多路选通器(317)、多路选通器(323 )及多 路选通器(326 )的输入端连接;寄存器(340 )的输入端与多路选通器(318) 的输出端连接,寄存器(340 )的输出端分别与多路选通器(318)、多路选通器 (320 )、多路选通器(323)及多路选通器(328)的输入端连接;所述常数b与多路选通器(321)连接;所述xl, zl, x2, z2分别与多路选通器(307 )、 多路选通器(308 )、多路选通器(310)及多路选通器(311)连接;所述ul, vl, u2, v2分别与多路选通器(313)、多路选通器(314)、多路选通器(316) 及多路选通器(317)连接;所述x, u分别与多路选通器(323 )及多路选通器 (327 )连接。
根据本发明提供的流水线型椭圓曲线双标量乘法系统一优选技术方案是 对于包括两个有限域平方器运算单元的流水线型椭圆曲线双标量乘法系统定义 所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的执行
时钟周期数分别为4,7;,7;其中,rM=7;=r, rw=2r+i;所述的流水线型椭圆
曲线双标量乘法系统使用4(27>l)(w-l)个时钟周期完成两个椭圆曲线标量乘法。 根据本发明提供的流水线型椭圆曲线双标量乘法系统一优选技术方案是
所述有限域乘法器使用流水线缩短关键路径长度;具体如下
对于有限域乘法^W雖加。d,的,输入^W被分成「^"个字,即
其中。,被分成k个部分。f—',。"2,…,《,这k部分进入第一级流水线的k位并行 乘法器计算出","SW,。"BW,…,々W ,并在第二级流水线进行累加计算出WW; 。,sw经过/W求模后存入寄存器;这种有限域乘法器关键路径是PathO和Pathl 的最大者,即
max(乙柳+ 「log 2 / q7^训,「log 2A + l"]7^j + rmod)
其中《为字长,『■和&。《分别表示两输入与门和或非门的延迟。
本发明还提供了 一种流水线型椭圆曲线双标量乘法方法。所述流水线型椭
圓曲线双标量乘法方法包括以下步骤
初始化椭圆曲线上投影坐标点户(xl,zl,;c2,z2)和vl,"2, v2)初始化寄存器
JcUl,x2,z2和"l,vl,"2,v2,等待电路启动信号;定义&为有限域乘法运算单元执行
时钟周期数。
第l到4周期有限域乘法器计算义^,^Zt,AZ2。
第7^到27^周期有限域乘法器计算f/^,t/^,f/^,有限域平方器和加法器
计算JT,2,Z,2,"Z,2,义24+AZ2和",《,(X2Zi+XiZ2)2;此时包括的六个有限域平方运
算由两个有限域平方器运算单元分三次计算。
14第2rM到3匸周期有限域乘法器计算z^,4^z, +x1z2)2,;r1z2;r2z1 ,有限域平 方器和加法器计算c7, , , t/化2, f/2K + c/^和W, ,(c/2f;+)2;此时包括的六个有 限域平方运算由三个有限域平方器运算单元分两次计算。
第3^到4 ^周期有限域乘法器计算M^,w(c/^+M。2,t^f/^,有限域平 方器和加法器计算x(Z2Z, +《Z2)2+(《Z2)(X2Z,)和《+^4;根据i:的二进制序列进 行交换操作。
第4^到5^周期开始新的循环,有限域乘法器计算J^Z/,X/Z/,X/Z/,有
限域平方器和加法器计算w(t/^+t/^)2+(^9(f/^)和W+w4;根据i的二进制
序列进行交换操作。
根据本发明提供的流水线型椭圆曲线双标量乘法方法一优选技术方案是
定义所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的
执行时钟周期数分别为^,7^,7;,其中,rM=^=r, ;-3r+i;所述流水线型 椭圆曲线双标量乘法方法^f吏用4(3r+i)o-i)个时钟周期完成两个椭圆曲线标量 乘法。
本发明另提供了 一种流水线型椭圆曲线双标量乘法方法。所述流水线型椭
圆曲线双标量乘法方法包括以下步骤
初始化椭圆曲线上投影坐标点P(Jcl,zU2,z2)和20a,vl,w2,v2)初始化寄存器 jcUl,x2,z2和wl,vl,"2,v2,等待电路启动信号;定义7^为有限域乘法运算单元执行 时钟周期数。
第l到^周期有限域乘法器计算《ZpJ^Zi,J^^。
第^到27^周期有限域乘法器计算t/^,f/^,C/^,有限域平方器和加法器 计算《,Z^X,2Z,2,^Z, +1122和114,214,(1221 + J^ZJ2;此时包括的六个有限域平方运 算分两次计算。
第2rM到3rM周期有限域乘法器计算6z;,x(XA+x^)2,x,z^^,有限域平 方器和加法器计算W,,t^C^ + £/^2和W,,(f/2K +1/^)2;此时包括的六个有 限域平方运算分两次计算。
第3^到42^周期有限域乘法器计算WV(f/^+f/^)2,[^[^,有限域平 方器和加法器计算jc(X^,+^Z2)2+(AZ2)(AZi)和X;+6Z;;根据A的二进制序列进 行交换操作。第47^到5&周期开始新的循环,有限域乘法器计算X,'Z,',义/Z,',Z/Z/,有
限域平方器和加法器计算w(t/^+L^)2+(t/^)(t/^)和W+W4;根据i的二进制 序列进行交换操作。
根据本发明提供的流水线型椭圆曲线双标量乘法方法一优选技术方案是 定义所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的 执行时钟周期数分别为7^,7;,rs,其中,4=7^=7\ 7^=2r+l;所述流水线型椭 圆曲线双标量乘法方法使用4(2r + l)(m-l)个时钟周期完成两个椭圆曲线标量乘 法。
本发明有益的技术效果是本发明的流水线型椭圆曲线双标量乘法系统及 方法接口方式简单,输入只有常数b,椭圓曲线上两点的原始坐标"力,(",力及其 投影坐标P"A,^,"和2", """。采用状态机方式,使运算速度大大加快。将椭
圆曲线标量乘法中的各种有限域运算计算顺序进行调整,使硬件不存在空闲时 间,发挥其最大计算吞吐量。仅根据外部数据和地址总线的宽度略作调整,就 可以满足不同宽度数据的加密。在满足系统安全性前提下,减少椭圆曲线加密 算法计算周期,并且电路通过配置可以并行计算有限域元素求逆。此电路结构 非常适合工作在高吞吐率的椭圆曲线加密系统中。

图1是现有技术椭圆曲线双标量乘法在ECC加密算法中的应用示意图; 图2是本发明实施例的流水线型椭圆曲线双标量乘法系统包括两个有限域
平方运算单元的电路结构图3是本发明实施例的流水线型椭圆曲线双标量乘法系统包括三个有限域
平方运算单元的电路结构图4是本发明实施例的流水线型椭圆曲线双标量乘法系统包括两个有限域 平方运算单元的流水线结构流程图5是本发明实施例的流水线型椭圆曲线双标量乘法系统包括三个有限域 平方运算单元的流水线结构流程图6是本发明实施例的流水线椭圆曲线双标量乘法系统包括两个有限域平 方运算单元的流水线调度示意图7是本发明实施例的流水线椭圆曲线双标量乘法系统包括三个有限域平方运算单元的流水线调度示意图8是本发明实施例的流水线椭圆曲线双标量乘法系统的有限域乘法器的 结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
请参照图2、图3,图2是本发明实施例的流水线型椭圆曲线双标量乘法系 统包括两个有限域平方运算单元的电路结构图;图3是本发明实施例的流水线 型椭圓曲线双标量乘法系统包括三个有限域平方运算单元的电^各结构图。
本实施例的流水线型椭圆曲线双标量乘法系统的电路结构包括两个或三 个有限域平方运算单元;三个有限域乘法运算单元; 一个有限域加法运算单元; 多路选通器;寄存器组。其中所述外部输入为常数b,椭圆曲线上两点的原始坐
标"力,(",V)及其投影坐标尸",Z,,X2,Z2)和2("pV,,"2,V2)。其中常凄史b和原始坐标通过选
通器与有限域乘法器相连,投影坐标p",ziA,w和w""n,""v2;)通过选通器与寄存器相连。
对于投影坐标下GF(2。的连续寻址椭圆曲线标量乘法算法,我们将其中循 环结构的有限域运算计算顺序重新组织如下 对于两个有限域平方运算单元
2:计算A2,《,+ ;
3:计算Z/,Z,4;
4:计算Jr,2z,2,(AZ,+^Z2)2;
5:计算Z7Z'4,x(X2^ +Z1Z2)2,X1Z2Z2Z1 ;
6:计算x(J^Z, +^Z2)2 +(X1Z2)(JT2Z1);
7:计算《+^4
对于三个有限域平方运算单元
1:计算;^Z2,Z2Z,XiZ,;
2:计算《2 ,《,《《,^4 + ;5:计算x(义2^ +X,Z2)2 +(义 22,);
6:计算《+6z;1
结构中主要包括三个有限域乘法器、两个或三个有限域平方器和一个有限 域加法器。当结构中包括两个有限域平方器时水线型椭圓曲线双标量乘法系统 计算两个椭圆曲线标量乘法需要4(3r + l)(m-l)个时钟周期;当结构中包括两个有
限域平方器时水线型椭圆曲线双标量乘法系统计算两个椭圆曲线标量乘法需要 4(2r + l)(附-l)个时钟周期;对于这种结构(包括两个有限域平方器和三个有限域
平方器),计算开始时寄存器巧,^X2,Z2存放着椭圓曲线投影坐标点户,寄存器 仏,V一2,V2存放着椭圆曲线投影坐标点。。首先P被选通进电路的三个有限域乘法
器进行计算,当有限域乘法器计算完成时曲线投影坐标点Q同时被选通作为有
限域乘法器新的输入,这时计算过程需要的数据已全部进入电路。在计算完成
后两组寄存器^z"^,Z2和""v"""^中的值就是双椭圓曲线标量乘法的结果。
请参照图4至图7。图中描述了有限域运算单元的执行顺序和分时复用方法 (虚线圓表示)。图中swap操作由k的二进制序列决定,不占用时钟周期。我 们用乙A,7;表示有限域乘法、有限域加法和有限域平方的执行周期数。HK的
数值组合决定了流水线的效率。对于两个有限域平方器的流水线型椭圆曲线双 标量乘法系统的电路结构当
rM > max(max(L, ) + 27^ +1, 27^ +1) (1)
流水线存在空闲时间,当
4 < tnin(max(7;, T》+ 27^ +1,27^ +1) ( 2 )
时有限域乘法器存在等待时间,只有当
流水线和有限域乘法器都不存在等待时间,这时结构具有最快的速度。
对于三个有限域平方器的流水线型椭圆曲线双标量乘法系统的电路结构当
rM > max(max(S, ) + +1,27^ +1) ( 4 ) 流水线存在空闲时间,当
4 < min—(L , rj + & +1, 27^ +1) ( 5 ) 时有限域乘法器存在等待时间,只有当
18流水线和有限域乘法器都不存在等待时间,这时结构具有最快的速度。其中的 "+l"是因为有限域乘法器结果是组合逻辑输出,必须使用一个周期寄存。公 式(3)满足时,椭圆曲线双标量乘法结构使用4(3r+i)个时钟周期完成算法2中循 环的一次迭代,使用4(3r+i)(M-1)个时钟周期完成投影坐标下GF(2"1)的连续寻址椭 圆曲线标量乘法算法的循环操作。公式(6)满足时,椭圆曲线双标量乘法结构使 用4(2r+i)个时钟周期完成算法2中循环的一次迭代,使用4(2"1)0 -i)个时钟周期 完成投影坐标下GF(2"的连续寻址椭圓曲线标量乘法算法的循环操作。
请参照图8。本实施例的流水线型椭圆曲线双标量乘法的电路结构中的伪流 水线型字串行有限域乘法器结构,它使用流水线来缩短关键路径长度。对于有 限域乘法雞)雖)(咖d/w),输入雖)被分成「^必1个字,即
<formula>formula see original document page 19</formula>其中《又被分成k个部分0"2,…,。,,这k部分进入第一级流水线的k位并 行乘法器计算出","bw,0力,…乂bw ,它们在第二级流水线进行累加计算出 ww。 ",w经过/W求模后存入寄存器p。这种有限域乘法器关键路径是PathO
和Pathl的最大者,即<formula>formula see original document page 19</formula>
其中"为字长,7;和&。《分别表示两输入与门和或非门的延迟。
从上述的体系结构看,本发明的一种流水线型椭圆曲线双标量乘法系统及 方法的电路结构在数据处理的规则性,可并行性,器件的复用性,可重构性上 具有创新点。本发明的最大特点在于实现了椭圆曲线两个标量乘法的并行计算, 同时实现了三个有限域元素求逆的并行计算。相对于以前的设计,本发明最大 程度利用结构中的有限域运算器,从而减少了椭圆曲线加密算法的计算周期。
本发明的特点是
1.有限域求逆的可配置电^各
根据Itoh-Tsujii算法,有限域元素求逆需要使用有限域乘法器和有限域 平方器。当结构中包括三个有限域平方器时,可以通过配置电路利用其中的三 个有限域乘法器和三个有限域平方器进行三个有限域元素求逆的并行计算,这时椭圆曲线双标量乘法具有最快的运算运算。当结构中包括三个有限域平方器 时,可以通过配置电路利用其中的三个有限域乘法器和三个有限域平方器进行 三个有限域元素求逆的并行计算,这时椭圆曲线双标量乘法虽然没有获得最快
的运算运算,但面积可以相对小很多。因为椭圆曲线非对称Diffie-Hellman加 密算法和椭圆曲线ElGamal加密算法需要进行六次有限域元素求逆计算,所以 这种并4亍化方法这可以进一步减小椭圆曲线非对称Diffie-Hellman加密算法和 椭圆曲线ElGamal加密算法的运算周期。
2.伪流水线型字串行有限域乘法器结构
流水线型椭圆曲线双标量乘法的电路结构中的伪流水线型字串行有限域乘 法器结构,它使用流水线来缩短关键路径长度,保证电路在较高的时钟频率下 工作。
以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不 能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通 技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替 换,都应当视为属于本发明的保护范围。
权利要求
1.一种流水线型椭圆曲线双标量乘法系统,其特征在于所述流水线型椭圆曲线双标量乘法系统包括两个或三个有限域平方运算单元、三个有限域乘法运算单元、一个有限域加法运算单元、寄存器组、若干多路选通器及控制逻辑单元;外部输入的常数b、椭圆曲线上两点的原始坐标(x,y)、(u,v)通过多路选通器与有限域乘法运算单元连接,原始坐标的投影坐标P(x1,z1,x2,z2)和Q(u1,v1,u2,v2)通过多路选通器与寄存器组连接;所述有限域平方运算单元、有限域乘法运算单元分别通过多路选通器与寄存器组连接。
2. 根据权利要求1所述的流水线型椭圆曲线双标量乘法系统,其特征在于 所述流水线型椭圆曲线双标量乘法系统包括三个有限域平方运算单元的具体结 构为有限域平方运算单元(201)的输入端与多路选通器(220 )的输出端连 接,有限域平方运算单元(201)的输出端分别与多路选通器(208 )、多路选通 器(213)、多路选通器(214)及多路选通器(219)的输入端连接;有限域平 方运算单元(202 )的输入端与多路选通器(221)的输出端连接,有限域平方 运算单元(202 )的输出端分别与多路选通器(209 )及多路选通器(215)的输 入端连接;有限域平方运算单元(203 )的输入端与多路选通器(222 )的输出 端连接,有限域平方运算单元(203 )的输出端分别与多路选通器(210)及多 路选通器(216)的输入端连接;有限域乘法运算单元(204 )的输入端分别与 多路选通器(223 )及多路选通器(227 )的输出端连接,有限域乘法运算单元(204 )的输出端分别与多路选通器(209 )、多路选通器(210 )、多路选通器(215 ) 及多路选通器(216)的输入端连接;有限域乘法运算单元(205 )的输入端分 别与多路选通器(224 )及多路选通器(228 )的输出端连接,有限域乘法运算 单元(205 )的输出端分别与多路选通器(211)及多路选通器(217)的输入端 连接;有限域乘法运算单元(206 )的输入端分别与多路选通器(225 )及多路 选通器(229 )的输出端连接,有限域乘法运算单元(206 )的输出端分别与多 路选通器(212)、多路选通器(213)、多路选通器(218)及多路选通器(219) 的输入端连接;有限域加法运算单元(207 )的输入端分别与多路选通器(226 ) 及多路选通器(230 )的输出端连接,有限域乘法运算单元(207 )的输出端分别与多路选通器(208 )、多3各选通器(211)、多路选通器(212)、多路选通器 (213)、多路选通器(214)、多路选通器(217)、多路选通器(218)及多路选 通器(219)的输入端连接;寄存器(231)的输入端与多路选通器(208 )的输 出端连接,寄存器(231 )的输出端分别与多路选通器(208 )、多路选通器(209 )、 多路选通器(220 )及多路选通器(223 )的输入端连接;寄存器(232 )的输入 端与多路选通器(209 )的输出端连接,寄存器(232 )的输出端分别与多路选 通器(208 )、多路选通器(209 )、多路选通器(210)、多路选通器(221)、多 路选通器(224 )、多路选通器(226 )、多路选通器(227 )及多路选通器(229 ) 的输入端连接;寄存器(233 )的输入端与多路选通器(210)的输出端连接, 寄存器(233 )的输出端分别与多路选通器(210)、多路选通器(222 )、多路选 通器(227 )及多路选通器(230 )的输入端连接;寄存器(234 )的输入端与多 路选通器(211 )的输出端连接,寄存器(234 )的输出端分别与多路选通器(211 )、 多路选通器(224 )、多路选通器(226 )及多路选通器(228 )的输入端连接; 寄存器(235 )的输入端与多路选通器(212)的输出端连接,寄存器(235 )的 输出端分别与多路选通器(210)、多路选通器(211)、多路选通器(225 )及多 路选通器(228 )的输入端连接;寄存器(236 )的输入端与多路选通器(213) 的输出端连接,寄存器(236 )的输出端分别与多路选通器(213)、多路选通器 (220 )、多路选通器(229 )及多路选通器(230 )的输入端连接;寄存器(237 ) 的输入端与多路选通器(214)的输出端连接,寄存器(237)的输出端分别与 多路选通器(214)、多路选通器(215)、多路选通器(220 )及多路选通器(223 ) 的输入端连接;寄存器(238 )的输入端与多路选通器(215)的输出端连接, 寄存器(238 )的输出端分别与多路选通器(214)、多路选通器(215)、多路选 通器(221)、多路选通器(224 )、多路选通器(226 )、多路选通器(227 )及多 路选通器(229 )的输入端连接;寄存器(239 )的输入端与多路选通器(216) 的输出端连接,寄存器(239 )的输出端分别与多路选通器(216)、多路选通器 (222 )、多路选通器(223 )及多路选通器(230 )的输入端连接;寄存器(240 ) 的输入端与多路选通器(217)的输出端连接,寄存器(240 )的输出端分别与 多路选通器(217)、多路选通器(224 )、多路选通器(226 )及多路选通器(228 ) 的输入端连接;寄存器(241)的输入端与多路选通器(218)的输出端连接,寄存器(241)的输出端分别与多路选通器(217)、多路选通器(218)、多路选 通器(225 )及多路选通器(228 )的输入端连接;寄存器(242 )的输入端与多 路选通器(219 )的输出端连接,寄存器(242 )的输出端分别与多路选通器(219 )、 多路选通器(220 )、多路选通器(225 )及多路选通器(230 )的输入端连接; 所述x,, Zl, x2, Z2分别与多路选通器(208 )、多路选通器(209 )、多路选通器 (211)及多路选通器(212)连接;所述u,, Vl, u2, V2分别与多路选通器(214)、 多路选通器(215)、多路选通器(217)及多路选通器(218)连接;所述x, u 分别与多路选通器(225 )及多路选通器(229 )连接。
3. 根据权利要求2所述的流水线型椭圓曲线双标量乘法系统,其特征在于 对于包括两个有限域平方器运算单元的流水线型椭圆曲线双标量乘法系统定义 所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的执行时钟周期数分别为^,^,7^,其中,rM=r,=r, rM=3r+i;所述的流水线型椭 圆曲线双标量乘法系统-使用4(3r+i)(w-i)个时钟周期完成两个椭圓曲线标量乘 法。
4. 根据权利要求1所述的流水线型椭圆曲线双标量乘法系统,其特征在于 所述流水线型椭圆曲线双标量乘法系统包括两个有限城平方运算单元的具体结 构为有限域平方运算单元(301)的输入端与多路选通器(319)的输出端连 接,有限域平方运算单元(301)的输出端分别与多路选通器(307 )、多路选通 器(308)、多路选通器(313)及多路选通器(314)的输入端连接;有限域平 方运算单元(302)的输入端与多路选通器(320)的输出端连接,有限域平方 运算单元(302 )的输出端分别与多路选通器(309 )、多路选通器(312)、多路 选通器(315 )及多路选通器(318 )的输入端连接;有限域乘法运算单元(303 ) 的输入端分别与多路选通器(321)及多路选通器(325 )的输出端连接,有限 域乘法运算单元(303 )的输出端分别与多路选通器(308 )、多路选通器(309 )、 多路选通器(314)及多路选通器(315)的输入端连接;有限域乘法运算单元(304 )的输入端分别与多路选通器(322 )及多路选通器(326 )的输出端连接, 有限域乘法运算单元(304 )的输出端分别与多路选通器(31G)及多路选通器(316)的输入端连接;有限域乘法运算单元(305 )的输入端分别与多路选通 器(3U)及多路选通器(327 )的输出端连接,有限域乘法运算单元(305 )的输出端分别与多路选通器(311)、多路选通器(312)、多路选通器(317)及多 路选通器(318)的输入端连接;有限域加法运算单元(306 )的输入端分别与 多路选通器(324 )及多路选通器(328 )的输出端连接,有限域乘法运算单元(306 )的输出端分别与多路选通器(307 )、多路选通器(310 )、多路选通器(311 )、 多路选通器(312)、多路选通器(313)、多路选通器(316)、多路选通器(317) 及多路选通器(318 )的输入端连接;寄存器(329 )的输入端与多路选通器(307 ) 的输出端连接,寄存器(329 )的输出端分别与多路选通器(307 )、多路选通器(308 )、多路选通器(319)及多路选通器(321)的输入端连接;寄存器(330 ) 的输入端与多路选通器(308 )的输出端连接,寄存器(330)的输出端分别与 多路选通器(307 )、多路选通器(308 )、多路选通器(309 )、多路选通器(319) 及多路选通器(322 )的输入端连接;寄存器(331)的输入端与多路选通器(309 ) 的输出端连接,寄存器(331)的输出端分别与多路选通器(309 )、多路选通器(320 )、多路选通器(325 )及多路选通器(328 )输入端连接;寄存器(332 ) 的输入端与多路选通器(310)的输出端连接,寄存器(332 )的输出端分别与 多路选通器(310)、多路选通器(322 )、多路选通器(324 )及多路选通器(326 ) 的输入端连接;寄存器(333 )的输入端与多路选通器(311)的输出端连接, 寄存器(333)的输出端分别与多路选通器(311)、多路选通器(323 )及多路 选通器(326 )的输入端连接;寄存器(334 )的输入端与多路选通器(312)的 输出端连接,寄存器(334 )的输出端分别与多路选通器(312 )、多路选通器(320 )、 多路选通器(327 )及多路选通器(328 )的输入端连接;寄存器(335 )的输入 端与多路选通器(313)的输出端连接,寄存器(335 )的输出端分别与多路选 通器(313)、多路选通器(319)、多路选通器(321)的输入端连接;寄存器(336 ) 的输入端与多路选通器(314)的输出端连接,寄存器(336 )的输出端分别与 多路选通器(313)、多路选通器(314)、多路选通器(315)、多路选通器(319)、 多路选通器(322 )多路选通器(324 )、多路选通器(325 )及多路选通器(327 ) 的输入端连接;寄存器(337 )的输入端与多路选通器(315)的输出端连接, 寄存器(337 )的输出端分别与多路选通器(315)、多路选通器(320 )、多路选 通器()及多路选通器()的输入端连接;寄存器(338 )的输入端与多 路选通器(316 )的输出端连接,寄存器(338 )的输出端分别与多路选通器(316 )、多路选通器(322 )、多路选通器(324 )及多路选通器(326 )的输入端连接; 寄存器(339 )的输入端与多路选通器(317)的输出端连接,寄存器(339 )的 输出端分别与多路选通器(316)、多路选通器(317)、多路选通器(323 )及多 路选通器(326 )的输入端连接;寄存器(340 )的输入端与多路选通器(318) 的输出端连接,寄存器(340 )的输出端分别与多路选通器(318)、多路选通器(320 )、多路选通器(323 )及多i 各选通器(328 )的输入端连接;所述常数b 与多路选通器(321)连接;所述xl, zl, x2, z2分别与多路选通器(307 )、 多路选通器(308 )、多路选通器(310)及多3各选通器(311 )连接;所述ul, vl, u2, v2分别与多路选通器(313)、多路选通器(314)、多3各选通器(316) 及多路选通器(317)连接;所述x, u分别与多路选通器(323 )及多路选通器(327 )连接。
5. 根据权利要求4所述的流水线型椭圆曲线双标量乘法系统,其特征在于 对于包括两个有限域平方器运算单元的流水线型椭圆曲线双标量乘法系统定义 所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的执行 时钟周期数分别为^,7;,7;其中,4=7^=7, rM=2r + i;所述的流水线型椭圓 曲线双标量乘法系统^使用4(2r + -1)个时钟周期完成两个椭圆曲线标量乘法。
6. 根据权利要求1所述的流水线型椭圆曲线双标量乘法系统,其特征在于 所述有限域乘法器使用流水线缩短关键路径长度;具体如下对于有限域乘法伞讽力一dZ的,输入^W被分成「附^〕个字,即^(力="「m/萨,/「"^-'如+…+ + "o其中"'被分成k个部分""',",4—2, ,",。,这k部分进入第一级流水线的k位并行 乘法器计算出"广'sw,。广2sw,.",。>w,并在第二级流水线进行累加计算出",』W经过/W求模后存入寄存器;这种有限域乘法器关键路径是PathO和Pathl 的最大者,即max(7;w + 「log 20 / "r,促,「log 2A: +1"|7>0/( + Tm。d).其中"为字长,^w。和&。《分别表示两输入与门和或非门的延迟。
7. —种流水线型椭圆曲线双标量乘法方法,其特征在于所述流水线型椭圓曲线双标量乘法方法包括以下步骤初始化椭圆曲线上投影坐标点POl, zl, x2, z2)和g(wl, vl, w2, v2)初始化寄存器jd,zl,jc2,z2和td,vl,w2,v2,等待电路启动信号;定义?^为有限域乘法运算单元执行 时钟周期数;第1到7^周期有限域乘法器计算义121,1221,;^4;第7^到27^周期有限域乘法器计算t/^,t/^,t/^ ,有限域平方器和加法器 计算《,《,《Z,2, X2Z, + X,Z2和X,4, , + )2;此时包括的六个有限域平方运算由两个有限域平方器运算单元分三次计算;第27 到3rM周期有限域乘法器计算6Z;^(X2Z, + J^Z^,J^Z2义2Z,,有限域平 方器和加法器计算M2,pf,t/^2,[/2^ + [/^2和c/;,K4,((/A + c/^)2;此时包括的六个有限域平方运算由三个有限域平方器运算单元分两次计算;第37^到47^周期有限域乘法器计算WV(t^+t^)2,(/^[/^,有限域平方器和加法器计算x(x^+^Z2)2+(《z》(x^)和x,4+》《;根据A的二进制序列进 行交换操作;第4^到57^周期开始新的循环,有限域乘法器计算x/z,',x/z,',;r/z/,有 限域平方器和加法器计算"(c/^+[/^)2 + ([/^)(c/^)和W+化4;根据l的二进制序列进行交换操作。
8. 根据权利要求7所述的流水线型椭圆曲线双标量乘法方法,其特征在于定义所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单元的执行时钟周期数分别为4,7^,7;,其中,rM=:r,=r, rM=3r+i;所述流水线型椭圆曲线双标量乘法方法^吏用4(3r + l)(m-1)个时4^周期完成两个椭圆曲线标量乘法。
9. —种流水线型椭圆曲线双标量乘法方法,其特征在于所述流水线型椭 圆曲线双标量乘法方法包括以下步骤初始化椭圆曲线上投影坐标点POUl,x2,z2)和201,vl,"2,v2)初始化寄存器 ;cUl,x2,z2和"l,vl,w2,v2,等待电路启动信号;定义7^为有限域乘法运算单元执^f亍时钟周期数;第1到7^周期有限域乘法器计算x^,x^,义^;第7^到2;周期有限域乘法器计算c/^,f/^,c/^,有限域平方器和加法器计 算《,z,2,《《,X2Z, +义122和义14,《,(;^221 +z1z2)2;此时包括的六个有限域平方运算 分两次计算;第27^到3rM周期有限域乘法器计算6《,;c(XA +JT1Z2)2,X1Z2X2Z1 ,有限域平 方器和加法器计算^,C(/^2,"2^ +"^2和 714,^4,("2^ +"^2)2;此时包括的六个有限域平方运算分两次计算;第37^至1]47^周期有限域乘法器计算&^4,"([/A+UA)2,i/j^;A,有限域平方器和加法器计算x(X2Z,+AZ2)2+(J^Z2)(^Z0和"+6Z。根据l的二进制序列进行交换操作;第47^到5&周期开始新的循环,有限域乘法器计算 ,义2'《, ,有 限域平方器和加法器计算"([/^+L^2)2 + (f/^)(/7^)和^+z^4;根据A的二进制序列进行交换操作。
10.根据权利要求9所述的流水线型椭圆曲线双标量乘法方法,其特征在 于定义所述有限域乘法运算单元、有限域加法运算单元和有限域平方运算单 元的执行时钟周期数分别为4,7^,7^其中,^-l-:t, rw=2r+i;所述流水线型椭圆曲线双标量乘法方法使用4(2r + -1)个时钟周期完成两个椭圆曲线标量乘法。
全文摘要
本发明公开了一种流水线型椭圆曲线双标量乘法系统及方法。该系统及方法通过两个或三个有限域平方运算单元、三个有限域乘法运算单元、一个有限域加法运算单元、寄存器组、若干多路选通器及控制逻辑单元的结构实现了椭圆曲线标量乘法的计算。本发明的流水线型椭圆曲线双标量乘法系统及方法接口方式简单、运算速度大大加快、硬件不存在空闲时间、可以满足不同宽度数据的加密、减少椭圆曲线加密算法计算周期、可以并行计算有限域元素求逆,非常适合工作在高吞吐率的椭圆曲线加密系统。
文档编号G06F7/60GK101630244SQ200910109048
公开日2010年1月20日 申请日期2009年7月28日 优先权日2009年7月28日
发明者岩 张, 旭 王 申请人:哈尔滨工业大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1