《基于通信加密系统的软件设计》10000字(论文)_第1页
《基于通信加密系统的软件设计》10000字(论文)_第2页
《基于通信加密系统的软件设计》10000字(论文)_第3页
《基于通信加密系统的软件设计》10000字(论文)_第4页
《基于通信加密系统的软件设计》10000字(论文)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

基于通信加密系统的软件设计目录TOC\o"1-2"\h\u28616第一章绪论 25821.1论文的研究背景及意义 2209271.2课题研究的国内外状况 3325511.3本文的章节内容 3208392.1国密算法的对比 43662.2SM2非对称算法介绍 56767第三章使用相关技术 9153223.1Socket通信 9143773.2JAVASOCKET通信 1230496第四章通信加密系统的软件设计 15123304.1软件系统整体设计 15307624.2加密通信系统的协议介绍与算法实现 1620474.3通信加密算法的实现 187539第五章通信加密系统的测试 20227665.1测试环境 2048405.2功能测试 2016362第六章总结与展望 2119216.1本文工作总结 226996.2未来工作展望 22第一章绪论1.1论文的研究背景及意义随着工业控制和互联网的快速发展,以及来自各方面的信息泄露的威胁逐渐升级,使得人们对通信信息的安全问题越来越警觉。现在很多工业化领域也逐渐与网络化接轨,很多方面都涉及到网络,甚至迈向了智能化,这些技术的发展很大程度上给我们生活的各方面带来了便利,但是这些设备潜藏着各种各样信息方面的安全问题。目前我国的工控领域大都面临着信息安全的威胁,形势非常严峻,无论是从设备还是监管力度上,国家很多军政部门、公司机要部门对核心部门资料以及密资料等都存在约束不到位的问题。铁路电气供电设备遥感器监控系统主要功能是对于我国铁路机车牵引制动供电、电力传输供电等各系统运行中的各种铁路电气设备远程集中进行监视、测量与自动控制的一种监控系统,实现了对于各种电气设备的远程数据采集、设备自动控制、测量、参数自动调整以及各种报警信号自动报警等各种监控功能,由主控调度站的主站控制系统、被控调度车站和其他设备远动监控通道及各种复示监控终端组合而成。该控制系统目前可以广泛用于机车作为中国高速铁路机车牵引制动供电控制系统的一个自动调度台和指挥控制单元,其安全性对保障铁路运输是极其重要的。采用完善的信息加密技术是加强其安全防御能力的有力措施之一。数据传输信息加密技术主要功能是针对数据传输的全过程及其中的主要数据传送流量和传输信号长度进行数据加密,常见的加密方式主要有传输链路数据加密、节点数据加密和移动终端数据加密三种。链路依次加密主要的是指信息传输的两个数据仅在物理层前的两个数据链接线路的两层之间可以进行依次加密,不过还需要特别考虑传输信源和传送数据的相关信宿,它主要的是用于管理保存和存储管理各个通信层和节点之间的相关数据,接收的双方主要目的是信息传输到该路径上的每台通信节点计算机,信息在每台通信节点计算机内都必须先需要被依次解密和再依次进行直接加密,依次与每台通信节点计算机直接加密相连的设备是一个密码管理设备,密文在该依次加密设备装置中被依次解密并由其重新加密进行再次加密,明文不需要能够通过通信节点机,避免了数据链路层的加密放在节点机的位置容易直接遭到黑客攻击的安全问题。端对点到端的自动加密主要来说是一种指将加密数据从另外一端自动转移连接到另外外一端的一种自动加密通信手段,在两个发送端的两个应用层已经自动完成了对加密数据在两个发送端的自动加密,并且已经自动进入了对TCP/IP数据压缩包的加密回封,在此时接收端自动地进行重组、解密、变成一份完全可读的加密数据,中间两个节点的数据开头在此处不以可声明文件的形式进行存储。对于从系统主站至建设在各亭的被控站进行实时采集和监测数据的传输,采用了灵活性和网络安全性都比较高的终端端到端加密的方式,这种加密方式除了报头外的其他报文都以密字形式贯穿于全部数据传输的过程,只是在发送端和接受终端才可以具有解密装置,在中间节点不一定需要配备有密码装置,且其中的密码装置数量也相对较少;另外,在这种报头加密技术的方式下,通道上的每一个中间节点虽然不对报文进行解密,但为了将该报文直接传送给指定的目的地,必须仔细检查该报文的路由选择等等信息,因此,只能直接对报文进行加密,而不可能对报头进行加密,容易造成信息泄漏;而远动系统采用的是铁路内部专用通信传输网络,中间通信节点安全性较高,传输的数据即使泄漏也不会对监控结果产生不良的影响。可以选择这种数据传输的加密方法。1.2课题研究的国内外状况国外的研究状况:自从1975年公钥密码的概念和思想正式传播并且出世,国际上已经逐渐开始建立和提出了很多种关于公钥密码的概念和体制,但还是相当流行的主要包括两类,第一种就是基于大整数因子的分解问题的,第二种就是基于离散对数问题的。美国最早的时候就是在1977年起就已经有了自己的分组密码加密技术标准,但是在除了网站上公布的具体算法之外,没有正式地公布过详尽的技术设计规定,因此随着美国网站数据加密技术的标准化而逐渐出现,人们就分组密码进行了深入的研究与讨论,在此期间页面设计了大批的分组密码,并且还给出了一系列评估密码的标准,日本和苏联也随着纷纷发起并提出自己的数据加密技术标准,但是在传统的分组式密码中得到人普遍接收和认同的算法却极少数。国内研究状况:我国的铁路运输建设正在不断深入和拓展,随着电气化改造和新建线路的增多,铁路的牵引供电系统也为铁路调度的统一指挥带来了较大的问题,为了满足日益增长的铁路电气化改造的需求,我们需要对铁路供电远动系统进行优化和整合,开发出新型的供电远动系统,以实现统一的调度指挥,从而确保铁路系统运行和设备的安全使用.本文面向铁路供电远动系统的需求,对供电远动系统进行结构分析和研究,通过对不同设备的集中控制,设计并应用系统的信息加密技术.在我们看看国家国力电监会2008年颁布的《电力二次系统安全防护总体方案》中,主要明确规定了全国电力二次系统的安全监测防护管理工作必须严格遵循安全防护分区、网络安全专区、横向安全隔离的基本管理原则,在一定的法律基础上有效地准确保障了全国电力安全监测管理系统与全国电力运输调度系统信息网络之间的安全。纵向安全加密电子认证安全技术防线是指以电力二次传输系统安全加密防护系统为技术核心的各种纵向安全加密技术防线之一,其中的主要设计目的就是为了保证采用与电子认证安全加密和访问控制紧密相关的各种技术手段才能去有效地准确实现对大量电子数据以及信息的远方安全加密传世以及针对纵向边境的安全加密防护,来保护数据的传输安全。1.3本文的章节内容本论文课题为铁路供电网加密解密通信模块的设计与实现:第一章主要是介绍系统设计的主要研究发展背景,以及国内外相关技术的研究现状;第二章主要介绍国密算法SM2的加密过程和解密流程以及算法的总体功能;第三章介绍了实现该模块所使用到的技术;第四章是对实现加密解密系统的描述;第五章介绍了该通信加密系统的测试;第六章是对本课题的总结与未来需要补充学习的地方。第二章国密算法介绍2.1国密算法的对比随着互联网络的技术进步以及国际形势的变化与发展,通信信息被泄露的事件频繁地发生,对于信息安全的要求日益提高,各种密码算法应用而生,比如目前国际上最通用的密码算法:RSA、ECC、DSA等,为了有效加强各个行业之间信息安全的可控性,我国专门研制了自己的密码加密算法。国产密码计算机是由我国科研人员开发的一套针对大量数据信息进行高精度加密和处理的系列算法,并通过我国密码局审查变成密码方面的标准算法,此密码算法包括SM2、SM3、SM4、SM7、SM9等等,最主要使用的是SM2、SM3、SM4。主要国密算法的对比结如表2.1。表2.1国密算法的对比国密算法对应国际算法长度类型SM4AES128、DES128对称性加密SM3SHAI、SHAI-256256完整性运算SM2RSA、RSA4096256非堆成加密2.2SM2非对称算法介绍国产密码算法SM2的原理基于公钥密码ECC,研发自主产权隶属于我国,对数据的加密强度为256,具体分为SM2-1、SM2-2、SM2-3三种算法,其功能表现为对数据进行加解密处理、密钥协商以及数字签名与验签,此算法的基本思想是建立在数学函数之上,与之前公布的算法原理替换与置换不同。本节从原理、协议以及加密流程方面对SM2进行介绍。2.2.1ECC椭圆曲线算法介绍ECC(基于一个椭圆三角曲线的基本密码运算体制)被分为Koblitz和Miller这两人在1985年分别单独地两次提出,其基本密码理论就是基于一个椭圆三角曲线的密码运算,该种新的密码体制算法的困难之处主要表现在于我们可以将一个椭圆三角曲线中一个离散节点群上的一个整数离散节点对数群的问题公式进行了精确求解。其名称的来源是因为此曲线表达式为三次方程,与椭圆曲线的方程类似,该算法的计算原理是在椭圆曲线上进行多倍点运算并与乘幂运算相结合,在有限域上椭圆曲线可以通过加点运算构成的有限加群组成一个单向函数。SM2算法的基本原理是ECC椭圆曲线密码机制,在2010年12月17日被我国公安部密码技术监督管理局发布,采用的是ECC256位的一种。此算法的特点是在密钥的生成率和加解密的速度等方面都要优于RSA。椭圆曲线在平面上的函数方程为:Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3(2.1)对点(x,y)点进行坐标变换,令x=X/Z,y=Y/Z,将上述方程变换如下:Y2Z3+a1xyZ3+a3yZ3=x3Z3+a2x2Z3+a4xZ3+a6Z3(2.2)对方程进行化简,结果如下:y2+a1xy+a3y=x3+a2x2+a4x+a6(2.3)将曲线方程简化为有限域内方程:y2=x3+ax+b(2.4)在满足(2.3)奇异点方程中的任取一点都被认为是非奇异点,也就是从一条曲线上的任取一点,其点的偏导数不能同时设定为0,即Fx(x,y,z),Fy(x.,y,z),Fz(x,y,z)不能同时等于0,只要点(x,y,z)满足此椭圆曲线方程,则此点必然能够找到切线。在满足方程的曲线上存在0∞(0:1:0)这一个无穷点,此点被称为加法零元。为了将一条椭圆曲线上的点和地方建立相互关联,对曲线上的点定义加法规则以及倍点规则,使得曲线上的点之间进行运算。圆曲线不同点的加法规则:设P1=(x1,y1)∈E(Fp)\{0},P2=(x2,y2)∈E(Fp)\{0},且x1≠x2,假如P1=(x1,y1)=P1+P2,则x3x3=λ2-x1-x2(2.5)y(2.5)y3=λ(x1-x3)-y1椭圆曲线不同点的倍点规则:设P1=(x1,y1)∈E(Fp)\{0},且y1≠0,P3=(x3,y3)=P1+P1,x3x3=λ2-2x1(2.6(2.6)y3=λ(x1-x3)-y12.2.2SM2算法的整体功能SM2公钥算法的功能模块涵盖了密钥协商、密钥生成、加解密、签名与验签、密钥验证这几块,BN_大整数设为私钥,EC_Point椭圆曲线上的点作为公钥的基点,本设计使用到的功能为算法的加解密以及数字签名与验签算法。SM2算法的功能运算框架如图2.2所示。图2.2SM2算法的功能框架图2.2.3SM2算法的加密流程根据对国密算法SM2的各种研究表明:在公钥密码算法方面,公钥算法SM2的安全级别已经属于现在的最高安全级别,相比于同类椭圆曲线密码的国际标准算法,此算法的实现效率是略高的。采用公钥算法SM2对数据进行加密:将通信系统需要传输的数据用比特串N表示,kl设为N的比特长度,SM2加密流程图如图2.3所示。图2.3SM2加密流程图2.2.4SM2算法的解密流程基于图2.3,用户通过执行下面的运算步骤实现算法SM2对通信数据的加密:1.选择随机数的发生器来产生随机数k,k∈[1,n-1];2.任意选一条椭圆曲线,并在椭圆曲线任取上一点G=(x,G,yG),将此点作为计算的基点,n表示为基点G的阶;3.依据随机数和椭圆曲线上的基点,通过计算得出椭圆曲线上的点C1=[k]G=(x1,y1),并将C1转换成比特串类型;4.计算S=[h]PB,其中PB为算法的公钥,若结果S是椭(0:1:0),算法显示错误信息并终止计算,否则算法将执行下一步;5.计算椭圆曲线点[k]=(x2,y2),并将它转换成比特串类型;6.通过上述提到的KDF,计算t=KDF(x2||y2,kl),若t比特串全为0,则返回第一步;7.计算C2=M⨁t;8.计算C3=Hash(x2||M||y2),Hash为哈希算法;9.计算出密文C=C1||C2||C3。公钥算法SM2对密文的解密:将密文C2的比特长度设为kl,接收文件者对密文C=C1||C2||C3进行解密,SM2解密流程如图2.4所示。图2.4SM2解密流程图基于图2.4,用户通过SM2算法对通信密文解密的具体步骤如下:1)从收到的加密结果中提取比特串C1,将转换后C1进行验证,检查其是否符合算法的椭圆曲线方程式,假如符合将执行算法的下一步,否则算法显示错误信息并终止计算;2)计算椭圆曲线方程点S=[h]C1,若结果S为0∞点算法显示错误信息并终止计算,否则将执行算法的下一步;3)计算[dB]C1=(x2,y2),将此结果转换成比特串数据类型;4)计算t=KDF(x2||y2,kl),当t是全比特为0的数组,就会显示错误并退出;5)从C中提取比特串C2,求出M′=C2⊕t;6)计算u=Hash(x2||M’||y2),若u=C3,则解密成功,否则退出;7)输出解密后的明文M′。第三章使用相关技术3.1Socket通信3.1.1Socket通信流程1:服务器可以根据地址(ipv4,ipv6)、socket的类型、协议(TCP,UDP)来创建Socket。2:服务器绑定的ip地址和端口号。3:终端服务器口号Socket随时监听主机终端服务口号的关机请求,随时都要做好关机准备以便主机接收端得到由主机客户端所发送去的自动连接,这时候终端服务器的口号Socket并没有被自动连接打开。4:在客户端中创建Socket。5:在一个客户端中只要打开一个Socket,根据整个服务器的值为ip的地址及它的端口号即可尝试将整个服务器的值为Socket。6:此时当一个服务器端的socket终端接受到相应客户端发送Socket的网络请求,被动地址未打开,就可能会主动启用它终端来主动接收相应客户端的网络请求,直到此时服务器从接收客户端请求恢复并且再次主动返回请求相应的网络连接地址信息。这时候比如Socket就有机会自动进入一种关于阻塞的处理状态,所谓的这种阻塞状态即就是accept()的处理方法一直必须要到指向客户端成功发出并且终端返回了第一条指向连接的请求信息后才有机会自动开始对终端接受的下一个指向客户端的一条连接信息请求进行客户端接入成功后,将会向服务器提供连接状态的信息。7:客户端连接成功,向服务器发送连接状态信息。8:服务器accept()方法返回,连接成功。9:客户端向Socket写入信息。10:服务器读取信息。11:客户端关闭。12:服务器端关闭。图3.1socket通信流程3.1.2Socket建立连接实质服务器Socket与网络客户端Socket之间搭建连接的本质上也就是三次握手。第一次同步握手:主机客户端再次尝试通过无线网络连接主机服务器,向连接服务器发送一个syn数据包(一个用于进行同步的主机序列号代码及其编号称为synchronizesequencenumbers),syn=j,客户端再次尝试进入一个syn_send的同步状态下并等待连接服务器的同步确认。第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:就是当通信客户端手机接收通信服务器的即esyn+ack确认信号后发包,向通信服务器手机发出一个自动确认信号包后即ack(ack=k+1),此确认包在操作系统中一旦发送操作完毕,客户端和手机服务器就可能会同时进入一次established握手状态,完成三次自动交流式手机握手。图3.2三次握手3.2JAVASOCKET通信JavaSocket通信在Java语言中是一个使用很广泛的工具,下面我们就来仔细的学习下有关的方法。这对大家在以后的使用中有所帮助,只有不断的学习才能更好的使用。所谓的有JavaSocket的网络通信通常也就是可以用来叫做"套接字",用来直接描述一个有ip的地址和一个终端,是一个网络通信链的一个语言句柄。应用程序一般可能会选择通过"套接字"给一个网络用户提交服务请求或者网络回应其在网络上的要求。首先来说Socket数据通信主要指的是基TCP/IP的网络层上的一种新型数据信息传送通信方式,我们普遍将TCP和UDP分别被统称为数据传输层。图3.3七层模型如图3.3,在七个不同层次的通信关系中,Socket属于传输层,其中的UDP是一种分别面向有和无网络连接的面向传输层通信协议。UDP并没有必要关心一个对端本身能否真的能够接收并看到或者传送对端过去的任何数据。如果我们现在需要从分组网络中开始检查一个相同的对端之间是否相互接收封包到相同的一个分组网络数据库封包,或者需要检查一个对端与另一个分组网络之间连接是否相互连接,那么就必须在一个应用程序中这样进行。UDP常见于视频分组大量视频数据少或多播、广播网络通信和有线视频网络通信等各类型的多媒体通信技术应用领域。在这里我们并没有就此做出详细的技术讨论,这里主要给大家详细讲解什么网络是基于TCP/IP协议下的Socket网络通信。Socket主要功能是基于一个新的应用服务和一个TCP/IP两个协议之间的数据抽象,他将一个TCP/IP两个协议里面复杂的应用数据和各种通信处理逻辑集合起来一并进行了数据分装,对于普通用户而言,只要只是使用一组简单的组件api就已经完全可以直接用来实现整个应用网络的数据连接。JavaSocket这是无线通信系统软件开发的一个基本原理:为了保护服务器,使用一个ServerSocket端口来任意监听一个客户连接指定的一个端口,端口也同样可以任意地进行指定(因为1024以下的指定端口一般都认为是端口属于被客户保留的指定端口,在一些大的操作系统中不一定能够任意地指定使用,所以一般我们建议用的是端口使用量不要大于1024的端口),等待一个客户业务连接完成请求,客户连接进行业务连接后,会话的请求产生;在连接完成客户会话之后,关闭了客户连接。客户端,使用一个JavaSocket请求进行连接通信对象向互联网上某一个网络服务器的某一个网络终端端口发出一个工作连接的通信请求,一旦这个客户端请求连接成功,打开一个连接会话;会话中的工作连接完成后,关闭它的Socket。客户端不必再根据自己的实际需要而再去手动指定已经给它打开的哪个端口,通常也只是临时、动态不断地给它分配一个1024以上的多个端口。第四章通信加密系统的软件设计4.1软件系统整体设计系统的软件部分包括对通信系统产生的数据进行秘密传输以及对数据接收者身份的认定。当通信系统之间需要进行通信时,发送者需要先通过接口加密板的随机数电路产生两组随机数,分别作为发送方的SM2私钥以及SM4的对称密钥,接着采用SM4算法的私钥对通信系统将要发送的信息实行加密生成通信密文,并采用SM3摘要算法对通信密文进行计算得到密文摘要,且通信系统的发送者采用SM2算法私钥对通信密文摘要完成加密从而实现对数据的数字签名,将通信系统发送者的SM4加密私钥以及摘要的数字签名信息打包并采用通信系统接收者的SM2公钥对此信息加密生成签名密文,将签名密文和通信密文一起发送给通信系统的接收主机。通信系统发送者的加密方案如图4.1。图4.1发送端的加密方案接收方(主机B)在发送方通信系统接收到发送方已经寄来的通信密文和发送方签名的密文后,采用通信系统中接受方SM2私钥将发送方签名的密文发送给了主机,结果文件包括算法SM4的私钥以及通信密文的摘要文件,通信系统接收者采用发送者的SM2公钥对通信系统的签名文件进行签名验证,签名不通过发出警告,如果数字签名验证通过表示发送者身份可靠,通过验证之后得到摘要文件,同时对通信密文采用杂凑算法SM3从密文中得出摘要,将密文生成的摘要与SM2验签后的摘要进行对比,判断两者是否相同,可以通过比较结果判断出通信数据是否完整,如果摘要对比不同,则表明密文被篡改发出警告,若两者对比结果没有差异,则表明通信密文在传输过程中没有被非法篡改,最后使用接收到的SM4私钥完成对通信密文的解密计算,输出的结果即为通信文件。通信系统接收方(主机B)的解密方案如图4.2所示。图4.2接收端的解密方案4.2加密通信系统的协议介绍与算法实现4.2.1国密SSL协议SSL(securesocketlayer)被称为安全加密套接字,采用的是一种加密方式为一种公开的密钥加密技术,也是常见的一种网络通信安全协议。SSL协议是作用在应用层和网络模型中TCP层之间,应用层的数据不再直接传递给传输层,而是将消息传递给SSL层,SSL协议对数据加密后并增加SSL头,再将数据传给TCP层。SSL信号握手警告协议的三个具体内容被大致化地划分而成为三个基本层次,即SSL握手记录警告协议(Recordprotocol)、SSL信号握手警告协议(Handshakeprotocol)、SSL整个信号握手警告记录协议(Alertprotocol),其中只有SSL整个信号握手记录警告协议和整个SSL信号握手警告协议正分别处于整个整个SSL握手协议中分别扮演着非常重要的两个角色,SSL协议在网络模型中的位置如图4.3所示。SSL协议主要有三方面作用:1、保密性:在使用握手协议中确认定义会话的密钥后,信息都被加密;2、鉴别功能:确保通信双方身份的真实性;3、数据的完整性:通过将MAC算法的数据计算结果与其他算法进行对比来判断信息是否在数据传输时发生了篡改,从而保证传输数据的完整性。图4.3SSL协议在网络模型中的位置SSL的记录协议属于一种基本名称为SSL的底层网络协议,当服务器与其他客户端之间成功地建立了一个连接之后,服务器与其他客户端之间就已经完成了彼此身份鉴别以及明确地交换了信息的算法之后,通过SSL的记录协议可以保证SSL网络连接的信息完整性与安全保密。SSL握手协议属于一个SSL的高级网络协议,是保证通信过程中数据安全的重要协议。通信的过程中,网络上的客户端和服务器之间可以相互进行身份验证,采用MAC等计算机方法对数据库信息的准确性进行了计算、双方进行协商加密和密钥的存储,以便保证对信息传输过程中的保密性。握手协议分为3部分:1)创建安全基础:Client和Server之间进行交流,目的是为了确定此次通信时SSL的版本号、用于产生主秘密的随机数、一个确定的会话ID、压缩与解压算法以及密码套件;2)Server的鉴别与密钥交换:Sever将验证证书发给Client,Client用公钥认证Server之后,服务器与客户端交换密钥,进行证书请求;3)Client的身份鉴别和密钥的交换:Client为了向Server验明自己的身份,将自己的个人证书以及采用公钥进行加密后的其他主机密钥分别发送到Server,Server接收之后进行证书验证;4)握手完成:Client和Server改变密码规格,并计算MD5散列+SHA散列值。SSL警报协议主要针对SSL协议的服务器与客户机之间产生故障的情况,当有一方发生故障时,就会将故障的警报信息发送给对方。将警告信息分为致命的错误和警告信息两种,通过确定报警信息的第一个字节来确定报警的类型。第一个字节位置为1时,表示是否为预警;第一个字节设置为2时,表示是一种致命型的输入错误,接收到此警报之后服务器与客户端立刻中断SSL连接,将发生错误之前的所有会话ID、密钥以及传输数据都删除,确保此次数据传输的安全性。在进行通信数据的传输过程中,SSL协议通过SSL记录协议确认双方的身份之后,通过握手协议实现对通信信息的保密作用,警报协议主要用于报告数据传输过程中产生的错误。4.2.2GMSSLOpenSSL是开放式安全套接层协议,对SSL协议中绝大多数的算法协议进行了实现,包含非常丰富的密码算法库。迄今为止,OpenSSL被认为是最常应用的SSL协议工具,但是OpenSSL并没有对国密算法SM2、SM3、SM4进行封装,本设计将OpenSSL与GmSSL工具结合使用,GmSSL是对OpenSSL的国密算法扩展,并与OpenSSL的接口兼容,使得国密算法在此系统中更好的运行。GmSSL工具对OpenSSL以及国密算法进行了详细的扩展,补充了对算法CPK、ECIES、ZUC以及对国密算法SM4、SM3、SM2的支持。此应用的主要特性:密码支持SM2/SM3/SM4/SM9/ZUC等全部公开的国密密码算法;支持国密SM2双证书SSL套件和国密SM9标识密码套件;高效实现在主流处理器上可完成4.5万次SM2签名;可以支持各种动态密码接入应用带有SKF/SDF等等接口的软硬件和应用密码管理模块;具有门限签名、秘密数据共享及黑色白盒密码的高级安全功能;6)支持Java、Go、PHP等多语言接口绑定和REST服务接口;4.3通信加密算法的实现本设计通信系统的硬件平台在接口加密卡上进行了软件设计,主要包括卡内固件和设备的驱动程序。该通信系统的软件所使用的环境是中标麒麟操作系统,板卡驱动程序支持宿主机的安装与卸载,通过在一个太久时间内将国密算法SM2应用于硬件板通信的全过程,实现此种通信系统中的信息传递与处理的安全性,除此之外,系统还可以支持上层应用系统与加密卡相连接的硬件设备缓存区之间对数据进行透明化的传输,确保对于应用程序中的任何一个数据架构都进行了截获与分析,确保数据结构的安全传输。算法SM2签名与验签实现数字签名算法主要是发送方将要向接收方发送的数据进行数字签名,并由发送方验证其签名的准确性和可靠度。此平台主要用于两个主机之间通信时,对发送者的身份进行验证。主机A作为发送方即签名者,主机B作为接收方即验证签名者。设置密钥参数模块:采用ECKEY=EC_KEY_new()语句创建一个新的ECDAS秘钥内存,EC_KEY_set_group(ECKEY,group)==0)用来设置秘钥参数,并判断参数是否设置成功,ECKE通过EC_KEY_generate_key(ECKEY)生成秘钥,并通过EC_KEY_check_key(ECKEY)函数检测秘钥生成是否正确。算法的签名模块:采用Signature=OPENSSL_malloc(sig_lenth)语句,构建一个签名存储内存,其中sig_lenth是由ECDSA_size(ECKEY)函数获取

温馨提示

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

最新文档

评论

0/150

提交评论