【技术实现步骤摘要】
一种基于传统分组密码的保持格式加密方法
本专利技术属于隐私保护数据加密领域,具体涉及一种基于传统分组密码的保持格式的加密方法,该方法可以应用于电子商务等需要保护数字型和字母型格式数据的场景。
技术介绍
随着电子商务平台的快速发展,网上交易、手机银行等服务给人们(用户)的生活带来了许多便利。在这些服务中存在着这样一类敏感数据,其特征是内容少,价值高,是攻击者重点窃取的数据,如电子交易过程中发挥重要的身份认证作用的验证码,在传输和存储阶段需要进行保护,一旦被窃取,极大可能会造成用户财产损失。密码技术是保障数据安全性的最有效方法之一,这类敏感数据往往会包含一定的格式,如:固定长度、纯数字、数字与字母混合等,传统的加密算法(如:AES)会破坏数据的格式,会出现加密后的数据与原有数据长度不等、包含除原有格式之外的其他字符等现象,而且会影响数据库结构和业务系统功能。因此,对这类敏感数据做到保持格式加密不仅可以保证数据的安全传输和存储,而且可以让窃取者无法判断数据的真伪,也为进一步追踪窃取者提供基础技术手段。
技术实现思路
本专利技术目的是提供一种基于传统分组密码的保持格式加密方法,它能够解决包含数字和字母的数据在加密之后仍然保持原数据格式的特征。本专利技术为实现上述目的,通过以下技术方案实现:一种基于传统分组密码的保持格式加密方法包括以下步骤:S1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;S2:选择一种分组长度大于3n的分组密码算法(Blockci ...
【技术保护点】
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变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作; ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。