一种4比特密码s盒自动化门限掩码方法

文档序号:1965844 发布日期:2021-12-14 浏览:23次 >En<

阅读说明:本技术 一种4比特密码s盒自动化门限掩码方法 (Automatic threshold mask method for 4-bit password S box ) 是由 韦永壮 杨蕊涵 武小年 李灵琛 张润莲 于 2021-09-15 设计创作,主要内容包括:本发明公开了一种4比特密码S盒自动化门限掩码方法,包括以下四部分:计算代数正规型、构造一阶门限掩码方案、掩码方案的均匀性检测、掩码方案硬件实现的优化。其中,构造一阶门限掩码中包括常数项处理和3个算法:三次项算法、二次项算法和一次项算法。在掩码方案的硬件实现的优化中,主要包括对二次项和三次项的优化。本发明方法可以为分组密码算法自动构造门限掩码方案,以抵抗侧信道攻击;能够快速生成一阶门限掩码方案,并自动检测方案是否满足门限掩码的相关原则;仅在变元拆解时使用随机数,其他掩码环节不引入额外随机数;具有通用性,适用于4比特分组密码算法的密码S盒掩码防护。(The invention discloses an automatic threshold mask method for a 4-bit password S box, which comprises the following four parts: calculating an algebraic normative form, constructing a first-order threshold mask scheme, detecting the uniformity of the mask scheme, and optimizing the hardware implementation of the mask scheme. Wherein, constructing the first-order threshold mask comprises constant item processing and 3 algorithms: cubic term algorithms, quadratic term algorithms, and primary term algorithms. In the optimization of the hardware implementation of the mask scheme, optimization of the quadratic term and the cubic term is mainly included. The method can automatically construct a threshold mask scheme for a block cipher algorithm to resist side channel attack; the method can quickly generate a first-order threshold mask scheme and automatically detect whether the scheme meets the relevant principle of the threshold mask; random numbers are only used during argument disassembly, and additional random numbers are not introduced in other mask links; the method has universality and is suitable for the protection of the cryptographic S-box mask of a 4-bit block cipher algorithm.)

一种4比特密码S盒自动化门限掩码方法

技术领域

本发明涉及信息安全领域,具体是一种针对4比特密码S盒自动化门限掩码方法。

背景技术

分组密码算法作为主流的信息加密手段,被广泛应用于网络与信息安全领域并发挥重要作用。侧信道分析的提出,对包括分组密码算法在内的密码算法造成严重威胁。侧信道攻击主要利用密码设备(如芯片等)物理实现过程中所泄露的能耗进行分析,恢复出密钥信息。为有效抵御侧信道攻击,各种防护方法被提出,其中掩码防护是一种最有效的方法,其在算法层上进行防御,以实现算法级别的可证明安全防护。

掩码方法包括多项式掩码、ISW掩码、门限掩码、DOM掩码和乘法掩码等。基于秘密共享和多方安全计算的门限掩码在众多掩码策略中脱颖而出,其可以在有毛刺出现的情况下,避免中间值被完整探测。门限掩码要满足三个原则:正确性、非完备性和均匀性。其中均匀性需要大量的随机比特来保证,会消耗大量的芯片面积。如何在少量随机数甚至无新随机数引入的情况下使方案满足三个原则是实现门限掩码方案的重要思路。在分组密码算法中,密码S盒是唯一的非线性部件;而在侧信道攻击中,密码S盒的输出是敌手攻击的重点对象。因此,在对分组密码算法的掩码防护中,主要是增加对密码S盒的防护。

由于密码算法的差异性,目前针对密码算法的掩码方案需要设计者通过手工方式进行分析构造。现有掩码方案构造中通常采用分解密码S盒以降低其代数次数的方法。一般来讲,针对4比特密码S盒进行分解,搜索到代数次数较低且合适掩码的函数部件,通常需要较高计算量、搜索效率低,不具备普适性。如何在不分解密码S盒的情形下,能够快速、自动化地生成安全的掩码防护方案是目前亟待解决的问题。

发明内容

为有效抵抗侧信道攻击,实现分组密码算法的安全防护,本发明提出一种通用的4比特密码S盒自动化门限掩码方法,该方法只在变元拆解阶段使用随机数,而其他掩码环节不再引入额外随机数,能够通过自动化方法根据密码S盒生成一阶掩码方案并检测方案的均匀性。

