>>所属分类 >> 通信技术    多媒体通信   

散列函数

散列函数是一种加密形式,它可在获取明文输入后将其转换为固定长度的加密输出(称为“消息摘要”)。此摘要是一组固定长度的位,这些位用作原始消息的惟一“数字指纹”。如果原始消息发生变化,并且重新用散列函数来处理,则会产生不同的签名,因此散列函数可用于检测文档是否已经过更改和经过仿造。散列函数可保证消息的完整性,从而向接收方保证消息的内容没有经过更改或破坏。

散列函数是单向的,也就是说,计算消息摘要比较容易,但将消息摘要再转换回原始明文(比如设想要将打碎的南瓜再完全恢复为它原来的面目)就是非常困难的。下面列出了散列函数的各个特征:

•散列函数应不可能使两个不同的消息产生同样的消息摘要,即散列是防冲突的。只要在一个消息中改变一个数字,就会产生一个完全不同的消息摘要,这称之为雪崩效应。

•散列函数应不可能产生具有某些预想或预先定义的输出的消息(目标消息摘要)。

•散列函数的结果应不可能反转。这一点是可能的,因为一个消息摘要可能由几乎无数个消息产生。

•散列算法本身不需要保密,它可向公众公开,它的安全性是来源于能够产生单向散列值这一点的。

•所产生的消息摘要是固定长度的。一个很短的消息的散列值与一整套百科全书的散列值将产生长度相等的摘要。

散列函数可以与密钥一起使用,也可以不与密钥一起使;如果使用了密钥,则可能会同时使用对称密钥(单密钥)和不对称密钥(公钥/私钥对)。对称密钥要求加密和解密过程使用相同的密钥,这样,密钥必须只能被加解密双方知道,否则就不安全。这种技术安全性不高,但是效率高。不对称密钥的加密和解密使用不同的密钥,分别叫做“公钥”和“私钥”。顾名思义,“私钥”就是不能让别人知道的,而“公钥”就是可以公开的。这两个必须配对使用,用公钥加密的数据必须用与其对应的私钥才能解开。这种技术安全性高,得到广泛运用,但是效率太低。

•MD-5 它是由RSA公钥加密方案发明人之一Ron Rivest设计的一个散列函数。MD-5可以把不同长度的数据块进行暗码运算成一个128位的数值。目前人们已经了解到MD—5具有一些缺点,因此应尽量避免使用它。通常建议使用SHA-1。

•SHA-1 (安全散列算法-1) SHA-1是一种类似于MD—5的算法,该算法旨在与数字签名标准(DSS)配合使用。美国的两个机构NIST(国家标准和技术研究所)和NSA(国家安全局)负责SHA-1。 SHA-1可接纳一个和多个512位(64字节)的数据块,并生成一个160位(20字节)的散列结果,这种较长的输出一般视为比MD-5更安全。

为MD-5添加密钥是一种使用MD-5的方法,其基本意思是发件人将随机生成的密钥追加到消息的末尾,然后对消息和密钥的组合形式进行散列函数处理,从而创建一个消息摘要,接下来,从消息中删除该密钥,并用发件人的私钥对该密钥进行加密,然后将消息、消息摘要和加密的密钥一起发送到收件人处,随后收件人用发件人的公钥打开密钥(这样可以验证该消息是否确实是来自发件人的),然后收件人在消息中追加密钥,并运行与发件人相同的散列函数,此时产生的消息摘要应与随消息一起发送的消息摘要相匹配。

散列函数将消息和密钥组合在一起后产生的代码称为消息验证代码或MAC。 MAC是在消息交换过程中的输入与为双方提供的密钥的组合的“指纹”或“消息摘要”。消息验证代码或 MAC 提供类似于数字签名的验证服务,但它使用一个共享的对称密钥。MAC只对那些拥有签名/验证密钥的消息有意义。

一种称作HMAC的MAC类使用keyed hash。HMAC 将对称密钥与哈希前的消息连接起来。因此,只有密钥持有者才能计算消息摘要。

计算MAC的另一种方法涉及使用密码块链接 (Cipher Block Chaning,CBC) 模式中的块密码对消息进行对称加密。在该模式中,每个明文块都与前面的密文相结合(进行 XOR 或二进制加)。最终的密文是 MAC。最常用的实施是在 CBC 模式中使用 DES 算法。

附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇数据广播下一篇因特网电话

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

收藏到:  

词条信息

baikeeditor
baikeeditor
圣贤
词条创建者 发短消息   
  • 浏览次数: 1257 次
  • 更新时间: 2010-11-26

相关词条