MD5(Hash函数算法)+盐值加密算法详解

本文参考资料:

[1]李森. MD5算法的分析与研究[D].杭州电子科技大学,2018.

[2] 不吹牛逼我教你口算MD5-腾讯云开发者社区-腾讯云

[3] 算法基础--MD5算法介绍-CSDN博客

[4] https://blog.csdn.net/weixin_67603503/article/details/143316977

MD5+盐值加密算法简介

MD5算法属于Hash函数算法的一种。在1992年,Rivest在MD4算法的基础上设计出了MD5算法,其安全性要比MD4算法的安全性高。但是该加密算法于2004年被王小云教授破解,导致其在安全性上大打折扣。于是要想办法加强该算法的安全性,其中一种方法就是采用加盐值的方法。本文先介绍Hash函数的定义和性质,再介绍针对Hash函数的攻击方法,再具体分析MD5算法的原理,最后采用加盐值的方法,增强该加密算法的安全性。

定义:Hash函数是一个映射 h:{0,1}*→{0,1}n; {0,1}*是任意长度的明文消息。{0,1}n是长度为n比特的Hash值。那么从该定义可以看出,Hash函数是一个压缩的过程,因为明文长度可能很长,最终被压缩成为有限的密文空间。Hash函数可以依据是否使用密钥将其分为两类:带密钥和不带密钥的Hash函数。从上世纪90年代至今,在密码学中应用的Hash函数几乎都是不带密钥的。上述定义中也是不带密钥的Hash函数。

性质:对于一个给定的输入消息,去计算消息的Hash值是简单的。因此Hash函数在信息安全领域得到了普遍的应用。那么,安全的Hash函数应当符合以下条件:

  1. 压缩性:对于既定的任何的输入明文M∈{0,1}*,输出的Hash值为h=H(M)∈{0,1}n,并且h是很容易得到的;
  2. 抗碰撞攻击:已知输入消息M,寻找另外一个消息M’≠M,满足H(M)≠H(M’),在运算上是非常不容易的;
  3. 抗原像攻击:对任意一个明文M∈{0,1}*,通过Hash函数的运算,很轻易的得到h=H(M) ∈{0,1}n,但是从M的Hash值H(M)很难反向推出其对应的明文M,此时明文M被称为Hash值H(M)的原像。由于Hash函数具有单向性,因此它具有抗原像攻击性;
  4. 抗第二原像攻击:对于给定的明文消息M,通过Hash函数的运算可以得出M的Hash值H(M),找到另外一个不同的M’使得H(M’)=H(M)是非常困难的。

以上为Hash函数的四个性质,对于该性质的后面三条性质,有一些攻击方法针对于此。

在对Hash函数进行攻击时,攻击者的目的就是找到碰撞或原像。Hash函数的攻击方法有以下几种:

  1. 碰撞攻击:找到两个不一样的明文,通过Hash函数的运算,得到一样的Hash值;
  2. 原像攻击:对于一个给定的Hash值,攻击者企图寻找产生该Hash值的明文(原像);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值