一种基于动态配置的数据处理方法及其应用
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于动态配置的数据处理方法。
背景技术
用户身份识别卡,也称为智能卡或SIM卡(Subscriber Identification Module),是手机等智能终端用于客户身份鉴别的必要设置。智能卡能够在电脑芯片上存储数字移动电话客户的信息、加密的密钥和用户的电话簿等内容,可供全球移动通信系统网络客户身份进行鉴别,并对客户通话时的语音信息进行加密。智能卡中存储的数据中最重要的是个人化参数。
一般来说,一张智能卡只对应一套个人化参数,同时在服务器中,也对应该套相同的个人化参数。当智能卡所在的终端发起鉴权的时候,通过读取和验证存储的个人化参数,智能卡和服务器就可以相互鉴别身份,鉴别通过则允许接入通信网络。但是在一些场景中,用户在一个智能卡中预设数据,例如一套个人化参数(以下称为“第一参数”),第一参数的作用是提供一个临时的无线接入通道,通过这个通道去获取数据,例如下载一套新的个人化参数(以下称为“第二参数”),一旦第二参数被下载完毕之后,第一参数将进入休眠状态或者被删除,这时在智能卡中,就存在同时具有两套个人化参数的情形。个人化参数的存储和使用并不是免费的,运营商会收取资源占用费和使用费,因此运营商可以基于处于激活状态的第二参数收取相应的费用例如语音、短信或者数据流量费用,但无法基于处于休眠状态的第一参数收取费用。
为了提高第一参数的复用率,目前采用同一套第一参数做多张智能卡的做法,即多张智能卡使用同一套第一参数登网,只要这些智能卡不同时使用,就不会引发冲突,但一旦同时使用,则处于相互登网冲突状态的智能卡将无法使用,并且会引发网络侧的报警。因此迫切需要一种安全有效的数据处理方案来提高第一参数的复用率。
发明内容
为了解决现有技术的上述问题,本发明提供一种基于动态配置的数据处理方法,用于提高智能卡第一参数的复用率。
为了达到上述目的,本发明采用的主要技术方案包括:
本申请的第一个方面是提供一种基于动态配置的数据处理方法,包括:
生成一随机数;
基于所述随机数确定一IMSI数据;
基于所述被确定的IMSI数据来确定其对应的一Ki值和一OPC值;
基于所述被确定的IMSI数据以及所述Ki值和OPC值,生成个人化参数。
可选的,还包括:由智能卡自动生成该随机数或者由智能卡从外部接收该随机数。
可选的,还包括:所述随机数的位数n的范围1≤n。
可选的,还包括:所述随机数的值r的最大值为10n。
可选的,还包括:
预存一IMSI数据初始值到智能卡中;
根据所述随机数的数值从所述IMSI数据初始值最后一位补全为所述IMSI数据。
可选的,还包括:
预存一个或多个IMSI数据初始值到智能卡中;
基于所述随机数的位数和值在IMSI数据初始值中查找到所述IMSI数据。
可选的,还包括:
查找IMSI数据初始值的后n位;以及
查找IMSI数据初始值的后n位数值为r的IMSI数据。
可选的,还包括:
如果在所述IMSI数据初始值中没有查找到所述后n位数值为r的IMSI数据,则所述智能卡重新生成随机数。
可选的,还包括:
在智能卡中预存n个包含IMSI初始值、Ki值、OPC值的个人化参数初始值;
基于所述被确定的IMSI数据,在所述个人化参数初始值中查找对应的所述Ki值和OPC值。
可选的,还包括:
在智能卡中预存一OPC值的算法以及n个包含IMSI初始值、Ki值的个人化参数初始值;
基于所述被确定的IMSI数据,在所述个人化参数初始值中查找对应的所述Ki值;
基于所述Ki值和所述OPC值的算法计算所述OPC。
可选的,还包括:
将所述Ki值和所述OPC值写入到智能卡中。
本申请的第二个方法是提供一种个人化参数重复率的计算方法,包括:
P=1-∏[(R-I)/R],其中,
P代表个人化参数的重复率;r代表生成的随机数空间;I为自然数,数值范围0≤I≤K(using)-1,K(using)代表同时在线的智能卡数量。
可选地,还包括:
所述K(using)通过以下公式计算获得:
K(using)=K/[T(period)/T(timeslot)],
K代表所述个人化参数能支持的智能卡的数量;T(period)代表所述所有能支持的智能卡的使用周期,单位为分钟;T(timeslot)代表所述个人化参数每次的使用周期,单位为分钟。
本申请的第四个方面是提供一种智能卡,包括:
存储模块,用于存储数据;
处理模块,用于执行上述数据处理方法。
本申请提供的基于动态配置的数据处理方法,通过随机数来确定对应的IMSI值,并基于该确定的IMSI值来确定对应Ki值和OPC值,从而实现个人化参数(即,第一参数)的动态配置,从而提高了第一参数的使用率,同时通过随机数的再生成,有效防止了因为多张智能卡使用同一个第一参数引起的不便。
附图说明
此处的附图被并入说明书中并构成说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请示例性实施例提供的基于动态配置的数据处理方法流程示意图;
图2为本申请示例性实施例提供的智能卡的结构框图;
图3为现有技术普通SIM卡(即,智能卡)的个人化参数的数据结构示意图;
图4为本申请示例性实施例提供的智能卡中个人化参数的数据结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。本申请中的各实施方式既可以单独实施,也可以在不冲突的前提下结合实施。
为了便于描述本发明,作如下说明:
IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码),它是区别移动用户的标志,储存在智能卡中,可用于区别移动用户的有效信息。
Ki(Key Identifier,鉴权密码),它是智能卡与运营商之间加密数据传递的秘钥。
OPC,是由OP和Ki经过一系列算法,运营商可以自定义不同的OPC的计算方法,例如AES加密和异或运算后得到的,这样就确保了在不同智能卡中预置不同的OPC,并且无法通过一张智能卡中预置的OPC反算出运营商的OP。OP(Operator Variant AlgorithmConfiguration Field,运营商根密钥),它是用于智能卡鉴权的重要参数。一般来说,一家运营商只有一个OP密钥,为了避免所有出厂智能卡预置同一个OP所带来的安全风险,目前很多运营商均在智能卡中预置OPC。
实施例1
图1为本申请一示例性实施例提供基于动态配置的数据处理方法的流程示意图,参照图1所示,本实施例提供一种基于动态配置的数据处理方法用于提高第一参数的复用率,该方法包括:
步骤101、生成一随机数。
本实施例中,生成随机数可以包括但不限定于以下方式:
1)由智能卡自动生成一随机数。
2)智能卡从外部接收一随机数,此时接收一随机数包括但不限定于:直接从智能卡输入一随机数,通过网络远程接收一随机数。
为了便于描述,规定:随机数的位数为n,n为整数且1≤n;随机数的数量为r,r的最大值为10n。
例如,当n=1时,随机数的数值范围为0-9;当n=2时,随机数的数值范围为00-99;当n=3时,随机数的数值范围为000-999;当n=4时,随机数的数值范围为0000-9999,等等。
步骤102、基于所述随机数确定IMSI数据。
IMSI(国际移动用户识别码)是一个15位的十进制数,数据结构由三部分组成,即MCC+MNC+MSIN。其中:
MCC(mobile country code)是移动用户所属国家代号,不同国家的MCC不同,例如,中国的MCC规定为460、阿根廷的MCC规定为722;
MNC(mobile network code)是移动网号码,用于识别移动用户所归属的移动通信网,不同运营商的MNC不同,例如,中国移动的MNC为00,阿根廷某运营商的MNC为310;
MSIN(mobile subscriber identification number)是移动用户识别码(以下称为“随机位”),用以识别某一移动通信网中的移动用户。
在本步骤中,预存IMSI数据的初始值到智能卡中,实际应用中,根据IMSI数据的初始值不同,使得确认IMSI数据的方式也不同,分为两种情形:
1)仅IMSI数据的随机位之前的数据(以下称为“IMSI数据段”)被预存在智能卡中。
需要注意的是,这种情况下,有且仅有一个IMSI数据段被预存。
当随机数被生成,直接在预存IMSI数据段后面补全所生成的随机数数值,即确定了完整IMSI数据。
例如,预存的IMSI数据段为460010000000,随机数为123,则IMSI数据为460010000000123。
2)一个或多个IMSI数据(以下称为“完整的IMSI数据”)被预存在智能卡中。
当随机数被生成,基于随机数的位数和数值在完整的IMSI数据中查找所对应的IMSI数据。
更具体地,根据随机数的位数进行查找指的是仅需要查找完整的IMSI数据的后几位,例如如果随机数是3位,则查找完整的IMSI数据的后3位;如果随机数是4位,则查找完整的IMSI数据的后4位。
进一步地,可以根据随机数的值作为查找IMSI的索引。具体为,IMSI被预存在智能卡的多个文件中,例如1号IMSI在第1个文件中,2号IMSI在第2个文件中,等等。当随机数生成之后,例如当随机数是1,则取第1个文件里的IMSI;当随机数是9,则取第9个文件里的IMSI。
进一步地,如果存在与随机数数值对应的完整的IMSI数据,则该IMSI数据被确定;如果不存在与随机数数值对应的完整的IMSI数据,则返回步骤101重新生成随机数。
例如,生成的随机数为456,则查找已存的完整的IMSI数据中IMSI数据的后3位,如果存在后3位为456的完整的IMSI数据,该数据即被确定为与随机数对应的IMSI数据;如果不存在后3位为456的完整的IMSI数据,则返回步骤101重新生成随机数。
又例如,生成的随机数是1,则查找排在第一位的IMSI,随机数是10,则查找排在第十位的IMSI。
步骤103、基于所述被确定的IMSI数据确定其对应的Ki值和OPC值,并将对应的Ki
值和OPC值写入到智能卡。
本步骤中,确定对应的Ki值和OPC值有两种情形:
1)在智能卡中预存n个包含IMSI初始值、Ki值、OPC值的个人化参数初始值;
如表1所示,举例说明每个IMSI对应一个唯一确定的Ki值和OPC值,其中每一行数据就是一套个人化参数:
序号 |
IMSI |
Ki |
OPC |
1 |
234500003145345 |
B54E01920FBB95DA1822424377EFC3A7 |
EC5FCB92DE9F3EB9758FB2C27D62C635 |
2 |
234500003145346 |
5A0D117E413F1BBA33587FA14DA8188A |
EE0A3EB3F9A62E2B3510C38D8901BDFF |
3 |
234500003145347 |
804EDAEADDA3BB583F5ED48C6AC0E864 |
2E5AA5986CAC1C0AF2D2C8395264CFB0 |
表1
由于IMSI和Ki、OPC的对应关系是本领域的现有技术,在此不赘述。根据本实施例,当IMSI数据被确定,以该确定的IMSI数据作为索引,在所述个人化参数初始值中查找对应的所述Ki值和OPC值。
确定了Ki值和OPC值,可以将该值写入到智能卡。
2)在每一张智能卡中预存OPC值的生成算法。
在该情形中,当IMSI数据和Ki值被确定,基于所预存的OPC值的计算方法,便可以计算出OPC值。根据Ki值和OP值生成OPC值的算法属于现有技术,在此不赘述。
步骤104、基于所述确定的IMSI数据以及所述对应的Ki值和OPC值,生成个人化参
数。
个人化参数包括IMSI数据、Ki值和OPC值,一旦IMSI数据、Ki值和OPC值被确定,个人化参数即被确定。
此时,当终端向服务器发起鉴权操作时,智能卡使用步骤104所生成的个人化参数参与鉴权。
本实施例提供的基于动态配置的数据处理方法,通过随机数去填充(步骤102情形1)或者作为索引(步骤102情形2),就能得到不同的IMSI数据并进一步获得对应的Ki值和OPC值,生成个人化参数。本发明的数据处理方法大大降低了第一参数的回收量,相应的也就提高了第一参数的复用率。
实施例2
在实际应用中,采用实施例1的数据处理方法的生成的多个个人化参数只要不在同一时间使用相同的随机数,就不会出现多张智能卡有相同的个人化参数的情况,但是特殊情况下,仍然存在多张智能卡具有相同个人化参数的情形。
对此,本发明进一步地提出了公式1用于计算10n套个人化参数同时可以登网的智能卡数量K(using),如下:
K(using)=K/[T(period)/T(timeslot)]——公式1
其中:
K,基于动态配置个人化参数所支持的智能卡的数量;
K(using),在某个具体使用时间段内允许同时登网的智能卡数量;
T(period),所有智能卡的使用周期,单位:分钟;
T(timeslot),每套个人化参数每次的使用周期,单位:分钟,在此时间之后该个人化参数会被释放,继续供其他智能卡使用。
进一步地,由于智能卡可以独立地生成随机数,从而自行动态地生成个人化参数,假设随机数的最大值为R,R=10n,本发明还提出公式2用于计算动态配置个人化参数的重复率,如下:
P=1-∏[(R-I)/R]——公式2
其中:
P,动态配置的个人化参数的重复率;
r,随机数空间,1≤r≤10n,例如当n=2,则最多产生102=100个随机数,即随机数空间最多为100;
I,自然数,数值范围0≤I≤K(using)-1。
表2示出了根据公式1和2的计算结果,假设所有的智能卡是在某一个时间段T(period)内使用情况是均匀分布的计算结果,如下:
表2:动态配置的个人化参数的重复率计算结果
从表2可以看出,个人化参数的使用周期T(period)越长,重复率P越低;每次的使用时效T(timeslot)越短,重复率P越低;智能卡总数K的增加会导致重复率上升;随机数空间r越大,重复率越低。
由此,只需要通过适当的配置上述参数,完全可以实现将重复率降到5%甚至更低。并且,即使出现两张智能卡具有相同的个人化参数,只需要根据实施例1所述的方法,重新启动智能卡,就可以重新生成新的随机数,从而产生新的个人化参数,进而避免了因为个人化参数相同导致的智能卡登网失败的情况出现。
实施例3
图2为本申请示例性实施例提供的智能卡结构的示意图。该智能卡可以包括:
存储模块,用于存储数据。
处理模块,用于执行上述基于动态配置的数据处理方法。
现有技术中,如图3所示,每张智能卡只有一个IMSI及其对应的KI和OPC。每次登网的时候,都会使用这个IMSI去登网。也存在极少数的智能卡,预存2-3个IMSI以及对应的KI和OPC,每次登网的时候,普通SIM卡会使用某1个IMSI去登网。
本实施例中,如图4所示,智能卡中的IMSI数据是不固定的,并且是基于随机数来确定的,而且IMSI数据在数量上也和现有技术的智能卡不同,具体地,本申请的智能卡能够存储的IMSI数据、Ki值、OPC值的数量为r,r最大值为10n。另外,由于IMSI数据是基于所生成的随机数来确定,因此每次登网的时候会使用不同的IMSI去登网
根据现有技术,仅仅将使用过得个人化参数回收,在重新加载到新的智能卡中,如果智能卡数量大于(可能远远大于)个人化参数的数量,那么必须等待所有具有相同个人化参数的智能卡都无法正常使用了,才能回收该对应的个人化参数,这基本上是无法实现的。
本实施例提供的智能卡,通过动态配置个人化参数,从而大大降低了第一参数的回收量,提高了第一参数的复用率。如前述表2所示,只要保持智能卡的数量K不变,那么重复率P则不变,这样即使部分智能卡无法正常使用,只需要重新生产该部分数量的智能卡,就能维持相同的较低的重复率,极大提高了智能卡的生产效率。
以上所述,仅是本发明的较佳实施例而已,并非是对发明做其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。