国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

服務(wù)器密碼機(jī)對(duì)稱加解密及會(huì)話密鑰導(dǎo)入導(dǎo)出測(cè)試方法研究

2019-07-10 12:24曹黎敏
關(guān)鍵詞:正確性私鑰公鑰

◆曹黎敏

?

服務(wù)器密碼機(jī)對(duì)稱加解密及會(huì)話密鑰導(dǎo)入導(dǎo)出測(cè)試方法研究

◆曹黎敏

(無(wú)錫航天江南數(shù)據(jù)系統(tǒng)科技有限公司 江蘇 214122)

網(wǎng)絡(luò)與信息安全是國(guó)家信息化戰(zhàn)略的重要組成部分,其中密碼工作直接關(guān)系國(guó)家政治安全、經(jīng)濟(jì)安全、國(guó)防安全和信息安全。隨著國(guó)家對(duì)網(wǎng)絡(luò)信息安全的重視,對(duì)密碼產(chǎn)品的功能要求也越來(lái)越嚴(yán)格,本文針對(duì)服務(wù)器密碼機(jī)對(duì)稱加解密,會(huì)話密鑰導(dǎo)入導(dǎo)出功能提出了測(cè)試思路

服務(wù)器密碼機(jī);對(duì)稱加解密;會(huì)話密鑰;句柄

0 引言

服務(wù)器密碼機(jī)是按照《GM/T 0030-2014 服務(wù)器密碼機(jī)技術(shù)規(guī)范》要求設(shè)計(jì)的密碼產(chǎn)品,能夠?qū)ν馓峁?duì)稱加解密[1][2][3](SM1、SM4算法)功能,對(duì)稱加解密算法的密鑰為會(huì)話密鑰,該密鑰是在密碼機(jī)內(nèi)部臨時(shí)生成存儲(chǔ)的,使用完成后需要銷(xiāo)毀,根據(jù)《GM/T 0018-2012密碼設(shè)備應(yīng)用接口規(guī)范》說(shuō)明,用戶不能獲取會(huì)話密鑰明文,而是通過(guò)句柄的形式來(lái)使用會(huì)話密鑰的,且在使用過(guò)程中會(huì)涉及會(huì)話密鑰的導(dǎo)入導(dǎo)出(密文)。導(dǎo)入導(dǎo)出應(yīng)用場(chǎng)景:通信雙方A、B使用會(huì)話密鑰進(jìn)行加解密通訊前,A生成會(huì)話密鑰并將會(huì)話密鑰加密導(dǎo)出,B導(dǎo)入后解密使用。導(dǎo)出操作得到的是會(huì)話密鑰密文和本會(huì)話密鑰本地存儲(chǔ)的句柄,導(dǎo)入操作得到的是會(huì)話密鑰句柄。

1 傳統(tǒng)測(cè)試說(shuō)明

傳統(tǒng)的功能測(cè)試過(guò)程中,將對(duì)稱加解密算法和會(huì)話密鑰導(dǎo)出導(dǎo)入操作作為兩個(gè)獨(dú)立的功能進(jìn)行驗(yàn)證,并不能驗(yàn)證會(huì)話密鑰導(dǎo)出導(dǎo)入后是否保持不變,該功能一般只能在設(shè)備互聯(lián)互通測(cè)試過(guò)程中驗(yàn)證,使得發(fā)現(xiàn)問(wèn)題的時(shí)機(jī)滯后,導(dǎo)致代碼更動(dòng)工作量增加。

2 解決方法

本測(cè)試方法能夠在密碼機(jī)軟件研制過(guò)程中,使用一臺(tái)密碼機(jī)快速有效地驗(yàn)證會(huì)話密鑰導(dǎo)出導(dǎo)入過(guò)程的正確性和導(dǎo)出導(dǎo)入后會(huì)話密鑰的正確性,同時(shí)驗(yàn)證對(duì)稱加解密算法的正確性。涉及的導(dǎo)入導(dǎo)出過(guò)程可以分為以下三類(lèi):

