安全算法-对称加密与非对称加密
1. 什么是對(duì)稱加密
對(duì)稱加密它的特點(diǎn)是文件加密和解密使用相同的密鑰加密。密鑰既可以用作加密也可以用作解密。對(duì)稱加密算法使用起來(lái)簡(jiǎn)單快捷,密鑰較短,且破譯困難。
常見(jiàn)的對(duì)稱加密:DES、AES、國(guó)密SM4
2. 非對(duì)稱加密
非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對(duì),如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密,因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰。
非對(duì)稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過(guò)程是:甲方生成一對(duì)密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專用密鑰對(duì)加密后的信息進(jìn)行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。
常見(jiàn)的非對(duì)稱加密:RSA、 ECC、 國(guó)密SM2
3. 區(qū)別
| 1 | 對(duì)稱加密中加密和解密使用的秘鑰是同一個(gè) | 非對(duì)稱加密中采用兩個(gè)密鑰,一般使用公鑰進(jìn)行加密,私鑰進(jìn)行解密 |
| 2 | 對(duì)稱加密解密的速度比較快 | 對(duì)稱加密解密的速度比較快,非對(duì)稱加密和解密花費(fèi)的時(shí)間長(zhǎng)、速度相對(duì)較慢 |
| 3 | 對(duì)稱加密的安全性相對(duì)較低 | 非對(duì)稱加密的安全性較高 |
下面介紹我用過(guò)的兩種加密算法
4. AES
AES 使用密鑰長(zhǎng)度支持為 128/192/256 位的對(duì)稱數(shù)據(jù)包密碼系統(tǒng)。當(dāng)用戶密鑰不夠長(zhǎng)時(shí),將使用0x00填充該工具。IV也是如此。不合時(shí)宜的內(nèi)容將被忽略。加密后,明文數(shù)據(jù)以 16 個(gè)字節(jié)分組,小于 16 個(gè)字節(jié)的數(shù)據(jù)將填充特定的填充(如 PCKS7)字符,因此不同填充模式下文本的最后一段可能會(huì)有所不同。
常見(jiàn)的填充模式有:‘PCKS5’、‘PCKS7’、‘ISO10126’、‘ANSIX923’、‘ZERO’ ,類型包括DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB [1]。
ECB: 最簡(jiǎn)單的方式, (原文,密鑰) => 密文
CBC: 先將原文與IV異或, 再加密, (原文⊕IV ,密鑰) => 密文
CFB: 過(guò)程比較復(fù)雜, 大概就是, 上個(gè)數(shù)據(jù)塊的輸出, 會(huì)作為下個(gè)數(shù)據(jù)塊的輸入.
CTR: 復(fù)雜
關(guān)于模式類型的介紹詳見(jiàn)《Recommendation for Block Cipher Modes of Operation Methods and Techniques》文件, 公眾號(hào)后臺(tái)回復(fù) “ AES加密 ”可獲取。
5.SM4
SMS4算法是一種32輪的迭代非平衡Feistel結(jié)構(gòu)的分組加密算法,其密鑰長(zhǎng)度和分組長(zhǎng)度均為128。SMS4算法的加解密過(guò)程中使用的算法是完全相同的,唯一不同點(diǎn)在于該算法的解密密鑰是由它的加密密鑰進(jìn)行逆序變換后得到的。
SMS4分組加密算法是中國(guó)無(wú)線標(biāo)準(zhǔn)中使用的分組加密算法,在2012年已經(jīng)被國(guó)家商用密碼管理局確定為國(guó)家密碼行業(yè)標(biāo)準(zhǔn),標(biāo)準(zhǔn)編號(hào)GM/T 0002-2012并且改名為SM4算法,與SM2橢圓曲線公鑰密碼算法,SM3密碼雜湊算法共同作為國(guó)家密碼的行業(yè)標(biāo)準(zhǔn),在我國(guó)密碼行業(yè)中有著極其重要的位置。
SMS4通過(guò)32輪非線性迭代后加上一個(gè)反序變換,這樣只需要解密密鑰是加密密鑰的逆序,就能使得解密算法與加密算法保持一致。SMS4加解密算法的結(jié)構(gòu)完全相同,只是在使用輪密鑰時(shí)解密密鑰是加密密鑰的逆序。
SM4加密算法應(yīng)用場(chǎng)景
SM4廣泛使用在WAPI無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn)中使用,比如當(dāng)我們前端向后臺(tái)傳參數(shù)的時(shí)候,可以使用此算法。對(duì)參數(shù)的數(shù)據(jù)進(jìn)行加密,然后后臺(tái)對(duì)加密的數(shù)據(jù)進(jìn)行解密再存儲(chǔ)到數(shù)據(jù)庫(kù)中,保證數(shù)據(jù)傳輸過(guò)程中,不受泄露。
閱讀原文
總結(jié)
以上是生活随笔為你收集整理的安全算法-对称加密与非对称加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 登录指定sock路径
- 下一篇: 左拥快手右抱抖音,丁磊直播究竟图什么?