【文档说明】数据加密技术ppt课件.pptx,共(176)页,10.921 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-6099.html
以下为本文档部分文字说明:
第二章数据加密及认证技术计算机科学学院网络工程教研室梁晓Email:@Tel:1xxxxxxxxxx主要内容❖数据加密概述▪密码学的发展▪密码学基本概念与分类▪密码分析学❖传统密码技术❖对称密钥密码❖公钥密码体制❖
数字签名与认证技术❖加密软件密码学的起源❖古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。❖古希腊的斯巴达人曾将军事情报刻在普通的木板上,用石蜡填平,收信的一方只要用火烤热木板,融化石蜡后,就可以看到密信。❖密码学
用于通信的另一个记录是斯巴达人于公元前400年应用锥形指挥棒在军官间传递秘密信息。我国古代的藏头诗、藏尾诗、漏格诗密码学在军事中的应用密码学从军事走向生活❖电子邮件❖自动提款机(ATM)❖网上银行/网上证券❖信用卡购物(POS机)生活中的密码学❖案例一:▪甲给乙写的私人信件,丙未经
甲乙允许擅自阅读此信——非授权访问❖案例二:▪甲和乙正常通信,丙冒充甲并且:•制造欺诈信息给乙;•窜改甲给乙发的合法信息;——中间人攻击❖案例三:▪甲在某时某地给乙发了信,乙否认收到了该信——抵赖密码学的发展史❖第一阶段:1949年以前古典密码阶段▪计算机技术出现
以前▪密码学作为一种艺术,而不是一门科学❖第二阶段:1949年~1975年现代密码学初期▪标志:1949年Shannon发表的《保密系统的信息理论》一文。▪密码学进入了科学的轨道,密码学成为科学▪主要技术:单密
钥的对称密钥加密算法❖第三阶段:1976年~现代密码学阶段▪标志:1976年Diffie和Hellman发表了《密码学新方向》一文。▪新的密码体制:公开密钥体制第一阶段-古典密码❖古典密码的加密方法一般是代换与置换,使用
手工或机械变换的方式实现;❖代表密码体制主要有:▪单表替代密码:Caesar密码;▪多表替代密码:Playfair密码、Hill密码、Vigenere密码;▪转轮密码:著名的Enigma密码,第二次世界大战中使用过。❖主要特点:数据的安全基于
算法的保密。第二阶段现代密码学初期1949~1975❖1949年,香农发表了《保密系统的信息理论》▪证明了密码编码学是如何置于坚实的数学基础之上的,从此密码学发展成为一个专门学科——标志性事件▪为对称密码体制的发展奠定了理论基础;❖1967年,大韦卡恩的专著《破译者》详
细描述了密码学的历史;❖1971-73年,IBMWatson实验室的HorstFeistel等几篇技术报告,DES算法的产生;❖主要特点:数据的安全基于密钥而不是算法的保密。第三阶段:1976~公钥密码学❖公钥密码学成为主要研究方向;❖主要特点:
公钥密码使得发送端和接收端无密钥传输的保密通信成为可能。❖代表性事件:▪1976年,Diffie和Hellman发表的革命性论文《密码学新方向》(Newderyctionsincryptography),•突
破了传统密码体制使用秘密密钥所带来的密钥管理难题,使密码的发展进入了一个全新的发展时期。▪1977年,Rivest,Shamir和Adleman提出了RSA公钥算法。DES算法出现。▪80年代,出现IDEA和CAST等算法。▪90年代,对称密钥密码算法
进一步成熟,Rijndael,RC6等出现,逐步出现椭圆曲线等其他公钥算法。▪2001年,Rijndael成为DES算法的替代者。密码学的新方向❖密码专用芯片集成▪密码技术是信息安全的核心技术,无处不在,目前已经渗透到大部分安全产
品之中,正向芯片化方向发展。在芯片设计制造方面,目前微电子水平已经发展到0.1um工艺以下,芯片设计的水平很高。▪我国在密码专用芯片领域的研究起步落后于国外,近年来我国集成电路产业技术的创新和自我开发能力
得到了提高,微电子工业得到了发展,从而推动了密码专用芯片的发展。加快密码专用芯片的研制将会推动我国信息安全系统的完善。量子密码技术量子计算机处理器DNA密码技术什么是密码学❖密码学基本概念❖密码体制分类密码学基本概念❖密码学(cryptology):▪研究信息的保密和复原保密信息以获取其真
实内容的学科称为密码学。❖包括:▪密码编码学(cryptography):研究对信息进行编码,实现隐蔽信息的一门学科。▪密码分析学(cryptanalytics):不知道任何加密细节的条件下解密消息的技术,即“破译”。密码编码学❖(1)密码编码学
是密码学的一个分支,研究与信息安全(例如:机密性、完整性、可鉴别性)有关的数学技术。❖(2)密码编码学是包含数据变换的原理、工具和方法的一门学科,这种数据变换的目的是为了隐藏数据的信息内容,阻止对数据的篡改以及防止未经认
可使用数据。❖(3)密码编码学是论述使明文变得不可懂的密文,以及把已加密的消息变换成可懂形式的艺术和技巧。❖加密(Encryption):将明文变换为密文的过程。把可懂的语言变换成不可懂的语言,这里的语言指人类能懂的语言和机器能懂的语言。❖解密(Decry
ption):加密的逆过程,即由密文恢复出原明文的过程。把不可懂的语言变换成可懂的语言。18加密算法密钥密文明文解密算法密钥密文明文加密和解密算法的操作通常都是在一组密钥的控制下进行的,分别称为加密密钥(EncryptionKey)和解密密钥(D
ecryptionKey)。加密:Ek(M)=C解密:Dk(C)=M密码学基本概念Kerckhoff原理AugusteKerckhoff在1883年发表了一篇论文,认为一个密码系统中唯一应该保密的只有密钥。他认为,密码算法应该对外公开,如果一个密码系统需要
保密的越多,可能的弱点也越多。这种观点对于密码研究者和私营部门来说已经是一种常识,但是军事部门和政府则不这么认为。世界上大部分的政府都研制自己的算法并且不对外公开。Kerchhoff假设:密码分析者知道双方使用的密码系统,包括明文的统计特性、加解密体制等,唯一不知道的是密钥。在
设计一个密码系统时,目标是在Kerckhoffs假设的前提下实现安全。密码体制分类的三种方法❖替代密码vs.换位密码❖对称密码算法vs.非对称密码算法❖分组密码vs.流密码密码体制分类密码体制分类❖按所用的密钥数分类:❖对称密码算法(Symmetriccipher):加密密钥和解
密密钥相同,或实质上等同,即从一个易于推出另一个。又称传统密码算法(Conventionalcipher)、秘密密钥算法或单密钥算法。▪DES、3DES、IDEA、AES❖非对称密码算法(Asymmetriccipher):加密密钥和解密密钥不同,从一个很
难推出另一个。又叫公钥密码算法(Public-keycipher)。其中的加密密钥可以公开,称为公开密钥(publickey),简称公钥;解密密钥必须保密,称为私人密钥(privatekey),简称私钥。▪RSA、ECC、ElGamal密码体制分类❖按处理明文的方法分类:❖分组
(块)密码:▪将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文;▪DES、IDEA、RC2、RC4、RC5;❖序列(流)密码:▪序列密码每次加密一位或一字节的明文;▪One-timepadding、Vigenére、Vernam;流密码
模型24密钥流产生器密钥k明文m密文c流密码体制模型异或运算25❖明文为“university”,密钥流为key=(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)分组密码模型❖分组密码是
将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。密码分析学❖攻击传统密码体制的一般方法:▪穷举攻击:对一条密文尝
试所有可能的密钥。平均而言,成功至少需要尝试所有可能密钥的一半。▪密码分析:利用算法的性质和明文的特征或某些明密文对。❖密码分析学是在不知道密钥的情况下,恢复出明文的科学;❖成功的密码分析能恢复出消息的明文或密钥;密码分析学❖(1)密码分析学是密码学的一个分
支,它与另一个分支学科——密码编码学是两个相互对立、相互依存、相辅相成、相互促进的学科。❖(2)密码分析学是企图挫败编码技术以及更一般说来的信息安全服务的数学技术学科。❖(3)密码分析学是对密码体制、密码体制的输入输出关系进行分析,以便推出机密
变量、包括明文在内的敏感数据。有时又称作密码破译学(codebreaking)密码分析攻击的典型方式❖假设通信双方,Alice和Bob已经完成了秘钥交换,秘钥k是双方已知的,开始进行如下通信:AliceBob密码分析攻击的典型方式密码分析攻击的典型方式密码分析攻击的典型方式❖
攻击者已知加密算法,已知待破解的密文,能够获得通过加密算法生成自选的明文-密文对;❖选择明文攻击:▪分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者能选择特定的明文块去加密,那
些块可能产生更多关于密钥的信息,分析者的任务是推出用来加密消息的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密.❖通常,加密算法被设计成能够抵御已知明文攻击攻击强度:唯密文攻击<已知明文攻击<选择明文攻击密码分析攻击的典型方式两个概念❖绝对安全,uncondit
ionalsecurity▪无论花多少时间,攻击者都无法将密文解密▪原因:攻击者所需要的信息不在密文里。▪除一次一密外,所有的加密算法都不是绝对安全的❖计算安全,computationalsecurity▪破译密码的代价超过密文信息的价值;▪破译密码
的时间超出了密文信息的有效生命期。穷举攻击密钥大小(位)密钥个数每微秒执行一次解密所需时间每微秒执行一百万次解密所需时间32232=4.3109231µs=35.8minutes2.15milliseconds56256=7.21016255µs=1142year
s10.01hours1282128=3.410382127µs=5.41024years5.41018years1682168=3.710502167µs=5.91036years5.91030years26characters(perm
utation)26!=4102621026µs=6.41012years6.4106years主要内容❖数据加密概述❖传统密码技术▪(一)替代技术▪(二)换位技术❖对称密钥密码技术❖公钥密码体制❖数字签名与认证技术❖加密软件(一)替代技术❖替代法:▪将明文字
母替换成其他字母、数字或符号的方法;▪如果把明文看成是0或1的序列,那么密文就是0或1比特序列的另一种表达。❖包括:▪(1)凯撒密码▪(2)单表替代密码▪(3)多表替代密码(1)凯撒密码(CaesarCipher)❖由古罗马人Juliu
sCaesar发明的一种密码体制,它是使用最早的密码体制之一;首先用在军事通信中;❖替代原理:▪用字母后的第三个字母代替▪字母表看作是循环的,即z后面的字母是a明文abcdefghijklmnopqrstuvwxyz密文DEFGHIJKLMNOP
QRSTUVWXYZABC凯撒密码❖映射表中,明文字母中在字母表中的相应位置数为C,(如A=1,B=2,…)形式如下:设k=3;对于明文P=computesystems则f(C)=(3+3)mod26=6=Ff(O)=(15+3)mod
26=18=Rf(M)=(13+3)mod26=16=P┆f(S)=(19+3)mod26=22=V密文C=Ek(P)=FRPSXRWHUVBVWHPV。凯撒密码的一般形式❖将英文字母表左环移k(0≤k<2
6)位得到替换表,则得一般的Caesar算法。❖共有26种可能的密码算法(25种可用)❖将每个字母分配一个数值,如a=0,b=1等,则算法可表示为:▪加密算法:C=Ek(P)=(P+k)mod26▪解密算法:
P=Dk(C)=(C–k)mod26凯撒密码的安全性分析❖凯撒密码的三个特征:▪加密和解密算法已知▪需尝试的密钥只有25个▪所破译的明文语言已知,其意义易于识别▪大多数情况下,密码算法是已知的,这三个特征使穷举攻击很容易实现❖抗攻击分析:▪使明文的语言未知:例如将明文压缩再进行加密▪
加大密钥空间:如允许字母的任意替代(2)单表替代密码❖不是简单有序地字母移位❖每个明文字母映射到一个不同的随机密文字母❖密钥数目:26!❖包括:▪棋盘密码▪仿射密码▪移位代换密码:凯撒密码▪多项式代换密码▪乘数/采样密码▪密钥短语密码单表替代密码分析❖密钥空间
:▪26!>4x1026▪大于56位DES(数据加密标准)的密钥空间❖貌似安全,实则不然:▪-基于语言统计规律仍可破译单表替代密码分析❖举例:❖字母相对频率分析:英文字母相对频率单表替代密码分析❖初步分析:❖解密结果:❖解决方法:目标-减少密文中的明文结构
残留度▪字母组合加密:playfair密码▪多表替代密码:Vigenère密码Playfair密码❖单表替代缺陷是:密文带有原始字母使用频率的一些统计学特征。❖对策:每个字母提供多种代换。❖最著名的多表代换密码——Playfair密码:▪CharlesWheatstone于
1854年发明,用其朋友BaronPlayfair命名▪把明文中的双字母音节作为一个单元并将其转换成密文的“双字母音节”Playfair密钥矩阵❖加密结果基于一个5x5字母矩阵❖从左到右,从上到下:▪填写密钥单词▪用其他字母填写剩下的空缺❖I=JMONARCHYBDEFGI/JKLPQST
UVWXZmonarchy为密钥加/解密步骤❖加密▪明文分组(填充):2个字母/组▪同行字母对加密:循环向右,ei→FK▪同列字母对加密:循环向下,cu→EM,xi→AS▪其它字母对加密:矩形对角线字母,且按行排序,hs→
BP,es→IL(或JL)❖解密▪加密的逆向操作安全性分析❖安全性优于简单的单表代换密码:▪共有26x26个字母对,判断单个字母对困难;▪字母对的相对频率的统计规律低于单个字母的频率;▪利用频率分析字
母对较困难;❖虽然明文中字母的统计规律在密文中得到了降低,但密文中仍含有明文的部分结构信息;❖给定几百个字母,即可被攻破;字母出现的相对频率(3)多表替代密码❖替代规则:▪使用一系列相关的单表替代规则▪密钥决定给定变换的具体规则❖例如:▪Vigenère密码
(1858)▪Beaufort密码▪Vernam密码Vigenère方阵使用一系列单表替代规则密钥决定给定变换的具体规则Vigenère密码示例❖加密过程:▪P=“encodeanddecode”,k=“mykey”字
母序号encodeanddecode明文编码P=4132143401333421434密钥编码k=122410424122410424122410424加密C=163712182716242372716262
4728模运算111102密文C=QLMSBQYXHBQAYHC明文中不同位置的相同字母,被映射为不同的字母Vigenère密码示例❖解密过程:▪C=“QLMSBQYXHBQAYHC”,k=“mykey”字母序号123456789
101112131415密文编码C=161112181162423711602472密钥编码k=122410424122410424122410424加密C=4-13214-2340133-234-24143-22模运算133324密文解码C=encodeanddecodeVigenè
re密码加密过程:❖数学公式计算▪设明文P=p1p2…pn,密钥K=k1k2…km,密文C=c1c2…cn▪加密:ci=(pi+kimodm)mod26;▪说明:若明文长度大于n,则k重复使用。Vigenère密码解密过
程:❖数学公式计算▪pi=(ci-kimodm)mod26;安全性分析❖每个明文字母对应着多个密文字母,明、密文字母不是一一对应关系❖一条消息中,同样的字母在不同的位置映射成不同的密文;❖字母的统计规律进一步降低;❖Vigenère本人建议:密钥与明文一样长;❖Vigenère代换表中
的每一行就是一Caesar密码;安全性分析❖举例:❖密文用数字描述后:❖密码分析思路:▪集中精力找到密钥长度;▪采用单表替代分析方法;Germany:Enigma轮转机密码系统❖ArthurScherbius于1919年发明,4轮Enigm
a在1944年装备到德国海军,使得英国从1944年2月到12月没有检测到德国潜艇信号。❖基于多表替代密码的原理;❖重要性质:❖反射器使得恩格玛机的加密过程是自反的;❖一个字母加密后的输出结果绝不会是它自身❖密码表数量:10万以上(二)换位密码Transpo
sitionCiphers❖换位:▪对明文字母的某种置换,采用移位发进行加密;▪明文中的字母重新排列,位置发生变化;❖栅栏技术:按对角线的顺序写出明文,以行的顺序读出作为密文▪易破译❖矩阵排列法:▪纯置换密码易识别❖多次置换:多
阶段加密,安全性更高例:❖明文:meetmeafterthetogaparty❖写为:mematrhtgpryetefeteoaat❖读出密文为:MEMATRHTGPRYETEFETEOAAT改进❖带有密钥❖再改进:重复加密,多步置换61❖更加复杂的移位❖以指定的行将明文写作多行❖按照
密钥指定的列读出▪Key:▪Plaintext:▪Ciphertext:TTNAAPTMTSUOAODWCOIXKNLYPETZ4312567attackpostponeduntiltwoamxyz6
2矩阵排列法主要内容对称密码算法❖数据加密标准(DES)❖国际数据加密算法(IDEA)❖高级数据加密标准(AES)对称加密的安全性取决于密钥的安全,而非算法的安全。Alice加密机解密机Bob安全信道密钥源Oscar明文x密
文y密钥k明文x密钥k对称加密模型密码学的目的:Alice和Bob两个人在不安全的信道上进行通信,而破译者Oscar不能理解他们通信的内容。回顾❖代替密码(SubstitutionCipher):▪就是明文中的每一个字符被替换成密文中的另一个字符。接收者
对密文做反向替换就可以恢复出明文。❖置换密码(PermutationCipher):▪又称换位密码:明文的字母保持相同,但顺序被打乱了。基本思想Feistel密码结构Li-1Ri-1一个分组LiRiFKi第i次循环F
eistel密码结构Feistel密码结构Feistel的核心参数❖分组大小❖密钥长度❖循环次数❖子密钥产生算法❖循环函数DES的产生❖1974年8月27日,NBS开始第二次征集,IBM提交了算法LUCIFER。❖1975年3月
17日,NBS公开了全部细节。❖1976年,NBS指派了两个小组进行评价。❖1976年11月23日,采纳为联邦标准,批准用于非军事场合的各种政府机构。❖1977年1月15日,“数据加密标准”FIPSPUB
46发布。DES的应用❖1979年,美国银行协会批准使用DES。❖1980年,美国国家标准局(ANSI)同意DES作为私人使用的标准,称之为DEA(ANSIX.392)❖1983年,国际化标准组织(ISO)同意将DES作为国际标准,称之为DEA-1❖1998年12月以后,美国政府不再将DES作为联
邦加密标准DES特点DES算法流程输入64比特明文数据初始置换IP在密钥控制下16轮迭代初始逆置换IP-1输出64比特密文数据交换左右32比特明文IPL0R0fR1=L0fL1=R0K1fR2=L1fL2=R1K2fR16=L1
5fL16=R15K16IP-1密文L15R15InitialPermutation用56位密钥产生16个56位的子密钥DES加密过程76DES解密过程77DES的安全性❖密钥长度=56比特❖强力攻击=尝试次❖差分密码分析=尝试次❖线性密码分析=尝试次(但是后两种攻击是不实用的)❖19
76年,耗资2000万美元的计算机,可以在一天中找到密钥。❖1998年,EFF(电子前哨基金会)宣布破译了DES算法,耗时不到三天时间,使用的是25万美元的“DES破译机”。破解密码的时间与密钥长度之间的关系❖应该注意到的一个事实是,DES经过了可能是当今最多的被分析或被攻击的对象,
但未发现任何结构方面的漏洞。❖DES算法最终之所以被破译的关键是密钥的长度问题。DES总结❖DES算法对个人用户仍值得信赖▪DES算法本身没有大的缺陷▪DES使用的2^56密钥空间不够大,蛮力攻击目前已能够奏效(DESChallengesIII),所以关键场
合不能使用了❖DES已经不再是推荐标准▪DES还是AES,或者RC4、RC5、IDEA、BF▪Free/Open❖DES模块仍广泛存在▪保护和延续DES投资❖对DES的改造▪使用现存的软件硬件在强度上
提高DES改造思路❖算法基本函数不能改变▪否则将不能利用现有的软硬件部署❖密钥空间得加大▪密钥过短正是目前DES的主要弱点,加大密钥空间以抵抗穷举攻击三个递进思路:*用2个key,加密2回*用3个key,加密3回*用2个key,加密3回两重DES•给定明文P和两个加密
密钥k1和k2,采用DES对P进行加密E,有密文C=EK2(EK1(P))•对C进行解密D,有明文P=DK1(DK2(C))83三重DES•双密钥的EDE(Encrypt-Decrypt-Encrypt,加密-解密-加密)模式:C=EK
1(DK2(EK1(P)))对P加密P=DK1(EK2(DK1(C)))对C解密三重DES主要内容❖数据加密概述❖传统密码技术❖对称密钥密码技术❖公钥密码体制▪公钥密码算法原理▪RSA算法▪其他公钥密码算法❖数字签名与认证技术❖加密软件公钥密码算法❖对称密钥密码系统的缺
陷:▪密钥必须经过安全的信道分配,密钥管理复杂▪无法用于数字签名❖非对称密钥密码,也称公开密钥密码,由Diffie,Hellman1976年提出;❖使用两个密钥,对于密钥分配、数字签名、认证等有深远影响;❖和DES等对称算法不同,公钥体制的形式和结构导致公钥算法必须使用某种数学
结构,而不能再使用替代和置换等初等方法。从形式上看,公钥算法将比对称算法更简洁和易于理解。公钥密码用于加密❖每个通信实体有一对密钥(公钥,私钥)。❖使用方式一:▪A向B发送消息,用B的公钥加密▪B收到密文后,用自己的私钥解密PlainText加密算法解密算法ABcipherPlainTex
tB的私钥任何人向B发送信息都可以使用同一个密钥(B的公钥)加密没有其他人可以得到B的私钥,所以只有B可以解密公钥密码用于签名❖使用方式二:▪A向B发送消息,用A的私钥加密(签名)▪B收到密文后,用A的公钥解密(验证)PlainT
ext加密算法解密算法cipherPlainTextABA的私钥公钥密码算法的表示❖对称密钥密码▪密钥:会话密钥(Ks)▪加密函数:C=EKs[P]▪对密文C,解密函数:DKs[C],❖公开密钥▪(KUa,KRa)▪加密/签名:C=EKUb[P],EKR
a[P]▪解密/验证:P=DKRb[C],DKUa[C]签名和加密同时使用X加密(签名)加密解密解密(验证)XYZYZ=EKUb[Y]=EKUb[EKRa(X)]X=DKUa[Y]=DKUa[DKRb(Z)]AB产生密钥对产生密钥对KRaKUaKRbKUb对公钥密码算法的要求❖参与方B容易
产生密钥对▪公钥KUb,私钥KRb❖已知KUb,发送者A的加密操作是容易的:C=EKUb(P)❖已知KRb,接收者B解密操作是容易的:P=DKRb(C)=DKRb(EKUb(P))❖已知KUb,求KRb是计算上不可行的;❖已知KUb和C,欲恢复P是计算上不
可行的。常见公钥密码算法及应用❖三种用途:▪加密/解密:发送方用对方公钥加密,接收方用自己的私钥解密▪数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名▪密钥交换:双方协商会话密钥算法加密/解密数字签名密钥交换RSAY
YYDiffie-HellmanNNYDSANYNRSA密码体制❖1978年,MIT三位年青数学家R.L.Rivest,A.Shamir和L.Adleman用数论构造双钥密码的方法,称作MIT体制,后被广泛称为RSA体制;❖它既可用于加密
、又可用于数字签名;❖RSA算法的安全性基于数论中大整数分解的困难性;参数选择1.取两个大素数p,q,保密;2.计算n=pq,公开n;3.计算欧拉函数ф(n)=(p-1)(q-1);4.任意取一个与ф(n)互素的小整数e,即g
cd(e,ф(n))=1,1<e<ф(n)e作为公钥公开5.寻找d,使得demodф(n)=1,ed=kф(n)+1d作为私钥保密最终:公钥(e,n),私钥(d,n),销毁p和q加密解密过程❖将明文分组,各组长1024比特❖加密过程C=Memodn❖解密过程M=Cdmodn其中,公钥(
e,n),私钥(d,n)(1)可以找到e,d,n,使得对所有M<n,Med=Mmodn成立;(2)对所有满足M<n的值,计算Me和Cd;(3)给定e和n,不可能推出d;RSA算法操作举例❖密钥产生1.取两个大素数p
,q,保密;2.计算n=pq,公开n;3.计算欧拉函数ф(n)=(p-1)(q-1);4.任意取一个与ф(n)互素的小整数e,即gcd(e,ф(n))=1,1<e<ф(n)e作为公钥公开5.寻找d,使
得demodф(n)=1,即:ed=kф(n)+1d作为私钥保密p=17,q=11n=17×11=187Ф(n)=160选择e=77d=160K+1令k=1,得到求得d=23由此得到公钥{7,187}私钥{23,187}RSA加密解密过程举例RSA算法操作举例❖公钥{
7,187}私钥{23,187}❖明文输入为88,加密过程C=887mod187,利用模的运算性质:❖密文输入为11,解密过程M=1123mod187练习1.在使用RSA公钥密码体制中,已截获发给某用户的密文为c=10,该用户的公钥e=5,n=35,那么明文m等于多少?2.利用R
SA算法运算,如果p=11,q=13,e=103,对明文3进行加密。求d及密文。RSA算法的性能及安全性❖运算速度:软件实现比DES慢100倍,硬件实现比DES慢1000倍❖攻击方法▪蛮力攻击:对所有密钥都进行尝试
▪数学攻击:等效于对两个素数乘积(n)的因子分解❖对RSA算法的数学攻击实际上等效于对n的乘积分解▪由于M=Cdmodn,n公开,则需要求出d▪又由于de≡1modØ(n),e已知▪需要求出Ø(n)▪由于Ø(n)=(p-1)(
q-1),所以必须求出p,q▪n=pq,所以必须对n进行分解因子分解复杂度密钥长(bit)所需的MIPS-年*1164001295,00051230,000768200,000,0001024300,000,000,0002048300,000,000,000,000,000,
000*MIPS-年指以每秒执行1,000,000条指令的计算机运行一年澄清误解❖公钥算法更安全▪不能简单比较❖传统对称算法已经过时▪事实上,现在使用的是混合密码体制❖公钥体制避免了传统密钥分配中心带来的麻烦▪事实上,证书体制有其优点但绝非简单❖公钥
算法就是RSA▪RSA只是当前最重要的公钥算法103公开密钥加密方法1用户A用户BCKeBKdBA查到B的公开加密钥KeB,用它加密M后得到C,将C发给BB收到C以后,用自己保密的解密钥KdB解密C,得到明文M查找找到KeB1
04方法1缺点•任何人都能够冒充用户A给B发消息,B无法察觉用户A用户BCKeBKdB查找找到KeB用户C此消息对用户A可能不利⚫无法保证信息的真实性105公开密钥加密方法2•A用自己保密的密钥KdA解密M,得到密文C•将
C发给B•B收到C以后,查A的公开加密钥KeA,用KeA加密C后得到明文M用户A用户BCKdAKeA查找找到KeA106方法2缺点•无法保证信息的秘密性用户A用户BCKdAKeA查找找到KeA用户C截获密文用户C获取了明文Maninthemi
ddleattack:TrudyposesasAlice(toBob)andasBob(toAlice)IamAliceIamAliceRTK(R)-SendmeyourpublickeyTK+AK(R)-SendmeyourpublickeyA
K+TK(m)+Tm=K(K(m))+T-TrudygetssendsmtoAliceencryptedwithAlice’spublickeyAK(m)+Am=K(K(m))+A-RMan-in-the-MiddleAttack(中间人攻击)练习•A向
B发送消息(假设是短消息),设计一种加密方案使得A到B的消息具有保密性,同时保证消息的来源是真实的。用户A用户BCKeBKdB查找找到KeBKdAKeA查找找到KeA公钥密码体制的优缺点❖优点:▪解决密钥传递的问题▪大大减少密钥持有量▪提供
了对称密码技术无法或很难提供的服务(数字签名)❖缺点:▪计算复杂、耗用资源大▪非对称会导致得到的密文变长数字信封❖数字信封技术使用两层加密体制,内层使用对称加密技术,外层使用非对称加密技术。❖具体过程
为:▪发送方:采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封);将它和加密后的信息一起发送给接收方,▪接收方:先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。数字信封加密过程对称密钥K0明文密
文发送方解密过程接收方私钥K1接收方加密过程接收方公钥K2被加密的密钥K0密文解密过程对称密钥K0明文密文密文对称密钥K0被加密的密钥K0对称密钥K0被加密的密钥K0被加密的密钥K0OpenSSL❖OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书
封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用❖❖OpenSSL工具的使用❖相关命令:例如❖opensslgenrsa-outtest.key1024//产生公钥私钥❖opensslrsa-intest.key-pubo
ut-outtest_pub.key//导出公钥❖opensslrsautl-encrypt-inhello-inkeytest_pub.key-pubin-out//用公钥加密指定文件到指定输出❖opensslrsautl-decrypt-in-inkeytest.key-out
//解密❖OpenSSLAPI的使用主要内容问题的引入-通信威胁❖泄露:把消息内容发布给任何人或没有合法密钥的进程。❖传输分析:分析通信双方的通信模式❖伪造:从一个假冒信息源向网络中插入消息。❖内容修改:消息内容被插入删除变换修改。❖顺序修改:插
入删除或重组消息序列。❖时间修改:消息延迟或重放。❖发送方否认:发送方否认发送过消息❖接收方否认:接收方否认接收过消息加密认证数字签名认证技术❖现代密码学的最重要的分支就是加密和认证。❖加密:防止对方获得机密信息(被动攻击)。❖认证
:防止对方的主动攻击,例如伪造,纂改消息等。❖保密和认证是信息安全的两个不可或缺的内容,他们是两个不同属性的问题。❖认证不能自动提供保密性,保密性不提供认证功能。消息认证❖消息认证:消息来自真正的发送方且未被修改(包括顺序和及时性),具体包括:▪消息的来源▪消息的完整性▪消息的序号和时间❖它包含两
方面的含义:▪(1)验证信息的发送者是真正的而不是冒充的,即数据起源验证;▪(2)验证信息在传递过程中未被篡改、重放或延迟等。一个纯的认证系统❖认证系统模型消息认证函数❖(一)消息加密▪将明文加密后以密文作为认证;❖(二)散列函数▪是一个公开
的函数它将任意长的信息映射成一个固定长度的散列值,以散列值作为认证符。▪常见的散列函数有:MD4、MD5、SHA和SHA-1(一)消息加密函数❖信息加密函数分两种,▪一种是常规的对称密钥加密函数,▪另一种是公开密钥的双密钥加密函数。❖下图的通信双方是,用
户A为发信方,用户B为接收方。用户B接收到信息后,通过解密来判决信息是否来自A,信息是否是完整的,有无窜扰。消息加密函数❖(1)对称加密:▪具有机密性,可消息认证,不提供签名如果攻击者获取到密文,并且对密文进行了修改,接收
方如何判断收到的密文是被纂改过的?121•如何自动确定是否收到的明文可解密为可懂的明文?•一种解决办法是强制明文有某种结构.差错控制:ErrorControl消息加密函数❖(2)公钥加密:▪具有机密性,不能提供认证(任何人都可以得到公钥),不提供签名;消息加
密函数❖(3)私钥加密▪认证和签名,没有机密性A的私钥A的公钥消息加密函数❖(4)公钥加密体制▪机密性,可认证和签名加密vs.认证❖保密性与完整性是两个不同的概念;❖某些信息只需要真实性(来源与消息),不需要保密性:▪广播的信息难
以使用加密(信息量大)▪网络管理信息等只需要真实性▪政府/权威部门的公告❖加密算法代价大(尤其是公钥加密算法);❖因此,认证函数与保密函数的分离能提供功能上的灵活性!❖思路:散列函数散列函数是一个公开的函数它将任意长的信息映射成一个固定长度的散列值,以散列值作为认证符
。消息验证码/认证符/消息摘要散列函数❖散列函数(又称杂凑函数、哈希函数、数字指纹、压缩函数、数据鉴别码):是对不定长的输入产生定长输出的一种特殊函数:h=H(M)其中:M:变长消息h=H(M)是定长的散列值(或称消息摘要)H:散列函数,是公开的;❖散
列值在信源处被附加在消息上,接收方重新计算散列值来确认消息未被篡改。散列函数的基本性质❖单向性:对于预先给定的散列值找到对应的数据块在计算上不可行❖抗冲突性:找不到不同的数据块对应相同的散列值散列函数的性质(1)H能
用于任何大小的数据分组,都能产生定长的输出,例如,512比特(2)对于任何给定的M,H(M)要相对易于计算;(3)单向性:对任何给定的散列码h,寻找M使得H(M)=h在计算上不可行;(4)抗弱冲突:给定M,要寻找另一信息M′,满足H(M′)=H(M
)在计算上不可行;(5)抗强冲突:要寻找不同的信息M和M′,满足H(M′)=H(M)在计算上不可行,例如生日攻击。找到强冲突要比找到弱冲突更容易,因此,实现具有抗弱冲突性的散列函数要难于具有抗强冲突性的函数散列函数问题❖生日问
题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?❖实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。思考❖CRC是否可以作为散列函数?▪严格意义上,不可以;▪主要用于通信传输中对错误码的校验,而非安全领域;❖压缩算法
(ZIP,RAR)是否可以作为散列函数?▪否,压缩算法是可逆函数,不满足散列函数单向性的要求(b)Usingpublic-keyxxyHashKeyEncryptDecrypt(a)Usingsecret-keyEncryption使用对称密钥算法加
密Hashencryption(digitalsignature)使用公钥算法加密HASHSecretValue(秘密值)isaddedbybothpartiestomessagebeforethe“hash
,”functionisusedtogettheMessageIntegrityCheck(MIC).Itisremovedbeforetransmission.MICMICItiscriticalthataforger(伪造者)canno
tcomposeadifferentmessagethatwouldproducethesameMICvalue.不使用加密算法,但仍然安全传输Hash值134极其不安全安全Hash函数的一般结构散列函数❖MD5(消息摘要算法5):对输入消息(任意长)按照512位进行分组处理,输出
128位消息摘要❖SHA-1(安全哈希算法-5):输入长度小于2^64位消息,按512位进行分组处理,输出160位消息摘要❖SHA-256、SHA-383和SHA-512提供更长的消息摘要,大小分别是256位、383位和512位;❖RIPEMD-160:对输入消息(任意长)
按照512位进行分组处理,输出160位消息摘要MD5(消息摘要算法)❖RonRivest于1990年提出了一个称为MD4的散列函数。他的设计没有基于任何假设和密码体制,不久,他的一些缺点也被提出。为了增强安全性和克服MD4的缺陷,Rivest于1991
年对MD4作了六点改进,并将改进后的算法称为MD5❖MD5算法:将明文按512比特进行分组,即MD5中的b=512bit,经填充后信息长度为512的倍数(包括64比特的消息长度)。138100…0消息K比特Lx51
2比特1到512比特的填充消息长度Y0512bitHMD5512128CV0=VIY1512bitHMD5512128CV1Yq512bitHMD5512128CVqYL-1512bitHMD5512128CVlL-1……消息摘要128bitMD
5的框图破解MD5?❖2004年8月,在美国加州圣巴巴拉召开的年度密码学国际会议上,王小云首次宣布了她和她的研究小组近年来的研究成果——对MD5、HAVAL-128、MD4和RIPEMD等四个著名密码算法的破译结果。▪在王小云教授仅公布到他们的第三个惊人成果的
时候,会场上已经是掌声四起,报告不得不一度中断。▪报告结束时,与会者长时间热烈鼓掌,部分学者起立鼓掌致敬,这在密码学会议上是少见的盛况。❖之后,王小云又继续发展她的研究,于2005年初破解了美国国家标准与技术研究所(NIST)为美国政府及商企界制定的SHA-1密
码算法。MD5的破解❖使用“穷举”法:即程序在一定的数据范围内产生一系列数据组合进行MD5运算,再把运算结果与获取的摘要进行比较,如果两者相同,就被定义为“破解”了。MD5在线破解安全散列算法(SHA)❖目前,MD5被认为是易受
攻击的(很容易遭遇强碰撞的生日攻击),因此,有必要用一个具有更长散列码和更能抗击已知密码分析攻击的散列函数来代替现在流行的MD5。❖现在已经有两个散列码长度为160比特的替代者SHA-1和RIPEMD-160。我们了解SHA-1即可。143144•安全散列算法SHA(Secure
HashAlgorithm)是由美国国家标准和技术协会提出的,并作为联邦信息处理标准在1993年公布。1995年又发布了一个修订版,通常称为SHA-1。SHA是基于MD4算法的。•MD5与SHA-1对比M
D5SHA-1消息长度128bit160bit分组长度512bit512bit步骤数6480消息最大长度264-1速度较快慢问题的提出❖1996年7月9日,北京市海淀区法院审理国内第一起电子邮件侵权案。❖此案的原、被告均系北大心理学系93级女研究生
。4月9日,原告薛燕戈收到美国密执安大学教育学院通过互联网发给她的电子邮件,内容是该学院将给她提供1.8万美元金额奖学金的就学机会。此后,久等正式通知,但杳无音训,蹊跷之中委托在美国的朋友去密执安大学查询。在4月27日查到密执安大学
收到一封北京时间4月12日10时16分发出的署名薛燕戈的电子邮件,表示拒绝该校的邀请。因此密执安大学以将原准备给薛的奖学金转给他人。经调查,证明以原告名义发送电子邮件的是被告。数字签名❖消息认证用于防止第三方攻击;数字签名用于防止通信对方的欺骗或抵赖(否认)❖数字签名:一
种基于机密技术的认证技术,用于确认发送者身份和消息完整性的一个加密的消息摘要。❖分类:▪直接数字签名▪需仲裁的数字签名数字签名应满足的基本条件❖签名者不能否认自己的签名;❖接收者能够验证签名,而其他任何人都不能伪造签名;❖当关于签名的真伪发生争执时,存在一个仲裁机构或第三方能够
解决争执。直接签名❖直接数字签名仅涉及通信方。假设接收方知道发方的公钥。数字签名通过使用发方的私钥对整个消息进行加密或使用发方的私钥对消息的散列码(消息摘要)进行加密来产生。❖如何实现?直接签名--RSA数字签名机制❖
直接数字签名仅涉及通信方❖RSA是最流行的一种加密标准,许多产品的内核都有RSA的软件和类库,RSA与Microsoft、IBM、Sun和Digital都签订了许可协议,使其在生产线上加入了类似的签名特性。与DSS不同
,RSA既可用于加密数据,也可用于身份认证。RSA数字签名体制MEH||MEKRa(HM))HD比较KRaKUa数字签名在接收方具体步骤❖发送方▪(1)A把发送给B的消息作为散列函数的输入,生成消息摘
要;▪(2)A用自己的私钥加密消息摘要,生成数字签名;▪(3)A将消息与数字签名一起发送到B❖接收方:▪(4)B接收到后,将消息和数字签名进行拆分;▪(5)B用A的公钥对数字签名进行解密,得到消息摘要▪(6)B将收到的消
息作为A的散列函数的输入,产生消息摘要▪(7)B比较两个消息摘要,若相同,验证成功思考❖以上过程可以提供什么样的安全服务?❖完整性服务、发送方的身份认证和发送方的不可抵赖服务。课堂练习❖1.实现消息认证有两种方式,分别是使用加密函数和
使用认证函数,分别举例说明。并比较两类函数应用在消息认证上的特点。❖2.列举散列函数的性质。课堂练习3:说明以上认证函数的应用所提供的安全性服务S:双方共享的秘密值课堂练习3:说明以上认证函数的应用所提供的安全性服务课堂练习❖4.假设Oscar可以看到Alice到B
ob之间的所有消息,并且能够获取到数字签名的公钥。❖A)(消息完整性)Alice将消息x=“Transfer$1000toMark”以明文形式,加上auth(x)一起发送到Bob。Oscar截获上述内容,
并将“Mark”替换为”Oscar”,Bob能否检测到?说明原因。❖B)(重放)Alice将消息x=“Transfer$1000toOscar”以明文形式,加上auth(x)一起发给Bob。Oscar观测到后,重复100遍发送到Bob,Bob是否
能够检测到?如果不能,尝试说明解决方法。❖C)(认证中Bob存在欺骗行为)Bob声称收到了Alice的消息x=“Transfer$1000fromAlicetoBob”,并附带有效的数字签名auth(x)。但Alice表示并没有发送过上述内容。说明Alice如何证
实是哪种情况?❖D)(发送者认证,同时第三方存在欺骗)Oscar声称Bob发送了消息x,并附带数字签名auth(x),但Alice声称它也发送了上述内容。说明Bob如何区分是哪种情况?课堂练习❖5.请依据加密技术和数字签名技术原理,设计一个同时能够防窃听、防纂改、防抵赖并可具有身份认证功能的
加/解密方案。▪依次写出发送方和接收方的处理步骤,并用公式表达,并文字进行说明。▪如:M,H,E,K,KUX(X表示通信方)、KRX▪发送方使用H对消息M生成消息摘要:H(M)一个加密通信实例的演化❖假设服务器和客户端要进行通信,且协商使用RSA来对通信进行加密以保证谈话内容的安全;
问题❖如何知道每次通信或交易中所使用的密钥就是用户的密钥对而非伪造呢?❖数字证书:需要验证公钥和用户之间的关系:❖CA:数字证书颁发中心❖注意:数字证书并不是身份证,只是身份证上的公章,表示身份证是有效的CertificateAuthoritygener
atesthe“signature”thatisaddedtoraw“Certificate”MICHashRaw“Certificate”包括用户名,公钥,有效日期等RawCert.SignedCert.第一步:产生证书的
Hash值,也称为指纹第二步:使用CA的私钥加密指纹SignedCertificateRecipientcanverifysignatureusingCA’spublickey.CASecureArea数字证书构成❖证书的发布机构❖证书的有效期❖公钥❖证书所有
者(Subject)❖签名所使用的算法▪对指纹进行签名,生成证书的数字签名❖指纹以及指纹算法▪指纹:计算整个证书的消息摘要,保证证书的完整性(未被篡改)▪证书使用者用指纹算法根据证书明文产生本地指纹,并和证书中的指纹进行对比在浏览器
中查看数字证书向CA申请数字证书❖假设“ABCCompany”花了1000块钱,向一个证书发布机构“SecureTrustCA”申请了一张证书。❖注意,这个证书发布机构"SecureTrustCA"是一个大家公认并被一些权威机构接受的证书发布机构,操作系统里面已经安装了"Secur
eTrustCA"的证书。❖“SecureTrustCA”在发布证书时,把Issuer,Publickey,Subject,Validfrom,Validto等信息以明文的形式写到证书里面,然后用一个指纹算法计算
出这些数字证书内容的一个指纹,并把指纹和指纹算法用自己的私钥进行加密,然后和证书的内容一起发布;❖“SecureTrustCA”还会给“ABCCompany”一个私钥。❖花了1000块钱买的这个证书的内容如下:数字证书示例×××证书内容开始××Issuer:Secure
TrustCASubject:ABCCompanyValidfrom:某个日期Validto:某个日期PublicKey:一串很长的数字……其它的一些证书内容……{证书的指纹和计算指纹所使用的指纹算法}[SecureTrus
tCA的私钥|RSA]程序如何使用证书❖第一步:验证证书的真实性▪程序在操作系统中受信任的发布机构的证书中去找“SecureTrustCA”的证书,如果找不到,证书可能有问题,提示错误信息。如果在系统中找到了"
SecureTrustCA"的证书,从证书中取出"SecureTrustCA"的公钥▪用公钥解密指纹,进行证书的完整性验证❖第二部:从证书中获取公钥并使用▪使用公钥与证书申请者进行通信Windows中对证书进行管理❖查看、删除、安装数字证
书❖操作步骤:▪1)开始菜单->运行,输入mmc,回车▪2)在打开的窗口中选择File->Add/RemoveSnap-in…▪3)然后在弹出的对话框的StandaloneTab页里面点击Add…按钮▪4)在弹出的对对话框中选择certificates后点
击Add按钮创建自己的数字证书❖makecert.exe:❖微软提供的一个用来创建证书的工具,在安装VisualStudio的时候会安装上;❖使用方法:❖创建自己的数字证书❖makecert-r-pe-n"cn=MyCA"-$commercial
-asha1-b08/05/2010-e01/01/2012-cyauthority-ssmy-srcurrentuser❖-r:自签名-pe:将所生成的私钥标记为可导出。这样可将私钥包括在证书中。-n"cn=MyCA":证书的
subjectname❖-$commercial:指明证书商业使用-a:指定签名算法。必须是md5(默认值)或sha1。-b08/05/2010:证书有效期的开始时间,默认为证书的创建日期。格式为:mm/d
d/yyyy-e01/01/2012:指定有效期的结束时间。默认为12/31/203911:59:59GMT。格式同上-ssmy:证书产生到my个人store区-srcurrentuser:保持到计算机当前个人
用户区,其他用户登录系统后则看不到该证书。。课堂练习❖客户端登录银行服务器并查询账户信息,设计一加/解方案,保证在整个登录并进行通信过程中,具有保密性,抗否认性,防篡改▪提示,分阶段说明方案,包括密钥分发过程,登录过程,账户查看过程等Kerberos系统Kerberos是由麻
省理工学院开发的网络访问控制系统,它是一种完全依赖于密钥加密的系统范例,其主要的功能用于解决保密密钥管理与分发的问题。Kerberos建立在一个安全的、可信任的密钥分发中心(KeyDistributionCenter,KDC)的概念上。与每个用户都要知道几百个密码不同,使
用KDC时用户只需知道一个保密密钥——用于与KDC通信的密钥。Kerberos的工作过程如下:假设用户A想要与用户B秘密通信。首先,由A呼叫KDC,请求与B联系。KDC为A与B之间的对话选择一条随机的对话密钥,设
为XXXXX。计算机网络安全基础(第4版)171Kerberos系统同时生成一个“标签”,由KDC将拥有这“标签”的人A告诉B,并请B使用对话密钥XXXXX与A交谈。与此同时,KDC发给A的消息则用只有A
与KDC知道的A的共享密钥加密,告诉A用对话密钥XXXXX与B交谈。此时,A对KDC的回答进行解密,恢复对话密钥XXXXX和给B的标签。在这过程中,A无法修改标签的头部与细节,因为该标签用只有B和KDC知道共享密钥加密
了。之后,A呼叫B,告诉对方标签是由KDC给的。接着,B对标签的内容进行解密,知道只有KDC和他自己能用知道的口令对该消息进行加密,并恢复A的名字及对话密钥XXXXX。这样,A和B就可以用对话密钥相互安全地进行通信了。主要内容❖数据加密概述❖传统密码
技术❖对称密钥密码技术❖公钥密码体制❖数字签名与认证技术❖加密软件加密软件PGPPGP(PrettyGoodPrivacy)是一个基于RSA密钥加密体系的供大众使用的加密软件。它不但可以对用户的邮件保密,以防止非授权者阅读,还
能对邮件加上数字签名让收信人确信邮件未被第三者篡改,让人们可以安全地通信。PGP采用了审慎的密钥管理,一种RSA和传统加密的综合算法,用于数字签名的信息摘要算法,加密前压缩等。由于PGP功能强,速度快,而且源代码全,因此,PGP成为最流行的公用密钥加密软件包之一。本章
小结❖加密基本概念及密码学分析❖加密算法分类▪按照算法操作分类▪按照密钥个数分类▪按照处理明文的方法分类❖古典密码算法❖对称加密算法:基于代换和替换▪DES、AES、IEDA等❖公钥加密/非对称加密算法▪应用范围:加密,密钥分配,数字
签名▪RSA、DH等•RSA的基本操作过程本章小结❖消息认证:防止第三方纂改▪消息认证函数:MD5,SHA等▪认证函数的应用❖数字签名:防止通信对方的欺骗▪基于消息摘要的签名算法▪数字证书感谢您的阅读!为了便于学习和使用,本文档下载后内容可随意修改
调整及打印,欢迎下载!