常见加密解密算法及原理探究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见加密解密算法及原理探究
发表时间:2019-01-11T10:35:53.427Z 来源:《科技新时代》2018年11期作者:陈骥
[导读] 当今世界是数据和信息的世界,我们无时无刻不生活在信息之下。与此同时安全隐患也随之增加,如何就其进行信息保护是当前及未来面临的重要问题。
四川外国语学院重庆第二外国语学校重庆 400060
摘要:当今世界是数据和信息的世界,我们无时无刻不生活在信息之下。与此同时安全隐患也随之增加,如何就其进行信息保护是当前及未来面临的重要问题。密码保护是当前广泛使用的手段,加密解密算法是常使用的具体方法,常用的有RSA、DES等,在新的科技形式下我们需要就其进行新的探究。本文介绍了几种现今常见的加密解密算法及其原理,并对密码保护进行了一定展望。
关键词:信息安全;密码;算法
1. 加密解密技术概述
1.1加密解密技术概念
随着互联网的迅速崛起,移动支付变得触手可及,个人信息数据越来越成为普遍性的东西,其安全问题也越来越紧迫。密码技术是取得信息安全的核心技术,通过数据加密可以有效的保证数据不被泄露。加解密系统有对称加密和非对称加密,采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。这种加密方法优势在于速度快,通常在需要加密大量数据时使用。对称代表着双方需要用相同的密钥进行加密和解密,密钥是控制加密和解密过程的指令。算法相当于是一种规则,规定如何进行加密和解密。非对称加密则需要两个密钥,一个是公开密钥一个是私有密钥。公开密钥与私有密钥对应,只能用对应的公开密钥或私有密钥与之对应。非对称加密算法相对较复杂因此速度也会相对较慢。随着当今世界网络技术的发展和互联网活动的日益频繁,数据的重要性也使数据的价值远远超出了纯粹的网络技术的意义,因此如何保护人们的信息安全成为一个热点话题,网络安全需求越来越迫切,在这样的背景之下,加解密算法的研究也越来越重要。
1.2密码技术发展历程
密码学是一个古老的学科,在1949年,信息论的创始人香农论证出了由传统加密所加密的密文都是可以破解的,这在当时让密码学陷入了困境。直到20世纪60年代,计算机技术的迅猛发展以及结构代数等学术成果的出现,是密码学进入了一个崭新发展的时期。特别是美国的数据加密标准DES和公开密钥密码体制的推出,为密码学奠定了坚实的基础。进入90年代后,计算机网络的发展使得电子商务出现在人们的视野之中,这无疑推动了加密解密技术的发展。目前网络已经处于信息爆炸的阶段,信息量已经发展到鼎盛的时期,在数据加密方面,无论是军事、外交还是在个人的网银、电子商务等方面都是已经有着相当成型的应用,因此加强信息加密技术的发展一直要处于一个不可松懈的状态之中。如微信小程序的加密现如今的加密技术已经相当成熟,但仍然无法完全避免信息泄露,因此随着网络发展的更新,加解密技术也需要与时俱进,快速的更新迭代。因此我们必须加快对加密解密算法的研究。 [1]
2 常见的加密解密算法及比较
2.1 RSA算法的基本实现原理
首先明确素数和互素数的概念:
素数:又名质数,是大于1的自然数中,除了1和其本身不再有其他的因数的自然数。
互素数:公因数只有1的两个或多个非零自然数。
如上所述,加解密分为对称非对称,而RSA则是一种非对称的算法。它需要一对秘钥来配合进行加解密,我们将其区分为公开和私有两种秘钥,一般来说,加密步骤使用公开秘钥,而与之对应的私有秘钥则进行解密运算。两个过程所使用的是算法不同,因此我们称之为非对称的运算。这种算法的加密过程基本是完全公开的,但解密所需的私有秘钥却是保密的,这保证了其安全性。其基本过程如下,先选择两个不同的素数,记为p、q,且这两个数应该足够大且严格保密,二者相乘得到另一个数,记为n,
使用公式f(n)=(p-1)(q-1),之后找一个f(n)的互质数e,在这同时e需要大于1小于f(n)。继而通过模指数运算来得出d使得d与e的乘积做模运算后的结果也必须要等于1,最后得到公开密钥(e,n),私有密钥(d,n)。加密时将明文变换成0至n-1的一个整数m,当明文较长时可以将其进行适当的分割成组,然后进行交换。加密解密过程均通过欧拉函数完成。
RSA加密算法的安全性与缺陷。RSA算法安全性比较高,其基本原理是两个素数的乘积容易求得,但是其因式分解却非常困难。正是由于这这个原因,RSA算法的安全性在很大程度上都依赖于大数因式分解的难度,目前密码的破译主要有两种方法,一是穷尽搜索法,类似于数学中的穷举法,尽管大部分密钥是失败的但最终总会有一个密钥让破译者得到明文。其二是密码直接分析,使用穷举法需要对大量数据进行数学运算,而这对于RSA来说则是极为困难的。因此只能通过密码分析来尝试破解RSA。但这样一来难度也非常大,因为在破译的过程中会遇到很多现在无法解决的数学难题。虽然RSA算法看似安全性很高,但这使得它在运算时速度太慢,由于RSA的分组长度比较大,为了保证其安全性,需要承担很大的运算代价,在未来素数分解技术不断发展的情况下,这个分组长度还会不断增加,一般来说只用于少量数据的加密。[2] [3]
2.2 DES加密算法实现的基本原理
DES是一个分组加密算法,它以64位为一个分组对数据进行加密,由于其中有8位用于奇偶校验因此有效长度为56位。预先对选择好的64位的明文进行分组,然后将其置换分为左右各32位的两个部分,之后对其进行一系列的函数运算,使其与秘钥进行结合,而后循环进行16轮的运算。完成后将左右两部分合并通过末置换即初始置换的逆运算即可完成算法。
2.3 AES加密算法实现的基本原理
AES的基本原理是数据的排列,首先将其打乱然后重新排列,然后进行置换操作,使用新的数据来替换原来的的以完成加密过程。由于它是一个迭代的、对称加密分组的加密方式,因此它可以使用128、192和256位密钥,构成一个循环的结构,在其中重复进行置换和