CN105095097A - 随机化的存储器访问 - Google Patents

随机化的存储器访问 Download PDF

Info

Publication number
CN105095097A
CN105095097A CN201510257729.1A CN201510257729A CN105095097A CN 105095097 A CN105095097 A CN 105095097A CN 201510257729 A CN201510257729 A CN 201510257729A CN 105095097 A CN105095097 A CN 105095097A
Authority
CN
China
Prior art keywords
component
random
address
storer
ising
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
CN201510257729.1A
Other languages
English (en)
Other versions
CN105095097B (zh
Inventor
B·加梅尔
T·菲利西简
S·曼加德
W·梅尔格勒
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN105095097A publication Critical patent/CN105095097A/zh
Application granted granted Critical
Publication of CN105095097B publication Critical patent/CN105095097B/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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem

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)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明的各个实施例涉及随机化的存储器访问。一个实施例涉及用于存储器访问的设备,该设备包括用于对存储器进行操作的第一部件、和用于按随机化的方式来访问存储器的第二部件,其中第一部件经由第二部件进行操作中的至少部分。

Description

随机化的存储器访问
技术领域
本发明的各个实施例涉及存储器访问,该存储器访问是至少部分地随机化的。
发明内容
第一实施例涉及一种用于存储器访问的设备,该设备包括:
-第一部件,用于对存储器进行操作,
-第二部件,用于按随机化的方式来访问存储器,
-其中第一部件经由第二部件来进行操作中的至少部分。
第一部件可以是处理器或控制器。第二部件可以是另一处理设备,其也可以称作地址随机化单元。
第二实施例涉及一种第二部件,其被布置用于:
-从第一部件接收关于存储器的信息,
-基于该信息并且基于随机值,按随机化的方式来访问存储器。
第三实施例涉及一种用于访问存储器的方法,包括:
-由第二部件按随机化的方式来访问存储器,其中第一部件经由第二部件来进行操作的至少部分。
第四实施例涉及一种计算机程序产品,其可以直接载入到数字处理设备的存储器中,该计算机程序产品包括用于执行本文所描述的方法的步骤的软件代码部分。
附图说明
参照附图对各个实施例进行图示和说明。附图用于说明基本原理,使得仅仅说明了用于理解基本原理所必须的各个方面。附图并未按比例绘制。在附图中,相同的附图标记表示相似的特征。
图1示出了允许将执行队列随机化的示意图,其中该随机化自身利用不同部件,例如,多件硬件。
具体实施方式
针对对于智能卡或嵌入式系统的许多攻击,攻击者需要知道哪个数据值在何时被处理。攻击者可以对值进行探测,进行模板攻击,或者篡改该值。一个示例是加密算法的实施例:如果攻击者知道中间值在何时被处理,那么他可以对这类中间值执行各种攻击。
为了提升成功进行攻击的负担,算法的步骤可以被随机化,即,操作可以按随机顺序被执行。然而,并不是所有的步骤都需要经受这类重排序,这是因为为了算法正确工作并且产生所需结果,特定的接续可能是固有的和必要的。
然而,存在若干算法,其具有关于它们的执行操作的相应序列的自由度。例如,在高级加密标准(AES)中,对16字节执行AES子字节操作。其中执行16操作的队列可以被随机化,即,16查找可以按随机顺序被执行。例如,可并行地进行的操作在按序列被执行时可以经历随机化。
然而,缺点是,对于软件实施方式的随机化也以软件实现。因此,用于对软件实施方式的执行队列进行随机化的随机值正是由该软件产生。因此,该随机值自身经历与需要被保护的数据相同的攻击。
例如:如果攻击者(例如通过将探针放在其上)对CPU数据总线进行探测,那么他得知随机值以及按随机化的顺序被处理的所有数据(由所述随机值确定)。在该情形中,随机化没有作用,这是因为攻击者知道它,并且可以在没有显著困难的情况下消除它。
类似的考虑可以适用于确定经受攻击的设备的功率损耗:如果攻击者能够建立关于由CPU处理的值的模板,那么该模板可以用于泄漏随机值以及被保护的值,这就可能使得随机化失效。
本文所展示的各个示例特别地允许对在硬件中的软件实施方式的执行队列进行随机化,其中随机化可以优选地对于软件隐藏。因此用于生成随机化序列的随机值可以不由软件提供和/或处理,并且不能由针对软件的攻击所确定。由于软件并不知道随机化序列,因此处理器(例如,CPU)或者软件不能泄漏(或者供给)关于这类随机化的任何信息。
注意到,随机化可以是伪随机化。因此,任何随机值可以是真随机值,或者它可以由确定性机制计算得到。在本文中,好的随机数可以由如下性质证明:如果攻击者知道所有先前生成的随机数,他也不具有猜到下一随机数的优势。
本方案的一个优势是,其将保护一个大的部件(例如,CPU)的相当困难的问题,向保护若干部件转化,即,向保护除了该大的部件之外更小的部件(例如,随机生成器和/或地址随机化单元)转化。因此,攻击者需要将其努力指向若干部件(即,该大的部件和该小的部件),而不是仅仅指向一个部件。
图1示出了允许将执行队列随机化的示意图,其中随机化自身利用不同部件,例如,多件硬件。软件可以对所谓的地址随机化单元ARU102进行配置,用于对从CPU101发送的用于访问存储器103的地址进行随机化。如果ARU102被激活,那么它通过使用来自随机数生成器104的随机值105,将用于访问存储器103的该地址随机化。对于不同的算法或者算法的部分,可以利用这类随机化的不同的配置。由此,ARU102可以被配置。
ARU102将输入地址a映射到数据地址a’。映射可以基于下列各项中的至少一项:
-ARU102的配置c,
-访问类型t,
-数据地址a,
-随机值r,以及
-ARU102的内部状态s。
映射可以特别地基于地址a,配置c可以被明确地提供,或者配置c可以在ARU102中被硬编码。可选地,地址a可以是配置c的部分。另外可选的是,访问类型t由CPU101向ARU102提供。
内部状态s可以通过不同手段更新。例如,内部状态s可以在加载配置c时被设置为内部状态,并且它可以通过对CPU101的读出或写入访问而更新。注意到,该读出和/或写入操作可能导致不同的状态转换,并且可能因此对地址a的随机化具有(不同的)作用。
ARU102的配置可以包括下列各项中的至少一项:
-用于随机化的范围a1的下阈值,
-用于随机化的范围a2的上阈值,
-随机化的特性分配(例如,置换,permutation)。
在运行时间期间,ARU102的下列配置中的至少一个可以被切换,并且从而可以作为随机化的主体:
-将对查找表的访问的顺序随机化;特别地:将AESS-box查找操作的顺序随机化;
-将在可交换组操作中的操作的顺序随机化;
-将在关联组操作中的操作的顺序随机化;
-将条目的求和或求积的累积的顺序随机化;
-将条目的计算标积的累积的顺序随机化;
-将对中间值的按矢量或矩阵求积的计算的顺序随机化;特别是:将对AES混合列(mixcolumn)操作的计算中的步骤的顺序随机化;
-将对按秘密共享模式的共享值的操作(假设,例如,一些变量被划分为共享量)的顺序随机化;
-将在读取来自存储器的秘密秘钥的组份或共享值时的访问的顺序随机化;
-将在对称加密算法(DES、AES等)中的操作的顺序随机化;
-将在非对称加密算法(RSA、ECC等)中的操作的顺序随机化;
-将在加密哈希算法(Whirlpool、SHA-1、SHA-2、SHA-3等)中的操作的顺序随机化。
示例性实施例:将AES舍入的16S-box查找的队列随机化
可以将其中软件执行对16字节值的AESS-box操作的队列随机化。执行这类16字节值的AESS-box操作意味着,计算yi=S(xi),其中x0..15是输入字节,而y0..15是输出字节,即,16操作可以并行地进行。
在一个普通软件实施例中,这是通过对每个字节重复下列操作而实现的:
-读出输入字节xi
-执行S-box操作S(xi),
-写入输出字节yi
通过使用ARU102将其中字节被处理的队列随机化,软件代码可以(基本上)是相同的。ARU102仅仅需要在执行代码前被配置。
在该示例中,ARU102可能被配置有16字节的读出存储器区域、和16字节的写入存储器区域。针对读出操作,ARU102可以被配置为,使得从读出存储器区域的下一16读出操作将导致存储在读出存储器区域中的16字节值的随机置换。因此ARU102可以用随机置换来替换在由CPU101提供的16字节内的寻址。因此,在没有ARU102的情况下,CPU将使用预定的方式以对16字节进行寻址,但是该预定的寻址方式由ARU102在随机数生成器104的帮助下而随机化。
针对向写入存储器区域的写入置换,ARU102采用已经用于从读出存储器区域读出字节的相同索引。
示例性实施例:将AESMixColumns操作随机化
AESMixColumns操作可以使用对特定数据(AES状态列)的操作的特定序列。下列公式描述了对单个列的AESMixColumns操作。
b0=2·a0+3·a1+a2+a3
b1=a0+2·a1+3·a2+a3
b2=a0+a1+2·a2+3·a3
b3=3·a0+a1+a2+2·a3
注意到,乘法2·ax和3·ax表示在GF(28)中的乘法,而加法表示逐位异或操作(XOR)。因此,被异或组合的各个操作量的次序对于AESMixColumns操作的结果不是决定性的。
此外,操作可以将16字节的临时状态变量“TEMP”用于存储中间结果。
下列类Verilog的描述示出了ARU102的当被配置用于这类AESMixColumns操作时的示例性功能:
初始地,在ARU中的随机置换生成器(RPG)被重置为零,即,从0至15的所有值对于选择可用(行2)。然后,生成随机置换的第一值(i)(行3)。
取决于RAM访问的类型,而生成输出地址y。如果生成读出访问(行6),那么ARU基于由软件提供的随机值i和源地址x、而生成用于特定字节的地址。因此,随机值i[3:2]确定当前列,源地址x[1:0]确定当前列的当前字节,而随机值i[1:0]确定当前列的输出字节地址。软件可以确保:原地址被正确地生成,并且当前列的所有4个字节一起正确地被相乘并且被XOR运算,以计算所得字节。
在写入访问的情况下,ARU生成输出地址y,该输出地址y等于当前随机值i(行8)。同时,生成新的随机值(行10)。
当所有16个值都已经被选择时,操作完成。
示例性实施例:对来自存储器的共享值的随机读出
最后,ARU的用于执行对来自存储器的共享值的随机读出的功能,可对应于AESS-box操作。差异可以由软件所提供的对于来自存储器的数据的在该数据被写入回之前的操作来确定。
本文所提出的各个示例可以特别地基于下列方案中的至少一个。具体地,下列特征的组合可以用于达到期望结果。方法的特征可以与设备、装置或系统的任何一个或多个特征组合,或者反之亦然。
提出了一种用于存储器访问的设备,该设备包括:
-用于进行对存储器的操作的第一部件,
-用于按随机化的方式访问存储器的第二部件,
-其中第一部件经由第二部件进行操作的至少部分。
因此,全部操作在两个单元(即,第一和第二部件)之间分配。这些可以被布置在相同的裸片、电路或硅片上。备选地,它们可以被布置在不同的这类裸片、电路或硅片上。通过允许将用于操作(例如可以并行地进行的操作)的部分的存储器访问随机化,攻击者面临额外的困难:一些存储器访问是(或者可能呈现为是)随机的。因此,通过仅仅对第一部件进行探测,攻击者不能容易地确定哪个数据在何时被处理。这就增加了设备的安全性。
特别地可选地,在第一部件与第二部件之间的通信具有针对篡改和/或监看的至少一些保护。
另外地可选地,第一部件和第二部件是彼此在其间具有通信链路的分离的物理元件。
注意到,“随机化的方式”可以基于随机值。本文提及的随机值可以是真随机值或伪随机值。
在一个实施例中,设备进一步包括随机数生成器,用于向第二部件提供随机值,以便按随机化的方式来访问存储器。
在一个实施例中,第二部件通过下列各项,按随机化的方式访问存储器:
-基于由第一部件提供的地址和随机值来确定映射的地址;
-将该映射的地址用于访问存储器。
因此,操作的部分的结果可以被存储在存储器中,在由第一部件确定的存储器区域中。然而,访问存储器的队列经由第二部件被随机化,即,可能与在第一部件上运行的软件不同的额外的一件硬件。
在一个实施例中,第二部件包括随机生成器,用于向第二部件提供随机值,以便按随机化的方式来访问存储器。
在一个实施例中,第二部件通过下列各项,按随机化的方式来访问存储器:
-基于由第一部件提供的地址和随机值,来确定映射的地址;
-将该映射的地址用于访问存储器。
在一个实施例中,第一部件是处理器或控制器。
在一个实施例中,第二部件是经由第一部件被配置的地址随机化单元。
在一个实施例中,第二部件经由第一部件通过进行下列各项中的至少一项而被配置:
-用于随机化的地址范围的下阈值,
-用于随机化的地址范围的上阈值,
-随机化的分配或类型。
因此,配置可以确定存储器的地址范围,该地址范围将由第二部件使用。操作的部分在该地址范围上进行,其中第二部件提供随机化的访问。
可选地,由第二部件进行的随机化的访问可以被置换。
在一个实施例中,操作的部分是可以并行地进行的操作。
在一个实施例中,操作的部分包括下列各项中的至少一项:
-将对查找表的访问的顺序随机化;特别地:将AESS-box查找操作的顺序随机化;
-将在可交换组操作中的操作的顺序随机化;
-将在关联组操作中的操作的顺序随机化;
-将条目的求和或求积的累积的顺序随机化;
-将条目的计算标积的累积的顺序随机化;
-将对中间值的按矢量或矩阵求积的计算的顺序随机化;特别是:将对AES混合列操作的计算中的步骤的顺序随机化;
-将对按秘密共享模式的共享值的操作的顺序随机化;
-将在读取来自存储器的秘密秘钥的组份或共享量时的访问的顺序随机化;
-将在对称加密算法中的操作的顺序随机化;
-将在非对称加密算法中的操作的顺序随机化;
-将在加密哈希算法中的操作的顺序随机化。
在一个实施例中,第二部件包括经由由第一部件提供的配置而更新的内部状态。
在一个实施例中,内部状态通过经由第二部件而进行的对第一部件的读出或写入操作而被设定。
在一个实施例中,第二部件按随机化的方式来访问存储器,其中第二部件的对存储器的随机化访问基于下列各项中的至少一项而确定:
-第二部件的配置,
-由第一部件提供的访问类型,
-由第一部件提供的输入地址,
-随机值,
-第二部件的内部状态。
设置第二部件,该第二部件被布置用于:
-从第一部件接收关于存储器访问的信息,
-基于该信息并且基于随机值,来以随机化的方式访问存储器。
在一个实施例中,该信息被用于由第一部件经由第二部件进行的操作的部分。
提出了一种用于访问存储器的方法,该方法包括:
-由第二部件按随机化的方式来访问存储器,其中第一部件经由第二部件进行操作的至少部分。
因此,上文描述的特征适用于这类方法。
在一个实施例中,方法进一步包括:
-通过基于由第一部件提供的地址和随机值,并且通过使用映射地址访问存储器,按随机化的方式来访问存储器。
在一个实施例中,方法进一步包括:
-经由第一部件来配置第二部件,其中这类配置可以包括下列各项中的至少一项:
-用于随机化的地址范围的下阈值,
-用于随机化的地址范围的上阈值,
-随机化的分配或类型。
提供一种计算机程序产品,其可以直接加载到数字处理设备的存储器中,该产品包括用于执行本文所描述的方法的软件代码部分。
在一个或多个示例中,本文所描述的函数可以至少部分地以硬件实施,诸如特定的硬件部件或处理器。更一般地,技术可以以硬件、处理器、软件、固件或者其任意组合来实施。如果以软件实施,功能可以作为一个或多个指令或代码而被存储或传输到计算机可读介质,并且由基于硬件的处理单元来执行。计算机可读介质可以包括计算机存储介质,其对应于有形介质诸如数据存储介质、或者通信介质包括有助于例如根据通信协议而将计算机程序从一个地点传输至另一地点的任何介质。以这种方式,计算机可读介质大体上额可以对应于(1)非易失性的有形计算机可读存储介质、或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以检索指令、代码和/或数据结构的任何可用的介质,用于实施本文所描述的技术。计算机程序产品可以包括计算机可读介质。
举例而言,而非限制性的,这类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或可以用于以指令或数据结构的形式来存储期望的程序代码的并且可以由计算机访问的其它介质。而且,任何连接被恰当地称作计算机可读介质,即,计算机可读传输介质。例如,如果指令从网站、服务器、或其它远程源,通过使用同轴电缆、光纤缆、双绞线、数字用户线路(DSL)、或者无线技术诸如红外、无线电、和微波而被传输;那么同轴电缆、光纤缆、双绞线、DSL、或者无线技术诸如红外、无线电、和微波被包括在媒介的定义中。然而应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其它瞬态介质,而是指向非瞬态的、有形的存储介质。磁盘(disk)和光盘(disc),如在本文中所使用的,包括压缩盘(CD)、激光盘、光盘、数字化通用盘(DVD)、软盘和蓝光盘,其中磁盘通常磁学地再生数据,而光盘用激光光学地再生数据。上述各项的组合也应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个中央处理单元(CPU)、数字信号处理器(DPS)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等同的集成或分立的逻辑电路装置。因此,术语“处理器”在本文中可以指上述结构或者适用于本文所描述的技术的实施例的任何其它结构。此外,在一些方面,本文所描述的功能可以在所指示的被配置用于编码和解码的或者被合并地配置为编解码器的硬件和/或软件模块内提供。而且,技术可以在一个或多个电路或逻辑单元中完整地实施。
本公开的技术可以在多种设备或装置中实施,包括无线头戴式耳机、集成电路(IC)、或者IC组(例如,芯片组)。在本公开中,描述了各种部件、模块或单元以强调被配置用于执行所公开技术的设备的各个功能方面,但并不必须要求由不同的硬件单元来实现。而是,如上文所描述的,各种单元可以被组合在单个硬件单元中,或者由交互操作的硬件单元的集合(包括一个或多个上述处理器,与适当的软件和/或固件相关联)来提供。
虽然已经描述了本发明的各个示例性实施例,但是对于本领域技术人员而言,显而易见可以进行可以实现本发明的优点而并不背离本发明的精神和范围的各种改变和修改。对于本领域技术人员而言,显而易见可以恰当地代入执行相同功能的其它部件。应强调,参照特定附图说明的特征可以与其它附图的特征组合,甚至在这点没有被明确说明的那些情况下。另外,本发明的各个方法可以实现为使用恰当的处理器指令的全软件实施例、或者利用硬件逻辑和软甲逻辑的组合以实现相同结果的混合实施例。对本发明的概念这类修改意在被所附权利要求书所覆盖。

