当前位置: 首页 > 专利查询>贵州大学专利>正文

一种基于传统分组密码的保持格式加密方法技术

技术编号:19351743 阅读:39 留言:0更新日期:2018-11-07 17:21
本发明专利技术公开了一种基于传统分组密码的保持格式加密方法。本发明专利技术设计了一种保持数字型和字母型混合格式的加密方法,该加密方法通过构造替换表实现数字和字母与比特串之间的转化,使用了Feistel网络结构,在轮运算中使用了传统的分组密码算法,保障算法的安全性,在轮运算前后设计了压缩映射运算,不但保障了加密后的数据在指定格式范围内,也在整体上保留了Feistel网络结构加密与解密过程一致的特点,最终加密结果的长度与明文保持一致。用户根据实际应用场景需求,可以选择不同的替换表和选择不同的分组密码算法对数据进行加密和解密。该加密方法保障了数据在传输和存储阶段的安全,并且不会破坏数据库结构和业务系统功能。

【技术实现步骤摘要】
一种基于传统分组密码的保持格式加密方法
本专利技术属于隐私保护数据加密领域,具体涉及一种基于传统分组密码的保持格式的加密方法,该方法可以应用于电子商务等需要保护数字型和字母型格式数据的场景。
技术介绍
随着电子商务平台的快速发展,网上交易、手机银行等服务给人们(用户)的生活带来了许多便利。在这些服务中存在着这样一类敏感数据,其特征是内容少,价值高,是攻击者重点窃取的数据,如电子交易过程中发挥重要的身份认证作用的验证码,在传输和存储阶段需要进行保护,一旦被窃取,极大可能会造成用户财产损失。密码技术是保障数据安全性的最有效方法之一,这类敏感数据往往会包含一定的格式,如:固定长度、纯数字、数字与字母混合等,传统的加密算法(如:AES)会破坏数据的格式,会出现加密后的数据与原有数据长度不等、包含除原有格式之外的其他字符等现象,而且会影响数据库结构和业务系统功能。因此,对这类敏感数据做到保持格式加密不仅可以保证数据的安全传输和存储,而且可以让窃取者无法判断数据的真伪,也为进一步追踪窃取者提供基础技术手段。
技术实现思路
本专利技术目的是提供一种基于传统分组密码的保持格式加密方法,它能够解决包含数字和字母的数据在加密之后仍然保持原数据格式的特征。本专利技术为实现上述目的,通过以下技术方案实现:一种基于传统分组密码的保持格式加密方法包括以下步骤:S1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;S2:选择一种分组长度大于3n的分组密码算法(Blockcipheralgorithm),记为E,并选取与E对应长度的密钥Key,将密钥Key进行密钥扩展,得到key0,key1,key2,…,keyr共r+1个子密钥,除key0外,每一个子密钥的长度与分组密码算法E的密钥长度相同,并根据子密钥key0计算得到两个校验码check1,check2,校验码不需要进行传输,解密不使用校验码,明文加密之后校验码可销毁;S3:将明文m与子密钥key0进行f1运算,即m=f1(m,key0),经过轮函数F的运算,即c=F(m),得到密文c,将密文c与子密钥key0进行f2运算,即c=f2(c,key0),然后按每6位转化为十进制,并根据替换表T变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作;S4:解密过程与加密过程相似,不同之处是在轮运算中解密过程中子密钥使用的顺序与加密过程相反。进一步,所述步骤S1包括如下步骤:S11:明文长度为n,表示为X1X2…Xn,Xi∈X={0,1,…,9,a,b,…,z,A,B,…,Z},在这62元素所组成的集合X与集合Y={0,1,…,61}之间构造一个一一映射的关系,即构造替换表S12:明文X1X2…Xn经过替换表T变换后得到Y1Y2…Yn;S13:Y1Y2…Yn中每一个Yi按十进制转二进制的方式转化成6位比特串,从而组合成长度为6n的密文比特串m=(m1m2…m6n),mi∈{0,1},(i=1,2,…,6n)。进一步,所述步骤S2包括如下步骤:S21:选择一种分组密码算法,记为E,E的分组长度为nE(nE≥3n),E的密钥长度为mE,E的加密结果表示为cE=EK(mE),其中K为密钥,mE为分组密码E明文,cE为分组密码E对明文mE加密的结果;S22:选取长度为mE的密钥Key,作为本专利技术的密钥;S23:密钥Key进行密钥扩展。其中S23包括如下步骤:S231:密钥Key表示为k1k2…kmE,ki∈{0,1}(i=1,2,…,mE),截取前四位与比特串“10”组合构成子密钥key0=k1k2k3k401;S232:子密钥key1,key2,…,keyr按如下方式进行计算:其中<<<表示左循环位移,S233:校验码check1,check2计算公式如下:其中bin2dec(·)表示由二进制转化为十进制。进一步,所述步骤S3包括如下步骤:S31:明文m=(m1m2…m6n)与子密钥key0=k1k2k3k410进行f1运算,m=f1(m,key0),f1运算细节如下:记S32:将f1运算的结果m=(m1m2…m6n)进行轮函数F运算;其中S32包括如下步骤:S321:将m=(m1m2…m6n)划分为两部分,L0=(m1m2…m3n),R0=(m3n+1m3n+2…m6n);S322:按如下迭代公式进行r轮运算。迭代公式为:其中trunc(Ekeyi(Ri-1),3n)表示为将Ri-1使用密钥keyi和加密算法E进行加密,得到的结果截取前3n位;S323:经过r轮迭代得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到密文c=(Lr+1,Rr+1),记c=(c1c2…c6n)。S33:密文c=(c1c2…c6n)与子密钥key0=k1k2k3k410进行f2运算,即c=f2(c,key0),f2运算细节如下:记tci=c1+6ic2+6ic3+6ic4+6ic5+6ic6+6i(i=0,1,…,n-1)S34:密文c=(c1c2…c6n)中每6位依次按二进制转十进制的方式转化成Y1'Y2'…Yn',其中Yi'∈Y(i=1,2,…,n);S35:Y1'Y2'…Yn'经过替换表T变换成X1'X2'…Xn',其中Xi'∈X(i=1,2,…,n),此时完成了X1X2…Xn到X1'X2'…Xn'的加密过程;S36:判断X1'X2'…Xn'中是否包含校验码check1,check2中的1个或者2个,若有,则更换密钥重新加密,若无,则X1'X2'…Xn'为加密之后的结果。进一步,所述步骤S4包括以下步骤S41:密文X1'X2'…Xn'经过替换表T变换成Y1'Y2'…Yn';S42:Y1'Y2'…Yn'中每一个Yi'按十进制转二进制的方式转化成6位比特串,变换为c=(c1c2…c6n);S43:c=(c1c2…c6n)与子密钥key0=k1k2k3k410进行f1运算,即c=f1(c,key0);S44:c=(c1c2…c6n)经过轮函数F运算,m=F(c),得到m=(m1m2…m6n),此时轮函数F运算中密钥使用顺序与加密过程相反,具体过程为:将c=(c1c2…c6n)划分为左右两部分,L0=(c1c2…c3n),R0=(c3n+1c3n+2…c6n),按如下迭代公式进行r轮运算得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到m=(Lr+1,Rr+1);S45:m经过f2运算,m=f2(m);S46:m中每6位依次按二进制转十进制的方式转化成Y1Y2…Yn;S47:Y1Y2…Yn经过替换表T,变换成X1X2…Xn,得到解密结果,完成解密过程。本专利技术原理是,在一种基于传统分组密码的保持格式加密方法中构造了f1运算和f2运算保证了在加密结果和解密结果在给定的取值范围内;并结合了Feistel网络结构,保证加密过程和解密过程一致;在轮函数F的构造中,使用了传统分组密码算法,让本专利技术的安全性依托于所选取的传统分组密码算法。本专利技术是一种基于传统分组密码的保持格式加密方法,实现了保持数值型和字母型混本文档来自技高网...

【技术保护点】
1.一种基于传统分组密码的保持格式加密方法,其特征在于,包括如下步骤:步骤1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;步骤2:选择一种分组长度大于3n的分组密码算法(Block cipher algorithm),记为E,并选取与E对应长度的密钥Key,将密钥Key进行密钥扩展,得到key0,key1,key2,…,keyr共r+1个子密钥,除key0外,每一个子密钥的长度与分组密码算法E的密钥长度相同,并根据子密钥key0计算得到两个校验码check1,check2,校验码不需要进行传输,解密不使用校验码,明文加密之后校验码可销毁;步骤3:将明文m与子密钥key0进行f1运算,即m=f1(m,key0),经过轮函数F运算,即c=F(m),得到密文c,将密文c与子密钥key0进行f2运算,即c=f2(c,key0),然后按每6位转化为十进制,并根据替换表T变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作;步骤4:解密过程与加密过程相似,不同之处是在轮运算中解密过程中子密钥使用的顺序与加密过程相反。...

【技术特征摘要】
1.一种基于传统分组密码的保持格式加密方法,其特征在于,包括如下步骤:步骤1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;步骤2:选择一种分组长度大于3n的分组密码算法(Blockcipheralgorithm),记为E,并选取与E对应长度的密钥Key,将密钥Key进行密钥扩展,得到key0,key1,key2,…,keyr共r+1个子密钥,除key0外,每一个子密钥的长度与分组密码算法E的密钥长度相同,并根据子密钥key0计算得到两个校验码check1,check2,校验码不需要进行传输,解密不使用校验码,明文加密之后校验码可销毁;步骤3:将明文m与子密钥key0进行f1运算,即m=f1(m,key0),经过轮函数F运算,即c=F(m),得到密文c,将密文c与子密钥key0进行f2运算,即c=f2(c,key0),然后按每6位转化为十进制,并根据替换表T变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作;步骤4:解密过程与加密过程相似,不同之处是在轮运算中解密过程中子密钥使用的顺序与加密过程相反。2.根据权利要求1所述基于传统分组密码的保持格式加密方法,其特征在于:步骤1所述替换表是通过如下方式进行构造:明文的每一位取值范围为X={0,1,…,9,a,b,…,z,A,B,…,Z},通过与Y={0,1,…,61}之间构造一一映射关系来形成替换表,只要是X与Y的一一映射均可作为替换表。3.根据权利要求1所述基于传统分组密码的保持格式加密方法,其特征在于:步骤2所述选取传统分组密码算法、密钥扩展和校验码是通过如下算法来实现:选取传统分组密码算法:选择一种传统分组密码算法E,该分组密码算法可以根据应用场景自行选择合适的分组密码算法,分组长度需要大于明文长度的3倍,该分组密码算法的密钥长度为本发明的密钥长度;密钥扩展:作为本发明的密钥,其中mE表示密钥的长度,截取Key的前四位和“10”组合构造子密钥key0=k1k2k3k410;将密钥Key与轮数1进行异或运算,所得结果等长度划分为左右两个部分,左边保持不变,右边与左边进行异或操作,从而得到子密钥key1;从子密钥key2开始,将上一轮子密钥keyi-1与轮数i进...

【专利技术属性】
技术研发人员:谢明明彭长根刘波涛吴睿雪丁红发
申请(专利权)人:贵州大学
类型:发明
国别省市:贵州,52

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

1