身份证号码加密方法、解密方法、加密系统及解密系统技术方案

技术编号:29205538 阅读:36 留言:0更新日期:2021-07-10 00:41
本发明专利技术公开了一种身份证号码加密方法、解密方法、加密系统及解密系统。本发明专利技术解决了普通加密后的身份证号码格式不对的问题,满足了数据库存储的要求,方案简洁高效的同时还满足了安全性的要求,加解密流程相同降低了实现加解密时的资源占用。解密时的资源占用。解密时的资源占用。

【技术实现步骤摘要】
身份证号码加密方法、解密方法、加密系统及解密系统


[0001]本专利技术属于信息安全
,尤其涉及身份证号码加密方法、解密方法、加密系统及解密系统。

技术介绍

[0002]随着互联网的发展,每天都有各种各样的敏感数据在网络上传播。有大量第三方机构对这些敏感数据进行收集、分析、挖掘,大数据分析可为更优化的决策提供更加可靠的支持,但不对明文信息采取加密或匿名处理就很有可能导致用户的信息滥用,甚至发生严重的隐私泄露事件,造成无法弥补的损失。传统的加密技术能够使得加密后的数据是可证安全的,然而其密文却失去了原有数据的格式,因为绝大部分数据具有特定的格式,比如身份证号等敏感数据,使用传统的分组密码算法直接进行加密可能会导致数据长度的扩展,使得数据的类型发生变化等,需要修改数据库或应用程序来适应这些变化,成本非常高。
[0003]为解决身份证号码加密的问题,王鹏提出过基于保留格式加密的方案(参见:[王鹏. 多类型数据保留格式加密技术的研究与实现[D]. 北京邮电大学, 2017.),该方案根据GB 11643

1999 《公民身份号码》的编码规则,将身份证号码仔细地划分为很多个小块,包括地区码、出生日期、顺序码等,然后基于保留格式加密算法进行加密。保留格式加密(format

preserving encryption,简称FPE)通过对分段的原始数据进行掩码转换,输出一个与各分段原始数据的格式、关联等均一模一样的数据。近年来,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布了NIST SP 800

38G文档,提出了FPE算法FF1、FF3

1等。
[0004]传统实现的这种身份证号码加密方案存在如下不足:(1)过于复杂。将身份证号码仔细地划分为很多个小块,包括地区码、出生日期、顺序码等,然后基于保留格式加密算法分别进行加密;(2)安全性不足。FPE算法为保证安全,通常要求,其中len为待加密消息的长度,而传统的这一划分方式显然不满足这一安全性前提假设,比如对顺序码而言,是长度仅3位的数字,,不满足大于106的安全性前提,整个解决方案存在安全隐患。
[0005](3)数据库对存放的身份证号码不会严格检查地区码、出生日期、顺序码,通常仅检查身份证号码是否为数字,最末一位是否为数字或“X”,有的会进行校验码的检测。因此传统的这一加密方案存在过度设计的不足。
[0006](4)过度的设计和多次执行保留格式加密导致加密效率的降低。

技术实现思路

[0007]本专利技术的目的在于,为克服现有技术缺陷,提供了一种身份证号码加密方法、解密方法、加密系统及解密系统,本专利技术解决了普通加密后的身份证号码格式不对的问题,满足
了数据库存储的要求,方案简洁高效的同时还满足了安全性的要求,加解密流程相同降低了实现加解密时的资源占用。
[0008]本专利技术目的通过下述技术方案来实现:本专利技术涉及的数据分为如下四种类型字符型和字符串:定义由个字符组成的字符表为,称字符表中字符个数为字符表的基数。字符串为字符表中有限个字符组成的字符序列,也称为字符串。记为由字符表中字符组成的长度为n的字符串的集合。明文和密文是由字符表中的多个字符组成的字符串。列如,最常见的数字字符表为,明文和密文在集合中。常见的基数取值除了之前提到的10之外有2、26、95等,这些分别对应比特、字母(仅大写字母或仅小写字母)、可打印ASCII字符(空格被视为可打印字符)的字符表。
[0009]字节和字节串:本专利技术提及的字节为通常意义上的字节,即为8个0、1比特组成的字节。字节串为有限个字节组成的字节序列。
[0010]整数:即普通的整数。
[0011]本专利技术涉及的主要的数据类型转换如下所述。
[0012]字符串转整数:任意给定一个定义在基数为的字符集上的字符串X,记将字符串转为整数的函数为,其具体含义是将按大端表示法表示的字符串X,转化为一个普通的非负整数x,即。
[0013]本专利技术涉及的主要数据如下。
[0014]明文:明文是由字符表中的多个字母组成的字符串。比如由11个数字构成的电话号码。
[0015]密文:明文是由字符表中的多个字母组成的字符串。比如由18个数字构成的字符串。
[0016]调节因子:调节因子是多个字节构成的字节串,FPE方案中的密文空间比较小,使用不同的调节因子可使得同一密钥对同一明文加密得到不同的密文值,从而增加密文的多变性。
[0017]密钥:秘密信息,字节串。
[0018]本专利技术涉及的记号、缩写与符号如下。
[0019]:由radix个字符组成的字符表。
[0020]radix:字符表的基数。
[0021]:由字符表中字符组成的长度为n的字符串的集合。
[0022]:radix字符串转整数的函数。
[0023]:赋值,将B的值给A。
[0024]:串联,将A和B按A在左端、B在右端的顺序串联在一起。
[0025]:对字符串/字节串X,取其第i个字符/字节。
[0026]:对字符串/字节串X,取其第i至j个字符/字节,形成新的子串。
[0027]:保留格式加密算法。
[0028]:保留格式解密算法。
[0029]:计算身份证号码的校验码。
[0030]身份证号码加密方法,包括:S11:输入密钥、调节因子和待加密身份证号码;S12:将身份证号码拆分为数字串A和字符B;S13:对数字串A加入调节因子和密钥,进行保留格式加密,得到数字串C;S14:通过拼接获得完整的身份证号码密文IDC。
[0031]进一步的,保留格式加密为基于对称密码算法的保留格式加密。
[0032]进一步的,拼接具体为:将数字串C与字符B串联;或计算数字串C的校验码R1,将数字串C与校验码R1串联。
[0033]进一步的,校验码R1生成算法如下:将数字串C转换为整数;计算校验整数r1;将校验整数r1转为中字符,若校验整数r1为0至9的整数,则将字符R1设定为对应的数字0至9,若校验整数r1为10,则将字符R1设定为X,其中为由radix个字符组成的字符表。
[0034]另一方面,本专利技术还提供了身份证号码解密方法,包括:
S21:输入密钥、调节因子和身份证号码密文IDC;S22:将待解密的身份证号码密码IDC拆分为前17位数字串a和最后一位字符b;S23:对数字串a执行保留格式解密,得到解密后的数字串c;S24:通过拼接获得完整的身份证号码明文IDP。
[0035]进一步的,保留格式解密为基于对称密码算法的保留格式解密。
[0036]进一步的,拼接具体为:将数字串c与字符b串联;或计算数字串c的校验码R2,将数字串c与校验码R2串联。
[0037]进一步的,校验码R2生成算法如下:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.身份证号码加密方法,其特征在于,包括:S11:输入密钥、调节因子和待加密身份证号码;S12:将身份证号码拆分为数字串A和字符B;S13:对数字串A加入调节因子和密钥,进行保留格式加密,得到数字串C;S14:通过拼接获得完整的身份证号码密文IDC。2.如权利要求1所述的身份证号码加密方法,其特征在于,所述保留格式加密为基于对称密码算法的保留格式加密。3.如权利要求1所述的身份证号码加密方法,其特征在于,所述拼接具体为:将数字串C与字符B串联;或计算字符B的校验码R1,将数字串C与校验码R1串联。4.如权利要求3所述的身份证号码加密方法,其特征在于,所述校验码R1生成算法如下:将数字串C转换为整数;计算校验整数r1;将校验整数r1转为中字符,若校验整数r1为0至9的整数,则将字符R1设定为对应的数字0至9,若校验整数r1为10,则将字符R1设定为X,其中为由radix个字符组成的字符表。5.身份证号码解密方法,其特征在于,包括:S21:输入密钥、调节因子和身份证号码密文IDC;S22:将待解密的身份证号码密文IDC拆分为前17位数字串a和最后一位字符b;S23:对数字串a执行保留格式解密,得到解密后的数字串c;S24:通过拼接获得完整的身份证号码明文IDP。6.如权利要求5所述的身份证号码解密方法,其特征在于,所述保留格式解密为基于...

【专利技术属性】
技术研发人员:罗影张文科刘红军郭晓玲敖麒
申请(专利权)人:工业信息安全四川创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1