一种基于指令的大数点加、倍点运算电路及实现方法

文档序号:6631452阅读:348来源:国知局
一种基于指令的大数点加、倍点运算电路及实现方法
【专利摘要】本发明公开了一种基于指令的大数点加、倍点运算电路,包括有限域运算层基础运算电路,以及运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器,基础运算电路根据运算命令操作码寄存器中存储的运算命令操作码及运算顺序,对操作数地址寄存器中存储的操作数地址对应的操作数进行基础运算,并将运算结果存储至操作结果地址寄存器存储的操作结果地址处。本发明还提供一种基于指令的大数点加、倍点运算电路实现方法本发明。本发明解决了点加、倍点运算过程中对于有限域运算层的有序调用问题,并且结构简单、运算顺序可配置,方便算法升级。
【专利说明】-种基于指令的大数点加、倍点运算电路及实现方法

【技术领域】
[0001] 本发明设及微电子【技术领域】,尤其设及一种基于指令的大数点加、倍点运算电路 及实现方法。

【背景技术】
[000引 目前基于有限域上楠圆曲线离散对数问题的非对称密码算法ECC (Elliptic 化rve化yptography)被公认为是最高比特强度的公钥密码体制,广泛应用于快速加密、密 钥交换、身份验证、数字签名、保密通信等领域。
[0003] SM2楠圆曲线公钥密码算法作为ECC算法中的一种,加密强度为256位,安全性高、 存储空间小、可W快速完成签名、密钥交换W及加密应用。
[0004] SM2相关的运算逻辑可W视为独立的单元进行设计,并且采用层次化的划分方式 可W分为有限域运算层W及楠圆曲线运算层。有限域运算层的主要功能是提供SM2算法所 需要的数论运算支持,包括256位大整数模加、模减、模乘、模逆、模幕、比较。楠圆曲线运 算层由有限域运算层的各种基础运算按照一定的规则进行排序后构成,包括点加、倍点、点 乘、坐标转换。
[0005] 在楠圆曲线密码体制中,核屯、运算是点乘,我们可W将点乘分解为两种基本运算: 点加W及倍点,点加和倍点运算可W采用不同的坐标系来实现。常用的坐标系是仿射坐标 系和化cobi投影坐标系。本发明适用于基数在素数域中化cobian加重射影坐标系下的楠 圆曲线公钥密码算法。在化cobian加重射影坐标系下,令0点表示无穷远点,在有限域巧 内,E(巧)上点的加法运算定义如下: (1) 0+0=0 ; (2) --P = X,y, Z G E巧)I I 0,P+0=0+P=P ; (3) --P = X,y,z G E(Fp) II 0,P 的逆元素??P = Wx,?%3y,uz),u G Fp且 u 声 0, P+(-P)=0 ; (4) 设点 Pi = (X。y。Zi) G E(Fp) I I 0, P2 = (X2, 72,Z2) G E(Fp) I I 0, Ps= Pi + P2 = (X3,73,Z3)声0,若Pi声P2,进行点加运算,则; 入 1 = XiZgS,入2 = X2Zi2,入 3 =入 1 --入2,入4 = YlZgS,入 5 = Y2Zi3,入6 =入4 --入 5, 入7 =入1 +入2,入8 =入4 +入5,Xs =入6] --入7入3],入9 =入7入3] -- 2又3, 73=(入 9 入 6 --入 8 入 S') /2,Z3 = Z& 入 3; 若P 1 = P2,进行倍点运算,则; 入 1 = 3Xi2 + aZi*,入 2 = AXiYi],入 3 = 8yi4,X3 =入 -- 2 入 2,73 =入1 (入 2 --又3) -- 入 3,Z3 二 2yiZi。
[0006] 对算法运算序列和硬件资源调度方式的优化可W提升楠圆曲线密码算法的性 能。如中国第CN101782845A发明针对点加和倍点算法,重新排列了修改的化cobian坐 标点的点加和倍点运算序列,提出了一种实现点加运算和倍点运算的新方法;如中国第 CN101221491A发明利用化cobian坐标系下楠圆曲线点加的计算公式,提取出相互独立的 操作,构造S级流水线电路结构;如中国第CNIO1262345A发明利用化cob ian坐标系下楠圆 曲线倍点的计算公式,提取出相互独立的操作,构造=级流水线电路结构。W上实现方法采 用固定运算序列,在系统升级W及可拓展性方面存在不足。


【发明内容】

[0007] 为了克服现有技术中存在的不足,本发明提供一种基于指令的大数点加、倍点运 算电路及实现方法,解决点加、倍点运算过程中对于有限域运算层的有序调用问题,结构简 单、运算顺序可配置,方便算法升级。
[000引为实现上述目的,本发明采取如下技术方案: 一种基于指令的大数点加运算电路,包括有限域运算层基础运算电路,W及运算命令 操作码寄存器、操作数地址寄存器、操作结果地址寄存器,所述基础运算电路根据运算命令 操作码寄存器中存储的运算命令操作码及运算顺序,对操作数地址寄存器中存储的操作数 地址对应的操作数进行基础运算,并将运算结果存储至操作结果地址寄存器存储的操作结 果地址处。
[0009] 更进一步的,操作数地址和操作结果地址的地址寻址采用格式一致的指令结构, 包括操作数所在RAM选择指令、操作数所在RAM地址指令。
[0010] 更进一步的,操作数所在RAM地址指令采用间接寻址的方式,经地址指令解析电 路,查找当前指令所对应的地址。
[0011] 更进一步的,所述运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存 器均为非循环移位寄存器;优选的,所述基础运算电路包括模加运算电路、模减运算电路和 模乘运算电路。
[0012] 一种基于指令的大数倍点运算电路,包括有限域运算层基础运算电路,W及运算 命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器,所述基础运算电路根据运算 命令操作码寄存器中存储的运算命令操作码及运算顺序,对操作数地址寄存器中存储的操 作数地址对应的操作数进行基础运算,并将运算结果存储至操作结果地址寄存器存储的操 作结果地址处。
[0013] 更进一步的,操作数地址和操作结果地址的地址寻址采用格式一致的指令结构, 包括操作数所在RAM选择指令、操作数所在RAM地址指令。
[0014] 更进一步的,操作数所在RAM地址指令采用间接寻址的方式,经地址指令解析电 路,查找当前指令所对应的地址。
[0015] 更进一步的,运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器均 为非循环移位寄存器;优选的,所述基础运算电路包括模加运算电路、模减运算电路和模乘 运算电路。
[0016] 一种基于指令的大数点加、倍点运算电路实现方法,包括如下步骤: (1) CPU向运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器依次写入 所执行的运算命令操作码、操作数地址、操作结果地址; (2) 寻址并提取操作数地址寄存器当前运算操作数地址对应操作数,然后输入运算命 令操作码寄存器当前执行运算命令对应的基础运算电路中进行运算,并将运算结果存储至 操作结果地址寄存器当前操作结果地址处; (3) 运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器左移进入下一次 执行操作,判断运算命令操作码寄存器当前运算命令操作码是否全零,若是,表示楠圆曲线 运算完成,否则,重复步骤(2); (4) 楠圆曲线运算完成后,运算命令操作码寄存器产生中断信号通知CPU本次运算完 成,运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器返回到默认状态。
[0017] 优选的,基础运算电路包括模加运算电路、模减运算电路和模乘运算电路;所述运 算命令操作码寄存器包括=个命令操作码分别对应模加运算电路、模减运算电路和模乘运 算电路。
[001引有益效果;(1)本发明采用自定义的运算操作码、地址操作码,构建了内部指令, 数据运算过程按照指令有步骤进行,避免了地址冲突,简化了运算电路的设计复杂度。
[0019] (2)在传统运算电路设计方法,运算过程中各阶段的运算顺序一般为固定,若后续 算法升级后,原电路并不能直接适用于新算法,需要对原硬件电路进行重新设计,增加了设 计成本和产品研发周期。在本方法中,采用现有运算顺序可W完成点加、倍点操作,同时操 作码寄存器单元面向CPU开放,软件只需要重新配置运算操作码寄存器、地址操作码寄存 器,即可调整运算顺序,方便算法进行升级。
[0020] (3)本发明在进行运算的全过程中,CPU不需要进行参与,只在运算开始前写入原 始数据,并在运算完成后读出运算结果,降低了对CPU的载荷。
[0021] (4)本发明中采用间接寻址的方式,通过地址码解析电对地址操作码进行解析,可 W通过重新定义地址码与实际地址的对应规则,在不同的应用环境下进行灵活配置,电路 结构改动小。

【专利附图】

【附图说明】
[0022] 图1为本发明提供的基于指令的大数点力日、倍点运算电路原理框图。
[0023] 图2为本发明运算命令操作码的基本格式。
[0024] 图3为本发明地址操作码的基本格式。

【具体实施方式】
[0025] 下面结合附图对本发明作更进一步的说明。
[0026] 本发明适用于基数在素域中化cobian加重射影坐标系下的SM2楠圆曲线公钥密 码算法。完成一次SM2点加、倍点运算,需要多次调用有限域运算层,然而不同的算法实现, 所采用的调用顺序并不一致,因此需要一种扩展性强的点加、倍点运算方式。
[0027] 如图1所示,本发明提供的一种基于指令的大数点加、倍点运算电路,包括运算命 令操作码寄存器、操作数地址寄存器、操作结果地址寄存器,W及有限域运算层中的模加运 算电路、模减运算电路和模乘运算电路,本实施例中优选W模加运算电路、模减运算电路和 模乘运算电路作为基本运算单元实现有限域运算层的各种基础运算,实际使用过程中,可 W根据需要增加或减少调用基础运算单元的次数,并且本实施例中的各基础运算单元可采 用所有实现其运算功能的硬件逻辑单元,比如模加器、模减器或模乘器;另外,各基础运算 单元之间还可采用所有实现其运算功能的硬件逻辑结构。
[002引本发明通过自建指令:运算命令操作码、操作数地址、操作结果地址,分别存储在 运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器中,其中: 运算命令操作码由2比特信号表示,表示点加和/或倍点运算顺序,对应规则;"01"表 示对两个操作数进行模加运算;"10"表示对两个操作数进行模减运算;"11"表示对两个操 作数进行模乘运算;"00"表示当前楠圆曲线运算完成,如表1所示。
[0029] 表1运算命令操作码

【权利要求】
1. 一种基于指令的大数点加运算电路,包括有限域运算层基础运算电路,其特征在于: 还包括运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器,所述基础运算电 路根据运算命令操作码寄存器中存储的运算命令操作码及运算顺序,对操作数地址寄存器 中存储的操作数地址对应的操作数进行基础运算,并将运算结果存储至操作结果地址寄存 器存储的操作结果地址处。
2. 根据权利要求1所述的一种基于指令的大数点加运算电路,其特征在于:所述操作 数地址和操作结果地址的地址寻址采用格式一致的指令结构,包括操作数所在RAM选择指 令、操作数所在RAM地址指令。
3. 根据权利要求2所述的一种基于指令的大数点加运算电路,其特征在于:所述操作 数所在RAM地址指令采用间接寻址的方式,经地址指令解析电路,查找当前指令所对应的 地址。
4. 根据权利要求1所述的一种基于指令的大数点加运算电路,其特征在于:所述运算 命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器均为非循环移位寄存器;所述 基础运算电路包括模加运算电路、模减运算电路和模乘运算电路。
5. -种基于指令的大数倍点运算电路,包括有限域运算层基础运算电路,其特征在于: 还包括运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器,所述基础运算电 路根据运算命令操作码寄存器中存储的运算命令操作码及运算顺序,对操作数地址寄存器 中存储的操作数地址对应的操作数进行基础运算,并将运算结果存储至操作结果地址寄存 器存储的操作结果地址处。
6. 根据权利要求5所述的一种基于指令的大数倍点运算电路,其特征在于:所述操作 数地址和操作结果地址的地址寻址采用格式一致的指令结构,包括操作数所在RAM选择指 令、操作数所在RAM地址指令。
7. 根据权利要求6所述的一种基于指令的大数倍点运算电路,其特征在于:所述操作 数所在RAM地址指令采用间接寻址的方式,经地址指令解析电路,查找当前指令所对应的 地址。
8. 根据权利要求5所述的一种基于指令的大数倍点运算电路,其特征在于:所述运算 命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器均为非循环移位寄存器;所述 基础运算电路包括模加运算电路、模减运算电路和模乘运算电路。
9. 一种权利要求1或5所述基于指令的大数点加、倍点运算电路实现方法,其特征在于 包括如下步骤: (1) CPU向运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器依次写入 所执行的运算命令操作码、操作数地址、操作结果地址; (2) 寻址并提取操作数地址寄存器当前运算操作数地址对应操作数,然后输入运算命 令操作码寄存器当前执行运算命令对应的基础运算电路中进行运算,并将运算结果存储至 操作结果地址寄存器当前操作结果地址处; (3) 运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器左移进入下一次 执行操作,判断运算命令操作码寄存器当前运算命令操作码是否全零,若是,表示椭圆曲线 运算完成,否则,重复步骤(2); (4 )椭圆曲线运算完成后,运算命令操作码寄存器产生中断信号,通知CPU本次运算完 成,运算命令操作码寄存器、操作数地址寄存器、操作结果地址寄存器返回到默认状态。
10.根据权利要求9所述的一种基于指令的大数倍点运算电路,其特征在于:所述基础 运算电路包括模加运算电路、模减运算电路和模乘运算电路;所述运算命令操作码寄存器 包括三个命令操作码分别对应模加运算电路、模减运算电路和模乘运算电路。
【文档编号】G06F7/72GK104503730SQ201410573820
【公开日】2015年4月8日 申请日期:2014年10月24日 优先权日:2014年10月24日
【发明者】刘奇浩, 孙晓宁, 刘大铕, 赵阳, 王运哲, 刘守浩 申请人:山东华芯半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1