利用算法对智能卡随机数的伪随机改进

2015-09-21 01:29:22孙俊,王彬
网络安全与数据管理 2015年3期

孙 俊,王 彬

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

0 引言

随机数在智能卡芯片操作系统 (Chip Operation System,COS)中主要用于卡片和读卡器之间的认证、数据加密及其安全传输。随机数是以现代密码学为基础的信息安全系统的基石。整个系统的安全性完全依赖于随机数序列的生成效率和质量。因此,高质量的随机数对COS的安全举足轻重,如果随机数的随机性不够安全,整个系统极有可能被攻击者攻破,造成无法挽回的损失。

1 伪随机数和真随机数

信息安全系统中的随机数序列要求具有足够的长度和周期,以及尽可能高的熵值,即具有高度的随机性和不可预测性。

随机数序列的产生方法有两种:伪随机数和真随机数。

1.1 伪随机数

目前应用的随机数通常是通过某些数学公式计算而产生的伪随机数,即由伪随机数发生器(Pseudo Random Number Generator,PRNG)产生的,它是由一个初始状态开始,通过一个确定的算法来生成随机数。一旦给定算法和种子,输出序列就确定了,有一定的周期性。

伪随机序列一般都有比较好的随机统计特性,其用数学算法生成,在一些统计特性方面接近真随机序列,但却是周期的和可预测的。

伪随机数容易获得且方便使用,一般用于仿真、测试等场合。

1.2 真随机数

真随机数是不可预测的,因而不可能重复产生两个相同的真随机数数列。真随机数只能用某些随机物理过程来产生。例如放射性衰变、电子热噪声、宇宙射线的触发时间等。

真随机数序列是由真随机数发生器 (True Random Number Generator,TRNG)产生,是依托自然界物理现象的随机特性。……

登录APP查看全文