




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3講
對稱密鑰密碼體制1按加解密采用的密鑰不同按密碼出現的時間不同古典密碼現代密碼密碼學(Cryptology)(Symmetriccipher)(Asymmetriccipher)分組密碼流密碼公鑰密碼按加密的方式對稱密碼非對稱密碼(Classicalcipher)(Moderncipher)(Blockcipher)(Streamcipher)(Public-Keycipher)什么是流密碼一次一密:指在流密碼當中使用與消息長度等長的隨機密鑰,密鑰本身只使用一次流密碼的研究現狀當前對流密碼的研究主要集中在以下兩個方向:(1)什么樣的序列可以作為安全可靠的密鑰序列?即衡量密鑰流序列好壞的標準。(2)如何構造線性復雜度高、周期大的密鑰流序列?在保密強度要求高的場合如大量軍事密碼系統,仍多采用流密碼,美軍的核心密碼仍是“一次一密”的流密碼體制。鑒于流密碼的分析和設計在軍事和外交保密通信中有重要價值,流密碼的設計基本上都是保密的,國內外少有專門論述流密碼學的著作,公開的文獻也不多。盡管如此,由于流密碼長度可靈活變化,且具有運算速度快、密文傳輸中沒有差錯或只有有限的錯誤傳播等優點,目前仍是國際密碼應用的主流,而基于偽隨機序列的流密碼是當今最通用的密碼系統。流密碼的研究現狀3.1
流密碼在流密碼中,將明文消息按一定長度分組(長度較小,通常按字或字節),然后對各組用相關但不同的密鑰進行加密,產生相應的密文,相同的明文分組會因在明文序列中的位置不同而對應于不同的密文分組。相對分組密碼而言,流密碼主要有以下優點:第一,在硬件實施上,流密碼的速度一般要比分組密碼快,而且不需要有很復雜的硬件電路:第二,在某些情況下(例如對某些電信上的應用),當緩沖不足或必須對收到的字符進行逐一處理時,流密碼就顯得更加必要和恰當;第三,流密碼能較好地隱藏明文的統計特征等。流密碼的原理在流密碼中,明文按一定長度分組后被表示成一個序列,并稱為明文流,序列中的一項稱為一個明文字。加密時,先由主密鑰產生一個密鑰流序列,該序列的每一項和明文字具有相同的比特長度,稱為一個密鑰字。然后依次把明文流和密鑰流中的對應項輸入加密函數,產生相應的密文字,由密文字構成密文流輸出。即 設明文流為:M=m1
m2…mi…
密鑰流為:K=k1
k2…ki…
則加密為:C=c1
c2…ci…=Ek1(m1)Ek2(m2)…Eki(mi)…
解密為:M=m1
m2…mi…=Dk1(c1)Dk2(c2)…Dki(ci)…流密碼通信模式框圖加密算法E密文ci=Ek(mi)解密算法D明文mi=Dk(ci)明文mi密鑰ki密鑰ki流密碼的原理例
設明文、密鑰、密文都是F2上的二元數字序列,明文m=m1m2···,密鑰為k=k1k2···,若加密變換與解密變換都是F2中的模2加法,試寫出加密過程與解密過程。
[解]經加密變換得密文:
C=Ek(m)=Ek1(m1)Ek2(m2)···=(k1+m1)(k2+m2)···
經解密變換得:
Dk(C)=Dk((k1+m1)(k2+m2)···)=(k1+k1+m1)(k2+k2+m2)···
由于ki∈F2,則ki+ki=0,i=1,2,···,故Dk(C)=m1m2···=m。密文C可由明文m與密鑰k進行模2加獲得。因此要用該密碼系統通信就要求每發送一條消息都要產生一個新的密鑰并在一個安全的信道上傳送,習慣上人們稱這種通信系統為“一次一密系統”。流密碼的時變性--隨時間而變化流密碼采用了類似于一次一密的思想,但加密各明文字的密鑰字不是獨立隨機選取的,而是由一個共同的較短的主密鑰按一個算法產生的。因此,它不具有一次一密的無條件安全性,但增加了實用性,只要算法設計得當,其安全性可以滿足實際應用的需要。密鑰流中的元素的產生由i時刻的流密碼內部狀態(記作)和種子密鑰(記作k)決定,即;加密變換與解密變換也和i時刻的流密碼內部狀態有關。流密碼分類用狀態轉移函數描述流密碼加密器中存儲器的狀態隨時間變化的過程。同步流密碼:如果某個流密碼中的狀態轉移函數不依賴被輸入加密器存儲器的明文,即密鑰流的生成獨立于明文流和密文流的流密碼稱為同步流密碼。使用最廣泛。自同步流密碼也叫異步流密碼:狀態轉移函數與輸入明文有關,即其中密鑰流的產生并不是獨立于明文流和密文流的。通常第i個密鑰字的產生不僅與主密鑰有關,而且與前面已經產生的若干個密文字(與明文字)有關。加密算法E密鑰流發生器解密算法D密鑰流發生器安全通道密鑰k密文流ci密鑰流ki密鑰流ki明文流mi明文流mi圖1同步流密碼模型內部狀態輸出函數內部狀態輸出函數密鑰發生器密鑰發生器明文流mi密文流ci明文流mi種子k種子kkk圖2自同步流密碼模型同步流密碼中,消息的發送者和接收者必須同步才能做到正確地加密解密,即雙方使用相同的密鑰,并用其對同一位置進行操作。一旦由于密文字符在傳輸過程中被插入或刪除而破壞了這種同步性,那么解密工作將失敗。否則,需要在密碼系統中采用能夠建立密鑰流同步的輔助性方法。分解后的同步流密碼密鑰流生成器密鑰流生成器設計中,在考慮安全性要求的前提下還應考慮以下兩個因素:
密鑰k易于分配、保管、更換簡單;易于實現,快速。目前密鑰流生成器大都是基于移位寄存器的。因為移位寄存器結構簡單,易于實現且運行速度快。這種基于移位寄存器的密鑰流序列稱為移位寄存器序列。密鑰流生成器一個反饋移位寄存器由兩部分組成:移位寄存器和反饋函數,構成一個密鑰流生成器。每次輸出一位,移位寄存器中所有位都右移一位,新的最左端的位根據寄存器中其它位計算得到。移位寄存器輸出的一位常常是最低有效位。移位寄存器的周期是指輸出序列從開始到重復時的長度。這種方法通過一個種子(有限長)產生具有足夠長周期的、隨機性良好的序列。只要生成方法和種子都相同,就會產生完全相同的密鑰流。反饋函數若,則該LFSR生成的序列為周期序列。又稱為n階線性遞歸關系密鑰流生成器最簡單的反饋移位寄存器是線性移位寄存器(LFSR),反饋函數是寄存器中某些位的簡單異或。如教材P64圖4.5。異或(XOR)運算,異或密文和相同的密鑰流就可以完成解密操作。流密碼基于XOR運算具有下列屬性:如果B=A⊕K,那么A=B⊕K。n級移位寄存器(見下圖)開始時,設第1級內容是an-1,第2級內容是an-2,···,第n級內容是a0,則稱這個寄存器的初始狀態是(a0,a1,···,an-1)。當加上一個脈沖時,每個寄存器的內容移給下一級,第n級內容輸出,同時將各級內容送給運算器f(x0,x1,···,xn-1),并將運算器的結果an=f(a0,a1,…,an-1)反饋到第一級去。這樣這個移位寄存器的狀態就是(a1,a2,···,an),而輸出是a0。不斷地加脈沖,上述
n
級移位寄存器的輸出就是一個二元(或q元)序列:a0,a1,a2,···寄存器1寄存器2寄存器3寄存器nf(x0,x1,···,xn-1)···密鑰流生成器移位寄存器產生的序列都是周期序列,周期都不大于2n。例
右圖是一個4級線性移位寄存器。給定初狀態(0001),求該移位寄存器產生的周期序列。
[解]易見f(x0,x1,x2,x3)=x0+x1,因此對k≥4有ak=ak-3+ak-4
從而該4級移位寄存器產生的序列是周期15的序列:
000100110101111…線性移存器序列的最長周期為2n-1由上例知,移位寄存器(簡記SR,ShiftedRegister)可由短的序列生成具有一定規律的長序列。這種序列便可以作為密鑰流序列,但抗攻擊能力較差。+密鑰流生成器狀態轉移和相應輸出
時刻狀態輸出32100000011110000201000300100410011511000601100710111801011910100101101111111001211111130111114001111500011
多項式以LFSR的反饋系數所決定的多項式
又稱反饋多項式、連接多項式。式中,c0=cn=1互反多項式
稱作是LFSR的特征多項式。cn0稱之為非奇異LFSR。
收縮密鑰流生成器(見右圖)通常的密鑰流生成器都是由若干個移位寄存器并聯,并且與特殊的電子電路組合而成。上圖為由兩個移位寄存器構成的收縮密鑰流生成器,通過SR1的輸出選擇SR2的輸出來生成密鑰流,其工作模式如下:輸入參數:兩個移位寄存器的級數及反饋函數密鑰:兩個移位寄存器的初始狀態
(1)移位SR1
并產生yi(1)
;同時移位SR2
并產生yi(2)
;
(2)如果yi(1)=1,則輸出密鑰元素ki=yi(2)
;如果yi(1)=0,則刪去
yi(2),i=1,2,…,不輸出。由此收縮生成器產生的密鑰流為{ki|i≥1}。SR1SR2yi(1)輸出kiyi(2)密鑰流生成器流密碼對密鑰流的要求沒有絕對不可破的密碼,比如窮搜索總能破譯,只是破譯所需時間是否超過信息的有效期以及破譯所需代價是否值得。若一個加密算法沒有比窮搜索更好的破譯方法,則被認為是不可破的。實際使用的密鑰流序列(簡稱密鑰)都是按一定算法生成的,因而不可能是完全隨機的,所以也就不可能是完善保密系統。為了盡可能提高系統的安全強度,就必須要求所產生的密鑰流序列盡可能具有隨機序列的某些特征。如極大的周期、良好的統計特性。3.2
分組密碼其他分組密碼數據加密標準DESFeistel密碼結構分組密碼的設計原則分組密碼的原理分組密碼的典型攻擊方法1.分組密碼的原理密文中的每位數字不僅僅與某時刻輸入的明文數字有關,而是與該明文中一定組長的明文數字有關。分組密碼將明文按一定的位長分組,輸出是固定長度的密文。加密算法解密算法明文x=(x1,x2,···)密文y=(y1,y2,···,yn)明文x=(x1,x2,···)密鑰k=(k1,k2,···)密鑰k=(k1,k2,···)分組密碼的基本模型分組密碼的長度明文為分組長度為m的序列,密文為分組長度為n的序列:n>m,稱其為有數據擴展的分組密碼;n<m,稱其為有數據壓縮的分組密碼;n=m,稱其為無數據擴展與壓縮的分組密碼。我們一般所說的分組密碼為無數據擴展與壓縮的分組密碼。典型的分組是64位或128位分組密碼的特點主要優點:易于標準化;易于實現同步。主要缺點:不善于隱藏明文的數據模式、對于重放、插入、刪除等攻擊方式的抵御能力不強。分組密碼的數學表示記明文空間和密文空間為(明文與密文分組的長度均為m),密鑰空間為(是的子集,r為密鑰長度):密鑰k下的加密函數為,m表示待加密的信息,k為密鑰,則可將該映射記為,這個映射應滿足:,是的一個置換;密鑰k下的解密函數記為,它是的逆。2.分組密碼的設計原則安全性角度:“混亂原則”:為了避免密碼分析者利用明文與密文之間的依賴關系進行破譯,密碼的設計應該保證這種依賴關系足夠復雜?!皵U散原則”:為避免密碼分析者對密鑰逐段破譯,密碼的設計應該保證密鑰的每位數字能夠影響密文中的多位數字;同時,為了避免避免密碼分析者利用明文的統計特性,密碼的設計應該保證明文的每位數字能夠影響密文中的多位數字,從而隱藏明文的統計特性。2.分組密碼的設計原則可實現性角度:應該具有標準的組件結構(子模塊),以適應超大規模集成電路的實現。分組密碼的運算能在子模塊上通過簡單的運算進行。3.3Feistel密碼結構加密:
Li=Ri-1
Ri=Li-1F(Ri-1,Ki)解密:
Ri-1=Li
Li-1=RiF(Ri-1,Ki)=RiF(Li,Ki)Feistel結構依賴參數和特征分組長度:分組長度越長意味著安全性越高(其他條件不變),但是會降低加解密的速度。一般64位的分組長度。密鑰長度:密鑰較長意味著安全性較高,但會降低加解密的速度。一般需要128位密鑰,64位密鑰通常不夠。迭代輪數:Feistel密碼的本質在于單輪不能提供足夠的安全性,多輪可取得很高安全性。迭代輪數的典型值為16。子密鑰產生算法:子密鑰越復雜,密碼分析攻擊越困難。輪函數:輪函數越復雜,抗攻擊的能力就越強。3.4數據加密標準DES
(DataEncryptionStandard)DES(DataEncryptionStandard)算法于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數據的方法,其密文的長度也為64位。國內隨著三金工程尤其是金卡工程的啟動,DES算法在ATM、磁卡及智能卡(IC卡)、加油站、高速公路收費站等領域被廣泛應用,以此來實現關鍵數據的保密。如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證、金融交易數據包的MAC校驗等,均用到DES算法。DES(DataEncryptionStandard)是由IBM公司在20世紀70年代研制的,經過政府的加密標準篩選后,于1976年11月被美國政府采用,隨后被美國國家標準局和美國國家標準協會(ANSI)所認可。DES算法具有以下特點:(1)DES算法是分組加密算法:以64位為分組。(2)DES算法是對稱算法:加密和解密用同一密鑰。(3)DES算法的有效密鑰長度為56位。(4)換位和置換。(5)易于實現。1.DES的產生背景DES的生命期NBS最終采納了IBM的LUCIFER方案,于1975年公開發表。1977年正式頒布為數據加密標準(DES-DataEncryptionStandard)。1979年,美國銀行協會批準使用DES。1980年,DES成為美國標準化協會(ANSI)標準。1984年,ISO開始在DES基礎上制定數據加密的國際標準。美國國家安全局NSA每隔年對該算法進行評估,1994年,決定1998年12月之后不再使用DES。現已經確定了選用Rijndael算法作為高級加密算法AES。2.DES算法要點算法設計中采用的基本變換和操作:置換(P):重新排列輸入的比特位置。交換(SW):將輸入的左右兩部分的比特進行互換。循環移位:將輸入中的比特進行循環移位,作為輸出。一個復雜變換(fK
)通常是一個多階段的乘積變換;與密鑰Key相關;必須是非線性變換;實現對密碼分析的擾亂;是密碼設計安全性的關鍵。3.DES的加密過程第一步:初始置換IP。對于給定的明文m,通過初始置換IP獲得,并將分為兩部分,前面32位記為,后面32位記為,即第二步:乘積變換(
16輪)。在每一輪中依據下列方法計算()(16輪中的計算方法相同):,其中,為第i輪使用的子密鑰,各均為的一個置換選擇,所有構成密鑰方案。函數中的變量為32位字符串,為48位字符串,函數輸出的結果為32位字符串。DES的加密過程第三步:初始置換的逆置換。應用初始置換的逆置換對進行置換,得到密文c,即。Li-1Ri-1LiRikif+一輪DES加密過程IPL0R0L1=R0R1=L0⊕f(R0,K1)R2=L1⊕f(R1,K2)L2=R1明文L15=R14R16=L15⊕f(R15,K16)R15=L14⊕f(R14,K15)L16=R15IP-1密文fK1fK2fK16DES加密流程圖LRexpandshiftshiftkeykeyS-boxescompressLR28282828282848324832323232OneRoundofDES4832KiPbox(1)IP置換表和IP-1逆置換表輸入的64位數據按IP表置換進行重新組合,并把輸出分為L0和R0兩部分,每部分各32位,其IP表置換如表3-1所示表3-1IP置換表5850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563554739312315741
初始置換IP和IP-1IPIP-1將輸入的64位明文的第58位換到第1位,第50位換到第2位,依此類推,最后一位是原來的第7位。L0和R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位。比如:置換前的輸入值為D1D2D3…D64,則經過初始置換后的結果為:L0=D58D50…D8,R0=D57D49…D7。經過16次迭代運算后。得到L16和R16,將此作為輸入進行逆置換,即得到密文輸出。表3-2IP-1逆置換表逆置換正好是初始置的逆運算,例如,第1位經過初始置換后,處于第40位,而通過逆置換IP-1,又將第40位換回到第1位,其逆置換IP-1規則表如3-2所示。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725(2)函數f的內部流程Ri-1(32bit)ES1S2S8PKi(48bit)48bit32bitf(Ri-1,ki)(32bit)E變換的算法是從Ri-1的32位中選取某些位,構成48位,即E將32位擴展為48位。變換規則根據E位選擇表,如表3-3所示。表3-3E位選擇表3212345456789891011121312131415161716171819202120212223242524252627282928293031321每個S盒輸出4位,共32位,S盒的工作原理將在第4步介紹。S盒的輸出作為P變換的輸入,P的功能是對輸入進行置換,P換位表如表3-4所示。Ki是由密鑰產生的48位比特串,具體的算法是:將E的選位結果與Ki作異或操作,得到一個48位輸出。分成8組,每組6位,作為8個S盒的輸入。表3-4P換位表如表1672021291228171152326518311028241432273919133062211425(3)DES的密鑰Ki計算DES在各輪中所用的密鑰均為由初始密鑰(即種子密鑰)導出的48位密鑰。初始密鑰為64位,其中第8、16、24、32、40、48、56、64位均為校驗位。如此設置校驗位的目的是使每8個字節所含的字符“1”個數為奇數,以便能夠檢測出每個字節中的錯誤。子密鑰ki產生流程圖PC-1C0D0LS1LS1C1D1LS2LS2C2D2LS16LS16C16D16PC-2PC-2PC-2K(64bit)K1(48bit)K2(48bit)K16(48bit)假設初始密鑰為K,長度為64位,但是其中第8,16,24,32,40,48,64作奇偶校驗位,實際密鑰長度為56位。K下標i的取值范圍是1到16,用16輪來構造。構造過程如圖所示。50子密鑰的產生產生子密鑰Ki具體描述為:首先,對于給定的密鑰K,應用PC1變換進行選位,選定后的結果是56位,設其前28位為C0,后28位為D0。PC1選位如表3-5所示。表3-5PC-1選位表57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124第1輪:對C0作左移LS1得到C1,對D0作左移LS1得到D1,對C1D1應用PC2進行選位,得到K1。其中LS1是左移的位數,如表3-6所示。第2輪:對C1和D1作左移LS2得到C2和D2,進一步對C2D2應用PC2進行選位,得到K2。如此繼續,分別得到K3,K4,…,K16。表3-6LS移位表輪數循環左移位數輪數循環左移位數輪數循環左移位數輪數循環左移位數115291132216210214232721121524282122161表3-7PC-2選位表1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932(4)S盒的工作原理S盒以6位作為輸入,而以4位作為輸出,現在以S1為例說明其過程。假設輸入為A=a1a2a3a4a5a6,則a2a3a4a5所代表的數是0到15之間的一個數,記為:k=a2a3a4a5;由a1a6所代表的數是0到3間的一個數,記為h=a1a6。在S1的h行,k列找到一個數B,B在0到15之間,它可以用4位二進制表示,為B=b1b2b3b4,這就是S1的輸出。S盒由8張數據表組成,如教材P84-85所示。S-盒的構造
DES加密范例已知明文m=computer,密鑰k=program。
m=0110001101101111011011010111000001110101011101000110010101110010
k=01110000011100100110111101100111011100100110000101101101這里k只有56bit,必須插入第8,16,24,32,40,48,56,64這8個奇偶校驗位成為64比特。k=0111000*0011100*1001101*1110110*0111011*1001001*1000010*1101101*m經過IP置換后得
L0=11111111101110000111011001010111
R0=00000000111111110000011010000011
密鑰k經PC-1置換得
C0=1110110010011001000110111011
D0=1011010001011000100011100111C0和
D0各循環左移一位后通過PC-2得到48bit的子密鑰k1。
C1=1101100100110010001101110111
D1=0110100010110001000111001111k1=001111011000111111001101001101110011111101001000DES加密范例R0經過E變換后擴展為48bit。100000000001011111111110100000001101010000000110再和k1
作異或運算,得101111011001100000110011101101111110101101001110分成8組
101111011001100000110011101101111110101101001110經過S盒后輸出32bit01110110110101000010011010100001再經過P置換得01000100001000011001111110011011DES加密范例所以第一輪迭代的結果為
=10111011100110011110100111001100DES加密范例4.DES的解密過程采用與加密相同的算法。以逆序(即)使用密鑰。實現效果
不同微處理器上的DES軟件實現速度
處理器處理器速度(MHz)每秒處理的DES分組個數80884.7370680007.69008028661,10068020163,50068030163,90080286255,000680305010,000680402516,000680404023,000804866643,000雪崩效應明文或密鑰的微小改變將對密文產生很大的影響是任何算法所期望的一個好性質。明文或密鑰的某一位發生變化會導致密文的很多位發生變化。如果相應的改變很小,可能會給分析者提供縮小搜索密鑰或明文空間的渠道。DES顯示出很強的雪崩效應:如下兩條僅有一位不同的明文:00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000密鑰:00000011001011010010011000100011100001100000111000110010結果表明僅經過3輪迭代后,兩段數據有21位不同。全部迭代完成后得到的兩段密文則有34位不同。DES的雪崩效應(a)明文的變化(b)密鑰的變化輪數改變的位數輪數改變的位數0116221335439534632731829...0012214328432530632735834...
5.DES的安全性分析DES的安全性完全依賴于密鑰,與算法本身沒有關系。主要研究內容:密鑰的互補性;弱密鑰與半弱密鑰;密文-明文相關性;密文-密鑰相關性;S-盒的設計;密鑰搜索。密鑰的互補性DES算法具有互補性,即:若、是的補、是的補,則。使用DES算法時不要使用互補的密鑰,否則當密碼攻擊者選擇明文攻擊時,他們僅需試驗一半密鑰。弱密鑰弱密鑰:由密鑰k
確定的加密函數與解密函數相同,即。DES的弱密鑰:如果各輪產生的子密鑰一樣,則加密函數與解密函數相同。DES至少有4個弱密鑰:01010101010101011f1f1f1f0e0e0e0ee0e0e0e0f1f1f1f1fefefefefefefefe半弱密鑰半弱密鑰:對于密鑰
k
,存在一個不同的密鑰,滿足。DES的半弱密鑰:子密鑰生成過程中只能產生兩個不同的子密鑰或四個不同的子密鑰,互為對合。DES至少有12個半弱密鑰。S-盒的設計原則S-盒的設計原理沒有公開,一些原則如下:所有S-盒的每一行是0,1,…,15的一個置換;所有S-盒的輸出都不是輸入的線性函數或仿射函數;S-盒的輸入改變任意一位都會引起輸出中至少兩位發生變化;對于任何輸入x(6位),S(x)與S(x⊕001100)至少有兩位不同;對于任何輸入x(6位),S(x)與S(x⊕00ef00)不相等,e,f取0或1;對于任意一個輸入位保持不變而其他五位變化時,輸出中0和1的數目幾乎相等。針對DES的攻擊方法攻擊DES的方法主要有:密鑰窮搜索攻擊,DES算法總的密鑰量為,1998年使用高級計算機的情況下,破譯DES只需56小時;差分攻擊;線性攻擊,較有效的方法;相關密鑰攻擊等。DES遭受攻擊的原因只是因為其密鑰過短,而不是因為存在比窮舉密鑰更有效的個攻擊方法。所有DES的攻擊都要嘗試幾乎所有的密鑰70DESCrackerDESCracker:ADESkeysearchmachinecontains1536chipsCost:$250,000.couldsearch88billionkeyspersecondwonRSALaboratory’s“DESChallengeII-2”bysuccessfullyfindingaDESkeyin56hours.DESisfeelingitsage.Amoresecurecipherisneeded.DES加密練習1、假設明文和密鑰有相同的位模式,即:用十六進制表示:0123456789ABCDEF用二進制表示:0000000100100011010001010110011110001001101010111100110111101111a、推導第一輪的子密鑰K1b、推導L0,R0c、擴展R0,求E[R0]d、計算A=E[R0]K1e、把(d)的48位結果分成6位(數據)的集合并求對應S盒代換的值DES加密練習f、利用(e)的結論來求32位的結果,Bg、應用置換求P(B)h、計算R1=P[B]L0i、寫出密文2、為什么說研究Feistel密碼很重要?3、分組密碼和流密碼的區別是什么?由于DES的密鑰長度相對于窮舉攻擊過短,所以一般使用多重DES進行加密,一般的是三重DES,定義為:C=E(D(E(P,K1),K2),K1),即EDE(112bitkey)。P=D(E(D(C,K1),K2),K1)DESDES-1DESDES-1DESDES-1mck1k2k1DES的變形——3-DES3DESWhyEncrypt-Decrypt-Encryptwith2keys?Backwardcompatible:E(D(E(P,K),K),K)=E(P,K)And112bitsisenoughWhynotC=E(E(P,K),K)?Trickquestion---it’sstilljust56bitkeyWhynotC=E(E(P,K1),K2)?A(semi-practical)knownplaintextattack3DESWhynotC=E(E(P,K1),K2)?A(semi-practical)knownplaintextattackPre-computetableofE(P,K1)foreverypossiblekeyK1(resultingtablehas256entries)ThenforeachpossibleK2computeD(C,K2)untilamatchintableisfoundWhenmatchisfound,haveE(P,K1)=D(C,K2)Resultgivesuskeys:C=E(E(P,K1),K2)3.4其他分組密碼IDEA算法RC5算法Rijndael算法1.IDEA
算法IDEA國際數據加密算法(InternationalDataEncryptionAlgorithm)瑞士聯邦理工學院:XuejiaLai&JamesMassey,1990;1991改進,加強了對差分密碼分析的抗擊能力;明文分組與密文分組的長度均為64位,密鑰長度為128位。IDEA
算法算法的設計思想混合使用來自不同代數群中的運算;通過對于兩個16位的子模塊連續使用三個“不相容”的群運算(分別是異或、模加、模乘),可以獲得所需的“混亂”;選擇使用的密碼結構可以提供必要的“擴散”。IDEA
算法描述IDEA
算法描述加密過程:長度為64位的分組被分為4個長度為16位的子分組。這些子分組作為算法第1輪的輸入(注:該算法共8輪)。在每一輪中,子分組相互間進行異或、模加、模乘運算,并且與6個長度為16位的子密鑰進行異或、模加、模乘運算。在各輪之間,第2個子分組和第3個子分組進行交換。最后,在輸出變換中,子分組與子密鑰進行運算,將運算所得的4個子分組重新連接便得到密文。IDEA
算法描述子密鑰的產生過程:將長度為128位的密鑰分為8個長度為16位的子密鑰,作為算法第1輪需要的6個子密鑰和第2輪中的前兩個子密鑰;將原來長度為128位的密鑰向左環移25位,再次分為8個長度為16位的子密鑰,作為算法第2輪需要的另外4個子密鑰和第3輪所需的6個子密鑰;依次類推,便得到全部所需的52個密鑰。解密過程與加密過程基本相同。但是需要對子密鑰進行求逆運算。
2.RC5算法RSA公司的Rivest所設計的一種參數(分組大小、密鑰長度、加密輪數)可變的分組密碼算法。一個RC5算法通常被記為:RC5-w/r/b。其中,“w”為分組大小(w=16,32,64),“r”為加密輪數(),“b”為密鑰長度()。該算法實際上包含三部分:密鑰擴展算法、加密算法、解密算法。3.Rijndael算法不屬于Feistel結構,Adi
Shamir相信“永遠安全的”。已被美國國家標準技術研究所選定作為高級加密算法AES。迭代分組密碼算法。密鑰128/192/256,分組128/192/256,循環次數10/12/14。速度快、對內存要求小,操作簡單。算法的抗攻擊能力強。3.5
分組密碼的工作模式為了將DES應用于實際,已經提出的分組密碼工作模式有:密碼分組鏈接(CBC)模式;密碼反饋(CFB)模式;輸出反饋(OFB)模式;級連(CM)模式(又稱多重加密模式);計數器模式;擴散密碼分組鏈連(PCBC)模式。模式描述典型應用電碼本(ECB)用相同的密鑰分別對明文組加密單個數據的安全傳輸(如下一個加密密鑰)密碼分組鏈接(CBC)加密算法的輸入是上一個密文組和下一個明文組的異或普通目的面向分組的傳輸認證密碼反饋(CFB)一次處理J位。上一個分組密文作為產生一個偽隨機數輸出的加密算法的輸入,該輸出與明文異或,作為下一個分組的輸入普通目的的向分組的傳輸認證輸出反饋(OFB)與CFB基本相同,只是加密算法的輸入是上一次DES的輸出噪聲通道上的數據流的傳輸(如衛星通信)計數器(CTR)每個明文組是加密的計數器的異或。對每個后續的組,計算器是累加的普通目的面向分組的傳輸用于高速需求3.5
分組密碼的工作模式
86電碼本(ECB)Ci=EK(Pi)
Pi=DK(Ci)ECB特點簡單和有效可以并行實現不能隱藏明文的模式信息相同明文相同密文同樣信息多次出現造成泄漏對明文的主動攻擊是可能的信息塊可被替換、重排、刪除、重放誤差傳遞:密文塊損壞僅對應明文塊損壞適合于傳輸短信息AliceHatesECBModeAlice’suncompressedimage,andECBencrypted(TEA)Whydoesthishappen?Sameplaintextyieldssameciphertext!密碼分組鏈接(CBC)模式密文分組被反饋到輸入端,明文分組與的異或結果被作為DES加密算法的輸入,從而得到下一個密文分組,即。解密過程為。密文分組為無須保密的事先設定的初值,不同的明文x(而非明文分組)對應不同的。各密文分組不僅與與之對應的明文分組有關,也和此前的所有明文分組(即)有關。Ci=EK(Ci-1Pi)
Pi=EK(Ci
)Ci-1密碼分組鏈接(CBC)模式密碼分組鏈接(CBC)模式優點:能夠隱蔽明文的數據模式,相同的明文不一定產生相同的密文;能夠在一定程度上防止分組的重放、插入和刪除等攻擊。缺點:易導致錯誤傳播。由于任何一個明文或密文分組出錯都會導致其后的密文分組出錯AliceLikesCBCModeAlice’suncompressedimage,AliceCBCencrypted(TEA)Whydoesthishappen?Sameplaintextyieldsdifferentciphertext!密碼反饋(CFB)模式實質上是一種自同步流密碼。適用于必須按比特或者字符對明文進行加密的情況。采用該模式實現DES算法時,反饋的密文分組的長度與此前的密文分組長度不同,而是通常為事先設定的n值(),與明文相加的只是密文分組的最左邊n位,反饋的密文分組同時反饋到密鑰產生器。密碼反饋(CFB)模式基本原理如圖:輸出反饋(OFB)模式優點:能夠克服錯誤傳播。缺點:很難發現密文被篡改;不具備自同步能力。
輸出反饋(OFB)模式基本原理如圖
:級連(CM)模式基本原理如圖:主要是為了增加密鑰
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦用照明與安全標識設備考核試卷
- 毛巾類制品的庫存控制與倉儲管理考核試卷
- 勞務派遣服務的客戶關系優化策略制定與執行評估考核試卷
- 石膏在輕質隔墻板制造中的應用考核試卷
- 生態環境監測在環境教育中的重要性考核試卷
- 電視機修理操作流程考核試卷
- 堿金屬與水的反應研究考核試卷
- 紡織機械的智能工廠運營管理策略優化考核試卷
- 天津醫科大學臨床醫學院《舞蹈與健康》2023-2024學年第二學期期末試卷
- 吉林水利電力職業學院《清代宮廷文化史》2023-2024學年第二學期期末試卷
- 小班數學課件《拼一拼-數一數》
- 網球推廣計劃和方案
- FUJI-FLEXA編程流程-課件
- 2023《高等教育法規》考試復習題庫(核心400題)
- 云平臺總體建設方案1
- 第五章 中國特色社會主義理論體系的形成發展(一)
- 大學生信息安全競賽創新實踐能力賽題庫(附答案)
- 平頂山職業技術學院單招《語文》備考試題庫(含答案)
- 火災事故中的緊急搶救與復蘇技巧
- 學校保安、宿管服務投標方案技術標
- (中職)ZZ017數字產品檢測與維護賽項規程(師生同賽)(5月10日更新)
評論
0/150
提交評論