CN1894913A - 在集成电路中用于可变处理周期的方法及装置 - Google Patents

在集成电路中用于可变处理周期的方法及装置 Download PDF

Info

Publication number
CN1894913A
CN1894913A CNA200480030732XA CN200480030732A CN1894913A CN 1894913 A CN1894913 A CN 1894913A CN A200480030732X A CNA200480030732X A CN A200480030732XA CN 200480030732 A CN200480030732 A CN 200480030732A CN 1894913 A CN1894913 A CN 1894913A
Authority
CN
China
Prior art keywords
input
circuit
time period
processing time
output
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
Application number
CNA200480030732XA
Other languages
English (en)
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Publication of CN1894913A publication Critical patent/CN1894913A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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]
    • 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
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Electronic Switches (AREA)

Abstract

本发明为一种用于在一数字逻辑模块中修改处理周期的系统。本发明包括如下。一处理电路,其构造成用于接收一输入以产生一输出。一控制器,其耦接至所述处理电路并构造成用于追踪L次操纵,其中L为一整数。所述控制器进一步构造成用于向所述处理电路发送一选择信号并使所述处理电路在N个时钟循环内操纵所述输入。N为一整数且N小于或等于L。N在所述复数个处理时间周期内变化。一输出端口,其耦接至所述处理电路并构造成用于传送所述输出。

Description

