密码学进阶主题深度解析
1. 伪随机数生成器(PRNG)
伪随机数生成器是密码学中重要的工具。一种构建被公认为公共标准的PRNG方法如下:
- 首先,选取一个随机种子S和用于密码系统的密钥K,设EK为相关的加密函数。
- 每次需要随机数时,利用一些系统参数(如计算机CPU返回的日期和时间)形成一个数字D,使用密钥K对D进行加密,即C = EK(D)。
- 然后输出“随机”数R = EK(C xor S),并将S替换为EK(R xor C)。
PRNG还可以用作对称密码。种子值S是Alice和Bob的私钥。Alice将消息M拆分为多个片段M = M0 ∥M1 ∥M2 ∥…,并对第i个片段进行加密:Ci = Mi xor Ri。由于Bob知道种子值S,他可以计算出与Alice加密时相同的伪随机字符串R0∥R1∥R2∥…,从而通过Mi = Ci xor Ri恢复消息。
基于哈希函数(如SHA)或对称密码(如DES或AES)的PRNG速度快且在已知范围内具有密码学安全性,但这种安全性并非基于某个著名的数学问题。而有些PRNG的安全性可以归结为解决诸如因式分解等困难数学问题的难度,但这类PRNG速度慢,在实际中很少使用。
2. 零知识证明
零知识证明允许Peggy在不向Victor提供任何能让他向他人证明某一事实为真的信息的情况下,使Victor相信该事实为真。在实际应用中,交互式零知识证明通常涉及Peggy和Victor之间的多次挑战 - 响应通信回合。
一个好的零知识证明需满足以下两个条件:
- 完整性 :如果某个数量y具有属性P,那么Victo
超级会员免费看
订阅专栏 解锁全文
466

被折叠的 条评论
为什么被折叠?



