密码学读书笔记——5

【数字签名,哈希函数】
数字签名一言以蔽之:【私钥加密,公钥解密】主要运用在证书
基本原理是:被认证方用私钥加密一串数据,然后将该数据和公钥递给认证方,当认证方,解密成功,说明被认证方身份。
所应当具有的安全服务:保密性(可以由对称算法来提供),完整性,消息验证,不可否认性,身份验证性,访问控制可用性,审计,物理安全,匿名。
【RSA】认证过程:
RSA签名
【可能遭受的攻击】:算法攻击、存在性攻击(有另一人宣称自己是bob,实际上他执行的计算和alice一样,只是选择了一个签名,然后计算消息x)
所以为了防止这种攻击,一般会采取填充:要求消息具有某种格式。
【RSA-PSS】不是对消息本身签名,而是对它对应的哈希版本(带有填充值,随机数)进行签名。
还有填充值和随机值与中间消息用哈希函数异或后得到的掩码值、

【Elgamal】
Elgamal签名
r和s是签名。KE是选择的构成灵饰私钥的随机值。,再计算x的实际签名。
其中(p,α,β)是公钥,d是私钥。
安全性:基于离散对数,想从算法破解,就必须破解离散对数的求解。
当临时密钥KE复用时,可以构建方程直接解除私钥d
存在性伪造:与RSA类似,他也可以伪造存在性,但无法控制消息的语法。
仅仅只是拦截了正主的消息,用伪造的胡乱的消息进行伪造签名验证。
【DSA】是Elgamal的变体,为了防止存在性伪造,在计算签名前必须对消息进行SHA-1
哈希。生成素数和素因子是比较重要的方案。为了抵抗攻击增加位数是最好的方法
【ECDSA】类似,只不过是基于椭圆曲线生成点和曲线作为公钥一部分。

【哈希函数】
哈希函数是一个非常重要的密码学组件。是消息的唯一表示,可以看做指纹。哈希函数没有密钥。
使用哈希函数的动机:
①高负载计算,它基于非对称运算,单个操作时间成本很高,则对较大的数据进行签名会消耗高
②消息开销:连带签名传输的成本太高了
③安全限制,攻击者可以对分组签名的东西进行重新排序攻击,破坏签名
所以对消息先进行哈希,对哈希值进行签名,就比较好,多大的数据都生成一个短哈希值。
安全性:
①单向性:正向容易,逆向不可解。②二元弱抗冲突:两个不同的消息不可以映射到相同的值
但是这是有概率的,类似于穷尽密钥空间搜索一般。即找到x1和h(x1)的满足h(x1)=h(x2)的x2计算不可能
③抗二元冲突:找到一对x1≠x2在计算上不可能(生日悖论,大概要2^40的两倍)

,【MD4】分组密码链。类似于AES的分组密码,构成的链。前一组输入作为后一组输出的反馈
【SHA-1】可参考该例子https://blog.csdn.net/u010536615/article/details/80080918
①预处理:先进行填充,填充到512的倍数,不足的用一个1和补位个0进行填充
之后分割成16个32位的单词。用一个160位的缓冲区存放初始哈希值H0
②哈希计算:80轮迭代——每一轮都会替换H0的五个哈希值分组。
A,B,C,D,E=(E+ft(B,C,D)+(A)《5+Wj+Kt),A,(B)《《30,C,D
Kt为与某个阶段无关的常量,ft为轮函数
【实现】SHA-1为了良好的软件实现,每次只需要32位寄存器进行按位布尔操作,吞吐量很高。
目前针对SHA-1的攻击很严重,超级计算机可以比较容易找出碰撞。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值