密码学与PKI公钥体系介绍(doc14页)优质版_第1页
密码学与PKI公钥体系介绍(doc14页)优质版_第2页
密码学与PKI公钥体系介绍(doc14页)优质版_第3页
密码学与PKI公钥体系介绍(doc14页)优质版_第4页
密码学与PKI公钥体系介绍(doc14页)优质版_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、密码学和 pki 公钥体系简介目录1 . 关键词: 22 . 密码学 32.1 什么是密码学 32.2 密码学的起源 32.3 什么是加密算法 32.4 对称加密算法与非对称加密算法42.4.1 对称加密算法 42.4.2 非对称加密算法 52.5 rsa算法详细介绍 52.5.1 rsa 公开密钥密码系统的数学原理52.5.2 rsa 公钥体系可用于对数据信息进行数字签名 62.5.3 散列函数 63 . 公钥基础结构(pki) 84 .证书颁发机构(ca) 104. 证书 114.1 证书信息 114.2 生成加密密钥和证书申请114.3 证书的安全机制 115. 智能卡 13一 . 关键

2、词:公钥基础结构 (pki)通常用于描述规范或管理证书和公,私钥的法律,政策,标准和软件的术语。在实践中,它是 检验和验证与电子事务相关的每一方的数字证书 , 证书认证 和其他 注册颁发机构 的系统 。公钥基础结构也被称为 pki.证书颁发机构 (ca)负责建立并保证属于用户 (最终实体) 或其他证书颁发机构的公钥的真实性的实体。证书办法机构的活动可能包括通过所签署的证书将公钥绑定到特征名称上,以及管理证书序号和证书吊销。证书颁发机构也被称为ca。证书公钥证书,通常简称为证书,是一种数字签名的声明,它将公钥值与拥有对应私钥的个人、设备或服务的身份绑定到一起。用于对在不安全网络(如 intern

3、et )上的信息进行身份验证和安全交换的数据集。证书将公钥安全地棒定到持有相应私钥的实体中。证书由颁发证书的机构进行数字签名,并且可被管理以便用于用户,计算机或服务。 被最广泛接受的证书格式由 itu-tx509 国际标准定义。智能卡信用卡大小的设备,用于安全地存储公钥和私钥,密码以及其他类型的个人信息。要使用智能卡,需要有连接到计算机的智能卡阅读器和智能卡的个人pin 号码。crytpapi作为 microsoft windows 的一部分提供的应用程序编程接口( api)。 crytpapi 提供了 一组函数,这些函数允许应用程序在对用户的敏感私钥数据提供保护时以灵活的方式对数据进行加密或

4、数字签名。实际的加密操作由加密服务提供程序(csp) 的独立模块执行。crytpapi 也被称为capi。数字签名数字签名是一种确保数据完整性和原始性的方法。由于数据被签名并确认了对数据签名的人或实体的身份,因此数字签名提供有力的证据。数字签名启用“完整性”和“认可”这两项重要安全功能,这是实施安全电子商务的基本要求。二 . 密码学“世界上有两种密码: 一种是防止你的小妹妹偷看你的文件;另一种是防止当局阅读你的文件资料。”摘自 bruce.schneier 应用密码学2.1 什么是密码学“如果把一封信所在保险柜中,把保险柜藏在纽约的某个地方,然后告诉你去看这封信,这并不是安全,而是隐藏。相反,

5、如果把一封信锁在保险柜里,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置,而你还是无法打开保险柜去读这封信,这才是安全的概念。”摘自 bruce.schneier 应用密码学2.2 密码学的起源最早的密码学应用可追溯到公元前 2000 年古埃及人使用的象形文字。这种文字由复杂的图形组成,其含义只被为数不多的人掌握着。而最早将现代密码学概念运用于实际的人是恺撒大帝(尤利西斯. 恺撒公元前 100 年 44 年)。他不太相信负责他和他手下将领通讯的传令官,因此他发明了一种简单的加密算法把他的信件加密。第二次世界大战以后,由于与计算机技术的结合,密

