一种智能卡信息处理方法

文档序号:9200703阅读:689来源:国知局
一种智能卡信息处理方法
【技术领域】
[0001]本发明涉及智能卡安全,特别涉及一种智能卡信息处理方法。
【背景技术】
[0002]随着计算机技术不断发展,智能卡作为一种快捷、安全的手段被人们普遍使用。在目前发展物联网技术过程中,作为识别终端物体的主要技术,成为物联网的重要组成部分。智能卡能够迅速地发展的一个重要的原因就在于它能够通过加密体系的安全体系给用户提供一个较高的安全性保证。而对智能卡进行身份验证,则能够获得智能卡的安全状态,获得一定的使用权限,从而进行一些与安全有关的操作。
[0003]在非接触式智能卡系统中,读写设备与智能卡之间的数据交换由于其依赖于可被监听的射频信号进行通信,因而被认为存在遭受攻击的风险。为保证系统的通信安全性,对于读写设备与智能卡间的数据交换,需要通过相应的认证加密机制对其进行保护。
[0004]从已有的认证加密机制分析来看,目前普遍存在如下几方面缺陷:认证或加密算法安全性能与硬件成本无法兼顾;没有采用协商机制处理认证密钥,容易遭受重放攻击;生成的通信密钥多为静态,难以抵御安全通信过程中的DoS攻击。
[0005]因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

【发明内容】

