CN107508666B - 一种基于rsa和sha-512的低成本数字签名sopc设计方法 - Google Patents

一种基于rsa和sha-512的低成本数字签名sopc设计方法 Download PDF

Info

Publication number
CN107508666B
CN107508666B CN201710776253.1A CN201710776253A CN107508666B CN 107508666 B CN107508666 B CN 107508666B CN 201710776253 A CN201710776253 A CN 201710776253A CN 107508666 B CN107508666 B CN 107508666B
Authority
CN
China
Prior art keywords
rsa
sha
data
modular
module
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.)
Active
Application number
CN201710776253.1A
Other languages
English (en)
Other versions
CN107508666A (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201710776253.1A priority Critical patent/CN107508666B/zh
Publication of CN107508666A publication Critical patent/CN107508666A/zh
Application granted granted Critical
Publication of CN107508666B publication Critical patent/CN107508666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3215Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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和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 (5)

1.一种基于RSA和SHA-512的低成本数字签名SOPC设计方法,其特征在于,采用NiosII软核作为控制中心,控制一次数字签名或验证的进行;采用硬件实现基本密码算数模块,作为计算加速器外挂在avalon总线上,基本密码算数模块包括模乘模块、模加模块、模逆模块以及SHA-512中对1024位原始数据的80轮运算单元;软件部分包括与片外数据的交互、RSA的模幂运算、SHA-512的数据填充;
一次完整的数字签名过程为:由以太网接口从片外输入需要签名的数据,NiosII随后将数据补齐为1024的整数倍,并以1024位为单位循环送入SHA-512底层运算单元,最后将得到的结果用RSA签名,签名结果通过以太网口输出;
还包括签名验证过程,验证过程运用SHA-512计算待验证文件的哈希值,与RSA公钥计算出的结果对比,若相同则认为签名有效,否则签名无效。
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中根据硬件定义的接口设计硬件抽象函数,由这些函数完成对各个硬件模块的控制信号、数据信号交互。
CN201710776253.1A 2017-08-31 2017-08-31 一种基于rsa和sha-512的低成本数字签名sopc设计方法 Active CN107508666B (zh)

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 CN107508666A (zh) 2017-12-22
CN107508666B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229671B (zh) * 2018-01-16 2022-03-04 华南理工大学 一种降低加速器外部数据存储带宽需求的系统和方法
TWI695292B (zh) * 2018-12-28 2020-06-01 新唐科技股份有限公司 使用訊息盲化的密碼裝置及其密碼處理方法
CN110113169B (zh) * 2019-04-15 2021-11-12 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN111931176B (zh) * 2020-09-29 2021-01-22 网御安全技术(深圳)有限公司 防御侧信道攻击的方法、装置及可读存储介质
CN114679280A (zh) * 2022-03-15 2022-06-28 北京宏思电子技术有限责任公司 一种基于rsa的联合签名生成方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106373B (zh) * 2011-11-10 2016-11-09 国民技术股份有限公司 一种可信计算芯片及可信计算系统
KR101693591B1 (ko) * 2015-06-15 2017-01-17 고려대학교 산학협력단 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치

Also Published As

Publication number Publication date
CN107508666A (zh) 2017-12-22

Similar Documents

Publication Publication Date Title
CN107508666B (zh) 一种基于rsa和sha-512的低成本数字签名sopc设计方法
EP3577642B1 (en) Methods and devices for protecting data
US20160149696A1 (en) Transparent Serial Encryption
EP3371928B1 (en) Key sequence generation for cryptographic operations
Abidi et al. Implementation of elliptic curve digital signature algorithm (ECDSA)
CA2542556A1 (en) An authentication system executing an elliptic curve digital signature cryptographic process
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
JP5863994B2 (ja) 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
US10686587B2 (en) Method for safeguarding the information security of data transmitted via a data bus and data bus system
JP6818949B2 (ja) 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
Sravani et al. On efficiency enhancement of SHA-3 for FPGA-based multimodal biometric authentication
CN107835071B (zh) 一种提高键入-散列法运算速度的方法和装置
US20180343119A1 (en) System, method, and apparatus for obfuscating device operations
JP2004054128A (ja) 暗号化装置
CN106533653A (zh) 加密芯片、加密方法及加密系统
Rashidi et al. FPGA based a new low power and self-timed AES 128-bit encryption algorithm for encryption audio signal
CN101465726B (zh) 用于秘钥的反破解方法及执行此方法的控制器与储存装置
Khalil et al. Implementation of SHA-2 hash function for a digital signature System-on-Chip in FPGA
CN110493003B (zh) 一种基于四基二进制底层模运算的快速加密系统
Jungk et al. On FPGA-based implementations of Gr\{o} stl
CN113962174A (zh) 一种基于物联网信息安全芯片的软硬件兼容方法
CN113407953A (zh) 一种产权保护方法及系统
Umamaheswari et al. Secure Data Transmission using Hybrid Crypto Processor based on AES and HMAC Algorithms
Michail et al. Novel high throughput implementation of SHA-256 hash function through pre-computation technique
Wang et al. Unified data authenticated encryption for vehicular communication

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