密碼學03 對稱密碼演算法

2022-03-21 11:35:30 字數 1865 閱讀 5615

前一篇文章【密碼學02

】密碼系統原理及數學背景

提到了密碼演算法。每個密碼演算法都基於相應的數學理論。密碼學發展至今,已經產生了大量優秀的密碼演算法,通常分為兩類:對稱密碼演算法和非對稱密碼演算法。

對稱密碼演算法是指有了加密金鑰就可以推算出解密金鑰,有了解密金鑰就可以推算出加密金鑰的的演算法。還是用公式表示比較簡潔:

ek1(p)

= cdk2(c)

= p其中e為加密演算法,d為解密演算法,p為明文,c為密文,k1為加密金鑰,k2為解密金鑰。在對稱密碼演算法中,有了k1,就可以推算出k2,而有了k2,也可以推算出k1。實際應用的大多數對稱密碼演算法中,k1與k2相同。因此對稱密碼演算法的加密與解密關係如下:

ek(p)

= cdk(c)

= p加密與解密都使用金鑰k。

之所以叫對稱加密演算法,就是加密與解密的金鑰相同。

常見的對稱密碼演算法有以下這些:

1) des

,資料加密標準。由ibm於2023年代開發。des演算法使用的金鑰長度表示為64位(bit),但每個第8為都用作奇偶校驗,所以對於使用者而言,金鑰長度是56位。des將訊息分成64位長的分組,一次加密乙個分組,最後乙個分組如果不滿64位,需要按照某種策略填滿64位,如下圖所示。

des由於金鑰太短,而且金鑰空間中存在弱金鑰,因此現在已經不再安全了。2023年史丹福大學的兩位密碼學大師diffie和helman設計了一台機器,只要給定一小段明文和匹配的密文,一天之內即可推算出金鑰。

2) 三重des,des的增強版本。如下圖所示,還是利用des密碼演算法,但是利用三次,加密過程為「加密-解密-加密」,解密過程為「解密-加密-解密」。

用公式可以表示為:

ek1(dk2(ek3(p))) = c

//加密dk1(ek2(dk3(c))) = p

//解密由於三次過程使用的金鑰不一樣,所以相當於增加了金鑰長度。實際應用中,k1和k3是相同的,也就是外層的兩次加密和兩次解密使用相同的金鑰。這樣,三重des的金鑰長度就相當於k1+k2的長度,即112位(des的金鑰長度為56位)。採用「加密-解密-加密」模式的理由是為了與des保持相容,只要設定k1=k2=k3,三重des不就和des一樣了嗎?只是多了兩道運算步驟而已。

三重des只是des的乙個變種,還有其它變種,例如desx、crypt(3)、gdes、rdes、sndes等等。

3) aes

,高階加密標準。也叫rijndael演算法,由兩位比利時密碼學家發明,參與了nist(美國標準和技術委員會)2023年組織的公開密碼學競賽,最終以優異的技術特性勝出成為加密標準。aes以前一篇文章提到的迦羅瓦域理論為數學基礎。aes也是分塊對資料加密,只是塊的長度並不像des那樣定死為64位。rijndael的金鑰長度可以從128位起以32位為間隔遞增到256位。

rijndael

演算法完全公開、安全性好、運算速度極快。如果取金鑰長度為128位,想用窮舉法破解金鑰,就算有一台內含1000億個處理器的計算機,並且每個處理器每秒處理100億個金鑰,也要執行100億年才能搜尋完整個金鑰空間。

4) 其它對稱密碼演算法,有idea、lucifer、madryga、newdes、feal、redoc、loki、rc2、mmb、gost、cast、blowfish、safer、3-way、rc5、等等,現在的密碼演算法真是太多了。idea是international data encryption algorithm(國際資料加密演算法)的縮寫,該演算法設計者是james massey和xuejia lai(來學嘉)博士。來學嘉是瑞士籍華人,2023年出生,西安電子科大的碩士畢業生。james massey是來學嘉的導師。

idea

演算法安全性比des好(和aes差不多),能抵抗差分密碼分析的攻擊,而des不行。idea的加密速度比des快,加密資料速率可達到177mb/秒,也和aes差不多。

密碼學初級教程(二)對稱密碼

密碼學家工具箱中的6個重要的工具 編碼 將現實世界中的東西對映為位元序列的操作成為編碼。xor 異或運算,同零異一,0xor0 0,0xor1 1,1xor0 1,1xor1 0 異或的性質 a異或b異或b為a。一次性密碼本 絕對不會被破譯的密碼 定義 將明文與一串與明文等長的位元序列進行異或運算。...

密碼學1 對稱加密體系

簡介 加密解密的過程中使用同乙個金鑰,也稱作單金鑰加密。例如 i love you 每個字母按字母表的順序想後移動一位變成j mpwf zpv,而j mpwf zpv按字母表的順序向前移動一位變成i love you,此時加密和解密的過程中1就充當了金鑰的角色。i love you稱之為明文,j m...

密碼學04 非對稱密碼演算法

密碼學03 對稱密碼演算法 介紹了對稱密碼演算法,其主要特性就是加密解密金鑰能互相推算,而實際應用中絕大多數對稱加密演算法的加密金鑰和解密金鑰是相同的。正因為如此,加密者指定乙個金鑰後,必須得想方設法把金鑰分發出去給解密者,同時還得小心翼翼確保金鑰不被洩露。這是對稱密碼演算法固有的乙個矛盾,如何解決...