波形的处理方法及装置转让专利

申请号 : CN202211681891.2

文献号 : CN115664633B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏长山王博李根

申请人 : 飞腾信息技术有限公司

摘要 :

本申请提供了一种波形的处理方法和装置。该方法包括:获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化;对所述第一波形集合中的波形进行第一处理,得到第二波形集合,所述第一处理用于减少所述第一波形集合中的低频噪声;对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥。在本申请实施例中,通过对第一波形集合中的波形进行第一处理,以降低第一波形集合中低频噪声,得到第二波形集合,并对第二波形集合进行侧信道分析,以获取密码设备的密钥,有助于提高获取密钥的准确性。

权利要求 :

1.一种波形的处理方法,其特征在于,包括:

获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化,所述第一波形集合包括第二波形,所述第二波形包括第一段波形和第二段的波形,所述第一段波形为用于所述侧信道分析的波形;

对所述第一波形集合中的波形进行第一处理,得到第二波形集合,所述第一处理用于减少所述第一波形集合中的低频噪声;

对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥,其中,所述对所述第一波形集合中的波形进行第一处理,得到第二波形集合,包括:确定所述第一段波形的第一幅值以及所述第二段波形的第二幅值;

若所述第二幅值大于所述第一幅值,根据所述第二幅值,对所述第一段波形的幅值进行调整,得到调整后的第二波形,所述调整后的第二波形属于第二波形集合。

2.如权利要求1所述的方法,其特征在于,在所述对所述第一波形集合进行第一处理,得到第二波形集合之前,所述方法还包括:对第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合。

3.如权利要求2所述的方法,其特征在于,所述对所述第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合,包括:对所述第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;

对所述滤波后的波形进行静态对齐操作,形成对齐后的波形,所述对齐后的波形属于所述第一波形集合。

4.如权利要求1所述的方法,其特征在于,所述对所述第一波形集合中的波形进行第一处理,得到第二波形集合,包括:对所述第一波形集合中的波形进行第一处理,得到处理后的波形;

对所述处理后的波形进行尾部截断处理,得到截断后的波形,所述截断后的波形属于所述第二波形集合。

5.如权利要求1所述的方法,其特征在于,所述第一波形集合中的波形是在所述密码设备对目标明文进行加密的过程中得到的,所述目标明文的类型与所述第一波形集合中的波形的用途关联,所述第一波形集合中的波形的用途包括用于对所述密码设备进行泄露检测,和/或,对所述密码设备进行攻击。

6.一种波形的处理装置,其特征在于,包括:

获取单元,用于获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化,所述第一波形集合包括第二波形,所述第二波形包括第一段波形和第二段的波形,所述第一段波形为用于所述侧信道分析的波形;

处理单元,用于确定所述第一段波形的第一幅值以及所述第二段波形的第二幅值;以及若所述第二幅值大于所述第一幅值,根据所述第二幅值,对所述第一段波形的幅值进行调整,得到调整后的第二波形,以减少所述第一波形集合中的低频噪声,所述调整后的第二波形属于第二波形集合;

所述处理单元,用于对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥。

7.如权利要求6所述的装置,其特征在于,所述处理单元还用于:对第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合。

8.如权利要求7所述的装置,其特征在于,所述处理单元还用于:对所述第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;

对所述滤波后的波形进行静态对齐操作,形成对齐后的波形,所述对齐后的波形属于所述第一波形集合。

9.如权利要求6所述的装置,其特征在于,所述处理单元还用于:对所述第一波形集合中的波形进行第一处理,得到处理后的波形;

对所述处理后的波形进行尾部截断处理,得到截断后的波形,所述截断后的波形属于所述第二波形集合。

10.如权利要求6所述的装置,其特征在于,所述第一波形集合中的波形是在所述密码设备对目标明文进行加密的过程中得到的,所述目标明文的类型与所述第一波形集合中的波形的用途关联,所述第一波形集合中的波形的用途包括用于对所述密码设备进行泄露检测,和/或,对所述密码设备进行攻击。

11.一种波形的处理装置,其特征在于,包括:

存储器,用于存储指令;

处理器,用于执行所述存储器中存储的指令,以执行如权利要求1‑5中任一项所述的方法。

