密码学本系列教程观点仅代表由小甲鱼扮演的小甲鱼的立场,与小甲鱼本人及CCAV无关!让编程改变世界Changetheworldbyprogram换字式密码•上节课我们提到凯撒密码之所以闻名天下,除了名字十分潮之外,就是它的思维十分现代化,并且适合进行不断演变和进化!•接下来给大家介绍换字式密码,事实上是对凯撒密码进行复杂变换:将每个字符及后移字符都进行变换。•多说不如实干:将”ILOVEFISHC”按照以下规则变换ABCDEFGHIJKLMNOPQRSTUVWXYZ↓(变换规则σ)IODESBKGACFWXHMVLUNJYQZPTR换字式密码•密文是:AWMQSBANGD•由于上述变换规则(加密密匙)σ是毫无规律的,所以破解起来的难度就比一般的凯撒加密要大得多!ILOVEFISHC↓(变换规则σ)AWMQSBANGD多表替代密码•这个也是凯撒密码的扩展版本,加密方法是将明文内容按照n个字符一组的长度分组,并在各组分别使用不同的变换规则。•还是用栗子演示给大家看,加密的依旧是:–ILOVEFISHC•变换规则σ(密匙):–n=5–第一组移动5个字母–第二组移动7个字母(提示:用Caesar.exe)多表替代密码•于是我们又成功得到密文:–NQTAJMPZOJ转置式密码•转置式密码:将明文按照n个字符的长度进行分组,并将各组内的字符的顺序进行替换。•这个栗子依旧是:ILOVEFISHC•变换规则σ(密匙):–假设n=5–第一个字母->转变为第二个–第二个字母->转变为第四个–第三个字母->转变为第一个–第四个字母->转变为第五个–第五个字母->转变为第三个转置式密码•于是乎,密文是:OIELVSFCIH密码的安全强度分析•针对前边提到的三种密码的安全强度,大家能猜出哪种的密码强度最高麽?•接下来我们会逐个来分析他们的安全强度,但会涉及两个数学上的概念:排列和组合排列扫盲•排列:–从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列。•排列数用符号P(n,m)表示P(n,m)=n*(n-1)*(n-2)……(n-m+1)=n!/(n-m)!•!表示阶乘,注意,0!==1组合扫盲•组合是指从n个字符中取m个的方法总和,用符号C来表示。C(n,m)=P(n,m)/m!=n!/((n-m)!*m!)•在排列和组合中,排列里因为顺序非常重要,所以AB和BA被认为是不同的。•但组合仅仅是指取出的方法,于顺序无关,所以AB和BA是相同的。换字式密码的安全强度分析•现今英语中有26个字母,因此密匙的强度总数是对不同的26个字母进行不同顺序的排列所得的总数。–P(26,26)=26!=26*25*24……*2*1≈4.03291461*10^26•亲爱的童鞋们,假设计算机以每秒一亿次的速度来计算,以暴力排查的方法来寻找密匙的话,最长需要多少年才能找到?–答案是1280亿年。(遇到诞生至今100亿年)换字式密码的安全强度分析•从理论上讲,可以通过寻找密匙来破解密码。但从实际计算量来看,换字式密码被公认为安全密码。尽管人们已经知道利用频率分析法的方式来进行破解!(下节课详细讲解这个概念)•同时,在换字式密码中,还有一种从计算量来看比较安全的,那就是每个密匙只限制使用一次,成为一次性密码钥匙。多表替代密码的安全强度分析•假设一组中有n个字符,其中每组的每个字符因为不知道其转换规则,因此需要分别测试26次,因此,密匙的总数为:–26*26*…*26*26=26^n–刚刚我们的例题中n==5,所以需要密匙的总数为:26^5==11881376•可见每组的字符数越多,密码强度越大,如果n达到20,密码的强度为:26^20==19,928,148,895,209,409,152,340,197,376转置式密码的安全强度分析•假设一组为n个字符长度,密匙的总数为:–P(n,n)=n!•刚刚的栗子中,n==5,则密匙的总数为:–5!=5*4*3*2*1=120•问题:当n的值为多少时,密匙的强度最大?下期预告•下节课我们会针对强度最高的换字式密码的破解方案,以及针对这种破解方案的另一种加密技术——维吉尼亚密码。•还会给大家介绍解密一般需要什么样的条件以及如何构造出安全的密码。•所以。。。。。。下节课要准时上课,拼命支持小甲鱼哦~亲~