CN114048472A - 基于线性码掩码和位切片技术的抗旁路攻击的防御方法 - Google Patents

基于线性码掩码和位切片技术的抗旁路攻击的防御方法 Download PDF

Info

Publication number
CN114048472A
CN114048472A CN202210047078.3A CN202210047078A CN114048472A CN 114048472 A CN114048472 A CN 114048472A CN 202210047078 A CN202210047078 A CN 202210047078A CN 114048472 A CN114048472 A CN 114048472A
Authority
CN
China
Prior art keywords
bit
vector
matrix
domain
mask
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
CN202210047078.3A
Other languages
English (en)
Other versions
CN114048472B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202210047078.3A priority Critical patent/CN114048472B/zh
Publication of CN114048472A publication Critical patent/CN114048472A/zh
Application granted granted Critical
Publication of CN114048472B publication Critical patent/CN114048472B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法。线性码掩码是一类具有复杂代数计算的掩码。相对于布尔掩码,线性码掩码具有更高的安全性,可以更加有效地抵御旁路攻击,但是其实现起来更复杂,需要的开销和计算成本也更高,因此不利于应用到各类小型嵌入式设备。基于此,本发明将线性码掩码和位切片技术相结合,提出了一种可以灵活适配于各类嵌入式设备,通用的基于线性码掩码的抗旁路攻击的防御方法。该方法可以灵活地与各类分组密码相结合,且开销较低,实现简便,可以有效满足加密电子设备的抗旁路攻击的安全需要。

Description

