APP下载

混合可重构的DES算核高效能口令恢复方案

2020-11-05周清雷斯雪明

计算机工程与科学 2020年10期
关键词:掩码口令解密

李 斌,周清雷,斯雪明,冯 峰

(1.郑州大学信息工程学院,河南 郑州 450001;2.数学工程与先进计算国家重点实验室,河南 郑州 450001)

1 引言

数据加密是信息安全的重要手段,密码技术是网络安全与保密的核心和关键。DES(Data Encryption Standard)作为最有代表性的分组加密算法,包括DES Crypt和3DES,对系统性能要求低,易于软硬件加速实现,被应用于各种保密通信之中[1,2],如网络协议、数据加密、智能卡加密、系统加密等。为有效恢复出以DES为核心加密的数据,提供电子取证,并测试DES的各种破译攻击,提供安全性研究,对DES算法的计算加速和恢复策略,显得至关重要。在国外,对DES算法的恢复定制了专用的crack.sh平台和设备(https:∥crack.sh;https:∥www.sciengines.com),Hashcat(https:∥hashcat.net/hashcat)提供了各种DES密码算法的恢复计算。在国内,也出现了各种DES专用恢复设备,其以ASIC实现的方式(http:∥www.jn-ljjx.com)极大提高了DES的性能。其次,针对DES算法的高速并行攻击,利用FPGA可灵活实现多种结构,兼顾性能和功耗[3 - 5],具有明显优势。最后,为了提高安全性,DES经常与RSA、Hash函数等联合使用,包括含有盐值Salt的DES Crypt和3DES算法,这也给为恢复加密数据带来了一定困难。

显然,对于DES的计算,CPU和GPU只能依靠多核心和频率的提升来加速,且GPU功耗较高。而ASIC仅能支持单个DES应用的恢复,缺失了一定灵活性。其次,DES算法应用众多,需要灵活的架构和不同恢复策略支持,以提高恢复效率。最后,对于联合使用多种密码算法的DES加密机制,是否可绕过部分过程,直接对DES进行破解,并据此恢复其他数据,也亟待研究。

拟态计算依托可重构技术,通过剖析应用的计算特征,依据尽可能高效的原则,构建出合适的处理结构,并随着处理负荷的变化,主动进行结构变更,以达到“应用决定结构,结构决定效能”的目的。为进一步提高DES的性能和可扩展性,结合拟态计算的思想,本文提出了一种混合可重构的DES算核高效能口令恢复方案。通过对DES算法的深入剖析,形成可重构的算核[6],并以全局异步局部同步GALS(Global Asynchronous Local Synchronous)架构对算核进行互连,建立混合结构,提高了计算速度、能效比和灵活性。其次,优化并设计了高速口令生成算法,以匹配DES的高速口令输入需求,并针对不同应用提出了各种恢复策略,提高了恢复效率。最后,通过实验对比了不同计算部件DES算法的性能,并验证了本文方案的有效性。

2 DES应用及算法分析

2.1 DES应用场景

(1)网络协议。目前大多数网络协议中仍以DES为核心加密算法,如LM、NTLM v1、Kerberos 5[7]、VPN、IPSec、FTD等协议。以VPN为例,目前仍有60%以上的VPN使用PPTP隧道协议[8],以DES进行通信加密传输。但是,国内出现了大量的“翻墙”软件,有自由门、极速安全VPN、蝙蝠VPN等。不法之徒利用这些网络协议,通过私自架设服务器,在国内传播不良信息,并将重要数据备份在国外服务器上,给电子取证和犯罪审查造成了巨大的阻碍。

(2)数据恢复。对于DES分组加密算法,有ECB、CBC、CFB、OFB这4种常用加密模式。其中,由于ECB加密模式简单,且利用并行化处理,目前被广泛使用。作为DES解密数据的突破口,ECB加密模式也是本文研究的重点。当获取到DES密文后,可以采用并行逆向计算的方式[9],尝试用各种不同的口令恢复同一数据段,并以解析到明文输出为判断条件,直到找到唯一正确的密钥。显然,这对DES加密数据的安全性及其变种改进算法的抗攻击性测试具有重要意义。

(3)系统恢复。DES算法在智能卡[10]、芯片[11]和操作系统[12]等领域仍被广泛应用着,以此来实现关键数据的保密,如IC卡与POS间的双向认证、金融交易系统和Linux/Unix系统登录认证。通过调试跟踪工具,如OllyDBG、DDMS等,可以跟踪软件的内存读写和程序执行状态,进而获取有用信息,为恢复加密数据提供支持。对于智能卡和芯片,目前则更多是依赖差分功耗分析DPA(Differential Power Analysis)[13]进行破解。但是,DPA也需要输入n次口令,并对每次产生的功耗进行分析,所以DES的计算性能至关重要。

2.2 DES算法分析

DES算法是一种单密钥分组密码算法,以64 bit的密钥对64 bit的数据分组进行加密,输出64 bit的密文。明文数据块首先经过初始置换IP,再使用16个扩展后的子密钥进行16轮迭代编码,最后经过一个逆初始置换IP-1,输出密文,可表述如下:DESm=IP(m)→Round(K0),Round(K1),…,Round(K15)→IP-1。DES解密过程与加密类似,只需要对迭代过程逆序使用子密钥即可,第1轮使用K15,第2轮使用K14,依次类推,即有:DES-1m=IP(m)→Round(K15),Round(K14),…,Round(K0)→IP-1。DES加/解密流程如图1所示。

Figure 1 DES encryption/decryption process图1 DES加/解密流程

DES加密的核心是16轮迭代循环,64 bit明文在经过初始置换后,被分为L0和R0共2个32 bit的数据块;然后R0与子密钥K0进行乘积变换,得到F(R0,K0);再与L0异或得到L0⊕F(R0,K0),随后使用Ln=Rn-1,Rn=Ln-1⊕F(Rn-1,Kn-1)重复迭代过程。其中,F包括:扩展函数E、按位异或、S盒运算和置换函数P这4个功能模块。对于密钥扩展,56 bit的密钥被分成2个28 bit的半密钥,每个半密钥经过循环左移处理,并通过选择置换,产生48 bit的子密钥。DES单轮加密流程如图2所示。Rn-1先由扩展函数E扩展到48 bit,然后再与扩展后的48 bit的子密钥Kn-1按位异或,得到8组6 bit的数据。这8组数据再进入6 bit输入4 bit输出的S盒S1,S2,…,S8,得到32 bit的数据。最后经过置换函数P,得到32 bit的输出。

Figure 2 Single round encryption process图2 单轮加密流程

由以上分析可以看出,DES算法具有如下特点:(1)数据通路简单,都是位级的线性变换;(2)16轮核心迭代完全相同,且每轮迭代均为线性变换;(3)DES是分组密码算法,参与运算的数据块前后没有相关性[14],因而可以将循环展开,形成流水线;(4)DES每轮参与运算的子密钥可以提前生成。

虽然基于FPGA对DES算法有了众多优化[15-17],但其仅优化了算法本身,并未对算法在各种应用场景中的使用进行分析。为进一步提高DES算法的应用灵活性和可扩展性,本文结合拟态计算算核的设计思想,以有限规模的硬件解决DES算法多领域应用,并采用全局异步局部同步GALS的架构,实现芯片级的多维可重构,进而高效地实现DES各种应用的口令恢复。

3 方案优化与设计

3.1 算核模型

拟态计算以算核为基本功能单元,其规模受解算目标的应用驱动,可按应用所需重构成不同数量、粒度和功能的算核,进而可获得更高的单元利用率,兼顾高效计算和灵活性。因此,算核是一种计算粒度可变的计算结构,对于提高计算系统的效能和资源利用率具有重要意义。

算核的计算模型可表示为:CK=(VE,ED,PR,ME,CO,GR),其中VE={ve1,ve2,…,ven},表示算核的集合;ED={edij|edij=vei,vej,vei,vej∈VE,1≤i,j≤n},称为有向边集,表示算核之间数据依赖先后关系及串并行关系;PR={pr1,pr2,…,prn},代表算核的串行计算量;ME={me1,me2,…,men},代表算核所需内存容量或硬件寄存器资源;CO={co1,co2,…,con},代表每条边eij上的通信量;GR={gr1,gr2,…,grn},表示计算粒度,粒度大小受输入输出数据和串、并行实现方式影响。

图3所示为算核重构的示意图。其中I1~I5为输入算核,A1~A4、D1~D4、F1~F4为中间算核,O1~O5为输出算核。通过每条路径上算核的重构连接得到了一定的运算功能。那么,针对DES口令恢复算法,以片内逻辑块、IP核、功能函数、算法等形成算核,利用FPGA细粒度可重构器件,通过触发器FF(Flip Flop)和查找表LUT(Look Up Table)等实现串并混合的计算结构,可获取更好的可扩展性和执行效率。

Figure 3 Reconstruction of the computing kernel图3 算核重构

3.2 整体架构

DES口令恢复算法主要由口令生成、DES算核和对比逻辑构成,并由主控模块与上位机通信,完成任务的初始化与配置。其中DES算核支持动态可重构,可根据用户配置信息,重构成不同功能和结构的算核。同时,采用GALS架构放置多个算子模块,各个算子独立执行,可支持同一掩码多个任务或不同掩码同一任务等多种恢复模式。当某个算子找到正确口令时,由多路复用器MUX(MUltipleXer)进行仲裁输出,并传递给上位机,其整体框架如图4所示。

Figure 4 Password recovery overall framework of DES computing kernel图4 DES算核口令恢复整体框架

基于算核模型,采用粗细粒度的混合结构,以重构IP置换、密钥拓展、轮运算等模块,形成串行、并行、流水线等多种执行方式,以及加密、解密等多种不同的DES算核。同时,配以不同的口令生成策略和对比模块,满足不同应用的计算需求。基于拟态计算的DES口令恢复,其流程如算法1所示。

算法1DES口令恢复算法

输入:FPGA配置信息、任务信息和口令策略。

输出:正确密钥key。

1.由FPGA配置信息,载入对应的比特流文件,并完成任务和口令的配置。

2.While(HasNextKey)do

3.key=GenerateNextKey(口令策略);

4.d=DES(key);

5.If( 对比验证通过 )

6.Returnkey;

7.EndIf

8.EndWhile

从算法1中可以看出,以DES为核心算法的口令验证流程较为简明。通过口令生成模块产生key,并代入DES算核逐一验证,如果计算出的结果和验证串相同,即找到了对应的正确key。

3.3 DES算核优化

为满足不同应用的需求,这里对DES算核的串行实现进行了优化,以减少资源占用,提高布线成功率。同时,使用全流水架构实现DES的高速并行计算,以空间换取时间,最大化算法的吞吐量和性能。

3.3.1 串行结构

由于DES解密是加密的逆过程,只有密钥使用的顺序相反,中间操作完全相同。因此,为实现统一的DES加/解密算法,在密钥扩展时,只并行计算一次,并得到16组Key。然后,通过状态机控制,根据当前迭代的轮数,选择对应的Key。这样不仅节省了资源,还简化了设计。图5所示为DES串行加/解密的结构图。

Figure 5 DES serial structure图5 DES串行结构图

图5中,密钥拓展采用assign连续直接赋值,并由16个寄存器数组保存,可在1个时钟周期内执行完成。单轮计算也采用assign赋值,可在1个时钟周期内完成,并将结果保存在寄存器中,由状态机控制,向下传递。整个DES加/解密串行需要17个时钟周期,其中数据输入占用1个时钟,计算过程占用16个时钟,并在最后一次计算完成后,直接输出结果。

3.3.2 全流水架构

在使用FPGA以全流水架构实现DES算法时,需要将单轮计算实例化16次,并使用寄存器数组存储每轮的计算结果,然后顺次传递。由于参与运算的数据和密钥是连续的,因此在密钥扩展时,需要在1个时钟周期内生成16组数据对应的密钥,并参与16轮计算。如图6所示,采用位宽为48 bit的寄存器数组Key_r[0:15]存储扩展后的密钥,数据在经过初始化后,由寄存器数组L_r[0:15]和R_r[0:15]依次进行存储。

Figure 6 DES pipeline architecture图6 DES流水线架构

当流水线开始工作时,在第1个时钟周期对第1组数据进行初始化和密钥扩展,生成Key_r[0],然后参与第1轮运算,产生结果L_r[1]和R_r[1]。在第2个时钟周期,Key_r[0]会进行密钥扩展生成Key_r[1],并和L_r[1]、R_r[1]参与第2轮计算,产生结果L_r[2]和R_r[2]。同时,第2组数据会进行初始化和密钥扩展操作,生成新的Key_r[0],并参与第1轮计算,产生新的L_r[1]和R_r[1]。以此类推,直至16轮迭代计算完成,然后依次输出16组数据的加密结果。显然,每组数据都要经过16个时钟周期才能计算出结果。但是,当流水线满负荷工作时,每个时钟周期都会产生输出,相比于串行DES算法,其处理速度提高了16倍,具有很高的计算性能。

由于FPGA属于位级计算部件,非常适合与或非、异或、移位等操作。而DES运算中,正好含有大量的位级运算,但在每轮运算中需要8个S盒参与运算,S盒的优化显得十分重要。S盒是一个十分复杂的非线性函数,可以使用多重case,以LUT和MUX进行实现;还可以使用卡诺图进行适当化简,得到逻辑表达式,然后使用硬件语言描述;或者直接使用BRAM(Block Random Access Memory)进行S盒存储。前2种方法规模较小,适宜特定硬件平台。第3种方法随着硬件工艺的提升,对拥有丰富BRAM资源的FPGA非常适用。

本文采用第3种方法,以BRAM存储S盒,不仅可以充分利用FPGA资源,还可平衡LUT、寄存器和BRAM的使用,有利于FPGA布局布线。优化后的DES单轮结构如图7所示。

Figure 7 DES single round structure图7 DES单轮结构

3.4 高速口令生成算法

文献[18]通过对大量真实口令集的统计分析,指出口令的频率分布符合Zipf分布,为评估口令猜测攻击模型提供了理论基础。由于DES破解速度十分快,结合口令的Zipf分布,只需采用穷举策略,即可满足恢复的要求。如果采用字典进行破解,传输带宽将成为计算瓶颈。同时,由于字典通常只包括常见的弱口令,且无法涵盖所有口令,必然存在口令遗漏的情况。本文方案优化并实现了掩码攻击和奇偶概率攻击,缩短了计算时间。

3.4.1 掩码攻击

对于DES算法,其口令长度固定为8 B,因此采用全空间的掩码攻击。相比于暴力穷举攻击,掩码攻击可对口令的每一位进行配置,使攻击更加有效。为充分发挥FPGA计算效率,使多个算子并行计算,将掩码口令划分为2部分,其中一部分用来产生口令前缀,另一部分用来穷举余下的口令。这样,就可将不同的口令前缀分配到多个算子,并将口令前缀和余下穷举的口令组合形成完整的口令输入DES进行计算。其过程如算法2所示。

算法2掩码口令生成算法

输入:口令配置信息pwd_config[7:0][0:7],pwd_fix[0:7]。

输出:候选口令password[7:0][0:7]。

1.Fori= 0 to 7do

2.password[i] = Null;

3.index[i] = 0;

4.Endfor

5.While(True)do

6.Fori= 0 to 7do

7.If(pwd_fix[i] == 1)∥该位为已知明文

8.password[i] =pwd_config[i];

9.Else∥全空间穷举

10.password[i] =AllCharSet(index[i]);

11.EndIf

12. 判断第i位索引index[i]是否需要进位或归0

13.Endfor

14. 输出password;

15. 如果index[0,…,7]全为0,跳出While循环;

16.EndWhile

显然,算法2可以以流水线的方式实现,在算法中的第1~4行可在1个时钟周期内完成初始化,第6~13行可使用8个模块并行计算,并将口令第i(0≤i≤7)位对应的字符同时输出,然后在1个时钟周期内完成拼接并输出,如图8所示。

Figure 8 Mask password generation pipeline 图8 掩码口令生成流水线

