加密安全服务(精选7篇)
加密安全服务 篇1
1 前言
某省交管部门的中心数据库存储着省内各个城市的交通违章记录数据,交管部门通过公布Web服务,供其下属城市进行访问,进一步构建各类应用程序。出于对Web服务调用过程中数据安全性的考虑,需要对Web服务的安全性进行研究。
2 Web服务
Web服务本质上就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,使得开发人员能够实现应用程序的互操作,并且是跨编程语言和操作平台的。在开发和调用Web服务时,主要涉及到几个关键的协议和技术:XML、SOAP、WSDL、UDDI。
3 XML加密
本系统所使用的XML加密(XML Encryption)方式是W3C制定的标准。加密后,不会破坏原有的XML文档格式,只是相关内容会被密文替换。
XML加密主要有三种:加密XML文件、加密对XML元素以及加密XML内容。本文将主要讨论对XML的元素进行加密的方式来实现Web服务的安全性。
3.1 对XML的元素进行加密
3.1.1 Encrypted Data元素
对XML元素实现加密是借助Encrypted Data元素完成的。该元素的层次结构如图1所示。
图中Encrypted Data元素是被加密对象的根元素。其子元素Encryption Method中描述具体点加密方法。子元素Key Info中存放对称密钥,Key Info元素的子元素Encrypted Key存放被保存的密钥的信息。要加密的数据包含在Cipher Data元素的子元素Cipher Value中。
3.1.2 对XML元素进行加密
对XML元素进行加密的步骤。
1)从原文档中使用xpath找到要加密的元素。
2)对该元素的内容使用keyinfo中的对称密钥和Encryption Method中的加密方法进行加密。
3)对上一步中的对称密钥使用公开密钥进行加密。
4)将加密后的数据以及加密后的对称密钥保存在Encrypted Data元素中。
5)将要加密的元素替换为Encrypted Data元素。具体加密流程如图2所示。
3.1.3 对XML元素进行解密
对XML元素进行加密的步骤。
1)在加密后的XML文档中找到元素Encrypted Data。
2)通过公开密钥解密对称密钥。
3)通过解密后的对称密钥对数据进行解密。
4)将解密后的元素替换掉Encrypted Data元素。
4 具体实现
4.1 实现思路
以下为请求一个Web服务操作后返回的XML文本内容:
其中fkje表示罚款金额,dsr表示违法人,hphm表示号牌号码。
如果想要将XML文件中的
4.2 核心代码
4.2.1 加密
1)加载要加密的surveil.xm文档,并选择要加密的hphm元素:
2)设置秘钥名称以及与rsa算法的映射关系:
3)使用第2步映射表中定义的密钥hphm元素进行加密:
4)使用Encrypted Data元素替代hphm元素:
4.2.2 解密
1)加载已被加密过的surveil.xm文档:
2)设置秘钥名称以及与rsa算法的映射关系:
3)对文档中的Encrypted Data元素进行解密,并得到解密后的XML文档内容:
4.2.3 运行结果
通过解密,在客户端可以得到解密后的XML字符串,然后即可通过相应的XML操作实现对相应违法内容的查询并通过界面进行显示。在图3中输入车辆识别代号,然后点击查询,此时通过调用相关Web服务方法并解密返回的XML元素内容得到违法详细信息。在图4中对所查车辆的违法信息进行显示。
5 结束语
本文通过对XML元素进行加密的方式保证了Web服务的安全性。下一步可对加密算法进行进一步的研究。
摘要:Web服务使开发人员能够建立一种面向服务的、平台无关的、分布式的应用程序架构,另一方面Web服务使用XML在网络中进行数据交换,如何提高Web服务的安全性则成为需要解决的关键问题。本文论述了基于对XML文件中的元素进行加密的策略,从而保证了Web服务安全性。
关键词:Web服务,加密,XML
参考文献
[1]李霞.一种Web服务通信安全的优化方案[J].计算机科学.2012,39(8):59-61.
[2]贺正求.Web服务安全问题研究[J].计算机科学.2010,37(8):32-39.
[3]魏为民,袁仲雄.网络攻击与防御技术的研究与实践[J].信息网络安全,2012,(12):53-56.
加密安全服务 篇2
Web服务[1]技术已成为新一代计算技术的导向,在电子商务、系统集成等多个领域发挥着日益重要的作业。然而作为一种新兴技术,Web服务面临着许多挑战。Web服务同CORBA、COM+、RMI这些分布式对象系统相比,在安全、事务处理能力、可管理能力等方面有所欠缺,尤其安全问题亟待解决[2]。
考察现有的一些安全技术[3],1)防火墙:当用户想要把访问限定在一个专用网络中的计算机上时,则可以使用防火墙技术,在一定程度上限制Web服务应用范围;2)SSL(Secure Sockets Layer,安全套接字层):虽然SSL可以有效的建立安全的通信,但是它会对性能造成很大的影响。3)VPN(Virtual Private Networks,虚拟专用网络):VPN可在共享的或公共的网络中建立一个专用的网络环境,是一种端到端的连接,但需要花费较长的时间建立连接。4)基本身份验证:使用明文(采用Base64编码)直接传送用户名和密码,任何人都可以查看其内容,不太安全。5)SSL上的基本身份验证:这种方式在安全的SSL连接中传送用户名和密码,杜绝了密码被截获和破解的危险,它是安全的。但不足在于使用SSL会降低性能。6)摘要式身份验证:增强了网络发送用户凭据的安全性。但是它依赖于HTTPI.1协议,并不是被所有的浏览器支持。7)集成Windows身份验证:这种方式是安全的。但它要求用户和Web服务器都在同一个域中。8)客户证书方式:这种方式使用SSL来传送客户证书,它需要每一个客户都具有一个证书。由于使用SSL,所以会对性能造成影响。
综观上述基于基础结构、认证和证书的安全技术都或多或少存在一些局限性,它们都依赖于操作系统和HTTP协议。SOAP是一种消息格式,在现实环境中可能要穿越多种不同的协议,为了保证消息只能被发送者和接收者阅读,本文在结合WS-Security[4]规范基础上,给出一种使用DES[5]和RSA[6]技术的Web服务安全策略。
1 工作原理
SOAP规范允许在SOAP消息的头消息之中传输SOAP消息的元数据。根据这一特性,结合WS-Security规范,给出本文基于加密技术的Web服务安全方法的原理。
具体原理是:在客户应用端随机产生DES密钥,在它与Web服务端之间传递的需加密的信息,用DES进行加密和解密;在Web服务端随机产生RSA密钥对,用公钥来加密DES密码,以便在Web服务端获取客户应用端的DES密码;通过定义包含Web服务端RSA公钥、用RSA加密的客户应用端DES密码和需要加密的信息的SOAP头数据结构(类),在Web服务端和客户应用端之间传递SAOP头对象,实现信息安全传递过程的目的。
2 Web服务安全模型
根据上述原理,本文给出了一种基于加密技术的Web服务安全模型,如图1所示。
当客户应用需使用Web服务时,首先随机产生DES密码,其次,从Web服务端获取SOAP头对象(在每次获取SOAP头对象时,Web服务端都会随机产生一对RSA密钥对),用SAOP头对象中RSA公钥加密DES密钥,用DES密钥加密需加密信息,并把这些加密信息存入SOAP头对象中,再次,把SOAP头对象传递到Web服务应用端,用RSA私钥解密SOAP中已加密DES密钥,这样,就可以在Web服务应用端用DES密钥解密客户应用传递加密的信息和加密需传递给客户应用的信息。
3 安全策略实证
为了验证本文给出的安全策略,我们设计一个示例。即从客户应用端传一个数据,通过DES加密后传递到Web服务端,在Web服务端用DES解密后,然后,再用DES加密并传递到客户应用端,在客户应用端用DES解密后与原数据比较是否一致。在这个过程中,客户应用端与Web服务端之间传递的数据和DES密钥是加密,且是一个来回一次密。我们用C#.net书写代码,用System.Security.Cryptography[5]创建DES和RSA密码,关键代码如下:
3.1 用户用户信息头类(User Info)定义
3.2 web服务端关键代码
web服务端负责随机产生RSA密钥,web服务“get User Info”,它的功能是解密DES密钥、已加密数据和用DES加密要回传给客户端的数据,关键代码如下:
3.3 客户应用端关键代码
我们在这里只演示了传递一个需加密的数据。如果读者要传递多个加密数据,只需要再扩充SOAP头的数据结构,至于解密和加密代码同上,受篇幅限制,不再赘述。
4 结束语
我们在普通PC机,Windows XP Professional操作系统,Visual Stdio2005开发环境,在IIS5.0服务器成功地运行了上述案例,验证了本文给出的安全方案是可行和有效的。
本文给出的Web服务安全方案结合了WS—Security规范,兼容性好;在客户应用与Web服务之间传递数据时,运用了混合加密方式且一次一密,安全系数很高;同时,该方案无需借用第三方组件,降低软件的开发成本。可以说本文的方案是一个有效,可行,低成本的且容易实现的方案。
参考文献
[1]Web Services[EB/OL].http://www.webservices.org/index.php/article/articleview 2010-11-12.
[2]顾宁,刘家茂,柴晓路.Web Services原理与研发实践[M],北京:机械工业出版社,2006:155-175.
[3]全立新.Web服务安全策略与技术探讨[J],广州:现代计算机,2010(9):104-107.
[4]WS-Security[EB/OL].http://www.w3.org/standards/xml/security 2010-11-21.
基于云服务的加密式门禁系统设计 篇3
随着互联网、计算机技术和电子技术的不断发展,建筑智能化越来越受到人们的关注。门禁系统作为智能建筑的重要组成部分,解决了机械式门锁存在的钥匙管理和出入登记困难等问题[1,2],得到了广泛应用。随着门禁系统的不断发展,其组成部分越来越复杂,数据量也越来越庞大。
门禁系统主要由防护主体、电锁、身份识别方式、传感报警设备、处理控制器、通讯线路和管理软件组成。普通的门禁系统是利用局域网、数据库和控制系统通过通讯线路对防护主体、门锁和身份识别进行控制。国内外研究者针对门禁系统的整体架构及其组成部分进行了各种优化研究。文献[3]设计了一套由门禁管理系统、停车场管理系统、饭堂消费系统、考勤管理系统、访客管理系统和后备电源系统组成的门禁一卡通系统,利用门禁系统中的身份识别和处理控制等设备基础,实现5个相互独立的办公场所出入和消费记录管理,在实现门禁一卡通管理的过程中,增强了网络的通信压力和服务器的存储、处理压力,因此需要提高网络设备和服务器硬件的性能,这将增加建设成本。
无线网络具有组网灵活和改造成本低等特点,为门禁系统的优化提供新的解决方案。文献[4]利用ZigBee技术设计了一套无线办公门禁系统以降低基础设施的建设投入;文献[5]使用二代身份证作为门卡,利用ZigBee技术中传感器设备进行二代身份证的信息采集和识别工作,以建立一个集授权和定位功能于一体的门禁保安系统;文献[6]为无线门禁系统设计了一种UHF RFID天线,在提高发射功率的同时减小了天线尺寸。由于无线网络的抗干扰能力较差,无线门禁系统部署方案只适合于小范围的应用场景。
身份识别是门禁系统的重要组成部分,它对使用者进行信息采集和身份判断后执行相应策略。与密码和门卡相比,生物识别技术能够解决授权信息泄露带来的安全隐患问题。文献[7]对生物识别方式中的人脸识别技术进行优化,将采集到的面部图像进行分块特征对比,提高人脸识别效率;文献[8]在人脸识别的基础上加入运动模式识别来增强门禁系统的安全性;文献[9]将传统的指纹识别与控制器局域网络(Controller Area Network,CAN)总线技术结合,为智能社区门禁管理提供新的解决方案。生物识别技术需要存储大量的用户特征信息以便于进行授权合法性判断,随着信息量的增大,服务器的存储和处理压力随之增加,企业需要投入资金不断提高服务器性能。
随着门禁需求和技术的不断发展,门禁控制系统的功能要求越来越高,需存储的信息量也越来越大,这将提高企业门禁系统的建设成本。近年来,随着云计算技术的不断发展,基于云计算对来自不同类型设备的大规模数据流进行集成、处理及服务已成为研究热点[10]。目前,大部分门禁系统基于安全性考虑,将管理服务部署在局域网内部,这不利于门禁系统服务的扩展和优化。本文提出一种基于云服务的加密式门禁系统(Cryptographic Access Control System based Cloud,CACC),利用云服务降低企业门禁系统控制成本,在云服务和门禁物理设备间加入加解密服务以提高门禁系统的安全性。
1 CACC系统设计
与传统的服务器使用方式相比,云服务具有资源分配可伸缩、服务易扩展、数据易备份等特点,已成为大数据时代下的信息基础设施,是信息化发展的重大变革和必然趋势[11]。CACC系统将加密后的数据存储在云端,将处理程序部署在云服务器中,以降低企业服务器建设成本,并提高门禁系统的可扩展性和稳定性。为保证数据在互联网传播和云端存储时的安全性,CACC系统在互联网和门禁设备局域网之间加入加解密服务,对发送至互联网的数据进行加密,对从互联网接收的数据进行解密,以提高系统的安全性。
CACC系统主要包括云服务、加解密服务器、通讯线路、传感报警设备、身份识别设备和防护门。CACC系统结构如图1所示。云服务部分主要负责数据的加密存储和数据处理,数据包括管理信息、基础信息、授权信息和用户信息等;数据处理主要负责服务请求的响应和处理结果的反馈。加解密服务器主要负责内外网交互数据的加密和解密,其具体过程如下:(1)防护门安装的身份识别设备采集到用户信息后,通过局域网发送到加解密服务器,服务器将数据和查询指令进行打包,按照内部制定的加密算法,将打包后的数据重新编码后,通过互联网发送到云服务端;(2)云服务端接收到来自加解密服务器的数据包,首先按照预先设置的算法对数据包进行解密、拆分和处理,然后将数据处理结果进行加密,通过互联网发送给加解密服务器;(3)加解密服务器收到外网传来的数据包,首先进行解密,在解密成功后,将结果发送到相应的设备上;(4)设备收到加密服务器反馈结果,执行相应程序;(5)控制人员通过互联网登陆云服务端的控制平台,可以进行门禁系统维护,维护指令首先进行加密,再通过互联网发送至加解密服务器。
为了降低数据的传输量,并提高数据传输的安全性,需要对发送的数据附加指令、设备地址和校验码等信息。只有在数据包的结构和加密都正确的情况下,才能被云服务端和加解密服务器正确解密。数据包结构如图2所示。其中“指令”部分存放系统控制指令;“数据”部分存放门禁设备采集到的数据或者云服务端数据;“设备地址”部分存放被控制的门禁设备编号或者IP地址等信息;为防止有人通过互联网恶意发送虚假指令信息或者篡改信息,需要在数据包的末尾添加校验信息,该信息通过各企业自定义算法随机生成,以保证信息的有效和安全性。
2 实现的关键点
在利用云服务降低门禁系统建设成本,提高系统运行效率和可扩展性的同时,CACC系统有两个关键问题需要解决。
(1)加解密服务器性能问题。整个CACC系统以加解密服务器作为系统数据的交换桥梁,中转来自云服务端和门禁设备的指令和数据,因此加解密服务器的效率成为整个系统效率的关键点。若加解密服务器程序或硬件性能较低,则直接影响系统的整体效率。
为了提高加解密服务器的计算速度,可以从服务器硬件层面进行考虑。若门禁设备数量为一百台左右,可以选择以4核CPU和4G内存为主的低端服务器产品。例如IBM System x3100 M4系列的小型塔台式服务器,该类服务器价格便宜,但扩展性差,不适合有门禁系统扩充需要的单位使用。若门禁设备数量为数百台,可以选择以6核CPU和16G内存为主的机架式服务器,例如戴尔PowerEdge 12GR720系列,该类服务器价格相对昂贵,但数据处理速度快、数据安全性高,且硬件可扩展性强。
为了加解密服务器的安全性,可以从操作系统和加解密算法设计方面考虑。在操作系统方面,可以选择Unix操作系统。Unix操作系统是通信、金融和安保等行业广泛使用的操作系统[12],具有可靠性高、伸缩性强、开放性好和网络功能强等特点,其主要在账号、网络和文件系统3个方面很好地防范未授权用户的非法登陆和操作。基于Unix操作系统的开放性,可以对系统内核加以改造,更好地防范来自网络的威胁。在加解密程序设计方面,可以考虑选择算法强度复杂的非对称加密算法,利用公有秘钥和私有密钥的特性来确保加密数据在网络传播中的安全性。
(2)云服务端安全性问题。CACC系统的云服务端数据处理程序的安全性和效率问题是影响系统整体性能的另一个关键点。在云服务端接收到来自加解密服务器的数据包后,需对其进行解密,如何保证解密程序不被恶意监听,解密过程不被恶意篡改,成为影响整个系统安全性的关键问题。公共云服务平台大多是多个客户共享一个服务提供商的系统资源,这一特性会导致供应商只能为客户提供基础的操作审核机制,无法针对云服务器中的虚拟操作系统漏洞加以防范。虚拟操作系统中的漏洞问题很难通过安装防御软件彻底解决。为了尽可能提高云服务端的操作系统安全性,可以考虑安装Unix操作系统,通过系统底层的内核修改来进行安全防范。此外,还可以在数据处理程序中加入安全机制校验过程,对每一次的数据服务器请求都进行合法性判断。
3 结语
针对门禁系统数据存储和处理成本不断加大的问题,本文提出一种基于云服务的加密式门禁系统(Cryptographic Access Control System based Cloud,CACC)。该系统利用云服务技术降低企业门禁系统信息存储和维护成本,在云服务和门禁物理设备间加入加解密服务以提高门禁系统的安全性。用户通过互联网进入云服务端控制平台,可以查询门禁系统运行记录、设备状态信息,或者维护门禁系统中的权限、人员和设备状态等信息。CACC系统利用简单的设备和结构,可以在不考虑信息存储压力的情况下进行各类数据监控和各类数据采集,再利用加解密服务器作为门禁系统的中转站,为系统建立一道有效的、可维护的防火墙,为门禁系统的发展提供一种有意义的建设方案。
参考文献
[1]韩东,宋建锋,黄学慧.门禁系统的安全性设计在办公型建筑中的应用[J].智能建筑,2007(12):38-39.
[2]高小明.办公楼群网络门禁管理系统的设计[J].计算机光盘软件与应用,2013(21):279-280.
[3]朝日.办公场所门禁一卡通系统研究——以惠州供电局为例[J].现代商贸工业,2008(13):275-276.
[4]韩立峰.基于zigbee的无线办公门禁系统研究与应用[J].山东工业技术,2015(22):152.
[5]XIZHI LI,YU ZHOU,CHANGSHENG AI,et al.Smart entrance guard control based on RFID card and ZigBee authorization[C].2014Sixth International Conference on Measuring Technology and Mechatronics Automation(ICMTMA),2014:589-592.
[6]JIN PAN,SHUBO WEN.A novel miniaturized antenna for RFID application in the Entrance Guard's System[C].Microwave Conference,APMC 2009,2009:2398-2400.
[7]LANG LIYING,HONG YUE.The study of entrance guard&check on work attendance system based on face recognition[J].Computer Science and Information Technology,ICCSIT'08.International,2008:44-47.
[8]LONG XIAO,BO CHENG,BO YANG,et al.A context-aware entrance guard in smart home:an event-driven application based on the human motion and face recognition[C].Automation,Robotics and Applications(ICARA),2011 5th International Conference,2011:184-189.
[9]CHEN WEILI,WEI LIMING.Design of network entrance guard system based on fingerprint recognition technology[J].World Automation Congress(WAC),2011:1-4.
[10]王桂玲,韩燕波,张仲妹,等.基于云计算的流数据集成与服务[J].计算机学报,2015,38(110):1-20.
[11]卢川英.云计算优势及应用研究[J].价值工程,2016(3):188-189.
加密安全服务 篇4
网络的迅速发展,给我们的工作和学习生活带来了巨大的改变。我们通过网络获得信息,共享资源,开阔视野,及时了解时事新闻,获取各种最新的知识和信息;Internet 是开放信息系统,必然存在众多潜在的安全问题。安全技术作为一个独特的领域越来越受到全球网络建设者的关注。然而,在使用了现有的安全工具和机制的情况下,网络的安全仍然存在很大问题。
刀片加密服务器就是针对这一问题的一个解决方案。利用加密服务器建立的安全公用信息平台,将能逐步改变企业传统的建网观念,使企业由独立建网逐步转变为租用公网,计算机网络将真正走向公用化。在利用加密服务器建立的公用信息平台中,数据信息只有授权用户通过证书认证后,经过安全通道才可以看到明文。而非授权用户无论通过什么途径都得不到任何有效信息,从而保障了信息传输和信息存储的安全性。同时不改变用户的使用习惯,不影响数据库的结构,对于合法用户保持透明。
刀片加密服务器是一种新型服务器,它与传统服务器的不同之处:一是它实现了在操作系统层面上的数据加解密技术,用户不需要通过编写应用程序来实现数据的加解密;二是采用了基于安全证书的网络全过程的安全措施,数字签名、签名验证、SSL和SSH技术的采用可保证用户能够安全有效地在远端控制刀片加密服务器,并同时实现了数据传输、数据存储的加解密。三、由于企业由建网改为租网,可以降低企业的硬件和人力资源的投入。
1 刀片加密服务器设计的基本原则
刀片加密服务器设计的基本原则是:一、在公用信息平台中的数据信息,只有授权用户通过证书认证后,经过安全通道才可以看到明文,而非授权用户无论通过什么途径都得不到任何有效信息;二、保障信息传输和信息存储的安全性,同时不改变用户的使用习惯,不影响数据库的结构,对于合法用户应保持透明。三是加密服务器不需要用户专门编写程序,大大方便了用户。刀片加密服务器网络的原理图如图1所示。
刀片加密服务器具有技术先进性、设计安全性和性能可靠性,因此,加密服务器能够为IDC(Internet Data Center互联网数据中心)、ASP建立安全公用信息平台,能够提供安全技术基础,同时还可广泛用于政府机关、银行、证券等涉及敏感信息的单位。有了安全保障,国内网络资源将得到充分的利用,并将减少大量的重复建设,用户将彻底摆脱网络维护、软硬件不断升级而带来的烦恼。以零成本建网,以低成本租网,极大地推动广大中小企业的信息化进程,公用信息平台将形成规模化和产业化,同时也将给广大用户提供更高质量的服务。
2 加密卡的设计原理
本加密卡基于DSP芯片TMS320C6205对各种加密芯片的控制,完成各种加密算法。整个系统的框架如图2所示,
该加密卡做成一块PCI插卡,主要由定点DSP芯片TMS320C6205、RSA算法芯片SSX04、对称算法芯片SSP02-A、密钥生成芯片WNG-5、W78LE51和可编程逻辑器件XC9536XL等组成。加密卡上电后,计算机主机通过DSP芯片的PCI接口模块初始化DSP,并下载DSP的运行代码开始启动。在DSP内部的数据存储区分配一端可供DSP处理器和主机共同访问。
2.1 MPU
加密卡中的MPU采用TMS320C6205,用于控制RSA协处理器芯片、密钥生成芯片、对称算法芯片、服务器私钥保护模块的工作等。
在设计中,我们对Motorola 公司的PowerPC产品MPC855t和TI公司的产品TMS320C6205进行了比较, Motorola 公司的PowerPC产品MPC855t是一款嵌入式CPU产品,功能大而全,主频为80M,需要外接内存及PCI桥如PLX9052,但是价格很高。为了降低成本,在设计中我们采用了TI公司的高性能DSP产品TMS320C6205,由于该芯片功能单一,因而价格较低。该芯片功耗低、运算速度快(1600 MIPS,200M时钟),且有内置程序存储器、数据存储器,带PCI接口,从而可以简化加密卡的设计。另外,该芯片还具有在线加载程序功能,完全可以满足我们的应用需求。
TMS320C6205是TI公司发布的一款定点DSP芯片,属于TMS320C6200系列。该系列芯片采用VLIW 体系结构,提供了极高速的处理能力和强大的对外接口能力,主要用于视频、多通道无线通信、有线通信等领域进行高速数字信号处理和数值运算。同时,TI提供了强大的开发工具与测试平台,大大缩短了该系列芯片的开发周期。
2.2 算法芯片
算法芯片包括RSA算法芯片SSX04、对称算法芯片SSP02-A和密钥生成芯片WNG-5,均采用国密办提供的有关芯片。
2.2.1 SSX04特性
模长、幂长和操作数的长度均可选,模长可选为32~1024位(模值必须为奇数),幂长可选为2~1024位,操作数长度可选为1~1024位。RSA算法芯片SSX04的主要特点:
大数模幂运算;大数模乘运算;模长、幂长和操作数的长度可选;采用16位双向I/O接口总线D[15:0],可工作于8位/16位总线模式,地址/数据总线复用。
外部主机与SSX04通讯流程为:先通过总线端口(地址总线)寻址到SSX04其中的一个内部寄存器,再通过总线端口(数据总线)向此寄存器写入或读出数据。数据写入SSX04时,若不足8位(8位数据总线)或16位(16位数据总线),将高位补零。
SSP02——A算法芯片是一种商用加/脱密芯片。它采用分组密码算法体制,支持的分组长度为128比特。本芯片可工作于数据总线结构为32位的数字系统中,为用户提供标准的密码算法模块,也为用户提供有分割要求的密码算法模块。本芯片兼有数据完整性验证功能,可在数据加/脱密的同时自动生成杂凑值,完成数据完整性与正确性验证。本芯片采用反熔丝结构的FPGA芯片实现,封装形式为标准PQFP208。
2.2.2 SSP02——A算法芯片特性
标准PQFP208;工作电压5v/2.5v或3.3/2.5v;采用32位数据总线;仅需要两根地址线即可控制;使用8MHz外部时钟时,片内加/脱密速度超过50Mbps;与用户处理器之间的连接少,控制方式简单;可工作于中断或查询方式;采用反熔丝技术,难以破读。
2.3 服务器私钥保护模块
服务器私钥保护模块由51单片机构成,其中固化有用于保护服务器私钥的密钥。服务器中存储的密钥采用密存方式,所用保护密钥保存在加密卡中的“服务器私钥保护模块”中,“服务器私钥保护模块”由W78LE51P单片机实现。为了确保服务器私钥的安全,应使保护密钥的使用只在加密卡中,并且在51单片机芯片被窃取的情况下密钥也不能被读出。为此,我们采取了以下两方面的措施:
生产时将单片机程序和保护密钥(生产时生成,每一块板卡一个密钥)烧录到单片机的ROM中,然后将单片机的烧录控制位烧断(单片机及烧录软件提供的功能),这样,算法和密钥就被固化到单片机的ROM中,并且不能读出。
为了确保单片机中的程序和密钥的安全性,我们还采取了将单片机的数据端口(P0口)高压熔断的方法,使其失去功能。在这种状态下,即使51单片机芯片被窃取,其中的密钥数据既不能被读出也不能被更改。
2.4 电源与复位
在加密卡中DSP TMS320C6205需要1.5v和3.3v,RSA算法芯片SSX04、对称算法芯片SSP02-A需要2.5v的电源。我们采用TI公司为DSP芯片设计的电源管理芯片TPS70302提供3.3V和1.5V(U2)两种电压输出,并具有上电复位信号。采用AMS1505提供2.5V(U1),供给SSX04和SSP02-A。电路图如图3所示:
3 小结
本文主要介绍了基于刀片加密服务器的加密卡的设计与研究,通过加密卡使原来的服务器的安全性、可靠性有了保障,使保密的强度得到加强,但用户使用加解密操作完全不会影响用户原来的工作与速度。该加密卡稍微改进后同样可以应用于其他的系统中。
参考文献
[1]马琳茹,基于Linux平台加密服务器设计与实现,硕士,中国人民解放军国防科学技术大学,2002年.
[2]王刚,网络磁盘阵列结构和数据布局研究;博士;南开大学;2002.
[3]William Stallings著杨明等译,密码编码学与网络安全的原理与实践(第二版),电子工业出版社,2001年.
加密技术下的信息安全 篇5
以互联网为代表的全球信息化浪潮日益深刻, 信息网络技术的应用正日益普及和广泛, 应用层次正在深入, 应用领域从传统的小型业务系统逐渐向大型、关键业务系统扩展。伴随网络的普及以及信息的重要性, 安全问题日益成为影响政府, 企业及个人战略的重要问题, 而互联网所具有的开放性、国际性和自由性增加应用自由度的同时, 对信息安全提出了更高的要求。如最近备受关注的“棱镜门”事件, 就揭露了信息安全的严峻形势, 如何保证机密信息不受黑客和工业间谍的入侵, 已成为政府、企业单位信息化健康发展所要考虑的重要议题。
1 信息安全和加密技术概述
1.1 何谓信息安全
信息安全 (Security of Information Carrier) 一般是指信息在通信、存贮或处理过程中是否得到妥善的、完好无损的保护, 表现在信息不能被窃取、丢失、修改、错误投递等, 并可以追溯发信人。
“信息安全”要求信息网络或系统在承载信息时, 要确保它本身的安全。因此, “信息安全”是信息网络、信息系统的责任和义务。为保证通信过程信息的安全, 通常采用身份鉴别和数据加密的措施。为了保证存贮的安全性, 也采用身份鉴别访问、加密存贮、文件备份等措施。为了保证传输过程的安全, 采用校验、纠错、编码等措施。
1.2 何谓加密
说到“加密”, 实际上包括如下几个基本术语:
(1) 密码学——制作和破解“秘密代码”的技艺和科学。
(2) 加密 (加密系统) ——“秘密代码”的制作过程。
(3) 密码分析——“秘密代码”的破解过程。
(4) 加密——根据情况不同, 这个词语可以看成上述所有术语 (甚至还有诸如此类的更多说法和词汇) 中任何一个的同义词, 具体场合的精确含义应该根据上下文来判定清楚。
密码学所采用的加密方法通常是用一定的数学计算操作来改变原始信息。用某种方法伪装消息并隐藏它的内容, 称作加密 (Encryption) 。待加密的消息称作明文 (Plaintext) , 所有明文的集合称为明文空间;被加密以后的消息称为密文 (Ciphertext) , 所有密文的集合称为密文空间。而把密文转变成明文的过程, 称为解密 (Decryption) 。加密体制中的加密运算是由一个算法类组成的, 这些算法类的不同运算可用不同的参数表示, 不同的参数分别代表不同的算法, 这些参数称作密钥, 密钥空间是所有密钥的集合。密钥空间与相应的加密运算结构 (包括明文和密文的结构特征) 构成一个密码体制。
任何一个密码系统都包含明文空间、密文空间、密钥空间和算法。密码系统的两个基本单元是算法和密钥。如果所示, 在最简单的黑盒加密示意图 (图1) 中:发送方用加密密钥, 通过加密设备或算法, 将信息加密后发送出去。接收方在收到密文后, 用解密密钥将密文解密, 恢复为明文。如果传输中有人窃取, 他只能得到无法理解的密文, 从而对信息起到保密作用。
对于理想的密码系统, 要能够确保:在没有密钥的情况下, 想从密文恢复出明文是不可能的。这是加密系统的目标, 虽然现实往往并非能够如愿以偿。密码学的基本原则之一是:密码系统的内部工作原理对于攻击者, 是完全可见的, 唯一的秘密就是密钥 (也被称为Kerckhoffs原则) 。事实上, 如果你的安全依赖于秘密设计的系统, 那么至少会有下面几个问题。首先, 即使可以保密, 所谓“秘密”加密系统的细节也极少会长期保持机密性。逆向工程可能会被用于从软件恢复出算法实现, 而且, 即使算法嵌入到所谓的防篡改硬件中, 有时也仍然会遭受逆向工程攻击, 进而被泄露。其次, 更加令人担忧的是这样一个事实:当算法本身一旦暴露在公众明察秋毫的视野之下, 秘密的加密算法和系统将不再有任何安全性可言, 而这样的例子由来已久, 层出不穷。
2 现代经典加密技术
2.1 几个经典的传统加密技术
2.1.1 代码加密
发送秘密消息的最简单做法, 就是使用通信双方预先设定的一组代码。代码可以是日常词汇、专有名词或特殊用语, 但都有一个预先指定的确切含义。它简单而有效, 得到广泛的应用。例如:
代码简单好用, 但只能传送一组预先约定的信息。当然, 可以将所有的语意单元 (如每个单词) 编排成代码簿, 加密任何语句只要查代码表即可。不重复使用的代码是很安全的。但是, 代码经过多次反复使用, 窃密者会逐渐明白它们的意义, 代码就逐渐失去了原有的安全性。
2.1.2 替换加密
明文中的每个字母或每组字母被替换成另一个或一组字母。例如, 下面的一组字母对应关系就构成了一个替换加密器:
替换加密器可以用来传达任何信息, 但有时还不及代码加密安全。窃密者只要多搜集一些密文就能够发现其中的规律。
2.1.3 变位加密
代码加密和替换加密保持着明文的字符顺序, 只是将原字符替换并隐藏起来。变位加密不隐藏原明文的字符, 却将字符重新排序。例如, 加密方首先选择一个用数字表示的密钥, 写成一行, 然后把明文逐行写在数字下。按密钥中数字指示的顺序, 逐列将原文抄写下来, 就是加密后的密文:
2.1.4 一次一密乱码本加密
要既保持代码加密的可靠性, 又要保持替换加密器的灵活性, 可以采用一次一密乱码本进行加密。一次一密乱码本是一个不重复的真随机密钥字母集, 这个密钥字母集被写在几张纸上, 并被粘成一个乱码本。发送者用乱码本中的每一密钥字母加密一个明文字符。加密使用明文字符和一次一密乱码本中密钥字符的模26加法。一次一密乱码本密码体制具有以下特点:①每个密钥仅对一个消息使用一次;②密钥以随机方式产生;③密钥长度等于明文长度;④发送者和接收者必须完全同步;⑤一次一密乱码本密码体制是唯一达到理论不可破译的密码体制。
一次性密码本, 也被称为弗纳姆 (Vernam) 密码, 是一种可证明为安全的密码系统。假如我们有两个明文消息P1和P2, 我们进行加密:C1=P1⊕K和C2=P2⊕K, 也就是说, 我们有两个消息被加密, 它们是用同一个一次性密码本密钥K加密的。在密码分析行业里, 这称为depth。对于使用一次性密码本加密的in depth (有相同的depth) 的两个密文来说, 我们可以得到如下计算:
我们可以看到在这个问题当中, 密钥已经完全消失了。在这种情况下, 密文确实会供出有关背后的明文的一些信息。看待这个问题的另一个角度是考虑穷举式密钥检索。如果密码本仅使用一次, 攻击者就没有办法了解到猜测的密钥对错与否。但是如果两个消息是in depth的, 那么对于正确的密钥, 必然会有两个猜测的明文都有确定含义。这就为攻击者提供了一种途径用来区分正确的密钥和错误的密钥。密钥被重复使用的次数越多, 问题就只能变得越严重。
既然我们无法做到比可证明的安全性更好, 那么我们为什么不一直使用一次性密码本呢?遗憾的是, 该方法对于大多数应用来说很不实际。为什么会是这种情况呢?这里的一个关键问题是:需要与消息体本身等长的密码本, 因为密码本正是密钥自身, 所以必须安全地共享给消息的目标接收方, 而且应该是在密文消息被解密之前。如果我们可以安全地传送密码本, 那么为什么不简单地采用同样的方式直接传送明文消息, 而要花费大力气去做加密呢?所以, 对于现代的高数据率加密系统来说, 一次性密码本加密就完全属于不切实际的方案了。
2.2 现代信息系统加密技术
现代信息系统主要使用两种加密算法:对称密钥密码算法以及公钥密码算法。我们将主要通过讨论对称密钥算法的原理以及其中的流密码、分组密码和公钥密码算法的原理以及其中的RSA算法来理解现代加密算法和信息安全的关系。
2.2.1 对称密钥加密技术
对称密钥加密技术主要有两个分支:流密码加密和分组密码加密。在流密码中, 将明文按字符一个一个地加密;在分组密码中, 将明文分成若干个组, 每组含多个字符, 一组一组地加密。
流密码
流密码简述
在流密码中, 将明文m写成连续的符号m=m1m2…, 利用密钥流k=k1k2…中的第i个元素ki对应明文中的第i个元素mi进行加密, 若加密变换为E, 则加密后的密文为:
设与加密变换E对应的解密变换为D, 其中D满足:
则通过解密运算可译得明文为:
从而完成一次密码通信。流密码通信框图如图2所示。
密钥流生成器
在流密码中, 如果密钥流经过d个符号之后重复, 则称该流密码是周期的, 否则称之为非周期的。密钥流元素kj的产生由第j时刻流密码的内部状态sj和实际密钥k所决定, 记为kj=f (k, sj) 。加密变换Ekj与解密变换Dkj都是时变的, 其时变性由加密器或解密器中的记忆文件来保证。加密器中存储器的状态s随时间变化而变化, 这种变化可用状态转移函数fs表示。如果fs与输入的明文无关, 则密钥流kj=f (k, sj) 与明文无关, j=1, 2, …, 从而j时刻输出的密文cj=Ekj (mj) 与j时刻之前的明文也无关, 称此种流密码为同步流密码。在同步流密码中, 只要发送端和接收端有相同的实际密钥和内部状态, 就能产生相同的密钥流, 此时称发送端和接收端的密钥生成器是同步的。一旦不同步, 解密工作立即失败。如果状态转移函数fs与输入的明文符号有关, 则称该流密码为自同步流密码。目前应用最广泛的流密码是同步流密码。
一个同步流密码是否具有很高的密码强度主要取决于密钥流生成器的设计。为了设计安全的密钥流生成器, 必须在生成器中使用线性变换, 这就给生成器的理论分析工作带来了很大困难。密钥流生成器的目的是由一个短的随机密钥 (也称实际密钥或种子密钥) k生成一个长的密钥流, 用这个长的密钥流对明文加密或对密文解密, 从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。对一个密钥流生成器的一个实际的安全要求是它的不可测性, 即要求生成的密钥流具有随机性, 从而使密码分析者不可能从截获的i比特子段生成大于i比特的密码。构造密钥流生成器是流密码最核心的内容, 目前有各种各样的构造方法, 这些方法可划分为四大类:信息论方法、系统论方法、复杂度理论方法和随机化方法。根据已知的构造方法构造出来的大多数密钥流生成器已被证明是不安全的, 现在还没有被证明是不安全的少数密钥流生成器迟早也会被证明是不安全的。因为现在被认为是安全的密码, 都是基于世界上某个数学难题没有解决, 即破译密码系统的难度等价于解决世界上某个公开数学问题的难度, 一旦这个数学问题被解决, 与之同难度的密码系统就不安全了。下面介绍由两个移位寄存器组成的收缩密钥流生成器, 该构造方法属于系统论方法。
收缩密钥流生成器
在介绍收缩密钥流生成器之前, 先介绍移位寄存器。移位寄存器是密码学中最基本也是最重要的电子设备。图3是n级移位寄存器的框图。
图中n个小方框是n个寄存器, 从左到右依序叫第1级, 第2级, …, 第n级寄存器。开始时, 设第1级内容是an-1, 第2级内容是an-2, …, 第n级内容是a0, 则称这个寄存器的初始状态是 (a0, a1, …, an-1) 。当加上一个脉冲时, 每个寄存器的内容移给下一级, 第n级内容输出, 同时将各级内容送给运算器f (x0, x1, …, x n-1) , 并将运算器的结果an=f (a0, a1, …, an-1) 反馈到第一级去。这样这个移位寄存器的状态就是 (a1, a2, …, an) , 而输出是a0。不断地加脉冲, 上述n级移位寄存器的输出就是一个二元 (或q元) 序列:
在运算器中反馈函数f (x0, x1, …, x n-1) 给定的条件下, 这个序列完全由初始状态 (a0, a1, …, an-1) 完全确定。当f (x0, x1, …, xn-1) 为线性函数时, 称该移位寄存器为n级线性移位寄存器;否则为n级非线性移位寄存器。代数编码中已证明移位寄存器产生的序列都是周期序列, 周期都不大于2n。
分组密码
分组密码体系的概念
分组密码将明文按一定的位长分组, 输出也是固定长度的密文。明文组经过加密运算得到密文组。解密时密文组经过解密运算 (加密运算的逆运算) 还原成明文组。分组密码的优点是:密钥可以在一定时间内固定, 不必每次变换, 因此给密钥配发带来了方便。但是, 由于分组密码存在密文传输错误在明文中扩散的问题, 因此在信道质量较差的情况下无法使用。
分组密码通信模式
分组密码是将明文消息编码表示成数字序列x1, x2, …, xm之后, 再划分成长为m的组x= (x1, x2, …, xm) , 各组分别在密钥k= (k1, k2, …, kt) 的控制下变换成长为n的密文y= (y1, y2, …, yn) 。分组密码通信模式框图如图4所示。
分组密码与流密码的不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关, 而是与一组长为m的明文数字有关。分组密码的优点是容易标准化, 而且容易实现同步, 其缺点是相同的密文组蕴含相同的明文组, 且其加密不能抵抗组的重放等攻击。但这些缺点可通过一些技术手段加以克服。
在分组密码通信中, 通常明文与密文长度相等, 称该长度为分组长度。设明文空间与密文空间均为F2n, 密钥空间为Sk, 则分组密码的加密函数y=E (x, k) 和解密函数x=D (y, k) 都是从F2n到F2n的一个置换。一个好的分组密码应该是既难破译又容易实现的, 即加密函数E (x, k) 和解密函数D (y, k) 都必须是很容易计算的, 但是要从方程y=E (x, k) 和x=D (y, k) 中求出k应该是一个很困难的问题。
设计一个好的分组密码算法是非常困难的。目前有代表性的私钥分组密码算法有DES (美国商业部的数据加密标准) 、IDEA (国际数据加密算法) 等。
2.2.2 公钥密码算法
上节讨论的对称密钥密码体制中, 解密密钥与加密密钥相同或容易从加密密钥导出, 加密密钥的暴露会使系统变得不安全, 因此使用对称密钥密码体制在传送任何密文之前, 发送者和接收者必须使用一个安全信道预先通信传输密钥k, 在实际通信中做到这一点很困难。公钥密码体制能很好地解决对称密钥密码体制中的安全性问题。
公钥密码体制及其设计的基本原理
设计公钥密码体制的基本原理
在公钥密码中, 解密密钥和加密密钥不同, 从一个难于推出另一个, 解密和加密是可分离的, 加密密钥是可以公开的。公钥密码系统的观点是由Diffie和Hellman在1976年首次提出的, 它使密码学发生了一场革命。1977年由Rivest, Shamir和Adleman提出了第一个比较完善的公钥密码算法, 这就是著名的RSA算法。自那时起, 人们基于不同的计算问题, 提出了大量的公钥密码算法, 代表性的算法有RSA算法、Merke-Hellman背包算法和椭圆曲线算法等。在公钥密码体制中, 信息可通过编码被加密在一个NP-完全问题之中, 使得以普通的方法破译这种密码等价于解一个NP-安全问题。但若已知解密密钥, 解密就容易实现。要构造这样的密码, 核心问题是找一个陷门单向函数。
如果函数f (x) 满足以下条件:
(1) 对f (x) 的定义域中的任意x, 都容易计算函数值f (x)
(2) 对于f (x) 的值域中的几乎所有的y, 即使已知f要计算f--1 (y) 也是不可行的
则称f (x) 是单向函数 (One-way Function) 。
若给定某些辅助信息时又容易计算单向函数f的逆f--1, 则称f (x) 是一个陷门单向函数。这一辅助信息就是秘密的解密密钥。这就是设计公钥密码体制的基本原理。
公钥密码体制
公钥密码体制也称为双密钥密码体制或非对称密码体制, 与此相对应, 将序列密码和分组密码等称为单密钥密码体制或对称密钥密码体制。
为了区分这两个体制, 一般将单钥加密中使用的密钥称为秘密密钥 (Secret Key) , 公开密钥加密中使用的两个密钥分别称为公开密钥 (Public Key) 和私有密钥 (Private Key) 。在任何时候私有密钥都是保密的, 但把它称为私有密钥而不是秘密密钥, 以免同单钥加密中的秘密密钥混淆。
单钥密码安全的核心是通信双方秘密密钥的建立, 当用户数增加时, 其密钥分发就越来越困难, 而且单钥密码不能满足日益膨胀的数字签名的需要。公开密钥密码编码学是在试图解决单钥加密面临的这个难题的过程中发展起来的。公共密钥密码的优点是不需要经安全渠道传递密钥, 大大简化了密钥管理。它的算法有时也称为公开密钥算法或简称为公钥算法。公开密钥的应用主要有以下三方面:
(1) 加密和解密。发送方用接收方的公开密钥加密报文。
(2) 数字签名。发送方用自己的私有密钥“签署”报文。签署功能是通过对报文或者作为报文的一个函数的一小块数据应用发送者私有密钥加密完成的。
(3) 密钥交换。两方合作以便交换会话密钥。
公开密钥密码系统原理
公开密钥算法用一个密钥进行加密, 而用另一个不同但是相关的密钥进行解密:①仅仅知道密码算法和加密密钥而要确定解密密钥, 在计算上是不可能的;②两个相关密钥中任何一个都可以用作加密而让另外一个解密。
图5给出了公开密钥加密和解密的过程, 其中重要步骤如下:
(1) 网络中的每个端系统都产生一对用于将接收的报文进行加密和解密的密钥;
(2) 每个系统都通过把自己的加密密钥放进一个登记本或者文件来公布它, 这就是公开密钥。另一个密钥则是私有的;
(3) 如果A想给B发送一个报文, A就用B的公开密钥加密这个报文;
(4) B收到这个报文后用自己的私有密钥解密报文, 其他收到这个报文的人都无法解密它, 因为只有B才有自己的私有密钥。
使用这种方法, 所有参与方都可以获得各个公开密钥, 而各参与方的私有密钥则由各参与方自己在本地产生和保管。只要一个系统控制住它的私有密钥, 它收到的通信内容就是安全的。任何时候, 一个系统都可以更改它的私有密钥并公开相应的公开密钥来替代它原来的公开密钥。
公钥密码体制的安全性
公钥密码体制的安全性是指计算安全性, 而绝不是无条件安全性, 这是由公钥密码算法中求陷门单向函数的逆的复杂性决定的。虽然有许多函数被认为或被相信是单向的, 但目前还没有一个函数能被证明是单向的。下面举一个被相信是单向函数的例子。
设n是两个大素数p和q的乘积, b是一个正整数, 对x∈Zn, 令
即f (x) 等于xb被n除所得的余数, 人们认为f (x) 是一个从Zn到Zn的单向函数。
当对b和n作一个适当的选择时, 该函数就是著名的RSA算法的加密函数。
RSA加密系统
RSA因其创始人Rivest, Shamir和Adleman而得名。RSA的难度是基于因式分解, RSA的安全性几乎都建立在一些重要的数学假设基础之上, 它至今仍是一条数学家相信存在但缺乏正式证明的定理。RSA算法研制的最初理念与目标是努力使互联网安全可靠, 旨在解决DES算法秘密密钥利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题, 还可利用RSA来完成对电文的数字签名以抵抗对电文的否认与抵赖, 同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改, 以保护数据信息的完整性。RSA是第一个比较完善的公开密钥算法, 它既能用于加密也能用于数字签名。在已公开的公钥算法中, RSA是最容易理解和实现的。
RSA算法简单描述
RSA算法的实现步骤如下 (这里设B为实现者) :
①B寻找出两个大素数p和q。
②B计算出n=pq和j (n) = (p-1) (q-1) 。
③B选择一个随机数b (0
④B使用Euclidean (欧几里得) 算法计算a=b-1 (mod j (n) ) 。
⑤B在目录中公开n和b作为他的公开密钥, 保密p、q和a。
密码分析者攻击RSA体制的关键点在于如何分解n。若分解成功使n=pq, 则可以算出
然后由公开的b解出秘密的a。
加密时, 对每一明文m计算密文:
解密时, 对每一密文c计算明文:
RSA算法主要用于数据加密和数字签名。RSA算法用于数字签名时, 公钥和私钥的角色可变换, 即将消息用a加密签名, 用b验证签名。
欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数 (记为gcd (a, b) ) , 其计算原理为:gcd (a, b) =gcd (b, a mod b) 。
例如:
根据欧几里德算法, 若gcd (ab, j (n) ) =gcd (j (n) , ab mod j (n) ) =gcd (j (n) , 1) , 则ab=1 (mod j (n) ) , 即a=b-1 (mod j (n) ) 。因此, 根据欧几里德算法, 如果已知b, 通过列举计算的方法可得到私有密钥a。
RSA的安全性
RSA算法的理论基础是一种特殊的可逆模指数运算, 它的安全性是基于分解大整数n的困难性。密码破译者对RSA密码系统的一个明显的攻击是企图分解n, 如果能做到, 则他很容易计算出欧拉数j (n) = (p-1) (q-1) , 这样他就可从公钥b计算出私钥a, 从而破译密码系统。目前大整数分解算法能分解的数已达到130位的十进制数。也就是说, 129位十进制数字的模数是能够分解的临界数, 因此, n的选取应该大于这个数。基于安全性考虑, 建议用户选择的素数p和q大约都为100位的十进制数, 那么n=pq将是200位的十进制数。因为在每秒上亿次的计算机上对200位的整数进行因数分解, 要55万年。因而RSA体制在目前技术条件下是安全的, 是无人能破译的。
当然, 现在有很多种攻击RSA的方法, 但这些攻击方法都是在得到一定信息的前提下进行攻击才有效。
三种可能攻击RSA算法的方法是:①强行攻击:这包含对所有的私有密钥都进行尝试。②数学攻击:有几种方法, 实际上都等效于对两个素数乘积的因子分解。③定时攻击:这依赖于解密算法的运行时间。
基于安全性考虑, 一般在应用RSA时, 必须做到以下几点:①绝对不要对陌生人提交的随机消息进行签名;②不要在一组用户间共享n;③加密之前要用随机值填充消息, 以确保m和n的大小一样。
RSA技术既可用于加密通信又能用于数字签名和认证。由于RSA的速度大大低于DES等分组算法, 因此RSA多用于加密会话密钥、数字签名和认证。RSA以其算法的简单性和高度的抗攻击性在实际通信中得到了广泛的应用。在许多操作平台 (如Windows、Sun、Novell等) 都应用了RSA算法。另外, 几乎所有的网络安全通信协议 (如SSL, IPsec等) 也都应用了RSA算法。ISO几乎已指定RSA用作数字签名标准。在ISO9796中, RSA已成为其信息附件。法国银行界和澳大利亚银行界已使RSA标准化, ANSI银行标准的草案也利用了RSA。许多公司都采用了RSA安全公司的PKCS。
RSA在目前和可预见的未来若干年内, 在信息安全领域的地位是不可替代的, 在没有良好的分解大数因子的方法以及不能证明RSA的不安全性的时候, RSA的应用领域会越来越广泛。但是一旦分解大数因子不再困难, RSA的时代将会成为历史。
加密技术下的信息安全
通过以上章节我们分析了几种经典的加密算法的原理可以看出, 加密技术是保护信息安全的主要手段, 使用加密技术不仅可以保证信息的机密性, 而且可以保证信息的完整性和正确性, 防止信息被篡改、伪造和假冒。选择一个强壮的加密算法是至关重要的, 为了防止密码分析, 可以采取以下机制:
(1) 强壮的加密算法。一个好的加密算法往往只有用穷举法才能得到密钥, 所以只要密钥足够长就会很安全。建议至少为64位。
(2) 动态会话密钥。每次会话的密钥不同, 即使一次会话通信被破解, 不会因本次密钥被破解而殃及其它通信。
(3) 保护关键密钥 (Key Encryption Key, KEK) , 定期变换加密会话密钥的密钥。因为这些密钥是用来加密会话密钥的, 泄漏会引起灾难性后果。
人们一直努力在其他困难问题上建立和改进各种加密算法体制, 不至于一旦一些数学难题被解决之后, 没有可用的密码算法, 所以出现了大量的加密衍生算法, 如RC2及RC4算法, IDEA算法, SKIPJACK算法, El Gamal算法, SCHNORR算法, ESIGN算法等。
加密算法不仅仅是编码与破译的学问, 而且包括了安全管理, 安全协议设计, 数字签名, 秘密分存, 散列函数等很多内容。当然, 对信息安全的重视才是最有分量的, 政府和企业在提倡信息安全的大环境里讲求安全之道会事半功倍, 信息安全形势严峻的另一面, 也将推动安全管理技术的发展。
参考文献
[1]Brian Hatch, 2001, Linux Security Secrets&Solutions, The McGraw-Hill Companies
[2]IEEE, 2004, Functional Requirements for 802.20 Security, IEEE.org
[3]姚顾波, 2003, 网络安全完全解决方案, 电子工业出版社
[4]RSA, 2010, The Security Division of EMC, www.rsasecurity.com
分布式接口加密安全方案 篇6
1 对称加密模式
在以往系统间交互的经验基础上,使用DES固定加密方式。具体流程描述如下:
(1)在请求后台验证系统的时候,通过DES进行加密。
(2)后台验证系统在获取请求后进行参数解密。
(3)参数参与系统逻辑处理后,将需要返回的用户信息通过加密后返回。
(4)门户获得返回信息后再进行解密。
如图1所示。
DES是对称加密,通过这样的加解密,从安全性上来讲是比明文传输要安全多。但是因为是对称的固定加密,因此当加解密的方法泄漏后,这种加密也就变得毫无意义了。那么是否可以动态加密呢?通过研究以及资料的查找,我们采用第二种方式进行安全性处理。
2 一次性动态加密方式
所谓一次性动态加密方式,指Web页面通过Ajax进行一次异步请求验证服务器,被请求的接口通过RSA算法产生公钥和私钥,并通过Ajax的response将公钥返回给Web客户端,而将私钥保存在服务端;Web端的页面获取公钥后,通过JavaScript的加密后将请求发给后台验证服务器;后台验证服务器在获取请求后,找到相应的私钥进行解密;接着进行系统逻辑处理,处理后的结果通过DES进行加密返回给客户端,客户端通过DES进行解密来获取用户信息。
从图2描述的整个流程,可以看到,使用到RSA和DES两种加密算法。
RSA和DES两种加密算法各有优缺点。总的来说:
RSA算法是公钥算法(非对称算法),耗时较长,有较高安全性,一般用于密钥交换、签名及验证;
DES算法是私钥算法(对称算法),耗时较RSA短很多,安全性较差,但加解密效率高,而RSA需要对大素数进行运算,所以需要时间长。
在分布式接口场景中,通常请求的参数是少量的数据量,但需要高的安全性,通过RSA算法来加密参数保证安全性;而返回数据基本是导向性的结果,数据通常比较多,性能要求高,使用DES进行加解密。
第二种采用RSA和DES的混合方式大大提高了接口的安全性。此外在请求接口之前都通过Ajax异步访问验证服务器来先获取动态的公钥,也大大减少key泄密的可能性。因为Web应用,在压力测试后发现,大量并发的请求下,页面访问的速度会变慢,通过监控分析发现,从第一种方式的一次请求到了第二种方式中,变成两次请求,是性能变化的主要原因。
那么如何解决这个问题呢?减少请求则是最根本的解决方式。第一次请求是为获取动态key而产生的;第二次请求则是属于业务上的正常请求。只能通过减少第一次的请求数就能总体上减少整个系统的请求量。因此研究了第3种方案。
3 基于Cookie的动态加密方式
在第二种方案上,当用户在浏览器访问系统时候,任何外部接口的调用都需要预先调用RSA key生成器,然后把公钥传给Web端。每调一次外部接口,都会去调用这个RSA key生成器,如果将公钥作为Cookie保存在Web端,则当公钥Cookie存在时,那么就可以避免对RSA key生成器接口的调用,从而减少了第一类请求的数量了,这个访问性能也就大大提高。
Cookie本身作为存储只能存在少量的信息,它的生命周期由客户端和服务器共同来控制。客户端通过清除浏览器缓存等方式来清除Cookie;服务器端则通过对添加Cookie时,设置有效期来控制Cookie的有效性。公钥是一串字符串,它也具备客户端和服务器共同来控制的特点,因此将Cookie作为载体来存储动态公钥,是一个非常合适的方式。Cookie大致有3种生命周期,分别为浏览器有效;无效;指定期间有效。Cookie的有效期需和RSA生成器保持一致,所以需要改造一下RSA生成器,在请求RSA生成器的时候,添加一个expires参数,来表示获取的公钥作为Cookie所期望的有效期限。此外Cookie本身还有path属性,如果设置path属性,那么就能灵活分类哪些请求需要重新访问RSA生成接口来获取新的公钥,哪些可以依赖寄存在Cookie里面的老公钥。有了path和expires这两个作为请求参数,RSA生成器会将这两个信息放入服务端,其中expires表示服务器私钥的有效期,若没有这参数,默认就认为Cookie为当前浏览器有效;path参数为可选项。
然而在具体分布式环境下,客户端和服务端不能保证总是时间一致,那么服务端需要具备容错机制来处理异常问题,其中异常情况大概有下面两种:
(1)客户端Cookie为空
当客户端取得公钥为空,或者没有这个Cookie,那么需要客户端通过Javascript相关的脚本进行判断后,通过Ajax异步主动去调用RSA生成器,获取一个全新的公钥存入到当前Cookie中。
(2)客户端Cookie无效
Cooke公钥存在,用该公钥去服务端获取相应私钥时,发现私钥不存在或者已失效,则认定Cookie已经无效,那需要调用的用户信息接口能主动跳转到RSA生成器生成一个新公钥返回给客户端,接着客户端再自动进行二次请求用户信息接口。如图4描述了这么一个具体过程。具体过程如下:
(1)客户端以Cookie方式将公钥带入,访问用户信息接口(业务接口)。
(2)拦截器发现公钥失效,则抛出异常来调用RSA生成器,并返回给客户端以Cookie方式保存在客户端。
(3)客户端自动在获取的新的公钥后,对服务器用户信息接口进行二次请求。
(4)用户信息接口获取信息后,用DES进行加密后返回给客户端。
(5)客户端通过DES进行解密。
通过上述3个阶段的探索,对分布式接口的安全方案有了一定的认识。意识到在安全方面需要掌握基本的安全知识,如DES和RSA的各种优缺点;在当将传统证书或者硬件加密的方式转换为轻量级的Web应用时,需要将Ajax和Cookie这类Web属性特性和传统安全知识相互结合来解决分布式接口安全问题,同时也要知道Web本身注重的多访问量会导致性能降低的问题,合理优化访问量,最终在安全和性能上获取一个平衡点。
参考文献
[1]鲁立,龚涛.计算机网络安全.机械工业出版社.
浅析网络安全与混沌加密技术 篇7
1 网络安全的概述
国际标准化组织(ISO)将“计算机安全”定义为:“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和泄漏”。上述计算机安全的定义包含物理安全和逻辑安全两方面的内容,其逻辑安全的内容可理解为我们常说的信息安全,是指对信息的保密性、完整性和可用性的保护,而网络安全性的含义是信息安全的引申,即网络安全是对网络信息保密性、完整性和可用性的保护。
从本质上来讲,网络安全包括组成网络系统的硬件、软件及其在网络上传输信息的安全性,使其不致因偶然的或者恶意的攻击遭到破坏[1]。网络安全既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。
网络安全技术随着人们网络实践的发展而发展,其涉及的范围非常广,如认证、加密、防火墙及入侵检测等技术是网络安全的重要防线。从技术角度看网络安全取决于两个方面:网络设备的硬件,网络设备的操作系统和应用软件。因此网络安全的基本技术主要包括网络加密技术、网络地址转换技术、操作系统安全内核技术、身份验证技术以及网络防病毒技术等。其中加密技术是网络信息安全的核心技术,已经渗透到大部分安全产品之中,并正向芯片化方向发展。
2 网络加密技术
在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键技术,通过数据加密技术,可以在一定程度上保护网内的数据、文件、口令和控制信息,以及保护网上传输的数据,提高数据传输的安全性,保证传输数据的完整性。
2.1 数据加密
数据加密过程就是通过加密系统把原始的数字信息(明文),按照加密算法变换成与明文完全不同的数字信息(密文)的过程。假设E为加密算法,D为解密算法,则数据的加密解密数学表达式为:P=D(KD,E(KE,P))。
2.2 私钥加密
私钥加密又称对称密钥加密,因为用来加密信息的密钥就是解密信息所使用的密钥。私钥加密为信息提供了进一步的机密性,它不提供认证,因为使用该密钥的任何人都可以创建、加密、和平共处送一条有效的消息。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。这种加密方法的优点是速度很快,很容易在硬件和软件中实现,在处理大量数据的时候被广泛使用。典型的算法有 DES及其各种变形(如Triple DES),IDEA,RC4、RC5以及古典密码(如代换密码和转轮密码)等。
2.3 公钥加密
公钥加密技术也叫非对称密码体制,比私钥加密出现得晚。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,一个用于加密信息,另一个用于解密信息。加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。而私钥却是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。公钥加密系统的缺点是它们通常是计算密集的,因而比私钥加密系统的速度慢得多;优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,尤其可方便地实现数字签名和身份验证。典型的算法有 RSA、背包密码,Elliptic Curve算法等等。随着现代电子技术和密码技术的发展,公钥密码算法将是一种很有前途的网络安全加密机制。
3 混沌加密技术
1963年,美国气象学家洛伦兹(Lorenz)提出混沌理论:认为气候从本质上是不可预测的,最微小的条件改变将会导致巨大的天气变化,这就是著名的“蝴蝶效应”。对于这个效应最常见的阐述是:“一个蝴蝶在巴西轻拍翅膀,可以导致一个月后德克萨斯州的一场龙卷风”。今天的“蝴蝶效应”或者“广义的蝴蝶效应”已不限于当初而言,而是一切复杂系统对初值极为敏感性的代名词或同义语,其含义是:对于一切复杂系统,在一定的“阈值条件”下,其长时期大范围的未来行为,对初始条件数值的微小变动或偏差极为敏感,即初值稍有变动或偏差,将导致未来前景的巨大差异,这往往是难以预测的或者说带有一定的随机。
混沌是一种复杂的非线性、非平衡的动力学过程,是一种始终局限于有限区域、轨道永不重复且性态复杂的非线性运动形式,它有时也被描述成周期无穷大的运动或貌似随机的运动。
一般认为,产生混沌运动需具备三个特征:内随机性(产生混沌的根源是系统本身)、分维性质(系统运动轨道在相空间中构成奇怪吸引子)、存在Feigenbaum常数(具有结构的普适性和测度的普适性)。
其特点为:(1)混沌系统的行为是许多有序行为的集合,而每个有序分量在正常条件下,都不起主导作用;(2)混沌看起来似为随机,但都是确定的;(3)混沌系统对初始条件极为敏感,对于两个相同的混沌系统,若使其处于稍异的初态就会迅速变成完全不同的状态。
混沌加密基于混沌系统所具有的独特性质,它的理论基础是:混沌信号具有的非周期、连续非对称宽带频谱、似噪声等特性,具有良好的遍历性和非周期性[2]。将混沌系统作为密钥流发生器,利用特定的编码,即可实现通信双方的实时动态加解密,其加密强度主要取决于密钥的生成算法。
由于混沌系统对初始状态的极度敏感性、复杂的动力学行为、数值分布上不符合概率统计学原理,得不到一个稳定的概率分布特征;另外,混沌数集是实数范围,还可以推广到复数范围,使混沌系统难以重构和预测。目前只能在特殊条件下对一些混沌系统进行重构,从理论上还没有较好的一般性方法,要破译通过混沌加密的信息非常困难,因而特别适用于保密通信,目前混沌保密通信研究中多采用基于混沌同步理论的保密通信系统。
首先,混沌系统对初始值和参数非常敏感,可以提供很大的密钥集合, 密钥的周期可任意大,能够高速生成,具有不可预测、难破译等特点,可完全满足加密的需要。其次,混沌加密属于流密码,对分组加密的攻击方法是无效的[3]。而且,混沌加密算法的加密和解密过程是可以重用的,这样其所占用的空间大大缩小,其时间空间代价也较小。当然,混沌加密算法也存在的问题,主要包括短周期响应、有限精度效应和实现精度与保密性的矛盾等。
用混沌同步加密信息具有运算速度快、保真度高、密钥量大、安全性好以及足够的带宽和较强的实时功能。混沌同步加密技术是加密图像信息和声音信息等大数据量信息的一种新技术,是加密领域的一种新方法,是保证网络通信安全的一项新技术,有着较为广阔的应用前景。
摘要:随着计算机的普及和网络技术的广泛应用,计算机信息的保密及网络安全问题日益重要,而加密技术则是网络安全技术中的核心技术。为此,对目前信息加密技术进行了分析,阐述了网络加密技术的相关理论及技术,同时对混沌加密技术进行了描述。并从混沌加密技术的基本原理、发展阶段和特点以及存在的问题对其进行了较为全面的分析和总结。
关键词:网络安全,私钥加密,公钥加密,混沌加密
参考文献
[1]徐国爱.网络安全(第2版)[M].北京:北京邮电大学出版社,2007,9.
[2]刘嘉辉,李岩,宋大华.混沌加密理论的探讨[J].牡丹江师范学院学报(自然科学版),2006(1).
【加密安全服务】推荐阅读:
数据加密技术网络安全05-29
文件加密技术信息安全论文11-05
加密不可盲目,有关无线加密协议兼容疑问06-13
加密通信07-15
信息加密07-18
程序加密10-18
文档加密06-22
视频加密07-25
加密算法08-06
加密电视10-02