预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共147页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

公钥密码体制及典型算法-RSA在公钥密码体制以前的整个密码学史中,所有的密码算法,包括原始手工计算的、由机械设备实现的以及由计算机实现的,都是基于代换和置换这两个基本工具。 而公钥密码体制则为密码学的发展提供了新的理论和技术基础,一方面公钥密码算法的基本工具不再是代换和置换,而是数学函数;另一方面公钥密码算法是以非对称的形式使用两个密钥,两个密钥的使用对保密性、密钥分配、认证等都有着深刻的意义。可以说公钥密码体制的出现在密码学史上是一个最大的而且是惟一真正的革命。公钥密码体制的概念是在解决单钥密码体制中最难解决的两个问题时提出的,这两个问题是密钥分配和数字签字。 单钥密码体制在进行密钥分配时,要求通信双方或者已经有一个共享的密钥,或者可籍助于一个密钥分配中心。对第一个要求,常常可用人工方式传送双方最初共享的密钥,这种方法成本很高,而且还完全依赖信使的可靠性。第二个要求则完全依赖于密钥分配中心的可靠性。 第二个问题数字签字考虑的是如何为数字化的消息或文件提供一种类似于为书面文件手书签字的方法。 1976年W.Diffie和M.Hellman对解决上述两个问题有了突破,从而提出了公钥密码体制。对称密码体制的缺陷别名: 公钥密码体制,双钥密码体制 两个密钥: 公开密钥(公钥):可以被任何人知道,用于加密或验证签名 秘密密钥(私钥):只能被消息的接收者或签名者知道,用于解密或签名。 加密或验证签名者不能解密或生成签名(已知密码算法和加密密钥,求解密密钥在计算上是不可行的)。 安全性基础: 基于数学难题 标志性文献 W.DiffieandM.E.Hellman,NewDirectionsinCryptography,IEEETransactiononInformationTheory,V.IT-22.No.6,Nov1976,PP.644-654由私钥及其他密码信息容易计算出公开密钥(apolynomialtime(P-time)problem) 由公钥及算法描述,计算私钥是难的(anNP-timeproblem) 因此,公钥可以发布给其他人(wishingtocommunicatesecurelywithitsowner) 密钥分配问题不是一个容易的问题(thekeydistributionproblem) 公钥算法分类大家应该也有点累了,稍作休息(2)数字签名:将私钥作为加密密钥,公钥作为解密密钥,可实现由一个用户对数据加密而使多个用户解读。 (3)密钥交换:通信双方交换会话密钥,以 加密通信双方后续连接所传输的信息。 每次逻辑连接使用一把新的会话密钥, 用完就丢弃。 公开密钥算法的特点:公开密钥算法的特点:公钥密码算法的最大特点是采用两个相关密钥将加密和解密能力分开,其中一个密钥是公开的,称为公开密钥,简称公开钥,用于加密;另一个密钥是为用户专用,因而是保密的,称为秘密密钥,简称秘密钥,用于解密。因此公钥密码体制也称为双钥密码体制。算法有以下重要特性:已知密码算法和加密密钥,求解密密钥在计算上是不可行的。 图公钥体制加密的框图加密过程有以下几步: ①要求接收消息的端系统,产生一对用来加密和解密的密钥,如图中的接收者B,产生一对密钥PKB,SKB,其中PKB是公开钥,SKB是秘密钥。 ②端系统B将加密密钥(如图中的PKB)予以公开。另一密钥则被保密(图中的SKB)。③A要想向B发送消息m,则使用B的公开钥加密m,表示为c=EPKB[m],其中c是密文,E是加密算法。 ④B收到密文c后,用自己的秘密钥SKB解密,表示为m=DSKB[c],其中D是解密算法。公钥密码体制认证框图因为只有B知道SKB,所以其他人都无法对c解密。 公钥加密算法不仅能用于加、解密,还能用于对发方A发送的消息m提供认证,如下图所示。用户A用自己的秘密钥SKA对m加密,表示为c=ESKA[m] 将c发往B。B用A的公开钥PKA对c解密,表示为m=DPKA[c]因为从m得到c是经过A的秘密钥SKA加密,只有A才能做到。因此c可当做A对m的数字签字。 另一方面,任何人只要得不到A的秘密钥SKA就不能篡改m,所以以上过程获得了对消息来源和消息完整性的认证。在实际应用中,特别是用户数目很多时,以上认证方法需要很大的存储空间,因为每个文件都必须以明文形式存储以方便实际使用,同时还必须存储每个文件被加密后的密文形式即数字签字,以便在有争议时用来认证文件的来源和内容。改进的方法是减小文件的数字签字的大小,即先将文件经过一个函数压缩成长度较小的比特串,得到的比特串称为认证符。 认证符具有这样一个性质:如果保持认证符的值不变而修改文件这在计算上是不可行的。用发送者的秘密钥对认证符加密,加密后的结果为原文件的数字签字。以上认证过程中,由于消息是由用户自己的秘密钥加