CN112597071B - 数据存储方法、获取方法、装置、电子设备以及介质 - Google Patents

数据存储方法、获取方法、装置、电子设备以及介质 Download PDF

Info

Publication number
CN112597071B
CN112597071B CN202011451814.9A CN202011451814A CN112597071B CN 112597071 B CN112597071 B CN 112597071B CN 202011451814 A CN202011451814 A CN 202011451814A CN 112597071 B CN112597071 B CN 112597071B
Authority
CN
China
Prior art keywords
data
encrypted
stored
address
target
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
Application number
CN202011451814.9A
Other languages
English (en)
Other versions
CN112597071A (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.)
Beijing Horizon Robotics Technology Research and Development Co Ltd
Original Assignee
Beijing Horizon Robotics Technology Research and Development Co Ltd
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 Beijing Horizon Robotics Technology Research and Development Co Ltd filed Critical Beijing Horizon Robotics Technology Research and Development Co Ltd
Priority to CN202011451814.9A priority Critical patent/CN112597071B/zh
Publication of CN112597071A publication Critical patent/CN112597071A/zh
Application granted granted Critical
Publication of CN112597071B publication Critical patent/CN112597071B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据存储方法、获取方法、装置、电子设备以及介质,通过将干扰数据拼接到待加密数据的预设位置,根据拼接后的待加密数据得到待存储数据,然后再将待存储数据对应的原始地址进行重映射,得到待存储数据对应的目标地址,进而根据目标地址对待存储数据进行存储,有利于提高数据存储的安全性。

Description

