APP下载

基于U盘和网络的加密解密系统

2016-08-30许永正

软件 2016年5期
关键词:信息安全技术解密数据安全

摘要:本文提出并实现了一种基于u盘和网络的加密解密系统,介绍了系统的功能和组成。整个系统由相对独立的加密系统、解密系统和校核系统三个部分组成,利用成熟的加密算法和数字签名等技术对传输的数据进行加密、解密和校验。实验结果表明,该系统极大的提高了数据的保密性和安全性。

关键词:信息安全技术;加密;解密;数据安全

中图分类号:TP393.09 文献标识码:A DOI:10.3969/j.issn.1003 6970.2016.05.011

本文著录格式:许永正.基于u盘和网络的加密解密系统.软件,2016,37(5):38-44

0.引言

随着计算机网络技术的发展和Internet的普及,病毒、木马、黑客等问题日益威胁着计算机和网络的正常使用,信息安全技术越来越受到人们的重视,尤其是在商业、军事等对数据的保密性、安全性要求很高的领域。

在日常工作中,网络由于数据传输方便快捷,u盘等可读写的移动存储介质由于携带方便、可重复使用等特点,已经成为人们传输数据的主要手段和工具,但是网络数据传输容易被他人截取,移动存储介质上的数据一般都是明文存储,他人可以直接读取,数据的保密性和安全性很低。

本文实现的加密解密系统不管是通过网络还是U盘传输数据,都可以方便的对数据进行加密和解密,极大的提高了数据保密性和安全性。

1.定义

1.1加密算法

加密解密系统的技术难点在于加密算法,如何选择合适加密算法,产生强固的密钥,提升系统安全性可靠性,是所有加密系统都要仔细考虑的。目前流行的加密算法分为单向散列算法、公开密钥算法、对称算法三类。

1.2单项散列算法

单项散列函数算法也称为Hash算法,是一种将任意长度的消息压缩到某一固定长度(消息摘要)的函数(不可逆过程)。Hash函数主要用于数字签名、消息的完整性检测、消息起源的认证检测等。常见的散列算法有MD5、SHA、N-hash、PIPI-MD、HAVAL等。

1.3公开密钥算法

公开密钥算法也称为非对称算法,用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。加密密钥可以公开,即陌生人能用加密密钥加密信息,但只有用相应的解密密钥才能解密。加密密钥叫公钥,解密密钥称为私钥。公开密钥算法的安全性都是基于复杂的数学难题,根据所基于的数学难题分类,以下三类系统目前被认为是安全有效的:大整数因子分解系统(代表性的有RSA算法)、离散对数系统(代表性的有DSA、EIGamal算法)和椭圆曲线离散对数系统(ECC算法)。公钥算法的主要局限在于,这种加密形式的速度相对较低。

1.4对称算法

对称加密算法的加密密钥和解密密钥完全相同,所以也称为共享密钥加密或机密密钥加密。其安全性依赖于以下两个因素:第一、加密算法必须是足够强,仅仅基于密文本身去解密信息在实践中是不可能的;第二、加密数据的安全性依赖于密钥的秘密性,而不是算法的秘密性。衡量对称算法优劣的主要尺度是其密钥的长度。密钥越长,在找到解密数据所需的正确密钥之前必须测试的密钥数量就越多。需要测试的密钥越多,破解这种算法就越困难。有了好的加密算法和足够长的密钥,如果有人想在一段实际可行的时间内逆转转换过程,并从暗文中推导出明文,从计算的角度来讲,这种做法是行不通的。典型的对称加密算法包括:DES、BlowFish等。

1.5数字签名

对文件进行加密只解决了传送信息的保密问题,而防止他人对传输的文件进行破坏,以及如何确定发信人的身份还需要采取其它的手段,这一手段就是数字签名。在电子商务安全保密系统中,数字签名技术有着特别重要的地位,在电子商务安全服务中的源鉴别、完整性服务、不可否认服务中,都要用到数字签名技术。在电子商务中,完善的数字签名应具备签字方不能抵赖、他人不能伪造、在公证人面前能够验证真伪的能力。

电子商务中数据传输的几个安全性需求:

(1)数据的保密性:用于防止非法用户进入系统及合法用户对系统资源的非法使用;通过对一些敏感的数据文件进行加密来保护系统之间的数据交换,防止除接收方之外的第三方截获数据及即使获取文件也无法得到其内容。如在电子交易中,避免遭到黑客的袭击使信用卡信息丢失的问题。

(2)数据的完整性:防止非法用户对进行交换的数据进行无意或恶意的修改、插入,防止交换的数据丢失等。

(3)数据的不可否认性:对数据和信息的来源进行验证,以确保数据由合法的用户发出;防止数据发送方在发出数据后又加以否认;同时防止接收方在收到数据后又否认曾收到过此数据及篡改数据。

