加密与解密已经成为网络信息时代必不可少的一种工具,而加密和解密的方法有很多种,现在使用得比较多的是就是矩阵加密方法。那么,我今天就给大家介绍几种常见的矩阵加密解密方法。
矩阵加密方法一、字符用数字替换
给定一个n阶方阵M,M的元素取整数,且M-1的元素也必须为整数,M称为加密矩阵因子,M-1称为解密矩阵因子,明文向量V=(X1,X2...Xn),设密文向量为e=(Y1,Y2…Yn)。
其主要步骤有对明文的加密算法和密文的解密算法。
对明文进行矩阵加密的算法:
1、对明文以n个元素为一组进行分组;最后一组不够n个元素用1个特殊数字补足。
2、根据字符与数字对应表,将明文字符转化为数字。
3、依次取上述的1个分组,进行e=v.M(modk)矩阵运算。
4、将e中的元素转化为1-k中的数字,即(Y1,Y2…Yn)=(Z1,Z2…Zn)(modk),其中1≤Zi≤k,i=1,2...n。
5、根据字符与明文的对应表,将(Z1,Z2…Zn)转化为字符,组合起来就可以得到密文,其中k为字符总数。
由密文解密得到明文的算法:
1、密文以n个元素为一组进行分组。
2、根据字符与明文的对应表,将密文字符转化为数字。
3、依次取上述一个分组,进行v=e_M-1矩阵运算。
4、将v的元素转化为1-k中的数字,即(X1,X2...Xn)=(W1,W2...Wn)(modk),其中1≤Wi≤k,i=1,2...n。
5、根据字符与数字的对应表进行,将(W1,W2...Wn)转化为字符,组合起来去掉非明文字符就可以得到明文。
矩阵加密方法二、字符用ASCII替换
由上文可知,用于矩阵加密的矩阵和它的逆的元素必须都是整数,对此,我们有下面的定理。
定理1:若矩阵An*n的所有元素都是整数,而且det(A)=1,则A的所有元素也都是整数。
对于这种矩阵,由代数学的知识可知,若一个矩阵可以分解成基本矩阵的乘积,则就可以取为加密矩阵因子,而基本矩阵的元素只能取1和0,这样我们采用对字符所对应的二进位进行矩阵加密。
对明文的加密算法:
1、以8个字符为一组,若到结尾处分组的字符不足8个,则用字符NULL(空操作字符)替代,每 个字符的八位二进位对应矩阵的一列,Vi,i=1,2...8,八列构成一个的明文矩阵。
2、取M18*8和M28*8作为加密矩阵因子。
3、对明文矩阵进行加密,即进行E8*8=M18*8_V8*8_M28*8矩阵运算。
4、将E8*8的每一列对应的二进位转换为字符即可得到密文。
对于密文的解密算法:
1、以8个字符为一组,每个字符的八位二进位对应矩阵的一列Ei,i=1,2...8,八列构成一个E8*8的密文矩阵。
2、取矩阵M38*8和M48*8作为解密矩阵因子。
3、对明文矩阵进行解密,即进行V8*8=M38*8_E8*8_M48*8矩阵运算。
4、将V8*8的每一列对应的二进位转换为字符,并在结尾处去掉不是原明文的字符,即可得到明文。
小知识之矩阵
矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。