第二章古典加密技术对称密码体制•传统/私钥/单钥加密•发送方和接收方共享公用密钥•所有的古典加密算法都是私钥加密•在1970’s公钥加密发明之前是主要的加密方法基本术语•明文–原始的消息•密文–被编码之后的消息•加密算法–将明文变换为密文的算法•密钥–密码学中用到的只有发送方和接收方知晓的信息•加密-将明文变换为密文•解密–将密文恢复为明文•密码编码学–设计密码体制和保密消息•密码分析学(编码破译)–破译密码体制/无需密钥解密消息•密码学–密码编码学和密码分析学对称加密模型消息源密钥源加密算法解密算法密码分析者消息宿安全传输信道XKYX要求•强壮的加密算法–密钥只有发送方和接收方知晓Y=EK(X)X=DK(Y)•假设知晓加密算法•应用秘密通道发布密钥密码体制•基于以下特点分类–采用的加密操作类型•替代/置换/卷积–采用的密钥数量•单钥或私钥/双钥或公钥–处理明文的方法•分块/流古典替代加密算法•明文字母由其它的字母或数字以及符号代替•明文被看作位序列,由密文位模式代替明文位模式凯撒密码•最早的替代加密算法•由JuliusCaesar发明•最早用于战争中•由明文后的第3个字母代替明文字母•例meetmeafterthetogapartyPHHWPHDIWHUWKHWRJDSDUWB•定义转换为:abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABC•定义每个字母对应的数字abcdefghijklm0123456789101112nopqrstuvwxyZ13141516171819202122232425•凯撒算法可以写作C=E(p)=(p+k)mod(26)p=D(C)=(C–k)mod(26)凯撒算法的特点•只有26种可能的加密–A映射为A,B,..Z•只要简单地按照顺序尝试每种可能就可能破译•穷举法破译•破译出明文后需要能识别其内容•例如破译密文GCUAVQDTGCM单表替代密码•可以由字母表中的任意字母替代明文的字母•每个明文字母映射为不同的任意密文字母•因此密钥为26字母长•如明文:abcdefghijklmnopqrstuvwxyz密文:DKVQFIBJWPESCXHTMYAUOLRGZN明文:ifwewishtoreplaceletters密文:WIRFRWAJUHYFTSDVFSFUUFYA单表替代算法安全性•26!=4x1026密钥•绝对安全?????•!!!错!!!•为什么?(思考)•语言的冗余性语言的冗余性•人类语言具有冗余性•如thlrdsmshphrdshllntwnt•每个字母非均等被使用•English“e”最多被使用•其次T,R,N,I,O,A,S英语字母使用频度用于密码学•单表替代没有改变字母的使用频度•9th世纪被阿拉伯科学家发现•计算密文字母的使用频度•与已知数值比较(如上表)•找到对应的使用频度峰值•例如给定密文:UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ•查找字母使用的频度•猜测P&Z为e和t•猜测ZW为th,ZWP为the•得到:itwasdisclosedyesterdaythatseveralinformalbutdirectcontactshavebeenmadewithpoliticalrepresentativesofthevietconginmoscow多表替代密码体制•另一种提高安全性的方法•使频度分布更宽,使密码分析者分析更难•使用密钥选择哪个字母用于加密明文消息的哪个字母•按序使用每个字母•循环使用密钥字母(使用密钥最后一个字母后,使用第一个字母)Vigenère密码•最简单的多表密码算法:Vigenère密码•密钥多字母长K=k1k2...kd•按序使用每个字母表中的字母•在消息中d个字母之后从开始重复•解密与加密执行相反的操作•写出明文•在明文上重复写密钥•每个密钥字母作为加密密钥•对明文加密•例如密钥为deceptive密钥:deceptivedeceptivedeceptive明文:wearediscoveredsaveyourself密文:ZICVTWQNGRZGVTWAVZHCQYGLMGJ例如:密钥:YOUR明文:HOWAREYOUP=HOWAREYOUK=YOURYOURYEk(P)=FCQRPSSFSAABCDEFGHIJKLMNOPQRSTUVWXYBBCDEFGHIJKLMNOPQRSTUVWXYZCCDEFGHIJKLMNOPQRSTUVWXYZADDEFGHIJKLMNOPQRSTUVWXYZABEEFGHIJKLMNOPQRSTUVWXYZABCFFGHIJKLMNOPQRSTUVWXYZABCDGGHIJKLMNOPQRSTUVWXYZABCDEHHIJKLMNOPQRSTUVWXYZABCDEFIIJKLMNOPQRSTUVWXYZABCDEFGJJKLMNOPQRSTUVWXYZABCDEFGHKKLMNOPQRSTUVWXYZABCDEFGHILLMNOPQRSTUVWXYZABCDEFGHIJMMNOPQRSTUVWXYZABCDEFGHIJKNNOPQRSTUVWXYZABCDEFGHIJKLOOPQRSTUVWXYZABCDEFGHIJKLMPPQRSTUVWXYZABCDEFGHIJKLMNQQRSTUVWXYZABCDEFGHIJKLMNORRSTUVWXYZABCDEFGHIJKLMNOPSSTUVWXYZABCDEFGHIJKLMNOPQTTUVWXYZABCDEFGHIJKLMNOPQRUUVWXYZABCDEFGHIJKLMNOPQRSVVWXYZABCDEFGHIJKLMNOPQRSTWWXYZABCDEFGHIJKLMNOPQRSTUXXYZABCDEFGHIJKLMNOPQRSTUVYYZABCDEFGHIJKLMNOPQRSTUVWZZABCDEFGHIJKLMNOPQRSTUVWXVigenère密码安全性•每个明文字母可对应多个密文字母•字母的频率特性被很好地隐藏•但仍未被完全消除一次密码本•如果有与消息同等长度的真随机的密钥,则加密是安全的•一次密码本最安全•不可破译,密文与明文没有任何统计关系•任何明文与密文只有唯一的一个密钥对应•密钥只使用一次•密钥的安全发布是关键置换加密•重新排列字母的顺序以隐藏信息•不改变原始信息栅栏置换•在对角线的位置写入明文,按行读出作为密文•如.写入明文mematrhtgpryetefeteoaat•密文为MEMATRHTGPRYETEFETEOAAT行置换•按行以及特定数目的列数写入明文,•按照密钥重新排列各列,按列读出即为密文•如密钥:4312567明文:attackpostponeduntiltwoamxyz密文:TTNAAPTMTSUOAODWCOIXKNLYPETZGNIREENIGNE432124131234fGINENREGEIN4321矩阵换位法轮转密码机•现代加密发出现之前,轮转密码机是应用最广泛的卷积加密法•广泛应用于二战中–德军Enigma,联军Hagelin,日军Purple•采用复杂的、多个替代加密•应用一系列的转子,每个进行一次替代,每次每个字母加密之后,转子旋转后进行下次加密•如有3个转子则263=17576字母总结•本节学习了:–古典加密技术和术语–凯撒加密法–单表替代加密–多表替代加密–利用字母出现频度解密–置换加密–轮转机