TWI774902B - 密鑰保護方法及密鑰保護系統 - Google Patents
密鑰保護方法及密鑰保護系統 Download PDFInfo
- Publication number
- TWI774902B TWI774902B TW107147605A TW107147605A TWI774902B TW I774902 B TWI774902 B TW I774902B TW 107147605 A TW107147605 A TW 107147605A TW 107147605 A TW107147605 A TW 107147605A TW I774902 B TWI774902 B TW I774902B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- executable
- memory space
- memory
- codes
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本發明係揭露一種密鑰保護方法及密鑰保護系統。在記憶體中設置只可執行記憶體空間及單次編程空間,只可執行記憶體空間儲存複數個執行程式碼。藉由編碼器將密鑰嵌入到複數個執行程式碼當中,並於單次編程空間中儲存密鑰之密鑰雜湊值。藉由處理器執行密鑰產生指令,執行複數個執行程式碼,於只可執行記憶體空間中形成密鑰,並藉由密鑰雜湊值驗證密鑰之正確性。
Description
本發明是有關於一種密鑰保護方法及密鑰保護系統,特別是有關於一種能藉由軟體結合硬體的方式來放置私密金鑰,防止私密金鑰在使用或儲存時被讀取,並且確保私密金鑰正確性之密鑰保護方法及密鑰保護系統。
在現有技術當中,利用電腦系統、雲端伺服器及有線或無線網路通訊等科技來進行資料傳輸,已有許多更新或更快的技術持續開發。在資料傳送的過程當中,如何對資料文件進行加解密來防止內容外洩,或是進行數位簽章來驗證資料正確性等,均具備相當的重要性。這些操作都必須經由金鑰密碼運算來執行,由此可見,金鑰密碼的產生、儲存及使用等過程上的安全性,顯得格外重要。
在金鑰密碼系統當中,由於各種金鑰或是簽章都是源於密鑰(Private Key),因此在整個安全系統或環境中,對於密鑰的保護尤其重要。一旦密鑰遭到破解或竊取,有心人士只要依據各種金鑰的演算法,即可計算出各種金鑰密碼,進而破壞對於資料的防護及保全。現有的保護機制上,例如金融產
業會設置獨立的硬體裝置來提供安全的使用環境,然而,這樣的環境在使用上較不方便,也不容易整合至一般裝置上,實際使用上較為困難。
綜觀前所述,習知的金鑰密碼在保護機制上仍然具有相當之缺陷,因此,本發明藉由設計一種密鑰保護方法及密鑰保護系統,針對現有技術之缺失加以改善,確保實際操作時金鑰密碼能受到有效的保護,進而增進產業上之實施利用。
有鑑於上述習知技藝之問題,本發明之目的就是在提供一種密鑰保護方法及密鑰保護系統,使其能以軟體結合硬體的方式在安全的環境下進行金鑰運算,避免密鑰被竊取或密鑰運算系統被置換的問題。
根據本發明之一目的,提出一種密鑰保護方法,其包含以下步驟:在記憶體中設置只可執行記憶體(Execute Only Memory,XOM)空間及單次編程(One Time Programming,OTP)空間,只可執行記憶體空間儲存複數個執行程式碼;藉由編碼器將密鑰(Private Key)嵌入到複數個執行程式碼當中,各複數個執行程式碼分別包含執行指令及密鑰編碼;藉由燒錄器將複數個執行程式碼燒錄於只可執行記憶體空間;於單次編程空間中儲存密鑰之密鑰雜湊(Hash)值;以及藉由處理器執行密鑰產生指令,執行複數個執行程式碼,於只可執行記憶體空間中形成密鑰,並藉由密鑰雜湊值驗證密鑰之正確性。
較佳地,密鑰保護方法可進一步包含以下步驟:藉由處理器於只可執行記憶體空間執行金鑰簽章函數,金鑰簽章函數執行密鑰產生指令以呼叫密鑰;以及將密鑰搭配簽章演算法對簽章資料進行簽章。
較佳地,簽章資料可包含簽章資料雜湊值,密鑰搭配橢圓曲線數位簽章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA)對簽章資料雜湊值進行簽章。
較佳地,密鑰保護方法可進一步包含以下步驟:於只可執行記憶體空間執行公開金鑰產生函數,公開金鑰產生函數執行密鑰產生指令以呼叫密鑰;以及將密鑰搭配密鑰演算法產生公開金鑰(Public Key)。
較佳地,公開金鑰產生函數可包含由應用程式介面(Application Program Interface,API)呼叫或由程式碼執行指令來提取公開金鑰。
較佳地,密鑰保護方法可進一步包含以下步驟:於只可執行記憶體空間執行共享金鑰計算函數,共享金鑰計算函數執行密鑰產生指令以呼叫密鑰;以及將密鑰搭配密鑰演算法產生共享金鑰(Share Key)。
較佳地,共享金鑰計算函數可包含由應用程式介面呼叫或由程式碼執行指令來提取公開金鑰。
根據本發明之另一目的,提出一種密鑰保護系統,其包含記憶體以及處理器。其中記憶體包含只可執行記憶體空間以及單次編程空間,只可執行記憶體空間儲存複數個執行程式碼,將密鑰嵌入複數個執行程式碼,使各複數個執行程式碼分別包含執行指令及密鑰編碼,單次編程空間中儲存密鑰之密鑰雜湊值。處理器是連接於記憶體,執行密鑰產生指令,於只可執行記憶體空間中執行複數個執行程式碼以產生密鑰,並藉由密鑰雜湊值驗證密鑰之正確性。
較佳地,密鑰保護系統可進一步包含編碼器及燒錄器,連接於記憶體,編碼器將密鑰嵌入到複數個執行程式碼當中,燒錄器將複數個執行程式碼燒錄於只可執行記憶體空間。
較佳地,只可執行記憶體空間可儲存金鑰簽章函數,由處理器執行金鑰簽章函數,執行密鑰產生指令以呼叫密鑰,且搭配簽章演算法對簽章資料進行簽章。
較佳地,只可執行記憶體空間可儲存公開金鑰產生函數,由處理器執行公開金鑰產生函數,執行密鑰產生指令以呼叫密鑰,且搭配密鑰演算法產生公開金鑰。
較佳地,只可執行記憶體空間可儲存共享金鑰計算函數,由處理器執行共享金鑰計算函數,執行密鑰產生指令以呼叫密鑰,且搭配密鑰演算法產生共享金鑰。
較佳地,只可執行記憶體空間可儲存共享金鑰計算函數,由處理器執行共享金鑰計算函數,執行密鑰產生指令以呼叫密鑰,且搭配加解密演算法使用密鑰對資料進行加密或解密運算。
承上所述,依本發明之密鑰保護方法及密鑰保護系統,其可具有一或多個下述優點:
(1)此密鑰保護方法及密鑰保護系統可將密鑰嵌入於執行程式碼當中,藉由只可執行記憶體空間當中僅能執行程式,無法讀取資料的特性,防止密鑰在使用、儲存或毀滅的過程中遭到竊取,提升密鑰的安全性。
(2)此密鑰保護方法及密鑰保護系統可將密鑰雜湊值儲存於單次編程空間,藉由此空間無法修改的特性,由唯一對應之密鑰雜湊值驗證密鑰未被竄改,避免密鑰運算系統遭到置換,提升密鑰之正確性。
(3)此密鑰保護方法及密鑰保護系統可於只可執行記憶體空間當中執行資料簽章、產生公開密鑰及計算共享金鑰等功能函數,藉由該記憶體空間無法讀取的特性,確保各種金鑰的隱密性。
1:密鑰保護系統
10:記憶體
11:只可執行記憶體空間
12:單次編程空間
20:處理器
30:編碼器
40:燒錄器
90:密鑰
91:密鑰雜湊值
92:公開金鑰產生函數
93:金鑰簽章函數
94:共享金鑰計算函數
S01-S05、S10-S12、S20-S22、S30-S32:步驟
第1圖係為本發明實施例之密鑰保護方法之流程圖。
第2圖係為本發明實施例之密鑰簽章方法之流程圖。
第3圖係為本發明實施例之公開金鑰產生方法之流程圖。
第4圖係為本發明實施例之共享金鑰計算方法之流程圖。
第5圖係為本發明實施例之密鑰保護系統之示意圖。
為利貴審查委員瞭解本發明之技術特徵、內容與優點及其所能達成之功效,茲將本發明配合附圖,並以實施例之表達形式詳細說明如下,而其中所使用之圖式,其主旨僅為示意及輔助說明書之用,未必為本發明實施後之真實比例與精準配置,故不應就所附之圖式的比例與配置關係解讀、侷限本發明於實際實施上的權利範圍,合先敘明。
請參閱第1圖,第1圖係為本發明實施例之密鑰保護方法之流程圖如圖所示,其包含以下步驟(S01-S05):
步驟S01:在記憶體中設置只可執行記憶體(Execute Only Memory,XOM)空間及單次編程(One Time Programming,OTP)空間。在微控制器或微控制晶片當中,為了保護一些關鍵程式,避免遭到網路攻擊或駭客入侵,在記憶體(如
快閃記憶體)當中會界定一個只可執行記憶體空間,在這空間當中僅能執行當中儲存的複數個執行程式碼,並無法讀取儲存空間內的資訊。另外,記憶體當中也會界定一個單次編程空間,在這空間當中僅能進行單次編程,亦即當資料寫入至記憶體後即無法在進行抹除、改寫等修改程序,維持儲存資料不可變更的特性。例如微控制晶片在生產製造時,可將產品或製程的序號,儲存於此單次編程空間,以對應於個別晶片。這裡區分只可執行記憶體空間及單次編程空間是為了區分不同記憶體特性,在另一實施例當中,記憶體內也可包含同時具備只可執行記憶體及單次編程的空間,作為保護密鑰的安全環境。
步驟S02:藉由編碼器將密鑰(Private Key)嵌入到複數個執行程式碼當中。在上述步驟中界定了只可執行記憶體空間,由於在此空間中僅能執行複數個執行程式碼,為了保護密鑰,必須將密鑰嵌入於複數個執行程式碼當中,以便將密鑰存放在此只可執行記憶體空間。在本實施例當中,可利用原本微控制器內所具備的指令集程式,將密鑰嵌入指令程式碼當中。由於密鑰的密碼長度大多大於指令集程式的編碼長度,因此密鑰可經拆解後藉由編碼器編寫至複數個執行程式碼當中,這些複數個執行程式碼分別包含執行指令及密鑰編碼,密鑰編碼即為原本密鑰密碼拆解後的部分密碼。
步驟S03:藉由燒錄器將複數個執行程式碼燒錄於只可執行記憶體空間。前述步驟產生的複數個執行程式碼,則可透過燒錄器或燒錄裝置將複數個執行程式碼燒錄於只可執行記憶體空間,一旦這些執行程式碼儲存於只可執行記憶體空間當中,就僅能執行指令程式,無法讀取程式內容。換言之,嵌入於執行程式碼的密鑰將無法從只可執行記憶體空間被讀取出來,僅能利用執行程式在只可執行記憶體的空間當中運用。
步驟S04:於單次編程空間中儲存密鑰之密鑰雜湊(Hash)值。除了在只可執行記憶體空間中存放包含密鑰的複數個執行程式碼,為了驗證密鑰的正確性,將密鑰對應的密鑰雜湊值,即對應密鑰的唯一特徵值密碼,儲存於單次編程空間當中。由於單次編程空間內儲存的資料不可變更的特性,確保此密鑰雜湊值保持不變,並以此來對應於密鑰。
步驟S05:藉由處理器執行密鑰產生指令,執行複數個執行程式碼,於只可執行記憶體空間中形成密鑰,並藉由密鑰雜湊值驗證密鑰之正確性。由於密鑰已嵌入於只可執行記憶體空間的執行程式碼當中,若需要使用到密鑰,無論是進行簽章、產生公開金鑰或計算共享金鑰,都僅能由處理器在只可執行記憶體空間中執行對應密鑰的複數個執行程式碼,在這些執行程式碼依據設定順序執行過後,提取密鑰來進行對應的金鑰運算,然而,為確保只可執行記憶體空間當中的複數個執行程序碼未遭到置換,產生的密鑰會計算其密鑰特徵值,並與單次編程空間中儲存的密鑰特徵值進行比對,若一致則確認密鑰之正確性;若不一致,則判斷執行程序碼遭到竄改,無法藉由產生之密鑰進行後續金鑰運算,並產生警示訊息提醒進一步檢驗記憶體是否遭到入侵破壞。
上述步驟S01至步驟S05是本實施例密鑰保護方法的各個流程,但本揭露不侷限於此流程順序,例如步驟S02與步驟S03當中儲存密鑰的程序與步驟S04當中儲存密鑰雜湊值的順序可同時進行。此外,當記憶體空間同時包含僅可執行記憶體空間與單次編程空間的特性時,密鑰所嵌入的複數個執行程序碼及密鑰雜湊值可儲存於相同空間當中。當在安全的環境下產生密鑰後,可以接著在此安全環境下進行金鑰運算的程序,相關流程將於以下實施例說明。
請參閱第2圖,第2圖係為本發明實施例之密鑰簽章方法之流程圖。如圖所示,其包含以下步驟(S10-S12):
步驟S10:步驟S01至步驟S05。密鑰簽章方法的前處理流程與前述實施例的密鑰保護方法流程所揭露的步驟S01至步驟S05相同,因此重複的內容參考前述實施例而不再重述。
步驟S11:藉由處理器於只可執行記憶體空間執行金鑰簽章函數,金鑰簽章函數執行密鑰產生指令以呼叫密鑰。由於前處理流程已建立了只可執行記憶體空間及單次編程空間,當需要使用密鑰對資料進行數位簽章時,由處理器執行金鑰簽章函數,此金鑰簽章函數可包含密鑰產生指令,藉由此密鑰產生指令呼叫對應密鑰嵌入的複數個執行程式碼,在依序執行這些執行程序碼後,產生密鑰,並與密鑰雜湊值驗證密鑰之正確性,取得欲進行簽章之密鑰。此程序同樣是在只可執行記憶體空間內執行,因此雖描述取得密鑰,但其僅能作為金鑰簽章函數執行之用,無法以其他程式讀取密鑰內容。
步驟S12:將密鑰搭配簽章演算法對簽章資料進行簽章。金鑰簽章函數執行指令取得密鑰後,將密鑰透過設定的簽章演算法對簽章資料進行簽章,在本實施例當中,簽章演算法可採用橢圓曲線數位簽章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA),但本實施例不侷限於此。
進一步簡述橢圓曲線數位簽章演算法,其主要是透過橢圓曲線密碼(Elliptic Curve Code,ECC)來對基於離散對數問題(Discrete Logarithm Problem,DLP)的密碼系統的模擬,將群元素由數域中的元素數換為有限域上的橢圓曲線上的點。橢圓曲線密碼體制的安全性是基於橢圓曲線離散對數問題的難解性,橢圓曲線離散對數問題遠難於離散對數問題,橢圓曲線密碼系統的單位位元強
度要遠高於傳統的離散對數系統。因此在使用較短的金鑰的情況下,橢圓曲線密碼可以達到於離散對數系統相同的安全級別。橢圓曲線數位簽章演算法簽章的過程包含選擇橢圓曲線Ep(a,b)及基點G;選擇密鑰k(k<n,n為G的階),並以基點G計算公開金鑰K=kG;產生一個隨機整數r(r<n),計算點R=rG;將原資料和點R的座標值x,y作為引數,計算SHA1做為簽章資料雜湊值hash,即hash=SHA1(原資料,x,y);計算s≡r-Hash * k(mod n);以r和s做為簽名值。在進行簽章後,相對的驗證的過程則包含:接受方在收到訊息(m)和簽名值(r,s);計算:sG+H(m)P=(x1,y1),r1≡x1 mod p;驗證等式:r1≡r mod p;如果等式成立,則接受簽章,若不成立則判斷簽章無效。由上述簽章流程可見,橢圓曲線數位簽章演算法是利用密鑰進行簽章,並由密鑰生成公開金鑰,由公開金鑰來驗證密鑰簽章,以下將說明公開金鑰產生方法。
請參閱第3圖,第3圖係為本發明實施例之公開金鑰產生方法之流程圖。如圖所示,其包含以下步驟(S20-S22):
步驟S20:步驟S01至步驟S05。公開金鑰產生方法的前處理流程與前述實施例的密鑰保護方法流程所揭露的步驟S01至步驟S05相同,因此重複的內容參考前述實施例而不再重述。
步驟S21:於只可執行記憶體空間執行公開金鑰產生函數,公開金鑰產生函數執行密鑰產生指令以呼叫密鑰。由處理器執行公開金鑰產生函數,此公開金鑰產生函數可包含密鑰產生指令,藉由此密鑰產生指令呼叫對應密鑰嵌入的複數個執行程式碼,在依序執行這些執行程序碼後,產生密鑰,並與密鑰雜湊值驗證密鑰之正確性,取得密鑰。此程序同樣是在只可執行記憶體
空間內執行,取得之密鑰僅能作為公開金鑰產生函數執行之用,無法以其他程式讀取密鑰內容。
步驟S22:將密鑰搭配密鑰演算法產生公開金鑰。公開金鑰產生函數執行指令取得密鑰後,將密鑰搭配設定的密鑰演算法產生公開金鑰,在本實施例當中,密鑰演算法可採用橢圓曲線數位簽章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA),但本實施例不侷限於此。產生公開金鑰的過程同樣是在只可執行記憶體空間內執行,但公開金鑰產生函數可包含應用程式介面或提取的程式碼,透過應用程式介面呼叫或由程式碼執行指令來提取前述運算所產生之公開金鑰。公開金鑰可在接收到簽章的資料後,對其中的數位簽章進行驗證,以確認傳送者的身分或資料來源的正確性。
請參閱第4圖,第4圖係為本發明實施例之共享金鑰計算方法之流程圖。如圖所示,其包含以下步驟(S30-S32):
步驟S30:步驟S01至步驟S05。共享金鑰計算方法的前處理流程與前述實施例的密鑰保護方法流程所揭露的步驟S01至步驟S05相同,因此重複的內容參考前述實施例而不再重述。
步驟S31:於只可執行記憶體空間執行共享金鑰計算函數,共享金鑰計算函數執行密鑰產生指令以呼叫密鑰。由處理器執行共享金鑰計算函數,此共享金鑰計算函數可包含密鑰產生指令,藉由此密鑰產生指令呼叫對應密鑰嵌入的複數個執行程式碼,在依序執行這些執行程序碼後,產生密鑰,並與密鑰雜湊值驗證密鑰之正確性,取得密鑰。此程序同樣是在只可執行記憶體空間內執行,取得之密鑰僅能作為共享金鑰計算函數執行之用,無法以其他程式讀取密鑰內容。
步驟S32:將密鑰搭配密鑰演算法產生共享金鑰。共享金鑰計算函數執行指令取得密鑰後,將密鑰搭配設定的密鑰演算法計算共享金鑰,在本實施例當中,密鑰演算法可採用橢圓曲線數位簽章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA),但本實施例不侷限於此。計算共享金鑰的過程同樣是在只可執行記憶體空間內執行,但共享金鑰計算函數可包含應用程式介面或提取的程式碼,透過應用程式介面呼叫或由程式碼執行指令來提取前述計算所產生之共享金鑰。共享金鑰可同時提供給資料傳送端與接收端,讓傳送端利用共享金鑰對資料進行加密,使加密過的資料即便在傳送過程中遭到攔截或竊取也無法開啟或檢視資料的原始內容。只有同樣有共享金鑰之接收端,能對資料解密而還原原始資料,藉此保障資料在傳送過程中的安全性。
除此之外,共享金鑰計算函數還可在執行密鑰產生指令以呼叫密鑰後,搭配加解密演算法使用密鑰對資料進行加密或解密運算。在本實施例當中,加解密演算法可採用進階加密標準(Advanced Encryption Standard,AES)演算法,但本實施例不侷限於此。
請參閱第5圖,第5圖係為本發明實施例之密鑰保護系統之示意圖。如圖所示,密鑰保護系統1包含記憶體10及處理器20,其中記憶體10包含只可執行記憶體空間11以及單次編程空間12,只可執行記憶體空間11僅能執行當中的執行程式碼,無法讀取其中的程式碼或資料內容。單次編程空間12則儲存無法抹除的資料,維持資料不可變更的特性。在這樣的記憶體10環境中,為了保障密鑰90不遭到竊取,將密鑰90嵌入複數個執行程式碼後儲存在只可執行記憶體空間11,對應於密鑰90的密鑰雜湊值則儲存在單次編程空間12。這裡所述的複數個執行程式碼可透過連接於記憶體10的編碼器30進行編程,使得執行程
式碼包含指令集中的執行指令及拆解後的密鑰編碼。這些執行程式碼再透過與記憶體10連接的燒錄器40燒錄在只可執行記憶體空間11當中。
處理器20也同樣連接於記憶體10,當執行密鑰產生指令時,於只可執行記憶體空間11中執行複數個執行程式碼以產生密鑰90。此時,為了確保密鑰的正確性,防止整個只可執行記憶體空間11當中的執行程式碼遭到置換,藉由單次編程空間12當中儲存的密鑰雜湊值91驗證密鑰90之正確性。驗證的方式包含計算取得密鑰90之雜湊值,再與儲存的密鑰雜湊值91比對,若一致則確認密鑰90的正確性,若不一致則通知系統密鑰90不符,需進一步檢視密鑰90的安全防護是否出現問題。
此外,除了取得密鑰90外,只可執行記憶體空間11還儲存了公開金鑰產生函數92、金鑰簽章函數93以及共享金鑰計算函數94。其中,處理器20可執行公開金鑰產生函數92,執行密鑰產生指令以呼叫密鑰90,且搭配密鑰演算法產生公開金鑰。處理器20也能執行金鑰簽章函數93,執行密鑰產生指令以呼叫密鑰90,且搭配簽章演算法對簽章資料進行簽章。最後,處理器執行共享金鑰計算函數94,執行密鑰產生指令以呼叫密鑰90,且搭配密鑰演算法產生共享金鑰。此處的密鑰演算法包含橢圓曲線數位簽章演算法(ECDSA)。
另外,只可執行記憶體空間11可儲存共享金鑰計算函數94,由處理器20執行共享金鑰計算函數94,執行密鑰產生指令以呼叫密鑰90,且搭配加解密演算法使用密鑰90對資料進行加密或解密運算。在本實施例當中,加解密演算法可採用進階加密標準(Advanced Encryption Standard,AES)演算法,但本實施例不侷限於此。
對於整個密鑰保護系統1而言,系統可以設置應用程式介面來取得上述的公開金鑰或共享金鑰,也可透過特定程式碼來提取公開金鑰或共享金鑰。由於只可執行記憶體空間11的特性,在其中執行程式或是執行功能函數內的指令,並不會顯露出實際的密鑰密碼,進而保障了使用上的安全性。密鑰雜湊值91也因為儲存在單次編程空間而確保其不會改變的特性,並依此驗證密鑰90的正確性,增加保護層級。最後,這樣的硬體搭配軟體的保護手段,可應用在實際的記憶體裝置當中,解決了需要設置特定硬體裝置來保護密鑰的問題,有效提升了使用上的便利性。
以上所述僅為舉例性,而非為限制性者。任何未脫離本發明之精神與範疇,而對其進行之等效修改或變更,均應包含於後附之申請專利範圍中。
S01-S05:步驟
Claims (10)
- 一種密鑰保護方法,其包含以下步驟:於一第一記憶體內部配置一只可執行記憶體空間,以及於一第二記憶體內部配置一單次編程空間,該只可執行記憶體空間儲存複數個執行程式碼,且該第一記憶體與該第二記憶體彼此為獨立的兩元件,其中該只可執行記憶體空間的複數個程式碼只可以被執行,而該等個程式碼的內容無法從該只可執行記憶體空間被讀取;藉由一編碼器將一密鑰嵌入到該複數個執行程式碼當中,各該複數個執行程式碼分別包含一執行指令及一密鑰編碼,且各該密鑰編碼為該密鑰之部分內容;藉由一燒錄器將該複數個執行程式碼燒錄於該只可執行記憶體空間;於該單次編程空間中儲存該密鑰之一密鑰雜湊值;以及藉由一處理器執行一密鑰產生指令,執行該複數個執行程式碼,於該只可執行記憶體空間中形成該密鑰,並藉由該密鑰雜湊值驗證該密鑰之正確性。
- 如申請專利範圍第1項所述之密鑰保護方法,進一步包含以下步驟:藉由該處理器於該只可執行記憶體空間執行一金鑰簽章函數,該金鑰簽章函數執行該密鑰產生指令以呼叫該密鑰;以及將該密鑰搭配一簽章演算法對一簽章資料進行簽章。
- 如申請專利範圍第2項所述之密鑰保護方法,其中該簽章資 料包含一簽章資料雜湊值,該密鑰搭配一橢圓曲線數位簽章演算法對該簽章資料雜湊值進行簽章。
- 如申請專利範圍第1項所述之密鑰保護方法,進一步包含以下步驟:於該只可執行記憶體空間執行一公開金鑰產生函數,該公開金鑰產生函數執行該密鑰產生指令以呼叫該密鑰;將該密鑰搭配一密鑰演算法產生一公開金鑰;以及該公開金鑰產生函數包含由應用程式介面呼叫或由程式碼執行指令來提取該公開金鑰。
- 一種密鑰保護系統,其包含:一第一唯讀記憶體:內部配置一只可執行記憶體空間,該只可執行記憶體空間儲存複數個執行程式碼,將一密鑰嵌入該複數個執行程式碼,使各該複數個執行程式碼分別包含一執行指令及一密鑰編碼,且各該密鑰編碼為該密鑰之部分內容,其中該只可執行記憶體空間的複數個程式碼只可以被執行,而該等個程式碼的內容無法從該只可執行記憶體空間被讀取;一第二唯讀記憶體:內部配置一單次編程空間,該單次編程空間中儲存該密鑰之一密鑰雜湊值,且該第一唯讀記憶體與該第二唯讀記憶體彼此為獨立的兩元件;一處理器,係連接於該記憶體,執行一密鑰產生指令,於該只可執行記憶體空間中執行該複數個執行程式碼以產生該密鑰,並藉由該密鑰雜湊值驗證該密鑰之正確性。
- 如申請專利範圍第5項所述之密鑰保護系統,進一步包含一編碼器及一燒錄器,係連接於該記憶體,該編碼器將該密鑰嵌入到該複數個執行程式碼當中,該燒錄器將該複數個執行程式碼燒錄於該只可執行記憶體空間。
- 如申請專利範圍第5項所述之密鑰保護系統,其中該只可執行記憶體空間儲存一金鑰簽章函數,由該處理器執行該金鑰簽章函數,執行該密鑰產生指令以呼叫該密鑰,且搭配一簽章演算法對一簽章資料進行簽章。
- 如申請專利範圍第5項所述之密鑰保護系統,其中該只可執行記憶體空間儲存一公開金鑰產生函數,由該處理器執行該公開金鑰產生函數,執行該密鑰產生指令以呼叫該密鑰,且搭配一密鑰演算法產生一公開金鑰。
- 如申請專利範圍第5項所述之密鑰保護系統,其中該只可執行記憶體空間儲存一共享金鑰計算函數,由該處理器執行該共享金鑰計算函數,執行該密鑰產生指令以呼叫該密鑰,且搭配一密鑰演算法產生一共享金鑰。
- 如申請專利範圍第5項所述之密鑰保護系統,其中該只可執行記憶體空間儲存一共享金鑰計算函數,由該處理器執行該共享金鑰計算函數,執行該密鑰產生指令以呼叫該密鑰,且搭配一加解密演算法使用該密鑰對資料進行加密或解密運算。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147605A TWI774902B (zh) | 2018-12-28 | 2018-12-28 | 密鑰保護方法及密鑰保護系統 |
CN201911373297.5A CN111385083B (zh) | 2018-12-28 | 2019-12-27 | 密钥保护方法及密钥保护系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147605A TWI774902B (zh) | 2018-12-28 | 2018-12-28 | 密鑰保護方法及密鑰保護系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202027450A TW202027450A (zh) | 2020-07-16 |
TWI774902B true TWI774902B (zh) | 2022-08-21 |
Family
ID=71218517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107147605A TWI774902B (zh) | 2018-12-28 | 2018-12-28 | 密鑰保護方法及密鑰保護系統 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111385083B (zh) |
TW (1) | TWI774902B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448806A (zh) * | 2020-09-29 | 2021-03-05 | 尚承科技股份有限公司 | 电子资讯安全传送系统与方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001022372A1 (fr) * | 1999-09-24 | 2001-03-29 | Bauer, Eric | Procede permettant de securiser des donnees lors de transactions et systeme pour sa mise en oeuvre |
US20070162964A1 (en) * | 2006-01-12 | 2007-07-12 | Wang Liang-Yun | Embedded system insuring security and integrity, and method of increasing security thereof |
CN102194497A (zh) * | 2010-03-10 | 2011-09-21 | 方可成 | 应用硬设备的光盘防转录方法 |
US20130290729A1 (en) * | 2012-04-30 | 2013-10-31 | General Electric Company | Systems and methods for controlling file execution for industrial control systems |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308102B2 (en) * | 2003-08-05 | 2007-12-11 | Dell Products L.P. | System and method for securing access to memory modules |
CA2543796C (en) * | 2003-10-28 | 2015-12-08 | Certicom Corp. | Method and apparatus for verifiable generation of public keys |
CN1841255B (zh) * | 2005-03-30 | 2011-09-07 | 侯方勇 | 保护数据存储的机密性与完整性的方法和装置 |
US8856538B2 (en) * | 2012-07-27 | 2014-10-07 | GM Global Technology Operations LLC | Secured flash programming of secondary processor |
US20150256343A1 (en) * | 2012-08-13 | 2015-09-10 | Richard F. Graveman | Securely Generating and Storing Passwords in a Computer System |
US8868927B1 (en) * | 2012-08-14 | 2014-10-21 | Google Inc. | Method and apparatus for secure data input and output |
CN103067401B (zh) * | 2013-01-10 | 2015-07-01 | 天地融科技股份有限公司 | 密钥保护方法和系统 |
CN106656476B (zh) * | 2017-01-18 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种密码保护方法、装置及计算机可读存储介质 |
CN106941404B (zh) * | 2017-04-25 | 2020-06-30 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
CN108959978A (zh) * | 2018-06-28 | 2018-12-07 | 北京海泰方圆科技股份有限公司 | 设备中密钥的生成与获取方法及装置 |
-
2018
- 2018-12-28 TW TW107147605A patent/TWI774902B/zh active
-
2019
- 2019-12-27 CN CN201911373297.5A patent/CN111385083B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001022372A1 (fr) * | 1999-09-24 | 2001-03-29 | Bauer, Eric | Procede permettant de securiser des donnees lors de transactions et systeme pour sa mise en oeuvre |
US20070162964A1 (en) * | 2006-01-12 | 2007-07-12 | Wang Liang-Yun | Embedded system insuring security and integrity, and method of increasing security thereof |
CN102194497A (zh) * | 2010-03-10 | 2011-09-21 | 方可成 | 应用硬设备的光盘防转录方法 |
US20130290729A1 (en) * | 2012-04-30 | 2013-10-31 | General Electric Company | Systems and methods for controlling file execution for industrial control systems |
Also Published As
Publication number | Publication date |
---|---|
TW202027450A (zh) | 2020-07-16 |
CN111385083B (zh) | 2023-03-10 |
CN111385083A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313690B (zh) | 自包含的加密引导策略验证 | |
TWI717907B (zh) | 用於安全記憶體的方法與系統 | |
US10284372B2 (en) | Method and system for secure management of computer applications | |
AU2012205457B2 (en) | System and method for tamper-resistant booting | |
EP2965254B1 (en) | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms | |
TW201502855A (zh) | 使用安全加強晶片之用於資料之安全儲存之系統、方法及裝置 | |
TW201516733A (zh) | 用以核對uefi認證變量變化之系統及方法 | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
TW202141321A (zh) | 安全儲存及載入韌體的方法及電子裝置 | |
JP7256862B2 (ja) | 保護されたコンテナ間のセキュア通信方法およびそのシステム | |
CN113946375A (zh) | 嵌入式系统快速安全启动方法、装置及电子设备 | |
KR20200020627A (ko) | 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법 | |
CN111614467A (zh) | 系统后门防御方法、装置、计算机设备和存储介质 | |
TWI774902B (zh) | 密鑰保護方法及密鑰保護系統 | |
Feng et al. | Secure code updates for smart embedded devices based on PUFs | |
JP6488954B2 (ja) | 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム | |
TWI525470B (zh) | A method and a system for updating the sensitive variables of a computer, a computer-readable recording medium, and a computer program product | |
CN108242997A (zh) | 安全通信的方法与设备 | |
US11429722B2 (en) | Data protection in a pre-operation system environment based on an embedded key of an embedded controller | |
JP2020150310A (ja) | 情報処理装置、暗号化データの復号方法及び電子機器 | |
JP7476131B2 (ja) | 効率的なデータアイテム認証 | |
US20220247568A1 (en) | Data storage device, system, and method for digital signature | |
US10574653B1 (en) | Secure posture assessment | |
JP2022124424A5 (zh) | ||
KR20170044017A (ko) | 디지털 데이터의 불연속 해싱을 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |