CN113315622A - 包括双编码器的安全电路和包括安全电路的加密解密器 - Google Patents
包括双编码器的安全电路和包括安全电路的加密解密器 Download PDFInfo
- Publication number
- CN113315622A CN113315622A CN202011549749.3A CN202011549749A CN113315622A CN 113315622 A CN113315622 A CN 113315622A CN 202011549749 A CN202011549749 A CN 202011549749A CN 113315622 A CN113315622 A CN 113315622A
- Authority
- CN
- China
- Prior art keywords
- value
- output
- encoder
- encoded
- phenotype
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000009977 dual effect Effects 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 36
- 238000006467 substitution reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 101150005623 MSB2 gene Proteins 0.000 description 2
- 101100449986 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MSB3 gene Proteins 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Error Detection And Correction (AREA)
- Logic Circuits (AREA)
Abstract
一种安全电路,包括:解码器,其被配置为接收输入数据并响应于输入数据输出解码信号;第一编码器,其被配置为响应于解码信号,输出第一表型中与N进制整数(N是1或更大的自然数)当中的任一整数对应的一个第一表型作为第一编码值;第二编码器,其被配置为响应于所述解码信号,输出第二表型中与N进制整数当中的任一整数对应的一个第二表型作为第二编码值;以及门模块电路,其被配置为通过对所述第一编码值和所述第二编码值执行逻辑运算来生成输出数据。
Description
相关申请的交叉引用
本申请要求于2020年2月26日在韩国知识产权局提交的韩国专利申请No.10-2020-0023836的优先权,其全部公开内容通过引用合并于此。
技术领域
本发明构思的示例性实施例涉及安全电路,更具体地,涉及包括其中两个编码器共享一个解码器的替换盒(S-box)的安全电路、以及包括该S-box的加密解密器。
背景技术
个性化电子装置包括关于用户的安全信息。为了防止关于用户的安全信息被黑客泄露,硬件加密/解密装置(例如,加密解密器)可以通过签名或认证过程将安全信息作为密码发送。
加密技术经常用于确保数据传输的安全性。加密技术在发送方对明文进行加密,并且在接收方对密文进行解密。明文的加密和密文的解密被称为加密技术。
因为加密操作通常较慢,所以加密操作通常在硬件中实施以应用于诸如智能卡之类的装置。块密码算法可包括数据加密标准(DES)、高级加密标准(AES)、SEED、ARIA、SM4等。
在加密/解密算子的实施中,应用防范侧信道攻击的预防技术很重要。作为防止侧信道攻击的技术,可以使用随机地或均匀地显示功率和电磁波(即,通过侧信道收集的信息)的方法。
在块加密算法的情况下,S-box可能是攻击的主要目标。可以基于在S-box中执行的替换操作的安全性来确定加密/解密算子的安全性。当通过复制S-box来提高安全性时,侧信道攻击可能会很困难,但是冗余逻辑(例如重复使用解码器逻辑)可能会增加。
发明内容
根据本发明构思的示例性实施例,一种安全电路可包括:解码器,其被配置为接收输入数据并响应于输入数据输出解码信号;第一编码器,其被配置为响应于解码信号,输出第一表型中与N进制整数(N是1或更大的自然数)当中的任一整数对应的一个第一表型作为第一编码值;第二编码器,其被配置为响应于解码信号,输出第二表型中与N进制整数当中的任一整数对应的一个第二表型作为第二编码值;以及门模块电路,其被配置为通过对第一编码值和第二编码值执行逻辑运算来生成输出数据。
根据本发明构思的示例性实施例,一种安全电路可包括:第一置换逻辑电路,其被配置为输出第一解码值;第二置换逻辑电路,其被配置为输出第二解码值;第一编码器,其包括被配置为接收第一解码值的多个第一行门,其中,第一编码器基于特定汉明权重值而被分配第一表型作为多个第一行门的输出,并且第一编码器被配置为响应于具有位值1的二进制数,输出第一表型中被分配给多个第一行门中的一个第一行门的一个第一表型,作为第一编码值;以及第二编码器,其包括被配置为接收第二解码值的多个第二行门,其中,第二编码器基于特定汉明权重值而被分配第二表型作为多个第二行门的输出,并且第二编码器被配置为响应于具有位值1的二进制数,输出第二表型中被分配给多个第二行门中的一个第二行门的一个第二表型,作为第二编码值。
根据本发明构思的示例性实施例,一种加密解密器可包括:输入端子,其被配置为从外部装置接收输入数据;替换盒(S-box),其被配置为生成从经由输入端子接收的输入数据编码或解码的输出数据;以及输出端子,其被配置为输出输出数据。S-box还包括:解码器,其被配置为响应于输入数据输出解码信号;第一编码器,其被配置为响应于解码信号,输出第一表型中与N进制整数(N是1或更大的自然数)当中的任一整数对应的一个第一表型作为第一编码值;以及第二编码器,其被配置为响应于所述解码信号,输出第二表型中与N进制整数当中的任一整数相对应的一个第二表型作为第二编码值。输出数据是对第一编码值和第二编码值执行逻辑运算的结果。
根据本发明构思的示例性实施例,一种S-box可包括:解码器,其被配置为接收输入数据和反相输入数据,并基于输入数据和反相输入数据输出解码信号;第一置换逻辑电路,其被配置为响应于解码信号,选择第一整数组中的整数之一作为第一解码值进行发送;第二置换逻辑电路,其被配置为响应于解码信号,选择第二整数组中的整数之一作为第二解码值进行发送;第一编码模块电路,其被配置为接收第一解码值,并响应于第一解码值输出第一编码值;第二编码模块电路,其被配置为接收第二解码值,并响应于第二解码值输出第二编码值;以及多个逻辑门,其被配置为接收第一编码值和第二编码值,并生成输出数据。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,将更加清楚地理解本发明构思的上述和其它特征。
图1是示出根据本发明构思的示例性实施例的电子装置的框图。
图2是示出根据本发明构思的示例性实施例的图1的加密解密器的框图。
图3是示出根据本发明构思的示例性实施例的图2的S-box的框图。
图4是示出根据本发明构思的示例性实施例的图3的S-box的框图。
图5是示出根据本发明构思的示例性实施例的编码器电路的电路图。
图6A和图6B是示出根据本发明构思的示例性实施例的编码器电路的电路图。
图7是示出根据本发明构思的示例性实施例的编码值的表。
图8是示出根据本发明构思的示例性实施例的第一编码值和第二编码值的表。
图9是示出根据本发明构思的示例性实施例的S-box的数字电路图。
图10是描述根据本发明构思的示例性实施例的第一编码值和第二编码值的表。
图11是描述根据本发明构思的示例性实施例的表型的第一组合集的表。
图12是描述根据本发明构思的示例性实施例的表型的第二组合集的表。
图13是描述根据本发明构思的示例性实施例的表型的第三组合集的表。
图14A和图14B是描述根据本发明构思的示例性实施例的基于图13中的表型的编码值进行过XOR运算的输出数据的表。
图15是用于描述根据本发明构思的示例性实施例的具有图13中的表型的第一编码值和第二编码值的汉明权重的表。
图16A和图16B是示出根据本发明构思的示例性实施例的编码器模块的数字电路图。
具体实施方式
本发明构思的示例性实施例实施其中两个编码器共享一个解码器的具有小面积的S-box,并且提供通过均匀地调整输出数据的汉明权重(Hamming weight)来防止侧信道攻击的S-box以及包括S-box的加密解密器。
在下文中,将参照附图详细描述本发明构思的示例性实施例。贯穿本申请,相似的附图标记可以指代相似的元件。
图1是示出根据本发明构思的示例性实施例的电子装置的框图。
参照图1,电子装置1000可以控制智能卡、存储卡等,并且例如,电子装置1000可包括应用处理器。
电子装置1000可包括加密解密器1、处理器2、物理层(PHY)3和存储器控制器4。处理器2可以经由PHY 3执行与射频(RF)芯片5的数据发送和接收。另外,处理器2可以通过使用存储器控制器4的控制来执行任务并将其结果存储在存储器装置6中。例如,处理器2可包括至少一个核。
加密解密器1可以对从外部装置(例如,RF芯片5和/或存储器装置6)发送到电子装置1000的数据进行加密或解密,或者可以对从电子装置1000输出到外部装置的数据进行加密或解密。加密解密器1可以对用于电子装置1000的操作的数据的至少一部分进行加密或解密,以提高电子装置1000的安全性。
图2是示出根据本发明构思的示例性实施例的图1的加密解密器的框图。
参照图2,加密解密器1可包括输入端子11、替换盒(S-box)12和输出端子13。
根据本发明构思的示例性实施例的加密解密器1可以对电子装置1000接收的数据进行加密。此外,加密解密器1可以对加密的数据进行解密。例如,加密解密器1可以将接收的数据提供给S-box 12。在这种情况下,S-box 12可以经由输入端子11接收输入数据SB_IN。S-box 12可以通过特定的替换操作将输入数据SB_IN替换为输出数据SB_O。S-box 12可生成从经由输入端子11接收的输入数据SB_IN编码或解码的输出数据SB_O。S-box 12可将包括与输入数据SB_IN的至少一些位不同的位的输出数据SB_O输出到外部装置。例如,输入数据SB_IN和输出数据SB_O可以被一对一地映射,并且输入数据SB_IN的位数(例如,8位)可以与输出数据SB_O的位数(例如,8位)相同。下面将详细描述的第一表型和第二表型可以被预设,使得输入数据SB_IN和输出数据SB_O被一对一地映射。在下文中,当S-box 12执行安全操作时,S-box 12可以被称为安全电路。
图3是示出根据本发明构思的示例性实施例的图2的S-box的框图。
参照图3,加密解密器1可包括输入端子11、S-box 12、门模块240和输出端子13。S-box 12可包括解码器210、置换模块220和编码器模块230,并且门模块240可包括第一XOR门241和第二XOR门242。置换模块220可包括第一置换逻辑221和第二置换逻辑222,并且编码器模块230可包括第一编码器231和第二编码器232。另一方面,与图3所示不同,门模块240可以被包括在S-box 12中。加密解密器1的组件可以是电路,这将在下面详细描述。
解码器210可以从输入端子11接收输入数据SB_IN,并基于或响应于输入数据SB_IN输出解码信号。解码信号可包括第一解码信号DS1和第二解码信号DS2。第一解码信号DS1和第二解码信号DS2可以被称为解码信号DS。
置换模块220可以从解码器210接收第一解码信号DS1和第二解码信号DS2,并且基于或响应于接收的第一解码信号DS1和第二解码信号DS2输出第一解码值DV1和第二解码值DV2。第一解码值DV1和第二解码值DV2可以被称为解码值DV。换句话说,第一置换逻辑221和第二置换逻辑222可以分别基于第一解码信号DS1和第二解码信号DS2输出第一解码值DV1和第二解码值DV2。第一解码值DV1可以是由第一解码信号DS1指示的值。例如,响应于从解码器210中包括的多个AND门当中的第一AND门输出的第一解码信号DS1,第一置换逻辑221可以输出第一解码值DV1。在这种情况下,第一解码值DV1可以是十六进制值0、1、...、E和F之一(例如,十六进制的E表示14)。类似于上述情况,响应于从解码器210中包括的多个AND门当中的第二AND门输出的第二解码信号DS2,第二置换逻辑222可以输出第二解码值DV2。在这种情况下,第二解码值DV2可以是十六进制值之一。
编码器模块230可以基于或响应于从置换模块220接收的第一解码值DV1和第二解码值DV2输出第一编码值EN1和第二编码值EN2以及第一反相编码值~EN1和第二反相编码值~EN2。第一反相编码值~EN和第二反相编码值~EN2可以是其中第一编码值EN1和第二编码值EN2已经分别被反相的数据。例如,当第一编码值EN1是作为二进制数的“0100”时,第一反相编码值~EN1可以是作为二进制数的“1011”。
第一编码器231可以将第一解码值DV1转换为第一表型之一,并且可以输出转换后的值作为第一编码值EN1。另外,第二编码器232可以将第二解码值DV2转换为第二表型之一,并且可以输出转换后的值作为第二编码值EN2。第一表型和第二表型可以是分别映射到第一解码值DV1和第二解码值DV2的值。另外,第一表型和第二表型可以对应于N进制整数中的任一者(其中,N是1或更大的自然数)。例如,第一解码值DV1可以是4,其是可以以十六进制表示的16个值之一,并且第二解码值DV2可以是A,其也是可以以十六进制表示的16个值之一。第一表型可包括十六进制的3、5、A和C,并且第二表型可包括十六进制的3、6、9和C。在这种情况下,第一编码器231可以将第一解码值DV1(即4)转换为5(即与4相对应的第一表型之一),并且可以输出5作为第一编码值EN1。另外,第二编码器232可以将第二解码值DV2(即A)转换为9(即与A相对应的第二表型之一)。以这种方式,第一编码器231可以基于第一解码值DV1选择第一表型之一,并且可以输出选择的第一表型作为第一编码值EN1。另外,第二编码器232可以基于第二解码值DV2选择第二表型之一,并且可以输出选择的第二表型作为第二编码值EN2。
门模块240可以通过对第一编码值EN1和第二编码值EN2使用逻辑运算来生成第一输出数据SB_OA,并且可以基于或响应于第一反相编码值~EN1和第二反相编码值~EN2来输出第二输出数据SB_OB。例如,第一XOR门241可以对第一编码值EN1和第二编码值EN2执行XOR运算,并且输出经过XOR运算的数据作为第一输出数据SB_OA。另外,第二XOR门242可以对第一反相编码值~EN1和第二反相编码值~EN2执行XOR运算,并且输出经过XOR运算的数据作为第二输出数据SB_OB。因为第一输出数据SB_OA和第二输出数据SB_OB分别是经过XOR运算的正常数据和反相数据,所以它们可彼此相同。
输出端子13可以接收第一输出数据SB_OA和第二输出数据SB_OB。例如,输出端子13可以输出包括第一输出数据SB_OA作为高位和第二输出数据SB_OB作为低位的传输数据。例如,传输数据可以具有与输入数据SB_IN相同的位数。
图4是示出根据本发明构思的示例性实施例的图3的S-box的框图。在下文中,参照图3中的附图标记给出描述。
参照图4,解码器210可包括第一输入门模块211和第二输入门模块212。第一置换逻辑221可包括第一索引单元A1,并且第二置换逻辑222可包括第二索引单元A2。
根据本发明构思的示例性实施例,输入数据SB_IN可以是bx0101,并且反相输入数据~SB_IN可以是bx1010。第一输入门模块211可包括多个AND门,并且多个AND门中的每一个可以经由两个输入端子接收彼此不同的数据位。例如,AND门的每个输入端子可以接收输入数据SB_IN的数据位和/或反相输入数据~SB_IN的数据位。例如,第一输入门模块211可包括第一AND门GA1和第二AND门GA2。第一AND门GA1的输入端子可以接收位值1的输入数据SB_IN和反相输入数据~SB_IN,并且第一AND门GA1的输出端子输出位值1。另外,第二AND门GA2的输入端子也可以接收位值1,并且第二AND门GA2的输出端子输出位值1。第一输入门模块211中包括的AND门的数量可以等于输入数据SB_IN的位数和反相输入数据~SB_IN的位数的和。
根据本发明构思的示例性实施例,第二输入门模块212可包括多个AND门,并且第二输入门模块212的多个AND门可以从第一输入门模块211接收位值。换句话说,第二输入门模块212中包括的每个AND门可以从第一输入门模块211中包括的AND门当中的两个AND门接收位值。例如,第一输入门模块211中包括的每个AND门可以经由两条输出线连接到第二输入门模块212中包括的AND门当中的两个AND门。
根据本发明构思的示例性实施例,第二输入门模块212的多个AND门可以输出第一解码信号DS1和第二解码信号DS2。第一解码信号DS1和第二解码信号DS2可以具有0或1的位值。
作为示例,第二输入门模块212可以通过输出具有位值1的第一解码信号DS1和第二解码信号DS2来选择第一索引单元A1的索引之一(例如,3)和第二索引单元A2的索引之一(例如,3)。作为另一示例,第二输入门模块212可以通过输出具有位值0的解码信号而不选择第一索引单元A1的索引当中的其它索引(例如,0至2和4至F)和第二索引单元A2的索引当中的其它索引(例如,0至2和4至F)。
第一置换逻辑221可以输出第一解码值DV1。第一解码值DV1可包括用于选择的索引(例如,3)的位值1和用于未选择的索引(例如,0至2和4至F)的位值0。第二解码值DV2也可包括用于选择的索引(例如,3)的位值1和用于未选择的索引(例如,0至2和4至F)的位值0。例如,第一解码值DV1和第二解码值DV2可包括其中在多个索引中的每一个中记录了位值0或1的数据。例如,第一解码值DV1和第二解码值DV2可包括这样的数据,该数据包括在一个索引中的位值1和在其它索引中的位值0。
参照图4,第二输入门模块212可以在第一索引单元A1和第二索引单元A2中选择相同的索引(例如3)。然而,本发明构思不限于此,并且第二输入门模块212可以从第一索引单元A1和第二索引单元A2选择不同的索引。
根据本发明构思的示例性实施例,第一编码器231和第二编码器232中的每一个可以接收指示相同整数的解码值,但是可以经由在第一编码器231和第二编码器232中的每一个中包括的不同的接收构件来接收这些解码值。例如,即使第一编码器231和第二编码器232接收分别表示3的第一解码值DV1和第二解码值DV2,第一编码器231也可以输出bx0011的第一编码值EN1,并且第二编码器232也可以输出与第一编码值EN1不同的bx1100的第二编码值EN2。第一编码器231可以输出其中第一编码值EN1已经被反相的包括bx1100的第一反相编码值~EN1,并且第二编码器232可以输出其中第二编码值EN2已经被反相的包括bx0011的第二反相编码值~EN2。
第一XOR门241可以通过对第一编码值EN1和第二编码值EN2执行XOR运算来输出第一输出数据SB_OA。另外,第二XOR门242可以通过对第一反相编码值~EN1和第二反相编码值~EN2执行XOR运算来输出第二输出数据SB_OB。
图5是示出根据本发明构思的示例性实施例的编码器电路的电路图。在下文中,参照图4中的附图标记给出描述。
参照图5,编码电路EC可以是上述第一编码器231和第二编码器232的数字电路。编码电路EC可包括多个行门RG和多个列门CG。多个行门RG可包括第一行门R1、第二行门R2、第三行门R3和第四行门R4,多个行门RG中的每一个可以由OR门实施,并且多个行门RG中的每一个可包括多个输入端子(例如,四个输入端子)。另外,多个列门CG可包括第一列门C1、第二列门C2、第三列门C3和第四列门C4,多个列门CG中的每一个可以用OR门实施,并且多个列门CG中的每一个可包括多个输入端子(例如,四个输入端子)。
根据本发明构思的示例性实施例,编码电路EC可以包括在第一编码器231中。在这种情况下,由编码电路EC输出的编码值EN可以是第一编码值EN1。作为另一示例,编码电路EC可以被包括在第二编码器232中。在这种情况下,由编码电路EC输出的编码值EN可以是第二编码值EN2。
编码电路EC可以输出各种类型的编码值。图6A的第一编码电路EC1可以输出第一类型编码值(图6A的ET1),并且例如可以输出第一类型编码值ET1作为第一编码值EN1,并且作为另一示例,图6A的第一编码电路EC1可以输出第二类型编码值(图6B中的ET2)作为第一编码值EN1。稍后参照图6A和图6B描述细节。
可以以特定组合将解码值DV的多个索引分配给行门RG的多个输入端子(例如,16个输入端子)。另外,可以以与所述特定组合相同的组合或者以不同的组合将解码值DV的多个索引分配给列门CG的多个输入端子(例如,16个输入端子)。稍后参照图6A和图6B描述细节。
图6A和图6B是示出根据本发明构思的示例性实施例的编码器电路的电路图。
参照图6A,第一编码电路EC1可包括构成第一编码器(图4中的231)的数字电路,并且参照图6B,第二编码电路EC2可包括构成第二编码器(图4中的232)的数字电路。
参照图4和图6A,第一编码器231可包括多个行门RG,所述多个行门RG接收第一解码值DV1并基于特定汉明权重值分配第一表型作为多个行门RG的输出。例如,第一表型可包括十六进制的3、6、9和C,以分别由第一行门R1、第二行门R2、第三行门R3和第四行门R4输出。第一表型可包括基于特定汉明权重值分配的值。例如,第一表型可包括十六进制的3、6、9和C。第一表型可以表示为二进制的0011、0110、1001和1100,并且每个第一表型可以具有特定汉明权重值2。
换句话说,第一表型和第二表型中的至少一个可以具有汉明权重值2,并且可以通过使用统一的汉明权重值来强力抵抗侧信道攻击。然而,特定汉明权重值不限于2,并且在一些情况下,第一表型和第二表型中的至少一个可包括3、4或5。根据以上示例,第一编码器231可以用图6A的第一编码电路EC1来实施,但不限于此,并且第二编码器232可以用图6B的第二编码电路EC2来实施。另外,第一编码器231和第二编码器232可以通过以下描述的多个示例性实施例以各种形式实施。响应于第一行门R1输出具有位值1的二进制数,第一编码器231可以输出分配给第一行门R1的第一表型之一(例如,3)作为第一编码值EN1。
参照图4和图6B,第二编码器232可包括多个行门RG,所述多个行门RG接收第二解码值DV2并基于特定汉明权重值分配第二表型作为多个行门RG的输出。根据图6B,第二表型可包括十六进制的3、6、9和C,但是也可包括十六进制的3、5、A和C。类似地,第一表型也可包括十六进制的3、5、A和C。响应于第四行门R4输出具有位值1的二进制数,第二编码器232可以输出分配给第四行门R4的第二表型之一(例如,C)作为第二编码值EN2。
返回参照图5和图6A,可以以第一索引组合FP1的形式将多个索引分配给行门RG的输入端子。另外,可以以第二索引组合FP2的形式将多个索引分配给列门CG的输入端子。
第一索引组合FP1和第二索引组合FP2可包括:包括“FEDC”的第一索引、包括“BA98”的第二索引、包括“7654”的第三索引和包括“3210”的第四索引。第一索引可以被分配给第四行门R4和第一列门C1的输入端子,第二索引可以被分配给第三行门R3和第二列门C2的输入端子,第三索引可以被分配在第二行门R2和第三列门C3的输入端子,并且第四索引可以被分配给第一行门R1和第四列门C4的输入端子。
根据本发明构思的示例性实施例,多个行门RG中的一个行门可以输出位值1的二进制数,并且多个行门RG中的其它行门可以输出位值0的二进制数。响应于位值1的二进制数被输出,第一编码电路EC1可以输出表型之一(例如,3)作为第一类型编码值ET1。例如,第一编码电路EC1可以输出“0011”作为第一类型编码值ET1,并且输出“1100”作为第一类型反相编码值~ET1。
当行门RG接收到位值1的编码值时,第一编码电路EC1可以输出多个表型中的一个作为第一类型编码值ET1。表型可以是编码电路EC可以具有的作为输出值的范围。另外,第一表型可以对应于N进制的整数中的任一者(N是1或更大的自然数)。例如,参照图6A,表型可包括十六进制的整数当中的3、6、9和C。每个表型可以被分配给第一行门R1、第二行门R2、第三行门R3和第四行门R4。例如,当被分配了表型3的第一行门R1经由第一行门R1的输入端子之一接收到位值1时,第一编码电路EC1可以输出表型3作为第一编码值EN1。在这种情况下,输入到第一行门R1的输入端子的解码值DV可包括用于十六进制索引0的位值1、用于十六进制索引1的位值1、用于十六进制索引2的位值1、或者用于十六进制索引3的位值1。参照图6A,作为第一行门R1的输入端子之一,具有用于十六进制索引3的位值1的解码值DV可以被输入到第一行门RG1的输入端子之一。
第一编码电路EC1可以输出第一类型编码值ET1,并且例如,第一编码电路EC1可以将第一类型编码值ET1用作第一编码值EN1。在这种情况下,第一编码电路EC1可以包括在第一编码器231中。作为另一示例,第一编码电路EC1可以输出第一类型编码值ET1作为第二编码值EN2。在这种情况下,第一编码电路EC1可以包括在第二编码器232中。
参照图6B,第三索引组合FP3和第四索引组合FP4可包括:包括“FB73”的第五索引、包括“EA62”的第六索引、包括“D951”的第七索引和包括“C840”的第八索引。第五索引可以被分配给第四行门R4和第一列门C1的输入端子,第六索引可以被分配给第三行门R3和第二列门C2的输入端子,第七索引可以被分配给第二行门R2和第三列门C3的输入端子,并且第八索引可以被分配给第一行门R1和第四列门C4的输入端子。
与图6A所示不同,当将包括用于十六进制索引3的位值1的解码值DV输入到第二编码电路EC2时,第四行门R4和第一列门C1可以输出位值1。在这种情况下,与图6A所示的不同,第二编码电路EC2可以输出“1100”作为第二类型编码值ET2,并且输出“0011”作为第二类型反相编码值~ET2。这是因为分配给行门RG和列门CG的输入端子的索引可能已经改变。
第二编码电路EC2可以输出第二类型编码值ET2,并且例如,第二编码电路EC2可以输出第二类型编码值ET2作为第一编码值EN1。在这种情况下,第二编码电路EC2可以包括在第一编码器231中。作为另一示例,第二编码电路EC2可以输出第二类型编码值ET2作为第二编码值EN2。在这种情况下,第二编码电路EC2可以包括在第二编码器232中。
参照图4、图6A和图6B,第一编码电路EC1可包括接收第一解码值DV1的多个行门RG,并且可以响应于行门(例如,R1)输出包括位值1的二进制数而输出分配给行门(例如,R1)的第一表型(例如3)作为第一编码值EN1。此外,第二编码电路EC2可包括多个行门RG,并且响应于行门(例如,R4)输出包括位值1的二进制数而输出分配给行门(例如,R4)的表型(例如C)作为第二编码值EN2。
再次参照图5,编码电路EC可以基于行门RG和列门CG的输出来确定第一编码值EN1。例如,第一编码值EN1的第一最高有效位MSB可以是通过对第四行门R4和第三行门R3的位值执行OR运算而获得的位值。第一编码值EN1的第二最高有效位MSB2可以是通过对第四行门R4和第二行门R2的位值执行OR运算而获得的位值。第一编码值EN1的第三最高有效位MSB3可以是通过对第四列门C4和第二列门C2的位值执行OR运算而获得的位值。第一编码值EN1的最低有效位LSB可以是通过对第四列门C4和第三列门C3的位值执行OR运算而获得的位值。
另外,编码电路EC可以基于行门RG和列门CG的输出来确定第一反相编码值~EN1。例如,第一反相编码值~EN1的最高有效位MSB可以是通过对第二行门R2和第一行门R1的位值执行OR运算而获得的位值。第一反相编码值~EN1的第二最高有效位MSB2可以是通过对第三行门R3和第一行门R1的位值执行OR运算而获得的位值。第一反相编码值~EN1的第三最高有效位MSB3可以是通过对第三列门C3和第一列门C1的位值执行OR运算而获得的位值。第一反相编码值~EN1的最低有效位LSB可以是通过对第二列门C2和第一列门C1的位值执行OR运算而获得的位值。
图7是示出根据本发明构思的示例性实施例的编码值的表。
参照图6A、图6B和图7,表的每一行可以指示行门RG,并且表的每一列可以指示列门CG。“0x0”至“0xF”可以是第一编码值EN1和/或第二编码值EN2。换句话说,行门RG之一可以输出位值1,其余的行门RG可以输出位值0,列门CG之一可以输出位值1,其余的列门CG可以输出位值0。在这种情况下,编码电路EC可以输出与行门RG当中已输出位值1的一个行门和列门CG当中已输出位值1的一个列门相对应的值作为第一编码值EN1或第二编码值EN2。
根据本发明构思的示例性实施例,当行门RG之一输出位值1并且列门CG之一输出位值1时,编码电路EC可以被配置为使得从“0x0”至“0xF”当中的任何一个被输出作为第一编码值EN1或第二编码值EN2。
根据本发明构思的示例性实施例,第一行门R1可以输出位值1,并且其余的第二行门R2至第四行门R4可以输出位值0。此外,第四列门C4可以输出位值1,其余的第一列门C1至第三列门C3可以输出位值0。在这种情况下,编码电路EC可以输出“0x3”作为第一编码值EN1或第二编码值EN2。
根据本发明构思的示例性实施例,第四行门R4可以输出位值1,并且其余的第一行门R1至第三行门R3可以输出位值0。另外,第一列门C1可以输出位值1,并且其余的第二列门C2至第四列门C4可以输出位值0。在这种情况下,编码电路EC可以输出“0xC”作为第一编码值EN1或第二编码值EN2。
图8是示出根据本发明构思的示例性实施例的第一编码值和第二编码值的表。
参照图6A、图6B和图8,当将解码值DV输入到编码电路EC时,可以输出第一类型编码值ET1和第二类型编码值ET2。如上所述,第一类型编码值ET1可以是第一编码值EN1或第二编码值EN2,并且第二类型编码值ET2可以与此类似。在这种情况下,当输入数据(图4中的SB_IN)是四位的二进制代码时,输入数据SB_IN的实例(例如,可能的值)的数量可以是16,并且因此,解码值DV的实例的数量也可以是16。在这种情况下,第一编码器231的第一表型的数量可以是4(例如,0x3、0x6、0x9和0xC),并且第二编码器232的第二表型的数量可以是4(例如,0x3、0x6、0x9和0xC)。第一编码器231可以输出包括第一表型的第一编码值EN1,并且第二编码器232可以输出包括第二表型的第二编码值EN2。例如,对于第一编码值EN1可包括3、6、9和C的每种情况,第二编码值EN2可分别包括3、6、9和C。通过对具有四个实例的第一类型编码值ET1和具有四个实例的第二类型编码值ET2执行XOR运算,S-box(图4中的12)可以输出包括16个实例的第一输出数据(图4的SB_OA)。
参照图6A、图6B和图8,当解码值DV是3时(例如,当解码值DV具有用于十六进制索引3的位值1时),第一编码电路EC1中包括的第一行门R1和第四列门C4可以输出位值1。另外,第二编码电路EC2中包括的第四行门R4和第一列门C1可以输出位值1。因此,第一编码电路EC1可以输出十六进制的3作为第一类型编码值ET1,并且第二编码电路EC2可以输出十六进制的C作为第二类型编码值ET2。在图8所示的表中,即使第一类型编码值ET1和第二类型编码值ET2互换,也可以应用相同的技术思想。
图9是示出根据本发明构思的示例性实施例的S-box的数字电路图。
参照图9,第一编码器231a和第一编码器231b以及第二编码器232a和第二编码器232b可包括上述编码电路EC。第一编码器231a和第一编码器231b可以包括在第一编码模块230a中。第二编码器232a和第二编码器232b可以包括在第二编码模块230b中。与上述解码器210相比,解码器210a可包括更多数量的门。例如,第一输入门模块211a可包括与输入数据SB_IN和反相输入数据~SB_IN的每个位对应的16个AND门。另外,第二输入门模块212a可包括256个AND门以对8位的输入数据SB_IN进行解码。第三置换逻辑223和第四置换逻辑224中的每一个可包括包含16个输入端子的16个AND门,以选择在第三索引单元A3和第四索引单元A4中的每一个中包括的16个整数之一。
参照图9,解码器210a可以接收输入数据SB_IN和反相输入数据~SB_IN。输入数据SB_IN和反相输入数据~SB_IN可以各自是包括8位的数据。在这种情况下,第一编码器231a可以输出第一编码值的一部分EN1[7:4],并且第一编码器231b可以输出第一编码值的其余部分EN1[3:0]。换句话说,第一编码模块230a可以输出第一编码值EN1。另一方面,第二编码器232a可以输出第二编码值的一部分EN2[7:4],并且第二编码器232b可以输出第二编码值的其余部分EN2[3:0]。换句话说,第二编码模块230b可以输出第二编码值EN2。与先前附图中示出的第一编码值EN1和第二编码值EN2不同,图9中示出的第一编码值EN1和第二编码值EN2中的每一个可包括8位的数据。
第一编码值的一部分EN1[7:4]可包括第一类型编码值ET1,并且第一编码值的其余部分(例如,剩余部分)EN1[3:0]可包括第二类型编码值ET2。类似于这种情况,第二编码值的一部分EN1[7:4]可包括第一类型编码值ET1,并且第二编码值的其余部分(例如,剩余部分)EN2[3:0]可包括第二类型编码值ET2。换句话说,第一编码器231a和第一编码器231b可以输出彼此不同类型的编码值,并且第二编码器232a和第二编码器232b可以输出彼此不同类型的编码值。
第一编码模块230a和第二编码模块240b可以分别从第三置换逻辑223和第四置换逻辑224接收解码值。第一编码器231a和第一编码器231b可以共享第三置换逻辑223,并且第二编码器232a和第二编码器232b可以共享第四置换逻辑224。
解码器210a可以基于输入数据SB_IN和反相输入数据~SB_IN输出解码信号。第三置换逻辑223可以基于从解码器210a接收的解码信号,将第三索引单元A3中包括的整数之一作为第一解码值DV1a发送到第一编码器231a。另外,第三置换逻辑223可以基于所述解码信号,将第三索引单元A3中包括的整数之一作为第二解码值DV2a发送到第一编码器231b。
第四置换逻辑224可以基于从解码器210a接收的解码信号,将第四索引单元A4中包括的整数之一作为第一解码值DVlb发送到第二编码器232a。另外,第四置换逻辑224可以基于所述解码信号,将第四索引单元A4中包括的整数之一作为第二解码值DV2b发送到第二编码器232b。
多个逻辑门(例如,XOR门)可以接收第一编码值EN1和第二编码值EN2,并生成第一输出数据SB_OA和第二输出数据SB_OB。第三XOR门243和第五XOR门245可以通过对第一编码值EN1和第二编码值EN2执行XOR运算来输出第一输出数据SB_OA。例如,第三XOR门243可以对第一编码值的一部分EN1[7:4]和第二编码值的一部分EN2[7:4]执行XOR运算。第五XOR门245可以对第一编码值的其余部分(例如,剩余部分)EN1[3:0]和第二编码值的其余部分(例如,剩余部分)EN2[3:0]执行XOR运算。换句话说,第三XOR门243和第五XOR门245可以分别对与第一编码值EN1和第二编码值EN2相对应的位执行XOR运算。通过将由第一编码器231a生成的输出值EN1[7:4]与由第一编码器231b生成的输出值EN1[3:0]组合,可以输出输出数据EN1[7:0]。
第四XOR门244和第六XOR门246可以通过对第一反相编码值~EN1和第二反相编码值~EN2执行XOR运算来输出第二输出数据SB_OB。第四XOR门244可以对第一反相编码值的一部分~EN1[7:4]和第二反相编码值的一部分~EN2[7:4]执行XOR运算。第六XOR门246可以对第一反相编码值的一部分~EN1[3:0]和第二反相编码值的一部分~EN2[3:0]执行XOR运算。换句话说,第四XOR门244和第六XOR门246可以分别对与第一反相编码值~EN1和第二反相编码值~EN2对应的位执行XOR运算。
图10是描述根据本发明构思的示例性实施例的第一编码值和第二编码值的表。
参照图10,解码值DV可以是输入到第一编码器231a和第一编码器231b以及第二编码器232a和第二编码器232b的解码值。例如,在第一编码器231a和第一编码器231b以及第二编码器232a和第二编码器232b中包括的行门(例如,图6A中的RG)和列门(例如,图6A中的CG)可以接收解码值DV,在所述解码值DV中,索引0至F当中的一个索引的位值为1。例如,索引3中包括位值1的解码值DV可以是{0000 0000 0000 1000}。
当使用图6A的第一编码电路EC1实施图9中的第一编码器231a,并且使用图6B的第二编码电路EC2实施图9中的第一编码器231b时,可以获得图10所示的第一编码值EN1[7:0]。另外,当使用图6A的第一编码电路EC1实施图9中的第二编码器232a,并且使用图6B的第二编码电路EC2实施图9中的第二编码器232b时,可以获得图10所示的第二编码值EN2[7:0]。例如,第一编码器231a可以输出表型(例如,3、6、9和C)之一作为第一编码值的一部分EN1[7:4],并且第一编码器231b可以输出表型(例如3、6、9和C)之一作为第一编码值的其余部分EN1[3:0]。通过将从第一编码器231a和第一编码器231b输出的第一编码值的部分数据组合,第一编码模块230a可以输出第一编码值EN1。
图11是描述根据本发明构思的示例性实施例的表型的第一组合的表。
参照图4、图9和图11,第一组合集可包括多个组合(第一组合1-1至第十二组合1-12),第一编码器231、231a和231b可具有与第一组合1-1至第十二组合1-12中的一个相对应的表型,并且第二编码器232、232a和232b可以具有与第一组合1-1至第十二组合1-12中的一个相对应的表型。每个组合中的左四个表型可以是第一编码器231、231a和231b可以输出的输出值的范围,并且每个组合中的右四个表型可以是第二编码器232、232a和232b可以输出的输出值的范围。
例如,当第一编码器231、231a和231b具有表型1、5、9和D时,第二编码器232、232a和232b可以具有根据第一组合1-1的表型3、5、A和C,或者可以具有根据第五组合1-5的表型3、6、9和C。
在图11所示的表中描述的表型的组合可以用于维持行门(例如,图5中的RG)的负载平衡。负载平衡可以意味着分配给特定行门的多个输入端子的索引的平均值与分配给其它行门的多个输入端子的索引的平均值一致。另外,因为第一组合1-1至第十二组合1-12的每个表型具有平均汉明权重值2,所以可以防止侧信道攻击。汉明权重可以指二进制位流中的位值为1的数量。例如,在第一组合1-1的情况下,由于表型1满足汉明权重1,表型5和表型9满足汉明权重2,并且表型D满足汉明权重3,因此从第一编码器231、231a和231b输出的第一编码值的一部分EN1[7:4]的汉明权重与该第一编码值的其余部分EN1[3:0]的汉明权重的平均值可以是2。另外,由于所有表型3、5、A和C的汉明权重均为2,因此从第二编码器232、232a和232b输出的第二编码值的一部分EN2[7:4]的汉明权重和该第二编码值的其余部分EN2[3:0]的汉明权重的平均值可以是2。即使左四个表型和右四个表型互换,它们也可以包含相同的技术思想。
图12是描述根据发明构思的示例性实施例的表型的第二组合集的表。
参照图4、图9和图12,第二组合集可包括多个组合(第一组合2-1至第十二组合2-12),第一编码器231、231a和231b可具有与第一组合2-1至第十二组合2-12中的一个相对应的表型,并且第二编码器232、232a和232b可以具有与第一组合2-1至第十二组合2-12中的一个对应的表型。每个组合中的左四个表型可以是第一编码器231、231a和231b可以输出的输出值的范围,并且每个组合中的右四个表型可以是第二编码器232、232a和232b可以输出的输出值的范围。
例如,当第一编码器231、231a和231b具有表型5、6、8和B时,第二编码器232、232a和232b可以具有根据第三组合2-3的表型3、5、A和C,或可以具有根据第七组合2-7的表型3、6、9和C。
在图12所示的表中描述的表型的组合可以维持列门(例如,图5中的CG)的负载平衡。负载平衡可以意味着分配给特定列门的多个输入端子的索引的平均值与分配给其它列门的多个输入端子的索引的平均值一致。另外,因为第一组合2-1至第十二组合2-12的每个表型具有平均汉明权重值2,所以可以防止侧信道攻击。例如,在第五组合2-5的情况下,由于表型4满足汉明权重1,表型5和表型6满足汉明权重2,表型7满足汉明权重3,因此从第一编码器231、231a和231b输出的第一编码值的一部分EN1[7:4]的汉明权重与该第一编码值的其余部分EN1[3:0]的汉明权重的平均值可以是2。另外,由于所有表型3、6、9和C的汉明权重均为2,因此从第二编码器232、232a和232b输出的第二编码值的一部分EN2[7:4]的汉明权重和该第二编码值的其余部分EN2[3:0]的汉明权重的平均值可以是2。即使左四个表型和右四个表型互换,它们也可以包含相同的技术思想。
图13是描述根据本发明构思的示例性实施例的表型的第三组合集的表。
参照图4、图9和图13,第三组合集可包括多个组合(第一组合3-1至第十六组合3-16),第一编码器231、231a和231b可具有与第一组合3-1至第十六组合3-16中的一个对应的表型,并且第二编码器232、232a和232b可具有与第一组合3-1至第十六组合3-16中的一个对应的表型。每个组合中的左四个表型可以是第一编码器231、231a和231b可以输出的输出值的范围,并且每个组合中的右四个表型可以是第二编码器232、232a和232b可以输出的输出值的范围。
例如,当第一编码器231、231a和231b具有表型1、7、A和C时,第二编码器232、232a和232b可以具有根据第五组合3-5的表型3、6、9和C,或可以具有根据第十六组合3-16的表型3、4、A和D。
在图13所示的表中描述的表型的组合可以维持所有行门(例如,图5中的RG)和列门(例如,图5中的CG)的负载平衡,并且因此可以称为良好的组合。负载平衡可以意味着分配给特定行门和特定列门的多个输入端子的索引的平均值与分配给其它行门和其它列门的多个输入端子的索引的平均值一致。另外,因为第一组合3-1至第十六组合3-16的每个表型具有平均汉明权重值2,所以可以防止侧信道攻击。例如,在第五组合3-5的情况下,由于表型1满足汉明权重1,表型A和表型C的表型满足汉明权重2,并且表型7满足汉明权重3,因此从第一编码器231、231a和231b输出的第一编码值的一部分EN1[7:4]的汉明权重与该第一编码值的其余部分EN1[3:0]的汉明权重的平均值可以是2。另外,由于所有表型3、6、9和C的汉明权重均为2,因此从第二编码器232、232a和232b输出的第二编码值的一部分EN2[7:4]的汉明权重和该第二编码值的其余部分EN2[3:0]的汉明权重的平均值可以是2。即使左四个表型和右四个表型互换,它们也可以包含相同的技术思想。
根据本发明构思的示例性实施例,如在第一组合3-1至第八组合3-8中一样,第二编码器232、232a和232b可以具有表型3、5、A和C,或表型3、6、9和C。由于表型3、5、A和C的每一个具有汉明权重2,因此从具有一致的汉明权重的观点来看,第三组合集可能是良好的。另一方面,当第二编码器232、232a和232b具有表型3、5、A和C或表型3、6、9和C时,第一编码器231、231a和231b可以具有不同于表型3、5、A和C或表型3、6、9和C的表型。
图14A和图14B是描述根据本发明构思的示例性实施例的基于图13中的表型的编码值进行过XOR运算的输出数据的表。
参照图4、图9、图14A和图14B,第一XOR门241至第六XOR门246中的至少一些可以对第一编码值的一部分EN1[7:4]和第二编码值的一部分EN2[7:4]执行XOR运算。另外,第一XOR门241至第六XOR门246中的至少一些可以对第一编码值的其余部分EN1[3:0]和第二编码值的其余部分EN2[3:0]执行XOR运算。XOR运算值可以是S-box 12的输出数据之一(例如,SB_OA和SB_OB)。
参照图14A中的第一组合3-1,通过对包括C的编码值(EN1[7:4]或EN2[7:4])和包括C的编码值(EN1[3:0]或EN2[3:0])执行XOR运算,第一XOR门241至第六XOR门246中的一个可以输出表示0的数据SB_OA。作为另一示例,参照图14B中的第九组合3-9,通过对包括6的编码值(EN1[7:4]或EN2[7:4])和包括7的编码值(EN1[3:0]或EN2[3:0]执行XOR运算,第一XOR门241至第六XOR门246中的一个可以输出表示0的数据SB_OA。
图15是用于描述根据本发明构思的示例性实施例的具有图13中的表型的第一编码值和第二编码值的汉明权重的表。
参照图15,第一编码器231和第二编码器232中的每一个可以输出具有根据图13中的第七组合3-7的表型的第一编码值EN1和第二编码值EN2。第一编码值EN1可包括表型3、5、8和E中的一个,并且第二编码值EN2可包括表型3、6、9和C中的一个。换句话说,当将输出的第一编码值EN1和第二编码值EN2可具有的表型组合时,S-box 12可以生成16种输出数据(例如,SB_OA)。在第七组合3-7中,第一编码值EN1的汉明权重HW(EN1)和第二编码值EN2的汉明权重HW(EN2)的和可以是3、4或5。特别地,当第一编码值EN1具有表型3、5、8和E之一,并且第二编码值EN2具有表型3、6、9和C之一时,汉明权重之和(例如,HW(EN1)+HW(EN2))的平均值可以是4。
另一方面,第一编码器231和第二编码器232中的每一个可以输出具有根据图13中的第十五组合3-15的表型的第一编码值EN1和第二编码值EN2。当第一编码值EN1具有表型3、5、8和E之一,并且第二编码值EN2具有表型3、4、A和D之一时,汉明权重之和(例如,HW(EN1)+HW(EN2))的平均值也可以是4。因此,S-box 12可以具有针对侧信道攻击的良好安全性。
图16A和图16B是示出根据本发明构思的示例性实施例的编码器电路的数字电路图。
参照图4和图16A,可以利用第三编码电路EC3来实施第一编码器231。另外,参照图4和图16B,可以利用第四编码电路EC4来实施第二编码器232。
参照图16A和图16B,可以将表型3、5、A和C之一分配给行门RG中的每一个,并且也可以将表型3、5、A和C之一分配给列门CG中的每一个。在这种情况下,编码值EN可包括表型3、5、A和C之一。例如,可以将表型3分配给第一行门R1和第四列门C4,可以将表型5分配给第二行门R1和第二列门C2,可以将表型A分配给第三行门R3和第三列门C3,并且可以将表型C分配给第四行门R4和第一列门C1。响应于行门RG和列门CG输出包括位值1的二进制数,编码器模块(图3中的230)可以输出具有分别被分配给行门RG和列门CG的表型的编码值。
参照图16A,可以将第五索引组合FP5分配给行门RG的多个输入端子。另外,可以将第六索引组合FP6分配给列门CG的多个输入端子。第五索引组合FP5和第六索引组合FP6可包括:包括“FEDC”的第一索引、包括“BA98”的第二索引、包括“7654”的第三索引和包括“3210”的第四索引。可以将第一索引分配给第四行门R4和第一列门C1,可以将第二索引分配给第三行门R3和第三列门C3,可以将第三索引分配给第二行门R2和第二列门C2,并且可以将第四索引分配给第一行门R1和第四列门C4。例如,当接收到包括用于索引A的位值1的解码值DV时,第三编码电路EC3可以输出指示表型A的“1010”作为编码值EN。
参照图16B,可以将第七索引组合FP7分配给行门RG的多个输入端子。另外,可以将第八索引组合FP8分配给列门CG的多个输入端子。第七索引组合FP7和第八索引组合FP8可包括:包括“FB73”的第五索引、包括“EA62”的第六索引、包括“D951”的第七索引和包括“C840”的第八索引。可以将第五索引分配给第四行门R4和第一列门C1,可以将第六索引分配给第三行门R3和第三列门C3,可以将第七索引分配给第二行门R2和第二列门C2,并且可以将第八索引分配给第一行门R1和第四列门C4。例如,当接收到包括用于索引D的位值1的解码值DV时,第四编码电路EC4可以输出指示表型5的“0101”作为编码值EN。
术语“模块”可以指代软件、或者诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)之类的硬件组件,并且“模块”可以执行特定角色。但是,“模块”不限于软件或硬件。“模块”可以被配置为驻留在可寻址存储介质中,并且可以被配置为再现一个或多个处理器。因此,“模块”可包括例如组件(诸如软件组件、面向对象的软件组件、类组件、任务组件)、处理、功能、规程、子例程、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、数组或变量。组件和“模块”中提供的功能可以组合为较少数量的组件和“模块”,或者可以进一步分离为附加组件和“模块”。
虽然已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解,可以在不脱离如所附权利要求书所阐述的本发明构思的精神和范围的情况下对其进行形式和细节上的各种改变。
Claims (20)
1.一种安全电路,包括:
解码器,其被配置为接收输入数据并响应于所述输入数据输出解码信号;
第一编码器,其被配置为响应于所述解码信号,输出第一表型中与N进制整数当中的任一整数对应的一个第一表型作为第一编码值,其中,N是1或更大的自然数;
第二编码器,其被配置为响应于所述解码信号,输出第二表型中与N进制整数当中的任一整数对应的一个第二表型作为第二编码值;以及
门模块电路,其被配置为通过对所述第一编码值和所述第二编码值执行逻辑运算来生成输出数据。
2.根据权利要求1所述的安全电路,还包括:
置换逻辑电路,其被配置为基于所述解码信号选择多个整数之一,并将选择的整数作为解码值输出到所述第一编码器和所述第二编码器。
3.根据权利要求1所述的安全电路,还包括:
第一置换逻辑电路,其被配置为基于所述解码信号在多个整数当中选择第一整数,并将所述第一整数作为第一解码值输出到所述第一编码器;以及
第二置换逻辑电路,其被配置为基于所述解码信号在所述多个整数当中选择第二整数,并将所述第二整数作为第二解码值输出到所述第二编码器。
4.根据权利要求1所述的安全电路,其中,所述门模块电路包括XOR门,并且
所述输出数据是通过使用所述XOR门对所述第一编码值和所述第二编码值进行XOR运算的结果。
5.根据权利要求2所述的安全电路,其中,所述第一编码器包括多个行门,
所述多个行门中的每一个行门包括多个第一输入端子,并且
所述多个第一输入端子中的一个第一输入端子接收所述解码值。
6.根据权利要求5所述的安全电路,其中,所述第一表型中的一个第一表型被分配给所述多个行门中的一个行门。
7.根据权利要求6所述的安全电路,其中,所述多个行门中被分配了所述第一表型中的一个第一表型的一个行门输出具有位值1的第一二进制数,
所述多个行门中的其余行门输出具有位值0的第二二进制数,并且
所述第一编码器响应于所述多个行门中的所述一个行门输出所述第一二进制数而输出所述第一表型中的一个第一表型作为所述第一编码值。
8.根据权利要求5所述的安全电路,其中,所述第二编码器包括多个列门,
所述多个列门中的每一个列门包括多个第二输入端子,并且
所述多个第二输入端子中的一个第二输入端子接收所述解码值。
9.根据权利要求1所述的安全电路,其中,所述输出数据是包括所述第一编码值的第一部分和包括所述第二编码值的第二部分的组合。
10.根据权利要求1所述的安全电路,其中,所述第一编码值或所述第二编码值的汉明权重为2。
11.根据权利要求10所述的安全电路,其中,所述第一表型或所述第二表型包括十六进制的3、5、A和C,或者十六进制的3、6、9和C。
12.根据权利要求1所述的安全电路,其中,所述第一编码值的汉明权重与所述第二编码值的汉明权重的和是3、4或5。
13.一种安全电路,包括:
第一置换逻辑电路,其被配置为输出第一解码值;
第二置换逻辑电路,其被配置为输出第二解码值;
第一编码器,其包括被配置为接收所述第一解码值的多个第一行门,其中,所述第一编码器基于特定汉明权重值而被分配第一表型作为所述多个第一行门的输出,并且所述第一编码器被配置为响应于具有位值1的二进制数,输出所述第一表型中被分配给所述多个第一行门中的一个第一行门的一个第一表型,作为第一编码值;以及
第二编码器,其包括被配置为接收所述第二解码值的多个第二行门,其中,所述第二编码器基于特定汉明权重值而被分配第二表型作为所述多个第二行门的输出,并且所述第二编码器被配置为响应于具有位值1的二进制数,输出所述第二表型中被分配给所述多个第二行门中的一个第二行门的一个第二表型,作为第二编码值。
14.根据权利要求13所述的安全电路,还包括:
门模块电路,其被配置为通过对所述第一编码值和所述第二编码值执行XOR运算来输出第一输出数据。
15.根据权利要求14所述的安全电路,其中,所述门模块电路通过对第一反相编码值和第二反相编码值执行XOR运算来输出第二输出数据。
16.根据权利要求13所述的安全电路,其中,所述第一表型和所述第二表型是预设的,使得输入数据和输出数据被一对一地映射。
17.根据权利要求13所述的安全电路,其中,所述第一表型或所述第二表型是十六进制的3、6、9和C。
18.根据权利要求13所述的安全电路,其中,所述第一表型或所述第二表型是十六进制的3、5、A和C。
19.根据权利要求13所述的安全电路,其中,所述第一表型和所述第二表型中的至少一个包括汉明权重为2的值。
20.一种加密解密器,包括:
输入端子,其被配置为从外部装置接收输入数据;
替换盒,其被配置为生成从经由所述输入端子接收的所述输入数据编码或解码的输出数据;以及
输出端子,其被配置为输出所述输出数据,
其中,所述替换盒包括:
解码器,其被配置为响应于所述输入数据输出解码信号;
第一编码器,其被配置为响应于所述解码信号,输出第一表型中与N进制整数当中的任一整数对应的一个第一表型作为第一编码值,其中,N是1或更大的自然数;以及
第二编码器,其被配置为响应于所述解码信号,输出第二表型中与N进制整数当中的任一整数对应的一个第二表型作为第二编码值,并且
所述输出数据是对所述第一编码值和所述第二编码值执行逻辑运算的结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0023836 | 2020-02-26 | ||
KR1020200023836A KR20210108787A (ko) | 2020-02-26 | 2020-02-26 | 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113315622A true CN113315622A (zh) | 2021-08-27 |
Family
ID=77367123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011549749.3A Pending CN113315622A (zh) | 2020-02-26 | 2020-12-24 | 包括双编码器的安全电路和包括安全电路的加密解密器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11593527B2 (zh) |
KR (1) | KR20210108787A (zh) |
CN (1) | CN113315622A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230124021A (ko) * | 2020-12-18 | 2023-08-24 | 아지타 랩스, 인크. | 격리 암호화를 통한 프라이버시 강화 컴퓨팅 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008118566A (ja) * | 2006-11-07 | 2008-05-22 | Toshiba Corp | 暗号処理回路及び暗号処理方法 |
US20150254476A1 (en) * | 2014-03-04 | 2015-09-10 | Samsung Electronics Co., Ltd. | Encoder and method for encoding thereof |
US20160065361A1 (en) * | 2014-08-28 | 2016-03-03 | Samsung Electronics Co., Ltd. | Endecryptor preventing side channel attack, driving method thereof and control device having the same |
US20160156476A1 (en) * | 2014-11-28 | 2016-06-02 | Yong Ki Lee | Physically Unclonable Function Circuits and Methods of Performing Key Enrollment in Physically Unclonable Function Circuits |
US20180062830A1 (en) * | 2016-09-01 | 2018-03-01 | Cryptography Research, Inc. | Hardware masked substitution box for the data encryption standard |
CN109426731A (zh) * | 2017-08-24 | 2019-03-05 | 斯凯耶科德公司 | 保护数据的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS566314A (en) | 1979-06-28 | 1981-01-22 | Toa Gosei Chem Ind | Cable having conductive film |
JP4596686B2 (ja) | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
JP5055993B2 (ja) | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP4687775B2 (ja) | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
JP6136325B2 (ja) | 2013-02-08 | 2017-05-31 | 日本電気株式会社 | 暗号処理装置、暗号処理方法およびプログラム |
KR102397579B1 (ko) | 2017-03-29 | 2022-05-13 | 한국전자통신연구원 | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 |
-
2020
- 2020-02-26 KR KR1020200023836A patent/KR20210108787A/ko unknown
- 2020-10-01 US US17/060,099 patent/US11593527B2/en active Active
- 2020-12-24 CN CN202011549749.3A patent/CN113315622A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008118566A (ja) * | 2006-11-07 | 2008-05-22 | Toshiba Corp | 暗号処理回路及び暗号処理方法 |
US20080212776A1 (en) * | 2006-11-07 | 2008-09-04 | Kabushiki Kaisha Toshiba | Encryption processing circuit and encryption processing method |
US20150254476A1 (en) * | 2014-03-04 | 2015-09-10 | Samsung Electronics Co., Ltd. | Encoder and method for encoding thereof |
US20160065361A1 (en) * | 2014-08-28 | 2016-03-03 | Samsung Electronics Co., Ltd. | Endecryptor preventing side channel attack, driving method thereof and control device having the same |
US20160156476A1 (en) * | 2014-11-28 | 2016-06-02 | Yong Ki Lee | Physically Unclonable Function Circuits and Methods of Performing Key Enrollment in Physically Unclonable Function Circuits |
US20180062830A1 (en) * | 2016-09-01 | 2018-03-01 | Cryptography Research, Inc. | Hardware masked substitution box for the data encryption standard |
CN109426731A (zh) * | 2017-08-24 | 2019-03-05 | 斯凯耶科德公司 | 保护数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20210108787A (ko) | 2021-09-03 |
US20210264061A1 (en) | 2021-08-26 |
US11593527B2 (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2922235B1 (en) | Security module for secure function execution on untrusted platform | |
US11436946B2 (en) | Encryption device, encryption method, decryption device, and decryption method | |
CN103119888A (zh) | 用于不安全环境中的块密码处理的装置和方法 | |
EP3447963A1 (en) | Method for protecting data | |
Dewangan et al. | Study of avalanche effect in AES using binary codes | |
Naji et al. | Novel framework for hidden data in the image page within executable file using computation between advanced encryption standard and distortion techniques | |
CN113315622A (zh) | 包括双编码器的安全电路和包括安全电路的加密解密器 | |
KR20180113688A (ko) | 장치 인증키를 이용한 데이터 암호화 방법 및 시스템 | |
KR100458339B1 (ko) | 해독화방법및전자기기 | |
GB2124808A (en) | Security system | |
US7606363B1 (en) | System and method for context switching of a cryptographic engine | |
Golić | DeKaRT: A new paradigm for key-dependent reversible circuits | |
JPH10164028A (ja) | データ通信方法 | |
KR100845835B1 (ko) | 다단계 암호화 및 복호화 시스템 | |
KR102602696B1 (ko) | 암호화 장치 및 복호화 장치, 이들의 동작방법 | |
Shepherd | A high speed software implementation of the Data Encryption Standard | |
CN113381854B (zh) | 数据传输方法、装置、设备和存储介质 | |
KR101375670B1 (ko) | 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 | |
US20150113286A1 (en) | Method and system for chain transformation | |
KR20190135663A (ko) | 보안이 강화된 ofb 모드의 암호화 방법 | |
CN114257369A (zh) | 可调式五阶加密系统、发送端装置及接收端装置 | |
KR101281275B1 (ko) | 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치 | |
CN117221878A (zh) | 一种基于无线网络设备的信息安全管控方法及装置 | |
KR20150145870A (ko) | 채널별로 데이터를 보호할 수 있는 반도체 장치 | |
YASMEEN et al. | Implementation of the Advanced Encryption Standard Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |