基于IP核及可重构设计的信息安全SoC芯片的实现
当前,信息安全防护已经从传统的单点信息加密发展到了以芯片级硬件防护为基础,构建覆盖全网络系统的信息保障体系。基于芯片级的硬件解决方案已经成为保证信息安全的最可靠的途径。可重构信息安全SoC芯片是基于信息安全服务、面向安全应用、向微型信息安全设备提供密码服务的基础部件,可广泛应用在安全电子支付、身份识别、社会保障、安全电子载体高性能加解密、生物特征识别、金融智能卡、面向城市基础设施的智能IC卡、电子护照和可信计算等安全领域。由于信息安全SoC芯片有着如此众多的应用,因此其开发必须很好地解决应用多样性和开发通用性的问题,使所开发的产品具有智能化、模块化、可裁减、可重构等特征。正因为信息安全SoC芯片所处理的大都是敏感信息和秘密信息,所以在芯片开发时必须着重考虑系统的安全性。基于上述因素,在系统整体功能不变的前提下,笔者利用可重构的思想、相关优化技术、安全防护技术,有效地整合系统中的有限资源,设计实现了一款可重构信息安全SoC芯片。所制定的通用灵活的IP核接口,引入了较为完备的安全机制,使之具有快速的数据加密与解密、数字签名与身份认证等功能;所采用的优化技术提高了系统性能,降低了系统规模和功耗,能更好地满足智能IC卡及安全电子载体USB key等相关安全设备的安全需求、规模限制和功耗要求。
1 SoC芯片的系统结构设计
基于密码应用的信息安全SoC芯片系统结构由系统控制模块、密码服务模块、存储器控制模块、功能辅助模块、通信模块及系统总线模块组成,如图1所示。
(1)系统控制模块。该模块是整个安全SoC芯片的系统核心,在系统软件的控制下,用于协调系统中各个模块的运行。该模块采用具有自主知识产权的微控制器(MCU),完全兼容8052指令集,并针对密码应用和密码服务进行了优化设计,设计出了专用的密码服务指令,从而大幅度提升了密码服务时数据处理的效率。
(2)密码服务模块。该模块用于向系统提供密码服务,由DES/TDES和RSA两个密码子模块构成。DES/TDES分组密码模块,提供分组密码算法服务,可用于高速数据处理;RSA公钥密码模块,提供公钥密码算法服务,可用于低速数据处理、数字签名及身份认证等服务。
(3)功能辅助模块。该模块向系统提供密码辅助功能,由真随机数发生器和16/8除法器两部分组成。真随机数发生器向系统提供真随机数服务;16/8除法器用于在进行随机数素性判定时实现快速的16位/8位除法。
(4)存储器控制模块。该模块用于控制各存储器地址分配、数据选择,由存储器切换模块和存储器动态配置模块两部分构成。利用存储器切换模块,通过装载工具配置相应的寄存器,对SoC芯片进行操作系统升级更新;存储器动态配置模块,对系统中各存储器进行整合,通过配置相应的控制寄存器,对指令存储器和数据存储器的容量进行动态配置。
(5)通信模块。该模块用于和外部进行数据通信。本设计中的外围接口采用智能卡通用接口,接口模块包括USB接口模块和串行接口模块。USB接口模块支持USB1.1标准, 通信速率为1.5Mbps, 支持HID类规范,支持控制传输和中断传输;串行接口模块采用异步半双工模式,符合ISO/7816-3智能卡接口标准。
(6)系统总线。系统总线包括控制总线、地址总线及数据总线。为了防止芯片被破解或芯片内的关键信息被窃密,系统总线模块中引入了总线加密机制,即在存储器与各系统模块之间添加总线安全模块,用于进行总线数据的安全传输。
2 密码服务模块的设计
密码服务模块的设计,特别是密码服务模块中各子模块的接口设计一直是信息安全SoC芯片系统设计的重点,设计的优劣直接关系到信息安全SoC芯片的整体性能,因此本文对其进行重点描述。
2.1密码服务模块结构设计
在信息安全SoC芯片系统中,为了满足不同的密码需求,会有多个密码服务子模块。但在实际应用中,一般不会在同一时刻用到全部的密码服务子模块。在大多数的信息安全SoC芯片设计中,都会为每个模块单独配置控制寄存器和双端口存储器。这种方法虽然设计容易,实现方便,但会使所设计的SoC芯片内部结构复杂,各模块间的连线繁多。这无疑增加了后端布局布线难度,降低了系统的整体性能,而且由于控制寄存器和存储器资源有限,一旦芯片系统中所采用的密码功能模块较多,就会对系统中有限的资源造成较大的浪费。
为了降低后端布局布线难度,提高系统性能,有效利用系统中的有限资源,在密码服务模块中加入IP桥模块来解决以上问题。密码服务模块的结构如图2所示。
根据实际应用的需要,IP桥通过配置IP控制寄存器(IPC)选用所需的密码服务子模块,使之与系统挂接,达到有效整合系统中有限资源的目的。各密码服务子模块通过IP桥与控制模块及存储器连接;IP桥根据IPC状态进行配置,选择所需的密码子模块,并将其与控制模块及存储器进行整合;子模块与控制模块及存储器之间的数据交互通过IP桥进行调配;最后通过控制模块启动密码服务子模块,进行相应的密码操作,实现系统所需的密码服务功能。
2.2 IP桥设计
IP桥主要功能是根据IPC寄存器状态进行数据动态配置,由控制组合逻辑模块和数据配置逻辑模块构成,其结构如图3所示。控制组合逻辑模块根据IPC状态输出控制信号,控制数据配置逻辑模块进行数据配置。数据配置可分为两类,即对密码服务子模块的通路配置和对双端口存储器(Dual RAM)的通路配置。
(1)密码服务子模块通路配置是指IP桥将MCU与所选用的子模块进行整合,包括对其控制信号的配置和时钟信号的分配。控制信号配置是指根据IPC状态将MCU中用于控制密码模块的控制寄存器与相应的子模块控制单元进行整合,以便MCU对子模块操作进行控制。密码服务子模块的时钟信号分配是指只有当所需的子模块被IP桥选用时,才会分配时钟信号,否则时钟信号被屏蔽,处于休眠状态。
(2)双端口存储器通路配置是指将所选用的密码子模块与双端口存储器进行时钟匹配,并进行控制总线、地址总线、数据总线的动态配置。当整个密码服务模块未运行时,用于存储器与密码服务模块匹配的时钟信号被屏蔽。
2.3 密码服务子模块接口设计
在本设计中共有两个子模块:RSA公钥密码子模块和DES/TDES分组密码子模块。这两个子模块都采用同样的接口设计,具体的接口设计图如图4所示。
图中实线信号为直连信号,虚线信号为通过IP桥配置的连通信号,密码服务子模块的各控制信号均由MCU通过IP桥控制产生,MCU可通过密码指令控制子模块。在子模块完成运算并将数据写入Dual RAM后,就输出完成信号,将状态寄存器中相应位置位,MCU通过查询此状态位就能判断模块是否完成运算。与密码服务子模块相关的Dual RAM可在两个不同时钟下,根据两条地址线分别对存储器单元进行读写操作。在本设计中分别由密码服务子模块和MCU对双端口存储器进行读写操作。密码服务子模块在初始运行阶段,从双端口存储器中读取需运算的数据,完成运算后再将数据写入双端口存储器中,供MCU使用操作。
密码服务子模块采用此种接口设计,可有效解决密码IP核与系统间的速度差异问题。IP核可在高速时钟下运行,系统可在低速时钟下运行,而且由于双端口存储器的两个数据端口可采用不同的数据位宽,也就解决了密码服务子模块与控制模块之间的数据总线宽度不同的问题。两个密码服务子模块都采用同样的接口设计,使得所设计的IP核具有很强的通用性,在无需修改接口设计情况下,就可应用于其他的系统设计中。子模块的后期测试也可采用同样的测试平台,使得测试简单易行。
2.4密码服务模块运行流程
加入IP桥设计后,在调用密码服务模块之前需要对IPC进行配置,将密码子模块通过IP桥与系统模块连接。密码服务模块运行流程如图5所示。
密码服务模块运行流程实际上仅多了一个配置IPC的过程。对IPC的配置可通过对SFR的写操作完成,此操作仅耗费二个系统时钟,而且是在初始模块运行时进行静态配置,故对密码服务模块运行速率的影响几乎可忽略不计。虽然MCU发出控制信号、子模块的输入输出数据及完成信号,但这些密码模块和系统模块之间的通信都通过IP桥来完成,并由IP桥整合调配,由于IP桥的配置是静态配置,所以在密码子模块运行时,数据通信实际上几乎不存在延迟。
IP桥的引入,使芯片系统的可重构特性大大加强,可以有效整合SoC芯片内部的资源,充分利用系统中的有限资源,从而降低了系统规模。在IP桥的控制下,对未调用的模块所采用的时钟屏蔽措施,使其处于休眠状态,有效地降低了系统功耗。由于各子模块在IP桥控制下共用存储器,因此在进行多密码服务子模块协同工作时就无需进行大规模的数据转移,从而可节省大量用于数据转移的时间,提高系统运行的效率。
SoC 芯片 实现 安全 信息 IP 重构 设计 基于 相关文章:
- IP核在SoC设计中的接口技术 (08-06)
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- Linux下Sniffer程序的实现(06-12)
- linux操作系统下的进程通信设计(01-24)
- 基于S3C44B0X和uClinux的Socket通信实现(02-28)