分类筛选
分类筛选:

常见方面有关自考开题报告范文 与聊聊常见的三大加密算法类学年毕业论文范文

版权:原创标记原创 主题:常见范文 类别:发表论文 2024-03-10

《聊聊常见的三大加密算法》

本文是常见类有关毕业论文怎么写和聊聊和三大加密算法和常见相关自考开题报告范文。

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.

加密建立在对信息进行数学编码和解码的基础上.加密类型分为两种,对称加密与非对称加密,对称加密双方采用共同密钥(当然这个密钥是需要对外保密的),这里讲一下非对称加密,这种加密方式存在两个密钥:一种是公共密钥(正如其名,这是一个可以公开的密钥值),一种是私人密钥(对外保密).发送信息时,使用公共密钥加密信息.一旦收到加密信息,则使用私人密钥破译信息(被公钥加密的信息,只有唯一的私钥可以解密,这样,就在技术上保证了这封信只有收件方才能解读———因为别人没有私钥).使用私人密钥加密的信息只能使用公共密钥解密反之亦然,以确保信息的安全.

MD5 算法

MD5 的全称是Message-Digest Algorithm 5,在20 世纪90年代初由MIT 的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3 和MD4 发展而来.

MD5 将任意长度的“字节串”变换成一个128 bit 的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5 的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数.MD5 的典型应用是对一段Message(字节串)产生fingerprin(t 指纹),以防止被“篡改”.举个例子,你将一段话写在一个叫readme.txt 文件中,并对这个readme.txt 产生一个MD5 的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5 时就会发现.如果再有一个第三方的认证机构,用MD5 还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用.

MD5 还广泛用于加密和解密技术上,在很多操作系统中,用户的是以MD5 值(或类似的其它算法)的方式保存的,用户Login 的时候,系统是把用户输入的计算成MD5 值,然后再去和系统中保存的MD5 值进行比较,而系统并不“知道”用户的是什么.在一些初始化处理后,MD5以512 位分组来处理输入文本,每一分组又划分为16 个32 位子分组.算法的输出由四个32 位分组组成,将它们级联形成一个128 位散列值.

首先填充消息使其长度恰好为一个比512 位的倍数仅小64 位的数.填充方法是附一个1 在消息后面,后接所要求的多个0,然后在其后附上64 位的消息长度(填充前).这两步的作用是使消息长度恰好是512 位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同.

MD5 的安全性

MD5 相对MD4 所作的改进:

1.增加了第四轮.

2.每一步均有唯一的加法常数.

3. 为减弱第二轮中函数G 的对称性从(X&Y)|(X&Z)|(Y&Z)变为(X&Z)|(Y&(~Z)).

4.第一步加上了上一步的结果,这将引起更快的雪崩效应.

5.改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似.

6. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应,各轮的位移量互不相同.

ES 算法

美国国家标准局1973 年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973 年5 月15 日和1974年8 月27 日先后两次向公众发出了征求加密算法的公告.加密算法要达到的目的(通常称为DES 算法要求)主要为以下四点:

1. 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;

2. 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;

3. DES 体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;

4. 实现经济,运行有效,并且适用多种完全不同的应用.1977 年1 月,美国政府颁布:采纳IBM 公司设计的方案作为非机密数据的正式数据加密标准(DES DataEncryptionStandard).

目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC 卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN 的加密传输,IC 卡与POS 间的双向认证、金融交易数据包的MAC 校验等,均用到DES 算法.

DES 算法的入口参数有三个:Key、Data、Mode.其中Key为8 个字节共64 位,是DES 算法的工作密钥;Data 也为8 个字节64 位,是要被加密或被解密的数据;Mode 为DES 的工作方式,有两种:加密或解密.

DES 算法是这样工作的:如Mode 为加密,则用Key 去把数据Data 进行加密,生成Data 的形式(64 位)作为DES的输出结果;如Mode 为解密,则用Key 去把形式的数据Data 解密,还原为Data 的明码形式(64 位)作为DES 的输出结果.在通信网络的两端,双方约定一致的Key,在通信的源点用Key 对核心数据进行DES 加密,然后以形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key 对数据进行解密,便再现了明码形式的核心数据.这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性.

通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法.

DES 算法详述

DES 算法把64 位的明文输入块变为64 位的密文输出块,它所使用的密钥也是64 位,其功能是把输入的64 位数据块按位重新组合,并把输出分为L0、R0 两部分,每部分各长32 位,其置换规则见下表:

58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