实现本发明目的的技术方案是:

一种通用的4比特密码S盒自动化门限掩码方法,包括以下步骤

(1)计算代数正规型;

以4比特密码S盒真值表作为输入,计算出S盒的代数正规型;

(2)构造一阶门限掩码方案;

以密码S盒的代数正规型作为输入,设计常数项处理和3个算法,分别根据代数正规型的多项式构造出门限掩码方案的构造子集,并生成满足正确性和非完备性的一阶门限掩码方案;

所述3个算法为三次项算法、二次项算法和一次项算法;

(3)掩码方案的均匀性检测;

以生成的一阶门限掩码方案作为输入,检测在输入掩码均匀的条件下,输出掩码是否等概率出现;

(4)掩码方案硬件实现的优化;

主要包括对二次项算法和三次项算法的优化,根据掩码方案的硬件实现,分析AND和XOR器件的使用情况,在不影响方案安全性的情况下尽可能减少这些器件的使用,减少硬件面积。

步骤(1)所述计算代数正规型,具体步骤如下:

(1.1)输入4比特S盒的真值表,计算S盒的每一位二进制表示;

(1.2)根据二进制表示计算S盒的每一位的布尔函数,并表示成代数正规型,得到S盒的代数正规型。

步骤(2)所述构造一阶门限掩码方案,具体步骤如下:

(2.1)先设置4个组件函数f0,f1,f2,f3,掩码方案由这些组件函数构成;每个组件函数实现已有元素与新加入元素的异或,初始时每个组件函数都为空;

(2.2)遍历代数正规型中的每一项,若该项是一次项转步骤(2.3),若是二次项转步骤(2.4),若是三次项转步骤(2.5),若是常数项转步骤(2.6);

(2.3)根据门限实现的正确性,拆解一次项变元,为将一次项表达式中的变元x拆分成4-共享,即先随机产生x0、x1、x2,计算基于4-共享,获得一次项掩码分量集合{xi},i∈{0,1,2,3};根据门限实现的一阶不完备性,执行一次项算法对掩码分量集合中的元素进行挑选、组合;

所述一次项算法,具体步骤如下:

(2.3.1)初始化,令i=0;

(2.3.2)遍历一次项掩码分量集合{xi};

(2.3.3)将下标为i的分量xi放置在组件函数f(i+1)mod 4中;

(2.3.4)令i=i+1,若i≤3,转(2.3.2);否则转(2.3.5);

(2.3.5)输出一次项掩码方案子集{f0,f1,f2,f3};

(2.3.6)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.4)根据门限实现的正确性,拆解二次项变元,将二次项表达式中的变元m和y分别拆分成4-共享,即先随机产生m0、m1、m2,y0、y1、y2,计算基于拆分的4-共享,获得二次项掩码分量集合{miyj},i,j∈{0,1,2,3};根据门限实现的一阶不完备性,执行二次项算法对集合中的元素进行挑选、组合;

所述二次项算法,具体步骤如下:

(2.4.1)初始化,令i=0,j=0;

(2.4.2)遍历二次项掩码分量集合{miyj},若i==j转步骤(2.4.3),若|i-j|mod 2==1转步骤(2.4.4),否则转步骤(2.4.7);

(2.4.3)将掩码分量miyj放置f(i+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.4)若max(i,j)==3&&(i*j==0)转步骤(2.4.5);否则转步骤(2.4.6);

(2.4.5)将掩码分量miyj放置在f1的组件函数中,转步骤(2.4.8);

(2.4.6)将掩码分量miyj放置在f(max(i,j)+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.7)将掩码分量miyj放置在f(i+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.8)令i=i+1,若i≤3,转(2.4.2);否则,令i=0,转(2.4.9);

(2.4.9)令j=j+1,若j≤3,转(2.4.2);否则转(2.4.10);

(2.4.10)输出掩码方案子集{f0,f1,f2,f3};

(2.4.11)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.5)根据门限实现的正确性,拆解三次项变元,将三次项表达式中的变元s、t和z分别拆分成4-共享,即随机产生s0、s1、s2,t0、t1、t2,z0、z1、z2,计算基于上述4-共享,获得三次项掩码分量集合{sitjzk},i,j,k∈{0,1,2,3};根据门限实现的一阶不完备性,执行三次项算法对集合中的元素进行挑选、组合;

