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

发布者:心灵清澈最新更新时间:2013-11-06 来源: eefocus关键字: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核:面向信息安全领域的安全应用,集成对称、非对称、杂凑等密码运算单元,通过内部安全控制引擎控制。

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

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

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所示。

对于NiosII而言:

外部如有数据要进行加/解密处理,NiosII首先写命令到MCU命令接收寄存器,待MCU明确表示接收到命令后,返回一个确认信号给:NiosII;NiosII接收到确认信号后,则转入到写数据状态。在写数据状态,NiosII把数据按一定长度分组进行填充,输入到桥接器的输入FIFO。待数据输入完后,发出输入FIFO有效信号到MCU,转入判断IP运算核是否有效;若未完成,则继续在该状态进行等待。当IP运算完后,MCU置读FIFO信号有效,NiosII判断这个信号有效后直接从桥接器的输出FIFO,把数据从输出FIFO送到外部接口部件,完成一次数据加/解密过程;否则,继续等待,超出规定时限后,发出错误警告。

对于MCU而言:

MCU接收到NiosII过来的命令,对命令进行解析后,向NiosII发出确认收到命令信号,并判断输入FIFO里有没有数据。若有数据,则转入从输入FIFO取数据状态,分组送入密码运算IP核进行处理,待一组处理完后,送数据到输出FIFO,置读信号有效,完成一次数据加/解密过程;若输入FIFO为空,则等待。当所有数据全部处理完成后,做出完成标志。

 



2.2.3总线桥的设计

本密码模块包括Avalon总线和自行设计的总线,两条总线通过一个桥模块进行连接,完成总线与总线的数据通信。外部接口模块通过Avalon总线与NiosII进行通信,自行设计的总线主要负责密码专用控制器MCU与密码运算IP核之间的通信。为使这两条总线实现时序匹配,能够较好地数据传输,设计了总线桥。

总线桥的总体结构如图5所示。它包括地址译码和外设IP选择模块、写数据寄存器模块、读数据寄存器模块和状态机模块。

状态机模块主要协调两侧总线的协议时序,从而满足数据的正确传输要求;同时,还将根据MCU发送过来的传输命令得到外设IP相关的特征信息,产生用于NiosII的控制信号。地址译码和外设IP选择模块根据自定义总线发出的地址信号,译码后选择待操作的外设IP,并获取该IP的特征信息。

3 固件设计

3.1 固件工作原理

USB密码模块初始化完成后,首先需要对用户进行身份认证。验证通过,即启动生命期管理模块,并根据口令的权限级别,实现对密码模块系统的安全访问。再继续接收主机命令,并进行相关操作。

若口令验证不正确,则启动口令计数器计数,继续进行口令验证。当计数达到预定值时,则锁定安全专用模块并清空其所有数据,使用户不能进行任何操作。等待管理员重新进行复位设备操作,销毁密钥与数据。

数据的加密存储以页为单位进行,调用AES分组加密算法加密。由128位的模块保护密钥对每页(2 KB)64个分组的存储数据采用密码反馈链接(CBC)模式进行加密。

3.2 固件工作流程

图6描述了基于SOPC的USB密码模块的基本工作流程。系统启动后首先进行系统自检,若自检不正常就退出模块;若自检正常,则调用总控程序,接收用户命令并进行口令认证。若认证成功,则命令有效,启动安全期管理,继续分析命令,完成相应的控制操作(如口令设置、密钥配置、页读或页写、数据销毁),然后继续等待接收用户的命令。若认证不成功,则进入审计过程,开启计数器功能,并继续进行口令认证;当计数达到预定值时,将安全Flash中存储的数据和密钥销毁,并锁定密码模块,使非法用户无法使用。只有管理员可以对模块进行重新配置。[page]

4 验证与测试

4.1 桥的基本读操作仿真时序

