ADFGX密码、云影密码和希尔密码学习

admin 2024年12月31日13:33:21评论27 views字数 2127阅读7分5秒阅读模式
ADFGX密码、云影密码和希尔密码学习
ADFGX密码、云影密码和希尔密码学习
ADFGX密码、云影密码和希尔密码学习
鼎新安全
don't give up and don't give in !

ADFGX密码

原理

改密码在加密和解密时需要输入两个东西,一个密码表,一个密钥,密码表时5x5的polybius表格,里面的字符是a-z(i和j看作同一个)打乱顺序的,出去j刚好填满25个格子。其中的横纵坐标是由ADFGX表示的,如密码表为:

“xyzdefghijklmnopqrstuvwcba”,如下:

ADFGX密码、云影密码和希尔密码学习

将密文的每个字符查表转为相应的ADGFX字符对,前面是横排,后面是纵列,如字符o查表为GF。

再将刚刚查表后的字符串根据密钥如下排列(假设密钥是linux, 刚刚查表后得到的是

FXDDXGDFFGFFGG):

ADFGX密码、云影密码和希尔密码学习

再根据密钥字符的ascii码大小对上表的列按从小到大排列

ADFGX密码、云影密码和希尔密码学习

最后按列将密文去除,如上表取出为:

XDFFGFDFFDFGXX。

特点:

  • 密文长度是明文的两倍,即密文是偶数

  • 密文字符仅有ADFGX这几个字符

云影密码

原理

有1,2,4,8这四个数字,可以通过加法来用这四个数字表示0-9中的任何一个数字,列如0=28, 也就是0=2+8,同理7=124, 9=18。这样之后再用1-26来表示26个英文字母,就有了密文与明文之间的对应关系。引入0来作为间隔,以免出现混乱。所以云影密码又叫“01248密码”。

希尔密码

希尔密码是一种基于线性代数的多表替换密码。使用希尔密码需要对矩阵的有基本的了解。希尔密码也是一种分块加密算法(block cipher),它接受输入的明文,并生成一个密文块。希尔密码是由Lester S在1929年发明的。是第一个同时处理三个及以上符号或字母的多表密码。下面的公式用于加密和解密:

ADFGX密码、云影密码和希尔密码学习

其中,Plain是加密前的明文矩阵,Cipher是加密后的密文矩阵,Key是密钥矩阵(要求是一个方阵),N是字符集的大小,Key^−1是密钥矩阵在模N空间上的逆矩阵。

希尔密码的加密步骤

1、确定密钥矩阵

  • 首先,选择一个整数n (通常n = 2 、3等小整数,这决定了密钥矩阵的阶数)。

  • 然后构造一个  的可逆矩阵作为密钥矩阵K 。例如,当n = 2时,密钥矩阵可能是ADFGX密码、云影密码和希尔密码学习

    其中矩阵的元素a,b,c,d  

  • 是满足ad - bc != 0(mod 26)的整数(在处理英文字母时,因为英文字母有 26 个,所以通常是模 26 运算)。这是因为只有可逆矩阵才能保证解密的可行性。

2、将明文分组

  • 把明文按照每n个字符一组进行划分。如果明文长度不是n的整数倍,需要在末尾添加适当的字符(如字母 'x')来凑齐。例如,对于明文 “HELLO”,当n = 2时,可分为 “HE” 和 “LL” 和 “O(补 x)x” 三组。

3、将字符转换为数字

  • 对每个明文字符,根据字母表顺序将其转换为数字。通常,A 对应 0,B 对应 1,C 对应 2,……,Z 对应 25。例如,对于明文字符 “HE”,H 对应的数字是 7,E 对应的数字是 4,这样就得到了一个二维向量ADFGX密码、云影密码和希尔密码学习 (这里假设n = 2)。

4、进行矩阵乘法加密

  • 对于每一组由明文字符转换得到的向量P ,计算加密后的向量C = KP (mod 26) 。例如,若密钥矩阵 ADFGX密码、云影密码和希尔密码学习,明文字符向量 ADFGX密码、云影密码和希尔密码学习,那么加密后的向量C计算如下:

  • ADFGX密码、云影密码和希尔密码学习

  • 然后对向量中的每个元素进行模 26 运算,得到 ADFGX密码、云影密码和希尔密码学习

5、将数字转换回字符

  • 最后,将加密后的向量中的数字按照前面的转换规则,转换回字符。在上述例子中,15 对应的字符是 P,所以加密后的密文是 “PP”。按照这个方法,对所有分组后的明文进行加密,就得到了完整的密文。

希尔密码的解密步骤

1、计算密钥矩阵的逆矩阵

  • 首先,因为加密是通过C = KP(mod 26)进行的(其中C是密文向量,K是密钥矩阵,P是明文向量),所以解密需要用到密钥矩阵K的逆矩阵K^-1。

  • 对于一个n * n 的密钥矩阵K,计算其在模 26 意义下的逆矩阵。计算逆矩阵的方法有多种,例如对于二阶矩阵 ADFGX密码、云影密码和希尔密码学习,其逆矩阵(在普通实数范围内)是 ADFGX密码、云影密码和希尔密码学习。在模 26 运算中,需要先计算出ad - bc在模 26 下的乘法逆元。例如,如果ad - bc = 7,那么需要找到一个整数x使得 7x  1 (mod 26),通过计算可以得到 x = 15(因为 7 * 15 = 105 ≡ 1 (mod 26)),然后再按照逆矩阵的形式计算出模 26 下的逆矩阵。

2、将密文分组并转换为数字向量

  • 把密文按照加密时的分组方式,每 n 个字符一组进行划分。

  • 对于每组密文字符,根据字母表顺序将其转换为数字向量。例如,A 对应 0,B 对应 1,……,Z 对应 25。假设密文是 “PP”,当  时,P 对应的数字是 15,所以密文向量是 ADFGX密码、云影密码和希尔密码学习

3、进行矩阵乘法解密

  • 对于每一个密文向量 C,计算明文向量 P = K^-1 C (mod 26)。例如,若密钥矩阵 K 的逆矩阵ADFGX密码、云影密码和希尔密码学习 (这里假设已经计算好了逆矩阵),密文向量 ADFGX密码、云影密码和希尔密码学习,那么解密后的向量 P 计算如下:

  • 然后对向量中的每个元素进行模 26 运算,得到 。

4、将数字向量转换回字符

  • 最后,将解密后的数字向量中的数字按照字母表顺序转换回字符。在上述例子中,7 对应的字符是 H,4 对应的字符是 E,从而得到明文。按照这个方法,对所有分组后的密文进行解密,就可以得到完整的明文。

ADFGX密码、云影密码和希尔密码学习
END
ADFGX密码、云影密码和希尔密码学习

注:鼎星安全有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

原文始发于微信公众号(鼎新安全):ADFGX密码、云影密码和希尔密码学习

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月31日13:33:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ADFGX密码、云影密码和希尔密码学习https://cn-sec.com/archives/3574969.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息