APP下载

一种基于基础安全机制构建的组合加密安全方案

2012-04-13周金杰

科技传播 2012年14期
关键词:加密算法公钥密文

周金杰

同济大学计算机科学及技术系,上海 201804

0 引言

随着信息共享范围的不断扩大,网络上的许多不安全因素对用户数据构成了极大的威胁。出于日常应用的各种需要,一些敏感的数据需要在网上供多人共享,这也增加了信息泄露的可能性。面对巨大的,无处不在的信息安全威胁,人们想出了各种应对措施。其中最通常的方式就是对数据进行加密操作,只有通过相应的解密才能使其恢复原貌,获取有用信息。

近年来随着密码学技术的不断发展,各种加密算法也层出不穷,然而加密安全性与加密效率如何兼顾一直是一个让人头疼的问题。

本文从这个实际问题出发,旨在设计并实现一种高级的加密方案。该方案既能保障数据的绝对安全性,又具有较高的加解密效率,为保护私密数据信息抵御各种不安全因素的威胁提供了一个较为良好的解决方案,具有一定的实用价值。

1 密码学基础安全机制概述

1.1 加密算法

在整个密码学安全机制中,加密算法可谓是它的核心[1]。实现数据加密的算法可以根据密钥类型的不同分成两大类别:对称加密算法和非对称加密算法。

1.1.1 对称加密算法

对称加密算法是应用较早的加密算法,技术成熟。所谓的对称加密算法,就是数据加密和解密采用的是同一个密钥,因此,它的安全性依赖于该密钥的安全性。在对称加密算法中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文后发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密操作,这就要求解密方事先必须知道加密密钥。

1.1.2 非对称加密算法

非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用非对称加密算法加密数据时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且加密者知道接收方的公钥,只有解密者才是唯一知道自己私钥的人。非对称加密算法的基本原理是,如果加密方想发送只有解密方才能解读的加密信息,加密方必须首先知道解密方的公钥,然后利用解密方的公钥来加密原文;解密方收到加密密文后,使用自己的私钥才能解密密文。

1.2 数字签名

简单地说,所谓数字签名就是在数据单元上附加一些数据,或对数据单元作一定的密码变换,以达到允许数据单元的接收者用以确认数据单元的来源和并保护数据完整性,防止被伪造的目的,是对数据进行签名的一种方法。基于公钥密码体制和私钥密码体制都可以进行数字签名,目前主要得以应用的是基于公钥密码体制的数字签名。

基于公钥密码体质的数字签名机制通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名主要的功能是:保证信息的完整性、认证发送者的身份。从本质上说,数字签名是一个对数据进行加密的过程,而数字签名的验证则是一个对数据解密的过程。

2 组合加密安全方案设计

2.1 加密方案设计

之前我们曾经提到,实现数据加密的算法可以根据密钥类型的不同分成两大类别:对称加密算法和非对称加密算法。对称加密算法速度较快,但是存在一定的安全隐患。非对称加密算法虽然安全性高,却速度偏慢。显然,如果只使用其中任何一种单一的加密算法,都无法使加密系统兼顾安全性与高效性。因此,我们需要取两类加密算法之所长,在加密过程中通过对这两种加密算法的结合使用,来构建一个既安全又高效的加密系统。

2.1.1 加密方案概述

加密方首先利用对称加密算法对主加密数据进行加密,然后利用接收方的公钥给对称密钥进行非对称加密,将加密了的对称密钥与主加密数据的密文一同存入加密数据中(如图 1所示)。解密方在收到数据后,利用对应的非对称私钥对加密了的对称密钥进行解密操作。得到对称密钥后,再用该密钥对主加密数据密文进行解密操作,从而得到主加密数据的内容。

图1

2.1.2 安全性分析

在上述加密方案中,虽然主要数据是由安全性较差的对称加密机制加密的,但是鉴于对称密钥通过非对称加密算法得到了加密,所以整个系统的安全性也就可以说是逼近于非对称加密机制了。因为对称加密算法的安全性依赖于其密钥的安全性,而其密钥的安全性又由非对称加密算法得以保障,故而可以消除对称加密中存在的最大安全隐患,即每次交换对称密钥时的不安全性。

2.1.3 加密效率分析

由于上述加密方案中,主要加密数据都是由速度较快的对称加密算法加密的,而速度较慢的非对称加密算法只负责加密对称加密算法的密钥(其长度一般为几十到上百个字节不等,相对于主加密数据,基本可以忽略不计),故其效率基本上可与对称加密算法相媲美。

2.2 数字签名安全方案设计

上述加密方案保证了加密的安全性与效率,但是为了让这个组合加密安全方案更加完备,我们需要提供消息完整性的验证,以及发送方身份认证的功能。

于是在上述加密方案的基础上:我们让加密方对主加密数据的摘要再做一次非对称加密的操作,并将加密了的主加密数据消息摘要密文一起放入加密数据(如图 2所示)。该非对称加密操作使用的密钥与之前加密对称密钥时使用的密钥不同,它使用的是一个能够标识加密方身份的非对称密钥中的私钥,该私钥只有加密方自己拥有,其相应的公钥则是对外公开的,其实这就是一种常见的数字签名方案,因为私钥只有加密方拥有,所以能够表明其身份,而公开的公钥则用来让解密方验证加密方的身份。解密方在获取了主加密数据的原文之后,通过计算得到其消息摘要。同时,通过加密方公开的公钥对主加密数据消息摘要的密文进行非对称解密操作,将主加密数据的消息摘要明文还原出来,并将该明文与之前计算而得的主加密数据原文的消息摘要进行比较。若匹配,则在证明了数据完整性未遭破坏的同时也验证了数据来源的可靠性,这样做可以让解密方验证加密方的身份,以防止有恶意破坏企图的第三方冒充加密方,将虚假信息发送给解密方。

