pos密事(续2)

news/2024/10/30 23:17:56/

紧接上文,本篇简述mac值的计算以及PIN(个人工作秘钥)的加密以及转加密。

信息:就用上文算出来的PIN和PAK
PIN秘钥明文 B42C67015B2FA5B85135D170A2ECC4E5
PAK秘钥明文 7C8B366BD1C56183655F8D3529A2117B

3.MAC密钥的计算(国密和国际)

数据
0200602406C020C09B11196235010131
70200003203100000001352711071000
000012376235010131702000032D2711
22096697800000313130303434303039
34313133303635393939383935363135
36303030303030303024000000000000
0001459F2608636A8F3E1537C3669F27
01809F101307020103A0A002010A0100
0000000061ABC57A9F3704B22E4C139F
36020ACA950500800460009A03200715
9C01319F02060000000000005F2A0201
5682027C009F1A0201569F0306000000
0000009F3303E0F9C89F34030203009F
3501228408A0000003330101019F0902
00009F4104000000929F1E0831313030
343430300024303034534D3031364445
34324633333831414646443132410013
01000001000600
PAK秘钥明文 7C8B366BD1C56183655F8D3529A2117B
银联ECB模式计算mac

计算过程

MAC:  银联ECB-MAC  SM4算法
密钥  长度16(0x10)字节
7C 8B 36 6B D1 C5 61 83 65 5F 8D 35 29 A2 11 7B
初始向量  全部0x00
数据  长度279(0x117)字节
02 00 60 24 06 C0 20 C0 9B 11 19 62 35 01 01 31 
70 20 00 03 20 31 00 00 00 01 35 27 11 07 10 00 
00 00 12 37 62 35 01 01 31 70 20 00 03 2D 27 11 
22 09 66 97 80 00 00 31 31 30 30 34 34 30 30 39 
34 31 31 33 30 36 35 39 39 39 38 39 35 36 31 35 
36 30 30 30 30 30 30 30 30 24 00 00 00 00 00 00 
00 01 45 9F 26 08 63 6A 8F 3E 15 37 C3 66 9F 27 
01 80 9F 10 13 07 02 01 03 A0 A0 02 01 0A 01 00 
00 00 00 00 61 AB C5 7A 9F 37 04 B2 2E 4C 13 9F 
36 02 0A CA 95 05 00 80 04 60 00 9A 03 20 07 15 
9C 01 31 9F 02 06 00 00 00 00 00 00 5F 2A 02 01 
56 82 02 7C 00 9F 1A 02 01 56 9F 03 06 00 00 00 
00 00 00 9F 33 03 E0 F9 C8 9F 34 03 02 03 00 9F 
35 01 22 84 08 A0 00 00 03 33 01 01 01 9F 09 02 
00 00 9F 41 04 00 00 00 92 9F 1E 08 31 31 30 30 
34 34 30 30 00 24 30 30 34 53 4D 30 31 36 44 45 
34 32 46 33 33 38 31 41 46 46 44 31 32 41 00 13 
01 00 00 01 00 06 00
结果  长度16(0x10)字节
39 41 34 36 37 39 41 34 32 38 30 34 34 37 39 43计算过程
数据长度不为16的倍数,补位90x00,得到0200602406C020C09B1119623501013170200003203100000001352711071000000012376235010131702000032D27112209669780000031313030343430303934313133303635393939383935363135363030303030303030240000000000000001459F2608636A8F3E1537C3669F2701809F101307020103A0A002010A01000000000061ABC57A9F3704B22E4C139F36020ACA950500800460009A032007159C01319F02060000000000005F2A02015682027C009F1A0201569F03060000000000009F3303E0F9C89F34030203009F3501228408A0000003330101019F090200009F4104000000929F1E0831313030343430300024303034534D3031364445343246333338314146464431324100130100000100060000000000000000000000000000000000000000000000000000异或0200602406C020C09B11196235010131得到0200602406C020C09B11196235010131
0200602406C020C09B11196235010131异或70200003203100000001352711071000得到7220602726F120C09B102C4524061131
7220602726F120C09B102C4524061131异或000012376235010131702000032D2711得到7220721044C421C1AA600C45272B3620
7220721044C421C1AA600C45272B3620异或22096697800000313130303434303039得到50291487C4C421F09B503C71131B0619
50291487C4C421F09B503C71131B0619异或34313133303635393939383935363135得到641825B4F4F214C9A2690448262D372C
641825B4F4F214C9A2690448262D372C异或36303030303030303024000000000000得到52281584C4C224F9924D0448262D372C
52281584C4C224F9924D0448262D372C异或0001459F2608636A8F3E1537C3669F27得到5229501BE2CA47931D73117FE54BA80B
5229501BE2CA47931D73117FE54BA80B异或01809F101307020103A0A002010A0100得到53A9CF0BF1CD45921ED3B17DE441A90B
53A9CF0BF1CD45921ED3B17DE441A90B异或0000000061ABC57A9F3704B22E4C139F得到53A9CF0B906680E881E4B5CFCA0DBA94
53A9CF0B906680E881E4B5CFCA0DBA94异或36020ACA950500800460009A03200715得到65ABC5C1056380688584B555C92DBD81
65ABC5C1056380688584B555C92DBD81异或9C01319F02060000000000005F2A0201得到F9AAF45E076580688584B5559607BF80
F9AAF45E076580688584B5559607BF80异或5682027C009F1A0201569F0306000000得到AF28F62207FA9A6A84D22A569007BF80
AF28F62207FA9A6A84D22A569007BF80异或0000009F3303E0F9C89F34030203009F得到AF28F6BD34F97A934C4D1E559204BF1F
AF28F6BD34F97A934C4D1E559204BF1F异或3501228408A0000003330101019F0902得到9A29D4393C597A934F7E1F54939BB61D
9A29D4393C597A934F7E1F54939BB61D异或00009F4104000000929F1E0831313030得到9A294B7838597A93DDE1015CA2AA862D
9A294B7838597A93DDE1015CA2AA862D异或343430300024303034534D3031364445得到AE1D7B48387D4AA3E9B24C6C939CC268
AE1D7B48387D4AA3E9B24C6C939CC268异或34324633333831414646443132410013得到9A2F3D7B0B457BE2AFF4085DA1DDC27B
9A2F3D7B0B457BE2AFF4085DA1DDC27B异或01000001000600000000000000000000得到9B2F3D7A0B437BE2AFF4085DA1DDC27B9B2F3D7A0B437BE2AFF4085DA1DDC27B 
转成ASCII 得到
39423246334437413042343337424532
414646343038354441314444433237427C8B366BD1C56183655F8D3529A2117B对前16字节39423246334437413042343337424532进行SM4加密
得到 50AD321EA18591191A515BD4E7BC009950AD321EA18591191A515BD4E7BC0099异或后16字节41464634303835444131444443323742
得到 11EB742A91BDA45D5B601F90A48E37DB7C8B366BD1C56183655F8D3529A2117B对11EB742A91BDA45D5B601F90A48E37DB进行SM4加密得到9A4679A42804479C8EDCA1680A95C377
9A4679A42804479C8EDCA1680A95C377转成ASCII得到3941343637394134323830343437394338454443413136383041393543333737取前16字节作为MAC:39413436373941343238303434373943

