基于gpu加速的LoL赛事- LoL投注- 2025年最佳英雄联盟投注网站金花表分析md5哈希密码docx

日期:2025-06-10 21:56 | 人气:

  英雄联盟投注,英雄联盟,英雄联盟下注,LOL投注官网,英雄联盟赛事投注,英雄联盟下注,英雄联盟电竞,英雄联盟投注网站,LOL,英雄联盟赛事,LOL投注,LOL赛事下注,LOL投注网站,lol下注平台

基于gpu加速的LoL赛事- LoL投注- 2025年最佳英雄联盟投注网站金花表分析md5哈希密码docx

  哈希函数(hahi)在信息安全领域得到广泛应用,主要用于数据加密和数字签名。Hash函数是将任意长度的输入映射到固定长度输出的一种单向散列函数,定义为C=H(M)。其中:H()为Hash函数;M是任意长度的输入;C是固定长度的输出。目前Hash函数主要有MDx系列和SHA-x系列。Hash函数具备单向性的2个特性:①给出一个C,算出一个M满足C=H(M),非常困难;②给出一个M1,算出一个不等于M1的M2使得H(M1)=H(M2),非常困难。另外,优良的Hash函数满足抗碰撞性:寻找任何M1和M2,使得H(M1)=H(M2),非常困难。除了枚举法,对Hash算法的破解集中在碰撞攻击,例如王小云教授等提出的快速计算MD5、SHA-0等Hash函数碰撞的方法,将对Hash函数SHA-1的破解时间缩短为263步。

  从枚举法角度对Hash函数破解主要有两种方法:暴力穷举法和字典查找法。前者是对所有可能的明文依次做Hash,将散列值与已知的散列值依次比较,找到匹配的密码明文,缺点是需要花费很多的执行时间;后者是预先对所有可能的明Hash并存储明文散列对,破解时只需查找该字典,缺点是需要大量的存储空间。彩虹表(rainbowtables)结合了这两种方法的优点,通过预处理存储了一个针对特定明文空间和特定Hash算法的集合。该集合由若干条彩虹链(类似Hash链)构成,通过一系列巧妙的Hash运算和截短函数(又称为映射函数)迭代计算只存储了链首和链尾的元素。破解的时候,通过一系列截短函数、Hash迭代以及链尾元素遍历查找等计算出Hash值的明文。彩虹表不存储明文空间的所有Hash值,因而比字典查找法更节省空间。而通过预处理,又相比暴力穷举法节省了计算时间,获得时间和空间的折中。此外,随着拥有多线程并行计算特点的GPU(图形处理器)加入到通用计算中,由于GPU特别适合诸如Hash算法、截短函数反复迭代算法等重复次数多、数据量大的计算场合,因此相比CPU更能大幅度加快密码在线哈希密码分析算法基于彩虹表

  为了解决链碰撞的问题,Oechslin提出了彩虹表方法。这里称彩虹表中的哈希链为彩虹链,在彩虹链中即使出现碰撞也不需要合并。方法是在所有链中节点k的不同位置j处使用一系列不同的截短函数Rj(1≤j≤t-1)。MD5算法中,每一次计算R(Cj)时,取128bit的MD5值的低4个字节,加上彩虹表索引和当前节点k的位置j,生成值只取低位部分27bit并分成3个9bit段,再处理为512字节字符集表的索引,最终生成映射到N上的R值。处理流程如图1所示。

  CUDA(computeunifieddevicearchitecture,统一计算架构)是NVIDIA公司为其GPU产品推出的通用并行计算架构,它包含了CUDA指令集架构以及GPU内部的并行计算引擎。CUDA配合现代GPU采用的SIMT(单指令多线程)技术,在CUDA模型中将GPU作为协处理器,并创建大量线程(数万甚至上百万个)进行并行计算,隐藏存储器访问延迟。NVIDIA的GPU中包含有数十甚至数百个SP流处理器(CUDA核心),多个SP构成一组SM(流处理器组)。线程是GPU的最小执行单位,每个线程均有自己的寄存器,线程切换的速度是CPU的上千倍。多个线程可构成线程块(block),线程块分割成更小的线程束(warp)。block内的所有线程可存取访问共享内存,SM中的所有block构成一个grid(计算格)。GPU中每个线程执行的指令程序构成Kernel函数,不同的Kernel函数串行执行,但是Kernel内部的线程是独立并行执行的。

  在MD5哈希值在线分析过程中,由于GPU的全局内存大小限制,需要将彩虹表分解为GPU可完成有效计算的最大单位(块内线程数d×块数b),逐一完成。实验中所用GPU为GeForceGT620,其d值和b值均设为1024。从CPU-GPU数据传输效率角度来说,GPU应尽量扩大每次SP传输的数量,避免通讯开销成为瓶颈(小于1%)。每一轮对密文C0与彩虹链链尾EP的比对都需要对C0进行重新计算。将C0代入到以下函数中:Rt-1,Rt-2ft-1,Rt-3ft-2ft-1,…,最多需要t次运算。f中的Hash算法选择MD5,由于采用CPU运算时是通过串行计算完成的,因此本文采用GPU运算,创建t个独立线程(t为彩虹链的长度),分别完成各个Ck(1≤kt)的迭代计算。此时,GPU的同一SM中的相邻线程对应f函数的迭代次数相差1,线程并发性较好。利用GPU的并发性,通过以时间换空间的方式加快Ck的计算,从而加快了密钥查找时间。在实验中可以发现,Ck匹配链尾元素的成功率越低,GPU的优势越能得到体现,在线分析时间相对CPU计算时的加速比越好。反之成功率高时,由于硬盘访问延迟或大量假警而使GPU的破解加速比下降。此时可以将彩虹表文件进行拆分,使实验中单个彩虹表文件(.rt或.rtc格式)均小于1GB,减少其他开销。

  实验历时31h,生成6个类似命名为md5_loweralpha-numeric#1-7_0_38000.rt的彩虹表文件,占用磁盘空间3GB。彩虹表的基本单位是若干条彩虹链,每条链只保存链首和链尾元素。生成彩虹表的大小主要与明文字符集大小、明文长度有关。例如,生成一个明文长度为1~8位、字符集为ascii-32-95(所有大写和小写字母、数字、特殊符号共94个标准键盘字符)的MD5哈希彩虹表占用的磁盘空间为576GB。

旋转小火锅定制流程

免费咨询

提供图纸

免费设计

免费报价

无忧安装

终身维护