Claims (19)

1.一种用于存储器访问的设备,所述设备包括:
第一部件,用于对所述存储器进行操作,
第二部件,用于按随机化的方式来访问所述存储器,
其中所述第一部件经由所述第二部件来进行所述操作中的至少部分操作。
2.根据权利要求1所述的设备,进一步包括:随机数生成器,用于向所述第二部件提供随机值,以便按所述随机化的方式来访问所述存储器。
3.根据权利要求2所述的设备,其中所述第二部件通过下列各项按所述随机化的方式来访问所述存储器
-基于由所述第一部件提供的地址和所述随机值来确定映射的地址;
-使用所述映射的地址访问所述存储器。
4.根据权利要求1所述的设备,其中所述第二部件包括:随机生成器,用于向所述第二部件提供随机值,以便按所述随机化的方式来访问所述存储器。
5.根据权利要求4所述的设备,其中所述第二部件通过下列各项按所述随机化的方式来访问所述存储器
-基于由所述第一部件提供的地址和所述随机值来确定映射的地址;
-使用所述映射的地址访问所述存储器。
6.根据权利要求1所述的设备,其中所述第一部件是处理器或控制器。
7.根据权利要求1所述的设备,其中所述第二部件是地址随机化单元,所述地址随机化单元经由所述第一部件被配置。
8.根据权利要求1所述的设备,其中所述第二部件通过设置下列各项中的至少一项来经由所述第一部件被配置:
-用于所述随机化的地址范围的下阈值,
-用于所述随机化的地址范围的上阈值,
-所述随机化的分配或类型。
9.根据权利要求1所述的设备,其中所述操作中的部分操作是能够并行进行的操作。
10.根据权利要求1所述的设备,其中所述操作中的部分操作是包括下列各项中的一项的操作:
-将对查找表的访问的顺序随机化;特别地:将AESS-box查找操作的顺序随机化;
-将在可交换组操作中的操作的顺序随机化;
-将在关联组操作中的操作的顺序随机化;
-将条目的求和或求积的累积的顺序随机化;
-将条目的计算标积的累积的顺序随机化;
-将对中间值的按矢量或矩阵求积的计算的顺序随机化;特别是:将对AES混合列操作的计算中的步骤的顺序随机化;
-将对按秘密共享模式的共享的操作的顺序随机化;
-将在读取来自存储器的秘密秘钥的组份或份额时的访问的顺序随机化;
-将在对称加密算法中的操作的顺序随机化;
-将在非对称加密算法中的操作的顺序随机化;
-将在加密哈希算法中的操作的顺序随机化。
11.根据权利要求1所述的设备,其中所述第二部件包括:中间状态,经由由所述第一部件提供的配置而被更新。
12.根据权利要求11所述的设备,其中所述中间状态通过所述第一部件的读出或写入操作而被设置,所述读出或写入操作经由所述第二部件而进行。
13.根据权利要求1所述的设备,其中所述第二部件按所述随机化的方式来访问所述存储器,其中所述第二部件的对所述存储器的随机化访问基于下列各项中的至少一项而被确定:
-所述第二部件的配置,
-由所述第一部件提供的访问类型,
-由所述第一部件提供的输入地址,
-随机值,
-所述第二部件的中间状态。
14.一种第二部件,被布置用于:
-从第一部件接收关于存储器访问的信息,
-基于所述信息并且基于随机值,按所述随机化的方式来访问存储器。
15.根据权利要求14所述的第二部件,其中将所述信息用于由所述第一部件经由所述第二部件而进行的操作的至少部分操作。
16.一种用于访问存储器的方法,包括:
-由第二部件按随机化的方式来访问所述存储器,其中第一部件经由所述第二部件来进行所述操作的至少部分操作。
17.根据权利要求16所述的方法,进一步包括:
-通过基于由所述第一部件提供的地址和随机值来确定映射的地址,并且通过使用所述映射的地址访问所述存储器,由此按所述随机化的方式来访问所述存储器。
18.根据权利要求16所述的方法,进一步包括:
-经由所述第一部件配置所述第二部件,其中该配置可以包括下列各项中的至少一项:
-用于所述随机化的地址范围的下阈值,
-用于所述随机化的地址范围的上阈值,
-所述随机化的分配或类型。
19.一种计算机程序产品,可直接载入到数字处理设备的存储器中,所述计算机程序产品包括用于执行根据权利要求16所述的方法的步骤的软件代码部分。
CN201510257729.1A 2014-05-19 2015-05-19 随机化的存储器访问 Active CN105095097B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/280,823 2014-05-19
US14/280,823 US9916261B2 (en) 2014-05-19 2014-05-19 Randomized memory access

Publications (2)

Publication Number Publication Date
CN105095097A true CN105095097A (zh) 2015-11-25
CN105095097B CN105095097B (zh) 2018-10-16

Family

ID=54361857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510257729.1A Active CN105095097B (zh) 2014-05-19 2015-05-19 随机化的存储器访问

Country Status (3)

Country Link
US (1) US9916261B2 (zh)
CN (1) CN105095097B (zh)
DE (1) DE102015107823A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073805A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种数据读取方法和存储器

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014001647A1 (de) * 2014-02-06 2015-08-06 Infineon Technologies Ag Operation basierend auf zwei Operanden
US20160350520A1 (en) * 2015-05-29 2016-12-01 Nxp, B.V. Diversifying Control Flow of White-Box Implementation
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
US11381392B2 (en) * 2018-05-15 2022-07-05 Mfe Capital, Llc Device for off-line storage and usage of digital assets
KR102644274B1 (ko) * 2018-11-22 2024-03-06 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
EP4022614A4 (en) 2019-08-31 2023-08-30 Cryptography Research, Inc. DIRECT ACCESS
CN112687318B (zh) * 2020-12-31 2023-07-25 乐鑫信息科技(上海)股份有限公司 抵御数据篡改和模板攻击的熔丝读取方法和控制器及芯片

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982367A (en) * 1987-05-15 1991-01-01 Mitsubishi Denki Kabushiki Kaisha Dynamic random access memory with well-balanced read-out voltage on bit line pair and operating method therefor
CN102737719A (zh) * 2011-04-15 2012-10-17 三星电子株式会社 非易失性存储器器件、其操作方法以及包括其的系统
CN102799819A (zh) * 2012-07-04 2012-11-28 北京京航计算通讯研究所 一种嵌入式软件安全保护系统
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
TWM476960U (en) * 2013-11-29 2014-04-21 Te Yuan Co Ltd Synchronization mechanism of rotation controller for electronic device
CN103778374A (zh) * 2014-02-19 2014-05-07 邹候文 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210639A (en) * 1983-12-30 1993-05-11 Texas Instruments, Inc. Dual-port memory with inhibited random access during transfer cycles with serial access
US5887251A (en) * 1996-10-30 1999-03-23 Ericsson Inc. Authentication key management for mobile stations
US5999474A (en) 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory
EP3001321B1 (en) * 2004-02-05 2018-07-11 BlackBerry Limited Memory controller interface

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982367A (en) * 1987-05-15 1991-01-01 Mitsubishi Denki Kabushiki Kaisha Dynamic random access memory with well-balanced read-out voltage on bit line pair and operating method therefor
CN102737719A (zh) * 2011-04-15 2012-10-17 三星电子株式会社 非易失性存储器器件、其操作方法以及包括其的系统
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
CN102799819A (zh) * 2012-07-04 2012-11-28 北京京航计算通讯研究所 一种嵌入式软件安全保护系统
TWM476960U (en) * 2013-11-29 2014-04-21 Te Yuan Co Ltd Synchronization mechanism of rotation controller for electronic device
CN103778374A (zh) * 2014-02-19 2014-05-07 邹候文 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073805A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种数据读取方法和存储器

Also Published As

Publication number Publication date
CN105095097B (zh) 2018-10-16
US20150331810A1 (en) 2015-11-19
US9916261B2 (en) 2018-03-13
DE102015107823A1 (de) 2015-11-19

Similar Documents

Publication Publication Date Title
CN105095097A (zh) 随机化的存储器访问
CN107438850B (zh) 使用签名的地址验证
US20200226290A1 (en) Decentralized Token Table Generation
US10341099B2 (en) Cryptographic key generation using a stored input value and a stored count value
US10091000B2 (en) Techniques for distributing secret shares
CN105450620B (zh) 一种信息处理方法及装置
WO2020197718A1 (en) Verification of identity using a secret key
KR20170098731A (ko) 부채널 분석으로부터 회로를 보호하는 방법
US10389517B2 (en) Using secure key storage to bind a white-box implementation to one platform
WO2016042287A1 (en) Puf and address dependent data encryption
CN107078904A (zh) 混合密码密钥导出
US10354063B2 (en) Protection of a modular calculation
CN102014015B (zh) 智能密钥设备的自检方法
CN108011706A (zh) 数据处理装置和用于数据的加密处理的方法
JP2018509833A (ja) サイドチャネル解析抵抗アーキテクチャ
US20120106732A1 (en) Cryptographic countermeasure method by deriving a secret data
US9338142B2 (en) Method for verifying the security of a device that generates private and public cryptographic keys
Karageorgos et al. Chip-to-chip authentication method based on SRAM PUF and public key cryptography
CN103246494A (zh) 一种抵抗能量分析和错误攻击的安全模幂计算方法
EP3972187A1 (en) Protection of authentication tag computation against power and electromagnetic side-channel attacks
US11664981B2 (en) Impeding data access
US11924320B2 (en) Devices and methods for protecting cryptographic programs
CN209103293U (zh) 电子设备
Zhao et al. Research on Root of Trust for Embedded Devices based on On-Chip Memory
US20150215129A1 (en) Data encryption of a storage area

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