用于安全微控制器的外部存储器的数据交织方案的制作方法

文档序号:6370464阅读:208来源:国知局
专利名称:用于安全微控制器的外部存储器的数据交织方案的制作方法
技术领域
本发明总地涉及一种使用外部存储器的安全微控制器,更具体地,涉及用于通过在与安全微控制器接口连接的外部存储器中交织有用载荷数据(payload data)和完整性控制数据(integrity control data)来执行完整性校验的方法、系统和设备。
背景技术
微控制器通常是包括中央处理单元(CPU)内核、存储器和输入/输出(I/O)外设的单个集成电路。安全微控制器用于涉及在不安全环境下对贵重资产的可信操作的应用,在所述不安全环境下,盗贼或黑客可以进入用于传送和处理敏感数据的处理器内核、存储器设备或I/o外设。该敏感数据可以包括账号、存取码、个人识别号码(PIN)、加密密钥、财务交易/平衡、权限管理和计量(比如,能量、单位)。特别地,该敏感数据可以是用于控制CPU内核或I/O外设的程序或指令。各种安全特征已用于避免对这些敏感数据的未授权存 取。迄今为止,安全微控制器已应用于大范围的安全关键应用,诸如电子银行业务、商业交易和付费电视接入控制或者要求专有软件和方法的保护的任何应用。因为敏感数据可以储存在安全微控制器的外部存储器中,所以存储器内容机密性和完整性是应该解决的两种截然不同的威胁。第一种威胁引起敏感信息公开(即,数据机密性),在所述敏感信息公开中,机密数据被泄露,并且程序中的弱点被暴露。第二种威胁弓I起应用程序行为的修改(即,数据完整性),其涉及程序和数据在外部存储器中被修改,并且导致数据完整性问题。安全微控制器被设计来对储存在外部存储器中的敏感数据提供某一级别的安全性。例如,可以通过防篡改附件来建立物理安全防御探查。然而,该解决方案可能是昂贵的,并且不覆盖基于来自电源失灵、光、同步或异步激光或放射性粒子的故障注入的新型攻击方法。安全特征还可以包括存储器加密,在所述存储器加密中,在数据交换处理期间在安全微控制器中使用加密密钥对储存在外部存储器中的敏感数据进行加密或解密。加密密钥本地储存在安全微控制器中。结果,物理安全周界可以限于微控制器,而外部存储器及其通讯总线可以在物理上保持暴露。应该注意的是,通常,加密不独自提供足够的完整性保护。例如,加密算法与电子密码本模式(ECB) —起使用,并且在外部存储器中的损坏的密码文本上检测不到任何修改。损坏的密码文本被解密为明码文本,并且由于实际数据修改/损坏,该明码文本与和预期值不同的值相关联。然而,因为解密算法本身不标记任何错误,所以所得的明码文本仍被认为是合法值。底层数据格式可以用于识别数据损坏,并且对于一些数据格式,该损坏可能难以识别。微控制器中的不充足的数据完整性的典型例子是其中仅钱数被加密的财务交易。修改的密码文本将导致损坏的明码文本,该损坏的明码文本可能对应于比实际量大的量。不充足的数据完整性还发生在基于代码加密储存在的存储器中的微控制器指令的保护中。当存储器被篡改时,随机修改的密码文本指令将被解密为与原始的明码文本指令不匹配的修改的明码文本指令。该错误的明码文本指令可以根据特定的微处理器指令集及其明码空间(plain space)的覆盖范围而被认为是合法的。例如,MIPS 4KSd内核指令为32位长。任何32位指令中仅56%与有效的内核指令相关联,其余44%的32位指令被微控制器认为是非法的,并且通过发出微控制器异常而被拒绝。在另一种情况下,64位加密算法(诸如数据加密标准(DES))用于在加密/解密时处理两个32位的字。当64位密码文本指令被修改时,对应的解密的明码文本包括两个32位的字,并且这两个字都为合法的内核指令的概率大约为30%。结果,有70%的概率在损坏的64位DES系统中检测到密码文本修改和非法的32位指令。对于储存在外部存储器中的敏感数据实现数据完整性控制,以检测最初发送用于储存的内容与储存在存储器中的内容之间的任何自愿或不自愿的损坏。特定的完整性校验方法用于在存储器写操作期间产生完整性控制数据(即,标签或签名),并且所储存的数据的有效性在存储器读操作期间通过其与对应的完整性控制数据的一致性来进行验证。完整性控制构成防御故障注入攻击的充分保护,并且完整性控制模块可以嵌入在安全微控制器中,以确保对于利益相关者的足够的信任级别。
可以利用几种完整性校验方法。最简单的完整性校验方法是I位偶/奇同位校验,其中,一个完整性控制位被产生以在数据中的所有比特之间保持偶或奇同位。可供选择的完整性校验方法的范围从循环冗余校验(CRC)或纠错码(ECC)的简单方法到强有力的、经过证实的方法,诸如消息认证码(MAC)。尽管它们的安全抵抗性低,但是简单的完整性校验方法大部分足以防御不自愿的损坏;然而,强有力的、经过证实的方法对于防御自愿的或主动的损坏是强制性的。简单的方法(比如,ECC)通常不涉及秘密密钥,所以攻击者可以容易地产生一致的完整性数据,同时修改敏感数据。秘密元素(即,加密密钥)可以合并在一些强有力的、经过证实的完整性校验方法中。因为首先需要恢复秘密元素,所以防止了攻击者容易地进行修改。图I示出了与加密的存储器104接口连接的安全微控制器102。在该微控制器中考虑了前述数据机密性和完整性相关事项。安全微控制器102包括CPU内核106、存储器控制器110以及用于数据、地址和密钥的总线。用于完整性校验、数据加密或数据解密的方法合并在CPU内核102中。在存储器写操作期间,原始数据在CPU内核106中被加密为有用载荷数据以用于储存在存储器104中。在存储器读操作期间,来自存储器104的有用载荷数据在CPU内核106中被解密为原始数据。完整性控制数据在存储器写操作期间产生并且通常储存在CPU内核106内部的内部存储器中,并且在随后的存储器读操作期间被提取以用于数据完整性校验。完整性控制数据通常使用静态存储器地址来被储存在专用位置中。该解决方案在许多现有技术的微控制器中用于储存它们各自的完整性控制数据,比如,美国专利No. 5,708,274中的参考散列值和法国专利No. I, 885,709中的完整性校验值。这样的常规解决方案可能需要密集使用内部存储器,因此,可能是昂贵的解决方案,即使数据存取速率是满意的。

发明内容
本发明的各种实施方案涉及一种使用外部存储器的安全微控制器,更具体地,涉及用于通过在与安全微控制器接口连接的外部存储器中交织有用载荷数据和完整性控制数据来执行完整性校验的方法、系统和设备。在微控制器中产生多个数据字和多个逻辑地址,并且每个数据字与逻辑地址相关联。每个数据字用于基于完整性校验方法产生各自的完整性字,而相关联的逻辑地址被转换为外部存储器中用于该数据字的第一物理地址和用于该完整性字的第二物理地址。在外部存储器中基于数据映射方法交织数据字和相关联的完整性字,并且动态地确定该数据字和该完整性字的物理地址。外部存储器可以是只读存储器(ROM)、随机存取存储器(RAM)或闪存,并且可以具有分别用于数据字和完整性字的专用区域。在外部存储器中按周期性方案交织数据字和完整性字。具体地讲,每个数据字可以与完整性子字相关联,并且几个完整性子字形成具有与数据字的长度相同的长度的完整性字。因此,相关联的数据字以周期性 方案与该完整性字交替。使用外部存储器储存数据字和完整性字的微控制器被构造来在外部存储器中产生用于每个数据字和相关联的完整性字的两个物理地址。具体地讲,嵌入的加密和完整性保护块可以包括实现数据映射方法的地址转换器和产生完整性字的完整性控制数据产生器。所涉及的数据字和完整性字储存在外部存储器中。为了用于安全微控制器中,嵌入的加密和完整性保护块还包括用于数据加密/解密和完整性子字的临时储存的多个功能块。本发明的某些特征和优点在本发明内容部分中已作了概括描述;然而,附加的特征、优点和实施方案在本文中提供,或者对于本领域的普通技术人员来说,在考虑附图、说明书及其权利要求的情况下将是明显的。因此,应该理解,本发明的范围不应受本发明内容部分中所公开的具体实施方案限制。


