《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 一种加快智能IC卡安全认证速度的方法
一种加快智能IC卡安全认证速度的方法
2017年微型机与应用第2期
朱巧,黄俊
重庆邮电大学 通信与信息工程学院,重庆 400065
摘要: 针对智能IC卡安全认证过程中3DES算法加密速度较慢的问题,本文采用AES算法代替3DES算法完成智能IC卡的安全认证,并对密钥分散机制进行改进,使用混沌系统中的logistic映射进行密钥分散。实验结果表明,改进后的安全认证算法在保证安全加密强度的前提下,有效提升了智能IC卡的安全认证速度。
Abstract:
Key words :

  朱巧,黄俊

  (重庆邮电大学 通信与信息工程学院,重庆 400065)

       摘要:针对智能IC卡安全认证过程中3DES算法加密速度较慢的问题,本文采用AES算法代替3DES算法完成智能IC卡的安全认证,并对密钥分散机制进行改进,使用混沌系统中的logistic映射进行密钥分散。实验结果表明,改进后的安全认证算法在保证安全加密强度的前提下,有效提升了智能IC卡的安全认证速度。

  关键词:3DES算法;AES算法;logistic映射;智能IC卡;密钥分散

  中图分类号:TP368.1文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.02.002

  引用格式:朱巧,黄俊.一种加快智能IC卡安全认证速度的方法[J].微型机与应用,2017,36(2):5-7.

  0引言

  随着智能IC卡在各行业的广泛应用,消费者对智能IC卡交易速度的要求也越来越高。目前,智能IC卡采用的对称加密算法为3DES算法[1]。3DES算法的加解密速度较慢,算法资源利用率不高;AES算法采用更加简洁的数学表达形式,在安全性能、算法资源利用率和实现复杂度上均优于3DES算法。在保证加密强度的条件下,为了提高智能IC卡的安全认证速度,本文从以下两方面对智能IC卡加密算法进行改进:首先,使用AES加密算法代替3DES算法完成安全认证;其次,使用混沌密钥分散取代3DES密钥分散。

