网络安全-安全散列函数,信息摘要SHA-1,MD5原理
-----------------------------------------------欢迎查看网络安全连载博客-----------------------------------
【网络安全】-安全散列函数。信息摘要SHA-1。MD5算法 【网络安全】-非对称加密,RSA算法,数字签名
【网络安全】-RSA非对称算法算法、数字签名 【网络安全】-建立安全socket连接、登录
【网络安全】-【数字证书,证书链】
---------------------------------------------------------------------------------------------------------------------
本文绝大部分内容来自《网络安全基础——应用与标准》第五版——清华大学出版社。
当中蓝色部门是自己加入
安全散列函数
单向散列函数或者安全散列函数之所以重要,不仅在于消息认证(消息摘要。数据指纹)。还有数字签名(加强版的消息认证)和验证数据的完整性。常见的单向散列函数有MD5和SHA
散列函数的要求
散列函数的目的是文件、消息或者其它数据块产生“指纹”。为满足在消息认证中的应用,散列函数H必须具有下列性质:
(1)H可适用于随意长度的数据块。
(2)H能够生成固定长度的输出。
(2)对于随意给定的x,计算H(x)相对easy,而且能够用软/硬件实现。
(4)对于随意给定的h,找到满足H(x)=h的x在计算上不可行。满足这一特性的散列函数称之为:具备抗原像攻击性。
(5)对于随意给定的数据块x,找到满足H(y)=H(x)的y ≠ x在计算上是不可行;满足这一特性的散列函数称之为:抗弱碰撞性。
(6)找到满足H(x) = H(y)的随意一对(x,y)在计算上是不可行的。
满足这一特性的散列函数称之为:抗碰撞性。
前三个性质是使用散列函数进行消息认证的实际可行要求。第四个属性,抗原像攻击,防止攻击者能够回复秘密值。抗弱碰撞性保证了对于给定的消息。不可能找到具有同样散列值的可替换消息。
满足上面前5个性质的散列函数称之为弱散列函数。
假设还满足第6个性质则称之为强散列函数。
一般来说:能够认识散列函数的两个特点就OK,1.输出固定长度的 2. 不可逆转!
散列函数的安全性
有两种方法能够攻击安全散列函数:password分析法和暴力攻击法。
散列函数抵抗暴力攻击的强度全然依赖于算法生成的散列码长度。
Van Oorschot和Wiener以前提出,花费1000万美元涉及一个被专门用来搜索MD5算法碰撞的机器,则平均24天内就能够找到一个碰撞。
2004年8月中国password学家王小云教授等首次发布了提出一种寻找MD5碰撞的新方法。眼下利用该方法用普通微机几分钟内就可以找到MD5的碰撞。MD5已经呗彻底攻破。
简单散列函数
例如以下所看到的
Ci = bi1⊕ bi2⊕ … ⊕ bim
SHA安全散列函数
由于其它每一种被广泛应用的散列函数都已经被证实存在这password分析学中的缺陷。接着到2005年,SHA也许仅存的安全散列算法。SHA由美国国家标准与技术研究院(NIST)开发。
● 2002年,发布了SHA-2(SHA-256、SHA-384、SHA-512)
● 2008年,添加了SHA-224
如图所看到的:
● 第1步、追加填充比特
● 第2步、追加长度
● 第3步、初始化散列缓冲区
这些字的获取方式例如以下:前8个素数取平方跟,取小数部分前64位。
● 第4步、处理1024比特的数据块消息
该模块在上图中标记为F,下图是其逻辑关系。每一轮都以512比特的缓冲区值abcdefgh作为输入。而且更新缓冲区内容。
在第一轮时,缓冲区的值是中间值Hi-1.在随意t轮。使用从当前正在处理的1024比特的数据块(Mi)导出64位比特值Wt。每一轮还使用附加常数Kt。当中0<=t<=79表示80轮中的某一轮。这些常数的获取方式例如以下:前8个素数的立方根。取小数部分的前64位。这些常数提供了64位随机串集合,能够初步消除输入数据中的不论什么规则性。第80轮输出加到第1轮输入(Hi-1)生成Hi。
缓冲区里的8个字与Hi-1中对应的字进行模264加法运算。
● 第5步、输出
网络安全-安全散列函数,信息摘要SHA-1,MD5原理的更多相关文章
- 【转】java MessageDigest类的作用 :提供信息摘要 算法( MD5 或 SHA 等)的功能
一.结构和概述: java.lang.Object java.security.MessageDigestSpi java.security.MessageDigest 声明:public abstr ...
- SHA信息摘要
SHA算法是在MD4的基础上演进而来的,通过SHA算法能够获得一个固定长度的摘要信息. SHA算法系列有SHA-1(也成为SHA),SHA-224,SHA-256,SHA-384和SHA-512这 ...
- base64,AES,RSA,SHA和MD5等加密方式(jdk)
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...
- PHP的Hash信息摘要扩展框架
今天我们主要学习的是 PHP 中一些 Hash 散列加密相关的扩展函数的使用,而不是 Hash 算法,这种加密其实也只是一种更复杂一些的密钥算法,与 Hash 算法类似的是,我们输入的一串字符串,就像 ...
- Java 消息摘要 散列 MD5 SHA
package xxx.common.util; import java.math.BigInteger; import java.security.MessageDigest; import jav ...
- 信息加密之信息摘要加密MD2、MD4、MD5
对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD.它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后, ...
- MAC信息摘要
MAC(Message Authentication Code ,消息认证码算法)是含有密钥散列函数算法,兼容MD和SHA算法的特性,并在此基础上加入了密钥.因此,MAC也称为HMAC. ...
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
1.算法概述 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名.数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密.数据摘要算法也被称为哈希(H ...
- SHA和MD5的Salt
常用的对称加密算法有:DES.3DES.RC2.RC4.AES 常用的非对称加密算法有:RSA.DSA.ECC 使用单向散列函数的加密算法(摘要算法):MD5.SHA 那么什么是salt?生成一个随机 ...
随机推荐
- 洛谷 P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…
题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. The cow ...
- [转帖]4412开发板/4418开发板Android4.4.4实现ble功能
本文转自迅为论坛:http://bbs.topeetboard.com ①.4418开发板实现ble功能方法: 在4418/android/device/nexell/drone2/device.mk ...
- cal - 显示一个日历
总览 cal [-mjy ] [月份 [年份 ] ] 描述 Cal 显示一个简单的日历.. 如果没有指定参数, 则显示当前月份. 选项如下所列: -m 显示星期一作为一周的第一天.. (缺省为星期日. ...
- css 最高权重 !important;
border-top: 1px solid #ccc !important;
- WebDriver的多浏览器测试的浏览器驱动程序
1.在使用IE浏览器进行WebDriver自动化测试之前,需要从http://docs.seleniumhq.org/download/网站上下载一个WebDriver链接IE浏览器的驱动程序,文件名 ...
- 第2节 hive基本操作:6、7、8
第1节 hive安装:6.hive的基本操作:7.创建数据库的语法:8.hive当中创建内部表的语法. hive的基本操作: 创建数据库与创建数据库表操作 创建数据库操作:create databas ...
- Ubuntu下systemd服务的配置
1. 在/lib/systemd/system目录下创建服务启动脚本testservice.service 2. 文件内容如下: [Unit] Description=TestService [Ser ...
- Java 序列化Serializable详解(附详细例子)
Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是 ...
- jquery中ajax原生代码的分析模仿
function ajax(obj){ var defaults = { url: "#", data: {}, type: ...
- CSU1019: Simple Line Editor
1019: Simple Line Editor Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Subm ...