粉丝410获赞5698

哈喽,大家好,我是麦斯,今天给大家讲解关于凯撒密码加密解密的项目。凯撒密码是替换密码的一种,原理很简单, 通过把字母移动一定的位数来实现加解密。铭文被替换成命纹时,他根据字母表将铭文中的每个字母向后或向前按照一个固定数目进行偏移,这个偏移良称为密要密要以三为例,注意字母表是循环使用的哦。加密 铭文字母向后移动三位对应的字母就是密文字母,最后一个字母机向后移三位回卷到字母息解密,密文字母向前移动三位 最硬的字母就是铭文字母,第一个字母 a 向前移三位回圈闹字母 x、 swatch 的字母判断不区分大小 写。这里加密解密用大写字母为例,创建字母表变量,当小绿旗被点击时,将字母表设为 a 到 g 的二十六个大写字母。注意切换到大写键盘。 a 到 g。 二十六个字母分别对应一到二十六的字母序号。 如何确定某个字母的字母序号是几呢?首先询问,请输入一个字母并等待。注意要切换为中文输入法 输入的字母存入回答回答与字母表的每一个字母进行判断。字母表的每一个字母使用运算模块中的某某的 d, 某个字符可以借助变量 i 来表示字母表中字母的序号。 将案设为一,从字母表的第一个字母开始,判断回答和字母表的第二个字符是否相等。 如果两者不相等,就重复将变量爱增加一以判断下一个字母,直到两者相等才停止重复将爱增加一,并说出此时的字母序号 i。 像这种有条件的重复结构,我们使用重复执行,直到某个条件 不满足条件就进行循环。将重复执行的内容放在语句里面,满足条件就退出循环。将执行的内容放在语句下面,说出此时的字母序号。按两秒 分别点击每段积木运行程序,进行分段测试。程序功能,点击小绿旗这段积木,设置字母表变量。点击计算字母序号这段积木测试程序。输入大写字母 d。 小猫说初四说明,大写字母 d 是字 字母表的第四个字符。测试成功,在计算单个字母序号的基础之上,实现计算单词中每个字母的序号。询问内容修改为,请输入一个单词。 需要判断的是,回答的每一个字符与字母表的每一个字符。同样使用运算模块中的某某的第某个字符,这里是回答的第几个字符。运算模块中还有某某的字符数,表示单词中的字母个数。还需要创建变量 j 表示回答中每个字母的序号。 将变量 j 设为一, 用回答的 dj 个字符与字母表的第二个字符进行判断。 得到回答中一个字母的序号后,就将 j 增加一,再次计算,直到把回答中的所有字母 都计算出对应的字母序号。重复执行回答的字符数次,即可 运行程序。输入单词啊 bg 小猫依次说出一二二十六。 能确定单词中字母对应的序号后,那么根据加密规则向后移三位,就能确定加密后密文对应的字母序号。找到字母表中对应的字母,复制计算单词字母序号的代码,继续实现加密代码, 创建变量秘文,表示加密后的单词。 先将密文设为空,删除默认的零。加密代码中。当找到单词 字母的序号后,不再说出字母序号,而是把字母序号加三,对应的字母连接到命文中。将命文设为连接命文和字母表的 d、 i 加三个字符。 目前字母表只有 26 个字母,那么最后三个字母的序号加 3 后会越界,越界后要从头算起,也就是超过 26 后重归唯一。 为了兼容密奥等于其他数值的计算,我们再把英文字母表复制一遍,选中二十六个大写字母,按下 control 加息复制,再在记后面按 下 control 加 v 粘贴。最后说出加密后的单词密文运行程序,输入单词 f、 b、 g, 每个字母向后移三位,会得到字母 d, e、 c。 点击按钮,小猫说出的也是 d、 e 息,测试成功。最后实现解密代码。把获得的密文中的字母序号减三,得到铭文对应的字母序号,再把对应字母表的字母连接到铭文中,复制加密代码,实现解密代码,删除密文。设置,创建铭文变量,将铭文设为空, 接着实现铭文连接,将铭文设为连接铭文和字母表的第二减三个字符。将密文改为铭文连接的密文变量 可以通过右键选择铭文变量进行修改。将 i 加三修改为 i 减三, 不要忘了将表示字母表序号的变量 i 出史值收为 27 哦,防止越界。最后说出密文。解密后的单词铭文 运行程序,输入单词 d、 e、 c, 每个字母向前移三位,会得到字母 i b g, 点击按钮,小猫说出的也是 i b g 测试成功。

大家好,今天给大家讲解这个 d s 加密算法。 d e s 加密算法,它的英文, 英文全称是 data exclusion standard 数据加密标准。大家可能听到这个名字会觉得很奇怪,为什么一个加密算法他叫做标准呢?叫做标准呢?因为在以前, 在在以前这个 d s 加密算法他是比较牛逼厉害的, 大家都把它当做数呃,当做数据加密的一种标准,所以后来就叫做把它叫做数据加密标准。当然现在这个 bs 算法已经被破解了,所以还会有一些更高级一点的它的变体, 比如 aes 啊,三 aes 啊这些算法,但是我们今天还是主要了解这 ds 算法,因为跟这些都有点类似的。 好,我们来介绍一下 d s 算法的基本概念。 d s 算法它的是一个分组加密,然后它是一组,它是一个对称加密算法。分组加密是什么意思呢?假如一个原原数数据 把它变成六二进制之后呢?就会把它分变成六二进制之后把它分组,每一组是六十四位二进制, 六十四位,六十四位二进制。那如果到最后面不够六十四位 怎么办呢?那他就会按照某种规则把它补全补零好,分完组之后再进行加密,每一组进行加密,加密的 最终结果合合在一起,就是就是我们的密文了,所以他叫做分组加密,分组加密,那对称密码算法就是他使用了加密密药,跟解密的密药是一样。 然后 ds 算法,他的密要长度,本来是六十四位,但是实际参与的只有五十六位, 因为有八位为教宴位。 ds 加密算法它的流程主要包括 ip 置换,还有一个迭代,还有个逆置换,那我们分别讲一下他他们是什么意思? ip 置换第一步 ip 置换就是换位置的意思,我们看一下这个 ip 置换他怎么换位置的? 换位置需要一个置置换表,就是座位表,假如原有一组数据六十四位, 一组数据六十四位,那么他就会根据这个置换表就是座位表来换。那么假如 原来按照这个,按照这个座位表啊,原来第五十八位的数据就会现在在第一位,那么 看一下这里原来是第一位的,就会换来这这里,原来第一位是他,那么他就会换来到这里来换来到这里来,所以这里会变成零, 那么原来是第二位的,原来是第二位的就会换来这里,所以这个第二位一,他就会换来对应的这里这里来, 好按照这种座位表来换,所以他他叫做 ip 置换表,就是座位表。换完座位之后呢?换完座位之后啊,他想要跟一个蜜奥 换完座位之后,他会把数据六十四位的数据切成一半,这上面是左 下面是肉,然后想通过,然后用这个肉去跟蜜药,跟蜜药进行加蜜, 就是进行日货加密,但是现在切成一半之后,这个右边是三十二位的,而这个密料他现在用到的是四十八位,所以那怎么办呢?因为要进行日货要相同位数的才行,所以这个 他就要扩展为四十八位,就是数据切成一半之后,他只有三十二位,但是我们加密的密要是四十八位的,所以需要进行一步叫做扩展,所以他叫做一扩 展,一扩展,那他怎么扩展呢?我们看一下这个例子,假如这里有三十二位的数据,因为切了一半,他先分组,每一组四位,这里是一组, 这里是一组,这里是一组,这里也是一组。一类似的,这里也是一组,这里是一组,这里是一组,这里是总共分为八组。那么我们举个例子看一下, 第一组一一零一一一零一,怎么要把它现在是四位,要把它扩展为六位,就是在前面的前面加一个,后面加一个,那加谁呢?他后面是零零 零一,所以他的后面就加他后面一组的第一位是零,那这里前面他没有数据,他就加最后一组的最后那个加一,那类似的 类似的这个零零零一,他的他的前面一组最后面是这个一,所以他这里加这里是一,然后一的后面是零,所以这样子, 按照这里每四位扩展为六位,六位之后六八四十八就变成四十八位了。 好,那么下一步变成四十八位之后,我们本来就是要跟四十八位的密要进行抑或操作的。变成跟这个密要进行抑或 操作好,大家可能会觉得很奇怪,刚才不是说这个 ds 算法他的密要是六十四位的吗?怎么这里变成四十八位的呢?是因为他原来是六十四位的,但是 有八位是叫燕位,所以只剩下每次加密只有五十六位可以用,但是他每一次又会跟从五十六位里面 按照一定的规则弄出个四十八位,跟这个右边的这个进行易,进行易货操作。易货操作 好,预货完之后呢?你又预货完之后,又要把它压缩回三十二位了,你加密完这个变成四 十八位之后,又要把它变回三十二位,所以呢叫压缩。那么他怎么压缩的呢?也是分组,也是分组,刚才是每六位一组,每六位一组, 现在要把每一组从六位,本来是六位一组的,现在要压缩回四位,那怎么压缩呢?也是看个例子啊, 那怎么压缩呢?假如这里是有,他是按照每六位分组,每六位分组啊,这里每六位分组,那假如这里是一组,他怎么压缩呢? 他先中间这四位先不管,然后把一头一 尾的两个数合在一起,他们是二进制,转化为十进制之后,假如这里转化为十进制就是三,那中间刚才那个数据没有理的,就是 就是转换二进四变成十五,那么他压缩处理的结果就是去找某个表里,去找那个压缩表里面的第三行第十五列。 好,那么刚才这里有一个压缩表的,因为我们是在第一轮第一轮,所以去找第三行, 第三行第十五,第十五列,那么就是十三了,所以刚才这个数据压缩完之后就是十三十三,在转化为二进制,转化为四位的二进制,那么就是他的压缩 结果,然后压缩压缩回来之后,再按照一个置换表,当然就是相当于座位表 换一下位置,把刚才的三十二位再换一下位置啊,那么第一次,第一次的轮函数就结束了, 第一次的轮函数结束就是这个 f 结束了,他结束之后呢,还要进行,还要进,然后就跟这个 这个结果跟左边一一货一下,然后再把它换回,再把刚才左边没有处理的换过来处理啊,经过十六轮,经过刚才这样十六轮的迭代, 十六轮的连带之后,最终才输出我们的那个,输出我们那个蜜纹,当然如果你要从蜜纹 逆纹推回铭文的话,就是再逆回来了,再逆,逆回来算好,我们来总结一下这个第一是算法,我们可以把它的步骤主要总结为,第一步是换位置,换位置,按照座位表换位置,换完位置之后切一半, 一般是三十二,一般是三十二的,然后进去这里,因为那个密密要他是四十八位的,所以要把三十二位的扩展为四十八位,然后进行易货操作,进行易货操作,易货完之后又要把它变回三十二位,所以 这 s 和压缩,压缩完之后再根据这个 p 的那个置换表来换位置,换完之后这是一轮,一轮还要进行十六轮这样子的 操作,类似的操作,操作完之后最终和最终的结果合在一起,就是左边跟右边合在一起的就是我们的秘文了, 这是加密的过程,至于这个密要他是怎么产生的,在后面的,在后面的那个课程中我们会讲解这个密要怎么产生的,大家只要知道在最终他实际用到的是四十八位密要,原来是六十四位的,但是有八位 叫燕位,所以只有五十六位能用。然后在每一轮刚才说这里要经过十六轮,那么每一轮他就会从这五十六位里面按照一定规则选出四十八位来进行抑或加密操作。 好这个 d、 e、 s 加预算法就讲到这里,谢谢大家观看。



