用于签名产生和加密/解密的共模RSA密钥对的制作方法

文档序号:11142851阅读:341来源:国知局
用于签名产生和加密/解密的共模RSA密钥对的制造方法与工艺

本申请案主张基于2014年6月10日申请的名称为“用于签名产生和加密/解密的共模RSA密钥对(Common Modulus RSA Key Pairs for Signature Generation and Encryption/Decryption)”的第62/010,400号美国临时专利申请案和2015年2月6日申请的名称为“用于签名产生和加密/解密的共模RS密钥对(Common Modulus RS Key Pairs for Signature Generation and Encryption/Decryption)”的第14/616,552号美国非临时专利申请案的优先权,所述两个申请案被转让给本受让人,并以全文引用的方式并入本文中。

技术领域

各个特征是关于加密/解密和数字签名产生,具体地说,是关于涉及公开和私用密钥的非对称密码。



背景技术:

就密钥管理和分配而言,例如公开密钥系统的不对称密码系统(也被称作公开密钥系统/私用密钥系统)通常具有优于其它密码系统的优点。然而,公开密钥系统通常可能难以计算,并且可涉及较大的数字签名。密钥产生过程可为计算昂贵的。因此,不对称密码系统可需要大功率的处理器,或可需要额外处理时间,这可导致延迟、使用更多能量和/或消耗电池或其它资源。

此外,通常考虑良好的密码实践,以具有针对不同应用/协议的单独的密钥。具体来说,如果不对称密码系统需要接收已加密的消息并对它们进行解密,以及产生数字签名,那么针对两个协议具有不同的密钥通常是可取的。然而,当使用不对称密码系统(例如,李维斯特-萨莫尔-阿德曼(RSA)系统)时,产生两个密钥通常过于计算昂贵(例如,一般来说,是只产生一个密钥的计算量的两倍)。尤其是在具有有限资源的密钥供应系统的嵌入式装置(例如,智能手机等)中,这可能是难以解决的。应注意,在本文中,为简洁起见,术语“密钥供应系统”通常指代能够产生和/或供应密钥的系统。应理解,实际上,可采用单独的系统以产生RSA密钥,同时其它系统供应密钥。

鉴于前述,它将有助于提供改进了的密钥产生与供应技术和系统,具体地说,有助于用于嵌入式密钥供应系统。



技术实现要素:

在密码装置中操作以对消息进行解密和签名的方法包含:获得第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模;使用第一公开密钥/私用密钥对的私用密钥对消息进行解密;通过使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,以获得消息的数字签名;以及从密码装置发送数字签名。

在另一方面,装置包含:处理电路,其经配置以获得第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模;使用第一公开密钥/私用密钥对的私用密钥对消息进行解密;通过使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,以获得消息的数字签名;以及发射器装置,其经配置以从密码装置发送数字签名。

在又一方面中,在系统中操作以对消息进行加密和验证的方法包含:从单独的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥,其中第一和第二公开密钥/私用密钥对共享共模;使用共享共模的第一和第二公开密钥/私用密钥对的第一公开密钥对消息进行加密;将已加密的消息发送到单独的装置;从单独的装置接收对消息的经签名的回复,其中所述消息已利用使用第二公开密钥/私用密钥对的私用密钥所获得的签名来签名;以及使用共享共模的第一和第二公开密钥/私用密钥对的第二公开密钥来验证具有经签名的回复的签名。

在再又一方面中,装置包含:接收器装置,其经配置以从单独的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥,其中第一和第二公开密钥/私用密钥对共享共模;发射器装置;以及处理电路,其经配置以使用共享共模的第一和第二公开密钥/私用密钥对的第一公开密钥对消息进行加密;使用发射器装置,将已加密的消息发送到单独的装置;使用接收器装置从单独装置接收对消息的经签名的回复,其中所述消息已利用使用第二公开密钥/私用密钥对的私用密钥所获得的签名来签名;以及使用共享共模的第一和第二公开密钥/私用密钥对的第二公开密钥来验证经签名的回复的签名。

附图说明

图1示出其中产生共享共模的密钥对的例示性密钥供应系统和方法。

图2示出移动装置的例示性芯片上系统(SoC),其中SoC包含用于签名产生和用于加密/解密的嵌入式共模密钥供应处理器。

图3示出用于共模密钥供应的例示性程序。

图4示出嵌入式密码装置和合作供应商的远程服务器的例示性操作,以及它们之间交换的信息。

图5示出用于多个合作软件供应商的共模密钥供应的例示性程序。

图6示出嵌入式密码装置的例示性软件组件、合作供应商的远程服务器的软件组件以及在它们之间交换以便于初始通信和密匙交换等的信息。

图7进一步示出嵌入式密码装置的例示性软件组件、远程服务器的软件组件以及在它们之间交换以便于认证挑战等的信息。

图8是说明用于采用处理系统的设备的硬件实施方案的实例的框图,所述处理系统可以利用图1到7的系统、方法和设备。

图9是说明图8的处理电路的例示性组件的框图。

图10是说明图8的机器可读媒体的例示性指令组件的框图。

图11概述用于可通过(例如)移动装置的嵌入式组件执行的对消息进行解密和签名的例示性程序。

图12概述用于使用(例如)两个密钥对对消息进行解密和签名的另外的例示性程序。

图13概述用于使用三个或大于三个密钥对对消息进行解密和签名的另外的例示性程序。

图14是说明可与图8的设备通信的远程系统的例示性组件的框图。

图15是说明可与图8的设备通信的远程系统的例示性指令组件的框图。

图16概述用于可(例如)通过图14的系统执行的对消息进行加密和验证的例示性程序。

图17概述用于使用(例如)两个密钥对对消息进行加密和验证的另外的例示性程序。

图18概述用于使用三个或大于三个密钥对对消息进行加密和验证的另外的例示性程序。

具体实施方式

在以下描述中,给出具体细节以提供对本发明的各个方面的透彻理解。然而,所属领域的技术人员应理解,可以在不具有这些具体细节的情况下实践所述方面。例如,可用框图展示电路以避免以不必要的细节混淆所述方面。在其它情况下,可不详细展示众所周知的电路、结构及技术,以防混淆本发明的所述方面。

此外,本文中使用词语“例示性”意指“充当实例、例子或说明”。本文中描述为“例示性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。同样,术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。

综述

若干新颖特征涉及用于嵌入式密钥供应系统的装置和方法,例如安装在智能手机内用于产生RSA公开密钥/私用密钥对以进行加密/解密和数字签名产生/验证的系统。简单来说,在至少一些实例中,嵌入式密钥供应系统的限制条件为产生两个公开密钥/私用密钥对--一个用于加密/解密,另一个用于签名产生/验证--其中,这两个公开密钥/私用密钥对共享共模,但在其它方面不同或不相关。这允许比产生两个完全单独的密钥对(即,每一个具有其自身的独特的模数)更高效地产生两个密钥对,但至少在嵌入式密钥供应系统的情况下,实现了令人满意的完整性和机密性。本文中,产生两个公开密钥/私用密钥对--一个用于加密/解密,另一个用于签名产生/验证--的密码系统和方法通常大体上被称作“共模密钥供应系统/方法”,其中两个公开密钥/私用密钥对共享共模,但在其它方面不同。

在这点上,相信单独的RSA公开/私用密钥对(e1,d1)和(e2,d2)在使用本文中所描述的共模密钥供应系统/方法所获得的相同模数(N=pq)上的使用可提供用于嵌入式密钥供应系统(例如,高通有限公司的MacchiatoTM系统)的安全、合理的和具有高效性能的解决方案。此外,实施共模密钥供应系统需要相对适度地修改现有的密钥供应系统。例如,在产生用于产生密钥对的素数p、q期间,系统可检查p-1和q-1与e1和e2两者互质,而不是检查它们只与一个公钥指数互质(如果产生完全单独的RSA密钥对,那么这就是对应的情况)。其后,在至少一些实例中,嵌入式系统反转e1模(p-1)(q-1)以获得d1,并反转e2模(p-1)(q-1)以获得d2。应注意,不同的或不相关的意思是e1、e2都不是另一者的倍数,或取决于应用,e1不是e2的倍数或e2不是e1的倍数,其中e1和e2指代公开密钥。

传统上,提供用于加密/解密和用于签名的完全单独的密钥存在两个主要原因:安全性和密钥管理。就涉及到安全性而言,两种一般类型的攻击令人担心:a)由与解密数据库有关的问题导致的签名方案的完整性的缺失;以及b)由与签名数据库有关的问题导致的加密方案的机密性的缺失。然而,在嵌入式密钥供应系统的情况下,当使用本文中所描述的共模密钥供应系统/方法时,这些弱点被认为是不存在问题的。例如,如果所有已加密的消息利用不同的制造者的密钥(由嵌入式系统的制造者提供)来签名,那么完整性的缺失不应该是个问题,所述密钥链回到嵌入式装置中的证书。当嵌入式装置的解密数据库实施在装置的受信任执行环境内,或装置自身可为防篡改的,攻击者不大可能接入解密数据库。

就由涉及到签名数据库而导致的加密方案的机密性的缺失而言,攻击者很可能需要能够使用签名数据库来对消息进行解密,接着将结果泄漏出去。这似乎具有极低的风险,至少在嵌入式系统内,因为出于加密和签名的目的可使用不同的填补。任一填补产生或验证、散列和签名在受信任执行环境(简写为TEE;举例来说,在受信任区域情况下的受信任区域运行环境(TZBSP))的操作内核内部完成,以及使用这些服务不在应用(例如,受信任应用程序(TA))中完成。(应注意,在公开密钥密码术中,填补指代使用方案制作用于加密或签名的消息的过程,所述方案例如最佳非对称加密填补(OAEP)、公开密钥密码术标准#1(PKCS#1)v1.5、概率性签名方案(PSS)、PSS与恢复(PSSR)、电气电子工程师学会(IEEE)P1363、利用附录签名的编码方法(EMSA2或EMSA5)。因此,攻击者很可能需要:破解TA应用;调用在“错误”地址或具有错误参数的TEE的内核例程,以将消息作为签名传递,并对其进行解密;以及随后输出结果。尽管有可能,但这被认为是相当困难的,因此这种形式的攻击同样地被认为是具有低风险的。

现转而参看密钥管理,在大多数系统中,签名和加密密钥具有不同要求,例如,在备份、存取、附带条件的托管、否定等方面。通常,在签名密钥被破解的情况下,必须破坏所述签名密钥,但通常必须保持加密密钥以对早期的消息进行解密。通过策略或通过调节,它们可具有不同的使用期限。然而,这些担心通常并不适用于嵌入式装置,具体地说,并不适用于智能手机等,因为此类装置的使用期限通常比所有密钥的生命周期都短得多。此外,揭露一个模数的分解的通用方法最可能还用于揭露两个模数的分解。也就是说,如果借助于揭露模数的分解的方法,本文中所描述的共模密钥供应系统/方法容易受损,那么在使用其它常规的技术单独产生的情况下,密钥对最可能还是容易受损的。例如,分解技术的出乎意料的数学突破可使这两种类型的系统容易受损,但是这类突破很可能还使非共模技术容易受损。

人们相信,使用两个与单个模数“数学不相关”的指数对(即,不同的指数对)足以解决上述担忧。考虑RSA模数N=pq和两个公开/私用密钥对(e1,d1)和(e2,d2)的实例。第一密钥对仅用于加密;而第二密钥对专门用于签名目的。考虑已利用e1加密的消息c=me1到达,并且黑客具有用于(e2,d2)的解密数据库,所述解密数据库可为可利用的解密数据库或可利用的签名数据库。随后,攻击者通常限于计算cd2=m(e1d2)=m(e1/e2mod(N)),并且如果可确定关系e1/e2mod(N))(其指代欧拉函数或欧拉商数),那么在之后,仅可计算出与初始消息的关系。(应注意,函数(N)的值对攻击者来说是未知的。)只要e1和e2之间的数学关系并不显而易见,那么这一般等效于计算RSA问题。举例来说,e1(对应地,e2)应该不是e2(对应地,e1)模(N)的倍数。由于后者不可能为攻击者所知(以免攻击者能够分解RSA模数),这相当于:e1(resp,e2)应该不是e2(对应地,e1)的整数幂。因此在大多数实际情况中,使用用于e1和e2两个较小素数(关于模数较小)绰绰有余。例如,参见丘姆(Chaum)的“用于不可跟踪付款的盲签名(Blind Signatures for Untraceable Payments)”(密码学进展,密码学会刊82(3):199-203(1983))中所描述的技术。

在至少一些实例中,受信任应用程序(TA)在装置(移动装置、计算机等)上的受信任执行环境(TEE)中运行,其中TA需要向服务器认证其自身。为了做到这一点,RSA密钥对(或与共模配对的密钥对)产生于TEE的内核并保持在那里:TA不能存取这些密钥,并且通常必须调用内核,以使密码操作完成。从TA发送到服务器的消息对服务器来说是未加密的或已加密(因此,加密可使用服务器的密钥,其与RSA密钥毫无关系)。从服务器到TA的消息已利用装置的密钥进行加密。常见的两种情形是:同时用于加密和签名的单个RSA密钥(一个模数,一个单个公开/私用指数对);或两个完全不同的RSA密钥(各自具有其自身的模数和单个公开/私用指数对)。RSA密钥产生对形成装置特有的密钥集合很重要,所述密钥集合由服务器使用来对装置的一些数据进行加密,数据是TA特有的。密钥供应是将数据从服务器引入到TA中的行为。为了节约时间--并利用这些密钥不存在外部策略的事实--本文中所描述的嵌入式装置产生一个模数N和两个不同的公开/私用指数对(e1,d1)和(e2,d2),第一对用于(使用e1)加密到装置的消息以及在装置上(使用d1)解密它们,第二对用于对装置上的消息进行签名(使用d2),以及允许外部方验证所述签名(使用e2)。在RSA文献中d、e的常用含义中,d1、d2是秘密指数,e1、e2是公开指数。

在至少一些实例中,密钥产生操作如下:产生两个不同的随机素数p、q(举例来说,使用伪随机数产生器(PRNG)以产生数字,并测试它们是否是素数);计算N=pq,t=(p-1)(q-1)=(N);验证所选择的公开指数e1、e2是否与t互质。如果它们不互质,那么重新开始;如果e1、e2与t互质,那么假设d1,对应地d2是e1、e2模t的模逆;以及验证乘到t次幂的某一随机值x是否是x自身。如果不重新开始,那么嵌入式装置以另外的方式成功地产生了密钥。

就涉及到不相关公开指数而言,应用以下考虑因素。数字应该是不同的,否则方案将被还原到传统的RSA方案。一者不应该是另一者的倍数。如果e2=k e1,那么d1=k d2(模(N)),如果攻击者拦截了已由服务器(通过将其增加到第e1次幂)加密的消息,并且攻击者能够接入d2的解密数据库(举例来说,装置上所利用的签名数据库,它可泄漏操作的结果--正如它应该会泄露的,因为它是签名装置),那么攻击者可使用解密数据库来将所拦截的消息乘到d2次幂,并因此对消息进行解密(因为k是已知的,实际上,它是e1和e2之间一个不重要的因数)。一个重要的考虑因素是,作为整数,e2不应是e1的倍数(且在一人意图使用解密数据库来泄密签名方案的情况下,反之亦然--在这种情况下,e1不应是e2的倍数)。如果比值e1/e2和e2/e1不是整数,那么中断系统需要解决RSA问题(这被认为是等效于因式分解)。

