高速密码工程化的若干实践与思考_第1页
高速密码工程化的若干实践与思考_第2页
高速密码工程化的若干实践与思考_第3页
高速密码工程化的若干实践与思考_第4页
高速密码工程化的若干实践与思考_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

近年来,《密码法》《网络安全法》《数据安全法》等法律法规以及与密码应用安全性评估相关的一系列技术标准的相继颁布和实施,标志着我国密码发展进入了有法可依、有据可循的新阶段,这些都对各行各业的信息系统合规、正确、有效开展密码应用提供了具体指导。在此背景下,伴随物联网、5G、云计算、大数据等新兴技术的不断发展,智慧城市、智慧行业、大规模数据中心、超高速线路通信等场景也正在不断落地推广。在密码外在的使用需求中,计算速度越来越快并且伴随复杂度的大幅提升,通信速度越来越快并且伴随协议交互越来越多,存储速度越来越快并伴随数据量越来越大和可靠性要求越来越高。这些应用技术特点对密码技术特别是高速、超高速密码技术的发展提出了迫切需求。这些需求对于密码产品而言,主要是实现高速、高性能密码运算和服务,尽可能地去匹配业务的高速处理能力,避免因为安全而形成过多的性能瓶颈。1高速密码体系的系统化思维认知系统化思维是解决复杂性问题、拆解思维难题的有效方法论,在过去几十年的不断发展中,帮助各行各业解决了众多难题。杰拉尔德·温伯格在他的经典著作《系统化思维导论》

