ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:41KB ,
资源ID:8352028      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8352028.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SM7操作流程收.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

SM7操作流程收.doc

1、SM7 卡片操作方法1. ISO14443 typaA 卡片寻卡,防冲突,选卡操作1.1 request 寻卡SM7 卡片返回值:0x031.2 Anti-collision 防冲突SM7 卡片返回值:UID 卡号1.3 Select 选卡操作SM7 卡片返回值:0x082. SM7 卡片认证2.1 获取随机数 (1)第一次进行认证操作时发送 2 个字节(认证指令 0x71,认证参数) (具体参数见下表)认证 key 编号 认证参数0 0x071 0x062 0x053 0x044 0x275 0x266 0x257 0x24TXCRC:onRXCRC:off卡片返回值: 4 字节随机数(例:

2、D3 4A 42 71)(2)如果之前已经完成认证操作,再次进行认证操作时发送的 2 个字节(认证指令0x71,认证参数)需要使用之前认证生成的密码流进行异或加密。TXCRC:onRXCRC:off卡片返回值: 4 字节随机数(例:D3 4A 42 71) ,注意此时返回的随机数为明文,同时之前认证生成的密码流停止使用,待本次取得的随机数通过 PSAM 卡计算新的Token1。2.2 Authentication1(1)PSAM 卡指令:80 F0 00 01 0C + random data + 11 22 33 44 55 66 77 88,注 1:80 F0 00 01 0C 中 P2=

3、01 为 PSAM 卡片密钥标识注 2:此处 11 22 33 44 55 66 77 88 为 SM7 卡片密钥分散因子(2)PSAM 卡返回:8 字节 Token1 + SW(90 00)(3)非接触读卡器发送 8 字节 Token1TXCRC:onRXCRC:off卡片返回值: 8 字节 Token2(例:CA B9 A4 EC E0 64 74 99)2.3 Authentication2卡片返回的 Token2 发送给 psam 卡验证,如果验证通过 PSAM 卡返回 16 字节初始密钥流+SW(90 00)2.4 计算密码流PSAM 卡指令:80 1C 00 00 10卡片返回值:

4、 16 字节密码流3. SM7 卡片操作3.1 SM7 卡片读块(1)SM7 卡片指令: 0x30,块号参数。(2)SM7 卡片指令与密码流异或加密。(3)非接触读卡器发送 2 个字节密文。TXCRC:onRXCRC:on(4)SM7 卡片返回值: 16 字节块数据。(5)16 字节块数据与密码流异或解密得到数据明文。3.2 SM7 卡片写块(1)SM7 卡片指令: 0xA0,块号参数。(2)SM7 卡片指令与密码流异或加密。(3)非接触读卡器发送 2 个字节密文。 TXCRC:onRXCRC:off(4)SM7 卡片返回值: 半字节 ACK 数据(5)半字节 ACK 数据与密码流异或解密得到

5、数据明文 0xA。(6)SM7 卡片指令: 16 字节写块数据。(7)16 字节写块数据与密码流异或加密。(8)非接触读卡器发送 16 个字节密文。 TXCRC:onRXCRC:off(9)SM7 卡片返回值: 半字节 ACK 数据(10)半字节 ACK 数据与密码流异或解密得到数据明文 0xA。4. SM7 卡片异或加密与解密(1) 判断当前密码流长度(按半字节数组长度计算)是否足够支持本条指令操作,读块需要 18,写块需要 19。如果长度不够,按照 2.4 计算密码流方法计算密码流。(2) 密码流每个字节按照低四位在前高四位在后的方式,拆成半字节数组。例如:0x73,0x59,0xB2,0

6、x16,0x3E,0x4E,0xDC,0x58拆成:0x3,0x7,0x9,0x5,0x2,0xB,0x6,0x1,0xE,0x3,0xE,0x4,0xC,0xD,0x8,0x5例:for( i = 0;i+;i To input_len)half_byte(i * 2) = input_data(i) /低位for( i = 0;i+;i input_len)half_byte(i * 2 + 1) = (input_data(i) /高位(3) 需要加密或解密的数据同样按照低四位在前高四位在后的方式,拆成半字节数据数组。密码流长度减去本次计算使用的数据长度。半字节密码流数组首地址后移本次计

7、算使用的数据长度。例:token_halfbytelength = token_halfbytelength - command_halfbytelength;/密码流长度减去数据的长度 4for(i = 0;i+; i token_halfbytelength)token_halfbyte(i) = token_halfbyte(i + command_halfbytelength);/密码流数组首地址向后偏移数据的长度(4) 将半字节密钥数组与半字节数据数组异或操作,得到的半字节数组按照低四位在前高四位在后的方式组合后得到加密或解密的结果。例:for( i = 0;i+;idata_len)halfbyte_data(i) = halfbyte_data(i) token_halfbyte(i);/半字节数据数组与半字节密码流数组异或运算for( i = 0;i+;i To inputdata_length)output_data(i) = halfe_byte(i * 2) + (halfe_byte(i * 2 + 1) * 16);/半字节数据数组组合为字节数组

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报