【技术实现步骤摘要】
利用破解规则破解密码的方法及系统
本专利技术实施例涉及并行计算
,尤其涉及一种利用破解规则破解密码的方法及系统。
技术介绍
随着市场对实时、高清晰度的3D图形可编程的需求,GPU(GraphicProcessingUnit,图形处理器)已经发展成为高度并行化、多线程的多核处理器,具有极高的并行计算性能和极高的存储速度。由于GPU专为密集型、高度并行化的计算而设计,CPU和GPU之间的浮点功能存在差异,因而GPU在设计上使用更多的晶体管用于数据处理。图1是现有技术中CPU与GPU的内部运算单元逻辑结构图,如图1所示,GPU显著用于解决数据并行计算问题,在数据元素上并行执行的程序具有极高的计算密度。数据并行处理将数据元素映射到并行处理线程。处理大型数据集的程序就是利用并行处理线程对计算进行加速,如在3D渲染时把大量的像素及数据集映射到并行处理线程。其他图像和媒体也同样用到并行计算技术,此外,GPU的并行计算也用于科学计算,涉及数理、生物等领域,密码破解就是GPU并行计算的一个应用。CUDA(ComputeUnifiedDeviceArchitecture,统一计算设备架构)是一种并行编程模型和软件环境,编译后的CUDA程序在GPU处理器的内核上运行。图2是现有技术中GPU处理数据的单元的示意图,如图2所示,GPU处理数据的最小单元是核内线程,多个线程组成线程块,多个线程块组成网格。每个线程块的最大线程数与每个网格内的线程块数由具体GPU性能决定。CUDA程序运行在CPU上的部分,称之为对主机操作,CUDA程序运行在GPU上的部分,称之为对设备操作。CUD ...
【技术保护点】
一种利用破解规则破解密码的方法,其特征在于,所述方法包括:CPU对密码的破解规则进行分解,形成破解颗粒,并将所述破解颗粒映射给图形处理器GPU;GPU根据所述破解颗粒进行破解,如果破解成功,则返回破解成功标记和对应的GPU内核线程的密码样本索引pos给CPU;CPU根据破解成功标记和pos计算出所述破解规则对应的密码。
【技术特征摘要】
1.一种利用破解规则破解密码的方法,其特征在于,所述方法包括:CPU对密码的破解规则进行分解,形成破解颗粒,并将所述破解颗粒映射给图形处理器GPU;GPU根据所述破解颗粒进行破解,如果破解成功,则返回破解成功标记和对应的GPU内核线程的密码样本索引pos给CPU;CPU根据破解成功标记和pos计算出所述破解规则对应的密码;其中,所述CPU对密码的破解规则进行分解,形成破解颗粒,包括:S1、确定密码的破解规则的位数,将所述破解规则中的每个字符集按照字符集长度由小到大进行排列,并记录字符集的次序交换,其中,一个字符集为密码中的一位的破解范围;S2、根据排序后的后4个字符集计算簇大小,其中,簇为排序后的后4个字符集的遍历结果的集合;S3、按照密码破解算法的复杂度,确定GPU内的比对次数,其中,GPU内的比对次数是GPU在预设时间内的计算量;S4、根据GPU内的比对次数,确定每线程块线程数目和每网格线程块数目;S5、遍历排序后的后4个字符集以外的字符集形成表;S6、根据GPU内的比对次数和簇大小,计算簇偏移;S7、根据GPU内的比对次数和最近一次计算得到的簇偏移,计算提供给GPU的表的项目数;S8、根据最近一次计算得到的提供给GPU的表的项目数和表,确定表起始项目;如果最近一次确定的表起始项目的位置编号加最近一次计算的提供给GPU的表的项目数超过了表的总项目数,则设置破解结束标记;S9、根据排序后的字符集、字符集的次序交换、GPU内的比对次数、最近一次计算的簇偏移、最近一次确定的表起始项目、破解结束标记、每线程块线程数目和每网格线程块数目确定管理数据体,根据管理数据体确定破解颗粒;S10、如果最近一次确定的表起始项目的位置编号加最近一次计算的提供给GPU的表的项目数超过了表的总项目数,则结束本流程,否则,返回步骤S6。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果破解不成功,GPU则返回破解未成功标记给CPU。3.根据权利要求1所述的方法,其特征在于,GPU根据破解颗粒进行破解,包括:根据下式计算当前GPU内核线程的pos:pos=offset+blockIdx.x*blockDim.x+threadIdx.x+gridDim.x*blockDim.x*n其中,offset为簇偏移,n为循环次数,blockIdx.x为当前线程块索引,threadIdx.x为当前线程索引,(blockIdx.x,threadIdx.x)是线程的标识,blockDim.x为破解颗粒的每线程块线程数目,gridDim.x为破解颗粒的每网格线程块数目;判断pos是否大于或者等于GPU内的比对次数与簇偏移的和,如果是,则线程内破解结束,返回破解未成功标记给CPU,如果否,则继续破解;根据后4个字符集的长度计算密码后4位分别相对于各自字符集的索引,进一步计算出表索引;取出所述密码后4位分别相对于各自字符集的索引所对应的字符和表索引所对应的表项目,组成伪密码;将所述伪密码经过次序变换得到密码样本,根据密码破解算法计算出密文,将该密文与输入的密文进行比较,如果一致则破解成功,如果不一致则破解不成功。4.根据权利要求1或2所述的方法,其特征在于,所述破解颗粒的大小取决于所述破解颗粒在GPU上的运行时间。5.一种利用破解规则破解密码的系统,其特征在于,所述系统包括:...
【专利技术属性】
技术研发人员:施宏伟,
申请(专利权)人:北京锐安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。