银行卡安全密码算法辅助计算工具(3DES+RSA)

原创 2014年09月13日 20:28:28

       银行卡包括磁条卡和IC卡,随着国内金融IC卡推进工作的逐步扩大,从2015年开始新发行的银行卡都将为IC卡或者是IC和磁条的复合卡,而不再单独发行磁条卡了。但由于现有磁条卡用户量巨大,磁条卡还将长期使用,只不过是越来越少而已。银行的安全在磁条介质和IC卡介质上的实现是不相同的,安全等级也是不一样的,从磁条卡升级为IC卡的一大动因就是安全性的提高,既是卡的防伪和防复制。而银行卡的安全主要依赖于使用密码算法的安全性和完善的密钥管理机制来实现的。

       银行卡使用的密码算法主要有RSA和3DES算法,国际上的大型卡组织都定义了完善的卡安全标准,概括起来包括2个方面,一个是卡验证,一个是持卡人验证。其中囊括的算法包括:数据完整性验证的MAC算法,PIN保护算法的X9.9、X9.19、IBM offset、VISA PVV,磁条卡验证的VISA PVV等,对于EMV96标准所对应到国内的PBOC1.0标准的使用3DES算法的MAC、数据加解密和密钥离散算法,还包括同EMV2000相对应的PBOC2.0算法使用的联机交易验证、脱机卡数据验证使用、密钥离散算法,其中联机交易验证使用的是3DES算法,脱机数据验证使用的RSA算法。而国密算法在银行卡上的应用为PBOC3.0标准的增强安全部分的内容了,请参看笔者的国密算法工具介绍。

      开发的图形界面GUI工具包括使用3DES算法的所有银行卡类算法,而RSA算法在GUI图形界面中集成了RSA算法的基础部分,包括密钥生成和公私钥加密与解密,而IC卡上使用RSA算法的功能有另外2个命令行工具组成,由于当时项目的一些特殊缘故,还没来得及将所有功能集成在一起(图形命令工具)。说来也是比较好笑的事,另外2个命令行工具还不是使用相同语言开发的,一个使用Ruby实现了IC卡数据准备密码服务功能,一个是使用Javascript实现了IC卡在使用中的联机验证和脱机的SDA和DDA验证,以及发卡行的应用脚本功能,实现功能包括圈存、圈提、脱机消费等,使用Javascript开发的命令行工具可链接IC卡读写设备,并可对真实的IC卡进行物理操作的。

      下面为图形部分的工具界面,2个命令工具就不再展示了。      

 图1   MAC功能界面

图2  PIN算法界面 

    图3  PBOC算法界面

    图4  RSA算法界面

        本工具算法的计算结果使用国内某厂商的金融数据密码机进行验证,功能准确、数据比对正确。

 

中国银联全渠道系统商户接入 测试指引-银联网关支付产品

银联联调测试文档
  • yulei_qq
  • yulei_qq
  • 2015年10月09日 16:52
  • 13314

终端角度看RSA

在金融交易里面,站在终端的角度来看,RSA算法主要用于在公钥解密,并恢复证书(发卡行公钥证书,IC卡公钥证书)。 下面从三种不同的公钥,阐述在POS终端里,RSA算法在脱机数据认证过程中发挥的作用和使...
  • freudlv
  • freudlv
  • 2014年07月29日 15:20
  • 1250

PBOC-3DES-MAC加密算法(测试通过)

package com.fhk.Decrypt; import java.io.UnsupportedEncodingException; /** * PBOC3DES 加密算法 * @Cla...
  • u012454773
  • u012454773
  • 2017年11月03日 13:03
  • 212

国密算法(SM2,SM3,SM4)辅助工具升级版(OTP+PBOC3.0)

从编写最初版本用于验算SM2,SM3和SM4算法的辅助工具已有一年多的时间了,国密算法的应用和普及也是不温不火的。编写最初算法代码和工具时所参考的文档还非正式的国密标准文件,而目前国密标准文件发布了几...
  • goldboar
  • goldboar
  • 2014年05月27日 09:43
  • 15722

MAC计算方法

MAC域(128域)为按照DES算法计算MAC得到的8字节二进制数据的前半部分(4字节二进制数),表示成16进制字符串形式(8个16进制字符)。具体如下: 参与报文校验码(MAC)的数据由三部分产生...
  • dzy784858512
  • dzy784858512
  • 2014年11月14日 17:10
  • 6752

PBOC-非接触小额支付扩展应用中R-MAC的计算

READ CAPP DATA 命令为拓展应用专用指令,当卡片不支持扩展应用记录的R-MAC保护时,命令报文数据域包括 2 个字节的 ID 号;当卡片支持扩展应用记录的 R-MAC 保护时,命令报文数据...
  • wenyangwangw
  • wenyangwangw
  • 2015年11月03日 22:12
  • 930

安全报文中的MAC计算方法

安全报文中的MAC计算方法 校验码(MAC)总是命令或命令响应数据域中最后一个数据元素。规定MAC的长度皆为4个字节。当命令的数据域中要求必须带MAC时,即命令安全报文传送,命令头中CL...
  • lonet
  • lonet
  • 2012年05月23日 15:38
  • 5851

ANSI-X99MAC算法和PBOC的3DES MAC算法,附DES算法工具

[cpp] view plaincopy /**************************************************  * PBOC-3DES MAC计算  ...
  • MaxWoods
  • MaxWoods
  • 2015年09月17日 18:17
  • 3334

利用3DES算法计算MAC及解加密

不少人对于3DES的算法有些陌生
  • zhym7280
  • zhym7280
  • 2014年07月24日 11:18
  • 2223

java实现基于SM4算法计算联机MAC数据

商业银行ATM系统向银行前置系统发送请求报文时,会在报文中加上一串加密后的MAC数据,前置校验此MAC数据验证秘钥是否同步,报文是否完整。用于加密的原MAC数据一般是和前置约定好的报文中部分请求字段。...
  • yewucainiao
  • yewucainiao
  • 2017年07月09日 12:42
  • 525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:银行卡安全密码算法辅助计算工具(3DES+RSA)
举报原因:
原因补充:

(最多只允许输入30个字)