對(duì)USB Key驗(yàn)證、讀取、加密、解密的方法
【專利摘要】本發(fā)明提供了一種對(duì)USB Key驗(yàn)證、讀取、加密、解密的方法,其中,對(duì)USB Key驗(yàn)證的方法包括:獲取用戶輸入計(jì)算機(jī)的指令信息和USB Key中的預(yù)設(shè)指令信息;比較指令信息與預(yù)設(shè)指令信息,在指令信息與預(yù)設(shè)指令信息相同時(shí),讀取與計(jì)算機(jī)連接的USB Key中的身份字段的數(shù)據(jù)和USB Key的序列號(hào);根據(jù)身份字段的數(shù)據(jù)和序列號(hào),構(gòu)造Trivium算法的第一密鑰,采用第一密鑰獲取所述Trivium算法中的輸出字段的數(shù)據(jù);比較輸出字段的數(shù)據(jù)與身份字段的數(shù)據(jù),在輸出字段的數(shù)據(jù)與身份字段的數(shù)據(jù)相同時(shí),則身份驗(yàn)證通過。通過本發(fā)明提供的一種對(duì)USB Key驗(yàn)證、讀取、加密、解密的方法,能夠有效地保證USB Key的安全性,同時(shí)通過Trivium算法可以保證USB Key里面的內(nèi)容不被篡改和USB Key里面的內(nèi)容不被偽造。
【專利說明】對(duì)USB Key驗(yàn)證、讀取、加密、解密的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及數(shù)據(jù)的加密和解密的【技術(shù)領(lǐng)域】,尤其設(shè)及一種對(duì)USB Key驗(yàn)證、讀取、 加密、解密的方法。
【背景技術(shù)】
[0002] Trivium算法是基于硬件的同步流密碼的算法,是一種高安全性、高效性和可變性 的流密碼加密算法,能夠簡單快速的在硬件上實(shí)現(xiàn)。
[0003] U 盾化niversal Serial Bus Key,簡稱 USB Key)是 USB 接 口硬件設(shè)備的一種, USB其具有內(nèi)置的單片機(jī)和智能卡巧片,具有一定的存儲(chǔ)空間,可W存儲(chǔ)用戶的私鑰和數(shù)字 證書,利用USB Key內(nèi)置的公鑰算法對(duì)用戶進(jìn)行身份的驗(yàn)證,因?yàn)橛脩舻乃借€存儲(chǔ)于密碼鎖 中,因此不能被讀出,W此來確保用戶身份驗(yàn)證的安全性。
[0004] 在市場(chǎng)中多數(shù)的USB Key產(chǎn)品中只能導(dǎo)入證書和內(nèi)部生成的公私密鑰對(duì),但是在 現(xiàn)實(shí)的環(huán)境中,USB Key中需要導(dǎo)入一些特定的內(nèi)容,比如說自己的會(huì)話密鑰,此時(shí),對(duì)USB Key中的內(nèi)容的安全性不能只能通過硬件機(jī)制來保護(hù),同時(shí)還需要軟件來保護(hù)USB Key中 的內(nèi)容的不可篡改性和不可偽造性。
【發(fā)明內(nèi)容】
[0005] 針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種對(duì)USB Key驗(yàn)證、讀取、加密、解密的方 法,能夠有效地保證USB Ifey的安全性,同時(shí)通過Trivium算法可W保證USB Ifey里面的內(nèi) 容不被篡改和USB Key里面的內(nèi)容不被偽造。
[0006] 第一方面,本發(fā)明提供一種USB K巧驗(yàn)證方法,包括:
[0007] 獲取用戶輸入計(jì)算機(jī)的指令信息和USB Key中的預(yù)設(shè)指令信息;
[000引比較所述指令信息與所述預(yù)設(shè)指令信息,在所述指令信息與所述預(yù)設(shè)指令信息相 同時(shí),讀取與所述計(jì)算機(jī)連接的USB Key中的身份字段的數(shù)據(jù)和所述USB Key的序列號(hào);
[0009] 根據(jù)所述身份字段的數(shù)據(jù)和所述序列號(hào),構(gòu)造Trivium算法的第一密鑰,采用所 述第一密鑰獲取所述Trivium算法中的輸出字段的數(shù)據(jù);
[0010] 比較所述輸出字段的數(shù)據(jù)與所述身份字段的數(shù)據(jù),在所述輸出字段的數(shù)據(jù)與所述 身份字段的數(shù)據(jù)相同時(shí),則身份驗(yàn)證通過。
[0011] 進(jìn)一步地,所述身份字段的數(shù)據(jù)長度為20位,所述USB Key序列號(hào)的長度為16 位;
[0012] 所述根據(jù)所述身份字段的數(shù)據(jù)和所述序列號(hào),構(gòu)造Trivium算法的第一密鑰,采 用所述第一密鑰獲取所述Trivium算法中的輸出字段的數(shù)據(jù),包括:
[0013] 根據(jù)所述身份字段的數(shù)據(jù)中的前4位數(shù)據(jù)和所述16位序列號(hào),采用第一公式,構(gòu) 造Trivium算法的20位的第一密鑰,采用所述20位的第一密鑰獲取所述Trivium算法中 的16位的輸出字段的數(shù)據(jù);
[0014] 所述第一公式為:
[0015]
【權(quán)利要求】
1. 一種USBKey驗(yàn)證方法,其特征在于,包括: 獲取用戶輸入計(jì)算機(jī)的指令信息和USBKey中的預(yù)設(shè)指令信息; 比較所述指令信息與所述預(yù)設(shè)指令信息,在所述指令信息與所述預(yù)設(shè)指令信息相同 時(shí),讀取與所述計(jì)算機(jī)連接的USBKey中的身份字段的數(shù)據(jù)和所述USBKey的序列號(hào); 根據(jù)所述身份字段的數(shù)據(jù)和所述序列號(hào),構(gòu)造Trivium算法的第一密鑰,采用所述第 一密鑰獲取所述Trivium算法中的輸出字段的數(shù)據(jù); 比較所述輸出字段的數(shù)據(jù)與所述身份字段的數(shù)據(jù),在所述輸出字段的數(shù)據(jù)與所述身份 字段的數(shù)據(jù)相同時(shí),則身份驗(yàn)證通過。
2. 根據(jù)權(quán)利要求1所述的USBKey驗(yàn)證方法,其特征在于, 所述身份字段的數(shù)據(jù)長度為20位,所述USBKey序列號(hào)的長度為16位; 所述根據(jù)所述身份字段的數(shù)據(jù)和所述序列號(hào),構(gòu)造Trivium算法的第一密鑰,采用所 述第一密鑰獲取所述Trivium算法中的輸出字段的數(shù)據(jù),包括: 根據(jù)所述身份字段的數(shù)據(jù)中的前4位數(shù)據(jù)和所述16位序列號(hào),采用第一公式,構(gòu)造Trivium算法的20位的第一密鑰,采用所述20位的第一密鑰獲取所述Trivium算法中的 16位的輸出字段的數(shù)據(jù); 所述第一公式為:
其中,Uuidi為所述身份字段的數(shù)據(jù)的前4位數(shù)據(jù),serialNumberi_4為所述USBKey的 16位的序列號(hào),keyl為所述20位的第一密鑰。
3. 根據(jù)權(quán)利要求2所述的USBKey驗(yàn)證方法,其特征在于,所述方法還包括: 比較16位的輸出字段的數(shù)據(jù)與所述除前4位的身份字段的16位的數(shù)據(jù),若16位的輸 出字段的數(shù)據(jù)與所述除前4位的身份字段的16位的數(shù)據(jù)相同,則身份驗(yàn)證成功,否則身份 驗(yàn)證失敗。
4.一種USBKey讀取方法,其特征在于,包括: 獲取用戶輸入計(jì)算機(jī)的指令信息和所述USBKey中的預(yù)設(shè)指令信息; 比較所述指令信息與所述預(yù)設(shè)指令信息,在所述指令信息與所述預(yù)設(shè)指令信息相同 時(shí),讀取與所述計(jì)算機(jī)連接的USBKey中的身份字段的數(shù)據(jù)和所述USBKey中的第一字段 的數(shù)據(jù); 根據(jù)所述身份字段的數(shù)據(jù)和所述第一字段的數(shù)據(jù),構(gòu)造Trivium算法的第二密鑰,采 用所述第二密鑰對(duì)所述第一字段的數(shù)據(jù)進(jìn)行解密,以獲得所述第一字段的數(shù)據(jù)的實(shí)際值。
5. 根據(jù)權(quán)利要求4所述的USBKey讀取方法,其特征在于, 所述身份字段的數(shù)據(jù)長度為20位,所述第一字段的數(shù)據(jù)長度大于4位; 所述根據(jù)所述身份字段的數(shù)據(jù)和所述第一字段的數(shù)據(jù),構(gòu)造Trivium算法的第二密 鑰,采用所述第二密鑰對(duì)所述第一字段的數(shù)據(jù)進(jìn)行解密,以獲得所述第一字段的數(shù)據(jù)的實(shí) 際值,包括: 根據(jù)所述除前4位的身份字段的16位的數(shù)據(jù)與所述第一字段的數(shù)據(jù)的前4位數(shù)據(jù),采 用第二公式,構(gòu)造Trivium算法的20位的第二密鑰,采用所述20位的第二密鑰,對(duì)所述除 前4位的第一字段的數(shù)據(jù)進(jìn)行解密,以獲得所述除前4位的第一字段的數(shù)據(jù)的實(shí)際值; 所述第二公式為:
其中,UUidp4為除前4位的身份字段的16位的數(shù)據(jù),Clatai為所述第一字段的數(shù)據(jù)的 前4位數(shù)據(jù),key2為所述20位的第二密鑰。
6.-種USBKey加密方法,其特征在于,包括: 獲取用戶輸入計(jì)算機(jī)的指令信息和USBKey中的預(yù)設(shè)指令信息; 比較所述指令信息與所述預(yù)設(shè)指令信息,在所述指令信息與所述預(yù)設(shè)指令信息相同 時(shí),獲取所述計(jì)算機(jī)隨機(jī)生成的第三密鑰和讀取所述USBKey中的預(yù)設(shè)的第四密鑰; 根據(jù)所述第三密鑰和所述第四密鑰,構(gòu)造Trivium算法的第五密鑰,采用所述第五密 鑰對(duì)輸入數(shù)據(jù)進(jìn)行加密,獲得加密數(shù)據(jù)。
7. 根據(jù)權(quán)利要求6所述的USBKey加密方法,其特征在于, 所述第三密鑰的長度為20位,所述第四密鑰的長度為20位; 所述根據(jù)所述第三密鑰和所述第四密鑰,構(gòu)造Trivium算法的第五密鑰,采用所述第 五密鑰對(duì)輸入數(shù)據(jù)進(jìn)行加密,獲得加密數(shù)據(jù),包括: 根據(jù)所述20位的第三密鑰和所述20位的第四密鑰,采用第三公式的異或運(yùn)算,構(gòu)造Trivium算法的20位的第五密鑰,采用所述20位的第五密鑰對(duì)所述輸入數(shù)據(jù)進(jìn)行加密,以 獲得加密數(shù)據(jù); 所述第三公式為:key5 =key3 ?key4 其中,key3為所述20位的第三密鑰,key4為所述20位第四密鑰,key5為所述20位的 第五密鑰。
8. 根據(jù)權(quán)利要求7所述的USBKey加密方法,其特征在于,所述方法還包括: 創(chuàng)建輸出數(shù)組,用于存放所述20位的第五密鑰和所述加密數(shù)據(jù); 其中,所述輸出數(shù)組的存儲(chǔ)順序?yàn)?位計(jì)算的隨機(jī)數(shù)、所述20位的第五密鑰和所述加 密數(shù)據(jù)。
9.一種USBKey解密方法,其特征在于,包括: 獲取用戶輸入計(jì)算機(jī)的指令信息和USBKey中的預(yù)設(shè)指令信息; 比較所述指令信息與所述預(yù)設(shè)指令信息,在所述指令信息與所述預(yù)設(shè)指令信息相同 時(shí),讀取所述USBKey中預(yù)設(shè)的第六密鑰和待解密數(shù)據(jù)中的第七密鑰; 根據(jù)所述第六密鑰和所述第七密鑰,構(gòu)造Trivium算法的第八密鑰,采用所述第八密 鑰對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,獲得解密數(shù)據(jù)。
10. 根據(jù)權(quán)利要求9所述的USB解密方法,其特征在于, 所述第六密鑰的長度為20位,所述第七密鑰的長度為20位; 所述根據(jù)所述第六密鑰和所述第七密鑰,構(gòu)造Trivium算法的第八密鑰,采用所述第 八密鑰對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,獲得解密數(shù)據(jù),包括: 根據(jù)所述20位的第六密鑰和所述20位的第七密鑰,采用第四公式的異或運(yùn)算,構(gòu)造 Trivium算法的20位的第八密鑰,采用所述20位的第八密鑰對(duì)所述待解密數(shù)據(jù)進(jìn)行解密, 獲得解密數(shù)據(jù); 所述第四公式為:key8 =key6 ?key7 其中,key6為所述20位的第六密鑰,key7為所述20位第七密鑰,key8為所述20位的 第八密鑰。
【文檔編號(hào)】H04L9/08GK104504322SQ201410738670
【公開日】2015年4月8日 申請(qǐng)日期:2014年12月5日 優(yōu)先權(quán)日:2014年12月5日
【發(fā)明者】王思葉, 張?jiān)娪? 朱大立, 陳恭亮 申請(qǐng)人:中國科學(xué)院信息工程研究所