随机数是以现代密码学为基础的信息安全系统的基石。在现代信息安全系统中,密码体制和算法本身可以被公开,访问策略可以公布,密码设备可能丢失,而系统的安全性要求不受影响。整个系统的安全性完全依赖于随机数序列的生成效率和质量。
图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 来获得认证。
英飞凌将一直持续这种战略,将最新科技应用于其安全控制器解决方案中,为其安全芯片取得公认的安全认证,也为帮助客户构建健壮的高安全信息系统提供有力的技术基础和支持。