发明名称 椭圆曲线密码体制协处理器的实现方法
摘要 椭圆曲线密码体制协处理器的实现方法是一种信息安全中的密码体制的硬件协处理器,采用自顶向下的设计思路,结合自底向上的实现步骤,借助Altra公司的Quartus开发环境,使用VHDL语言编写和数字电路模块搭建同时进行的方式,完成ECC协处理器的设计。在设计时,首先对整个协处理器进行功能划分,细化为各个底层模块;而在实现时,先实现各个底层模块并分别进行测试,最后整合为完整的ECC协处理器。解决ECC计算中点乘问题的256位通用协处理器,包括该协处理器的硬件构架、指令集设计以及使用规则的设计。
申请公布号 CN101000538A 申请公布日期 2007.07.18
申请号 CN200710019231.7 申请日期 2007.01.05
申请人 东南大学 发明人 曹秀英;李青
分类号 G06F7/72(2006.01);H04L9/30(2006.01) 主分类号 G06F7/72(2006.01)
代理机构 南京经纬专利商标代理有限公司 代理人 叶连生
主权项 1.一种椭圆曲线密码体制协处理器的实现方法,其特征在于该协处理器的实现方法为以下步骤:外部CPU与协处理器的通信:步骤1):外部CPU将需要计算的点P(Xp,Yp)、乘数k存入协处理器数据存储器中,Xp、Yp和k为256比特二进制数,如果不足256比特,左侧补0至256位;P是满足椭圆曲线方程y2+xy=x3+ax2+b的点,Xp、Yp是它的横坐标和纵坐标;步骤2):外部CPU将椭圆曲线方程常数a、b和既约多项式的二进制形式M存入协处理器数据存储器中,a、b和M为256比特二进制数,且a、b是椭圆曲线方程y2+xy=x3+ax2+b的系数;步骤3):外部CPU将点乘指令集存入协处理器指令存储器中,该指令集中每条指令为16比特,协处理器将从指令集中读指令逐步执行,完成协处理器工作;步骤4):外部CPU给协处理器使能信号,使协处理器开始工作;协处理器初始化:步骤5):协处理器从数据存储器中取出点P(Xp,Yp)到寄存器中,提供给各个运算模块使用;步骤6):协处理器从数据存储器中取出椭圆曲线方程常数到a和b到寄存器中;步骤7):协处理器从数据存储器中取出既约多项式M,存入既约多项式寄存器,同时根据既约多项式最高次数设置相关计算模块的最高次数;步骤8):协处理器根据输入的点P(Xp,Yp),通过平方和加法计算后初始化两个计算用的变量点:P1(X1,Z1)和P2(X2,Z2);其中:X1=Xp,Z1=1,X2=Xp4+b,Z2=Xp2,它们是256比特的二进制数,X1、Z1和X2、Z2分别代表点P1和P2的仿射坐标的X轴和Z轴坐标;在这里为了方便之后的计算,通过引入P1和P2将点P的二维投射坐标扩展为三维的仿射坐标;步骤9):协处理器从数据存储器中取出乘数k,存入移位寄存器中,并且对该寄存器进行初始化,将其左移直到首位为1;协处理器根据移位寄存器当前最高位判定之后流程:步骤10):下面的流程将循环更新变量点P1和变量点P2的值直到移位寄存器中k的比特数移完。协处理器通过读移位寄存器当前最高位判定跳转,若为0,执行步骤11);若为1,跳转至步骤14);移位寄存器最高位为0时协处理器分支跳转步骤:步骤11):利用点加算法计算P3=P1+P1和P4=P1+P2,之后将P3和P4的值再分别赋给P1和P2;其中,P3和P4是中间变量点,它们也满足椭圆曲线方程,并且坐标定义域和P1、P2相同;步骤12):判定移位寄存器中是否还有剩余的比特数,若全部移完,跳至步骤17),否则继续下面的步骤;步骤13):将移位寄存器左移1位,跳至步骤10;移位寄存器最高位为1时协处理器分支跳转步骤:步骤14):利用点加算法计算P3=P1+P2和P4=P2+P2,之后将P3和P4的值再分别赋给P1和P2;步骤15):判定移位寄存器中是否还有剩余的比特数,若全部移完,跳至步骤17),否则继续下面的步骤;步骤16):将移位寄存器左移1位,跳至步骤10;根据最后的P1和P2计算最终点乘结果Pk(Xk,Yk):Pk也是满足椭圆曲线方程的点,点乘计算的目的就是求Pk=k·P步骤17):读当前的P1坐标:X1和Z1;P2坐标:X2和Z2,它们是位宽位256比特的二进制数;步骤18):读出点P的横坐标Xp,存入寄存器中,令x=Xp,因此x也为256比特的二进制数;步骤19):计算Xk=X1/Z1,将Xk存入数据存储器,此为点Pk的横坐标;步骤20):计算temp1=Xk+x,temp2=X2/Z2+x,temp1和temp2是256比特的临时变量;步骤21):利用temp1和temp2通过下面的公式计算得到Yk,将Yk存入数据存储器,此为点Pk的纵坐标;<math> <mrow> <mi>Yk</mi> <mo>=</mo> <mi>temp</mi> <mn>1</mn> <mo>&times;</mo> <mfrac> <mrow> <mi>temp</mi> <mn>1</mn> <mo>&times;</mo> <mi>temp</mi> <mn>2</mn> <mo>+</mo> <mi>X</mi> <msup> <mi>p</mi> <mn>2</mn> </msup> <mo>+</mo> <mi>Yp</mi> </mrow> <mi>Xp</mi> </mfrac> <mo>+</mo> <mi>Yp</mi> </mrow> </math> 协处理器计算完毕:步骤22):协处理器发出中断信号通知外部CPU计算完成;步骤23):外部CPU读取协处理器数据存储器中的Pk的值,即Xk和Yk。之后撤除协处理器的使能信号。
地址 210096江苏省南京市四牌楼2号