基于线性码掩码和位切片技术的抗旁路攻击的防御方法
技术领域
本发明属于旁路安全领域,尤其涉及一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法。
背景技术
传统旁路攻击对现有的加密设备来说是一个潜在的重大威胁,尤其是对于那些基本没有保护措施的小型嵌入式设备。电子设备在运行过程中的各种被动泄露都会让具有旁路攻击技术的攻击者有机可乘,这些泄露包括时间、功耗、电磁辐射和温度等。为了抵御此类威胁,各类保护策略在过去十几年间被相继提出,其中影响力比较大且被认为比较有效的一类策略被称作“掩码”。“掩码”是指将算法运行过程中的敏感变量x拆分为n个“分摊”变量,使得通过任意其中d(d<n)个“分摊”变量无法得知敏感变量x的信息。我们将敏感变量x到n个分摊变量的映射称为编码函数。此外,掩码方案还需给出分摊变量在掩码域内的计算,保证最终得到的结果是正确的,分摊变量在掩码域内的计算称为私有计算。应该说,一个完整的掩码方案由一个安全的编码函数和一个执行私有计算的策略组成。
布尔掩码是最简单也最易实现的掩码方案,因为它的编码函数仅由异或运算组成。除了异或运算,编码函数还可由更复杂的代数运算组成,比如乘法掩码、仿射掩码和多项式掩码。更复杂的代数运算意味着相较于布尔掩码更小的泄露,因此也更加安全。近年来,线性代码也被引入掩码领域。由此,直接求和掩码方案将编码函数的形式一般化为z=xG+yH,其中zxy分别表示掩码变量、敏感变量和掩码,G和H分别为线性码的生成矩阵。直接求和掩码方案已被证明是布尔掩码和内积掩码的泛化形式。比直接求和掩码更加泛化的形式是基于线性码的掩码方案,该掩码方案可以转化为特定的主流掩码方案,比如布尔掩码、内积掩码等,且具有一个有效的计算框架对掩码域内的分摊变量进行私有计算。基于线性码的掩码方案不仅具有更强的抗旁路攻击的防御能力,由于其线性码特性还具有抗故障注入攻击的潜力,因此具有无限潜力。但是,基于线性码的掩码方案成本开销过大,需要较高的计算资源,对小型嵌入式设备并不适用;另一方面,目前基于线性码的掩码方案仅基于理论推导,缺少具体的实现方法,离实践和工程应用还有一定的距离。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法。
本发明的目的是通过以下技术方案来实现的:一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法,包括以下步骤:
步骤一:输入长度为l的待加密的明文信息;将明文信息分组,得到l/k个长度为k的明文向量x i ,输入编码函数f Enc,得到掩码向量群
Figure DEST_PATH_IMAGE001
;1≤il/k;
步骤二:将步骤一得到的掩码向量群
Figure 258896DEST_PATH_IMAGE001
,转换为域内位切片形式的掩码向量群
Figure 278805DEST_PATH_IMAGE002
步骤三:将步骤二得到的位切片形式的掩码向量群
Figure 812554DEST_PATH_IMAGE002
,作为掩码域内的分组加密算法的输入,得到掩码域内的加密结果
Figure DEST_PATH_IMAGE003
;掩码域内的分组加密算法由三个模块按一定规则组成,分别为:位切片形式的掩码域内哈达玛乘法模块、位切片形式的掩码域内等量线性转换模块、位切片形式的掩码域内非等量线性转换模块;位切片形式的掩码域内乘法模块用于实现分组加密算法中两个域内向量的哈达玛乘法;位切片形式的掩码域内等量线性转换模块用于实现分组加密算法域内向量满足映射f BSL:Fk→Fk的线性转换;位切片形式的掩码域内非等量线性转换模块用于实现分组加密算法中域内向量满足映射
Figure 883409DEST_PATH_IMAGE004
的线性转换;F表示伽罗华域,Fk
Figure DEST_PATH_IMAGE005
Figure 990469DEST_PATH_IMAGE006
表示元素数为k、kl 1、kl 2的域内向量;
步骤四:将步骤三得到的加密结果
Figure 763253DEST_PATH_IMAGE003
,分别输入译码函数f Dec,最终输出明文信息对应的密文。
进一步地,编码函数f Enc输出的掩码向量
Figure 835114DEST_PATH_IMAGE001
Figure 478585DEST_PATH_IMAGE008
其中,r i 为随机生成的m维域内向量;A为n×n的生成矩阵,n=k+m为目标电子加密设备的寄存器位数;生成矩阵A=[G1,G2;H1,H2];G1为k×k的单位矩阵,G2为k×m的零矩阵;H1为m×k的自定义矩阵;H2为m×m的单位矩阵。
进一步地,域内向量q转换为域内位切片形式向量q p ,具体为:n维向量q包括n个元素,每个元素包括8个位值,将所有位值存入8个寄存器,得到向量q p ;其中,8个寄存器对应存储8个位值,每个寄存器存储特定位的值;n位寄存器的最高位至最低位依次对应存储向量q中排序1~n的元素的位值。
进一步地,位切片形式的掩码域内哈达玛乘法模块,包括以下子步骤:
(1.1)构造位切片形式的
Figure DEST_PATH_IMAGE009
矩阵群、第一随机矩阵
Figure 423539DEST_PATH_IMAGE010
和第二随机矩阵
Figure DEST_PATH_IMAGE011
;1≤i m≤n;
(1.2)输入为位切片形式的n维掩码域内向量
Figure 496668DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE013
,满足
Figure 637800DEST_PATH_IMAGE014
Figure DEST_PATH_IMAGE015
,设定循环计数iBSMuL=1;
(1.3)计算向量
Figure 948826DEST_PATH_IMAGE012
中第iBSMuL个元素,与向量
Figure 782790DEST_PATH_IMAGE013
中每个元素的乘积,得到一个位切片形式的n维域内向量
Figure 277969DEST_PATH_IMAGE016
;具体地,取出存储
Figure 426054DEST_PATH_IMAGE012
的8个寄存器的第iBSMuL位,并将其复制到对应寄存器的每一位得到
Figure DEST_PATH_IMAGE017
,将
Figure 840854DEST_PATH_IMAGE017
Figure 596452DEST_PATH_IMAGE013
作为位切片形式的哈达玛乘法的输入,得到向量
Figure 565545DEST_PATH_IMAGE016
(1.4)将
Figure 517320DEST_PATH_IMAGE010
矩阵的第iBSMuL行向量与
Figure 6202DEST_PATH_IMAGE016
异或,得到位切片形式的n维向量
Figure 650810DEST_PATH_IMAGE018
(1.5)计算
Figure 638357DEST_PATH_IMAGE018
与位切片形式的n×k矩阵
Figure DEST_PATH_IMAGE019
的乘积,得到位切片形式的n维向量
Figure 206873DEST_PATH_IMAGE020
Figure 609648DEST_PATH_IMAGE018
Figure 159578DEST_PATH_IMAGE019
每一列的乘积涉及位切片形式的哈达玛乘法以及对应的累加操作;具体地,
Figure 103263DEST_PATH_IMAGE018
Figure 396841DEST_PATH_IMAGE019
每一列的位切片形式的哈达玛乘法的结果,存储在8个n位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这次左移前的值异或,以此类推,直至向左移1位后与最后一次左移前的值异或;此时得到的左移异或结果的每个位值位于对应8个寄存器的最高位;
Figure 860315DEST_PATH_IMAGE020
对应的寄存器的第1高位至第k高位,依次存储
Figure 846725DEST_PATH_IMAGE019
中第1~k列对应的左移异或结果;
(1.6)将
Figure 74444DEST_PATH_IMAGE011
矩阵的第iBSMuL行向量与
Figure 922446DEST_PATH_IMAGE020
异或,得到位切片形式的n维向量
Figure DEST_PATH_IMAGE021
;若iBSMuL=1,则令
Figure 20852DEST_PATH_IMAGE022
;若iBSMuL>1,则更新
Figure DEST_PATH_IMAGE023
(1.7)更新iBSMuL=iBSMuL+1;如果iBSMuL≤n,则跳转至步骤(1.3),否则输出位切片形式的n维向量
Figure 460055DEST_PATH_IMAGE024
,满足
Figure DEST_PATH_IMAGE025
Figure 643911DEST_PATH_IMAGE026
,⊙表示位切片形式的哈达玛乘法。
进一步地,位切片形式的掩码域内等量线性转换模块,包括以下子步骤:
(2.1)构造位切片形式的
Figure 544871DEST_PATH_IMAGE009
矩阵群和第二随机矩阵
Figure DEST_PATH_IMAGE027
;1≤i m≤n;
(2.2)输入为位切片形式的n维掩码域内向量
Figure 511166DEST_PATH_IMAGE028
,满足
Figure DEST_PATH_IMAGE029
,设定循环计数iBSL=1;
(2.3)计算
Figure 370537DEST_PATH_IMAGE028
的第iBSL个变量与([1k,0m]A)p中每个变量的乘积,最终得到一个位切片形式的n维向量
Figure 261264DEST_PATH_IMAGE030
;具体地,取出存储
Figure 700336DEST_PATH_IMAGE028
的8个寄存器的第iBSL位,并将其复制到对应寄存器的每一位得到
Figure DEST_PATH_IMAGE031
,将
Figure 507755DEST_PATH_IMAGE031
和([1k,0m]A)p作为位切片形式的哈达玛乘法的输入,得到向量
Figure 757601DEST_PATH_IMAGE030
;其中,1k表示元素全为1的k维行向量;0m表示m维零向量,右上角标p表示矩阵的行向量为位切片形式的向量;
(2.4)计算
Figure 384892DEST_PATH_IMAGE030
与位切片形式的矩阵n×k矩阵
Figure 627654DEST_PATH_IMAGE032
的乘积,得到非位切片形式的k维向量t2BSL
Figure 837050DEST_PATH_IMAGE030
Figure 507066DEST_PATH_IMAGE032
每一列的乘积涉及到位切片形式的哈达玛乘法以及对应的累加操作;具体地,
Figure 356073DEST_PATH_IMAGE030
Figure 402526DEST_PATH_IMAGE032
每一列的位切片形式的哈达玛乘法的结果,存储在8个n位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这次左移前的值异或,以此类推,直至向左移1位与最后一次左移前的值异或;此时得到的左移异或结果的每一个位值位于对应8个寄存器的最高位;
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位;矩阵
Figure 401182DEST_PATH_IMAGE032
1~k列对应的k个寄存器的低8位依次组成k维向量t2BSL
(2.5)将t2BSL作为线性转换函数f BSL的输入,得到k维向量t3BSL,给t3BSL串联一个m维的零向量得到n维向量t4BSL,并转换为位切片形式
Figure DEST_PATH_IMAGE033
;若此时iBSL=1,则在转换前更新
Figure 773257DEST_PATH_IMAGE034
;其中,c是线性函数f BSL的k维常向量,0m表示m维零向量;
(2.6)将
Figure 109561DEST_PATH_IMAGE027
矩阵的第iBSL行向量与
Figure 444858DEST_PATH_IMAGE033
异或,得到位切片形式的n维向量
Figure DEST_PATH_IMAGE035
;若iBSL=1,则令
Figure 143693DEST_PATH_IMAGE036
;若iBSL>1,则更新
Figure DEST_PATH_IMAGE037
(2.7)更新iBSL=iBSL+1;如果iBSL≤n,则跳转至步骤(2.3),否则输出为位切片形式的n维向量
Figure 437402DEST_PATH_IMAGE038
,满足
Figure DEST_PATH_IMAGE039
且zBSL=f BSL(xBSL)。
进一步地,位切片形式的掩码域内非等量线性转换模块,包括以下子步骤:
(3.1)构造位切片形式的
Figure 57739DEST_PATH_IMAGE009
矩阵群和第二随机矩阵群
Figure 665569DEST_PATH_IMAGE040
;1≤im≤n,1≤jj≤l 2
(3.2)输入为l 1个位切片形式的n维掩码域内向量
Figure DEST_PATH_IMAGE041
,满足
Figure 687752DEST_PATH_IMAGE042
,1≤ii≤l 1,设定循环计数iBSLs=1;
(3.3)分别计算
Figure 870472DEST_PATH_IMAGE041
的第iBSLs个变量与([1k,0m]A)p中每个变量的乘积,最终得到位切片形式的n维向量群
Figure DEST_PATH_IMAGE043
,1≤iil 1;具体地,取出存储
Figure 257066DEST_PATH_IMAGE041
的8个寄存器的第iBSLs位,并将其复制到对应寄存器的每一位得到
Figure 386696DEST_PATH_IMAGE044
,将
Figure 279697DEST_PATH_IMAGE044
和([1k,0m]A)p作为位切片形式的哈达玛乘法的输入,得到向量
Figure 633318DEST_PATH_IMAGE043
;其中,1k表示元素全为1的k维行向量;0m表示m维零向量,右上角标p表示矩阵的行向量为位切片形式的向量;
(3.4)分别计算
Figure 431510DEST_PATH_IMAGE043
与位切片形式的矩阵n×k矩阵
Figure DEST_PATH_IMAGE045
的乘积,得到非位切片形式的k维向量群t2 ii ,1≤iil 1
Figure 177880DEST_PATH_IMAGE043
Figure 377917DEST_PATH_IMAGE045
每一列的乘积涉及到位切片形式的哈达玛乘法以及对应的累加操作;具体地,
Figure 902439DEST_PATH_IMAGE043
Figure 187927DEST_PATH_IMAGE045
每一列的位切片形式的哈达玛乘法的结果,存储在8个n位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这次左移前的值异或,以此类推,直至向左移1位与最后一次左移前的值异或;此时得到的左移异或结果的每一个位值位于对应8个寄存器的最高位;
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位;矩阵
Figure 472409DEST_PATH_IMAGE045
1~k列对应的k个寄存器的低8位依次组成k维向量t2 ii
(3.5)将l 1t2 ii 串联作为线性映射f BSLs的输入,得到非位切片形式的掩码域内kl 2维向量t3BSLs;将t3BSLs分割为l 2个k维向量,并分别串联一个
Figure 323690DEST_PATH_IMAGE046
维零向量,得到l 2个n维向量t4 jj ;再转换为位切片形式得到
Figure DEST_PATH_IMAGE047
(3.6)将
Figure 298075DEST_PATH_IMAGE040
的第iBSLs行向量分别与
Figure 70859DEST_PATH_IMAGE047
一一异或得到
Figure 142720DEST_PATH_IMAGE048
;若iBSLs=1,则令
Figure DEST_PATH_IMAGE049
;若iBSLs>1,则更新
Figure 333661DEST_PATH_IMAGE050
(3.7)更新iBSLs=iBSLs+1;如果iBSLs≤n,则跳转至步骤(3.3),否则输出为l 2个位切片形式的n维向量
Figure DEST_PATH_IMAGE051
,满足
Figure 731145DEST_PATH_IMAGE052
,且
Figure DEST_PATH_IMAGE053
进一步地,位切片形式的哈达玛乘法,包括以下子步骤:
(a)输入为两个位切片形式的n维向量
Figure 804274DEST_PATH_IMAGE054
Figure DEST_PATH_IMAGE055
;其中,
Figure 210984DEST_PATH_IMAGE056
Figure DEST_PATH_IMAGE057
表示
Figure 256432DEST_PATH_IMAGE054
Figure 293658DEST_PATH_IMAGE055
中编号为i xi y的寄存器的值;0≤i x≤7,0≤i y≤7;
(b)选取8个寄存器RJ H,将其值清0;
(c)设定IH=0;
(d)设定JH=0;
(e)更新寄存器
Figure 775455DEST_PATH_IMAGE058
Figure DEST_PATH_IMAGE059
表示异或;
(f)更新JH=JH+1;如果JH<8,则跳转至步骤(e),否则继续步骤(g);
(g)令
Figure 468080DEST_PATH_IMAGE060
,并令向量
Figure 351722DEST_PATH_IMAGE054
中n个元素的8个位值都向左移1位;
(h)更新
Figure DEST_PATH_IMAGE061
Figure 904058DEST_PATH_IMAGE062
Figure DEST_PATH_IMAGE063
Figure 404309DEST_PATH_IMAGE064
(i)令向量
Figure 372396DEST_PATH_IMAGE055
中n个元素的8个位值都向右移1位;
(j)更新IH=IH+1;如果IH<8,则跳转至步骤(d),否则输出位切片形式的n维向量
Figure DEST_PATH_IMAGE065
,满足
Figure 376124DEST_PATH_IMAGE066
Figure 20732DEST_PATH_IMAGE065
存储于步骤(b)选取的8个寄存器RJ H中。
进一步地,位切片形式的
Figure 227854DEST_PATH_IMAGE009
矩阵群由矩阵群
Figure DEST_PATH_IMAGE067
转换得到,其中:
Figure 514479DEST_PATH_IMAGE068
Figure DEST_PATH_IMAGE069
Figure 471850DEST_PATH_IMAGE070
其中,A-1[
Figure DEST_PATH_IMAGE071
,1:k]表示矩阵A-1的第1列到第k列,
Figure 552938DEST_PATH_IMAGE072
表示n×m的零矩阵;
Figure DEST_PATH_IMAGE073
表示矩阵
Figure 778514DEST_PATH_IMAGE074
的第i m行;E为n2×n的域内矩阵,由n个n2维的特殊列向量
Figure DEST_PATH_IMAGE075
串联而成,
Figure 603251DEST_PATH_IMAGE075
表示第ie个元素的值为1其余元素均为0的向量,i e=nj e+j e+1,0≤je≤n;
Figure 66724DEST_PATH_IMAGE076
表示矩阵
Figure DEST_PATH_IMAGE077
的第1列到第k列。
进一步地,位切片形式的第一随机矩阵
Figure 584293DEST_PATH_IMAGE078
由第一随机矩阵
Figure DEST_PATH_IMAGE079
转换得到,其中:
Figure DEST_PATH_IMAGE081
式中,R1表示n×m的域内随机矩阵;
位切片形式的第二随机矩阵
Figure 359482DEST_PATH_IMAGE082
由第二随机矩阵
Figure DEST_PATH_IMAGE083
转换得到,其中:
Figure DEST_PATH_IMAGE085
式中,R2表示n×m的域内随机矩阵。
进一步地,译码函数f Dec的输入为位切片形式的n维掩码域内向量
Figure 266871DEST_PATH_IMAGE003
,将其转换为非位切片形式的n维掩码域内向量
Figure 99698DEST_PATH_IMAGE086
,输出为
Figure DEST_PATH_IMAGE087
;A-1[*,1:k]表示矩阵A-1第1列到第k列。
本发明的有益效果是:本发明将具有较强抗旁路攻击防御能力的线性码掩码和位切片技术相结合,设计了一套开销较小、针对分组密码的通用掩码防御方案。本发明可以灵活适配于各类电子加密设备。本发明易于实现、开销较小且非常灵活,大大提高了高复杂度的掩码方案应用于小型嵌入式设备的可能性,提高了小型嵌入式设备的抗旁路攻击能力。
附图说明
图1是线性码的生成矩阵A示意图;
图2是域内n=32位向量的位切片表现形式示意图;其中,R0、R7分别表示编号为0、7的寄存器;rx,0≤x≤31表示向量的元素;
Figure 538900DEST_PATH_IMAGE088
表示向量元素rx的第i位的值。
具体实施方式
下面根据附图详细说明本发明。
本发明是一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法,适用于任何分组加密算法,且可灵活适配各类电子加密设备;包括以下步骤:
步骤一:输入长度为l的待加密的明文信息。将明文信息分组,得到l/k个长度为k的明文向量x i ,输入编码函数f Enc,得到掩码向量群
Figure 926019DEST_PATH_IMAGE001
。k为l的因数,具体数值由用户根据安全需要自定义;1≤i≤l/k。
编码函数
Figure DEST_PATH_IMAGE089
输出的向量
Figure 358138DEST_PATH_IMAGE001
为:
Figure 796204DEST_PATH_IMAGE008
其中,r i 为长度为m的伽罗华域内(以下简称域内)向量,向量元素随机生成。A为行数为n列数为n的生成矩阵,n=k+m=2x为目标电子加密设备的寄存器位数。如图1所示,A=[G1,G2;H1,H2]由4个子矩阵构成,分别为:行数为k列数为k的单位矩阵G1;行数为k列数为m的零矩阵G2;行数为m列数为k的矩阵H1;行数为m列数为m的单位矩阵H2。H1矩阵的值由用户根据安全需要自定义。
步骤二:将步骤一中编码函数f Enc输出的n维掩码向量群
Figure 124417DEST_PATH_IMAGE001
,转换为伽罗华域内位切片形式的掩码向量群
Figure 61149DEST_PATH_IMAGE002
如图2所示,一个n维向量的位切片形式由8个寄存器组成,向量
Figure 985373DEST_PATH_IMAGE001
包括n个元素,每个元素包括8个位值,每个寄存器存储向量内n个元素中某一特定位的值,按照元素在向量中1~n的排序,将元素的8个位值从寄存器的最高位依次存至最低位。具体地,向量第1个元素的值的8个位的位值,分别存入这8个寄存器的最高位,再依次存入各元素的位值,直至第
Figure 527213DEST_PATH_IMAGE090
个元素8个位的位值分别存入这8个寄存器的最低位;R7存储每个元素的最高位,R6存储每个元素的第二高位,依次类推直至R0存储每个元素的最低位。
步骤三:将步骤二得到的位切片形式的掩码向量群
Figure 26328DEST_PATH_IMAGE002
,作为掩码域内的分组加密算法的输入,得到掩码域内的加密结果
Figure 653618DEST_PATH_IMAGE003
掩码域内的分组加密算法由掩码域内的三个模块按一定规则组成。这三个模块分别为位切片形式的掩码域内哈达玛乘法BSMuL模块、位切片形式的掩码域内等量线性转换BSL模块、位切片形式的掩码域内非等量线性转换BSLs模块。每个模块为一种运算,根据分组加密算法的具体算法,每个模块可以多次调用,并进行特定顺序的组合,最后按照组合顺序执行。
(a)BSMuL模块主要实现分组加密算法中两个域内向量的哈达玛乘法。
BSMuL模块为本发明的核心之一,其输入为两个位切片形式的维度均为
Figure DEST_PATH_IMAGE091
的掩码域内向量
Figure 972080DEST_PATH_IMAGE012
Figure 571688DEST_PATH_IMAGE013
,满足
Figure 789174DEST_PATH_IMAGE014
Figure 903760DEST_PATH_IMAGE015
,其输出为
Figure 684635DEST_PATH_IMAGE092
,满足
Figure 935487DEST_PATH_IMAGE025
Figure 323875DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE093
表示哈达玛乘法。
包括以下子步骤:
a.1)构造位切片形式的矩阵群
Figure 456916DEST_PATH_IMAGE009
和两个随机矩阵
Figure 792213DEST_PATH_IMAGE010
Figure 163152DEST_PATH_IMAGE011
;1≤im≤n。
a.1.1)构造矩阵群
Figure 909391DEST_PATH_IMAGE067
和两个随机矩阵
Figure 264149DEST_PATH_IMAGE094
Figure DEST_PATH_IMAGE095
矩阵群
Figure 196945DEST_PATH_IMAGE067
的计算公式为:
Figure 422390DEST_PATH_IMAGE068
Figure 621421DEST_PATH_IMAGE069
Figure 932317DEST_PATH_IMAGE070
其中,矩阵A-1表示生成矩阵A的一般逆矩阵,A-1[
Figure 858685DEST_PATH_IMAGE071
,1:k]表示矩阵A-1的第1列到第k列,
Figure 938636DEST_PATH_IMAGE072
表示行数为n列数为m的零矩阵。×表示矩阵的外积;
Figure 42990DEST_PATH_IMAGE073
表示矩阵
Figure 841181DEST_PATH_IMAGE074
的第im行;E为一个行数为n2列数为n的域内矩阵,它是由n个维度为n2的特殊列向量
Figure 571240DEST_PATH_IMAGE075
串联而成,
Figure 771277DEST_PATH_IMAGE075
表示该向量在第ie个元素处的值为1,其余元素均为0,ie=nje+je+1,0≤je≤n。
Figure 46532DEST_PATH_IMAGE076
表示矩阵
Figure 128757DEST_PATH_IMAGE077
的第1列到第k列。
第一随机矩阵
Figure 396928DEST_PATH_IMAGE094
的计算公式为:
Figure DEST_PATH_IMAGE097
其中,
Figure 730432DEST_PATH_IMAGE098
表示行数为n列数为m的域内随机矩阵,即矩阵元素为域内元素的随机数。右上角标T表示矩阵的转置。
第二随机矩阵
Figure 425856DEST_PATH_IMAGE095
的计算公式为:
Figure 464219DEST_PATH_IMAGE100
其中,
Figure DEST_PATH_IMAGE101
也表示行数为n列数为m的域内随机矩阵。
a.1.2)将步骤a.1.1)构造的矩阵的每一行向量,根据步骤二转换为对应的位切片形式。
a.2)输入为位切片形式的维度均为n的掩码域内向量
Figure 552392DEST_PATH_IMAGE012
Figure 461442DEST_PATH_IMAGE013
,满足
Figure 327767DEST_PATH_IMAGE014
Figure 135317DEST_PATH_IMAGE015
,设定循环计数iBSMuL=1。
a.3)计算向量
Figure 479711DEST_PATH_IMAGE012
中第iBSMuL个变量,与向量
Figure 508847DEST_PATH_IMAGE013
中每个变量的乘积,最终得到一个由位切片形式表示的维度为
Figure 562384DEST_PATH_IMAGE091
的域内向量
Figure 44181DEST_PATH_IMAGE016
取出存储
Figure 254583DEST_PATH_IMAGE012
的8个寄存器的第iBSMuL位,并将其复制到对应寄存器的每一位得到
Figure 886028DEST_PATH_IMAGE017
。将
Figure 359735DEST_PATH_IMAGE017
Figure 328828DEST_PATH_IMAGE013
作为位切片形式的哈达玛乘法的输入,得到输出结果为位切片形式的
Figure 280603DEST_PATH_IMAGE091
维向量
Figure 769484DEST_PATH_IMAGE016
其中,位切片形式的哈达玛乘法为本发明的核心之一,包括以下步骤:
a.3.1)输入为两个维度均为
Figure 210830DEST_PATH_IMAGE091
的位切片形式的向量
Figure 667219DEST_PATH_IMAGE054
Figure 173418DEST_PATH_IMAGE055
;此处对应
Figure 766073DEST_PATH_IMAGE017
Figure 581583DEST_PATH_IMAGE013
。其中,
Figure 259689DEST_PATH_IMAGE056
Figure 569578DEST_PATH_IMAGE057
表示位切片表现形式中编号为ix、iy的寄存器的值;0≤ix≤7,0≤iy≤7。
a.3.2)选取8个寄存器RJ H,将其值清0。
a.3.3)设定IH=0。
a.3.4)设定JH=0。
a.3.5)更新寄存器
Figure 282319DEST_PATH_IMAGE058
Figure 3151DEST_PATH_IMAGE059
表示异或。
a.3.6)更新JH=JH+1。如果JH<8,则跳转至步骤a.3.5),否则继续执行步骤a.3.7)。
a.3.7)令
Figure 434132DEST_PATH_IMAGE060
,并令
Figure 75942DEST_PATH_IMAGE102
Figure 643189DEST_PATH_IMAGE102
表示位切片形式的向量
Figure 800501DEST_PATH_IMAGE054
中n个元素的8位变量都向左移1位;存储最低位的寄存器清零。例如,
Figure 203932DEST_PATH_IMAGE054
的8个寄存器为Rx0~Rx7,将Rx6的值赋给Rx7,Rx5的值赋给Rx6,继续直至Rx0的值赋给Rx1,最后清零Rx0。
a.3.8)更新
Figure 104892DEST_PATH_IMAGE061
Figure 526646DEST_PATH_IMAGE062
Figure 402329DEST_PATH_IMAGE063
Figure 542323DEST_PATH_IMAGE064
a.3.9)令
Figure DEST_PATH_IMAGE103
Figure 778132DEST_PATH_IMAGE103
表示位切片形式的向量
Figure 805125DEST_PATH_IMAGE055
中n个元素的8位变量都向右移1位;存储最高位的寄存器清零。例如,
Figure 304240DEST_PATH_IMAGE055
的8个寄存器为Ry0~Ry7,将Ry1的值赋给Ry0,Ry2的值赋给Ry1,继续直至Ry7的值赋给Ry6,最后清零Ry7。
a.3.10)更新IH=IH+1。如果IH<8,则跳转至步骤a.3.4),否则哈达玛乘法运算结束,输出为位切片形式的n维向量
Figure 931530DEST_PATH_IMAGE065
Figure 174293DEST_PATH_IMAGE065
的值存储于步骤a.3.2)选取的8个寄存器RJ H中,且满足
Figure 115179DEST_PATH_IMAGE104
Figure DEST_PATH_IMAGE105
Figure 316354DEST_PATH_IMAGE106
Figure DEST_PATH_IMAGE107
分别为非位切片形式的向量
Figure 712831DEST_PATH_IMAGE065
Figure 228126DEST_PATH_IMAGE054
Figure 744558DEST_PATH_IMAGE055
。此处
Figure 336208DEST_PATH_IMAGE065
对应
Figure 734828DEST_PATH_IMAGE016
a.4)将
Figure 319393DEST_PATH_IMAGE010
矩阵的第iBSMuL行向量与
Figure 441064DEST_PATH_IMAGE016
异或,得到位切片形式的n维向量
Figure 452882DEST_PATH_IMAGE018
,即两组个数为8的寄存器群按照寄存器编号一一异或;寄存器编号对应向量各元素8个位值的特定位。
a.5)计算
Figure 276482DEST_PATH_IMAGE018
与位切片形式表示的矩阵
Figure 399158DEST_PATH_IMAGE019
(im=iBSMuL)的乘积,得到位切片形式表示的n维向量
Figure 395844DEST_PATH_IMAGE020
Figure 578563DEST_PATH_IMAGE019
是一个行数为n列数为k的矩阵;因此,
Figure 951776DEST_PATH_IMAGE018
Figure 628876DEST_PATH_IMAGE019
每一列的乘积,涉及到位切片形式的哈达玛乘法以及对应的累加操作。
Figure 708827DEST_PATH_IMAGE018
Figure 62448DEST_PATH_IMAGE019
每一列的位切片形式的哈达玛乘法的结果,存储在8个
Figure 860640DEST_PATH_IMAGE091
位寄存器里,将8个寄存器分别向左移n/21位,并与其左移前的值异或,异或得到的值再向左移n/22位后与这次左移前的值异或,以此类推,直至向左移n/2x=1位再与这次左移前的值异或,这样累加操作便完成,且累加结果的每一个位值位于对应8个寄存器的最高位。
然后将累加结果按照对应
Figure 341431DEST_PATH_IMAGE019
中第1~k列同步移到
Figure 275889DEST_PATH_IMAGE020
对应的寄存器的第1高位至第k高位。例如,
Figure 65991DEST_PATH_IMAGE018
Figure 351478DEST_PATH_IMAGE019
第1列的乘积结果移到最高位,与第2列的乘积结果移到第2高位,以此类推,与第
Figure 370381DEST_PATH_IMAGE108
列的乘积结果移到第k高位;8个寄存器剩余的位置清零。
a.6)将
Figure 221662DEST_PATH_IMAGE011
矩阵的第iBSMuL行向量,与向量
Figure 182665DEST_PATH_IMAGE020
异或,得到位切片形式的n维向量
Figure 437673DEST_PATH_IMAGE021
。若iBSMuL=1,则令
Figure 509534DEST_PATH_IMAGE022
;若iBSMuL>1,则更新
Figure 684163DEST_PATH_IMAGE023
a.7)更新iBSMuL=iBSMuL+1。如果iBSMuL≤n,则跳转至步骤a.3),否则BSMuL模块完成,输出为位切片形式的n维向量
Figure 550488DEST_PATH_IMAGE024
,满足
Figure 561301DEST_PATH_IMAGE025
,且
Figure 905694DEST_PATH_IMAGE026
(b)BSL模块主要实现分组加密算法中域内向量满足映射Fk→Fk的线性转换。F表示伽罗华域,Fk表示元素数为k的域内向量。
BSL模块为本发明的核心之一,其输入为位切片形式的维度为
Figure 934830DEST_PATH_IMAGE091
的掩码域内向量
Figure 972056DEST_PATH_IMAGE028
,满足
Figure 266903DEST_PATH_IMAGE029
,其输出为
Figure DEST_PATH_IMAGE109
,满足
Figure 493616DEST_PATH_IMAGE039
且zBSL=f BSL(xBSL),f BSL是满足映射Fk→Fk的线性函数。
BSL模块为本发明的核心之一,包括以下子步骤。
b.1)构造位切片形式的
Figure 377258DEST_PATH_IMAGE009
矩阵群和第二随机矩阵
Figure 850965DEST_PATH_IMAGE027
Figure 820058DEST_PATH_IMAGE009
矩阵群构造方式同步骤a.1)。
Figure 254057DEST_PATH_IMAGE110
矩阵的计算公式为:
Figure 257785DEST_PATH_IMAGE112
其中,R2BSL表示行数为n列数为m的域内随机矩阵,即矩阵元素为域内元素的随机数。将矩阵
Figure 636814DEST_PATH_IMAGE110
的每一行向量转换为对应的位切片形式
Figure 93203DEST_PATH_IMAGE027
b.2)输入为位切片形式的维度为
Figure 599401DEST_PATH_IMAGE091
的掩码域内向量
Figure 457636DEST_PATH_IMAGE028
,满足
Figure 273145DEST_PATH_IMAGE029
,设定循环计数iBSL=1。
b.3)计算
Figure 216831DEST_PATH_IMAGE028
的第iBSL个变量,与([1k,0m]A)p中每个变量的乘积,最终得到一个由位切片形式表示的维度为
Figure 261141DEST_PATH_IMAGE091
的域内向量
Figure DEST_PATH_IMAGE113
。其中,1k表示维度为k,元素全为1的行向量;0m表示维度为
Figure 505041DEST_PATH_IMAGE046
的零向量,右上角标p表示矩阵的行向量为位切片形式的向量。
取出存储
Figure 491451DEST_PATH_IMAGE028
的8个寄存器的第iBSL位,并将其复制到对应寄存器的每一位得到
Figure 673165DEST_PATH_IMAGE114
,将
Figure 567172DEST_PATH_IMAGE114
和([1k,0m]A)p作为位切片形式的哈达玛乘法的输入,得到结果
Figure 134419DEST_PATH_IMAGE030
;位切片形式的哈达玛乘法运算同步骤a.3)。
b.4)计算
Figure 39534DEST_PATH_IMAGE030
与位切片形式表示的n×k矩阵
Figure 957811DEST_PATH_IMAGE032
的乘积,得到非位切片形式的k维向量t2BSL
Figure 593192DEST_PATH_IMAGE030
Figure 280525DEST_PATH_IMAGE032
每一列的乘积涉及到位切片形式的哈达玛乘法以及对应的累加操作。
哈达玛乘法的结果存储在8个n位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,异或得到的值再向左移n/4位后与这次左移前的值异或,以此类推,直至向左移1位后再与这次左移前的值异或,这样累加操作便完成,且累加结果的每一个位值位于对应8个寄存器的最高位。
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位的相应位置。本实施例中,8个寄存器中存储向量元素的最高位至最低位按照顺序存入另一个寄存器中低8位的最高位至最低位;具体地,将8个寄存器中存储向量元素最高位的R7的最高位存入寄存器低8位的最高位,将8个寄存器中存储向量元素第二最高位的R6的最高位存入寄存器低8位的第二高位,依此类推直至将8个寄存器中存储向量元素最低位的R0的最高位存入寄存器低8位的最低位。
矩阵
Figure 359471DEST_PATH_IMAGE032
的1~k列,对应得到的k个寄存器的低8位依次组成k维向量t2BSL
b.5)将t2BSL作为线性转换函数f BSL的输入,得到k维向量t3BSL。给t3BSL串联一个维度为m的零向量得到t4BSL。后将n维向量t4BSL转换为位切片形式的
Figure 233886DEST_PATH_IMAGE033
若此时iBSL=1,则先更新
Figure 938537DEST_PATH_IMAGE034
,再将其转换为位切片形式
Figure 480376DEST_PATH_IMAGE033
。其中,c是维度为k的线性函数f BSL的常向量,0m表示维度为m的零向量。
b.6)将
Figure 730223DEST_PATH_IMAGE027
矩阵的第iBSL行向量与
Figure 357514DEST_PATH_IMAGE033
异或,得到位切片形式的n维向量
Figure 334697DEST_PATH_IMAGE035
。若iBSL=1,则令
Figure 996623DEST_PATH_IMAGE036
;若iBSL>1,则更新
Figure 417371DEST_PATH_IMAGE037
b.7)更新iBSL=iBSL+1,如果iBSL≤n,则跳转至步骤b.3);否则BSL模块完成,输出为位切片形式的n维向量
Figure 328695DEST_PATH_IMAGE038
,满足
Figure 109569DEST_PATH_IMAGE039
且zBSL=f BSL(xBSL)。
(c)BSLs模块主要实现分组加密算法中域内向量满足映射
Figure DEST_PATH_IMAGE115
的线性转换。
Figure 904962DEST_PATH_IMAGE005
Figure 745879DEST_PATH_IMAGE006
表示元素数为kl 1、kl 2的域内向量,l 1l 2由用户根据函数需要自定义。
BSLs模块为本发明的核心之一,其输入为l 1个位切片形式的维度均为
Figure 82183DEST_PATH_IMAGE091
的掩码域内向量
Figure 417480DEST_PATH_IMAGE041
,满足
Figure 788419DEST_PATH_IMAGE116
,1≤ii≤l 1;其输出为l 2个位切片形式的维度均为n的
Figure DEST_PATH_IMAGE117
,1≤jj≤l 2,满足
Figure 331396DEST_PATH_IMAGE052
,1≤jj≤l 2
Figure 905727DEST_PATH_IMAGE053
f BSLs是满足映射
Figure 293983DEST_PATH_IMAGE115
的域内线性函数。
BSLs模块为本发明的核心之一,包括以下子步骤:
c.1)构造位切片形式的
Figure 316166DEST_PATH_IMAGE009
矩阵群和第二随机矩阵群
Figure 249618DEST_PATH_IMAGE040
,1≤jj≤l 2
Figure 826093DEST_PATH_IMAGE009
矩阵群构造方式同步骤a.1)。
Figure 752461DEST_PATH_IMAGE118
矩阵群的计算公式为:
Figure 832412DEST_PATH_IMAGE120
其中,
Figure DEST_PATH_IMAGE121
表示行数为n列数为m的域内随机矩阵,即矩阵元素为域内元素的随机数。将各
Figure 464994DEST_PATH_IMAGE118
矩阵的每一行向量转换为对应的位切片形式
Figure 263186DEST_PATH_IMAGE040
c.2)输入为l 1个位切片形式的维度均为n的掩码域内向量
Figure 727665DEST_PATH_IMAGE041
,满足
Figure 678435DEST_PATH_IMAGE116
,1≤ii≤l 1,设定循环计数iBSLs=1。
c.3)将l 1
Figure 265274DEST_PATH_IMAGE041
分别作为步骤b.3)的输入,得到位切片形式的掩码域内维度均为n的向量群
Figure 285183DEST_PATH_IMAGE043
,1≤ii≤l 1
具体地,分别计算
Figure 569665DEST_PATH_IMAGE041
的第iBSLs个变量与([1k,0m]A)p中每个变量的乘积,最终得到位切片形式的n维向量群
Figure 624208DEST_PATH_IMAGE043
,1≤ii≤l 1;具体地,取出存储
Figure 319632DEST_PATH_IMAGE041
的8个寄存器的第iBSLs位,并将其复制到对应寄存器的每一位得到
Figure 826837DEST_PATH_IMAGE044
,将
Figure 649430DEST_PATH_IMAGE044
和([1k,0m]A)p作为位切片形式的哈达玛乘法的输入,得到向量
Figure 558480DEST_PATH_IMAGE043
;其中,1k表示元素全为1的k维行向量;0m表示m维零向量,右上角标p表示矩阵的行向量为位切片形式的向量。
c.4)将l 1
Figure 690385DEST_PATH_IMAGE043
作为步骤b.4)的输入,得到非位切片形式的掩码域内维度均为k的向量群t2 ii ,1≤ii≤l 1
分别计算
Figure 229426DEST_PATH_IMAGE043
与位切片形式的矩阵n×k矩阵
Figure 104978DEST_PATH_IMAGE045
的乘积,得到非位切片形式的k维向量群t2 ii ,1≤iil 1
Figure 134114DEST_PATH_IMAGE043
Figure 171340DEST_PATH_IMAGE045
每一列的乘积涉及到位切片形式的哈达玛乘法以及对应的累加操作;具体地,
Figure 669448DEST_PATH_IMAGE043
Figure 817533DEST_PATH_IMAGE045
每一列的位切片形式的哈达玛乘法的结果,存储在8个n位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这次左移前的值异或,以此类推,直至向左移1位与最后一次左移前的值异或;此时得到的左移异或结果的每一个位值位于对应8个寄存器的最高位。
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位。
矩阵
Figure 701175DEST_PATH_IMAGE045
的1~k列,对应得到的k个寄存器的低8位依次组成k维向量t2 ii
c.5)将l 1t2 ii 串联,作为线性函数
Figure 909303DEST_PATH_IMAGE122
的输入,得到非位切片形式的掩码域内维度为kl 2的向量t3BSLs。将t3BSLs分割为l 2个k维向量,分别给这l 2个向量串联一个m维零向量,得到l 2个n维向量t4 jj 。再将其转换为对应的位切片形式得到
Figure 629128DEST_PATH_IMAGE047
,1≤jj≤l 2
c.6)对应地,将l 2
Figure 846483DEST_PATH_IMAGE040
的第iBSLs行向量,分别与l 2
Figure 381370DEST_PATH_IMAGE047
,一一异或,得到
Figure 229240DEST_PATH_IMAGE048
,1≤jj≤l 2。若iBSLs=1,则令
Figure 233099DEST_PATH_IMAGE049
;若iBSLs>1,则更新
Figure 988565DEST_PATH_IMAGE050
c.7)更新iBSLs=iBSLs+1,如果iBSLs≤n,则跳转至步骤c.3);否则BSLs模块完成,输出为l 2个位切片形式的n维向量
Figure 846800DEST_PATH_IMAGE051
Figure DEST_PATH_IMAGE123
,满足
Figure 941270DEST_PATH_IMAGE052
,1≤jj≤l 2
Figure 619376DEST_PATH_IMAGE053
步骤四:将加密结果
Figure 178534DEST_PATH_IMAGE003
,1≤i≤l/k,分别作为译码函数f Dec的输入,最终输出为明文信息对应的密文。
译码函数f Dec的输入为位切片形式的长度为n的掩码域内向量
Figure 642007DEST_PATH_IMAGE003
。译码函数f Dec首先将其转换为非位切片形式的长度为n的掩码域内向量
Figure 362839DEST_PATH_IMAGE086
;然后计算
Figure 793820DEST_PATH_IMAGE124
得到最终的译码结果,A-1[*,1:k]表示矩阵A-1的第1到k列,A-1为矩阵A的逆矩阵。
其中,位切片形式的n维掩码域内向量转换为非位切片形式为:将位切片形式的向量的8个寄存器中同一位置的8个位值组成一个元素,且位值在寄存器中的排位对应元素在向量中的排位。具体地,8个寄存器的最高位存储了n个元素中的第1个元素,8个寄存器的最低位存储了n个元素中的第n个元素;将这8个寄存器同一位置的位值分别存储到另一个寄存器低8位的相应位置。如图2所示,8个寄存器中R7存储了元素的最高位,R0存储了元素的最低位,则将R7中的位值存储到另一个寄存器R中的低8位的最高位,而R0中的位值存储到寄存器R中的低8位的最低位;n个元素总共需要n个寄存器来存储,这样便转换为了非位切片形式。

