用于建立安全信任密钥的设备和方法

文档序号:7586972阅读:112来源:国知局
专利名称:用于建立安全信任密钥的设备和方法
技术领域
本发明涉及用于在设备与智能卡之间进行安全数据传送的安全信任密钥的建立。 更具体地,本发明涉及使用密钥交换算法在设备和智能卡中进行安全数据传送的安全信任密钥的建立。
背景技术
用于数字视频广播(DVB)传输的条件接入系统是熟知的,并广泛地结合付费电视服务被使用。这样的系统把包括一个或多个服务的广播流的安全传输提供给被包含在例如支持广播服务的机顶盒或移动终端中的数字接收机。为了保护广播服务不被非授权地观看,数据包在发射机端用通常被称为控制字的加密密钥进行扰码(加密)。通过周期地改变控制字以使得它们仅仅在某个时间段内是有效的而提供进一步的安全性。典型地,通过使用所谓的权利控制消息(ECM),控制字以加密的形式被发送到接收机。在接收机中,ECM从输送流中过滤出,并被发送到安全计算环境,例如智能卡。智能卡随后通过使用更高级别密钥来解密ECM,该密钥是对于被授权接收与该密钥相关联的 TV频道的所有的智能卡共同的。该控制字被返回到接收机,接收机立即把控制字装载到解扰码器,用于对数据进行解扰码。控制字从智能卡到接收机的传输是易受攻击的,在于控制字在智能卡与接收机之间的接口处被截取。控制字剽窃是数字视频广播(DVB)系统中的重大的问题。有时攻击者能够截取从智能卡发送到接收机的控制字CW,并且将它通过本地无线网或通过互联网进行重新分发。重新分发的控制字然后被使用来对于被扰码的服务进行解扰码而不用合法的智能卡。为了使得控制字剽窃复杂化,众所周知,智能卡和接收机使用芯片组会话密钥CSSK 用于在智能卡与接收机之间的接口处对控制字流进行加密。当前,智能卡预先配备有唯一的序列号和唯一的密钥,以及接收机的芯片组也预先配备有芯片组序列号CSSN。而且,芯片组唯一密钥CSUK被存储在接收机的安全部分,这样,CSSN与CSM相联系。CSSN和CSM在被配置到接收机后不能被改变。密钥CSM不存储在智能卡中。用于在智能卡与接收机之间进行数据传送的会话密钥CSSK的建立在某种程度上是成问题的。在客户可以使用智能卡-接收机组合之前,他或她必须联系当事一方,并把关于智能卡的序列号和芯片组的序列号的信息提供给这一方。这个信息使得被联系的一方能够发起发送在智能卡的唯一的密钥下被加密的、并包含密钥CSSK的消息(典型地,权利管理消息EMM),该密钥CSSK在芯片组唯一的密钥CSM下被加密。接收加密的消息的智能卡通过使用智能卡的唯一的密钥来解密该消息,然后现在拥有密钥CSSK。智能卡还把在CSM 下被加密的密钥CSSK装载到接收机的安全部分,在其中该消息通过使用CSM被解密,以使得CSSK在接收机中也是可提供的。随后,控制字可以通过接口从智能卡被传送到接收机, 控制字在智能卡中被加密,以及在接收机的安全部分中在所得到的密钥CSSK下被解密。WO 97/38530 Al描述一种设备,其生成随机密钥Ci和随机数A,并把Ci和A在通过使用第一设备的公共密钥而被加密的第一消息中传送到第二设备。第二设备借助于对应的秘密密钥来解密第一加密的消息,以得到Ci和A。第二设备把第二消息传送到第一设备, 第二消息是在被用作为加密密钥的Ci下被加密的A。第一设备通过使用所生成的Ci来解密第二加密的消息,并验证A是否为正确。WO 03/079687 Al描述安全数据处理系统,其包括中央处理单元CPU和硬件部件 HWo硬件部件HW可被实施成使得由所述专用硬件部件HW操控的数据项决不散布到所述硬件部件HW以外。在技术上需要可以以不太复杂的方式达到的、在设备与智能卡之间的安全数据传送。已知的密钥交换算法(例如,Diffie-Hellman协议)允许在两个设备中建立不依赖于被信任方的密钥。典型地,在电子设备或智能卡中的安全性由防读-写和对抗窜改的专用硬件集成电路(例如,单个芯片)(也称为“安全模块”、“安全芯片”、“安全部分”、“安全硬件设备”)提供。在密钥交换算法中保护密钥的选项是扩展安全芯片的特征组和实施加密 /解密功能,以保证密钥在电子设备与智能卡之间安全地传送。然而,在安全硬件设备中提供附加的加密/解密功能或精巧的算法需要对集成电路作出重大的修改。把那些功能或精巧的算法固定在硬件上减小系统的灵活性,因为它不能由软件容易地更新。在硬件中加密 /解密的实施会大大地,例如,增加芯片的复杂性,芯片的尺寸,芯片的处理负荷,硬件设计 /实施成本,或延迟芯片推向市场的时间等等。在某些情形下,在安全硬件中实施附加安全措施在商业上简直是不可行的。

