TW202403576A - 密碼裝置及其密碼方法 - Google Patents

密碼裝置及其密碼方法 Download PDF

Info

Publication number
TW202403576A
TW202403576A TW111124590A TW111124590A TW202403576A TW 202403576 A TW202403576 A TW 202403576A TW 111124590 A TW111124590 A TW 111124590A TW 111124590 A TW111124590 A TW 111124590A TW 202403576 A TW202403576 A TW 202403576A
Authority
TW
Taiwan
Prior art keywords
mentioned
transposition
memory address
key
code
Prior art date
Application number
TW111124590A
Other languages
English (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 TW111124590A priority Critical patent/TW202403576A/zh
Priority to CN202211360684.7A priority patent/CN117375806A/zh
Publication of TW202403576A publication Critical patent/TW202403576A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

一種密碼裝置,適用於記憶體裝置,包括判斷單元、換位單元以及密碼單元。判斷單元判斷記憶體位址位於保護區域中而選擇密鑰以及隨機數。換位單元根據密鑰以及記憶體位址,將二進制碼進行換位而產生換位碼。二進制碼包括隨機數以及記憶體位址。密碼單元根據密鑰以及換位碼,產生密鑰流。

Description

密碼裝置及其密碼方法
本發明係有關於一種密碼裝置及其密碼方法,特別係有關於一種使用換位功能之密碼裝置及其密碼方法。
在密碼學中,加密(英語:Encryption)一詞係指將明文(plaintext)改變為難以理解的密文(ciphertext)而使保護其內容的過程。只有擁有解密方法的裝置,透過解密過程,才能將密文還原為正常可讀的內容。理想情況下,只有經授權的人員能夠讀取密文所要傳達的資訊。加密本身無法防止資訊傳輸被截取,但能防止截取者理解資訊之內容。
本發明在此提出密碼裝置及其密碼方法,用以在記憶體控制裝置對記憶體陣列進行操作時,即時產生密鑰流。相對計數器密碼模式,本發明所提出之密碼裝置及其密碼方法使用不同的輸入資料編碼方式,使得攻擊者在建立功率分析模組方面也將面臨更高困難度,進而提供較佳的資料保護能力。
本發明在此提出一種密碼裝置,適用於一記憶體裝置。上述密碼裝置包括一判斷單元、一換位單元以及一密碼單元。上述判斷單元判斷一記憶體位址位於一保護區域中而選擇一密鑰以及一隨機數。上述一換位單元根據上述密鑰以及上述記憶體位址,將一二進制碼進行換位而產生一換位碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址。上述密碼單元根據上述密鑰以及上述換位碼,產生一密鑰流。
根據本發明之一實施例,上述記憶體裝置包括一第一匯流排介面、一控制器以及一記憶體陣列,其中當上述第一匯流排介面接收到上述記憶體位址以及一操作指令時,上述第一匯流排介面將上述記憶體位址發送至上述判斷單元且將上述操作指令發送至上述控制器,使得上述控制器根據上述記憶體位址以及上述操作指令讀取上述記憶體陣列之一加密讀取資料及/或將一寫入資料寫入上述記憶體陣列。當上述密碼單元產生上述密鑰流時,上述密碼單元同時產生一有效信號,上述控制器根據上述有效信號,利用上述密鑰流對上述加密讀取資料進行解密以及對上述寫入資料進行加密。
根據本發明之一實施例,密碼裝置更包括一暫存器、一第二匯流排介面以及一第一多工器。上述暫存器用以儲存上述保護區域之記憶體位址之起始位址以及結束位址以及對應上述保護區域之記憶體位址的上述密鑰以及上述隨機數。一使用者透過上述第二匯流排介面設定儲存於上述暫存器之對應上述保護區域之記憶體位址之上述密鑰以及上述隨機數。上述第一多工器根據一判斷信號,選擇對應上述記憶體位址之上述密鑰以及上述隨機數,其中當上述判斷單元判斷上述記憶體位址位於上述保護區域時,上述判斷單元產生上述判斷信號。
根據本發明之一實施例,上述換位單元包括複數換位邏輯單元、一選擇邏輯單元以及一第二多工器。上述複數換位邏輯單元之每一者具有一換位邏輯,且根據上述換位邏輯將上述二進制碼進行換位而產生上述換位碼,其中上述複數換位邏輯單元之每一者對應之上述換位邏輯係為不同。上述選擇邏輯單元根據上述密鑰以及上述記憶體位址而產生一選擇碼。上述第二多工器根據上述選擇碼,輸出上述複數換位邏輯單元之對應的一者所產生之上述換位碼。
根據本發明之一實施例,上述複數換位邏輯單元之一者根據上述換位邏輯,將上述二進制碼至少劃分為一第一部份以及一第二部份,並且調換上述第一部份以及上述第二部份之順序而產生上述換位碼。
根據本發明之一實施例,上述選擇邏輯單元將上述密鑰之每一位元以及上述記憶體位址之對應的位元進行一加法運算而產生上述選擇碼。
根據本發明之另一實施例,上述選擇邏輯單元將上述密鑰之每一位元以及上述記憶體位址之對應的位元進行一互斥或運算而產生上述選擇碼。
本發明更提出一種密碼方法,適用於一記憶體陣列。上述密碼方法包括判斷一記憶體位址位於一保護區域中而選擇一密鑰以及一隨機數;產生一二進制碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址;根據上述密鑰以及上述記憶體位址將上述二進制碼進行換位而產生一換位碼;以及根據上述密鑰以及上述換位碼,產生一密鑰流。
根據本發明之一實施例,密碼方法更包括根據上述記憶體位址以及一操作指令讀取一記憶體陣列之一加密讀取資料及/或將一寫入資料寫入上述記憶體陣列;以及利用上述密鑰流對上述加密讀取資料進行解密以及對上述寫入資料進行加密。
根據本發明之一實施例,密碼方法更包括將上述保護區域之記憶體位址之起始位址以及結束位址以及對應上述保護區域之記憶體位址的上述密鑰以及上述隨機數儲存於一暫存器中,其中一使用者透過一匯流排介面設定儲存於上述暫存器之對應上述保護區域之記憶體位址之上述密鑰以及上述隨機數;以及當判斷上述記憶體位址位於上述保護區域時,自上述暫存器選擇對應上述記憶體位址之上述密鑰以及上述隨機數。
根據本發明之一實施例,上述根據上述密鑰以及上述記憶體位址將上述二進制碼進行換位而產生上述換位碼之步驟更包括根據上述密鑰以及上述記憶體位址而產生一選擇碼;根據上述選擇碼,選擇一換位邏輯;以及基於上述換位邏輯將上述二進制碼進行換位而產生上述換位碼。
根據本發明之一實施例,上述基於上述換位邏輯將上述二進制碼進行換位而產生上述換位碼之步驟更包括將上述二進制碼至少劃分為一第一部份以及一第二部份;以及調換上述第一部份以及上述第二部份之順序而產生上述換位碼。
根據本發明之一實施例,上述根據上述密鑰以及上述記憶體位址而產生上述選擇碼之步驟更包括將上述密鑰之每一位元以及上述記憶體位址之對應的位元進行一加法運算而產生上述選擇碼。
根據本發明之另一實施例,上述根據上述密鑰以及上述記憶體位址而產生上述選擇碼之步驟更包括將上述密鑰之每一位元以及上述記憶體位址之對應的位元進行一互斥或運算而產生上述選擇碼。
以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範圍當以申請專利範圍所界定者為準。
能理解的是,雖然在此可使用用語「第一」、「第二」、「第三」等來敘述各種元件、組成成分、區域、層、及/或部分,這些元件、組成成分、區域、層、及/或部分不應被這些用語限定,且這些用語僅是用來區別不同的元件、組成成分、區域、層、及/或部分。因此,以下討論的一第一元件、組成成分、區域、層、及/或部分可在不偏離本揭露一些實施例之教示的情況下被稱為一第二元件、組成成分、區域、層、及/或部分。
值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。
第1圖係顯示根據本發明之一實施例所述之加密裝置之方塊圖。如第1圖所示,加密裝置100包括記憶體控制裝置110以及記憶體陣列120。記憶體控制裝置110包括第一匯流排介面111、控制器112、緩衝器113、第一邏輯閘114、第二邏輯閘115以及密碼裝置130。
第一匯流排介面111自匯流排BUS接收操作指令INS、寫入資料WDATA以及記憶體位址ADDR,並且第一匯流排介面111將操作指令INS以及記憶體位址ADDR傳送至控制器112,使得控制器112根據操作指令INS以及記憶體位址ADDR而對記憶體陣列120進行操作。
根據本發明之一實施例,當控制器112根據操作指令INS而對記憶體陣列120進行寫入操作時,第一邏輯閘114將寫入資料WDATA以及密鑰流KS進行互斥或運算而產生加密寫入資料EWDATA,並將加密寫入資料EWDATA暫存於控制器112中之緩衝器113。接著,控制器112根據記憶體位址ADDR,將暫存於緩衝器113之加密寫入資料EWDATA寫入記憶體陣列120。
根據本發明之另一實施例,當控制器112根據操作指令INS而對記憶體陣列120進行讀取操作時,控制器112將自記憶體陣列120之記憶體位址ADDR之加密讀取資料ERDATA暫存於緩衝器113中,並經由第二邏輯閘115而將加密讀取資料ERDATA以及密鑰流KS進行互斥或邏輯運算而產生讀取資料RDATA,並經第一匯流排介面111以及匯流排BUS傳送至主機。
如第1圖所示,密碼裝置130包括暫存器131、判斷單元132、第一多工器133以及密碼單元134。暫存器131用以儲存記憶體陣列120之保護區域之複數記憶體位址,並且儲存保護區域之複數記憶體位址之每一者所對應的密鑰KEY以及隨機數NONCE。
第2圖係顯示根據本發明之一實施例所述之記憶體位址與密鑰以及隨機數之對應表。對應表200係紀錄保護區域之記憶體位址ADDR、密鑰KEY以及隨機數NONCE之對應關係。如第2圖之實施例所示,記憶體陣列120之保護區域包括第一記憶體位址ADDR1、第二記憶體位址ADDR2…以及第N記憶體位址ADDRN,其中第一記憶體位址ADDR1包括第一起始位址SADDR1以及第一結束位址EADDR1,第二記憶體位址ADDR2包括第二起始位址SADDR2以及第二結束位址EADDR2,第N記憶體位址ADDRN包括第N起始位址SADDRN以及第N結束位址EADDRN。
換句話說,當對記憶體陣列120之第一起始位址SADDR1以及第一結束位址EADDR1之間、第二起始位址SADDR2以及第二結束位址EADDR2之間、…以及第N起始位址SADDRN以及第N結束位址EADDRN之間的記憶體位址進行讀取操作以及寫入操作時,須將加密讀取資料ERDATA進行解密以及將寫入資料WDATA進行加密。
如第2圖所示,第一記憶體位址ADDR1、第二記憶體位址ADDR2…以及第N記憶體位址ADDRN之每一者皆具有對應之第一密鑰KEY1、第二密鑰KEY2、…以及第N密鑰KEYN以及對應之第一隨機數NONCE1、第二隨機數NONCE2、…以及第N隨機數NONCEN。根據本發明之一實施例,使用者可透過匯流排BUS以及第一匯流排介面111而設定保護區域之第一記憶體位址ADDR1、第二記憶體位址ADDR2、…以及第N記憶體位址ADDRN,也可對暫存器131所儲存之第一隨機數NONCE1、第二隨機數NONCE2、…以及第N隨機數NONCEN進行設定。根據本發明之其他實施例,使用者可透過匯流排BUS以及第一匯流排介面111,對暫存器131所儲存之第一密鑰KEY1、第二密鑰KEY2、…以及第N密鑰KEYN進行設定。
回到第1圖,當判斷單元132自第一匯流排介面111接收記憶體位址ADDR時,判斷單元132存取暫存器131所儲存之對應表200,並判斷記憶體位址ADDR是否位於對應表200之第一記憶體位址ADDR1、第二記憶體位址ADDR2…以及第N記憶體位址ADDRN之任一者之中,並將記憶體位址ADDR提供至密碼單元134。
根據本發明之一實施例,當判斷單元132判斷接收之記憶體位址ADDR與對應表200之第二記憶體位址ADDR2相符時,判斷單元132產生判斷信號DET,第一多工器133根據判斷信號DET,選擇對應第二記憶體位址ADDR2之第二密鑰KEY2以及第二隨機數NONCE2而輸出。
接著,密碼單元134利用計數器密碼模式(counter mode),根據第一多工器133所輸出之密鑰KEY以及隨機數NONCE與判斷單元132所提供之記憶體位址ADDR而產生密鑰流KS。根據本發明之一實施例,加密裝置100係為即時(on-the-fly)密碼架構。換句話說,當記憶體控制裝置110根據操作指令INS以及記憶體位址ADDR而對記憶體陣列120進行操作時,密碼裝置130同時根據記憶體位址ADDR產生密鑰流KS。
由於計數器密碼模式的即時密碼架構在存取相同外部記憶體位址ADDR 時,無論搭配的金鑰KEY為何,加解密引擎的輸入資料必定會相同。因此攻擊者容易利用已知的金鑰加密著大量輸入資料 ,來建立功率分析模組。接著讓加解密引擎搭配未知的使用者金鑰再次執行相同輸入資料加密運算,最後藉著先前建立的功率分析模組來偷竊使用者金鑰。因此,有需要其他的密碼架構以提升資料保護能力。
第3圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖。如第3圖所示,加密裝置300包括記憶體控制裝置310、記憶體陣列120以及密碼裝置330。記憶體控制裝置310包括第一匯流排介面111、控制器112、第一邏輯閘114以及第二邏輯閘115,且對記憶體陣列120進行操作,其中第一匯流排介面111、控制器112、第一邏輯閘114、第二邏輯閘115以及記憶體陣列120係於第1圖中詳細說明,在此不再重複贅述。
將加密裝置300與第1圖之加密裝置100相比,記憶體控制裝置310以及密碼裝置330係為相互獨立,而第1圖之密碼裝置130係位於記憶體控制裝置110之中。根據本發明之一實施例,加密裝置300係為即時(on-the-fly)密碼架構。換句話說,當記憶體控制裝置310根據操作指令INS以及記憶體位址ADDR而對記憶體陣列120進行操作時,密碼裝置330同時根據記憶體位址ADDR產生密鑰流KS。
根據本發明之一實施例,當記憶體位址ADDR係位於第2圖之第一起始位址SADDR1以及第一結束位址EADDR1之間、第二起始位址SADDR2以及第二結束位址EADDR2之間、…或第N起始位址SADDRN以及第N結束位址EADDRN之間時,密碼裝置330才會啟動。
密碼裝置330包括暫存器131、判斷單元332、第一多工器133、密碼單元334、換位單元335以及第二匯流排介面336。暫存器131與第1圖之暫存器131相同,用以儲存記憶體位址ADDR、密鑰KEY以及隨機數NONCE之對應表200,在此不再重複贅述。判斷單元332自第一匯流排介面111接收記憶體位址ADDR且存取暫存器131之對應表200,並判斷記憶體位址ADDR是否位於對應表200之保護區域之第一記憶體位址ADDR1、第二記憶體位址ADDR2…以及第N記憶體位址ADDRN之一者之中。
當判斷單元332判斷記憶體位址ADDR係位於保護區域中時,判斷單元332利用致能信號EN致能密碼單元334,且產生判斷信號DET使得多工器133輸出對應記憶體位址ADDR之密鑰KEY以及隨機數NONCE。根據本發明之一實施例,當判斷單元332判斷記憶體位址ADDR係位於對應表200之第二記憶體位址ADDR2之中時,判斷單元332致能密碼單元334且控制第一多工器133選擇對應第二記憶體位址ADDR2之第二密鑰KEY2以及第二隨機數NONCE2而輸出。
根據本發明之另一實施例,當判斷單元132判斷記憶體位址ADDR並非位於對應表200之第一記憶體位址ADDR1、第二記憶體位址ADDR2…以及第N記憶體位址ADDRN之任一者之中時,判斷單元332利用致能信號EN將密碼單元334關閉,以降低功率損耗。
換位單元335產生二進制碼CB(第3圖並未顯示),且根據第一多工器133輸出之密鑰KEY以及記憶體位址ADDR,將二進制碼CB進行換位而產生換位碼CRA,其中二進制碼CB包括隨機數NONCE以及記憶體位址ADDR。接著,密碼單元334根據密鑰KEY以及換位碼CRA產生密鑰流KS。
根據本發明之一實施例,當密碼單元334產生密鑰流KS時,密碼單元334同時提供有效信號VALID至判斷單元332,判斷單元332透過第一匯流排介面111而將有效信號VALID提供至控制器112,使得控制器112利用密鑰流KS而對寫入資料WDATA進行加密及/或對加密讀取資料ERDATA進行解密。
使用者可透過匯流排BUS以及第二匯流排介面336而設定保護區域之第一記憶體位址ADDR1之第一起始位址SADDR1以及第一結束位址EADDR1、第二記憶體位址ADDR2之第二起始位址SADDR2以及第二結束位址EADDR2…以及第N記憶體位址ADDRN之第N起始位址SADDRN以及第N結束位址EADDRN,也可對暫存器131所儲存對應表200之第一隨機數NONCE1、第二隨機數NONCE2、…以及第N隨機數NONCEN進行設定。
根據本發明之其他實施例,使用者亦可透過匯流排BUS以及第二匯流排介面336,對暫存器131所儲存之第一密鑰KEY1、第二密鑰KEY2、…以及第N密鑰KEYN進行設定。
第4圖係顯示根據本發明之一實施例所述之換位單元之方塊圖。如第4圖所示,換位單元400包括第一換位邏輯單元410_1、第二換位邏輯單元410_2、…、第M換位邏輯單元410_M、選擇邏輯單元420以及多工器430。根據本發明之一實施例,二進制碼CB係由隨機數NONCE以及記憶體位址ADDR所組成。
第一換位邏輯單元410_1、第二換位邏輯單元410_2、…以及第M換位邏輯單元410_M分別具有第一換位邏輯L1、第二換位邏輯L2、…以及第M換位邏輯LM。第一換位邏輯單元410_1、第二換位邏輯單元410_2、…以及第M換位邏輯單元410_M之每一者分別根據對應的換位邏輯,將二進制碼CB進行換位而分別產生第一換位碼CRA1、第二換位碼CRA2、…以及第M換位碼CRAM。根據本發明之一實施例,第一換位邏輯L1、第二換位邏輯L2、…以及第M換位邏輯LM係為相互不同。
選擇邏輯單元420根據密鑰KEY以及記憶體位址ADDR,而產生選擇碼CSEL。第二多工器430根據選擇碼CSEL,選擇將第一換位碼CRA1、第二換位碼CRA2、…以及第M換位碼CRAM之一者輸出為換位碼CRA。根據本發明之一實施例,換位單元400包括第一換位邏輯單元410_1、第二換位邏輯單元410_2、…以及第M換位邏輯單元410_M,選擇碼CSEL係為 位元。亦即,選擇碼CSEL之位元數係等於 之向上取整(ceiling)之整數。
第5圖係顯示根據本發明之一實施例所述之換位邏輯之示意圖。如第5圖之所示,換位邏輯500係將128位元之二進制碼CB劃分為第一部份CB[127:x]以及第二部份CB[(x-1):0],其中x係為127以及0之間的任意整數。此外,換位邏輯500更將第一部份CB[127:x]以及第二部份CB[(x-1):0]之順序調換後產生換位碼CRA,其中換位碼CRA中的第一部份CB[127:x]以及第二部份CB[(x-1):0]之順序係與二進制碼CB之第一部份CB[127:x]以及第二部份CB[(x-1):0]之順序不同。根據本發明之一些實施例,換位邏輯500係對應至第4圖之第一換位邏輯L1、第二換位邏輯L2、…以及第M換位邏輯LM之任一者。
第6圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖。如第6圖所示,換位邏輯600係將128位元之二進制碼CB每32位元劃分為一組,而產生第一部份CB[31:0]、第二部份CB[63:32]、第三部份CB[95:64]以及第四部份CB[127:96]。此外,換位邏輯600更將第一部份CB[31:0]、第二部份CB[63:32]、第三部份CB[95:64]以及第四部份CB[127:96]之順序調換而產生換位碼CRA,其中換位碼CRA中的順序係為第三部份CB[95:64]、第一部份CB[31:0]、第四部份CB[127:96]以及第二部份CB[63:32]。根據本發明之一些實施例,換位邏輯600係對應至第4圖之第一換位邏輯L1、第二換位邏輯L2、…以及第M換位邏輯LM之任一者。
第7圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖。如第7圖所示,換位邏輯700將128位元之二進制碼CB每8位元劃分為一組,而產生第一部份CB[7:0]、第二部份CB[15:8]、第三部份CB[23:16]、第四部份CB[31:24]、第五部份CB[39:32]、第六部份CB[47:40]、第七部份CB[55:48]、第八部份CB[63:56]、第九部份CB[71:64]、第十部份CB[79:72]、第十一部份CB[87:80]、第十二部份CB[95:88]、第十三部份CB[103:96]、第十四部份CB[111:104]、第十五部份CB[119:112]以及第十六部份CB[127:120]。
換位邏輯700更將第一部份CB[7:0]、第二部份CB[15:8]、第三部份CB[23:16]、第四部份CB[31:24]、第五部份CB[39:32] 、第六部份CB[47:40] 、第七部份CB[55:48] 、第八部份CB[63:56] 、第九部份CB[71:64] 、第十部份CB[79:72] 、第十一部份CB[87:80] 、第十二部份CB[95:88] 、第十三部份CB[103:96] 、第十四部份CB[111:104] 、第十五部份CB[119:112] 以及第十六部份CB[127:120]之順序調換,而產生換位碼CRA。根據本發明之一些實施例,換位邏輯700係對應至第4圖之第一換位邏輯L1、第二換位邏輯L2、…以及第M換位邏輯LM之任一者。
根據本發明之其他實施例,換位單元400根據換位邏輯而將二進制碼CB至少劃分為第一部份以及第二部份,並調換第一部份以及第二部份之順序而產生換位碼CRA,其中第一部份以及第二部份所具有之位元數係為相同或不同。此外,第5-7圖係以128位元之二進制碼CB進行說明解釋,並非以任何形式限定於此。
第8圖係顯示根據本發明之一實施例所述之選擇邏輯單元之示意圖。根據本發明之一實施例,第4圖之選擇邏輯單元420係為加法器800。如第8圖所示,加法器800將密鑰KEY之每一位元以及記憶體位址ADDR之對應的位元進行加法運算ADD而產生選擇碼CSEL。根據本發明之一些實施例,密鑰KEY以及記憶體位址ADDR係為M位元,選擇碼CSEL皆為W(其中, )位元,用以選擇第4圖之第一換位碼CRA1、第二換位碼CRA2、…以及第M換位碼CRAM之一者,作為換位碼CRA。
第9圖係顯示根據本發明之另一實施例所述之選擇邏輯單元之示意圖。根據本發明之另一實施例,第4圖之選擇邏輯單元420係為互斥或閘900。如第9圖所示,互斥或閘900將密鑰KEY之每一位元以及記憶體位址ADDR之對應的位元進行互斥或運算XOR,而產生選擇碼CSEL。根據本發明之一些實施例,選擇邏輯單元900係對應至第4圖之選擇邏輯單元420,密鑰KEY以及記憶體位址ADDR係為M位元,選擇碼CSEL係為W(其中, )位元,用以選擇M個第一換位碼CRA1、第二換位碼CRA2、…以及第M換位碼CRAM之一者,作為換位碼CRA。
根據本發明之實施例,第4圖之選擇邏輯單元420可利用加法運算、互斥或運算及其組合,將密鑰KEY之每一位元以及記憶體位址ADDR之對應的位元進行運算而產生選擇碼CSEL,用以選擇M個第一換位碼CRA1、第二換位碼CRA2、…以及第M換位碼CRAM之一者作為換位碼CRA。
第10圖係顯示根據本發明之一實施例所述之密碼方法之流程圖。以下針對第10圖之密碼方法1000將搭配第3圖之加密裝置300,以利詳細說明。
利用判斷單元332,判斷接收之記憶體位址ADDR是否位於保護區域(步驟S110)。當判斷記憶體位址ADDR係位於保護區域中時,利用判斷單元332選擇密鑰KEY以及隨機數NONCE(步驟S120)。當判斷記憶體位址ADDR不在保護區域中時,回到步驟S110。根據本發明之一實施例,當判斷記憶體位址ADDR位於保護區域中時,判斷單元332根據暫存器131所儲存之對應表200而選擇對應記憶體位址ADDR之密鑰KEY以及隨機數NONCE。
接著,利用換位單元335產生二進制碼CB(步驟S130),其中二進制碼CB包括隨機數NONCE以及記憶體位址ADDR。此外,利用換位單元335,根據密鑰KEY以及記憶體位址ADDR將二進制碼CB進行換位而產生換位碼CRA(步驟S140)。接著,利用密碼單元334根據密鑰KEY以及換位碼CRA,產生密鑰流KS(步驟S150)。
根據本發明之一些實施例,利用第5圖之換位邏輯500、第6圖之換位邏輯600、第7圖之換位邏輯700及其組合,將二進制碼CB進行換位而產生換位碼CRA。根據本發明之一些實施例,將密鑰KEY以及記憶體位址ADDR之每一位元進行加法運算、互斥或運算及其組合而產生選擇碼CSEL,並根據選擇碼CSEL自複數換位碼CRA中選擇一者,並結合對應記憶體位址ADDR之密鑰KEY以產生密鑰流KS。
本發明在此提出密碼裝置及其密碼方法,用以在記憶體控制裝置對記憶體陣列進行操作時,即時產生密鑰流。相對計數器密碼模式,本發明所提出之密碼裝置及其密碼方法使用不同的輸入資料編碼方式,使得攻擊者在建立功率分析模組方面也將面臨更高困難度,進而提供較佳的資料保護能力。
雖然本揭露的實施例及其優點已揭露如上,但應該瞭解的是,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作更動、替代與潤飾。此外,本揭露之保護範圍並未侷限於說明書內所述特定實施例中的製程、機器、製造、物質組成、裝置、方法及步驟,任何所屬技術領域中具有通常知識者可從本揭露一些實施例之揭示內容中理解現行或未來所發展出的製程、機器、製造、物質組成、裝置、方法及步驟,只要可以在此處所述實施例中實施大抵相同功能或獲得大抵相同結果皆可根據本揭露一些實施例使用。因此,本揭露之保護範圍包括上述製程、機器、製造、物質組成、裝置、方法及步驟。另外,每一申請專利範圍構成個別的實施例,且本揭露之保護範圍也包括各個申請專利範圍及實施例的組合。
100, 300:加密裝置 110, 310:記憶體控制裝置 111:第一匯流排介面 112:控制器 113:緩衝器 114:第一邏輯閘 115:第二邏輯閘 120:記憶體陣列 130, 330:密碼裝置 131:暫存器 132, 332:判斷單元 133:第一多工器 134:密碼單元 200:對應表 334:密碼單元 335, 400:換位單元 336:第二匯流排介面 410_1:第一換位邏輯單元 410_2:第二換位邏輯單元 410_M:第M換位邏輯單元 420:選擇邏輯單元 430:多工器 500, 600, 700:換位邏輯 800:加法器 900:互斥或閘 1000:密碼方法 BUS:匯流排 INS:操作指令 WDATA:寫入資料 RDATA:讀取資料 ADDR:記憶體位址 ADDR1:第一記憶體位址 ADDR2:第二記憶體位址 ADDRN:第N記憶體位址 SADDR1:第一起始位址 EADDR1:第一結束位址 SADDR2:第二起始位址 EADDR2:第二結束位址 SADDRN:第N起始位址 EADDRN:第N結束位址 EWDATA:加密寫入資料 ERDATA:加密讀取資料 KEY:密鑰 KEY1:第一密鑰 KEY2:第二密鑰 KEYN:第N密鑰 KS:密鑰流 EN:致能信號 DET:判斷信號 NONCE:隨機數 NONCE1:第一隨機數 NONCE2:第二隨機數 NONCEN:第N隨機數 VALID:有效信號 L1:第一換位邏輯 L2:第二換位邏輯 LM:第M換位邏輯 CRA:換位碼 CRA1:第一換位碼 CRA2:第二換位碼 CRAM:第M換位碼 CSEL:選擇碼 CB:二進制碼 CB[127:x], CB[31:0], CB[7:0]:第一部份 CB[(x-1):0], CB[63:32], CB[15:8]:第二部份 CB[95:64], CB[23:16]:第三部份 CB[127:96], CB[31:24]:第四部份 CB[39:32]:第五部份 CB[47:40]:第六部份 CB[55:48]:第七部份 CB[63:56]:第八部份 CB[71:64]:第九部份 CB[79:72]:第十部份 CB[87:80]:第十一部份 CB[95:88]:第十二部份 CB[103:96]:第十三部份 CB[111:104]:第十四部份 CB[119:112]:第十五部份 CB[127:120]:第十六部份 ADD:加法運算 XOR:互斥或運算 S110~S150:步驟流程
第1圖係顯示根據本發明之一實施例所述之加密裝置之方塊圖; 第2圖係顯示根據本發明之一實施例所述之記憶體位址與密鑰以及隨機數之對應表; 第3圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖; 第4圖係顯示根據本發明之一實施例所述之換位單元之方塊圖; 第5圖係顯示根據本發明之一實施例所述之換位邏輯之示意圖; 第6圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖; 第7圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖; 第8圖係顯示根據本發明之一實施例所述之選擇邏輯單元之示意圖; 第9圖係顯示根據本發明之另一實施例所述之選擇邏輯單元之示意圖;以及 第10圖係顯示根據本發明之一實施例所述之密碼方法之流程圖。
300:加密裝置
310:記憶體控制裝置
111:第一匯流排介面
112:控制器
113:緩衝器
114:第一邏輯閘
115:第二邏輯閘
120:記憶體陣列
330:密碼裝置
131:暫存器
332:判斷單元
133:第一多工器
334:密碼單元
335:換位單元
336:第二匯流排介面
BUS:匯流排
INS:操作指令
WDATA:寫入資料
RDATA:讀取資料
ADDR:記憶體位址
EWDATA:加密寫入資料
ERDATA:加密讀取資料
KEY:密鑰
KS:密鑰流
EN:致能信號
DET:判斷信號
NONCE:隨機數
VALID:有效信號
CRA:換位碼

Claims (10)

  1. 一種密碼裝置,適用於一記憶體裝置,包括: 一判斷單元,判斷一記憶體位址位於一保護區域中而選擇一密鑰以及一隨機數; 一換位單元,根據上述密鑰以及上述記憶體位址,將一二進制碼進行換位而產生一換位碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址;以及 一密碼單元,根據上述密鑰以及上述換位碼,產生一密鑰流。
  2. 如請求項1之密碼裝置,其中上述記憶體裝置包括一第一匯流排介面、一控制器以及一記憶體陣列,其中當上述第一匯流排介面接收到上述記憶體位址以及一操作指令時,上述第一匯流排介面將上述記憶體位址發送至上述判斷單元且將上述操作指令發送至上述控制器,使得上述控制器根據上述記憶體位址以及上述操作指令讀取上述記憶體陣列之一加密讀取資料及/或將一寫入資料寫入上述記憶體陣列,其中當上述密碼單元產生上述密鑰流時,上述密碼單元同時產生一有效信號,上述控制器根據上述有效信號,利用上述密鑰流對上述加密讀取資料進行解密以及對上述寫入資料進行加密。
  3. 如請求項1之密碼裝置,更包括: 一暫存器,用以儲存上述保護區域之記憶體位址之起始位址以及結束位址以及對應上述保護區域之記憶體位址的上述密鑰以及上述隨機數; 一第二匯流排介面,其中一使用者透過上述第二匯流排介面設定儲存於上述暫存器之對應上述保護區域之記憶體位址之上述密鑰以及上述隨機數;以及 一第一多工器,根據一判斷信號,選擇對應上述記憶體位址之上述密鑰以及上述隨機數,其中當上述判斷單元判斷上述記憶體位址位於上述保護區域時,上述判斷單元產生上述判斷信號。
  4. 如請求項1之密碼裝置,其中上述換位單元包括: 複數換位邏輯單元,其中上述複數換位邏輯單元之每一者具有一換位邏輯,且根據上述換位邏輯將上述二進制碼進行換位而產生上述換位碼,其中上述複數換位邏輯單元之每一者對應之上述換位邏輯係為不同; 一選擇邏輯單元,根據上述密鑰以及上述記憶體位址而產生一選擇碼;以及 一第二多工器,根據上述選擇碼,輸出上述複數換位邏輯單元之對應的一者所產生之上述換位碼。
  5. 如請求項4之密碼裝置,其中上述複數換位邏輯單元之一者根據上述換位邏輯,將上述二進制碼至少劃分為一第一部份以及一第二部份,並且調換上述第一部份以及上述第二部份之順序而產生上述換位碼。
  6. 如請求項4之密碼裝置,其中上述選擇邏輯單元將上述密鑰之每一位元以及上述記憶體位址之對應的位元進行一加法運算而產生上述選擇碼。
  7. 一種密碼方法,適用於一記憶體陣列,包括: 判斷一記憶體位址位於一保護區域中而選擇一密鑰以及一隨機數; 產生一二進制碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址; 根據上述密鑰以及上述記憶體位址將上述二進制碼進行換位而產生一換位碼;以及 根據上述密鑰以及上述換位碼,產生一密鑰流。
  8. 如請求項7之密碼方法,更包括: 根據上述記憶體位址以及一操作指令讀取一記憶體陣列之一加密讀取資料及/或將一寫入資料寫入上述記憶體陣列;以及 利用上述密鑰流對上述加密讀取資料進行解密以及對上述寫入資料進行加密。
  9. 如請求項7之密碼方法,更包括: 將上述保護區域之記憶體位址之起始位址以及結束位址以及對應上述保護區域之記憶體位址的上述密鑰以及上述隨機數儲存於一暫存器中,其中一使用者透過一匯流排介面設定儲存於上述暫存器之對應上述保護區域之記憶體位址之上述密鑰以及上述隨機數;以及 當判斷上述記憶體位址位於上述保護區域時,自上述暫存器選擇對應上述記憶體位址之上述密鑰以及上述隨機數。
  10. 如請求項9之密碼方法,其中上述根據上述密鑰以及上述記憶體位址將上述二進制碼進行換位而產生上述換位碼之步驟更包括: 根據上述密鑰以及上述記憶體位址而產生一選擇碼; 根據上述選擇碼,選擇一換位邏輯;以及 基於上述換位邏輯將上述二進制碼進行換位而產生上述換位碼。
TW111124590A 2022-06-30 2022-06-30 密碼裝置及其密碼方法 TW202403576A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111124590A TW202403576A (zh) 2022-06-30 2022-06-30 密碼裝置及其密碼方法
CN202211360684.7A CN117375806A (zh) 2022-06-30 2022-11-02 密码装置及其密码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111124590A TW202403576A (zh) 2022-06-30 2022-06-30 密碼裝置及其密碼方法

Publications (1)

Publication Number Publication Date
TW202403576A true TW202403576A (zh) 2024-01-16

Family

ID=89391680

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111124590A TW202403576A (zh) 2022-06-30 2022-06-30 密碼裝置及其密碼方法

Country Status (2)

Country Link
CN (1) CN117375806A (zh)
TW (1) TW202403576A (zh)

Also Published As

Publication number Publication date
CN117375806A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
US8379841B2 (en) Method and system for high throughput blockwise independent encryption/decryption
US5835599A (en) Muti-cycle non-parallel data encryption engine
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
US8428251B2 (en) System and method for stream/block cipher with internal random states
US8301905B2 (en) System and method for encrypting data
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
WO2018090665A1 (zh) 一种数据处理的方法及装置
US11308241B2 (en) Security data generation based upon software unreadable registers
WO2006033347A1 (ja) 機密情報処理方法、機密情報処理装置、およびコンテンツデータ再生装置
US9602281B2 (en) Parallelizable cipher construction
US20050138403A1 (en) Data encryption in a symmetric multiprocessor electronic apparatus
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
US20120321079A1 (en) System and method for generating round keys
TWI816456B (zh) 密碼裝置及其密碼方法
TW202403576A (zh) 密碼裝置及其密碼方法
Landge et al. VHDL based Blowfish implementation for secured embedded system design
KR102393958B1 (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
JPH0744375A (ja) 暗号化データ処理装置
Mahdi New Paradigm Design by Merging the Techniques of Stream Cipher with Block Cipher