必须使用哪种 CRC 算法来查询 NTag213 的篡改标签状态?

Which CRC algorithm must be used to query the Tamper Tag status from a NTag213?

提问人:Thibaut Gauthier 提问时间:11/3/2023 更新时间:11/3/2023 访问量:30

问:

我正在尝试读取篡改标签 NTag 213(使用 TWN4 读卡器)的“TT 状态”。

“读取 TT 状态”命令是 A4 00 + CRC(文档)。

我似乎对 CRC 计算有问题,因为该命令总是返回 01。01 记录为“用于奇偶校验或 CRC 错误的 NAK”。

你能告诉我应该使用哪种算法来计算CRC吗? 我尝试了 CRC_A 算法,该算法为给定的有效载荷 (A400) 提供 D63F。 这个CRC值错了吗?

NFC CRC16 NTAG21X

评论

0赞 Thibaut Gauthier 11/3/2023
这是CRC_A字节顺序(小端序)的错误。

答:

0赞 Andrew 11/3/2023 #1

通常,大多数NFC读卡器硬件会为您进行CRC计算。

正如 Tag 的数据表概述了它在 ISO 14443-3 级别的硬件期望,但您发送给读者的实际上是一条指令,要求它生成所需的 14443-3 命令。

因此,您只需将指令发送到读卡器硬件(通常使用 USB 读卡器,这包含在 APDU 命令中)。A4 00

评论

0赞 Thibaut Gauthier 11/3/2023
它是一个 type-2 标签。因此,它依赖于Mifare Ultralight而不是ISO7816。我认为 ISO14443-3 是发送自定义命令的唯一方法。
0赞 Andrew 11/3/2023
是的,ISO14443-3 是向 Tag 发送数据的唯一方法,但大多数 USB 读卡器都使用ISO7816命令(我找不到有关您特定 USB 读卡器的任何技术细节)。因此,通常您不是直接与 Tag 通信,而是要求 USB 读卡器与 Tag 通信,因此必须通过 APDU 告诉 USB 阅读器发送 ISO14443-3 数据。因此,读取器会收到 APDU,该 APDU 告诉它通过 ISO14443-3 将 APDU 有效负载发送到 Tag。
0赞 Mark Adler 11/3/2023 #2

要回答这个问题,CRC 是 CRC-16/ISO-IEC-14443-3-A,它具有以下参数:

width=16 poly=0x1021 init=0xc6c6 refin=true refout=true xorout=0x0000 check=0xbf05 residue=0x0000 name="CRC-16/ISO-IEC-14443-3-A"