mac值的计算
简述一下ecb模式的计算过程
1.数据(要计算mac值的数据)不足32位长度的进行补0
2.mac数据按32位一组进行分组
3.每组进行异或,最后得出一个32位的值
4.32位的值分组,前16位和后16位
5.前16位转成ASCII之后和PAK进行SM4加密
6.加密后的值与后16位进行异或
7.异或后的值和PAK进行SM4加密
8.结果就是mac校验值,也可转成ASCII

用ANSI X99/X.919算

用ANSI X99/X.919
1.将数据分组异或后的值
39423246334437413042343337424532
41464634303835444131444443323742
2.32位的值分组,前16位和后16
3.16位转成ASCII之后和PAK进行SM4加密
4.加密后的值与后16位进行异或
5.异或后的值和PAK进行SM4加密
6.结果就是mac校验值,也可转成ASCII
MAC:  X99/X9.19  SM4算法
密钥  长度16(0x10)字节
7C 8B 36 6B D1 C5 61 83 65 5F 8D 35 29 A2 11 7B
初始向量  全部0x00
数据  长度32(0x20)字节
39 42 32 46 33 44 37 41 30 42 34 33 37 42 45 32 
41 46 46 34 30 38 35 44 41 31 44 44 43 32 37 42
结果  长度16(0x10)字节
9A 46 79 A4 28 04 47 9C 8E DC A1 68 0A 95 C3 77计算过程
数据长度为16的倍数,无需补位
00000000000000000000000000000000异或39423246334437413042343337424532
得到 39423246334437413042343337424532用7C8B366BD1C56183655F8D3529A2117B对39423246334437413042343337424532进行SM4加密
得到 50AD321EA18591191A515BD4E7BC009950AD321EA18591191A515BD4E7BC0099异或41464634303835444131444443323742
得到 11EB742A91BDA45D5B601F90A48E37DB用7C8B366BD1C56183655F8D3529A2117B对11EB742A91BDA45D5B601F90A48E37DB进行SM4加密
得到 9A4679A42804479C8EDCA1680A95C377

用ANSI X99/X.919模式
也是分组,但是步骤与ecb有所区别
先取32位数据进行异或,然后加密
再取后一组数据异或,然后加密
加密到最后
ANSI X99/X.919模式

4.PIN的加密以及转加密