6、码学的理论研究与实际应用得到了飞速的发展,随之产生了很多新的分支理论,如微粒照片,数字图片水印技术和其他很多隐藏被传递和存储的信息的方法。其中,最常见的就是利用计算机将明文和密码变成密文和将密码和密文变成明文。2.3 什么是加密算法所谓加密算法就是指将信息变成密文的计算方法。有的加密算法就是对信息进行简单的替换或乱序,这种加密算法最明显的缺陷就是,算法本身必须保证是保密的。现代加密 算法通常都需要密钥来完成对信息的加密运算,算法本身可以公开,理论上,只要保证密钥的安全就能保证信息的安全。最早的恺撒密文就是一种简单的字母替换加密算法。算法本身非常简单,但同时也是 最容易破解的算法。其加密方式就是

7、,按照其在英文字母表里的顺序,将字母循环移位。 整个算法可归结为下面的公式:f(x) = ( x + s ) mod 26其中x是原文字母,s是一个常数。例如,如果 s等于3,则字母a就被加密为d,而 字母z就被加密为co这种加密方法虽然简单,但是缺点也是显而易见的。比如,明文中字母 c 出现的次数是5 次的话,则加密后对应的字母出现的次数也是5 次,也就是说字母出现的频率没有变化。比如 e 是英文中最常用的字母,那么给定一个足够大的密文,该文中出现最多的字母很可能就是e,如果不是,那可能是a、i或q。密码学专家只用十几个密码字母就能很快的进行这种统计攻击。现代加密算法与这种简单的字母替换算法

8、不同的地方在于,加密算法的安全性基于用于加密的密钥而不是算法本身。对于好的加密算法,即使公开其算法设计原理也不会对其安全性产生丝毫的影响。只要用于加密的密钥是安全 的,则被加密的信息也就是安全的。2.4 对称加密算法与非对称加密算法基于密钥的加密算法可以分为两大类:对称加密算法和非对称加密算法(也叫公钥算法)。2.4.1 对称加密算法所谓的对称密钥算法就是用加密数据使用的密钥可以计算出用于解密数据的密钥,反 之亦然。绝大多数的对称加密算法加密密钥和解密密钥都是相同的。对称加密算法要求通 讯双方在建立安全信道之前,约定好所使用的密钥。对于好的对称加密算法,其安全性完 全决定于密钥的安全,算法本身

9、是可以公开的,因此一旦密钥泄漏就等于泄漏了被加密的 信息。对称算法是传统常用的算法。它最广泛使用的是desm法。des(data encryption standard)算法是美国政府机关为了保护信息处理中的计算机数 据而使用的一种加密方式,是一种常规密码体制的密码算法,目前已广泛用于电子商务系 统中。64位des的算法详细情况已在美国联邦信息处理标准( fips pub46)上发表。该算 法输入的是64比特的明文,在64比特密钥的控制下产生 64比特的密文;反之输入 64比特 的密文,输出64比特的明文。64比特的密钥中含有8个比特的奇偶校验位,所以实际有效 密钥长度为56比特。随着研究的发

10、展,des算法在基本不改变加密强度的条件下,发展了许多变形des triple-des 是des算法扩展其密钥长度的一种方法,可使加密密钥长度扩 展到128比特(112比特有效)或192比特(168比特有效)。其基本原理是将128比特的密钥分为64比特的两组,对明文多次进行普通的des加解密操作,从而增强加密强度。具体实现方式不在此详细描述。对称算法最主要的问题是:由于加解密双方都要使用相同的密钥,因此在发送、接收 数据之前,必须完成密钥的分发。因而,密钥的分发便成了该加密体系中的最薄弱因而风 险最大的环节。各种基本的手段均很难保障安全地完成此项工作。从而,使密钥更新的周期加长,给他人破译密钥