在集成电路中用于可变处理周期的方法及装置
技术领域
本发明涉及在数字逻辑模块中修改处理周期,且更具体而言涉及在加密/解密期间减小处理周期以使电流分析更加困难。
背景技术
图1为图解说明一简化的现有技术微控制器的示意图。一微控制器通常包括一微处理器、一存储器、一提供通信的外围模块(例如通用异步接收器/发射器(UART)、SPI及USB)及一中断控制器。微控制器100包括耦接至存储器104的微处理器102。地址解码器106自存储器104及外围设备108的微处理器102接收地址并对其进行解码。地址解码器106及外围设备108在地址总线110上接收地址而地址解码器106则在存储选择112及外围设备选择114上传输选择信息。数据在数据总线116上在微处理器102、存储器104与外围设备108之间传输。一读取或一写入信号在读取/写入信号117上在微处理器102及存储器104与外围设备108之间传输。微控制器100接收时钟信号118并将信号120复位。输入122包括(例如)定时触发器及UART输入数据而输出124则包括(例如)UART发射器输出数据。中断控制器126沿中断线128自外围设备108收集并处理中断信号。
外围设备108可为功能逻辑,例如UART、密码处理、数字信号处理(DSP)及数字滤波。
图2图解说明一外围设备一一密码处理器的一实例。对于一密码处理器,如果必须对一数据缓冲器进行加密或解密,则软件将该数据缓冲器-亦称作消息一划分成若干部分。每一部分均代表能够在一处理时间周期过程中得到处理的数据。在将该部分输入至密码处理器及/或施加一启动信号时,外围设备立即开始处理该部分。在一由若干时钟循环组成的周期过后,所述处理周期结束且密码处理器提供一可由软件读回的加密/解密部分。在数据处理结束后,开始非处理时间周期并可施加一中断信号来通知微处理器该部分准备好进行读取且密码处理器准备好对一新的部分进行加密/解密。一旦将该新部分输入至密码处理器及/或施加一启动信号,该非处理时间周期即结束并开始一新的处理时间周期。软件会继续读取并写入各个部分直到数据缓冲器的末端。
当执行密码处理器所使用的算法时,因数字单元交换而引起的电流消耗在所述处理开始时增加而在处理结束时减少。电流会因在执行该算法的数字模块中组合单元(例如AND、OR、INVERT、MUX及XOR)及顺序性单元(D触发器或DFF)的运行而增加。在一非处理时间周期期间,通常,唯一的双态切换是在DFF的时钟引脚上。与处理正进行时所消耗的电流相比,此值连同一静态泄漏电流并不显著。
用户接口模块200处理例如地址、数据、读取/写入及选择信号等系统数据,以便产生算法模块202的命令及数据。算法模块202根据用户接口模块200所提供的控制命令、数据及一加密/解密密钥来执行加密/解密。外围设备108自用户接口200接收一启动信号并将数据通路组织到算法模块202中。
可将一些密码算法表示成一并置数次来得到结果的基本组合功能。例如,将一基本组合功能构建一次并连接至存储构件(DFF或其他构件)。需要一多路复用器来根据一控制器模块n值(n是为得到结果所执行的迭代次数,例如在数据加密标准(DES)中为16)选择算法功能的输入(数据输入或中间结果)。三重数据加密标准(TDES)使用三个16次迭代周期。
控制器204在启动线206上接收一启动信号。该启动信号触发一自控制器204至算法模块202中的多路复用器208的第一循环信号。多路复用器208接收第一循环信号并自输入数据线210选择输入。然后,输入数据进入组合电路212,组合电路212与一密钥及一密码相结合来操纵该输入数据。组合电路212在接收到第一循环信号及输入数据后便开始处理,从而开始所述处理周期。组合电路212将经操纵的输入数据传输至多路复用器213。在处理时间周期期间,多路复用器213自控制器204接收处理周期信号并因此自组合电路212选择数据。多路复用器213将经操纵的输入数据传输至DFF 214,然后由DFF 214将经操纵的信号发送至输出216、多路复用器208及213。对于后续迭代,不向多路复用器208传输第一循环信号,因此多路复用器208自DFF 214选择经操纵的输入数据并将其发送至组合电路214,由组合电路214再次操纵该输入数据。控制器204追踪每一次迭代并倒计数直到最后一次迭代为止。在最后一次迭代时,控制器204向组合电路212发送一指示该处理时间周期结束的最后循环信号。来自控制器204的处理周期信号触发多路复用器213自DFF 214而不是组合电路211选择输入。DFF 214接收再循环数据,此时该循环中的再循环数据即为所期望的输出数据。自控制器204传输一指示可在输出216处获得的数据为一所期望输出的中断信号,因此用户接口模块200在一中断得到施加后自输出216检索该输出数据。
在处理时间周期结束时,对控制器204进行复位并等待启动一新的序列。图3为一图解说明代表在所述处理周期期间组合电路212被激活的时序图及电流波形的曲线图。
在处理一数据缓冲器时,可将电流消耗视为一系列脉冲。此波形的低级周期代表外围模块的DFF的时钟树及时钟引脚的电流消耗。高级周期代表组合电路212的切换电流的。通过使外部数字分析设备在脉冲的上升缘上同步,可存储电流的一数字表示。可对此模型进行处理来提取算法的“密钥”值而不会通过一入侵式攻击来毁坏集成电路(处理该模型通常被称作一非入侵式攻击)。其是基于在处理不同数据时电流消耗的差异。
此外,可使用差动功率分析来对多个波形相对于彼此进行分析。通过比较在一给定处理阶段处的电流值,可提取出所述算法的其他密钥元素。
图3图解说明时钟信号300及输入数据305。输入数据305可在输入数据线210(图2)上获得并代表所划分的输入数据缓冲器的一部分。启动信号310沿启动线206传输并触发开始处理时间周期315。控制器204倒计数,在本示例中以间隔值320从15至零(对于DES)。第一循环信号325与间隔控制器320上的第一次计数一起自控制器204传输。最末循环信号330与间隔控制器320上的最后一次计数一起自控制器204传输,并指示处理时间周期315结束及非处理时间周期335开始。组合电路212在处理时间周期315期间是以切换数据来驱动,从而比在非处理时间周期335期间汲取更多的电流。
如果使用一稳定的时钟周期对数据处理的不同步骤进行排程,则可通过如电流消耗形状分析之类的非入侵式方法来探测或观测处理时间周期315。每次处理数据时,电流均增加至一有效电流范围,并随后在非处理时间周期315期间减少至一无效电流范围。
将第一波形340与第二波形345相比较。例如,可通过比较这两个波形中的电流水平来对DES的16个步骤中的第2步骤进行差动功率分析。因而,可确定一集成电路内所处理的数据。
需要一种使对电流消耗的分析更加困难的系统及方法。
发明内容
本发明由随机或伪随机地改变执行一算法的时钟循环数量组成。本发明可用于其中包含数字逻辑模块的任何电路中。本发明是在一集成电路的数字部分中进行。当在一数字模块中处理数据时,组合逻辑会工作并引起功率消耗的增加。电流的增加主要归因于单元切换一仅考虑数字逻辑。总的单元泄漏电流比该切换电流低。
所述系统及方法重塑电流消耗的形状以使电流分析更加困难。重塑电流形状是在处理时间周期期间由一附加组合电路来执行。例如,并非是在每一处理时间周期内在16个时钟循环中完成一DES算法,本发明是在16个或变少的时钟循环内完成所述DES算法。这增加了自所示算法中提取值的难度,因为每一处理周期均可具有其中执行所述算法的不同的时钟循环数量。例如,16中的第2步将在两个不同波形上处于两个不同位置处,且叠加这些波形将不会产生如图3中那么多的有用信息。
附图说明
图1为一图解说明一简化的微控制器的现有技术示意图。
图2为一图解说明一外围设备的实例的现有技术示意图。
图3为一图解说明来自图2中一外围设备的两个叠加的电流波形的现有技术时序图。
图4为一图解说明一微控制器中本发明的一实施例的示意图。
图5为一图解说明来自图4的本发明一实施例的示意图。
图6-1为一图解说明来自图5的本发明的运行的时序图。
图6-2为一图解说明来自图5的本发明的运行的时序图。
图7为一图解说明两个叠加的电流波形的时序图。
图8为一图解说明一种在一数字逻辑模块中用于一可变处理周期的方法的流程图。
图9为一图解说明一种在一数字逻辑模块中用于一可变处理周期的方法的流程图。
具体实施方式
图4为一图解说明在一数字逻辑模块或一微控制器的外围设备中本发明一实施例的示意图。处理电路400沿输入线404自用户接口402接收输入。控制器406自用户接口402沿启动线408接收一启动信号。控制器406向处理电路400传输一第一循环信号,从而开始一处理时间周期。在一处理时间周期期间,处理电路400操纵该输入以产生一所期望的输出,例如该输入的一加密或解密形式。由于该操纵(例如逻辑单元切换),处理电路400在该处理时间周期期间汲取一有效电流范围并可绘制电流在该周期内的一相应波形。
对于DES算法而言,处理通常为十六个时钟循环。本发明为一种用于改变在其中操作缓冲器的数据部分的实际时钟循环次数的方法及系统。在一实施例中,在所述操纵结束时,控制器406向处理电路400传输一最末循环信号且经操纵的输入在输出端口410处准备好作为输出。所述处理时间周期的结束即是非处理时间周期的开始。第一及最末循环信号(对于一DES算法而言,其是预先确定的)用于特殊处理,且所属领域的一般技术人员将认识到,在其他实施例中可按不同的方式定位及/或驱动这些信号,此并不影响本发明的性质。对于许多数据块而言,完成对一数据块的操纵并不需要整个处理时间周期。
在一实施例中,处理电路400包括连接至多路复用器414的组合电路412。多路复用器414自输入线404接收输入。如果多路复用器414还自控制器406接收一第一循环信号,则多路复用器414自输入线404选择输入并将其发送至组合电路412-1。组合电路412-1操纵所述输入并将经操纵的输入递送至组合电路412-2及多路复用器416。组合电路412-2自组合电路412-1接收经操纵的输入,对其进行操纵并也将其发送至多路复用器416。在该处理时间周期开始时,多路复用器416接收反映(例如)DES算法的第一及第二步骤的输入。每一操纵均可来自组合电路412-1,而在第一操纵后的每一相继操纵则可来自组合电路412-2,此视控制器406所接收的随机数输入而定。DES算法的第二步骤,或相继的每一步骤来自组合电路412-2。在一实施例中,组合电路412-1接收一第一循环信号及一最末循环信号。第一循环信号及最末循环信号在所述处理时间周期期间控制数据流且指示对一DES算法的特殊处理。在一实施例中,组合电路412-2执行与组合电路412-1相同的功能。
一选择电路或多路复用器416自组合电路412接收经操纵的输入。多路复用器416自控制器406接收一指示多路复用器416将这两个信号中的哪一个信号指引至其输出的选择信号。控制器406追踪已处理过的操纵及所产生的选择信号。控制器406根据剩余所所需操纵及一随机数输入来进一步产生选择信号。例如,如果组合电路412-及412-2分别在DES循环中的第15及第16步骤上具有经操纵的输入,则发至多路复用器416的选择信号自组合电路412-2选择经操纵的输入,且对给定数据的操纵过程即告结束。对给定数据的操纵可在所述十六轮处理算法中的第八、第九、第十、等等、一直到第十六个时钟循环处结束。结束操纵时的点取决于控制器406所接收的随机信号的组合。例如,如果控制器406接收到指示对于整个处理时间周期每一时钟循环进行1次操纵的随机信号,则在十六个时钟循环后结束操纵。在适当的时刻,控制器406可向这两个组合电路412中的任一个发送一最末循环信号,以执行DES算法所需的特殊处理。
存储电路420连接至多路复用器416并自多路复用器416接收输入。存储电路420将多路复用器416的输入指引至多路复用器414及输出端口410,直到对数据缓冲器的一部分的操纵完成为止。存储电路420自控制器406接收一指示操纵完成且存储电路420应存储最近自多路复用器416所接收数据的选择信号。存储电路420在整个非处理时间周期内保持该数据,并将其传输至输出端口410及多路复用器414。在下一处理时间周期开始时,处理信号可指示存储电路420应停止存储并转而传输其所接收的任何数据。存储电路420向输出端口410提供数据缓冲器的经操纵的部分,直至下一处理时间周期且处理电路400接收到数据缓冲器的一新的部分为止。
在一实施例中,存储电路420包括多路复用器422及DFF 424。多路复用器422自DFF 424及多路复用器416接收输入。一旦多路复用器422自控制器406接收到一有效高信号,多路复用器422就自多路复用器416选择输入并将其发送至DFF 424。DFF 424将来自多路复用器422的输入提供至输出端口410及多路复用器414。在多路复用器422接收到一处理信号以前,同一数据在多路复用器422与DFF 424之间循环。当处理电路400完成对数据缓冲器中一给定部分的操纵时,所述处理信号便无效。在非处理时间周期期间的某些时刻,可在输出端口410处获得并读取在多路复用器422与DFF 424之间循环的数据。在开始一新的处理时间周期时,处理信号使多路复用器422双态切换以自多路复用器416选择输入。
图5为一图解说明一来自图4的本发明更详细实施例的示意图。控制器406的一实施例为控制器500。控制器500为一经构造以追踪处理及在操纵每一数据缓冲器中的步骤数的电路的一实例。所属领域的技术人员将认识到,不同的电路及逻辑也可取代控制器500并执行一类似的功能。控制器500向处理电路410提供一指示一给定时钟循环中的一个或两个操纵步骤是否将完成的控制信号。
控制器500接收一复位信号并将其计数值复位,在一实例中该计数值为DES的16,因此控制器500从15倒计数至零。控制器500包括接收启动信号的多路复用器505,因此控制器500在接收到该复位及启动信号后传输一第一循环信号并将其DFF复位。在DES情况下,该启动信号使多路复用器505选择值为15的输入。将值15传输至DFF 510,然后DFF 510保存该值并将其传输至减法器515及计数器527。此外,该启动信号还使DFF 520复位并在计数器上设定一值15。在DFF 520复位时,所述处理信号指示存储电路420(参见图4)应传输其所接收的数据而不是所存储的数据。
减法器515-1从该输入中减去1,因此当接收值15时,减法器515-1输出值14。减法器515-2从该输入中减去2,因此当接收值15时,减法器515-2输出值13。
解码器525自DFF 510(通过计数器527)及解码电路530接收输入。解码器525自解码电路530接收一信号,解码器525对该信号进行解码并指示在一给定时钟循环中是处理两个还是一个步骤的操纵。解码电路530自一随机数产生器接收一随机数并在一实施例中向解码器525发送一1位信号。解码器525接收该计数值并传输(例如)计数值为15的第一循环信号。解码器525通过解码电路530接收该计数值。
根据来自解码电路530的信号,解码电路向多路复用器535及处理电路400发送一选择信号。该选择信号将确定多路复用器535是自减法器515-1还是自减法器515-2选择该输入。同样地,该选择信号将使多路复用器416在来自组合电路412的输入之间进行选择。选择减法器515-1对应于选择组合电路412-1,而选择减法器515-2则对应于选择组合电路412-2。例如,在选择减法器515-1及组合电路412-1时,控制器500中的计数值将递减1,从而表示在一个时钟循环内执行了一步骤。或者,在选择减法器515-2及组合电路412-2时,控制器500中的计数值将递减2,从而表示在一个时钟循环内执行了两步骤。
由于启动信号不再指示一处理时间周期的开始,因此将递减后的计数值自多路复用器535传输至多路复用器505,由多路复用器505在下一时钟循环中选择该递减后计数值。递减过程继续进行来随机选择每一时钟循环一个或两个步骤。在操纵接近结束时,解码器527可指示计数值1(意味着还剩下对数据的两次操纵)。存在两种可能性。
在第一种可能性中,解码器525接收一指示在该时钟循环期间要执行两次操纵的随机数,然后解码器525将一最末循环信号发送至组合电路414-2并消除DFF 520。DFF 520向处理电路400发送一指示处理已结束并应保存要接收的数据的处理信号。
在第二种可能性中,解码器525接收一指示在该时钟循环期间要执行一次操纵的随机数。执行该操纵,并在下一时钟循环上当该循环中还剩一步时,即DFF 510传输一零计数值时,然后消除DFF 520并将该处理信号发送至处理电路400。解码器525向组合电路412-1发送一最末循环信号,从而完成该循环中的最后一步。
根据此实例,在八至十六个时钟循环期间已进行了十六个处理步骤。如上所述,在最末处理步骤后,DFF 520发送该处理信号并在输出端口410处提供最终值。
图6-1为一图解说明来自图4及5的本发明的运行的时序图。例如,在开始DES算法的十六时钟循环处理周期600时,多路复用器414接收输入数据605。多路复用器505接收启动信号610并选择一输入值15。处理信号615向处理电路400指示:在处理正进行时不应进行存储。在此实例中,确认经解码的随机输入617,其指示在一个时钟循环内进行2次迭代或操纵。解码器525接收指示在一个时钟循环615中应进行两步的经解码的随机输入617,并因此传输选择信号620,从而触发在一个时钟循环中递减两步。当多路复用器416自组合电路412-2选择输入时,控制器500使计数器635处的计数值从15递减至13。控制器500还将第一循环信号620传输至处理电路400。
当计数器635的值减少至1时,可在输出端口410处获得中间结果630。在计数器635为1时,解码器即会接收到指示递减2的解码器随机输入619,因此确认选择信号620并将最末循环信号635发送至组合电路412-2以便进行特殊处理。在下一时钟循环上,处理信号615指示存储电路420此时应存储所接收的值并可在输出端口410处获得输出数据640。在此实例中,在处理该输入数据时经过了九个时钟循环。
图6-2为一图解说明来自图4及5的本发明的运行的时序图。下文将说明图6-1与6-2之间的差别。当计数器650为1时,解码器525接收到指示在一时钟循环中进行1次迭代或操纵的经解码的随机输入655。在下一时钟循环上,解码器525接收指示在一时钟循环中进行两次迭代的经解码的随机输入660。然而,由于计数器650指示零(剩下一次迭代),因而解码器525忽略这两次迭代且最末循环实施一次迭代。将最末循环信号665施加至组合电路412-1。
图7为一图解说明两个叠加的电流波形的时序图。在处理时间周期710内形成的波形700-1占用(例如)完整的十六个时钟循环。波形700-2形成于少于十六的某个数量的时钟循环内。比较任一点(例如点720)处的波形700均不会产生像现有技术中那么多的有用信息。例如,波形700-1可处于DES循环的步骤6中,而波形700-2则可处于DES循环的步骤13中。因为这些波形处于DES循环的不同步骤中且对波形的点对点比较不相关联,所以通过此种方式来比较波形几乎得不到什么有用的信息。非处理时间周期730跟随在处理时间周期710之后。
图8为一图解说明一种在数字逻辑模块中用于可变处理周期的方法的流程图。在方块800中,接收一输入。在方块810中,在N个时钟循环期间在处理电路中操纵该输入,N为一整数,其界定复数个处理时间周期中的每一个。在方块820中,给一计数值分配一值L,L为一对应于为形成输出而对输入进行操纵的次数的整数。在方块830中,在单个时钟循环上将该计数值递减一等于1或以上的值。在方块840中,在N个时钟循环内完成对该输入的L次操纵,N为一整数且等于或小于L,其中N在该复数个处理时间周期中的每一个中随机变化。在方块850中,借助一控制器(控制器耦接至所述处理电路)追踪被初始化为L(其中L为一整数)及N的计数值。在方块860中,向输出端口提供一输出,其中该输出为在N个时钟循环内经过操纵的输入。
图9为一图解说明一种在一数字逻辑模块中用于一可变处理周期的方法的流程图。在方块900中,接收一第一输入。在方块910中,追踪一第一处理时间周期。在方块920中,在第一处理时间周期期间操纵第一输入。在方块930中,完成对第一输入的操纵。在方块940中,接收一第二输入。在方块950中,追踪一第二处理时间周期,其中第二处理时间周期的持续时间不同于第一处理时间周期。在方块960中,在第二处理时间周期期间操纵第二输入。在方块970中,完成对第二输入的操纵,对第一与第二输入进行操纵的持续时间不同,没有虚的时钟循环。
所属领域的一般技术人员将认识到,可在一处理电路中采用多于一个组合电路或组合类电路,此并不偏离本发明。在电路增多时,将需要减少一处理周期内的时钟循环。另外,虽然将DES用作一实例,但本发明并不仅限于DES。如所属领域的技术人员将通过前面说明及通过图式及权利要求书得知,可对本发明作出修改及改动,此并不背离随附权利要求书中所界定的本发明的范围。

