加密方法、加密卡、终端设备和机卡互锁装置
技术领域
本发明涉及通信领域,尤其涉及一种加密方法、加密卡、终端设备和机卡互锁装置。
背景技术
目前,一些运营商为了推广业务,将卡片和终端设备捆绑销售,且卡片和终端设备只能捆绑在一起使用,并且这种捆绑的卡片和终端设备只能在指定的区域内使用。为实现卡片和终端设备捆绑的目的,机卡互锁技术应运而生。
机卡互锁技术是指卡片通过特定的SIM卡应用工具包(SIM ToolsKit,简称STK)/UIM卡应用工具包(UIM Tools Kit,简称UTK)处理流程和相关功能,在开机后实现对终端设备的认证,并禁止未通过认证的卡片在普通终端设备中的使用。现有机卡互锁技术在对随机数加密和解密时,使用同一个密钥,且卡片在加密和解密时使用的算法通常为三重DES加密算法(Triple Data Encryption Standard,简称3DES)。由于3DES算法相对简单,用户可以通过在终端设备和卡片的接口上截取交互数据的方法,抓取交互信息,使用破解算法得到密钥,因此现有的机卡互锁技术安全性较低。此外,由于卡商、终端厂商、电信运营商都知道密钥,所以密钥容易泄露。密钥被破解或者泄露之后,用户可以制作以该密钥为基础的卡贴,将卡贴贴在卡片上,然后将该卡片插入普通手机,开机的时候,卡贴模拟终端设备与卡片进行认证的过程,以使认证通过,从而使卡片脱离了捆绑销售的终端设备,最终导致捆绑失败。
发明内容
本发明的实施例所要解决的技术问题在于提供一种加密方法、加密卡、终端设备和机卡互锁装置,能够有效保护加密数据的安全,从而提高了卡片和终端设备捆绑的可靠性。
为解决上述技术问题,本发明的实施例采用如下技术方案:
一种加密卡,包括:
加密单元,用于根据来自终端设备的认证消息的内容选定与所述终端设备相匹配的第一公钥,然后使用所述第一公钥加密第一随机数,得到第一密文数据,所述认证消息的内容包括终端设备的厂商代码、密钥版本号;
第一发送单元,用于将所述第一密文数据发送至终端设备;
第一接收单元,用于接收来自所述终端设备的第一比较数,所述第一比较数为终端设备使用第一私钥解密所述第一密文数据,得到第二随机数,然后将所述第二随机数进行加密运算所得到的数据,所述第一私钥与所述第一公钥互为一对密钥;
第一运算单元,用于将所述第一随机数进行所述加密运算,得到第二比较数。
一种终端设备,包括:
第二发送单元,用于发送认证消息至加密卡,所述认证消息的内容包括终端设备的厂商代码、密钥版本号;
第二接收单元,用于接收来自加密卡的第一密文数据,所述第一密文数据为加密卡根据所述认证消息的内容选定第一公钥,然后使用所述第一公钥加密所述加密卡生成的第一随机数所得到的数据;
解密单元,用于使用第一私钥解密所述第一密文数据,得到第二随机数,所述第一私钥与所述第一公钥互为一对密钥;
第二运算单元,用于将所述第二随机数进行加密运算,得到第一比较数。
一种机卡互锁装置,包括加密卡和终端设备,
所述加密卡包括:
加密单元,用于根据来自终端设备的认证消息的内容选定与所述终端设备相匹配的第一公钥,然后使用所述第一公钥加密第一随机数,得到第一密文数据;
第一发送单元,用于将所述第一密文数据发送至终端设备;
第一接收单元,用于接收来自所述终端设备的第一比较数,所述第一比较数为终端设备使用第一私钥解密所述第一密文数据,得到第二随机数,然后将所述第二随机数进行加密运算所得到的数据,所述第一私钥与所述第一公钥互为一对密钥;
第一运算单元,用于将所述第一随机数进行所述加密运算,得到第二比较数,
所述终端设备包括:
第二发送单元,用于发送认证消息至加密卡,所述认证消息的内容包括终端设备的厂商代码、密钥版本号;
第二接收单元,用于接收来自加密卡的第一密文数据,所述第一密文数据为加密卡根据所述认证消息的内容选定第一公钥,然后使用所述第一公钥加密所述加密卡生成的第一随机数所得到的数据;
解密单元,用于使用第一私钥解密所述第一密文数据,得到第二随机数,所述第一私钥与所述第一公钥互为一对密钥;
第二运算单元,用于将所述第二随机数进行加密运算,得到第一比较数。
本发明实施例的加密卡、终端设备和机卡互锁装置,使用互为一对密钥第一公钥和第一私钥,分别加密第一随机数和解密第一密文数据,由于终端设备所使用的第一私钥只有制造终端设备的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此能最大程度的防止不法分子破解加密、解密方法得到密钥,从而有效保护加密数据的安全,提高了卡片和终端设备捆绑的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中加密卡的示意图之一;
图2为本发明实施例中加密卡的示意图之二;
图3为本发明实施例中终端设备的示意图;
图4为本发明实施例中加密卡和终端设备的信令交互示意图;
图5为本发明实施例中机卡互锁装置的示意图。
附图标记说明:
1、加密卡 10、随机数生成单元 11、加密单元12、第一发送单元 13、第一接收单元 14、第一运算单元15、判决单元 2、终端设备 21、第二发送单元 22、第二接收单元 23、解密单元 24、第二运算单元
具体实施方式
本发明实施例提供一种加密卡、终端设备和机卡互锁装置,能够有效保护加密数据的安全,从而提高了卡片和终端设备捆绑的可靠性。
下面结合附图对本发明实施例做详细描述。
实施例一
本实施例提供一种加密卡,如图1所示,包括:
加密单元11,用于根据来自终端设备的认证消息的内容选定与所述终端设备相匹配的第一公钥,然后使用所述第一公钥加密第一随机数,得到第一密文数据,所述认证消息的内容包括终端设备的厂商代码、密钥版本号;
第一发送单元12,用于将所述第一密文数据发送至终端设备;
第一接收单元13,用于接收来自所述终端设备的第一比较数,所述第一比较数为终端设备使用第一私钥解密所述第一密文数据,得到第二随机数,然后将所述第二随机数进行加密运算所得到的数据,所述第一私钥与所述第一公钥互为一对密钥;
第一运算单元14,用于将所述第一随机数进行所述加密运算,得到第二比较数。
此外,本实施例中第一接收单元13还用于:接收来自终端设备的认证消息,所述认证消息的内容包括终端设备的厂商代码、密钥版本号。
如图4所示,终端设备开机并进行初始化完成后,发送认证消息至加密卡,其中,认证消息的内容包括终端设备的厂商代码、密钥版本号,本实施例中的终端设备可以是手机终端或者固定电话终端等设备;终端设备向加密卡发送的认证消息可以是STK/UTK指令集中的terminal profile指令消息。
加密卡的第一接收单元13接收终端设备发送来的认证消息,进一步的,如图2所示,本实施例的加密卡1还包括随机数生成单元10,用于生成所述第一随机数,其中,第一随机数的长度为20字节。加密卡1中的加密单元11根据终端设备的厂商代码、密钥版本号从多组公钥中选定与终端设备的厂商代码、密钥版本号相匹配的第一公钥,并使用第一公钥加密第一随机数,得到第一密文数据。
然后,加密卡1的第一发送单元12将第一密文数据发送至终端设备。
终端设备接收到第一密文数据后,使用第一私钥解密第一密文数据,得到第二随机数,然后将第二随机数进行加密运算,得到第一比较数。需要说明的是,终端设备中的第一私钥与加密卡1中的第一公钥互为一对密钥,也就是说,使用第一公钥加密的随机数只有第一私钥能够解密。本实施例中使用第一公钥加密第一随机数的加密算法,以及使用第一私钥解密第一密文数据的解密算法均为非对称算法。
由于第一私钥只有制造终端设备的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此本实施例的加密卡1能最大程度的防止不法分子破解加密、解密方法得到密钥。此外,由于私钥只有各个终端设备的制造厂商自己知道,如果市场上出现盗卡事件,很容易根据加密卡与终端设备的交互数据分析出是哪个厂商泄密,因此本实施例的加密卡能大大减少扰乱市场秩序的行为。
本实施例中的加密运算可以是中国人民银行(People’s Bank ofchina,简称PBOC)运算。终端设备将第二随机数进行PBOC运算后,得到第一比较数。然后,终端设备将第一比较数发送至加密卡1。
加密卡1的第一接收模块13接收第一比较数,并通过第一运算模块14将随机数生成单元10产生的第一随机数也进行PBOC运算,得到第二比较数。
如图2所述,本实施例的加密卡1还可进一步包括判决单元15,用于比较第二比较数和来自终端设备的第一比较数,若第二比较数和第一比较数相同,则说明加密卡1和终端设备匹配正确,认证通过;若所述第二比较数和第一比较数不同,则说明加密卡1和终端设备出现了错误的匹配,认证不通过。
在判决单元15进行判断后,加密卡1还可进一步向终端设备返回判断结果,终端设备根据判断结果在屏幕上显示相应的文字,提示用户认证是否通过。认证通过后,用户可继续登网使用;认证不通过,加密卡1锁卡,同时终端设备锁机,禁止用户使用。
本实施例的加密卡,使用第一公钥加密第一随机数,终端设备使用与第一公钥互为一对密钥的第一私钥解密第一密文数据,由于终端设备所使用的第一私钥只有制造终端设备的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此能最大程度的防止不法分子破解加密、解密方法得到密钥,从而有效保护加密数据的安全,提高了卡片和终端设备捆绑的可靠性。
实施例二
本实施例提供一种终端设备2,如图3所示,包括:第二发送单元21、第二接收单元22、解密单元23和第二运算单元24,其中,
第二发送单元21,用于发送认证消息至加密卡,所述认证消息的内容包括终端设备的厂商代码、密钥版本号;
第二接收单元22,用于接收来自加密卡的第一密文数据,所述第一密文数据为加密卡根据所述认证消息的内容选定第一公钥,然后使用所述第一公钥加密所述加密卡生成的第一随机数所得到的数据;
解密单元23,用于使用第一私钥解密所述第一密文数据,得到第二随机数,所述第一私钥与所述第一公钥互为一对密钥;
第二运算单元24,用于将所述第二随机数进行加密运算,得到第一比较数。
此外,第二发送单元21还用于将所述第一比较数发送至加密卡;所述第二接收单元22还用于接收来自加密卡的第二比较数,所述第二比较数为加密卡将所述第一随机数进行所述加密运算得到的数据。
如图4所示,终端设备2开机并初始化完成后,通过第二发送单元21发送认证消息至加密卡,其中,认证消息的内容包括终端设备的厂商代码、密钥版本号,本实施例中的终端设备2可以是手机终端或者固定电话终端等设备;终端设备2向加密卡发送的认证消息可以是STK/UTK指令集中的terminal profile指令消息。
加密卡接收终端设备2发送来的认证消息,然后,加密卡生成第一随机数,其中,第一随机数的长度为20字节。加密卡中的加密单元根据终端设备的厂商代码、密钥版本号从多组公钥中选定与终端设备的厂商代码、密钥版本号相匹配的第一公钥,并使用第一公钥加密第一随机数,得到第一密文数据。
然后,加密卡将第一密文数据发送至终端设备。
终端设备2通过第二接收模块22接收到第一密文数据后,通过解密单元23使用第一私钥解密第一密文数据,得到第二随机数,然后通过第二运算单元24将第二随机数进行加密运算,得到第一比较数。需要说明的是,终端设备2中的第一私钥与加密卡中的第一公钥互为一对密钥,也就是说,使用第一公钥加密的随机数只有第一私钥能够解密。本实施例中使用第一公钥加密第一随机数的加密算法,以及使用第一私钥解密第一密文数据的解密算法均为非对称算法。
由于第一私钥只有制造终端设备2的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此本实施例的加密卡能最大程度的防止不法分子破解加密、解密方法得到密钥。此外,由于私钥只有各个终端设备的制造厂商自己知道,如果市场上出现盗卡事件,很容易根据加密卡与终端设备的交互数据分析出是哪个厂商泄密,从而大大减少扰乱市场秩序的行为。
本实施例中的加密运算可以是中国人民银行(People’s Bank ofchina,简称PBOC)运算。终端设备2通过第二运算模块24将第二随机数进行PBOC运算后,得到第一比较数。然后,终端设备2通过第二发送单元21将第一比较数发送至加密卡。
加密卡接收第一比较数,并将随机数生成模块产生的第一随机数也进行PBOC运算,得到第二比较数。
本实施例中的加密卡还可进一步包括判决单元,用于比较来自终端设备的第一比较数和第二比较数,若第一比较数和第二比较数相同,则说明加密卡和终端设备2匹配正确,认证通过;若第二比较数和第一比较数不同,则说明加密卡和终端设备2出现了错误的匹配,认证不通过。
在判决单元进行判断后,加密卡还可进一步向终端设备2返回判断结果,终端设备2根据判断结果在屏幕上显示相应的文字,提示用户认证是否通过。认证通过后,用户可继续登网使用;认证不通过,加密卡锁卡同时终端设备2锁机,禁止用户使用。
本实施例的终端设备,使用第一私钥解密第一密文数据,加密卡使用与第一私钥互为一对密钥的第一公钥加密第一随机数,由于终端设备所使用的第一私钥只有制造终端设备的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此能最大程度的防止不法分子破解加密、解密方法得到密钥,从而有效保护加密数据的安全,提高了卡片和终端设备捆绑的可靠性。
实施例三
本实施例提供一种机卡互锁装置,如图5所示,包括加密卡1和终端设备2,其中,加密卡1包括:
加密单元,用于根据来自终端设备2的认证消息的内容选定与所述终端设备2相匹配的第一公钥,然后使用所述第一公钥加密第一随机数,得到第一密文数据,所述认证消息的内容包括终端设备2的厂商代码、密钥版本号;
第一发送单元,用于将所述第一密文数据发送至终端设备2;
第一接收单元,用于接收来自所述终端设备2的第一比较数,所述第一比较数为终端设备2使用第一私钥解密所述第一密文数据,得到第二随机数,然后将所述第二随机数进行加密运算所得到的数据,所述第一私钥与所述第一公钥互为一对密钥;
第一运算单元,用于将所述第一随机数进行所述加密运算,得到第二比较数,
终端设备2包括:
第二发送单元,用于发送认证消息至加密卡1,所述认证消息的内容包括终端设备2的厂商代码、密钥版本号;
第二接收单元,用于接收来自加密卡1的第一密文数据,所述第一密文数据为加密卡1根据所述认证消息的内容选定第一公钥,然后使用所述第一公钥加密所述加密卡1生成的第一随机数所得到的数据;
解密单元,用于使用第一私钥解密所述第一密文数据,得到第二随机数,所述第一私钥与所述第一公钥互为一对密钥;
第二运算单元,用于将所述第二随机数进行加密运算,得到第一比较数。
本实施例中,使用所述第一公钥加密第一随机数的加密算法,以及所述使用第一私钥解密所述第一密文数据的解密算法均为非对称算法。
如图4所示,加密卡1通过第一接收模块接收终端设备2发送来的认证消息后,再通过加密卡1的随机数生成模块生成第一随机数,其中,第一随机数的长度为20字节。加密卡1中的加密单元根据终端设备2的厂商代码、密钥版本号从多组公钥中选定与终端设备2的厂商代码、密钥版本号相匹配的第一公钥,并使用第一公钥加密第一随机数,得到第一密文数据。
然后,加密卡1通过第一发送模块将第一密文数据发送至终端设备2。
终端设备2通过第二接收模块接收到第一密文数据后,通过解密单元使用第一私钥解密第一密文数据,得到第二随机数,然后通过第二运算单元将第二随机数进行加密运算,得到第一比较数。需要说明的是,终端设备2中的第一私钥与加密卡1中的第一公钥互为一对密钥,即使用第一公钥加密的随机数只有第一私钥能够解密。本实施例中使用第一公钥加密第一随机数的加密算法,以及使用第一私钥解密第一密文数据的解密算法均为非对称算法。
由于第一私钥只有制造终端设备2的厂商知道,制造加密卡1的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备2的第一私钥可以解密,因此本实施例的加密卡能最大程度的防止不法分子破解加密、解密方法得到密钥。此外,由于私钥只有各个终端设备2的制造厂商自己知道,如果市场上出现盗卡事件,很容易根据加密卡1与终端设备2的交互数据分析出是哪个厂商泄密,从而大大减少扰乱市场秩序的行为。
本实施例的加密卡1还可进一步包括判决单元,用于比较第二比较数和来自终端设备2的第一比较数,若第二比较数和第一比较数相同,则说明加密卡1和终端设备2匹配正确,认证通过;若所述第二比较数和第一比较数不同,则说明加密卡1和终端设备2出现了错误的匹配,认证不通过。
在判决单元进行判断后,加密卡1还可进一步向终端设备2返回判断结果,终端设备2根据判断结果在屏幕上显示相应的文字,提示用户认证是否通过。认证通过后,用户可继续登网使用;认证不通过,加密卡1锁卡,同时终端设备2锁机,禁止用户使用。
本实施例机卡互锁装置中的加密卡1和终端设备2的工作过程与实施例一、实施例二的类似,再次不再赘述。
本实施例的机卡互锁装置,使用互为一对密钥第一公钥和第一私钥,分别加密第一随机数和解密第一密文数据,由于终端设备所使用的第一私钥只有制造终端设备的厂商知道,制造加密卡的卡商和运营商均不知道,因此能够最大程度的保证第一私钥的保密性;第一密文数据只有终端设备的第一私钥可以解密,因此能最大程度的防止不法分子破解加密、解密方法得到密钥,从而有效保护加密数据的安全,提高了卡片和终端设备捆绑的可靠性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。