CN112564922A - 基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 - Google Patents
基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 Download PDFInfo
- Publication number
- CN112564922A CN112564922A CN202011526768.4A CN202011526768A CN112564922A CN 112564922 A CN112564922 A CN 112564922A CN 202011526768 A CN202011526768 A CN 202011526768A CN 112564922 A CN112564922 A CN 112564922A
- Authority
- CN
- China
- Prior art keywords
- sha1
- password
- message
- hmac
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及基于拟态计算的多功能集成高速HMAC‑SHA1口令恢复方法,包括如下步骤:S1、根据给定的特征串解析出HashValue和salt;S2、采用一定方式生成试探口令;S3、若试探口令已全部枚举完则就此结束口令恢复,口令恢复失败,否则继续;S4、将试探口令和salt送入HMAC‑SHA1口令处理过程,处理结果记为digest;S5、若digest与HashValue一致则digest对应的试探口令即为正确口令,口令恢复成功,否则重新从S2开始。本发明提供的多功能集成高速HMAC‑SHA1口令恢复方法,利用拟态计算思想,构建了符合拟态计算理论的多功能集成高速HMAC‑SHA1口令恢复算核,其本身的可重构、自适应特性是对HMAC‑SHA1口令恢复问题在计算模式上的优化改进。
Description
技术领域
本发明属于密码技术领域,具体涉及基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法。
背景技术
网络信息技术的全面普及已是当今以及未来的必然趋势,网络信息空间已成为继海、陆、空、天之后的第五维空间。口令在网络信息技术中是不可或缺的角色,它的作用和影响下至普通大众层面上至国家民族层面。这是因为,在信息安全领域,对于数据保护、身份认证等场景,口令是最为传统和最为主要的信息安全防护手段,同时科学界形成一个共识:在当今以及可预见的未来,口令仍将是最主要的信息安全防护手段。口令虽然在合法的信息安全防护上具有积极意义,但也经常被不法分子所利用以传播危害公共安全的数据信息,严重时会危害国家安全或损坏国家利益。正是因为口令的保密特性,所以给信息安全监管和计算机取证工作带来了很大困难。因此,快速口令恢复对维护良好的信息安全环境同样具有很重要的意义。
消息认证码(Message Authentication Code,MAC)是一种使用密钥对通信消息进行认证的机制,在开放的、通用的网络上该机制被用来保证通信消息的机密性、完整性和有效性。基于Hash算法(如MD5、SHA系列、SM3等)的消息认证码是目前广泛使用的消息认证码,即HMAC(Hash-based Message Authentication Code),它是美国国家标准与技术研究院(NIST)指定标准且被要求在IPsec协议族和其他如SSL的Internet协议中实现。可以用HMAC认证的消息种类有很多,在很多现有协议或系统中,它被用作对用户口令进行认证,以确定口令的正确性,所以就有了针对HMAC的口令恢复问题。HMAC-SHA1(Hash-based MessageAuthentication Code-Secure Hash Algorithm 1)是基于SHA1运算的HMAC,通过SHA1的安全强度来保证整个算法的安全性。目前存在两种基础的HMAC-SHA1口令处理,分别为无迭代的口令模式和无迭代的盐模式,这也意味着HMAC-SHA1口令处理可以被构建出更加复杂的变种。目前在工业界实际应用当中,都是基于口令模式通过迭代来产生变种,最著名的便是PBKDF2-HMAC-SHA1,它是基于口令模式对HMAC-SHA1进行迭代并且迭代次数是可以配置的,这里的增益便是通过引入迭代复杂度来进一步保证密码安全。因此,能够针对两种基础的HMAC-SHA1口令处理以及PBKDF2-HMAC-SHA1口令处理完成高速口令恢复变得十分有意义,因为它基本涵盖了当前HMAC-SHA1针对口令进行认证的应用,同时进一步将这三种功能模式进行集成做到根据需求灵活变通则更加具有实际应用价值。为了完成这一目标,创新性的借助了拟态计算思想。
拟态计算是依靠动态变结构、软硬件结合实现基于效能的计算。拟态计算以实现高效能计算为目的,计算结构作为高阶函数,在任务处理的全过程中通过感知自变量动态的选择或生成应用问题的最佳解算结构集合。计算结构的函数化是拟态计算的本质。对于这种计算结构,它是包含软件和硬件变体的多维重构函数化体系结构,它被称为拟态架构,它能根据动态参数选择生成多种功能等价的可计算实体,实现拟态变换。对于一个确定的可计算问题,在拟态架构中可以由多种功能等价、计算效能不同的硬件变体和软件变体来实现,动态地选择与使用这些变体,计算效能可以达到最优化,即为拟态计算。
拟态计算因为它的灵活性,需要大量采用可重构计算技术。现场可编程门阵列(Field Programmable Gate Array,FPGA),是迄今为止最成功的可重构计算部件。因此,FPGA是实现拟态计算原理验证和实践的重要手段和工具。FPGA是一种拥有高密度逻辑和存储资源的高性能计算平台,它不同于基于指令集的通用计算平台,其内部的资源可以将计算和存储紧密耦合,能通过编程来自定义出高速的专用计算平台。FPGA通过组合逻辑和时序逻辑来构建复杂的目标计算任务,由于具有灵活性优势,FPGA非常适合实现高效的流水线工作逻辑,在综合各种因素的情况下,可以工作在不同的时钟频率,这就使得FPGA能够在具体计算任务下通过合理设计被灵活优化,以针对不同目标计算任务而达到最佳的性能,一般FPGA芯片的逻辑结构可借助图1进行理解。
但在实际处理过程中,存在如下问题:一方面,Hash算法是单向性的,所以HMAC正是利用Hash算法的这一特性来对口令进行认证,在口令经过HMAC处理后能够得到与之对应的唯一Hash口令认证码,通过这个Hash口令认证码来反向计算出口令值是一件不可能的事情;另一方面,HMAC-SHA1口令恢复的核心运算量在于其所依赖的SHA1运算,所以SHA1运算的速度将是整个HMAC-SHA1口令恢复速度的瓶颈。单个消息分组做SHA1运算需要经历80步,每一步运算中包含与、或、异或、移位等子运算,站在FPGA硬件设计的角度,可以针对这些步骤、子运算等结合时钟周期因素产生许多设计思路,但是不同的思路将最终决定不同的SHA1计算速度。比如,SHA1的串行实现设计难度小,但是最终工作的时钟频率却很低,这会极大降低SHA1的计算速度。
发明内容
本发明的目的是为了解决背景技术中所提出的问题,而提供基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,利用拟态计算思想,构建了符合拟态计算理论的多功能集成高速HMAC-SHA1口令恢复算核,其本身的可重构、自适应特性是对HMAC-SHA1口令恢复问题在计算模式上的优化改进。
本发明的目的是这样实现的:
基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,包括如下步骤:
S1、根据给定的特征串解析出HashValue和salt;
S2、采用一定方式生成试探口令;
S3、若试探口令已全部枚举完则就此结束口令恢复,口令恢复失败,否则继续;
S4、将试探口令和salt送入HMAC-SHA1口令处理过程,处理结果记为digest;
S5、若digest与HashValue一致则digest对应的试探口令即为正确口令,口令恢复成功,否则重新从S2开始。
优选的,在HMAC-SHA1的生成试探口令中,对SHA1运算模块采用流水线式方法进行优化,SHA1运算模块的流水线式方法包括:在原有的SHA1运算模块的80步运算的基础上,增加用于输入缓存和输出缓存的两步设为82级流水线模式,SHA1运算模块围绕消息分组Wt(0≤t≤79)展开运算,Wt从t=16开始需要由之前已有的Wt计算得出,对Wt的处理包括缓存、计算和传递三个层面:
a1、Wt的缓存是通过对应于每一步的寄存器数组,从输入缓存开始就进行后续Wt的计算,具体需要一个长度为64的寄存器数组用来保存通过计算得到的Wt值,同时需要80个寄存器数组分别对应SHA1的80步,这80个寄存器数组的前64个寄存器数组的长度均是16,后16个寄存器数组的长度从16开始依次递减;
a2、Wt的计算是完全并行的,即满负荷运行时,82级流水线中的Wt对应于82个独立的SHA1过程,具体的,输入缓存时钟计算第17个Wt、SHA1第63步的时钟计算第80个Wt,中间步骤依次类推;
a3、Wt的传递也是完全并行的,即80个对应每一步的寄存器数组之间进行错位赋值,舍弃数组中首个寄存器内的值,并将后续寄存器内的值依次传递到下个数组编号减一的寄存器中去,最后把新计算得到的Wt值追加到下个数组的最后一个寄存器。
优选的,在HMAC-SHA1的生成试探口令中,对SHA1运算模块采用展开结构式方法进行优化,SHA1运算模块的展开结构式方法包括:SHA1每一步的运算中,对第一个H值的计算为H=A<<<5+f(B,C,D)+E+W+K,对上述计算拆分为两步进行计算,第一步预计算preH=E+W+K,第二步结果计算H=A<<<5+f(B,C,D)+preH,第一步预计算和第二步结果计算各占用一个时钟周期。
优选的,在HMAC-SHA1的生成试探口令中,对于SHA1运算模块中的加法的实现使用CSA来完成,CSA通过位运算来完成加法运算,以降低计算延迟并保证流水线的吞吐率。
优选的,在HMAC-SHA1口令处理过程中,通过状态机和寄存器的配合,采用password_mode、salt_mode和round_mode三种模式完成对HMAC-SHA1的口令处理进行多功能集成;
其中多功能集成的方法包括:除去必要的参数信息,以mode信号来控制模式,以round信号来控制循环次数,同时设计对应的组合逻辑,该逻辑经过判断后使状态机工作在相应的模式完成计算,经过集成后的HMAC-SHA1口令处理功能模块具有拟态算核的特性,能够通过外部配置进行自适应功能变化。
优选的,在HMAC-SHA1口令处理过程中,password_mode模式的方法包括:
b1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
b2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
b3、对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
b4、对b3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
优选的,在HMAC-SHA1口令处理过程中,salt_mode模式的方法包括:
c1、用salt补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
c2、用salt补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
c3、对password进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
c4、对c3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
优选的,在HMAC-SHA1口令处理过程中,round_mode模式的方法包括:
d1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
d2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
d3、在salt后接3个字节“00”,再接1个十六进制的字节“01”,对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d4的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递,到达循环次数后的最终结果H作为RESULT。
优选的,HMAC-SHA1的口令处理的多功能集成还包括配套的口令恢复架构,通过口令恢复架构使用多功能集成HMAC-SHA1口令处理功能模块来完成高速HMAC-SHA1口令恢复,口令恢复架构包括:
TOP模块,用于封装整个架构;
INTERFACE模块,完成与上位机的数据交互工作;
ANALYSIS模块,包括算核编号、口令规则、特征串、模式和循环次数,解析口令恢复任务的数据流;
OPERATOR模块,进行核心的口令恢复计算,包括根据口令规则生成枚举口令的ENUM模块、进行高速的口令处理的HMAC-SHA1模块和将HMAC-SHA1口令处理模块的结果与目标口令认证码进行比对,以此判断口令恢复是否成功的MATCH模块三个子模块;
SELECT模块,为该算核打开一条数据通路,将正确的口令恢复结果传递给接口模块,以供上位机获取结果。
优选的,OPERATOR模块作为核心计算模块,它的个数在口令恢复架构中可根据FPGA芯片资源量进行自定义配置,在配套的口令恢复架构中配置一个算子模块后,采用赛灵思Vivado 2019.2工具套件进行综合以及布局布线,综合和布局布线的策略采用该版本工具套件对应的默认策略,经过编译后的资源占用结果为LUT使用26827个、FF使用47205个。
优选的,在满负荷工作时,SHA1计算速度直接与频率挂钩,即每个时钟都可以得到SHA1处理结果,此时,password_mode和salt_mode的计算速度就等于时钟频率除以4再乘以算子模块个数;
round_mode的计算速度就等于时钟频率除以(4+(round-1)*2)再乘以算子模块个数。
优选的,在综合考虑资源和时序后,以赛灵思xcku060芯片为例,配置了14个算子模块,并且工作频率达到了200M/s,HMAC-SHA1口令恢复计算速度为:
password_mode和salt_mode:(200M/4*14)(个/s)=700,000,000(个/s);
round_mode且round=1000时:(200M/(4+(round-1)*2)*14)(个/s)=1,398,601(个/s)。
与现有技术相比,本发明的有益效果在于:
1、本发明提供的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,利用拟态计算思想,构建了符合拟态计算理论的多功能集成高速HMAC-SHA1口令恢复算核,其本身的可重构、自适应特性是对HMAC-SHA1口令恢复问题在计算模式上的优化改进。
2、本发明提供的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,FPGA是可编程逻辑电路,其本质属于硬件计算架构范畴,因此它的速度虽较ASIC慢一些,但是计算速度远超基于指令集的软件处理架构,同时FPGA功耗较之GPU要低的多且高负荷运行下十分稳定,同时它的可重构性较之ASIC芯片又是一个极大优势,综合来看,FPGA在速度、功耗、灵活性上都具有极大优势。
3、本发明提供的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,通过全面深入分析HMAC-SHA1相关的口令处理算法,利用FPGA的优势针对核心计算部分进行实现和优化,在此基础上针对两种基础的HMAC-SHA1口令处理以及PBKDF2-HMAC-SHA1口令处理规划了三种与之相对应的计算模式,然后把这三种模式进行了多功能集成形成拟态算核,最后围绕该拟态算核设计了一整套口令恢复架构,使之最终能够开展实际意义上的高速HMAC-SHA1口令恢复。
4、本发明提供的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,将password_mode、salt_mode和round_mode三种模式进行了集成,通过状态机和寄存器配合完成,其中,除去必要的参数信息,以mode信号来控制模式,以round信号来控制循环次数,同时设计对应的组合逻辑,该逻辑经过判断后使状态机工作在相应的模式完成计算。虽然内部逻辑十分复杂,但是本发明的外部接口十分简洁,易于外部模块调用。经过集成后的HMAC-SHA1口令处理功能模块具有拟态算核的特性,能够通过外部配置进行自适应功能变化。
附图说明
图1是一般FPGA芯片的逻辑结构示意图。
图2是本发明基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法示意图。
图3是本发明流水线式方法中Wt缓存、计算和传递的逻辑过程示意图。
图4是本发明password_mode模式的工作流程示意图。
图5是本发明salt_mode模式的工作流程示意图。
图6是本发明round_mode模式的工作流程示意图。
图7是本发明多功能集成HMAC-SHA1口令处理功能模块示意图。
图8是本发明口令恢复架构示意图。
具体实施方式
下面结合附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
Hash算法是单向性的,所以HMAC正是利用Hash算法的这一特性来对口令进行认证,在口令经过HMAC处理后能够得到与之对应的唯一Hash口令认证码,通过这个Hash口令认证码来反向计算出口令值是一件不可能的事情。唯一的办法是通过不断尝试HMAC口令认证的正向计算过程,直到碰撞出目标Hash口令认证码所代表的正确口令,本发明在此将目标口令认证码称为HashValue,HashValue和盐值salt的组合称为特征串。
结合图2,基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,包括如下步骤:
S1、根据给定的特征串解析出HashValue和salt;
S2、采用一定方式生成试探口令;
S3、若试探口令已全部枚举完则就此结束口令恢复,口令恢复失败,否则继续;
S4、将试探口令和salt送入HMAC-SHA1口令处理过程,处理结果记为digest;
S5、若digest与HashValue一致则digest对应的试探口令即为正确口令,口令恢复成功,否则重新从S2开始。
在创新性方面:对于信息技术发展来说,摩尔定律越来越难维持,但是大数据和人工智能目前却迎来了高速发展时期,数据量和计算规模越来越庞大。此时,科学界普遍意识到传统计算机体系结构在此过程中的劣势,因此就有了拟态计算、类脑计算、量子计算等新型体系结构理论。在这其中,针对特定计算问题低成本快速构建专用硬件设备的趋势越来越明显,未来一段时间这也将成为新型体系结构发展的基石。本发明利用拟态计算思想,构建了符合拟态计算理论的多功能集成高速HMAC-SHA1口令恢复算核,其本身的可重构、自适应特性是对HMAC-SHA1口令恢复问题在计算模式上的创新。
在能效方面:单台计算机的性能再强悍也有它的计算上界。对于大型计算密集型操作,人们早已经摆脱了单台计算机处理的思维壁垒。集群式处理是目前公认的手段,比如民用层面的云计算亦或是国家层面的超级计算机,都是以集群形式存在的。集群形式的处理虽然有强大的计算能力且能根据任务规模大小进行灵活扩展,但是同等计算速度下的能耗问题一直是工业界的重要考察指标,因为能耗大小直接与经济开支挂钩。目前工业界完成计算任务有几个主流平台,它们分别是CPU、GPU、FPGA和ASIC。CPU是最为传统的通用计算架构,因为它的指令流处理模式使得它并不适合于计算密集型操作,相比其它平台其计算速度要慢上好几个数量级。GPU是当前最为流行的计算架构,它因为搭载了大量的计算核心使得它很适合进行并行计算,同时因为有像英伟达这样的GPU巨头的支持,使得GPU开发有很好的生态环境,且开发人员容易上手,部署起来十分便捷,最具有代表性的就是GPU在人工智能计算中的大量应用,但是GPU却有高功耗这一致命缺陷,同时它还存在因受到访存限制而影响性能提升的问题,此外,GPU在高强度下工作时间过长时很容易出现故障。ASIC芯片无疑在这些平台中是计算速度上最快的且功耗最低,这得益于它的性质,即它是专用的硬件电路,这比基于指令集的软件处理架构要快得多,但是ASIC芯片不可重构,因为它的逻辑电路是物理上固定的,一旦成型将不可改变,因此ASIC芯片研发成本过高且不够灵活,对成本敏感的应用非常不实用。FPGA因为是可编程逻辑电路,其本质属于硬件计算架构范畴,因此它的速度虽较ASIC慢一些,但是计算速度远超基于指令集的软件处理架构,同时FPGA功耗较之GPU要低的多且高负荷运行下十分稳定,同时它的可重构性较之ASIC芯片又是一个极大优势。综合来看,FPGA在速度、功耗、灵活性上都具有极大优势,本发明采用FPGA技术正是考虑到这些点,这也将能使本发明在产品实施上降低很多成本。
实施例2
结合图3,HMAC-SHA1口令恢复的核心运算量在于其所依赖的SHA1运算,所以SHA1运算的速度将是整个HMAC-SHA1口令恢复速度的瓶颈,单个消息分组做SHA1运算需要经历80步,每一步运算中包含与、或、异或、移位等子运算,站在FPGA硬件设计的角度,可以针对这些步骤、子运算等结合时钟周期因素产生许多设计思路,但是不同的思路将最终决定不同的SHA1计算速度。比如,SHA1的串行实现设计难度小,但是最终工作的时钟频率却很低,这会极大降低SHA1的计算速度,本发明采用三种方法对SHA1运算模块进行优化实现。
一、流水线式:流水线技术是将一个计算过程分解成若干子过程,然后让有效参数在时钟频率的约束下顺序流过这些子过程,因为这些子过程是并行的,所以在时钟频率的约束下,有效参数队列顺序进入流水线后,它们对应的最终结果也会顺序输出,即当流水线满负荷运转时,每个时钟周期都可以出一个结果,本发明基于FPGA完成了流水线模式的SHA1运算模块。
SHA1的80步运算之间,每一步的输入、输出仅与相邻的步具有依赖关系。同时,为了算法整体的衔接需要再加入两步用于输入缓存和输出缓存,因此,以每一步为一级流水线,将SHA1运算设计成了82级流水线模式,在SHA1运算中最主要围绕消息分组Wt(0≤t≤79)展开运算,Wt从t=16开始需要由之前已有的Wt计算得出。为了完成流水线设计,对Wt的处理包括了缓存、计算和传递三个层面。
其中,a1、Wt的缓存是通过对应于每一步的寄存器数组,从输入缓存开始就进行后续Wt的计算,具体需要一个长度为64的寄存器数组用来保存通过计算得到的Wt值,同时需要80个寄存器数组分别对应SHA1的80步,这80个寄存器数组的前64个寄存器数组的长度均是16,后16个寄存器数组的长度从16开始依次递减;
a2、Wt的计算是完全并行的,即满负荷运行时,82级流水线中的Wt对应于82个独立的SHA1过程,具体的,输入缓存时钟计算第17个Wt、SHA1第63步的时钟计算第80个Wt,中间步骤依次类推;
a3、Wt的传递也是完全并行的,具体做法是80个对应每一步的寄存器数组之间进行错位赋值,即舍弃数组中首个寄存器内的值,并将后续寄存器内的值依次传递到下个数组编号减一的寄存器中去,最后把新计算得到的Wt值追加到下个数组的最后一个寄存器。
二、展开结构式:SHA1每一步的运算中,对第一个H值的计算最为复杂,它是H=A<<<5+f(B,C,D)+E+W+K,对于FPGA硬件布线来说,单次过多的运算会使用过多的器件,有可能造成这些器件的空间距离过大,使得计算物理路径过长,从而造成延迟增大,直接的结果就是不能工作在高频率时钟下,本发明进一步将这个运算进行拆分,具体为两步,第一步预计算preH=E+W+K,第二步结果计算H=A<<<5+f(B,C,D)+preH,两步计算各占用一个时钟周期。
三、使用CSA加法器,CSA(Carry Save Adder)是保留进位加法器,CSA通过位运算来完成加法运算,本发明对于加法的实现使用CSA来完成,因为位运算特别适合硬件逻辑,它能够降低计算延迟保证流水线的吞吐率。
实施例3
对于两种基础的HMAC-SHA1口令处理以及PBKDF2-HMAC-SHA1口令处理,本发明将它们设定为三种模式,分别命名为password_mode、salt_mode和round_mode。
结合图4,password_mode模式的工作流程包括:b1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
b2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
b3、对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
b4、对b3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
结合图5,salt_mode模式的工作流程包括:
c1、用salt补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
c2、用salt补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
c3、对password进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
c4、对c3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
结合图6,round=1000时,round_mode模式的工作流程为:
d1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
d2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
d3、在salt后接3个字节“00”,再接1个十六进制的字节“01”,对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d4的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递,到达循环次数后的最终结果H作为RESULT。
结合图7,将password_mode、salt_mode和round_mode三种模式进行了集成,具体的,通过状态机和寄存器配合完成,其中,除去必要的参数信息,以mode信号来控制模式,以round信号来控制循环次数,同时设计对应的组合逻辑,该逻辑经过判断后使状态机工作在相应的模式完成计算。虽然内部逻辑十分复杂,但是本发明的外部接口十分简洁,易于外部模块调用,经过集成后的HMAC-SHA1口令处理功能模块具有拟态算核的特性,能够通过外部配置进行自适应功能变化。
实施例4
结合图8,本发明设计了配套的口令恢复架构,通过该架构使用多功能集成HMAC-SHA1口令处理功能模块来完成高速HMAC-SHA1口令恢复,口令恢复架构包括:
TOP模块,顶层模块,用于封装整个架构;
INTERFACE模块,接口模块,主要完成与上位机的数据交互工作,同时隔离时钟域。其中,外部时钟为低频时钟,内部时钟为高频时钟;
ANALYSIS模块,解析模块,口令恢复任务的数据流需要经过解析后才可以使用,因为本发明采用的数据通信方式是以固定32位地址总线配合32位数据总线完成的,之所以采用这种方式是因为,口令恢复是一个计算密集型操作,数据通信交互并不多,通过这个方式完全可以满足需求同时能够节省I/O资源,解析模块解析的内容包括算核编号、口令规则、特征串、模式和循环次数。此外,根据需要可以再定义相关地址来满足要求;
OPERATOR模块,算子模块,核心的口令恢复计算就是该模块的任务,具体的,它将再被分成三个子模块,分别是ENUM、HMAC-SHA1和MATCH,即口令生成模块、HMAC-SHA1口令处理模块和结果匹配模块,其中,口令生成模块将根据口令规则生成枚举口令,HMAC-SHA1口令处理模块就是本发明进行多功能集成后的HMAC-SHA1口令处理功能模块,它会进行高速的口令处理,匹配模块会将HMAC-SHA1口令处理模块的结果与目标口令认证码进行比对,以此判断口令恢复是否成功;
SELECT模块,选择模块,当某个算核成功完成口令恢复任务后,选择模块将专门为该算核打开一条数据通路,将正确的口令恢复结果传递给接口模块,以供上位机获取结果。
在实际生产中,根据FPGA的芯片选型,本发明建议结合自身所选芯片的资源量尽可能多的放置算子模块,因为这些算子模块是并行进行计算的,这将成倍提高HMAC-SHA1口令恢复的速率。
实施例5
目前,FPGA产业被美国所垄断,主流FPGA芯片以纳米工艺定级,高端FPGA芯片紧跟最先进的半导体芯片纳米工艺,对于FPGA芯片而言,纳米工艺越先进,其上可集成的硬件资源越多,其可布线的自定义逻辑规模越庞大,因此,实施本发明首先需要根据自身的可支配预算来选型相关FPGA产品,作为说明特例,本发明在赛灵思xcku060芯片下进行了实施,为的是举例评估本发明的资源占用量及计算速度。
(1)资源评估:算子模块作为核心计算模块,它的个数在本发明配套的口令恢复架构中可根据FPGA芯片资源量进行自定义配置,本发明建议LUT和FF资源占用均不要超过85%,因为在这种高资源占用下工作时序会出问题并且时钟频率也不能提高,在配套的口令恢复架构中配置一个算子模块后,采用赛灵思Vivado 2019.2工具套件进行综合以及布局布线,综合和布局布线的策略采用该版本工具套件对应的默认策略,经过编译后的资源占用结果为LUT使用26827个、FF使用47205个
具体的,单个算子模块的实际资源占用显然小于上述结果,可以此为依据增加算子模块个数,并提前预估资源占用量。特别说明,对于不同的综合和布局布线策略,经过编译后,最终的资源占用量可能存在较大差异,所以这里本发明主要介绍的是评估方法。
(5)速度评估:本发明中的计算速度是指口令处理的速度,它的含义是单位时间内被完整处理的口令的个数,计量单位可表示为(个/s),本发明因为核心的SHA1计算采用了高效的流水线结构,所以在满负荷工作时,SHA1计算速度直接与频率挂钩,即每个时钟都可以得到SHA1处理结果,此时,password_mode和salt_mode的计算速度就等于时钟频率除以4再乘以算子模块个数;round_mode的计算速度就等于时钟频率除以(4+(round-1)*2)再乘以算子模块个数。
经过尝试,在综合考虑资源和时序后,本发明以赛灵思xcku060芯片进行了样例实施,配置了14个算子模块,并且工作频率达到了200M/s,在这一实施样例下,HMAC-SHA1口令恢复计算速度为:
password_mode和salt_mode:(200M/4*14)(个/s)=700,000,000(个/s);
round_mode且round=1000时:(200M/(4+(round-1)*2)*14)(个/s)=1,398,601(个/s)。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的保护范围内所做的任何修改,等同替换等,均应包含在本发明的保护范围之内。
Claims (9)
1.基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:包括如下步骤:
S1、根据给定的特征串解析出HashValue和salt;
S2、采用一定方式生成试探口令;
S3、若试探口令已全部枚举完则就此结束口令恢复,口令恢复失败,否则继续;
S4、将试探口令和salt送入HMAC-SHA1口令处理过程,处理结果记为digest;
S5、若digest与HashValue一致则digest对应的试探口令即为正确口令,口令恢复成功,否则重新从S2开始。
2.根据权利要求1所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1的生成试探口令中,对SHA1运算模块采用流水线式方法进行优化,SHA1运算模块的流水线式方法包括:在原有的SHA1运算模块的80步运算的基础上,增加用于输入缓存和输出缓存的两步设为82级流水线模式,SHA1运算模块围绕消息分组Wt(0≤t≤79)展开运算,Wt从t=16开始需要由之前已有的Wt计算得出,对Wt的处理包括缓存、计算和传递三个层面:
a1、Wt的缓存是通过对应于每一步的寄存器数组,从输入缓存开始就进行后续Wt的计算,具体需要一个长度为64的寄存器数组用来保存通过计算得到的Wt值,同时需要80个寄存器数组分别对应SHA1的80步,这80个寄存器数组的前64个寄存器数组的长度均是16,后16个寄存器数组的长度从16开始依次递减;
a2、Wt的计算是完全并行的,即满负荷运行时,82级流水线中的Wt对应于82个独立的SHA1过程,具体的,输入缓存时钟计算第17个Wt、SHA1第63步的时钟计算第80个Wt,中间步骤依次类推;
a3、Wt的传递也是完全并行的,即80个对应每一步的寄存器数组之间进行错位赋值,舍弃数组中首个寄存器内的值,并将后续寄存器内的值依次传递到下个数组编号减一的寄存器中去,最后把新计算得到的Wt值追加到下个数组的最后一个寄存器。
3.根据权利要求1所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1的生成试探口令中,对SHA1运算模块采用展开结构式方法进行优化,SHA1运算模块的展开结构式方法包括:SHA1每一步的运算中,对第一个H值的计算为H=A<<<5+f(B,C,D)+E+W+K,对上述计算拆分为两步进行计算,第一步预计算preH=E+W+K,第二步结果计算H=A<<<5+f(B,C,D)+preH,第一步预计算和第二步结果计算各占用一个时钟周期。
4.根据权利要求1所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1的生成试探口令中,对于SHA1运算模块中的加法的实现使用CSA来完成,CSA通过位运算来完成加法运算,以降低计算延迟并保证流水线的吞吐率。
5.根据权利要求1所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1口令处理过程中,通过状态机和寄存器的配合,采用password_mode、salt_mode和round_mode三种模式完成对HMAC-SHA1的口令处理进行多功能集成;
其中多功能集成的方法包括:除去必要的参数信息,以mode信号来控制模式,以round信号来控制循环次数,同时设计对应的组合逻辑,该逻辑经过判断后使状态机工作在相应的模式完成计算,经过集成后的HMAC-SHA1口令处理功能模块具有拟态算核的特性,能够通过外部配置进行自适应功能变化。
6.根据权利要求5所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1口令处理过程中,password_mode模式的方法包括:
b1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
b2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
b3、对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
b4、对b3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
7.根据权利要求5所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1口令处理过程中,salt_mode模式的方法包括:
c1、用salt补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
c2、用salt补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
c3、对password进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message。此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
c4、对c3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生OPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和OPAD输入SHA1进行运算,结果H为RESULT。
8.根据权利要求5所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:在HMAC-SHA1口令处理过程中,round_mode模式的方法包括:
d1、用password补0至512位与一个512位且每8位重复出现十六进制36的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为IPAD;
d2、用password补0至512位与一个512位且每8位重复出现十六进制5c的值进行异或得Message,此Message和SHA1初始H输入SHA1进行运算,结果H记为OPAD;
d3、在salt后接3个字节“00”,再接1个十六进制的字节“01”,对salt进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d3的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递;
d4、对d4的结果H进行SHA1规则的消息填充,其中长度部分要算上产生IPAD时Message所占的64个字节,即512位,填充后得本次的Message,此Message和IPAD输入SHA1进行运算,结果H向下继续传递,到达循环次数后的最终结果H作为RESULT。
9.根据权利要求5-8任一所述的基于拟态计算的多功能集成高速HMAC-SHA1口令恢复方法,其特征在于:HMAC-SHA1的口令处理的多功能集成还包括配套的口令恢复架构,通过口令恢复架构使用多功能集成HMAC-SHA1口令处理功能模块来完成高速HMAC-SHA1口令恢复,口令恢复架构包括:
TOP模块,用于封装整个架构;
INTERFACE模块,完成与上位机的数据交互工作;
ANALYSIS模块,包括算核编号、口令规则、特征串、模式和循环次数,解析口令恢复任务的数据流;
OPERATOR模块,进行核心的口令恢复计算,包括根据口令规则生成枚举口令的ENUM模块、进行高速的口令处理的HMAC-SHA1模块和将HMAC-SHA1口令处理模块的结果与目标口令认证码进行比对,以此判断口令恢复是否成功的MATCH模块三个子模块;
SELECT模块,为该算核打开一条数据通路,将正确的口令恢复结果传递给接口模块,以供上位机获取结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526768.4A CN112564922B (zh) | 2020-12-22 | 2020-12-22 | 基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526768.4A CN112564922B (zh) | 2020-12-22 | 2020-12-22 | 基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112564922A true CN112564922A (zh) | 2021-03-26 |
CN112564922B CN112564922B (zh) | 2022-07-26 |
Family
ID=75031277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011526768.4A Active CN112564922B (zh) | 2020-12-22 | 2020-12-22 | 基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112564922B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080483A2 (en) * | 2000-04-13 | 2001-10-25 | Broadcom Corporation | Authentication engine architecture and method |
CN101188495A (zh) * | 2007-12-04 | 2008-05-28 | 魏恺言 | 一种实现强口令认证方式的安全系统及方法 |
CN106845185A (zh) * | 2017-02-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种口令恢复模式的确定方法及系统 |
CN108959128A (zh) * | 2018-06-04 | 2018-12-07 | 浙江大学 | Crypt-SHA512加密算法的加速装置与方法 |
-
2020
- 2020-12-22 CN CN202011526768.4A patent/CN112564922B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080483A2 (en) * | 2000-04-13 | 2001-10-25 | Broadcom Corporation | Authentication engine architecture and method |
CN101188495A (zh) * | 2007-12-04 | 2008-05-28 | 魏恺言 | 一种实现强口令认证方式的安全系统及方法 |
CN106845185A (zh) * | 2017-02-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种口令恢复模式的确定方法及系统 |
CN108959128A (zh) * | 2018-06-04 | 2018-12-07 | 浙江大学 | Crypt-SHA512加密算法的加速装置与方法 |
Non-Patent Citations (3)
Title |
---|
BIN LI等: ""Mimic computing for password recovery"", 《FUTURE GENERATION COMPUTER SYSTEMS》 * |
冯峰等: "基于多核FPGA的HMAC-SHA1口令恢复", 《计算机工程与科学》 * |
李斌等: "混合可重构的DES算核高效能口令恢复方案", 《计算机工程与科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112564922B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | LWRpro: An energy-efficient configurable crypto-processor for module-LWR | |
Cho et al. | Deep packet filter with dedicated logic and read only memories | |
EP2791781A1 (en) | Methods and systems for data analysis in a state machine | |
CN109190413B (zh) | 一种基于fpga和md5加密的串行通信系统 | |
CN108959168B (zh) | 基于片上内存的sha512全流水电路及其实现方法 | |
BR112019027531A2 (pt) | processadores de alto rendimento | |
Zhu et al. | A high-performance hardware implementation of saber based on Karatsuba algorithm | |
Cao et al. | P4 to FPGA-a fast approach for generating efficient network processors | |
Haghi et al. | Flash: FPGA-accelerated smart switches with GCN case study | |
CN112564922B (zh) | 基于拟态计算的多功能集成高速hmac-sha1口令恢复方法 | |
CN101304312A (zh) | 一种适用于精简指令集处理器的加密单元 | |
Le et al. | Mrsa: A high-efficiency multi romix scrypt accelerator for cryptocurrency mining and data security | |
CN104539417A (zh) | 一种基于流密码的加密设备 | |
Werner et al. | Accelerated join evaluation in Semantic Web databases by using FPGAs | |
He et al. | Multi-parallel architecture for MD5 implementations on FPGA with gigabit-level throughput | |
Jiménez et al. | Power and area reduction of MD5 based on cryptoprocessor using novel approach of internal counters on the finite state machine | |
Garcia et al. | Mapping of the AES cryptographic algorithm on a Coarse-Grain reconfigurable array processor | |
Mohammed et al. | A Review on Implementation of AES Algorithm Using Parallelized Architecture on FPGA Platform | |
Kieu-Do-Nguyen et al. | A Power-efficient Implementation of SHA-256 Hash Function for Embedded Applications | |
Sivanesan et al. | Accelerating hash computations through efficient instruction-set customisation | |
Krishnamoorthy et al. | Security Empowered System-on-Chip Selection for Internet of Things. | |
Smolarz et al. | Using hash functions to protect critical messages from changes in risky computing systems. | |
Bhosale et al. | Implementation of Special Load and Store Instruction for the RST Unit | |
Fang | Privacy preserving computations accelerated using FPGA overlays | |
Hussain | Microservice-based in-network AES solution for FPGA NICs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |