Cpu实验
实验十一、基于符合ISO/IEC 7816 标准协议的CPU卡RATS、PPS请求指令操作
实验目的
1、学习和了解ISO/IEC 7816标准。
2、学习和了解ATS各字节的具体定义。
3、学习和了解PPS设置的实现。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送RATS命令,上位机可以通过USB来获取发送命令的实时返回CPU卡的响应,并对响应数据按ISO7816协议进行分析,判别其正确性。
3、开启读写器的USB通信功能,打开上位机软件发送PPS命令,上位机可以通过USB来获取发送命令的实时返回CPU卡的响应,并对响应数判别参数是否设置成功。
实验步骤:
首先使用RFID读写模块对CPU卡进行激活,按图1流程进行操作。
将CPU卡放置到读卡模块的读卡区;
按图1橙色虚线框内容对CPU卡进行选中,如下图所示点击按钮"寻卡"->"Select"进行选卡。
点击按钮"复位卡"对CPU进行复位,使CPU卡进入FMCOS模式,并返回ATS代码
对返回的ATS进行字段分析,理解其表达的含义
例1:
如果一张CPU卡ATS为:10788090022090000000000066799D24,则这张CPU卡ATS的具体解释如下表:
符号 |
字节内容 |
内容解释 |
TL |
0x10 |
长度字节 |
T0 |
0x78 |
TA1、TB1和TC1存在,FSCI=8(FSC=256字节) |
TA1 |
0x80 |
两个方向可以支持相同的D,支持DR=1,DS=1 |
TB1 |
0x90 |
FWI=0x9(FWT=155ms) SFGI=0(SFGT=302us) |
TC1 |
0x02 |
不支持NAD,支持CID |
T1 |
0x20 |
COS版本号2.0 |
T2 |
0x09 |
COS厂商代码(复量微电子) |
T3 |
0x00 |
保留字节 |
T4-T11 |
0000000066799D24 |
卡序列号 |
通过PPS指令设置CPU卡与读卡模块间的通信速率。
实验十二、CPU卡系统FMCOS用户卡的发卡指令操作
实验目的:
1、了解FMCOS文件系统结构
2、了解CPU卡发卡流程
3、掌握CPU卡发卡指令的使用,并理解每条指令的含义。
4、了解用户卡电子钱包格式。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送CPU卡相关的发卡指令,在FMCOS上建立一个文件系统。
3、理解发卡指令的含义,能根据返回的响应码判断CPU卡是否操作成功。
实验步骤:
参考《FMCOS通用技术手册》内容,理解FMCOS下各级文件(MF、ADF、EF)之间的关系。
根据下图用户卡的文件结构,进行发卡操作,发卡指令可参考下文蓝字部分内容。
用户卡文件结构
/********发卡************/
00a4000000
//外部认证,初始密码为FFFFFFFFFFFFFFFF
0084000008
0082000008+密文
//删除MF下的所有应用文件
800e000000
00a4000000
//建立KEY文件,并写入主控密钥
80e00000073f004001f0ffff
80d401001539f0f0aa33ffffffffffffffffffffffffffffffff
80e00001072c0018f0f0ffff
//写入目录基本文件
00dc010c15701361114f09a00000000386980701500450424f43
//应用目录ADF(3f01)
80e03f01113804f4f0f0957fffa00000000386980701
//选择应用目录ADF(3f01)
00a4040009a00000000386980701
//创建ADF->KEY文件
80e00000073f0150FFf0ffff
//应用主控子密钥DACK_ADF 00
80d401001539f002aa3300000000000000000000000000000000
//消费子密钥 DPK 00
80d40100153ef002010111111111111111111111111111111111
//消费子密钥 DPK 01
80d40101153ef002010122222222222222222222222222222222
//圈存子密钥 DLK 00
80d40100153ff002010133333333333333333333333333333333
//圈存子密钥 DLK 01
80d40101153ff002010144444444444444444444444444444444
//安装TAC子密钥 DTK 00
80d401001534f002010155555555555555555555555555555555
//PIN解锁子密钥 DPUK 00
80d401001538f002ffff66666666666666666666666666666666
//PIN重装子密钥 DRPK 00
80d401001537f002ffff77777777777777777777777777777777
//应用维护子密钥DAMK_ADF 00
80d401001536f002ff3388888888888888888888888888888888
//圈提子密钥 DULK 00
80d40100153df002010199999999999999999999999999999999
//圈提子密钥 DULK 01
80d40101153df0020101aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//透支限额子密钥 DUK 00
80d40100153cf0020101bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
//透支限额子密钥 DUK 01
80d40101153cf0020101cccccccccccccccccccccccccccccccc
//PIN 00
80d401000b3af0ef0133123456FFFFFF
//建立公共应用基本文件 0015(二进制文件 读F0写F0)
80e0001507a8001ef0f0ffff
//写公共应用基本文件(MAC)
04d6950022112233445566778899aabbccddeeff00112233445566778899aabbccddee6f22aa45
//建立持卡人基本文件 0016 (二进制文件 读F0写F0)
80e0001607a80027f0f0ffff
//写持卡人基本文件
04d6960022112233445566778899aabbccddeeff00112233445566778899aabbccddee0817284e
//建立交易明细文件 0018 (循环记录文件 读F1写EF)
80e00018072e0A17f1efffff
//建立电子存折文件 0001 (使用、取余额权"F1")
80e00001072f0208f10f1f18
//建立电子钱包文件 0002 (使用、取余额权"F0")
80e00002072f0208f0f0ff18
Deselct
实验十三、CPU卡系统FMCOS用户卡的消费指令操作
实验目的
1、了解FMCOS文件系统结构
2、了解CPU卡的消费过程的流程
3、掌握CPU卡消费指令的使用,并理解每条指令的含义。
4、了解DES、MAC码的计算原理。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送CPU卡相关的消费指令,留意读卡模块与用户卡间数据交互过流程(MAC码计算)。
3、理解卡消费指令的含义,根据返回的响应码判断CPU卡是否操作成功。
实验步骤:
1、
/********消费************/
00a4040009a00000000386980701
805c000204//读余额
0020000003123456
//圈存
805000020b000000000F11223344556610
805200000b11223344332211+MAC2
//消费
805001020b02000000011122334455660f
805401000f0000000011223344332211+MAC1
CPU卡综合消费流程
Cpu实验的更多相关文章
- 龙芯将两款 CPU 核开源,这意味着什么?
10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...
- 【转帖】龙芯将两款 CPU 核开源,这意味着什么?
龙芯将两款 CPU 核开源,这意味着什么? https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core 文章挺不错的 也讲 ...
- kubernetes cpu限制参数说明
docker CPU限制参数 Option Description --cpus=<value> Specify how much of the available CPU resourc ...
- [acmm week12]二分+dp+单调队列
1004 抄作业 Time Limit: 1sec Memory Limit:256MB Description Zfree虽然平时很爱学习,但是他迫于生活所迫(比如设计cpu实 ...
- PyTorch 60 分钟入门教程:数据并行处理
可选择:数据并行处理(文末有完整代码下载) 作者:Sung Kim 和 Jenny Kang 在这个教程中,我们将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多 ...
- 车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)
最近看到geihub上有个车牌识别的项目,感觉很有意思,从上面fork了一下弄到本地自己跑了下.在安装过程中遇到了一些问题,记录如下. 项目github连接:https://github.com/sz ...
- PyTorch Data Parrallel数据并行
PyTorch Data Parrallel数据并行 可选择:数据并行处理 本文将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多个 GPU 非常简单.可以将模型 ...
- PyTorch 数据并行处理
PyTorch 数据并行处理 可选择:数据并行处理(文末有完整代码下载) 本文将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多个 GPU 非常简单.可以将模型放 ...
- [计算机组成原理][实验十.R-I-J型指令CPU设计实验总结]
总算解决一大心头之患了,比想象中容易,通宵两夜,刷完了十个实验,这个实验就是最后的了.感慨颇多.特地写篇总结. 想做一件事,就立马去做把.你会发现没那么困难,往往最大的困难,是心里的困难. 培养了HD ...
随机推荐
- mysql查询数据库中包含某字段(列名)的所有表
SELECT TABLE_NAME '表名',TABLE_SCHEMA '数据库名',ORDINAL_POSITION '顺序',COLUMN_NAME '字段',DATA_TYPE '类型' ,CH ...
- ASP.NET MVC5 学习笔记-4 OWIN和Katana
1. Owin OWIN全名:Open Web Interface for .NET. 它是一个说明,而非一个框架,该声明用来实现Web服务器和框架的松耦合.它提供了模块化.轻量级和便携的设计.类似N ...
- android--email发送邮件,文本还有附件形式的邮件
1.首先用的jar包为javaemail 下载地址: https://yunpan.cn/cB3kY8WIvcGtU (提取码:e042) 2.工具包 package com.kllayhello.u ...
- [转]Swift 简介 - 苹果最新的编程语言
Swift 真的可以说是最新的编程语言了,2014wwdc刚刚发布,下面来了解一下都有哪些特点. 首先感谢原作者,主要内容是借鉴他的,参考链接 http://zh.lucida.me/blog/an- ...
- 指针和引用区别 C++
#include <iostream> using namespace std; int main(){ ; void cubeByPoint(int *);//指针传参声明 void c ...
- LintCode- 删除排序数组中的重复数字
题目描述: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 样例 给出数组A =[1,1 ...
- MySQL DBA成长之路
http://blog.51cto.com/zt/579 :GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'm ...
- android搭建环境错误 daemon not running. starting it now on port 5037 ADB server didn't ACK
android搭建环境错误 daemon not running. starting it now on port 5037 ADB server didn't ACK ADB server didn ...
- linux内核源码阅读之facebook硬盘加速flashcache之二
flashcache数据结构都在flashcache.h文件中,但在看数据结构之前,需要先过一遍flashcache是什么,要完成哪些功能?如果是自己设计这样一个系统的话,大概要怎么设计. 前面讲过, ...
- Android学习之Drawable(一)
Drawable有很多种,它们表示一种图像概念,但它们不全是图片.Drawable是什么呢?下面是Google Android API中的定义: A Drawable is a general abs ...