00:00
那咱刚呢,在这个位置呢,就讲了一下这个凯撒加密和凯撒解密。好,凯撒加密,和凯撒解密。好,那么这个凯撒加密和解密的话,我们看一下它的原理,好那么它的原理呢,是啊,是把那26个字母好,那么进行位移好,那么在位移的时候呢,可能是往左边往左边或者往右边那么进进行位移啊,那么在位移的时候,在位移的时候啊,需要注意需要注意啊,那么最多只能移动25位,因为我们知道一共呢是26个字母,所以最多呢是只能移动25位,好那么这个呢,就是凯撒加密的它的这个原理啊,这个原理呢,倒不复杂,好那么但是呢,如果你想下,当你不知道它的这个规则的时候呢,其实还是蛮复杂,你想进行破解,比如说我们看一下刚刚我在这个地方呢,进行写代码的时候,大家一下好,我在加密这个地方呢,是因为你能看到我的代码,我在这个位置呢,那么它的这个规则。
01:13
定的是三对吧,他略是三,这是你知道的情况下,好,那你想下,如果你不知道的情况下,那那么你怎么去破解,是不是就比较难了,对不对,好么?咱接下来呢,就去讲的东西,好那么我们去讲一下,如果呢,当你不知道蜜钥时的话,好,那么你也想进行破解,好,那怎么进行破解,这样我们去讲这个叫频度分析法。啊,频率分析法好,那么咱之前呢,是不是讲了这个,咱之前呢,在讲这个古典密码学的时候,咱是不是说了这两种加密方式,一种呢,叫做替换法,对吧?然后呢,还有一种呢,叫做这个位移法,好,那么这个位移法的原理咱刚刚是已经跟大家讲过了,然后也通过代码实现,对不对,好么?现在大家想这样的问题,那么刚刚呢,我在写这个位移法的时候,在写凯撒加密的时候,你是知道我的这个规则,然后你才能很好的破解,好如果你想下你不知道我的规则怎么办?咱当时是不是讲了一个方法,是不是使用叫做频率分析法进行破解,对不对?好,那么我们就需要把这个频率分析法呢,再跟大家呢,再进行回顾一下,我们看一下,好,那么这个频率分析法的话,我们看一下,好,那么主要是研究字母或者字母当中的组合,在文本当中出现的频率,按照频率的高低,然后呢做一个排序,好我们来看一下。
02:35
好,那我们来现在我就使用这个叫啊,使用这个叫频率分析法呢,进行加密啊好,那么在讲频率分析法我们看好,那么在古代的话,那么他还有一种加密方式叫密码棒,这个东西我们了解一下,我们看一下好那么在公元前的五世纪的时候,我们看一下好那么斯巴达人他通过一个木棍啊,通过一个木棍,然后呢,在木棍上面的话,去缠绕着这个皮革或者羊皮纸,然后呢,那么去写一些东西,然后呢,那么你他写的这些东西的话,你解开这个皮带,就是呢,他是在皮带上面写很多文文字啊,就跟这一样写很多文字,好那么你的这个文字的话,你单独去看的话,你看不出来是什么东西,你必须呢,把这把这些皮带呢都放在一起,然后呢,就就可以组成一个新的文章,然后你就知道他写的是什么东西,好,那我们看一下。
03:25
好,大家看,那么这些是,呃,罗马,罗马帝国他们在打仗的时候,他腰间呢会系个皮带,好那么每天每条皮带的话,上面的其实都是信息,然后呢,那么你单独呢,把这个皮带解下来的话,你是看不懂这个信息上面显的示写的示什么东西好,那么你怎么样才能看得懂,那么你只需要呢,把这个收件人好,那么你把这收件人里面的所有皮带把它收集到一起,收集到一起之后呢,把它组织组到一起,那么你就能看到这个文章了。好,那么这叫密码棒,这密码棒的话相对来说比较简单,好那现在我们来介绍,我们去介绍这个叫频率分析法,刚刚我说的这种密码棒的话,相对来说比较简单,好那我们来说一下,这个叫频率分析法,好,那么频率分析法是这样子的,跟大家呢,来写一下,我们来去讲一下它的原理,好那么我的这个频率分析法,首先你得知道它的目的啊目的好,那么频率分析法的目的是在不知道,在不知道蜜月的情况下,好也想进行进行破解好破解密文好。
04:25
好,那么啊,这个频率分析法的目的是我不知道密钥情况下,但是我也想把这个密文给破解下啊,进行破解,那么这叫频率分析法,好那我们来讲一下它的这个频率分析法它的原理啊,原理是这样的,刚刚咱们是不是说了好那么这个频率分析法其实呢,主要是通过这叫概率论对吧?概论咱们以前学过概论,好,那么在概率论里面是这样的,好那比如好那么以以英文,以英文为例,对吧?以英文为例好么?在英文里面咱刚刚说的做个统计对不对,在英文里面的话,那么字母记住字母一,字母E,好,那么出现的频率啊是最高的,假说字母一的出现频率最高,第二个频率好,第二个频率。
05:11
啊,那么第二啊,出现第二个频率最高的,最高的是T,就是字母T比字母一出现频率是最低,那么字母啊,T是出现第二好,然后呢就是A,然后呢就是A好,A的这个呃,频率的话是第三好,那么现在我就可以干这件事情,那我把这个频率出现的高低,我是不是可以按照做一个排序对不对,那么不管你是字母也好,还是字母组合也好,咱刚才啊概论里面说做个统计,它是不是都可以进行排序对不对,进行排序好,那排序完了之后呢,那么再怎么办?那我们就可以干这样一件事情,好,干什么事情我们看一下,好,那如果我想进行破解这个密文的话,我们看一下,那我现在是不是可以拿到密文,对不对,我是不是可以拿到密文,好,那我拿到密文之后,我们看下密文里面是不是也会出现一个叫频率很高的词,我们看一下好,那么当我们拿到灭蚊的时候啊,灭蚊的时候啊,灭蚊里面它也会出现一个频率。
06:11
也会出现这个频率啊最高的字母,这很正常对吧?因为呢,你不管是铭文也好,还是密文也好,如果你是铭文的话,那么字母E出现频率是最高,那么你把这个东西呢,进行加密,加密完之后,那么你是因为你是字母再进行加密,是不是还是字母对不对,因为呢,你是来回位移嘛,对不对,来回位移好,那你想想好,那么你的这个文假设举个例子,假设你的密文里面啊,假设假设密文里面出现频率啊,出现频率最高的是好,假设我的密文里面出现的米奇率最高的是J啊假设假设是G,好,那么我现在是不可以干这一件事情,好,那么我可以啊,那么可以假设好可以假设什么可以假设呢?秘文里面的之一,好,那么就是铭文里面的一,我是不是可以这样假设,我是举举个例子嘛,可以这样假设好,然后呢,那么我是不是可以去相当于。
07:11
那么这个G其实就是相当于是E对不对,就是E好,那么我说这样可以进行以此类推,好那么我们看一下好,那么假设假设密文里面出现出现频率啊频率啊,第二高的啊,第二第二高的字母字母好假设成好,假设成铭文,铭文当中啊铭文当中的T,大家看一下我是不是可以这样进行假设,对不对?好所以呢,它的原理其实不是很复杂,它原理的话就是首先你把铭文里面出现频率最高的这个字啊,这个字母,然后或者字母组合做个排序好,然后呢,再把这个密文里面出现频率最的这个字母再做个排序好,然后呢,我就假设咪文里面出现频率最高的话,那么就是这个铭文里面的这个替身,好,那么呃,咪文里面出现第二高的话,那么其实这个铭文里面的这个T的这个替身,好,那么这个是它的原理,这可以理解吧,好,那么。
08:11
这个呢,是我们把原理弄懂了,好,那把原理弄懂之后呢,我们现在是不是就通过代码来进行实现一下,我们看一下好,那现在的假设呢,我去找一篇文章啊,我们去找一篇文章,好,那么在今天的资料里面,我们看一下好,在资料里面你看一下这个地方的话,会有篇英文的文章,打开看一下,好大家看一下你看这这个是不是叫英文的文章,好,那么你的这个英文的文章的话,那么它是一个铭文,这很明,这很明显,这是不是一个铭文,对不对,好,现在我把这个铭文干件事情,我把这个铭文的话,把拷贝到咱们的这个项目的跟跟目录CTRLC。好大家看一下,好,那我就直接呢,把它考的这个根目录啊,放这个位置,根目录大家看一下,这是不是就是铭文对吧,就是铭文好拷贝完之后我们看现在我再考两个工具类,答,这两个地方有两个工具类啊好考TRLC下好那我去找到刚的这个凯撒好答案我就丢进来。
09:07
好丢进来之后呢,我们来看一下刚刚我的这个工具类,你看好,那么一个是叫YouTube包,YouTube包的答案其实就是一个工具类啊,没有什么其他东西,好这个东西呢,也是个工具类,然后拷贝进来的话,有些错误,把它给修改一下,稍等一下,好我们看一下好那么这是通过凯撒呢进行加密,我们看一下好加密的话,我们刚刚是不是写的叫加密方法,就这个东西对吧,加密方法好,那我把这个呢给改一下。好,改完之后我们看一下下面啊,这边是有解密的吧,这样我把这个呢改一下,就是加密好,我把这个加密方法改一下好,把上面这个地方改一下好,然后我们看一下这边的话还有解密的方法好,这边是解密方法好,然后我把这个解密方法呢也改一下好,看一下这个位置呢也改一下。我刚是不是改错地方了?
10:01
啊,这个好,我们来看,把这个解密方式呢,我把它改一下,这解密好,那把这个地方呢改一下,这是我们刚刚写的代码,就还是使用我们刚刚代码好,这个地方我把它改一下,改成这个叫public啊下面这个地方也改成public,我们看一下,我看还有哪个地方报错啊,这个地方好把它给去掉啊,大家看一下,那现在有好看一下还有哪里包错。啊,这个是加密,这个地方为什么会标错,我看一下哦,这个地方我看一下,那么需要传一个K的吧,好,那我就需要在这个位置把这个key呢给传一下啊这是加密,加密的话啊,咱们把这个K传过来吧,啊K呢是int对吧?啊K啊可的话我们看因我之前我怎之前我加密时候呢,我没有穿K呢,我怎么用的,我看一下,那现在这个地方就不报错了,我看一下之前呢,我的这个K哦,我之前写的是三,应该是写K的吧,好大家看一下这个代码呢,就把它给写好了,好这个地方也是一样的,把这个K呢给传进来,好大家看一下,好那么这是咱上节课写的代码,这个代码各位应该没问题对吧?好,那么刚刚拷贝的是工具类的话,那么它在进行加密解密的时候呢,其实呢,它掉的还是我刚写的这个工具类啊,你看还是写的这个解密还是这个加密好,咱们就把它给写完了好了,咱把刚的这两个工具类呢,就把它给写完了,好写完之后。
11:32
后面我们来看一件事情,我们看一下好,大家看一下好,首先呢,我们看一下呢,在这个梦函数里面,好,在main函数里面,我就需要干一件事情好,干些什么事情,我们看一下好,首先呢,我先看一下它统计出来的这个字符的个数,好我们看一下好,刚刚我在这个位置的话,我是不是讲了它的原理,好那么它的原理的话,其实呢,就是把铭文统计一下,然后么,再把这个密文题统计一下,对不对,好,我们看一下好,那么这个统计的这个代码,我就使用的是这个工具类啊,当然通过这个工具类,然后呢去进行,就是说一下你的这个字符,字符出现多少次,好来运行一下,我们看看效果。
12:07
啊,我统计的是这个文章啊,啊,大家看一下,你看啊,刚刚这个文章的话,是不是直接拷贝到根目录对不对,你看统计的其实就是刚刚的这篇文章,就这个原文,好那么在这个原文里面,我们来看一下,好大家看一下。好,大家看一下,好在原文里面出现最多的是这个空格,空格呢就出现了989次,好,那么你看一下好字母呢,这个E出现了478次,好,那么字符啊,这个字符A那出现了三百七四十四次,好,就这个东西呢,就以此类推啊,就以此类推,好那么咱刚才这已经看过了,好那么我在这个位置是不是统计了下这个原文,对吧?就把这个原文统计了好那么我现在统计完这个原文之后,我们看一下好在这个位置我是不是做了一个统计,是做统计就统计了每一个原文出现的这个次数,好那么出现这个次数之后,我是不是可以把它记录下来,对吧?记录下来好,记录下来之后呢,我们看一下,现在呢,我把这个原文呢,做一个加密,因为咋想好,那么比如说呢,你现在呢,就是凯撒大地好么?你要跟呃双方进行通信,你可能你肯定是不可能把这原文给他,对不对?好现在我就需要把这个原文呢,做一个加密,我们看怎么进行加密,好加密这个方式话,其实刚刚我们是不是已经写过了,对不对,大家看一下,好你看是不是调这个方法,你看下这是不是就加密方法。
13:23
这个加密方法我刚刚说了,改了这个里面的这个啊加密对不对,其实呢,就是调用我们自己写的加密,好大家看一下,你看那么这个呢,就表示是原文,你看还是这个文章好,然后把这个原文呢做个加密,大家看做个加密好呢,变成密文,密文的话就有个下划线叫一根好,然后呢,我们看一下我的啊这个密月的规则是不是就是三跟刚是不是完全一模一样,所以呢,我看一下,现在我就需要呢,把这个原文呢改成密文,我们再试一下,好大家看一下现在呢,在我程序的这个根目录是不是只有这个原文,我放大一点,你看在我程序的根目录是不是只有原文,是不是没有那个叫下划线点en的对不对,下划线en你看是不是没有,它没有它好,现在我在这个位置呢,我就做一个运行,我们来试一下。
14:05
好,那预习完了之后呢,我们来看一下。好,刚这个地方呢,应该是把它给注释掉了,好咱不管了,好我们看一下,你看在这个位置是不是出现了,这个叫一根,好双击一下,好,大家看一下在这个位置的话,是不是就已经出现了这个秘文,大家看一下,这是秘文,好那么大家看,那么这个是原文,好如果你直接读原文的话,大家看一下,那么你肯定是可以读懂的,对吧,就是原文是可以读懂,好大家看一下,好那么这个密文兄弟们你们读一下,看一下这能不能读懂,这样很明显,你如果你只是直接读这个密文的话,那么你肯定是读不懂的,对吧,肯定读不懂,好那么你你看啊,这个密文的话,你是读不懂的。好,那现在我就需要干第二件事情,就是呢,咱们第一件事情就是把这个原文变成了秘文,现在呢,我是不是可以去统计秘文里面的这个次数,对不对,咱刚刚呢,第一件事情的话是不把铭文的次数是不是做了统计好,那么大家看一下,那我在铭文里面做了一个统计,那么说了说把这个统计的这个这个次数是把给记录下来,好,现在我说把这个密文是不是做了一个加密,对吧?好,现在我就干这事情,我把密文也做个统计好,我们看一下怎么进行统计。
15:12
好,我们看一下在这个位置,好,那在这个位置的话,我就把它给注释掉,好注释掉之后呢,我们看把它给进打开,打完之后我们看,那现在我说需要统计密纹,好那么这个密文的话,我们看一下是不是叫下划线1N对不对?好那么我们再来运行一下,我们看密文里面哪些东西出现次数比较多,好运行。好,兄弟们,我们来看一下。好,大家看一下,那么这个是密文对不对?好密文里面我们看一下井号呢,出现了989次,好,那么H呢,就出现了478次,好,那么呢,这个呢是D呢,就出现了344次好,W的话就出现了327次,就是以此类推啊这东西呢就是以此类推,就是你把这个秘文,然后呢,怎么办?跟刚刚我们出现这个铭文是不是做个对比对不对,做个对比好那么我就相当于去找它的替身,对吧?是不是,是不是需要呢去找他替身,好那么怎么去找他的替身呢?我们看一下刚刚大家看一下,好在这个位置,大家看一下,在这个位置的话,那么这个密文的统计次数,刚是不是有铭文统计次数,好,我们看一下刚好在这个地方呢,说一下这个原理,好,那么在它的原理是这样的,好假设呢,你密文里面出现频率最高的是不是G,对不对?好,我们看一下在我这个地方,你看那么这啊,出现率最高的是不是就是啊井号好那么我现在可干这件事情,比如说我是不是可以把这个井号想象成这个E,我可以这样。
16:35
我是我是假设嘛,我把想象成E,这应该不犯法对不对,把它想象成E好了,这怎么办呢?我看好第二个出现最高的是不是H好了,现在密文H出现是D2好了,我是不是可以这样,我是不是可以把这个H想象成这个T,是不是可以啊好,那么以此类推啊,假设第三出现最多的是不是叫D,好,那我把D说想象成这个A,大家看一下,因为呢,我把这个咪文想象成原文里面的每一个字母,大家想下这个应该是没问题对不对,这应该是没问题,好,那现在呢,我就需要去干一件事情好,干件什么事情好,那现在呢,我就需要呢去做个解密好,做个解密好,我们看一下怎么进行解密。
17:16
好,大家看一下好,那么你看下面这个地方是不是就解密的这个代码,对吧?这解密代码好,那么我现在首先看这些,我把你给注释掉,把你注掉好,注释掉之后呢,我们看一下,那现在呢,我就需要呢,去读取你的这个文件,你看这这时候读的是密文,好那么我把你的密文读出来之后,我们看一下,好然那我去做个解密,解密你看我去做解密好,那在解密的时候呢,那么它会生成多个备选文件,好那么在生成多个备选文件里面的话,那么其实呢,它就干了这样一件事情,那么也说了,他就把我们刚刚的这个操作呢给做了在位置好,那么他就做了假设,他就把密文里面的这个G就想象成了这个E,好,然后呢,把这个呃G的话,把这个呃,第二出现在第二个呃第二个的字母,就把想象成这个铭文里面的T,好,那么这个动作的话,我是通过这个工具类型实现的,这是通过这个工具类型实现的,好,然后我也会去统计它的这个出现次数,以及呢,我去猜测一下,我猜一下呢。
18:17
它到底它的这个蜜月,以及它生圳的这个备选文件到底是多少,好,然后呢,在这个位置的话,那么它会生成多个备选文件,会生成多个备选文件,好现在我就需要一件事情,那我就把这个井号想象成记住啊是把井号想象成意,好现在我们来运行一下,好运行完之后我们看目前在我的根目录里面,大家看一下,那么目前是不是只有两个,是不是只有两个文件,只有两个是吧?好,我们再来运行下,我看效果。好,大家看一下,你看好,那么啊,我我的这个啊,刚刚呢,我的这个解密的这个代码呢,里面大家看一下,好,这边是解密代码,好在这个代码里面我是这样去写的,我是做了统计啊,我做统计,那么刚刚我是不是说了,那么这个井号是出现次数是最多,好那出现的次数最多的话,我是不是可以把井号想象成这个E对不对?好,那么想象成E的话,我是要猜他的这个蜜月是多少,因为啊,之前我的凯撒加密是,呃,凯撒加密是我知道蜜月,现在我知不知道蜜月是不知道了,所以我只能猜,好那么我看一下,我现在猜我当前的这个蜜钥是负66,好,那么它会生成一个叫备选文件,好那么为什么要猜它是负66呢?我跟大家举个例子,是这个例子啊,好,大家看一下,好,那么我们得先去看一下井号对应的是多少,我们看一下。
19:35
好,大家看一下,我们去先去找我的这个ask斯克码,这个编码大家看一下,好,这是不是就是一个阿斯克码的这个码表咱之前是不是看过了,大家看一下,好,你看这个是不是当前的一个井号对不对?好那么在这个井号里面,我们看井号对应的十进制是多少,你看井号对应的十进制是不是就35对吧,是35,好,那我说了,我是不是要把这个井号想把它,把它猜测成谁,是把猜测成E对不对,猜成E好,那么大家想一下,好,那么你当前的这个E那么是多少?我们看一下小写字母E,你看小写字母E的话,对应的是不是就是101,好,大家想下,好,那么你35~101之间差多少,是不是不差,就是差66对不对,就差一个负的66好,所以呢,我看一下,那么你在这个位置,我就猜你的蜜钥是负的66,好,大家看这个负的66知道怎么来的吧,是因为他俩之间的隔的就是负66啊字符好就猜了,就出现第一个备选文件,好,我们来看一下这个备选文件好大家看一下这第一个双击好,双击完之后我们看好,那么这个呢,是我进行破解之后。
20:35
的铭文,答一下这个铭文能不能看懂,很明显这个铭文肯定看不懂,所以呢,这次破解方式肯定错了对吧?好,那这种方式错了,好做完之后是不是接着再猜呀,我们看一下刚刚我们出现第二次数,第二多的是谁,是不是H,各位是不是有印象,好H的话在里面是不是出现这478次,对不对,出现478次好那么我们看,那么我就猜你的这个K是三啊,为什么你的K是三呢?我们来看一下。
21:02
好,那么看一下H啊,你看一下好,那么这个是啊,我们来先看,你看是不是小写H,小H是104,小写一的话,是不是就是101好,101和104之间隔多少,是不是隔三对不对,好所以呢,我们看一下好那么它的蜜钥规则呢,就是三好生成第二个备选文件,我们看一下好,那现在我就去找到第二个备选文件,双击大家看一下,是很明显把它给还原了,当然这是不是还原好,那这个呢,就使用是叫频率分析法,叫叫频率分析法好那么这个频率分析法了,好处在于,那么就算呢,你不知道密语,你也不知道它的规则,你什么都不知道的情况下,你通过这种猜的方式也能把它给猜出来,所以呢,当这个叫做概率论出现时候呢,那么古典密码学就已经得到了瓦解,好,所以呢,这就叫做频率分析法的原理啊好,那咱把频率分析法的原理再跟大家呢,再过一下我们看一下。好,在这个位置我们重新呢,再跟大家过一下,我们来看一下这个频率分析法,好是这样的,好那么在这个频率分析法里面,我们看刚刚呢,我在这个位置呢,就跟大家一说了,好,那我就分析一篇文章,在文章里面的话,通过统计学的概率好,那么E是出现次数最多的,好,接下来呢,是T出现是第二波,第三多的话就是A,好,那么现在我就把原文进行加密,变成密文,好,密文里面比如说呢,出现频率最高的是G,好,那我是不是可以把G想象成E对不对,大家看成它的替身,好,那么呢,我们接下来啊,频率出现第二个假设是P,那我是不是把P也可以当成T的替身对不对?好,所以呢,通过这种方式进行假设,进行猜啊进行猜,好,我们看一下好,刚刚我在这个位置的话,我是不是统计了原文是不是每一个出现的次数,对不对,这文出现次数好把它记录下来好,然后呢,再进行加密,加密完之后呢,我们看一下是不是再可以进行统计,是不是把密里面所有东西是不是再统计好,假设我当这个井号是不是就是你的这个E,对不对,是不是就是E,好,那么你进行破解好,破解完之后,那么你是不是得不知道它的K。
22:53
那你就得去猜,你去猜好猜的话你就看一下你的井号到底跟你的这个啊一之间隔的是啊这个规则是多少好,那么你一看,那么你的幂钥是负66,好,那你就把负的66是不带进去进行破解,好发现你破解失败好了,然后你再把这个H是不带进行破解,好发现你的K呢是不是三,那么你把这个三带进去算,算完之后,然后呢,立马是不是就把它生成了这个原文件好,生成完原文件之后,那么呢,它就是不是就破解成了好,所以呢,我们看一下好,那么这个呢,就是把这个叫频率分析法的这个核心,它的原理呢,就跟大家讲了一遍,好,那么咱把这个东西呢,就已经讲完了,这是非常非常核心的东西啊,这非常非常核心。
我来说两句