熱度 11
第三篇 如何使用加密芯片完成RSA運(yùn)算
1、測(cè)試目標(biāo)
使用已經(jīng)預(yù)置RSA密鑰的LKT系列加密芯片完成運(yùn)算
2、測(cè)試環(huán)境
本示例運(yùn)行環(huán)境為windows系統(tǒng)、測(cè)試軟件LCS KIT、LKT-K100開發(fā)板。
3、測(cè)試步驟
注意:“->”表示使用LCS KIT軟件操作LKT-K100向加密芯片發(fā)送數(shù)據(jù);
“<-”表示使用LCS KIT軟件操作LKT-K100讀回加密芯片輸出的數(shù)據(jù)。
3.1 公鑰加密
-> 80C6 EF02 80 + DATA
指令中的第5字節(jié)80表示待加密明文長(zhǎng)度為0x80字節(jié),DATA表示待加密明文。
<- C1 + 9000
返回?cái)?shù)據(jù)中的C1表示加密后的結(jié)果,其長(zhǎng)度為0x80字節(jié),9000是加密成功的狀態(tài)碼。
3.2 私鑰解密
-> 80C4 EF01 80 + C1
指令中的第5字節(jié)80表示待加密明文長(zhǎng)度為0x80字節(jié),DATA表示待加密明文。
<- DATA + 9000
返回?cái)?shù)據(jù)中的DATA表示解密后的結(jié)果,長(zhǎng)度為0x80字節(jié),9000是解密成功的狀態(tài)碼。
3.3 私鑰簽名
-> 80C4 EF01 80 + M1
指令中的第5字節(jié)80表示待簽名數(shù)據(jù)長(zhǎng)度為0x80字節(jié),DATA表示待簽名數(shù)據(jù)。
<- S1+ 9000
返回?cái)?shù)據(jù)中的S1表示簽名結(jié)果,長(zhǎng)度為0x80字節(jié),9000是簽名成功的狀態(tài)碼。
3.4 公鑰驗(yàn)簽
-> 80C6 EF02 80 + S1
指令中的第5字節(jié)80表示待驗(yàn)簽數(shù)據(jù)長(zhǎng)度為0x80字節(jié),S1表示待驗(yàn)簽數(shù)據(jù)。
<- M1 + 9000
返回?cái)?shù)據(jù)中的M1表示驗(yàn)簽后的數(shù)據(jù),長(zhǎng)度為0x80字節(jié),9000是指令執(zhí)行成功的狀態(tài)碼,用戶需要比對(duì)M1與簽名數(shù)據(jù)是否一致,才能判斷驗(yàn)簽是否成功。
至此,通過openssl生成RSA1024位密鑰并寫入到加密芯片中,進(jìn)行加解密、簽名驗(yàn)簽的流程已全部介紹完。
miniminimini: 在銀行卡用的可是都到了金融級(jí)別的,RSA能到嗎