安全的片上系统的制作方法

文档序号:6570173阅读:173来源:国知局
专利名称:安全的片上系统的制作方法
技术领域
本发明涉及片上系统领域,而尤其涉及它的安全。
背景技术
片上系统(SoC或SOC)是将计算机或其它电子系统的所有部 件集成为单个集成电路(芯片)中的想法。其可以在一个芯片上包含 数字、模拟、混合信号以及常有的射频功能等所有功能。典型的应用 是在嵌入系统的领域。
已经公开了处理器的安全环境,尤其针对多处理架构。例如,在 文献W004015553中描述了限制对安全存储器的访问的解决方案。根 据该方案,处理器具有两种工作模式;在被称作安全模式的第一模式 中,允许对安全存储器进行访问;而在非安全模式中,禁止对安全存 储器进行访问。非安全模式是为了开发的目的,即,测试或调试电路。 在以非安全模式执行期间,物理地阻止对安全存储器进行访问,即, 产生"禁用"信号。该"禁用,,信号禁止任何对安全存储器进行访问的企 图。
在文献PCT/EP2005/056145中描述了另一个解决方案,其中单 片解扰处理器处理加扰的音频/视频数据,以便毫不允许对未加密数据 (clear data )进行访问。当执行解扰操作时,解扰单元包括加密引擎 以在解扰的数据被临时存储在外部存储器之前对解扰的数据进行加 密。当处理器完成组织任务时,在输出模块中将该数据解密,并且将 其发送到显示设备。

发明内容
本发明的目的在于提供一种用于处理数据的安全片上系统,该片
上系统至少包括中央处理单元、输入通道和输出通道、加密/解密引擎 和存储器,其特征在于,所述输入通道包括在所有进来的数据上添加 内部加密层的输入加密模块,所述输出通道包括去除在所有出去的数 据上的内部加密层的输出解密模块,所述中央处理单元从输入加密模 块接收被加密的数据并将其存储在存储器中,而在处理所存储的数据 时,所述中央处理单元从所述存储器中读取所存储的数据,请求在所 述加密/解密引擎中去除所述数据的所述内部加密层,处理所述数据且 请求通过所述加密/解密引擎对结果进行加密从而添加所述内部加密 层并存储加密的结果,向所述输出解密模块输出所述结果以去除所述 内部加密层,以及经由所述输出通道输出所述结果。
本发明的主要特征是在片上系统内添加加密层。输入片上系统和 从片上系统输出的数据通常被加密。将附加的加密层施加到那些数 据,从而在片上系统中存储的所有数据至少具有一层加密层。 一旦在 片上系统中接收到数据,那么通常利用属于传输系统的密钥来对这些
数据进行解密,并且用明文(inclear,或未加密)存储该结果。在本发 明中, 一旦加密的消息被由片上系统读取,内部加密层就被施加到该 消息上,并且被传送到处理单元。所述单元可以将其存储以进一步使 用或者立即处理该消息。在处理该消息时,第一步是去除内部加密层, 使得数据与由片上系统接收的数据处于相同的状态。在该消息被处理 并且(例如)权限被提取后,在被存储之前,该权限被进一步加密以 添加内部加密层。
内部加密层的去除只在中央单元实际使用数据的后期阶段发生, 在静态绝不可以访问未加密数据。当已处理数据时,如果其用于内部 目的,则可以以明文存储该数据,或者如果期望将该数据从片上系统 输出,则对该数据再加密(即,添加内部加密层)。
一旦再加密所述数据,在将该数据发送到输出通道之前,将其临 时存储在緩冲器中。
在优选实施例中,对数据进行加密和解密的密钥对于片上系统是 唯一(unique,或独特)的。该密钥可以在制造步骤中被编程,或者该
密钥可以在初始化阶段随机生成且绝不会被任何人知道。只在内部使 用该密钥。所使用的算法以及所述算法的参数可以被保持为秘密的。
例如,算法IdeaNxt被用作加密引擎,而在片上系统中随机产生替换 盒的值。
根据特定实施例,加密/解密算法是非对称的,从而用密钥对(公 共/私有)来对数据分别进行加密和解密。
根据替换实施例,输入加密模块可以由签名模块替代,在数据进 入片上系统时对数据签名,并且该签名与该数据一起被存储。当中央 单元期望使用该数据时,现在作为签名验证引擎的加密/解密引擎检查 该签名,并且如果该签名是正确的,则授权使用该数据。
数据是指例如用于在片上系统中形成消息或权利(entitlement)消 息的单字节或一组字节。


