金融系列5《AUTH过程》
INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据。这个命令开始一个安全通道会话的发起。
CPURESET()
//选择应用区
00A40400+08+A000000333010101 0084000008(RAM+9000)
//初始化通道
80500000+08+RAM+1C
00C000001C(DATA+9000)
/*************
Key diversification data 10bytes //由卡外实体来获取卡内的静态密钥
Key information 2bytes //包含了密钥的版本号和安全通道的协议号
Card challenge 8bytes //卡内部生成的随机数
Card cryptogram 8bytes //鉴别密码
************/
KEYVERSION=COPY(DATA,21,2)
QCOUNTER=COPY(DATA,25,4)
CCHALLENGE=COPY(DATA,29,12)
CARDCHALLENGE=COPY(DATA,25,16)
MAC_RII=LAST(DATA,16) //验证MAC //计算个人化过程密钥SPenc SPmac SPdek
CBC_3DES_EN(00000000000000000182+QCOUNTER+000000000000000000000000,Penc,SPenc)
CBC_3DES_EN(00000000000000000101+QCOUNTER+000000000000000000000000,Pmac,SPmac)
CBC_3DES_EN(00000000000000000181+QCOUNTER+000000000000000000000000,Pdek,SPdek) //华大
{
SPenc=COPY(SPenc,1,16)
//3DES计算MAC MAC_RII==MAC_RI
SDES_MAC_1(0000000000000000+RAM+CARDCHALLENGE+8000000000000000,SPenc,MAC_RI)
SDES_MAC_1(0000000000000000+CARDCHALLENGE+RAM+8000000000000000,SPenc,MAC1)
3DES_MAC_1(0000000000000000+8442000010+MAC1+800000,SPmac,MAC2) //通道安全认证
84420000+10+MAC1+MAC2
} //JAVA CARD
{
//3DES计算MAC
GP_MAC(RAM+CARDCHALLENGE+8000000000000000,SPenc,MAC_RI)
GP_MAC(CARDCHALLENGE+RAM+8000000000000000,SPenc,MAC1)
3DES_MAC_1(0000000000000000+8482000010+MAC1+800000,SPmac,MAC2) //通道安全认证
84820000+10+MAC1+MAC2
}
文/闫鑫原创 转载请注明出处http://blog.csdn.net/yxstars/article/details/12015925
金融系列5《AUTH过程》的更多相关文章
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
- Spring Ioc源码分析系列--Bean实例化过程(一)
Spring Ioc源码分析系列--Bean实例化过程(一) 前言 上一篇文章Spring Ioc源码分析系列--Ioc容器注册BeanPostProcessor后置处理器以及事件消息处理已经完成了对 ...
- Spring Ioc源码分析系列--Bean实例化过程(二)
Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...
- 金融系列4《PUTKEY指令》
用一个新的密钥替换一个已经存在的密钥:新密钥可以有与被替换的密钥相同的或不同的密钥版本号,但是必须与被替换的密钥有相同的密钥标识符. 用新密钥替换多个已经存在的密钥:新密钥可以有与被替换的密钥相同的或 ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- AUTH过程
INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据.这个命令开始一个安全通道会话的发起. CPURESET() // ...
- DM6437 dsp系列之启动过程全析(2)—AIS文件解析
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: gzzaigcn2009@163.com,gzzaigcn2012@gmail.com ...
- thinkpad e系列 装win7过程
电脑买回来时是win8系统,但是卡顿的厉害,装成win7,win8装win7流程还是比较复杂,后来又装成xp,现在又改成win7,记录一下装win7 的过程 我是用光盘安装的系统 第一步:进入boss ...
- Elasticsearch系列---搜索执行过程及scroll游标查询
概要 本篇主要介绍一下分布式环境中搜索的两阶段执行过程. 两阶段搜索过程 回顾我们之前的CRUD操作,因为只对单个文档进行处理,文档的唯一性很容易确定,并且很容易知道是此文档在哪个node,哪个sha ...
随机推荐
- ubuntu下安装redis
(1)进去 /usr/local目录下 cd /usr/local 若没有local这个文件夹则创建一个 sudo mkdir /usr/local sudo chmod 777 ...
- Oracle基础 (十四)其他函数
转换函数: TO_DATE:转换为日期 --将字符串转换为日期 SELECT TO_DATE('2014-12-31', 'yyyy-mm-dd') FROM DUAL; SELECT TO_DATE ...
- C#解析Json字符串
1.var resultStr={"from":"en","to":"zh","trans_result&qu ...
- Kafka删除逻辑
Kafka的删除逻辑请参见:http://www.cnblogs.com/gaopeng527/p/4950956.html
- DataTable转CSV
直接上方法: /// <summary> /// 将DataTable转换成CSV文件 /// </summary> /// <param name="dt&q ...
- 在IIS上发布项目后浏览时报的错:Unable to make the session state request to the session state server
错误描述: Unable to make the session state request to the session state server. Please ensure that the A ...
- HTML_创建易用的Web表单
首先创建一个表单域集合fieldset fieldset元素允许Web开发者将主题相关的表单组合在一起 <fieldset></fieldset> 要说明的是本例子中每个表单都 ...
- log4net自定义字段写入SqlServer数据库 ASP.net
首先申明,本示例经过本作者亲自试验通过,可以运行 第一步 编写log4net配置文件 此处为Log.xml,该文件放在与Web.config平级的位置 <?xml version="1 ...
- iOS NSDate与NSString之间的相互转换
假如我们需要把当前的时间当成一个字符串作为一张图片的名字的话,就需要把当前的时间NSDate类型的数据转换成NSString类型. 又或者在网络请求的时候,我们在网络上的到时间是一个字符串但是在本地就 ...
- hdu 1716(dfs)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1716 排列2 Problem Description Ray又对数字的列产生了兴趣:现 ...