11、提供了机会。实际上这与传统的保密方法差别不大。在历史战争 中,破获他国情报的纪录不外是两种方式:一种是在敌方更换“密码本”的过程中截获对 方密码本;另一种是敌人密钥变动周期太长,被长期跟踪,找出规律从而被破获。在对称 算法中,尽管由于密钥强度增强,跟踪找出规律破获密钥的机会大大减小了,但密钥分发 的困难问题几乎无法解决。如,设有n方参与通信,若n方都采用同一个对称密钥,一旦密钥被破解,整个体系就会崩溃;若采用不同的对称密钥则需n(n-1) 个密钥,密钥数与参与通信人数的平方数成正比。这便使大系统密钥的管理几乎成为不可能。明文m甲地的发送方密文cmcm 解密) 模块公开信道乙地的接收方密钥sk秘

12、密信道图一.对称加/解密示意图图中:sk为秘密密钥,sk密钥的传递通过秘密的物理通道。2.4.2 非对称加密算法所谓非对称加密算法是指用于 加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥。这类算法之所以被称为公钥算法是因为用于加密的密钥是可以广泛公开的,任何人都可以得到加密密钥并用来加密信息,但是只有拥有对应解密密钥的人才能将信息解密。在公钥体制中,加密密钥不同于解密密钥,将加密密钥公之于众,谁都可以使用;而 解密密钥只有解密人自己知道。它们分别称为pk公开密钥(public key)和sk秘密密钥(secret key)。迄今为止的所有公钥密码体系中, rsa系统是

13、最著名、使用最广泛的一种。 rsa公开密 钥密码系统是由 r. rivest、a. shamir和l. adleman三位教授于1977年提出的。rsa的 取名就是来自于这三位发明者的姓的第一个字母。rsab法对数据的加/解密的过程如图所示。收方b的秘密密钥(私钥)skb由b自己保存,其相应的公开密钥(公钥)pkb可经公开信道送给发方a等通信伙伴。rsab法研制的最初理念与目标是旨在解决利用公开信道传输分发de鲫法的秘密密钥的难题。而实际结果不但很好地解决了这个难题,还可利用rsa来完成对电文的数字签名,以防止对电文的否认与抵赖,同时还可以利用数字签名较容易地发现攻击者对电文的 非法篡改,以保

14、护数据信息的完整性。rsa加 明交网,密模块a公开信道rsaa解密模块啊m a发方apkbsicb收方b图二.非对称加/解密示意图图中:pkb收方的公开密钥skb收方的秘密密钥2.5 rsa算法详细介绍2.5.1 rsa公开密钥密码系统的数学原理密钥管理中心产生一对公开密钥和秘密密钥的方法如下:在离线方式下,先产生两个足够大的强质数 p、q。可得p与q的乘积为n=pxq。再由p和q算出另一个数z=(p-1) x (q-1),然后再选取一个与z互素的奇数e,称e为公开指数;从这个 e值可以找出另一个值d,并能满足exd=1 mod(z)条件。由此而得到的两组数(n , e)和(n , d)分别被

15、称为公开密钥和秘密密钥,或简称公钥和私钥。对于明文m用公钥(n , e)加密可得到密文c。c = m mod (n) (1)对于密文c,用私钥(n , d)解密可得到明文 mlm = c mod (n) (2)(2) 式的数学证明用到了数论中的欧拉定理,具体过程这里不赘述。同法,也可定义用私钥 (n , d) 先进行解密后,然后用公钥 (n , e) 进行加密(用于签 名)。p、 q、 z 由密钥管理中心负责保密。在密钥对一经产生便自动将其销毁或者为了以后密钥恢复的需要将其存入离线的安全黑库里面;如密钥对是用户自己离线产生的,则p、 q、z 的保密或及时销毁由用户自己负责。在本系统中,这些工作

16、均由程序自动完成。在密钥对产生好后,公钥则通过签证机关ca以证书的形式向用户分发;经加密后的密态私钥用pin 卡携带分发至用户本人。rsat法之所以具有安全性,是基于数论中的一个特性事实:即将两个大的质数合成一个大数很容易,而相反的过程则非常困难。在当今技术条件下,当 n 足够大时,为了找到d,欲从n中通过质因子分解试图找到与d对应的p、q是极其困难甚至是不可能的。由此可见,rsa的安全性是依赖于彳为公钥的大数n的位数长度的。为保证足够的安全性,一般认为现在的个人应用需要用384或512比特位的n,公司需要用1024比特位的n,极其重要的场合应该用 2048 比特位的n。2.5.2 rsa 公

