電商
APP開發(fā)關(guān)于非對(duì)稱密碼體系的算法介紹。電商APP開發(fā)非對(duì)稱密鑰體系(公鑰密碼體系)中,安全傳送數(shù)據(jù)的流程是:當(dāng)Alice要傳送數(shù)據(jù)給Bob時(shí),首先用自己的私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,形成第一層保護(hù),再用已公開的Bob的公鑰進(jìn)行加密,形成第二層保護(hù),最后傳送給Bob。當(dāng)Bob接收到此加密數(shù)據(jù)后,先用自己的私鑰解開第二層保護(hù),Bob的私鑰只有Bob擁有,他人無法獲取,因此,
深圳APP開發(fā)公司認(rèn)為只有Bob能夠解密第二層。接著,Bob利用Alice的公鑰驗(yàn)證簽名,由于只有Alice擁有對(duì)應(yīng)其公鑰的私鑰,因此,電商類APP開發(fā)能夠證明數(shù)據(jù)的發(fā)送方是Alice。但是,公鑰密碼系統(tǒng)的缺點(diǎn)在于,如果Alice在獲取Bob的公鑰過程中,公鑰被中間者篡改或者破壞,Alice便無法使用Bob的公鑰了。

因此,APP開發(fā)公司為了解決上述問題,可以采用以數(shù)字證書為基礎(chǔ)的公鑰密碼系統(tǒng)(Certificate-Based Public Key Cryptosystem),該密碼系統(tǒng)中,通過公正的第三方(Trusted Third Party,TTP)為公鑰提供有效性保證。因此,數(shù)字證書授權(quán)(Certificate Authority,CA)機(jī)構(gòu)應(yīng)運(yùn)而生,通過由CA簽發(fā)數(shù)字證書(DigitalCertificate)的方式以保證公鑰的有效性。
目前,電商APP開發(fā)公鑰密鑰系統(tǒng)以身份認(rèn)證方式的不同進(jìn)行分類,包括以數(shù)字證書為基礎(chǔ)的公鑰密碼系統(tǒng)、以身份為基礎(chǔ)的公鑰密碼系統(tǒng)(Identity-Based Public KeyCryptosystem)以及自我驗(yàn)證的公鑰密碼系統(tǒng)(Self-Certified Public KeyCryptosystem)。現(xiàn)階段的移動(dòng)電子商務(wù)應(yīng)用中,大部分以數(shù)字證書為基礎(chǔ)進(jìn)行認(rèn)證。這種類型的公鑰密碼系統(tǒng)中包含每一位使用者的身份信息、公鑰、私鑰以及數(shù)字證書。其中,數(shù)字證書主要用于保證公鑰的有效性。這樣做是為了避免公鑰在傳遞過程中被中間者惡意破壞,因?yàn)閿?shù)字證書機(jī)構(gòu)能夠?qū)?shù)字證書持有人合法身份做保證,并提供公鑰的有效證明,所以數(shù)字證書機(jī)構(gòu)需要去維護(hù)密鑰目錄,并管理數(shù)字證書。
非對(duì)稱密碼的算法主要包括RSA、橢圓曲線密碼系統(tǒng)、IBE、Diffie-Hellman、El Gamal和Knapsack。這些算法用于創(chuàng)建公鑰/私鑰對(duì),執(zhí)行密鑰交換或協(xié)定以及生產(chǎn)和驗(yàn)證數(shù)字簽名。深圳APP開發(fā)公司資深程序員下面對(duì)幾種常用的非對(duì)稱密碼算法進(jìn)行介紹。
RSA是以發(fā)明人Ron Rivest、Adi Shamir和Leonard Adleman名字縮寫命名,是非對(duì)稱算法中最流行的一種。在有線網(wǎng)絡(luò)環(huán)境中,商用化的公鑰加密技術(shù)幾乎都是基于RSA的加密,主要原因在于RSA是第一個(gè)較為完善的公鑰系統(tǒng)。RSA的安全基于大數(shù)的分解難度,其公鑰和私鑰是一對(duì)大素?cái)?shù)(商用的RSA公私鑰至少是512位,一般是1 o24位或更多)的函數(shù)。已知公鑰和密文,想要獲取明文的難度等價(jià)于分解兩個(gè)大素?cái)?shù)之積的難度,理論上幾乎不可行。但是,RSA算法需要較大的計(jì)算量和存儲(chǔ)容量,而移動(dòng)終端需要的計(jì)算量和存儲(chǔ)容量都比較有限,因此,RSA運(yùn)算需要耗費(fèi)較長的時(shí)間。相比之下,一種更新的加密技術(shù)―—橢圓曲線加密(Elliptic CurveCryptography,ECC)更適合應(yīng)用于移動(dòng)電子商務(wù)中。相較RSA的數(shù)學(xué)基礎(chǔ)(因子分解問題),橢圓曲線算法的安全性是基于橢圓曲線上點(diǎn)群的離散對(duì)數(shù)問題,該問題難度更大,即更加難以破解。從目前已知的最好求解算法來看,16obit的橢圓曲線密碼算法的安全性相當(dāng)于1o24bit的RSA算法的安全性。

圖3-3為RSA算法和橢圓曲線密碼算法的難度比較。
從圖3-3可以看出,在破解密鑰所需時(shí)間相同的前提下,RSA的密鑰長度比橢圓曲線的密鑰長度增長快得多。
橢圓曲線密碼算法的優(yōu)點(diǎn)對(duì)于使用智能卡(SIM卡、STK卡、WIM卡等)為主的移動(dòng)電子商務(wù)終端應(yīng)用非常重要,主要表現(xiàn)在以下幾個(gè)方面[7]。
(1)所需的存儲(chǔ)空間較小
橢圓曲線密碼系統(tǒng)的密鑰較短,能夠?yàn)橹悄芸ü?jié)省較多的存儲(chǔ)空間,進(jìn)而降低智能卡的使用成本,使得其他程序能夠利用更多的存儲(chǔ)空間去完成較復(fù)雜的任務(wù)。
(2)節(jié)省帶寬
采用橢圓曲線密碼體系的密鑰較短,加密后的數(shù)據(jù)也比較短。由于密鑰長度短,因此,對(duì)EEPROM (Electrically Erasable Programmable Read-Only
Memory,電可擦可編程只讀存儲(chǔ)器)的需求量也隨之減少。而傳送的數(shù)據(jù)長度短能夠減少傳送時(shí)間,節(jié)省帶寬。
(3)縮短處理時(shí)間
使用橢圓曲線密碼體系能夠縮短處理時(shí)間,進(jìn)而更好地應(yīng)用于智能卡平臺(tái),此特點(diǎn)非常重要。其他公鑰密碼體系常利用專門的硬件設(shè)備實(shí)現(xiàn),例如密碼協(xié)處理器,在占用空間的同時(shí)也增加了智能卡的使用成本。而橢圓曲線密碼技術(shù)能夠在有限的智能卡ROM中實(shí)現(xiàn),不需要額外的硬件設(shè)備。
(4)能夠適應(yīng)更高安全強(qiáng)度的需求
當(dāng)智能卡對(duì)安全性的要求更高時(shí),相應(yīng)地需要增加密鑰長度。使用橢圓曲線密碼技術(shù),在安全性得以提升的同時(shí),所需增加的系統(tǒng)資源相對(duì)較少,這意味著智能卡在提供高安全性服務(wù)的同時(shí),無需耗費(fèi)太多成本。
(5)便于生成公私密鑰對(duì)
電商APP開發(fā)時(shí)對(duì)于公私密鑰對(duì)的生成,橢圓曲線密碼系統(tǒng)同樣有著得天獨(dú)厚的優(yōu)勢(shì)。在公鑰密碼系統(tǒng)中,私鑰的安全性為重中之重,為了實(shí)現(xiàn)不可否認(rèn)性,私鑰只能由用戶個(gè)人擁有,其他人均無法獲取。由于其他算法的復(fù)雜性,智能卡中生成密鑰難以實(shí)現(xiàn),私鑰裝入智能卡的環(huán)境必須完全安全。但對(duì)于橢圓曲線密碼體系而言,生成密鑰所耗費(fèi)的時(shí)間短,基本只需一個(gè)隨機(jī)數(shù)生成器就可完成,即使是計(jì)算能力有限的智能卡,也能生成密鑰。
目前,橢圓曲線密碼體制的優(yōu)越性已經(jīng)得到了不少公司及廠商的認(rèn)同。WAP論壇在制定WAP規(guī)范時(shí),也將橢圓曲線的算法考慮在內(nèi),將其與RSA以及其他安全技術(shù)共同作為數(shù)字證書和傳輸層安全技術(shù)的數(shù)學(xué)基礎(chǔ)之一。
深圳APP開發(fā)公司提醒IBE (Identity Based Encryption,基于身份的加密)技術(shù)是基于傳統(tǒng)的PKI(公開密鑰基礎(chǔ)設(shè)施)發(fā)展而來。IBE密碼技術(shù)加/解密使用不同的密鑰,每個(gè)人的公鑰就是他的身份標(biāo)識(shí),比如E-mail地址、電話號(hào)碼等。而私鑰則以數(shù)據(jù)的形式由用戶自己掌握,密鑰管理相當(dāng)簡單,可以很方便地對(duì)數(shù)據(jù)信息進(jìn)行加/解密。這樣就使得系統(tǒng)的建立和維護(hù)趨于簡單,相應(yīng)的成本也較低,IBE身份加密體制大大地節(jié)約了成本,非常適用于低成本的網(wǎng)絡(luò)應(yīng)用,這樣就為更多的個(gè)人和群體提供了一種新型的安全加密方案??傮w來說,非對(duì)稱密碼體系解決了對(duì)稱密碼體系中密鑰數(shù)量繁多、難以管理的問題,也不用擔(dān)心私鑰的安全性,但不足之處在于加/解密速度慢。好了,
深圳APP開發(fā)公司本文關(guān)于“電商APP開發(fā)關(guān)于非對(duì)稱密碼體系的算法介紹”開發(fā)經(jīng)驗(yàn)就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。