应注意,模(N)e1始终是e2的倍数(且反之亦然),但是由于攻击者无法计算(N)(这种“不可能性”是标准RSA安全性假设),攻击者无法确定因数--所以,必须被阻止的倍数关系必然地保持为整数,而不是整数模(N)。使用相同模数并分离如上所述的指数对使得攻击者使用签名数据库来对消息进行解密基本上是不可能的。它实现了密钥分离的密码原理,同时降低了密钥产生的计算复杂度,并且还减小了在共享密钥时的带宽。由此,技术可适用于使用一个密钥来改进单点登录系统,并且还可具有许多其它应用。就涉及到公开指数而言:RSA系统仅需要这些指数为小于N的奇数(并且与(N)互质,但这在密钥产生时测试得到)。实际上,不存在实际的限制性。出于性能原因,系统通常使用数字,如3、5、17、257、65537,但可替代地使用其它数字。还请注意,尽管关于RSA实例描述,但本文中所描述的技术中的至少一些适用于其它密码技术,例如多素数RSA或其它RSA类密钥对。RSA类的意思是,举例来说,使用是大于两个素数的乘积的模数(因此,模数N将为N=p1*p2*…*pr,其中针对i-1、2、…、r的pi全部是素数,并且e1、e2应该与针对i-1、2、…、r的pi-1中的每一个互质,且(N)=(p1-1)*(p2-1)*…*(pr-1))。因此,本发明的各方面适用于多素数(R>2)模数。在此类情况下,密钥产生将检查e1、e2是否与针对i-1、2、…、r的pi-1中的每一个互质,而不是只与(p-1)和(q-1)互质。

此外,尽管本文中所描述的说明性实例中的许多采用共享共模的两个密钥对,但各种技术适用于共享共模的三个或大于三个密钥对的产生及使用。例如,可产生四个密钥对,两个用于加密/解密(e1,d1;e3,d3),且两个用于签名/验证(e2,d2;e4,d4),其中四个公开密钥(e1、e2、e3、e4)中的每一个满足各自不能被另一者除尽(整数)的一般条件。一般来说,可产生用于加密/解密的任何数目的密钥对,且可产生用于签名/验证的任何数目的密钥对,其中一种类型具有至少一个密钥对(其中,它们全部满足密钥对的公开指数无法除尽(整数)彼此的条件)。此外,尽管本文的实例主要涉及RSA或RSA类密钥对,但本发明的至少一些方面适用于其它密码学方案或协议,例如使用高等代数结构或多变量系统(即,有限域上基于多变量多项式使用不对称密码原语的系统)的那些方案或协议。然而,一般来说,并不预期本文中所描述的技术适用于椭圆曲线密码学密码学(ECC)或基于非交换数学结构的任一密码系统。

例示性硬件环境

可在大范围装置中广泛地应用本文中所描述的共模嵌入式密钥供应系统/方法。图1示出一种典型应用,其中总体系统100的一个端点是在智能手机或其它计算装置106的受信任执行环境(TEE)的嵌入式系统或装置104上运行的受信任应用程序(TA)102;而另一端点是软件供应商110的服务器系统108(通常与智能手机或其它计算装置的制造者合作)。在此类应用中,嵌入式系统的TA 102通常需要经装备以对从合作服务器接收的各个已加密的消息114进行解密,以及对用于发送回到服务器系统108的回复消息116进行签名。还展示了用于产生共模RSA密钥对的前述内核118和用于存储密钥对的存储装置120,以及解密数据库122和签名数据库124,它们是TEE嵌入式系统104的全部部分,但与TA 102分离。

一般来说,本文中所描述的共模系统/方法大体上适用于其中装置需要能够产生公开密钥/私用密钥对以及需要对消息进行签名的任何情况(其中,模数可保密)。为了提供具体实例,现将描述例示性硬件环境,其中在用于智能手机移动通信装置或其它接入终端的SoC处理电路上提供嵌入式密钥供应组件。其中可实施嵌入式密钥供应系统/方法的其它例示性硬件环境包含其它通信装置和组件或与其共同使用的外围装置等,以及传统的桌上型计算机和连接到因特网的事务服务器。

图2示出根据其中可利用各个新颖特征的一个实例的移动通信装置的SoC处理电路200。SoC处理电路可为高通有限公司的SnapdragonTM处理电路。SoC处理电路200包含应用程序处理电路210,所述应用程序处理电路210包含经装备以结合嵌入式共模密钥供应处理器213操作的多核CPU 212,所述处理器213具有加密/解密装置215和数字签名签名装置217(其可包含签名和验证组件两者)。加密/解密装置215可用于使用基于共模所获得的一对密钥对的一个密钥对来对消息进行加密和/或解密。签名装置217可用于使用基于共模所获得的密钥对的另一密钥对对消息进行签名和/或验证。消息本身可经由无线通信网络和其它网络发送到/接收到的远程系统(例如,图1的供应商服务器),或从所述远程系统接收。在图2的实例中,密钥供应处理器213能够同时产生和供应密钥。在实际应用中,可采用单独的系统以产生RSA密钥,而由其它系统供应密钥。还请注意,在许多实际应用中,嵌入式装置仅对从外部服务器接收的消息进行解密;它并不对消息进行加密。出于完整性和普遍性起见,展示了加密和解密组件两者。在一些实例中,签名装置217还可验证签名。

应用程序处理电路210通常控制移动通信装置的全部组件的操作。在一个方面,应用程序处理电路210耦合到用于控制数据的存储的主机存储控制器250,所述数据的存储包含内部共享存储装置232的密钥储存元件233中公开和私用密钥的存储,所述内部共享存储装置232形成内部共享硬件(HW)资源230的部分。应用程序处理电路210还可包含引导ROM或RAM 218,其存储用于SoC处理电路200的各个组件的引导顺序指令。SoC处理电路200进一步包含由应用程序处理电路210控制的一或多个外围子系统220。外围子系统220可包含(但不限于)存储子系统(例如,只读存储器(ROM)、随机存取存储器(RAM))、视频/图形子系统(例如,数字信号处理电路(DSP)、图形处理电路单元(GPU))、音频子系统(例如,DSP、模/数转换器(ADC)、数/模转换器(DAC))、功率管理子系统、安全性子系统(例如,其它加密组件和数字权限管理(DRM)组件)、输入/输出(I/O)子系统(例如,键盘、触摸屏)以及有线和无线连接子系统(例如,通用串行总线(USB)、全球定位系统(GPS)、Wi-Fi、全球移动通信系统(GSM)、码分多址(CDMA)、2G长期演进(LTE)调制解调器)。例示性外围子系统220(其为调制解调器子系统)包含DSP 222、各种其它硬件(HW)和软件(SW)组件224,以及各种射频(RF)组件226。在一个方面中,每一外围子系统220还包含引导ROM或RAM 228,其存储相关联的外围子系统220的主引导映像(未示出)。

如所提到,SoC处理电路200进一步包含各种内部共享HW资源230,例如内部共享存储装置232(例如,静态RAM(SRAM)、快闪存储器等),其由应用程序处理电路210和各个外围子系统220共享,以存储各种运行时间数据或其它参数以及提供主机存储器。在图2的实例中,内部共享存储装置232包含前述可用于存储公开和私用密钥的的密钥存储装置部分、组件或元件233。在其它实例中,密钥存储在移动装置内的其它地方。

