RSA算法特點(diǎn)與應(yīng)用注意事項(xiàng)
LKT系列加密產(chǎn)品部分具有硬件RSA算法協(xié)處理器,可以有效的為用戶開發(fā)提供更多的選擇和安全性。
3DES、AES等對稱算法雖有運(yùn)算速度快、加密強(qiáng)度高等優(yōu)點(diǎn),但密鑰存儲與傳遞卻是其最大的弱點(diǎn),這也對它的應(yīng)用場景造成了一定的限制。而RSA非對稱算法利用非對稱公私鑰對,解決了密鑰傳遞中的安全問題。在一些對實(shí)時(shí)性要求不是非常嚴(yán)格的系統(tǒng)中,RSA算法還是可以彌補(bǔ)對稱算法的弱點(diǎn)。當(dāng)然,若兩者結(jié)合使用,既能提升運(yùn)算效率,又能保證密鑰安全,是個不錯的選擇。
我們并不需要多關(guān)心RSA的算法原理與安全強(qiáng)度,因?yàn)樗悄壳白钪髁鞯姆菍ΨQ算法,且短時(shí)間內(nèi)地位是不可替代的。對于初次了解該算法并準(zhǔn)備使用的工程師來說,只需要注意幾點(diǎn):
1、RSA算法的公鑰是公開的,任何人都可獲取保留,因此其存儲與傳遞不需要特殊處理。私鑰不公開,必須安全存儲,嵌入式行業(yè)一般存放于加密芯片或其他硬件安全載體中。
2、公鑰先對明文運(yùn)算生成密文稱為加密操作,私鑰后對密文運(yùn)算還原出明文稱為解密操作;私鑰先對明文運(yùn)算生成密文稱為簽名,公鑰后對密文運(yùn)算生成明文成為驗(yàn)簽。即公鑰只進(jìn)行加密和驗(yàn)簽工作,私鑰只進(jìn)行解密和簽名工作,適其介入運(yùn)算的先后順序而定。
3、根據(jù)公鑰模長度的不同,RSA算法又分為RSA512、RSA1024、RSA1280等。公鑰模長度即為單次運(yùn)算數(shù)據(jù)的長度。以RSA1024為例,當(dāng)使用公鑰加密時(shí),單次輸入的明文長度不能超過1024bit = 1024bit / 8 = 128byte,私鑰運(yùn)算亦是如此。
4、RSA算法的公私鑰參數(shù)提供方式分為兩種。第一種模式NDE模式,NE是公鑰,ND是私鑰。第二種CRT模式:NE是公鑰,P Q dP dQ Qinv這5個參數(shù)構(gòu)成私鑰。上述參數(shù)中P、Q為兩個大素?cái)?shù),如果使用RSA1024算法,則二者長度均為1024/2=512bit =64byte,dP、dQ兩個參數(shù)長度也和P、Q長度相等。N=P*Q長度為1024bit,即128byte,D為私鑰參數(shù);E為公鑰指數(shù)(一般使用0x010001)。
目前LKT加密芯片能支持CRT模式的RSA算法。加密芯片可自動生成公私鑰對。用戶在開發(fā)過程中可以放開公私鑰文件讀寫權(quán),但是應(yīng)用階段必須將私鑰文件讀權(quán)限封住。若用戶已有公私鑰對,在向加密芯片中寫入的過程中,需要先將P Q dP dQ Qinv這5個參數(shù)解析出來,然后按照手冊中規(guī)定的格式寫入到芯片中,才可以進(jìn)行RSA運(yùn)算。
經(jīng)過本期的介紹后,相信大家對RSA算法的基本概念和應(yīng)用都有了初步了解,如果通過閱讀本文,能讓各位順利過渡進(jìn)入到RSA的了解和應(yīng)用中,那就達(dá)到了作者的本意。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。