密碼技術,密碼技術原理是什么?
密碼技術,密碼技術原理是什么?
密碼技術是一個科學研究領域。在這個領域中,密碼員致力于設計和開發加密系統,即能保護敏感數據免于黑客、竊聽者和行業間諜侵犯的系統。加密方法還用于用戶間和計算機系統間的身份驗證。密碼員主動嘗試破解正是由他們自己創建的系統,以了解系統的局限性。在制造業中破壞已創建的東西這種概念是常見的。它可以證明汽車等產品的可靠性和安全性。今天,實踐中一個常用的方法是以錢和“聲譽”的方式為破解方案提供獎賞,從而在破解加密方案方面獲得公眾的幫助。
加密將一些輸入轉換為沒有正確密鑰則不能讀取的輸出。它的執行方法是運行某種算法,將某個稱作明文的輸入轉換為一種稱作密文的加密形式。雖然算法總以同樣的方式工作,但是密鑰的使用確保了輸出總是不同(假設輸入相同)。同樣的明文使用不同的密鑰將產生不同的密文。密鑰也用于反向使用同一算法解鎖加密的數據。因為算法通常是公用的且眾所周知,所以好的加密依賴于堅固的算法并避免使用脆弱的密鑰。
加密技術主要有三種,兩種用于加密文本、圖形和其它信息,有正確密鑰的人可以使它們恢復。第三種用于身份驗證和完整性檢查,對輸入加密但不打算恢復它。
?秘密密鑰密碼技術 使用單個密鑰加密和解密信息,這種技術稱為對稱密鑰加密。加密的信息可能存儲在磁盤上,或者在非安全通道上傳送。因為只有一個密鑰,所以必須有某種形式的密鑰交換(如親自交換、通信公司交換等)。
?公共密鑰密碼技術 用公共密鑰加密的數據只能由相應的私有密鑰進行解密。它使用兩個密鑰:一個用于加密、一個用于解密。因此,這種方案是不對稱的。每個人有一組密鑰,一個私人持有,另一個公共可用。若要向某人發送一個秘密信息,則使用收件人的公用密鑰將信息加密。然后收件人以其私鑰將之解密。這消除了在加密前事先要交換密鑰的問題。
?散列函數 散列函數是一個算法,它可以產生信息的惟一“指紋”,借以證明自從創建后沒有改變過它,散列函數只能單向工作。該算法的輸出稱為信息摘要。消息摘要對于給定消息來說是很小的并且實際上是唯一的,它通常用作數字簽名和數字時間戳記中的元素。對于信息運行同樣算法的收件人應該得到同樣的摘要;否則,信息就是可疑的。該技術用以為信息和文檔進行數字簽名。
?
加密過程
最著名的加密算法之一是美國政府開發的DES(數據加密標準)。DES是IBM公司于1972年研制成功的,目的在于保護公司的機密產品。美國商業部所屬國家標準局NBS也開始了一項計算機數據保護標準的發展規劃,這一舉措導致了DES的出臺,并于1977年正式批準作為美國聯邦信息處理標準。該標準在國際上引起極大重視,同時ISO也將DES指定為數據加密標準。
DES是一種分組加密算法,它使用的算法通過將信息進行一個模糊算法的多次迭代或循環來加密并掩蓋它。該過程如圖C-26所示,在下面的描述中做了很大簡化。DES所使用的密鑰長度為64位,由占56位長度的實際密鑰和每個字節的第8位的奇偶校驗碼這兩部份組成。它以64位為一組,將明文分成若干個分組,每次利用56位密鑰對64位的二進制明文分組進行數據加密,產生64位的密文。DES算法的密鑰可以是任意的一個56位的數,且可在任意的時候改變。
為了將加密過程形象化,可以設想將正在加密的信息分割開來,然后像線一樣再編織在一起。密鑰值用以在過程的每次捻轉(迭代)期間使用不同的顏色將線“染色”。
1.明文分為64位的塊。每一個塊通過算法的16次迭代獨立進行處理。
2.同時,56位密鑰一分為二。在每次迭代中,每一半的位向左移位以更改密鑰值(像更改在線要應用的顏色一樣)。
3. 64位的塊一分為二(現在我們有兩條線),然后右半部分和步驟2中創建的兩個一半的密鑰合并(這像對線之一染色)。
4.使用特定的技術(非常復雜,此處不做討論)再次轉換步驟3的結果;然后,這個結果和64位塊的左半部分合并(像在另一條線中編織一樣)。
5.前面各步驟的結果變為新的右半部分。現在同一64位塊的下一次迭代準備開始。上次迭代的右半部分變為新的左半部分(將要染色的線)。同樣,密鑰的左半部分和右半部分位向左移位元,然后合并以創建新的密鑰(像更改顏色一樣)。
6.使用新的左半部分和新的右半部分再為其他15次迭代重復此過程。這樣就產生了密文的第一個64位塊。
7.下一個64位塊使用同樣的過程處理。
密碼分析
密碼分析是分析一個密碼系統以驗證其完整性或找到其弱點。攻擊者可以采用后一種途徑侵犯系統或者查看敏感信息。
十分有趣的是,DES和其它算法是公開發布的,且眾所周知,因此任何試圖破解DES加密密文的人都可以使用該算法進行工作。但實際上,該算法對于“解密者”可能并非如此有用。相反,密碼破譯者只要嘗試找到正確的密鑰,但這不是一個簡單的任務。在發現正確的密鑰前,解密者已經使用了幾百或幾千臺計算機的數組試過了幾百萬個密鑰。
DES的56位密鑰大小在對抗攻擊時不再被認為是安全的。EFF(電子前沿技術基金會)最近使用一個定制的計算機系統使用三天時間花費25萬美元破譯了56位DES!在另一次嘗試中,EFF組織了100 000臺基于因特網的個人計算機在不到一天的時間內破解了DES。從那時候開始,美國商務部已建議不使用56位DES。現在它建議使用三重DES。
世界各國政府在加密的使用上都進行了控制,并限制密鑰的大小。但是由于黑客攻擊和破解代碼的激增,有些政府已經放松了控制。1999年,法國政府宣稱試圖控制加密技術不落入罪犯之手是沒有實效的。
有一種稱為強力攻擊的方法,它嘗試每種可能的密鑰以解密密文。一般情況下,經常使用常用密碼詞典(在因特網上可以免費得到),如果使用了脆弱的密碼,則這種攻擊經常會成功。這種密碼是指普通名稱、詞典中的單詞和普通縮寫。如果使用長密鑰,以及如果密鑰以無意義的模式混合了數字和字符,則強力攻擊會很困難。據估計,lOO位的密鑰破解起來需要幾百萬到幾十億年時間。但是,系統中的弱點可能會減小需要嘗試的密鑰數,并因此使得攻擊可行。
另一種可能性是密碼破譯者知道加密信息中的內容并具有創建密文的算法。在這種情況下,密碼破譯者能夠分析原始明文、算法和產生的密文,以找到系統中的一些型式和弱點。推斷出信息內容通常不難,在流行的文字處理器中創建的文檔經常有隱藏的格式代碼和頭信息。發票和其它業務文檔通常有公司的名稱和地址。個人或系統的名稱可能在整個文檔中重復。
密碼破譯者甚至可能找到一種方法,在敏感文檔加密前在它里面插入某個文本,然后使用某種技術在密文中查找該信息。還有一些特殊的技術,稱為微分密碼分析。在這種方法中,交互且迭代的過程進行多次循環,且使用前面循環的結果破解密文。
圖C-26 DES加密算法(簡化)
RFC1984IAB和IESG關于密碼技術和因特網的報告(1996年8月)概述了IAB(因特網體系結構委員會)和IESG(因特網工程指導組)的一些考慮事項,這些考慮是針對于因特網上的安全和有些政府在加密方法上施加的限制政策。
加密程序類型
如上所述,加密程序有對稱的(單密鑰)和不對稱的(二密鑰)之分。對稱方案也稱為秘密密鑰加密方案。單密鑰既用于加密和也用于解密信息。DES是對稱算法。如果向某人發送一個加密的信息,則為了對方能解密該信息必須給其一個密鑰的副本。這在某些環境中會成為一個問題,尤其如果不認識收件人并需要經過不信任的人或方法傳輸或傳送密鑰時。怎樣確保不會泄露密鑰的秘密?不對稱公用密鑰方案解決了這個問題。
使用不對稱公用密鑰密碼技術方案,用戶獲得一對密鑰,一個是公用的,一個是私有的。密鑰是聯系在一起的,以便使用一個密鑰加密的信息僅可以使用另一個進行解密。公用密鑰可以發送給其它用戶或放在公用服務器上。私鑰由所有者保有,從不泄露。要向某個人發送一個私人信息,應使用收件人的公用密鑰加密該信息。一旦收到,收件人就使用其私鑰解密該信息。公用密鑰方案使計算機安全發生了革命性變化,它提供使電子商務成為可能、驗證用戶身份、驗證和加時間戳于文文件和程序、交換安全電子信息等的方法。
Kerberos是一種普通的秘密密鑰系統。傳統上它使用DES并依賴于存放在網絡上的所有用戶(和業務)的秘密密鑰的第三方主機系統(通常是內部網環境中的安全服務器)。Kerberos服務器處理的事情包括創建用戶登錄到網絡系統時提交的證書等。 Kerberos提供三種安全等級:
1) 只在網絡開始連接時進行認證,認為連接建立起來后的通信是可靠的。認證式網絡文件系統(Authenticated network file system) 使用此種安全等級。
2) 安全消息(sage messages)傳遞:對每次消息都進行認證工作,但是不保證每條消息不被泄露。
3) 私有消息(private messages)傳遞:不僅對每條消息進行認證,而且對每條消息進行加密。Kerberos在發送密碼時就采用私有消息模式.
對稱算法具有下列特征:
?塊或流密碼模式 在塊密碼模式中,明文分為塊,每一塊在多個循環(迭代)中單獨處理。在流密碼模式中,處理的是原始比特流。流模式通常更快。
?密鑰大小 密鑰大小(位數)決定算法的強度,密鑰越長提供的強度就越大。有些算法具有固定的密鑰大小,而其它算法允許密鑰大小變化。密鑰越長,進行加密需要的時間也越多。在存儲某些重要文件的時候,長密鑰是非常需要的,因為這樣在未來的很長時間密鑰能夠繼續有效。短期的事務使用較小的密鑰大小也就夠了。
?塊大小 塊大小是指,對于塊密碼,所處理的塊的大小。
?循環 加密過程中塊執行過的迭代次數。循環越多越好,但處理過程需要的時間也越長。
下面介紹最常用的加密算法。讀者還可以參考Linktionary! Web站點中能獲得提供附加信息的因特網RFC Web站點列表。
DES(數據加密標準)和三重DES
DES是由IBM公司于20世紀70年代開發的,被美國國家標準局(現在稱為NIST (美)國家標準和技術研究所)所采納。DES于1977年成為美國政府的官方數據加密標準。該標準在國際上引起極大重視,同時ISO也將DES指定為數據加密標準。1997年,NIST開始尋找一種DES替代算法。
DES是一種私鑰密碼技術,它使用一種算法以56位的密鑰、64位的塊加密數據。56位密鑰提供的可能密鑰組合數目有1015之多。另外,數據流中的每個塊使用密鑰的不同變化加密,這減小了長傳輸過程中編碼方案泄露的可能性。
與其它方法比較,DES速度很快,它起初旨在運行于硬件中。假定可以安全地處理密鑰交換,它用起來也很簡單。DES還可供個人使用,用于加密存儲的信息。許多路由器供貨商使用DES加密公用網絡上傳輸的信息。
因為DES比公用密鑰方法速度更快,所以它經常用于加密信息文本本身。其次,用于DES加密的密鑰使用公用密鑰加密方法自加密,并隨著信息發送給接收方。因為公用密鑰方法提供了一種在公用網絡上發布密鑰的安全方式,而DES提供了快速的加密,所以這種策略收到了良好的效果。
因本節前面提到的攻擊,DES現在缺乏公眾信任。
三重DES是一種安全形式的DES(稱為3DES),它具有156位的密鑰長度,在每個數據塊上執行三次DES操作(加密、解密和加密)。設兩個密鑰是K1和K2,其算法的如下:
1)用密鑰K1進行DES加密。
2)用K2對步驟1的結果進行DES解密。
3)用步驟2的結果使用密鑰K1進行DES加密。
CAST-128,CAST-256
CAST-128和CAST-256是對稱加密算法。它的名稱來源于其設計者(Carlisle Adams和Stafford Tavares)。CAST使用大的密鑰大小,旨在即使計算機處理能力不斷提高,也能將數據很好地加密并保護到21世紀。對稱加密算法使用單個密鑰加密及解密數據。密鑰由加密數據的人保存,并可以給其它需要解密數據的人。相反,公用密鑰密碼技術是不對稱的,因為它們有兩個密鑰,一個私鑰用于加密,而一個公鑰用于解密。
Cast-128加密算法是一種類似于DES的置換組合網(SPN)加密系統,對于微分密碼分析、線性密碼分析、密碼相關分析具有較好的抵抗力。這種加密還有其他的幾個理想的特點,包括雪崩、嚴格的雪崩標準(SAC)、位獨立標準(BIC)、沒有互補屬性也不存在軟弱或者半軟弱的密鑰。因此對于整個Internet社區——要求密碼強壯、容易獲取的加密算法——而言,這是一種能夠滿足一般應用的很好的選擇。
CAST-256是CAST的最新最安全版本。原始的CAST設計是為了在通用計算機上給出較高的軟件性能。CAST-256創始于1997年,其算法現在由Entrust Technologies( http://www.entrust.com )管理并發布。
CAST-256可用于替換DES。它的密鑰大小更為靈活,塊大小更大,因此提供了更高級別的安全性。CAST-256支持的密鑰大小為128、160、192、224和256位,塊大小為128位。CAST主要優點是其速度。它設計為在硬件或軟件中都能以高性能級別運行,并可以為特殊應用程序(如系統間大容量傳輸數據的加密)調整以提供更高的性能。
Blowfish和Twofish
Blowfish是一種可以免費得到的公用域數據加密程序,旨在無論破解或破譯(使用密碼分析)此類加密的能力如何進步,都能在未來許多年內保護數據。Blowfish由Bruce Schneier于1993年使用Niels Fergusen開發的設計標準開發。32位處理器的誕生后,Blowfish算法在加密速度上超越了DES,引起了人們的關注。Blowfish算法沒有注冊專利,不需要授權,人們可以免費使用。
Blowfish算法是一種取代了DES和IDEA的加密算法。它是一種對稱(秘密或個人密鑰)的分組密碼,使用32位至448位的可變長度密鑰,應用于內部加密或加密輸出。(美國政府禁止加密輸出軟件使用40位以上的密鑰,除非軟件有特殊用途)。
該算法的計算經歷兩個階段。在第一階段,用戶提供的多達448位的密鑰在總計達4168字節的幾個子密鑰數組中擴展。在第二階段,數據使用密鑰數組分為用以加密的64位塊。技術上,“數據加密經由16循環Feistel網絡發生。每個循環由密鑰相關的排列和密鑰及資料相關的替換組成。所有的運算是32位字上的異或運算和加法運算。唯有附加操作是在每個循環中四次檢索數組數據查找。”
后來,Bruce創建了Twofish算法,他將之作為當前DES(數據加密標準)的替代方法提交,Twofish基于Blowfish,但更適合于32位微處理器、8位智能卡微處理器和專用硬件。設計中的一些折衷是為了允許實施者在加密速度、密鑰設置時間、代碼大小、RAM、ROM和門計數等性能變量間取得平衡。
其它塊加密程序
人們可能會遇到許多其它的塊加密程序。下面列出了其中最重要的一些。請時刻記住存在其它的加密技術,其中包括在“公用密鑰密碼技術”中討論的公用密鑰密碼系統。
?IDEA(國際數據加密算法)IDEA是一種面向塊的秘密密鑰(單密鑰)加密算法,由Swiss Federal Institute of Technology開發。與DES的56位密鑰相比,IDEA是作為迭代的分組密碼實現的,它使用128位密鑰,并在八個循環中加密64位塊。IDEA以軟件使用時速度不快,但它已經在處理器芯片上實現而提高了性能。該算法被認為適用于電子商務。
通過支付專利使用費(通常大約是每個副本$6.00),可以在全世界廣泛使用IDEA。這些費用是在某些區域中適用,而其它區域并不適用。IDEA被認為是極為安全的。使用128位的密鑰,蠻力攻擊中需要進行的測試次數與DES相比會明顯增大,甚至允許對弱密鑰測試。而且,它本身也顯示了它尤其能抵抗專業形式的分析性攻擊。
?SAFER(安全和快速加密例程) 實現64位塊和一個64位密鑰大小的面向字節的塊加密程是可由用戶選擇的。該加密程序使用1字節的操作,這使它適于在智能卡和其它處理能力有限的設備中使用。其最新版本SK-64和SK-128在密鑰的實現方式上針對一些弱點進行了功能加強。SAFER是非專利的。
?Skipjack 這種加密算法用于由NSA設計的Clipper芯片中,該芯片是一個旨在使通信安全化的設備。該算法從1985年開始設計,于1990年完成,1993年將告知眾人,但算法一直保密,沒有公開。Skipjack使用80位密鑰和64位塊。每—個芯片還包含一個分割為兩部分的80位密鑰,每一部分存儲在單獨的密鑰寄托機構中。密鑰片斷可以獲得并組合(按照法院指令)以恢復使用特定芯片加密的信息。Skipjack最初被歸為機密,這意味著它不會受到公眾密碼分析的攻擊,也因此對于該系統幾乎沒有任何信任。從那時起,NSA已經將該算法解密。
?FEAL(快速數據加密算法)該算法被認為不安全。
NIST高級加密標準(AES)
1997年,美國國家標準研究所(National Institute of Standards)宣布它希望使用新的AES(高級加密標準)替換DES, AES可以很好地在21世紀的前四分之一世紀提供強大的加密手段。密鑰長度將超過128且長度可變。NIST評估了由個人和組織開發的算法,收到了十五個提交的方案,NIST在2000年晚些時候選擇了Rijndael.
?MARS由IBM開發,發展了原始的DES
?RC6由RSA的發明者之一Ron Rivest開發
?Rijndael由Joan Daemen和Vincent Rijmen于比利時共同開發
?Serpent由英國的Ross Anderson、以色列的Eli Biham和挪威的Lars Knudsen共同開發
?Twofish由BlowFish的開發商Counterpane Systems開發
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
- [通信網絡] 量子計算與網絡安全的挑戰有哪些 2023-08-16
- [安全設備/系統] 量子計算會成為下一代網絡安全威脅? 2023-07-03
- [電子說] 華翼微電子安全芯片與密碼技術實驗室 通過濟南市重點實驗室備案 2022-05-11
- [電子說] 科技云報道:為什么說無密碼技術是身份認證的未來? 2023-05-17
- [移動通信] 如何采用后量子密碼技術保護衛星數據通信 2023-04-04
- [電子說] 10Gb每秒!SM4的單核“心”!海泰攜手海量數據安全“閃”護 2022-12-06
- [存儲技術] 淺析數據保密性:國密算法和國際算法用途 2022-11-07
- [安全設備/系統] 關于SSO和無密碼技術攻擊者指南分享 2022-11-04
( 發表人:admin )