【技術領域】
本發明提出一種信息的加密方法、解密方法及用以接收信息的接收裝置,特別是一種可提升安全性與隱私性的安全信息的加密方法、解密方法以及用以接收安全信息的接收裝置。
背景技術:
隨著通訊技術的發展,現今的行動通訊方式不僅打破了以往固接通訊方式的限制,也推廣了各個行動通訊裝置的應用層面。于行動通訊的各款服務項目中,由于信息服務(shortmessageservice)可用以作為直接撥打電話聯絡他人的另一替代聯絡方式,因此,信息服務至今仍為行動通訊中不可或缺的服務之一。
而隨著技術的發展,信息服務的可傳遞內容也漸豐富,其從以往僅能傳送具有文字信息的信息服務逐漸發展至除了可傳送文字信息外也可傳送多媒體檔案,例如:照片、聲音、影片等的多媒體信息服務(multi-mediamessageservice)。
在現今行動裝置的信息服務系統中,其于信息的隱私性與安全性方面上仍有諸多缺失。像是因信息服務系統系為應用程序,信息的內容仍會被行動裝置的內建軟件攔截,而有被惡意復制至其他裝置的憂患;又像是因一般信息服務系統所使用的信息的內容多為明文且并沒有進行加密或格式轉換,而使得信息易遭第三方破解;又像是因信息服務系統一般并沒有針對信息的發送目的進行確認,而造成原先欲寄送給第一裝置的信息被傳送至第二裝置后,第二裝置仍可接收并讀取被誤傳的信息,而有安全性上的漏洞;又像是一般信息服務系統只要接收到含有執行指令的信息便會直接執行,并不會檢查發送端的信息,而造成恐有第三方輕易通過信息控制行動裝置的憂患;再像是一般信息服務系統并沒有針對信息的發送時間進行判斷,而造成恐有同一封信息重復影響行動裝置的憂患。
技術實現要素:
有鑒于此,本發明提供一種安全信息的加密方法、解密方法以及用以接收安全信息的接收裝置,通過二階段的加密動作來產生具有特殊格式的安全信息,以使接收到此安全信息的接收裝置需通過對應的解密動作來解密此安全信息后才可讀取其信息內容,進而可提升整體信息服務的安全性與隱私性。
在一實施例中,一種安全信息的加密方法包含根據信息內容與時效碼進行第一加密運算以產生驗證碼、根據信息內容、時效碼與驗證碼進行第二加密運算以產生加密字段,以及組合非加密字段與加密字段成為安全信息。
在一實施例中,一種適用于接收裝置的安全信息的解密方法包含接收安全信息、根據非加密字段確認接收裝置所支持的信息格式、使用解密密鑰對具有安全信息中的加密字段進行解密,以得到驗證碼、時效碼與信息內容、根據驗證碼、時效碼與信息內容確認安全信息未遭到竄改,以及當安全信息未遭到竄改時,執行信息內容。前述的安全信息包含非加密字段與加密字段,且前述的信息格式系為安全信息所特有的格式。
在一實施例中,一種用以接收安全信息的接收裝置,包含接收單元、處理單元以及執行單元。接收單元用以接收安全信息,并用以確認安全信息的信息格式系為接收裝置所支持。安全信息包含非加密字段與加密字段。處理單元用以使用解密密鑰對具有安全信息中的加密字段進行解密,以得到驗證碼、時效碼與信息內容,并用以根據驗證碼、時效碼與信息內容確認安全信息未遭竄改。執行單元用以確認安全信息未遭竄改后執行信息內容。
綜上所述,根據本發明實施例的安全信息的加密方法、解密方法以及用以接收安全信息的接收裝置,通過將對信息內容與時效碼進行加密后所產生的驗證碼與信息內容、時效碼進行另一加密動作,以產生具有二階段的加密防護的安全信息,來使得唯有對應的接收裝置可使用特定的解密密鑰來解密安全信息,且接收裝置可依據安全信息中的驗證碼、時效碼與信息內容來確認安全信息是否遭到竄改,而可于確認未遭竄改后才執行信息內容,以提升整體信息服務的安全性與隱私性。此外,接收裝置還可依據安全信息中的時效碼來確認安全信息是否已超過有效時限,進而可還加提升整體信息服務的安全性。
以下在實施方式中詳細敘述本發明的詳細特征及優點,其內容足以使任何熟習相關技藝者了解本發明的技術內容并據以實施,且根據本說明書所揭露的內容、申請專利范圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關的目的及優點。
【附圖說明】
圖1為本發明一實施例的發送裝置與接收裝置的方框圖。
圖2為本發明一實施例的安全信息的格式的示意圖。
圖3為本發明一實施例的安全信息的加密方法的流程圖。
圖4為本發明第一實施例的安全信息的解密方法的流程圖。
圖5為圖4中的步驟s24所涵蓋的流程圖。
圖6為本發明第二實施例的安全信息的解密方法的流程圖。
圖7為圖6中的步驟s34所涵蓋的流程圖。
圖8為圖6中的步驟s35所涵蓋的流程圖。
【具體實施方式】
請參閱圖1,其系為本發明一實施例的發送裝置與接收裝置的方框圖。通訊系統包括接收裝置100以及發送裝置200,并且接收裝置100能與發送裝置200相 互通訊(無線傳輸信息)。接收裝置100包括接收單元110、處理單元120以及執行單元130,且處理單元120耦接接收單元110與執行單元130。發送裝置200包括接收單元210、處理單元220以及發送單元230,且處理單元220耦接接收單元210與發送單元230。當發送裝置200欲將一信息發送給接收裝置100時,發送裝置200可先依據任一實施例的安全信息m1的加密方法對此信息(以下稱之為信息內容)進行加密以生成安全信息m1,然后再無線輸出給接收裝置100的接收單元110。接收單元110接收到安全信息m1后,可依據任一實施例的安全信息m1的解密方法對安全信息m1進行解密,以得到來自發送裝置200的信息內容。
上述的接收裝置100與發送裝置200可為移動電話、計算機等。此外,接收裝置100的處理單元120與發送裝置200的處理單元220可為soc(systemonachip)芯片、中央處理器(centralprocessingunit,cpu)或微控制器(mcu)等,然而本發明并不以此為限。
圖2為本發明一實施例的安全信息的格式的示意圖。安全信息m1主要由非加密字段c1與加密字段c2所組成,而加密字段c2又包含驗證碼c21、時效碼c22及信息內容c23,其中驗證碼c21還可分成至少二驗證區段(以下分別稱之為第一驗證區段c211與第二驗證區段c212)。需說明的是,第一驗證區段c211的位數與第二驗證區段c212的位數可分別彈性調整。例如,當驗證碼c21的位數為32位時,第一驗證區段c211與第二驗證區段c212可分別各占16位,或者第一驗證區段c211為20位且第二驗證區段c212為12位,又或者第一驗證區段c211為10位且第二驗證區段c212為22位。
圖3為本發明一實施例的安全信息的加密方法的流程圖。于步驟s11,安全信息m1的加密方法包含根據信息內容c23與時效碼c22進行第一加密運算以產生驗證碼c21;舉例來說,在步驟s11的一實施例中,發送裝置200可通過處理單元220利用第一加密運算對接收單元210所接收到的信息內容c23與時效碼c22進行加密,來產生對應的驗證碼c21。信息內容c23即為用戶所輸入的信息,例如「hello」,且其長度端視用戶所輸入的信息長度而定。
于此,第一加密運算系為安全信息m1的第一階段的加密防護,其可用以將非固定長度的信息內容c23與時效碼c22轉換成具有固定長度值,例如:32位的驗證碼c21。
在一些實施例中,第一加密運算可為一種循環冗余校驗(cyclicredundancycheck,crc)運算,例如信息摘要算法(message-digestalgorithm),例如md5、md4、md3等,或者為安全哈希算法(securehashalgorithm,sha),像是sha-3、sha-2、sha-1等。然而本發明并非僅限于此,第一加密運算可為任何用以將具有非固定長度的信息轉換成具有固定長度值的編碼的算法。
接著,于步驟s12中,根據信息內容c23、時效碼c22與驗證碼c21進行第二加密運算以產生加密字段c2。時效碼c22可用以供接收裝置100對信息內容c23的 效力進行查驗,而驗證碼c21則可用以供接收裝置100對信息內容c23與時效碼c22的正確性進行檢驗,以防止第三人惡意修改信息內容c23。在一些實施例中,時效碼c22可包含送出時間與有效時限。其中,送出時間可為使用者于完成信息內容c23后按下發送鍵的時間,抑或者為使用者所預定的發送日期。而有效時限可為一特定期日,例如:2016年12月31日,或一特定期間,例如:7天。
此外,在步驟s12的一實施例中,發送裝置200可通過處理單元220利用第二加密運算對第一驗證區段c211、時效碼c22、信息內容c23以及第二驗證區段c212進行加密,以產生對應的加密字段c2。其中,第二加密運算系為安全信息m1的第二階段的加密防護,可用以將第一驗證區段c211、時效碼c22、信息內容c23以及第二驗證區段c212自明文(plaintext)轉換成密文(ciphertext),來隱蔽真正的內容以避免于傳遞的過程中遭到泄漏。在一些實施例中,第二加密運算可為高階加密標準(advancedencryptionstandard)、rsa加密算法或凱薩加密法(caesarcipher)等。然而本發明并非僅限于此,第二加密運算可為任何用以將明文轉換成密文的算法。
最后,進入步驟s13,組合非加密字段c1與加密字段c2成安全信息m1。在步驟s13的一實施例中,發送裝置200可通過處理單元220將已轉換成密文的加密字段c2與非加密字段c1組合成安全信息m1后,再通過發送單元230將安全信息m1發送出去。其中,非加密字段c1一般可稱之為標頭(header),且用以供接收裝置100來識別其系統是否可支持此安全信息m1的信息格式。在一些實施例中,前述的信息格式可為純文本信息格式或多媒體信息格式等。
本發明的技術特征在于,第一驗證區段c211與第二驗證區段c212可與信息內容c23及時效碼c22穿插排列,以提升安全信息m1的防護強度。例如,第一驗證區段c211、時效碼c22、第二驗證區段c212與信息內容c23可依此順序排列,以將時效碼c22與信息內容c23分隔開來。然而,本發明并非以此為限。在另一實施態樣中,如圖2所示,第一驗證區段c211、時效碼c22、信息內容c23與第二驗證區段c212可依此順序排列。換言之,時效碼c22與信息內容c23此時系位于第一驗證區段c211與第二驗證區段c212之間。于前述的各實施態樣中,時效碼c22與信息內容c23的位置順序可互調,且第一驗證區段c211與第二驗證區段c212的位置順序也可互調。
圖4為本發明第一實施例的安全信息的解密方法的流程圖。請參閱圖1、圖2及圖4,安全信息m1的解密方法包含接收安全信息(步驟s21)、根據非加密字段c1確認接收裝置100所支持的信息格式(步驟s22)、使用解密密鑰對安全信息m1中的加密字段c2進行解密,以得到驗證碼c21、時效碼c22與信息內容c23(步驟s23)、確認安全信息m1是否遭到竄改(步驟s24),以及當安全信息m1未遭到竄改時,執行信息內容c23(步驟s26)。
在步驟s21的一實施例中,接收裝置100可通過接收單元110接收來自發送裝置200的安全信息m1。其中,安全信息m1包含依序排列的非加密字段c1與加密字段c2。于此,安全信息m1系以封包方式自發送裝置200傳送到接收裝置100。
在步驟s22的一實施例中,由于安全信息m1中的非加密字段c1系為明文(即,未經加密過),因此,接收裝置100的接收單元110可直接根據安全信息m1的非加密字段c1來判定其是否可支持此安全信息m1的信息格式。
當接收裝置100的接收單元110根據非加密字段c1判定此安全信息m1系為接收裝置100所支持的信息格式時,接續執行步驟s23。反之,當判定此安全信息m1并非為接收裝置100所支持的信息格式時,則舍棄安全信息m1(步驟s27)。于此,接收裝置100可通過接收單元110直接拒絕接收安全信息m1來完成舍棄安全信息m1的動作。
在步驟s23的一實施例中,由于安全信息m1中的加密字段c2系為密文(即,已經加密過),而無法直接被讀取,因此,接收裝置100的處理單元120需使用預存的解密密鑰對安全信息m1中的加密字段c2進行解密,以將加密字段c2轉換成明文而得到其所涵蓋的驗證碼c21、時效碼c22與信息內容c23。
在一些實施例中,接收裝置100中可預存有多個解密密鑰,且接收裝置100的處理單元120可分別使用各個解密密鑰來試驗是否有任一解密密鑰可將安全信息m1的加密字段c2解開來。
當處理單元120可通過解密密鑰對加密字段c2進解密而得到驗證碼c21、時效碼c22與信息內容c23時,即表示接收裝置100具有對應于此安全信息m1的解密密鑰,而為合法(正確)的接收端,且發送此安全信息m1的發送裝置200也為合法(正確)的發送端。此時,可接續執行步驟s24。
反之,當處理單元120無法通過任一個解密密鑰對加密字段c2進解密時,即表示接收裝置100并不具有對應于此安全信息m1的解密密鑰,而可能為非法(不正確)的接收端,抑或者是發送此安全信息m1的發送裝置200為非法(不正確)的發送端。此時,則接續執行步驟s27,來舍棄此安全信息m1。
在步驟s24的一實施例中,接收裝置100的處理單元120可根據經由經由解密密鑰解密后所得的驗證碼c21、時效碼c22與信息內容c23進行檢驗,以確認此封安全信息m1是否曾遭到第三人惡意竄改。其中,驗證碼c21可用以檢驗信息內容c23與時效碼c22的正確性,時效碼c22可用以檢驗信息內容c23的效力,而信息內容c23則為所收到的信息內容。
在一些實施例中,安全信息m1中的驗證碼c21系被分成至少二驗證區段(以下分別稱之為第一驗證區段c211與第二驗證區段c212),如圖2所示。時效碼c22與信息內容c23系位于第一驗證區段c211與第二驗證區段c212之間。其中,第一驗證區段c211的位數與第二驗證區段c212的位數可分別彈性調整。
因此,接收裝置100的處理單元120于確認安全信息m1是否遭竄改前,需先將第一驗證區段c211與第二驗證區段c212組合成完整的一驗證碼c21。于此,處理單元120系將第二驗證區段c212組合于第一驗證區段c211的后方,且第二驗證區段c212中的最高有效位(msb)將會連接于第一驗證區段c211中的最低有效位(lsb)的后方。
圖5為圖4中的步驟s24所涵蓋的流程圖。請參閱圖5,在步驟s24的一些實施例中,處理單元120根據時效碼c22與信息內容c23執行加密運算以得到校驗碼(步驟s24a),然后比對驗證碼c21與校驗碼(步驟s24b)。當比對的結果為驗證碼c21與校驗碼相符時,處理單元120判定安全信息m1未遭竄改(步驟s24c)。反之,當比對的結果為驗證碼c21與校驗碼不相符時,處理單元120則判定安全信息m1遭到竄改(步驟s24d)。
在步驟s24a的一實施例中,接收裝置100的處理單元120可通過一加密運算對時效碼c22與信息內容c23進行加密動作,以得到對應的校驗碼。其中,校驗碼具有固定長度值,且校驗碼的位長度應相同于驗證碼c21的位長度。
在一些實施例中,所述的加密運算可為一種循環冗余校驗(cyclicredundancycheck,crc)運算。由于同一信息內容經過同一算法運算后所產生的編碼應相同,因此,接收裝置100的處理單元120所采用的加密運算的類型系相同于發送裝置200的處理單元220所采用的第一加密運算的類型,以可于后續步驟s24b中與驗證碼c21進行比對。舉例而言,假設發送裝置200的處理單元220所采用的第一加密運算系為sha-3時,則接收裝置100的處理單元120所采用的加密運算也應為sha-3。
接續,在步驟s24b的一實施例中,接收裝置100的處理單元120可將于步驟s24a中所得的校驗碼與安全信息m1中的驗證碼c21進行比對,以通過確認校驗碼是否完全與驗證碼c21相符來判定安全信息m1是否遭到竄改。
當處理單元120確認驗證碼c21與校驗碼相符時,執行步驟s24c,且處理單元120可判定安全信息m1未遭竄改。于此,處理單元120于判定安全信息m1未遭竄改后,還將安全信息m1傳送至執行單元130,以接續執行步驟s26。
在步驟s26中,接收裝置100的執行單元130可接收來自處理單元120的安全信息m1,并執行安全信息m1中的信息內容c23。
反之,當處理單元120確認驗證碼c21與校驗碼并不相符時,則接續執行步驟s24d,處理單元120可判定安全信息m1遭到竄改。于此,處理單元120于判定安全信息m1遭到竄改后,并不會將安全信息m1傳送至執行單元130,且接續執行步驟s27,而舍棄安全信息m1。
圖6為本發明第二實施例的安全信息的解密方法的流程圖。在一些實施例中,請參閱圖1、圖2與圖6。安全信息m1的解密方法包含接收安全信息(步驟s31)、根據非加密字段c1確認接收裝置100所支持的信息格式(步驟s32)、使用解密密 鑰對安全信息m1中的加密字段c2進行解密,以得到驗證碼c21、時效碼c22與信息內容c23(步驟s33)、確認安全信息m1是否遭到竄改(步驟s34)、確認安全信息m1是否超過有效時限(步驟s35),以及當安全信息m1未遭到竄改且安全信息未超過有效時限時,執行信息內容c23(步驟s36)。
圖7為圖6中的步驟s34所涵蓋的流程圖。請參閱圖7,在步驟s34的一些實施例中,處理單元120根據時效碼c22與信息內容c23執行加密運算以得到校驗碼(步驟s34a),然后比對驗證碼c21與校驗碼(步驟s34b)。當比對的結果為驗證碼c21與校驗碼相符時,處理單元120判定安全信息m1未遭竄改(步驟s34c)。反之,當比對的結果為驗證碼c21與校驗碼不相符時,處理單元120則判定安全信息m1遭到竄改(步驟s34d)。
以下,由于步驟s31、步驟s32、步驟s33、步驟s34、步驟s36與步驟s37大致上分別與前述的步驟s21、步驟s22、步驟s23、步驟s24、步驟s26與步驟s27相同,故有些步驟于下不再詳述。
相較于前述的實施例,于此所示的安全信息m1的解密方法還多了步驟s35,且步驟s36的執行先決條件系需滿足步驟s34、步驟s35的內容,也即,唯有當確認安全信息m1未遭竄改(即,步驟s34)且確認安全信息m1未超過有效時限(即,步驟s35)時,才接續執行步驟s36。
此外,于圖6所繪的流程圖中,雖系先執行步驟s34后才執行步驟s35,但本發明并非以此為限,步驟s34與步驟s35的執行順序實際上系可互換的,甚至此二步驟也可同步執行。
以下,是依據圖6所繪的流程順序進行說明,且僅從步驟s35的部分開始進行說明(即,假設已確認安全信息m1為接收裝置100所支持的信息格式,且已可通過解密密鑰對安全信息m1進行解密,并已確認安全信息未遭竄改)。而其他步驟s31、步驟s32、步驟s33與步驟s34則可參閱前述的步驟s21、步驟s22、步驟s23與步驟s24。
在步驟s35的一實施例中,處理單元120可根據接收裝置100的目前時間與時效碼c22來確認安全信息m1是否超過有效時限。于此,時效碼c22可包含安全信息m1的送出時間與有效時限。其中,送出時間可為使用者于完成信息內容c23后按下發送鍵的時間點,抑或者為使用者所預定的發送日期;而有效時限則可為一特定期日或一特定期間。
圖8為圖6中的步驟s35所涵蓋的流程圖。請參閱圖8,在步驟s35的一些實施例中,處理單元120可擷取接收裝置100的目前時間(步驟s35a),以依據目前時間與送出時間計算出時間差(步驟s35b)。接續,處理單元120比對時間差與有效時限(步驟s35c),且當時間差小于或等于有效時限時,處理單元120判定安全信息m1未超過有效時限(步驟s35d)。反之,處理單元則判定安全信息m1超過有效時限(步驟s35e)。
在步驟s35a中,處理單元120可擷取接收裝置100的一目前時間。其中,目前時間可為處理單元120執行擷取動作時的當下的時間點,例如2016年2月1日。
在一些實施例中,處理單元120可通過接收裝置100的網絡模塊(圖未示)及/或定位模塊(圖未示)來取得此接收裝置100的目前時間。于此,網絡模塊可為無線網絡、wifi等。而定位模塊可為全球定位系統(gps)。
在步驟s35b中,處理單元120可根據于步驟s35a中所得的目前時間以及時效碼c22中所載的安全信息m1的發送時間來計算出一時間差。
舉例而言,假設安全信息m1中的時效碼c22中所載的發送時間系為2016年1月30日,且處理單元120所擷取到的目前時間系為2016年2月1日時,處理單元120可依據目前時間與發送時間計算出時間差系為3日(假設始日計算在內)。
于此,目前時間與發送時間的最小單位雖是以日來進行說明,但本發明并非僅限于此,目前時間與發送時間的最小單位也可詳細至小時、分鐘甚至是秒。
在步驟s35c中,處理單元120可將于步驟s35b中所計算出的時間差與安全信息m1中的時效碼c22中所載的有限時限進行比對,以確認安全信息m1是否已超過有效時限。
舉例而言,假設計算出的時間差系為3日,且時效碼c22中所載的有限時限系為7日時,處理單元120可于比對時間差與有效時限后,判定安全信息m1尚未超過有效時限而仍具有效力。
因此,于步驟s34中確認安全信息m1未遭竄改,且于步驟s35中確認安全信息m1未超過有效時限后,便可接續執行步驟s36。
在步驟s36中,接收裝置100的執行單元130可接收來自處理單元120的安全信息m1,并執行安全信息m1中的信息內容c23。
反之,當處理單元120確認所得的時間差系小于或等于有效時限時,執行步驟s35d,且處理單元120可判定安全信息m1未超過有效時限。舉例而言,假設計算出的時間差系為3日,且時效碼c22中所載的有限時限系為1日時,處理單元120可于比對時間差與有效時限后,判定安全信息m1已超過有效時限而不具有效力。因此,于執行步驟s35d后,可接續執行步驟s37,而舍棄安全信息m1。
綜上所述,根據本發明一實施例的安全信息的加密方法、解密方法以及用以接收安全信息的接收裝置,通過將對信息內容與時效碼進行加密后所產生的驗證碼與信息內容、時效碼進行另一加密動作,以產生具有二階段的加密防護的安全信息,來使得唯有對應的接收裝置可使用特定的解密密鑰來解密安全信息,且接收裝置可依據安全信息中的驗證碼、時效碼與信息內容來確認安全信息是否遭到竄改,而可于確認未遭竄改后才執行信息內容,以提升整體信息服務的安全性與隱私性。此外,接收裝置還可依據安全信息中的時效碼來確認安全信息是否已超過有效時限,進而可還加提升整體信息服務的安全性。
本發明的技術內容已以較佳實施例揭示如上述,然其并非用以限定本發明,任何熟習此技藝者,在不脫離本發明的精神所做些許的更動與潤飾,皆應涵蓋于本發明的范疇內,因此本發明的保護范圍當視后附的申請專利范圍所界定者為準。