亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MPI的并行密碼恢復(fù)框架

        2014-07-03 08:16:06蔣璐瑾
        計算機(jī)與現(xiàn)代化 2014年7期
        關(guān)鍵詞:線程解密字典

        蔣璐瑾

        (湖南省婦幼保健院信息中心,湖南 長沙 410011)

        0 引言

        密碼是保護(hù)保密數(shù)據(jù)的重要手段,對稱密鑰加解密算法雖然安全度不高,但是具有使用方便的優(yōu)點。因此,對稱密鑰加解密方法至今仍然被廣泛使用。用戶可以將數(shù)據(jù)用一個密鑰進(jìn)行處理,并把加密后的數(shù)據(jù)發(fā)送到接收端,在接收端用戶再用同樣的密鑰解密。如果加密數(shù)據(jù)在傳輸過程被獲取,解密方在不知道加密密鑰的情況下,需要通過幾百萬次、甚至幾百萬億次的嘗試才可能破解密碼,此種方法也稱為“暴力破解”。在沒有任何密碼破解提示的情況,使用當(dāng)前的單機(jī)系統(tǒng),很難在有限時間內(nèi)破解一個加密文件。

        基于字典(Dictionary-based Password Recovery)的密碼破解技術(shù)[1-4]通過嘗試一個密碼字典中的所有密碼來破解加密數(shù)據(jù)。密碼字典通常由熟悉的名稱、常用單詞、簡單字符序列等組成,針對由大量密碼組成的密碼字典,順序地測試每個密碼是一種很費時的工作。但是,此類計算具有天然的并行性,因為各個密碼的測試是相互獨立的,這些測試可以并行執(zhí)行。因此基于字典的密碼恢復(fù)技術(shù)易于被高性能計算機(jī)并行執(zhí)行。

        一個大的密碼字典通常會提高破解密碼的可能性。但是,這也提高了計算復(fù)雜性。基于用戶密碼的可能概率分布,Weir[2]設(shè)計了一個自動生成字典的系統(tǒng)?;谔厥庾址蛿?shù)字出現(xiàn)的概率,該系統(tǒng)首先分析訓(xùn)練密碼集合,從而決定生成密碼的不同語法的概率。此方法可以根據(jù)已知的密碼集合,分析出密碼生成的概率,從而派生出可能的未知密碼集合。生成的密碼集合以預(yù)測的可能性的概率從高到低排序。JtR[5]是一個開源的軟件包,該軟件包設(shè)計的目的是破解具有特殊格式的密碼,例如基于MD5和SHA-1的加密密碼。這個工具對于恢復(fù)忘記的密碼和弱密碼很有用。此外JtR還支持基于字典的攻擊。馬爾科夫鏈也可以用來進(jìn)行數(shù)據(jù)解密[6],某些情況下性能優(yōu)于JtR和暴力破解。在實際應(yīng)用過程中,馬爾科夫過程比JtR更有效果。馬爾科夫過程的另一個突出的優(yōu)點是它可以在一個確定的時間完成。

        在高性能計算領(lǐng)域,有很多基于MPI(Message Passing Interface,消息傳遞接口)或OpenMPI的工具集[7-15]。Foster[16]首 先 提 出 了 網(wǎng) 格 計 算 技 術(shù),MPICHG是一種基于網(wǎng)格的MPI實現(xiàn)?;诜植际教峁┑闹驹赣嬎阗Y源,Bernaschi[4]設(shè)計了一種面向松耦合系統(tǒng)結(jié)構(gòu)的密碼破解框架。該框架把異構(gòu)的節(jié)點分為不同類型節(jié)點,第1層是根節(jié)點,第2層和第3層是計算節(jié)點,不同層次的計算節(jié)點的功能不同。Pellicer[17]基于 BOINC 系統(tǒng)結(jié)構(gòu),設(shè)計了一種面向MD4算法的密碼搜索算法。

        本文設(shè)計并實現(xiàn)了一個基于MPI的并行密碼恢復(fù)框架P2RF(Parallel Password Recovery Framework)。該框架把需要解密的數(shù)據(jù)和候選密鑰在任務(wù)級分布到不同的計算節(jié)點上,計算節(jié)點再根據(jù)節(jié)點計算資源配置的不同把計算分布到計算資源上。本文使用多種實驗測試集分析了P2RF的內(nèi)存占用和執(zhí)行時間情況,針對不同的測試集合分析了其任務(wù)分布和內(nèi)存占用的策略。

        1 P2RF框架的設(shè)計與實現(xiàn)

        1.1 框架設(shè)計

        P2RF框架由3部分組成:根節(jié)點、計算節(jié)點、字典文件,如圖1所示。根節(jié)點和計算節(jié)點集合可以是獨立的物理節(jié)點也可以是網(wǎng)格上的虛擬節(jié)點,字典文件存儲在文件系統(tǒng)中,可以在本地磁盤中也可以在磁盤陣列中。

        圖1 P2RF框架設(shè)計

        加密數(shù)據(jù)破解的基本步驟為:

        1)把密碼字典和加密數(shù)據(jù)分布到不同的節(jié)點;

        2)每個節(jié)點根據(jù)分布到自己的密碼字典,解密加密數(shù)據(jù),通過CRC校驗判斷密碼的有效性;

        3)如果發(fā)現(xiàn)正確的密碼,則程序停止并報告。

        根節(jié)點的功能是從字典文件中讀取字典,然后派發(fā)到計算節(jié)點,根節(jié)點讀取是采用非阻塞讀取的方式,把字典文件中的數(shù)據(jù)分批讀入到根節(jié)點的主存中,根節(jié)點再把數(shù)據(jù)以非阻塞的方式發(fā)送到計算節(jié)點。因此,根節(jié)點開辟了多塊緩沖區(qū),這些緩沖區(qū)順序地被字典文件數(shù)據(jù)填滿,當(dāng)數(shù)據(jù)被發(fā)送到計算節(jié)點后,緩沖區(qū)被標(biāo)記為空閑,等待下次被字典文件數(shù)據(jù)填滿。

        計算節(jié)點使用雙緩沖從根節(jié)點接收字典數(shù)據(jù),當(dāng)緩沖數(shù)據(jù)到達(dá)后,把數(shù)據(jù)發(fā)派到計算線程或加速器上(這些都稱為可執(zhí)行部件Process Element,PE),這些可執(zhí)行部件根據(jù)收到的字典密鑰,進(jìn)行對加密數(shù)據(jù)的解密操作,通過比較校驗和判斷該密鑰是否為正確的密鑰,當(dāng)計算節(jié)點找到了正確的密鑰,就把正確的密鑰報告給根節(jié)點,此時,根節(jié)點發(fā)送結(jié)束通知信息給所有的計算節(jié)點。如果一個計算節(jié)點嘗試了所有的密鑰都沒有找到正確的密鑰,則發(fā)送請求給根節(jié)點,讓根節(jié)點發(fā)送新的字典給自己。如果一個計算節(jié)點在測試本次的密鑰集合過程中,收到了根節(jié)點已經(jīng)尋找到正確密鑰的通知,則該計算節(jié)點等待當(dāng)前密鑰的判斷結(jié)束后,立即退出程序。

        1.2 框架實現(xiàn)

        圖2 P2RF框架根節(jié)點功能實現(xiàn)

        框架包括2個部分:根節(jié)點的實現(xiàn)和計算節(jié)點的實現(xiàn),根節(jié)點和計算節(jié)點間的通信采用MPI通信庫實現(xiàn)。圖2給出了根節(jié)點的功能實現(xiàn),系統(tǒng)初始化后,根節(jié)點處于等待狀態(tài),等待計算節(jié)點發(fā)送的請求,如果計算節(jié)點計算完成當(dāng)前需要處理的密鑰,則向根節(jié)點發(fā)出請求,如果根節(jié)點發(fā)現(xiàn)字典已經(jīng)處理完成,則說明當(dāng)前字典沒有找到正確的密鑰,那么就向計算節(jié)點發(fā)送計算完成的指令,計算節(jié)點收到該指令后即退出;如果仍然有沒有處理完成的密鑰,則繼續(xù)發(fā)送密鑰給計算節(jié)點,計算節(jié)點收到密鑰后,解密這批密鑰的正確性;如果一個計算節(jié)點找到了正確的密鑰,則發(fā)通知給根節(jié)點,根節(jié)點收到通知后,會等待沒有完成的計算節(jié)點,當(dāng)計算節(jié)點發(fā)送下一階段的請求后,則通知它計算已經(jīng)完成,找到了正確的密鑰。

        1.3 任務(wù)調(diào)度模塊

        在并行程序執(zhí)行過程中,任務(wù)調(diào)度的作用是控制循環(huán)并行結(jié)構(gòu)的執(zhí)行。P2RF框架專門設(shè)計了調(diào)度模塊,可以通過調(diào)度去控制解密任務(wù)的調(diào)度和分配,從而適應(yīng)不同的使用情況,提高性能。P2RF框架的調(diào)度模塊支持3種工作模式:靜態(tài)調(diào)度、動態(tài)調(diào)度和用戶指導(dǎo)的調(diào)度。

        1)靜態(tài)調(diào)度。

        系統(tǒng)默認(rèn)采用的是靜態(tài)調(diào)度方式。靜態(tài)調(diào)度的關(guān)鍵輸入?yún)?shù)為chunk,表示一個線程執(zhí)行的默認(rèn)子任務(wù)數(shù)目(需要解密的密碼空間),當(dāng)需要執(zhí)行的子任務(wù)數(shù)目為 N,執(zhí)行計算的線程數(shù)為 M時,[0,chunk-1]的chunk次的迭代是在第1個線程上運行,[chunk,2*chunk-1]是在第2個線程上運行,依次類推。該任務(wù)分配過程是靜態(tài)確定的,不會因為運行的情況改變。如果chunk沒有指定,只是指定采用靜態(tài)類型,那么系統(tǒng)使用子任務(wù)數(shù)/線程數(shù)作為chunk的值,這樣每個線程執(zhí)行的子任務(wù)數(shù)目就是一樣的。

        2)動態(tài)調(diào)度。

        動態(tài)調(diào)度的子任務(wù)分配是依賴于運行狀態(tài)動態(tài)確定的,所以哪個線程上將會運行哪些子任務(wù)是無法像靜態(tài)調(diào)度一樣事先預(yù)料的。對于動態(tài)調(diào)度,沒有chunk參數(shù)的情況下,每個線程按先執(zhí)行完先分配的方式執(zhí)行Iter個子任務(wù),比如,剛開始,線程1先啟動,那么會為線程1分配Iter個子任務(wù)開始去執(zhí)行,然后,可能線程2啟動了,那么為線程2分配Iter個子任務(wù),假設(shè)這時候線程0和線程3沒有執(zhí)行完,而線程1的子任務(wù)已經(jīng)執(zhí)行完,可能會繼續(xù)為線程1分配Iter個子任務(wù)。所以,動態(tài)分配的結(jié)果是無法事先知道的,這些都是取決于系統(tǒng)的資源、線程的調(diào)度等。

        3)用戶指導(dǎo)的調(diào)度。

        用戶指導(dǎo)的調(diào)度類似于動態(tài)調(diào)度,但每次分配的子任務(wù)數(shù)目不同,開始分配的數(shù)目比較大,以后逐漸減小。chunk表示每次分配的子任務(wù)數(shù)目的最小值,由于每次分配的子任務(wù)數(shù)目會逐漸減少,當(dāng)減少到chunk時,分配的子任務(wù)數(shù)目將不再減少。

        運行過程中,程序員可以通過設(shè)置 P2RF_SCHED_TYPE環(huán)境變量,來配置任務(wù)調(diào)度策略,其語法是 export P2RF_SCHED_TYPE=“type,chunk”。其中,type 可以是 static、dynamic、guided,chunk 可以選擇設(shè)置為正整數(shù)。

        2 實驗結(jié)果和分析

        為了驗證P2RF框架的有效性,在表1所示平臺上測試了P2RF框架的性能,測試用例采用大小為16 kB的加密Word文檔。該平臺的每個計算節(jié)點有2個CPU,每個CPU有6個計算核心,每個計算節(jié)點有12個核。

        表1 實驗平臺介紹

        實驗結(jié)果如圖3所示,本實驗的調(diào)度策略是static,chunk=2048。從圖3可知,系統(tǒng)平均每秒的解密次數(shù)隨著計算節(jié)點數(shù)目的增加近似線性增長(根節(jié)點不參與計算過程),例如2個節(jié)點的時候,框架的解密能力是11850次/s,32個節(jié)點的時候,系統(tǒng)解密能力是365000次/s??梢娤到y(tǒng)的擴(kuò)展性是線性可擴(kuò)展的。

        為了分析解密數(shù)據(jù)大小對解密速率的影響,在32節(jié)點的平臺上,使用不同大小的解密數(shù)據(jù)測試了P2RF的解密速率。實驗結(jié)果如圖4所示,當(dāng)解密數(shù)據(jù)規(guī)模為128 kB時,解密速率可達(dá)68萬次,基本上為數(shù)據(jù)規(guī)模為256 kB時的2倍,這說明2點:首先,P2RF框架的并行效率較好,通信不會引入冗余的開銷;其次,P2RF選擇的串行解密算法的計算復(fù)雜度是O(N)量級的,其運算時間和被解密數(shù)據(jù)的大小正相關(guān)。但是,當(dāng)數(shù)據(jù)規(guī)模逐漸變大時,例如在4096 kB時,解密速率只有2萬6千次,這是因為最后一級共享Cache不能容納所有線程的訪存工作集合,出現(xiàn)了一定的Cache失效,導(dǎo)致了系統(tǒng)性能的下降。

        圖4 P2RF框架解密速率分析圖

        3 結(jié)束語

        本文設(shè)計了一個基于MPI的并行密碼恢復(fù)框架P2RF,該框架把需要解密的數(shù)據(jù)和候選密鑰在任務(wù)級分布到不同的計算節(jié)點上,計算節(jié)點再根據(jù)節(jié)點計算資源配置的不同把計算分布到計算資源上。實驗結(jié)果表明:P2RF的擴(kuò)展性隨著節(jié)點的增多而線性擴(kuò)展。

        [1] Grama A,Karypis G,Kumar V,et al Introduction to Parallel Computing[M].2nd Edition.Addison Wesley,2003.

        [2] Weir M,Aggarwal S,de Medeiros B,et al.Password cracking using probabilistic context-free grammars[C]//Proceedings of the 30th IEEE Symposium on Security and Privacy.2009:391-405.

        [3] Dell’Amico M,Michiardi P,Roudier Y.Password strength:An empirical analysis[C]//Proceedings of the 29th IEEE Conference on Computer Communications.2010:1-9.

        [4] Bernaschi M,Bisson M,Gabrielli E,et al.An architecture for distributed dictionary attacks to cryptosystems[J].Journal of Computers,2009,4(5):378-386.

        [5] Peslyak A.John the Ripper[DB/OL].http://www.openwall.com/john/,2013-05-30.

        [6] Marechal S.Advances in password cracking[J].Journal in Computer Virology,2008,4(1):73-81.

        [7] 張華杰.基于MPI的并行算法的研究[D].金華:浙江師范大學(xué),2010.

        [8] Wilkinson B,Allen M.并行程序設(shè)計[M].陸鑫達(dá),等譯.北京:機(jī)械工業(yè)出版社,2005.

        [9] Li Kuan-Ching,Chang Hsun-Chang,Yang Chao-Tung,et al.On construction of a visualization toolkit for MPI parallel programs in cluster environments[C]//Proceedings of the 9th International Conference on Advanced Information Networking and Applications.2005,2:211-214.

        [10] Panda D K,Ni L M.Special issue on workstation clusters and network-based computing[J].Journal of Parallel and Distributed Computing,1997,40(1):1-3.

        [11] Desai N,Bradshaw R,Lusk A,et al.MPI cluster system software[C]//Proceedings of the 11th European PVM/MPI Users’Group Meeting.2004:277-286.

        [12] 都志輝.高性能計算并行編程技術(shù):MPI并行程序設(shè)計[M].北京:清華大學(xué)出版社,2001.

        [13] Chong Yong-Kim,Hwang Kai.Performance analysis for four memory consistency models for multithreaded multiprocessors[J].IEEE Transactions on Parallel and Distributed Systems,1995,6(10):1085-1099.

        [14] Hockney R W.The Science of Computer Benchmarking[Z].The Society for Industrial and Applied Mathematics,Philadelphia,1996.

        [15] 李繼民,馬力,王風(fēng)先.PC機(jī)群系統(tǒng)的關(guān)鍵技術(shù)[J].河北大學(xué)學(xué)報(自然科學(xué)版),2002,22(1):55-58.

        [16] Foster I,Karonis N T.A grid-enabled MPI:Message passing in heterogeneous distributed computing systems[C]//Proceedings of the 1998 ACM/IEEE Conference on Supercomputing.1998.

        [17] Pellicer S,Pan Yi,Guo Minyi.Distributed MD4 password hashing with grid computing package BOINC[C]//Proceedings of the 3rd International Conference on Grid and Cooperative Computing.2004:679-686.

        猜你喜歡
        線程解密字典
        開心字典
        家教世界(2023年28期)2023-11-14 10:13:50
        解密“熱脹冷縮”
        開心字典
        家教世界(2023年25期)2023-10-09 02:11:56
        解密“一包三改”
        少先隊活動(2020年9期)2020-12-17 06:17:31
        炫詞解密
        淺談linux多線程協(xié)作
        我是小字典
        正版字典
        讀者(2016年14期)2016-06-29 17:25:50
        解密“大調(diào)解”
        Linux線程實現(xiàn)技術(shù)研究
        日本最新免费二区| 亚州韩国日本区一区二区片| 亚洲精品成人国产av| 人妻中文字幕av有码在线| 中文字幕一区二区三区喷水| 五月婷婷开心五月播五月| 亚洲av无码一区二区三区鸳鸯影院| 女人脱了内裤趴开腿让男躁| 久久av无码精品人妻出轨| 国产乱人视频在线观看播放器| 亚洲精品国产熟女久久久| 一边做一边说国语对白| 亚洲精品久久中文字幕| 国产精品第一二三区久久蜜芽 | 97日日碰曰曰摸日日澡| 久久亚洲精品无码va白人极品| 236宅宅理论片免费| 国产成人久久精品激情91| 久久综合五月天啪网亚洲精品| 亚洲av无码乱码在线观看性色| 精精国产xxxx视频在线播放 | 在线不卡av片免费观看| 中文字幕av日韩精品一区二区| 麻豆国产av尤物网站尤物| 漂亮的小少妇诱惑内射系列| 一区二区三区日韩精品视频| 77777亚洲午夜久久多喷| 在线观看av片永久免费| 性色av手机在线观看| 日本人妖熟女另类二区| 国产午夜福利100集发布| 欧美丰满大爆乳波霸奶水多| 久久精品国产av大片| 久久精品国产亚洲av成人文字| 少妇私密会所按摩到高潮呻吟| 91亚洲国产成人aⅴ毛片大全| av是男人的天堂免费| 美女主播网红视频福利一区二区 | 狠狠色狠狠色综合久久第一次| 日本高清一区二区在线观看| 中文字幕无码乱人伦|