智能卡应答重置

Smart card answer to reset

智能卡的 ISO7816-3 标准指出,某些卡没有义务支持字符重复(由于奇偶校验错误)。现在假设接口设备 (ID) 在 ATR(重置应答)期间从未知卡接收奇偶错误数据。它(ID)向卡发出错误信号,但不知道卡是否支持重复,它如何确定卡中的下一个字符是重复一个(有奇偶校验错误)还是下一个(如果卡不支持)支持重复)。

据我了解标准,错误检测的工作方式如下:

  • 对于T=0使用错误信号和字符重复

  • 对于其他人,总是有一个帧校验和用于错误检测(TCK 复位应答中的字节,LRC/CRCT=1 帧中)


引用 ISO/IEC 7816-3:2006,第 "Answer to reset" 节,第 "Characters and coding conventions" 小节:

The error signal and character repetition according to 7.3 is mandatory for the cards offering T=0; it is optional for the interface devices and for other cards.

引用 "Answer-to-Reset" 节下的 "Check byte TCK" 小节:

If only T=0 is indicated, possibly by default, then TCK shall be absent. If T=0 and T=15 are present and in all the other cases, TCK shall be present. When TCK is present, exclusive-oring all the bytes T0 to TCK inclusive shall give '00'. Any other value is invalid.


上面的意思是ATR的正确传输是通过对纯T=0卡的错误signal/character重复来检查的。其余的 TCK 字节。

在你的场景中,接口设备在奇偶校验错误后确实无法区分重复的字符和不重复的字符,但如果卡不支持错误 signal/character 重复产生的 TCK 字节(在这种情况下是强制性的)应该很有可能是错误的。

免责声明:这是我对标准的解释,请验证我的想法...

祝你好运!