CN104871476A - 用于可计算、大型、可变及安全的替换盒的方法及设备 - Google Patents

用于可计算、大型、可变及安全的替换盒的方法及设备 Download PDF

Info

Publication number
CN104871476A
CN104871476A CN201380067737.9A CN201380067737A CN104871476A CN 104871476 A CN104871476 A CN 104871476A CN 201380067737 A CN201380067737 A CN 201380067737A CN 104871476 A CN104871476 A CN 104871476A
Authority
CN
China
Prior art keywords
value
input value
median
nltf
produce
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
CN201380067737.9A
Other languages
English (en)
Other versions
CN104871476B (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104871476A publication Critical patent/CN104871476A/zh
Application granted granted Critical
Publication of CN104871476B publication Critical patent/CN104871476B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种特征是关于用于产生与替换盒S盒相关联的加密值的方法。所述方法包含首先获得输入值及第一值。一种方法包含通过以下步骤来产生S盒输出值:对所述输入值及所述第一值执行异或XOR操作以产生中间值,且对所述中间值以等于所述中间值的汉明权重的位数目执行逐位旋转。在一方面中,此逐位旋转的输出与第二值进一步进行XOR。另一方法包含通过以下步骤来产生所述S盒输出值:对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转以产生中间值,且对所述中间值及所述第一值执行XOR操作。

Description

用于可计算、大型、可变及安全的替换盒的方法及设备
优先权的主张
本专利申请案主张2013年1月11日申请的标题为“用于可计算、大型、可变及安全的替换盒的方法及设备(Method and Apparatus for Computable,Large,Variable,andSecure Substitution Box)”的第61/751,541号临时申请案的优先权,所述申请案的全部揭示内容特此以引用的方式明确地并入。
技术领域
各种特征涉及密码学,且更确切地说,涉及用于实施替换盒的方法及设备。
背景技术
在密码学中,替换盒(S盒)为执行替换的对称密钥算法的基本组件。在块密码中,块密码通常用以隐藏密钥与密文之间的关系,且因此展现香农的混淆的性质。S盒表示接收n个输入位且产生m个输出位的复合函数,从而输出具有某些用于加密的性质。此些性质包含高非线性与平衡性、高代数次数、严格雪崩准则满足程度,及其它性质。此些函数难以计算,且常常表示为查找表,例如数据加密标准(DES)及高级加密标准(AES)中的查找表。举例来说,在AES中,8位输入通过选自S盒中的8位值替换。在一些状况下,n可等于m,从而到S盒的输入及输出具有相同位长度。
如果n大,那么上文描述的查找表(或等效地,用于硬件实施方案的门的网络)可快速变得不实用。在另一方面,小n在定义上限于非线性及代数次数。因此,还能够有效实施于硬件或软件中的具有大量输入位的S盒是合乎要求的。
隐藏权重位函数(HWBF)可视为具有上文描述的一些合乎要求的加密性质(例如平衡性及代数复杂性)的n位到1位S盒。举例来说,如果x为n位输入,其中xi为x的第i(1<=i<=n)个最高有效位,那么HWBF的输出W定义为:
如果x=0,那么W(x)=0,
否则,W(x)=xk,其中k为x的汉明权重。
图1说明可易于实施于硬件中的现有技术中出现的基于n位到n位HWBF的S盒100的示意框图。二进制输入值x(例如,110101)被输入到旋转函数102中。旋转函数102对输入x以等于输入的汉明权重的位数目执行逐位左旋转。因此,如果二进制输入x等于110101,那么由于汉明权重等于四个(4),因此旋转函数102的输出z等于011101。
图2说明描绘基于HWBF的S盒输出z与HWBF W(x)之间的关系的表200。参看图1及2,可展示,输出z的最低有效位(例如,1)等于输入值x的HWBF W(x)(上文定义)。还可观察到,第二最低有效位(例如,0)表示到HWBF的输入值x已经历单一位的逐位右旋转(通过W(x<<1)指示)的情况下的HWBF W(x)的输出。第三最低有效位表示到HWBF的输入值x已经历两个位的逐位右旋转(通过W(x<<2)指示)的情况下的HWBFW(x)的输出,等等。
因此,输出值z与输入值x具有相同数目的位,其中每一位表示并列计算出的不同HWBF W(x)输出。输出值z的位仍保留上文关于HWBF描述的一些有益的加密性质。不幸的是,S盒100还具有不合乎要求的性质。举例来说,一此不合乎要求的性质在于输出z将与输入x具有相同汉明权重,此可常常简化密码分析,特别在输入x具有低汉明权重时。将需要增大S盒100的安全性,以使得更能抵抗密码攻击(密码分析)。
因此,需要更有效地抵抗密码攻击的改进式S盒算法、方法,及设备。
发明内容
一种特征提供一种用于产生与替换盒(S盒)相关联的加密值的方法。所述方法包括获得输入值及第一值,及通过以下步骤中的一者产生S盒输出值:(A)对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,获得第二值,且对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。根据一方面,所提供的所述第一及/或第二值中的至少一者经配置以产生具有等于或大于50%可能性的与所述输入值具有不同汉明权重的所述S盒输出值。根据另一方面,所述第一值及/或所述第二值中的至少一者为具有非零汉明权重的常量。
根据一方面,所提供的所述第一及/或第二值中的至少一者是可变的,且具有等于或大于百分之100*(1-2-n)的具有非零汉明权重的可能性,其中n为所述第一及/或第二值的位数目。根据另一方面,所述第一值及/或所述第二值中的至少一者是从加密函数及/或加密密钥中的至少一者导出。根据又一方面,所述第一值及/或所述第二值中的至少一者是从密码模块的组件级导出。
根据一方面,所述密码模块为流密码。根据另一方面,所述方法是在存储器电路中执行。根据又一方面,所述输入值及所述S盒输出值具有相同位数目。
根据一方面,所述方法进一步包括:获得主要输入值;分配所述主要输入值的位以获得多个非线性变换函数(NLTF)输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及串接所述多个NLTF输出值以获得所述输入值。根据另一方面,所述主要输入值经分配使得所述多个NLTF输入值中的每一者具有相同位数目。
另一特征提供一种电子装置,所述电子装置包括经配置以获得输入值及第一值,且通过以下操作中的一者产生S盒输出值的处理电路:(A)对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,获得第二值,且对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
根据一方面,所述处理电路经进一步配置以:获得主要输入值;分配所述主要输入值的位以获得多个非线性变换函数(NLTF)输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及串接所述多个NLTF输出值以获得所述输入值。
另一特征提供一种电子装置,所述电子装置包括用于获得输入值及第一值的装置,及用于通过以下操作中的一者产生S盒输出值的装置:(A)用于对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值的装置,及用于对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值的装置;(B)用于对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作以产生所述第一中间值的装置,及用于对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值的装置;或(C)用于对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值的装置,用于对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作以产生第二中间值的装置,用于获得第二值的装置,及用于对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值的装置。
根据一方面,所述电子装置进一步包括:用于获得主要输入值的装置;用于分配所述主要输入值的位以获得多个非线性变换函数(NLTF)输入值的装置,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;用于将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值的装置,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及用于串接所述多个NLTF输出值以获得所述输入值的装置。
另一特征提供一种计算机可读存储媒体,其具有存储于其上的用于产生与替换盒(S盒)相关联的加密值的指令,所述指令在通过至少一处理器执行时使得所述处理器获得输入值及第一值且通过以下操作中的一者产生S盒输出值:(A)对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作以产生所述S盒输出值;(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作以产生所述第一中间值,且对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作以产生第二中间值,获得第二值,且对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
根据一方面,所述指令在通过所述处理器执行时进一步使得所述处理器:获得主要输入值;分配所述主要输入值的位以获得多个非线性变换函数(NLTF)输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及串接所述多个NLTF输出值以获得所述输入值。
附图说明
图1说明现有技术中出现的基于n位到n位汉明权重位函数(HWBF)的替换盒(S盒)的示意框图。
图2说明描绘基于HWBF的S盒输出z与HWBF W(x)之间的关系的表。
图3说明S盒的第一示范性示意框图。
图4说明S盒的第二示范性示意框图。
图5说明S盒的第三示范性示意框图。
图6说明加密函数f从加密密钥/识别符K1导出变量值C1的实例。
图7说明从密码模块的级导出/接收变量值C2的实例。
图8说明S盒的第四示范性示意框图。
图9说明用于产生与S盒相关联的加密值的方法的流程图。
图10说明并入有本文中描述的S盒的电子装置的硬件实施方案的示意框图。
图11说明电子装置的处理器的示意框图。
具体实施方式
在以下说明中,给出具体细节以提供对本发明的各种方面的完整理解。然而,所属领域的一般技术人员应理解,可在无此些具体细节的情况下实践所述方面。举例来说,可以框图展示电路,以免以不必要的细节使所述方面模糊。在其它例子中,可不详细展示熟知电路、结构及技术,以免使本发明的方面模糊。
词语“示范性”在本文中用以意谓“充当实例、例子或说明”。本文中描述为“示范性”的任何实施方案或方面不必理解为比揭示内容的其它方面较佳或有利。同样,术语“方面”不要求揭示内容的所有方面包含所论述的特征、优点或操作模式。
示范性S盒:对HWBF的输入执行异或(XOR)操作
图3说明根据本发明的一方面的S盒300的示意框图。逐位异或(XOR)函数302接收输入值x(例如,110101)及第一值(例如,100110)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。逐位XOR函数302产生输入到旋转函数304中的第一中间输出y(例如,010011)。在此实例中,旋转函数304对第一中间输出y执行逐位左旋转,旋转输出y的汉明权重(例如,左旋转3)。旋转函数304的所得输出z(例如,011010)表示n个并列HWBF输出,其中n为输入值x的位长度。应注意,输出z不必与输入值x具有相同汉明权重,且因此S盒300的输出z相比现有技术方法在抵抗密码分析方面更安全。S盒300的输出z可与输入x具有相同位数目。根据一方面,旋转函数304可改为执行逐位右旋转,且过程将在加密安全性方面仍然等效。
XOR函数302可为充当用于对输入值及第一值执行逐位异或操作以产生第一中间值的装置的一实例的XOR电路。旋转函数304可通过充当以下项的一实例的RotateHM电路执行:用于对第一中间值以等于第一中间值的汉明权重的位数目执行逐位旋转操作,以产生S盒输出值的装置;及用于产生输出S盒值的装置。
示范性S盒:对HWBF的输出执行XOR操作
图4说明根据本发明的一方面的S盒400的示意框图。旋转函数402接收输入值x(例如,110101)作为输入。在此实例中,旋转函数402对输入值x执行逐位左旋转,旋转输入x的汉明权重(例如,左旋转4)以产生第一中间输出y(例如,011101)。旋转函数402的所得中间输出y表示n个并列HWBF输出,其中n为输入值x的位长度。接下来,逐位XOR函数404接收中间输出y及第一值(例如,101100)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。XOR函数404产生不必与输入值x具有相同汉明权重的输出z(例如,110001)。因此S盒400的输出z相比现有技术方法在抵抗密码分析方面更安全。S盒400的输出z可与输入x具有相同位数目。根据一方面,旋转函数402可改为执行逐位右旋转,且过程将在加密安全性方面仍然等效。
旋转函数402可通过RotateHM电路执行,所述电路充当用于对输入值以等于输入值的汉明权重的位数目执行逐位旋转操作,以产生第一中间值的装置的一实例。XOR函数404可通过充当以下项的一实例的XOR电路执行:用于对第一中间值及第一值执行逐位XOR操作以产生S盒输出值的装置;及用于产生输出S盒值的装置。
示范性S盒:对HWBF的输入及输出执行XOR操作
图5说明根据本发明的一方面的S盒500的示意框图。逐位XOR函数502接收输入值x(例如,110101)及第一值(例如,001100)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。逐位XOR函数502产生输入到旋转函数504中的第一中间输出w(例如,111001)。在此实例中,旋转函数504对第一中间输出w执行逐位左旋转,旋转输出w的汉明权重(例如,左旋转4)。旋转函数504的所得第二中间输出y(例如,011110)表示n个并列HWBF输出,其中n为中间值y的位长度。接着,另一逐位XOR函数506接收第二中间输出y及第二值(例如,111000)作为输入。在所说明的实例中,第二值为具有非零汉明权重的常量值。XOR函数506产生不必与输入值x具有相同汉明权重的输出z(例如,100110)。因此S盒500的输出z相比现有技术方法在抵抗密码分析方面更安全。S盒500的输出z可与输入x具有相同位数目。根据一方面,旋转函数504可改为执行逐位右旋转,且过程将仍在加密上等效。
XOR函数502可通过充当用于对输入值及第一值执行逐位XOR操作以产生第一中间值的装置的一实例的XOR电路执行。旋转函数504可通过RotateHM电路执行,所述电路充当用于对第一中间值以等于第一中间值的汉明权重的位数目执行逐位旋转操作以产生第二中间值的装置的一实例。XOR函数506可通过充当以下各者的一实例的XOR电路执行:对第二中间值及第二值执行逐位XOR操作以产生S盒输出值;及用于产生输出S盒值的装置。
在上文关于图3、4及5描述的实例中,旋转函数执行等于其输入的汉明权重的逐位左旋转。然而,在其它方面中,旋转函数可执行等于其输入的汉明权重的逐位右旋转。在此状况下,通过旋转函数输出的值的最高有效位(而非最低有效位)表示替代性HWBFW'(x)的输出。替代性HWBF W'(x)可具有输入x,其为n位输入,其中xi为x的第i个最低有效位(1<=i<=n)。函数W'(x)因此定义为:
如果x=0,那么W'(x)=0,
否则,W'(x)=xk,其中k为x的汉明权重。
作为一实例,如果旋转函数504将第一中间值w 111001向右旋转而非向左旋转,那么第二中间值y将等于100111而非011110。在进行第二值111000的XOR操作506之后,S盒500的输出z将为011111。
根据一方面,输入到XOR函数302、404、502、506的第一及第二值可为如上文描述的常量。然而,在其它方面中,第一及第二值完全无需为常量。在一方面中,第一及第二值可为可变的,从而其值随时间改变,在起动时改变,及/或在S盒300、400、500的某一迭代数目(即,所产生的输出值)之后改变。作为一实例,第一及第二值可为可变的,这是因为所述值是使用改变的函数或本身改变的密钥而从加密密钥导出。此方案可使得S盒300、400、500的输出对密码攻击更有效。根据一方面,所提供的第一及/或第二值经配置以产生与输入值具有不同汉明权重的S盒输出值,其中可能性等于或大于50%。
第一与第二值的示范性类型
图6说明加密函数f 602从加密密钥/识别符K1导出变量值C1的一此实例。除其它之外,加密函数f 602可为散列函数。变量值C1接着以上文关于图3描述的相同方式用作输入到XOR函数302中以产生S盒300输出z的第一值。其它S盒400、500中的任一者可以相同方式进行修改,从而彼处使用的第一及/或第二值是使用加密函数从密钥/识别符导出,例如加密函数f 602及密钥/识别符K1
根据第一与第二值可变的另一方面,第一与第二值可从邻近于S盒发生的加密的其它操作导出。图7说明从密码模块702的级导出/接收变量值C2的一此实例。密码模块702可包含复数N个整数组件704、706、708,且变量值C2可从到那些组件704、706、708中的任一者的输出或输入导出。除其它之外,组件704、706、708可为移位寄存器、加法器、乘法器、处理电路/块等等。在一方面中,S盒300、400、500可为密码模块702的部分,但在其它方面中,S盒300、400、500可独立于密码模块702。根据一实例,密码块702可为流密码。
变量值C2接着以上文关于图3描述的相同方式用作输入到XOR函数302中以产生S盒300输出z的第一值。其它S盒400、500中的任一者可以相同方式进行修改,从而彼处使用的第一及/或第二值是如图7中所示的从密码模块的一或多级导出。
根据一方面,可变输入C1与C2(即,第一与第二值)可经提供从而具有等于或大于50%、60%、70%、80%、90%、95%,或99%中的一者的具有非零汉明权重的可能性。根据另一方面,可变输入C1与C2可经提供从而具有等于或大于百分之100*(1-2-n)的具有非零汉明权重的可能性,其中n为可变输入C1与C2的位数目。
特征为额外NLTF级的示范性S盒
图8说明根据本发明的另一方面的S盒800的示意框图。S盒800(例如,“主要S盒”)包括位分配电路802、复数N个非线性变换函数(NLTF)子电路804、806、808、810(其中N为等于或大于两个(2)的整数)、串接电路812,及S盒A子电路814。非NLTF子电路804、806、808、810可为基于标准非线性变换表的s盒。S盒子电路A 814为图3到7中展示且描述的S盒300、400、500中的任一者。
主要S盒800接收n位主要输入x且产生改进加密安全性的n位主要S盒输出z。位分配电路802将n位主要输入x碎裂成多个较小的m1、m2、m3、……、mN位NLTF输入值803a、803b、803c、……、803n(即,m1、m2、m3及mN小于n)。非NLTF子电路804、806、808、810可根据非线性操作,使用查找表将NLTF输入值803a、803b、803c、……、803n变换成NLTF输出值805a、805b、805c、……、805n。NLTF输入值803a、803b、803c、……、803n可与其对应的NLTF输出值805a、805b、805c、……、805n具有相同位数目。NLTF输出值805a、805b、805c、……、805n接着通过串接电路812串接在一起以产生n位输入值y。与上文关于图3到7描述的操作/步骤相同,S盒A 804连同第一及/或第二值接收n位输入值y(参见,例如图3到7),且执行一或多个XOR及汉明权重旋转操作(参见,例如图3到7)以产生主要n位S盒输出值z。此些输出值可与通过S盒子电路804、806、808、810接收的输入值具有相同位长度(即,m1、m2、m3及mN)。
根据一方面,位分配电路802充当用于分配主要输入值的位以获得多个非线性变换函数(NLTF)输入值的装置的一实例,其中每一NLTF输入值具有小于主要输入值的位数目的位数目。位分配电路802可进一步充当用于将NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值的装置的一实例,其中所述多个NLTF输出值中的每一者对应于提供到NLTF的NLTF输入值。串接电路812充当用于串接多个NLTF输出值以获得输入值的装置的一实例。
现将根据一非限制性实例描述主要S盒800的操作。主要S盒800可接收具有位b0、b1、b2、…、b31的32位主要输入x,其中位分配电路802将所述32位主要输入碎裂成到NLTF子电路804、806、808、810的四个(4)8位输入803a、803b、803c、…、803n。四个(4)8位输入803a、803b、803c、…、803n可因此通过位表示:b0,b1,b2,…b7;b8,b9,b10,…b15;b16,b17,b18,…b23;及b24,b25,b26,…b31。每一NLTF子电路804、806、808、810接收其对应输入,且可产生相等位数目(例如,8位)的输出805a、805b、805c、…、805n。串接电路812接着串接此些输出值805a、805b、805c、…、805n以产生32位S盒A 814输入值y。根据一方面,值m1、m2、m3,及mN彼此相等,从而来自主要输入x的相等数目的位被发送到每一NLTF子电路804、806、808、810。根据另一方面,值m1、m2、m3,及mN彼此不等,但小于位数目值n。
根据一实例,S盒A 814为图3中所示的S盒300。因此,类似于图3中描绘的过程,S盒A 814对输入值y及32位第一值执行XOR操作以产生中间值。接下来,S盒A814将中间值旋转(左或右)中间值的汉明权重。接着,所得的经旋转32位值作为32位主要S盒输出值z从S盒A 814输出。32位第一值可通过电路提供(图8中未展示),且可为常量(如图3中所示)或变量(如图6及7中所示)。
用于产生加密值的示范性方法
图9说明用于产生与替换盒(S盒)相关联的加密值的方法的流程图900。所述方法包括获得输入值及第一值902,及通过以下步骤中的一者产生S盒输出值904:(A)对输入值及第一值执行逐位异或(XOR)操作以产生第一中间值906a,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生S盒输出值908a;或(B)对输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生第一中间值906b,且对所述第一中间值及第一值执行逐位XOR操作以产生S盒输出值908b;或(C)对输入值及第一值执行逐位XOR操作以产生第一中间值906c,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值908c,获得第二值910c,且对所述第二中间值及所述第二值执行逐位XOR操作以产生S盒输出值912c。
并入有(一或多个)S盒的示范性电子装置
图10说明并入有本文中根据一方面描述的S盒300、400、500、800中的任一者的电子装置1000的硬件实施方案的示意框图。电子装置1000可为移动电话、智能电话、平板计算机、便携式计算机,及或具有电路的任何其它电子装置。电子装置1000可包含通信接口1010、用户接口1012,及处理系统1014。处理系统1014可包含处理电路(例如,处理器)1004、存储器电路(例如,存储器)1005、计算机可读存储媒体1006、总线接口1008,及总线1002。处理系统1014及/或处理电路1004可经配置以执行关于S盒300、400、500、800描述的步骤、函数,及/或过程中的任一者及上文关于图3、4、5、6、7、8及/或9描述的其它电路及/或模块602、702。
处理电路1004可为经调适以处理电子装置1000的数据的一或多个处理器(例如,第一处理器等)。举例来说,处理电路1004可为充当用于实施图9中描述的步骤中任一者的装置的专门处理器,例如专用集成电路(ASIC)。即,处理电路1004可经配置以获得输入值及第一值,且通过以下步骤中的一者产生S盒输出值:(A)对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,获得第二值,且对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
处理电路1004的实例包含微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、状态机、门控逻辑、离散硬件电路,及经配置以执行本发明通篇描述的各种功能性的其它合适硬件。处理电路1004还负责管理总线1002,且执行存储于计算机可读存储媒体1006及/或存储器1005上的软件。所述软件在通过处理电路1004执行时导致处理电路1014执行上文关于S盒300、400、500、800描述的各种功能、步骤,及/或过程。计算机可读存储媒体1006可用于存储通过处理电路1004在执行软件时操纵的数据。
存储器电路1005可为非易失性存储器,例如(但不限于)FLASH存储器、磁性或光学硬盘驱动器等等。在一些方面中,存储扇区信息及/或开销消息(包含配置序列号)的存储器可为可持续供电从而无限存储信息的易失性存储器,例如DRAM(例如,DDRSDRAM)、SRAM等等。
软件应被广泛地解释为意谓指令、指令集、代码、码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软件封装、例程、子例程、对象、可执行码、执行线程、程序、函数等等,而无论是被称为软件、固件、中间软件、微码、硬件描述语言或是其它者。软件可驻留于计算机可读存储媒体1006上。计算机可读存储媒体1006可为非暂时性计算机可读存储媒体。通过实例,非暂时性计算机可读存储媒体包含磁性存储装置(例如,硬盘、软盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功能光盘(DVD))、智能卡、快闪存储器装置(例如,卡、条或键驱动)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可拆卸式磁盘,及用于存储可通过计算机存取及读取的软件及/或指令的任何其它合适媒体。通过实例,计算机可读存储媒体还可包含载波、传输线,及用于传输可通过计算机存取及读取的软件及/或指令的任何其它合适媒体。计算机可读存储媒体1006可驻留于处理系统1014中,位于处理系统1014外部,或分布于包含处理系统1014的多个实体上。计算机可读存储媒体1006可体现于计算机程序产品中。
在此实例中,处理系统1014可用大体上由总线1002表示的总线架构来实施。取决于处理系统1014的特定应用及总体设计约束,总线1002可包含任何数目的互连总线及桥接器。总线1002将各种电路连结在一起,包含一或多个处理器(大体上由处理器1004表示)、存储器1005,及计算机可读媒体(大体上由计算机可读存储媒体1006表示)。总线1002还可连结各种其它电路,例如定时源、周边设备、电压调节器及功率管理电路,所述电路为所属领域中所熟知的且因此将不再作任何进一步描述。总线接口1008于总线1002与通信接口1010(如果存在)之间提供接口。通信接口1010提供用于在传输媒体上与其它设备通信的装置。取决于设备的本质,用户接口1012(例如,小键盘、显示器、扬声器、麦克风、触摸屏显示器等等)还可用于电子装置1000。
图11说明根据本发明的一方面的处理器1004的示意框图。除其它之外,处理器1004包括主要输入值、输入值、第一值,及/或第二值获得电路1102。获得电路1102充当用于获得主要输入值、输入值、第一值,及/或第二值的装置的一实例。处理器1004进一步包括非线性变换函数电路1104,其经配置以执行NLTF,如上文关于图8所描述。
图3、4、5、6、7、8、9、10及/或11中所说明的组件、步骤、特征及/或功能的一或多者可重排及/或组合成单一组件、步骤、特征或功能,或体现于若干组件、步骤或功能中。在不脱离本发明的情况下,还可添加额外元件、组件、步骤及/或功能。图3、4、5、6、7、8、10及/或11中说明的设备、装置,及/或组件可经配置以执行图9中所描述的方法、特征,或步骤中的一或多者。本文中描述的算法还可有效实施于软件中及/或嵌入硬件中。
此外,在本发明的一方面中,图10及/或11中说明的处理电路1004可为经专门设计及/或硬连线以执行图9中描述的算法、方法,及/或步骤的专门处理器(例如,专用集成电路(例如,ASIC))。因此,此专门处理器(例如,ASIC)可为用于执行图9中描述的算法、方法,及/或步骤的装置的一实例。计算机可读存储媒体1006还可存储处理器1004可读指令,所述指令在通过专门处理器(例如,ASIC)执行时导致所述专门处理器执行图9中描述的算法、方法,及/或步骤。
而且,应注意,可将本发明的所述方面描述为一过程,所述过程可被描绘为流程图、流程图、结构图或框图。虽然流程图可将操作描述为顺序过程,但操作中的许多者可并行或同时执行。另外,可重排所述操作的次序。当过程的操作完成时,所述过程终止。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止对应于所述函数返回到调用函数或主函数。
此外,存储媒体可表示用于存储数据的一或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置及/或用于存储信息的其它机器可读媒体及处理器可读媒体,及/或计算机可读媒体。术语“机器可读媒体”、“计算机可读媒体”,及/或“处理器可读媒体”可包含(但不限于)非暂时性媒体,例如便携式或固定型存储装置、光学存储装置,及能够存储、包括,或载送指令及/或数据的各种其它媒体。因此,本文中描述的各种方法可通过可存储于“机器可读媒体”、“计算机可读媒体”,及/或“处理器可读媒体”中且通过一或多个处理器、机器,及/或装置执行的指令及/或数据完全或部分实施。
另外,本发明的方面可由硬件、软件、固件、中间软件、微码、或其任一组合来实施。当实施于软件、固件、中间软件或微码中时,可将用以执行必要任务的程序代码或码段存储于例如存储媒体或其它存储器等机器可读媒体中。处理器可执行必要任务。码段可表示程序、函数、子程序、程序、例程、子例程、模块、软件封装、类别、或指令、数据结构或程序语句的任一组合。可通过传递及/或接收信息、数据、引数、参数或存储器内容而将码段耦合到另一码段或硬件电路。可经由包含存储器共享、消息传递、符记传递、网络传输等等的任何合适方式来传递、转发或传输信息、引数、参数、数据等等。
结合本文中所揭示的实例而描述的各种说明性逻辑块、模块、电路、元件及/或组件可以通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代例中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可被实施为计算组件的组合,例如,DSP与微处理器的组合、许多微处理器、结合DSP核心的一或多个微处理器,或任何其它此种配置。
结合本文中揭示的实例所描述的方法及算法可以处理单元、编程指令或其它指导的形式直接体现于硬件、可由处理器执行的软件模块或两者的组合中,且可含于单一装置中或分布于多个装置上。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可拆卸式磁盘、CD-ROM、或所属领域中已知的任一其它形式的存储媒体中。存储媒体可耦合到处理器,使得所述处理器可从所述存储媒体读取信息,并可将信息写入到所述存储媒体。在替代例中,存储媒体可整合到处理器。
所属领域的技术人员将进一步了解,结合本文中所揭示的方面而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上在功能性方面描述了各种说明性组件、块、模块、电路及步骤。此功能性经实施为硬件或是软件取决于特定应用及强加于整个系统的设计约束而定。
本文中所描述的本发明的各种特征可在不脱离本发明的情况下实施于不同系统中。应注意,揭示内容的前述方面仅为实例,且不应理解为限制本发明。本揭示内容的方面的描述意图为说明性的,且不限制权利要求书的范围。因此,本发明的教示可易于应用于其它类型的设备,且许多替代、修改及变化对于那些所属领域的技术人员来说将为显而易见的。

Claims (28)

1.一种用于产生与替换盒S盒相关联的加密值的方法,所述方法包括:
获得输入值及第一值;及
通过以下步骤中的一者产生S盒输出值:
(A)对所述输入值及所述第一值执行逐位异或XOR操作以产生第一中间值,且
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;
(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且
对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或
(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,
获得第二值,且
对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
2.根据权利要求1所述的方法,其中所提供的所述第一及/或第二值中的至少一者经配置以产生具有等于或大于50%可能性的与所述输入值具有不同汉明权重的所述S盒输出值。
3.根据权利要求1所述的方法,其中所述第一值及/或所述第二值中的至少一者为具有非零汉明权重的常量。
4.根据权利要求1所述的方法,其中所提供的所述第一及/或第二值中的至少一者是可变的,且具有等于或大于百分之100*(1-2-n)的具有非零汉明权重的可能性,其中n为所述第一及/或第二值的位数目。
5.根据权利要求1所述的方法,其中所述第一值及/或所述第二值中的至少一者是从加密函数及/或加密密钥中的至少一者导出。
6.根据权利要求1所述的方法,其中所述第一值及/或所述第二值中的至少一者是从加密模块的组件级导出。
7.根据权利要求6所述的方法,其中所述密码模块为流密码。
8.根据权利要求1所述的方法,其中所述方法是在存储器电路中执行。
9.根据权利要求1所述的方法,其中所述输入值及所述S盒输出值具有相同位数目。
10.根据权利要求1所述的方法,其进一步包括:
获得主要输入值;
分配所述主要输入值的位以获得多个非线性变换函数NLTF输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;
将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及
串接所述多个NLTF输出值以获得所述输入值。
11.根据权利要求10所述的方法,其中所述主要输入值经分配使得所述多个NLTF输入值中的每一者具有相同位数目。
12.一种电子装置,其包括:
处理电路,其经配置以
获得输入值及第一值;及
通过以下步骤中的一者产生替换盒S盒输出值:
(A)对所述输入值及所述第一值执行逐位异或XOR操作以产生第一中间值,且
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;
(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且
对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或
(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,
获得第二值,且
对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
13.根据权利要求12所述的电子装置,其中所提供的所述第一及/或第二值中的至少一者经配置以产生具有等于或大于50%可能性的与所述输入值具有不同汉明权重的所述S盒输出值。
14.根据权利要求12所述的电子装置,其中所述第一值及/或所述第二值中的至少一者为具有非零汉明权重的常量。
15.根据权利要求12所述的电子装置,其中所提供的所述第一及/或第二值中的至少一者是可变的,且具有等于或大于百分之100*(1-2-n)的具有非零汉明权重的可能性,其中n为所述第一及/或第二值的位数目。
16.根据权利要求12所述的电子装置,其中所述第一值及/或所述第二值中的至少一者是从加密函数及/或加密密钥中的至少一者导出。
17.根据权利要求12所述的电子装置,其中所述第一值及/或所述第二值中的至少一者是从加密模块的组件级导出。
18.根据权利要求12所述的电子装置,其中所述处理电路经进一步配置以:
获得主要输入值;
分配所述主要输入值的位以获得多个非线性变换函数NLTF输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;
将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及
串接所述多个NLTF输出值以获得所述输入值。
19.一种电子装置,其包括:
用于获得输入值及第一值的装置;及
用于通过以下步骤中的一者产生替换盒S盒输出值的装置:
(A)用于对所述输入值及所述第一值执行逐位异或XOR操作以产生第一中间值的装置,及
用于对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值的装置;
(B)用于对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值的装置,及
用于对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值的装置;或
(C)用于对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值的装置,
用于对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值的装置,
用于获得第二值的装置,及
用于对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值的装置。
20.根据权利要求19所述的电子装置,其中所提供的所述第一及/或第二值中的至少一者经配置以产生具有等于或大于50%可能性的与所述输入值具有不同汉明权重的所述S盒输出值。
21.根据权利要求19所述的电子装置,其中所述第一值及/或所述第二值中的至少一者为具有非零汉明权重的常量。
22.根据权利要求19所述的电子装置,其中所述第一值及/或所述第二值中的至少一者是从加密函数及/或加密密钥中的至少一者导出。
23.根据权利要求19所述的电子装置,其中所述第一值及/或所述第二值中的至少一者是从加密模块的组件级导出。
24.根据权利要求19所述的电子装置,其进一步包括:
用于获得主要输入值的装置;
用于分配所述主要输入值的位以获得多个非线性变换函数NLTF输入值的装置,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;
用于将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值的装置,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及
用于串接所述多个NLTF输出值以获得所述输入值的装置。
25.一种计算机可读存储媒体,其具有存储于其上的用于产生与替换盒S盒相关联的加密值的指令,所述指令在通过至少一处理器执行时使得所述处理器:
获得输入值及第一值;及
通过以下步骤中的一者产生S盒输出值:
(A)对所述输入值及所述第一值执行逐位异或XOR操作以产生第一中间值,且
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生所述S盒输出值;
(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作,以产生所述第一中间值,且
对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或
(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,
对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作,以产生第二中间值,
获得第二值,且
对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
26.根据权利要求25所述的计算机可读存储媒体,其中所提供的所述第一及/或第二值中的至少一者经配置以产生具有等于或大于50%可能性的与所述输入值具有不同汉明权重的所述S盒输出值。
27.根据权利要求25所述的计算机可读存储媒体,其中所述第一值及/或所述第二值中的至少一者为具有非零汉明权重的常量。
28.根据权利要求25所述的计算机可读存储媒体,其中所述指令在通过所述处理器执行时进一步使得所述处理器:
获得主要输入值;
分配所述主要输入值的位以获得多个非线性变换函数NLTF输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;
将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及
串接所述多个NLTF输出值以获得所述输入值。
CN201380067737.9A 2013-01-11 2013-12-27 用于可计算、大型、可变及安全的替换盒的方法及设备 Expired - Fee Related CN104871476B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361751541P 2013-01-11 2013-01-11
US61/751,541 2013-01-11
US13/935,962 US10142099B2 (en) 2013-01-11 2013-07-05 Method and apparatus for a computable, large, variable and secure substitution box
US13/935,962 2013-07-05
PCT/US2013/077939 WO2014109918A1 (en) 2013-01-11 2013-12-27 Method and apparatus for a computable, large, variable and secure substitution box

Publications (2)

Publication Number Publication Date
CN104871476A true CN104871476A (zh) 2015-08-26
CN104871476B CN104871476B (zh) 2018-05-25

Family

ID=51165146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380067737.9A Expired - Fee Related CN104871476B (zh) 2013-01-11 2013-12-27 用于可计算、大型、可变及安全的替换盒的方法及设备

Country Status (7)

Country Link
US (1) US10142099B2 (zh)
EP (1) EP2944050A1 (zh)
JP (1) JP2016503195A (zh)
KR (1) KR20150105405A (zh)
CN (1) CN104871476B (zh)
TW (1) TWI533652B (zh)
WO (1) WO2014109918A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
CN113014377B (zh) * 2021-02-01 2022-07-22 中国科学院软件研究所 一种利用分组密码s盒双射特性的持久故障攻击防护方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US20020154767A1 (en) * 2001-02-22 2002-10-24 Takashi Endo Tamper resistance device
CN1488091A (zh) * 2000-12-21 2004-04-07 Cp8技术公司 具有微处理器的电子模块中安装的逻辑或数学操作符的保护方法
CN101086769A (zh) * 2006-06-07 2007-12-12 三星电子株式会社 用于加密输入数据的密码系统、错误检测电路及操作方法
CN101520965A (zh) * 2008-02-29 2009-09-02 英特尔公司 包括执行变换序列以隔离一个变换的指令的指令组合
CN101826959A (zh) * 2010-05-14 2010-09-08 中国科学院软件研究所 一种面向字节的密钥流生成方法及加密方法
CN101841415A (zh) * 2009-12-29 2010-09-22 中国科学院软件研究所 一种面向字的密钥流生成方法及加密方法
CN101848078A (zh) * 2010-04-30 2010-09-29 中国科学院软件研究所 一种密钥流序列扰动方法及加密方法
US20110013769A1 (en) * 2008-03-31 2011-01-20 Fujitsu Limited Encryption apparatus having common key encryption function and embedded apparatus
WO2012132622A1 (ja) * 2011-03-28 2012-10-04 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4382300A (en) 1981-03-18 1983-05-03 Bell Telephone Laboratories Incorporated Method and apparatus for decoding cyclic codes via syndrome chains
JPH0814748B2 (ja) 1988-01-11 1996-02-14 日本電信電話株式会社 データ拡散機構
JPH0687187B2 (ja) 1988-03-31 1994-11-02 日本電信電話株式会社 データ拡散回路
JP2553913B2 (ja) 1988-05-30 1996-11-13 日本電信電話株式会社 ブロック暗号装置のデータ拡散器
JPH03254538A (ja) 1990-03-05 1991-11-13 Nippon Telegr & Teleph Corp <Ntt> 暗号方式
WO1999008411A2 (en) 1997-08-08 1999-02-18 Jonathan Stiebel New operation for key insertion with folding
US6185679B1 (en) 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US6269163B1 (en) 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
EP1496641A3 (en) 2003-07-07 2005-03-02 Sony Corporation Cryptographic processing apparatus, cryptographic processing method and computer program
US20060002548A1 (en) 2004-06-04 2006-01-05 Chu Hon F Method and system for implementing substitution boxes (S-boxes) for advanced encryption standard (AES)
FR2893796B1 (fr) 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JP4882598B2 (ja) 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5203594B2 (ja) 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法
CN101729241B (zh) 2008-10-23 2012-01-25 国民技术股份有限公司 抵御差分能量攻击的aes加密方法
FR2941342B1 (fr) 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
US20100329450A1 (en) 2009-06-30 2010-12-30 Sun Microsystems, Inc. Instructions for performing data encryption standard (des) computations using general-purpose registers

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
CN1488091A (zh) * 2000-12-21 2004-04-07 Cp8技术公司 具有微处理器的电子模块中安装的逻辑或数学操作符的保护方法
US20020154767A1 (en) * 2001-02-22 2002-10-24 Takashi Endo Tamper resistance device
CN101086769A (zh) * 2006-06-07 2007-12-12 三星电子株式会社 用于加密输入数据的密码系统、错误检测电路及操作方法
CN101520965A (zh) * 2008-02-29 2009-09-02 英特尔公司 包括执行变换序列以隔离一个变换的指令的指令组合
US20110013769A1 (en) * 2008-03-31 2011-01-20 Fujitsu Limited Encryption apparatus having common key encryption function and embedded apparatus
CN101841415A (zh) * 2009-12-29 2010-09-22 中国科学院软件研究所 一种面向字的密钥流生成方法及加密方法
CN101848078A (zh) * 2010-04-30 2010-09-29 中国科学院软件研究所 一种密钥流序列扰动方法及加密方法
CN101826959A (zh) * 2010-05-14 2010-09-08 中国科学院软件研究所 一种面向字节的密钥流生成方法及加密方法
WO2012132622A1 (ja) * 2011-03-28 2012-10-04 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUANLI ZENG 等: ""improvement on masked s-box hardware implemention"", 《2012 INTERNATIONAL CONFERENCE ON INNOVATIONS IN INFORMATION TECHNOLOGY (IIT)》 *

Also Published As

Publication number Publication date
EP2944050A1 (en) 2015-11-18
CN104871476B (zh) 2018-05-25
TWI533652B (zh) 2016-05-11
KR20150105405A (ko) 2015-09-16
US20140198913A1 (en) 2014-07-17
WO2014109918A1 (en) 2014-07-17
TW201440480A (zh) 2014-10-16
JP2016503195A (ja) 2016-02-01
US10142099B2 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
CN109040090B (zh) 一种数据加密方法及装置
CN106850221B (zh) 信息加密、解密方法及装置
CN101753292B (zh) 用于链接式加密模式的方法和设备
CN102204158B (zh) 低等待时间的分块密码术
US10176121B2 (en) Apparatus and method for memory address encryption
CN102484581A (zh) 使用中间数据更改的具有可配置密钥的白盒密码系统
JP7065888B6 (ja) 暗号装置及び方法
US8675866B2 (en) Multiplicative splits to protect cipher keys
CN105024803A (zh) 白箱实现中的行为指纹
WO2012132620A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
EP2996278A1 (en) Remapping constant points in a white-box implementation
US9485226B2 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
CN105095695B (zh) 经由白箱实现的不正确功能行为实现授权
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
CN101848081A (zh) 一种s盒构造方法及s盒
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN105916141B (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
US20130243191A1 (en) Encryption key generating apparatus
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
EP2960891B1 (en) Method for introducing dependence of white-box implementationon a set of strings
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
US20120237035A1 (en) Key scheduling device and key scheduling method
CN104871476A (zh) 用于可计算、大型、可变及安全的替换盒的方法及设备
CN104484615A (zh) 适用于可重构阵列架构的基于空间随机化抗故障攻击方法
CN104486069A (zh) 一种基于fpga实现的gost加解密设备及其方法

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180525

Termination date: 20211227

CF01 Termination of patent right due to non-payment of annual fee