CN104298937B - 用于存储器地址加密的装置和方法 - Google Patents
用于存储器地址加密的装置和方法 Download PDFInfo
- Publication number
- CN104298937B CN104298937B CN201410334614.3A CN201410334614A CN104298937B CN 104298937 B CN104298937 B CN 104298937B CN 201410334614 A CN201410334614 A CN 201410334614A CN 104298937 B CN104298937 B CN 104298937B
- Authority
- CN
- China
- Prior art keywords
- address
- encrypted
- input store
- encryption
- store address
- 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
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及用于存储器地址加密的装置和方法,具体提供了一种用于对输入存储器地址进行加密以获得加密存储器地址的装置。该装置包括用于接收作为存储器的地址的输入存储器地址的输入接口。此外,该装置包括用于根据加密密钥对输入存储器地址进行加密以获得加密存储器地址的加密模块。该加密模块被配置为通过应用将输入存储器地址映射至加密存储器地址的映射来对输入存储器地址进行加密,其中该加密模块被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射,以使得该映射是双射的。
Description
技术领域
本发明涉及加密,尤其涉及一种用于存储器地址加密的装置和方法。
背景技术
存储器和地址加密变得越来越重要。
在智能卡或类似安全设备上的控制器中,存储器加密特别是地址加密的实施受到服务器功率、面积和时序约束的影响。
如果针对存储器和地址加密提供了有所改进的概念,这将会是非常有利的。
发明内容
根据一个实施例,提供了一种用于对输入存储器地址进行加密以获得加密存储器地址的装置。该装置包括用于接收作为存储器的地址的输入存储器地址的输入接口。此外,该装置包括用于根据加密密钥对输入存储器地址进行加密以获得加密存储器地址的加密模块。该加密模块被配置为通过应用将输入存储器地址映射至加密存储器地址的映射来对输入存储器地址进行加密,其中该加密模块被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射以使得该映射是双射的。
根据另一个实施例,提供了一种用于对输入存储器地址进行加密以获得加密存储器地址的装置。该装置包括用于接收作为存储器的地址的输入存储器地址的输入接口。此外,该装置包括用于将输入存储器地址划分为多个输入存储器地址段的分段模块。此外,该装置包括用于根据多个加密子密钥之一对多个输入存储器地址段的每个输入存储器地址段进行加密的加密模块。该加密模块被配置为通过应用将所述输入存储器地址段映射到加密存储器地址段的映射而对所述输入存储器地址段进行加密,所述加密存储器地址段是多个加密存储器地址段之一,其中该加密模块被配置为通过使用多个加密子密钥之一和多个除数之一进行乘法和模数运算而应用该映射以使得该映射是双射的。多个加密存储器地址段中的加密存储器地址段共同形成加密存储器地址。
根据另外的实施例,提供了一种装置,其包括存储器,用于对存储在该存储器中的存储器地址处的数据进行处理的CPU,以及用于对存储器的输入存储器地址进行加密以获得加密存储器地址的地址加密单元。该地址加密单元包括用于接收输入存储器地址的输入接口,以及用于根据加密密钥对输入存储器地址进行加密以获得加密存储器地址的加密模块。该加密模块被配置为通过应用将输入存储器地址映射至加密存储器地址的映射来对输入存储器地址进行加密。该加密模块被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射以使得该映射是双射的。
此外,提供了根据另一个实施例的装置。该装置包括:用于提供原始逻辑地址的CPU;用于根据原始逻辑地址生成变换逻辑地址的MMU;用于对变换逻辑地址进行加密以获得物理地址的地址加密单元,该地址加密单元包括用于接收变换逻辑地址的输入接口,并且进一步包括用于根据加密密钥对变换逻辑地址进行加密以获得物理地址的加密模块,其中该加密模块被配置为通过应用将该变换逻辑地址映射至物理地址的映射而对该变换逻辑地址进行加密,其中该加密模块被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射,以使得该映射是双射的;用于对第一明文数据进行加密以获得第一密文数据以及用于对第二密文数据进行解密以获得第二明文数据的数据加密-解密单元;用于存储加密密钥的密钥存储;和存储器,其被配置为在物理地址存储该第一密文数据,或者将存储在物理地址的第二密文数据提供至数据加密-解密模块。
根据另一个实施例,提供了一种用于对输入存储器地址进行加密以获得加密存储器地址的方法。该方法包括:
-接收作为存储器的地址的输入存储器地址;以及
-根据加密密钥对输入存储器地址进行加密以获得加密存储器地址。
对输入存储器地址进行加密包括通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用将输入存储器地址映射至加密存储器地址的映射以使得该映射是双射的。
根据另外的实施例,提供了一种用于对输入存储器地址进行加密以获得加密存储器地址的方法。该方法包括:
-接收作为存储器的地址的输入存储器地址;
-将输入存储器地址划分为多个输入存储器地址段;并且
-根据多个加密子密钥之一对多个输入存储器地址段的每个输入存储器地址段进行加密以获得加密存储器地址,其中对所述输入存储器地址段进行加密包括通过使用多个加密子密钥之一和多个除数之一进行乘法和模数运算而应用将所述输入存储器地址段映射到多个加密存储器地址段中的加密存储器地址段的映射,以使得该映射是双射的。
多个加密存储器地址段中的加密存储器地址段共同形成加密存储器地址。
在使用附图对本发明的实施例进行详细描述之前,所要指出的是,相同或功能等同的部件在图中被给予相同的附图标记,并且省去对被提供以相同附图标记的部件的重复描述。因此,为具有相同附图标记的部件所提供的描述是可互换的。
附图说明
图1图示了根据一个实施例的用于对输入存储器地址进行加密以获得加密存储器地址的装置,
图2图示了根据一个实施例的加密模块120,
图3图示了根据一个实施例的用于对输入存储器地址进行加密以获得加密存储器地址的装置,
图4图示了根据一个实施例的包括存储器410、CPU 420和地址加密单元430的装置,
图5图示了用于地址加密的方法,
图6图示了用于地址加密的另一种方法,
图7图示了用于地址加密的另一种方法,
图8图示了根据另一个实施例的装置,其包括CPU、MMU、地址加密单元、地址加密-解密单元、密钥存储和存储器,并且
图9图示了合并的数据加密和地址加密的效果。
具体实施方式
在对优选实施例进行描述之前,提供了地址加密的一些推理,这有助于提供对优选实施例的更好的理解。
地址加密可以被实现为双射映射f,例如从普通地址a到加密地址a’的置换。该映射由密钥k所控制:
a’=fk(a)
出于诸如生产测试之类的测试的目的,重要的可能是拥有密钥函数a’=fk(a),针对其存在被称作k0的标识密钥,其具有产生标识映射的属性,即a=fk0(a)。这意味着加扰被关闭。
由于若干原因,这样的函数的实施在微控制器架构中会是关键所在。例如,从控制器到存储器的地址路径(见附图:从MMU到存储器的路径)中的任何延迟都会导致系统性能的退化。如果实施需要大量门延迟,则针对存储器访问而需要附加的时钟周期。此外,复杂的设计带来了高功耗,这是因为存储器寻址是非常频繁的。
进行在加密上并不困难的地址加密通常就足够了,但是提供了充分的加扰而使得后续攻击更为困难。例如,地址加扰使得数据块的标识更为困难,数据块的标识对于数据的存储器加密的密码分析而言是必需的。其次,地址加扰使得存储器块的标识对于后续故障注入攻击而言明显更为困难。
地址加密可以由如图5所示的第一方法来实现,其中进行地址与密钥的异或:
fk(a)=a⊕k
该方法的优势是最少的门计数,最小的性能影响,其原因在于最小的电路深度(仅增加了1个门延迟),并且存在标识密钥:针对k=0,加扰被无效。然而,这样的方法仅实现了线性映射,例如,这样的方法根本没有加密强度。该方法以逐个比特为基础进行工作,即没有比特的混合。因此,其能够被反向工程并且轻易破解。这导致了低端的安全性。
对图5的方法进行修改,可以实施相关的简单加扰。
可替换地,地址加密可以通过如图6所示的第二方法来实现,其中分组密码BC被用于加密:
fk(a)=BC(key=k,a)
这样的方法的优势在于,在使用强密码的情况下的高加密强度。缺陷是高的门计数、严重的性能退化,这是因为分组密码是基于循环的,并且在加密上困难的分组密码需要高的循环数,例如,针对DES的16或者针对AES-128的10。因此,针对存储器的关键访问时间以巨大的因数被增加,这是因为在寻址阶段需要若干附加的时钟周期,并且通常没有(已知的)标识密钥。该标识映射必须使用多路复用器通过附加的旁通来实现。
图6所示的方法可以利用明显有所减少的循环数来实施,例如仅1或2次循环。在这种情况下,加密强度几乎完全丧失。因此,高硬件成本的投入根本没有获得回报。
可替换地,地址加密可以由如图7所示的第三方法来实现,其中使用了一组替代框(S框)。假设
S(a)=(S1(a1),S2(a2),…Sn(aj))
是j个m至m的S框,其中每个S框映射地址空间的非连续子范围。随后,假设
fk(a)=S(a)⊕k
或者
fk(a)=L(S(a),k)
其中L为一些线性运算。
这基本上对应于经典分组密码(参见b)的一次循环,其具有一个S框层、一个密钥添加步骤,以及可选地一些线性扩散层。
该方法的优势在于,其能够被构建为使得存在标识密钥。然而,其缺陷在于,即使如4×4的S框的小型S框也已经具有了高的门计数和高的电路深度。它们通常贡献了相当数量的门延迟,这使得存储器访问的性能有所下降。作为结果,在寻址阶段可能需要额外的时钟周期。此外,这样的方法仅具有中等的加密强度。图7所示的方法缺乏加密强度,并且存储器访问时间的退化类似于根据图6的第二方法的结果。
优选实施例避免了图5、6和7所示的方法的缺陷。
图1图示了根据一个实施例的用于对存储器地址进行加密以获得加密存储器地址的装置。
该装置包括用于接收作为存储器的地址的输入存储器地址的输入接口110。
此外,该装置包括加密模块120,其用于对根据加密密钥121对输入存储器地址进行加密以获得加密存储器地址。
加密模块120被配置为通过应用映射而对输入存储器地址进行加密,该映射将输入存储器地址映射至加密存储器地址。
加密模块120被配置为通过使用加密密钥121和模数运算的除数122进行乘法和模数运算而应用该映射,以使得该映射是双射的。
根据一个实施例,该输入存储器地址、加密存储器地址、加密密钥121以及模数运算的除数122均指示多项式。在这样的实施例中,除数122可以指示作为不可约多项式的多项式。
在一些实施例中,除数122可以指示作为不可约多项式的多项式,其中该不可约多项式的所有系数均为有理数。关于其中所有系数均为有理数的多项式,多项式例如可以在其无法被表示为两个或更多其中所有系数都为有理数的多项式的乘积的情况下被认为是不可约的,以使得所述两个或更多其中所有系数都为有理数的多项式具有比原始多项式更低的次数。
然而,在一些实施例中,除数122可以指示作为不可约多项式的多项式,并且其中该不可约多项式的一个、一些或全部系数并非是有理数。
图2图示了根据一个特定实施例的加密模块120,其中加密模块120被配置为通过采用以下公式而应用映射:
a’=a k(mod p)
在这样的实施例中,a指示输入存储器地址,a’指示加密存储器地址,k指示加密密钥,而p则指示除数。
例如,作为简化示例,考虑:
a=1001;k=1101;p=101
随后,比特序列中的比特可以表示多项式在Galois域GF(2)上的系数:
多项式(a)=1·x3+0·x2+0·x1+1·x0=x3+1
多项式(k)=1·x3+1·x2+0·x1+1·x0=x3+x2+1
多项式(p)=1·x2+0·x1+1·x0=x2+1
这里,x2+1是GF(2)上的不可约多项式。
与之相比,多项式x2是可约多项式,因为x2=x·x。
例如,一些实施例可以应用一般规则,其中比特序列:
bn-1bn-2bn-3...b2b1b0
指示多项式:
bn-1xn-1+bn-2xn-2+bn-3xn-3+...+b2x2+b1x+b0
此外,应当注意的是,根据实施例,例如,
a k(mod p)
意味着
(a k)mod p;
(例如,首先:a和k的乘法;随后通过p对结果进行模数除法)。
根据特定实施例,地址a和密钥k被认为是多项式环的要素,例如,扩展域Fq[x]/(p),其中p是一些不可约多项式。
在特定实施例中,选择特征q=2,而使得地址比特范围能够被分配至域要素。
因此,地址加密可以被写为模乘法。
a’=a k(mod p)
根据其它实施例,采用辅助密钥b,而使得:
a’=a k(mod p)+b
这里,“+”表示域中的加法,例如针对q=2的异或(⊕)。
对于例如预先选择的固定数值k≠0和不可约的p而言,该映射是双射的并且生成原始地址数值的集合的置换。由于该属性,多项式环运算可以被用作地址加密。
与现有技术相比,如这里所提供的用于有效地址加扰的实施例是特别有利的。
例如,一般而言,能够实施域乘法而使得其仅以少量门延迟而执行。这意味着其能够在地址时钟周期内实时(one-the-fly)执行(不需要附加时钟周期)。对于稀疏多项式p而言,电路的门延迟非常小。
此外,与现有技术的解决方案相比,面积和功耗更小。
此外,与以上所描述的“Xor”现有技术方法以及以上所描述的“S框层”现有技术方法相比,安全性有所提升,但是面积和功率成本明显有所降低。妥善选择的多项式将生成地址比特的高度非线性混合。
此外,根据实施例,可能存在自然的标识密钥k=1,其对于生产测试目的而言是有用的。因此,根据一些实施例,该装置可被配置为选择标识密钥作为加密密钥k,以使得
a k(mod p)=a mod p
此外,根据实施例,零密钥产生a’=0。这能够被用作安全措施:如果检测到攻击,该密钥能够被清除为全0。在这种情况下,所有访问都被映射至地址0(或者在采用了仿射变量的情况下的固定地址b)。有利的是,该地址仅包含虚拟数据,而使得攻击方将仅能够在其上读取到虚拟数据。因此,根据一些实施例,该装置被配置为选择零密钥作为加密密钥k,而使得
a k(mod p)=0
根据一些实施例,其中加密模块120被配置为通过采用如下公式而应用映射
a’=a k(mod p)+b
其中a指示输入存储器地址,其中a’指示加密存储器地址,其中k指示加密密钥,其中p指示除数,并且其中b指示辅助密钥。
在一些实施例中,该装置可被配置为选择标识密钥作为加密密钥k,而使得
a k(mod p)+b=a mod p+b
根据一些实施例,该装置可被配置为选择零密钥作为加密密钥k,而使得a k(modp)+b=b。
一些实施例提供了以上所描述概念具有分段地址范围的版本。所提出的地址加扰方法还能够被应用于分段地址空间。地址粒度可以由控制器的存储器层级所引入。例如,非易失性存储器包含数量为Ns的多个分段(它们可以被一次性擦除),其中每个分段包含数量为Nb的多个块(它们可以被一次性编程),每个块包含数量为Nw的多个字(由处理器的字宽度所确定),每个字包含数量为Nb的多个字节。当应用加扰时,在实践中仅可能将数据单元与相同父单元内的另一个数据单元进行交换。例如,仅相同分段中的块可以被交换,仅相同块中的字可以被交换,等等。
相应地,图3图示了根据另一个实施例的用于对输入存储器地址进行加密以获得加密存储器地址的装置。
该装置包括用于接收作为存储器的地址的输入存储器地址的输入接口310。
此外,该装置包括分段模块315,其用于将输入存储器地址划分为多个输入存储器地址段。
此外,该装置包括加密模块320,其用于对根据多个加密子密钥之一对多个输入存储器地址段中的每个输入存储器地址段进行加密。该加密模块320被配置为通过应用映射而对所述输入存储器地址段进行加密,该映射将所述输入存储器地址段映射至加密存储器地址段,所述加密存储器地址段是多个加密存储器地址段之一。该加密模块320被配置为通过使用多个加密子密钥之一和多个除数之一进行乘法和模数运算而应用该映射,以使得该映射是双射的。
多个加密存储器地址段中的加密存储器地址段共同形成加密存储器地址。
在一个实施例中,多个输入存储器地址段中的每一个指示第一多项式群组中的多项式,其中多个加密存储器地址段中的每一个指示第二多项式群组中的多项式,其中多个加密子密钥中的每一个指示第三多项式,并且其中多个除数中的每一个指示作为不可约多项式的第四多项式。
根据一个实施例,加密模块320被配置为通过应用所述映射对每个输入存储器地址段进行加密,所述映射通过采用如下公式而将所述输入存储器地址段映射至多个加密存储器地址段之一
ai’=ai ki(mod pi)
其中i指示所述输入存储器地址段的索引,ai指示所述输入存储器地址段,ai’指示所述多个加密存储器地址段之一,其中ki指示加密子密钥之一,并且其中pi指示除数之一。
在特定实施例中,(输入)地址例如根据系统的存储器层级而被划分为分段a=(a1,a2,…,an),子密钥k1,k2,…,kn得自于密钥k。例如,子密钥的得出可以是将密钥划分为比特范围k=(k1,k2,…,kn)。可以使用不同的缩减多项式p1,p2,…,pn。随后,例如可以通过下式而实现整体存储器系统的加扰操作的映射:
a1’=a1k1(mod p1)
a2’=a2k2(mod p2)
…
an’=an kn(mod pn)
由于所有层级水平上的运算能够并行进行,所以对于性能而言没有额外的损失。
根据一个实施例,该装置可被配置为针对输入存储器地址段中的每个输入存储器地址段ai选择标识密钥作为加密密钥ki,以使得ai ki(mod pi)=ai(mod pi)。
在一个实施例中,该装置可被配置为针对输入存储器地址段中的每个输入存储器地址段ai选择零密钥作为加密密钥ki,以使得ai ki(mod pi)=0。
根据一个实施例,加密模块320被配置为通过应用所述映射而对每个输入存储器地址段进行加密,所述映射通过采用如下公式而将所述输入存储器地址段映射至多个加密存储器地址段之一
ai’=ai ki(mod pi)+bi
其中i指示所述输入存储器地址段的索引,ai指示所述输入存储器地址段,ai’指示所述多个加密存储器地址段之一,其中ki指示加密子密钥之一,其中pi指示除数之一,并且其中bi指示多个辅助密钥之一。
在一个实施例中,该装置可被配置为针对输入存储器地址段中的每个输入存储器地址段ai选择标识密钥作为加密密钥ki,以使得
ai ki(mod pi)+bi=ai(mod pi)+bi
根据一个实施例,该装置可被配置为针对输入存储器地址段中的每个输入存储器地址段ai选择零密钥作为加密密钥ki,以使得
ai ki(mod pi)+bi=bi
图4图示了根据一个实施例的装置400,其包括存储器410,用于对存储在该存储器中的存储器地址处的数据进行处理的CPU 420,以及用于对存储器的输入存储器地址进行加密以获得加密存储器地址的地址加密单元430。
该地址加密单元430包括用于接收输入存储器地址的输入接口431,以及用于根据加密密钥对输入存储器地址进行加密以获得加密存储器地址的加密模块432。
该加密模块432被配置为通过应用将输入存储器地址映射至加密存储器地址的映射来对输入存储器地址进行加密。此外,该加密模块432被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射,以使得该映射是双射的。
在一些实施例中,地址加密单元430可以是用于根据以上所描述的实施例之一而对输入存储器地址进行加密以获得加密存储器地址的装置。
图8图示了可以在其中采用地址加密的架构,该地址加密例如根据以上所描述实施例之一的地址加密。
图8图示了CPU 810、存储器820、地址加密单元830、数据加密-解密单元840、密钥存储850以及MMU(存储管理单元)860。
CPU需要在存储器820中存储数据。此外,CPU 810需要从存储器820加载数据。
为了从CPU 810向存储器820传输数据以及从存储器820向CPU 810传输数据,采用数据总线。
CPU 810使用明文数据。然而,数据将作为密文(加密数据)存储在存储器820中。因此,当CPU 810想要在存储器820中存储(明文)数据时,CPU 810经由数据总线将该明文数据发送至数据加密-解密单元840。该数据加密-解密单元840对该明文数据进行加密以获得密文数据并且将该密文数据存储在存储器820中。当CPU 810想要从存储器820加载数据时,加密数据从存储器820进行加载并且被馈送到数据加密-解密单元840中。数据加密单元840对该密文数据进行解密以获得明文数据并且将该明文数据传送至CPU 810。
为了加密明文数据以及为了解密密文数据,数据加密-解密单元840可以使用存储在特定存储器区域(密钥存储850)中的(加密)密钥。
CPU 810可以知道存储在存储器820中的数据的逻辑地址。
为了在原始逻辑地址存储数据,CPU 810将原始逻辑地址送至MMU 860。MMU 860可以将原始逻辑地址进行变换以获得变换逻辑地址并且将该变换逻辑地址送至地址加密模块830。地址加密模块830通过采用地址加密而将变换地址加密为物理地址。该物理地址经由地址总线而被送至存储器820,而使得存储器820了解数据要存储在何处。
地址加密单元830可以是用于根据以上所描述实施例之一对输入存储器地址进行加密的装置。
为了从原始逻辑地址加载数据,CPU 810再次将原始逻辑地址送至MMU 860。MMU860可以对原始逻辑地址进行变换以获得变换逻辑地址并且将该变换逻辑地址送至地址加密模块830。地址加密模块830通过采用地址加密而将变换逻辑地址加密为物理地址。该物理地址经由地址总线而被送至存储器820,而使得存储器820了解将要加载的数据位于何处。
对于地址加密而言,地址加密单元830可以使用存储在特定存储器区域(密钥存储850)中的(加密)密钥。
特别地,图8图示了根据一个实施例的装置,包括:
用于提供原始逻辑地址的CPU 810,
用于根据该原始逻辑地址生成变换逻辑地址的MMU 860,
用于对该变换逻辑地址进行加密以获得物理地址的地址加密单元830,该地址加密单元830包括用于接收变换逻辑地址的输入接口,并且进一步包括用于根据加密密钥对该变换逻辑地址进行加密以获得物理地址的加密模块,其中该加密模块被配置为通过应用将该变换逻辑地址映射至物理地址的映射而对该变换逻辑地址进行加密,其中该加密模块被配置为通过使用加密密钥和模数运算的除数进行乘法和模数运算而应用该映射,而使得该映射是双射的,
用于对第一明文数据进行加密以获得第一密文数据以及用于对第二密文数据进行解密以获得第二明文数据的数据加密-解密单元840,
用于存储加密密钥的密钥存储850,
以及存储器820,其被配置为在物理地址存储该第一密文数据,或者将存储在物理地址的第二密文数据提供至数据加密-解密模块。
因此如能够在图9中所看到的,实现了双重保护。通过对数据进行加密,明文数据被密文数据所替代,而使得攻击方无法读取明文数据。通过将原始地址加密以获得加密地址,实现了地址的变换,并且数据并不存储在原始地址所指示的存储器位置而是存储在加密地址。因此,攻击方无法获知数据存储在何处,此外,由于采用了地址加密,后续逻辑地址处的数据存储在存储器中完全不同的物理地址。
虽然已经以装置为背景对一些方面进行了描述,但是清楚的是,这些方面还表示相对应方法的描述,其中模块或设备对应于方法步骤或方法步骤的特征。类似地,以方法步骤为背景所描述的方面也表示对相对应装置的相对应单元或项目或特征的描述。
创新性的分解信号可以存储在数字存储介质上或者能够在诸如无线传输介质或有线传输介质的传输介质上进行传送,上述传输介质诸如互联网。
根据某些实施方式的要求,实施例中的实施例能够以硬件或软件来实施。实施方式能够使用例如软盘、DVD、CD、ROM、PROM、EPROM、EEPROM或闪存的数字存储介质来执行,其具有存储于其上的可电子读取的控制信号,其与可编程计算机系统进行协同操作(或者能够与之协同操作)而使得相应方法得以执行。
根据实施例的一些实施例包括非瞬态数据载体,其具有可电子读取的控制信号,能够与可编程计算机系统协同操作而使得这里所描述的方法之一得以执行。
通常,本发明的实施例可以被实施为具有程序代码的计算机程序产品,该程序代码可操作以便在该计算机产品在计算机上运行时执行该方法之一。该程序代码例如可以存储在机器可读载体上。
其它实施例包括存储在机器可读载体上的用于执行这里所描述的方法之一的计算机程序。
换句话说,本发明方法的一个实施例因此是一种具有程序代码的计算机程序,该程序代码在该计算机程序在计算机上运行时执行这里所描述的方法。
因此,本发明方法的另外的实施例是一种包括记录于其上的用于执行这里所描述方法之一的计算机程序的数据载体(或者数字存储介质或计算机可读介质)。
本发明方法的另外的实施例因此是一种数据流或信号序列,其表示用于执行这里所描述的方法之一的计算机程序。该数据流或信号序列例如可以被配置为经由数据通信连接进行传输,例如经由互联网传输。
另外的实施例包括处理装置,例如被配置为或适于执行这里所描述的方法之一的计算机或可编程逻辑器件。
另外的实施例包括具有安装于其上的用于执行这里所描述的方法之一的计算机程序的计算机。
在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列)可以用来执行这里所描述的方法的一些或所有功能。在一些实施例中,现场可编程门阵列可以与微处理器协同操作以便执行这里所描述的方法之一。通常,该方法由任意硬件装置所执行。
虽然已经在若干有利实施例的方面对本发明进行了描述,但是改变、置换和等同形式将落入本发明的范围之内。还应当注意的是,有实施本发明的方法和组合形式的许多可替换方式。因此,所附权利要求意在被解释为包括落入本发明的实际精神和范围之内的所有这样的改变、置换和等同形式。
以上所描述的实施例仅是对本发明原则的说明。所要理解的是,这里所描述的装置的修改和变化以及细节对于本领域技术人员将是显而易见的。因此,其意在仅由后续的专利权利要求所限定而并不由通过这里对实施例的描述和解释所给出的具体细节所限定。
虽然每个权利要求仅引用之前的一项权利要求,但是本公开还可以覆盖任何能够想到的权利要求组合。
Claims (22)
1.一种用于对输入存储器地址进行加密以获得加密存储器地址的装置,包括:
用于接收作为存储器的地址的所述输入存储器地址的输入接口,以及
用于根据加密密钥对所述输入存储器地址进行加密以获得所述加密存储器地址的加密模块,
其中所述加密模块被配置为通过应用将所述输入存储器地址映射至所述加密存储器地址的映射来对所述输入存储器地址进行加密,其中所述加密模块被配置为通过使用所述加密密钥和取模运算的除数进行乘法和取模运算而应用所述映射,以使得所述映射是双射的。
2.根据权利要求1所述的装置,其中所述输入存储器地址由第一多项式指示,其中所述加密存储器地址由第二多项式指示,其中所述加密密钥由第三多项式指示,并且其中所述除数由作为不可约多项式的第四多项式指示。
3.根据权利要求1所述的装置,其中所述加密模块被配置为通过采用以下公式而应用所述映射:
a’=a k(mod p),
其中a指示所述输入存储器地址,
其中a’指示所述加密存储器地址,
其中k指示所述加密密钥,并且
其中p指示所述除数。
4.根据权利要求3所述的装置,其中所述装置可配置为选择标识密钥作为所述加密密钥k,以使得a k(mod p)=a mod p。
5.根据权利要求3所述的装置,其中所述装置可配置为选择零密钥作为所述加密密钥k,以使得a k(mod p)=0。
6.根据权利要求1所述的装置,
其中所述加密模块被配置为通过采用以下公式而应用所述映射
a’=a k(mod p)+b,
其中a指示所述输入存储器地址,
其中a’指示所述加密存储器地址,
其中k指示所述加密密钥,
其中p指示所述除数,并且
其中b指示辅助密钥。
7.根据权利要求6所述的装置,其中所述装置可配置为选择标识密钥作为所述加密密钥k,以使得
a k(mod p)+b=a mod p+b。
8.根据权利要求6所述的装置,其中所述装置可配置为选择零密钥作为所述加密密钥k,以使得a k(mod p)+b=b。
9.一种用于对输入存储器地址进行加密以获得加密存储器地址的装置,包括:
用于接收作为存储器的地址的所述输入存储器地址的输入接口,
用于将所述输入存储器地址划分为多个输入存储器地址段的分段模块,以及
用于根据多个加密子密钥之一对所述多个输入存储器地址段的每个输入存储器地址段进行加密的加密模块,其中所述加密模块被配置为通过应用将所述输入存储器地址段映射到加密存储器地址段的映射而对所述输入存储器地址段进行加密,所述加密存储器地址段是多个加密存储器地址段之一,其中所述加密模块被配置为通过使用所述多个加密子密钥之一和多个除数之一进行乘法和取模运算而应用所述映射,以使得所述映射是双射的,
其中所述多个加密存储器地址段中的所述加密存储器地址段共同形成所述加密存储器地址。
10.根据权利要求9所述的装置,其中所述多个输入存储器地址段中的每一个由第一多项式群组中的多项式指示,其中所述多个加密存储器地址段中的每一个由第二多项式群组中的多项式指示,其中所述多个加密子密钥中的每一个由第三多项式指示,并且其中所述多个除数中的每一个由作为不可约多项式的第四多项式指示。
11.根据权利要求9所述的装置,
其中所述加密模块被配置为通过应用所述映射对每个所述输入存储器地址段进行加密,所述映射通过采用以下公式而将所述输入存储器地址段映射至所述多个加密存储器地址段之一
ai’=aiki(mod pi)
其中i指示所述输入存储器地址段的索引,
其中ai指示所述输入存储器地址段,
其中ai’指示所述多个加密存储器地址段之一,
其中ki指示所述加密子密钥之一,并且
其中pi指示所述除数之一。
12.根据权利要求11所述的装置,其中所述装置可配置为针对所述输入存储器地址段中的每个输入存储器地址段ai选择标识密钥作为所述加密密钥ki,以使得aiki(mod pi)=ai(mod pi)。
13.根据权利要求11所述的装置,其中所述装置可配置为针对所述输入存储器地址段中的每个输入存储器地址段ai选择零密钥作为所述加密密钥ki,以使得aiki(mod pi)=0。
14.根据权利要求9所述的装置,
其中所述加密模块被配置为通过应用所述映射而对每个所述输入存储器地址段进行加密,所述映射通过采用以下公式而将所述输入存储器地址段映射至所述多个加密存储器地址段之一
ai’=aiki(mod pi)+bi
其中i指示所述输入存储器地址段的索引,
其中ai指示所述输入存储器地址段,
其中ai’指示所述多个加密存储器地址段之一,
其中ki指示所述加密子密钥之一,
其中pi指示所述除数之一,并且
其中bi指示多个辅助密钥之一。
15.根据权利要求14所述的装置,其中所述装置可配置为针对所述输入存储器地址段中的每个输入存储器地址段ai选择标识密钥作为所述加密密钥ki,以使得
aiki(mod pi)+bi=ai(mod pi)+bi。
16.根据权利要求14所述的装置,其中所述装置可配置为针对所述输入存储器地址段中的每个输入存储器地址段ai选择零密钥作为所述加密密钥ki,以使得
aiki(mod pi)+bi=bi。
17.一种装置,包括:
存储器,
用于对存储在所述存储器中的存储器地址的数据进行处理的CPU,以及
用于对所述存储器的输入存储器地址进行加密以获得加密存储器地址的地址加密单元,所述地址加密单元包括:
用于接收所述输入存储器地址的输入接口,以及
用于根据加密密钥对所述输入存储器地址进行加密以获得所述加密存储器地址的加密模块,
其中所述加密模块被配置为通过应用将所述输入存储器地址映射至所述加密存储器地址的映射来对所述输入存储器地址进行加密,其中所述加密模块被配置为通过使用所述加密密钥和取模运算的除数进行乘法和取模运算而应用所述映射,以使得所述映射是双射的。
18.一种装置,包括:
用于提供原始逻辑地址的CPU,
用于根据所述原始逻辑地址生成变换逻辑地址的MMU,
用于对所述变换逻辑地址进行加密以获得物理地址的地址加密单元,所述地址加密单元包括用于接收所述变换逻辑地址的输入接口,并且进一步包括用于根据加密密钥对所述变换逻辑地址进行加密以获得所述物理地址的加密模块,其中所述加密模块被配置为通过应用将所述变换逻辑地址映射至所述物理地址的映射而对所述变换逻辑地址进行加密,其中所述加密模块被配置为通过使用所述加密密钥和取模运算的除数进行乘法和取模运算而应用所述映射,以使得所述映射是双射的,
用于对第一明文数据进行加密以获得第一密文数据以及用于对第二密文数据进行解密以获得第二明文数据的数据加密-解密单元,
用于存储所述加密密钥的密钥存储,
以及存储器,其被配置为在所述物理地址存储所述第一密文数据,或者将存储在所述物理地址的所述第二密文数据提供至所述数据加密-解密模块。
19.一种用于对输入存储器地址进行加密以获得加密存储器地址的方法,包括:
接收作为存储器的地址的所述输入存储器地址;并且
根据加密密钥对所述输入存储器地址进行加密以获得所述加密存储器地址,
其中对所述输入存储器地址进行加密包括通过使用所述加密密钥和取模运算的除数进行乘法和取模运算而应用将所述输入存储器地址映射至所述加密存储器地址的映射,以使得所述映射是双射的。
20.根据权利要求19所述的方法,其中所述输入存储器地址由第一多项式指示,其中所述加密存储器地址由第二多项式指示,其中所述加密密钥由第三多项式指示,并且其中所述除数由作为不可约多项式的第四多项式指示。
21.一种用于对输入存储器地址进行加密以获得加密存储器地址的方法,包括:
接收作为存储器的地址的所述输入存储器地址,
将所述输入存储器地址划分为多个输入存储器地址段,并且
根据多个加密子密钥之一对所述多个输入存储器地址段的每个输入存储器地址段进行加密以获得所述加密存储器地址,其中对所述输入存储器地址段进行加密包括通过使用所述多个加密子密钥之一和多个除数之一进行乘法和取模运算而应用将所述输入存储器地址段映射到多个加密存储器地址段中的加密存储器地址段的映射,以使得所述映射是双射的,
其中所述多个加密存储器地址段中的加密存储器地址段共同形成所述加密存储器地址。
22.根据权利要求21所述的方法,其中所述多个输入存储器地址段中的每一个由第一多项式群组中的多项式指示,其中所述多个加密存储器地址段中的每一个由第二多项式群组中的多项式指示,其中所述多个加密子密钥中的每一个由第三多项式指示,并且其中所述多个除数中的每一个由作为不可约多项式的第四多项式指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/942,096 | 2013-07-15 | ||
US13/942,096 US10176121B2 (en) | 2013-07-15 | 2013-07-15 | Apparatus and method for memory address encryption |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298937A CN104298937A (zh) | 2015-01-21 |
CN104298937B true CN104298937B (zh) | 2018-11-09 |
Family
ID=52107582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410334614.3A Active CN104298937B (zh) | 2013-07-15 | 2014-07-14 | 用于存储器地址加密的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10176121B2 (zh) |
CN (1) | CN104298937B (zh) |
DE (1) | DE102014213539A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3080813B1 (fr) * | 2013-12-12 | 2021-04-28 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Système de gestion de l'usure d'une mémoire électronique |
US9384144B1 (en) * | 2014-03-25 | 2016-07-05 | SK Hynix Inc. | Error detection using a logical address key |
DE102015113468A1 (de) * | 2015-08-14 | 2017-02-16 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe |
US20170093823A1 (en) * | 2015-09-25 | 2017-03-30 | Vinodh Gopal | Encrypting Observable Address Information |
GB2544546B (en) * | 2015-11-20 | 2020-07-15 | Advanced Risc Mach Ltd | Dynamic memory scrambling |
US10382410B2 (en) * | 2016-01-12 | 2019-08-13 | Advanced Micro Devices, Inc. | Memory operation encryption |
CN106022161B (zh) * | 2016-05-13 | 2018-09-25 | 天脉聚源(北京)传媒科技有限公司 | 一种数据处理方法及装置 |
FR3058813A1 (fr) * | 2016-11-16 | 2018-05-18 | Stmicroelectronics (Rousset) Sas | Stockage dans une memoire non volatile |
CN110727086A (zh) * | 2016-12-30 | 2020-01-24 | 玉晶光电(厦门)有限公司 | 光学成像镜头 |
US11036651B2 (en) | 2018-06-29 | 2021-06-15 | Micron Technology, Inc. | Host side caching security for flash memory |
JP7190336B2 (ja) * | 2018-11-15 | 2022-12-15 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
KR102644274B1 (ko) * | 2018-11-22 | 2024-03-06 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법 |
DE102019128528A1 (de) * | 2019-10-22 | 2021-04-22 | Infineon Technologies Ag | Datenkryptografievorrichtungen und speichersysteme |
US11645428B1 (en) | 2020-02-11 | 2023-05-09 | Wells Fargo Bank, N.A. | Quantum phenomenon-based obfuscation of memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1530824A (zh) * | 2003-03-14 | 2004-09-22 | ���ǵ�����ʽ���� | 用于执行蒙哥马利型模乘法的装置及方法 |
CN1720507A (zh) * | 2002-12-04 | 2006-01-11 | 皇家飞利浦电子股份有限公司 | 用于闪存的地址加密方法 |
CN101740068A (zh) * | 2009-12-01 | 2010-06-16 | 惠州市德赛视听科技有限公司 | 一种光盘数据加密方法 |
CN103020549A (zh) * | 2012-11-26 | 2013-04-03 | 北京华大信安科技有限公司 | 存储器的保护装置以及存储装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848159A (en) * | 1996-12-09 | 1998-12-08 | Tandem Computers, Incorporated | Public key cryptographic apparatus and method |
WO2005015818A1 (en) * | 2003-08-07 | 2005-02-17 | Rao Mohan G R | Data security and digital rights management system |
FR2880149B1 (fr) * | 2004-12-23 | 2007-03-30 | Oberthur Card Syst Sa | Procede de traitement de donnees et dispositif associe |
JP4662802B2 (ja) * | 2005-03-30 | 2011-03-30 | 富士通株式会社 | 計算方法、計算装置及びコンピュータプログラム |
JP5027422B2 (ja) * | 2006-02-09 | 2012-09-19 | ルネサスエレクトロニクス株式会社 | 剰余演算処理装置 |
IL187046A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Memory randomization for protection against side channel attacks |
JP5159849B2 (ja) * | 2010-09-24 | 2013-03-13 | 株式会社東芝 | メモリ管理装置及びメモリ管理方法 |
ITMI20111992A1 (it) * | 2011-11-03 | 2013-05-04 | St Microelectronics Srl | Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari |
US10191754B2 (en) * | 2012-01-09 | 2019-01-29 | Koninklijke Philips N.V. | Virtual machine device having key driven obfuscation and method |
US9037872B2 (en) * | 2012-12-17 | 2015-05-19 | Advanced Micro Devices, Inc. | Hardware based return pointer encryption |
-
2013
- 2013-07-15 US US13/942,096 patent/US10176121B2/en active Active
-
2014
- 2014-07-11 DE DE102014213539.7A patent/DE102014213539A1/de active Pending
- 2014-07-14 CN CN201410334614.3A patent/CN104298937B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1720507A (zh) * | 2002-12-04 | 2006-01-11 | 皇家飞利浦电子股份有限公司 | 用于闪存的地址加密方法 |
CN1530824A (zh) * | 2003-03-14 | 2004-09-22 | ���ǵ�����ʽ���� | 用于执行蒙哥马利型模乘法的装置及方法 |
CN101740068A (zh) * | 2009-12-01 | 2010-06-16 | 惠州市德赛视听科技有限公司 | 一种光盘数据加密方法 |
CN103020549A (zh) * | 2012-11-26 | 2013-04-03 | 北京华大信安科技有限公司 | 存储器的保护装置以及存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104298937A (zh) | 2015-01-21 |
US10176121B2 (en) | 2019-01-08 |
DE102014213539A1 (de) | 2015-01-15 |
US20150019878A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298937B (zh) | 用于存储器地址加密的装置和方法 | |
Bogdanov et al. | Towards practical whitebox cryptography: optimizing efficiency and space hardness | |
CN104468089B (zh) | 数据保护装置及其方法 | |
JP5822970B2 (ja) | 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス | |
US10367637B2 (en) | Modular exponentiation with transparent side channel attack countermeasures | |
JP6078555B2 (ja) | 鍵駆動の難読化を用いる仮想マシンデバイス及び方法 | |
JP6880017B2 (ja) | 信頼できないコンピュータ上でプライベートプログラムを実行するためのシステム及びプロセス | |
US9515818B2 (en) | Multi-block cryptographic operation | |
KR102259962B1 (ko) | 인증이 있는 암호 메시지명령 | |
US20060023875A1 (en) | Enhanced stream cipher combining function | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
CN106487497B (zh) | 对rijndael算法的dpa保护 | |
US9692592B2 (en) | Using state reordering to protect against white box attacks | |
KR20220052858A (ko) | Aes 카운터 모드 암호화에서 쿼시그룹 연산으로 암호화된 정수들을 가산하고 비교하기 위한 시스템 및 방법 | |
Yang et al. | PLCrypto: A symmetric cryptographic library for programmable logic controllers | |
Xu et al. | A white-box AES-like implementation based on key-dependent substitution-linear transformations | |
CN113518988A (zh) | 嵌入式中央处理单元上的抗侧通道攻击存储器访问 | |
Karri et al. | Parity-based concurrent error detection in symmetric block ciphers | |
Zelenoritskaya et al. | Possible modifications of RC4 stream cipher | |
US10678709B2 (en) | Apparatus and method for memory address encryption | |
US20210143978A1 (en) | Method to secure a software code performing accesses to look-up tables | |
Chatterjee et al. | Furisc: Fhe encrypted urisc design | |
KR20170005850A (ko) | 암호 장치, 기억 시스템, 복호 장치, 암호 방법, 복호 방법, 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
CN113381854B (zh) | 数据传输方法、装置、设备和存储介质 | |
Kruthika | A Study on the Data Securing Algorithms: The State of Art |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |