应用密码学【第一章】

第一章 密码学概述

1.1 密码学基础

密码学的主要任务

  • 解决信息的保密性和可认证性
  • 保证信息在生成、传递、处理、保存等过程中,不能被未授权者非法地提取、篡改、重放和伪造等

密码学(Crytology)的两个分支

密码编码学(Crytography)

  • 对信息进行代码实现隐蔽信息的学科
  • 主要目的是寻求保护信息保密性()和认证性()的方法
  • 研究重点是算法,包括数据加密算法数字签名算法消息摘要算法及相应的密钥管理协议

这些算法提供两方面的服务:

  1. 直接对信息进行运算,保护信息的安全特性,即通过加密变化保护信息的机密性,通过消息摘要变换检测信息的完整性,通过数字签名保护信息的抗否认性
  2. 提供对身份认证和安全协议等理论的支持

密码分析学(Crytanalysis)

  • 研究分析破译密码的学科
  • 主要目的是研究加密消息的破译或消息的伪造

应用密码学的主要研究内容

  1. 数据加密(Data Encryption)
  • 是一种数学变换,在选定参数(密钥)的参与下,将信息从易于理解的明文加密为不易于理解的密文,同时也可以将密文解密为明文
  • 加密、解密密钥相同的算法称为对称算法,典型的算法由DES、AES等
  • 加密、解密密钥不同的算法称为非对称算法(通常一个公开一个私藏,因此也成为公钥算法),典型的算法由RSA、ECC等
  1. 消息摘要(Message Digest)
  • 是一种数学变换,通常是单向(不可逆)的变换,它将不定长度的信息变换为固定长度(如16字节)的摘要,信息的任何改变(即使是1bit)也能造成摘要面目全非,因此可以通过消息摘要检测消息是否被篡改。
  • 典型的算法由MD5、SHA-1等
  1. 数字签名(Data Signature)
  • 主要是消息摘要和非对称加密算法的组合应用
  • 通过私钥用非对称算法对信息本身进行加密,即可实现数字签名功能
  • 可用于检测不可否认性

为什么?用私钥加密只能用公钥解密,使得接受者可以解密信息,而只有发送方持有私钥以生成该密文,那么就证明了此密文肯定是持有私钥的用户生成的,因此是不可否认的。

  • 由于非对称算法加/解密速度很慢,通常先计算消息摘要,再用非对称加密算法对消息摘要进行加密而获得数字签名
  1. 密钥管理(Key Management)
  • 密钥管理研究密钥的产生、发放、存储、更换和销毁的算法和协议等
  1. 身份认证(Authentication)
  • 验证用户身份与其所声称的身份是否一致的过程
  • 口令认证。(注册时出示用户名和口令)
  • 基于证书认证中心(CA)、公钥算法的认证。(基于可信第三方权威认证机构的保证、复杂的密码协议)
  1. 授权和访问控制(Authorization and Access Control)
  2. 审计跟踪(Auditing and Tracing)
  3. 安全协议(Security Protocol)
  • 安全协议运行在计算机网络或分布式系统中
  • 安全协议是在消息处理环节采用了若干密码算法的协议

1.2 密码体制

1.2.1 密码体制的定义

1.2.2 保密通信系统模型

1.2.3 密码体制分类

  • 单钥密码体制 / 对称密码体制 / 私钥密码体制
  • 优点:具有很高的保密强度;一些常用的对称加密方法明显快于任何当前可以使用的双钥加密方法
  • 缺点:它的密钥必须通过安全可靠的途径传输,密钥管理是安全性的重要因素,难以满足系统的开放性要求。
  • 双钥密码体制 / 非对称密码体制 / 公钥密码体制
  • 优点:增强的私钥的安全性,密钥管理问题相对简单,可适用于开放性环境
  • 缺点:保密强度的人为控制力度不如对称密码体制,加密速度不如单钥加密算法快(尤其在数据量大的时候)

实际的工程中,将非对称和对称密码体制结合起来。

1.3 密码体制分析

1.3.1 攻击密码系统的方法

密码系统可能遭受的两类攻击

  • 被动攻击(Passive Attack)
  • 对一个密码系统采取截获密文进行分析的攻击称为被动攻击
  • 主动攻击(Active Attack)
  • 非法入侵者主动对系统进行干扰,采用删除、更改、增添、重放、 伪造等方法向系统加入假消息

密码攻击

  • 穷举法
  • 对街区的密文依次用各种可解的密钥试译,直到得到有意义的明文
  • 在不变密钥下,对所有可能的明文加密知道与酒后密文一致为止。
  • 分析法
  • 确定性分析法:利用一个或一个已知量(如已知密文或明文-密文对),用数学关系式表示出所求未知量(如密钥)。一只量和未知量的关系视加密和解密算法而定,寻求这种关系是确定性分析法的关键步骤。
  • 统计分析法:利用明文的已知统计规律进行对照比较,从中提取出明文和密文之间的对应或变换信息。

密码分析之所以能够破译密码,最根本原因依赖于明文中的冗余度

目前常见的密码攻击类型

  • 已知密文攻击:密码分析者仅拥有密文和加密算法
  • 已知明文攻击:密码分析者拥有密文和加密算法,还有一些明文消息会和这些消息对应的密文
  • 选择明文攻击:密码分析者能够以某种方式把消息插入明文中,再加密成密文。然后密码分析者寻找密钥,以解密密文
  • 选择密文攻击:此时攻击者可以选择密文,并可以得到相应的明文
  • 选择文本攻击:选择明文攻击 & 选择密文攻击

对密码协议攻击

1.3.2 安全模型

常见的定性安全模型

  • 无条件安全性
  • 多项式安全性
  • “可证明”安全性
  • 实际的安全性
    在这种模式下,如果一个最好的攻击方法需要的计算资源超出安全便捷太多,可认为该密码是安全的
    常根据密码攻击的时间、存储、数据复杂性来测量一个攻击成功的水平
  • 数据复杂度:实施一个工具所需输入的数据量
  • 处理复杂度:处理一个攻击所化的时间
  • 存储复杂度:需要存储的容量

你可能感兴趣的:(应用密码学)