提到RSA,,我們自然而然的會想到"非對稱加密算法",,相比于對稱加密算法(Symmetric-key algorithm),非對稱加密算法不必?fù)?dān)心公鑰傳輸被截獲的問題,。對稱加密算法使用相同密鑰進(jìn)行加密,、解密操作,如果密鑰被截獲,,第三方就可以隨意偽造信息,。而對于非對稱加密算法,密鑰成對出現(xiàn),即:公鑰,、私鑰唯一配對,,私鑰由信任中心或者密鑰對生成方保存,私鑰信息不外泄,,而對應(yīng)的公鑰可以傳輸給多個目標(biāo),,如果傳輸?shù)臄?shù)據(jù)被篡改,接收方則無法驗證通過,,確保了數(shù)據(jù)不會被偽造,。
本文,和大家分享RSA-2048算法性能的Topic,。 1,、RSA-2048與公鑰、私鑰關(guān)系 使用RSA-2048算法,,離不開公鑰和私鑰,,在實際的項目中,尤其Bootloader更新Application程序中,,收到的信息是信任中心或者上位機加簽過的摘要信息,,需使用提前存儲在Bootloader中的公鑰,對摘要信息解密,,也就是"驗簽",。不太理解這個過程的小伙伴,可以參考前文《信息安全:軟件認(rèn)證,,知識點梳理》。
數(shù)據(jù)加簽和驗簽的流程示意如下:
- 對原始數(shù)據(jù)進(jìn)行Hash計算(eg:SHA-256),,得到Hash Value(eg:32 Byte),,這個Hash Value稱為明文;
- 使用私鑰+加密算法(eg:RSA-2048)對明文進(jìn)行加密處理(也就是簽名),,生成密文(摘要信息,,eg:256Byte);
- 云端或者上位機將原始數(shù)據(jù)和密文傳輸給MCU;
- MCU使用配對的公鑰+加密算法(eg:RSA-2048)對密文進(jìn)行解密處理,,得到明文1,。同時,MCU端使用相同的Hash算法對原始數(shù)據(jù)進(jìn)行Hash計算,,得到明文2,,如果明文1==明文2,驗證成功,,反之,,驗證失敗,。
但是,如上的過程中,,如果明文沒有變化,,是不是意味著每次加密后的密文也沒有變化?答:如果明文沒有隨機填充機制,,或者填充數(shù)據(jù)固定,,每次生成的密文會相同。如果密文沒有變化,,那么,,攻擊者就有可能通過密文最終逆向出明文,怎么辦呢,?答:通過添加隨機Padding值機制,,防止生成相同的密文。為了防止生成相同的密文,,人們想出了RSA-PSS( Probabilistic Signature Scheme)填充機制,RSA-PSS機制相對于RSA-PKCS#1 v1.5(PKCS:Public Key Cryptography Standards),,簽名機制更安全,。
(一)RSA-PSS填充機制
如上圖,RSA-PSS填充和計算具體過程如下: 將明文(M)進(jìn)行Hash計算,,得到mHash,,同時添加填充值和隨機值(Salt)得到M’;
對M'進(jìn)行二次Hash計算,,得到哈希值H,,DB配合MGF函數(shù)得到MaskedDB,加上截斷符號0xbc得到EM,;
之后對EM進(jìn)行RSA加密計算,,得到密文EM'用于傳輸,這樣,,即可避免密文的重復(fù)性,。
(二)RSA-PKCS#v1.5填充模式 如上圖,,RSA-PKCS#v1.5填充模式固定,,如果明文確定,則計算的密文相同,,所以,,相比之下,RSA-PSS填充規(guī)則更安全,。采用RSA-PSS填充機制,,驗簽的流程就不是簡單的解密后對比Hash值,,如上圖:
- 私鑰+RSA-2048對EM加密,生成密文EM';
- 接收端通過公鑰+RSA-2048對EM'解密,,得到EM,;
- 在EM中提取哈希值H1,通過明文M進(jìn)行兩次Hash計算得到H2,;
- 比對H1與H2,,相同,驗證通過,,反之,,失敗。
我們知道,,MCU級的芯片,,目前,,多數(shù)硬件還不支持RSA-2048算法,只能由軟件實現(xiàn),,對于軟件實現(xiàn),就看各家實現(xiàn)的性能如何,。本文進(jìn)行一個非對稱對比實驗:
- HSM端:主頻100MHz,,CPU為ARM Cortex M3,,集成RSA-2048_B算法,。
- Host端:主頻300MHz,,CPU為Tricore 1.6P集成RSA-2048_A算法。
兩者對相同的明文(M)進(jìn)行驗證,。計算結(jié)果如下所示(計算10次取平均值):如上結(jié)果:RSA-2048_A算法,,計算一次(驗簽)用時約277ms,RSA-2048_B算法,,計算一次用時約65ms,。雖然兩者CPU主頻不同,但是,,優(yōu)秀的RSA-2048_B算法表現(xiàn)出了更優(yōu)秀的計算性能,。參考資料:
(1)https://zhuanlan.zhihu.com/p/56678361
|