专利名称:支持高性能安全协议的装置的制作方法
技术领域:
本发明涉及安全处理器,具体的,涉及支持高性能安全协议的安全处理器。
背景技术:
随着信息技术的飞速发展,在处理器领域中,可重组设计得到了原来越多的关注。典型的,可重组逻辑由三部分组成重组元素、可控节点、以及它们之间的连接网 络。重组元素用于实现各种算法的基本操作成分,是可重组逻辑用于构建各种算法的基本 元素。重组元素之间的连接网络用于为各种算法建立所需的数据传输通路。显然,重组元 素及其连接网络必须在可控节点的控制下才能实现不同的算法。可重组逻辑的电路结构和功能的改变是通过对可控节点赋以不同的编码值来实 现的。算法的每一个操作步骤都是通过对多个可控节点赋予一定的控制编码来完成的。所 述控制编码也称为配置文件。传统的数据加密方法有两种,一种是软件加密方法,即用软件实现加密/解密算 法,在通用计算机上完成数据加密/解密操作;另外一种是硬件加密方法,即完全用硬件实 现某种加密/解密算法,制造出针对某种加密/解密算法的ASIC芯片,数据的加密/解密 在专用的加密芯片上实现。软件加密方法较为灵活,但速度较慢;而专用加密芯片的加/解 密速度很快,但是由于其针对特定算法,灵活性差。另外,从安全的角度来讲,上述两种加密方法都有极大的安全隐患。对软件加密方 法而言,攻击者可以用各种跟踪工具秘密修改算法而使任何人都不知道。对专用密码芯片 来讲,一旦芯片生产出来以后,其实现的密码算法是不可改变的,然而任何算法都有可能被 攻破,因此长期使用一种专用密码芯片难以保证信息的安全。而且针对某种特定算法的专 用密码芯片不能适应其它的密码算法。此外,专用密码芯片所实现的算法在设计阶段和生 产阶段是已知的,存在算法泄密的隐患。因此,要使密码芯片能够灵活、快速地实现多种不同的密码算法,则密码芯片的体 系结构必须具有一定程度的灵活性。因此,需要一种能够提供可重组的密码逻辑的安全处 理器,以高效灵活地实现多种期望的算法,从而提高系统密码体系的安全性。另一方面,随着信息技术的高速发展,危害信息安全的事件也不断发生。VPN是一 种确保远程网络之间能够安全通信的技术,通常用以实现相关组织或个人跨开放、分布式 公用网络(如因特网)的安全通信。VPN实质上利用共享的因特网设施,实现“专用”广域 网络,最终以极低的费用为远程用户提供能和专用网络媲美的保密通信服务。传统形式的VPN采用ESP协议并工作在隧道模式,这种形式的VPN被广泛地使用 在企业中,用于安全连接位于异地的企业计算机资源。图1示出了典型的VPN应用情况。通信双方通过各自的网关经VPN隧道连接,而 通信信息经VPN芯片加密/脱密。Hostl将包发给Gatewayl。Hostl到Gatewayl之间的通讯可以是没有安全保护 的。Gatewayl (路由或防火墙)收到Hostl发来的包,VPN进程为收到的包加入新的包头,其中源地址Gatewayl ;目的地址Gateway2,加密发出。两地之间通过Gatewayl_Gateway2 的虚拟的专有通道(Tunnel)进行通讯。Gateway〗收到Gatewayl发来的包,认证,解密,去 掉最外层的包头,转发给Host2。从企业用户的角度看,数据报从Gatewayl到Gateway〗只经历了一跳,这是因为原 数据报的包头被封装在新的包头之内,TTL由Gatewayl到GateWay2只减了 1,就好像没有 穿越Internet,而是一直在私有网络里传输一样。从黑客角度来看,因为加密的缘故,黑客无法知道通讯两端的内容,甚至通讯所使 用的上层协议,如TCP还是UDP,都无法知道。并且真实地址被封装并加密,黑客也无法知道 实际是哪两台机器在通信。另外,因为无法通过完整性认证的包将被网关丢弃,篡改包的内 容也是没有任何意义的。由于最初设计TCP/IP协议簇时,人们并没有重点考虑它的安全性,使得以IPv4为 代表的TCP/IP协议簇存在以下的安全问题IP协议没有为通信提供良好的数据源认证机 制,仅采用基于IP地址的身份认证机制;IP协议没有为数据提供强的完整性保护机制;IP 协议没有为数据提供任何形式的机密性保护;协议本身的设计存在一些细节上的缺陷和实 现上的安全漏洞,使各种安全攻击有机可乘。IPSec正是为了弥补TCP/IP协议簇的安全缺陷,为IP层以及上层协议提供保护而 设计的。它是由IETF IPSec工作组于1998年制定的一组基于密码学的安全的开放网络安 全协议,总称IP安全体系结构,简称IPSec。IPSec的设计目标是为IPv4和Ipv6提供可互操作的,高质量的,基于密码学的 安全性。它工作在IP层,提供访问控制,无连接的完整性,数据源认证,机密性,以及有限的 数据流机密性,以及防重放攻击等安全服务。在IP层上提供安全服务,具有较好的安全一 致性和共享性及应用范围。这是因为,IP层可为上层协议无缝地提供安全保障,各种应用 程序可以享用IP层提供的安全服务和密钥管理,而不必设计自己的安全机制,因此减少密 钥协商的开销,也降低了产生安全漏洞的可能性。IPsec中有两个独立的用于安全传输数据的协议^Authentication Header"(授 权头,AH)和“Encapsulating SecurityPayload”(封装安全有效载荷,ESP)。AH为数据流 提供数据完整性认证的服务。ESP为所传输数据提供加密和数据完整性认证的服务。IPSec协议通过AH和ESP协议对传输的数据提供完整性认证和加密的安全服务。 在密钥的获取方面,IPSec提供了 IKE协议,使通讯的双方能够通过安全的自动协商获得相 同的密钥。安全协议部分定义了对通信的各种保护方式,密钥协商部分定义了如何为安全 协议协商保护参数,以及如何认证通信实体的身份。IPSec密钥管理主要是由IKE协议完成。IKE用于动态安全关联SA及提供所需要 的经过认证的密钥材料。IPSec可以在主机,安全网关(指实现IPSec协议的中间系统,如实现IPSec的路 由器或防火墙就是一个安全网关)或在两者中同时实施和部署。用户可以根据对安全服务 的需要决定到底在什么地方实施。IPsec协议有两种工作模式。传输模式(Transport Mode)将原IP包中的数据部 分进行封装,从而提供了端对端的安全连接。隧道模式(Tunnel Mode)封装整个IP包,从 而建立网关到网关间的安全的虚拟的一跳(hop)。常常利用隧道建立跨越Internet区域的连接两个网关的隧道,从而组成传统方式的VPN(Virtual Private Network,虚拟专用网 络)。在IPSec传送加密数据之前,IPSec通讯的双方需要配置相匹配的用于安全通讯 的参数,如加密算法及密钥等。这可以通过手工配置,或使用IKE协议进行协商获得。IKE 协议是用于IPSec通讯的双方相互认证及协商安全通讯参数的一系列消息的交换。协商的 内容包括通信将使用的加密算法和认证算法,密钥长度和密钥的有效期等,并且最终双方 通过Deffie-HelIman算法得到共知密钥等。IPSec协议支持的数据加密算法包括DES,3DES和AES等,支持的完整性认证算法 包括MD5,SHA-I, H-MAC 等。用IPSec保护一个IP数据流之前,需先建立一个安全关联SA。所谓安全关联SA 是指通信对等方之间为了给需要受保护的数据流提供安全服务时而对某些要素的一种协 定。如IPSec协议,协议的操作模式,密码算法,密钥,密钥的生存周期等。一个安全关联由三个参数唯一指定安全参数索引SPI —个与SA相关的位串,仅在本地有意义。SPI由AH和ESP携 带,使得接收系统能选择合适的SA处理接收包。IP目的地址目前,只允许使用单一地址,表示SA的目的地址,可以是用户末端系 统,防火墙或路由器。安全协议标识标识该关联是一个AH安全关联还是ESP安全关联。安全关联SA的组合是指一个SA不能同时对IP数据报提供AH和ESP服务,如果 需要提供多种安全保护,就需要使用多个SA。当把一系列SA应用于IP数据报时,称这些 SA为SA集束。SA集束中各个SA应用于始自或者到达特定主机的数据。多个SA可以用传 输邻接和嵌套隧道两种方式联合起来组成集束。SA可以手工或动态创建,当用户数量不多,而且密钥的更新频率不高时,可以选择 使用手工建立的方式。但当用户较多,网络规模较大时,就应该选择自动方式。IKE就是 IPSec规定的一种用于动态管理和维护SA的协议,它使用了两个交换阶段,定义了四种交 换模式,允许使用四种认证方法。 IKE的基础是ISAKMP、Oakley和SKEME等三个协议,它沿用了 ISAKMP的基础, Oakley的模式以及SKEME的共享和密钥更新技术。由于IKE以ISAKMP为框架,所以它使 用了两个交换阶段,阶段一用于建立IKE SA,阶段二利用已建立的IKE SA为IPSec协商具 体的一个或多个安全关联,即建立IPSec SA。同时,IKE定义了交换模式,即主模式,野蛮模 式,快速模式和新群模式。IKE允许四种认证方法,分别是基于数字签名的认证,基于公钥加密的认证,基于 修订的公钥加密的认证和基于预共享密钥的认证。IPsec VPNIPSec VPN是基于IPSec协议建立的虚拟专用网络。实现IPsec的方案无外乎是 硬件和软件两种,目前大部分是纯软件方式实现,少数以硬件方式实现的也只是指产品的 形式,往往用专门的芯片来做加解密,在主控的CPU上用软件实现IPsec协议。这样的方式 在低速系统上可行,但在Gbit线速路由器系统中不能满足性能要求。由于IPSec协议簇主要是为解决TCP/IP协议簇的安全性问题而设计的,并非专门为VPN设计,所以将IPSec作为安全隧道协议支持VPN时,就会有一些固有的缺陷(1)不支持基于用户的鉴别。虽然IPSec的安全机制是最完善的,但在安全认证方 面IPSec仅提供数据源认证,不支持基于用户的鉴别,这对于利用动态地址构建隧道的情 况是无法满足安全要求的。(2)不支持动态地址和多种VPN应用模式。。(3)不支持多协议。IPSec不支持对非IP协议的封装,所以,就其对VPN的支持而 言,不符合虚拟网络自治和协议独立的基本要求。(4)关于IKE的问题。IPSec除了提供键入密钥的手工管理方式外,主要推荐采用 IKE进行安全关联和密钥的协商,其优点是定义好安全策略后,可以自动协商安全关联和密 钥,无需用户维护。但是,由于安全关联和密钥品质对于传输安全的重要性,IKE在应用方面 过于灵活,又十分复杂,加之IKE在安全性方面存在一定的局限性,它的自动协商,反而导 致了安全管理人员对整个过程的不可控。我国商用密码的实际应用情况是,由密码管理中 心进行密码的算法配置,密钥管理中心进行高品质密钥编制,检验,存储,备份,分配,存档, 销毁,恢复,审计等,所以需要由安全管理中心替代IKE的工作。(5)关于服务质量保证问题。IPSec的Qos保证主要依赖于IP网络的Qos解决方 案,但在IP网络的Q0S保证问题一直没有得到很好地解决,尤其是实际运行的IP网络几乎 仍是尽力而为的Qos保证策略。针对上述问题,本申请的发明人提出了一种支持高性能协议的安全处理器。本发明采用软、硬结合的方法,既考虑系统性能本身的优化,将相对技术稳定的部 分以及系统性能的瓶颈用硬件实现,以提高系统的速度和可靠性,同时又顾及技术的发展, 将需要不断更新的、应用策略、包处理、IKE处理等部分用宏指令体系的硬件方式实现。
发明内容
传统的IPSEC VPN系统大部分是用软件来实现认证和加解密计算的,少数以硬件 方式实现的也只是指产品的形式,往往用专门的芯片来做加解密,在主控的CPU上用软件 实现IPsec协议。这样的方式在低速系统上可行,但在高速系统(如,Gbit线速路由器系 统)中不能满足性能要求。本发明的IPSEC VPN系统是驱动芯片来实现认证和加解密计算的,在稳定性、安全 性和工作效率上有很大提升。
下面结合附图介绍示例性的实施例介绍本发明的各种方案、特点、优点及应用,其 中图1概念性地示出了 VPN的典型应用;图2示出了本发明一个实施方案的VPN芯片的大体框图;图3示出了本发明一个更具体的实施例的VPN芯片的体系结构;图4示出了本发明一个实施方案的VPN芯片的产品应用体系结构;图5示出了根据本发明的VPN芯片的包处理模块的示意性框图;图6示出了根据本发明的VPN芯片的公钥模块的示意框9
图7示出了根据本发明一个实施方案的接口宏指令控制器结构;图8示出了本发明一个实施例的数据传输路径的示意性示出;图9示出了根据本发明一个实施例的DMA控制与状态寄存器;图10示出了 PCI DMA控制与状态寄存器;图11示出了 EMI DMA控制器寄存器;图12中示出了根据本发明一个实施方式的DMA数据通路的示例性配置;图13示出了根据本发明一个实施方式的SPI接口控制;图14示出了根据本发明的SPI3配置寄存器;图15示出了本发明VPN芯片中的一种包处理体系结构;图16示出了根据本发明的包处理输入宏指令的输入;图17示出了本发明的包处理体系结构的示意框图;图18示出了本发明中安全关联(SA)的记录格式关联;图19示出了本发明包处理模块的配置寄存器模块;图20示出了根据本发明的基本加密包格式;图21示出了根据本发明的基本解密包格式;图22示出了基本HASH包格式;图23示出了基本HASH-加密包格式;图24示出了根据本发明一个实施例的基本HASH-解密包格式;图25示出了根据本发明一个实施例的ESP输出隧道模式包格式;图26示出了根据本发明一个实施例的ESP输入隧道模式包格式;图27示出了根据本发明一个实施例的ESP输出传输模式包格式;图28示出了根据本发明一个实施例的ESP输入传输模式包格式;图29用于说明根据本发明实施例的AH包头定位及可变位处理(IPV6);图30用于说明根据本发明实施例的AH包头定位及可变位处理(IPV4);图31示出了根据本发明实施例的AH输出包格式;图32示出了根据本发明实施例的AH输入包格式;图33示出了根据本发明实施例的ESP和AH输出隧道模式包格式;图34示出了根据本发明实施例的ESP和AH输入隧道模式包格式;图35示出了根据本发明实施例的SPI-3常规输出包格式;图36示出了根据本发明实施例的SPI-3带复制有效载荷的AH输出包格式;图37示出了根据本发明实施例的MPPE输出;图39进一步示出了根据本发明一个实施例的复位宏指令语用图38示出了根据本 发明实施例的MPPE输入;图40示出了根据本发明实施例的算法IP的模块示意框图;图41示意性地示出了分组算法模块激活宏指令语用;图42示出了根据本发明另一方面的算法模块激活宏指令语用;图43示出了根据本发明实施例的公钥算法模块结构;图44示出了根据本发明实施例的大数值运算模块(公钥算法内核)结构;图45示出了根据本发明一个实施例的模幂运算器;
10
图46示出了根据本发明一个实施例的随机数模块结构;图47示出了根据本发明实施例的随机数模块指令配置;图48示出了本发明的RNG宏指令语用;图49示出了根据本发明实施例的PLL控制以及PLL控制寄存器宏指令语用;图50示出了根据本发明实施例的中断宏指令寄存器的配置;图51示出了根据本发明实施例的中断控制器;图52示出了本发明VPN芯片的总体工作流程;图53示出了 PCI配置空间配置子流程;图54示出了本发明VPN芯片的芯片初始化子流程;图55示出了本发明VPN芯片的芯片启动子流程;图56示出了本发明VPN芯片的宏指令处理过程;图57示出了本发明VPN芯片的宏指令启动和输入子流程;图58示出了本发明VPN芯片的FIFO中宏指令仲裁分配过程;图59示出了本发明VPN芯片的包引擎编码(加密)工作流程;图60示出了本发明VPN芯片中包引擎译码子流程;图61示出了本发明VPN芯片中包引擎数据处理子流程;图62示出了本发明VPN芯片中输出宏指令处理子流程;图63示出了本发明VPN芯片中SPI-3包处理流程;以及图64示出了本发明VPN芯片根据另一实施例的实现方案。
具体实施例方式下面参考
本发明的优选实施例。图2示出了本发明一个实施方案的VPN芯片的大体框图。本发明的VPN芯片包括 包处理模块(也可称为内核运算模块)以及接口模块。包处理模块可以从接口模块接收控 制信息(控制指令),获取要处理的数据包(例如,IP包),根据对控制指令的解码从接口 获取处理所依据的SA,并根据SA的指示,对包进行IPsec协议(例如AH和/或ESP,也包 括MPPE)处理以及相关的加密解密处理。包处理模块可以包括一个或多个用于对包进行处 理的包处理引擎模块(以下可简称为包引擎模块)。接口模块可以包括多种接口,例如与主机的接口,与外部存储器的接口和或与内 存的接口、与网络设备(例如路由器)的接口。还可以包括与主板的接口。本发明的VPN芯片还可以进一步包括公钥模块,其通过接口获取数据以及控制信 息,进行大数(大规格数)算术运算和模幂乘运算。公钥模块可以与硬件指令一起为主机 应用程序提供完整的公钥服务(如IKE)。本发明的VPN芯片还可以进一步包括系统配置模块,用于提供对安全处理器的操 作控制。对于某些实施方式,系统配置模块可能是必须的,但是对于其他的实施例,其仅是 优选存在的。在一些实施例中,系统配置模块可以包括锁相环(PLL)模块、时钟分频模块、随机 数模块、复位模块、中断模块等。系统配置模块可以通过PCI接口与主机连接,并可以与处 理器内部的其他模块相连,以向安全处理器各模块相应提供操作控制(包括中断、时钟、数据等)。但是,系统配置模块的结构并不限于此。例如,随机数模块也可以设置在包处理模 块中,也可以设置为独立的模块。系统配置模块也可以不包含复位模块。甚至本发明的处 理器可以不包括PLL模块和/或时钟分频模块,例如可以利用外部输入的时钟。图3示出了本发明一个更具体的实施例的VPN芯片的体系结构。如图所示,VPN芯 片包括包处理模块、数据通路、公钥模块、系统配置模块,还包括PCI接口、EMI接口和SPI-3 接口。其中VPN芯片通过PCI/PCI-X接口与主机连接,通过EMI接口连接外部存储设备,而 通过SPI-3接口连接网络设备(例如路由器)。所述包处理模块包括宏指令模块和多个包 引擎模块。这里,示出了根据DMA标准的数据通路,用于包处理模块和公钥模块以及与相关 接口的连接,这仅是示例性的,本领域技术人员将理解,也可以采用其他的适当数据通路。本发明所采用的PCI接口可以是PCI、PCI-X或PCI-E接口或兼容接口,其遵循主 机的PCI、PCI-X、或PCI-E规范,并可以在主模式和目标模式下工作。在主模式下,PCI接口 连接DMA数据通路;而在目标模式下,其连接系统配置模块和/或存储器。本发明所采用的EMI接口可以连接DMA数据通路和外部存储器(诸如,SRAM、 55肌1^0肌11等)。而本发明的内存接口(例如,DDR系列的接口)可以连接DMA数据通路 和内存(例如主机的内存)。本发明所采用的SPI接口模块遵循SPI系列规范,其可以连接包处理模块和路由 器。在本发明的VPN芯片的一些实施方案中,可以采用例如SPI-3或SPI-4标准的接口。本发明的VPN芯片所采用的数据通路可以是DMA数据通路。DMA是高性能、多通道 的直接存储器存取,主要执行外部接口与内部模块数据的高速双向传输操作。DMA数据通路 仅是示例,也可以采用其他的高速数据通路。在一个具体实现方案中,本发明的DMA控制器有19个数据传输通道,由DMA仲裁 控制通道的使用顺序。本领域技术人员将理解,可以根据需要使用更多或更少的数据传输 通道。其中,DMAO通道用于主机发起(PCI)的DMA主设备方式传输,但其不受DMA控制, 由主机直接控制。另外18个DMAn通道被用于支持内部包处理的DMA传输,其传输方式由 DMA控制。DMA控制器与I/O接口一起用于芯片数据的输入输出。包处理模块可以通过DMA 数据通路接收来自PCI-X或EMI或内存的指令或数据。关于数据通路的具体说明将在下文 中进行。图4示出了本发明一个实施方案的VPN芯片的产品应用体系结构。本发明的VPN 安全芯片可以通过外部存储器接口(EMI)或内存接口(例如,DDR)与安全关联库(SA)交 互,通过串行外设接口(SPI-3)与路由器(或其他包输入/输出设备)通信,通过外设部件 互连(PCI)接口与主机通信。而主机可以关联有安全策略库。主机和路由器可以连通到网图5示出了根据本发明的VPN芯片的包处理模块的示意性框图。本发明的包处理 模块包括宏指令模块、仲裁模块、配置寄存器、以及若干包引擎模块。所述包引擎模块包括 宏指令和SA译码模块、INFIF0、协议模块(包括AH协议、ESP协议、MPPE协议等)、0UTFIF0、 以及算法模块(包括加密算法AES/DES/3DES、ARC4、国家加密算法;摘要算法MD5/SHA1、 国家摘要算法等)。在本发明的一个实施例中,包处理引擎是可重组的。例如多个算法可以包括相同的基本重组元素。然而,可重组设计不限于密码算法模块,不仅是包处理引擎是可重组的, 系统配置也可以是可重组的,例如,中断优先级可重组、存储器同异步方式可重组、总线规 范以及大小尾端数据结构表现方式可重组、数据通路可重组等等。用于可重组逻辑的配置 文件可以存储在芯片的存储器中,也可以通过其他方式提供,例如通过指令提供。因此,可 以说本发明的VPN芯片至少是部分可重组的。包处理模块包括8个包引擎模块,从而可以同时并行处理8个包。但这仅是示意 性的,可以包括更多或更少个包处理引擎。同样的,所述算法也仅是示例性的,本领域技术 人员将理解,可以包括任何期望的算法。所述包处理模块可以与DMA通路和SPI-3接口连 接。同样的,在本发明中DMA通路包括通道1-18和通道0,这仅是示例性的,可以根据需要 设置更多或更少的通道,也可以选择任一个特定的通道来执行通道0的功能和作用。图6示出了根据本发明的VPN芯片的公钥模块的示意框图。公钥模块可以包括模 幂乘模块和大数模块(将在下文中具体说明)。在目标模式下,公钥模块可以与PCI接口连 接。公钥模块还可以连接DMA数据通道0和RAM。下面更详细说明本发明VPN芯片的接口以及接口宏指令控制器结构。根据本发明的一个实施方案,本发明VPN安全芯片的接口模块可以包括PCI接口 (支持33和66MHz)/PCI-X接口 (支持100和133MHz)/PCI-E ;EMI接口,其可以支持支持 SDRAM、异步SRAM和双端口 SSRAM设备连接扩展存储器接口,也支持SDRAM、异步SRAM和双 端口 SSRAM的任何组合;以及SPI接口(如,SPI3,SP14)。本发明VPN安全芯片PCI接口、PCI-X接口支持32位和64位总线;EMI数据总线 宽度在32位至64位之间选择,且支持字节写;通过EMI接口最大内存容量为256M字节; SPI-3接口可以只支持32位数据规格。本领域技术人员将理解,对所采用的接口、接口采用的频率、数据规格、位宽、存储 容量等没有具体的限制,可以根据需要选择。如前所述的,本发明也可以采用PCI-E接口或 者SPI-4接口等等。本发明中的PCI/PCI-X/PCI-E、SPI3/4、EMI等接口均是依据相应标准设计,包括 交易模式、配置寄存器语义、交易规则、数据映射以及控制等。图7示出了根据本发明一个实施方案的接口宏指令控制器结构。在本发明的一个 实施例中,所有宏指令配置寄存器和队列均在PCI配置寄存器空间和内存空间统一编址。 宏指令根据静态宏指令寄存器的设置,决定来自PCI、SPI3或EMI ;安全策略SA根据动态宏 指令寄存器的设置,决定来自PCI或EMI或公钥算法(PKA)模块的RAM ;宏指令队列的选择 也是根据静态宏指令寄存器的设置,来自PCI时队列有例如32组表项,来自SPI3时队列有 例如5组表项。所有芯片的内部数据资源的配置均由PCI寄存器空间和内存空间统一配置。即 芯片的内部数据资源是PCI总线的映射。接口的控制通过宏指令配置信息进行,而宏指令 配置信息均由主机建立、更新。宏指令对接口模块的配置和控制包括PCI接口模块配置,其进行宏指令配置文 件的访问(装载和读取宏指令信息),进行数据输入输出管理;SPI3接口模块配置进行包 处理宏指令和包数据的输入输出管理与控制;EMI接口模块配置进行包处理宏指令和安 全策略SA的输入输出管理与控制;三个外部接口与内部总线进行数据或指令传输,交换。
在本发明的一个实施方案中,SPI3接口独立与包处理模块建立数据和指令关系; PCI接口与SPI3接口可以分别处理包处理宏指令和数据包处理关系;EMI接口与PCI接口 可以分别处理包处理宏指令和SA关系或包处理宏指令和数据包处理与SA关系;如果PCI 直接与EMI发生操作关系,仅能通过芯片内部的缓存实现,此时,数据传输长度依据EMI指 令配置的长度(或与PCI呼叫传输的长度之比,取较小值)。本发明的处理器可以支持如下PCI规范能力废弃操作、自动回复、目标设备和主 设备模式传输、奇偶校验、存储器读、存储器写、配置空间读和配置空间写能力。在一个实施方案中,本发明的VPN芯片提供1个64位最高IOOMHz的PCI-X (兼容 PCI)的总线接口。在本发明的一个实施方式中,在PCI-X总线上可以连接有其他主设备有 NP处理器或其他处理器,而本发明的VPN芯片仅作为在PCI-X总线上1个128K字节的单 块连续存储空间的目标设备。在该目标设备中的编址,又被分配给芯片内部模块。本发明 的VPN芯片的PCI-X目标设备存储地址可以通过17个位的地址存取。PCI-X地址的其余位 被芯片解码,以确定PCI-X总线设备的寻址(呼叫)是否与芯片PCI-X存储器基址寄存器 的值匹配,从而确定VPN芯片是否为此次PCI-X的目标设备。需要注意的是,在该实施方案 中,PCI-X地址的其余位可以并不写入VPN芯片的寄存器。在本发明中,对于指令配置寄存器访问,可以直接存储到寄存器。对于数据传输, 通常情况,目标模式传递配置寄存器数据,主模式是由芯片发起,因此芯片已知源和目的。 对于输入,主机有配置数据和数据传输,两者在芯片响应时,要仲裁,加入输入数据缓冲区 是需的(只加入一组缓冲)。对于输出,芯片内部所有数据都有缓冲,因此,在本发明的一个 实施例中,PCI数据缓冲区仅仅设计一组输入缓冲。在一个实施例中,在主模式下,PCI接口连接至DMA数据通路;而在目标模式下,其 连接至系统配置模块和/或存储器。下面说明在本发明的实施例中所使用的数据通路。在本发明的一个实现方案中, 提供了数据总线控制器(例如,64位),该控制器可有效用于在主机数据接口 PCI、包处理模 块、内部内存和/或外部存储器EMI之间的数据传输。在本发明的一个实现方案中,该数据 总线控制器被实现为DMA控制器。该DMA控制器主要是负责外部接口与芯片内部之间的数据(包括指令)传输;作 为数据传输通道,能够接收要传输数据的信息,如ID、地址、长度、模式等;控制DMA的19个 通道的使用顺序;根据体系要求对所传输的数据进行大小尾端转换控制。在本发明的该实现方案中,DMA是根据VPN体系中外部接口与内部模块间数据传 输的需要而设计的数据通路。而外部接口与芯片内部数据的数据表现形式,存储形式以及 传输形式可能不同,需要有大小尾端转换控制。由于存在多个通道,需进行DMA仲裁控制。19个通道可以同时发申请,仲裁轮询控 制19个通道的使用,在接收到申请后,仲裁要轮询控制发出允许信号。与外部接口有数据 传输关系的每个内部模块都有自己的通路,可同时发申请,由仲裁控制通路的占用顺序。另 一方面,数据大小尾端转换控制需要在PCI、EMI对内部及内部对PCI、EMI的传输接口处完 成。在本发明中,DMA数据传输控制类包括主机发起-主机主控的指令配置操作控 制;主机发起_芯片主控的指令配置操作控制;芯片发起_芯片主控的指令配置操作控制。
14所述输出传输控制涉及PCI总线、EMI总线、包处理总线和内部总线。图8示出了本发明一个实施例的数据传输路径的示意性示出。图中示出了三个外 部接口 :PCI,SPI3,EMI ;4条总线包数据总线LEMI总线2,PCI总线3,内部总线4。主机 通过PCI有主模式传输(包处理总线,EMI总线,内部总线)和目标模式传输(EMI总线和 内部总线),且优先响应目标模式。芯片通过PCI有主控方式的DMA传输(包括主机发起或 芯片发起)以及芯片目标模式的非DMA方式传输(PCI到EMI,PCI到内部)。直接存储器存取(DMA)控制器是使用状态机逻辑实现控制的内部总线通路开关 的自动选择。当一个宏指令译码执行时,控制信号驱动DMA的数据同时操作。DMA控制器以PCI总线为主控(发起,主控),可以控制选择内部宏指令寄存器、包 处理模块(输入输出数据缓存)、公钥存储器的数据通路,完成数据交换。DMA控制器以PCI 总线为发起(芯片主控),可以控制选择宏指令队列输入输出,分段合包宏指令输入,SA信 息输入,密文数据输出等数据交换。芯片中的DMA控制器有19个控制通道,允许任意时刻有19个DMA交易能够等待 执行。当主模式和目标模式同时申请使用DMA控制器时,目标模式传输优先处理。由于PCI 和EMI传输是独立的,且两个申请的源目地址均不同时,能够同时进行两个DMA传输。主机 只能直接控制DMA通道0。其它的通道由芯片的内部状态机根据指令控制自动发起控制并 完成数据交换。下表具体示出了 一种数据传输路径分配。
数据通道主要用于0主要用于主机发起芯片控制模式的数据传输。1由芯片发起的DMA主模式传输。输入宏指令队 列和输出宏指令队列管理器“包处理宏指令”2由芯片发起的DMA主模式传输。输入分段和输 出合包“包处理的分段合包宏指令”3包处理模块实施的数据选择。第1个包模块通路 SAl “第1个包引擎的SA与状态信息”4包处理模块实施的数据选择。第1个包模块通路 第1个包引擎的输入数据和输出数据5包处理模块实施的数据选择。第2个包模块通路 SA2 “第2个包引擎的SA与状态信息”
1权利要求
一种安全处理器,特征在于,该安全处理器至少部分是可重组的,该安全处理器支持多种安全协议,该安全处理器包括接口模块,用于从安全处理器外部获取包处理控制信息和待处理的包;以及包处理模块,用于根据包处理控制信息依照安全协议对包进行处理。
2.如权利要求1所述的安全处理器,特征在于,所述安全处理器还包括公钥模块,其与接口模块相连,用于提供大数算术运算和模幂乘运算。
3.如权利要求1所述的安全处理器,特征在于,该安全处理器支持IPsec协议和MPPE 协议,其中所述包处理控制信息包括第一包处理输入指令和安全关联;所述包处理模块对包处理输入指令译码,根据译码结果从接口获取SA和待处理的包, 并根据SA中的设置对包进行IPsec协议和/或MPPE协议处理。
4.一种安全处理器,特征在于,该安全处理器至少部分是可重组的,该安全处理器支持 IPsec协议和MPPE协议,该安全处理器包括接口模块,包括用于与主机通信的第一接口、用于与外部存储器或内存通信的第二接 口、以及用于与网络设备通信的第三接口 ;数据通路,与第一接口和第二接口连接,所述数据通路包括多个数据通道;包处理模块,其经由数据通路获取第一包处理输入指令和安全关联,并与第三接口通 信以获取待处理的包,所述包处理模块根据安全关联对包进行IPsec协议和/或MPPE协议 处理;公钥模块,用于提供大数算术运算和模幂乘运算,所述公钥模块通过数据通路与所述 第一接口和第二接口通信;以及系统配置模块,用于提供对安全处理器的操作控制。
5.如权利要求3或4所述的安全处理器,特征在于所述要处理的包还包括预先附加到包内的第二包处理输入指令。
6.如权利要求1-4中任一所述的安全处理器,特征在于,所述包处理模块包括指令模块,用于读取包处理输入指令,将指令分配给包引擎模块,并产生包处理输出指 令;以及一个或多个包引擎模块,用于对所分配的包处理输入指令进行译码,并根据译码解释 读取数据和SA,进行包头和包尾的处理,并根据SA的指示完成算法处理,输出处理后的包。
7.如权利要求6所述的安全处理器,特征在于,所述指令模块还包括仲裁模块,用于对包处理输入指令进行仲裁,将指令分配给包引 擎模块,并产生包处理输出指令,其中所述指令模块能够通过轮询或中断的方式获取包处 理输入指令。
8.如权利要求6所述的安全处理器,特征在于,所述包引擎模块还包括指令和SA译码模块,用于对所分配的包处理输入指令进行译码,并根据译码解释读取 数据和SA;以及处理模块,根据SA的指示进行算法处理,以及进行协议处理。
9.如权利要求8所述的安全处理器,特征在于,所述包引擎模块的处理模块还包括包数据输入输出缓冲器。
10.如权利要求6所述的安全处理器,特征在于,所述包引擎模块还包括用于随机数计算的随机数模块。
11.如权利要求2和4中任一所述的安全处理器,特征在于,所述公钥模块包括 公钥算法内核,用于执行大数运算;模幂运算器,用于执行模幂乘运算;以及公钥算法模块控制器,用于接收指令,控制公钥模块的操作。
12.如权利要求11所述的安全处理器,特征在于,所述公钥模块还包括存储器,用于存储公钥计算的数据,也适于存储安全关联SA。
13.如权利要求11所述的安全处理器,特征在于,所述模幂运算器支持基本模幂乘运算操作或使用中国剩余定理的RSA-CRT操作。
14.如权利要求11所述的安全处理器,特征在于,所述模幂运算器由多套独立资源组成,各资源实现的规格可以重组,以实现更大规格 的数据操作。
15.如权利要求5所述的安全处理器,特征在于,所述系统配置模块包括下列中的一个 或多个中断模块,用于管理用于安全处理器操作所需的中断;PLL模块和时钟分频模块,用于提供供安全处理器各模块使用的时钟;随机数模块,用于提供随机数;和复位模块,用于控制各模块的复位和激活。
16.如权利要求5所述的安全处理器,特征在于, 所述数据通路是DMA数据通路。
17.如权利要求16所述的安全处理器,特征在于,所述DMA数据通路支持主模式传输和目标模式传输,其中,在所述主模式下,DMA数据通路连接第一接口和包处理模块,在目标模式下,DAM数据 通路将第一接口与系统配置模块和/或安全处理器内的存储器。
18.如权利要求1-4中任一所述的安全处理器,特征在于, 所述安全处理器基于宏指令体系结构。
19.一种安全处理器,特征在于,该安全处理器至少部分是可重组的,该安全处理器支 持多种安全协议,该安全处理器包括接口模块,包括用于与主机通信的第一接口、用于与外部存储器或内存通信的第二接 口、以及用于与网络设备通信的第三接口 ;数据通路,与第一接口和第二接口连接,所述数据通路包括多个数据通道; 包处理模块,其是可重组的,与第三接口通信以获取待处理的包,所述包处理模块能够 根据安全协议进行操作;协议译码器,通过控制所述包处理模块来实现协议;以及系统配置模块,用于提供对安全处理器的操作控制,所述系统配置模块能够执行系统 初始化、注入以及错误逻辑控制。
20.如权利要求19所述的安全处理器,特征在于,所述协议译码器对协议指令进行译码,并依据协议指令的译码结果,接收指令携带的数据,调用指令功能所要求的协议程序。
21.如权利要求19所述的安全处理器,特征在于,所述包处理模块包括 指令模块,用于读取输入指令,将指令分配给包引擎模块,并产生输出指令;以及 一个或多个包引擎模块,来实现输入指令功能以及对包的处理,并输出处理后的包。
22.如权利要求21所述的安全处理器,特征在于,所述指令模块还包括仲裁模块,用于对输入指令进行仲裁,将指令分配给包引擎模块, 并产生输出指令,其中所述指令模块能够通过轮询或中断的方式获取输入指令。
23.如权利要求21所述的安全处理器,特征在于,所述包引擎模块还包括 指令译码模块、配置IP、可重组IP、大数运算和模幂运算模块、随机数模块,其中所述配置IP和可重组IP用于实现多种密码算法,大数运算和模幂运算模块用于 提供大数运算,以及基本模幂乘运算操作和/或使用中国剩余定理的RSA-CRT操作,而随机 数模块用于提供随机数,所述指令译码模块对指令进行译码并通过译码结果来控制配置IP、可重组IP、大数运 算和模幂运算模块、随机数模块,来实现指令功能以及对包的处理。
24.如权利要求21所述的安全处理器,特征在于,所述安全处理器还包括公钥模块,该 公钥模块包括公钥算法内核,用于执行大数运算;模幂运算器,用于执行模幂乘运算和/ 或使用中国剩余定理的RSA-CRT操作;所述包引擎模块还包括指令译码模块、配置IP、可重组IP、随机数模块,其中所述配置IP和可重组IP用于实现多种密码算法,随机数模块用于提供随机数, 所述指令译码模块对指令进行译码并通过译码结果来控制配置IP、可重组IP、随机数 模块,并协同公钥算法模块来实现指令功能以及对包的处理。
25.如权利要求21所述的安全处理器,特征在于,所述安全处理器还包括用于提供随机数的随机数模块以及公钥模块,该公钥模块包 括公钥算法内核,用于执行大数运算;模幂运算器,用于执行模幂乘运算和/或使用中国 剩余定理的RSA-CRT操作; 所述包引擎模块还包括 指令译码模块、配置IP、可重组IP, 其中所述配置IP和可重组IP用于实现多种密码算法,所述指令译码模块对指令进行译码并通过译码结果来控制配置IP、可重组IP,并协同 随机数和/或模块公钥算法模块来实现指令功能以及对包的处理。
26.如权利要求23-25中任一所述的安全处理器,特征在于,大数运算和模幂运算模块或所述模幂运算器包括多套独立资源组成,各资源实现的规 格能够重组,以实现更大规格的数据操作。
27.如权利要求19中任一所述的安全处理器,特征在于,所述系统配置模块还包括存 储模块,用于存储处理器操作所需的信息和数据,所述存储模块包括信息区和数据区,所述信息区用于存储安全信息,而所述数据区用 于存储公钥参数、设备密钥、授权设备鉴权证书、鉴权密钥、算法程序、协议程序、授权用户 公钥证书。
28.如权利要求19或20所述的安全处理器,特征在于, 所述数据通路是DMA数据通路。
29.如权利要求30所述的安全处理器,特征在于,所述DMA数据通路支持主模式传输和目标模式传输,其中,在所述主模式下,DMA数据通路连接第一接口和包处理模块,在目标模式下,DAM数据 通路将第一接口与系统配置模块和/或安全处理器内的存储器。
30.如权利要求19所述的处理器,其特征在于,所述协议译码器适于执行下列中的一 项或多项指令状态测试,包括输入输出状态测试;指令注入测试;指令译码,包括指令调 度、错误处理、指令I/O操作;以及通信状态测试,包括密级、授权体制测试。
全文摘要
本发明公开一种安全处理器,特征在于,该安全处理器支持多种安全协议,该安全处理器包括接口模块,用于从安全处理器外部获取包处理控制信息和待处理的包;以及包处理模块,用于根据包处理控制信息依照安全协议对包进行处理。
文档编号H04L29/06GK101997834SQ200910161368
公开日2011年3月30日 申请日期2009年8月10日 优先权日2009年8月10日
发明者刘大力, 曹春春 申请人:北京多思科技发展有限公司