第四章公钥密码学技术_第1页
第四章公钥密码学技术_第2页
第四章公钥密码学技术_第3页
第四章公钥密码学技术_第4页
第四章公钥密码学技术_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章公钥密码学技术第4章公钥密码学技术第四章公钥密码学技术公开密码学概述RSA算法Diffie-Hellman密钥交换算法公开密钥基础设施PKI密钥管理第四章公钥密码学技术公钥密码学是1976年由Diffie和Hellman在其“密码学新方向”一文中提出。第四章公钥密码学技术

公开密钥密码系统的原理公开密钥算法要求每个参与方拥有用一对密钥,一个公开,另一个保密。用一个密钥进行加密,而用另一个不同但是有关的密钥进行解密。这些算法有以下重要特性:仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的。两个相关密钥中任何一个都可以用作加密而让另外一个用作解密。(某些算法,比如RSA,具有的特性)第四章公钥密码学技术非对称密钥加密算法的特点:非对称密钥加密算法算法基于数学函数而不是替代和置换。非对称密钥加密算法中的密钥是非对称的,它用到两个不同的密钥,这对于保密通信、密钥分配和鉴别等领域都有着深远的影响。非对称密钥加密算法成功地解决了计算机网络安全的身份鉴别、数字签名等问题,推动了包括电子商务在内的一大批网络应用的不断深入发展。使密钥管理变得容易了,用户可以容易地从对称密码系统中删除。加密和解密较对称密钥加密算法慢。第四章公钥密码学技术非对称密钥加密过程中的重要步骤如下:产生密钥

网络中的每个端系统都产生一对用于它将报文进行加密和解密的密钥。公开密钥

每个系统都通过把自己的加密密钥放进一个登记本或者文件来公布它。另一个密钥则是私有的(保密)。第四章公钥密码学技术加密

如果A想给B发送一个报文,他就用B的公开密钥加密这个报文。C=EKUB[p]解密

B收到这个报文后就用他的私有密钥(保密密钥)解密报文。其他所有收到这个报文的人都无法解密它,因为只有B才有B的私有密钥。P=DKRB[c]第四章公钥密码学技术非对称密钥加密算法用于加密:第四章公钥密码学技术非对称密钥加密算法用于鉴别:如果A想给B发送一个签名报文,他就用自己的私有(保密)密钥加密这个报文。B收到这个报文后就用A的公开密钥鉴别该报文。第四章公钥密码学技术常规加密和公开密钥加密的比较特征对称加密非对称密钥加密加密/解密使用的密钥加密/解密使用的密钥相同加密/解密使用的密钥不相同加密/解密的速度快慢得到的密文长度通常等于或小于明文长度大于明文长度密钥协定和密钥交换大问题没问题所需密钥数和消息参与者个数的关系大约为参与者个数的平方,因此伸缩性不好N(N-1)/2等于参与者个数,因此伸缩性好用法主要用于加密/解密(保密性),不能用于数字签名(完整性与不可抵赖性)可以用于加密/解密(保密性)和用于数字签名(完整性与不可抵赖性)第四章公钥密码学技术理想的加密机制解决方案安全完全加密/解密速度快生成的密文长度要小伸缩性好,不能引入更多复杂性要解决密钥发布问题第四章公钥密码学技术基于公钥算法的密钥交换公钥基本结构PKI定义基于公钥的密钥交换步骤如下:发件人获得收件人的公钥;发件人创建一个随机机密密钥(在对称密钥加密中使用的单个密钥);发件人使用机密密钥和对称密钥算法将明文数据转换为密文数据;发件人使用收件人的公钥将机密密钥转换为密文机密密钥;发件人将密文数据和密文机密密钥一起发给收件人;收件人使用其私钥将密文机密密钥转换为明文;收件人使用明文机密密钥将密文数据转换为明文数据。第四章公钥密码学技术公开密码学概述RSA算法Diffie-Hellman密钥交换算法公开密钥基础设施PKI密钥管理第四章公钥密码学技术RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的。RSA是公开密钥密码系统中最常用的是RSA算法(Rivest,Shamir,Adleman)。RSA是分组密码体制。RSA是基于整数分解难题的算法体制,即两个大素数很容易相乘,而对得到积因子则很难。RSA中的私钥和公钥基于大素数(100位以上),算法本省很简单,但实际难度在于RSA选择和生成私钥和公钥。第四章公钥密码学技术生成密钥①首先任意选取两个大素数p、q,使:n=pqn称为模则欧拉函数φ(n)为:φ(n)=(p-1)(q-1)②然后,任意选取一个与φ(n)互素的小整数e作为公开的加密指数。③由e求出秘密的解密指数d:de=k(φ(n))+1=1modφ(n)④公钥(n,e);私钥(n,d)