PIN(个人标识码)的加密和解密涉及
卡号、密码、PIN
最后得到的PIN密文称为PIN BLOCK

主账号的取法分两种:

根据《销售点终端(pos)应用规范-2013》

  1. 手输卡号
    如为手输卡号,从所输卡号(2域)右边数第二位开始,向左取12位,作为参与PIN加、解密的PAN。
  2. 刷卡方式
    如为刷卡方式,从磁道2(35域)分隔符‘=’左边第二位开始,向左取12个字符,作为参与PIN加密的PAN;如只有磁道3(36域),则从磁道3分隔符‘=’左边第二位开始,向左取12个字符,作为参与PIN加、解密的PAN
信息
Pin密钥 B42C67015B2FA5B85135D170A2ECC4E5
卡号 6235010131702000032
密码明文  111111  
PINBLOCK:  SM4算法
中间数据:
00 00 00 00 00 00 00 00 00 00 01 31 70 20 00 03
06 11 11 11 FF FF FF FF FF FF FF FF FF FF FF FF  
PINBLOCK:
06 11 11 11 FF FF FF FF FF FF FE CE 8F DF FF FC帐号信息 一般为卡的末尾第二位开始,向左取12位
PIN格式 应符合ANSI X9.8 Format(带主账号信息)
第1字节 为PIN长度
之后7字节为 4-12位的PIN(每个字符占4个BIT,不足右补F)

PIN块
将得到的PIN BLOCK块用PIN密钥进行加密
PIN块加密
注意:
一般地方说的转加密是,用密钥(密钥1)解出pin block
然后用新的密钥(密钥2)进行加密pin block,再向后传递。


http://www.ppmy.cn/news/332830.html

相关文章

分析网站登录处的加密算法(二)

前言:在渗透测试过程中,我们经常会碰到登录处用js加密字段的情况。在大多数情况下,看到这种加密方式,我们都会放弃对该登录处进行暴力破解。本文主要讲解对js加密进行绕过,以达到爆破或绕反爬的目的! 对登录…

加密算法整理(哈希SHA, 奇偶校验, DES, 3DES, 3DES 分散, MAC, RSA, SM2) 持续更新

现有加密算法: 对称算法:DES / 3DES / SM4 / AES / SSF33 / RCX 非对称算法: RSA / SM2 / ECC / DSA / DH 信息摘要算法: SHA1 / SM3 / MD4 / MD5 / SHA256 目前银联规范银行卡中使用的安全加密算法分为两种:国际算…

Sm-DOTA DOTA修饰稀土钐 Sm-DTPA二亚乙基三胺五乙酸修饰稀土钐

Sm-DOTA DOTA修饰稀土钐 Sm-DTPA二亚乙基三胺五乙酸修饰稀土钐 镧系元素(有时称为稀土元素)是元素周期表中从原子序数57(镧)到71的14个“ f嵌段”元素的集合。其中,euro(Eu),&#x…

国密算法 SM2 公钥加密 非对称加密 数字签名 密钥协商 python实现完整代码

SM2算法是国家密码管理局于2010年12月颁布的中国商用公钥密码标准算法。SM2基于椭圆曲线离散对数问题,计算复杂度是指数级(暂未发现亚指数级或多项式级的计算方法),相较于广泛应用的RSA公钥密码算法,在同等安全程度要求…

sm2多端加密解密,java,js,android,ios实战

SM2非对称加密 公钥 04xxxxxxxxxxxxxxxxxxxx&#xff0c;私钥 276xxxx原文&#xff1a;你哦哈1232154 3654 {} &#xff0c;俺可接受不符点 公钥私钥是我后台自己生成的&#xff0c; java代码实现 pom.xml <dependency><groupId>org.bouncycastle</group…

加密方式之SM2

有一项需求&#xff0c;为了相对保证安全&#xff0c;需要敏感字符添加加密国密方式&#xff0c;于是想到了SM2&#xff0c;话不多说&#xff0c;上代码。 一、前端js代码。 开始也是找了好久的m2的前端js加密方式&#xff0c;很少&#xff0c;这里找到一个大哥的&#xff0c…

sm2

sm2加密&#xff1a; (function (global, undefined) {"use strict";var SM2CipherMode {C1C2C3: "0",C1C3C2: "1"};var CryptoJS CryptoJS || function (a, b) {var c {}, d c.lib {}, e d.Base function () {function a() { }return {e…

锤子m1 android 7,Smartisan 锤子 M1L 入手两日感受和DIY换背盖经验分享

Smartisan 锤子 M1L 入手两日感受和DIY换背盖经验分享 2016-10-24 14:49:08 51点赞 43收藏 57评论 之前发了Smartisan M1l的开箱&#xff0c;发表了一些自己的看法&#xff0c;对这款手机的短暂印象、批评和赞美。 当时我表达了我对于背盖的极度不满&#xff0c;这个印象两天后…