Claims (21)

1、一种用于在一数字逻辑模块中修改处理周期的系统,其包括:
一处理电路,其构造成用于接收一输入、对所述输入进行L次操纵,其中L为一整数,以产生一输出;
一控制器,其耦接至所述处理电路且构造成用于追踪所述处理电路的操纵次数、向所述处理电路发送一选择信号、并使所述处理电路在N个时钟循环内产生所述输出,其中N为一整数,N小于或等于L,且N变化;及
一输出端口,其耦接至所述处理电路且构造成用于传送所述输出。
2、如权利要求1所述的系统,其中N的所述变化为随机的。
3、如权利要求1所述的系统,所述处理电路进一步包括:
一第一组合电路,其构造成用于接收和操纵所述输入,并产生一第一中间输出;
一第二组合电路,其耦接至所述第一组合电路且构造成用于接收和操纵所述第一中间输出,并产生一第二中间输出;及
一选择电路,其耦接至所述第二组合电路且构造成用于接收所述选择信号并根据所述选择信号选择所述第一中间输出或所述第二中间输出。
4、如权利要求3所述的电路,其中所述第一组合电路及所述第二组合电路构造成以相同方式操纵数据。
5、如权利要求3所述的电路,其中所述第一组合电路及所述第二组合电路构造成除在对所述复数个处理时间周期中的每一个进行的一预定操纵期间所述第一组合电路构造成以不同于所述第二组合电路的方式操纵数据外,均以相同方式操纵数据。
6、如权利要求3所述的系统,其进一步包括:
一存储电路,其耦接至所述选择电路且构造成用于接收一处理信号及自所述选择电路接收数据,所述存储电路进一步构造成用于根据所述处理信号来存储自所述选择电路接收的数据。
7、如权利要求6所述的系统,其中所述选择信号大致与所述复数个处理时间周期之一的一结束重合。
8、如权利要求6所述的系统,其中所述存储电路进一步包括:
一多路复用器,其耦接至所述选择电路并构造成用于自所述选择电路接收数据;及
一触发器,其耦接至所述多路复用器及所述输出端口且构造成用于存储自所述多路复用器接收的数据,所述触发器构造成用于向所述多路复用器及所述输出端口传输数据。
9、如权利要求1所述的系统,其进一步包括:
一启动线,其耦接至所述控制器且构造成用于在所述处理电路可得到所述输入时向所述控制器传送一启动信号,其中所述启动信号触发开始所述复数个处理时间周期中的每一个;及
一中断线,其耦接至所述控制器且构造成用于当可在所述输出端口处得到所述输出时自所述控制器传送一中断信号,其中所述中断信号与所述复数个处理时间周期中每一个的结束及复数个非处理时间周期中每一个的开始重合,所述非处理时间周期中的每一个均跟随在所述复数个处理时间周期之一之后。
10、如权利要求1所述的系统,所述控制器进一步包括:
一减法器,其构造成用于接收一计数值并将所述计数值递减1或大于1;及
一解码器,其耦接至所述减法器且构造成用于对应于所述复数个处理时间周期中每一个的所述结束而产生一最末循环信号。
11、如权利要求10所述的系统,其中所述解码器构造成用于根据一随机产生的数来对所述计数值进行解码。
12、如权利要求10所述的系统,其中所述计数的初始值等于在N个时钟循环内对所述输入进行操纵的次数。
13、如权利要求10所述的系统,其中所述解码器构造成用于产生所述选择信号。
14、如权利要求1所述的系统,其中N的所述变化是预先确定的。
15、一种用于在一数字逻辑模块的一时钟循环中修改操纵次数的方法,所述数字逻辑模块具有一耦接至一输出端口的处理电路,所述方法包括:
接收一输入;
在N个时钟循环期间在所述处理电路中操纵所述输入,N为一整数,其界定复数个处理时间周期中的每一个;
在N个时钟循环内完成对所述输入的L次操纵,N为一等于或小于L的数,其中N在所述复数个处理时间周期中的每一个周期内变化;及
将一输出提供至所述输出端口,其中所述输出为在N个时钟循环内经过操纵的输入。
16、如权利要求15所述的方法,其中N随机变化。
17、如权利要求15所述的方法,其进一步包括:
以一控制器来追踪所述N的值,所述控制器耦接至所述处理电路。
18、如权利要求17所述的方法,其进一步包括:
分配一计数值,所述计数值为一对应于为产生所述输出而对所述输入进行操纵的次数的整数;及
在一单个时钟循环内将所述计数值递减一为1或大于1的值。
19、一种在一数字逻辑模块的一时钟循环中修改操纵次数的方法,所述数字逻辑模块具有一耦合至一输出端口的一处理电路,所述方法包括:
接收一第一输入;
追踪一第一处理时间周期;
在所述第一处理时间周期期间操纵所述第一输入;及
在所述第一处理时间周期的一结束之前完成对所述第一输入的操纵。
20、如权利要求19所述的方法,其进一步包括:
接收一第二输入;
追踪一第二处理时间周期,其中所述第二处理时间周期具有与所述第一处理时间周期相同的持续时间;
在所述第二处理时间周期期间操纵所述第二输入;及
在所述第二处理时间周期的一结束之前完成对所述第二输入的操纵,对所述第一与第二输入进行操纵的所述持续时间是不同的。
21、一种用于在一数字逻辑模块中修改处理周期的系统,其包括:
一处理电路,其构造成用于接收一输入以产生一输出;
一控制器,其耦接至所述处理电路且构造成用于追踪N个时钟循环,其中N为一整数,N个时钟循环界定复数个处理时间周期中的每一个,所述控制器进一步构造成用于向所述处理电路发送一选择信号并使所述处理电路在N个时钟循环内操纵所述输入,其中N为一整数且N小于或等于L,L是为完成一处理算法所需的操纵次数;及
一输出端口,其耦接至所述处理电路并构造成用于传送所述输出。
CNA200480030732XA 2003-10-24 2004-10-15 在集成电路中用于可变处理周期的方法及装置 Pending CN1894913A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0312485A FR2861474B1 (fr) 2003-10-24 2003-10-24 Procede et appareil pour une periode de traitement variable dans un circuit integre
FR0312485 2003-10-24
US10/861,682 2004-06-04

