图解密码技术笔记(二)

公钥密码的缺点:

1.处理速度远远低于对称密码

2.难以抵御中间人攻击

混合密码系统-用对称密码提高速度,用公钥密码保护会话密钥

角色:小A和小B

1.小A和小B先进行一次公钥密码流程,这个时候小B拥有小A的公钥

2.小B生成对称加密密钥D

3.小B将要发送的消息使用密钥D加密

4.小B使用小A的公钥对密钥D加密,将加密后的密钥D和消息一起发送

密码技术的组合

数字签名:有单向散列函数和公钥密码组合而成

证书:是有公钥和数字签名组合而成的

 

生日攻击(birthday attack):找到散列值相同的两条消息

生日攻击推理:

N个人,如果要至少有两个人生日一样的概率大于二分之一,N至少是多少?(排除2.29)

第一个人的生日可以是365-1+1=365天任意一天,第二个人的生日是365-2+1=364,可得第N个人365-N+1

所有人可选的生日数量相乘可以得到不一样的组合的数量,即:

公式S =  365*364*......*(365-N+1) 

所有情况的数量为:

365*365*.....*365  即:365^N

因此:概率为1-S/(365^n),N=23时,约等于0.507297,这就大于二分之一了,这证明了任意两个生日相同的概率比我们想象中的要打多了,这个现象称为生日悖论

假设一年有Y天,N人集合中至少有两个人生日一样的概率大于二分之一是,N至少的多少?

结论:N 约等于  Y的平方根  (当Y足够大时)

操作:

1.生成N个 内容是 "给你100万"的文件

2.生成N个内容是  "给你1个亿"的文件

当然,上述生成的内容是肉眼可见的内容,实际上每个文件的哈希值是不一样的,比如加一个空格等等操作,都能改变文件的哈希值

现在假设单项散列函数的长度为M比特,M比特所产生的所有散列个数为2^m个,根据上述结论,可得:

N 约等于 2^m的平方根,即   2^(m/2)

当N = 2^(m/2)的时候,生日攻击就会有二分之一的概率可以成功

如果M = 160, 能容易计算出N = 280次,可见,生日攻击所需要的次数很少

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值