关于“希尔密码php”的问题,小编就整理了【3】个相关介绍“希尔密码php”的解答:
希尔密码是由数学家谁提出来的?Lester S. Hill。
希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。
发明了希尔密码的是谁?莱斯特·S·希尔(英语:Lester S. Hill)于1929年发明了希尔密码,它是一种表格式替换加密。
希尔密码可以使用线性代数来结合拥有非常多字母的单元。每个字母被视为二十六进制的数字:A = 0,B = 1,依此类推。(在某些变种中,会添加3个额外符号,将基底变成一个质数。)一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果同余26。注意用作加密的矩阵(即密匙),否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。
由Lester S. Hill在1929年发明。
每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。(注意用作加密的矩阵(即密匙)在 必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。)
例子:
用希尔密码对明文串 x = EastChinaNormalUniversity 进行加密,
密钥矩阵
加密:
密文向量 = 明文向量 * 密钥矩阵 (mod 26)
1. 先将明文串对应英文字母编码表进行数字转化 4 0 18 19 2 7 8 13 0 13 14 17 12 0 11 20 13 8 21 4 17 18 8 19 24
希尔密码加密的计算法则?是先将明文分组,每组取一个秘钥作为加密矩阵,将明文分组转换成数字后与加密矩阵相乘,得到加密后的数字序列,再将数字序列转换成对应的字母即为密文。
具体计算公式为:C=(P×K) mod 26,其中C为加密后的数字序列,P为明文分组转换成的数字序列,K为秘钥构成的加密矩阵。
希尔密码加密法具有较高的安全性,因为秘钥是不断变化的,破解难度较大。
希尔密码(Hill cipher)是一种基于矩阵运算的多字母替换加密算法,其计算法则如下:
1. 选择一个n x n的密钥矩阵K,矩阵中的元素为整数。
2. 将明文按照密钥矩阵的行数n进行划分,每组的长度为n(若最后一组不足n个字符,则在末尾添加空格等填充符)。
3. 将每组明文转换为一个列向量,长度为n。
4. 对于每个明文向量x,用密钥矩阵K对其进行矩阵乘法运算,得到密文向量y=Kx。
5. 将密文向量y转换为密文字符串,即将向量中的每个元素按顺序拼接起来。
需要注意的是,在进行矩阵乘法运算时,应当注意以下几点:
1. 密钥矩阵K必须是可逆矩阵,否则无法解密。
2. 明文向量的长度必须与密钥矩阵的行数相等。
3. 在字符集中使用的字符需要先经过数字化处理,例如将每个字符映射为其在字母表中的序号。
希尔密码具有一定的安全性,但是在使用时需要注意选择合适的密钥矩阵以及填充方式,以提高其安全性。同时,希尔密码也存在一些弱点,例如对于长度小于等于密钥矩阵行数的明文,可以通过暴力破解等方法进行攻击。因此,在实际应用中需要综合考虑其优缺点,选择合适的加密算法。
到此,以上就是小编对于“希尔密码php”的问题就介绍到这了,希望介绍关于“希尔密码php”的【3】点解答对大家有用。