因子p、q与私钥一起保存或销毁。第四章公钥密码学技术RSA加密/解密算法RSA加密:将明文数字化并分组,使明文分组m满足:0≤m<n。对每块进行加密变换:c=EKU(m)=memodn解密过程:m=DKR(c)=cdmodnRSA体制下,加密算法和解密算法之间,有下面的关系成立:DKR(EKU(m))=(me)d=mmodn

EKU(DKR(m))=(md)e=mmodn第四章公钥密码学技术RSA算法实现的步骤如下:假设甲为实现者甲寻找两个大素数p和q(2)甲计算n=p·q和φ(n)=(p-1)(q-1)(3)甲选择一个随机数e(0<e<φ(n)),满足gcd(e,φ(n))=1(4)甲使用辗转相除法计算d=e-1modφ(n)第四章公钥密码学技术RSA算法举例:设p=7,q=17,n=7*17=119,因此参数T定义为T={n=119}。由此可以计算:φ(n)=(7-1)(17-1)=96,选择e=5,gcd(5,96)=1,在这里选择公钥Pk=5;计算d,d*e=1mod96;d=77,可以得到私钥Sk=77。如果明文m=19,根据计算的公钥Pk=5和私钥Sk=77,我们可以对明文进行加密和解密:加密:195mod119=66;66是被加密的密文;解密:6677mod119=19;19是被解密的明文。第四章公钥密码学技术RSA算法的安全性分析建议选择p和q大约是100位的十进制素数,模n的长度要求至少是512比特。为了抵抗现有的整数分解算法,对RSA模n的素因子p和q还有如下要求:|p-q|很大,通常p和q的长度相同;p-1和q-1分别含有大素因子;gcd(p-1,q-1)应该很小

为了提高加密速度,通常取e为特定的小整数.第四章公钥密码学技术1977年RSA的三个发明人在《科学美国人》杂志的数学游戏专栏留下了一个129位的十进制数(426bit)密钥,悬赏$100,估计破译时间为4亿亿年后。1994年Atkins等人动用网上的1600台计算机,耗时8个月,成功地破译了该密码。1999年一个国际密码研究小组在RSA公司举办的RSA密钥竞赛中荣获冠军。该小组用7个月时间,使用世界各地11个地点292台计算机,其中160台SGI和SUN工作站及120台PIIPC机,确定了生成单个512位RSA密钥所用的两个素数。512bit154位10进制数不够安全768bit231位10进制数个人应用1024bit308位10进制数商业应用2048bit616位10进制数重要场合第四章公钥密码学技术公开密码学概述RSA算法Diffie-Hellman密钥交换算法公开密钥基础设施PKI密钥管理第四章公钥密码学技术Diffie-Hellman密钥交换算法Diffie与Hellman在其开创公钥体制的文章中给出了公钥密码的思想。这篇论文中给出的算法常被称为Diffie-Hellman密钥交换算法,它是第一个公开发表的公开密钥密码算法。严格地说,它并不能完成信息的加/解密功能,只能用于网络环境中的密钥交换。目前许多商用产品都使用这种密钥交换技术。该算法的目的是使两个用户安全地交换一个密钥,以便于今后的报文加密,本算法仅限于密钥交换的用途。Diffie-Hellman算法的有效性依赖于计算离散对数的难度。第四章公钥密码学技术算法描述离散对数的概念原根:如果是素数p的一个原根,那么数值:

modp,2modp,…,p-1

modp

是各不相同的整数,且以某种排列方式组成了从1到p-1的所有整数。离散对数:如果对于一个整数b和素数p的一个原根,可以找到一个唯一的指数i,使得:

b=i

modp 其中0≤i≤p-1那么指数i称为b的以为基数的模p的离散对数。第四章公钥密码学技术Diffie-Hellman算法的有效性依赖于计算离散对数的难度,其含义是:当已知大素数p和它的一个原根后,对给定的b,要计算i,被认为是很困难的,而给定i计算b却相对容易。

