一、密码学的术语、分类
1、术语
密码体制:明文空间、密文空间、密钥空间、加密算法和解密算法五部分构成。
密码协议:有时称为安全协议,指以密码学为基础的消息交换的通信协议,目的是在网络环境
中提供各种安全服务,密码协议和密码算法同等重要,是密码学研究的两大课题。
密码系统:用于加密解密的系统,加密时,通过输入明文和密钥,加密后输出密文;解密时,通
过输入密文和解密密钥,输出明文。一个密码系统,由信源、加密变换、解密变换、信宿和攻击
者组构成。
柯克霍夫原则:数据的安全基于密钥而不是算法的保密。系统的安全信,取决于密钥,对密钥保
密,对算法公开。柯克霍夫原则是现代密码学设计的基本原则。
2、分类
2.1、按时间划分:
古典密码、现代密码;古典密码以字符为基本加密单元,现代密码:以信息块为基本加密单元。
2.2、按密钥划分:
受限制的算法、基于密钥的算法;
受限制的算法:算法的保密性基于保持算法的秘密,一般不建议;
基于密钥的算法:算法的保密基于密钥的保密,正是现代密码学的主要特征。
2.3、按密码体制划分:
对称密码体制、非对称密码体制;
对称密码体制:加密与解密密钥相同,
非对称密码体制:加密密钥和解密密钥不同,密钥分为公钥与私钥,公钥对外公开,
私钥对外保密。
2.4、按明文的处理方法划分:
分组密码、流密码;
分组密码:用同一密钥算法对每一块加密,输出的也是固定长度的密文,多用于网络加密。
流密码:又称序列密码,加密时每次加密一位或一个字节的明文,一般在手机系统中使用,
比较著名的流密码有RC4.
二、散列函数
1、概念
在对称密码体制中,以流密码实现的方式,需要验证信息的完整性,这种技术
就是散列函数提供的消息认证技术。
2、作用
散列函数主要作用不是完成数据的加密和解密的,只用来验证数据的完整性,
通过给数据创建“数字指纹”(散列值)如果消息在传递过程中被篡改,则该消息不能与
获得的数字指纹匹配。
3、特性:散列函数特性
1、消息的长度不受限制。
2、对于给定的消息,其散列值计算是很容易的。
3、如果两个散列值不相同,则这两个散列值的原始消息也不同,这个特性使得散列函数有确定性的结果。
4、散列函数的运算过程是不可逆的,这个特性称为函数的单向性。
5、对于一个已知的消息及其散列值,要找到另一个消息使其获得相同的散列值是不可能的,这种特性称为抗弱碰撞性,防止信息被伪造。
6、任意两个不同消息的散列值一定不同,这个特性称为抗强碰撞性。
4、应用
散列函数广泛用于信息完整性的验证,是数据签名的核心技术,散列函数的常用算法有MD(消息摘要算法)
、 SHA(安全散列算法)、以及Mac(消息认证码算法)
三、数字签名
1、概念
通过散列函数可以保证数据内容的完整性,但这远远不够,此外还需要保证数据来源的可认证性和数据发送行为的不可否认性。
完整性、可认证性和不可否认性正是数字签名的主要特征。
数字签名离不开非对称密码体制,签名算法受私钥控制,且由签名者保密;
验证算法受公钥控制,且对外公开。
2、数字签名满足以下三个条件
1、签名者任何时候都无法否认自己曾经签发的数字签名
2、信息接收者能够验证和确认收到的数字签名,但任何人无法伪造信息发送者的数字签名
3、当收发双方对数字签名的真伪产生争议时,通过仲裁机构(可信赖的第三方)进行仲裁。
3、数字签名规范
私钥用于签名,公钥用于验证,私钥和公钥成对出现,公钥加密的消息只能用私钥来解,
私钥加密的消息只能由公钥来解。
4、单向认证和双向认证
1、单向认证:由于算法、密钥公开,任何一个已获得公钥的窃听者都可以截获到乙方发送的消息,
替换成自己的消息发送给甲方,而甲方无法辨别消息是否来自乙方。这种认证方式属于单向认证。
2、双向认证:如果有两套公私钥,甲乙双方都对数据进行签名及验证就可以避免这一问题,这种
认证方式属于双向认证。
四、PKI加密和签名
1、签名
使用私钥加密,公钥解密
2、加密
用公钥加密,私钥解密
3、使用情景
如果A想给B发一个安全的保密的数据,那么应该AB各自有一个私钥,
A先用B的公钥加密这段数据,再用自己的私钥加密这段加密后的数据。
最后再发给B,这样确保了内容即不会被读取,也不会被篡改。
加解密过程:
1. A用B的公钥加密数据 --加密
2. A用自己的私钥加密这段加密后的数据 --签名
3. B用A的公钥解密 --验证签名
4. B用自己的私钥解密数据 --解密
五、公钥基础设施和密码学的未来
1、概念
公钥基础设施(Public Key Infrastructure,PKI)是一个基于X.509的、用于创建、分配和撤回证书的模型。
PKI能为所有网络应用提供加密和数字签名服务。
PKI由公钥密码技术、数字证书、证书认证中心和关于公钥的安全策略等基本成分共同组成,对密钥和证书进行管理。
2、PKI的标准
RSA公司定义了PKCS(Public Key Cryptography Standard,公钥加密标准),并定义了许多
加密组件,如数字签名和证书请求格式:IETF(Internet Engineering Task Force,互联网
工程任务组)和PKIWG(Public KeyInfrastructure Working Group)PKI工作组,PKCS共
有15项标准。
比较常用的标准:
PKICS#7:加密消息语法标准
PKICS#10:证书请求语法
PKICS#12:个人信息交换语法标准
3、PKI系统的组成
PKI系统由认证中心(Certifiate Authority,CA)、数字证书库(Certificate
Respository,CR)、密钥备份及恢复系统、证书作废系统、应用程序接口五部分组成。
认证中心CA和数字证书库CR是PKI技术的核心。
1、认证中心CA功能:
证书发放、证书更新、证书撤销、证书验证
2、数字证书库CR功能:
存储已签发的数字证书及公钥、包括LDAP(Light Direct Access Protocol轻量级目录访
问协议)目录服务器和数据库。
4、数字证书
1、概念
数字证书是网络用户身份的标识,包括ID、公钥和颁发机构的数字签名等内容。其形式主要有X.509公钥证书、SPKI(Simple
Public Key Infrastructure,简单PKI)证书、PGP(Pretty Good Privacy)证书和属性(Attribute)证书。
其中X.509证书最为常见,通常所说的数字证书就是指X.509公钥证书。
2、PGP、OpenPGP与GPG
PGP使得一般人可以很容易的对数据文件、邮件进行加密,其主要特点是在非安全的网络环境下,使得从未谋面的人取得信任。相比与PKI,
PGP不需要HTTPS、也不需要CA,仅仅需要一个可信赖的密钥托管服务器。
由于PGP的广泛应用,形成一个最终的开放标准-OpenPGP。
GPG是实现了OpenPGP的免费开源程序。
3、X.509和PGP的区别
X.509 依赖CA的信任链,即群签名,PGP不依赖于CA,依赖可信任的环签名。
X.509主要应用于可信任的、安全的环境中,如电子商务平台等;PGP可用于不安全的网络环境中,如邮件等。
PGP依赖于非公钥体制,即公钥对数据加密,私钥对数据解密。
PKI是通过非公钥体制进行密钥交换,转而使用对称密钥完成加密操作。
4、密码学的未来
1998年DES方式加密的密钥被破解。
2004年破解了MD5、HAVAL-128、MD4和RIPEMD被山东大学王晓云教授团队破解,MD5的破解预示着SHA-1算法的末日。
MD5和SHA-1的破解,动摇了目前数字签名的理论根基,从理论上说数字签名可以伪造。
密码学在信息安全中越来越重要,已成为信息安全中不可或缺的一部分。密码学的发展以密码算法被破解而引发。