通过多接口实现安全性的方法和装置转让专利

申请号 : CN200510129292.X

文献号 : CN1791111B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马克·布尔埃德华·H·弗兰克

申请人 : 美国博通公司

摘要 :

本发明公开了一种安全数字系统,包括多个彼此间相互交换数据的IC。每个所述IC包括有密钥生成器,用于生成加密密钥;存储器,用于安全地存储所生成的加密密钥;验证模块,用于验证各个IC的相邻IC;加密模块,用于对从各个IC发送给所述相邻IC的数据进行加密;解密模块,用于对从所述相邻IC接收到的数据进行解密。

权利要求 :

1.一种安全数字系统,其特征在于,包括:

彼此间交换数据的多个数据处理IC,其中的每个数据处理IC包括:密钥生成器,用于生成公共-私有密钥对;

存储器,安全地存储所述生成的私有密钥;

验证模块,验证对应的数据处理IC的每个相邻数据处理IC;

加密模块,对从所述对应的数据处理IC发送给其每个相邻数据处理IC的数据进行加密;

解密模块,对从所述每个相邻数据处理IC接收到的数据进行解密;

其中,每个数据处理IC还包括有唯一的芯片识别号码,在向所述相邻数据处理IC传送所述公共密钥之前,所述加密模块使用所述唯一的芯片识别号码对所述公共密钥进行加密;

所述每个数据处理IC均包括有时间戳电路,对其与每个相邻数据处理IC进行的每次数据传输标记时间戳,且每对相邻的数据处理IC内均保存有彼此间标记有时间戳的数据传输记录。

2.根据权利要求1所述的安全数字系统,其特征在于,所述存储器是一次性可编程存储器,所述私有密钥存储在其中。

3.根据权利要求1所述的安全数字系统,其特征在于,所述公共密钥通过与所述相邻数据处理IC协商生成。

4.根据权利要求1所述的安全数字系统,其特征在于,所述公共密钥发布给所述相邻数据处理IC。

5.一种在具有多个数据处理集成电路的数字系统内安全地处理数据的方法,其特征在于,所述方法包括:为所述多个数据处理IC中的每一个生成唯一的公共-私有密钥对;

将所述生成的私有密钥安全地存储在每个对应的数据处理IC中;

验证对应的数据处理IC的每个相邻数据处理IC;

对从所述对应的数据处理IC发送给与其相邻的每个数据处理IC的数据进行加密;

其中,所述方法还包括:

为每个数据处理IC分配唯一的芯片识别号码,并且在向所述相邻数据处理IC传送所述公共密钥之前,使用所述唯一的芯片识别号码对所述公共密钥进行加密;以及保存所述各个数据处理IC与其每个相邻数据处理IC间标记有时间戳的数据传输记录。

说明书 :

通过多接口实现安全性的方法和装置

技术领域

[0001] 本发明涉及安全数字系统/设备,更具体地,本发明涉及从硬件级进行保护的集成电路芯片。

背景技术

