本发明属于数据加密,具体涉及一种数据存储装置、ic卡和数据存储方法。
背景技术:
1、ic卡 (integrated circuit card,集成电路卡),也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合iso 7816标准的卡基中,做成卡片形式。ic卡与读写器之间的通讯方式可以是接触式,也可以是非接触式。根据通讯接口把ic卡分成接触式ic卡、非接触式ic和双界面卡(同时具备接触式与非接触式通讯接口)。
2、传统的技术中,通常只用一个扇区存储权限数据,这种情况下最多只能支持256个权限标识,对于超大型项目无法实现权限的精细管理,由于传统ic卡的加密算法过于简单,安全性较高的也基本为“卡号+固定密钥的形式”,一旦算法泄露,则该项目所有ic卡均能被轻易破解,而且现已经形成了成熟的ic卡暴力破解产业,因此现有的ic卡密码机制很容易被破解机器破解。
技术实现思路
1、本发明的目的在于提供一种数据存储装置、ic卡和数据存储方法,以解决背景技术中的问题。
2、本发明的目的可以通过以下技术方案实现:
3、一种数据存储方法,包括以下步骤:
4、在ic卡内设置多个扇区,包括存储扇区和权限定义扇区,其中一个扇区为存储数据的存储扇区,其余多个扇区为存储权限的权限定义扇区;
5、将卡片信息、设置方式信息、扇区密码和校验位的原始数据字段输入至所述存储扇区中,所述存储扇区设置在最后一个扇区;
6、将所述权限定义扇区分别划分为256个单独的权限区间,其中每个单独的权限区间至少存储一个权限标识,所述权限区间在权限定义扇区内叠加使用;
7、将权限信息通过二进制的转换方式分别随机存储在至少一个权限区间内,将多个扇区数据字段存放于同一个扇区内或多个扇区内;当多个所述扇区数据字段存放于同一个扇区内时,多个所述扇区数据字段存放于所述同一个扇区内的同一个数据块内或多个数据块内;
8、获取目标权限定义扇区的权限,所述目标权限定义扇区为多个权限定义扇区中的至少一个。
9、进一步的,所述将卡片信息、设置方式信息、扇区密码和校验位的原始数据字段输入至所述存储扇区中,具体包括以下步骤:
10、获取ic卡的卡片信息,对ic卡的卡片信息进行加密处理得到对应的计算码;
11、将计算码分别存放于多个扇区内,所述计算码存放于多个扇区内的多个数据块内;
12、对计算码和对应的扇区数据字段进行校验加密算法处理,得到对应的数据字段校验位;
13、其中,
14、对计算码和对应的扇区数据字段进行校验加密算法处理具体包括:
15、对计算码和扇区数据字段进行移位和异或处理。
16、进一步的,对计算码和扇区数据字段进行移位和异或处理具体包括:对密码矩阵阵列的列数nk=4的密钥种子阵列,所述密码矩阵阵列的具体扩展步骤如下:
17、生成长度为nk*4b的密钥种子;
18、定义一个nb*(nr+1)个字的一维数组w;
19、将密钥种子输入数组的前nk个字,即存入w[0],w[1],…,w[nk-1];
20、令j=nk,从w[nk]开始到w[nb*(nr+1)-1]依次生成圈密钥所需的字;
21、若j mod nk=0,则w[j]=w[j-nk]^subbyte(rotbyte(w[j-1]))^rcon[j/nk],否则通过移位、异或进行变换操作;
22、令j=j+1,如果j>nb*(nr+1)则结束。
23、进一步的,通过移位、异或进行变换操作具体为:w[j]=w[j-nk]^(w[j-1]<<w[j-nk]&0xf0)^(w[j-1]>>w[0]&0xf0)。
24、进一步的,将权限定义扇区根据权重区分重要性,当权重大于预设阈值时,则认为该权限定义扇区为重要。
25、进一步的,所述加密算法为数学运算中的一种或多种的组合,所述数学运算包括四则运算、科学计算、编程运算、统计学运算中的一种或多种。
26、进一步的,原始数据字段的段数为一段或多段,一段所述原始数据字段对应一段所述扇区数据字段、一段计算码和一段数据字段校验位。
27、进一步的,在同一张ic卡内,多个所述计算码存放于同一个扇区内或多个扇区内;当多个所述计算码存放于同一个扇区内时,多个所述计算码存放于所述同一个扇区内的同一个数据块内或多个数据块内。
28、一种数据存储装置,运用所述权利要求前述的一种数据存储方法,包括:
29、获取模块,用于获取ic卡的唯一识别号以及ic卡的卡号;所述ic卡包括开放读取区以及若干个加密区,所述卡号存储于所述开放读取区;
30、加密模块,用于根据所述唯一识别号以及所述卡号通过加密算法进行加密处理,得到加密密码;
31、存储模块,用于将所述加密密码存储于所述加密区;所述加密区中的所述加密密码用于智能锁的验证。
32、一种数据存储ic卡,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如前述方法。
33、本发明的有益效果:
34、1、本发明公开的一种数据存储方法,通过在ic卡内设置多个权限定义扇区和存储扇区,保证每张卡、每个扇区密码均不相同,且由于随机密码的原因即便固定秘钥/盐、项目私钥甚至加密算法泄露的情况下,每个扇区的密码仍不可计算与推导,同时,本申请还使用多个扇区存储权限数据,16扇区的卡最多能对应3840个读卡器的不同权限,17扇区的卡最多能对应4096个读卡器的不同权限。
35、2、本发明公开的一种数据存储方法,可以通过不同的加密算法同时对计算码、扇区数据字段、数据字段校验位进行数据加密,实现多重加密,只有在所有数据都合法时,ic卡内的数据才会被认为合法。即使当ic卡密钥被破解和数据内容被读出时,ic卡内数据也为非明文(即密文),在不知道对应加密算法的情况下,无法对数据进行解析和修改,从而增加了现有ic卡应用系统的安全系数。
36、3、在本申请中,还通过对密钥扩展方案进行了改进,具体采取了对数据进行移位和异或的操作方法,使逆推密钥非常困难,这在一定程度上加大了数据存储的安全性。
1.一种数据存储方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种数据存储方法,其特征在于,所述将卡片信息、设置方式信息、扇区密码和校验位的原始数据字段输入至所述存储扇区中,具体包括以下步骤:
3.根据权利要求2所述的一种数据存储方法,其特征在于,对计算码和扇区数据字段进行移位和异或处理具体包括:对密码矩阵阵列的列数nk=4的密钥种子阵列,所述密码矩阵阵列的具体扩展步骤如下:
4.根据权利要求3所述的一种数据存储方法,其特征在于,通过移位、异或进行变换操作具体为:w[j]=w[j-nk]^(w[j-1]<<w[j-nk]&0xf0)^(w[j-1]>>w[0]&0xf0)。
5.根据权利要求1所述的一种数据存储方法,其特征在于,将权限定义扇区根据权重区分重要性,当权重大于预设阈值时,则认为该权限定义扇区为重要。
6.根据权利要求2所述的一种数据存储方法,其特征在于,所述加密算法为数学运算中的一种或多种的组合,所述数学运算包括四则运算、科学计算、编程运算、统计学运算中的一种或多种。
7.根据权利要求2所述的一种数据存储方法,其特征在于,原始数据字段的段数为一段或多段,一段所述原始数据字段对应一段所述扇区数据字段、一段计算码和一段数据字段校验位。
8.根据权利要求7所述的一种数据存储方法,其特征在于,在同一张ic卡内,多个所述计算码存放于同一个扇区内或多个扇区内;当多个所述计算码存放于同一个扇区内时,多个所述计算码存放于所述同一个扇区内的同一个数据块内或多个数据块内。
9.一种数据存储装置,其特征在于,运用所述权利要求1至8任一项所述的一种数据存储方法,包括:
10.一种数据存储ic卡,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1 8中任一项所述方法。