12.一种机器可读存储介质,其特征在于,其上存储有用于执行如权利要求1‑5中任一项所述的方法的指令。

说明书 :

波形的处理方法及装置

技术领域

[0001] 本申请涉及信息技术领域,具体涉及一种波形的处理方法及装置。

背景技术

[0002] 目前,大部分侧信道分析技术需要基于采集的多个波形进行分析,其中,多个波形中的每个波形用于指示密码设备在加密的过程中的每个时刻泄露的侧信道信息。也就是说,波形可以侧信道分析成功的基础。然而,出于各种原因,在采集波形的过程中会引入低频噪声,通常此类噪声比较随机并且与波形本身耦合在一起,降低了侧信道分析的准确性。

发明内容

[0003] 本申请实施例致力于提供一种波形的处理方法和装置。下文从以下几个方面介绍。
[0004] 第一方面,提供了一种波形的处理方法,包括:获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化;对所述第一波形集合中的波形进行第一处理,得到第二波形集合,所述第一处理用于减少所述第一波形集合中的低频噪声;对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥。
[0005] 在一种可能的实现方式中,所述第一波形集合包括第一波形以及除所述第一波形之外的其他波形,所述对所述第一波形集合进行第一处理,得到第二波形集合,包括:从所述第一波形集合中选择所述第一波形,所述第一波形中包含的低频噪声高于所述其他波形中的低频噪声;将所述第一波形从所述第一波形集合中删除,得到所述第二波形集合。
[0006] 在一种可能的实现方式中,所述第一波形集合包括第二波形,所述第二波形包括第一段波形和第二段的波形,所述第一段波形为用于所述侧信道分析的波形,所述对所述第一波形集合进行第一处理,得到第二波形集合,包括:确定所述第一段波形的第一幅值以及所述第二段波形的第二幅值;若所述第二幅值大于所述第一幅值,根据所述第二幅值,对所述第一段波形的幅值进行调整,得到调整后的第二波形,所述调整后的第二波形属于所述第二波形集合。
[0007] 在一种可能的实现方式中,在所述对所述第一波形集合进行第一处理,得到第二波形集合之前,所述方法还包括:对第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合。
[0008] 在一种可能的实现方式中,所述对所述第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合,包括:对所述第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;对所述滤波后的波形进行静态对齐操作,形成对齐后的波形,所述对齐后的波形属于所述第一波形集合。
[0009] 在一种可能的实现方式中,所述对所述第一波形集合中的波形进行第一处理,得到第二波形集合,包括:对所述第一波形集合中的波形进行第一处理,得到处理后的波形;对所述处理后的波形进行尾部截断处理,得到截断后的波形,所述截断后的波形属于所述第二波形集合。
[0010] 在一种可能的实现方式中,所述第一波形集合中的波形是在所述密码设备对目标明文进行加密的过程中得到的,所述目标明文的类型与所述第一波形集合中的波形的用途关联,所述第一波形集合中的波形的用途包括用于对所述密码设备进行泄露检测,和/或,对所述密码设备进行攻击。
[0011] 第二方面,提供了一种波形的处理装置,包括:获取单元,用于获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化;处理单元,用于对所述第一波形集合中的波形进行第一处理,得到第二波形集合,所述第一处理用于减少所述第一波形集合中的低频噪声;所述处理单元,用于对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥。
[0012] 在一种可能的实现方式中,所述第一波形集合包括第一波形以及除所述第一波形之外的其他波形,所述处理单元还用于:从所述第一波形集合中选择所述第一波形,所述第一波形中包含的低频噪声高于所述其他波形中的低频噪声;将所述第一波形从所述第一波形集合中删除,得到所述第二波形集合。
[0013] 在一种可能的实现方式中,所述第一波形集合包括第二波形,所述第二波形包括第一段波形和第二段的波形,所述第一段波形为用于所述侧信道分析的波形,所述处理单元还用于:确定所述第一段波形的第一幅值以及所述第二段波形的第二幅值;若所述第二幅值大于所述第一幅值,根据所述第二幅值,对所述第一段波形的幅值进行调整,得到调整后的第二波形,所述调整后的第二波形属于所述第二波形集合。
[0014] 在一种可能的实现方式中,所述处理单元还用于:对第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合。
[0015] 在一种可能的实现方式中,所述处理单元还用于:对所述第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;对所述滤波后的波形进行静态对齐操作,形成对齐后的波形,所述对齐后的波形属于所述第一波形集合。
[0016] 在一种可能的实现方式中,所述处理单元还用于:对所述第一波形集合中的波形进行第一处理,得到处理后的波形;对所述处理后的波形进行尾部截断处理,得到截断后的波形,所述截断后的波形属于所述第二波形集合。
[0017] 在一种可能的实现方式中,所述第一波形集合中的波形是在所述密码设备对目标明文进行加密的过程中得到的,所述目标明文的类型与所述第一波形集合中的波形的用途关联,所述第一波形集合中的波形的用途包括用于对所述密码设备进行泄露检测,和/或,对所述密码设备进行攻击。
[0018] 第三方面,提供了一种波形的处理装置,包括:存储器,用于存储指令;处理器,用于执行所述存储器中存储的指令,以执行上述各个方面所述的方法。
[0019] 第四方面,提供了一种机器可读存储介质,其上存储有用于执行上述各个方面所述的方法的指令。
[0020] 第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
[0021] 第六方面,提供了一种芯片系统,该芯片系统包括处理器,用于实现上述方面中所涉及的功能,例如,获取,分析,或推算上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存处理器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
[0022] 在本申请实施例中,通过对第一波形集合中的波形进行第一处理,以降低第一波形集合中低频噪声,得到第二波形集合,并对第二波形集合进行侧信道分析,以获取密码设备的密钥,有助于提高获取密钥的准确性。

