安全片上系统的制作方法

文档序号:6570177阅读:188来源:国知局
专利名称:安全片上系统的制作方法
技术领域
本发明涉及使处理环境安全的领域。
背景技术
已经公开了处理器的安全环境,特别是关于多处理器结构。例如,
在文件WO04015553中描述过的对安全存储器访问进行限制的解决 方案,根据这个解决方案,处理器具有两种操作模式在第一种模式 中被称为安全模式,准许对安全存储器的访问;在不安全的模式中, 禁止对安全存储器的访问。不安全才莫式试图为研发的目的即测试或调 试电路而设计的。在不安全模式执行期间,对安全存储器的访问被物 理地锁住了,即生成"禁止,,信号。这种"禁止"信号禁止任何企图对安 全存储器的访问。
在文件PCT / EP2005 / 56145所7〉开的另 一个解决方案中釆用 单一芯片解扰处理器处理加扰的音频/视频数据,以便决不许可对明 文数据的访问。当进行解扰操作时,解扰单元包括在解扰数据临时存 入外部存储器之前,对解扰数据进行加密的加密引擎。当该处理器结 束组织任务时,在输出模块中对数据进行解密并送到显示器件上。

发明内容
本发明的目的是提供用于处理数据的安全片上系统,这个系统包 括至少一个中央处理单元、输入和输出信道、加密/解密引擎和存储器, 当所述片上系统接收和发送数据时,它具有实时的工作条件,其特征
程的自治管理模块(SIM),'和根据^时工作条件与正常工作条件定 义的比较,使能或禁止输入和/或输出信道的装置。本发明的主要特性是一个独立的模块,独立于中央处理单元并具 有它自己的处理器核心和执行管理任务。
通过定义正常时序图和片上系统内的数据流的一组正常的工作 条件规定,来定义这些任务。当片上系统接收处理过程和发送数据时, 将正常的工作条件与实时工作条件进行比较。


