CN112134679A - 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 - Google Patents

针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 Download PDF

Info

Publication number
CN112134679A
CN112134679A CN201910550209.8A CN201910550209A CN112134679A CN 112134679 A CN112134679 A CN 112134679A CN 201910550209 A CN201910550209 A CN 201910550209A CN 112134679 A CN112134679 A CN 112134679A
Authority
CN
China
Prior art keywords
byte
attack
key
likelihood
hamming
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
CN201910550209.8A
Other languages
English (en)
Other versions
CN112134679B (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.)
Nationz Technologies Inc
Original Assignee
Nationz Technologies Inc
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 Nationz Technologies Inc filed Critical Nationz Technologies Inc
Priority to CN201910550209.8A priority Critical patent/CN112134679B/zh
Publication of CN112134679A publication Critical patent/CN112134679A/zh
Application granted granted Critical
Publication of CN112134679B publication Critical patent/CN112134679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供针对SM4的组合高阶侧信道攻击方法、装置、设备及介质。所述方法包括:根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集;基于所述训练集,建立轮密钥各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板;基于各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度;将与所述总似然度最大值对应的猜测字节确定为所述轮密钥的字节;基于所述轮密钥的字节,还原所述轮密钥;基于所述轮密钥,还原所述密钥。

Description

针对SM4的组合高阶侧信道攻击方法、装置、设备及介质
技术领域
本申请涉及密码芯片安全技术领域,具体涉及针对SM4的组合高 阶侧信道攻击方法、装置、设备及介质。
背景技术
现代密码算法的数学基础经过几十年的发展,相关理论成果已趋于 成熟,单纯通过数学方法进行密码分析,很难将当前流行的密码(如 AES、SM4)的攻击复杂度降至实际可行的范围。常用的侧信道泄露源 包括运行时间、功耗、电磁辐射等。常用的侧信道分析算法有简单功耗 分析(SPA)、差分功耗分析(DPA)、相关性功耗分析(CPA)和模板 攻击(TA),其中,各种功耗分析方法的分析对象数据亦可替换为其它 泄露源。
其中,CPA算法利用含有未知密钥K的目标设备对一组已知的明 文输入进行加密运算,并对每次运算采集功耗曲线;通过猜测子密钥k 所有可能的值,使用已知明文对每个可能值k均计算加密过程中的中间 值;对于每一个明文输入所对应的功耗曲线,计算所有可能中间值与曲 线的相关系数;对于同一个可能值k,将不同明文计算获得的相关系数 叠加,最终找出相关系数最大的一个可能值k,即为该子密钥实际值。 DPA算法通过计算单个比特的差异并进行叠加,可以看作是CPA算法 的一个特殊情况。
模板攻击被认为是目前最有效的建模方式,其使用一个可由攻击者 配置密钥值的建模设备,对子密钥k的所有可能值均进行若干次加密运 算并采集功耗曲线,并计算每个可能值所获得功耗曲线的统计特征;再 使用密钥未知的目标设备进行若干次加密运算,分析目标设备所获得曲 线集的统计特征,找出与其最接近的可能值曲线集,则该可能值即为当 前子密钥。
传统的模板攻击针对子密钥进行建模,在分组密码中常用于对密钥 扩展进行攻击。在泄露特征较小的设备中,往往对子密钥直接进行建模 难以获得有效的统计信息。此时一般会使用子密钥的汉明重量或子密钥 相关的汉明距离进行建模,但因可能有多个子密钥拥有相同的汉明重 量,使用该方法建模只能缩小子密钥的搜索空间,无法直接还原出子密 钥的具体值。针对该种场景,一种解决方法是利用所建立的汉明重量/ 距离模板替换CPA中的相关系数,从而实现基于模板的CPA攻击,这 样即可使用模板对加密过程进行攻击,且可通过汉明重量/距离模型还 原出密钥的准确值。
在侧信道攻击中,为增强算法的攻击能力,会同时对多个中间值进 行建模。其中较常用的是将两个不同中间值进行算数组合以得到一个新 的中间值,再对新的中间值进行建模,称为二阶侧信道攻击。也可组合 更多中间值,以进行高阶侧信道攻击。
侧信道攻击是针对密码硬件的一种有效攻击方式,其攻击效果在不 同芯片平台以及密码算法上均已得到验证。SM4算法是我国所公布的 商用分组密码算法,其加密数据和密钥长度为128比特。SM4算法近 年来在密码设备中得到较大程度的推广普及,为保证设备安全性,其抵 抗侧信道攻击的能力也需要得到相应的分析。
发明人发现,由于SM4基于字运算的特点,在对其进行侧信道泄 露建模时,难以选取一个合适的中间值。若对整个中间值Xi直接进行建 模,那么侧信道泄漏模型的猜测空间较大,需要采集大量功耗曲线并 进行大量运算,实际操作可行性较差。已有的方法通过选择明文、针对 一个小功能模块进行建模等方法,降低采样空间,但或操作不便,或难 以获得显著泄露信息。
发明人还发现,通过选择特定明文输入来对Xi的汉明重量或Xi中的 一个字节进行建模,也有对τ(·)中一个S盒的输入输出异或值进行二阶 侧信道建模。在进行选择明文攻击时,每攻击一个中间值即需要对为期 设定相应特征的明文输入,对目标设备进行重新采样,采样耗时较多操 作繁琐。此外,在对汉明重量进行建模时,样本容量为33,汉明重量 为0、32等较大和较小的中间值有可能样本出现次数过少,从而导致模 板误差较大。而S盒的运算较为简便,在部分实现方案中可能不会调用 寄存器等功耗较大的元件,因此使用S盒输入输出进行二阶建模时所获 得的泄露信息较少,可能无法完整还原出正确密钥。
发明内容
本申请实施例提供一种针对SM4的组合高阶侧信道攻击方法,包 括:根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、 未知密钥加密运算的功耗曲线作为攻击集;基于所述训练集,建立轮密 钥各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类 模板;基于各字节的汉明距离的统计分类模板和各字节的汉明重量的统 计分类模板,计算所述轮密钥的多个猜测字节分别攻击所述攻击集的所 有明文得到的组合高阶侧信道攻击的总似然度;将与所述总似然度最大 值对应的猜测字节确定为所述轮密钥的字节;基于所述轮密钥的字节, 还原所述轮密钥;基于所述轮密钥,还原所述密钥。
作为本申请的一个方面,所述根据SM4算法,获取已知密钥加密 运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击 集,包括:根据SM4算法,基于已知随机明文和已知随机密钥进行加 密运算,获取功耗曲线组成训练集;基于已知随机明文和未知密钥进行 加密运算,获取功耗曲线组成攻击集。
作为本申请的一个方面,所述基于所述训练集,建立轮密钥各字节 的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,包 括:计算所述轮密钥在所述训练集的功耗曲线的加密迭代中各字节对应 的S盒输入输出值的第一汉明距离和所述各字节的第一汉明重量;基于 所述第一汉明距离,建立所述各字节的汉明距离的统计分类模板;基于 所述第一汉明重量,建立所述各字节的汉明重量的统计分类模板。
作为本申请的一个方面,采用多元高斯分布、支持向量机、决策树 或深度学习建立汉明距离的统计分类模板和汉明重量的统计分类模板。
作为本申请的一个方面,所述基于各字节的汉明距离的统计分类模 板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字 节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似 然度,包括:将所述轮密钥的多个猜测字节分别与所述攻击集的一条已 知随机明文进行加密计算,得到加密迭代中各个所述猜测字节对应的S 盒输入输出值的第二汉明距离和所述猜测字节的第二汉明重量;基于各 个所述猜测字节对应的字节的第一汉明距离的统计分类模板计算所述 第二汉明距离的似然度;基于各个所述猜测字节对应的字节的第一汉明 重量的统计分类模板计算所述第二汉明重量的似然度;将各个猜测字节 的所述第二汉明距离的似然度和所述第二汉明重量的似然度相乘得到 各个猜测字节的所述组合似然度;将各个所述猜测字节与所述攻击集的 所有已知随机明文进行加密计算获得的所述组合似然度相乘得到各个 所述猜测字节的组合高阶侧信道攻击的总似然度。
作为本申请的一个方面,所述根据SM4算法,获取已知密钥加密 运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集 之后,还包括:对所述训练集和攻击集的数据进行预处理。
作为本申请的一个方面,所述对所述训练集和攻击集的数据进行预 处理包括对所述训练集和攻击集的数据进行降维、对齐处理。
本申请实施例还提供一种针对SM4的组合高阶侧信道攻击装置, 包括集获取模块、建模模块、总似然度计算模块、轮密钥字节确定模块、 轮密钥还原模块、密钥还原模块,所述集获取模块根据SM4算法,获 取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗 曲线作为攻击集;所述建模模块基于所述训练集,建立轮密钥的各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板;所述 总似然度计算模块基于各字节的汉明距离的统计分类模板和各字节的 汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所 述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度;所述轮密 钥字节确定模块将与所述总似然度的最大值对应的猜测字节确定为所 述轮密钥的字节;所述轮密钥还原模块基于所述轮密钥的字节,还原所 述轮密钥;所述密钥还原模块基于所述轮密钥,还原所述密钥。
作为本申请的一个方面,所述集获取模块包括训练集获取模块、攻 击集获取模块,所述训练集获取模块根据SM4算法,基于已知随机明 文和已知随机密钥进行加密运算,获取功耗曲线组成训练集;所述攻击 集获取模块基于已知随机明文和未知密钥进行加密运算,获取功耗曲线 组成攻击集。
作为本申请的一个方面,所述建模模块包括第一计算模块、汉明距 离建模模块、汉明重量建模模块,所述第一计算模块计算所述轮密钥在 所述训练集的功耗曲线的加密迭代中各字节对应的S盒输入输出值的 第一汉明距离和所述各字节的第一汉明重量;所述汉明距离建模模块基 于所述第一汉明距离,建立所述各字节的汉明距离的统计分类模板;所 述汉明重量建模模块基于所述第一汉明重量,建立所述各字节的汉明重 量的统计分类模板。
作为本申请的一个方面,所述总似然度计算模块包括第二计算模 块、汉明距离似然度计算模块、汉明重量似然度计算模块、组合似然度 确定模块、总似然度确定模块,所述第二计算模块将所述轮密钥的多个 猜测字节分别与所述攻击集的一条已知随机明文进行加密计算,得到加 密迭代中各个所述猜测字节对应的S盒输入输出值的第二汉明距离和所述猜测字节的第二汉明重量;所述汉明距离似然度计算模块基于各个 所述猜测字节对应的字节的第一汉明距离的统计分类模板计算所述第 二汉明距离的似然度;所述汉明重量似然度计算模块基于各个所述猜测 字节对应的字节的第一汉明重量的统计分类模板计算所述第二汉明重 量的似然度;所述组合似然度确定模块将各个猜测字节的所述第二汉明 距离的似然度和所述第二汉明重量的似然度相乘得到各个猜测字节的 所述组合似然度;所述总似然度确定模块将各个所述猜测字节与所述攻 击集的所有已知随机明文进行加密计算获得的所述组合似然度相乘得 到各个所述猜测字节的组合高阶侧信道攻击的总似然度。
作为本申请的一个方面,所述装置还包括预处理模块,所述预处理 模块对所述训练集和攻击集的数据进行预处理。
本申请实施例还提供一种电子设备,包括存储器、处理器及存储在 存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器 执行所述程序时实现上述所述的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有处理器程 序,其特征在于,所述处理器程序用于执行上述所述的方法。
本申请的实施例提出的技术方案,通过多个中间值的似然度进行组合 的方法,对SM4算法进行组合高阶侧信道攻击,增强了攻击效果并简化了 采样流程。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描 述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图 仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出 创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为SM4算法结构示意图;
图2为本申请一实施例提供的一种针对SM4的组合高阶侧信道攻 击方法流程示意图;
图3为本申请一实施例提供的一种针对SM4的组合高阶侧信道攻 击装置组成示意图;
图4为本申请另一实施例提供的一种针对SM4的组合高阶侧信道 攻击装置组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,以下将结合 附图和实施例,对本申请技术方案的具体实施方式进行更加详细、清楚 的说明。然而,以下描述的具体实施方式和实施例仅是说明的目的,而 不是对本申请的限制。其只是包含了本申请一部分实施例,而不是全部 的实施例,本领域技术人员对于本申请的各种变化获得的其他实施例, 都属于本申请保护的范围。
SM4算法是我国所公布的商用分组密码算法,其加密数据和密钥 长度为128比特。图1为SM4算法结构示意图,具体算法流程如下。
令明文输入为
Figure BDA0002105285220000071
密钥为
Figure BDA0002105285220000072
算法加密共有32轮,轮密钥为
Figure BDA0002105285220000073
加密过程为32轮迭代运算:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki),i=0,1,…,31; 在迭代运算后进行一次反序运算,获得密文: (Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。
其中,轮函数F定义为
Figure BDA0002105285220000074
Figure BDA0002105285220000075
包括两个函数,即T(·)=L(τ(·))。τ(·)为四个大小为一字节的S 盒运算,令一个输入字为
Figure BDA0002105285220000076
输出为
Figure BDA0002105285220000077
τ(·)由四个并行的S盒构成,定义为 (b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))。线性变换L(·)的 输入输出为一个字,定义为
Figure BDA0002105285220000078
其中<<<代表循环左移操作。
在密钥扩展中,先生成4个初始密钥字
Figure BDA0002105285220000079
其中
Figure BDA00021052852200000710
为预设好的固定值。每一轮的轮密钥为
Figure BDA00021052852200000711
Figure BDA00021052852200000712
为预设好的固定值。T′(·) 为T(·)将L(·)变换替换为
Figure BDA00021052852200000713
本专利提出的针对SM4的组合侧信道攻击方法,通过完全随机的 明文和密文输入建立模板,对S盒输入输出值的汉明距离和密钥扩展中 间值Ki的一个字节的汉明重量分别进行建模,进行基于模板的CPA攻 击。该方法每个中间值的样本容量为9,样本不平衡的情况相对于基于 字的汉明重量建模可以明显改善,并且组合多种中间值的统计信息,获 得比单独使用S盒输入输出更强的统计模型,此外,通过对加密中间值 进行CPA攻击,可在使用汉明重量/距离模型时直接还原出rki中对应字 节的值。
图2为本申请一实施例提供的一种针对SM4的组合高阶侧信道攻 击方法流程示意图,包括以下步骤。
在步骤S10中,根据SM4算法,获取已知密钥加密运算的功耗曲 线作为训练集、未知密钥加密运算的功耗曲线作为攻击集。
根据SM4算法,在完全可控的建模设备上使用N条已知随机明文 输入Pi=(Pi,0,Pi,1,Pi,2,Pi,3),(0≤i<N)和N条已知随机密钥输 入Keyi=(Mki,0,Mki,1,Mki,2,Mki,3),(0≤i<N)进行若干次加密 运算,并对每次运算采集功耗曲线,将其作为训练集。
在包含有未知密钥
Figure BDA0002105285220000081
的目标设备上使用另一 组随机已知明文输入P′i=(P′i,0,P′i,1,P′i,2,P′i,3),(0≤i< N′)进行加密运算,并对每次运算采集功耗曲线Ti(0≤i<N′),将其 作为攻击集。
优选地,对训练集和攻击集的数据可以进行预处理。预处理就是对 训练集和攻击集的数据进行降维、对齐处理。
在步骤S20中,基于训练集,建立轮密钥各字节的汉明距离的统计 分类模板和汉明重量的统计分类模板。
采用SM4密码算法针对训练集的每条功耗曲线,计算轮密钥的各 个字节在加密迭代中对应的S盒输入输出值的第一汉明距离和各字节 的第一汉明重量。第一汉明距离和第一汉明重量为加密计算的中间值。
在本实施例中,S盒是固定的8比特输入8比特输出的置换。
汉明距离是以理查德·卫斯里·汉明的名字命名的。两个等长字符 串之间的汉明距离就是两个字符串对应位置的不同字符的个数。例如: 1011101与1001001之间的汉明距离是2。2143896与2233796之间的 汉明距离是3。Toned与roses之间的汉明距离是3。
汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是 说,它是字符串中非零的元素个数,对于二进制字符串来说,就是1的 个数。例如11101的汉明重量是4。
具体而言,以第0轮密钥的第0个字节为例,这里将第0个轮密钥 rk0的四个字节分别记作rk0,i(0≤i≤3)。轮密钥rk0的第0个字节,记 作rk0,0。首先对训练集中的加密曲线Enc(Pi,Keyi),计算第0轮加密迭代 τ(·)中第0个字节S盒输入输出值的第一汉明距离HD(a0,Sbox(a0))以及第 0个字节的第一汉明重量HW(rk0,0)。
基于第一汉明距离,建立第0轮密钥的第0个字节的汉明距离的统 计分类模板。将第一汉明距离相同的功耗曲线归为同一子类,一个字节 有8位,从全0到全1值为0到8九种汉明距离,则可分别建立九个子 类模板。对每个子类进行统计建模,所建立的模板为该子类的统计学特 征模型,如以多元高斯分布模型建模,则模板为对当前子集中数据进行 多元高斯拟合后获得的高斯分布的平均值向量和协方差矩阵。
基于第一汉明重量,建立第0轮密钥的第0个字节的汉明重量的统 计分类模板。对第一汉明重量相同的功耗曲线归为同一子类,则可分别 建立九个子类模板。对每个子类进行统计建模。
建立汉明距离的统计分类模板和汉明重量的统计分类模板的方法 包括多元高斯分布、支持向量机、决策树、深度学习。因为采用模板攻 击的方法进行建模,本发明中的统计建模工具可以变更为多种形式。除 了上述几种外,核函数、随机森林等各种可用于统计分类问题的建模方 法均可用于本场景。在对AES、DES等分组密码算法的攻击中也可利 用类似方法组合中间值实现高阶侧信道攻击。虽然本发明攻击方法所使 用的数据为功耗泄露,但使用电磁等其它侧信道泄露曲线进行攻击时也 可使用与本发明相同的攻击流程。
重复该步骤,建立轮密钥各字节的汉明距离的统计分类模板和汉明 重量的统计分类模板。
在步骤S30中,基于各字节的汉明距离的统计分类模板和各字节的 汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所 述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度。
将轮密钥的各猜测字节与攻击集的一条已知随机明文输入 P′i=(P′i,0,P′i,1,P′i,2,P′i,3),(0≤i<N′)进行加密计算
Figure BDA0002105285220000101
计算结果
Figure BDA0002105285220000102
包含256×N’个值。 本次只攻击
Figure BDA0002105285220000103
中与rk00对应的第0个字节
Figure BDA0002105285220000104
其它字节忽略不计。
以第0轮密钥的第0个字节为例,在目标设备上第0个轮密钥rk0的第0个字节rk00,猜测共有256种可能性,第j种可能的第0个轮密 钥rk0的第0个字节为
Figure BDA0002105285220000105
将第0个轮密钥rk0的其它 字节设置为0,则获得每种可能性对应的第0个轮密钥
Figure BDA0002105285220000106
rk00的猜测值的每种可能性为猜测字节,对每个猜测字节和对应 每次加密所得的
Figure BDA0002105285220000107
计算在攻击集的功耗曲线的加密迭代中该猜测字 节对应的S盒输入输出值的第二汉明距离
Figure BDA0002105285220000108
和该猜测字 节的第二汉明重量
Figure BDA0002105285220000109
可以看出,对每个相同的j,计算出的第 二汉明重量
Figure BDA00021052852200001010
是固定的,而计算出的第二汉明距离
Figure BDA00021052852200001011
会跟随明文的改变而变化。
基于该字节的第一汉明距离的统计分类模板计算第二汉明距离的 似然度。令第i次加密过程中所记录的功耗曲线为Ti,对于rk0,0的每 个猜测字节所得的
Figure RE-GDA00021509055900001012
其似然度记为
Figure RE-GDA00021509055900001013
根据贝叶斯法则,该似然度可由
Figure RE-GDA00021509055900001014
所对应的统计模板直接计算可得,即将Ti带入该统计模板参数的对应 公式(如多元高斯分布公式),计算在该公式下Ti的概率,即为所求似 然度。
基于该字节的第一汉明重量的统计分类模板计算第二汉明重量的 似然度,记为
Figure BDA0002105285220000111
该似然度计算方法与
Figure BDA0002105285220000112
类似,将Ti带入
Figure BDA0002105285220000113
模板参数的对应公式可得。
将第二汉明距离的似然度和第二汉明重量的似然度相乘得到组合 似然度。该组合似然度
Figure BDA0002105285220000114
是第 j种可能性在第i次加密中的组合似然度。
将该猜测字节与攻击集的所有已知随机明文进行加密计算获得的 组合似然度相乘得到猜测密钥的该字节的组合高阶侧信道攻击的总似 然度
Figure BDA0002105285220000115
在步骤S40中,将与所述总似然度最大值对应的猜测字节确定为所 述轮密钥的字节。
最大的总似然度
Figure BDA0002105285220000116
所对应的j即为本次攻击所预测的rk0,0的值。重 复攻击,将第0轮密钥rk0的每个字节都被确定。
在步骤S50中,基于轮密钥的字节,还原轮密钥。
组合第0轮密钥rk0的每个字节,还原出第0轮密钥。同样的,继 续还原出所有的轮密钥rk1,rk2,rk3
在步骤S60中,基于轮密钥,还原密钥。
使用如下公式,计算初始密钥字K0、K1、K2、K3,则密钥
Figure BDA0002105285220000117
可由
Figure BDA0002105285220000118
获得。其中
Figure BDA0002105285220000119
是预设好的固 定值。
Figure BDA00021052852200001110
Figure BDA00021052852200001111
Figure BDA00021052852200001112
Figure BDA00021052852200001113
本实施例提出的技术方案,基于字节汉明重量/距离建模,中间值样本 空间更小;无需对明文进行限制和重新采样,操作更加方便;使用模板进 行CPA形式的攻击,统计模型可以灵活选择,且可直接还原出具体中间值; 通过多个中间值的似然度进行组合的方法,对SM4算法进行组合高阶侧信 道攻击,增强了攻击效果并简化了采样流程。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理 器上运行的计算机程序,处理器执行程序时实现上述所述的方法。
一种计算机可读存储介质,其上存储有处理器程序,处理器程序用于 执行上述所述的方法。
图3为本申请一实施例提供的一种针对SM4的组合高阶侧信道攻 击装置组成示意图,包括集获取模块1、建模模块2、总似然度计算模 块3、轮密钥字节确定模块4、轮密钥还原模块5、密钥还原模块6。
集获取模块1获取训练集和攻击集。建模模块2基于训练集,建立 轮密钥的各字节的汉明距离的统计分类模板和各字节的汉明重量的统 计分类模板。总似然度计算模块3基于各字节的汉明距离的统计分类模 板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字 节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度。轮密钥字节确定模块4将与所述总似然度最大值对应的猜测字节 确定为所述轮密钥的字节。轮密钥还原模块5基于轮密钥的字节,还原 轮密钥。密钥还原模块6基于轮密钥,还原密钥。
图4为本申请另一实施例提供的一种针对SM4的组合高阶侧信道 攻击装置组成示意图,包括集获取模块1、建模模块2、总似然度计算 模块3、轮密钥字节确定模块4、轮密钥还原模块5、密钥还原模块6。
集获取模块1获取训练集和攻击集。建模模块2基于训练集,建立 轮密钥的各字节的汉明距离的统计分类模板和各字节的汉明重量的统 计分类模板。总似然度计算模块3基于各字节的汉明距离的统计分类模 板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字 节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度。轮密钥字节确定模块4将与所述总似然度最大值对应的猜测字节 确定为所述轮密钥的字节。轮密钥还原模块5基于轮密钥的字节,还原 轮密钥。密钥还原模块6基于轮密钥,还原密钥。
集获取模块1包括训练集获取模块11、攻击集获取模块12。
训练集获取模块11基于已知随机明文和已知随机密钥进行加密运 算,获取功耗曲线组成训练集。攻击集获取模块12基于已知随机明文 和未知密钥进行加密运算,获取功耗曲线组成攻击集。
在本实施例中,需要指出的是,作为一种可选择的方案,装置还可 以包括预处理模块7。预处理模块7对训练集和攻击集的数据进行预处 理。
建模模块2包括第一计算模块21、汉明距离建模模块22、汉明重 量建模模块23。
第一计算模块21计算在训练集的功耗曲线的加密迭代中轮密钥的 各字节对应的S盒输入输出值的第一汉明距离和各字节的第一汉明重 量。汉明距离建模模块22基于第一汉明距离,建立各字节的汉明距离 的统计分类模板。汉明重量建模模块23基于第一汉明重量,建立各字 节的汉明重量的统计分类模板。
总似然度计算模块3包括第二计算模块31、汉明距离似然度计算 模块32、汉明重量似然度计算模块33、组合似然度确定模块34、总似 然度确定模块35。
第二计算模块31将轮密钥的多个猜测字节分别与攻击集的一条已 知随机明文进行加密计算,得到加密迭代中各个猜测字节对应的S盒输 入输出值的第二汉明距离和猜测字节的第二汉明重量。汉明距离似然度 计算模块32基于各个猜测字节对应的字节的第一汉明距离的统计分类 模板计算第二汉明距离的似然度。汉明重量似然度计算模块33基于各 个猜测字节对应的字节的第一汉明重量的统计分类模板计算第二汉明 重量的似然度。组合似然度确定模块34将各个猜测字节的第二汉明距 离的似然度和第二汉明重量的似然度相乘得到各个猜测字节的组合似 然度。总似然度确定模块35将各个猜测字节与攻击集的所有已知随机 明文进行加密计算获得的组合似然度相乘得到各个猜测字节的组合高阶侧信道攻击的总似然度。
需要说明的是,以上参照附图所描述的各个实施例仅用以说明本申 请而非限制本申请的范围,本领域的普通技术人员应当理解,在不脱离 本申请的精神和范围的前提下对本申请进行的修改或者等同替换,均应 涵盖在本申请的范围之内。此外,除上下文另有所指外,以单数形式出 现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施 例的全部或一部分可结合任何其它实施例的全部或一部分来使用。

