CCC数字钥匙设计【NFC】--NFC卡相关基础知识
CCC3.0的NFC技术中,除车端,手机端需包含NFC功能外,另外一般还会配置一个NFC卡,用于备份使用。本文主要介绍NFC卡相关的基础知识。
1、NFC卡 & 智能卡
NFC卡是一种智能卡,其与信用卡大小相同,可通过嵌入到其塑料基体中硅片上的电子电路来存储和处理信息。
智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡.
接触式智能卡上有6-8个触点,使用时插在卡座上,典型的如手机SIM卡以及以前的公用电话卡。
非接触式智能卡没有触点,卡上也没有电源,通过读卡器产生的电磁场获得能量并与读写器交换信息。
由于非接触式智能卡的无源和免接触特性,卡的使用寿命和安全性大大提高,目前应用越来越广泛。典型的如NFC卡片。
根据嵌入的芯片类型,智能卡可分为存储器卡、逻辑加密卡和CPU卡。
CPU卡的安全强度最高,CCC数字钥匙采用的NFC卡就是CPU卡。
如下展开详细描述。
1.1 存储器卡
存储器卡:卡内的集成电路是电擦除的可编程EEPROM,只有数据存储功能,没有数据处理能力。该卡本身不提供硬件加密功能,只能存储通过系统加密的数据,很容易被破解。
1.2 逻辑加密卡
逻辑加密卡:卡内的集成电路包括加密逻辑电路和可编程EEPROM,但没有完整的微处理器。加密逻辑电路在一定程度上保护卡及卡中数据的安全,但只是低层次的保护,无法防止恶意攻击。
逻辑加密卡通常用于保护重要的机密信息,如加密密钥和数字证书等。
CPU卡和逻辑加密卡的区别在于前者具有完整的微处理器和通信能力,后者则专注于加密和保护重要的机密信息。
1.3 CPU卡
CPU卡:CPU卡也称智能卡,卡内的集成电路包括中央处理器CPU、可编程EEPROM、随机存储器RAM、固化的卡内操作系统COS(Chip Operating System)和ROM等。
该卡相当于一台没有显示器和键盘的微型计算机,可以像计算机一样运行复杂的程序和算法。CPU卡可以存储大量数据,并且可以与外部设备进行通信,例如智能手机或POS终端。
卡中数据分为外部读取和内部处理两部分,以确保卡中数据的安全、可靠。
因具有安全性高、可以离线操作、可以运算编程等突出优点,因此广泛用于金融、电信、运输等领域的安全身份验证和支付应用。CCC数字钥匙采用的NFC卡也是CPU卡。
有网友将存储器卡、逻辑加密卡、CPU卡做了一些形象的比喻,有助理解,具体如下:
1) 存储器卡就像一个无人看守且大门敞开的仓库,什么人都可以随便在卡中存取数据;
2) 逻辑加密卡相当于给仓库加了一把锁,只有有钥匙(密码)的人才能打开使用。
3) CPU卡则如同安排了专人看守仓库,卡里面有CPU芯片,存储数据要验证口令,且可能不同的应用有不同口令,存取数据受到更加严格的控制,安全性最高。
2、NFC卡类型TypeA/B
ISO/IEC 14443包含物理特性、频谱功率和信号接口、初始化程序、防冲突算法、通信协议等部分内容。它定义了两种卡类型:Type A和Type B。两种卡均在13.56MHz无线频率下工作。
TypeA卡和B卡主要区分体现在物理特性上,具体如下:
2.1 Type A卡
当NFC Reader发送数据给NFC卡时,通过13.56MHz的射频载波传送信号。其采用方案为同步、改进的Miller编码方式,通过100%ASK传送;
当NFC卡发送数据给NFC Reader时,是通过调制载波传送信号。使用847kHz的副载波传送Manchester编码。
2.2 Type B卡
当NFC Reader发送数据给NFC卡时,也是通过13.56MHz的射频载波信号,但采用的是异步、NRZ编码方式,通过用10%ASK传送的方案;
当NFC卡发送数据给NFC Reader时,则是采用的BPSK编码进行调制。
2.3 Type A与Type B对比
对比两种卡型,可以看出,Type B有以下优势:
1) 芯片具有更高的安全性。接收信号时,不会因为能量损失而使芯片内部逻辑及软件工作停止。
2) 支持更高的通讯速率。Type A最大的数据通讯速率为150Kbit/s -200Kbit/s ,应用10%ASK技术的Type B至少可支持400Kbit/s 的速率。
3) 外围电路设计简单。读写机具到卡以及卡到读写机具的编码方式均采用NRZ方案,电路设计对称,设计时可使用简单的UARTS。
4) 抗干扰能力强。负载波采用BPSK调制技术,较Type A方案降低了6dB的信号声。
3、NFC标签 Type 1/2/3/4
NFC的基本标签类型有四种,以1至4来标识,各有不同的格式与容量。
这些标签类型格式的基础是:ISO 14443的A与B类型、FeliCa,前者是非接触式智能卡的国际标准,而后者符合ISO 18092被动式通讯模式标准。
Type1 Tag:
基于ISO14443A标准,具有可读、重新写入的能力,用户可将其配置为只读。存储能力为96字节,内存可被扩充到2k字节。此类NFC标签的通信速度为106 kbit/s。
此类标签简洁,故成本较优,适用于许多NFC应用。
Type2 Tag:
基于ISO14443A标准,具有可读、重新写入的能力,用户可将其配置为只读。其基本内存大小为48字节,但可被扩充到2k字节。通信速度也是106 kbit/s。
Type3 Tag:
基于Sony FeliCa体系,目前具有2k字节内存容量,数据通讯速度为212 kbit/s。此类标签适合较复杂的应用。
Type4 Tag:
此类标签被定义为与ISO14443A、B标准兼容。
制造时被预先设定为可读/可重写、或者只读。内存容量可达32k字节,通信速度介于106 kbit/s和424 kbit/s之间。
具体总结如下表:
CCC规范要求车端和手机端均必须支持Type A格式,而对Type B和Type F的支持都是可选的。
结合Type1没有数据冲突保护,Type 2安全性较低,个人分析认为CCC数字钥匙一般应该采用Type4的标签。
4、Miller码简介
当NFC Reader发送数据给NFC Type A卡时,采用的是Miller编码方式,之前没用过Miller码,所以专门研究了下,具体如下。
Miller码也称延迟调制码,是一种变形双相码。其编码规则:
对原始符号“1”码元起始不跃变,中心点出现跃变来表示,即用10或01表示。
对原始符号“0”则分成单个“0”还是连续“0”予以不同处理。
1)单个“0”时,保持0前的电平不变,即在码元边界处电平不跃变,在码元中间点电平也不跃变。
2)对于连续“0”,则使连续两个“0”的边界处发生电平跃变。
示例:
NRZ: 1 0 0 0 0 1 1
Miller:10 00 11 00 11 10 01
自己总结成如下三句话:
1) 每个逻辑位包含两个原始位。
2) 逻辑0:中心不跳变;逻辑1:中心跳变。
3) 单个0,保持0前电不变;连续0,两个0的边界跃变。
5、卡操作距离
虽都是免接触,但不同卡的有效操作距离是不一样的。
1) 有些卡操作距离非常短,只有0-2厘米,被称为CICC卡(Close-Couple ICC),中文称密耦合卡;
2) 有些卡的操作距离远一点,可以达到10厘米,被称为PICC卡(Proximity ICC),中文称接近卡;
3) 还有一种更远的,至少可以达到半米或更远,被称为VICC卡(Vicinity ICC),中文称疏耦合卡。
6、NFC卡软件实现相关
目前常见的NFC卡通常采用Java Card,是一种能运行Java 程序的智能卡。
非CPU卡的访问一般是通过调用函数直接完成的。而CPU卡除了设备命令(测卡、上下电、选卡座等)和卡的复位命令以外,所有卡命令都是通过通用的命令函数执行的。
当两台计算机彼此进行通信时,它们交换根据一系列协议构造的数据包。类似地,NFC卡也使用自己的数据包---称作APDU 。
APDU包含一条指令或响应信息。在智能卡的世界里采用的是主从模式,而智能卡永远扮演从动的角色。
换句话说,智能卡总是在等待来自终端(如手机)的命令APDU。随后,它执行APDU规定的动作,并以一个 应答APDU向终端作出回答。
智能卡与终端(如手机)之间互相交换命令APDU(终端发送)和应答APDU(智能卡发送)。
卡操作命令有统一的格式:CLA(命令类别Class)、INS(命令指令Instruction)、P1(参数1)、P2(参数2)、Lc(命令数据域Data长度)、Data和Le(应答数据域长度)。
关于Java Card及APDU,后面再另外文章研究说明。
7、总结
1) 智能卡可分为:存储器卡、逻辑加密卡和CPU卡。
2) NFC是一种智能卡,CCC数字钥匙采用的NFC卡是CPU卡。
3) NFC卡从物理特性可分为TypeA、TypeB、TypeF等类型。
4) NFC标签从格式和容量上可分为Type1、Type2、Type3、Type4。
5) NFC卡通常采用Java Card,是一种能运行Java 程序的智能卡。
6) NFC采用APDU数据包进行通信交互。
7) CCC规范要求车端和手机端均必须支持Type A格式,而对Type B和Type F的支持都是可选的。
相关文章:

