一种存储卡和读卡器相互认证的方法

文档序号:6463325阅读:192来源:国知局
专利名称:一种存储卡和读卡器相互认证的方法
技术领域
本发明涉及存储卡和读卡器设计技术,特别涉及一种存储卡和读卡器之间实现相互认^正的方法。
背景技术
目前的存储卡,例如SD (Secure Digital安全数字)卡、匿(MultiMediCard多媒体卡)只具备存储功能,存储卡的一切行为都是由主机(HOST)来控制,存储卡不能区分读卡器的不同,更不能拒绝HOST下发的控制指令,在一些需要存储卡区别什么任务可以完成,什么任务拒绝完成的情况下,这种普通的存储卡就不能胜任了 。传统的存储卡及读卡器存在以下缺点
1. 存储卡被动地接受命令,被动地执行任何符合相应存储卡协议的命令,对主机发出的命令只执行不进行任何判断;
2. 读卡器只需要符合相应存储卡通信协议,例如SD/固C通信协议,只传输数据不进行任何判断;
3. 存储卡可以在任意一款读卡器上使用,无法保证需要执行的特殊功能的真实性、可靠性、安全性和唯一性;
4. 读卡器虽然具有兼容性这一优点,但无法控制存储卡实现某些特殊功能,例如读卡器识别固定ID的存储卡,在识别通过的存储卡上进行文件加密操作,而其他没有通过识别的存储卡则不能进行文件加密操作;
5. 存储卡遵循相应的协议,不能兼容其它协议从而限制了功能的扩展。可见,存储卡和相应读卡器的上述缺点无法完成那些对安全性需求较高的
功能,本发明正是为了解决这一问题而提出的。

发明内容
本发明的主要目的在于针对目前存储卡只遵循一种标准协议,不能随意扩展标准协议来实现特殊功能的缺点,提供一种存储卡和读卡器相互认证的
4方法,从而保证一些基于存储卡实现特殊功能的可靠性、真实性、安全性和唯一性。
本发明的技术方案如下 一种存储卡和读卡器相互认证的方法,包括如下步骤
(1) 上电初始,存储卡进行第一处理,并把第一处理后的信息传送给读卡器;
(2) 读卡器对第一处理后的信息数据进行第二处理,产生第二处理的
结果;
(3) 读卡器根据第二处理的结果选择进行第三处理或产生认证失败信息,并把第三处理后的信息或认证失败信息传送给存储卡;
(4) 若存储卡接收到认证失败信息,则转到步骤(5);否则,存储卡对第三处理后的信息进行第四处理,产生第四处理的结果,并根据第四处理的结果产生认证成功或认证失败的信息;
(5) 存储卡保存认证成功或认证失败的信息。
如上所述的存储卡和读卡器相互认证的方法,其中,步骤(l)中所进行的第一处理是指存储卡把其自身具有的ID通过校验算法进行计算,得到第一组校验码,存储卡ID和第一组校验码即为第一处理后的信息。
如上所述的存储卡和读卡器相互认证的方法,其中,步骤(2)中所进行的第二处理是指读卡器把接收到的第一处理后的信息中的存储卡ID通过校
验算法进行计算,得到第二组校验码,并将第二组校验码与第一组校验码进行比较;且第二处理与第一处理所使用的校验算法相同。
进一步,在上述存储卡和读卡器相互认证的方法中,步骤(2)中读卡器所进行的第二处理产生两种结果1.第一组和第二组校验码一致,2.第一组和第二组校验码不一致;步骤(3)中读卡器根据所述结果1,选择进行第三处理,读卡器根据所述结果2,产生认证失败信息表示读卡器对存储卡认证失败。
如上所述的存储卡和读卡器相互认证的方法,其中,步骤(3)中所进行的第三处理是指读卡器把读卡器ID通过校验算法进行计算,得到第三组校验码,读卡器ID和第三组校验码即为第三处理后的信息。
如上所述的存储卡和读卡器相互认证的方法,其中,步骤(4)中所进行的第四处理是指存储卡把接收到的第三处理后的信息中的读卡器ID通过校验算法进行计算,得到第四组校验码,并将第四组校验码与第三组校验码进
行比较;且第四处理与第三处理中的校验算法相同。
进一步,在上述存储卡和读卡器相互认证的方法中,步骤(4)中存储卡所进行的第四处理产生两种结果1.第三组和第四组校验码一致,2.第三组和第四组校验码不一致;存储卡根据所述结果1,产生认证成功信息表示存储卡和读卡器的相互认证成功,存储卡根据所述结果2,产生认证失败信息表示存储卡和读卡器的相互认证失败。
如上所述的存储卡和读卡器相互认证的方法,其中,根据所述认证失败的信息,基于认证成功才能进行的所有功能不能执行。
采用本发明提供的存储卡和读卡器之间相互认证的方法,实现了以下效果
1. 存储卡不仅符合相应存储卡协议规范,还能够符合ISO/IEC7816协议规范;通过ISO/IEC 7816协议,打开了存储卡与读卡器间进行相互认证的通道。
2. 存储卡与读卡器通过ISO/IEC7816协议接口进行数据交互,可以实现认证数据的传送和判断。