[0002] 分布式计算机网络的发展为网络间信息传递的安全性提出了更高的要求。而且,随着更小的集成电路(IC)上电子电路的集成度越高,电子器件越来越能处理更加复杂的数据,执行更多的功能。同一数字系统(例如个人计算机、机顶盒或移动电话)内的IC之间将传送安全性要求更高的敏感数据。此外,这些IC正逐渐用于存储、处理和传送敏感数据。因此,这些IC所存储和传送的数据在安全性上需要得到保障。
[0003] 数据网络中的信息传送可以使用许多现有的加密技术来提供安全保障。例如,安全套接层(SSL)协议及其后续的传输层安全协议(TLS)提供的一种在服务器和客户端之间安全发送数据的机制。简单地说,SSL提供了一种协议,用于认证服务器和客户端的身份,并生成非对称(私有—公共)密钥对。所述认证过程为客户端和服务器提供了一定级别的保证,确保其正在与所期望的对象进行通信。所述密钥生成过程安全地为客户端和服务器提供唯一的加密密钥,使二者(而非其他方)均可以使用该密钥对其通过网络发送给对方的数据进行加密或解密。SSL包括多个基本阶段:与对端协商所支持的算法,基于公共密钥加密的密钥交换和基于证书的认证,以及基于对称密钥的通信加密。
[0004] 图1简要的示出了安全系统102中的几个层次。该系统中的对象相互之间可通过在发送之前将数据104加密来安全地传送数据。另一对象如想对接收到的数据进行解密,就必须先获得正确的密钥。因此,数据加密依赖于对象之间进行密钥协商106的安全方法。如果所述密钥协商不安全(例如,密钥可以被非授权个人窃取),那么加密的数据将会泄露。同样地,保证密钥协商安全地先决条件是对参与密钥交换的双方进行认证108。换句话说,每个对象必须确保其协商对象不是所期望对象的伪装者(中间人攻击)。所述认证过程最终需要依赖于根密钥110,唯一并可靠地认证特定对象。因此,所述根密钥通常被称为所述对象的加密身份。
[0005] 实际中,根密钥的作用是生成其他密钥,这些密钥随后将用于生成级别更低的密钥。一般来说,这些级别更低的密钥的使用期相对较短。例如,诸如SSL会话密钥这样的级别更低的密钥只在一次会话中有效。因此,因会话密钥被泄露而可能造成的破坏,与高级密钥泄露相比要小得多。例如,在存在安全漏洞的情况下,整个系统不会被破坏,所述密钥也会很快过期。
[0006] 相比之下,如果高级密钥受被泄露,所有的次级别(例如,较低级的)密钥将都被泄露。此外,高级密钥的使用期相对较长,因此可能产生的破坏将更大。因此,对高级密钥的保护是任何加密安全系统的首要目标。
[0007] 例如,在典型的电子商务交易过程中,每个会话将生成一组唯一的SSL密钥。例如,当用户使用页面浏览器安全地访问银行的金融站点时,就会为这次会话生成一组会话密钥。这些会话密钥用于对服务器(例如,银行的服务器)和客户端(例如,浏览器)之间传递的数据进行加密和解密。为防止这些密钥被非授权个人截取,将使用高级密钥(例如,银行服务器和客户端之间协商的私有—公共密钥对)对这些会话级密钥进行加密和解密。但是,如上所述,对该高级密钥的保护将至关重要。
[0008] 如图2所示,在典型的基于PC的应用中,客户端设备将其私有密钥(Ka-priv)214存储在计算机200的系统存储器206中。在会话启动时,服务器使用客户端的公共密钥(Ka-pub)对会话密钥(Ks)228进行加密,然后将加密后的会话密钥[Ks]Ka-pub 222发送给客户。如连线216和224所示,客户端随后通过PCI总线208从系统存储器中调用它的私有密钥(Ka-priv)和加密后的会话密钥222,然后将它们加载到加速器模块或加速卡202中的公共密钥加速器210中。如连线226所示,所述公共密钥加速器使用载入的私有密钥220对所述会话密钥进行解密,然后将明文形式的会话密钥(Ks)228加载到系统存储器中。
[0009] 在会话过程中,当服务器需要向客户端发送敏感数据时,服务器使用所述会话密钥(Ks)对数据进行加密,然后将加密后的数据[data]Ks 204加载到系统存储器中。当客户端应用程序需要访问普通形式(未加密)数据时,其将会话密钥228和加密后的数据204加载到对称算法引擎(例如,3DES、AES等)212中,分别如连线230和234所示。所述对称算法引擎使用加载的会话密钥232对加密后的数据进行解密,并且如连线236所示,将普通形式数据238加载到系统存储器中。这时,客户端应用程序就可以使用所述数据了。
[0010] 当客户端和服务器都很安全的时候,SSL协议和其他协议可为通过计算机网络的数据传输提供相对较高的安全性。但是,对于更有经验的黑客和计算机病毒的开发者来说,这些设备也是可以攻破的。例如,运行在计算机上的病毒可能可以访问存储在所述计算机数据存储器中的数据。此外,病毒还可将该信息发送给第三方。
[0011] 再如图2所示,客户端的私有密钥(Ka-priv)可以明文形式(例如,未加密)存储在系统存储器中,并且通过PCI总线以明文方式进行传递。此外,操作系呼叫将用于提供与加密加速器之间的数据传送。系统的上述特征均为黑客、病毒或其他方式的入侵提供了便利。假如在SSL传送过程中,客户的私有密钥实质上是识别服务器身份的证书(因此,它实质上也包括有服务器的私有密钥),现有的这种结构不能为多数应用提供足够的安全性。
[0012] 某些部件,例如硬件安全模块(HSM),一般为多芯片板,可用于为对安全性更加敏感的应用提供级别更高的安全保障。一般来说,硬件安全模块提供安全密钥管理以生成加密密钥,对密钥的效用和安全性作出限定,实现密钥备份和恢复,为存储准备密钥,以及执行密钥的回收和销毁。
[0013] 但是,这些硬件模块或设备本身并不接受认证。而通常是运行在这些设备上的应用程序接受认证,以确保交换数据的不同应用程序间数据的安全性。此外,即便是最精密的数据安全方案在部件级上也存在安全漏洞。例如,系统可能在部件级(就即印刷电路板“PCB”级)上被侦听以获取根(私有)密钥。一旦私有密钥被窃取,访问加密信息就变得非常容易了。在某些系统中,这些部件进行了物理封装,被制成不可访问的形式,例如,在其上覆盖厚厚一层塑料材料。这种方法能阻止通过侦听该部件的管脚或印刷电路(例如使用逻辑分析器)而对所述部件进行的非授权访问。但是,这种方法却给PCB的测试、调试和维修增加了不必要的困难。
[0014] 因此,需要对数字系统/设备中电子部件级的安全性进行改进,使其不需要任何外部或远端服务器/对象来保障所述数字系统/设备中数据传送的安全性。

