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

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

Info

Publication number
TWI816456B
TWI816456B TW111124611A TW111124611A TWI816456B TW I816456 B TWI816456 B TW I816456B TW 111124611 A TW111124611 A TW 111124611A TW 111124611 A TW111124611 A TW 111124611A TW I816456 B TWI816456 B TW I816456B
Authority
TW
Taiwan
Prior art keywords
code
mentioned
key
memory address
transposition
Prior art date
Application number
TW111124611A
Other languages
English (en)
Other versions
TW202403572A (zh
Inventor
陳順雄
吳坤益
李鈺珊
Original Assignee
新唐科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Priority to TW111124611A priority Critical patent/TWI816456B/zh
Priority to CN202211463236.XA priority patent/CN117335965A/zh
Priority to US18/325,447 priority patent/US20240007283A1/en
Application granted granted Critical
Publication of TWI816456B publication Critical patent/TWI816456B/zh
Publication of TW202403572A publication Critical patent/TW202403572A/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/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Developing Agents For Electrophotography (AREA)
  • Burglar Alarm Systems (AREA)

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,其中第一部份以及第二部份所具有之位元數係為相同或不同。
第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圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖。將加密裝置1000與第3圖之加密裝置300相比,加密裝置300之換位單元335係替換為映射單元1035。如第10圖所示,映射單元1035產生二進制碼CB(第10圖並未顯示),且根據單射函數,將第一多工器133所輸出對應記憶體位址ADDR之密鑰KEY、記憶體位址ADDR以及二進制碼CB映射至單射碼CIJ,其中二進制碼CB包括隨機數NONCE以及記憶體位址ADDR。
第11圖係顯示根據本發明之一實施例所述之映射單元之方塊圖。如第11圖所示,映射單元1100包括選擇邏輯單元420、第一互斥或閘1110以及第一查找表1120。選擇邏輯單元420根據密鑰KEY以及記憶體位址ADDR,而產生選擇碼CSEL。根據本發明之一些實施例,選擇邏輯單元420可由第8圖之加法器800或第9圖之互斥或閘900所實現,在此不再重複贅述。
第一互斥或閘1110將選擇碼CSEL以及二進制碼CB之每一位元進行互斥或運算,而產生第一結果RS1。第一查找表1120具有第一單射函數(injection function)IF1,並且第一查找表1120基於第一單射函數IF1而將第一結果RS1映射至單射碼CIJ。根據本發明之一實施例,第一單射函數IF1係為1對1的映射函數,用以將單一第一結果RS1映射至單一單射碼CIJ。
第12圖係顯示根據本發明之另一實施例所述之映射單元之方塊圖。如第12圖所示,映射單元1200包括選擇邏輯單元420、第二查找表1211、第三查找表1212以及第二互斥或閘1220。選擇邏輯單元420根據密鑰KEY以及記憶體位址ADDR,而產生選擇碼CSEL。根據本發明之一些實施例,選擇邏輯單元420可由第8圖之加法器800或第9圖之互斥或閘900所實現,在此不再重複贅述。
第二查找表1211具有第二單射函數IF2,並且第二查找表1211基於第二單射函數IF2而將選擇碼CSEL映射至第二結果RS2。第三查找表1212具有第三單射函數IF3,並且第三查找表1212基於第三單射函數IF3而將二進制碼CB映射至第三結果RS3。根據本發明之一實施例,第二單射函數IF2以及第三單射函數IF3皆為1對1的映射函數,用以分別將單一選擇碼CSEL以及二進制碼CB分別映射至單一第二結果RS2以及第三結果RS3。第二互斥或閘1220將第二結果RS2以及第三結果RS3之每一位元進行互斥或運算而產生單射碼CIJ。
第13圖係顯示根據本發明之另一實施例所述之映射單元之方塊圖。如第13圖所示,映射單元1300包括選擇邏輯單元420、第三互斥或閘1311、第四互斥或閘1312、第四查找表1321以及第五查找表1322。選擇邏輯單元420根據密鑰KEY以及記憶體位址ADDR,而產生選擇碼CSEL[15:0]。以下係以16位元之選擇碼CSEL[15:0]以及二進制碼CB[15:0]為例進行說明解釋,並未以任何形式限定於此。
二進制碼CB[15:0]係劃分為第一部份CB[7:0]以及第二部份CB[15:8],選擇碼CSEL[15:0]係劃分為第一部份選擇碼CSEL[7:0]以及第二部份選擇碼CSEL[15:8]。第一互斥或閘1311將第二部份CB[15:8]以及第一部份選擇碼CSEL[7:0]之每一位元進行互斥或運算而產生第四結果RS4。第二互斥或閘1312將第一部份CB[7:0]以及第二部份選擇碼CSEL[15:8]之每一位元進行互斥或運算而產生第五結果RS5。
第四查找表1321具有第四單射函數IF4,並且第四查找表1321基於第四單射函數IF4而將第四結果RS4映射至第一部份單射碼CIJ[15:8]。第五查找表1322具有第五單射函數IF5,並且第五查找表1322基於第五單射函數IF5而將第五結果RS5映射至第二部份單射碼CIJ[7:0],其中第10圖之單射碼CIJ係由第一部份單射碼CIJ[15:8]以及第二部份單射碼CIJ[7:0]所組成。根據本發明之一實施例,第四單射函數IF4以及第五單射函數IF5皆為1對1的映射函數,用以分別將單一第四結果RS4以及第五結果RS5分別映射至單一第一部份單射碼CIJ[15:8]以及第二部份單射碼CIJ[7:0]。
第14圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖。將加密裝置1400與第3圖之加密裝置300相比,加密裝置300之換位單元335係替換為運算單元1435。如第14圖所示,運算單元1435產生二進制碼CB(第14圖並未顯示),且根據第一多工器133輸出之密鑰KEY以及記憶體位址ADDR,將二進制碼CB進行運算而產生運算碼COP,其中二進制碼CB包括隨機數NONCE以及記憶體位址ADDR。
第15圖係顯示根據本發明之一實施例所述之運算單元之方塊圖。如第15圖所示,運算單元1500包括選擇邏輯單元420、第三多工器1510、換位單元1520以及映射單元1530。選擇邏輯單元420根據密鑰KEY以及記憶體位址ADDR,而產生選擇碼CSEL。根據本發明之一些實施例,選擇邏輯單元420可由第8圖之加法器800或第9圖之互斥或閘900所實現,在此不再重複贅述。
第三多工器1510根據控制信號SC,選擇二進制碼CB以及單射碼CIJ之一者而輸出為輸入碼CI。換位單元1520根據選擇碼CSEL選擇換位邏輯,並根據換位邏輯將輸入碼CI進行換位而產生換位碼CRA。根據本發明之一些實施例,換位單元1520之換位邏輯係如第5-7圖所示,在此不再重複贅述。映射單元1530根據單射函數,將選擇碼CSEL以及換位碼CRA映射至單射碼CIJ。
根據本發明之一些實施例,映射單元1530係如第11-13圖所示,在此不再重複贅述。根據本發明之一實施例,可利用控制信號SC控制換位單元1520以及映射單元1530之重複執行次數R,並於完成執行次數R後將映射單元1530輸出之單射碼CIJ輸出為運算碼COP。
第16圖係顯示根據本發明之另一實施例所述之運算單元之方塊圖。將運算單元1600與第15圖之運算單元1500相比,換位單元1520以及映射單元1530之順序調換。換句話說,映射單元1530根據選擇碼CSEL將輸入碼CI映射至單射碼CIJ,換位單元1520根據選擇碼CSEL將單射碼CIJ進行換位而產生換位碼CRA。根據本發明之一實施例,可利用控制信號SC控制映射單元1530以及換位單元1520之重複執行次數R,並於完成執行次數R後將換位單元1520輸出之換位碼CRA輸出為運算碼COP。
第17圖係顯示根據本發明之一實施例所述之密碼方法之流程圖。以下針對第17圖之密碼方法1700將搭配第3-7、10-16圖,以利詳細說明。
利用判斷單元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而產生運算碼COP(步驟S140)。接著,利用密碼單元334根據密鑰KEY以及運算碼COP,產生密鑰流KS(步驟S150)。
根據本發明之一實施例,第4圖之換位單元400根據第5圖之換位邏輯500、第6圖之換位邏輯600以及第7圖之換位邏輯700,將二進制碼CB進行換位而產生換位碼CRA,並且第3圖之密碼單元334根據密鑰KEY以及換位碼CRA而產生密鑰流KS,其中步驟S140之運算碼COP在此係為換位碼CRA。
根據本發明之另一實施例,第11圖之映射單元1100、第12圖之換位單元1200以及第13圖之換位單元1300將密鑰KEY以及記憶體位址ADDR所產生之選擇碼CSEL以及二進制碼CB映射至單射碼CIJ,並且第10圖之密碼單元334根據密鑰KEY以及單射碼CIJ而產生密鑰流KS,其中步驟S140之運算碼COP在此係為單射碼CIJ。
根據本發明之另一實施例,第15圖之運算單元1500以及第16圖之運算單元1600將選擇邏輯單元420所產生之選擇碼CSEL及/或二進制碼CB進行執行次數R之換位以及映射而產生運算碼COP,並且第14圖之密碼單元334根據密鑰KEY以及運算碼COP而產生密鑰流KS。
本發明在此提出密碼裝置及其密碼方法,用以在記憶體控制裝置對記憶體陣列進行操作時,即時產生密鑰流。相對計數器密碼模式,本發明所提出之密碼裝置及其密碼方法使用不同的輸入資料編碼方式,使得攻擊者在建立功率分析模組方面也將面臨更高困難度,進而提供較佳的資料保護能力。
雖然本揭露的實施例及其優點已揭露如上,但應該瞭解的是,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作更動、替代與潤飾。此外,本揭露之保護範圍並未侷限於說明書內所述特定實施例中的製程、機器、製造、物質組成、裝置、方法及步驟,任何所屬技術領域中具有通常知識者可從本揭露一些實施例之揭示內容中理解現行或未來所發展出的製程、機器、製造、物質組成、裝置、方法及步驟,只要可以在此處所述實施例中實施大抵相同功能或獲得大抵相同結果皆可根據本揭露一些實施例使用。因此,本揭露之保護範圍包括上述製程、機器、製造、物質組成、裝置、方法及步驟。另外,每一申請專利範圍構成個別的實施例,且本揭露之保護範圍也包括各個申請專利範圍及實施例的組合。
100, 300, 1000, 1400:加密裝置 110, 310:記憶體控制裝置 111:第一匯流排介面 112:控制器 113:緩衝器 114:第一邏輯閘 115:第二邏輯閘 120:記憶體陣列 130, 330:密碼裝置 131:暫存器 132, 332:判斷單元 133:第一多工器 134:密碼單元 200:對應表 334:密碼單元 335, 400, 1520:換位單元 336:第二匯流排介面 410_1:第一換位邏輯單元 410_2:第二換位邏輯單元 410_M:第M換位邏輯單元 420:選擇邏輯單元 430:多工器 500, 600, 700:換位邏輯 800:加法器 900:互斥或閘 1035, 1100, 1200, 1300, 1530:映射單元 1110:第一互斥或閘 1120:第一查找表 1211:第二查找表 1212:第三查找表 1220:第二互斥或閘 1311:第三互斥或閘 1312:第四互斥或閘 1321:第四查找表 1322:第五查找表 1435, 1500, 1600:運算單元 1510:第三多工器 1700:密碼方法 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, CSEL[15:0]:選擇碼 CSEL[15:8]:第一部份選擇碼 CSEL[7:0]:第二部份選擇碼 CB, CB[15:0]:二進制碼 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]:第十六部份 CB[15:8]:第一部份二進制碼 CSEL[7:0]:第二部份選擇碼 ADD:加法運算 XOR:互斥或運算 CIJ:單射碼 CIJ[15:8]:第一部份單射碼 CIJ[7:0]:第二部份單射碼 COP:運算碼 CI:輸入碼 R:執行次數 RS1:第一結果 RS2:第二結果 RS3:第三結果 RS4:第四結果 RS5:第五結果 IF1:第一單射函數 IF2:第二單射函數 IF3:第三單射函數 IF4:第四單射函數 IF5:第五單射函數 SC:控制信號 S110~S150:步驟流程
第1圖係顯示根據本發明之一實施例所述之加密裝置之方塊圖; 第2圖係顯示根據本發明之一實施例所述之記憶體位址與密鑰以及隨機數之對應表; 第3圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖; 第4圖係顯示根據本發明之一實施例所述之換位單元之方塊圖; 第5圖係顯示根據本發明之一實施例所述之換位邏輯之示意圖; 第6圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖; 第7圖係顯示根據本發明之另一實施例所述之換位邏輯之示意圖; 第8圖係顯示根據本發明之一實施例所述之選擇邏輯單元之示意圖; 第9圖係顯示根據本發明之另一實施例所述之選擇邏輯單元之示意圖; 第10圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖; 第11圖係顯示根據本發明之一實施例所述之映射單元之方塊圖; 第12圖係顯示根據本發明之另一實施例所述之映射單元之方塊圖; 第13圖係顯示根據本發明之另一實施例所述之映射單元之方塊圖; 第14圖係顯示根據本發明之另一實施例所述之加密裝置之方塊圖; 第15圖係顯示根據本發明之一實施例所述之運算單元之方塊圖; 第16圖係顯示根據本發明之另一實施例所述之運算單元之方塊圖;以及 第17圖係顯示根據本發明之一實施例所述之密碼方法之流程圖。
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. 如請求項1之密碼裝置,其中上述映射單元包括:一選擇邏輯單元,對上述密鑰以及上述記憶體位進行一邏輯運算址而產生一選擇碼;一第一查找表,具有一第一單射函數,其中上述第一查找表基於上述第一單射函數,將上述選擇碼映射至一第一結果;一第二查找表,具有一第二單射函數,其中上述第二查找表基於上述第二單射函數,將上述二進制碼映射至一第二結果;以及一互斥或閘,將上述第一結果以及上述第二結果進行互斥或運算而產生上述單射碼。
  6. 如請求項1之密碼裝置,其中上述映射單元包括: 一選擇邏輯單元,對上述密鑰以及上述記憶體位址進行一邏輯運算而產生一選擇碼,其中上述選擇碼劃分為一第一部份以及一第二部份,上述二進制碼劃分為一第三部份以及一第四部份;一第一互斥或閘,將上述第一部份以及上述第三部份進行一互斥或運算而產生一第一結果;一第二互斥或閘,將上述第二部份以及上述第四部份進行上述互斥或運算而產生一第二結果;一第一查找表,具有一第一單射函數,其中上述第一查找表基於上述第一單射函數,將上述第一結果映射至一第一單射碼;以及一第二查找表,具有一第二單射函數,其中上述第二查找表基於上述第二單射函數,將上述第二結果映射至一第二單射碼,其中上述單射碼係由上述第一單射碼以及上述第二單射碼所組成。
  7. 一種密碼裝置,適用於一記憶體裝置,包括:一判斷單元,判斷一記憶體位址位於一保護區域中而根據一對應表選擇一密鑰以及一隨機數;一第三多工器,選擇一二進制碼以及一單射碼之一者而輸出為一輸入碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址;一換位單元,根據上述密鑰以及上述記憶體位址,將上述輸入碼進行換位而產生一換位碼;一映射單元,根據上述密鑰以及上述記憶體位址,將上述換 位碼映射至一單射碼;以及一密碼單元,根據上述密鑰以及上述單射碼,產生一密鑰流。
  8. 如請求項7之密碼裝置,其中上述換位單元包括:複數換位邏輯單元,其中上述複數換位邏輯單元之每一者具有一換位邏輯,且根據上述換位邏輯將上述輸入碼進行換位而產生上述換位碼,其中上述複數換位邏輯單元之每一者對應之上述換位邏輯係為不同;一選擇邏輯單元,根據上述密鑰以及上述記憶體位址而產生一選擇碼;以及一第二多工器,根據上述選擇碼,輸出上述複數換位邏輯單元之對應的一者所產生之上述換位碼。
  9. 一種密碼方法,適用於一記憶體陣列,包括:判斷一記憶體位址位於一保護區域中而根據一對應表選擇一密鑰以及一隨機數;產生一二進制碼,其中上述二進制碼包括上述隨機數以及上述記憶體位址;根據上述密鑰、上述記憶體位址以及上述二進制碼而產生一運算碼;以及根據上述密鑰以及上述運算碼而產生一密鑰流。
  10. 如請求項9之密碼方法,其中上述根據上述密鑰、上述記憶體位址以及上述二進制碼而產生上述運算碼之步驟更包括:根據上述密鑰以及上述記憶體位址而產生一選擇碼;根據上述選擇碼,選擇一換位邏輯; 選擇上述二進制碼以及一換位碼之一者而輸出為一輸入碼;基於上述單射函數將上述選擇碼以及上述輸入碼映射至一單射碼;以及基於上述換位邏輯將上述單射碼進行換位而產生上述運算碼。
