杨 雨 宋可鑫 王宇涵 王炳尧 夏 辉沈阳师范大学软件学院,辽宁 沈阳 110000
RSA 算法是一种常用的对信息加密的方法,是互联网通信加密的基础。也就是说有互联网的地方就有RSA 算法。使用RSA 算法可以生成公钥和私钥。私钥被服务器所保留,而公钥则是被客户端所保留。同时,私钥可以解密出公钥所加密的内容,私钥加密的信息也只能被公钥解出。因此,只要保证私钥不遭到泄露,双方的通信安全就会得到保证。一种普适的对信息加密的办法便是防火墙,但效率较低。DES 加密算法技术用于搜寻计算机中的保密信息,信息加密由DES 加密算法处理,同时管理计算机的信息密钥,从而实现信息的保密。本文介绍了密码学的主要发展历程,现代社会中主要用到的数据加密理论,RSA 算法和DES 算法加密理论,以及将两者相结合改进出的一种较为高效的算法。
从古至今,人们对密码学的探索热情不减,如今主流应用的加密算法大都是在混淆发散思想基础上,不断进行改进和提升而发展来的。混淆的主要作用是模糊明文、密文以及它们之间存在的关系;发散则是尽量地表达出明文和密钥在密文中的影响。与此同时,密码学不仅要保证消息的安全性,同时还要保证其完整性,现如今被广泛地应用于身份验证和签名等情景下。
网络的大规模应用,使得人们的生活更加方便,但凡事都有两面性,与此同时也给生活带来了一些隐患,如个人隐私的泄露,甚至信息被篡改也都变得屡见不鲜。因此,在复杂网络环境下全面细微地分析加密技术对数据通信具有重要的现实意义,能为人们安居乐业提供保障。与此同时,随着技术推陈出新,以及集成电路规模变大,越来越多的设备会用集成度更高的嵌入式系统,并加密一些机要信息,用于防止通信过程中出现的问题。因此,密码学逐渐被广泛应用于嵌入式设备和网络空间中,这对保护设备的正常运行,建立安全可靠的通信环境发挥着不可替代的作用,安全的网上购物体验需要更安全可靠的保护手段,此过程中应用一系列安全协议和加密技术可以有效地保证通信安全。
现代加密算法大致可分为两类:一类是分组加密算法,另一类则是序列密码。分组加密算法将信息分为几个组,每个组再分别进行加密。最后,将每组的密文凑在一起,从而形成整个消息的密文。分组加密算法根据特点,可分为对称和非对称加密算法。加密和解密用相同密钥处理的是对称加密算法;加密(解密)使用公钥(私钥)对数据进行处理则是非对称加密算法。序列密码使用一个随机数生成器,生成与明文长度相同的密钥加密明文来获取密文。
数据加密简单概括来说就是对数据的隐藏,整个加密过程最主要的部分则是明文数据的处理。许多人无法读懂的编码就称为密文,用解密密钥解密密文时,原始文本的内容便会显现出来,流程如图1 所示。从密钥的类型来看又有对称和非对称加密算法之分。
图1 加密、解密流程
加密效率和处理速度高是其主要特点,由于加解密所用的密钥相同,这也就会造成算法的安全性与密钥是直接相关的,如果想要保证信息安全传输过程中采用该算法,在传输前传输双方应该先对密钥进行敲定才能进行接下来的传输任务,同时对密钥进行安全保存,假如其中一方在传输过程中造成了密钥泄露,那么整个通信过程就会变得不安全。
加密解密两个过程分别有一个密钥,公钥(私钥)用于对信息的加密(解密)。当使用相应的公钥(私钥)进行信息的加密(解密)时,如果想要解出被私钥加密的信息,那么必须使用对应的公钥处理,反之亦然。公钥可以发送给其他请求用户,但私钥只能由私钥方妥善保管以保证双方通信的安全性。在数据传输过程中,可以很好地处理对称加密算法中密钥的传输安全问题。然而,由于在此算法中加解密的过程需要耗费更多时间和精力,所以相对于对称加密而言,其在速度方面仍然存在不足,也仅适合于对小信息量的数据进行加密处理。
为了保证DES 算法的安全性,其用56 位密钥对64 位密钥加密,并进行16 轮的编码扩展,在扩展每一轮编码的过程中,替换56 位密钥用于获得48 位密钥。在每一轮编码过程中,在S 盒中输入64 位数据和键值,然后再进行压缩编码,在开始和完成每一轮编码时,以及在每一轮之间,都会使用一种特殊的方式来替换64 位数据以中断数字序列,在处理所有步骤时,需要从64 位密钥中获取一轮次的密钥,最后,最初输入的原始数据将被中断并转换为输出数据。为了将这些数据转换为原始的数据,也必须经过解密过程。DES 数据加密算法流程如图2 所示。
图2 DES 数据加密算法流程
DES 数据加密算法根据其主要特点可归属于强加密算法,目前,也只能是以穷举法尝试加密算法密钥空间来实现解码。二次加密算法有一个56 位长的密钥和8 位长的奇偶校验位,56 位长的密钥就有穷举空格255 个,搜索所有钥匙并验证需要千年的时间,即使是用每秒检查近百万次的计算机,这个工作量也是巨大的。曾有小组对DES 加密密钥安全性提出质疑,经过不懈的努力,最终实现了破译。但在此过程中利用了大学、政府等多种场合的计算机资源,通过各个地方的分工协作才破解了该加密算法,虽然对安全系统的攻击成功了,但对于一名普通的计算机黑客来说,通过此方法窃取信息是相对不现实的。除此之外,在解码的时候,小组的密钥是静态密钥,这种条件在实际生活中基本不会发生,因为实际生活中密钥主要是动态变化的,并不是静态不变的,于是可以得出,使用了DES 加密算法的数据通信的安全性可以被有效地保护。
DES 算法解密原理:DES 解密与加密的过程基本相同,不同的是16 轮迭代使用子密钥的顺序。与加密时使用的顺序相反,解密过程中,子密钥K
用于第1 轮迭代,K
用于第2 轮,以此类推。假设LE
和RE
表示加密过程中间数据,用LD
和RD
表示解密过程中间数据,那么可以得出在每轮解密过程的中间值与加密过程的中间值左右交换结果一样,即在第i
轮加密的输出为LERE
,则在第i
轮解密的相应输出是RELE
。那么在第一轮解密过程的输出和第16 轮加密过程的输出间交换的值是否相同?
其实除了加密(解密)的初始置换(逆初始置换)之外,DES 过程和费斯妥密码结构是一样的。
对于加密过程:
而对于解密过程:
运算具有以下性质:
由此可见,DES 的解密过程是正确的。
1977 年罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)提出RSA 公钥加密算法。1992 年,RSA 算法正式被ISO 纳入国际标准。RSA 算法自发表以来,已然逐渐成为世界上应用最广泛的加密算法之一。RSA 算法由于其良好的安全性,在我们生活的众多领域得到了广泛使用。同时RSA 算法是第一个可并用于数字加密和数字签名的算法,包括密钥生成、加密和解密3 个部分。传统的RSA 加密算法主要包括素数的生成、密钥的生成、加密的明文和解密的密文几个部分所组成。
近年来,RSA 加密算法不断受到挑战,但在很多场景下,个人信息安全得到了很好的保障,表现出良好的效果。
n
是否为素数,写一个循环从2 到sqrt(n
)判断其能否整除n
,若都不能则n
为素数。如果n
比较小的话,采用试除法当然是高效快捷的。但是当n
很大的时候,这个算法就行不通了。②复合数过滤法:对0 到n
范围内的所有数字,逐个排除2 到(n
-1)倍数的数字,其余为素数;Miller-Rabin 算法随机生成若干个a
,利用Fermat 小定理和二次检测定理去检测素数,以及生成伪素数并对其检测素数,但只能判定一个数可能是素数。用于生成加解密要用到的密钥对,过程如下:
(1)随机生成两个素数p
和q
,并且满足p q
。(2)计算出n
=p
×q
。(6)得到密钥对,公钥为(n
,e
),私钥为(n
,d
)。加密过程中通过处理原始数据获得密文。计算公式如下:
其中,M
为原始数据,(n
,e
)为给用户的公钥,C
则是加密后的密文。解密过程中使用私钥解锁密文以获取原始数据。计算公式如下:
其中,C
为传送的密文,(n
,d
)为私钥,M
是解密后的原始数据。在安全性上,DES 算法仅采用64 位密钥加密,而RSA 算法则与素数有关(素数越大安全性越高)。在加密速度上,DES 算法要优于RSA 算法。在密钥生成管理上,DES 算法由于密钥长度较短而导致密钥管理问题,而RSA 算法每次加密产生至少2位的大素数,比较费劲。在应用中,DES 算法具有加密速度和安全性高的特点,较适合用于大规模数据的加密,而RSA的加密速度慢,密钥麻烦,它仅仅适用于加密较小数据和数字签名。在算法上,DES 算法可以在软件或硬件上快速实现,而RSA 算法一般在硬件上开发,软件提供支持。
双方在通信前协商一个密钥,在DES 对称加密算法中,加密(解密)密钥相同或者相互派生,由此可见,该算法的安全性取决于密钥。DES 对称加密算法的原理是使用替代、换位和屏蔽实现16 次迭代,虽然加密速度快,但其安全性却不能得到保证。RSA 非对称加密算法是一种基于大数不可能质因数分解的公钥体制,其中公钥用于加密明文,私钥用于解密密文。当选择的两个互质素数够大且复杂时,算法可以看作安全的,但由于RSA 算法的密钥生成复杂且耗时,加密效率低于DES 算法,由此可见,较适用于加密小类型的数据。
综上所述,两种算法单方面都不够完美,却可以实现功能方面的互补,如果能很好地将这两种算法进行结合,设计出一种混合算法,在安全性得到保证的前提下,加密的效率也会有所提升。
对称加密算法在使用的过程中加密效率高但达不到绝对安全,那么就可以结合两者的优点(RSA 算法对DES 的密钥加密)实现传输更安全高效。
DES 和RSA 混合加密算法具体如下。
对于明文数据M
,发送方首先使用DES 算法替换加密数据的IP
,同时把加密数据单元也分为L
和R
。(4)将获得的L
和R
替换为IP
,并恢复为原始明文数据M
。DES 和RSA 混合加密算法示意如图3 所示。
图3 DES 和RSA 混合加密算法示意
随着现代社会高速发展,传统算法已经无法跟上时代的发展,因此算法健壮性也需要不断发展。基于混沌序列(混沌系统)的DES 算法,可以使加密密钥保持动态,从而能够实现一次一密,即使黑客在信道中得到了一组密钥,那么也难以依此推导出剩下的密钥,从而使系统安全性得到保证。同时,只要两端的混沌初值相同,密钥便可同步,安全性能就能得到改善。
随着现代科技的快速发展,人们也开始注重信息安全问题。尽管各种维护网络安全的技术喷涌出现并实际应用,但必须说,加密技术在网络安全中的作用是无与伦比的。在日益信息化的社会中,信息保密工作做得如何,毫不夸张地说能关系到国家安全和社会稳定。因此,我们需要不断探索和发现新的技术,不断进步,从而可以使信息更安全。密码学在取得显著发展和进步的同时,也是机遇与挑战共存。虽然在计算速度和强度方面对称加密能够适应机密信息的传输,但在网络中共享密钥的传输仍然存在困难;虽然在密钥管理和通信方面非对称加密技术较方便,但速度较慢。基于DES 和RSA 的混合密码结合了公钥密码和对称密码的特点以及拥有易于密钥分配的特点,具有计算过程简洁化、运行速度快速化的显著特点,适用于传输大量数据的应用程序。对于增强网络空间的防御和攻击能力、确保网络空间安全有重要作用。密码学作为网络空间安全保障的“安全基因”,以及构建网络空间治理体系安全的重要基础,发挥着不可替代的作用。