查看: 4473|回复: 4

[密码课] 旋转格栅密码

  • 打卡总天数:2

积分成就

用户组:管理员

书币:130159

推理币:775950

发表于 2021-3-12 00:00:00 | 显示全部楼层 |阅读模式
223105c0l0ocdoy61bib8v_副本.jpg

美国的开国元勋之一亚历山大·汉密尔顿死后的几年,官方在他的文件中发现了一份文献。
文献中描述了一种叫旋转格栅或转动格栅的密码。


旋转格栅密码在十八世纪末很流行,特别是在1796年兴登堡首先对这一文献作了全面描述之后(《荷兰共和国的密码学和治国方略》,第111页)。
格栅由两部分组成,一份是其上具有正方形网格用于书写,另一份其中一些网格被剪掉了,用于旋转,做成的材质可以是纸卡或者其他材质。
加密的时候,利用被剪掉的那份格栅用约定好的方式(逆时针或顺时针)旋转90度,依次填充明文。
下图展示了加密明文“TheLordismyshepherd.Ishallnotbeinwant.”的全部过程。


在上面的示例中,格栅是一个6乘6的正方形网格,其中九个网格被剪掉了。
首先,这个明文的前九个字母( t,h,e,l,o,r,d,I,s )从左到右,从上到下一个接一个地写在每个被切掉的网格中。
然后,格栅沿预定方向(在例子中为逆时针方向)转动90度。
然后,将接下来的九个字母( m,y,s,h,e,p,h,e,r )以同样的方法写入网格。
写完后,在次转动格栅和书写随后的九个字母,然后继续,直到所有网格填满字母。
接下来,只需要按照从左到右、从上到下写的方式抄下字母,即为密文:
mtdhyeisthlbehoeapirhldnelwrainnostt.
如果要解密旋转格栅密码,解密用的格栅要与加密时使用的格栅完全相同。
然后将密文写入6乘6格栅中:


运用格栅,解密者可以通过剪切网格,阅读前九个明文字母( t,h,e,l,o,r,d,I,s ),然后将格栅旋转90度后,可以读取接下来的9个字母,依此类推。
旋转格栅的制作
注意,当加密时,每次转动格栅时,切掉的正方形都会被精确地定位在尚未填充字母的正方形处。
为了达到这种的效果,应该仔细选择要切割的格栅的网格,尺寸要精确。
下图显示了此过程
首先,将方格划分为4个3X3象限,每个象限的九个正方形网格以相应的方式编号为1 - 9。然后,在编号为“1”的四个大正方形网格中,选择一个小正方形网格进行裁剪。在上面的示例中,顶部行的最右边的小正方形网格被剪掉。这保证了编号为“1”的四个大正方形中的每一个网格在由该特定剪切网格加密期间正好出现一次。
类似地,选择编号为“2”的四个大正方形中的一个小正方形以将其剪切。因此,通过从具有相同数目的四个正方形中精确地选择一个要被切出的正方形,可以确保每个正方形可以填充在四个旋转位置之一的位置。
也许大家会觉得6X6的格栅太小,事实上,格栅的大小是没有上限的,就说亚历山大·汉密尔顿文献中的那份格栅吧,他的尺寸就是26X26的格栅,如果将格栅换成一万X一万呢?
那加密的信息将变得极难解决。
大家可以尝试以下,利用下面的格栅,解密该密文(格栅每次顺时针旋转90度)

积分成就

用户组:通天干探

书币:0

推理币:9910

发表于 2021-12-4 02:36:53 来自移动端 | 显示全部楼层
知识点+++

积分成就

用户组:狂热侦探

书币:159

推理币:30032

发表于 2021-3-26 12:19:48 | 显示全部楼层
学到了
访客  发表于 2022-6-30 11:01:12
room of requirement monday after potion 麻烦看看对不对

积分成就

用户组:超级侦探

书币:9

推理币:2085

发表于 2023-7-3 17:40:21 来自移动端 | 显示全部楼层
知识点+1
返回列表 发新主题 回复
小黑屋| 隐私政策| 侵权投诉| 数字千年版权法(DMCA)| 切换繁体 |捐助本站
copyright 2019-2023 推理罪 All Rights Reserved