rc5演算法
1、3DES演算法
3DES(即Triple DES)是DES向AES過渡的加密演算法(1999年,NIST將3-DES指定為過渡的加密標准),加密演算法,其具體實現如下:設Ek()和Dk()代表DES演算法的加密和解密過程,K代表DES演算法使用的密鑰,M代表明文,C代表密文,這樣:
3DES加密過程為:C=Ek3(Dk2(Ek1(M)))
3DES解密過程為:M=Dk1(EK2(Dk3(C)))
2、Blowfish演算法
BlowFish演算法用來加密64Bit長度的字元串。
BlowFish演算法使用兩個「盒」——unsignedlongpbox[18]和unsignedlongsbox[4,256]。
BlowFish演算法中,有一個核心加密函數:BF_En(後文詳細介紹)。該函數輸入64位信息,運算後,以64位密文的形式輸出。用BlowFish演算法加密信息,需要兩個過程:密鑰預處理和信息加密。
分別說明如下:
密鑰預處理:
BlowFish演算法的源密鑰——pbox和sbox是固定的。我們要加密一個信息,需要自己選擇一個key,用這個key對pbox和sbox進行變換,得到下一步信息加密所要用的key_pbox和key_sbox。具體的變化演算法如下:
1)用sbox填充key_sbox
2)用自己選擇的key8個一組地去異或pbox,用異或的結果填充key_pbox。key可以循環使用。
比如說:選的key是"abcdefghijklmn"。則異或過程為:
key_pbox[0]=pbox[0]abcdefgh;
key_pbox[1]=pbox[1]ijklmnab;
…………
…………
如此循環,直到key_pbox填充完畢。
3)用BF_En加密一個全0的64位信息,用輸出的結果替換key_pbox[0]和key_pbox[1],i=0;
4)用BF_En加密替換後的key_pbox,key_pbox[i+1],用輸出替代key_pbox[i+2]和key_pbox[i+3];
5)i+2,繼續第4步,直到key_pbox全部被替換;
6)用key_pbox[16]和key_pbox[17]做首次輸入(相當於上面的全0的輸入),用類似的方法,替換key_sbox信息加密。
信息加密就是用函數把待加密信息x分成32位的兩部分:xL,xRBF_En對輸入信息進行變換。
3、RC5演算法
RC5是種比較新的演算法,Rivest設計了RC5的一種特殊的實現方式,因此RC5演算法有一個面向字的結構:RC5-w/r/b,這里w是字長其值可以是16、32或64對於不同的字長明文和密文塊的分組長度為2w位,r是加密輪數,b是密鑰位元組長度。
(1)rc5演算法擴展閱讀:
普遍而言,有3個獨立密鑰的3DES(密鑰選項1)的密鑰長度為168位(三個56位的DES密鑰),但由於中途相遇攻擊,它的有效安全性僅為112位。密鑰選項2將密鑰長度縮短到了112位,但該選項對特定的選擇明文攻擊和已知明文攻擊的強度較弱,因此NIST認定它只有80位的安全性。
對密鑰選項1的已知最佳攻擊需要約2組已知明文,2部,2次DES加密以及2位內存(該論文提到了時間和內存的其它分配方案)。
這在現在是不現實的,因此NIST認為密鑰選項1可以使用到2030年。若攻擊者試圖在一些可能的(而不是全部的)密鑰中找到正確的,有一種在內存效率上較高的攻擊方法可以用每個密鑰對應的少數選擇明文和約2次加密操作找到2個目標密鑰中的一個。
⑵ idea的加密是什麼機制
分類: 電腦/網路 >> 反雹襪病毒
問題描述:
我只知道他是對稱加密方式,對64位數據產生128位的密鑰。
請說點其他的。
解析:
IDEA加密標准由PGP(Pretty Good Privacy)系統使用。公共密鑰加密使用兩個不同的密鑰, 因此是一種不對稱的加密系統。它的一個密鑰是公開的, 而系統的基本功能也是有公共密鑰的人可以訪問的, 公共密鑰可以保存在系統目錄內或保存在未加密的電子郵件信息中。它的另一個密鑰是專用的, 它用來加密信息但公共密鑰可以解密該信息, 它也可以對公共密鑰加密的信息解密。在提供同等安全性的前提下, 專用密鑰加密的系統速度比較快。
RC5分組密碼演算法是1994由麻薩諸塞技術研究所的Ronald L. Rivest教授發明的,並由RSA實驗室分析。它是參數可變的分組密碼演算法,三個可變的參數是:分組大小、密鑰大小和加密輪數。在此演算法中使用了三種運算:異或、加和循環。
RC5是種比較新的演算法,Rivest設計了RC5的一種特殊的實現方式,因此RC5演算法有一個面向字的結構:RC5-w/r/b,這里w是字長其值可以是16、32或64對於不同的字長明文和密文塊的分組長度為2w位,r是加密輪數,b是密鑰位元組長度。由於RC5一個分組長度可變的密碼演算法,為了便於說明在本文中主要是針對64位的分組w=32進行處理的,下面詳細說明了RC5加密解密的處理過程:
1、創建密鑰組,RC5演算法加密時使用了2r+2個密鑰相關的的32位字:,這里r表示加密的輪數。創建這個密鑰組的過程是非常復雜的但也是直接的,首先將密鑰位元組拷貝到32位字的數組L中(此時要注意處理器是little- endian順序還是big-endian順序),如果需要,最後一個字可以用零填充。然後利用線性同餘發生器模2初始化數組S:
對於i=1到2(r+1)-1: (本應模 ,本文中令w=32)
其中對於16位字32位分組的RC5,P=0xb7e1 Q=0x9e37
對於32位字和64位分組的RC5,P=0xb7e15163 Q=0x9e3779b9
對於64位字和128位分組,P=0xb7151628aed2a6b Q=0x9e3779b97f4a7c15
最後將L與S混合,混合過程如下:
i=j=0
A=B=0
處理3n次(這里n是2(r+1)和c中的最大值,其中c表示輸入的密鑰字的個數)
2、加密處理,在創建完密鑰組粗肆團後開始進行對明文的加密,加密時,首先將明文分組劃分為兩個32位字:A和B(在假設處理器位元組順序是little- endian、w=32的情況下,第一個明文位元組進入A的最低位元組,第四個明文位元組進入A的最高位元組,第五個明文位元組進入B的最低位元組,以此類推),其中操作符<<<表示循環左移,加運算是模 (本應模 ,本岩橘文中令w=32)的。輸出的密文是在寄存器A和B中的內容
3、解密處理,解密也是很容易的,把密文分組劃分為兩個字:A和B(存儲方式和加密一樣),這里符合>>>是循環右移,減運算也是模 (本應模 ,本文中令w=32)的。
IDEA演算法被認為是當今最好最安全的分組密碼演算法!