專利名稱:基于csk的數(shù)字簽名方法
技術領域:
本發(fā)明涉及信息安全領域,用于辦公自動化文件審批過程中的數(shù)字簽名。
背景技術:
目前,國內(nèi)外都采用非對稱密碼算法來建立數(shù)字簽名系統(tǒng),如PKI技術,但是, PKI技術存放在數(shù)字簽名驗證中心的公鑰容易受到黑客的攻擊,黑客能通過篡改用戶公 鑰來進行冒名頂替攻擊,同時,用戶進行文件的數(shù)字簽名的密鑰即私鑰更新維護的成 本較髙,另外,基于非對稱密碼算法的數(shù)字簽名和簽名文件驗證的速度較慢,總之,現(xiàn) 有的數(shù)字簽名產(chǎn)品都不能滿足市場的需求。
發(fā)明內(nèi)容
基于CSK (Combined, Symmetric, Key的英文縮寫即"組合對稱密鑰")的數(shù)字簽名方法是運用計算機、網(wǎng)絡、密碼和芯片技術,建立簽名密鑰組合生成、 一次一變的數(shù)字 簽名體系,其實施步驟如下在網(wǎng)站上建立數(shù)字簽名驗證中心,在數(shù)字簽名驗證中心的網(wǎng)絡服務器和加密卡里, 建立網(wǎng)絡服務器端加密系統(tǒng)和數(shù)字簽名驗證協(xié)議,對簽名文件進行驗證,在客戶機端密 碼鑰匙的芯片里,建立加密系統(tǒng)和數(shù)字簽名協(xié)議,每個用戶人手一把密碼鑰匙硬件設備, 簽名用戶使用密碼鑰匙對文件進行數(shù)字簽名,且數(shù)字簽名協(xié)議采用組合對稱密鑰技術對 文件進行數(shù)字簽名,并實現(xiàn)簽名密鑰一次一變,驗證簽名用戶也使用密碼鑰匙,對簽名 文件進行驗證,數(shù)字簽名驗證中心首先對驗證簽名用戶的身份進行認證,再進行簽名文 件的驗證,且身份認證協(xié)議和數(shù)字簽名驗證協(xié)議,都采用組合對稱密鑰技術來完成,從 而,實現(xiàn)文件的數(shù)字簽名和對簽名文件的驗證,該基于CSK的數(shù)字簽名方法用軟件和硬 件相結合的方式來實現(xiàn),具體方法如下-1、 在客戶機端設置基于USB接口內(nèi)置CPU的智能卡芯片即密碼鑰匙,每個用戶 人手一支密碼鑰匙硬件設備,來對文件進行數(shù)字簽名或?qū)灻募M行驗證。2、 在網(wǎng)站上,使用網(wǎng)絡服務器和加密卡建立數(shù)字簽名驗證中心,加密卡是基于PCI接口內(nèi)置CPU智能芯片的硬件設備。
3、 在密碼鑰匙的芯片中建立客戶端的加密系統(tǒng),將對稱密碼算法、組合對稱密鑰 生成算法、 一組"密鑰種子"表的元素和用戶的標識,預先存放在智能卡的芯片里。
4、 每個網(wǎng)絡用戶對應一組標識,用戶的標識如用戶號或身份證號,由18 36 數(shù)字組成,每位數(shù)字占4比特,共占9 18字節(jié),每個用戶的標識都不同,并具有唯 一性。
5、 "密鑰種子"表中的元素用加密卡芯片中的隨機數(shù)發(fā)生器產(chǎn)生,保證該元素具有 隨機性,每個網(wǎng)絡用戶的"密鑰種子"都不同,每個網(wǎng)絡用戶的"密鑰種子"占1.312 K 1.68 K字節(jié),并組成MXN "密鑰種子"表A,表A的每個元素為0.5或1字節(jié),
<formula>formula see original document page 7</formula>
其中表A的元素為Vi j , i=0 M-1,就j=0 N-1 。
6、 對稱密碼算法使用國內(nèi)的SMS4、 SMI或國際上通用的對稱密碼算法如RC4、 RC5、
DES。
7、 組合對稱密鑰生成算法是由時間戳和隨機數(shù)組成的算法,對"密鑰種子"表中的 元素進行選取,其中時間戳負責確定"密鑰種子"表中元素的行,隨機數(shù)負責確定"密 鑰種子"表中元素的列,并將確定的表行與列交叉的元素選出,共選出N個元素并合成 一組對稱密鑰。
8、 組合對稱密鑰生成算法的建立和具體實現(xiàn)過程,
(1)時間戳為8 10位數(shù)字組成,即"年"由4位數(shù)字組成即XXXO年~ XXX9 年共取10年,"月"由2位數(shù)字組成即1月 12月,"日"由2位數(shù)字組成即1日~31 日,"時"由2位數(shù)字組成即0時~ 23時,如2007101819,表示2007年10月18日19點,當時間戳為8位時,M=82,當時間戳為10位時,M=105,隨機數(shù)由N組二進制數(shù) 組成,為64或160比特,每組隨機數(shù)為4或5比特,當隨機數(shù)為64比特時,取隨 機數(shù)每4比特組成1組,共16組即N=16,當隨機數(shù)為160比特時,取隨機數(shù)每5比 特組成1組,共32組即N=32;
(2) 用1312 1680組元素組成M行N列表A, M=82或105, N=16或32 ,當取 時間戳為10位數(shù)字時,M^05, B卩時間戳為年、月、日、時,"年"對應表A中的第1 IO行,共10行,"月"對應表A中的第ll 22行,共12行,"日"對應表A中的第 23 53行,共31行,"時"對應表A中的第54 77行,共24行,表A還有28行 不對應時間戳,當取時間戳為8位數(shù)字時,M=82,即時間戳為年、月、日,"年"對應 表A中的第1 IO行,共10行,"月"對應表A中的第ll 22行,共12行,"日" 對應表A中的第23 ~ 53行,共31行,表A還有29行不對應時間戳;
(3) 表A的元素總量Z-MXN組,當1 =82, N=16時,表A的元素取1字節(jié),Z=1312 組,占1312字節(jié),當M-105, N-16時,表A的元素取1字節(jié),Z:1680組,占1680字節(jié), 當M-82, ^32時,表A的元素取0.5字節(jié),Z-2624組,占1312字節(jié),當M-105, N=32 時,表A的元素取0.5字節(jié),Z-3360組,占1680字節(jié);
(4) 根據(jù)時間戳從表A的元素中選取"行",共N行,其方法是從表A的第1 ~ 10 行共10行中取1行即用時間戳"年"數(shù)字中個位數(shù)的數(shù)值,作為取表A中"年"對 應的行數(shù),如時間戳為2009XXXXXX,貝!J:取表A中的第9行,從表A的第11 22行共12行中取1行即用時間戳"月"數(shù)字的數(shù)值,作為取表A中"月"對應的"行", 如時間戳為20XX11XXXX,貝IJ:取表A中的第21行,從表A的第23 ~ 53行共 31行中取1行即用時間戳"日"數(shù)字的數(shù)值,作為取表A中"日"對應的"行",如 時間戳為20XXXX30XX,則取表A中的第52行,從表A的第54 77行共24行 中取1行即用時間戳"時"數(shù)字的數(shù)值,作為取表A中"時"對應的"行",如時
間戳為20XXXXXX21,則取表A中的第74行,再將表A的第78行 第M行共M-78+l行取出,共計32行;
(5) 用時間戳選出了表A的"行"后即共選取了32行,設為Qp Q2,……, Q32,再根據(jù)隨機數(shù)從Ql, Q2,……,Q32的每行中選取列,得到行與列交叉處表A的元 素,其方法是當隨機數(shù)為64比特時,取隨機數(shù)每4位組成1組,共16組即N=16, 用這16組隨機數(shù)的二進制數(shù)值即0 15種數(shù)值,設為14、 L2、……、L16,來對表 A的"列"進行選取,即:用4來選取Qi行的第i4列,再用L2來選取Q2行的第L2列,……, 用116來選取(}16行的第146列,共選出16組元素,用l4來選取Qu行的第l4列,用L2 來選取Ql8行的第L2列,……,用l46來選取Q32行的第l46列,共選出16組元素,并 將這兩部分16組元素合并成32組元素,當隨機數(shù)為160比特時,取隨機數(shù)每5位一組, 共32組即:^32,用這32組隨機數(shù)的二進制數(shù)值即:0 31種數(shù)值,設為:l4丄2、……、 L32,來對表A的"列"進行選取,B卩用I4來選取(^的第I4列,用4來選取(32的第
L2列,……,用L32來選取Q32的第L32列,共選出N-32組元素;
(6) 設對稱密鑰的長度為128比特,將從表A中選出的32組元素合并成對稱密鑰 K,若元素為8比特,將對稱密鑰K對折并進行模二加,使對稱密鑰K變成128比特, 若元素為4比特,則對稱密鑰K為128比特。
9、在客戶機端建立數(shù)字簽名協(xié)議,在客戶機端密碼鑰匙的芯片中,采用HASH函 數(shù)對文件進行"摘要",得到該文件的數(shù)字"指紋",利用組合對稱密鑰生成算法,生成 對稱密鑰Kl,再用對稱密鑰Kl對文件的數(shù)字"指紋"進行加密,生成文件的數(shù)字"指 紋"密文即對文件進行數(shù)字簽名。
10、 數(shù)字簽名協(xié)議是客戶機端用戶對文件進行數(shù)字簽名的具體過程,用戶J在客戶 機端插入智能卡,點擊客戶機端的數(shù)字簽名按鈕,由客戶機產(chǎn)生時間戳1和隨機數(shù)1, 將該文件、時間戳1和隨機數(shù)1 一并輸入密碼鑰匙的芯片中,利用"摘要"算法如HASH 函數(shù),將文件進行"摘要",獲得文件的數(shù)字"指紋1",客戶機端加密系統(tǒng)根據(jù)組合對 稱密鑰生成算法,從"密鑰種子"表中選出N個元素,并合成一組對稱密鑰Kl,再用對 稱密鑰K1將文件的數(shù)字"指紋l"加密成密文即對文件進行數(shù)字簽名。
11、 用戶J將數(shù)字簽名后的文件發(fā)送給驗證簽名用戶K或者發(fā)送到網(wǎng)絡站上,發(fā)送的數(shù)據(jù)W包括用戶J的用戶標識、時間戳l、隨機數(shù)l、文件和文件的數(shù)字簽名。
12、 在數(shù)字簽名驗證中心建立服務器端加密系統(tǒng),將對稱密碼算法、組合對稱密鑰 生成算法和一組專用對稱密鑰KS1,寫入數(shù)字簽名驗證中心網(wǎng)絡服務器端加密卡的芯片 中,并將全體網(wǎng)絡用戶的"密鑰種子"集合即"密鑰種子"表的元素,用加密卡中的一 組專用對稱密鑰KS1分別加密成密文,得到全體網(wǎng)絡用戶的"密鑰種子"表的密文元素,
并與全體網(wǎng)絡用戶的標識存放在數(shù)字簽名驗證中心服務器的數(shù)據(jù)庫中,在加密系統(tǒng)進行
加密或解密過程中,先將用戶的"密鑰種子"表的密文元素,用對稱密鑰KS1解密成明
文,再根據(jù)時間戳1和隨機數(shù)1組成的組合對稱密鑰生成算法,對用戶的"密鑰種子"
表的明文元素進行選取,將選出的明文元素合并成一組臨時的對稱密鑰K2。
13、 在數(shù)字簽名驗證中心建立數(shù)字簽名驗證協(xié)議,在加密卡的芯片中,利用組合對 稱密鑰生成算法生成對稱密鑰K2,使用對稱密鑰K2將文件的數(shù)字"指紋"密文解密, 得到數(shù)字"指紋"的明文,并對文件進行再次"摘要",得到該文件的數(shù)字"指紋",經(jīng) 過對比兩端文件的數(shù)字"指紋"是否相同,來驗證對文件進行數(shù)字簽名的用戶身份是否 正確。
14、 數(shù)字簽名驗證中心的數(shù)字簽名驗證協(xié)議,是對簽名文件進行驗證的具體過程, 驗證簽名用戶K收到用戶J發(fā)送來的數(shù)據(jù)W,或驗證簽名用戶K從網(wǎng)絡站上得到數(shù)據(jù)W 后,驗證簽名用戶K在客戶機端插入智能卡,點擊驗證按鈕,向數(shù)字簽名驗證中心發(fā)出 對簽名文件的驗證請求,數(shù)字簽名驗證中心首先對驗證簽名用戶K進行身份認證,當確 定驗證簽名用戶K為合法用戶后,再對簽名文件進行驗證,其驗證過程是驗證簽名用 戶K的客戶機端將數(shù)據(jù)W發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證中心收數(shù)據(jù)W后,數(shù) 字簽名驗證協(xié)議再根據(jù)數(shù)據(jù)W中用戶J的用戶標識,從數(shù)字簽名驗證中心服務器的數(shù)據(jù) 庫中選出用戶J對應的"密鑰種子"表的密文元素,再與時間戳l、隨機數(shù)l、文件和文 件的數(shù)字簽名一起發(fā)送給加密卡的芯片里,在芯片里用一組專用對稱密鑰KS1將該"密 鑰種子"表的密文元素解密,根據(jù)時間戳1和隨機數(shù)1組成的組合對稱密鑰生成算法, 從該"密鑰種子"表明文元素中取出N組明文元素,并合并成一組對稱密鑰K2,用K2 來解密文件的數(shù)字簽名,得到文件的數(shù)字"指紋1",再對文件進行"摘要",得到該文 件的數(shù)字"指紋2",經(jīng)過對比數(shù)字"指紋1"和數(shù)字"指紋2"是否相同?來判別文件 是否為用戶J的簽名,若兩者不同,則文件不是用戶J的簽名,若兩者相同,文件是用
戶J的簽名,數(shù)字簽名驗證中心將驗證結果發(fā)送給驗證簽名用戶K的客戶機。
15、 在網(wǎng)站上的文件名后設置簽名文件的驗證按鈕,驗證簽名用戶在未打開文件的 情況下,點擊簽名文件的驗證按鈕,客戶機端向數(shù)字簽名驗證中心發(fā)出對簽名文件進行 驗證的請求,數(shù)字簽名驗證中心首先對該驗證簽名用戶進行身份認證,若是非法用戶, 則數(shù)字簽名驗證中心終止簽名文件的驗證,若是合法用戶,則數(shù)字簽名驗證中心接收數(shù) 據(jù)W,并實施簽名文件的驗證。
16、 在客戶機上設置簽名文件的驗證按鈕即在計算機屏幕的上方、下方或在鼠標 右鍵上設置簽名文件的驗證按鈕,當驗證簽名用戶點擊文件名打開文件后,點擊簽名文 件的驗證按鈕,客戶機端向數(shù)字簽名驗證中心發(fā)出對簽名文件進行驗證的請求,數(shù)字簽 名驗證中心首先對該驗證簽名用戶進行身份認證,若是非法用戶,則數(shù)字簽名驗證中心 終止簽名文件的驗證,若是合法用戶,則數(shù)字簽名驗證中心接收數(shù)據(jù)W,并實施簽名文 件的驗證。
17、 數(shù)字簽名驗證中心同時具有對簽名文件進行驗證功能和對用戶進行身份認證的 功能,即具有數(shù)字簽名驗證中心和用戶身份認證中心功能,兩中心都是根據(jù)網(wǎng)絡用戶 相同的"密鑰種子"和組合對稱密鑰生成算法,生成對稱密鑰,來實現(xiàn)簽名文件的驗證 和用戶身份認證。
18、 用戶身份認證協(xié)議,首先,驗證簽名用戶K的客戶機端向數(shù)字簽名驗證中心發(fā) 出對簽名文件進行驗證的請求,數(shù)字簽名驗證中心前端的WEB服務器產(chǎn)生時間戳2和隨 機數(shù)2,并發(fā)送給驗證簽名用戶K的客戶機端,同時產(chǎn)生認證生命周期T,客戶機端的密 碼鑰匙收到后,利用組合對稱密碼生成算法,生成一組對稱密鑰KK1,來加密時間戳2 和隨機數(shù)2生成認證口令1,用戶身份認證協(xié)議將驗證簽名用戶K的標識、時間戳2、隨 機數(shù)2和認證口令1,—并發(fā)送給WEB服務器,WEB服務器對比時間戳2和隨機數(shù)2是否 由WEB服務器生成,且計算認證生命周期T是否結束,若兩者只要有一者未通過,則為 非法用戶,若兩者都通過,則WEB服務器將驗證簽名用戶K的標識、時間戳2、隨機數(shù)2 和認證口令1發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證中心的服務器根據(jù)驗證簽名用戶 K的標識,定位驗證簽名用戶K對應的"密鑰種子"表的密文元素,將該"密鑰種子" 表的密文元素、時間戳2、隨機數(shù)2和認證口令1輸入加密卡的芯片中,在芯片中用對 稱密鑰KS1解密"密鑰種子"表的密文元素,得到該"密鑰種子"表的明文元素,再根 據(jù)時間戳2和隨機數(shù)2組成的組合對稱密鑰生成算法,從該"密鑰種子"表的明文元素
中取出N組明文元素,合成一組對稱密鑰KK2,來加密時間戳2和隨機數(shù)2生成認證口令2,通過對比認證口令1和認證口令2是否相同?來判別驗證簽名用戶K的身份是否 合法,合法用戶能夠?qū)灻募M行驗證,非法用戶則退出數(shù)字簽名驗證中心。19、 利用組合對稱密鑰技術對文件進行數(shù)字簽名,由客戶機端產(chǎn)生一次一變的時間 戳和隨機數(shù),再根據(jù)組合對稱密鑰生成算法,生成的對稱密鑰也一次一變,對稱密鑰具 有臨時性,使用后就清除,不重復使用,從而,實現(xiàn)簽名密鑰一次一變,提髙數(shù)字簽名 協(xié)議的安全等級。20、 利用組合對稱密鑰技術對文件進行數(shù)字簽名,簽名密鑰是通過算法來生成,不 需要進行對稱密鑰的更新維護,從而,大大降低加密系統(tǒng)的維護成本。21、 客戶機端的加密系統(tǒng)和數(shù)字簽名協(xié)議受到密碼鑰匙芯片的保護,數(shù)字簽名驗證 中心的加密系統(tǒng)和數(shù)字簽名驗證協(xié)議也受到服務器端加密卡芯片的保護,同時,數(shù)字簽 名驗證中心全體網(wǎng)絡用戶的"密鑰種子"是被加密成密文后存放,從而,能防止黑客用"木馬"病毒來攻擊客戶機和服務器兩端的加密系統(tǒng),提高數(shù)字簽名體系的安全等級。22、 采用對稱密碼算法來進行數(shù)字簽名,即用對稱密碼算法來加密或解密文件的 數(shù)字"指紋",從而,提高數(shù)字簽名和簽名文件的驗證速度。
圖l:用戶對文件進行數(shù)字簽名的流程圖 圖2:驗證簽名用戶對簽名文件進行驗證的流程圖具體實施方式
:以下結合
用戶對文件進行數(shù)字簽名和驗證簽名用戶對簽名文件進行驗證的實現(xiàn) 步驟圖l:說明用戶對文件進行數(shù)字簽名的過程,首先,用戶J在客戶機端插入密碼鑰 匙硬件設備,在客戶機上點擊對文件進行數(shù)字簽名按鈕,客戶機里產(chǎn)生時間戳1和隨機 數(shù)1,將該文件、時間戳1和隨機數(shù)1 一并輸入密碼鑰匙的芯片中,利用"摘要"算法 如HASH函數(shù),將文件進行"摘要",得到文件的數(shù)字"指紋1",密碼鑰匙芯片中客 戶機端加密系統(tǒng)根據(jù)時間戳1和隨機數(shù)1組成的組合對稱密鑰生成算法,從用戶J的"密 鑰種子"表中選出N個元素,并合成一組對稱密鑰Kl,用對稱密鑰Kl將文件的數(shù)字"指 紋l"加密成密文即對文件進行數(shù)字簽名,對文件進行數(shù)字簽名后,用戶J將簽名文 件發(fā)送給驗證簽名用戶K或者發(fā)送到網(wǎng)絡站上,發(fā)送的數(shù)據(jù)W包括用戶J的用戶標識、時間戳l、隨機數(shù)l、文件和文件的數(shù)字簽名。圖2:說明驗證簽名用戶對簽名文件進行驗證的過程,首先,驗證簽名用戶K在 客戶機端插入一把密碼鑰匙硬件設備,驗證簽名用戶K點擊簽名文件的驗證按鈕,向網(wǎng) 站上數(shù)字簽名驗證中心發(fā)出對簽名文件的驗證請求,網(wǎng)站的WEB服務器產(chǎn)生一組時間戳 2和隨機數(shù)2,并發(fā)送給驗證簽名用戶K的客戶機端,同時,WEB服務器產(chǎn)生認證生命周 期T,客戶機端的密碼鑰匙芯片收到時間戳2和隨機數(shù)2后,根據(jù)時間戳2和隨機數(shù)2, 以及組合對稱密碼生成算法,從驗證簽名用戶K的"密鑰種子"表中選出N個元素,并 合成一組對稱密鑰KK1,來加密時間戳2和隨機數(shù)2生成認證口令1,用戶身份認證協(xié)議 將驗證簽名用戶K的標識、時間戳2、隨機數(shù)2和認證口令1發(fā)送給WEB服務器,WEB 服務器對比時間戳2和隨機數(shù)2是否由WEB服務器生成,且計算認證生命周期T是否結 束,若兩者都通過,則WEB服務器將驗證簽名用戶K的標識、時間戳2、隨機數(shù)2和認 證口令1,發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證中心根據(jù)驗證簽名用戶K的標識, 定位驗證簽名用戶K對應的"密鑰種子"表的密文元素,將"密鑰種子"表的密文元素、 時間戳2、隨機數(shù)2和認證口令1輸入加密卡的芯片中,在加密卡芯片中,用對稱密鑰 KS1解密"密鑰種子"元素密文,再根據(jù)時間戳2和隨機數(shù)2組成的組合對稱密鑰生成 算法,生成一組對稱密鑰KK2,來加密時間戳2和隨機數(shù)2生成認證口令2,通過對比認 證口令1和認證口令2來判別驗證簽名用戶K的身份是否合法,若兩者不相同,則為非 法用戶,非法用戶退出數(shù)字簽名驗證中心,若兩者相同,則為合法用戶,合法用戶能夠 對簽名文件進行驗證,節(jié)下來,客戶機端再將數(shù)據(jù)W包括用戶J的用戶標識、時間戳 1、隨機數(shù)l、文件和文件的數(shù)字簽名, 一并發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證協(xié) 議再根據(jù)用戶J的用戶標識,從網(wǎng)絡服務器的數(shù)據(jù)庫中選出用戶J對應的"密鑰種子" 表的密文元素,再與時間戳1、隨機數(shù)1、文件和文件的數(shù)字簽名一起發(fā)送給加密卡的芯 片里,在芯片里用一組專用對稱密鑰KS1將該"密鑰種子"表的密文元素解密,根據(jù)時 間戳1和隨機數(shù)1組成的組合對稱密鑰生成算法,從該"密鑰種子"表的明文元素中取 出N組明文元素,并合成一組對稱密鑰K2,用K2來解密文件的數(shù)字簽名,得到文件的 數(shù)字"指紋1",再對文件進行"摘要",生成該文件的數(shù)字"指紋2",經(jīng)過對比數(shù)字"指 紋1"和數(shù)字"指紋2"是否相同?來判別文件是否為用戶J的簽名,若兩者不同,則文 件不是用戶J的簽名,若兩者相同,文件是用戶J的簽名,數(shù)字簽名驗證中心并將驗證 結果發(fā)送給驗證簽名用戶K的客戶機。
權利要求
1. 基于CSK(Combined,Symmetric,Key的英文縮寫即“組合對稱密鑰”)的數(shù)字簽名方法是運用計算機、網(wǎng)絡、密碼和芯片技術,在網(wǎng)站上建立數(shù)字簽名驗證中心,在數(shù)字簽名驗證中心的網(wǎng)絡服務器和加密卡里,建立網(wǎng)絡服務器端加密系統(tǒng)和數(shù)字簽名驗證協(xié)議,對簽名文件進行驗證,在客戶機端密碼鑰匙的芯片里,建立加密系統(tǒng)和數(shù)字簽名協(xié)議,每個用戶人手一把密碼鑰匙硬件設備,簽名用戶使用密碼鑰匙對文件進行數(shù)字簽名,且數(shù)字簽名協(xié)議采用組合對稱密鑰技術對文件進行數(shù)字簽名,并實現(xiàn)簽名密鑰一次一變,驗證簽名用戶也使用密碼鑰匙,對簽名文件進行驗證,數(shù)字簽名驗證中心首先對驗證簽名用戶的身份進行認證,再進行簽名文件的驗證,且用戶身份認證協(xié)議和數(shù)字簽名驗證協(xié)議,都采用組合對稱密鑰技術來完成,從而,實現(xiàn)文件的數(shù)字簽名和對簽名文件的驗證。
2、 根據(jù)權利要求1的方法,其特征在于(1) 在客戶機端建立客戶端加密系統(tǒng),將對稱密碼算法、組合對稱密鑰生成算法、 一組"密鑰種子"表的元素和網(wǎng)絡用戶的標識,預先存放在一支基于USB接口的智能卡 芯片即 一把密碼鑰匙硬件設備里,每個網(wǎng)絡用戶的"密鑰種子"表中的元素互不相同, 且"密鑰種子"表中的元素用加密卡芯片中隨機數(shù)發(fā)生器產(chǎn)生,保證該元素具有隨機性, 其中組合對稱密鑰生成算法是根據(jù)一組時間戳和隨機數(shù)對用戶的"密鑰種子"表的元 素進行選取,將選出的元素合并成一組的對稱密鑰Kl;(2) 在客戶機端建立數(shù)字簽名協(xié)議,在客戶機端密碼鑰匙的芯片中,釆用HASH函 數(shù)對文件進行"摘要",得到該文件的數(shù)字"指紋",利用組合對稱密鑰生成算法,生成 對稱密鑰Kl,再用對稱密鑰Kl對文件的數(shù)字"指紋"進行加密,生成文件的數(shù)字"指 紋"密文即對文件進行數(shù)字簽名。
3、 根據(jù)權利要求1的方法,其特征在于(1)在數(shù)字簽名驗證中心建立服務器端加密系統(tǒng),將對稱密碼算法、組合對稱密鑰生成算法和一組專用對稱密鑰KSl,寫入數(shù)字簽名驗證中心網(wǎng)絡服務器端加密卡的芯片 中,并將全體網(wǎng)絡用戶的"密鑰種子"集合即"密鑰種子"表的元素,用加密卡中的一 組專用對稱密鑰KSl分別加密成密文,得到全體網(wǎng)絡用戶的"密鑰種子"表的密文元素,并與全體網(wǎng)絡用戶的標識存放在數(shù)字簽名驗證中心服務器的數(shù)據(jù)庫中,在加密系統(tǒng)進行加密或解密過程中,先將用戶的"密鑰種子"表的密文元素,用對稱密鑰KSl解密成明文,再根據(jù)組合對稱密鑰生成算法,對用戶的"密鑰種子"表的明文元素進行選取,將選出的明文元素合并成一組臨時的對稱密鑰K2;(2)在數(shù)字簽名驗證中心建立數(shù)字簽名驗證協(xié)議,在加密卡的芯片中,利用組合對 稱密鑰生成算法生成對稱密鑰K2,使用對稱密鑰K2將文件的數(shù)字"指紋"密文解密, 得到數(shù)字"指紋"的明文,并對文件進行再次"摘要",得到該文件的數(shù)字"指紋",經(jīng) 過對比兩端文件的數(shù)字"指紋"是否相同,來驗證對文件進行數(shù)字簽名的用戶身份是否 正確。
4、 根據(jù)權利要求2和3的方法,其特征在于-組合對稱密鑰生成算法是由時間戳和隨機數(shù)組成的算法,對"密鑰種子"表中的元 素進行選取,其中時間戳負責確定"密鑰種子"表中元素的行,隨機數(shù)負責確定"密 鑰種子"表中元素的列,并將確定的表行與列交叉的元素選出,共選出N個元素并合成 一組對稱密鑰。
5、 根據(jù)權利要求1和2的方法,其特征在于-(1) 數(shù)字簽名協(xié)議是客戶機端用戶對文件進行數(shù)字簽名的具體過程,用戶J在客戶 機端插入智能卡,點擊客戶機端的數(shù)字簽名按鈕,由客戶機產(chǎn)生時間戳1和隨機數(shù)1, 將該文件、時間戳1和隨機數(shù)1 一并輸入密碼鑰匙的芯片中,利用"摘要"算法如HASH 函數(shù),將文件進行"摘要",獲得文件的數(shù)字"指紋1",客戶機端加密系統(tǒng)根據(jù)組合對 稱密鑰生成算法,從"密鑰種子"表中選出N個元素,并合成一組對稱密鑰Kl,再用對 稱密鑰K1將文件的數(shù)字"指紋l"加密成密文即對文件進行數(shù)字簽名;(2) 用戶J將數(shù)字簽名后的文件發(fā)送給驗證簽名用戶K或者發(fā)送到網(wǎng)絡站上,發(fā)送 的數(shù)據(jù)W包括用戶J的用戶標識、時間戳l、隨機數(shù)l、文件和文件的數(shù)字簽名。
6、 根據(jù)權利要求1和3的方法,其特征在于數(shù)字簽名驗證中心的數(shù)字簽名驗證協(xié)議,是對簽名文件進行驗證的具體過程,驗證簽名用戶K收到用戶J發(fā)送來的數(shù)據(jù)W,或驗證簽名用戶K從網(wǎng)絡站上得到數(shù)據(jù)W后, 驗證簽名用戶K在客戶機端插入智能卡,點擊驗證按鈕,向數(shù)字簽名驗證中心發(fā)出對簽 名文件的驗證請求,數(shù)字簽名驗證中心首先對驗證簽名用戶K進行身份認證,當確定驗 證簽名用戶K為合法用戶后,再對簽名文件進行驗證,其驗證過程是驗證簽名用戶K 的客戶機端將數(shù)據(jù)ff發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證中心收數(shù)據(jù)W后,數(shù)字簽 名驗證協(xié)議再根據(jù)數(shù)據(jù)W中用戶J的用戶標識,從數(shù)字簽名驗證中心服務器的數(shù)據(jù)庫中選出用戶J對應的"密鑰種子"表的密文元素,再與時間戳1、隨機數(shù)1、文件和文件的數(shù)字簽名一起發(fā)送給加密卡的芯片里,在芯片里用一組專用對稱密鑰KS1將該"密鑰種 子"表的密文元素解密,根據(jù)時間戳1和隨機數(shù)1組成的組合對稱密鑰生成算法,從該 "密鑰種子"表明文元素中取出N組明文元素,并合并成一組對稱密鑰K2,用K2來解 密文件的數(shù)字簽名,得到文件的數(shù)字"指紋1",再對文件進行"摘要",得到該文件的 數(shù)字"指紋2",經(jīng)過對比數(shù)字"指紋1"和數(shù)字"指紋2"是否相同?來判別文件是否 為用戶J的簽名,若兩者不同,則文件不是用戶J的簽名,若兩者相同,文件是用戶J 的簽名,數(shù)字簽名驗證中心將驗證結果發(fā)送給驗證簽名用戶K的客戶機。
7、 根據(jù)權利要求6的方法,其特征在于-(1) 在網(wǎng)站上的文件名后設置簽名文件的驗證按鈕,驗證簽名用戶在未打開文件的 情況下,點擊簽名文件的驗證按鈕,客戶機端向數(shù)字簽名驗證中心發(fā)出對簽名文件進行 驗證的請求,數(shù)字簽名驗證中心首先對該驗證簽名用戶進行身份認證,若是非法用戶, 則數(shù)字簽名驗證中心終止簽名文件的驗證,若是合法用戶,則數(shù)字簽名驗證中心接收數(shù) 據(jù)W,并實施簽名文件的驗證;(2) 在客戶機上設置簽名文件的驗證按鈕即在計算機屏幕的上方、下方或在鼠標 右鍵上設置簽名文件的驗證按鈕,當驗證簽名用戶點擊文件名打開文件后,點擊簽名文 件的驗證按鈕,客戶機端向數(shù)字簽名驗證中心發(fā)出對簽名文件進行驗證的請求,數(shù)字簽 名驗證中心首先對該驗證簽名用戶進行身份認證,若是非法用戶,則數(shù)字簽名驗證中心 終止簽名文件的驗證,若是合法用戶,則數(shù)字簽名驗證中心接收數(shù)據(jù)W,并實施簽名文 件的驗證。
8、 根據(jù)權利要求6的方法,其特征在于(1) 數(shù)字簽名驗證中心同時具有對簽名文件進行驗證功能和對用戶進行身份認證 的功能,即具有數(shù)字簽名驗證中心和用戶身份認證中心功能,兩中心都是根據(jù)網(wǎng)絡用戶相同的"密鑰種子"和組合對稱密鑰生成算法,生成對稱密鑰,來實現(xiàn)簽名文件的驗證和用戶的身份認證;(2) 用戶身份認證協(xié)議,首先,驗證簽名用戶K的客戶機端向數(shù)字簽名驗證中心發(fā) 出對簽名文件進行驗證的請求,數(shù)字簽名驗證中心前端的WEB服務器產(chǎn)生時間戳2和隨 機數(shù)2,并發(fā)送給驗證簽名用戶K的客戶機端,同時產(chǎn)生認證生命周期T,客戶機端的密 碼鑰匙收到后,利用組合對稱密碼生成算法,生成一組對稱密鑰KK1,來加密時間戳2 和隨機數(shù)2生成認證口令1,用戶身份認證協(xié)議將驗證簽名用戶K的標識、時間戳2、隨機數(shù)2和認證口令1, 一并發(fā)送給WEB服務器,WEB服務器對比時間戳2和隨機數(shù)2是否 由WEB服務器生成,且計算認證生命周期T是否結束,若兩者只要有一者未通過,則為 非法用戶,若兩者都通過,則冊B服務器將驗證簽名用戶K的標識、時間戳2、隨機數(shù)2 和認證口令1發(fā)送給數(shù)字簽名驗證中心,數(shù)字簽名驗證中心的服務器根據(jù)驗證簽名用戶 K的標識,定位驗證簽名用戶K對應的"密鑰種子"表的密文元素,將該"密鑰種子" 表的密文元素、時間戳2、隨機數(shù)2和認證口令1輸入加密卡的芯片中,在芯片中用對 稱密鑰KS1解密"密鑰種子"表的密文元素,得到該"密鑰種子"表的明文元素,再根 據(jù)時間戳2和隨機數(shù)2組成的組合對稱密鑰生成算法,從該"密鑰種子"表的明文元素 中取出N組明文元素,合成一組對稱密鑰KK2,來加密時間戳2和隨機數(shù)2生成認證口 令2,通過對比認證口令1和認證口令2是否相同?來判別驗證簽名用戶K的身份是否 合法,合法用戶能夠?qū)灻募M行驗證,非法用戶則退出數(shù)字簽名驗證中心。
9、根據(jù)權利要求2和3的方法,其特征在于(1) 客戶機端的加密系統(tǒng)和數(shù)字簽名協(xié)議受到密碼鑰匙芯片的保護,數(shù)字簽名驗證 中心的加密系統(tǒng)和數(shù)字簽名驗證協(xié)議也受到服務器端加密卡芯片的保護,同時,數(shù)字簽 名驗證中心全體網(wǎng)絡用戶的"密鑰種子"是被加密成密文后存放,從而,能防止黑客用"木馬"病毒來攻擊客戶機和服務器兩端的加密系統(tǒng),提髙數(shù)字簽名體系的安全等級;(2) 采用對稱密碼算法來進行數(shù)字簽名,即用對稱密碼算法來加密或解密文件的 數(shù)字"指紋",從而,提髙數(shù)字簽名和簽名文件的驗證速度。
10、根據(jù)權利要求2和3的方法,其特征在于(1) 利用組合對稱密鑰技術對文件進行數(shù)字簽名,由客戶機端產(chǎn)生一次一變的時間 戳和隨機數(shù),再根據(jù)組合對稱密鑰生成算法,生成的對稱密鑰也一次一變,對稱密鑰具 有臨時性,使用后就清除,不重復使用,從而,實現(xiàn)簽名密鑰一次一變,提高數(shù)字簽名 協(xié)議的安全等級;(2) 利用組合對稱密鑰技術對文件進行數(shù)字簽名,簽名密鑰是通過算法來生成,不 需要進行對稱密鑰的更新維護,從而,大大降低加密系統(tǒng)的維護成本。
全文摘要
基于CSK的數(shù)字簽名方法是在網(wǎng)站上建立數(shù)字簽名驗證中心,對簽名文件進行驗證,在客戶機端建立加密系統(tǒng)和數(shù)字簽名協(xié)議,每個用戶人手一把密碼鑰匙硬件設備,簽名用戶使用密碼鑰匙對文件進行數(shù)字簽名,且數(shù)字簽名協(xié)議采用組合對稱密鑰技術對文件進行數(shù)字簽名,并實現(xiàn)簽名密鑰一次一變,驗證簽名用戶也使用密碼鑰匙,對簽名文件進行驗證,數(shù)字簽名驗證中心首先對驗證簽名用戶的身份進行認證,再進行簽名文件的驗證,且身份認證協(xié)議和數(shù)字簽名驗證協(xié)議,都采用組合對稱密鑰技術來完成,從而,實現(xiàn)文件的數(shù)字簽名和簽名文件的驗證。
文檔編號H04L9/30GK101282222SQ20081011310
公開日2008年10月8日 申請日期2008年5月28日 優(yōu)先權日2008年5月28日
發(fā)明者胡祥義 申請人:胡祥義