从图7中可以看出,Avalon总线一侧信号在ready信号有效时,S_bus总线已经将运算IP核处理好的数据写入到桥接器。这时,桥的状态检测模块进入初始状态S0,根据Avalon总线一端输入的外设地址及外设接口信号,解析出需要具体写入的外设接口模块。待数据发送到总线后,然后置读有效,表示NiosII可以将数据写入外设接口模块了,至此完成了一次数据的传输。

4.2桥的基本写操作仿真时序

从图8中可以看出,S_bus一侧在wr_vail信号有效时,Avalon总线已经将外设接口核的数据写入到桥接器中。这时,状态机从MCU中解析出需要传输到的目的IP核的地址,将数据送到S_bus总线,由S_bus总线写入到运算IP核中。

4.3数据加解密模块验证

在USB密码模块加电后,密码模块首先完成自检、配置寄存器等一系列操作。然后,便可以向数据密码模块内送入数据,按用户要求进行操作;此时开始计时,先后写入需要加密或解密的数据,以及加密、解密命令。以上操作完成后,开始写入数据。算法IP完成运算后,便可读出密/明文。如此循环,直至整个过程结束,停止计时。

输入明文向量:

00112233445566778899AABBCCDDEEFF

输入初始密钥:

000102030405060708090A0B0C0D0E0F

输出密文结果:

69C4E0D86A780430D8CDB7807084C55A

AES模块仿真结果与加密功能测试结果如图9和图10所示。


将得到的运算结果与AES仿真结果相比,以验证整个加密过程的正确性。结果表明,整个数据加密功能正确实现。

关键字:SOPC  USB  密码模块 引用地址:基于SOPC的USB密码模块硬件与固件设计

上一篇:SoC功耗设计的黄金模型
下一篇:闪耀光栅数字微镜的结构设计与驱动

推荐阅读最新更新时间:2024-05-02 22:50

PL2303单片机串口转USB口实现串行通信
引言 随着科学技术的快速发展,单片机的应用已经渗入到了生产、生活的方方面面,其应用范围越来越广泛,应用前景越来越好。基于单片机的开发应用在目前创新技术发展中一支独秀,非常受广大科技爱好者、在校大学生以及科技开发工作者的青睐。多功能、超强型的单片机在市场上也层出不穷,为单片机的开发应用提供了很好的基础。目前,在单片机的应用系统设计中,USB接口的使用越来越多,简化了单片机系统与外部系统进行信息交换的接口电路,提高了信息交换的可靠性及交换速度。目前市场上提供的各类型单片机品种中,有些型号的单片机在其内部集成有USB接口部件,但大部分的单片机不含有USB接口电路。对芯片内部不含有USB串行接口的单片机,进行USB接口设计时,要通过外
[单片机]
PL2303单片机串口转<font color='red'>USB</font>口实现串行通信
基于USB接口的高增益数据采集系统研究
  0 引言        在现代工业生产和科学技术研究等各行业中,通常需要对各种数据进行采集。目前常用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真,容易受计算机插槽数量和地址、中断资源的限制,可扩展性差。而带 RS-232 串口的数据采集器,在需要大批量、高速传输的场合下,其应用也受到限制。通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、高速、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。 1 硬件设计与实现    USB总线传输速度快,为了充分发挥USB总线这一优势
[嵌入式]
MP3专用特殊USB数据线的改法图解
首先进行了测试,发现插上USB线后电脑无任何反映,MP3也无法开机(由于丢了数据线,已经很久没用了,所以可以确定MP3没问题)。 第一步,我们要排除USB插孔接触不良的问题,拆开MP3,用烙铁补焊了USB插孔的四个引脚。再次插上USB线,还是无法识别. 第二步,到这时可以确认是线的接法不对,只好一狠心将线从靠近USB电脑端剪断(因为这一端没有经常插拔)如图,用万用表的电阻档可以确认出4根线依次是:红色USB电源正极、黑色负极、白色和绿色分别是数据脚. 第三步,找出MP3插孔上的电源正负极,还是用万用表的电阻档,从锂电池的负极(如图)到插孔的四个脚,把插孔上的负极对应脚找出来。再从充电二极管的正极(如图)用电阻档依次测插
[嵌入式]
USB PDIUSBD12的接口应用设计
 USB是近年来应用在PC领域的新型接口技术,是一些PC大厂商,如 MICroSOFt、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间 的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各 PC厂家所支持。现在生产的PC几乎都配备了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对 USB的支持。   USB的主要优点:   ① 使用方便。连接外设不必再打开机箱;允许外设热插拔,而不必关闭主机电源。   ② 速度快。USB接口的最高传输率可达12 Mb/s;提供低速方式,速率为1.5 Mb/s。扣除用于总线
