一种基于RSA和SHA‑512的低成本数字签名SOPC设计方法技术

技术编号:16878373 阅读:439 留言:0更新日期:2017-12-23 15:10
本发明专利技术提出了一种基于RSA和SHA‑512的低成本数字签名SOPC设计方法,其中片内MCU使用ALTERA的软核NiosII,按照运算的特点对RSA和SHA‑512进行软硬件划分;软件部分包括与片外数据的交互、RSA的模幂运算、SHA‑512的数据填充;硬件部分完成RSA的模乘运算、模加运算、模逆运算,以及SHA‑512中以80轮为一个子单元的运算。利用了硬件计算的并行性,获得高速计算效果;利用软件灵活性,可以保证系统的抗攻击能力,并且可支持不同的RSA长度、不同的HASH函数等计算方式。功能上,本发明专利技术能用于数字签名,身份认证等场合。

A low cost digital signature SOPC design method of RSA and SHA 512 based on

The invention provides a low cost digital signature SOPC design method of RSA and SHA 512 based on the chip MCU ALTERA NiosII core, according to the operation characteristics of RSA and SHA 512 division of hardware and software; the software part and the external data interface, RSA modular exponentiation, SHA 512 of the data filling; the hardware part, RSA modular multiplication, modular addition, modular inversion, and the operation of SHA 512 to 80 round is a sub unit. The parallelism of hardware computation is used to achieve high speed computing effect. The flexibility of software can ensure the system's anti attack ability, and it can support different RSA length and different HASH functions. In function, the invention can be used in digital signature, identity authentication and other occasions.

【技术实现步骤摘要】
一种基于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位的整数倍,然后以同样的方式计算得到本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/201710776253.html" title="一种基于RSA和SHA‑512的低成本数字签名SOPC设计方法原文来自X技术">基于RSA和SHA‑512的低成本数字签名SOPC设计方法</a>

【技术保护点】
一种基于RSA和SHA‑512的低成本数字签名SOPC设计方法,其特征在于采用NiosII软核作为控制中心,控制一次数字签名或验证的进行;采用硬件实现基本密码算数模块,作为计算加速器外挂在avalon总线上,基本密码算数模块包括模乘模块、模加模块、模逆模块以及SHA‑512中对1024位原始数据的80轮运算单元。

【技术特征摘要】
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所...

【专利技术属性】
技术研发人员:吴朝晖李泽祥李斌
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1