常見的矩陣加密解密方法

加密與解密已經(jīng)成為網(wǎng)絡(luò)信息時代必不可少的一種工具,而加密和解密的方法有很多種,現(xiàn)在使用得比較多的是就是矩陣加密方法。那么,我今天就給大家介紹幾種常見的矩陣加密解密方法。

矩陣加密方法一、字符用數(shù)字替換

給定一個n階方陣M,M的元素取整數(shù),且M-1的元素也必須為整數(shù),M稱為加密矩陣因子,M-1稱為解密矩陣因子,明文向量V=(X1,X2...Xn),設(shè)密文向量為e=(Y1,Y2…Yn)。

其主要步驟有對明文的加密算法和密文的解密算法。

對明文進(jìn)行矩陣加密的算法:

1、對明文以n個元素為一組進(jìn)行分組;最后一組不夠n個元素用1個特殊數(shù)字補(bǔ)足。

2、根據(jù)字符與數(shù)字對應(yīng)表,將明文字符轉(zhuǎn)化為數(shù)字。

3、依次取上述的1個分組,進(jìn)行e=v.M(modk)矩陣運算。

4、將e中的元素轉(zhuǎn)化為1-k中的數(shù)字,即(Y1,Y2…Yn)=(Z1,Z2…Zn)(modk),其中1≤Zi≤k,i=1,2...n。

5、根據(jù)字符與明文的對應(yīng)表,將(Z1,Z2…Zn)轉(zhuǎn)化為字符,組合起來就可以得到密文,其中k為字符總數(shù)。

由密文解密得到明文的算法:

1、密文以n個元素為一組進(jìn)行分組。

2、根據(jù)字符與明文的對應(yīng)表,將密文字符轉(zhuǎn)化為數(shù)字。

3、依次取上述一個分組,進(jìn)行v=e_M-1矩陣運算。

4、將v的元素轉(zhuǎn)化為1-k中的數(shù)字,即(X1,X2...Xn)=(W1,W2...Wn)(modk),其中1≤Wi≤k,i=1,2...n。

5、根據(jù)字符與數(shù)字的對應(yīng)表進(jìn)行,將(W1,W2...Wn)轉(zhuǎn)化為字符,組合起來去掉非明文字符就可以得到明文。

矩陣加密方法二、字符用ASCII替換

由上文可知,用于矩陣加密的矩陣和它的逆的元素必須都是整數(shù),對此,我們有下面的定理。

定理1:若矩陣An*n的所有元素都是整數(shù),而且det(A)=1,則A的所有元素也都是整數(shù)。

對于這種矩陣,由代數(shù)學(xué)的知識可知,若一個矩陣可以分解成基本矩陣的乘積,則就可以取為加密矩陣因子,而基本矩陣的元素只能取1和0,這樣我們采用對字符所對應(yīng)的二進(jìn)位進(jìn)行矩陣加密。

對明文的加密算法:

1、以8個字符為一組,若到結(jié)尾處分組的字符不足8個,則用字符NULL(空操作字符)替代,每 個字符的八位二進(jìn)位對應(yīng)矩陣的一列,Vi,i=1,2...8,八列構(gòu)成一個的明文矩陣。

2、取M18*8和M28*8作為加密矩陣因子。

3、對明文矩陣進(jìn)行加密,即進(jìn)行E8*8=M18*8_V8*8_M28*8矩陣運算。

4、將E8*8的每一列對應(yīng)的二進(jìn)位轉(zhuǎn)換為字符即可得到密文。

對于密文的解密算法:

1、以8個字符為一組,每個字符的八位二進(jìn)位對應(yīng)矩陣的一列Ei,i=1,2...8,八列構(gòu)成一個E8*8的密文矩陣。

2、取矩陣M38*8和M48*8作為解密矩陣因子。

3、對明文矩陣進(jìn)行解密,即進(jìn)行V8*8=M38*8_E8*8_M48*8矩陣運算。

4、將V8*8的每一列對應(yīng)的二進(jìn)位轉(zhuǎn)換為字符,并在結(jié)尾處去掉不是原明文的字符,即可得到明文。

小知識之矩陣

矩陣是指縱橫排列的二維數(shù)據(jù)表格,最早來自于方程組的系數(shù)及常數(shù)所構(gòu)成的方陣。