所述三次项算法,具体步骤如下:

(2.5.1)初始化,令i=0,j=0,k=0;

(2.5.2)遍历三次项掩码分量集合{sitjzk};若i==j==k转步骤(2.5.3),若(i!=j)&&(j!=k)&&(i!=k)转步骤(2.5.4),若(i==j)&&(i!=k)转步骤(2.5.5),若(i==k)&&(i!=j)转步骤(2.5.10),若(j==k)&&(i!=k)转步骤(2.5.15);

(2.5.3)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.4)将掩码分量sitjzk放置在f(6-i-j-k)组件函数中,转步骤(2.5.20);

(2.5.5)若|k-i|mod 2==1转步骤(2.5.6);否则转步骤(2.5.9);

(2.5.6)若max(i,k)==3&&(i*k==0)转步骤(2.5.7);否则转步骤(2.5.8);

(2.5.7)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.8)将掩码分量sitjzk放置在f(max(i,k)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.9)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.10)若|j-i|mod 2==1转步骤(2.5.11);否则转步骤(2.5.14);

(2.5.11)若max(i,j)==3&&(i*j==0)转步骤(2.5.12);否则转步骤(2.5.13);

(2.5.12)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.13)将掩码分量sitjzk放置在f(max(i,j)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.14)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.15)若|k-i|mod 2==1转步骤(2.5.16);否则转步骤(2.5.19);

(2.5.16)若max(i,k)==3&&(i*k==0)转步骤(2.5.17);否则转步骤(2.5.18);

(2.5.17)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.18)将掩码分量sitjzk放置在f(max(i,k)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.19)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.20)令i=i+1,若i≤3,转(2.5.2);否则,i=0,转(2.5.21);

(2.5.21)令j=j+1,若j≤3,转(2.5.2);否则,i=j=0,转(2.5.22);

(2.5.22)令k=k+1,若k≤3,转(2.5.2);否则转(2.5.23);

(2.5.23)输出掩码方案子集{f0,f1,f2,f3};

(2.5.24)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.6)将第一个组件函数f1异或常数项1;

(2.7)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.8)输出掩码方案{f0,f1,f2,f3}。

步骤(3)所述掩码方案的均匀性检测,具体步骤如下:

(3.1)遍历掩码方案中的每一个变元,假设这些变元分别为a,b,c,d,各变元的掩码分量假设分别为{a0,a1,a2,a3},{b0,b1,b2,b3},{c0,c1,c2,c3},{d0,d1,d2,d3};

(3.2)遍历变元的每一个掩码分量;

(3.3)分别统计掩码方案f0,f1,f2,f3在遍历过程中分别出现0和1的次数;

(3.4)若掩码方案f0,f1,f2,f3在遍历过程中统计的0的个数和1的个数都相等,则输出掩码方案是均匀的,否则输出掩码方案是不均匀的。

步骤(4)所述掩码方案硬件实现的优化,具体步骤如下:

(4.1)针对构造的掩码方案{f0,f1,f2,f3}中的表达式,为表达式中的每个不同项分别设置一个计数器,其初始值都为0;

(4.2)遍历掩码方案{f0,f1,f2,f3}中的项;

(4.3)若某个项重复出现,则将相应的计数器加1;

(4.4)在遍历完所有项后,若不同的计数器的值有不相等,转步骤(4.5);若所有计算器的值都相等且为0,转步骤(4.7);

(4.5)将所有计数器中数值最高的项作为公因式提取出来,按照乘法结合律方式重新整理掩码方案{f0,f1,f2,f3}中的项,以减少掩码方案中的与操作和异或操作;

(4.6)令该公因式的计数器为0,转步骤(4.2);

(4.7)输出提取公因式后的掩码方案{f0,f1,f2,f3},该掩码方案为硬件优化后的结果。

本发明的有益效果是:

(1)本发明方法可以为分组密码算法自动构造门限掩码方案,以抵抗侧信道攻击;

(2)本发明方法能够快速生成一阶门限掩码方案,并自动检测方案是否满足门限掩码的相关原则;

(3)本发明方法具有通用性,适用于4比特分组密码算法的密码S盒掩码防护;

(4)本发明方法仅在变元拆解时使用随机数,其他掩码环节不引入额外随机数。

附图说明

图1为本发明4比特密码S盒自动化门限掩码方法流程图;