Claims (10)

1.一种基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,包括以下步骤:
步骤一:输入长度为l的待加密的明文信息;将明文信息分组,得到l/k个长度为k的明 文向量x i ,输入编码函数f Enc,得到掩码向量群
Figure 445553DEST_PATH_IMAGE001
;1≤il/k;
步骤二:将步骤一得到的掩码向量群
Figure 907234DEST_PATH_IMAGE001
,转换为域内位切片形式的掩码向量群
Figure 218129DEST_PATH_IMAGE002
步骤三:将步骤二得到的位切片形式的掩码向量群
Figure 144497DEST_PATH_IMAGE002
,作为掩码域内的分组加密算法 的输入,得到掩码域内的加密结果
Figure 490028DEST_PATH_IMAGE003
;掩码域内的分组加密算法由三个模块按一定规则组 成,分别为:位切片形式的掩码域内哈达玛乘法模块、位切片形式的掩码域内等量线性转换 模块、位切片形式的掩码域内非等量线性转换模块;位切片形式的掩码域内乘法模块用于 实现分组加密算法中两个域内向量的哈达玛乘法;位切片形式的掩码域内等量线性转换模 块用于实现分组加密算法域内向量满足映射f BSL:Fk→Fk的线性转换;位切片形式的掩码域 内非等量线性转换模块用于实现分组加密算法中域内向量满足映射
Figure 859960DEST_PATH_IMAGE004
的线 性转换;F表示伽罗华域,Fk
Figure 658152DEST_PATH_IMAGE005
Figure 653790DEST_PATH_IMAGE006
表示元素数为k、kl 1、kl 2的域内向量;
步骤四:将步骤三得到的加密结果
Figure 604560DEST_PATH_IMAGE003
,分别输入译码函数f Dec,最终输出明文信息对应 的密文。
2.根据权利要求1所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特 征在于,编码函数f Enc输出的掩码向量
Figure 129082DEST_PATH_IMAGE001
Figure DEST_PATH_IMAGE007
其中,r i 为随机生成的m维域内向量;A为n×n的生成矩阵,n=k+m为目标电子加密设备的寄存器位数;生成矩阵A=[G1,G2;H1,H2];G1为k×k的单位矩阵,G2为k×m的零矩阵;H1为m×k的自定义矩阵;H2为m×m的单位矩阵。
3.根据权利要求2所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,域内向量q转换为域内位切片形式向量q p ,具体为:n维向量q包括n个元素,每个元素包括8个位值,将所有位值存入8个寄存器,得到向量q p ;其中,8个寄存器对应存储8个位值,每个寄存器存储特定位的值;n位寄存器的最高位至最低位依次对应存储向量q中排序1~n的元素的位值。
4.根据权利要求3所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,位切片形式的掩码域内哈达玛乘法模块,包括以下子步骤:
(1.1)构造位切片形式的
Figure 945728DEST_PATH_IMAGE008
矩阵群、第一随机矩阵
Figure 964631DEST_PATH_IMAGE009
和第二随机矩阵
Figure 19175DEST_PATH_IMAGE010
; 1≤i m≤n;
(1.2)输入为位切片形式的n维掩码域内向量
Figure 245757DEST_PATH_IMAGE011
Figure 18540DEST_PATH_IMAGE012
,满足
Figure 572625DEST_PATH_IMAGE013
Figure 747255DEST_PATH_IMAGE014
,设定循环计数iBSMuL=1;
(1.3)计算向量
Figure 613579DEST_PATH_IMAGE011
中第iBSMuL个元素,与向量
Figure 873659DEST_PATH_IMAGE012
中每个元素的乘积,得到一个位 切片形式的n维域内向量
Figure 499944DEST_PATH_IMAGE015
;具体地,取出存储
Figure 529080DEST_PATH_IMAGE011
的8个寄存器的第iBSMuL位,并将 其复制到对应寄存器的每一位得到
Figure 831885DEST_PATH_IMAGE016
,将
Figure 64415DEST_PATH_IMAGE016
Figure 478078DEST_PATH_IMAGE012
作为位切片形式的哈达 玛乘法的输入,得到向量
Figure 361721DEST_PATH_IMAGE015
(1.4)将
Figure 101007DEST_PATH_IMAGE009
矩阵的第iBSMuL行向量与
Figure 820832DEST_PATH_IMAGE015
异或,得到位切片形式的n维向量
Figure 772608DEST_PATH_IMAGE017
(1.5)计算
Figure 776336DEST_PATH_IMAGE017
与位切片形式的n×k矩阵
Figure 420944DEST_PATH_IMAGE018
的乘积,得到位切片形式的n维向 量
Figure 625135DEST_PATH_IMAGE019
Figure 646181DEST_PATH_IMAGE017
Figure 238836DEST_PATH_IMAGE018
每一列的乘积涉及位切片形式的哈达玛乘法以及对应的累 加操作;具体地,
Figure 805078DEST_PATH_IMAGE017
Figure 748763DEST_PATH_IMAGE018
每一列的位切片形式的哈达玛乘法的结果,存储在8个n 位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这 次左移前的值异或,以此类推,直至向左移1位后与最后一次左移前的值异或;此时得到的 左移异或结果的每个位值位于对应8个寄存器的最高位;
Figure 573500DEST_PATH_IMAGE019
对应的寄存器的第1高位 至第k高位,依次存储
Figure 286241DEST_PATH_IMAGE018
中第1~k列对应的左移异或结果;
(1.6)将
Figure 757805DEST_PATH_IMAGE010
矩阵的第iBSMuL行向量与
Figure 188786DEST_PATH_IMAGE019
异或,得到位切片形式的n维向量
Figure 286055DEST_PATH_IMAGE020
;若iBSMuL=1,则令
Figure 135194DEST_PATH_IMAGE021
;若iBSMuL>1,则更新
Figure 26926DEST_PATH_IMAGE022
(1.7)更新iBSMuL=iBSMuL+1;如果iBSMuL≤n,则跳转至步骤(1.3),否则输出位切片形式的n 维向量
Figure 945204DEST_PATH_IMAGE023
,满足
Figure 846164DEST_PATH_IMAGE024
Figure 39158DEST_PATH_IMAGE025
,⊙表 示位切片形式的哈达玛乘法。
5.根据权利要求3所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,位切片形式的掩码域内等量线性转换模块,包括以下子步骤:
(2.1)构造位切片形式的
Figure 632950DEST_PATH_IMAGE008
矩阵群和第二随机矩阵
Figure 772945DEST_PATH_IMAGE026
;1≤i m≤n;
(2.2)输入为位切片形式的n维掩码域内向量
Figure 477595DEST_PATH_IMAGE027
,满足
Figure 770168DEST_PATH_IMAGE028
,设定循环计 数iBSL=1;
(2.3)计算
Figure 534861DEST_PATH_IMAGE027
的第iBSL个变量与([1k,0m]A)p中每个变量的乘积,最终得到一个位切片 形式的n维向量
Figure 162152DEST_PATH_IMAGE029
;具体地,取出存储
Figure 421226DEST_PATH_IMAGE027
的8个寄存器的第iBSL位,并将其复制到对应寄 存器的每一位得到
Figure 817572DEST_PATH_IMAGE030
,将
Figure 487588DEST_PATH_IMAGE030
和([1k,0m]A)p作为位切片形式的哈达玛乘法的输入,得 到向量
Figure 602174DEST_PATH_IMAGE029
;其中,1k表示元素全为1的k维行向量;0m表示m维零向量,右上角标p表示矩阵 的行向量为位切片形式的向量;
(2.4)计算
Figure 133781DEST_PATH_IMAGE029
与位切片形式的矩阵n×k矩阵
Figure 650213DEST_PATH_IMAGE031
的乘积,得到非位切片形式的k维 向量t2BSL
Figure 491130DEST_PATH_IMAGE029
Figure 106395DEST_PATH_IMAGE031
每一列的乘积涉及到位切片形式的哈达玛乘法以及对应的累加操 作;具体地,
Figure 690960DEST_PATH_IMAGE029
Figure 61898DEST_PATH_IMAGE031
每一列的位切片形式的哈达玛乘法的结果,存储在8个n位寄存器 里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这次左移前 的值异或,以此类推,直至向左移1位与最后一次左移前的值异或;此时得到的左移异或结 果的每一个位值位于对应8个寄存器的最高位;
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位;矩阵
Figure 73717DEST_PATH_IMAGE031
1~k列对应的 k个寄存器的低8位依次组成k维向量t2BSL
(2.5)将t2BSL作为线性转换函数f BSL的输入,得到k维向量t3BSL,给t3BSL串联一个m维的 零向量得到n维向量t4BSL,并转换为位切片形式
Figure 648048DEST_PATH_IMAGE032
;若此时iBSL=1,则在转换前更新
Figure 301884DEST_PATH_IMAGE033
;其中,c是线性函数f BSL的k维常向量,0m表示m维零向量;
(2.6)将
Figure 527329DEST_PATH_IMAGE026
矩阵的第iBSL行向量与
Figure 710048DEST_PATH_IMAGE032
异或,得到位切片形式的n维向量
Figure 37256DEST_PATH_IMAGE034
;若 iBSL=1,则令
Figure 229203DEST_PATH_IMAGE035
;若iBSL>1,则更新
Figure 309154DEST_PATH_IMAGE036
(2.7)更新iBSL=iBSL+1;如果iBSL≤n,则跳转至步骤(2.3),否则输出为位切片形式的n维 向量
Figure 944666DEST_PATH_IMAGE037
,满足
Figure 477278DEST_PATH_IMAGE038
且zBSL=f BSL(xBSL)。
6.根据权利要求3所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,位切片形式的掩码域内非等量线性转换模块,包括以下子步骤:
(3.1)构造位切片形式的
Figure 472916DEST_PATH_IMAGE008
矩阵群和第二随机矩阵群
Figure 407374DEST_PATH_IMAGE039
;1≤im≤n,1≤jj≤l 2
(3.2)输入为l 1个位切片形式的n维掩码域内向量
Figure 945278DEST_PATH_IMAGE040
,满足
Figure 496345DEST_PATH_IMAGE041
,1≤ii≤l 1, 设定循环计数iBSLs=1;
(3.3)分别计算
Figure 764516DEST_PATH_IMAGE040
的第iBSLs个变量与([1k,0m]A)p中每个变量的乘积,最终得到位切片 形式的n维向量群
Figure 569792DEST_PATH_IMAGE042
,1≤iil 1;具体地,取出存储
Figure 530795DEST_PATH_IMAGE040
的8个寄存器的第iBSLs位,并将其复 制到对应寄存器的每一位得到
Figure 303578DEST_PATH_IMAGE043
,将
Figure 375440DEST_PATH_IMAGE043
和([1k,0m]A)p作为位切片形式的哈达玛乘法的 输入,得到向量
Figure 300801DEST_PATH_IMAGE042
;其中,1k表示元素全为1的k维行向量;0m表示m维零向量,右上角标p表示 矩阵的行向量为位切片形式的向量;
(3.4)分别计算
Figure 167126DEST_PATH_IMAGE042
与位切片形式的矩阵n×k矩阵
Figure 427206DEST_PATH_IMAGE044
的乘积,得到非位切片形式的k 维向量群t2 ii ,1≤iil 1
Figure 53491DEST_PATH_IMAGE042
Figure 82627DEST_PATH_IMAGE044
每一列的乘积涉及到位切片形式的哈达玛乘法以及 对应的累加操作;具体地,与
Figure 119853DEST_PATH_IMAGE044
每一列的位切片形式的哈达玛乘法的结果,存储在8个n 位寄存器里,将8个寄存器分别向左移n/2位并与其左移前的值异或,再向左移n/4位后与这 次左移前的值异或,以此类推,直至向左移1位与最后一次左移前的值异或;此时得到的左 移异或结果的每一个位值位于对应8个寄存器的最高位;
将8个寄存器最高位的位值分别存储于另一个寄存器的低8位;矩阵
Figure 867229DEST_PATH_IMAGE044
1~k列对应的 k个寄存器的低8位依次组成k维向量t2 ii
(3.5)将l 1t2 ii 串联作为线性映射f BSLs的输入,得到非位切片形式的掩码域内kl 2维向 量t3BSLs;将t3BSLs分割为l 2个k维向量,并分别串联一个
Figure 28696DEST_PATH_IMAGE045
维零向量,得到l 2个n维向量t4 jj ; 再转换为位切片形式得到
Figure 912338DEST_PATH_IMAGE046
(3.6)将
Figure 386045DEST_PATH_IMAGE039
的第iBSLs行向量分别与
Figure 620717DEST_PATH_IMAGE046
一一异或得到
Figure 323225DEST_PATH_IMAGE047
;若iBSLs=1,则令
Figure 326953DEST_PATH_IMAGE048
; 若iBSLs>1,则更新
Figure 971561DEST_PATH_IMAGE049
(3.7)更新iBSLs=iBSLs+1;如果iBSLs≤n,则跳转至步骤(3.3),否则输出为l 2个位切片形式 的n维向量
Figure 178682DEST_PATH_IMAGE050
,满足
Figure 934149DEST_PATH_IMAGE051
,且
Figure 792383DEST_PATH_IMAGE052
7.根据权利要求4-6中任一项所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于,位切片形式的哈达玛乘法,包括以下子步骤:
(a)输入为两个位切片形式的n维向量
Figure 873472DEST_PATH_IMAGE053
Figure 567890DEST_PATH_IMAGE054
;其中,
Figure 861468DEST_PATH_IMAGE055
Figure 574209DEST_PATH_IMAGE056
表示
Figure 560619DEST_PATH_IMAGE053
Figure 4983DEST_PATH_IMAGE054
中编 号为i xi y的寄存器的值;0≤i x≤7,0≤i y≤7;
(b)选取8个寄存器RJ H,将其值清0;
(c)设定IH=0;
(d)设定JH=0;
(e)更新寄存器
Figure 102252DEST_PATH_IMAGE057
Figure 669499DEST_PATH_IMAGE058
表示异或;
(f)更新JH=JH+1;如果JH<8,则跳转至步骤(e),否则继续步骤(g);
(g)令
Figure 577543DEST_PATH_IMAGE059
,并令向量
Figure 495821DEST_PATH_IMAGE053
中n个元素的8个位值都向左移1位;
(h)更新
Figure 131202DEST_PATH_IMAGE060
Figure 84114DEST_PATH_IMAGE061
Figure 163060DEST_PATH_IMAGE062
Figure 303054DEST_PATH_IMAGE063
(i)令向量
Figure 273284DEST_PATH_IMAGE054
中n个元素的8个位值都向右移1位;
(j)更新IH=IH+1;如果IH<8,则跳转至步骤(d),否则输出位切片形式的n维向量
Figure 565856DEST_PATH_IMAGE064
,满 足
Figure 64971DEST_PATH_IMAGE065
Figure 692261DEST_PATH_IMAGE064
存储于步骤(b)选取的8个寄存器RJ H中。
8.根据权利要求4-6中任一项所述基于线性码掩码和位切片技术的抗旁路攻击的防御 方法,其特征在于,位切片形式的
Figure 669444DEST_PATH_IMAGE008
矩阵群由矩阵群
Figure 79173DEST_PATH_IMAGE066
转换得到,其中:
Figure 14768DEST_PATH_IMAGE067
Figure 129354DEST_PATH_IMAGE068
Figure 910228DEST_PATH_IMAGE069
其中,A-1[
Figure 177393DEST_PATH_IMAGE070
,1:k]表示矩阵A-1的第1列到第k列,
Figure 283889DEST_PATH_IMAGE071
表示n×m的零矩阵;
Figure 885772DEST_PATH_IMAGE072
表示 矩阵
Figure 221069DEST_PATH_IMAGE073
的第i m行;E为n2×n的域内矩阵,由n个n2维的特殊列向量
Figure 592008DEST_PATH_IMAGE074
串联而成,
Figure 869405DEST_PATH_IMAGE074
表示第ie 个元素的值为1其余元素均为0的向量,i e=nj e+j e+1,0≤je≤n;
Figure 693005DEST_PATH_IMAGE075
表示矩阵
Figure 831993DEST_PATH_IMAGE076
的 第1列到第k列。
9.根据权利要求4-6中任一项所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特征在于:
位切片形式的第一随机矩阵
Figure 57438DEST_PATH_IMAGE077
由第一随机矩阵
Figure 240158DEST_PATH_IMAGE078
转换得到,其中:
Figure 816633DEST_PATH_IMAGE079
式中,R1表示n×m的域内随机矩阵;
位切片形式的第二随机矩阵
Figure 756382DEST_PATH_IMAGE080
由第二随机矩阵
Figure 836334DEST_PATH_IMAGE081
转换得到,其中:
Figure 721113DEST_PATH_IMAGE082
式中,R2表示n×m的域内随机矩阵。
10.根据权利要求3所述基于线性码掩码和位切片技术的抗旁路攻击的防御方法,其特 征在于,译码函数f Dec的输入为位切片形式的n维掩码域内向量
Figure 270037DEST_PATH_IMAGE003
,将其转换为非位切片形 式的n维掩码域内向量
Figure 734517DEST_PATH_IMAGE083
,输出为
Figure 200133DEST_PATH_IMAGE084
;A-1[*,1:k]表示矩阵A-1第1列到第k 列。
CN202210047078.3A 2022-01-17 2022-01-17 基于线性码掩码和位切片技术的抗旁路攻击的防御方法 Expired - Fee Related CN114048472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210047078.3A CN114048472B (zh) 2022-01-17 2022-01-17 基于线性码掩码和位切片技术的抗旁路攻击的防御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210047078.3A CN114048472B (zh) 2022-01-17 2022-01-17 基于线性码掩码和位切片技术的抗旁路攻击的防御方法