此外,口令生成的速度在某些情况下会成为计算的瓶颈,需要进行深度优化。本文采用2级流水线的方法,将原流水线隔断为2个独立的流水线,1个模块工作在低频,另1个模块工作在高频,并将低频流水线生成的口令,通过异步FIFO传输给高频模块,高频模块再对低频模块生成的口令进行补位扩充操作,并产生最终的口令。经该方法优化后,掩码攻击最高每秒可产生400M个口令。

3.4.2 奇偶概率攻击

对于DES算法的64 bit密钥,其中8 bit是奇偶校验位,只有56 bit参与计算。因此,只需从0到256-1穷尽56 bit所有密钥,即可达到百分之百破解率。进一步,结合统计学分析,采取先穷举偶数,再穷举奇数的规则,以优先恢复出其中的部分口令,达到事半功倍的效果。同时,放置多个算子并行计算,每个算子分配不同的密钥前缀,以提高攻击性能。奇偶概率攻击口令生成算法如算法3所示。

算法3奇偶概率口令生成算法

输入:口令配置key_config[17:0]。

输出:候选口令key[55:0]。

1.key_high[17:0] =key_config[17:0];

2.key_low[37:0] = 0;

3.While(True)do

4.If(key_low== 38’hFFFFFFFFE)

5.key_low= 1;

6.Else

7.key_low=key_low+2;

8.EndIf

9.If(key_low== 38’hFFFFFFFFF)

10.Break;

11.EndIf

12.key= {key_high,key_low}。∥拼接生成key

13.EndWhile

3.5 恢复策略

3.5.1 协议密钥恢复

网络协议授权过程中,Hash+DES的方式仍被广泛应用着,它以用户口令输入Hash函数,并将产生的结果经过处理作为DES加密的密钥,以此保护用户数据安全。如图9所示,详细给出了VPN PPTP使用微软Ms CHAP v2身份认证的过程。

Figure 9 Ms CHAP v2 authentication process图9 Ms CHAP v2认证过程

客户端和服务端会分别由Ms CHAP v2身份认证过程产生各自的NtResponse,并在服务端进行对比验证,如果2个NtResponse一致,则验证成功,否则验证失败。从图9中的流程可以看出,在截获协议交互信息后,可以通过穷举用户口令产生NtResponse,并与截获的NtResponse进行对比,如果一致,则找到了正确的口令。进一步,由于用户口令范围极广,16 bit的全字符空间约有PwdNum=9516个口令,而DES密钥空间为KeyNum=256,显然,PwdNum要远大于KeyNum,采用奇偶概率攻击是十分有效的方法,且对DES密钥空间搜索可以达到100%的破解率。由此,还可直接对3个DES进行密钥奇偶概率攻击,还原MD4哈希值,并据此恢复其他加密数据。最后,对诸如此类的网络协议,如LM、NTLM v1、Ms CHAP v1、Kerberos 5等,都可以用类似方法进行密钥恢复。

3.5.2 数据密钥恢复

对于使用DES加密数据的恢复,在得到足够多密文的情况下,可以用口令逐一尝试,并以输出明文为判断条件,当连续得到np组明文时,即找到了唯一的正确口令。对于DES ECB模式的口令恢复如图10所示。

Figure 10 DES ECB decryption diagram图10 DES ECB解密示意图

由于ASCII码表中有256个字符,其中95个为可显示字符,则DES解密全为明文的概率为q=(95/256)8≈3.60×10-4。全口令空间大小为488(去除奇偶校验位重复的字符),只有一个正确口令的概率为p=1/(488)≈3.55×10-14。如果连续解密成功4组数据,有q4≈1.67×10-14,且q4

3.5.3 系统口令恢复

在服务器领域,Linux/Unix系统由于其开放性、公开性和可移植性等优势,被绝大多数用户使用。但是,其带来诸多便利的同时,安全问题也随之而来。其中DES Crypt作为用户身份认证加密算法仍被使用着。DES Crypt算法使用盐值Salt作为参数,完成对用户口令的加密。例如,特征串“s2JQ85JElCMeU”,其中“s2”为Salt值,“JQ85JElCMeU”为加密后的验证信息。整个过程需要25次DES迭代,如图11所示。

