CN116049841A - 一种身份证号的加密方法、装置、设备及介质 - Google Patents
一种身份证号的加密方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116049841A CN116049841A CN202211097855.1A CN202211097855A CN116049841A CN 116049841 A CN116049841 A CN 116049841A CN 202211097855 A CN202211097855 A CN 202211097855A CN 116049841 A CN116049841 A CN 116049841A
- Authority
- CN
- China
- Prior art keywords
- value
- round
- data
- encryption
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种身份证号的加密方法、装置、电子设备及介质。本申请实施例中,从待加密身份证号中获取第一数据值和第二数据值;使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,其中,在迭代加密过程中,利用派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。本实施例可以有效地实现数据的保留格式加密,且使数据加密后的密文保持数据的原有特征。
Description
技术领域
本申请涉及信息安全领域,一种身份证号的加密方法、装置、设备及介质。
背景技术
随着《中华人民共和国数据安全保护法》和《中华人民共和国个人信息保护法》发布和实施,人们的信息安全意识和信息保护意识已经开始逐渐形成。有关个人的敏感信息,如身份证号、手机号、银行账户号、保险单号等,在数据处理和应用中更需要被妥善管控。
在金融、保险、医疗、运输和教育等许多行业,大多数情况下会使用到个人身份证号码。近年来,个人敏感信息被泄露及被利用的事件频繁出现。为防止信息泄露,有必要将文件或数据中的个人身份证号码做某种安全处理。较为典型的处理方法是数据加密和数据脱敏。数据脱敏的主要缺点是不能在必要时恢复被掩盖了的信息,而数据加密最好采用保留格式加密方法,否则会出现不实用或不能用问题。用保留格式加密方案实现对身份证号加密已成为业界共识,但是,目前国家尚无统一的实施标准。有些方案不满足算法安全性或是加密后密文不再是合规的数据以至于在某些应用场景中影响数据处理业务流程,还有些方案需要引用调解因子参与加解密,多了一个附加参数,给数据存储和解密带来不便。
本方案可以有效地实现数据的保留格式加密,且使数据加密后的密文保持数据的原有特征。
发明内容
本申请实施例提供了一种身份证号的加密方法、装置、设备及介质,用以有效地实现数据的保留格式加密。
本申请实施例提供的技术方案如下:
第一方面,本发明实施例提供了一种身份证号的加密方法,所述方法包括:
从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;
获取加密密钥;
对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥;
使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用轮函数和派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;
按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;
根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
根据该设计,可以有效地实现数据的保留格式加密,且使数据加密后的密文保持数据的原有特征。也就是说,加密后的身份证号不但在数据长度和数据类型上符合身份号规则,还可以符合身份证号的校验规则。
在一种可能的设计中,所述方法包括:
若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥;
若获取的当前加密密钥长度大于预设加密密钥长度,则选取所述当前加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。
根据该设计,可以在获得加密密钥不足设定字节的时候填充加密密钥,获得预设字节数的加密密钥。
在一种可能的设计中,对所述加密密钥进行分组派生出轮密钥,在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥,包括:
使用已经派生出的第一指定轮密钥与设定轮密钥数量中尚未获得的第一个轮密钥的编序号相加后进行取模运算,获得轮密钥第一数值;
使用已经派生出的的第二指定轮密钥与所述轮密钥第一数值做异或运算,获得轮密钥第二数值;
使用设定的轮密钥第二数值的加密密钥对所述轮密钥第二数值加密,获得轮密钥第二加密数值,使用轮函数和轮密钥,由第二加密数值获得设定轮密钥数量中尚未获得的第一个轮密钥;
重复执行上述过程,直到获得设定轮密钥数量的轮密钥。
在一种可能的设计中,使用轮函数和轮密钥,由第二数值获得设定轮密钥中尚未获得的第一个轮密钥,包括:
将所述轮密钥第二数值拆分为数值组,分别将数值组中的每个数值做代替变换,得到代替变换后的数值组;
若所述代替变换后的数值组中的数值不足设定数量,则由代替变换后的数值组中的数值通过递归运算,获得包括设定数量数值的数值组,其中,若所述数值组中数值的取值大于设定数值,则通过异或一个特定常数使所述数值组中数值的取值小于或等于设定数值;
将获得的包括设定数量数值的数值组中的指定数值,作为设定轮密钥中尚未获得的第一个轮密钥。
在一种可能的设计中,使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,包括:
设定第一模数和第二模数;
设置第一数据值为第一数组,第二数据值为第二数组,其中,第一数组中元素数量与第二数组中元素数量相等;
另第一数组中第二个元素值等于第二数组中第一个元素值;
使用第二数组中第一个元素值和第一个轮密钥以及轮函数,获得第一轮变换运算值;
对第一轮变换运算值和第一数组中第一个元素值做第一模压缩函数运算,获得第二数组中的第二个元素值,所述第一模压缩函数运算使用第一模数;
另第一数组中第三个元素值等于第二数组中第二个元素值;
使用第二数组中第二个元素值和第二个轮密钥以及轮函数,获得第二轮变换运算值;
对第二轮变换运算值和第一数组中第二个元素值做第二模压缩函数运算,获得第二数组中的第三个元素值,所述第二模压缩函数运算使用第二模数;
迭代执行上述过程,直到获得第一数组中预设迭代加密次数的最后一次元素值和第二数组中预设迭代加密次数的最后一次元素值;
将所述获得的第一数组中预设迭代加密次数的最后一次元素值和第二数组中迭代加密次数的最后一次元素值设置为第三数据值和第四数据值。
在一种可能的设计中,若生成的加密身份证号不符合设定条件,则将生成的加密身份证号作为待加密身份证号继续加密,直到获得符合设定条件的加密身份证号。
第二方面,本申请实施例还提供了一种身份证号的加密装置,所述装置包括获取模块和处理模块。其中:
获取模块,用于从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;
所述获取模块,还用于获取加密密钥;
处理模块,用于对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥;
所述处理模块,还用于使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用轮函数和派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;
所述处理模块,还用于按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;
所述处理模块,还用于根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
在一种可能的设计中,所述处理模块具体用于:若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥;
若获取的当前加密密钥长度大于预设加密密钥长度,则选取所述当前加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。
在一种可能的设计中,所述处理模块还用于:在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥通过轮变换运算派生出其它轮密钥,所述处理模块还包括:
使用已经派生出的第一指定轮密钥与设定轮密钥数量中尚未获得的第一个轮密钥的编序号相加后进行取模运算,获得轮密钥第一数值;
使用已经派生出的的第二指定轮密钥与所述轮密钥第一数值做异或运算,获得轮密钥第二数值;
使用设定的轮密钥第二数值密钥对所述轮密钥第二数值加密,获得轮密钥第二加密数值,使用轮函数和轮密钥第二加密数值获得设定轮密钥数量中尚未获得的第一个轮密钥;
重复执行上述过程,直到获得设定轮密钥数量的轮密钥。
在一种可能的设计中,所述处理模块还用于:使用轮函数和轮密钥第二数值获得设定轮密钥中尚未获得的第一个轮密钥,所述处理模块还包括:
将所述轮密钥第二数值拆分为数值组,分别将数值组中的每个数值做代替变换,得到代替变换后的数值组;
若所述代替变换后的数值组中的数值不足设定数量,则由代替变换后的数值组中的数值通过递归运算,获得包括设定数量数值的数值组,其中,若所述数值组中数值的取值大于设定数值,则通过异或一个特定常数使所述数值组中数值的取值小于或等于设定数值;
将获得的包括设定数量数值的数值组中的指定数值,作为设定轮密钥中尚未获得的第一个轮密钥。
在一种可能的设计中,所述处理模块还用于:使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述处理模块还包括:
设定第一模数和第二模数;
设置第一数据值为第一数组,第二数据值为第二数组,其中,第一数组中元素数量与第二数组中元素数量相等;
另第一数组中第二个元素值等于第二数组中第一个元素值;
使用第二数组中第一个元素值和第一个轮密钥以及轮函数,获得第一轮变换运算值;
对第一轮变换运算值和第一数组中第一个元素值做第一模压缩函数运算,获得第二数组中的第二个元素值,所述第一模压缩函数运算使用第一模数;
另第一数组中第三个元素值等于第二数组中第二个元素值;
使用第二数组中第二个元素值和第二个轮密钥以及轮函数,获得第二轮变换运算值;
对第二轮变换运算值和第一数组中第二个元素值做第二模压缩函数运算,获得第二数组中的第三个元素值,所述第二模压缩函数运算使用第二模数;
迭代执行上述过程,直到获得第一数组中预设迭代加密次数的最后一次元素值和第二数组中预设迭代加密次数的最后一次元素值;
将所述获得的第一数组中预设迭代加密次数的最后一次元素值和第二数组中迭代加密次数的最后一次元素值设置为第三数据值和第四数据值。
在一种可能的设计中,所述处理模块还用于:若生成的加密身份证号不符合设定条件,则将生成的加密身份证号作为待加密身份证号继续加密,直到获得符合设定条件的加密身份证号。
第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上述一种身份证加密的方法的步骤。
第四方面,本申请实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上述一种身份证加密的方法的步骤。
本申请实施例的有益效果如下:
本申请实施例中,从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;获取加密密钥;对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥;使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用轮函数和派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。这样,可以有效地实现数据的保留格式加密,且使数据加密后的密文保持数据的原有特征。也就是说,加密后的身份证号不但在数据长度和数据类型上符合身份号规则,还可以符合身份证号的校验规则。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据加密的方法示意图;
图2为本申请实施例提供的另一种数据加密的方法示意图;
图3为本申请实施例提供的另一种数据加密的方法示意图;
图4为本申请实施例提供的另一种数据加密的方法示意图;
图5为本申请实施例提供的另一种数据加密的方法示意图;
图6为本申请实施例提供的一种数据加密的装置示意图;
图7为本申请实施例提供的一种电子设备实体结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
随着《中华人民共和国数据安全保护法》和《中华人民共和国个人信息保护法》发布和实施,人们的信息安全意识和信息保护意识已经开始逐渐形成。有关个人的敏感信息,如身份证号、手机号、银行账户号、保险单号等,在数据处理和应用中更需要被妥善管控。
在金融、保险、医疗、运输和教育等许多行业,大多数情况下会使用到个人身份证号码。近年来,个人敏感信息被泄露及被利用的事件频繁出现。为防止信息泄露,有必要将文件或数据中的个人身份证号码做某种安全处理。较为典型的处理方法是数据加密和数据脱敏。数据脱敏的主要缺点是不能在必要时恢复被掩盖了的信息,而数据加密最好采用保留格式加密方法,否则会出现不实用或不能用问题。
有些业务场景,需要检验身份证号是否为合规的身份证号。加密后,如果加密身份证号不再是一个合规的身份证号,可能会对某些业务流程产生影响。所以,对身份证号的加密,不仅要求有同样的数据长度和数据类型,而且还要求它符合身份证号检验规则,主要包括校验位正确,区域码及出生年月日符合规则。
那么,如果设计的加密算法结构很复杂,或者需要引用调解因子参加加解密,多了一个附加参数,给数据的加密和数据的解密带来不便,从而影响了数据的加密和数据的解密速度。
进一步的,在确定待加密身份证号前需要对身份证号进行合规性检测,我们必须先了解身份证号各个码位的功能特征。为了方便描述,本发明将身份证号的第1到第18位标注为i1至i18。身份证号中的特殊码位有四部分。位i1至i6是区域码,通常表示身份证号持有人登记户口或办证所在的市县地区。位i7至i14是出生日期,其中位i7至i10表示出生年份,位i11至i14表示出生月日。位i15至i16表示发证机构,i17表示身份证号持有人性别,奇数为男性,偶数为女性。i18是校验位,其校验位的校验规则如下:
A=≡7i1+9i2+10i3+5i4+8i5+4i6+2i7+i8+6i9+3i10+7i11+9i12+10i13+5i14+8i15+4i16+2i17+i18mod 11≡1mod 11
进一步的,一个合规的身份证号,不仅要区域码合法、出生日期可信,还要符合校验规则。如果由一个身份证号算出来的校验值A不满足A≡1mod 11,那么,这个身份证号可能是假号。为了使校验值满足A≡1mod 11,i18是根据校验要求设定的。有时需要i18=10,用罗马数字符“Ⅹ”表示,所以,有一部分身份证号中有0—9以外的码符“X”。如果因为区域码新增或调整,导致某些身份证号区域码不合规。也有可能因为数据录入错误或其它原因,使得个别身份证号的出生日期超出常规。为此,对待加密身份证号进行加密或解密之前,需要做如下的合规性检验及处理:
①若待加密身份证号校验码不正确,则不加密。
②若待加密身份证号区域码不合规,而且出生日期不可信,则不加密。
③若待加密身份证号只有区域码不合规,则区域码保持不变,且不参与运算,只实现将i7至i17位加密即可。
④若待加密身份证号只有出生日期不合规,则i7至i14位保持不变,且不参与运算,只实现将i1至i6位和i15至i17位加密即可。
如果校验待加密身份证号的结果是只有区域码不合规,这时,i15至i17位顺序码的1000种可能编序值作为上述的n0,n0<R=1000,只实现将i7至i17位加密即可。如果只有出生日期不合规,则i7至i14位保持不变,且不参与运算。这时,i1至i6位对应的编序值为n0,n0<R,比如R=3520。i15至i17位顺序码对应的编序值为n1,n1<B=1000,只实现i1至i6位和i15至i17位加密即可。
以下结合实施例对本发明做进一步说明。
实施例1
图1所示出的是一种身份证号的加密方法示意图,下面结合图1进行进一步阐述:
步骤101,从待加密身份证号中获取第一数据值和第二数据值。
具体的,从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值。
进一步的,如果将待加密身份证号分为三维数据,分别为号码i1至i6、号码i7至i14、号码i15至i17。其中号码i18为校验位不参与加密运算,完成加密后可以由加密后的号码i1至i17通过校验规则计算出i18,其中,校验位的校验规则在上述已经介绍过,在这里不在赘述。号码i1至i6表示区域码,共有N0种可能的值,编号为0—N0-1,号码i7至i14表示出生日期,共有N1种可能的值,编号为0—N1-1,号码i15至i17位表示顺序码,共有N2种可能的值,编号为0—N2-1。这样,(n0,n1,n2)就是待加密身份证号按区域码、出生日期和顺序码的三维数据值表示,n0∈{0,1,2,……N0-1},n1∈{0,1,2,……N1-1},n2∈{0,1,2,……N2-1}。
也可以将一个待加密身份证号分为两组数据,将号码i1至i6、i15至i17表示为第一数据,如果合规身份证号的区域码共有3520个,身份证号i15至i17位的顺序码共有1000种可能的值,那么,i1至i6位和i15至i17位这9位总共只有3520000种可能的值记作R,将第一数据映射为第一数据值n0,即R=3520000,n0<R。将号码i7至i14表示为第二数据,如果将合规身份证号的出生日期限定在1900至2099这两百年内,每年至多只有366天,出生日期至多有73200种可能的值记作B(若出现平年2月29日出生则要做后续处理),将第二数据映射为第二数据值n1,即B=73200,n1<B。为了更加清楚的表述,后续将使用两维数据对本申请进行阐述。这样,每个待加密身份证号的出生日期可以表示为一个小于73200的数据值n1,其余9位的值可以表示为一个小于3520000的数据值n0。
步骤102,使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,根据映射规则将第三数据值和第四数据值映射为第三数据和第四数据。
具体的,所述交互扰乱形式可以理解为可通过第一数据值和第二数据值获得第三数据值,也可通过第一数据值和第二数据值获得第四数据值。所述预设次数的迭代加密,其中,预设次数可以与预设加密密钥长度相等,也可以不相等,这里不做限制。
进一步的,使用所述第一数据值和所述第二数据值使用交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,结合图2举例如下:
设置第一数据值为第一数组,第二数据值为第二数组,即X0=n0,Y0=n1,左边数记作X,右边数记作Y,对i=1,3,5,7,……,15,也就是通过第一数组的Xi-1,和第二数组的Yi-1,利用轮函数和派生出的轮密钥进行轮变换运算,并使用第一模数作模压缩函数运算,得到第二数组的Yi。又由第一数组的Xi=Yi-1,和第二数组的Yi,利用轮函数和派生出的轮密钥进行轮变换运算,并使用第二模数作模压缩函数运算,得到第二数组的Yi+1。其中Xi+1=Yi。执行完i=15,得到X16和Y16,即获得第三数据值和第四数据值。上述迭代过程可用以下两步公式示意:
a)Xi=Yi-1,W=F(Yi-1,Li-1),Yi=(Xi-1+W)mod R;
b)Xi+1=Yi,V=F(Yi,Li),Yi+1=(Xi+V)mod B。
其中,F为轮函数,mod为模压缩函数,Li和Li-1为轮密钥,X、Y、W、V均为小于232的整数,R、B均为小于232的正整数,mod R和mod B易于在资源受限的环境中实现。
通过迭代执行上述过程,获得第三数据值和第四数据值(X16,Y16),将(X16,Y16)作为密文,满足X16∈{0,1,2,……R-1},Y16∈{0,1,2,……B-1}。
进一步的,通过以下实例进行所述模压缩函数运算的解释:
模压缩函数MOD有两个输入,它是将两个整数的和取模余。
Xw=(Xi-1+W)mod R
Xv=(Xi+V)mod B
其中X、V、W、R、B是小于232的正整数,X、V、W允许为0。
进一步的,所述根据映射规则将第三数据值和第四数据值映射为第三数据和第四数据。其中,第三数据值的取值范围与所述第一数据值相同,第四数据值的取值范围与第二数据值相同。
将所述第三数据值和第四据值映射为第三数据和第四数据,与将第一数据和第二数据映射为第一数据值和第二数据值是基于同样的技术构思,在这里不做赘述。
步骤103,根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
具体的,对所述第三数据和所述第四数据按照预设规则进行拆分,由拆分结果生成加密后的身份证号,由X16生成加密身份证号的i1至i6位和i15至i17位,由Y16生成i7至i14位(出生日期),有了17位后,按身份证号校验规则可以计算出第18位。为了更清楚的解释,下面使用一个实例来说明:X16为十六进制300ee9,将其转换为十进制为3149545,3149545=3149×1000+545,根据上述算式,查询身份号前6位代码对照表,3149对应对照表中的第3150个,前6位得610627,根据上述算式,545为i15至i17位。Y16为十六进制00855d,将其转换为十进制为34141,34141=93×366+103,根据上述算式,将1900年到2099年从0开始编号,第93号为1993年,1993年的第103天是4月13日,即该加密身份证号的i7至i14位为19930413。如果出生日期是2月29日,则检验年份是否为润年(四的倍数且不是1900年或2000年),若不是润年,则需置X0=X16、Y0=Y16,对(X0,Y0)继续加密,直到日期合规为止。身份证号校验位第i18位的校验规则在前面已经介绍过,在这里不做赘述。按身份证号校验位校验规则获得i18位为5,加密后的身份证号为610627199304135455。
进一步的,对加密身份证号的解密与对待加密身份证号的加密是基于同样的技术构思,在这里不做赘述。
实施例2
图3所示出的是一种数据加密的方法示意图。
步骤301,获取加密密钥。
具体的,获取加密密钥,加密密钥可以由客户端或服务器产生,也可以由用户设定,在这里不做具体限定。
步骤302,将所述加密密钥进行分组派生出轮密钥。
具体的,所谓派生,就是使用本来已有的密钥生成新的密钥。加密密钥长度可以为16字节,也可以少于或多于16字节。这里使用16字节加密密钥为例,且约定不足16字节时填充到16字节。将加密密钥分组,按每4字节一组,组合成4个32比特数,记作L0、L1、L2、L3。
步骤303,在派生出轮密钥不足预设轮密钥数量时,利用已经派生出的轮密钥通过轮变换运算派生出其它轮密钥。
具体的,轮密钥数量可以约定为16个,也可以多于或少于16个,在使用加密密钥派生出轮密钥数量不足预设轮密钥数量时,可以使用派生出的轮密钥继续派生出其它轮密钥。下面以16个轮密钥为例,进行轮密钥派生解释:已使用加密密钥派生出4个轮密钥L0、L1、L2、L3,对i=4,5,6,……,15,获得其它轮密钥。
当i=4时,使用已经派生出的第一指定轮密钥L3与设定轮密钥数量中尚未获得的第一个轮密钥编序号4相加后进行取模运算,获得轮密钥第一数值A;使用已经派生出的的第二指定轮密钥L0与所述轮密钥第一数值A做异或运算,获得轮密钥第二数值B;使用设定的轮密钥第二数值B的加密密钥“0”对所述轮密钥第二数值B加密,获得轮密钥第二加密数值,使用轮函数和轮密钥第二加密数值获得设定轮密钥数量中尚未获得的第一个轮密钥L4。即:
A=Li-1+i mod 232,
Li=F(B,0);
其中,F为轮函数,A和B为32比特的数,为异或运算,mod为模运算,模232为只保留低位32比特。
对i=4,5,6,…,15重复执行上述过程,直到派生出L4,L5,……,L15后,即获得加密过程中需要的16个轮密钥L0,L1,……,L15。
实施例3
图4所示是一种数据加密的方法示意图。
步骤401,判断加密密钥的长度是否小于预设加密密钥长度。
步骤402,若是,则使用填充方式将加密密钥长度填充为预设加密密钥长度,并获得预设加密密钥每个字节的的密钥。
具体的,若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥。预设加密密钥长度可以为16字节,也可以大于或小于16字节,预设加密密钥长度不做限定,这里使用16字节为例进行解释:
进一步的,设用户密钥长度为n字节(建议10≤n≤16)。当密钥长度少于16字节时,即当n<16时,将密钥的n字节记作为K0、K1、…、Kn-1,则对i=n、n+1、…、15,约定Ki=i+Ki-nmod 256。例如,用户的10字节密钥为“0x64,0x83,0x03,0xa6,0x64,0x83,0x03,0xa6,0x64,0x83”,则第11字节密钥K10=10+0x64=0x6e,第12字节K11=11+0x83=0x8e,第13字节K12=12+0x03=0x0f,……,第16字节K15=15+0x83=0x92。其中,“0x”表示为十六进制数。
步骤403,若否,则选取所述加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。具体的,选取所述预设加密密钥长度对应的的加密密钥,所述加密密钥从前至后选取预设加密密钥长度的密钥作为加密密钥,也可以选取中间部分预设加密密钥长度的密钥作为加密密钥,还可以选取后段预设加密密钥长度的密钥作为加密密钥。
实施例4
图5所示是一种数据加密的方法示意图,为了便于理解,本图是对图3步骤303中提到的轮函数做出的示例性的解释。
轮函数是由32比特密钥控选的一种32位比特数到32位比特数的置换。也就是说,轮函数可以将两个32比特数变换为一个32比特数。本案中反复使用轮函数,避免了多定义函数增加代码段使算法结构过于庞大复杂问题。
步骤501:将所述轮密钥第二加密数值拆分为数值组,分别将数值组中的每个数值做代替变换,得到代替变换后的数值组。
具体的,比如计算F(X,K),计算这里表示按比特位异或,其中,设X是一个32比特数,即X是一个0至232-1的数,K也是一个32比特数。
进一步的,将Y按4个8比特,分割为4段并分别查8进8出的代替变换(代替变换可等同SM4的S盒置换,SM4的S盒是一种以字节为单位的非线性代替变换,S盒的输入和输出都是8位的字节。它本质是8位的非线性置换。),得w0=S(y0),w1=S(y1),w2=S(y2),w3=S(y3),得到代替变换后的数值组为(w0,w1,w2,w3),其中S盒置换是起到混淆作用。
步骤502:若所述代替变换后的数值组中的数值不足设定数量,则由代替变换后的数值组中的数值通过递归运算,获得包括设定数量数值的数值组。
由w0,w1,w2,w3递归产生w4,w5,……,w15,递归运算可以是线性变换,做一次递归等于乘一次矩阵,递归次数可多于或少于12次,这里不做限定,方法是:
对i=4,5,6,……,15,计算
进一步的,若所述数值组中数值的取值大于设定数值,则通过异或运算使所述数值组中数值的取值小于或等于设定数值,
若wi>255则
其中为异或运算。
步骤503:将获得的包括设定数量数值的数值组中的指定数值,作为设定轮密钥中尚未获得的第一个轮密钥。
将w12,w13,w14,w15作为轮函数的输出,即F(X,K)=(w12,w13,w14,w15)。
实施例5
基于相同的技术构思,本申请示例性的提供了一种身份证号的加密装置,如图6所示,该装置包括:
获取模块601,用于从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;
所述获取模块601,还用于获取加密密钥;
处理模块602,用于对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥通过轮变换运算派生出其它轮密钥;所述处理模块602,还用于使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;所述处理模块602,还用于按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;所述处理模块602,还用于根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
可选的,所述处理模块602还用于若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥;若获取的当前加密密钥长度大于预设加密密钥长度,则选取所述当前加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。
可选的,在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥通过轮变换运算派生出其它轮密钥,所述处理模块602还包括:使用已经派生出的第一指定轮密钥与设定轮密钥数量中尚未获得的第一个轮密钥的编序号相加后进行取模运算,获得轮密钥第一数值;使用已经派生出的的第二指定轮密钥与所述轮密钥第一数值做异或运算,获得轮密钥第二数值;使用设定的轮密钥第二数值密钥对所述轮密钥第二数值加密后获得轮密钥第二数值,使用轮变换运算对轮密钥第二数值做运算,获得设定轮密钥数量中尚未获得的第一个轮密钥;
重复执行上述过程,直到获得设定轮密钥数量的轮密钥。
可选的,使用轮变换运算对轮密钥第二数值做运算,获得设定轮密钥中尚未获得的第一个轮密钥,所述处理模块602还包括将所述轮密钥第二数值拆分为数值组,分别将数值组中的每个数值做代替变换,得到代替变换后的数值组;若所述代替变换后的数值组中的数值不足设定数量,则由代替变换后的数值组中的数值通过递归运算,获得包括设定数量数值的数值组,其中,若所述数值组中数值的取值大于设定数值,则通过异或运算使所述数值组中数值的取值小于或等于设定数值;将获得的包括设定数量数值的数值组中的指定数值,作为设定轮密钥中尚未获得的第一个轮密钥。
可选的,使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述处理模块602还包括设置第一数据值为第一数组,第二数据值为第二数组,其中,第一数组中元素数量与第二数组中元素数量相等;另第一数组中第二个元素值等于第二数组中第一个元素值;使用第二数组中第一个元素值和第一个轮密钥以及轮函数,获得第一轮变换运算值;设定第一模数和第二模数;对第一轮变换运算值和第一数组中第一个元素值做第一模压缩函数运算,获得第二数组中的第二个元素值,所述第一模压缩函数运算使用第一模数;另第一数组中第三个元素值等于第二数组中第二个元素值;对第二数组中第二个元素值和第二个轮密钥以及轮函数,获得第二轮变换运算值;对第二轮变换运算值和第一数组中第二个元素值做第二模压缩函数运算,获得第二数组中的第三个元素值,所述第二模压缩函数运算使用第二模数;
迭代执行上述过程,直到获得第一数组中预设迭代加密次数的最后一次元素值和第二数组中预设迭代加密次数的最后一次元素值;将所述获得的第一数组中预设迭代加密次数的最后一次元素值和第二数组中迭代加密次数的最后一次元素值设置为第三数据值和第四数据值。
可选的,所述处理模块602还包括若生成的加密身份证号不符合设定条件,则将生成的加密身份证号作为待加密身份证号继续加密,直到获得符合设定条件的加密身份证号。
在介绍了本申请实施例提供的一种身份证号的加密方法、装置之后,接下来,对本申请实施例提供的一种身份证号加密电子设备进行简单介绍。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行身份证号的加密方法。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,
服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述身份证号的加密方法。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种身份证号的加密方法,其特征在于,所述方法包括:
从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;
获取加密密钥;
对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出足够多的轮密钥;
使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用轮函数和派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;
按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;
根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
2.根据权利要求1所述的方法,其特征在于,获取加密密钥,包括:
若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥;
若获取的当前加密密钥长度大于预设加密密钥长度,则选取所述当前加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。
3.根据权利要求1所述的方法,其特征在于,对所述加密密钥进行分组派生出轮密钥,在派生出的轮密钥数量不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥,包括:
使用已经派生出的第一指定轮密钥与设定轮密钥数量中尚未获得的第一个轮密钥的编序号相加后进行取模运算,获得轮密钥第一数值;
使用已经派生出的的第二指定轮密钥与所述轮密钥第一数值做异或运算,获得轮密钥第二数值;
使用设定的轮密钥第二数值的加密密钥对所述轮密钥第二数值加密,获得轮密钥第二加密数值,使用轮函数和轮密钥第二加密数值获得设定轮密钥数量中尚未获得的第一个轮密钥;
重复执行上述过程,直到获得设定轮密钥数量的轮密钥。
4.根据权利要求3所述的方法,其特征在于,使用轮函数和轮密钥第二数值获得设定轮密钥中尚未获得的第一个轮密钥,包括:
将所述轮密钥第二数值拆分为数值组,分别将数值组中的每个数值做代替变换,得到代替变换后的数值组;
若所述代替变换后的数值组中的数值不足设定数量,则由代替变换后的数值组中的数值通过递归运算,获得包括设定数量数值的数值组,其中,若所述数值组中数值的取值大于设定数值,则通过异或一个设定数值使所述数值组中数值的取值小于或等于设定数值;
将获得的包括设定数量数值的数值组中的指定数值,作为设定轮密钥中尚未获得的第一个轮密钥。
5.根据权利要求1所述的方法,其特征在于,使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,包括:
设定第一模数和第二模数;
设置第一数据值为第一数组,第二数据值为第二数组,其中,第一数组中元素数量与第二数组中元素数量相等;
另第一数组中第二个元素值等于第二数组中第一个元素值;
使用第二数组中第一个元素值和第一个轮密钥以及轮函数,获得第一轮变换运算值;
对第一轮变换运算值和第一数组中第一个元素值做第一模压缩函数运算,获得第二数组中的第二个元素值,所述第一模压缩函数运算使用第一模数;
另第一数组中第三个元素值等于第二数组中第二个元素值;
使用第二数组中第二个元素值和第二个轮密钥以及轮函数,获得第二轮变换运算值;
对第二轮变换运算值和第一数组中第二个元素值做第二模压缩函数运算,获得第二数组中的第三个元素值,所述第二模压缩函数运算使用第二模数;
迭代执行上述过程,直到获得第一数组中预设迭代加密次数的最后一次元素值和第二数组中预设迭代加密次数的最后一次元素值;
将所述获得的第一数组中预设迭代加密次数的最后一次元素值和第二数组中迭代加密次数的最后一次元素值设置为第三数据值和第四数据值。
6.根据权利要求1所述的方法,其特征在于,还包括:
若生成的加密身份证号不符合设定条件,则将生成的加密身份证号作为待加密身份证号继续加密,直到获得符合设定条件的加密身份证号。
7.一种身份证号的加密装置,其特征在于,所述装置包括:
获取模块,用于从待加密身份证号中获取第一数据和第二数据,对所述第一数据按照第一映射规则进行映射获得第一数据值,对所述第二数据按照第二映射规则进行映射获得第二数据值;
所述获取模块,还用于获取加密密钥;
处理模块,用于对所述加密密钥进行分组派生出轮密钥,并在派生出的轮密钥不足设定数量时,利用已经派生出的轮密钥和轮函数派生出其它轮密钥;
所述处理模块,还用于使用所述第一数据值和所述第二数据值以交互扰乱形式进行预设次数的迭代加密,获得第三数据值和第四数据值,所述第三数据值的取值范围与所述第一数据值相同,所述第四数据值的取值范围与所述第二数据值相同,其中,在迭代加密过程中,利用轮函数和派生出的轮密钥进行所述轮变换运算,并进行特定的模压缩函数运算;
所述处理模块,还用于按照所述第一映射规则将所述第三数据值映射为第三数据,按照所述第二映射规则将所述第四数据值映射为第四数据;
所述处理模块,还用于根据所述预设规则,对所述第三数据和所述第四数据进行拆分,根据拆分结果生成加密后的身份证号。
8.根据权利要求7所述的装置,其特征在于,所述处理模块还用于:
若获取的当前加密密钥长度小于预设加密密钥长度,则获得当前加密密钥长度的后一个字节的密钥,重复上述过程,直到将加密密钥长度填充为预设加密密钥长度,获得预设加密密钥长度中每个字节对应的密钥,其中,使用当前加密密钥每个字节对应的密钥、当前加密密钥长度的后一个字节对应的编序号,获得当前加密密钥长度的后一个字节对应的密钥;
若获取的当前加密密钥长度大于预设加密密钥长度,则选取所述当前加密密钥长度中预设加密密钥长度对应的密钥作为加密密钥。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1至6中任一项所述的身份证加密方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6中任一项所述的身份证加密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097855.1A CN116049841B (zh) | 2022-09-08 | 2022-09-08 | 一种身份证号的加密方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097855.1A CN116049841B (zh) | 2022-09-08 | 2022-09-08 | 一种身份证号的加密方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116049841A true CN116049841A (zh) | 2023-05-02 |
CN116049841B CN116049841B (zh) | 2023-09-19 |
Family
ID=86126408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211097855.1A Active CN116049841B (zh) | 2022-09-08 | 2022-09-08 | 一种身份证号的加密方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049841B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595539A (zh) * | 2013-11-26 | 2014-02-19 | 南开大学 | 保留格式的数值型个人识别信息的加密方法 |
US20150244518A1 (en) * | 2014-02-21 | 2015-08-27 | Electronics And Telecommunications Research Institute | Variable-length block cipher apparatus and method capable of format preserving encryption |
CN105959098A (zh) * | 2016-04-28 | 2016-09-21 | 东港股份有限公司 | 基于多分割Feistel网络的保留格式加密算法 |
-
2022
- 2022-09-08 CN CN202211097855.1A patent/CN116049841B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595539A (zh) * | 2013-11-26 | 2014-02-19 | 南开大学 | 保留格式的数值型个人识别信息的加密方法 |
US20150244518A1 (en) * | 2014-02-21 | 2015-08-27 | Electronics And Telecommunications Research Institute | Variable-length block cipher apparatus and method capable of format preserving encryption |
CN105959098A (zh) * | 2016-04-28 | 2016-09-21 | 东港股份有限公司 | 基于多分割Feistel网络的保留格式加密算法 |
Non-Patent Citations (1)
Title |
---|
李敏: "《保留格式加密技术应用研究》", 《信息科技》, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN116049841B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489521B2 (en) | Format preserving encryption methods for data strings with constraints | |
US8208627B2 (en) | Format-preserving cryptographic systems | |
US9208491B2 (en) | Format-preserving cryptographic systems | |
US7864952B2 (en) | Data processing systems with format-preserving encryption and decryption engines | |
US8855296B2 (en) | Data processing systems with format-preserving encryption and decryption engines | |
US20170149565A9 (en) | Format-preserving cryptographic systems | |
TW201812638A (zh) | 區塊鏈加密射頻晶片存儲設計方法 | |
CN107078899B (zh) | 混淆数据的方法 | |
CN111314069B (zh) | 基于区块链的摇号系统、方法、电子设备及存储介质 | |
GB2520446A (en) | Quorum based data processing | |
CN105471575A (zh) | 一种信息加密、解密方法及装置 | |
CN112738051B (zh) | 数据信息加密方法、系统及计算机可读存储介质 | |
EP2991264B1 (en) | Encrypted text matching system, method and program | |
CN116324778A (zh) | 可更新私有集合交集 | |
CN117708847A (zh) | 基于数据压缩与加密的3c产品租赁平台数据处理方法 | |
Saracevic et al. | Implementation of encryption and data hiding in E-health application | |
CN116049841B (zh) | 一种身份证号的加密方法、装置、设备及介质 | |
CN109951275B (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
WO2023093278A1 (zh) | 数字签名门限方法和装置 | |
CN115941187A (zh) | 一种基于md5的不可逆随机加盐加密方法及系统 | |
CN106357662B (zh) | 一种基于mac地址的数据加密方法 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
CN112614557A (zh) | 电子病历加密存档方法 | |
CN111259449A (zh) | 隐私数据的处理方法、清理器以及云端存储系统 | |
US6801625B1 (en) | Apparatus and method for stripping parity bits from an input stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |