密码工程读后感-第二章-第五,六节

这一节是PTRNG。
根DRNG类似,PTRNG主要也是应用在智能卡上。
一般上,PTRNG的实现方法中,最核心的就是噪音源(noise source)。这个所谓的噪音源,可以是电子噪音,或者物理实验效果。反正是什么并不重要,重要的是,这个噪音源的“效果”,在这个随机数生成器中会数字化处理,或者是变成二进制的格式。这个二进制的东西,就叫数字化模拟信号(digitalized analog signals, das)。
如果这个das是二进制,我们就叫它das bit。这个das,可能会进行一系列处理来“掩盖”潜在的弱点,这个处理过程就叫做alrogithmic postprocessing。这个过程,需要进行数据压缩来降低产出的数据(这是一个“多对一”的函数,就是故意“不允许反推”)。
根DRNG相比,TRNG的安全性主要是来自于das的不可预测性。这个不可预测性,一般上用熵来代替,也叫信息熵。计算的部分太复杂,分开记录。

既然有PTRNG,自然就有NPTRNG,非物理性质的真随机数生成器(Non-physical true random number generators。
这玩意儿和PTRNG有点不同,它不需要特定的硬件,它的“熵源”来自于系统数据(比如系统时间,当前线程数等什么乱七八糟的),或者使用者的互动,或者两者皆有。虽然他们的信息熵都很低(越低意味着越容易被预测),但是因为这个“随机源”并不是由其设计者所掌握,导致NPTRNG的安全考量和PTRNG有很大的区别,主要是这个NPTRNG的“熵源”一般上比PTRNG的“熵源”更容易获取或复制。
打个比方,系统开机(过了)时间,这种“熵源”比较固定,所以只凭着系统开机(过了)时间来设计,产生的随机数就很容易被预测出来,这个最明显的例子就是C语言的
和
的区别。

第七节主要是一些相关标准,不在考试范围内,就跳过了。