- 1、本文档共161页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
余艳玮_现代密码学与应用05_公钥密码
2008-10-5 111 现代密码学与应用 ——公钥密码 上节内容回顾——分组密码的设计原则 分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。 假设明文M的分组长度为n bits 则总共有(2n)!种置换子集。 上节内容回顾——分组密码 加密算法必须包括在明文和密钥控制下的替换和置换操作 采用迭代方式来增强安全性 参考书籍 《Handbook of Applied Cryptography》: Chapter 8 《Applied Cryptography: Protocols, algorithms, and source code in C》:Chapter 19 《经典密码学与现代密码学》:第8章 公钥密码 公钥密码体制的基本概念 RSA算法 Elgamal算法 椭圆曲线密码系统 一、公钥密码体制的基本概念 Basic Concept of Public Key Cryptography 为什么需要公钥密码体制? 密钥管理的方便 数字签名的需要 对称密码的保密通信 对称密码中的问题 若N个人相互保密通信,每人必须拥有(N-1)个私钥。N很大时,每个人需要保存的私钥很多。 如何解决? 可信中心分发:共需要发N*(N-1)/2个私钥 N =1000时, 999 *1000/2 = 499500 双方事先约定:用户之间自己秘密会面 (第一次远距离通信如何办?) 基本概念 1976年,Standford Uni. Diffie博士和其导师Hellman 在IEEE Trans. on IT 上发文“New Direction in Cryptography” 这一体制的出现在密码学史上是划时代的事件,它为解决计算机信息网中的安全提供了新的理论和技术基础。被公认为现代密码学诞生的标志。 基本思想 将密钥K一分为二,一个专门加密,一个专门解密:Ke≠Kd 由Ke不能计算出Kd,因此可将Ke公开,使密钥分配简单 由于Ke≠Kd,且由Ke不能计算出Kd,因此可将Kd作为用户指纹,以方便实现数字签名 公钥密码系统的数学描述 公钥密码系统的数学描述:满足如下条件的五元组(M, C, K, E , D) (1)M是可能消息的集合; (2)C是可能密文的集合; (3)K是可能密钥的有限集 (4)对每一个k=(PK, SK)?K, 有E PK ? E, D SK ? D, 满足对所有m ? M, DSK (EPK(m)) = m (5)对所有k, E PK ? D SK 是计算上不可能的。 公钥密码体制的模型 公钥密码体制的模型由以下算法组成 密钥生成KG( ): 根据输入的安全参数,输出公钥和私钥对(PK, SK) 加密E( ): 根据输入的公钥和消息,输出密文。 解密D( ): 根据输入的解密私钥和密文,输出消息或输出表示密文不合法的特殊符号“ ?” 公钥密码算法应满足的要求 秘密性:D(E(M))=M (保密条件) 实用性:(高效) 接收方B产生密钥对在计算上是容易的 发方A用B公钥对消息M加密成C在计算上是容易的 收方B用自己的私钥对C解密成M在计算上是容易的 安全条件 敌人由B的公钥求B的私钥计算上不可行 敌人由B的公钥和C求明文M,计算上不可行 保真条件 E(D(M))=M 注: 若满足①②③,则可保密; 若满足②③④,则可保真; 若4个条件都满足,则可同时保密保真 公钥密码系统的安全性 公钥密钥保密、认证系统的的安全性主要取决于构造双钥算法所依赖的数学难题 要求加密函数具有单向性,即求逆的困难性。因此,设计双钥体制的关键是先要寻求一个合适的陷门单向函数。 单向函数 单向函数:一个可逆函数f:A?B,若它满足: 对所有x?A,易于计算f(x) 对“几乎所有x?A”由f(x)求x“极为困难”,以至于实际上不可能做到 定义中的“易于计算”是指函数值能在其输入长度的多项式时间内求出,即若输入长度为n,计算函数的时间是na的倍数,a为一固定的常数。 若计算函数时间是an的倍数,则为不可能做到的。 陷门单向函数 陷门单向函数:单向函数是求逆困难的函数,而单向陷门函数,是在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆是易于实现的。这是Diffie和Hellmam[1976]引入的概念。 例:号码锁。 如何给陷门单向函数下定义则很棘手,因为 (1) 陷门函数其实就不是单向函数,因为单向函数是在任何条件下求逆都是困难的; (2) 陷门可能不止一个,通过试验,一个个陷门就可容易地找到逆。如果陷门信息的保密性不
文档评论(0)