橢圓曲線密碼學(xué)(英語(yǔ):Elliptic curve cryptography,縮寫(xiě)為 ECC),一種建立公開(kāi)密鑰加密的算法,基于橢圓曲線數(shù)學(xué)。橢圓曲線在密碼學(xué)中的使用是在1985年由Neal Koblitz和Victor Miller分別獨(dú)立提出的。
10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有河源免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
ECC的主要優(yōu)勢(shì)是在某些情況下它比其他的方法使用更小的密鑰——比如RSA加密算法——提供相當(dāng)?shù)幕蚋叩燃?jí)的安全。
橢圓曲線密碼學(xué)的許多形式有稍微的不同,所有的都依賴于被廣泛承認(rèn)的解決橢圓曲線離散對(duì)數(shù)問(wèn)題的 困難性上。與傳統(tǒng)的基于大質(zhì)數(shù)因子分解困難性的加密方法不同,ECC通過(guò)橢圓曲線方程式的性質(zhì)產(chǎn)生密鑰。
ECC 164位的密鑰產(chǎn)生的一個(gè)安全級(jí)相當(dāng)于RSA 1024位密鑰提供的保密強(qiáng)度,而且計(jì)算量較小,處理速度 更快,存儲(chǔ)空間和傳輸帶寬占用較少。目前我國(guó) 居民二代身份證 正在使用 256 位的橢圓曲線密碼,虛擬 貨幣 比特幣 也選擇ECC作為加密算法。
具體算法詳解參考:
golang AES加密函數(shù)的使用
AES: Advanced Encryption Standard
高階加密標(biāo)準(zhǔn),是用來(lái)代替 老的DES的。
AES加密算法的加密塊必須是16字節(jié)(128bit),所以不足部分需要填充,常用的填充算法是PKCS7。
AES加密算法的key可以是16字節(jié)(AES128),或者24字節(jié)(AES192),或者是32字節(jié)(AES256)
ECB:Electronic Codebook Book
CBC:Cipher Block Chaining:這是最常見(jiàn)的塊加密實(shí)現(xiàn)
CTR:Counter
CFB:Cipher FeedBack
OFB:Output FeedBack
具體的差異我也沒(méi)去弄明白,知道這么個(gè)意思,加密算法稍后差異。
包括AES,CBC,CTR,OFB,CFB,GCM。
這其中GCM不需要加密塊必須16字節(jié)長(zhǎng)度,可以是任意長(zhǎng)度,其他的都需要16字節(jié)對(duì)其,所以不足部分都需要補(bǔ)充。
3.1 AES
3.2 CBC
3.3 CTR
3.4 OFB
3.5 CFB
3.6 GCM
GCM實(shí)現(xiàn)算法不需要pad。
DES(Data Encryption Standard)是一種常見(jiàn)的分組加密算法,由IBM公司在1971年提出。它是一種對(duì)稱加密算法,也就是說(shuō)它使用同一個(gè)密鑰來(lái)加密和解密數(shù)據(jù)。
DES使用一個(gè)56位的初始密鑰,但是這里提供的是一個(gè)64位的值,這是因?yàn)樵谟布?shí)現(xiàn)中每8位可以用于奇偶校驗(yàn)??梢酝ㄟ^(guò)設(shè)定8位字符串,由 crypto/des 庫(kù)的 des.NewCipher(key) 函數(shù)生成密鑰
DES分組的大小是64位,如果加密的數(shù)據(jù)長(zhǎng)度不是64位的倍數(shù),可以按照某種具體的規(guī)則來(lái)填充位。常用的填充算法有 pkcs5 , zero 等
橢圓曲線密碼學(xué)(英語(yǔ):Elliptic Curve Cryptography,縮寫(xiě):ECC)是一種基于橢圓曲線數(shù)學(xué)的公開(kāi)密鑰加密算法。橢圓曲線在密碼學(xué)中的使用是在1985年由Neal Koblitz和Victor Miller分別獨(dú)立提出的。
ECC的主要優(yōu)勢(shì)是在某些情況下它比其他的算法(比如RSA加密算法)使用更小的密鑰并提供相當(dāng)?shù)幕蚋叩燃?jí)的安全。ECC的另一個(gè)優(yōu)勢(shì)是可以定義群之間的雙線性映射,基于Weil對(duì)或是Tate對(duì);雙線性映射已經(jīng)在密碼學(xué)中發(fā)現(xiàn)了大量的應(yīng)用,例如基于身份的加密。
不過(guò)一個(gè)缺點(diǎn)是加密和解密操作的實(shí)現(xiàn)比其他機(jī)制花費(fèi)的時(shí)間長(zhǎng)。