CN107508666A - 一种基于rsa和sha‑512的低成本数字签名sopc设计方法 - Google Patents
一种基于rsa和sha‑512的低成本数字签名sopc设计方法 Download PDFInfo
- Publication number
- CN107508666A CN107508666A CN201710776253.1A CN201710776253A CN107508666A CN 107508666 A CN107508666 A CN 107508666A CN 201710776253 A CN201710776253 A CN 201710776253A CN 107508666 A CN107508666 A CN 107508666A
- Authority
- CN
- China
- Prior art keywords
- rsa
- sha
- data
- digital signature
- sopc
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3215—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种基于RSA和SHA‑512的低成本数字签名SOPC设计方法,其中片内MCU使用ALTERA的软核NiosII,按照运算的特点对RSA和SHA‑512进行软硬件划分;软件部分包括与片外数据的交互、RSA的模幂运算、SHA‑512的数据填充;硬件部分完成RSA的模乘运算、模加运算、模逆运算,以及SHA‑512中以80轮为一个子单元的运算。利用了硬件计算的并行性,获得高速计算效果;利用软件灵活性,可以保证系统的抗攻击能力,并且可支持不同的RSA长度、不同的HASH函数等计算方式。功能上,本发明能用于数字签名,身份认证等场合。
Description
技术领域
本发明涉及密码芯片设计领域,特别涉及基于RSA和SHA-512的低成本数字签名SOPC(可编程片上系统)设计方法。
背景技术
RSA公钥加密算法在1977提出,可以方便的用于秘钥交换和数字签名等场合,它能抵御目前为止所有的密码攻击,已被ISO推荐为公钥加密标准。SHA是美国国家安全局(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数,能够有效的计算出一段数据的哈希值,并保证其单向性。
数字签名在目前的电子商务、公文流转等场合中应用频繁,主要的方式为先对需要签名的文件进行HASH运算,得到文件的哈希值,再对哈希值进行非对称加密算法的私钥加密,这样相比直接私钥运算大大提高了计算速度,安全性却可以通过HASH的单向性来保证。
RSA的安全性源于大整数分解的困难性,为了保证安全,需要选取更长的密钥,目前认为暂时安全的长度为1536位或2048位。密钥长度的增加将大大增大计算难度,软件实现RSA的耗费时间已经难以接受,目前用硬件实现RSA是通用的做法。
硬件实现RSA能达到很高的速度,一般的FPGA的每秒完成40次2048位RSA计算已经可以做到。但是硬件实现的RSA也有缺陷,第一是算法的更改升级麻烦,甚至连支持不同长度的RSA都不能很好的兼容,限制了产品的通用性;第二是硬件难以做到功耗平衡,抗攻击能力有限。
可见,RSA迫切需要解决的问题是提高运算速度的同时保证计算的灵活性和抗旁道攻击能力。
SHA运算中用到了大量的逻辑运算,与RSA一样,利用硬件的并行性可以提升运算速度。
发明内容
本发明从技术上提出了一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,有效的解决了上述问题。其中片内MCU使用ALTERA的软核NiosII,按照运算的特点对RSA和SHA-512进行软硬件划分;软件部分包括与片外数据的交互、RSA的模幂运算、SHA-512的数据填充;硬件部分完成RSA的模乘运算、模加运算、模逆运算,以及SHA-512中以80轮为一个子单元的运算。本发明应用于数字签名与验证等场合,能有效抵抗目前已知的所有攻击方式。
一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其采用NiosII软核作为控制中心,控制一次数字签名或验证的进行;采用硬件实现基本密码算数模块,作为计算加速器外挂在avalon总线上,基本密码算数模块包括模乘模块、模加模块、模逆模块以及SHA-512中对1024位原始数据的80轮运算单元。
进一步地,所述SOPC中,底层硬件模块接口设计为avalon总线接口,与NiosII处理器对接,控制信号和数据信号以地址来区分,底层硬件模块中留有控制/状态寄存器,NiosII通过对此寄存器的读写来完成控制,对底层硬件模块中数据寄存器的读写来完成计算数据的交互。
进一步地,所述SOPC中,RSA硬件模块留有可配置的运算长度寄存器,通过avalon的配置,来实现不同长度RSA运算;SHA-512则因为运算的特点,由NiosII截取运算结果的384位而支持SHA-384。
进一步地,模乘模块中,采用目前最为高速的进位保留的蒙哥马利模乘,NiosII中模幂运算采用能抗出错攻击和功耗攻击的阶梯状模幂算法,并为计算过程中的数据加上了掩码。
进一步地,NiosII中根据硬件定义的接口设计硬件抽象函数,由这些函数完成对各个硬件模块的控制信号、数据信号交互。
进一步地,一次完整的数字签名过程为:由以太网接口从片外输入需要签名的数据,NiosII随后将数据补齐为1024的整数倍,并以1024位为单位循环送入SHA-512底层运算单元,最后将得到的结果用RSA签名,签名结果通过以太网口输出。
进一步地,还包括签名验证过程,验证过程运用SHA-512计算待验证文件的哈希值,与RSA公钥计算出的结果对比,若相同则认为签名有效,否则签名无效。
本发明的设计的用于数字签名/验证的SOPC,对两种算法RSA和SHA-512进行算法分析,适合硬件实现的模乘、模加、模逆,以及SHA-512中以1024位数据为一次基本单元的运算用硬件实现,软件实现其余的过程并完成与外界数据的交互。 RSA的公钥、私钥和模数存储在片内ROM中,系统运行时NiosII通过avalon接口读取秘钥和模数。并且运算中间结果用随机掩码掩盖,使得外界无法通过功耗猜测中间结果。
系统签名过程分为两步,第一步的SHA-512运算获取输入数据的哈希值;第二步RSA完成对哈希值的签名。模幂运算采用了阶梯状运算方式,无论秘钥的当前位为0还是1,都将调用两个硬件模乘模块,区别只是结果赋值给不同的变量,这样是一种有效的功耗平衡手段。
与外界通信的接口使用了ALTERA公司的三速以太网IP核,配置在100M模式下,每秒能传输100Mbtes的数据,不会对整个系统的速度造成限制。
与现有技术相比,本发明提出了一种低成本的数字签名SOPC设计方法,通过硬件模乘、模加等提升了运算速度,又通过软件灵活的配置有效抵御了旁道攻击,并且可支持多种格式的加密方式,应用在数字签名场景,是切实可行的。
附图说明
图1为实例中基于RSA和SHA-512的低成本数字签名SOPC系统框图。
图2为模乘模块内部示意图。
图3为阶梯模幂计算流程图。
图4为签名过程示意图。
图5为签名验证示意图。
具体实施方式
下面结合实施例及附图,对本发明的实施作进一步说明,但本发明的实施和保护不限于此,需指出的是,以下若有未特别详细说明之处如部分现有算法等,均是本领域技术人员可参照现有技术实现和理解的。
本实例的系统框图如图1,系统的生成使用ALTERA的工具Qsys,以下对签名和验证过程做进一步详述。
RSA的私钥和模数片内ROM中,系统运行时NiosII通过avalon接口读取秘钥和模数,模数经过盲化N’=K*N之后通过avalon接口送给模乘模块。其中N为正确模数,K为一个较小的随机数,N’为盲化结果。私钥放在内存中待用。
签名过程如图4所示,系统先对从以太网输入的数据补齐为1024位的整数倍。对SHA-512模块的控制寄存器写入一个数据载入信号,随后将1024位数据分32次从32位宽的avalon总线接口送入SHA-512计算单元,并等待计算结束中断信号,得到中断信号之后再将第二个1024位数据送入,如此直到数据全部计算完成之后,从数据寄存器读取512位结果。随后,NiosII将结果补为希望的长度,例如末尾补上1536个0达到2048位M,并向模乘模块的长度寄存器送入2048以指示模乘的计算长度。此时可以开始RSA计算过程,使用抗功耗攻击的阶梯状模幂算法(如图3),即先生成两个变量R0=1和R1=M,随后对私钥的二进制形式从左到右滑动,若某位为1,则完成R1=R1*R1modN’,和R0=R0*R1modN’;若该位为0,则完成R0=R0*R0modN’,和R1= R0*R1modN’。循环结束之后,R0中就是RSA的掩码计算结果。随后对结果再次对N取模,以去掉掩码得到真实结果,通过以太网口输出。
验证过程如图5所示,系统分三次从以太网输入待验证的文件、待验证的签名和验证对象的公钥e,第一步依然是对该文件补齐为1024位的整数倍,然后以同样的方式计算得到哈希值并扩充为2048位M;随后对输入待验证的签名C’’用e完成RSA运算,得到结果C,若C=M,则证明签名有效,否则签名无效。
模乘模块如图2,其中为avalon接口留了三个地址,数据地址,状态地址,长度地址;对状态地址写入不同的值以控制模乘模块的状态,对长度地址写入不同的值以完成不同长度的模乘,对数据地址写入的数据则会被认为需要进行模乘的数据。SHA-512模块留了两个地址,数据地址和控制地址,对控制地址写入值以控制SHA-512模块的开启,载入等状态,对数据地址写入数据来传入需要计算的1024位数据。
本发明可以通过中国剩余法来进行算法加速,与模乘一样,模逆操作通过硬件的模逆模块来完成。在2048位RSA情况下,可以将模乘长度降低为1024位。区别仅仅是模幂算法的不同。
Claims (7)
1.一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于采用NiosII软核作为控制中心,控制一次数字签名或验证的进行;采用硬件实现基本密码算数模块,作为计算加速器外挂在avalon总线上,基本密码算数模块包括模乘模块、模加模块、模逆模块以及SHA-512中对1024位原始数据的80轮运算单元。
2.如权利要求1所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于所述SOPC中,底层硬件模块接口设计为avalon总线接口,与NiosII处理器对接,控制信号和数据信号以地址来区分,底层硬件模块中留有控制/状态寄存器,NiosII通过对此寄存器的读写来完成控制,对底层硬件模块中数据寄存器的读写来完成计算数据的交互。
3.如权利要求1所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于所述SOPC中,RSA硬件模块留有可配置的运算长度寄存器,通过avalon的配置,来实现不同长度RSA运算;SHA-512则因为运算的特点,由NiosII截取运算结果的384位而支持SHA-384。
4.如权利要求1所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于模乘模块中,采用目前最为高速的进位保留的蒙哥马利模乘,NiosII中模幂运算采用能抗出错攻击和功耗攻击的阶梯状模幂算法,并为计算过程中的数据加上了掩码。
5.如权利要求1所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于NiosII中根据硬件定义的接口设计硬件抽象函数,由这些函数完成对各个硬件模块的控制信号、数据信号交互。
6.如权利要求1所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于一次完整的数字签名过程为:由以太网接口从片外输入需要签名的数据,NiosII随后将数据补齐为1024的整数倍,并以1024位为单位循环送入SHA-512底层运算单元,最后将得到的结果用RSA签名,签名结果通过以太网口输出。
7.如权利要求6所述的一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于还包括签名验证过程,验证过程运用SHA-512计算待验证文件的哈希值,与RSA公钥计算出的结果对比,若相同则认为签名有效,否则签名无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710776253.1A CN107508666B (zh) | 2017-08-31 | 2017-08-31 | 一种基于rsa和sha-512的低成本数字签名sopc设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710776253.1A CN107508666B (zh) | 2017-08-31 | 2017-08-31 | 一种基于rsa和sha-512的低成本数字签名sopc设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107508666A true CN107508666A (zh) | 2017-12-22 |
CN107508666B CN107508666B (zh) | 2021-01-19 |
Family
ID=60694616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710776253.1A Active CN107508666B (zh) | 2017-08-31 | 2017-08-31 | 一种基于rsa和sha-512的低成本数字签名sopc设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107508666B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229671A (zh) * | 2018-01-16 | 2018-06-29 | 华南理工大学 | 一种降低加速器外部数据存储带宽需求的系统和方法 |
CN110113169A (zh) * | 2019-04-15 | 2019-08-09 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN111385092A (zh) * | 2018-12-28 | 2020-07-07 | 新唐科技股份有限公司 | 使用信息盲化的密码装置及其密码处理方法 |
CN111931176A (zh) * | 2020-09-29 | 2020-11-13 | 网御安全技术(深圳)有限公司 | 防御侧信道攻击的方法、装置及可读存储介质 |
CN114679280A (zh) * | 2022-03-15 | 2022-06-28 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106373A (zh) * | 2011-11-10 | 2013-05-15 | 国民技术股份有限公司 | 一种可信计算芯片及可信计算系统 |
KR101693591B1 (ko) * | 2015-06-15 | 2017-01-17 | 고려대학교 산학협력단 | 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치 |
-
2017
- 2017-08-31 CN CN201710776253.1A patent/CN107508666B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106373A (zh) * | 2011-11-10 | 2013-05-15 | 国民技术股份有限公司 | 一种可信计算芯片及可信计算系统 |
KR101693591B1 (ko) * | 2015-06-15 | 2017-01-17 | 고려대학교 산학협력단 | 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치 |
Non-Patent Citations (3)
Title |
---|
MALIK UMAR SHARIF ET AL.: "Hardware-Software Codesign of RSA for Optimal Performance vs. Flexibility Trade-off", 《2016 26TH INTERNATIONAL CONFERENCE ON FPL》 * |
QIAN LEI ET AL.: "Software Hardware Co-Design for Side-Channel Analysis Platform on Security Chips", 《2015 11TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY》 * |
汪欣: "基于SOPC的可信平台模块设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229671A (zh) * | 2018-01-16 | 2018-06-29 | 华南理工大学 | 一种降低加速器外部数据存储带宽需求的系统和方法 |
CN111385092A (zh) * | 2018-12-28 | 2020-07-07 | 新唐科技股份有限公司 | 使用信息盲化的密码装置及其密码处理方法 |
CN111385092B (zh) * | 2018-12-28 | 2023-09-19 | 新唐科技股份有限公司 | 使用信息盲化的密码装置及其密码处理方法 |
CN110113169A (zh) * | 2019-04-15 | 2019-08-09 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN110113169B (zh) * | 2019-04-15 | 2021-11-12 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN111931176A (zh) * | 2020-09-29 | 2020-11-13 | 网御安全技术(深圳)有限公司 | 防御侧信道攻击的方法、装置及可读存储介质 |
CN111931176B (zh) * | 2020-09-29 | 2021-01-22 | 网御安全技术(深圳)有限公司 | 防御侧信道攻击的方法、装置及可读存储介质 |
CN114679280A (zh) * | 2022-03-15 | 2022-06-28 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107508666B (zh) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107508666A (zh) | 一种基于rsa和sha‑512的低成本数字签名sopc设计方法 | |
EP4000214B1 (en) | Cryptographic architecture for cryptographic permutation | |
US11507662B2 (en) | Systems and methods of security for trusted artificial intelligence hardware processing | |
CN102207847B (zh) | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 | |
CN108632240B (zh) | Fpga代码的保密验证 | |
Zheng et al. | The software/hardware co-design and implementation of SM2/3/4 encryption/decryption and digital signature system | |
WO1999039475A1 (en) | Cryptographic system | |
CA2542556A1 (en) | An authentication system executing an elliptic curve digital signature cryptographic process | |
KR20100021446A (ko) | 물리적 복제 방지 기능을 이용한 전자 장치의 전자 보안 방법 및 시스템 | |
US20130305361A1 (en) | Protection of a prime number generation against side-channel attacks | |
CN108628791A (zh) | 基于pcie接口的高速安全芯片架构和高速的数据处理方法 | |
CN104753684A (zh) | 一种实现数字签名和验签的方法 | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
Kumar et al. | How to Break DES for BC 8,980 | |
US11444760B2 (en) | System, method, and apparatus for obfuscating device operations | |
US7454625B2 (en) | Method and apparatus for protecting a calculation in a cryptographic algorithm | |
Huynh et al. | Security enhancement for IoT systems based on SoC FPGA platforms | |
CN103916243B (zh) | 一种控制器的动态加密方法及加密系统 | |
US7496758B2 (en) | Method and apparatus for protecting an exponentiation calculation by means of the chinese remainder theorem (CRT) | |
JP2009505148A (ja) | 暗号化演算における反転操作を行うための回路配置及び方法 | |
Rawal et al. | Comparative Study of Sha-256 Optimization Techniques | |
CN104376277B (zh) | 运算装置、方法与系统 | |
US20060140399A1 (en) | Pre-calculation mechanism for signature decryption | |
Khalil et al. | Implementation of SHA-2 hash function for a digital signature System-on-Chip in FPGA | |
CN104298897A (zh) | 基于混沌技术的嵌入式版权认证方法及专用处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |