+

TW202433890A - Paired encryption-decryption method - Google Patents

Paired encryption-decryption method Download PDF

Info

Publication number
TW202433890A
TW202433890A TW112105053A TW112105053A TW202433890A TW 202433890 A TW202433890 A TW 202433890A TW 112105053 A TW112105053 A TW 112105053A TW 112105053 A TW112105053 A TW 112105053A TW 202433890 A TW202433890 A TW 202433890A
Authority
TW
Taiwan
Prior art keywords
node device
node
initial value
encryption
value
Prior art date
Application number
TW112105053A
Other languages
Chinese (zh)
Other versions
TWI827465B (en
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 TW112105053A priority Critical patent/TWI827465B/en
Application granted granted Critical
Publication of TWI827465B publication Critical patent/TWI827465B/en
Publication of TW202433890A publication Critical patent/TW202433890A/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

The present invention relates to a paired encryption-decryption Method. At least one control device is connected to multiple node devices. The control device obtains ID lists of all node devices. The control device uses a PUF encryption value to generate a pre-shared key. The control device sends the pre-shared key and the ID lists to the multiple node devices. Any of two node devices confirm the security between the two node device through the pre-shared key, and share the respective initial value of the two node devices. Then, a shared joint key of any of the two node devices is generated by encryption for communication security between the any of the two node devices.

Description

成對加解密方法Pairwise encryption and decryption method

本發明是有關一種成對加解密方法,特別是一種將身份驗證、P2P 加密和密鑰管理結合之方法,係使用PUF生成共享金鑰,並再依據該共享金鑰進行驗證任兩個節點之間的安全性,之後再將任兩個節點之初始值共享,再加密產生共用的聯合密鑰,以做為任兩個節點之間的通訊安全之用。The present invention relates to a pairwise encryption and decryption method, in particular, a method combining identity authentication, P2P encryption and key management, which uses PUF to generate a shared key, and then verifies the security between any two nodes based on the shared key, and then shares the initial values of any two nodes and encrypts them to generate a shared joint key for communication security between any two nodes.

目前網路和半導體的發展,物聯網(IoT)正在經歷黃金的一年。同時,製造環境中的物聯網(IoT)面臨著資訊安全的關鍵問題,而且隨著網路技術的蓬勃發展,攻擊方式也越來越豐富,傳統的防禦解決方案不再適合製造環境。因此,業界會需要更輕量級、更強大的安全機制來應對未來的安全挑戰。With the current development of networks and semiconductors, the Internet of Things (IoT) is experiencing a golden year. At the same time, the Internet of Things (IoT) in the manufacturing environment faces the key issue of information security. With the vigorous development of network technology, the attack methods are becoming more and more diverse, and traditional defense solutions are no longer suitable for the manufacturing environment. Therefore, the industry will need a lighter and more powerful security mechanism to cope with future security challenges.

因此,在基本上,機密性(Confidentiality)、完整性(Integrity) 、可用性(Availability)可作為基本的資料處理的方式亦有其重要性。在機密性中,其討論的範疇為,如何確保資料在傳遞與儲存的過程中,能保證其私密性,避免遭受到相關攻擊或其他因素,造成資料不小心被揭露。Therefore, confidentiality, integrity, and availability are important as basic data processing methods. In confidentiality, the scope of discussion is how to ensure the privacy of data during transmission and storage, and avoid related attacks or other factors that may cause the data to be accidentally disclosed.

簡單來說,在物聯網環境中,資料尚未抵達目的時被攔截竊取,進而造成資訊的正確性被竄改,這是違反資料的機密性的例子。所以,資料在尚未公布或是傳送給真正的目的地時,遭受其他的因素而更動,皆是機密性討論的問題。機密性資料傳遞和儲存時必定會加密處理,以保證資訊的正當性能確實傳達。Simply put, in the IoT environment, if data is intercepted and stolen before it reaches its destination, causing the accuracy of the information to be tampered with, this is an example of violating the confidentiality of the data. Therefore, if data is changed by other factors before it is published or sent to its true destination, it is also a confidentiality issue. Confidential data must be encrypted when it is transmitted and stored to ensure that the legitimate performance of the information is indeed transmitted.

而關於物聯網的資訊安全,一般都會先想到軟體及網路加密連線,但其實除了網路層面的安全防護,實體設備同樣存在著威脅。一旦出現仿冒晶片或其他問題,駭客就可能透過網路遠端控制設備獲得金鑰和其他敏感資訊,進而造成企業損失。以軟體為主的資安設計已不再足以提供全面保障,這也是為什麼基於硬體的安全技術開始逐年受到青睞。When it comes to information security in the Internet of Things, people usually think of software and encrypted network connections first. However, in addition to network-level security protection, physical devices also pose threats. Once counterfeit chips or other problems occur, hackers may remotely control devices through the network to obtain keys and other sensitive information, thereby causing losses to the company. Software-based information security design is no longer sufficient to provide comprehensive protection, which is why hardware-based security technology has begun to gain popularity year by year.

PUF 就是這樣一種硬體安全技術,PUF 技術的金鑰儲存與傳統作法不同之處在於,PUF 技術則是使用 SRAM固有的自然隨機的電氣變化,將他類似於獨一無二的「指紋」變成祕密的密碼金鑰,可作為安全子系統的基礎。PUF is such a hardware security technology. The key storage of PUF technology is different from traditional practices in that PUF technology uses the natural random electrical changes inherent in SRAM to turn it into a secret password key similar to a unique "fingerprint", which can serve as the basis of the security subsystem.

然而若是所有節點進行通訊都需要使用PUF 技術來進行加解密,將是非常麻煩的,其設備架置之成本也是很高。However, if all nodes need to use PUF technology for encryption and decryption during communication, it will be very troublesome and the cost of equipment installation will also be very high.

故本案先是透過 SRAM 的電路特性製作出具物理不可仿製功能(PUF),產生出具有獨一無二不易被複製值,並且以此生成的密鑰用於創建兩節點間的安全通道,以保證傳輸節點間(點對點)通訊的可靠性、機密性、完整性,於創建完安全通道後,兩節點間便不再透過原先由PUF生成的金鑰,而是改以透過Diffie-Hallman之方法生成共享金鑰為雙方通訊加解密,也因為多了一層加解密機制,使得機台在接收封包時可透過本產品過濾封包,加強機台間通訊傳輸的安全性,因此本發明應為一最佳解決方案。Therefore, this case first uses the circuit characteristics of SRAM to create a physically unclonable function (PUF) to generate a unique value that is not easy to be copied, and the key generated in this way is used to create a secure channel between two nodes to ensure the reliability, confidentiality and integrity of the (point-to-point) communication between the transmission nodes. After the secure channel is created, the two nodes no longer use the key originally generated by PUF, but instead use the Diffie-Hallman method to generate a shared key for bilateral communication encryption and decryption. Because of the additional encryption and decryption mechanism, the machine can filter the packet through this product when receiving the packet, thereby enhancing the security of the communication transmission between the machines. Therefore, this invention should be an optimal solution.

本發明成對加解密方法,其步驟為: (1) 至少一個控制裝置係與多個節點裝置連線,該控制裝置取得所有節點裝置的ID清單數據,而該控制裝置使用一PUF加密值進行加密生成一共享密鑰初始值,該控制裝置更對該共享密鑰初始值進行雜湊演算,以取得一預共享密鑰; (2) 該控制裝置傳送該ID清單數據及該預共享密鑰給所有節點裝置,而任兩個節點裝置係互相進行連線通訊,其中任兩個節點裝置係為一第一節點裝置及一第二節點裝置,該第一節點裝置使用該預共享密鑰將一第二初始值加密後,傳送給該第二節點裝置; (3) 該第二節點裝置使用該預共享密鑰解密以取得該第二初始值,對該第二初始值進行雜湊演算取得一第一雜湊值,該第二節點裝置使用該預共享密鑰將一第三初始值及該第一雜湊值加密後,傳送給該第一節點裝置; (4) 該第一節點裝置使用該預共享密鑰解密,以取得該第三初始值及該第一雜湊值,對該第二初始值進行雜湊演算,以取得一第二雜湊值,並將該第一雜湊值與該第二雜湊值進行比較,以判斷與該第二節點裝置之間的通訊是否具有安全性; (5) 該第一節點裝置及該第二節點裝置,分別使用該第二初始值及該第三初始值進行加密生成一聯合密鑰初始值,該第一節點裝置及該第二節點裝置更分別對該聯合密鑰初始值進行雜湊演算,以取得一聯合密鑰; (6) 該第一節點裝置對該第三初始值進行雜湊演算,以取得一第三雜湊值,並使用該聯合密鑰對該第三雜湊值加密後,傳送給該第二節點裝置; (7) 該第二節點裝置使用該聯合密鑰解密,以取得該第三雜湊值,該第二節點裝置對該第三初始值進行雜湊演算,以取得一第四雜湊值,並將該第三雜湊值與該第四雜湊值進行比較,以判斷與該第一節點裝置之間的通訊是否具有安全性。 The paired encryption and decryption method of the present invention comprises the following steps: (1) at least one control device is connected to a plurality of node devices, the control device obtains the ID list data of all node devices, and the control device uses a PUF encryption value to encrypt and generate a shared key initial value, and the control device further performs hashing operation on the shared key initial value to obtain a pre-shared key; (2) the control device transmits the ID list data and the pre-shared key to all node devices, and any two node devices are connected and communicated with each other, wherein any two node devices are a first node device and a second node device, and the first node device uses the pre-shared key to encrypt a second initial value and transmits it to the second node device; (3) The second node device uses the pre-shared key to decrypt to obtain the second initial value, performs hashing on the second initial value to obtain a first hash value, and the second node device uses the pre-shared key to encrypt a third initial value and the first hash value, and transmits the encrypted data to the first node device; (4) The first node device uses the pre-shared key to decrypt to obtain the third initial value and the first hash value, performs hashing on the second initial value to obtain a second hash value, and compares the first hash value with the second hash value to determine whether the communication with the second node device is secure; (5) The first node device and the second node device respectively use the second initial value and the third initial value to encrypt and generate a combined key initial value. The first node device and the second node device further perform hashing on the combined key initial value to obtain a combined key; (6) The first node device performs hashing on the third initial value to obtain a third hash value, and encrypts the third hash value using the combined key and transmits it to the second node device; (7) The second node device uses the joint key to decrypt to obtain the third hash value, the second node device performs hashing on the third initial value to obtain a fourth hash value, and compares the third hash value with the fourth hash value to determine whether the communication with the first node device is secure.

更具體的說,所述控制裝置係與一靜態隨機存取記憶體電性連接,該靜態隨機存取記憶體電性連接於每一次啟動後,能夠產生一隨機數據,而該控制裝置接收該隨機數據,並將該隨機數據區分出多個位址及多組加密值,其中每一組加密值更對應到其中一個位址,而該控制裝置取出多組連續或/及非連續的加密值做為該PUF加密值,該控制裝置使用該PUF加密值對一第一初始值進行加密(互斥或運算或是其他加密法)生成該共享密鑰初始值。More specifically, the control device is electrically connected to a static random access memory, and the static random access memory is electrically connected to generate a random data after each startup. The control device receives the random data and distinguishes the random data into multiple addresses and multiple sets of encryption values, wherein each set of encryption values further corresponds to one of the addresses, and the control device takes out multiple sets of continuous or/and non-continuous encryption values as the PUF encryption value. The control device uses the PUF encryption value to encrypt a first initial value (mutually exclusive or calculation or other encryption methods) to generate the shared key initial value.

更具體的說,所述第一初始值係為該控制裝置隨機產生。More specifically, the first initial value is randomly generated by the control device.

更具體的說,所述第二初始值係為該第一節點裝置隨機產生,且該第三初始值係為該第二節點裝置隨機產生。More specifically, the second initial value is randomly generated for the first node device, and the third initial value is randomly generated for the second node device.

更具體的說,所述控制裝置、該第一節點裝置及該第二節點裝置係能夠以安全散列演算法(Secure Hash Algorithm , SHA)進行雜湊演算。More specifically, the control device, the first node device and the second node device are capable of performing hashing calculations using a secure hash algorithm (SHA).

更具體的說,所述第一節點裝置使用該預共享密鑰對一第一節點安全資訊進行加密為一第一加密資訊,該第一節點安全資訊係包含有該第二初始值、一第一時間戳記及一第一節點ID,而該第二節點裝置使用該預共享密鑰對該第一加密資訊進行解密後,該第二節點裝置更進行驗證該第一時間戳記是否正確,並驗證該第一節點ID是否位於該ID清單數據內。More specifically, the first node device uses the pre-shared key to encrypt a first node security information into a first encrypted information, and the first node security information includes the second initial value, a first timestamp and a first node ID. After the second node device uses the pre-shared key to decrypt the first encrypted information, the second node device further verifies whether the first timestamp is correct and verifies whether the first node ID is located in the ID list data.

更具體的說,所述第一節點裝置使用該聯合密鑰對一第一節點通訊資訊進行加密為一第三加密資訊,該第一節點通訊資訊係包含有該第三雜湊值、一第三時間戳記,而該第二節點裝置使用該聯合密鑰對該第三加密資訊解密後,該第二節點裝置更進行驗證該第三時間戳記是否正確。More specifically, the first node device uses the joint key to encrypt a first node communication information into a third encrypted information, and the first node communication information includes the third hash value and a third timestamp. After the second node device uses the joint key to decrypt the third encrypted information, the second node device further verifies whether the third timestamp is correct.

更具體的說,所述第一節點裝置使用該預共享密鑰對一第二節點安全資訊進行加密為一第二加密資訊,該第二節點安全資訊係包含有該第三初始值、一第二時間戳記及一第二節點ID,而該第一節點裝置使用該預共享密鑰對該第二加密資訊解密後,該第二節點裝置更進行驗證該第二時間戳記是否正確,並驗證該第二節點ID是否位於該ID清單數據內。More specifically, the first node device uses the pre-shared key to encrypt a second node security information into a second encrypted information, and the second node security information includes the third initial value, a second timestamp and a second node ID. After the first node device uses the pre-shared key to decrypt the second encrypted information, the second node device further verifies whether the second timestamp is correct and verifies whether the second node ID is located in the ID list data.

有關於本發明其他技術內容、特點與功效,在以下配合參考圖式之較佳實施例的詳細說明中,將可清楚的呈現。Other technical contents, features and effects of the present invention will be clearly presented in the following detailed description of the preferred embodiments with reference to the drawings.

請參閱第1圖,本案成對加解密方法所應用之整體架構係包含一靜態隨機存取記憶體1及一控制裝置2,該控制裝置2係與該靜態隨機存取記憶體1電性連接,而該控制裝置2具有電源接口(圖中未示),電源接口連接電源接線(圖中未示),以提供運作所需電源。Please refer to Figure 1. The overall architecture of the paired encryption and decryption method of this case includes a static random access memory 1 and a control device 2. The control device 2 is electrically connected to the static random access memory 1, and the control device 2 has a power interface (not shown in the figure), and the power interface is connected to a power line (not shown in the figure) to provide the power required for operation.

該靜態隨機存取記憶體1於每一次通電開機啟動後,則會產生一隨機數據(固定且隨機的數值),於本案之實施例中,所使用的靜態隨機存取記憶體1係為一具有SRAM晶片(舉例,類似於Cypress公司之CY62256N, 256-Kbit (32 K × 8) Static RAM)。The static random access memory 1 generates a random data (fixed and random value) after each power-on startup. In the embodiment of the present case, the static random access memory 1 used is a SRAM chip (for example, similar to Cypress's CY62256N, 256-Kbit (32 K × 8) Static RAM).

本案實施例所使用的靜態隨機存取記憶體1係為封包後的產品,因此本身具有電源接口(圖中未示)與傳輸接口(圖中未示)的結構特徵,透過傳輸接口與排線(圖中未示)與控制裝置2連接,而電源接口用以連接電源接線(圖中未示),以提供運作所需電源。The static random access memory 1 used in the present embodiment is a packaged product, and therefore has structural features of a power interface (not shown in the figure) and a transmission interface (not shown in the figure). It is connected to the control device 2 through the transmission interface and the cable (not shown in the figure), and the power interface is used to connect to the power line (not shown in the figure) to provide the power required for operation.

除此之外,該靜態隨機存取記憶體1亦能夠連接一電路基板(圖中未示),該電路基板上亦具有電源接口(圖中未示)與傳輸接口(圖中未示)的結構特徵,因此該靜態隨機存取記憶體1透過電路基板之傳輸接口與排線(圖中未示)與控制裝置2連接,而電路基板之電源接口用以連接電源接線,以提供運作所需電源。In addition, the static random access memory 1 can also be connected to a circuit substrate (not shown in the figure), and the circuit substrate also has structural features of a power interface (not shown in the figure) and a transmission interface (not shown in the figure). Therefore, the static random access memory 1 is connected to the control device 2 through the transmission interface and the cable (not shown in the figure) of the circuit substrate, and the power interface of the circuit substrate is used to connect the power line to provide the power required for operation.

除此之外,該靜態隨機存取記憶體1與該控制裝置2能夠於同一塊電路基板(圖中未示)上,該靜態隨機存取記憶體1或是該電路基板上具有傳輸接口(圖中未示),因此能夠透過傳輸接口與排線與控制裝置2連接,而電路基板上更具有電源接口(圖中未示),用以連接電源接線,以提供該靜態隨機存取記憶體1與該控制裝置2運作所需電源。In addition, the static random access memory 1 and the control device 2 can be on the same circuit substrate (not shown in the figure). The static random access memory 1 or the circuit substrate has a transmission interface (not shown in the figure), so it can be connected to the control device 2 through the transmission interface and the cable. The circuit substrate also has a power interface (not shown in the figure) for connecting the power line to provide the static random access memory 1 and the control device 2 with the power required for operation.

如第2圖所示,該控制裝置2係至少包含有一處理器21及一可讀取記錄媒體22(可讀取記錄媒體22係為具有記憶功能的記憶體元件),該可讀取記錄媒體22儲存該第一初始值,該第一初始值係由該控制裝置2隨機產生,或是由一外部裝置取得。As shown in FIG. 2 , the control device 2 at least includes a processor 21 and a readable recording medium 22 (the readable recording medium 22 is a memory element with a memory function). The readable recording medium 22 stores the first initial value, which is randomly generated by the control device 2 or obtained by an external device.

該加密單元221用以接收該靜態隨機存取記憶體1產生之隨機數據,並依據該第一初始值之位元寬度,將該隨機數據區分出多個位址及多組加密值(每一組加密值更對應到其中一個位址),而該加密單元221所分出的多個位址係包含有一初始位址、一結束位址及複數個連續排序位於該初始位址與該結束位址之間的位址。The encryption unit 221 is used to receive the random data generated by the static random access memory 1, and according to the bit width of the first initial value, the random data is divided into multiple addresses and multiple sets of encryption values (each set of encryption values corresponds to one of the addresses), and the multiple addresses divided by the encryption unit 221 include an initial address, an end address and a plurality of addresses continuously arranged between the initial address and the end address.

該加密單元221由該初始位址為起點,再依據該加密單元221設定之碰撞偏移量,用以透過該碰撞偏移量,挑選出一新的起點位址,並由該新的起點位址挑選多個加密值,並取出多組連續或/及非連續的加密值做為該PUF加密值,之後再以該PUF加密值對該第一初始值進行加密(互斥或運算或是其他加密法)生成該共享密鑰初始值。The encryption unit 221 takes the initial address as the starting point, and then selects a new starting address according to the collision offset set by the encryption unit 221, and selects multiple encryption values from the new starting address, and takes out multiple sets of continuous or/and non-continuous encryption values as the PUF encryption value, and then encrypts the first initial value with the PUF encryption value (mutually exclusive or calculation or other encryption methods) to generate the shared key initial value.

該加密單元221係對該共享密鑰初始值以安全散列演算法(Secure Hash Algorithm , 例如SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256)進行雜湊演算,以取得一預共享密鑰。The encryption unit 221 performs hashing operation on the initial value of the shared key using a secure hash algorithm (e.g., SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) to obtain a pre-shared key.

該加密單元221更透過一漢明碼,進行檢測並修正該隨機數據之資料位元中的錯誤。The encryption unit 221 further detects and corrects errors in the data bits of the random data through a Hamming code.

該控制裝置2係與多個節點裝置連線,本案僅以第一節點裝置3及第二節點裝置4做為實施說明。The control device 2 is connected to a plurality of node devices. In this case, only the first node device 3 and the second node device 4 are used as implementation examples.

如第3圖所示,該第一節點裝置3係至少包含有一處理器31及一可讀取記錄媒體32,該可讀取記錄媒體32儲存該第二初始值,該第二初始值係由該第一節點裝置3隨機產生,或是由一外部裝置取得。As shown in FIG. 3 , the first node device 3 at least includes a processor 31 and a readable recording medium 32. The readable recording medium 32 stores the second initial value. The second initial value is randomly generated by the first node device 3 or obtained from an external device.

該可讀取記錄媒體32更具有一第一加解密單元321,該第一加解密單元321能夠接收該ID清單數據及該預共享密鑰,並先使用該預共享密鑰進行解密取得第三初始值及第一雜湊值,並再對第二初始值進行雜湊演算產生第二雜湊值,用以對該第二節點裝置4所傳送的第一雜湊值進行比較,以確認與第二節點裝置之間的通訊是否具有安全性。The readable recording medium 32 further has a first encryption/decryption unit 321, which can receive the ID list data and the pre-shared key, and first use the pre-shared key to decrypt to obtain a third initial value and a first hash value, and then perform a hashing operation on the second initial value to generate a second hash value for comparison with the first hash value transmitted by the second node device 4 to confirm whether the communication with the second node device is secure.

該第一加解密單元321更能夠以第二初始值及該第三初始值進行加密生成一聯合密鑰初始值,並對該聯合密鑰初始值進行雜湊演算,以取得一聯合密鑰,之後再對第三初始值進行雜湊演算產生第三雜湊值,再將第三雜湊值傳送給該第二節點裝置4進行驗證。The first encryption/decryption unit 321 can further encrypt the second initial value and the third initial value to generate a combined key initial value, and perform hashing operation on the combined key initial value to obtain a combined key, and then perform hashing operation on the third initial value to generate a third hash value, and then transmit the third hash value to the second node device 4 for verification.

如第4圖所示,該第二節點裝置4係至少包含有一處理器41及一可讀取記錄媒體42,該可讀取記錄媒體42儲存該第三初始值,該第三初始值係由該第二節點裝置4隨機產生,或是由一外部裝置取得。As shown in FIG. 4 , the second node device 4 at least includes a processor 41 and a readable recording medium 42. The readable recording medium 42 stores the third initial value. The third initial value is randomly generated by the second node device 4 or obtained from an external device.

該可讀取記錄媒體42更具有一第二加解密單元421,該第二加解密單元421能夠接收該ID清單數據及該預共享密鑰,並先使用該預共享密鑰進行解密取得第二初始值,並使用預共享密鑰對該第二初始值進行雜湊演算產生第一雜湊值,再將第一湊值傳送給該第一節點裝置3進行驗證。The readable recording medium 42 further has a second encryption and decryption unit 421, which can receive the ID list data and the pre-shared key, and first use the pre-shared key to decrypt to obtain a second initial value, and use the pre-shared key to perform hashing calculations on the second initial value to generate a first hash value, and then transmit the first hash value to the first node device 3 for verification.

該第二加解密單元421更能夠以第二初始值及該第三初始值進行加密生成一聯合密鑰初始值,並對該聯合密鑰初始值進行雜湊演算,以取得一聯合密鑰,之後使用該聯合密鑰進行解密取得第三雜湊值,並再對第三初始值進行雜湊演算產生第四雜湊值,用以對該第二節點裝置4所傳送的第三雜湊值進行比較,以確認與第一節點裝置之間的通訊是否具有安全性。The second encryption/decryption unit 421 is further capable of encrypting the second initial value and the third initial value to generate a combined key initial value, and performing hashing operation on the combined key initial value to obtain a combined key, and then using the combined key to perform decryption to obtain a third hash value, and then performing hashing operation on the third initial value to generate a fourth hash value for comparison with the third hash value transmitted by the second node device 4 to confirm whether the communication with the first node device is secure.

當安全性確認之後,該第一節點裝置3與該第二節點裝置4會儲存該聯合密鑰,日後該第一節點裝置3與該第二節點裝置4之間通訊會透過該聯合密鑰加解密,同時由於該聯合密鑰是由該第一節點裝置3之第二初始值與該第二節點裝置4之第三初始值進行加密與雜湊演算所產生,因此該聯合密鑰不會由其他節點裝置所取得。After security is confirmed, the first node device 3 and the second node device 4 will store the joint key. In the future, the communication between the first node device 3 and the second node device 4 will be encrypted and decrypted through the joint key. At the same time, since the joint key is generated by encrypting and hashing the second initial value of the first node device 3 and the third initial value of the second node device 4, the joint key will not be obtained by other node devices.

如第5圖所示,為本發明成對加解密方法之流程示意圖,其步驟為: (1) 至少一個控制裝置係與多個節點裝置連線,該控制裝置取得所有節點裝置的ID清單數據,而該控制裝置使用一PUF加密值進行加密生成一共享密鑰初始值,該控制裝置更對該共享密鑰初始值進行雜湊演算,以取得一預共享密鑰501; (2) 該控制裝置傳送該ID清單數據及該預共享密鑰給所有節點裝置,而任兩個節點裝置係互相進行連線通訊,其中任兩個節點裝置係為一第一節點裝置及一第二節點裝置,該第一節點裝置使用該預共享密鑰將一第二初始值加密後,傳送給該第二節點裝置502; (3) 該第二節點裝置使用該預共享密鑰解密以取得該第二初始值,對該第二初始值進行雜湊演算取得一第一雜湊值,該第二節點裝置使用該預共享密鑰將一第三初始值及該第一雜湊值加密後,傳送給該第一節點裝置503; (4) 該第一節點裝置使用該預共享密鑰解密,以取得該第三初始值及該第一雜湊值,對該第二初始值進行雜湊演算,以取得一第二雜湊值,並將該第一雜湊值與該第二雜湊值進行比較,以判斷與該第二節點裝置之間的通訊是否具有安全性504; (5) 該第一節點裝置及該第二節點裝置,分別使用該第二初始值及該第三初始值進行加密生成一聯合密鑰初始值,該第一節點裝置及該第二節點裝置更分別對該聯合密鑰初始值進行雜湊演算,以取得一聯合密鑰505; (6) 該第一節點裝置對該第三初始值進行雜湊演算,以取得一第三雜湊值,並使用該聯合密鑰對該第三雜湊值加密後,傳送給該第二節點裝置506; (7) 該第二節點裝置使用該聯合密鑰解密,以取得該第三雜湊值,該第二節點裝置對該第三初始值進行雜湊演算,以取得一第四雜湊值,並將該第三雜湊值與該第四雜湊值進行比較,以判斷與該第一節點裝置之間的通訊是否具有安全性507。 As shown in FIG. 5, it is a flowchart of the paired encryption and decryption method of the present invention, and its steps are: (1) At least one control device is connected to multiple node devices, and the control device obtains the ID list data of all node devices, and the control device uses a PUF encryption value to encrypt and generate a shared key initial value, and the control device further performs hashing calculation on the shared key initial value to obtain a pre-shared key 501; (2) The control device transmits the ID list data and the pre-shared key to all node devices, and any two node devices are connected and communicated with each other, wherein any two node devices are a first node device and a second node device, and the first node device uses the pre-shared key to encrypt a second initial value and transmit it to the second node device 502; (3) The second node device uses the pre-shared key to decrypt to obtain the second initial value, performs hashing on the second initial value to obtain a first hash value, and the second node device uses the pre-shared key to encrypt a third initial value and the first hash value, and transmits the encrypted data to the first node device 503; (4) The first node device uses the pre-shared key to decrypt to obtain the third initial value and the first hash value, performs hashing on the second initial value to obtain a second hash value, and compares the first hash value with the second hash value to determine whether the communication with the second node device is secure 504; (5) The first node device and the second node device use the second initial value and the third initial value to encrypt and generate a combined key initial value, and the first node device and the second node device further perform hashing on the combined key initial value to obtain a combined key 505; (6) The first node device performs hashing on the third initial value to obtain a third hash value, and encrypts the third hash value using the combined key and transmits it to the second node device 506; (7) The second node device uses the joint key to decrypt to obtain the third hash value, the second node device performs hashing on the third initial value to obtain a fourth hash value, and compares the third hash value with the fourth hash value to determine whether the communication with the first node device is secure 507.

步驟501,控制裝置先設置所有ID清單數據(id all),裡面包含所有節點裝置的ID。 In step 501, the control device first sets all ID list data (id all ), which includes the IDs of all node devices.

步驟501,控制裝置隨機選擇一個第一初始值(V random),再取得一PUF加密值(V PUF),並把第一初始值(V random)跟PUF加密值(V PUF)做互斥或運算(V hash= K random⊕ V PUF),以生成一共享密鑰初始值(V hash),之後再對共享密鑰初始值(V hash)進行雜湊演算(hash),以取得預共享密鑰K ps(K ps= H SHA−256(V hsah))。 In step 501, the control device randomly selects a first initial value (V random ), obtains a PUF encrypted value (V PUF ), and performs a mutual exclusion or operation (V hash = K random ⊕ V PUF ) on the first initial value (V random ) and the PUF encrypted value (V PUF ) to generate a shared key initial value (V hash ), and then performs a hash operation (hash) on the shared key initial value (V hash ) to obtain a pre-shared key K ps (K ps = H SHA−256 (V hsah )).

其中步驟502~505,則是開始進行透過Diffie-Hallman之方法生成聯合密鑰。Steps 502 to 505 start to generate a joint key using the Diffie-Hallman method.

步驟502,控制裝置再透過VPN建立之加密通道,把預共享密鑰(K ps)與ID清單數據(id all)傳送給所有節點,而所有節點把預共享密鑰(K ps)與ID清單數據(id all)存於記憶體內。 In step 502, the control device transmits the pre-shared key ( Kps ) and the ID list data ( idall ) to all nodes through the encrypted channel established by VPN, and all nodes store the pre-shared key ( Kps ) and the ID list data ( idall ) in the memory.

步驟502,其中第一節點裝置作為發起通訊的節點端,該第一節點裝置會隨機產生一第二初始值(VN init)。之後,第一節點裝置會產生第一時間戳記(timestamps)T及第一加密資訊(E ps1),其中第一加密資訊(E ps1)是第一節點裝置使用預共享密鑰(K ps)對第一節點安全資訊進行加密(互斥或運算或是其他加密法皆可)所產生,該第一節點安全資訊係包含第二初始值(VN init)、第一節點裝置ID(id init)及第一時間戳記(timestamps)T。之後,第一節點裝置把第一加密資訊(E ps1)傳送給第二節點裝置。 In step 502, the first node device acts as a node end that initiates communication. The first node device randomly generates a second initial value (VN init ). Afterwards, the first node device generates a first timestamp (timestamps) T and first encryption information (E ps1 ), wherein the first encryption information (E ps1 ) is generated by the first node device using a pre-shared key (K ps ) to encrypt the first node security information (mutually exclusive or calculation or other encryption methods are acceptable), and the first node security information includes the second initial value (VN init ), the first node device ID (id init ) and the first timestamp (timestamps) T. Afterwards, the first node device transmits the first encryption information (E ps1 ) to the second node device.

步驟503,其中第二節點裝置作為接收通訊的響應端,第二節點裝置接收到第一加密資訊(E ps1)後,能夠使用預共享密鑰(K ps)對該第一加密資訊(E ps1)解密,以取得第二初始值(VN init)、第一節點裝置ID(id init)及第一時間戳記(timestamps)T,之後確認第一時間戳記(timestamps)T是否正確,同時驗證第一節點裝置ID(id init)是否位於ID清單數據(id all)內。 In step 503, the second node device serves as a responder receiving communication. After receiving the first encrypted information (E ps1 ), the second node device can use the pre-shared key (K ps ) to decrypt the first encrypted information (E ps1 ) to obtain the second initial value (VN init ), the first node device ID (id init ) and the first timestamp (timestamps) T, and then confirm whether the first timestamp (timestamps) T is correct, and verify whether the first node device ID (id init ) is located in the ID list data (id all ).

步驟503,若驗證正確,第二節點裝置會隨機選擇一個第三初始值(VN response),再對第二初始值(VN init)進行雜湊演算(hash),以取得一第一雜湊值HN init(HN init= H SHA−256(VN init))。 In step 503, if the verification is correct, the second node device randomly selects a third initial value (VN response ), and then performs a hash operation (hashing) on the second initial value (VN init ) to obtain a first hash value HN init (HN init = H SHA−256 (VN init )).

步驟503,第二節點裝置產生第二時間戳記(timestamps)T及第二加密資訊(E ps2),其中第二加密資訊(E ps2)是第二節點裝置使用預共享密鑰(K ps)對一第二節點安全資訊進行加密(互斥或運算或是其他加密法皆可)所產生,該第二節點安全資訊係包含第一雜湊值(HN init)、第三初始值(VN response)、響應節點ID(id init)及第二時間戳記(timestamps)T。之後,第二節點裝置把第二加密資訊(E ps2)傳送給第一節點裝置。 In step 503, the second node device generates a second timestamp (timestamps) T and second encryption information ( Eps2 ), wherein the second encryption information ( Eps2 ) is generated by the second node device using a pre-shared key ( Kps ) to encrypt (mutually exclusive or calculation or other encryption methods are acceptable) a second node security information, and the second node security information includes a first hash value (HN init ), a third initial value (VN response ), a response node ID (id init ) and a second timestamp (timestamps) T. Afterwards, the second node device transmits the second encryption information ( Eps2 ) to the first node device.

步驟504,第一節點裝置接收到第二加密資訊(E ps2)後,使用預共享密鑰(K ps)對該第二加密資訊(E ps2)解密,以取得第一雜湊值(HN init)、第三初始值(VN response)及第二時間戳記(timestamps)T,之後確認第二時間戳記(timestamps)T是否正確,同時驗證響應節點ID(id init)是否位於ID清單(id all)內。 In step 504, after receiving the second encrypted information (E ps2 ), the first node device uses the pre-shared key (K ps ) to decrypt the second encrypted information (E ps2 ) to obtain the first hash value (HN init ), the third initial value (VN response ) and the second timestamp (timestamps) T, and then confirms whether the second timestamp (timestamps) T is correct, and verifies whether the response node ID (id init ) is in the ID list (id all ).

步驟504,第一節點裝置再把第二初始值(VN init) 進行雜湊演算(hash),以取得一第二雜湊值(HN init),並確認第一雜湊值(HN init)是否等於第二雜湊值(HN init)。若確認無誤,則節點之間則具有安全性。 In step 504, the first node device hashes the second initial value (VN init ) to obtain a second hash value (HN init ), and confirms whether the first hash value (HN init ) is equal to the second hash value (HN init ). If the confirmation is correct, the nodes are secure.

步驟505,第一節點裝置再把第二初始值(VN init)與第三初始值(VN response)做互斥或運算(XOR),以生成一聯合密鑰初始值V hash(V hash= VN init⊕ VN response),再對聯合密鑰初始值(V hash)進行雜湊演算(hash),以取得聯合密鑰K common(K common= H SHA−256(VN init⊕ VN response))。 In step 505, the first node device performs an exclusive OR operation (XOR) on the second initial value (VN init ) and the third initial value (VN response ) to generate a joint key initial value V hash (V hash = VN init ⊕ VN response ), and then performs a hash operation (hashing) on the joint key initial value (V hash ) to obtain a joint key K common (K common = H SHA−256 (VN init ⊕ VN response )).

步驟505,第一節點裝置也把第二初始值(VN init)與第三初始值(VN response)做互斥或運算(XOR),以生成一聯合密鑰初始值V hash(V hash= VN init⊕ VN response),再對聯合密鑰初始值(V hash)進行雜湊演算(hash),以取得聯合密鑰K common(K common= H SHA−256(VN init⊕ VN response))。 In step 505, the first node device also performs an exclusive OR operation (XOR) on the second initial value (VN init ) and the third initial value (VN response ) to generate a joint key initial value V hash (V hash = VN init ⊕ VN response ), and then performs a hash operation (hashing) on the joint key initial value (V hash ) to obtain a joint key K common (K common = H SHA−256 (VN init ⊕ VN response )).

步驟506,第一節點裝置會產生第三時間戳記(timestamps)T,並對第三初始值(VN response) 進行雜湊演算(hash),以取得一第三雜湊值(HN response),第一節點裝置再產生第三加密資訊(E ps3),其中第三加密資訊(E ps3)是第一節點裝置使用聯合密鑰(K common)對一第一節點通訊資訊進行加密(互斥或運算或是其他加密法皆可)所產生,該第一節點通訊資訊係包含有第三雜湊值(HN response)及第三時間戳記(timestamps)T。之後,第一節點裝置把第三加密資訊(E ps3)傳送給第二節點裝置。同時,該聯合密鑰(K common)會儲存於第一節點裝置的記憶體中。 In step 506, the first node device generates a third timestamp T and performs a hash operation on the third initial value (VN response ) to obtain a third hash value (HN response ). The first node device then generates a third encrypted information (E ps3 ), wherein the third encrypted information (E ps3 ) is generated by the first node device using a joint key (K common ) to encrypt a first node communication information (mutually exclusive or calculation or other encryption methods are acceptable), and the first node communication information includes the third hash value (HN response ) and the third timestamp T. Afterwards, the first node device transmits the third encrypted information (E ps3 ) to the second node device. At the same time, the joint key (K common ) is stored in the memory of the first node device.

步驟507,第二節點裝置使用聯合密鑰(K common)對該第三加密資訊(E ps3)解密,以取得第三雜湊值(HN response)及第三時間戳記(timestamps)T,之後確認第三時間戳記(timestamps)T是否正確。 In step 507, the second node device uses the joint key (K common ) to decrypt the third encrypted information (E ps3 ) to obtain a third hash value (HN response ) and a third timestamp (timestamps) T, and then confirms whether the third timestamp (timestamps) T is correct.

步驟507,第二節點裝置再把第三初始值(VN response)進行雜湊演算(hash),以取得一第四雜湊值((HN response),並確認第三雜湊值(HN response)是否等於第三雜湊值(HN response)。若確認無誤,則把聯合密鑰(K common)會儲存於第二節點裝置的記憶體中。 In step 507, the second node device hashes the third initial value (VN response ) to obtain a fourth hash value (HN response ), and confirms whether the third hash value (HN response ) is equal to the third hash value (HN response ). If the confirmation is correct, the joint key (K common ) is stored in the memory of the second node device.

如此則完成安全性驗證,當第一節點裝置與第二節點裝置之間要通訊時,則能夠將資訊透過聯合密鑰進行加密(互斥或運算或是其他加密法皆可),同時能夠透過雜湊運算後的相互驗證,以避免封包中途被攔截竄改。In this way, security verification is completed. When the first node device and the second node device want to communicate, the information can be encrypted through a joint key (mutual exclusion, calculation or other encryption methods are possible), and at the same time, mutual verification can be performed after hashing to prevent the packet from being intercepted and modified in the middle.

而本案對於PUF加密值更有其特殊之處,而PUF加密值產生之實施流程為: (1) 開始運作600,先將靜態隨機存取記憶體進行啟動通電601,檢查供給該靜態隨機存取記憶體之電壓是否在容許值內602,若判斷是,則將控制裝置之處理器的晶片腳位初始化603,若判斷否,則將靜態隨機存取記憶體進行關閉斷電604; (2) 檢查處理器的晶片各腳位數值是否位於正常範圍內605,若否,則進入流程604,若是,則由該控制裝置傳送控制訊號給該靜態隨機存取記憶體606; (3) 判斷是否接收來自靜態隨機存取記憶體的回傳值607(隨機數據),若判斷沒有接收,則中斷系統操作於一定時間內608,若流程607判斷有接收,則進一步判斷是否已存在漢明碼609,若流程609判斷有漢明碼,則再透過漢明碼檢查回傳值是否有誤612,若流程609判斷沒有存在漢明碼,則將回傳值加入漢明碼610,並打包漢明碼與回傳值611後,則進入流程612; (4) 流程612判斷沒有錯誤後,則打包回傳值613,並輸入加密目標值(第一初始值)616,若流程612判斷有錯誤,則嘗試修復614,再進行判斷是否修復成功615,若流程615沒有修復成功,則回到流程608,若有修復成功,則進入流程616; (5) 接著輸入碰撞偏移量617,再進行測試碰撞偏移量是否正常618,若是流程618測試碰撞偏移量不正常,則清除碰撞偏移量619,並進入流程617,若流程618測試碰撞偏移量正常,則調用回傳值620; (6) 進行判斷加密單元是否成功取得回傳值621,若是流程621判斷加密單元沒有取得回傳值,則進行清除記憶體(可讀取記錄媒體)內所有快取623,並於流程623清除完成後,進入流程606,若是流程621判斷加密單元有取得回傳值,則將加密目標值進行進制(例如二進制)轉換622; (7) 接著進行記憶體對齊624,並檢查記憶體是否對齊625,若是流程625判斷記憶體沒有對齊,則進入流程623,若是流程625判斷記憶體有對齊,則配置記憶體空間626,並檢查記憶體空間是否成功配置627,若是流程627判斷沒有成功配置,則進入流程623,若是流程627檢查記憶體有成功配置,則產出亂數628,並儲存亂數629。 (8) 另外,更能夠再添加流程630,進行判斷亂數是否重複,若是流程630判斷重複,則回到流程619,若是流程630判斷沒有重複,則結束流程631。 This case is more special for PUF encryption value, and the implementation process of PUF encryption value generation is: (1) Start operation 600, first start the static random access memory 601, check whether the voltage supplied to the static random access memory is within the allowable value 602, if it is judged to be, initialize the chip pins of the processor of the control device 603, if it is judged to be not, shut down the static random access memory 604; (2) Check whether the value of each chip pin of the processor is within the normal range 605, if not, enter the process 604, if yes, the control device sends a control signal to the static random access memory 606; (3) Determine whether the return value 607 (random data) from the static random access memory is received. If it is determined that it is not received, the system operation is interrupted for a certain period of time 608. If the process 607 determines that it is received, it is further determined whether the Chinese code exists 609. If the process 609 determines that the Chinese code exists, the return value is checked for errors through the Chinese code 612. If the process 609 determines that the Chinese code does not exist, the return value is added to the Chinese code 610, and the Chinese code and the return value are packaged 611, and then the process 612 is entered; (4) After process 612 determines that there is no error, it packages the return value 613 and inputs the encrypted target value (first initial value) 616. If process 612 determines that there is an error, it attempts to repair 614 and then determines whether the repair is successful 615. If process 615 does not repair successfully, it returns to process 608. If the repair is successful, it enters process 616; (5) Then input the collision offset 617 and then test whether the collision offset is normal 618. If process 618 tests that the collision offset is abnormal, clear the collision offset 619 and enter process 617. If process 618 tests that the collision offset is normal, call the return value 620; (6) Determine whether the encryption unit successfully obtains the return value 621. If process 621 determines that the encryption unit does not obtain the return value, clear all caches in the memory (readable recording medium) 623, and after process 623 is cleared, enter process 606. If process 621 determines that the encryption unit has obtained the return value, convert the encrypted target value into a binary system (e.g., binary) 622; (7) Then, the memory is aligned 624 and checked whether the memory is aligned 625. If the process 625 determines that the memory is not aligned, the process 623 is entered. If the process 625 determines that the memory is aligned, the memory space is configured 626 and the memory space is checked whether it is successfully configured 627. If the process 627 determines that the memory is not successfully configured, the process 623 is entered. If the process 627 checks that the memory is successfully configured, a random number is generated 628 and the random number is stored 629. (8) In addition, process 630 can be added to determine whether the random number is repeated. If process 630 determines that it is repeated, it returns to process 619. If process 630 determines that it is not repeated, it ends process 631.

以上流程,主要是由硬體啟動一直到亂數產生後,並檢驗亂數是否重複的整體實施流程,針對以上流程,進一步詳細技術說明如下。The above process mainly covers the overall implementation process from hardware startup to random number generation and checking whether the random number is repeated. The detailed technical description of the above process is as follows.

流程601~607,主要是啟動該靜態隨機存取記憶體,而該靜態隨機存取記憶體會產生固定且隨機的數據,例如將靜態隨機存取記憶體(SRAM)的15條位址線對應到一個2 15次方的記憶體陣列組(控制裝置),開機時的SRAM的電子隨機狀態特性會產生出獨一無二隨機數值(回傳值),透過控制裝置2進行採樣,則能夠得到一組2 15bytes的隨機二進位陣列。 Processes 601-607 are mainly to start the static random access memory, and the static random access memory will generate fixed and random data. For example, the 15 address lines of the static random access memory (SRAM) are mapped to a 2 15 power memory array group (control device). The electronic random state characteristics of the SRAM at startup will generate a unique random value (return value). Through sampling by the control device 2, a set of 2 15 bytes of random binary array can be obtained.

本案能夠將該隨機數據(隨機二進位陣列)區分出多個位址及多組加密金鑰,例如取得2 15bytes後,若是區分為五組加密金鑰,則每一組的加密金鑰之位址長度為2 3bytes。 This scheme can distinguish multiple addresses and multiple sets of encryption keys from the random data (random binary array). For example, after obtaining 2 15 bytes, if it is divided into five sets of encryption keys, the address length of each set of encryption keys is 2 3 bytes.

本案於實際實施時,所取出的位址長度最短為2 3bytes、最長為2 15bytes,而取出的加密金鑰組數最少為一組,最多並不限制。 In the actual implementation of this case, the shortest length of the address retrieved is 2 3 bytes and the longest is 2 15 bytes, and the number of encryption key groups retrieved is at least one, and there is no limit on the maximum number.

本案區分出的加密金鑰之位址長度能夠為相同長度或是不同長度,前述2 15bytes的舉例就是相同長度,但亦能夠為不同長度,例如取得2 20bytes後,若是區分為四組加密金鑰,這四組加密金鑰分別能夠為第一組(2 3bytes)、第二組(2 5bytes) 、第三組(2 8bytes) 、第四組(2 4bytes))。因此能夠依據需求,進行設定區分出多個位址及多組加密金鑰。 The length of the addresses of the encryption keys distinguished in this case can be the same length or different lengths. The above example of 2 15 bytes is the same length, but it can also be different lengths. For example, after obtaining 2 20 bytes, if it is distinguished into four groups of encryption keys, these four groups of encryption keys can be the first group (2 3 bytes), the second group (2 5 bytes), the third group (2 8 bytes), and the fourth group (2 4 bytes). Therefore, it is possible to set and distinguish multiple addresses and multiple groups of encryption keys according to needs.

流程608,當判斷沒有接收到回傳值,則會中斷系統操作,並重新取得隨機數值(回傳值)。In process 608, when it is determined that no return value is received, the system operation is interrupted and the random value (return value) is obtained again.

流程609~615,是透過漢明碼(檢查碼)檢驗回傳值是否有錯誤,而漢明碼檢驗說明如下(若是錯誤位元過多,有可能無法修復,如此情況,則會進入流程408): (1) 將檢查碼(Check Code)附加在資料中,來進行檢查與驗算,步驟如以下,先取K個bits作為檢查碼,M這邊為資料的代稱,M<=2 n,K=n+1,假設資料是8個bits,那麼8<=2 3,K=3+1,檢查碼(K)為4碼,如上述漢明碼為資料和檢查碼的結合,8bits(原始資料)+4bits(檢查碼),所以漢明碼為12位元所組成,如表一所示。 (2) P1到P12為位元位置,檢查碼C1,C2,C4,C8(2 n),依序將資料填進去,這邊資料以10010110為示範,如表二所示,需要注意的一點是,在檢查碼需要空出來,所以要資料跳過,接著我們將資料是1的位元挑出來,將其編碼作XOR運算,得到檢查碼為0110,將結果填回去,再重複以上的步驟,可以判斷一個編碼是否有錯,會檢查加入檢查碼後的資料,將位元是1的位置編碼作XOR運算,若其結果均為0,編碼驗證無誤。 位元位址 P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 位元編碼 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 原始資料 1 0 0 1 0 1 1 0 檢查碼 C8 C4 C2 C1 表一 漢明碼(Hamming Code) 位元位址 P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 位元編碼 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 原始資料 1 0 0 1 0 1 1 0 檢查碼 0 1 1 0 表二 漢明碼+檢查碼(Hamming Code+Check Code) (3) 嘗試修改P05位置的原始資料,如表三所示,原本為1改為0,再重新作XOR運算,很顯可知編碼有錯,其錯誤位元在P05(0101)。 位元位址 P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 位元編碼 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 原始資料 1 0 0 1 0 1 0 0 檢查碼 0 1 1 0 表三 漢明碼偵錯 Process 609-615 uses a Hamming code (check code) to check whether the returned value has errors. The Hamming code check is described as follows (if there are too many error bits, it may not be repaired. In this case, the process will enter process 408): (1) The check code is attached to the data for inspection and verification. The steps are as follows. First, K bits are taken as the check code. M is the name of the data. M <= 2n , K = n + 1. Assuming that the data is 8 bits, then 8 <= 23 , K = 3 + 1, the check code (K) is 4 bits. As mentioned above, the Hamming code is a combination of data and check code, 8 bits (original data) + 4 bits (check code), so the Hamming code is composed of 12 bits, as shown in Table 1. (2) P1 to P12 are bit positions, and the check codes are C1, C2, C4, C8 (2 n ). The data is filled in sequentially. Here, the data is 10010110 as shown in Table 2. One thing to note is that the check code needs to be left blank, so the data is skipped. Then we pick out the bits with 1 in the data, encode them for XOR operation, and get the check code 0110. Fill the result back in and repeat the above steps. We can determine whether a coding is wrong. We will check the data after adding the check code, encode the positions with 1 bits for XOR operation. If the results are all 0, the coding is verified to be correct. Bit Address P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 Bit encoding 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Original data 1 0 0 1 0 1 1 0 Check code C8 C4 C2 C1 Table 1 Hamming Code Bit Address P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 Bit encoding 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Original data 1 0 0 1 0 1 1 0 Check code 0 1 1 0 Table 2 Hamming Code + Check Code (3) Try to modify the original data at position P05, as shown in Table 3. Change the original 1 to 0 and then perform the XOR operation again. It is obvious that the encoding is wrong. The error bit is at P05 (0101). Bit Address P12 P11 P0 P09 P08 P07 P06 P05 P04 P03 P02 P01 Bit encoding 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Original data 1 0 0 1 0 1 0 0 Check code 0 1 1 0 Table 3 Chinese code detection

流程616~619,是輸入加密目標值(第一初始值)與碰撞偏移量,碰撞偏移量說明如下: (1) 在得出數值後,我們在2 15的二進位隨機陣列中,取出長度加總為6bytes(48bits) 的值作為進行加解密運算的數值(類似於hash function)。 (2) 之後我們透過程式運算作為檢測,將上述採樣出來的6bytes的原始採樣值和要進行加密的原始輸入值(須先轉換成二進制)進行XOR 的運算,正常情況下將會產出一組獨一無二的值,然而如若當輸入的原始數值不同,卻產生相同的output時,本技術透過加上碰撞偏移量使得所有輸入的原始數值,皆能產出不同的且穩定的output。 (3) 如表四所述,假設隨機數據可取出的長度為48bits,因此可以區分出多個位址[0]~[6]及多組加密金鑰。 位元位址 [0] [1] [2] [3] [4] [5] 加密金鑰 11011011 01011110 11100110 01011001 11010110 00001111 表四 隨機數據區分示例 (4) 若是要使用24bits進行加密,設定hash(x,i,j,k),其中x為加密目標值,i則是碰撞偏移量,j則是加密組數,k則是位址間隔hash(x,i) 。而當設定hash(5,0,3,1)時,則取出[0]~[2]的值與加密目標值(5, 二進制為00000101)進行加密(互斥或運算或是其他加密法)生成一亂數值。 (5) 由於原本預設的碰撞偏移量皆為0,故皆是從[0]開始取出,因此[0]為初始位址,而[5]為結束位址,[1]~[4]則是連續排序位於該初始位址與該結束位址之間的位址,而當碰撞偏移量更改時,若是碰撞偏移量為1,原本的取出起點則由[0]偏移到[1],而這個當下,[1]就成了新的起點位址,並再由該新的起點位址往後挑選多個連續的加密金鑰對該第一初始值進行加密(互斥或運算或是其他加密法)生成亂數值。 (6) 如流程630所述,由於不同輸入有可能會導致得到相同亂數輸出(有可能是因為靜態隨機存取記憶體的不穩定因素或是經過XOR加密後自然產生相同亂數),針對如此情況,能夠更改碰撞偏移量,假如碰撞偏移量為1,則是取出[1]~[3]的值與加密目標值(5, 二進制為00000101)進行加密(互斥或運算或是其他加密法)生成亂數值。 (7) 由於一開始取出的長度是固定的,例如48bits可以區分出 [0]~[5]的位址,若要使用24bits進行加密,碰撞偏移量也僅能由[0]~[3],若是超過[3],則無法正常抓取,因此流程418才需要判斷輸入的碰撞偏移量是否正常,若是判斷不正常,則會將判斷碰撞偏移量清除重新輸入。 (8) 另外,除了挑選出多個連續位址之外,亦能夠挑選出多個非連續位址,例如隨機數據可取出的長度為256bits,當區分出位址[0]~[32]及多組加密金鑰後,若是設定hash(x,1,5,3),則會取出非連續位址([1]、[4]、[7]、[10]、[13])對x進行加密。 (9) 另外,除了固定間隔挑選之外,亦能夠隨機間隔進行挑選,例如間隔1、3、4、7,則會取出[1]、[2]、[5]、[9]、[16]。 (10) 另外,除了固定間隔挑選之外,亦能夠連續與非連續混合挑選,例如間隔1、1、4、7,則會取出[1]、[2]、[3]、[7]、[14]。 Process 616~619 is to input the encryption target value (first initial value) and the collision offset. The collision offset is explained as follows: (1) After obtaining the value, we take out the value with a total length of 6 bytes (48 bits) from the 2 15 binary random array as the value for encryption and decryption operations (similar to a hash function). (2) After that, we use program operation as a test to perform an XOR operation on the above sampled 6-byte original sample value and the original input value to be encrypted (must be converted to binary first). Under normal circumstances, a unique value will be generated. However, if the original input values are different but the same output is generated, this technology adds a collision offset so that all the original input values can generate different and stable outputs. (3) As shown in Table 4, assuming that the length of random data that can be retrieved is 48 bits, multiple addresses [0]~[6] and multiple sets of encryption keys can be distinguished. Bit Address [0] [1] [2] [3] [4] [5] Encryption Key 11011011 01011110 11100110 01011001 11010110 00001111 Table 4 Random data partition example (4) If you want to use 24 bits for encryption, set hash(x,i,j,k), where x is the encryption target value, i is the collision offset, j is the number of encryption groups, and k is the address interval hash(x,i). When setting hash(5,0,3,1), take out the values of [0]~[2] and the encryption target value (5, binary is 00000101) to encrypt (mutual exclusion or operation or other encryption method) to generate a random value. (5) Since the original default collision offset is 0, all extraction starts from [0]. Therefore, [0] is the initial address and [5] is the end address. [1] to [4] are the addresses that are consecutively arranged between the initial address and the end address. When the collision offset is changed, if the collision offset is 1, the original extraction starting point is shifted from [0] to [1]. At this moment, [1] becomes the new starting address, and then multiple consecutive encryption keys are selected from the new starting address to encrypt the first initial value (mutually exclusive or calculation or other encryption methods) to generate a random value. (6) As described in process 630, different inputs may result in the same random number output (possibly due to the instability of the static random access memory or the natural generation of the same random number after XOR encryption). In such a case, the collision offset can be changed. If the collision offset is 1, the values of [1] to [3] are taken out and encrypted with the encryption target value (5, binary 00000101) (mutual exclusion or operation or other encryption method) to generate a random number value. (7) Since the length initially retrieved is fixed, for example, 48 bits can distinguish addresses from [0] to [5]. If 24 bits are to be used for encryption, the collision offset can only be from [0] to [3]. If it exceeds [3], it cannot be captured normally. Therefore, process 418 needs to determine whether the input collision offset is normal. If it is determined to be abnormal, the collision offset will be cleared and re-entered. (8) In addition to selecting multiple consecutive addresses, multiple non-consecutive addresses can also be selected. For example, the length of random data that can be retrieved is 256 bits. After distinguishing addresses [0]~[32] and multiple sets of encryption keys, if hash(x,1,5,3) is set, non-consecutive addresses ([1], [4], [7], [10], [13]) will be retrieved to encrypt x. (9) In addition to selecting at fixed intervals, random intervals can also be selected. For example, if the intervals are 1, 3, 4, 7, [1], [2], [5], [9], [16] will be retrieved. (10) In addition to fixed-interval selection, continuous and non-continuous mixed selection is also possible. For example, if the interval is 1, 1, 4, 7, [1], [2], [3], [7], [14] will be selected.

流程620~627,是開始要使用輸入碰撞偏移量後所取出的加密金鑰,首先必須再次重新檢查回傳值是否仍然存在,若是回傳值已不存在,就必須重新取得回傳值,之後將加密目標值(第一初始值)進行二進制轉換後,進行記憶體對齊與記憶體空間的配置,以確認亂數產生後有足夠記憶體位址與空間存放。Process 620~627 is to start using the encryption key retrieved after inputting the collision offset. First, it is necessary to recheck whether the return value still exists. If the return value no longer exists, it is necessary to obtain the return value again. After that, the encrypted target value (first initial value) is converted into binary, and then the memory is aligned and the memory space is configured to confirm that there is enough memory address and space to store the random number after it is generated.

另外若是加密金鑰與加密目標之位址不同時,亦會透過記憶體對齊進行匹配,以使能夠使用加密金鑰對加密目標進行加密,例如加密金鑰之位址長度為8bits(例如11011011),而加密目標之位址為16bits(例如1101101111011101),則能夠將加密金鑰之位址長度對齊成為0000000011011011,以方便能夠進行加密。In addition, if the encryption key and the encryption target address are different, they will also be matched through memory alignment so that the encryption key can be used to encrypt the encryption target. For example, if the encryption key address length is 8 bits (such as 11011011), and the encryption target address is 16 bits (such as 1101101111011101), the encryption key address length can be aligned to 0000000011011011 to facilitate encryption.

流程628~631,開始產出亂數,並將產生之亂數儲存後,進行重複亂數的驗證,若是有發現重複亂數,則能夠清除碰撞偏移量,並重新輸入碰撞偏移量,以避免不同輸入而有相同的亂數輸出。In process 628-631, random numbers are generated and stored, and then repeated random numbers are verified. If repeated random numbers are found, the collision offset can be cleared and the collision offset can be re-entered to avoid the same random number output due to different inputs.

本案提到的不同輸入,是不同的加密目標值(第一初始值)而得到相同的亂數輸出,透過碰撞偏移量的更改,將能夠大幅度的避免如此情況發生(當我們丟一個數值a進去,會產生一個數值a’,本案的機制便是能夠穩定的每次丟a 皆產生出a’,當如果丟b 進去,產出的值一樣是a’的情況下,則會進行檢測,從而增加碰撞偏移量進行修正,使得數值b能穩定的產出b’)。The different inputs mentioned in this case are different encryption target values (first initial value) that get the same random number output. By changing the collision offset, such a situation can be largely avoided (when we throw a value a in, a value a’ will be generated. The mechanism of this case is to stably generate a’ every time a is thrown in. If b is thrown in and the output value is still a’, a detection will be performed, thereby increasing the collision offset for correction, so that the value b can stably output b’).

本發明所提供之成對加解密方法,與其他習用技術相互比較時,其優點如下: (1) 本案透過 SRAM 的電路特性製作出具物理不可仿製功能(PUF),產生出具有獨一無二不易被複製值,並且以此生成的密鑰用於創建兩節點間的安全通道,以保證兩個傳輸節點間通訊的可靠性、機密性、完整性。 (2) 本案於使用PUF生成的金鑰驗證通道後,兩節點間便不再透過原先由PUF生成的金鑰,而是改以透過Diffie-Hallman之方法生成聯合密鑰為雙方通訊加解密,也因為多了一層加解密機制,使得在接收封包時可透過本案技術進行過濾封包,加強節點間通訊傳輸的安全性,。 (3) 本案將物理不可仿製功能(PUF)集成到現有的密鑰生成方法中,用以產生出具獨一無二不易被複製之真隨機數,還使用了輕量級和節能型的特性,故當創建安全通道後,節點間通訊和密鑰重認證將使用聯合密鑰進行加密,而不再需要啟動 PUF,因此控制裝置只需初始化 PUF 模組一次,也使用雜湊來提高 PUF 生成的值的穩定性。 (4) 本案為網路環境中加入一層節點的保護,創建輕量化的可靠、可信任安全通道以便傳輸資料,除此之外也會對資料進行加密,使其不易被有心人士攻擊攔截封包或是被輸入惡意參數,提升網路環境中資訊技術的安全性。 The advantages of the pairwise encryption and decryption method provided by the present invention compared with other conventional technologies are as follows: (1) This case uses the circuit characteristics of SRAM to produce a physically unforgeable function (PUF) to generate a unique value that is not easily copied, and the key generated by this is used to create a secure channel between two nodes to ensure the reliability, confidentiality and integrity of the communication between the two transmission nodes. (2) After using the key generated by PUF to verify the channel, the two nodes no longer use the key originally generated by PUF, but instead use the Diffie-Hallman method to generate a joint key for bilateral communication encryption and decryption. Because there is an additional layer of encryption and decryption mechanism, the technology of this case can be used to filter packets when receiving packets, thereby enhancing the security of communication transmission between nodes. (3) This case integrates the physical unforgeable function (PUF) into the existing key generation method to generate a unique and difficult to copy true random number. It also uses lightweight and energy-saving characteristics. Therefore, after the secure channel is created, the communication between nodes and key re-authentication will be encrypted using a joint key, and there is no need to activate the PUF. Therefore, the control device only needs to initialize the PUF module once, and hashing is also used to improve the stability of the value generated by the PUF. (4) This case adds a layer of node protection to the network environment, creating a lightweight, reliable, and trusted secure channel for data transmission. In addition, the data will be encrypted to make it difficult for malicious people to intercept packets or input malicious parameters, thereby improving the security of information technology in the network environment.

本發明已透過上述之實施例揭露如上,然其並非用以限定本發明,任何熟悉此一技術領域具有通常知識者,在瞭解本發明前述的技術特徵及實施例,並在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之請求項所界定者為準。The present invention has been disclosed as above through the above-mentioned embodiments, but they are not used to limit the present invention. Anyone familiar with this technical field and having common knowledge can make some changes and modifications without departing from the spirit and scope of the present invention after understanding the above-mentioned technical features and embodiments of the present invention. Therefore, the scope of patent protection of the present invention shall be determined by the definition of the claim items attached to this specification.

1:靜態隨機存取記憶體1 2:控制裝置2 21:處理器21 22:可讀取記錄媒體22 221:加密單元221 3:第一節點裝置3 31:處理器31 32:可讀取記錄媒體32 321:第一加解密單元321 4:第二節點裝置4 41:處理器41 42:可讀取記錄媒體42 421:第二加解密單元421 1: static random access memory 1 2: control device 2 21: processor 21 22: readable recording medium 22 221: encryption unit 221 3: first node device 3 31: processor 31 32: readable recording medium 32 321: first encryption unit 321 4: second node device 4 41: processor 41 42: readable recording medium 42 421: second encryption unit 421

[第1圖]係本發明成對加解密方法之整體架構示意圖。 [第2圖]係本發明成對加解密方法之控制裝置之架構示意圖。 [第3圖]係本發明成對加解密方法之第一節點裝置之架構示意圖。 [第4圖]係本發明成對加解密方法之第二節點裝置之架構示意圖。 [第5圖]係本發明成對加解密方法之流程示意圖。 [第5圖]係本發明成對加解密方法之流程示意圖。 [第6A圖]係本發明成對加解密方法之亂數產生步驟流程圖。 [第6B圖]係本發明成對加解密方法之亂數產生步驟流程圖。 [第6C圖]係本發明成對加解密方法之亂數產生步驟流程圖。 [Figure 1] is a schematic diagram of the overall structure of the paired encryption and decryption method of the present invention. [Figure 2] is a schematic diagram of the structure of the control device of the paired encryption and decryption method of the present invention. [Figure 3] is a schematic diagram of the structure of the first node device of the paired encryption and decryption method of the present invention. [Figure 4] is a schematic diagram of the structure of the second node device of the paired encryption and decryption method of the present invention. [Figure 5] is a schematic diagram of the flow chart of the paired encryption and decryption method of the present invention. [Figure 5] is a schematic diagram of the flow chart of the paired encryption and decryption method of the present invention. [Figure 6A] is a flow chart of the random number generation step of the paired encryption and decryption method of the present invention. [Figure 6B] is a flow chart of the random number generation step of the paired encryption and decryption method of the present invention. [Figure 6C] is a flow chart of the random number generation step of the paired encryption and decryption method of the present invention.

1:靜態隨機存取記憶體 1: Static random access memory

2:控制裝置 2: Control device

3:第一節點裝置 3: First node device

4:第二節點裝置 4: Second node device

Claims (8)

一種成對加解密方法,其步驟為: 至少一個控制裝置係與多個節點裝置連線,該控制裝置取得所有節點裝置的ID清單數據,而該控制裝置使用一PUF加密值進行加密生成一共享密鑰初始值,該控制裝置更對該共享密鑰初始值進行雜湊演算,以取得一預共享密鑰; 該控制裝置傳送該ID清單數據及該預共享密鑰給所有節點裝置,而任兩個節點裝置係互相進行連線通訊,其中任兩個節點裝置係為一第一節點裝置及一第二節點裝置,該第一節點裝置使用該預共享密鑰將一第二初始值加密後,傳送給該第二節點裝置; 該第二節點裝置使用該預共享密鑰解密以取得該第二初始值,對該第二初始值進行雜湊演算取得一第一雜湊值,該第二節點裝置使用該預共享密鑰將一第三初始值及該第一雜湊值加密後,傳送給該第一節點裝置; 該第一節點裝置使用該預共享密鑰解密,以取得該第三初始值及該第一雜湊值,對該第二初始值進行雜湊演算,以取得一第二雜湊值,並將該第一雜湊值與該第二雜湊值進行比較,以判斷與該第二節點裝置之間的通訊是否具有安全性; 該第一節點裝置及該第二節點裝置,分別使用該第二初始值及該第三初始值進行加密生成一聯合密鑰初始值,該第一節點裝置及該第二節點裝置更分別對該聯合密鑰初始值進行雜湊演算,以取得一聯合密鑰; 該第一節點裝置對該第三初始值進行雜湊演算,以取得一第三雜湊值,並使用該聯合密鑰對該第三雜湊值加密後,傳送給該第二節點裝置; 該第二節點裝置使用該聯合密鑰解密,以取得該第三雜湊值,該第二節點裝置對該第三初始值進行雜湊演算,以取得一第四雜湊值,並將該第三雜湊值與該第四雜湊值進行比較,以判斷與該第一節點裝置之間的通訊是否具有安全性。 A pairwise encryption and decryption method, the steps of which are: At least one control device is connected to multiple node devices, the control device obtains the ID list data of all node devices, and the control device uses a PUF encryption value to encrypt and generate a shared key initial value, and the control device further performs hashing calculation on the shared key initial value to obtain a pre-shared key; The control device transmits the ID list data and the pre-shared key to all node devices, and any two node devices are connected and communicated with each other, wherein any two node devices are a first node device and a second node device, and the first node device uses the pre-shared key to encrypt a second initial value and transmit it to the second node device; The second node device uses the pre-shared key to decrypt to obtain the second initial value, performs hashing on the second initial value to obtain a first hash value, and the second node device uses the pre-shared key to encrypt a third initial value and the first hash value, and transmits them to the first node device; The first node device uses the pre-shared key to decrypt to obtain the third initial value and the first hash value, performs hashing on the second initial value to obtain a second hash value, and compares the first hash value with the second hash value to determine whether the communication with the second node device is secure; The first node device and the second node device use the second initial value and the third initial value to encrypt and generate a combined key initial value, and the first node device and the second node device further perform hash calculations on the combined key initial value to obtain a combined key; The first node device performs hash calculations on the third initial value to obtain a third hash value, and uses the combined key to encrypt the third hash value and transmit it to the second node device; The second node device uses the joint key to decrypt to obtain the third hash value, the second node device performs hashing on the third initial value to obtain a fourth hash value, and compares the third hash value with the fourth hash value to determine whether the communication with the first node device is secure. 如請求項1所述之成對加解密方法,其中該控制裝置係與一靜態隨機存取記憶體電性連接,該靜態隨機存取記憶體電性連接於每一次啟動後,能夠產生一隨機數據,而該控制裝置接收該隨機數據,並將該隨機數據區分出多個位址及多組加密值,其中每一組加密值更對應到其中一個位址,而該控制裝置取出多組連續或/及非連續的加密值做為該PUF加密值,該控制裝置使用該PUF加密值對一第一初始值進行加密生成該共享密鑰初始值。A paired encryption and decryption method as described in claim 1, wherein the control device is electrically connected to a static random access memory, and the static random access memory is electrically connected to generate a random data after each startup, and the control device receives the random data and divides the random data into multiple addresses and multiple sets of encryption values, wherein each set of encryption values further corresponds to one of the addresses, and the control device takes out multiple sets of continuous and/or non-continuous encryption values as the PUF encryption value, and the control device uses the PUF encryption value to encrypt a first initial value to generate the shared key initial value. 如請求項1所述之成對加解密方法,其中該第一初始值係為該控制裝置隨機產生。The pairwise encryption and decryption method as described in claim 1, wherein the first initial value is randomly generated by the control device. 如請求項1所述之成對加解密方法,其中該第二初始值係為該第一節點裝置隨機產生,且該第三初始值係為該第二節點裝置隨機產生。The paired encryption and decryption method as described in claim 1, wherein the second initial value is randomly generated for the first node device, and the third initial value is randomly generated for the second node device. 如請求項1所述之成對加解密方法,其中該控制裝置、該第一節點裝置及該第二節點裝置係能夠以安全散列演算法進行雜湊演算。The paired encryption and decryption method as described in claim 1, wherein the control device, the first node device and the second node device are capable of performing hashing operations using a secure hash algorithm. 如請求項1所述之成對加解密方法,其中該第一節點裝置使用該預共享密鑰對一第一節點安全資訊進行加密為一第一加密資訊,該第一節點安全資訊係包含有該第二初始值、一第一時間戳記及一第一節點ID,而該第二節點裝置使用該預共享密鑰對該第一加密資訊進行解密後,該第二節點裝置更進行驗證該第一時間戳記是否正確,並驗證該第一節點ID是否位於該ID清單數據內。The paired encryption and decryption method as described in claim 1, wherein the first node device uses the pre-shared key to encrypt a first node security information into a first encrypted information, and the first node security information includes the second initial value, a first timestamp and a first node ID. After the second node device uses the pre-shared key to decrypt the first encrypted information, the second node device further verifies whether the first timestamp is correct and verifies whether the first node ID is located in the ID list data. 如請求項1所述之成對加解密方法,其中該第一節點裝置使用該聯合密鑰對一第一節點通訊資訊進行加密為一第三加密資訊,該第一節點通訊資訊係包含有該第三雜湊值、一第三時間戳記,而該第二節點裝置使用該聯合密鑰對該第三加密資訊解密後,該第二節點裝置更進行驗證該第三時間戳記是否正確。The paired encryption and decryption method as described in claim 1, wherein the first node device uses the joint key to encrypt a first node communication information into a third encrypted information, and the first node communication information includes the third hash value and a third timestamp. After the second node device uses the joint key to decrypt the third encrypted information, the second node device further verifies whether the third timestamp is correct. 如請求項1所述之成對加解密方法,其中第一節點裝置使用該預共享密鑰對一第二節點安全資訊進行加密為一第二加密資訊,該第二節點安全資訊係包含有該第三初始值、一第二時間戳記及一第二節點ID,而該第一節點裝置使用該預共享密鑰對該第二加密資訊解密後,該第二節點裝置更進行驗證該第二時間戳記是否正確,並驗證該第二節點ID是否位於該ID清單數據內。A paired encryption and decryption method as described in claim 1, wherein the first node device uses the pre-shared key to encrypt a second node security information into a second encrypted information, and the second node security information includes the third initial value, a second timestamp and a second node ID. After the first node device uses the pre-shared key to decrypt the second encrypted information, the second node device further verifies whether the second timestamp is correct and verifies whether the second node ID is located in the ID list data.
TW112105053A 2023-02-13 2023-02-13 Paired encryption-decryption method TWI827465B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW112105053A TWI827465B (en) 2023-02-13 2023-02-13 Paired encryption-decryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW112105053A TWI827465B (en) 2023-02-13 2023-02-13 Paired encryption-decryption method

Publications (2)

Publication Number Publication Date
TWI827465B TWI827465B (en) 2023-12-21
TW202433890A true TW202433890A (en) 2024-08-16

Family

ID=90053535

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112105053A TWI827465B (en) 2023-02-13 2023-02-13 Paired encryption-decryption method

Country Status (1)

Country Link
TW (1) TWI827465B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI875508B (en) * 2024-03-07 2025-03-01 國立臺灣科技大學 Many-to-many encryption and decryption system and method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5420114B2 (en) * 2011-06-02 2014-02-19 三菱電機株式会社 Key information generating apparatus and key information generating method
WO2013101085A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Secure key storage using physically unclonable functions
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
EP3823322B1 (en) * 2018-12-20 2023-02-15 Merck Patent GmbH Methods and systems for preparing and performing an object authentication
US12126740B2 (en) * 2021-06-25 2024-10-22 Arizona Board Of Regents On Behalf Of Northern Arizona University Systems and methods using search engines to generate cryptographic keys from erratic physical unclonable functions
US12095933B2 (en) * 2021-08-02 2024-09-17 Arizona Board Of Regents On Behalf Of Northern Arizona University PUF-protected pseudo-homomorphic methods to generate session keys

Also Published As

Publication number Publication date
TWI827465B (en) 2023-12-21

Similar Documents

Publication Publication Date Title
US12047519B2 (en) Physical unclonable function based mutual authentication and key exchange
CN101213814B (en) security patching system
CN102571748B (en) Enrollment of physically unclonable functions
AU2003203712B2 (en) Methods for remotely changing a communications password
CN117278214A (en) Network safety communication method for power system
CN111737769A (en) Multi-chip package and method for secure communication between connected dies
Yu et al. The Perils of Unauthenticated Encryption: Kerberos Version 4.
CN115242392B (en) Method and system for realizing industrial information safety transmission based on safety transmission protocol
Wang et al. EBIAS: ECC-enabled blockchain-based identity authentication scheme for IoT device
TWI827465B (en) Paired encryption-decryption method
Makhdoom et al. A novel code attestation scheme against Sybil Attack in Wireless Sensor Networks
CN119109657A (en) Trusted transmission method and system based on trusted industrial control system
TWI835356B (en) Random value generation system with adjustable stability and its method
Mehjabin et al. PAMA: PUF-based Aggregated Multi-hop Attestation Protocol for IoT
CN118378310B (en) Detection method and system of block chain system
US12438731B2 (en) Diophantine system for digital signatures
US20250125970A1 (en) Network authentication process
Reaz et al. A Comprehensive Framework for Building Highly Secure, Network-Connected Devices: Chip to App
Kumar et al. A PUF based Authentication Technique for IoT Devices
Li et al. A Blockchain-PUF-based Secure Mutual Authentication Scheme for IoT
CN117528517A (en) Wireless sensor network security authentication method, medium and system
CN119449272A (en) User authentication method, electronic device, and storage medium based on nuclear power Internet of Things
HK40036276A (en) Apparatus authentication method and device, computer apparatus and storage medium
HK40036276B (en) Apparatus authentication method and device, computer apparatus and storage medium
CN118413401A (en) Terminal communication method, system, computer device and computer readable storage medium
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载