矩阵在信息加密中的应用(密码学)
电子科技大学 格拉斯哥学院 2017级 王霁远(2017200505023)
基本原理:使用代码子表和可逆矩阵加密将要转换的信息。
一、预备知识
1.代码子表
用一系列数字代表特定的字母, 如下图为一个最基本的代码字表。
2. 基本加密实例:
加密单词 ’braised pork’ (依据上述代码字表)
步骤1: 选取一个密钥矩阵(即信息交流双方才知道的矩阵A)
密钥矩阵要求: 矩阵可逆且矩阵的行列式值为±1.
例如选取密钥矩阵
步骤2: 将特定的单词转化成一个矩阵(矩阵B)。
B R A I S E D SP P O R K
2 18 1 9 19 5 4 0 17 15 18 11
矩阵B的大小要依据密钥矩阵设定, 即要使AB运算合法.
本例中的矩阵B应为3×4矩阵, 即
步骤3: 加密矩阵(做矩阵乘法运算C=AB)
矩阵C就是把对应信息加密完成的矩阵.
若要破解该矩阵的信息, 必要条件是知道密钥矩阵(矩阵A). 本例中破解该矩阵的方式即为上述加密过程的逆过程---------
这里就体现了密钥A可逆的重要性, 若A不可逆, 则A逆不存在, 加密后的矩阵将无法破解.
二、凯撒密码
加密思路:通过位移字母来加密和解密
加密步骤:
1.假设a=1,b=2,.,z=26,space=0。
2.将文本对应的数字写入行矩阵b=(b1,b2,.,bn)。
3.选择密码a=(a1,a2,.,an)。(密钥矩阵)
4.计算得到的矩阵c=(b1a1,b2a2,.,bnan) (注意, 这里的加密方式多种多样, 这里只选用了两个行矩阵中的对应元素相乘做例子)
5.将c中条目的相应字母写成密码文本。
按凯撒密码加密上述信息 ‘braised pork’
解密凯撒密码的重点是获得密钥矩阵与加密方式信息.该种加密容易, 但破解需要知道的信息相对较多也较难得到.
三、希尔密码
加密思路: 矩阵线性变换
加密步骤:
1.假设a=space=0,b=1,c=2,.,z=25。这意味着,每个字母或空格代表‘26系统’中的一个数字。
2.将纯文本分成几个部分,每个部分都有m个字母。将它们记作几个m维向量。
3.选择“密钥矩阵”Am×m,可逆(否则无法解码),大小为m×m。
4.让这些m维向量向左乘矩阵A。
按希尔密码加密上述信息 ‘braised pork’
假设a=0,b=1,.,z=25。每个部分有两个字母(即m=2)。
设密钥矩阵
解密过程: