公钥体制实现保密通信

转载自:http://bbs.51cto.com/topic/thread-624297.html

 

码理论基础:
保密学(Xryptology)有两个分支: 密码学(Xryptography),密码分析学(Cryptanalytics)。
术语:明文Plaintext, 密文Ciphertext/密报Crytogram,加密Encryption,解密Decryption。


密码体制:单钥体制(One-key System),双钥体制(Two-key System)。

单钥体制:加密密钥和解密密钥相同。
系统的安全性主要取决于密钥的安全性,必须通过安全可靠的途径将密钥送至接收端。如何产生满足保密要求的密钥和如果将密钥安全、可靠地分配给通信对方是主要课题。
对明文加密有两种方式:一种是明文消息按字符逐位地加密,称为流密码(Stream Cipher);另一种是将明文消息分组(含有多个字符),逐组地进行加密,称为分组密码(Block Cipher)。密钥(Key)是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据.
单钥算法不仅能用于数据加密,也可用于消息的认证。

双钥体制:一对密钥:私钥、公钥。双钥体制又被称作公钥体制(Public Key System)。
双钥体制的主要特点是将加密和解密能力分开,因此可以实现多个用户加密的消息只能由一个用户解读,或只能由一个用户 加密消息而使多个用户可以解读。前者用于公网中实现保密通信,而后者用于认证系统中队消息进行数字签名(认证)。同时实现保密和认证,则采用两对密钥双重加密、解密。

单钥体制的缺点是在进行保密通信之前,双方必须通过安全信道传送所用的密钥,这对于距离较远的用户来说可能要付出较大的代价,甚至难以实现。另外N个用户之间相互进行保密通信,将需要N(N-1)/2个密钥,当N大时,代价也是很大的。双钥完全克服了上述缺点。双钥加密一般不对发送频繁的大数据做加密,否则代价太高。一般用于对小量数据加密/解密。而大数据一般用双钥做数字签名。

对称密钥密码技术:
DES算法 是美国数据加密标准 它是一种分组密码 把明文以64bit为单位分成块,然后用密钥把每一块明文转换成同样64bit的密文块。对称加密强度一般使用到128位。
非对称密钥密码技术:
公钥加密算法主要有RSA(Rivest, Shamir, Adleman), Fertezza, EIGama等。 RSA使用最为广泛,它把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但加解密的开销也越大,一般64位是比较合适的。RSA的一个比较知名的应用是SSL,在美国和加拿大,SSL使用的是128位RSA算法,其他地区则是40位的版本。
Diffie-Hellman, DSA美国数字签名算法。


PKI中常用的密码技术
散列函数;
加密/解密技术;
数字签名:
使用密码算法,对待法的数据进行加密处理,生成一段杂凑值信息附在原文上一起发送,这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文真伪。这种数字签名适合于对大文件的处理,对那些小文件的数字签名,则不预先做杂凑值,而直接将原文进行加密处理。
数字签名在PKI中提供数据完整性保护和不可否认性服务。
1. 具有杂凑值的数字签名
首先采用单项函数Hash算法,对原文进行加密压缩形成杂凑值,然后对杂凑值用发送方的私钥进行加密,得到数字签名,再发送给接收方。接收方进行签名验证过程。签名验证是接收方用发送方的公钥对数字签名进行解密,得出杂凑值;原文同密文一起发送给接收方,接收方用同一个Hash算法,对原文进行压缩计算,得到一新的杂凑值,二者进行比较。原文的任何变化都会使杂凑值发生变化,所以,它是一种对压缩消息的签名。
这种数字签名适合对大文件信息的数字签名。对一个数字签名进行验证,就是最后对杂凑值的比较。一个完整的数字签名由两大部分组成,即对x的签名sig(x) = y;然后是对y的验证Ver(y)={真,伪}。
2. 直接用私钥进行加密的数字签名
适用于小数据。直接对原文进行私钥加密得到数字签名。然后将原文和数字签名一起发送给接收方,接收方用发送方的公钥进行解密,最后与原文进行比较。
报文检验码
保证数据完整性的加密技术,保证数据在存储、传输和处理过程中的真实有效性和一致性。也称报文鉴别码,简称MAC(Message Authentication Code)。它的过程是使用密码算法对原始报文数据进行加密运算,得到一小段密文数据加在原文之后。这小段数据与原数据的每一位都相关,使得原数据的每一位的变化都会反应到这小段数据上来,因此可以判断原数据的内容是否被修改。
数字信封
信息发送方用接收方的公钥,将一个通信密钥(Symmentric Key,short for SK),即对称密钥给予加密,形成一个数字信封(DE),然后传送给接收方。只有指定的接收方才能用自己的密钥打开数字信封,获取该对称密钥(SK),用它来解读传送过来的信息。
数字信封是PKI中使用对称密钥算法与非对称密钥算法的巧妙结合,是上述加密、数字签名和数据摘要技术的综合应用。数字信封是
PKI应用系统中常用的一种密码技术。
双重数字签名
就是在有的场合,发送者需要寄出两组相关信息给接收者,对这两组相关信息,接收者只能解读其中的一组,而另一组织能转送给第三方接收者,不能打开看其内容。这时发送者就需分别加密两组密文,做两组数字签名。在B2B,B2C电子商务模式中使用广泛。


