古典密码汇总
密码学-第2章古典密码

问题:
置换和换位的定义、区别?
作业:
习题2.1、2.2、2.3、2.4、2.6
抽象代数
群:由一个非空集合和一个二元运算组成,并满 足封闭性、结合性、单位元、逆元的代数系统。
乘法群
环:一个集合,可以在其上进行加法和乘法运算 而封闭。
交换环:对于乘法运算可交换
域:非零元都有乘法逆的交换环。
设明文m = (m1, m2, …, mn) ∈Z26n,密文c= (c1, c2, …, cn) ∈ Z26n ,密钥为Z26上的的n×n阶可逆 方阵K = (kij) n×n ,则 c = mK mod 26, m = cK-1 mod 26。
例2.4 设n=2,密钥为 11 8 7 18 -1 K= ,容易计算 K = 3 7 23 11 设明文为Hill, 则相应的明文向量为(7,8)和( 11,11)。于是,相应的密文向量 分别为 11 (7,8) 3 11 ( 11,11) 3 8 77 24, 56 56 )=(23,8), =( 7 8 121 33, 88 77 )=(24, 9 ), =( 7
表2.4称为Vigenere方阵(书P12)。当用密钥字 母ki对明文字母mi进行加密时,Vigenere方阵中 的第ki行第mi列的字母就是相应的密文字母。
例2.2
设明文为 This cryptosystem is not secure, 密钥为cipher, 则密文为:
VPXZGI AXIVWP UBTTMJ PWIZIT WZT。
有限域(伽罗瓦域):GF(2)
第2章 古典密码
主要内容
古典密码中的基本加密运算 几种典型的古典密码体制 古典密码的统计分析
古典密码

41 94 41 81 41 63 41 92 62 23 74
GZGTGOGXNCS
GZGTGOGXNCS OTOEOI OUYVL
OTOEOI OUYVL O T O E O I O U Y V L I LOVE YOU TOO
****-/*----/----*/****-/****-/*----/---**/*----/****-/*----/****/***--/****-/*----/----*/**---/-****/**---/**---/***-/--***/****-/
4194418141634192622374
THANKS
ROT13
2
猪圈密码
这是一种外形古怪的密码,已经传递了几百年。没有人明确 知道它是什么时候发明的,但这个密码被一个叫“自由石匠” 的组织所使用,也被美国内战时的盟军所使用。 早在1700年代,共济会常常使用这种密码 保护一些私密纪录或用来通讯,所以又称共济会密码。
3
栅栏密码
一般比较常见的是2栏的栅栏密码。 比如明文:THERE IS A CIPHER 去掉空格后变为:THEREISACIPHER 两个一组,得到:TH ER EI SA CI PH ER 先取出第一个字母:TEESCPE 再取出第二个字母:HRIAIHR 连在一起就是:TEESCPEHRIAIHR 还原为所需密码。 而解密的时候,我们先把密文从中间分开,变为两 行: TEESCPE HRIAIHR 再按上下上下的顺序组合起来: THEREISACIPHER 分出空格,就可以得到原文了: THERE IS A CIPHER
Crypto
密码学-古典密码
古典密码
凯 撒 密 码
第4讲 数据加密技术(古典密码)

解密就是利用Vigenre方阵进行反代替。 方阵进行反代替。
一、古典密码 一、古典密码
3、代数密码: 代数密码:
① Vernam密码 Vernam密码
明文、密文、密钥都表示为二进制位: 明文、密文、密钥都表示为二进制位:
M=m1,m2,… ,mn K =k1,k2,… ,kn C =c1,c2,… ,cn ② 加密 : c1= mi⊕ ki ,i=1,2,… ,n 解密 : m1= ci⊕ ki ,i=1,2,… ,n 因为加解密算法是模2 所以称为代数密码。 ③因为加解密算法是模2加,所以称为代数密码。 对合运算: 加运算是对合运算。 ④对合运算:f=f-1,模 2加运算是对合运算。
一、古典密码 一、古典密码
⑴单表代替密码 ①、加法密码 • A和B是有 n个字母的字母表。 个字母的字母表。 • 定义一个由A到B的映射:f:A→B 定义一个由A 的映射:
f(ai )= bi=aj j=i+ j=i+k mod n • 加法密码是用明文字母在字母表中后面第 k 个字母来代替。 个字母来代替。 • K=3 时是著名的凯撒密码。 时是著名的凯撒密码。
一、古典密码 一、古典密码
用近代密码学的观点来看,许多古典 用近代密码学的观点来看, 密码是很不安全的,或者说是极易破译 密码是很不安全的, 的。 但是我们不能忘记古典密码在历史上 发挥的巨大作用。 发挥的巨大作用。 另外,编制古典密码的基本方法对于 另外, 编制近代密码仍然有效。 编制近代密码仍然有效。
f(ai )= bi= aj j=ik mod n 其中,(n,k)=1。 其中, n,k)=1。 • 注意:只有(n,k)=1,才能正确解密。 注意:只有(n,k)=1,才能正确解密。
古典密码