Publications (2)

Publication Number Publication Date
CN114048472A true CN114048472A (zh) 2022-02-15
CN114048472B CN114048472B (zh) 2022-06-24

Family

ID=80196603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210047078.3A Expired - Fee Related CN114048472B (zh) 2022-01-17 2022-01-17 基于线性码掩码和位切片技术的抗旁路攻击的防御方法

Country Status (1)

Country Link
CN (1) CN114048472B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150039911A1 (en) * 2013-07-31 2015-02-05 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense
CN106059746A (zh) * 2016-07-22 2016-10-26 武汉大学 一种抗任意阶侧信道攻击的掩码防护方法及系统
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
CN107294700A (zh) * 2017-08-22 2017-10-24 兆讯恒达微电子技术(北京)有限公司 防御旁路攻击的与逻辑电路装置及处理方法
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
CN111931176A (zh) * 2020-09-29 2020-11-13 网御安全技术(深圳)有限公司 防御侧信道攻击的方法、装置及可读存储介质
CN112152776A (zh) * 2019-06-28 2020-12-29 英特尔公司 抵抗针对加密操作的硬件侧信道攻击的对策
CN112580113A (zh) * 2019-09-27 2021-03-30 英特尔公司 具有专用流水线的处理器
CN112929161A (zh) * 2021-01-22 2021-06-08 西安电子科技大学 即插即用型参考系无关的双场量子密钥分发协议实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150039911A1 (en) * 2013-07-31 2015-02-05 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense
CN106059746A (zh) * 2016-07-22 2016-10-26 武汉大学 一种抗任意阶侧信道攻击的掩码防护方法及系统
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
CN107294700A (zh) * 2017-08-22 2017-10-24 兆讯恒达微电子技术(北京)有限公司 防御旁路攻击的与逻辑电路装置及处理方法
CN112152776A (zh) * 2019-06-28 2020-12-29 英特尔公司 抵抗针对加密操作的硬件侧信道攻击的对策
CN112580113A (zh) * 2019-09-27 2021-03-30 英特尔公司 具有专用流水线的处理器
CN111931176A (zh) * 2020-09-29 2020-11-13 网御安全技术(深圳)有限公司 防御侧信道攻击的方法、装置及可读存储介质
CN112929161A (zh) * 2021-01-22 2021-06-08 西安电子科技大学 即插即用型参考系无关的双场量子密钥分发协议实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAKUJI MIKI: "A Random Interrupt Dithering SAR Technique for Secure ADC against Reference-Charge Side-Channel Attack", 《2020 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS)》 *
吴伟彬 等: "后量子密码算法的侧信道攻击与防御综述", 《软件学报》 *

