CN109804596B - 具有加掩码的输入的可编程块密码器 - Google Patents
具有加掩码的输入的可编程块密码器 Download PDFInfo
- Publication number
- CN109804596B CN109804596B CN201780058963.9A CN201780058963A CN109804596B CN 109804596 B CN109804596 B CN 109804596B CN 201780058963 A CN201780058963 A CN 201780058963A CN 109804596 B CN109804596 B CN 109804596B
- Authority
- CN
- China
- Prior art keywords
- block cipher
- mode
- data
- input data
- logic
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
Abstract
可以接收将利用块密码器执行的操作模式的指示。可以基于所指示的将利用块密码器执行的操作模式来配置与块密码器相关联的逻辑。此外,可以接收输入数据和掩码数据。可以基于所配置的逻辑,将输入数据与掩码数据组合以生成加掩码的输入数据。可以基于配置的逻辑将加掩码的输入数据提供给块密码器,以及可以基于所提供的加掩码的输入数据利用块密码器来生成输出数据。
Description
技术领域
本公开涉及通信领域,具体地涉及利用块密码器进行通信。
背景技术
旁信道攻击可以是差分功率分析(DPA)攻击,其中,攻击者可以通过分析集成电路的功耗来寻求从包括块密码器的集成电路获得秘密值或加密密钥,因为块密码器在加密操作中使用了该秘密值或加密密钥。
发明内容
根据本公开的一个方面提供了一种用于块密码器的方法,包括:由电路接收将在第一时间处利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;由所述电路基于将在所述第一时间处利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;由所述电路接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式;由所述电路基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;由所述电路在所述第一时间或所述第二时间处接收输入数据和掩码数据;由所述电路将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;由所述电路向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和所述掩码数据;以及基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据,其中所述第一操作模式和所述第二操作模式是所述多个操作模式中不同的操作模式。
根据本公开的另一方面,提供了一种用于块密码器的***,包括:存储器;以及处理设备,所述处理设备可操作地与所述存储器耦合以:接收将在第一时间处利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;基于所指示的将在所述第一时间处利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式并且与所述第一操作模式不同;基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;在所述第一时间或所述第二时间处接收输入数据和掩码数据;将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和掩码数据;以及基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据。
根据本公开的又一方面,提供了一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令,所述指令在由处理设备执行时使所述处理设备执行操作,所述操作包括:由所述处理设备的电路接收将在第一时间利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;由所述电路基于将在所述第一时间利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;由所述电路接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式;由所述电路基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;由所述电路在所述第一时间或所述第二时间处接收输入数据和掩码数据;由所述电路将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;由所述电路向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和所述掩码数据;以及基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据,其中所述第一操作模式和所述第二操作模式是所述多个操作模式中不同的操作模式。
附图说明
从下面给出的详细描述和本公开的各种实现的附图,本公开将被更全面地理解。
图1图示了根据本公开的一些实施例的包括具有加掩码的输入的可编程块密码器的示例设备。
图2是根据一些实施例的对具有加掩码的输入的块密码器进行编程的示例方法的流程图。
图3图示了根据本公开的一些实施例的具有布尔(Boolean)型加掩码的输入的可编程块密码器的示例架构的逻辑表示。
图4图示了根据本公开的一些实施例的使用具有加掩码的输入的可编程块密码器的示例方法的流程图。
图5图示了本公开的一些实施例可以在其中操作的计算机***的实施例的框图。
具体实施方式
本公开的方面涉及具有加掩码的输入的可编程块密码器。块密码器可以基于加密算法(例如,高级加密标准(AES)、数据加密标准(DES)、三重DES(TDES)等)和加密密钥(例如,对称密钥)来对特定大小的数据(即,数据块)进行加密或解密。例如,块密码器可以接收加密密钥和输入数据块,并且可以基于加密密钥、利用数据块执行加密操作(例如,通过使用密钥对数据块进行加密)。因此,块密码器可以对固定大小的输入数据块执行加密操作。
操作模式可以指代使用各种应用(例如,安全支付或者安全通信协议)中的块密码器以通过使用块密码器的单个数据块加密操作来对任意长度的输入数据进行加密(或解密)的过程。例如,操作模式可以使用对特定大小的数据块执行加密操作的块密码器来生成大小比块密码器的单个数据块(如果其没有在操作模式的情况下被利用)更大的输出数据块。操作模式可以多次利用密码块的加密操作来生成大小较大的输出数据块。例如,操作模式可以利用第一输入执行第一操作,并且将第一操作的输出存储在存储器寄存器中。随后,可以利用第二输入和第一操作的输出执行第二操作,以生成可以被认为是该操作模式的结果的第二输出。
利用块密码器的应用可以使用多个操作模式。例如,特定标准(例如,美国国家标准技术研究所(NIST)SP-800-38A规范)可以定义可以各自使用块密码器的操作模式。可以针对某个应用指定特定操作模式。不同的操作模式可以包括但不限于电子密码本(ECB)操作模式、密码块链接(CBC)操作模式、和密码反馈(CFB)操作模式。
本公开的方面可以提供可编程块密码器的架构,该可编程块密码器的架构可以基于将利用块密码器的操作模式而被编程。例如,加密组件的架构可以包括块密码器和逻辑组件(例如,复用器、用于执行异或(XOR)布尔操作的组件、以及寄存器)以接收标识特定操作模式的信号,该特定模式将通过使用块密码器来执行。可以基于逻辑组件的编程将输入数据提供给块密码器。因此,通过提供标识将被执行的、并且将使用块密码器的操作模式的信号,可以通过在不同时间利用相同的块密码器来执行不同的操作模式。
此外,逻辑组件可以对由可编程块密码器接收到的输入数据进行掩码。对输入数据进行掩码可以对应于将接收到的输入数据与附加数据(例如,随机数据)组合以混淆或隐藏输入数据。例如,可以基于加掩码的输入数据执行块密码器的加密操作。对输入数据的这种掩码可以防止来自攻击者(例如,未经授权的实体)的旁信道攻击。旁信道攻击可以是差分功率分析(DPA)攻击,其中,攻击者可以通过分析集成电路的功耗来寻求从包括块密码器的集成电路获得秘密值或加密密钥,因为块密码器在加密操作中使用了该秘密值或加密密钥。当随机数据与输入数据一起使用时,对输入数据进行掩码可以降低对DPA攻击的敏感度,从而降低集成电路的功耗与加密密钥之间的相关性。
因此,本公开的方面可以提供使用用于执行不同操作模式的单个块密码器的优点。单个块密码器的使用可以减少集成电路中执行操作模式所需的块密码器的实例数目,并因此减小集成电路的大小。此外,对输入进行掩码可以通过降低集成电路对DPA攻击的敏感性来提高在块密码器的加密操作中使用的加密密钥的安全性。
图1图示了包括具有加掩码的输入的可编程块密码器的示例设备100。设备100可以包括具有块密码器的集成电路以及具有加掩码的输入的可编程块密码器的逻辑组件。
如图1所示,设备100可以包括应用组件110,该应用组件110可以执行对应于特定应用(例如,移动支付应用、安全通信应用等)的功能,该特定应用可以使用与由块密码器130执行的加密操作相关联的功能。例如,加密操作可以是对从应用组件110接收到的输入数据115进行加密和/或解密。输入数据115可以由逻辑组件120接收,该逻辑组件120可以基于掩码数据117(例如,随机数据)对输入数据115进行掩码。例如,可以在输入数据115与掩码数据117之间执行布尔操作(例如,异或操作)以生成加掩码的输入数据。逻辑组件120可以进一步接收操作模式信号118,该操作模式信号118可以指示将利用块密码器130执行的特定操作模式。可以基于由操作模式信号118指示的、将被执行的操作模式来配置逻辑组件120。例如,可以基于由信号118指示的操作模式来生成用于逻辑组件120的复用器(或者其它这种选择单元)的选择信号。可以基于用于复用器的选择信号来执行布尔掩码操作以基于掩码数据117与输入数据115的组合来生成掩码输入信号。此外,可以将加掩码的输入信号和掩码数据提供给块密码器130以利用由逻辑组件120生成的掩码输入数据执行加密操作。此外,块密码器130可以更新由逻辑组件120接收到的掩码数据。块密码器130可以基于掩码数据与加掩码的输入数据的组合来生成输出数据。例如,逻辑组件120在更新的掩码数据与来自块密码器130的加掩码的输出数据之间进行的异或操作可以产生被提供给应用组件110的输出数据135。
利用块密码器130配置逻辑组件120可以对应于特定于模式的块密码器实体119。在一些实施例中,特定于模式的块密码器实体119可以包括逻辑组件120的第一部分以及块密码器130,使得逻辑组件120的第二部分不被包括在特定于模式的块密码器实体119中。例如,逻辑组件120的寄存器可以被包括在特定于模式的块密码器实体119中。逻辑组件120的未被包括在特定于模式的块密码器实体119中的第二部分可以是XOR逻辑(例如,如结合图3描述的XOR逻辑340和344)。如进一步详细描述的,去掩码的数据(unmasked data)不被存储在与特定于模式的块密码器实体130对应的逻辑组件120的第一部分的寄存器中。
图2是对块密码器进行编程的示例方法200的流程图。方法200可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,处理设备、电路***、专用逻辑、可编程逻辑、微代码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法200可以通过图1的逻辑组件120和块密码器130而被执行。
如图2中所示,方法200可以开始于处理逻辑接收指示与块密码器相关联的操作模式的信号(框210)。例如,可以响应于执行基于操作模式的加密操作的请求来接收操作模式。可以从可以使用块密码器的输出来对数据进行加密和/或解密的应用接收该请求。处理逻辑可以进一步接收一个或多个输入和掩码数据(框220)。例如,可以接收掩码数据、诸如明文的输入数据以及诸如初始化向量(IV)的输入数据。在一些实施例中,可以经由明文和IV之外的单独输入接收被用于执行加密操作的秘密加密密钥。在备选实施例中,块密码器可以包含秘密加密密钥,并且可以使用所包括的秘密加密密钥来执行加密操作。掩码数据可以对应于由随机或伪随机电路生成的随机数或伪随机数。明文可以对应于将被与掩码数据组合的数据。例如,明文可以对应于将被加密的数据。当输入数据对应于将被解密的数据时,输入数据可以是密文。此外,初始化向量可以对应于针对每个加密操作而不同的二进制序列。初始化向量可以是二进制数的随机无重复序列,并且还可以是不可预测的。处理逻辑可以进一步基于所指示的操作模式配置逻辑以创建特定于模式的块密码器实体(框230)。特定于模式的块密码器实体可以对应于具有所配置的逻辑的块密码器。例如,可以利用掩码数据对明文进行加掩码。利用掩码数据对明文进行的掩码操作可以是明文与掩码数据之间的异或(XOR)布尔操作,以生成可以被存储在存储器元件(例如,寄存器)中的加掩码的输入数据。因此,在被存储在逻辑的存储器元件中并且被提供给块密码器之前,可以利用掩码数据对输入数据(例如,明文)进行掩码。
参照图2,处理逻辑可以进一步对输入数据进行掩码,并且将加掩码的输入数据提供给特定于模式的块密码器实体(框240)。此外,基于加掩码的输入数据和特定于模式的块密码器实体的当前加掩码状态,处理逻辑可以利用特定于模式的块密码器实体来执行加密操作,以利用更新的掩码数据生成加掩码的中间数据(框250)。特定于模式的块密码器实体可以利用掩码输入数据以及被存储在块密码器处、或者作为来自输入数据的单独输入而接收的加密密钥来执行加密操作,以生成中间数据(也被称为中间输出数据)。加密操作可以利用加密密钥对加掩码的输入数据进行加密或者利用加密密钥对加掩码的输入数据进行解密。此外,特定于模式的块密码器实体可以更新掩码数据。例如,在加密操作期间改变加掩码的输入数据时,可以更新掩码数据。加掩码的输入数据的变化可以对应于掩码数据的变化。此外,处理逻辑可以利用中间加掩码的数据和掩码数据来提供去掩码的输出(框260)。可以基于所配置的逻辑提供这种输出。例如,所配置的逻辑可以对应于复用器,该复用器被用于选择更新的掩码数据和特定于模式的块密码器实体的输出,以及在更新的掩码数据与特定于模式的块密码器实体的输出之间执行XOR操作以生成去掩码的输出数据。
下面将结合图3和4进一步详细描述关于逻辑和块密码器的操作以及具有与特定于模式的块密码器实体相关联的块密码器的逻辑的架构的进一步细节。
图3图示了具有布尔型加掩码的输入的可编程块密码器的示例架构300的逻辑表示。架构300可以对应于结合图1描述的设备100的逻辑组件120和块密码器130的架构。在一些实施例中,当基于所指示的操作模式进行编程时,架构300可以对应于特定于模式的块密码器实体。
如图3所示,架构300可以包括复用器331、332、333、334、335、336、337、338和339,存储器元件或寄存器321、322、323、324和325,诸如XOR逻辑(例如,逻辑门)340、341、342、343、344和345的布尔逻辑组件,以及块密码器320。复用器、寄存器和XOR逻辑可以对应于图1的逻辑组件120,并且块密码器320可以对应于图1的块密码器130。
参照图3,块密码器320可以基于将利用块密码器320执行的操作模式来接收各种输入数据。例如,由块密码器320接收的输入数据可以是对应于或者基于将被加密或解密的数据、初始化向量或者块密码器320的先前输出的值。下面会进一步详细描述块密码器320的输入类型(例如,数据输入或者块密码器320的输入数据)的进一步细节。各种复用器和XOR逻辑组件可以被用于组合两个不同数据。例如,通过由复用器333和334选择并且经由XOR逻辑344的XOR操作而被组合,对应于将被加密或解密的数据的输入数据可以与掩码数据被组合。寄存器323可以存储掩码数据,以及寄存器324可以存储初始化向量。此外,寄存器321可以存储块密码器320的输出并且可以被提供给复用器336,使得被存储在寄存器321处的块密码器320的输出可以被提供作为到块密码器320的另一输入。在一些实施例中,复用器336可以选择块密码器320的输出以利用XOR逻辑343与另一个值组合,并且XOR逻辑343的输出可以被提供给块密码器320以用于在后续操作中使用。
此外,来自块密码器320的掩码输出可以与由架构300接收到的另一掩码输入组合。例如,掩码输出可以由块密码器320生成,并且掩码输出可以通过使用复用器338和XOR逻辑342与由架构300接收到的后续掩码输入组合。
如先前所描述的,可以将逻辑编程或者配置为与块密码器一起使用以提供不同操作模式。这种操作模式可以包括但不限于ECB、CBC和CFB。ECB操作模式可以是被应用于明文输入数据的每个数据块的正向加密操作或者被应用于密文输入数据的每个数据块的反向加密操作。用于加密的ECB操作模式可以基于由块密码器使用的明文输入数据和加密密钥。因此,ECB操作模式可以不使用链接操作,其中第一操作的块密码器的先前输出被用作用于第二操作的输入或者输入的一部分。例如,为了对输入数据进行加密或解密,ECB操作模式可以利用块密码器执行加密操作,而不在后续操作中使用块密码器的输出。
在操作中,用于加密的ECB操作模式可以对应于利用块密码器320的单个类型的操作。例如,架构300可以在复用器334处接收将被加密的明文输入数据以及在复用器333处接收掩码数据。XOR逻辑344可以将明文输入数据与掩码数据组合以生成被提供给块密码器320的加掩码的明文输入数据。可以通过XOR逻辑343将加掩码的明文输入数据提供给块密码器320,该XOR逻辑343将加掩码的明文输入数据与由复用器336提供的零值组合。在一些实施例中,将零值与对应的XOR逻辑一起使用可以有效地禁用XOR逻辑,因为XOR逻辑的输出可以不改变XOR逻辑的其它对应输入。因此,当在特定操作模式期间不使用特定XOR逻辑时,零值可以被用作XOR逻辑的输入之一。此外,也可以从XOR逻辑342将掩码数据提供给块密码器320,其与由复用器338提供的零值组合。块密码器320的输出(例如,加掩码的密文)可以保存或存储在寄存器321中。此外,可以通过将被存储在寄存器321中并且来自XOR逻辑341的块密码器320的所保存的输出与通过使用XOR逻辑340从块密码器320输出的掩码数据(例如,掩码输出)组合来生成对应于加密输入数据的去掩码的密文。
用于加密和解密的CBC和CFB操作模式可以将来自第一操作的块密码器的输出与第二操作的输入数据一起使用。例如,为了对输入数据块进行加密或解密,可以使用第一操作,并且可以将块密码器的输出与第二操作的附加输入数据组合,并且可以将组合的数据提供给块密码器以生成第二输出数据。因此,用于加密的CBC操作模式可以将明文输入数据与块密码器的先前的密文输出数据组合。在一些实施例中,针对CBC加密操作模式,第一操作可以在接收到的初始化向量与明文输入数据之间执行XOR操作,并且将XOR操作的结果作为第一输入提供给块密码器。针对第二操作,可以通过XOR操作将来自第一操作的块密码器的输出与随后的明文输入数据组合,并且可以将结果提供给块密码器作为第二输入以生成加密操作模式的输出。因此,针对用于加密的CBC操作模式,第二操作的块密码器的输入基于来自第一操作的从块密码器输出的密文。针对用于加密的CFB操作模式,可以通过XOR操作将来自块密码器的密文与明文输入数据组合。例如,针对用于加密的CFB操作模式,第一输入可以是初始化向量,并且初始化向量的一部分可以与来自先前操作的块密码器的密文输出的一部分连接。下面会描述关于使用具有加掩码的输入的可编程块密码器的用于加密的CBC和CFB操作模式的进一步细节。
在操作中,用于加密的CBC操作模式可以对应于利用块密码器320的多个操作。多个操作可以包括两种类型的操作。例如,架构300可以接收初始化向量作为输入数据,并且还可以接收掩码数据。初始化向量可以由复用器332选择以被存储在寄存器324中。掩码数据可以由复用器331选择以被存储在寄存器323处。接下来,架构300可以在复用器334处接收对应于将被加密的输入数据的明文输入数据,并且还可以在复用器333处接收附加的掩码数据。明文输入数据可以通过使用XOR逻辑343与初始化向量组合以生成由块密码器320接收的加掩码的明文输入数据。此外,块密码器320可以从XOR逻辑342接收掩码数据(例如,基于将掩码数据与来自复用器338的零值组合以便不改变掩码数据)。随后,块密码器320可以生成被存储在寄存器321处的加掩码的密文输出数据。加掩码的密文数据可以从XOR逻辑341被接收,并且通过使用XOR逻辑340而与来自块密码器320的掩码数据输出(例如,更新的掩码)被组合以生成加密的明文输入数据或者密文。用于加密的CBC操作模式可以进一步利用块密码器320执行后续操作,作为加密(或解密)过程的一部分。例如,架构300随后可以接收附加的明文输入数据和附加的掩码数据。附加的明文输入数据可以通过XOR逻辑344与附加的掩码数据被组合以生成附加的加掩码的明文输入数据。附加的加掩码的明文输入数据也可以与块密码器320的先前操作的输出被组合。例如,XOR逻辑343可以接收附加的加掩码的明文输入数据以及经由复用器336从寄存器321取回的加掩码的密文数据以生成块密码器320的另一输入。此外,当块密码器320接收到第二操作的块密码器320的其它输入时,块密码器320还可以接收从块密码器320输出的掩码数据(例如,通过复用器338并且经受由XOR逻辑342利用附加掩码数据进行的XOR操作)。
在操作中,CFB操作模式也可以对应于利用块密码器320的多个操作,其中操作可以使用块密码器一次或多次。在一些实施例中,可以提供到块密码器的第一输入,并且块密码器的另一后续输入可以与对应于块密码器的输出的反馈回路相关联。因此,操作模式可以多次使用块密码器。例如,可以执行第一操作和一个或多个反馈操作,其中,第一输入与第一操作相关联,并且反馈回路与第一操作之后的一个或多个反馈操作相关联。架构300可以接收初始化向量作为被存储在寄存器324处的输入数据,并且还可以被接收存储在寄存器323处的掩码数据。接下来,架构300可以在复用器333和334处接收明文输入数据和附加掩码数据。XOR逻辑344可以利用附加掩码数据对明文输入数据进行掩码,并且将加掩码的明文输入数据存储在寄存器322处。此外,XOR逻辑343可以将来自寄存器324的初始化向量与来自复用器335的零值组合(例如,以便有效地禁用XOR逻辑),并且可以将XOR逻辑343的输出提供给块密码器320。块密码器320可以因此生成加掩码的数据输出(例如,中间输出),该加掩码的数据输出通过使用复用器337来选择加掩码的数据输出和加掩码的明文输入数据而与来自寄存器322的加掩码的明文输入数据被组合,并且利用XOR逻辑341组合这些值以生成被存储在寄存器321处的中间值。接下来,可以通过架构300接收附加的明文输入数据和附加的掩码数据来执行第二类型的操作。块密码器320可以通过XOR逻辑342接收从块密码器320输出的掩码数据。此外,XOR逻辑343可以将被存储在寄存器321处的中间值作为输入提供给块密码器320。此外,附加的明文输入数据可以被存储在寄存器322处,并且通过XOR逻辑341与块密码器320的掩码数据输出组合,并且该结果可以与块密码器320的掩码数据和后续输出被组合。
此外,架构300可以保存用于加密和解密的CFB操作模式的输入数据(例如,明文输入数据),使得输入数据可以与块密码器320的输出组合。例如,输入数据可以通过XOR逻辑345与掩码数据被组合,并且由复用器339选择以被保存或存储在寄存器322处。寄存器325可以接收并存储掩码数据。例如,复用器351可以被用于将掩码数据提供给寄存器325。在一些实施例中,CFB操作模式可以以不同顺序接收初始化向量、掩码数据和明文输入数据。在首先接收明文输入数据然后接收掩码数据的情况下,对应的加掩码的数据(例如,加掩码的明文输入数据)可以被存储在寄存器322中,并且其对应的掩码数据可以被存储在寄存器325处。然后,可以分别在寄存器324和323处接收和存储初始化向量和附加掩码数据。初始化向量和附加掩码数据可以由块密码器320接收作为输入,其可以基于输入生成加密。随后,被存储在寄存器322处的加掩码的数据可以被用于对存储在寄存器322处的加掩码的数据进行去掩码。在一些实施例中,复用器351可以被用于在掩码数据与寄存器325的输出之间进行选择。随后,可以通过XOR逻辑345接收被存储在寄存器322处的加掩码的输入数据和被存储在寄存器325处的掩码数据、并且在接收到的输入之间执行XOR操作来对掩码输入数据进行去掩码。然后,去掩码的输入数据可以被存储在寄存器322处以由复用器337接收并且通过XOR逻辑341与块密码器320的输出被组合。因此,寄存器322可以被用于存储加掩码值(例如,加掩码的输入数据)和去掩码值(例如,去掩码的输入数据)。
图4图示了使用具有加掩码的输入的可编程块密码器的示例方法400的流程图。方法400可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,处理设备、电路***、专用逻辑、可编程逻辑、微代码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法400可以由图1的逻辑组件120和块密码器130执行。
如图4所示,方法400可以开始于处理逻辑接收指示将利用块密码器执行的操作模式的信号(框410)。该信号可以指示是否要通过使用块密码器来执行ECB、CFB或CBC操作模式。处理逻辑可以随后确定该信号是否指示ECB操作模式将利用块密码器执行(框420)。例如,该信号可以指示基于ECB操作模式对数据进行加密或解密。响应于确定该信号指示,用于加密的ECB操作模式将利用块密码器执行,处理逻辑可以利用加掩码的明文输入数据执行第一类型的操作(框430)。例如,可以将选择信号提供给复用器以执行第一类型的操作以在掩码数据与明文输入数据之间执行XOR操作以生成被提供给块密码器的加掩码的明文输入数据。块密码器的输出可以对应于加密后的数据。
否则,如果处理逻辑确定该信号并未指示ECB操作模式将利用块密码器执行,则处理逻辑可以确定该信号是否指示CBC操作模式将利用块密码器执行(框440)。如果该信号指示CBC操作模式将被执行,则处理逻辑可以执行第一类型的操作以基于加掩码的明文输入数据、掩码数据和初始化向量生成从块密码器输出的密文(框450)。例如,如先前关于图3描述的,加掩码的明文输入数据可以通过XOR操作与初始化向量被组合,并且可以将结果提供给块密码器。随后,处理逻辑可以利用块密码器基于后续的加掩码的明文输入数据和第一操作的密文输出来执行第二类型的操作(框460)。例如,来自先前的第一类型的操作的块密码器的输出(即,中间输出)可以通过XOR操作与随后接收到的加掩码的明文输入数据被组合,并且被提供给块密码器作为输入数据。第二类型的操作之后的块密码器的输出可以对应于加密后的数据。可以继续执行或进行第二类型的操作,直到已经接收并处理了输入的最后一个数据块。
参照图4,如果该信号未指示CBC操作模式将被执行,则处理逻辑可以确定CFB操作模式将利用块密码器执行(框470)。处理逻辑利用块密码器基于初始化向量来执行第一类型的操作(框480)。例如,块密码器可以通过利用XOR操作组合的初始化向量和零值的组合来生成密文输出,然后可以利用XOR操作将块密码器的密文输出与明文输入数据组合并且存储在寄存器中作为中间值。此外,处理逻辑可以配置与块密码器相关联的逻辑来利用块密码器基于第一操作的输出来执行第二类型的操作(框490)。例如,随后可以将存储在寄存器中的对应于第一操作的输出的中间值作为输入提供给块密码器以执行第二类型的操作。
图5图示了计算机***500的示例,在该计算机***500内可以执行用于使得机器执行本文讨论的方法中的任何一个或多个方法的指令集。在备选实施方式中,该机器可以连接(例如,联网)至LAN、内联网、外联网和/或互联网中的其它机器。该机器可以在客户端-服务器网络环境中以服务器或者客户端机器的身份来操作,在对等(或者分布式)网络环境中作为对等机操作,或者在云计算基础设施或环境中作为服务器或客户端机器操作。
该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络应用、服务器、网络路由器、交换机或桥接器、或者能够执行由该机器采取的指定动作的指令集(连续的或以其它方式)的任何机器。进一步地,虽然只图示了单个机器,但是术语“机器”也应被视为包括单独地或者联合地执行用于执行本文讨论的任何一个或多个方法的指令集合(或多个集合)的任何机器集合。
示例计算机***500包括处理设备502、主存储器504(例如,只读存储器(ROM)、闪速存储器、动态随机存取存储器(DRAM)等)(诸如同步DRAM(SDRAM)或者Rambus DRAM(RDRAM)等)、静态存储器506(例如,闪速存储器、静态随机存取存储器(SRAM)等)以及数据存储设备518,它们经由总线530彼此通信。
处理设备502表示一个或多个通用处理设备,诸如微处理器、中央处理器等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或者实现其它指令集的处理器或者实现指令集的组合的处理器。处理设备502还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备502配置为执行用于执行本文讨论的操作和步骤的指令526。
计算机***500可以进一步包括通过网络520通信的网络接口设备508。计算机***500还可以包括视频显示单元510(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备512(例如,键盘)、光标控制设备614(例如,鼠标)、图形处理单元522、信号生成设备516(例如,扬声器)、图形处理单元522、视频处理单元528和音频处理单元532。
数据存储设备518可以包括机器可读存储介质524(也称为计算机可读介质),在其上被存储有体现了本文描述的方法或者功能的任何一个或多个的指令或软件526的一个或多个集合。指令526还可以在由计算机***500对其进行执行期间完全地或者至少部分地驻留在主存储器504内和/或处理设备502内,主存储器504和处理器502还组成机器可读存储介质。
在一个实现中,指令526包括用于实现本文描述的功能的指令。虽然在示例实现中将机器可读存储介质524示出为单个介质,但是术语“机器可读存储介质”应被视为包括存储一个或多个指令集的单个介质或者多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应被视为包括能够存储或编码用于由机器执行并且使得该机器执行本公开的方法得任何一个或多个的指令集的任何介质。相应地,术语“机器可读存储介质”应被视为包括但不限于固态存储器、光学介质和磁性介质。
已经关于对计算机存储器内的数据位的操作的算法和符号表示提出了前述详细说明的一些部分。这些算法说明和表示是供数据处理领域的技术人员用来最有效地将他们的工作的实质传达给本领域的其他技术人员的方式。并且通常在此处将算法设想为产生期望结果的自相容操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较和以其它方式操纵的电信号或者磁信号的形式。已经证明,主要是针对共同使用的原因,有时将这些信号称为比特、值、元素、符号、字符、项、数字等比较方便。
然而,应该牢记,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便的标签。除非特别指出,否则从上面的讨论中显而易见的是,要了解,贯穿整个说明书,利用诸如“标识”或“确定”或“执行”或“进行”或“收集”或“创建”或“发送”等术语的讨论指的是计算机***或类似的电子计算设备的动作和过程,其操纵表示为计算机***的寄存器和存储器内的物理(电子)量的数据并且将其转换为同样表示为计算机***存储器或者寄存器或者其它这种信息存储设备内的物理量的其它数据。
本公开还涉及用于执行本文的操作的装置。出于预期目的,可以对该装置进行特定构造,或者该装置可以包括由被存储在计算机中的计算机程序选择性激活或者重新配置的通用计算机。这种计算机程序可以被存储在计算机可读存储介质中,诸如但不限于,包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或者适合于存储电子指令的任何类型的介质,每个都耦合至计算机***总线。
本文呈现的算法和显示在本质上与任何特定计算机或者其它装置不相关。根据本文的教导,各种通用***可以与程序一起使用,或者其可以证明构造更专用的装置以方便执行方法。各种这些***的结构将如下面的描述所陈述的。另外,未参照任何特定的编程语言来描述本公开。要了解,各种编程语言可以被用于实现本文描述的本公开的教导。
本公开可以作为计算机程序产品或者软件被提供,计算机程序产品或者软件可以包括其上被存储有指令的机器可读介质,该指令可以被用于对计算机***(或者其它电子设备)进行编程以根据本公开执行过程。机器可读介质包括用于以由机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等。
在前述公开中,已经参照其特定示例实现描述了本公开的实现。将显而易见的是,可以在不脱离以下权利要求所陈述的本公开的实现的更广泛的精神和范围的情况下,对其进行各种修改。相应地,本公开和附图被认为是说明性的而不是限制性的。
Claims (20)
1.一种用于块密码器的方法,包括:
由电路接收将在第一时间处利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;
由所述电路基于将在所述第一时间处利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;
由所述电路接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式;
由所述电路基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;
由所述电路在所述第一时间或所述第二时间处接收输入数据和掩码数据;
由所述电路将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;
由所述电路向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和所述掩码数据;以及
基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据,其中所述第一操作模式和所述第二操作模式是所述多个操作模式中不同的操作模式。
2.根据权利要求1所述的方法,其中利用所述块密码器对所述输出数据的所述生成包括:
响应于所述操作模式与使用所述块密码器的多个操作相对应,通过使用所述块密码器来执行所述多个操作中的第一操作以生成中间输出数据,以及通过提供所述中间输出数据与附加输入数据的组合、使用所述块密码器来执行所述多个操作中的第二操作以生成所述输出数据。
3.根据权利要求2所述的方法,其中所述中间输出数据与所述附加输入数据的所述组合与所述中间输出数据和所述附加输入数据之间的异或(XOR)操作相关联。
4.根据权利要求1所述的方法,其中所指示的所述操作模式对应于电子密码本ECB操作模式、密码块链接CBC操作模式、或者密码反馈CFB操作模式,并且其中相同的所述块密码器被用于基于所配置的所述逻辑来执行所述ECB、CBC和CFB操作模式中的每一个。
5.根据权利要求1所述的方法,进一步包括:
基于所述块密码器的使用来将所述掩码数据提供给所述块密码器以更新所述掩码数据;以及
将所述块密码器的所述输出与所更新的所述掩码数据组合以生成第二输出数据。
6.根据权利要求1所述的方法,其中所述逻辑包括与异或(XOR)操作相对应的复用器、寄存器和布尔逻辑。
7.根据权利要求1所述的方法,其中所述操作模式与通过使用所述块密码器对所述输入数据的加密相关联或者与通过使用所述块密码器对所述输入数据的解密相关联。
8.一种用于块密码器的***,包括:
存储器;以及
处理设备,所述处理设备可操作地与所述存储器耦合以:
接收将在第一时间处利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;
基于所指示的将在所述第一时间处利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;
接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式并且与所述第一操作模式不同;
基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;
在所述第一时间或所述第二时间处接收输入数据和掩码数据;
将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;
向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和掩码数据;以及
基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据。
9.根据权利要求8所述的***,其中为了利用所述块密码器生成所述输出数据,所述处理设备进一步:
响应于所述操作模式与使用所述块密码器的多个操作相对应,通过使用所述块密码器来执行所述多个操作中的第一操作以生成中间输出数据,以及通过提供所述中间输出数据与附加输入数据的组合、使用所述块密码器来执行所述多个操作中的第二操作以生成所述输出数据。
10.根据权利要求9所述的***,其中所述中间输出数据与所述附加输入数据的所述组合与所述中间输出数据和所述附加输入数据之间的异或(XOR)操作相关联。
11.根据权利要求8所述的***,其中所指示的所述操作模式对应于电子密码本ECB操作模式、密码块链接CBC操作模式、或者密码反馈CFB操作模式,并且其中相同的所述块密码器被用于基于所配置的所述逻辑来执行所述ECB、CBC和CFB操作模式中的每一个。
12.根据权利要求8所述的***,其中所述处理设备进一步:
基于所述块密码器的使用来将所述掩码数据提供给所述块密码器以更新所述掩码数据;以及
将所述块密码器的所述输出与所更新的所述掩码数据组合以生成第二输出数据。
13.根据权利要求8所述的***,其中所述逻辑包括与异或(XOR)操作相对应的复用器、寄存器和布尔逻辑。
14.根据权利要求8所述的***,其中所述操作模式与通过使用所述块密码器对所述输入数据的加密相关联或者与通过使用所述块密码器对所述输入数据的解密相关联。
15.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令,所述指令在由处理设备执行时使所述处理设备执行操作,所述操作包括:
由所述处理设备的电路接收将在第一时间利用块密码器执行的第一操作模式的第一指示,其中所述第一操作模式选自多个操作模式;
由所述电路基于将在所述第一时间利用所述块密码器执行的所述第一操作模式,来配置与所述块密码器相关联的逻辑;
由所述电路接收将在第二时间处利用所述块密码器执行的第二操作模式的第二指示,其中所述第二操作模式选自所述多个操作模式;
由所述电路基于将在所述第二时间处利用所述块密码器执行的所述第二操作模式来配置所述逻辑;
由所述电路在所述第一时间或所述第二时间处接收输入数据和掩码数据;
由所述电路将所述输入数据与所述掩码数据组合以生成加掩码的输入数据,其中在基于所述第一操作模式或所述第二操作模式配置所述逻辑之前执行组合;
由所述电路向所述块密码器和所配置的逻辑提供所述加掩码的输入数据和所述掩码数据;以及
基于所提供的所述加掩码的输入数据,利用所述块密码器、配置的所述逻辑和所述掩码数据生成输出数据,其中所述第一操作模式和所述第二操作模式是所述多个操作模式中不同的操作模式。
16.根据权利要求15所述的非暂时性计算机可读介质,其中为了利用所述块密码器生成所述输出数据,所述操作进一步包括:
响应于所述操作模式与使用所述块密码器的多个操作相对应,通过使用所述块密码器来执行所述多个操作中的第一操作以生成中间输出数据,以及通过提供所述中间输出数据与附加输入数据的组合、使用所述块密码器来执行所述多个操作中的第二操作以生成所述输出数据。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述中间输出数据与所述附加输入数据的所述组合与所述中间输出数据和所述附加输入数据之间的异或(XOR)操作相关联。
18.根据权利要求15所述的非暂时性计算机可读介质,其中所指示的所述操作模式对应于电子密码本ECB操作模式、密码块链接CBC操作模式、或者密码反馈CFB操作模式,并且其中相同的所述块密码器被用于基于所配置的所述逻辑来执行所述ECB、CBC和CFB操作模式中的每一个。
19.根据权利要求15所述的非暂时性计算机可读介质,所述操作进一步包括:
基于所述块密码器的使用将所述掩码数据提供给所述块密码器以更新所述掩码数据;以及
将所述块密码器的所述输出与所更新的所述掩码数据组合以生成第二输出数据。
20.根据权利要求15所述的非暂时性计算机可读介质,其中所述操作模式与通过使用所述块密码器对所述输入数据的加密相关联或者与通过使用所述块密码器对所述输入数据的解密相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662432505P | 2016-12-09 | 2016-12-09 | |
US62/432,505 | 2016-12-09 | ||
PCT/US2017/064434 WO2018106570A1 (en) | 2016-12-09 | 2017-12-04 | Programmable block cipher with masked inputs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109804596A CN109804596A (zh) | 2019-05-24 |
CN109804596B true CN109804596B (zh) | 2023-05-09 |
Family
ID=62491271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780058963.9A Active CN109804596B (zh) | 2016-12-09 | 2017-12-04 | 具有加掩码的输入的可编程块密码器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11463236B2 (zh) |
EP (1) | EP3552339A4 (zh) |
CN (1) | CN109804596B (zh) |
WO (1) | WO2018106570A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018107114A1 (de) * | 2018-03-26 | 2019-09-26 | Infineon Technologies Ag | Seitenkanalgehärtete Operation |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
FR3133246A1 (fr) * | 2022-03-07 | 2023-09-08 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procédé de protection contre les attaques par canaux auxiliaires |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558591A (zh) * | 2003-12-04 | 2004-12-29 | 智慧第一公司 | 重组透明化区块密码编译方法及装置 |
CN101086769A (zh) * | 2006-06-07 | 2007-12-12 | 三星电子株式会社 | 用于加密输入数据的密码***、错误检测电路及操作方法 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5631960A (en) * | 1995-08-31 | 1997-05-20 | National Semiconductor Corporation | Autotest of encryption algorithms in embedded secure encryption devices |
US5768390A (en) * | 1995-10-25 | 1998-06-16 | International Business Machines Corporation | Cryptographic system with masking |
US5835599A (en) * | 1996-04-15 | 1998-11-10 | Vlsi Technology, Inc. | Muti-cycle non-parallel data encryption engine |
DE19724072C2 (de) * | 1997-06-07 | 1999-04-01 | Deutsche Telekom Ag | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens |
US6708273B1 (en) * | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6249582B1 (en) | 1997-12-31 | 2001-06-19 | Transcrypt International, Inc. | Apparatus for and method of overhead reduction in a block cipher |
WO2001082524A1 (en) * | 2000-04-20 | 2001-11-01 | Matchett Noel D | Cryptographic system for data encryption standard |
US20020044651A1 (en) * | 2000-05-16 | 2002-04-18 | Tuvell Walter E. | Method and apparatus for improving the security of cryptographic ciphers |
JP2002108691A (ja) * | 2000-09-29 | 2002-04-12 | Mitsubishi Electric Corp | 半導体記憶装置および半導体記憶装置の制御方法 |
JP2002175689A (ja) * | 2000-09-29 | 2002-06-21 | Mitsubishi Electric Corp | 半導体集積回路装置 |
US7242766B1 (en) * | 2001-11-21 | 2007-07-10 | Silicon Image, Inc. | Method and system for encrypting and decrypting data using an external agent |
EP1531578A1 (en) * | 2002-08-08 | 2005-05-18 | Matsushita Electric Industrial Co., Ltd. | Encrypting/decrypting device and method, encrypting device and method, decrypting device and method, and transmitting/receiving device |
US7415109B2 (en) * | 2002-08-23 | 2008-08-19 | Qualcomm Incorporated | Partial encryption and full authentication of message blocks |
AU2003270296A1 (en) * | 2002-09-03 | 2004-03-29 | The Regents Of The University Of California | Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher |
KR100583635B1 (ko) | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | 다수의 동작 모드들을 지원하는 암호화 장치 |
US7336783B2 (en) | 2003-01-24 | 2008-02-26 | Samsung Electronics, C., Ltd. | Cryptographic systems and methods supporting multiple modes |
US8060755B2 (en) * | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7542566B2 (en) * | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7536560B2 (en) * | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7657757B2 (en) * | 2003-04-30 | 2010-02-02 | Freescale Semiconductor, Inc. | Semiconductor device and method utilizing variable mode control with block ciphers |
US20060149962A1 (en) * | 2003-07-11 | 2006-07-06 | Ingrian Networks, Inc. | Network attached encryption |
FR2875318A1 (fr) * | 2004-09-15 | 2006-03-17 | St Microelectronics Sa | Protection d'un algorithme des |
US8155306B2 (en) * | 2004-12-09 | 2012-04-10 | Intel Corporation | Method and apparatus for increasing the speed of cryptographic processing |
US7769168B2 (en) * | 2005-03-31 | 2010-08-03 | Microsoft Corporation | Locally interative encryption generating compliant ciphertext for general syntax specifications |
EP1882346B1 (en) * | 2005-05-11 | 2020-09-09 | Nxp B.V. | Communication protocol and electronic communication system, in particular authentication control system, as well as corresponding method |
US7606363B1 (en) * | 2005-07-26 | 2009-10-20 | Rockwell Collins, Inc. | System and method for context switching of a cryptographic engine |
JP4890976B2 (ja) * | 2005-08-31 | 2012-03-07 | キヤノン株式会社 | 暗号処理装置 |
US7725719B2 (en) * | 2005-11-08 | 2010-05-25 | International Business Machines Corporation | Method and system for generating ciphertext and message authentication codes utilizing shared hardware |
EP1798888B1 (fr) * | 2005-12-19 | 2011-02-09 | St Microelectronics S.A. | Protection de l'exécution d'un algorithme DES |
US8538012B2 (en) | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
KR20090131696A (ko) * | 2008-06-19 | 2009-12-30 | 삼성전자주식회사 | 암/복호화 장치 및 이를 포함하는 보안 저장 장치 |
EP2382536B1 (en) * | 2009-01-29 | 2018-04-25 | Fortress Applications Ltd. | System and methods for encryption with authentication integrity |
US20110255689A1 (en) * | 2010-04-15 | 2011-10-20 | Lsi Corporation | Multiple-mode cryptographic module usable with memory controllers |
TWI437489B (zh) | 2010-05-25 | 2014-05-11 | Via Tech Inc | 微處理器以及相關的操作方法、以及加密、解密方法 |
US20120008768A1 (en) * | 2010-07-08 | 2012-01-12 | Texas Instruments Incorporated | Mode control engine (mce) for confidentiality and other modes, circuits and processes |
JP5225414B2 (ja) * | 2011-03-08 | 2013-07-03 | 株式会社東芝 | 暗号演算装置 |
IL214743A0 (en) * | 2011-08-18 | 2012-02-29 | Nds Ltd | Block cipher modes of operation |
US20140281488A1 (en) * | 2013-03-15 | 2014-09-18 | Aruba Networks, Inc. | System and Method for Offloading Cryptographic Functions to Support a Large Number of Clients in a Wireless Access Point |
US9461815B2 (en) * | 2013-10-18 | 2016-10-04 | Advanced Micro Devices, Inc. | Virtualized AES computational engine |
US20160142746A1 (en) * | 2014-11-14 | 2016-05-19 | Thales Avionics, Inc. | Method of encrypting, streaming, and displaying video content using selective encryption |
US9773432B2 (en) * | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
KR102447476B1 (ko) * | 2015-08-20 | 2022-09-27 | 삼성전자주식회사 | 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법 |
CA3007348A1 (en) * | 2016-01-11 | 2017-07-20 | Visa International Service Association | Fast format-preserving encryption for variable length data |
US10182399B1 (en) * | 2016-02-22 | 2019-01-15 | Marvell International Ltd. | Receive operation mode reporting and subsequent frame transmission based on transitions between power management modes |
US20200076594A1 (en) * | 2016-03-30 | 2020-03-05 | The Athena Group, Inc. | Key update for masked keys |
US10783279B2 (en) * | 2016-09-01 | 2020-09-22 | Atmel Corporation | Low cost cryptographic accelerator |
US10461925B2 (en) * | 2016-09-01 | 2019-10-29 | Cryptography Research, Inc. | Hardware masked substitution box for the data encryption standard |
JP6386198B1 (ja) * | 2017-02-21 | 2018-09-05 | 三菱電機株式会社 | 暗号化装置及び復号装置 |
EP3584989B1 (en) * | 2018-06-18 | 2023-09-27 | Secure-IC SAS | Tweakable block ciphers for secure data encryption |
-
2017
- 2017-12-04 WO PCT/US2017/064434 patent/WO2018106570A1/en unknown
- 2017-12-04 EP EP17877778.5A patent/EP3552339A4/en active Pending
- 2017-12-04 US US16/466,983 patent/US11463236B2/en active Active
- 2017-12-04 CN CN201780058963.9A patent/CN109804596B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558591A (zh) * | 2003-12-04 | 2004-12-29 | 智慧第一公司 | 重组透明化区块密码编译方法及装置 |
CN101086769A (zh) * | 2006-06-07 | 2007-12-12 | 三星电子株式会社 | 用于加密输入数据的密码***、错误检测电路及操作方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018106570A1 (en) | 2018-06-14 |
US11463236B2 (en) | 2022-10-04 |
EP3552339A4 (en) | 2020-04-22 |
EP3552339A1 (en) | 2019-10-16 |
US20190349187A1 (en) | 2019-11-14 |
CN109804596A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8634549B2 (en) | Ciphertext key chaining | |
CN108604987B (zh) | 将布尔掩码值转换为用于加密操作的算术掩码值 | |
US8396209B2 (en) | Mechanism for chained output feedback encryption | |
US8416947B2 (en) | Block cipher using multiplication over a finite field of even characteristic | |
CN105940439B (zh) | 使用排列应对对密码算法的旁通道攻击的对策 | |
US7945049B2 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
US20210165633A1 (en) | Protection system and method | |
US11228422B2 (en) | Configuring a device based on a DPA countermeasure | |
CN109804596B (zh) | 具有加掩码的输入的可编程块密码器 | |
US8804953B2 (en) | Extensive ciphertext feedback | |
US8041033B2 (en) | Cipher feedback with variable block chaining | |
US8774402B2 (en) | Encryption/decryption apparatus and method using AES rijndael algorithm | |
US11914870B2 (en) | Side-channel-attack-resistant memory access on embedded central processing units | |
US10333699B1 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
EP3475825B1 (en) | Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks | |
EP3703305A1 (en) | Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm | |
US8437472B2 (en) | Strengthened key schedule for arcfour | |
Czubak et al. | A Note on Keys and Keystreams of Chacha20 for Multi-Key Channels | |
US12021969B2 (en) | Functions with a pre-charge operation and an evaluation operation | |
US20220191004A1 (en) | Functions with a pre-charge operation and an evaluation operation | |
Padhiyar et al. | An Improved Symmetric Key Encryption Method Using Randomized Matrix Generation | |
Nicolaou | Implementation and performance evaluation of cryptographic algorithms |
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 |