CN116208317B - 一种抗侧信道攻击的方法及加解密器 - Google Patents
一种抗侧信道攻击的方法及加解密器 Download PDFInfo
- Publication number
- CN116208317B CN116208317B CN202310497446.9A CN202310497446A CN116208317B CN 116208317 B CN116208317 B CN 116208317B CN 202310497446 A CN202310497446 A CN 202310497446A CN 116208317 B CN116208317 B CN 116208317B
- Authority
- CN
- China
- Prior art keywords
- encryption
- decryption
- task
- tasks
- sub
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000011218 segmentation Effects 0.000 claims abstract description 27
- 239000012634 fragment Substances 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 34
- 239000002245 particle Substances 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 235000019580 granularity Nutrition 0.000 description 28
- 238000013461 design Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种抗侧信道攻击的方法及加解密器,用以在抵抗加解密器的侧信道攻击的同时,不降低加解密效率。该方法包括:针对多个加解密任务中的每个加解密任务,对所述加解密任务进行任务分割,得到顺序执行的若干子任务;所述多个加解密任务为加密任务或解密任务;任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;通过加解密器的计算单元顺序执行所述第一子任务序列。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种抗侧信道攻击的方法及加解密器。
背景技术
在当今信息化时代,人们越来越依赖大数据给生活和工作带来的便利。从智能家居到自动驾驶,从移动支付到元宇宙,我们在享受数据互联的红利的同时,也面临着前所未有的信息安全的挑战,不断升级的安全风险对信息安全提出了越来越高的要求。
侧信道攻击则是利用加解密过程产生的各种物理学信息(如时间、功耗等),通过分析密钥等机密信息和这些泄露的物理学特征之间的相关性来进行攻击。比如利用加解密过程中不同操作的时间差异进行分析攻击(计时攻击),或者利用不同操作的功率差异进行分析攻击(功耗分析),都是比较典型的侧信道攻击方式。
通常有软件或者硬件层面等不同的防护手段来抵抗侧信道攻击,比如随机掩码、功耗平衡等技术。这些防护技术本质上都是破坏或者扰乱侧信道信息和密钥之间的相关性,但其缺点在于大部分防护手段都会降低加解密器的加解密效率,增加功耗。
因此,目前亟需一种方案,用以在抵抗加解密器的侧信道攻击的同时,不降低加解密效率。
发明内容
本申请提供一种抗侧信道攻击的方法及加解密器,用以在抵抗加解密器的侧信道攻击的同时,不降低加解密效率。
第一方面,本申请提供一种抗侧信道攻击的方法,该方法包括:针对多个加解密任务中的每个加解密任务,对所述加解密任务进行任务分割,得到顺序执行的若干子任务;所述多个加解密任务为加密任务或解密任务;任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;通过加解密器的计算单元顺序执行所述第一子任务序列。
上述技术方案中,通过将加解密器同一计算单元上的不同加解密任务进行混合,来消除密钥和硬件计算过程的相关性。本申请可以将每个加解密任务看做一个线程,不同线程在同一计算单元上的交替运行即是加解密器上的同步多线程,多线程可以充分利用计算资源,从而提高加密器整体的计算效率。
在一种可能的设计中,对所述加解密任务进行任务分割,包括:根据子任务执行模乘运算的设定次数,对所述加解密任务的密钥中的各比特位按序进行分片,得到多个有序的密钥分片;任一密钥分片表征的模乘运算的次数不大于所述设定次数;将所述加解密任务分割为按各密钥分片的顺序依次执行的若干子任务;其中,每个子任务为通过对应的密钥分片进行加解密。
上述技术方案中,由于加解密任务的计算过程是乘模运算的多次循环,而密钥中各比特位的值又决定了是做移位操作还是做乘法操作,因此,先将密钥进行分片,再根据密钥分片确定加解密任务的每个子任务,此种任务的分割方式执行起来比较方便,需要增加的硬件资源相对较少。
在一种可能的设计中,所述将至少两个加解密任务分割后的子任务进行随机混合,包括:通过所述加解密器的随机数发生器生成一个内部随机数,根据所述内部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序;或者接收一个外部随机数,根据所述外部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序。
上述技术方案中,相比于以固定的顺序混合分割后的子任务,随机混合的方式可以使外界难以获取到加解密任务分割后的子任务的混合顺序,进而加大破解密钥的难度。
在一种可能的设计中,所述方法还包括:当加解密任务只有一个时,随机生成一个伪任务并进行任务分割;将分割后的伪任务与分割后的加解密任务进行随机混合,得到混合后的第二子任务序列;通过加解密器的计算单元顺序执行所述第二子任务序列。
上述技术方案中,只有一个加解密任务执行时,通过分析其计算过程中的物理信息,比较容易分析出该加解密任务的密钥组成。因此,当只有一个加解密任务时,随机生成一个伪任务与其混合,再通过计算单元执行混合后的子任务序列,可以保证执行该加解密任务的安全性。
在一种可能的设计中,通过加解密器的计算单元顺序执行所述第一子任务序列,包括:针对所述第一子任务序列中的第n子任务按如下方式执行:通过所述第n子任务的任务标识确定所述第n子任务所属的加解密任务;确定所述第n子任务在所述所属的加解密任务的密钥中对应的密钥分片;将所述所属的加解密任务的第n-1子任务的计算结果作为所述第n子任务的初始数据;根据所述第n子任务对应的密钥分片中各比特位的值,对所述第n子任务执行模乘运算的操作;执行与所述密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
在一种可能的设计中,对所述加解密任务进行分割,包括:以第一设定粒度对第一加解密任务进行分割,并以第二设定粒度对第二加解密任务进行分割;其中,所述第一设定粒度与所述第二设定粒度不同;任一设定粒度为设定子任务执行模乘运算的次数;所述第一加解密任务和所述第二加解密任务为所述多个加解密任务中任意两个加解密任务。
上述技术方案中,以不同粒度对各加解密任务进行分割,可以使不同加解密任务的混合程度更高,更不易暴露加解密过程产生的各种物理学信息,进而可以提高计算加解密任务时的安全性。
在一种可能的设计中,所述第一子任务序列是通过第一加解密任务和第二加解密任务得到的; 通过加解密器的计算单元顺序执行所述第一子任务序列,包括:当所述第一子任务序列中第一加解密任务的所有子任务均计算完成,且第二加解密任务还有未计算完成的子任务时,对第三加解密任务分割后的子任务,与所述第二加解密任务未计算完成的子任务进行随机混合,得到第三子任务序列;通过所述加解密器的计算单元顺序执行所述第三子任务序列。
上述技术方案中,可能由于不同加解密任务的密钥长度不同,或者不同加解密任务的分割粒度不同,导致在一个加解密任务计算完成后,与其混合的另一加解密任务仍有未计算完成的子任务。对此,可以将未计算完成的子任务与新的加解密任务进行混合,以保证至少有两个加解密任务正在执行,使加解密器的计算不间断,提高整体计算效率。
在一种可能的设计中,所述加解密器为RSA加速器,所述不同的加解密算子包括移位操作和乘法操作。
第二方面,本申请实施例提供一种加解密器,包括:
分割器,用于针对多个加解密任务中的每个加解密任务,对所述加解密任务进行任务分割,得到顺序执行的若干子任务;所述多个加解密任务为加密任务或解密任务; 任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;
混合器,用于将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;
计算单元,用于顺序执行所述第一子任务序列。
在一种可能的设计中,所述设定粒度为设定每个子任务执行模乘运算的次数;所述分割器,还用于根据所述设定每个子任务执行模乘运算的次数,将每个加解密任务对应的密钥分割为相应位数的密钥片段;根据分割后的密钥片段将所述加解密任务分割为顺序执行的若干子任务。
在一种可能的设计中,所述混合器,还用于通过所述加解密器的随机数发生器生成一个内部随机数,根据所述内部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序;或者接收一个外部随机数,根据所述外部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序。
在一种可能的设计中,当加解密任务只有一个时,所述分割器,还用于随机生成一个伪任务并进行任务分割;所述混合器,还用于将分割后的伪任务与分割后的加解密任务进行随机混合,得到混合后的第二子任务序列;所述计算单元,还用于顺序执行所述第二子任务序列。
在一种可能的设计中,所述计算单元,还用于 针对所述第一子任务序列中的第n子任务按如下方式执行:通过所述第n子任务的任务标识确定所述第n子任务所属的加解密任务;确定所述第n子任务在所述所属的加解密任务的密钥中对应的密钥分片;将所述所属的加解密任务的第n-1子任务的计算结果作为所述第n子任务的初始数据; 根据所述第n子任务对应的密钥分片中各比特位的值,对所述第n子任务执行模乘运算的操作;执行与所述密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
在一种可能的设计中,所述分割器,还用于以第一设定粒度对第一加解密任务进行分割,并以第二设定粒度对第二加解密任务进行分割;其中,所述第一设定粒度与所述第二设定粒度不同;任一设定粒度为设定子任务执行模乘运算的次数;所述第一加解密任务和所述第二加解密任务为所述多个加解密任务中任意两个加解密任务。
在一种可能的设计中,所述第一子任务序列是通过第一加解密任务和第二加解密任务得到的;当所述第一子任务序列中第一加解密任务的所有子任务均计算完成,且第二加解密任务还有未计算完成的子任务时,所述混合器还用于,对第三加解密任务分割后的子任务,与所述第二加解密任务未计算完成的子任务进行随机混合,得到第三子任务序列;所述计算单元,还用于顺序执行所述第三子任务序列。
在一种可能的设计中,所述加解密器为RSA加速器,所述不同的加解密算子包括移位操作和乘法操作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种抗侧信道攻击的方法的流程示意图;
图2为本申请实施例提供的一种加解密任务分割方式的示意图;
图3为本申请实施例提供的另一种加解密任务的分割方式的示意图;
图4为本申请实施例提供的一种抗侧信道攻击的方法的示意图一;
图5为本申请实施例提供的一种抗侧信道攻击的方法的示意图二;
图6为本申请实施例提供的一种抗侧信道攻击的方法的示意图三;
图7为本申请实施例提供的一种加解密器的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
信息安全是建立在现代密码学基础之上的,其中的公钥密码学是一类非对称加密算法,而 RSA 算法是其中最具代表性和最常用的一种,经常应用在诸如签名验签等安全场景。RSA算法可以基于软件或基于硬件实现,由于硬件 RSA 加速器加解密速度快、安全性高,因此绝大多数应用场景中都会使用硬件加速器。假设公钥为(N,e),私钥为(N,d),明文为 M,密文为 C。使用RSA算法进行加解密计算的过程如下:
加密:C = M^e mod N
解密:M = C^e mod N
可见加解密过程的核心就是幂模运算,但是直接做大数的幂模运算的运算量非常大,一般采用蒙哥马利算法对幂模运算进行约简。硬件实现的蒙哥马利算法能利用二进制的特性将RSA加解密计算过程进一步转化为移位和乘法的循环操作。
由于密码学算法是信息安全的基石,针对其攻击手段层出不穷。传统的密码学分析是针对算法本身进行破解,而侧信道攻击则是利用加解密过程产生的各种物理学信息(时间、功耗等),通过分析密钥等机密信息和这些泄露的物理学特征之间的相关性来进行攻击。比如利用加解密过程中不同操作的时间差异进行分析攻击(计时攻击),或者利用不同操作的功率差异进行分析攻击(功耗分析),都是比较典型的侧信道攻击方式。
具体到 RSA 算法,其基于蒙哥马利算法的硬件实现的核心计算过程是循环进行的移位和乘法操作,并且密钥的二进制数值 0/1 决定了每次循环是移位操作还是乘法操作,比如一个RSA的加密任务,其密钥长度为128位,则对该RSA加解密任务的加密运算即为128次移位操作或者乘法操作。由于乘法操作的运算过程功耗和时间都远大于移位操作,因此通过分析硬件加速器加解密过程中的时间和功耗等物理量的变化情况就可以进一步破解密钥的相关信息。
通常有软件或者硬件层面等不同的防护手段来抵抗侧信道攻击,比如随机掩码、功耗平衡等技术。这些防护技术本质上都是破坏或者扰乱侧信道信息和密钥之间的相关性,但其缺点在于大部分防护手段都会降低加解密器的加解密效率,增加功耗。
对此,本申请提出一种抗侧信道攻击的方法,用以在抵抗加解密器的侧信道攻击的同时,不降低加解密效率。
需要说明的是,本申请适用于所有在进行加解密时每位密钥比特不同会使用不同算子的情况,例如,还适用于椭圆曲线加密算法(ECC)。并且这里的不同算子不局限于移位算子和乘法算子,还可以是模乘算子、异或(XOR)算子、加法算子等。
图1示例性地示出了本申请实施例提供的一种抗侧信道攻击的方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤101、针对多个加解密任务中的每个加解密任务,对加解密任务进行任务分割,得到顺序执行的若干子任务。
其中,多个加解密任务为加密任务或为解密任务。加解密任务由加解密器执行,其中,加解密器可以为RSA加速器,不同的加解密算子包括移位操作和乘法操作。由于RSA加速器中每个加解密任务的计算过程是蒙哥马利模乘运算的多次循环,因此可以将每个任务分割为多个顺序执行的子任务。加解密任务的密钥中的任一比特位表征加解密算子,且密钥至少具有两种不同的加解密算子。比如,RSA加速器中,密钥的二进制数值 0/1 决定了每次循环是移位操作还是乘法操作。
在一种可能的实施方式中,可以通过如下方式对加解密任务进行任务分割:
步骤一、根据子任务执行模乘运算的设定次数,对加解密任务的密钥中的各比特位按序进行分片,得到多个有序的密钥分片。
其中,任一密钥分片表征的模乘运算的次数不大于设定次数。
步骤二、将加解密任务分割为按各密钥分片的顺序依次执行的若干子任务。其中,每个子任务为通过对应的密钥分片进行加解密。
本申请实施例中,可以均匀的粒度对每个加解密任务进行分割,示例性地,如图2(a)分别将加解密任务A、B分割为每个子任务只做一次模乘运算,其中,加解密任务A、B为多个加解密任务中任意两个加解密任务。或者如图2(b)分别将加解密任务A、B分割为每个子任务做两次模乘运算,又或者分别将加解密任务A、B分割为每个子任务做三次、四次模乘运算等。
理论上如果要达到最高的安全性,每个任务应该被切分为最细颗粒度的子任务,即每个子任务只做一次模乘运算。然而加解密器在频繁切换线程时会有功耗的略微增加,比如需要更频繁的随机串行化操作,计算单元使用的密钥会频繁发生变化等等。虽然这种功耗的增加并不显著,但为了某些对功耗非常敏感的应用场景,本申请可以控制对加解密任务的切分粒度。
本申请实施例中,也可以以不均匀的粒度对每个加解密任务进行分割,如图2(c)将加解密任务A、B分别分割为每个子任务做一次、两次、三次模乘运算。或者还可以以随机的粒度对一个加解密任务进行分割,如图2(d)分别将加解密任务A、B以随机的粒度分割为每个子任务做随机次数的模乘运算,这里需要保证分割后的每个子任务的模乘运算的次数不大于设定次数。
本申请实施例中,还可以以第一设定粒度对第一加解密任务进行分割,并以第二设定粒度对第二加解密任务进行分割。其中,第一设定粒度与第二设定粒度不同;任一设定粒度为设定子任务执行模乘运算的次数。第一加解密任务和第二加解密任务为多个加解密任务中任意两个加解密任务。
以不同粒度分别对各加解密任务进行分割,如图3(a)将加解密任务A分割为每个子任务只做一次模乘运算;将加解密任务B分割为每个子任务做两次模乘运算。其中,加解密任务A、B为多个加解密任务中任意两个加解密任务。或者如图3(b)将加解密任务A分割为每个子任务做两次模乘运算;将加解密任务B分别分割为每个子任务做一次、两次、三次模乘运算。又或者如图3(c)将加解密任务A分别分割为每个子任务做一次、两次、三次模乘运算;将加解密任务B分割为每个子任务只做一次模乘运算。再或者如图3(d)将加解密任务A分割为每个子任务只做一次模乘运算;将加解密任务B以随机的粒度分割为每个子任务做随机次数的模乘运算;将加解密任务C分割为每个子任务做两次模乘运算。
上述技术方案中,以不同粒度对各加解密任务进行分割,可以使不同加解密任务的混合程度更高,更不易暴露加解密过程产生的各种物理学信息,进而可以提高计算加解密任务时的安全性。
步骤102、将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列。
在一种可能的实施方式中,可以通过如下方式将至少两个加解密任务分割后的子任务进行随机混合:
方式一
通过加解密器的随机数发生器生成一个内部随机数,根据内部随机数确定至少两个加解密任务分割后的子任务的混合顺序。
随机数发生器每次随机生成0或1, 根据随机生成的0或1确定第一子任务序列中每个子任务的顺序。以对加解密任务A和加解密任务B分割后的子任务进行混合为例,假设随机数发生器第1-8次生成的内部随机数为分别为0、1、1、0、0、1、0、1,则加解密任务A和加解密任务B混合后的子任务序列中第一个子任务到第八个子任务分别为A1、B1、B2、A2、A3、B3、A4、B4。
方式二
接收一个外部随机数,根据外部随机数确定至少两个加解密任务分割后的子任务的混合顺序。
其中,外部随机数的位数与进行混合的加解密任务分割后的子任务的总数相同。以对加解密任务A和加解密任务B分割后的子任务进行混合为例,假设每个加解密任务都被分割为4个子任务,则接收一个8位的外部随机数,假设随机数为01101001,则加解密任务A和加解密任务B混合后的子任务序列为A1、B1、B2、A2、B3、A3、A4、B4。
本申请对加解密任务的混合数量不做具体限定,可以根据实际情况做适应性调整。比如,图4所示是对两个加解密任务分割后的子任务进行混合;图5所示是对三个加解密任务分割后的子任务进行混合。
上述技术方案中,由于加解密器中的一个计算单元只有一个加法器和移位器,因此,分割后的子任务在进入计算单元进行计算前需要先对多个子任务进行串行化,串行化之后混合的子任务序列再进入计算单元执行计算。其中,考虑到安全性,串行的过程是随机的,随机的串行过程可以由加解密器的内部随机数决定,或者由软件随机生成的外部随机数决定。相比于以固定的顺序混合分割后的子任务,随机混合的方式可以使外界难以获取到加解密任务分割后的子任务的混合顺序,进而加大破解密钥的难度。
由于不同子任务混淆后的排列顺序是完全随机的,因此即使再次执行两个相同的加解密任务,其子任务在计算单元上的计算顺序也会不同,并且无法复现。如图4(a)中加解密任务 A 和 B混合后的子任务序列为A1、B1、A2、B2、A3、A4、B3、B4; 图4(b)中加解密任务A 和 B混合后的子任务序列为A1、A2、B1、A3、B2、B3、B4 、A4。因此(a)(b)两次计算中子任务的计算顺序不同。由于每次串行化的结果不同,无法预知不同加解密任务分割后的子任务的执行顺序,因此计算单元泄露的侧信道信息也被随机化,无法被攻击者提取到与密钥之间的相关性。
步骤103、通过加解密器的计算单元顺序执行第一子任务序列。
其中,第一子任务序列是通过第一加解密任务和第二加解密任务得到的。
具体地,在通过加解密器的计算单元顺序执行第一子任务序列时,针对第一子任务序列中的第n子任务按如下方式执行:
步骤一、通过第n子任务的任务标识确定第n子任务所属的加解密任务。
每个子任务中都具有其所属加解密任务的标识,用以区分不同加解密任务的子任务。
步骤二、确定第n子任务在所属的加解密任务的密钥中对应的密钥分片。
由于各子任务是根据其所属加解密任务的密钥的密钥分片进行分割的,因此,需要确定第n个子任务的密钥分片,用于后续根据密钥分片中每一比特位的值(0或1)确定是执行乘法操作还是执行移位操作,以及执行顺序。
步骤三、将所属的加解密任务的第n-1子任务的计算结果作为第n子任务的初始数据。
步骤四、根据第n子任务对应的密钥分片中各比特位的值,对第n子任务执行模乘运算的操作。
步骤五、执行与密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
加解密任务的n个子任务按顺序执行,并由原始数据经过n次数据变换后得到第n个子任务的计算结果,第n个子任务的计算结果即为其所属加解密任务的计算结果,如果是加密任务,则得到加密后的密文;如果是解密任务,则得到解密后的原文。
在一种可能的情况下,在通过加解密器的计算单元顺序执行所述第一子任务序列时,若第一子任务序列中第一加解密任务的所有子任务均计算完成,且第二加解密任务还有未计算完成的子任务,则可以对第三加解密任务分割后的子任务,与第二加解密任务未计算完成的子任务进行随机混合,得到第三子任务序列,再通过加解密器的计算单元顺序执行第三子任务序列。
上述技术方案中,可能由于不同加解密任务的密钥长度不同,或者不同加解密任务的分割粒度不同,导致在一个加解密任务计算完成后,与其混合的另一加解密任务仍有未计算完成的子任务。对此,可以将未计算完成的子任务与新的加解密任务进行混合,以保证至少有两个加解密任务正在执行,使加解密器的计算不间断,提高整体计算效率。
在一种可能的实施方式中,当加解密任务只有一个时,可以先随机生成一个伪任务并进行任务分割,再将分割后的伪任务与分割后的加解密任务进行随机混合,得到混合后的第二子任务序列,然后通过加解密器的计算单元顺序执行第二子任务序列。如图6所示,图中的任务C即为随机生成的伪任务,其中,伪任务的任务分割方式和混合方式与加解密任务相同,在此不做赘述。
加解密器在混淆执行不同的加解密任务时可以抵抗侧信道攻击,但是有的场景下加解密器只有单一任务在执行,此种情况通过分析其计算过程中的物理信息,比较容易分析出该加解密任务的密钥组成。针对这种情况,可以通过软件或者硬件生成伪任务,与真正的加解密任务一起同步执行,可以保证执行该加解密任务的安全性。例如,可以通过随机数发生器生成随机的加解密操作类型,随机的原文或密文数据,以及随机的公钥和私钥。最终伪任务的运算结果会被丢弃。
本申请实施例提供的一种抗侧信道攻击的方法,通过将加解密器同一计算单元上的不同加解密任务进行混合,来消除密钥和硬件计算过程的相关性。与在同一物理核心上交替执行不同线程的计算任务而充分利用单核心的计算资源,从而提高了单核的效率相类似,本申请可以将每个加解密任务看做一个线程,不同线程在同一计算单元上的交替运行即是加解密器上的同步多线程。与其他抗侧信道攻击的方案相比,本申请的优势在于安全性很高,需要增加的硬件资源相对较少,并且在多任务执行时,几乎不降低加解密器整体的运行效率。
基于相同的技术构思,图7例性地示出了本申请实施例提供的一种加解密器的结构示意图,如图7所示,该加解密器700包括:
分割器701,用于针对多个加解密任务中的每个加解密任务,对所述加解密任务进行任务分割,得到顺序执行的若干子任务;所述多个加解密任务为加密任务或解密任务;任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;
混合器702,用于将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;
计算单元703,用于顺序执行所述第一子任务序列。
在一种可能的设计中,所述设定粒度为设定每个子任务执行模乘运算的次数;所述分割器701,还用于根据所述设定每个子任务执行模乘运算的次数,将每个加解密任务对应的密钥分割为相应位数的密钥片段;根据分割后的密钥片段将所述加解密任务分割为顺序执行的若干子任务。
在一种可能的设计中,所述混合器702,还用于通过所述加解密器的随机数发生器生成一个内部随机数,根据所述内部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序;或者接收一个外部随机数,根据所述外部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序。
在一种可能的设计中,当加解密任务只有一个时,所述分割器701,还用于随机生成一个伪任务并进行任务分割;所述混合器702,还用于将分割后的伪任务与分割后的加解密任务进行随机混合,得到混合后的第二子任务序列;所述计算单元,还用于顺序执行所述第二子任务序列。
在一种可能的设计中,所述计算单元703,还用于 针对所述第一子任务序列中的第n子任务按如下方式执行:通过所述第n子任务的任务标识确定所述第n子任务所属的加解密任务;确定所述第n子任务在所述所属的加解密任务的密钥中对应的密钥分片;将所述所属的加解密任务的第n-1子任务的计算结果作为所述第n子任务的初始数据; 根据所述第n子任务对应的密钥分片中各比特位的值,对所述第n子任务执行模乘运算的操作;执行与所述密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
在一种可能的设计中,所述分割器701,还用于以第一设定粒度对第一加解密任务进行分割,并以第二设定粒度对第二加解密任务进行分割;其中,所述第一设定粒度与所述第二设定粒度不同;任一设定粒度为设定子任务执行模乘运算的次数;所述第一加解密任务和所述第二加解密任务为所述多个加解密任务中任意两个加解密任务。
在一种可能的设计中,所述第一子任务序列是通过第一加解密任务和第二加解密任务得到的;当所述第一子任务序列中第一加解密任务的所有子任务均计算完成,且第二加解密任务还有未计算完成的子任务时,所述混合器702,还用于,对第三加解密任务分割后的子任务,与所述第二加解密任务未计算完成的子任务进行随机混合,得到第三子任务序列;所述计算单元,还用于顺序执行所述第三子任务序列。
在一种可能的设计中,所述加解密器为RSA加速器,所述不同的加解密算子包括移位操作和乘法操作。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种抗侧信道攻击的方法,其特征在于,所述方法包括:
针对多个加解密任务中的每个加解密任务,根据子任务执行模乘运算的设定次数,对所述加解密任务的密钥中的各比特位按序进行分片,得到多个有序的密钥分片;任一密钥分片表征的模乘运算的次数不大于所述设定次数;将所述加解密任务分割为按各密钥分片的顺序依次执行的若干子任务;其中,每个子任务为通过对应的密钥分片进行加解密;所述多个加解密任务为加密任务或解密任务; 任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;
将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;
通过加解密器的计算单元顺序执行所述第一子任务序列;
所述通过加解密器的计算单元顺序执行所述第一子任务序列,包括:针对所述第一子任务序列中的第n子任务按如下方式执行:通过所述第n子任务的任务标识确定所述第n子任务所属的加解密任务;确定所述第n子任务在所述所属的加解密任务的密钥中对应的密钥分片;将所述所属的加解密任务的第n-1子任务的计算结果作为所述第n子任务的初始数据; 根据所述第n子任务对应的密钥分片中各比特位的值,对所述第n子任务执行模乘运算的操作; 执行与所述密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
2.根据权利要求1所述的方法,其特征在于,所述将至少两个加解密任务分割后的子任务进行随机混合,包括:
通过所述加解密器的随机数发生器生成一个内部随机数,根据所述内部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序;
或者接收一个外部随机数,根据所述外部随机数确定所述至少两个加解密任务分割后的子任务的混合顺序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当加解密任务只有一个时,随机生成一个伪任务并进行任务分割;
将分割后的伪任务与分割后的加解密任务进行随机混合,得到混合后的第二子任务序列;
通过加解密器的计算单元顺序执行所述第二子任务序列。
4.根据权利要求1所述的方法,其特征在于,对所述加解密任务进行分割,包括:
以第一设定粒度对第一加解密任务进行分割,并以第二设定粒度对第二加解密任务进行分割;
其中,所述第一设定粒度与所述第二设定粒度不同;任一设定粒度为设定子任务执行模乘运算的次数;
所述第一加解密任务和所述第二加解密任务为所述多个加解密任务中任意两个加解密任务。
5.根据权利要求1所述的方法,其特征在于,所述第一子任务序列是通过第一加解密任务和第二加解密任务得到的;
通过加解密器的计算单元顺序执行所述第一子任务序列,包括:
当所述第一子任务序列中第一加解密任务的所有子任务均计算完成,且第二加解密任务还有未计算完成的子任务时,对第三加解密任务分割后的子任务,与所述第二加解密任务未计算完成的子任务进行随机混合,得到第三子任务序列;
通过所述加解密器的计算单元顺序执行所述第三子任务序列。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述加解密器为RSA加速器,所述不同的加解密算子包括移位操作和乘法操作。
7.一种加解密器,其特征在于,所述加解密器包括:
分割器,用于针对多个加解密任务中的每个加解密任务,根据子任务执行模乘运算的设定次数,对所述加解密任务的密钥中的各比特位按序进行分片,得到多个有序的密钥分片;任一密钥分片表征的模乘运算的次数不大于所述设定次数;将所述加解密任务分割为按各密钥分片的顺序依次执行的若干子任务;其中,每个子任务为通过对应的密钥分片进行加解密;所述多个加解密任务为加密任务或解密任务; 任一加解密任务的密钥中的任一比特位表征加解密算子,且所述密钥至少具有两种不同的加解密算子;
混合器,用于将至少两个加解密任务分割后的子任务进行随机混合,得到混合后的第一子任务序列;
计算单元,用于顺序执行所述第一子任务序列;
所述计算单元顺序执行所述第一子任务序列时,还用于针对所述第一子任务序列中的第n子任务按如下方式执行:通过所述第n子任务的任务标识确定所述第n子任务所属的加解密任务;确定所述第n子任务在所述所属的加解密任务的密钥中对应的密钥分片;将所述所属的加解密任务的第n-1子任务的计算结果作为所述第n子任务的初始数据; 根据所述第n子任务对应的密钥分片中各比特位的值,对所述第n子任务执行模乘运算的操作; 执行与所述密钥分片对应次数的模乘运算后,得到第n子任务的计算结果。
8.根据权利要求7所述的加解密器,其特征在于,所述分割器,还用于根据所述设定每个子任务执行模乘运算的次数,将每个加解密任务对应的密钥分割为相应位数的密钥片段;根据分割后的密钥片段将所述加解密任务分割为顺序执行的若干子任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310497446.9A CN116208317B (zh) | 2023-05-05 | 2023-05-05 | 一种抗侧信道攻击的方法及加解密器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310497446.9A CN116208317B (zh) | 2023-05-05 | 2023-05-05 | 一种抗侧信道攻击的方法及加解密器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116208317A CN116208317A (zh) | 2023-06-02 |
CN116208317B true CN116208317B (zh) | 2023-07-07 |
Family
ID=86517705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310497446.9A Active CN116208317B (zh) | 2023-05-05 | 2023-05-05 | 一种抗侧信道攻击的方法及加解密器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116208317B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117811733A (zh) * | 2024-02-29 | 2024-04-02 | 浙江毫微米科技有限公司 | 基于秘密共享算法的任务确认完成方法及相关装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU8785898A (en) * | 1997-10-03 | 1999-04-22 | Hitachi Limited | Method and system for distributing encryption and decryption keys in secure broadcast communication |
CN102045159A (zh) * | 2010-12-30 | 2011-05-04 | 北京锐安科技有限公司 | 一种解密处理方法及其设备 |
FR2995111A1 (fr) * | 2012-09-04 | 2014-03-07 | Morpho | Protection contre canaux auxiliaires |
WO2018145190A1 (en) * | 2017-02-13 | 2018-08-16 | Infosec Global Inc. | Elliptic curve cryptography scheme with simple side-channel attack countermeasure |
WO2018152611A1 (en) * | 2017-02-23 | 2018-08-30 | Infosec Global Inc. | Elliptic curve cryptography scheme for edwards curves having a differential side-channel attack countermeasure |
CN108833343A (zh) * | 2018-04-28 | 2018-11-16 | 南京搜文信息技术有限公司 | 一种支持大数据的并行加密方法及解密方法 |
CN111538988A (zh) * | 2020-04-27 | 2020-08-14 | 北京奇艺世纪科技有限公司 | 防攻击的程序运行方法和装置、存储介质、电子装置 |
DE102020102453A1 (de) * | 2020-01-31 | 2021-08-05 | Infineon Technologies Ag | Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation |
CN113922943A (zh) * | 2021-09-29 | 2022-01-11 | 哲库科技(北京)有限公司 | Sbox电路、运算方法及电子设备 |
CN114697095A (zh) * | 2022-03-23 | 2022-07-01 | 中山大学 | 一种混合加解密方法、系统、装置及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102446866B1 (ko) * | 2014-08-28 | 2022-09-23 | 삼성전자주식회사 | 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치 |
-
2023
- 2023-05-05 CN CN202310497446.9A patent/CN116208317B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU8785898A (en) * | 1997-10-03 | 1999-04-22 | Hitachi Limited | Method and system for distributing encryption and decryption keys in secure broadcast communication |
CN102045159A (zh) * | 2010-12-30 | 2011-05-04 | 北京锐安科技有限公司 | 一种解密处理方法及其设备 |
FR2995111A1 (fr) * | 2012-09-04 | 2014-03-07 | Morpho | Protection contre canaux auxiliaires |
WO2018145190A1 (en) * | 2017-02-13 | 2018-08-16 | Infosec Global Inc. | Elliptic curve cryptography scheme with simple side-channel attack countermeasure |
WO2018152611A1 (en) * | 2017-02-23 | 2018-08-30 | Infosec Global Inc. | Elliptic curve cryptography scheme for edwards curves having a differential side-channel attack countermeasure |
CN108833343A (zh) * | 2018-04-28 | 2018-11-16 | 南京搜文信息技术有限公司 | 一种支持大数据的并行加密方法及解密方法 |
DE102020102453A1 (de) * | 2020-01-31 | 2021-08-05 | Infineon Technologies Ag | Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation |
CN111538988A (zh) * | 2020-04-27 | 2020-08-14 | 北京奇艺世纪科技有限公司 | 防攻击的程序运行方法和装置、存储介质、电子装置 |
CN113922943A (zh) * | 2021-09-29 | 2022-01-11 | 哲库科技(北京)有限公司 | Sbox电路、运算方法及电子设备 |
CN114697095A (zh) * | 2022-03-23 | 2022-07-01 | 中山大学 | 一种混合加解密方法、系统、装置及介质 |
Non-Patent Citations (1)
Title |
---|
可信平台中抗侧信道攻击的RSA算法改进研究;张博亮;钟卫东;;现代电子技术(19);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116208317A (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Salmon et al. | Parallel random numbers: as easy as 1, 2, 3 | |
KR101194837B1 (ko) | 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법 | |
CN108476198B (zh) | 用于执行计算机程序的方法和系统 | |
US8966264B2 (en) | Signature generation apparatus, signature method, non-transitory computer readable medium storing signature generation program | |
CN116208317B (zh) | 一种抗侧信道攻击的方法及加解密器 | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
US20070160196A1 (en) | Protection against power anlysis attacks | |
EP3503463B1 (en) | Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources | |
Çavuşoğlu et al. | A novel parallel image encryption algorithm based on chaos | |
Mahajan et al. | Analysis of RSA algorithm using GPU programming | |
Stefanov et al. | FastPRP: Fast pseudo-random permutations for small domains | |
US8553878B2 (en) | Data transformation system using cyclic groups | |
Rawat et al. | A novel accelerated implementation of RSA using parallel processing | |
Camacho-Ruiz et al. | Timing-optimized hardware implementation to accelerate polynomial multiplication in the ntru algorithm | |
Basu | A new parallel window-based implementation of the elliptic curve point multiplication in multi-core architectures | |
CN115276952A (zh) | 一种隐私数据处理方法及装置 | |
Sasirekha et al. | An enhanced code encryption approach with HNT transformations for software security | |
JP4678968B2 (ja) | 素数判定装置、方法及びプログラム | |
Madlener et al. | Novel hardening techniques against differential power analysis for multiplication in GF (2 n) | |
JP4664514B2 (ja) | 素数生成装置及びプログラム | |
Chang et al. | Hardware acceleration for cryptography algorithms by hotspot detection | |
Rahouma | Reviewing and applying security services with non-english letter coding to secure software applications in light of software trade-offs | |
Wei et al. | The-v: Verifiable privacy-preserving neural network via trusted homomorphic execution | |
US20240163093A1 (en) | General access structure secret sharing using authentic garbled circuits | |
Najjar-Ghabel et al. | A high speed implementation counter mode cryptography using hardware parallelism |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A method and encryption/decryption device for resisting side channel attacks Granted publication date: 20230707 Pledgee: China Construction Bank Corporation Shanghai Zhangjiang Branch Pledgor: Shanghai xinlianxin Intelligent Technology Co.,Ltd. Registration number: Y2024980005049 |