由于国家“三金工程”的发展,一般的逻辑加密卡和非加密智能卡也被广泛用于收费系统中,可想而知,其信息安全的重要性不言而喻。因此,一种基于数字混沌密码的IC卡数据加密方法应运而生,并成功将其应用到智能仪表中,由于该加密方法具有较高的安全性,这样保证了IC卡卡智能仪表的数据可靠,从而使得整个智能仪表系统具有很高的安全性能。
一、基于数字混沌的密码设计
1、混沌系统及其特点
混沌系统是一个确定性系统,有确定的动态系统方程描述和方程中的确定参数,但是由于其对初始状态和参数值的敏感性,使得其方程的轨迹具有随机性,难以预测,即使是初始数值的差值很小,形成的轨迹也是千差万别,而且混沌的轨迹具有白噪声特性,即其轨迹等概率地分布在值域上,因此,正是利用混沌系统的这一特性,构造出需要的混沌流密码,并在通信、信息隐藏等方面具有广泛的应用。
Logsstc映射是一个离散序列混沌系统,其方程如下:
x(n+1)=rx(n)(1-x(n)) (1)
式中x(n)=(0,1) n=1,2,3...,并且当参数r=(3.57,4)时,系统呈现混沌状态。
显然,该系统的值分布在(0,1)上,Schuster _HG用概率统计的方法证明了系统产生的混沌序列的概率分布密度函数为:
从(2)式可以看出,Logsstc混沌映射生成的序列具有遍历性!,由于它还有d-like型自相关函数和零互相关函数,因此在加密方面具有优良的性能。
2、基于混沌密码的加密算法设计
基于混沌系统的密码设计已经成为密码学中的一个热门问题,特别是Logsstc这一映射的讨论,人们已经提出了各种各样的实现方法,在基于Logsstc混沌密码设计中,系统的初始值和参数r对密码的设计至关重要,由于这2个参数在系统中分别占用8byte,于是密码位数为2*8*8=128bit,由于DES加密算法具有相当高的复杂性,使得破译的开销超过可能获得的利益,而且在硬件上容易实现,因此,加密算法采用DES和CRC验相结合的方式。
三、混沌密码在智能卡上的实现
智能卡种类繁多,因其存储容量和保密程度的不同而千差万别,由于方便携带,存储容量大,其应用日益广泛。逻辑加密卡和非逻辑加密卡因为价格低廉,软硬件设计简单,因此在智能仪表、智能门禁系统等方面得到了广泛的使用。下面我们以西门子SLE4442卡这一应用最普遍的卡为例介绍混沌密码在智能卡上的实现。
SLE4442卡本身为逻辑加密卡,该卡共有256byte,其中前32byte出厂时已经固化,不可更改,因此实际上该卡可以使用剩余的224byte,它具备3byte共计6位的密码,如果不对密码进行验证,无法对卡内数据进行写操作,但是卡内的数据是可以读取的,因此卡内的数据必须保证是安全的。否则,通过对智能仪表数据的读写和卡内数据的分析,很容易对智能仪表系统进行解密,从而产生不可估量的后果。
假定需要保密的信息为Nbyte(N<224),为了对信息进行加密,并能够在系统的上位机和下位机之间进行有效的密钥交换,设定27byte的公钥在上、下位机之间进行传输,存放在智能卡第32至58位置处,格式如下:
1、基于混沌密码流的IC卡数据加密算法
(1)生成混沌系统的随机初始值x(0)和参数值r,序列的步长t=(1,32767)以及序列的开始序号s=(1,32767)。
(2)根据x(n+1)=rx(n)(1-x(n)),迭代进行t(s-1)次得到开始序列x(n)。
(3)计算明文的CRC-32校验和。
(4)根据明文长度计算混沌序列求得同样长度的混沌序列。
(5)用混沌序列和明文进行加密运算得到密文。
(6)生成密文随机存放的位置p=(60,256-N)。
(7)将上面的数据按顺序写入智能卡的相应位置。
可以看出,由于系统在上、下位机之间具备27byte,多216位的公钥。这样对它进行无穷尽搜索找到真正的私有密钥是不现实的,因此,系统的可靠性较强。对卡中的数据进行修改,也将导致下位机对数据的弃用,因系统将进行各类数据校验,所以该算法可以有效保护卡中的数据信息。
利用混沌系统的类随机性和难以预测性的特点,提出了一种基于混沌流密码的IC卡数据加密算法,实现了智能卡信息的有效加密,并成功将该方法应用到了智能仪表中,取得了很好的效果。
小知识之“三金工程”
三金工程即“金桥工程”、“金卡工程”、“金关工程”。“金桥工程”首先建立国家共用经济信息网。具体目标是建立一个覆盖全国并与国务院各部委专用网连接的国家共用经济信息网。“金关工程”是对国家外贸企业的信息系统实联网,推广电子数据交换技术(EDI),实行无纸贸易的外贸信息管理工程。“金卡工程”则是以推广使用“信息卡”和“现金卡”为目标的货币电子化工程。