CN114640439A - 一种针对高级加密标准aes算法的掩码防护方法及装置 - Google Patents

一种针对高级加密标准aes算法的掩码防护方法及装置 Download PDF

Info

Publication number
CN114640439A
CN114640439A CN202210375689.0A CN202210375689A CN114640439A CN 114640439 A CN114640439 A CN 114640439A CN 202210375689 A CN202210375689 A CN 202210375689A CN 114640439 A CN114640439 A CN 114640439A
Authority
CN
China
Prior art keywords
result
mask
processing
round
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.)
Pending
Application number
CN202210375689.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.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN202210375689.0A priority Critical patent/CN114640439A/zh
Publication of CN114640439A publication Critical patent/CN114640439A/zh
Pending legal-status Critical Current

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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种针对高级加密标准AES算法的掩码防护方法及装置,包括将携带第i轮掩码的数据与密钥数据进行异或处理,复用N个乘法模块进行求逆运算和仿射变换,进行行变换,若i=10,进行掩码补偿,而后进行去掩码处理,输出经过密钥数据处理的密文,若i<10,进行列混淆之后,进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。也就是说,在进行求逆运算时复用乘法模块,优化AES算法中的求逆运算,相较于其他防护方法中乘法模块需要的资源,本申请中乘法模块所占用的资源开销大大减小,满足降低防护方法的使用资源,降低资源开销的需求。

Description