对于一号接触点,右侧电线从一号位置进去,从左侧四号金属点出来,这样 a 变成了 d。 当电流通过一个转子时,他改变了一次字母。 那那个马基有三个这样的转子,他们每个内部都有不同的接线。当电流通过三个转子,字母改变了三次。最右侧有个反射器,上面也有二十六个金属触点,里面有更多的接线。每根线连接对应的两个字母, 所以他作为一个字母进入,然后转换为另一个字母出来。这里的右边是输入轮,他接有二十六根电线,并连接到二十六个金属触点。 整体来看,电流留过二十六根电线中的一根,比如字母外的电线。然后他在三个转子上都变成了不同的字母,然后电流到达反射器,反射器再次改变字母,然后他再次通过 转子返回,这又将字母更改了三次。来回两次通过转子都是经过不同的线路,字母总共改变了七次,这只是字母被加密的一种情况。 这三个转子都可以旋转到二十六个不同的位置。当任何一个转子改变位置时,这也会改变电流路径,因此很难预测哪些字母会出来。输入段的二十六根电线将沿着恩尼格玛机的右侧向下延伸到最前面的插线板,通过插线板给交换两个字母。 如果要切换 w 和 j, 可以拿一根电线,两端都有插头,一头插入 w 点,另一头接在支点。 在插线板的背面,每根单独的电线连接到每个插座的顶部,然后延伸到每个插座的底部,这是字母 o 的插线。插座如果没有插入任何东西,电流会从顶部流入,然后通过短路棒,然后从底部流出, 这样插线板没有改变字母凹输入,字母凹输出的也是字母凹插头插入后,他会向上推开短路棒,使其不再连接。现在电流从顶部流入,通过插头的顶部流出,然后经过电线并从底部流出。这样输入字母凹经过插线板转换后输出字母一。 插线板最多可以用十根电线来转换。让我们看下键盘结构,这些按键每个都连接到其下方的长杆上,当松开按键时,弹簧将按键回弹, 最后一排按键的顶部连接了弹簧。键盘的前面是这些二十六个按键的开关,让我们看看其中一个字母 p。 该开关具有三个不同的同片电流,在这三个同片间形成不同的回路,电流由另一端控制。当按下键时,按键会下降并撞击中间同片的绝缘端, 这样可以改变电流的线路。在按下键之前,顶部的两个同片已连接形成了一个回路。按下该键后,底部的两个同片连接形成另一个回路。 有二十六个按键开关,这是连接到他们的所有电线。顶部的铜电连接到灯泡,电线向左延伸到相连接的二十六个灯泡,中间的铜电连接到插线板,他们穿过 n 一个马吉右侧的电线,然后向下到达插线板上的相应字母。 来自电池的电线直接连接每个按键开关的底部同片,因此每个开关都有三个不同的同片和三个不同的连接位置。 在按下一个键之前,底部的通片没有连接到任何东西,没有形成电流回路,所以出示状态时,灯板上的二十六个字母灯泡都是关闭的。假设现在我们按下了字母 x。