图2为本发明掩码方法中三次项掩码算法流程图。

具体实施方式

下面结合实施例和附图对本发明内容作进一步的说明,但不是对本发明的限定。

实施例

参照图1,一种4比特密码S盒自动化门限掩码方法,包括以下步骤:

(1)计算代数正规型;

(2)构造一阶门限掩码方案;

(3)掩码方案的均匀性检测;

(4)掩码方案硬件实现的优化。

步骤(1)所述计算代数正规型,具体方法如下:

(1.1)输入4比特S盒的真值表,计算S盒的每一位二进制表示;

(1.2)根据二进制表示计算S盒的每一位的布尔函数,并表示成代数正规型,得到S盒的代数正规型。

步骤(2)所述构造一阶门限掩码方案,具体方法如下:

(2.1)先设置4个组件函数f0,f1,f2,f3,掩码方案由这些组件函数构成;每个组件函数实现已有元素与新加入元素的异或,初始时每个组件函数都为空;

(2.2)为更好地说明掩码方案构造过程,假设步骤(1)中的代数正规型表达式为f=x+my+stz+1,遍历代数正规型中的每一项,若遍历到x时,该项是一次项转步骤(2.3);若遍历到my时,该项是二次项转步骤(2.4);若遍历到stz时,该项是三次项转步骤(2.5);若遍历到1时,该项是常数项转步骤(2.6);

(2.3)根据门限实现的正确性,拆解一次项变元,为将一次项表达式中的变元x拆分成4-共享,即先随机产生x0、x1、x2,计算基于4-共享,获得一次项掩码分量集合{xi},i∈{0,1,2,3};根据门限实现的一阶不完备性,执行一次项算法对掩码分量集合中的元素进行挑选、组合;

一次项算法,具体步骤如下:

(2.3.1)初始化,令i=0;

(2.3.2)遍历一次项掩码分量集合{xi};

(2.3.3)将下标为i的分量xi放置在组件函数f(i+1)mod 4中;

(2.3.4)令i=i+1,若i≤3,转(2.3.2);否则转(2.3.5);

(2.3.5)输出一次项掩码方案子集{f0,f1,f2,f3},其中各函数具体结果如下:

f0=x3

f1=x0

f2=x1

f3=x2

(2.3.6)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.4)根据门限实现的正确性,拆解二次项变元,将二次项表达式中的变元m和y分别拆分成4-共享,即先随机产生m0、m1、m2,y0、y1、y2,计算基于拆分的4-共享,获得二次项掩码分量集合{miyj},i,j∈{0,1,2,3};根据门限实现的一阶不完备性,执行二次项算法对集合中的元素进行挑选、组合;

二次项算法,具体步骤如下:

(2.4.1)初始化,令i=0,j=0;

(2.4.2)遍历二次项掩码分量集合{miyj},若i==j转步骤(2.4.3),若|i-j|mod 2==1转步骤(2.4.4),否则转步骤(2.4.7);

(2.4.3)将掩码分量miyj放置f(i+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.4)若max(i,j)==3&&(i*j==0)转步骤(2.4.5);否则转步骤(2.4.6);

(2.4.5)将掩码分量miyj放置在f1的组件函数中,转步骤(2.4.8);

(2.4.6)将掩码分量miyj放置在f(max(i,j)+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.7)将掩码分量miyj放置在f(i+1)mod 4组件函数中,转步骤(2.4.8);

(2.4.8)令i=i+1,若i≤3,转(2.4.2);否则,令i=0,转(2.4.9);

(2.4.9)令j=j+1,若j≤3,转(2.4.2);否则转(2.4.10);

(2.4.10)输出掩码方案子集{f0,f1,f2,f3},其中各函数具体结果如下:

(2.4.11)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.5)根据门限实现的正确性,拆解三次项变元,将三次项表达式中的变元s、t和z分别拆分成4-共享,即随机产生s0、s1、s2,t0、t1、t2,z0、z1、z2,计算基于上述4-共享,获得三次项掩码分量集合{sitjzk},i,j,k∈{0,1,2,3};根据门限实现的一阶不完备性,执行三次项算法对集合中的元素进行挑选、组合;

参照图2,三次项算法,具体步骤如下:

(2.5.1)初始化,令i=0,j=0,k=0;