一种针对高级加密标准AES算法的掩码防护方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种针对高级加密标准AES算法的掩码防护方法及装置。
背景技术
随着计算机等相关技术的快速发展,已经进入信息社会,数据安全对于多种领域例如金融或军事等异常重要。可以采用多种数据防护方法保护数据的安全。
当前可以对数据进行加密,以便保护数据的安全。常用的传统加密算法为高级加密标准(Advanced Encryption Standard,AES)算法。但是AES算法也可以通过多种攻击方法进行破解,可以针对AES算法进行防护,以加强数据的安全性。
但是当前的防护方法,使用的资源较多,资源开销较大,因此存在降低防护方法使用资源的需求。
发明内容
有鉴于此,本申请的目的在于提供一种针对高级加密标准AES算法的掩码防护方法及装置,能够降低防护方法的使用资源,降低资源开销。
为实现上述目的,本申请有如下技术方案:
本申请实施例提供了一种针对高级加密标准AES算法的掩码防护方法,所述方法包括:
将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10;
复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数;
对所述第i轮的第二结果进行行变换,得到第i轮的第三结果;
若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;
若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
可选地,所述复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果包括:
复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
在有限域GF(22)对所述第一子结果进行求逆运算,得到第二子结果;
继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果;
对所述第三子结果进行仿射变换,得到所述第二结果。
可选地,所述N为6,所述N个乘法模块包括:第一乘法模块、第二乘法模块、第三乘法模块、第四乘法模块、第五乘法模块和第六乘法模块;
所述复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果包括:
利用所述第三乘法模块、所述第五乘法模块和所述第六乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
所述继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果包括:
利用所述第一乘法模块、所述第二乘法模块和所述第三乘法模块或利用所述第一乘法模块、所述第四乘法模块和所述第五乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果。
可选地,所述对所述第i轮的第三结果进行掩码补偿包括:
将所述第10轮的第三结果和第一补偿掩码进行异或处理。
所述对所述第i轮的第四结果进行掩码补偿包括:
将所述第i轮的第四结果和第二补偿掩码进行异或处理。
可选地,将所述第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果;
所述去掩码处理包括:
将所述第五结果与目标掩码进行异或处理。
本申请实施例提供一种针对高级加密标准AES算法的掩码防护装置,所述装置包括:
第一处理单元,用于将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10;
第二处理单元,用于复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数;
第三处理单元,用于对所述第i轮的第二结果进行行变换,得到第i轮的第三结果;
第四处理单元,用于若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;
第五处理单元,用于若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
可选地,所述第二处理单元,具体用于:
复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
在有限域GF(22)对所述第一子结果进行求逆运算,得到第二子结果;
继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果;
对所述第三子结果进行仿射变换,得到所述第二结果。
可选地,所述N为6,所述N个乘法模块包括:第一乘法模块、第二乘法模块、第三乘法模块、第四乘法模块、第五乘法模块和第六乘法模块;
所述第二处理单元,具体用于:
利用所述第三乘法模块、所述第五乘法模块和所述第六乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
所述继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果包括:
利用所述第一乘法模块、所述第二乘法模块和所述第三乘法模块或利用所述第一乘法模块、所述第四乘法模块和所述第五乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果。
可选地,所述第四处理单元,具体用于:
将所述第10轮的第三结果和第一补偿掩码进行异或处理。
所述对所述第i轮的第四结果进行掩码补偿包括:
将所述第i轮的第四结果和第二补偿掩码进行异或处理。
可选地,将所述第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果;
所述第四处理单元,具体用于:
将所述第五结果与目标掩码进行异或处理。
本申请实施例提供了一种针对高级加密标准AES算法的掩码防护方法,包括将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10,复用N个乘法模块对第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数,对第i轮的第二结果进行行变换,得到第i轮的第三结果,若i=10,则对第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;若i<10,则对第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。也就是说,在进行求逆运算时复用乘法模块,优化AES算法中的求逆运算,相较于其他防护方法中乘法模块需要的资源,本申请中乘法模块所占用的资源开销大大减小,满足降低防护方法的使用资源,降低资源开销的需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本申请实施例提供的一种针对高级加密标准AES算法的掩码防护方法的流程示意图;
图2示出了本申请实施例提供的一种高级加密标准AES算法加密过程掩码防护结构示意图;
图3示出了本申请实施例提供的一种有限域GF(24)上的求逆运算结构图;
图4示出了本申请实施例提供的一种针对高级加密标准AES算法的掩码防护装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着计算机等相关技术的快速发展,已经进入信息社会,数据安全对于多种领域例如金融或军事等异常重要。可以采用多种数据防护方法保护数据的安全。
当前可以对数据进行加密,以便保护数据的安全。常用的传统加密算法为高级加密标准(Advanced Encryption Standard,AES)算法,也可称为Rijndael算法,是一种分组密码算法,明文共有128位,密钥可以为128位、192位或256位。AES算法主要包括四个运算:轮密钥加、字节变换(Sbox)、行变换和列混淆。
AES算法可以通过多种攻击方法进行破解,例如侧信道攻击,侧信道攻击(Side-channel attacks)作为一种非侵入式的被动攻击,并不需要进入芯片直接访问内部组件,也不会干扰设备的正常运行,而是通过获取设备在运行时得到的功耗、运行时间、电磁辐射等外部信息进行攻击。这些外部信息被称为侧信道。侧信道攻击具有成本低、攻击方式多、防御方法消耗资源多等特点。尤其对于IC卡和物联网设备,攻击者能够轻易得到运行时产生的物理参数,因此侧信道攻击成为了加密设备安全的巨大威胁。功耗分析攻击作为侧信道攻击的一种重要攻击方法,通过收集加解密操作过程中的功耗曲线,分析功耗与数据之间的关系从而获取加密数据信息。
侧信道攻击中包括功耗分析攻击,功耗分析攻击包括以下几种:
简单分析攻击(Simple power analysis,SPA)是通过观察设备在操作运行时的功耗测量值,得出具体操作细节与功耗的关系,通常只对一条或几条能量迹进行分析。当噪声影响较大时,单靠SPA攻击很难得到密钥,因此SPA攻击也会用做其他攻击的辅助手段。
差分分析攻击(Differential power analysis,DPA)是最常见的一种侧信道攻击,这种攻击不需要了解被攻击者的硬件结构,即使在很大的噪声影响下也能够获得加密信息。DPA攻击需要更多的功耗轨迹,一般可以分为五个步骤:1)选择所执行算法的中间值。2)采集加密过程的实际功耗曲线。3)根据假设密钥计算假设中间值。4)选择合适的功耗模型(汉明重量模型/汉明距离模型)。5)通过区分函数计算差分功耗获得正确密钥和功耗之间的关系。
相对差分攻击(Correlation power analysis,CPA)与DPA攻击类似,通过统计学方法计算数据与功耗的关系,不同之处在于,CPA攻击计算的是实际功耗与假设功耗之间的相关系数。CPA攻击也可以分为5步:1)选择所执行算法的中间值。2)采集多组明文加密过程中的实际功耗曲线。3)根据假设密钥计算假设中间值。4)选择合适的功耗模型计算出理论功耗。5)计算假设功耗和实际功耗的相关系数,根据相关系数的大小能够判定猜测密钥是否正确。
由此可见,以上攻击方法都与功耗相关,属于功耗分析攻击类别。AES算法是以字节为单位进行运算的,由于功耗分析攻击的原理是根据功耗分布获取与中间值相关的加密信息,行变换、列混淆等操作使数据混淆起来,中间值将与更多明文、密钥相关,因此功耗分析攻击主要考虑的是对首轮或尾轮的字节变换输出作为攻击点。
因此,可以针对AES算法中的字节变换进行防护,以加强数据的安全性。
当前的防护方法中掩码防护方法由于其成本低、易于算法实现等优点受到广泛研究。掩码防护的原理在于通过随机化算法中间值来切断或减小中间值与功耗的联系。算法级掩码通过引入随机数,将中间值保护起来,根据运算的不同可以分为布尔掩码和算数掩码。布尔掩码更适合对按位异或的线性运算进行掩码,算数运算则适合对非线性部分进行掩码。算术掩码主要使用乘法掩码和加法掩码,但单独使用乘法掩码会容易受到零值攻击。算法级掩码方法由于引入了随机数,当对更高阶攻击进行防护时,掩码方案将会带来显著的资源开销和延迟。
也就是说,当前由于使用查找表方式实现AES算法,AES算法的资源开销较大,并且针对AES算法的掩码防护方法需要利用较多的乘法模块,一个乘法模块就需要16个逻辑与和12个异或操作实现,较多的乘法模块使用的资源较多,资源开销较大,因此存在降低防护方法使用资源的需求。
基于此,本申请实施例提供了一种针对高级加密标准AES算法的掩码防护方法,包括将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10,复用N个乘法模块对第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数,对第i轮的第二结果进行行变换,得到第i轮的第三结果,若i=10,则对第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;若i<10,则对第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。也就是说,在进行求逆运算时复用乘法模块,优化AES算法中的求逆运算,相较于其他防护方法中乘法模块需要的资源,本申请中乘法模块所占用的资源开销大大减小,满足降低防护方法的使用资源,降低资源开销的需求。
为了更好地理解本申请的技术方案和技术效果,以下将结合附图对具体的实施例进行详细的描述。
参考图1所示,为本申请实施例提供的一种针对高级加密标准AES算法的掩码防护的流程图,该方法包括以下步骤:
S101,将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果。
参考图2所示,为本申请实施例提供的一种高级加密标准AES算法加密过程掩码防护结构示意图。
在本申请的实施例中,AES算法进行加密可以分为多轮,例如10轮。在首轮输入数据之前,在明文中添加掩码M,得到携带掩码的第1轮数据。
可以将每一轮携带掩码的数据都与密钥数据进行异或处理,该步骤为AES算法的轮密钥加。也就是说,将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10。轮密钥加为线性运算,得到的结果为无掩码数据的运算结果加上掩码的结果。
作为一种示例,将携带掩码的第1轮数据与密钥数据进行异或,得到第1轮的第一结果
Figure BDA0003590650750000081
其中,P为明文,M为掩码,K为密钥。
S102,复用N个乘法模块对所述第一结果进行求逆运算和仿射变换,得到第i轮的第二结果。
在本申请的实施例中,对每一轮增加密钥的第一结果进行字节变换(Sbox)处理,得到每一轮的第二结果。
作为一种示例,字节变换过程为
Figure BDA0003590650750000091
Figure BDA0003590650750000092
其中,
Figure BDA0003590650750000093
为掩码型Sbox,为第二结果,
Figure BDA0003590650750000094
为掩码型字节变换的输入,即第一结果。
字节变换包括求逆运算和仿射变换。也就是说,可以对第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果。
在进行求逆运算时可以复用N个乘法模块进行处理,N个乘法模块可以重复利用,大大减少乘法模块在求逆运算时占用的资源,减少资源开销。其中,N为整数,例如N可以为6。
在本申请的实施例中,掩码防护方法为一阶掩码算法,可以利用6个乘法模块、2个平方模块和2个平方后乘常数模块进行求逆运算。
作为一种示例,求逆运算包括如下6个公式:
Figure BDA0003590650750000095
a′l+ml=(al+ml)(d′+ml)+(ah+ml)(d′+ml)+(al+ml)ml+(ah+ml)ml+ml (2)
Figure BDA0003590650750000097
Figure BDA0003590650750000098
d′l+mll=(dl+mll)(v′+mll)+(dh+mll)(v′+mll)+(dl+mll)mll+(dh+mll)mll+mll (5)
Figure BDA00035906507500000910
其中,公式(1)-(3)中包括6个乘法模块:第一乘法模块(ah+ml)(d′+ml)、第二乘法模块(d′+ml)ml、第三乘法模块(ah+ml)ml、第四乘法模块(al+ml)(d′+ml)、第五乘法模块(al+ml)ml和第六乘法模块(ah+ml)(al+ml)。
在本申请的实施例中,在对第i轮的第一结果,即经过添加密钥的结果进行求逆运算时,可以首先利用公式(3)在有限域GF(24)对第一结果进行处理,得到第一子结果d+m1,而后进行降域,将有限域GF(24)下降为有限域GF(22),在有限域GF(22)上对第一子结果d+m1进行求逆运算,即利用公式(3)-(6)得到第二子结果d'+ml,而后继续复用乘法模块将第二子结果d'+ml带回到有限域GF(24)进行处理,即利用公式(1)和(2)得到第三子结果ah'+mh,al'+ml
参考图3所示,为本申请实施例提供的一种有限域GF(24)上的求逆运算结构图。由图可以看出,首先利用公式(3)包括的第三乘法模块(ah+ml)ml、第五乘法模块(al+ml)ml和第六乘法模块(ah+ml)(al+ml)在有限域GF(24)对第一结果ah+mh,al+ml进行处理,得到第一子结果d+m1,而后在有限域GF(22)上对第一子结果d+m1进行求逆运算,得到第二子结果d'+ml,后续将第二子结果d'+ml带回公式(1)中的,利用公式(1)中的第一乘法模块(ah+ml)(d′+ml)、第二乘法模块(d′+ml)ml和第三乘法模块(ah+ml)ml在有限域GF(24)中进行计算,得到第三子结果ah'+mh,将第二子结果d'+ml带回公式(2)中,利用公式(2)中的第一乘法模块(ah+ml)(d′+ml)、第四乘法模块(al+ml)(d′+ml)和第五乘法模块(al+ml)ml在有限域GF(24)中进行计算,得到第三子结果al'+ml
在本申请的实施例中,对第一子结果d+m1进行求逆得到第二子结果d'+ml可以在有限域GF(22)上进行,可以降低运算复杂度,进一步降低掩码防护方法的占用资源,降低资源开销。GF(22)域上的求逆公式为
c(x)=(d(x)+h(x))-1=d2(x)+h2(x)=d-1(x)+h-1(x)
由此可见,在进行字节变换时,对数据ah,al,d'主要使用ml进行掩码,并且参考图3所示,从第二子结果d'+ml计算得到第三子结果al'+ml、ah'+mh,计算过程只需要3步,大大加快了AES算法的掩码加护方法的运算速度,缩短了AES算法的掩码加护方法的运算时间。
S103,对所述第i轮的第二结果进行行变换,得到第i轮的第三结果。
在本申请的实施例中,在对每一轮的第一结果进行字节变换(Sbox)处理之后得到每一轮的第二结果,继续对每一轮的第二结果进行行变换,得到每一轮的第三结果。
作为一种示例,行变换过程为
Figure BDA0003590650750000111
Figure BDA0003590650750000112
其中,
Figure BDA0003590650750000113
Figure BDA0003590650750000114
为第三结果,Sbox(in)为无掩码字节变换的输出,
Figure BDA0003590650750000115
Figure BDA0003590650750000116
为第二结果。
S104,判断i是否等于10。
在本申请的实施例中,在行变换之后可以判断该轮是否为AES算法的最后一轮,即判断i是否等于10,以便对该轮行变换得到的第三结果进行不同的处理。
S1041,若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
在本申请的实施例中,若不是AES算法的最后一轮,即i<10,则对第i轮的第三结果进行列混淆,得到第i轮的第四结果。
作为一种示例,列混淆的计算过程可以为
Figure BDA0003590650750000117
其中,
Figure BDA0003590650750000118
为第四结果。
后续可以对除最后一轮的每一轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,也就是说,在每一轮都在掩码补偿阶段引入新的掩码M',参考图2所示,以便在下一轮可以直接将携带掩码的数据与密钥数据进行异或处理,重新继续AES算法新一轮的加密过程。具体可以是每一轮的第四结果和第二补偿掩码进行异或处理,实现掩码补偿。第二补偿掩码为利用掩码补偿运算得到的结果。
作为一种示例,掩码补偿的过程可以为
Figure BDA0003590650750000121
其中,comin为第四结果,mask′为第j=i+1轮的掩码,即第i轮的下一轮掩码,第二补偿掩码为
Figure BDA0003590650750000122
Figure BDA0003590650750000123
S1042,若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文。
在本申请的实施例中,若是AES算法的最后一轮,则无需进行列混淆,直接对第10轮的第三结果进行掩码补偿。具体可以是第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果,实现掩码补偿。第一补偿掩码为利用掩码补偿运算得到的结果。
作为一种示例,掩码补偿的过程可以为
Figure BDA0003590650750000124
其中,comin为第三结果,mask′为第j=i+1轮的掩码,即第i轮的下一轮掩码,第一补偿掩码为
Figure BDA0003590650750000125
第三结果
Figure BDA0003590650750000126
Figure BDA0003590650750000127
第三结果和第一补偿掩码进行异或得到的第五结果为
Figure BDA0003590650750000128
在本申请的实施例中,在AES算法的第10轮对第五结果进行去掩码处理,具体可以将第五结果与目标掩码进行异或处理,以便最终输出经过密钥数据处理的密文,其中目标掩码是mask′,是与第10轮所用掩码不同的掩码。也就是说,AES算法的最后一轮的去掩码处理为异或最后一轮的掩码M',即第五结果
Figure BDA0003590650750000129
和目标掩码mask′进行异或,就能够得到密文结果。
这是由于本申请实施例提供的掩码防护方法针对一阶简单功耗分析攻击、差分功耗分析攻击和相对功耗分析攻击,这三种攻击主要考虑的攻击点为字节变换Sbox的输出,因此在AES算法完成后需要通过去掩码操作得到无掩码的输出结果。
也就是说,本申请实施例提供一种一阶掩码防护方法,在明文输入后使用掩码进行保护,通过复用乘法模块、求逆运算从GF(28)域降阶到GF(24)域以及优化算法结构,将计算过程优化到到3步,能够以更小的资源消耗、更快的运算速度实现有防护的AES加密算法,并且每一轮完成后需要进行掩码补偿操作,在整体算法完成后,输出密文前进行去掩码操作。
此外,本申请实施例提供的复合域掩码方法可以应用其他分组密码算法,例如SM4等,以便提高其他有防护加密算法的抗功耗能力。
本申请实施例提供了一种针对高级加密标准AES算法的掩码防护方法,包括将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10,复用N个乘法模块对第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数,对第i轮的第二结果进行行变换,得到第i轮的第三结果,若i=10,则对第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;若i<10,则对第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。也就是说,在进行求逆运算时复用乘法模块,优化AES算法中的求逆运算,相较于其他防护方法中乘法模块需要的资源,本申请中乘法模块所占用的资源开销大大减小,满足降低防护方法的使用资源,降低资源开销的需求。
基于以上实施例提供的针对高级加密标准AES算法的掩码防护方法,本申请实施例还提供了一种针对高级加密标准AES算法的掩码防护装置,参见图4,为本实施例提供的一种针对高级加密标准AES算法的掩码防护装置的结构示意图,该装置400包括:
第一处理单元410,用于将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10;
第二处理单元420,用于复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数;
第三处理单元430,用于对所述第i轮的第二结果进行行变换,得到第i轮的第三结果;
第四处理单元440,用于若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;
第五处理单元450,用于若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
可选地,所述第二处理单元,具体用于:
复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
在有限域GF(22)对所述第一子结果进行求逆运算,得到第二子结果;
继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果;
对所述第三子结果进行仿射变换,得到所述第二结果。
可选地,所述N为6,所述N个乘法模块包括:第一乘法模块、第二乘法模块、第三乘法模块、第四乘法模块、第五乘法模块和第六乘法模块;
所述第二处理单元,具体用于:
利用所述第三乘法模块、所述第五乘法模块和所述第六乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
所述继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果包括:
利用所述第一乘法模块、所述第二乘法模块和所述第三乘法模块或利用所述第一乘法模块、所述第四乘法模块和所述第五乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果。
可选地,所述第四处理单元,具体用于:
将所述第10轮的第三结果和第一补偿掩码进行异或处理。
所述对所述第i轮的第四结果进行掩码补偿包括:
将所述第i轮的第四结果和第二补偿掩码进行异或处理。
可选地,将所述第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果;
所述第四处理单元,具体用于:
将所述第五结果与目标掩码进行异或处理。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅是本申请的优选实施方式,虽然本申请已以较佳实施例披露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

