熱度 9
1、測(cè)試目標(biāo)
使用已經(jīng)預(yù)置DES密鑰的LKT4201N系列加密芯片完成運(yùn)算
2、測(cè)試環(huán)境
本示例運(yùn)行環(huán)境為windows系統(tǒng)、測(cè)試軟件LCS KIT、LKT-K100開(kāi)發(fā)板。
3、測(cè)試步驟
注意:“->”表示使用LCS KIT軟件操作LKT-K100向加密芯片發(fā)送數(shù)據(jù);
“<-”表示使用LCS KIT軟件操作LKT-K100讀回加密芯片輸出的數(shù)據(jù)。
4、測(cè)試指令
使用LKT4201N內(nèi)部已存放的01號(hào)30密鑰和01號(hào)31密鑰進(jìn)行加密操作測(cè)試
( 注: 如何創(chuàng)建KEY文件和寫(xiě)入密鑰不再贅述)
(1) 加密指令
-> 0088 0001 08 1122334455667788
<- 61 08
-> 00C0 0000 08
<- 密文數(shù)據(jù)+9000
注:加密數(shù)據(jù)應(yīng)為8字節(jié)的整數(shù)倍,不夠的后面先補(bǔ)80,如果還是不夠8字節(jié)的倍數(shù)再補(bǔ)00到8字節(jié)的整數(shù)倍。
(2) 解密指令
-> 0088 0101 08 +密文數(shù)據(jù)
<- 61 08
-> 00C0 0000 08
<- 1122334455667788 +9000
5、OpenSSL DES接口實(shí)現(xiàn)3DES 和DES加解密
(1)下載OpenSSL源碼,生成libeay32.dll 和libeay32.lib文件
(2)將libeay32.dll 、libeay32.lib以及OpenSSL頭文件移植到VC工程中,工程中增加
#pragma comment(lib, "libeay32.lib")用于調(diào)用靜態(tài)庫(kù),另外設(shè)置好頭文件路徑,在工程中增 加#include <openssl/des.h>,
(3)DES_set_key_unchecked( (DES_cblock*)key1 , &schedule1 );調(diào)用此函數(shù)可以實(shí)現(xiàn)密鑰設(shè)置
DES_ecb_encrypt((const_DES_cblock*)(inbuff+i*8),(DES_cblock*)(outbuff+i*8),&schede1,DES_ENCRYPT);此函數(shù)用于實(shí)現(xiàn)DES ECB模式加密。
(4)根據(jù)DES函數(shù)接口編寫(xiě)加解密函數(shù)
解密函數(shù)同理
(5)加解密函數(shù)接口測(cè)試
(6)測(cè)試結(jié)果
以上完成了openssl des接口實(shí)現(xiàn)DES和3DES加密和解密功能。