发明内容
公开了被配置成用于在信任密钥下与智能卡进行加密数据传送的电子设备,诸如机顶盒或移动设备的接收机。电子设备包括至少一个安全部分。信任密钥是指作为对于至少双方或多方的密钥的单独的事例被建立的密钥,其中至少双方或多方假设密钥的单独的拷贝是对应的。在双方之间密钥对应性的假设是对于双方之间能够进行正确的运行/通信所必须的。例如,信任密钥可被用作为双方之间共享的秘密,用来加密和解密在双方之间传送的其它内容。正如这里使用的,安全部分是包含硬件单元的设备的专用部件,不允许借助于数据的读/写操作从安全部分以外接入,而是只允许以加密形式与接收机的非安全部分进行数据传送。安全部分的例子是安全的密码机。在安全部分中实现的功能通常也作为硬件单元被实施。智能卡典型地是在运行之前被或可以被人工地插入到接收机中的单独的卡。然而,智能卡也可以是电子设备的集成的部件。在某些实施例中,智能卡包括安全集成电路或硬件单元,它们阻止借助于数据的读/写操作从智能卡以外接入,而是只允许以加密形式与接收机的非安全部分进行数据传送。电子设备被配置成与智能卡执行密钥交换算法,以便建立用于在设备与智能卡之间进行加密的数据传送的信任密钥。设备被配置成把所建立的信任密钥存储在设备的安全部分。还公开了用于建立在设备与智能卡之间的信任密钥的方法,其中设备包括这样的安全部分。方法包括以下步骤在设备与智能卡之间执行密钥交换算法,以便得到在设备和智能卡中的信任密钥,以及把信任密钥存储在设备的安全部分。现在数据可以在智能卡中在信任密钥下被加密,并直接传送到设备的安全部分,在其中该数据可以通过使用被存储在设备的安全部分中的信任密钥被解密。在电子设备和智能卡中实施的密钥交换算法功能,例如,Diffie-Hellman协议,使得一旦智能卡与电子设备开始工作联系智能卡和电子设备就能够本地地商定信任密钥而不需要联系另一方。信任密钥可被使用于通过在信任密钥下的加密而安全在智能卡与接收机之间的数据(例如,控制字)的传送。通过把信任密钥存储在设备的安全部分,来自智能卡的数据可以在信任密钥下被加密,并从智能卡直接传送到电子设备的安全部分,而不会以非加密形式暴露到设备的非安全部分。因为接入到设备的安全部分实际上是不可能的, 信任密钥不能从设备得到,因此诸如控制字那样的数据可以在信任密钥下安全地传送到这个安全部分。在Bruce Schneier 的书,"Applied Cryptography", ISBN0-471-12845-7 中描述了密钥交换算法。应当承认,密钥交换算法步骤可以在智能卡与电子设备之间的证书验证步骤之前进行,或与该步骤组合。作为例子,Diffie-Hellman公共密钥可以与证书验证步骤相组合地在智能卡与安全设备之间进行交换。在本发明的实施例中,设备的安全部分被配置成执行密钥交换算法的至少一部分。这个实施例具有的优点在于,把从密钥交换算法的执行得到的信任密钥存储在安全部分中,可以不用另外的措施而得以完成,因为信任密钥是在安全部分内得到的。密钥交换算法操作是通过使用硬件单元而被实施的。在本发明的实施例中,设备包括至少一个非安全部分。非安全部分例如包括设备的固件,允许进行外部读/写操作。非安全部分还可包括具有芯片上的存储器的处理器,通过将软件装载到处理器而允许在芯片上的存储器上进行读/写操作。非安全部分被配置成以软件模块执行用于设备的密钥交换算法部分。这个实施例具有的优点在于,安全部分不应当被配置成具有用于执行密钥交换算法操作的专用硬件单元。为了允许最终得到的信任密钥的安全存储,非安全部分被配置成使能保护信任密钥,以及安全部分被配置成使能从保护的信任密钥得出(例如,去变换、解密)要被存储在安全部分中的信任密钥。使得信任密钥从设备的非安全部分到安全部分的传送安全的例子是白匣子 (White-Box)密码术的使用。白匣子密码术在以下的文献中被描述Jtanley Chow,PhiIip Eisen, Harold Johnson, and Paul C. VanOorschot, " White-Box Cryptography and an AES Implementation" ,inSelected Areas in Cryptography :9th Annual International Workshop, SAC 2002,St. John ' s, Newfoundland, Canada, Aug. 15-16,2002,禾口 Stanley Chow, Phil Eisen, Harold Johnson, and Paul C. van Oorschot, " Affhite-Box DES Implementation for DRM Applications" , in DigitalRights Management :ACM CCS-9 Workshop, DRM 2002,Washington, D. C.,USA, Nov. 18,2002,这些文献在本专利申请中整体地被引用以供参考。白匣子密码术的基本概念在于,通过把密钥或密钥的一部分隐蔽在查找表Ln中而隐藏密钥或密钥的一部分。一系列查找操作实施白匣子实施模块的功能。在一个实施例中,如在本申请中公开的信任密钥可以通过本技术而变得安全。白匣子密码术通常包括使用变换函数,即,双向注入(bijection)函数。以数学形式,解密函数D可被写为D = Ltl ο L1 ο L2 ο ... ο Ln(X),其中Ln是表格查找操作。通过把这个与随机输入和输出变换函数F,G相组合,可以实施函数D’ = F-1GDoG0在这个实施例中,用于设备的非安全部分的输入信息由智能卡本地地变换,由此消除对于从头端接收所变换的输入信息的需要。变换的输入被发送到设备的非安全部分,用于执行白匣子密码术。这可以是有利的,它卸载设备的非安全部分的某些功能,以减小对安全硬件的修改。在本发明的一个实施例中,白匣子密码术操作的输出是变换的输出,以及用于对于输出进行去变换的功能在设备的安全部分中被实施。换句话说,白匣子密码术操作被扩展到设备的安全部分和智能卡,由此使得从设备的非安全部分提取信任密钥变得复杂。硬件实施的最终变换构成硬件固定架。虽然密钥交换算法操作可以在设备的非安全部分中整体地完成(减小硬件单元的数量和/或在安全部分中的修改),但所变换的信任密钥输出仅仅具有对于包含用于得到(去变换)被存储在其中的信任密钥的最后的变换函数的安全部分有意义。白匣子密码术事例在具有逆变换的另一个接收机中对于不同的最后的变换是无用的。可期望改变密钥,在该密钥下在智能卡与设备之间的数据传送可以时时被保护。 当设备/接收机被重新启动或从设备抽取智能卡时,例如,可以进行改变所述密钥。另外, 头端可能已提供用于使密钥循环的指令。虽然信任密钥可以在数据(如控制字)通过智能卡与设备之间的接口被传送时被使用于保护数据,但新的信任密钥的建立需要执行密钥交换算法,这花费某些时间(主要因为智能卡的有限的计算资源)。所以,为了能够改变密钥以使得在该密钥下数据被更快速地保护,在如在权利要求5中规定的本发明的实施例中, 设备和智能卡可以商定用于实际数据传送保护的另外的密钥。在本发明的实施例中,所述另外的密钥可以在智能卡中或在设备的安全部分中被生成,并分别被传送到设备,智能卡在已建立的信任密钥下被加密。所述另外的密钥被本地地建立,即,在设备或智能卡一端而不是在头端处被建立,并且它比起信任密钥以更高的速率循环。如上所述,在本发明的实施例中,设备是接收加密的内容数据的接收机。接收机的安全部分被配置成解密所加密的内容数据,并沿呈现设备的方向转发所解密的内容数据。 内容数据的解密是在从智能卡传送到接收机,或更精确地,到接收机的安全部分的加密的数据(在信任密钥或以上提到的另外的密钥下被加密的控制字)的控制下执行的,在接收机的安全部分中加密的数据被解密(但外部不可接入的),并可供使用于内容数据的解密。电子设备可被安排成使得唯一的密钥被存储在安全部分,其中设备被配置成把信任密钥发送到在唯一的密钥下被加密的头端。设备的安全部分的芯片组包含芯片组唯一的密钥CSM。在本发明的一个实施例中,通过发送信任密钥到在唯一的密钥下被加密的头端, 从其中可以接收内容数据的头端,可被告知以在智能卡与设备之间建立的信任密钥。正如在背景技术中所提到的,头端典型地可存取被存储在设备的安全部分中的唯一的密钥,所以,能够得到信任密钥。此后,将更详细地描述本发明的实施例。然而,应当意识到,这些实施例不应当被看作为限制对于本发明的保护的范围。


