TWI804439B - Apparatus and method for detecting errors during data encryption - Google Patents
Apparatus and method for detecting errors during data encryption Download PDFInfo
- Publication number
- TWI804439B TWI804439B TW111137123A TW111137123A TWI804439B TW I804439 B TWI804439 B TW I804439B TW 111137123 A TW111137123 A TW 111137123A TW 111137123 A TW111137123 A TW 111137123A TW I804439 B TWI804439 B TW I804439B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- parity
- circuit
- bit
- small
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000001514 detection method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 63
- 230000008569 process Effects 0.000 claims description 24
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 23
- 238000006467 substitution reaction Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000002156 mixing Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- 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
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
本發明涉及資料加密,尤指一種資料加密的錯誤偵測裝置及方法。 The present invention relates to data encryption, in particular to an error detection device and method for data encryption.
由於現在的儲存裝置(例如,NAND閃存)常用來儲存系統程式碼、應用程式碼、驅動程式和使用者的隱私資料等,因此資料安全性是重要議題。高級加密標準(Advanced Encryption Standard,AES)是目前由美國聯邦政府採用的一種區塊加密標準,並且已經被多方驗證且廣為採用。然而,AES運作的過程中可能遭到惡意的攻擊,而讓AES編碼器錯誤的產生運算結果。或者是,晶片製作過程中有些暇疵,使得AES編碼器在運行一段時間後會產生不預期的運算結果。或者是,儲存裝置處在惡劣的環境下,讓AES編碼器中的部分元件失能而產生不預期的運算結果。錯誤的加密過程將使原始的使用者資料無法回復,造成巨大的損失。因此,本發明提出一種資料加密的錯誤偵測裝置及方法,避免寫入錯誤的加密後資料到儲存裝置。 Since current storage devices (eg, NAND flash memory) are commonly used to store system codes, application codes, drivers, and user privacy data, etc., data security is an important issue. Advanced Encryption Standard (AES) is a block encryption standard currently adopted by the US federal government, and has been verified by multiple parties and widely adopted. However, malicious attacks may occur during the operation of AES, and the AES encoder may generate incorrect calculation results. Or, there are some defects in the chip manufacturing process, so that the AES encoder will produce unexpected calculation results after running for a period of time. Or, the storage device is in a harsh environment, which causes some components in the AES encoder to fail and produce unexpected calculation results. Wrong encryption process will make the original user data irrecoverable, resulting in huge losses. Therefore, the present invention proposes a data encryption error detection device and method to avoid writing wrong encrypted data to the storage device.
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem to be solved.
本說明書涉及一種資料加密的錯誤偵測裝置,包含:密鑰產生電路;和密鑰錯誤檢查電路。密鑰產生電路,設置以實現加密演算法中的擴展密鑰操作,用於使用基礎密鑰產生多個回合密鑰,其中,所述加密演算法使用一個所述回合密鑰在相應回合中對明文或者中間加密結果進行編碼。密鑰錯誤檢查電路設置以預測出相應於每個回合 密鑰的冗餘資料;並且在擴展密鑰過程中的指定中間點發現任何回合密鑰和相應冗餘資料不匹配時,發出錯誤訊號給處理單元。 This specification relates to an error detection device for data encryption, including: a key generating circuit; and a key error checking circuit. a key generation circuit configured to implement extended key operations in an encryption algorithm for generating a plurality of round keys using a base key, wherein the encryption algorithm uses one of the round keys in a corresponding round to Encode plaintext or intermediate encrypted results. The key error checking circuit is set to predict the corresponding Redundant data of the key; and sending an error signal to the processing unit when any round key and corresponding redundant data are found not to match at a specified intermediate point in the process of expanding the key.
本說明書另涉及一種資料加密的錯誤偵測裝置,包含:搜索電路;和替代校驗電路。搜索電路設置以依據查找表將輸入的相應於回合密鑰的1個位元組的第一值轉換為第二值。替代校驗電路設置以使用相應於查找表的公式判斷第一值轉換為第二值的過程中是否發生錯誤,以及當發現錯誤時,發出錯誤訊號。 This specification also relates to an error detection device for data encryption, which includes: a search circuit; and a replacement verification circuit. The search circuit is configured to convert the input first value corresponding to 1 byte of the round key into a second value according to the look-up table. The replacement verification circuit is configured to use a formula corresponding to the look-up table to determine whether an error occurs during the process of converting the first value into the second value, and when an error is found, an error signal is sent.
上述實施例的優點之一,通過以上所述密鑰錯誤檢查電路的設置,可利用比密鑰產生電路較少面積的電路來完成錯誤偵測。 One of the advantages of the above-mentioned embodiment is that by setting the above-mentioned key error checking circuit, the error detection can be completed with a circuit with a smaller area than the key generation circuit.
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail with the following description and drawings.
10:電子裝置 10: Electronic device
110:主機端 110: Host side
130:閃存控制器 130: Flash memory controller
131:主機介面 131: host interface
132:匯流排 132: busbar
134:處理單元 134: processing unit
136:隨機存取記憶體 136: random access memory
137:高級加密標準編碼器 137: Advanced Encryption Standard Encoder
138:直接記憶體存取控制器 138: Direct memory access controller
139:閃存介面 139: Flash interface
150:閃存模組 150: Flash memory module
151:介面 151: interface
153#0~153#15:NAND閃存單元 153#0~153#15: NAND flash memory unit
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
R#0:初始回合 R#0: Initial round
R#1~R#9:中間回合
R#10:最終回合 R#10: Final Round
S310#1~S310#10:替代位元組步驟
S320#1~S320#10:位移列步驟
S330#1~S330#9:混合行步驟
S340#1~S340#10:加上回合密鑰步驟
S350:擴展密鑰步驟 S350: Extended key steps
w[0,3]:基礎密鑰 w[0,3]: basic key
w[4,7],w[36,39],w[40,43]:擴展後的密鑰 w[4,7],w[36,39],w[40,43]: the expanded key
400:AES編碼器 400:AES Encoder
410,430:AES編碼電路 410,430: AES encoding circuit
450:比較器 450: Comparator
500:AES編碼器 500: AES encoder
510:AES編碼電路 510: AES encoding circuit
530:錯誤偵測電路 530: Error detection circuit
550:冗餘資料產生電路 550: redundant data generation circuit
570:冗餘密鑰產生電路 570: redundant key generation circuit
S0~S15:體 S 0 ~S 15 : Body
P0~P15:體內奇偶校驗位元 P 0 ~P 15 : Internal parity bits
Q0~Q3:跨體奇偶校驗9位元 Q 0 ~Q 3 : 9 bits of cross-body parity check
k0~k31:小鑰 k 0 ~k 31 : small key
R0~R31:小鑰內奇偶校驗位元 R 0 ~R 31 : parity bits in the small key
V0~V7:跨小鑰奇偶校驗9位元 V 0 ~V 7 : 9-bit cross-key parity check
810:AES資料處理電路 810: AES data processing circuit
813:編碼電路 813: encoding circuit
815:編碼錯誤檢查電路 815: Coding error checking circuit
830:AES密鑰排程電路 830: AES key scheduling circuit
833:密鑰產生電路 833: key generation circuit
835:密鑰錯誤檢查電路 835: key error check circuit
850:或閘 850: OR gate
870:控制器 870:Controller
912:資料寄存器 912: data register
914:奇偶校驗碼寄存器 914: parity check code register
920:增強型替代位元組電路 920: Enhanced Alternative Byte Circuits
930:位移列電路 930: shift column circuit
940:混合行電路 940: mixed row circuit
950:加上回合密鑰電路 950: add round key circuit
960:奇偶校驗檢查電路 960: parity check circuit
970:奇偶校驗預測電路 970: Parity prediction circuit
980:多工器 980: multiplexer
1010:體內奇偶校驗位元預測電路 1010: Internal parity bit prediction circuit
1030:跨體奇偶校驗9位元預測電路 1030: Cross-body parity 9-bit prediction circuit
1110:體內奇偶校驗位元產生電路 1110: Internal parity bit generating circuit
1120:位移列預測電路 1120: displacement column prediction circuit
1130:混合行預測電路 1130: Hybrid row prediction circuit
1140:多工器 1140: multiplexer
1150:加上回合密鑰預測電路 1150: Add round key prediction circuit
1160:位移列電路 1160: shift column circuit
1210:多工器 1210: multiplexer
1230:體內互斥或閘 1230: internal mutex or gate
1310:跨體奇偶校驗位元組產生電路 1310: cross-body parity byte generation circuit
1330:跨小鑰奇偶校驗位元組分割電路 1330: Inter-small key parity byte segmentation circuit
1350:跨體奇偶校驗位元組預測電路 1350: Span parity byte prediction circuit
1370:跨體奇偶校驗1位元預測電路 1370: Cross-body parity 1-bit prediction circuit
1390:跨體奇偶校驗9位元合併電路 1390: 9-bit merging circuit for cross-body parity
1410:跨體奇偶校驗位元組分割電路 1410: Cross-body parity byte segmentation circuit
1430#0~1430#15:增強型查表電路 1430#0~1430#15: enhanced look-up table circuit
1450:跨體奇偶校驗位元組合併電路 1450: Cross-body parity bit combination combination circuit
1510:搜索電路 1510: search circuit
1530:替代校驗電路 1530: Alternative calibration circuit
1610:計算電路 1610: Calculation Circuit
1630:乘法器 1630: multiplier
1650:比較器 1650: Comparator
1710,1750:密鑰分割電路 1710,1750: key splitting circuit
1712,1714:寄存器 1712, 1714: Register
1720,1730:鑰字處理電路 1720,1730: key word processing circuit
1725,1727,1729:互斥或閘 1725, 1727, 1729: mutex or gate
1742,1744:密鑰奇偶校驗碼產生電路 1742, 1744: key parity code generation circuit
1752,1754,1782,1784:寄存器 1752, 1754, 1782, 1784: registers
1762,1764:密鑰奇偶校驗檢查電路 1762, 1764: Key parity check circuit
1772,1774:密鑰奇偶校驗預測電路 1772, 1774: key parity prediction circuit
1810:鑰字分割電路 1810: key word segmentation circuit
1820:旋轉鑰字電路 1820: Rotary key word circuit
1830:替代鑰字電路 1830: Alternative key circuit
1840:捨去常數電路 1840: Rounding off the constant circuit
1850:鑰字合併電路 1850: key word combination circuit
1860:鑰字奇偶校驗產生電路 1860: Key word parity check generation circuit
1870:鑰字奇偶校驗預測電路 1870: Key Word Parity Prediction Circuit
1880:鑰字跨奇偶校驗預測電路 1880: Key word cross parity prediction circuit
1890:鑰字奇偶校驗9位元合併電路 1890: Key word parity check 9-bit merge circuit
1930#0~1930#3:增強型查表電路 1930#0~1930#3: enhanced look-up table circuit
2010:互斥或閘 2010: Mutual exclusion or gate
2110:鑰字分割電路 2110: key word segmentation circuit
2130:替代鑰字電路 2130: Alternative key word circuit
2150:鑰字合併電路 2150: key combination circuit
2160:鑰字奇偶校驗產生電路 2160: key word parity check generation circuit
2180:鑰字跨奇偶校驗預測電路 2180: key word cross parity prediction circuit
2190:鑰字奇偶校驗9位元合併電路 2190: keyword parity check 9-bit merge circuit
圖1為依據本發明實施例的電子裝置的系統架構圖。 FIG. 1 is a system architecture diagram of an electronic device according to an embodiment of the invention.
圖2為依據本發明實施例的閃存模組的示意圖。 FIG. 2 is a schematic diagram of a flash memory module according to an embodiment of the invention.
圖3為以128位元密鑰使用10個回合的演算法的高階示意圖。 FIG. 3 is a high-level schematic diagram of an algorithm using 10 rounds with a 128-bit key.
圖4為依據一些實施方式的高級加密標準(Advanced EncryptionStandard,AES)編碼器的方塊圖。 FIG. 4 is a block diagram of an Advanced Encryption Standard (AES) encoder in accordance with some implementations.
圖5為依據本發明實施例的AES編碼器的方塊圖。 FIG. 5 is a block diagram of an AES encoder according to an embodiment of the present invention.
圖6為依據本發明實施例的體、體內奇偶校驗位元和跨體奇偶校驗9位元的示意圖。
FIG. 6 is a schematic diagram of a body, body parity bits, and
圖7為依據本發明實施例的小鑰、小鑰內奇偶校驗位元和跨小鑰奇偶校驗9位元的示意圖。 Fig. 7 is a schematic diagram of a small key, parity bits within a small key, and 9 bits of parity across small keys according to an embodiment of the present invention.
圖8為依據本發明實施例的AES編碼器的方塊圖。 FIG. 8 is a block diagram of an AES encoder according to an embodiment of the present invention.
圖9為依據本發明實施例的AES資料處理電路的方塊圖。 FIG. 9 is a block diagram of an AES data processing circuit according to an embodiment of the present invention.
圖10為依據本發明實施例的奇偶校驗預測電路的方塊圖。 FIG. 10 is a block diagram of a parity prediction circuit according to an embodiment of the present invention.
圖11為依據本發明實施例的體內奇偶校驗位元預測電路的方塊圖。 FIG. 11 is a block diagram of an in-body parity bit prediction circuit according to an embodiment of the present invention.
圖12為依據本發明實施例的體內奇偶校驗位元產生電路的方塊圖。 FIG. 12 is a block diagram of an internal parity bit generating circuit according to an embodiment of the present invention.
圖13為依據本發明實施例的跨體奇偶校驗9位元預測電路的方塊圖。 FIG. 13 is a block diagram of a 9-bit prediction circuit for cross-body parity according to an embodiment of the present invention.
圖14為依據本發明實施例的增強型替代位元組電路的方塊圖。 FIG. 14 is a block diagram of an enhanced replacement byte circuit according to an embodiment of the present invention.
圖15為依據本發明實施例的增強型查表電路的方塊圖。 FIG. 15 is a block diagram of an enhanced look-up table circuit according to an embodiment of the present invention.
圖16為依據本發明實施例的替代校驗電路的方塊圖。 FIG. 16 is a block diagram of an alternative verification circuit according to an embodiment of the present invention.
圖17為依據本發明實施例的AES密鑰排程電路的方塊圖。 FIG. 17 is a block diagram of an AES key scheduling circuit according to an embodiment of the present invention.
圖18為依據本發明實施例的鑰字處理電路的方塊圖。 FIG. 18 is a block diagram of a key word processing circuit according to an embodiment of the present invention.
圖19為依據本發明實施例的替代鑰字電路的方塊圖。 FIG. 19 is a block diagram of an alternative key circuit according to an embodiment of the present invention.
圖20為依據本發明實施例的捨去常數電路的示意圖。 FIG. 20 is a schematic diagram of a rounding constant circuit according to an embodiment of the present invention.
圖21為依據本發明實施例的鑰字處理電路的方塊圖。 FIG. 21 is a block diagram of a key word processing circuit according to an embodiment of the present invention.
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following description is a preferred implementation mode of the invention, and its purpose is to describe the basic spirit of the invention, but not to limit the invention. For the actual content of the invention, reference must be made to the scope of the claims that follow.
必須了解的是,使用於本說明書中的「包含」、「包括」等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that words such as "comprising" and "including" used in this specification are used to indicate the existence of specific technical features, values, method steps, operations, components and/or components, but do not exclude the possibility of adding More technical characteristics, numerical values, method steps, operation processes, components, components, or any combination of the above.
於權利要求中使用如「第一」、「第二」、「第三」等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 Words such as "first", "second", and "third" used in the claims are used to modify the elements in the claims, and are not used to indicate that there is a priority order, a pre-relationship, or an element An element preceding another element, or a chronological order in performing method steps, is only used to distinguish elements with the same name.
必須了解的是,當元件描述為「連接」或「耦接」至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為「直接連接」或「直接耦接」至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如「介於」相對於「直接介於」,或者是「鄰接」相對於「直接鄰接」等等。 It should be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe the relationship between elements may be interpreted in a similar manner, such as "between" versus "directly between," or "adjacent" versus "directly adjacent," and so on.
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130
及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機、智慧型電視、智慧型電冰箱、車用電子系統(Automotive Electronics System)等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)137可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage UFS)、嵌入式多媒體卡(Embedded Multi-Media Card eMMC)等通訊協定彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150可以雙倍資料率(Double Data Rate DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory,RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的主機資料,以及從閃存模組150讀取並即將輸出給主機端110的主機資料。隨機存取記憶體
136另可儲存執行過程中需要的資料,例如,變數、資料表、主機-閃存對照表(Host-to-Flash H2F Table)、閃存-主機對照表(Flash-to-Host F2H Table)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check LDPC)等。
Refer to Figure 1. The
閃存控制器130中可配置匯流排架構(Bus Architecture)132,用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、高級加密標準(Advanced Encryption Standard,AES)編碼器137、直接記憶體存取(Direct Memory Access,DMA)控制器138、閃存介面139等。DMA控制器138可依據處理單元134的指令,通過匯流排架構132在元件間遷移資料,例如,將RAM 136的特定資料緩存器中的資料搬到AES編碼器137的特定寄存器(Register),將AES編碼器137的特定寄存器中的資料搬到RAM 136的特定資料緩存器等。
A bus architecture (Bus Architecture) 132 can be configured in the
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個萬億位元組(Terabytes,TB),用於儲存大量的主機資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可在抹除後組態為單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134通過閃存介面139寫入主機資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取主機資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control
Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
The
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的芯片(Die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取主機資料,或者寫入主機資料至致能的NAND閃存單元。
Referring to FIG. 2, the
AES編碼器137實施一種Rijndael的變形演算法,其中使用固定的128位元大小的塊和128、192或256位元大小的基礎密鑰。AES編碼器137針對4x4以行為主的有序陣列(4x4 Column-major Order Array)的位元組進行操作,每個位元組稱為體(State)。大部分的AES計算都是在特定有限域(Finite Field)中完成的。例如,16個體S0、S1到S15可用以下二維陣列(Two-dimensional Array)表示:
由於在遭遇惡意攻擊、晶片瑕疵、惡劣環境等情況時,AES加密的過程中會發生錯誤而造成使用者資料無法回復的重大傷害。參考圖
4,在一些實施方式的AES編碼器400中,包含兩套相同的用於實現如上所示演算法的AES編碼電路410和430。AES編碼器400另設置比較器450,用於從AES編碼電路410接收每個體的密文C#1,從AES編碼電路430接收每個體的密文C#2,並且比較兩者是否相同。如果相同,則比較器450輸出密文C#1和加密成功的訊息。如果不同,則比較器450輸出加密失敗的訊息,用於通知處理單元中運行的韌體,需要執行錯誤管理程序。然而,以上實施方式的AES編碼器400的面積大於兩套AES編碼電路的面積,造成製造成本上升。
Due to malicious attacks, chip defects, harsh environments, etc., errors will occur during the AES encryption process, which will cause major damage to user data that cannot be recovered.
為了讓AES編碼器的面積小於兩套AES編碼電路的面積,從一個方面來說,參考圖5,本發明實施例提出在AES編碼器500中除了設置用於實現如上所示演算法的AES編碼電路510之外,還設置面積較一套完整的AES編碼電路510更小的錯誤偵測電路530來完成加密過程是否發生錯誤的偵測。在每個體的加密過程中,錯誤偵測電路530使用比16個體及其所屬的回合密鑰更少的資訊來判斷整個加密過程中是否發生錯誤。如果判定沒有任何錯誤,則錯誤偵測電路530可輸出加密成功訊息。如果判定發生錯誤,則錯誤偵測電路530輸出加密失敗的訊息,用於通知處理單元中運行的韌體,需要執行錯誤管理程序。
In order to make the area of the AES encoder smaller than the area of the two sets of AES encoding circuits, from one aspect, referring to FIG. In addition to the
冗餘資料產生電路550可在16個體附加上用於讓錯誤偵測電路530判斷加密過程中是否發生錯誤的冗餘資料,而冗餘資料是一種根據16個體中的值或者中間加密結果和AES加密演算法的預測結果。參考圖6,在一些實施例中,冗餘資料產生電路(Redundant-data Generation Circuitry)550可預測一個體內奇偶校驗位元(In-state Parity Bit),並且將體內奇偶校驗位元(當作第8個位元)附加在體(第0~7個位元)之後。需要注意的是,所屬技術領域人員不應依據上述的附加操作解讀為8位元的體和1位元的體內奇偶校驗位元實際儲存於9位元的連續空間,不同但等同的資料結構都是允許的。
例如,冗餘資料產生電路550可預測體S0的體內奇偶校驗位元P0,預測體S1的體內奇偶校驗位元P1,依此類推。體和相應體內奇偶校驗位元之間的匹配可使用以下範例公式表示:
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 Q0,j代表第0個跨體奇偶校驗9位元的第j個位元的值,Q1,j代表第1個跨體奇偶校驗9位元的第j個位元的值,Q2,j代表第2個跨體奇偶校驗9位元的第j個位元的值,Q3,j代表第3個跨體奇偶校驗9位元的第j個位元的值,Si,j代表第i個體中的第j個位元的值,j為從0至8的任意整數。當第i個跨體奇偶校驗9位元中的每個位元等於第i行中的相應位元的加總(或者互斥或運算的結果)時,代表第i行的體及體內奇偶校驗位元和第i個跨體奇偶校驗9位元之間是匹配的。否則,代表兩者間不匹配。
,for j =0~8 Q 0,j represents the value of the jth bit of the 0th straddle parity 9-bit, Q 1,j represents the value of the 1st straddle parity 9-bit The value of j bits, Q 2,j represents the value of the jth bit of the second spanning parity 9-bit, Q 3,j represents the value of the third spanning parity 9-bit The value of j bits, S i, j represents the value of the jth bit in the i-th individual, and j is any integer from 0 to 8. When each of the 9 bits of the i-th cross-body parity check is equal to the sum of the corresponding bits in the i-th row (or the result of a mutually exclusive OR operation), it represents the body and body parity of the i-th row There is a match between the parity bit and the i-
從一個方面來說,AES編碼電路510和冗餘資料產生電路550是獨立
且並行運行的,兩者之間不會進行資料和訊息交換。冗餘資料產生電路550使用冗餘資料更新演算法來產生預測冗餘資料,而冗餘資料更新演算法是從AES加密演算法推導出來的,使得AES編碼電路510產生的中間加密結果和冗餘資料產生電路550預測的冗餘資料能夠在加密明文過程中的每個特定中間點,在沒有發生錯誤的情況下,都能維持指定的數學關係。
From one aspect, the
冗餘密鑰產生電路(Redundant-key Generation Circuitry)570在每個基礎密鑰或者回合密鑰附加上用於讓錯誤偵測電路530判斷密鑰產生過程中是否發生錯誤的冗餘資料,而冗餘資料是一種根據基礎密鑰或者回合密鑰中的值和AES密鑰排程演算法的預測結果。參考圖7,以256位元基礎密鑰為例,冗餘密鑰產生電路570可先將基礎密鑰依序切分為32個位元組(每個位元組可稱為小鑰,Subkey),並組織為8行4列的矩陣。冗餘密鑰產生電路570可預測一個小鑰內奇偶校驗位元(In-subkey Parity Bit),並且將小鑰內奇偶校驗位元(當作第8個位元)附加在小鑰(第0~7個位元)之後。需要注意的是,所屬技術領域人員不能夠依據上述的附加操作解讀為8位元的小鑰和1位元的小鑰內奇偶校驗位元實際儲存於9位元的連續空間,不同但等同的資料結構都是允許的。例如,冗餘密鑰產生電路570可預測小鑰k0的小鑰內奇偶校驗位元R0,預測小鑰k1的小鑰內奇偶校驗位元R1,依此類推。小鑰和小鑰內奇偶校驗位元之間的匹配可使用以下範例公式表示:
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 , for j =0~8
,for j=0~8 V0,j代表第0個跨小鑰奇偶校驗9位元的第j個位元的值,V1,j代表第1個跨小鑰奇偶校驗9位元的第j個位元的值,V2,j代表第2個跨小鑰奇偶校驗9位元的第j個位元的值,V3,j代表第3個跨小鑰奇偶校驗9位元的第j個位元的值,V4,j代表第4個跨小鑰奇偶校驗9位元的第j個位元的值,V5,j代表第5個跨小鑰奇偶校驗9位元的第j個位元的值,V6,j代表第6個跨小鑰奇偶校驗9位元的第j個位元的值,V7,j代表第7個跨小鑰奇偶校驗9位元的第j個位元的值,ki,j代表第i個小鑰中的第j個位元的值,j為從0至8的任意整數。當第i個跨小鑰奇偶校驗9位元中的每個位元等於第i行中的相應位元的加總(或者互斥或運算的結果)時,代表第i行的小鑰及小鑰內奇偶校驗位元和第i個跨小鑰奇偶校驗9位元之間是匹配的。否則,代表兩者間不匹配。
,for j =0~8 V 0,j represents the value of the jth bit of the 0th 9-bit cross-key parity check, V 1,j represents the first 9-bit cross-key parity check V 2,j represents the value of the jth bit of the second cross-key parity 9-bit, V 3,j represents the third
從一個方面來說,AES編碼電路510和冗餘密鑰產生電路570是獨立
且並行運行的,兩者之間不會進行資料和訊息交換。冗餘密鑰產生電路570使用冗餘密鑰更新演算法來產生預測冗餘資料,而冗餘密鑰更新演算法是從AES加密演算法中的AES密鑰排程推導出來的,使得AES編碼電路510產生的回合密鑰和冗餘密鑰產生電路570預測的冗餘資料能夠在產生回合密鑰過程中的每個特定中間點,在沒有發生錯誤的情況下,都能維持指定的數學關係。
From one aspect, the
雖然圖5將AES編碼電路510、錯誤偵測電路530、冗餘資料產生電路550和冗餘密鑰產生電路570以不同方塊表示,但這只是為了讓讀者容易理解,所屬技術領域人員可在實際實現時,將AES編碼電路510、錯誤偵測電路530、冗餘資料產生電路550和冗餘密鑰產生電路570以適當的方式整合在一起,本發明並不因此局限。
Although FIG. 5 shows the
從另一個方面來說,參考圖8,本發明實施例提出在AES編碼器137中設置AES資料處理電路(AES Data Processing Circuitry)810和AES密鑰排程電路(AES Key Schedule Circuitry)830。AES密鑰排程電路830包含密鑰產生電路833,用於完成如圖3所示的擴展密鑰步驟S350。控制器870發出控制訊號給AES密鑰排程電路830,用於驅動AES密鑰排程電路830根據基礎密鑰K0或者之前的回合密鑰Ki-2產生新的回合密鑰,並且輸出指定回合的回合密鑰Ki及其相應的冗餘資料(例如,小鑰內奇偶校驗位元R和跨小鑰奇偶校驗9位元V)給AES資料處理電路810。AES密鑰排程電路830包含密鑰錯誤檢查電路835,設置以計算出相應於每個回合密鑰的冗餘資料;並且在擴展密鑰過程中的指定中間點發現任何回合密鑰和相應冗餘資料不匹配時,發出錯誤訊號ERR_KEY=1。回合密鑰可切分為16個小鑰且組織為4x4位元組陣列,每個小鑰為1位元組;冗餘資料包含相應於每個小鑰的小鑰內奇偶校驗位元,和相應於每個行的跨小鑰奇偶校驗9位元。密鑰錯誤檢查電路835在擴展密鑰過程中的指定中間點發現任何小鑰不匹配於相應小鑰內奇偶校驗位元時,或者發現相應
於任何行的小鑰加上4個相應小鑰內奇偶校驗位元,不匹配於相應跨小鑰奇偶校驗9位元時,發出錯誤訊號ERR_KEY=1。
From another aspect, referring to FIG. 8 , the embodiment of the present invention proposes setting an AES Data Processing Circuit (AES Data Processing Circuit) 810 and an AES Key Schedule Circuit (AES Key Schedule Circuit) 830 in the
AES資料處理電路810包含編碼電路813,設置以實現如圖3所示的AES演算法中的替代位元組步驟S310、位移列步驟S320、混合行步驟S330和加上回合密鑰步驟S340。AES演算法包含多個回合,並且在每個回合中用於使用回合密鑰對明文或者中間加密結果進行編碼。控制器870發出控制訊號給AES資料處理電路810,用於驅動AES資料處理電路810來安排上述步驟的執行順序,以符合AES演算法的回合設置。AES資料處理電路810包含編碼錯誤檢查電路815,設置以計算出相應於明文或者中間加密結果的冗餘資料;在加密過程中的指定中間點發現中間加密結果和冗餘資料之間不匹配時,發出編碼錯誤訊號ERR_ENC=1。明文可切分為16個體且組織為4x4陣列,每個體為1位元組,冗餘資料包含相應於每個體的體內奇偶校驗位元,和相應於明文中的每個行的跨體奇偶校驗9位元。編碼錯誤檢查電路815在加密過程中的指定時間點發現任何所述體的中間加密結果不匹配於相應體內奇偶校驗位元時,或者發現相應於明文中的任何行的中間加密結果加上4個相應體內奇偶校驗位元,不匹配於相應跨體奇偶校驗9位元時,發出編碼錯誤訊號ERR_ENC=1。
The AES
或閘850耦接編碼錯誤檢查電路815和密鑰錯誤檢查電路835的輸出端。當編碼錯誤檢查電路815輸出編碼錯誤訊號ERR_ENC=1和/或密鑰錯誤檢查電路835輸出密鑰錯誤訊號ERR_KEY=1時,或閘850輸出AES錯誤訊號ERR_AES=1給處理單元134。
The OR
參考圖9所示的AES資料處理電路810的方塊圖。資料寄存器912用於儲存在AES加密過程中產生的16位元組(也就是128比特)的中間或者最終結果,而奇偶校驗碼寄存器(Parity Registers)914用於儲存在AES加密過程中產生的相應於16位元組的中間或者最終結果的體內奇偶校驗位元和跨體奇偶校驗9位元。位移列電路(Shift-row
Circuitry)930用於執行如如圖3所示的位移列的步驟S320,並且其結構為所屬技術領域人員所公知,為求簡明不再贅述。混合行電路(Mix-column Circuitry)940用於執行如如圖3所示的混合行的步驟S330,並且其結構為所屬技術領域人員所公知,為求簡明不再贅述。加上回合密鑰電路(Add-round-key Circuitry)950用於執行如如圖3所示的加上回合密鑰的步驟S340,並且其結構為所屬技術領域人員所公知,為求簡明不再贅述。
Refer to the block diagram of the AES
控制器870可在每個回合發出選擇訊號R_sel給多工器980和奇偶校驗預測電路(Parity Prediction Circuitry)970,用於控制流經指定電路的資料流。多工器980包含三個輸入端I0、I1及I2和一個輸出端O。輸入端I0耦接AES編碼器137的輸入腳位以接收16位元組的明文,輸入端I1耦接混合行電路940的輸出以接收16位元組的運算結果,輸入端I2耦接位移列電路930的輸出以接收16位元組的運算結果,輸出端O耦接加上回合密鑰電路950的輸入。詳細來說,在初始回合,控制器870可使用控制訊號R_sel控制多工器980將輸入端I0連接上輸出端O,使得從AES編碼器137的輸入腳位接收到的16位元組的明文S能夠饋入加上回合密鑰電路950。在中間回合(例如使用256位元密鑰的第1至第13回合),控制器870可使用控制訊號R_sel控制多工器980將輸入端I1連接上輸出端O,使得混合行電路940的輸出能夠饋入加上回合密鑰電路950。在最終回合(例如使用256位元密鑰的第14回合),控制器870可使用控制訊號R_sel控制多工器980將輸入端I2連接上輸出端O,使得位移列電路930的輸出能夠饋入加上回合密鑰電路950。此外,在初始回合,控制器870可使用控制訊號R_sel控制奇偶校驗預測電路970,讓從AES編碼器137的輸入腳位接收到的16位元組的明文S能夠饋入奇偶校驗預測電路970,用於產生相應於明文的體內奇偶校驗位元P和跨體奇偶校驗9位元Q。在中間和最終回合,控制器870可使用控制訊號R_sel控制奇偶校驗預測電路970,
讓增強型替代位元組電路920的輸出能夠饋入奇偶校驗預測電路970,用於產生相應於中間加密結果的體內奇偶校驗位元P和跨體奇偶校驗9位元Q。
The
參考圖10所示的奇偶校驗預測電路970的方塊圖。奇偶校驗預測電路970包含體內奇偶校驗位元預測電路(In-state Parity-bit Prediction Circuitry)1010和跨體奇偶校驗9位元預測電路(Across-state Parity-9-bit Prediction Circuitry)1030。體內奇偶校驗位元預測電路1010依據控制訊號R_sel選擇輸入明文S(相應於初始回合)或者中間加密結果S’(相應於中間或者最終回合),並且根據明文S/中間加密結果S’和小鑰內奇偶校驗位元R產生體內奇偶校驗位元P。跨體奇偶校驗9位元預測電路1030依據控制訊號R_sel選擇輸入明文S(相應於初始回合)或者中間加密結果S’(相應於中間或者最終回合),並且根據明文S/中間加密結果S’和跨小鑰奇偶校驗9位元V產生跨體奇偶校驗9位元Q。
Refer to the block diagram of the
參考圖11所示的體內奇偶校驗位元預測電路1010的方塊圖。控制器870可在每個回合發出選擇訊號R_sel給多工器1140和體內奇偶校驗位元產生電路1110,用於控制流經指定電路的資料流。多工器1140包含三個輸入端I0、I1及I2和一個輸出端O。輸入端I0耦接體內奇偶校驗位元產生電路1110的輸出以接收相應於明文的16位元的體內奇偶校驗碼,輸入端I1耦接混合行預測電路1130的輸出以接收16位元的運算結果,輸入端I2耦接位移列預測電路1120的輸出以接收16位元的運算結果,輸出端O耦接加上回合密鑰預測電路1150的輸入。詳細來說,在初始回合,控制器870可使用控制訊號R_sel驅動體內奇偶校驗位元產生電路1110從AES編碼器137的輸入腳位接收16位元組的明文,並且控制多工器1140將輸入端I0連接上輸出端O,使得從體內奇偶校驗位元產生電路1110的輸出所接收到的相應於明文S的16位元的體內奇偶校驗碼能夠饋入加上回合密鑰預測電路1150。
在中間回合(例如使用256位元密鑰的第1至第13回合),控制器870可使用控制訊號R_sel驅動體內奇偶校驗位元產生電路1110從資料寄存器912獲取16位元組的中間加密結果S’,並且控制多工器1140將輸入端I1連接上輸出端O,使得從混合行預測電路1130的輸出所接收到的相應於中間加密結果S’的16位元的體內奇偶校驗碼能夠饋入加上回合密鑰預測電路1150。在最終回合(例如使用256位元密鑰的第14回合),控制器870可使用控制訊號R_sel驅動體內奇偶校驗位元產生電路1110從資料寄存器912獲取16位元組的中間加密結果S’,並且控制多工器1140將輸入端I2連接上輸出端O,使得從位移列預測電路1120的輸出所接收到的相應於中間加密結果S’的16位元的體內奇偶校驗碼能夠饋入加上回合密鑰預測電路1150。
Refer to the block diagram of the internal parity
參考圖12所示的體內奇偶校驗位元產生電路1110的方塊圖。控制器870可在每個回合發出選擇訊號R_sel給多工器1210,用於控制流經指定電路的資料流。多工器1210包含兩個輸入端I0及I1和一個輸出端O。詳細來說,在初始回合,控制器870可使用控制訊號R_sel控制多工器1210將輸入端I0連接上輸出端O,使得從AES編碼器137的輸入腳位所接收到的16位元組的明文S能夠饋入體內互斥或閘1230。在中間和最終回合(例如使用256位元密鑰的第1至第14回合),控制器870可使用控制訊號R_sel控制多工器1210將輸入端I1連接上輸出端O,使得從資料寄存器912獲取16位元組的中間加密結果S’能夠饋入體內互斥或閘1230。體內互斥或閘1230包含多個互斥或閘,安排以依據接收到的16位元組的明文S或者中間加密結果S’,產生如圖6所示的體內奇偶校驗位元P0至P15。
Refer to the block diagram of the internal parity
參考回圖11,明文S或中間加密結果S’組織為4x4個體的陣列。位移列電路1160用於將下面三列的每一者向左循環位移指定步數。舉例來說,明文S表示如下:
相應於明文S或中間加密結果S’的體內奇偶校驗位元組織為4x4個位元的陣列。位移列預測電路1120用於將下面三列的每一者向左循環位移指定步數。舉例來說,相應於明文S的體內奇偶校驗位元表示如下:
混合行預測電路1130耦接位移列預測電路1120和位移列電路1160的輸出,使用所屬技術領域人員所習知的16個公式,每個公式加總位移後的明文S或中間加密結果S’的4x4位元組陣列以及位移後的體內奇偶校驗位元的4x4位元陣列中指定部分的值,產生混合後的體內奇偶校驗位元的矩陣中的指定的值。
The hybrid
加上回合密鑰預測電路1150使用以下公式計算體內奇偶校驗位元的加密後結果:P(out) i=P(in) i+Ri P(out) i代表輸出的第i個體的體內奇偶校驗位元,P(in) i代表輸入的第i個體的體內奇偶校驗位元,Ri代表第i個小鑰內奇偶校驗位元,i為從0至15的任意整數。需要注意的是,此時P(in) i和P(out) i所對應到的矩陣中的位置指的是混合行預測電路1130所輸出矩陣中的位置,不是對應到體內奇偶校驗位元產生電路1110所輸出矩陣中的位置。
In addition, the round
參考圖13所示的跨體奇偶校驗9位元預測電路1030的方塊圖。控制器870可在每個回合發出選擇訊號R_sel給跨體奇偶校驗位元組產生電路1310,用於控制跨體奇偶校驗位元組產生電路1310輸入的資料流。詳細來說,在初始回合,控制器870可使用控制訊號R_sel驅動跨體奇偶校驗位元組產生電路1310從AES編碼器137的輸入腳位接收16位元組的明文,使得跨體奇偶校驗位元組產生電路1310依據明文S的16位元組產生跨體奇偶校驗位元組。在中間回合(例如使用256位元密鑰的第1至第13回合)或者最終回合(例如使用256位元密鑰的第14回合),控制器870可使用控制訊號R_sel驅動跨體奇偶校驗位元組產生電路1310從資料寄存器912獲取16位元組的中間加密結果S’,使得跨體奇偶校驗位元組產生電路1310依據中間加密結果S’的16位元組產生跨體奇偶校驗位元組。
Refer to the block diagram of the 9-
跨體奇偶校驗位元組產生電路1310包含多個互斥或閘,在初始回合安排以依據接收到的16位元組的明文S,完成如圖6所示的跨體奇偶校驗位元組(不包含相應於體內奇偶校驗位元的第8位元)Q0,0..7至Q3,0..7。在中間回合或者最終回合安排以依據接收到的16位元組的中間加密結果S’,並且使用以下公式計算跨體奇偶校驗位元組(不包含相應於體內奇偶校驗位元的第8位元)Q0,0..7至Q3,0..7:Q 0,j =S' 0,j +S' 5,j +S' 10,j +S' 15,j ,for j=0~7
The straddle parity check
Q 1,j =S' 4,j +S' 9,j +S' 14,j +S' 3,j ,for j=0~7 Q 1 ,j = S' 4 ,j + S' 9 ,j + S' 14 ,j + S' 3 ,j ,for j =0~7
Q 2,j =S' 8,j +S' 13,j +S' 2,j +S' 7,j ,for j=0~7 Q 2 ,j = S' 8 ,j + S' 13 ,j + S' 2 ,j + S' 7 ,j ,for j =0~7
Q 3,j =S' 12,j +S' 1,j +S' 6,j +S' 11,j ,for j=0~7 Q0,j到Q3,j分別代表第0個到第3個跨體奇偶校驗位元組的第j個位元的值,S’0,j到S’15,j分別代表相應於第0個到第15個中間加密結果中的第j個位元的值。 Q 3 ,j = S' 12 ,j + S' 1 ,j + S' 6 ,j + S' 11 ,j ,for j =0~7 Q 0,j to Q 3,j represent the 0th to The value of the jth bit of the third spanning parity byte group, S' 0, j to S' 15, j respectively represent the jth corresponding to the 0th to the 15th intermediate encryption results bit value.
跨小鑰奇偶校驗位元組分割電路(Across-subkey Parity-byte Split Circuitry)1330移除每個跨小鑰奇偶校驗9位元的第8個位元,成為跨小鑰奇偶校驗位元組,並且將跨小鑰奇偶校驗位元組饋入跨體奇偶校驗位元組預測電路1350。
Across-subkey Parity-byte Split Circuitry (Across-subkey Parity-byte Split Circuitry) 1330 removes the 8th bit of each 9-bit cross-subkey parity to become a cross-subkey parity bit and feed the cross-key parity bytes into the cross-body
跨體奇偶校驗位元組預測電路1350使用以下公式計算每個跨體奇偶校驗位元組的預測結果: ,for j=0~7
The span parity
,for j=0~7 , for j =0~7
,for j=0~7 , for j =0~7
,for j=0~7 Q(out) 0,j代表輸出的第0個跨體奇偶校驗位元組的第j個位元的值,Q(out) 1,j代表輸出的第1個跨體奇偶校驗位元組的第j個位元的值,Q(out) 2,j代表輸出的第2個跨體奇偶校驗位元組的第j個位元的值,Q(out) 3,j代表輸出的第3個跨體奇偶校驗位元組的第j個位元的值,Q(in) i,j代表輸入的第i個跨體奇偶校驗位元組的第j個位元的值,Vi,j代表第i個跨小鑰奇偶校驗位元組中的第j個位元的值。 ,for j =0~7 Q (out) 0, j represents the value of the jth bit of the 0th straddle parity bit group output, Q (out) 1, j represents the first output The value of the jth bit of the straddle body parity check byte, Q (out) 2, j represents the value of the jth bit of the 2nd straddle body parity check byte of output, Q (out ) 3,j represents the value of the jth bit of the 3rd straddle parity byte group output, Q (in) i,j represents the value of the ith straddle parity byte group input The value of j bits, V i,j represents the value of the jth bit in the ith inter-key parity byte group.
跨體奇偶校驗1位元預測電路1370使用以下公式計算每個跨體奇偶校驗9位元的第8個位元的預測結果:
跨體奇偶校驗9位元合併電路(Across-state Parity-9-bit Concatenation Circuitry)1390將每個從跨體奇偶校驗位元組預測電路1350輸出的跨體奇偶校驗位元組,附加上從跨體奇偶校驗1位元預測電路1370輸出的相應第8個位元,成為完整的跨體奇偶校驗9位元。
Across-state Parity-9-bit Concatenation Circuitry (Across-state Parity-9-bit Concatenation Circuitry) 1390 adds each of the Across-state Parity-check bytes output from the Across-state Parity-9-
參考回圖9,奇偶校驗檢查電路(Parity Check Circuitry)960檢查上一回合的執行結果是否發生錯誤。奇偶校驗檢查電路960從資料寄存器912獲取中間加密結果S’,以及從奇偶校驗碼寄存器914獲取相應於中間加密結果S’的體內奇偶校驗位元P和跨體奇偶校驗9位元Q。奇偶校驗檢查電路960判斷中間的加密結果S’和體內奇偶校驗位元P之間是否匹配,如果不匹配,則發出線性錯誤訊號err_L=1給處理單元134,使得處理單元134執行任何因應AES加密錯誤的管理程序。奇偶校驗檢查電路960還判斷中間的加密結果S’、中間的體內奇偶校驗位元P和跨體奇偶校驗9位元Q之間是否匹配,如果不匹配,則發出線性錯誤訊號err_L=1給處理單元134。
Referring back to FIG. 9 , a parity check circuit (Parity Check Circuitry) 960 checks whether an error occurs in the execution result of the previous round. The
增強型替代位元組電路(Enhanced Substitute-byte Circuitry)920除了完成演算法中的替代位元組步驟S310之外,也要檢查此步驟的執行結果是否正確。參考圖14所示的增強型替代位元組電路920的方塊圖。跨體奇偶校驗位元組分割電路1410從資料寄存器912獲取128位元的中間結果S’,切分為16個位元組,並且將這16個位元組分別饋入增強型查表電路1430#0至1430#15。增強型查表電路1430#0至
1430#15中的每一個完成替代位元組步驟S310,並且判斷此操作是否正確。如果增強型查表電路1430#0至1430#15中的任何一個發現此操作錯誤,則輸出非線性錯誤訊號err_nl_i=1,i為0到15的正整數。只要任何一個增強型查表電路輸出非線性錯誤訊號err_nl_i,則增強型替代位元組電路920輸出非線性錯誤訊號err_nL=1給處理單元134,使得處理單元134執行任何因應AES加密錯誤的管理程序。跨體奇偶校驗位元組合併電路1450搜集增強型查表電路1430#0至1430#15的查表結果,並且將轉換後的128位元輸出到位移列電路930。
The Enhanced Substitute-byte Circuit (Enhanced Substitute-byte Circuit) 920, in addition to completing the byte-substitute step S310 in the algorithm, also checks whether the execution result of this step is correct. Refer to the block diagram of the enhanced
參考圖15所示的增強型查表電路1430#i的方塊圖,i為0到15的正整數。搜索電路1510依據如上所述的查找表將輸入的1個位元組S’(in)轉換出1個位元組S’(out)。替代校驗電路(Substitution Check Circuitry)1530從搜索電路1510接收轉換後的1個位元組S’(out),並且使用相應於查找表的公式判斷S’(in)轉換到S’(out)的過程中是否發生錯誤。如果發現錯誤,則替代校驗電路1530輸出非線性錯誤訊號err_nl_i=1。
Referring to the block diagram of the enhanced look-up
參考圖16所示的替代校驗電路1530的方塊圖。計算電路1610從搜索電路1510獲取轉換後的位元組S’(out) i,計算Affine(S’(out) i)-1,Affine()-1代表Affine轉換的反函數,並且將計算結果輸出到乘法器1630和比較器1650。乘法器1630將S’(in)乘上Affine(S’(out) i)-1以產生S’(mul) i。比較器1650實施以下邏輯運算式來產生判斷結果:err_nl_i=0,if(S’(mul) i==1)&&(S’(in) i!=0)&&(Affine(S’(out) i)-1!=0)
Refer to the block diagram of the
err_nl_i=0,if(S’(mul) i==0)&&(S’(in) i==0)&&(Affine(S’(out) i)-1==0) err_nl_i=0,if(S' (mul) i ==0)&&(S' (in) i ==0)&&(Affine(S' (out) i ) -1 ==0)
err_nl_i=1,otherwise當err_nl_i等於1時,代表發生非線性錯誤訊號。 err_nl_i=1, otherwise when err_nl_i is equal to 1, it means a non-linear error signal occurs.
資料寄存器912、搜索電路1510、位移列電路930、混合行電路940、多工器980和加上回合密鑰電路950可視為AES編碼電路。奇偶校驗碼寄存器914、替代校驗電路1530、奇偶校驗檢查電路960和奇偶校驗預測電路970可視為錯誤檢查電路。
The data register 912, the
參考圖17所示的AES密鑰排程電路830的方塊圖。密鑰分割電路1750將256位元的基礎密鑰K0切分為2個密鑰K#0和K#1,每個鑰字的長度為128位元,相同於一個體的長度。密鑰奇偶校驗碼產生電路(Key Parity Generation Circuitry)1742包含多個互斥或閘,安排以依據接收到的密鑰K#0,產生如圖7所示的小鑰內奇偶校驗位元R0至R15(可統稱為R#0),以及跨小鑰奇偶校驗9位元V0至V3(可統稱為V#0),並且將小鑰內奇偶校驗位元R#0和跨小鑰奇偶校驗9位元V#0儲存到寄存器1752。密鑰奇偶校驗碼產生電路1744包含多個互斥或閘,安排以依據接收到的密鑰K#1,產生如圖7所示的小鑰內奇偶校驗位元R16至R31(可統稱為R#1),以及跨小鑰奇偶校驗9位元V4至V7(可統稱為V#1),並且將小鑰內奇偶校驗位元R#1和跨小鑰奇偶校驗9位元V#1儲存到寄存器1754。寄存器1752和1754又可稱為目前周期奇偶校驗寄存器(Current Cycle Parity Registers)。
Refer to the block diagram of the AES
密鑰奇偶校驗檢查電路(Key Parity Check Circuitry)1762和1764分別檢查密鑰K#0和K#1的產生是否發生錯誤。密鑰奇偶校驗檢查電路1762從密鑰分割電路1750獲取密鑰K#0,以及從寄存器1752獲取相應於密鑰K#0的小鑰內奇偶校驗位元R#0和跨小鑰奇偶校驗9位元V#0。密鑰奇偶校驗檢查電路1762判斷密鑰K#0和小鑰內奇偶校驗位元R#0之間是否匹配,如果不匹配,則發出密鑰錯誤訊號err_kc=1。密鑰奇偶校驗檢查電路1762還判斷密鑰K#0、小鑰內奇偶校驗位元R#0和跨小鑰奇偶校驗9位元V#0之間是否匹配,如果不匹配,則發出密鑰錯誤訊號err_kc=1。密鑰奇偶校驗檢查電路1764從密鑰分割電路1750獲取密鑰K#1,以及從寄存器1754獲取相應於密鑰K#1的小鑰內奇偶校驗位元R#1和跨小鑰奇偶校驗9位元V#1。密鑰奇偶校驗檢查電路1764判斷密鑰K#1和小鑰內奇偶校驗位元R#1之間是否匹配,如果不匹配,則發出密鑰錯誤訊號err_kd=1。密鑰奇偶校驗檢查電路1764還判斷密鑰K#1、小鑰內奇偶校驗位元R#1和跨小鑰
奇偶校驗9位元V#1之間是否匹配,如果不匹配,則發出密鑰錯誤訊號err_kd=1。密鑰錯誤訊號err_kc=1或者err_kd=1可觸發處理單元134執行任何因應AES密鑰錯誤的管理程序。
Key parity check circuits (Key Parity Check Circuitry) 1762 and 1764 respectively check whether an error occurs in the generation of
密鑰分割電路1710將256位元的基礎密鑰K0切分為8個鑰字(Word)W0,0至W0,3和W1,0至W1,3,每個鑰字的長度為4個位元組,並且將8個鑰字儲存在寄存器1712。鑰字處理電路1720根據最後一個鑰字W1,3產生一個鑰字的中間運算結果,此運算結果被用來和第一個鑰字W0,0進行逐位元邏輯互斥或運算(Bitwise Logical XOR Operation),以產生密鑰K#2的第一個鑰字W2,0。除了產生中間運算結果以外,鑰字處理電路1720還可以檢查中間運算結果的產生過程是否發生錯誤。如果是,則鑰字處理電路1720輸出密鑰錯誤訊號err_ka=1。密鑰錯誤訊號err_ka=1可觸發處理單元134執行任何因應AES密鑰錯誤的管理程序。
The
參考圖18所示的鑰字處理電路1720的方塊圖。鑰字分割電路1810從寄存器1712讀取最後一個鑰字W1,3,並且切分為4個小鑰,每個小鑰為1位元組。旋轉鑰字電路(Rotate-Word Circuitry)1820將這4個小鑰向左循環位移1個小鑰。替代鑰字電路(Substitute-Word Circuitry)1830根據查找表(又可稱為Rijndael S-box)將每個位移後小鑰的值替換為另一個值,其中的查找表使用以下公式建立:SBi=Affine((i)-1),for i=0~127 SBi代表i的輸出結果,Affine()代表Affine轉換函數,i為從0到127的正整數。替代鑰字電路1830除了完成每個輸入位元組的值的轉換之外,也要檢查轉換的執行結果是否正確。
Refer to the block diagram of the key
參考圖19所示的替代鑰字電路1830的方塊圖。增強型查表電路1930#0至1930#3中的每一個完成相應位元組的值的替換操作,並且判斷此操作是否正確。如果增強型查表電路1930#0至1930#3中的任何一個發現此操作錯誤,則輸出查表錯誤訊號err_w_i=1,i為0到3
的正整數。只要任何一個增強型查表電路輸出查表錯誤訊號err_w_i,則替代鑰字電路1830輸出密鑰錯誤訊號err_ka=1給處理單元134,使得處理單元134執行任何因應AES加密錯誤的管理程序。由於增強型查表電路1930#0至1930#3中的任一個的電路結構、功能和操作細節類似於增強型查表電路1430#i,所以讀者可參考圖15和圖16的描述,為求簡明不再贅述。
Referring to the block diagram of the replacement
參考回圖18,捨去常數電路(Round-Constant Circuitry)1840將鑰字w#0(in)和常數C執行逐位元互斥或(XOR)操作。參考圖20所示的捨去常數電路1840的示意圖。XOR閘2010設置將鑰字w#0(in)的每個位元和常數C的相應位元執行邏輯互斥或操作。
Referring back to FIG. 18 , the round-constant circuit (Round-Constant Circuitry) 1840 performs a bitwise exclusive OR (XOR) operation on the key
鑰字合併電路(Word Concatenation Circuitry)1850從捨去常數電路1840獲取4個小鑰w#0至w#3,合併小鑰w#0至w#3為完整的鑰字W(out),並且輸出鑰字W(out)至互斥或閘1725。
The word concatenation circuit (Word Concatenation Circuitry) 1850 obtains 4 small
鑰字奇偶校驗產生電路(Word Parity Generation Circuitry)1860包含小鑰內奇偶校驗產生電路和跨小鑰奇偶校驗產生電路。小鑰內奇偶校驗產生電路包含多個互斥或閘,安排以依據從替代鑰字電路1830接收到的小鑰w#0至w#3,產生4個小鑰內奇偶校驗位元rt10至rt13。跨小鑰奇偶校驗產生電路包含多個互斥或閘,安排以依據從替代鑰字電路1830接收到的小鑰w#0至w#3,產生1個跨小鑰奇偶校驗位元組vt10..7。
The key word parity generation circuit (Word Parity Generation Circuitry) 1860 includes a small-key intra-key parity generation circuit and an inter-small-key parity generation circuit. The parity generation circuit in the keylet includes a plurality of exclusive OR gates arranged to generate 4 parity bits rt1 in the keylet according to the
鑰字奇偶校驗預測電路(Word Parity Prediction Circuitry)1870包含小鑰內奇偶校驗預測電路和跨小鑰奇偶校驗預測電路。小鑰內奇偶校驗預測電路使用以下公式預測小鑰內奇偶校驗位元rt10 (out),並且輸出到鑰字跨奇偶校驗預測電路(Word Cross-parity Prediction Circuit)1880和密鑰奇偶校驗預測電路(Key Parity Prediction Circuit)1772:
鑰字跨奇偶校驗預測電路1880使用以下公式計算跨小鑰奇偶校驗9位元vt的最後一個位元:
鑰字奇偶校驗9位元合併電路1890將鑰字奇偶校驗預測電路1870的計算結果vt10..7合併上鑰字跨奇偶校驗預測電路1880的計算結果vt18,成為跨鑰字奇偶校驗9位元vt10..8,並且輸出到密鑰奇偶校驗電路1772。
The key word parity check 9-
參考回圖17,鑰字處理電路1730根據互斥或閘1727的運算結果(也就是鑰字W2,3)產生一個鑰字的中間運算結果,此運算結果被用來和鑰字W1,0進行逐位元邏輯互斥或運算,以產生密鑰K#3的第一個鑰字W3,0。除了產生中間運算結果以外,鑰字處理電路1730還可以檢查中間運算結果的產生過程是否發生錯誤。如果是,則鑰字處理
電路1730輸出密鑰錯誤訊號err_kb=1。密鑰錯誤訊號err_kb=1可觸發處理單元134執行任何因應AES密鑰錯誤的管理程序。
Referring back to FIG. 17, the key
參考圖21所示的鑰字處理電路1730的方塊圖。鑰字分割電路2110從互斥或閘1727讀取運算結果(也就是鑰字W2,3),並且切分為4個位元組。替代鑰字電路2130根據查找表將每個位元組的值替換為另一個值,其中的查找表使用以下公式建立:SBi=Affine((i)-1),for i=0~127 SBi代表i的輸出結果,Affine()代表Affine轉換函數,i為從0到127的正整數。替代鑰字電路2130除了完成每個輸入位元組的值的轉換之外,也要檢查轉換的執行結果是否正確。由於替代鑰字電路2130的電路結構、功能和運算結果類似於替代鑰字電路1830,所以讀者可參考圖15、圖16和圖19的描述,為求簡明不再贅述。只要替代鑰字電路2130中的任何一個增強型查表電路輸出查表錯誤訊號err_w_i,則替代鑰字電路2130輸出密鑰錯誤訊號err_kb=1給處理單元134,使得處理單元134執行任何因應AES加密錯誤的管理程序。
Refer to the block diagram of the key
鑰字合併電路2150從替代鑰字電路2130獲取替代後的4個小鑰w#0至w#3,合併小鑰w#0至w#3為完整的鑰字W(out),並且輸出鑰字W(out)至互斥或閘1729。
The
鑰字奇偶校驗產生電路2160包含小鑰內奇偶校驗產生電路和跨小鑰奇偶校驗產生電路。小鑰內奇偶校驗產生電路包含多個互斥或閘,安排以依據從替代鑰字電路2130接收到的小鑰w#0至w#3,產生相應於小鑰w#0至w#3的四個小鑰內奇偶校驗位元rt20至rt23。這四個小鑰內奇偶校驗位元rt20至rt23輸出至鑰字跨奇偶校驗預測電路2180和密鑰奇偶校驗預測電路1774。跨小鑰奇偶校驗產生電路包含多個互斥或閘,安排以依據從替代鑰字電路2130接收到的小鑰w#0至w#3,產生相應於小鑰w#0至w#3的一個跨小鑰奇偶校驗位元組vt20..7(也就是缺少跨小鑰奇偶校驗9位元vt2中的第8個位元)。這個跨小鑰奇
偶校驗位元組vt20..7輸出至鑰字奇偶校驗9位元合併電路2190。
The key word
鑰字跨奇偶校驗預測電路2180使用以下公式計算相應於小鑰w#0至w#3的跨小鑰奇偶校驗9位元的最後一個位元:
鑰字奇偶校驗9位元合併電路2190將鑰字奇偶校驗產生電路2160的計算結果vt20..7合併上鑰字跨奇偶校驗預測電路2180的計算結果vt28,作為跨鑰字奇偶校驗9位元vt20..8,並且輸出到密鑰奇偶校驗預測電路1774。
The key word parity 9-
參考回圖17,密鑰奇偶校驗預測電路(Key Parity Prediction Circuitry)1772包含多個加法器,安排以使用以下公式計算出相應於密鑰K#2的小鑰內奇偶校驗位元R#20至R#215:R#2i=rt1i+R#0i,for i=0~3
Referring back to FIG. 17, the Key Parity Prediction Circuit (Key Parity Prediction Circuit) 1772 includes a plurality of adders, arranged to use the following formula to calculate the parity bit R# in the small key corresponding to the
R#2i=R#2i-4+R#0i,for i=4~15 R#2i代表相應於密鑰K#2的第i個小鑰內奇偶校驗位元,rt1i代表從鑰字處理電路1720獲取的第i個小鑰內奇偶校驗位元,R#0i代表從寄存器1752讀取的相應於密鑰K#0的第i個小鑰內奇偶校驗位元,R#2i-4代表從寄存器1752讀取的相應於密鑰K#2的第i-4個小鑰內奇偶校驗位元。密鑰奇偶校驗預測電路1772另包含多個加法器,安排以使用以下公式計算出相應於密鑰K#2的跨小鑰奇偶校驗9位元V#20至V#23:V#2i=vt1+V#0i,for i=0
V#2i=V#2i-1+V#0i,for i=1~3 V#2i代表相應於密鑰K#2的第i個跨小鑰奇偶校驗9位元,vt1代表從鑰字處理電路1720獲取的跨小鑰奇偶校驗9位元,V#0i代表從寄存器1752讀取的相應於密鑰K#0的第i個跨小鑰奇偶校驗9位元,V#2i-1代表從寄存器1752讀取的相應於密鑰K#2的第i-1個跨小鑰奇偶校驗9
位元。密鑰奇偶校驗預測電路1772將預測結果R#2、V#2儲存到寄存器1782,用於在下一個迭代中讓密鑰奇偶校驗檢查電路1762進行檢查。
密鑰奇偶校驗預測電路1774包含多個加法器,安排以使用以下公式計算出相應於密鑰K#3的小鑰內奇偶校驗位元R#30至R#315:R#3i=rt2i+R#1i,for i=0~3
The key
R#3i=R#3i-4+R#1i,for i=4~15 R#3i代表相應於密鑰K#3的第i個小鑰內奇偶校驗位元,rt2i代表從鑰字處理電路1730獲取的第i個小鑰內奇偶校驗位元,R#1i代表從寄存器1754讀取的相應於密鑰K#1的第i個小鑰內奇偶校驗位元,R#3i-4代表從寄存器1754讀取的相應於密鑰K#3的第i-4個小鑰內奇偶校驗位元。密鑰奇偶校驗預測電路1774另包含多個加法器,安排以使用以下公式計算出相應於密鑰K#3的跨小鑰奇偶校驗9位元V#30至V#33:V#3i=vt2+V#1i,for i=0
V#3i=V#3i-1+V#1i,for i=1~3 V#3i代表相應於密鑰K#3的第i個跨小鑰奇偶校驗9位元,vt2代表從鑰字處理電路1730獲取的跨小鑰奇偶校驗9位元,V#1i代表從寄存器1754讀取的相應於密鑰K#1的第i個跨小鑰奇偶校驗9位元,V#3i-1代表從寄存器1754讀取的相應於密鑰K#3的第i-1個跨小鑰奇偶校驗9位元。密鑰奇偶校驗預測電路1774將預測結果R#3、V#3儲存到寄存器1784,用於在下一個迭代中讓密鑰奇偶校驗檢查電路1764進行檢查。
雖然圖17只描述了密鑰K#2和K#3的產生及其產生過程的錯誤偵測,但是因為密鑰K#2和K#3就是產生密鑰K#4和K#5時所使用的密鑰(也就是下一個迭代所使用的密鑰),依此類推,所屬技術領域人員可參考以上的技術內容推導出其他回合密鑰的產生及其產生過程的錯誤偵測。
Although Fig. 17 only describes the generation of
在一些實施例中,寄存器1712和1714可為實體上不同的寄存器。在另一些實施例中,寄存器1712和1714可指相同寄存器,但在指定的時間順序上依序儲存基礎密鑰和後續產生的回合密鑰。
In some embodiments,
在一些實施例中,寄存器1752和1782可為實體上不同的寄存器。在另一些實施例中,寄存器1752和1782可指相同寄存器,但在指定的時間順序上依序儲存第一個小鑰內奇偶校驗位元R#0和跨小鑰奇偶校驗9位元V#0,以及後續產生的小鑰內奇偶校驗位元和跨小鑰奇偶校驗9位元。
In some embodiments,
在一些實施例中,寄存器1754和1784可為實體上不同的寄存器。在另一些實施例中,寄存器1754和1784可指相同寄存器,但在指定的時間順序上依序儲存第二個小鑰內奇偶校驗位元R#1和跨小鑰奇偶校驗9位元V#1,以及後續產生的小鑰內奇偶校驗位元和跨小鑰奇偶校驗9位元。
In some embodiments,
雖然圖1至圖2、圖5、圖8至圖21中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以達成更佳的技術效果。 Although the elements described above are included in FIGS. 1 to 2 , 5 , and 8 to 21 , it is not excluded to use more other additional elements to achieve better technical effects without violating the spirit of the invention.
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above examples, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, the invention covers modifications and similar arrangements obvious to those skilled in the art. Therefore, the claims of the application must be interpreted in the broadest manner to include all obvious modifications and similar arrangements.
810:AES資料處理電路 810: AES data processing circuit
813:編碼電路 813: encoding circuit
815:編碼錯誤檢查電路 815: Coding error checking circuit
830:AES密鑰排程電路 830: AES key scheduling circuit
833:密鑰產生電路 833: key generation circuit
835:密鑰錯誤檢查電路 835: key error check circuit
850:或閘 850: OR gate
870:控制器 870:Controller
Claims (13)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163292038P | 2021-12-21 | 2021-12-21 | |
US63/292,038 | 2021-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI804439B true TWI804439B (en) | 2023-06-01 |
TW202326433A TW202326433A (en) | 2023-07-01 |
Family
ID=86778519
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111137123A TWI804439B (en) | 2021-12-21 | 2022-09-30 | Apparatus and method for detecting errors during data encryption |
TW111137122A TWI808902B (en) | 2021-12-21 | 2022-09-30 | Apparatus for detecting errors during data encryption |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111137122A TWI808902B (en) | 2021-12-21 | 2022-09-30 | Apparatus for detecting errors during data encryption |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN116318622A (en) |
TW (2) | TWI804439B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108141358A (en) * | 2015-10-15 | 2018-06-08 | 罗伯特·博世有限公司 | For generating the method for key in the circuit arrangement |
TWI673992B (en) * | 2017-07-14 | 2019-10-01 | 美商雷神公司 | Entwined encryption and error correction |
CN111756541A (en) * | 2019-03-26 | 2020-10-09 | 北京普安信科技有限公司 | Method, server, terminal and system for transmitting secret key |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9646175B2 (en) * | 2014-11-26 | 2017-05-09 | Synopsys, Inc. | Two-way parity error detection for advanced encryption standard engines |
KR20200079134A (en) * | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | Controller and memory system having the same |
US11487908B2 (en) * | 2019-08-16 | 2022-11-01 | Macronix International Co., Ltd. | Secure memory |
CN113556332A (en) * | 2021-07-09 | 2021-10-26 | 深圳市高德信通信股份有限公司 | Data encryption transmission method |
-
2022
- 2022-09-30 CN CN202211207479.7A patent/CN116318622A/en active Pending
- 2022-09-30 TW TW111137123A patent/TWI804439B/en active
- 2022-09-30 TW TW111137122A patent/TWI808902B/en active
- 2022-09-30 CN CN202211207303.1A patent/CN116318644A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108141358A (en) * | 2015-10-15 | 2018-06-08 | 罗伯特·博世有限公司 | For generating the method for key in the circuit arrangement |
TWI673992B (en) * | 2017-07-14 | 2019-10-01 | 美商雷神公司 | Entwined encryption and error correction |
CN111756541A (en) * | 2019-03-26 | 2020-10-09 | 北京普安信科技有限公司 | Method, server, terminal and system for transmitting secret key |
Also Published As
Publication number | Publication date |
---|---|
TW202326491A (en) | 2023-07-01 |
TWI808902B (en) | 2023-07-11 |
CN116318622A (en) | 2023-06-23 |
CN116318644A (en) | 2023-06-23 |
TW202326433A (en) | 2023-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407286B2 (en) | Data compression apparatus, data compression method, and memory system including the data compression apparatus | |
CN101149709B (en) | Encryption processor of memory card and method for writing and reading data using the same | |
US8666064B2 (en) | Endecryptor capable of performing parallel processing and encryption/decryption method thereof | |
US9348693B2 (en) | Data accessing method for flash memory module | |
TWI432964B (en) | Key transport method, memory controller and memory storage apparatus | |
CN105229592A (en) | For generating the apparatus and method in order to again to access the descriptor of the nonvolatile semiconductor memory of memory driver due to mistake | |
US9672105B2 (en) | Device and method for processing data using logical information and physical information | |
TWI804439B (en) | Apparatus and method for detecting errors during data encryption | |
TWI835381B (en) | Apparatus for detecting errors during data encryption | |
TWI835601B (en) | Apparatus and method for expanding round keys during data encryption | |
CN110633225B (en) | Apparatus and method for generating entity storage comparison table | |
TWI776351B (en) | Data accessing method using data protection with aid of advanced encryption standard processing circuit, memory controller of memory device, and advanced encryption standard processing circuit of memory controller of memory device | |
US20240143791A1 (en) | Apparatus and method for detecting errors during data encryption | |
US20230198754A1 (en) | Apparatus and method for detecting errors during data encryption | |
CN118677599A (en) | Round key expansion device for data encryption | |
US20230198755A1 (en) | Apparatus and method for detecting errors during data encryption | |
TWI823436B (en) | Apparatus and method for generating low-density parity-check (ldpc) code | |
US20230068302A1 (en) | Memory device and method for data encryption/decryption of memory device | |
US20240356726A1 (en) | Encryption device and operating method of encryption device | |
CN117331742A (en) | Apparatus and method for generating low density parity check code | |
CN114969850A (en) | Data transmission method and storage system |