Diffie-Hellman算法假如用户A和用户B希望交换一个密钥。取一个素数q和一个整数,是q的一个原根。用户A选择一个随机数XA<q,并计算YA=XAmodq。用户B选择一个随机数XB<q,并计算YB=XBmodq。每一方都将X保密而将Y公开让另一方得到。第四章公钥密码学技术用户A计算密钥的方式:KA=(YB)

XAmodqKA=(

XBmodq)

XAmodq=(

XB)XAmodq=

XBXAmodq=

XAXBmodq用户B计算密钥的方式:KB=(YA)

XBmodqKB=(

XAmodq)XBmodq=(

XA)XBmodq=

XAXBmodq可见:KA=KB

这样双方已经交换了一个密钥K。由于XA和XB是保密的,而第三方只有q、、YB、YA可以利用,只有通过取离散对数来确定密钥,但对于大的素数,计算离散对数是十分困难的。第四章公钥密码学技术例子假如用户A和用户B希望交换一个密钥。取一个素数q=97和97的一个原根=5。A和B分别选择秘密密钥XA=36和XB=58,并计算各自的公开密钥:

YA=XAmodq=536mod97=50

YB=XBmodq=558mod97=44他们交换了公开密钥之后,计算共享密钥如下:

A:K=(YB)XAmodq=4436mod97=75 B:K=(YA)XBmodq=5058mod97=75第四章公钥密码学技术公开密码学概述RSA算法Diffie-Hellman密钥交换算法公开密钥基础设施PKI密钥管理第四章公钥密码学技术PKI是一种遵循既定标准的基于公钥密码学(PublicKeyCryptography)理论、提供密钥产生和管理的安全基础平台设施。支持用户实现高效数据加密和密钥交换,为所有网络应用透明地提供加密和数字签名等密码服务,以及所必需的密钥和证书管理服务。PKI就是利用公钥理论和技术建立为Internet提供普适性安全服务。PKI技术是信息安全技术的核心也是电子商务技术的基础。第四章公钥密码学技术PKI的应用第四章公钥密码学技术一个完整的PKI系统应具有认证中心CA(CertificateAuthority)、证书注册机构RA(RegistrationAuthority)、数字证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用程序接口API(ApplicationProgrammingInterface)等基本构成部分。其中CA是PKI的核心。第四章公钥密码学技术认证中心CA:负责数字证书的申请和签发的机构。它必须具有权威性,是PKI的核心构成要素。证书注册机构RA(RegistrationAuthority):数字证书的注册审查机构,是用户和CA之间的一个中介。它负责证书申请人的资料录入、审核和发放。同时,对证书完成相应的管理功能。第四章公钥密码学技术数字证书库:用于存放和检索认证中心已经签发的数字证书和证书撤销列表。密钥备份及恢复系统:PKI提供的备份与恢复密钥的机制。证书作废系统:负责数字证书的撤销,通常将作废的证书存储于证书撤销列表CRL中。应用程序接口:提供PKI应用的统一标准接口,方便应用。第四章公钥密码学技术CA系统CA是负责签发证书、认证证书、管理已颁发证书的机关。典型的CA系统组成:安全服务器、CA服务器、注册机构RA、数据库服务器和LDAP服务器。第四章公钥密码学技术发布//返回撤消下载查询典型CA系统组成CA服务器CA数据库安全服务器

申 请 证 书

安全服务器

注册机构

RA申请/撤消 返回证书LDAP

返 回 结 果第四章公钥密码学技术数字证书数字证书是经CA签名认证的包含有用户信息及公钥的文件。最简单的证书应包含有一个公钥、证书名称和CA数字签名。X.509标准第四章公钥密码学技术X.509证书X.509证书是由可信的证书权威机构(CA)签发的一个关于实体及其公开密钥关联的数字声明。该证书具有权威性。X.509证书的核心是公开密钥、公开密钥持有者(主体)和CA的签名,证书完成了公开密钥与公开密钥持有者的权威性绑定。X.509目录服务可以为X.509证书提供存放机制,提供一个易于访问的位置以便用户获得证书。由CA产生的用户证书的特点是:任何拥有CA公开密钥的用户都可以对该CA签发的证书进行验证,从而获得一个可信的用户公开密钥。任何一方(除了证书权威机构CA)都不可能不被察觉地修改证书。第四章公钥密码学技术X.509证书的一般格式如图所示。

X.509证书格式

起始时间

结束时间

公钥算法

算法参数

签名算法

算法参数

签名算法标识

签名值

Tbs证书

版本一

版本二

版本三

证书序列号

签名算法标识

颁发者名字

主体公开密钥信息

颁发者惟一标识符

主体惟一标识符

签名算法

算法参数

签名值

主体公钥

第四章公钥密码学技术证书扩展包含一个或多个扩展字段的集合。扩展字段提供了将用户及其密钥与其附加属性关联起来的方法。这些附加属性可以:密钥用途、证书策略、主体别名、基本约束、名字约束和策略约束等等。X.509还允许机构定义自己专用的扩展。第四章公钥密码学技术X.509的基本信息证书版本号证书序列号签名算法标示符认证机构名称证书使用期限持证人信息认证机构数字签名第四章公钥密码学技术证书版本号:用来区分X.509的不同版本,并与X.509未来版本兼容。证书序列号:每一个证书的唯一标示号。签名算法标示符:CA所使用的签名算法,用来指定用CA签发证书时所使用的签名算法。认证机构名称:发放该数字证书的机构名称,即发出该证书的机构唯一的CA名。证书使用期限:证书使用的有效期限。持证人信息:包括持证人姓名、公钥值、公钥算法、持证人身份标示等信息。认证机构数字签名:以确保这个证书在发放之后没有被撰改过。第四章公钥密码学技术CA的主要功能包括:证书发放、证书撤消、证书更新、证书认证、证书查询以及证书存储。第四章公钥密码学技术(1)证书的发放:CA接受用户数字证书的申请信息,对申请用户信息进行审核备案,判断决定是否发放数字证书。如果决定发放证书,则进一步决定授予用户证书的类型再发放证书到专用数据库LDAP,供用户下载使用。第四章公钥密码学技术

证书发布流程用户提交申请

判断

是否合法?

是判定证书类型生成证书CA签名存储/发布

CA数据库/ LDAP数据 库否拒绝申请第四章公钥密码学技术(2)证书的更新:证书更新过程同发放过程类似。认证中心根据用户的请求或者证书期限的要求定期要更新发放的数字证书。(3)证书的撤销:当用户的数字证书使用期限到达、密钥存储介质的丢失、密钥泄密等情况下,需要CA撤销发放的数字证书。第四章公钥密码学技术证书吊销的常见原因:数字证书持有者的数字证书被盗;CA发现签发数字证书时出错;证书持有者辞职,而证书使其在职期间签发的。第四章公钥密码学技术证书吊销状态监查机制证书吊销检查脱机吊销状态检查联机吊销状态检查证书吊销列表(CRL)联机证书验证协议(OCSP)简单证书验证协议(OCSP)第四章公钥密码学技术(4)证书的认证:CA要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。(5)证书的查询:通常证书的查询指用户申请证书的查询和用户使用证书的查询两种。通过访问LDAP服务器实现证书的查询使用。(6)证书的存储:通常证书存储在数字证书的专用数据库中。第四章公钥密码学技术CA信任关系A信任关系中有三种类型的信任模型:(1)基于层次结构的信任模型(2)交叉认证(3)以用户为中心的信任模型第四章公钥密码学技术基于层次结构的信任模型(1)CA层次结构建立过程如下:根CA具有一个自签名的证书;根CA依次对它下面的CA进行签名;层次结构中叶子节点上的CA用于对安全个体进行签名;对于个体而言,它只需要信任根CA,中间的CA是透明的,可以不必关心;同时它的证书是由底层的CA签发;在CA的机构中,为了要维护这棵树,在每个节点CA上,需要保存两种证书:前向证书(ForwardCertificates)和反向证书(ReverseCertificates)。第四章公钥密码学技术CA层次结构的建立第四章公钥密码学技术CA证明链第四章公钥密码学技术(2)交叉认证:两个不同的CA层次结构之间可以使用单向交叉认证和双向交叉认证两种方式建立信任关系。单向交叉认证:一个CA可以承认另一个CA在一定名字空间范围内的所有被授权签发的证书。双向交叉认证:交叉认证可以分为域内交叉认证(同一个层次结构内部)和域间交叉认证(不同的层次结构之间)。交叉认证的约束:名字约束、路径长度约束、策略约束。第四章公钥密码学技术(3)以用户为中心的信任模型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论