加密演算法
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)加密演算法擴展閱讀:
普遍而言,有3個獨立密鑰的3DES(密鑰選項1)的密鑰長度為168位(三個56位的DES密鑰),但由於中途相遇攻擊,它的有效安全性僅為112位。密鑰選項2將密鑰長度縮短到了112位,但該選項對特定的選擇明文攻擊和已知明文攻擊的強度較弱,因此NIST認定它只有80位的安全性。
對密鑰選項1的已知最佳攻擊需要約2組已知明文,2部,2次DES加密以及2位內存(該論文提到了時間和內存的其它分配方案)。
這在現在是不現實的,因此NIST認為密鑰選項1可以使用到2030年。若攻擊者試圖在一些可能的(而不是全部的)密鑰中找到正確的,有一種在內存效率上較高的攻擊方法可以用每個密鑰對應的少數選擇明文和約2次加密操作找到2個目標密鑰中的一個。
Ⅱ 加密演算法
#include<stdio.h>
intf(intx){
return(x^0x5e)+(x^0x7e);
}
intmain(){
inta[100];
intn;
printf("請輸入你要輸入的數字個數:");
scanf("%d",&n);
for(inti=0;i<n;i++){
scanf("%d",&a[i]);
a[i]=f(a[i]);
}
for(inti=1;i<n;i++){
a[0]=a[0]^a[i];
}
printf("結果是:%d ",a[0]);
return0;
}
Ⅲ 加密技術分為哪兩類
加密技術分為:
1、對稱加密
對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難
2、非對稱
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。
加密技術的功能:
原有的單密鑰加密技術採用特定加密密鑰加密數據,而解密時用於解密的密鑰與加密密鑰相同,這稱之為對稱型加密演算法。採用此加密技術的理論基礎的加密方法如果用於網路傳輸數據加密,則不可避免地出現安全漏洞。
區別於原有的單密鑰加密技術,PKI採用非對稱的加密演算法,即由原文加密成密文的密鑰不同於由密文解密為原文的密鑰,以避免第三方獲取密鑰後將密文解密。
以上內容參考:網路—加密技術
Ⅳ 加密演算法有幾種
比較常見的就是以下六種
DES加密演算法
AES加密演算法
RSA加密演算法
Base64加密演算法
MD5加密演算法
SHA1加密演算法
Ⅳ 密鑰和加密演算法是個什麼關系
密鑰是一種參數(它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的數據),加密演算法是明文轉換成密文的變換函數,同樣的密鑰可以用不同的加密演算法,得到的密文就不一樣了。
舉一個示例,例如凱撒密碼,該字母向後旋轉n位,該n是密鑰, 向後移動的方法稱為演算法。 盡管使用相同的演算法,但是對明文用不同的密鑰加密的結果不一樣。
例如,Run使用Key = 1(密鑰)的凱撒密碼,即Svo,而Key = 2(密鑰)的加密,則成為Twp,因此密鑰和演算法存在很大差異。
現在大多數公鑰密碼系統都使用RSA演算法,但是每個人的密鑰的密文不同。 通常,該演算法是公共的,密鑰不是公共的。 加密演算法恰好包含兩個輸入參數,一個是明文,另一個是密鑰。
(5)加密演算法擴展閱讀:
1、密鑰演算法
使用極其復雜的加密演算法,即使解密者可以加密他選擇的任意數量的明文,也無法找出破譯密文的方法。 秘密密鑰的一個弱點是解密密鑰必須與加密密碼相同,這引發了如何安全分配密鑰的問題。
2、公鑰演算法
滿足三個條件:第一個條件是指在對密文應用解密演算法後可以獲得明文。 第二個條件是指不可能從密文中得出解密演算法。 第三個條件是指即使任何明文形式的選擇都無法解密密碼,解密程序也可以加密。 如果滿足上述條件,則可以公開加密演算法。
Ⅵ 加密演算法的常見加密演算法
DES(Data Encryption Standard):對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和RC4:對稱演算法,用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性;
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法; 演算法如下:
首先, 找出三個數, p, q, r,其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數......p, q, r 這三個數便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1).....這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了.....再來, 計算 n = pq.......m, n 這兩個數便是 public key
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法;
AES(Advanced Encryption Standard):高級加密標准,對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 演算法;
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
MD5:嚴格來說不算加密演算法,只能說是摘要演算法;
對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
在MD5演算法中,首先需要對信息進行填充,使其位元組長度對512求余的結果等於448。因此,信息的位元組長度(Bits Length)將被擴展至N*512+448,即N*64+56個位元組(Bytes),N為一個正整數。填充的方法如下,在信息的後面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然後,在這個結果後面附加一個以64位二進製表示的填充前信息長度。經過這兩步的處理,如今信息位元組長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數倍。這樣做的原因是為滿足後面處理中對信息長度的要求。(可參見MD5演算法詞條)
PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA數據安全公司及其合作夥伴制定的一組公鑰密碼學標准,其中包括證書申請、證書更新、證書作廢表發布、擴展證書內容以及數字簽名、數字信封的格式等方面的一系列相關協議。
SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用演算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
Ⅶ 加密演算法有哪些
常見加密演算法編輯
DES(Data Encryption Standard):對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和RC4:對稱演算法,用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性;
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法; 演算法如下:
首先, 找出三個數, p, q, r,
其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數......
p, q, r 這三個數便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1).....
這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了.....
再來, 計算 n = pq.......
m, n 這兩個數便是 public key
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法;
AES(Advanced Encryption Standard):高級加密標准,對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 演算法;
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
MD5:嚴格來說不算加密演算法,只能說是摘要演算法
對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
在MD5演算法中,首先需要對信息進行填充,使其位元組長度對512求余的結果等於448。因此,信息的位元組長度(Bits Length)將被擴展至N*512+448,即N*64+56個位元組(Bytes),N為一個正整數。填充的方法如下,在信息的後面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然後,在這個結果後面附加一個以64位二進製表示的填充前信息長度。經過這兩步的處理,如今信息位元組長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數倍。這樣做的原因是為滿足後面處理中對信息長度的要求。(可參見MD5演算法詞條)
PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA數據安全公司及其合作夥伴制定的一組公鑰密碼學標准,其中包括證書申請、證書更新、證書作廢表發布、擴展證書內容以及數字簽名、數字信封的格式等方面的一系列相關協議。
SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用演算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
Ⅷ 加密演算法有哪些
常見加密演算法
DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和 RC4:用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密演算法:使用 128 位密鑰提供非常強的安全性;
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高,目前 AES 標準的一個實現是 Rijndael 演算法;
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
其它演算法,如ElGamal、Deffie-Hellman、新型橢圓曲線演算法ECC等。
比如說,MD5,你在一些比較正式而嚴格的網站下的東西一般都會有MD5值給出,如安全焦點的軟體工具,每個都有MD5。
Ⅸ 幾種常用加密演算法比較
對稱加密演算法用來對敏感數據等信息進行加密,常用的演算法包括:
des(data
encryption
standard):數據加密標准,速度較快,適用於加密大量數據的場合。
3des(triple
des):是基於des,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
aes(advanced
encryption
standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高;
Ⅹ 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 Symmetric Key Algorithm 又稱為對稱加密、私鑰加密、共享密鑰加密:這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單的相互推算的密鑰,對稱加密的速度一般都很快。
分組密碼
DES、3DES
AES
ECC
數字簽名
分組密碼 Block Cipher 又稱為「分塊加密」或「塊加密」,將明文分成多個等長的模塊,使用確定的演算法和對稱密鑰對每組分別加密解密。這也就意味著分組密碼的一個優點在於可以實現同步加密,因為各分組間可以相對獨立。
與此相對應的是流密碼:利用密鑰由密鑰流發生器產生密鑰流,對明文串進行加密。與分組密碼的不同之處在於加密輸出的結果不僅與單獨明文相關,而是與一組明文相關。
數據加密標准 DES Data Encryption Standard 是由IBM在美國國家安全局NSA授權下研製的一種使用56位密鑰的分組密碼演算法,並於1977年被美國國家標准局NBS公布成為美國商用加密標准。但是因為DES固定的密鑰長度,漸漸不再符合在開放式網路中的安全要求,已經於1998年被移出商用加密標准,被更安全的AES標准替代。
DES使用的Feistel Network網路屬於對稱的密碼結構,對信息的加密和解密的過程極為相似或趨同,使得相應的編碼量和線路傳輸的要求也減半。
DES是塊加密演算法,將消息分成64位,即16個十六進制數為一組進行加密,加密後返回相同大小的密碼塊,這樣,從數學上來說,64位0或1組合,就有2^64種可能排列。DES密鑰的長度同樣為64位,但在加密演算法中,每逢第8位,相應位會被用於奇偶校驗而被演算法丟棄,所以DES的密鑰強度實為56位。
3DES Triple DES,使用不同Key重復三次DES加密,加密強度更高,當然速度也就相應的降低。
高級加密標准 AES Advanced Encryption Standard 為新一代數據加密標准,速度快,安全級別高。由美國國家標准技術研究所NIST選取Rijndael於2000年成為新一代的數據加密標准。
AES的區塊長度固定為128位,密鑰長度可以是128位、192位或256位。AES演算法基於Substitution Permutation Network代換置列網路,將明文塊和密鑰塊作為輸入,並通過交錯的若干輪代換"Substitution"和置換"Permutation"操作產生密文塊。
AES加密過程是在一個4*4的位元組矩陣(或稱為體State)上運作,初始值為一個明文區塊,其中一個元素大小就是明文區塊中的一個Byte,加密時,基本上各輪加密循環均包含這四個步驟:
ECC即 Elliptic Curve Cryptography 橢圓曲線密碼學,是基於橢圓曲線數學建立公開密鑰加密的演算法。ECC的主要優勢是在提供相當的安全等級情況下,密鑰長度更小。
ECC的原理是根據有限域上的橢圓曲線上的點群中的離散對數問題ECDLP,而ECDLP是比因式分解問題更難的問題,是指數級的難度。而ECDLP定義為:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
數字簽名 Digital Signature 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。