数据存储方法、获取方法、装置、电子设备以及介质
技术领域
本申请涉及数据存储技术领域,且更为具体地,涉及一种数据存储方法、获取方法、装置、电子设备以及介质。
背景技术
随着大数据的蓬勃发展,数据存储的安全问题越来越受到业界的重视,以AI(Artificial Intelligence,人工智能)模型数据为例,AI模型数据可以作为公司的核心资产,如果不对其进行保护,用户就可以随意从存储器中查看或读取AI模型数据,导致数据泄露给第三方。因此,为了避免需要保护的数据被第三方获得,亟需一种能够对数据进行安全存储的方法。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种数据存储方法、获取方法、装置、电子设备以及介质,其通过地址重映射的方式将干扰数据和待加密数据打乱存储,实现对存储数据的多层保护,有利于提高数据存储的安全性。
根据本申请的第一方面,提供了一种数据存储方法,所述方法包括:将干扰数据拼接到待加密数据的预设位置;根据拼接后的待加密数据得到待存储数据;将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址;按照所述目标地址对所述待存储数据进行存储。
根据本申请的第二方面,提供了一种数据获取方法,用于获取按照上述第一方面提供的数据存储方法存储的目标数据,所述方法包括:获取所述目标数据的访问地址;对所述访问地址进行重映射,其中,所述重映射的规则与上述第一方面提供的数据存储方法采用的地址重映射规则相同;基于重映射后的访问地址,从存储器中获取所述目标数据。
根据本申请的第三方面,提供了一种数据存储装置,所述装置包括:数据拼接模块,用于将干扰数据拼接到待加密数据的预设位置;数据确定模块,用于根据拼接后的待加密数据得到待存储数据;第一地址重映射模块,用于将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址;存储模块,用于按照目标地址对所述待存储数据进行存储。
根据本申请的第四方面,提供了一种数据获取装置,用于获取按照上述第一方面提供的数据存储方法存储的目标数据,所述装置包括:地址获取模块,用于获取所述目标数据的访问地址;第二地址重映射模块,用于对所述访问地址进行重映射,其中,所述重映射的规则与上述第一方面提供的数据存储方法采用的地址重映射规则相同;数据获取模块,用于基于重映射后的访问地址,从存储器中获取所述目标数据。
根据本申请的第五方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行上述第一方面所述的数据存储方法或上述第二方面所述的数据获取方法。
根据本申请的第六方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储目标数据的存储器,其中,所述目标数据是按照上述第一方面所述的数据存储方法存储的;以及地址重映射单元。其中,所述处理器,用于向所述地址重映射单元发送所述目标数据的访问地址;所述地址重映射单元,用于对所述访问地址进行重映射,并将重映射后的访问地址发送给所述存储器,其中,所述重映射的规则与上述第一方面所述的数据存储方法采用的地址重映射规则相同;所述存储器,用于按照所述重映射后的访问地址将所存储的目标数据返回给所述处理器。
根据本申请的第七方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面所述的数据存储方法或上述第二方面所述的数据获取方法。
本申请实施例提供的数据存储方法、获取方法、装置、电子设备以及介质,通过将干扰数据拼接到待加密数据的预设位置,根据拼接后的待加密数据得到待存储数据,然后再将待存储数据对应的原始地址进行重映射,得到待存储数据对应的目标地址,进而根据目标地址对待存储数据进行存储。这样先通过填充干扰数据,对待加密数据进行保护,再通过地址重映射将干扰数据和待加密数据打乱,混合在一起进行存储,实现对待加密数据的多层保护,有利于提高数据存储的安全性。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本申请一示例性实施例提供的数据存储方法的流程示意图。
图2是本申请一示例性实施例提供的数据填充过程示意图;
图3是本申请一示例性实施例提供的一种示例性地址变换示意图;
图4是本申请一示例性实施例提供的加密过程示意图;
图5是本申请一示例性实施例提供的地址重映射过程示意图;
图6是本申请一示例性实施例提供的数据获取方法的流程示意图;
图7是本申请一示例性实施例提供的步骤603的流程示意图;
图8是本申请一示例性实施例提供的数据存储装置的框图;
图9是本申请一示例性实施例提供的数据获取装置的框图;
图10是本申请一示例性实施例提供的一种示例性数据获取模块的框图;
图11是本申请一示例性实施例提供的电子设备的结构图;
图12是本申请另一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
一些重要数据如AI模型数据通常会作为公司的核心资产,不希望被第三方获得,因此需要做保护措施。举例来讲,AI模型数据可以以文件形式发布,存储在Flash介质中,之后经过CPU(Central Processing Unit,中央处理器)加载到DDR(Double Data Rate,双倍数据速率)存储器,最后被BPU(Branch Processing Unit,分支处理单元)访问。其中,AI模型数据文件,Flash介质和DDR都可以被用户访问。用户可以通过以下方式获得AI模型数据:直接查看AI模型数据文件,读取Flash中的数据或通过CPU或者仿真器读取DDR中的内容。这样就容易把AI模型数据泄漏给第三方,不利于对AI模型数据的保护。
鉴于此,本申请实施例提供了一种数据存储方法,先将干扰数据拼接到待加密数据的预设位置,并根据拼接后的待加密数据得到待存储数据,然后再将待存储数据对应的原始地址进行重映射,得到待存储数据对应的目标地址,进而根据目标地址对待存储数据进行存储。
这样就可以在存储待加密数据时,先通过填充干扰数据混淆待加密数据,然后进一步通过地址重映射将干扰数据和待加密数据打乱,混合在一起进行存储,实现对待加密数据的多层保护,有利于提高数据存储的安全性,为存储一些重要数据如AI模型数据等提供了更高的安全保障。
相应地,本申请实施例提供了一种数据获取方法,先获取目标数据的访问地址;然后对该访问地址进行重映射,重映射的规则与上述数据存储过程采用的地址重映射规则相同;进而,基于重映射后的访问地址,从存储器中获取目标数据。这样相关人员就能够通过本实施例提供的数据获取方法,准确提取到通过上述数据存储方法存储的数据,在提高数据存储安全性的基础上,方便相关人员实现数据获取。
在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。
示例性方法
图1是本申请一示例性实施例提供的数据存储方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:
步骤S101,将干扰数据拼接到待加密数据的预设位置,根据拼接后的待加密数据得到待存储数据。
本实施例中,待加密数据可以是AI模型数据,例如,可以是机器学习模型如神经网络模型训练得到的一些权重、偏移量,等等。当然,在本申请其他实施例中,待加密数据也可以是其他需要进行安全存储的数据。
干扰数据为用于混淆待加密数据的数据,可以是从预先存储在电子设备中的指定数据中提取,或者,也可以是随机生成的。
如图2所示,假设待加密数据为DATA0,对DATA0进行干扰数据填充后,得到拼接后的待加密数据DATA1。
完成干扰数据的拼接后,可以将拼接后的待加密数据作为待存储数据进行存储,或者,也可以对拼接后的待加密数据进行其他处理如加密处理后再作为待存储数据进行存储。在一种实施方式中,待存储数据的大小可以与拼接后的待加密数据的大小相同。
步骤S102,将待存储数据对应的原始地址进行重映射,得到待存储数据对应的目标地址。
待存储数据对应的原始地址即为原本待存储数据在相应存储空间内的存储地址。对原始地址进行重映射后,待存储数据在相应存储空间内的实际存储位置就会发生改变,将重映射后得到的地址作为待存储数据对应的目标地址。
可以理解的是,重映射即为在待存储数据对应的预设地址范围内,重新设置待存储数据与相应存储地址的映射关系。举例来讲,待存储数据存储在000000至111111的地址范围内,待存储数据中的数据A对应的原始地址为001000,通过地址重映射,将数据A的重新映射到地址000101,则地址000101将作为数据A对应的目标地址。这样,原本要存储在001000的数据A在经过上述地址重映射处理后,就会被存储到000101。
本实施例中,地址重映射的方式可以有多种。举例来讲,可以预先设置一地址重映射表,通过查该地址重映射表,实现对待存储数据对应的原始地址的重映射。或者,也可以预先设置变换函数f,基于该变换函数f将待存储数据对应的原始地址D1变换为相应地址范围内的目标地址D2,即D2=f(D1)。
可以理解的是,待存储数据中,填充的干扰数据与真实数据即待加密数据是分开的,通过地址重映射改变各数据的存储位置就可以把所有数据打乱,使得真实数据和干扰数据混合在一起,有利于进一步提高数据存储的安全性。
步骤S103,按照目标地址对待存储数据进行存储。
具体存储位置可以根据实际应用场景的需要设置。例如,在一种应用场景中,可以按照地址重映射后得到的目标地址将待存储数据存储到DDR存储器中。当然,在本申请其他实施例中,也可以将待存储数据存储到其他类型的存储器中,此处不作限制。
按照重映射后的地址进行存储,会使得原本要被存储在相应存储空间中A地址的数据被存储到B地址,从而使得待加密数据被打乱存储。而且由于将待存储数据是待加密数据拼接干扰数据后得到的,除了待加密数据本身的存储位置打乱以外,待加密数据与干扰数据也会被打乱混合在一起存储,这样就可以实现对待加密数据的多层保护,有利于提高数据存储的安全性。
在上述图1所示实施例的基础上,步骤S101中的将干扰数据拼接到待加密数据的预设位置的过程可以包括:根据待加密数据的字节数,生成干扰数据;将所述干扰数据拼接到待加密数据的末尾,且拼接后的待加密数据的大小为2的N次方个字节。也就是说,干扰数据的大小是根据待加密数据的字节数确定的,需要使得拼接后的待加密数据大小为2N个字节(Byte),且拼接后的待加密数据大小大于拼接前的待加密数据大小。其中,N根据实际应用场景中CPU的数据位宽以及拼接前待加密数据的大小确定,例如,若CPU的数据位宽为32位,则N可以为大于或等于4的整数,具体根据需要设置。举例来讲,假设待加密数据DATA0为100KB,如果想要拼接后的待加密数据DATA1为128KB,则干扰数据应为28KB,如果想要得到DATA1为256KB,则干扰数据为156KB。
本实施例中,为了方便拼接,预设位置可以是待加密数据的末尾。当然,在本申请其他实施例中,预设位置也可以是待加密数据的其他位置,例如,可以设置在待加密数据的开头,或者是设置在待加密数据的中间。
在一种可选的实施例中,考虑到需要存储的待加密数据可能大小不一,填充干扰数据一方面可以混淆待加密数据,起到保护待加密数据的作用,另一方面也可以使得待存储数据的大小保持一致。此时,需要预先根据实际应用场景中,要存储的数据大小,确定一个目标数据量,上述根据待加密数据的字节数,生成干扰数据的过程可以包括:根据待加密数据的字节数以及目标数据量,确定要生成的干扰数据量,进而,基于所确定的干扰数据量,生成干扰数据,使得拼接后的待加密数据为2的N次方个字节对齐。也就是说,尽管对不同数据分别进行存储时,DATA0的大小可能不同,但是通过控制干扰数据的大小,可以保证每次拼接后得到的DATA1大小相同,即保证DATA1的大小对齐,从而使得每个待存储数据的大小相同,这样就可以适用相同的地址重映射处理,有利于简化存储过程。
在上述图1所示实施例的基础上,步骤S102中,将所述待存储数据对应的原始地址进行重映射,得到待存储数据对应的目标地址的过程可以包括:将所述待存储数据对应的原始地址中特征地址位进行重排序,得到所述待存储数据对应的目标地址。本实施例中,待存储数据对应的特征地址位即为相应存储器的数据存储地址中用于决定待存储数据存储位置的地址位。举例来讲,假设存储器需要分配大小为XGB的存储空间存储待存储数据,存储器的数据存储地址中第t位到第t+k位决定待存储数据在这XGB空间中的存储位置,也就是说,第t位到第t+k位为待存储数据对应的特征地址位,可以将第t位到第t+k位之间的地址位进行重排序。其中,t为大于或等于0的整数,k为大于或等于1的整数,t+k小于或等于数据存储地址的最高位,特征地址位的位数具体根据待存储数据的大小确定。
在上述图1所示实施例的基础上,步骤S102中,将待存储数据对应的原始地址中特征地址位进行重排序可以包括:将所述特征地址位中第一预设比特位与第二预设比特位之间的两位以上地址位进行位置变换。其中,第一预设比特位低于第二预设比特位,第二预设比特位低于或等于第N-1位,N为待存储数据对应的地址位数。举例来讲,待存储数据的大小为214个字节,则N为14。第一预设比特位能够取的最低位根据CPU的数据位宽确定,即根据CPU最小数据访问单位的数据位数确定。
举例来讲,在一种应用场景中,若CPU的数据位宽为32位,即最小数据访问单位为32位数据,第一预设比特位可以设置为高于或等于第2位。也就是说,特征地址位中的第0位和第1位不参与地址重排序,这样才能保证在地址重排序时,每连续32位数据作为一个整体一起打乱,且每个32位数据自身不会被打乱,从而保证数据读取的准确性。例如,待存储数据的大小为216个字节,则可以支持对特征地址位中第2位至第15位之间的地址进行重排序,而第0位至第1位、以及第16位至31位保持不变。此时,第一预设比特位和第二预设比特位均可以取第2位至第15位之间的位数。
在一种实施方式中,为了得到较好的打乱效果,在第一预设比特位和第二预设比特位各自的取值范围内,第一预设比特位可以取最低位,第二预设比特位可以取最高位。例如,当CPU的数据位宽为32位时,第一预设比特位可以取2,第二预设比特位可以取N-1,此时可以将第2位至第N-1位之间的地址位进行任意位置变换,具体变换方式不作限制。举例来讲,在保持ADDR[1:0]、以及ADDR[31:N]不变的基础上,可以将地址线ADDR[2]与ADDR[N-1]交换,ADDR[3]与ADDR[N-2]交换,ADDR[4]与ADDR[N-3]交换,ADDR[5]与ADDR[N-4]交换,以此类推,如图3所示;或者,也可以依次向高位移一位或依次向低位移一位,等等。这样能够将待存储数据的存储位置进行更充分的打乱,有利于进一步提高数据存储的安全性。
当然,在本申请其他实施例中,第一预设比特位和第二预设比特位也可以取各自范围内的其他地址位,例如,在上述示例中,第一预设比特位也可以取4,第二预设比特位可以取13。
同理,在另一种应用场景中,若CPU的数据位宽为64位,即最小数据访问单位为64位数据,第一预设比特位可以设置为高于或等于第3位。也就是说,特征地址位中的第0位至第2位不参与地址重排序。
为了更清楚地说明地址重排序实现待存储数据打乱存储的过程,下面以一个具体的示例来进行说明。
假设待存储数据大小为2的6次方个字节,即一共是64bytes的数据。该数据对应的特征地址位按二进制表示,每个bit对应一根地址线,从高位到地位依次表示为:ADDR[5]ADDR[4]ADDR[3]ADDR[2]ADDR[1]ADDR[0]。将待存储数据按16进制表示,按照原始的地址顺序从000000至111111依次对应存储的数据为:“00”至“3F”,假设CPU的数据位宽为32位,则ADDR[0]和ADDR[1]不参与地址重排序,所以每4个相邻地址对应的数据自身顺序是不会变化的,比如地址000000、000001、000010以及000011对应存储的数据“00”、“01”、“02”和“03”,它们之间的顺序是保持不变的。
举例来讲,若将ADDR[3]与ADDR[2]交换,ADDR[2]和ADDR[3]一共有00,01,10,11四种情况,其中00和11交换是没效果的,只有01会变成10,10会变成01,因此50%的数据位置会发生变化,另外的50%不会发生变化。此时,原本要依次存储在地址000100、000101、000110以及000111的数据会对应与原本要依次存储在地址001000、001001、001010以及001011的数据进行交换,即在000100、000101、000110以及000111依次存储“08”、“09”、“0A”和“0B”,在001000、001001、001010以及001011依次存储“04”、“05”、“06”和“07”。另外,原本要依次存储在地址010100、010101、010110以及010111的数据会对应与原本要依次存储在地址011000、011001、011010以及011011的数据进行交换;原本要依次存储在地址100100、100101、100110以及100111的数据会对应与原本要依次存储在地址101000、101001、101010以及101011的数据进行交换;原本要依次存储在地址110100、110101、110110以及110111的数据会对应与原本要依次存储在地址111000、111001、111010以及111011的数据进行交换。这样就可以实现将待存储数据打乱存储,例如,原本要存储在001000的数据“08”在上述地址重排序处理即交换ADDR[3]与ADDR[2]后,就会被存储在000100。
在上述图1所示实施例的基础上,步骤S101中,根据拼接后的待加密数据得到待存储数据可以包括:对拼接后的待加密数据进行加密,得到加密数据,将加密数据作为所述待存储数据。
可以理解的是,拼接后的待加密数据为明文,为了进一步提高数据存储的安全性,可以将拼接后的待加密数据加密后再进行存储。如图4所示,在图2中拼接后的待加密数据DATA1的基础上,进行加密处理,得到加密数据DATA2,作为待存储数据。具体来讲,对数据进行加密方式可以有多种,例如,现有对称加密算法或非对称加密算法等。
在一种可选的实施例中,本实施例的加密方式可以采用异或运算和/或循环移位操作。也就是说,上述对拼接后的待加密数据进行加密,得到加密数据的过程可以采用以下四种实施方式中的任意一种。
第一种,将拼接后的待加密数据与预设密钥(Key)进行异或运算,得到运算数据,将运算数据作为加密数据。
第二种,将拼接后的待加密数据按照预设的循环移位规则进行循环移位操作,得到加密数据。例如,可以将拼接后的待加密数据循环左移n位后得到加密数据,其中n为根据需要配置。
第三种,先将拼接后的待加密数据与预设密钥进行异或运算,得到运算数据,再将运算数据按照预设的循环移位规则进行循环移位操作,得到所述加密数据。
第四种,先将拼接后的待加密数据按照预设的循环移位规则进行循环移位操作,得到中间数据,再将中间数据与预设密钥进行异或运算,得到加密数据。
如图5所示,在图4中得到的加密数据DATA2的基础上,将DATA2对应的原始地址进行重映射,得到打乱存储的数据DATA3。
相比于现有复杂加密算法,本实施例采用较为简单的处理过程对拼接后的待加密数据进行加密,结合拼接干扰数据、以及地址重映射处理,为待加密数据的存储提供多层保护,提高数据存储的安全性。且摒弃了复杂的加密算法,处理过程简单,有利于提高存储效率,也降低了对硬件算力的要求。
图6是本申请一示例性实施例提供的数据获取方法的流程示意图。本实施例提供的数据获取方法可应用于获取按照图1所示实施例提供的数据存储方法存储的目标数据,如图6所示,该数据获取方法可以包括如下步骤:
步骤S601,获取目标数据的访问地址。
其中,目标数据即为要获取的数据,该数据是按照图1所示实施例提供的数据存储方法存储的,也就是上述步骤S101中的待加密数据。例如,在一种应用场景中,目标数据可以为按照图1所示实施例预先存储的AI模型数据。
步骤S602,对所述访问地址进行重映射。其中,所述重映射的规则与图1中步骤S102采用的地址重映射规则相同。
举例来讲,请求访问地址ADDR0的数据,ADDR0经地址重映射后就可以转换为其在存储器上的位置ADDR1。其中,地址重映射规则可以是预先存储的,或者,也可以是实时获取的,须与存储目标数据过程中采用的地址重映射规则保持一致,具体可以参照上述数据存储方法实施例中提供的重映射方式。以采用对特征地址位进行地址重排序的方式为例,存储目标数据过程中采用的地址重排序规则为:ADDR[2]与ADDR[N-1]交换,ADDR[3]与ADDR[N-2]交换,ADDR[4]与ADDR[N-3]交换,ADDR[5]与ADDR[N-4]交换,以此类推,则需要对访问地址进行相同的变换,得到重排序后的访问地址ADDR1。
步骤S603,基于重映射后的访问地址,从存储器中获取所述目标数据。
按照重映射后的访问地址ADDR1就可以从存储器中读取出对应的目标数据。举例来讲,在上文给出的示例中,在数据存储过程中,原本要存储在001000的数据“08”在上述地址重排序处理即交换ADDR[3]与ADDR[2]后,被存储在了000100;那么,在数据获取过程中,若访问地址为001000,经过相同的地址重排序处理后,就会按照000100读取数据,从而读取到正确的数据“08”。
需要说明的是,由于步骤S601获取的访问地址不会包含目标数据范围以外的地址,因此,也就不会获取到存储过程中引入的干扰数据。例如,若目标数据为AI模型数据,则通过步骤S603获取到的就是预先存储的AI模型数据。
在一种应用场景中,本申请实施例提供的数据获取方法可以运行于SoC(Systemon Chip,系统级芯片)中的BPU(Branch Processing Unit,分支处理单元)中。当然,在其他应用场景中,也可以应用于其他需要从存储器获取按照图1所示实施例存储的目标数据的电子设备中。
在一种可选的实施例中,为了进一步提高数据存储的安全性,在目标数据存储过程中,是对拼接后的待加密数据进行加密,得到加密数据,再将加密数据作为所述待存储数据。相应地,在数据获取过程中,也需要对读取的数据进行解密,才能得到目标数据。也就是说,如图7所示,在上述图6所示实施例的基础上,上述步骤S603中,基于重映射后的访问地址,从存储器中获取所述目标数据的过程可以包括:
步骤S701,基于所述重映射后的访问地址,从存储器中获取加密后的目标数据;
步骤S702,对所述加密后的目标数据进行解密,得到所述目标数据。
可以理解的是,解密方式与数据存储过程中采用的加密方式对应,即采用前述加密算法的逆运算,此处就不做详述。
示例性装置
图8是本申请一示例性实施例提供的数据存储装置的框图。
如图8所示,本申请实施例提供的数据存储装置,可以运行于电子设备上,该数据存储装置800可以包括:
数据拼接模块801,用于将干扰数据拼接到待加密数据的预设位置;
数据确定模块802,用于根据拼接后的待加密数据得到待存储数据;
第一地址重映射模块803,用于将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址;
存储模块804,用于按照所述目标地址对所述待存储数据进行存储。
在一种可选的实施例中,数据确定模块802用于对所述拼接后的待加密数据进行加密,得到加密数据,将所述加密数据作为所述待存储数据。
在一种可选的实施例中,数据确定模块802用于将所述拼接后的待加密数据与预设的密钥进行异或运算,得到运算数据,将所述运算数据作为所述加密数据;或者
按照预设的循环移位规则,对所述拼接后的待加密数据进行循环移位操作,将移位后的数据作为所述加密数据。
在一种可选的实施例中,第一地址重映射模块803用于:将所述待存储数据对应的原始地址中特征地址位进行重排序,得到所述待存储数据对应的目标地址。
在一种可选的实施例中,第一地址重映射模块803用于:将所述特征地址位中第一预设比特位与第二预设比特位之间的两位以上地址位进行位置变换。其中,所述第一预设比特位低于所述第二预设比特位,所述第一预设比特位高于或等于第2位,所述第二预设比特位低于或等于第N-1位,N为所述待存储数据对应的地址位数。
在一种可选的实施例中,数据拼接模块801用于:根据所述待加密数据的字节数,生成所述干扰数据;将所述干扰数据拼接到待加密数据的末尾,使得拼接后的待加密数据的大小为2的N次方个字节,其中,N为大于或等于4的整数。
在一种可选的实施例中,待加密数据为AI模型数据。
需要说明的是,以上各模块可以是由软件代码实现,也可以由硬件例如逻辑门电路或集成电路芯片实现,或者,还可以由硬件和软件结合的方式来实现。
这里,本领域技术人员可以理解,上述数据存储装置800中的各个模块的具体功能和操作已经在上述方法实施例对于数据存储方法的描述中得到了详细介绍,并因此,将省略其重复描述。
图9是本申请一示例性实施例提供的数据获取装置的框图。
如图9所示,本申请实施例提供的数据获取装置900,用于获取按照图1所示实施例提供的数据存储方法存储的目标数据,可以包括:
地址获取模块901,用于获取所述目标数据的访问地址;
第二地址重映射模块902,用于对所述访问地址进行重映射,其中,所述重映射的规则与图1中步骤S102采用的地址重映射规则相同;
数据获取模块903,用于基于重映射后的访问地址,从存储器中获取所述目标数据。
如图10所示,在一种可选的实施例中,数据获取模块903包括获取子模块9031和解密子模块9032。其中,获取子模块9031用于基于所述重映射后的访问地址,从存储器中获取加密后的目标数据;解密子模块9032用于对所述加密后的目标数据进行解密,得到所述目标数据。
需要说明的是,以上各模块可以是由软件代码实现,也可以由硬件例如逻辑门电路或集成电路芯片实现,或者,还可以由硬件和软件结合的方式来实现。
这里,本领域技术人员可以理解,上述数据获取装置900中的各个模块的具体功能和操作已经在上述方法实施例对于数据获取方法的描述中得到了详细介绍,并因此,将省略其重复描述。
示例性电子设备
图11图示了根据本申请一实施例的电子设备的框图。
如图11所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的数据存储方法或数据获取方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
在该电子设备是计算机设备时,该输入装置13可以是通信网络连接器,用于接收网络数据。此外,该输入装置13还可以包括例如键盘、鼠标等等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图11中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
图12图示了根据本申请另一实施例的电子设备的框图。
如图12所示,电子设备20包括处理器21、存储器22以及地址重映射单元23。存储器22中存储有按照本申请实施例提供的数据存储方法存储的目标数据。其中:
处理器21,用于向所述地址重映射单元发送所述目标数据的访问地址;
地址重映射单元23,用于对所述访问地址进行重映射,并将重映射后的访问地址发送给所述存储器22,其中,所述重映射的规则与本申请实施例提供的数据存储方法采用的地址重映射规则相同;
存储器22,用于按照所述重映射后的访问地址将所存储的目标数据返回给所述处理器21。
在一种可选的实施例中,上述电子设备20还包括:数据解密单元24。此时,上述存储器22,用于按照所述重映射后的访问地址将所存储的目标数据返回给所述数据解密单元24。数据解密单元24,用于对所述存储器22返回的目标数据进行解密,并将解密后的目标数据发送给所述处理器21。
本领域技术人员可以理解,上述电子设备20中的各个单元的具体功能和操作已经在上述方法实施例对于数据获取方法的描述中得到了详细介绍,并因此,将省略其重复描述。
具体来讲,处理器21可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元。
存储器22可以是易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
地址重映射单元23和数据解密单元24可以采用硬件实现例如可以采用逻辑门电路实现,这样地址重映射单元23和数据解密单元24对用户不可见,有利于提高数据获取的安全性。
举例来讲,在一种应用场景中,处理器21可以是SoC芯片中的BPU,存储器22可以是DDR存储器。如图12所示,BPU、DDR存储器、地址重映射单元23和数据解密单元24可以通过总线(Bus)连接。DDR存储器中存储有数据DATA3,BPU请求访问地址ADDR0的数据,ADDR0经地址重映射单元23翻译后得到其在DDR上的位置ADDR1,总线访问ADDR1,从内存中读取加密后的数据DATA2,并把这个数据返回给BPU,BPU得到DATA2以后经过数据解密单元24,恢复出要获取的目标数据DATA0。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据存储方法或数据获取方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据存储方法或数据获取方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种数据存储方法,所述方法包括:
将干扰数据拼接到待加密数据的预设位置;
根据拼接后的待加密数据得到待存储数据;
将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址;
按照所述目标地址对所述待存储数据进行存储;
所述将干扰数据拼接到待加密数据的预设位置,包括:
根据所述待加密数据的字节数以及目标数据量,确定要生成的干扰数据量;
基于确定的所述干扰数据量,生成所述干扰数据,使得拼接后的所述待加密数据的大小为2的N次方个字节对齐,其中,N为大于或等于4的整数。
2.根据权利要求1所述的方法,其中,所述根据拼接后的待加密数据得到待存储数据,包括:
对所述拼接后的待加密数据进行加密,得到加密数据,将所述加密数据作为所述待存储数据。
3.根据权利要求2所述的方法,其中,所述对所述拼接后的待加密数据进行加密,得到加密数据,包括:
将所述拼接后的待加密数据与预设的密钥进行异或运算,得到运算数据,将所述运算数据作为所述加密数据;或者
按照预设的循环移位规则,对所述拼接后的待加密数据进行循环移位操作,将移位后的数据作为所述加密数据。
4.根据权利要求1所述的方法,其中,所述将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址,包括:
将所述待存储数据对应的原始地址中特征地址位进行重排序,得到所述待存储数据对应的目标地址。
5.根据权利要求1所述的方法,其中,所述将干扰数据拼接到待加密数据的预设位置,包括:
将所述干扰数据拼接到待加密数据的末尾。
6.一种数据获取方法,用于获取按照权利要求1-5任一所述的方法存储的目标数据,所述方法包括:
获取所述目标数据的访问地址;
对所述访问地址进行重映射,其中,所述重映射的规则与权利要求1中的地址重映射规则相同;
基于重映射后的访问地址,从存储器中获取所述目标数据。
7.一种数据存储装置,所述装置包括:
数据拼接模块,用于将干扰数据拼接到待加密数据的预设位置;
数据确定模块,用于根据拼接后的待加密数据得到待存储数据;
第一地址重映射模块,用于将所述待存储数据对应的原始地址进行重映射,得到所述待存储数据对应的目标地址;
存储模块,用于按照所述目标地址对所述待存储数据进行存储;
所述数据拼接模块,具体用于:
根据所述待加密数据的字节数以及目标数据量,确定要生成的干扰数据量;
基于确定的所述干扰数据量,生成所述干扰数据,使得拼接后的所述待加密数据的大小为2的N次方个字节对齐,其中,N为大于或等于4的整数。
8.一种数据获取装置,用于获取按照权利要求1-5任一所述的方法存储的目标数据,所述装置包括:
地址获取模块,用于获取所述目标数据的访问地址;
第二地址重映射模块,用于对所述访问地址进行重映射,其中,所述重映射的规则与权利要求1中的地址重映射规则相同;
数据获取模块,用于基于重映射后的访问地址,从存储器中获取所述目标数据。
9.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于执行上述权利要求1-5任一所述的数据存储方法或权利要求6所述的数据获取方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一所述的数据存储方法或权利要求6所述的数据获取方法。
CN202011451814.9A 2020-12-09 2020-12-09 数据存储方法、获取方法、装置、电子设备以及介质 Active CN112597071B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011451814.9A CN112597071B (zh) 2020-12-09 2020-12-09 数据存储方法、获取方法、装置、电子设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011451814.9A CN112597071B (zh) 2020-12-09 2020-12-09 数据存储方法、获取方法、装置、电子设备以及介质

