一种用户数据的加解密方法
【专利摘要】本发明提出了一种用户数据的加解密方法,包括以下步骤:a.智能卡从大容量存储器中得到用户数据加解密算法的索引号;b.从用户数据加解密算法库中选择一个与索引号对应的用户数据加解密算法作为临时用户数据加解密算法;c.利用临时用户数据加解密算法对智能卡的用户数据进行加解密,并进行身份认证;d.身份认证后,智能卡更新索引号。本发明提出的用户数据的加解密方法,通过在大容量智能卡内定期更换用户数据加解密算法提高破解原始密钥的难度,即使加解密算法无很高的复杂程度,也能保证用户数据良好的安全性,使得智能卡的安全性得到了大大地提高,而且实现本发明方法的成本很低。
【专利说明】—种用户数据的加解密方法
【技术领域】
[0001]本发明涉及智能卡【技术领域】,尤其涉及一种用户数据的加解密方法。
【背景技术】
[0002]安全性作为智能卡的一大重要指标,很长一段时间以来已经有很多很多的工作放在安全加解密算法上。因为要保护传输信道上数据,智能卡都是用一个安全密钥和一个特定加解密算法去加解密信道上传输的数据,为了提高安全性,安全加解密算法越来越复杂,密钥越变越长,使得数据越来越难以破解。由于为了不降低信道上数据传输的速度,所以加解密算法一般性都是由硬件电路实现的,且算法本身也是公开的,这也就意味着一旦智能卡制造出来了,那么在其上实现的加解密算法就再也变不了了。这样的话,就算加解密算法再复杂,密钥再多长,理论上来说,只要用大量高性能的电脑,总可以在有限时间内将密钥破解出来的,密钥被破了,也就是所谓的智能卡被破解了。诸如交通卡,银行卡,身份证等等智能卡,其卡数量非常巨大,一旦被破解了,那么这么多智能卡就不安全了,带来的后果是可怕的,如果收回这么多卡,成本极其高,基本上是不可能的。
[0003]软件作为加密算法的另一种实现方式也被广为应用,只要用先进的工艺实现,用高位宽的微控制器作为智能卡片上控制器,速度就不会成为大问题。软件实现的好处是一旦算法被破解了,智能卡发行商可以通过重新下载一个新的加密算法的方法来保护用户的数据,但此实现方式会增加片上存储器的面积,用来存储加解密算法,算法越复杂,越难被攻破,但所需的存储器容量也多。但随着智能卡使用上,用户要保存的私人信息越来越多,比如指纹等安全数据,还有智能卡发行商提供的定制服务越来越多,大容量智能卡的需求量越来越大,也就意味着要保护的用户数据也是大容量的,所以安全性要求更高,遇到的挑战越大。
【发明内容】
[0004]本发明克服了现有技术中硬件加解密算法易被破解,软件加解密复杂度高,且增加智能卡上存储器面积等缺陷,提出了一种用户数据的加解密方法。
[0005]本发明提出了一种用户数据的加解密方法,包括以下步骤:
[0006]a.智能卡从大容量存储器中得到用户数据加解密算法的索引号;
[0007]b.从用户数据加解密算法库中选择一个与所述索引号对应的用户数据加解密算法作为临时用户数据加解密算法;
[0008]c.利用所述临时用户数据加解密算法对所述智能卡的用户数据进行加解密,并进行身份认证;
[0009]d.身份认证后,所述智能卡更新所述索引号;
[0010]e.根据新的所述索引号选择对应的用户数据加解密算法对用户数据进行加解密操作。
[0011]本发明提出的用户数据的加解密方法中,所述索引号通过索引号生成算法生成。[0012]本发明提出的用户数据的加解密方法中,所述索引号生成算法由硬件或软件实现。
[0013]本发明提出的用户数据的加解密方法中,由软件实现的所述索引号生成算法由主端服务器进行定期的更改或更新。
[0014]本发明提出的用户数据的加解密方法中,所述索引号生成算法根据随机数或结合所述智能卡的行为特征参数生成所述索引号。
[0015]本发明提出的用户数据的加解密方法中,所述智能卡的行为特征参数为所述智能卡任何一种或多种由主端服务器或所述智能卡记录的智能卡操作行为,包括:所述智能卡登陆主端服务器的历史次数和所述智能卡登陆主端服务器进行付费的历史次数。
[0016]本发明提出的用户数据的加解密方法中,进一步包括:通过软件或硬件对所述索引号进行加解密。
[0017]本发明提出的用户数据的加解密方法中,所述用户数据加解密算法库中包括:至少两个用户数据加解密算法序列号和至少两个所述用户数据加解密算法;每个所述用户数据加解密算法序列号均对应着一个所述用户数据加解密算法。
[0018]本发明提出的用户数据的加解密方法中,所述用户数据加解密算法序列号的顺序由所述智能卡或与所述智能卡连接的主端服务器进行定期调整或重新排序。
[0019]本发明提出的用户数据的加解密方法中,所述用户数据加解密算法由与所述智能卡连接的主端服务器进行定期更新或升级。
[0020]本发明提出的用户数据的加解密方法,通过在大容量智能卡内定期更换用户数据加解密算法的索引号,提高了加解密算法的破解难度,使得大容量智能卡的安全性得到了大大的提高,本发明提出的用户数据加解密方法中,即使加解密算法无很高的复杂程度,也能保证用户数据良好的安全性。本发明提出的用户数据加解密方法所需使用的存储容量很小,不仅减小了存储器在智能卡上所占用的面积,而且使得本发明方法实现的成本降低。
【专利附图】
【附图说明】
[0021]图1是本发明提出的用户数据的加解密方法的步骤图。
[0022]图2是本发明提出的用户数据加解密算法库的示意图。
[0023]图3是本发明对用户数据加解密算法索引号加解密的示意图。
[0024]图4是本发明生成用户数据加解密算法索引号的示意图。
[0025]图5是本发明中一实例的流程图。
【具体实施方式】
[0026]结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
[0027]本发明提出了一种用户数据的加解密方法,其具体步骤如图1所示:
[0028]a.智能卡从大容量存储器中得到用户数据加解密算法的索引号;
[0029]b.通过得到的用户数据加解密算法的索引号,从用户数据加解密算法库中选择一个用户数据加解密算法序列号与用户数据加解密算法的索引号一致的临时用户数据加解密算法;
[0030]c.利用临时用户数据加解密算法对智能卡的用户数据进行加解密操作和与主端服务器之间进行身份认证;
[0031]d.身份认证后,生成一个新的索引号替换原有的索引号;
[0032]e.根据新的索引号选择一个新的用户数据加解密算法对用户数据进行加解密操作。
[0033]如图2所示,用户数据加解密算法库是由至少两个用户数据加解密算法序列号和至少两个用户数据加解密算法组成的,每个用户数据加解密算法序列号均对应着一个用户数据加解密算法。用户数据加解密算法库是由智能卡发行商在发卡之前烧入大容量智能卡内的,因此,供应商无法得知有多少个用户数据加解密算法及分别是什么算法被存储于智能卡内,提高了智能卡的安全性。
[0034]本发明提出的用户数据的加解密方法,使得用户数据加解密算法也被保护了起来,只有智能卡发卡商知道用户数据加解密算法库的信息,且智能卡发卡商均为提供智能卡用户服务的,即智能卡主端服务器端,使得用户数据被加密后更加安全了。同时,除了智能卡主端服务器端和智能卡本身,没有其它第三方会使用到这些算法,因此不用考虑算法的通用性,使得智能卡发卡商可以在智能卡内植入定制的安全算法,这样更加增加了智能卡的安全性。
[0035]由于用户数据加解密算法在智能卡每次上电后,至少会被更换一次,所以被加密的数据极难被攻击破解,因此在用户数据加解密算法库内的每个用户数据加解密算法不用特别复杂,也可以使用对称的加解密算法。密码长度越长,那么密码更新的频率就可以越低;相反的,如果密码长度不长,但更新的频率高,安全性同样具有保障。
[0036]同样的,由于本发明用户数据的加解密方法会频繁地更换用户数据加解密算法,因此算法本身不用非常复杂,实现每种算法所用的代码长度就不用很长。代码长度越短,占用的存储器空间就越小,而省下的空间可以用来实现存放更多的用户数据加解密算法。越多的用户数据加解密算法意味着用户数据在某段时间内,被用同一种加解密算法加解密的概率越少,即用户数据被破解的可能性越小。
[0037]如图2所示,主端服务器可以定期地更新用户数据加解密算法库内的用户数据加解密算法序列号顺序,对其进行重新排序。比如,原来的序列号I变成序列号3,原来的序列号2变成序列号η,原来的序列号3变成序列号2,原来的序列号4变成序列号I,原来的序列号η变成序列号4。如果由于某种原因导致用户数据加解密算法序列号被破解了,但主端服务器可以重新对用户数据加解密算法序列号进行排序,那么就算知道用户数据加解密算法的索引号,也不知道到底用了哪种加解密算法。双重保险使得用户数据安全性得到了进一步的提闻。
[0038]相同的,可以通过减少用户数据加解密算法的数量,加上定期对用户数据加解密算法序列号进行重新排序的方法,减少存储器容量的占用空间,不仅保证了智能卡安全性的高级别,还释放了更多的存储器空间给予用户存储数据。
[0039]如图3所示,为了加强保护索引号的级别,可以对索引号的本身再进行加密后保存。索引号加解密算法可以用软件或者硬件的方法实现在智能卡上,能将索引号加密成加密的用户数据加解密算法索引号后保存在大容量存储卡内;相应的,被加密的用户数据加解密算法索引号也能被解密,还原成原始的索引号。
[0040]如图4所示,本实施例中索引号生成算法可由任意一个由任何算术逻辑运算构成的算法生成,其输入包括一个随机数和一个行为特征参数,此行为特征参数可以是智能卡登陆主端服务器的历史次数或智能卡登陆主端服务器进行付费的历史次数。索引号生成算法有多种具体实现方式,其目的都是为了增加索引号被破解的难度:
[0041]方式一:用户数据加解密算法的索引号完全由主端服务器根据用户数据加解密算法索引号生成算法产生,并发送给智能卡终端。其中,随机数和行为特征参数都由主端服务器自己生成和记录,而且,索引号生成算法可以定期由主端服务器自行更改或者更新升级;
[0042]方式二:用户数据加解密算法的索引号生成算法被用软件的方法实现在大容量存储器内,可以定期由主端服务器自行更改或者更新升级。在每次生成新的索引号之前,主端服务器还要将行为特征参数发送到智能卡上。关于随机数,可以由主端服务器生成的一个随机数,然后发送给智能卡做同步;亦或是由智能卡用片上自含有的随机数产生器生成一个随机数,然后同步给主端服务器。
[0043]实施例:
[0044]如图5所示,本实施例中用户数据的加解密方法,其具体实施过程如下:
[0045]1、当智能卡上电后,智能卡从内嵌于智能卡内的大容量存储器内取出加密的用户数据加解密算法的索引号;
[0046]2、智能卡通过索引号加解密算法对加密的索引号进行解密,得到索引号;
[0047]3、智能卡基于此索引号,从用户数据加解密算法库内选出一个与索引号一致的用户数据加解密算法序列号,并将其对应的用户数据加解密算法作为临时用户数据加解密算法,利用此临时用户数据加解密算法对用户数据进行加解密,并进行身份认证;
[0048]4、智能卡身份认证成功后,由主端服务器送出一个新的索引号生成算法、一个随机数和行为特征参数,发到智能卡上;
[0049]5、智能卡将此新的索引号生成算法替换智能卡上的原有的索引号生成算法,然后根据随机数和行为特征参数,基于新的索引号生成算法,重新得到一个用户数据加解密算法的索引号;
[0050]6、智能卡用此新生成的索引号所指向的用户数据加解密算法并利用用户密钥,对用户数据加解密,保证了智能卡的高级别安全性。
[0051]本发明提出了一种选择用户数据加解密算法的方法,通过在大容量智能卡内定期更换用户数据加解密算法的方法大大提高了破解原始密钥的难度,使得大容量智能卡的安全性得到了大大的提高,且本发明均由软件实现,所以成本非常低。
[0052]本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
【权利要求】
1.一种用户数据的加解密方法,其特征在于,包括以下步骤: a.智能卡从大容量存储器中得到用户数据加解密算法的索引号; b.从用户数据加解密算法库中选择一个与所述索引号对应的用户数据加解密算法作为临时用户数据加解密算法; c.利用所述临时用户数据加解密算法对所述智能卡的用户数据进行加解密,并进行身份认证; d.身份认证后,所述智能卡更新所述索引号; e.根据新的所述索引号选择对应的用户数据加解密算法对用户数据进行加解密操作。
2.如权利要求1所述的用户数据的加解密方法,其特征在于,所述索引号通过索引号生成算法生成。
3.如权利要求2所述的用户数据的加解密方法,其特征在于,所述索引号生成算法由硬件或软件实现。
4.如权利要求3所述的用户数据的加解密方法,其特征在于,由软件实现的所述索引号生成算法由主端服务器进行定期的更改或更新。
5.如权利要求2所述的用户数据的加解密方法,其特征在于,所述索引号生成算法根据随机数或结合所述智能卡的行为特征参数生成所述索引号。
6.如权利要求5所述的用户数据的加解密方法,其特征在于,所述智能卡的行为特征参数为所述智能卡任何一种或多种由主端服务器或所述智能卡记录的智能卡操作行为,包括:所述智能卡登陆主端服务器的历史次数和所述智能卡登陆主端服务器进行付费的历史次数。
7.如权利要求1所述的用户数据的加解密方法,其特征在于,进一步包括:通过软件或硬件对所述索引号进行加解密。
8.如权利要求1所述的用户数据的加解密方法,其特征在于,所述用户数据加解密算法库中包括:至少两个用户数据加解密算法序列号和至少两个所述用户数据加解密算法;每个所述用户数据加解密算法序列号均对应着一个所述用户数据加解密算法。
9.如权利要求8所述的用户数据的加解密方法,其特征在于,所述用户数据加解密算法序列号的顺序由所述智能卡或与所述智能卡连接的主端服务器进行定期调整或重新排序。
10.如权利要求8所述的用户数据的加解密方法,其特征在于,所述用户数据加解密算法由与所述智能卡连接的主端服务器进行定期更新或升级。
【文档编号】G06F21/62GK103593592SQ201310552165
【公开日】2014年2月19日 申请日期:2013年11月8日 优先权日:2013年11月8日
【发明者】景蔚亮, 陈邦明 申请人:上海新储集成电路有限公司