MIFARE - 1

news2024/11/15 15:45:46

2一般说明
飞利浦根据ISO/IEC 14443A开发了用于非接触式智能卡的MIFARE®MF1 IC S50。通信层(MIFARE®RF接口)符合ISO/IEC 14443A标准的第2部分和第3部分。安全层采用经过现场验证的CRYPTO1流密码,用于MIFARE®Classic系列的安全数据交换。

MIFARE RF接口(ISO/IEC 14443 A)
·数据和供电的非接触式传输(无需电池)
·工作距离:最大100mm(取决于天线几何形状)
·工作频率:13.56 MHz
·快速数据传输:106 kbit/s
·高数据完整性:16位CRC、奇偶校验、位编码、位计数
·真正的防撞
·典型票务交易:<100毫秒(包括备份管理)、

EEPROM

·1K字节,组织在16个扇区中,每个扇区有4个16字节的块(一个块由16字节组成)
·每个存储块的用户可定义的访问条件
·数据保留期为10年。
·写入耐久性100.000个周期

1.3安全
·相互三通认证(ISO/IEC DIS9798-2)
·具有重放攻击保护的射频信道数据加密
·每个扇区(每个应用程序)两个密钥的单独集合,支持具有密钥层次结构的多应用程序
·每个设备的唯一序列号
·传输密钥保护对EEPROM芯片交付的访问

2一般说明
飞利浦根据ISO/IEC 14443A开发了用于非接触式智能卡的MIFARE®MF1 IC S50。通信层(MIFARE®RF接口)符合ISO/IEC 14443A标准的第2部分和第3部分。安全层采用经过现场验证的CRYPTO1流密码,用于MIFARE®Classic系列的安全数据交换。

2.1非接触式能源和数据传输
在MIFARE®系统中,MF1 IC S50连接到一个有几圈的线圈,然后嵌入塑料中,形成无源非接触式智能卡。不需要电池。当卡位于读写设备(RWD)天线附近时,高速RF通信接口允许以106 kBit/s传输数据。

2.2防撞
智能防撞功能允许在现场同时操作多张卡。防冲突算法单独选择每张卡,并确保正确执行与所选卡的交易,而不会因现场其他卡而导致数据损坏。

2.3用户便利性
MIFARE®系统旨在为用户提供最佳便利。例如,高数据传输速率允许在不到100毫秒的时间内处理完整的票务交易。因此,MIFAREâcard用户不会被迫停在RWD天线前,从而提高了登机口的吞吐量,减少了登上公交车的时间。MIFARE®卡在交易过程中也可能保留在钱包中,即使其中有硬币。

2.4安全
特别强调防范欺诈。相互质询和响应身份验证、数据加密和消息身份验证检查可以保护系统免受任何形式的篡改,从而使其对票务应用具有吸引力。序列号不可更改,保证每张卡的唯一性。

2.5多应用程序功能
MIFARE®系统提供了与处理器卡功能相当的真正多应用程序功能。每个扇区的两个不同密钥支持使用密钥层次结构的系统。

2.6交付选项
·晶片上模具
·晶片上的凸模
·芯片卡模块

3功能说明
3.1区块描述
MF1集成电路S50芯片由1K字节EEPROM、射频接口和数字控制单元组成。能量和数据通过天线传输,天线由几个匝的线圈组成,线圈直接连接到MF1 IC S50。不需要其他外部组件。(有关天线设计的详细信息,请参阅文件MIFAREâCard IC线圈设计指南。)

·射频接口:
–调制器/解调器
–整流器
–时钟再生器
–开机复位
–电压调节器
·防冲突:可以按顺序选择和操作字段中的多张卡
·身份验证:在任何内存操作之前,身份验证过程确保只能通过为每个块指定的两个密钥访问块
·控制和算术逻辑单元:值以特殊的冗余格式存储,可以递增和递减
·EEPROM接口
·加密单元:MIFARE®Classic系列经过现场验证的CRYPTO1流密码确保了安全的数据交换
·EEPROM:1K字节被组织在16个扇区中,每个扇区有4个块。一个块包含16个字节。每个扇区的最后一个块被称为“trailer”,
其包含两个秘密密钥和用于该扇区中的每个块的可编程访问条件。