[0006]为解决上述现有技术所存在的问题,本发明提出了一种智能卡信息处理方法,包括:
[0007]控制器生成曲线参数,对于每一个包含复数个读卡器的访问区域使用同一组参数,其中每个读卡器管理包含复数个智能卡的ID集合,并根据访问区域所属的读卡器和智能卡各自的标识符在密钥服务器进行注册;
[0008]对于在同一访问区域内的读卡器和其ID集合中的每一个智能卡,控制器生成用于智能卡ID和阅读器之间身份认证的公钥和私钥并分别进行密钥分发;
[0009]使用数字签名进行读卡器与智能卡的相互身份认证,并生成该对读卡器与智能卡在本次访问中的通信密钥;
[0010]对单对读卡器与智能卡之间的通信数据使用DES算法进行加密。
[0011]优选地,所述曲线参数为ElGamal参数D:
[0012]D = (E,p,Gx, Gy)
[0013]其中:E为以素数为模的整数域GF(p)上的ElGamal曲线,p为一个预定长度的大素数,P值长度不小于160位,Gx, Gy为曲线E上基础点G的X,y坐标。
[0014]优选地,所述身份认证进一步包括:
[0015]I)读卡器向密钥数据库获取该访问区域的曲线参数D ;
[0016]2)读卡器1^对目标智能卡T ?发起认证请求,将自身读卡器标识符RID发送给智能卡Tn;
[0017]3) Tn生成本次访问智能卡标识随机数RN ,和智能卡的初始交换密钥X t,计算临时密钥TKt= X t.Pn,其中正整数Pn是控制器选择的作为目标智能卡T ?交换密钥的参数;
[0018]使用签名算法通过自身私钥dt和曲线参数D描述的曲线Ed计算签名:
[0019]Sigt= E D(sigdt(TID Il RID Il TKt II RNt Il Pn))
[0020]其中TID表示智能卡1;的ID,将Sigt和RN t、TKt发送给读卡器Rn;
[0021]4) Rn收到Tn传来的Sigt和RNt、TKt,使用1;的TID向密钥服务器查询T n的参数Pn,认证公钥Kt,使用Kt验证签名Sigt;如果验证失败,则拒绝对Tn的响应;如果验证成功,则Rn完成对Tn的身份验证;
[0022]读卡器Rn生成本次访问读卡器标识随机数RN JP读卡器的初始交换密钥Xy计算Rn的临时密钥TI^= Pn,并使用签名算法通过自身私钥火和曲线参数D描述的曲线E D计算签名:
[0023]Sigr= E D (Sigdr (TID Il RID II TKr Il RNr Il RNt II Pn))
[0024]将Sigr、RNr、TKr发送给 T n;
[0025]使用1;发来的临时密钥TK X r,通过SHAl函数计算基础密钥BK^
[0026]BKr= SHAKTKt.Xr)
[0027]5) 1;收到R n发来的Sig r,RNr,TKr,首先使用Rn的公钥K r对签名Sig r进行验证,如果验证失败,则拒绝对Rn的响应;如果验证成功,则使用TK ,和X t,通过预定的SHAl函数计算基础密钥BKt:
[0028]BKt= SHAl(TKr.Xt)。
[0029]本发明相比现有技术,具有以下优点:
[0030]本发明的方法用较低的资源开销实现了智能卡与读卡器之间的认证和数据传输处理,能够抵抗常见的攻击,具备可扩展性。
【附图说明】
[0031]图1是根据本发明实施例的智能卡信息处理方法的流程图。
【具体实施方式】
[0032]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0033]本发明的一方面提供了一种智能卡信息处理方法。图1是根据本发明实施例的智能卡信息处理方法流程图。
[0034]本发明的智能卡信息处理方法首先交换密钥,并使用数字签名算法对通信双方身份进行认证,最终通过加密算法使用交换后生成的密钥对读写的数据进行加密,其整个过程由五个阶段构成,即:预处理阶段、密钥分发阶段、身份认证阶段、交换密钥阶段、消息加密及恢复阶段。
[0035]1.预处理阶段
[0036]该阶段目的是产生ElGamal参数D:
[0037]D= (E,p,Gx,Gy)
[0038]其中:E为以素数为模的整数域GF(p)上的ElGamal曲线,p为一个预定长度的大素数。根据最小密钥长度要求,P值长度不应小于160位。Gx,&为ElGamal曲线E上基础点G的X,y坐标。
[0039]ElGamal参数D由单个访问的控制器生成。对于每一个访问区域A(该组包含复数个读卡器Rn,每个读卡器管理包含复数个智能卡的ID集合Gtn,并按照使用需求所归并),有
[0040]A = (R1, R2,…,Rn, Gtl, Gt2,…,Gj
[0041]使用同一组参数D,并根据A所属的读卡器和智能卡各自的标识符在密钥服务器进行注册。
[0042]2.密钥分发阶段
[0043]对于每对在同一访问区域内的读卡器Rn和其下属的ID集合G ^中的每一个智能卡Tn,控制器需要生成正整数P和用于智能卡ID和阅读器之间身份认证的公、私钥。其中读卡器和智能卡各自的认证私钥4、dt为各自私有,读卡器的公钥K1?为该读卡器所管理的ID集合中所有智能卡所共有。智能卡的公钥Kt根据智能卡ID TID存于密钥服务器。一个读卡器ICS其下属ID集合G ^的密钥具体生成分发步骤如下:
[0044]I)控制器选择一个足够长度的随机数払同时从密钥服务器中取出目标读卡器Rn所属的访问区域A的ElGamal参数D,在D所描述的曲线Ed上计算K Ed (4.G)
[0045]2)控制器选择一个正整数Pn作为目标智能卡T ?用于交换密钥的参数,并选择一个足够长度的随机数dt,同时从密钥服务器中取出目标智能卡1;所属的访问区域A的ElGamal参数D,在D所描述的曲线Ed上计算K t= E D(dt.G)
[0046]3)控制器将第I)?2)步生成的dt、&、Pn通过可靠信道分发给目标智能卡Tn,并将第I)?2)步生成的Kt、Pn以目标智能卡ID TIDnS查询键值存于密钥服务器。
[0047]重复步骤2到3,分别选择Rn下属的ID集合G tn中不同的目标智能卡T ?进行密钥分发,直到ID集合Gtn中所有智能卡均已处理完毕,再将CU作为读卡器认证私钥通过可靠信道分发给目标读卡器Rn,密钥分发过程结束。
[0048]3.身份认证与交换密钥阶段
[0049]此阶段完成单对读卡器与智能卡间相互的身份认证工作,并生成该对读卡器1^与智能卡1;在本次访问中的通信密钥。
[0050]在交换密钥过程中,计算临时密钥TK = X.G
[0051]不使用基础点G作为公开初始密钥,而使用各智能卡的参数Pn来代替作为公开初始密钥,并分别存储于智能卡和密钥服务器中。对于每一个智能卡τη,都有一个特定的Pn#为其公开初始密钥。而真正的密钥则由智能卡和读卡器各自临时生成的在ElGamal参数D所描述的曲线Ed上的随机点X P &来代替。这样在不可靠线路上只有临时密钥TK进行交换,并且也减小了密钥服务器查询时间和存储规模。
[0052]该阶段具体认证、交换步骤如下:
[0053]I)读卡器向密钥数据库获取该访问区域的曲线参数D。
[0054]2)读卡器1^对目标智能卡T ?发起认证请求,将自身读卡器标识符RID发送给智能卡τη。
[0055]3) Tn生成本次访问智能卡标识随机数RN ,和智能卡的初始交换密钥X t,计算临时密钥TKt= X t.Pn,使用签名算法通过自身私钥dt和曲线参数D描述的曲线E。计算签名:
[0056]Sigt= E D (Sigdt (TID Il RID II TKt Il RNt Il Pn))
[0057]其中TID表示智能卡1;的ID,将Sig ,和RN t、TKt发送给读卡器R n。
[0058]4) 1^1夂到T n传来的Sig ,和RN t、TKt,使用1;的TID向密钥服务器查询T n的参数Pn,认证公钥Kt,使用Kt验证签名Sig to如果验证失败,则拒绝对Tn的响应;如果验证成功,则Rn完成对Tn的身份验证。读卡器Rn生成本次访问读卡器标识随机数RN ^和读卡器的初始交换密钥\,计算Rn的临时密钥TI^= X ^斤?并使用签名算法通过自身私钥d JP曲线参数D描述的曲线Ed计算签名:
[0059]Sigr= E D (Sigdr (TID Il RID II TKr Il RNr Il RNt II Pn))
[0060]将Sigr、RNr、TKr发送给 T no
[0061]使用1;发来的临时密钥TK tiP X r,通过SHAl函数计算基
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1