您现在的位置是:首页 > 极限百科 > 棋盘密码基本原理(棋盘密码简介)

棋盘密码基本原理(棋盘密码简介)

彁世界主宰​​​​​​​995人已围观日期:2024-01-07 11:44:15

棋盘密码基本原理(棋盘密码简介)很多人对这个问题比较感兴趣,这里,极限生活记小编彁世界主宰就给大家详细解答一下。

棋盘密码基本原理(棋盘密码简介)

棋盘密码简介

棋盘密码是一种古老的加密方法,它是由德国数学家Ernst Zermelo在20世纪初发明的,用于保护军事情报的安全。棋盘密码基于一种简单的理念,即混淆和置换。通过这种方法,原始的明文被加密,以便只有那些知道密钥的人才能读取它。

基本方法

棋盘密码最常用的棋盘是8×8的棋盘,其中有64个方格。明文被划分成小块,每个小块的长度等于8。每个小块对应棋盘上的一个位置,也就是说,明文中的第一块对应棋盘的左上角,第二块对应其右侧,以此类推。

在加密之前,需要定义一个密钥。这个密钥确定了如何在棋盘上进行混淆和置换。最常用的密钥是45,54,36,63(密钥用逗号隔开),用来表示在棋盘的第4行第5列、第5行第4列、第3行第6列、第6行第3列的四个位置上放置了1-4四个数字,其余格子上填充0。由于取值范围只有0和1,因此这个棋盘被称为二元棋盘。

加密过程

加密的第一步是从明文中取出一个小块。取出的小块被转换成一个二进制字符串,表示该位置是否有字符。如果这个位置有字符,那么就将该位置的值设置为1,否则设置为0。例如,对于字符串“HELLO”,第一个小块会被转换成二进制字符串01001000。

接下来,根据密钥,将二进制字符串中的每个比特位映射到棋盘上的一个位置。例如,对于密钥45,54,36,63,第一个比特位会被映射到棋盘的第4行第5列,第二个比特位会被映射到棋盘的第5行第4列,以此类推。如果这个位置对应的数字是1,那么就将棋盘上的格子标记为“X”,否则标记为“O”。

最后,读取棋盘上的标记,按顺序将它们组合成一个二进制字符串。这个字符串就是加密后的结果。例如,在上面的例子中,如果第一个小块被映射到密钥45,54,36,63上,得到的棋盘就是:

0 0 0 0 1 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

然后将棋盘上的数字按行排列,得到最终的二进制字符串01000100。

解密过程

解密过程与加密过程类似。密钥相同,但需要将加密得到的二进制字符串转换成棋盘上的标记。例如,在上面的例子中,解密得到棋盘应该是:

0 0 0 0 1 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

然后按照密钥将棋盘上的标记重新组合成二进制字符串,得到明文的二进制字符串。

总结

棋盘密码的方法简单,但它有一个明显的缺点,那就是易受到译文长度攻击。这是由于棋盘长度固定,而且只有64个位置,因此,当明文长度超过64位时,它需要被分成更多的块进行加密。每个块都需要使用相同的密钥,这就为攻击者找到密钥提供了更多的机会。因此,现在棋盘密码已不再常用。但它仍是一个重要的密码学概念,对于理解现代密码学有很大的帮助。

关于棋盘密码基本原理(棋盘密码简介)彁世界主宰就先为大家讲解到这里了,关于这个问题想必你现在心中已有答案了吧,希望可以帮助到你。