3.2沟通原则
命令由RWD发起,并由MF1 IC S50的数字控制单元根据对相应扇区有效的访问条件进行控制。

3.2.1请求标准/全部
板卡通电复位(POR)后,它可以通过发送请求代码(根据ISO/IEC 14443A的ATQA)的应答来应答请求命令(由RWD发送到天线场中的所有板卡)。

3.2.2防撞环
在防冲突循环中,读取卡的序列号。如果RWD的操作范围内有多张卡,则可以通过其唯一的序列号来区分它们,并且可以选择一张(选择卡)进行进一步的交易。未选择的卡返回待机模式,等待新的请求命令。

3.2.3选择卡
通过选择卡命令,RWD选择一张单独的卡进行身份验证和内存相关操作。卡片返回选择答案(ATS)代码(=08h),用于确定所选卡片的类型。有关更多详细信息,请参阅文件MIFAREâ标准化卡类型识别程序。
3.2.4 3通过认证
选择卡后,RWD指定以下存储器访问的存储器位置,并使用相应的密钥进行3次验证程序。成功验证后,所有内存操作都将被加密。

3.2.5内存操作
在验证之后,可以执行以下任何操作:
·读取块
·写入块
·递减:递减块的内容,并将结果存储在临时内部数据寄存器中
·增量:增加块的内容并将结果存储在数据寄存器中
·恢复:将块的内容移动到数据寄存器中
·传输:将临时内部数据寄存器的内容写入值块

3.3数据完整性
RWD和卡之间的非接触式通信链路实现了以下机制,以确保非常可靠的数据传输:
·每个块16位CRC
·每个字节的奇偶校验位
·比特计数检查
·用于区分“1”、“0”和无信息的位编码
·信道监控(协议序列和比特流分析)

3.4安全
为了提供非常高的安全级别,使用了根据ISO 9798-2的三次通过认证。
3.4.1.三通身份验证序列
a) RWD指定要访问的扇区并选择密钥a或B。
b) 该卡从扇区尾部读取密钥和访问条件。然后,卡片向RWD发送一个随机数作为挑战(传递一个)。
c) RWD使用密钥和附加输入计算响应。然后将响应与来自RWD的随机挑战一起发送到卡(通过第二步)。
d) 卡通过将RWD的响应与其自身的挑战进行比较来验证RWD的反应,然后计算对挑战的响应并将其传输(通过第三步)。
e) RWD通过将卡的响应与其自身的挑战进行比较来验证卡的响应。

在发送第一个随机挑战之后,卡和RWD之间的通信被加密。

3.5射频接口
射频接口符合非接触式智能卡ISO/IEC 14443A标准。RWD的载波字段始终存在(传输时会有短暂的停顿),因为它用于板卡的电源。对于数据通信的两个方向,在每个帧的开头只有一个起始位每个字节的传输都在末尾带有一个奇偶校验位(奇数奇偶校验)。具有所选块的最低地址的字节的LSB首先被发送。最大帧长度为163比特(16个数据字节+2个CRC字节=16*9+2*9+1个起始比特)。

3.6记忆组织
1024 x 8位EEPROM存储器分为16个扇区,每个扇区有4个16字节的块。

在擦除状态下,EEPROM单元作为逻辑“0”读取,在写入状态下作为逻辑“1”读取。

3.6.1制造商块
这是第一扇区(扇区0)的第一数据块(块0)。它包含IC制造商的数据。由于安全性和系统要求,该块在生产时由IC制造商编程后被写保护。

 

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

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

相关文章

GPT中的temperature参数不是用在对话的而是用在调用OPEN API过程中的

前言 自从吴恩达OPENAI《ChatGPT 提示工程》放出后,各个层面反响热列。很多人看到了temperature这个参数,都以为在对话中或者说对话的末尾放上一个temperature=0-2的值就可以达到让GPT极大的发挥出自我创造能力、甚至写文章天马行空。 笔者这边觉得有义务指出这种用法是完全…

OpenAI ChatGPT 使用示例(程序员)

1.编程应用 1.1. 生成例子代码(Coding Generation) ChatGPT帮助我们生产我们需要的例子代码。而且准确率很高。即使你不懂某一种语言也没关系&#xff0c;一定程度上较低了程序员的的门槛。 我有三组数据&#xff0c;第一组是星期一到星期五&#xff0c;第二组是这一天的具体…

第七十八天学习记录:高等数学:微分方程(宋浩板书)

微分方程&#xff08;Differential equation&#xff09;是描述自然现象中变量之间关系的数学语言。它是以函数、导数、微分等数学概念为基础的方程&#xff0c;揭示了自然现象中变量之间的内在联系。微分方程在物理学、工程学、生物学、经济学、统计学等各领域都有广泛的应用。…

C++线程库(2)

C线程库&#xff08;2&#xff09; 线程同步互斥锁条件变量与互斥锁的搭配使用举例1举例2举例3 线程同步 在C线程库&#xff08;1&#xff09;的博客中说了互斥量只能解决多个线程访问共享资源的问题&#xff0c;但是很明显没有次序感&#xff0c;而线程安全就是不同线程访问资…

最短路径算法-迪杰斯特拉(Dijkstra)算法(记录最短路径和距离)

原理&#xff1a; Dijkstra算法是解决**单源最短路径**问题的**贪心算法** 它先求出长度最短的一条路径&#xff0c;再参照该最短路径求出长度次短的一条路径 直到求出从源点到其他各个顶点的最短路径。 首先假定源点为u&#xff0c;顶点集合V被划分为两部分&#xff1a;集合…

chatgpt赋能python:Python字符串去除多余空格

Python字符串去除多余空格 随着Python在各个领域的应用越来越广泛&#xff0c;很多工程师都会遇到字符串去除多余空格的需求。而Python提供了简单的方法来解决这个问题&#xff0c;本文将详细介绍这些方法。 介绍 在Python中&#xff0c;字符串是很常见的数据类型&#xff0…

Linux环境下的工具(yum,gdb,vim)

一&#xff0c;yum yum其实是linux环境下的一种应用商店&#xff0c;主要用centos等版本。它也有三板斧&#xff1a;yum list,yum remove,yum install。当然不是说他只有这三个命令&#xff0c;还有yum search等等。在这直说以上三个。 yum list其实是查看你所能安装的软件包…

puppet 入门详解 超详细!!!

目录 一、puppet概述 二、Puppet的工作模式是什么&#xff1f; 三、Puppet的适用场景是什么&#xff1f; 四、原理 &#xff08;一&#xff09;工作模型 &#xff08;二&#xff09;工作流程 &#xff08;三&#xff09;使用模型 1、单机使用模型 2、master/agent 模型 &…

Vue中如何进行自动化部署与持续集成(CI/CD)

Vue中如何进行自动化部署与持续集成&#xff08;CI/CD&#xff09; 随着云计算和容器技术的广泛应用&#xff0c;自动化部署和持续集成&#xff08;CI/CD&#xff09;已经成为现代软件开发过程中必不可少的环节。Vue作为一款流行的前端框架&#xff0c;也可以使用自动化部署和…

解决:闹钟设置的自定义歌曲响铃时不会播放仅震动【Apple Music】【iOS】

文章目录 1、问题描述2、解决策略3、Q&A4、感受5、Tips 1、问题描述 自带铃声和震动脑瓜子嗡嗡的&#xff0c;幸好有apple music&#xff0c;在闹钟中可以轻松地选择你放入资料库中的任意一首音乐作为铃声。 奇怪的是&#xff0c;闹钟响起&#xff0c;仅震动&#xff0c;没…

chatgpt赋能python:Python怎么过滤非数字

Python怎么过滤非数字 在实际编程过程中&#xff0c;我们常常遇到要对一些数据进行处理&#xff0c;其中经常需要过滤掉非数字的数据&#xff0c;以保证程序能够正常运行。在Python中&#xff0c;若要过滤非数字&#xff0c;可以采用如下几种方法。 方法一&#xff1a;使用正…

chatgpt赋能python:Python中如何输入以0开头的数字?

Python中如何输入以0开头的数字&#xff1f; 在Python编程中&#xff0c;可能会遇到需要输入以0开头的数字的情况。然而&#xff0c;当我们尝试在Python shell或代码中输入以0开头的数字时&#xff0c;我们会发现Python会自动将其转换为八进制格式。 为什么Python会将以0开头…

使用MDK-ARM(KEIL V5)创建一个工程(有图有文字)

使用keil v5创建工程是一个比较复杂的过程&#xff0c;还希望读者能够耐下心来&#xff0c;过于浮躁会使创建过程出错&#xff0c;导致编译器无法编译等等许多问题。 言归正传&#xff0c;我们接下来开始说明创建过程&#xff0c;说明过程以图片为主&#xff0c;文字为辅&…

谷粒商城第四天-前端基础

目录 一、前言 二、学习的内容 一、ES6新语法 1.1 var与let 1.2 const 1.3 解构表达式的使用 1.4 字符串Api的使用 1.5 函数优化 1.6 箭头函数 1.7 对象优化 1.8 map和reduce 1.9 promise异步编排 1.10 模块化&#xff08;export和import的使用&#xff09;…

chatgpt赋能python:Python如何输出Pi

Python如何输出Pi Python是一门强大且易于学习的编程语言。它可以完成各种任务&#xff0c;包括数学计算和科学计算。在这篇文章中&#xff0c;我们将介绍如何使用Python输出圆周率Pi。 介绍 圆周率是一个重要的数学常数&#xff0c;用π表示。它代表了一个圆的周长与其直径…

树的前中后序遍历-非递归的迭代写法

就是要我们非递归其实就是模仿递归的写法&#xff0c;类如递归一样遍历一棵树&#xff0c;但是却不是递归的写法&#xff0c; 防止栈溢出。 二叉树的前序遍历 先看递归代码&#xff1a; void _preorderTraversal(TreeNode* root,vector<int>&v) {if (root NULL){…

C语言 结构体入门

目录 一、定义和使用结构体变量 1.1创建结构体类型 1.2定义结构体类型变量 1.先声明结构体类型&#xff0c;在定义该类型的变量 2.在声明类型的同时定义 1.3结构体成员的类型 1.4结构体变量的初始化和引用 1.5结构体的访问 二、结构体传参 前言&#xff1a;C语言提供…

直流稳压电源的几个性能指标

目录 电压调整率&#xff1a;输入电压在允许的范围内变化时&#xff0c;输出电压稳定性。 电流调整率&#xff1a;负载电流在允许的范围内变化时&#xff0c;输出电压稳定性 输出纹波电压&#xff1a;额定负载时&#xff0c;输出电压的振幅 电源效率&#xff1a;额定负载时&…

07-抚摸抽象边界:Golang 接口的多彩展现

&#x1f4c3;个人主页&#xff1a;个人主页 &#x1f525;系列专栏&#xff1a;Golang基础 &#x1f4ac;Go&#xff08;又称Golang&#xff09;是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性&#xff0c;拥有高效的并发编程能力和简洁的语法。G…

Python 操作 Excel 全攻略 | 包括读取、写入、表格操作、图像输出和字体设置

文章目录 前言Python 操作 Excel 教程1. Excel 文件的读取与写入2. Excel 表格的操作2.1 插入和删除行和列2.2 遍历表格中的单元格并修改值 3. 图像的输出3.1 输出柱状图 4. 字体的设置4.1 设置单元格的字体大小和颜色4.2 设置单元格的加粗和斜体4.3 设置单元格的边框和填充颜色…