17、钥体系可用于对数据信息进行数字签名rs心钥体系还可用于对数据信息进行数字签名。所谓数字签名就是信息发送者用其私钥对从所传报文中提取出的特征数据或称数字指纹进行rsam法解密运算操作,得到发信者对该数字指纹的签名函数 h (m)。签名函数h (md从技术上标识了发信者对该电文的数 字指纹的责任。因发信者的私钥只有他本人才有,所以他一旦完成了签名便保证了发信人无法抵赖曾发过该信息 (即不可抵赖性) 。经验证无误的签名电文同时也确保信息报文在经签名后未被篡改 (即完整性) 。当信息接收者收到报文后,就可以用发送者的公钥对数字签名的真实性进行验证。美国参议院已通过了立法,现在在美国 , 数字签名与手书

18、签名的文件 具有同等的法律效力。2.5.3 散列函数在数字签名中有重要作用的电文的数字指纹是通过一类特殊的散列函数(hashs数)生成的 在数字签名中有重要作用的电文的数字指纹是通过一类特殊的散列函数(hash 函数 )生成的,对这类 hash数的特殊要求是:1接受的输入报文数据没有长度限制;2对输入任何长度的报文数据能够生成该电文固定长度的摘要( 数字指纹 ) 输出;3从报文能方便地算出摘要;4极难从指定的摘要生成一个报文,而由该报文又反推算出该指定的摘要;5两个不同的报文极难生成相同的摘要。曾有数家统计计算结果表明,如数字指纹h(m)的长度为128位(bit)时,则任意两个分别为m1. m

19、2的电文具有完全相同的h(m)的概率为1024,即近于零的重复概率。它较人类指纹的重复概率1019还要小5个数量级。而当我们取h(m)为384(bit)乃至1024(bit)时,则更是不大可能重复了。另外,如电文m1与电文m2全等,则有h(m1)与h(m2)全等,如只将m2或m1中的某任意一位 (bit)改变了,其结果将导致h(m1)与h(m2)中有一半左右对应的位(bit)的值都不相同了。这种发散特性使电子数字签名很容易发现(验证签名)电文的关键位的值被人篡改了。三 . 公钥基础结构(pki)公钥基础结构(pki) 是由数字证书、证书颁发机构 (ca) 以及核实和验证通过公钥加密方法进行电子

20、交易的每一方的合法性的其他注册颁发机构所构成的系统。目前作为电子商务必要组成部分的公钥基础结构 (pki) 已被广泛应用pki 是通过使用 公开密钥技术和数字证书来确保系统信息安全并负责验证 数字证书持有者身份的一种体系。 例如,某企业可以建立公钥基础设施( pki )体系来控制对其计算机网络的访问。在将来,企业还可以通过公钥基础设施( pki)系统来完成对进入企业大门和建 筑物的提货系统的访问控制。pki 让个人或企业安全地从事其商业行为。企业员工可以在互联网上安全地发送电子邮件而不必担心其发送的信息被非法的第三方(竞争对手等)截获。企业可以 建立其内部web站点,只对其信任的客户发送信息。

21、pki采用各参与方都信任一个同一ca (认证中心),由该ca来核对和验证各参与方身份的身份这种信任机制。 例如,许多个人和企业都信任合法的驾驶证或护照。这是因为他 们都信任颁发这些证件的同一机构- 政府,因而他们也就信任这些证件。然而,一个学生的学生证只能被核发此证的学校来进行验证。数字证书也一样。通过公钥基础设施( pki) ,交易双方 (可能是在线银行与其客户或者是雇主与其雇员)共同信任签发其数字证书的认证中心(ca)。典型的是采用数字证书的应用软件和ca信任的机制。例如,有相同客户端浏览器中根证书列表中包含了它所信任ca的根证书,当浏览器需要验证一个数字证书的合法性 (假如说要进行在线安

22、全交易) 的时候,此浏览器首先从 其根证书列表中查找签发该数字证书的认证中心根证书,如果该认证中心根证书存在于浏 览器的根证书列表中并验证通过后,浏览器承认此站点的具有合法身份并显示此站点的网 页。如果该认证中心根证书不在信任ca根证书列表中,浏览器会显示警告信息并询问是否要信任这个新的认证中心。通常地,浏览器会弹出提供永久的信任、临时的信任或不相信 该认证中心的选项对话框给客户选择,因为作为客户来说,他们有权选择信任哪些认证中 心,而信任的处理工作通过应用软件来完成(在这个例子中是通过浏览器完成的)。 公开 密钥基础设施 pki (public key infrastructure )是国际

23、上目前较为成熟的解决开放式互联网络信息安全需求的一套体系,而且还在发展之中。pki 体系支持:身份认证信息传输、存储的完整性信息传输、存储的机密性操作的不可否认性 基础设施 的目的就是:只要遵循必要的原则,不同的实体就可以方便地使用基础设 施提供的服务。pki 公开密钥基础设施就是为整个组织( 组织 适可以被定义的) 提供安全的基本框架,可以被组织中任何需要安全的应用和对象使用。安全设施的 接入点 是统一的,便于使用 (就像是 tcp/ip 栈和墙上的电源插座一样)。pki这个具有普适性的安全基础设施适用与多种环境的框架。这个框架避免了零碎的、 点对点的,特别是没有互操作性的解决犯案,引入了可

24、管理的机制以及跨越多个应用和计 算平台的一致安全性。pki公开密钥基础设施设施可以实现 应用支撑”的功能。对于应用支撑举一个例子来讲,电力系统就是一个应用支撑,它可以让应用,如烤炉、电灯正常工作。进一步将,电力基础设施具有通用性和实用性的特点,它能支持新的应用(如吹风机),而这些应用在电力基础设施设计的时候还没有出现。pki公开密钥基础设施具有同样的特性。(与pki安全基础设施对应的应用是指需要安全服务而使用安全基础设施的模 块,仞如 wetj览器、电子邮件客户端程序、ipsec支撑的设备等等)接收发送发送者用接收方的公钥加密接收方用自己的私钥解密图三.pki中加密技术图解:2、通过膝各借输私

25、钥加密文件同石一起发送3、格收、嘘证签名hash运通文嫡能日斡密发送者用接收方的公钥加密接收方用自己的私钥解密图四:pki中签名技术图解:. 证书颁发机构(ca)证书颁发机构(ca) 是受委托向个人、计算机或单位颁发证书的机构,它确认属于其他机构的证书的身份及其他属性。 ca 接受证书申请,根据 ca 的策略验证申请者的信息,然后使用其私钥将其数字签名应用于证书。然后 ca 将证书颁发给证书的受领人,用作公钥基础结构(pki) 内的安全凭证。 ca 还负责吊销证书并发布证书吊销列表(crl) 。ca可以是远程的第三方机构,如verisign ,也可以是您通过安装windows 2000 证书服

26、务而创建的由您的单位使用的ca。每个ca都要求证书申请者有明确的身份证明,如windows 2000 域帐户、员工的工作证、驾驶员执照、已确认的申请或物理地址。与此类似 的身份检查通常可担保现场ca,以便单位能够验证其员工或成员的合法身份。每个 ca 都还有确认自己身份的证书,或者由另一个被信任的 ca 颁发,或者如果是根 ca ,则由自己颁发。记住,任何人都可以创建ca 。但实际需要考虑的问题是,作为用户或管理员,您是否信任该ca,以及该ca所拥有的策略和过程是否适合于确认由该ca颁发其证书的机构的身份。四.证书证书主要是证明证书持有人的身份颁发机构所颁发的数字声明。证书将公钥与拥有相 应私

27、钥的个人、计算机或服务绑在一起。4.1 证书信息 主题公钥值 主题标识符信息(如名称和电子邮件地址) 有效期(证书的有效时间) 颁发者标识符信息 颁发者的数字签名,它用来证实主题公钥和主题标识符信息之间绑定关系的有 效性4.2 生成加密密钥和证书申请当您生成新证书申请时,请求中的信息将首先从申请程序传送到microsoft加密应用程序接口,称为cryptoapi 。 cryptoapi将正确的数据传递到安装在计算机或计算机可以 访问的设备上的称为加密服务提供程序(csp)的程序。如果csp是基于软件的,它将在计算机上生成密钥对:公钥和私钥。如果 csp是基于硬件的,例如智能卡csp,它将指导硬

28、件生成密钥对。生成密钥后,软件 csp加密并在计算机的注册表中保护私钥智能卡csp将私钥存储在智能卡上,智能卡控制对私钥的访问。公钥连同证书申请者信息被发送到证书颁发机构 (ca)。在ca根据其策略验证证书请求后,它将使用自己的私钥在证书中创建数字签名, 然后将其颁发给申请者。于是证书申请者将获得来自ca的证书,并可以决定将证书安装在相应的计算机或是硬件设备的证书存储区中。4.3 证书的安全机制证书对许多安全服务都很有用。证书可以用于下列用途: 身份验证。验证某人或某物的身份。 隐私。确保只有特定用户才可使用信息。 加密。掩盖信息,使未授权的用户不能将其解密。 数字签名。认可信息并保证信息的完

29、整性。身份验证身份验证对于安全通讯十分重要。用户必须在与另一方通讯时有能力证实双方的身 份。网络上的身份验证很复杂,因为通讯各方在通讯时实际上没有接触。这会为不法分子 截获消息或冒充另一个人或实体提供了可乘之机。数字证书是提供身份验证的常用保密措施。证书使用加密技术解决物理上缺乏联系的 通讯问题。使用这些技术限制不法分子截获、篡改或伪造消息的可能性。这些加密技术使 证书难以修改。因此,实体要冒充他人很困难。证书中的数据包括来自证书主题的公钥和私钥对的公用加密密钥。对于带有发送方私钥签名的消息,消息接收方可以使用发送方公钥确认其真实性。公钥可以在发送方证书的副本上找到。使用证书公钥验证签名可以证

30、实签名是使用证书主题私钥创建的。如果发送方小心并保持私钥机密性,接收方就可以确信消息发送方的身份。隐私网络 (例如, internet ) 上的通讯容易受到未知的,可能还是有恶意的用户的监视。公用网络对于未加密的敏感信息来说是危险的,因为任何人都可以访问网络并且对在两点间传输的数据进行分析。即便专用局域网 (lan) 也容易被有意图的入侵者从物理上进入网络。因此,如果在任何类型的网络上的计算设备间传输敏感信息,用户几乎肯定会使用一些加密方法来保证数据的隐秘性。加密可以将加密看作是把某些贵重的东西锁到一个有钥匙的保险箱中。相反,解密可以理解为打开保险箱,取出贵重的物品。在计算机上,以电子邮件形式

31、存在的敏感数据、磁盘上的文件和网络上传输的文件都可以使用密钥加密。加密的数据和加密数据的密钥都是很难破解的。通常,公钥加密不用于加密大量数据。但是,公钥加密确实提供了有效的方法:向某些用户发送密钥,当大量数据执行了对称加密操作时,这些用户可以使用密钥。举一个例子,假设bob 要向 alice 发送大量加密文件。由于操作原因,他将使用对称密钥算法加密数据,例如数据加密标准(des) 。为了发送加密的数据和安全加密数据所需的 des 密钥, bob 将用从 alice 的证书处获得的公钥加密密钥。因为她的公钥被用来加密密钥,具有私钥的 alice 就是唯一能够解密des 密钥从而解密des 加密数据的人。数字签名数字签名是一种确保数据完整性和原始性的方法。由于数据被签名并确认了对数据签名的人或实体的身份,因此数字

温馨提示

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

评论

0/150

提交评论