演算法破譯密碼
㈠ 密碼學的破譯密碼
被動攻擊
選擇明文攻擊
選擇密文攻擊
自適應選擇密文攻擊
暴力攻擊
密鑰長度
唯一解距離
密碼分析學
中間相會攻擊
差分密碼分析
線性密碼分析
Slide attack cryptanalysis
Algebraic cryptanalysis
XSL attack
Mod n cryptanalysis
弱密鑰和基於口令的密碼
暴力攻擊
字典攻擊
相關密鑰攻擊
Key derivation function
弱密鑰
口令
Password-authenticated key agreement
Passphrase
Salt
密鑰傳輸/交換
BAN Logic
Needham-Schroeder
Otway-Rees
Wide Mouth Frog
Diffie-Hellman
中間人攻擊
偽的和真的隨機數發生器
PRNG
CSPRNG
硬體隨機數發生器
Blum Blum Shub
Yarrow (by Schneier,et al)
Fortuna (by Schneier,et al)
ISAAC
基於SHA-1的偽隨機數發生器, in ANSI X9.42-2001 Annex C.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) Appendix 3.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) revised Appendix 3.1 (CRYPTREC example)
匿名通訊Dining cryptographers protocol (by David Chaum)
匿名投遞
pseudonymity
匿名網路銀行業務
Onion Routing
密碼分析又稱破密術。密碼分析的目的是發現密碼機制的弱點,從事者可能是意圖顛覆系統惡意的攻擊者或評估系統弱點的設計人。在現代,密碼演算法與協定必須被仔細檢查和測試,確定其保證的安全性。
大眾普遍誤解認為所有加密法都可以被破解。Bell Labs的Claude Shannon在二次世界大戰時期便證明只要鑰匙是完全隨機,不重復使用,對外絕對保密,與信息等長或比信息更長的一次一密是不可能破解的。除了一次一密以外的多數加密法都可以以暴力攻擊法破解,但是破解所需的努力可能是鑰匙長度的指數成長。
密碼分析的方式有很多,因此有數個分類。一個常見的分別法則是攻擊者知曉多少信息。在唯密文攻擊中,密碼分析者只能存取密文,好的現代密碼系統對這種情況通常是免疫的。在已知明文攻擊中,密碼分析者可以存取多個明文、密文對。在選擇明文攻擊中,密碼分析者可以自選任意明文,並被賦予相對應的密文,例如二戰時布列顛所使用的園藝法。最後,選擇密文攻擊中,密碼分析者可以自選任意密文,並被賦予相對應的明文
對稱鑰匙加密的密碼分析通常旨在尋找比已知最佳破解法更有效率的方式。例如,以最簡單的暴力法破解DES需要一個已知明文與解密運算,嘗試近半數可能的鑰匙。線性分析攻擊法對DES需要已知明文與DES運算,顯然比暴力法有效。
公開鑰匙演算法則基於多種數學難題,其中最有名的是整數分解和離散對數問題。許多公開鑰匙密碼分析在研究如何有效率地解出這些計算問題的數值演算法。例如,已知解出基於橢圓曲線的離散對數問題比相同鑰匙大小的整數因子分解問題更困難。因此,為了達到相等的安全強度,基於因子分解的技術必須使用更長的鑰匙。由於這個因素,基於橢圓曲線的公開鑰匙密碼系統從1990年代中期後逐漸流行。
當純粹的密碼分析著眼於演算法本身時,某些攻擊則專注於密碼裝置執行的弱點,稱為副通道攻擊。如果密碼分析者可以存取到裝置執行加密或回報通行碼錯誤的時間,它就可能使用時序攻擊法破解密碼。攻擊者也可能研究信息的模式與長度,得出有用的信息,稱為流量分析,對機敏的敵人這相當有效。當然,社會工程與其它針對人事、社交的攻擊與破密術一並使用時可能是最有力的攻擊法。
㈡ 密碼的暴力破解使用的是( )演算法。 A.解析法 B.窮舉法 C.分治法D
B
窮舉法,或稱為暴力破解法,是一種針對於密碼的破譯方法,即將密碼進行逐個推算直到找出真正的密碼為止。例如一個已知是四位並且全部由數字組成的密碼,其可能共有10000種組合,因此最多嘗試10000次就能找到正確的密碼。理論上利用這種方法可以破解任何一種密碼,問題只在於如何縮短試誤時間。因此有些人運用計算機來增加效率,有些人輔以字典來縮小密碼組合的范圍。
㈢ 密碼學的密碼破譯
密碼破譯是隨著密碼的使用而逐步產生和發展的。1412年,波斯人卡勒卡尚迪所編的網路全書中載有破譯簡單代替密碼的方法。到16世紀末期,歐洲一些國家設有專職的破譯人員,以破譯截獲的密信。密碼破譯技術有了相當的發展。1863年普魯士人卡西斯基所著《密碼和破譯技術》,以及1883年法國人克爾克霍夫所著《軍事密碼學》等著作,都對密碼學的理論和方法做過一些論述和探討。1949年美國人香農發表了《秘密體制的通信理論》一文,應用資訊理論的原理分析了密碼學中的一些基本問題。
自19世紀以來,由於電報特別是無線電報的廣泛使用,為密碼通信和第三者的截收都提供了極為有利的條件。通信保密和偵收破譯形成了一條斗爭十分激烈的隱蔽戰線。
1917年,英國破譯了德國外長齊默爾曼的電報,促成了美國對德宣戰。1942年,美國從破譯日本海軍密報中,獲悉日軍對中途島地區的作戰意圖和兵力部署,從而能以劣勢兵力擊破日本海軍的主力,扭轉了太平洋地區的戰局。在保衛英倫三島和其他許多著名的歷史事件中,密碼破譯的成功都起到了極其重要的作用,這些事例也從反面說明了密碼保密的重要地位和意義。
當今世界各主要國家的政府都十分重視密碼工作,有的設立龐大機構,撥出巨額經費,集中數以萬計的專家和科技人員,投入大量高速的電子計算機和其他先進設備進行工作。與此同時,各民間企業和學術界也對密碼日益重視,不少數學家、計算機學家和其他有關學科的專家也投身於密碼學的研究行列,更加速了密碼學的發展。
在密碼已經成為單獨的學科,從傳統意義上來說,密碼學是研究如何把信息轉換成一種隱蔽的方式並阻止其他人得到它。
密碼學是一門跨學科科目,從很多領域衍生而來:它可以被看做是信息理論,卻使用了大量的數學領域的工具,眾所周知的如數論和有限數學。
原始的信息,也就是需要被密碼保護的信息,被稱為明文。加密是把原始信息轉換成不可讀形式,也就是密碼的過程。解密是加密的逆過程,從加密過的信息中得到原始信息。cipher是加密和解密時使用的演算法。
最早的隱寫術只需紙筆,加密法,將字母的順序重新排列;替換加密法,將一組字母換成其他字母或符號。經典加密法的資訊易受統計的攻破,資料越多,破解就更容易,使用分析頻率就是好辦法。經典密碼學仍未消失,經常出現在智力游戲之中。在二十世紀早期,包括轉輪機在內的一些機械設備被發明出來用於加密,其中最著名的是用於第二次世界大戰的密碼機Enigma。這些機器產生的密碼相當大地增加了密碼分析的難度。比如針對Enigma各種各樣的攻擊,在付出了相當大的努力後才得以成功。
㈣ 通常攻擊密碼都有什麼方法
攻擊密碼系統的方法大概可以分為三種對密碼進行分析的嘗試稱為攻擊。Kerckhoffs最早在19世紀闡明密碼分析的一個基本假設,這個假設就是秘密必須完全寓於密鑰中。Kerckhoffs假設密碼分析者已有密碼演算法及其實現的全部詳細資料。
密碼分析者攻擊密碼系統的方法主要有以下三種。
窮舉攻擊
所謂窮舉攻擊是指密碼分析者採用依次試遍所有可能的密鑰,對所獲密文進行解密,直至得到正確的明文;或者用一個確定的密鑰對所有可能的明文進行加密,直至得到所獲得的密文。顯然,理論上對於任何實用密碼,只要有足夠的資源都可以用窮舉攻擊將其攻破。
窮舉攻擊所花費的時間等於嘗試次數乘以一次解密(加密)所需的時間。顯然可以通過增大密鑰量或者加大解密(加密)演算法的復雜性來對抗窮舉攻擊。當密鑰量增大時,嘗試的次數必然增大。當解密(加密)演算法的復雜性增大時,完成一次解密(加密)所需的時間增大,從而使窮舉攻擊在實際上不能實現。窮舉攻擊是對密碼的一種最基本的攻擊方法。
統計分析攻擊
所謂統計分析攻擊就是指密碼分析者通過分析密文和明文的統計規律來破譯密碼。統計分析攻擊在歷史上為破譯密碼做出過極大的貢獻。許多古典密碼都可以通過分析密文字母和字母組的頻率和其他統計參數而破譯。對抗統計分析攻擊的方法是設法使明文的統計特性不帶入密文。這樣密文不帶有明文的痕跡,從而使統計分析攻擊成為不可能。能夠抵抗統計分析攻擊已成為近代密碼的基本要求。
數學分析攻擊
所謂數學分析攻擊是指密碼分析者針對加解密演算法的數學基礎和某些密碼學特性,通過數學求解的方法來破譯密碼。數學分析攻擊是對基於數學難題的各種密碼的主要威脅。為了對抗這種數學分析攻擊,應當選用具有堅實數學基礎和足夠復雜的加解密演算法。
㈤ DES加密演算法原理
網路安全通信中要用到兩類密碼演算法,一類是對稱密碼演算法,另一類是非對稱密碼演算法。對稱密碼演算法有時又叫傳統密碼演算法、秘密密鑰演算法或單密鑰演算法,非對稱密碼演算法也叫公開密鑰密碼演算法或雙密鑰演算法。對稱密碼演算法的加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數對稱演算法中,加密解密密鑰是相同的。它要求發送者和接收者在安全通信之前,商定一個密鑰。對稱演算法的安全性依賴於密鑰,泄漏密鑰就意味著任何人都能對消息進行加密解密。只要通信需要保密,密鑰就必須保密。
對稱演算法又可分為兩類。一次只對明文中的單個位(有時對位元組)運算的演算法稱為序列演算法或序列密碼。另一類演算法是對明文的一組位進行運算,這些位組稱為分組,相應的演算法稱為分組演算法或分組密碼。現代計算機密碼演算法的典型分組長度為64位――這個長度既考慮到分析破譯密碼的難度,又考慮到使用的方便性。後來,隨著破譯能力的發展,分組長度又提高到128位或更長。
常用的採用對稱密碼術的加密方案有5個組成部分(如圖所示)
1)明文:原始信息。
2)加密演算法:以密鑰為參數,對明文進行多種置換和轉換的規則和步驟,變換結果為密文。
3)密鑰:加密與解密演算法的參數,直接影響對明文進行變換的結果。
4)密文:對明文進行變換的結果。
5)解密演算法:加密演算法的逆變換,以密文為輸入、密鑰為參數,變換結果為明文。
對稱密碼當中有幾種常用到的數學運算。這些運算的共同目的就是把被加密的明文數碼盡可能深地打亂,從而加大破譯的難度。
◆移位和循環移位
移位就是將一段數碼按照規定的位數整體性地左移或右移。循環右移就是當右移時,把數碼的最後的位移到數碼的最前頭,循環左移正相反。例如,對十進制數碼12345678循環右移1位(十進制位)的結果為81234567,而循環左移1位的結果則為23456781。
◆置換
就是將數碼中的某一位的值根據置換表的規定,用另一位代替。它不像移位操作那樣整齊有序,看上去雜亂無章。這正是加密所需,被經常應用。
◆擴展
就是將一段數碼擴展成比原來位數更長的數碼。擴展方法有多種,例如,可以用置換的方法,以擴展置換表來規定擴展後的數碼每一位的替代值。
◆壓縮
就是將一段數碼壓縮成比原來位數更短的數碼。壓縮方法有多種,例如,也可以用置換的方法,以表來規定壓縮後的數碼每一位的替代值。
◆異或
這是一種二進制布爾代數運算。異或的數學符號為⊕ ,它的運演算法則如下:
1⊕1 = 0
0⊕0 = 0
1⊕0 = 1
0⊕1 = 1
也可以簡單地理解為,參與異或運算的兩數位如相等,則結果為0,不等則為1。
◆迭代
迭代就是多次重復相同的運算,這在密碼演算法中經常使用,以使得形成的密文更加難以破解。
下面我們將介紹一種流行的對稱密碼演算法DES。
DES是Data Encryption Standard(數據加密標准)的縮寫。它是由IBM公司研製的一種對稱密碼演算法,美國國家標准局於1977年公布把它作為非機要部門使用的數據加密標准,三十年來,它一直活躍在國際保密通信的舞台上,扮演了十分重要的角色。
DES是一個分組加密演算法,典型的DES以64位為分組對數據加密,加密和解密用的是同一個演算法。它的密鑰長度是56位(因為每個第8 位都用作奇偶校驗),密鑰可以是任意的56位的數,而且可以任意時候改變。其中有極少數被認為是易破解的弱密鑰,但是很容易避開它們不用。所以保密性依賴於密鑰。
DES加密的演算法框架如下:
首先要生成一套加密密鑰,從用戶處取得一個64位長的密碼口令,然後通過等分、移位、選取和迭代形成一套16個加密密鑰,分別供每一輪運算中使用。
DES對64位(bit)的明文分組M進行操作,M經過一個初始置換IP,置換成m0。將m0明文分成左半部分和右半部分m0 = (L0,R0),各32位長。然後進行16輪完全相同的運算(迭代),這些運算被稱為函數f,在每一輪運算過程中數據與相應的密鑰結合。
在每一輪中,密鑰位移位,然後再從密鑰的56位中選出48位。通過一個擴展置換將數據的右半部分擴展成48位,並通過一個異或操作替代成新的48位數據,再將其壓縮置換成32位。這四步運算構成了函數f。然後,通過另一個異或運算,函數f的輸出與左半部分結合,其結果成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重復16次。
經過16輪迭代後,左,右半部分合在一起經過一個末置換(數據整理),這樣就完成了加密過程。
加密流程如圖所示。
DES解密過程:
在了解了加密過程中所有的代替、置換、異或和循環迭代之後,讀者也許會認為,解密演算法應該是加密的逆運算,與加密演算法完全不同。恰恰相反,經過密碼學家精心設計選擇的各種操作,DES獲得了一個非常有用的性質:加密和解密使用相同的演算法!
DES加密和解密唯一的不同是密鑰的次序相反。如果各輪加密密鑰分別是K1,K2,K3…K16,那麼解密密鑰就是K16,K15,K14…K1。這也就是DES被稱為對稱演算法的理由吧。
至於對稱密碼為什麼能對稱? DES具體是如何操作的?本文附錄中將做進一步介紹,有興趣的讀者不妨去讀一讀探個究竟
4.DES演算法的安全性和發展
DES的安全性首先取決於密鑰的長度。密鑰越長,破譯者利用窮舉法搜索密鑰的難度就越大。目前,根據當今計算機的處理速度和能力,56位長度的密鑰已經能夠被破解,而128位的密鑰則被認為是安全的,但隨著時間的推移,這個數字也遲早會被突破。
另外,對DES演算法進行某種變型和改進也是提高DES演算法安全性的途徑。
例如後來演變出的3-DES演算法使用了3個獨立密鑰進行三重DES加密,這就比DES大大提高了安全性。如果56位DES用窮舉搜索來破譯需要2∧56次運算,而3-DES 則需要2∧112次。
又如,獨立子密鑰DES由於每輪都使用不同的子密鑰,這意味著其密鑰長度在56位的基礎上擴大到768位。DES還有DESX、CRYPT、GDES、RDES等變型。這些變型和改進的目的都是為了加大破譯難度以及提高密碼運算的效率
㈥ 簡單的加密演算法——維吉尼亞密碼
學號:16030140019
姓名: 莫益彰
【嵌牛導讀】:凱撒密碼是一種簡單的加密方法,即將文本中的每一個字元都位移相同的位置。如選定位移3位:
原文:a b c
密文:d e f
由於出現了字母頻度分析,凱撒密碼變得很容易破解,因此人們在單一愷撒密碼的基礎上擴展出多表密碼,稱為「維吉尼亞」密碼。
【嵌牛鼻子】密碼學,計算機安全。
【嵌牛提問】維吉尼亞怎麼破解,8位維吉尼亞是否可破?維吉尼亞演算法的時間復雜度?
【嵌牛正文】
維吉尼亞密碼的加密
維吉尼亞密碼由凱撒密碼擴展而來,引入了密鑰的概念。即根據密鑰來決定用哪一行的密表來進行替換,以此來對抗字頻統計。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
當選定RELATIONS作為密鑰時,加密過程是:明文一個字母為T,第一個密鑰字母為R,因此可以找到在R行中代替T的為K,依此類推,得出對應關系如下:
密鑰:RE LA TI ONS RE LA TION SR ELA TIONSREL
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
圖解加密過程:
在維吉尼亞(Vigenère)的密碼中,發件人和收件人必須使用同一個關鍵詞(或者同一文字章節),這個關鍵詞或文字章節中的字母告訴他們怎麼樣才能前後改變字母的位置來獲得該段信息中的每個字母的正確對應位置。
維吉尼亞密碼的破解
維吉尼亞密碼分解後實則就是多個凱撒密碼,只要知道密鑰的長度,我們就可以將其分解。
如密文為:ABCDEFGHIJKLMN
如果我們知道密鑰長度為3,就可將其分解為三組:
組1:A D G J N
組2:B E H K
組3:C F I M
分解後每組就是一個凱撒密碼,即組內的位移量是一致的,對每一組即可用頻度分析法來解密。
所以破解維吉尼亞密碼的關鍵就是確定密鑰的長度。
確定密鑰長度
確定密鑰長度主要有兩種方法,Kasiski 測試法相對簡單很多,但Friedman 測試法的效果明顯優於Kasiski 測試法。
Kasiski 測試法
在英文中,一些常見的單詞如the有幾率被密鑰的相同部分加密,即原文中的the可能在密文中呈現為相同的三個字母。
在這種情況下,相同片段的間距就是密文長度的倍數。
所以我們可以通過在密文中找到相同的片段,計算出這些相同片段之間的間距,而密鑰長度理論上就是這些間距的公約數。
然後我們需要知道重合指數(IC, index of coincidence)的概念。
重合指數表示兩個隨機選出的字母是相同的的概率,即隨機選出兩個A的概率+隨機選出兩個B的概率+隨機選出兩個C的概率+……+隨機選出兩個Z的概率。
對英語而言,根據上述的頻率表,我們可以計算出英語文本的重合指數為
P(A)^2 + P(B)^2+……+P(Z)^2 = 0.65
利用重合指數推測密鑰長度的原理在於,對於一個由凱撒密碼加密的序列,由於所有字母的位移程度相同,所以密文的重合指數應等於原文語言的重合指數。
據此,我們可以逐一計算不同密鑰長度下的重合指數,當重合指數接近期望的0.65時,我們就可以推測這是我們所要找的密鑰長度。
舉例來說,對密文ABCDEABCDEABCDEABC
首先測試密鑰長度=1,對密文ABCDEABCDEABCDEABC統計每個字元出現的次數:
A: 4 B: 4 C: 4 D:3 E:3
那麼對於該序列的重合指數就為:(4/18)^2 + (4/18)^2 + (4/18)^2 +(3/18)^2 +(3/18)^2 != 0.65
然後測試密鑰長度=2,將密文ABCDEABCDEABCDEABC分解為兩組:
組1:A C E B D A C E B
組2:B D A C E B D A C
我們知道如果密鑰長度真的是2,那麼組1,組2都是一個凱撒密碼。對組1組2分別計算重合指數。
如果組1的重合指數接近0.65,組2的重合指數也接近0.65,那麼基本可以斷定密鑰長度為2。
在知道了密鑰長度n以後,就可將密文分解為n組,每一組都是一個凱撒密碼,然後對每一組用字母頻度分析進行解密,和在一起就能成功解密凱撒密碼。
上文已經說到,自然語言的字母頻度是一定的。字母頻度分析就是將密文的字母頻度和自然語言的自然頻度排序對比,從而找出可能的原文。
㈦ 怎麼破密碼
方法一:ADB解鎖
必要條件:USB調試模式為打開狀態
1、手機連接電腦,確定已安裝ADB驅動(手機驅動可通過驅動精靈安裝),解壓ADB工具包至C盤
2、打開cmd輸入 cd c:adb(打開adb所在目錄)
3、接著輸入adb shell
4、繼續輸入cd datasystem
5、輸入ls查看datasystem中的文件,如果設置了密碼會有gesture.key或者password.key
6、若設置的是圖案密碼請繼續輸入命令:rm gesture.key,若設置的是單純密碼請輸入命令:rm password.key
7、輸入reboot命令或者手動重啟手機生效,或者現在直接滑動解鎖,任意密碼都可解鎖,建議重啟。
㈧ 二進制數字密碼的破譯
可以運用ReverseMe來二進制數字密碼的破譯,需要了解以下的內容:
1、寄存器:
寄存器就好比是CPU身上的口袋,方便CPU隨時從里邊拿出需要的東西來使用。常見涉及到的九個寄存器:
EAX:擴展累加寄存器;EBX:擴展基址寄存器;ECX:擴展計數寄存器;
EDX:擴展數據寄存器;ESI:擴展來源寄存器;EDI:擴展目標寄存器;
EBP:擴展基址指針寄存器;ESP:擴展堆棧指針寄存器;EIP:擴展的指令指針寄存器;
這些寄存器的大小是32位(4個位元組),他們可以容納數據從0-FFFFFFFF(無符號數),除了以下三個寄存器,其他我們都可以隨意使用:
EBP:主要是用於棧和棧幀。ESP:指向當前進程的棧空間地址。EIP:總是指向下一條要被執行的指令。
2、棧:棧是在內存中的一部分,它有兩個特殊的性質:
FILO(FisrtInLastOut,先進後出);地址反向增長(棧底為大地址,棧頂為小地址)。
3、CALL指令,call有以下幾種方式:
call404000h;直接跳到函數或過程的地址;calleax;函數或過程地址存放在eax,calldwordptr[eax]。
4、系統API:Windows應用程序運行在Ring3級別,API函數,我們也稱之為系統提供給我們的介面。因為系統只信任自己提供的函數,所以我們要通過API才能實現對內核的操作。
5、mov指令mov指令格式:movdest,src。
這是一個很容易理解的指令,mov指令將src的內容拷貝到dest,mov指令總共有以下幾種擴展:movs/movsb/movsw/movsdedi,
esi:這些變體按串/位元組/字/雙字為單位將esi寄存器指向的數據復制到edi寄存器指向的空間。movsx符號位擴展,byte->word,word->dword(擴展後高位全用符號位填充)。
然後實現mov。movzx零擴展,byte->word,word->dword(擴展後高位全用0填充),然後實現mov。
6、cmp指令,cmp指令格式:cmpdest,src
cmp指令比較dest和src兩個操作數,並通過比較結果設置C/O/Z標志位。
cmp指令大概有以下幾種格式:
cmpeax,ebx;如果相等,Z標志位置1,否則0。cmpeax,[404000];將eax和404000地址處的dword型數據相比較並同上置位cmp[404000],eax;同上。
7、標志位:在破解中起到的作用是至關重要的。
在逆向中,你真正需要關心的標志位只有三個,也就是cmp指令能修改的那三個:Z/O/C。
Z標志位(0標志),這個標志位是最常用的,運算結果為0時候,Z標志位置1,否則置0。
O標志位(溢出標志),在運行過程中,如操作數超出了機器能表示的范圍則稱為溢出,此時OF位置1,否則置0。
C標志位(進位標志),記錄運算時從最高有效位產生的進位值。例如執行加法指令時,最高有效位有進位時置1,否則置0。
掌握這些指令後就可以運用ReverseMe來二進制數字密碼的破譯。
(8)演算法破譯密碼擴展閱讀:
在數學和數字電路中,二進制(binary)數是指用二進制記數系統,即以2為基數的記數系統表示的數字。這一系統中,數通常用兩個不同的符號0(代表零)和1(代表一)來表示。
以2為基數代表系統是二進位制的。數字電子電路中,邏輯門的實現直接應用了二進制,因此現代的計算機和依賴計算機的設備里都用到二進制。每個數字稱為一個比特(二進制位)。
把二進制化為八進制也很容易,因為八進制以8為基數,8是2的冪(8=2),因此八進制的一位恰好需要三個二進制位來表示。八進制與二進制數之間的對應就是上面表格中十六進制的前八個數。二進制數000就是八進制數0,二進制數111就是八進制數7,以此類推。
㈨ 如何破解密碼:識別加密哈希演算法
答:假設你想要查看從外部源來的數據包(可能已用幾個方法加密),並且想用正確的解密工具來解密數據包。第一種答案是「可以」,第二種答案是「這可能是一個非法的活動。」在許多國家,逆向工程保護機制(如加密)是非法的。
盡管如此,如果你還想繼續,你可以在十六進制編輯器里查看二進制文件(DLL, EXE等),它可能會顯示一個字元串,表示一個特定的加密哈希演算法。你還可能發現一個字元串,指示特定的第三方加密庫。
另外還要檢查DLL的名稱。如果存在ssleay.dll或libeay.dll,那麼很容易知道該數據包是用SSL加密的。如果加密使用一個第三方庫,那麼就可以查找該庫導出的功能,看它們採用的是什麼參數,以及它們是如何使用的。然後,你可以捕獲你感興趣的調用:例如,用LIBeay或SSLeay,你可以看ssl_read和ssl_write。這樣你就可以訪問純文本,然後就可以開始轉存整個會話,審查原始協議。
如果加密看起來是內置於可執行文件,或加密作家使用他或她自己的代碼,那麼你需要用調試器來探測,查明在socket read後,數據去哪了。這應該可以幫助您找到解密常式。記住,這些活動要求你有相當廣泛的調試工具和可執行編輯的經驗,所以如果你不熟悉這些,那麼我最後的答案是「不能」。