[发明专利]面向字节的随机多表替换加密与解密方法在审
申请号: | 202011248734.3 | 申请日: | 2020-11-10 |
公开(公告)号: | CN112422278A | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 李春林 | 申请(专利权)人: | 西安培华学院 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/14;H04L9/00;H04L29/06 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 段俊涛 |
地址: | 710125 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 字节 随机 替换 加密 解密 方法 | ||
1.面向字节的随机多表替换加密方法,明文、密文和密钥均是有限域GF(28)内的元素,替换表S共有256个元素,工作密钥WKey共有256个元素,用户密钥Key的元素个数可变,最少一个元素,最多256个元素,通过密钥扩展算法生成工作密钥WKey,其特征在于,加密步骤如下:
第(1)步:生成替换表S和工作密钥WKey,产生M个随机数用来改变工作密钥WKey,并生成密文反馈字符FC,具体步骤如下:
第(101)步:生成替换表S,将替换表S中256个元素的值,分别设置为0~255,即S(i)=i,i=0~255;
第(102)步:将用户密钥Key扩展为工作密钥WKey;
第(103)步:根据用户对安全等级的不同要求,分别产生8个、16个或32个GF(28)内的随机数Rnd,进行周期扩展后与第(102)步产生的工作密钥WKey进行mod 256的加法运算,即:WKey(i)=(WKey(i)+Rnd(j))mod 256,i=0~255,j=i mod M,M是系统根据安全等级不同而设定的随机数的个数,将这M个随机数直接输出到密文文件中;
第(104)步:选取工作密钥WKey中的部分元素做mod 256的加法运算,产生初始秘密字符iniSecChar,并将密文反馈字符FC设定为初始秘密字符,即FC=iniSecChar;
第(2)步:循环加密所有明文字符,直到所有明文字符加密完毕,具体步骤如下:
第(201)步:使用工作密钥WKey改变替换表S中元素的位置,i、j是替换表S中元素的编号,j的初始值为0,i从0到255,每次递增1,计算出和当前值i进行交换的值j,j=(j+WKey(i)+S(i))mod 256,然后交换S(i)和S(j)的值;
第(202)步:通过替换表S替换明文字符Pchar,生成相对应的密文字符Cchar,即Cchar=S(Pchar),输出密文字符Cchar;
第(203)步:根据密文字符Cchar的值,改变密文反馈字符FC的值,即FC=(S(Cchar)+iniSecChar)mod 256;
第(204)步:根据替换表S和密文反馈字符FC的值,改变工作密钥WKey的值,即WKey(i)=(WKey(i)+S(WKey(i))+FC)mod 256,i=0~255。
2.根据权利要求1所述面向字节的随机多表替换加密方法,其特征在于,所述第(102)步将用户密钥Key扩展为工作密钥WKey的方法是:首先将用户密钥Key进行周期扩展,直到密钥长度为256个,然后将扩展部分密钥值逐次增加1,并做Mod 256运算,即WKey(i)=Key(i),i=0~N-1,WKey(i)=(Key(j)+i-N+1)mod 256,i=N~255,j=i mod N,N为用户密钥Key的元素个数。
3.根据权利要求1所述面向字节的随机多表替换加密方法,其特征在于,所述第(104)步产生初始秘密字符iniSecChar的方法:在算法中直接设定选取的元素序号,或选择用户密钥Key的元素作为选取的序号,即iniSecChar=(WKey(Key(1))+WKey(Key(2))+…+WKey(Key(N)))mod 256,其中的N为用户密钥Key的元素个数,Key(1)为用户密钥Key的第一个元素。
4.与权利要求1所述面向字节的随机多表替换加密方法对应的解密算法,明文、密文和密钥均是有限域GF(28)内的元素,替换表S和解密替换表DS均有256个元素,工作密钥WKey也有256个元素,用户密钥Key的元素个数可变,最少一个元素,最多256个元素,通过密钥扩展算法生成工作密钥WKey,其特征在于,解密步骤如下:
第(D1)步:生成替换表S、工作密钥WKey和密文反馈字符FC,具体步骤如下:
第(D101)步:生成替换表S,将替换表S中256个元素的值,分别设置为0~255,即S(i)=i,i=0~255;
第(D102)步:将用户密钥Key扩展为工作密钥WKey;
第(D103)步:从加密文件中读出前面的M个随机数Rnd,进行周期扩展后与第(D102)步产生的工作密钥WKey进行mod 256的加法运算,改变工作密钥WKey元素的值,即:WKey(i)=(WKey(i)+Rnd(j))mod 256,i=0~255,j=i mod M,M是系统根据安全等级不同而设定的随机数的个数;
第(D104)步:选取工作密钥WKey中的部分元素做mod 256的加法运算,产生初始秘密字符iniSecChar,并将密文反馈字符FC设定为初始秘密字符,即FC=iniSecChar;
第(D2)步:循环解密所有密文字符,直到所有密文字符解密完毕,具体步骤如下:
第(D201)步:使用工作密钥WKey改变替换表S中元素的位置,i、j是替换表S中元素的编号,j的初始值为0,i从0到255,每次递增1,计算出和当前值i进行交换的值j,j=(j+WKey(i)+S(i))mod 256,然后交换S(i)和S(j)的值;
第(D202)步:计算出解密替换表DS,DS(S(i))=i,i=0~255;
第(D203)步:通过解密替换表DS,将密文字符Cchar替换为明文字符Pchar,即Pchar=DS(Cchar),输出明文字符Pchar;
第(D204)步:根据密文字符Cchar的值,改变密文反馈字符FC的值,即FC=(S(Cchar)+iniSecChar)mod 256;
第(D205)步:根据替换表S和密文反馈字符FC的值,改变工作密钥的值,即WKey(i)=(WKey(i)+S(WKey(i))+FC)mod 256,i=0~255。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安培华学院,未经西安培华学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011248734.3/1.html,转载请声明来源钻瓜专利网。