Publications (2)

Publication Number Publication Date
CN112597071A CN112597071A (zh) 2021-04-02
CN112597071B true CN112597071B (zh) 2024-03-26

Family

ID=75192231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011451814.9A Active CN112597071B (zh) 2020-12-09 2020-12-09 数据存储方法、获取方法、装置、电子设备以及介质

Country Status (1)

Country Link
CN (1) CN112597071B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794668B (zh) * 2023-02-07 2023-05-09 南京芯驰半导体科技有限公司 一种芯片数据复制分发方法、装置和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615354B1 (en) * 1998-12-14 2003-09-02 Hitachi, Ltd. Information processing equipment
CN105373486A (zh) * 2014-08-13 2016-03-02 波音公司 计算系统中动态存储器地址的重新映射
CN108123800A (zh) * 2017-12-19 2018-06-05 腾讯科技(深圳)有限公司 密钥管理方法、装置、计算机设备及存储介质
CN109063501A (zh) * 2018-08-02 2018-12-21 台州市金算子知识产权服务有限公司 数据分布存储方法、装置、存储介质及电子设备
CN110598485A (zh) * 2019-08-07 2019-12-20 浙江省北大信息技术高等研究院 数据加密存储装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10326798B2 (en) * 1998-07-16 2019-06-18 Grid7, LLC System and method for secure data transmission and storage
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US20050283566A1 (en) * 2003-09-29 2005-12-22 Rockwell Automation Technologies, Inc. Self testing and securing ram system and method
EP2151763A1 (en) * 2008-07-28 2010-02-10 Nagravision S.A. Method and apparatus for obfuscating virtual to physical memory mapping
EP2290547B1 (en) * 2009-08-26 2012-12-19 Nxp B.V. Method of obfuscating a code
US8561066B2 (en) * 2010-12-08 2013-10-15 International Business Machines Corporation Simplified DMA mappings for self-virtualizing input/output device virtual functions
US8495386B2 (en) * 2011-04-05 2013-07-23 Mcafee, Inc. Encryption of memory device with wear leveling
US8806171B2 (en) * 2011-05-24 2014-08-12 Georgia Tech Research Corporation Systems and methods providing wear leveling using dynamic randomization for non-volatile memory
US11403234B2 (en) * 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615354B1 (en) * 1998-12-14 2003-09-02 Hitachi, Ltd. Information processing equipment
CN105373486A (zh) * 2014-08-13 2016-03-02 波音公司 计算系统中动态存储器地址的重新映射
CN108123800A (zh) * 2017-12-19 2018-06-05 腾讯科技(深圳)有限公司 密钥管理方法、装置、计算机设备及存储介质
CN109063501A (zh) * 2018-08-02 2018-12-21 台州市金算子知识产权服务有限公司 数据分布存储方法、装置、存储介质及电子设备
CN110598485A (zh) * 2019-08-07 2019-12-20 浙江省北大信息技术高等研究院 数据加密存储装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于AES算法的文件加密;张文锦 等;软件导刊;20170615;第16卷(第6期);第180-182页 *