上述需求对应于防火墙、加密、数字签名、身份认证等技术,但其关键在于数字签名技术。

1.6密钥管理体制

密码系统的两个基本要素是加密算法和密钥管理。加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。由于密码系统的反复使用,仅靠加密算法已难以保证信息的安全了。事实上,加密信息的安全可靠依赖于密钥系统,密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。

2.概述

本文实现的系统由加密系统、解密系统和校核系统三个部分组成。加密系统负责对待加密文件进行加密并产生密钥,将加密后的数据按照自定义格式存入移动存储介质(在本文中称之为目标卡),密钥存入另一个移动存储介质(在本文中称之为解锁卡)。同时加密系统还提供网络接口,将目标密文文件和解锁文件传输给解密系统,将待加密文件传送给校核系统;解密系统是加密系统的逆过程,它从网络接口或者可移动存储介质获得目标密文文件和密钥,将目标密文文件解密为明文,同时解密系统提供的网络接口将解密后的明文发送给校核系统;校核系统通过网络接口或者移动存储介质获得待加密文件和明文,对二者进行比对验证,并得出验证结果。三个系统分别安装在三台计算机上,它们通过预定义的接口进行通信和数据交换。

系统流程图如图1所示。

由上述系统功能可见,加密数据安全性主要取决于解锁卡,需要防止非法人员同时获取解锁卡和目标卡后进行破解,所以系统还要对解锁卡中密钥进行二级加密,即采用所谓的二级密钥管理体制。

在实际使用中,如果没有校核系统,为了保证解密后数据的正确性,需要采用数字签名技术,对加密数据和密钥进行签名验证。这样保证了解密时使用的密文数据与密钥是由合法的加密系统产生的,并且没有被修改或破坏,最终确保解密后数据的正确性。

同时,解密系统需要加强密码保护机制,因为其中有用于验证签名文件的密钥文件,保护这些密钥,成为保卫系统安全的最后一道屏障。

由于三个系统之间需要交换数据,它们之间的数据接口也容易成为攻破系统保密措施的一个弱点。因此需要合理设计数据接口,交换数据时采用安全的加密协议。

3.加密系统

加密系统的功能为选择加密算法对原始数据进行加密,并生成密钥。然后将加密后的数据按照自定义格式存入目标卡(防止别人直接读取数据),密钥存入解锁卡。流程图如图2所示。

首先用户选择加密算法对原始数据进行加密,所有的加密算法都封装在DLL中,其优点一是隐藏了算法的实现细节,二是增强了系统的可维护性和扩展性。原始数据加密后生成密文和主密钥,密文和其签名文件储存到目标卡,主密钥进行RSA加密生成工作密钥,并对工作密钥进行数字签名,然后再对RSA算法产生的私钥s0进行加密,最后将这些结果储存到解锁卡中。系统启动时调用RSA算法产生了一对安全的密钥(公钥GO和私钥s0),利用公钥GO对主密钥加密,同时进行签名文件的加密(见1.1),另外也对私钥s0进行了加密(见1.2),增强系统的安全性。

加密时,系统处理流程按以下步骤进行:

(1)用户输入待加密原始数据文件(定义为OF),然后选择加密算法。

(2)系统调用的加密算法程序(定义为DLL),选择的算法序号为XH,生成“主密钥”(定义为PK),并用PK和DLL对原始数据OF加密,生成密文文件(定义为SF)。

(3)系统调用RSA算法,生成密钥对(公钥GO,私钥SO),该过程定义为WK。

(4)用GO对sF进行数字签名,生成签名文件(定义为SSF)。

(5)将sF与SSF合并,生成合成为已加密目标文件(定义为MSF),并保存到目标卡中;

(6)用WK中的公钥GO对PK加密,生成“工作密钥”(定义为SPK)。

(7)用GO对SPK进行数字签名,生成签名文件(定义为SSPK)。

(8)利用算法对WK中的私钥s0进行加密,生成“加密后内容”(定义为SS0)。

(9)将XH、SS0、SPK、SSPK合并,生成合成解锁文件(定义为MSPK),并保存到解锁卡中。

3.1数字签名及签名文件加密处理流程

数字签名及签名文件处理完成两个功能:数字签名和签名文件加密。签名文件加密时采用加密系统产生的公钥GO进行加密,因为公钥GO是随机产生的,安全性较高,并且解密用到的私钥s0也经过了加密。流程图如图3所示:

3.2私钥SO加密处理流程

流程图如图4所示。

私钥SO是一个相当关键的密钥,获得它就能破解工作密钥得到主密钥。传统的加密系统多采用人为方式来保证私钥的安全性,这样就降低了系统的安全性。为了增强系统的安全性,这里使用了一种策略,即对私钥SO进行加密。对私钥加密采用固定密钥对,这些固定密钥对是由RSA算法产生的安全密钥对。每次私钥SO加密时,系统随机提取一组密钥对(公钥G1和私钥S1),利用公钥Gl对私钥SO进行加密,然后将加密后的关键密钥和密钥对集合序号合并到解锁文件中,私钥Sl不作任何处理。

