为保障数据在网络传输中的安全,针对综合船桥系统的数据通信网络中的数据保密性问题,我们在综合两种常用加密算法——DES和RSA各自特点的基础上,结合两种加密算法的优点,提出了一种基于DES和RSA的混合加密算法。利用这种组合加密技术对船桥系统的重要数据进行加密,可以确保综合船桥系统数据的安全。
一、加密算法简介
1、DES加密算法
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
DES加密算法的加密过程
1)64位明文经过初始置换IP,把输入的数据块按位重新组合,把输出分为左右两部分,各长32位,左边为Lo,右边为Ro;
2)将64位密钥变换产生16个48位子密钥:K1,K2,…,K16,分别在十六次加密迭代中使用;
3)由加密函数/实现子密钥Ki对Ro的加密,得到32位数据f(R.o,K1),此结果再与Lo模2相加,又得到一个32位的数据组L0+f(Ro,Ki),以Lo+f(Ro,Ki)作为第二次加密迭代的R1,以Ro作为第二次加密迭代的L1,第一次加密迭代过程结束;第二次到第十六次加密迭代过程与第一次加密迭代相同,密钥位K2,K3,…,K16;
4)第十六次加密迭代结束后,产生两组32位数据L16,R16,各32位,组合成64位,再经过逆初始置换IP,将数据重新排列,便得到64位密文。
2、RSA加密算法
这是一个现在在网络上、银行系统、军事情报等等许多领域用处非常广泛的加密算法,已经深深的影响到我们每一个人,同时它还是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却异常困难,因此可以将乘积公开作为加密密钥。
(1)RSA密钥生成
1)选取两个大素数p,q(须保密),为了保证较高程度的安全性,p和q长度最好相同。计算p与q的乘积:n=pxq,以及数z,z=(P—l)×(q-l)。
2)随机选取正数e,使e和l互素;用欧几里德扩展算法计算解密密钥d,以满足:
3)将得到的两组数(n,e)和(n,d)分别作为公钥和私钥。
(2)加密过程
RSA算法是一种分组加密算法,加密消息肘时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),也就是说,P和q为100位的素数,那么n将有200位,每个消息分组m应小于200位长fiolo加密后的密文C,将由相同长度的分组ci组成。加密公式简化为:ci=me(modn),即对于明文M,用公钥(n,e)加密可得到密文C:
(2)式中M={mi,i=0,1,2,…},C={ci,i=O,1,2,...}。
3、两种加密算法的优劣性比较
DES和RSA加密算法的具体实现不同,其性能也有很大的差别。DES和RSA作为对称和非对称算法的典型代表,有着各自不同的优缺点。下面从几个不同的方面来比较DES和RSA算法的异同。
(1)加密解密的处理效率
DES算法运算速度优于RSA算法。DES算法密钥的长度只有56 bit,加解密速度快,可以利用软件和硬件实现高速处理;RSA算法需要进行多位整数乘幂和求模等多字长处理,运算量大且复杂,因此在处理速度上明显慢于DES算法,不适于对较长明文加密。
(2)加密算法的安全性和保密性
DES加密算法的安全性基于密钥的保密,密钥一旦丢失,任何人都可以解读密文内容;RSA算法使用不同的密钥加密解密,而且抗攻击能力很强,因此安全性较好。
(3)密钥的分配和管理
RSA加密算法比DES加密算法优越,RSA算法可采用公开形式分配加密密钥,对加密密钥的更新容易,并且对不同的通信对象,只需对自己的解密密钥保密即可;DES算法要求通信前对密钥进行秘密分配,密钥的更换困难,对不同的通信对象,DES需产生和保管不同的密钥,一旦密钥丢失会带来很大的危险。
二、基于DES与RSA的组合加密方案
通过以上我们分析了两种加密算法的优缺点,我们设计了一种基于DES与RSA的组合加密方案。
组合加密算法基本原理是:数据通信之前,用DES方法对消息明文加密,同时用RSA方法对DES密钥进行加密。这样就可以综合发挥DES高速简便性和RSA密钥管理的方便和安全性,组合加密过程的原理图如图1。
1、组合加密算法的实现
设发送方为A(加密密钥为Keb),接收方为B(加密密钥为Keb,解密密钥为Kdb),上述加密方案实现步骤如下:
1)发送方A首先生成用于DES加密的密钥X,每一个密钥K只用一次。
2)发送方A从密钥服务器中获取接收方的RSA的公开加密密钥Keb,并用Keb加密DES的密钥K,形成密文Ck。
3)发送方A用K加密明文,然后连同Ck一起形成密文C发往接收方B。
4)接收方B接收到C后,用自己的解密密钥Kdb解密即可。为了更好的保证数据的安全,发送、接收双方均删除DES密钥K。
2、DES、RSA和组合加密算法在vc++环境下的仿真结果比较
明文信息:江苏科技大学
(1)单独由DES算法加密明文结果
取DES八位密钥13572468,加密后密文:鲤WW繆。
此算法可以实现高速加密,但是密钥的传输比较困难,在通信前对密钥进行秘密分配,对不同的通信对象,需产生和保密不同的解密密钥,因此传输中存在极大的风险,一旦密钥被截获,截获方就直接可以解密得到所需要的信息。
(2) 单独由RSA算法加密明文结果
随机生成的密钥长度为1024位,加密后密文为:
04FEBF03E4535CE9DE08AClF6CAB8418850CBE889F68644C42797C2170E85E038FAFOE6F212A93EE70C6BF6AE37DECC735F780918139FD6146EAEE5E89870605CC721DB76ACOF141FF666FBD67F640D8411904062538239664CIAIA58D84EA68CC9819F7FA18CAD97F22CF6EDDOAB7968DDC19659F387EBE47A169977E6F2ABCEOA4D76C79D4CC3CE69016815C51F9E4EOOE7CB067C43EFF5D7718228807ECECF44F9A221FCC5695AF252BC4E6376EB93CDCDCD6830DCE8F9381833F3EEE5766F1DBFF2789448492D4C28EEB621FCOEAFrOA2264A31E9626A3819FEB5DOC8EF4BB8769BCAD3F63AOEFDE88ACB70BFF79FA025C3A6C988EF1858EOBE1C72AA2F6E518D9EFD040672560E4F9E98090F4A1BAOD21924480404E69796086FOD15A5FCE2F537F3A89808C9E79EBEAEF04810ACB15CADF6592F3CBB7E480143EFB2FA116A2DF89A8BA61084923F4SA95COOA1288BA4900A4383F3E605022D705444DFD3ACC6D21134F095AA258ABOOBDB330FDA4E89
加密后密文的复杂性明显大于DES的密文,而且在密钥管理方面,RSA可公开加密公钥,并且对不同的通信对象,只需对自己的解密密钥保密即可。虽然使用次算法保密性有了很大的提高,但是随着明文信息量的增加,其加密速度却大大降低,通常比DES算法慢上上百倍,因此速度是RSA算法一个的很难跨越的障碍。
(3)由组合加密算法加密明文结果
1)首先使用DES对次明文“江苏科技大学”加密,密文为:鲤W1W繆。
2)然后对DES的密钥13572468使用RSA再加密,密文为:
A63E8DC2FC6797A349768F7EB78C20BA4FEOO428E6F75C17EB57FCFDA3 F85D39A545EAB45D09E94117257CC9A50CFIB9682FFOE4D3CA86F4F17C9AC2555D3DB6DB574A4FCF8F6D57428315E4105020D9850EC288FF3CBF74210IDICD83CED5 CD3670624B388A5D47ADAE283ABD09283A4A4C9806EE334ADBCC5786A24E8DD97C621402985E357740C5A8D6C960EED5DOECCFDFD7A6A2186D67FEE07F2GC6CB8AA77A05208604E4FA2FAB28A4209A7E296E94D9D3D06BAB7210512E424 9D60A4BE0017BAF569830588E44C32ADE88C76BC5AB254C856AF6ED1057F3CD4C6FC91D39A3 46797261F9857C8EB39812A283AA06657FC78830450D32DCD789A894F5502A2AA2888C206F5 EA11AAC14221D3BD9C0330561A
3)组合算法无论在速度、密钥管理、密文复杂度上都有很大优势。由于使用DES加密大数据信息,速度较快,通信双方在传输密文的过程中,将经过RSA加密的DES密钥同时包含在内,不用再秘密交换密钥,这样就减小了密钥在传输过程中泄密的风险,虽然采用了DES算法,但不是对每一通信对象都保密相应的DFS密钥j只需保密自己相对应的RSA解密密钥就行了,密钥管理更加方便。
3、DES和RSA组合加密算法的性能分析
(1)安全性方面分析
DES算法的破解,目前比较有效的方法是穷举攻击,DES加密有8位并未参与运算,因此它的安全性是基于56位的256个组合变化,如果采用穷举法攻击,仍需要几千年,就目前来看,DES算法还是安全的。RSA加密算法的安全性是基于大素数分解的难度,破解密文相当于将两个大素数之积分解为两个因子,目前在数学上大素数的分解还是一个难题,理论上几乎无法实现。鉴于以上两点,组合加密算法是安全的。
(2)复杂度方面
对于复杂度,DES算法的时间复杂度为O(n),空间复杂度为O(n)。由于RSA算法要加密的对象是DES加密密钥,一个64位的伪随机数,所以时间复杂度和空间复杂度为常量0(1)。根据上面的讨论可知:混合加密算法的时间复杂度和空间复杂度都为O(n)。
(3)快速性方面
DES加密算法加密速度快,适合大量数据加密,RSA加密算法主要在生成大素数上费时间,当加密位数大时效率降低,而本文中使用RSA加密算法加密DES密钥,数据量较小,对RSA的加密速度不会有太大影响,速度相对较快,因此此算法快速性符合系统的要求。
小知识之综合船桥系统
综合船桥系统是实施船舶导航和控制的集成系统,它通过相互连接以集中使用来自工作站的传感器信息、命令或控制以提高操作人员管理船舶的安全性和效率。