附图说明

[0023] 图1是本申请实施例的波形的处理方法的示意性流程图。
[0024] 图2是本申请另一实施例的波形的处理方法的示意性流程图。
[0025] 图3是本申请实施例中经过低通滤波处理后的波形的示意图。
[0026] 图4是本申请实施例中经过第一处理后的波形的示意图。
[0027] 图5是本申请实施例的侧信道分析结果的示意图。
[0028] 图6是本申请实施例的波形的处理装置的示意图。
[0029] 图7是本申请另一实施例的波形的处理装置的示意性框图。

具体实施方式

[0030] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
[0031] 侧信道分析
[0032] 目前,加密算法都是基于密码设备中的芯片实现的。然而,芯片在运行的时候,由于数据或者逻辑的不同,内部的晶体管通断是有区别的。侧信道分析正是利用了这种区别来确定程序内部的数据或者指令。
[0033] 目前,已知技术中表明使用相关系数能够很好的描绘出数据之间的线性关系,并且给出了对应的实验证明。并且目前的相关系数理论十分完善,因此在实施差分能量分析时使用相关系数进行数学模型的建立数学模型变成了一种非常好的选择。以 AES 算法为例,可以针对AES 算法的S盒输出位置使用相关能量分析的方法。目前,如果想要实施相关能量攻击,需要一个固定未知的数(通常来讲是密钥)和一个随机已知的数(通常来讲是明文)进行直接或间接的运算,通过运算过程中的中间值的泄露,找到泄露值与未知数之间的关系,从而恢复密钥。
[0034] 在执行相关能量分析时通常会与泄露模型相结合,通常来讲密码设备的能量消耗会与不同的操作和操作数相关。比较常见的泄露模型例如可以包括汉明重量模型,其中a,b表示系数,x表示操作数, 表示操作数中1bit的数量,T表示能量消耗。因此,我们需要研究 与 之间的关系。
[0035] 在一些实现方式中,按照侧信道分析中使用的数学分析手段,可将其分为简单能量分析(simple power analysis)、差分能量分析(differential power analysis)、相关能量分析(correlation power analysis)、碰撞攻击(collision attack)、模板攻击(template attack)、互信息分析(mutual information analysis)等。
[0036] 目前,大部分侧信道分析技术需要基于采集的多个波形进行分析,其中,多个波形中的每个波形用于指示密码设备在加密的过程中的每个时刻泄露的侧信道信息。也就是说,波形可以侧信道分析成功的基础。然而,出于各种原因,在采集波形的过程中会引入低频噪声,通常此类噪声比较随机并且与波形本身耦合在一起,降低了侧信道分析的准确性。例如,低频噪声对应的触发信号中间的间隔也不一定是固定的,这就导致不同波形中的低频噪声的位置是不固定的,增加了滤除低频噪声的难度。
[0037] 因此,本申请实施例提供了一种波形的处理方法。下文结合图1介绍本申请实施例的方法。需要说明的是,图1所示的方法可以由具有波形处理功能的设备执行,本申请实施例对此不作限定。图1是本申请实施例的波形的处理方法的示意性流程图。图1所示的方法包括步骤S110至步骤S130。
[0038] 在步骤S110中,获取待处理的第一波形集合。
[0039] 在一些实现方式中,第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化。在本申请实施例中,基于不同类型的侧信道信息,波形的类型可以不同。例如,侧信道信息包括能量信息,相应地,波形可以包括能量波形。又例如,侧信道信息包括磁场信息,相应地,波形可以包括磁场的变化波形。
[0040] 在步骤S120中,对第一波形集合中的波形进行第一处理,得到第二波形集合。
[0041] 在一些实现方式中,第一处理用于减少第一波形集合中的低频噪声。为了便于理解,下文结合处理方式1以及处理方式2分别介绍本申请实施例的第一处理。
[0042] 处理方式1,第一处理包括从第一波形集合中剔除低频噪声较大的波形。
[0043] 在一些实现方式中,第一波形集合包括第一波形以及除第一波形之外的其他波形,上述步骤S120包括:从第一波形集合中选择第一波形,第一波形中包含的低频噪声高于其他波形中的低频噪声;将第一波形从第一波形集合中删除,得到第二波形集合。有助于降低第一波形集合的低频噪声。
[0044] 例如,可以通过最小二乘法,对比第一波形与其他波形,以判断第一波形中的低频噪声是否显著其他波形。当然,在本申请实施例中,还可以通过其他误差计算方式,判断第一波形中的低频噪声是否高于其他波形的低频噪声。
[0045] 需要说明的是,第一波形可以是第一波形集合中的任意一个波形,针对第一波形集合中的每个波形,都可以采用上述处理方式1,以剔除第一波形集合中低频噪声较大的波形。当然,在本申请实施例中,还可以仅对第一波形集合中的部分波形进行处理,本申请实施例对此不作限定。
[0046] 在本申请实施例中,上述处理方式1可以从第一波形集合中直接剔除包含低频噪声的波形,以降低低频噪声对第一波形集合的影响,有助于提高侧信道分析的准确性。
[0047] 处理方式2,基于第二段波形的幅值对第一段波形的幅值进行调整,以减少第一段波形中的低频噪声。
[0048] 在一些实现方式中,第一波形集合包括第二波形,第二波形包括第一段波形和第二段的波形,其中,第一段波形为用于侧信道分析的波形。相应地,上述步骤S120包括:确定第一段波形的第一幅值以及第二段波形的第二幅值;若第二幅值大于第一幅值,根据第二幅值,对第一段波形的幅值进行调整,得到调整后的第二波形,调整后的第二波形属于第二波形集合。
[0049] 通常,若低频噪声出现在待分析波形部分(即第一段波形),通常会将这一部分的波形的幅值的均值整体增加或者减低。此时,如果能够保证待分析波形的前一段(即第二段波形)的幅值的均值都保持相同,有助于减少低频噪声对第一段波形的影响。因此,在一些实现方式中,上述第二段波形可以为第二波形中位于第一段波形之前的一段波形。例如,第一段波形可以与第二段波形在时间上连续,或者,第一段波形可以与第二段波形在时间上间隔一段时间。当然,在本申请实施例中,第一段波形还可以在时间上位于第二段波形之前。
[0050] 在本申请实施例中,上述处理方式2可以在保证第一波形集合中波形数量不变的前提下,降低波形中的低频噪声,以避免由于提出波形导致第一波形集合中波形数量降低,影响侧信道分析的准确性。
[0051] 在步骤S130中,对第二波形集合进行侧信道分析,以获取密码设备的密钥。
[0052] 在本申请实施例中,通过对第一波形集合中的波形进行第一处理,以降低第一波形集合中低频噪声,得到第二波形集合,并对第二波形集合进行侧信道分析,以获取密码设备的密钥,有助于提高获取密钥的准确性。
[0053] 在一些场景中,为了保证信号的完整性,尽可能大的选择了采样率,同时也会增加部分高频噪声。因此,可以通过低通的滤波的方式对波形进行滤波处理,以滤除高频信号。即在步骤S120之前上述方法还包括:对第三波形集合中的波形进行低通滤波处理,得到第一波形集合。
[0054] 在一些实现方式中,在进行低通滤波时需要选择合适的算法,比较常见的算法为傅里叶变换后截止频率后进行逆傅里叶变换,执行时间通常较长。然而,在实际的侧信道分析过程中经常出现千万级的波形条数,进一步增加了执行时间。因此,在本申请实施例中,可以将 作为快速算法,以对波形 进行变换得到变换后的波形 ,其中 表示权重,即截止的频率为原来频率的1/w。在本申请实施例中,通过上述快速算法,在保证有效性的前提下能够大幅减少计算量。
[0055] 需要说明的是,上述权重的设置是可以使用二分法进行尝试的,如果选择的权重值能够使得波形没有丢失特征并且放大后没有明显的毛刺出现证明权重值选择合适。设置权重后如果波形丢失了部分特征,那么可以减小权重值。相反地,设置权重后如果波形仍有毛刺,那么可以增大权重值。
[0056] 在另一些实现方式中,在执行密码算法实现的方式的侧信道分析泄露检测时,分析人员通常对密码设备比较了解,这时,也可以通过会在示波器前添加适当的模拟滤波器,同样能起到有效的滤波效果,并且能够有效节省计算量。
[0057] 目前,大部分侧信道分析技术需要基于采集的多个波形进行分析,其中,多个波形中的每个波形用于指示密码设备在加密的过程中的每个时刻泄露的侧信道信息。例如,侧信道分析需要对比多个波形中每个波形在某一时刻泄露的侧信道信息进行分析。因此,需要保证每条波形中对应于同一依赖于秘密信息(例如,密钥的某一字节)的中间值是在同一时刻产生的。
[0058] 非建模类技术(例如CPA类攻击技术)以及建模类技术(例如,模板攻击)都是有效的分析方式。对于非建模类技术而言,可以利用与秘密信息相关的敏感中间值的泄漏来进行统计分析,从而获得秘密信息。对于建模类攻击技术而言,其攻击前需准确刻画泄漏模型。无论是的然而,无论是对于非建模类技术分析还是建模类技术分析而言,如果每条波形中与敏感中间值相关的泄漏点不是在同一个时刻采集的,就会引入无关噪声信号,从而降低分析效率,甚至导致分析失败。
[0059] 因此,在本申请实施例中,上述对第三波形集合中的波形进行低通滤波处理,得到第一波形集合,包括:对第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;对滤波后的波形进行静态对齐操作,形成对齐后的波形,对齐后的波形属于第一波形集合。
[0060] 例如,可以选取某一段能量波形作为静态对齐所使用的模板,其中,模板通常是包括能量波形中具有明显向下或明显向上的尖峰特征的样点区间。之后,使用该模板与第一能量波形集合中的其他能量波形在偏移范围内进行相似度计算,以确定其他能量波形的相关波形片段是否与模板相似。其中,其他能量波形可以理解为第一能量波形集合中,除模板所在能量波形之外的其他能量波形。
[0061] 如果其他波形的波形片段与模板之间的最大相似度大于或等于设定的阈值,则可以认为其他能量波形与模板是对齐的,此时,可以在第一能量波形集合中保留该能量波形。相反地,如果其他波形的波形片段与模板之间的最大相似度小于设定的阈值,则可以认为其他能量波形与模板是未对齐的,此时,可以从第一能量波形集合中删除该能量波形。
[0062] 在一些场景中,为了对抗侧信道分析,部分密码实现时会添加相应的防护措施,某些防护措施导致每次执行密码算法时相同操作消耗的时间不同。因此,可以通过尾部截断处理消除上述防护措施对波形的影响。
[0063] 在一些实现方式中,上述对第一波形集合中的波形进行第一处理,得到第二波形集合,包括:对第一波形集合中的波形进行第一处理,得到处理后的波形;对处理后的波形进行尾部截断处理,得到截断后的波形,截断后的波形属于第二波形集合。
[0064] 通常对于某一加密算法的中间值操作,在波形上会出现比较明显的向上或者向下的尖峰,因此,可以根据加密算法的特征提取对应的尖峰,并在在尖峰的前后分别选择相同长度的点,组成新的波形。其中,新的波形可以不包括原波形的尾部。
[0065] 在本申请实施例中,第一波形集合中的波形是在密码设备对目标明文进行加密的过程中得到的,目标明文的类型与第一波形集合中的波形的用途关联,第一波形集合中的波形的用途包括用于对密码设备进行泄露检测,和/或,对密码设备进行攻击。
[0066] 在一些实现方式中,如果第一波形集合中的波形的用途包括泄露检测,相应地,输入密码设备的明文可以包括以1:1的比例随机的选择固定的明文与随机的明文。
[0067] 在另一些实现方式中,如果第一波形集合中的波形的用途包括用于实施攻击的波形,相应地,输入密码设备的明文可以根据侧信道分析的类型确定。例如,侧信道分析的类型包括对于基于汉明重量的模板攻击,明文可以满足泄露位置的中间值的汉明重量为均匀分布的条件。如果中间值的汉明重量是均匀分布的,那么每个模板的数量是相同的。相反地,如果中间值完全随机,中间值的汉明重量是呈现正态分布的,汉明重量为0和8的模板就非常少,汉明重量为4的模板就非常多。
[0068] 又例如,侧信道分析的类型包括基于深度神经网络的全比特模型进行侧信道分析,则明文可以包括完全随机的明文,这样可以使得加密过程中泄露的中间值的分布呈现均匀分布。
[0069] 在另一些实现方式中,对于基于硬件实现的加密算法,可以根据实现的方式的泄露位置不同,选择合适的明文。例如,基于硬件实现的加密算法,选择的明文可以使得寄存器反转的汉明距离呈均匀分布。
[0070] 在一些场景中,可能由于设置的采样率过高导致第一波形集合中每个波形包括的采样点的数量很多。在波形条数和采样点的数量较多时,可能导致侧信道分析对存储、算力也有较高的需求。因此,为了加快侧信道分析的速度,在本申请实施例中,在步骤S130之前,可以使用重采样的方式,降低波形的采样率。通常,为了减少信息的损失,可以先将第一波形集合中的波形通过傅里叶变换转换到频域,选择信噪比较高的频率后再进行截断,之后对截断后的波形再进行逆变换,有助于在保护了波形的质量的前提下,提高执行侧信道分析的效率。
[0071] 为了便于理解,下文结合图2介绍本申请另一实施例的波形的处理方法。需要说明的是,图2所示的方法主要介绍波形处理的流程,其具体实现方式,可以参见上文介绍。假设以ATMEGA‑2560单片机使用软件实现AES密码算法作为密码设备,并对AES密码算法的第一轮加密过程进行侧信道分析。
[0072] 图2是本申请另一实施例的波形的处理方法的示意性流程图。图2所示的方法包括步骤S210至步骤S320。
[0073] 在步骤S210中,选择合适的明文。
[0074] 在一些实现方式中,可以根据待采集的波形的用途选择合适的明文。根据经验密码设备的泄露模型为S盒输出的汉明重量模型,且密码设备的密钥未知,因此,可以选择随机的明文作为密码设备的输入。
[0075] 在步骤S220中,确定待分析的波形集合1中的波形是否包括高频噪声。
[0076] 在一些场景中,在采集波形前需要根据实际情况设置示波器的参数,例如,根据预采集的结果将采样率设置为125 MS/s,采集10000条曲线。此时,示波器通常会采集到较多的高频噪声,需要根据采集到的波形信号的特征选择是否进行低通滤波。
[0077] 在一些实现方式中,可以基于波形上是否较多的毛刺确定波形集合1中的波形是否包括高频噪声。若波形集合1中的波形包括高频噪声,则执行步骤S230。相反地,若波形集合1中的波形不包括高频噪声,则执行步骤S240。
[0078] 例如,当波形集合1中的波形包括的毛刺的密度高于阈值,可以确定波形集合1中的波形包括高频噪声。相反地,当波形集合1中的波形包括的毛刺的密度低于或等于阈值,可以确定波形集合1中的波形不包括高频噪声。
[0079] 在步骤S230中,对波形集合1中的波形进行低通滤波处理,得到波形集合2。
[0080] 在一些实现方式中,可以基于公式 ,对波形集合1中的波形进行变换。其中,可以将权重w设置为30,得到的低通滤波结果如图3所示。
[0081] 在步骤S240中,确定波形是否有水平方向的抖动。
[0082] 在一些实现方式中,可以基于波形集合2中的波形是否有水平方向的抖动确定是否对波形集合2中的波形执行静态对齐处理。若波形集合2中的波形有水平方向的抖动,则执行步骤S250。相反地,若波形集合2中的波形没有水平方向的抖动,则执行步骤S260。
[0083] 在一些实现方式中,可以通过叠加波形集合2中的多条波形,以确定波形集合2中的多个波形之间是否存在水平方向的抖动。例如,如果在相同位置多条波形的趋势明显不同,则说明多条波形存在水平方向抖动。相反地,如果在相同位置多条波形的趋势相似,则说明多条波形不存在水平方向抖动。
[0084] 需要说明的是,在本申请实施例中,上述明显不同或相似可以通过波形之间的相似度计算确定。为了简洁,在此不再赘述。
[0085] 在步骤S250中,对波形集合2中的波形进行静态对齐操作,得到波形集合3。
[0086] 上述静态对齐的操作可以参见上文介绍,为了简洁,在此不再赘述。需要说明的是,当密码设备的触发可控,可以省略该步骤。
[0087] 在步骤S260中,确定波形集合3中的波形是否包括低频噪声。
[0088] 若波形集合3中的波形包括低频噪声,则执行步骤S270。相反地,若波形集合3中的波形不包括低频噪声,则执行步骤S280。
[0089] 在一些实现方式中,可以通过将波形集合3中的波形在纵向(或者说纵轴,例如表示能量的轴)上进行叠加,若波形集合3中的波形在纵向上明显不同,则可以说明波形集合3中包括低频噪声。相反地,若波形集合3中的波形在纵向上相似,则可以说明波形集合3中不包括低频噪声。
[0090] 需要说明的是,在本申请实施例中,上述明显不同或相似可以通过波形之间的相似度计算确定。为了简洁,在此不再赘述。
[0091] 在步骤S270中,对波形集合3中的波进行第一处理,以得到波形集合4。
[0092] 在本申请实施例中,第一处理可以采用上文介绍的处理方式1和/或处理方式2,可以参见上文的介绍,为了简洁,在此不再赘述。其中,采用处理方式2处理的波形集合,可以参见图4所示。
[0093] 在步骤S280中,确定波形集合4中波形的尾部是否对齐。
[0094] 在一些实现方式中,可以将波形集合4中波形的尾部进行相似度对比,以确定波形集合4中波形的尾部是否对齐。例如,若波形集合4中波形的尾部波形变化相似,则执行步骤S300,若波形集合4中波形的尾部波形变化不相似,则执行步骤S290。
[0095] 在步骤S290中,对波形集合4中的波形进行尖峰对齐操作。
[0096] 在一些实现方式中,可以根据加密算法的特征提取波形集合4中的波形对应的尖峰,并在在尖峰的前后分别选择相同长度的点,组成新的波形,作为波形集合5中的波形。其中,新的波形可以不包括原波形的尾部。
[0097] 在步骤S300中,确定对波形集合5中波形进行侧信道分析所需的计算量是否合适。
[0098] 在一些实现方式中,可以基于侧信道分析所需的时间,确定侧信道分析所需的计算量是否合适。例如,当侧信道分析所需的时间大于时间阈值,可以确定侧信道分析所需的计算不合适,执行步骤S301。相反地,当侧信道分析所需的时间小于或等于时间阈值,可以确定侧信道分析所需的计算合适,执行步骤S302。
[0099] 在步骤S310中,对波形集合5中的波形进行重采样处理,得到波形集合6。
[0100] 在步骤S320中,进行侧信道分析。
[0101] 在本申请实施例中,对波形集合6中的波形进行侧信道分析后,最终分析结果如图5所示。
[0102] 需要说明的是,在上述方法步骤中涉及的波形集合可能相同也可能不同。例如,若未执行步骤S270,则步骤S280的波形集合4即为步骤S270中的波形集合3,依次类推其他波形集合。
[0103] 上文结合图1至图5,详细描述了本申请的方法实施例,下面结合图6至图7,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
[0104] 图6是本申请实施例的波形的处理装置的示意图。图6所示的装置600包括:获取单元610、处理单元620。
[0105] 获取单元610,用于获取待处理的第一波形集合,所述第一波形集合中包括的波形用于指示密码设备在加密过程中泄露的侧信道信息随时间的变化;
[0106] 处理单元620,用于对所述第一波形集合中的波形进行第一处理,得到第二波形集合,所述第一处理用于减少所述第一波形集合中的低频噪声;
[0107] 所述处理单元620,用于对所述第二波形集合进行侧信道分析,以获取所述密码设备的密钥。
[0108] 在一些实现方式中,所述第一波形集合包括第一波形以及除所述第一波形之外的其他波形,所述处理单元还用于:从所述第一波形集合中选择所述第一波形,所述第一波形中包含的低频噪声高于所述其他波形中的低频噪声;将所述第一波形从所述第一波形集合中删除,得到所述第二波形集合。
[0109] 在一些实现方式中,所述第一波形集合包括第二波形,所述第二波形包括第一段波形和第二段的波形,所述第一段波形为用于所述侧信道分析的波形,所述处理单元还用于:确定所述第一段波形的第一幅值以及所述第二段波形的第二幅值;若所述第二幅值大于所述第一幅值,根据所述第二幅值,对所述第一段波形的幅值进行调整,得到调整后的第二波形,所述调整后的第二波形属于所述第二波形集合。
[0110] 在一些实现方式中,所述处理单元还用于:对第三波形集合中的波形进行低通滤波处理,得到所述第一波形集合。
[0111] 在一些实现方式中,所述处理单元还用于:对所述第三波形集合中的波形进行低通滤波处理,得到滤波后的波形;对所述滤波后的波形进行静态对齐操作,形成对齐后的波形,所述对齐后的波形属于所述第一波形集合。
[0112] 在一些实现方式中,所述处理单元还用于:对所述第一波形集合中的波形进行第一处理,得到处理后的波形;对所述处理后的波形进行尾部截断处理,得到截断后的波形,所述截断后的波形属于所述第二波形集合。
[0113] 在一些实现方式中,所述第一波形集合中的波形是在所述密码设备对目标明文进行加密的过程中得到的,所述目标明文的类型与所述第一波形集合中的波形的用途关联,所述第一波形集合中的波形的用途包括用于对所述密码设备进行泄露检测,和/或,对所述密码设备进行攻击。
[0114] 在可选的实施例中,所述获取单元610可以为输入/输出接口730,处理单元620可以为处理器720,所述装置还可以包括存储器710,具体如图7所示。
[0115] 图7是本申请另一实施例的装置的示意性框图。图7所示的装置700可以包括:存储器710、处理器720、输入/输出接口730。其中,存储器710、处理器720、输入/输出接口730通过内部连接通路相连,该存储器710用于存储指令,该处理器720用于执行该存储器720存储的指令,以控制输入/输出接口730接收输入的数据和信息,输出操作结果等数据。
[0116] 应理解,在本申请实施例中,该处理器720可以采用通用的中央处理器(central processing  unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
[0117] 该存储器710可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。处理器720的一部分还可以包括非易失性随机存取存储器。例如,处理器720还可以存储设备类型的信息。
[0118] 在实现过程中,上述方法的各步骤可以通过处理器720 中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的用于请求上行传输资源的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720 读取存储器710 中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0119] 应理解,本申请实施例中,该处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0120] 应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
[0121] 应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0122] 应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0123] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0124] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0125] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0126] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
[0127] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。