CCC数字钥匙设计【NFC】--NFC卡相关基础知识
CCC3.0的NFC技术中,除车端,手机端需包含NFC功能外,另外一般还会配置一个NFC卡,用于备份使用。本文主要介绍NFC卡相关的基础知识。 1、NFC卡 & 智能卡 NFC卡是一种智能卡,其与信用卡大小相同,可通过嵌入…...

SpringMVC(第一个项目HelloWorld))
文章目录 1.在maven引入依赖2.配置web.xml3.创建请求控制器4.创建springMVC的配置文件5.测试HelloWorld总结 1.在maven引入依赖 <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring…...

GEO生信数据挖掘(九)肺结核数据-差异分析-WGCNA分析(900行代码整理注释更新版本)
第六节,我们使用结核病基因数据,做了一个数据预处理的实操案例。例子中结核类型,包括结核,潜隐进展,对照和潜隐,四个类别。第七节延续上个数据,进行了差异分析。 第八节对差异基因进行富集分析。…...

二进制明文字符串加密:实现原理
二进制明文字符串加密:实现原理 背景 这里就不多做解释了,明文字符串暴露就是最好的逆向分析指引。无论是恶意攻击样本还是有一定安全需求的组件,直接暴露程序中的明文字符串会大幅降低外部的分析成本。所以需要在编译出的二进制中隐藏字符串。不过需要…...

