智能卡、智能卡加密系统及方法

文档序号:6600939阅读:267来源:国知局
专利名称:智能卡、智能卡加密系统及方法
技术领域
本发明涉及智能卡加密和解密技术领域,更具体地说,涉及一种智能卡、该智能卡 的加密系统及方法。
背景技术
智能卡的应用日益广泛,并且对一卡多用的需求也不断增加,因此对智能卡加密技术的要求也越来越高。目前公知的智能卡访问密码的加密方法是开发商在出厂智能卡 应用系统的软件和硬件时,为具有多个用户的特定客户定义一组客户标识码,该客户标识 码存储在称之为系统管理卡(或授权卡、系统卡)的智能卡上。客户安装智能卡应用系统 的软件和硬件时,由客户定义自己的客户密码,然后对客户标识码和客户密码使用特定软 件加密算法,生成系统子密码,将该密码存储在系统管理卡上,传递给智能卡读写设备,由 系统子密码再加入智能卡序列号通过加密算法生成最终的智能卡读写访问密码。用户在发 卡时将访问密码改写,智能卡读写设备通过加密算法计算出访问密码,向智能卡发送访问 密码,智能卡核对两者密码相同时才允许读写卡内信息。该客户的所有子系统应用均采用 同一个访问密码,访问密码的一般加密变换函数为访问密码=加密算法(客户标识码,客户密码,智能卡序列号)对于现有的智能卡加密方法,存在如下技术问题由于现有智能卡加密算法只对 客户标识、客户密码以及智能卡序列号进行变换,能保证不同的智能卡使用的是不同的密 码。但该客户的不同子系统应用时的所有密码都是同一个访问密码,在集成系统使用时,一 旦某一个子系统密码被意外或恶意泄露,则所有的系统密码均被破译,可能造成其他子系 统的信息也被泄露或恶意篡改,甚至导致整个系统崩溃。

发明内容
本发明的主要目的在于针对现有技术缺陷,提供一种智能卡加密方法和系统,旨 在提高智能卡使用的安全性。本发明提供一种智能卡加密方法,该智能卡设有序列号,所述加密方法包括以下步骤根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统管理卡中;规划智能卡各应用子系统,为各应用子系统分配对应的子系统编码并存储到系统 管理卡中;根据系统密码和不同的子系统编码,利用加密算法生成对应的子系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码,利用加密 算法生成不同的访问密码并分别存储到智能卡中。优选地,所述根根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统管理卡中的步骤中包括将用于表征客户身份的客户标识码存储到系统管理卡中;根据客户标识码和客户自行定义的客户密码,利用加密算法生成系统密码,由发 卡器将系统密码写入到系统管理卡中。优选地,所述根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码,利用加密算法生成不同的访问密码并分别存储到智能卡中的步骤中包括通过智能卡管理软件读取各系统子卡中的子系统操作密码、子系统编码和智能卡 的序列号,利用加密算法生成子系统访问密码,并由发卡器将该访问密码写入到智能卡对 应的密码数据区中。优选地,所述加密算法包括所述加密算法包括DES、AES、3DES或RSA加密算法。本发明还提供一种智能卡,包括序列号和复数个应用子系统,其中所述应用子系 统具有对应的访问密码。优选地,所述访问密码由子系统操作密码、子系统编码和智能卡的出厂序列号利 用加密算法生成,其中,所述子系统操作密码由系统密码和子系统编码利用加密算法生成, 所述系统密码由客户标识码和客户自行定义的客户密码利用加密算法生成;所述加密算法 包括DES、AES、3DES或RSA加密算法。本发明还提供一种智能卡加密系统,用于对智能卡中各应用子系统进行加密,该 智能卡加密系统包括系统管理卡,用于存储表征客户身份的客户标识码;第一加密装置,根据客户标识码、客户密码,利用加密算法生成系统密码并存储到 系统管理卡中;子系统编码装置,规划智能卡各应用子系统,为各应用子系统分配对应的子系统 编码并存储到系统管理卡中;第二加密装置,根据系统密码和不同的子系统编码,利用加密算法生成对应的子 系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;第三加密装置,根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统 编码,利用加密算法生成不同的访问密码并分别存储到智能卡中。优选地,所述第一加密装置包括输入模块,将用于表征客户身份的客户标识码存储到系统管理卡中;加密模块,根据客户标识码和客户自行定义的客户密码,利用加密算法生成系统 密码,由发卡器将系统密码写入到系统管理卡中。优选地,所述加密算法包括DES、AES、3DES或RSA加密算法。由上可知,采用本发明上述技术方案,可对每一张智能卡的每一个子系统应用都 提供一个唯一密码,不仅可保障在同一系统不同应用中的智能卡和机具不能混用,还可保 障即使某张智能卡甚至某个子系统密码被意外泄露或恶意破译,其他子系统仍然能够正常 使用;并且信息由管理软件加密后存储在机具中,即使是某个子系统应用开发商也只能获 取到自己系统的密码,无法得知其他子系统的密码,提高了智能卡使用的安全性。


图1是本发明的一个实施方式中智能卡加密方法的流程图;图2是上述实施方式中根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统管理卡中的流程图;图3是本发明的另一个实施方式中智能卡加密方法的流程图;图4是图3所示实施方式的一个实施例中智能卡访问密码的应用流程图;图5是本发明的一个实施方式中对智能卡进行读写的方法流程图;图6是上述实施方式中智能卡加密及应用详细流程图;图7是本发明的一个实施方式中智能卡加密系统的结构示意图;图8是图7所示实施方式中第一加密装置的结构示意图。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。
具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。图1为本发明的一个实施方式中智能卡加密方法的流程图。该方法流程包括以下 步骤步骤S10,根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统 管理卡中;在一实施例中,可通过智能卡应用系统开发商为每个特定的客户定义一个客户 标识码,并由发卡器写入到系统管理卡中。当客户安装智能卡应用系统时,再由客户自己定 义一组客户密码,可通过智能卡管理软件对客户标识码和客户密码使用特定软件加密算法 (如3DES加密算法),得出该客户的系统密码,并由发卡器将系统密码添加写入系统管理卡 中。由于客户密码为客户自行定义,保证了自己使用的智能卡具有唯一识别性,即使开发商 为不同客户定义了相同的客户标识码,该智能卡系统的标识也是唯一的,不会被开发商或 其他不法分子知晓。系统密码的一般加密变换函数为系统密码=加密算法(客户标识码,客户密码)步骤S20,规划智能卡各应用子系统,为各应用子系统分配对应的子系统编码并存 储到系统管理卡中;在一实施例中,客户可将智能卡分成多个应用子系统。在规划应用子系 统时,可利用管理软件为各个应用子系统分配唯一的子系统编码。步骤S30,根据系统密码和不同的子系统编码,利用加密算法生成对应的子系统操作 密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;上述子系统编码和系统 密码可通过特定软件加密算法(例如DES、3DES加密算法等)计算得出子系统操作密码,并由发 卡器将该子系统操作密码写入到不同的系统子卡中,并将子系统编码也存储在该卡中。子系统操作密码的一般加密变换函数为子系统操作密码=加密算法(操作密码,子系统编码)步骤S40,根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码, 利用加密算法生成不同的访问密码并分别存储到智能卡中。客户发行新智能卡时,智能卡 管理软件对智能卡的不同子应用系统,通过提取各系统子卡中的子系统操作密码、子系统编码和表征智能卡唯一性的卡序列号,使用特定软件加密算法(如RSA加密算法)得出该 智能卡某一应用系统的访问密码,并由发卡器将该访问密码分别写入到该智能卡的密码数 据区中。该访问密码与该卡的这一应用子系统唯一对应,且只存储在该卡中。访问密码的 一般加密变换函数为访问密码=加密算法(子系统操作密码,子系统编码,卡序列号)由于各子系统编码具有唯一性,并且客户标识、客户密码由不同的终端设置,而智 能卡的序列号也具有唯一性,因而,根据三者动态生成的访问密码具有极高的保密性。客户启用智能卡应用系统的机具时,先用系统管理卡传递子系统操作密码和子系 统应用编码到智能卡读写机具中,所有智能卡读写机具中也存储该子系统对应的访问密码 加密算法。智能卡读写机具读写智能卡时,先获取智能卡的序列号与由系统子卡传递的子 系统操作密码以及子系统应用编号,使用访问密码加密算法动态生成访问密码,只有该访 问密码与该智能卡中对应子系统的唯一访问密码相符时,智能卡才允许继续读写子系统内 的信息,否则拒绝读写,从而达到保证智能卡各应用系统信息安全的目的。如图2所示,上述步骤SlO中包括步骤S11,将用于表征客户身份的客户标识码存储到系统管理卡中;在一实施例 中,可通过键盘将客户标识码输入到系统管理卡中,系统管理卡可分成多个扇区或文件,可 存储多个信息。步骤S12,根据客户标识码和客户自行定义的客户密码,利用加密算法生成系统密 码,由发卡器将系统密码写入到系统管理卡中。该加密算法可以是DES、AES、RAS或3DES等 加密算法。发卡器的结构和原理为本领域技术人员所周知,在此不作赘述。为了更好地说明图3示出了上述实施方式的一个实施例中智能卡加密方法的详 细流程,其包括以下步骤步骤S100,客户用键盘向管理软件输入客户密码USER_PW0 ;在一实施例中,客户 密码USER_PW0可由客户在安装智能卡应用系统时自行定义。由客户自行定义可防止他人 知晓。步骤S200,管理软件用3DES算法生成客户密码的密文USER_PW1 ;在一实施例中, 还可通过DES、AES等加密算法生成客户密码的密文USER_PW1。步骤S300,管理软件读取系统管理卡上的客户标识码USER_N0 ;可由智能卡应用 系统开发商为每个特定的客户定义一个客户标识码USER_N0。步骤S400,管理软件用3DES算法计算生成系统密码USER_PW2 ;系统密码USER_ PW2是利用加密算法(例如DES、3DES、AES或RSA等)根据上述客户密码USER_PW0和客户 标识码USER_N0计算得出的供管理软件内部使用的操作密码。由于开发商为用户定义的客 户标识码USER_N0是唯一的,保证了该智能卡与其它智能卡的区别性,保证了该智能卡与 其它智能卡所携带的信息量的不同,其它智能卡开发商不可知晓该智能卡的USER_N0。而客 户密码USER_PW0是用户自定义的,重合的几率极小,因此,根据客户密码USER_PW0和客户 标识码USER_N0所生成的系统密码USER_PW2具有极高的保密性。步骤S500,管理软件根据用户规划的系统应用分配子系统编码SYS_N0 ;在一实施例中,可根据用户的应用,将智能卡的系统进划分为多个子系统,并将多个子系统进行编号。
步骤S600,管理软件用3DES算法生成子系统操作密码SYS0P_PW ;在一实施例中, 可根据上述子系统编码SYS_N0和系统密码USER_PW2,利用3DES、DES、AES或RAS加密算法 生成子系统操作密码SYS0P_PW。由于上述子系统编码SYS_N0具有唯一性,并且系统密码 USER_PW2的保密性,使得对每一张智能卡的每一个子系统的应用都可以对应一个唯一密 码。步骤S700,管理软件将子系统操作密码SYS0P_PW和子系统应用编号SYS_N0写入系统 子卡;上述子系统可以为多个,对应地,系统子卡也为多个。
步骤S800,管理软件根据智能卡序列号和各系统子卡中的子系统操作密码 SYS0P_PW和子系统编码SYS_N0利用加密算法生成访问密码,并分别存储到智能卡中。在一 实施例中,可根据客户对智能卡子系统的分类,从相应的系统子卡中提取子系统操作密码 SYS0P_Pff和子系统编码SYS_N0,利用上述算法中的任一种,计算得出子系统的访问密码。 由于子系统编码SYS_N0的唯一性和子系统操作密码SYS0P_PW的保密性,可使得各应用子 系统的访问密码具有保密性和区别性。从而不仅保证在同一系统不同应用中的智能卡和机 具不能混用,即使某张智能卡甚至某个子系统密码被意外泄露或恶意破译,其他子系统仍 然能够正常使用。信息由软件加密后存储在机具中,即使是某个子系统应用开发商能够也 只能获取到自己系统的密码,无法得知其他子系统的密码,可防止恶意竞争以及内部人员 作弊。上述实施例中,系统管理卡只保存客户标识、客户密码以及系统密码,并不直接传 递各子系统的访问密码,因此,即便获得了系统密码,也不能获取子系统的访问密码。子系 统访问密码的生成需要系统管理卡传递系统密码,再通过系统子卡中的子系统操作密码和 子系统编码,利用加密算法计算得出,因而是动态生成的,即便是用户自己也不能获取该访 问密码,因而各子系统的保密性极高。参照图4,上述访问密码生成后,还可通过管理软件进行修改,将该卡的这一应用 出厂时的访问密码改写成新生成的访问密码。参照上述实施例,用户卡的访问密码是动态 生成并经过修改后重新写到智能卡中的,并不保留在管理软件的数据区,即使跟踪管理软 件,也不能获取智能卡的访问密码。参照图5,上述智能卡的访问密码生成后,可通过如下步骤进行读写步骤Al,机具读智能卡出厂序列号CARD_ID ;机具为对卡进行读写的设备。在对卡 进行读写前,可将上述子系统操作密码SYS0P_PW和子系统编码SYS_N0以及上述加密算法 输入到机具中,将卡插入机具时,可通过机具首先读出卡的序列号CARD_ID ;步骤Bi,机具加密算法生成访问密码;例如,机具通过上述加密算法,根据子系统 操作密码SYS0P_PW、子系统编码SYS_N0以及智能卡序列号生成访问密码。步骤Cl,机具软件向智能卡发送访问密码。若机具所生成的访问密码与智能卡中 对应子系统的访问密码一致,则允许访问,若不一致,则智能卡拒绝机具访问。上述机具中的访问密码只有实时读取智能卡的序列号,再根据系统子卡中的子系 统操作密码、子系统编码才能生成访问密码,而智能卡的序列号固化在卡片中,因此该访问 密码是根据各系统子卡中的子系统操作密码、子系统编码以及出厂序列号动态生成的,并 且,在机具的数据系统中不存储用户的访问密码,因而各子系统在应用时具有极高的保密 性。参照图6,上述智能卡各子系统一应用一密方法的具体使用步骤是
开发商为每一个客户智能卡系统定义一个唯一的客户标识码,并将其写入到系统
管理卡中。客户安装智能卡系统时通过管理软件自己定义客户密码,管理软件用加密算法生 成客户的操作密码,并添加写入到客户的系统管理卡中。客户规划各个子系统应用,为每个子系统分配唯一的子系统编码,编码信息存入 系统管理卡中。管理软件用加密算法生成子系统操作密码,将子系统操作密码写入系统子 卡中。客户发智能卡时,管理软件读取客户的子系统操作密码、子系统编码和智能卡的 出厂序列号,用加密算法生成智能卡某一子应用的唯一访问密码,并将该卡的这一应用出 厂时的访问密码改写成新生成的访问密码。客户用系统子卡将子系统操作密码和子系统编码传入各智能卡机具。刷智能卡时,机具读取该卡的出厂序列号。机具根据子系统操作密码、子系统编码和智能卡的出厂序列号,用加密算法生成 该智能卡该应用的访问密码。将访问密码发送到智能卡。卡片核对该访问密码是否相符。若相符则允许机具进一步读写智能卡卡内数据。不相符,则拒绝机具进一步读写智能卡卡内数据。图7示出了本发明的一个实施方式中用以实现上述加密方法的智能卡加密系统 的结构。该智能卡加密系统包括系统管理卡10,用于存储表征客户身份的客户标识码;第一加密装置20,根据客户标识码、客户密码,利用加密算法生成系统密码并存储 到系统管理卡10中;在一实施例中,客户标识码由智能卡系统开发商针对不同的客户区别 设置,而客户密码由客户卡片管理者自行设定并存储在系统管理卡10中。第一加密装置10 可存储有多种加密算法,例如,DES、AES、3DES和/或RAS等。在一实施例中,系统密码的一 般加密变换函数为系统密码=加密算法(客户标识码,客户密码)子系统编码装置30,用于规划智能卡各应用子系统,为各应用子系统分配对应的 子系统编码并存储到系统管理卡中;在一实施例中,若一张智能卡具有多个应用子系统,则 可通过子系统编码装置30将各子系统进行区分,具体通过对各子系统进行编码的方式将 各子系统区分。第二加密装置40,用于根据系统密码和不同的子系统编码,利用加密算法生成对 应的子系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;上 述智能卡加密系统还可还可包括多个系统子卡,用于存储子系统编码和子系统操作密码。 在一实施例中,第二加密装置40也存储有上述各加密算法,可计算得出子系统操作密码, 并由发卡器将该子系统操作密码写入到不同的系统子卡中,并将子系统编码也存储在该卡 中。发卡器作为本系统的一个特征,其结构和原理为本领域技术人员所周知,在此不作赘 述。子系统操作密码的一般加密变换函数为子系统操作密码=加密算法(操作密码,子系统编码)
第三加密装置50,用于根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码,利用加密算法生成不同的访问密码并分别存储到智能卡中;在一实施例中,第 三加密装置50也可存储有DES、AES、3DES和/或RAS等加密算法,访问密码的一般加密变 换函数为访问密码=加密算法(子系统操作密码,子系统编码,卡序列号)上述实施例中,系统管理卡只保存客户标识、客户密码以及系统密码,并不直接传 递各子系统的访问密码,因此,即便获得了系统密码,也不能获取子系统的访问密码。子系 统访问密码的生成需要系统管理卡传递系统密码,再通过系统子卡中的子系统操作密码和 子系统编码,利用加密算法计算得出,因而是动态生成的,即便是用户自己也不能获取该访 问密码,因而各子系统的保密性极高。上述访问密码生成后,还可通过管理软件进行修改,将该卡的这一应用出厂时的 访问密码改写成新生成的访问密码。参照上述实施例,用户卡的访问密码是动态生成并经 过修改后重新写到智能卡中的,并不保留在管理软件的数据区,即使跟踪管理软件,也不能 获取智能卡的访问密码。客户启用智能卡应用系统的机具时,先用系统管理卡传递子系统操作密码和子系 统应用编码到智能卡读写机具中,所有智能卡读写机具中也存储该子系统对应的访问密码 加密算法。智能卡读写机具读写智能卡时,先获取智能卡的序列号与由系统子卡传递的子 系统操作密码以及子系统应用编号,使用访问密码加密算法动态生成访问密码,只有该访 问密码与该智能卡中对应子系统的唯一访问密码相符时,智能卡才允许继续读写子系统内 的信息,否则拒绝读写,从而达到保证智能卡各应用系统信息安全的目的。如图8所示,上述第一加密装置20可包括输入装置21和加密模块22。在一实施 例中,输入装置21可以是键盘等,加密模块22设有加密算法,可根据客户标识和客户密码 进行计算,得出系统密码。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种智能卡加密方法,所述智能卡设有序列号,其特征在于,所述方法包括以下步骤根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统管理卡中;规划智能卡各应用子系统,为各应用子系统分配对应的子系统编码并存储到系统管理卡中;根据系统密码和不同的子系统编码,利用加密算法生成对应的子系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码,利用加密算法生成不同的访问密码并分别存储到智能卡中。
2.根据权利要求1所述的智能卡加密方法,其特征在于,所述根根据客户标识码、客户 密码,利用加密算法生成系统密码并存储到系统管理卡中的步骤中包括将用于表征客户身份的客户标识码存储到系统管理卡中;根据客户标识码和客户自行定义的客户密码,利用加密算法生成系统密码,由发卡器 将系统密码写入到系统管理卡中。
3.根据权利要求1所述的智能卡加密方法,其特征在于,所述根据智能卡序列号以及 各系统子卡中的子系统操作密码和子系统编码,利用加密算法生成不同的访问密码并分别 存储到智能卡中的步骤中包括通过智能卡管理软件读取各系统子卡中的子系统操作密码、子系统编码和智能卡的序 列号,利用加密算法生成子系统访问密码,并由发卡器将该访问密码写入到智能卡对应的 密码数据区中。
4.根据权利要求1至3中任意一项所述的智能卡加密方法,其特征在于,所述加密算法 包括DES、AES、3DES或RSA加密算法。
5.一种智能卡,包括序列号和复数个应用子系统,其特征在于,所述应用子系统具有对 应的访问密码。
6.根据权利要求5所述的智能卡,其特征在于,所述访问密码由子系统操作密码、子系 统编码和智能卡的出厂序列号利用加密算法生成,其中,所述子系统操作密码由系统密码 和子系统编码利用加密算法生成,所述系统密码由客户标识码和客户自行定义的客户密码 利用加密算法生成;所述加密算法包括DES、AES、3DES或RSA加密算法。
7.一种智能卡加密系统,用于对智能卡中各应用子系统进行加密,其特征在于,包括系统管理卡,用于存储表征客户身份的客户标识码;第一加密装置,用于根据客户标识码、客户密码,利用加密算法生成系统密码并存储到 系统管理卡中;子系统编码装置,用于规划智能卡各应用子系统,为各应用子系统分配对应的子系统 编码并存储到系统管理卡中;第二加密装置,用于根据系统密码和不同的子系统编码,利用加密算法生成对应的子 系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;第三加密装置,用于根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统 编码,利用加密算法生成不同的访问密码并分别存储到智能卡中。
8.根据权利要求7所述的智能卡加密系统,其特征在于,所述第一加密装置包括输入模块,将用于表征客户身份的客户标识码存储到系统管理卡中; 加密模块,根据客户标识码和客户自行定义的客户密码,利用加密算法生成系统密码, 由发卡器将系统密码写入到系统管理卡中。
9.根据权利要求7或8所述的智能卡加密系统,其特征在于,所述加密算法包括DES、 AES、3DES或RSA加密算法。
全文摘要
本发明涉及智能卡加密和解密技术领域,提供了一种智能卡加密方法。该智能卡加密方法包括以下步骤根据客户标识码、客户密码,利用加密算法生成系统密码并存储到系统管理卡中;规划智能卡各应用子系统,为各应用子系统分配对应的子系统编码并存储到系统管理卡中;根据系统密码和不同的子系统编码,利用加密算法生成对应的子系统操作密码,并将各子系统操作密码和子系统编码存储到不同的系统子卡中;根据智能卡序列号以及各系统子卡中的子系统操作密码和子系统编码,利用加密算法生成不同的访问密码并分别存储到智能卡中。本发明还提供了一种具有多个应用子系统的智能卡和一种实现上述加密方法的系统。利用本发明,提高了智能卡应用的安全性。
文档编号G06K19/073GK101840526SQ20101014971
公开日2010年9月22日 申请日期2010年4月19日 优先权日2010年4月19日
发明者张少华, 杨雅婧, 程朋胜 申请人:深圳达实智能股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1