古典密码频率分析法——密码中最常出现的字母,亦为明文文本中最常用的字母。
(每种语言词汇的使用都会有一定的频率)。
隐藏信息于熟蛋壳内的方法:1盎司(约28.3克)的明矾和1品脱(约0.57升)的醋混合而成的特殊墨水把信息写在蛋壳上,墨水可以穿透多孔的蛋壳,不在表面留下任何痕迹,却留在凝固的蛋白上,剥开蛋壳即可看到信息。
隐形墨水:尿液,阿司匹林,氨基比林都可用作隐形墨水。
牛奶墨水:牛奶上写信息没有颜色,火烤时蛋白质变性凝固,颜色就发生变化,信息就显现出来。
清水墨水:清水写在纸上,被水侵湿的地方会变得蓬松和粗糙,用碘蒸汽熏时,细小的颗粒会吸附到这,从而显示信息。
五倍子墨水(中药店买得到的中药):其中有丰富的鞣酸,鞣酸溶液透明,但其遇到铁盐化合物就会清析的显示信息。
(其都称为隐文术,隐藏的是信息,不对信息本身进行编排,可以用一切手段伪藏信息,例如伪藏在乐曲中,用摩斯密码伪藏在字画中。
最好的原则是把信息伪藏在公开信息中,从而不引起大众的好奇心理。
)密码术简单密码术:藏头诗,藏尾诗,回文诗,诗迷,哑谜,密写。
九宫格密码:用符号结构替代英文的26个字母(编写一套密码即编写一套符号系统,表达各个符号的组合即代码)折线密码:P F I C N A M Z O Q X D E R B H V K Y J T U G L S W(明文为I LOVE YOU DEARLY )写信息时,从第一个字母开始画一条直线,直到第二个字母,然后折回第三个字母,以此类推,直至写完。
密码均可以以此为基础进行变种,如:U D Q N Y S O I V A X M F C J Z B T W G L H K P E R即:I LOVE YOU DEEPLY书卷密码:可以用多个数字替换一个字母,从而减少了明文词汇使用频率的暴露。
先取一段文章作为密钥,然后给文章段落或者文字编号,每个编号代表段落的首字或者单词的第一个字母,从而得到一组替换密钥(yue),并以此来加密明文:下面是一段明文:1For, 2example, 3if, 4the, 5sender, 6and, 7receiver, 8agree, 9that, 10 this, 11sentence, 12were, 13to, 14be, 15the, 16keytext, 17then 18every, 19word, 20would, 21be, 22numerically, 23labeled, 24each, 25number, 26providing, 27the, 28basis, 29for, 30enceyption.然后把每个数字代表的单词的第一个字母列成一张表:1=F 2=E 3=I 4=T 5=S 6=A 7=R 8=A 9=T 10=T 11=S 12=W 13=T 14=B 15=T 16=K 17=T 18=E 19=W 20=W 21=B 22=N 23=L 24=E 25=N 26=P 27=T 28=B 29=F 30=E然后就可以用字母替换成的数字加密,但明文密钥中各字母出现的频率不一样,因此有一些字母不能被替换,有些字母被多次替换的情况,未被替换的字母可以用任意数字替换。
古典密码——精选推荐

