[發明專利]一種基于分層置亂的漢字加密方法在審
| 申請號: | 202210359706.1 | 申請日: | 2022-04-06 |
| 公開(公告)號: | CN114741712A | 公開(公告)日: | 2022-07-12 |
| 發明(設計)人: | 盛蘇英;劉焰森;陸國平;張小美;吳新華;張嘉豪;范云雷;杜宇笙 | 申請(專利權)人: | 南通大學 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60;H04L9/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 226019*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 分層 漢字 加密 方法 | ||
1.一種基于分層置亂的漢字加密方法,其特征在于,包括如下幾個步驟:
(1)轉碼
首先,將某段待加密漢字A逐字轉換為數值型數據[Pi1,Pi2],得到高位數值序列P1={P11,P12,...,P1i,....,P1L}={P11,P21,...,Pi1,....,PL1}和低位數值序列P2={P21,P22,...,P2i,....,P2L}={P12,P22,...,Pi2,....,PL2},
然后,利用函數dec2bin(·,12),將高位數值序列P1中元素P1i逐個轉換成12bits的二進制序列{PB1i1,PB1i2,PB1i3,PB1i4,PB1i5,PB1i6,PB1i7,PB1i8,PB1i9,PB1i10,PB1i11,PB1i12},并按列填入矩陣,得到二進制矩陣B1,
最后,利用函數dec2bin(·,12),將低位數值序列P2中元素P2i逐個轉換成12bits的二進制序列{PB2i1,PB2i2,PB2i3,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8,PB2i9,PB2i10,PB2i11,PB2i12},并按列填入矩陣,得到二進制矩陣B2,
其中,某段待加密漢字包括GB2312字符集中的中文標點符號、GB2312字符集中雙字節編碼的漢字,某段待加密漢字的長度表示為L,數值序列P1和P2的長度均為L,二進制矩陣B1和B2的大小為12×L;
(2)分層置亂
首先,對二進制矩陣B1按行進行分層,得到相應12個二進制分層序列,表示為同樣對二進制矩陣B2按行進行分層,得到相應12個二進制分層序列,表示為其中j=1,2,...,11,12,
接著,利用外部加密密鑰α和β,按照如下公式(1)分別計算得到混沌系統的初值x1,參數μ,初始迭代步數m1、m2,以及抽取間隔n1、n2,
令則
其中,分別表示二進制分層序列中含二進制‘0’的個數,函數表示為不大于a的最大整數,外部密鑰滿足α∈(0,1),β∈(3.57,4),
由混沌系統的初值x1和參數μ,對如下公式(2)所示Logistic混沌映射進行迭代,式中k表示迭代次數、xk+1表示第k次迭代得到的混沌信號,k=1,2,...,max(m1+12n1,m2+12n2),
xk+1=μ×xk×(1-xk) (2)
得到混沌序列X,從第m1個元素開始每隔n1個元素取1個,從而形成長度為12的混沌序列Y,并從第m2個元素開始每隔n2個元素取1個,從而形成長度為12的混沌序列Z,
將混沌序列Y按升序排序,將序列Y排序前、后的位置變化置亂規則記為T1={T11,T12,...,T111,T112},同時將混沌序列Z按升序排序,將序列Z排序前、后的位置變化置亂規則記為T2={T21,T22,...,T211,T212},
利用位置變化置亂規則T1對二進制分層序列進行置亂,得到置亂后的二進制分層序列利用位置變化置亂規則T2對二進制分層序列進行置亂,得到置亂后的二進制分層序列其中j=1,2,...,11,12;
然后,將二進制分層序列和依次進行如下置亂拼接操作:
S0:令j=1,置亂拼接規則參數
S1:判斷置亂拼接規則參數rule_Perm的數值,
如果rule_Perm=0,則將置亂后的二進制分層序列和置亂后的二進制分層序列順序拼接,即
如果rule_Perm=1,則將置亂后的二進制分層序列和置亂后的二進制分層序列順序拼接,即
如果rule_Perm=2,則將置亂后的二進制分層序列和置亂后的二進制分層序列順序拼接,并將其前后翻轉,即
如果rule_Perm=3,則將置亂后的二進制分層序列和置亂后的二進制分層序列順序拼接,并將其前后翻轉,即
從而得到置亂拼接后的二進制分層序列
S2:首先將置亂拼接后的二進制分層序列中元素從頭到尾依次正向以10個元素為單位進行分組,得到個分組序列并利用bin2dec()函數依次將各分組序列轉換為數值型數據,將轉換后的數值型數據之和記為DYj,其中函數表示為不小于2L/10的最小整數,
然后更新置亂拼接規則參數rule_Perm=mod(DYj,4),且令j=j+1,接著判斷j的大小,如果j≤12,則轉入步驟S1,否則轉入步驟S3,
S3:結束二進制分層序列的置亂拼接操作,從而得到置亂拼接后的二進制分層序列,表示為并將其按行依次填入二進制矩陣BB中,表示如下,
最后,按列將二進制矩陣BB的列序列BB(:,m),依次進行如下的數值型數據轉換操作:
H0:令m=1,數值轉換參數tmp_S1=8、tmp_S2=5,
H1:取列序列BB(:,m)的前6位且在其首端加上二進制“11”,并采用bin2dec()函數轉換成數值型數據后減去數值tmp_S1,得到數值型數據D1m,即D1m=bin2dec(['11',(BB(1:6,m))T])-tmp_S1,
同時取列序列BB(:,m)的后6位且在其首端加上二進制“11”,并采用bin2dec()函數轉換成數值型數據后減去數值tmp_S2,得到數值型數據D2m,即D2m=bin2dec(['11',(BB(7:12,m))T])-tmp_S2,
H2:更新數值轉換參數tmp_S1=8+mod(D1m,9)、tmp_S2=5+mod(D2m,27),且令m=m+1,接著判斷m的大小,如果m≤2L,則轉入步驟H1,否則轉入步驟H3,
H3:結束數值型數據轉換操作,從而得到數值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L};
(3)轉碼
將數值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},對應元素依次組合并進行數值與漢字的轉換,得到漢字序列C,即為該段待加密漢字的加密密文,其中漢字序列C的長度為2L。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南通大學,未經南通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210359706.1/1.html,轉載請聲明來源鉆瓜專利網。





