CN100518058C - 一种用于公钥密码运算加速的方法及其体系结构 - Google Patents

一种用于公钥密码运算加速的方法及其体系结构 Download PDF

Info

Publication number
CN100518058C
CN100518058C CNB2005100610709A CN200510061070A CN100518058C CN 100518058 C CN100518058 C CN 100518058C CN B2005100610709 A CNB2005100610709 A CN B2005100610709A CN 200510061070 A CN200510061070 A CN 200510061070A CN 100518058 C CN100518058 C CN 100518058C
Authority
CN
China
Prior art keywords
module
instruction
common key
key code
static memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100610709A
Other languages
English (en)
Other versions
CN1750459A (zh
Inventor
沈海斌
严晓浪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNB2005100610709A priority Critical patent/CN100518058C/zh
Publication of CN1750459A publication Critical patent/CN1750459A/zh
Application granted granted Critical
Publication of CN100518058C publication Critical patent/CN100518058C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种用于公钥密码运算加速的方法及其体系结构。利用SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;序列指令发生器模块根据寄存器模块的配置情况,负责产生实现点乘或模幂运算的指令,并在运算结束时发送运算完成标志位给寄存器模块;运算处理器则采用四级流水线完成指令的执行,并从静态存储器单元存取数据。本发明具有实现方法简单、应用范围广及运算速度快的特点。

Description

一种用于公钥密码运算加速的方法及其体系结构
技术领域
本发明涉及一种用于公钥密码运算加速的方法及其体系结构,尤其适用于实现ECC的点乘运算和RSA的模幂运算加速。
背景技术
当前,随着我国国民经济和社会信息化建设进程,如金融信息化、电子商务、电子政务的快速发展,急需解决经济、文化等重要领域信息系统的信息安全问题,提高安全保护水平,增强信息安全积极防御与反应能力。而信息安全中最核心的技术是密码技术,其中的公钥密码体制更是自其面世一始,就在信息安全领域发挥了极大的作用,应用前景良好。
公钥密码运算的实现,很大一部分都是基于CPU用软件来完成的。但是在现实的应用当中,很多加密应用是脱离于计算机而存在的,它应用于各种嵌入式系统当中。如果让嵌入式处理器完成所有的加密运算,同时还要完成其它的应用,其实时性就可能受到影响。而在另外一个方面,用硬件来实现加密算法,在安全性方面也比用软件来实现要好得多。对运行在没有物理保护的一般计算机上的某个加密算法,可以用各种跟踪工具秘密修改算法而使任何人都不知道。而硬件加密可以安全的封装起来,如防篡改盒能防止别人修改硬件加密设备,对于VLSI芯片,可以覆盖一层化学物质,使得任何企图对它们内部进行访问都将导致芯片逻辑的破坏。鉴于上述应用场合,实时性及安全性的考虑,公钥密码体制的实现,必然还需要用硬件来直接完成。
目前,集成电路设计中的用于实现计算加速的方法为:运行指令由编译器产生,处理器采用五级流水线,包括取指令周期(IF),指令译码/读寄存器周期(ID),执行/有效地址周期(EX),访问存储器(MEM)和写回周期(WB)。这种方法往往着眼于处理器运算单元改进,或调度策略上作一些改善。在一定程度上可以改进运算的效率。但是使用编译器产生指令,会导致整个系统的运算性能在很大程度上决定于编译技术;还会影响代码的质量,从而导致计算效率降低。
发明内容
本发明的目的在于针对现有技术的不足,提供一种集成电路中实现公钥密码运算加速的方法及其体系结构。
本发明的用于公钥密码运算加速的方法:其包括以下步骤:
1)利用SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;
2)序列指令发生器模块根据寄存器模块的配置情况,产生实现点乘或模幂运算的指令,并发送到运算处理器;
3)运算处理器从静态存储器单元存取数据,并采用指令译码/存储器读取、指令执行I、指令执行II和存储器存储四级流水线,完成指令的执行;
4)运算处理器在运算结束时发送运算完成标志位给寄存器模块;
上述的序列指令发生器模块可以采用分层的有限状态机来实现。
所说的指令译码由译码电路完成,且在同一周期内对片上存储器读取数据;指令执行I主要执行双域乘加运算,指令执行II主要执行移位运算和双域加法运算。
用于实现上述公钥密码运算加速方法的体系结构包括:包括由寄存器组组成的寄存器模块,用于产生实现点乘或模幂运算指令的序列指令发生器模块,由双域乘加器、移位器、双域加法器组成的运算处理器模块,实现两读一写的静态存储器模块和SoC总线,寄存器模块和静态存储器模块分别与连接外部主控器的SoC总线相连,寄存器模块与序列指令发生器模块相连,序列指令发生器模块以及静态存储器模块分别与运算处理器模块相连。
本发明工作原理:
外部主控器通过SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;通过对寄存器模块运算完成标志位的查询,主控器可在运算完成后读取运算结果。
序列指令发生器模块采用分层的有限状态机来实现,它根据寄存器模块的配置情况,产生实现点乘或模幂运算的指令,并在运算结束时发送运算完成标志位给寄存器模块;主控器查询此标志位后,可读取运算结果。
运算处理器接收序列指令发生模块所送出的指令,通过指令译码/存储器读取、指令执行I、指令执行II和存储器存储四级流水线,完成指令的执行,并从静态存储器模块存取数据;若发生数据相关性,则反馈信号给序列指令发生模块,令其在必要的时候停止发送指令。
静态存储器模块则依据运算处理器的要求,完成数据存取。在一个时钟周期内,需要实现读取两个数据,存储一个数据的要求。
本发明具有以下技术效果:
1)序列指令产生器模块的引入,使得指令的产生不需要依赖编译技术,不但在应用上简单,且可以将算法实现最优化。
2)指令序列完全按顺序执行,故运算处理器只需要采用有针对性的四级流水线,不但使处理器的设计变得简单,还提高了运算效率。
附图说明
图1是用于公钥密码运算加速的体系结构框图。
具体实施方式
以下结合附图进一步说明本发明。
参照图1,用于公钥密码运算加速的体系结构包括:由寄存器组组成的寄存器模块1,用于产生实现点乘或模幂运算指令的序列指令发生器模块2,由双域乘加器、移位器、双域加法器组成的运算处理器模块3,实现两读一写的静态存储器模块4和SoC总线5,寄存器模块1和静态存储器模块4分别与连接外部主控器的SoC总线5相连,寄存器模块1与序列指令发生器模块2相连,序列指令发生器模块2以及静态存储器模块4分别与运算处理器模块3相连。
以椭圆曲线密码(ECC)点乘运算及RSA模幂运算为例,说明本发明实现公钥密码运算加速。
ECC密码和RSA的密码,不论其是在加、解密领域,还是在数字签名等领域,其核心运算分别是点乘运算和模幂运算。本发明的主要作用就是实现ECC的点乘运算和RSA的模幂运算。公钥密码的最终完成,则还有赖于主控器的控制。也就是说,该体系结构从属于主控器工作。它所起到的是对ECC和RSA的核心运算进行加速的作用。
公钥密码运算加速系统的初始化:外部主控器通过SoC总线5向静态存储器模块4写入明文等原始数据;当数据的输入完成后,再向寄存器模块1写入配置参数。
公钥密码运算加速系统的运行:当初始化完成之后,系统开始工作。序列指令发生器模块2产生完成ECC点乘或RSA模幂运算的指令,并将其发送到运算处理器模块3。运算处理器模块对其进行译码,并从静态存储器模块读取需要的数据,进行计算,计算完成后将数据存回静态存储器模块。若其中发生数据相关性问题,则视情况反馈信息给序列指令发生器模块2,令其暂时中断指令产生。当整个运算完成后,发送运算完成标志位给寄存器模块1。
公钥密码运算加速系统的数据读取:运算完成后,主控器通过对寄存器模块1相关标志位的查询,或者由本发明中的寄存器模块直接给出一个中断信号给主控器,使主控器得知运算完成的信息。主控器可通过SoC总线5从静态存储器读取运算结果。

