Mifare Classic Crypto1加密流程

Mifare Classic Crypto1加密流程

No.1 PCD Reader 发送认证命令

首次认证加密

当Reader准备进行密钥认证时,发送 auth命令 + 认证地址addr 至NFC卡片。

非首次认证加密

当Reader准备进行密钥认证时,将 auth命令 + 认证地址addr 使用当前的密钥流加密后,发送至NFC卡片。

No.2 PICC Card 收到认证命令,计算并发送 tag_clg

首次认证加密

  1. 生成随机数Nt,使用Nt计算生成ArAt
  2. 使用待认证地址的密钥初始化密钥流,生成tag_clg,使用tag_uid ^ tag_clg滚动密钥流,校验位为正常奇校验。

非首次认证加密

  1. 生成随机数Nt,使用Nt计算生成ArAt
  2. 使用待认证地址的密钥初始化密钥流,生成tag_clg,使用tag_uid ^ tag_clg滚动密钥流,并加密后生成tag_clg,加密校验位。

No.3 PCD Reader 收到 tag_clg,计算并发送 reader_clg 和 reader_rsp

  1. 初始化密钥流,解密随机数Nt,已加密需要使用密钥流输出,恢复原本Nt,使用Nt计算生成ArAt
  2. 生成随机数Nr,加密为reader_clg
  3. Ar加密为reader_rspAt加密为tag_rsp
  4. 同时发送reader_clgreader_rsp,共8字节。

No.4 PICC Card 收到 reader_clg 和 reader_rsp,计算并发送 tag_rsp

  1. 解密reader_clg,恢复Nr
  2. 解密reader_rsp,恢复Ar,如果Ar和自己原本计算的相等,进行下一步,否则失败。
  3. 加密Attag_rsp,发送给读卡器。

No.5 PCD Reader 收到 tag_rsp

和自己本身生成的进行比较,如果相等,则认证通过。后续通讯直接使用密钥流加解密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值