下册-读书笔记5
学习笔记5
自学教材第9,10章,提交学习笔记
本章知识点归纳(要结构化,推荐使用思维导图)以及自己最有收获的内容 (2分)
学习过程中遇到问题与解决过程(2分)
实践内容与截图,代码链接(推荐使用码云或github,参考)等(2分)
微精通:除了教材,查阅了哪些资料(图书、论文;博客等)?对哪些知识点进行了深入学习能让你认为学习深度和广度超过90%的同学?展示你的学习成果。
...(知识的结构化,知识的完整性等,推荐使用markdown文档,推荐使用openeuler系统等)(2分)
第九章
结构化思维导图
总结(最有收获内容)
1.真实随机
理想中的真实随机,在现实中很难实现找到。
熵源:
- 计算机的熵源可以是:键盘、鼠标、磁盘湍流……
- 量子物理有些熵源是完全随机的。
2.伪随机数
- 忘记编程库中常用的随机函数,他们几乎肯定不是严格的密码学伪随机数生成器,除非给出了明确的密码强度。
3.真随机数和伪随机数生成器
- 使用真随机数做伪随机数生成器的种子
4.伪随机数生成器的攻击模型
对伪随机数生成器的攻击形式:
- 伪随机数生成器在任何时候都有一个内部状态。
- 攻击者尝试从生成器的输出重构其内部状态。
- 攻击者获取了内部状态,那么他就可以计算出所有的输出和后续的所有内部状态,所以非常危险。
- 一旦传统随机数生成器被攻击者成功攻破,它就不可能恢复到安全状态。
5.Fortuna
Fortuna伪随机数生成器三个部分:
- 生成器负责采用一个固定长度的种子,生成任意数量伪随机数。
- 累加器负责从不同的熵源手机熵再放入熵池中,并间或地给生成器重新设定种子。
- 种子文件管理器保证即使在计算机刚刚启动时伪随机数生成器也能生成随机数。
6.生成器
生成器负责将固定长度的内部状态转换为任意长度的输出。
生成器内部状态包括256位的分组密码密钥和一个128位的计数器。
生成器生成随机数的步骤:
- 初始化
- 更新种子
- 生成块
- 生成随机数
7.累加器
累加器负责从不同的熵源中获取实随机数,并用来更新生成器的种子。
熵源:
- 熵源被嵌入到OS的各种硬件驱动器中。
- 熵源有自己的编号(熵源号)。
熵池:
- 熵池需要足够大。
- 每个熵源循环地向32个熵池中添加随机事件。
8.种子文件管理
- 写种子文件通过简单的函数实现。
- 更新种子文件操作包括读取种子文件、检查种子长度、更新生成器的种子,接着用新数据更新种子文件。
9.选择随机元素
- 有时候用户可以从生成的随机数中进行选择,但是需要小心操作。
第十章
结构化思维导图
总结(最有收获内容)
1.整除性和素数
定理:
-
如果a|b且b|c,那么a|c.
-
如果n为大于1的正整数且d为n除1之外最小的因子,那么d是素数.
-
素数有无穷多个(素数无穷性质)。
2.产生小素数
使用筛法:
- 输入:n 生成素数的上限。
- 输出:P 小于n的所有素数列表。
3.素数的模运算
- 加减法
- 乘法
4.群和有限域
对于mod p域:
- 对运算中的每个数,可以加上或者减去p的任何倍数而不改变运算结果。
- 所有运算的结果都在0,1, ... ,p-1内。
- 可以在整数范围内做整个计算,只在最后一步做模运算,也可以先。
5.GCD算法
最小公倍数:
- lcm(a,b) = ab/gcd(a,b)
6.扩展GCD算法
7.大素数算法
9.素性检验
用到递归