TW111124611A 2022-06-30 2022-06-30 密碼裝置及其密碼方法 TWI816456B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW111124611A TWI816456B (zh) 2022-06-30 2022-06-30 密碼裝置及其密碼方法
CN202211463236.XA CN117335965A (zh) 2022-06-30 2022-11-22 密码装置及其密码方法
US18/325,447 US20240007283A1 (en) 2022-06-30 2023-05-30 Cryptographic device using transposition function and/or mapping function and cryptographic method thereof

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TWI816456B true TWI816456B (zh) 2023-09-21
TW202403572A TW202403572A (zh) 2024-01-16

Family

ID=88966197

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US20240007283A1 (zh)
CN (1) CN117335965A (zh)
TW (1) TWI816456B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201719489A (zh) * 2015-08-17 2017-06-01 美光科技公司 計算記憶體中可執行指令之加密
CN107085545A (zh) * 2017-06-01 2017-08-22 北京智慧云测科技有限公司 基于Cache的AES算法的安全评估方法和系统
TW202027075A (zh) * 2018-11-15 2020-07-16 美商美光科技公司 記憶體之位址混淆
CN112149145A (zh) * 2019-06-29 2020-12-29 英特尔公司 基于不变指针的数据加密
TW202141285A (zh) * 2020-03-25 2021-11-01 英商Arm股份有限公司 記憶體系統驗證

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201719489A (zh) * 2015-08-17 2017-06-01 美光科技公司 計算記憶體中可執行指令之加密
CN107085545A (zh) * 2017-06-01 2017-08-22 北京智慧云测科技有限公司 基于Cache的AES算法的安全评估方法和系统
TW202027075A (zh) * 2018-11-15 2020-07-16 美商美光科技公司 記憶體之位址混淆
CN112149145A (zh) * 2019-06-29 2020-12-29 英特尔公司 基于不变指针的数据加密
TW202141285A (zh) * 2020-03-25 2021-11-01 英商Arm股份有限公司 記憶體系統驗證