Also Published As

Publication number Publication date
CN112597071A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
CN108351833B (zh) 用来压缩密码元数据以用于存储器加密的技术
CN112035857B (zh) 数据保护方法、装置、设备及介质
CN110489466B (zh) 邀请码的生成方法、装置、终端设备及存储介质
US7886363B2 (en) System and method for virtual memory and securing memory in programming languages
US10180804B1 (en) Obfuscation-enhanced memory encryption
CN108494546A (zh) 一种白盒加密方法、装置及存储介质
CN112597071B (zh) 数据存储方法、获取方法、装置、电子设备以及介质
US8923030B2 (en) On-die programmable fuses
US11632234B2 (en) Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
RU2680761C1 (ru) Безопасные преобразования данных
US11632233B2 (en) Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
US20210342486A1 (en) Encrypted data processing
US11200158B1 (en) Methods, devices, and media for hardware-supported object metadata retrieval
CN110611568B (zh) 基于多种加解密算法的动态加解密方法、装置、及设备
CN110007849A (zh) 存储器控制器以及用于对存储模块进行访问控制的方法
EP2775403B1 (en) Randomization of access to entire memory contents of a fuse array
US9501277B2 (en) Secured comparison method of two operands and corresponding device
US8086854B2 (en) Content protection information using family of quadratic multivariate polynomial maps
US20220014381A1 (en) Message authentication code (mac) generation for live migration of encrypted virtual machiness
US11928077B2 (en) Data processing circuit, data storage device including the same, and operating method thereof
CN109753821A (zh) 数据存取装置及方法
CN112100453B (zh) 一种字符串分布统计方法、系统、设备及计算机存储介质
CN109471809B (zh) 一种芯片的flash加密保护方法、装置、flash控制器及芯片
CN111737689A (zh) 数据处理方法、处理器、电子设备、存储介质及程序产品
CN111247516A (zh) 一种电路结构、系统级芯片SoC、处理数据的方法

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