分组加密芯片及其数据的高速加解密方法技术

技术编号:2880998 阅读:227 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种分组加密芯片及其数据的高速加解密方法,分组加密芯片10包括:接口输入输出逻辑101、双口RAM102、内部数据输入输出逻辑103、加密算法模块104、接口控制模块105和内部寄存器组106:控制模块105分别与内部数据输入输出逻辑103、加密算法模块104、内部寄存器组106和DMA控制器11双向连接,信号在两个方向流动;控制模块105的信号输入端与接口输入输出逻辑101的信号输出端连接。所述加密芯片的工作和外部数据的打入可基本同时进行,可充分利用DMA burst读写方式数据流的高速性,提高芯片加解密数据的速度。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机芯片技术,尤其涉及加密芯片的设计以及提高加密芯片数据交换速度的方法。有两种常用的方法在具有分组加密算法芯片的设计中被广泛采用,一种是采用传统的接口设计方法,即通过8-32位的数据总线,和CPU进行数据交换(VMS113 data sheet revision 2.1,1999.5.2,VLSI Technology公司)(PCC101 product specification,Version 1.1,2000.5.20,Pijnenburg CustomChips),如果要提高数据流的处理速度,必须使用PIPELINE的方法。因为一个CPU的读写命令周期总要占用几个时钟周期的时间,这样就使得在分组加密算法芯片工作在PIPELINE方式时所规定的时钟周期内很难完成读出和写入一组数据的操作,从而使应用系统达不到芯片设计的最高速度,即使在设计中可以达到芯片的要求,也会将CPU的资源全部占用。另一种接口方法是将分组加密算法和PCI总线控制器作在一起(7751Encryption Processor data sheet,Hi/fn,Inc),这样在具有PCI总线的系统中加解密数据可以直接和加密算法部分进行数据交换,从而提高了数据处理的速度,但是这种做法必然使得应用系统的设计灵活性大大降低,芯片的成本也提高了很多。本专利技术的目的在于避免现有技术的不足之处而提供一种简单实用的。本专利技术的目的可以通过采用如下的技术措施来实现,设计一种分组加密芯片,包括接口输入输出逻辑,用于连接PCI接口及其DMA控制器,完成数据总线与芯片之间的数据传递;双口RAM,用于储存来自数据总线的原文数据以及经过加密运算的加密数据;内部数据输入输出逻辑,用于从双口RAM中读出原文数据以及把加密后的密文数据写入双口RAM;加密算法模块,用于对原文数据进行加密运算;接口控制模块,用于完成对数据流的控制;内部寄存器组,用于定义芯片的工作模式以及与DMA操作有关的参数,保存加密算法的有关参数,并以只读方式保存加密算法的秘钥;双口RAM分别与接口输入输出逻辑和内部数据输入输出逻辑双向连接,控制模块分别与内部数据输入输出逻辑、加密算法模块、内部寄存器组和DMA控制器双向连接,内部数据输入输出逻辑与加密算法模块、内部寄存器组与CPU之间为双向连接,信号在两个方向流动;控制模块的信号输入端与接口输入输出逻辑的信号输出端连接。利用上述的分组加密芯片,就能实现数据快速加解密,其方法包括如下步骤a.DMA控制器通过接口输入输出逻辑把原文数据分组按顺序写入芯片的双口RAM;b.当第1组原文数据被写入双口RAM的地址之后,接口输入输出逻辑发出信号给接口控制模块,由接口控制模块启动加密算法模块对第1组原文数据进行加密运算,在加密运算的同时,不停止原文数据继续写入双口RAM的过程;c.当第1组原文数据的加密运算完成后,密文数据通过内部数据输入输出逻辑写入双口RAM的地址,覆盖原来的第1组原文数据,并立即启动第2组原文数据的加密运算;d.由于加密一组数据所用的时钟周期总是大于原文数据写入双口RAM的周期,当完成一组原文数据加密后,接口控制模块立即启动加密算法模块对下一组原文数据进行加密运算,加密运算完成后,密文数据通过内部数据输入输出逻辑写入双口RAM的对应地址,覆盖刚被加密的该组原文数据;e.当所有的原文数据都写入双口RAM后,虽然原文数据的加密运算仍在进行,接口控制模块经过计算将在所有原文数据加密完成之前启动DMA控制器,DMA控制器通过接口输入输出逻辑从双口RAM开始按顺序读出所需的密文数据。附图的图面说明如下附图说明图1是本专利技术分组加密芯片的系统原理方框图;图2是在本专利技术的分组加密芯片实现数据快速加解密的系统操作时序图。下面结合附图和实施例对本专利技术作进一步的详细说明。针对32位PCI总线接口13,本专利技术的分组加密芯片10包括接口输入输出逻辑101,用于连接PCI接口13及其DMA控制器11,完成数据总线与芯片10之间的数据传递;该接口输入输出逻辑101包含一个计数器,外部每输入一组数据(输入2个32位数据),计数器加1;在以DMAburst方式输入数据时,接口控制模块105通过判断这个计数器的值来启动加密算法模块104,在用户不用DMA burst方式输入数据时,用计数器的值来判断用户输入了几组有效数据。双口RAM102,用于储存来自数据总线的原文数据以及经过加密运算的加密数据;内部数据输入输出逻辑103,用于从双口RAM102中读出原文数据以及把加密后的密文数据写入双口RAM102;加密算法模块104,用于对原文数据进行加密运算的硬件实现;接口控制模块105,用于完成对数据流的控制;内部寄存器组106,用于定义芯片10的工作模式以及与DMA操作有关的参数,如burst读写的数据长度等,并以只读方式保存加密算法的秘钥;双口RAM102分别与接口输入输出逻辑101和内部数据输入输出逻辑103双向连接,控制模块105分别与内部数据输入输出逻辑103、加密算法模块104、内部寄存器组106和DMA控制器11双向连接,内部数据输入输出逻辑103与加密算法模块104、内部寄存器组106与CPU12之间为双向连接,信号在两个方向流动;控制模块105的信号输入端与接口输入输出逻辑101的信号输出端连接,如图1所示。下面以将加密芯片用于插在PCI总线的插槽上的综合加密板卡1为例对加密芯片10的工作方式进行说明,插板总系统结构图如同图1。这里芯片的IO接口设计为32位数据总线,6位地址总线,最高位为1时对内部寄存器组(106)进行寻址,最高位为0时,对双口RAM(102)进行寻址。双口RAM102设计成速度可以达到DMA控制burst读写所要求的响应速度。设定加密芯片一次处理的数据为64bits,芯片中双口RAM102的空间为32×32=1024bits,可以一次保存16组64bits数据,加密芯片加密一组数据需要16个时钟周期,并且要有一个时钟周期将结果打入内部的双口RAM102中。系统中包含一个32位PCI接口13,这个部分处理和上级系统的PCI总线接口信号,DMA控制器11是和PCI接口13紧密结合的,这部分负责PCI总线上和加密芯片10的数据交换,它通过数据和地址线和加密芯片10的接口输入输出逻辑101连接,控制信号和加密芯片10的接口控制模块105进行交互,以完成数据流的控制。CPU12负责协调加密板卡1上的器件,控制加密板卡1的动作。上级系统通过PCI总线配置板卡1的本芯片工作模式和写入加密密码等参数,并首先通知板卡1上的CPU12,配置板卡1的PCI和DMA的参数,然后由CPU12将配置和密码等参数写入芯片的内部寄存器组106。将芯片10配置好之后,板级的CPU通知上级系统,可以通过PCI总线直接和加密芯片10进行数据交互。当外部DMA控制器11以burst读写方式和加密芯片进行数据交互时的工作流程如图2所示。图中的Block表示第m组原文数据(64bits),Block表示第m组原文数据的第a位到第b位,P(Block)表示对第m组原文数据进行加密处理,E(Block)表示加密第m组原文数据后得到的密文(64bits),E(Bl本文档来自技高网...

【技术保护点】
一种分组加密芯片(10),包括: 接口输入输出逻辑(101),用于连接PCI接口(13)及其DMA控制器(11),完成数据总线与芯片(10)之间的数据传递; 双口RAM(102),用于储存来自数据总线的原文数据以及经过加密运算的加密数据; 内部数据输入输出逻辑(103),用于从双口RAM(102)中读出原文数据以及把加密后的密文数据写入双口RAM(102); 加密算法模块(104),用于对原文数据进行加密运算; 接口控制模块(105),用于完成对数据流的控制; 内部寄存器组(106),用于定义芯片(10)的工作模式以及与DMA操作有关的参数,保存加密算法的有关参数,并以只读方式保存加密算法的秘钥; 其特征在于: 双口RAM(102)分别与接口输入输出逻辑(101)和内部数据输入输出逻辑(103)双向连接,控制模块(105)分别与内部数据输入输出逻辑(103)、加密算法模块(104)、内部寄存器组(106)和DMA控制器(11)双向连接,内部数据输入输出逻辑(103)与加密算法模块(104)、内部寄存器组(106)与CPU(12)之间为双向连接,信号在两个方向流动;控制模块(105)的信号输入端与接口输入输出逻辑(101)的信号输出端连接。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈刚
申请(专利权)人:深圳市中兴集成电路设计有限责任公司
类型:发明
国别省市:94[中国|深圳]

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

1