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