【生日碰撞和数字签名】
参考:李永乐老师的视频
生日碰撞:
问题:假定一个班级中有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 ...
最新文章
- Ext JS Designer 1.0.5 发布
- 2020-11-06 Python OpenCV给证件照换底色
- 安装VMware并新建虚拟机
- ubuntu python3.5升级3.6_ubuntu16.04升级Python3.5到Python3.7
- 对话智能新高度:全面解读百度开放域对话模型PLATO
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- 【Java】ASCII类对ASCII码的处理
- java使用socket实现一个多线程web服务器
- mysql每10万条数据分区_WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案...
- 茶余饭后聊Spring 一
- 各主板黑苹果dsdt补丁_台式机微星(MSI)主板黑苹果EFI引导文件分享amp;2020.12.3
- Modbus 与 RS485 的区别与联系
- linux卸载pm2,Linux服务器部署Nodejs项目,使用pm2管理
- 火剪剪辑系统,火剪矩阵系统,火剪系统源码框架
- Oops是什么有什么用
- uni-app上传图片到腾讯云
- Java异常学习小结
- 字节面试杂谈——MySQL、Redis
- 零基础自学SQL课程 | 子查询
- 一下子搞懂JDBC,看这篇就够了--以MySQL为例。
热门文章
- c语言 rpg游戏,浅谈RPG游戏设计(一)
- WLAN适配器的驱动程序可能出现了问题(连不了wifi)解决办法
- 计算机教师继续教育心得,教师继续教育心得体会(精选3篇)
- 中职计算机应用专业课堂教学,谈谈中职计算机应用基础课程教学中翻转课堂研究...
- 照明模型:光通量、辐照度、光源
- 方案A:vpn-instance to vpn-instance(PE-CE)
- 2021年诺贝尔物理学奖揭晓,复杂科学获得重视
- 旷视 CEO 印奇:靠“刷脸”折腾出 120 亿的大生意
- 斑马打印机ZDesigner GK888t (EPL)型号的java集成
- 17岁高中生证明著名数学难题,因此被MIT录取