1.66k likes | 1.77k Views
第二 章 密码学技术. 安全需求. 机密性 Confidentiality. 确保信息仅可被授权的用户访问. 维护数据的有效性及正确性,抵御恶意的或意外的更改. 可追究性 accountability. 完整性 Integrity. 确保一个主体能够对他的行为 / 结果负责. 维护资源 / 服务能够传递到有效用户. 真实性 authenticity. 可用性 Availability. 隐私性 privacy. 保证数据来源的真实性. 维护个人身份信息的机密性. 2014/11/15. 2. 2. 基本的安全路径. 你所声称的你是你;
E N D
安全需求 机密性 Confidentiality 确保信息仅可被授权的用户访问 维护数据的有效性及正确性,抵御恶意的或意外的更改 可追究性 accountability 完整性 Integrity 确保一个主体能够对他的行为/结果负责 维护资源/服务能够传递到有效用户 真实性 authenticity 可用性 Availability 隐私性 privacy 保证数据来源的真实性 维护个人身份信息的机密性 2014/11/15 2 2
基本的安全路径 你所声称的你是你; 你所声称的内容是真实的。 Identification 身份证明 Authentication 认证 你是谁? 你来自于什么地方? Authorization 授权 允许主体对其所请求资源所执行的访问。
身份证明 (Identification) • 是一个动作或一个过程,用于向系统表明一个实体的身份,这样系统就可以将其与所有其他的实体区分开来。 • 身份证明有两个作用:可追查性与访问控制。
认证 • 认证是一个过程,通过这个过程,一个实体向另一个实体证明其声称的属性。 • 认证一般分为三种 • 数据源认证 验证消息的某个声称属性,用它验证消息是否来源于所声称的消息源 • 实体认证 • 验证消息发送者的身份 • 认证的密钥建立(密钥交换、密钥协商) • 产生一条安全通道,用于后继的应用层安全通信会话
授权 • 授权是一个过程,对于一个给定的物理或逻辑资源,该过程需要判断哪种访问类型允许对资源进行访问。一旦用户的身份已经被授权了,那么他会允许访问一个指定的区域、系统或服务。 • 强制性授权: • 访问控制列表 • 细粒度加密
密码学因应用需求而产生,因应用需求而发展。密码学因应用需求而产生,因应用需求而发展。 Cryptography is originated and developed from the requirements of application.
2.1 安全中的密码问题 2.2 对称加密DES 2.3 公钥密码学 2.4 密钥管理
(1)密码是安全技术核心 以数据加密、用户认证为基础的开放型网络安全保障技术,可望成为网络安全问题的最终的、一体化解决方案。 • 利用加密技术来保护网络系统中包括用户数据在内的所有数据流,在不对网络环境作特殊要求的前提下,从根本上解决网络服务中的可用性和信息的完整性这两大要求。 • 不需要网络拓扑结构的支持,在数据传输中不对所经的网络的安全有要求,实现网络通信过程端到端的安全保障。 • 目前的防火墙系统都支持基于密码技术的私有虚拟网(virtual private network),可以说密码是任何安全技术所不可缺少的部分。
举例:保险柜 保护珍贵的物品或机要的信息通常可 以借助一个保险库,例如银行的金库。 保险柜中的每一件东西是以物理的方式进行保护的,只有授权者用钥匙或输入相应的组合密码才能打开库房的门。 安全要求较高的地方,保险柜的需要多把门锁并按“分权原则”进行管理,即由多人分别掌管不同的钥匙,当至少两个以上的授权人同时在场,才能打开保险库。
举例:纸币 纸币的安全问题,则完全属于不同的类型。此时,钞票安全的关键是真实性的鉴别,而不在于是否保密,因为钞票决不允许被任何形式的伪造和更改。 防伪:精制的版刻画面、水印、特制的金属丝线、隐藏在画面内的微写以及各种其它标记…, 可以通过观察和触摸来验证。安全性好的货币,其防伪检验措施应简洁而有效,用户能较容易掌握。
(2)安全机制的特点 • 传统的安全机制有两个特点: • 安全性基于不可更改的物理标记不论是保险库的钥匙还是纸币上的水印,它们基本上是保持不变的。正是标记的不可更改,才使检验系统真实性成为可能。 • 安全性有时依赖于众所周知的特征。为了保险库的安全,对钥匙和组合密码要求保密;但纸币上标识其真伪的各种记号应做到尽人皆知,这样才便于人们检验钞票的真伪。
(2)安全机制的特点 • 问题:系统的安全取决于物理标记的不可复制及人们对系统的熟悉程度和经验。 • 随着新技术的发展,专家所掌握的绝技很快成为大众技术,“不可复制”的东西会一再地被复制出来。 • 如果一个系统的安全基本上依赖于经验这类人为的因素,这样的安全是靠不住的,也是很危险的。 密码学所追求的安全,是一种客观的、可以 被证明的安全。也就是: • 安全性不仅仅建立在静止不变的物理特征上; • 安全判别不能只凭经验,还要能逻辑地证明 • 无限制的安全强度。
密码学的目标正是要设计这样的安全体系,它将提供可证明的各种强度的安全等级。密码学的目标正是要设计这样的安全体系,它将提供可证明的各种强度的安全等级。 • 数学相对于其它科学的优势在于它的逻辑体系,它的每一个推断和结论都来自严格的证明。现代密码学正是一门数学背景极强的学科,它自然带有数学的许多特征。 • 设想一种货币(譬如电子货币),如果其安全强度可以借助密码学的手段和数学方法证明,那样货币发行银行就无需因为科技发展而担惊受怕,因为货币的安全不是建立在今天的技术上,而是基于可以证明的、具有超前的安全强度。
密码学除了提供在原理上可证明(数学上可分 析)的安全性,还有“安全强度可加”等优点。 举例:身份认证的 入口控制 自动取款机ATM。使用ATM之前,首先要作的是检验用户的身份,即用户向ATM输入个人密码PIN,ATM经过与系统的联机查询来判断用户是否合法。这种安全体系实际是通过静态的PIN来鉴别身份,它的弱点是一但攻击者从线路上截获到PIN,就可以假冒用户的身份进行欺骗。 为了避免静态密码潜在的不安全因素,考虑一种改良的身份认证协议,它的基本特点是认证过程不传递任何秘密,而是代以交换具有随机特征的数据来实现问答,使攻击者无从下手。这就是所谓的挑战/应答式协议C&R(Challengen and Response)
优点:通过简单的协议和密码函数,可将系统的安全性提高一大步:即仅有卡而不知PIN仍无法通过检查。 缺点:系统同时也掌握用户的密钥k。鉴于这一点,可采用公钥算法或无任何信息泄漏的零知识证明(Zero-Knowledge)算法。
动态口令(挑战/应答) • 一个令牌每分钟产生一个不同的口令 • 服务器也同样产生这样的口令 • 通过对比,如果一样就通过认证 (3)客户端将随机数通过USB接口传送给ePass,产生口令 (1) 服务器收到请求 (1)客户端向服务器发送请求 (1)请求验证 (2) 随机数 (3)产生口令 客户端 服务器 (4) 验证结果 (2)服务器产生随机数 (4)服务器产生口令,验证S(口令) =C(口令) (2)收到服务器发来的随机数
密码学是信息安全的核心,围绕着密码理论和应用分为几个不同的层次,最底层是数学、逻辑等基础;然后是基本的密码算法,接下来是在此基础上具有普适性的密码协议,最上面是一些针对具体应用的协议。密码学是信息安全的核心,围绕着密码理论和应用分为几个不同的层次,最底层是数学、逻辑等基础;然后是基本的密码算法,接下来是在此基础上具有普适性的密码协议,最上面是一些针对具体应用的协议。 高级协议:电子选举、电子拍卖、门限签名,SSL 基础协议:数字签名、零知识证明、VSS、盲签名 基本密码学算法:对称加密、非对称加密、Hash 数学基础:数论、抽象代数、常用数学难题
(3)密码中的困难问题 • 什么是计算 • 计算模型 • 可计算问题 • 计算复杂度
随着计算机日益广泛而深刻的运用,计算这个原本专门的数学概念已经泛化到了人类的整个知识领域,并上升为一种极为普适的科学概念和哲学概念,成为人们认识事物、研究问题的一种新视角、新观念和新方法。随着计算机日益广泛而深刻的运用,计算这个原本专门的数学概念已经泛化到了人类的整个知识领域,并上升为一种极为普适的科学概念和哲学概念,成为人们认识事物、研究问题的一种新视角、新观念和新方法。 • 在大众的意识里,计算首先指的就是数的加减乘除,其次则为方程的求解、函数的微分积分等; • 懂的多一点的人知道,计算在本质上还包括定理的证明推导。可以说,“计算”是一个无人不知元人不晓的数学概念, • 事实上,直到1930年代,由于哥德尔K.Godel,1906-1978)、丘奇(A.Church,1903-1995)、图灵(A.M.TUI-ing,1912-1954)等数学家的工作,人们才弄清楚什么是计算的本质,以及什么是可计算的、什么是不可计算的等根本性问题。
所谓计算,就是从一个符号串f变换成另一个符号串g。所谓计算,就是从一个符号串f变换成另一个符号串g。 • 例如: • 从符号串2+3变换成5就是一个加法计算;如果符号串f是x2,而符号串g是2x,从f到g的计算就是微分。 • 定理证明也是如此,令f表示一组公理和推导规则,令g是一个定理,那么从f到g的一系列变换就是定理g的证明。 • 文字翻译也是计算,如f代表一个英文句子,而 g为含意相同的中文句子,那么从f到g就是把英文翻译成中文。 • 这些变换间有什么共同点?为什么把它们都叫做计算?因为它们都是从己知符号(串)开始,一步一步地改变符号(串),经过有限步骤,最后得到一个满足预先规定的符号(串)的变换过程。
计算主要有两大类: • 数值计算:包括实数和函数的加减乘除、幕运算、开方运算、方程的求解等。 • 符号推导:包括代数与各种函数的恒等式、不等式的证明,几何命题的证明等。 • 无论是数值计算还是符号推导,它们在本质上是等价的、一致的,即二者是密切关联的,可以相互转化,具有共同的计算本质。随着数学的不断发展,还可能出现新的计算类型。
计算的实质: • 为了回答究竟什么是计算、什么是可计算性等问题,人们采取的是建立计算模型的方法。 • 四种模型:一般递归函数、λ可计算函数、图灵机和波斯特(E.L.Post,1897-1954)系统。 • 在此基础上,最终形成了如今著名的丘奇-图灵论点:凡是可计算的函数都是一般递归函数(或是图灵机可计算函数等)。这就确立了计算与可计算性的数学含义。
Turing机 • 用机器来模拟人们用纸笔进行运算的过程: • 在纸上写上或擦除某个符号; • 把注意力从纸的一个位置移动到另一个位置; • • 在每个阶段,人要决定下一步的动作,依赖于 • (a) 此人当前所关注的纸上某个位置的符号 • (b) 此人当前思维的状态。 • • 图灵构造出一台假想的机器,由以下几个部分: • 一条无限长的纸带 • 一个读写头 • 一个状态寄存器 • 一套控制规则
可计算问题 • • 若某问题,若存在一个Turing机,对于相应的初始状态,Turing机经过有限步最终停机。称该问题是( Turing )可计算的。 • 对于可计算的问题,计算复杂性的定义: • 计算所需的步数或指令条数(这叫时间复杂度)。 • 计算所需的存储单元数量(这叫空间复杂度)。
(4) 密码学 密码的强度依赖于构造密码算法问题的计算复杂度。但计算上困难的问题不一定就意味着密码算法的强度是足够安全的(复杂度和安全的不平衡) 密码算法需要的是在不知道密钥的情况下解密是困难的问题,但是在知道密钥的情况下,解密应该是容易的。(依赖陷门信息的困难)
密码学发展: 大体分三个阶段 • 历史时期的古典密码学加密手段 • 恺撒密码 • 二战尤其是计算机出现以来的现代阶段 - Shannon • 公钥体系阶段 • Diffie/Hellman、RSA
密码学发展 • 在密码学的发展中,有一条原则就是秘而不宣。虽然历史上早就有密码学应用的痕迹,但是是一战刺激了其需求,而在二战中得到了充分发展和应用,并极大的影响了战争进程。 • 1949年,Shannon关于保密系统通信理论的发表,奠定了密码学在公开领域研究的基础。然后是广泛商业应用的DES标准。 • 1975年,Hellman和Diffie提出了公钥算法,这是现代密码学的里程碑。随后响应这一号召而提出的RSA算法,至今仍是当今网络安全的基石。 • 此后,随着互联网络的发展,开创了密码学应用的新领域。
加密与解密 Alice加密 E(P, K)= C Bob解密 D(C,K) = P (1)函数公开,且一般D=E (2)K只有A、B知道 (3)P明文 , C为密文
安全的问题 • One-time Pad(一次一密) 1、D = E = XOR 2、K是真随机的,且和P等长 这个算法也是理论上安全的唯一的算法 • 理论安全性 • 只有当密钥和明文一样长时才能完全保密 即one time pad • 计算安全性 • 理论上并不完美,但在实践中难以攻破
密码学中两个加密方法(申农) • Confusion 混乱(替代) 所谓混乱,是指在加密变换过程中是明文、密钥以及密文之间的关系尽可能地复杂化,以防密码破译者采用统计分析法进行破译攻击。混乱可以用“搅拌机”来形象地解释,将一组明文和一组密文输入到算法中,经过充分混合,最后变成密文。同时要求,执行这种“混乱”作业的每一步都必须是可逆的,即明文混乱以后能得到密文,反之,密文经过逆向的混乱操作以后能恢复出明文。 • Substitution 替代密码 以掩盖明文和密文的关系
密码学中两个加密方法(申农) • Diffusion 扩散 所谓扩散,是指要将算法设计得使每一比特明文的变化尽可能多地影响到输出密文序列的变化,以便隐蔽明文的统计特性;扩散的另一层意思是将每一位密钥的影响也尽可能迅速地扩展到较多的输出密文比特中去。即扩散的目的是希望密文中的任一比特都要尽可能与明文、密文相关联,或者说,明文和密钥中任何一比特值得改变,都会在某种程度上影响到密文值的变化,以防止统计分析攻击。 无扩散技术的加密 p1:00000000 c1:00000010 p2:00000001 c2:00000011 有扩散技术的加密 p1:00000000 c1:01011010 p2:00000001 c2:11101011
如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方…,然后告诉你去看这封信。这并不是安全,而是隐藏。相反,如果把一封信锁在保险柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置。而你还是无法打开保险柜去读这封信,这样才是安全的。如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方…,然后告诉你去看这封信。这并不是安全,而是隐藏。相反,如果把一封信锁在保险柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置。而你还是无法打开保险柜去读这封信,这样才是安全的。
(5)基本概念和术语 • 常规加密简化模型
(5)基本概念和术语 • Shannon 保密通信模型
基本概念 •密码学 -研究加密技术的原理/方法(如何创建的秘密代码) •密码分析/密码破译-研究如何破译密文的原则/解密的方法。-目的:评估此加密系统是脆弱 •Kerkhoffs‘的原则-密码分析,假设敌手知道:加密/解密算法,但不知道密钥KEY。
密码分析的攻击类型 破译是试图恢复明文或找出密钥的尝试 • 唯密文攻击 • 攻击者只有一些密文(目的:找明文,可能找密钥) • 已知明文攻击 • 知道一些过去的(明文及其密文所用过的密钥)作参考和启发 • 选择明文攻击 • 特定明文进行加密,可得到密文(明密文的加密密钥) • 选择密文攻击 • 有一台解密机(能使用解密密钥)
两个用户A,B, 攻击者C • [假设D(x1x2)=D(x1)D(x2)] DB(EB(r)EB(x)) DB(EB(r)EB(x)) rx rx C 随机选择 r EB(r)EB(x) EB(r)EB(x) C 随机选择r 41
密码体制 五元组(P,C,K,E,D) • 明文空间P 可能的明文的有限集 • 密文空间C 可能的密文的有限集 • 密钥空间K 可能的密钥的有限集 • 对k∈K,决定一个加密规则ek∈E:P→ C 和解密规则dk∈D:C→ P,满足对明文x∈P dk(ek(x))=x
一个密码系统的特点是: • 使用的加密类型 -替代/置换 • 密钥的使用 -单密钥(或对称)/双密钥(或公钥) • 对明文的处理方式 -块(分组)/流
基本原则 • 算法公开 假设使用的算法和体制是公开的 标准化:商用领域的互通性 商用密码体制的安全依赖于密钥,而非算法 • 密钥的随机性 • 生成 • 字典攻击 dictionary attack 没有规律,不好猜 • 蛮力攻击 brute force attack 密钥空间要大 • 存储、传输、使用 • 软件、硬件
密码算法分类:按照密钥的特点分类 • 对称密码算法(symmetric cipher):又称传统密码算法(conventional cipher),就是加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。又称秘密密钥算法或单密钥算法。 • 非对称密钥算法(asymmetric cipher):加密密钥和解密密钥不相同,从一个很难推出另一个。又称公开密钥算法(public-key cipher)。公开密钥算法用一个密钥进行加密, 而用另一个进行解密.其中的加密密钥可以公开,又称公开密钥(publickey),简称公钥.解密密钥必须保密,又称私人密钥(private key)私钥.简称私钥。
密钥 密钥 单密钥加密技术 生成与分发密钥 原文 ABCD 原文 ABCD 原文 ABCD 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 互连网络 原文 ABCD 原文 ABCD 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 一个箱子一把锁,箱子运输锁上锁,关锁与开锁用 一把钥匙,交换钥匙是关键,如何让钥匙不被窃取?
私钥(r,p,q) 公钥(m,n=pq) 公钥(m,n=pq) 双钥匙加密技术 原文 ABCD 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 原文 ABCD 原文 ABCD 互连网络 原文 ABCD 原文 ABCD 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 乱文 ;~@‘ 密文 %#%¥ 密文 %#%¥ 乱文 ;~@‘ 乱文 ;~@‘ 密文 %#%¥ 乱文 ;~@‘ 密文 %#%¥ 密文 %#%¥ 密文 %#%¥ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 乱文 ;~@‘ 一个箱子一把锁,两把钥匙对付锁,一把关锁一把 开锁,关锁的不能开锁,开锁的不能关锁,接收者提供 钥匙,把关锁钥匙交给对方,开锁钥匙留给自己。
密码算法分类:按照明文的处理方法 • 分组密码(block cipher):将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。 • 流密码(stream cipher):又称序列密码.序列密码每次加密一位或一字节的明文,也可以称为流密码。 序列密码是手工和机械密码时代的主流
安全性分类 • 理论安全性 • one-time pad [P =? NP] • P ⊆ NP ⊆ PSPACE ⊆ EXPTIME ⊆ EXPSPACE • 实际安全性 • 计算安全性 成本大于解密所得利益(机时和耗电) 周期长于所需保密时间 • 可证明安全性 RSA算法的安全性等价于大数分解 ?
密码体制评价 • 无条件安全(Unconditionally secure) • 无论破译者有多少密文,他也无法解出对应的明文,即使他解出了,他也无法验证结果的正确性. 如:Onetime pad • 可证明安全性(provable security) • 如果能证明挫败一个密码学方法跟某个著名的困难问题(如整数素因子分解、计算机离散对数)的困难程度相同,则称这个密码学方法是可证明安全的; • 计算上安全(Computationally secure) • 破译的代价超出信息本身的价值 • 破译的时间超出了信息的有效期.