CN101086769A - 用于加密输入数据的密码系统、错误检测电路及操作方法 - Google Patents

用于加密输入数据的密码系统、错误检测电路及操作方法 Download PDF

Info

Publication number
CN101086769A
CN101086769A CNA2007101082808A CN200710108280A CN101086769A CN 101086769 A CN101086769 A CN 101086769A CN A2007101082808 A CNA2007101082808 A CN A2007101082808A CN 200710108280 A CN200710108280 A CN 200710108280A CN 101086769 A CN101086769 A CN 101086769A
Authority
CN
China
Prior art keywords
output
circuit
computing
constituted
leg
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.)
Granted
Application number
CNA2007101082808A
Other languages
English (en)
Other versions
CN101086769B (zh
Inventor
奥迪尔·德鲁伊特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101086769A publication Critical patent/CN101086769A/zh
Application granted granted Critical
Publication of CN101086769B publication Critical patent/CN101086769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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 Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

密码系统包括:加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。

Description

用于加密输入数据的密码系统、错误检测电路及操作方法
技术领域
本发明通常涉及集成电路装置和操作它的方法,特别地,涉及密码系统、错误检测电路和操作它的方法。
背景技术
智能卡是其中可以安装集成电路(IC)的塑料卡,并且可以类似于信用卡。国际标准化组织(ISO)和国际电工委员会(IEC)的联合技术委员会1(JTC1)已经定义了智能卡技术的标准。国际标准系列ISO/IEC7816定义了智能卡的各种特征,诸如物理特性、物理连接、电子信号、传输协议、命令、安全体系结构、应用标识符和通用数据元素。
由于可以提供比传统磁卡更好的数据保持性和可以提供更好的安全性,因此智能卡已经被考虑用作为多介质信息设备。智能卡可以具有高安全性和大数据存储容量的优点,可以适合于宽范围的应用。因此,智能卡已经被用于各个领域的应用中,例如金融、销售、交通、移动通信和其它应用。
图1是表示传统智能卡体系结构的框图。智能卡包括所示的CPU11、ROM12、RAM13、EEPROM14、I/O模块15以及总线16。CPU11可以被配置为控制整个数据处理和算术运算。ROM12可以被配置为存储操作系统、引导代码、以及初始化程序。RAM13可以被用来存储可更改程序和/或临时数据。EEPROM14可以被用来存储一个或多个应用程序。I/O模块15可以被用来允许CPU11与外部装置通信。CPU11、ROM12、RAM13、和EEPROM14通过总线16耦合。总线16可以包括数据总线和地址总线。数据总线可以承载在CPU11、ROM12、RAM13、和EEPROM14以及可以被连接到总线16的任何其它装置之间的电信号,用于在它们之间传递数据的目的。地址总线可以将CPU11连接到主存储器装置,以识别在主存储器中的特殊位置(地址)。地址总线的宽度确定有多少唯一存储位置能够被寻址。
在智能卡装置中,保护在数据总线上承载的数据的机密性和完整性是重要的。同样,保护在地址总线上承载的地址的完整性也是重要的。如果在智能卡中存储/使用的数据和/或地址不是安全的,则使用者或者系统运算员可能会犹豫在智能卡中存储私有或者秘密信息。对智能卡的未经授权的访问有时被称为“篡改(tempering)”。篡改技术包括使用微探针的入侵攻击和使用软件工具的非入侵攻击。非入侵攻击能够包括执行边信道分析,其使用功率消耗(或者电流消散)模式(pattern)或者因智能卡运算导致的时差来解密密码算法(例如DES算法)的密钥码。边信道分析技术能够被分类为简易功率分析(SPA)和微分功率分析(DPA)。DPA和SPA是用于分析由低功耗器件例如智能卡在计算(或者运算)过程中产生的功率信号的方法,用于当分组密码算法被应用到智能卡时发现在智能卡中存储的秘密信息。基于估计一个回合之后的密文的特定位的(如果知道明文,对应于明文的)攻击者而能够实现DPA和SPA。对于DPA和SPA的一个对策是防止攻击者知道在智能卡内部执行的计算过程中的明文。
已经提出了对于DPA和SPA的各种对策。对策包括硬件方法和软件方法。硬件方法包括产生噪声功率、随机化运算顺序、和/或过滤功率信号。软件方法包括掩蔽技术,其中,在智能卡内部产生随机数,并且该随机数与明文进行“异或”(exclusive-OR)运算,以将该明文看成为随机数,从而阻塞功率分析。
发明内容
根据本发明的一些实施例,密码系统包括:加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
在本发明的其它实施例中,加密逻辑包括第一逻辑电路和第二逻辑电路。第一逻辑电路被构成为使用地址的至少一部分来在输入数据上执行第一掩蔽运算,从而产生第一输出。第二逻辑电路被构成为使用密钥来在所述第一输出上执行第二掩蔽运算,以产生第二输出。
在本发明的另外实施例中,第一和第二掩蔽运算的每一个包括异或运算、加运算、减运算、乘运算、和/或除运算。加、减、乘、和除运算是相对于模数进行的。
在本发明的另外实施例中,S盒电路被构成为变换所述第二输出。置换电路被构成为置换被变换的第二输出,从而产生加密输入数据。
在本发明的另外实施例中,置换电路被构成为在被变换的第二输出上执行线性函数。
在本发明的另外实施例中,该线性函数是第二输出的位的移位函数或者线性变换。
在本发明的另外实施例中,该输入数据至少包括一字节的数据。S盒电路包括第一S盒电路和第二S盒电路,它们被构成为分别变换第二输出的第一个四位字节和第二输出的第二个四位字节。
在本发明的另外实施例中,密码系统包括处理单元。加密逻辑包括被可通信地耦合到该处理单元的密码共同处理器。所述密码共同处理器从该处理单元接收该输入数据。
在本发明的另外实施例中,加密逻辑与该处理单元集成在一起,使得形成单一逻辑单元。
在本发明的另外实施例中,加密逻辑包括:第一回合逻辑电路,其被构成为响应于输入数据、地址的至少第一部分以及第一密钥而产生第一回合逻辑电路输出。第一回合S盒电路,其被构成为变换第一回合逻辑电路输出。第一回合置换电路,其被构成为置换被变换的第一回合逻辑电路输出,从而产生第一回合输出。第二回合逻辑电路,其被构成为响应于第一回合输出、地址的至少第二部分以及第二密钥而产生第二回合逻辑电路输出。第二回合S盒电路,其被构成为变换第二回合逻辑电路输出。第二回合置换电路,其被构成为置换被变换的第二回合逻辑电路输出,从而产生加密输入数据。
根据本发明的另外实施例,错误检测电路包括:第一逻辑电路,其被构成为在输入信息和第一模式上执行逻辑运算,从而产生第一输出。第二逻辑电路,其被构成为在输入信息和第二模式上执行逻辑运算,从而产生第二输出。第三逻辑电路,其被构成为在第一输出和第二输出上执行逻辑运算,从而产生第三输出。检测器电路,其被构成为将第三输出和对应于第一模式与第二模式的逻辑组合的值进行比较,如果该值不等于第三输出,则识别错误。
在本发明的另外实施例中,第一逻辑电路被构成为执行掩蔽运算,第二逻辑电路被构成为执行掩蔽运算,和第三逻辑电路被构成为执行掩蔽运算。
在本发明的另外实施例中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算。另外,加、减、乘、和除运算是相对于模数进行的。
在本发明的另外实施例中,错误检测电路包括:第一总线,其将第一逻辑电路耦合到第三逻辑电路。第二总线将第二逻辑电路耦合到第三逻辑电路。
在本发明的另外实施例中,输入信息包括输入数据。
在本发明的另外实施例中,输入信息包括输入地址。
在本发明的另外实施例中,第四逻辑电路被构成为在第一输出和第一模式上执行掩蔽运算,以获得输入信息。
根据本发明的其它实施例,密码系统包括:第一加密电路,其被构成为响应于输入数据,产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出。第二加密电路被构成为响应于输入数据,产生与使用第二模式在其上执行掩蔽运算的加密输入数据相对应的第二输出。检测器输入逻辑电路被构成为在第一输出和第二输出上执行掩蔽运算,以产生第三输出。检测器电路被构成为将第三输出和对应于使用第二模式在其上执行掩蔽运算的第一模式的值进行比较。如果该值不等于第三输出,则识别错误。
在本发明的另外实施例中,第一加密电路包括:加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
在本发明的另外实施例中,该加密逻辑包括:第一逻辑电路,其被构成为使用第一模式来在输入数据上执行掩蔽运算,从而产生第一逻辑电路输出。第二逻辑电路被构成为使用地址的至少一部分来在所述第一逻辑电路输出上执行掩蔽运算,从而产生第二逻辑电路输出。第三逻辑电路被构成为使用密钥来在所述第二逻辑电路输出上执行掩蔽运算,以产生第三逻辑电路输出。
在本发明的另外实施例中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算。另外,加、减、乘、和除运算是相对于模数进行的。
在本发明的另外实施例中,S′盒电路被构成为变换所述第三逻辑电路输出。置换电路被构成为置换被变换的第三逻辑电路输出,从而产生与使用第一模式已经在其上执行掩蔽运算的加密输入数据相对应的第一输出。
在本发明的另外实施例中,S′盒电路满足下述方程:
S′(D XOR M1 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
尽管主要关于本发明的系统和/或电路实施例进行了上述描述,但应当理解,本发明能够被体现为系统、电路、方法、和/或计算机程序产品。
附图说明
当结合附图阅读时,根据特定实施例的下述详细说明,本发明的其它特征将会更容易理解,其中:
图1是表示传统智能卡体系结构的框图。
图2是表示根据本发明一些实施例的密码系统的框图。
图3是表示根据本发明一些实施例的用于图2密码系统的加密逻辑电路的框图。
图4是根据本发明一些实施例的用于图3的加密逻辑电路的S盒表。
图5是表示根据本发明一些实施例的用于图2密码系统的解密逻辑电路的框图。
图6是表示根据本发明另外实施例的密码系统的框图。
图7是表示根据本发明一些实施例的错误检测电路的框图。
图8是表示根据本发明另外实施例的错误检测电路的框图。
图9是表示根据本发明一些实施例的包括图7错误检测电路的密码系统的框图。
图10是表示根据本发明一些实施例的用于图9密码系统的加密逻辑电路的框图。
具体实施方式
尽管本发明易受各种变形和替换形式的影响,但其特定实施例在附图中通过例子示出并且在此进行详细地说明。然而,应当理解,没有意图将本发明限制于公开的特殊形式,但是相反,本发明将覆盖落在本权利要求限定的本发明的精神和范围之内的所有的改进、等同和替换。
应当理解,当元件被称为“连接到”或者“耦合到”另一个元件时,其能够被直接地连接或者耦合到其它元件或者可以出现中间元件。相反,当元件被称为“直接地连接到”或者“直接地耦合到”另一个元件时,没有中间元件。按照这里所用,术语“和/或”和“/”包括一个或者多个相关列表项目的全部组合。相同的数字在整个说明中是指相同的元件。
这里所用的术语是用于仅仅描述特殊实施例的目的,并不用于限定本发明。按照这里所用,单数形式意指还包括复数形式,除非文中清楚地说明。还应当理解,当在本说明书中使用时,术语“包括”和/或“包括”特定出现所述特征、整数、步骤、运算、元件、和/或部件,但并不排除出现或者加上一个或者多个其它特征、整数、步骤、运算、元件、部件、和/或其组。
应当理解,尽管术语第一和第二在这里被用来描述各种部件、电路、区域、层和/或部分,但是这些部件、电路、区域、层和/或部分不应当被这些术语限制。这些术语仅仅用于将一个部件、电路、区域、层或者部分与另一个部件、电路、区域、层或者部分区别开。因此,下面讨论的第一部件、电路、区域、层或者部分能够被称为第二部件、电路、区域、层或者部分,并且类似地,第二部件、电路、区域、层或者部分能够被称为第一部件、电路、区域、层或者部分,而不会脱离本发明的教导。
除非另外限定,这里使用的所有术语(包括技术和科学术语)具有与本发明所属技术领域的普通技术人员通常理解的相同意义。还应当理解,诸如在通用字典中定义的那些术语应当被解释为具有与在现有技术部分中它们的意义相一致的意义,而不应当以理想化的或者过度正式的意义来进行解释,除非在这里被如此明确地限定。
本发明可以体现为系统、方法、和/或计算机程序产品。因此,本发明可以体现在硬件和/或在软件中(包括固件、驻留程序、微代码等)。而且,本发明可以采取在计算机可用或者计算机可读存储介质上的计算机程序产品的形式,该存储介质具有嵌置于该介质中的由指令执行系统使用的或者相联系的计算机可用或者计算机可读程序代码。在本文件的上下文中,计算机可用或者计算机可读介质可以是能够包含、存储、通信、传播、或者传输由指令执行系统、设备或者装置使用的或者相联系的程序的任何介质。
计算机可用或者计算机可读介质可以是例如但不限于电子、磁、光、电磁、红外、或者半导体系统、设备、装置或者传播介质。计算机可读介质的更具体例子(未穷尽列举)将包括下述:具有一个或者多个布线的电连接;便携式计算机软盘;随机存取存储器(RAM);只读存储器(ROM);可擦除可编程只读存储器(EPROM或者闪烁存储器);光纤;以及密致盘只读存储器(CD-ROM)。注意,计算机可用或者计算机可读介质甚至可以是在其上打印了程序的纸或者另外的合适介质,随着该程序例如通过纸或者其他介质的光扫描而能够被电子俘获,然后,如果需要,以合适的方式被编译、解释、或者其他处理,并且然后被存储在计算机存储器中。
本发明的一些实施例源自下述:智能卡例如能够包括密码系统,该密码系统能够被用于使用与输入数据相关的地址来加密数据,以防止诸如上述的篡改攻击。智能卡可以包括错误检测电路,其中,在数据总线承载的数据上和/或地址总线承载的地址上执行各种逻辑运算,以确定数据和/或地址信息是否已经被破坏。
这里在包括密码功能和/或错误检测功能的智能卡的上下文中描述本发明的一些实施例。应当理解,本发明的实施例不局限于智能卡,这里所描述的密码系统和错误检测电路可以被用于其它装置或者作为单独装置。
参考图2,根据本发明的一些实施例,按照所示配置,智能卡100包括CPU 110、密码电路130、密钥(key)调度器140、以及存储器120。密码电路130可以体现为对于CPU 110的共同处理器。CPU110和密码电路130可以在其间通信数据和地址信息。密钥调度器140可以给用于加密和/或解码数据的密码电路130提供密钥。在一些实施例中,密码电路130包括加密电路131,该加密电路131可以用于使用与从密钥调度器140获得的数据和/或密钥相关的地址来加密在连接密码电路130和存储器120的总线150上承载的数据。密码电路130还包括用于解密先前加密数据的解密电路。
图3是表示根据本发明一些实施例的用于图2加密电路131的加密逻辑电路的框图。加密逻辑电路包括第一回合(round)逻辑电路210和第二回合逻辑电路220。第一回合逻辑电路210包括串联连接的异或(XOR)逻辑电路211和212、数据寄存器213、S盒(box)电路214和215以及置换电路216。在使用与数据相关的地址(addr1)对数据进行掩蔽运算的XOR电路211的输入上接收要被加密的数据。XOR电路212对XOR电路211的输出使用从密钥调度器140获得的密钥(key1)进行第二次掩蔽运算。尽管异或逻辑运算被说明作为图3中块211和212的掩蔽运算,但应当理解,根据本发明的各个实施例,掩蔽运算可以包括异或运算、加运算、减运算、乘运算、和/或除运算,其中加、减、乘和除运算是相对于模数(modulus)进行的。
数据寄存器213保持XOR电路212的输出和将XOR电路212的输出的第一部分提供给第一S盒电路(S1)214和将XOR电路212的输出的第二部分提供给第二S盒电路(S2)215。S盒是换值盒的简略,通常用于密码系统。特别地,S盒可以用来模糊明文和密文之间的关系。运算中,S盒使得获取输入位的一些数m,并且使用例如查表来将那些输入位转换为输出位的一些数n。图4是可以用来实现S盒电路214和215的示例性S盒表。例如,如果输入数据是具有值数据=1001 1010、addr1=0111 0011、和key1=1100 0101的一个字节,则在数据寄存器中存储的值是0010 1100。到S1214的输入是0010,到S2215的输入是1100。参考图5的表,S1(2)=13=1101和S2(12)=9=1001。因此,到置换电路216的输入是1101 1001。
根据本发明的一些实施例,置换电路216被构成为在其输入上执行线性函数。根据本发明的各种实施例,线性函数可以是移位函数或者位的线性变换。在图3所示的例子中,置换电路216可以被构成为执行移位运算,使得P1(1101 1001)=1011 0011。
第二回合逻辑电路220包括串联连接的XOR逻辑电路221和222、数据寄存器223、S盒电路224和225、以及置换电路226。除了代替第一地址(addr1)和第一密钥(key1),第二地址(addr2)和第二密钥(key2)被分别用于由XOR逻辑电路221和222执行的掩蔽运算之外,第二回合逻辑电路220的运算类似于关于第一回合逻辑电路210上述的运算。而且,在第二回合逻辑电路220中,S盒电路S1在低四位字节而不是高四位字节上运算,S盒电路S2在高四位字节而不是低四位字节上运算。
从第二回合逻辑电路220输出的加密数据是非常难以解码的。结果,在智能卡上诸如上述的篡改攻击在获得智能卡中使用的根据本发明各个实施例已经被加密的机密数据时将不会成功。
图5是表示根据本发明一些实施例的可以用于图2解密电路1 32的解密逻辑电路的框图。解密逻辑电路包括第一回合逻辑电路310和第二回合逻辑电路320。第一回合逻辑电路310包括串联连接的逆置换电路311、逆S盒电路312和313、数据寄存器314、以及XOR逻辑电路315和316。第一回合逻辑电路310可操作用于撤销由图3的第二回合逻辑电路220执行的运算。如果图3的第一回合逻辑电路210的输出是OP以及‖代表并置运算,则逆置换电路311产生由下面方程给出的输出:P-2[P2(S2(OP XOR ADDR2 XORKEY2)‖S1(OP XOR ADDR2 XOR K2))]=S2(OP XOR ADDR2 XORKEY2)‖S1(OP XOR ADDR2 XOR K2)。逆S盒电路312和313执行下面的运算:S-2(S2(OP XOR ADDR2 XOR KEY2))=OP XOR ADDR2 XOR KEY2和S-1(S1(OP XOR ADDR2 XOR KEY2))=OP XOR ADDR2 XOR KEY2。第一XOR逻辑电路315执行下面的运算:OP XOR ADDR2 XOR KEY2 XORADDR2=OP XOR KEY2。最后,第二XOR逻辑电路316执行下面的运算:OP XOR KEY2 XOR KEY2=OP。因此,第一回合逻辑电路310在其输出上恢复加密电路131的第一回合逻辑电路210的输出。
第二回合逻辑电路320包括串联连接的逆置换电路321、逆S盒电路322和323、数据寄存器324、以及XOR逻辑电路325和326。第二回合逻辑电路320可操作用于撤销由图3的第一回合逻辑电路210执行的运算。第二回合逻辑电路320的运算类似于关于第一回合逻辑电路310上述的运算。即,第二回合逻辑电路320在其输入上接收图3的加密电路131的第一回合逻辑电路210的输出和在其输出上产生原始未加密数据。
回到图2,根据关于图3和4上述的各种实施例,智能卡100可以有利地在总线150上将加密数据传输到存储器120。由于通过加密电路执行的掩蔽运算、S盒运算、和/或置换运算,加密数据通过功率分析技术是难以解码的。本发明的实施例还可以根据希望的保护等级来标度。例如,关于图3~5上述的加密和解密电路结合了两回合的加密/解密运算。根据本发明的各种实施例,可以使用较少或者较多回合的加密/解密运算。在关于图3~5上述的例子中,输入数据是一个字节。但是,可以期望在依赖于总线宽度的其它数据尺寸上执行上述的密码运算。因此,可以平行地进行关于图3~5上述的运算以支持例如16位、32位、64位、或者其它总线宽度。
图6是表示根据本发明另外实施例的密码系统的框图。参考图6,根据本发明的一些实施例,按照所示配置,智能卡100′包括CPU110′、加密电路131′、解密电路132′、密钥调度器140′、以及存储器120′。存储器120′通过数据总线150′耦合到CPU110′。加密电路131′和解密电路132′的运算类似于上述图2的加密电路131和解密电路132的运算。图6的智能卡100′和图2的智能卡100之间的差别是智能卡100′中的加密逻辑与CPU110′集成在一起,使得形成单一逻辑单元,而对于图2的CPU110,图2的密码电路130被构成为共同处理器。
图7是表示根据本发明一些实施例的错误检测电路的框图。参考图7,按照所示构成,错误检测电路包括CPU410、三个逻辑电路430,440和450、以及存储器420。耦合到CPU410的数据总线被并行连接到逻辑电路430和440。XOR逻辑电路431使用第一模式MASK1(M1)在数据上执行掩蔽运算和在寄存器432中存储该输出。类似地,XOR逻辑电路441使用第二模式MASK2(M2)在数据上执行掩蔽运算和在寄存器442中存储该输出。尽管异或逻辑运算作为图7中块431和441的掩蔽运算被说明,但应当理解,根据本发明的各个实施例,掩蔽运算可以包括异或运算、加运算、减运算、乘运算、和/或除运算,其中加、减、乘和除运算是相对于模数(modulus)进行的。
逻辑电路430在输出460上提供输入数据XOR M1,逻辑电路440在输出470上提供输入数据XOR M2。这些输出分别被提供到逻辑电路450的寄存器451和452。逻辑电路450还包括XOR逻辑电路453和454。通过使用第一模式MASK1(M1)来在寄存器451的内容上执行掩蔽运算,XOR逻辑电路453被用来恢复原始输入数据。XOR逻辑电路453的输出通过下面的方程给出:输入数据XOR M1 XOR M1=输入数据。因此,输入数据被存储在存储器420中。
XOR逻辑电路454使用寄存器451的内容来在寄存器452的内容上执行掩蔽运算。XOR逻辑电路454的输出通过下面的方程给出:输入数据XORM1 XOR输入数据XOR M2=M1 XOR M2。错误检测器电路455能够将XOR逻辑电路454的输出与M1 XOR M2的已知结果进行比较。如果XOR逻辑电路454的输出不是M1 XOR M2,则在双数据总线的至少一个分支上的输入数据被破坏(corrupted)并且错误被识别。
图8是表示根据本发明另外实施例的错误检测电路的框图。图8的错误检测电路包括与图7的错误检测电路相同的部件,并且相同的部件由相同的标号示出,但是在数字的结尾包括尾随的撇号。但是,代替如图7所示的双数据总线实施例,图8示出了双地址总线实施例。除了被应用到在双地址总线上承载的地址信息之外,图8的错误检测电路的运算类似于图7的错误检测电路的运算。
根据本发明的另外实施例,图2~6的密码系统实施例可以与图7和8的错误检测电路实施例组合。参考图9,示出了根据本发明一些实施例的包括错误检测电路的密码系统。根据本发明的一些实施例,按照所示构成,图9的密码系统包括CPU510、密码电路530、密钥调度器540、错误检测电路550、和存储器520。密码电路530可以体现为对于CPU510的共同处理器。CPU510和密码电路530可以在其间通信数据和地址信息。在其它实施例中,CPU510和密码电路530可以体现在单一逻辑单元中,诸如上述图6中所示的。除了是S盒电路的设计之外,加密电路531和532的体系结构和运算基本上类似于图2的加密电路131的体系结构和运算。类似地,除了是逆S盒电路的设计之外,解密电路533的体系结构和运算基本上类似于图2的解密电路532的体系结构和运算。
如图9中所示,密码电路530在输出560上产生加密数据XOR MASK1(M1)和在输出570上产生加密数据XOR MASK2(M2)。错误检测电路550的体系结构和运算分别与图7和8的错误检测电路的逻辑电路450和450′相同。
参考图10,说明根据本发明一些实施例的可以被用于图9的加密电路531和/或532中的加密逻辑电路。为了说明目的,将参照加密电路531的实施来说明图10的加密逻辑电路。第一和第二回合逻辑电路610和620基本上与关于图3上述讨论的第一和第二回合逻辑电路210和220相同。以与第一和第二回合逻辑电路210和220的子部件对应的方式来标记第一和第二回合逻辑电路610和620的子部件。但是,与图3的加密逻辑电路相反,S盒电路614,615,624和625不同于图3的对应S盒电路。这是因为,对第一回合逻辑电路610的输入不仅仅是输入数据,而是XOR逻辑电路605在其上已经施加了使用模式MASK1(M1)的掩蔽运算的输入数据。
目标是在加密电路531的输出上产生加密数据XOR M1。这允许模式MASK1(M1)通过简单XOR掩蔽运算被去除,并且然后解密电路533能够解密使用包括图4的S盒表的加密逻辑的加密数据,以恢复原始输入数据。为了确保加密电路531的输出是加密数据XOR M1,新S1电路614,624满足下述方程:
S1′(D XOR M1 XOR A XOR K)=S1(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址(addr1)的至少一部分,K是密钥(key1),P-1是由置换电路616执行的置换的逆,S1′()是S1变换函数,以及S1()是在解密运算中使用的另一个S盒变换。
类似地,新S2电路615,625满足下述方程:
S2′(D XOR M1 XOR A XOR K)=S2(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址(addr1)的至少一部分,K是密钥(key1),P-1是由置换电路616执行的置换的逆,S2′()是S2变换函数,以及S2()是在解密运算中使用的另一个S盒变换。
如果i=D XOR A1 XOR K1,则用于新S1电路614,624和新S2电路615,625的前述方程能够写为下述形式:
S1′(i XOR M1)=S1(i)XOR P-1(M1);和
S2′(i XOR M1)=S2(i)XOR P-1(M1)。
第一回合逻辑电路610的输出由下面的方程给出:
P(S1′(i XOR M1)‖S2′(i XOR M1))
其能够重写为下述:
P(S1(i)XOR P-1(M1)‖S2(i)XOR P-1(M1))=P((S1(i)‖S2(i))XOR P-1(M1))
其能够重写为下述:
P(S1(i)‖S2(i))XOR P(P-1(M1))=P(S1(i)‖S2(i))XORM1
因此,第一回合逻辑电路610的输出是:
ED1 XOR M1
应当理解,图2的加密电路131和解密电路132、图6的加密电路131′和解密电路132′、图7的逻辑电路430,440和450、图8的逻辑电路430′,440′和450′、以及图9的加密电路531,532、解密电路533和错误检测电路550的任何或者所有模块的功能性都可以使用分立硬件部分、一个或多个专用集成电路(ASIC)、或者编程数字信号处理器或者微控制器来实现。为了开发方便,用于执行上述所讨论的密码系统和/或错误检测电路的计算机代码可以以高级编程语言例如Java,C和/或C++来编写。此外,用于执行本发明运算的计算机代码也可以以其它编程语言诸如但不限于解释语言来编写。一些模块或者例程可以以汇编语言或者甚至微代码来编写以提高性能和/或存储器使用。
在结束详细说明时,应当注意,在基本上不脱离本发明原理的情况下,对于各个实施例能够进行许多修改和改进。所有的这种修改和改进在这里应被确定为包括在所附权利要求中提出的本发明的范围内。
本申请要求2006年6月7日在韩国知识产权局申请的韩国专利申请号10-2006-0051033的优先权,其公开整体引用于此。

Claims (55)

1.一种密码系统,包括:
加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
2.权利要求1的密码系统,其中,该加密逻辑包括:
第一逻辑电路,其被构成为使用地址的至少一部分来在输入数据上执行第一掩蔽运算,从而产生第一输出;和
第二逻辑电路,其被构成为使用密钥来在所述第一输出上执行第二掩蔽运算,以产生第二输出。
3.权利要求2的密码系统,其中,第一和第二掩蔽运算的每一个包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
4.权利要求3的密码系统,还包括:
S盒电路,其被构成为变换所述第二输出;和
置换电路,其被构成为置换被变换的第二输出,从而产生加密输入数据。
5.权利要求4的密码系统,其中,置换电路被构成为在被变换的第二输出上执行线性函数。
6.权利要求5的密码系统,其中,该线性函数是第二输出的位的移位函数或者线性变换。
7.权利要求4的密码系统,其中,该输入数据包括至少一字节的数据,并且其中S盒电路包括第一S盒电路和第二S盒电路,它们被构成为分别变换第二输出的第一个四位字节和第二输出的第二个四位字节。
8.权利要求1的密码系统,其中,该输入数据包括至少一字节的数据。
9.权利要求1的密码系统,还包括:
处理单元;
其中,加密逻辑包括被可通信地耦合到该处理单元的密码共同处理器,所述密码共同处理器从该处理单元接收该输入数据。
10.权利要求1的密码系统,还包括:
处理单元;
其中,加密逻辑与该处理单元集成在一起,使得形成单一逻辑单元。
11.权利要求1的密码系统,其中,加密逻辑包括:
第一回合逻辑电路,其被构成为响应于输入数据、至少该地址的第一部分以及第一密钥而产生第一回合逻辑电路输出;
第一回合S盒电路,其被构成为变换第一回合逻辑电路输出;和
第一回合置换电路,其被构成为置换被变换的第一回合逻辑电路输出,从而产生第一回合输出;
第二回合逻辑电路,其被构成为响应于第一回合输出、至少该地址的第二部分以及第二密钥而产生第二回合逻辑电路输出;
第二回合S盒电路,其被构成为变换第二回合逻辑电路输出;和
第二回合置换电路,其被构成为置换被变换的第二回合逻辑电路输出,从而产生加密输入数据。
12.权利要求11的密码系统,其中,该输入数据包括至少一字节的数据,并且其中第一回合S盒电路包括第一S盒电路和第二S盒电路,它们被构成为分别变换第一回合逻辑电路输出的高四位字节和第一回合逻辑电路输出的低四位字节,并且其中,第二回合S盒电路包括分别对应于第一S盒电路和第二S盒电路的第三S盒电路和第四S盒电路,它们被构成为分别变换第二回合逻辑电路输出的低位四位字节和第二回合逻辑电路输出的高位四位字节。
13.一种操作密码系统的方法,包括:
通过使用与输入数据相关的地址来执行在输入数据上的掩蔽运算而加密输入数据。
14.权利要求13的方法,其中,加密输入数据包括:
使用地址的至少一部分来在输入数据上执行第一掩蔽运算,从而产生第一输出;和
使用密钥来在所述第一输出上执行第二掩蔽运算,以产生第二输出。
15.权利要求14的方法,其中,第一和第二掩蔽运算的每一个包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
16.权利要求15的方法,还包括:
使用S盒电路来变换所述第二输出;和
置换被变换的第二输出,从而产生加密输入数据。
17.一种计算机程序产品,包括嵌置于计算机可读介质上的计算机可读程序代码,该计算机可读程序代码被构成为执行权利要求13的方法。
18.一种错误检测电路,包括:
第一逻辑电路,其被构成为在输入信息和第一模式上执行逻辑运算,从而产生第一输出;
第二逻辑电路,其被构成为在输入信息和第二模式上执行逻辑运算,从而产生第二输出;
第三逻辑电路,其被构成为在第一输出和第二输出上执行逻辑运算,从而产生第三输出;和
检测器电路,其被构成为将第三输出和对应于第一模式与第二模式的逻辑组合的值进行比较,如果该值不等于第三输出,则识别错误。
19.权利要求18的错误检测电路,其中,第一逻辑电路被构成为执行掩蔽运算,第二逻辑电路被构成为执行掩蔽运算,和第三逻辑电路被构成为执行掩蔽运算。
20.权利要求19的错误检测电路,其中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
21.权利要求18的错误检测电路,还包括:
第一总线,其将第一逻辑电路耦合到第三逻辑电路;和
第二总线,其将第二逻辑电路耦合到第三逻辑电路。
22.权利要求18的错误检测电路,其中,输入信息包括输入数据。
23.权利要求18的错误检测电路,其中,输入信息包括输入地址。
24.权利要求18的错误检测电路,还包括:
第四逻辑电路,其被构成为在第一输出和第一模式上执行掩蔽运算,以获得输入信息。
25.一种操作错误检测电路的方法,包括:
在输入信息和第一模式上执行第一逻辑运算,从而产生第一输出;
在输入信息和第二模式上执行第二逻辑运算,从而产生第二输出;
在第一输出和第二输出上执行第三逻辑运算,从而产生第三输出;
将第三输出和对应于第一模式与第二模式的逻辑组合的值进行比较;和
如果该值不等于第三输出,则识别错误。
26.权利要求25的方法,其中,输入信息包括输入数据。
27.权利要求25的方法,其中,输入信息包括输入地址。
28.一种计算机程序产品,包括嵌置于计算机可读介质上的计算机可读程序代码,该计算机可读程序代码被构成为执行权利要求25的方法。
29.一种密码系统,包括:
第一加密电路,其被构成为响应于输入数据,产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出;
第二加密电路,其被构成为响应于输入数据,产生与使用第二模式在其上执行掩蔽运算的加密输入数据相对应的第二输出;
检测器输入逻辑电路,其被构成为在第一输出和第二输出上执行掩蔽运算,以产生第三输出;和
检测器电路,其被构成为将第三输出和对应于使用第二模式在其上执行掩蔽运算的第一模式的值进行比较,如果该值不等于第三输出,则识别错误。
30.权利要求29的密码系统,其中,第一加密电路包括:
加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
31.权利要求30的密码系统,其中,该加密逻辑包括:
第一逻辑电路,其被构成为使用第一模式来在输入数据上执行掩蔽运算,从而产生第一逻辑电路输出;
第二逻辑电路,其被构成为使用地址的至少一部分来在所述第一逻辑电路输出上执行掩蔽运算,从而产生第二逻辑电路输出;和
第三逻辑电路,其被构成为使用密钥来在所述第二逻辑电路输出上执行掩蔽运算,以产生第三逻辑电路输出。
32.权利要求31的密码系统,其中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
33.权利要求32的密码系统,还包括:
S′盒电路,其被构成为变换所述第三逻辑电路输出;和
置换电路,其被构成为置换被变换的第三逻辑电路输出,从而产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出。
34.权利要求33的密码系统,其中,S′盒电路满足下述方程:
S1′(D XOR M1 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
35.权利要求33的密码系统,其中,该输入数据至少包括一字节的数据,并且其中S′盒电路包括第一S′盒电路和第二S′盒电路,它们被构成为分别变换第三逻辑电路输出的第一个四位字节和第三逻辑电路输出的第二个四位字节。
36.权利要求30的密码系统,其中,加密逻辑包括:
第一回合逻辑电路,其被构成为响应于输入数据、第一模式、地址的至少第一部分以及第一密钥而产生第一回合逻辑电路输出;
第一回合S′盒电路,其被构成为变换第一回合逻辑电路输出;和
第一回合置换电路,其被构成为置换被变换的第一回合逻辑电路输出,从而产生第一回合输出;
第二回合逻辑电路,其被构成为响应于第一回合输出、地址的至少第二部分以及第二密钥而产生第二回合逻辑电路输出;
第二回合S′盒电路,其被构成为变换第二回合逻辑电路输出;和
第二回合置换电路,其被构成为置换被变换的第二回合逻辑电路输出,从而产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出。
37.权利要求36的密码系统,其中,第一和第二回合S′盒电路满足下述方程:
S′(D XOR M1 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
38.权利要求37的密码系统,其中,该输入数据至少包括一字节的数据,并且其中第一回合S盒电路包括第一S′盒电路和第二S′盒电路,它们被构成为分别变换第一回合逻辑电路输出的高位四位字节和第一回合逻辑电路输出的低位四位字节,并且其中,第二回合S′盒电路包括分别对应于第一S′盒电路和第二S′盒电路的第三S′盒电路和第四S′盒电路,它们被构成为分别变换第二回合逻辑电路输出的低位四位字节和第二回合逻辑电路输出的高位四位字节。
39.权利要求29的密码系统,其中,第二加密电路包括:
加密逻辑,其被构成为通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
40.权利要求39的密码系统,其中,该加密逻辑包括:
第一逻辑电路,其被构成为使用第二模式来在输入数据上执行掩蔽运算,从而产生第一逻辑电路输出;
第二逻辑电路,其被构成为使用地址的至少一部分来在所述第一逻辑电路输出上执行掩蔽运算,从而产生第二逻辑电路输出;和
第三逻辑电路,其被构成为使用密钥来在所述第二逻辑电路输出上执行掩蔽运算,以产生第三逻辑电路输出。
41.权利要求40的密码系统,其中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
42.权利要求41的密码系统,还包括:
S′盒电路,其被构成为变换所述第三逻辑电路输出;和
置换电路,其被构成为置换被变换的第三逻辑电路输出,从而产生与使用第二模式已经在其上执行掩蔽运算的加密输入数据相对应的第二输出。
43.权利要求42的密码系统,其中,S′盒电路满足下述方程:
S′(D XOR M2 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M2);
这里,D是输入数据,M2是第二模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
44.权利要求42的密码系统,其中,该输入数据包括至少一字节的数据,并且其中S′盒电路包括第一S′盒电路和第二S′盒电路,它们被构成为分别变换第三逻辑电路输出的第一个四位字节和第三逻辑电路输出的第二个四位字节。
45.权利要求39的密码系统,其中,加密逻辑包括:
第一回合逻辑电路,其被构成为响应于输入数据、第二模式、地址的至少第一部分以及第一密钥而产生第一回合逻辑电路输出;
第一回合S′盒电路,其被构成为变换第一回合逻辑电路输出;和
第一回合置换电路,其被构成为置换被变换的第一回合逻辑电路输出,从而产生第一回合输出;
第二回合逻辑电路,其被构成为响应于第一回合输出、地址的至少第二部分以及第二密钥而产生第二回合逻辑电路输出;
第二回合S′盒电路,其被构成为变换第二回合逻辑电路输出;和
第二回合置换电路,其被构成为置换被变换的第二回合逻辑电路输出,从而产生与使用第二模式在其上执行掩蔽运算的加密输入数据相对应的第二输出。
46.权利要求45的密码系统,其中,第一和第二回合S′盒电路满足下述方程:
S′(D XOR M2 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M2);
这里,D是输入数据,M2是第二模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
47.权利要求46的密码系统,其中,该输入数据包括至少一字节的数据,并且其中第一回合S盒电路包括第一S′盒电路和第二S′盒电路,它们被构成为分别变换第一回合逻辑电路输出的高位四位字节和第一回合逻辑电路输出的低位四位字节,并且其中,第二回合S′盒电路包括分别对应于第一S′盒电路和第二S′盒电路的第三S′盒电路和第四S′盒电路,它们被构成为分别变换第二回合逻辑电路输出的低位四位字节和第二回合逻辑电路输出的高位四位字节。
48.权利要求29的密码系统,其中,输入数据包括至少一字节的数据。
49.一种操作密码系统的方法,包括:
响应于输入数据,产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出;
响应于输入数据,产生与使用第二模式在其上执行掩蔽运算的加密输入数据相对应的第二输出;
在第一输出和第二输出上执行掩蔽运算,以产生第三输出;
将第三输出和对应于使用第二模式在其上执行掩蔽运算的第一模式的值进行比较;和
如果该值不等于第三输出,则识别错误。
50.权利要求49的方法,其中,产生第一输出包括:
通过使用与输入数据相关的地址来在输入数据上执行掩蔽运算而加密输入数据。
51.权利要求50的方法,其中,加密输入数据包括:
使用第一模式来在输入数据上执行掩蔽运算,从而产生第一逻辑电路输出;
使用地址的至少一部分来在所述第一逻辑输出上执行掩蔽运算,从而产生第二逻辑输出;和
使用密钥来在所述第二逻辑输出上执行掩蔽运算,以产生第三逻辑输出。
52.权利要求51的方法,其中,掩蔽运算包括异或运算、加运算、减运算、乘运算、和/或除运算,其中,加、减、乘、和除运算是相对于模数进行的。
53.权利要求52的方法,还包括:
使用S′盒电路来变换所述第三逻辑输出;和
置换被变换的第三逻辑输出,从而产生与使用第一模式在其上执行掩蔽运算的加密输入数据相对应的第一输出。
54.权利要求53的方法,其中,S′盒电路满足下述方程:
S′(D XOR M1 XOR A XOR K)=S(D XOR A XOR K)XOR P-1(M1);
这里,D是输入数据,M1是第一模式,A是地址的至少一部分,K是密钥,P-1是由置换电路执行的置换的逆,S′()是S′盒变换函数,以及S()是在解密运算中使用的另一个S盒变换。
55.一种计算机程序产品,包括嵌置于计算机可读介质上的计算机可读程序代码,该计算机可读程序代码被构成为执行权利要求49的方法。
CN2007101082808A 2006-06-07 2007-06-07 用于加密输入数据的密码系统及其操作方法 Active CN101086769B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020060051033A KR100837270B1 (ko) 2006-06-07 2006-06-07 스마트 카드 및 그것의 데이터 보안 방법
KR51033/06 2006-06-07
US11/785,281 2007-04-16
US11/785,281 US8332634B2 (en) 2006-06-07 2007-04-16 Cryptographic systems for encrypting input data using an address associated with the input data, error detection circuits, and methods of operating the same

Publications (2)

Publication Number Publication Date
CN101086769A true CN101086769A (zh) 2007-12-12
CN101086769B CN101086769B (zh) 2012-05-09

Family

ID=38822009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101082808A Active CN101086769B (zh) 2006-06-07 2007-06-07 用于加密输入数据的密码系统及其操作方法

Country Status (4)

Country Link
US (1) US8332634B2 (zh)
KR (1) KR100837270B1 (zh)
CN (1) CN101086769B (zh)
DE (1) DE102007063755B4 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356418A (zh) * 2009-03-23 2012-02-15 富士通株式会社 数据处理装置以及数据处理方法
CN103199998A (zh) * 2013-04-17 2013-07-10 天津大学 五种数字信息的无逻辑硬加密方法组合
CN104011709A (zh) * 2011-12-22 2014-08-27 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN104838617A (zh) * 2012-12-11 2015-08-12 三菱电机株式会社 整合安全装置及整合安全装置中使用的信号处理方法
CN104871476A (zh) * 2013-01-11 2015-08-26 高通股份有限公司 用于可计算、大型、可变及安全的替换盒的方法及设备
CN107547193A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
TWI659329B (zh) * 2017-11-01 2019-05-11 瑞昱半導體股份有限公司 資料存取裝置及方法
CN109804596A (zh) * 2016-12-09 2019-05-24 密码研究公司 具有加掩码的输入的可编程块密码器
CN112653448A (zh) * 2019-10-11 2021-04-13 意法半导体(格勒诺布尔2)公司 用于二进制标志确定的设备和方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
DE102008056383B4 (de) 2007-11-16 2015-08-20 Lg Electronics Inc. Dampf-Trocknungsguttrockner
US8473751B2 (en) * 2007-12-13 2013-06-25 Oberthur Technologies Method for cryptographic data processing, particularly using an S box, and related device and software
FR2925968B1 (fr) * 2007-12-26 2011-06-03 Ingenico Sa Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants
FR2935503A1 (fr) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protection d'un algorithme de chiffrement
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
KR101685633B1 (ko) 2009-01-05 2016-12-12 삼성전자주식회사 메모리 시스템
FR2952735B1 (fr) * 2009-11-18 2011-12-09 St Microelectronics Rousset Procede et dispositif de detection d'attaques par injection de fautes
EP2326042B1 (fr) * 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes
FR2960728B1 (fr) * 2010-05-26 2016-04-15 Oberthur Technologies Procede de determination d'une representation d'un produit et procede d'evaluation d'une fonction
US20120063597A1 (en) * 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
US9128876B2 (en) * 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
CN103368730A (zh) * 2012-04-09 2013-10-23 丛树业 八种数字信息的无逻辑硬加密方法组合
KR101929984B1 (ko) * 2012-05-17 2018-12-18 삼성전자주식회사 모듈러 곱셈기 및 그것의 모듈러 곱셈 방법
WO2014003117A1 (ja) * 2012-06-28 2014-01-03 日本電気株式会社 暗号化装置、暗号化方法およびプログラム
US10146701B2 (en) * 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
US10530567B2 (en) * 2016-10-05 2020-01-07 Megachips Corporation Encryption device and memory device
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
US10673616B2 (en) 2017-01-11 2020-06-02 Qualcomm Incorporated Lightweight mitigation against first-order probing side-channel attacks on block ciphers
US20190007223A1 (en) * 2017-07-01 2019-01-03 Intel Corporation Techniques to power encryption circuitry
CN116561715A (zh) * 2019-12-20 2023-08-08 无锡矽杰微电子有限公司 一种mcu程序加密解密方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4772845A (en) * 1987-01-15 1988-09-20 Raytheon Company Cable continuity testor including a sequential state machine
EP0447117B1 (en) * 1990-03-15 1997-02-19 AT&T Corp. Built-in self test for analog to digital converters
JPH0476749A (ja) 1990-07-19 1992-03-11 Toshiba Corp セキュリティ回路
US5166977A (en) * 1991-05-31 1992-11-24 Encrypto, Inc. Protocol converter for a secure fax transmission system
US5276690A (en) * 1992-01-30 1994-01-04 Intel Corporation Apparatus utilizing dual compare logic for self checking of functional redundancy check (FRC) logic
JPH06208516A (ja) 1992-10-27 1994-07-26 Toshiba Corp セキュリティ回路
DE4403899B4 (de) * 1994-02-08 2007-12-13 Robert Bosch Gmbh Vorrichtung zur seriellen Übertragung von Daten zwischen mindestens zwei Stationen
JP3179004B2 (ja) * 1995-10-17 2001-06-25 富士通株式会社 論理回路検証システムおよび方法
US6134631A (en) * 1996-08-19 2000-10-17 Hyundai Electronics America, Inc. Non-volatile memory with embedded programmable controller
DE19708616C2 (de) * 1997-03-03 1999-09-02 Siemens Ag Elektronische Datenverarbeitungseinrichtung und -system
US5963053A (en) * 1997-10-09 1999-10-05 Pericom Semiconductor Corp. Self-biasing CMOS PECL receiver with wide common-mode range and multi-level-transmit to binary decoder
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US5896337A (en) * 1998-02-23 1999-04-20 Micron Technology, Inc. Circuits and methods for multi-level data through a single input/ouput pin
US6438678B1 (en) * 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
ATE229207T1 (de) * 1998-09-30 2002-12-15 Koninkl Philips Electronics Nv Datenträgervorrichtung mit datenbus deren energieverbrauch unabhängig ist von den über den datenbus gesendeten daten
ATE475139T1 (de) * 1999-06-10 2010-08-15 Belle Gate Invest B V Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen und verfahren zur aktualisierung eines datensatzes in einem speicher
JP2001195441A (ja) * 2000-01-13 2001-07-19 Nec Ic Microcomput Syst Ltd 出力ドントケア指定方法並びにこれを用いた処理装置、処理方法及び処理プログラムを記録した記録媒体
FR2817683B1 (fr) * 2000-12-05 2003-01-31 Bull Sa Procede de codage/decodage de donnees numeriques transmises sur une liaison serie, notamment du type dit "8b/10b", et dispositif de mise en oeuvre
PL361818A1 (en) 2001-01-16 2004-10-04 Nagracard S.A. Method for storing encrypted data
US6700827B2 (en) * 2001-02-08 2004-03-02 Integrated Device Technology, Inc. Cam circuit with error correction
DE10115118A1 (de) * 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
FR2825877B1 (fr) * 2001-06-12 2003-09-19 Canal Plus Technologies Procede de controle d'acces a un programme crypte
ATE494692T1 (de) 2001-10-03 2011-01-15 Nxp Bv Verfahren und system zur speicherverschlüsselung
KR20030055745A (ko) * 2001-12-27 2003-07-04 주식회사 하이닉스반도체 전자칩의 외부공격 탐지장치
FR2838892A1 (fr) 2002-04-23 2003-10-24 Scm Microsystems Gmbh Procede et dispositif de chiffrement de donnees numeriques
EP1387519A3 (fr) 2002-07-09 2004-02-18 Cp8 Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치
DE10345378B4 (de) 2003-09-30 2010-08-12 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE10345454A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
KR100604828B1 (ko) * 2004-01-09 2006-07-28 삼성전자주식회사 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치
FR2867325A1 (fr) 2004-03-02 2005-09-09 St Microelectronics Sa Dispositif de protection contre l'injection d'erreur dans un bloc logique asynchrone d'un module logique elementaire
EP1578053A1 (en) 2004-03-18 2005-09-21 STMicroelectronics Limited Data obfuscation
DE602005009439D1 (de) * 2004-07-06 2008-10-16 Proton World Int Nv Stromverschlüsselung des Inhalts eines Speichers, welcher ausserhalb eines Prozessors angeordnet ist
US6943638B1 (en) * 2005-01-07 2005-09-13 Toppoly Optoelectronics Corp. Voltage controlled oscillator and electronic system using the same
KR100888614B1 (ko) * 2005-02-22 2009-03-17 삼성전자주식회사 보안 알고리즘 회로 및 데이터 암호화 방법
US20070019805A1 (en) * 2005-06-28 2007-01-25 Trustees Of Boston University System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
KR100613464B1 (ko) * 2005-07-06 2006-08-22 주식회사 하이닉스반도체 반도체 장치의 데이터 출력장치 및 출력방법

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707057B2 (en) 2009-03-23 2014-04-22 Fujitsu Limited Data processing apparatus and data processing method
CN102356418B (zh) * 2009-03-23 2014-12-03 富士通株式会社 数据处理装置以及数据处理方法
CN102356418A (zh) * 2009-03-23 2012-02-15 富士通株式会社 数据处理装置以及数据处理方法
CN104011709A (zh) * 2011-12-22 2014-08-27 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN104011709B (zh) * 2011-12-22 2018-06-05 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN104838617A (zh) * 2012-12-11 2015-08-12 三菱电机株式会社 整合安全装置及整合安全装置中使用的信号处理方法
CN104838617B (zh) * 2012-12-11 2018-01-02 三菱电机株式会社 整合安全装置及整合安全装置中使用的信号处理方法
US10142099B2 (en) 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
CN104871476A (zh) * 2013-01-11 2015-08-26 高通股份有限公司 用于可计算、大型、可变及安全的替换盒的方法及设备
CN104871476B (zh) * 2013-01-11 2018-05-25 高通股份有限公司 用于可计算、大型、可变及安全的替换盒的方法及设备
CN103199998A (zh) * 2013-04-17 2013-07-10 天津大学 五种数字信息的无逻辑硬加密方法组合
CN107547193A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 使替换运算免受侧信道分析的方法
CN109804596A (zh) * 2016-12-09 2019-05-24 密码研究公司 具有加掩码的输入的可编程块密码器
CN109804596B (zh) * 2016-12-09 2023-05-09 密码研究公司 具有加掩码的输入的可编程块密码器
TWI659329B (zh) * 2017-11-01 2019-05-11 瑞昱半導體股份有限公司 資料存取裝置及方法
US11132304B2 (en) 2017-11-01 2021-09-28 Realtek Semiconductor Corporation Data accessing device and method
CN112653448A (zh) * 2019-10-11 2021-04-13 意法半导体(格勒诺布尔2)公司 用于二进制标志确定的设备和方法

Also Published As

Publication number Publication date
US20070286413A1 (en) 2007-12-13
CN101086769B (zh) 2012-05-09
KR20070117172A (ko) 2007-12-12
KR100837270B1 (ko) 2008-06-11
DE102007063755B4 (de) 2014-01-09
US8332634B2 (en) 2012-12-11

Similar Documents

Publication Publication Date Title
CN101086769B (zh) 用于加密输入数据的密码系统及其操作方法
US20200195417A1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
EP2290872B1 (en) Device for generating a message authentication code for authenticating a message
Gross et al. Ascon hardware implementations and side-channel evaluation
CA3037231C (en) Cipher message with authentication instruction
US20130028412A1 (en) Method of counter-measuring against side-channel attacks
CN105406957B (zh) 保护密码设备对抗实现攻击
CN101004719A (zh) 嵌入式系统和增加嵌入式系统安全性的方法
CN106487499B (zh) Rijndael算法的保护
CN101149768A (zh) 一种专用处理器软件的加密和解密方法
CN103119888A (zh) 用于不安全环境中的块密码处理的装置和方法
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
CN113940027A (zh) 用于加速证书提供的系统和方法
GB2438972A (en) Encrypting data using an address associated with the data
WO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
KR20010048160A (ko) Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
WO2020114999A1 (en) A computation device using shared shares
Garcia et al. Wirelessly lockpicking a smart card reader
GB2468419A (en) Circuit for detecting data or address errors in a smart card
Kowkutla et al. Security standards for embedded devices and systems
Kumar et al. SHC: 8-bit Compact and Efficient S-Box Structure for Lightweight Cryptography
JPH0744375A (ja) 暗号化データ処理装置
Thompson Cryptomorphic programming: a random program concept
Rigot Útoky na white-box AES
Johnston et al. Designing to FIPS-140

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant