專利名稱:非同步密鑰更新方法
技術領域:
本發明涉及一種非同步密鑰更新方法,詳而言之,涉及一種進行信息交換的兩端的非同步密鑰更新方法。
背景技術:
近年來,由于網絡相關應用技術日新月異,國際網絡、公共和個人電子郵件系統, 以及無線網絡通信技術的發展也日趨進步,因此,對于網絡安全性的要求也越來越高,故如何保護傳輸的數據與信息愈發重要。一般而言,數據與信息的加密是目前適應網絡安全的常用方法之一。而加密的技術與原理有多種,其中一種常見的加密協議是令通過網絡溝通的雙方以密鑰對信息加密后再進行傳輸。通過此種加密協議,于加密信息的傳遞過程中,雙方需協議好共同的密鑰以對所傳遞的信息進行力Π、解密,若雙方的密鑰不相同則無法相互拆解加密信息,導致雙方的信息不完整。由于前述的傳輸過程中,密鑰是固定的,即雙方以固定的密鑰傳遞信息,故相當容易被破解,進而失去保密的功效。為了提升網絡安全性,避免此種固定式密鑰成為網絡黑客攻擊的目標,現有通過定時或不定時的變更密鑰的方式來杜絕固定密鑰容易遭到破解的問題。然而,在密鑰更新的過程中,可能會由于雙方沒有同時相對應的完成密鑰更新,即其中一方已更新了新的密鑰,而另一方卻仍使用舊的密鑰來加解密信息,從而導致更換密鑰之后的數據加、解密失敗,甚至因更新密鑰或驗證密鑰是否正確更新的過程,而增加系統運行成本及負載,同時降低了系統的穩定性。因此,如何提供一種密鑰更新方法,使得網絡上進行數據傳輸的雙方,可以確保在更新密鑰的情況下,維持雙方的傳輸的數據得以順利的進行加、解密,確保通訊的雙方皆已更新密鑰,進而在更新密鑰或驗證密鑰是否正確更新的過程中降低系統運行成本及負載, 同時能提高系統運行的穩定性,遂成為亟待解決的問題。
發明內容
為解決前述現有技術的種種問題,本發明提供一種非同步密鑰更新方法,包括以下步驟1)、令數據傳輸網絡主動端匯入第二密鑰并保存第一密鑰;2)、通過該主動端通知數據傳輸網絡被動端將該第二密鑰匯入,并令該被動端將該第一密鑰更新為該第二密鑰;
3)、當該被動端傳送數據至該主動端時,令該主動端先依據該第一密鑰對該數據進行解密;
4)、于上述步驟幻解密失敗時,令該主動端以該第二密鑰對該數據進行解密;以及幻、于上述步驟4)解密失敗時,令該主動端刪除該第一密鑰。本發明另提供一種非同步密鑰更新方法,包括以下步驟1)、令具有協議接口及第一密鑰的數據傳輸網絡主動端匯入第二密鑰;2)、令該主動端通知具有該第一密鑰的數據傳輸網絡被動端匯入該第二密鑰,并將該第一密鑰更新為該第二密鑰;3)、于該協議接口未收到該被動端已更新密鑰的通知時,令該主動端以該第一密鑰對該被動端所傳輸的數據進行解密;4)、于上述步驟幻解密失敗時,令該主動端以該第二密鑰對該被動端所傳輸的數據進行解密;以及5)、于上述步驟4)解密成功時,令該主動端刪除該第一密鑰。相較于現有技術,本發明的非同步密鑰更新方法,通過數據傳輸網絡主動端以第一 /第二密鑰依序對來自數據傳輸網絡被動端所傳輸的信息解密,或者還提供協議接口讓該被動端通知該主動端其本身已完成密鑰更新,故能提供一種于數據傳輸網絡主動端與被動端之間,以第一 /第二密鑰重復驗證信息的方式,或者同時通過呼叫協議接口及重復驗證信息的方式,來完成密鑰更新的技術,并能降低負載及成本,進而兼顧網絡安全性及通訊正確性。
圖1是本發明非同步密鑰更新方法的第一實施例的流程圖;以及圖2是本發明非同步密鑰更新方法的第二實施例的流程圖。主要元件符號說明S21 至 S29 步驟S301 至 S310 步驟
具體實施例方式以下通過特定的具體實施例說明本發明的實施方式,本領域技術人員可由本說明書所揭示的內容輕易地了解本發明的其他優點與功效,也可通過其他不同的具體實施例加以施行或應用。第一實施例請參閱圖1,其為本發明非同步密鑰更新方法的第一實施例的流程圖。于本實施例中所述的數據傳輸網絡主動端及被動端皆具有第一密鑰,該第一密鑰指更換前的密鑰,于網絡上進行數據傳輸的主被動兩端在未進行密鑰更換之前,皆以第一密鑰對所欲傳輸的數據予以加、解密。而第二密鑰則是指第一密鑰更換后的密鑰,合先敘明。于步驟S21中,令主動端匯入第二密鑰并保存第一密鑰,亦即,主動端具有第一密鑰及該第二密鑰。接著進入步驟S22。于步驟S22中,通過主動端通知被動端將第二密鑰匯入,并令被動端將第一密鑰更新為第二密鑰,并令主動端通知被動端“之后與主動端間的數據傳輸,需以第二密鑰進行加、解密”。接著進入步驟S23。于步驟S23中,當被動端傳送數據至主動端時,令主動端先依據第一密鑰對該數據進行解密。主要原因在于,此時主動端無法確認被動端是否已將第一密鑰更新為第二密鑰,故對由被動端所傳出的數據先以該第一密鑰來進行解密,據以進行被動端密鑰更新是否成功的初步判斷。接著進入步驟S24。于步驟S24中,令主動端判斷是否能以第一密鑰對從被動端所傳輸的數據予以成功解密,若是,則進入步驟S25 ;若否,則進入步驟S26。于步驟S25中,令主動端保持通過第一密鑰與被動端間進行數據傳輸過程中的加、解密,而暫不以第二密鑰與被動端間進行數據傳輸過程中的加、解密。其主要原因在于步驟S23中,主動端以第一密鑰對被動端所傳送的數據予以成功解密,故表示被動端尚未將第一密鑰成功地更新為第二密鑰,或無法成功地以第二密鑰進行數據的加、解密。于其他實施例中,于步驟S25完成后,可選擇性地返回步驟S22,從而再次通知被動端將第二密鑰匯入,并重復執行前述的流程步驟。于步驟S26中,令主動端針對先前以該第一密鑰進行解密而失敗的數據,以第二密鑰對被動端所傳送的數據進行解密。接著進入步驟S27。于步驟S27中,令主動端判斷是否能以第二密鑰對被動端所傳輸的數據予以成功解密,若否,則進入步驟S28 ;若是,則進入步驟S29。于步驟S28中,令主動端回復數據解碼錯誤信息至被動端。具體言之,由于先前主動端無法通過第一密鑰對被動端所傳送的數據予以解密,接著又無法以第二密鑰對被動端所傳送的數據予以解密,故表示被動端所傳輸的信息發生問題。于步驟S29中,令主動端之后通過第二密鑰與被動端間進行傳輸數據的加、解密。 承前所述,由于主動端能以第二密鑰對由被動端所傳輸的數據予以成功地解密,表示被動端已將第一密鑰正確的更新為第二密鑰。優選地,于其他實施例中,主動端還可選擇性地刪除或保留第一密鑰,亦即以第二密鑰取代第一密鑰,或同時保留第一密鑰與第二密鑰。更優選地,于又一實施例中,于主動端以第二密鑰對該被動端所傳送的數據予以成功解密后,可選擇性地重復執行前述步驟S23至S25,亦即重復地以第一密鑰及第二密鑰驗證由被動端所傳輸的數據,從而確認被動端已確實將第一密鑰更換為第二密鑰,并待前述的重復驗證完成后再進入步驟S26。通過前述步驟S21至步驟S29的實施,可有效地確認主動端與被動端成功地完成非同步密鑰更新。由第一實施例得以了解,數據傳輸網絡被動端不需額外的通知數據傳輸網絡主動端其本身是否已更新了密鑰,僅需在收到主動端所傳輸的更換密鑰的通知后,以新的密鑰與主動端間進行數據傳輸即可,因此,對于被動端而言,沒有額外的負擔產生,且可確保進行通訊的主被動兩端皆已正確更新密鑰。第二實施例請參閱圖2,其為本發明非同步密鑰更新方法的第二實施例的流程圖。本實施例與第一實施例的流程步驟大致相同,其差異在于本實施例的數據傳輸網絡主動端提供一協議接口,供數據傳輸網絡被動端呼叫該協議接口以觸發主動端刪除第一密鑰。須說明的是,該協議接口可例如一種供被動端呼叫的應用程序接口(application programming interface, API)或供被云力端登入的網站月艮務器(web server)。于步驟S301中,令主動端匯入第二密鑰。接著進入步驟S302。于步驟S302中,令主動端通知被動端匯入第二密鑰,并令被動端將第一密鑰更新為第二密鑰。接著進入步驟S303。于步驟S303,令主動端判斷協議接口是否收到被動端“已更新密鑰”的通知,若否, 則進入步驟S304 ;若是,則進入步驟S310。于步驟S304中,令主動端以第一密鑰對被動端所傳輸的數據進行解密。接著進入
5步驟S305。于步驟S305中,令主動端判斷是否能以第一密鑰對從被動端所傳輸的數據予以成功解密,若是,則進入步驟S306 ;若否,則進入步驟S307。于步驟S306中,令主動端保持通過第一密鑰與被動端間進行數據傳輸過程中的加、解密,而暫不以第二密鑰與被動端間進行數據傳輸過程中的加、解密。于其他實施例中, 于步驟S306完成后,可選擇性地返回步驟S302,從而再次通知被動端將第二密鑰匯入,并重復執行前述的流程步驟。于步驟S307中,令主動端針對先前以該第一密鑰進行解密而失敗的數據,以第二密鑰對被動端所傳送的數據進行解密。接著進入步驟S308。于步驟S308中,令主動端判斷是否能以第二密鑰對被動端所傳輸的數據予以成功解密,若否,則進入步驟S309 ;若是,則進入步驟S310。于步驟S309中,令主動端回復錯誤信息至被動端。具體言之,由于先前主動端無法通過第一密鑰對被動端所傳送的數據予以解密,接著又無法以第二密鑰對被動端所傳送的數據予以解密,故表示被動端所傳輸的信息發生問題。于步驟S310中,令主動端之后通過第二密鑰與被動端間進行傳輸數據的加、解密。承前所述,由于主動端能以第二密鑰對由被動端所傳輸的數據予以成功地解密,表示被動端已將第一密鑰正確的更新為第二密鑰。通過前述步驟S301至步驟S310的實施,可有效地確認主動端與被動端成功地完成非同步密鑰更新。由第二實施例得以了解,由于主動端還提供協議接口供被動端呼叫,使得數據傳輸網絡主動端與被動端之間可同時通過呼叫協議接口的方式以及重復驗證信息的方式,來完成密鑰的更新,如此可提供主動端與被動端密鑰更新的彈性。綜上所述,本發明所提供的非同步密鑰更新方法,通過數據傳輸網絡主動端以新舊密鑰依序對來自數據傳輸網絡被動端所傳輸的信息進行解密,或者還提供協議接口讓該被動端通知該主動端其本身已完成密鑰更新,使得當被動端通過協議接口回應主動端時, 可主動地完成密鑰更新;當被動端未通過該協議接口回應主動端時,可通過持續以新舊密鑰對來自該被動端的信息進行解密,以完成密鑰更新。因此,無論是采用單一的由主動端多次解密信息,或是合并被動端呼叫協議接口的方式,皆可保持密鑰更新期間的通訊正確性, 并能并能降低密鑰更新的負載及成本,進而兼顧網絡安全性。上述實施例僅例示性說明本發明的原理、特點及其功效,并非用以限制本發明的可實施范疇,本領域技術人員均可在不違背本發明的精神及范疇下,對上述實施例進行修飾與改變。任何運用本發明所揭示內容而完成的等效改變及修飾,均仍應為權利要求書所涵蓋。因此,本發明的權利保護范圍,應如權利要求書所列。
權利要求
1.一種非同步密鑰更新方法,包括以下步驟1)令數據傳輸網絡主動端匯入第二密鑰并保存第一密鑰;2)通過該主動端通知數據傳輸網絡被動端將該第二密鑰匯入,并令該被動端將該第一密鑰更新為該第二密鑰;3)當該被動端傳送數據至該主動端時,令該主動端先依據該第一密鑰對該數據進行解密;4)于上述步驟幻解密失敗時,令該主動端以該第二密鑰對該數據進行解密;以及5)于上述步驟4)解密成功時,令該主動端刪除該第一密鑰。
2.如權利要求1所述的非同步密鑰更新方法,其特征在于,于上述步驟3)解密成功時, 令該主動端保留該第一密鑰。
3.如權利要求2所述的非同步密鑰更新方法,其特征在于,于上述步驟3)解密成功且該主動端保留該第一密鑰時,返回步驟2)。
4.如權利要求1所述的非同步密鑰更新方法,其特征在于,于上述步驟4)解密失敗時, 令該主動端傳輸數據解碼錯誤信息至該被動端。
5.如權利要求1所述的非同步密鑰更新方法,還包括步驟6),令該主動端重復以該第一密鑰及該第二密鑰對該被動端所傳輸的數據進行解密,并令該主動端于通過該第二密鑰成功對該被動端所傳輸的數據予以解密后,刪除該第一密鑰。
6.一種非同步密鑰更新方法,包括以下步驟1)令具有協議接口及第一密鑰的數據傳輸網絡主動端匯入第二密鑰;2)令該主動端通知具有該第一密鑰的數據傳輸網絡被動端匯入該第二密鑰,并將該第一密鑰更新為該第二密鑰;3)于該協議接口未收到該被動端已更新密鑰的通知時,令該主動端以該第一密鑰對該被動端所傳輸的數據進行解密;4)于上述步驟幻解密失敗時,令該主動端以該第二密鑰對該數據進行解密;以及5)于上述步驟4)解密成功時,令該主動端刪除該第一密鑰。
7.如權利要求6所述的非同步密鑰更新方法,其特征在于,于上述步驟2)后,該協議接口收到該被動端已更新密鑰的通知時,刪除該第一密鑰。
8.如權利要求6所述的非同步密鑰更新方法,其特征在于,于上述步驟3)解密成功時, 令該主動端保留該第一密鑰,并返回步驟2)。
9.如權利要求6所述的非同步密鑰更新方法,其特征在于,于上述步驟4)解密失敗時, 令該主動端傳輸數據解碼錯誤信息至該被動端。
10.如權利要求6所述的非同步密鑰更新方法,還包括步驟6),令該主動端重復以該第一密鑰及該第二密鑰對該被動端所傳輸的數據進行解密,并令該主動端于通過該第二密鑰成功對該被動端所傳輸的數據予以解密后,刪除該第一密鑰。
全文摘要
本發明提供一種非同步密鑰更新方法,令具有第一密鑰的數據傳輸網絡主動端匯入第二密鑰,并令主動端通知數據傳輸網絡被動端將原先具有的第一密鑰更新為第二密鑰,再令主動端先以第一密鑰對被動端所傳輸的數據進行解密,并于解密失敗時,再以第二密鑰對該數據進行解密,于解密成功時,令主動端保留第二密鑰并刪除第一密鑰。據此,可確保進行數據傳輸的主被動兩方,以相同的密鑰對相互傳輸的數據進行加、解密。
文檔編號H04L29/06GK102255723SQ201010180988
公開日2011年11月23日 申請日期2010年5月17日 優先權日2010年5月17日
發明者吳志光 申請人:中華電信股份有限公司