CN108292338B - 冻结逻辑 - Google Patents

冻结逻辑 Download PDF

Info

Publication number
CN108292338B
CN108292338B CN201680068066.1A CN201680068066A CN108292338B CN 108292338 B CN108292338 B CN 108292338B CN 201680068066 A CN201680068066 A CN 201680068066A CN 108292338 B CN108292338 B CN 108292338B
Authority
CN
China
Prior art keywords
logic gates
output
logic
subsequent
input signals
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.)
Active
Application number
CN201680068066.1A
Other languages
English (en)
Other versions
CN108292338A (zh
Inventor
M·赫特
M·贝克
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.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
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 Cryptography Research Inc filed Critical Cryptography Research Inc
Publication of CN108292338A publication Critical patent/CN108292338A/zh
Application granted granted Critical
Publication of CN108292338B publication Critical patent/CN108292338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31703Comparison aspects, e.g. signature analysis, comparators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31721Power aspects, e.g. power supplies for test circuits, power saving during test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]

Abstract

多个第一逻辑门和多个第二逻辑门可以与对称配置相关联。可以通过多个第一逻辑门基于输入信号的第一部分生成处于第一值的第一输出。可以通过多个第二逻辑门基于输入信号的第二部分生成处于第一值的第二输出。可以通过该多个第一逻辑门基于多个第二输入信号的第一部分生成处于特定值的后续第一输出,并且可以通过多个第二逻辑门基于多个第二输入信号的第二部分生成后续第二输出。后续第二输出的值可以与后续第一输出的特定值互补。

Description

