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