【技术实现步骤摘要】
一种基于消息鉴别码算法的保留格式加密方法及解密方法
本专利技术涉及信息安全
,具体而言,涉及一种基于消息鉴别码算法的保留格式加密方法及解密方法。
技术介绍
如今,计算机技术飞速发展,每天都有各种各样的敏感数据在网络上传播。有大量第三方机构对这些敏感数据进行收集、分析、挖掘,这些数据在使用的过程中也导致了不少敏感数据泄漏的问题,甚至经常发生严重的隐私泄露事件,这可能造成无法弥补的损失。在实际应用中,常见的防护手段是对这些敏感数据进行加密。但是对数据库中具有特定格式的数据,比如银行卡号、身份证号等敏感数据,使用传统的分组密码算法直接进行加密会出现一系列的问题,比如通常会导致数据长度的扩展,使得数据的类型发生变化等,这就需要修改数据库结构或应用程序来适应传统加密带来的这些变化,成本非常高。为了解决这类敏感数据的加密问题,保留格式加密(format-preservingencryption,简称FPE)被提了出来。FPE可以用来进行数据遮蔽,即通过对原始数据进行掩码转换,输出一个与原始数据的格式、关联等均一模一样的数据,从而解决从生产环境的数据向测试环境(或者开发环境)导入时可能产生的数据内容安全问题。近年来,美国国家标准与技术研究院(NationalInstituteofStandardsandTechnology,NIST)就此问题进行了研究,并发布了NISTSP800-38G文档,提出了FPE算法FF1、FF3-1等。FF1和FF3-1算法都将待加密消息一分为二(分别记为左支数据和右支数据),以AES系列 ...
【技术保护点】
1.一种基于消息鉴别码算法的保留格式加密方法,其特征在于,包括如下步骤:/nS11,字符串拆分:将输入的待加密明文
【技术特征摘要】
1.一种基于消息鉴别码算法的保留格式加密方法,其特征在于,包括如下步骤:
S11,字符串拆分:将输入的待加密明文P拆分为两个子字符串并分别转化为BN型整数;
S12,字符串迭代:设置迭代索引号为i=0,1,2,…,7,对步骤S11得到的两个BN型整数进行8轮基于Feistel结构和PRF变换的迭代;所述PRF变换是基于消息鉴别码算法HMAC-SM3的伪随机数字节生成函数;
S13,字符串合并:将迭代得到的两个BN型整数分别转为字符串后串联合并为一个字符串,得到密文C。
2.根据权利要求1所述的基于消息鉴别码算法的保留格式加密方法,其特征在于,步骤S11包括如下子步骤:
S111,输入密钥K,长度为7个字节的调节因子T,以及待加密明文P;所述待加密明文P是长度为n的字符串,n满足,radix满足2≤radix≤65536;
S112,分别取INT型整数,v←n-u,符号←代表赋值,即将赋值给u,n-u赋值给v;将明文字符串P拆分为两个字符串A和B:
A←P[1,…,u],B←P[u+1,…,n]
其中,P[1,…,u]表示明文字符串P中的第1至u个字符,P[u+1,…,n]表示明文字符串P中的第u至n个字符;即将明文字符串P中的第1至u个字符赋值给字符串A,将明文字符串P中的第u+1至n个字符赋值给字符串B;
S113,将这两个字符串A和B分别转为BN型整数α和β:
α←NUMradix(REV(A)),β←NUMradix(REV(B))。
3.根据权利要求2所述的基于消息鉴别码算法的保留格式加密方法,其特征在于,步骤S12包括如下子步骤:
S121,组合16个字节的字节串Q:
式中,mod表示模运算,即取余数,即:
(1)当imod2=0,即当迭代索引号i为偶数时,字节串Q为:
取调节因子T的第5~7个字节T[5..7];
取调节因子T的第4个字节T[4],将T[4]与一个十六进制数0x0F做与运算,得到T[4]^0x0F;再将此结果左移4比特得到(T[4]^0x0F)<<4;再将(T[4]^0x0F)<<4与[i]1做异或运算,得到((T[4]^0x0F)<<4)⊕[i]1;
最后将T[5..7]、((T[4]^0x0F)<<4)⊕[i]1以及[β]12做串联得到字节串Q;
(2)当imod2≠0,即当迭代索引号i为奇数时,字节串Q为:
取调节因子T的第1~3个字节T[1..3];
取调节因子T的第4个字节T[4],将T[4]与一个十六进制数0x0F做与运算,得到T[4]^0x0F;再将T[4]^0x0F与[i]1做异或运算,得到(T[4]^0x0F)⊕[i]1;
最后将T[1..3]、(T[4]^0x0F)⊕[i]1以及[β]12做串联得到字节串Q;
其中,[i]1表示将i转换为长度为1的字节串,[β]12表示将β转换为长度为12的字节串;
S122,将字节串Q利用PRF变换计算消息鉴别码得到字节串E:
E←PRFREVB(K)(REVB(Q))
S123,将字节串E转为BN型整数γ:
γ←NUM(E)
S124,执行模加运算得到BN型整数δ:
δ←(α+γ)modradixm
即将BN型整数α和步骤S123得到的BN型整数γ相加后,将相加的结果与radixm进行模运算,并将模运算结果赋值给BN型整数δ;
其中,INT型整数m的取值为,如果imod2=0,m←u,否则m←v;即当迭代索引号i为偶数时,将u赋值给m;当迭代索引号i为奇数时,将v赋值给m;
S125,左右互换,即α←β,β←δ;即将BN型整数β赋值给BN型整数α,再将步骤S124得到的BN型整数δ赋值给BN型整数β;
S126,按迭代次数重复执行步骤S121~S125,迭代完成后得到BN型整数α和β。
4.根据权利要求3所述的基于消息鉴别码算法的保留格式加密方法,其特征在于,步骤S121中的所述字节串Q能够做如下简化:
S1211,分别计算两个字节BE和Bo:
B
E
←(T[4]^0x0F)<<4,Bo←T[4]^0x0F
即,将(T[4]^0x0F)<<4赋值给BE,将T[4]^0x0F赋值给Bo;
S1212,字节串Q简化为:
即:
(1)当imod2=0,即当迭代索引号i为偶数时,字节串Q为:
取调节因子T的第5~7个字节T[5..7];
将BE与[i]1做异或运算,得到BE⊕[i]1;
最后将T[5..7]、BE⊕[i]1以及[β]12做串联得到字节串Q;
(2)当imod2≠0,即当迭代索引号i为奇数时,字节串Q为:
取调节因子T的第1~3个字节T[1..3];
将Bo与[i]1做异或运算,得到Bo⊕[i]1;
最后将T[1..3]、B...
【专利技术属性】
技术研发人员:罗影,张文科,敖麒,刘红军,
申请(专利权)人:工业信息安全四川创新中心有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。