CN117938347A - 用于抵御侧信道攻击的安全加密系统及方法 - Google Patents

用于抵御侧信道攻击的安全加密系统及方法 Download PDF

Info

Publication number
CN117938347A
CN117938347A CN202410096697.0A CN202410096697A CN117938347A CN 117938347 A CN117938347 A CN 117938347A CN 202410096697 A CN202410096697 A CN 202410096697A CN 117938347 A CN117938347 A CN 117938347A
Authority
CN
China
Prior art keywords
mask
boolean
shared value
arithmetic
value
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.)
Pending
Application number
CN202410096697.0A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202410096697.0A priority Critical patent/CN117938347A/zh
Publication of CN117938347A publication Critical patent/CN117938347A/zh
Pending legal-status Critical Current

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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种用于抵御侧信道攻击的安全加密系统及方法,该系统包括:算数掩码下的侧信道安全加密模块,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量;掩码转换模块,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;布尔掩码下的侧信道安全加密模块,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。本发明可以实现时钟周期延迟更低的安全加密。

Description

用于抵御侧信道攻击的安全加密系统及方法
技术领域
本发明涉及掩码转换技术领域,尤其涉及一种用于抵御侧信道攻击的安全加密系统及方法。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
侧信道攻击可以利用密码算法运行过程中密码设备与外部环境之间的物理交互中泄露的侧信息来恢复密钥。这些侧信息包括执行时间、消耗功率和电磁辐射。针对侧信道攻击的一种主流对策是掩码技术,掩码技术将敏感变量和相关的中间状态划分为多份独立随机的共享值,以切断敏感变量(如密钥相关信息)与功耗直接的依赖关系。根据原始敏感变量与共享值之间的数学关系,可以分为布尔掩码、算术掩码和乘法掩码。在密码算法的掩码实现中,不同的操作采用相对应的掩码更为高效,比如异或和移位等逻辑运算采用布尔掩码,加/减和乘法运算分别采用算数和乘法掩码。对于结合算术运算和布尔运算的算法,侧信道防护方案需要同时使用算术掩码、布尔掩码,以及这两种掩码直接的转换。
现有的掩码转换算法应用于侧信道硬件安全实现时存在延迟大的问题。为抵御侧信道攻击,安全硬件实现需要在非线性函数处插入寄存器以防止毛刺带来的潜在泄露。不同于轻量级密码算法中低代数度的S盒只有一到两层非线性与门,算数掩码到布尔掩码(Arithmetic masking to Boolean masking,A2B)转换算法非线性函数层数多且随变量位宽增加。这使得A2B转换算法的侧信道安全硬件实现时钟周期延迟大,现有技术中位宽为32位的变量的一阶安全实现需要34个时钟周期且高阶实现中时钟周期数将进一步增加。同时具有多级寄存器的A2B转换模块往往不是整个密码算法掩码实现的频率瓶颈,因此减少该模块所需的时钟周期数有助于减少该模块带来的时间延迟提高整体性能。
综上,目前缺乏一种实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密方案。
发明内容
本发明实施例提供一种用于抵御侧信道攻击的安全加密系统,用以实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密,该系统包括:
算数掩码下的侧信道安全加密模块,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量,并输入掩码转换模块;
掩码转换模块,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量,并输入布尔掩码下的侧信道安全加密模块;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
布尔掩码下的侧信道安全加密模块,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
本发明实施例还提供一种用于抵御侧信道攻击的安全加密方法,用以实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密,该方法包括:
对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变;
采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述用于抵御侧信道攻击的安全加密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述用于抵御侧信道攻击的安全加密方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述用于抵御侧信道攻击的安全加密方法。
本发明实施例中,算数掩码下的侧信道安全加密模块,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量,并输入掩码转换模块;掩码转换模块,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量,并输入布尔掩码下的侧信道安全加密模块;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;布尔掩码下的侧信道安全加密模块,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。通过上述过程,将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,可实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中用于抵御侧信道攻击的安全加密系统的示意图;
图2为本发明实施例中高阶转换方法的原理图;
图3传统的基于进位传播加法器的A2B转换的原理图;
图4为本发明实施例中系统在时钟周期延迟方面的提升效果示意图;
图5为本发明实施例中用于抵御侧信道攻击的安全加密方法的流程图;
图6为本发明实施例中计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
首先对本申请涉及的定义进行解释。
A2B:Arithmetic masking to Boolean masking,算数掩码到布尔掩码;
B2A:Boolean masking to Arithmetic masking,布尔掩码到算数掩码;
CSA:Carry-Save Adder,进位保留加法器;
RCA:Ripple-Carry Adder,行波进位加法器;
KSA:Kogge-Stone carry look-ahead Adder,超前进位加法器;
PINI:Probe Isolating Non-Interference,探针隔离非干扰;
HPC:Hardware Private Circuit,硬件隐私电路。
图1为本发明实施例中用于抵御侧信道攻击的安全加密系统的示意图,包括:
算数掩码下的侧信道安全加密模块101,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量,并输入掩码转换模块;
掩码转换模块102,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量,并输入布尔掩码下的侧信道安全加密模块;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
布尔掩码下的侧信道安全加密模块103,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
在本发明实施例中,将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,可实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密。
本发明实施例中,k比特位宽的算数掩码下的中间变量x的n个算数掩码共享值表示为其中第i个共享值表示为且共享索引值i∈[1,n]。n个共享值的和表示为:
类似地,布尔掩码下的中间变量x的k比特布尔掩码共享值集合表示为第i个共享值表示为n个共享值的异或表示为:
对于比特级操作,将x的i个比特表示为x[i],且xB,k第i个比特的集合表示为xB,k[i]。
在一实施例中,掩码转换方法的步骤包括:
在2k模域下,在算数掩码下的中间变量的算数掩码共享值集合中算数掩码共享值的个数n为1时(即无掩码防护时),确定布尔掩码共享值和算数掩码共享值相同,均为中间变量的值zB,k
在算数掩码共享值集合中算数掩码共享值的个数为2时,对第一个算数掩码共享值补零后得到第一中间布尔掩码共享值sB,k,对第二个算数掩码共享值补零后得到第二中间布尔掩码共享值cB,k,根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值zB,k,其中,对每个算数掩码共享值补零时需保证非零算数掩码共享值补零前后共享索引值不变;
在算数掩码共享值集合中算数掩码共享值的个数大于2时,通过高阶转换,根据算数掩码共享值集合中所有算数掩码共享值生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值,根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示。
掩码转换方法(基于CSA的)的步骤对应如下表1的算法1代码,具体实施时,采用高阶转换方法,生成第一中间布尔掩码共享值和第二中间布尔掩码共享值,图2为本发明实施例中高阶转换方法的原理图,图2中高阶转换方法表示为Cn为高阶转换方法,为掩码进制转换方法。
表1
在一实施例中,采用如下的高阶转换方法根据算数掩码共享值集合中所有算数掩码共享值,生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值:
在算数掩码共享值集合中算数掩码共享值的个数n为3时,对第一个算数掩码共享值补零后计算第一临时布尔掩码共享值(y1)B,k,对第二个算数掩码共享值补零后计算第二临时布尔掩码共享值(y2)B,k,对第三个算数掩码共享值补零后计算第三临时布尔掩码共享值(y3)B,k,根据第一临时布尔掩码共享值、第二临时布尔掩码共享值和第三临时布尔掩码共享值,生成冗余数表示的第一中间布尔掩码共享值sB,k和冗余数表示的第二中间布尔掩码共享值cB,k,其中,对每个算数掩码共享值补零时需保证算数掩码共享值补零前后共享索引值的位置不变;
在算数掩码共享值集合中算数掩码共享值的个数n大于3时,对算数掩码共享值集合中前n-1个算数掩码共享值调用掩码转换方法,获得第一中间布尔掩码共享值和第二中间布尔掩码共享值;对第一中间布尔掩码共享值补零后计算第一临时布尔掩码共享值,对第二中间布尔掩码共享值补零后计算第二临时布尔掩码共享值,对第n个算数掩码共享值补零后计算第三临时布尔掩码共享值;根据第一临时布尔掩码共享值、第二临时布尔掩码共享值和第三临时布尔掩码共享值,重新生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值,其中,对算数掩码共享值补零时需保证算数掩码共享值补零前后共享索引值的位置不变。
高阶转换方法的步骤对应如下表2的算法2代码。如图1所示,第一层采用3个算数掩码共享值的布尔掩码共享值个数逐层扩展增加直至与输入的算数掩码共享值个数相等。这里扩展方法是在布尔掩码现有共享值集合的前面或后面补零,如算法2中的步骤2~4和步骤8~10所示。至于补零的位置选择,遵循保证共享值扩展前后共享索引值的位置不变的原则。这一原则可以保证扩展操作是共享值隔离的,即操作是在各共享索引值对应的域上独立进行。是n共享值加法具有n-1阶安全性,中加法器的安全阶数是逐层增加的,如图1的C4所示2阶安全的子电路嵌入在3阶安全的电路中且以此类推。本发明采用的共享索引值不变的扩展,可以保证结构整体的n-1阶安全性。
表2
在一实施例中,采用如下的第一中间布尔掩码共享值生成方法生成第一中间布尔掩码共享值和第二中间布尔掩码共享值:
对第一临时布尔掩码共享值xB,k和第二临时布尔掩码共享值yB,k进行异或计算,获得第一掩码aB,k
对第三临时布尔掩码共享值和第一掩码aB,k进行异或计算,获得第一中间布尔掩码共享值sB,k
对第一临时布尔掩码共享值xB,k和第三临时布尔掩码共享值进行异或计算,获得第二掩码
采用第二中间布尔掩码共享值生成方法根据第一掩码和第二掩码,生成第三掩码;
根据第一临时布尔掩码共享值和第三掩码,获得第二中间布尔掩码共享值。
第一中间布尔掩码共享值生成方法(也称为侧信道安全CSA算法)的步骤对应表3的算法3,其原理是计算n布尔掩码共享值下三个k比特加数的和冗余数表示的布尔掩码共享值。
表3
在一实施例中,采用如下的第二中间布尔掩码共享值生成方法生成第三掩码:
生成n(n-1)/2个随机数rij,其中,n为第一掩码的个数;
根据第一掩码和随机数,生成n2-n个第一临时值uij
根据第二掩码和随机数,生成n2-n个第二临时值vij
根据第一掩码、第二掩码、第一临时值和第二临时值,生成第三掩码。
计算两个n共享值k比特变量的位异或的结果的布尔掩码,如算法4所示。当忽略算法中的寄存器Reg[.]时,是探针隔离非干扰(Probe Isolating Non-Interference,PINI)安全与门,用于软件实现。当使用算法中的寄存器时,是硬件隐私电路(Hardware Private Circuit,HPC)安全与门,用于硬件实现。
第二中间布尔掩码共享值生成方法的步骤对应表4表示的算法4。
表4
在一实施例中,采用如下的掩码进制转换方法生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值:
对第一中间布尔掩码共享值xB,k和第二中间布尔掩码共享值yB,k进行异或计算,获得第三临时值pB,k
采用第二中间布尔掩码共享值生成方法根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,获得第四临时值gB,k
在预设循环中,采用第二中间布尔掩码共享值生成方法,更新第三临时值和第四临时值;
采用第二中间布尔掩码共享值生成方法,根据更新的第三临时值和更新的第四临时值,再次更新第四临时值;
根据第一中间布尔掩码共享值和第二中间布尔掩码共享值、再次更新的第四临时值,计算布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
为延迟性能较好的基于KSA的安全加法器,对应的算法5如表5所示。
表5
通过上述实施例,本发明实施例提出的系统相比于基于进位传播加法器的A2B转换,在时钟周期延迟方面有着明显的提升。图3所示的传统的基于进位传播加法器的A2B转换,对于n个共享值需要层加法。对于k比特变量,安全RCA计算最高位的进位需要(k-1)级串行的进位计算,每级进位计算需要一级与门,而如算法4所示每级安全与门的硬件实现需要两级寄存器。对于n共享值k比特变量,基于RCA的A2B需要级寄存器。安全KSA的延迟性能要好于RCA,对于k比特变量计算最高位的进位需要级串行的进位计算,需要个时钟周期。基于KSA的A2B需要个时钟周期。而安全CSA加法器任意位宽仅需一级与门,消耗两个时钟周期。本发明提出的(基于CSA的A2B),总共需要(n-2)级安全CSA和一级安全KSA,需要个时钟周期。
对于常用参数2<n≤10和9<k≤33,本发明实施例提出的系统在时钟周期延迟方面的提升效果如图4所示,一次转换所需时钟周期至少减小27%。当7<k≤33且算数掩码共享值的个数为5时,本发明相比基于KSA的A2B转换延迟减小50%。
除了硬件延迟方面的性能提升,本发明提出的系统在ASIC和FPGA上的硬件实现相比基于KSA的A2B转换减小了面积/资源使用和随机数开销。
对于软件实现,本发明相比基于KSA的方案也减小了30%的运行时间。
安全性方面,本发明提出的系统提供PINI可组合安全性,便于与其它PINI安全电路组合构建更大规模的侧信道安全电路。
以上提出的在2k模域掩码转换方法可以拓展到素数模域下的掩码转换方法,包括素数模域下的A2B转换和B2A转换。
下面给出一种在素数模域下A2B转换的算法,在一实施例中,掩码转换方法的步骤包括:
在素数模域下,在算数掩码共享值集合中算数掩码共享值的个数为2或3时,对第一个算数掩码共享值处理并补零后(获得)计算冗余数表示的第三中间布尔掩码共享值SB,k+1,对第二个算数掩码共享值补零后计算冗余数表示的第四中间布尔掩码共享值S′B,k,根据第三中间布尔掩码共享值和第四中间布尔掩码共享值,生成第五中间布尔掩码共享值uB,k+1,采用素数模转换方法根据第五中间布尔掩码共享值uB,k+1,生成第六中间布尔掩码共享值aB,k
在算数掩码共享值集合中算数掩码共享值的个数为2时,根据第六中间布尔掩码共享值和第三中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值zB,k
在算数掩码共享值集合中算数掩码共享值的个数为3时,根据第六中间布尔掩码共享值和第三中间布尔掩码共享值、第一个算数掩码共享值,生成第七中间布尔掩码共享值(y1)B,k、第八中间布尔掩码共享值(y2)B,k+1、第九中间布尔掩码共享值(y3)B,k+1,并采用第一中间布尔掩码共享值生成方法和素数模转换方法生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值;
在算数掩码共享值集合中算数掩码共享值的个数大于3时,循环调用掩码转换方法生成第三中间布尔掩码共享值和第四中间布尔掩码共享值,采用基于素数模下掩码进制转换方法生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
素数模域下A2B转换的算法6如表6所示。
表6
算法6中使用的分别如算法3和算法5所示,与改进的基于RCA的素数模A2B算法中一致。
在一实施例中,基于素数模下掩码进制转换方法的步骤包括:
采用第一中间布尔掩码共享值生成方法根据第三中间布尔掩码共享值xB,k和第四中间布尔掩码共享值yB,k,生成第十中间布尔掩码共享值sB,k+1和第十一中间布尔掩码共享值cB,k+1
采用掩码转换方法素数模转换方法根据第十中间布尔掩码共享值和第十一中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
表示的算法7所表7所示,基于CSA实现素数模域的低延迟侧信道安全加法器。
表7
在素数模p=3329下且进位传播加法器都使用延迟性能较好的安全KSA时,本发明提出的素数模A2B转换与现有技术提出的素数模A2B转换相比,时钟周期方面的延迟在2阶安全到10阶安全的范围内减小16%到22%。
本发明还可以用于低延迟B2A转换的实现。基于布尔电路的n个共享值B2A算法基本思想是,首先生成n-1个随机算数共享值,然后通过A2B转换计算n-1个随机算数共享值的和的补码并通过安全加法器加到输入的布尔掩码上,将这一结果解掩码得到算数掩码的最后一个共享值。生成的n-1个随机算数共享值和这最后一个共享值一起组成B2A输出的算数掩码。B2A算法中的A2B或者安全素数模加法都可以采用本发明所提出的算法,减少B2A算法硬件实现的时钟周期延迟。
综上,本发明适用于结合了布尔掩码和算数掩码的软硬件掩码方案,以从侧信道的角度保护结合了布尔操作和算数操作的算法,如后量子密码算法Saber,Kyber,Dilithium,哈希算法SHA256,流密码ChaCha,分组密码算法Speck,神经网络算法。
随着物联网的不断发展,人们越来越依赖连接到互联网的设备,如智能手机、智能家居、医疗设备、工业控制系统等等。这些设备中可能存储着敏感信息,比如个人身份信息、金融数据、医疗记录等等,保护这些设备和其上运行的包含敏感信息的算法成为至关重要的任务。当这些应用场景下的算法需要进行掩码实现以抵御侧信道攻击时,任何结合算数操作和布尔操作的掩码实现都需要A2B和B2A转换,都可以应用本发明提出的低延迟的系统及方法。
本发明实施例还提出一种用于抵御侧信道攻击的安全加密方法,其原理与用于抵御侧信道攻击的安全加密系统类似,这里不再赘述。
图5为本发明实施例中用于抵御侧信道攻击的安全加密方法的流程图,包括:
步骤501,对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量;
步骤502,采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
步骤503,对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
综上所述,本发明实施例提出的系统及方法中,算数掩码下的侧信道安全加密模块,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量,并输入掩码转换模块;掩码转换模块,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量,并输入布尔掩码下的侧信道安全加密模块;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;布尔掩码下的侧信道安全加密模块,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。通过上述过程,将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,可实现时钟周期延迟更低的用于抵御侧信道攻击的安全加密。
本发明实施例还提供一种计算机设备,图6为本发明实施例中计算机设备的示意图,所述计算机设备600包括存储器610、处理器620及存储在存储器610上并可在处理器620上运行的计算机程序630,所述处理器620执行所述计算机程序630时实现上述用于抵御侧信道攻击的安全加密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述用于抵御侧信道攻击的安全加密方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述用于抵御侧信道攻击的安全加密方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种用于抵御侧信道攻击的安全加密系统,其特征在于,包括:
算数掩码下的侧信道安全加密模块,用于对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变量,并输入掩码转换模块;
掩码转换模块,用于采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量,并输入布尔掩码下的侧信道安全加密模块;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
布尔掩码下的侧信道安全加密模块,用于对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
2.如权利要求1所述的系统,其特征在于,掩码转换方法的步骤包括:
在2k模域下,在算数掩码下的中间变量的算数掩码共享值集合中算数掩码共享值的个数为1时,确定布尔掩码共享值和算数掩码共享值相同,均为中间变量的值;
在算数掩码共享值集合中共享值的个数为2时,对第一个算数掩码共享值补零后得到第一中间布尔掩码共享值,对第二个算数掩码共享值补零后得到第二中间布尔掩码共享值,根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示,其中,对每个算数掩码共享值补零时需保证非零算数掩码共享值补零前后共享索引值不变;
在算数掩码共享值集合中算数掩码共享值的个数大于2时,通过高阶转换,根据算数掩码共享值集合中所有算数掩码共享值,生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值,根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
3.如权利要求2所述的系统,其特征在于,采用如下的高阶转换方法,根据算数掩码共享值集合中所有算数掩码共享值,生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值:
在算数掩码共享值集合中共享值的个数n为3时,对第一个算数掩码共享值补零后计算第一临时布尔掩码共享值,对第二个算数掩码共享值补零后计算第二临时布尔掩码共享值,对第三个算数掩码共享值补零后计算第三临时布尔掩码共享值,根据第一临时布尔掩码共享值、第二临时布尔掩码共享值和第三临时布尔掩码共享值,生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值,其中,对每个算数掩码共享值补零时需保证算数掩码共享值补零前后共享索引值的位置不变;
在算数掩码共享值集合中算数掩码共享值的个数n大于3时,对算数掩码共享值集合中前n-1个算数掩码共享值,调用掩码转换方法,获得第一中间布尔掩码共享值和第二中间布尔掩码共享值;对第一中间布尔掩码共享值补零后计算第一临时布尔掩码共享值,对第二中间布尔掩码共享值补零后计算第二临时布尔掩码共享值,对第n个算数掩码共享值补零后计算第三临时布尔掩码共享值;根据第一临时布尔掩码共享值、第二临时布尔掩码共享值和第三临时布尔掩码共享值,重新生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值,其中,对算数掩码共享值补零时需保证算数掩码共享值补零前后共享索引值的位置不变。
4.如权利要求3所述的系统,其特征在于,采用如下的第一中间布尔掩码共享值生成方法,生成冗余数表示的第一中间布尔掩码共享值和冗余数表示的第二中间布尔掩码共享值:
对第一临时布尔掩码共享值和第二临时布尔掩码共享值进行异或计算,获得第一掩码;
对第三临时布尔掩码共享值和第一掩码进行异或计算,获得第一中间布尔掩码共享值;
对第一临时布尔掩码共享值和第三临时布尔掩码共享值进行异或计算,获得第二掩码;
根据第一掩码和第二掩码,生成第三掩码;
根据第一临时布尔掩码共享值和第三掩码,获得第二中间布尔掩码共享值。
5.如权利要求4所述的系统,其特征在于,采用如下的第二中间布尔掩码共享值生成方法,生成第三掩码:
生成n(n-1)/2个随机数,其中,n为第一掩码的个数;
根据第一掩码和随机数,生成n2-n个第一临时值;
根据第二掩码和随机数,生成n2-n个第二临时值;
根据第一掩码、第二掩码、第一临时值和第二临时值,生成第三掩码。
6.如权利要求5所述的系统,其特征在于,采用如下的掩码进制转换方法,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值:
对第一中间布尔掩码共享值和第二中间布尔掩码共享值进行异或计算,获得第三临时值;
采用第二中间布尔掩码共享值生成方法,根据第一中间布尔掩码共享值和第二中间布尔掩码共享值,获得第四临时值;
在预设循环中,采用第二中间布尔掩码共享值生成方法,更新第三临时值和第四临时值;
采用第二中间布尔掩码共享值生成方法,根据更新的第三临时值和更新的第四临时值,再次更新第四临时值;
根据第一中间布尔掩码共享值和第二中间布尔掩码共享值、再次更新的第四临时值,计算布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
7.如权利要求1所述的系统,其特征在于,掩码转换方法的步骤包括:
在素数模域下,在算数掩码共享值集合中算数掩码共享值的个数为2或3时,对第一个算数掩码共享值处理并补零后计算冗余数表示的第三中间布尔掩码共享值,对第二个算数掩码共享值补零后计算冗余数表示的第四中间布尔掩码共享值,根据第三中间布尔掩码共享值和第四中间布尔掩码共享值,生成第五中间布尔掩码共享值,采用素数模转换方法根据第五中间布尔掩码共享值,生成第六中间布尔掩码共享值;
在算数掩码共享值集合中算数掩码共享值的个数为2时,根据第六中间布尔掩码共享值和第三中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值;
在算数掩码共享值集合中算数掩码共享值的个数为3时,根据第六中间布尔掩码共享值和第三中间布尔掩码共享值、第一个算数掩码共享值,生成第七中间布尔掩码共享值、第八中间布尔掩码共享值、第九中间布尔掩码共享值,并采用第一中间布尔掩码共享值生成方法和素数模转换方法,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值;
在算数掩码共享值集合中算数掩码共享值的个数大于3时,循环调用掩码转换方法,生成第三中间布尔掩码共享值和第四中间布尔掩码共享值,采用基于素数模下掩码进制转换方法,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
8.如权利要求7所述的系统,其特征在于,基于素数模下掩码进制转换方法的步骤包括:
采用第一中间布尔掩码共享值生成方法,根据第三中间布尔掩码共享值和第四中间布尔掩码共享值,生成第十中间布尔掩码共享值和第十一中间布尔掩码共享值;
采用掩码转换方法、素数模转换方法,根据第十中间布尔掩码共享值和第十一中间布尔掩码共享值,生成布尔掩码下的中间变量的二进制表示的布尔掩码共享值。
9.一种用于抵御侧信道攻击的安全加密方法,其特征在于,包括:
对敏感变量在算数掩码下进行侧信道安全的算数运算,获得算数掩码下的中间变;
采用掩码转换方法,将算数掩码下的中间变量转换为布尔掩码下的中间变量;所述掩码转换方法将算数掩码下的中间变量的多个算数掩码共享值转换为冗余数表示的多个布尔掩码共享值,再将冗余数表示的多个布尔掩码共享值转换为二进制表示的多个布尔掩码共享值,以得到布尔掩码下的中间变量;
对布尔掩码下的中间变量在布尔掩码下进行侧信道安全的布尔运算。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求9所述方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求9所述方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求9所述方法。
CN202410096697.0A 2024-01-23 2024-01-23 用于抵御侧信道攻击的安全加密系统及方法 Pending CN117938347A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410096697.0A CN117938347A (zh) 2024-01-23 2024-01-23 用于抵御侧信道攻击的安全加密系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410096697.0A CN117938347A (zh) 2024-01-23 2024-01-23 用于抵御侧信道攻击的安全加密系统及方法

Publications (1)

Publication Number Publication Date
CN117938347A true CN117938347A (zh) 2024-04-26

Family

ID=90758813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410096697.0A Pending CN117938347A (zh) 2024-01-23 2024-01-23 用于抵御侧信道攻击的安全加密系统及方法

Country Status (1)

Country Link
CN (1) CN117938347A (zh)

Similar Documents

Publication Publication Date Title
US20210256165A1 (en) Protecting parallel multiplication operations from external monitoring attacks
Heidarpur et al. An efficient and high-speed overlap-free karatsuba-based finite-field multiplier for fgpa implementation
CN115756386A (zh) 基于格密码的高效轻量级ntt乘法器电路
US20090086961A1 (en) Montgomery masked modular multiplication process and associated device
Timarchi et al. Arithmetic circuits of redundant SUT-RNS
US7139787B2 (en) Multiply execution unit for performing integer and XOR multiplication
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
Asadi et al. Towards designing quantum reversible ternary multipliers
Agarwal et al. Low delay based 4 bit QSD adder/subtraction number system by reversible logic gate
Ding et al. A reconfigurable high-speed ECC processor over NIST primes
Timarchi et al. A novel high-speed low-power binary signed-digit adder
CN117938347A (zh) 用于抵御侧信道攻击的安全加密系统及方法
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
US6684236B1 (en) System of and method for efficiently performing computations through extended booth encoding of the operands thereto
US20080071852A1 (en) Method to perform a subtraction of two operands in a binary arithmetic unit plus arithmetic unit to perform such a method
KR20140089230A (ko) 중복 형태 리코딩을 이용한 곱셈 방법 및 모듈러 곱셈기
Vergos et al. Area-time efficient multi-modulus adders and their applications
CN118151889B (zh) 一种基于分部k-red模约减算法的格密码模乘器
Jayashree et al. Reversible circuit design for GCD computation in cryptography algorithms
EP0296344B1 (en) Parallel adder having removed dependencies
KR100805272B1 (ko) 부호화를 이용하는 곱셈 장치 및 그 방법
Nirmal et al. Novel Delay Efficient Approach for Vedic Multiplier with Generic Adder Module
JP3534004B2 (ja) 演算装置
TWI803126B (zh) 預看進位加法器、安全加法器以及執行預看進位加法的方法
KR20230028625A (ko) 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법

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