Claims (14)

1.一种针对SM4的组合高阶侧信道攻击方法,包括:
根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集;
基于所述训练集,建立轮密钥各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板;
基于各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度;
将与所述总似然度最大值对应的猜测字节确定为所述轮密钥的字节;
基于所述轮密钥的字节,还原所述轮密钥;
基于所述轮密钥,还原所述密钥。
2.根据权利要求1所述的方法,其中,所述根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集,包括:
根据SM4算法,基于已知随机明文和已知随机密钥进行加密运算,获取功耗曲线组成训练集;
基于已知随机明文和未知密钥进行加密运算,获取功耗曲线组成攻击集。
3.根据权利要求1所述的方法,其中,所述基于所述训练集,建立轮密钥各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,包括:
计算所述轮密钥在所述训练集的功耗曲线的加密迭代中各字节对应的S盒输入输出值的第一汉明距离和所述各字节的第一汉明重量;
基于所述第一汉明距离,建立所述各字节的汉明距离的统计分类模板;
基于所述第一汉明重量,建立所述各字节的汉明重量的统计分类模板。
4.根据权利要求3所述的方法,其中,采用多元高斯分布、支持向量机、决策树或深度学习建立汉明距离的统计分类模板和汉明重量的统计分类模板。
5.根据权利要求1所述的方法,其中,所述基于各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度,包括:
将所述轮密钥的多个猜测字节分别与所述攻击集的一条已知随机明文进行加密计算,得到加密迭代中各个所述猜测字节对应的S盒输入输出值的第二汉明距离和所述猜测字节的第二汉明重量;
基于各个所述猜测字节对应的字节的第一汉明距离的统计分类模板计算所述第二汉明距离的似然度;
基于各个所述猜测字节对应的字节的第一汉明重量的统计分类模板计算所述第二汉明重量的似然度;
将各个猜测字节的所述第二汉明距离的似然度和所述第二汉明重量的似然度相乘得到各个猜测字节的所述组合似然度;
将各个所述猜测字节与所述攻击集的所有已知随机明文进行加密计算获得的所述组合似然度相乘得到各个所述猜测字节的组合高阶侧信道攻击的总似然度。
6.根据权利要求1所述的方法,其中,所述根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集之后,还包括:
对所述训练集和攻击集的数据进行预处理。
7.根据权利要求6所述的方法,其中,所述对所述训练集和攻击集的数据进行预处理包括对所述训练集和攻击集的数据进行降维、对齐处理。
8.一种针对SM4的组合高阶侧信道攻击装置,包括:
集获取模块,根据SM4算法,获取已知密钥加密运算的功耗曲线作为训练集、未知密钥加密运算的功耗曲线作为攻击集;
建模模块,基于所述训练集,建立轮密钥的各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板;
总似然度计算模块,基于各字节的汉明距离的统计分类模板和各字节的汉明重量的统计分类模板,计算所述轮密钥的多个猜测字节分别攻击所述攻击集的所有明文得到的组合高阶侧信道攻击的总似然度;
轮密钥字节确定模块,将与所述总似然度的最大值对应的猜测字节确定为所述轮密钥的字节;
轮密钥还原模块,基于所述轮密钥的字节,还原所述轮密钥;
密钥还原模块,基于所述轮密钥,还原所述密钥。
9.根据权利要求8所述的装置,其中,所述集获取模块包括:
训练集获取模块,根据SM4算法,基于已知随机明文和已知随机密钥进行加密运算,获取功耗曲线组成训练集;
攻击集获取模块,基于已知随机明文和未知密钥进行加密运算,获取功耗曲线组成攻击集。
10.根据权利要求8所述的装置,其中,所述建模模块包括:
第一计算模块,计算所述轮密钥在所述训练集的功耗曲线的加密迭代中各字节对应的S盒输入输出值的第一汉明距离和所述各字节的第一汉明重量;
汉明距离建模模块,基于所述第一汉明距离,建立所述各字节的汉明距离的统计分类模板;
汉明重量建模模块,基于所述第一汉明重量,建立所述各字节的汉明重量的统计分类模板。
11.根据权利要求8所述的装置,其中,所述总似然度计算模块包括:
第二计算模块,将所述轮密钥的多个猜测字节分别与所述攻击集的一条已知随机明文进行加密计算,得到加密迭代中各个所述猜测字节对应的S盒输入输出值的第二汉明距离和所述猜测字节的第二汉明重量;
汉明距离似然度计算模块,基于各个所述猜测字节对应的字节的第一汉明距离的统计分类模板计算所述第二汉明距离的似然度;
汉明重量似然度计算模块,基于各个所述猜测字节对应的字节的第一汉明重量的统计分类模板计算所述第二汉明重量的似然度;
组合似然度确定模块,将各个猜测字节的所述第二汉明距离的似然度和所述第二汉明重量的似然度相乘得到各个猜测字节的所述组合似然度;
总似然度确定模块,将各个所述猜测字节与所述攻击集的所有已知随机明文进行加密计算获得的所述组合似然度相乘得到各个所述猜测字节的组合高阶侧信道攻击的总似然度。
12.根据权利要求8所述的装置,还包括:
预处理模块,对所述训练集和攻击集的数据进行预处理。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至权利要求7之任一项所述的方法。
14.一种计算机可读存储介质,其上存储有处理器程序,其特征在于,所述处理器程序用于执行权利要求1至权利要求7之任一项所述的方法。
CN201910550209.8A 2019-06-24 2019-06-24 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 Active CN112134679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910550209.8A CN112134679B (zh) 2019-06-24 2019-06-24 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910550209.8A CN112134679B (zh) 2019-06-24 2019-06-24 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112134679A true CN112134679A (zh) 2020-12-25
CN112134679B CN112134679B (zh) 2024-04-30

