基于SOPC的USB密码模块硬件与固件设计
引 言
密码模块是指被容纳在加密边界范围中,执行认可安全功能(包括加密算法与密钥产生)的硬件、软件和固件的组合。集加密存储、安全认证等功能于一体的USB密码模块,可作为USB安全钥载体、USB加密卡、USB大容量加密存储体应用于保护信息系统和秘密信息的主要工具,具有十分良好的市场应用背景。
SOPC(System On a Programmable Chip)技术是一种灵活、高效的软硬件综合解决方案。硬件上可裁剪、可扩充、可升级,有丰富的IP核可供集成,使得设计变得十分灵活。
本文提出了基于SOPC的USB密码模块设计思想,其目标是设计一款集加密存储、安全认证等功能于一体的基于SOPC的USB密码模块应用系统。
1 基于SOPC的USB密码模块总体设计
1.1 设计思想
本设计是基于模块的设计思想,充分利用SOPC现有资源开发特殊功能的应用子系统。用USB2.0接口控制芯片、有丰富可编程资源的FPGA芯片、安全存储专用芯片以及大容量Flash构成密码模块硬件基础。以FPGA为控制中心,实现FPGA对相连部件的操作。
1.2功能模块及组成
整个模块系统包括硬件层、固件层、驱动层、应用层4部分。硬件层包括嵌入式主控制器及其周边环境、高性能密码处理单元、内部安全控制引擎、应用平台通信接口等模块;固件层包括协议栈、嵌入式软件等;驱动层包括器件驱动程序;应用层包括基于操作系统的各类应用软件API。其总体架构如图1所示。

1.3 安全策略
本系统中安全策略包括模块安全管理和数据安全管理。具体内容包括基于口令的认证、口令设置修改、模块有效期管理、安全参数保护管理、数据有效期管理、数据加密和数据销毁等。
口令认证:通过硬件实现用户对模块访问操作的口令认证。
口令设置修改:系统设计有多种级别的口令权限,负责不同的操作。
模块有效期管理:若判断到达或超过使用期限,则自动销毁存储数据和安全参数,并锁定密码模块。
数据有效期管理:当达到数据使用期限时,可自动销毁存储在大容量Flash里的数据。
数据销毁:分为自动销毁和主动销毁。当非法使用、口令攻击和数据有效期失效时,自动销毁用户存储在大容量Flash中的数据。
数据加密:使用分组算法,通过密码模块密钥对用户存储在大容量Flash中的数据写人加密;读出时解密,以保证存储在其内的始终是密文。
2 硬件设计
2.1硬件架构模型
本文在研究了应用需求的基础上,提出了图2所示的硬件架构模型。

它主要包括如下5部分:
①嵌入式微控制器:主要负责模块的整体协调以及与外部通信接口的处理,实现系统控制、安全协议等功能。
②内部安全控制引擎:为了减少中心控制模块的工作,加快密码运算处理速度,专门设计一个专用的微控制器来进行调度密码运算处理。
③密码运算IP核:面向信息安全领域的安全应用,集成对称、非对称、杂凑等密码运算单元,通过内部安全控制引擎控制。
④总线桥:为让外部接口与内部运算模块更为高效地通信,通过总线桥使两条总线连接起来,较好地实现时序匹配和数据传输。
⑤数据存储模块:为了让密码运算处理模块与外部接口之间的通信同步,需设计一个数据存储模块来存储外部来的数据以及加密后来不及输出的数据。
