[发明内容]
本发明的目的在于提出一种智能卡一卡一密方法和***,可以克服现有技术中的缺陷。
本发明的目的是这样实现的:构建一种智能卡一卡一密方法,包括如下步骤:将智能卡***操作密码与智能卡序列号混合加密后形成智能卡访问密码,存储于智能卡内;当对智能卡进行访问时,必须先输入访问密码,智能卡核对访问密码是否正确,如是,可以访问,如否,拒绝访问。
对应该方法,构建一种智能卡一卡一密***,包括智能卡,用于提供给用户使用;密码输入装置,用于读取客户自定义的客户密码;管理卡,用于存储表征客户身份的客户标志码;加密装置一,用于将所述客户密码和客户标志码混合加密后生成操作密码;机具,用于读取所述智能卡的出厂序列号,并将该序列号与所述操作密码混合加密后,输出访问密码给所述智能卡。
本发明因为采用了上述技术方案,使得对每一张智能卡都可以提供一个唯一密码,该方法不仅保证不同客户的智能卡和智能卡读写机具相互不可串用,即使某张智能卡或某台智能卡读写机具的访问密码被意外泄露或被恶意破译,仍然无法知道其它智能卡的访问密码。信息由软件加密后存储在机具中,即使是客户的技术管理人员也不可知道智能卡的访问密码,避免了内部人员作弊。
[具体实施方式]
下面结合附图和实施例对本发明作进一步说明。
如图2所示。智能卡应用***开发商为每个特定客户定义一组客户标识码,并由发卡器写入到管理卡中。客户安装智能卡应用***时,再由客户自己定义一组客户密码,智能卡管理软件对客户标识码和客户密码使用特定软件加密算法1,如DES加密算法,得出该客户的智能卡机具和软件的操作密码,并由发卡器将客户标识码和操作密码添加写入到管理卡中。
操作密码的一般加密变换函数为:
操作密码=加密算法1(客户标识码,客户密码)
客户发行新用户卡时,智能卡管理软件对操作密码和表征智能卡唯一性的卡序列号使用特定软件加密算法2(如RSA加密算法),得出该智能卡的访问密码,并由发卡器将该访问密码写入到该用户卡的密码数据区中,该访问密码与该卡唯一对应,且只存储在该卡中。访问密码的一般加密变换函数为:
访问密码=加密算法2(操作密码,卡序列号)
客户启用智能卡应用***的机具时,先用管理卡传递客户标识码和操作密码到智能卡读写机具中。所有智能卡读写机具中也存储有相同访问密码加密算法,智能卡读写机具读写每张智能卡时,先根据获得的卡序列号与由管理卡传递的客户标识码和操作密码,使用访问密码加密算法动态生成访问密码,只有该访问密码与该智能卡的唯一访问密码相符时,智能卡才允许继续读写卡内信息。否则拒绝读写,从而达到保证智能卡应用***整体信息安全的目的。
图3、图4和图5中,USER_PW0为客户卡片管理者自己设定的用户密码,USER_PW1为用DES加密算法生成的用户密码密文,USER_NO为开发商为客户定义的唯一客户标识码,OP_PW为包含有客户标识码和用户密码信息的供软件内部使用的操作密码,CARD_ID为卡片的出厂序列号,KEY_A/B是指卡片的访问密码KEY_A和/或KEY_B。算法符号指微处理器能执行的任何一种算术运算或逻辑运算或它们的组合运算。
保证卡片访问密码KEY_A/B安全是保证卡片数据能安全访问的唯一措施。本发明实施例中,用户卡的访问密码KEY_A/B包含三方面的信息:开发商为客户定义的唯一客户标识码USER_NO、客户卡片管理者自己设定的用户密码USER_PW0、用户卡的出厂序列号CARD_ID。其中,客户标识码USER_NO和用户密码USER_PW0的信息通过管理卡传递给智能卡的管理软件和机具,而用户卡的出厂序列号CARD_ID固化在卡片中,因此,用户卡的访问密码KEY_A/B都是在刷卡时动态生成的。在***的数据存储区中不保存用户卡的访问密码,因此,数据安全访问的保密性极高。
每张用户卡的出厂序列号CARD_ID是不同的,全世界唯一,因此,用户卡的访问密码KEY_A/B也是全世界是唯一的,即具有一卡一密机制。
开发商为客户定义的唯一客户标识码USER_NO保证了它为客户提供的智能卡***的特征信息与其他开发商提供的智能卡***的特征信息是各不相同的,因此,其它开发商不可知其用户卡访问密码。同时,它也保证了为不同客户提供的智能卡***的特征信息也是各不相同的,即使不同客户使用了同一开发商的相同型号和规格的产品,不同客户之间的用户卡也是互不可识别的。因此,客户卡片管理者也不可知其用户卡访问密码。
客户卡片管理者自己设定的用户密码USER_PW0保证了自己使用的智能卡***具有特别的唯一性标识信息,即使开发商为不同客户定义了相同客户标识码,该智能卡***的标识信息仍然是唯一的,其密码体系不会被开发商或其他非法人员知晓。因此,开发商或持卡人不可知其用户卡访问密码。
用户卡的出厂序列号CARD_ID的唯一性保证了生成其访问密码的唯一性。即使非法使用者采用穷举法解密了一张用户卡的访问密码,但仍然无法得知其它用户卡的访问密码。因此,任何人也无法破解该智能卡***的密码体系。
按照图2所示用户卡访问密码的算法流程,智能卡管理软件和机具只保存有用加密算法对客户标识码、客户密码进行变换后的操作密码和动态生成用户卡访问密码的相同算法,必须即时读取用户卡的出厂序列号后才能确定该卡的访问密码。因此即使是开发者或客户卡片管理者或持卡人本人也不可知该用户卡的访问密码。
按照图3所示操作密码的算法流程,管理卡只保存有对客户标识码、客户密码进行加密后的操作密码,它并不能直接传递用户卡的访问密码。因此,即使获得了客户标识码和客户密码,也不能得到用户卡的访问密码。
按照图4所示管理软件生成用户卡访问密码的算法流程,用户卡的访问密码是动态生成并重新改写到用户卡的,它并不保留在管理软件的数据区,即使是跟踪管理软件也不可能获得用户卡的访问密码。
按照图5所示机具生成用户卡访问密码的算法流程,用户卡的访问密码是动态生成的,并不保留在机具的存储器数据区中,即使是窃取机具内数据,也不可能获得用户卡的访问密码。
根据上述一卡一密方法,用户卡只能在具有相同客户标识码和客户密码信息的管理软件和机具中才能正常刷卡使用,且其访问密码生成算法和密钥必须是一致的。
一卡一密方法的使用步骤是:
1、开发商为每一个客户智能卡***定义一个唯一的客户标识码,并将其写入到管理卡中。
2、客户安装智能卡***时通过管理软件自己定义客户密码,管理软件用加密算法生成客户的操作密码,并添加写入到客户的管理卡中。
3、客户发用户卡时,管理软件读取客户的操作密码和用户卡的出厂序列号,用加密算法生成该用户卡唯一的访问密码,并将该卡的出厂时访问密码改写成新生成的访问密码。
4、客户用管理卡将客户标识码和操作码传入各智能卡机具。
5、刷用户卡时,机具读取该卡的出厂序列号。
6、机具根据客户的操作密码和用户卡的出厂序列号,用加密算法生成该用户卡的访问密码。
7、将访问密码发送到用户卡。
8、卡片核对该访问密码是否相符。
9、若相符则允许机具进一步读写用户卡内数据。
10、不相符,则拒绝机具许进一步读写用户卡内数据。