Hash函数的安全性
我们为了保证消息的完整性,引进了散列函数,那么散列函数会对安全正造成什么影响呢?这是需要好好研究一番的问题。
三个概念:
1.如果y<>x,且h(x)=h(y),则称为碰撞。
2.对于给定的x,要找到一个y满足y<>x,h(x)=h(y),在计算上不可行,称为弱无碰撞。
3.要找到任意一对数,x,y,y<>x,满足h(x)=h(y),在计算上不可行,则称为强无碰撞。(包含弱无碰撞)
假定:一个取整数的随机变量,服从1到n的随机分布,一个含有k个这种变量的集合,至少有一对重复的概率记为P,P大于二分之一,求k的范围
解:对于h(x)=a(a为某个特定的值)的概率为1/n
对于h(x)<>a(a为某个特定的值)的概率为1-1/n
k个变量没有重复的概率为: =1(1-1/n) (1-2/n) (1-3/n)… [1-(k-1)/n]
至少一对重复的概率:P=1 – n!/[(n-k)!nk]
根据不等式:(1-x) ≤e-x (对于0 ≤ x ≤ 1)
P>1-e(-(k(k-1)/(2n))
设E=1-e(-(k(k-1)/(2n))
k约等于(2nln(1/(1-E))0.5
当E=0.5,k约等于1.18n0.5
一间屋子的人数必须达到多少人才能使其中两个生日相同的机会达到50%?
k=1.18 * 3650.5=23,仅需要23人
结论:对于长度为m位的散列码,共有2m个可能的散列码,k个输入值的集合中,若要使其中的任意两个输入x和y,有h(x)=h(y)的概率为0.5,只需k=2m/2
碰撞对于基于Hash的数字签名影响
结果是A等于签了一份他根本不知道的文件02。
但是关键是找到一对想要的碰撞,因为文件02必须是有内容,并且是合乎语言语法的,因为就算找到一个文件02与文件01Hash值一样,文件02是无意义的,那么这样做也是毫无意义的!
在实例应用中,基本的Hash函数
可以看到,经常使用的MD5,和SHA的输出长度分别是128和160,对于弱无碰撞性,被破解成功的可能性低于264和280!
转载于:https://www.cnblogs.com/13jhzeng/p/5532630.html
Hash函数的安全性相关推荐
- snark/stark-friendly hash函数
1. 引言 零知识证明中,需要 prove the knowledge of a preimage under a cryptographic hash function,针对的场景为: public ...
- 基于格的 Hash 函数(SWIFFT) BKW 算法
参考文献:Daniele Micciancio and Oded Regev. Lattice-based cryptography. Post-quantum cryptography. Sprin ...
- Hash函数及其应用
本文部分内容摘自网络,参考资料链接会在文后给出,在此感谢原作者的分享. 计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数 ...
- 使用Hash函数和MAC产生伪随机数
基于Hash函数的PRNG 流程非常类似于对称密码的CTR工作模式 算法的伪码如下 m = ⌈n/outlen⌉ data = V W = the null String for i = 1 to m ...
- Hash函数及其重要性
不时会爆出网站的服务器和数据库被盗取,考虑到这点,就要确保用户一些敏感数据(例如密码)的安全性.今天,我们要学的是 hash 背后的基础知识,以及如何用它来保护你的 web 应用的密码. 申明 密码学 ...
- 常见的hash函数算法
散列表,它是基于快速存取的角度设计的,也是一种典型的"空间换时间"的做法.顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙. 散列表(Has ...
- BLAKE2 hash函数
BLAKE2为密码学hash函数,其运算速度比MD5.SHA-1.SHA-2和SHA-3都快,而安全性与最新的SHA-3标准算法相当. BLAKE2对应的标准为RFC7693--The BLAKE2 ...
- Zcash中的hash函数
1. 引言 Zcash中的hash函数主要有: BLAKE2 Hash Function Group Hash into Jubjub Pedersen Hash Function Mixing Pe ...
- 信息摘要函数(Hash函数)的设计与性质验证
1.信息摘要函数(Hash函数)的设计与性质验证实验 2.实验目的:信息摘要函数(Hash函数)的设计与性质验证. 2.1实验设备:PC机 一台/人 2.2实验原理: 2.2.1.信息摘要函数具有固定 ...
最新文章
- 主流Java报表工具的比较
- Delphi Excel操作,写了个ADODataSet转Excel的函数作为后期学习的例子
- oracle:主键,外键
- python 日志不会按照日期分割_python日志切割保留一个月
- 2020 JVM生态报告
- 编程从业五年的十四条经验,句句朴实
- 【51Nod - 1133】不重叠的线段 (贪心)
- python读取excel
- windows phone7 学习笔记14——地理位置服务与反应性扩展框架
- 5G 来了,我们可以做什么?
- JavaScript在HTML中的应用2
- 使用 bash 脚本把 GCE 的数据备份到 GCS
- 管道符、重定向、环境变量
- 基于麻雀搜索算法的极限学习机(ELM)回归预测 -附代码
- 编译器GCC的Windows版本 : MinGW-w64安装教程
- kali攻击139端口_入侵445端口-永恒之蓝漏洞利用-Metasploit
- 什么叫计算机硬件特征码,获取计算机硬件特征码【上】
- flink设置checkpoint部署后一直重启,出现检查点无法写入的问题
- mysql计算员工的日薪_mysql 综合练习(一)
- Java中Number转为百分比
热门文章
- 如何开启远程(win7win8)
- Hibernate 异常org.hibernate.LazyInitializationException: could not initialize prox
- C++中关于流的概念
- [流水账]毕业?工作?
- ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
- 关于View测量中的onMeasure函数
- 解决bootstrap下的图片自适应问题
- JakartaEE Exception: Invalid bound statement (not found): com.mazaiting.blog.dao.UserDao.selectUs...
- 利用MAC OS X 自带的磁盘工具提取光盘镜像ISO文件
- 《设计模式解析(第2版)》