Claims (4)

1.一种用于公钥密码运算加速的方法,其包括以下步骤:
1)利用SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;
2)序列指令发生器模块根据寄存器模块的配置情况,产生实现点乘或模幂运算的指令,并发送到运算处理器;
3)运算处理器从静态存储器单元存取数据,并采用指令译码/存储器读取、指令执行I、指令执行II和存储器存储四级流水线,完成指令的执行;
4)运算处理器在运算结束时发送运算完成标志位给寄存器模块。
2.根据权利要求1所述的用于公钥密码运算加速的方法,其特征是序列指令发生器模块采用分层的有限状态机来实现。
3.根据权利要求1所述的用于公钥密码运算加速的方法,其特征是所说的指令译码由译码电路完成,且在同一周期内对静态存储器单元读取数据;指令执行I执行双域乘加运算,指令执行II执行移位运算和双域加法运算。
4.用于权利要求1所述公钥密码运算加速方法的体系结构,其特征是包括:由寄存器组组成的寄存器模块(1),用于产生实现点乘或模幂运算指令的序列指令发生器模块(2),由双域乘加器、移位器、双域加法器组成的运算处理器模块(3),实现两读一写的静态存储器模块(4)和SoC总线(5),寄存器模块(1)和静态存储器模块(4)分别与连接外部主控器的SoC总线(5)相连,寄存器模块(1)与序列指令发生器模块(2)相连,序列指令发生器模块(2)以及静态存储器模块(4)分别与运算处理器模块(3)相连。
CNB2005100610709A 2005-10-12 2005-10-12 一种用于公钥密码运算加速的方法及其体系结构 Expired - Fee Related CN100518058C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100610709A CN100518058C (zh) 2005-10-12 2005-10-12 一种用于公钥密码运算加速的方法及其体系结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100610709A CN100518058C (zh) 2005-10-12 2005-10-12 一种用于公钥密码运算加速的方法及其体系结构

