关闭

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

标签: 银行卡算法
5430人阅读 评论(10) 收藏 举报
分类:

       银行卡包括磁条卡和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算法界面

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

 

1
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:195518次
    • 积分:1509
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:149条
    最新评论