Family

ID=73849968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910550209.8A Active CN112134679B (zh) 2019-06-24 2019-06-24 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112134679B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438067A (zh) * 2021-05-30 2021-09-24 衡阳师范学院 一种压缩密钥猜测空间的侧信道攻击方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018188002A1 (en) * 2017-04-12 2018-10-18 Beijing Lianshi Networks Technology Co., Ltd. Methods and apparatus for secure and efficient implementation of block ciphers
CN109218008A (zh) * 2017-07-05 2019-01-15 北京同方微电子有限公司 一种针对sm4密钥扩展算法的模板攻击方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018188002A1 (en) * 2017-04-12 2018-10-18 Beijing Lianshi Networks Technology Co., Ltd. Methods and apparatus for secure and efficient implementation of block ciphers
CN109218008A (zh) * 2017-07-05 2019-01-15 北京同方微电子有限公司 一种针对sm4密钥扩展算法的模板攻击方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马向亮: "基于独立分量技术的类GIFT算法S盒逆向分析", 计算机研究与发展 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438067A (zh) * 2021-05-30 2021-09-24 衡阳师范学院 一种压缩密钥猜测空间的侧信道攻击方法

Also Published As

Publication number Publication date
CN112134679B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
Bhasin et al. Mind the portability: A warriors guide through realistic profiled side-channel analysis
Biryukov et al. On multiple linear approximations
Abraham et al. Secure image encryption algorithms: A review
CN108604981B (zh) 用于估计秘密值的方法和设备
CN112800444A (zh) 基于二维混沌映射的彩色图像加密方法
Waqas et al. Generation of AES-like S-boxes by replacing affine matrix
Wang et al. Efficient framework for genetic algorithm-based correlation power analysis
Luo et al. Cryptanalysis of a chaotic block cryptographic system against template attacks
Rajput et al. A novel image encryption and authentication scheme using chaotic maps
CN112134679B (zh) 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
Stankovski et al. Improved distinguishers for HC-128
CN114465728A (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
Lemke-Rust et al. Analyzing side channel leakage of masked implementations with stochastic methods
Stöttinger et al. Side-channel resistance evaluation of a neural network based lightweight cryptography scheme
WO2018207348A1 (ja) 逆像サンプリング装置、逆像サンプリング方法および逆像サンプリングプログラム
CN110730062B (zh) 一种基于模板攻击的混沌分组加密分析方法
El Sobky et al. Implementation Mini (Advanced Encryption Standard) by Substitution Box in Galois Field (2 4)
Zhang et al. Tweaking the asymmetry of asymmetric-key cryptography on lattices: KEMs and signatures of smaller sizes
Nozaki et al. Deep learning based side-channel analysis for lightweight cipher PRESENT
Al-Attab et al. Lightweight effective encryption algorithm for securing data in cloud computing
CN112398638B (zh) 一种零相关线性密码分析方法、系统、介质及电子设备
CN113965324B (zh) 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统
Zhang et al. Ensemble learning-based differential distinguishers for lightweight cipher
CN117155546B (zh) 分组密码类立方攻击的搜索方法、装置、电子设备及介质

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