文章目录
密码学基本概念
密码学的形成与发展
- 古典密码学(1949年以前)
主要特点:数据安全基于算法的保密
- 近代密码学(1949~1979年)
主要特点:密码学真正成为一门科学
- 现代密码学:(1976年以后)
密码学的新方向---公钥密码学
主要特点:解决了密钥分发和管理问题
古典密码
凯撒密码
安全性不在保持算法本身的保密性
- 不适合大规模生产
- 不适合较大的或者人员变动大的组织
- 用户无法了解算法的安全性
主要分类
- 替换密码
- 置换密码
- 替换密码与置换密码的组合
ENIGMA转换机
近代密码学
1949年,Shannon (香农)发表论文"The Communication Theory of Secret Systems"(《保密系统的信息理论》),将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。
解决了密钥分发和管理的问题
1976年,Diffie & Hellman的“New Directions in Cryptography”提出了非对称密钥密码
基本保密通信模型
- 基本概念
- 密码编码学
- 密码分析学
传统密码学主要用于保密通信,解决了在不安全的通道中安全的传递信息。
现代密码学涵盖了数据处理过程的各个环节(数据加密,密码分析,数字签名,身份识别,零知识证明,密码分享等)
- 明文(Plaintext):不需要任何解密工具就可以读懂内容的原始消息称为明文。
- 密文(Ciphertext):明文变换成一种在通常情况下无法读懂的内容,这种隐蔽后的信息称为密文。
- 加密(Encryption):由明文到密文的变换过程称作加密。
- 解密(Decryption):从密文到明文的变换过程称为解密。
- 加/解密算法:对明文进行加密时采取的一组规则称作加密算法,密文的接收方对密文进行解密时采取的一组规则称为解密算法。
- 密钥(Key):密钥在明文转换为密文或将密文转换为明文的算法中输入的参数。
密码学技术在信息安全中的应用
密码系统安全性
影响密码系统安全性的基本因素
密码算法复杂度、密钥机密性、密钥长度
科克霍夫(Kerckhoff) 原则
- 密码体制可以对外公开,对密钥必须保密;
- 如果一个密码系统需要保密的越多,可能的弱点也越多
评估密码系统安全性
- 无条件安全
- 计算安全性
- 可证明安全性
密码系统安全性(实际)
- 密码系统要达到实际安全,就要满足以下准则
- 破译该密码系统的实际计算量无法实现
- 破译该密码系统所需计算时间超过信息的生命周期
- 破译该密码系统的费用超过被加密信息本身的价值
对称密码
- 也称传统密码算法、秘密密钥算法或单密钥算法
- 加密密钥和解密密钥相同,或实质上等同。
算法优点
算法简单、计算量小、加密速度快、加密效率高、适合加密大量数据、密钥短、明文长度与密文长度相等。
算法缺点
- 安全信道难以实现
- 安全交换密钥问题及密钥管理复杂
- 无法解决对消息的篡改、否认等问题。
典型的对称密码算法包括:DES、3DES、IDEA、AES、RC4、RC5、Twofish、 CAST-256、 MARS等
非对称密码算法
基本概念
也称双钥或公钥密码算法。其加密密钥和解密密钥不同,从一个很难推出另一个
两个密钥,一个是可以公开的(称为公钥) ,可以像电话号码一样进行注册公布;一个是私有的(称为私钥),只有拥有者才知道;这两个密钥组成一个密钥对。使用公钥对数据进行加密,则只有用对应的私钥才能解密。
公钥密码的特点
- 公私钥成对出现
- 公钥加密私钥解密——机密性
- 私钥加密公钥解密——数字签名
- 公钥密码的优点:
解决密钥分发和管理的问题
- 大大减少了密钥持有量
- 解决了不可否认的问题
- 提供了对称密码技术无法或很难提供的服务(数字签名)
公钥密码的缺点
- 计算复杂、 耗用资源大
- 非对称会导致得到的密文变长
- 非对称密码算法特点
公钥密码典型算法
Merkle-Hellman、RSA、 Rabin、 ElGamal、ECC
关于公钥密码,有几种常见的误解
公钥密码更安全?
公钥密码算法使得对称密码算法成为了过时技术?
使用公钥密码实现密钥分配非常简单?
哈希与数字签名
哈希函数
哈希函数也称单向散列函数,它可以将任意有限长度信息映射为固定长度的值。
主要用途:消息完整性检测和数字签名
安全的哈希函数需要满足以下性质
- 单向性:对任意给定的码h,寻求x使得在计算上是不可行的;
- 弱抗碰撞性:任意给定分组x,寻求不等于x的y,使得在计算上不可行;
- 强抗碰撞性:寻求对任何的(x, y)对,使得在计算上不可行
目前常用的哈希函数
- MD5算法
消息摘要算法(RFC1321) 由Ron Rivest提出。 该算法以一个任意长的消息作为输入,输出128bit的消息摘要。
- SHA-1算法
安全Hash算法(Secure Hash Algorithm, SHA) 由美国标准与技术研究所设计并于1993年作为联邦信息处理标准(FIPS180) 发布,修改版于1995年发布(FIPS 180-1),通 常称之为SHA-1。SHA-1算法的输入是长度小于264的任意消息x,输出160位的散列值。
数字签名
- 对数据进行加密、哈希可以避免第三方对数据进行窃取和篡改、破坏,但它无法防止通信双方的互相攻击。通信双方可能存在欺骗和抵赖,一种有效的解决方案是数字签名。
- 数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造。
- 数字签名是公钥加密技术与数字摘要技术相结合的应用。
数字签名基本特性
- 不可伪造性
- 不知道签名者私钥前提下,很难伪造一个合法的数字签名;
- 不可否认性
- 对普通数字签名,任何人可用签名者公钥验证签名的有效性。由于签名的不可伪造性,签名者无法否认自己的签名。此性质使签名接收者可确认消息的来源;
- 保证消息完整性,即消息防篡改。
一侧为签名,一侧为验证过程。
发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;
收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签名的电子文件传输成功。
1、数字签名的签名过程
数字签名的操作过程需要有发方的签名数字证书的私钥及其验证公钥。 具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
2、数字签名的验证过程
接收方收到发方的签名结果后进行签名验证,其具体操作过程如下: 接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。
3、数字签名的实现方法
基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密得原文。
其详细过程如下:
(1)发方A将原文信息进行哈希运算,得一哈希值即数字摘要MD;
(2)发方A用自己的私钥PVA,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;
(3)发方A用对称算法DES的对称密钥SK对原文信息、数字签名SD及发方A证书的公钥PBA采用对称算法加密,得加密信息E;
(4)发方用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;
(5)发方A将加密信息E和数字信封DE一起发送给收方B;
(6)收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;
(7)收方B用对称密钥SK通过DES算法解密加密信息E,还原出原文信息、数字签名SD及发方A证书的公钥PBA;
(8)收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD;
(9)收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD;
(10)将两个数字摘要MD和MD进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名。这样就做到了敏感信息在数字签名的传输中不被篡改,未经认证和授权的人,看不见原数据,起到了在数字签名传输中对敏感数据的保密作用。
公钥基础设施
PKI架构
公钥基础设施( Public Key Infrastructure,PKI),也称公开密钥基础设施
- 按照国际电联(ITU)制定的X.509标准,PKI“是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。”
- PKI是一种遵循标准,利用公钥加密技术提供安全基础平台的技术和规范,是能够为网络应用提供信任、加密以及密码服务的一种基本解决方案。
- PKI的本质是实现了大规模网络中的公钥分发问题,为大规模网络中的信任建立基础。
PKI架构——四类实体
CA(证书授权中心)
- PKI管理实体和服务的提供者
- 管理用户数字证书的生成、发放、更新和撤销等工作。
RA
- 是数字证书的电请、审核和注册中心,同时也是CA认证机构的延伸
证书
- 符合一定格式的电子文件
- 用来识别电子证书持有者的真实身份
终端实体
- 指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等
数字证书
- 什么是数字证书
- 一段电子数据,是经证书权威机构CA签名的、包含拥有者身份信息、有效时间和公开密钥的数据体。
- 数字证书和一对公私钥相对应,而公钥以明文形式放到数字证书中,私钥则为拥有者所秘密掌握。
- 数字证书的作用
- 经过了证书权威机构CA的签名,确保了数字证书中信息的真实性,数字证书可以作为终端实体的身份证明。
- 在电子商务和网络信息交流中,数字证书常用来解决相互间的信任问题。
CA ( Certification Authority )认证权威
- CA是PKI的核心组成部分,PKI体系也往往称为PKI/CA体系。
- 证书权威机构CA专门负责数字证书的产生、发放和管理,以保证数字证书的真实可靠。
- 签发数字证书:签发证书、更新证书
- 管理数字证书:撤销、查询、审计、统计
- 验证数字证书:黑名单认证(CRL) 、在线认证(OCSP)
RA:证书注册机构
- 又称数字证书注册中心
- 是数字证书的申请、审核和注册中心,同时也是CA认证机构的延伸。
- 在逻辑上RA和CA是一个整体,主要负责提供证书注册、审核以及发证功能。
证书/CRL库
- 证书/CRL库主要用来发布、存储数字证书和证书撤销列表(Certificate Revocation List, CRL),供用户查询、获取其他用户的数字证书和系统中的证书撤销列表所用。
终端实体
指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等。
PKI体系工作流程
PKI/CA技术的典型应用