一种cpu卡数据加密和解密方法

文档序号:6681083阅读:3991来源:国知局
专利名称:一种cpu卡数据加密和解密方法
技术领域
本发明涉及CPU卡安全技术,尤其涉及一种建设事业CPU卡及 银行业CPU卡的数据加密和解密方法。
背景技术
截止目前,我国共有接近180余个城市应用了不同规模的交通 事业IC卡系统,发卡量已超过1.5亿张,约有95%的城市在应用 IC卡系统时选择使用非接触式逻辑加密卡,相当于约有1.4亿张逻 辑加密卡在我国城市交通事业IC卡系统中应用。其应用范围已覆 盖公交、地铁、出租、轮渡、及小额消费等领域。然而当前庞大的 交通领域早期应用的主流用卡MIFARE S50卡片却随着时间的推 移,凸现了许多技术上的不足,最大的问题莫过于安全性能低下, 导致安全性能不足的一个主要的原因就是当前主流的公交卡卡片 与读卡器,读卡器与系统之间传输数据采取明文,容易被犯罪分子 窃听,篡改,分析甚至破译,然后加以复制。给我国城市交通事业 IC卡系统安全性造成了极大隐患。卡片信息一旦遭到大规模复制, IC卡系统将会面临巨大的威胁。发明内容本发明的目的在于克服上述现有技术的不足之处而提供一种 安全性能高的CPU卡数据加密和解密方法。本发明的目的可以通过以下技术方案实现一种CPU卡数据加密和解密方法,包括一个密钥KEY,其特征在于, 加密过程包括以下步骤(1)分割数据块;(2)通过密钥KEY进行DES 加密;(3)通过密钥KEY生成MAC码;(4)附加MAC码;解密过程包括以下步骤(a)剔除MAC码;(b)通过密钥KEY计算MAC值;(c) 将MAC值与收到的MAC码比较,若相同,转(e); (d)MAC校验失败, 终止;(e)通过密钥KEY进行DES解密。一种CPU卡数据加密和解密方法,其特征在于,第(1)步所述的分 割数据块,是指对传输的数据将该数据块分成8字节为单位的数据块,表 示为BLOCKl、 BLOCK2、 BLOCK3、 BLOCK4......;最后的数据块有可能是1~8个字节,如果最后的数据块的长度是8字节的话,则在该数据块 之后再加一个完整的8字节数据块'80 00 00 00 00 00 00 00',如果最后 的数据块的长度不足8字节,则在其后加入16进制数'80',如果达到8 字节长度,则转第(2)步,否则在其后加入16进制数(OO'直到长度达 到8字节,再转第(2)步。一种CPU卡数据加密和解密方法,其特征在于,第(3)步所述的生 成MAC码,进一步包括以下步骤(3-1)将一个8字节长的初始值设定 为16进制数'00 00 00 00 00 00 00 00, ; (3-2)将所有输入数据按指定顺 序连接成一个数据块;(3-3)将该数据块分成8字节为单位的数据块,表 示为BLOCKl、 BLOCK2、 BLOCK3、 BLOCK4......;最后的数据块有可能是1~8个字节;如果最后的数据块的长度是8字节的话,则在该数据块 之后再加一个完整的8字节数据块'80 00 00 00 00 00 00 00,,转到第(3-4) 步;如果最后的数据块的长度不足8字节,则在其后加入16进制数'80', 如果达到8字节长度,则转到第(3-4)步;否则在其后加入16进制数'00' 直到长度达到8字节,转到第(3-4)步;(3-4)数据块BLOCKl与初 始值'00 00 00 00 00 00 00 00,异或后得到的数据被KEY加密得到密文, 再用该密文作为初始值与BLOCK2异或后加密.…如此类推;(3-5)最终 计算结果取高4字节作为MAC码。一种CPU卡数据加密和解密方法,其特征在于,所述CPU卡是非接 触CPU卡。本发明涉及的CPU卡数据加密和解密方法,采用DES加密算法,5进行密文传输,同时,采用MAC校验数据的完整性,必须撑握生成MCA 码的密钥才可以传输合法的数据,防止第三方对数据的篡改,保证数据的 完整性与真实性。与现有技术相比,本发明的CPU卡数据加密和解密方 法更具有安全性。


图1是本发明第一个实施例加密流程图。 图2是本发明第一个实施例解密流程图。
具体实施方式
下面将结合附图对本发明作进一步详述。本发明的第一个实施 例是一种非接触CPU卡数据加密和解密方法,硬件可以采用上海复旦微 电子股份有限公司出品的FM1208芯片。DES (DataEncryption Standard) 加密和解密,采用56位密钥加密64位数据的方法。参考图l、图2,本 发明第一个实施例的CPU卡数据加密和解密方法,包括一个密钥KEY, 其特征在于,加密过程包括以下步骤(1)分割数据块;(2)通过密钥 KEY进行DES加密;(3)通过密钥KEY生成MAC码;(4)附加MAC 码;解密过程包括以下步骤(a)剔除MAC码;(b)通过密钥KEY计 算MAC值;(c)将MAC值与收到的MAC码比较,若相同,转(e); (d) MAC校验失败,终止;(e)通过密钥KEY进行DES解密。本实施例中, 第(1)步所述的分割数据块,是指对传输的数据将该数据块分成8字节 为单位的数据块,表示为BLOCKl、 BLOCK2、 BLOCK3、 BLOCK4......;最后的数据块有可能是1 8个字节,如果最后的数据块的长度是8字节的 话,则在该数据块之后再加一个完整的8字节数据块'80 00 00 00 00 00 00 00',如果最后的数据块的长度不足8字节,则在其后加入16进制数'80', 如果达到8字节长度,则转第(2)步,否则在其后加入16进制数'00' 直到长度达到8字节,再转第(2)步。本实施例中,第(3)步所述的生 成MAC码,进一步包括以下步骤(3-1)将一个8字节长的初始值设定 为16进制数'00 00 00 00 00 00 00 00, ; (3-2)将所有输入数据按指定顺 序连接成一个数据块;(3-3)将该数据块分成8字节为单位的数据块,表6示为BLOCKl、 BLOCK2、 BLOCK3、 BLOCK4......;最后的数据块有可能是1~8个字节;如果最后的数据块的长度是8字节的话,则在该数据块 之后再加一个完整的8字节数据块'80 00 00 00 00 00 00 00,,转到第(3-4) 步;如果最后的数据块的长度不足8字节,则在其后加入16进制数<80', 如果达到8字节长度,则转到第(3-4)步;否则在其后加入16进制数'00' 直到长度达到8字节,转到第(3-4)步;(3-4)数据块BLOCKl与初始 值'00 00 00 00 00 00 00 00'异或后得到的数据被KEY加密得到密文, 再用该密文作为初始值与BLOCK2异或后加密….如此类推;(3-5)最终 计算结果取高4字节作为MAC码。本实施例的CPU卡数据加密和解密 方法,采用DES加密算法,进行密文传输,同时,采用MAC校验数据 的完整性,必须撑握生成MCA码的密钥才可以传输合法的数据,防止第 三方对数据的篡改,保证数据的完整性与真实性。本发明的CPU卡数据 加密和解密方法更具有安全性。
权利要求
1、一种CPU卡数据加密和解密方法,包括一个密钥KEY,其特征在于,加密过程包括以下步骤(1)分割数据块;(2)通过密钥KEY进行DES加密;(3)通过密钥KEY生成MAC码;(4)附加MAC码;解密过程包括以下步骤(a)剔除MAC码;(b)通过密钥KEY计算MAC值;(c)将MAC值与收到的MAC码比较,若相同,转(e);(d)MAC校验失败,终止;(e)通过密钥KEY进行DES解密。
2、 根据权利要求1所述的一种CPU卡数据加密和解密方法,其特征 在于,第(1)步所述的分割数据块,是指对传输的数据将该数据块分成8 字节为单位的数据块,表示为BLOCK1 、 BLOCK2 、 BLOCK3 、 BLOCK4......;最后的数据块有可能是1 8个字节,如果最后的数据块的长度是8字节的话,则在该数据块之后再加一个完整的8字节数据块'80 00 00 00 00 00 00 00',如果最后的数据块的长度不足8字节,则在其后加 入16进制数'80',如果达到8字节长度,则转第(2)步,否则在其后 加入16进制数<00'直到长度达到8字节,再转第(2)步。
3、 根据权利要求1所述的一种CPU卡数据加密和解密方法,其特征 在于,第(3)步所述的生成MAC码,进一步包括以下步骤-(3-1)将一个8字节长的初始值设定为16进制数'00 00 00 00 00 00 00`00,;(3-2)将所有输入数据按指定顺序连接成一个数据块;(3-3)将该数据块分成8字节为单位的数据块,表示为BLOCKl、 BLOCK2、 BLOCK3、 BLOCK4......;最后的数据块有可能是1 8个字节;如果最后的数据块的长度是8字节的话,则在该数据块之后再加一个完整 的8字节数据块'80 00 00 00 00 00 00 00,,转到第(3-4)步;如果最后的 数据块的长度不足8字节,则在其后加入16进制数'80',如果达到8字节 长度,则转到第(3-4)步;否则在其后加入16进制数<00'直到长度达 到8字节,转到第(3-4)步;(3-4)数据块BLOCKl与初始值'00 00 00 00 00 00 00 00,异或后得 到的数据被KEY加密得到密文,再用该密文作为初始值与BLOCK2异或后 加密....如此类推;(3-5)最终计算结果取高4字节作为MAC码。
4、根据权利要求1所述的一种CPU卡数据加密和解密方法,其特征 在于,所述CPU卡是非接触CPU卡。
全文摘要
本发明涉及CPU卡安全技术,尤其涉及一种建设事业CPU卡及银行业CPU卡的数据加密和解密方法,该方法包括一个密钥KEY,其特征在于,加密过程包括以下步骤(1)分割数据块;(2)通过密钥KEY进行DES加密;(3)通过密钥KEY生成MAC码;(4)附加MAC码;解密过程包括以下步骤(a)剔除MAC码;(b)通过密钥KEY计算MAC值;(c)将MAC值与收到的MAC码比较,若相同,转(e);(d)MAC校验失败,终止;(e)通过密钥KEY进行DES解密。本发明提供一种安全性能高的CPU卡数据加密和解密方法。
文档编号G07F7/10GK101577022SQ20091010574
公开日2009年11月11日 申请日期2009年3月13日 优先权日2009年3月13日
发明者李能均, 杨敬源, 梁建军 申请人:深圳德诚信用咭制造有限公司
网友询问留言 已有1条留言
  • 173687... 来自[中国] 2020年09月12日 23:12
    能帮解张卡吗
    0
1