• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經典案例

    聯系方式

    公司名稱:昆山華航電子有限公司
    公司電話:0512-50139595
    公司郵箱:eric@kshuahang.com
    公司地址:江蘇省昆山市善浦西路

    您當前的位置:首頁 > 技術資源 > 芯片解密

    加密技術及流行加密算法


    深入淺出談加密

    加密技術已經滲透進了整個信息時代,任何人都不可避免地要接觸到――即使你根本不知道“加密”是什么。銀行卡、登錄計算機的口令、電子郵件的賬號密碼……無一例外地跟加密技術緊緊聯系在一起
    任何一個安全專家提起如今信息技術的安全保護措施,都不可避免要涉及一個詞:加密(encrypt)。的確,縱觀當今信息世界,加密離我們并不遙遠,從小小的個人密碼,到重要機密文件,無一不是經過加密后的產物。
    許多人一提起“加密”,都會有一種畏懼心理,以為加密技術絕對是“新手勿近”的尖端科技。其實不然,加密實際上一直陪伴在你一生的成長之中,回憶一下小時候很多人都玩過的智力游戲:007收到遇害同事的字條,上面寫著4FEFKKILJK81IP,根據事先約定,已知C=3、Q=H,問該同事要傳遞什么信息給007?如果把這道題目放到信息技術領域來看待,就是一條經過簡單替換字符算法加密的字符串,它把原始字符改為使用相對應的數字排序來替代,從而產生了一組“沒有意義”的字符組合,但是因為我們知道C=3等若干條件,所以稍加排序即可得到這樣的句子:Do not trust Hary,這個過程也被稱為“解密”(decrypt)。
    有些讀者也許會不屑一顧,就這么簡單的游戲也算加密?別忘了,我們是在已經知道“C=3”的前提下完成“解密”的,換句話說,也就是已經知道了“算法”,否則光憑以上一組不知所云的字符串,誰能解開其中的秘密?

    加密和解密
    “就不讓你直接看到信息”――將與之相似的思路加以擴充,便成了“加密”的來由;而拓展“我偏要看到你不想讓我看的信息”的思想,則發展出了“解密”技術。加密和解密從誕生之日起,就是一對不可分割的難兄難弟。
    加密作為保障數據安全的一種方式,很早就出現在人類的信息傳遞中,從遠古時代開始,人們就已經在采用一種如今稱為“編碼”(Code)的方法用于保護文字信息。最早影響全世界的加密技術誕生于戰爭年代,由德國人發明,用于傳遞情報信息;而最早影響全世界的解密技術,也誕生于戰爭年代,由英美人開發出來用于破譯德國人的情報信息。正是戰爭讓加解密技術不斷改進發展,直到現在,加密技術仍然在為信息時代的數據安全服務。
    說了這么多,也該為加密技術做一個較為準確而科學的概念了,所謂“加密”,就是對原內容為明文的文件或數據按某種算法進行處理,使其成為不可讀的代碼,經過這樣處理的數據通常稱為“密文”,密文只能在經過相對應的反向算法處理后才能恢復原來的內容,通過這樣的途徑來達到保護數據不被非法竊取、閱讀的目的,而將該編碼信息轉化為其原來數據的過程,就是“解密”。
    無論哪一個國家,都會有專家專注于加密技術的研究,因此也就出現了形形色色的加密算法,這些加密算法按照生物界“弱肉強食”的定律發展并完善著。其中,強度高(不容易被破解)的算法得以保留和繼續發展,強度低的算法最終被時間淘汰。除了一些公開的加密算法之外,也存在著一部分未公開的私人加密算法。通常我們提及加密技術時所說的“MD5加密”、“SHA-1加密”、“RSA加密”等,其實就是在說它們所采用的算法。

    算法:關鍵的抉擇
    “我想要葡萄,還想要橙子,可是我只能選擇其中一樣,我該選哪個?”如果要為自己的數據加密,我們就不得不面對這樣一個選擇,因為世界上的算法不止一個,究竟什么算法才是最適合的呢?于是,我們逐漸陷入一個選擇的泥潭中。其實,在選擇使用哪種算法作為你的加密基礎前,如果能對各種常見算法的原理有個大概的了解,相信你就不會感到那么迷茫了。

    基于“消息摘要”的算法
    “消息摘要”(Message Digest)是一種能產生特殊輸出格式的算法,這種加密算法的特點是:無論用戶輸入什么長度的原始數據,經過計算后輸出的密文都是固定長度的,這種算法的原理是根據一定的運算規則對原數據進行某種形式的提取,這種提取就是“摘要”,被“摘要”的數據內容與原數據有密切聯系,只要原數據稍有改變,輸出的“摘要”便完全不同,因此,基于這種原理的算法便能對數據完整性提供較為健全的保障。但是,由于輸出的密文是提取原數據經過處理的定長值,所以它已經不能還原為原數據,即消息摘要算法是“不可逆”的,理論上無法通過反向運算取得原數據內容,因此它通常只能被用來做數據完整性驗證,而不能作為原數據內容的加密方案使用,否則誰也無法還原。盡管如此,“消息摘要”算法還是為密碼學提供了健全的防御體系,因為連專家也無法根據攔截到的密文還原出原來的內容。
    如今常用的“消息摘要”算法經歷了多年驗證發展而保留下來的算法已經不多,這其中包括MD2、MD4、MD5、SHA、SHA-1/256/383/512等,其中最廣泛應用的是基于MD4發展而來的MD5算法。
    MD5算法
    MD5算法的全稱是“消息摘要算法5”(Message-Digest Algorithm version.5),它是當前公認的強度最高的加密算法。出現在MD5之前的是MD2和MD4,雖然這三者的算法結構多少有點相似,但是由于MD2誕生于8位計算的時代,因此它的設計與后來出現的MD4、MD5完全不同,因此不能進行簡單的替代。然而,無論是MD2、MD4還是MD5,它們都是在獲得一個隨機長度信息的基礎上產生一個128位信息摘要的算法。
    MD2算法是Rivest在1989年開發的,它很慢(因為是為8位機器設計的),但相當安全。在這個算法中,首先要對信息進行數據補位,使信息的字節長度是16的倍數。然后,以一個16位的檢驗和追加到信息末尾,并且根據這個新產生的信息計算出散列值(Hash),最終運算結果即為類似于“d41d8cd98f00b204e9800998ecf8427e”的摘要,而且這個值是惟一的。
    為了加強算法的安全性,Rivest在1990年又開發出MD4算法。MD4算法同樣需要填補信息以確保信息的字節長度加上448后能被512整除(信息字節長度除以512的余數為448)。然后,一個以64位二進制表示的信息的最初長度被添加進來。

    然而,MD4存在一個嚴重漏洞,那就是“沖突”(Collisions)?!皼_突”是所有基于“摘要”的算法都要面對的最大問題,由于它們是根據“不完整”的數據內容產生的密文,如果運算過程存在瑕疵,就會在處理某些不同數據時產生相同的摘要,這帶來的后果可是致命的。因為“摘要”算法的原則是原數據不可還原,因此驗證的過程并不同于簡單加密運算里的“數據還原匹配”,驗證端同樣要根據原數據運算得到的摘要作為憑據與客戶端發來的摘要進行匹配檢驗,如果兩段字符串完全相同,即視為驗證通過。這是在“摘要算法”理論上“不可逆且惟一”的基礎上采用的安全檢驗方法,驗證方可以不需要索取原數據,而只要擁有一個有效的摘要即可完成對客戶端的身份確認,大大減少了原數據被入侵者截獲的幾率。
    但是這樣的驗證方式就產生了一個“看似不可能”的缺陷:假如入侵者能偽造出一段數據,使之能在通過“摘要”計算后產生的摘要與真正的原數據產生的摘要一樣,那么入侵者便能冒充原數據持有者通過身份驗證。這在理論上是不可能的,然而現實總是不會讓人那么愉快,由于算法不可避免地出現了漏洞,使得這個設想成為了事實,這就是“沖突”的來源:某兩個或多個數據產生的摘要出現了完全雷同的現象,使得用戶能在輸入了即使不是原數據的密碼后能順利通過驗證,因為身份檢驗程序發現原本儲存的用戶信息的簽名數據與接收到的數據的運算結果完全一致,于是認為請求方為合法用戶,就給予通過了。這種運算結果相同的現象,就是“沖突”。

    “沖突”會造成非常危險的后果,因此MD4被無情地拋棄了,取而代之的是在MD4基礎上加強了算法的MD5,它在MD4的基礎上增加了“安全帶”(Safety Belts)的概念,雖然MD5比MD4稍微慢一些,但卻大大減小了沖突的發生率,雖然很早以前就有專家發現MD5算法在專門用于尋找“沖突”的機器上平均每24天就會產生一個“沖突”,但是對于一般應用來說,這種幾率非常低微,因此MD5至今仍然是最強健的加密算法之一。
    有讀者也許會問,既然MD5是不可逆的,那么網絡上存在的那些“MD5密碼破解工具”又是什么回事?其實,那并不是破解,至今MD5還沒能被完全破解過,雖然曾經有過一篇報道稱中國的一個教授破解了MD5加密算法,但是后來這個結論又被推翻了。網絡上流傳的那些工具純粹是依賴于“運氣+機器性能+耐心”的產品而已,它們的原理是“窮舉”,即程序在一定的數據范圍內產生一系列數據組合進行MD5運算,再把運算結果與獲取的摘要進行比較,如果兩者相同,就被定義為“破解”了。這只是一種窮舉法而已,實際意義不大,要知道在不產生沖突的前提下生成一個與原數據完全相同的字符串要有多少運氣的成分,更何況它還完全依賴于你的機器性能,如果對方密碼簡單如123456這樣的形式,我們還可能僥幸在1分鐘~1天內運算出來,但是如果對方密碼是0e1WeTru9t@MD5這樣的組合呢?MD5的高強度使得它如此難以破解,因此成為大眾首選,許多入侵者在辛苦取得目標網站數據庫后,一看password字段都是0ca175b9c0f726a831d895e269332461的形式,第一反應都會是“暈倒!又白干了!”
    對稱/非對稱密鑰加密算法
    由于“摘要”算法加密的數據僅僅能作為一種身份驗證的憑據使用,如果我們要對整個文檔數據進行加密,就不能采用這種“不可逆”的算法了。“密鑰”算法(Key Encoding)的概念因此而被提出,與開頭提到的智力題類似,此類算法通過一個被稱為“密鑰”的憑據進行數據加密處理,接收方通過加密時使用的“密鑰”字符串進行解密,即雙方持有的“密碼”相同(對稱)。如果接收方不能提供正確的“密鑰”,解密出來的就不是原來的數據了。
    以上是“對稱密鑰”的概念,那么“非對稱密鑰”又該怎么理解呢?有人用郵箱作為比喻,任何人都可以從郵箱的信封入口塞進信件,但是取信的權力卻僅僅在于持有郵箱鑰匙的人的手上。這個眾人皆知的信封入口就是“公鑰”(Public Key),而你持有的郵箱鑰匙就是“私鑰”(Private Key)。這種算法規定,對方給你發送數據前,可以用“公鑰”加密后再發給你,但是這個“公鑰”也無法解開它自己加密的數據,即加密過程是單向的,這樣即使數據被途中攔截,入侵者也無法對其進行破解,能還原數據內容的只有“私鑰”的持有者,這就是“非對稱密鑰”加密算法,也稱為“公共密鑰算法”。
    你也許會想,這兩種形式加密出來的數據如果稍加耐心進行分析,一定能找到變化規律從而直接破解。這個想法沒錯,但是專家早就思考過這個可能性了,因此這種算法雖然是采用某個字符串作為憑據進行加密操作的,可是它可能把憑據拆分為多個不同的“子段”并進行多次運算,最終的結果就是讓你難以發現變化的規律,破解也就難上加難。
    基于“對稱密鑰”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等;基于“非對稱密鑰”的加密算法主要有RSA、Diffie-Hellman等。
    對稱密鑰:DES、TripleDES算法
    美國國家標準局在1973年開始研究除國防部以外其他部門的計算機系統的數據加密標準,最終選用了IBM公司設計的方案作為非機密數據的正式數據加密標準(DES即Data Encryption Standard)。DES算法從誕生開始,就被各個領域廣泛采用,包括ATM柜員機、POS系統、收費站等,DES以它高強度的保密性能為大眾服務,那么,它是如何工作的呢?
    DES算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位。首先,DES把輸入的64位數據塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,并進行前后置換,最終由L0輸出左32位,R0輸出右32位,根據這個法則經過16次迭代運算后,得到L16、R16,將此作為輸入,進行與初始置換相反的逆置換,即得到密文輸出。
    DES算法具有極高的安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法,而56位長密鑰的窮舉空間為256,這意味著如果一臺計算機的速度是每秒種檢測100萬個密鑰,那么它搜索完全部密鑰就需要將近2285年的時間,因此DES算法是一種很可靠的加密方法。
    對稱密鑰:RC算法
    RC系列算法是大名鼎鼎的RSA三人組設計的密鑰長度可變的流加密算法,其中最流行的是RC4算法,RC系列算法可以使用2048位的密鑰,該算法的速度可以達到DES加密的10倍左右。
    RC4算法的原理是“攪亂”, 它包括初始化算法和偽隨機子密碼生成算法兩大部分,在初始化的過程中,密鑰的主要功能是將一個256字節的初始數簇進行隨機攪亂,不同的數簇在經過偽隨機子密碼生成算法的處理后可以得到不同的子密鑰序列,將得到的子密鑰序列和明文進行異或運算(XOR)后,得到密文。
    由于RC4算法加密采用的是異或方式,所以,一旦子密鑰序列出現了重復,密文就有可能被破解,但是目前還沒有發現密鑰長度達到128位的RC4有重復的可能性,所以,RC4也是目前最安全的加密算法之一。
    非對稱密鑰:RSA算法
    RSA算法是目前最流行的公鑰密碼算法,它使用長度可以變化的密鑰。RSA是第一個既能用于數據加密也能用于數字簽名的算法。
    RSA算法的原理如下:
    1.隨機選擇兩個大質數p和q,p不等于q,計算N=pq;
    2.選擇一個大于1小于N的自然數e,e必須與(p-1)×(q-1)互素。
    3.用公式計算出d:d×e = 1 (mod (p-1)×(q-1)) 。
    4.銷毀p和q。
    最終得到的N和e就是“公鑰”,d就是“私鑰”,發送方使用N去加密數據,接收方只有使用d才能解開數據內容。
    RSA的安全性依賴于大數分解,小于1024位的N已經被證明是不安全的,而且由于RSA算法進行的都是大數計算,使得RSA最快的情況也比DES慢上好幾倍,這也是RSA最大的缺陷,因此它通常只能用于加密少量數據或者加密密鑰。需要注意的是,RSA算法的安全性只是一種計算安全性,絕不是無條件的安全性,這是由它的理論基礎決定的。因此,在實現RSA算法的過程中,每一步都應盡量從安全性方面考慮。

    小密碼,大學問
    隨著信息化走進千家萬戶,人們越來越關注自己的數據安全,而數據安全除了在攻防體系上必須有所保障以外,關鍵的一點就是要對其進行強度夠高的加密,進一步減小數據被盜竊后的損失。這一觀點早已在網絡論壇的發展中得到了證實,早期的論壇數據庫都是未經過加密處理就直接保存的,在這個前提下,只要入侵者拿到了數據庫,就等于拿到了整個論壇,因為密碼字段是明文形式的。有些重要的網站甚至使用一些后臺沒有提供數據加密方案的程序做站點,這是非常不明智的。
    確定了加密方案后,有些人就自己寫算法進行數據加密,殊不知這也算產生了安全隱患,通常個人無法寫出高強度的加密算法,入侵者如果稍加分析便能破譯內容,你的辛苦也就付之東流。相反,如果采用在國際得到安全認證的流行加密方案,數據安全反而提高了,何樂而不為?


    上一篇:燒斷引腳單片機解密
    下一篇加密解密2光盤中一個CRACKME的算法分析
    溫馨提示:
    凡在本公司進行電路板克隆業務的客戶,必須有合法的PCB設計版權來源聲明,以保護原創PCB設計版權所有者的合法權益;
    【 字體: 】【打印此頁】 【返回】【頂部】【關閉

    主站蜘蛛池模板: 久久免费观看视频| 国产无人区卡一卡二卡三网站| 午夜dj在线观看免费高清在线 | 丝袜人妻一区二区三区网站| 豆奶视频最新官网| 日本大片免a费观看在线| 国产又黄又大又粗的视频| 久久精品国产亚洲夜色AV网站| 黑人啊灬啊灬啊灬快灬深| 日韩人妻系列无码专区| 国产偷v国产偷v国产| 久久久xxxx| 精品日韩一区二区三区视频 | 国产欧美日韩一区二区三区 | 色欲AV无码一区二区三区| 无码人妻精品一区二| 台湾佬中文娱乐网在线更新| 久久国产精品99国产精| 视频一区二区三区免费观看| 日产国产欧美视频一区精品| 啊灬啊灬啊灬快好深用力免费| 一级毛片不收费| 狠狠色婷婷丁香六月| 国产精品美女一区二区| 亚洲中文无码a∨在线观看| 成人黄色在线网站| 日日碰狠狠添天天爽不卡| 午夜免费电影网| 99在线精品免费视频九九视| 欧美成人综合在线| 国产情侣一区二区三区| 中日韩欧美电影免费看 | 国产亚洲欧美在线| 一级毛片免费的| 毛片免费在线视频| 国产漂亮白嫩美女在线观看 | 樱桃视频影院在线观看| 国产免费一区二区三区在线观看| 中文字幕国产剧情| 波多野结衣看片| 国产欧美日韩一区二区三区在线|