发明内容

[0015] 本发明涉及一种验证方法和系统。一个实施例中,本发明提供一种安全数字系统,包含有多个彼此交换数据的集成电路(IC)。每个所述IC包括有密钥生成器,用于生成加密密钥;存储器,安全地存储生成的加密密钥;验证模块,验证所述IC的相邻IC;加密模块,对从所述IC传送给相邻IC的数据进行加密;解密模块,对从相邻IC接收到的数据进行解密。
[0016] 一个实施例中,本发明提供一种安全的IC,包括有多个输入接口,接收来自其他IC的数据;多个输出接口,向其他IC传送数据;加密模块,对传送给其他IC的数据进行加密;解密模块,对从其他IC接收到的数据进行解密。
[0017] 一个实施例中,本发明提供一种在包括有多个IC的数字系统内安全地处理数据的方法。所述方法包括:为所述多个IC中的每一个生成唯一的加密密钥;将每个所述生成的加密密钥分别安全地存储在每个IC内;验证各个IC的相邻IC;对从所述各个IC传送给其相邻IC的数据进行加密。
[0018] 一个实施例中,所述加密密钥是公共/私有密钥对,所述存储器是一次性可编程存储器,其内存储所述私有密钥。在一个实施例中,对两个IC之间的数据传输进行记录,并且对每次数据传输标记时间戳。各个IC间所述标记有时间戳的数据传输记录存储在相关IC的电池供电存储器中。
[0019] 一个实施例中,为每个IC分配唯一的芯片识别号码,并使用该唯一的芯片识别号码对所述公共密钥进行加密。所述芯片识别号码在制造时永久的分配给一个IC。此外,还可对所述芯片识别号码进行加密。
[0020] 根据本发明的一个方面,提供一种安全数字系统,包括:
[0021] 彼此间交换数据的多个集成电路(IC),其中每个IC包括:
[0022] 密钥生成器,用于生成加密密钥;
[0023] 存储器,安全地存储所述生成的加密密钥;
[0024] 验证模块,验证各个IC的相邻IC;
[0025] 加密模块,对从所述各个IC发送给所述相邻IC的数据进行加密;
[0026] 解密模块,对从所述相邻IC接收到的数据进行解密。
[0027] 优选地,所述加密密钥是公共/私有密钥对。
[0028] 优选地,所述存储器是一次性可编程存储器,所述私有密钥存储在其中。
[0029] 优选地,所述公共密钥通过与所述相邻IC协商生成。
[0030] 优选地,所述公共密钥发布给所述相邻IC。
[0031] 优选地,每个IC还包括有唯一的芯片识别号码,其中,在向所述相邻IC传送所述公共密钥之前,加密模块使用所述唯一的芯片识别号码对所述公共密钥进行加密。
[0032] 优选地,所述芯片识别号码在制造时永久地分配给各个IC。
[0033] 优选地,所述芯片识别号码已经过加密。
[0034] 优选地,所述密钥生成器是随机数生成器。
[0035] 优选地,所述随机数生成器是自由运行的振荡器,捕捉热噪声作为随机源。
[0036] 优选地,每个IC还包括有数据传输计数器,用于保存各个IC与其每个相邻IC之间进行数据传送的历史记录。
[0037] 优选地,每个IC还包括有计时器,用于为每次数据传送标记时间戳。
[0038] 优选地,每个IC还包括有由电池供电的存储器,用于存储各个IC与其每个相邻IC之间标记有时间戳的数据传输记录。
[0039] 根据本发明的一个方面,提供一种安全集成电路芯片(IC),包括:
[0040] 多个输入接口,用于从其他IC接收数据;
[0041] 多个输出接口,用于向所述其他IC传送数据;
[0042] 加密模块,对发送给所述其他IC的数据进行加密;
[0043] 解密模块,对从所述其他IC接收到的数据进行解密。
[0044] 优选地,所述安全IC还包括有验证模块,用于对某些其他IC进行验证。
[0045] 优选地,所述安全IC还包括有密钥生成器,用于生成加密密钥。
[0046] 优选地,所述加密密钥是公共/私有密钥对。
[0047] 优选地,所述安全IC还包括有唯一的芯片识别号码,其中,所述加密模块使用所述唯一的芯片识别号码对所述公共密钥进行加密。
[0048] 优选地,所述芯片识别号码在制造时永久分配给所述安全IC。
[0049] 优选地,所述芯片识别号码进行了加密。
[0050] 优选地,所述安全IC还包括有数据传输计数器,用于保存每个相邻IC间数据传输的历史记录。
[0051] 优选地,所述安全IC还包括有计时器,用于为每次数据传输标记时间戳。
[0052] 优选地,所述安全IC还包括有由电池供电的存储器,用于存储每个相邻IC间标记有时间戳的数据传输记录。
[0053] 根据本发明的一个方面,提供一种在具有多个集成电路的数字系统内安全地处理数据的方法,所述方法包括:
[0054] 为所述多个IC中的每一个生成唯一的加密密钥;
[0055] 将所述生成的加密密钥安全地存储在每个对应的IC中;
[0056] 验证各个IC的相邻IC;
[0057] 对从所述各个IC发送给与其相邻的IC的数据进行加密。
[0058] 优选地,所述加密密钥是公共/私有密钥对。
[0059] 优选地,所述方法包括与所述相邻IC协商所述公共密钥。
[0060] 优选地,所述方法包括为每个IC分配唯一的芯片识别号码,并且使用所述各自的唯一芯片识别号码对每个IC的公共密钥进行加密。
[0061] 优选地,所述芯片识别号码在制造时永久地分配给各个IC。
[0062] 优选地,所述方法包括保存各个IC与其每个相邻IC之间数据传输的记录。
[0063] 优选地,所述方法包括为每次数据传输标记时间戳。
[0064] 优选地,所述方法包括保存所述各个IC与其每个相邻IC间标记有时间戳的数据传输记录。

附图说明

[0065] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0066] 图1是安全系统内各层的示意图;
[0067] 图2是计算系统内安全处理过程的示意图;
[0068] 图3是根据本发明一个实施例的数字系统/设备的框图;
[0069] 图4是根据本发明一个实施例在数字系统/设备内安全地处理数据的处理流程图;
[0070] 图5是根据本发明一个实施例的硬件安全模块的框图;
[0071] 图6是根据本发明一个实施例的硬件安全模块的处理流程图;
[0072] 图7是根据本发明一个实施例的硬件安全模块的框图。

具体实施方式

[0073] 在一个实施例中,本发明涉及一种用于数字系统/设备内验证相邻数据处理IC并对与所述相邻数据处理IC间传送的数据进行加密的方法和系统。所述验证和加密过程在每个数据处理IC中进行。每个数据处理IC对其相邻的数据处理IC进行验证,然后对两者间传送的数据进行加密。这样,所述数据处理IC间的验证和数据加密在物理层的硬件内完成。这种方法还可确保软件应用程序在可信地硬件上运行,而无需必须由另一应用程序来确保其自身的安全边界。
[0074] 图3是典型的数字系统/设备的框图。所述数字系统/设备可以是PC、机顶盒、移动电话盒以及类似的设备。所述数据处理IC可安装在一个或多个PCB和/或多芯片模块上。上电时,每个数据处理IC(例如,CPU 302)对与其相邻的数据处理IC进行验证,例如存储器控制器304、基带控制器306和媒体处理器308。存储器控制器304依次验证与其相邻的数据处理IC,例如I/O控制器310和存储器312。一个实施例中,磁盘控制器320对写入硬盘的命令进行加密。需要注意的是,将要写入硬盘的数据已经由CPU 302进行了加密。非数据处理IC,例如“粘合逻辑(glue logic)”IC 314、316和318不需要进行验证,因为这些IC不执行数据处理功能,因此不传送数据。同样,进出这些IC的数据由所述数据处理IC进行加密。
[0075] 每个数据处理IC包括有安全模块(下面将进行描述),用于生成加密密钥,例如,对应特定数据处理IC的唯一的公共/私有密钥对。随后,所述私有密钥作为永久机密信息保存在对应的IC中,而所述公共密钥将发送给(与其协商)与其相邻的数据处理IC。所述公共密钥可以以未加密的形式(普通形式)进行传送,也可以使用唯一的芯片ID进行加密后传送。然后,每个数据处理IC使用其公共/私有密钥对来验证与其相邻的数据处理IC,然后对发送给/接收自其他数据处理IC的数据进行加密/解密。通过这种方法,就在硅基硬件内,也就是IC内实现了安全性。此外,数据处理IC(已经进行了验证)之间传送的所有数据都进行了加密。例如,通过对数据加密,图3中所示的从330到352所有的数据/命令路径的安全性都得到了保障。
[0076] 图4是根据本发明一个实施例用于数字系统内部件级的数据安全性的处理流程图。如步骤402所示,上电时,每个数据处理IC(例如图3中的媒体处理器308)生成一公共/私有密钥对。这可以通过使用随机数生成器来实现。接下来,生成的私有密钥以安全的方式永久的存储在媒体处理器308中,如步骤404所示。一个实施例中,所述私有密钥存储在一次性可编程存储器中。随后,为安全地保存所述私有密钥,所述存储器设置为只读存储器。在步骤406,所述公共密钥随同芯片ID一起发送给相邻IC进行协商,以验证所述相邻IC。所述芯片ID可以在制造时烧入所述IC中。一个实施例中,所述芯片ID进行了加密。一个实施例中,每个数据处理IC内保存有包含所有有效芯片ID的数据表。
[0077] 一个实施例中,每个数据处理IC均包括有时间戳电路,用于对其与每个相邻数据处理IC进行的每次数据传输标记时间戳。此外,每对相邻的数据处理IC内均保存有彼此间进行数据传输的历史记录。这一标有时间戳的传输记录与相邻IC间的每次数据传输相结合。这样一来,所述系统的安全性得到保护,可免受破坏,例如重放攻击(replay attack)。
[0078] 一个实施例中,所述传输记录通过使用传输计数器来生成,并且存储在由电池供电的存储器中(例如,NVM)。因此,每个数据处理IC具有与每个与其相邻的数据处理IC共享的状态。所述共享状态包括,例如在指定时间内,两个IC彼此间共进行了多少次数据传输。因为只有这两个相邻的IC知道它们所共享的状态,潜在的入侵者就无法模仿或再现所述两个IC之间的传输。
[0079] 又如图4所示,步骤408中,一旦相邻的数据处理IC通过验证,就使用所述公共/私有密钥对所述两个芯片间传送的任何数据进行加密。从这时开始,所述两个芯片间进行的所有传输都处于硬件级的安全加密边界内。
[0080] 图5是数据系统的每个数据处理IC中均具有的安全模块的框图,所述数据系统可以是PC、机顶盒、移动电话、DVD读碟机和类似的设备。安全模块500使用对称密钥来提供数据加密、解密等功能。一个实施例中,在每个数据处理IC中都应用这种配置,以将对IC的成本和大小的影响降至最低。
[0081] 在一种典型应用中,图5所示的实施例可用于向使用这些数据的相邻的接收IC安全地传送数据,还可从相邻的数据处理IC接收其提供了安全保障的(加密后的)数据。这个过程包括对所述数据加密,使其不以普通形式出现,和/或对所述数据签名,以向所述接收IC证明自己的身份,即所述数据源自特定的发起IC。
[0082] 例如,所述安全模块可集成到媒体处理器芯片内(例如,图3中其它数据处理IC中的媒体处理器308)。在这里,所述安全模块可对所述媒体处理器生成的信息进行签名和/或加密。随后,所述安全模块可向使用这些信息的接收IC(例如,图3中的CPU 302)安全地发送信息。在这种情况下,所述接收IC使用其自身的公共/私有密钥对收到的信息进行解密,并进一步处理解密后的信息。然后,所述接收端数据处理IC对处理后的数据进行加密,然后发往与其相邻的IC(例如,图3中的存储器控制器304)做进一步处理。
[0083] 上述密钥(尤其是私有密钥)存储在非易失性存储器(“NVM”)510中。NVM 510包括一次性可编程(“OTP”)存储器或由电池供电的存储器(BBMEM)。在某些实施例中,使用OTP存储器更佳,因为所述OTP存储器中的内容不需要传送到芯片的外部。有关OTP存储器的结构和实现在专利号为6,525,955、6,700,176和6,704,236的美国专利以及申请日为2002年1月8日申请号为10/041,296的美国专利申请中进行了描述,本申请在此引用以上所有文件公开的内容。
[0084] 在使用OTP的情况下,所述OTP由主控制器506通过编程接口使用外部编程信号VPP进行编程。通过在编程之前向其读写长期密钥高速缓存地址数组,所述主控制器可确保OTP 510是完全清空的。如果所述数组是空的,那么在对任何其他位元编程之前,先对一个安全位编程。
[0085] 在对所述OTP编程之后,读取所述设备的密钥高速缓存地址,校验所述设备的长期密钥以确保它们是正确的。一旦通过校验,主控制器506将对第二安全位进行编程,从而完成初始化过程。直到两个安全位均已被编程后,NVM才会将所述长期密钥标记为有效。
[0086] 除非在重置之后两个安全位都被清空,否则所述OTP控制逻辑将会锁定所述编程逻辑。这样做可以防止已部分编程的位数组再次被编程。这种方法有助于确保所述设备的长期密钥、授权和配置数据能够进行一次、并且只能是一次编程。在进行外部重置之后以及所述安全模块从重置中得到释放之前,由硬件读取所述安全位。随机数生成器516生成随机数,所述随机数用于生成一个或多个所述对称密钥。
[0087] 在某些实施例中,不会直接使用随机数生成器516生成的数值。例如,在内部使用之前以及作为随机值传送至所述安全模块外部之前,所述数值由主控制器506使用SHA-1模块504进行后处理。所述主控制器将经过后处理的随机位(用于生成密钥和签名)的高速缓存保存在数据缓冲器518内。随机数生成器516可以是真实的随机源。例如,随机数生成器516可使用自由运行的振荡器捕捉热噪声作为随机源。
[0088] 如图5所示,所述安全模块包括有主控制器506和外部接口512,以在与相邻的IC建立起安全链路时,实现所述非对称密钥操作。因此,控制器506包括有生成并校验其密钥有效性的电路。在某些实施例中,主控制器506包括RISC处理器,其内含有ROM代码,可执行无状态模块操作所必须的各种命令。所述主控制器模块还包括有为内部总线上的每个从属模块进行地址解码的地址解码器。所述RISC引擎使用数据缓冲器的受保护的部分作为临时堆栈和临时数据空间。所述受保护的数据区域不允许与分配给外部存储器接口的任何空间重叠。
[0089] 在某些实施例中,数据总是保存在安全边界内。首先,将所述安全模块安嵌入每个所述数据处理IC后,信息在离开IC的硬件安全边界前,都将进行加密。其次,所述安全模块通过对称密钥交换与接收端IC建立安全通道。通过这种方法,信息将安全地发送给每个接收端数据处理IC。
[0090] 例如,接收端数据处理IC包括有图5中所示的安全模块。在这种情况下,接收端IC可使用其他密钥向相邻的IC安全地发送所述信息。在其他实施例中,只需要确保数据源自特定的IC。例如,系统可以做出其他规定以确保数据流不会在稍微重放。在这种情况下,则不需要对所述信息进行加密,唯一需要的是确保所述信息是由特定的(和/或授权的)IC发送的。在这种情况下,发送端IC只需简单的对所述数据签名就可以提供足够的安全性。这种方法可为多种数据设备提供高性价比的解决方案。
[0091] 如图5所示,所述安全模块包括有加密模块528,用于执行加密算法,如DH、DSA、3DES、AES等。一个实施例中,加密算法(例如DH、DSA、3DES、AES)的应用代码存储在ROM
508中。图5所示的实施例中,使用SHA-1算法进行签名来为输入数据流(DI)提供安全保障。因此,为进行此操作,可以使用一个单独的处理模块504。该处理模块签名后的输出数据流(DO)将通过所述IC内的数据接口发送给接收端IC。一个实施例中还对所述数据流进行加密,例如,由专用处理模块528执行对称加密算法。
[0092] 一个实施例中,所述安全模块包括有几个加密处理模块。例如,各处理模块结合起来执行HMAC-SHA-1消息认证代码算法。所述安全模块还可使用一些处理模块来执行机密性对称算法,例如3DES和AES。所述加密处理模块支持的公共密钥算法包括Diffie-Hellman、数字签名算法(“DSA”)和RSA等。所述加密处理模块还支持离散对数集成加密标准(“DLIES”)算法。根据系统性能要求的不同,这些加密处理模块可由硬件实现,和/或由主控制器506执行存储在ROM中的固件来实现。
[0093] 一个实施例中,所述安全模块包括有公共密钥加速引擎(“PKE”)(图中未示出)。所述PKE可以为加密算法提供加速,例如Diffie-Hellman算法、RSA算法和/或数字签名标准(“DSA”)算法。Diffie-Hellman公共密钥算法可用于多种协议(例如IKE、SSL和TLS)的密钥协商。RSA公共密钥算法可用于IKE、SSL和TLS中的数字签名验证和密钥交换。DSA算法可用于对数据进行签名和校验。它还广泛应用于多种其他应用,例如公共密钥基础设施(“PKI”)产品。
[0094] PKE可对密钥会话建立过程中密钥协商所需的算法进行加速。在某些实施例中,所述安全模块要求用于PKE消息的所有“机密”密钥信息从KEK高速缓存中加载,以在内部密钥操作中使用。PKE还可使用密钥高速缓存中的密钥对数据流进行加密、解密、签名和校验。
[0095] 验证核504提供基本的SHA-1算法实现。指定操作的结果是160位的摘要(digest)。SHA-1算法状态寄存器的初始值可编入摘要寄存器中,作为验证的起始点。
[0096] 一个实施例中,所述安全模块包括有时间戳电路,为与每个相邻数据处理IC进行的每次传输标记时间戳。此外,传输计数器为每个相邻IC的每次数据传输生成一条传输记录。随后,标记有时间戳的传输记录存入NVM 510中。因此,每个数据处理IC通过所述安全模块与每个相邻的数据处理IC共同维护一共享状态。
[0097] 一个实施例中,加密核528采用3DES最小门数实现。该加密核528使用每轮单循环实现(single cycle per round implementation)来将门数最小化。输入数据进行两次缓冲,这样便可以在对前次加载值进行操作的同时加载该数据。输出数据以同样的方式来实现,这样主控制器506可在对当前值进行处理的同时加载下一个数值并传出前次数值。
[0098] 所述单循环实现可同时实现CBC和ECB 3DES算法的加密和解密。所用到的密钥通过密钥寄存器(只写)由主控制器写入。在进行数据操作之前,所述密钥值可从应用密钥高速缓存、KEK密钥高速缓存或共享的密钥源中得到的。3DES模块528对数据操作提供保护,从而使得主控制器在模块加密或解密过程中不能改变所述密钥。
[0099] 可选择地,所述安全模块还包括有保证逻辑520,保护所述安全模块免受系统安全攻击。为此,将几个系统监视器与所述安全模块内的其他部件和/或所述无状态模块所在的IC的其他部件相连接。
[0100] 在某些实施例中,当检测到攻击时,保护电路会触发所述无状态模块重置。所述重置将清除所述无状态模块内所有的瞬时信息。例如,所有的密钥高速缓存地址将被清除。所述触发可通过向本地主机提供一个载有相关信息的中断来实现。
[0101] 图6是根据本发明一个实施例的安全模块的处理流程图。如步骤602到610所示,安全模块生成公共—私有密钥对,然后将所述私有(身份)密钥存储在安全边界内的非易失性存储器中,并发布所述公共密钥,与相邻的数据处理IC建立安全通信通道。
[0102] 如步骤610所示,相邻IC可通过所述安全通信通道向所述安全模块发送其自身的公共密钥和/或芯片ID。例如,所述相邻IC可发送其自身的公共密钥和芯片ID,对所述安全模块从所述相邻IC接收的数据进行加密和/或签名。如步骤612所示,如果所述相邻IC的公共密钥和/或芯片ID进行了加密,那么所述安全模块在与所述安全模块相关联的安全边界内对收到的加密后的公共密钥和/或芯片ID进行解密。一个实施例中,所述芯片ID是在制造(例如,芯片测试)过程中注入到所述安全模块中的。一个实施例中,所述芯片ID在烧入所述IC之前进行了加密。
[0103] 一个实施例中,当具有所述安全模块的IC在制造后(例如,在测试过程中)第一次初始化时,所述安全模块中的电路可使用随机数生成器来生成前述的公共—私有密钥对。所述安全模块将所述私有(身份)密钥存储在非易失性存储器或一次性可编程存储器中。在这个过程中还将生成芯片ID。随后,所述安全模块发布所述芯片ID,制造商将该芯片ID与证书一起发给公共服务器,随后可对该服务器进行安全访问。
[0104] 如步骤614所示,所述安全模块从所述相邻IC接收将要进行解密的加密数据,并在安全边界内使用对称密钥对数据进行解密,以进行进一步处理。对数据进行处理后,如步骤616所示,所述安全模块在安全边界内使用所述对称密钥对处理后的数据进行加密。随后,如步骤618所示,所述安全模块将加密后的数据发往下一个相邻IC。
[0105] 在某些实施例中,所述对称密钥和芯片ID可以在制造时注入所述无状态模块中。在这种情况下,可以不需要外部接口512、RNG 516以及非对称密钥处理电路。因此,如图7所示,安全模块700可简化为包括有相对较小的主控制器706,用于注入对称密钥并执行其他基本操作。安全模块700还包括有非易失性存储器708、数据缓冲存储器710、用于对称密钥操作的加密处理器704。可选择地,安全模块700还可包括有保证逻辑712。
[0106] 本领域的普通技术人员可知,可以对本发明上述的实施例作出各种修改而不脱离本发明的范围。因此,可以理解,本发明不限于本申请中公开的具体实施例或方案,本发明覆盖落入本发明权利要求所定义的范围和主旨内的任何替换、变更或修改。
[0107] 本专利申请要求美国临时专利申请号为60/631,484、申请日为2004年11月29日、名称为“通过多接口实现安全性的方法和装置”的专利申请的优先权,并在本申请中全文引用该美国临时专利申请。