《白帽子讲WEB安全》学习笔记之第11章 加密算法与随机数

第11章 加密算法与随机数

11.1 概述

攻击密码系统的方法

密码分析者攻击密码系统的方法主要有以下三种:

1)穷举攻击

    所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥对所获密文进行解密,直至得到正确的明文.

2)统计分析攻击

    所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。

3)数学分析攻击

所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。

 

破译密码的类型

1唯密文攻击Ciphertext-only attack

已知:

   C1EP1 )C2EKP2 )……CiEK(Pi)

推导出:

   P1P2……PiK或者找出一个算法从Ci1EK(Pi1 )推出Pi1

 

2已知明文攻击Know-plaintext attack

已知:

 P1C1EP1 )P2 C2EK(P2 ) …… PiCiEKPi

推导出:

      密钥k,或从Ci1EK(Pi1 )推出Pi1

 

3选择明文攻击Chosen-plaintext attack

已知:

 P1C1EP1 )P2 C2EK(P2 ) …… PiCiEKPi,其中P1P2…… Pi是由密码分析者选择的。

推导出:

     密钥k,或从Ci1EK(Pi1 )推出Pi1

 

4自适应选择明文攻击Adaptive-chosen-plaintext attack

5选择密文攻击Chosen-ciphertext attack

6选择密钥攻击Chosen-key attack

7软磨硬泡攻击 

11.6 密钥管理

密钥的保密性比算法的保密性重要多了。密钥最好是动态的,会定期更新。

11.7 伪随机数问题

Java中使用java.util.Random是不安全的,因为其是使用系统时间的作为种子生成的伪随机数。在种子相同的情况下,其生成的随机数的顺序都是相同的。

java.security.SecureRandom是安全随机数,可以在项目中使用。

加密算法的最佳实践:

q  不要使用ECB模式

q  不要使用流密码

q  使用HMAC-SHA1代替MD5(甚至代替SHA1

q  不要使用相同的key做不同的事

q  saltsIV需要随机产生

q  不要自己实现加密算法,尽量使用稳定的加密库

q  不要依赖于系统的保密性

 


本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1859557


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值