我们知道对Mifare Ultralight C进行身份验证的过程,但我们无法使用PN532芯片进行身份验证。我们按照命令集中显示的步骤操作,但我们无法获得确切的结果。我们需要一些帮助来完成Mifare Ultralight C的身份验证过程。请提供一些建议,否则任何使用此卡的人都可以提供帮助。
Command: 00 00 FF 05 FB D4 60 01 01 00 CA 00 Response: 00 00 ff 11 ef d5 61 01 10 0c 01 00 44 00 07 04 54 ad f2 ef 45 80 b6 00
Command: 00 00 FF 04 FC D4 42 1A 00 D0 00 Response: 00 00 ff 0c f4 d5 43 00 af 22 f5 ec 57 19 7f 44 72 91 00
解密RndB并旋转到RndB':
Key = 49454D4B41455242214E4143554F5946
enc(RndB) = 22 f5 ec 57 19 7f 44 72
decrypt(enc(RndB)) = d1 f4 00 d1 13 bd ef 04
RndB' = 04 f4 00 d1 13 bd ef d1
生成RndA并构建RndA || RndB':
RndA = 74 bd 85 75 7b d2 8b 77
RndA || RndB' = 74 bd 85 75 7b d2 8b 77 04 f4 00 d1 13 bd ef d1
加密RndA || RndB':
IV = 22F5EC57197F4472
encrypt(RndA || RndB') = 98 70 67 11 40 8F 73 B1 1C 11 15 6A 30 47 ED 58
现在我们必须使用AFh Mifare Ultralight C命令将此encrypt(RndA || RndB')
传递给卡片:
Command: 00 00 FF 13 ED D4 42 AF 98 70 67 11 40 8F 73 B1 1C 11 15 6A 30 47 ED 58 60 00 Response: 00 00 ff 03 fd d5 43 01 e7 00
这会导致错误代码01h。
答案 0 :(得分:0)
问题是您将RndB旋转到错误的方向。如果你有像RndB一样的
RndB = decrypt(enc(RndB)) = d1 f4 00 d1 13 bd ef 04
然后RndB'应该是
RndB' = rotate_left(RndB) = f4 00 d1 13 bd ef 04 d1