Also Published As

Publication number Publication date
CN117335965A (zh) 2024-01-02
US20240007283A1 (en) 2024-01-04
TW202403572A (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
US5835599A (en) Muti-cycle non-parallel data encryption engine
US8737606B2 (en) Method and system for high throughput blockwise independent encryption/decryption
CN101520966B (zh) 并行运算模式中优化高级加密标准加解密的方法和装置
US8503670B2 (en) Parallelizable integrity-aware encryption technique
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
US8301905B2 (en) System and method for encrypting data
US8094816B2 (en) System and method for stream/block cipher with internal random states
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
JP4865694B2 (ja) プロセッサ装置
US11308241B2 (en) Security data generation based upon software unreadable registers
WO2018090665A1 (zh) 一种数据处理的方法及装置
CN109086612B (zh) 一种基于硬件实现的嵌入式系统动态数据保护方法
US20160065368A1 (en) Address-dependent key generator by xor tree
US20150363333A1 (en) High performance autonomous hardware engine for inline cryptographic processing
WO2006033347A1 (ja) 機密情報処理方法、機密情報処理装置、およびコンテンツデータ再生装置
US9602281B2 (en) Parallelizable cipher construction
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
TWI816456B (zh) 密碼裝置及其密碼方法
US20120321079A1 (en) System and method for generating round keys
US20190199526A1 (en) Communication system and data communication method
TW202403576A (zh) 密碼裝置及其密碼方法
JPH0744375A (ja) 暗号化データ処理装置
KR102393958B1 (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
CN116341026A (zh) 一种基于双内存异或的加密计算机系统及总线加密方法