PKI是一个用非对称密码算法原理和技术来实现并提供安全服务的具有通用性的安全基础设施。它是在网络协议应用层上实施安全机制的网络安全平台。它是一种遵循标准的利用公钥加密技术为电子商务、电子政务的开展,提供一整套安全的基础平台。用户利用PKI平台提供的安全服务进行安全通信。PKI这种遵循标准的密钥管理平台,能够为所有网络应用透明地提供采用加密和数字签名等密码服务所需要的密钥和证书管理。
PKI的定义:PKI是创建、颁发、管理、撤销公钥证书所涉及到的所有软件、硬件的集合体。也就是说,PKI主要是一个核心机构来产生数字证书,并按一定的安全规则颁发证书,对其签发的证书要进行事后的管理,诸如撤销、更换、 备份等。
PKI必须具有:认证机构、证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用接口系统。
认证机构(Certificate Authority:CA)
证书的签发机构,是PKI的核心,是PKI应用中权威的、可信任的、公正的第三方机构。PKI服务系统的关键问题是如何实现密钥管理,公钥体系中两种密钥中,公钥是公开的,需要在网上传送,故公钥体制的密钥管理主要是公钥的管理问题,目前较好的解决方案是引进证书机制。所谓证书,是数字证书、电子证书的简称,是公开密钥体系的一种密钥管理媒介。它是一种权威性的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份,以及其公开密钥的合法性在使用公钥体制的网络环境中,必须向公钥的使用者证明公钥的真实合法性。因此,在公钥体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行公证,证明主体的身份,以及它与公钥的匹配关系。CA正式这样的机构。它的职责归纳起来有:
1.验证并标识证书申请者的身份
2.确保CA用于签名证书的非对称密钥的质量
3.确保整个认证过程的安全性,确保签名私钥的安全性
4.证书资料信息(包括公钥证书序列号、CA标识等)的管理
5.确定并检查证书的有效权限
6.取保证书主体标识的唯一性,防止重名
7.发布并维护作废证书列表
8.对整个证书签发过程做日志记录
9.向申请人发出通知
最重要的是一对密钥的管理。用户的公钥对有两种方式产生——第一种是用户自己产生密钥对,然后将公钥以安全的方式传送给CA
第二种是CA替用户产生密钥对,然后将其以安全的方式传送给用户,CA在事后必须将用户的私钥销毁。
PKI下,公钥一般有两个用途:
1.用于验证数字签名。消息接收者使用发送方的公钥对数字签名进行验证。
2.用于加密信息。发送者使用接收者的公钥对加密消息的密钥(会话密钥)加密,进行数据加密密钥的传递。
相应地,系统中需要配置用于数字签名/验证的密钥对和用于数据加密/解密的密钥对,这里分别称为签名密钥对和加密密钥对。这两对密钥管理,要求是不同的。
签名密钥对由签名私钥和验证公钥组成。签名私钥具有日常生活中公章、私章的效力,为保证其唯一性,签名私钥绝对不能做备份和存档,丢失后要重新生成新的密钥对,原来的签名可以使用旧公钥的备份来验证。验证公钥要存档,用于验证旧的数字签名。用做数字签名的这一对密钥一般可以有较长的生命周期。
加密密钥对由加密公钥和解密私钥组成。为防止密钥丢失时丢失数据,解密私钥应该进行备份,同时还可能需要进行存档,以便在 必要时进行恢复,能在任何时候解密历史密文数据。加密公钥无需备份和存档,加密公钥丢失时,只需重新产生密钥对即可。
加密密钥对通常用于分发对话密钥,这种密钥应该频繁更换,估加密密钥对的生命周期较短。