Claims (10)

1.一种针对高级加密标准AES算法的掩码防护方法,其特征在于,所述方法包括:
将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10;
复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数;
对所述第i轮的第二结果进行行变换,得到第i轮的第三结果;
若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;
若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
2.根据权利要求1所述的方法,其特征在于,所述复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果包括:
复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
在有限域GF(22)对所述第一子结果进行求逆运算,得到第二子结果;
继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果;
对所述第三子结果进行仿射变换,得到所述第二结果。
3.根据权利要求2所述的方法,其特征在于,所述N为6,所述N个乘法模块包括:第一乘法模块、第二乘法模块、第三乘法模块、第四乘法模块、第五乘法模块和第六乘法模块;
所述复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果包括:
利用所述第三乘法模块、所述第五乘法模块和所述第六乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
所述继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果包括:
利用所述第一乘法模块、所述第二乘法模块和所述第三乘法模块或利用所述第一乘法模块、所述第四乘法模块和所述第五乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述对所述第i轮的第三结果进行掩码补偿包括:
将所述第10轮的第三结果和第一补偿掩码进行异或处理;
所述对所述第i轮的第四结果进行掩码补偿包括:
将所述第i轮的第四结果和第二补偿掩码进行异或处理。
5.根据权利要求4所述的方法,其特征在于,将所述第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果;
所述去掩码处理包括:
将所述第五结果与目标掩码进行异或处理。
6.一种针对高级加密标准AES算法的掩码防护装置,其特征在于,所述装置包括:
第一处理单元,用于将携带掩码的第i轮数据与密钥数据进行异或处理,得到第i轮的第一结果,1≤i≤10;
第二处理单元,用于复用N个乘法模块对所述第i轮的第一结果进行求逆运算和仿射变换,得到第i轮的第二结果,N为整数;
第三处理单元,用于对所述第i轮的第二结果进行行变换,得到第i轮的第三结果;
第四处理单元,用于若i=10,则对所述第i轮的第三结果进行掩码补偿,而后进行去掩码处理,输出经过所述密钥数据处理的密文;
第五处理单元,用于若i<10,则对所述第i轮的第三结果进行列混淆之后,得到第i轮的第四结果,对所述第i轮的第四结果进行掩码补偿,得到携带掩码的第j轮数据,继续执行将携带掩码的第j轮数据与密钥数据进行异或处理的步骤,j=i+1,2≤j≤10。
7.根据权利要求6所述的装置,其特征在于,所述第二处理单元,具体用于:
复用N个乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
在有限域GF(22)对所述第一子结果进行求逆运算,得到第二子结果;
继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果;
对所述第三子结果进行仿射变换,得到所述第二结果。
8.根据权利要求7所述的装置,其特征在于,所述N为6,所述N个乘法模块包括:第一乘法模块、第二乘法模块、第三乘法模块、第四乘法模块、第五乘法模块和第六乘法模块;
所述第二处理单元,具体用于:
利用所述第三乘法模块、所述第五乘法模块和所述第六乘法模块在有限域GF(24)对所述第一结果进行处理,得到第一子结果;
所述继续复用N个乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果包括:
利用所述第一乘法模块、所述第二乘法模块和所述第三乘法模块或利用所述第一乘法模块、所述第四乘法模块和所述第五乘法模块在有限域GF(24)对所述第二子结果进行处理,得到第三子结果。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述第四处理单元,具体用于:
将所述第10轮的第三结果和第一补偿掩码进行异或处理;
所述对所述第i轮的第四结果进行掩码补偿包括:
将所述第i轮的第四结果和第二补偿掩码进行异或处理。
10.根据权利要求9所述的装置,其特征在于,将所述第10轮的第三结果和第一补偿掩码进行异或处理,得到第五结果;
所述第四处理单元,具体用于:
将所述第五结果与目标掩码进行异或处理。
CN202210375689.0A 2022-04-11 2022-04-11 一种针对高级加密标准aes算法的掩码防护方法及装置 Pending CN114640439A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210375689.0A CN114640439A (zh) 2022-04-11 2022-04-11 一种针对高级加密标准aes算法的掩码防护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210375689.0A CN114640439A (zh) 2022-04-11 2022-04-11 一种针对高级加密标准aes算法的掩码防护方法及装置

