一種基于多gpu破解設備的密碼破解方法和系統的制作方法
【技術領域】
[0001]本發明涉及密碼破解技術領域,尤其涉及一種多GPU破解設備的密碼破解方法和系統。
【背景技術】
[0002]現有的密碼破解方法一般是基于CPU的破解方式。如申請號為CN201410328280.9的專利申請,其提供一種密碼破解系統及方法,所述方法包括:步驟1、根據密碼破解需求提交任務數據;步驟2、根據集群環境分析提交的任務數據,得到破解任務,同時提交破解任務及該破解任務的字典描述、服務描述;步驟3、根據提交的字典描述及服務描述,并結合計算單元狀態對破解任務進行計算切分,之后提交切分的任務破解分片;步驟4、根據提交的任務破解分片并結合字典描述對任務破解分片進行計算,同時合并計算結果得到最終密碼;步驟5、將最終密碼與登錄密碼匹配。該發明使得網絡安保部門能夠快速進入非法加密網站進行重要情報收集,進而采取有效打擊措施,這對維護我國信息安全具有重要意義。但這樣的密碼破解方法是基于CPU的破解方式,其破解速度低。
[0003]隨著圖像處理器GPU (Graphic Process Unit)的高性能數據處理能力的發展,其為密碼的高速破解提供了新的解決途徑。GPU將大量的晶體管用作計算單元,適合高計算強度的應用。GPU在高性能運算方面具有三個突出優點:第一,數據的并行處理能力強大,NVIDIA公司目前最新的GPU K20峰值浮點運算能力超過3TFL0PS,這幾乎和一個小型CPU集群相當;第二,GPU擁有出色的高密集運算能力,K20的帶寬超過200 GB/s ;第三,GPU擁有良好的可編程性,支持多種高級語言編程,NVIDIA開發的CUDA架構支持C/C++和Fortran。現階段國內外的密碼破解方法僅能支持單機系統,其最多只包含4片GPU,這對于破解速度要求非常高的場合性能仍然顯得非常有限。
[0004]綜上,基于CPU的破解方式破解速度低,基于GPU的破解方式僅能支持單機系統,破解能力同樣有限且擴展性差。
【發明內容】
[0005]針對現有技術中的密碼破解方法存在破解速度低的技術問題,本發明公開了一種基于多GPU破解設備的密碼破解方法和系統。
[0006]本發明公開了一種基于多GPU破解設備的密碼破解方法,其具體包括以下的步驟:步驟一、客戶端根據用戶需求創建破解任務,并將破解任務下發給GPU代理設備,GPU代理設備將客戶端下發的破解任務劃分成若干個子任務,并將這些子任務分配給不同的GPU破解設備;步驟二、每個GPU破解設備執行分配到的子任務,并將執行的破解結果通過GPU代理設備反饋給客戶端。
[0007]更進一步地,上述方法還包括將正確的校驗值寫入到GPU破解設備的常量內存。
[0008]更進一步地,上述任務分配的具體過程為:首先根據用戶輸入的字符集計算出此次密碼破解所需的總口令數量N,根據GPU代理設備中負載均衡模塊得到參與破解的GPU破解設備的數量為NI,每個參與破解的GPU破解設備下GPU卡的數量為N2,那么第一個GPU破解設備上第一張GPU卡分配到的口令區間就是[0,N/N1/N2),第二張GPU卡分配到的口令區間是[N/N1/N2,2 N/N1/N2),依次類推,第一個GPU破解設備上第N2張GPU卡分配到的口令區間是[(N2-1)N/N1/N2, N/N1)。
[0009]本發明還公開了一種基于多GPU破解設備的密碼破解系統,其具體包括客戶端,GPU代理設備和多個GPU破解設備,所述客戶端與GPU代理設備之間信號連接,所述GPU代理設備和多個GPU破解設備之間信號連接,所述客戶端根據用戶需求創建破解任務,并將破解任務下發給GPU代理設備,GPU代理設備將客戶端下發的破解任務劃分成若干個子任務,并將這些子任務分配給不同的GPU破解設備;每個GPU破解設備執行分配到的子任務,并將執行的破解結果通過GPU代理設備反饋給客戶端。
[0010]更進一步地,上述客戶端包括用戶交互模塊、任務管理模塊和日志管理模塊;所述用戶交互模塊用于與用戶進行信息交互,所述任務管理模塊用于管理用戶下發的任務,所述日志管理模塊管理模塊用于對客戶登陸和設備接入信息進行管理。
[0011]更進一步地,上述GPU代理設備包括負載均衡模塊、特征值提取模塊、口令空間劃分模塊和設備管理模塊;所述負載均衡模塊根據當前GPU破解設備的忙閑狀態來動態選擇一臺或者多臺GPU破解設備進行破解;所述特征值提取模塊用于提取出破解參數和校驗參數,用于GPU破解設備的破解運算;所述口令空間劃分模塊用于為每個參與破解的GPU破解設備劃分一定范圍的口令區間;所述設備管理模塊用于多GPU破解設備的管理。
[0012]更進一步地,上述GPU破解設備包括口令生成模塊和口令破解模塊;所述口令生成模塊用于根據偏移量、GPU線程ID號以及字符集長度來生成口令,所述口令破解模塊根據生成的口令進行破解運算。
[0013]更進一步地,將正確的校驗值寫入到GPU破解設備的常量內存。
[0014]通過采用以上的技術方案,本發明的有益效果為:本發明的密碼破解方法及系統能支持多節點的GPU集群,因此可根據需求適當地進行GPU破解設備的擴展,提高了密碼破解的速度,較好地提升了密碼破解的性能。
【附圖說明】
[0015]圖1為基于多GPU破解設備的密碼破解系統。
[0016]圖2為基于多GPU破解設備的密碼破解流程圖。
[0017]圖3為口令生成流程圖。
【具體實施方式】
[0018]下面結合說明書附圖,詳細說明本發明的【具體實施方式】。
[0019]本發明公開了一種基于多GPU破解設備的密碼破解方法,其具體包括以下的步驟:步驟一、客戶端根據用戶需求創建破解任務,并將破解任務下發給GPU代理設備,GPU代理設備將客戶端下發的破解任務劃分成若干個子任務,并將這些子任務分配給不同的GPU破解設備;步驟二、每個GPU破解設備執行分配到的子任務,并將執行的破解結果通過GPU代理設備反饋給客戶端。本發明支持多節點的GPU集群,因此可根據需求適當地進行GPU破解設備的擴展,較好地提升了密碼破解的性能,提高了密碼破解的速度。
[0020]本發明還公開了一種基于多GPU破解設備的密碼破解系統,其具體包括客戶端,GPU代理設備和多個GPU破解設備,所述客戶端與GPU代理設備之間信號連接,所述GPU代理設備和多個GPU破解設備之間信號連接,所述客戶端根據用戶需求創建破解任務,并將破解任務下發給GPU代理設備,GPU代理設備將客戶端下發的破解任務劃分成若干個子任務,并將這些子任務分配給不同的GPU破解設備;每個GPU破解設備執行分配到的子任務,并將執行的破解結果通過GPU代理設備反饋給客戶端。本發明的系統支持多節點的GPU集群,因此可根據需求適當地進行GPU破解設備的擴展,較好地提升了密碼破解的性能,提高了密碼破解的速度。如圖1所示,本發明的基于多GPU破解設備的密碼破解系統包括I個客戶端、I個GPU代理設備以及4個或者更多的GPU破解設備組成。其中客戶端的功能主要是創建、配置、下發破解任務并及時接受、顯示破解過程中的主要信息;GPU代理設備的主要功能是拆分破解任務、進行復雜均衡等;GPU破解設備主要是根據GPU代理設備下發的任務進行破解并且上報破解的過程和結果。
[0021]如圖2所示的基于多GPU破解設備的密碼破解流程圖,按照數據流的方向分為客戶端、GPU代理設備和GPU破解設備。其中客戶端包括用戶交互模塊、任務管理模塊和日志管理模塊;GPU代理設備包括負載均衡模塊、特征值提取模塊、口令空間劃分模塊和設備管理模塊;所述GPU破解設備包括口令生成模塊和口令破解模塊。
[0022]所述用戶交互模塊用于與用戶進行信息交互,所述任務管理模塊用于管理用戶下發的任務;所述日志管理模塊管理模塊用于對客戶登陸和設備接入信息進行管理;從而方便用戶實現密碼破解并對密碼破解的過程進行有效記載。用戶交互模塊為用戶提供了密碼破解任務基本信息的輸入接口,包括破解口令的字符集指定、口令的長度區間范圍(最小口令長度、最大口令長度)、自定義字符集等。這個為用戶提供了友好的系統操作接口,也將更加方便用戶根據實際情況對密碼破解進行配置。任務管理模塊是為用戶下發的任務提供了管理功能,是的不同用戶能方便查看現在正在進行的任務,已經完成或者中止的任務、查看任務的破解結果等等信息。日志管理模塊是對客戶登陸、設備接入等等信息進行管理。
[0023]更進一步地,為了適應GPU集群的異構特點,本發明還提供了可靠的任務調度系統來實現負載均衡,從而提高破解速度。其具體的技術方案為:所述GPU代理設備包括負載均衡模塊、特征值提取模塊、口令空