Also Published As

Publication number Publication date
CN114048472B (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
Golić et al. Multiplicative masking and power analysis of AES
Dubrova et al. Breaking a fifth-order masked implementation of crystals-kyber by copy-paste
Karroumi Protecting white-box AES with dual ciphers
EP2195761B1 (en) Substitution table masking for cryptographic processes
US20050283714A1 (en) Method and apparatus for multiplication in Galois field, apparatus for inversion in Galois field and apparatus for AES byte substitution operation
CN104094553B (zh) 防侧信道攻击的加密方法和装置
KR20180002069A (ko) 부채널 분석에 대응한 보호 방법 및 장치
CN109791517B (zh) 保护并行乘法运算免受外部监测攻击
US20030133568A1 (en) Programmable data encryption engine for advanced encryption standard algorithm
CN1989726A (zh) 用于执行加密计算的方法和装置
CN110071794B (zh) 一种基于aes算法的信息加密方法、系统及相关组件
CN106487499B (zh) Rijndael算法的保护
CN107204841B (zh) 一种抵御差分功耗攻击的分组密码多s盒实现的方法
CN101253473A (zh) 用于对椭圆弧上的点进行标量乘法的方法
CN101674180A (zh) 一种伪随机序列产生方法及加密方法
CN114048472B (zh) 基于线性码掩码和位切片技术的抗旁路攻击的防御方法
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
CN106330424A (zh) 基于sm3算法的密码模块的防攻击方法及装置
CN107231229B (zh) 一种用于保护sm4密码芯片的低熵掩码泄露防护方法及其实现系统
Song et al. Secure and fast implementation of ARX-Based block ciphers using ASIMD instructions in ARMv8 platforms
US10341089B2 (en) High-speed AES with transformed keys
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
CN109714152B (zh) 基于大型仿射编码的白盒aes加密方法
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
Spain et al. Diversity within the Rijndael design principles for resistance to differential power analysis

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220624

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