4.解密系统

解密系统通过读取解锁卡上的密钥文件解密目标卡上的数据文件,从而得到还原的数据。然后将还原的数据存储到指定位置,并通过网络接口发送给校核系统。流程图如图5所示。

解密系统还提供签名验证功能(见2.1),用来确保密文的合法性,一旦密文遭到非法篡改,系统能够及时发现。为解密出明文,系统要一步步获得密钥,首先根据关键密钥和密钥对集合序号解密出私钥SO(见2.2),再根据私钥s0和工作密钥解密出主密钥,最后才通过主密钥、密文、加密算法编号解密出明文(见2.3)。

解密系统工作步骤为:

(1)将已加密目标文件进行分解,获得密文签名文件(SSF)和密文(SF)。

(2)对SSF进行签名验证,如果合法则继续解密,若不合法则提示信息并结束解密。

(3)将解锁文件进行分解为密钥对序列号(定义为KXH)、关键密钥(定义为GK)、工作密钥(SPK)、加密算法编号(XH)、工作密钥签名文件(SSPK)。

(4)将密钥对序列号(KXH)和关键密钥(GK)解密获得私钥SO。

(5)将私钥s0和工作密钥SPK解密获得主密钥(PK)。

(6)利用密文(SF)、主密钥(PK)和加密算法编号(XH)解密出明文(OF)。

(7)提供网络接口将明文发送给校核系统。

4.1签名验证处理流程

签名验证处理实现文件的合法性验证。如果签名文件经RSA算法解密的散列值1与被签名文件经过Hash变换后的散列值2一致,则表示验证成功,否则验证失败。这里的Hash函数要和加密系统中数字签名的Hash函数一致,这样签名验证才能正常工作。流程图如图6所示。

4.2解密私钥SO处理流程

流程图如图7所示。

根据密钥对序号,系统从密钥对集合中取出已加密的公钥G1和已加密的私钥S1,对已加密的Sl进行解密得到私钥Sl,再利用Sl将关键密钥解密为私钥SO。值的注意的是,解密系统中的密钥对集合与加密系统中的密钥对集合存在对应关系不一致。实际上,解密系统中的密钥对集合是经过加密的,它使用了解密系统登录密码进行对称算法加密。有了这样的策略,即使目标卡、解锁卡、解锁软件都被盗取(解密软件登录密码未被盗取),盗取者仍然不能解密出明文,就算盗取者通过暴力手段跳过了密码验证环节,仍然解密不出明文,因为没有软件登录密码就无法解密出私钥S1,也就无法解密出明文。

4.3解密明文处理流程

首先系统根据加/解密算法编号确定加/解密算法,然后系统利用加/解密算法、密文、主密钥解密出明文。其中解密系统用到的加,解密算法库和加密系统使用的加,解密算法库一致。流程图如图8所示:

5.校核系统

校核系统用来验证加密、解密的正确性和可靠性。原始数据和解密系统解密后的数据通过移动存储介质或者网络传输到校核系统进行比对,并生成验证报告。流程图如图9所示。

6.结论

以上设计充分考虑了系统各方面可能存在的漏洞,严密防范了各种可能攻击,让一般技术手段很难破解。首先,假设非法人员先获取了目标卡,显然他是无法单靠目标卡解密上面保存的加密数据的;那么他同时获得了目标卡和解锁卡,同样他还是无法获得数据,因为解锁卡上的密钥是被加密的,而加密它们的密钥保存在解密系统的密钥对集合中,所以他还需要获取解密系统;如果他只是想通过修改或更换数据,导致我们使用错误的数据,那么他还需要过数字签名验证这关,这同样需要工作密钥来解密签名文件;解密系统安装在舰船加固机上,我们可以通过各种硬件或软件手段保证它的安全;然后我们再假设非法人员通过某种手段又获得了解密系统的完整拷贝,那么现在他会碰到软件密码保护这个问题了,如果他没有获取到密码,即使他通过软件运行跟踪、修改跳转指令等破解手段,他会发现没有密码还是无法获取关键的工作密钥,而通过散列值反推出密码也是不可能的;最后,如何保证密码安全,这就已经不属于技术范畴的问题了。当然,以上种种分析都是建立在加密算法高强度的基础上的,只有难以在有限时间内解出的算法才能最终保护系统安全。

猜你喜欢

信息安全技术解密数据安全
炫词解密
解密“一包三改”
炫词解密
云计算中基于用户隐私的数据安全保护方法
建立激励相容机制保护数据安全
大数据云计算环境下的数据安全
电力内网的信息安全技术存在问题及解决措施
大数据安全搜索与共享
解密“大调解”