发明名称 椭圆曲线密码系统的点加系统
摘要 用于椭圆曲线密码体制的点加系统属于椭圆曲线密码系统的点加技术领域。其特征在于:含有点加寄存器控制器、点加多路选择控制器、第一多路选择器组、中间变量寄存器组以及第二多路选择器组;在点加多路选择控制器输出的选通控制信号下,在六个流水线过程内由位于点加系统外的模乘器和模加器对第二多路选择器组输出的乘数和加数完成点加运算;在每一个流水过程内,在所述选通控制信号控制下,模乘器和模加器分别向第一、第二两个多路选择器组返回中间数据;在点加寄存器控制器输出的操作控制信号控制下,控制第一多路选择器组中的各个多路选择器通过中间变量寄存器组向第二多路选择器组输出相应的乘数和加数。本发明提高了点加运算速度,在一个基本层面上优化了椭圆曲线的点乘性能,提高了数据吞吐率。
申请公布号 CN101221491B 申请公布日期 2010.04.21
申请号 CN200810055610.6 申请日期 2008.01.04
申请人 清华大学 发明人 李树国;张霄鹏
分类号 G06F7/72(2006.01)I 主分类号 G06F7/72(2006.01)I
代理机构 代理人
主权项 用于椭圆曲线密码体制的点加系统,其特征在于:该点加系统是在专用数字集成电路芯片中采用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←X2,Reg5←Y2,Reg6←1,(X1,Y2,Z1)为Jacobi投影坐标下椭圆曲线上的点P的坐标,(X2,Y2,1)为Jacobi投影坐标下椭圆曲线上的点Q的坐标,令:R=P+Q,点R的坐标为(X3,Y3,Z3),C1_C2_C3_C4_C5_C6中每个操作控制信号均为00,在以下叙述中省略各操作控制信号的标志;第一轮Δ1中:在第1~第8时钟周期,操作控制信号均为11_11_11_11_11_11,在第9时钟周期,操作控制信号为11_11_11_11_01_11;第二轮Δ2中:在第10时钟周期,操作控制信号为11_11_11_01_11_11,在第11~第17时钟周期,操作控制信号均为11_11_11_11_11_11,在第18时钟周期,操作控制信号为11_11_11_01_11_11;第三轮Δ3中:在第19时钟周期,操作控制信号为11_11_11_11_10_01,在第20时钟周期,操作控制信号为11_01_11_11_11_10,在第21时钟周期,操作控制信号为10_11_11_11_11_11,在第22~第26时钟周期,操作控制信号均为11_11_11_11_11_11,在第27时钟周期,操作控制信号为11_11_11_01_11_11;第四轮Δ4中:在第28时钟周期,操作控制信号为11_01_11_10_11_11,在第29时钟周期,操作控制信号为01_11_11_11_11_11,在第30~第35时钟周期,操作控制信号均为11_11_11_11_11_11,在第36时钟周期,操作控制信号为11_11_01_11_11_11;第五轮Δ5中:在第37时钟周期,操作控制信号为01_11_11_11_11_11,在第38时钟周期,操作控制信号为10_11_01_11_11_11,在第39~第44时钟周期,操作控制信号均为11_11_11_11_11_11,在第45时钟周期,操作控制信号为11_01_11_11_11_11;第六轮Δ6中:在第46时钟周期,操作控制信号为11_11_11_01_11_11,在第47时钟周期,操作控制信号为11_01_11_10_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_000_000,在所述第2时钟周期,选通控制信号为011_101_000_000,在所述第3时钟周期,选通控制信号为011_101_000_000,在所述第4~第9时钟周期,选通控制信号均为000_000_000_000;在所述第二轮Δ2中:在所述第10时钟周期,选通控制信号为100_000_000_000,在所述第11时钟周期,选通控制信号为101_000_000_000,在所述第12时钟周期,选通控制信号为001_010_000_000,在所述第13~第18时钟周期,选通控制信号均为000_000_000_000;在所述第三轮Δ3中:在所述第19时钟周期,选通控制信号为010_000_111_001,在所述第20时钟周期,选通控制信号为111_111_111_010,在所述第21时钟周期,选通控制信号为001_111_001_100,在所述第22~第27时钟周期,选通控制信号均为000_000_000_000;在所述第四轮Δ4中:在所述第28时钟周期,选通控制信号为110_110_111_010,在所述第29时钟周期,选通控制信号为001_000_000_000,在所述第30时钟周期,选通控制信号为011_101_000_000,在所述第31~第36时钟周期,选通控制信号均为000_000_000_000;在所述第五轮Δ5中:在所述第37时钟周期,选通控制信号为001_010_000_000,在所述第38时钟周期,选通控制信号为010_100_011_111,在所述第39时钟周期,选通控制信号为111_110_000_000,在所述第40~第45时钟周期,选通控制信号均为000_000_000_000;在所述第六轮Δ6中:在所述第46时钟周期,选通控制信号为000_000_000_000,在所述第47时钟周期,选通控制信号为000_000_010_111,在所述第48时钟周期,选通控制信号为000_000_000_111;所述第一多路选择器组,其中:各个多路选择器mux1~mux6各自的选择信号输入端先后依次分别与所述点加寄存器控制器的各操作控制信号输出端相连,分别输入各个操作控制信号C1~C6,各个多路选择器mux1~mux6各自的00端先后依次输入X1、Y1、Z1、X2、Y2、1,各个多路选择器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输入端互连后接所述Q点的坐标值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,T4←T3×T5,T4←T3×T5,而所述模加器无输出;在所述第二轮Δ2中,所述模乘器的输出r_mul使:T4←T4×T5,T6←T4×T5,T2←T1×T2,而所述模加器无输出;在所述第三轮Δ3中:所述模乘器的输出r_mul使:T4←T2×T4,T2←T52,T1←T1×T6,所述模加器的输出r_add使:T5←T4-T1,T6←T6-T2,T1←T1+T4;在所述第四轮Δ4中:所述模乘器的输出r_mul使:T3←T62,T1←T1×T2,T3←T3×T5,所述模加器的输出r_add使:T4←T4-T2;在所述第五轮Δ5中:所述模乘器的输出r_mul使:T2←T1×T2,T4←T2×T4,T2←T1×T6,所述模加器的输出r_add使:T1←T3-T1;在所述第六轮Δ6中:所述模加器的输出r_add使:T4←T2-T4,T2←T4-T2,得到X3=T1,Y3=T2,Z3=T3;符号“←”表示用右边的数据去代替左边的数据。
地址 100084 北京市海淀区100084-82信箱