冻结逻辑
附图说明
将从以下给出的详细描述以及本公开的各个实施方式的附图中更加完整地理解本公开。
图1示出了根据一些实施例的冻结逻辑(freeze logic)的示例性设备。
图2示出了根据本公开一些实施例的设备的示例性冻结逻辑。
图3是根据本公开一些实施例的利用冻结逻辑的双轨生成输出信号的示例性方法的流程图。
图4示出了根据一些实施例的冻结逻辑的示例性实施方式。
图5A示出了根据一些实施例的基于异或(XOR)门功能的冻结逻辑的示例性实施方式。
图5B示出了根据一些实施例的与基于XOR门功能的冻结逻辑的示例性实施方式的操作对应的真值表。
图6A示出了根据一些实施例的基于与非(NAND)门功能的冻结逻辑的另一示例性实施方式。
图6B示出了根据一些实施例的与基于NAND门功能的冻结逻辑的示例性实施方式的操作对应的真值表。
图7示出了根据本公开一些实施例的基于NAND门功能的冻结逻辑的另一示例性实施方式。
图8示出了本公开的一些实施例可操作的计算机系统的实施例的框图。
具体实施方式
本公开的多个方面的目的在于提供设备的冻结逻辑。设备的操作可以使得设备易受侧通道攻击。侧通道攻击包括但不限于差分功率分析(DPA)(其中,试图从设备获取信息的攻击者可研究设备的电路的功耗)或者电磁(EM)分析(其中,攻击者可通过研究来自设备的电磁辐射来从设备获取信息)。例如,电路可以包括可用于生成密钥或其他秘密信息的加密硬件电路。攻击者可以是未授权实体,其可以通过在执行生成密钥或其他秘密信息的操作的时间段内分析加密硬件电路的功耗测量值来从加密硬件电路中获得密钥或其他秘密信息。
设备的电路的功率毛刺(glitch)会使得设备的电路易受到DPA攻击。毛刺可以表示设备电路的组合逻辑中的假性(spurious)转换。例如,组合逻辑的部件或逻辑门可以在输出信号维持在预期值之前输出不期望的转换。如果组合逻辑的部件或逻辑门用于接收两个输入信号并且基于这两个输入信号提供输出信号,当部件或逻辑门在接收到两个输入信号中的一个但是还没有接收到两个输入信号中的另一个之后提供输出时,输出信号可认为是毛刺。
冻结逻辑可在设备的电路中用于防止毛刺,使得电路不太容易受到DPA攻击。例如,可使用冻结逻辑,使得电路的组合逻辑的部件或逻辑门可以不提供输出,直到已经接收到部件或逻辑门的所有输入。因此,不会通过部件或逻辑门输出假性转换,因为输出不会被提供,直至接收到每个输入信号。
此外,冻结逻辑可对应于双轨冻结逻辑,其可以包括差分逻辑。例如,双轨冻结逻辑可以包括可称为“真网络”的第一冻结逻辑部分和可称为“假网络”的第二冻结逻辑部分。真网络的输入可以与假网络的输入互补。双轨或者包括具有互补输入的逻辑可进一步通过均衡电路的功耗来降低电路对DPA攻击的易感性。
冻结逻辑可使用对称或平衡逻辑单元来实施。例如,相同的单元类型可用于生成真和假输出信号。针对逻辑单元的对称和平衡输入可减少由不同信号到达时间所引起的侧通道泄露。因此,冻结逻辑降低了逻辑门的早期评价的效果。
在一些实施例中,双轨冻结逻辑可使用预充电和评价阶段(pre-charge andevaluation phase)。例如,预充电阶段可以为冻结逻辑提供输入,使得冻结逻辑的输出或者双轨冻结逻辑的每个冻结逻辑的输出可以处于零或一的值(例如,所有输出均为零或一)。在预充电阶段之后,评价阶段可以开始于接收冻结逻辑的输入信号。
如此,本公开的多个方面通过减少设备电路对DPA攻击的易感性而为设备提供了更高的安全性。例如,具有预充电和评价阶段的双轨冻结逻辑的使用可以减少来自电路的部件或逻辑门的毛刺的输出。因此,通过电路生成或使用密钥或其他这种秘密信息可以更加安全,或者免于未授权实体使用DPA攻击来试图恢复密钥或秘密信息的影响。
图1示出了具有冻结逻辑110的示例性设备100。总体上,设备100可以包括执行与加密数据(例如,密钥)的生成相关联的操作的冻结逻辑110。
如图1所示,设备100可以包括冻结逻辑110,其接收输入信号105并提供一个或多个输出信号115。冻结逻辑110可以执行操作以生成加密数据。例如,冻结逻辑110可以包括双轨冻结逻辑,其中冻结逻辑不提供一个或多个输出信号115,直到通过冻结逻辑110接收到所有输入信号105为止。结合图2至图7描述关于冻结逻辑的进一步细节。
此外,输入信号105可以对应于用于冻结逻辑110的预充电阶段和评价阶段。例如,可以经由输入信号105通过冻结逻辑110接收预充电阶段,使得冻结逻辑110的部件或逻辑门提供逻辑零或逻辑一的输出。在预充电阶段之后,冻结逻辑110可经由输入信号105接收评价数据(例如,在加密数据的生成中使用的数据)。在已经通过冻结逻辑110的部件或逻辑门接收到评价数据的每一个输入信号之后,冻结逻辑110可以基于输入信号105提供一个或多个输出115。
图2示出了设备的示例性冻结逻辑环境200。总体上,冻结逻辑环境200可以包括冻结逻辑220,其对应于图1的设备100的冻结逻辑110。
如图2所示,冻结逻辑环境200可以包括输入寄存器210、冻结逻辑220和输出寄存器230。冻结逻辑220可以接收来自输入寄存器210的输入信号,并且可以向输出寄存器230提供输出信号。此外,冻结逻辑220可以通过一系列同步块来概念化或表示,或者逻辑门或表示与信号同步相关联的功能的其他这种电路的组来概念化或表示。例如,冻结逻辑220可以包括第一同步块221、第二同步块222和第三同步块223。每个同步块221、222和223可以接收两个或更多个输入信号,并且可以在每个输入信号都已经被同步块接收到时基于接收到的两个或更多个输入信号提供一个或多个输出信号。结合图3至图8描述关于同步块的操作和实施方式的进一步细节。
图3是利用冻结逻辑的双轨生成输出信号的示例性方法300的流程图。总体上,方法300可以通过处理逻辑来执行,处理逻辑可包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或者它们的组合。在一些实施例中,可以通过图1或图2的冻结逻辑110或220来执行方法300。
如图3所示,方法300可以开始于处理逻辑接收冻结逻辑的预充电输入信号(框310)。例如,可以接收输入信号,其中输入信号的组合产生冻结逻辑的预充电状态(例如,零或一的输出)。在一些实施例中,预充电输入信号可以对应于在预充电阶段期间接收的输入信号,其对于冻结逻辑中的每个同步块产生零或一的输出。在同一或备选实施例中,预充电阶段可对应于输入信号被设置为逻辑零或一,和/或使得第一冻结逻辑部分和第二冻结逻辑部分(其输入与第一冻结逻辑部分互补)的输出信号为逻辑零或逻辑一的输入信号的组合。例如,响应于接收到预充电阶段的输入信号,每个冻结逻辑部分的输出都可以是逻辑零或逻辑一。处理逻辑可随后接收评价输入信号来作为冻结逻辑的对称输入(框320)。如下面进一步详细描述的,对称输入可以对应于每一个同步块处的每个信号的相同负载。评价输入信号可对应于与加密操作相关联的信号(例如,使用密钥的用于加密的输入数据)。在一些实施例中,可以在第一时钟循环处接收预充电输入信号,并且可以在随后的第二时钟循环处接收评价输入信号。在另一实施例中,可以在时钟信号的上升沿处接收预充电输入信号,并且在时钟信号的下降沿处接收评价输入信号。因此,时钟信号的负边缘可用于执行评价阶段。在同一或备选实施例中,可以使用自定时预充电,其中预充电阶段可开始于时钟信号的上升沿,并且可以在由缓冲器引起的延迟之后接收用于评价阶段的评价输入信号。
参照图3,处理逻辑可进一步确定是否所有评价输入信号已经被冻结逻辑接收(框330)。例如,可以进行关于是否已经接收到同步块的每一个评价输入信号的确定。如果还没有接收到所有的评价输入信号,则处理逻辑可以等待其他评价输入信号(框340)。例如,如果还没有接收到每一个评价输入信号,则同步块可以不基于当前的评价输入信号提供输出信号。如果处理逻辑确定接收到同步块的每一个评价输入信号,则处理逻辑可以经由冻结逻辑的双轨生成输出信号和互补输出信号(框350)。例如,冻结逻辑的第一冻结逻辑部分可以提供第一输出(例如,逻辑值“1”),并且同一冻结逻辑的第二冻结逻辑部分可以提供互补第二输出(例如,逻辑值“0”)。因此,响应于接收到每个评价输入信号,冻结逻辑的同步块可以提供处于互补值的第一和第二输出信号。随后,处理逻辑可以接收冻结逻辑的预充电输入信号(框360)。例如,可以在接收到评价输入信号之后执行另一预充电阶段。
图4示出了冻结逻辑400的示例性实施方式。一般地,可以通过同步块来表示冻结逻辑400的实施方式。冻结逻辑400可以对应于图1或图2的冻结逻辑110或220。
如图4所示,冻结逻辑400可以包括第一同步块420和作为第一同步块420的互补的第二同步块430。例如,第一同步块420可以是冻结逻辑400的第一部分,并且第二同步块430可以是冻结逻辑400的第二部分,其与第一同步块420是互补的。用于同步块420和430中的每一个的输入信号可以是对称的。例如,可以通过每个同步块420和430接收信号a和互补信号
Figure BDA0001667750330000061
因此,冻结逻辑的每个输入信号可以具有对称负载(例如,每个输入信号被相同的部件、逻辑门或同步块接收)。例如,每个输入信号可对应于相同数量的负载(例如,被相同数量的负载或部件接收)。此外,同步块420和430可以接收基于信号a和互补信号
Figure BDA0001667750330000062
以及信号b和互补信号
Figure BDA0001667750330000063
的组合的两位使能信号。第一同步块420可以提供输出信号c,并且第二同步块430可以提供互补输出信号
Figure BDA0001667750330000064
冻结逻辑400的实施方式可以基于异或(XOR)门、与非(NAND)门、现场可编程门阵列(FPGA)的查找表(LUT)或者结合图5A至图7面描述的其他这种逻辑门或部件。
如此,冻结逻辑400逻辑地对应于具有两位输入选择信号的两个多路复用器,其中两位输入选择信号基于输入信号b及其互补输入信号
Figure BDA0001667750330000065
以及输入信号a及其互补信号
Figure BDA0001667750330000066
图5A示出了基于异或(XOR)门功能的冻结逻辑500的示例性实施方式。总体上,冻结逻辑500可以对应于图1、图2或图4的冻结逻辑110、220或400。
如图5A所示,冻结逻辑500可以包括第一部分510以及作为第一部分510的互补逻辑的第二部分520。第一部分510可以接收输入信号a及其互补输入信号
Figure BDA0001667750330000067
以及输入信号b及其互补输入信号
Figure BDA0001667750330000068
冻结逻辑的第一部分510可以包括AND门和OR门。例如,可以通过AND门接收输入,并且AND门的输出可以是OR门的输入。OR门的输出可以是输出信号c。类似地,第二部分520可以与第一部分510互补,使得OR门的输出可以是互补输出信号
Figure BDA0001667750330000069
类似于第一部分510,第二部分520的输入可以被AND门接收,并且OR门的输入可以是AND门的输出。
第一部分510可以包括第一逻辑层级,其包括两个AND门,其中第一AND门接收输入信号a和互补输入信号
Figure BDA00016677503300000610
并且第二AND门接收互补输入信号
Figure BDA00016677503300000611
和输入信号b。可以通过OR门接收第一和第二AND门中的每一个的输出。第一部分510的OR门的输出可以是输出信号c。此外,第二部分520可以包括第一逻辑层级,其包括两个AND门,其中第一AND门接收输入信号a和输入信号b,并且第二AND门接收互补输入信号
Figure BDA0001667750330000071
和互补输入信号
Figure BDA0001667750330000072
第一和第二AND门中的每一个的输出被第二部分510的OR门输出,该OR门提供互补输出信号
Figure BDA0001667750330000073
如图所示,冻结逻辑可以被对称地设计,使得第一部分510和第二部分520均包括相同部件或数量和类型的逻辑门。例如,在冻结逻辑500中,第一部分510和第二部分520中的每一个可以包括两个AND门和一个OR门。因此,第一部分510和第二部分520可以具有逻辑门的对称配置。此外,冻结逻辑500可以提供与零或者如前所述的预充电阶段期间的值相对应的预充电输出信号。
此外,冻结逻辑的输入可以是对称的。例如,第一部分510和第二部分520在第一和第二部分510和520的不同输入处接收相同的输入信号。例如,第一部分510可以接收输入信号a及其互补输入信号
Figure BDA0001667750330000074
输入信号b及其互补输入信号
Figure BDA0001667750330000075
第二部分520可以接收相同的输入信号,但是可以不同的顺序接收输入信号(例如,第一逻辑层级中的AND门以不同的顺序接收输入信号)。关于冻结逻辑的输入的对称可以通过在各个门输入处防止不同的信号到达时间来提供对DPA攻击的抵抗。在操作中,冻结逻辑500可以基于图5B所示的真值表生成输出信号c及其互补信号
Figure BDA0001667750330000076
在与提供逻辑零的输出的预充电阶段相对应的一些实施例中,真值表的第一、第二、第三、第五和第九行表示预充电状态,第四、第八和第十一至第十六行可表示冻结逻辑的无效状态,并且第六、第七、第十和第十一行可表示冻结逻辑的有效状态。
图6A示出了根据一些实施例的基于与非(NAND)门功能的冻结逻辑的另一示例性实施方式。总体上,冻结逻辑600可以对应于图1、图2或图4的冻结逻辑110、220或400。
如图6A所示,冻结逻辑600可以包括第一部分610以及作为第一部分610的互补的第二部分620。第一部分610可以接收输入信号a及其互补输入信号
Figure BDA0001667750330000077
以及输入信号b及其互补输入信号
Figure BDA0001667750330000078
冻结逻辑的第一部分610可进一步包括AND门和OR门。例如,可以通过三个AND门来接收输入,并且三个AND门的输出可以是OR门的输入。OR门的输出可以是输出信号c。类似地,第二部分620可以是第一部分610的互补,使得OR门的输出可以是互补输出信号
Figure BDA0001667750330000081
类似于第一部分610,第二部分620的输入可以被三个AND门接收,并且OR门的输入可以是三个AND门的输出。
第一部分610可以包括第一逻辑层级,其包括三个AND门,其中第一AND门接收输入信号a和互补输入信号
Figure BDA0001667750330000082
第二AND门接收互补输入信号
Figure BDA0001667750330000083
和输入信号b,并且第三AND门接收互补输入信号
Figure BDA0001667750330000084
和互补输入信号
Figure BDA0001667750330000085
第一、第二和第三AND门中的每一个的输出被OR门接收。第一部分610的OR门的输出可以是输出信号c。此外,第二部分620可以包括第一层级,其包括三个AND门,其中第一AND门接收输入信号a和输入信号b,第二AND门接收输入信号a和互补输入信号
Figure BDA0001667750330000086
并且第三AND门接收输入信号b和互补输入信号
Figure BDA0001667750330000087
第一、第二和第三AND门的每一个的输出被第二部分610的OR门接收,该OR门提供互补输出信号
Figure BDA0001667750330000088
此外,冻结逻辑600可以被对称设计,使得第一部分610和第二部分620均包括相同部件或数量的逻辑门。例如,在冻结逻辑600中,第一部分610和第二部分620中的每一个都包括三个AND门和一个OR门。此外,冻结逻辑的输入可以认为是对称的,因为输入信号a及其互补输入信号
Figure BDA0001667750330000089
以及输入信号b及其互补输入信号
Figure BDA00016677503300000810
与用于第一部分610和第二部分620中的每一个的相同数量的负载相关联。例如,输入信号a及其互补输入信号被来自第一部分610的三个AND门和来自第二部分620的三个AND门接收,并且输入信号b及其互补输入信号被来自第一部分610和第二部分620中的每一个的三个AND门接收。
在操作中,冻结逻辑600可以基于图6B所示的真值表生成输出信号c和互补输出信号
Figure BDA00016677503300000811
此外,冻结逻辑600可以在前述预充电阶段期间生成预充电输出信号(例如,一或零)。
图7示出了基于NAND门功能的冻结逻辑700的另一示例性实施方式。总体上,冻结逻辑700可以对应于图1、图2或图4的冻结逻辑110、220或400。
如图7所示,冻结逻辑700可以包括两个AND门和NOR门的组710、720、730和740,其中每个组的输出去往NAND门。例如,组710和720的输出是NAND门725的输入,并且组730和740的输出是用于NAND门745的输入。冻结逻辑700可进一步对称地设计,并且用于每个输入信号的负载可以是相同的。例如,输入信号a和
Figure BDA0001667750330000091
以及b和
Figure BDA0001667750330000092
均与冻结逻辑700中的四个负载相关联。
在一些实施例中,冻结逻辑可以使用现场可编程门阵列(FPGA)的查找表(LUT)来实施。例如,冻结逻辑可以基于FPGA的片(例如,资源的逻辑分组)。冻结逻辑可以通过FPGA的片的第一LUT和第二LUT来实施。在一些实施例中,第一LUT可以执行第一操作以生成输出信号c,并且第二LUT 820执行第二操作以生成互补输出信号
Figure BDA0001667750330000093
在一些实施例中,第一LUT和第二LUT中的每一个可以对应于四个输入LUT。在备选实施例中,可以使用两个输出LUT,其中逻辑被分裂为两个五输入LUT,并且两个输出LUT的片的多路复用器保持静态。第一LTU和第二LUT以及用于实施冻结逻辑的其他这种部件可以逻辑地成组,以便减小或避免针对冻结逻辑的输入信号到达时间的差。
图8示出了计算机系统800的示例性机器,其中可以执行用于使机器执行本文讨论的任何一种或多种方法的指令的集合。在备选实施方式中,机器可以连接(例如,联网)至LAN、内联网、外联网和/或因特网中的其他机器。机器可以在客户机-服务器网络环境中的服务器或客户机的能力中进行操作,作为对等(或分布式)网络环境中的对等机器或者作为云计算架构或环境中的服务器或客户机。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、环球网设备、服务器、网络路由器、开关或桥、或者能够执行指定被该机器采取的动作的指令集(序列或其他)的任何机器。此外,虽然示出了单个机器,但术语“机器”还应该包括机器的任何集合,它们单独地或联合地执行指令的集合(或多个集合)以执行本文讨论的任何一种或多种方法。
示例性计算机系统800包括处理设备802、主存储器804(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或拉姆巴斯DRAM(RDRAM)等))、静态存储器806(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备818,它们经由总线830相互通信。
处理设备802表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或者实施其他指令集的处理器或实施指令集的组合的处理器。处理设备802还可以是一个或多个特殊目的处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备802被配置为执行用于执行本文讨论的操作和步骤的指令826。
计算机系统800可进一步包括网络接口设备808,以在网络820上进行通信。计算机系统800还可以包括视频显示单元810(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备812(例如,键盘)、光标控制设备814(例如,鼠标)、图形处理单元822、信号生成设备816(例如,扬声器)、视频处理单元828以及音频处理单元832。
数据存储设备818可包括机器可读存储介质824(还已知为计算机可读介质),其上存储有指令的一个或多个集合或者实施本文所述的任何一种或多种方法或功能的软件826。指令826还可以在其被计算机系统800执行期间完全或至少部分地驻留在主存储器804内和/或处理设备802内,主存储器804和处理设备802还组成机器可读存储介质。
在一个实施方式中,指令826包括实施与冻结逻辑(例如,图1、图2或图4的冻结逻辑110、220或400)对应的功能的指令。虽然机器可读存储介质824在示例性实施方式中被示为单个介质,但术语“机器可读存储介质”应该认为包括存储一个或多个指令集的单个介质或多个介质(例如,中央或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应该认为包括能够存储或编码被机器执行并且使机器执行本公开的任何一种或多种方法的指令集的任何介质。术语“机器可读存储介质”应该相应地认为包括但不限于固态存储器、光学介质和磁性介质。
已经根据计算机存储器内的数据位的操作的算法和符号表示呈现了之前的详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于最有效地向其他技术人员传达他们的工作内容的方式。算法在这里被总体上设想为产生期望结果的操作的前后一致的序列。操作是要求物理量的物理操纵的操作。通常,尽管不是必须的但这些量采用能够被存储、组合、比较和以其他方式被处理的电或磁信号的形式。主要出于通用的原因,已经证明有时方便将这些信号表示为位、值、元素、符号、字符、术语、数字等。
然而,应理解,所有这些以及类似术语与适当的物理量相关联,并且仅仅是应用于这些量的方便符号。除非另有指定,从上面的讨论中理解,在整个说明书中,利用诸如“识别”或“确定”或“执行”或“进行”或“收集”或“创建”或“发送”等的术语的讨论表示计算机系统或类似电计算设备的动作和处理,其处理表示为计算机系统的寄存器和存储器内的物理(电)量的数据并将其转换为类似表示为计算机系统存储器或寄存器或其他这种信息存储设备内的物理量的其他数据。
本公开还涉及用于执行本文操作的装置。该装置可以特别地构造用于预期的目的,或者其可以包括被存储在计算机中的计算机程序选择性激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光学卡、或者任何类型的适合用于存储电指令的介质,它们均耦合至计算机系统总线。
本文呈现的算法和显示不固有地与任何特定的计算机或其他装置相关。各种通用系统可根据本文的教导使用程序,或者其可以构造更专用的装置来执行该方法。用于各种这些系统的结构将表现为以下描述中所阐述的。此外,不参照任何特定的编程语言来描述本公开。将理解,各种编程语言可用于实施本文描述的本公开的教导。
本公开可以设置为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,其可用于根据本公开对计算机系统(或者其他电设备)进行编程以执行处理。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等。
在前面的公开中,参照具体的示例性实施方式描述了本公开的实施方式。将明白,在不背离以下权利要求中阐述的本公开的实施方式的精神和范围的情况下可以进行各种修改。因此,本公开和附图认为是说明性的而非限制性的。

Claims (17)

1.一种用于生成输出信号的方法,包括:
在多个第一逻辑门和多个第二逻辑门处接收多个第一输入信号,其中所述多个第一逻辑门和所述多个第二逻辑门与对称配置相关联;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第一输入信号的第一部分生成处于第一值的第一输出;
通过所述多个第二逻辑门,基于所述多个第一输入信号的第二部分生成处于所述第一值的第二输出;
在所述多个第一输入信号之后,在所述多个第一逻辑门和所述多个第二逻辑门处接收多个第二输入信号;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第二输入信号的第一部分生成处于特定值的后续第一输出;以及
通过所述多个第二逻辑门,基于被所述多个第二逻辑门接收的所述多个第二输入信号的第二部分生成后续第二输出,其中所述后续第二输出的值与所述后续第一输出的所述特定值互补,
其中所述多个第一输入信号在第一时间处被接收并且对应于预充电值为零或一的所述第一输出和所述第二输出,并且其中所述多个第二输入信号在所述第一时间之后的第二时间处被接收,并且对应于所述后续第一输出或所述后续第二输出中的值为一的一个以及所述后续第一输出或所述后续第二输出中的值为零的另一个。
2.根据权利要求1所述的方法,其中所述多个第一逻辑门和所述多个第二逻辑门的输入信号对应于对称输入。
3.根据权利要求2所述的方法,其中所述对称输入对应于被与所述多个第一逻辑门和所述多个第二逻辑门相关联的相同数量的负载接收的每个输入信号。
4.根据权利要求1所述的方法,其中所述多个第一逻辑门和所述多个第二逻辑门与所述对称配置相关联,使得所述多个第一逻辑门和所述多个第二逻辑门中的每一个均包括相同数量的逻辑门和相同类型的逻辑门。
5.根据权利要求1所述的方法,其中所述多个第一逻辑门和所述多个第二逻辑门的配置对应于:当通过所述多个第一逻辑门和所述多个第二逻辑门分别接收每个输入信号时,生成所述后续第一输出和所述后续第二输出。
6.根据权利要求1所述的方法,其中所述多个第一逻辑门和所述多个第二逻辑门的第一层级包括两个输入逻辑门。
7.一种用于生成输出信号的系统,包括:
存储器;以及
处理设备,操作性地与所述存储器耦合,以进行如下操作:
在多个第一逻辑门和多个第二逻辑门处接收多个第一输入信号,其中所述多个第一逻辑门和所述多个第二逻辑门与对称配置相关联;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第一输入信号的第一部分生成处于第一值的第一输出;
通过所述多个第二逻辑门,基于所述多个第一输入信号的第二部分生成处于所述第一值的第二输出;
在所述多个第一输入信号之后,在所述多个第一逻辑门和所述多个第二逻辑门处接收多个第二输入信号;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第二输入信号的第一部分生成处于特定值的后续第一输出;以及
通过所述多个第二逻辑门,基于被所述多个第二逻辑门接收的所述多个第二输入信号的第二部分生成后续第二输出,其中所述后续第二输出的值与所述后续第一输出的所述特定值互补,
其中所述多个第一输入信号在第一时间处被接收并且对应于预充电值为零或一的所述第一输出和所述第二输出,并且其中所述多个第二输入信号在所述第一时间之后的第二时间处被接收,并且对应于所述后续第一输出或所述后续第二输出中的值为一的一个以及所述后续第一输出或所述后续第二输出中的值为零的另一个。
8.根据权利要求7所述的系统,其中所述多个第一逻辑门和所述多个第二逻辑门的输入信号对应于对称输入。
9.根据权利要求8所述的系统,其中所述对称输入对应于被与所述多个第一逻辑门和所述多个第二逻辑门相关联的相同数量的负载接收的每个输入信号。
10.根据权利要求7所述的系统,其中所述多个第一逻辑门和所述多个第二逻辑门与所述对称配置相关联,使得所述多个第一逻辑门和所述多个第二逻辑门中的每一个均包括相同数量的逻辑门和相同类型的逻辑门。
11.根据权利要求7所述的系统,其中所述多个第一逻辑门和所述多个第二逻辑门的配置对应于:当通过所述多个第一逻辑门和所述多个第二逻辑门分别接收每个输入信号时,生成所述后续第一输出和所述后续第二输出。
12.根据权利要求7所述的系统,其中所述多个第一逻辑门和所述多个第二逻辑门的第一层级包括AND逻辑门。
13.一种用于生成输出信号的电路,包括:
第一寄存器;
第二寄存器;以及
多个第一逻辑门和多个第二逻辑门,耦合在所述第一寄存器和所述第二寄存器之间,以进行如下操作:
在多个第一逻辑门和多个第二逻辑门处接收多个第一输入信号,其中所述多个第一逻辑门和所述多个第二逻辑门与对称配置相关联;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第一输入信号的第一部分生成处于第一值的第一输出;
通过所述多个第二逻辑门,基于所述多个第一输入信号的第二部分生成处于所述第一值的第二输出;
在所述多个第一输入信号之后,在所述多个第一逻辑门和所述多个第二逻辑门处接收多个第二输入信号;
通过所述多个第一逻辑门,基于被所述多个第一逻辑门接收的所述多个第二输入信号的第一部分生成处于特定值的后续第一输出;以及
通过所述多个第二逻辑门,基于被所述多个第二逻辑门接收的所述多个第二输入信号的第二部分生成后续第二输出,其中所述后续第二输出的值与所述后续第一输出的所述特定值互补,
所述多个第一输入信号在第一时间处被接收并且对应于值为零的所述第一输出和所述第二输出,并且其中所述多个第二输入信号在所述第一时间之后的第二时间处被接收,并且对应于所述后续第一输出或所述后续第二输出中的值为一的一个以及所述后续第一输出或所述后续第二输出中的值为零的另一个。
14.根据权利要求13所述的电路,其中所述多个第一逻辑门和所述多个第二逻辑门的输入信号对应于对称输入。
15.根据权利要求14所述的电路,其中所述对称输入对应于被与所述多个第一逻辑门和所述多个第二逻辑门相关联的相同数量的负载接收的每个输入信号。
16.根据权利要求13所述的电路,其中所述多个第一逻辑门和所述多个第二逻辑门与所述对称配置相关联,使得所述多个第一逻辑门和所述多个第二逻辑门中的每一个均包括相同数量的逻辑门和相同类型的逻辑门。
17.根据权利要求13所述的电路,其中生成所述后续第一输出和所述后续第二输出与对于对应于差分功率分析(DPA)攻击或电磁(EM)分析的侧通道攻击的易受性的减少相关联。
CN201680068066.1A 2015-12-02 2016-12-01 冻结逻辑 Active CN108292338B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562262255P 2015-12-02 2015-12-02
US62/262,255 2015-12-02
PCT/US2016/064450 WO2017096059A1 (en) 2015-12-02 2016-12-01 Freeze logic

Publications (2)

Publication Number Publication Date
CN108292338A CN108292338A (zh) 2018-07-17
CN108292338B true CN108292338B (zh) 2021-12-31

Family

ID=58797711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680068066.1A Active CN108292338B (zh) 2015-12-02 2016-12-01 冻结逻辑

Country Status (4)

Country Link
US (2) US10712385B2 (zh)
EP (1) EP3384422B1 (zh)
CN (1) CN108292338B (zh)
WO (1) WO2017096059A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10164768B1 (en) 2018-02-23 2018-12-25 Qualcomm Incorporated Method and apparatus for differential power analysis (DPA) resilience security in cryptography processors
WO2020206028A1 (en) * 2019-04-02 2020-10-08 Cryptography Research, Inc. Functions with a pre-charge operation and an evaluation operation
CN110119640B (zh) * 2019-05-22 2020-12-11 北京智芯微电子科技有限公司 双轨预充电逻辑单元及其预充电方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101713991A (zh) * 2009-11-13 2010-05-26 江南大学 嵌入式机器视觉智能终端
CN101980281A (zh) * 2010-09-30 2011-02-23 深圳市理邦精密仪器股份有限公司 一种超声图像放大方法及放大系统
CN102239524A (zh) * 2008-10-28 2011-11-09 美光科技公司 逻辑单元操作
CN102292777A (zh) * 2009-02-02 2011-12-21 高通股份有限公司 减少存储器装置中的泄漏电流
CN103324878A (zh) * 2013-07-16 2013-09-25 李凯 远程控制手持设备的开锁权限
CN104166421A (zh) * 2014-08-13 2014-11-26 中航(重庆)微电子有限公司 带隙基准源调整电路
US8904192B2 (en) * 2008-03-25 2014-12-02 Institut Telecom-Telecom Paris Tech Method for protecting a programmable cryptography circuit, and circuit protected by said method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09270677A (ja) * 1995-09-05 1997-10-14 Mitsubishi Electric Corp フリップフロップ回路及びスキャンパス並びに記憶回路
US6081136A (en) * 1997-12-19 2000-06-27 Advanced Micro Devices, Inc. Dynamic NOR gates for NAND decode
US6510518B1 (en) 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems
US6172530B1 (en) * 1999-06-18 2001-01-09 Arm Limited Decoder for generating N output signals from two or more precharged input signals
US6531897B1 (en) * 2000-06-30 2003-03-11 Intel Corporation Global clock self-timed circuit with self-terminating precharge for high frequency applications
US6526542B2 (en) 2001-05-07 2003-02-25 Theseus Logic, Inc. Multi-rail asynchronous flow with completion detection and system and method for designing the same
DE10344647B3 (de) 2003-09-25 2005-02-17 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
WO2005081085A2 (en) * 2004-02-13 2005-09-01 The Regents Of The University Of California Logic system for dpa and/or side channel attack resistance
US7249339B1 (en) 2004-08-16 2007-07-24 Altera Corporation Method and apparatus for optimizing delay paths through field programmable gate arrays
US7116131B1 (en) * 2004-09-15 2006-10-03 Xilinx, Inc. High performance programmable logic devices utilizing dynamic circuitry
FR2885461B1 (fr) * 2005-05-04 2007-07-27 France Etat Dispositif formant porte logique adaptee pour minimisee les differences de comportement electrique ou electromagnetique dans un circuit integre manipulant un secret
US7881465B2 (en) 2005-08-08 2011-02-01 Infineon Technologies Ag Circuit and method for calculating a logic combination of two encrypted input operands
US7236010B1 (en) * 2005-08-30 2007-06-26 Altera Corporation Reduced area freeze logic for programmable logic blocks
JP5589083B2 (ja) * 2009-10-14 2014-09-10 ケイオロジクス インク 利用度の高い可変回路トポロジーを有する汎用論理アレー及び定出力の様々な論理ゲートを実現するロジスティク写像回路
KR101646705B1 (ko) * 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
GB2479871A (en) 2010-04-26 2011-11-02 David Coyne System for preventing side channel attacks on a synchronous logic device.
US8395408B2 (en) * 2010-10-29 2013-03-12 Regents Of The University Of California Homogeneous dual-rail logic for DPA attack resistive secure circuit design
CN102230379B (zh) * 2011-04-13 2013-04-24 中煤邯郸特殊凿井有限公司 冻结器盐水流量检测装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904192B2 (en) * 2008-03-25 2014-12-02 Institut Telecom-Telecom Paris Tech Method for protecting a programmable cryptography circuit, and circuit protected by said method
CN102239524A (zh) * 2008-10-28 2011-11-09 美光科技公司 逻辑单元操作
CN102292777A (zh) * 2009-02-02 2011-12-21 高通股份有限公司 减少存储器装置中的泄漏电流
CN101713991A (zh) * 2009-11-13 2010-05-26 江南大学 嵌入式机器视觉智能终端
CN101980281A (zh) * 2010-09-30 2011-02-23 深圳市理邦精密仪器股份有限公司 一种超声图像放大方法及放大系统
CN103324878A (zh) * 2013-07-16 2013-09-25 李凯 远程控制手持设备的开锁权限
CN104166421A (zh) * 2014-08-13 2014-11-26 中航(重庆)微电子有限公司 带隙基准源调整电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
抗差分电磁分析逻辑电路研究;常小龙 等;《计算机工程》;20110430;第37卷(第8期);第130-131,134页 *

Also Published As

Publication number Publication date
US11353504B2 (en) 2022-06-07
US20180356464A1 (en) 2018-12-13
EP3384422B1 (en) 2021-02-24
US20200393510A1 (en) 2020-12-17
WO2017096059A1 (en) 2017-06-08
EP3384422A1 (en) 2018-10-10
CN108292338A (zh) 2018-07-17
EP3384422A4 (en) 2019-06-26
US10712385B2 (en) 2020-07-14

Similar Documents

Publication Publication Date Title
US11353504B2 (en) Freeze logic
US11620109B2 (en) Converting a boolean masked value to an arithmetically masked value for cryptographic operations
US11018849B2 (en) Hardware masked substitution box for the data encryption standard
US11228422B2 (en) Configuring a device based on a DPA countermeasure
US20160277179A1 (en) Multiplicative blinding for cryptographic operations
Thuy et al. A fast approach for bitcoin blockchain cryptocurrency mining system
US9563729B2 (en) Signal transition analysis of a circuit
KR101542280B1 (ko) 프로그래머블 암호화 회로를 보호하는 방법, 및 그 방법에 의해 보호된 회로
US11757617B2 (en) Performing cryptographic data processing operations in a manner resistant to external monitoring attacks
US20090323958A1 (en) Extending a secret bit string to safeguard the secret
US20170257210A1 (en) Exponent splitting for cryptographic operations
Jamadagni et al. An asynchronous divider implementation
US10333699B1 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
Cilardo Modular inversion based on digit‐level speculative addition
US20220191004A1 (en) Functions with a pre-charge operation and an evaluation operation
US9590633B2 (en) Carry-skip one-bit full adder and FPGA device
US20220060315A1 (en) Sign-based partial reduction of modular operations in arithmetic logic units
Liu et al. A low-overhead and high-reliability physical unclonable function (PUF) for cryptography
Maurya et al. FPGA Implementation of a Fast Scalar Point Multiplier for an Elliptic Curve Crypto-Processor
López-Valdivieso et al. Design and implementation of hardware-software architecture based on hashes for SPHINCS+
Paul et al. Fault Detection for RC4 Algorithm and its Implementation on FPGA Platform
Pan et al. A Novel Hardware/software Co-design for An Efficient RSA System
Yang et al. A Hardware Trojan Detection Technique Based on Rapid Trigger and Reducing Resource Consumption
Gokulashree et al. FPGA-based evaluation of power analysis attacks and its countermeasures on Asynchronous S-Box

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
GR01 Patent grant
GR01 Patent grant