對稱加密算法
JAVA-API部分算法實現
對稱加密算法 對稱加密算法是應用較早的加密算法,技術成熟。在對稱加密算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文發送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密算法有DES和IDEA等。美國國家標準局倡導的AES即將作為新標準取代DES。
DES
數據加密算法(Data Encryption Algorithm,DEA)的數據加密標準(Data Encryption Standard,DES)是規范的描述,它出自 IBM 的研究工作,并在 1997 年被美國政府正式采納。它很可能是使用最廣泛的秘鑰系統,特別是在保護金融數據的安全中,最初開發的 DES 是嵌入硬件中的。通常,自動取款機(Automated Teller Machine,ATM)都使用 DES。DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中一半應用循環功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續下去,但最后一個循環不交換。DES 使用 16 個循環。
攻擊 DES 的主要形式被稱為蠻力的或徹底密鑰搜索,即重復嘗試各種密鑰直到有一個符合為止。如果 DES 使用 56 位的密鑰,則可能的密鑰數量是 2 的 56 次方個。隨著計算機系統能力的不斷發展,DES 的安全性比它剛出現時會弱得多,然而從非關鍵性質的實際出發,仍可以認為它是足夠的。不過 ,DES 現在僅用于舊系統的鑒定,而更多地選擇新的加密標準 — 高級加密標準(Advanced Encryption Standard,AES)。
DES 的常見變體是三重 DES,使用 168 位的密鑰對資料進行三次加密的一種機制;它通常(但非始終)提供極其強大的安全性。如果三個 56 位的子元素都相同,則三重 DES 向后兼容 DES。
IBM 曾對 DES 擁有幾年的專利權,但是在 1983 年已到期,并且處于公有范圍中,允許在特定條件下可以免除專利使用費而使用。
由于DES是加(解)密64位明(密)文,即為8個字節(8*8=64),可以據此初步判斷這是分組加密,加密的過程中會有16次循環與密鑰置換過程,據此可以判斷有可能是用到DES密碼算法,更精確的判斷還得必須懂得一點DES的加密過程。
3DES
3DES是DES加密算法的一種模式,它使用3條64位的密鑰對數據進行三次加密。數據加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱密鑰加密法,并于1981年被ANSI組織規范為ANSI X.3.92。DES使用56位密鑰和密碼塊的方法,而在密碼塊的方法中,文本被分成64位大小的文本塊然后再進行加密。比起最初的DES,3DES更為安全。
3DES(即Triple DES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定為過渡的加密標準),是DES的一個更安全的變形。它以DES為基本模塊,通過組合分組方法設計出分組加密算法,其具體實現如下:設Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,P代表明文,C代表密表,這樣,
3DES加密過程為:C=Ek3(Dk2(Ek1(P)))
3DES解密過程為:P=Dk1((EK2(Dk3(C)))
AES——對稱密碼新標準
對稱密碼體制的發展趨勢將以分組密碼為重點。分組密碼算法通常由密鑰擴展算法和加密(解密)算法兩部分組成。密鑰擴展算法將b字節用戶主密鑰擴展成r個子密鑰。加密算法由一個密碼學上的弱函數f與r個子密鑰迭代r次組成。混亂和密鑰擴散是分組密碼算法設計的基本原則。抵御已知明文的差分和線性攻擊,可變長密鑰和分組是該體制的設計要點。??
AES是美國國家標準技術研究所NIST旨在取代DES的21世紀的加密標準。? ?
AES的基本要求是,采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應易于各種硬件和軟件實現。1998年 NIST開始AES第一輪分析、測試和征集,共產生了15個候選算法。1999年3月完成了第二輪AES2的分析、測試。預計在2000年8月AES的最終結果將公布。? ?
? ?
在應用方面,盡管DES在安全上是脆弱的,但由于快速DES芯片的大量生產,使得DES仍能暫時繼續使用,為提高安全強度,通常使用獨立密鑰的三級DES。但是DES遲早要被AES代替。流密碼體制較之分組密碼在理論上成熟且安全,但未被列入下一代加密標準。??
非對稱加密算法
asymmetric encoding algorithm
非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。 非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。 非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要。
RSA算法演示
對稱和非對稱加密算法案例
1.傳入方簽發并通過兩條途徑傳遞兩張密鑰傳輸卡,每張卡中存有一段傳入方的根公鑰;
2.傳出方從兩張卡獲得傳入方的根公鑰,并隨機生成傳輸密鑰,再用該根公鑰加密后分段寫入到兩張卡中,其工作密鑰用傳輸密鑰傳出并寫入兩張卡中通過兩條途徑遞送給傳入方;
3.傳入方驗證卡的合法性;從兩張卡中獲得傳輸密鑰和工作密鑰密文并用根私鑰解密傳輸密鑰寫入加密機傳輸密鑰區;傳入方將工作密鑰密文通過傳輸密鑰寫入工作密鑰區,從而完成了兩臺密鑰管理加密機之間的密鑰傳遞過程。本發明采用證書方式,加強了對稱密鑰傳輸時的安全性,采用IC卡作為介質,保證了傳輸介質的安全。
申請日: | 2006年12月15日 |
公開日: | 2007年06月06日 |
授權公告日: | |
申請人/專利權人: | 上海格爾軟件股份有限公司 |
申請人地址: | 上海市閘北區余姚路288號A座4層 |
發明設計人: | 張翔;楊茂江;李瀾濤 |
專利代理機構: | |
代理人: | 陳學雯 |
專利類型: | 發明專利 |
分類號: | H04L9/32;H04L9/14;H04L9/12;H04L9/08;H04L9/30 |