(2.5.2)遍历三次项掩码分量集合{sitjzk};若i==j==k转步骤(2.5.3),若(i!=j)&&(j!=k)&&(i!=k)转步骤(2.5.4),若(i==j)&&(i!=k)转步骤(2.5.5),若(i==k)&&(i!=j)转步骤(2.5.10),若(j==k)&&(i!=k)转步骤(2.5.15);

(2.5.3)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.4)将掩码分量sitjzk放置在f(6-i-j-k)组件函数中,转步骤(2.5.20);

(2.5.5)若|k-i|mod 2==1转步骤(2.5.6);否则转步骤(2.5.9);

(2.5.6)若max(i,k)==3&&(i*k==0)转步骤(2.5.7);否则转步骤(2.5.8);

(2.5.7)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.8)将掩码分量sitjzk放置在f(max(i,k)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.9)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.10)若|j-i|mod 2==1转步骤(2.5.11);否则转步骤(2.5.14);

(2.5.11)若max(i,j)==3&&(i*j==0)转步骤(2.5.12);否则转步骤(2.5.13);

(2.5.12)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.13)将掩码分量sitjzk放置在f(max(i,j)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.14)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.15)若|k-i|mod 2==1转步骤(2.5.16);否则转步骤(2.5.19);

(2.5.16)若max(i,k)==3&&(i*k==0)转步骤(2.5.17);否则转步骤(2.5.18);

(2.5.17)将掩码分量sitjzk放置在f1组件函数中,转步骤(2.5.20);

(2.5.18)将掩码分量sitjzk放置在f(max(i,k)+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.19)将掩码分量sitjzk放置在f(i+1)mod 4组件函数中,转步骤(2.5.20);

(2.5.20)令i=i+1,若i≤3,转(2.5.2);否则,i=0,转(2.5.21);

(2.5.21)令j=j+1,若j≤3,转(2.5.2);否则,i=j=0,转(2.5.22);

(2.5.22)令k=k+1,若k≤3,转(2.5.2);否则转(2.5.23);

(2.5.23)输出掩码方案子集{f0,f1,f2,f3};

(2.5.24)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.6)将第一个组件函数f1异或常数项1;

(2.7)继续遍历代数正规型,若遍历未完成,转(2.2);否则转(2.8);

(2.8)输出掩码方案{f0,f1,f2,f3},其中各函数具体结果如下:

步骤(3)所述掩码方案的均匀性检测,具体方法如下:

(3.1)遍历掩码方案中的每一个变元,假设这些变元分别为a,b,c,d,各变元的掩码分量假设分别为{a0,a1,a2,a3},{b0,b1,b2,b3},{c0,c1,c2,c3},{d0,d1,d2,d3};

(3.2)遍历变元的每一个掩码分量;

(3.3)分别统计掩码方案f0,f1,f2,f3在遍历过程中分别出现0和1的次数;

(3.4)若掩码方案f0,f1,f2,f3在遍历过程中统计的0的个数和1的个数都相等,则输出掩码方案是均匀的,否则输出掩码方案是不均匀的。

步骤(4)所述掩码方案硬件实现的优化,具体方法如下:

(4.1)针对构造的掩码方案{f0,f1,f2,f3}中的表达式,为表达式中的每个不同项分别设置一个计数器,其初始值都为0;

(4.2)遍历掩码方案{f0,f1,f2,f3}中的项;

(4.3)若某个项重复出现,则将相应的计数器加1;

(4.4)在遍历完所有项后,若不同的计数器的值有不相等,转步骤(4.5);若所有计算器的值都相等且为0,转步骤(4.7);

(4.5)将所有计数器中数值最高的项作为公因式提取出来,按照乘法结合律方式重新整理掩码方案{f0,f1,f2,f3}中的项,以减少掩码方案中的与操作和异或操作;

(4.6)令该公因式的计数器为0,转步骤(4.2);

(4.7)输出提取公因式后的掩码方案{f0,f1,f2,f3},该掩码方案为硬件优化后的结果。

本发明方法可以为分组密码算法自动构造门限掩码方案,以抵抗侧信道攻击;能够快速生成一阶门限掩码方案,并自动检测方案是否满足门限掩码的相关原则;仅在变元拆解时使用随机数,其他掩码环节不引入额外随机数;具有通用性,适用于4比特分组密码算法的密码S盒掩码防护。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种链路随机加密方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!