免费SSL证书:JoySSL让您的网站更安全
在今天的数字化时代,保护网站和用户信息的安全至关重要。SSL(Secure Sockets Layer)证书通过加密网站与用户之间的通信,确保数据传输的安全性。让您拥有一个SSL加密的网站是至关重要的,但您可能会担心高昂的费用。不过…...
JavaPTA练习题 7-3 打印99乘法表
打印99乘法表 输入样例: 不需要输入 输出样例: 在这里给出相应的输出。要求:99乘法表中,每个表达式的乘法结果长度为3。 1x11 2x12 2x24 3x13 3x26 3x39 4x14 4x28 4x312 4x416 5x15 5x210 5x315 5x420 5x525 6x16 6x212 6x318 6x424…...

k8s-20 hpa控制器
hpa可通过metrics-server所提供pod的cpu 或者内存的负载情况,从而动态拉伸控制器的副本数,从而达到后端的自动弹缩 官网:https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ 上传镜像 压测 po…...

操作系统【OS】操作系统的引导
激活CPU。 激活的CPU读取ROM中的boot程序,将指令寄存器置为BIOS(基本输入输出系统)的第一条指令, 即开始执行BIOS的指令。硬件自检。 启动BIOS程序后,先进行硬件自检,检查硬件是否出现故障。如有故障,主板会发出不同含…...

PHP的四层架构
PHP的4层架构是一种软件设计模式,用于将一个PHP应用程序划分为不同的层次,以实现解耦、可扩展和易于维护的代码结构。这个架构通常由以下四个层次组成: 1、 表现层(Presentation Layer): 表现层是与用户直…...

Kafka存取原理与实现分析,打破面试难关
系列文章目录 上手第一关,手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么,以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析,打破面试难关 系列文章目录一、主题与分区1. 模型…...

JavaWeb——IDEA相关配置(Tomcat安装)
3、Tomcat 3.1、Tomcat安装 可以在国内一些镜像网站中下载Tomcat,同样也可以在[Tomcat官网](Apache Tomcat - Welcome!)下载 3.2、Tomcat启动和配置 一些文件夹的说明 启动,关闭Tomcat 启动:Tomcat文件夹→bin→startup.bat 关闭&#…...
MySQL:BETWEEN AND操作符的边界
文档原文: expr BETWEEN min AND maxIf expr is greater than or equal to min and expr is less than or equal to max, BETWEEN returns 1, otherwise it returns 0. This is equivalent to the expression (min < expr AND expr < max) if all the argume…...

无人机UAV目标检测与跟踪(代码+数据)
前言 近年来,随着无人机的自主性、灵活性和广泛的应用领域,它们在广泛的消费通讯和网络领域迅速发展。无人机应用提供了可能的民用和公共领域应用,其中可以使用单个或多个无人机。与此同时,我们也需要意识到无人机侵入对空域安全…...

Spring中配置文件参数化
目录 一、什么是配置文件参数化 二、配置文件参数化的开发步骤 一、什么是配置文件参数化 配置文件参数化就是将Spring中经常需要修改的字符串信息,转移到一个更小的配置文件中。那么为什么要进行配置文件参数化呢?我们看一个代码 <bean id"co…...

linux minicom 调试串口
1、使用方法 1. 打开终端 2. 输入命令:minicom -D /dev/ttyS0 3. 按下回车键,进入minicom终端界面 4. 在终端界面中发送指令或数据,查看设备返回的数据 5. 按下CtrlA,松开释放,再按下X,退出minicom2、一些…...
#力扣:2651. 计算列车到站时间@FDDLC
2651. 计算列车到站时间 - 力扣(LeetCode) 一、Java class Solution {public int findDelayedArrivalTime(int arrivalTime, int delayedTime) {return (arrivalTimedelayedTime)%24;} }...

小县城蔬菜配送小程序制作全攻略
随着互联网的普及和人们对生活品质要求的提高,越来越多的小县城开始开发蔬菜配送小程序,以满足当地居民对新鲜蔬菜的需求。制作一个小县城蔬菜配送小程序,需要经过以下步骤: 步骤一:登录乔拓云平台 首先,打…...
JavaPTA练习题 7-4 计算给定两数之间的所有奇数之和
本题目要求接收输入的2个整数a和b,然后输出a~b之间的所有奇数之和。 输入格式: 分别用两行输入两个整数a,b 输出格式: 输出a~b之间的所有奇数之和 输入样例: 在这里给出一组输入。例如: 1 30输出样例: 在这里给出相应的输出。例如: …...

基于SSM的大学校医管理系统
基于SSM的大学校医管理系统、学校医院管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录系统 用户界面 管理员界面 摘要 大学校医管理系统…...

【递归、搜索与回溯算法】第一节.初识递归、搜索与回溯算法
作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:递归、搜索与回溯算法 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&am…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...