128位rsa处理器的制作方法

文档序号:6432199阅读:181来源:国知局
专利名称:128位rsa处理器的制作方法
技术领域
本发明涉及加密处理设备,特别是涉及能够实现RSA运算的处理器。
背景技术
随着信息技术的发展,无论是机构还是个人,将越来越多的事情交给计算机处理,一些机密和敏感信息也经过脆弱的网络在计算机系统之间传输。信息在存储、处理和交换过程中,都存在泄密或被截获、窃听、篡改和伪造的可能性。这就需要通过多种措施保证信息的安全,也提出了许多信息安全的新课题,比如信息加密、数字签名和身份认证等,其中,信息加密技术是最基本的安全技术。加密技术,按照密码使用方法不同,可以分为对称密钥 算法和非对称密钥算法。在对称密钥算法中,加密、解密都使用相同的密钥。非对称密钥算法又称公钥密码算法,即加密、解密使用两个不同的密钥,通信双方无需事先交换密钥就可进行保密通信。在通过网络传输信息时,公钥密码体制体现出了私钥密码体制不可替代的优越性。对于参加电子交易的商户来说,希望通过公开网络与成千上万的客户进行交易。若使用私钥密码,则每个客户都需要由商户直接分配一个密码,并且密码的传输必须通过一个单独的安全通道。相反,在公钥密码体制中,同一个商户只需自己产生一对密钥,并且将公开密钥对外公开。客户只需要用商户的公开密钥加密信息,就可以保证将信息安全地传送给商户。因为公钥与私钥之间存在的依存关系,在用户安全保存私钥的前提下,只有用户本身才能解密该信息,任何未受用户授权的人包括信息的发送者都无法将此信息解密。由于公钥密码算法在保证数据的机密性、完整性以及签名和认可等方面的突出优点,它已经成为了当今网络安全中最重要的解决方法。在众多的公钥密码体制中,1978年由Rivest, Shamir和Adleman在美国MIT提出的RSA算法被公认为是目前理论和实际应用中最为成熟和完善的一种公钥密码体制,可以用来进行数字签名和身份验证。RSA算法的安全性依赖于大整数的素数因子分解的困难性,所以,RSA算法需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。RSA算法最基本最核心的算术操作是模乘运算,再由一系列的模乘来完成模幂运算。为了满足对密码强度的需求,模幂运算的操作数的位数需要2048位,所以运算量极大,很难获得很高的数据吞吐率,成为提高系统加解密运算速度的瓶颈。在中国专利ZL01110395. 7公开的一种智能化、全硬件的RSA加解密处理器中,是采用超标量流水线方式,对最多1024位待处理信息以最高64位为基本加工模块进行加/解密处理。由于现在RSA运算至少是2048位,其已经不能满足安全需求。现有的一款实现了 RSA算法的加密芯片,支持1024/2048位的RSA运算,在80MHz的频率下,2048位RSA运算需要64秒才能执行一次,运算速度过慢。采用Montgomery模乘算法可以较好地提高RSA运算速度。它是一种快速模乘运算方法,采用了模加右移的方法来避免通常的求模运算当中存在的费时的除法步骤。使用保留进位加法替代传统的串行进位加法,可以进一步提高Montgomery模乘的计算速度。基于Montgomery算法,可以使用二进制方法处理幂运算,将幂运算用一系列的乘法和乘方运算来代替。虽然Montgomery模乘算法可以有效地提高运算速度,但是由于需要的寄存器过多,会导致芯片面积过大,致使成本高昂。可见,实有必要对现有技术进行改进。

