发明名称 一种流水线型椭圆曲线双标量乘法系统及方法
摘要 本发明公开了一种流水线型椭圆曲线双标量乘法系统及方法。该系统及方法通过两个或三个有限域平方运算器、三个有限域乘法运算器、一个有限域加法运算器、寄存器组、若干多路选通器及控制逻辑单元的结构实现了椭圆曲线标量乘法的计算。本发明的流水线型椭圆曲线双标量乘法系统及方法接口方式简单、运算速度大大加快、硬件不存在空闲时间、可以满足不同宽度数据的加密、减少椭圆曲线加密算法计算周期、可以并行计算有限域元素求逆,非常适合工作在高吞吐率的椭圆曲线加密系统。
申请公布号 CN101630244B 申请公布日期 2012.05.23
申请号 CN200910109048.5 申请日期 2009.07.28
申请人 哈尔滨工业大学深圳研究生院 发明人 张岩;王旭
分类号 G06F7/72(2006.01)I;H04L9/30(2006.01)I 主分类号 G06F7/72(2006.01)I
代理机构 深圳市科吉华烽知识产权事务所 44248 代理人 胡吉科
主权项 一种流水线型椭圆曲线双标量乘法系统,其特征在于:所述流水线型椭圆曲线双标量乘法系统包括:两个或三个有限域平方运算器、三个有限域乘法运算器、一个有限域加法运算器、寄存器组、若干多路选通器及控制逻辑单元;外部输入的常数b、椭圆曲线上两点的原始坐标(x,y)、(u,v)通过多路选通器与有限域乘法运算器连接,原始坐标的投影坐标P(x1,z1,x2,z2)和Q(u1,v1,u2,v2)通过多路选通器与寄存器组连接;所述有限域平方运算器、有限域乘法运算器分别通过多路选通器与寄存器组连接;所述流水线型椭圆曲线双标量乘法系统包括三个有限域平方运算器的具体结构为:第一有限域平方运算器(201)的输入端与第13多路选通器(220)的输出端连接,第一有限域平方运算器(201)的输出端分别与第1多路选通器(208)、第6多路选通器(213)、第7多路选通器(214)及第12多路选通器(219)的输入端连接;第二有限域平方运算器(202)的输入端与第14多路选通器(221)的输出端连接,第二有限域平方运算器(202)的输出端分别与第2多路选通器(209)及第8多路选通器(215)的输入端连接;第三有限域平方运算器(203)的输入端与第15多路选通器(222)的输出端连接,第三有限域平方运算器(203)的输出端分别与第3多路选通器(210)及多路选通器(216)的输入端连接;第一有限域乘法运算器(204)的输入端分别与第16多路选通器(223)及第20多路选通器(227)的输出端连接,第一有限域乘法运算器(204)的输出端分别与第2多路选通器(209)、第3多路选通器(210)、第8多路选通器(215)及多路选通器(216)的输入端连接;第二有限域乘法运算器(205)的输入端分别与第17多路选通器(224)及第21多路选通器(228)的输出端连接,第二有限域乘法运算器(205)的输出端分别与第4多路选通器(211)及第10多路选通器(217)的输入端连接;第三有限域乘法运算器(206)的输入端分别与第18多路选通器(225)及第22多路选通器(229)的输出端连接,第三有限域乘法运算器(206)的输出端分别与第5多路选通器(212)、第6多路选通器(213)、第11多路选通器(218)及第12多路选通器(219)的输入端连接;第一有限域加法运算器(207)的输入端分别与第19多路选通器(226)及第23多路选通器(230)的输出端连接,有限域乘法运算器(207)的输出端分别与第1多路选通器(208)、第4多路选通器(211)、第5多路选通器(212)、第6多路选通器(213)、第7多路选通器(214)、第10多路选通器(217)、第11多路选通器(218)及第12多路选通器(219)的输入端连接;第一寄存器(231)的输入端与第1多路选通器(208)的输出端连接,第一寄存器(231)的输出端分别与第1多路选通器(208)、第2多路选通器(209)、第13多路选通器(220)及第16多路选通器(223)的输入端连接;第二寄存器(232)的输入端与第2多路选通器(209)的输出端连接,第二寄存器(232)的输出端分别与第1多路选通器(208)、第2多路选通器(209)、第3多路选通器(210)、第14多路选通器(221)、第17多路选通器(224)、第19多路选通器(226)、第20多路选通器(227)及第22多路选通器(229)的输入端连接;第三寄存器(233)的输入端与第3多路选通器(210)的输出端连接,第三寄存器(233)的输出端分别与第3多路选通器(210)、第15多路选通器(222)、第20多路选通器(227)及第23多路选通器(230)的输入端连接;第四寄存器(234)的输入端与第4多路选通器(211)的输出端连接,第四寄存器(234)的输出端分别与第4多路选通器(211)、第17多路选通器(224)、第19多路选通器(226)及第21多路选通器(228)的输入端连接;第五寄存器(235)的输入端与第5多路选通器(212)的输出端连接,第五寄存器(235)的输出端分别与第3多路选通器(210)、第4多路选通器(211)、第18多路选通器(225)及第21多路选通器(228)的输入端连接;第六寄存器(236)的输入端与第6多路选通器(213)的输出端连接,第六寄存器(236)的输出端分别与第6多路选通器(213)、第13多路选通器(220)、第22多路选通器(229)及第23多路选通器(230)的输入端连接;第七寄存器(237)的输入端与第7多路选通器(214)的输出端连接,第七寄存器(237)的输出端分别与第7多路选通器(214)、第8多路选通器(215)、第13多路选通器(220)及第16多路选通器(223)的输入端连接;第八寄存器(238)的输入端与第8多路选通器(215)的输出端连接,第八寄存器(238)的输出端分别与第7多路选通器(214)、第8多路选通器(215)、第14多路选通器(221)、第17多路选通器(224)、第19多路选通器(226)、第20多路选通器(227)及第22多路选通器(229)的输入端连接;第九寄存器(239)的输入端与多路选通器(216)的输出端连接,第九寄存器(239)的输出端分别与多路选通器(216)、第15多路选通器(222)、第16多路选通器(223)及第23多路选通器(230)的输入端连接;第十寄存器(240)的输入端与第10多路选通器(217)的输出端连接,第十寄存器(240)的输出端分别与第10多路选通器(217)、第17多路选通器(224)、第19多路选通器(226)及第21多路选通器(228)的输入端连接;第十一寄存器(241)的输入端与第11多路选通器(218)的输出端连接,第十一寄存器(241)的输出端分别与第10多路选通器(217)、第11多路选通器(218)、第18多路选通器(225)及第21多路选通器(228)的输入端连接;第十二寄存器(242)的输入端与第12多路选通器(219)的输出端连接,第十二寄存器(242)的输出端分别与第12多路选通器(219)、第13多路选通器(220)、第18多路选通器(225)及第23多路选通器(230)的输入端连接;寄存器x1,寄存器z1,寄存器x2,寄存器z2分别与第1多路选通器(208)、第2多路选通器(209)、第4多路选通器(211)及第5多路选通器(212)连接;寄存器u1,寄存器v1,寄存器u2,寄存器v2分别与第7多路选通器(214)、第8多路选通器(215)、第10多路选通器(217)及第11多路选通器(218)连接;所述寄存器x,寄存器u分别与第18多路选通器(225)及第22多路选通器(229)连接;所述流水线型椭圆曲线双标量乘法系统包括两个有限域平方运算器的具体结构为:第四有限域平方运算器(301)的输入端与第36多路选通器(319)的输出端连接,第四有限域平方运算器(301)的输出端分别与第24多路选通器(307)、第25多路选通器(308)、第30多路选通器(313)及第31多路选通器(314)的输入端连接;第五有限域平方运算器(302)的输入端与第37多路选通器(320)的输出端连接,第五有限域平方运算器(302)的输出端分别与第26多路选通器(309)、第29多路选通器(312)、第32多路选通器(315)及第35多路选通器(318)的输入端连接;第四有限域乘法运算器(303)的输入端分别与第38多路选通器(321)及第42多路选通器(325)的输出端连接,第四有限域乘法运算器(303)的输出端分别与第25多路选通器(308)、第26多路选通器(309)、第31多路选通器(314)及第32多路选通器(315)的输入端连接;第五有限域乘法运算器(304)的输入端分别与第39多路选通器(322)及第43多路选通器(326)的输出端连接,第五有限域乘法运算器(304)的输出端分别与第27多路选通器(310)及第33多路选通器(316)的输入端连接;第六有限域乘法运算器(305)的输入端分别与第40多路选通器(323)及第44多路选通器(327)的输出端连接,第六有限域乘法运算器(305)的输出端分别与第28多路选通器(311)、第29多路选通器(312)、第34多路选通器(317)及第35多路选通器(318)的输入端连接;第二有限域加法运算器(306)的输入端分别与第41多路选通器(324)及第45多路选通器(328)的输出端连接,第二有限域加法运算器(306)的输出端分别与第24多路选通器(307)、第27多路选通器(310)、第28多路选通器(311)、第29多路选通器(312)、第30多路选通器(313)、第33多路选通器(316)、第34多路选通器(317)及第35多路选通器(318)的输入端连接;第十三寄存器(329)的输入端与第24多路选通器(307)的输出端连接,第十三寄存器(329)的输出端分别与第24多路选通器(307)、第25多路选通器(308)、第36多路选通器(319)及第38多路选通器(321)的输入端连接;第十四寄存器(330)的输入端与第25多路选通器(308)的输出端连接,第十四寄存器(330)的输出端分别与第24多路选通器(307)、第25多路选通器(308)、第26多路选通器(309)、第36多路选通器(319)及第39多路选通器(322)的输入端连接;第十五寄存器(331)的输入端与第26多路选通器(309)的输出端连接,第十五寄存器(331)的输出端分别与第26多路选通器(309)、第37多路选通器(320)、第42多路选通器(325)及第45多路选通器(328)输入端连接;第十六寄存器(332)的输入端与第27多路选通器(310)的输出端连接,第十六寄存器(332)的输出端分别与第27多路选通器(310)、第39多路选通器(322)、第41多路选通器(324)及第43多路选通器(326)的输入端连接;第十七寄存器(333)的输入端与第28多路选通器(311)的输出端连接,第十七寄存器(333)的输出端分别与第28多路选通器(311)、第40多路选通器(323)及第43多路选通器(326)的输入端连接;第十八寄存器(334)的输入端与第29多路选通器(312)的输出端连接,第十八寄存器(334)的输出端分别与第29多路选通器(312)、第37多路选通器(320)、第44多路选通器(327)及第45多路选通器(328)的输入端连接;第十九寄存器(335)的输入端与第30多路选通器(313)的输出端连接,第十九寄存器(335)的输出端分别与第30多路选通器(313)、第36多路选通器(319)、第38多路选通器(321)的输入端连接;第二十寄存器(336)的输入端与第31多路选通器(314)的输出端连接,第二十寄存器(336)的输出端分别与第30多路选通器(313)、第31多路选通器(314)、第32多路选通器(315)、第36多路选通器(319)、第39多路选通器(322)、第41多路选通器(324)、第42多路选通器(325)及第44多路选通器(327)的输入端连接;第二十一寄存器(337)的输入端与第32多路选通器(315)的输出端连接,第二十一寄存器(337)的输出端分别与第32多路选通器(315)、第37多路选通器(320)、第38多路选通器(321)及第45多路选通器(328)的输入端连接;第二十二寄存器(338)的输入端与第33多路选通器(316)的输出端连接,第二十二寄存器(338)的输出端分别与第33多路选通器(316)、第39多路选通器(322)、第41多路选通器(324)及第43多路选通器(326)的输入端连接;第二十三寄存器(339)的输入端与第34多路选通器(317)的输出端连接,第二十三寄存器(339)的输出端分别与第33多路选通器(316)、第34多路选通器(317)、第40多路选通器(323)及第43多路选通器(326)的输入端连接;第二十四寄存器(340)的输入端与第35多路选通器(318)的输出端连接,第二十四寄存器(340)的输出端分别与第35多路选通器(318)、第37多路选通器(320)、第40多路选通器(323)及第45多路选通器(328)的输入端连接;所述常数b与第38多路选通器(321)连接;所述寄存器x1,寄存器z1,寄存器x2,寄存器z2分别与第24多路选通器(307)、第25多路选通器(308)、第27多路选通器(310)及第28多路选通器(311)连接;所述寄存器u1,寄存器v1,寄存器u2,寄存器v2分别与第30多路选通器(313)、第31多路选通器(314)、第33多路选通器(316)及第34多路选通器(317)连接;所述寄存器x,寄存器u分别与第40多路选通器(323)及第44多路选通器(327)连接。
地址 518055 广东省深圳市南山区西丽深圳大学城哈工大校区