Publications (1)

Publication Number Publication Date
CN1894913A true CN1894913A (zh) 2007-01-10

Family

ID=34400779

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200480030732XA Pending CN1894913A (zh) 2003-10-24 2004-10-15 在集成电路中用于可变处理周期的方法及装置

Country Status (4)

Country Link
US (1) US7661011B2 (zh)
CN (1) CN1894913A (zh)
FR (1) FR2861474B1 (zh)
TW (1) TW200527300A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844672A (zh) * 2017-12-06 2018-03-27 西安智多晶微电子有限公司 时钟树单元、时钟网络结构及fpga时钟结构

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005073825A2 (en) * 2004-01-27 2005-08-11 Koninklijke Philips Electronics N.V. Protection against power analysis attacks
EP1742475A1 (fr) * 2005-07-07 2007-01-10 Nagravision S.A. Méthode de contrôle d'accès à des données chiffrées
US7433262B2 (en) * 2006-08-22 2008-10-07 Atmel Corporation Circuits to delay a signal from DDR-SDRAM memory device including an automatic phase error correction
US7539078B2 (en) * 2006-08-22 2009-05-26 Atmel Corporation Circuits to delay a signal from a memory device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US5533123A (en) * 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
EP2280502B1 (en) * 1998-06-03 2018-05-02 Cryptography Research, Inc. Using unpredictable information to Resist Discovery of Secrets by External Monitoring
ES2176015T3 (es) * 1998-07-29 2002-11-16 Infineon Technologies Ag Circuito integrado de semiconductores sincronizado y procedimiento para su funcionamiento.
US6419159B1 (en) * 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
ATE364272T1 (de) * 1999-11-03 2007-06-15 Infineon Technologies Ag Kodiervorrichtung
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
US7080238B2 (en) * 2000-11-07 2006-07-18 Alcatel Internetworking, (Pe), Inc. Non-blocking, multi-context pipelined processor
US7360076B2 (en) * 2001-06-13 2008-04-15 Itt Manufacturing Enterprises, Inc. Security association data cache and structure
JP2003018143A (ja) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp 情報処理装置
US20030043800A1 (en) * 2001-08-30 2003-03-06 Sonksen Bradley Stephen Dynamic data item processing
US6978446B2 (en) * 2001-11-01 2005-12-20 International Business Machines Corporation System and method for protecting against leakage of sensitive information from compromising electromagnetic emanations from computing systems
US7020826B2 (en) * 2002-01-23 2006-03-28 Thomson Licensing Intra-decoder component block messaging

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844672A (zh) * 2017-12-06 2018-03-27 西安智多晶微电子有限公司 时钟树单元、时钟网络结构及fpga时钟结构
CN107844672B (zh) * 2017-12-06 2023-11-28 西安智多晶微电子有限公司 时钟树单元、时钟网络结构及fpga时钟结构

