伴隨著人工智能,、物聯(lián)網(wǎng)時(shí)代的到來,,數(shù)據(jù)應(yīng)用變得頻繁起來,數(shù)據(jù)安全應(yīng)該如何保護(hù),?軟件加密算法都有哪些,,這些算法在哪些方面得到了應(yīng)用,?慢慢讀下去,你會(huì)發(fā)現(xiàn)圍繞在我們身邊的“小密碼”,。 對(duì)稱加密算法是應(yīng)用較早的加密算法,,技術(shù)成熟。在對(duì)稱加密算法中,,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,,使其變成復(fù)雜的加密密文發(fā)送出去。在對(duì)稱加密算法中,,使用的密鑰只有一個(gè),,發(fā)收信雙方都使用這個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密,這就要求解密方事先必須知道加密密鑰,。對(duì)稱加密算法的特點(diǎn)是算法公開,、計(jì)算量小、加密速度快,、加密效率高,。不足之處是,交易雙方都使用同樣鑰匙,,安全性得不到保證,。對(duì)稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因?yàn)槊荑€管理困難,,使用成本較高,。 DES加密算法 DES加密算法是一種分組密碼,以64位為分組對(duì)數(shù)據(jù)加密,,它的密鑰長(zhǎng)度是56位,,加密解密用同一算法。DES加密算法是對(duì)密鑰進(jìn)行保密,,而公開算法,,包括加密和解密算法。這樣,,只有掌握了和發(fā)送方相同密鑰的人才能解讀由DES加密算法加密的密文數(shù)據(jù),。因此,破譯DES加密算法實(shí)際上就是搜索密鑰的編碼,。對(duì)于56位長(zhǎng)度的密鑰來說,,如果用窮舉法來進(jìn)行搜索的話,其運(yùn)算次數(shù)為256,。 隨著計(jì)算機(jī)系統(tǒng)能力的不斷發(fā)展,,DES的安全性比它剛出現(xiàn)時(shí)會(huì)弱得多,然而從非關(guān)鍵性質(zhì)的實(shí)際出發(fā),,仍可以認(rèn)為它是足夠的,。不過,,DES現(xiàn)在僅用于舊系統(tǒng)的鑒定,而更多地選擇新的加密標(biāo)準(zhǔn),。 3DES加密算法 3DES是三重?cái)?shù)據(jù)加密算法塊密碼的通稱,。它相當(dāng)于是對(duì)每個(gè)數(shù)據(jù)塊應(yīng)用三次DES加密算法。由于計(jì)算機(jī)運(yùn)算能力的增強(qiáng),,原版DES密碼的密鑰長(zhǎng)度變得容易被暴力破解,;3DES即是設(shè)計(jì)用來提供一種相對(duì)簡(jiǎn)單的方法,即通過增加DES的密鑰長(zhǎng)度來避免類似的攻擊,,而不是設(shè)計(jì)一種全新的塊密碼算法,。 3DES是DES向AES過渡的加密算法,加密算法,,其具體實(shí)現(xiàn)如下:設(shè)Ek()和Dk()代表DES算法的加密和解密過程,,K代表DES算法使用的密鑰,M代表明文,,C代表密文,,這樣: 3DES加密過程為:C=Ek3(Dk2(Ek1(M))) 3DES解密過程為:M=Dk1(EK2(Dk3(C))) AES加密算法 AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn),該加密算法采用對(duì)稱分組密碼體制,,密鑰長(zhǎng)度的最少支持為128,、192、256,,分組長(zhǎng)度128位,,算法應(yīng)易于各種硬件和軟件實(shí)現(xiàn)。這種加密算法是美國聯(lián)邦政府采用的區(qū)塊加密標(biāo)準(zhǔn),,這個(gè)標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用,。 AES加密算法被設(shè)計(jì)為支持128/192/256位(/32=nb)數(shù)據(jù)塊大?。捶纸M長(zhǎng)度);支持128/192/256位(/32=nk)密碼長(zhǎng)度,,,,在10進(jìn)制里,對(duì)應(yīng)34×1038,、62×1057,、1.1×1077個(gè)密鑰。 不對(duì)稱加密算法使用兩把完全不同但又是完全匹配的一對(duì)鑰匙—公鑰和私鑰,。在使用不對(duì)稱加密算法加密文件時(shí),,只有使用匹配的一對(duì)公鑰和私鑰,才能完成對(duì)明文的加密和解密過程,。采用不對(duì)稱加密算法,,收發(fā)信雙方在通信之前,,收信方必須將自己早已隨機(jī)生成的公鑰送給發(fā)信方,而自己保留私鑰,。由于不對(duì)稱算法擁有兩個(gè)密鑰,,因而特別適用于分布式系統(tǒng)中的數(shù)據(jù)加密。廣泛應(yīng)用的不對(duì)稱加密算法有RSA算法和美國國家標(biāo)準(zhǔn)局提出的DSA,。以不對(duì)稱加密算法為基礎(chǔ)的加密技術(shù)應(yīng)用非常廣泛,。 RSA加密算法 RSA加密算法是目前最有影響力的公鑰加密算法,并且被普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一,。RSA是第一個(gè)能同時(shí)用于加密和數(shù)宇簽名的算法,,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn),。RSA加密算法基于一個(gè)十分簡(jiǎn)單的數(shù)論事實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,,但那時(shí)想要,但那時(shí)想要對(duì)其乘積進(jìn)行因式分解卻極其困難,,因此可以將乘積公開作為加密密鑰,。 DSA加密算法 DSA是基于整數(shù)有限域離散對(duì)數(shù)難題的,其安全性與RSA相比差不多,。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開,,這樣,當(dāng)使用別人的p和q時(shí),,即使不知道私鑰,,你也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是作了手腳,。RSA算法卻做不到,。DSA只是一種算法,和RSA不同之處在于它不能用作加密和解密,,也不能進(jìn)行密鑰交換,,只用于簽名,它比RSA要快很多,。 ECC加密算法 橢圓加密算法(ECC)是一種公鑰加密體制,,最初由Koblitz和Miller兩人于1985年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點(diǎn)構(gòu)成Abel加法群上橢圓離散對(duì)數(shù)的計(jì)算困難性,。公鑰密碼體制根據(jù)其所依據(jù)的難題一般分為三類:大整數(shù)分解問題類,、離散對(duì)數(shù)問題類、橢圓曲線類,。有時(shí)也把橢圓曲線類歸為離散對(duì)數(shù)類,。橢圓曲線密碼體制是目前已知的公鑰體制中,對(duì)每比特所提供加密強(qiáng)度最高的一種體制,。解橢圓曲線上的離散對(duì)數(shù)問題的最好算法是Pollard rho方法,,其時(shí)間復(fù)雜度為,,是完全指數(shù)階的。 不可逆加密算法的特征是加密過程中不需要使用密鑰,,輸入明文后由系統(tǒng)直接經(jīng)過加密算法處理成密文,,這種加密后的數(shù)據(jù)是無法被解密的,只有重新輸入明文,,并再次經(jīng)過同樣不可逆的加密算法處理,,得到相同的加密密文并被系統(tǒng)重新識(shí)別后,才能真正解密,。在計(jì)算機(jī)網(wǎng)絡(luò)中應(yīng)用較多不可逆加密算法的有RSA公司發(fā)明的MD5算法和由美國國家標(biāo)準(zhǔn)局建議的不可逆加密標(biāo)準(zhǔn)SHS等,。 MD5加密算法 MD5為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù),。對(duì)MD5加密算法簡(jiǎn)要的敘述可以為:MD5以512位分組來處理輸入的信息,,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,,算法的輸出由四個(gè)32位分組組成,,將這四個(gè)32位分組級(jí)聯(lián)后將生成—個(gè)128位散列值。 MD5被廣泛用于各種軟件的密碼認(rèn)證和鑰匙識(shí)別上,。MD5用的是哈希函數(shù),,它的典型應(yīng)用是對(duì)一段信息產(chǎn)生信息摘要,以防止被篡改,。MD5的典型應(yīng)用是對(duì)一段Message產(chǎn)生fingerprin指紋,,以防止被“篡改”。如果再有—個(gè)第三方的認(rèn)證機(jī)構(gòu),,用MD5還可以防止文件作者的“抵賴”,,這就是所謂的數(shù)字簽名應(yīng)用。MD5還廣泛用于操作系統(tǒng)的登陸認(rèn)證上,,如UNIX,、各類BSD系統(tǒng)登錄密碼、數(shù)字簽名等諸多方,。 SHA1加密算法 SHA1是和MD5一樣流行的消息摘要算法,。SHA加密算法模仿MD4加密算法,。SHA1設(shè)計(jì)為和數(shù)字簽名算法(DSA)一起使用,。 SHA1主要適用于數(shù)字簽名標(biāo)準(zhǔn)里面定義的數(shù)字簽名算法。對(duì)于長(zhǎng)度小于2“64位的消息,,SHA1會(huì)產(chǎn)生一個(gè)160位的消息摘要,。當(dāng)接收到消息的時(shí)候,這個(gè)消息摘要可以用來驗(yàn)證數(shù)據(jù)的完整性,。在傳輸?shù)倪^程中,,數(shù)據(jù)很可能會(huì)發(fā)生變化,,那么這時(shí)候就會(huì)產(chǎn)生不同的消息摘要。SHA1不可以從消息摘要中復(fù)原信息,,而兩個(gè)不同的消息不會(huì)產(chǎn)生同樣的消息摘要,。這樣,SHA1就可以驗(yàn)證數(shù)據(jù)的完整性,,所以說SHA1是為了保證文件完整性的技術(shù),。 SHA1加密算法可以采用不超過264位的數(shù)據(jù)輸入,并產(chǎn)生一個(gè)160位的摘要,。輸入被劃分為512位的塊,,并單獨(dú)處理。160位緩沖器用來保存散列函數(shù)的中間和最后結(jié)果,。緩沖器可以由5個(gè)32位寄存器(A,、B、C,、D和E)來表示,。SHA1是一種比MD5的安全性強(qiáng)的算法,理論上,,凡是采取“消息摘要”方式的數(shù)字驗(yàn)證算法都是有“碰撞”的——也就是兩個(gè)不同的東西算出的消息摘要相同,,互通作弊圖就是如此。但是安全性高的算法要找到指定數(shù)據(jù)的“碰撞”很困難,,而利用公式來計(jì)算“碰撞”就更困難一目前為止通用安全算法中僅有MD5被破解,。 當(dāng)然除上述加密算法以外,也存在著其他方法,,小編找到了一張圖表,,以做補(bǔ)充。(轉(zhuǎn)自電子發(fā)燒友)
|
|