基于计算机网络加密接口卡的硬件实现方案
扫描二维码
随时随地手机看文章
【摘 要】本文根据作者的实际的开发过程,提出了一种切实可行的基于计算机网络的椭圆曲线加密接口系 统。内容包括椭圆密码体制的选择、有效算法的设计和快速加、解密的硬件实现及双端口共享器的设计。并且详细阐述了利用多片数字信号处理器TMS320C50 在微机上实现并行椭圆曲线加、解密系统的方法。
前言
随着信息时代的到来,计算机网络已成为人们进行信息交流的主要手段之一。但由于计算机网络的固有的弱点——开放性,使得传统的物理措施和人员管理措施难以抵御计算机网络上不断增加的各种安全侵害,因此密码技术在实现网络安全方面已被作为关键的手段。虽然目前已有一些加密软件运行在联网的微机上,但它们大多数都存在加密速度低或安全强度有限的缺点,不能满足高级别的网络安全要求。在开发计算机网络加密系统的过程中,我们以椭圆密码体制为基础,利用一系列有效的算法,最终设计出了增强微机加密能力的密码加密板,在计算机网络加密方面取得了较好的实践效果。
一、 计算机网络加密系统的理论基础
近年来,椭圆曲线作为公开密码体制的基础,已引起了通信保密领域内的广泛关注。利用椭圆曲线进行加解密的过程可以用图一来表示。椭圆曲线在通信保密中的具体应用体现在各种信息传输协议上,比较常用的有:类Diffie-Hellman 密钥交换规程和类ElGamal 体制,我们在系统设计中采用了后者。椭圆曲线加解密流程图如图1所示。
图1 椭圆曲线加解密流程图
椭圆曲线密码体制要用到点乘、点加、模乘、模加、模逆、模幂这些基本运算,它们的执行速度直接决定着椭圆曲线的加密速度。为了提高它们的速度,可从以下几方面考虑:
①有效算法的设计。加解密算法的设计是密码体制具体实现的过程,它为系统软硬件设计提供了基础,算法的好坏决定了系统的实用性。
② 快速加解密的实现。我们设计的网络加密系统采用硬件加密板(主要部件为多片数字信号处理器TMS320C50)作为最终实现方案,它的优点在于利用了算法中大量存在的并行性,提高了系统加解密的速度。
遵循以上原则,我们在计算机网络加密系统的开发方面取得了较好的实践效果。本文根据作者的实际开发经验,本文主要对网络加密系统的硬件设计进行较为详细的论述。
二、基于并行加、解密算法的加密卡的设计
在我们研制的计算机网络加密系统过程中,硬件结构采用了主从式的共享存储型多处理机系统,互连结构采用双端口存储器方式,之所用这样的结构是由于:
① 我们所研制的椭圆曲线加密系统主要用于计算机网络上微机的安全。由于微机的硬件环境,故采用以微机为主结点,以多片并行处理器作为从结点的主从式多处理机系统。
② 提供了访问冲突解决电路,并允许外部同时访问不同的单元,从而简化了电路设计,并极大地减少了访问冲突的可能性。
由于从结点的运算具有很大的独立性,并且其运算需要大量的数据存储,所以各个从结点都有自己的局部存储器。网络加密系统的硬件卡体系结构如图2所示:
图2加密接口板硬件系统结构图
在选择处理结点时,我们使用了数字信号处理器(DSP)TMS320C50,它的特点是对密码运算既有针对性,同时又易于开发。对于微机在网络上传输的文件,其大小一般都至少在500 个字符以上。也就是说,至少有25 个明文、密文组(本系统中,明密文组的长度为20 个字符)。面系统的硬件的并行规模由于微机对电路板大小的限制及插槽个数的限制,最大允许10 个从结点,即有5 个加、解密电路板。从而明、密文组这一级的并行性对于系统的硬件环境来说已经足够用了。因此,我们仅采用算法中明、密文组级的并行性。由于本系统采用双端口共享存储互连方式,可以利用共享存储器来存放被加载的程序,从而引导方式设置为16 位并行EPROM,主机通过控制端口来对TMS320C50 进行初始化。
三、网络加密的并行处理的实现
针对计算机网络加密的特点,本文采用了Pentium 4 与两个高速数字信号处理器TMS320C50 组成三机并行处理系统,如图2所示。TMS320C50 具有独立的内存单元,并具有32 位浮点格式,浮点运算精度高。两个TMS320C50 分别为独立的子系统,通过PC 机ISA 总线与PC 机相连。TMS320C50 与主控机之间的通讯采用共享存储技术,用双端口RAM 作为共享存储器。
图3 多处理器并行处理系统
该系统运行时,算法采用静态调度方法,PC 机作为主控机。PC 机执行算法并进行任务分配协调,A 结点TMS320C50 执行加密,B 结点TMS320C50 执行加密。所有和程序都用C 语言开发。PC 机向TMS320C50发出复位命令,程序联机加载。PC 机将初始数据通过双端口RAM 传送到每个子系统。子系统与PC 机并行计算,独立完成自己的计算任务后将结果再传送回PC 机,由PC 机完成最后输出。由于本系统采用共享存储互连方式,可以利用共享存储器来存放被加载的程序,从而引导方式设置为16位并行EPROM。我们由主机通过控制端口来对TMS320C50 进行初始(RESET)。主机启动从结点的过程为:
① 通过控制端口将从结点的RESET 引脚置低。
② 从主机将程序代码装入双端口存储器(此时由于TMS320C50 不活动,故不会干扰双端口存储器数据)。
③ 在双端口存储器中设置引导程序选择字及其它引导参数。
④ 通过控制端口将从结点的RESET 引脚置高。
由于从结点在大数取模时使用的是模余数表的方法,从而需要大容量的局部数据存储器,我们采用了32K字的快速RAM,能够保证TMS320C50 的无等待访问。由于我们的从结点程序比较大(超过8K 字),故另外又配置了32K 字的局部程序存储器。[!--empirenews.page--]