Also Published As

Publication number Publication date
FR2861474B1 (fr) 2007-04-27
FR2861474A1 (fr) 2005-04-29
US7661011B2 (en) 2010-02-09
TW200527300A (en) 2005-08-16
US20050089060A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN1823275B (zh) 用于平整化集成电路中的电流消耗的方法和装置
CN103141066B (zh) 发送电路、接收电路、发送方法、接收方法、通信系统及其通信方法
GB2370381A (en) A processor element array with switched matrix data buses
CN102262604B (zh) 一种并发访问方法、系统及接口装置
US5640602A (en) Transferring digital data in units of 2 bytes to increase utilization of a 2-byte-wide bus
US5982294A (en) Paging receiver which performs data communication protocol analysis through execution of control program
CN106849956A (zh) 压缩方法、解压缩方法、装置和数据处理系统
CN108874702B (zh) 基于axi总线的多路对称加解密ip核并行处理装置和方法
WO2024193441A1 (zh) 数据延时方法、装置、电路、电子设备及可读存储介质
CN1894913A (zh) 在集成电路中用于可变处理周期的方法及装置
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
US9594928B1 (en) Multi-channel, multi-lane encryption circuitry and methods
CN113348777B (zh) 一种探月工程用遥测信道编码装置及编码方法
CN101482909B (zh) 加密算法模块加速器及其数据高速加解密方法
CN106708457B (zh) 用于dmd动态选区的fpga处理模块及其方法
CN113014388B (zh) 一种椭圆曲线密码算法中标量乘的加速系统
WO2019070361A1 (en) MULTI-LINE BUS WITH DYNAMIC ADJUSTMENT SHARED BY MULTIPROTOCOL DEVICES
EP1193609B1 (en) Apparatus and method for address modification in a direct memory access controller
US6831583B1 (en) Integrated circuit comprising a microprocessor and an analogue to digital converter which is selectively operable under the control of the microprocessor and independently of the microprocessor, and a method for operating the integrated circuit
CN102866972B (zh) 支持数据解扰的访存控制器及访存控制器解扰方法
CN111900999A (zh) 一种面向卫星非连续通信的高性能极化编码方法及编码器
EP2037622B1 (en) Method for receiving serial transmission signal
CN1959741B (zh) 具有编解码能力的通信终端模块及其收发数据的方法
CN113177013B (zh) 基于波特率的串口通讯方法和多串口芯片
EP1676192A2 (en) Method and apparatus for a variable processing period in an integrated circuit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070110