3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡

问题:

1) 14443协议,RFID标签的默认通信速率是 106kbps,也可以通过协商,调整为 (fc/64=13.56M/64)212、424、 848kbps。
2) 14443-3 A类卡,上电后,读写器发送REQA命令,标签应该回应 ATQT命令,如果其中的UID Size位(b8 b7)组合是“0 0”,表示标签的UID有 单字节。
3) 14443-3协议中,A类卡采用了 面向比特的防冲突方式
4) S50卡内部有 1K字节存储空间,分为 16扇区,每一个扇区又分为 4块,每块 16字节,其中Block 0~ Block 2可用于存储用户数据。
5) S50卡每个扇区有 1组密钥,“一扇一密”,是指 :切换扇区,需要再次认证一次,不切换扇区,同一个扇区只需要认证一次。

一。ISO14443-2协议简介

1.ISO14443协议组成及部分缩略语

(1)14443协议组成(下面的协议简介会详细介绍)

14443-1 物理特性

14443-2 射频功率和信号接口

14443-3 初始化和防冲突        (分为Type A、Type B两种接口

14443-4 传输协议        (一般不使用,只有哪些银行卡刷卡等重要领域的器件才需要使用

(2)针对前两节的名词,对应的英语缩略语

PCD:近场耦合设备(读写器)

PICC:近场卡或物体(标签)

RF:射频

ASK:振幅键控

OOK:二进制振幅键控

BPSK:二进制相移键控

2.ISO14443-1协议简介

(1)物理特性:ID-1,长86mm,宽54mm,厚0.84mm

(2)ISO14443-2功率接口

频率:13.56MHz±7kHz

工作场强度:Hmin=1.5A/m,  Hmax=7.5A/m

(3)ISO14443-2信号接口

问题:如何看懂图?

        我们看到的图会有很多英文,但是这个英文很可能是缩略英文,并代表一定的含义。所以我们在看图之前,可以找到他的缩略英文标(或者类似手册),边查边看。

        例如上面提到的缩略语。我们在下面经常看到这些缩略语。

PCD-PICC信号接口

接口速率:fc/128=13.56M/128≈106kbps

PICC-PCD信号接口

副载波频率:848kHz


二。ISO14443-3 Type A协议简介

1.ISO14443-3部分缩略语

S:通信开始

E:通信结束

P:校验位,Type A

UID:唯一标识符

2.Type A的帧格式

        注意:不需要把他记下来,只需要有印象,主要是观察创作者在对待不同的帧如何规定与处理。

1.短帧

2.标准帧

(1)字节低位在先

(2)校验位P为奇校验,仅仅在PICC到PCD 且速率为106k以上时,最后一个字节的P为偶校验

3.基于位的防冲突帧

3.Type A PICC的状态

        这是读写器与标签的工作方式,如果仔细分析我们会消耗大量的时间,并没有太大的必要。主要关注的是别人画流程图的方式:各方面都需要思考,并且把应答的数据也标注出来,使用缩略语使图像变得简洁。

4.Type A 的PCD命令及PICC应答

        众多周知,这些缩略语只是标识符,关键是对应的二进制数据。所以需要分配数据的使用。这也是一个开发者需要考虑的内容。

请求(REQA )和唤醒(WUPA)

请求应答(ATQA)

5.补充:Type A 的PCD命令及PICC应答

(1)UID介绍

(2)防冲突(Anticollision)流程

面向比特的防冲突方式

(3)防冲突(Anticollision)命令格式

(4)防冲突(Anticollision)命令中的NVB

(5)防冲突(Anticollision)命令举例

(6)选择(SELECT)和选择应答(SAK)

1.SELECT

2.SAK


三。Mifare S50卡的内部存储结构

        Mifare S50卡是一种接触式智能卡,也被称为Mifare Classic卡。它是由NXP公司推出的一种RFID(射频识别)技术的智能卡。Mifare S50卡采用13.56MHz的高频射频技术,具有非接触式读写能力。

        Mifare S50卡具有存储和处理数据的能力,可以用于实现安全访问控制、身份验证、电子钱包等功能。它采用ISO 14443A标准,具有16个扇区,每个扇区包含4个块,每个块可以存储16个字节的数据。

        Mifare S50卡广泛应用于公共交通、门禁系统、学生卡、员工卡等领域。它具有较高的安全性,支持密码验证和加密传输,能够防止数据泄露和非法复制。

        然而,Mifare S50卡也存在一些安全漏洞,容易受到破解和攻击。因此,在实际应用中,需要采取一些额外的安全措施来保护卡片和数据的安全。

        以下主要是对Mifare S50卡的内部分析。Mifare S50卡存储结构,控制块的使用等。

1.Mifare系列介绍

NXP公司出品的系列遵循ISO14443-A标准的射频卡

2.Mifare S50卡存储结构

(1)Mifare S50卡存储结构

(2)Mifare S50卡数据块的值结构

1. 值(Value):一个带符号的4 字节值,小端模式(低地址存最低值)。  

2.值按2次正常和1次取反(~表示)存储了3次。  

3.地址(Addr)表示1字节的块编号,分2次正常和2次取反值存储。  

4.可以执行Decrement加、Increment减、Transfer传输、Restore恢复命令。

Transfer:当我们使用卡修改数据,

(3)Mifare S50卡每个扇区的控制块(块3)

 一扇一密,便于一卡多用  

每个扇区有独立的控制字,每块由3位组合C1x C2x C3x控制

(4)Mifare S50卡扇区数据块(块0~2) 访问权限

例如:当块0的存取控制位C10 C20 C30=100时,验证密钥A或密钥B后可读;验证密钥B后可写;不能进行值类操作。

(5)Mifare S50卡扇区控制块(块3) 访问权限

例如:当块3的控制位——C13 C23 C33 = 0 0 1时,表示:密钥A:不可读,验证KEYA正确后,可写 ;  控制字段:验证KEYA后,可读、可写;密钥B:验证KEYA正确后,可读、可写。


四。Mifare S50卡的访问流程

1.Mifare S50卡的访问流程

Mifare S50卡三次认证流程

1.挑战值:RB, B产生的随机数;RA A产生的随机数。

2.TokenAB, A对随机数RB使用认证的密钥进行加密计算后的应答值。

3.TokenBA, B对随机数RA使用认证的密钥进行加密计算后的应答值。

4.加密算法为Mifare未公开的“crypto1”,后两步的通信数据是加密的。

2.Mifare S50卡的命令

Mifare S50卡的命令

Mifare S50卡的ACK及NAK应答

S50Authentication命令流程

Addr指块的顺序编号0~63

不切换扇区,同一个扇区只需要认证一次

Read命令流程

Write命令流程

Increment Decrement Restore 命令流程

Transfer命令流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148475.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringBoot】配置文件详解

配置文件详解 一. 配置文件作用二. 配置文件的格式1. properties 配置文件说明①. properties 基本语法②. 读取配置⽂件③. properties 缺点 2. yml 配置⽂件说明①. yml 基本语法②. yml 使用进阶 3. properties VS yml 三. 设置不同环境的配置⽂件 一. 配置文件作用 整个项…

Youtube视频下载工具分享-油管视频,音乐,字幕下载方法汇总

YouTube视频下载方法简介 互联网上存在很多 YouTube 下载工具,但我们经常会发现自己收藏的工具没过多久就会失效,我们为大家整理的这几种方法,是存在时间较久并且亲测可用的。后续如果这些工具失效或者有更好的工具,我们也会分享…

NUWA论文阅读

论文链接:NUWA: Visual Synthesis Pre-training for Neural visUal World creAtion 文章目录 摘要引言相关工作视觉自回归模型视觉稀疏自注意 方法3D数据表征3D Nearby Self-Attention3D编码器-解码器训练目标 实验实现细节与SOTA比较T2I微调T2V微调V2V微调Sketch-t…

通过人才测评系统,对程序员岗位进行招聘测评

一、 程序员的基本工作内容 1、 负责项目组内的代码维护和更新迭代,保证研发效率,对于运营产品提出的需求应积极沟通并实现。 2、 规范相关开发文档等相关资料,对于有变更的代码和功能需求,要对开发文档做出相应的变更。 3、 作为…

ElementUI动态树,数据表格以及分页的实现

目录 前言 一. ElementUI动态树 二. 数据表格和分页 三. 后端代码 service层 controller层 前言 在上一篇博客中实现了左侧菜单栏,在此基础上将它变为动态的,即动态的展示数据库的数据。还有数据表格的实现以及分页。(纯代码分享&#…

​【Java】面向对象程序设计 课程笔记 面向对象基础

🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:Java 💬总结:希望你看完之后,能对你有…

在EXCEL中构建加载项之创建加载项的目的及规范要求

【分享成果,随喜正能量】一句南无阿弥陀佛,本是释迦牟尼佛所证的无上正等正觉法,洒在娑婆世界的众生海中,只为末世众生能够以信愿之心抓住此救命稻草,要知道今世人此生的处境,可能只剩这道要么极乐要么三涂…

Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器

星光下的赶路人star的个人主页 内心的平静始于不再让他人掌控你的感情 文章目录 0、前言1、窗口(Window)1.1 窗口的概念1.2 窗口的分类1.3 窗口API概览1.4 窗口分配器(Window Assigner)1.4.1 时间窗口1.4.2 计数窗口 1.5 窗口函数…

前几周的阅读的论文(截图版)

目录 共目标检测DMTSCWSSODGCoNet RSI与COSOD结合ACCoNetGLGCNet RSI结合分割CADA_MaskFormerSeMask-Mask2Formershunted-MaskFormer 共目标检测 DMT CVPR 2023 SCWSSOD AAAI 2021 GCoNet SCI1区 2023 RSI与COSOD结合 ACCoNet SCI1区 2023 GLGCNet SCI1区 20…

竞赛 大数据商城人流数据分析与可视化 - python 大数据分析

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的基站数据分析与可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度…

《CPU设计实战》第四章lab3记录找bug

修bug之路 1. debug_wb_pc 一个信号一个信号找下去&#xff0c;发现ID_stage.v中load_op未赋值 assign load_op inst_lw; 代码解释 module decoder_5_32(input [ 4:0] in,output [31:0] out ); //这个循环被命名为 gen_for_dec_5_32。 genvar i; generate for (i0; i<…

【Java】微服务——Nacos注册中心

目录 1.Nacos快速入门1.1.服务注册到nacos1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置4.环境隔离4.1.创建namespace4.2.给微服务配置namespace 5.Nacos与Eureka的区别…

Day 04 python学习笔记

Python数据容器 元组 元组的声明 变量名称&#xff08;元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;元素4…….&#xff09; &#xff08;元素类型可以不同&#xff09; eg: tuple_01 ("hello", 1, 2,-20,[11,22,33]) print(type(tuple_01))结果&#x…

【Vue3】自定义指令

除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外&#xff0c;Vue 还允许你注册自定义的指令 (Custom Directives)。 1. 生命周期钩子函数 一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。 在 <script …

多通道反向字典模型

方法 将单词的definition embedding输入Bi-LSTM模型&#xff0c;经过处理得到5个分数并加权求和得到最终的置信分数 最后对分数向量进行降序排序&#xff0c;得到word rank 代码实现&#xff1a; _, indices torch.sort(score, descendingTrue) 辅助信息 这是AAAI 2020的论…

23 mysql index 查询

前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…

安装matplotlib_

安装pip 安装matplotlib 安装完毕 导入出现bug......

2022年9月及10月

9月 1.Halcon12的HObject和Hobject halcon12 可以用HObject&#xff0c;也可以用Hobject&#xff0c;用法都一样 包括HalconCpp.h 如果附加目录中&#xff1a; C:\Program Files\MVTec\HALCON-12.0\include\halconcpp\ 在前面&#xff0c;则用 HalconCpp::HObject 如果附加目录…

RabbitMQ-死信队列

接上文 RabbitMQ-java使用消息队列 1 死信队列简介 死信队列模式实际上本质是一个死信交换机绑定的死信队列&#xff0c;当正常队列的消息被判定为死信时&#xff0c;会被发送到对应的死信交换机&#xff0c;然后再通过交换机发送到死信队列中&#xff0c;死信队列也有对应的消…

创建型设计模式 原型模式 建造者模式 创建者模式对比

创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了…