密码学的术语、分类和体制(笔记)

代码之神 2019-06-26

一、密码学的术语、分类

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的破解,动摇了目前数字签名的理论根基,从理论上说数字签名可以伪造。
   密码学在信息安全中越来越重要,已成为信息安全中不可或缺的一部分。密码学的发展以密码算法被破解而引发。

相关推荐