微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于SOPC的USB密码模块硬件与固件设计

基于SOPC的USB密码模块硬件与固件设计

时间:05-24 来源:中电网 点击:

信息工程大学   刘建国
解放军61840部队 武清芳
解放军92218部队 易青松


引 言

密码模块是指被容纳在加密边界范围中,执行认可安全功能(包括加密算法与密钥产生)的硬件、软件和固件的组合。集加密存储、安全认证等功能于一体的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核:面向信息安全领域的安全应用,集成对称、非对称、杂凑等密码运算单元,通过内部安全控制引擎控制。

④总线桥:为让外部接口与内部运算模块更为高效地通信,通过总线桥使两条总线连接起来,较好地实现时序匹配和数据传输。

⑤数据存储模块:为了让密码运算处理模块与外部接口之间的通信同步,需设计一个数据存储模块来存储外部来的数据以及加密后来不及输出的数据。

2.2 内部硬件电路关键部件设计

2.2.1 内部安全控制引擎MCU的设计


根据密码处理的特殊性,MCU一方面要实现两个设备之间的数据直接交换;另一方面要及时对运算完成标志作出快速响应,以减少不必要的时间延迟。因此,MCU除具备通用微控制器的数据传输指令之外,还要增加如下2类指令:

①直接数据传输指令:实现外部存储器与密码模块之问的直接数据传输。不同于通用微处理器的DMA功能,它通过专用指令实现两个外部缓冲区之间的数据交换。

②输入判断分支指令:按位对外部输入信号进行判断,无须微处理器执行算术运算或逻辑运算,即可直接判断外部引脚电平,决定程序分支。

MCU设计:

◆采用哈佛结构模型来实现;

◆MCU为了与嵌入式控制器NiosII更好地协调工作,采用32位宽指令;

◆可以同时读取指令和数据,使流水设计变得简单易行;

◆指令和数据都存放在内嵌的存储器中,使控制器、运算器和程序存储器的处理效率较高;

◆主要进行数据传输指令和跳转指令设计。

微控制器主要由取指电路、译码电路、执行部件3部分组成,实现各项功能。其电路整体框架如图3所示。

2.2.2嵌入式控制器NiosII与内部安全控制引擎

MOU的协调控制设计

由于本密码模块系统较为复杂,内嵌的NiosII需要完成数据的传输、控制、通信、调度等任务。若采用传统的单CPU结构进行控制,因受到CPU速度和自身资源的影响,系统很可能出现任务过于繁重的情况。一旦出现故障,系统将不能正常工作。因此,在本设计中采用双CPU设计方案。其相互的协调控制模型如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top