CN101304312A - 一种适用于精简指令集处理器的加密单元 - Google Patents

一种适用于精简指令集处理器的加密单元 Download PDF

Info

Publication number
CN101304312A
CN101304312A CNA200810039608XA CN200810039608A CN101304312A CN 101304312 A CN101304312 A CN 101304312A CN A200810039608X A CNA200810039608X A CN A200810039608XA CN 200810039608 A CN200810039608 A CN 200810039608A CN 101304312 A CN101304312 A CN 101304312A
Authority
CN
China
Prior art keywords
carry
output
input
save adder
unit
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
Application number
CNA200810039608XA
Other languages
English (en)
Other versions
CN101304312B (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN200810039608XA priority Critical patent/CN101304312B/zh
Publication of CN101304312A publication Critical patent/CN101304312A/zh
Application granted granted Critical
Publication of CN101304312B publication Critical patent/CN101304312B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明属于集成电路设计技术领域,具体为一种适用于RISC处理器的加密单元,包括RSA加密单元、SHA加密单元和RSA/SHA复用加密单元。这些加密功能单元,可集成于RISC处理器中,加速公钥算法和散列函数的计算,同时显著地降低硬件成本。尤其是RSA/SHA复用加密单元以硬件来完成复杂的密码学运算,而由软件来完成和配置上层的RSA算法,实现了数据宽度的可伸缩。RSA/SHA复用加密单元负责处理最复杂的密码算法计算,大大地加速了密码算法执行效率,但是不会影响RISC处理器的流水线结构,不会增加硬件复杂度,对RISC架构有着良好的兼容性,在信息安全领域具有较好的应用前景。

Description

一种适用于精简指令集处理器的加密单元
技术领域
本发明属于集成电路设计领域,具体提出一种适用于精简指令集处理器(RISC处理器)加密单元电路。
背景技术
在计算机系统和通信网络中,密码算法被广泛应用于敏感信息的保护。随着无线网络通信技术的飞速发展,密码学运算处理能力成为许多无线设备工作负担的重要组成部分。然而,对于高密度高强度的密码学运算而言,相对有限的处理能力成为了手持设备性能提高的瓶颈。专用集成电路(ASIC)的解决方案可以达到功能和性能上的要求,但是缺乏灵活性、可配置性以及在设备使用周期中的可拓展性。而通用处理器,具有较好的灵活性,但是在性能、功耗、成本等方面不具优势。一种理想的解决方案是以高效处理密码学运算的专用功能单元来拓展传统的处理器架构。事实上,集成了专用加密功能单元的可编程安全领域专用处理器对于处理涉及到多种密码算法和高强度密码学运算的安全应用十分有效。
公钥算法和散列函数是密码算法中的两类,在几乎所有的安全协议中起到了不可替代的作用。公钥密码算法可提供鉴别服务,散列函数提供了数据完整性的保障,数字签名的产生和验证则需要公钥算法和散列函数的组合使用。因而,同时需要公钥算法和散列函数的应用场合见诸于众多的安全协议。
为适应激烈的市场竞争,低成本和对新算法的灵活适应能力是对安全处理器产品的重要要求。公钥算法(如RSA)和散列函数(如SHA-1)是密码算法中的两大分支,在传统的设计方法中,这两种算法是分别实现的,例如使用多个协处理器,这势必带来了成本的提高。为此,如何找到一种复用结构,可同时加密RSA和SHA-1两种算法,在加速公钥算法和散列函数的计算的同时,又尽可能使其硬件实现减小额外的硬件开销,减小硬件实现的吞吐率的负担,就成为了一个急待解决的问题。
发明内容
本发明的目的是提出一种适用于RISC处理器加密单元,能集成于RISC处理器中,加速公钥算法和散列函数的计算,同时显著地降低硬件成本。
本发明提出的适用于RISC处理器的RSA/SHA复用加密单元执行密钥长度为1024位的RSA算法的时间为190ms,执行SHA-1算法的吞吐率达到64MHz。如采用中芯国际(SMIC)0.18μm标准CMOS工艺进行逻辑综合,最高时钟频率可达到196MHz,核心电路等效门为2.6K。
在RSA算法中,加密和解密都是通过对大整数的模幂来进行,其中模幂可用一系列的模乘来实现。安全强度的要求使RSA的数据宽度达到了512-4096位。单纯地应用硬件来实现这种超长位宽的模乘运算势必带来较高的成本和较长的关键路径。1985年,Montgomery提出了一种模乘算法,不通过循环的除法即可实现模乘运算。在蒙哥马利模乘算法中,所有的中间结果都以右移和模加运算产生,非常适用于超大规模集成电路(VLSI)实现。可以应用字串行结构来实现蒙哥马利模乘,字串行模乘能够将n位的模乘分解为字级运算。应用了字串行架构的可伸缩的蒙哥马利模乘算法如下:
字串行架构的可伸缩的蒙哥马利模乘算法
输入:A∈[1,P-1],B∈[1,P-1],P
输出:((A×B)×2-n)mod P,n是P的比特数
{for(i=0;i<=n/w-1;i=i+1)
S_tmp=0;
for(j=0;j<=n/w-1;j=j+1)
{Bj+Pj=BPj
   S_tmp=W_Monpro(Ai,Bj,Pj,BPj,S_tmp,Qs,j);
   if(j>0)reg_S[jw+w-1:jw]=S_tmp[w-1:0];
   if(j≠n/w-1)
       S_tmp[w-1:0]=reg_S[jw+2w-1:jw+w];
   else
       S_tmp[w-1:0]=0;
   S_tmp[2w-1:w]=S_tmp[2w-1:w]+S_tmp[w-1:0];
    if(j=n/w-1)reg_S[jw+w-1:jw]=S_tmp[2w-1:w];
}
if(reg_S>P)reg_S=reg_S-P;
return reg_S;
  }
其字级算法如下:
字级蒙哥马利模乘算法
输入:Ai[w-1:0],Bj[w-1:0],Pj[w-1:0],BPj[w-1:0],
Qs[w-1:0],j
输出:S_tmp是中间结果
{for(k=0;k<=w-1;k=k+1)
{if(j=0)
Q [ k ] = S _ tmp [ w ] ⊕ Cj [ 0 ] ;
else
Q[k]=Qs[k];
case({Ai[k],Q[k],Bj[0]}):
000:X=0;  001:X=0; 010:X=Pj
011:X=Pj; 100:X=Bj;101:X=BPj
110:X=BPj;111:X=Bj
Y=Sj;Z=Cj
(Cj,Sj)=X+Y+Z;
Sj>>1;
}
return S_tmp;
}
在这种算法中,P={Pe-1,Pe-2,...,P1,P0}是n位的模数,表示为字级形式。A={Am-1,Am-2,...,A0}和B={Bm-1,Bm-2,...,B0}是两个大整数,满足0≤A,B<P的条件。在A,B,P和BP中,Ni表示其第i个字。(Ci,Si)表示中间结果的进位保存冗余形式。S>>1表示S的位右移。该算法用移位代替除法,提高模乘的效率。
字级蒙哥马利模乘由循环迭代的模加和右移组成,而模加的加数从P,B,BP和0中选择,选择的条件通过扫描状态字Ai[k],Q[k]和Bj[0]决定。
为此,本发明提出的用于RSA算法的模块如图1所示。
该模块由第一进位保存加法器1,第二进位保存加法器2,两个32位寄存器3、4,第一、第二、第三、第四多路选择器5、6、10、11,第一移位器7,第二移位器8和进位传递加法器9经电路连接组成,其中:
第一进位保存加法器1,输入S_high为上一轮加法结果的高32位本位,C_high为上一轮加法结果的高32位进位,Xi_high根据扫描状态字Ai[k],Q[k]和Bj[0]的结果为P,B,BP和0其中之一的高32位,输出为本轮加法高32位的本位和进位;
第二进位保存加法器2,输入S_low为上一轮加法结果的低32位本位,C_low为上一轮加法结果的低32位进位,Xi_low根据扫描状态字Ai[k],Q[k]和Bj[0]的结果为P,B,BP和0其中之一的低32位,输出为本轮加法低32位的本位和进位;
两个32位寄存器3、4,其输入分别为第一进位保存加法器1和第二进位保存加法器2的加法进位输出,其输出分别送到第一进位保存加法器1和第二进位保存加法器2的加法进位输入,作为循环模加的输入;
第一多路选择器5(多路选择器简称多选器,下同),其输入来自外部输入Xi_high和第二进位保存加法器2的本位输出,其输出为进位传递加法器9的一个输入端;
第二多路选择器6,其输入来自32位寄存器3和第二进位保存加法器2的进位输出,其输出为进位传递加法器9的一个输入端;
第一移位器7和第二移位器8的输入分别来自第一进位保存加法器1和第二进位保存加法器2的本位输出,完成单比特的逻辑右移,其输出分别送至第三多选器10和第四多选器11;
进位传递加法9的输入来自第一多选器5和第二多选器6,其输出送第三多选器10和第四多选器11,它将第一和第二进位保存加法器1、2产生的进位冗余形式转化为非冗余形式,仅在完成了64轮循环迭代加法后使用;
第三多路选择器10的输入来自第一移位器7、第一进位保存加法器1的本位输出及进位传递加法器9的输出,其输出送模块外;
第四多路选择器11的输入来自第二移位器8、外部输入Xi_low和进位传递加法器9的输出,其输出送模块外。
本发明将冗长的复杂运算打断为字级形式。以硬件来完成复杂的密码学运算,而由软件来完成和配置上层的RSA算法。因此,本方案可实现数据宽度的可伸缩,不同的数据宽度使用相同的硬件,模乘长度仅由软件配置。
SHA-1作为最常用的散列算法之一,由美国国家标准和技术协会(NIST)于1995年发布。SHA-1算法的输入报文最大长度不超过264位,产生的输出是一个160位的报文摘要。SHA-1算法中每次处理512位已附加填充比特的数据块。算法的核心部分包含四个循环,每个循环由20个步骤组成。每一循环的逻辑的表示形式为:
Et=Dt-1                                                            式1
Dt=Ct-1                                                            式2
Ct=S(30)(Bt-1)                                                     式3
Dt=At-1                                                            式4
At=S(5)(At-1)+ft(Bt-1,Ct-1,Dt-1)+Et-1+Wt+Kt                      式5
其中
A,B,C,D,E为缓存中的5个字;
t为步骤数,0≤t≤79;
f(t,B,C,D)为步骤t的原始逻辑函数;
Sk为32bit参数循环左移(旋转)k位;
Wt为由当前512bit输入分组导出的一个32bit字;
Kt为一个额外的常数,使用四个不同的值;
“+”为模232加法。
在这种方案中,处理一个512bit的数据块需要进行80轮的哈希运算,每轮只能进行一次哈希运算使这种方案的吞吐率较小。可以用一种改进的SHA-1压缩算法来提高其吞吐率,80次的哈希运算只需要40轮即可完成。这种算法的数学表达式为:
Et=Ct-2                                                        式6
Dt=S(30)(Bt-2)                                                 式7
Ct=S(30)(At-2)                                                 式8
Bt=S(5)(At-2)+ft-1(Bt-2,Ct-2,Dt-2)+Et-2+Wt-1+Kt-1            式9
At=S(5)(Bt)+ft(At-2,S(30)(Bt-2),Ct-2)+Dt-2+Wt+Kt             式10
因此,本发明提出了适用于该算法的5个32比特输入1个32比特输出的5-to-1压缩器模块,其结构如图2所示。
该模块由第一进位保存加法器1,第二进位保存加法器2,第三进位保存加法器14,第三移位器12,第四移位器13和进位传递加法器9经电路连接组成,其中:
第二进位保存加法器2,其输入来自第t-2轮的D或E,第t-1轮的W和第t-1轮的K,其本位输出送第一进位保存加法器1,其进位输出送第四移位器13。
第一进位保存加法器1,其输入来自循环左移函数S(5)和原始逻辑函数f,其本位输出送第三进位保存加法器14,其进位输出送第三移位器12。
第三移位器12和第四移位器13的输入分别来自第一进位保存加法器1和第二进位保存加法器2的进位输出,输入送第三进位保存加法器14的两个输入端,这两个移位器完成单比特逻辑左移的功能;
第三进位保存加法器14的输入来自第一进位保存加法器1的本位输出及第三移位器12、第四移位器13,其输出送进位传递加法器9的两个输入端;
进位传递加法器9的输入来自第三进位保存加法器14的输出,其输入送该模块外部,它的作用是将进位保存加法器产生的进位保存冗余形式恢复成非冗余形式。
上文中RSA算法和SHA-1算法的关键运算模块都包含了进位保存加法器和进位传递加法器这样成本较高的硬件单元。如果复用这样的硬件单元,可以进一步降低硬件成本。
为此,本发明提出了一种适用于RISC处理器的RSA/SHA复用加密单元,其结构如图3所示。
该复用加密单元由第一进位保存加法器1,第二进位保存加法器2,第三进位保存加法器14,进位传递加法器9,两个32位寄存器3、4,第一、第二、第三、第四、第五、第六多路选择器5、6、10、11、15、16,第一、第二、第三、第四、第五移位器7、8、12、13、17,一个1位寄存器18经电路连接组成,其中:
第一进位保存加法器1,为RSA和SHA模式所共用,其输入来自2个外部输入和第五多选器15,其本位输出送第一移位器7,其进位输出送32位寄存器3和第三移位器12;
第二进位保存加法器2,为RSA和SHA模式所共用,其输入来自2个外部输入和第六多选器16,其本位输出送第二移位器8和第五多选器15,其进位输出送32位寄存器4和第四移位器13;
第五多路选择器15,根据复用加密单元处于RSA或SHA模式而选择不同的输出,其输入来自32位寄存器3和第二进位保存加法器2的本位输出,其输出送第一进位保存加法器1;
第六多路选择器16,根据复用加密单元处于RSA或SHA模式而选择不同的输出,其输入来自32位寄存器4和外部输入,其输出送第二进位保存加法器2;
32位寄存器3,仅在RSA模式下应用,将进位保存加法器的进位输出暂存,作为循环迭代加法的输入,其输入来自第一进位保存加法器1的进位输出,其输出送第五多选器15和第二多选器6;
32位寄存器4,仅在RSA模式下应用,将进位保存加法器的进位输出暂存,作为循环迭代加法的输入,其输入来自第二进位保存加法器2的进位输出,其输出送第六多选器16;
第三移位器12,仅在SHA模式下应用,其输入来自第一进位保存加法器1的进位输出,其输出送第三进位保存加法器14,完成单比特逻辑左移的功能;
第四移位器13,为RSA和SHA模式所共用,其输入来自第二进位保存加法器2的进位输出,其输出送第三进位保存加法器14和第二多选器6,完成单比特逻辑左移的功能;
第三进位保存加法器14,仅在SHA模式下应用,其输入来自第三、第四移位器12、13和第一进位保存加法器1的本位输出,其本位输出送第一多选器5,其进位输出送第五移位器17;
第一、第二移位器7、8,仅在RSA模式下应用,其输入分别来自第一、第二进位保存加法器1、2的本位输出,其输出分别送第三、第四多选器10、11,它们完成单比特逻辑右移的功能;
第五移位器17,仅在SHA模式下应用,其输入来自第三进位保存加法器14的进位输出,其输出送第二多选器6,完成单比特逻辑左移的功能;
第一多路选择器5,其三个输入分别来自外部输入、第二进位保存加法器2的本位输出和第三进位保存加法器14的本位输出,其输出送进位传递加法器9;
第二多路选择器6,其三个输入分别来自第五移位器17、第四移位器13和32位寄存器3,其输出送进位传递加法器9;
进位传递加法器9,为RSA和SHA模式所共用,其输入来自第一、第二多选器5、6和1位寄存器18,其加法结果输出送第四多选器11,其进位输出送1位寄存器18,它的作用是将进位保存加法器产生的进位保存冗余形式恢复成非冗余形式;
1位寄存器18,仅在RSA模式下应用,其输入来自进位传递加法器9的进位输出,其输出送进位传递加法器9的进位输入;
第三多路选择器10,其三个输入分别来自第一进位保存加法器1的本位输出、第一移位器7和进位传递加法器9,其输出送模块外部;
第四多路选择器11,其三个输入分别来自进位传递加法器9、第二移位器8和外部输入,其输出送模块外部。
本发明提出的RSA/SHA复用加密单元根据RISC处理器流水线中译码单元产生的控制信号,可以配置成为图1和图2中的两种功能模块,用于RSA和SHA-1算法的实现。RSA和SHA-1两种模式复用大部分的硬件资源,大大降低了硬件成本。在RSA和SHA模式中,进位传递加法器都是不可或缺的组成部分,因为必须用进位传递加法器来将模加运算中产生的进位保存冗余形式恢复成非冗余的形式。只使用单个32位进位传递加法器是因为如果使用64位的CLA会产生较长的关键路径并占用大量硬件资源。因此,在字级蒙哥马利模乘运算中,每经过64次的模加和移位,都需要使用两个时钟周期来产生最终结果。加法运算占据了RSA和SHA-1算法延时的大部分,于是本方案采用进位保存加法器来缩短关键路径,32位进位保存加法器的延时仅与一个全加器的延时相同。通过适当的配置功能单元中的进位保存加法器和进位传递加法器模块,本设计可完成RSA和SHA-1的复杂密码学运算。
公钥算法和散列函数在数字签名等安全应用中至关重要,但是在过去的研究中,它们被归为两种迥异的密码算法体系,并在硬件中分别实现。相反,本发明提出的RSA/SHA复用加密单元可实现这两种算法中的核心操作,该复用加密单元可以轻易地集成入处理器中来加速多种密码算法。与传统方法相比,本发明同时具备了低成本和配置灵活的优点。
将RSA/SHA复用加密单元集成入RISC式的处理器的过程较为便捷,因为它可以如普通的算术逻辑单元或桶形移位器一样并列地放在处理器的执行级。将本发明集成在RISC处理器的方法如图4所示,其中:
指令存储器19,存放用于执行密码算法的指令,其输入来自地址产生单元20,其输出送级间锁存21。
地址产生单元20,用于产生取指令需要的指令存储器地址,其输入来自译码单元25,其输出送指令存储器19。
级间锁存21,用于将处理器的数据通路分割为取指级和译码级,产生处理器流水线,其输入来自指令存储器19,其输出送寄存器堆23和译码单元25。
级间锁存22,用于将处理器的数据通路分割为译码级和执行级,产生处理器流水线,其输入来自前推控制单元24、寄存器堆23、译码单元25和RSA/SHA复用加密单元27,其输出送算术逻辑单元26和RSA/SHA复用加密单元27。
寄存器堆23,其输入来自级间锁存21和数据总线,其输出送前推控制单元24和级间锁存22。
前推控制单元24,用于解决处理器的一部分数据相关问题,其输入来自寄存器堆23和数据总线,其输出送级间锁存22。
译码单元25,能够将指令译码为处理器的控制信号,其输入来自级间锁存21、22,其输出送地址产生单元20和级间锁存22。
算术逻辑单元26,其输入来自级间锁存22,其输出送数据总线。
RSA/SHA复用加密单元27,其输入来自级间锁存22,其输出送级间锁存22和数据总线,是完成RSA和SHA-1算法的主要运算部件。
数据存储器28的输入来自算术逻辑单元26,其输出送数据总线,数据存储器主要用于存储密码算法所需的明文、密文、参数、中间结果等数据。
附图说明
图1RSA算法核心模块结构图。
图2SHA-1算法核心模块结构图。
图3RSA/SHA复用加密单元结构图。
图4RSA/SHA复用加密单元在RISC处理器中集成方法示意图。
图中标号:
1、2为第一、第二进位保存加法器,3、4为两个32位寄存器,5、6为第一、第二多路选择器,7、8为第一、第二移位器,9为进位传递加法器,10、11为第三、第四多路选择器,12、13为第三、第四移位器,14为第三进位保存加法器,15、16为第五、第六多选器,17为第五移位器,18为一位寄存器,19为指令存储器,20为地址产生单元,21、22为级间锁存,23为寄存器堆,24为前推控制单元,25为译码单元,26为算术逻辑单元,27为RSA/SHA复用加密单元,28为数据存储器。
具体实施方式
本发明提出的适用于RISC处理器的RSA/SHA复用加密单元由3个进位保存加法器,一个进位传递加法器,6个多路选择器,2个32位寄存器,一个1位寄存器,5个移位器组成。下面结合附图进一步描述本发明。
本发明具有两种工作模式,RSA模式和SHA-1模式。模式的选择由指令决定。如图4所示,根据地址产生单元20生成的地址访问指令存储器19,指令从指令存储器19中取出后送级间锁存21,该指令由译码单元25进行译码,判断属于何种指令,并产生模式选择信号,经级间锁存22缓存一个周期后,送入RSA/SHA复用加密单元27。
当本发明的RSA/SHA复用加密单元工作于RSA模式时,第五、第六多路选择器15、16将选择将来自2个32位寄存器3、4中的值输出,第一、第二进位保存加法器1、2的输入为来自模块外部输入的Xi、S和来自第五、第六多路选择器15、16的进位值C。其中,Xi的值从P,B,BP和0中选择,选择的条件通过扫描状态字Ai[k],Q[k]和Bj[0]决定。C的值来自两个32位寄存器3、4,这两个寄存器负责暂存第一、第二进位保存加法器1、2产生的进位输出,并直接送回第一、第二进位保存加法器1、2的输入,作为循环迭加的加数之一,这两个暂存寄存器的设立避免了中间结果送回寄存器堆的复杂过程,大大提高了字级蒙哥马利算法的执行效率。如果规定单字为64位,则本发明的RSA/SHA复用加密单元共需要66个时钟周期完成一次字级的蒙哥马利模乘。前64个时钟周期为循环迭代的加法,第一、第二进位保存加法器1、2的本位输出直接送第一、第二移位器7、8,完成单比特的逻辑右移操作,结果送第三、第四多路选择器10、11。由于RSA/SHA复用加密单元正工作于RSA模式下,并处于前64个时钟周期的循环迭加中,第三、第四多路选择器10、11选择将来自第一、第二移位器7、8的值送出,作为模块输出。当64轮的循环迭加完成后,本发明的RSA/SHA复用加密单元需要额外的两个时钟周期来将进位保存加法器产生的进位冗余形式恢复出来,这一过程主要由进位传递加法器9来完成,具体过程为:在第65个周期时,将第64个周期第二进位保存加法器2产生的本位输出送第一多路选择器5,并由其选择输出至进位传递加法器9,而第二进位保存加法器2产生的进位输出送第四移位器13,逻辑左移一位后,结果送第二多路选择器6,并由其选择输出至进位传递加法器9,进位传递加法器9的计算结果经第四多路选择器11选择输出作为模块的输出,进位传递加法器9的单比特进位保存于1位寄存器18中,作为下一周期的输入,第三多路选择器10将来自第一进位保存加法器1的本位输出选择输出。在第66个周期时,第一多路选择器5选择将来自外部输入OP1的值输出至进位传递加法器9的输入,而保存在32位寄存器3中的进位由第二多路选择器6选择输出至进位传递加法器9,进位传递加法器9的进位输入来自1位寄存器18。进位传递加法器9的计算结果送第三多路选择器10,并由其选择输出作为模块的输出,第四多路选择器11将来自模块外部输入的OP3选择输出作为模块的另一个输出。第65,66个周期产生的输出均将保存于处理器的寄存器堆中,作为字级蒙哥马利模乘的结果。本发明的RSA/SHA复用加密单元完成RSA中最为复杂的密码学运算任务,而由软件来完成和配置上层的RSA算法。因此,应用本发明可实现数据宽度的可伸缩,不同的数据宽度使用相同的硬件,模乘长度仅由软件配置。
当本发明的RSA/SHA复用加密单元工作于SHA-1模式时,第二进位保存加法器2的三个输入来自模块外部输入OP3,OP4,OP5,其中OP5是经第六多路选择器16选择输出的。第二进位保存加法器2的本位输出送第五多路选择器15,并由其选择输出送至第一进位保存加法器1的一个输入,第一进位保存加法器1的另外两个输入来自模块外部输入OP1和OP2。第一进位保存加法器1的本位输出直接送至第三进位保存加法器14的一个输入,第一进位保存加法器1的进位输出经第三移位器12后送至第三进位保存加法器14的一个输入,第三移位器12的作用是逻辑左移一位,第二进位保存加法器2的进位输出也需要经第四移位器13完成逻辑左移一位后送第三进位保存加法器14的一个输入。第三进位保存加法器14的本位输出经第一多路选择器5选择输出送进位传递加法器9,第三进位保存加法器14的进位输出需要经过第五移位器17进行逻辑左移一位后,送第二多路选择器6,并由其选择输出送进位传递加法器9,SHA-1模式下,不需要考虑上一周期的进位结果,因此一位寄存器18的输出始终保持为0。进位传递加法器9的结果即为SHA-1模式下的最终结果,经第四多路选择器11选择送出作为模块的输出。本发明的RSA/SHA复用加密单元在SHA-1模式下,实现了5个32位输入,1个32位输出的5-to-1压缩器的功能,适用于SHA-1压缩算法的实现,这种算法使两次的哈希运算在单轮完成,使得所需轮数减半,大大提高了吞吐率,同时也可以相应地降低功耗。

Claims (3)

1、一种适用于RISC处理器的RSA加密单元,其特征在于该加密单元由第一进位保存加法器(1),第二进位保存加法器(2),两个32位寄存器(3、4),第一、第二、第三、第四多路选择器(5、6、10、11),第一移位器(7),第二移位器(8)和进位传递加法器(9)经电路连接组成,其中:
第一进位保存加法器(1),输入S_high为上一轮加法结果的高32位本位,C_high为上一轮加法结果的高32位进位,Xi_high根据扫描状态字Ai[k],Q[k]和Bj[0]的结果为P,B,BP和0其中之一的高32位,输出为本轮加法高32位的本位和进位;
第二进位保存加法器(2),输入S_low为上一轮加法结果的低32位本位,C_low为上一轮加法结果的低32位进位,Xi_low根据扫描状态字Ai[k],Q[k]和Bj[0]的结果为P,B,BP和0其中之一的低32位,输出为本轮加法低32位的本位和进位;
两个32位寄存器(3、4),其输入分别为第一进位保存加法器(1)和第二进位保存加法器(2)的加法进位输出,其输出分别送到第一进位保存加法器(1)和第二进位保存加法器(2)的加法进位输入,作为循环模加的输入;
第一多路选择器(5),其输入来自外部输入Xi_high和第二进位保存加法器(2)的本位输出,其输出为进位传递加法器(9)的一个输入端;
第二多路选择器(6),其输入来自32位寄存器(3)和第二进位保存加法器(2)的进位输出,其输出为进位传递加法器(9)的一个输入端;
第一移位器(7)和第二移位器(8)的输入分别来自第一进位保存加法器(1)和第二进位保存加法器(2)的本位输出,完成单比特的逻辑右移,其输出分别送至第三多选器(10)和第四多选器(11);
进位传递加法(9)的输入来自第一多选器(5)和第二多选器(6),其输出送第三多选器(10)和第四多选器(11),它将第一和第二进位保存加法器(1、2)产生的进位冗余形式转化为非冗余形式,仅在完成了64轮循环迭代加法后使用;
第三多路选择器(10)的输入来自第一移位器(7)、第一进位保存加法器(1)的本位输出及进位传递加法器(9)的输出,其输出送模块外;
第四多路选择器(11)的输入来自第二移位器(8)、外部输入Xi_low和进位传递加法器(9)的输出,其输出送模块外。
2、一种适用于RISC处理器的SHA加密单元,其特征在于该加密单元由第一进位保存加法器(1),第二进位保存加法器(2),第三进位保存加法器(14),第三移位器(12),第四移位器(13)和进位传递加法器(9)经电路连接组成,其中:
第二进位保存加法器(2),其输入来自第t-2轮的D或E,第t-1轮的W和第t-1轮的K,其本位输出送第一进位保存加法器(1),其进位输出送第四移位器(13);
第一进位保存加法器(1),其输入来自循环左移函数S(5)和原始逻辑函数f,其本位输出送第三进位保存加法器(14),其进位输出送第三移位器(12);
第三移位器(12)和第四移位器(13)的输入分别来自第一进位保存加法器(1)和第二进位保存加法器(2)的进位输出,输入送第三进位保存加法器(14)的两个输入端,这两个移位器完成单比特逻辑左移的功能;
第三进位保存加法器(14)的输入来自第一进位保存加法器(1)的本位输出及第三移位器(12)、第四移位器(13),其输出送进位传递加法器(9)的两个输入端;
进位传递加法器(9)的输入来自第三进位保存加法器(14)的输出,其输入送该模块外部,它的作用是将进位保存加法器产生的进位保存冗余形式恢复成非冗余形式。
3、一种适用于RISC处理器的RSA/SHA复用加密单元,其特征在于该复用加密单元由第一进位保存加法器(1),第二进位保存加法器(2),第三进位保存加法器(14),进位传递加法器(9),两个32位寄存器(3、4),第一、第二、第三、第四、第五、第六多路选择器(5、6、10、11、15、16),第一、第二、第三、第四、第五移位器(7、8、12、13、17),一个1位寄存器(18)经电路连接组成,其中:
第一进位保存加法器(1),为RSA和SHA模式所共用,其输入来自2个外部输入和第五多选器(15),其本位输出送第一移位器(7),其进位输出送32位寄存器(3)和第三移位器(12);
第二进位保存加法器(2),为RSA和SHA模式所共用,其输入来自2个外部输入和第六多选器(16),其本位输出送第二移位器(8)和第五多选器(15),其进位输出送32位寄存器(4)和第四移位器(13);
第五多路选择器(15),根据复用加密单元处于RSA或SHA模式而选择不同的输出,其输入来自32位寄存器(3)和第二进位保存加法器(2)的本位输出,其输出送第一进位保存加法器(1);
第六多路选择器(16),根据复用加密单元处于RSA或SHA模式而选择不同的输出,其输入来自32位寄存器(4)和外部输入,其输出送第二进位保存加法器(2);
32位寄存器(3),仅在RSA模式下应用,将进位保存加法器的进位输出暂存,作为循环迭代加法的输入,其输入来自第一进位保存加法器(1)的进位输出,其输出送第五多选器(15)和第二多选器(6);
32位寄存器(4),仅在RSA模式下应用,将进位保存加法器的进位输出暂存,作为循环迭代加法的输入,其输入来自第二进位保存加法器(2)的进位输出,其输出送第六多选器(16);
第三移位器(12),仅在SHA模式下应用,其输入来自第一进位保存加法器(1)的进位输出,其输出送第三进位保存加法器(14),完成单比特逻辑左移的功能;
第四移位器(13),为RSA和SHA模式所共用,其输入来自第二进位保存加法器(2)的进位输出,其输出送第三进位保存加法器(14)和第二多选器(6),完成单比特逻辑左移的功能;
第三进位保存加法器(14),仅在SHA模式下应用,其输入来自第三、第四移位器(12)、(13)和第一进位保存加法器(1)的本位输出,其本位输出送第一多选器(5),其进位输出送第五移位器(17);
第一、第二移位器(7、8),仅在RSA模式下应用,其输入分别来自第一、第二进位保存加法器(1、2)的本位输出,其输出分别送第三、第四多选器(10、11),它们完成单比特逻辑右移的功能;
第五移位器(17),仅在SHA模式下应用,其输入来自第三进位保存加法器(14)的进位输出,其输出送第二多选器(6),完成单比特逻辑左移的功能;
第一多路选择器(5),其三个输入分别来自外部输入、第二进位保存加法器(2)的本位输出和第三进位保存加法器(14)的本位输出,其输出送进位传递加法器(9);
第二多路选择器(6),其三个输入分别来自第五移位器(17)、第四移位器(13)和32位寄存器(3),其输出送进位传递加法器(9);
进位传递加法器(9),为RSA和SHA模式所共用,其输入来自第一、第二多选器(5、6)和1位寄存器(18),其加法结果输出送第四多选器(11),其进位输出送1位寄存器(18),它的作用是将进位保存加法器产生的进位保存冗余形式恢复成非冗余形式;
1位寄存器(18),仅在RSA模式下应用,其输入来自进位传递加法器(9)的进位输出,其输出送进位传递加法器(9)的进位输入;
第三多路选择器(10),其三个输入分别来自第一进位保存加法器(1)的本位输出、第一移位器(7)和进位传递加法器(9),其输出送模块外部;
第四多路选择器(11),其三个输入分别来自进位传递加法器(9)、第二移位器(8)和外部输入,其输出送模块外部。
CN200810039608XA 2008-06-26 2008-06-26 一种适用于精简指令集处理器的加密单元 Expired - Fee Related CN101304312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810039608XA CN101304312B (zh) 2008-06-26 2008-06-26 一种适用于精简指令集处理器的加密单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810039608XA CN101304312B (zh) 2008-06-26 2008-06-26 一种适用于精简指令集处理器的加密单元

Publications (2)

Publication Number Publication Date
CN101304312A true CN101304312A (zh) 2008-11-12
CN101304312B CN101304312B (zh) 2011-07-20

Family

ID=40114042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810039608XA Expired - Fee Related CN101304312B (zh) 2008-06-26 2008-06-26 一种适用于精简指令集处理器的加密单元

Country Status (1)

Country Link
CN (1) CN101304312B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833435A (zh) * 2010-04-19 2010-09-15 天津大学 基于传输触发架构可配置处理器指令冗余消除方法
CN104579630A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 系统随机数生成方法
CN104951279A (zh) * 2015-05-27 2015-09-30 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN107045434A (zh) * 2016-02-06 2017-08-15 京微雅格(北京)科技有限公司 一种fpga中多功能硬件专用乘法器及fpga芯片
CN107169380A (zh) * 2017-05-19 2017-09-15 北京大学 一种rsa电路结构及rsa加密方法
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263435B1 (en) * 1999-07-06 2001-07-17 Matsushita Electric Industrial Co., Ltd. Dual encryption protocol for scalable secure group communication
GB2367651B (en) * 2000-10-05 2004-12-29 Advanced Risc Mach Ltd Hardware instruction translation within a processor pipeline

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833435A (zh) * 2010-04-19 2010-09-15 天津大学 基于传输触发架构可配置处理器指令冗余消除方法
CN104579630A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 系统随机数生成方法
CN104951279A (zh) * 2015-05-27 2015-09-30 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN104951279B (zh) * 2015-05-27 2018-03-20 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN107045434A (zh) * 2016-02-06 2017-08-15 京微雅格(北京)科技有限公司 一种fpga中多功能硬件专用乘法器及fpga芯片
CN107045434B (zh) * 2016-02-06 2020-06-30 京微雅格(北京)科技有限公司 一种fpga中多功能硬件专用乘法器及fpga芯片
CN107169380A (zh) * 2017-05-19 2017-09-15 北京大学 一种rsa电路结构及rsa加密方法
CN107169380B (zh) * 2017-05-19 2020-01-07 北京大学 一种rsa电路结构及rsa加密方法
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method

Also Published As

Publication number Publication date
CN101304312B (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
CN112865954B (zh) 用于Paillier解密的加速器、芯片及系统
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
Wang et al. VLSI design of a large-number multiplier for fully homomorphic encryption
Mane et al. High speed area efficient FPGA implementation of AES algorithm
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
CN101431405B (zh) Des加密方法及其硬件电路实现方法
CN101212292A (zh) 一种ecc\rsa加解密协处理器
Ito et al. The parallel FDFM processor core approach for CRT-based RSA decryption
Lai et al. A highly efficient cipher processor for dual-field elliptic curve cryptography
CN114615069B (zh) 一种Quartet轻量级加密算法的实现装置及方法
Hossain et al. Efficient fpga implementation of modular arithmetic for elliptic curve cryptography
US20040167955A1 (en) Arithmetic device for multiple precision arithmetic for montgomery multiplication residue arithmetic
CN117692126A (zh) 一种基于低复杂度模乘算法的Paillier同态加密方法及系统
Kalimoldayev et al. Polynomials Multiplier under Irreducible Polynomial Module for High-Performance Cryptographic Hardware Tools.
Li et al. Research in fast modular exponentiation algorithm based on FPGA
Modugu et al. Design and performance measurement of efficient IDEA (International Data Encryption Algorithm) crypto-hardware using novel modular arithmetic components
CN104539417A (zh) 一种基于流密码的加密设备
Kanda et al. Vedic Multiplier-based International Data Encryption Algorithm Crypto-Core for Efficient Hardware Multiphase Encryption Design
CN111641495A (zh) 基于Keeloq的数字电路加密方法及装置
WO2009034393A1 (en) Aes-encryption apparatus and method
Vandemeulebroecke et al. A single chip 1024 bits RSA processor
CN110633574A (zh) 用于电力系统安全传输的ecc加密模块
KR100858559B1 (ko) 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기
Leung et al. A low power asynchronous GF (2ˆ173) ALU for elliptic curve crypto-processor
Xiaohui et al. Researching and implementation of reconfigurable Hash chip based on FPGA

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110720

CF01 Termination of patent right due to non-payment of annual fee