DESFire 学习之AUTH
来源:互联网 发布:单片机程序设计师培训 编辑:程序博客网 时间:2024/05/20 13:41
DESFire 的认证过程如下:
1. CM:0A00
读卡器向卡片发送0A00(0A—AUTH,00-key no.)
2. RE:AF ek(RndB)
卡片返回AF+DA22830A94D260EC,计算过程:卡片取随机数RndB=34B57355568DC23A,用主密钥key=00000000000000000000000000000000对RndB进行3DES加密得ek(RndB)=DA22830A94D260EC.
3. CM:AF dk(RndA+RndB’)
发送指令AF+74F4AE777AA431E8B76A9BA260335F17,AF-认证指令。计算过程:用主密钥对ek(RndB)进行解密得到RndB=34B57355568DC23A,对RndB进行闭合字节左循环得到RndB’=B57355568DC23A34,取随机数RndA=0011223344556677,得到RndA+RndB’=0011223344556677B57355568DC23A34,用主密钥对RndA+RndB’进行3DES+CBC解密得到dk(RndA+RndB’)= 74F4AE777AA431E8B76A9BA260335F17.
4. RE: 00 ek(RndA’)
卡片返回:00 F181F7326DCD86A6,00-状态字,表示操作成功。计算过程:卡片对dk(RndA+RndB’)进行加密得到RndA+RndB’,对RndB’进行闭合字节右循环验证是否等于RndB,若等于则卡片认证成功,并对RndA进行封闭字节左循环得到RndA’,用主密钥对其进行3DES加密得到ek(RndA’).
5. 验证RndA’闭合右循环后是否等于RndA。
notes:本文参考“http://blog.sina.com.cn/s/blog_9ed067ad01012db9.html”处学习得知。
- DESFire 学习之AUTH
- ZooKeeper学习之zookeeper的ACL(AUTH)
- Django 1.5之Auth
- laravel之Auth剖析
- login-config之auth-method
- 我的Laravel学习之路之我的Laravel学习之路之用户注册和登录 Auth
- MySQLPlugin之如何编写Auth Plugin
- WifiDog 认证协议研究之 Auth Server
- Http之Auth的那些事
- WifiDog 认证协议研究之 Auth Server
- iOS 开发之Basic Auth认证
- DESFire开发资料
- DESFire开发资料
- MIFARE DESFire卡介绍
- 基于 Django1.10 文档的深入学习(10)—— django.contrib.auth 之 User model
- desfire卡写文件操作
- ZendFramework之Acl+Auth+Dispatcher数据库表认证
- 安卓之使用BASIC AUTH进行登录验证
- 在 JavaScript 中 prototype 和 __proto__ 有什么区别
- Mac下安装MongoDB
- PHP——CURL模拟请求微信接口
- 常用工具
- MyGitHub
- DESFire 学习之AUTH
- 使用Callable来获取数组的最大值
- 数据库类型
- Makefile学习
- JAVA中多线程同步的方法
- BZOJ 2696 航班安排 费用流
- SVN连接失败的解决办法
- 深入理解C#---2.事件?委托?傻傻分不清楚
- 20170313一个很奇怪的命令