Publications (2)

Publication Number Publication Date
CN1750459A CN1750459A (zh) 2006-03-22
CN100518058C true CN100518058C (zh) 2009-07-22

Family

ID=36605733

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100610709A Expired - Fee Related CN100518058C (zh) 2005-10-12 2005-10-12 一种用于公钥密码运算加速的方法及其体系结构

Country Status (1)

Country Link
CN (1) CN100518058C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200967B2 (en) * 2006-10-18 2012-06-12 Rockstar Bidco Lp Method of configuring a node, related node and configuration server
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
US8060913B2 (en) * 2006-11-02 2011-11-15 Nokia Corporation Policy execution
EP2169535A1 (en) * 2008-09-22 2010-03-31 Thomson Licensing Method, apparatus and computer program support for regular recoding of a positive integer
WO2015096167A1 (en) * 2013-12-28 2015-07-02 Intel Corporation Rsa algorithm acceleration processors, methods, systems, and instructions
CN104572021B (zh) * 2015-01-27 2017-09-19 聚辰半导体(上海)有限公司 一种高效的公钥加密引擎

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
椭圆曲线公钥制密码系统的软件控制设计. 陈超,顾震宇,曾晓洋,章倩苓.微电子学与计算机,第8期. 2003
椭圆曲线公钥制密码系统的软件控制设计. 陈超,顾震宇,曾晓洋,章倩苓.微电子学与计算机,第8期. 2003 *
椭圆曲线加密的硬件实现. 胡瑞元,陈文宇,甘骏人,周依林.电子设计应用,第5期. 2003
椭圆曲线加密的硬件实现. 胡瑞元,陈文宇,甘骏人,周依林.电子设计应用,第5期. 2003 *

Also Published As

Publication number Publication date
CN1750459A (zh) 2006-03-22

Similar Documents

Publication Publication Date Title
KR102557993B1 (ko) 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
CN102509036B (zh) 一种可重构密码处理器及抗功耗攻击方法
CN100518058C (zh) 一种用于公钥密码运算加速的方法及其体系结构
JP4317607B2 (ja) 情報処理装置、耐タンパ処理装置
CN111931251B (zh) 一种基于区块链的可信计算芯片
CN109479003B (zh) 用于安全椭圆曲线密码指令的处理器、系统、方法和设备
CN102663326B (zh) 用于SoC的数据安全加密模块
WO2016190924A2 (en) Side channel analysis resistant architecture
CN100583757C (zh) 一种ecc\rsa加解密协处理器
CN102043916A (zh) 一种高性能可扩展公钥密码协处理器结构
Brenner et al. How practical is homomorphically encrypted program execution? an implementation and performance evaluation
CN105302522A (zh) 提供通用gf(256)simd密码算法功能性的指令和逻辑
WO2023160399A1 (zh) 一种加速器、加速方法和电子设备
CN110704109B (zh) 一种椭圆曲线密码协处理器
Breuer et al. Superscalar encrypted RISC: The measure of a secret computer
Gaspar et al. HCrypt: a novel concept of crypto-processor with secured key management
CN200990078Y (zh) 快速rsa密码和大数模指数运算的电路
CN101819519B (zh) 多功能数字签名电路
CN104539417A (zh) 一种基于流密码的加密设备
CN2838153Y (zh) 一种用于公钥密码运算加速的体系结构
CN105094746A (zh) 一种椭圆曲线密码的点加/点倍的实现方法
CN103927488A (zh) 一种针对可信嵌入式系统的可信平台模块
Breuer et al. The secret processor will go to the ball: Benchmark insider-proof encrypted computing
Garcia et al. Mapping of the AES cryptographic algorithm on a Coarse-Grain reconfigurable array processor
CN102110038B (zh) 一种安全类芯片的测试电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090722

Termination date: 20091112