发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种128位RSA处理器,能够以较快的速度和较小的成本实现2048位的RSA运算。本发明解决上述技术问题采用的技术方案包括,提出一种128位RSA处理器,包括
一数据处理单元,用以对128位数据进行运算操作;
一 ROM单元,用以存储执行指令以控制RSA运算的流程;
一 RAM单元,用以存储RSA运算所需数据和运算结果;
一寄存器单元,与该数据处理单元、ROM单元以及RAM单元相连,用以实现数据的暂存和传递;以及
一接口单元,与该寄存器单元以及RAM单元相连,用来与外部结构相连接,以传递控制信号和输入输出数据。该ROM单元存储有多条指令组成的程序,每条指令由指令码和操作数构成,长度为 28bit。每条指令由4 bit的指令码和24bit的操作数构成,操作数不足24bit的在后面通过补0来补齐。该数据处理单元可根据当前执行的指令中的指令码的指示,对128位数据进行加法、减法、与操作和移位操作。该数据处理单元可进行的加法运算包括串行进位加法和保留进位加法,其中,串行进位加法处理的两个加数是128位,保留进位加法处理的两个加数是2048位。该数据处理单元还可根据当前执行的指令中的指令码的指示,对128位数据进行递增操作;而该数据处理单元可进行的移位操作包括左移和右移。该RAM单元包括256个寻址空间,每个寻址空间可存放一个128位数据。该RAM单元中数据的初始化是通过从接口单元获得数据先写入到寄存器单元中,再通过接口单元给出的控制信号使RAM单元的片选信号和写信号有效,将寄存器单元中的128位数据写入到RAM单元中。该寄存器单元包括一个I位的状态寄存器,用以装载数据处理单元运算过程中产生的进位;七组数据寄存器,每组数据寄存器包含十六个128位的数据寄存器,用以装载当前需要处理或者保存的数据;一个9位的程序计数器,用以存放下一条要执行指令在ROM单元中的地址;以及一个8位的RAM地址寄存器,用以存放当前使用的RAM单元中的地址。该寄存器单元与外部结构之间数据传输是8位的,该128位RSA处理可根据外部结构给出的控制信号来启动RSA运算和向外部结构表明RSA运算结束。
与现有技术相比,本发明的128位RSA处理器,通过采用128位作为计算和传输的位长,能够以较快的速度和较小的成本实现2048位的RSA运算。