2.1 密鑰加密密鑰加密導(dǎo)出導(dǎo)入會(huì)話密鑰正確性驗(yàn)證。

圖1 密鑰加密密鑰加密導(dǎo)出導(dǎo)入會(huì)話密鑰驗(yàn)證流程

步驟1:調(diào)用標(biāo)準(zhǔn)接口“生成會(huì)話密鑰并用密鑰加密密鑰加密輸出”SDF_GenerateKeyWithKEK(void *hSessionHandle, unsigned int uiKeyBits, unsigned int uiAlgID,unsigned int uiKEKIndex, unsigned char *pucKey, unsigned int *pucKeyLength, void **phKeyHandle),得到會(huì)話密鑰密文pucKey[],以及該會(huì)話密鑰在密碼機(jī)中的句柄hKeyHandle1=*phKeyHandle。

步驟2:將步驟1中得到的密文pucKey[]作為輸入,調(diào)用標(biāo)準(zhǔn)接口“導(dǎo)入會(huì)話密鑰并用密鑰加密密鑰解密”SDF_ImportKeyWithKEK(void *hSessionHandle, unsigned int uiAlgID,unsigned int uiKEKIndex, unsigned char *pucKey, unsigned int uiKeyLength, void **phKeyHandle),得到導(dǎo)入會(huì)話密鑰在密碼機(jī)中的句柄hKeyHandle2=*phKeyHandle。

步驟3:選定一組明文數(shù)據(jù),作為輸入pucData[],將步驟1得到的會(huì)話密鑰句柄hKeyHandle1作為輸入hKeyHandle,調(diào)用“對(duì)稱加密”SDF_Encrypt(void *hSessionHandle,void *hKeyHandle,unsigned int uiAlgID,unsigned char *pucIV,unsigned char *pucData,unsigned int uiDataLength,unsigned char *pucEncData,unsigned int *puiEncDataLength)得到對(duì)稱加密后的數(shù)據(jù)pucEncData[]。

步驟4:將步驟2得到的會(huì)話密鑰句柄hKeyHandle1作為輸入hKeyHandle,將步驟3得到的對(duì)稱加密后的數(shù)據(jù)pucEncData[]作為輸入pucEncData,調(diào)用“對(duì)稱解密”SDF_Decrypt(void *hSessionHandle,void *hKeyHandle,unsigned int uiAlgID,unsigned char *pucIV,unsigned char *pucEncData,unsigned int uiEncDataLength, unsigned char *pucData,unsigned int *puiDataLength)得到解密數(shù)據(jù)pucData[]。

步驟5:比較步驟3的輸入數(shù)據(jù)(對(duì)稱加密前的明文數(shù)據(jù))和步驟4的輸出數(shù)據(jù)(解密得到的解密數(shù)據(jù))pucData[]是否一致。一致說(shuō)明對(duì)稱加解密功能正確,使用的會(huì)話密鑰相同,使用密鑰加密密鑰導(dǎo)出導(dǎo)入會(huì)話密鑰功能正確。

步驟6:調(diào)用SDF_DestroyKey(void *hSessionHandle, void *hKeyHandle)銷(xiāo)毀上述會(huì)話密鑰。

注意:

①步驟1、步驟2中使用的算法uiAlgID要保持一致,且測(cè)試時(shí)需要考慮多種算法情況;

②步驟3、步驟4中使用的算法uiAlgID要保持一致;

③所有的會(huì)話密鑰均需要銷(xiāo)毀。

2.2 生成會(huì)話密鑰并用外部ECC公鑰加密[4]輸出、導(dǎo)入會(huì)話密鑰并用內(nèi)部ECC私鑰解密正確性驗(yàn)證。

測(cè)試步驟同樣是上述6個(gè)步驟,只是測(cè)試步驟1、2調(diào)用的標(biāo)準(zhǔn)接口分別為“生成會(huì)話密鑰并用外部ECC公鑰加密輸出”SDF_GenerateKeyWithEPK_ECC(void *hSessionHandle, unsigned int uiKeyBits, unsigned int uiAlgID, ECCrefPublicKey *pucPublicKey,ECCCipher *pucKey, void **phKeyHandle)和“導(dǎo)入會(huì)話密鑰并用內(nèi)部ECC私鑰解密”SDF_ImportKeyWithISK_ECC(void*hSessionHandle, unsigned int uiISKIndex, ECCCipher *pucKey,void** phKeyHandle)。

注意:步驟1的外部公鑰pucPublicKey與步驟2用的ID號(hào)為uiISKIndex的私鑰必須為一對(duì)。

2.3 生成會(huì)話密鑰并用內(nèi)部ECC公鑰加密[4]輸出、導(dǎo)入會(huì)話密鑰并用內(nèi)部ECC私鑰解密正確性驗(yàn)證。

測(cè)試步驟同樣是上述6個(gè)步驟,只是測(cè)試步驟1、2調(diào)用的標(biāo)準(zhǔn)接口分別為“生成會(huì)話密鑰并用內(nèi)部ECC公鑰加密輸出”SDF_GenerateKeyWithIPK_ECC(void *hSessionHandle, unsigned int uiIPKIndex, unsigned int uiKeyBits, ECCCipher *pucKey,void **phKeyHandle)和“導(dǎo)入會(huì)話密鑰并用內(nèi)部ECC私鑰解密”SDF_ImportKeyWithISK_ECC(void *hSessionHandle, unsigned int uiISKIndex, ECCCipher *pucKey, void** phKeyHandle)。

注意:步驟1和步驟2用的密鑰ID號(hào)uiIPKIndex和uiISKIndex必須保持一致。

3 結(jié)語(yǔ)

對(duì)稱加解密功能屬于服務(wù)器密碼機(jī)的基本功能,也是數(shù)據(jù)加密通信的基礎(chǔ),文中從算法正確性和會(huì)話密鑰導(dǎo)出導(dǎo)入正確性兩個(gè)方面入手,總結(jié)了多種導(dǎo)出導(dǎo)入會(huì)話密鑰的正確性驗(yàn)證方法,包括使用密鑰加密密鑰導(dǎo)出導(dǎo)入,外部公鑰導(dǎo)出、內(nèi)部私鑰導(dǎo)入,內(nèi)部公鑰導(dǎo)出、內(nèi)部私鑰導(dǎo)入會(huì)話密鑰的情況,供大家討論參考。

[1]王曉霞.關(guān)于密碼學(xué)技術(shù)應(yīng)用于網(wǎng)絡(luò)信息安全的分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019(02):17-18.

[2]劉倍雄,肖巧玲,張毅,陳孟祥.基于優(yōu)化對(duì)稱加密算法的網(wǎng)絡(luò)密碼安全傳輸研究[J].信息與電腦(理論版),2018(22):55-59.

[3]董永為.數(shù)據(jù)加密技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)通信安全中的應(yīng)用分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2016(04):39-40.

[4]趙夢(mèng)婷,李斌勇,李文皓,閻澤誠(chéng),高家奇,齊佳昕,廖懷凱.ECC加密算法分析及應(yīng)用研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018(12):35-36.

猜你喜歡
正確性私鑰公鑰
比特幣的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序員把7500枚比特幣扔掉損失巨大
神奇的公鑰密碼
一種基于虛擬私鑰的OpenSSL與CSP交互方案
國(guó)密SM2密碼算法的C語(yǔ)言實(shí)現(xiàn)
基于身份的聚合簽名體制研究
淺談如何提高水質(zhì)檢測(cè)結(jié)果準(zhǔn)確性
“正確性”與“實(shí)用性”的初探
再議不能讓孩子輸在起跑線上