密码技术是保证网络安全的核心技术之一。密码学(cryptography)包括密码编码学与密码分析学。
1、密码算法与密码体制的概念
1.1、加密算法与解密算法
加密的基本思想是:伪装明文以隐藏其真实内容,即将明文X伪装成密文Y。伪装明文的操作称为"加密",加密时所使用的变换规则称为"加密算法"。由密文恢复出原明文的过程称为"解密"。解密时所采用的信息变换规则称为"解密算法"。
加密解密过程示意图:
用户A希望通过网络给用户B发送报文,采用加密的办法,首先将报文由明文转变成密文,在用户B接收到密文后,采用双方共同商议的解密算法与秘钥,可以将密文还原成明文。
1.2、密钥的作用
加密算法与解密算法的操作通常都是在一组密钥控制下进行的。密码体制是指一个系统所采用的基本工作方式以及它的两个基本构成要素,即加密/解密算法和密钥。
传统密码体制所用的加密密钥和解密密钥相同,也称为"对称密码体制"。若加密密钥和解密密钥不相同,则成为"非堆成密码体制"。
方法有:置位密码法、易位密码法等。
1.3、什么是密码
加密技术可分为密钥和加密算法两部分。加密算法是用来加密的数学函数,而解密算法是用来解密的数学函数。密码是明文经过加密算法运算后的结果。
密码是含有一个参数k的数学变换,即:C=Ek(m)。
其中,m是未加密的信息(明文),C是加密后的信息(密文),E是加密算法,参数k称为"密钥"。密文C是明文m使用密钥k,经过加密算法E计算后的结果。
1.4、密钥长度
对于同一种加密算法,密钥的位数越长,破译困难就越大,安全性越好。
密钥的位数越多,密钥空间(key space)越大,密钥的可能范围就越大,就越不容易通过蛮力攻击(brute-force attack)来破译。
2、对称密码体系
目前常用的加密技术可以分为两类:对称加密(symmetric cryptography)与非对称加密(asymmetric cryptography)。
在传统对称密码系统中,加密用的密钥与解密用的密钥是相同的,密钥在通信中需要保密。在非对称加密系统中,加密用的公钥与解密用的私钥是不同的,加密用的 公钥可以公开,而解密用的私钥需要保密。
2.1、对称加密的基本概念
对称加密技术对信息的加密与解密都使用相同的密钥。
对称加密机制的基本工作原理示意图:
1、通信双方加密与解密时使用同一个密钥,只要密钥在交换阶段未泄露,就可保证信息的秘密性与完整性;
2、若一个用户要与N个其他用户进行加密通信时,每个用户对应一把密钥,则需要维护N把密钥。
3、对称加密体系中,系统的保密性主要取决于密钥的安全性。
2.2、典型的对称加密算法
数据加密标准(data encryption standard DES)是最典型的对称加密算法。
DES算法主要用于银行业中电子资金转账领域,DES算法采用了64位密钥长度,其中8位用于奇偶校验,用户可以使用其余的56位。
目前的IDEA算法、RC2算法、RC4算法与Skopjack算法等对称加密算法比DES算法更加安全。
3、非对称密码体系
3.1、非对称加密的基本概念
非对称加密技术对信息的加密与解密使用不同的密钥,用来加密的密钥可公开,用来解密的密钥需要保密,该技术又称为公钥加密(public key encryption)技术。
非堆成加密的工作原理:
发送端用非对称加密的方法,将明文加密后发送给接收端时,首先得到接收端的密钥产生器所产生的一对密钥中的公钥。发送端用公钥加密后的密文可以通过网络发送到接收端。接收端使用一对密钥中的私钥区解密,将密文还原成明文。
1、在非对称密钥密码体制中,加密的公钥与解密的私钥是不相同的。公钥可以公开,私钥只有解密方知道;
2、采用两个密钥,以公钥作为加密密钥,接收方使用私钥解密,则可实现多个用户发送密文只能由一个持有解密的私钥的用户解读;
3、若用户的私钥作为加密密钥,而以公钥作为解密密钥,则可实现由一个用户加密的消息而由多个用户用户解读,这样非堆成密钥密码就可以用于数字签名;
4、非对称加密技术可简化密钥的管理,网络中N个用户之间进行通信加密,仅需要使用N对密钥就可以了;
非对称加密技术与对称密钥加密技术相比,优势在于不需要共享通用的密钥,用于解密的私钥不需要发往任何地方,公钥在传递和发布过程中即使被截获,由于没有与公钥向匹配的私钥,截获公钥并没有太大意义。
公钥加密技术主要缺点:加密算法复杂,加密与解密的速度比较慢。
3.2、非对称加密的标准
主要的公钥算法包括RSA算法、DSA算法、PKCS算法与PGP算法等。
RSA体制被认为是目前为止理论上最成熟的一种公钥密码体制。RSA算法的保密性随其密钥的长度增加而增强,使用的密钥越长,加密与解密所需要的时间也就越长。
4、公钥基础设施
4.1、公钥基础设施的基本概念
公钥基础设施(public key infrastructure,PKI)是利用公钥加密和数字签名技术建立的安全服务基础设施,以保证网络环境中数据的私密性、完整性与不可抵赖性。
1、PKI是一种利用非对称加密密码体系,提供安全服务的通用性网络安全基础设施;
2、PKI系统对用户是透明的、用户在获得加密和数字签名服务的时候,不需要知道PKI是如何管理证书与秘钥的;
3、PKI建立的安全通信信任平台与秘钥管理体系,能够为所有的网络应用提供加密与数字签名服务,实现PKI系统的关键是秘钥的管理;
4、PKI主要任务是确定用户可信任的合法身份。信任关系是通过公钥证书来实现的。公钥证书就是用户身份与所持有公钥的结合,这种结合关系是由可信任的第三方权威机构--认证中心来确认的。
4.2、PKI系统的工作原理
PKI系统工作原理示意图:
1、PKI的认证中心(certificate authority,CA)产生用户之间通信所使用的非对称加密的公钥与私钥对,并存储在证书数据库中。如上图是用户A与用户B的密钥对,用户A与用户B都是KPI注册的合法用户;
2、当用户A与用户B通信时,用户A向C申请下载包含用户A密钥的数字证书。认证中心的注册认证(registration authority,RA)中心在确认用户A的合法身份后,将数字证书发送给用户A。用户A有了加密用的密钥;
3、用户B可通过数字证书的方式获得对应的公钥。在用户A向用户B发送私钥加密和数字签名的文件时,可以用公钥验证文件的合法性。
在PKI系统中,CA中心与RA中心负责用户身份的确认、密钥的分发与管理、证书的撤销。实际的PKI系统中不可能只有一个CA中心,多个CA中心之间必然会存在一个信任关系模型。信任关系模型建立的目的是:确保一个认证机构颁发的证书能够被另一个认证机构的用户信任。
PKI认证是对通信双方实体身份的鉴别,而特权管理基础设施(PMI)认证的作用不是对实体身份进行验证,而是对一个实体在完成某项任务需要具有的权限鉴别。PMI作为PKI的补充,PKI提供用户身份信任的管理平台,PMI提供用户授权信任的管理平台,共同向用户提供身份与特权的全面统一管理的访问控制服务。
5、数字签名技术
数字加密可以防止信息在传输过程中被截获,但如何确定发送人的身份问题需要使用数字签名技术。
5.1、数字签名技术的基本概念
数字签名将信息发送人的身份与信息传送结合起来,可以保证信息在传输过程中的完整性,并提供信息发送者的身份认证,以防止信息发送者抵赖行为的发生。
利用非对称加密算法(如RSA算法)进行数字签名是最常用的方法,数字签名需要实现以下三项主要的功能:
·接收方可以核对发送方对报文的签名,以确定对方的身份;
·发送发在发送报文之后无法对发送的报文和签名抵赖;
·接收方无法伪造发送方的签名。
5.2、数字签名的工作原理
非堆成加密算法(如RSA算法)效率比较低,并且对加密的信息块长度有一定的限制。在使用非堆成加密算法进行数字签名前,通常先试用单向散列函数或称哈希函数(Hashing function)对要签名的信息进行计算,生成信息摘要,并对信息摘要进行签名(RFC1321)。
单向散列函数可以根据一个任意长的报文生成固定长度的散列值,生成的散列值具有唯一性,将散列值比作消息的"指纹"。因此,使用单向散列函数可以检测报文的完整性。
数字签名工作原理示意图:
1、发送方使用单向散列函数对要发送的信息进行运算,生成信息摘要;
2、发送方使用自己的私钥,利用非对称加密算法,对生成的信息摘要进行数字签名;
3、发送方通过网络将信息本身和已进行数字签名的信息摘要发送给接收方;
4、接收方使用发送方的公钥对接收的信息摘要解密;
5、将解密的信息摘要与重新生成的信息摘要进行比较,以判断信息在发送过程中是否被篡改。
目前应用广发的数字签名算法是消息摘要MD5(message digest 5)算法,它是一种散列算法,可以对任意长度的数据生成128位的散列值,也称为不可逆指纹。不能从MD5生成的散列值反向算出原始数据。
MD5并未对任何数据进行加密或修改,只是生成了一个用于判断数据完整性与真实性的散列值。因此,利用数据签名可已验证数据在传输过程中是否被篡改,同时能够确认发送者的身份,防止信息交互中抵赖现象的发生。