CN107766725A - 抗模板攻击的数据传输方法及*** - Google Patents

抗模板攻击的数据传输方法及*** Download PDF

Info

Publication number
CN107766725A
CN107766725A CN201610696968.1A CN201610696968A CN107766725A CN 107766725 A CN107766725 A CN 107766725A CN 201610696968 A CN201610696968 A CN 201610696968A CN 107766725 A CN107766725 A CN 107766725A
Authority
CN
China
Prior art keywords
data
mask
key
memory
random number
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
CN201610696968.1A
Other languages
English (en)
Other versions
CN107766725B (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 CN201610696968.1A priority Critical patent/CN107766725B/zh
Publication of CN107766725A publication Critical patent/CN107766725A/zh
Application granted granted Critical
Publication of CN107766725B publication Critical patent/CN107766725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种抗模板攻击的数据传输方法及***。该数据传输方法包括:获取待从第一存储器传输至第二存储器的待传输数据;对待传输数据进行掩码运算,进而形成掩码数据;将掩码数据传输至第二存储器。通过采用本发明的方案,对存储器之间的传输数据进行掩码运算,以使得数据在传输过程处于加掩状态,降低真实数据与侧信道信息的相关性,从而起到抵御模块攻击目的,提高数据传输的安全性。

Description

抗模板攻击的数据传输方法及***
技术领域
本发明涉及信息安全领域,更具体地涉及一种抗模板攻击的数据传输方法及其***。
背景技术
随着密码技术的日趋完善和集成电路技术的发展进步,以银行卡、交通卡、身份证为代表的数据存储密码芯片在电子商务、通信、税收等领域广泛地应用,同时其安全性也越来越受到人们的关注。密码芯片的安全性主要体现在密码算法的安全性和与之相关的实现安全性。与利用数学分析法试图寻找加密算法漏洞来实现密码破解的传统攻击方法不同,旁道攻击方法根据密码算法执行过程中物理器件泄漏的各种***信息(运行时间、功耗、电磁辐射等等),对与非密码模块的交互、密码算法的实现缺陷以及运行过程中的物理特性进行分析,弥补了传统攻击方法对密码芯片安全性评估的不足。由于这种方法简单而有效,传统的针对数学基础的密码分析研究也开始转向这种针对密码***实现的密码分析方法。
最近几年,模板攻击作为一种热门的侧信道分析方法被广泛利用,模板攻击方法最早由Suresh Chari等人在2002年的密码硬件与嵌入式***国际会议上提出的,随后,Dakshi Agrawal等人也在CHES-2005上发表文章提出将模板攻击方式与差分能量攻击DPA(Differential Power Attack)相结合的模板加强DPA攻击。2006年,C.Archambeau等人在CHES-2006上发表文章提出从测量样本中选取有效点构成样本的主子空间以减小模板攻击的运算量的方法。模板攻击原理是先对密码算法的密钥空间中所有的密钥分别构建一个具备泄漏信息特征的模板,随后根据获取到的一次或有限次的泄漏信息数据来寻找最匹配的模板,进而推断最可能的正确密钥或者有效地缩小密钥搜索空间的一种攻击方式。
目前,现有的抗模板攻击方案一般都是针对从存储器或寄存器往密码算法模块或密码算法协处理器加载密钥的过程。而数据总线上的普通RAM到专用RAM或者普通RAM到其他类似存储器的存储器之间的数据传输过程都可能遭受模板攻击。另外,现有的抗模板攻击方案一般是将输入数据进行分块打乱处理,打乱的最小单元可能是字节或字,输入数据不可能得到充分的扰乱,攻击者依然可以得到模板与真实运算密钥之间的相关性。
有鉴于此,业内迫切需要一种能够有效保护存储器之间的数据传输的抗模板攻击方案。
发明内容
本发明提供一种抗模板攻击的数据传输方法及***,以解决现有技术中存储器之间的数据传输容易受到模板攻击的技术问题。
为解决上述技术问题,本发明采用的一个技术方案是提供一种抗模板攻击的数据传输方法,包括以下步骤:获取待从第一存储器传输至第二存储器的待传输数据;对待传输数据进行掩码运算,进而形成掩码数据;将掩码数据从第一存储器传输至第二存储器。
其中,对待传输数据进行掩码运算的步骤包括:将待传输数据拆分为第一随机数以及第二随机数,其中第一随机数以及第二随机数的异或运算结果为所待传输数据;对第一随机数和第二随机数进行掩码运算。
其中,第二存储器为具有存储加密功能的存储器;对待传输数据进行掩码运算的步骤:选择第一密钥以及第二密钥;根据第一密钥、第二密钥以及第二存储器所设置的加密算法生成掩码因子;利用掩码因子对待传输数据进行掩码运算,进而形成掩码数据;其中,掩码因子设置成使得通过加密算法配合第二密钥对掩码数据进行加密运算获得的加密结果等于通过加密算法配合第一密钥对待传输数据进行加密运算获得的加密结果。
其中,该方法进一步包括:将第二存储器的存储密钥设置为第二密钥;通过加密算法配合第二密钥对传输至第二存储器的掩码数据进行加密,进而获得加密数据;将加密数据写入第二存储器。
其中,该方法进一步包括:将存储密钥替换为第一密钥,以允许在后续操作中通过第二存储器所设置的解密算法配合第一密钥将加密数据解密成待传输数据。
其中,第一存储器为具有存储加密功能的存储器;对待传输数据进行掩码运算的步骤:获取第一存储器的存储密钥作为第一密钥,并选择第二密钥,其中第一存储器所设置的解密算法能够配合第一密钥将待传输数据解密为解密数据;根据第一密钥、第二密钥以及解密算法生成掩码因子;通过解密算法配合第二密钥对待传输数据进行解密,进而形成掩码数据;其中,掩码因子设置成使得掩码数据等于通过掩码因子对解密数据进行掩码运算的运算结果。
其中,该方法进一步包括:利用掩码因子对传输到第二存储器的掩码数据进行去掩码运算,进而还原出解密数据。
其中,利用掩码因子对传输到第二存储器的掩码数据进行去掩码运算的步骤包括:将掩码数据拆分成第一随机数和第二随机数;对利用掩码因子对第一随机数进行去掩码运算;利用去掩码运算后的第一随机数和第二随机数还原解密数据。
其中,将掩码数据拆分成第一随机数和第二随机数的步骤包括:选择第一随机数,并将掩码数据与第一随机数进行异或运算,进而获得第二随机数。
其中,对利用掩码因子对第一随机数进行去掩码运算的步骤包括:将第一随机数与掩膜因子进行异或运算。
其中,利用去掩码运算后的第一随机数和第二随机数还原解密数据的步骤包括:将去掩码运算后的第一随机数和第二随机数进行异或运算。
为解决上述技术问题,本发明采用的另一个技术方案是提供一种抗模板攻击的数据传输***,该数据传输***包括第一存储器,第一存储器包括:数据获取单元,用于获取待从第一存储器传输至第二存储器的待传输数据;掩码运算单元,用于对待传输数据进行掩码运算,进而形成掩码数据;传输单元,用于将掩码数据从第一存储器传输至第二存储器。
其中,掩码运算单元包括:拆分模块,用于将待传输数据拆分为第一随机数以及第二随机数,其中第一随机数以及第二随机数的异或运算结果为所待传输数据;掩码运算模块,用于对第一随机数和第二随机数进行掩码运算。
其中,第二存储器为具有存储加密功能的存储器;掩码运算单元包括:密钥选择模块,用于选择第一密钥以及第二密钥;掩码因子生成模块,用于根据第一密钥、第二密钥以及第二存储器所设置的加密算法生成掩码因子;掩码运算模块,用于利用掩码因子对待传输数据进行掩码运算,进而形成掩码数据;其中,掩码因子设置成使得通过加密算法配合第二密钥对掩码数据进行加密运算获得的加密结果等于通过加密算法配合第一密钥对待传输数据进行加密运算获得的加密结果。
其中,***进一步包括第二存储器,第二存储器包括:密钥设置单元,用于将第二存储器的存储密钥设置为第二密钥;加密单元,用于通过加密算法配合第二密钥对传输至第二存储器的掩码数据进行加密,进而获得加密数据;读写单元,用于将加密数据写入第二存储器。
其中,第二存储器进一步包括解密单元,密钥设置单元进一步将存储密钥替换为第一密钥,以允许解密单元在后续操作中通过第二存储器所设置的解密算法配合第一密钥将加密数据解密成待传输数据。
其中,第一存储器为具有存储加密功能的存储器,掩码运算单元进一步包括:密钥选择模块,用于获取第一存储器的存储密钥作为第一密钥,并选择第二密钥,其中第一存储器所设置的解密算法能够配合第一密钥将待传输数据解密为解密数据;掩码因子生成模块,用于根据第一密钥、第二密钥以及解密算法生成掩码因子;解密模块,用于通过解密算法配合第二密钥对待传输数据进行解密,进而形成掩码数据;其中,掩码因子设置成使得掩码数据等于通过掩码因子对解密数据进行掩码运算的运算结果。
其中,该***进一步包括第二存储器,第二存储器包括:去掩码运算单元,用于利用掩码因子对传输到第二存储器的掩码数据进行去掩码运算,进而还原出解密数据。
其中,去掩码运算单元包括:拆分模块,用于将掩码数据拆分成第一随机数和第二随机数;去掩码运算模块,用于对利用掩码因子对第一随机数进行去掩码运算;还原模块,用于利用去掩码运算后的第一随机数和第二随机数还原解密数据。
其中,拆分模块选择第一随机数,并将掩码数据与第一随机数进行异或运算,进而获得第二随机数。
其中,去掩码运算模块将第一随机数与掩膜因子进行异或运算。
其中,还原模块将去掩码运算后的第一随机数和第二随机数进行异或运算。
本发明的有益效果是:区别于现有技术的情况,对存储器之间的传输数据进行掩码运算,以使得数据在传输过程处于加掩状态,使得不同存储器之间传输的数据不再是明文,所以大大降低真实数据与侧信道信息的相关性,从而起到抵御模块攻击目的,提高芯片的安全性。
进一步,在本发明的优选实施例中,经过对明文数据拆分为两部分随机数,所以该过程不会遭受侧信道泄露,从而抵御模板攻击。此外,本发明进一步提供基于双密钥的掩码运算方式,以使得本发明的实施例能够与传统数据传输方法进行更好的兼容。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1为用于描述现有技术中存储器之间数据传输的示意框图;
图2为根据本发明第一实施例的抗模板攻击的数据传输方法的流程图;
图3为根据本发明第二实施例的抗模板攻击的数据传输方法的流程图;
图4为根据本发明第三实施例的抗模板攻击的数据传输方法的流程图;
图5为根据本发明第四实施例的与图2所示的数据传输方法对应的数据传输***的示意框图;
图6为根据本发明第五实施例的与图3所示的数据传输方法对应的数据传输***的示意框图;
图7为根据本发明第六实施例的与图4所示的数据传输方法对应的数据传输***的示意框图;
图8为根据本发明第七实施例的数据传输***的示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为用于描述现有技术中存储器之间数据传输过程的示意框图。在图1中,第一存储器110为普通RAM,第二存储器120为具有芯片存储加密功能的专用RAM或者类似的存储器。在数据从第一存储器110传输并写入到第二存储器120的过程中,第一存储器110将读出的明文数据112直接传输到第二存储器120,并通过第二存储器120中的加密器121使用密钥123加密成密文数据122,并进一步写入到第二存储器120的预定地址处。在数据从第二存储器120传输并写入到第一存储器110的过程中,第二存储器120将读出的密文数据122通过解密器124使用密钥123解密成明文数据112,并进一步传输并存储到第一存储器110。由此可见,数据在第一存储器110和第二存储器120之间的总线上以明文形式进行传输,因此所传输的明文数据容易受到模板攻击。类似地,在现有存储器之间的数据传输过程也均是以明文形式进行传输,例如,普通RAM到专用RAM之间、专用RAM与普通RAM之间、普通RAM到寄存器(register)之间或者普通RAM到普通RAM的传输过程均是以明文形式进行数据传输,因此均容易受到模板攻击。
请参考图2,图2为根据本发明第一实施例的抗模板攻击的数据传输方法的流程图。
本实施例的数据传输方法包括以下步骤:
步骤21,获取待从第一存储器传输至第二存储器的待传输数据;
步骤22,对待传输数据进行掩码运算,进而形成掩码数据;
步骤22,将掩码数据从第一存储器传输至第二存储器。
通过上述方式,对存储器之间的传输数据进行掩码运算,以使得数据在传输过程处于加掩状态,降低真实数据与侧信道信息的相关性,从而起到抵御模块攻击目的,提高数据传输的安全性。
在本实施例中,待传输数据可以是从第一存储器读出的明文数据或者其他任何需要进行加密传输的数据。另外,在掩码数据从第一存储器传输到第二存储器后,可根据实际需要对掩码数据进行去掩码运算而还原出待传输数据。在图1所示的架构中,在掩码数据传输到第二存储器后可以直接对掩码数据进行去掩码运算而还原出待传输数据,再对待传输数据进行加密存储。当然,可以直接对掩码数据直接进行加密存储。此时,从第二存储器读出并解密的数据为掩码数据,并可以根据需要进行去掩码运算而还原出上述待传输数据。
在本实施例中,本领域技术人员可根据实际情况设计具体掩码运算方式来对待传输数据进行掩码运算,例如可根据不同存储器的类型以及数据传输需要设计掩码运算公式。下文将主要结合两个具体实际情况来对具体掩码运算方式进行详细描述。
在第一种具体实际情况中,将普通RAM作为第一存储器,将具有芯片存储加密功能的专用RAM作为第二存储器。具体来说,第二存储器设置有加密单元和解密单元,并通过加密单元所设置的加密算法配合存储密钥对输入的数据进行加密,通过解密单元所设置的解密算法配合存储密钥对输出的数据进行解密。在图1所示的传统数据传输架构中,普通RAM所读出的待传输数据(例如,明文数据)直接传输到专用RAM,并由加密单元加密后进行存储,而在图2所示的数据传输方式中,普通RAM所读出的待传输数据需经掩码运算生成掩码数据后再传输到专用RAM。为实现上述两种方式的兼容性,本发明的实施例中提出一种基于双密钥的数据传输方法,具体来说:
以待传输数据为明文数据为例,假定明文数据为A,明文数据A经掩码运算后获得掩码数据为A1,二者在传输到第二存储器后分别在存储密钥key1、key2的加密作用下分别得相应的密文B、B1,同时上述数据存在如下关系:
B=Encryption(A,key1) (1)
B1=Encryption(A1,key2) (2)
B=B1 (3)
通过上述公式1-3可以得出如下公式:
Encryption(A1,key2)=Encryption(A,key1) (4)
此处,由于密钥key1、key2、明文数据A和加密算法均为已知,则掩码数据A1可表示为:
A1=f(key1,key2,A) (5)
其中,f函数与加密算法相关的。
为实现掩码运算,公式5可以变化为:
在本实施例中,f(key1,key2)的值称为掩码因子,并且可通过密钥key1、key2和加密算法计算获得,明文数据A与f(key1,key2)的值(掩码因子)作异或操作即可得掩码数据A1。
进一步,为了加强输入数据安全性,可以将明文数据A(待传输数据)分成两部分,其中一部分为随机数r1,另一部分为随机数r2,并使得这两个随机数r1、r2的值经异或运算后的结果为明文数据A,即这样,上述公式6就可以写为:
通过上述分析可以知道,可通过选择两个密钥key1、key2,并根据第二存储器内的加密算法、密钥key1、key2计算出掩码因子,并利用掩码因子对明文数据A进行掩码运算获得掩码数据A1,可以使得明文数据A经加密算法和密钥key1进行加密获得的密文B与掩码数据A1经加密算法和密钥key2进行加密获得的密文B1一致,如公式1-3所示。
参照图3,图3为根据本发明第二实施例的抗模板攻击的数据传输方法的流程图。在本实施例中,基于上述分析提出一种基于双密钥的数据传输方法,具体包括:
步骤31,获取待从第一存储器传输至第二存储器的待传输数据;
步骤321,选择第一密钥以及第二密钥;
步骤322,根据第一密钥、第二密钥以及第二存储器所设置的加密算法生成掩码因子;
步骤323,利用掩码因子对待传输数据进行掩码运算,进而形成掩码数据;
步骤33,将掩码数据从第一存储器传输到第二存储器;
步骤34,将第二存储器的存储密钥设置为第二密钥;
步骤35,通过加密算法配合第二密钥对传输至第二存储器的掩码数据进行加密,进而获得加密数据;
步骤36,将加密数据写入第二存储器。
步骤37,将存储密钥替换为第二密钥。
在上述步骤322中,掩码因子设置成使得由加密算法利用第二密钥对掩码数据进行加密运算获得的加密结果等于由加密算法利用第一密钥对待传输数据进行加密运算获得的加密结果。
通过上述方式,根据第一密钥、第二密钥和加密算法选择适当的掩码因子,以使得掩码数据经第二密钥进行加密的加密结果与待传输数据的经第一密钥进行加密的加密结果一致,进而实现与传统数据传输方法的兼容。
下面将进一步结合SACRAM(即算法专用RAM)对上述步骤进行详细描述。
SACRAM的存储加密算法可用如下公式表示:
其中,A是待加密数据,K是存储密钥,P为重组运算,L为线性移位运算,M为轮密钥加运算,三个运算对于异或运算都是同构的,满足:
其中,x和Y是任意的变量。
因此,在步骤321中,选择两个随机数作为第一密钥key1和第二密钥key2作为SACRAM的存储密钥。待传输数据A直接由上述加密算法配合第一密钥key1进行加密结果获得的密文可以表示成如下公式:
在步骤322中,通过以下公式计算掩码因子AL:
在步骤323中,利用掩码因子AL对待传输数据A进行异或操作即可获得掩码数据A1。在本实施例中,为了进一步确保数据的安全性,可将待传输数据A拆分为第一随机数r1以及第二随机数r2,再利用对第一随机数r1和第二随机数r2进行掩码运算。其中,第一随机数r1以及第二随机数r2的异或运算结果为所待传输数据A,即:
此时,掩码数据A1由如下公式表示:
则,在步骤34中,利用第二密钥key2对掩码数据A1加密成密文B1的过程可由如下公式表示:
此时,由于L函数和M函数都满足异或同构,则上述公式15可以进一步换算为:
由此可见,由第二存储器所设置加密算法配合第二密钥key2对掩码数据A1加密获得的密文B1等于该加密算法配合第一密钥key1对待传输数据A进行加密获得的密文B2,满足公式1-3。
在步骤36中,在利用第二密钥key2对掩码数据A1加密成密文B1后,将第二存储器的存储密钥由第二密钥key2替换为第一密钥key1。由此,根据公式17,在后续操作中由第二存储器所设置解密算法可以利用第一密钥key1将密文数据密文B1还原成待传输数据A。当然,步骤36并不是必须的,例如,如上文所描述的,可以由第二存储器所设置的解密算法利用第二密钥key2将密文B1解密成掩码数据A1,再根据需要对掩码数据A1进行去掩码运算而还原成待传输数据A。
在第二种具体实际情况中,将具有芯片存储加密功能的专用RAM作为第一存储器,将普通RAM作为第二存储器。具体来说,第一存储器设置有加密单元和解密单元,并通过加密单元所设置的加密算法配合存储密钥对输入的数据进行加密,通过解密单元所设置的解密算法配合存储密钥对输出的数据进行解密。在图1所示的传统数据传输架构中,专用RAM所读出的待传输数据经解密单元解密成解密数据(例如,明文数据),再传输到普通RAM。为确保传输的安全性,可以采用图3所示的传输方式对解密数据进行掩码运算后再进行传输。
另外,参照图4,图4为根据本发明第三实施例的抗模板攻击的数据传输方法的流程图。在本实施例中,基于上述具体实际情况提出另一种基于双密钥的数据传输方法,具体包括:
步骤41,获取待从第一存储器传输至第二存储器的待传输数据;
步骤421,获取第一存储器的存储密钥作为第一密钥,并选择第二密钥,其中第一存储器所设置的解密算法能够利用第一密钥将待传输数据解密为解密数据(例如,明文数据);
步骤422,根据第一密钥、第二密钥以及解密算法生成掩码因子;
步骤423,由解密算法利用第二密钥对待传输数据进行解密,进而形成掩码数据;其中,掩码因子设置成使得掩码数据等于利用掩码因子对解密数据进行掩码运算的运算结果;
步骤43,将掩码数据从第一存储器传输至第二存储器;
步骤44,利用掩码因子对传输到第二存储器的掩码数据进行去掩码运算,进而还原出解密数据。
同样,SACRAM的存储加密算法为例,在上述步骤中,待传输数据B、解密数据A和第一密钥key1满足如下公式:
根据第一密钥key1、第二密钥key2和解密算法生成的掩码因子AL满足如下公式:
由此,可以确保由解密算法利用第二密钥key2对待传输数据进行解密获得的掩码数据A1满足如下公式:
进一步,在步骤44中,可以直接将掩码数据A1与掩码因子AL进行异或运算来获得解密数据A。然而,为了进一步增加安全性,优选先将掩码数据A1拆分成第一随机数r1和第二随机数r2,再利用掩码因子AL对第一随机数r1进行去掩码运算,并最后利用去掩码运算后的第一随机数r1和第二随机数r2还原出解密数据A。
具体来说,随机选择第一随机数r1,并将掩码数据与第一随机数进行异或运算,进而获得第二随机数,即:
再将第一随机数r1与掩膜因子AL进行异或运算,进而实现去掩码,再将去掩码后的第一随机数r1和第二随机数r2进行异或运算,而获得解密数据A,具体表示为:
请参照图5,图5为根据本发明第四实施例的与图2所示的数据传输方法对应的数据传输***的示意框图。本实施例的数据传输***包括第一存储器50,第一存储器50包括数据获取单元51、掩码运算单元53以及传输单元53。
在本实施例中,数据获取单元51用于获取待从第一存储器50传输至第二存储器(未图示)的待传输数据A。掩码运算单元52用于对待传输数据A进行掩码运算,进而形成掩码数据A1。传输单元53用于将掩码数据A1从第一存储器50传输至第二存储器。
请参照图6,图6为根据本发明第五实施例的与图3所示的数据传输方法对应的数据传输***的示意框图。本实施例的数据传输***包括第一存储器60,第一存储器60包括数据获取单元61、掩码运算单元63以及传输单元63。
在本实施例中,数据获取单元61用于获取待从第一存储器60传输至第二存储器70的待传输数据A。掩码运算单元62用于对待传输数据A进行掩码运算,进而形成掩码数据A1。传输单元63用于将掩码数据A1从第一存储器60传输至所述第二存储器70。第二存储器70为具有存储加密功能的存储器。
在本实施例中,掩码运算单元62包括拆分模块621、密钥选择模块622、掩码因子生成模块623以及掩码运算模块624。其中,拆分模块621用于将待传输数据A分为第一随机数r1以及第二随机数r2,第一随机数r1以及第二随机数r2的异或运算结果为传输数据A。掩码运算模块624用于对第一随机数r1和第二随机数r2进行掩码运算。将待传输数据A分为第一随机数r1以及第二随机数r2的目的是为了提供提高安全性,本领域技术人员可以根据实际情况不对传输数据A进行拆分。
具体来说,密钥选择模块622用于选择第一密钥key1以及第二密钥key2。掩码因子生成模块623用于根据第一密钥key1、第二密钥key2以及第二存储器70所设置的加密算法生成掩码因子AL。掩码运算模块624用于利用掩码因子AL对待传输数据A进行掩码运算,进而形成掩码数据A1。其中,在待传输数据A分为第一随机数r1以及第二随机数r2的情况下,利用掩码因子AL对第一随机数r1以及第二随机数r2进行掩码运算。掩码因子AL设置成使得通过加密算法配合第二密钥key2对掩码数据A1进行加密运算获得的加密结果等于通过加密算法配合第一密钥key1对待传输数据A进行加密运算获得的加密结果。
第二存储器70包括密钥设置单元71、加密单元72、读写单元73以及解密单元74。
在本实施例中,密钥设置单元71用于将第二存储器70的存储密钥设置为第二密钥key2,以使得加密单元74用于通过加密算法配合第二密钥key2对传输至第二存储器70的掩码数据A1进行加密,进而获得加密数据B,并进一步由读写单元73用于将加密数据B写入第二存储器70的预定存储位置。
进一步,密钥设置单元71进一步将第二存储器70存储密钥替换为第一密钥key1,以允许解密单元74在后续操作中通过第二存储器70所设置的解密算法配合第一密钥key1将加密数据B解密成待传输数据A。
请参照图7,图7为根据本发明第六实施例的与图4所示的数据传输方法对应的数据传输***的示意框图。本实施例的数据传输***包括第一存储器80,第一存储器80包括数据获取单元81、掩码运算单元82以及传输单元83。在本实施例中,数据获取单元81用于获取待从第一存储器80传输至第二存储器90的待传输数据B(密文数据)。掩码运算单元82用于对待传输数据B进行掩码运算,进而形成掩码数据A1。传输单元83用于将掩码数据A1从第一存储器80传输至所述第二存储器90。在本实施例中,第一存储器80为具有存储加密功能的存储器。
掩码运算单元82进一步包括密钥选择模块821、掩码因子生成模块822以及解密模块823。密钥选择模块821用于获取第一存储器80的存储密钥作为第一密钥key1,并选择第二密钥key2。其中,第一存储器80所设置的解密算法能够配合第一密钥key1将待传输数据B解密为解密数据A(例如,明文数据)。掩码因子生成模块822用于根据第一密钥key1、第二密钥key2以及解密算法生成掩码因子AL。解密模块823用于通过解密算法配合第二密钥key2对待传输数据B进行解密,进而形成掩码数据A1。掩码因子AL设置成使得掩码数据A1等于通过掩码因子对解密数据A进行掩码运算的运算结果。
第二存储器包括去掩码运算单元91,用于利用掩码因子AL对传输到第二存储器90的掩码数据A1进行去掩码运算,进而还原出所述解密数据A。
去掩码运算单元91优选包括拆分模块911、去掩码运算模块912以及还原模块913。其中,拆分模块911用于将掩码数据A1拆分成第一随机数r1和第二随机数r2。去掩码运算模块912用于对利用掩码因子AL对第一随机数r1进行去掩码运算。还原模块913用于利用去掩码运算后的第一随机数r1和第二随机数r2还原解密数据A。其中,拆分模块911通过选择第一随机数r1,并将掩码数据A1与第一随机数r1进行异或运算,进而获得第二随机数r2。去掩码运算模块912优选将第一随机数r1与掩膜因子AL进行异或运算来进行去掩码运算。还原模块913将去掩码运算后的第一随机数r1和第二随机数r2进行异或运算来还原解密数据A。
上述图5-7所示的数据传输***的各单元及模块的具体功能的实现方式在上文中已经进行了详细描述,在此不再赘述。
请参照图8,图8为根据本发明第七实施例的数据传输***的示意框图。在本实施例中,数据传输***包括通过总线方式进行通信的一个或多个处理器以及一个或多个存储介质,上述存储介质中存储预定程序,以使得上述处理器通过运行上述程序而执行上文描述的数据传输方法中的各流程步骤。
对存储器之间的传输数据进行掩码运算,以使得数据在传输过程处于加掩状态,使得不同存储器之间传输的数据不再是明文,所以大大降低真实数据与侧信道信息的相关性,从而起到抵御模块攻击目的,提高芯片的安全性。
进一步,在本发明的优选实施例中,经过对明文数据拆分为两部分随机数,所以该过程不会遭受侧信道泄露,从而抵御模板攻击。此外,本发明进一步提供基于双密钥的掩码运算方式,以使得本发明的实施例能够与传统数据传输方法进行更好的兼容。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (22)

1.一种抗模板攻击的数据传输方法,其特征在于,所述数据传输方法包括以下步骤:
获取待从第一存储器传输至第二存储器的待传输数据;
对所述待传输数据进行掩码运算,进而形成掩码数据;
将所述掩码数据从所述第一存储器传输至所述第二存储器。
2.如权利要求1所述的方法,其特征在于,
所述对所述待传输数据进行掩码运算的步骤包括:
将所述待传输数据拆分为第一随机数以及第二随机数,其中所述第一随机数以及所述第二随机数的异或运算结果为所待传输数据;
对所述第一随机数和所述第二随机数进行掩码运算。
3.如权利要求1所述的方法,其特征在于,所述第二存储器为具有存储加密功能的存储器;
所述对所述待传输数据进行掩码运算的步骤:
选择第一密钥以及第二密钥;
根据所述第一密钥、所述第二密钥以及所述第二存储器所设置的加密算法生成掩码因子;
利用所述掩码因子对所述待传输数据进行掩码运算,进而形成所述掩码数据;
其中,所述掩码因子设置成使得通过所述加密算法配合所述第二密钥对所述掩码数据进行加密运算获得的加密结果等于通过所述加密算法配合所述第一密钥对所述待传输数据进行加密运算获得的加密结果。
4.如权利要求3所述的方法,其特征在于,所述方法进一步包括:
将所述第二存储器的存储密钥设置为所述第二密钥;
通过所述加密算法配合所述第二密钥对传输至所述第二存储器的所述掩码数据进行加密,进而获得加密数据;
将所述加密数据写入所述第二存储器。
5.如权利要求4所述的方法,其特征在于,所述方法进一步包括:
将所述存储密钥替换为所述第一密钥,以允许在后续操作中通过所述第二存储器所设置的解密算法配合所述第一密钥将所述加密数据解密成所述待传输数据。
6.如权利要求1所述的方法,其特征在于,所述第一存储器为具有存储加密功能的存储器;
所述对所述待传输数据进行掩码运算的步骤:
获取所述第一存储器的存储密钥作为第一密钥,并选择第二密钥,其中所述第一存储器所设置的解密算法能够配合所述第一密钥将所述待传输数据解密为解密数据;
根据所述第一密钥、所述第二密钥以及所述解密算法生成掩码因子;
通过所述解密算法配合所述第二密钥对所述待传输数据进行解密,进而形成所述掩码数据;
其中,所述掩码因子设置成使得所述掩码数据等于通过所述掩码因子对所述解密数据进行掩码运算的运算结果。
7.如权利要求6所述的方法,其特征在于,所述方法进一步包括:
利用所述掩码因子对传输到所述第二存储器的所述掩码数据进行去掩码运算,进而还原出所述解密数据。
8.如权利要求7所述的方法,其特征在于,所述利用所述掩码因子对传输到所述第二存储器的所述掩码数据进行去掩码运算的步骤包括:
将所述掩码数据拆分成第一随机数和第二随机数;
对利用所述掩码因子对所述第一随机数进行去掩码运算;
利用去掩码运算后的所述第一随机数和所述第二随机数还原所述解密数据。
9.如权利要求8所述的方法,其特征在于,所述将所述掩码数据拆分成第一随机数和第二随机数的步骤包括:
选择所述第一随机数,并将所述掩码数据与所述第一随机数进行异或运算,进而获得所述第二随机数。
10.如权利要求8所述的方法,其特征在于,所述对利用所述掩码因子对所述第一随机数进行去掩码运算的步骤包括:
将所述第一随机数与所述掩膜因子进行异或运算。
11.如权利要求8所述的方法,其特征在于,所述利用去掩码运算后的所述第一随机数和所述第二随机数还原所述解密数据的步骤包括:
将去掩码运算后的所述第一随机数和所述第二随机数进行异或运算。
12.一种抗模板攻击的数据传输***,其特征在于,所述数据传输***包括第一存储器,所述第一存储器包括:
数据获取单元,用于获取待从第一存储器传输至第二存储器的待传输数据;
掩码运算单元,用于对所述待传输数据进行掩码运算,进而形成掩码数据;
传输单元,用于将所述掩码数据从所述第一存储器传输至所述第二存储器。
13.如权利要求12所述的***,其特征在于,所述掩码运算单元包括:
拆分模块,用于将所述待传输数据拆分为第一随机数以及第二随机数,其中所述第一随机数以及所述第二随机数的异或运算结果为所待传输数据;
掩码运算模块,用于对所述第一随机数和所述第二随机数进行掩码运算。
14.如权利要求12所述的***,其特征在于,所述第二存储器为具有存储加密功能的存储器;
所述掩码运算单元包括:
密钥选择模块,用于选择第一密钥以及第二密钥;
掩码因子生成模块,用于根据所述第一密钥、所述第二密钥以及所述第二存储器所设置的加密算法生成掩码因子;
掩码运算模块,用于利用所述掩码因子对所述待传输数据进行掩码运算,进而形成所述掩码数据;
其中,所述掩码因子设置成使得通过所述加密算法配合所述第二密钥对所述掩码数据进行加密运算获得的加密结果等于通过所述加密算法配合所述第一密钥对所述待传输数据进行加密运算获得的加密结果。
15.如权利要求14所述的***,其特征在于,所述***进一步包括所述第二存储器,所述第二存储器包括:
密钥设置单元,用于将所述第二存储器的存储密钥设置为所述第二密钥;
加密单元,用于通过所述加密算法配合所述第二密钥对传输至所述第二存储器的所述掩码数据进行加密,进而获得加密数据;
读写单元,用于将所述加密数据写入所述第二存储器。
16.如权利要求15所述的***,其特征在于,所述第二存储器进一步包括解密单元,
所述密钥设置单元进一步将所述存储密钥替换为所述第一密钥,以允许所述解密单元在后续操作中通过所述第二存储器所设置的解密算法配合所述第一密钥将所述加密数据解密成所述待传输数据。
17.如权利要求12所述的***,其特征在于,所述第一存储器为具有存储加密功能的存储器,所述掩码运算单元进一步包括:
密钥选择模块,用于获取所述第一存储器的存储密钥作为第一密钥,并选择第二密钥,其中所述第一存储器所设置的解密算法能够配合所述第一密钥将所述待传输数据解密为解密数据;
掩码因子生成模块,用于根据所述第一密钥、所述第二密钥以及所述解密算法生成掩码因子;
解密模块,用于通过所述解密算法配合所述第二密钥对所述待传输数据进行解密,进而形成所述掩码数据;
其中,所述掩码因子设置成使得所述掩码数据等于通过所述掩码因子对所述解密数据进行掩码运算的运算结果。
18.如权利要求17所述的***,其特征在于,所述***进一步包括所述第二存储器,所述第二存储器包括:
去掩码运算单元,用于利用所述掩码因子对传输到所述第二存储器的所述掩码数据进行去掩码运算,进而还原出所述解密数据。
19.如权利要求18所述的***,其特征在于,所述去掩码运算单元包括:
拆分模块,用于将所述掩码数据拆分成第一随机数和第二随机数;
去掩码运算模块,用于对利用所述掩码因子对所述第一随机数进行去掩码运算;
还原模块,用于利用去掩码运算后的所述第一随机数和所述第二随机数还原所述解密数据。
20.如权利要求19所述的***,其特征在于,所述拆分模块选择所述第一随机数,并将所述掩码数据与所述第一随机数进行异或运算,进而获得所述第二随机数。
21.如权利要求19所述的***,其特征在于,所述去掩码运算模块将所述第一随机数与所述掩膜因子进行异或运算。
22.如权利要求19所述的***,其特征在于,所述还原模块将去掩码运算后的所述第一随机数和所述第二随机数进行异或运算。
CN201610696968.1A 2016-08-19 2016-08-19 抗模板攻击的数据传输方法及*** Active CN107766725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610696968.1A CN107766725B (zh) 2016-08-19 2016-08-19 抗模板攻击的数据传输方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610696968.1A CN107766725B (zh) 2016-08-19 2016-08-19 抗模板攻击的数据传输方法及***

Publications (2)

Publication Number Publication Date
CN107766725A true CN107766725A (zh) 2018-03-06
CN107766725B CN107766725B (zh) 2021-03-30

Family

ID=61262626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610696968.1A Active CN107766725B (zh) 2016-08-19 2016-08-19 抗模板攻击的数据传输方法及***

Country Status (1)

Country Link
CN (1) CN107766725B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182624A (zh) * 2020-10-13 2021-01-05 Oppo广东移动通信有限公司 加密方法、加密装置、存储介质与电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1930578A (zh) * 2004-02-06 2007-03-14 西格诺普蒂克科技公司 使用从材料单元的至少一个结构特征获取的数字签名来保护敏感信息的直接读取以及读取受保护的敏感信息的方法
CN102880836A (zh) * 2011-07-15 2013-01-16 富士通半导体股份有限公司 安全装置
CN103366132A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于加密数据的设备和方法
CN104239808A (zh) * 2013-06-14 2014-12-24 北京数码视讯科技股份有限公司 数据加密传输方法及装置
CN105703901A (zh) * 2016-03-25 2016-06-22 广东欧珀移动通信有限公司 加密数据输入方法及加密数据输入装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1930578A (zh) * 2004-02-06 2007-03-14 西格诺普蒂克科技公司 使用从材料单元的至少一个结构特征获取的数字签名来保护敏感信息的直接读取以及读取受保护的敏感信息的方法
CN102880836A (zh) * 2011-07-15 2013-01-16 富士通半导体股份有限公司 安全装置
CN103366132A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于加密数据的设备和方法
CN104239808A (zh) * 2013-06-14 2014-12-24 北京数码视讯科技股份有限公司 数据加密传输方法及装置
CN105703901A (zh) * 2016-03-25 2016-06-22 广东欧珀移动通信有限公司 加密数据输入方法及加密数据输入装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182624A (zh) * 2020-10-13 2021-01-05 Oppo广东移动通信有限公司 加密方法、加密装置、存储介质与电子设备

Also Published As

Publication number Publication date
CN107766725B (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
CN107005415A (zh) 用于加密/解密消息的块加密方法以及实现该方法的密码设备
CN107491317A (zh) 一种基于异构加速平台的aes对称加解密方法及***
Gamido et al. Modified AES for text and image encryption
CN102904716A (zh) 一种抗侧信道攻击的对策方法
CN104734845A (zh) 基于全加密算法伪操作的旁路攻击防护方法
US10187198B2 (en) Protection of a rijndael algorithm
CN106953723A (zh) 防止dfa攻击的拆分和合并方法
US20170063523A1 (en) Dpa protection of a rijndael algorithm
CN103404073B (zh) 针对无源监听的保护
CN108494546A (zh) 一种白盒加密方法、装置及存储介质
CN107005577A (zh) 指纹数据的处理方法及处理装置
CN105959108A (zh) 对云支付限制密钥进行加密及解密的方法、装置和***
Shi et al. An ultra-lightweight white-box encryption scheme for securing resource-constrained IoT devices
JP2003513490A (ja) 意図しないサイド・チャネル信号の分析によるデータ抜取りに耐性のデータ処理方法
CN107273724A (zh) 为白盒实施方案的输入和输出加水印
US7779272B2 (en) Hardware cryptographic engine and encryption method
CN109726565A (zh) 在抗泄漏原语中使用白盒
US9602281B2 (en) Parallelizable cipher construction
CN109165531A (zh) 一种aes掩码方法、电子设备及存储介质
CN105978680A (zh) 在白盒实现方案中实现填充
Jones et al. Information Security: A Coordinated Strategy to Guarantee Data Security in Cloud Computing
CN114513297A (zh) 一种pos机数据加密方法及装置
US8774402B2 (en) Encryption/decryption apparatus and method using AES rijndael algorithm
US9946662B2 (en) Double-mix Feistel network for key generation or encryption

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