版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0引言商用加密卡作为基础密码设备,在金融、电力、社保等行业中为各种类型的上层安全应用提供了底层的算法加速、身份认证、密钥管理和敏感数据保护等服务。目前市面上的千兆商用密码卡在设计上大都采用集成度高的进口器件,在算法实现上也过分依赖进口逻辑器件,所用算法也大都是国际公开算法,如:AES(AdvancedEncryptionStandard)、DES(DataEncryptionStandard)、RSA(RivestShamirAdleman)、ECDSA(EllipticCurveDigitalSignatureAlgorithm)等等,且对于敏感资源和密钥的管理、保护都没有满足国家相关的密码行业标准。本文通过分析加密卡的设计要素,描述该千兆密码卡的设计实现思路及国产化的实现途径,最终呈现出这款产品化的密码卡的接口特性和实测性能。实测结果表明,该千兆密码卡的对称运算性能逼近1Gbps,非对称运算签名性能超过50000tps。1设计思路1.1硬件组成密码卡的硬件部分主要由主控单元、总线接口单元以及密码运算单元组成。密码卡采用国产正向设计的PH5系列FPGA实现高速PCI-E(PeripheralComponentInterconnectExpress)总线协议,使得密码卡可以通过该总线单元实现与主机的互联。上层软件安全服务接口调用的命令均通过该总线单元发送给密码卡的主控单元。密码卡的主控单元采用的是国产的X1000E作为主控芯片,接受应用层软件的接口调用,负责密码卡上各部分硬件资源的管理和调度,完成具体的密码业务。密码卡提供多种算法的密码运算服务,其中:对称密码算法提供SMI、SM4;非对称密码算法提供SM2;杂凑算法提供SM3。密码卡通过密码算法提供数据加密/解密、签名/验证及杂凑运算等基础密码运算服务。密码卡的密码运算由专用算法引擎(SSX30-D实现SMI;SSX1510实现SM2/3/4)共同构成,如图1所示。图1
硬件组成框1.2嵌入式软件架构密码卡的嵌入式软件是为应用提供安全服务的关键所在,它的主要功能是向应用提供硬件资源的管理和调度,因此在设计上主要考虑各种安全服务的实现以及设备自身的安全防护,嵌入式软件架构图如图2所示。密码卡的嵌入式软件运行在X1000E处理器上,嵌入式软件由5个部分组成:硬件驱动程序、接口命令处理、存储资源管理、任务管理和状态管理。图2嵌入式软件架构(1)硬件驱动程序从整个软件架构考虑,将直接访问硬件资源的程序抽象出来,形成一层软件模块,即硬件驱动程序。这样,密码卡的其他嵌入式软件模块就不用考虑如何访问硬件,全部交给硬件驱动程序来处理。硬件驱动程序在内部实现对板卡上各类硬件资源的正确、快速和稳定的访问,提供抽象后的访问硬件的调用接口,将密码卡嵌入式软件与硬件资源在逻辑上隔离开。(2)接口命令处理接口命令处理模块从处理器角度来看就是一个中断处理程序,处理主机的请求。主机向密码卡发出请求后,X1000E会收到来自主机的中断信号,然后进入中断处理程序,同时请求的命令数据会进AX1000E可访问的PH5接口芯片例化出的一块双口存储区中。在中断处理程序中,X1000E将命令数据读出进行解析后交由任务管理模块处理,将处理结果回写到PH5接口芯片对应的存储区中,然后触发接口芯片向主机发送中断,这样主机侧的驱动程序就会将处理结果从接口芯片读出。(3)存储资源管理整个硬件板卡的存储资源分为两部分:SPIFlash和eMMC。
Flash上主要存储X1000E的Boot程序、系统文件和一些管理信息。eMMC则主要用于存储密码卡在正常工作状态下需要存储的一些配置信息、密钥文件及部分对外开放的存储文件。(4)任务管理任务管理模块是密码卡嵌入式软件的关键部分,它是密码卡提供安全密码服务的具体执行部件。任务管理模块的“命令”来源于接口命令处理模块,它的处理结果也送往接口命令处理模块,在程序代码上表现为一个函数向量表。根据接口命令处理模块对主机命令的解析结果,任务管理模块执行具体的命令操作,比如:加解密、杂凑运算、采集随机数、登录认证等等。任务执行结束后,不管成功与否都将结果交予接口命令处理模块。(5)密码资源管理密码资源管理模块用于对密码算法及其参数和对应密钥的管理。针对算法及其参数的管理,主要的工作体现在对算法的配置、算法的安全处理。针对密钥的管理,表现在密钥的产生、存储、输入输出、密钥的保护及销毁等多个环节的安全性、正确性的保障。密码卡嵌入式软件的主要流程图如图3所示。图3
嵌入式软件流程图1.3设备驱动程序设备驱动程序是上层应用与密码卡之间通信的桥梁,它支持多进程、多线程并发处理。设备驱动程序是整个主机软件工作的基础部分,驱动程序的实现是否正确高效,直接关系到密码卡能否在相应的操作系统中运行的稳定性与高效性。密码卡的设备驱动程序主要由下面几个模块以组成:(1)驱动程序入口处理。(2)设备对象的创建。(3)驱动程序的卸载。(4)即插即用处理。(5)电源管理。(6)数据传输。(7)中断处理。由于大部分模块在Windows内核下都是标准的处理流程,因此下面只描述与密码卡硬件设计密切相关的“数据处理”和“中断处理”两个模块的实现原理。(1)数据处理数据传输模块是驱动程序中最重要的部分,我们采用标准的StartIO例程来处理请求数据包,图4是驱动程序中数据处理逻辑图。当应用程序调用DevicelOControl时,I/O管理函数就会创建一个IRP,并把这个IRP派发给对应驱动程序的派发例程。当大量读写请求进入设备,我们把这些请求放入一个队列中以便使硬件串行化处理。每个设备对象都自带一个请求队列对象,接着进入StartIO例程。图4
数据处理流程当派发例程调用IoStartPacket()处理一个IRP时,I/O管理器就调用一次StartIO例程,StartIO例程的工作就是处理IRP,这就需要访问密码卡接口单元的内部寄存器,把应用层的数据拷贝到内核缓存中,然后启动主机向密码卡的DMA传输。当密码卡处理完当前的数据并将处理结果传向主机时,主机就会收到相应的中断。(2)中断处理密码卡使用异步方式的中断来告知主机CPU其I/O操作的完成,当密码卡处理完当前的数据并将处理结果传向主机时,主机就会收到相应的中断。设备的驱动程序收到这个中断后进行相应的处理,并完成一次数据从设备向主机的传输。2关键技术及创新点密码卡支撑着PCIE总线上大量数据的传输处理,数据处理性能越高,对主机性能的影响就越小。因此提升密码卡的整体性能,从而减少主机上由于增加密码功能而带来的额外负担具有十分重要的意义。在硬件设计上从以下几个方面提升了性能:(1)高效地实现密码算法密码卡采用高性能的SSX30-D芯片和SSX1510芯片来分别实现SM1和SM2/3/4算法,以满足高速数据处理的需要。如图5所示。
图5运算单元逻辑图在调度单元的控制下,运算单元分别针对每种密码运算业务实现运算引擎的管理和并发调度。密码卡的主控制器X1000E通过SRAM总线来操作密码运算引擎接口逻辑部分的配置寄存器,对密钥、初始向量和工作模式等参数进行预置和管理。运算单元引擎接口的另外一个数据通道直接与PCIE总线相连,直通主机,使主机上的业务数据可以在不通过主控制器而直接进入运算单元,在调度模块的管理下执行算法运算。在各算法业务的流程中,由于减少了数据传输需要主控制器参与和数据搬移的中间环节,从而极大提升了整体的密码运算性能。(2)高效实现PCIE总线接口单元基于PH5芯片自带的PCIEcore,DMA控制器以及在逻辑中例化出的主控制器接口通道和运算单元接口通道共同完成了接口单元的设计。如图6所示。图6
总线接口单元逻辑图当密码运算的速率越接近总线传输速率时,总线的数据传输开销对整个性能的影响就变得越明显。如果总线数据传输和密码运算串行执行,密码运算芯片就无法满负荷工作,必然会极大地影响密码卡的整体数据吞吐率,因此我们在总线接口单元上釆用了DMA和多缓冲流水线调度技术,使总线数据传输和密码运算并发执行,从而使密码卡的密码整体运算性能逼近密码运算芯片的输出性能。(3)安全机制为了增强密码卡的安全性和稳定性,针对可能受到的各类攻击、风险,密码卡采取了多种安全防护措施,主要功能如下:采用国家密码局批准使用的SM1/2/3/4算法,且算法实现采用具有国密型号的芯片;通过嵌入式软件的设计,实现了完善的上电自检、周期性自检措施;采用具有国密型号的USBKey作为分离式身份认证介质,防止非法用户操作密码卡;采用三层密钥结构体制,实现密钥的逐层保护,保证密钥在生成、安装、导入、存储、备份、恢复及销毁整个生命周期的安全;物理性安全措施的加持,例如:密码卡具有带散热功能的屏蔽防护盖、结构件由防撬螺钉固定、主要器件电源均使用电容对地做平滑处理以降低能量分析攻击风险等;主要元器件全国产。3性能指标基于龙芯3A2000平台对密码卡进行了各项算法指标的测试,平台信息如图7所示。
图7主机配置各项性能测试指标详情如表1所示。表1性能测试(包长204
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告投放与宣传合作合同.ls2篇
- 2024年度技术服务合同标的服务的技术要求和实施时间合同
- 2024年度教育培训合同:某培训机构与学员签订的职业技能培训协议2篇
- 钢管租赁合同(2024)9篇
- 2024年度技术服务合同服务项目与服务期限2篇
- 二零二四年环保型公共交通车辆采购与租赁合同3篇
- 2024年度甲乙双方物流配送服务合同2篇
- 2022年上海市嘉定区高考地理一模试卷
- 二零二四年度文化旅游合作协议2篇
- 2024年度智能家居系统研发合作保密协议
- 青少年抑郁症及自杀防治
- 电子商务安全2唐四薪课后参考答案
- 1117 机电控制与可编程序控制器技术
- 2023国家开放大学:《python程序设计》实验一-Python基础基础环境熟悉
- 山东春季高考土建专业2023年高考题
- 新编高等数学PPT全套教学课件
- 四年级道德与法治《这些事我来做》
- 邮票上的昆虫世界学习通期末考试答案2023年
- 2023医师定期考核题库(人文2000题)
- 大连城市住房建设规划
- 论敦煌莫高窟禅窟的历史变迁
评论
0/150
提交评论