[单片机]
<font color='red'>USB</font> PDIUSBD12的接口应用设计
基于USB-6281的高速数据采集系统的设计
    数据采集在现代工业生产及科学研究中的重要地位日益突出,在信号测量、图像处理、音频信号处理等测量中,都要求进行高速、高精度的数据采集。这就对数据采集系统的设计提出了2方面的要求:1)要求接口简单灵活且有较高的数据传输率;2)由于数据量通常较大,要求主机能够对数据做出快速反应,并及时进行分析和处理。常用的数据采集卡一般是PCI卡或是ISA卡,这些采集卡存在诸多缺点,比如安装不方便,传输速度慢,受计算机插槽数量、地址、中断等资源的限制,可扩展性差等。而通用串行总线(Universal Serial Bus,简称USB)具有高传输速度、易扩展、热插拔和即插即用等特点,很好地克服了数据采集卡的缺点,容易实现低成本、高可靠性、多点的数
[电源管理]
基于<font color='red'>USB</font>-6281的高速数据采集系统的设计
Maxim Integrated发布支持车载USB PD端口的buck/boost控制器
Maxim Integrated Products, Inc (NASDAQ: MXIM)宣布推出 MAX25430 100W USB 供电(PD)升 / 降压 控制器 和保护器,为车载充电器提供业界最小尺寸、最低成本方案。作为业界集成度最高的方案,MAX25430 与竞争方案相比将设计尺寸大幅缩减 40%,并提供业界最低成本,有助于增加车辆中的 USB PD 端口数量。 随着越来越多的 USB PD 充电器集成到乘用车车厢内部,汽车应用多媒体集线器(包括后排娱乐模块和无线音响单元)的功能也不断扩展。而尺寸、成本和功率成为系统设计的制约因素——MAX25430 的推出有助于解决上述问题。 MAX25430 集成了 USB
[汽车电子]
基于USB总线的虚拟仪器测量技术
随着计算机总线技术的发展,计算机在测控领域发挥越来越重要的作用,计算机总线从最初的只有低速的ISA总线,发展到133M的PCI总线,一直到10G带宽的PCI-Epress总线,使应用于高速采集的"数据传输总线瓶颈"逐渐得到解决。   另一方面,以太网技术的发展,传输速率从10M发展到1G,使基于网络的分布式得到迅速发展,但以太网的采集模块无法实现PCI总线的中断和DMA响应功能,实现高速采集还需要采集模块具有CPU等。测量总线VXI/PXI/LXI技术虽然可以实现高速采集、同步触发与热插拔功能,但价格昂贵。   USB总线的出现,恰好解决这一问题。Intel公司开发的通用串行总线架构(USB)的目的最早是考虑
[测试测量]
基于<font color='red'>USB</font>总线的虚拟仪器测量技术
基于STM32单片机的USB时钟配置设计
1.首先要配置好系统的时钟如下: RCC_DeInit();//将外设RCC寄存器重设为缺省值 /*EnableHSE*/ RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE) /*WaittillHSEisready*/ HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待HSE起振,等待外部的时钟起振 if(HSEStartUpStatus==SUCCESS) { /*EnablePrefetchBuffer*/ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能或者失能预取指缓存 /*F
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved