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