古典密码作为⼀个不务正业的密码⼿,稍微学⼀点点密码(主要是⽔⼀篇博客)。
密码学中,最基础的是古典密码。
按照百度百科的说法,古典密码⽆⾮两种:置换与代换。
置换就是把明⽂中的字母(或者其他什么东西)换换位置,但是那些字母还是它们⾃⼰,⽐如把kroos换成soork就是⼀种置换。
代换就是把明⽂中的字母换成别的字符,⽐如把kroos换成11,18,15,15,19(这⼏个字母在字母表中的位置)就是⼀种代换。
这么看来,简单的置换与代换所产⽣的加密⽅法⽐较好破解,基本上都可以⽐较简单地破解出来,以下是⼏种常见古典密码。
凯撒密码: 它的做法是按照字母表把明⽂中的字母变成数字,再偏移⼏位,再转换回字母,这是⼀种⾮常典型的代换密码 ⽽它的破解也很简单,毕竟字母表⼀共就26位,最多试26次就可以了栅栏密码: 它的做法是把明⽂分成⼏个不同的部分,⽐如: 明⽂是: 可以把它分成两个部分: 再之后,把第⼆个部分排在第⼀部分的后⾯,变成: 这就加密完了,解密也⼗分简单 ⾸先把密⽂分成两⾏: 之后再把它每⾏读⼀个就可以了: 栅栏密码破解也⽐较简单,只要猜测总共把字符分成了⼏个部分就可以了。
维吉尼亚密码: 维吉尼亚密码是⼀个破解难度相对较⾼的古典密码,它采⽤了简单的多表代换。
⾸先使⽤维吉尼亚密码需要密钥 具体操作如下: 假如明⽂为: 然后可以选择⼀个关键词然后将它反复重复变成密钥,⽐如关键词为LEMON时,密钥为: 之后,⽤密钥的第n位加密明⽂的第n位,⽐如⽤L加密A,⽤E加密T等等,⽽具体⽅法如下: 当然,也不⼀定需要查表,可以⽤数学的⽅法求出: 在知道密钥的情况下,可以直接解密 ⽤这种⽅法,在不知道密钥(或者关键词)的情况下,破解有些难度,不过有⼀个⼤致的思路: 因为维吉尼亚密码的密钥是循环重复的(假如它不是⽽你⼜不知道密钥,那就是⼀次⼀密的加密,破解⼏乎没有可能),所以维吉尼亚密码可以看做很多组凯撒密码 这样的话,在⽂本较长的情况下,就有可能出现相同的单词遇到的密钥也⼀样的情况,这样就会导致密⽂中出现重复字段 找到相同字段间的距离,可以⼤致判断出关键词长度是距离的因数 多找⼀些不同的重复字段,找到距离找公因数可以⼤致算出密钥长度,再尝试猜测密钥即可 不过,实际上这已经需要⾮常巨⼤的⼯作量了,因此,维吉尼亚密码在不知道密钥的情况下较难破解。
古典密码集合

古典密码集合下述密码均摘⾃互联⽹【字母表顺序】-数字 加密的时候,经常要把A~Z这26个字母转换成数字,最常见的⼀种⽅法就是取字母表中的数字序号。
A代表1,B代表2,C代表3... 字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26【进制转换密码】 例如⼆进制:1110 10101 1101 10 101 10010 1111 1110 101 转为⼗进制:14 21 13 2 5 18 15 14 5 对应字母表:number【Mod算法】 我们可以对字母序号进⾏数学运算,然后把所得的结果作为密⽂。
当运算结果⼤于26或⼩于1的时候, 我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。
Mod就是求余数的运算符,有时也⽤“%”表⽰。
例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3。
【倒序】 加密时为经常要对字符进⾏倒序处理。
如果让你按abcdef...的顺序背出字母表的每个字母会很容易, 但是如果是zyxwvu...的顺序那就很难背出来了。
⼀个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌⽣。
例如“love”字母倒过来拼就是“evol”。
具体加密时倒序有很多种⽅案,需要灵活运⽤。
例如: 每个单词的倒序:siht si a tset - this is a test 整句的倒序:tset a si siht - this is a test 数字的倒序:02 50 91 02 - 20 05 19 20(test)【间隔】 单词之间的间隔⼀般使⽤空格。
在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为⼀种好的加密⽅案。
第2讲 古典密码

