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

文档序号:8548374阅读:来源:国知局
获得输入值及第一值且通过以下操作中的一者产生S盒输出值:(A)对所述输入值及所述第一值执行逐位异或(XOR)操作以产生第一中间值,且对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作以产生所述S盒输出值;(B)对所述输入值以等于所述输入值的汉明权重的位数目执行逐位旋转操作以产生所述第一中间值,且对所述第一中间值及所述第一值执行逐位XOR操作以产生所述S盒输出值;或(C)对所述输入值及所述第一值执行逐位XOR操作以产生所述第一中间值,对所述第一中间值以等于所述第一中间值的汉明权重的位数目执行逐位旋转操作以产生第二中间值,获得第二值,且对所述第二中间值及所述第二值执行逐位XOR操作以产生所述S盒输出值。
[0022]根据一方面,所述指令在通过所述处理器执行时进一步使得所述处理器:获得主要输入值;分配所述主要输入值的位以获得多个非线性变换函数(NLTF)输入值,其中每一NLTF输入值具有小于所述主要输入值的位数目的位数目;将所述NLTF输入值中的每一者提供到执行非线性操作的NLTF以产生多个NLTF输出值,所述多个NLTF输出值的每一者对应于提供到所述NLTF的所述NLTF输入值;及串接所述多个NLTF输出值以获得所述输入值。
【附图说明】
[0023]图1说明现有技术中出现的基于η位到η位汉明权重位函数(HWBF)的替换盒(S盒)的示意框图。
[0024]图2说明描绘基于HWBF的S盒输出ζ与HWBF ff(x)之间的关系的表。
[0025]图3说明S盒的第一示范性示意框图。
[0026]图4说明S盒的第二示范性示意框图。
[0027]图5说明S盒的第三示范性示意框图。
[0028]图6说明加密函数f从加密密钥/识别符K1导出变量值C ^勺实例。
[0029]图7说明从密码模块的级导出/接收变量值(:2的实例。
[0030]图8说明S盒的第四示范性示意框图。
[0031]图9说明用于产生与S盒相关联的加密值的方法的流程图。
[0032]图10说明并入有本文中描述的S盒的电子装置的硬件实施方案的示意框图。
[0033]图11说明电子装置的处理器的示意框图。
【具体实施方式】
[0034]在以下说明中,给出具体细节以提供对本发明的各种方面的完整理解。然而,所属领域的一般技术人员应理解,可在无此些具体细节的情况下实践所述方面。举例来说,可以框图展示电路,以免以不必要的细节使所述方面模糊。在其它例子中,可不详细展示熟知电路、结构及技术,以免使本发明的方面模糊。
[0035]词语“示范性”在本文中用以意谓“充当实例、例子或说明”。本文中描述为“示范性”的任何实施方案或方面不必理解为比揭示内容的其它方面较佳或有利。同样,术语“方面”不要求揭示内容的所有方面包含所论述的特征、优点或操作模式。
[0036]示范性S盒:对HWBF的输入执行异或(XOR)操作
[0037]图3说明根据本发明的一方面的S盒300的示意框图。逐位异或(XOR)函数302接收输入值χ (例如,110101)及第一值(例如,100110)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。逐位XOR函数302产生输入到旋转函数304中的第一中间输出y(例如,010011)。在此实例中,旋转函数304对第一中间输出y执行逐位左旋转,旋转输出I的汉明权重(例如,左旋转3)。旋转函数304的所得输出z (例如,011010)表示η个并列HWBF输出,其中η为输入值χ的位长度。应注意,输出ζ不必与输入值χ具有相同汉明权重,且因此S盒300的输出ζ相比现有技术方法在抵抗密码分析方面更安全。S盒300的输出ζ可与输入χ具有相同位数目。根据一方面,旋转函数304可改为执行逐位右旋转,且过程将在加密安全性方面仍然等效。
[0038]XOR函数302可为充当用于对输入值及第一值执行逐位异或操作以产生第一中间值的装置的一实例的XOR电路。旋转函数304可通过充当以下项的一实例的Rotateffl电路执行:用于对第一中间值以等于第一中间值的汉明权重的位数目执行逐位旋转操作,以产生S盒输出值的装置;及用于产生输出S盒值的装置。
[0039]示范性S盒:对HWBF的输出执行XOR操作
[0040]图4说明根据本发明的一方面的S盒400的示意框图。旋转函数402接收输入值x(例如,110101)作为输入。在此实例中,旋转函数402对输入值X执行逐位左旋转,旋转输入χ的汉明权重(例如,左旋转4)以产生第一中间输出y(例如,011101)。旋转函数402的所得中间输出y表示η个并列HWBF输出,其中η为输入值χ的位长度。接下来,逐位XOR函数404接收中间输出y及第一值(例如,101100)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。XOR函数404产生不必与输入值χ具有相同汉明权重的输出ζ (例如,110001)。因此S盒400的输出ζ相比现有技术方法在抵抗密码分析方面更安全。S盒400的输出ζ可与输入χ具有相同位数目。根据一方面,旋转函数402可改为执行逐位右旋转,且过程将在加密安全性方面仍然等效。
[0041]旋转函数402可通过RotateHMi路执行,所述电路充当用于对输入值以等于输入值的汉明权重的位数目执行逐位旋转操作,以产生第一中间值的装置的一实例。XOR函数404可通过充当以下项的一实例的XOR电路执行:用于对第一中间值及第一值执行逐位XOR操作以产生S盒输出值的装置;及用于产生输出S盒值的装置。
[0042]示范性S盒:对HWBF的输入及输出执行XOR操作
[0043]图5说明根据本发明的一方面的S盒500的示意框图。逐位XOR函数502接收输入值x(例如,110101)及第一值(例如,001100)作为输入。在所说明的实例中,第一值为具有非零汉明权重的常量值。逐位XOR函数502产生输入到旋转函数504中的第一中间输出w(例如,111001)。在此实例中,旋转函数504对第一中间输出w执行逐位左旋转,旋转输出w的汉明权重(例如,左旋转4)。旋转函数504的所得第二中间输出y (例如,011110)表示η个并列HWBF输出,其中η为中间值y的位长度。接着,另一逐位XOR函数506接收第二中间输出y及第二值(例如,111000)作为输入。在所说明的实例中,第二值为具有非零汉明权重的常量值。XOR函数506产生不必与输入值χ具有相同汉明权重的输出ζ (例如,100110)。因此S盒500的输出ζ相比现有技术方法在抵抗密码分析方面更安全。S盒500的输出ζ可与输入χ具有相同位数目。根据一方面,旋转函数504可改为执行逐位右旋转,且过程将仍在加密上等效。
[0044]XOR函数502可通过充当用于对输入值及第一值执行逐位XOR操作以产生第一中间值的装置的一实例的XOR电路执行。旋转函数504可通过RotateHMi路执行,所述电路充当用于对第一中间值以等于第一中间值的汉明权重的位数目执行逐位旋转操作以产生第二中间值的装置的一实例。XOR函数506可通过充当以下各者的一实例的XOR电路执行:对第二中间值及第二值执行逐位XOR操作以产生S盒输出值;及用于产生输出S盒值的装置。
[0045]在上文关于图3、4及5描述的实例中,旋转函数执行等于其输入的汉明权重的逐位左旋转。然而,在其它方面中,旋转函数可执行等于其输入的汉明权重的逐位右旋转。在此状况下,通过旋转函数输出的值的最高有效位(而非最低有效位)表示替代性HWBFW’ (χ)的输出。替代性HWBF W’ (χ)可具有输入X,其为η位输入,其中\为χ的第i个最低有效位(1〈 = i〈 = η)。函数W’(χ)因此定义为:
[0046]如果χ = 0,那么 Ψ (χ) = 0,
[0047]否则,W,(χ) = xk,其中k为χ的汉明权重。
[0048]作为一实例,如果旋转函数504将第一中间值w 111001向右旋转而非向左旋转,那么第二中间值y将等于100111而非011110。在进行第二值111000的XOR操作506之后,S盒500的输出Z将为011111。
[0049]根据一方面,输入到XOR函数302、404、502、506的第一及第二值可为如上文描述的常量。然而,在其它方面中,第一及第二值完全无需为常量。在一方面中,第一及第二值可为可变的,从而其值随时间改变,在起动时改变,及/或在S盒300、400、500的某一迭代数目(即,所产生的输出值)之后改变。作为一实例,第一及第二值可为可变的,这是因为所述值是使用改变的函数或本身改变的密钥而从加密密钥导出。此方案可使得S盒300、400,500的输出对密码攻击更有效。根据一方面,所提供的第一及/或第二值经配置以产生与输入值具有不同汉明权重的S盒输出值,其中可能性等于或大于50%。
[0050]第一与第二值的示范性类型
[0051]图6说明加密函数f 602从加密密钥/识别符K1导出变量值C1的一此实
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1