恭喜复旦大学韩伟力获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜复旦大学申请的专利基于hashcat与GPU并行计算的PCFG口令猜测方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115220913B 。
龙图腾网通过国家知识产权局官网在2025-06-10发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202210718908.0,技术领域涉及:G06F9/50;该发明授权基于hashcat与GPU并行计算的PCFG口令猜测方法是由韩伟力;张浩东;张俊杰设计研发完成,并于2022-06-23向国家知识产权局提交的专利申请。
本基于hashcat与GPU并行计算的PCFG口令猜测方法在说明书摘要公布了:本发明属于口令安全技术领域,具体为一种基于hashcat与GPU并行计算的PCFG口令猜测方法。本发明首先对PCFG口令猜测模型生成的训练数据进行预处理,构建相应数据结构后传输至GPU端,在GPU端利用处理的数据和设计的索引算法并行生成口令猜测并在口令密文中进行匹配,最后将命中信息传回CPU端并重构命中口令以实现口令恢复。本发明猜测方法兼容hashcat的运行流程,可作为一种攻击模式直接实现在hashcat中。本发明在利用PCFG高效的猜测效率的同时,利用GPU并行计算减少了口令生成的时间成本;将PCFG口令生成过程与hashcat运行过程相结合,减少了概率猜测模型与实用破解工具结合使用的传输时延。
本发明授权基于hashcat与GPU并行计算的PCFG口令猜测方法在权利要求书中公布了:1.一种基于hashcat与GPU并行计算的PCFG口令猜测方法,其特征在于,通过在CPU端预处理PCFG模型训练得到的模型数据和在GPU端各线程中使用设计的索引算法定位该线程需要生成的口令,使得PCFG能利用GPU在口令级别上实现并行口令生成;并通过与实用口令破解工具hashcat结合,提升在现实场景下破解密文口令的速度;具体步骤如下:步骤一、CPU端处理PCFG模型数据模型数据的处理分为两个部分:构建片段字典和重构预终端;通过在CPU端对PCFG口令猜测模型的模型数据进行预处理,得到片段字典和重构后的预终端结构;片段字典在破解开始之前传入GPU端待用;进行口令破解时,每次基于GPU内存限制生成并传输一定数量预终端结构进入GPU端,进行后续口令猜测过程;步骤二、GPU端并行生成并匹配猜测口令根据每次传入GPU的预终端结构中的信息,利用索引算法在每个GPU线程中确定待生成的口令及其相应片段元素在片段字典中的位置,从而生成猜测口令;对生成的猜测口令按相应哈希算法处理后在密文口令文件中进行匹配,对于匹配成功的猜测口令,记录其索引信息并传回CPU端;步骤三、CPU端重构并输出命中口令对于匹配成功的口令,其相应索引信息被传回CPU端,在CPU端利用索引算法重构命中口令的明文,以此完成口令恢复,最后将破解信息输出到指定位置;在步骤一中,所述构建片段字典,是指将PCFG训练得到的所有片段字符串按顺序存储成一个字典;具体过程为:1对于所有片段元素即字符串,依次按类型、长度和概率的顺序进行排序,即先按类型进行排序,对于同种类型的片段元素,按长度进行排序,对所有同类型且长度相同的片段元素,按概率进行排序;2将每种类型片段不同长度的元素看成一组,为了获取每组元素的位置,另设一个长度为K*N的一维数组存储所有元素组在片段字典中的起始位置,其中K为片段类型数,N为片段元素的最大长度;通过该一维数组,根据某元素在该组中的编号,即可获取到该元素在整个片段字典的相对偏移,从而计算出该元素的地址;在步骤一中,所述重构预终端的具体过程分为三个部分:片段元素概率重分配、修改预终端的基本结构和预终端结构长度微调;1片段元素概率重分配,是在生成预终端之前,重新分配同类型、同长度片段元素的概率,以此调整预终端中每个片段的元素数量,进而调整一个预终端将生成的口令数目,使后续在GPU进行并行口令生成时同一个warp中的线程处理同一个预终端,从而减少线程间的等待时延;具体来说,对于片段字典中同类型、同长度的元素,按8个一组重新分配概率,以此生成的预终端每个片段中包含8个元素;对于包含2个及以上片段的预终端,生成的口令数是32的整数倍,无需其他操作;对于仅包含一个片段的预终端,重复4次该预终端使得生成的口令数达到32;2修改预终端的基本结构;在原始的预终端结构中,每个预终端存储每个片段对应的类型、长度、概率和其中包含的具体元素即字符串数组;所述修改预终端的基本结构,首先,在每一个预终端结构中增加四个值,分别是偏移量、片段数量、前猜测数和当前猜测数;其次,对于构成预终端的每个片段,保留类型和片段长度两项基础信息,去除原结构体中存储的概率信息和具体元素字符串,新增两个值,即元素起始编号和元素数量;以此减少原有结构的冗余存储,并为之后的索引计算做好准备;3对预终端结构长度微调,是对单个预终端结构大小进行微调;考虑到GPU的内存访问始终以缓存行为单位执行,且缓存行大小为128字节,在减少预终端结构长度的基础上使一个预终端的总长度为GPU缓存行大小的整数倍,以此减少获取预终端时的存储访问次数;具体地,在一个预终端结构中,分别使用8字节、1字节、8字节、7字节来存储偏移量、片段数量、前猜测数和当前猜测数;对预终端中包含的每个段,分别使用1字节、1字节、1字节和5字节来存储类型、长度、元素起始编号和元素数量,并限制一个预终端最多含有29个片段;在步骤二中,所述利用索引算法生成猜测口令的具体流程为:1使用pt_id-guess_id来表示第pt_id个预终端所生成的第guess_id个猜测口令;于是,在GPU中,对于每一个编号为thread_id的线程,使用下式,通过遍历pt_id的方式计算该线程在处理编号为pt_id的预终端需要生成的口令的guess_id:guess_id=thread_id-offset+thread_size%thread_size+α×thread_size,0guess_id≤current_guess其中,thread_size表示使用的线程总数,offset与current_guess分别为每个预终端结构中存储的偏移量和当前猜测数;具体过程为,从1开始遍历每一个pt_id,对于每一个pt_id,获取到其中存储的offset和current_guess,进而从0开始遍历α来计算当前pt_id中需要生成的口令的guess_id,直到得到的guess_idcurrent_guess,则开始处理下一个pt_id;2一个预终端通过顺序选择各个片段中的元素来生成口令;从左向右,先遍历所有第i个片段的元素,对每个片段i的元素,遍历所有第i+1个片段的元素;因此,在已知口令对应的pt_id和guess_id之后,利用一维数组转为多维数组的方式,基于guess_id来逆推出组成该猜测口令的各个片段的元素编号seg_id;由于在预终端结构中,每个片段都存储了起始元素在片段字典中所在组的初始偏移,由初始偏移值加上seg_id则可以计算出该元素在片段字典中所在组的实际偏移;接着利用存储在K*N的一维数组中的片段字典每组元素的起始地址,加上实际偏移值计算出该元素的地址,从而在片段字典中得到具体的字符串;拼接每段的元素字符串,最终得到猜测口令。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人复旦大学,其通讯地址为:200433 上海市杨浦区邯郸路220号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。