中文字幕无码日韩视频无码三区

數字簽名方法、數字簽名的驗證方法、裝置及系統的制作方法

文檔序號:7761970閱讀:567來源(yuan):國知局
專利名稱:數字簽名方法、數字簽名的驗證方法、裝置及系統的制作方法
技術領域
本發明涉及一種網絡信息加密技術,尤其涉及一種可有效防止降級攻擊的數字簽 名方法、數字簽名的驗證方法、裝置及系統。
背景技術
隨著網絡技術的飛速發展,網絡安全問題日益重要,而信息加密技術則是網絡安 全技術中的核心技術。數字簽名(Digital Signatures)是眾多信息加密技術中使用較為 廣泛的技術,它是保證信息傳輸的保密性、數據交換的完整性、發送信息的不可否認性、交 易者身份的確定性的一種有效的解決方案,是電子商務安全性的重要部分。現有技術中,數字簽名方案有多種,例如RSA(Ron Rivest、Adi Shamir&Leonard Adleman)簽名、基于數字信封的數字簽名、基于消息摘要的數字簽名方案等。其中,基于消 息摘要的數字簽名方案包括先采用消息摘要的算法為需加密的報文形成消息摘要值,再 用RSA編碼法對該消息摘要值計算形成數字簽名。該方法通過消息摘要值保證了報文數據 的完整性,通過RSA編碼法保證了報文數據的保密性,同時由于消息摘要值長度遠小于報 文數據長度,大大減小了 RSA編碼的工作量。上述基于消息摘要的數字簽名方案中的消息摘要(Message Digest,簡稱為MD) 是一種編碼方法,它采用單向哈希(Hash)函數將需加密的任意長度的消息形成為一串固 定長度的消息摘要值,且不同的消息形成的消息摘要值結果不同,而同樣的消息形成的消 息摘要值必定一致。消息摘要的一個重要屬性就是不可逆性(irreversibility),即給定一 個消息摘要值,要想計算出它所對應的消息應當是極其困難的。消息摘要的另一個重要屬 性就是要想產生具有相同消息摘要值的兩條消息M和M'是困難的,該屬性被稱作抗沖突 性(collision resistance).實際上,任何抵御沖突發生的消息摘要的強度只有消息摘要 值的一半,因此一個128位的消息摘要值避免發生沖突的強度只有64位,也就是說需要大 約264次操作才會產生一次沖突,即產生具有相同消息摘要值的另一條消息,從而保證了消 息的完整性。不同算法得出的消息摘要值長度不同,安全強度不同。如MD5得出的消息摘要值 長度為128位,SHA-I得出的消息摘要值長度為160位,因此,需要264次操作才能找到MD5 的一次沖突,而對于SHA-I則是28°次操作。現有技術存在的缺陷在于經過現有的基于消息摘要的數字簽名方案所加密的信 息,在網絡中傳輸時容易遭受降級攻擊,攻擊者通過使用低安全級別的消息摘要算法替換 高級消息摘要算法來達到攻擊的目的。圖11為采用現有數字簽名技術的報文遭受降級攻擊的原理圖。如圖11所示,發 送端為提高數據傳輸的安全性,將原先所采用消息摘要算法MD5算法升級為SHA-I算法。 在進行數據傳輸時,發送端首先將待發送的報文A經SHA-I算法計算獲得消息摘要值h = SHA-I (A),再計算數字簽名RSA (h),然后將格式為報文A+數字簽名RSA (h)的數據發送給 接收方。
攻擊者在發送端升級消息摘要算法前已獲得了經過驗證的報文Al及數字簽名 RSA(hi),其中的hi為報文Al用升級前的低級消息摘要算法MD5進行計算得到的,即hi = MD5 (Al),攻擊者根據此消息摘要值進行碰撞運算,得到一個偽造的報文B,使得MD5 (B)= MD5 (Al)。攻擊者截獲發送端所發送的數據,將該數據中的數字簽名RSA(h)替換為 RSA (hl),再將其報文A替換為報文B,篡改后的數據格式為報文B+數字簽名RSA (hl),然 后攻擊者將此數據發送給接收端。接收端接收到經過篡改的數據后,先對RSA (hi)進行解密得到消息摘要值hl,再 將報文B用其攜帶的MD5算法進行計算,獲得MD5(B),因為MD5(B) =MD5(A1) =hl,所以 接收端無法判斷報文已遭篡改。因此,采用現有的基于消息摘要的數字簽名方法所加密的 信息,容易遭受降級攻擊。

發明內容
針對現有技術的缺陷,本發明提供一種數字簽名方法、數字簽名的驗證方法、裝置 及系統,可有效防止降級攻擊。本發明提供了一種數字簽名方法,包括對待傳輸的報文進行處理,獲得第一消息摘要值;從所述報文中選取至少一個報文片段;對所述報文片段分別進行處理,獲得對應的至少一個第二消息摘要值;采用數字簽名算法對所述第一消息摘要值及所述至少一個第二消息摘要值進行 加密,獲得最終數字簽名。本發明又提供了一種數字簽名的驗證方法,包括根據與報文發送方約定的方式對接收到的報文選取至少一個報文片段;根據與報文發送方約定的解密方式及數字簽名算法對接收到的最終數字簽名進 行解密,獲得第一消息摘要值及至少一個第二消息摘要值,所述第一消息摘要值與所述接 收到的報文對應,所述至少一個第二消息摘要值與所述至少一個報文片段對應;對所述接收到的報文進行處理,獲得第三消息摘要值;對所述報文片段分別進行處理,獲得對應的至少一個第四消息摘要值;對所述第一消息摘要值與所述第三消息摘要值進行比較;對所述至少一個第二消息摘要值與所述至少一個第四消息摘要值進行比較;在所述第一消息摘要值與所述第三消息摘要值相等,且所述至少一個第二消息摘 要值與所述至少一個第四消息摘要值全部相等的情況下,判定所述接收到的報文未受到降 級攻擊;否則,判定所述接收到的報文受到降級攻擊。本發明還提供了一種數字簽名裝置,包括第一消息摘要處理模塊,用于對待傳輸的報文進行處理,獲得第一消息摘要值;片段選取模塊,用于從所述報文中選取至少一個報文片段;第二消息摘要處理模塊,用于對所述報文片段進行處理,獲得對應的至少一個第 二消息摘要值;
數字簽名模塊,用于采用數字簽名算法對所述第一消息摘要值及所述至少一個第 二消息摘要值進行加密,獲得最終數字簽名。本發明再提供了一種數字簽名的驗證裝置,包括片段獲取模塊,用于根據與報文發送方約定的方式對接收到的報文選取至少一個 報文片段;解密模塊,用于根據與報文發送方約定的解密方式及數字簽名算法對接收到的最 終數字簽名進行解密,獲得第一消息摘要值及至少一個第二消息摘要值,所述第一消息摘 要值與所述接收到的報文對應,所述至少一個第二消息摘要值與所述至少一個報文片段對 應;第三消息摘要處理模塊,用于對所述接收到的報文進行處理,獲得第三消息摘要 值;第四消息摘要處理模塊,用于對所述報文片段分別進行處理,獲得對應的至少一 個第四消息摘要值;第一比較模塊,用于對所述第一消息摘要值與所述第三消息摘要值進行比較;第二比較模塊,用于對所述至少一個第二消息摘要值與所述至少一個第四消息摘 要值進行比較;判定模塊,用于在所述第一消息摘要值與所述第三消息摘要值相等,且所述至少 一個第二消息摘要值與所述至少一個第四消息摘要值全部相等的情況下,判定所述接收到 的報文未受到降級攻擊;否則,判定所述接收到的報文受到降級攻擊。本發明還提供了一種數字簽名系統,包括上述數字簽名裝置與上述數字簽名的 驗證裝置。由上述技術方案可知,本發明通過從報文中選取至少一個報文片段,并分別計算 報文及報文片段的消息摘要值,使得攻擊者必須同時找到至少兩個具有內在聯系的匹配消 息分別指向報文的消息摘要值及至少一個報文片段的消息摘要值,從而增加了降級攻擊的 難度,進而提高了數字簽名的安全性。下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。


圖1為本發明一實施例提供的數字簽名方法的流程圖;圖2為本發明一實施例提供的報文格式示意圖;圖3為本發明一實施例提供的最終數字簽名格式的示意圖;圖4為本發明一實施例提供的數字簽名的驗證方法的流程圖;圖5為本發明另一實施例提供的最終數字簽名格式的示意圖;圖6為本發明一實施例提供的數字簽名裝置的方框圖;圖7為本發明一實施例提供的數字簽名的驗證裝置的方框圖;圖8為本發明一實施例提供的數字簽名系統的方框圖;圖9為本發明一實施例提供的數字簽名模塊的方框圖;圖10為本發明另一實施例提供的數字簽名模塊的方框圖;圖11為采用現有數字簽名技術的報文遭受降級攻擊的原理圖。
具體實施例方式圖1為本發明一實施例提供的數字簽名方法的流程圖。如圖1所示,數字簽名方法包括步驟101 對待傳輸的報文進行處理,獲得第一消息摘要值;具體地,報文發送方首先需要根據安全需求指定消息摘要算法,根據該消息算法 對報文整體進行計算得到第一消息摘要值。步驟102 從報文中選取至少一個報文片段;具體地,可從報文中選取一個報文片段或多個報文片段,每一個報文片段可以為 報文發送方和報文接收方事先協商好的某字段或某幾位。選取的報文片段應盡可能減少沖突,使得當攻擊者對報文進行降級攻擊時,不容 易找到匹配原報文片段的消息文本而得到相同的消息摘要值。報文片段可以選取表示報文時間信息的字段,形成數字簽名,這種包含報文時間 信息的數字簽名稱為數字時間戳(digitaltime-stamp),它由網絡上專門的機構所提供的 數字時間戳服務(digital time-stamp service,簡稱為DTS)來形成。攻擊者要找到與數 字時間戳相匹配的消息文本而得到相同的消息摘要是非常困難的,需要同時滿足時間格式 特征和范圍(可能僅為一分鐘),這樣滿足的幾率非常低。當選取多個報文片段時,各報文片段可包含相同字段或相同位,即各報文片段具 有相互重疊的部分,也可以是多個報文片段中的某幾個報文片段具有相互重疊的部分。需要說明的是,報文片段并不局限于本實施例所描述的某字段或某幾位或表示報 文時間信息的字段,多個報文片段之間的相互重疊方式也不限于上述方式,任何本領域技 術人員所知的報文片段的選取方式都可用于實現本發明。步驟103 對報文片段分別進行處理,獲得對應的至少一個第二消息摘要值;具體地,當選取了一個報文片段時,發送方對所選取的報文片段進行計算得到一 個第二消息摘要值;當選取了多個報文片段時,發送方則對每一個報文片段分別進行計算, 得到對應的多個第二消息摘要值。計算每個報文片段的消息摘要值所采用的算法可以相同也可以不同,且當采用相 同算法對所有的報文片段進行計算時,這個算法也可以與計算報文的消息摘要值時所采用 的算法不同。現有技術通常將計算每個消息摘要時所采用算法的信息在報文發送前插入到報 文中,因此,接收方收到報文及數字簽名的同時,也接收到了每個消息摘要值所對應的消息 摘要算法。步驟104 采用數字簽名算法對所述第一消息摘要值及所述至少一個第二消息摘 要值進行加密,獲得最終數字簽名。具體的,該數字簽名算法是發送方與接收方共同約定的算法,采用該算法對第一 消息摘要值及至少一個第二消息摘要值進行加密時,可以對第一消息摘要值及至少一個第 二消息摘要值分別加密,得到對應的第一數字簽名及至少一個第二數字簽名,再將第一數 字簽名和至少一個第二數字簽名組合,獲得最終數字簽名。其中,至少一個第二數字簽名連 接在第一數字簽名的后面,而至少一個第二數字簽名的排列順序與選取的報文片段的順序
采用該算法對第一消息摘要值及至少一個第二消息摘要值進行加密時,還可將第 一消息摘要值及至少一個第二消息摘要值先進行組合,再對該組合的第一消息摘要值及至 少一個第二消息摘要值整體進行加密,獲得最終數字簽名。其中,至少一個第二消息摘要值 連接在第一消息摘要值的后面,而至少一個第二消息摘要值的排列順序與選取的報文片段 的順序一致。需要說明的是,對第一消息摘要值及至少一個第二消息摘要值進行加密的方式并 不限于上述兩種方式,還可以將部分消息摘要值整體加密而其他的消息摘要值分別進行加 密,然后將獲得的各數字簽名組合,以得到最終數字簽名。除上述方式外,任何對第一消息 摘要值及至少一個第二消息摘要值進行加密的方式都可用于實現本發明。本實施例的數字簽名方法中,不僅對報文整體進行了消息摘要計算,獲得了第一 消息摘要值,還對報文中的某一或某些片段進行了消息摘要計算,獲得了至少一個第二消 息摘要值,使得攻擊者必須同時找到至少兩個具有內在聯系的匹配消息分別指向第一消息 摘要值和至少一個第二消息摘要值。由于第二消息摘要值對應報文中的特定位置的一部 分,使得攻擊者所找到的匹配消息還要符合這一點,才能進行攻擊,增加了攻擊者的攻擊難 度,降低了報文被攻擊的危險,有效阻止了降級攻擊,滿足了報文及數字簽名的更高安全性 的需求。另外,本實施例的數字簽名方法中,對消息摘要值進行加密的方式有多種,發送方 和接收方可根據需要約定一種方式,進一步提高了數字簽名的安全性。圖2為本發明一實施例提供的報文格式的示意圖。圖3為本發明一實施例提供的 最終數字簽名格式的示意圖,如圖3所示的最終數字簽名是在選取一個報文片段的情況下 獲得的,其中包含對應于報文的第一數字簽名及對應于報文片段的一個第二數字簽名。如 圖2所示,報文201與最終數字簽名202 —起構成一個完整的數據。圖4為本發明一實施例提供的數字簽名的驗證方法的流程圖。參見圖4,數字簽名 的驗證方法包括步驟401 根據與報文發送方約定的方式對接收到的報文選取至少一個報文片 段。具體地,接受方對接收到的報文根據發送方和接收方共同約定方法選取一個或多 個報文片段。步驟402 根據與報文發送方約定的解密方式及數字簽名算法對接收到的最終數 字簽名進行解密,獲得對應于報文的第一消息摘要值及對應于報文片段的至少一個第二消 息摘要值。具體地,接受方對接收到的最終數字簽名根據與報文發送方約定的解密方式通過 數字簽名算法進行解密,該數字簽名算法由發送方和接收方共同約定,該解密方式與前述 數字簽名方法實施例中的加密方式相對應,即發送方采用一種加密方式,則接收方則采用 此方式對接收到的最終數字簽名進行解密。當步驟401中選取的報文片段是一個時,進行 解密后獲得對應于報文的一個第一消息摘要值及對應于報文片段的一個第二消息摘要值; 當步驟401中選取的報文片段是多個時,進行解密后獲得對應于報文的一個第一消息摘要 值及對應于多個報文片段的多個第二消息摘要值。
步驟403 對報文進行處理,獲得第三消息摘要值,并對至少一個報文片段分別進 行處理,獲得至少一個第四消息摘要值。具體地,對報文進行計算,獲得第三消息摘要值,并對選取的報文片段進行計算, 當選取一個報文片段時,計算后獲得一個第四消息摘要值;當選取多個報文片段時,計算后 獲得多個第四消息摘要值。計算報文或某一報文片段的消息摘要值時,將由步驟402中解密得到的對應該報 文或該報文片段的消息摘要算法取出,用該算法對該報文或該報文片段進行計算。步驟404 比較第一消息摘要值與第三消息摘要值。具體地,將第一消息摘要值與第三消息摘要值進行比較。當比較的結果為不相等 時,說明接收到的報文為受到篡改的報文,則轉到步驟407,判定報文遭受攻擊。當比較的結 果為相等時轉而執行步驟405。步驟405 比較第二消息摘要值與第四消息摘要值。當選取一個報文片段時,第二消息摘要值與第四消息摘要值分別為一個,將第二 消息摘要值與第四消息摘要值進行比較,當比較的結果為不相等時,說明接收到的報文為 受到篡改的報文,則轉到步驟407,判定報文遭受攻擊。當比較結果為相等時,說明接收到了 正確的報文,則轉到步驟406,判定報文未受攻擊。當選取多個報文片段時,第二消息摘要值與第四消息摘要值分別為多個,按選取 報文片段的順序,將對應于報文片段的每個第四消息摘要值依次與每個第二消息摘要值進 行比較。當出現第二消息摘要值與第四消息摘要值有一個不相等時,說明接收到的報文為 受到篡改的報文,則停止后續比較,轉到步驟407,判定報文遭受攻擊。當比較結果為全部相 等時,說明接收到了正確的報文,則轉到步驟406,判定報文未受攻擊。通過上述驗證方法可使接收方正確判定接收到的報文是否遭受降級攻擊,從而保 證了接收到數據的完整性和可靠性。需要說明的是,上述步驟404與步驟405之間并沒有限定執行的順序,即先比較第 一消息摘要值與第三消息摘要值,或者先比較第二消息摘要值與第四消息摘要值均可根據 實際需要進行適當選擇。圖6為本發明一實施例提供的數字簽名裝置的方框圖。參見圖6,數字簽名裝置 601包括第一消息摘要處理模塊603、片段選取模塊602、第二消息摘要處理模塊604、數字 簽名模塊605。其中,第一消息摘要處理模塊603用于對待傳輸的報文進行計算,獲得第一消息 摘要值。片段選取模塊602用于從待傳輸的報文中選取至少一個報文片段。第二消息摘要 處理模塊604用于對至少一個報文片段進行計算,獲得至少一個第二消息摘要值。數字簽 名模塊605用于采用數字簽名算法對第一消息摘要值及至少一個第二消息摘要值進行加 密,獲得最終數字簽名。對報文片段的選取方法詳見上述實施例中的說明,在此不再重復說 明。圖9為本發明一實施例提供的數字簽名模塊的方框圖,如圖9所示,數字簽名模塊 605包括第一數字簽名單元6051、第二數字簽名單元6052及第一組合單元6053。其中,第 一數字簽名單元6051用于對第一消息摘要值采用數字簽名算法進行加密,獲得第一數字 簽名;第二數字簽名單元6052用于對至少一個第二消息摘要值采用數字簽名算法分別進行加密,獲得至少一個第二數字簽名;第一組合單元6053,用于將第一數字簽名和至少一 個第二數字簽名進行組合,獲得最終數字簽名。至少一個第二數字簽名連接于第一數字簽 名的后面,且至少一個第二數字簽名的排列順序與選取的報文片段的順序一致。當選取的報文片段為η個時,最終數字簽名的格式如圖5所示。其中,第一數字簽 名表示對接收到的報文整體計算及加密后得到的數字簽名;第二數字簽名1表示對選取的 第1個報文片段計算及加密后得到的數字簽名;第二數字簽名2表示對選取的第2個報文 片段計算及加密后得到的數字簽名,以此類推,第二數字簽名η表示對選取的第η個報文片
段計算及加密后得到的數字簽名。第二數字簽名1、第二數字簽名2........第二數字簽名
η按報文片段的先后順序對應依次連接在第一數字簽名的后面,構成最終數字簽名。例如, 如果選取的η個報文片段的先后順序為第1個報文片段、第2個報文片段、...第η個報 文片段,則最終數字簽名如圖5所示。通過對選取的多個報文片段分別進行計算生成消息摘要值,使得攻擊者必須同時 找到多個匹配消息分別指向對應的消息摘要值,進一步增加了降級攻擊的難度,且選取的 報文片段的個數越多,報文受到攻擊的可能性就越低,從而進一步提高了數字簽名方法的 安全性。圖10為本發明另一實施例提供的數字簽名模塊的方框圖。如圖10所示,數字簽 名模塊605包括第二組合單元6054及第三數字簽名單元6055。其中,第二組合單元6054 用于將第一消息摘要值與至少一個第二消息摘要值進行組合;第三數字簽名單元6055用 于采用數字簽名算法對組合的第一消息摘要值與至少一個第二消息摘要值整體進行加密, 獲得所述最終數字簽名。至少一個第二消息摘要值連接于第一消息摘要值的后面,且至少 一個第二消息摘要值的排列順序與選取的報文片段的順序一致。圖7為本發明一實施例提供的數字簽名的驗證裝置的方框圖。參見圖7,數字簽名 的驗證裝置701包括片段獲取模塊702、解密模塊703、第三消息摘要處理模塊704、第四 消息摘要處理模塊705、第一比較模塊706、第二比較模塊707及判定模塊708。其中,片段獲取模塊702根據與報文發送方約定的方式對接收到的報文選取至少 一個報文片段;解密模塊703根據與報文發送方約定的解密方式采用數字簽名算法對接收 到的最終數字簽名進行解密,獲得第一消息摘要值及至少一個第二消息摘要值,該數字簽 名算法為與報文發送方約定的算法,第一消息摘要值與接收到的報文相對應,至少一個第 二消息摘要值與至少一個報文片段對應。該解密方式與發送方所采用的加密方式相對應。第三消息摘要處理模塊704對接收到的報文進行計算,獲得第三消息摘要值;第 四消息摘要處理模塊705對至少一個報文片段分別進行計算,獲得至少一個第四消息摘要 值。第三消息摘要處理模塊704在計算報文的消息摘要值時,或者第四消息摘要處理 模塊705在計算某一報文片段的消息摘要值時,先將由解密模塊703中解密得到的對應該 報文或該報文片段的消息摘要算法取出,用該算法對該報文或該報文片段進行計算。第一比較模塊706對第一消息摘要值與第三消息摘要值進行比較;第二比較模塊 707對至少一個第二消息摘要值與至少一個第四消息摘要值進行比較;判定模塊708根據 第一比較模塊706和第二比較模塊707的比較結果判定接收到的報文是否受到降級攻擊。本實施例中,判定模塊708具體用于在第一消息摘要值與第三消息摘要值相等,且至少一個第二消息摘要值與至少一個第四消息摘要值全部相等的情況下,判定接收到的 報文未受到降級攻擊;否則,判定接收到的報文受到降級攻擊。圖8為本發明一實施例提供的數字簽名系統的方框圖。參見圖8,數字簽名系統 801包括數字簽名裝置802與數字簽名的驗證裝置803。其中,數字簽名裝置802與數字簽 名的驗證裝置803已在上述實施例中詳細描述,在此不再重復描述。需要說明的是,上述各實施例的消息摘要算法及數字簽名算法并不限于實施例中 所列舉的算法,任何本領域技術人員所知的消息摘要算法及數字簽名算法,都可用于實現 本發明。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序 在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發明的技術方案而非對其進行限制, 盡管參照較佳實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依 然可以對本發明的技術方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修 改后的技術方案脫離本發明技術方案的精神和范圍。
權利要求
一種數字簽名方法,其特征在于,包括對待傳輸的報文進行處理,獲得第一消息摘要值;從所述報文中選取至少一個報文片段;對所述報文片段分別進行處理,獲得對應的至少一個第二消息摘要值;采用數字簽名算法對所述第一消息摘要值及所述至少一個第二消息摘要值進行加密,獲得最終數字簽名。
2.根據權利要求1所述的數字簽名方法,其特征在于,采用數字簽名算法對所述第一 消息摘要值及所述至少一個第二消息摘要值進行加密,獲得最終數字簽名包括采用所述數字簽名算法對所述第一消息摘要值進行加密,獲得第一數字簽名; 采用所述數字簽名算法對所述至少一個第二消息摘要值分別進行加密,獲得至少一個 第二數字簽名;將所述第一數字簽名和所述至少一個第二數字簽名進行組合。
3.根據權利要求1所述的數字簽名方法,其特征在于,采用數字簽名算法對所述第一 消息摘要值及所述至少一個第二消息摘要值進行加密,獲得最終數字簽名包括將所述第一消息摘要值與所述至少一個第二消息摘要值進行組合; 采用所述數字簽名算法對組合的所述第一消息摘要值與所述至少一個第二消息摘要 值整體進行加密,獲得所述最終數字簽名。
4.根據權利要求1-3任一項所述的數字簽名方法,其特征在于,從所述報文中選取至 少一個報文片段包括從所述報文中選取至少一個字段或至少一位。
5.根據權利要求1-3任一項所述的數字簽名方法,其特征在于,從所述報文中選取至 少一個報文片段包括從所述報文中選取包含相同字段或相同位的多個報文片段。
6.根據權利要求4所述的數字簽名方法,其特征在于,從所述報文中選取至少一個字 段包括從所述報文中選取至少一個用于表示所述報文的時間信息的字段。
7.一種數字簽名的驗證方法,其特征在于,包括根據與報文發送方約定的方式對接收到的報文選取至少一個報文片段; 根據與報文發送方約定的解密方式及數字簽名算法對接收到的最終數字簽名進行解 密,獲得第一消息摘要值及至少一個第二消息摘要值,所述第一消息摘要值與所述接收到 的報文對應,所述至少一個第二消息摘要值與所述至少一個報文片段對應; 對所述接收到的報文進行處理,獲得第三消息摘要值; 對所述報文片段分別進行處理,獲得對應的至少一個第四消息摘要值; 對所述第一消息摘要值與所述第三消息摘要值進行比較; 對所述至少一個第二消息摘要值與所述至少一個第四消息摘要值進行比較; 在所述第一消息摘要值與所述第三消息摘要值相等,且所述至少一個第二消息摘要值 與所述至少一個第四消息摘要值全部相等的情況下,判定所述接收到的報文未受到降級攻 擊;否則,判定所述接收到的報文受到降級攻擊。
8.一種數字簽名裝置,其特征在于,包括第一消息摘要處理模塊,用于對待傳輸的報文進行處理,獲得第一消息摘要值;片段選取模塊,用于從所述報文中選取至少一個報文片段;第二消息摘要處理模塊,用于對所述報文片段進行處理,獲得對應的至少一個第二消 息摘要值;數字簽名模塊,用于采用數字簽名算法對所述第一消息摘要值及所述至少一個第二消 息摘要值進行加密,獲得最終數字簽名。
9.根據權利要求8所述的數字簽名裝置,其特征在于,所述數字簽名模塊包括第一數字簽名單元,用于對所述第一消息摘要值采用所述數字簽名算法進行加密,獲 得第一數字簽名;第二數字簽名單元,用于對所述至少一個第二消息摘要值采用所述數字簽名算法分別 進行加密,獲得至少一個第二數字簽名;第一組合單元,用于將所述第一數字簽名和所述至少一個第二數字簽名進行組合,獲 得最終數字簽名。
10.根據權利要求8所述的數字簽名裝置,其特征在于,所述數字簽名模塊包括第二組合單元,用于將所述第一消息摘要值與所述至少一個第二消息摘要值進行組合;第三數字簽名單元,用于采用所述數字簽名算法對組合的所述第一消息摘要值與所述 至少一個第二消息摘要值整體進行加密,獲得所述最終數字簽名。
11.根據權利要求8-10任一項所述的數字簽名裝置,其特征在于,所述片段選取模塊 用于從所述報文中選取至少一個字段或至少一位。
12.根據權利要求8-10任一項所述的數字簽名裝置,其特征在于,所述片段選取模塊 用于從所述報文中選取包含相同字段或相同位的多個報文片段。
13.根據權利要求8-10任一項所述的數字簽名裝置,其特征在于,所述片段選取模塊 用于從所述報文中選取至少一個用于表示所述報文的時間信息的字段。
14.一種數字簽名的驗證裝置,其特征在于,包括片段獲取模塊,用于根據與報文發送方約定的方式對接收到的報文選取至少一個報文 片段;解密模塊,用于根據與報文發送方約定的解密方式及數字簽名算法對接收到的最終數 字簽名進行解密,獲得第一消息摘要值及至少一個第二消息摘要值,所述第一消息摘要值 與所述接收到的報文對應,所述至少一個第二消息摘要值與所述至少一個報文片段對應;第三消息摘要處理模塊,用于對所述接收到的報文進行處理,獲得第三消息摘要值;第四消息摘要處理模塊,用于對所述報文片段分別進行處理,獲得對應的至少一個第 四消息摘要值;第一比較模塊,用于對所述第一消息摘要值與所述第三消息摘要值進行比較;第二比較模塊,用于對所述至少一個第二消息摘要值與所述至少一個第四消息摘要值 進行比較;判定模塊,用于在所述第一消息摘要值與所述第三消息摘要值相等,且所述至少一個 第二消息摘要值與所述至少一個第四消息摘要值全部相等的情況下,判定所述接收到的報文未受到降級攻擊;否則,判定所述接收到的報文受到降級攻擊。
15. 一種數字簽名系統,其特征在于,包括上述權利要求8-13任一項所述的數字簽名 裝置與上述權利要求14所述的數字簽名的驗證裝置。
全文摘要
本發明涉及一種數字簽名方法、數字簽名的驗證方法、裝置及系統。數字簽名方法包括對待傳輸的報文進行處理,獲得第一消息摘要值;從所述報文中選取至少一個報文片段;對所述報文片段分別進行處理,獲得對應的至少一個第二消息摘要值;采用數字簽名算法對所述第一消息摘要值及所述至少一個第二消息摘要值進行加密,獲得最終數字簽名。本發明通過從報文中選取至少一個報文片段,并分別計算報文及報文片段的消息摘要值,使得攻擊者必須同時找到至少兩個具有內在聯系的匹配消息分別指向報文的消息摘要值及至少一個報文片段的消息摘要值,從而增加了降級攻擊的難度,進而提高了數字簽名的安全性。
文檔編號H04L9/32GK101980471SQ201010505308
公開日2011年2月23日 申請日期2010年10月8日 優先權日2010年10月8日
發明者劉瑾, 盧文哲, 李曉東, 毛偉, 沈爍, 王妍 申請人:中國科學院計算機網絡信息中心;北龍中網(北京)科技有限責任公司
網友(you)詢(xun)問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1