一种支持密码运算的微处理器、方法及系统的制作方法

文档序号:9846497阅读:547来源:国知局
一种支持密码运算的微处理器、方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种支持密码运算的微处理器、方法及系统。
【背景技术】
[0002]随着互联网及信息技术的迅速发展,网络和人们生活的关系越来越密切,很多活动也转移到互联网上进行,比如网上购物,网络银行,电子商务,电子政务等。同时,由于互联网本身的开放性,也面临很多安全问题。要解决这些安全问题,需要用到密码学技术,即用于信息加密和数字签名的技术。
[0003]密码学技术的密码运算,可以在通用CHJ上(如X86,ARM等处理器)用软件方式实现,也可以用专用集成电路来实现。用软件方式实现的优点是灵活,各种算法都可以实现。但对于一些运算密集的算法,软件方式性能较低,会占用大量CPU时间,降低CPU处理通用业务的能力。用专用集成电路方式实现,性能高、效率高,但不灵活。一种算法一旦以专用集成电路的方式实现,就不能更改了,这部分集成电路只能用作该固定算法一种用途了。

【发明内容】

[0004]密码学技术的密码运算,可以在通用CPU上(如X86,ARM,MIPS等处理器)用软件方式实现,也可以用专用集成电路来实现。
[0005]用软件方式实现,其优点是灵活,各种算法都可以实现。但对于一些运算密集的算法,软件方式性能较低,会占用大量CPU时间,降低CPU处理通用业务的能力。
[0006]用专用集成电路方式实现,性能高、效率高,但不灵活。一种算法一旦以专用集成电路的方式实现,就不能更改了,这部分集成电路只能用作该固定算法一种用途了。
[0007]本发明所要解决的技术问题是,针对现有技术中采用软件方式实现密码运算性能低的缺点,和采用专用集成电路方式基本没有灵活性(算法不能变)的缺点,提供一种既能实现软件方式的灵活性,又能实现专用集成电路一样的较高的性能和效率的支持密码运算的微处理器、方法及系统。
[0008]本发明解决上述技术问题的技术方案如下:一种支持密码运算的微处理器,其特征在于,包括内置在微处理器内的安全功能模块;
[0009]所述安全功能模块集成至少一种基础算法器件。
[0010]本发明的有益效果是:本发明采用同一个硬件架构可以支持多种算法,既象软件方式一样具有一定程度的灵活性,又象专用集成电路一样具有较高的性能和效率;将集成了基本算法运算的安全功能模块设置在处理器内部,作为处理器的一部分来实现,使算法运算和CPU处理紧密耦合,所述紧耦合实现既支持多种算法又高效率;基于安全功能模块内的至少一种基础算法,可通过逻辑控制实现其他多种算法,并且不占用多余空间和资源。
[0011]在上述技术方案的基础上,本发明还可以做如下改进。
[0012]进一步,还包括控制单元,所述控制单元根据设置对安全功能模块内的基础算法器件进行调度,实现对复杂算法的运算。
[0013]采用上述进一步方案的有益效果是,可以用同一个芯片支持很多种算法,甚至是将来推出的新算法,只要是以基础算法为基础,通过逻辑控制可实现的算法,本发明都可以实现,并且速度优于其他设备。并且,不仅可以实现作为独立算法的密码运算(如RSA、ECC……),还可以实现作为密码协议的密码运算(如SSL,IPSec……)。
[0014]进一步,所述基础算法器件包括大数乘法器、大数模乘器、S盒、Feis tel部件或Ri jndael 部件。
[0015]采用上述进一步方案的有益效果是,所述算法器中的一种或多种通过可编程处理模块的处理即可实现高度灵活的密码微处理器。
[0016]本发明解决上述技术问题的技术方案如下:一种支持密码运算的处理方法,具体包括以下步骤:
[0017]步骤I:微处理器接收密码运算请求;
[0018]步骤2:根据预先设定的程序将密码运算请求对应的密码运算进行分解,分解为多个相同或不同的基础算法;
[0019]步骤3:微处理器内的控制单元调用对应所述基础算法的基础算法器件进行密码运算;
[0020]步骤4:判断运算是否完成,如果是,输出运算结果,结束;否则,返回步骤3。
[0021]本发明的有益效果是:本发明采用同一个硬件架构可以支持多种算法,既象软件方式一样具有一定程度的灵活性,又象专用集成电路一样具有较高的性能和效率;将集成了基本算法运算的安全功能模块设置在处理器内部,作为处理器的一部分来实现,使算法运算和CPU处理紧密耦合,所述紧耦合实现既支持多种算法又高效率;基于安全功能模块内的至少一种基础算法,可通过逻辑控制实现其他多种算法,并且不占用多余空间和资源。
[0022]在上述技术方案的基础上,本发明还可以做如下改进。
[0023]进一步,所述基础算法包括大数乘法、大数模乘算法、S盒算法、Feis tel算法或Ri jndael 算法。
[0024]进一步,所述步骤2具体包括:将密码运算请求对应的密码运算进行解析,获得密码运算逻辑,根据密码运算逻辑将所述密码运算分解为多个相同或不同的基础算法。
[0025]采用上述进一步方案的有益效果是,可以用同一个芯片支持很多种算法,甚至是将来推出的新算法,只要是以基础算法为基础,通过逻辑控制可实现的算法,本发明都可以实现,并且速度优于其他设备。
[0026]本发明解决上述技术问题的技术方案如下:一种支持密码运算的处理系统,包括内置安全功能模块和控制单元的微处理器;
[0027]所述微处理器用于接收密码运算请求;
[0028]所述控制单元根据预先设定的程序将密码运算请求对应的密码运算进行分解,分解为多个相同或不同的基础算法;
[0029]所述控制单元调用对应所述基础算法的基础算法器件进行密码运算,直至完成所述密码运算请求对应的密码运算,输出运算结果。
[0030]在上述技术方案的基础上,本发明还可以做如下改进。
[0031 ]进一步,所述基础算法器件包括大数乘法器、大数模乘器、S盒、Fe is tel部件或Ri jndael 部件。
[0032]进一步,所述控制单元将密码运算请求对应的密码运算进行解析,获得密码运算逻辑,根据密码运算逻辑将所述密码运算分解为多个相同或不同的基础算法。
[0033]采用上述进一步方案的有益效果是,可以用同一个芯片支持很多种算法,甚至是将来推出的新算法,只要是以基础算法为基础,通过逻辑控制可实现的算法,本发明都可以实现,并且速度优于其他设备。并且,不仅可以实现作为独立算法的密码运算(如RSA、ECC……),还可以实现作为密码协议的密码运算(如SSL,IPSec……)。
[0034]本发明基于以下的分析:
[0035]在密码算法中,有几个基础运算是很多密码算法的基础。实现了几个基础的运算,在软件的支持下,就可以组合出很多种密码算法。
[0036]比如,ECC算法的基础运算是模乘。RSA运算的基础运算是模幕,而一次模幕是由数百次的模乘运算来完成的。中国标准的SM2算法是ECC算法的一种,其基础运算也是模乘。其它的非对称算法也有很多基于相同的基础运算,比如Elgamal算法是基于模幂和除法运算,Diffi e-He I Iman算法是基于模幂运算。
[0037]很多对称算法也是基于相同的基础运算。比如S盒变换,Feistel结构等。
[0038]DES/3DES,SM4,SM7,以及用于移动通信的祖冲之算法,都是基于这样的结构:先做密钥扩展,然后以S盒运算为基础,配合移位、异或等运算构成一个基础变换,然后这个基础变换用密钥及明文的不同部分作参数,运行若干轮。
[0039]而S盒运算,可以等效为一个查找表的运算。可以用一个寄存器组来实现,对于不同参数的S盒,可以在寄存器组中填入不同的参数,用相同的查表操作来完成。
[0040]在前面分析的前提下,可以归纳出一组基本的运算,如模乘,S盒,Feistel、Ri jndael等,用高效的方式实现这一组基本运算,然后配合CPU架构中的指令解码器、控制单元、指令计数器、寄存器组等,实现一个可编程的处理器。由于这个处理器有分支循环等操作,可以支持复杂的程序流程,就可以用上述的模乘、S盒等基本运算构造出各种算法。这样就实现了一个高度灵活的密码协处理器。
[0041]这种架构的优势是,可以用同一个芯片支持很多种算法,甚至是将来推出的新算法。
[0042]同样,这种架构可以灵活地支持很多种密码协议,如SSL,IPSec,加密的ISCSI等,其灵活程度是接近通用CPU的。而针对密码算法归纳出的基本运算,又使得其密码性能优于通用的CPU。(这是在同级别集成电路生产工艺的前提下说的。如果工艺差距太大,比如用65纳米微米工艺的本发明的处理器与14纳米工艺的通用CPU比,就没有可比性了)。
[0043]这种架构下,模乘和S盒等基本运算需要作为CPU的一部分来实现。这也是本发明的一个特征之一。
[0044]如果是松耦合的结构,比如变成模乘芯片和CPU分离的架构,会降低性能。原因是,象SM2、RSA算法一次运算会调用数百到数千次模乘,如果二者分离,那么花在通信上的时间都会超过运算的时间,会使得性能变得毫无优势了。
【附图说明】
[0045]图1为本发明实施例1所述的一种支持密码运算的处理方法流程图;
[0046]图2为本发明具体示例所述的一种支持密码运算的微处理器的架构的一个示意图。
【具体实施方式】
[0047]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0048]本发明实施例1所述的一种支持密码运算的微处理器,其特征在于,包括内置在微处理器内的安全功能模块;
[0049]所述安全功能模块集成至少一种基础算法器件。
[0050]本发明
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1