Figure 11 Linux/Unix user password verification process图11 Linux/Unix用户口令验证过程

由于DES口令输入为8个字符,因此用户口令空间为958,可以使用掩码进行全空间搜索,以达到100%的破解率。进一步,对循环迭代使用DES或DES Crypt算法的其他软件、密码机或系统都可进行类似的口令恢复。

3.6 DES算核的重构

对于以DES为核心的口令恢复算法,可以用四元组表示PWRC={PWD,CORE(DES),CMP,SRP},其中,PWD表示口令,可以是掩码攻击、奇偶攻击或字典攻击产生的口令;CORE(DES)表示以DES为核心的算法,可以是DES的变形算法或其他算法的组合,如DES Crypt、Hash+DES、2次DES迭代组合等;CMP表示结果对比;SRP表示存储正确口令。

为了有效支持各种应用场景的DES恢复,对PWRC进行可重构设计,如图12所示。图12中深灰色表示粗粒度可重构模块[19],各模块间由FIFO互连。采用基于算核的映射方式,在PWD、CORE(DES)、CMP各阶段选择不同的算核进行灵活重构,形成应用。其次,改变FIFO位宽和深度衔接各个模块,完成异步时钟域的同步和数据传输。最后,以参数配置的形式实例化多个算子,适配多种FPGA并提高了资源利用率。针对网络协议、数据和系统的口令恢复,给出如下几种重构结构,如表1所示。

Table 1 Reconstruction structure description of each application表1 各应用重构结构说明

4 实验结果与分析

本文实验的硬件平台是4核FPGA集成加速卡,芯片型号为XILINX公司的xcku060,其查找表LUT资源为331 680,FF寄存器资源为663 360。软件平台为集设计、仿真、综合、布线、生成于一体的Vivado软件。实验通过对DES口令恢复算法的各模块进行深度优化,给出了资源占用及各种重构方案,使最终算法在吞吐量、运行速度、资源利用率等方面有了较大的提升。其次,与CPU、GPU和其他方案进行了性能对比分析。最后,给出了各种应用及口令策略的恢复效率分析。

4.1 各模块实现

表2所示为DES口令恢复算法主要算核的资源占用情况。从表2中可以看出,各模块占用资源较少,完全满足算核的设计要求,可重构成各种结构,并布局多个模块并行计算,满足不同应用的需求。表3所示为4种典型应用的DES算核重构方案及实现情况。从表3中可以看出,每个应用不仅充分利用了FPGA资源,工作频率还均在360~400 MHz,具有非常高的性能。

Table 2 Implementation of each module表2 各模块实现情况

Table 3 Typical application of DES computing kernel reconstruction and implementation表3 典型应用DES算核重构及实现情况

4.2 性能对比分析

首先,给出了本文DES实现方案与其他方案的对比,如表4所示,其中吞吐量的计算公式为:吞吐量=输入位宽×频率。从表4中可以看出,本文实现的17级流水线DES方案较其他方案具有更高的吞吐量。

Table 4 Comparison of the scheme in this paper with other schemes表4 本文方案与其他方案对比

其次,以VPN DES为例,使用FPGA加速卡与使用CPU、使用GPU在性能、功耗和能效比方面进行了对比,结果如表5所示。其中CPU型号为NVIDIA Intel i5-7500(4核,3.40 GHz),GPU为GTX 1080(2 560核,1 860 MHz),软件测试平台为hashcat v3.60。能效比计算公式为:能效比=性能/功耗,显然能效比越高越好。

Table 5 Performance comparison among platforms FPGA,CPU and GPU 表5 FPGA、CPU和GPU平台上性能对比

从表5中可以看出,使用FPGA的速度分别是使用CPU和GPU的2 353.14倍和14.19倍,使用GPU的速度是使用CPU的165.81倍。使用FPGA的能效比分别是使用CPU和使用GPU的584.96倍和11.02倍,使用GPU是使用CPU的53.08倍。无论是从速度还是能效比,使用FPGA都要优于使用CPU和GPU。一方面由于DES算法主要为逻辑运算,非常适合FPGA实现。另一方面,基于算核的设计方法充分利用了FPGA资源,提高了FPGA计算频率,具有明显的优势。

最后,给出了单个FPGA随DES算核个数增加及加速卡随FPGA个数增加的功耗变化情况,如图13和图14所示。从图13和图14中可以看出,板卡空载功耗约为64.48 W,每个算核的功耗约为0.3 W,整个加速卡的功耗约为276.32 W。显然,基于算核的实现方式,在保证了DES性能的同时具有较低的功耗,适合大规模使用。

Figure 13 FPGA power consumption changes with the increasement of DES computing kernels图13 FPGA随DES算核增加的功耗变化

Figure 14 Accelerator card power consumption changes with the increasesment of FPGAs图14 加速卡随FPGA个数增加的功耗变化

4.3 口令攻击分析

4.3.1 掩码模式攻击

针对DES ECB加密模式,使用掩码模式攻击,对数据进行恢复。当连续np组解密后的数据都为明文时,即可判断解密成功。表6给出了各种口令组合使用单个加速卡掩码攻击的恢复时间。

Table 6 DES ECB mask attack recovery time表6 DES ECB掩码攻击恢复时间

从表6中可以看出,对于常用的数字+字母组合口令,使用加速卡进行恢复,仅需要8.88 s的时间,对数字+字母+特殊字符的组合口令,最长也仅需要177.90 s。显然,对于DES ECB加密模式数据的恢复,本文方案基本可以做到实时恢复,效率十分可观。

对于Linux/Unix系统口令的恢复,每次初始化计算时会先将口令左移1 bit,但参与DES Crypt计算的仍为56 bit有效密钥。这样,可以统计分析移位后的字符,并直接使用移位后的字符作为新的字符表,再去除其中重复的字符,以此来减少口令空间。同时,由于DES Crypt需要循环迭代25次,使用掩码攻击,其恢复时间会增加25倍。

4.3.2 奇偶概率攻击

搭建服务器集群,每个服务器配有8个加速卡,以VPN PPTP为恢复对象,采用奇偶概率攻击,穷举0~256-1所有56 bit密钥,表7所示为随着服务器个数的增加,其恢复时间的变化。

Table 7 Password recovery time on server cluster 表7 服务器集群上口令恢复时间

从表7中可以看出,当服务器集群规模为16时,加速卡可在0.58 h内穷尽56 bit全部密钥空间,达到100%的恢复效率。而crack.sh系统含有48块 XILINX Virtex-6 LX240T FPGA,需要26 h才能穷尽56 bit密钥空间,文献[4]在120块XC7S100 FPGA规模下,也需要19 h。对大量VPN的恢复任务,本文服务器集群可保证短时间内的有效恢复,为电子取证提供了强力支撑。

5 结束语

本文提出的混合可重构的DES算核多应用口令恢复方案,以DES算核为研究对象,设计并优化了串行、全流水结构的DES算核。然后,基于统计学原理,给出了掩码攻击和奇偶概率攻击,提高了应用口令恢复效率,并给出了不同应用场景下的恢复策略。最后,通过深入剖析各应用的特征,以DES算核的变结构组合,适配各种应用。实验结果表明,该方案可重构出的DES算法在性能、资源、功耗等方面具有明显优势,较使用CPU和GPU有10倍以上的提升。同时,结合口令恢复策略,可在较短时间内恢复出原始口令。

进一步,基于算核的设计思想,为定制ASIC芯片提供了理论基础和技术支持。可将口令生成、密钥扩展、串行DES、流水线DES、对比模块等算核在ASIC芯片内部规划布局,通过配置信息完成相应算法的切换,并获取更高的计算性能。基于算核可重构的ASIC DES算法实现,也是下一步的研究方向。

猜你喜欢

掩码口令解密
炫词解密
解密“一包三改”
炫词解密
高矮胖瘦
低面积复杂度AES低熵掩码方案的研究
口 令
基于布尔异或掩码转算术加法掩码的安全设计*
好玩的“反口令”游戏
《计算机网络技术》的几个重点课题的教学分析
基于掩码的区域增长相位解缠方法