欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

主流数字加密技术面面观

程序员文章站 2022-04-07 09:53:03
 在信息安全领域,数字加密(密码学)是非常重要的一门学科。信息安全防御的三个目标:“进不来”、“拿不走”、“看不懂&rdq...

 在信息安全领域,数字加密(密码学)是非常重要的一门学科。信息安全防御的三个目标:“进不来”、“拿不走”、“看不懂”,在实现的过程中无不涉及数字加密,而且最后一道防线“看不懂”更是数字加密技术的直接应用。

通俗的讲,数据加密、解密是对数据的变换,涉及数学、计算机科学、电子与通信等学科,基础学科是数学。在实际应用中,数字加密被用来达成这些目标:信息保密(数据加密、文件加密),身份鉴别,数据完整性(防篡改),可信赖(数字签名、电子印章)。

数字加密的过程由加密算法和密钥组合完成。其中,密钥是参与算法实现过程中的一组关键信息(Key),根据算法的不同,有时还要分为公共密钥和私有密钥。古老的基于字符替换的古典密码(算法)已经很少使用,目前常用的加密算法按密钥管理的方式可分为对称算法、公开密钥算法。

现行的主流数据加密标准主要来自计算机的起源地美国,常用的包括DES、RSA和MD5。

 DES

DES是一个分组加密算法,它以64位分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出,算法需要进行16轮编码。

DES是一个对称算法,加密和解密用的是同一算法。密钥长度为64bit,其中有效密钥长度56bit,其余8bit为奇偶校验。DES的整个*是公开的,系统的安全性主要依赖密钥的保密。

DES主要用于数据传输加密。

 RSA

RSA在1978年诞生于美国名校MIT。简单地说,就是两个很大的质数,一个公开,另一个保密,前者成为“公用密钥”,后者成为“私有密钥”。这两个密钥相互补充,即公用密钥的密文可以用私有密钥来解密,反之也成立。

RSA要求每一个用户拥有自己的一种密钥:公开的加密密钥,用以加密明文;保密的解密密钥,用于解密密文。

在RSA密钥*的运行中,当A用户发文件给B用户时,A用户用B的公开密钥加密明文,B用户则用解密密钥解读密文。

RSA密钥可从40位到2048位,加密时块大小可变,但不超过密钥的长度,RSA算法把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但开销也大。常用128bit-512bit长度的密钥,具有非常高的加密强度。硬件实现的最快的RSA算法所消耗的时间也是DES算法的1000倍。

RSA属于密钥传输(交换)加密,比较知名的应用SSL、PGP都成功应用了RSA算法。

 MD5

MD5,即Message-Digest Algorithm 5(信息-摘要算法),它是一种基于杂凑函数(HASH)的密码算法,由RSA的设计者R.Rivest于20世纪90年代初开发出来。

MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前“压缩”成一种保密的格式,关键之处在于--这种“压缩”是不可逆的。

MD5的典型应用是对一段信息产生信息摘要(Message-Digest),防篡改。MD5算法通过其不可逆的字符串变换算法,产生了一个唯一的MD5信息摘要。如果有第三方认证机构,则MD5就可以防止文件作者“抵赖”,即所谓的数字签名。

MD5算法:以512位分组来处理输入的信息,且每一个分组又被划分为16个32位子分组。经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32为分组级联后将生成一个128位散列值。

2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。在数小时内,给出的算法可以使两个文件可以产生相同的“指纹”。可见这种方法并不是万能的。