【生日碰撞和数字签名】
参考:李永乐老师的视频
生日碰撞:
问题:假定一个班级中有50个人,则有两个人生日相同的概率为多大?
【错误方式】如果没有经过严密的数学推导,很多人第一反应为 50/365=10/73,大概七分之一,由此看来发生的概率比较小。
【正确方式】实际上,如果按照概率来看:设P为生日不在同一天的概率,则发生的概率为1-P
如果有三个人(n=3)的话,则概率P = 365/365 *364/365 * 363/365,以此类推通过公式可以计算得出:
当n=10时,P=88.3%,1-P=11.7%
当n=20时,P=58.8%,1-P=41.2%
当n=50时,P=2.9%, 1-P=97.1%
一般而言,对于总数为n的情况下,若要发生碰撞的概率大于50%,只需要发生 1.2*根号n 次,
例如:当n为100时,只需发生12次,就有50%可能发生碰撞
数字签名:
哈希函数满足的两个条件:
(1)单向:输入x,经过哈希函数H(x)可以得到结果y,而无法通过y得到x
(2)位数固定:无论输入x如何,输出的位数都是一样的,因此可能会产生生日碰撞问题,即两个不同的输入x1和x2,均得到相同的输出y
加密过程(发送数据):如果B想给A发送数据(Data-1),为了不让其他人窃取,B可以通过A的公钥加密数据,然后A通过自己的私钥解密
此时,可能会产生数据篡改,如一个中间人C也通过A的公钥加密另外一个数据(Data-2)发送给A,此时A无法分清数据是否来源于B。
签名过程(验证数据):为了验证A解密的的数据一定是来源于B,B可以将自己发送的数据(Data-1)通过hash函数得到Hash-1,然后利用自己的私钥加密发送给所有人。
此时,A就可以将自己获取的数据(Data)利用hash函数对自己的数据进行计算,再利用B的公钥解密B发送给所有人的数据得到hash-1,然后将结果与B发布给所有人加密后的结果(Hash-1)进行对比,如果相同,则说明该数据一定来源于B
参考:https://zhuanlan.zhihu.com/p/31477508
【生日碰撞和数字签名】相关推荐
- python生日悖论分析_生日悖论
python生日悖论分析 If you have a group of people in a room, how many do you need to for it to be more like ...
- python生日悖论,Python的生日悖论
在概率部分,生日悖论是一个非常著名的问题. 问题陈述-生日聚会上有几个人,有些人发生相同的生日碰撞.我们需要在有相同生日的基础上找到一个生日聚会的大概人数. 很有可能,我们知道前进的机会是1/2,就好 ...
- CISSP第三章:安全架构和工程知识点
安全架构 在系统工程生命周期中使用安全设计原则 系统工程用于把用户需求转换为系统定义的跨学科的方法,通过一个迭代流程架构和设计一个有效的操作系统. 系统工程技术 需求定义 需求分析 架构设计 实施 集 ...
- 怎么解决哈希冲突_从生日悖论谈哈希碰撞
1 前言 前几天和一个大佬交流了几个问题,其中一个关于ID生成的问题推展到了哈希冲突和一个与之相关的一个数学趣题生日悖论. 当时对于两个事情的理解不够深刻,周末花时间仔细研究了一下,发现很有趣,于是觉 ...
- 哈希碰撞与生日相同概率
一.哈希碰撞是什么? 所谓哈希(hash),就是将不同的输入映射成独一无二的.固定长度的值(又称"哈希值").它是最常见的软件运算之一. 如果不同的输入得到了同一个哈希值,就发生了 ...
- 从生日悖论谈哈希碰撞
1 前言 前几天和一个大佬交流了几个问题,其中一个关于ID生成的问题推展到了哈希冲突和一个与之相关的一个数学趣题生日悖论. 当时对于两个事情的理解不够深刻,周末花时间仔细研究了一下,发现很有趣,于是觉 ...
- hash碰撞的概率推导(生日攻击生日问题)
1.关于hash碰撞 哈希碰撞是指,两个不同的输入得到了相同的输出: hash碰撞不可避免,hash算法是把一个无限输入的集合映射到一个有限的集合里,必然会发生碰撞: 2.碰撞概率的问题描述的其他形式 ...
- 生日悖论与Hash函数的攻击
生日悖论与Hash函数的攻击 生日悖论问题 什么是生日悖论问题 生日悖论问题求解 Hash函数的攻击 两个集合相交问题 Hash函数的攻击方法 Yuval攻击 生日悖论问题 什么是生日悖论问题 假定每 ...
- 哈希密码_哈希生日和密码
哈希密码 什么是哈希函数? (What is a Hash function?) It's an algorithm that maps an input of arbitrary length to ...
最新文章
- MapReduce 中 UDF、UDAF、UDTF
- PHP数据库链接类(PDO+Access)
- 电大计算机统考模拟题在哪里学,[2017年电大]电大-计算机统考模拟题.doc
- ps命令---Linux学习笔记
- Java中的垃圾回收与对象生命周期
- java能看懂代码不会写_为什么很多学习Java的人能看懂代码,但就是不会写!
- ncurses输出修饰:attron(),attroff(),attrset(),attr_get(),attr_,wattr_,chgat(),mvchgat()
- 迁移学习SSD深度网络模型,实现文本行检测
- 安装Mycat 曾经踩的那些坑
- docker运行oracle11g
- Jersey框架:深入研究的终极大招-Jersey用户手册
- HCIE 习题整理 含解释
- k8s不适合mysql_K8S 配置mysql配置文件不生效问题处理
- LibXL 算法分析(附注册机)
- 单片机继电器控制实验程序C语言,用单片机通过继电器来控制电热水器的实验...
- 英语面试自我介绍java_java面试英语自我介绍
- MIPI扫盲系列博文
- Linux:UID和EUID
- 爱情的9个真相 。(想谈恋爱的看,正在谈恋爱的看,不想谈恋爱的也可以看看。)
- CHROME源码剖析 上《转》
热门文章
- LCD液晶显示屏常见类型和接口
- 中职计算机应用专业教师到电商企业实践报告,中职教师到企业实践总结.doc
- 使用UltraISO制作ubuntu安装u盘启动盘图文教程(转)
- pythond的执行原理_深入理解Python 关于supper 的 用法和原理
- 使用3D-DNA流程,结果不升反降怎么破?
- Windows server 2022 组策略软件分发
- 【帮帮】移动互联网的“浑水”
- Webpack4 配置TS Loader
- 郁闷啊,三点多钟还没睡,休息一下,看下摸胸小苹果。
- 基于大规模基因敲除实验揭示182个癌细胞免疫逃逸相关基因,指导肿瘤免疫治疗的研究