- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Stackoverflow 上有很多关于 Desfire EV1 卡的问题。
但是如果你搜索一些示例数据,你会发现几个字节的唯一地方是 Ridrix Blog .但这很不完整。
很多人在为 Desfire 卡开发代码时在那里写了他们的问题。但大多数情况下,当他们解决问题时,他们懒得发布解决方案。所以你会发现很多问题,但很少有数据示例的答案。
即使您有 Desfire EV1 文档(我没有,我研究了 easypay 代码),您也需要更多。文档只是理论。但是您的卡返回身份验证错误或完整性错误或意外 CMAC 的原因是什么?
最佳答案
在 Desfire EV1 开发上花费了数周时间后,我决定为所有需要输入数据来提供复杂密码功能并将输出与预期数据进行比较的人发布一些示例。我知道这非常有帮助。
在这里您可以找到一些来自最重要的 Desfire EV1 操作的调试输出。
目前您无法在互联网上找到此信息。
如果我有这些例子,我会节省很多时间来开发我的代码。
ISO 和 AES 身份验证 session 的陷阱
在 ISO 和 AES 模式下,每个加密/解密都经过 加拿大广播公司 .
四 仅在身份验证后创建 key 时将 session key 重置为零一次。
身份验证开始时,身份验证 key 的 IV 仅重置一次。
身份验证期间:
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (DES))
Sending: <1A 00>
Response: <AF B8 90 04 7F 2D C8 D6 8B>
* RndB_enc: B8 90 04 7F 2D C8 D6 8B
* RndB: 74 B8 43 5F CB A0 B6 75
* RndB_rot: B8 43 5F CB A0 B6 75 74
* RndA: 92 31 34 8B 66 35 A8 AF
* RndAB: 92 31 34 8B 66 35 A8 AF B8 43 5F CB A0 B6 75 74
* RndAB_enc: 7C 84 6A 50 7B 9B 6E 68 64 BC 33 72 A3 06 A8 C1
Sending: <AF 7C 84 6A 50 7B 9B 6E 68 64 BC 33 72 A3 06 A8 C1>
Response: <00 B7 96 DD 3F 81 15 45 F3>
* RndA_enc: B7 96 DD 3F 81 15 45 F3
* RndA_dec: 31 34 8B 66 35 A8 AF 92
* RndA_rot: 31 34 8B 66 35 A8 AF 92
* SessKey: 92 30 34 8A 74 B8 42 5E 92 30 34 8A 74 B8 42 5E (DES)
更改 2K3DES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: B4 28 2E FA 9E B8 2C AE B4 28 2E FA 9E B8 2C AE (DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (2K3DES)
* CRC Crypto: 0x5001FFC5
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 C5 FF 01 50 00 00 00 00
* CryptogrEnc: 87 99 59 11 8B D7 7C 70 10 7B CD B0 C0 9C C7 DA 82 15 04 AA 1E 36 04 9C
Sending: <C4 00 87 99 59 11 8B D7 7C 70 10 7B CD B0 C0 9C C7 DA 82 15 04 AA 1E 36 04 9C>
Response: <00>
更改 2K3DES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 9C 70 56 82 5C 08 9E C8 9C 70 56 82 5C 08 9E C8 (DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (2K3DES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (DES)
* CRC Crypto: 0xD7A73486
* CRC New Key: 0xC4EF3A3A
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 86 34 A7 D7 3A 3A EF C4
* CryptogrEnc: 7D 83 D3 4E FB 6C 84 98 48 E2 D6 37 AD A2 D0 87 14 36 1A E6 C4 63 14 52
Sending: <C4 01 7D 83 D3 4E FB 6C 84 98 48 E2 D6 37 AD A2 D0 87 14 36 1A E6 C4 63 14 52>
Response: <00 1D 5C 27 97 10 86 30 8D>
CMAC: 1D 5C 27 97 10 86 30 8D
使用 3K3DES 默认 key 的 ISO 身份验证 #0
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (3K3DES))
Sending: <1A 00>
Response: <AF 14 65 76 AC 1B 7D B8 CA 24 84 C5 69 7F 80 12 E1>
* RndB_enc: 14 65 76 AC 1B 7D B8 CA 24 84 C5 69 7F 80 12 E1
* RndB: BA 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4
* RndB_rot: 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4 BA
* RndA: F5 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6
* RndAB: F5 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4 BA
* RndAB_enc: D0 55 BD 5E A0 1E BF C3 02 93 D4 8A 54 A0 51 B4 0A 66 57 7A 38 3C 58 ED 77 5C 51 BC 97 D4 FA BD
Sending: <AF D0 55 BD 5E A0 1E BF C3 02 93 D4 8A 54 A0 51 B4 0A 66 57 7A 38 3C 58 ED 77 5C 51 BC 97 D4 FA BD>
Response: <00 E1 EE 93 F0 12 C8 D6 72 11 D4 33 7C AD 56 6A 40>
* RndA_enc: E1 EE 93 F0 12 C8 D6 72 11 D4 33 7C AD 56 6A 40
* RndA_dec: 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 F5
* RndA_rot: 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 F5
* SessKey: F4 68 6E 3A BA 90 36 BA D2 8E BC 10 32 E6 38 F0 80 44 5A F6 06 86 D0 C4 (3K3DES)
更改 3K3DES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: F4 68 6E 3A BA 90 36 BA D2 8E BC 10 32 E6 38 F0 80 44 5A F6 06 86 D0 C4 (3K3DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 (3K3DES)
* CRC Crypto: 0xA2003ED6
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 D6 3E 00 A2 00 00 00 00
* CryptogrEnc: 7F 88 90 C7 CA B9 A4 22 81 73 A6 41 B6 5F 0F 43 FD 40 4A 01 13 71 A9 90 4A 62 9E 3C 20 B2 FF 63
Sending: <C4 00 7F 88 90 C7 CA B9 A4 22 81 73 A6 41 B6 5F 0F 43 FD 40 4A 01 13 71 A9 90 4A 62 9E 3C 20 B2 FF 63>
Response: <00>
更改 3K3DES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 9C 52 0E 3C B4 5A B2 A4 A2 00 C4 DA 72 2C 0E F4 38 FE 8A 48 F8 18 9E 56 (3K3DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 (3K3DES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (3K3DES)
* CRC Crypto: 0x078BAED8
* CRC New Key: 0x12A6733E
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 D8 AE 8B 07 3E 73 A6 12
* CryptogrEnc: 72 18 2F 5B 0C F1 7E A0 86 A5 AE A5 64 ED 98 7A F3 90 CD B3 78 36 4E 2B C2 45 8B 3A E3 23 98 4D
Sending: <C4 01 72 18 2F 5B 0C F1 7E A0 86 A5 AE A5 64 ED 98 7A F3 90 CD B3 78 36 4E 2B C2 45 8B 3A E3 23 98 4D>
Response: <00 D2 E3 BD 0D 09 47 72 ED>
CMAC: D2 E3 BD 0D 09 47 72 ED
使用 AES 默认 key 的 AES 身份验证 #0
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (AES))
Sending: <AA 00>
Response: <AF FF 0A FB 10 B4 3F 3B 34 23 36 57 0F 7A 0E 8B 74>
* RndB_enc: FF 0A FB 10 B4 3F 3B 34 23 36 57 0F 7A 0E 8B 74
* RndB: 1F 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04
* RndB_rot: 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04 1F
* RndA: 73 AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C
* RndAB: 73 AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04 1F
* RndAB_enc: B3 11 34 03 F5 73 95 35 CA 1A 5D 4B D4 38 BE 03 2B 54 28 32 3D 0A 83 4D 11 8F 35 06 C4 2C 5B 01
Sending: <AF B3 11 34 03 F5 73 95 35 CA 1A 5D 4B D4 38 BE 03 2B 54 28 32 3D 0A 83 4D 11 8F 35 06 C4 2C 5B 01>
Response: <00 E2 AE 7D 31 29 48 19 69 E9 A0 C7 CC 89 1E DF 58>
* RndA_enc: E2 AE 7D 31 29 48 19 69 E9 A0 C7 CC 89 1E DF 58
* RndA_dec: AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 73
* RndA_rot: AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 73
* SessKey: 73 AE 5D 30 1F 45 19 27 1F 2A 69 8C EF 69 76 04 (AES)
更改 AES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: 73 AE 5D 30 1F 45 19 27 1F 2A 69 8C EF 69 76 04 (AES)
* SessKey IV: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
* New Key: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (AES)
* CRC Crypto: 0x6BE6C6D2
* Cryptogram: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 10 D2 C6 E6 6B 00 00 00 00 00 00 00 00 00 00 00
* CryptogrEnc: 97 41 8E 6C C0 1C 4E 6F AD 4D 87 4D 8D 42 5C EA 32 51 36 11 47 2C DA 04 E3 5E FB 77 9A 7D A0 E4
Sending: <C4 00 97 41 8E 6C C0 1C 4E 6F AD 4D 87 4D 8D 42 5C EA 32 51 36 11 47 2C DA 04 E3 5E FB 77 9A 7D A0 E4>
Response: <00>
更改 AES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 1C D3 8E BD 95 F3 1C 8A B8 7F 0A C9 C4 EB 64 C6 (AES)
* SessKey IV: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
* New Key: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (AES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (AES)
* CRC Crypto: 0x84B47033
* CRC New Key: 0x1979E3BF
* Cryptogram: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 10 33 70 B4 84 BF E3 79 19 00 00 00 00 00 00 00
* CryptogrEnc: 30 23 FA 06 2D 25 0A 04 35 BA E9 45 CA BE 96 5D 62 2A 47 1D 32 5D 1D 42 EA 81 44 41 CB 1A 20 C3
Sending: <C4 01 30 23 FA 06 2D 25 0A 04 35 BA E9 45 CA BE 96 5D 62 2A 47 1D 32 5D 1D 42 EA 81 44 41 CB 1A 20 C3>
Response: <00 9B 68 30 91 50 E0 72 5E>
CMAC: 9B 68 30 91 50 E0 72 5E
AES 128 的 CMAC 计算
AES Key: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c
SubKey1: fb ee d6 18 35 71 33 66 7c 85 e0 8f 72 36 a8 de
SubKey2: f7 dd ac 30 6a e2 66 cc f9 0b c1 1e e4 6d 51 3b
Message: <empty>
CMAC: bb 1d 69 29 e9 59 37 28 7f a3 7d 12 9b 75 67 46
Message: 6b c1 be e2 2e 40 9f 96 e9 3d 7e 11 73 93 17 2a
CMAC: 07 0a 16 b4 6b 4d 41 44 f7 9b dd 9d d0 4a 28 7c
Message: 6b c1 be e2 2e 40 9f 96 e9 3d 7e 11 73 93 17 2a ae 2d 8a 57 1e 03 ac 9c 9e b7 6f ac 45 af 8e 51 30 c8 1c 46 a3 5c e4 11
CMAC: df a6 67 47 de 9a e6 30 30 ca 32 61 14 97 c8 27
如果您需要
更多示例 (也适用于 CreateApplication、SelectApplication、DeleteApplication、GetApplicationIDs、GetKeyVersion、GetKeySettings、ChangeKeySettings、GetCardVersion、FormatCard、CreateStdDataFile、GetFileIDs、GetFileSettings、WriteFileData、ReadFileData、DeleteFile)下载 ZIP 文件
Codeproject 您可以在其中找到一个 HTML 文件,其中包含测试所有这些命令的整个自检。
关于arduino - Desfire EV1 通信示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38283998/
我尝试使用键盘和 TVout 库制作一个简单的 arduino 计算机。 由于库不兼容,我想使用 arduino mega 作为主板,使用 arduino uno 作为图形芯片。 但它总是在电视上只显
我正在尝试学习如何评估一个值是增加还是减少。在这种情况下,我使用从 0 - 14 映射的电位计。基本上我需要它来查看当前值,如果当前值增加,则打印一件事,如果该值减小,则打印其他内容。 到目前为止,这
我曾尝试使用 Arduino IDE 中提供的标准草图测量模拟引脚值。然而,即使没有连接到引脚,它也会打印出随机值。有什么需要注意的吗? 我有一个从 5V+ 连接到模拟引脚 0 的 FSR 传感器 最
我正在尝试在字符串旁边打印一个整数,但它并没有真正起作用并且我感到困惑。 int cmdSeries = 3; Serial.println("Series : " + cmdSeries);// T
我有一个使用不同电源供电的设备,我正在尝试与其串行通信,它有 TX 和 RX 线、GND 和 2.7+ 线,它非常笨拙,所以它有自己的 PS。 目前我得到了一些奇怪的结果,所以想知道是否需要在 Ard
使用Arduino Blackwidow或Yellowjacket有运气吗?在评论方面,我找不到关于它们的在线信息。 我想连接到无线路由器,发送与已读取的电阻有关的小型POST请求,并以JSON格式接
我的 Arduino Uno 已全部设置完毕并且运行良好。 项目:Arduino 根据给定的命令控制 9v 电机。由于 Arduino 仅提供 5v,我通过晶体管为其添加了 9v 电池 我决定将新代码
我最近买了一个Arduino Uno ,现在我正在尝试一下。我有几个 18B20 传感器和一个连接到它的 ENC28J60 网络模块,然后我正在制作一个草图,以便我可以从浏览器连接到它,并以简单的网页
我有一个使用不同电源供电的设备,我正在尝试与其串行通信,它有 TX 和 RX 线、GND 和 2.7+ 线,它非常笨拙,所以它有自己的 PS。 目前我得到了一些奇怪的结果,所以想知道是否需要在 Ard
已结束。 这个问题是 off-topic .它目前不接受答案。 想要改进这个问题? Update the question所以它是on-topic堆栈溢出。 关闭 9 年前。 Improve this
我有一个 Arduino 入门套件,它带有主动和被动蜂鸣器。不幸的是,我似乎不知道哪个是哪个。我只知道一个比另一个长一点,我可以看到下面的绿色电路板。 最佳答案 有源蜂鸣器会自行发出声音。你基本上只是
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我想从 Arduino 中的几个传感器获取一些数据,然后创建一些端点,以便我可以从 Web 应用程序中的传感器获取数据。那可能吗? 最佳答案 您可以使用 Firebase 或 Thingspeak 服
我正在创建一个新库来一起控制键盘和 LCD。大多数代码似乎都可以编译,但是当它到达我定义 LiquidCristal 变量的行时,它说: 'LiquidCrystal' does not name a
我从最近刚开始使用arduino的我的一个学生那里得到了一些代码。 他试图做一个中断,并且有点奏效。问题是它运行了两次(他调用了该函数),所以 bool 值被重置了。 我试图找到答案,但找不到任何答案
我最近开始了 Arduino 开发,在向 friend 和同事解释时,我收到的一个问题我没有答案,也想知道为什么微 Controller 运行的程序称为草图?这是从电气工程继承下来的惯例吗?我不熟悉这
如何在编译时确定 Arduino 的板类型(例如 Uno vs Nano)? 不要与确定处理器类型混淆。正如我所看到的那样,例如#如果定义(__AVR_ATmega32U4__)... 同样,我想要一
我已经看了很多,但还没有找到涵盖所有这些的好教程。因此,我需要将项目分成多个选项卡/ino 文件,只是为了使其更清晰。 所以当你打开一个新标签后,我想问几个问题: 如果主项目文件(例如 main)还有
您好,我正在使用 https://github.com/pubnub/arduino 中的 PubNubsubscriber 示例我能够接收消息,只要我收到消息,一切都运行正常,如果一段时间过去了,比
所以我的 arduino 正在从串行接收一个字符串,由三个用逗号分隔的值组成,我试图将这些值分成三个不同的变量,其余的我可以做。 字符串看起来像这样“1000,1.5,0.9”或“5000,20,0.
我是一名优秀的程序员,十分优秀!