Publications (1)

Publication Number Publication Date
CN114640439A true CN114640439A (zh) 2022-06-17

Family

ID=81951735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210375689.0A Pending CN114640439A (zh) 2022-04-11 2022-04-11 一种针对高级加密标准aes算法的掩码防护方法及装置

Country Status (1)

Country Link
CN (1) CN114640439A (zh)

Similar Documents

Publication Publication Date Title
Yu et al. A lightweight masked AES implementation for securing IoT against CPA attacks
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
CN110235409B (zh) 使用同态加密被保护的rsa签名或解密的方法
US7899190B2 (en) Security countermeasures for power analysis attacks
CN103647637B (zh) 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法
CN106788974A (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
CN113940028B (zh) 实现白盒密码的方法和装置
CN103825722B (zh) 一种sm4密码算法的二阶侧信道能量分析方法
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
Lee et al. A masked white-box cryptographic implementation for protecting against differential computation analysis
JP5876032B2 (ja) カオス系列の発生器及び対応する発生システム
KR101586811B1 (ko) Hight 부채널 분석에 대응하기 위한 장치 및 방법
CN107204841B (zh) 一种抵御差分功耗攻击的分组密码多s盒实现的方法
Kamoun et al. Experimental Implementation of 2ODPA attacks on AES design with flash-based FPGA Technology
Huang et al. Low area-overhead low-entropy masking scheme (LEMS) against correlation power analysis attack
Deb et al. Design of key-dependent bijective S-Boxes for color image cryptosystem
CN103427980A (zh) 一种基于双矩阵变换的ofdm系统物理层安全算法
KR20100079060A (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
CN113949500A (zh) 一种针对sm4二阶能量分析攻击方法
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
CN109617667B (zh) 一种针对aes算法线性部分的高效掩码防护方法
CN114640439A (zh) 一种针对高级加密标准aes算法的掩码防护方法及装置
Chou et al. A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology
CN108173642A (zh) 一种抗高阶差分功耗攻击的aes硬件实现方法
Luo et al. A chaotic block cryptographic system resistant to power analysis attack

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