在一个方面中,SoC处理电路200的组件210、218、220、228和230集成在单芯片衬底上。SoC处理电路200进一步包含各种外部共享HW资源240,其可位于不同的芯片衬底上,并且可经由一或多个总线而与SoC处理电路200连通。外部共享HW资源240可包含(例如)外部共享存储装置242(例如,双倍数据速率(DDR)动态RAM)和/或永久性或半永久性数据存储装置244(例如,安全数字(SD)卡、硬盘驱动器(HDD)、嵌入式多媒体卡、通用快闪装置(UFS)等),其可由应用程序处理电路210和各种外围子系统220共享以存储各种类型的数据,例如操作系统(OS)信息、系统文件、程序、应用程序、用户数据、音频/视频文件等。当并有SoC处理电路200的移动通信装置启动时,SoC处理电路开始系统启动过程,其中应用程序处理电路210可接入引导ROM或RAM 218,以检索用于SoC处理电路200的引导指令,所述引导指令包含用于各种外围子系统220的引导顺序指令。外围子系统220还可具有额外的外围引导ROM或RAM 228。

例示性共模密钥产生/处理程序

图3示出可由图2的嵌入式密钥供应处理器或其它经合适装备的组件、装置、系统或处理电路采用的共模密钥供应的实例300。在302处,密钥供应处理器获得素数p和q,并使用它们来计算模数N=pq。通常,素数的长度约为1024到2048位。在304处,密钥供应处理器基于p和q产生并存储公开密钥(e1,e2),同时验证p-1和q-1同时与e1和e2两者互质。在306处,通过反转e1模(p-1)(q-1)和e2模(p-1)(q-1)以由此产生数学上不同或不相关的第一和第二密钥对(e1,d1)和(e2,d2),密钥供应处理器产生并存储私用密钥(d1,d2)。也就是说,密钥对是彼此在数学上关系较为疏远的。如上所述,不同或不相关的意思是e1、e2都不是另一者的倍数或取决于应用,e1不是e2的倍数,或e2不是e1的倍数。应注意,仅使用一个条件来防止一些情境,同时使用两个条件来防止更多的情境或全部相关的情境。举例来说,两个密钥对可为:a)互素,b)各自可由素数除尽,所述素数不可由其它数除尽,c)一者不是另一者的幂(整数),和/或更一般地说,d)一者不是另一者的倍数(整数)。也就是说,可获得第一和第二公开密钥(e1,e2),以使得第一公开密钥(e1)不是第二公开密钥(e2)的整倍数,和/或第二公开密钥(e2)不是第一公开密钥(e1)的整倍数。在308处,密钥供应处理器使用公开密钥/私用密钥对中的一个(例如,e1,d1)来对消息进行加密和/或解密。如已提到的,在许多实际应用中,智能手机的嵌入式装置仅对从外部服务器接收的消息进行解密;它并不对消息进行加密。出于普遍性起见,展示了这两个程序。在310处,密钥供应处理器使用公开密钥/私用密钥对中的另一者(例如,e2,d2)来对消息进行签名和/或验证。在312处,密钥供应处理器将已加密的消息和/或经签名的消息发射到远程系统,例如合作软件供应商的服务器。

图4提供说明嵌入式密码装置402和合作供应商的远程服务器404的例示性操作的时序图400。在此实例中,处理开始于406,在406中,嵌入式密码装置产生RSA模数N=pq,其中p和q是素数,公开密钥(e1,e2)是这样的:e1和e2不同并与p-1和q-1两者互质,如已经论述的。在408处,通过反转e1和e2模(p-1)(q-1)以由此产生第一和第二密钥对(e1,d1)和(e2,d2),嵌入式密码装置产生私用密钥(d1,d2),同样如已经论述的。通常,406和408的操作仅由每一装置执行一次。图4的其余操作(即410和之后的操作)可重复多次,并通常针对每一合作供应商执行一次或多次,即,针对在装置的TEE中运行的每一TA执行一次(并且特定的供应商在装置内可具有大于一个的TA)。也就是说,仅仅当装置第一次运行协议时执行406和408,而针对与合作供应商的每个第一次连接来执行其余的步骤。在410处,嵌入式密码装置将公开密钥(e1,e2)发送到远程服务器,所述远程服务器在412处通过利用公开密钥(e1)中的第一者产生和加密消息来作出响应。此消息可包含口令。在414处,将已加密的消息发送到嵌入式密码装置,所述嵌入式密码装置在416处使用(e1,d1)对消息进行解密,并使用(e2,d2)对回复消息进行签名。应注意,如果在416处所接收的消息含有口令,那么密码装置使用应用特有的方法来计算响应。在418处,将经签名的回复消息发送到远程服务器,所述远程服务器在420处使用公开密钥(e2)来验证回复消息的签名。在422处,远程服务器接着处理消息并且,如果签名验证成功,那么在424处,服务器发送应答。也就是说,如果全部验证通过,那么发送应答。这个应答可含有将供应到(安全地存储)装置且使用装置的公开密钥(e1)进行加密的数据。

如所提到,消息412可含有口令(即,随机数)。服务器可以或可以不使用服务器自有的密钥来对这个消息进行签名,所述服务器自有的密钥自身链接到存储在装置中的公开证书。通过此方法,装置知道它从服务器获得了真实的消息。随后,装置进行回复。如果消息412含有口令,那么经签名的回复消息418可含有对这个口令的响应。利用服务器密钥对此消息进行加密不是必要的,但是这种是有可能的。然而,重要的是,请注意,消息含有初始口令或响应,并且消息是经签名的(从而,签名可发挥正确响应的作用,因为仅由装置就可完成它,并且服务器可以对其进行验证)。此时,424的应答还可含有数据,所述数据可含有由服务器供应到装置的实际密钥。此密钥是应用特有的,并且服务器和装置中的目标TA之间的任何其它的通信使用这个新信息。

图5概述智能手机或其它用户装置寄存与各个合作供应商有关的各种TA的方式。智能手机通常安装有与若干合作软件供应商中的每一个相关联的若干TA。开始于502,在装置启动之后,针对若干合作软件供应商中的每一个供应商的若干TA中的每一个TA,用户装置产生用于装置的共模密钥对(e1,d1)和(e2,d2)。(这可对应于图4的框406和408。)在504处,用户装置确定或检测特定合作供应商的特定TA是否已启动,接着在504处,确定这是否是第一次连接(即,TA是否已经寄存有合作供应商。)如果这是第一次连接,那么用户装置:发送用于合作供应商的密钥对的公开密钥(e1,e2);作为回复,接收已加密的消息;解密消息;对回复消息进行签名并发送;以及接收包含待供应的数据的应答。(这可对应于图4的框410到424。)处理返回到用于额外的TA的504。最终,使用各个共模密钥对以此方式登记了与全部合作供应商相关联的全部TA。在一些情况下,用于特定供应商的特定TA可需要重新登记,并且,如果是这样,那么针对那一TA重复框506的操作。在极少的情况中,还可需要产生新的共模密钥对,以用于特定TA或用于特定供应商,并且如果是这样,那么针对那一TA和/或针对那一供应商重复框502的操作。