中所述的“一个系统就是对世界的一个看法”,为人们研究建立各类“系统”提供了新视角。对于任何系统而言,它都具有功能、要素和连接3个基本属性。其中,功能是指系统对外提供的能力;要素是指系统内的各个组成部分/实体;连接是指要素间的关系,它也是促使要素功能最大化必不可少的促进因素。从系统的角度来看,任何对外提供密码服务的实体,无论简单还是复杂,都是完整的“系统”,体现的是对业务应用大“系统”的认知。高速密码技术体系所依赖的实体是高速密码(服务)系统,从系统化思维视角阐释如表1所示。表1高速密码体系的系统化思维阐释续表2高速密码体系的工程化实践要点2.1密码产品高性能优化原则和方向根据表1的阐述,高速密码系统旨在为上层各类应用提供性能尽可能完善的各类密码服务,这些密码服务的提供往往是不同层面密码产品协力达成的效果。典型密码系统层次体系如图1所示,其中,橙色要素标识了以实现密码运算为主的实体(部件),绿色要素标识了以实现密码通信为主的实体(部件)。图1典型密码系统层次体系整体而言,密码系统通常包括密码芯片级、密码板卡级、密码整机级和密码平台级4种类型,高速密码系统所侧重实现的核心能力为密码运算和密码通信。所以,对于高速密码能力的优化,应聚焦在提高密码运算和密码通信能力两个方面,针对这两个方面进行拆解,进而将指标分解到不同层次的各个实体中。在设计时,各层次实体主要遵循两个原则:密码算力最大化原则和通信与密码算力匹配原则。密码算力最大化原则是指评估密码资源需求,设计或集成具有更高密码运算能力的逻辑电路或者实体部件,旨在实现尽可能高的基础密码计算能力。通信与密码算力匹配原则是指,精心选择和设计通信信道规格,优化内在通信协议机制,实现密码算力的高比例输出,从而对外提供真正高性能的密码服务。2.2芯片级密码产品高性能设计要点芯片级密码产品通常包括专用密码芯片和通用密码芯片两类。专用密码芯片根据不同密码算法定制的具有特殊规格的集成电路,通过优化特定密码算法的数据路径和流水线,实现高性能和小面积的平衡。在设计和优化上层密码产品性能时,专用密码芯片选型后其基本性能就已经确定,难以通过调用方式的优化来实现性能提升。基于通用密码芯片实现密码算法时,通常包括基于嵌入式中央处理器(CenterProcessUnit,CPU)软件实现和采用现场可编程逻辑阵列(FieldProgrammableGateArray,FPGA)芯片硬件实现两种方式。CPU软件实现方式通常用于低成本和快速交付解决方案中,难以实现高性能密码服务,要想提升密码服务性能,必须采用FPGA芯片实现高速密码服务。按照密码算力最大化原则,根据FPGA芯片物理资源评估算力,在工作频率固定的情况下,尽力增加密码算法IP核,如根据我们的产品开发经验,赛灵思XC7VX690T(或复旦微电子等厂商的对应型号国产替代品)可实现64个SM3/SM4算法核,这些算法核通过多路并行和流水线处理,能够极大地提升密码运算能力。此外,在分组类算法工作模式中,如计数器(CounTeR,CTR)模式、带密文挪用的异或加密结构可调分组密码工作(Xor-encryption-xorTweakableblockcipherwithciphertextStealing,XTS)模式等,尽可能地将可并行的运算过程,实现在FPGA逻辑中,而非从灵活性考虑实现在上位机软件中,将芯片最大化的算力用于密码运算。按照密码通信和密码算力匹配原则,FPGA密码运算能力只有输出给外部对象才有意义,这就对密码通信能力提出了要求,需要根据需求配置好高速串行计算机扩展总线(PeripheralComponentInterconnectexpress,PCIe)知识产权(IntelligenceProperty,IP)核,按需提供PCIe2.0/3.0X1/X4/X8甚至X16规格的通道。2.3板卡级密码产品高性能设计要点密码板卡(也称密码卡、密码模块、密码模组等)是实现安全、高性能密码服务的通用载体,能够满足各类密码整机类产品需求。密码板卡的密码运算和密码通信能力通常基于密码芯片和通信芯片设计实现。在提升密码算力方面,最有效的方式是增加密码芯片数量,因此在板卡电路设计和驱动程序设计上可以考虑采用多芯片并行运算机制。如业界某款面向客户SM2高性能需求使用的高速密码板卡,在设计上最高可支持4路SM2专用芯片并行处理,上位机实测SM2签名性能高达45万TPS,板卡布局如图2所示,其中用方框标识了4颗专用密码芯片。图2多芯片并行运算提升密码算力布局在提升密码通信能力保证密码算力高比例输出方面,通过USB、PCIe是最常见的方式,在高速密码板卡(模组)产品中,性能最高的PCIe接口几乎成为标配,应根据密码运算能力选择与之匹配的PCIe接口规格,如PCIeX4调整为X8,Gen2.0调整为Gen3.0都能实现通信能力翻倍提升。在物理通信信道方面,还可以通过增加信道数来提升性能,如业界某双通道加密板卡(如图3所示),按照客户需求定制专用连接器接口,实现了独立双PCIe通道密码运算及通信输出,上位机实测对称加解密速度达到了50Gbit/s。在密码服务能力输出方面,还应重视驱动程序的设计优化,基于Scatter-Gather(SG)提高直接存储器访问(DirectMemoryAccess,DMA)传输效率、异步缓存、减少内存拷贝等技术,可有效提升密码运算能力输出效率。图3双通道设计提升密码能力通过提升密码板卡的密码运算能力,提升密码通信效率,位于上位机的密码运算服务接口库便可将底层以硬件实现为基础的高速密码服务对外输出和呈现。2.4整机级密码产品高性能设计要点整机类密码产品、密码设备通常基于密码硬件板卡来实现基础密码运算,并通过软件类密码业务服务实现密码功能。按照密码算力最大化原则,最直接有效的方式是增加主板上置入密码板卡的数量,实现多卡并行计算。在安全性要求不高的应用场景中(如等保一级和二级的信息系统中),还可以基于CPU进行软件密码运算,通过指令集级软件优化可大幅提升性能,如基于IntelIPP库进行密码运算可显著提升运算性能。在提升密码通信性能方面,特别是对于大吞吐量加解密需求,可从物理接口、网络驱动调优、密码业务高并发、网络业务协议优化等方面进行充分设计和优化,典型优化机制和性能提升要点如表2所示。表2密码整机产品密码通信性能提升要点在密码运算服务接口方面,行业标准的安全设备功能(SecurityDeviceFunction,SDF)接口定义清晰,但部分接口效率并不高,可基于标准接口进行扩展,通过捎带传输、批量运算等方式提高接口输出性能。对于Java类密码服务接口,可通过Java原生接口(JavaNativeInterface,JNI)机制实现比Java原生访问(JavaNativeAccess,JNA)机制更高效率的接口转换。2.5平台级密码产品高性能设计要点对于业务应用系统而言,往往会由于高性能、高可用、统一管理调度等需求,需要部署密码平台级产品来实现密码服务大规模利用。对于对外提供密码服务的平台级密码产品,通常是以密码设备为依托,将密码整机设备的服务能力进行有效组合和汇聚,并对外以统一的密码运算服务接口形式输出。提升平台级密码服务性能,优先在水平方向扩展密码机集群内的设备数量。需要指出的是,这个数量往往上限很容易达到,根据现有工程经验,集群内超过3~5台设备后,新增设备对系统整体性能提升已经非常不明显,性价比显著降低。对于在集群中部署统一密码服务平台(软件)的方式,这个统一服务节点也可能成为系统整体的瓶颈。改进方式主要包括两类:一是针对大吞吐量加密业务采用并联架构避免流量拥塞至服务节点,对于高频小包业务可采用门卫/串联架构提高易用性并屏蔽设备层;二是通过Nginx或者独立的负载均衡设备扩充统一服务平台节点容量,这种方式的扩展效率较低。3高速密码技术体系发展思考伴随着越来越多的业务对密码服务高性能的需求越来越迫切,高速密码系统的技术体系在根据系统化思维拆解出的密码通信和密码运算两个维度不断取得进展。然而,需要客观地认识到,现有的密码服务性能输出在很多场景中依然难以满足业务的发展需求,其原因如下文所述。第一,从宏观角度整体分析,密码服务技术在与业务应用系统融合过程中往往处于被动和附属地位,通常是新的计算技术、通信技术、存储技术出现和发展带动业务处理能力提升,再之后才是对密码服务提出新的需求,这就导致很多新业务场景下密码技术特别是高速密码技术起步较晚。第二,从高速密码技术方面具体分析。(1)密码系统性能横向提升的限制和约束。从系统化思维方法论来看,密码体系内部各个要素实体以水平方向扩展的方法提升性能,始终绕不开物理限制和衰减率两个指标,比如,一块密码卡上堆叠密码芯片的数量受限于物理IO端口数量和并行调度能力,一台密码机上置入多块密码卡的数量受限于主板插槽数量和并行调度能力。一个密码机集群的密码服务能力并不会随着集群内密码机数量增加而呈线性增长,根据工程经验,当扩展集群规模时,往往从第3台开始系统整体性能增速就会出现明显衰减,而引入第4台设备增加的性能相对于成本来说已经不具有性价比。(2)密码系统性能纵向提升的限制和性能。从系统化思维方法论来看,提升密码体系内部的纵向“连接”能力很困难,通道性能一定是越来越慢的。在硬件板卡上密码芯片可实现几十Gbit/s加解密性能,但经过密码卡(PCIe)、密码机(网口)、集群(网口)等输出后性能会衰减几倍。(3)围绕需求开展高性价比设计。所有工程化产品都绕不开性价比,密码产品也不例外,所以在发展高速密码体系过程中要紧紧围绕需求开展针对性设计,根据业务场景的密码服务需求合理分解能力需求,而不应该面面俱到去设计大而全的密码服务能力。例如,对于高速通信业务加解密,是分组数据的大吞吐量对称加密需求,而不是基于公钥密码的高速认证需求;对于金融类高频在线交易类业务,单笔业务数据量小,对小包数据的非对称运算是强需求。只有细化具体的密码需求之后,才能开展针对性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论