c E3 (m) m 3(mod26),0 m 25 m D3 (c) c 3(mod26),0 c 25
明文: Substitution 明文:information security cryptosystem 密文:密文: lqirupdwlrq VXEVWLWXWLRQ vhfxulub FUBSWRVBVWHP
简化的传统加密模型
加密算法必须够强(什么算强?) 必须安全地协商密钥(天知地知你知我知?)
应当满足的要求
系统即使达不到理论上是不可破的,也应当为实际上不可 破的。就是说,从截获的密文或某些已知明文密文对,要 决定密钥或任意明文在计算上是不可行的。 无条件安全(unconditional security) • 如果算法产生的密文不能给出唯一决定相应明文的足够信 息,无论截获多少密文,花费多少时间都不能解密密文。 • Shannon指出,仅当密钥至少和明文一样长时达到无条 件安全(即一次一密) 计算安全(computational security ) – 破译密文的代价超过被加密信息的价值 – 破译密文所花时间超过信息的有效期 著名的 Kerckhoff 原则:系统的保密性不依赖于对加密体 制或算法的保密,而依赖于密钥。
古典密码的统计分析攻击法
英语字母中常见的组合
• 单词出现概率组合:
• 密码攻击:统计分析攻击
所谓统计分析攻击就是指密码分析者通过分析密文 和明文的统计规律来破译密码。 统计分析攻击在历史上为破译密码作出过极大的贡 献。许多古典密码都可以通过统计分析而破译。
跳舞的小人 Dancing men
福尔摩斯探案-归来记 跳舞的小人 Dancing men
和解密规则dk∈D:C → P,满足对明文x∈P
古典密码

解密,秘钥指示列,找到密文向 左看 恢复:MEET MEON THUR SDAY
置换密码
周期置换密码
列置换密码
......
明文:Alice is a murderer 加密:按列2143写出密文 秘钥:keys = (2143)
liur aeme cadr isre
解密:按秘钥序排出密文, 按行读出
Frequency analysis
加标点
Hereupon Legrand arose, with a grave and stately air, and brought me the beetle from a glass case in which it was enclosed. It was a beautiful scarabaeus, and, at that time, unknown to naturalists—of course a great prize in a scientific point of view. There were two round black spots near one extremity of the back, and a long one near the other. The scales were exceedingly hard and glossy, with all the appearance of burnished gold. The weight of the insect was very remarkable, and, taking all things into consideration, I could hardly blame Jupiter for his opinion respecting it.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
古典密码汇总
古典密码是指在计算机技术出现之前使用的一种数据加密方式。
以下是一些常见的古典密码:
1. 凯撒密码:将明文中的每个字母按照字母表顺序向后移动固定的位置来生成密文。
2. 维吉尼亚密码:通过使用不同的密钥按字母表顺序对明文逐字母进行移位加密。
3. 单换密码:根据某种规则将明文中的每个字母替换为另一个字母来生成密文。
4. 多换密码:类似于单换密码,但使用多个替换规则来加密明文。
5. 栅栏密码:将明文按照一定长度分成多行,然后按行输出密文。
6. 简单替换密码:将明文中的每个字母替换为另一个字母或符号来生成密文。
7. 维因纳尔方阵密码:使用一个方阵将明文中的字母映射为密文中的其他字母。
8. 培根密码:将明文中的每个字母映射为5个二进制位,然后用A和B表示。
这只是一小部分古典密码,还有许多其他类型的古典密码存在。
由于古典密码的安全性相对较低,现代密码学已经发展出了更加复杂和安全的加密算法。