图6示出用于本文中所描述的嵌入式共模密钥供应程序以(例如)促进初始通信问好(hellos)、握手等的例示性软件组件。服务器有效载荷库602由嵌入式密钥供应装置的制造者(例如,其中安装有嵌入式密钥供应装置的组件的智能手机的制造者)提供。服务器有效载荷库602可包含经装备以执行各种功能的软件组件604。还通过嵌入式密钥供应装置的制造者提供客户端有效载荷库606,以安装在合作供应商的远程服务器(例如,图1的服务器系统108)上。客户端有效载荷库606可包含经装备以执行各种功能的软件组件608。在使用时,服务器有效载荷库602经由网页服务器/测试仪/硬件安全性模块(HSM)610与客户端有效载荷库606通信,其可使用通信组件/协议612,例如HTTP、HTTPS、JTAG、TIC或USB。同样地,客户端有效载荷库606经由装置传输堆栈614与服务器有效载荷库602通信,其可使用相同的协议616。(应注意,HTTP表示超文本传送协议,JTAG表示联合测试行动小组,TIC表示信息和通信技术,以及USB表示通用串行总线。)在此例子中可在两个库之间传送的例示性消息包含Hello(证书、口令)消息618、HelloResp(响应消息(ReponseMsg))消息620、SetKey(包裹密钥,证书)消息622和结果消息624。这些消息的细节对于本发明的目的来说并不重要,而仅作为实例提供。

在说明性实例中,客户端有效载荷库606可包含软件组件608,其经装备以使用证书和口令来处理hello函数。这可通过以下操作(例如)来执行:将证书链接到嵌入式根中、产生已加密的装置公开密钥(DPK_EK)、产生已加密的芯片ID、产生口令响应以及执行已加密的装置公开密钥(DPK_EK)、芯片ID和口令响应的RSA加密。客户端有效载荷库606还可包含软件组件,所述软件组件经装备以通过将证书链接到嵌入式根中而利用证书设置包裹密钥(SetKey)、验证口令和响应,以及产生装置公开密钥(DPK)和解开密钥与其提供的任何元数据。

在说明性性实例中,服务器有效载荷库602可包含软件组件604,所述软件组件604经装备以使用密码质量(cryptographic quality)随机数产生器(RNG)或PRNG来产生口令。服务器有效载荷库602还可包含软件组件,其经装备以基于响应消息(ResponseMsg)、私用密钥、业务密钥和一些元数据来包裹业务密钥。例如,软件可采用RSA以使用私用密钥对从客户端有效载荷库606接收的响应消息进行解密,并接着提取已加密的芯片ID、已加密的装置公开密钥(DPK_EK)和响应。随后,软件使用已加密的芯片ID来验证口令响应,并执行资料库查询。软件使用装置公开密钥(DPK_EK)来对资料库记录进行解密、验证资料库记录的散列、提取装置公开密钥(DPK)、密钥包裹业务密钥和元数据。同样,这些只是在利用共模密钥对的同时可执行的软件功能的说明性实例。

图7另外示出例示性软件组件,具体地说,涉及认证口令和响应。服务器有效载荷库702由嵌入式密钥供应装置的制造者提供,所述嵌入式密钥供应装置可包含经装备以执行各种功能的软件组件704。客户端有效载荷库706可包含经装备以执行各种功能的软件组件708。在使用时,服务器有效载荷库702同样经由网页服务器/测试仪/HSM 710与客户端有效载荷库706通信,其可使用通信组件/协议712,例如,HTTP、HTTPS、JTAG、TIC和USB。同样地,客户端有效载荷库706经由装置传输堆栈714与服务器有效载荷库702通信,其可使用相同的协议716。在此例子中可在两个库之间传送的例示性消息包含认证(口令)消息718、AuthResp(芯片ID、装置公开密钥、经签名的响应)消息720、SendKey(包裹密钥、证书)消息722和结果消息724。这些消息和图7的那些促进了公开密钥的交换等。

在说明性性实例中,服务器有效载荷库702可包含软件组件704,所述软件组件704经装备以使用密码质量RNG或PRNG来产生前述口令。软件还包含组件,其经操作以使用芯片ID、资料库种子、认可的TA散列集合、经签名的响应和装置公开密钥来认证装置。例如,软件可产生用于使用装置公开密钥、芯片ID和资料库种子进行认证的散列,随后使用散列来验证装置公开密钥(基于资料库查询)。软件还可使用RSA来以通过用于SoC(例如,图2的SoC处理电路200)的公开密钥来验证响应,随后还验证口令,并且任选地,针对供应商认可清单验证TA散列,以及最后将“不透明”数据返回到调用程序。软件还包含组件,其经操作以使用与上文结合图6所列的那些略微不同的参数集合来包裹业务密钥。例如,图7的软件可使用以下各者来执行包裹业务密钥功能:芯片ID、资料库种子、经签名的响应、装置公开密钥、私用密钥(KPSP)、业务密钥和一些密钥元数据。这可通过认证装置、随后使用RNG以产生AES256包裹密钥来实现。使用业务密钥和密钥元数据来执行密钥包裹。包裹密钥使用SoC公开密钥进行加密。又另外,包裹业务密钥功能可使用KPSP私用密钥来对包裹业务密钥、包裹密钥、响应和TA散列进行签名。

在说明性实例中,客户端有效载荷库706可包含软件组件708,其经装备以对认证口令作出响应。如果RSA装置密钥对不存在,那么软件使用裸公开密钥(BPK)导数产生密钥对,并存储所述密钥对。随后,软件通过对口令、响应、(调用TA的)TA散列和不透明数据进行签名而产生对口令的响应。软件还可通过将证书链接到嵌入式装置根、随后通过包裹密钥验证签名来解开业务密钥和证书。软件可使用SoC私用密钥来对包裹密钥进行解密,随后解开业务密钥和其提供的任何元数据。调用TA可使用TA散列进行验证,并且如果验证成功,那么将业务密钥和元数据返回到调用程序。同样,这些只是软件功能的说明性实例。

例示性系统和方法