通常在使用中,必须为用户配置两对密钥、两张证书,其一用于数字签名,另一用于加密。所以一个可信的PKI,必须具备双证书机制。

证书库 是CA颁发证书和撤销证书的集中存放地。是网上的一种公共信息库,供广大公众进行开放式查询。通常的做法是放在采用LDAP协议的目录服务器中。证书签发机构将各实体的身份与其公钥捆绑,进行了数字签名,而发布在证书库中。(签发证书)一个用户到证书库访问查询,就是想得到与之通信的实体的公钥,也可以说找到对方的证书。

证书撤销 撤销用户身份和公钥之间的捆绑关系,原因可能有:用户身份姓名的改变, 私钥被窃或泄漏, 用户与其所属企业关系变更等。这样就必须存在一种方法警告其他用户不要再使用这个公钥。在PKI中,这种警告机制被称作证书撤销。所使用的手段为证书撤销列表或称CRL。

密钥的备份和恢复 用户由于某种原因丢失了解密数据的密钥,则被加密的密文无法解开,造成数据丢失。为了避免出现这种情况,PKI提供了密钥备份与解密密钥的恢复机制,这就是密钥备份与恢复系统。
密钥/证书生命周期:分为 证书初始化注册阶段、颁发阶段和取消阶段
初始化阶段 是指终端用户实体在使用PKI的支持服务之前,必须经过初始化进入PKI,它由以下几步组成。
1.终端实体注册2.密钥对产生3.证书创建和密钥/证书分发4.证书分发5.密钥备份
颁发阶段 是指一旦私钥和公钥证书已被产生,即可进入颁发阶段。主要由以下阶段组成。
1.证书检索——远程资料的证书检索 2.证书验证——确定一个证书的有效性 3.密钥恢复——不能正常解读加密文件时, 从CA中恢复 4. 密钥更新——当一个合法的密钥对将要过期时,新的公/私密钥自动产生并颁发。
取消阶段 是指密钥/证书生命周期管理的结束。它包括以下内容:
1.证书过期——证书的自然过期 2.证书撤销——宣布一个合法证书(及相关私钥)不再有效 3. 密钥历史——维护一个有关密钥资料的连续记录,以便对以后过期的密钥所加密的数据进行解密。 4. 密钥档案——为了密钥历史恢复、审计和解决争议的目的,密钥历史档案由CA储存。

自动更新密钥 一个证书的有效期是有限的,这样规定既有理论上的原因,又有实际操作的因素。在理论上,诸如关于当前非对称算法和密钥长度的可破译性分析,同时在实际应用中,证明密钥必须有一定的更换频度,才能得到密钥使用的安全性。无论用户的证书处于何种目的,在认证时,都会在线自动检查有效期,当失效日期到来之前的某时间间隔内,如提前20天,自动启动更新程序,生成一个新证书来代替旧证书,新旧证书的序列号也不一样。证书恢复是仍然使用原来的密钥对,更新之后使用新的密钥对。


密钥历史档案 用户的一系列旧证书和相应的私钥 PKI自动维护 主要用于对过期的加密数据,查找相应的私钥,进行解密

你可能感兴趣的:(加密,解密,算法,encryption,authentication)