安全设备/系统
随机数是以现代密码学为基础的信息安全系统的基石。在现代信息安全系统中,密码体制和算法本身可以被公开,访问策略可以公布,密码设备可能丢失,而系统的安全性要求不受影响。整个系统的安全性完全依赖于随机数序列的生成效率和质量。
图1示例是一个随机数发生器在安全控制器内部的典型应用,随机数被用来产生动态密钥对数据总线和外设寄存器进行动态加密,使得在CPU和外设间实现数据加密传输,整个过程没有明文存在。
因此,高质量的随机数在信息安全系统中的作用举足轻重,如果随机数的随机性不够安全,整个系统极有可能被攻击者攻破。
信息安全系统中的随机数序列要求具有足够的长度和周期,以及尽可能高的熵值,即具有高度的随机性和不可预测性。
随机数序列的产生方法不外乎两种:伪随机数和真随机数。
作为常识,每个程序员在做入门学习时,都会被老师谆谆教导:我们用的编程语言中的随机函数,只能产生出伪随机数。它有其自身的内在规律,只能作为对外部世界的随机事件的近似模拟。目前最常见的伪随机数序列产生方法,是基于某一事先确定的序列生成算法(主流伪随机数生成算法大都是乘/加同余法及其变体,就是利用整数加法和乘法之间关系的高度不协调),依赖一个由选定的随机数“种子”来产生随机序列。这样生成的伪随机数,在一般的应用中(主要是模拟计算),已经足够了。
图2是一个被业界广泛使用的典型伪随机数发生器,显然,整个多项式产生的随机数序列依赖于“种子”的输入,并且,随机序列的周期性也是直接依赖于多项式的阶数。目前,比较好的伪随机数发生器的序列重复周期已能达到2的160次方,在中低安全型需求的应用场合已经完全够用。
对于伪随机数发生器,如果已知“种子”和算法(例如图2所示的多项式公式),实际上,也就无“随机性”可言了。从理论上讲,任何算法所产生的伪随机序列都是可以被预测的,即具有较高概率的数字序列重现性,这就为信息安全系统带来了重大隐患。因而,这类伪随机数只能用在对安全性要求不高的场合。
真随机数的产生,则要借助于工程设计良好的数字物理乱源,即利用一些物理过程的随机性质。但并不是物理过程(硬件)产生的随机数就是真随机数,其中一些物理过程是否真正随机也很难说,更有些系统仅仅采用硬件固定逻辑来加速伪随机数的产生。
图3是一个被广泛采用的硬件随机数发生器原理,这种基于直接放大器结构的随机数发生器,虽然属于硬件发生器,也能产生出比基于数学运算原理的发生器更高质量的随机数序列,但由于其本身结构原理,虽易于实现,但其极易被外部信号干扰,导致其随机数序列的熵值波动性很大。这种硬件随机数并不能被称为真正意义上的真随机数。
这就存在一个随机数质量检测的问题。在所有随机序列质量检测方法以美国国家技术标准局NIST发布的关于密码系统的信息安全标准FIPS 140-2和德国联邦资讯安全办公室BSI发布的AIS-31测试标准最为著名。这些标准中指定了多种测试方式对随机数序列的质量指标进行测试,以取代常规的随机性统计检验。与同类标准相比,FIPS140-2和AIS-31的合格标准更加严格。
英飞凌的智能卡安全控制器,采用最新专利科技集成了硬件高速真随机数发生器(如图3),利用专利科技噪音源产生出极大带宽的数码流,硬件后处理器可增加熵值,符合AIS-31标准的质量检验控制,可以保证从此随机数发生器出来的随机数序列已能满足和通过符合AIS-31 P2类别的真随机数质量测试。
该发生器能达到每字节30微秒的真硬件随机数发生速率,使得英飞凌的智能卡安全控制器能够实现极高的加密运算性能,而且,该发生器还具有很好的鲁棒性,其产生的随机序列在不同的温度、电压、频率等外部条件波动时也具有极高的不可预测性和不可重复性,并且已通过FIPS140-2和AIS-31安全测试认证,适用于高安全性要求的各种应用。
并且,有了这一高质量的安全控制器的核心保障,英飞凌的安全控制器现已通过了由德国联邦信息安全办公室(BSI)主持的历时数月的周密评估与测试,成功通过全球最严格的智能卡应用安全测试CC EAL6+。CC EAL6+测试以智能卡集成电路平台保护规定(BSI-PP-0035)为基础。英飞凌使用新的 PP00035 来获得认证。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !