專利名稱:一種數字簽章系統和方法
技術領域:
本發明涉及信息安全領域,特別涉及一種數字簽章方法和系統。
背景技術:
現有技術中紙質文檔或者電子文檔存在各種安全問題,如容易被篡改,紙質文檔的簽章容易被盜用,由于電子文檔內容極易被更改,加上他人蓄意或無意的破壞行為,使紙質文檔或者電子文檔存在各種安全隱患。在現有的文檔技術中,已經把容易被篡改的紙質文檔做成電子文檔,并廣泛應用電子簽章技術進行保護,大大地增加了紙質文檔和電子文檔的安全性。電子簽章,泛指所有以電子形式存在,依附在電子文件并與其邏輯關聯,可用以辨識電子文件簽署者身份,保證文件的完整性,并表示簽署者同意電子文件所陳述事實的內容。一般來說,對電子簽章的認定,都是從技術角度而言的,主要是指通過特定的技術方案來鑒別當事人的身份及確保交易資料內容不被篡改的安全保障措施。簽章技術的要點如下1.數字簽名對電子文檔進行簽名的時候,可以對整體或者部分文檔進行簽名, 在對文檔進行部分簽名的時候,要先選擇被簽名的內容,然后進行簽名。簽名時,需要選擇簽名的證書,選擇事先添加的簽章圖標,然后對文檔進行簽名,形成密文信息。電子簽名技術的實現一般需要使用到非對稱加密算法(RSA算法)和報文摘要算法(HASH算法)。2.文檔簽章文檔簽章的基本原理是通過文檔簽章模塊,使用數字證書對應的私鑰,對選擇進行簽章的文檔內容進行數字簽名,數字簽名信息以圖像(簽章圖標)的方式顯示出來,即顯示的簽章圖標綁定了簽名結果、被簽名信息和簽名證書。進行簽章驗證時,使用簽名證書對簽名結果進行驗證,實現文檔簽章驗證。3.驗證文檔簽章的驗證可以驗證文檔簽章者的真實身份,如被更改的文檔則不能通過驗證。電子簽章技術的應用大大的提高了文檔的受保護程度,現有的技術文檔簽章過程一般是在控件中加入位圖和與簽名相關聯的文檔屬性。簽名后,將簽名作為水印加入到位圖中,位圖一般是之前設定的,并可被用戶修改,如果簽章位圖的管理不當化,將不能夠確定簽章和簽名主體的唯一。雖然也可以驗證文字信息是否被篡改,但是不能驗證位圖是否被更改,這給真實用戶帶來了不必要的麻煩和損失,安全性不高。
發明內容
基于現有技術的不足,本發明提供了一種數字簽章系統和方法,應用此技術,能夠及時發現文檔被非法篡改,并采取必要的保護措施,保證了簽章和簽名主體的唯一,提高了文檔的安全性。本發明提供一種數字簽章系統,包括數字簽章生成裝置和數字簽章驗證裝置,所述數字簽章生成裝置用于完成數字簽章操作過程,其包括信息獲取模塊、第一生成模塊、水印嵌入模塊、管理模塊、第二生成模塊、信息發送模塊和輸出模塊;所述信息獲取模塊,用于獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;所述第一生成模塊,用于獲取明文信息并對其進行簽名操作,生成數字簽名;所述水印嵌入模塊,用于使用水印算法將所述數字簽名進行變化形成帶有數字簽名的水印信息;所述管理模塊,用于管理和獲取驗證通過的位圖;所述第二生成模塊,用于對所述帶有數字簽名的水印信息和所述位圖進行操作, 生成帶有數字簽名水印的位圖信息,并對其進行簽名操作,生成位圖簽名;所述信息發送模塊,用于將所述位圖、所述明文信息、待驗證數字簽名信息、所述位圖簽名和所述信息獲取模塊中的用戶公鑰信息發送給所述數字簽章驗證裝置,所述的待驗證數字簽名信息為第一生成模塊中的數字簽名或所述第二生成模塊中的帶有數字簽名水印的位圖信息;所述輸出模塊,用于將所述第二生成模塊生成的帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域;所述數字簽章驗證裝置用于對數字簽章生成裝置所生成的數字簽名和位圖簽名分別進行驗證,其包括驗證信息獲取模塊、用戶信息提取模塊、第一驗證模塊、第二驗證模塊、驗證報告輸出模塊和第三驗證模塊;所述驗證信息獲取模塊,用于獲取所述信息發送模塊發送的部分信息,包括所述位圖、所述明文信息、所述位圖簽名和所述待驗證數字簽名信息,該待驗證數字簽名信息為第一生成模塊中的數字簽名或所述第二生成模塊中的帶有數字簽名水印的位圖信息;所述用戶信息提取模塊,用于獲取所述信息發送模塊發送的用戶公鑰信息;所述第一驗證模塊,用于對位圖簽名進行驗證;所述第二驗證模塊,用于對數字簽名進行驗證;所述驗證報告輸出模塊,用于分別報告所述第一驗證模塊和所述第二驗證模塊的驗證結果;所述第三驗證模塊,用于驗證所述數字簽章是否合法有效。其中,所述第一生成模塊包括第一信息獲取單元和第一簽名單元,所述第一信息獲取單元用于從文檔中獲取待簽名的明文信息并從信息獲取模塊中獲取用戶私鑰信息;所述第一簽名單元用于選中所述第一信息獲取單元中的待進行簽名的全部或者部分明文信息,用散列算法計算得到密文信息,然后使用所述第一信息獲取模塊中獲得的用戶私鑰信息對該密文信息進行簽名操作,生成數字簽名。其中,所述管理模塊包括位圖客戶端管理單元和位圖獲取單元,位圖客戶端管理單元用于管理驗證通過的位圖,位圖獲取單元用于從所述位圖客戶端管理單元中獲取所需位圖。其中,所述位圖為存儲于用戶主機上的公章、個人簽名、圖片或具有生物特征的指紋、虹膜。其中,所述第二生成模塊包括第二信息獲取單元、水印添加單元和第二簽名單元,所述第二信息獲取單元用于獲取信息獲取模塊中的用戶私鑰信息;所述水印添加單元用于將所述水印嵌入模塊生成的帶有數字簽名的水印信息添加到所述位圖獲取單元獲得的位圖中,生成帶有數字簽名水印的位圖信息;所述第二簽名單元,用于對所述水印添加單元中生成的帶有數字簽名水印的位圖信息進行散列算法,生成位圖信息散列值,然后再使用第二信息獲取單元獲取的用戶私鑰信息對該位圖信息散列值進行簽名操作,形成位圖簽名。其中,所述待驗證數字簽名信息為所述第二生成模塊中的帶有數字簽名水印的位圖信息,所述數字簽章驗證裝置還包括水印提取模塊,其用于將所述驗證信息獲取模塊中的帶有數字簽名的位圖信息進行分離操作,得到位圖和帶有數字簽名的水印信息,而后再提取所述帶有數字簽名的水印信息中的水印,得到數字簽名。其中,所述第一驗證模塊包括第一驗證信息獲取單元、第一生成單元和第一驗證單元,所述第一驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的位圖、位圖簽名、所述用戶信息提取模塊中的用戶公鑰信息和所述水印提取模塊中的水印信息;所述第一生成單元包括第一子單元和第二子單元;所述第一子單元,用于將第一驗證信息獲取單元中的水印信息添加到所述第一驗證信息獲取單元所獲取的位圖中,形成新的帶數字簽名水印的位圖信息,并用散列算法對此新的帶數字簽名水印的位圖信息進行計算,生成位圖信息散列值;所述第二子單元,用于使用所述第一驗證信息獲取單元中的用戶公鑰信息對其獲取的位圖簽名進行驗證,生成另一位圖信息散列值;所述第一驗證單元用于對所述第一子單元和所述第二子單元分別生成的位圖信息散列值進行比較,通過比較得知所述位圖簽名是否有效從而得知位圖是否被改動或者被替換。其中,所述第二驗證模塊包括第二驗證信息獲取單元、第二生成單元和第二驗證單元;所述第二驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的明文信息、用戶信息提取模塊中的用戶公鑰信息和所述水印提取模塊中的數字簽名;所述第二生成單元包括第三子單元和第四子單元,所述第三子單元,用于用散列算法對所述第二驗證信息獲取單元獲取的明文信息進行計算生成密文信息;所述第四子單元,用于使用第二驗證信息獲取單元中的用戶公鑰信息對其獲取的數字簽名進行驗證得到另一密文信息;所述第二驗證單元,用于對所述第三子單元和所述第四子單元分別生成的密文信息進行比較,通過比較得知所述數字簽名是否有效,從而得知所述明文信息是否被篡改。其中,所述待驗證數字簽名信息為第一生成模塊中的數字簽名,所述第一驗證模塊包括第一驗證信息獲取單元、第一生成單元和第一驗證單元,所述第一驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的位圖、數字簽名、位圖簽名和所述用戶信息提取模塊中的用戶公鑰信息;
所述第一生成單元包括第一子單元和第二子單元;所述第一子單元,用于對所述第一驗證信息獲取單元獲取的數字簽名添加水印算法形成新的帶有數字簽名的水印信息,然后將此新的水印信息添加到由第一驗證信息獲取單元獲取的位圖中,形成新的帶數字簽名水印的位圖信息,并用散列算法對此新的帶數字簽名水印的位圖信息進行計算,生成位圖信息散列值;所述第二子單元,用于使用所述第一驗證信息獲取單元中的用戶公鑰信息對其獲取的位圖簽名進行驗證,生成位圖信息散列值;所述第一驗證單元用于對所述第一子單元和所述第二子單元分別生成的位圖信息散列值進行比較,通過比較得知所述位圖簽名是否有效從而得知位圖是否被改動或者被替換。其中,所述第二驗證模塊包括第二驗證信息獲取單元、第二生成單元和第二驗證單元;所述第二驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的明文信息和數字簽名,還用于獲取所述用戶信息提取模塊中的用戶公鑰信息;所述第二生成單元包括第三子單元和第四子單元;所述第三子單元,用于用散列算法對所述第二驗證信息獲取單元獲取的明文信息進行計算生成密文信息;所述第四子單元,用于使用第二驗證信息獲取單元中的用戶公鑰信息對其獲取的數字簽名進行驗證得到另一密文信息;所述第二驗證單元,用于對所述第三子單元和所述第四子單元分別生成的密文信息進行比較,通過比較得知所述數字簽名是否有效,從而得知所述明文信息是否被篡改。其中,所述散列算法是信息摘要5算法或哈希算法。其中,所述驗證報告輸出模塊包括第一報告單元和第二報告單元;所述第一報告單元,用于報告所述第一驗證模塊對所述位圖簽名驗證的結果,如果位圖簽名驗證結果通過則所述第一報告單元報告驗證通過,如果所述位圖簽名驗證不通過則由所述第一報告單元報告驗證錯誤;所述第二報告單元,用于報告所述第二驗證模塊對所述數字簽名驗證的結果,如果數字簽名驗證結果通過則所述第二報告單元報告驗證通過,如果所述數字簽名驗證不通過則由所述第二報告單元報告驗證錯誤。其中,所述第三驗證模塊,用于驗證數字簽章的有效性,當所述第一驗證模塊驗證所述位圖簽名和所述第二驗證模塊驗證所述數字簽名都通過,所述第三驗證模塊驗證所述數字簽章有效,并報告簽章有效;當所述第一驗證模塊驗證所述位圖簽名和所述第二驗證模塊驗證所述數字簽名一者不通過驗證或者兩者都不通過驗證,所述第三驗證模塊驗證所述簽章無效,并報告簽
章無效。其中,所述報告驗證結果的方式為以顯示的方式輸出結果,或以發聲的方式輸出結果,或以顯示和發聲結合的方式輸出結果。本發明又提供一種數字簽章的方法,包括數字簽章生成過程和數字簽章驗證過程,所述數字簽章生成過程包括生成數字簽名和生成位圖簽名兩部分,包括下列步驟
步驟A信息獲取模塊獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;
步驟B第一生成模塊對明文信息進行簽名操作,生成數字簽名;
步驟C水印嵌入模塊使用水印算法將步驟B中已經生成的數字簽名進行變化形成帶數字簽名的水印信息;
步驟D管理模塊獲取位 步驟E第二生成模塊對步驟C中的水印信息和步驟D中的位圖進行操作形成位圖信息,然后再對該位圖信息進行簽名,生成位圖簽名;
步驟F信息發送模塊將數字簽章信息發送給驗證信息獲取模塊進行驗證,還將用戶公鑰信息發送給用戶信息提取模塊;
步驟G輸出模塊顯示數字簽章圖標;
所述數字簽章驗證過程包括對位圖簽名的驗證和對數字簽名的驗證,包括下列步驟
步驟A’驗證信息獲取模塊獲取所述數字簽章信息;
步驟B’用戶信息提取模塊獲取所述用戶公鑰信息;
步驟C’第一驗證模塊驗證所述位圖簽名;
步驟D’第二驗證模塊驗證所述數字簽名;
步驟E’驗證報告輸出模塊報告所述第一驗證模塊和所述第二驗證模塊的驗證結果;
步驟F’第三驗證模塊驗證數字簽章的有效性。
其中,所述數字簽章生成過程的步驟B具體為所述第一生成模塊用散列算法對所述明文信息進行計算生成密文信息,再使用所述步驟A中獲取的用戶私鑰信息對所述密文信息進行簽名操作,形成數字簽名。
其中,所述數字簽章生成過程的步驟D中的位圖包括存儲于用戶主機上的公章1個人簽名1圖片或具有生物特征的指紋1虹膜。
其中,所述數字簽章生成過程的步驟E具體為所述第二生成模塊將所述步驟C中的帶數字簽名的水印信息添加到所述步驟D中的位圖中生成帶數字簽名水印的位圖信息,再使用所述用戶私鑰信息對所述位圖信息進行簽名形成位圖簽名。
其中,所述數字簽章生成過程的步驟G具體為輸出模塊將所述第二生成模塊生成的帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域。
其中,所述數字簽章生成過程的步驟D和數字簽章驗證過程的步驟A’中的數字簽章信息包括所述明文信息1所述帶有數字簽名水印的位圖信息和位圖簽名。
其中,所述數字簽章驗證過程的步驟C’具體為
步驟Cl’所述第一驗證模塊將所述步驟A’中的帶數字簽名水印的位圖信息進行計算生成位圖信息散列值;
步驟C2’所述第一驗證模塊獲取步驟A’中的位圖簽名,并用所述步驟B’中獲取的用戶公鑰信息對所述位圖簽名進行驗證操作,得到另一位圖信息散列值;
步驟C3’所述第一驗證模塊對步驟C2’和步驟C3’分別得到的兩個位圖信息進行比較,如果比較結果一致則證明所述位圖是信的,即所驗證的所述位圖簽名是有效的,如果比較結果不一致則證明所述位圖簽名無效即所述位圖簽名有信息丟失或者被篡改。其中,所述數字簽章驗證過程的步驟D’具體為步驟D1’ 水印提取模塊將所述步驟A’中的帶有數字簽名的位圖信息進行分離操作,得到位圖和帶有數字簽名的水印信息,而后再提取所述帶有數字簽名的水印信息中的水印,得到數字簽名;步驟D2’ 所述第二驗證模塊獲取所述步驟A’中的明文信息,再用散列算法對所述明文信息進行加密,得到密文信息;步驟D3’ 所述第二驗證模塊再使用步驟B’中獲取的用戶公鑰信息對所述步驟 D1’中的數字簽名進行驗證操作,得到另一密文信息;步驟D4’ 所述第二驗證模塊將得到的兩個密文信息進行比較,如果比較結果一致則證明所述明文信息是完整的,即所述數字簽名是有效的,如果比較結果不一致則證明所述數字簽名無效即所述明文信息有遺漏或者被篡改。其中,所述數字簽章生成過程的步驟D和數字簽章驗證過程的步驟A’中的數字簽章信息包括所述明文信息、所述位圖、所述數字簽名和所述位圖簽名。其中,所述數字簽章驗證過程的步驟C’具體為首先所述第一驗證模塊獲取步驟A’中的所述數字簽名和位圖,將該數字簽名做為載體嵌入到水印算法中,形成新的帶數字簽名的水印信息;然后將該新的帶數字簽名的水印信息添加到獲得的位圖中,生成新的帶數字簽名水印的位圖信息,并用散列算法對新的位圖信息進行計算生成位圖信息散列值;其次所述第一驗證模塊獲取步驟A’中的位圖簽名,并用步驟B’中的所述用戶公鑰信息對該位圖簽名進行解密操作,生成另一位圖信息散列值;最后所述第一驗證模塊將對生成的兩個位圖信息散列值進行比較,如果比較結果一致則證明所述位圖是信的,即所驗證的所述位圖簽名是有效的,如果比較結果不一致則證明所述位圖簽名無效即所述位圖有信息丟失或者被篡改。其中,所述數字簽章驗證過程的步驟D’具體為首先所述第二驗證模塊獲取所述步驟A’中的明文信息,再用散列算法對該明文信息進行加密,得到密文信息;其次所述第二驗證模塊使用步驟B’中獲取的用戶公鑰信息對所述步驟A’中獲取的數字簽名進行驗證操作,得到另一密文信息;最后所述第二驗證模塊將得到的兩個密文信息進行比較,如果比較結果一致則證明所述明文信息是完整的,即所述數字簽名是有效的,如果比較結果不一致則證明所述數字簽名無效即所述明文信息有遺漏或者被篡改。其中,所述散列算法是信息摘要5算法或哈希算法。其中,所述數字簽章驗證過程的步驟E’具體為如果所述步驟C’中經驗證的所述位圖簽名是有效的,所述輸出模塊將報告所述位圖簽名驗證通過,如果所述步驟C’中經驗證的所述位圖簽名是無效的,則所述輸出模塊報告所述位圖簽名錯誤;如果所述步驟D ’中經驗證的所述數字簽名是有效的,所述輸出模塊將報告所述數字簽名驗證通過,如果所述步驟E’中經驗證的所述數字簽名是無效的,則所述輸出模塊報告所述數字簽名錯誤。其中,所述數字簽章驗證過程的步驟F’具體為如果所述步驟C’中對所述位圖簽名的驗證和所述步驟D’中對所述數字簽名的驗證均有效,則通過所述數字簽章有效性的驗證,并報告簽章有效;相應地,如果所述步驟C’中對所述位圖簽名的驗證和所述步驟D’中對所述數字簽名的驗證,有一者不同過驗證或兩者均不通過,則不通過所述簽章有效性的驗證,并報告所述簽章無效。其中,所述報告的方式是以顯示的方式輸出結果,或以發聲的方式輸出結果,或以顯示和發聲結合的方式輸出結果。本發明通過在數字簽章過程中分別對明文信息和位圖進行簽名的操作,確保了文檔的安全性;又通過在數字簽章驗證過程中分別對位圖簽名和數字簽名進行驗證的操作, 確保了文檔的真實性,同時具有防篡改效力,本發明中數字簽章過程和數字簽章驗證過程都為文檔提供了雙重保護,與原有技術相比,更能起到對文檔保護的作用。
圖1是一種數字簽章系統方框示意圖;圖2是一種數字簽章的生成方法流程圖;圖2-1是圖2中步驟302的細化流程圖;圖2-2是圖2中步驟305的細化流程圖;圖3是與圖2對應的數字簽章的驗證方法流程圖;圖3-1是圖3中步驟403的細化流程圖;圖3-2是圖3中步驟404的細化流程圖;圖4是另一種數字簽章系統方框示意圖;圖5是另一種數字簽章的生成方法流程圖;圖5-1是圖5中步驟702的細化流程圖;圖5-2是圖5中步驟705的細化流程圖;圖6是與圖5對應的數字簽章的驗證方法流程圖;圖6-1是圖6中步驟804的細化流程圖;圖6-2是圖6中步驟805的細化流程圖;圖7是代替圖6的另一種數字簽章的驗證方法流程圖。
具體實施例方式本實施例提供了兩種生成帶數字簽名水印的數字簽章系統,數字簽章系統A和數字簽章系統B,兩種數字簽章系統的主要目的相同且有兩個第一目的是生成數字簽章,第二目的是驗證數字簽章。為使發明內容更加清晰,下面結合實施例和附圖來對本發明做進一步說明,但不作為對本發明的限定。實施例1圖1,是本發明提供的一種數字簽章系統A方框示意圖,具體包括數字簽章生成裝置1,數字簽章驗證裝置2;數字簽章生成裝置1,用于完成數字簽章操作過程;數字簽章生成裝置1具體包括信息獲取模塊101,第一生成模塊102,水印嵌入模塊103,管理模塊104,第二生成模塊105,信息發送模塊106,輸出模塊107。信息獲取模塊101,用于獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;第一生成模塊102,具體包括第一信息獲取單元201-1,第一簽名單元101_2 ;第一信息獲取單元102-1,用于從信息獲取模塊101中獲取簽名所需要的用戶私鑰信息,還用于從文檔中獲取待簽名的明文信息;第一簽名單元102-2,用于選中待簽名的明文信息,用特定的加密算法對其進行計算得到密文信息,還用于使用用戶私鑰信息對密文信息進行簽名操作,形成數字簽名;所述特定的加密算法可以為散列算法。水印嵌入模塊103,用于使用水印算法將所述數字簽名進行變化形成帶有數字簽名的水印信息;管理模塊104,具體包括位圖客戶端管理單元104-1、位圖獲取單元104_2 ;位圖客戶端管理單元104-1,用于管理驗證通過的位圖;位圖獲取單元104-2,用于從位圖客戶端管理單元104-1中獲取所需位圖;第二生成模塊105,具體包括第二信息獲取單元105-1、水印添加單元105_2、第二簽名單元105-3 ;第二信息獲取單元105-1,用于從信息獲取模塊101中獲取用戶私鑰信息;水印添加單元105-2,用于將水印嵌入模塊103中的帶有數字簽名的水印信息添加到位圖獲取單元104-2獲得的位圖中,生成帶有數字簽名水印的位圖信息;第二簽名單元105-3,用于對生成的帶有數字簽名水印的位圖信息進行散列算法并進行簽名操作,形成位圖簽名,完成數字簽章過程;信息發送模塊106,用于將位圖,明文信息,數字簽名,位圖簽名和用戶公鑰信息發送到數字簽章驗證驗證裝置;輸出模塊107,用于獲取水印添加單元105-2中帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域。數字簽章驗證裝置2,用于對生成的數字簽名和位圖簽名分別進行驗證,方法是數字簽章形成的逆過程;數字簽章驗證裝置2具體包括驗證信息獲取模塊201,用戶信息提取模塊202,第一驗證模塊203,第二驗證模塊204,驗證報告輸出模塊205,第三驗證模塊206 ;驗證信息獲取模塊201,用于從信息發送模塊106發送的數字簽章信息中提取所要驗證的所有信息,包括位圖簽名、數字簽名、明文信息和位圖;用戶信息提取模塊202,用于獲取從信息發送模塊107發送的用戶公鑰信息;第一驗證模塊203,具體包括第一驗證信息獲取單元203-1,第一生成單元 203-2,第一驗證單元203-3 ;第一驗證信息獲取單元203-1,用于獲取驗證信息獲取模塊201中的位圖、位圖簽名和數字簽名,還用于獲取用戶信息提取模塊202中用戶公鑰信息;
第一生成單元203-2,具體包括第一子單元203-2-1、第二子單元203-2-2 ;第一子單元203-2-1,用于對第一驗證信息獲取單元203_1獲取的數字簽名添加水印算法形成新的帶有數字簽名的水印信息;還用于將此帶有數字簽名的水印信息添加到由第一驗證信息獲取單元203-1獲取的位圖中,形成帶數字簽名水印的位圖信息,并用散列算法對此帶數字簽名的水印的位圖信息進行計算,生成位圖信息散列值1 ;第二子單元203-2-2 用于使用獲取用戶信息提取模塊202中的用戶公鑰信息對第一驗證信息獲取單元203-1獲取的位圖簽名進行驗證生成位圖信息散列值2 ;第一驗證單元203-3 用于對第一子單元203-2-1和第二子單元203_2_2分別生成的位圖信息散列值進行比較,通過比較得知位圖簽名是否有效從而得知位圖是否被改動或者被替換;第二驗證模塊204,具體包括第二驗證信息獲取單元204-1,第二生成單元 204-2、第二驗證單元204-3 ;第二驗證信息獲取單元204-1,用于獲取驗證信息獲取模塊201中的明文信息和數字簽名,還用于獲取用戶信息提取模塊202中的用戶公鑰信息;第二生成單元204-2 具體包括第三子單元204-2-1、第四子單元204_2_2 ;第三子單元204-2-1 用于使用散列算法對第二驗證信息獲取單元204-1獲取的明文信息進行計算生成密文信息1 ;第四子單元204-2-2 用于使用第二驗證信息獲取單元204_1獲取的用戶公鑰信息對第一驗證信息獲取單元204-1獲取的數字簽名進行驗證得到密文信息2 ;第二驗證單元204-3 用于對第三子單元204-2-1和第四子單元204_2_2分別生成的密文信息進行比較,通過比較得知數字簽名是否有效,從而得知明文信息是否被篡改;驗證報告輸出模塊205,具體包括第一報告單元205-1,第二報告單元205_2 ;第一報告單元205-1,用于顯示位圖簽名驗證的結果;具體地,第一驗證模塊203對位圖簽名驗證以后,如果驗證結果通過則第一報單元塊205-1顯示驗證通過,如果位圖簽名驗證不通過則由第一報告模塊205-1顯示錯誤警告。第二報告單元205-2,用于顯示數字簽名驗證的結果;具體地,第二驗證模塊205對數字簽名進行驗證以后,如果驗證結果通過則第二報告單元205-2顯示驗證通過,如果數字簽名驗證不通過則由第二報告模塊205-2顯示錯
誤警告。第三驗證模塊206,用于驗證數字簽章結果的有效性;具體地,當第一驗證模塊203驗證位圖簽名和第二驗證模塊204驗證數字簽名都通過以后第三驗證模塊206驗證簽章有效,并顯示簽章有效性驗證通過的報告;相應的,當第一驗證模塊203驗證位圖簽名和第二驗證模塊204驗證數字簽名一者不通過驗證或者兩者都不通過驗證時第三驗證模塊206驗證簽章無效,并顯示簽章有效性驗證錯誤的警告。圖2,是本實施例針對圖1所示系統提供的一種生成帶數字簽名水印的數字簽章生成方法的流程圖,本實施例中,數字簽章的過程分為兩部分進行,第一部分是對明文信息進行數字簽名,第二部分是利用數字簽名結果和位圖,完成對位圖進行簽名的操作,從而使得明文信息和位圖都得到更好的保護,實現防偽、防篡改的效力,具體步驟如下步驟301 信息獲取模塊獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;步驟302 第一生成模塊對明文信息進行簽名操作,生成數字簽名;優選地,如圖2-1所示步驟302具體包括步驟302-1 第一生成模塊獲取待簽名的部分或者全部明文信息,并使用散列算法計算明文信息得到固定位數的密文信息;其中,散列算法,S卩加密過程中無需使用密鑰,輸入明文信息后由直接經過加密算法處理成密文,加密后的數據是無法被解密,只有輸入相同的明文信息經過相同的散列算法才能得到相同的密文信息;步驟302-2 第一生成模塊利用用戶私鑰信息對上述密文信息進行加密操作,生成密文信息的數字簽名;步驟303 水印嵌入模塊為數字簽名添加水印,具體為,水印嵌入模塊使用水印算法將步驟302中已經生成的數字簽名進行變化形成帶數字簽名的水印信息;其中,水印算法可以是多種算法,只要能保證信息的完整性即可。步驟304 管理模塊獲取位圖;優選地,用戶的位圖可以從本地獲取,經過合法性驗證后方可以使用,對于從本地直接獲取的位圖分為兩種一種是存儲于用戶主機上的公章、個人簽名或者圖片,第二種是通過密鑰設備傳入用戶主機的位圖,例如,指紋,虹膜等帶有生物特征的位圖,其對該類位圖的形成和驗證均在智能密鑰設備內完成無需在線驗證,傳入文檔后可以直接使用;用戶的位圖可以通過網絡途徑獲取,對于從網絡上獲取的位圖要在線驗證其合法性以后,存入到用戶主機中才可以使用。步驟305 第二生成模塊生成位圖簽名;優選地,如圖2-2所示步驟305具體包括步驟305-1 第二生成模塊添加步驟303中生成的水印信息到步驟304獲取的位圖中生成帶有數字簽名水印的位圖信息;步驟305-2 第二生成模塊采用散列算法對上述的帶有數字簽名水印的位圖信息進行計算,生成位圖信息散列值;在步驟305-2中,散列算法可以是信息摘要5算法、哈希算法、或者其他的散列算法,散列算法是單向的加密過程是不可逆的過程,只有輸入相同的位圖文件經過相同的散列算法才能得到相同的散列值。步驟305-3 第二生成模塊使用用戶私鑰信息對步驟305-2中生成的位圖散列值進行加密操作,生成位圖簽名;其中,帶有數字簽名水印的位圖信息則作為數字簽章的圖標用于顯示。步驟306 信息發送模塊將簽章信息發送給數字簽章驗證裝置,簽章信息具體包括明文信息,數字簽名,位圖,位圖簽名和用戶公鑰信息;步驟307 輸出模塊在指定區域內顯示數字簽章的圖標;
優選地,輸出模塊將生成的帶有數字簽名水印的位圖信息做為數字簽章的圖標添加到文檔控件中,并在某一區域內顯示數字簽章的圖標;其中,數字簽章的圖標綁定了明文信息、用戶信息、位圖和數字簽名的結果,提高了文檔的安全性。圖3,是本實施例針對圖2提供的一種數字簽章的生成方法對應的驗證方法流程圖,通過分別對位圖簽名和數字簽名分別進行驗證的方法來實現的,更好的驗證了數字簽章的有效性和用戶的真實性,具體步驟如下步驟401 驗證信息獲取模塊獲取驗證信息;具體地,信息獲取模塊從信息發送模塊發送的數字簽章信息中獲取所有待驗證的信息,具體包括位圖簽名、數字簽名、明文信息和位圖;步驟402 用戶信息提取模塊獲取用戶公鑰信息;步驟403 第一驗證模塊驗證位圖簽名;優選地如圖3-1所示步驟403具體包括步驟403-1 第一驗證模塊獲取驗證信息獲取模塊中的數字簽名后,使用水印算法將該數字簽名進行變化,形成帶數字簽名的水印信息;步驟403-2 第一驗證模塊獲取驗證信息獲取模塊中的位圖,并將上述水印信息添加到該位圖中,生成帶數字簽名水印的位圖信息,并用散列算法對所述位圖信息進行計算生成位圖信息散列值1 ;步驟403-3 第一驗證模塊獲取驗證信息獲取模塊中的位圖簽名,利用用戶公鑰信息對該位圖簽名進行驗證,得到位圖信息散列值2 ;步驟403-4 第一驗證模塊將對位圖信息散列值1和位圖信息散列值2進行比較, 并判斷比較結果是否一致,如果比較結果一致則證明位圖沒被篡改,如果比較結果不一致則證明位圖簽名無效即該位圖有信息丟失或者被篡改,驗證完畢后執行步驟405 ;步驟404 第二驗證模塊驗證數字簽名優選地,如圖3-2所示步驟404具體包括步驟404-1 第二驗證模塊獲取驗證信息獲取模塊中的明文信息,用特定加密算法對該明文信息進行加密得到密文信息1,所述特定加密算法可以是散列算法;步驟404-2 第二驗證模塊獲取驗證信息獲取模塊中的數字簽名,利用用戶公鑰信息對該數字簽名進行驗證,得到密文信息2 ;步驟404-3 第二驗證模塊對密文信息1與密文信息2進行比較,并判斷比較結果是否一致,如果比較結果一致則證明明文信息是完整的,即所驗證的數字簽名是有效的,如果比較結果不一致則證明明文信息有遺漏或者被篡改,即所驗證的數字簽名是無效的,驗證完畢后執行步驟405 ;所述步驟403和步驟404的順序可以調換。步驟405 驗證報告輸出模塊顯示驗證結果;優選地如果步驟403中經驗證的位圖簽名是有效的,則簽章驗證報告模塊將顯示位圖簽名驗證通過的報告,如果步驟403中經驗證的位圖簽名是無效的,則簽章驗證報告模塊顯示位圖簽名錯誤的警告;相應地,如果步驟404中經驗證的數字簽名是有效的,簽章驗證報告模塊將顯示數字簽名驗證通過的報告,如果步驟404中經驗證的數字簽名是無效的,則簽章驗證報告
18模塊顯示數字簽名錯誤的警告;步驟406 第三驗證模塊驗證數字簽章的有效性;優選地,如果步驟403中對位圖簽名的驗證和步驟404中對數字簽名的驗證均有效則通過數字簽章有效性的驗證,并顯示簽章有效;相應地,如果步驟403中對位圖簽名的驗證和步驟404中對數字簽名的驗證,有一者不通過驗證或兩者均不通過,則不通過簽章有效性的驗證,并顯示簽章無效。實施例2圖4,是本發明提供的第二種數字簽章系統B的方框示意圖,具體包括數字簽章生成裝置5,數字簽章驗證裝置6 ;數字簽章生成裝置5,用于完成數字簽章操作過程;數字簽章生成裝置5,具體包括信息獲取模塊501、第一生成模塊502,水印嵌入模塊503,管理模塊504,第二生成模塊505,信息發送模塊506,輸出模塊507 ;信息獲取模塊501 用于獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;第一生成模塊502,具體包括第一信息獲取單元502-1,第一簽名單元502_2 ;第一信息獲取單元502-1,用于獲取從信息獲取模塊501中的簽名所需要的用戶私鑰信息,還用于從文檔中獲取待簽名的明文信息;第一簽名單元502-2,用于選中待簽名的明文信息,用特定的加密算法對其進行計算得到密文信息,還用于使用用戶私鑰信息對密文信息進行簽名操作,形成數字簽名;所述特定的加密算法可以為散列算法。水印嵌入模塊503,用于使用水印算法將上述數字簽名進行變化,形成帶有數字簽名的水印信息;管理模塊504,具體包括位圖客戶端管理單元504-1、位圖獲取單元504_2 ;位圖客戶端管理單元504-1,用于管理驗證通過的位圖;位圖獲取單元504-2,用于從位圖客戶端管理單元504_1中獲取所需位圖;第二生成模塊505,具體包括第二信息獲取單元第一信息獲取單元505-1、水印添加單元505-2、第二簽名單元505-3 ;第二信息獲取單元505-1,用于從信息獲取模塊501中的獲取所述用戶私鑰信息;水印添加單元505-2,用于將水印嵌入模塊503生成的帶有數字簽名的水印信息添加到位圖獲取單元504-2獲取的位圖中,生成帶有數字簽名水印的位圖信息;第二簽名單元505-3,用于對生成的帶有數字簽名水印的位圖信息進行散列算法并進行簽名操作,形成位圖簽名,完成數字簽章過程;信息發送模塊506,用于將明文信息,帶有數字簽名水印的位圖信息、位圖簽名和用戶公鑰信息的數字簽章信息發送給數字簽章驗證裝置,或用于將位圖、明文信息,帶有數字簽名水印的位圖信息、位圖簽名和用戶公鑰信息發送給數字簽章驗證裝置;輸出模塊507,用于獲取水印添加單元505-2中帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域。數字簽章驗證裝置6,用于對生成的數字簽名和位圖簽名分別進行驗證,方法是數字簽章形成的逆過程;
數字簽章驗證裝置6具體包括驗證信息獲取模塊601,信息獲取模塊602,水印提取模塊603,第一驗證模塊604,第二驗證模塊605,驗證報告輸出模塊606,第三驗證模塊 607。驗證信息獲取模塊601,用于從信息發送模塊506發送的數字簽章信息中獲取所有驗證信息,包括位圖簽名、帶有數字簽名水印的位圖信息、明文信息,或用于從信息發送模塊506發送的數字簽章信息中獲取所有驗證信息,包括位圖簽名、帶有數字簽名水印的位圖信息、明文信息和位圖;用戶信息提取模塊602,用于獲取信息發送模塊506發送的用戶公鑰信息;水印提取模塊603,用于將驗證信息獲取模塊601中的帶有數字簽名水印的位圖信息進行分離操作得到位圖和帶有數字簽名的水印信息,還用于提取該帶有數字簽名的水印信息中的水印,得到數字簽名;第一驗證模塊604,具體包括第一驗證信息獲取單元604-1,第一生成單元 604-2,第一驗證單元604-3 ;第一驗證信息獲取單元604-1,用于獲取驗證信息獲取模塊601中的位圖簽名、帶有數字簽名水印的位圖信息和信息獲取模塊602中的用戶公鑰信息,或用于獲取水印提取模塊603中的帶有數字簽名的水印信息、驗證信息獲取模塊601中的位圖和位圖簽名,還用于獲取信息獲取模塊602中用戶公鑰信息;第一生成單元604-2,具體包括第一子單元604-2-1、第二子單元604-2-2 ;第一子單元604-2-1,用于使用散列算法對驗證信息獲取模塊601中的帶有數字簽名水印的位圖信息進行計算生成位圖信息散列值1,或用于將第一驗證信息獲取單元
604-1中帶有數字簽名的水印信息添加到由第一驗證信息獲取單元604-1獲取的位圖中形成新的帶數字簽名水印的位圖信息,并用散列算法對此新的帶數字簽名的水印的位圖信息進行計算,生成位圖信息散列值1’ ;第二子單元604-2-2 用于對第一驗證信息獲取單元604_1獲取的位圖簽名進行驗證生成位圖信息散列值2;第一驗證單元603-4 用于對第一子單元604_2_1和第二子單元604_2_2分別生成的位圖信息散列值(1和2或1’和2)進行比較,通過比較得知位圖簽名是否有效從而得知位圖是否被改動或者被替換;第二驗證模塊605,具體包括第二驗證信息獲取單元605-1,第二生成單元
605-2、第二驗證單元605-3;第一驗證信息獲取單元605-1,用于獲取水印提取模塊603中的數字簽名,用于獲取驗證信息獲取模塊601中的明文信息,還用于獲取信息獲取模塊602中的用戶公鑰信息;第一生成單元605-2 具體包括第三子單元605_2_1、第四子單元605_2_2 ;第三子單元605-2-1 用于使用特定加密算法對第一驗證信息獲取單元605_1獲取的明文信息進行計算生成密文信息1 ;第四子單元605-2-2 用于使用用戶公鑰信息對第一驗證信息獲取單元605_1獲取的數字簽名進行驗證得到密文信息2 ;第二驗證單元605-3 用于對第三子單元605-2-1和第四子單元605_2_2分別生成的密文信息進行比較,通過比較得知數字簽名是否有效,從而得知明文信息是否被篡改;驗證報告輸出模塊606,具體包括第一報告單元606-1,第二報告單元606-2 ;第一報告單元606-1,用于顯示位圖簽名驗證的結果;具體地,第一驗證模塊604對位圖簽名驗證以后,如果驗證結果通過則第一報告單元606-1顯示驗證通過,如果位圖簽名驗證不通過則由第一報告單元606-1顯示錯誤警告。第二報告單元606-2,用于顯示數字簽名驗證的結果;具體地,第二驗證模塊605對數字簽名進行驗證以后,如果驗證結果通過則第二報告單元606-2顯示驗證通過,如果數字簽名驗證不通過則由第二報告單元606-2顯示錯
誤警告。第三驗證模塊607,用于驗證數字簽章結果的有效性;具體地,當第一驗證模塊604驗證位圖簽名和第二驗證模塊605驗證數字簽名都通過以后第三驗證模塊607驗證簽章有效,并顯示簽章有效性驗證通過的報告;相應的,當第一驗證模塊604驗證位圖簽名和第二驗證模塊605驗證數字簽名一者不通過驗證或者兩者都不通過驗證時第三驗證模塊607驗證簽章無效,并顯示簽章有效性驗證錯誤的警告。圖5,是本實施例針對圖4所示數字簽章系統提供的數字簽章生成方法流程圖,本實施例中,數字簽章的過程分為兩部分進行,第一部分是對明文信息進行數字簽名,第二部分是利用數字簽名結果和位圖,完成對位圖進行簽名的操作,從而使得明文信息和位圖都得到更好的保護,實現防偽、防篡改的效力,具體步驟如下步驟701 信息獲取模塊獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;步驟702 第一生成模塊對明文信息進行簽名操作,生成數字簽名;優選地,如圖5-1所示步驟702具體包括步驟702-1 第一生成模塊獲取待簽名的部分或者全部明文信息,并使用散列算法計算明文得信息得到固定位數的密文信息;其中,散列算法,S卩加密過程中無需使用密鑰,輸入明文信息后由直接經過加密算法處理成密文,加密后的數據是無法被解密,只有輸入相同的明文信息經過相同的散列算法才能得到相同的密文信息;步驟702-2 第一生成模塊使用用戶私鑰信息對上述密文信息進行加密操作,生成密文信息的數字簽名;步驟703 水印嵌入模塊為數字簽名添加水印,具體為,水印嵌入模塊使用水印算法將步驟702中已經生成的數字簽名進行變化,形成帶數字簽名的水印信息;其中,水印算法可以是多種算法,但如果要對水印算法進行提取則水印算法必須是無損水印算法,以保證提取信息的時候不產生水印殘余信息,保證提取出來的信息的完整性。步驟704 管理模塊獲取位優選地,用戶的位圖可以從本地獲取,經過合法性驗證后方可以使用,對于從本地直接獲取的位圖分為兩種一種是存儲于用戶主機上的公章、個人簽名或者圖片,第二種是通過密鑰設備傳入用戶主機的位圖,例如,指紋,虹膜等帶有生物特征的位圖,其對該類位圖的形成和驗證均在智能密鑰設備內完成無需在線驗證,傳入文檔后可以直接使用;用戶的位圖可以通過網絡途徑獲取,對于從網絡上獲取的位圖要在線驗證其合法性以后,存入到用戶主機中才可以使用。步驟705 第二生成模塊生成位圖簽名;優選地,如圖5-2所示步驟705具體包括步驟705-1 第二生成模塊添加步驟703中生成的水印信息到該位圖中生成帶有數字簽名水印的位圖信息;步驟705-2 第二生成模塊采用散列算法對上述的帶有數字簽名水印的位圖信息進行計算,生成位圖信息散列值;在步驟705-2中,散列算法可以是信息摘要5算法、哈希算法、或者其他的散列算法,散列算法是單向的加密過程是不可逆的過程,只有輸入相同的位圖文件經過相同的散列算法才能得到相同的散列值。步驟705-3 第二生成模塊使用用戶私鑰對步驟705_2中生成的位圖散列值進行加密操作,生成位圖簽名;其中,帶有數字簽名水印的位圖信息則作為數字簽章的圖標用于顯示。步驟706 信息發送模塊將明文信息,帶有數字簽名水印的位圖信息,位圖簽名和用戶公鑰信息發送給數字簽章驗證裝置;為確保驗證位圖簽名的安全性,步驟706也可以替換為步驟706’ 信息發送模塊將明文信息,帶有數字簽名水印的位圖信息,位圖,位圖簽名和用戶公鑰信息發送給數字簽章驗證裝置。步驟707 輸出模塊在指定區域內顯示數字簽章的圖標;優選地,輸出模塊將生成的帶數字簽名水印的位圖信息做為數字簽章的圖標添加文檔控件中,并在某一區域內顯示數字簽章的圖標;圖6,是本實施例提供的與圖5對應的數字簽章的驗證方法流程圖,通過對位圖簽名和數字簽名分別進行驗證的方法來實現的,更好的驗證了數字簽章的有效性和用戶的真實性,具體步驟如下步驟801 驗證信息獲取模塊獲取驗證信息;優選地,信息獲取模塊從發給數字簽章驗證裝置的數字簽章信息中獲取所有信息,具體包括位圖簽名、帶有數字簽名水印的位圖信息、明文信息;步驟802 用戶信息提取模塊獲取用戶公鑰信息;步驟803 水印提取模塊提取水印算法;具體地水印提取模塊將驗證信息獲取模塊中的帶有數字簽名水印的位圖信息進行分離,得到帶數字簽名的水印信息和位圖;并從帶有數字簽名的水印信息中提取水印算法,得到數字簽名,由于水印算法是無損水印算法,故得到的數字簽名是完整的;步驟804 第一驗證模塊驗證位圖簽名;優選地如圖6-1所示步驟804具體包括
22
步驟804-1 第一驗證模塊將驗證信息獲取模塊中的帶有數字簽名水印的位圖信息用散列算法進行計算生成位圖信息散列值1 ;步驟804-2 第一驗證模塊獲取驗證信息獲取模塊中的位圖簽名,利用用戶公鑰信息對該位圖簽名進行驗證,得到位圖信息散列值2 ;步驟804-3 第一驗證模塊將對位圖信息散列值1和位圖信息散列值2進行比較, 并判斷比較結果是否一致,如果比較結果一致則證明位圖未被篡改,如果比較結果不一致則證明位圖簽名無效即該位圖有信息丟失或者被篡改,驗證完畢后執行步驟806 ;步驟805 第二驗證模塊驗證數字簽名優選地,如圖6-2所示步驟805具體包括步驟805-1 第二驗證模塊獲取驗證信息獲取模塊中的明文信息,用特定加密算法對該明文信息進行加密得到密文信息1,該特定加密算法可采用散列算法;步驟805-2 第二驗證模塊獲取水印提取模塊中的數字簽名,利用用戶公鑰信息對該數字簽名進行驗證,得到密文信息2 ;步驟805-3 第二驗證模塊將密文信息1與密文信息2進行比較,并判斷比較結果是否一致,如果比較結果一致則證明明文信息是完整的,即所驗證的數字簽名是有效的,如果比較結果不一致則證明明文信息有遺漏或者被篡改,即所驗證的數字簽名是無效的,驗證完畢后執行步驟806 ;其中步驟804和步驟805的順序可調換。步驟806 驗證報告輸出模塊顯示驗證結果;優選地如果步驟804中經驗證的位圖簽名是有效的,則簽章驗證報告模塊將顯示位圖簽名驗證通過的報告,如果步驟804中經驗證的位圖簽名是無效的,則簽章驗證報告模塊顯示位圖簽名錯誤的警告;如果步驟805中經驗證的數字簽名是有效的,簽章驗證報告模塊將顯示數字簽名驗證通過的報告,如果步驟805中經驗證的數字簽名是無效的,則簽章驗證報告模塊顯示數字簽名錯誤的警告;步驟807 第三驗證模塊驗證數字簽章的有效性;優選地,如果步驟804中對位圖簽名的驗證和步驟805中對數字簽名的驗證均有效則通過數字簽章有效性的驗證,并顯示簽章有效;如果步驟804中對位圖簽名的驗證和步驟805中對數字簽名的驗證,有一者不通過驗證或兩者均不通過,則不通過簽章有效性的驗證,并顯示簽章無效。為避免上述驗證方法中獲取的位圖簽名和位圖信息在傳送過程中被修改,增加位圖簽名驗證的安全性,數字簽章還可以用如圖7所示的方法進行驗證步驟801,驗證信息獲取模塊獲取驗證信息;優選地,信息獲取模塊從發給數字簽章驗證裝置的數字簽章信息中獲取所有待驗證信息,具體包括位圖簽名、帶有數字簽名水印的位圖信息、明文信息和位圖。步驟802’ 信息獲取模塊獲取用戶公鑰信息;步驟803’ 水印提取模塊提取水印算法;具體地水印提取模塊將驗證信息獲取模塊中的帶有數字簽名水印的位圖信息進行分離,得到帶數字簽名的水印信息和位圖;并從帶有數字簽名的水印信息中提取水印算法,得到數字簽名,由于水印算法是無損水印算法,故得到的數字簽名是完整的;
步驟804’ 第一驗證模塊驗證位圖簽名;
優選地步驟804具體包括步驟804’ -1 第一驗證模塊獲取水印提取模塊中的帶數字簽名的水印信息和驗證信息獲取模塊中的位圖;步驟804’ -2 第一驗證模塊將上述帶數字簽名的水印信息和位圖進行疊加,生成帶數字簽名水印的位圖信息,并用散列算法對所述位圖信息進行計算生成位圖信息散列值 1 ;步驟804’ -3 第一驗證模塊獲取驗證信息獲取模塊中的位圖簽名,利用用戶公鑰信息對該位圖簽名進行驗證,得到位圖信息散列值2 ;步驟804’ -4 第一驗證模塊將對位圖信息散列值1和位圖信息散列值2進行比較,如果比較結果一致則證明位圖未被篡改,如果比較結果不一致則證明位圖簽名無效即該位圖有信息丟失或者被篡改,驗證完畢后執行步驟806 ;步驟805’ 第二驗證模塊驗證數字簽名優選地,步驟805’具體包括步驟805’ -1 第二驗證模塊獲取驗證信息獲取模塊中的明文信息,用特定加密算法(如散列算法)對該明文信息進行加密得到密文信息1 ;步驟805’ -2 第二驗證模塊獲取水印提取模塊中的數字簽名,利用用戶公鑰信息對該數字簽名進行驗證,得到密文信息2 ;步驟805,-3 第二驗證模塊將密文信息1與-密文信息2進行比較,如果比較結果一致則證明明文信息是完整的,即所驗證的數字簽名是有效的,如果比較結果不一致則證明明文信息有遺漏或者被篡改,即所驗證的數字簽名是無效的,驗證完畢后執行步驟806’ ; 其中步驟804’和步驟805’的順序可調換。步驟806’ 驗證報告輸出模塊顯示驗證結果;優選地如果步驟804’中經驗證的位圖簽名是有效的,則簽章驗證報告模塊將顯示位圖簽名驗證通過的報告,如果步驟804’中經驗證的位圖簽名是無效的,則簽章驗證報告模塊顯示位圖簽名錯誤的警告;如果步驟805’中經驗證的數字簽名是有效的,簽章驗證報告模塊將顯示數字簽名驗證通過的報告,如果步驟805’中經驗證的數字簽名是無效的,則簽章驗證報告模塊顯示數字簽名錯誤的警告;步驟807’ 第三驗證模塊驗證數字簽章的有效性;優選地,如果步驟804’中對位圖簽名的驗證和步驟805’中對數字簽名的驗證均有效則通過數字簽章有效性的驗證,并顯示簽章有效;如果步驟804’中對位圖簽名的驗證和步驟805’中對數字簽名的驗證,有一者不通過驗證或兩者均不通過,則不通過簽章有效性的驗證,并顯示簽章無效。本發明通過在數字簽章過程中分別對明文信息和位圖進行簽名的操作,確保了文檔的安全性;又通過在數字簽章驗證過程中分別對位圖簽名和數字簽名進行驗證的操作, 確保了文檔的真實性,同時具有防篡改效力,本發明中數字簽章過程和數字簽章驗證過程都為文檔提供了雙重保護,與原有技術相比,更能起到對文檔保護的作用。以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明公開的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種數字簽章系統,包括數字簽章生成裝置和數字簽章驗證裝置,其特征在于 所述數字簽章生成裝置用于完成數字簽章操作過程,其包括信息獲取模塊、第一生成模塊、水印嵌入模塊、管理模塊、第二生成模塊、信息發送模塊和輸出模塊;所述信息獲取模塊,用于獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;所述第一生成模塊,用于獲取明文信息并對其進行簽名操作,生成數字簽名; 所述水印嵌入模塊,用于使用水印算法將所述數字簽名進行變化形成帶有數字簽名的水印信息;所述管理模塊,用于管理和獲取驗證通過的位圖;所述第二生成模塊,用于對所述帶有數字簽名的水印信息和所述位圖進行操作,生成帶有數字簽名水印的位圖信息,并對其進行簽名操作,生成位圖簽名;所述信息發送模塊,用于將所述位圖、所述明文信息、待驗證數字簽名信息、所述位圖簽名和所述信息獲取模塊中的用戶公鑰信息發送給所述數字簽章驗證裝置,所述的待驗證數字簽名信息為第一生成模塊中的數字簽名或所述第二生成模塊中的帶有數字簽名水印的位圖信息;所述輸出模塊,用于將所述第二生成模塊生成的帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域;所述數字簽章驗證裝置用于對數字簽章生成裝置所生成的數字簽名和位圖簽名分別進行驗證,其包括驗證信息獲取模塊、用戶信息提取模塊、第一驗證模塊、第二驗證模塊、 驗證報告輸出模塊和第三驗證模塊;所述驗證信息獲取模塊,用于獲取所述信息發送模塊發送的部分信息,包括所述位圖、 所述明文信息、所述位圖簽名和所述待驗證數字簽名信息,該待驗證數字簽名信息為第一生成模塊中的數字簽名或所述第二生成模塊中的帶有數字簽名水印的位圖信息; 所述用戶信息提取模塊,用于獲取所述信息發送模塊發送的用戶公鑰信息; 所述第一驗證模塊,用于對位圖簽名進行驗證; 所述第二驗證模塊,用于對數字簽名進行驗證;所述驗證報告輸出模塊,用于分別報告所述第一驗證模塊和所述第二驗證模塊的驗證結果;所述第三驗證模塊,用于驗證所述數字簽章是否合法有效。
2.根據權利要求1所述的數字簽章系統,其特征在于,所述第一生成模塊包括第一信息獲取單元和第一簽名單元,所述第一信息獲取單元用于從文檔中獲取待簽名的明文信息并從信息獲取模塊中獲取用戶私鑰信息;所述第一簽名單元用于選中所述第一信息獲取單元中的待進行簽名的全部或者部分明文信息,用散列算法計算得到密文信息,然后使用所述第一信息獲取模塊中獲得的用戶私鑰信息對該密文信息進行簽名操作,生成數字簽名。
3.根據權利要求2所述的數字簽章系統,其特征在于,所述管理模塊包括位圖客戶端管理單元和位圖獲取單元,位圖客戶端管理單元用于管理驗證通過的位圖,位圖獲取單元用于從所述位圖客戶端管理單元中獲取所需位圖。
4.根據權利要求3所述的數字簽章系統,其特征在于,所述位圖為存儲于用戶主機上的公章、個人簽名、圖片或具有生物特征的指紋、虹膜。
5.根據權利要求3所述的數字簽章系統,其特征在于,所述第二生成模塊包括第二信息獲取單元、水印添加單元和第二簽名單元,所述第二信息獲取單元用于獲取信息獲取模塊中的用戶私鑰信息; 所述水印添加單元用于將所述水印嵌入模塊生成的帶有數字簽名的水印信息添加到所述位圖獲取單元獲得的位圖中,生成帶有數字簽名水印的位圖信息;所述第二簽名單元,用于對所述水印添加單元中生成的帶有數字簽名水印的位圖信息進行散列算法,生成位圖信息散列值,然后再使用第二信息獲取單元獲取的用戶私鑰信息對該位圖信息散列值進行簽名操作,形成位圖簽名。
6.根據權利要求5所述的數字簽章系統,其特征在于,所述待驗證數字簽名信息為所述第二生成模塊中的帶有數字簽名水印的位圖信息,所述數字簽章驗證裝置還包括水印提取模塊,其用于將所述驗證信息獲取模塊中的帶有數字簽名的位圖信息進行分離操作,得到位圖和帶有數字簽名的水印信息,而后再提取所述帶有數字簽名的水印信息中的水印, 得到數字簽名。
7.根據權利要求6所述的數字簽章系統,其特征在于,所述第一驗證模塊包括第一驗證信息獲取單元、第一生成單元和第一驗證單元,所述第一驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的位圖、位圖簽名、所述用戶信息提取模塊中的用戶公鑰信息和所述水印提取模塊中的水印信息; 所述第一生成單元包括第一子單元和第二子單元;所述第一子單元,用于將第一驗證信息獲取單元中的水印信息添加到所述第一驗證信息獲取單元所獲取的位圖中,形成新的帶數字簽名水印的位圖信息,并用散列算法對此新的帶數字簽名水印的位圖信息進行計算,生成位圖信息散列值;所述第二子單元,用于使用所述第一驗證信息獲取單元中的用戶公鑰信息對其獲取的位圖簽名進行驗證,生成另一位圖信息散列值;所述第一驗證單元用于對所述第一子單元和所述第二子單元分別生成的位圖信息散列值進行比較,通過比較得知所述位圖簽名是否有效從而得知位圖是否被改動或者被替換。
8.根據權利要求7所述的數字簽章系統,其特征在于,所述第二驗證模塊包括第二驗證信息獲取單元、第二生成單元和第二驗證單元;所述第二驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的明文信息、用戶信息提取模塊中的用戶公鑰信息和所述水印提取模塊中的數字簽名; 所述第二生成單元包括第三子單元和第四子單元,所述第三子單元,用于用散列算法對所述第二驗證信息獲取單元獲取的明文信息進行計算生成密文信息;所述第四子單元,用于使用第二驗證信息獲取單元中的用戶公鑰信息對其獲取的數字簽名進行驗證得到另一密文信息;所述第二驗證單元,用于對所述第三子單元和所述第四子單元分別生成的密文信息進行比較,通過比較得知所述數字簽名是否有效,從而得知所述明文信息是否被篡改。
9.根據權利要求5所述的數字簽章系統,其特征在于,所述待驗證數字簽名信息為第一生成模塊中的數字簽名,所述第一驗證模塊包括第一驗證信息獲取單元、第一生成單元和第一驗證單元,所述第一驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的位圖、數字簽名、位圖簽名和所述用戶信息提取模塊中的用戶公鑰信息;所述第一生成單元包括第一子單元和第二子單元;所述第一子單元,用于對所述第一驗證信息獲取單元獲取的數字簽名添加水印算法形成新的帶有數字簽名的水印信息,然后將此新的水印信息添加到由第一驗證信息獲取單元獲取的位圖中,形成新的帶數字簽名水印的位圖信息,并用散列算法對此新的帶數字簽名水印的位圖信息進行計算,生成位圖信息散列值;所述第二子單元,用于使用所述第一驗證信息獲取單元中的用戶公鑰信息對其獲取的位圖簽名進行驗證,生成位圖信息散列值;所述第一驗證單元用于對所述第一子單元和所述第二子單元分別生成的位圖信息散列值進行比較,通過比較得知所述位圖簽名是否有效從而得知位圖是否被改動或者被替換。
10.根據權利要求9所述的數字簽章系統,其特征在于,所述第二驗證模塊包括第二驗證信息獲取單元、第二生成單元和第二驗證單元;所述第二驗證信息獲取單元,用于獲取所述驗證信息獲取模塊中的明文信息和數字簽名,還用于獲取所述用戶信息提取模塊中的用戶公鑰信息;所述第二生成單元包括第三子單元和第四子單元;所述第三子單元,用于用散列算法對所述第二驗證信息獲取單元獲取的明文信息進行計算生成密文信息;所述第四子單元,用于使用第二驗證信息獲取單元中的用戶公鑰信息對其獲取的數字簽名進行驗證得到另一密文信息;所述第二驗證單元,用于對所述第三子單元和所述第四子單元分別生成的密文信息進行比較,通過比較得知所述數字簽名是否有效,從而得知所述明文信息是否被篡改。
11.根據權利要求2-10任意一項所述的數字簽章系統,其特征在于,所述散列算法是信息摘要5算法或哈希算法。
12.根據權利要求8或10所述的數字簽章系統,其特征在于,所述驗證報告輸出模塊包括第一報告單元和第二報告單元;所述第一報告單元,用于報告所述第一驗證模塊對所述位圖簽名驗證的結果,如果位圖簽名驗證結果通過則所述第一報告單元報告驗證通過,如果所述位圖簽名驗證不通過則由所述第一報告單元報告驗證錯誤;所述第二報告單元,用于報告所述第二驗證模塊對所述數字簽名驗證的結果,如果數字簽名驗證結果通過則所述第二報告單元報告驗證通過,如果所述數字簽名驗證不通過則由所述第二報告單元報告驗證錯誤。
13.根據權利要求12所述的數字簽章系統,其特征在于,所述第三驗證模塊,用于驗證數字簽章的有效性,當所述第一驗證模塊驗證所述位圖簽名和所述第二驗證模塊驗證所述數字簽名都通過,所述第三驗證模塊驗證所述數字簽章有效,并報告簽章有效;當所述第一驗證模塊驗證所述位圖簽名和所述第二驗證模塊驗證所述數字簽名一者不通過驗證或者兩者都不通過驗證,所述第三驗證模塊驗證所述簽章無效,并報告簽章無效。
14.根據權利要求13所述的數字簽章系統,其特征在于,所述報告驗證結果的方式為 以顯示的方式輸出結果,或以發聲的方式輸出結果,或以顯示和發聲結合的方式輸出結果。
15.一種數字簽章的方法,包括數字簽章生成過程和數字簽章驗證過程,其特征在于, 所述數字簽章生成過程包括生成數字簽名和生成位圖簽名兩部分,包括下列步驟步驟A 信息獲取模塊獲取用戶密鑰信息,所述用戶密鑰信息包括用戶公鑰信息和用戶私鑰信息;步驟B 第一生成模塊對明文信息進行簽名操作,生成數字簽名; 步驟C 水印嵌入模塊使用水印算法將步驟B中已經生成的數字簽名進行變化形成帶數字簽名的水印信息;步驟D 管理模塊獲取位圖;步驟E 第二生成模塊對步驟C中的水印信息和步驟D中的位圖進行操作形成位圖信息,然后再對該位圖信息進行簽名,生成位圖簽名;步驟F 信息發送模塊將數字簽章信息發送給驗證信息獲取模塊進行驗證,還將用戶公鑰信息發送給用戶信息提取模塊;步驟G 輸出模塊顯示數字簽章的圖標;所述數字簽章驗證過程包括對位圖簽名的驗證和對數字簽名的驗證,包括下列步驟 步驟A’ 驗證信息獲取模塊獲取所述數字簽章信息; 步驟B’ 用戶信息提取模塊獲取所述用戶公鑰信息; 步驟C’ 第一驗證模塊驗證所述位圖簽名; 步驟D’ 第二驗證模塊驗證所述數字簽名;步驟E’ 驗證報告輸出模塊報告所述第一驗證模塊和所述第二驗證模塊的驗證結果; 步驟F’ 第三驗證模塊驗證數字簽章的有效性。
16.根據權利要求15所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟B具體為所述第一生成模塊用散列算法對所述明文信息進行計算生成密文信息,再使用所述步驟A中獲取的用戶私鑰信息對所述密文信息進行簽名操作,形成數字簽名。
17.根據權利要求16所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟D中的位圖包括存儲于用戶主機上的公章、個人簽名、圖片或具有生物特征的指紋、虹膜。
18.根據權利要求16所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟E具體為所述第二生成模塊將所述步驟C中的帶數字簽名的水印信息添加到所述步驟 D中的位圖中生成帶數字簽名水印的位圖信息,再使用所述用戶私鑰信息對所述位圖信息進行簽名形成位圖簽名。
19.根據權利要求18所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟G具體為輸出模塊將所述第二生成模塊生成的帶有數字簽名水印的位圖信息添加到文檔控件中作為數字簽章的圖標顯示在指定區域。
20.根據權利要求19所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟D和數字簽章驗證過程的步驟A’中的數字簽章信息包括所述明文信息、所述帶有數字簽名水印的位圖信息和位圖簽名。
21.根據權利要求20所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟C’具體為步驟Cl’ 所述第一驗證模塊將所述步驟A’中的帶數字簽名水印的位圖信息進行計算生成位圖信息散列值;步驟C2’所述第一驗證模塊獲取步驟A’中的位圖簽名,并用所述步驟B’中獲取的用戶公鑰信息對所述位圖簽名進行驗證操作,得到另一位圖信息散列值;步驟C3’ 所述第一驗證模塊對步驟C2’和步驟C3’分別得到的兩個位圖信息進行比較,如果比較結果一致則證明所述位圖是信的,即所驗證的所述位圖簽名是有效的,如果比較結果不一致則證明所述位圖簽名無效即所述位圖簽名有信息丟失或者被篡改。
22.根據權利要求21所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟D’具體為步驟D1’ 水印提取模塊將所述步驟A’中的帶有數字簽名的位圖信息進行分離操作,得到位圖和帶有數字簽名的水印信息,而后再提取所述帶有數字簽名的水印信息中的水印, 得到數字簽名;步驟D2’ 所述第二驗證模塊獲取所述步驟A’中的明文信息,再用散列算法對所述明文信息進行加密,得到密文信息;步驟D3’所述第二驗證模塊再使用步驟B’中獲取的用戶公鑰信息對所述步驟D1’中的數字簽名進行驗證操作,得到另一密文信息;步驟D4’ 所述第二驗證模塊將得到的兩個密文信息進行比較,如果比較結果一致則證明所述明文信息是完整的,即所述數字簽名是有效的,如果比較結果不一致則證明所述數字簽名無效即所述明文信息有遺漏或者被篡改。
23.根據權利要求19所述的數字簽章方法,其特征在于,所述數字簽章生成過程的步驟D和數字簽章驗證過程的步驟A’中的數字簽章信息包括所述明文信息、所述位圖、所述數字簽名和所述位圖簽名。
24.根據權利要求23所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟C’具體為首先所述第一驗證模塊獲取步驟A’中的所述數字簽名和位圖,將該數字簽名做為載體嵌入到水印算法中,形成新的帶數字簽名的水印信息;然后將該新的帶數字簽名的水印信息添加到獲得的位圖中,生成新的帶數字簽名水印的位圖信息,并用散列算法對新的位圖信息進行計算生成位圖信息散列值;其次所述第一驗證模塊獲取步驟A’中的位圖簽名,并用步驟B’中的所述用戶公鑰信息對該位圖簽名進行解密操作,生成另一位圖信息散列值;最后所述第一驗證模塊將對生成的兩個位圖信息散列值進行比較,如果比較結果一致則證明所述位圖是信的,即所驗證的所述位圖簽名是有效的,如果比較結果不一致則證明所述位圖簽名無效即所述位圖有信息丟失或者被篡改。
25.根據權利要求M所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟D’具體為首先所述第二驗證模塊獲取所述步驟A’中的明文信息,再用散列算法對該明文信息進行加密,得到密文信息;其次所述第二驗證模塊使用步驟B’中獲取的用戶公鑰信息對所述步驟A’中獲取的數字簽名進行驗證操作,得到另一密文信息;最后所述第二驗證模塊將得到的兩個密文信息進行比較,如果比較結果一致則證明所述明文信息是完整的,即所述數字簽名是有效的,如果比較結果不一致則證明所述數字簽名無效即所述明文信息有遺漏或者被篡改。
26.根據權利要求16-25任意一項所述的數字簽章方法,其特征在于,所述散列算法是信息摘要5算法或哈希算法。
27.根據權利要求22或25所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟E’具體為如果所述步驟C’中經驗證的所述位圖簽名是有效的,所述輸出模塊將報告所述位圖簽名驗證通過,如果所述步驟C’中經驗證的所述位圖簽名是無效的,則所述輸出模塊報告所述位圖簽名錯誤;如果所述步驟D ’中經驗證的所述數字簽名是有效的,所述輸出模塊將報告所述數字簽名驗證通過,如果所述步驟E’中經驗證的所述數字簽名是無效的,則所述輸出模塊報告所述數字簽名錯誤。
28.根據權利要求27所述的數字簽章方法,其特征在于,所述數字簽章驗證過程的步驟F,具體為如果所述步驟C’中對所述位圖簽名的驗證和所述步驟D’中對所述數字簽名的驗證均有效,則通過所述數字簽章有效性的驗證,并報告簽章有效;相應地,如果所述步驟C’中對所述位圖簽名的驗證和所述步驟D’中對所述數字簽名的驗證,有一者不同過驗證或兩者均不通過,則不通過所述簽章有效性的驗證,并報告所述簽章無效。
29.根據權利要求觀所述的數字簽章方法,其特征在于,所述報告的方式是以顯示的方式輸出結果,或以發聲的方式輸出結果,或以顯示和發聲結合的方式輸出結果。
全文摘要
本發明提供一種數字簽章方法,包括獲取用戶密鑰信息;對明文信息進行簽名操作生成數字簽名;使用水印算法將數字簽名進行變化形成帶數字簽名的水印信息;獲取位圖;對水印信息和位圖進行操作并進行簽名生成位圖簽名;將數字簽章信息和用戶公鑰信息進行發送;將數字簽章的圖標顯示出來;獲取所述數字簽章信息和用戶公鑰信息;驗證所述位圖簽名和數字簽名;報告所述位圖簽名和數字簽名的驗證結果;驗證數字簽章的有效性。本發明還提供一種數字簽章系統。本發明通過分別對明文信息和位圖進行簽名,確保了文檔的安全性;且分別對位圖簽名和數字簽名進行驗證,確保了文檔的真實性,同時具有防篡改效力。
文檔編號H04L9/32GK102164037SQ201110079899
公開日2011年8月24日 申請日期2011年3月31日 優先權日2011年3月31日
發明者于華章, 陸舟 申請人:北京飛天誠信科技有限公司