对密码系统的攻击
当今时代,不仅是商业,人类生活的几乎所有方面都由信息驱动。因此,保护有用信息免受攻击等恶意活动的影响已成为当务之急。让我们考虑一下信息通常遭受的攻击类型。
攻击通常根据攻击者执行的操作进行分类。因此,攻击可以是被动的,也可以是主动的。
被动攻击
被动攻击的主要目标是获得对信息的未经授权的访问。例如,对通信信道的拦截、窃听等Behave可以视为被动攻击。
这些Behave本质上是被动的,因为它们既不影响信息,也不破坏通信渠道。被动攻击通常被视为窃取信息。窃取实物商品和窃取信息的唯一区别在于,窃取数据仍然让所有者拥有该数据。因此,被动信息攻击比盗窃货物更危险,因为信息盗窃可能不会被所有者注意到。
主动攻击
主动攻击涉及通过对信息进行某种处理来以某种方式更改信息。例如,
以未经授权的方式修改信息。
发起意外或未经授权的信息传输。
更改身份验证数据,例如与信息关联的发起者名称或时间戳
未经授权删除数据。
拒绝合法用户访问信息(拒绝服务)。
密码学提供了许多工具和技术来实现能够防止上述大多数攻击的密码系统。
攻击者的假设
让我们看看密码系统的普遍环境,以及用于破坏这些系统的攻击类型 -
密码系统周围环境
在考虑对密码系统可能的攻击时,有必要了解密码系统的环境。攻击者对环境的假设和了解决定了他的能力。
在密码学中,对安全环境和攻击者的能力做出以下三个假设。
加密方案的详细信息
密码系统的设计基于以下两种密码算法 -
公共算法- 通过此选项,算法的所有细节都在公共领域,为所有人所知。
专有算法- 算法的细节只有系统设计者和用户知道。
如果使用专有算法,则通过默默无闻来确保安全性。私有算法可能不是最强的算法,因为它们是内部开发的,并且可能不会广泛调查其弱点。
其次,它们只允许封闭群体之间的交流。因此,它们不适合人们与大量已知或未知实体进行通信的现代通信。另外,根据 Kerckhoff 原理,算法最好是公开的,加密强度在于密钥。
因此,关于安全环境的第一个假设是攻击者已知加密算法。
密文的可用性
我们知道,明文一旦被加密成密文,就会被放到不安全的公共渠道(比如电子邮件)上进行传输。因此,攻击者显然可以假设它可以访问密码系统生成的密文。
明文和密文的可用性
这个假设并不像其他假设那么明显。但是,在某些情况下,攻击者可能可以访问明文和相应的密文。一些可能的情况是 -
攻击者影响发送者转换他选择的明文并获得密文。
接收者可能会无意中向攻击者泄露明文。攻击者可以访问从开放通道收集的相应密文。
在公钥密码系统中,加密密钥位于开放域中,任何潜在的攻击者都知道。使用这个密钥,他可以生成相应的明文和密文对。
加密攻击
攻击者的基本意图是破解密码系统并从密文中找到明文。为了获得明文,攻击者只需要找出秘密解密密钥,因为该算法已经在公共领域。
因此,他尽最大努力找出密码系统中使用的密钥。一旦攻击者能够确定密钥,则受攻击的系统将被视为已损坏或受到损害。
根据所使用的方法,对密码系统的攻击分为以下几类 -
仅密文攻击 (COA) - 在这种方法中,攻击者可以访问一组密文。他无权访问相应的明文。当可以从给定的一组密文中确定相应的明文时,COA 就被认为是成功的。有时,可以从这种攻击中确定加密密钥。现代密码系统可以防范纯密文攻击。
已知明文攻击(KPA) - 在这种方法中,攻击者知道密文某些部分的明文。任务是使用此信息解密密文的其余部分。这可以通过确定密钥或经由某种其他方法来完成。这种攻击的最好例子是针对分组密码的线性密码分析。
选择明文攻击 (CPA) - 在这种方法中,攻击者对其选择的文本进行加密。所以他有他选择的密文-明文对。这简化了他确定加密密钥的任务。这种攻击的一个例子是针对分组密码和散列函数应用的差分密码分析。RSA 是一种流行的公钥密码系统,也容易受到选择明文攻击。
字典攻击- 这种攻击有很多变体,所有变体都涉及编译“字典”。在这种攻击的最简单方法中,攻击者建立一个密文字典和他在一段时间内学到的相应明文的字典。将来,当攻击者得到密文时,他会查阅字典来查找相应的明文。
暴力攻击(BFA) - 在这种方法中,攻击者尝试通过尝试所有可能的密钥来确定密钥。如果密钥是8位长,则可能的密钥数量为2 8 = 256。攻击者知道密文和算法,现在他一一尝试所有256个密钥进行解密。如果密钥很长,完成攻击的时间会非常长。
生日攻击- 这种攻击是暴力技术的一种变体。它用于对抗加密哈希函数。当班级中的学生被问及他们的生日时,答案是 365 个可能的日期之一。假设第一个学生的生日是 8 月 3日,那么要找到下一个出生日期是 8 月 3日的学生,我们需要查询 1.25 * √365 ≈ 25 个学生。
类似地,如果哈希函数产生 64 位哈希值,则可能的哈希值为 1.8x10 19。通过针对不同输入重复评估该函数,预计在大约 5.1x10 9 个随机输入后获得相同的输出。
如果攻击者能够找到给出相同哈希值的两个不同输入,则称为冲突,并且该哈希函数被破坏。
中间人攻击(MIM) - 这种攻击的目标主要是公钥密码系统,其中在通信发生之前涉及密钥交换。
主机A想要与主机B通信,因此请求B的公钥。
攻击者拦截此请求并发送他的公钥。
因此,无论主机A向主机B发送什么内容,攻击者都能够读取。
为了维持通信,攻击者用自己的公钥读取数据后重新加密并发送给B。
攻击者将其公钥作为A的公钥发送,以便B将其视为从A获取。
侧通道攻击 (SCA) - 这种类型的攻击不针对任何特定类型的密码系统或算法。相反,它的推出是为了利用密码系统物理实现中的弱点。
定时攻击- 他们利用了不同的计算在处理器上计算需要不同的时间这一事实。通过测量此类时序,可以了解处理器正在执行的特定计算。例如,如果加密时间较长,则说明密钥较长。
功耗分析攻击- 这些攻击与定时攻击类似,只不过功耗量用于获取有关底层计算性质的信息。
故障分析攻击- 在这些攻击中,密码系统中会产生错误,攻击者会研究结果输出以获取有用的信息。
攻击的实用性
这里描述的对密码系统的攻击是高度学术性的,因为其中大多数来自学术界。事实上,许多学术攻击都涉及对环境以及攻击者能力的非常不切实际的假设。例如,在选择密文攻击中,攻击者需要不切实际数量的故意选择的明文-密文对。这可能并不完全实用。
尽管如此,任何攻击的存在都应该引起人们的关注,特别是如果攻击技术有改进的潜力的话。