密码学演变历史(1)_第1页
密码学演变历史(1)_第2页
密码学演变历史(1)_第3页
密码学演变历史(1)_第4页
密码学演变历史(1)_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 4 14 CryptographyandNetworkSecurity 2 1 59 CryptographyandNetworkSecurityChapter2ClassicalEncryptionTechniques FourthEditionbyWilliamStallingsLectureslidesby杨寿保syang http 202 38 64 11 syang cryptoclassSeptember2008 2020 4 14 CryptographyandNetworkSecurity 2 2 59 PartOne SymmetricCiphers RoadMapforPartOneChp 2 ClassicalEncryptionTechniquesChp 3 BlockCipherandtheDataEncryptionStandardChp 4 FiniteFieldsChp 5 AdvancedEncryptionStandardChp 6 MoreonSymmetricCiphersChp 7 ConfidentialityUsingSymmetricEncryption 2020 4 14 CryptographyandNetworkSecurity 2 3 59 Chapter2 ClassicalEncryptionTechniques Manysavagesatthepresentdayregardtheirnamesasvitalpartsofthemselves andthereforetakegreatpainstoconcealtheirrealnames lesttheseshouldgivetoevil disposedpersonsahandlebywhichtoinjuretheirowners TheGoldenBough SirJamesGeorgeFrazer 2020 4 14 CryptographyandNetworkSecurity 2 4 59 密码学的演变历史 1 1918 WilliamFriedman sTheIndexofCoincidenceanditsApplicationsinCryptographyEdwardHebern RotorMachinefor50Years 1949 ClaudeShannon sTheCommunicationTheoryofSecrecySystem 成为理论基础1949 1967 CryptographicLiteraturewasbarren1971 IBM LucifferCipher 128位密钥作分组加密byteamledbyHorstFeistelused64 bitdatablockswith128 bitkey1975 Diffie Hellman ANewDirectioninCryptography 首次提出适应网络保密通信的公开密钥思想 揭开现代密码学研究的序幕 具有划时代的意义1976 1977 美国国家标准局正式公布实施DES DataEncryptionStandard 2020 4 14 CryptographyandNetworkSecurity 2 5 59 密码学的演变历史 2 1977 1978 Rivest Shamir Adelman第一次提出公开密钥密码系统的实现方法RSA1981 成立InternationalAssociationforCryptologyResearch1985 ElGamal提出概率密码系统ElGamal方法1990 1992 LaiXuejiaandJames IDEA TheInternationalDataEncryptionAlgorithm2000 AES AdvancedEncryptionStandard 2020 4 14 CryptographyandNetworkSecurity 2 6 59 Cryptology 保密学 源自希腊语 Greek Krypt s hidden logos word 是密码学和密码处理过程的研究 Cryptography TheScienceandStudyofSecretWriting 密码编码学Cryptanalysis TheScienceandStudyofSecretBreaking 密码破译学Cipher Asecretmethodofwriting加密方法Encipher encipherment encryption 将明文转换成密文的过程Decipher decipherment decryption 将密文还原成明文的过程Plaintext cleartext 原始的可读数据 明文Ciphertext Cryptogram 加密后的不可解读之文件 密文Key 密钥 对加密与解密过程进行控制的参数E m EncryptionTransformation加密变换D c DecryptionTransformation解密变换 密码学基本术语Terminologies 2020 4 14 CryptographyandNetworkSecurity 2 7 59 什么是密码 简单地说它就是一组含有参数K的变换E 设已知消息m 通过变换Ek得密文C 即 这个过程称为加密 E为加密算法 k不同 密文C亦不同 传统的保密通信机制 简单加密系统模型 2020 4 14 CryptographyandNetworkSecurity 2 8 59 TheoreticalSecurity orPerfectSecurity andPracticalSecure orComputationallySecure 理论安全 或无条件安全 攻击者无论截获多少密文 都无法得到足够的信息来唯一地决定明文 Shannon用理论证明 欲达理论安全 加密密钥长度必须大于等于明文长度 密钥只用一次 用完即丢 即一次一密 One timePad 不实用 实际安全 或计算上安全 如果攻击者拥有无限资源 任何密码系统都是可以被破译的 但是 在有限的资源范围内 攻击者都不能通过系统地分析方法来破解系统 则称这个系统是计算上安全的或破译这个系统是计算上不可行 ComputationallyInfeasible 理论安全和实际安全 2020 4 14 CryptographyandNetworkSecurity 2 9 59 加密的基本概念 密码体制加密系统采用的基本工作方式称为密码体制 密码体制的基本要素是密码算法和密钥 密码算法是一些公式 法则或程序 密钥是密码算法中的控制参数 加密系统可以用数学符号来描述 S P C K E D P 明文空间C 密文空间K 密钥空间E 加密变换D 解密变换k K 则有C Ek P P Dk C Dk Ek P 或者Dk Ek 1 且Ek Dk 1 2020 4 14 CryptographyandNetworkSecurity 2 10 59 对称密码体制 SymmetricSystem One keySystem Secret keySystem 加密密钥和解密密钥相同 或者一个密钥可以从另一个导出 能加密就能解密 加密能力和解密能力是结合在一起的 开放性差 非对称密码体制 AsymmetricSystem Two keySystem Public keySystem 加密密钥和解密密钥不相同 从一个密钥导出另一个密钥是计算上不可行的 加密能力和解密能力是分开的 开放性好 对称密码体制和非对称密码体制 2020 4 14 CryptographyandNetworkSecurity 2 11 59 序列密码 如果密文不仅与最初给定的算法和密钥有关 同时也与明文位置有关 是所处位置的函数 则称为序列密码体制 加密以明文比特为单位 以伪随机序列与明文序列模2加后 作为密文序列 分组密码 如果经过加密所得到的密文仅与给定的密码算法和密钥有关 与被处理的明文数据在整个明文中的位置无关 则称为分组密码体制 通常以大于等于64位的数据块为单位 加密得相同长度的密文 序列密码体制和分组密码体制 2020 4 14 CryptographyandNetworkSecurity 2 12 59 确定型密码体制和概率密码体制确定型 当明文和密钥确定后 密文也就唯一地确定了 概率型 当明文和密钥确定后 密文通过客观随机因素从一个密文集合中产生 密文形式不确定 称为概率型密码体制 单向函数型密码体制和双向变换型密码体制单向函数型密码体制适用于不需要解密的场合 容易将明文加密成密文 如哈希函数 双向变换型密码体制可以进行可逆的加密 解密变换 其他加密体制 2020 4 14 CryptographyandNetworkSecurity 2 13 59 加密算法的选择公开发表的加密算法 政府指定的加密算法 著名厂家产品 专家推荐的加密算法通信信道的加密链路加密 点到点加密高层连接加密 端到端加密存储数据的加密硬盘级加密和文件级加密 加密的应用 2020 4 14 CryptographyandNetworkSecurity 2 14 59 现代密码学的基本原则设计加密系统时 总是假定密码算法是可以公开的 需要保密的是密钥 一个密码系统的安全性不在算法的保密 而在于密钥 即Kerckhoff原则 对加密系统的要求系统应该是实际上安全的 practicalsecure 截获密文或已知明文 密文对时 要决定密钥或任意明文在计算上是不可行的 加密解密算法适用于密钥空间中的所有元素 系统易于实现 使用方便 系统的安全性不依赖于对加密体制或加密算法的保密 而依赖于密钥 系统的使用不应使通信网络的效率过分降低 现代密码学基本原则 2020 4 14 CryptographyandNetworkSecurity 2 15 59 对称加密系统由以下五部分组成 Plaintext 明文Encryptionalgorithm 加密算法Key 密钥Ciphertext 密文Decryptionalgorithm 解密算法加密算法必须足够强大 使破译者不能仅根据密文破译消息收发双方必须在某种安全的形式下获得密钥并必须保证密钥的安全 2 1对称密码的模型 2020 4 14 CryptographyandNetworkSecurity 2 16 59 传统密码的简化模型 2020 4 14 CryptographyandNetworkSecurity 2 17 59 对称密码系统的要求 Tworequirementsforsecureuseofsymmetricencryption astrongencryptionalgorithmasecretkeyknownonlytosender receiverY EK X X DK Y AssumeencryptionalgorithmisknownImpliesasecurechanneltodistributekey 2020 4 14 CryptographyandNetworkSecurity 2 18 59 传统密码体制的模型 Y Ek X X Dk Y 2020 4 14 CryptographyandNetworkSecurity 2 19 59 密码编码学 Cryptography 密码编码系统根据以下三个独立方面进行分类用于将明文转换为密文的操作类型 代换和置换所使用的密钥的数量 对称密码体制 单钥系统 秘密密钥系统非对称密码体制 双钥系统 公开密钥系统明文的处理方式 分组加密和流加密密码分析学 Cryptanalysis 密码分析 试图破译密文得到明文或试图获得密钥的过程为密码分析 密码破译的策略取决于加密方法及可供破译者使用的信息 穷举攻击 对密文尝试所有可能的密钥 直到把它转化为可读的有意义的明文 至少要尝试1 2可能的密钥 Cryptology密码学 2020 4 14 CryptographyandNetworkSecurity 2 20 59 2020 4 14 CryptographyandNetworkSecurity 2 21 59 对加密信息的攻击类型 惟密文攻击onlyknowalgorithm ciphertext isstatistical knoworcanidentifyplaintext已知明文攻击know suspectplaintext ciphertext选择明文攻击selectplaintextandobtainciphertext选择密文攻击selectciphertextandobtainplaintext选择文本攻击selectplaintextorciphertexttoen decrypt 2020 4 14 CryptographyandNetworkSecurity 2 22 59 穷举攻击 总是可以简单地尝试每一个可能的密钥穷举攻击是最基本的攻击 难度与密钥长度成正比平均来说要获得成功必须尝试所有可能密钥的一半 2020 4 14 CryptographyandNetworkSecurity 2 23 59 2 2代换技术 Substitution 代换法是将明文字母替换成其他字母 数字或符号的方法如果把明文看成是二进制序列的话 代换就是用密文位串来代换明文位串改变明文内容的表示形式 保持内容元素之间相对位置不变已知最早的代换密码是由JuliusCaesar发明的恺撒密码CaesarCipher 对字母表中的每个字母用它之后的第3个字母来代换 例如 meetmeafterthetogapartyPHHWPHDIWHUWKHWRJDSDUWB 2020 4 14 CryptographyandNetworkSecurity 2 24 59 2 2 1CaesarCipher Caesar实际上是一种单表代换密码明文字母用密文中对应字母代替 例 明文字母表P p0 p1 pn 1 密文字母表C c0 c1 cn 1 密钥为正整数k 加密 i k j modn 解密 j k i modn CaesarCipher 加密 C E p p k mod26解密 p D C C k mod26 0 A 1 B 25 Z 2020 4 14 CryptographyandNetworkSecurity 2 25 59 CaesarCipher 定义如下变换abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABC让每个字母等价于一个数值abcdefghijklm0123456789101112nopqrstuvwxyZ13141516171819202122232425Caesar密码可以表示如下C E p p k mod 26 p D C C k mod 26 这里k 3 2020 4 14 CryptographyandNetworkSecurity 2 26 59 对Caesar密码的攻击 如果已知某给定密文是Caesar密码 穷举攻击是很容易实现的 因为只要简单地测试所有25种可能的密钥Caesar密码的三个重要特征使我们可以采用穷举攻击分析方法已知加密和解密算法需测试的密钥只有25个明文所用的语言是已知的 且其意义易于识别比如 破解密文 GCUAVQDTGCM 2020 4 14 CryptographyandNetworkSecurity 2 27 59 2020 4 14 CryptographyandNetworkSecurity 2 28 59 对Caesar密码的攻击 如果明文所用语言不为我们所知 则明文输出不可识别 而且输入可能按某种方式经过缩写或压缩 则识别就更加困难例如 2020 4 14 CryptographyandNetworkSecurity 2 29 59 2 2 2MonoalphabeticCipher单表代换 不只是25种可能的密钥 而是允许任意代换 增加密钥空间每个明文字母可以随机映射到任意一个密文字母 密文行是26个字母的任意置换 那么有26 或大于4x1026种可能的密钥这样密钥有26个字母长Plain abcdefghijklmnopqrstuvwxyzCipher DKVQFIBJWPESCXHTMYAUOLRGZNPlaintext ifwewishtoreplacelettersCiphertext WIRFRWAJUHYFTSDVFSFUUFYA 2020 4 14 CryptographyandNetworkSecurity 2 30 59 单表代换密码的安全性分析 单表代换密码每条消息用一个字母表加密这样有26 4x1026种可能的密钥 超过400 000 000 000 000 000 000 000 0004x1026 400万亿亿这比DES的密钥空间大10个数量级 看起来是安全的 应该可以抵御穷举攻击 其实不然这是因为语言的一些规律和特性 2020 4 14 CryptographyandNetworkSecurity 2 31 59 语言的冗余性和密码攻击 人类的语言是有冗余性的比如 thlrdsmshphrdshllntwnt 可以大概猜出些什么字母使用的频率是不一样的英文字母e是使用最频繁的 然后是T R N I O A S等有些字母使用得很少 如Z J K Q X这样可以得到英文字母使用频率分布表同时 统计双字母组合和三字母组合的使用频率也是非常有用的 2020 4 14 CryptographyandNetworkSecurity 2 32 59 英文字母的相对使用频率 2020 4 14 CryptographyandNetworkSecurity 2 33 59 英文字母使用频率用于密码分析 关键的一点 单表代换不能改变相关字母出现的频率这是由阿拉伯科学家在公元九世纪就分析发现了所以 只要统计密文中字母出现的频率 与已知的统计值做比较就可以分析出相应明文字母了如果Caesar密码中字母呈现出通常的峰值和低槽peaksat A E Itriple NOpair RSTtripletroughsat JK X Z那么单表代换也会呈现相同的特性tablesofcommondouble triplelettershelp 2020 4 14 CryptographyandNetworkSecurity 2 34 59 单表代换密码攻击举例 给定密文 UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ统计相关字母出现的次数 seetextbook 可以猜测P和Z是e和t可以猜测ZW是th 这样ZWP就是the这样反复试验并不断修正错误 最后可得 itwasdisclosedyesterdaythatseveralinformalbutdirectcontactshavebeenmadewithpoliticalrepresentativesofthevietconginmoscow 2020 4 14 CryptographyandNetworkSecurity 2 35 59 2 2 3Playfair密码 单表代换尽管有大量的密钥 也不能提供足够的安全性 因为密文中残留了大量的明文结构 一种解决办法是引进多表代换密码 Playfair密码是最著名的多表代换密码 它把明文中的双字母音节作为一个单元转换成密文的 双字母音节 PlayfairCipher是由英国科学家CharlesWheatstone在1854年发明的 用了他的朋友BaronPlayfair的名字命名 Playfair算法基于一个由密钥词构成的5x5字母矩阵 2020 4 14 CryptographyandNetworkSecurity 2 36 59 Playfair密码的密钥矩阵 假定使用的密钥词是MONARCHY先在5x5矩阵中填上密钥词 去掉重复字母再将剩余的字母按字母表的顺序从左至右 从上至下填在矩阵剩下的格子中 I和J当作一个字母 2020 4 14 CryptographyandNetworkSecurity 2 37 59 Playfair密码的加密 对明文按如下规则一次加密两个字母如果该字母对的两个字母是相同的 则在其中插入一个填充字母 如 x balloon 加密成 balxloon 落在同一行的明文字母对中的字母由其右边的字母来代换 每行中最右的字母用该行最左边的第一个字母来代换 如 ar 加密成 RM 落在同一列的明文字母对中的字母由其下面的字母来代换 每列中最下面的一个字母用该列最上面的第一个字母来代换 如 mu 加密成 CM 其他的每组明文字母对中的字母按如下方式代换 该字母所在行为密文所在行 另一字母所在列为密文所在列 如 hs 变换成 BP ea 代换为 IM 或 JM asdesired 2020 4 14 CryptographyandNetworkSecurity 2 38 59 Playfair密码的安全性 安全性比单表代换大为提高因为有26个字母 因此有26x26 676字母对 对单个字母对进行判断要困难得多 单个字母的相对频率比字母对的相对频率在统计规律上要好 利用频率分析字母对就更困难些 需要676输入的频率表来进行分析 被广泛地使用了许多年 包括在一战和二战时期因为它的密文仍然完好地保留了明文语言的大部分结构特征 它仍然是相对容易攻破的 几百个字母的密文就足够分析出规律了 2020 4 14 CryptographyandNetworkSecurity 2 39 59 字母出现的相对频率 2020 4 14 CryptographyandNetworkSecurity 2 40 59 2 2 5PolyalphabeticCiphers多表代换密码 改进简单的单表代换的方法是在明文消息中采用不同的单表代换polyalphabeticsubstitutionciphers因为需要猜测更多的字母表 并且频率分布特性也变得平坦了 所以使得密码破译更加困难使用一密钥词对每个明文字母选择一个字母表来加密依次使用每个字母表如果到了密钥词最后一个字母 则从头开始继续 2020 4 14 CryptographyandNetworkSecurity 2 41 59 Vigen re密码 最简单的多表代换密码是Vigen re密码 它其实是多重Caesar密码26个密码水平放置 最左边是密钥字母 顶部排列的是明文的标准字母表加密一条消息需要与消息一样长的密钥 密钥是密钥词的重复 比如 密钥词为K k1k2 kd第i字母表明使用第i个字母表轮流使用字母表 如果到了消息的第d个字母时则从头再做解密同样简单 密钥字母决定行 行里密文字母所在列的顶部字母就是明文字母 2020 4 14 CryptographyandNetworkSecurity 2 42 59 2020 4 14 CryptographyandNetworkSecurity 2 43 59 Example WritetheplaintextoutWritethekeywordrepeatedaboveitUseeachkeyletterasaCaesarcipherkeyEncryptthecorrespondingplaintextlettere g usingkeyworddeceptivekey deceptivedeceptivedeceptiveplaintext wearediscoveredsaveyourselfciphertext ZICVTWQNGRZGVTWAVZHCQYGLMGJ 2020 4 14 CryptographyandNetworkSecurity 2 44 59 Vigen re密码的安全性 对每一个明文字母可以有多个密文字母对应这样字母使用的频率特性减弱了 但是没有完全消失攻击者首先要分析密文是否是用单表代换加密的 即通过简单的测试密文的统计特性如果认为是用Vigen re密码加密的 破译能否取得进展将取决于能否判定密钥词的长度 要通过发现重复序列来判断如果密钥词长度是N 那么密码实际上包含了N个单表代换密钥词的周期性可以用与明文信息一样长的不重复密钥词来消除 如 密钥自动生成系统 但是密文和明文具有相同频率分布特性 仍然是易受攻击的最终措施是选择与明文毫无统计关系且和它一样长的密钥 2020 4 14 CryptographyandNetworkSecurity 2 45 59 KasiskiMethodtobreakVigen re MethoddevelopedbyBabbage KasiskiRepetitionsinciphertextgivecluestoperiodSofindsameplaintextanexactperiodapartwhichresultsinthesameciphertextOfcourse couldalsoberandomflukeE g repeated VTW inpreviousexamplesuggestssizeof3or9Thenattackeachmonoalphabeticcipherindividuallyusingsametechniquesasbefore 2020 4 14 CryptographyandNetworkSecurity 2 46 59 AutokeyCipher IdeallywantakeyaslongasthemessageVigen reproposedtheautokeycipherwithkeywordisprefixedtomessageaskeyKnowingkeywordcanrecoverthefirstfewlettersUsetheseinturnontherestofthemessageButstillhavefrequencycharacteristicstoattackE g givenkeydeceptivekey deceptivewearediscoveredsavplaintext wearediscoveredsaveyourselfciphertext ZICVTWQNGKZEIIGASXSTSLVVWLA 2020 4 14 CryptographyandNetworkSecurity 2 47 59 2 2 6一次一密One TimePad Mauborgne提出使用与消息一样长且无重复的随机密钥来加密消息 密钥只对一个消息加解密 之后弃之不用 每条新消息都需要与其等长的新密钥 这就是一次一密 它是不可攻破的运算基于二进制数据而非字母加密 ci pi ki pi是明文第i个二进制位 ki是密钥第i个二进制位 ci是密文第i个二进制位 是异或运算密文是通过对明文和密钥的逐位异或而成的 根据异或运算的性质 解密过程为pi ci ki 给出任何长度与密文一样的明文 都存在着一个密钥产生这个明文 如果用穷举法搜索所有可能的密钥 会得到大量可读 清楚的明文 但是无法确定哪个才是真正所需的 因而这种密码不可破一次一密的两个限制产生大规模随机密钥有实际困难密钥的分配和保护无法保证 2020 4 14 CryptographyandNetworkSecurity 2 48 59 2 3TranspositionCiphers置换技术 改变明文内容元素的相对位置 保持内容的表现形式不变 通常称为transposition或者permutation密码通过重新安排消息字母的位置来隐藏明文信息 而不是用其他字母来代换明文字母这种方法是很容易破译的 因为密文拥有与明文一样的字母频率统计特性 2020 4 14 CryptographyandNetworkSecurity 2 49 59 一维变换 矩阵转置二维变换 图形转置转子加密机 RotorMachine 置换技术 Transpositionorpermutation 2020 4 14 CryptographyandNetworkSecurity 2 50 59 栅栏技术RailFencecipher 按照对角线的顺序写出明文 按行的顺序读出作为密文如加密meetmeafterthetogaparty mematrhtgpryetefeteoaat可以得到密文MEMATRHTGPRYETEFETEOAAT 2020 4 14 CryptographyandNetworkSecurity 2 51 59 RowTranspositionCiphers 一个更复杂的方案是把消息一行一行地写成矩形块 然后按列读出 但是把列的次序打乱 列的次序就是算法的密钥 例如 Key 4312567Plaintext attackpostponeduntiltwoamxyzCiphertext TTNAAPTMTSUOAODWCOIXKNLYPETZ可以采用多步置换来得到相对较高的安全性 2020 4 14 CryptographyandNetworkSecurity 2 52 59 乘积密码P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论