3 组合加密安全方案的实现

3.1 基础加密算法的选取

3.1.1 对称加密算法

当前最常用的对称加密标准无疑是AES[2]加密标准与DES加密标准。AES加密标准作为DES加密标准的替代者,其效率与安全性均高于DES。故选择AES加密标准的实现算法Rijndael[3]算法作为对称加密算法。

3.1.2 非对称加密算法与数字签名算法

RSA加密算法是当下最常见的非对称加密算法,由于数字签名也是基于非对称加密算法的,故本加密方案将选择RSA算法作为非对称加密与数字签名所使用的算法。

3.1.3 验证数据完整性的散列算法

本文加密方案选择SHA1算法作为验证数据完整性的散列算法。SHA1散列算法可以对任意长度的数据运算生成一个160位的数值,它具有不可从消息摘要中恢复原信息及两个不同的消息不会产生同样的消息摘要的特性,可以满足验证数据完整性的需求。

3.2 高级加密方案实现流程

本高级加密方案实现流程分两大部分流程阐述,即加密流程与解密流程。

3.2.1 加密流程

功能定义:对于输入的原始数据进行加密与组合

输入:待加密数据原文

输出:加密后的密文组合

具体流程:

Step1:使用对称密钥,通过Rijndael算法加密主数据,得到密文1

Step2:用非对称加密算法的公钥,通过RSA算法加密先前Rijndael算法的对称密钥,得到密文2

Step3:用SHA1算法对主数据做消息摘要计算

Step4:用签名密钥的私钥,为消息摘要做RSA加密,得到密文3

Step5:将密文1,密文2,密文3组合成新的密文数据

3.2.2 解密流程

功能定义:对于输入的密文组合进行逐步拆分与解密

输入:待解密的密文组合

输出:数据原文

具体流程:

Step1:使用非对称加密的私钥,通过RSA算法解密Rijndael算法的对称密钥

Step2:使用上一步解密所得的对称密钥解密,通过Rijndael算法解密主加密数据明文

Step3:用签名密钥的公钥,通过RSA算法解密消息摘要获得其明文

Step4:使用SHA1算法对Step2获得的主加密数据明文进行消息摘要的计算,并与Step3所获得的解密的消息摘要明文进行比较,若相同,则解密成功,输出明文,否则输出错误信息

4 实验分析

基于上述组合加密安全方案,我们在Windows .NET Framework 2.0上进行了实验,并对实验结果进行分析。

4.1 实验平台选取

由于.NET Framework 2.0环境集成了本加密安全方案所需的基础加密算法(即 Rijndael对称加密算法,RSA非对称加密算法以及SHA1散列算法)的实现,故我们选取该平台作为我们的实验平台。

4.2 实验对象与目的

由于数据安全性的测试很难用量化数据来界定,而之前第二节中提到的安全性分析也表明本高级安全加密方案的安全性可以逼近于非对称加密。鉴于非对称加密的安全性是业界公认的,所以其安全性应该可以得到保障。

这里我们主要对本组合加密安全方案的效率做实验与分析。

4.3 实验方案

实验中,我们将通过组合加密安全方案,分别对不同大小的数据(1MB, 2MB, 5MB, 10MB)进行加/解密,记录加/解密时间,并且将该加密时间与单纯使用对称加密或非对称加密的加/解密时间进行比较。

为了保证实验数据的有效性,同时将实验中可能发生的偶然事件的影响降到最低,我们分别对每个大小的数据,取100个样本进行实验,然后求得其时间的平均值。

4.4 实验结果与数据分析

根据上述实验方案,我们得到如下的实验结果,如图 3图4所示

图3

通过实验数据我们可以看到,无论是加密还是解密,本组合加密安全方案所使用的时间都很接近于纯对称加密的时间(多出来的时间开销主要为使用非对称加密算法加密对称密钥,以及对明文做计算散列时的开销,但由于数据量不大,这些开销与主要加密用时相比可以忽略不计),在保证了安全性接近于非对称加密的前提下,在效率上有很大的提升,与之前的分析相符。

5 结论

本文提出了一种基于基础安全机制构建的组合加密安全方案,对传统加密方法效率与安全性难以兼得的问题做出了一个较为合理的解答。同时通过理论分析与实验说明并验证了该方案的安全性与效率性。为保护数据安全提供了一种较为切实可行的解决方案。

图4

[1]R.Stinson Douglas.密码学原理与实践[M].北京:电子工业出版社,2007.

[2]姚华桢.AES和DES的效率及安全性比较[J].仲恺农业技术学院学报,2006,19(2):44-48.

[3]Barr,T.Invitation to Cryptology.Upper Saddle River, NJ:Prentice Hall, 2002.

猜你喜欢

加密算法公钥密文
一种针对格基后量子密码的能量侧信道分析框架
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
一种基于混沌的公钥加密方案
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法
云存储中支持词频和用户喜好的密文模糊检索
Hill加密算法的改进
基于格的公钥加密与证书基加密