CN110457924A - 存储数据保护方法及装置 - Google Patents
存储数据保护方法及装置 Download PDFInfo
- Publication number
- CN110457924A CN110457924A CN201910738814.8A CN201910738814A CN110457924A CN 110457924 A CN110457924 A CN 110457924A CN 201910738814 A CN201910738814 A CN 201910738814A CN 110457924 A CN110457924 A CN 110457924A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- decryption
- adjusted value
- storing data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种存储数据保护方法及装置。本发明根据数据的存储地址、存储数据的系统所对应的特征信息计算出加解密调整值,并在数据存储和读取的过程中分别根据该加解密调整值对待存储或需读取的数据进行加密和解密,在不同系统之间实现数据的隔离保护。加密和解密过程中,本发明通过对系统所对应的特征信息的设计,通过加密和解密计算,能够利用同一套加密解密装置实现对多个主机或多个系统的存储资源保护。每一个主机、系统的不同地址都能够获得不同的加解密调整值,得到不同的明密文对应关系,从而保护不同系统间数据的私密性,大大增强数据的安全性。
Description
技术领域
本发明涉及信息安全领域,具体而言涉及一种数据保护方法及装置。
背景技术
现在的芯片和系统中,数据存储的需求越来越大,存储的安全性需求也与日俱增。很多系统都存在多个主机系统,每个主机系统又分别有自己对应的私有存储空间。对于一个系统中存在多个主机的这种情况,存储介质出于成本考虑往往需要在多个主机之间共享。也就是说,每个主机都可以访问该存储介质,各个主机之间的区别仅仅在于对存储空间的读取过程。因此,不同系统之间数据的隔离和保护显得格外重要。
而对于单一主机,由于现在的很多主机都支持虚拟化,虚拟化后,一个主机也可以运行多个主机系统,这些主机系统拥有各自的计算资源和存储资源,互不干扰,各主机系统所运行的软件也可以独立开发,不需要考虑其他主机系统的存在。这样的系统,其应用的场景和实现的功能更丰富,也更复杂。但同时,由于实际存在多个主机或者多个主机系统同时运行,每个主机或者主机系统都需要保证其私有资源的独立性。需要限制其他主机或主机系统对其私有资源的读写。
现有技术中,虽然可以对这些私有资源采用对称加密算法进行加密存储,但是由于多个主机系统之间存在访问对方私有数据的可能,一旦这种加密方式被知晓,非法读取发生,会对多主机系统的数据保护带来严重威胁。
发明内容
本发明针对现有技术的不足,提供一种基于对称加密算法的存储数据保护方法及装置,可以大大提升多主机系统数据存储的安全性,保护多主机系统中各系统数据的安全性,防止私有数据被非法获取。本发明具体采用如下技术方案。
首先,为实现上述目的,提出一种存储数据保护方法,其在接收到任意系统的存储访问请求信号后,进行以下步骤:根据数据的存储地址、存储数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文;将所述密文存储至存储介质中对应该存储地址的空间。
可选的,上述存储数据保护方法,其中,接收到任意系统的数据读取信号时,进行以下步骤:根据数据的存储地址、读取数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文;将所述明文输出至该系统。
可选的,上述存储数据保护方法,其中,系统所对应的特征信息包括:信号所对应系统的系统身份标识和/或该系统的用户自定义数据;其中,每一个系统的系统身份标识唯一对应该系统;所述系统的用户自定义数据包括用户自己定义的公开数据、用户自己保密的秘密数据、或该系统的系统参数,如CPU个数,内存大小等。
可选的,上述存储数据保护方法,其中,所述调整值生成运算用于对非固定长度的特征信息以及存储地址的组合进行单向的加密,输出固定长度的加密结果作为加解密调整值。
可选的,上述存储数据保护方法,所述调整值生成运算包括消息摘要运算,如,SM3运算、SHAKE运算、KASUMI-f9运算、SNOW 3G运算、CRC32-IEEE 802.3运算、Michael-MIC运算、Poly1305运算、HMAC运算、MD4运算、MD5运算。或者所述调整值生成运算包括可选择包括上述消息摘要运算或对称加解密运算,如,AES运算、3DES运算、SM4运算、RC4运算、Chacha20运算、CMAC运算,中的任一或其组合;根据加解密调整值以及密钥对待存储的数据所进行的加密运算包括分组加密运算和线性运算;所述调整值生成运算输出的加解密调整值与分组加密运算分组大小相同,以便于后续进行异或等线性运算。
可选的,上述存储数据保护方法,其中,所述加密运算步骤包括:将待存储的数据与加解密调整值线性运算,获得加密过程数据;将所述加密过程数据根据密钥进行对称加密计算;将对称加密计算的结果与加解密调整值线性运算,获得所述密文。所述解密运算步骤包括:将该存储地址中的数据与加解密调整值进行加密运算过程中线性运算的逆运算,获得解密过程数据;将所述解密过程数据根据密钥进行对称解密计算;将对称解密计算的结果与加解密调整值进行加密运算过程中线性运算的逆运算,获得所述明文。这里的线性运算,是有限域中加减乘除运算,其中加法和乘法满足交换、结合和分配规律,线性计算时可逆的,例如对于线性运算函数Y = F(X, N) , 则存在对应该函数的逆函数为X= F-1(Y,N),其中,N是函数参数。
可选的,上述存储数据保护方法,其中,所述对称加密运算,包括:DES,3DES, AES,SM4等加密算法及其组合;所述解密运算为对称解密运算,包括:DES,3DES, AES, SM4等的解密算法及其组合。
可选的,上述存储数据保护方法,其中,所述密钥由易失性存储单元或非易失性存储单元生成;选择易失性存储生成所述密钥时,所述系统所对应的特征信息还可进一步包括有随机数。
一种存储数据保护装置,其连接不同系统以及至少一个存储介质,其包括:调整值生成运算模块,能够接收来自不同系统的数据的存储地址、存储数据的系统所对应的特征信息,对其进行调整值生成运算以输出加解密调整值;数据存储模块,连接所述调整值生成运算模块的输出端,用于在接收到所述任意系统的存储访问请求信号后,根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文,而后将所述密文存储至存储介质中对应该存储地址的空间;数据读取模块,连接所述调整值生成运算模块的输出端,用于在接收到任意系统的数据读取信号时,根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文,而后将所述明文输出至该系统。
可选的,上述存储数据保护装置,其中,所述调整值生成运算模块包括分别对应连接所述数据存储模块和所述数据读取模块的两个,所述两个调整值生成运算模块分别独立根据所述数据的存储地址、存储数据的系统所对应的特征信息为所述数据存储模块或所述数据读取模块提供加解密调整值。或者,所述数据存储模块和所述数据读取模块共用同一调整值生成运算模块。只要所述调整值生成运算模块之间的运算过程相同,所述调整值生成运算模块的数量不限,可根据装置性能参数要求自由选择。
有益效果
本发明根据数据的存储地址、存储数据的系统所对应的特征信息计算出加解密调整值,并在数据存储和读取的过程中分别根据该加解密调整值对待存储或需读取的数据进行加密和解密,在不同系统之间实现数据的隔离保护。加密和解密过程中,本发明通过对系统所对应的特征信息的设计,通过加密和解密计算,能够利用同一套加密解密装置实现对多个主机或多个系统的存储资源保护。每一个主机、系统的不同地址都能够获得不同密钥进行加解密,由此,能够大大增强数据的安全性。
进一步,本发明中所采用的调整值生成运算+加解密运算的方式,两个步骤可并行进行,将对存储效率的影响降至最低。其中的调整值生成运算,可将特征信息设计为包括信号所对应系统的系统身份标识和/或该系统的用户自定义数据的形式,进一步增加与其他系统的区分度,增加反向获得加密数据的难度。
此外,对于使用非易失性存储的应用,本发明在每次复位之后可以加载真随机数,这样可以在每次复位后即便加解密相同的数据,其所获得的密文结果也不同。系统当发生安全事件后,可擦除随机数密钥源,保护存储器中所有数据,使其对于攻击者来说都会变成无意义的乱码。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的存储数据保护装置的连接关系示意图;
图2是本发明一种实现方式下的存储数据保护装置中加、解密过程的示意图;
图3是本发明的存储数据保护装置中所使用的加密和解密方法的示意图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本发明中所述的“和/或”的含义指的是各自单独存在或两者同时存在的情况均包括在内。
本发明中所述的“连接”的含义可以是部件之间的直接连接也可以是部件间通过其它部件的间接连接。
图1为根据本发明的一种存储数据保护装置,其连接不同系统以及至少一个存储介质,用于在各系统读写该存储介质的过程中进行数据保护,保护各系统自身的数据无法被非法的获取,保护系统自身对应的存储单元不会被其他方错误的写入。这种对各系统数据的隔离保护包括写入过程的数据加密和读取过程的数据解密。对此,该装置包括有:
调整值生成运算模块,能够接收来自不同系统的数据的存储地址、存储数据的系统所对应的特征信息,对其进行调整值生成运算以输出加解密调整值;加解密调整值是用于加解密结构中的与数据分组大小相同的数据,其通过线性运算进入所述加解密结构中参与加解密过程。当对称加密运算选择为包括有AES运算时,其所对应的加解密调整值的数据大小采用128 bit,选择为3DES时则需要64bit数据;
数据存储模块,连接所述调整值生成运算模块的输出端,用于在接收到所述任意系统的存储访问请求信号后,根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文,而后将所述密文存储至存储介质中对应该存储地址的空间;
数据读取模块,连接所述调整值生成运算模块的输出端,用于在接收到任意系统的数据读取信号时,根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文,而后将所述明文输出至该系统。
在一种具体的方式下,该装置可连接在Soc内部总线与存储介质之间,接收Soc内部总线上由各个子系统或虚拟系统发出的数据存储信号或数据读取信号,相应的通过上述的模块进行数据加密和解密。或者,该装置还可连接在分别独立的主机与共同的存储单元之间,对各主机各系统的数据进行分别的加密解密提供隔离和保护。
由于模块中,调整值生成运算模块和数据存储模块、数据读取模块分别独立,其可设置为利用装置内部的流水线并行的执行各自的运算。这样能够有效提高加密和解密的效率,降低加密、解密过程对存取效率的影响。
进一步,该装置中还可进一步分别对所述数据存储模块和所述数据读取模块配置两个独立的调整值生成运算模块。所述两个调整值生成运算模块分别独立根据所述数据的存储地址、存储数据的系统所对应的特征信息为所述数据存储模块或所述数据读取模块提供加解密调整值。
上述装置,其加密的解密的运算过程如图2或图3所示。
对于数据存储过程:
在接收到任意系统的存储访问请求信号后,首先由调整值生成运算模块根据数据的存储地址、存储数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;
然后由数据存储模块根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文;
最后将所述密文存储至存储介质中对应该存储地址的空间。
对于数据读取过程:
在接收到任意系统的数据读取信号时,首先由调整值生成运算模块根据数据的存储地址、读取数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;
然后由数据读取模块根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文;
最后将所述明文输出至对应的系统。
上述的加密和解密过程中,图3虚线所示的随机数n、用户自定义信息均为可选项,可根据需要,选择加入所述加解密调整值运算函数的运算过程中,也可以选择不参与该运算。其解密过程与之对应,如果加密过程中增加了上述随机数n或用户自定义信息,则解密过程也需要相应的信息才能正确获得对应的调整值;如果加密过程未增加上述参数,则解密过程也无需上述参数的参与。
这里的系统,可以理解为虚拟化技术中,同一芯片上运行的不同操作系统,也可理解为一个运算装置或运算装置组合中独立运行的子系统。只要各系统之间需要保护其数据独立加密解密、无法由外界读取有效信息,均可使用本发明的技术实现。
参考图2和图3所示的上述装置,其进行加密、解密的运算过程。这种实现方式下,所述的调整值生成运算可通过调整值生成运算函数实现。调整值生成运算函数具有如下的特性:
1.确定性:对于确定的输入,应该具有确定的输出
2.单向性(不可逆性),从输入可以计算出输出,但是无法从输出推导出输入
3.为了保证安全性,应该保证混淆特性,对应于调整值生成运算函数,如果“部分改变输入值”, 前后两个输出的汉明距离为输出长度的1/3以上(也就是有1/3的以上的bit不相同),则为"30%的概率发生变化”。
调整值生成运算函数,其可以通过如下的公开算法实现:消息摘要算法,MD4,MD5,SHA-1, SHA-2, SHA-3, SM3, SHAKE, KASUMI-f9, SNOW 3G, CRC32-IEEE 802.3,Michael-MIC, Poly1305 , HMAC。或者调整值生成运算函数还可通过对称加解密运算,如,AES, 3DES, SM4,RC4,Chacha20,CMAC等实现。
具体而言,上述装置中对于数据进行加密和解密的运算过程包括:
加密时:
根据数据的存储地址、存储数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;其中,系统所对应的特征信息包括信号所对应系统的系统身份标识和/或该系统的用户自定义数据;每一个系统的系统身份标识唯一对应该系统;所述的用户自定义数据包括固定的系统参数信息,例如CPU核个数、内存大小、显示分辨率等等,其均可作为系统自定义信息的一部分
根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文;其中的加密运算步骤包括:首先,将待存储的数据与加解密调整值异或等线性运算,获得加密过程数据;然后,将所述加密过程数据根据密钥进行对称加密计算;最后,将对称加密计算的结果与加解密调整值异或等线性运算,获得所述密文;
将所述密文存储至存储介质中对应该存储地址的空间。
解密时:
根据数据的存储地址、读取数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;这里,系统所对应的特征信息与加密时的信息相同,包括系统独立对应的系统身份标识和/或该系统的用户自定义数据;
根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文;这里的解密运算与上述加密过程的加密运算对应,取其反运算。以加密过程中的线性运算采用异或实现为例,对应的其中的解密运算步骤包括:首先,将该存储地址中的数据与加解密调整值进行上述加密过程中线性运算的逆运算,例如,在加密过程中选择线性运算为异或时,在本步骤的解密过程中选择异或的逆运算以获得解密过程数据;然后,将所述解密过程数据根据密钥进行对称解密计算;最后,将对称解密计算的结果与加解密调整值进行上述加密过程中线性运算的逆运算,例如,对应的选择异或进行,获得所述明文。加密过程中的线性运算采用其他形式时,相应的解密过程也需对应采用该线性运算的逆运算,以将所述的加解密调整值对应一致的引入解密过程中,正确的进行解密,获得明文。
将所述明文输出至该系统。
上述加解密过程中的加密运算,其所用的对称加密算法可包括:DES,3DES, AES,SM4等。或者还可通过ChaCha20 , RC4, MULTI2, KASUMI, SNOW 3G, CMAC等实现类似上述对称加密的效果。解密过程与之对应选择即可实现。
以两个系统共同向一个存储介质存取数据为例。参考图2所示,其中,加解密调整值生成运算采用AES加密进行,此AES加密的key采用VID或者VID与随机数的组合,加密的输入采用访问地址进行。
加解密调整值对真正数据加解密前后分别进行异或线性计算。数据加解密运算的密钥采用一般数据加解密的对称密钥,这个密钥可能存在芯片OTP中,或者通过密钥交换协议得到,为了简单,全部各系统可以共享一个。
上述系统的存取保护可设置为一个基于加密算法AES 128bit key实现的可供两个主机系统分别访问一个存储器的私有空间的数据保护实例。
每一个主机系统要访问存储介质中自己的私有空间时,会发出访问地址(addr),访问读写类型(r/w),系统身份(VID),当写数据时,会给出数据(data),存取数据的过程是双向的。
存取过程中,需要各系统分别向存取数据保护装置发送其:
主机系统身份信息(VID):每一个主机或者主机的主机系统的身份信息
访问地址Address: 本次访问的物理地址
明文: 未加密原始数据。
该过程中,利用调整值生成运算函数实现调整值生成运算。其输入可以是以VID或VID与随机数拼接所构成的数据,其输入还包括访问地址值为tweak输入(调整值输入)。对于非易失性存储器,可在VID中加入随机数n作为输入进行与VID的拼接可为密钥值提高其安全性,调整值生成运算函数的输出是与明文和密文同等宽度的数据。调整值生成运算函数可以采用以下形式:
将输入VID,访问地址,随机数经过AES算法处理单向函数,即仅由调整值生成运算函数输出无法推出调整值生成运算函数输入。
此后,以VID或VID与随机数拼接做为密钥,访问地址为明文进行一次调整值生成运算,获得调整值生成运算函数的输出,送入XEX加解密结构,即增加采用异或(XOR)运算或其他线性运算的对称加密算法中,将用调整值生成运算函数的输出与加解密前后数据进行线性运算,变为XOR Encryption-XOR(XEX)的结构,依次进行线性运算/逆运算——对称算法加解密——线性运算/逆运算得到加解密的密文和明文结果。这里的线性运算可采用图2所示的异或运算(XOR)实现,异或运算的逆运算同样为异或(XOR)。
由此,本发明将主机身份信息(VID)加入到生成XEX异或计算来源数据的调整值生成运算函数参数中,使得每个主机系统读写相同的地址会用不同的参数进行加解密进而得到不同的明密文结果。并且,可对支持易失性存储保护的存储器,可进一步将随机数加入到调整值生成运算函数中,与VID一起进行计算,这样可以让每次上电运行调整值生成运算函数时的输入不同,而结果也不同。即便对于同样的明文,同主机样的访问地址和同一个主机系统访问,也能够保证其在每次上电后写入的实际密文都不相同,以提高安全性。此外,由于调整值生成运算函数的输入(VID和访问地址以及随机数)和输出,都由硬件完成,这样另一个系统无法复制VID,而且不同地址存储的数据即便明文相同,存储的密文也不相同,进而无法对于合法系统的数据进行正确读写,无法盗取数据。加密前后所包含的与调整值生成运算函数所输出的加解密调整值的异或过程,该异或过程作为一种基于XEX(异或加密异或)结构的加解密结构,能够适用于对不同地址数据进行加解密运算。
在一种实现方式下,上述加解密过程还可同时对调整值生成运算函数,由主机系统的用户自己对自己的数据空间加入自定义的公开和秘密信息作为用户自定义数据,输入至调整值生成运算函数,以进一步提高安全性。由于这些信息无法或者很难被另一个主机知晓,所以就更难以复制破解调整值生成运算函数。
装置具体计算过程如下:
对称加密密钥KEY1采用: 0x000102030405060708090a0b0c0e0f
VID根据主机系统身份信息产生: 主机系统1是 0x00000000000000001 ,主机系统2是0x0000000000002
主机系统1,其需要写入存储明文数据0x00000000000000000000到地址0x0(访问地址)
加解密调整值生成函数采用AES进行,用ECB模式采用地址做源数据,系统VID做AESkey进行计算,计算输入0x00000000000000000000000000000000
系统1的VID为 0x00000000000000000000000000000001
AES加密输出(图中C点)通过调整值生成运算获得加解密调整值为0x0545aad56da2a97c3663d1432a3d1c84
基于上述结果进行加密运算,运算过程中:
第一级XOR输出(图中A点): 0x0545aad56da2a97c3663d1432a3d1c84
KEY1密钥:0x000102030405060708090a0b0c0d0e0f
AES加密输出(图中B点) : 0x2c4b54ab357a2214a9713661710ea957
第二级XOR输出密文: 0x290efe7e58d88b689f12e7225b33b5d3
将该密文存储至对应的地址中。
对上述存储的密文进行解密,其过程包括计算:
第一级XOR输出(图中D点): 0x2c4b54ab357a2214a9713661710ea957
AES解密输出(图中E点):0x0545aad56da2a97c3663d1432a3d1c84
第二级XOR输出(解密后明文):0x00000000000000000000000000000000。
对比上述过程,如果需要写入明文数据0x00000000000000000000到地址0x1000,则其具体计算过程如下:
加解密调整值生成函数同样采用AES,其输入地址 0x00000000000000000000000000010000
输入其VID 0x00000000000000000000000000000001
AES加密输出(图中C点):0x830edb1c166cb40d4a7e270dc8f8cad4
第一级XOR输出(图中A点):0x830edb1c166cb40d4a7e270dc8f8cad4
KEY1密钥: 0x000102030405060708090a0b0c0d0e0f
AES加密输出数据(图中B点):0x22f3f125342dd2aede8472804b06c180a
第二级XOR输出:0xa1fd2a39224166a394fa558d83fe0b54
第一级XOR输出: 0x22f3f125342dd2aede8472804b06c180a
AES解密输出: 0x830edb1c166cb40d4a7e270dc8f8cad4
第二级XOR输出: 0x00000000000000000000000000000000。
对于主机系统2,如果其需要写入数据0x00000000000000000000到访问地址0x0,则计算过程中:
加解密调整值生成函数的输入地址0x00000000000000000000000000000000
输入其VID 0x00000000000000000000000000000002
AES加密输出(图中C点):0x26d50f485a30408d5af47a5736292450
第一级XOR输出(图中A点): 0x26d50f485a30408d5af47a5736292450
密钥:0x000102030405060708090a0b0c0d0e0f
AES加密输出数据(图中B点):0x3cecd334b27774ca0c0b0229bb32d1d2
第二级XOR输出: 0x1a39dc7ce847344756ff787e8d1bf582。
解密过程中:
第一级XOR输出(图中D点): 0x3cecd334b27774ca0c0b0229bb32d1d2
AES解密输出(图中E点):0x26d50f485a30408d5af47a5736292450
第二级XOR输出: 0x00000000000000000000000000000000
访问地址0x1000
加解密调整值生成函数输入地址0x00000000000000000000000000010000
输入其VID 0x00000000000000000000000000000002
AES加密输出(图中C点):0x325689ac7b1295d1967b77dbf327451c
第一级XOR输出(图中A点):0x325689ac7b1295d1967b77dbf327451c
密钥:0x000102030405060708090a0b0c0d0e0f
AES加密输出数据(图中B点):0xdaa49593527c8c13f2d211dac8a2a620
第二级XOR输出最终密文: 0xe8f21c3f296e19c264a966013b85e33c
解密过程
第一级XOR输出(图中D点): 0xdaa49593527c8c13f2d211dac8a2a620
AES解密输出(图中E点):0x325689ac7b1295d1967b77dbf327451c
第二级XOR输出解密结果: 0x00000000000000000000000000000000
如果主机系统1写入0x000000000000000到0x000地址,这时主机系统2尝试从0x0000地址取出数据,那么解密过程如下:
加解密调整值生成函数输入地址0x00000000000000000000000000000000
输入其VID 0x00000000000000000000000000000002
AES加密输出(图中C点):0x26d50f485a30408d5af47a5736292450
第一级XOR输出(图中D点): 0x0fdbf13602e8cbe5c5e69d756d1a9183
AES解密输出(图中E点):0x019ed9c9262e4b44e6027c8e8da0e8b7
第二级XOR输出解密结果: 0x274bd6817c1e0bc9bcf606d9bb89cce7。
也就是说,如果系统2希望获得系统1的数据,由于其不具备与系统1一致的VID以及自定义数据,系统2所解密得到的数据将是0x274bd6817c1e0bc9bcf606d9bb89cce7,与原始数据大相径庭。这就是将主机系统ID加入到调整值生成运算函数的作用。
上述的计算过程,通过对比还可以看出,即便是相同的原始数据,写入到不同地址,真正写入的密文数据也大相径庭,这就是将访问地址加入到调整值生成运算函数(tweak计算)的作用。
为了说明加入随机数的情景,我们再对上面的例子做一个扩展:
当引入随机数时,加解密调整值生成函数的输入key= (rand || VID),假设两次上电过程,(rand || VID)分别是(假设rand取112bit,主机系统ID 16bit,进行简单拼接):
第一次上电后KEY2: 0xaaaa aaaaaaaaaaaaaaaaaaaaaaaa 0001
那么对于写入0x000000000000000到0x000地址,计算过程如下:
加解密调整值生成函数输入地址0x00000000000000000000000000000000
输入KEY2(VID) 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaa0001
AES加密输出(图中C点) 0x67caa41ec326d6eddf86684ee468eca8
第一级XOR输出(图中A点): 0x67caa41ec326d6eddf86684ee468eca8
KEY1密钥:0x000102030405060708090a0b0c0d0e0f
AES加密输出(图中B点) : 0x826a1f94659ef1585ec13d08ae01c70e
第二级XOR输出密文: 0xe5a0bb8aa6b827b5814755464a692ba6
第二次上电后KEY2: 0x5555 5555 5555 5555 5555 5555 5555 0001
加解密调整值生成函数输入地址0x00000000000000000000000000000000
输入KEY2(VID) 0x55555555555555555555555555550001
AES加密输出(图中C点) 0xbdaebcf22a01954e4d9074040fb7c397
第一级XOR输出(图中A点): 0xbdaebcf22a01954e4d9074040fb7c397
KEY1密钥:0x000102030405060708090a0b0c0d0e0f
AES加密输出(图中B点) : 0xfa1d72de6dcd99757aa19ebcf7bff807
第二级XOR输出密文: 0x47b3ce2c47cc0c3b3731eab8f8083b90。
也就是说,两次上电之后,在同样条件下,唯有两次随机数据不同,加密密文同样会大相径庭。
不过上述随机数的方式仅适用于于易失性存储。对非易失性存储,调整值生成运算函数,不能引入随机数否则其加密或解密过程将不可逆,无法正确读取或存入正确数据。而对于易失性存储器,每次掉电存储信息都会失效,所以可以引入随机数,例如可以将随机数与主机系统身份信息(VID) 进行拼接后(RAND NUMBER || VID),作为调整值生成运算函数运算所用的key,也可以用另一个随机数做AES数据加解密的对称加密密钥key1。这样可以使得每次上电后即便相同的明文,相同的主机系统身份信息和相同的地址,加密结果仍然不相同。也就是说,通过按照需要选择上述对随机数的两种处理方式,本发明可以支持易失性存储的保护,也可以支持非易失性存储的保护。
上述方法在实际实现过程中,可以根据安全性要求和访问性能要求,选择不同的对称加密算法和调整值生成运算函数组合,例如对于较低安全性的存储保护,可以选择轻量级的对称加密算法,例如总统算法,调整值生成运算函数甚至可以选择简单的代换,置换、填补、压缩等算法完成输出,只要调整值生成运算函数的输出无法推出输入数据即可。对于高安全等级的存储,例如采用诸如AES/3DES级别的算法进行保护。以满足各种不同存储保护的安全需求。
本发明的优势在于:
对于多个主机系统只用一套硬件保护逻辑资源
对于每一个主机系统的不同地址都会用不同生成密钥进行加解密,安全性大大增强。
采用调整值生成运算函数输出加/解密的调整值,对输入数据进线性运算/逆运算+加解密+再线性运算/逆运算的操作。调整值生成运算和后续的操作可并行执行,对于存储系统读写可并行,不会影响读写效率和性能。
对于数据保护不增加数据存储空间开销
对于非易失性存储每次复位之后可以加载真随机数,这样可以在每次复位后即便加解密不同的数据,密文结果也不同
用户可以对调整值生成运算函数输入加入自定义数据,进一步增加与其他主机的输入区别性。
系统当发生安全事件后,擦出随机数密钥源,保护存储器中所有数据无法被盗取。
以上仅为本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些均属于本发明的保护范围。
Claims (9)
1.一种存储数据保护方法,其特征在于,接收到任意系统的存储访问请求信号后,进行以下步骤:
根据数据的存储地址、存储数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;
根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文;
将所述密文存储至存储介质中对应该存储地址的空间。
2.如权利要求1所述的存储数据保护方法,其特征在于,接收到任意系统的数据读取信号时,进行以下步骤:
根据数据的存储地址、读取数据的系统所对应的特征信息进行调整值生成运算获得加解密调整值;
根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文;
将所述明文输出至该系统。
3.如权利要求2所述的存储数据保护方法,其特征在于,系统所对应的特征信息包括:信号所对应系统的系统身份标识和/或该系统的用户自定义数据;其中,每一个系统的系统身份标识唯一对应该系统;所述系统的用户自定义数据包括用户自己定义的公开数据、用户自己保密的秘密数据、或该系统的系统参数。
4.如权利要求2所述的存储数据保护方法,其特征在于,所述调整值生成运算用于对非固定长度的特征信息以及存储地址的组合进行单向运算,输出加密运算所需长度的加密结果作为加解密调整值。
5.如权利要求2所述的存储数据保护方法,其特征在于,所述调整值生成运算包括消息摘要运算、对称加解密运算中的任一或组合;
根据加解密调整值以及密钥对待存储的数据所进行的加密运算包括分组加密运算和线性运算;
所述调整值生成运算输出的加解密调整值与分组加密运算分组大小相同。
6.如权利要求2所述的存储数据保护方法,其特征在于,所述加密运算步骤包括:
将待存储的数据与加解密调整值线性计算,获得加密过程数据;
将所述加密过程数据根据密钥进行对称加密计算;
将对称加密计算的结果与加解密调整值线性运算,获得所述密文
所述解密运算步骤包括:
将该存储地址中的数据与加解密调整值进行线性运算的逆运算,获得解密过程数据;
将所述解密过程数据根据密钥进行对称解密计算;
将对称解密计算的结果与加解密调整值进行线性运算的逆运算,获得所述明文。
7.如权利要求5所述的存储数据保护方法,其特征在于,所述对称加密运算,包括但不限于:DES,3DES, AES, SM4的加密算法及其组合;
所述解密运算为对称解密运算,包括:DES,3DES, AES, SM4的解密算法及其组合。
8.一种存储数据保护装置,其特征在于,连接不同系统以及至少一个存储介质,其包括:
调整值生成运算模块,能够接收来自不同系统的数据的存储地址、存储数据的系统所对应的特征信息,对其进行调整值生成运算以输出加解密调整值;
数据存储模块,连接所述调整值生成运算模块的输出端,用于在接收到所述任意系统的存储访问请求信号后,根据加解密调整值以及密钥对待存储的数据进行加密运算获得密文,而后将所述密文存储至存储介质中对应该存储地址的空间;
数据读取模块,连接所述调整值生成运算模块的输出端,用于在接收到任意系统的数据读取信号时,根据加解密调整值以及密钥对该存储地址中的数据进行解密运算获得明文,而后将所述明文输出至该系统。
9.如权利要求8所述的存储数据保护装置,其特征在于,所述调整值生成运算模块包括分别对应连接所述数据存储模块和所述数据读取模块的两个,所述两个调整值生成运算模块分别独立根据所述数据的存储地址、存储数据的系统所对应的特征信息为所述数据存储模块或所述数据读取模块提供加解密调整值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738814.8A CN110457924A (zh) | 2019-08-12 | 2019-08-12 | 存储数据保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738814.8A CN110457924A (zh) | 2019-08-12 | 2019-08-12 | 存储数据保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110457924A true CN110457924A (zh) | 2019-11-15 |
Family
ID=68485897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910738814.8A Pending CN110457924A (zh) | 2019-08-12 | 2019-08-12 | 存储数据保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457924A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449311A (zh) * | 2020-03-25 | 2021-09-28 | 瑞昱半导体股份有限公司 | 数据解密系统及数据解密方法 |
CN113642051A (zh) * | 2021-10-13 | 2021-11-12 | 广州匠芯创科技有限公司 | Spi存储设备的加密数据读写方法及嵌入式处理器芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587524A (zh) * | 2009-06-23 | 2009-11-25 | 上海北大方正科技电脑系统有限公司 | 一种基于虚拟系统的数据存储设备加密方法 |
CN102103551A (zh) * | 2009-12-22 | 2011-06-22 | 中国长城计算机深圳股份有限公司 | 一种存储设备数据的加解密方法、系统及虚拟机监控器 |
CN103107994A (zh) * | 2013-02-06 | 2013-05-15 | 中电长城网际系统应用有限公司 | 一种虚拟化环境数据安全隔离方法和系统 |
CN106599735A (zh) * | 2017-02-13 | 2017-04-26 | 珠海格力电器股份有限公司 | 数据保护装置、方法以及存储控制器 |
US20180241556A1 (en) * | 2010-04-07 | 2018-08-23 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
-
2019
- 2019-08-12 CN CN201910738814.8A patent/CN110457924A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587524A (zh) * | 2009-06-23 | 2009-11-25 | 上海北大方正科技电脑系统有限公司 | 一种基于虚拟系统的数据存储设备加密方法 |
CN102103551A (zh) * | 2009-12-22 | 2011-06-22 | 中国长城计算机深圳股份有限公司 | 一种存储设备数据的加解密方法、系统及虚拟机监控器 |
US20180241556A1 (en) * | 2010-04-07 | 2018-08-23 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
CN103107994A (zh) * | 2013-02-06 | 2013-05-15 | 中电长城网际系统应用有限公司 | 一种虚拟化环境数据安全隔离方法和系统 |
CN106599735A (zh) * | 2017-02-13 | 2017-04-26 | 珠海格力电器股份有限公司 | 数据保护装置、方法以及存储控制器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449311A (zh) * | 2020-03-25 | 2021-09-28 | 瑞昱半导体股份有限公司 | 数据解密系统及数据解密方法 |
CN113642051A (zh) * | 2021-10-13 | 2021-11-12 | 广州匠芯创科技有限公司 | Spi存储设备的加密数据读写方法及嵌入式处理器芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2329622B1 (en) | Message authentication code pre-computation with applications to secure memory | |
US4203166A (en) | Cryptographic file security for multiple domain networks | |
US9240883B2 (en) | Multi-key cryptography for encrypting file system acceleration | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
US8767959B2 (en) | Block encryption | |
US8880879B2 (en) | Accelerated cryptography with an encryption attribute | |
CN107908574B (zh) | 固态盘数据存储的安全保护方法 | |
CN1841255B (zh) | 保护数据存储的机密性与完整性的方法和装置 | |
US20210058237A1 (en) | Re-encryption following an otp update event | |
CN102355350B (zh) | 一种用于移动智能终端的文件加密方法和系统 | |
CN102355352B (zh) | 一种数据机密性和完整性保护方法 | |
CN102567688B (zh) | 一种安卓操作系统上的文件保密系统及其保密方法 | |
CN109086612B (zh) | 一种基于硬件实现的嵌入式系统动态数据保护方法 | |
US20120185699A1 (en) | Space-efficient encryption with multi-block binding | |
CN110380854A (zh) | 针对多个系统的根密钥生成、隔离方法及根密钥模块 | |
CN104901810A (zh) | 一种基于国产密码算法的数据加密存储的方法 | |
CN105678173A (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN108574567A (zh) | 隐私文件保护和加密密钥管理系统及方法、信息处理终端 | |
US9602281B2 (en) | Parallelizable cipher construction | |
CN107911221B (zh) | 固态盘数据安全存储的密钥管理方法 | |
CN109766731A (zh) | 基于固态硬盘的加密数据处理方法、装置和计算机设备 | |
CN110457924A (zh) | 存储数据保护方法及装置 | |
US20100124328A1 (en) | Extensive ciphertext feedback | |
CN105357004A (zh) | 一种医疗隐私数据自加密及解密的方法 | |
US9038194B2 (en) | Client-side encryption in a distributed environment |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |
|
RJ01 | Rejection of invention patent application after publication |