摘要:本文给出了在T=0原协议层次的基础上添加安全应用层,并在此层中对基于密文链接模式CFB(Cipher Feedback),可以解决智能卡交易系统中通信协议T=0存在的安全问题,提出了基于Logistic混沌加密算法,以避免加密APDU(Application Protocol Data Unit)消息体时,因其长度不定所要求的字节扩充问题。该算法利用混沌序列对初值极端敏感同时具有自相似性,这些特性使得利用混沌系统能够在计算机中得到性能良好的伪随机序列,进而产生具有较高保密性能的加密系统。实际应用效果表明,该算法具有很强的抗密钥穷举攻击和抗选择明文攻击的能力。
论文关键词:智能卡,应用协议数据单元,CFB模式,T=0通信协议
IC卡的应用越来越广泛,从存储卡到逻辑加密卡,目前CPU卡已经逐渐在卡应用中占据主导地位。CPU卡根据通讯协议可分为两种:接触式和非接触式。接触式CPU卡主要采用两种通讯协议:T=0和T=1通讯协议。目前,T=0通讯协议的应用较为广泛,国内外大多数CPU卡都支持该协议,在金融交易中也采用这种通讯协议。然而,T=0协议中存在的问题也是不容小视的。对于T=0通信协议卡终端传输层中命令报文中包含数据域,同时又需要卡片返回数据的命令,T=0协议不能用一条命令来实现,必须分为两步实现:第一条命令为卡片提供数据,然后用另外一条相关的命令来取回数据。这样给卡片的编程带来很大麻烦,同时卡片内存中必须保留上一次操作需要返回的数据。这时如果不及时发送取数据命令而发送其它命令,可能会将敏感数据泄漏,并产生其它问题。
混沌系统由于具有不可预测性和对初值的敏感依赖性, 而极具密码学的应用价值。传统序列密码加密通常要选取伪随机信号与欲加密的信号相调制而形成加密明文,混沌加密不同于传统的加密算法的根本区别在于混沌加密所用的随机讯号由混沌系统产生。对于一个确定的混沌系统来说,直接决定系统演变轨迹分布状态的是该系统初始条件和系统参数,由于混沌系统对初始条件敏感,不同的系统参数将会有完全相异的系统演变轨迹状态分布,随着系统叠代次数增加,初始条件的细微差异将被迅速放大,因此将混沌方程的初始条件以及系统参数作为系统的密钥。对于T=0通信协议终端传输层中APDU消息,使用混沌加密算法对该消息进行加密,这是由于在协议数据单元中,最核心的部分是消息体IDATA,该消息体有关智能卡应用有价或私密的信息,同时该消息体的长度是不定的(具体地,它的长度并非分组长度的倍数)。使用传统对称加密算法,由于被加密的消息是任意长度的,可能不是分组长度的倍数。因此要求在加密前将明文扩充为长度为分组长度的倍数再加密,并在解密完成后去除所扩充的内容。扩充算法首先需要计算最小的字节长度,通过后补这些字节以使明文的长度为分组长度的倍数。如果采用基于Logistic混沌加密算法,加密时则无需考虑消息的长度。
为此,本文根据混沌序列对初值的敏感依赖性和不可预测性等特点,提出了基于Logistic混沌加密算法,并进行了实际应用。主要工作如下:
(1)从协议实施难易程度及安全防护层次分析引入了新的协议层,在卡应用层和终端应用层之间插入了新的应用层——安全应用层。
(2)在安全应用层中采用基于CFB模式下的混沌加密算法,对APDU消息进行加密。从而保证数据的私密性。并使用VC++软件对该加密过程进行模拟实现。
2系统介绍
在智能卡安全层中对数据进行加密,使用混沌系统作为序列密码的密钥序列生成算法具有良好的可行性,和较高的安全性。本文选用混沌系统中最为常见的一个系统:Logistic系统。
2.1引入新的协议层。
添加新的协议层,是为了可以在添加的新协议层中引入密码措施,来达到智能卡所需要的安全保密目标,包括数据私密、完整和可认证性等。插入新的协议层后,为了不影响通信协议的兼容性和稳定性,原则上要求传统协议层中的那个位于新协议层之上的协议层传输给新协议层的交易消息结构越简单越好。如果新引入的协议层处于协议栈的较底层,则不仅要注重引入密码服务提供的安全服务,更需要着重处理好信息在上下层之间的传递,应以不违反和破坏智能卡规范对传统的应用协议栈中的各层提出的限定为前提。因此,将新的协议层插入在传统协议栈的越顶层的位置,则我们引入的密码服务来保证卡应用和智能卡之间的可信智能卡交易的任务就越容易在新协议层中得以解决。但是需要注意的是,如果新协议层被放置在传统智能卡应用协议栈的最顶层,那么它就脱离了智能卡应用这一协议栈,就脱离了我们所研究的内容(智能卡协议层的安全应用问题)。因此可以看出,智能卡应用的传统协议栈中的CAL(卡应用层)和TAL(终端应用层)协议层之间的位置相比其他位置更适于插入新的协议层。
2.2CFB模式
DES和AES(前者的替代算法)是两个重要的保证数据私密的密码学算法,但是,我们谈到密码算法时,事实上指的是密码运算的操作模式,即在密码操作过程,以上密码学算法(即AES等)是如何被调用去完成加密和解密的。密码运算的操作模式通常被分为两类:第一类操作模式仅能操作长度为分组长度或分组长度倍数的消息,另一类操作模式是能够对可变长度消息执行密码学运算的工作模式。密码反馈模式(CFB)是先产生一个密钥流再与明文异或的加密方式。它应用于应用程序不是工作在数据分组之上的,而是应用于面向字符流等的场合。在这些场合中我们必需使用流密码,CFB模式即满足了这种需要。在CFB模式下明文可以对比分组小得多的单元进行加密,假设明文分组长度为64比特,加密单元长度为8比特。CFB模式下的分组算法对输入的明文分组队列进行加密。首先,该队列就像在CBC模式下一样用一个初始化向量进行队首填充,然后对队列进行加密,加密后最左端的8比特与明文最初8比特进行异或运算,生成密文的最初8比特,并传送出去。这8比特被移至队列的最右端,然后其它位向左移动8比特,依此类推。解密过程与加密过程相反。CFB模式下的分组算法对输入的明文分组队列进行加密。
CFB模式的加密操作步骤可以用下列伪代码加以描述:
;
;For j=1,2,3…,n.
;For j=1,2,3…,n.
;For j=1,2,3…,n.
CFB模式的解密操作步骤可以用下列伪代码加以描述:
;
;For j=1,2,3…,n.
;For j=1,2,3…,n.
;For j=1,2,3…,n.
2.3基于Logistic混沌加密算法原理
在新加入的协议层中综合使用多种密码措施,以保证智能卡的安全目标,本文主要针对数据私密性进行研究。为保证智能卡系统应用的安全,我们首要关心的是如何私密地在卡终端应用和智能卡之间传输或交换APDU(命令APDU和响应APDU)消息。使用基于Logistic混沌加密算法加密的对象就是长度可变的APDU消息。
1/2 1 2 下一页 尾页 |