图1为APDU指令结构示意图。
图2为应答APDU命令结构示意图。
图3为SD/匿C卡与读卡器相互认证过程的流程图。
图4为读卡器发送的status命令示意图。
图5为读卡器发送的Fetch命令示意图。
图6为读卡器向SD/固C卡发送的Terminal Response命令示意图。
具体实施例方式
存储卡和读卡器分别具有唯一的一个ID ( Identification,标识符),存储卡同读卡器通过IS0/IEC7816协议实现认证数据的交互。当然,为了使遵循相应存储卡协议的存储卡和读卡器可以通过ISO/IEC7816协议实现认证数据的交互,存储卡需要具有单独或者复用的ISO/IEC7816接口,并具有相应的功能。下面结合附图,以SD或MMC为例对本发明进行详细的描述。
SD/画C卡与读卡器进行相互认证数据的传输过程符合IS0/IEC 7816标准,存储卡与读卡器之间的数据传送使用应用协议数据单元(APDU )命令结构,APDU的命令结构如图1所示,
CLA:命令类别,取值为"AO"
INS:指令代码;
Pl, P2:指令附加参数;
P3:由INS的编码而定,或是表示命令中送给卡的数据长度,或是表示等待从卡响应的数据最大长度。.
存储卡回应读卡器的命令为应答APDU命令,命令结构如图2所示,SW1和SW2指示命令执行的结果正确与否。
在本实施例中使用主动交互式命令。
SD/MMC卡与读卡器相互iU正过程如图3所示,步骤如下
1、 在SD/画C卡上电后,首先发送复位应答信息,读卡器接收到SD/應C卡发送的复位应答信息后,发送Status命令,读卡器发送的status命令如图4所示。
2、 SD/薩C卡应答status命令命令应答状态字SW1SW2: 91 xx,表示命令正常结束,并通知读卡器有主动命令作为附加信息,'xx,为响应数据的长度。
3、 读卡器发送的Fetch命令如图5所示。
4、 SD/画C卡应答,发送Get Input命令
该命令属于主动式SIM卡命令,命令格式符合GSMll. 14中的定义,命令中的文本字符串部分包括定义的指令类型、存储卡ID和SD/,C卡利用存储卡ID进行CRC (Cyclic Redundancy Check循环冗余才交一验)校—验得到的才交'睑码,其中指令类型包括校验指令,表示存储卡与读卡器的认证。
CRC校验技术为一种公知技术,在数据通信和数据存储领域,CRC校验无处不在,其基本思想是利用线性编码理论,在发送端或者数据存储时才艮据k位二进制信息码序列,以一定的规则产生一个校验用的CRC码r位,并附在信息码后边,构成一个新的二进制码序列数共(k+r)位。在接收端或数据存储后,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中或者数据存储中是否出错。例如存储卡ID为0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x390x30,即十进制1234567890,进行CRC才交-验的初始值为0xFF, 0xFF, 0xFF, OxFF,进行CRC校验后得到的校验码为0x32 0x18。
5、 读卡器收到步骤4的SD/醒C卡发送的Get Input命令后,将根据命令的文本字符串中携带的指令类型数据判断是否是校验指令,如果不是校验指令,则按照相应的非校验指令执行或退出此过程;如果是校验指令,则接着取出命令的文本字符串中携带的存储卡ID进行CRC校验,计算出校验码,并将该校验码与读卡器接收到的CRC校验码进行比较,若一致则说明读卡器对存储卡的认证成功,不一致则说明读卡器对存储卡的认证失败。其中读卡器利用存储卡ID进行CRC校验的算法与上述步骤4中存储卡利用存储卡ID进行CRC校验的算法相同。
然后,读卡器向SD/画C卡发送Terminal Response命令,如图6所示,该命令用于对上一次使用FETCH命令取回的SD/醒C卡主动命令Get Input的响应。
1) 当前述读卡器判断CRC校验码一致,读卡器对SD/羅C存储卡的认证成功时,读卡器向SD/画C发送的Terminal Response中的DATA部分包括读卡器对SD/画C卡认证成功的标志,定义的指令类型、读卡器ID和读卡器利用读卡器ID计算得到的校验码。其中指令类型包括校验指令的响应指令,表示存储卡与读卡器的认证。
2) 当前述读卡器判断CRC校验码不一致,读卡器对SD/MMC存储卡的认证失败时,读卡器向SD/MMC发送的Terminal Response中的DATA部分包括读卡器对SD/MMC卡认证失败的标志。
6、 SD/画C卡收到读卡器发送的Terminal Response命令后,根据命令中定义的指令类型判断是否是校验指令的响应指令,如果不是,则按照相应非校验指令的响应指令执行或退出此过程,如果是则根据命令中的认证成功/失败标志判断读卡器对SD/画C卡认证是否成功,如果认证失败,则不置位SD/MMC卡内部认证通过标志位;如果认证成功,则取出命令中携带的读卡器ID进行CRC校验,计算出校验码,与读卡器发送的CRC校验码进行比较,若一致则通过SD/MMC卡与读卡器的相互认证,并置位SD/固C卡内部认i正通过标志位,若不一致则SD/醒C卡对读卡器的iU正失败,不置位SD/画C卡内部iU正通过标志位。其中SD/薩C卡利用读卡器ID进行CRC校验的算法与上述步骤5中读卡器利用读卡器
8ID进行CRC校验的算法相同。SD/,C卡的特殊功能需在SD/固C卡内部的认证通过标志位置位后才能正常进行。
7、 SD/薩C卡应答命令,其中命令应答状态字SW1SW2: 90 00,通知读卡器命令正常结束。
考虑到在此公开的对本发明的描述和特殊的实施例,本发明的其他实施例对于本领域的技术人员来说是显而易见的。这些说明和实施例仅作为例子来考虑,它们都属于由所附权利要求所指示的本发明的保护范围和精神之内。
权利要求
1.一种存储卡和读卡器相互认证的方法,包括如下步骤(1)上电初始,存储卡进行第一处理,并把第一处理后的信息传送给读卡器;(2)读卡器对第一处理后的信息数据进行第二处理,产生第二处理的结果;(3)读卡器根据第二处理的结果选择进行第三处理或产生认证失败信息,并把第三处理后的信息或认证失败信息传送给存储卡;(4)若存储卡接收到认证失败信息,则转到步骤(5);否则,存储卡对第三处理后的信息进行第四处理,产生第四处理的结果,并根据第四处理的结果产生认证成功或认证失败的信息;(5)存储卡保存认证成功或认证失败的信息。
2. 如权利要求1所述的存储卡和读卡器相互认证的方法,其特征在于步骤(1)中所进行的第一处理是指存储卡把其自身具有的ID通过校验算法进行计算,得到第一组校验码,存储卡ID和第一组校验码即为第一处理后的信息。
3. 如权利要求2所述的存储卡和读卡器相互认证的方法,其特征在于步骤(2)中所进行的第二处理是指读卡器把接收到的第一处理后的信息中的存储卡ID通过校验算法进行计算,得到第二组校验码,并将第二组校验码与第 一组校验码进行比较。
4. 如权利要求3所述的存储卡和读卡器相互认证的方法,其特征在于第二处理与第一处理所使用的校验算法相同。
5. 如权利要求3所述的存储卡和读卡器相互认证的方法,其特征在于步骤(2)中读卡器所进行的第二处理产生两种结果1.第一组和第二组校验码一致,2.第一组和第二组校验码不一致;步骤(3)中读卡器根据所述结果l,选择进行第三处理,读卡器根据所述结果2,产生认证失败信息表示读卡器对存储卡认证失败。
6. 如权利要求1所述的存储卡和读卡器相互认证的方法,其特征在于步骤(3)中所进行的第三处理是指读卡器把读卡器ID通过校验算法进行计算,得到第三组校验码,读卡器ID和第三组校验码即为第三处理后的信息。
7. 如权利要求6所述的存储卡和读卡器相互认证的方法,其特征在于步骤(4 )中所进行的第四处理是指存储卡把接收到的第三处理后的信息中的读卡器ID通过校验算法进行计算,得到第四组校验码,并将第四组校验码与第三组校验码进行比较。
8. 如权利要求7所述的存储卡和读卡器相互认证的方法,其特征在于第四处理与第三处理中的校验算法相同。
9. 如权利要求7所述的存储卡和读卡器相互认证的方法,其特征在于步骤(4)中存储卡所进行的第四处理产生两种结果1.第三组和第四组校验码一致,2.第三组和第四组校验码不一致;存储卡根据所述结果l,产生认证成功信息表示存储卡和读卡器的相互认证成功,存储卡根据所述结果2,产生认证失败信息表示存储卡和读卡器的相互认证失败。
10. 如权利要求1所述的存储卡和读卡器相互认证的方法,其特征在于根据所述认证失败的信息,基于认证成功才能进行的所有功能不能执行。
全文摘要
本发明涉及存储卡和读卡器设计技术,特别涉及一种存储卡和读卡器之间实现相互认证的方法。该方法在上电初始,存储卡进行第一处理,并把第一处理后的信息传送给读卡器;读卡器对第一处理后的信息数据进行第二处理,产生第二处理的结果;读卡器根据第二处理的结果选择进行第三处理或产生认证失败信息,并把第三处理后的信息或认证失败信息传送给存储卡;存储卡对第三处理后的信息进行第四处理,产生第四处理的结果,并根据第四处理的结果产生认证成功或认证失败的信息;存储卡保存认证成功或认证失败的信息。本发明保证了一些基于存储卡实现特殊功能的可靠性、真实性、安全性和唯一性。
文档编号G06K7/00GK101561860SQ20081010420
公开日2009年10月21日 申请日期2008年4月17日 优先权日2008年4月17日
发明者璐 徐, 军 支, 华 闫 申请人:凤凰微电子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1