310 likes | 682 Views
第 2章密码学基础. 第1章. 主要内容:. 2.1 密码的含义 2.2 古典密码 2.3 密码发展史 2.4 密码编码学的分类. 主要目标:. 掌握密码学的基本概念 加密技术是网络安全的核心技术之一. 2.1 密码的含义. MXDXBVTZWVMXNSPBQXLIMSCCSGXSCJXBOVQXCJZMOJZCVC TVWJCZAAXZBCSSCJXBQCJZCOJZCNSPOXBXSBTVWJC JZDXGXXMOZQMSCSCJXBOVQXCJZMOJZCNSPJZHGXXMOSPLH
E N D
第2章密码学基础 第1章
主要内容: 2.1 密码的含义 2.2 古典密码 2.3 密码发展史 2.4 密码编码学的分类
主要目标: 掌握密码学的基本概念 加密技术是网络安全的核心技术之一
2.1 密码的含义 MXDXBVTZWVMXNSPBQXLIMSCCSGXSCJXBOVQXCJZMOJZCVC TVWJCZAAXZBCSSCJXBQCJZCOJZCNSPOXBXSBTVWJC JZDXGXXMOZQMSCSCJXBOVQXCJZMOJZCNSPJZHGXXMOSPLH JZDXZAAXZBXHCSCJXTCSGXSCJXBOVQX plaintext from Lewis Carroll, Alice in Wonderland 明文
2.1 密码的含义 为什么需要密码? 为了保证信息的私密性、完整性、真实性和不可否认性必须使用技术手段对其进行处理。 通过适当的加密管理机制可以保证网络通信的安全。
Crypto-密码 Cryptology The art and science of making and breaking “secret codes” 密码学:编制和破译“密码”的科学和技术 Cryptography making “secret codes” 密码编制学:研究“密码”的编制 Cryptanalysis breaking “secret codes” 密码分析学:研究“密码”的破译 Crypto all of the above (and more)
现代密码学 现代密码学: 密码编制学:研究“密码”的编制,即用各种学科的专业知识结合设计生成算法,将原始的数据转变为受该密码体制保护的状态呈现出来。 密码分析学:研究“密码”的破译,将受该密码体制保护状态的数据还原为最初的原始状态。 第7页
基本概念和术语 • 加密(encryption) • 将报文(或消息)进行编码,以模糊其含义的过程。 • encode(vt编码), encipher(vt译成密码) • 解密(decryption) • 将加密过的报文恢复为原始形式。 • decode(vt解码), decipher(vt译解)
基本概念和术语 明文(plaintext)和密文(ciphertext) 报文的原始方式为明文,加密后成为密文 密钥(key):实现加密和解密的参数信息。 第9页
加密技术的基本特性 机密性 保证信息在存储和传输过程中不被泄露给未经授权者 完整性 保证信息在存储和传输过程中不被篡改、替换、删减 可用性 保证授权者在存储和传输过程中正常使用信息 抗否认性 指保证信息发送方不能对自身的发送行为进行否认和抵赖。 第10页
数据加密常见方式 数据存储加密 数据传输加密 目的:防止数据在传输过程中被侦听、截获、篡改和丢弃。 分为:链路加密(OSI第二层) 节点加密(OSI第二层) 端到端加密(OSI第七层) 第11页
How to Speak Crypto A cipher or cryptosystem is used to encrypt the plaintext 一个密码或者密码系统被用来加密明文 The result of encryption is ciphertext 加密的结果称为密文 We decryptciphertext to recover plaintext 我们通过解密将密文恢复成明文
How to Speak Crypto A keyis used to configure a cryptosystem 在加密解密过程中要使用密钥 A symmetrickeycryptosystem uses the same key to encrypt as to decrypt 在对称密钥密码中,加密和解密过程使用相同的密钥 A publickeycryptosystem uses a public key to encrypt and a private key to decrypt 对于公钥密码,加密和解密过程中使用的密钥不相同,其中加密密钥被公开称公钥,解密密钥必须保密,称私钥。
密码的目标 • 对于任何一个密码系统,其目标都是: 只有掌握密钥的情况下才能将密文恢复成明文。 即:攻击者即使掌握了密码算法的全部细节和其他信息,仍然不能在没有密钥的情况下恢复明文。
Crypto as Black Box key key encrypt plaintext plaintext decrypt ciphertext A generic use of symmetric key crypto
E 加密 算法 D 解密 算法 明文M 明文M 密文 解密密钥 Kd 加密密钥 Ke 密码体系示意图 加密函数E作用于M得到密文C,用数学表示为: E(M)=C. 相反地,解密函数D作用于C产生M D(C)=M.
2.2 古典密码 • 介绍四种古典密码 • 简单代替密码 • 双重置换密码 • 一次一密 • 电子本密码
代换和置换思想 • 代换是古典密码中用到的最基本的处理技巧。所谓代换,就是将明文中的一个字母由其它字母、数字或符号替代的一种方法。 • 置换(permutation):将明文字符按照某种规律重新排列而形成密文的过程。
2.2.1 简单代替密码 • 简单代替密码的简单实现 就是将明文按照字母表中当前字母后移N位加密产生的。 通过查找明文行中的字母,并用密文行中对应的字母进行代替。 第19页
Simple Substitution Plaintext: fourscoreandsevenyearsago Key: Plaintext Ciphertext • Ciphertext: IRXUVFRUHDQGVHYHQBHDUVDJR • Shift by 3 is “Caesar’s cipher”
2.2.1 简单代替密码 • 简单代替密码的解密 通过查找密文行中的字母,并用明文行中对应的字母进行代替。 • 移动3位的简单代替密码,称为凯撒(Caesar)密码
凯撒密码 • 例:使用其后的第三个字母代换该字母 • 明文:meet me after the toga party • 密文:PHHW PH DIWHU WKH WRJD SDUWB 第22页
Ceasar’s Cipher Decryption Plaintext: spongebobsquarepants • Suppose we know a Ceasar’s cipher is being used: • Given ciphertext: • VSRQJHEREVTXDUHSDQWV Plaintext Ciphertext
2.2.1 简单代替密码 • 如果限定简单代替就是字母表 则所有可能的密钥k是0~25。 • 若攻击者截获密文CSYEVIXIVQMREXIH 则攻击者能够尝试所有26种可能的密钥,来解密密文,并判断所解密文是否具有意义。
数学描述 • 用数字表示每个字母: • a b c d e f g h i j k l m n o p q r s t u v w x y Z • 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 • c = E(p) = (p + k) mod (26) • p = D(c) = (c – k) mod (26) • 明文p ∈Z26,密文c ∈Z26,密钥k取[1,25],只有25个 第25页
Not-so-Simple Substitution Shift by n for some n{0,1,2,…,25} Then key is n Example: key n = 7 Plaintext Ciphertext
Cryptanalysis I: Try Them All A simple substitution (shift by n) is used But the key is unknown Given ciphertext: CSYEVIXIVQMREXIH How to find the key? Only 26 possible keys try them all! Exhaustive key search(穷举搜索) Solution: key is n = 4
蛮力破解 什么是蛮力破解? 通过尝试所有可能的密钥直至遇到正确的密钥,即穷举搜索密钥。 所以密钥数应该足够大,以使得攻击者在合理的时间范围内没有办法穷举。
蛮力破解 多大的密钥空间才足够? 假设攻击者拥有处理速度非常快的计算机,每秒钟能够尝试240个密钥,则密钥空间256将耗时216秒约18小时,而264个密钥的穷举将超过半年。
2.2.1 简单代替密码 • 简单代替密码不仅可以是移动n位, 任何一个26位字符的置换都可以作为密钥。 For example Plaintext Ciphertext • Then 26! > 288 possible keys! • 如果一个简单代替密码能够使用任何一个置换作为密钥,则有26!约等于288种可能密钥。
蛮力破解 26! 约等于288 种密钥? 假设攻击者拥有处理速度非常快的计算机,每秒钟能够尝试240个密钥,则穷举288的密钥空间将超过89亿年。