将参照本发明的实施方案,其例子可以在附图中被图示说明。这些图的意图是说明性的,而非限制性的。虽然在这些实施方案的上下文中概括描述了本发明,但是应该理解,并非意图将本发明的范围限于这些具体实施方案。图I图示说明与其中考虑安全性和完整性相关事项的外部存储器接口连接的安全微控制器。图2图示说明根据本发明的各个实施方案的包括与外部存储器接口连接的安全微控制器的安全微控制器系统的示例性框图。图3(a)图示说明根据本发明的各个实施方案的在外部存储器中产生并储存交织数据字和完整性字的方法。图3(b)图示说明根据本发明的各个实施方案的从外部存储器提取数据字和完整性字的方法。图4图示说明根据本发明的各个实施方案的加密和完整性保护块的示例性框图。图5图示说明根据本发明的各个实施方案的外部存储器中的示例性数据交织方案。图6图示说明根据本发明的各个实施方案的外部存储器中的另一个示例性数据交织方案。图7图示说明根据本发明的各个实施方案的外部存储器中的示例性数据交织方案。
图8图示说明根据本发明的各个实施方案的按照数据交织方案将数据块中的数据的逻辑地址映射到外部存储器中的物理地址的示例性方法。
具体实施例方式本发明总地涉及一种使用外部存储 器的安全微控制器,更具体地,涉及用于通过在与安全微控制器接口连接的外部存储器中交织有用载荷数据和完整性控制数据来执行完整性校验的方法、系统和设备。在以下描述中,出于解释的目的,对特定细节进行了阐述,以便提供对本发明的理解。然而,对于本领域技术人员将是明显的是,可以在没有这些细节的情况下实施本发明。本领域技术人员将认识到,以下所述的本发明的实施方案可以以各种方式和使用各种结构来执行。本领域技术人员还将认识到,另外的修改、应用和实施方案在其范围内,如同其中本发明可以提供效用的另外的领域一样。因此,下述实施方案是用以说明本发明的特定实施方案的,并且意在于避免模糊本发明。本说明书中对“一个实施方案”或“实施方案”的参照意指结合该实施方案描述的具体特征、结构、特性或功能包括在本发明的至少一个实施方案中。本说明书中各个地方的措词“在一个实施方案中”、“在实施方案中”等的出现不必全都指的是同一个实施方案。此外,图中组件之间或者方法步骤之间的连接不限于直接实现的连接。相反,在不脱离本发明的教导的情况下,图中所示的组件之间或者方法步骤之间的连接可以通过将中间组件或方法步骤添加到这些组件或方法步骤来进行修改或换句话讲改变。图2图示说明了根据本发明的各个实施方案的包括与外部存储器接口连接的安全微控制器220的安全微控制器系统的示例性框图200。安全微控制器220包括CPU内核206、加密和完整性保护块208、存储器控制器210、密钥储存器212以及用于数据、地址和密钥的总线。加密和完整性保护块208用于实现地址映射、完整性数据计算、完整性校验、数据加密和数据解密。在本发明的各个实施方案中,完整性控制数据由块208产生,随后储存在加密的并且完整性受到保护的存储器240(即,外部存储器240)中,以使得无需为完整性控制数据预留CPU内核206中的内部存储空间。因此,加密和完整性保护块208以及存储器控制器210被调整来在外部存储器中不仅为有用载荷数据,而且还为对应的完整性控制数据产生并访问物理地址。在本发明的各个实施方案中,在块208中,而不是在外部存储器240中实现完整性管理(比如,ECC),但是某些存储器(诸如NAND闪存)也可以提供完整性管理。外部存储器240被分割为至少一个明码内容区域214和至少一个加密内容区域216。储存在加密内容区域216中的内容可以包括有用载荷数据和完整性控制数据。有用载荷数据是与机密信息(比如,用户名、密码、交易等)相关联的加密程序或数据。每个完整性控制数据根据特定的完整性校验方法(其在一些情况下可能是专有的)从原始数据或加密数据(即,有用载荷数据)推导得到。有用载荷数据和完整性控制数据在外部存储器240中分别被储存为有用载荷数据字(即,数据字)和完整性控制数据字(即,完整性字),并且这些字的长度与存储器类型以及用于加密和完整性校验的方法相关联。一种方便的解决方案是将数据字和完整性控制数据字储存在它们各自在外部存储器240中的专用区域中。特定地址范围内的存储器被构造来分别储存数据字和完整性控制数据。结果,数据字及其相关联的完整性字储存在可以在物理上彼此远离的两个存储单元处,并且甚至可以被安置在两个分离的存储页面处。在本发明的各个实施方案中,完整性字在外部存储器240中根据规律数据交织方案与数据字交织,以改进性能。规律数据交织方案通过检索与相关联的数据储存位置相邻的专用完整性储存位置中的完整性字来简化数据流程和避免跳转机制。具体地讲,规律数据交织方案对于分页存储器(诸如SDRAM)是优选的,其中,在页面之间跳转需要额外的页面切换时间,并且显著地降低了存储器存取速率。在一个实施方案中,利用其中每几个数据字可以与和这些数据字直接相关联的完整性字交织的周期性方案。为了实现规律数据交织方案,加密和完整性保护块208执行外部存储器240的自动重新映射,以使得CPU内核206可以取出数据和程序/指令,而不识别用于相关联的完整性字的地址。外部存储器240被分配来动态地储存有用载荷数据和完整性控制数据。在某些实施方案中,外部存储器240可以包括在RAM、ROM和闪存之间的多于一个的存储器。安全微控制器220与外部存储器240中的各个存储器接口连接,而不配置用于每个存储器的专用 数据区域。因为涉及到多于一个的存储器,所以在加密和完整性保护块208中动态地实现用于某些数据交织方案的地址映射。在某些实施方案中,在存储器写操作期间,CPU内核206将数据地址和逻辑地址提供给加密和完整性保护块208,加密和完整性保护块208进一步使用加密方法将该数据加密为有用载荷数据。加密方法基于逻辑地址和密钥,并且密钥固定地或随机地由CPU内核206产生,并且储存在密钥储存器212中。在一个实施方案中,加密方法直接基于从逻辑机制转换的物理地址。完整性控制数据在加密和完整性保护块208中基于该数据使用预定的完整性校验方法来产生。在某些实施方案中,至少一个加密密钥用于产生完整性控制数据。除了加密数据和产生对应的完整性控制数据之外,块208还将输入的逻辑地址转换为两个分离的物理地址,一个用于有用载荷数据,另一个用于完整性控制数据。存储器控制器210识别外部存储器240中的物理地址,并且如这些物理地址所指定的那样储存有用载荷数据和完整性控制数据。在某些实施方案中,在存储器读操作期间,逻辑地址由CPU内核206提供,以从外部的加密的并且完整性受到保护的存储器240提取特定的有用载荷数据。加密和完整性保护块208对逻辑地址进行转换,以恢复分别用于有用载荷数据和相关联的完整性控制数据的两个物理地址。该地址恢复处理中所使用的方法类似于当该数据在存储器写操作期间需要被储存时所使用的转换逻辑地址的方法。存储器控制器210使得能够存取储存在指定的物理地址处的存储器内容,并且加密和完整性保护块208被耦合以从加密的并且完整性受到保护的存储器240接收有用载荷数据和完整性控制数据。解密方法可以被实现来使用储存在密钥储存器212中的逻辑地址和密钥来恢复有用载荷数据,而相关联的完整性数据则从存储器240提取。使用以前用于产生完整性控制数据的相同完整性校验方法来处理从有用载荷数据恢复的数据。如果从恢复的数据重新产生的完整性控制数据与从外部存储器240提取的完整性控制数据一致,则恢复的数据是有效的,并且随后被提供给CPU内核206 ;否则,确认错误,并且利用专用硬件来基于微控制器的安全策略引发(raise)CPU异常。在本发明的各个实施方案中,可以利用CPU异常来擦除敏感数据、触发不可屏蔽中断、将值写在标志寄存器中、重置微控制器或者运行专用代码。数据交织提高了安全微控制器的成本效率。在常规的安全微控制器中,完整性控制数据储存在内部存储器中,而在本发明中,该内部存储器可以省去,因为与完整性控制数据相关联的至少一部分被移到安置在CPU内核外部的加密的并且完整性受到保护的存储器240。由于该安全完整性数据储存器在外部存储器中的可用性,用于CPU内核的成本将被极大地降低。图3(a)图示说明根据本发明的各个实施方案的在外部存储器240中产生并储存交织数据字和完整性字的方法300。在步骤302,接收数据字及其在数据块内的逻辑地址。在步骤304,进一步基于预定的加密方法对该数据字进行加密,并且在步骤306,基于预定的完整性校验方法从该数据字产生完整性字。在一个实施方案中,完整性字还可以从加密的数据字(即,有用载荷数据)产生。在步骤310,将逻辑地址映射到外部存储器中的两个物理地址,一个物理地址用于加密的数据字(即,有用载荷数据),另一个物理地址用于完整性字(即,完整性控制数据)。在步骤310中,可以并入数据交织方案。结果,在步骤312,可以将数据字和完整性字分别储存在根据这两个物理地址寻址的存储器中。·图3(b)图示说明根据本发明的各个实施方案的从外部存储器240提取数据字和完整性字的方法350。对于感兴趣的数据字,在步骤352,接收数据块内的逻辑地址。该逻辑地址用于在步骤354根据数据交织方案识别用于数据字和完整性字的两个物理地址。因此,在步骤356,从指定的物理地址提取数据字和完整性字。在步骤358,基于与加密方法相反的解密方法对数据字进行解密,并且在步骤360,使用完整性校验方法来进一步使用解密的数据字产生重新产生的完整性字。在一个实施方案中,重新产生的完整性字还可以从加密的数据字产生。从外部存储器提取的完整性字由在先前的加密处理期间相同的完整性校验方法产生,因此,在步骤364,可应用恢复的完整性字与重新产生的完整性字之间的一致性来进行数据验证。如果一致性存在,则可以输出从外部存储器提取的数据字;否则,应该输出错误标志。各种结构合并在加密和完整性保护块208中,以实现数据加密/解密、完整性字产生、完整性校验和地址映射的关键功能。图4图示说明根据本发明的各个实施方案的加密和完整性保护块208的示例性框图400。加密和完整性保护块400包括地址转换器402、数据加密器404、数据解密器406、完整性控制数据产生器412和完整性验证块414。前述存储器写处理和读处理分别用实线和虚线标示。逻辑地址在存储器写操作和存储器读操作二者期间在地址转换器402中被转换为用于有用载荷数据和完整性控制数据的两个相应物理地址。在存储器写操作期间,输入数据在数据加密器404中被加密为有用载荷数据,而完整性控制数据在完整性控制数据产生器412中产生。在存储器读操作期间,有用载荷数据从外部存储器240提取,在数据解密器406中被解密,并且在完整性控制数据产生器412中用于重新产生完整性控制数据。完整性控制数据在完整性验证块414中被进一步与提取的完整性控制数据进行比较。分别关于从外部存储器提取的有效的或无效的有用载荷数据输出解密数据或错误标志。存取完整性控制数据将延迟引入到有用载荷数据的读操作和写操作。每次读取或写入有用载荷数据,就从外部存储器读取相关联的完整性控制数据或者将相关联的完整性控制数据写入到外部存储器。可以极大地缩短存储器存取时间。因此,在某些实施方案中,完整性高速缓存416可以用于通过在连续的读操作或写操作期间临时储存完整性控制数据来提高存储器存取速率。完整性高速缓存416不同于CPU内核中所包括的CPU高速缓存。在各个实施方案中,连续的数据字与一个完整性控制数据字中的不同完整性子字相关联。完整性控制数据字可以在一个存储器读操作中被读取,并且被储存在完整性高速缓存416中,以供几个连续的有用载荷数据读操作使用。多个完整性控制数据子字在连续的存储器写操作期间可以使用完整性高速缓存416和组合块进行组合,并且在一个存储器写操作内被写入到外部存储器240中。几种方法可以用于写入到安全微控制器的外部存储器中或者从安全微控制器的外部存储器读取。这些方法包括数据映射方法、数据加密方法和完整性校验方法。数据加密方法可以被反转来提供对应的数据解密方法。具体地讲,在本发明的各个实施方案中,数据交织方案整合在地址转换器402中的数据映射方法中。在加密的并且完整性受到保护的存储器240中,根据某一数据交织方案对有用载荷数据和完整性控制数据进行交织,并且在存储器读和写操作期间相应地从每一个逻辑地 址转换两个物理地址。具体地讲,存在其中有用载荷数据和完整性控制数据按周期性配置布置的规律数据交织方案的各种实施方案。在一个实施方案中,每一个有用载荷数据字后跟着一个相关的完整性控制数据字。在另一个实施方案中,几个有用载荷数据字形成有用载荷数据块,并且每个有用载荷数据块后跟着一个完整性控制数据字或块,该完整性数据字或块包含有用载荷数据块中所包括的所有有用载荷数据字的完整性控制数据。有用载荷数据和相关的完整性控制数据在存储器240中可以在物理上不安置在一起。数据交织方案直接确定地址转换器402所使用的数据映射方法,以在存储器读操作和写操作期间将一个逻辑地址转换为用于有用载荷数据和完整性控制数据的两个不同物理地址。图5图示说明根据本发明的各个实施方案的外部存储器240中的示例性数据交织方案500。每个有用载荷数据字(即,数据字DW)后紧跟着一个完整性控制数据字(即,完整性字IW),该完整性字IW基于完整性校验方法与在前的有用载荷数据字相关。例如,数据字和完整性控制数据字的长度可以是如外部存储器规范所指定的16位、22位、54位或128位。在某些实施方案中,数据字的长度和完整性字的长度不等,并且可以小于外部存储器所允许的字长。O或I可以用于填充未使用的位。未使用的位可以是首先的几个位或者最后的几个位,并且它们还可以随机地与被使用的位混合,只要它们的位置被存储器控制器210跟踪即可。在本发明的各个实施方案中,每几个数量的数据字在外部存储器240中与相同长度的一个完整性字交织。该完整性字由具有相等长度的几个完整性子字(ISW)组成。每个ISW是基于完整性校验方法与有用载荷数据字相关的完整性字。因此,完整性子字的数量等于数据字的数量。储存在外部存储器中的数据字为i位宽,其中,i为整数。每个ISW的长度ISWlmgth是数据字长度i的一小部分,并且可以如下推导得到ISWlcnvh =-
' nCl)其中,η是数据字的数量和完整性子字的数量。等式(I)可应用于其中完整性子字具有相等长度的周期性数据交织方案。图6图示说明根据本发明的各个实施方案的存储器240中的另一个示例性周期性数据交织方案600。每八个128位的数据字与一个128位的完整性控制数据字交替,该128位的完整性控制数据字由八个16位的完整性子字组成。这八个16位的完整性子字中的每个基于完整性校验方法连续地与所述八个128位的有用载荷数据字中的每个相关。在该实施方案中,128位的完整性字IWO由八个16位的完整性子字ISW0-ISW7组成,并且ISffO-ISW7分别对应于八个连续的数据字DW0-DW7。具体地讲,占据IWO的最低有效16位的完整性子字ISWO与首先的数据字DWO相关,而占据IWO的最高有效16位的完整性子字ISW7与最后的数据字DW7相关。在该实施方案中,数据交织方案与等式(I) 一致,并且整数i和η分别等于128和8。图7图示说明根据本发明的各个实施方案的外部存储器240中的示例性数据交织方案700。与每个数据字相关的每个完整性子字的长度为I位。数据字长度i和ISW的数量η相等。I位的完整性控制字可以从偶/奇同位校验产生。i位的有用载荷数据字基于某一完整性校验方法连续地与I位的完整性控制字相关。首先的数据字DWO与作为i位的完整性字的最低有效位的ISWO相关联,而最后的数据字DWp1与作为i位的完整性字的最高有效位的ISWp1相关联。由于ISW长度为I位,所以该实施方案是可以用等式(I)表示 的极限情况。图8图示说明根据本发明的各个实施方案的按照某一数据交织方案将数据块中的数据的逻辑地址映射到外部存储器240中的物理地址的示例性方法800。需要将逻辑地址变换为物理地址的等式。在图5中所图示说明的实施方案中,每八个128位的有用载荷数据与一个128位的完整性控制数据字交织。输入数据块内的第X有用载荷数据字可以被映射到储存在外部存储器中的所得数据块内的第y字。输入数据和所得数据的索引二者都从O开始。基于特定的周期性数据交织方案,所得数据块中的相对地址X和I的关系可以表示为y = 9x floor今)+ mod(x,8)^其中,;^1001^/8)是通过将1除以8得到的圆整结果,1110(1(1,8)是余数。结果,每八个有用载荷数据与一个完整性控制数据交织,该完整性控制数据在所得数据块中的相对地址Addiw为Addnv = 9x floot-φ) + 8(3)
O用于有用载荷数据和完整性控制数据的相对地址在地址转换器402中产生,并且被进一步叠加到块地址,以识别它们在外部存储器中的物理地址。等式(2)和(3)嵌入在地址转换器402所利用的数据映射方法中。一个完整性字(IW)包括占据IW的不同位的多个完整性子字(ISW)。因为数据字(Dff)储存在外部存储器中,所以也将ISW(即,IW中的多个位)写入到对应的存储器字中。与连续的数据字相关联的完整性子字形成一个完整性字,并且共享用于该完整性字的同一物理地址。在一个实施方案中,完整性字被提取一次,并且储存在完整性高速缓存416中。完整性子字在针对各个有用载荷数据的连续的读操作期间被提取。在一个实施方案中,力口密和完整性保护块208使用完整性高速缓存416来临时储存用于存储器写操作的ISW。在完整的完整性字可以储存在该完整性字的物理地址所指定的存储器字中之前,块208等待要从连续的有用载荷数据推导得到的完整的完整性字。该实施方案允许写操作期间的短存储器存取时间。在另一个实施方案中,完整性字从IW物理地址提取,并且在完整性字被储存回外部存储器中的指定IW物理地址处之前,被分配给当前有用载荷数据字的位被ISW覆写。另外的模块(比如,完整性高速缓存)和控制整合在加密和完整性保护块208中,以在如果多个数据字与一个字相关联时交织数据。数据交织方案用硬件来实现,并且对于安全微控制器所使用的软件表现为是透明的。该软件通常使用逻辑地址,而无需使用额外的寄存器来配置外部存储器中的数据区(即,块)。在本发明中,逻辑地址被配置为地址转换器中的物理地址。由于在硬件中对数据交织方案进行编程,所以数据机密性和数据完整性二者都得到增强。虽然周期性数据交织方案在一些存储器(比如,SDRAM)中是优选的,但是本领域技术人员将认识到可以使用更复杂的数据交织方案。在一个实施方案中,完整性控制数据的物理地址可以从依赖于密钥的特殊方法产生。复杂的数据交织方案将增强数据机密性,并且对攻击者创建从外部存储器中的完整性控制数据辨别有用载荷数据的更多障碍。与数据加密方法组合,该复杂的数据交织方案提供保护安全微控制器免受大多数篡改努力影响的鲁棒解决方案。用于实现复杂的数据交织方案的方法合并在地址转换器402中,并且用于设计和硬件的成本随着数据交织方案的复杂性而提高。·外部存储器中的数据交织方案对于确保安全微控制器中的数据机密性和数据安全性尤其有用。然而,本领域的普通技术人员可以认识到交织数据方案还可应用于常规的微控制器中。这些微控制器可能需要节省昂贵的CPU存储器储存完整性控制数据的成本。合并在地址转换器中的数据映射方法可以用于实现数据交织方案,并且存储器控制器可以被路由到外部存储器,而不是内部CPU存储器。对于以上说明书,所提及的“有用载荷数据”意指与由CPU内核206提供并且储存在存储器240中的“数据”相关联的加密数据。然而,在存储器写操作或读操作期间不涉及加密/解密的情况下,“有用载荷数据”可以等同于“数据”。本说明书中各个地方的措词“有用载荷数据字”和“数据字”等同。本说明书中各个地方的措词“完整性控制数据字”和“完整性字”也是等同的。在本发明的各个实施方案中,“数据”的使用不仅与和机密信息(比如,用户名、密码、交易等)相关的数据相关联,而且还与由CPU内核执行的程序、指令和代码相关联。虽然本发明可以有各种修改形式和替换形式,但是其特定实施例已经在图中示出,并且在本文中作了详细描述。然而,应该理解,本发明不限于所公开的具体形式,而是相反的,本发明要覆盖落在所附权利要求的范围内的所有修改形式、等同形式和替换形式。
权利要求
1.一种用于将数据字和完整性字安全地储存在微控制器的外部存储器内的方法,所述方法包括 接收多个数据字和多个逻辑地址; 使所述多个数据字之中的每个数据字与所述多个逻辑地址之中的一对应的逻辑地址相关联; 基于完整性校验方法从所述多个数据字产生多个完整性字,每个完整性字与所述多个数据字之中的至少一个数据字相关联; 基于数据映射将所述多个逻辑地址转换为所述外部存储器内的多个第一物理地址和所述外部存储器内的多个第二物理地址; 将所述多个数据字加密为多个加密数据字; 将所述多个加密数据字储存在所述外部存储器中的所述多个第一物理地址中;以及 将所述多个完整性字储存在所述外部存储器中的所述多个第二物理地址中。
2.如权利要求I所述的方法,其中所述外部存储器是从由只读存储器、随机存取存储器和闪存组成的组中选择的一个。
3.如权利要求I所述的方法,在将所述多个完整性字储存在所述外部存储器中的所述多个第二物理地址中的步骤之前还包括将所述多个完整性字之中的至少一个完整性字储存在所述微控制器中的完整性高速缓存中的步骤,其中所述完整性高速缓存不同于CPU高速缓存。
4.如权利要求I所述的方法,其中所述多个完整性字之中的每个完整性字具有第一位数,并且所述多个加密数据字之中的每个加密数据字具有第二位数,所述第一位数等于所述第二位数。
5.如权利要求I所述的方法,其中每个完整性字包括多个完整性子字,每个完整性子字对应于所述多个数据字之中的一数据字。
6.如权利要求I所述的方法,其中所述多个加密数据字和所述多个完整性字在所述外部存储器中交织。
7.如权利要求6所述的方法,其中所述多个加密数据字的子集与完整性字相关联,所述完整性字具有与所述多个加密数据字的所述子集对应的多个完整性子字,所述子集按交织方案与所述完整性字储存在所述外部存储器内。
8.如权利要求7所述的方法,其中所述多个加密数据字的所述子集具有八个加密数据字,并且所述完整性字具有八个完整性子字。
9.一种用于将数据字和完整性字安全地储存在微控制器的外部存储器内的方法,所述方法包括 接收多个数据字和多个逻辑地址; 使所述多个数据字之中的每个数据字与所述多个逻辑地址之中的一对应的逻辑地址相关联; 基于完整性校验方法从所述多个数据字产生多个完整性字,每个完整性字与所述多个数据字之中的至少一个数据字相关联; 基于数据映射将所述多个逻辑地址转换为所述外部存储器内的多个第一物理地址和所述外部存储器内的多个第二物理地址;将所述多个数据字储存在所述外部存储器中的所述多个第一物理地址中;以及 将所述多个完整性字储存在所述外部存储器中的所述多个第二物理地址中。
10.如权利要求9所述的方法,在将所述多个完整性字储存在所述外部存储器中的所述多个第二物理地址中的步骤之前还包括将所述多个完整性字之中的至少一个完整性字储存在所述微控制器中的完整性高速缓存中的步骤,其中所述完整性高速缓存不同于CPU高速缓存。
11.如权利要求9所述的方法,其中每个完整性字包括多个完整性子字,每个完整性子字对应于所述多个数据字之中的一数据字。
12.如权利要求9所述的方法,其中所述多个加密数据字和所述多个完整性字在所述外部存储器中交织。
13.—种安全微控制器系统,所述安全微控制器系统包括 中央处理内核,所述中央处理内核产生多个数据字和多个逻辑地址; 加密和完整性块,所述加密和完整性块与所述中央处理内核耦合,所述加密和完整性块从所述多个数据字产生多个完整性字,对所述多个数据字进行加密,并且将所述多个逻辑地址映射到所述外部存储器内的多个第一物理地址和多个第二物理地址;以及 存储器控制器,所述存储器控制器与所述加密和完整性块耦合,所述存储器控制器将所述多个加密数据字储存在所述多个第一物理地址中,并且将所述多个完整性字储存在所述多个第二物理地址中。
14.如权利要求13所述的安全微控制器系统,其中每个完整性字包括多个完整性子字,每个完整性子字对应于所述多个数据字之中的一数据字。
15.如权利要求13所述的安全微控制器系统,其中所述多个加密数据字和所述多个完整性字在所述外部存储器中交织。
16.如权利要求13所述的安全微控制器系统,其中所述加密和完整性保护块还包括 完整性控制数据产生器,所述完整性控制数据产生器基于完整性校验方法从所述多个数据字产生多个完整性字; 地址转换器,所述地址转换器基于数据映射将所述多个逻辑地址转换为所述多个第一物理地址和所述多个第二物理地址;以及 数据加密器,所述数据加密器基于数据加密方法将所述多个数据字加密为所述多个加密数据字; 其中所述多个第一物理地址和所述多个第二物理地址二者都与所述微控制器的外部存储器相关联; 其中所述多个完整性字中的每个与所述多个数据字中的至少一个相关联。
17.如权利要求16所述的安全微控制器系统,其中所述加密和完整性保护块还包括用于储存所述多个完整性字中的至少一个的完整性高速缓存,其中所述完整性高速缓存不同于CPU高速缓存。
18.一种用于提取微控制器的外部存储器内的加密数据字和完整性字的方法,所述方法包括 接收多个逻辑地址; 基于数据映射将所述多个逻辑地址转换为所述外部存储器内的多个第一物理地址和所述外部存储器内的多个第二物理地址; 从所述外部存储器中的所述多个第一物理地址读取多个加密数据字,并且从所述外部存储器中的所述多个第二物理地址读取多个完整性字; 将所述多个加密数据字解密为多个数据字; 基于完整性校验使用所述多个恢复的完整性字来校验所述多个数据字的有效性;以及 如果所述多个数据字有效,则输出所述多个数据字。
19.如权利要求18所述的方法,其中校验所述多个数据字的有效性的步骤还包括以下步骤 基于所述完整性校验从所述多个数据字重新产生多个重新产生的完整性字; 将所述多个重新产生的完整性字与所述多个完整性字比较;以及 通过与所述多个完整性字和所述多个恢复的完整性字之间的一致性相关联的比较结果来指示所述多个数据字的有效性。
20.如权利要求18所述的方法,其中所述多个数据字的有效性被进一步用于基于所述微控制器的安全策略来引发CPU异常,所述CPU异常用于实现从功能组选择的至少一种功能,所述功能组包括擦除所述敏感数据、触发不可屏蔽中断、将值写在标志寄存器中、重置所述微控制器以及运行专用代码。
21.如权利要求18所述的方法,其中所述外部存储器是从由只读存储器、随机存取存储器和闪存组成的组中选择的一个。
22.如权利要求18所述的方法,在基于完整性校验使用所述多个恢复的完整性字来校验所述多个数据字的有效性的步骤之前还包括将所述多个完整性字之中的至少一个完整性字储存在所述微控制器中的完整性高速缓存中的步骤,其中所述完整性高速缓存不同于CPU高速缓存。
23.如权利要求18所述的方法,其中所述多个完整性字之中的每个完整性字具有第一位数,并且所述多个加密数据字之中的每个加密数据字具有第二位数,所述第一位数等于所述第二位数。
24.如权利要求18所述的方法,其中每个完整性字包括多个完整性子字,每个完整性子字对应于所述多个加密数据字内的加密数据字。
25.如权利要求18所述的方法,其中所述多个加密数据字和所述多个完整性字在所述外部存储器中交织。
26.如权利要求25所述的方法,其中所述多个加密数据字的子集与完整性字相关联,所述完整性字具有与所述多个加密数据字的所述子集对应的多个完整性子字,所述子集按交织方案与所述完整性字储存在所述外部存储器内。
27.如权利要求26所述的方法,其中所述多个加密数据字的所述子集具有八个加密数据字,并且所述完整性字具有八个完整性子字。
全文摘要
本发明的各个实施方案涉及在与微控制器接口连接的外部存储器中交织有用载荷数据和完整性控制数据以改进数据完整性校验、增强数据机密性和节省内部存储器的系统、设备和方法。接收多个数据字和多个逻辑地址以用于储存在外部存储器中。每个数据字用于基于完整性校验方法产生各自的完整性字,而相关联的逻辑地址根据数据映射方法被转换为外部存储器中用于该数据字的第一物理地址和用于该完整性字的第二物理地址。数据字可以在被储存在安全微控制器中的外部存储器中之前被加密。用于数据字和相关联的完整性字的物理地址在外部存储器中交织,有时按周期性方案交织。具体地讲,每个数据字可以与具有与数据字的长度相同的长度的完整性字中所包括的完整性子字相关联。外部存储器可以是ROM、RAM或闪存,并且可以具有分别用于数据字和完整性字的专用区域。
文档编号G06F11/08GK102855161SQ20121017226
公开日2013年1月2日 申请日期2012年5月29日 优先权日2011年5月30日
发明者V·德伯特, F·莱尔米特, Y·洛邑塞尔, A·C·罗莱特 申请人:马克西姆综合产品公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1