- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥撤销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel分组密码
- 分组密码的工作模式
- 分组密码的工作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 古典密码
- 密码学 - 反向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 置换密码
- 密码学 - 加密置换密码
- 密码学 - 解密置换密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码加密
- 密码学 - 简单替换密码解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码的实现
- 现代密码
- Base64 编码与解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单字母替换密码
- 密码学 - 单字母替换密码的破解
- 密码学 - 多字母替换密码
- 密码学 - Playfair 密码
- 密码学 - Hill 密码
- 多字母替换密码
- 密码学 - 一次性密码本密码
- 一次性密码本密码的实现
- 密码学 - 置换技术
- 密码学 - 栅栏密码
- 密码学 - 列置换密码
- 密码学 - 密码隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准 (DES)
- 密码学 - 三重 DES
- 密码学 - 双重 DES
- 高级加密标准 (AES)
- 密码学 - AES 结构
- 密码学 - AES 变换函数
- 密码学 - 字节替换变换
- 密码学 - 行移位变换
- 密码学 - 列混淆变换
- 密码学 - 轮密钥加变换
- 密码学 - AES 密钥扩展算法
- 密码学 - Blowfish 算法
- 密码学 - SHA 算法
- 密码学 - RC4 算法
- 密码学 - Camellia 加密算法
- 密码学 - ChaCha20 加密算法
- 密码学 - CAST5 加密算法
- 密码学 - SEED 加密算法
- 密码学 - SM4 加密算法
- IDEA - 国际数据加密算法
- 公钥(非对称)密码算法
- 密码学 - RSA 算法
- 密码学 - RSA 加密
- 密码学 - RSA 解密
- 密码学 - 创建 RSA 密钥
- 密码学 - 破解 RSA 密码
- 密码学 - ECDSA 算法
- 密码学 - DSA 算法
- 密码学 - Diffie-Hellman 算法
- 密码学中的数据完整性
- 密码学中的数据完整性
- 消息认证
- 密码学数字签名
- 公钥基础设施 (PKI)
- 哈希
- MD5 (消息摘要算法 5)
- SHA-1 (安全哈希算法 1)
- SHA-256 (安全哈希算法 256 位)
- SHA-512 (安全哈希算法 512 位)
- SHA-3 (安全哈希算法 3)
- 密码哈希
- Bcrypt 哈希模块
- 现代密码学
- 量子密码学
- 后量子密码学
- 密码协议
- 密码学 - SSL/TLS 协议
- 密码学 - SSH 协议
- 密码学 - IPsec 协议
- 密码学 - PGP 协议
- 图像与文件加密
- 密码学 - 图像
- 密码学 - 文件
- 密码隐写术 - 图像
- 文件加密和解密
- 密码学 - 文件加密
- 密码学 - 文件解密
- 物联网中的密码学
- 物联网安全挑战、威胁和攻击
- 物联网安全的密码技术
- 物联网设备的通信协议
- 常用的密码技术
- 自定义构建密码算法(混合密码)
- 云密码学
- 量子密码学
- 密码学中的图像隐写术
- DNA 密码学
- 密码学中的一次性密码 (OTP) 算法
- 区别
- 密码学 - MD5 vs SHA1
- 密码学 - RSA vs DSA
- 密码学 - RSA vs Diffie-Hellman
- 密码学 vs 密码学
- 密码学 - 密码学 vs 密码分析
- 密码学 - 经典 vs 量子
- 密码学 vs 密码隐写术
- 密码学 vs 加密
- 密码学 vs 网络安全
- 密码学 - 流密码 vs 分组密码
- 密码学 - AES vs DES 密码
- 密码学 - 对称 vs 非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
密码系统攻击
在当今时代,不仅是商业,几乎所有人类生活方面都由信息驱动。因此,保护有用信息免受恶意活动(如攻击)的影响已变得至关重要。让我们考虑一下信息通常会受到哪些类型的攻击。
攻击通常根据攻击者执行的操作进行分类。因此,攻击可以是**被动**的或**主动**的。
被动攻击
被动攻击的主要目标是**未经授权地访问信息**。例如,拦截和窃听通信通道等行为可以视为被动攻击。
这些行为本质上是被动的,因为它们既不影响信息也不破坏通信通道。被动攻击通常被视为窃取信息。窃取实物和窃取信息的区别在于,数据被盗后,所有者仍然拥有该数据。因此,被动信息攻击比窃取货物更危险,因为信息被盗可能不会被所有者注意到。
主动攻击
主动攻击涉及通过对信息进行一些处理来以某种方式更改信息。例如,
以未经授权的方式修改信息。
启动意外的或未经授权的信息传输。
更改身份验证数据,例如与信息相关的发件人名称或时间戳
未经授权删除数据。
拒绝合法用户访问信息(拒绝服务)。
密码学提供了许多工具和技术,用于实现能够防止上述大多数攻击的密码系统。
攻击者假设
让我们看看密码系统周围普遍存在的环境,然后看看用来破坏这些系统的攻击类型:
密码系统周围的环境
在考虑对密码系统的可能攻击时,了解密码系统环境是必要的。攻击者的假设和对环境的了解决定了他的能力。
在密码学中,对安全环境和攻击者的能力作出了以下三个假设。
加密方案的细节
密码系统的设计基于以下两种密码算法:
**公开算法** - 使用此选项,算法的所有详细信息都处于公共领域,每个人都知道。
**私有算法** - 算法的详细信息仅为系统设计人员和用户所知。
对于私有算法,安全性是通过模糊性来确保的。私有算法可能不是最强大的算法,因为它们是在内部开发的,并且可能没有经过广泛的弱点调查。
其次,它们只允许封闭组之间进行通信。因此,它们不适合现代通信,在现代通信中,人们与大量已知或未知的实体进行通信。此外,根据 Kerckhoff 原则,优选公开算法,加密强度取决于 *密钥*。
因此,关于安全环境的第一个假设是**攻击者知道加密算法**。
密文的可用性
我们知道,一旦明文被加密成密文,它就会被放到不安全的公共信道(例如电子邮件)上进行传输。因此,攻击者显然可以假设它**可以访问密码系统生成的密文**。
明文和密文的可用性
这个假设不像其他假设那样显而易见。但是,在某些情况下,攻击者可能**可以访问明文和对应的密文**。一些可能的这种情况是:
攻击者影响发送者转换他选择的明文并获得密文。
接收者可能无意中向攻击者泄露明文。攻击者可以访问从开放信道收集的相应密文。
在公钥密码系统中,加密密钥处于公开领域,任何潜在攻击者都知道。使用此密钥,他可以生成成对的相应明文和密文。
密码攻击
攻击者的基本意图是破坏密码系统并从密文中找到明文。为了获得明文,攻击者只需要找出秘密解密密钥,因为算法已经在公共领域。
因此,攻击者会尽最大努力找出密码系统中使用的密钥。一旦攻击者能够确定密钥,则被攻击的系统被认为是被破坏的或被入侵的。
根据使用的方法,对密码系统的攻击可分为如下几类:
仅知密文攻击 (COA) − 在这种方法中,攻击者可以访问一组密文。他无法访问相应的明文。当可以根据给定的密文集确定相应的明文时,COA 被认为是成功的。有时,可以从此攻击中确定加密密钥。现代密码系统能够抵御仅知密文攻击。
已知明文攻击 (KPA) − 在这种方法中,攻击者知道密文某些部分的明文。任务是使用此信息解密其余密文。这可以通过确定密钥或通过其他方法来完成。这种攻击的最佳示例是针对分组密码的线性密码分析。
选择明文攻击 (CPA) − 在这种方法中,攻击者可以选择要加密的文本。因此,他拥有自己选择的密文-明文对。这简化了他确定加密密钥的任务。这种攻击的一个例子是差分密码分析,它应用于分组密码和哈希函数。流行的公钥密码系统RSA也容易受到选择明文攻击。
字典攻击 − 此攻击有很多变体,所有这些变体都涉及编译“字典”。在这种攻击的最简单方法中,攻击者会构建一个包含他一段时间内学习到的密文和相应明文的字典。将来,当攻击者获得密文时,他会参考字典以查找相应的明文。
暴力攻击 (BFA) − 在这种方法中,攻击者尝试通过尝试所有可能的密钥来确定密钥。如果密钥长度为8位,则可能的密钥数量为28 = 256。攻击者知道密文和算法,现在他依次尝试所有256个密钥进行解密。如果密钥很长,则完成攻击所需的时间将非常长。
生日攻击 − 此攻击是暴力技术的变体。它用于对抗密码哈希函数。当要求班上的学生说出他们的生日时,答案是365个可能的日期之一。假设第一个学生的生日是8月3日。那么,要找到下一个生日是8月3日的学生,我们需要询问大约1.25*√365 ≈ 25个学生。
同样,如果哈希函数产生64位哈希值,则可能的哈希值是1.8x1019。通过反复对不同输入评估函数,预计在大约5.1x109个随机输入后将获得相同的输出。
如果攻击者能够找到两个不同的输入产生相同的哈希值,则这是一个冲突,并且该哈希函数被认为是被破坏的。
中间人攻击 (MIM) − 此攻击的目标主要是涉及密钥交换的公钥密码系统。
主机A想要与主机B通信,因此请求B的公钥。
攻击者拦截此请求并发送其公钥。
因此,主机A发送给主机B的任何内容,攻击者都可以读取。
为了保持通信,攻击者在读取后使用其公钥重新加密数据并发送给B。
攻击者将自己的公钥作为A的公钥发送,以便B将其视为来自A。
旁道攻击 (SCA) − 此类攻击并非针对任何特定类型的密码系统或算法。相反,它是为了利用密码系统物理实现中的弱点而发起的。
定时攻击 − 它们利用这样一个事实:不同的计算在处理器上需要不同的时间来计算。通过测量这些时间,可以了解处理器正在执行的特定计算。例如,如果加密时间更长,则表明密钥很长。
功耗分析攻击 − 这些攻击类似于定时攻击,只是使用功耗来获取有关底层计算性质的信息。
故障分析攻击 − 在这些攻击中,会在密码系统中引入错误,攻击者会研究由此产生的输出以获取有用的信息。
攻击的实用性
此处描述的对密码系统的攻击在很大程度上是学术性的,因为其中大多数来自学术界。事实上,许多学术攻击都涉及对环境以及攻击者能力的相当不现实的假设。例如,在选择密文攻击中,攻击者需要数量不切实际的故意选择的明文-密文对。这可能根本不实用。
尽管如此,任何攻击的存在都应该引起关注,特别是如果攻击技术有改进的潜力。