图I为本发明的128位RSA处理器实施例的结构示意图。
具体实施例方式以下结合附图所示之最佳实施例作进一步详述。参见图1,本发明的128位RSA处理器实施例,大致包括数据处理单元1,R0M单元2,RAM单元3,寄存器单元4和接口单元5。数据处理单元1,ROM单元2,RAM单元3和接口单元5均与寄存器单元4相连,该接口单元5还与RAM单元3相连。其中, 数据处理单元I用以对128位数据进行加法、减法、与操作和移位等操作。ROM单元2用以存储执行RSA运算的程序,该程序由指令集构成。RAM单元3用以存储RSA运算所需的数据。共分256个寻址空间,每个寻址空间可存放一个128位数据。在执行读指令时,将RAM单元3中数据读出到寄存器单元4,在执行写指令时,则是将寄存器单元4中数据写入到RAM单元3。对RAM单元3进行操作时,需要使RAM单元3的控制信号有效。开始运算之前,模幂运算所需的模、底数和指数需要提前写入到RAM单元3中。需要说明的是,RAM单元3中数据的初始化不是通过指令完成,而是通过从接口单元5获得8位数据先写入到寄存器单元4中,直至写足了 128位,再通过接口单元5给出的控制信号使RAM单元3的片选信号和写信号有效,将寄存器单元4中的128位数据写入到RAM单元3中。寄存器单元4用以实现数据的暂存和传递,其具体包括一个I位状态寄存器,七组数据寄存器,每组数据寄存器包含十六个128位数据寄存器,一个9位程序计数器,一个8位RAM地址寄存器。其中,该程序计数器存放下一条要执行指令的在ROM单元2中的地址,初始时,程序计数器中的值为1,后续将会依据指令的诸条执行而递加程序计数器中的值,或者,在遇到跳转指令时,改变程序计数器中的值。状态寄存器用来装载数据处理单元I计算过程中产生的进位。加法和移位操作产生的进位和计算需要的进位都保存在状态寄存器中,开始计算前需要对其进行初始化。数据寄存器用来装载当前需要处理或者保存的数据。地址寄存器用来存放当前使用的RAM单元3中寻址空间的地址,以实现数据的读/写。依靠时钟周期的同步,根据程序计数器中的值可读取ROM单元2特定地址中的指令。每次读取一条指令,进行译码并做相应的操作。每条指令的前4位为指令码,指示进行何种操作,如移位操作。指令码后面的为操作数,如寄存器标识。操作数最多为24位,不足24位的操作数在后面补O。根据指令码,可调用数据处理单元I中的不同操作。数据处理单元I可实现串行进位加法、保留进位加法、与操作、递增、左移和右移。其中,保留进位加法处理的两个加数是2048位,其它操作的操作数都为128位。计算得到的进位保留在寄存器单元4的状态寄存器中,供之后的计算使用。如串行进位加法,每次处理128位,而每个数具有2048位,就需要将上一次串行进位加法的进位作为下一次进位的输入。完成一个数的串行进位加法,需要进行16次。
接口单元5用来与外部结构相连接,以传递控制信号和输入输出数据。其与外部结构之间数据传输是8位的。本发明的128位RSA处理是根据外部结构给出的控制信号用来启动RSA运算或者表明RSA运算结束的。与现有技术相比,本发明的128位RSA处理器,综合考虑了运算速度和芯片面积,在既保证运算速度又不能使芯片面积过大的情况下,选用128位作为计算和传输的位长。采用本发明执行一次2048位的RSA运算,需要18,852,708个时钟周期,以80MHz的频率为例,一次运算的时间小于2. 4秒。 以上,仅为本发明之较佳实施例,意在进一步说明本发明,而非对其进行限定。凡根据上述之文字和附图所公开的内容进行的简单的替换,都在本专利的权利保护范围之列。
权利要求
1.一种128位RSA处理器,其特征在于,包括 一数据处理单元,用以对128位数据进行运算操作; 一 ROM单元,用以存储执行指令以控制RSA运算的流程; 一 RAM单元,用以存储RSA运算所需数据和运算结果; 一寄存器单元,与该数据处理单元、ROM单元以及RAM单元相连,用以实现数据的暂存和传递;以及 一接口单元,与该寄存器单元以及RAM单元相连,用来与外部结构相连接,以传递控制信号和输入输出数据。
2.如权利要求I所述的128位RSA处理器,其特征在于,该ROM单元存储有多条指令组成的程序,每条指令由指令码和操作数构成,长度为28bit。
3.如权利要求2所述的128位RSA处理器,其特征在于,每条指令由4bit的指令码和24bit的操作数构成,操作数不足24bit的在后面通过补0来补齐。
4.如权利要求2所述的128位RSA处理器,其特征在于,该数据处理单元可根据当前执行的指令中的指令码的指示,对128位数据进行加法、减法、与操作和移位操作。
5.如权利要求4所述的128位RSA处理器,其特征在于,该数据处理单元可进行的加法运算包括串行进位加法和保留进位加法,其中,串行进位加法处理的两个加数是128位,保留进位加法处理的两个加数是2048位。
6.如权利要求4所述的128位RSA处理器,其特征在于,该数据处理单元还可根据当前执行的指令中的指令码的指示,对128位数据进行递增操作;而该数据处理单元可进行的移位操作包括左移和右移。
7.如权利要求I所述的128位RSA处理器,其特征在于,该RAM单元包括256个寻址空间,每个寻址空间可存放一个128位数据。
8.如权利要求I所述的128位RSA处理器,其特征在于,该RAM单元中数据的初始化是通过从接口单元获得数据先写入到寄存器单元中,再通过接口单元给出的控制信号使RAM单元的片选信号和写信号有效,将寄存器单元中的128位数据写入到RAM单元中。
9.如权利要求I所述的128位RSA处理器,其特征在于,该寄存器单元包括一个I位的状态寄存器,用以装载数据处理单元运算过程中产生的进位;七组数据寄存器,每组数据寄存器包含十六个128位的数据寄存器,用以装载当前需要处理或者保存的数据;一个9位的程序计数器,用以存放下一条要执行指令在ROM单元中的地址;以及一个8位的RAM地址寄存器,用以存放当前使用的RAM单元中的地址。
10.如权利要求I所述的128位RSA处理器,其特征在于,该寄存器单元与外部结构之间数据传输是8位的,该128位RSA处理可根据外部结构给出的控制信号来启动RSA运算和向外部结构表明RSA运算结束。
全文摘要
一种128位RSA处理器,包括一数据处理单元,用以对128位数据进行运算操作;一ROM单元,用以存储执行指令以控制RSA运算的流程;一RAM单元,用以存储RSA运算所需数据和运算结果;一寄存器单元,与该数据处理单元、ROM单元以及RAM单元相连,用以实现数据的暂存和传递;以及一接口单元,与该寄存器单元以及RAM单元相连,用来与外部结构相连接,以传递控制信号和输入输出数据。本发明的128位RSA处理器能够以较快的速度和较小的成本实现2048位的RSA运算。
文档编号G06F21/72GK102968601SQ201110256768
公开日2013年3月13日 申请日期2011年9月1日 优先权日2011年9月1日
发明者刘彦, 秦云川, 李肯立, 宋丹 申请人:深圳市证通电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1