德军认为不可能被破解的恩尼格玛机有一个致命缺陷,就是一个字母加密后不可能为原字母。如果你一直按同一个字母,每次都会亮不同的灯。 下面介绍下破解恩尼格玛吉的方法。因为严谨的德国人在每次电报开头喜欢用固定的词组天气预报。盟军在截取的密文中确定这条 可以不可以理解为猜测出来的铭文与密文中字母的对应关系。猜出密文中包含的铭文词组后,如何才能确定他们的位置以及恩尼格玛级的初始配置呢?假设我们有一条恩尼格玛密文, 根据文尼格玛吉一个字母加密后永远不可能为原字母。这个缺陷,我们把这条名文词组放在密文下方来回移动进行判断。因为未知一和未知二都有字母 t 变成了 t, 所以未知一和二不是合适的地方。因为未知 字四有字母二变成了二,所以位置四不是合适的地方,所以位置三有可能是 cray 天气这个铭文所处的真实位置。得到这个铭文位置后,我们来推演验证下恩尼格玛吉的插线板和转子的初始位置。例如 crap 天气的第二个字母 t 加密乘一。 假设电流第一次通过插线板时,插线板的配置是 t 连接 a。 由于三个转子初始位置已知字母 a 通过输入轮,然后他在三个转子上都变成了不同的字母,然后电流到达反射器,反射器再次改变字母, 然后他再次通过转子返回,这又将字母更改了三次,来回两次通过转子都是经过不同的线路,字母总共改变了七次,最后从经过三个转子加密的字母为批。由于最后灯板上显示的是字母,所以我们可导出电流。最后一次 通过插线板时,插线板的接线是 p, 连接 e。 quebe 里面有多个字母 t, 他们的加密结果,一字为 t, 加密为 q, t 加密为 b, t 加密为 g。 用相同方法,我们可以推导出电流。最后一次通过插线板的插线是开 q, x, b, t, g。 但是现在发现了一个问题, 插线板上有 ta 和 tg 两种配置。这样就矛盾了,一个字母不能接两个插线,于是可以推导出 ta 是错误的。现在要检查剩余的二十四个选项, tbtctv 直到 tc。 如果二十五个选项全部错误,则说明转子设置的位置是错误的。 然后调整转子位置,再次进行所有操作,这将需要很长时间。所以艾伦投影想出了两种方法来加快速度。第一,一旦你发现了一个错, 比如 ta 和 tg, 这意味着剩余的二十四个选项也是错误的,不需要检查。另一种加快速度的方法是使用 boss 炸弹机。 boss 机是一种机电设备,里面连接着多台安妮格玛机,他会对假设的 pa 电路通上电流, 电流流过转子,电流无法流经涕剂。当板上的灯泡不会点亮,说明这个假设是错误的。剩下的假设就交给保养机破解了。