您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 密码学基础与应用(1)ppt
1第四讲密码学基础与应用(1)2内容提要3.1密码学的基本概念3.2对称密钥密码算法3.3非对称密钥密码算法3.4单向散列函数3.5数字签名3.6密钥管理和公钥基础设施(PKI)3.7OpenSSL简介3内容提要3.1密码学的基本概念3.1.1密码学的历史3.1.2密码学的基本概念3.1.3算法的分类3.1.4密码分析3.1.5密码技术的用途3.2对称密钥密码算法3.3非对称密钥密码算法3.4单向散列函数3.5数字签名3.6密钥管理和公钥基础设施(PKI)3.7OpenSSL简介43.1.1密码学的历史•古罗马:Caesar密码ABCDEFGHIGKLMNOPQRSTUVWXYZDEFGHIGKLMNOPQRSTUVWXYZABCCaesarwasagreatsoldier密码本密文Fdhvduzdvdjuhdwvroglhu明文密文CAESAR密码:c=(m+3)Mod2653.1.1密码学的历史(Cont.)•美国南北战争CANYOUUNDERSTAND输入方向输出方向明文:Canyouunderstand密文:codtaueanurnynsd63.1.1密码学的历史(Cont.)•转轮密码机ENIGMA,由ArthurScherbius于1919年发明,4轮ENIGMA在1944年装备德国海军.73.1.1密码学的历史(Cont.)英国的TYPEX打字密码机,是德国3轮ENIGMA的改进型密码机。它在英国通信中使用广泛,且在破译密钥后帮助破解德国信号。83.1.1密码学的历史(Cont.)•图灵(AlanMathisonTuring)–AlanMathisonTuring,1912~1954.英国数学家。一生对智能与机器之间的关系进行着不懈探索。–1936年,24岁的图灵提出“图灵机”的设想。二战期间成功地破译了纳粹德国的密码,设计并制造了COLOSSUS,向现代计算机迈进了重要一步。–1952年,图灵遭到警方拘捕,原因是同性恋。1954年6月8日,服毒自杀,年仅42岁。–图灵去世12年后,美国计算机协会以他的名字命名了计算机领域的最高奖“图灵奖”。9一个简单的加密算法—异或110101011000110011xxxxxxxx10一个简单的加密算法—异或•异或密文:0110解密:密钥:0101明文:0011•已知明文、密文,怎样求得密钥?C=PKP=CK异或运算(不带进位加法):明文:0011加密:密钥:0101密文:0110K=CP•只知道密文,如何求得密文和密钥?113.1.2密码学的基本概念•密码学基本模型发送方接收方EncryptionDecryption加密:c=EK(m)解密:m=DK(c)不安全信道密码分析(Cryptanalysis)plaintextciphertextplaintextKeyKey123.1.2密码学的基本概念(Cont.)•密码编码:通过信息编码使信息保密•密码分析:用分析方法解密信息•基本术语–明文(plaintext),密文(ciphertext)–加密(encrypt,encryption),解密(decrypt,decryption)–密码算法(Algorithm),密码(Cipher):用来加密和解密的数学函数c=E(m),m=D(c),D(E(m))=m–密钥(Key):算法中的一个变量c=EKe(m),m=DKd(c),DKd(EKe(m))=m133.1.3密码算法的分类•古典密码算法和现代密码算法–按照算法和密钥是否分开•对称密钥密码和非对称密钥密码–加密和解密是否使用相同的密钥•分组密码和序列密码–每次操作的数据单元是否分块14古典密码和现代密码•古典密码–代替密码(SubstitutionCipher)–换位密码(transpositionCipher)–代替密码与换位密码的组合•古典密码(受限密码)的缺陷–密码体制的安全性在于保持算法本身的保密性–受限算法的缺陷•不适合大规模生产•不适合较大的或者人员变动较大的组织•用户无法了解算法的安全性15古典密码和现代密码(Cont.)•现代密码算法–把算法和密钥分开–密码算法可以公开,密钥保密–密码系统的安全性在于保持密钥的保密性发送方接收方mm加密E解密Dc=Ek(m)m=Ek(c)密码分析密钥分配(秘密信道)kk16对称密码算法和非对称密码算法•对称密钥密码算法,又称传统密码算法、秘密密钥密码算法–加密和解密使用相同的密钥Ke=Kd–常用算法:DES,IDEA,Blowfish,RC2等•优点–加密速度快,便于硬件实现和大规模生产•缺点–密钥分配:必须通过保密的信道–密钥个数:n(n-1)/2–无法用来签名和抗抵赖(没有第三方公证时)17对称密码和非对称密码(Cont.)•非对称密码,又称公开密钥密码算法–加密和解密使用不同的密钥(Kp,Ks),把加密密钥公开,解密密钥保密:c=EKp(m),m=DKs(c)–常用算法:RSA,DSA,背包算法,ElGamal,椭圆曲线等•优点:–密钥分配:不必保持信道的保密性–密钥个数:npair–可以用来签名和抗抵赖•缺点–加密速度慢,不便于硬件实现和大规模生产18分组密码和序列密码•分组密码(BlockCipher)–一次加密或解密操作作用于一个数据块,比如64位•序列密码(StreamCipher)–一次加密或解密操作作用于一位或者一个字节随机序列随机序列密钥序列发生器PiCiCiPiKey密钥序列发生器193.1.4密码分析•在未知密钥的前提下,从密文恢复出明文、或者推导出密钥•对密码进行分析的尝试称为攻击•攻击方法分类(根据已知信息量的多少)–唯密文攻击–已知明文攻击–选择明文攻击–自适应选择明文攻击–选择密文攻击–选择密钥攻击203.1.4密码分析(Cont.)•Successindealingwithunkownciphersismeasuredbythesefourthingsintheordernamed,perseverance,carefulmethodsofanalysis,intuition,luck.Theabilityatleasttoreadthelanguageoftheoriginaltextisverydesirablebutnotessential.–ParkerHitt‘‘军事密码破译指南’’的开场白–毅力、审慎的分析方法、直觉、运气。213.1.4密码分析(Cont.)•密码算法的安全性–如果破译算法的代价大于加密数据本身的价值,或者在信息的生命期内无法破解,那么你的算法可能是安全的。–一个算法被称为是计算上安全的,如果一个算法用可得到的资源不能破解。•处理复杂性:计算量,CPU时间•数据复杂性:所需输入数据量•存储复杂性:计算所需的存储空间223.1.4密码技术的主要用途•数据保密—数据加密/解密–数据加密(存储和传输)•认证技术–实体身份认证–数据源发认证•信息完整性保护–数据在传输过程中没有被插入、篡改、重发;•数字签名和抗抵赖(Non-repudiation)–源发抗抵赖–交付抗抵赖23内容提要3.1密码学的基本概念3.2对称密钥密码算法3.2.1对称密钥算法简介3.2.2DES算法原理3.2.3算法模式3.2.4DES的安全性和速度3.2.5其他对称密码算法简介3.3非对称密钥密码算法3.4单向散列函数3.5数字签名3.6密钥管理和公钥基础设施(PKI)3.7OpenSSL简介243.2.1对称密钥算法简介•加密和解密使用相同的密钥:KE=KD•密钥必须使用秘密的信道分配发送方接收方mm加密E解密Dc=Ek(m)m=Dk(c)密钥分配(秘密信道)kk253.2.1对称密钥算法简介(Cont.)•常用对称密钥密码算法–DES(DataEncryptionStandard)及其各种变形–IDEA(InternationalDataEncryptionAlgorithm)–RC2,RC4,RC5,–AES(AdvancedEncryptionStandard)–CAST-128–Blowfish263.2.2DES算法原理•IBM公司,70年代初提出,80年代成为国家标准•DES是一种对称密钥算法,密钥长度为56bits(加上奇偶校验,通常写成64bits)•是一种分组加密算法,64bits为一个分组•基本思想:–混乱(Confusion)和扩散(Diffusion)•使用标准的算术和逻辑运算27DES加密过程首先把明文分成以64bit为单位的块m,对于每个m,执行如下操作DES(m)=IP-1•T16•T15•.....T2•T1•IP(m)–初始置换,IP–16轮迭代,Ti,i=1,2,…16–末置换,IP-128DES算法概要Round16IP-1Roud1Roud1InitialPermutationPlaintext64bitsciphertext64bitsPermutedChoice1LeftCircularShiftLeftCircularShiftLeftCircularShiftPermutedChoice2PermutedChoice2PermutedChoice229初始换位(IP)•初始换位(IP)58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157M=m1m2,……m62m63,m64M’=m58m50,……m23m15,m7IP(M)30一轮迭代Li-1Ri-1Li=Ri-1Ri=Li-1f(Ri-1,Ki)Ki(48bits)32bits32bits32bitsE-盒置换S-盒代替P-盒置换32bitsf483231扩展置换(E)•将Ri从32位扩展到48位•目的:输入的一位影响下一步的两个替换,使得输出对输入的依赖性传播得更快,密文的每一位都依赖于明文的每一位12345678123456783248321234545678989….313211234567891011121314……46474832S-盒置换•将48比特压缩成32比特ES1S2S3S4S5S6Ri-1(32bits)Ki(48bits)48bitsS7S833S-盒置换•输入6比特:b1b2b3b4b5b6•输出4比特:S(b1b6,b2b3b4b5)S1b1b2b3b4b5b60123456789101112131415S101441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613S2015181461134972131205101..........23举例:S1(100110)=100034P-盒置换•32比特输入,32比特输出123456789303132167202129122817115......11425P-盒的输出:35子密钥的生成PC-1C0D0LS1LS1C1D1LS2LS2C2D2LS16LS16C16D16PC-2K1(48bits)密钥K,64bits2828PC-2K2(48bits)PC-2K16(48bits)36子密钥生成CiDi移位(LS)移位压缩置换(PC)Ci+1Di+1Ki37子密钥生成•拆分:56bits的密钥分成两部分,Ci,Di,各28bits•循环左移:根据迭代的轮数,分别左移一位或两位123456789101112131415161122222212222221•压缩置换(置换选择):从56bits中选择48bits141711241532815621102319124268167272013241523137475530405145334844493956345346425036293238末置换•末置换4084816
本文标题:密码学基础与应用(1)ppt
链接地址:https://www.777doc.com/doc-5447396 .html