图8示出其中可实施图1到7的系统、方法和设备的总体系统或设备800。根据本发明的各种方面,元件或元件的任何部分或者元件的任何组合可以用处理系统814实施,所述处理系统包含一或多个处理电路804,例如图2的SoC处理电路。例如,设备800可为移动通信系统的用户设备(UE)。设备800可与无线网络控制器(RNC)一起使用。除了SoC之外,处理电路804的实例还包含微处理电路、微控制器、数字信号处理电路(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、状态机、门控逻辑、离散硬件电路以及经配置以执行贯穿本发明所描述的各种功能性的其它合适的硬件。又另外,处理系统814可为服务器(例如,图1所示的服务器)的组件。也就是说,如在设备800中所利用的处理电路804,可用于实施上文所描述的与图2、3和4中所说明的过程(以及图11、12和13与图16、17和18中所说明的、在下文论述的过程)中的任何一或多者,例如,执行数字签名产生、签名和验证以及加密/解密的过程。

在图8的实例中,处理系统814可以用大体上由总线802表示的总线架构实施。取决于处理系统814的具体应用和总体设计约束,总线802可以包含任何数目的互连总线和网桥。总线802将各种电路连接在一起,所述电路包含一或多个处理电路(大体上由处理电路804表示)、存储装置805以及机器可读、处理器可读、处理电路可读或计算机可读媒体(大体上由非暂时性机器可读媒体806表示)。总线802还可连接各种其它电路,例如定时源、外围装置、电压调节器以及功率管理电路,这些电路是所属领域中众所周知的且因此将不再做任何进一步描述。总线接口808提供总线802和收发器810之间的接口,所述收发器810可包含接收器和发射器。收发器810提供用于经由发射媒体与各种其它设备通信的装置。取决于设备的性质,还可提供用户接口812(例如,小键盘、显示器、扬声器、麦克风、操纵杆)。

处理电路804负责管理总线802和一般处理,包含存储在机器可读媒体806上的软件的执行。所述软件在由处理电路804执行时使得处理系统814执行本文中所描述的各种功能以用于任何特定设备。机器可读媒体806还可用于存储由处理电路804在执行软件时操控的数据。

在至少一些实例中,处理电路804经配置以获得第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模;使用第一公开密钥/私用密钥对的私用密钥对消息进行解密;通过使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,以获得消息的数字签名;以及收发器810的发射器装置经配置以从密码装置发送数字签名。

此外,在至少一些实例中,处理电路804(或用于处理的其它装置)提供用于获得第一和第二公开密钥/私用密钥对的装置,其中第一和第二公开密钥/私用密钥对共享共模;用于使用第一公开密钥/私用密钥对的私用密钥对消息进行解密的装置;用于通过使用第二公开密钥/私用密钥对的私用密钥对消息进行签名以获得消息的数字签名的装置;以及收发器810的发射器装置(或其它用于发射的装置)提供用于从密码装置发送数字签名的装置。在一些实例中,处理电路经进一步配置以提供装置,所述装置用于获得第一和第二公开密钥(e1,e2),以使得第一公开密钥(e1)不是第二公开密钥(e2)的倍数和/或第二公开密钥(e2)不是第一公开密钥(e1)的倍数。在一些实例中,处理电路经进一步配置以提供装置,所述装置用于获得素数p和q,同时验证p-1和q-1与第一公开密钥(e1)和第二公开密钥(e2)两者互质。

又另外,在至少一些实例中,收发器810的接收器装置经配置以从单独的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥,其中第一和第二公开密钥/私用密钥对共享共模;以及处理电路804经配置以使用共享共模的第一和第二公开密钥/私用密钥对的第一公开密钥来对消息进行加密;使用收发器810的发射器装置将已加密的消息发送到所述单独的装置;使用收发器810的接收器装置从所述单独的装置接收对消息的经签名的回复,其中所述消息已经利用使用第二公开密钥/私用密钥对的私用密钥所获得的签名进行签名;以及使用共享共模的第一和第二公开密钥/私用密钥对的第二公开密钥来验证经签名的回复的签名。

此外,在至少一些实例中,收发器810的接收器装置(或用于接收的其它装置)提供用于从单独的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥的装置,其中第一和第二公开密钥/私用密钥对共享共模;以及处理电路804(或用于处理的其它装置)提供用于使用共享共模的第一和第二公开密钥/私用密钥对的第一公开密钥来对消息进行加密的装置;用于使用收发器810的发射器装置将已加密的消息发送到所述单独的装置的装置;用于使用收发器810的接收器装置(或用于接收的其它装置)从所述单独的装置接收对消息的经签名的回复的装置,其中所述消息已利用使用第二公开密钥/私用密钥对的私用密钥所获得的签名进行签名;以及用于使用共享共模的第一和第二公开密钥/私用密钥对的第二公开密钥来验证经签名的回复的签名的装置。在一些实例中,第一和第二公开密钥/私用密钥对不同于彼此。在一些实例中,第一和第二公开密钥(e1,e2)是这样的:第一公开密钥(e1)不是第二公开密钥(e2)的倍数,和/或第二公开密钥(e2)不是第一公开密钥(e1)的倍数。在一些实例中,共模(N)是N=pq,其中p和q是素数。

处理系统中的一或多个处理电路804可执行软件或软件组件。软件应被广泛地解释为意味着指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、物件、可执行代码、执行线程、程序、函数等,而不管其是被称作软件、固件、中间件、微码、硬件描述语言还是其它者。处理电路可执行任务。代码段可表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构或程序语句的任意组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器或存储装置内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。

软件可驻留在机器可读媒体806上。机器可读媒体806可为非暂时性机器可读媒体。非暂时性处理电路可读、机器可读或计算机可读媒体包含,举例来说,磁性存储装置(例如,硬盘、软性磁盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功能光盘(DVD))、智能卡、快闪存储器装置(例如,卡、操纵杆或密钥驱动)、RAM、ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可移动磁盘、硬盘、CD-ROM和用于存储可由机器或计算机存取和读取的软件和/或指令的任何其他合适的媒体。术语“机器可读媒体”、“计算机可读媒体”、“处理电路可读媒体”和/或“处理器可读媒体”可包含(但不限于)非暂时性媒体,例如,便携式或固定存储装置、光学存储装置,以及能够存储、含有或承载指令和/或数据的各种其它媒体。因此,本文中所描述的各种方法可以完全或部分通过可存储在“机器可读媒体”、“计算机可读媒体”、“处理电路可读媒体”和/或“处理器可读媒体”中且通过一或多个处理电路、机器和/或装置执行的指令和/或数据来实施。举例来说,机器可读媒体还可包含载波、传输线,及用于传输可由计算机存取和读取的软件和/或指令的任何其它合适的媒体。

机器可读媒体806可驻留在处理系统814中、在处理系统814外部或跨越包含处理系统814的多个实体分布。机器可读媒体806可实施于计算机程序产品中。举例来说,计算机程序产品可包含封装材料中的计算机可读媒体。取决于特定应用及强加于整个系统上的总设计约束,所属领域的技术人员将认识到如何最好地实施贯穿本发明呈现的所描述的功能性。例如,机器可读存储媒体806可具有一或多个指令,所述一或多个指令在由处理电路804执行时使得处理电路:获得第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模;使用第一公开密钥/私用密钥对的私用密钥对消息进行解密;通过使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,以获得消息的数字签名;以及从密码装置发送数字签名。

图式中所说明的组件、步骤、特征和/或功能中的一或多者可以重新布置和/或组合成单个组件、块、特征或功能或体现在若干组件、步骤或功能中。在不脱离本发明的情况下,还可以添加额外的元件、组件、步骤和/或功能。图式中所说明的设备、装置和/或组件可经配置以执行图式中所描述的方法、特征或步骤中的一或多者。本文中所描述的算法还可有效地实施于软件中和/或嵌入于硬件中。

可用通用处理电路、数字信号处理电路(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中描述的功能的任何组合来实施或执行结合本文中揭示的实例而描述的各种说明性逻辑块、模块、电路、元件和/或组件。通用处理电路可为微处理电路,但在替代实施例中,处理电路可为任何常规处理电路、控制器、微控制器或状态机。处理电路还可实施为计算组件的组合,例如,DSP和微处理电路的组合、多个微处理电路的组合、结合DSP核心的一或多个微处理电路的组合或任何其它此类配置。

因此,在本发明的一个方面中,图2中所说明的处理器213可为专用处理电路(例如,ASIC)),其经专门设计和/或硬连线以执行图3、4和/或5(和/或下文论述的图11、12和13)中所描述的算法、方法和/或块中的至少一些,例如针对产生共模密钥对、解密消息和产生数字签名的那些。因此,这类专用处理电路(例如,ASIC)可为用于执行图3、4和/或5(和/或下文论述的图11、12和13)中所描述的算法、方法和/或块的装置的一个实例。机器可读存储媒体可存储指令,所述指令在由专用处理电路(例如,ASIC)执行时使得专用处理电路执行本文中所描述的算法、方法和/或块。在本发明的另一方面中,图1的远程服务器系统108还可包含专用处理电路,其经专门设计和/或硬连线以执行图3和/或4(和/或下文论述的图16、17和18)中所描述的算法、方法和/或块中的至少一些,例如针对接收共模密钥对、加密消息和验证数字签名的那些。因此,这类专用处理电路可为用于执行图3和/或4(和/或下文论述的图16、17和18)中所描述的算法、方法和/或块的装置的一个实例。机器可读存储媒体可存储指令,所述指令在由专用处理电路(例如,ASIC)执行时使得专用处理电路执行本文中所描述的算法、方法和/或块。

图9示出所选中的(例如)具有共模嵌入式密钥供应处理器902的移动装置的处理电路804的例示性组件,所述共模嵌入式密钥供应处理器902包含共模密钥产生器904。图9的密钥产生器904包含:素数选择模块/电路908,其经操作以获得或产生适合于产生共模的素数;共模产生模块/电路910,其经操作以使用素数来获得或产生共模;以及共模公开密钥/私用密钥产生模块/电路912,其经操作以获得或产生第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模。如上文所解释,可产生三个或大于三个密钥对,其中每一类型具有至少一个密钥对(即,至少一个用于加密/解密,并且至少一个用于签名/验证),并且其中全部密钥对满足公开指数无法除尽(整数)彼此的条件。其中产生第一和第二密钥对的实例在图12中展示(在下文描述),其中产生三个或大于三个密钥对的实例在图13中展示(同样在下文描述)。为了产生公开密钥/私用密钥对,公开密钥反转器模块/电路918可用于反转公开密钥以形成私用密钥。可采用非相关性验证模块/电路916以验证第一和第二公开密钥/私用密钥对不相关。密钥存储控制器920控制公开密钥/私用密钥对的存储。

嵌入式密钥供应处理器902还具有加密模块/电路922,其经操作以使用第一公开密钥/私用密钥对对消息进行加密,和解密模块/电路923,其经操作以使用第一公开密钥/私用密钥对对消息进行解密。又另外,嵌入式密钥供应处理器902还具有共模数字签名处理器模块/电路906,其经操作以使用第二公开密钥/私用密钥对的私用密钥来对消息进行签名,从而提供、获得或以另外方式产生数字签名。数字签名处理器模块/电路906包含签名模块/电路924,其经操作以使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,和验证模块/电路926,其经操作以使用第二公开密钥/私用密钥对的公开密钥来验证消息的签名。签名消息发射/接收模块/电路928经操作以接收和/或发射已加密的消息和经签名的消息,以及同时经过加密和签名的消息。

图10示出所选中的用于密钥供应的计算机或机器可读媒体806的例示性指令。提供共模嵌入式密钥供应指令1002集合,其包含共模密钥产生指令1004,所述共模密钥产生指令1004在由图8的处理电路804执行时使得处理电路控制或执行密钥供应和相关操作。图10的密钥产生指令1004包含:素数选择指令1008,其经操作以获得或产生适合于产生共模的素数;共模产生指令1010,其经操作以使用素数来获得或产生共模;以及共模公开密钥/私用密钥产生指令1012,其经操作以获得或产生至少第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模。如所提到,可产生三个或大于三个密钥对,其中每一类型具有至少一个密钥对(即,至少一个用于加密/解密,至少一个用于签名/验证),并且其中全部密钥对满足公开指数无法除尽(整数)彼此的条件。为了产生公开密钥/私用密钥对,公开密钥反转器指令1018可用于反转公开密钥以形成私用密钥。可采用非相关性验证指令1016以验证第一和第二公开密钥/私用密钥对不相关。密钥存储控制器指令1020控制公开密钥/私用密钥对的存储。

嵌入式密钥供应指令1002还包含加密指令1022,其经操作以使用第一公开密钥/私用密钥对对消息进行加密,和解密指令1023,其经操作以使用第一公开密钥/私用密钥对对消息进行解密。又另外,嵌入式密钥供应指令1002还包含共模数字签名处理器指令1006,其经操作以使用第二公开密钥/私用密钥对的私用密钥来对消息进行签名,从而提供、获得或以另外方式产生数字签名。数字签名处理器指令1006包含签名指令1024,其经操作以使用第二公开密钥/私用密钥对的私用密钥对消息进行签名,和验证指令1026,其经操作以使用第二公开密钥/私用密钥对的公开密钥来验证消息的签名。签名消息发射/接收指令1028经操作以接收和/或发射已加密的消息和经签名的消息,以及同时经过加密和签名的消息。

图11大体上示出和概述可由图8的处理电路804或由用于产生或以另外方式获得公开密钥/私用密钥对且用于对消息进行解密和签名的其它经适当装备的密码装置执行的方法或程序1100。在1102处,密码装置获得第一和第二公开密钥/私用密钥对,其中第一和第二公开密钥/私用密钥对共享共模。在1104处,密码装置使用第一公开密钥/私用密钥对的私用密钥对消息进行解密。在1106处,密码装置通过使用第二公开密钥/私用密钥对的私用密钥来对消息进行签名,从而获得消息的数字签名。在1108处,密码装置从密码装置发送数字签名。

图12示出和概述可由图8的处理电路804或由用于产生或以另外方式获得公开密钥/私用密钥对且用于对消息进行解密和签名的其它经适当装备的密码装置执行的其它方法或程序1200。密码装置可为移动无线装置内嵌入式密钥供应系统的组件。在1202处,密码装置获得第一和第二RSA公开密钥/私用密钥对(e1,d1)和(e2,d2),其中第一和第二公开密钥/私用密钥对:(1)共享共模N=pq,其中p和q是小于模数N的素数,并且p-1和q-1与第一公开密钥(e1)和第二公开密钥(e2)两者互质,以及(2)不同于彼此;并且其中获得第一和第二公开密钥(e1,e2),以使得第一公开密钥(e1)不是第二公开密钥(e2)的整倍数,和/或第二公开密钥(e2)不是第一公开密钥(e1)的整倍数;并且其中通过反转第一公开密钥(e1)和第二公开密钥(e2)模(p-1)(q-1),获得第一私用密钥(d1)和第二私用密钥(d2)。在1204处,密码装置使用第一公开密钥/私用密钥对(e1,d1)的私用密钥对消息进行解密,其中从远程系统(例如,图1的合作服务器)接收待解密的消息。在1206处,密码装置通过使用第二公开密钥/私用密钥对(e2,d2)的私用密钥(d2)对消息进行签名,从而获得消息的数字签名。在1206处,密码装置将数字签名从密码装置发送到远程系统。

图13示出其中产生大于两个密钥对的实例,其中每一类型具有至少一个密钥对(即,至少一个用于加密/解密,至少一个用于签名/验证),其中它们全部满足密钥对的公开指数无法除尽(整数)彼此的条件。也就是说,图13示出和概述可由图8的处理电路804或由用于产生或以另外方式获得公开密钥/私用密钥对且用于在使用三个或大于三个密钥对时对消息进行解密和签名的其它经适当装备的密码装置执行的其它方法或程序1300。在1302处,密码装置获得公开密钥/私用密钥对(e1,d1)…(en,dn),其中n大于2(即,三或大于三),并且其中公开密钥/私用密钥对:(1)共享共模N=pq,其中p和q是小于模数N的素数,并且p-1和q-1与全部公开密钥(e1…en)互质,以及(2)每一个不同于彼此;并且其中获得公开密钥(e1…en)中的每一个,以使得每一公开密钥不是另一公开密钥中的任一个的整倍数;并且其中通过反转对应的公开密钥模(p-1)(q-1)获得每一单个私用密钥。在1304处,密码装置使用公开密钥/私用密钥对的私用密钥中的一个对消息进行解密,其中从远程系统接收待解密的消息。在1306处,密码装置通过使用其它公开密钥/私用密钥对中的一个公开密钥/私用密钥对的私用密钥来对消息进行签名,从而获得消息的数字签名。在1308处,密码装置将数字签名从密码装置发送到远程系统。

因此,图8到13示出和概述与移动装置或其类似者的共模密码处理组件的使用有关的各个方面,所述移动装置经操作以产生和利用共模密钥对。图14到18示出和概述与远程系统(例如,合作软件服务器)的共模组件的使用有关的各个方面,所述远程系统经操作以接收和利用共模密钥对的公开密钥。

图14示出所选中的具有共模密钥处理器1402的(例如)远程服务器(例如,图1的服务器系统108)的处理电路1400的例示性组件,所述共模密钥处理器1402包含共模公开密钥接收模块/电路1404,其经操作以接收共享共模的两个或大于两个公开密钥,所述公开密钥可使用共模公开密钥存储模块/电路1406进行存储。例如,公开密钥接收模块/电路1404可从图9的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥,其中第一和第二公开密钥/私用密钥对共享共模。使用共模公开密钥中的至少一个的去话消息(去到例如图9的装置)的加密可使用加密模块/电路1408执行,以(例如)使用第一和第二公开密钥/私用密钥对的第一公开密钥对消息进行加密。任何所接收的消息的解密可通过解密模块/电路1410使用远程系统的至少一个私用密钥来执行。

又另外,共模数字签名处理器模块/电路1412经操作以使用共模密钥对来控制签名验证程序等等。更确切地说,验证模块/电路1414经操作以验证由远程系统接收到的消息的签名,其中验证使用共模密钥对的公开密钥。例如,验证模块/电路1414可使用一对共模密钥对的第二公开密钥来验证从图9的装置接收的经签名的回复的签名。还可提供签名模块/电路1416,以通过使用远程系统的私用密钥对消息进行签名,从而提供、获得或以另外方式产生数字签名。公开密钥/回复消息接收模块/电路1418经操作以从远程装置(例如,图9的装置)接收共享共模的公开密钥,以从远程装置接收经签名的回复消息,以及接收其它信息或数据。已加密的消息发射模块/电路1420经操作以将已加密的消息发射到远程装置,并用于发射其它信息或数据。

图15示出所选中的用于处理和利用共模公开密钥对的机器或计算机可读媒体1500的例示性指令。提供共模密钥供应指令1502的集合,所述指令在由(例如)远程服务器系统的处理电路执行时使得系统控制或执行密钥供应和相关操作。图15的共模密钥处理指令包含:共模公开密钥接收指令1504,其经操作以接收共享共模的两个或大于两个公开密钥,所述公开密钥可在共模公开密钥存储指令1506的控制下进行存储。例如,公开密钥接收指令1504可控制来自图9的装置的第一和第二公开密钥/私用密钥对的第一和第二公开密钥的接收,其中第一和第二公开密钥/私用密钥对共享共模。使用共模公开密钥中的至少一个的去话消息(去到例如图9的装置)的加密可使用加密指令1508执行,以(例如)使用第一和第二公开密钥/私用密钥对的第一公开密钥对消息进行加密。任何所接收的消息的解密可通过解密指令1510使用远程系统的至少一个私用密钥来执行。

又另外,共模数字签名处理器指令1512经操作以使用共模密钥对来控制签名验证程序等等。更确切地说,验证指令1514经操作以验证由远程系统接收到的消息的签名,其中验证使用共模密钥对的公开密钥。例如,验证指令1514可使用一对共模密钥对的第二公开密钥来验证从图9的装置接收的经签名的回复的签名。还可提供签名指令1516,以使用远程系统私用密钥对消息进行签名,从而提供、获得或以另外方式产生数字签名。公开密钥/回复消息接收指令1518经操作以从远程装置(例如,图9的装置)接收共享共模的公开密钥,以从远程装置接收经签名的回复消息,以及接收其它信息或数据。已加密的消息发射指令1520经操作以将已加密的消息发射到远程装置,并用于发射其它信息或数据。

图16大体上示出和概述用于加密和验证消息的可由与密码装置(例如,图9的装置)通信的系统(例如,并有图14的装置的系统)执行的方法或程序1600。在1602处,系统从单独的装置接收第一和第二公开密钥/私用密钥对的第一和第二公开密钥,其中第一和第二公开密钥/私用密钥对共享共模。在1604处,系统使用共享共模的第一和第二公开密钥/私用密钥对的第一公开密钥对消息进行加密。在1605处,系统将已加密的消息发送到所述单独的装置。在1606处,系统从所述单独的装置接收对消息的经签名的回复,其中所述消息已利用使用第二公开密钥/私用密钥对的私用密钥所获得的签名进行签名。在1608处,系统使用共享共模的第一和第二公开密钥/私用密钥对的第二公开密钥来验证经签名的回复的签名。

图17大体上示出和概述用于加密和验证消息的可由与密码装置(例如,图9的装置)通信的系统(例如,具有图14的装置的系统)执行的其它方法或程序1700。在1702处,系统接收RSA公开密钥/私用密钥对(e1,d1)和(e2,d2)的第一和第二公开密钥(e1,e2),其中第一和第二公开密钥/私用密钥对:(1)共享共模N=pq,其中p和q是小于模数N的素数,并且p-1和q-1与第一公开密钥(e1)和第二公开密钥(e2)两者互质,以及(2)不同于彼此;并且其中第一和第二公开密钥(e1,e2)是这样的:第一公开密钥(e1)不是第二公开密钥(e2)的整倍数,和/或第二公开密钥(e2)不是第一公开密钥(e1)的整倍数。在1704处,系统使用公开密钥(e1)对消息进行加密,并将其发送到移动无线装置的嵌入式系统。在1706处,系统从移动无线装置的嵌入式系统接收对消息的经签名的回复,其中所述消息已利用使用第二公开密钥/私用密钥对(e2,d2)的私用密钥(d2)所获得的签名进行签名。在1708处,系统使用第二公开密钥(e2)来验证经签名的回复的签名。

图18大体上示出和概述用于加密和验证消息(其中,采用三个或大于三个密钥对)的可由与密码装置(例如,图9的装置)通信的系统(例如,具有图14的装置的系统)执行的其它方法或程序1800。在1802处,系统接收公开密钥/私用密钥对集合(e1,d1)…(en,dn)的三个或大于三个公开密钥(e1…en),其中n大于2,并且其中公开密钥:(1)共享共模N=pq,其中p和q是小于模数N的素数,并且p-1和q-1与全部公开密钥(e1…en)互质,以及(2)其中公开密钥(e1…en)中的每一个不同于彼此;并且其中公开密钥(e1…en)中的每一个是这样的:每一公开密钥不是其它公开密钥中的任一者的整倍数。在1804处,系统使用公开密钥中的一个对消息进行加密,并将其发送到移动无线装置的嵌入式系统。在1806处,系统从移动无线装置的嵌入式系统接收对消息的经签名的回复,其中所述消息已利用使用公开密钥/私用密钥对集合的私用密钥所获得的签名进行签名。在1808处,系统使用对应于用于获得签名的私用密钥的公开密钥来验证经签名的回复的签名。因此,图18示出其中产生大于两个密钥对的实例,其中每一类型具有至少一个密钥对,并且其中全部密钥对满足公开指数无法除尽(整数)彼此的条件。

应注意,本发明的各方面可在本文中描述为过程,所述过程描绘为流程图表、流程图、结构图或框图。尽管流程图表可将操作描述为顺序过程,但是许多操作可以并行或同时执行。此外,操作的次序可重新布置。过程在其操作完成时终止。过程可以对应于方法、函数、步骤、子例程、子程序等。当过程对应于函数时,其终止对应于所述函数返回到调用函数或主函数。

所属领域的技术人员将进一步了解,结合本文中所揭示的方面描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的这种互换性,以上已大体就各种说明性组件、块、模块、电路以及步骤的功能性对它们进行描述。此类功能性是实施为硬件还是软件取决于具体应用及强加于整个系统的设计约束。

结合本文中揭示的实例而描述的方法或算法可以处理单元、编程指令或其它方向的形式直接体现在硬件、可由处理器执行的软件模块或两者的组合中,且可含于单个装置中或跨越多个装置而分布。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可以与处理器成一体式。

本文中描述的本发明的各种特征可实施于不同系统中而不脱离本发明。应注意,前述实施例仅为实例,且不应解释为限制本发明。实施例的描述意图为说明性的,且不限制权利要求书的范畴。因此,本发明的教示可易于应用于其它类型的设备,且所属领域的技术人员将明白许多替代方案、修改及变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1