数据参考:CISP官方
目录
- 密码学基本概念
- 对称密码算法
- 非对称密码算法
- 哈希函数与数字签名
- 公钥基础设施
一、密码学基本概念
1、密码学形成与发展
发展历程
古典密码学 (1949年之前)
- 主要特点:数据的安全基于算法的保密
近代密码学 (1949~1975年)
- 主要特点:密码学真正成为一门科学
现代密码学 (1976年以后)
- 密码学的新方向一公钥密码学
- 主要特点:解决了密钥分发和管理的问题
古典密码学
- 凯撒密码
ENIGMA转轮机
古典密码介绍
安全性在于保持算法本身的保密性·
- 不适合大规模生产
- 不适合较大的或者人员变动较大的组织
- 用户无法了解算法的安全性
主要分类
- 替代密码
- 置换密码
- 替代密码与置换密码的组合
近代密码学
- 1949年, Shannon (香农) 发表论文" The communicationTheory of Secret Systems",将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。
现代密码学
- 解决了密钥分发、管理问题,并提供更多服务
- 1976年, Diffie& Hellman的“ New directions in Cryptography"提出了非对称密钥密码
2、基本保密通信模型
基本概念:
-
密码编码学:密码编码学是密码学的一个分支,研究如何将信息进行编码和解码的技术和方法。密码编码学旨在保证信息的保密性和完整性,通常涉及加密算法、解密算法和密钥管理等方面的内容。
-
密码分析学:密码分析学是密码学的一个重要分支,研究如何通过分析密码系统的安全性进行破解或攻击的技术和方法。密码分析学涉及研究密码算法的强度、攻击者的攻击策略、密码系统的弱点以及密码算法破解的数学和计算方法等方面的内容。
传统密码学主要用于保密通信,解决了在不安全的通道中安全的传递信息。
现代密码学涵盖了数据处理过程的各个环节 (数据加密,密码分析,数字签名,身份识别,零知识证明,密码分享等)
密码学技术在信息安全中的应用
基本概念
- 明文、密文
- 加密、解密、加密密钥、解密密钥
- ......
3、密码系统安全性
基本概念
- 明文 ( Plain text):不需要任何解密工具就可以读懂内容的原始消息称为明文。
- 密文 ( Cipher text):明文变换成一种在通常情况下无法读懂的内容这种隐蔽后的信息称为密文。
- 加密 ( Encryption):由明文到密文的变换过程称作加密
- 解密 ( Decryption):从密文到明文的变换过程称为解密。
- 加/解密算法:对明文进行加密时采取的一组规则称作加密算法,密文的接收方对密文进行解密时采取的一组规则称为解密算法。
- 密钥 (Keγ):密钥在明文转换为密文或将密文转换为明文的算法中输入的参数。
影响密码系统安全性的基本因素
- 密码算法复杂度、密钥机密性、密钥长度
科克霍夫 ( Kerckhoff) 原则
- 密码体制可以对外公开,对密钥必须保密
- 如果一个密码系统需要保密的越多,可能的弱点也越多
4、密码系统实际安全性
评估密码系统安全性
- 无条件安全
- 计算安全性
- 可证明安全性
密码系统要达到实际安全,就要满足以下准则
- 破译该密码系统的实际计算量无法实现
- 破译该密码系统所需计算时间超过信息的生命周期
- 破译该密码系统的费用超过被加密信息本身的价值
二、对称密码算法
介绍
- 对称密码算法也称传统密码算法、秘密密钥算法或单密钥算法
- 加密密钥和解密密钥相同,或实质上等同
算法优点
- 算法简单、计算量小、加密速度快、加密效率高,适合加密大量数据,明文长度与密文长度相等。
算法缺点:
- 安全信道难以实现
- 安全交换密钥问题及密钥管理复杂
- 无法解决对消息的篡改、否认等问题。·
典型的对称密码算法包括:
- DES、3DES、DEA、AES、RC4、RC5、 Twofish、CAST-256、MARS等
三、非对称密码算法
1、介绍
- 非对称密码算法也称双钥或公钥密码算法。
- 其加密密钥和解密密钥不同,从一个很难推出另一个
应用上两个密钥,一个是可以公开的 (称为公钥),一个是私有的 (称为私钥),这两个密钥组成一个密钥对。使用公钥对数据进行加密,则只有用对应的私钥才能解密。
2、非对称密码算法特点
公钥密码的特点:
-
公私钥成对出现:在公钥密码学中,每个用户拥有一个与其身份相关的公钥和私钥。公钥可公开,用于加密数据;私钥保密,用于解密数据或生成数字签名。
-
公钥加密私钥解密:公钥可以用于加密数据,只有私钥才能解密被加密的数据,因此保证了机密性。
-
私钥加密公钥解密:私钥可以用于加密数据,只有公钥才能解密被加密的数据,用于生成数字签名,验证数据的完整性和身份认证等。
公钥密码学的优点:
-
解决了密钥传递问题:在对称加密中,密钥的传递和管理是一个困难的问题。而公钥密码学通过使用公钥进行加密,私钥进行解密,解决了密钥分发和管理的问题。
-
减少了密钥持有量:在对称加密中,每个用户需要持有其他用户的密钥来进行通信。而在公钥密码学中,每个用户只需要自己的一对公私钥即可完成加密和解密操作,减少了密钥的持有量。
-
提供了数字签名等服务:公钥密码学不仅仅用于保密通信,还提供了数字签名和身份认证等服务。数字签名用于验证数据的完整性和身份认证,可以防止数据被篡改。
公钥密码学的缺点:
-
计算复杂、资源消耗大:与对称密码学相比,公钥密码学的加密和解密过程更加复杂,涉及更多的数学计算,因此计算复杂性较高,对计算资源的需求也相应增大。
-
密文变长:公钥密码学中使用的加密算法通常会导致密文的长度变长,相对于对称密码学来说,传输和存储密文的开销会更大一些。
综上所述,公钥密码学通过解决密钥传递问题和提供数字签名等服务,在信息安全领域具有重要的优势,但也有一些计算复杂性和密文长度增加的缺点需要考虑。
公钥密码典型算法:
-
Merkle-Hellman:Merke-Hellman是一种基于背包问题的公钥密码算法,但已被发现存在安全性问题,因此不再被广泛使用。
-
RSA:RSA是最常用的公钥密码算法之一。它是基于大素数分解困难性的数论算法。RSA可用于加密、解密和数字签名等操作,广泛应用于网络通信和数据保护领域。
-
Rabin:Rabin是一种基于整数因子分解问题的公钥密码算法。它具有和RSA相似的功能,但由于一些特性,它的使用并不像RSA那样广泛。
-
ElGamal:ElGamal是一种基于离散对数问题的公钥密码算法。它提供加密和数字签名功能,并被认为是一种比较安全的算法。
-
ECC(椭圆曲线密码学):ECC是一种基于椭圆曲线数学问题的公钥密码算法。相比于其他算法,ECC在提供相同安全性的情况下,使用更短的密钥长度,从而节省了存储空间和计算资源。
关于公钥密码,有几种常见的误解:
- 公钥密码更安全?公钥密码相对于对称密码,提供了更强的密钥管理和分发方式,但并不意味着公钥密码一定比对称密码更安全。实际的安全性取决于算法的设计、密钥长度、实施方式以及系统的整体安全性。
- 公钥密码算法使得对称密码算法成为了过时技术?公钥密码和对称密码各有优势和适用场景,并不能说公钥密码使得对称密码技术过时。在实际应用中,对称密码仍然被广泛使用,尤其在资源受限的设备和大规模数据传输中具有优势。
- 使用公钥密码实现密钥分配非常简单?尽管公钥密码的密钥分发方式相对简单,但仍然需要确保私钥的安全性和可靠的密钥分发机制。密钥分配涉及各种复杂的问题,如密钥管理、信任建立和密钥更新等。
四、哈希函数与数字签名
1、哈希函数
介绍
- 哈希函数也称单向散列函数,它可以将任意有限长度信息映射为固定长度的值。·它的特点是输入数据的微小改动会导致输出结果的巨大变化,且几乎不可能从输出来逆向计算出输入数据。常用于保证数据的完整性和实现数字签名。
主要用途包括:
-
消息完整性检测:哈希函数可用于验证数据的完整性。发送方对要传输的数据进行哈希计算,并将哈希值一同传递给接收方。接收方收到数据后,再次进行哈希计算,并与传递的哈希值进行比较。如果哈希值一致,说明数据在传输过程中没有被篡改,保证了数据的完整性。
-
数字签名:哈希函数在数字签名中起到重要的作用。对于要签名的数据,发送方首先将其进行哈希计算得到哈希值。然后,发送方使用自己的私钥对哈希值进行加密,生成数字签名。接收方使用发送方的公钥对数字签名解密得到哈希值,并对原始数据进行哈希计算。如果两个哈希值相同,即说明数字签名的有效性和数据的完整性。
安全的哈希函数需要满足以下性质:
- 单向性:对任意给定的码h,寻求x使得在计算上是不可行的;
- 弱抗碰撞性:任意给定分组×,寻求不等于x的y,使得在计算上不可行;
- 强抗碰撞性:寻求对任何的 (x,y) 对,使得在计算上不可行。
目前常用的哈希函数:
MD5算法
- 消息摘要算法 (RFC1321) 由 Ron rivest提出。该算法以一个任意长的消息作为输,输出128bt的消息摘要。
SHA-1算法
- 安全Hash算法 ( Secure Hash Algorithm,SHA) 由美国标准与技术研究所设计并于1993年作为联邦信息处理标准 (FPS180) 发布,修改版于1995年发布 (FPS180-1),通常称之为SHA-1。SHA-1算法的输入是长度小于2^64的任意消息x,输出160位的散列值。
2、数字签名
介绍
- 对数据进行加密、哈希可以避免第三方对数据进行窃取和篡改、破坏,但它无法防止通信双方的互相攻击。通信双方可能存在欺骗和抵赖,一种有效的解决方案是数字签名。
- 数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造。·
- 数字签名是公钥加密技术与数字摘要技术相结合的应用。
数字签名基本特性
-
不可伪造性(Non-repudiation):一旦数字签名被创建,除非拥有签名者的私钥,其他人很难伪造一个合法的数字签名。这意味着数字签名可以被用来验证数据的真实性和完整性,并能防止签名者对签名行为的否认。
- 不可否认性(Non-deniability):使用签名者的公钥,任何人都可以验证数字签名的有效性。由于数字签名的不可伪造性,签名者无法否认自己创建的签名。这使得签名接收者可以确认消息的来源,并防止签名者在后期否认签名行为。
- 保证消息完整性,即消息防篡改:通过数字签名,可以保证消息的完整性和防止篡改。发送方使用私钥对消息进行签名,接收方使用发送方的公钥进行验证。如果验证通过,即表示消息没有被篡改。这为数据传输的安全性和可靠性提供了保障,特别适用于数字通信、电子合同和在线交易等场景中。
应用示例
发送过程:
-
发送方创建消息:发送方准备要发送的消息,并使用哈希函数对消息进行摘要计算,生成消息的哈希值。
-
发送方签名:发送方使用自己的私钥对消息的哈希值进行加密,生成数字签名。
-
发送消息和签名:发送方将消息和数字签名一起发送给接收方。
接收过程:
-
接收方接收消息和签名:接收方接收到发送方发送的消息和数字签名。
-
使用公钥解码签名:接收方使用发送方的公钥对数字签名进行解密,得到解密后的哈希值。
-
验证消息完整性:接收方使用相同的哈希函数对接收到的消息进行摘要计算,生成接收到消息的哈希值。
-
比对哈希值:接收方将解密后的哈希值与自己计算得到的哈希值进行比对。如果两个哈希值相同,说明接收到的消息没有被篡改;如果不同,则意味着消息被篡改。
-
验证签名的有效性:如果哈希值比对成功,接收方可以确信消息的完整性。然后接收方可以使用发送方的公钥对签名进行验证,确认签名的有效性。如果签名验证通过,那么可以确定消息的来源。
通过以上的过程,数字签名可以在发送过程中保证消息的完整性,并在接收过程中验证消息的完整性和来源认证。如果消息被篡改或签名验证失败,接收方将意识到确保消息安全性和完整性的因素不符合预期,并可能拒绝接受该消息。
请注意,在实际应用中,还需考虑密钥管理、数字证书的使用等问题,以确保数字签名的安全性和有效性。
五、公钥基础设施
1、PKI架构
公钥基础设施 ( Public Key Infrastructure,PK),也称公开密钥基础设施
- 按照国际电联 (ITU) 制定的X.509标准,PKI "是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
- PKl是一种遵循标准,利用公钥加密技术提供安全基础平合的技术和规范,是能够为网络应用提供信任、加密以及密码服务的一种基本解决方案。
- PKI的本质是实现了大规模网络中的公钥分发问题,为大规模网络中的信任建立基础。
PKI架构 - 四类实体
CA(Certification Authority):
- CA是指证书颁发机构,负责管理用户数字证书的生成、发放、更新和撤销等工作。
- CA作为权威机构,对持有者进行验证,并签署数字证书,用于证明用户的真实身份。
RA(Registration Authority):
- RA是数字证书的申请、审核和注册中心,同时也是CA的延伸。
- RA负责收集用户的身份信息,并进行验证和审核后将信息传递给CA签发证书。
证书:
- 证书是一种符合特定格式的电子文件,用于识别数字证书持有者的真实身份并提供公钥。
- 它由CA签发,包含持有者的公钥、数字签名、有效期等信息,用于进行认证和加密通信。
终端实体:
- 终端实体是指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备或进程等。
- 终端实体使用证书进行身份验证和安全通信,保证信息的机密性和完整性。
2、数字证书
什么是数字证书
- 一段电子数据,是经证书权威机构CA签名的、包含拥有者身份信息和公开密钥的数据体。
- 数字证书和一对公私钥相对应,而公钥以明文形式放到数字证书中,私钥则为拥有者所秘密掌握。
数字证书的作用
- 经过了证书权威机构CA的签名,确保了数字证书中信息的真实性,数字证书可以作为终端实体的身份证明。
- 在电子商务和网络信息交流中,数字证书常用来解决相互间的信任问题。通过验证数字证书的真实性和完整性,通信双方可以相互确认对方的身份,确保信息的安全性和可靠性。
3、CA( Certification Authority)认证权威
CA是PKI的核心组成部分,PKI体系也往往称为PKCA体系。
证书权威机构CA专门负责数字证书的产生、发放和管理,以保证数字证书的真实可靠。
- 签发数字证书:签发证书、更新证书
- 管理数字证书:撤销、查询、审计、统计
- 验证数字证书:黑名单认证 (CRL)、在线认证 (OCSP)
4、RA:证书注册机构
- 又称数字证书注册中心
- 是数字证书的申请、审核和注册中心,同时也是CA认证机构的延伸。
- 在逻辑上RA和CA是一个整体,主要负责提供证书注册、审核以及发证功能。
5、PKI定义及构成
证书/CRL库
- 证书/CRL库主要用来发布、存储数字证书和证书撤销列表 (Certificate Revocation List,CRL),供用户查询、获取其他用户的数字证书和系统中的证书撤销列表所用。
终端实体
- 指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等。
6、PKI体系工作流程
7、PKI/CA技术的典型应用