编辑: 雨林姑娘 | 2013-05-07 |
1 现代密码学框架 2.1.1 什么是密码学 定义1 密码学是研究与信息安全各方面有关的(比如机密性、数据完整性、实体认证及数据源认证)数学技术的一门学科. 2.1.1 什么是密码学(续) 发送者Alice 密钥源 分析者Eve 接收者Bob 安全信道 公共信道 加密器Ek 解密器Dk 明文m 密文c 明文m 密钥k 密钥k 图2.1 Shannon保密系统 2.1.1 什么是密码学(续) 通信中的参与者 (1) 发送者(Alice): 在双方交互中合法的信息发送实体. (2) 接收者(Bob):在双方交互中合法的信息接收实体. (3) 分析者(Eve):破坏通信接收和发送双方正常安全通信的其他实体.可以采取被动攻击和主动攻击的手段. 信道 (1) 信道:从一个实体向另一个实体传递信息的通路. (2) 安全信道:分析者没有能力对其上的信息进行阅读、删除、修改、添加的信道. (3) 公共信道:分析者可以任意对其上的信息进行阅读、删除、修改、添加的信道. 2.1.2 对称与非对称密码思想 加密器EK1(m)=c 分析者Eve 解密器DK2(c)= m 明文消息源 目的地 m m c 公共信道 Alice Bob # 对称密码加密密钥与解密密钥同:K1=K2代表系统:DES和AES 2.1.2 对称与非对称密码思想(续) 若互联网上有n个用户,则需要 个密钥,若n=1000,则NK?500 000.# 如此众多的密钥如何建立,如何保存? 2.1.2 对称与非对称密码思想(续) 加密器EK1(m)=c 分析者Eve 解密器DK2(c)= m 明文消息源 目的地 m m c 公共信道 Alice Bob # 非对称密码加密密钥与解密密钥不同:K1?K2代表系统:RSA和ElGamal 2.1.3 密码学的演进及目前的状态 安全依赖于保密加密方法 安全依赖于保密密钥 安全依赖于保密部分密钥 古典密码 私钥密码 公钥密码 # 公钥密码体制以其强大的功能使得私钥密码体制显得已经过时,但是强大的功能不是无代价获得的,公钥密码的计算量远大于相同情况下的私钥密码.因此,不适合加密大量数据,只适合于完成少量数据加密,如传送私钥密码的密钥、签名等等. 2.1.4 现代密码学主要技术 Security Primitives Public-key Primitives Symmetric-key Primitives Unkeyed Primitives Arbitrary length hash functions Symmetric-key ciphers Random sequences One-way permutations Block ciphers Stream ciphers Arbitrary length hash functions (MACs) Signatures Pseudorandom sequences Identification primitives Public-key ciphers Signatures Identification primitives 图2.2 密码学本原分类 2.1.4 现代密码学主要技术(续) (1) 加密 加密基本术语 明文消息空间M: 某个字母表集 密文消息空间C: 可能的密文消息集 加/解密密钥空间K: 可能的加/解密密钥集 加/解密函数Ee?K (m?M) / Dd?K (c?C) : 一个 从M到C/C到M的有效变换 2.1.4 现代密码学主要技术(续) 加密方案 加密方案是由一个加密函数集{Ee: e?K}和解密函数集{Dd: d?K}构成,并且满足任意一个加密密钥e?K存在唯一一个解密密钥d?K使Dd=Ee-1,也就是对于所有明文消息m?M ,存在Dd(Ee(m))=m,(e, d)称为密钥对.设计加密方案就是确定M、 C、 K、{Ee: e?K}、{Dd:d?K}的过程. 定义2 一个加密方案可以被破译是指,第三方在没有事先得到密钥对(e, d)的情况下,可以在适当的时间里系统地从密文恢复出相对应的明文. # 适当的时间由被保护数据生命周期来确定. 2.1.4 现代密码学主要技术(续) 私钥加密 定义3 一个由加密函数集{Ee: e?K}和解密函数集{Dd: d?K}组成加密方案,每一个相关联的密钥对(e, d),如果知道了e在计算上很容易确定d,知道了d在计算上很容易确定e,那么,就是私钥加密方案. # 私钥加密需要一条安全信道来建立密钥对. 主要技术:分组密码与流密码 定义4(分组密码) 将明文消息在编码集按照固定长度t进行分组,再一组一组地加\解密明\密文消息. #著名的DES、AES都是这类密码. 2.1.4 现代密码学主要技术(续) 定义5 K 是加密变换集的密钥空间,序列e1e2…ei?K称为密钥流. 定义6 (流密码) 消息m以串的形式(m1m2…mi)给出,密钥e1e2…ei是K上的密钥流.流密码通过ci=Eei(mi)给出密文消息(c1c2…ci);