在图中
图1是示意地显示按照本发明的第一实施例的方法的示意图;图2是示意地显示按照本发明的第二实施例的方法的示意图;图3是实施如图1所示的方法的设备-智能卡组合的示意图;图4是显示与加密有关的变换函数的应用的示意图;图5是实施如图2所示的方法的设备-智能卡组合的示意图;图6是使能进行安全数据传送的设备-智能卡组合的示意图;图7A显示执行数学变换的函数的框图;图7B显示在种子的控制下执行数学变换的函数的框图;图8A显示施加原语的框图;图8B显示去除原语的框图;图8C显示条件原语的框图;图8D显示去除和施加原语的组合的框图;以及图8E显示复合物的安全相关性的框图。
具体实施例方式图1显示可以以本身已知的方式实现工作联系的电子设备1和智能卡SC的示意图。电子设备1例如可以是用于机顶盒或移动电话的接收机。智能卡SC例如可以是用于插入到机顶盒的专用智能卡或移动电话的SIM卡。电子设备的安全部分和智能卡SC用灰色表示。电子设备1包括安全部分S和非安全部分NS。安全部分S包括存储器2,用于诸如信任密钥CSTK和会话密钥CSSK那样的数据的安全存储,这将在下面更详细地描述。安全部分S是设备1的专用部分,其包含硬件单元,不允许借助于数据的读/写操作从安全部分S以外接入,仅仅允许以加密的形式与接收机的非安全部分NS进行数据传送。安全部分 S的例子是安全密码机。在安全部分中实现的功能通常也被实施为硬件单元。智能卡SC是全部安全的。当电子设备1和智能卡SC实现工作联系时,电子设备1检测工作联系,以及把信号GEN例如从非安全部分NS自动地发布到智能卡SC和安全部分S,以便执行密钥交换算法 KEA0 密钥交换算法在 Brucekhneier 的书,“Applied Cryptography'MSBNO-471-12845-7 中描述,该书在本申请中以引用被包括。密钥交换算法包括Diffie-Hellman(DH)算法、椭圆曲线DH算法等等。信号GEN可以在证书验证过程中被组合,并可以承载参数和其它数据,以便在密钥交换算法期间使用。密钥交换算法的一部分可包括公共密钥的交换,用于建立在安全部分S与智能卡 SC之间的信任密钥CSTK。用于建立信任密钥CSTK的公共密钥交换可以通过使用另外的公共-私人密钥加密技术而被加强。在电子设备1和智能卡SC中实施的KEA功能使得一旦智能卡SC与电子设备1开始工作联系,智能卡SC和电子设备1就能够本地地商定信任密钥CSTK而不需要联系另一方。信任密钥CSTK可被使用于在智能卡与接收机之间的安全数据传送,诸如,安全地提供在信任密钥CSTK下被加密的控制字,正如将在下面更详细地描述的。通过把信任密钥CSTK存储在设备1的安全部分S,来自智能卡SC的数据可以在信任密钥CSTK下被加密,从智能卡SC直接传送到电子设备1的安全部分S,而不会以非加密形式暴露到设备1的非安全部分Ns。因为外部接入到设备1的安全部分S和智能卡SC实际上是不可能的,信任密钥CSTK 不能从设备1得到,因此诸如控制字那样的数据可以在信任密钥CSTK下安全地传送到这个安全部分S。既然设备1和智能卡SC已建立信任密钥,智能卡SC就可以生成另外的密钥CSSK, 用于实际保护数据。如果智能卡SC生成另外的密钥CSSK,则信任密钥CSTK可被使用于通过任何已知的加密算法E来加密另外的密钥CSSK,并把这个另外的密钥CSSK发送到如图1 所示的设备1的安全部分S。在安全部分S中,被加密的消息可以通过使用解密算法和所存储的密钥CSTK而被解密,以便得到CSSK。从现在起,数据可以在与CSTK相同的保护级别的另外的密钥CSSK下被传送。建立CSSK比起通过使用密钥交换算法KEA而建立CSTK更快速,由此易于实现在智能卡SC与设备1的安全部分S之间更快速的、用于数据加密的CSSK 密钥循环。另外的密钥CSSK也被存储在安全部分S的存储器2中。当然,在替换实施例中,另外的密钥CSSK在安全部分S中生成,并被传送到在信任密钥CSTK下被加密的智能卡Sc。图2提供本发明的替换实施例的示意图,其中通过使用设备1的非安全部分NS执行密钥交换算法。这可能是有利的,因为它可以避免对于在设备1的安全部分S中添加和 /或适配许多硬件单元的需要。这个优点是当算法局部使用加密/解密的白匣子实施方案时实现的(实施方案通过变换而变为模糊,以达到白匣子安全性),其细节在这里描述。在图2的实施例中,设备利用在设备1的非安全部分NS中的变换域TRF。当在智能卡SC与设备1之间建立工作联系时,变换域TRF接收变换的输入(例如, 变换的公共密钥),该变换的输入是在智能卡SC处通过使用用于在设备1处提供用于密钥交换算法部分的输入的变换函数Ttl而被本地生成的。而且,信息(例如,公共密钥)从设备1被提供到智能卡SC(信号GEN),用于在智能卡SC处执行密钥交换算法。在变换域,白匣子密码术被应用到变换的输入,以便生成变换的信任密钥CSTK’。变换的信任密钥CSTK’ 以通过使用在安全部分S中也已知的密钥K’的变换的版本以保护的、可能加密的形式E,被发送到设备1的安全部分S。在安全部分S中,信任密钥CSTK通过使用解密算法和密钥K’ 的去变换的版本而从CSTK’得出。再次地,对于图1的实施例,另外的密钥CSSK可被使用于在智能卡SC与设备1之间的实际的数据交换保护。在安全部分S和智能卡中变换的使用使能使用白匣子密码技术。正如所讨论的, 白匣子密码术的基本概念在于,通过把密钥或密钥的一部分隐蔽在查找表Ln中而隐藏密钥或密钥的一部分。在取决于密钥的表中的一系列查找操作实施白匣子实施模块的功能。意图是通过用代表组成的随机双向注入而不是单独的步骤来编码它的表与通过把密码边界进一步推广到所包含的应用(即,非安全部分)而扩展密码边界的组合来隐藏密钥。白匣子密码术通常包括使用变换函数,S卩,双向注入函数。变换函数可被实施为单个查找表,或更有效地,作为较小的双向注入(查找表)的级联。在某些实施例中,硬件中的变换模块是对于扩展抵制剽窃所需要的、由硬件提供给白匣子保护的软件的最小功能。正如以上讨论的,在数学形式上,某些解密函数D可被写为D =L0 ο L1 ο L2 ο ... ο Ln(X),其中Ln是表格查找操作。通过把这个与随机输入和输出变换函数 F,G相组合,函数D’ = F—1 ο D ο G可被实施为编码的查找表,由此解密函数D (或任何适当的加密-解密函数)的每个步骤与随机双向注入相组合。相同的逻辑可被应用到加密函数。 对于可以通过随机双向注入(即,变换)被分解和混合的加密-解密函数,最终得到的数据变换嵌入标准黑匣子抵制算法(即,算法通过随机双向注入被混合/模糊)。通过把标准算法嵌入到更大的数据变换内,原先的算法的黑匣子强度被保持,而同时对于白匣子攻击提供更大的抵制。结果,至少部分的最终得到的数据变换可以在非安全环境下被实施,由此把更多的操作(例如,查找表)推广到所包含的应用,并限制安全硬件的复杂性。白匣子实施方案混合随机输入和输出变换与查找,执行打算的操作,诸如加密或解密。因此,对手在可以发现实际的秘密之前首先需要对随机输入和输出变换的序列执行反向工程。至少部分的白匣子实施方案可以在安全(专用)硬件中被实施,而其它部分的白匣子实施方案可以在通常的非安全环境下被实施。在安全硬件或所谓的“硬件固定架”中所实施的部分阻挡软件移动到具有不同的实施方案的不同的设备。而且,硬件固定架允许专用硬件减少,因为主要功能在白匣子实施的算法或协议中被实施。图3是图1的实施例的实施方案的示意图,其中Diffie-Hellman(DH)协议作为密钥交换算法KEA被应用。在说明中,为了清晰起见,DH的求模部件被省略。DH协议是全部在设备1的安全部分S和智能卡SC中执行的,即,整个在安全域中执行。在设备1处,在建立智能卡SC与设备1之间的工作联系后,通过真正的随机数发生器在安全部分S中生成随机数X。而且,DifTie-Hellman参数g被设置为大质数,并且得到公共密钥gx。公共密钥gx被发送到智能卡SC,可用设备1的私钥进行签名。在智能卡SC处,在建立与设备1的工作联系后,通过真正的随机数发生器生成随机数y。预先个性化的Diffie-Hellman参数g被应用,并且把公共密钥gy发送到设备1的安全部分S,可用智能卡SC的私钥进行签名。然后,在智能卡SC和设备1处,计算数值『或『,并且密钥导数函数KDF被应用来得到信任密钥CSTK。在设备1处,信任密钥被存储在安全部分S。在智能卡SC与设备1 之间的数据传送现在可以在信任密钥CSTK下被加密。再次地,如参照图1描述的,可以得到另外的密钥CSSK,用于保护数据交换。智能卡SC包含密钥生成器3,用于生成CSSK。另外的密钥CSSK可以通过使用加密算法C和信任密钥CSTK在智能卡处发送包含加密的CSSK的消息以及通过使用来自存储器2的CSTK 来解密消息以便得到CSSK,而被传送到安全部分S。如以上参照图2描述的,信任密钥CSTK也可以安全地得到并被存储在设备1的安全部分S,而同时通过在非安全部分NS中定义变换域,在非安全部分NS中执行密钥交换算法 ΚΕΑ。变换域和变换函数的概念参照图4进行说明。数据和软件模糊技术利用变换函数来模糊中间结果。变换函数的概念不同于加密,这通常是参照图4变得清楚。假设在非变换数据空间中存在有具有多个数据单元的输入域ID。定义了使用某个密钥的加密函数E,其被配置成接受输入域ID的数据单元作为输入,以便传递在输出域OD 中的对应的加密的数据单元。通过应用解密函数D,输入域ID的原先的数据单元可以通过把解密函数D应用到输出域OD的数据单元而被得到。
在非安全环境下,假设对手能够控制输入和输出数据单元以及加密函数E的实施的操作,以便发现被嵌入在实施中的保密信息(诸如密钥)。通过把变换函数应用到输入域ID和输出域0D,即,变换函数是输入和输出操作, 在这样的非安全环境下可以得到附加的安全性。变换函数Tl把来自输入域ID的数据单元映射到变换的数据空间的变换的输入域ID’的数据单元。类似地,变换函数T2把来自输出域OD的数据单元映射到变换的输出域0D’。现在可以通过使用变换的密钥在ID’与0D’之间定义变换的加密和解密函数E’和D’。Tl和T2是双向注入。连同加密技术一起使用变换函数Tl,T2是指,不是把输入域ID的数据单元输入到加密函数E以便得到输出域OD的加密的数据单元,而是通过应用变换函数Tl,把域ID’的变换的数据单元输入到变换的加密函数E’。变换的加密函数E’在加密操作时组合逆变换函数ΤΓ1和/或T2—1,以便保护保密信息,诸如密钥。然后得到域0D’的变换的加密的数据单元。通过在安全部分中执行Tl和/或T2,用于加密函数E或解密函数D的密钥既不能在分析变换的数据空间中的输入数据和输出数据时被检索,也不能在分析E’和/或D’的白匣子实施方案时被检索。变换函数Tl,T2之一应当是非平凡函数。万一 Tl是平凡函数,则输入域ID和ID’ 是同一个域。万一 T2是平凡函数,则输出域是同一个域。在白匣子密码术中,假设在变换的数据空间中的处理是在对手的完全控制下。在这个假设下,对手接入到ID’,OD'中的数据单元和函数E’和/或D’的白匣子实施。白匣子密码术通过使用于函数E和D的(部分的)密钥安全而提供安全性。通过在智能卡和设备1的安全部分S的至少一个中应用变换函数Tl和T2,如前面描述的查找表Ln不能在变换的空间中被求解,因为这需要Tl和/或T2的知识。使用DH密钥交换算法的这样的实施例的实施方案示意地显示于图5。在设备1中,公共密钥gx被馈送到智能卡SC,可用设备1的私钥进行签名。公共密钥gx在智能卡SC处被接收。在智能卡SC处,生成随机数y和公共密钥gy。来自智能卡的公共密钥gy可以在智能卡内连同所接收的公共密钥gx—起被使用,以便得到gxy和在应用密钥导出函数KDF后推导出信任密钥CSTK。与图3的实施例不同,公共密钥gy不直接发送到设备1,而是首先通过使用如在前面参照图4说明的变换函数Tl在智能卡SC处被变换。变换的gy’然后被发送到设备1,在其中它在设备1的非安全部分NS的变换的空间中被接收。DH变换的秘密χ’和安全部分的唯一的密钥CSM的变换的版本CSM’被嵌入在设备1的非安全部分NS的变换的空间。在变换的空间中应用Diffie-Hellman算法,使用变换的秘密χ’,得到变换的信任密钥CSTK’。 通过使用变换Τ2和使用变换的密钥CSM’的AES的白匣子实施方案,CSTK’以保护的形式被传送到设备1的安全部分S。在那里,通过变换T2和在安全部分S的唯一的密钥CSM的控制下的解密过程AES而得到CSTK。CSTK可被存储在安全部分S的存储器2中。应当指出,变换函数T2不一定被应用,或变换函数T2可以是在图5的实施例中的平凡函数,由于在密钥CSUK’下的白匣子加密保证信任密钥的保护,用于从设备1的非安全部分NS传送到设备1的安全部分S。当然,为了有利于变换函数T2的应用,也可以省略白匣子加密。
最后,图6提供示意图,其中要从智能卡SC被传送到设备1的数据(这里是控制字CW)可以直接传送到设备1的安全部分S,而不会在非安全部分NS中以非加密的形式暴露。控制字以本身已知的方式在智能卡SC内得到。在假设信任密钥CSTK已建立和在设备 1与智能卡SC之间以如上所述的方式商定另外的密钥CSSK后,控制字CW现在可以在智能卡SC中在另外的密钥CSSK下被编码,并以加密的形式被发送到设备1,以加密的形式穿过非安全部分Ns,并在安全部分S中通过使用第一解密器Dl被解密,由此得到控制字CW。控制字CW被馈送到第二解密器D2,例如安全密码处理器,接收在控制字CW下被加密的内容,以便以本身已知的方式解密被加密的内容,并沿呈现设备的方向转发被解密的内容。为了进一步说明在转换与加密之间的差别,在图7A-7B和8A-8E上显示示例性变换函数。所述示例性变换函数可以在安全部分S和/或智能卡中被用作为硬件固定架,这样,诸如在密钥交换协议中的加密/解密那样的其它操作可以在设备的非安全部分/环境中被实施。至少部分被固定在安全硬件中的变换的使用可以是有利的,因为它减小对于现有的安全硬件的修改量,而同时白匣子密码术方法仍旧提供数据的合理的安全性。如图7A所示的函数F是在用IN和OUT标识的两个不同的变换空间中迁移数据Z 的数学运算。输出变换空间OUT的尺度至少同输入变换空间IN—样大,任何数据Z在输入和输出变换空间中分别被表示(可能不是唯一的)为X和Y。函数F被设计成使得在相反的方向上很难运行。因为在输入和输出变换空间之间不存在明显的映射以及变换空间IN 和OUT的尺度优选地是相当大的,所以阻止函数F的还原。而且,函数F这样地实施以使得很难追踪数据Z,因为例如它通过使用白匣子技术和/或其它代码模糊技术而传递函数。参照图7A,函数F例如被定义为Y = F(X) = 3XX+2。如果输入变换空间IN是纯文本变换空间,则X= (Z)IN = Z。在迁移后,得到以下的结果Y= (Z)°UT = 3XX+2。为了把Z从输出变换空间再次迁移到纯文本变换空间,逆函数Γ1 (Y) = (Υ_2)/3必须是可提供的,以便如下地得到X F1(Y) = (3XX+2-2)/3 = X。在本例中,Ζ,X和Y是可被使用来通过使用简单的加法和减法数学而进行变换的数。应当看到,Z,X和Y可以是具有任何数据格式的数据,包括二进制数值、数、字符、字等等。函数F可以是更复杂的函数,它适用于对于例如二进制数值、数、字符、或字进行运算。函数F可被定义为可以用另外的参数S作为种子的数学运算,如图7Β所示。函数 F所执行的迁移典型地由种子S定义。典型地,关于输入空间IN和输出空间OUT的信息没有被嵌入到F。函数F被选择成使得输入数据X或种子S的操纵产生在输出变换空间中的不可预测的最终的数据Y。种子S不需要被安全保护或被存储在安全环境中,因为种子S被这样地操控,以使得不能提取关于变换空间IN或OUT的信息。参照图7B,函数F例如被定义为F(X,S) = X-7+S。如果输入变换空间IN是纯文本变换空间,则X = (Z) = Ζ。在迁移后,因此得到以下的结果Y = (Z)0UT = X-7+S = Z-7+S。如果,例如,种子S被提供为包括5的数值的数据,则F(X,5) = X-7+5以及Y = (Z) 0UT = X-7+5 = Z-2。为了把Z从输出变换空间再次迁移到纯文本变换空间,逆函数Γ1 (Y, S) =Y+7-S必须是可提供的,以便如下地得到X F1 (Y,S) = (X-7+5)+7-S。如果知道种子 S = 5,则可以正确地得到 Z 为=F"1 (Y, 5) = (X-7+5) +7-5 = X = Z。如果输入变换空间IN不是纯文本变换空间,则函数F典型地首先在输入变换空间IN中执行逆变换,接着在输出变换空间OUT中执行变换。这样的函数F例如被定义为F(X, S1, S2) = F2 (Fr1 (X, S1), S2),其中 FrHX,S1) = XU1,和 F2 (X,S2) = X_7+S2。在迁移后, 因此得到以下的结果=Y = (Z)0UT = (X-2-S1)-7+S2 = X-9-Si+S,其中 X = (Ζ) 。种子S1和&可被提供为两个独立的种子,以便首先执行F1-1 (X,S1),并接着执行 F2 (X,S2),或更优选地,作为种子的复合物<S1; S2>0通常,种子的复合物是多种子的混合体。 从多种子的混合体不能得到单独的种子。用于混合种子S1和&的参数混合函数被表示为 f(Si;S2) =<S1;S2>。函数结果<S1;S2>被称为种子S1*^的复合物。在以上的例子中,如果S1 = 5和& = 7,则一个复合物是<S1; S2> = 5-7 = -2。在以上的例子中,Z,X,Y和S是可被使用来通过使用简单的加法和减法数学而进行变换的数。应当看到,z,x,Y和S可以是具有任何数据格式的数据,包括二进制数值、数、 字符、字等等。函数F可以是更复杂的函数以及是适用于对于例如二进制数值、数、字符、或字进行运算。模糊技术典型地使用基本原语或它们的组合来模糊数据或软件代码变换。基本原语的例子是施加原语、去除原语和条件原语。图8Α、图8Β和图8C分别显示施加原语Α、去除原语R和条件原语C的框图。在图8Α上,函数A (Data,S) = As (Data) = DataTs定义施加原语,它通过使用输入种子S把输入的Data变换成变换的Datals0在图8B上,函数R(DataTs,S) = Rs (Data,= Data定义去除原语,它通过使用种子S对输入的变换DataTs进行逆变换,得到输出Data。 种子S对于变为互相求逆的两个函数AO和RO是相同的。原先的Data和它的变换后的变异体DataTs典型地具有相同的尺寸,即,用相同数目的比特表示,以使得不可能根据它的尺寸来确定该Data是否处在特定的变换的空间中。在图8C上,函数C(DatanData2) =Cllatal(Data2) = Datac定义条件变换,其中输出 Datac是两个输入Date1和Date2的相关性。条件原语典型地保留输入数据和输出数据的尺寸,以使得不可能确定该Data是否为相关性的结果。原语,诸如施加原语、去除原语和条件原语,可以进行组合。所述组合产生新的运算,其中单独的原语是不可见的。图8D显示去除和施加原语的组合的例子。变换运算使用复合物<P,S>作为被施加到输入DataTp上的组合的去除和施加运算的输入。RpAs函数把输入DataTp从输入变换域 P映射到输出变换域S,以便得到输出Datf。组合的去除和施加运算的所有的输入和输出或者被变换,或者具有复合物的形式。运算被施加到变换的数据,并产生变换的数据。因此, 变换运算在变换的域空间中进行,它在任何接口上都不揭露单独的参数或未变换的数据。 被使用来产生复合物<P,s>的函数优选地是唯一的,并且与组合的施加和去除运算的实施相联系。图8E显示对两个复合物〈P,S,Q1)和<DataTp,Q2>进行安全的相关性运算的例子。 RpCqAs函数组合去除、条件和施加原语,由此创建输出DataCTs。本发明的一个实施例可以被实施为供计算机系统使用的程序产品。程序产品的程序规定实施例的函数(包括这里描述的方法),以及程序可被包含在各种各样的计算机可读的存储介质中。说明性的计算机可读的存储介质包括,但不限于(i)非可写的存储介质 (例如,在计算机内的只读存储器设备,诸如由⑶-ROM驱动器可读的⑶-ROM盘、ROM芯片或任何类型的固态非易失性半导体存储器),信息被永久地存储在其上;和(ii)可写入的存储介质(例如,在软盘驱动器内的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器、快闪存储器),其上存储可替换的信息。
权利要求
1.一种电子设备,被配置成在信任密钥下与智能卡进行加密的数据传送,所述电子设备包括至少一个安全部分,其中所述电子设备被配置成与智能卡执行密钥交换算法,以便建立用于在所述电子设备与智能卡之间进行加密的数据传送的信任密钥,以及其中所述电子设备被配置成把信任密钥存储在所述电子设备的安全部分中。
2.按照权利要求1的电子设备,其中安全部分被配置成在所述电子设备中执行密钥交换算法的至少一部分。
3.按照权利要求1的电子设备,其中所述电子设备包括至少一个非安全部分,其中非安全部分被配置成在所述电子设备中执行密钥交换算法,以及其中所述电子设备被配置成把受保护的信任密钥从非安全部分传送到安全部分,其中安全部分被配置成从受保护的信任密钥得出要被存储在安全部分的信任密钥。
4.按照权利要求3的电子设备,其中非安全部分被配置成从智能卡接收用于密钥交换算法的被变换的输入,用于执行密钥交换算法和用于通过使用白匣子密码术来保护信任密钥。
5.按照权利要求3或4的电子设备,其中白匣子密码术被配置成把来自非安全部分的变换的输出提供给安全部分,变换的输出包括变换的信任密钥,其中所述电子设备的安全部分包含变换函数,其能够从变换的信任密钥得出要被存储在安全部分中的信任密钥。
6.按照前述权利要求的一项或多项的电子设备,其中所述电子设备还被配置成与智能卡商定另外的密钥,所述电子设备被配置成执行以下的至少一项-在安全部分中接收在信任密钥下被加密的另外的密钥,并通过使用所存储的信任密钥来解密所加密的另外的密钥,以便在安全部分中得出另外的密钥;以及-生成另外的密钥,通过使用所存储的信任密钥来加密另外的密钥,和把加密的另外的密钥发送到智能卡。
7.按照前述权利要求的一项或多项的电子设备,其中所述电子设备包括接收加密的内容的内容接收机,其中安全部分包括-第一解密器,被配置成通过使用被存储在安全部分中的信任密钥或权利要求6的另外的密钥来解密来自智能卡的加密的数据;-第二解密器,被配置成通过使用被解密的数据来解密所加密的内容。
8.一种用于建立在设备与智能卡之间的信任密钥的方法,设备包括安全部分,所述方法包括以下步骤-在设备与智能卡之间执行密钥交换算法,以便在设备和智能卡中得到信任密钥;以及-把信任密钥存储在设备的安全部分中。
9.按照权利要求8的方法,还包括在设备的安全部分中执行用于设备的密钥交换算法的步骤。
10.按照权利要求8的方法,其中设备包括非安全部分,所述方法包括以下步骤-在设备的非安全部分中执行用于设备的密钥交换算法,以便得到信任密钥;以及-把信任密钥以保护的形式从非安全部分传送到安全部分。
11.按照权利要求10的方法,还包括以下步骤-在非安全部分接收来自智能卡的、用于密钥交换算法的变换的输入;以及-通过使用白匣子密码术保护信任密钥。
12.按照权利要求10或11的方法,还包括以下步骤-把来自非安全部分的变换的输出提供到安全部分,变换的输出包括变换的信任密钥, -在设备的安全部分中应用变换的函数,以便得出要被存储在安全部分的信任密钥。
13.按照权利要求8-12的一项或多项的方法,还包括以下步骤 -把在信任密钥下被加密的数据传送到设备的安全部分;-通过使用所存储的信任密钥来解密设备的安全部分中的数据。
14.按照权利要求13的方法,还包括以下步骤 -在智能卡或设备中生成另外的密钥;-把另外的密钥传送到设备或在信任密钥下被加密的智能卡;以及 -在智能卡与在另外的密钥下被加密的设备之间传送数据。
15.一种与权利要求1-7的一项或多项的电子设备相组合地使用的或在权利要求8-14 的一项或多项的方法中使用的智能卡。
全文摘要
本发明涉及用于建立安全信任密钥的设备和方法。所述设备是被配置成用于在信任密钥下与智能卡进行加密的数据传送的电子设备。设备包括至少一个安全部分,其中设备被配置成与智能卡执行密钥交换算法,以便建立用于在设备与智能卡之间进行加密的数据传送的信任密钥,以及其中设备被配置成把信任密钥存储在设备的安全部分中。
文档编号H04L9/32GK102164034SQ20111004022
公开日2011年8月24日 申请日期2011年2月18日 优先权日2010年2月19日
发明者B·V·科廷, R·P·J·胡根鲍姆 申请人:爱迪德有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1