[發明專利]面向字節的隨機多表替換加密與解密方法在審
| 申請號: | 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.szxzyx.cn/pat/books/202011248734.3/1.html,轉載請聲明來源鉆瓜專利網。





