TWI761243B - 群組即時通訊的加密系統和加密方法 - Google Patents

群組即時通訊的加密系統和加密方法 Download PDF

Info

Publication number
TWI761243B
TWI761243B TW110123849A TW110123849A TWI761243B TW I761243 B TWI761243 B TW I761243B TW 110123849 A TW110123849 A TW 110123849A TW 110123849 A TW110123849 A TW 110123849A TW I761243 B TWI761243 B TW I761243B
Authority
TW
Taiwan
Prior art keywords
key
terminal device
group
message
server
Prior art date
Application number
TW110123849A
Other languages
English (en)
Other versions
TW202301830A (zh
Inventor
吳治東
鄭維元
蘇嚮權
梁俊安
Original Assignee
中華電信股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中華電信股份有限公司 filed Critical 中華電信股份有限公司
Priority to TW110123849A priority Critical patent/TWI761243B/zh
Application granted granted Critical
Publication of TWI761243B publication Critical patent/TWI761243B/zh
Publication of TW202301830A publication Critical patent/TW202301830A/zh

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供一種群組即時通訊的加密系統和加密方法。加密方法包含:若第一群組金鑰失效,第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於臨時公鑰的臨時私鑰;第一終端裝置根據第二群組金鑰、臨時私鑰以及對應於第二終端裝置的第二公鑰產生群組金鑰密文;響應於自第一終端裝置接收群組金鑰密文,伺服器傳送對應於第二群組金鑰的金鑰資訊至第一終端裝置;響應於自伺服器接收金鑰資訊,第一終端裝置根據第二群組金鑰更新對應於第一終端裝置的第一成員金鑰;以及第一終端裝置根據第一成員金鑰與第二終端裝置進行通訊。

Description

群組即時通訊的加密系統和加密方法
本發明是有關於一種通訊技術,且特別是有關於一種群組即時通訊的加密系統和加密方法。
以下為現行常見的群組即時通訊服務的加密方法:在每次發訊時隨機產生一組訊息金鑰,並透過非對稱式加密方式將金鑰同步至接收端,接收端即可透過個人的私鑰解密出訊息金鑰,並使用訊息金鑰解密訊息。然而,上述的方法對於減緩成員數量對效能的影響又能兼具安全性與可用性尚無一個完美的解決方案,仍然有改善空間。
本發明提供一種群組即時通訊的加密系統和加密方法,可用於群組即時通訊服務。
本發明的一種群組即時通訊的加密系統,包含第一終端裝置、第二終端裝置以及伺服器。伺服器通訊連接至第一終端裝置以及第二終端裝置,其中伺服器傳送群組金鑰狀態至第一終端裝置;響應於群組金鑰狀態指示第一群組金鑰失效,第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於臨時公鑰的臨時私鑰;第一終端裝置根據第二群組金鑰、臨時私鑰以及對應於第二終端裝置的第二公鑰產生群組金鑰密文;響應於自第一終端裝置接收群組金鑰密文,伺服器傳送對應於第二群組金鑰的金鑰資訊至第一終端裝置;響應於自伺服器接收金鑰資訊,第一終端裝置根據第二群組金鑰更新對應於第一終端裝置的第一成員金鑰;以及第一終端裝置根據第一成員金鑰與第二終端裝置進行通訊。
在本發明的一實施例中,上述的第一終端裝置根據第二群組金鑰更新儲存在第一終端裝置且對應於第二終端裝置的第二成員金鑰;以及第一終端裝置自第二終端裝置接收加密訊息,並且通過第二成員金鑰解密加密訊息。
在本發明的一實施例中,上述的第一終端裝置根據第一成員金鑰產生加密訊息,並且傳送加密訊息至第二終端裝置。
在本發明的一實施例中,上述的第一終端裝置基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據臨時私鑰以及第二公鑰產生共享秘密;以及第一終端裝置基於對稱加密演算法而根據共享秘密以及第二群組金鑰產生群組金鑰密文。
在本發明的一實施例中,在執行對稱加密演算法之前,第一終端裝置對共享秘密執行安全雜湊演算法。
在本發明的一實施例中,上述的第二終端裝置自伺服器接收群組金鑰密文、臨時公鑰以及對應於第一終端裝置的第一公鑰;第二終端裝置基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據臨時公鑰以及對應於第二公鑰的第二私鑰取得共享秘密;以及第二終端裝置基於對應於對稱加密演算法的對稱解密演算法而根據共享秘密以及群組金鑰密文取得第二群組金鑰。
在本發明的一實施例中,在執行對稱解密演算法之前,第二終端裝置對共享秘密執行安全雜湊演算法。
在本發明的一實施例中,上述的第二終端裝置根據第二群組金鑰更新儲存在第二終端裝置且對應於第一終端裝置的第一成員金鑰;以及第二終端裝置根據第二群組金鑰更新儲存在第二終端裝置且對應於第二終端裝置的第二成員金鑰。
在本發明的一實施例中,上述的伺服器響應於第二終端裝置登入群組即時通訊而傳送群組金鑰密文至第二終端裝置。
在本發明的一實施例中,上述的第一終端裝置對第一成員金鑰執行第一雜湊訊息鑑別碼運算以產生第一訊息金鑰;以及第一終端裝置對第一成員金鑰執行第二雜湊訊息鑑別碼運算以更新第一成員金鑰。
在本發明的一實施例中,上述的第一終端裝置對根據第一訊息金鑰對訊息進行加密以產生加密訊息。
在本發明的一實施例中,上述的第二終端裝置自第一終端裝置接收加密訊息以及金鑰資訊;響應於接收金鑰資訊,第二終端裝置對第一成員金鑰執行第一雜湊訊息鑑別碼運算以取得第一訊息金鑰;以及響應於接收金鑰資訊,第二終端裝置對第一成員金鑰執行第二雜湊訊息鑑別碼運算以更新儲存在第二終端的第一成員金鑰。
在本發明的一實施例中,上述的第二終端裝置對根據第一訊息金鑰對加密訊息進行解密以取得訊息。
在本發明的一實施例中,上述的第一終端裝置基於橢圓曲線密碼學演算法產生對應於第一終端裝置的第一公鑰以及對應於第一公鑰的第一私鑰,並且基於公開金鑰密碼學產生憑證以及對應於憑證的數位簽章。第一終端裝置傳送第一公鑰、憑證以及數位簽章至伺服器以註冊加入群組即時通訊。
在本發明的一實施例中,上述的第一終端裝置基於對應於橢圓曲線密碼學演算法的定義域產生第一公鑰、第一私鑰、第二群組金鑰、臨時公鑰以及臨時私鑰。
在本發明的一實施例中,上述的伺服器自群組即時通訊的成員接收異動資訊,並且根據異動資訊使第一群組金鑰失效。
在本發明的一實施例中,上述的伺服器自第一終端裝置接收訊息,其中訊息包含數位簽章;以及伺服器根據憑證驗證數位簽章以判斷訊息的來源是否正確。
在本發明的一實施例中,上述的第二終端裝置自第一終端裝置接收訊息,其中訊息包含數位簽章;以及第二終端裝置根據憑證驗證數位簽章以判斷訊息的來源是否正確。
本發明的一種群組即時通訊的加密方法,包含:伺服器通訊連接至第一終端裝置以及第二終端裝置;伺服器傳送群組金鑰狀態至第一終端裝置;響應於群組金鑰狀態指示第一群組金鑰失效,第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於臨時公鑰的臨時私鑰;第一終端裝置根據第二群組金鑰、臨時私鑰以及對應於第二終端裝置的第二公鑰產生群組金鑰密文;響應於自第一終端裝置接收群組金鑰密文,伺服器傳送對應於第二群組金鑰的金鑰資訊至第一終端裝置;響應於自伺服器接收金鑰資訊,第一終端裝置根據第二群組金鑰更新對應於第一終端裝置的第一成員金鑰;以及第一終端裝置根據第一成員金鑰與第二終端裝置進行通訊。
基於上述,在本發明中,使用服務的終端裝置可產生公鑰。使用公鑰與臨時私鑰進行ECDH運算與對稱式加密方式,達到端到端加密傳送群組金鑰至各成員。透過伺服器將成員異動與群組金鑰狀態進行統一控管,確保成員異動不影響安全性。於終端裝置內部展開群組金鑰至成員金鑰,並基於成員金鑰而利用棘輪方式產生訊息金鑰與下一輪的成員金鑰,藉已降低成員數量對效能之影響,並提供前向安全(forward secrecy,FS)。最後,所有需要終端裝置透過網路傳出的資料皆與數位簽章結合,接收端可在接受到資料後進行簽章驗證,確保資料的完整性並且驗證傳送端的身分。
本發明提供一種群組即時通訊的加密系統和加密方法,可基於非對稱式加密方法同步群組金鑰,並於終端裝置內運算展開後的成員金鑰,隨後利用成員金鑰衍生出訊息金鑰以進行訊息加密,藉以達到端點加密,並且有效降低成員數量對運算量與傳輸量的影響。本發明可由群組中的其中一人進行群組金鑰同步,伺服器可進行群組金鑰狀態管理,並於終端裝置內部由群組金鑰衍生成數把成員金鑰,再由成員金鑰衍生出加解密訊息的訊息金鑰,達到降低人數對運算量與傳輸量之影響,確保群組成員異動仍保有通訊安全性。
圖1根據本發明的一實施例繪示一種群組即時通訊的加密系統10的示意圖,加密系統10可包含伺服器100以及執行群組即時通訊的群組200,其中群組200可包含終端裝置a或終端裝置b等多個終端裝置。伺服器100可與群組200中的每一個終端裝置通訊連接。
伺服器100具有處理單元(例如:處理器但不限於此)、通訊單元(例如:各類通訊晶片、行動通訊晶片、藍芽晶片、WiFi晶片等但不限於此)及儲存單元(例如:可移動隨機存取記憶體、快閃記憶體、硬碟等但不限於此)等運行管理伺服器110的必要構件。
終端裝置a(或終端裝置b)可以包含、伺服器、客戶端、桌上型電腦、筆記型電腦、網路型電腦、工作站、個人數位助理(personal digital assistant,PDA)、個人電腦(personal computer,PC)、平板電腦或電話裝置等。終端裝置a(或終端裝置b)可至少含有但不限於收發器電路、類比數位(A/D)/數位類比(D/A)轉換器、處理電路、任選的記憶體電路,以及一個或多個天線單元。
圖2根據本發明的一實施例繪示註冊程序的訊令圖。在步驟S201中,終端裝置a可基於橢圓曲線密碼學(elliptic curve cryptography,ECC)演算法產生對應於終端裝置a的公鑰
Figure 02_image001
以及對應於公鑰
Figure 02_image001
的私鑰
Figure 02_image003
。具體來說,終端裝置a可根據ECC演算法的定義域
Figure 02_image005
產生終端裝置a的公鑰
Figure 02_image001
以及私鑰
Figure 02_image007
在一實施例中,終端裝置a可進一步產生終端裝置a的憑證
Figure 02_image009
、對應於憑證
Figure 02_image009
的簽章公鑰
Figure 02_image011
、對應於簽章公鑰
Figure 02_image011
的簽章私鑰
Figure 02_image013
以及使用簽章私鑰
Figure 02_image015
對公鑰
Figure 02_image001
簽章而產生的數位簽章
Figure 02_image017
。憑證
Figure 02_image009
可用以驗證數位簽章
Figure 02_image017
。舉例來說,假設終端裝置a想透過伺服器100傳送一個訊息給終端裝置b。終端裝置a可將數位簽章
Figure 02_image017
加入所述訊息中。在終端裝置b接收到所述訊息後,終端裝置b可根據終端裝置b內的數位憑證鏈驗證憑證
Figure 02_image009
為可信任之憑證,隨後再使用憑證
Figure 02_image009
驗證所述訊息中的數位簽章
Figure 02_image017
。若驗證的結果為成功且能正常地使用公鑰
Figure 02_image001
解密所述訊息,則終端裝置b可判斷訊息確實來自於終端裝置a。也就是說,訊息的來源是正確的。若驗證的結果為失敗或無法通過公鑰
Figure 02_image001
正常地解密所述訊息,則終端裝置b可判斷訊息並非來自於終端裝置a。也就是說,訊息的來源是錯誤的。
在一實施例中,終端裝置a可根據公開金鑰密碼學(public-key cryptography)產生簽章公鑰
Figure 02_image011
與簽章私鑰
Figure 02_image013
在步驟S202中,終端裝置a可將對應於終端裝置a的公鑰
Figure 02_image001
、憑證
Figure 02_image009
以及數位簽章
Figure 02_image017
傳送至伺服器100,藉以註冊加入群組即時通訊。群組200中的每一個終端裝置(例如:終端裝置b)可存取伺服器100以自伺服器100取得公鑰
Figure 02_image001
、憑證
Figure 02_image009
或數位簽章
Figure 02_image017
等資訊。
在步驟S203中,終端裝置b可基於橢圓曲線密碼學(elliptic curve cryptography,ECC)演算法產生對應於終端裝置b的公鑰
Figure 02_image019
以及對應於公鑰
Figure 02_image019
的私鑰
Figure 02_image021
。具體來說,終端裝置b可根據ECC演算法的定義域
Figure 02_image005
產生終端裝置b的公鑰
Figure 02_image019
以及私鑰
Figure 02_image021
。也就是說,公鑰
Figure 02_image001
、私鑰
Figure 02_image007
、公鑰
Figure 02_image019
以及私鑰
Figure 02_image021
是基於相同的定義域產生的。
在一實施例中,終端裝置b可進一步產生終端裝置b的憑證
Figure 02_image023
、對應於憑證
Figure 02_image023
的簽章公鑰
Figure 02_image025
、對應於簽章公鑰
Figure 02_image025
的簽章私鑰
Figure 02_image027
以及使用簽章私鑰
Figure 02_image027
對公鑰
Figure 02_image019
簽章而產生的數位簽章
Figure 02_image029
。憑證
Figure 02_image023
可用以驗證數位簽章
Figure 02_image029
。舉例來說,假設終端裝置b想透過伺服器100傳送一個訊息給終端裝置a。終端裝置b可將數位簽章
Figure 02_image029
加入所述訊息中。在終端裝置a接收到所述訊息後,終端裝置a可根據終端裝置a內的數位憑證鏈驗證憑證
Figure 02_image023
為可信任之憑證,隨後再使用憑證
Figure 02_image023
驗證所述訊息中的數位簽章
Figure 02_image029
。若驗證的結果為成功且能正常地使用
Figure 02_image031
解密所述訊息,則終端裝置a可判斷訊息確實來自於終端裝置b。也就是說,訊息的來源是正確的。若驗證的結果為失敗或無法通過
Figure 02_image031
正常地解密所述訊息,則終端裝置a可判斷訊息並非來自於終端裝置b。也就是說,訊息的來源是錯誤的。
在一實施例中,終端裝置b可根據公開金鑰密碼學產生簽章公鑰
Figure 02_image025
與簽章私鑰
Figure 02_image027
在步驟S204中,終端裝置b可將對應於終端裝置b的公鑰
Figure 02_image019
、憑證
Figure 02_image023
以及數位簽章
Figure 02_image029
傳送至伺服器100,藉以註冊加入群組即時通訊。群組200中的每一個終端裝置(例如:終端裝置a)可存取伺服器100以自伺服器100取得公鑰
Figure 02_image019
、憑證
Figure 02_image023
以及數位簽章
Figure 02_image029
等資訊。
圖3根據本發明的一實施例繪示成員異動程序的訊令圖。在步驟S301中,伺服器100可自群組即時通訊的成員(即:群組200的成員,例如終端裝置a或終端裝置b)接收異動資訊。異動資訊可指示群組200中的某一個終端裝置執行了下列步驟的至少其中之一:自行退出群組200、將其他成員退出群組200或將新成員加入群組200中。
在步驟S302中,伺服器100可根據異動資訊使群組200的群組金鑰失效。舉例來說,假設群組即時通訊(或群組200)的初始群組金鑰為群組金鑰
Figure 02_image033
。伺服器100可根據異動資訊而使群組金鑰
Figure 02_image033
失效。值得注意的是,群組金鑰
Figure 02_image033
例如是依據定義域
Figure 02_image005
而產生的。也就是說,群組金鑰
Figure 02_image033
、公鑰
Figure 02_image001
、私鑰
Figure 02_image007
、公鑰
Figure 02_image019
以及私鑰
Figure 02_image021
是基於相同的定義域產生的。
在步驟S303中,伺服器100可傳送群組金鑰狀態至終端裝置a,其中所述群組金鑰狀態可指示群組金鑰
Figure 02_image033
已經失效。在步驟S304中,伺服器100可在終端裝置b登入群組即時通訊時傳送群組金鑰狀態至終端裝置b,其中所述群組金鑰狀態可指示群組金鑰
Figure 02_image033
已經失效。也就是說,在群組金鑰
Figure 02_image033
失效後,伺服器100可將指示群組金鑰
Figure 02_image033
失效的群組金鑰狀態廣播給群組200中的成員。
圖4根據本發明的一實施例繪示金鑰同步程序的訊令圖。在步驟S401中,響應於群組金鑰狀態指示群組金鑰
Figure 02_image033
失效,終端裝置a可基於ECC演算法產生群組金鑰
Figure 02_image035
、臨時公鑰
Figure 02_image037
以及對應於臨時公鑰
Figure 02_image037
的臨時私鑰
Figure 02_image039
。群組金鑰
Figure 02_image035
、臨時公鑰
Figure 02_image037
以及臨時私鑰
Figure 02_image039
例如是依據定義域
Figure 02_image005
而產生的。也就是說,群組金鑰
Figure 02_image035
、臨時公鑰
Figure 02_image037
以及臨時私鑰
Figure 02_image039
是基於與群組金鑰
Figure 02_image033
相同的定義域產生的。
在步驟S402中,終端裝置a可根據群組金鑰
Figure 02_image035
、臨時私鑰
Figure 02_image039
、以及對應於群組200中的成員的公鑰產生將發送給所述成員的群組金鑰密文。以終端裝置b為例,終端裝置a可根據群組金鑰
Figure 02_image035
、臨時私鑰
Figure 02_image039
以及終端裝置b的公鑰
Figure 02_image019
產生將被發送給終端裝置b的群組金鑰密文
Figure 02_image041
具體來說,終端裝置a可基於橢圓曲線迪菲-赫爾曼密鑰交換(elliptic curve Diffie–Hellman key exchange,EDCH)演算法而根據臨時私鑰
Figure 02_image039
以及公鑰
Figure 02_image019
產生對應於終端裝置a和終端裝置b的共享秘密(或密鑰加密鑰(key-encryption key))
Figure 02_image043
,如方程式(1)所示,其中
Figure 02_image045
代表對公鑰P和私鑰R執行ECDH運算。
Figure 02_image047
…(1)
接著,終端裝置a可對共享秘密
Figure 02_image043
執行安全雜湊演算法(secure hash algorithm,SHA),藉以調整共享秘密
Figure 02_image043
的尺寸以使共享秘密
Figure 02_image043
適應於即將使用的對稱加密演算法。舉例來說,在對共享秘密
Figure 02_image043
執行AES-256對稱加密演算法之前,終端裝置a可先對共享秘密
Figure 02_image043
執行SHA-256安全雜湊演算法,藉以將共享秘密
Figure 02_image043
的尺寸調整為適用於AES-256的256位元。
而後,終端裝置a可基於對稱加密演算法而根據共享秘密
Figure 02_image043
以及群組金鑰
Figure 02_image035
產生群組金鑰密文
Figure 02_image041
,如方程式(2)所示,其中
Figure 02_image049
代表基於AES演算法使用金鑰k對明文p(plaintext)進行加密。
Figure 02_image051
…(2)
在步驟S403中,終端裝置a可傳送至少包含群組金鑰密文
Figure 02_image041
以及臨時公鑰
Figure 02_image037
的金鑰訊息至伺服器100。在步驟S404中,伺服器100可驗證金鑰訊息的合法性。
在一實施例中,伺服器100可根據群組200的當前群組金鑰狀態判斷金鑰訊息是否合法。若群組金鑰狀態指示群組200的當前群組金鑰是失效(或不存在),則伺服器100可判斷金鑰訊息是合法的。若群組金鑰狀態指示群組200的當前群組金鑰是有效的,則伺服器100可判斷金鑰訊息是非法的。舉例來說,若群組金鑰狀態指示群組200的當前群組金鑰
Figure 02_image033
是失效的,則伺服器100可判斷金鑰訊息是合法的。
在一實施例中,伺服器100可基於群組200中的成員以及金鑰訊息中群組金鑰密文匹配而判斷金鑰訊息是合法的,並可基於群組200中的成員以及金鑰訊息中群組金鑰密文不匹配而判斷金鑰訊息是非法的。舉例來說,假設群組200包含多個成員,其中所述多個成員包含終端裝置a和終端裝置b。如此,伺服器100自終端裝置a所接收的金鑰訊息需包含分別對應於除了終端裝置a的多個其他成員的多個群組金鑰密文,其中所述多個群組金鑰密文包含對應於終端裝置b的群組金鑰密文
Figure 02_image041
。若金鑰訊息中缺少了某一位成員的群組金鑰密文,則伺服器100可判斷金鑰訊息是非法的。
在一實施例中,伺服器100可根據憑證
Figure 02_image053
判斷來自終端裝置a的金鑰訊息是否是合法的。若金鑰訊息包含與憑證
Figure 02_image055
匹配的數位簽章
Figure 02_image017
,則伺服器100可判斷金鑰訊息是合法的。若金鑰訊息不包含與憑證
Figure 02_image055
匹配的數位簽章
Figure 02_image017
,則伺服器100可判斷金鑰訊息是非法的。
在步驟S405中,若金鑰訊息是合法的,伺服器100可傳送對應於群組金鑰
Figure 02_image035
的金鑰資訊至終端裝置a,其中金鑰資訊可包含對應於群組金鑰
Figure 02_image035
的群組金鑰識別碼
Figure 02_image057
。值得注意的是,伺服器100並不需要也無法解密群組金鑰密文
Figure 02_image041
以取得群組金鑰
Figure 02_image035
,而僅需要將與群組金鑰密文
Figure 02_image041
相對應的群組金鑰識別碼
Figure 02_image057
傳送給終端裝置a即可。終端裝置a可響應於接收到群組金鑰識別碼
Figure 02_image057
而判斷伺服器100已經同意使用群組金鑰
Figure 02_image035
。因此,終端裝置a將可使用群組金鑰
Figure 02_image035
來執行群組即時通訊。
在步驟S406中,響應於接收到金鑰資訊,終端裝置a可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置a的多個成員金鑰,其中所述多個成員金鑰分別對應於群組200中的多個成員。舉例來說,終端裝置a可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置a且對應於終端裝置a的成員金鑰
Figure 02_image059
。此外,終端裝置a可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置a且對應於終端裝置b的成員金鑰
Figure 02_image061
。更新成員金鑰的詳細步驟可參考如圖5所示的步驟S504。終端裝置a可通過成員金鑰
Figure 02_image059
以與群組200中的成員(例如:終端裝置b)進行通訊。舉例來說,終端裝置a可利用成員金鑰
Figure 02_image059
對訊息進行加密以產生加密訊息,並可將加密訊息傳送給終端裝置b。終端裝置b可利用成員金鑰
Figure 02_image059
解密所述加密訊息以取得所述訊息。
在一實施例中,終端裝置a可根據基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據公鑰
Figure 02_image063
以及群組金鑰
Figure 02_image035
產生對應於終端裝置a的成員金鑰
Figure 02_image059
,如方程式(3)所示。
Figure 02_image065
…(3)
在一實施例中,終端裝置a可根據基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據公鑰
Figure 02_image067
以及群組金鑰
Figure 02_image035
產生對應於終端裝置b的成員金鑰
Figure 02_image061
,如方程式(4)所示。
Figure 02_image069
…(4)
在步驟S407中,若金鑰訊息是合法的,伺服器100可傳送群組金鑰密文
Figure 02_image041
至終端裝置b。舉例來說,伺服器100可響應於偵測到終端裝置b登入群組200的群組即通訊而傳送群組金鑰密文
Figure 02_image041
至終端裝置b。
在步驟S408中,終端裝置b可解密群組金鑰密文
Figure 02_image041
以取得群組金鑰
Figure 02_image035
。具體來說,終端裝置b可自伺服器100取得群組金鑰密文
Figure 02_image041
、臨時公鑰
Figure 02_image037
以及終端裝置a的公鑰
Figure 02_image001
。終端裝置b可基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據臨時公鑰
Figure 02_image071
以及終端裝置b的私鑰
Figure 02_image073
產生對應於終端裝置a和終端裝置b的共享秘密
Figure 02_image043
,如方程式(5)所示,其中
Figure 02_image045
代表對公鑰P和私鑰R執行ECDH運算。
Figure 02_image075
…(5)
接著,終端裝置b可對共享秘密
Figure 02_image043
執行安全雜湊演算法,藉以調整共享秘密
Figure 02_image043
的尺寸以使共享秘密
Figure 02_image043
適應於即將使用的對稱解密演算法。舉例來說,在對共享秘密
Figure 02_image043
執行AES-256對稱解密演算法之前,終端裝置b可先對共享秘密
Figure 02_image043
執行SHA-256安全雜湊演算法,藉以將共享秘密
Figure 02_image043
的尺寸調整為適用於AES-256的256位元。
而後,終端裝置b可基於對稱解密演算法而根據共享秘密
Figure 02_image043
解密群組金鑰密文
Figure 02_image041
以取得群組金鑰
Figure 02_image035
,如方程式(6)所示,其中
Figure 02_image077
代表基於AES演算法使用共享秘密k對密文c(ciphertext)進行解密。
Figure 02_image079
…(6)
在步驟S409中,響應於取得群組金鑰
Figure 02_image035
,終端裝置b可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置b的多個成員金鑰,其中所述多個成員金鑰分別對應於群組200中的多個成員。舉例來說,終端裝置b可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置b且對應於終端裝置a的成員金鑰
Figure 02_image059
。此外,終端裝置b可根據群組金鑰
Figure 02_image035
更新儲存在終端裝置b且對應於終端裝置b的成員金鑰
Figure 02_image061
。更新成員金鑰的詳細步驟可參考如圖5所示的步驟S507。終端裝置b可通過成員金鑰
Figure 02_image061
以與群組200中的成員(例如:終端裝置a)進行通訊。舉例來說,終端裝置b可利用成員金鑰
Figure 02_image061
對訊息進行加密以產生加密訊息,並可將加密訊息傳送給終端裝置a。終端裝置a可利用成員金鑰
Figure 02_image061
解密所述加密訊息以取得所述訊息。
在一實施例中,終端裝置b可根據基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據公鑰
Figure 02_image063
以及群組金鑰
Figure 02_image035
產生對應於終端裝置a的成員金鑰
Figure 02_image059
,如方程式(7)所示。
Figure 02_image065
…(7)
在一實施例中,終端裝置b可根據基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據公鑰
Figure 02_image067
以及群組金鑰
Figure 02_image035
產生對應於終端裝置b的成員金鑰
Figure 02_image061
,如方程式(8)所示。
Figure 02_image069
…(8)
圖5根據本發明的一實施例繪示群組即時通訊程序的訊令圖。在步驟S501中,終端裝置a可對成員金鑰
Figure 02_image059
執行如方程式(9)所示的雜湊訊息鑑別碼(hashed message authentication code,HMAC)運算以產生訊息金鑰
Figure 02_image081
,其中
Figure 02_image083
代表對金鑰k以及常數A執行雜湊訊息鑑別碼運算。
Figure 02_image085
…(9)
在步驟S502中,終端裝置a可根據訊息金鑰
Figure 02_image081
對訊息進行加密以產生加密訊息。具體來說,終端裝置a可對訊息M進行如方程式(10)所示的對稱加密演算法以產生加密訊息CT,其中
Figure 02_image049
代表基於AES演算法使用金鑰k對明文p進行加密。
Figure 02_image087
…(10)
在步驟S503中,終端裝置a可傳送加密訊息CT以及金鑰資訊至終端裝置b,其中金鑰資訊可包含例如群組金鑰識別碼
Figure 02_image057
以及成員金鑰世代資訊,其中成員金鑰世代資訊指示當前終端裝置a之成員金鑰
Figure 02_image059
的世代。假設成員金鑰
Figure 02_image059
為終端裝置a的第一世代的成員金鑰,則成員金鑰世代資訊可向終端裝置b指示加密訊息CT是基於終端裝置a的第一世代的成員金鑰
Figure 02_image059
來加密的。因此,終端裝置b應該使用第一世代的成員金鑰
Figure 02_image059
來解密加密訊息CT。
在步驟S504中,終端裝置a可對成員金鑰
Figure 02_image059
執行如方程式(11)所示的雜湊訊息鑑別碼運算以更新儲存在終端裝置a中的終端裝置a的成員金鑰的世代,其中
Figure 02_image089
代表對金鑰k以及常數B執行雜湊訊息鑑別碼運算,其中常數B與常數A相異。假設成員金鑰
Figure 02_image059
為終端裝置a的第一世代的成員金鑰,則終端裝置a可更新成員金鑰
Figure 02_image059
以產生終端裝置a的第二世代的成員金鑰
Figure 02_image091
Figure 02_image093
…(11)
此外,終端裝置a可對成員金鑰
Figure 02_image061
執行如方程式(12)所示的雜湊訊息鑑別碼運算以更新儲存在終端裝置a中的終端裝置b的成員金鑰的世代,其中
Figure 02_image089
代表對金鑰k以及常數B執行雜湊訊息鑑別碼運算,其中常數B與常數A相異。假設成員金鑰
Figure 02_image061
為終端裝置b的第一世代的成員金鑰,則終端裝置a可更新成員金鑰
Figure 02_image061
以產生終端裝置b的第二世代的成員金鑰
Figure 02_image095
Figure 02_image097
…(12)
在步驟S505中,響應於接收加密訊息CT以及金鑰資訊,終端裝置b可對儲存在終端裝置b中的終端裝置a的成員金鑰
Figure 02_image059
執行如方程式(13)所示的雜湊訊息鑑別碼運算以產生訊息金鑰
Figure 02_image081
,其中
Figure 02_image083
代表對金鑰k以及常數A執行雜湊訊息鑑別碼運算。
Figure 02_image085
…(13)
在步驟S506中,終端裝置b可根據訊息金鑰
Figure 02_image081
對加密訊息CT進行解密以 取得訊息M。具體來說,終端裝置a可對加密訊息CT進行如方程式(14)所示的對稱解密演算法以產生訊息M,其中
Figure 02_image077
代表基於AES演算法使用金鑰k對密文c進行加密。
Figure 02_image099
…(14)
在步驟S507中,終端裝置b可對成員金鑰
Figure 02_image059
執行如方程式(15)所示的雜湊訊息鑑別碼運算以更新儲存在終端裝置b中的終端裝置a的成員金鑰的世代,其中
Figure 02_image089
代表對金鑰k以及常數B執行雜湊訊息鑑別碼運算。假設成員金鑰
Figure 02_image059
為終端裝置a的第一世代的成員金鑰,則終端裝置b可更新成員金鑰
Figure 02_image059
以產生終端裝置a的第二世代的成員金鑰
Figure 02_image091
Figure 02_image093
…(15)
此外,終端裝置b可對成員金鑰
Figure 02_image061
執行如方程式(16)所示的雜湊訊息鑑別碼運算以更新儲存在終端裝置b中的終端裝置b的成員金鑰的世代,其中
Figure 02_image089
代表對金鑰k以及常數B執行雜湊訊息鑑別碼運算。假設成員金鑰
Figure 02_image061
為終端裝置b的第一世代的成員金鑰,則終端裝置b可更新成員金鑰
Figure 02_image061
以產生終端裝置b的第二世代的成員金鑰
Figure 02_image095
Figure 02_image097
…(16)
圖6根據本發明的一實施例繪示一種群組即時通訊的加密方法的流程圖,其中所述加密方法可由如圖1所示的加密系統實施。在步驟S601中,伺服器通訊連接至第一終端裝置以及第二終端裝置。在步驟S602中,伺服器傳送群組金鑰狀態至第一終端裝置。在步驟S603中,響應於群組金鑰狀態指示第一群組金鑰失效,第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於臨時公鑰的臨時私鑰。在步驟S604中,第一終端裝置根據第二群組金鑰、臨時私鑰以及對應於第二終端裝置的第二公鑰產生群組金鑰密文。在步驟S605中,響應於自第一終端裝置接收群組金鑰密文,伺服器傳送對應於第二群組金鑰的金鑰資訊至第一終端裝置。在步驟S606中,響應於自伺服器接收金鑰資訊,第一終端裝置根據第二群組金鑰更新對應於第一終端裝置的第一成員金鑰。在步驟S607中,第一終端裝置根據第一成員金鑰與第二終端裝置進行通訊。
綜上所述,本發明之特點及功效可包含:伺服器無直接參與金鑰協商,達到端點加密效果;群組成員異動後仍然具有端點加密保護;降低群組成員數量對效能與安全性的影響(例如:增加群組成員並不會使即時通訊的效能降低);每則訊息金鑰都利用棘輪方式產生確保前向安全;金鑰同步時僅需由一名成員進行,降低金鑰同步複雜度;以及結合數位簽章,確保訊息的完整性與身分認證。
本發明可提供下列的安全性:(1)對於成員金鑰與訊息金鑰具有前向安全:金鑰衍生採單向性的雜湊函數,假設第三者能取得到某代之訊息金鑰的情況下,也無法有效逆推回過往的訊息金鑰,同樣的成員金鑰也無法有效逆推回前一世代之金鑰。(2)可確保訊息的完整性與身分認證:本方法中的任何從終端發出的訊息皆針對內容使用數位簽章,同樣的終端接收到的訊息皆先檢查數位簽章後再進行後續動作,達到訊息的完整性與身分認證,有效降低中間人攻擊可能性,並且可減少使用者手動進行確認彼此身分之操作(如:雙方透過面對面確認彼此公鑰指紋),提高可用性與可靠性。(3)成員異動仍保持安全的端點加密通訊:本方法透過伺服器管理群組金鑰狀態,確保任何異動能即時有效的將群組金鑰狀態設為無效,迫使終端於下則訊息使用新的群組金鑰來進行金鑰同步與加密訊息,確保舊成員無法解密接續的新訊息,新成員也無法解密過往的舊訊息。
10:加密系統 100:伺服器 200:群組 a、b:終端裝置 S201、S202、S203、S204、S301、S302、S303、S304、S401、S402、S403、S404、S405、S406、S407、S408、S409、S501、S502、S503、S504、S505、S506、S507、S601、S602、S603、S604、S605、S606、S607:步驟
圖1根據本發明的一實施例繪示一種群組即時通訊的加密系統的示意圖。 圖2根據本發明的一實施例繪示註冊程序的訊令圖。 圖3根據本發明的一實施例繪示成員異動程序的訊令圖。 圖4根據本發明的一實施例繪示金鑰同步程序的訊令圖。 圖5根據本發明的一實施例繪示群組即時通訊程序的訊令圖。 圖6根據本發明的一實施例繪示一種群組即時通訊的加密方法的流程圖。
S601、S602、S603、S604、S605、S606、S607:步驟

Claims (19)

  1. 一種群組即時通訊的加密系統,包括: 第一終端裝置; 第二終端裝置;以及 伺服器,通訊連接至所述第一終端裝置以及所述第二終端裝置,其中 所述伺服器傳送群組金鑰狀態至所述第一終端裝置; 響應於所述群組金鑰狀態指示第一群組金鑰失效,所述第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於所述臨時公鑰的臨時私鑰; 所述第一終端裝置根據所述第二群組金鑰、所述臨時私鑰以及對應於所述第二終端裝置的第二公鑰產生群組金鑰密文; 響應於自所述第一終端裝置接收所述群組金鑰密文,所述伺服器傳送對應於所述第二群組金鑰的金鑰資訊至所述第一終端裝置; 響應於自所述伺服器接收所述金鑰資訊,所述第一終端裝置根據所述第二群組金鑰更新對應於所述第一終端裝置的第一成員金鑰;以及 所述第一終端裝置根據所述第一成員金鑰與所述第二終端裝置進行通訊。
  2. 如請求項1所述的加密系統,其中 所述第一終端裝置根據所述第二群組金鑰更新儲存在所述第一終端裝置且對應於所述第二終端裝置的所述第二成員金鑰;以及 所述第一終端裝置自所述第二終端裝置接收加密訊息,並且通過所述第二成員金鑰解密所述加密訊息。
  3. 如請求項1所述的加密系統,其中 所述第一終端裝置根據所述第一成員金鑰產生加密訊息,並且傳送所述加密訊息至所述第二終端裝置。
  4. 如請求項1所述的加密系統,其中 所述第一終端裝置基於橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據所述臨時私鑰以及所述第二公鑰產生共享秘密;以及 所述第一終端裝置基於對稱加密演算法而根據所述共享秘密以及所述第二群組金鑰產生所述群組金鑰密文。
  5. 如請求項4所述的加密系統,其中 在執行所述對稱加密演算法之前,所述第一終端裝置對所述共享秘密執行安全雜湊演算法。
  6. 如請求項4所述的加密系統,其中 所述第二終端裝置自所述伺服器接收所述群組金鑰密文、所述臨時公鑰以及對應於所述第一終端裝置的第一公鑰; 所述第二終端裝置基於所述橢圓曲線迪菲-赫爾曼密鑰交換演算法而根據所述臨時公鑰以及對應於所述第二公鑰的第二私鑰取得所述共享秘密;以及 所述第二終端裝置基於對應於所述對稱加密演算法的對稱解密演算法而根據所述共享秘密以及所述群組金鑰密文取得所述第二群組金鑰。
  7. 如請求項6所述的加密系統,其中 在執行所述對稱解密演算法之前,所述第二終端裝置對所述共享秘密執行安全雜湊演算法。
  8. 如請求項6所述的加密系統,其中 所述第二終端裝置根據所述第二群組金鑰更新儲存在所述第二終端裝置且對應於所述第一終端裝置的所述第一成員金鑰;以及 所述第二終端裝置根據所述第二群組金鑰更新儲存在所述第二終端裝置且對應於所述第二終端裝置的第二成員金鑰。
  9. 如請求項6所述的加密系統,其中 所述伺服器響應於所述第二終端裝置登入所述群組即時通訊而傳送所述群組金鑰密文至所述第二終端裝置。
  10. 如請求項3所述的加密系統,其中 所述第一終端裝置對所述第一成員金鑰執行第一雜湊訊息鑑別碼運算以產生第一訊息金鑰;以及 所述第一終端裝置對所述第一成員金鑰執行第二雜湊訊息鑑別碼運算以更新所述第一成員金鑰。
  11. 如請求項10所述的加密系統,其中 所述第一終端裝置對根據所述第一訊息金鑰對訊息進行加密以產生所述加密訊息。
  12. 如請求項10所述的加密系統,其中 所述第二終端裝置自所述第一終端裝置接收所述加密訊息以及金鑰資訊; 響應於接收所述金鑰資訊,所述第二終端裝置對所述第一成員金鑰執行所述第一雜湊訊息鑑別碼運算以取得所述第一訊息金鑰;以及 響應於接收所述金鑰資訊,所述第二終端裝置對所述第一成員金鑰執行所述第二雜湊訊息鑑別碼運算以更新儲存在所述第二終端的所述第一成員金鑰。
  13. 如請求項12所述的加密系統,其中 所述第二終端裝置對根據所述第一訊息金鑰對所述加密訊息進行解密以取得所述訊息。
  14. 如請求項1所述的加密系統,其中 所述第一終端裝置基於所述橢圓曲線密碼學演算法產生對應於所述第一終端裝置的第一公鑰以及對應於所述第一公鑰的第一私鑰,並且基於公開金鑰密碼學產生憑證以及對應於所述憑證的數位簽章;以及 所述第一終端裝置傳送所述第一公鑰、所述憑證以及所述數位簽章至所述伺服器以註冊加入所述群組即時通訊。
  15. 如請求項14所述的加密系統,其中 所述第一終端裝置基於對應於所述橢圓曲線密碼學演算法的定義域產生所述第一公鑰、所述第一私鑰、所述第二群組金鑰、所述臨時公鑰以及所述臨時私鑰。
  16. 如請求項1所述的加密系統,其中 所述伺服器自所述群組即時通訊的成員接收異動資訊,並且根據所述異動資訊使所述第一群組金鑰失效。
  17. 如請求項14所述的加密系統,其中 所述伺服器自所述第一終端裝置接收訊息,其中所述訊息包括所述數位簽章;以及 所述伺服器根據所述憑證驗證所述數位簽章以判斷所述訊息的來源是否正確。
  18. 如請求項14所述的加密系統,其中 所述第二終端裝置自所述第一終端裝置接收訊息,其中所述訊息包括所述數位簽章;以及 所述第二終端裝置根據所述憑證驗證所述數位簽章以判斷所述訊息的來源是否正確。
  19. 一種群組即時通訊的加密方法,包括: 伺服器通訊連接至第一終端裝置以及第二終端裝置; 所述伺服器傳送群組金鑰狀態至所述第一終端裝置; 響應於所述群組金鑰狀態指示第一群組金鑰失效,所述第一終端裝置基於橢圓曲線密碼學演算法產生第二群組金鑰、臨時公鑰以及對應於所述臨時公鑰的臨時私鑰; 所述第一終端裝置根據所述第二群組金鑰、所述臨時私鑰以及對應於所述第二終端裝置的第二公鑰產生群組金鑰密文; 響應於自所述第一終端裝置接收所述群組金鑰密文,所述伺服器傳送對應於所述第二群組金鑰的金鑰資訊至所述第一終端裝置; 響應於自所述伺服器接收所述金鑰資訊,所述第一終端裝置根據所述第二群組金鑰更新對應於所述第一終端裝置的第一成員金鑰;以及 所述第一終端裝置根據所述第一成員金鑰與所述第二終端裝置進行通訊。
TW110123849A 2021-06-29 2021-06-29 群組即時通訊的加密系統和加密方法 TWI761243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110123849A TWI761243B (zh) 2021-06-29 2021-06-29 群組即時通訊的加密系統和加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110123849A TWI761243B (zh) 2021-06-29 2021-06-29 群組即時通訊的加密系統和加密方法

Publications (2)

Publication Number Publication Date
TWI761243B true TWI761243B (zh) 2022-04-11
TW202301830A TW202301830A (zh) 2023-01-01

Family

ID=82199236

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110123849A TWI761243B (zh) 2021-06-29 2021-06-29 群組即時通訊的加密系統和加密方法

Country Status (1)

Country Link
TW (1) TWI761243B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI835580B (zh) * 2023-03-09 2024-03-11 中華電信股份有限公司 多終端之端對端加密通訊方法及電腦可讀媒介

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201840159A (zh) * 2017-04-07 2018-11-01 安地卡及巴布達商區塊鏈控股有限公司 用於使用區塊鏈之安全資料記錄分配之方法及系統
TW201921887A (zh) * 2017-08-23 2019-06-01 安地卡及巴布達商區塊鏈控股有限公司 用於高安全性高速資料加密及傳輸的電腦實施系統與方法
TWI717071B (zh) * 2019-10-25 2021-01-21 中華電信股份有限公司 憑證管理系統及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201840159A (zh) * 2017-04-07 2018-11-01 安地卡及巴布達商區塊鏈控股有限公司 用於使用區塊鏈之安全資料記錄分配之方法及系統
TW201921887A (zh) * 2017-08-23 2019-06-01 安地卡及巴布達商區塊鏈控股有限公司 用於高安全性高速資料加密及傳輸的電腦實施系統與方法
TWI717071B (zh) * 2019-10-25 2021-01-21 中華電信股份有限公司 憑證管理系統及其方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI835580B (zh) * 2023-03-09 2024-03-11 中華電信股份有限公司 多終端之端對端加密通訊方法及電腦可讀媒介

Also Published As

Publication number Publication date
TW202301830A (zh) 2023-01-01

Similar Documents

Publication Publication Date Title
TWI748853B (zh) 用於基於區塊鏈的系統結合錢包管理系統中的安全多方防遺失儲存及加密金鑰轉移
US7814320B2 (en) Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
CN108599925B (zh) 一种基于量子通信网络的改进型aka身份认证***和方法
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
EP2416524B1 (en) System and method for secure transaction of data between wireless communication device and server
US20170223008A1 (en) System and method for generating a server-assisted strong password from a weak secret
Toorani et al. An elliptic curve-based signcryption scheme with forward secrecy
US11870891B2 (en) Certificateless public key encryption using pairings
CN110048849B (zh) 一种多层保护的会话密钥协商方法
CN110020524B (zh) 一种基于智能卡的双向认证方法
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
US11438316B2 (en) Sharing encrypted items with participants verification
US10630466B1 (en) Apparatus and method for exchanging cryptographic information with reduced overhead and latency
JP2017163612A (ja) 端末認証システム、サーバ装置、及び端末認証方法
JP2004364303A (ja) メッセージを暗号化及び復号化するためのリンク鍵を確立する方法及びシステム
CN110999202A (zh) 用于对数据进行高度安全、高速加密和传输的计算机实现的***和方法
KR101014849B1 (ko) 제 3의 신뢰기관의 도움 없이 공개키에 대한 상호 인증 및키 교환 방법 및 그 장치
KR101704540B1 (ko) M2m 환경의 다중 디바이스 데이터 공유를 위한 그룹키 관리 방법
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
GB2589390A (en) Methods of generating a key and a communication method
JP4924943B2 (ja) 認証付鍵交換システム、認証付鍵交換方法およびプログラム
JP4615128B2 (ja) 暗号鍵スプリットコンバイナを用いる音声及びデータ暗号化方法
CN116455561A (zh) 用于轻量装置的嵌入式tls协议
CN113918971A (zh) 基于区块链的消息传输方法、装置、设备及可读存储介质