即将输入的第58 位换到第一位,第50 位换到第2 位……

依此类推,最后一位是原来的第7 位.L0、R0 则是换位输出后的两部分,L0 是输出的左32 位,R0 是右32 位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:

L0等于D58D50……D8;R0等于D57D49……D7.

经过16 次迭代运算后.得到L16、R16,将此作为输入,进行逆置换,即得到密文输出.逆置换正好是初始置的逆运算,例如,第1 位经过初始置换后,处于第40 位,而通过逆置换,又将第40 位换回到第1 位.

DES 算法的应用误区

DES 算法具有极高安全性,到目前为止,除了用穷举搜索法对DES 算法进行攻击外,还没有发现更有效的办法.而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285 年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES 密钥的长度再增长一些,以此来达到更高的保密程度.

由上述DES 算法介绍我们可以看到:DES 算法中只用到64 位密钥中的其中56 位,而第8、16、24、……64 位8 个位并未参与DES 运算,这一点,向我们提出了一个应用上的要求,即DES 的安全性是基于除了8,16,24,……64 位外的其余56位的组合变化256 才得以保证的.因此,在实际应用中,我们应避开使用第8,16,24,……64 位作为有效数据位,而使用其它的56 位作为有效数据位,才能保证DES 算法安全可靠地发挥作用.如果不了解这一点,把密钥Key 的8,16,24,……64位作为有效数据使用,将不能保证DES 加密数据的安全性,对运用DES 来达到保密作用的系统产生数据被破译的危险,这正是DES 算法在应用上的误区,留下了被人攻击、被人破译的极大隐患.

RSA 算法

RSA(SecureElectronicTransaction)是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest\Adi Shamir和Leonard Adleman.但它的安全性一直未能得到理论上的证明,虽然它经历了各种攻击,至今未被完全攻破.

RSA 算法:

首先,找出三个数p、q、r,其中p、q 是两个相异的质数,r是与(p-1)(q-1)互质的数,p、q、r 这三个数便是privatekey.接著,找出m,使得rm等于1mod(p-1)(q-1)……这个m 一定存在,因为r 与(p-1)(q-1)互质,用辗转相除法就可以得到了.再来,计算n等于pq……m,n 这两个数便是publickey.

编码过程是,若资料为a,将其看成是一个大整数,假设a<n……如果a>等于n 的话,就将a 表成s 进位(s<等于n,通常取s等于2^t),则每一位数均小於n,然後分段编码……接下来,计算b等于等于a^mmodn,(0<等于b<n),b 就是编码後的资料.解码的过程是,计算c等于等于b^rmodpq(0<等于c<pq),於是乎,解码完毕.

如果第三者进行窃听时,他会得到几个数:m,n(等于pq),b……他如果要解码的话,必须想办法得到r.所以,他必须先对n 作质因数分解.要防止他分解,最有效的方法是找两个非常的大质数p,q,使第三者作因数分解时发生困难.

RSA 的安全性

RSA 的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明RSA 就一定需要作大数分解.假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法.目前,RSA 的一些变种算法已被证明等价于大数分解.不管怎样,分解n 是最显然的攻击方法.现在,人们已能分解多个十进制位的大素数.因此,模数n必须选大一些,因具体适用情况而定.

RSA 的速度

由于进行的都是大数计算,使得RSA 最快的情况也比DES 慢数倍,无论是软件还是硬件实现.速度一直是RSA 的缺陷.一般来说只用于少量数据加密.

RSA 的选择密文攻击

RSA 在选择密文攻击面前很脆弱.一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署.然后,经过计算就可得到它所想要的信息.实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:(XM)^d等于X^d*M^dmodn.

这个固有的问题来自于公钥系统的最有用的特征———每个人都能使用公钥.但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-WayHashFunction 对文档作HASH 处理,或同时使用不同的签名算法.

RSA 算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作.RSA 是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一.RSA 的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA 的难度与大数分解难度等价.即RSA 的重大缺陷是无法从理论上把握它的保密性能如何,而且学界多数人士倾向于因子分解不是NPC 问题.RSA 的缺点主要有:(A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密.(B)分组长度太大,为保证安全性,n 至少也要600 bits 以上,使运算代价很高,尤其是速度较慢,较对称算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化.

常见论文参考资料:

综上资料,本文是适合不知如何写聊聊和三大加密算法和常见方面的常见专业大学硕士和本科毕业论文以及关于常见论文开题报告范文和相关职称论文写作参考文献资料。

和你相关的