随机化的存储器访问的制作方法_2

文档序号:9375485阅读:来源:国知局
但是该预定的寻址方式由ARU 102在随机数生成 器104的帮助下而随机化。
[0057] 针对向写入存储器区域的写入置换,ARU 102采用已经用于从读出存储器区域读 出字节的相同索引。
[0058] 示例件实施例:将AES MixColumns橾作随机化
[0059] AES MixColumns操作可以使用对特定数据(AES状态列)的操作的特定序列。下 列公式描述了对单个列的AES MixColumns操作。
[0060] b〇= 2 · a 〇+3 · a^az+a^
[0061] Id1= a 0+2 · ap · a2+a3
[0062] b2= a g+ai+2 · a2+3 · a3
[0063] b3= 3 · a o+ai+a〗+〗· a3
[0064] 注意到,乘法2 · \和3 · a x表示在GF (2 s)中的乘法,而加法表示逐位异或操作 (XOR)。因此,被异或组合的各个操作量的次序对于AES MixColumns操作的结果不是决定 性的。
[0065] 此外,操作可以将16字节的临时状态变量"TEMP"用于存储中间结果。
[0066] 下列类Verilog的描述示出了 ARU 102的当被配置用于这类AES MixColumns操 作时的示例性功能:
[0067]
[0068] 初始地,在ARU中的随机置换生成器
(RPG)被里置为零,即,从0全15的所有值对 于选择可用(行2)。然后,生成随机置换的第一值(i)(行3)。
[0069] 取决于RAM访问的类型,而生成输出地址y。如果生成读出访问(行6),那么ARU 基于由软件提供的随机值i和源地址X、而生成用于特定字节的地址。因此,随机值i [3:2] 确定当前列,源地址X [1:0]确定当前列的当前字节,而随机值i [1:0]确定当前列的输出字 节地址。软件可以确保:原地址被正确地生成,并且当前列的所有4个字节一起正确地被相 乘并且被XOR运算,以计算所得字节。
[0070] 在写入访问的情况下,ARU生成输出地址y,该输出地址y等于当前随机值i (行 8)。同时,生成新的随机值(行10)。
[0071] 当所有16个值都已经被选择时,操作完成。
[0072] 示例件实施例:对来自存储器的共享倌的随机读出
[0073] 最后,ARU的用于执行对来自存储器的共享值的随机读出的功能,可对应于AES S-box操作。差异可以由软件所提供的对于来自存储器的数据的在该数据被写入回之前的 操作来确定。
[0074] 本文所提出的各个示例可以特别地基于下列方案中的至少一个。具体地,下列特 征的组合可以用于达到期望结果。方法的特征可以与设备、装置或系统的任何一个或多个 特征组合,或者反之亦然。
[0075] 提出了一种用于存储器访问的设备,该设备包括:
[0076] -用于进行对存储器的操作的第一部件,
[0077] -用于按随机化的方式访问存储器的第二部件,
[0078] -其中第一部件经由第二部件进行操作的至少部分。
[0079] 因此,全部操作在两个单元(即,第一和第二部件)之间分配。这些可以被布置在 相同的裸片、电路或硅片上。备选地,它们可以被布置在不同的这类裸片、电路或硅片上。通 过允许将用于操作(例如可以并行地进行的操作)的部分的存储器访问随机化,攻击者面 临额外的困难:一些存储器访问是(或者可能呈现为是)随机的。因此,通过仅仅对第一部 件进行探测,攻击者不能容易地确定哪个数据在何时被处理。这就增加了设备的安全性。
[0080] 特别地可选地,在第一部件与第二部件之间的通信具有针对篡改和/或监看的至 少一些保护。
[0081] 另外地可选地,第一部件和第二部件是彼此在其间具有通信链路的分离的物理元 件。
[0082] 注意到,"随机化的方式"可以基于随机值。本文提及的随机值可以是真随机值或 伪随机值。
[0083] 在一个实施例中,设备进一步包括随机数生成器,用于向第二部件提供随机值,以 便按随机化的方式来访问存储器。
[0084] 在一个实施例中,第二部件通过下列各项,按随机化的方式访问存储器:
[0085] -基于由第一部件提供的地址和随机值来确定映射的地址;
[0086] -将该映射的地址用于访问存储器。
[0087] 因此,操作的部分的结果可以被存储在存储器中,在由第一部件确定的存储器区 域中。然而,访问存储器的队列经由第二部件被随机化,即,可能与在第一部件上运行的软 件不同的额外的一件硬件。
[0088] 在一个实施例中,第二部件包括随机生成器,用于向第二部件提供随机值,以便按 随机化的方式来访问存储器。
[0089] 在一个实施例中,第二部件通过下列各项,按随机化的方式来访问存储器:
[0090] -基于由第一部件提供的地址和随机值,来确定映射的地址;
[0091] -将该映射的地址用于访问存储器。
[0092] 在一个实施例中,第一部件是处理器或控制器。
[0093] 在一个实施例中,第二部件是经由第一部件被配置的地址随机化单元。
[0094] 在一个实施例中,第二部件经由第一部件通过进行下列各项中的至少一项而被配 置:
[0095] -用于随机化的地址范围的下阈值,
[0096] -用于随机化的地址范围的上阈值,
[0097] -随机化的分配或类型。
[0098] 因此,配置可以确定存储器的地址范围,该地址范围将由第二部件使用。操作的部 分在该地址范围上进行,其中第二部件提供随机化的访问。
[0099] 可选地,由第二部件进行的随机化的访问可以被置换。
[0100] 在一个实施例中,操作的部分是可以并行地进行的操作。
[0101] 在一个实施例中,操作的部分包括下列各项中的至少一项:
[0102] -将对查找表的访问的顺序随机化;特别地:将AES S-box查找操作的顺序随机 化;
[0103] -将在可交换组操作中的操作的顺序随机化;
[0104] -将在关联组操作中的操作的顺序随机化;
[0105] -将条目的求和或求积的累积的顺序随机化;
[0106] -将条目的计算标积的累积的顺序随机化;
[0107] -将对中间值的按矢量或矩阵求积的计算的顺序随机化;特别是:将对AES混合列 操作的计算中的步骤的顺序随机化;
[0108] -将对按秘密共享模式的共享值的操作的顺序随机化;
[0109] -将在读取来自存储器的秘密秘钥的组份或共享量时的访问的顺序随机化;
[0110] -将在对称加密算法中的操作的顺序随机化;
[0111] -将在非对称加密算法中的操作的顺序随机化;
[0112] -将在加密哈希算法中的操作的顺序随机化。
[0113] 在一个实施例中,第二部件包括经由由第一部件提供的配置而更新的内部状态。
[0114] 在一个实施例中,内部状态通过经由第二部件而进行的对第一部件的读出或写入 操作而被设定。
[0115] 在一个实施例中,第二部件按随机化的方式来访问存储器,其中第二部件的对存 储器的随机化访问基于下列各项中的至少一项而确定:
[0116] -第二部件的配置,
[0117] -由第一部件提供的访问类型,
[0118] -由第一部件提供的输入地址,
[0119] -随机值,
[0120] -第二部件的内部状态。
[0121] 设置第二部件,该第二部件被布置用于:
[0122] -从第一部件接收关于存储器访问的信息,
[0123] -基于该信息并且基于随机值,来以随机化的方式访问存储器。
[0124] 在一个实施例中,该信息被用于由第一部件经由第二部件进行的操作的部分。
[0125] 提出了一种用于访问存储器的方法,该方法包括:
[0126] -由第二部件按随机化的方式来访问存储器,其中第一部件经由第二部件进行操 作的至少部分。
[0127] 因此,上文描述的特征适用于这类方法。
[0128] 在一个实施例中,方法进一步包括:
[0129] -通过基于由第一部件提供的地址和随机值,并且通过使用映射地址访问存储器, 按随机化的方式来访问存储器。
[0130] 在一个实施例中,方法进一步包括:
[0131] -经由第一部件来配置第二部件,其中这类配置可以包括下列各项中的至少一 项:
[0132] -用于随机化的地址范围的下阈值,
[0133] -用于随机化
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1