借助于附图将更好的理解本发明,其中 图l描述了片上系统和它的加密和解密模式的各种元件; 图2A和图2B描述了使用两个单元的加密阶段; 图3描述了片上系统和它在签名模式的各种元件; 图4示出的是安全和不安全模块位于同一芯片内的片上系统放 大的例子。
具体实施例方式
根据本发明在图l所例举的第一个方面,片上系统SOC包括能 够对片上系统SOC进行确定地控制的自治(autonomous )管理模块 SM。这个模块SM包括片上系统SOC的正常工作条件的定义和当正 常的条件不再满足时的禁止装置。这可以通过不同的装置实现。第一 种装置包含对输出数据的量进行测量,举例来说,计数输出数据组的 个数。这个操作将在此后对数据进行计数时描述。第二种装置包含在 允许输入和输出操作期间定义时间窗口 。如果数据块的长度不超过对 块所定义的最大时间,因此允许这块数据。第三种装置包含检测中央 处理单元CPU的状态和它们各自的持续时间,因此就象此后所描述 的那样工作。中央处理单元通常具有不同的可能状态,例如捕获状态、 处理状态、等待状态和输出结果这样的状态。当消息到达片上系统时, 该系统将进行从等待状态到捕获状态的切换。在捕获状态期间,能够 通过管理模块SM使能输入信道。同样在同一捕获状态期间,管理模 块SM对到达的数据进行计数并将这个数与预定的最大值进行比较。
任何非正常的情况导致警告状态的发生,警告状态中的中央处理单元
CPU能够决定如何对此作出反应。特别是在告警状态下,管理模块 SM具有堵塞输入和输出信道和/或加密/解密引擎CR-EN的能力。 当接收到外部消息时,管理模块SM使中央处理单元CPU进入 处理状态。在这个状态期间,禁止输入和输出信道。管理模块SM包 括与中央单元CPU的最小处理时间所对应的时间模式,和在这段时 间内禁止信道。中央单元CPU能够通知管理模块没有结果输出。这 样做的结果是管理模块SM只能够使输入信道等待消息,然后使输出 信道保持禁止。
在中央处理单元CPU希望将数据发送到外部世界的情形中,它 因此通知管理模块SM,管理模块又使能输出信道。通过对发送数据 进行计数并在授权发送期间使用时间窗的方法,该管理模块SM仍然 继续监视输出信道的活动。
在本发明的实施例中,管理模块SM因此能够根据从中央单元 CPU接收的信息以及预编程的工作模式进行工作。
这个模块也能够通过对加密或解密的数据进行计数来监视加密 /解密引擎。以相同的方式,加密/解密引擎CR-EN的工作模式根 据所处理的数据量和时间进行管理。如果检测到非正常的条件,管理 模块能够禁止加密/解密引擎CR - EN。
应当注意到的是管理模块SM能够在片上系统实施,而不用在输 入/输出信道中进行加密/解密。数据不用增加附加的加密(或解密) 层而被处理,管理模块SM监视输入/输出信道。
根据本发明的第二个方面,它提出了用于处理数据的安全片上系 统,这个片上系统包括至少一个中央处理单元、输入和输出信道、加 密/解密引擎和存储器,其特征在于所述输入信道包括对所有输入数 据进行加密的输入加密模块,所述输出信道包括对所有外出数据进行 解密的输出解密模块,所述中央处理单元从输入加密模块中接收加密 的数据并将它们存储在存储器中,和当对所存储的数据进行处理时, 所述中央处理单元从存储器中读取所存储的数据,请求在加密/解密引擎中对同 一数据进行解密,对该数据进行处理并通过加密/解密引 擎请求对该结果的加密,然后将加密后的结果存储,为了解密将结果 输出到输出解密模块并将解密后的结果通过输出信道离开。
在这个实施例中,甚至在被认为是安全的环境里也会出现对数据 的加密。解密只在数据真正被中央单元使用过的稍后阶段才会出现, 决不会在静止状态访问明文数据。当处理时,如果数据用于内部目的 或重新加密,如果它们试图从片上系统输出,能够将该数据明文存储。
一旦该数据重新加密,在被发送到输出信道之前,数据暂时被存 储在緩冲器中。
加密和解密数据的密钥在优选实施例中对于片上系统是独特的。 这个密钥能够在制造步骤中被预编程或在初始化阶段随机的生成且 决不被任何人所知。仅在内部使用这个密钥。所使用的算法以及所述
算法的参数都能够保持隐密。例如,算法IdeaNxt用作为加密引擎而 置换箱中的值是在片上系统中随机生成的。
根据具体的实施例,加密/解密算法是非对称的,因此分别对数 据的加密和解密使用密钥对(公用/专用)。
根据另一个实施例,输入加密模块能够由签名模块所替代,数据 进入片上系统时,数据被签字,并且该签名与该数据一起存储。当中 央单元希望使用这个数据时,加密/解密引擎现在是签名验证引擎, 检测签名和如果该签名是正确的,则授权该数据的使用。
就数据来说这意味着一个字节或一组字节例如形成片上系统中 的消息或权利消息。
安全的片上系统SOC基于中央处理单元CPU。这个单元的目的 是执行代码和履行所请求的任务。片上系统SOC包括两个连接外部 世界的信道,即输入和输出信道。输入信道RCV包括输入加密模块 RCV-E,该模块对来自外部世界的所有数据进行加密。以同样的方 式,输出信道SND包括输出解密模块SND-D,该模块在将数据发 送到外部世界之前对从中央处理单元CPU接收的数据进行解密。
中央单元CPU可以访问加密/解密引擎CR-EN。这个引擎与输
入加密模块和输出解密模块具有相同的功能。被装载到输入加密模块
中的密钥K与在加密/解密引擎的加密部分中的密钥是一样的。相同 情况用于输出解密模块和加密/解密引擎的解密部分的解密操作。当 中央单元CPU需要某些数据时,或者直接来自输入加密模块或者从 存储器MEM中取出,这些数据首先在中央单元CPU使用它们之前 通过解密引擎对它们进行解密。
以相同的方式,当中央单元CPU已经完成任务并产生结果时, 下面的步骤存储该结果(或将结果输出到输出信道)。这个结果在存 储之前先前通过加密引擎CR - EN加密。这个加密的结果因此能够存 储在存储器中或被送往输出信道。
中央处理单元CPU能够决定该结果是否被重新加密或被许可明 文离开。与让处理器决定相反,目标定位可以选择如图2A所示的不 同行为。如果该结果被存储在易失性存储器V-MEM中,可以进行双 重加密。相反如果存储在非易失性存储器NV-MEM(EEPROM)中, 仅使用利用永久密钥的一个加密单元。以相同的方式,当从易失性存 储器中读取数据时,进行双重解密,虽然从非易失性存储器中读取数 据时,只使用一个解密单元。
根据图3所示的另一个实施例,加密过程由签名过程所代替。数 据不进行加密,而是生成签名并同该数据合并。对于所有来自外部世 界的数据,在输入签名模块RCV-S中计算签名。然后数据与它们的 签名存储在一起。当中央单元需要访问这些数据时,签名验证引擎S -VER首先在该中央单元有权使用这些数据之前验证签名。在数据由 输出信道输出之前,在输出签名模块SDN-V中验证该签名。然后从 数据中去掉签名,并将其发送至输出信道SND。
根据另 一个实施例,加密/解密引擎直接位于中央单元CPU中。 当从存储器中读取数据时,例如在CPU的累加器中装入一个变量(例 如摩托罗拉(Motorola) 68HC11的LDAA# 1200h),在那个位置 读取的数据在被转移到累加器之前自动地通向解密引擎。以相同的方 式,将累加器的内容存储到存储器(例如STAA# 1200h)的指令并不直接执行,而是累加器中的数据在存储在位置1200h之前先通过加 密引擎。
在特殊的实施例中,加密/解密引擎共享输入和输出信道。输入 加密模块因此是一个虚拟的模块且在输入信道中的加密操作通过数 据多路复用器由加密引擎完成。数据进入片上系统时,特别是通过输 入信道进入的数据在进一步处理之前,例如将数据存储在输入緩沖器 中之前通过加密引擎。输入加密模块因此是利用加密模式的加密/解 密引擎资源的虚拟模块。同样应用于使用在解密模式的加密/解密引 擎的输出解密模块。
输入加密模块RCV-E能够包括多于一个的加密单元。根据图 2A所示的特殊实施例,两个加密单元(或更多个)串行连接,每个 具有不同的密钥。第一个加密单元装有密钥Kl,它属于芯片系统, 即是唯一的且对于指定的器件是不变的。这个密钥或者是在安装步骤 期间装入的或由内部生成的。第二个单元ENC2装有密钥K2,它是 在器件的激励下动态生成的。当片上系统被重新初始化时,这个密钥 丢失了且生成新的密钥。必须永久存储的数据一旦被处理器CPU处 理,都只使用第一个单元的永久密钥重新加密。
输出解密模块以及加密/解密引擎以相同的方式也包括两个或 更多的单元。
此外,如果处理器CPU识别出接收的数据,它们存储在输入緩 冲器中,不必处理但只是不得不存储在永久存储器NV-MEM中, 该处理器能够从加密/解密引擎中请求仅通过一个解密单元解密,即 具有易失性密钥的单元。所存储的数据仍然保持用永久密钥加密以供 稍后使用。
这个片上系统SOC用作安全的访问控制模块,负责接收包含授 权或密钥的管理消息。这个模块也能够包括高速解扰单元以接收加密 的视频数据流。
图4示的是具有两个核的放大的片上系统SOC, —个被称为 不安全核USC,另一个被称为安全核SC。上述片上系统现在只是放大的soc的一部分并与安全核sc相对应。不安全的部分usc包括
处理器装置CPU1和内部存储器MEM1。然而,考虑到被处理器所处 理的大量程序和数据,外部存储器MEM是必需的。通过外部存储器 或通过与外部世界的接口,不安全的核能够接收特洛伊(Trojan)程 序获取通过外部接口 12接收和发送的数据。因此,由不安全的核USC 通过不安全的接口 INT接收或请求的数据被认为与外部数据具有相 同的安全级别。安全核SC仍然监视例如假信号检测、电源分析、光 照、温度的变化的不安全码的活动。这些功能位于检测器模块DTC。 这个模块通知安全核任何非正常的条件,因此导致管理模块状态的变 化。应当注意的是检测器模块能够直接位于安全模块SC之内。
根据本发明的变种,检测器模块DTC执行片上系统SOC状态 的监视操作。它接收例如正电压Vdd (—般为5V)并观察例如象电 压的突然变化、非正常的低或高电压这样的风险行为。根据所定义的 准则,它能够例如通过生成错误消息通知安全模块SC,因此使前述 的模块一些功能失效。通信接口 12被检测器模块监视。通过通信,我 们理解信息进入或外出安全模块的所有方式。检测器模块也能够监视 不安全模块USC的操作和它们通信方式。这种监视包括电源供给、 时钟和复位。就检测器DTC所检测到的非正常条件的反应来说,安 全模块SC能够减少对内部存储器MEM2敏感数据的访问。安全模块 SC也能够对不安全模块USC复位初始化,因此重新开始一个程序和 数据环境的完整检测。
本发明的系统是可分级的,即每个片上系统包括它自己上述的管 理模块。当几个片上系统被连接到一起产生如图4所示的大的芯片时, 加入附加的超级管理模块SSM使管理模块SM同步。专用信道使单 一实体的管理模块SM和芯片的超级管理模块SSM之间可以进行通 信。每个管理模块包括描述在那个状态期间允许的操作的状态机。该 超级管理模块将各种实体的状态进行比较并通知实体管理模块和其 它实体的状态。超级管理模块所控制的总的状态机控制实体的状态适 应工作环境。例如,如果一个实体处于从其它实体接收数据的状态,
超级管理模块检测其它实体处于发送数据状态。
在另一个实施例中,超级管理模块直接位于最安全的实体中,在
我们的例子中位于安全片上系统sc中。
通过专用信道的每个实体之间的通信在芯片优选使用初始化期 间载入的密钥进行加密。
这个密钥能够用于两个管理模块之间或与超级管理模块交换的 数据进行加密和解密。在启动芯片时,这个密钥可用于生成例如利用
Diffie - Hellmann算法的临时密钥。
权利要求
1.一种用于处理数据的安全片上系统,所述片上系统包括至少一个中央处理单元、输入和输出信道、加密/解密引擎和存储器,当接收和发送数据时,所述片上系统具有实时工作条件,其特征在于包括用至少输入和输出数据流的正常工作条件的定义进行预编程的自治管理模块(SM)、和根据实时工作条件与正常工作条件定义的比较使能或禁止输入和/或输出信道的装置。
2. 如权利要求1所述的安全片上系统,其特征在于正常的工作条 件定义包括在其间输入和输出信道允许接收和发送数据的时间窗口 。
3. 如权利要求1或2所述的安全片上系统,其特征在于正常的 工作条件定义包括在其间在接收数据块之后管理模块禁止输入和/或 输出信道的持续期间。
4. 如权利要求1至3所述的安全片上系统,其特征在于管理模 块(SM)包括接收中央处理单元(CPU)的状态条件的装置、和根 据中央处理单元(CPU)的状态使能或禁止输出信道的装置。
5. 如权利要求1至4所述的安全片上系统,其特征在于所述输 入信道包括对所有进入数据进行加密的输入加密模块、所述输出信道 包括对所有流出数据进行解密的输出解密模块,所述中央处理单元从 输入加密模块接收加密的数据并将它们存储在存储器中,当处理所存 储的数据时,所述中央处理单元从存储器中读取存储的数据,在加密/解密引擎中请求对该数据进行解密,处理该数据并通过加密/解密 引擎请求对该结果的加密并存储加密后的结果,为了解密的目的将该 结果输出到输出解密模块并通过输出信道让解密后的结果离开。
6. 如权利要求5所述的安全片上系统,其特征在于输入加密模 块是将待加密的数据传递到在加密模式的加密/解密引擎的虛拟模 块。
7. 如权利要求5所述的安全片上系统,其特征在于输入加密模 块是将待解密的数据传递到在解密模式的加密/解密引擎进行解密的虚拟模块。
8. 如权利要求5至7所述的安全片上系统,其特征在于加密和 解密数据的算法是对称的算法。
9. 如权利要求8所述的安全片上系统,其特征在于加密/解密算 法使用 一组初始化常数,并且所有或部分初始化常数是在片上系统内 随机生成的。
10. 如权利要求5至7所述的安全片上系统,其特征在于加密和 解密数据的算法是非对称的算法。
11. 如权利要求5或10所述的安全片上系统,其特征在于它包 括随机地生成加密/解密引擎所使用的密钥或密钥对的装置。
12. 如权利要求1至11中的任何一个权利要求的安全片上系统, 其特征在于对一个单个数据或每次一组数据可以执行加密/解密操作。
13. —种电子芯片,包括如权利要求1至12中所定义的安全片 上系统,且包括与外部世界和中央处理单元连接的第 一个数据链接, 其特征在于它进一步包括与片上系统的输入和输出连接的第二个数 据链接,并进一步包括用至少第一个数据链接和第二个数据链接的正 常工作条件定义预编程的管理模块、和如果当前条件超过正常的工作 条件定义则禁止第一个和第二个数据链接的装置。
14. 如权利要求13所述的电子芯片,其特征在于包括超级管理模块SSM,它与管理模块进行通信,且检测第一个管理模块的工作条 件与第二个管理模块的工作条件是否兼容。
15. 如权利要求13或14所述的电子芯片,其特征在于超级管理 模块是片上系统的管理模块的一部分,因此接收该电子芯片的管理模 块的工作条件。
全文摘要
本发明的主要目的是提供用于处理数据的安全的片上系统,这个片上系统包括至少一个中央处理单元、输入和输出信道、加密/解密引擎和存储器,其特征在于所述片上系统包括用至少输入输出数据流的正常工作条件的定义进行预编程的自治管理模块、和如果当前条件超过正常条件的规定时禁止输入和/或输出信道的装置。
文档编号G06F21/55GK101346726SQ200680048948
公开日2009年1月14日 申请日期2006年12月21日 优先权日2005年12月23日
发明者安德雷·库德尔斯基 申请人:纳格拉卡德股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1