1AES算法及混沌序列简介

  美国标准技术研究所(NIST)在2001年发布了高级加密标准AES(Advanced Encryption Standard)[2]。AES是一种分组密码,用以取代3DES的商业应用,其分组长度为128位,密钥长度为128位、192位或256位。AES采用分组迭代算法,每一轮加密可分为字节代替(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。图1为AES的总体结构。

  混沌是非线性动力系统中普遍存在的一种确定性、类随机性的复杂运动形式和自然现象[3]。它具有的特征包括非线性、遍历性、初值敏感性、类噪声性和随机性,理论分析和实验表明混沌加密算法能够达到与传统加密算法扩散(Diffutsion)和置乱(Confusion)同样的效果[4]。本文采用混沌系统中的logistic映射产生混沌序列,公式(1)为logistic映射模型。

  Xi+1=u*Xi*(1-Xi),i=1,2…(1)

2安全认证速度提升方案

  为了提高智能IC卡的安全加密效率,同时使得安全算法适用于IC卡交易数据的加密,达到较好的安全性,下面讨论对对IC卡安全认证算法的改进。

  2.1改进加密方式

  相对于3DES算法,AES算法具有以下优势:首先,AES算法的设计者充分考虑了算法在计算机上的实现,运算速度快,对于内存的需求非常低;其次,AES密钥长度可变,可根据实际需要选择密钥长度;最后,AES加密算法采用宽轨迹策略(Wide Trail Strategy,WTS),可以很好地对抗差分密码分析和线性密码分析[5]。使用AES算法代替3DES算法,在安全性、实现复杂度、灵活性上都能得到提升,尤其是能大幅度加快智能IC卡的安全认证速度。在后面的实验结果分析中均体现了AES在加密性能上的优势。

  2.2改进密钥分散机制

  为了便于密钥的安全管理,智能IC卡密钥管理系统通常采用一个主密钥对每张卡的卡号进行加密,生成的密文为IC卡的子密钥,这种由主密钥生成子密钥的方法称为密钥分散[6]。目前,智能IC卡的密钥分散算法为3DES算法。为了提高子密钥生成的速率,同时保证生成子密钥的安全性,采用混沌算法进行密钥分散。本文使用式(1)进行密钥分散生成子密钥。子密钥的生成步骤如下。

  (1)智能IC卡密钥管理系统定义初始值X0与参数u作为主密钥,设主密钥为MK(X0,u)。为了使混沌系统的动力学方程更加复杂,同时保证X0∈(0,1),一般取u∈(3.6,4)。

  (2)获取IC卡卡号最后面16 B,记为一维数组P[16]。

  (3)Xi=Xi+P[i]/256,其中P[i]/256为每张智能IC卡特有的密钥分散因子。

  (4)使用logistic公式进行16轮迭代运算,获得N[16]={X1,X2,X3,…,X16} 。

  (5)假设N[16]在处理器中以浮点型进行存储,位长为4 B。为了获取16 B的子密钥,可从N[16]中抽取4个元素,为了提升算法安全性,避免攻击者通过运算解出u值,取这四个元素的下标间距为4,记为{X4,X8,X12,X16},其中X4={C1,C2,C3,C4},X8={C5,C6,C7,C8},X12={C9,C10,C11,C12},X16={C13,C14,C15,C16},则IC卡的子密钥C[16]={C1,C2,C3……C16}。

3改进算法在智能IC卡安全认证中的应用

  在本文中,智能IC卡的安全认证采用双向认证机制,即智能IC卡与支付终端相互进行认证,安全认证步骤如下。

  (1)支付终端获取智能IC卡账号最后面16 B的ASCII码值作为AES密钥分散的输入明文,设输入明文记为一维数组X [16]。

  (2)支付终端获取存储在终端安全区域内的混沌主密钥MK(X0,u),将X[16]中的16个元素分别代入公式(1),获得该智能IC卡的AES密钥(即子密钥),记为K[16]。

  (3)记支付终端写入智能IC卡的数据明文为M[L],其中L为16的整数倍 ,终端按照图1所示流程使用密钥K[16]对M[L]进行AES分组加密生成分组密文G[L]。

001.jpg

  (4)支付终端将G[L]通过有线或无限信道发给智能IC卡,智能IC卡在收到G[L]后,使用储存在IC卡安全区域内的AES密钥K[16]对密文G[L]进行解密,判断解密后的明文是否满足标准报文格式,若符合标准报文格式,则金融IC卡对支付终端的安全认证通过,否则安全认证失败。

  (5)智能IC卡使用K[16]对交易相关数据和卡的特征数据进行AES加密,这些数据使用N[L]表示(L为16的整数倍),生成密文C[L]。

  (6)智能IC将密文C[L]返回给支付终端,支付终端将密文C[L]上传至IC卡安全认证中心。

  (7)IC安全认证中心同样使用步骤(5)的方式对密文C[L]进行安全认证,认证通过后,返回交易成功报文。

4实验结果分析

  本文仿真平台处理器采用ST公司的STM32f103系列微处理器,微处理器配置为:CotexM3内核、主频72 MHz、64 KB RAM、512 KB Flash, 软件固件库版本为V3.5.0。实验首先对AES128与3DES加密速度和安全强度进行对比分析,然后对比混沌密钥分散速度和3DES分散速度。

  4.13DES与AES-128对比分析

  3DES和AES-128(表示AES密钥的长度为128 bit)参数如下(16进制表示):

  3DES参数

  输入明文:0123456789abcdef

  密钥:0123456789abcdeffedcba9876543210

  密文:1a4d672dca6cb335

  AES128参数

  输入明文:0123456789abcdef

  密钥:0123456789abcdeffedcba9876543210

  密文:1a4d672dca6cb335

  4.1.13DES与AES-128算法速度对比分析

003.jpg

  AES与3DES加密速度如表1所示,通过对比,AES-128的加密速度比3DES要快40倍,解密速度为3DES的24倍。由此可见,银行卡支付终端使用AES来替代3DES进行安全认证,可以提高交易速度。

  4.1.23DES与AES-128雪崩效应对比分析

  加密算法安全强度的评价指标之一是该加密算法的雪崩效应[7]。雪崩效应指的是明文或者密文即使发生小的变化即会导致密文发生很大的变化。研究表明,如果1位的差别能够引起密文大约一半的位置发生变化,这是比较理想的结果[8]。图2和图3分别表示3DES和AES128的雪崩效应。结合折线图分析,AES-128在加密2轮后大约有一半的位数发生变化,而3DES需要加密3轮后才能达到同样的效果,因此AES-128展示了很好的雪崩效应,且这种强度比3DES要大一些。

  

002.jpg

  4.2混沌算法与3DES算法密钥分散速度对比分析

  若需要获取一个16 B长的IC卡子密钥,采用3DES算法完成密钥分散需进行两次3DES运算,而采用混沌算法只需要16轮logistic公式迭代运算,大幅度提高了密钥分散速度。密钥分散的各参数值与分散速度如表2所示。 通过对比3DES密钥分散和混沌算法密钥分散耗费的机器周期数可以得出,采用混沌算法进行密钥分散的速度是3DES密钥分散速度的27.5倍左右。

004.jpg


5结论

  为了提高智能IC卡的安全认证速度,本文对智能IC卡安全认证算法进行了改进:首先,使用AES算法代替3DES算法,然后使用混沌算法代替传统的密钥分散算法进行密钥分散。实验结果表明,这些改进在保证加密安全强度的前提下,有效提升了智能IC卡的安全认证速度。

  参考文献

  [1] 韩樊勇,顾剑,杜文才.基于智能IC卡的高速流加密系统研究[J].微电子学与计算机. 2013,32(4):13-15.

  [2] 廖晓峰, 陈勇, 肖迪,等. 混沌密码学原理及应用[M]. 北京:科学出版社, 2009.

  [3] 郑东, 李祥学, 黄征.密码学—密码算法与协议[M]. 北京:电子工业出版社,2009.

  [4] 陈克非,黄征.信息安全技术导论[M].北京:电子工业出版社,2007.

  [5] 罗守山,陈萍,邹永忠,等.密码学与信息安全技术[M].北京:北京邮电大学出版社,2009.

  [6] 赵富祥,张福泰,王育民.分组加密算法的设计原则及Rijndael[J].信息安全与通信保密[J].2001,23(10):51-52.

  [7] 袁晓风,李永彬.混沌编码与保密通讯[J].计算机应用,2000,6(20):810.

  [8] 冯登国.密码学导引[M].北京:科学出版社,2000.


此内容为AET网站原创,未经授权禁止转载。