根据附图将更好地理解本发明,其中
图l描述了在加密/解密模式中的片上系统和其各种单元;
图2A和2B描述了使用两个单元的加密阶段;
图3描述了在签名模式中的片上系统和其各种单元。
具体实施例方式
安全片上系统SOC基于中央处理单元CPU。该单元的目的是执行 代码且执行所请求的任务。片上系统SOC包括连接到外部的两个通 道,即,输入和输出通道。输入通道RCV包括输入加密模块RCV-E, 其将来自外部的所有数据加密,从而添加内部加密层。以相同的方式, 输出通道SND包括输出解密模块SND-D以在将从中央单元CPU接收 的数据发送到外部之前对其进行解密,从而去除内部加密层。
中央单元CPU具有对加密/解密引擎CR-EN的访问权。该引擎具 有与输入引擎模块和输出引擎模块相同的功能。加载在输入引擎模块 中的密钥K与在加密/解密引擎的加密部分中的密钥相同。对于解密操
作,相同的密钥应用到输出解密模块和加密/解密引擎的解密部分。当
中央单元CPU需要或是直接来自输入加密模块或是从存储器MEM取 出的某些数据时,首先使这些数据通过解密引擎以在由中央单元CUP 使用其之前去除内部加密层。
以相同的方式,当中央单元CUP完成了任务并产生结果时,接下 来的步骤是存储该结果(或向输出通道输出该结果)。使该结果预先 通过加密引擎CR-EN以在对其进行存储之前添加内部加密层。然后, 该加密结果可以被存储在存储器中或者可以4皮发送到输出通道。
中央处理单元CUP可以判断所述结果是否要被再加密或者保持 其不被加密。取代使处理器进行判断,目标位置可以选择不同的行为, 如图2A所示。在这种情况下,内部加密层由使用两个不同密钥K1、 K2的两个加密单元ENC1、 ENC2构成,两个不同密钥K1、 K2中的一 个为永久密钥,且一个为随机生成的密钥。如果所述结果要被存储在 易失性存储器V-MEM中,那么两个加密单元都对数据加密。相反, 如果存储在非易失性存储器NV-MEM (EEPROM)中,那么只使用 一个加密单元,即具有永久密钥的加密单元。以相同的方式,当从易 失性存储器中读取数据时,应用双解密,尽管当从非易失性存储器中 读取数据时只应用一个解密单元。
-限据图3中示出的可替换实施例,通过签名处理来代替加密处理。 不对数据进行加密,而是生成签名,且使该签名与数据相关联。对于 来自外部的所有数据,在输入签名模块RCV-S中计算签名。然后利用 它们的签名来存储数据。当中央单元需要访问这些数据时,在中央单 元具有权使用数据之前,签名验证引擎S-VER首先验证签名。在通过 输出通道输出数据之前,在输出签名模块SDN-V中验证签名。然后, 从被发送到输出通道SND的数据中去除签名。
根据替换实施例,使加密/解密引擎直接位于中央单元CPU中。 当从存储器中读取数据时,例如,将变量加载在CPU的累加器中(例 如,用于摩托罗拉公司68HCll的LDAA弁1200h),在该位置读取的数 据被自动传递到解密引擎,使得在被传送到累加器之前去除内部加密
层。以相同的方式,不直接执行向存储器(例如,STAA#1200Hh) 存储累加器的内容的指令,而是在累加器中的数据被存储在位置 1200h之前,使其预先通过加密引擎(从而添加内部加密层)。
在特定实施例中,加密/解密引擎被与输入和输出通道共享。所 以输入加密模块是虚拟模块,且位于输入通道的加密操作通过数据复 用器由加密引擎来实现。在进一步处理以例如将数据存储在输入緩冲 器之前,使具体说来通过输入通道进入片上系统SOC的数据通过加密 引擎。所以输入加密模块是在加密模式中使用加密/解密引擎资源的虚 拟模块。同样的情况适用于在解密模式中使用加密/解密引擎的输出解 密模块。
输入加密模块RCV-E可以包括多于一个的加密单元。根据在图 2A中示出的特定实施例,两个加密单元(或更多个)被串联连接,每 个加密单元具有不同的密钥。第一加密单元被加载有属于片上系统的 密钥K1,即,其对于特定的设备是唯一的且是恒定的。该密钥或是在 安装步骤期间加载的或是在内部生成的。第二单元ENC2被加载有密 钥K2,该密钥K2是在设备加电时动态生成的。当重新初始化片上系 统时,失去该密钥并生成新的密钥。只利用具有永久密钥K1的第一单 元对一旦被处理器CPU处理就必须被永久存储的数据进行再加密。
以相同的方式,输出解密模块以及加密/解密引擎也包括两个或 更多个单元。
可选择地,如果处理器CPU识别被存储在输入緩沖器中的所接收 的数据不需要被处理而只须存储在永久存储器NV-MEM中,那么处理 器可以向加密/解密引擎请求只由 一个解密单元即具有易失性(volatile) 密钥的单元进行的解密。所存储的数据仍然保持通过永久密钥的加 密,以便以后使用。
片上系统SOC可以额外地包括可以确定性地控制片上系统SOC 的自主监控模块SM。该模块SM包括片上系统SOC的正常工作条件限 定,以及当不再满足正常条件时的禁用装置。这是通过不同装置来实 现的。第一装置包括测量要输出的数据量,例如,对要输出的数据基
的量进行计数。此后将该操作描迷为对数据计数。第二装置包括限定 时间窗口,其间允许输入或输出操作。所以,如果数据长度没超过为 数据块限定的最长时间,那么数据块被允许。第三装置包括检测中央
单元CPU的状态以及这些状态各自的持续时间,并且此后将说明相应 的活动。中央单元CPU通常具有不同的可能状态,诸如获得状态、处
理状态、等待状态和输出结果状态。当消息到达片上系统时,其从等
待状态转换到获得状态。在获得状态期间,通过监控模块SM使能输 入通道。同样在相同的获得状态期间,监控模块SM对到达的数据进 行计数并且将该数目与预定的最大值进行比较。任何异常情况导致警 告状态,其中中央单元CPU可以判断怎样做出反应。尤其在警告状态 的情况下,监控模块SM具有阻止输入和输出通道和/或者加密/解密引 擎CR-EN的能力。
当接收外部消息时,监控模块SM使中央单元CPU转到处理状态。 在该状态期间,禁用输入和输出通道。监控模块SM包括对应于中央 单元CPU的最短处理时间的时间模式,并且在该时间期间禁用该通 道。中央单元CPU可以通知监控模块SM没有结果要被输出。这具有 监控模块SM只使能输入通道以等待新消息的结果。于是,输出通道 保持被禁用。
在中央单元CPU期望发送数据到外部的情况下,然后中央单元 CPU相应地通知监控模块SM,监控模块SM进而使能输出通道。监控 模块SM仍然通过对发送的数据计数和应用授权发送的时间窗口来继 续观察输出通道的活动。
在本发明的本实施例中,监控模块SM因此能够利用从中央单元 CPU接收的信息以及利用预编程的工作模式来工作。
监控模块SM也可以通过对被加密或解密的数据计数来观察加密 /解密引擎CR-EN。以相同的方式,按照处理的数据量和时间来监控 加密/解密引擎CR-EN的工作模式。如果检测到异常状况,那么监控 模块可以使能加密/解密引擎CR-EN。
应该注意,可以在片上系统中实现监控模块SM,而不在输入/
输出通道中进行加密/解密。数据被处理而不增加附加的加密(或解密)
级,并且通过监控模块SM来观察输入/输出通道。
本片上系统SOC在负责接收包括权限或密钥的管理消息的安全 访问控制模块中使用。该模块也可以包括高速解扰单元以接收加密的 视频数据流。
权利要求
1.一种用于处理数据的安全片上系统,该片上系统至少包括中央处理单元、输入通道和输出通道、加密/解密引擎和存储器,其特征在于,所述输入通道包括在所有进来的数据上添加内部加密层的输入加密模块,所述输出通道包括去除在所有出去的数据上的内部加密层的输出解密模块,所述中央处理单元从输入加密模块接收被加密的数据并将其存储在存储器中,而在处理所存储的数据时,所述中央处理单元从所述存储器中读取所存储的数据,请求在所述加密/解密引擎中去除所述数据的所述内部加密层,处理所述数据且请求通过所述加密/解密引擎对结果进行加密从而添加所述内部加密层并存储加密的结果,向所述输出解密模块输出所述结果以去除所述内部加密层,以及经由所述输出通道输出所述结果。
2. 如权利要求l所述的安全片上系统,其特征在于,所述输入加密模块是在添加所述内部加密层的同时将要被加密的数据传送到所述加密/解密引擎的虚拟模块。
3. 如权利要求l所述的安全片上系统,其特征在于,所述输入加密模块是在去除所述内部加密层的同时将要被解密的数据传送到所述加密/解密引擎的虚拟模块。
4. 如权利要求1至3所述的安全片上系统,其特征在于,对所述数据进行加密和解密的算法是对称算法。
5. 如权利要求4所述的安全片上系统,其特征在于,所述加密/ 解密算法使用一组初始化常数,并且所述初始化常数中的全部或部分是在所述片上系统内随机生成的。
6. 如权利要求1至3所述的安全片上系统,其特征在于,对所述数据进行加密和解密的算法是非对称算法。
7. 如权利要求1或6所述的安全片上系统,其特征在于,其包括随机生成由所述加密/解密引擎使用的密钥或密钥对的装置。
8. 如权利要求1或6所述的安全片上系统,其特征在于,所述输入加密模块以及所述输出解密模块分别包括若干个加密或解密单元, 这些单元中的至少一个被加载有非易失性密钥,并且这些单元中的至少一个被加栽有永久密钥。
9.如权利要求1或8所述的安全片上系统,其特征在于,其包括 自主的监控模块(SM),其中利用至少输入和/或输出数据流的正常工作条件限定来对该自主的监控模块进行预编程;以及在当前的条件被禁用的装置。
10. 如权利要求9所述的安全片上系统,其特征在于,所述正常工作条件限定包括所述监控模块(SM)包括限定时间窗口的装置的持续时间,在所述时间窗口期间允许所述输入通道或所述输出通道接收或发送数据。
11. 如权利要求9或10所述的安全片上系统,其特征在于,所述正常工作条件限定包括在接收数据块之后所述监控模块使所述输入通道和/或所述输出通道被禁用的持续时间。
12. 如权利要求9至11所述的安全片上系统,其特征在于,所述监控模块(SM)包括接收所述中央处理单元(CPU)的状态条件的装置以及根据所述中央处理单元(CPU)的状态使能所述输出通道或 使所述输出通道被禁用的装置。
13. 如权利要求1至12任意一项所述的安全片上系统,其特征在于,每次可以对单一数据或一组数据执行所述加密/解密操作。
全文摘要
本发明的目的在于提供一种用于处理数据的安全片上系统,该片上系统至少包括中央处理单元、输入通道和输出通道、加密/解密引擎和存储器,其特征在于,所述输入通道包括加密所有进来的数据的输入加密模块,所述输出通道包括解密所有出去的数据的输出解密模块,所述中央处理单元从输入加密模块接收被加密的数据并将其存储在存储器中,而当处理所存储的数据时,所述中央处理单元从存储器中读取所存储的数据,请求在加密/解密引擎中对其进行解密,处理所述数据并请求通过加密/解密引擎对结果进行加密和存储加密的结果,向输出解密模块输出该结果以进行解密,以及经由输出通道输出解密的结果。
文档编号G06F21/72GK101346930SQ200680048898
公开日2009年1月14日 申请日期2006年12月21日 优先权日2005年12月23日
发明者A·库德尔斯克 申请人:纳格拉卡德股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1