文章横幅PC版
文章横幅iPad版
文章横幅手机版

常用的密码分析攻击有哪些

TIME:2019-08-06 17:02  click: 212 次 来源: 未知

密码分析的实质就是分析者在不知道密钥的情况对所截获的密文或明一密文对进行分析、假设、推断和证实等工作来恢复明文,或者是首先试图找出密钥,进而利用解密算法恢复明文。

密码分析者攻击密码的方法主要有以下三种:

(1)穷举攻击

所谓的穷举攻击意味着密码分析者试图解密通过顺序尝试所有可能的密钥对获得的密文,直到获得正确的明文;或者为所有可能的明文 加秘密选择一个确定的密钥对,直至得到所获得的密文,从而得知所选密钥就是正确的密钥。显然,理论上,对于任何有用的密码,只要有足够的资源,你就可以使用详尽的攻击来破解它,平均而言,通过详尽的攻击来破译密码必须尝试所有可能密钥的一半。

(2)数学攻击

所谓数学攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。对于基于数学的密码,设计密码本质上意味着设计数学函数,解密密码本质上解决了数学问题。如果问题在理论上是不可计算的,那么密码在理论上是安全的。如果这个问题在理论上是可测量的,那么密码实际上是安全的或计算上安全的,因为计算复杂性太大而不能实际计算。到目前为止,在基于数学的密码中,只有“一次一密”密码是理论上安全的密码。可见,数学攻击是对基于数学的密码的主要威胁。

差分分析是一种数学攻击,差分密码分析是最有效的攻击和最重要的方法之一,侧信道攻击包括功耗分析,时间分析和故障攻击。实践证明,对于分组密码攻击,差分分析的速度比穷举攻击的速度要快得多。

差分通过分析明文对的差分值,密码分析的基本原理是:密文对的差分值。效果是恢复密钥或密钥的一些位。

(3)物理攻击

所谓物理攻击是指密码分析者根据密码系统或密码芯片分析来破译密码。物理攻击的理论依据是,任何密码算法在以硬件的形式工作时,必然与工作环境发生物理交互,相互作用,相互影响。于是,攻击者就可以主动策划实施并检测这种交互、作用和影响,从而获得有助于密码分析的信息。这类信息被称为侧信道信息,基于侧信道信息的密码攻击称为侧信道攻击或侧信道分析。

侧信道分析介绍

密码算法要走向应用,只有变成硬件形态或软件形态,而且还要把这种软硬件模块嵌入到应用系统中去。由于硬件模块形态具有速度快、安全管理方便的优点,所以许多重要的密码应用都采用硬件方式实现密码算法。

当把密码芯片嵌入到应用系统中之后,密码芯片就成为应用系统的一个组成部分,它必然与其工作环境发生物理交互,相互作用,相互影响。于是,攻击者就可以主动策划实施并检测这种交互,作用相影响,从面获得有助于密码分析的信息,进面对密码芯片实施攻击,我们称这类玫击为侧信道分析。

侧信道分析包括功耗分析、时间分析和故障分析。

功耗分析

密码设备在运行时进行加密解密操作都会消耗能量,其功耗与进行的操作和被操作的数据有关。使用在加密设备运行期间泄漏的功耗数据进行分析,获取密钥或部分密钥的方法称为功耗分析。

功耗分析主要通过分析密码设备运行时的能量消耗,通过分析来推导出密码设备进行的操作以及操作涉及的秘密中间变量。

时间分析

时间分析主要通过采集密码算法处理不同输入的执行时间差异,分析时差与键的区别实现秘密密钥破解。最初的时间分析研究主要针对简单的安全芯片,如智能卡。一方面是由于产业界对此类芯片安全的急切需求;另一方面是在这些平台上运行的密码算法执行时间能够容易被准确测量且噪声较小。当时人们普遍认为时间分析不能适用于PC、Wcb服务器等计算机系统,在这些环境下密码算法的执行时间容易受到系统上运行的其他进程的影响,使得计时精确。

根据时间差异产生来源不同,可将时间分析分为两类,一类是对密码的某种实现算法存在缺陷导致的时间泄漏进行的密钥分析,另一类是对密码算法运行平台存在缺陷导致的时间泄漏进行的密钥分析。

在各种侧信道分析方法中,功耗分析、电磁分析、故障分析等均需物理上接触或接近密码设备,需要专用的测试计量仪器:时间分析则主要通过调用系统的时间戳来实现,既可在本地也可在远程网络环境中实施,威胁较大。近年来,随着时间信息采集和预处理技术的发展,时间分析在远程环境下的可行性将逐渐增强,现实威胁越来越大。

密码系统运行时间信息泄漏主要原因在于密码算法的优化或运行平台的优化。密码系统在加解密过程中,由于性能优化(如模幂运算和查找S盒操作使用了查找表的快速实现)分支运算、条件语句, Cache命中或失效、运行时间不固定的处理器指令(如乘除法)或者协议漏洞等,会导致不同输人执行时间存在差异,而这些差异常是同密钥直接相关的,所以攻击者可采集密码算法对大量样本加解密的执行时间,通过分析时间差异同密钥之间的相关性来实现获取密钥。

时间分析具体步骤如下:

步骤1选择明文,向密码系统发送密码服务请求,记录当前时间截。

步骤2获取密文,同时记录得到密文的时间,减去之前发送明文的时间戳,获得加密消耗的总时间。

步骤3对采集到的时间进行预处理。

步骤4利用时间信息同秘密信息的相关性,恢复秘密信息。

故障分析

一般情况下,运行密码算法的硬件设备或者软件程序均能正确地执行各种密码运算,在干扰的情况下,加密操作模块可能具有寄存器故障或操作错误,使用这些故障行为或错误消息恢复密钥的方法称为加密失败分析。

密码设备大多基于电子技术,界面比较简单,更容易受到外部干扰,使得故障分析已成为最有效的旁路分析方法之一。目前,差分故障分析方法陆续被推广至公钥密码、分组密码和序列密码,其实现途径更加多样化,分析代价也大大降低,被视为对密码算法的现实威胁之一。

注入故障的方法主要有瞬时电压跳变,外部时钟频率突变和激光射线等。

 

上一篇:常用的分组密码算法和特点 下一篇:密码协议设计原则