.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授1计算机工程学院计算机工程学院陈家琪陈家琪计算机网络安全陈家琪计算机网络安全-第八章密码学与信息加密2第八章第八章密码学与信息加密密码学与信息加密陈家琪计算机网络安全-第八章密码学与信息加密3内容提要内容提要Ø本章介绍密码学的基本概念。Ø介绍加密领域中两种主流的加密技术:•DES加密(DataEncryptionStandard)•RSA加密(Rivest-Shamir-Adleman)Ø并用程序实现这两种加密技术的算法。Ø介绍目前常用的加密工具PGP(PrettyGoodPrivacy),使用PGP产生密钥,加密文件和邮件。陈家琪计算机网络安全-第八章密码学与信息加密4发展概述发展概述Ø密码学(Cryptology):是研究信息系统安全保密的科学。Ø密码编码学(Cryptography):主要研究对信息进行编码,实现对信息的隐蔽。Ø密码分析学(Cryptanalytics):主要研究加密消息的破译或消息的伪造。Ø1949年之前,密码学是一门艺术Ø1949~1975年,密码学成为科学Ø1976年以后,密码学的新方向——公钥密码学.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授2陈家琪计算机网络安全-第八章密码学与信息加密5第第11阶段-古典密码阶段-古典密码Ø密码学还不是科学,而是艺术Ø出现一些密码算法和加密设备Ø密码算法的基本手段出现,针对的是字符Ø简单的密码分析手段出现Ø主要特点:数据的安全基于算法的保密Phaistos圆盘,一种直径约为160mm的Cretan-Mnoan粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破解。陈家琪计算机网络安全-第八章密码学与信息加密62020世纪早期密码机世纪早期密码机陈家琪计算机网络安全-第八章密码学与信息加密7加密算法的建立原则加密算法的建立原则Ø1883年Kerchoffs第一次明确提出了编码的原则:加密算法应建立在算法的公开不影响明文和密钥的安全。Ø这一原则已得到普遍承认,成为判定密码强度的衡量标准,实际上也成为传统密码和现代密码的分界线。陈家琪计算机网络安全-第八章密码学与信息加密8第第22阶段阶段1949~19751949~1975Ø计算机使得基于复杂计算的密码成为可能Ø相关技术的发展•1949年Shannon的《TheCommunicationTheoryofSecretSystems》•1967年DavidKahn的《TheCodebreakers》•1971-73年IBMWatson实验室的HorstFeistel等几篇技术报告Ø主要特点:数据的安全基于密钥而不是算法的保密.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授3陈家琪计算机网络安全-第八章密码学与信息加密9第第33阶段阶段1976~1976~Ø1976年,Diffie&Hellman提出了不对称密钥密。Ø1977年,Rivest,Shamir&Adleman提出了RSA公钥算法。Ø1977年,DES(数据加密标准,美国IBM)Ø80年代,IDEA,RCx,CAST等Ø90年代,对称密钥密码进一步成熟Rijndael,RC6等出现,逐步出现椭圆曲线等其他公钥算法。Ø2001年Rijndael成为DES的替代者Ø主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能。陈家琪计算机网络安全-第八章密码学与信息加密10常规加密简化模型常规加密简化模型加密解密明文密文原始明文密钥密钥陈家琪计算机网络安全-第八章密码学与信息加密11对称密码体制对称密码体制Ø对称密码算法(symmetriccipher)Ø加密密钥和解密密钥相同,或实质上等同,即解密算法就是加密算法的逆运算。Ø又称秘密密钥算法或单密钥算法。Ø对称加密算法的特点•算法强度足够。•安全性依赖于密钥,不是算法。•速度快。陈家琪计算机网络安全-第八章密码学与信息加密12明文明文密文密文Ø明文(Plaintext):消息的初始形式;Ø密文(CypherText):加密后的形式Ø记:明文记为P密文记为C明文和密文之间的变换记为C=E(P)及P=D(C)其中,E为加密算法;D为解密算法Ø我们要求密码系统满足:P=D(E(P)).上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授4陈家琪计算机网络安全-第八章密码学与信息加密13对称加密算法的基本模型对称加密算法的基本模型Ø解密:p=Dk(C)Ø加密:C=Ek(P)k为密钥PCkECPkD陈家琪计算机网络安全-第八章密码学与信息加密14经典加密技术经典加密技术Ø替代Ø置换Ø转子机Ø替代Ø明文的字母由其它字母或数字或符号代替。Ø若该明文被视为一个比特序列,则替代涉及到用密文比特模式代替明文比特模式。陈家琪计算机网络安全-第八章密码学与信息加密15恺撒密码恺撒密码Ø破译以下密文:•密文:PHHWPHDIWHOWKHWRJDSDUWB字母表:(密码本)密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ明文:xyzabcdefghijklmnopqrstuvwi0123456789...解密过程:pi=D(Ci)=Ci-3加密算法:C=E(p)=(p+3)mod(26)解密算法:p=D(C)=(C-3)mod(26)Ø明文:meetmeafterthetogaparty陈家琪计算机网络安全-第八章密码学与信息加密16恺撒密码恺撒密码Ø设密钥为k,则加密与解密算法:•加密算法:C=E(p)=(p+k)mod(26)•解密算法:p=D(C)=(C-k)mod(26)Ø25个可能的密钥k。]25,1[∈kØ恺撒密码的特点•单字母密码(简单替换技术)。•简单,便于记忆。•缺点:结构过于简单,密码分析员只使用很少的信息就可预言加密的整个结构。.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授5陈家琪计算机网络安全-第八章密码学与信息加密17单字母替换单字母替换Ø恺撒密码只有25个密钥k,非常不安全。Ø若有意改变字母的排列顺序,可增大密钥空间。Ø例,使用密钥•keyABCDEFGHIJKLMNOPQRSTUVWXYZkeyabcdfghijlmnopqrstuvwxz•spectacularABCDEFGHIJKLMNOPQRSTUVWXYZspectaulrbdfghijkmnoqvwxyz•泄露给破译者的信息更少陈家琪计算机网络安全-第八章密码学与信息加密18单字母替换单字母替换Ø对字母进行特定的规则进行重新排列E(i)=3*imod26i0123456789...ABCDEFGHIJKLMNOPQRSTUVWXYZadgjmpsvybehknqtwzcfiloruxØ若允许字母的任意替代,可增大密钥空间:k=26!4×1026大于56位DES的密钥空间。Ø但是,基于语言统计规律仍可破译。陈家琪计算机网络安全-第八章密码学与信息加密19英文中字母的相对频率-单字母统计英文中字母的相对频率-单字母统计•英文字母E是使用最多的字母•然后是T、R、N、I、O、A、S•其它字母的使用比较少•使用最少的J、K、Q、X、Z陈家琪计算机网络安全-第八章密码学与信息加密20基于语言统计规律的破译基于语言统计规律的破译1.密文:UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ2.统计字母的相对频率-单字母3.猜测P、Z可能是e和t4.统计字母的相对频率-双字母5.猜测ZW可能是th,因此ZWP可能是the6.经过反复猜测、分析和处理,明文:itwasdisclosedyesterdaythatseveralinformalbutdirectcontactshavebeenmadewithpoliticalrepresentativesofthevietconginmoscow.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授6陈家琪计算机网络安全-第八章密码学与信息加密21仿射密码仿射密码Ø是替换密码的一个特例。加密函数取形式为:)26/(,,26mod)()(Zbabaxxe∈+=26mod)()(baxxek+=26mod)()(1byaydk-=-)26/(,,,Zyxba∈Ø加密函数:Ø解密函数:陈家琪计算机网络安全-第八章密码学与信息加密22仿射密码仿射密码-示例-示例解密设密钥K=(7,3),注7-1(mod26)=15,加密函数:ek(x)=7x+3,解密函数:dk(y)=15(y-3)=15y-19,易见dk(ek(x))=dk(7x+3)=15(7x+3)-19=105x+45-19(mod26)=x若加密明文:hot,首先转换字母h,o,t成为数字7,14,19,然后加密:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎟⎟⎟⎠⎞⎜⎜⎜⎝⎛⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡GXA623026mod333191477⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎟⎟⎟⎠⎞⎜⎜⎜⎝⎛⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡toh1914726mod191919623015加密陈家琪计算机网络安全-第八章密码学与信息加密23维吉尼亚密码维吉尼亚密码((VigenereVigenere))Ø属单字符多表代换密码体制。Ø方法•以移位代换为基础的周期代换密码。•m个移位代换表由m个字母组成密钥字。•字母a,b,...,y,z分别用数字0,1,...,24,25表示。•加密时,明文字母Pi在密钥字母Ki的作用下向后移位d(Ki),得到密文字母Ci。•解密时,密文字母Ci在密钥字母Ki的作用下向前移位d(Ki),得到明文字母Pi。陈家琪计算机网络安全-第八章密码学与信息加密24维吉尼亚密码维吉尼亚密码((VigenereVigenere))--示例示例若密钥字为deceptive,m=9。明文wearediscoveredsav的加密过程:明文:wearediscoveredsav密钥:deceptivedeceptive密文:ZICVTWQNGRZGVTWAVZ密钥字母d对应数字3,因而明文字母w在密钥字母d的作用下向后移位3,得到密文字母Z。依此类推。.上海理工大学计算机工程学院陈家琪教授计算机网络安全-第八章密码学与信息加密.上海理工大学计算机工程学院陈家琪教授7陈家琪计算机网络安全-第八章密码学与信息加密25维吉尼亚密码维吉尼亚密码((VigenereVigenere))Ø维吉尼亚密码是多表替换体制,分析起来更困难。Ø密钥空间大,可能的密钥字达26m。•如果密钥字的长度是m,明文中的一个字母能够映射成着这m个可能的字母中的一个。•例如,当m=5时,密钥空间所含密钥的数量是1.1×107。Ø密钥字可以取一个单词、一个句子或一段文章。Ø明文与密文的字母频率分布相同,仍然能够使用统计技术分析破译。陈家琪计算机网络安全-第八章密码学与信息加密26希尔密码(希尔密码(HillHill))Ø1929,数学家LesterHill提出。属多字符单表代换密码体制。Ø方法•将明文分成m个字母的明文组,最后一组不够m个字母就用字母补足;•每组用m个密文字母代换,其代换由m个线性方程决定,•其中字母a,b,...,y,z分别用数字0,1,...,24,25表示。若m=2,系统描述如下:•C1=(k11p1+k12p2)mod26•C2=(k21p1+k22p2)mod26陈家琪计算机网络安