密码学基础知识

基本概念:
(1)最好的算法是那些已经公开的,并经过世界上最好的密码分析家们多年的攻击,但还是不能破译的算法
(2)怎样才算是一个安全的密码系统
如 果不论密码分析者有多少密文,都没有足够的信息恢复出明文,那么这个算法就是无条件保密的,事实上,只有一次一密乱码本(参看1.5节),才是不可破的 (给出无限多的资源仍然不可破)。所有其它的密码系统在唯密文攻击中都是可破的,只要简单地一个接一个地去试每种可能的密钥,并且检查所得明文是否有意 义,这种方法叫做蛮力攻击(见7.1节)。
密码学更关心在计算上不可破译的密码系统。如果一个算法用(现在或将来)可得到的资源都不能破译,这个算法则被认为在计算上是安全的(有时叫做强的)。
(3)好的密码系统的全部安全性只与密钥有关,和算法没有任何关系。这就是为什么密钥管理在密码学中如此重要的原因。
(4)一般地,中间人攻击能够击败任何不包括某些秘密的协议。

密码学的用处:
除了提供机密性外,密码学通常有其它的作用:
-鉴别
消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。
-完整性
消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。
-抗抵赖
发送者事后不可能虚假地否认他发送的消息。

常用的密码分析攻击方法
(1) 唯密文攻击
(2) 已知明文攻击
(3) 选择明文攻击
(4) 自适应选择明文攻击
(5) 选择密文攻击
(6) 选择密钥攻击
(7) 软磨硬泡(Rubber-hose)攻击

关于单向哈希算法
单向哈希算法以任意多的二进制数据作为输入,然后产生一个固定长度的二进制串作为输出。输出值称为hash值或者消息摘要
特点:
(1)从hash值不能得到原始输入,
(2)这个算法要使得得到一个能产生同样hash值的输入非常困难(非常难于产生"碰撞"
(3)这个算法要使得找到能产生同样hash值的两个输入非常困难。
单向哈希算法的用处:
(1)密码保存:在系统上保存密码的hash值,登录时比较输入的hash值和系统上保存的hash值就可以了,这样系统上保存的密码hash数据库被盗时也不会对安全构成威胁。
(2) 在其他密码操作中使用:例如数字签名一般是将输入计算hash值,然后使用私钥对hash值签名。这样可以避免验证的时候需要对整个输入使用公钥验证,这 样更有效率一些。另一个常用的操作是用于除去数据中可用于跟踪的模式,比如说不直接使用密钥,而使用密钥计算出来的hash值作为密钥。
(3)MAC:用于确保加密数据的完整性。把消息和消息的hash值一同加密,只有拥有正确密钥的人才能生成hash值,而同样只有拥有正确密钥的人才能验证hash值。

数字签名:
由拥有私钥的人生成数字签名,而要验证数字签名只需要该私钥对应的公钥就够了。
常用数字签名算法有:
(1)DSA:只能用于数字签名,和SHA1配合使用。
(2)RSA:RSA可以和MD5,RipMD160,SHA1配合使用。
数字签名的签名和验证过程:
签名:使用消息摘要算法得到输入的hash值,使用私钥对该hash值加密得到签名
验证:使用私钥对应的公钥对签名解密得到hash值,然后和计算得到的hash值比较。

对称加密算法:
加密密钥和解密密钥相同
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值