CN101682507A - 设备相关rsa密钥的生成 - Google Patents

设备相关rsa密钥的生成 Download PDF

Info

Publication number
CN101682507A
CN101682507A CN200780053302A CN200780053302A CN101682507A CN 101682507 A CN101682507 A CN 101682507A CN 200780053302 A CN200780053302 A CN 200780053302A CN 200780053302 A CN200780053302 A CN 200780053302A CN 101682507 A CN101682507 A CN 101682507A
Authority
CN
China
Prior art keywords
prime
prime number
numbers
logic
prime numbers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200780053302A
Other languages
English (en)
Inventor
纳德·帕夫洛维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Mobile Communications AB
Original Assignee
Sony Ericsson Mobile Communications AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Ericsson Mobile Communications AB filed Critical Sony Ericsson Mobile Communications AB
Publication of CN101682507A publication Critical patent/CN101682507A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于与其它电子设备交换加密数据的便携式电子设备(10)包括:处理器(22)、操作地连接到所述处理器的存储器(16),以及操作地连接到所述处理器和所述存储器的素数生成电路(12a)。所述素数生成电路包括用于根据存储在所述电子设备中的独特数据来生成至少两个素数的逻辑,其中,所述至少两个素数始终是相同的至少两个素数。所生成的素数随后可以用来在所述电子设备(10)内生成RSA公钥和私钥。

Description

设备相关RSA密钥的生成
技术领域
本发明总体上涉及电子设备,例如用于进行语音通信的电子设备。更具体来说,本发明涉及一种用于在该电子设备内生成独特的设备相关RSA密钥对的设备和方法。
背景技术
电子设备的移动和/或无线部件正日益普及并且目前被广泛使用。此外,与特定类型的电子设备相关联的特征已经日益多样化。举几个例子,许多电子设备都包括摄像机、文本消息传送功能、因特网浏览功能、电子邮件功能、视频播放功能、音频播放功能、图像显示功能、导航功能以及免提耳机接口。
显而易见地,电子设备的首要特征是通过各种通信网络进行数据交换。当通过诸如无线通信网络或数据网络这样的通信网络来交换数据时,优选地提供某一安全级别来防止对所交换数据的未授权使用。一般来说,这种安全性是通过利用加密算法对数据进行加密来提供的。在诸如移动电话的电子设备中,例如经常使用RSA来提供这种安全性。
RSA是一种用于公钥加密的算法,并且被广泛用于电子商务协议中。RSA利用了公钥和私钥,其中,公钥可以对所有人都是已知的,并且用于对消息进行加密。然而,用公钥加密过的消息只能用私钥来解密。
常规上,每个电子设备被提供有在外部生成(例如,通过在计算机上运行的软件生成并随后传送到电子设备)的独特私钥。一旦生成,密钥就被存储在电子设备中。为了维持安全性,优选地是,在诸如电子设备制造商的工厂内的安全区域的安全环境内生成这种密钥,然后立即将其以加密形式存储在电子设备上。
使用时,每当需要密钥时,就从存储设备中获取它,并进行解密和使用。使用后,应当从存储器中移除经解密的密钥,以防对该密钥的未授权访问。
发明内容
在电子设备中实现RSA密钥的上述方法的缺点在于,密钥处理可能成本很高,并且可能产生技术问题。例如,密钥处理系统的复杂性可能导致车间的生产停止。
本发明能够生成独特密钥,而没有现有技术的缺点。更具体来说,可以在设备自身内无限次地生成、使用和擦除独特的RSA密钥对。这样,就无需在外部生成所述密钥。此外,每当需要时,电子设备可以重新生成相同的密钥对。因为RSA密钥生成是建立在获得两个素数的基础上的,所以可以通过导出基于存储在电子设备中的数据的两个素数来生成相同的密钥,例如,该电子设备的硬件密钥。此外,可以将导出所述素数的算法配置成,使得对于特定设备始终获得相同的素数,而所述素数(进而所述密钥)在设备间是独特的。
本文所描述的方法和设备增强了数据交换的安全性,因为不需要在外部生成密钥,而这可能会遭受安全侵犯。此外,因为密钥在内部生成,所以它们不可能丢失。此外,如果要对安全密钥的模式进行改变,则不需要对制造商的外部软件工具要进行修改,因为它们不受这些改变的影响。
根据本发明的一个方面,一种用于与其它电子设备交换加密数据的便携式电子设备包括:处理器和存储器;以及素数生成电路,其可操作地连接到所述处理器和存储器,所述素数生成电路包括基于存储在所述电子设备中的独特数据来生成至少两个素数的逻辑,其中,所述至少两个素数始终是相同的至少两个素数。
根据本发明的一个方面,所述至少两个素数互不相同。
根据本发明的一个方面,所述素数生成电路还包括用于导出长度至少为预定字节数的素数的逻辑。
根据本发明的一个方面,所述独特数据是所述电子设备的特性数据。
根据本发明的一个方面,所述素数生成电路还包括将所述电子设备的硬件相关密钥用作所述特性数据的逻辑,所述硬件相关密钥对于每台电子设备都是独特的。
根据本发明的一个方面,所述素数生成电路还包括用于结合所述硬件相关密钥使用HMAC运算来生成具有预定长度的可重复哈希值的逻辑。
根据本发明的一个方面,所述素数生成电路还包括:用于在至少两个可能素数是偶数的情况下将所述至少两个可能素数转换成奇数的逻辑;以及用于确定所述至少两个可能素数是否为素数的逻辑。
根据本发明的一个方面,所述用于确定所述至少两个可能素数是否为素数的逻辑包括:用于测试所述至少两个可能素数的素性的逻辑;用于在所述至少两个可能素数中的某个可能素数未通过素性测试的情况下使相应的可能素数增大2的逻辑;以及用于利用该增大后的可能素数来重复所述确定步骤的逻辑。
根据本发明的一个方面,所述用于确定所述至少两个可能素数是否为素数的逻辑包括:用于测试所述至少两个可能素数的素性的逻辑;用于重新生成所述至少两个可能素数中未通过素性测试的可能素数的预定数量的最低有效字节的逻辑;以及用于重复所述素性测试和最低有效字节的重新生成直到所述可能素数为素数为止的逻辑。
根据本发明的一个方面,所述设备还包括:用于对生成所述至少两个素数时所使用的参数进行缓存的逻辑;以及用于在随后的RSA密钥生成过程中重新使用所缓存的参数的逻辑。
根据本发明的一个方面,所述用于缓存的逻辑对RSA公钥指数(exponent)或所述公钥和私钥的模数(modulus)中的至少一个进行缓存。
根据本发明的一个方面,所述设备还包括:RSA生成电路,其可操作以基于所述至少两个素数在所述电子设备内生成RSA公钥和私钥。
根据本发明的一个方面,所述便携式电子设备是移动电话。
根据本发明的一个方面,一种用于在便携式电子设备中生成RSA密钥的方法包括以下步骤:基于存储在所述电子设备中的独特数据来生成至少两个素数,其中,所述至少两个素数始终是相同的至少两个素数;以及使用所述至少两个素数来生成RSA私钥和公钥。
根据本发明的一个方面,所述方法还包括以下步骤;在使用了所述RSA私钥之后,从存储器中清除所述RSA私钥。
根据本发明的一个方面,生成步骤包括:导出长度为至少预定字节数的素数。
根据本发明的一个方面,生成步骤包括:将所述电子设备的硬件相关密钥用作所述独特数据。
根据本发明的一个方面,生成步骤包括:结合所述硬件相关密钥利用HMAC运算来生成具有预定长度的可重复哈希值。
根据本发明的一个方面,生成步骤包括:生成至少两个可能素数;在所述至少两个可能素数中相应的一个是偶数的情况下,将所述至少两个可能素数中相应的一个转换成奇数;以及确定所述至少两个可能素数是否为素数。
根据本发明的一个方面,确定所述至少两个可能素数是否为素数的步骤包括:测试所述至少两个可能素数的素性;在所述至少两个可能素数中相应的可能素数未通过素性测试时使相应的可能素数增加2;以及使用相应的增加后的可能素数来重复所述确定步骤。
根据本发明的一个方面,其中,确定所述至少两个奇数是否为素数的步骤包括:测试所述至少两个奇数的素性;当相应的奇数不是素数时,重新生成所述至少两个可能素数的预定数量的最后字节;以及重复所述测试和重新生成步骤,直到所述至少两个奇数为素数为止。
根据本发明的一个方面,所述方法还包括以下步骤:对生成所述至少两个素数时所用的参数进行缓存;以及在随后的RSA密钥生成过程中重新使用所缓存的参数。
根据本发明的一个方面,缓存步骤包括:对RSA公钥指数或所述公钥和私钥的模数中的至少一个进行缓存。
为了实现前面及其相关的目标,本发明包括在后面在说明书中充分描述并在权利要求书中具体指出的特征,以下的说明书和附图详细阐述了本发明特定的例示性实施方式,然而,这些实施方式仅代表了可以适当采用本发明原理的多种方式中的一些。
通过研究附图和详细说明,本领域技术人员会想到本发明的其它系统、方法、特征和优点。旨在将所有这些其它系统、方法、特征和优点都包括在本说明书内、落入本发明的范围内,并受所附权利要求书的保护。
尽管针对一个或更多个实施方式示出和描述了本发明,但是应该理解,在阅读并理解了本说明书后,本领域技术人员将想到等同方案和更改方案。本发明包括所有这些等同方案和更改方案,并且仅受所附权利要求书范围的限制。
此外,尽管在相应附图/实施方式中描述和说明了各种特征,但是应该理解,给定附图或实施方式的特征可以用在本发明的一个或更多个其它附图或实施方式中。
应该强调的是,用于本说明书中时,措辞“包括”用来指定所声明的特征、整数、步骤或组件的存在,但是并不排除存在或添加一个或更多个其它特征、整数、步骤、组件或其组合。
附图说明
参照附图可以更好地理解本发明的许多方面。附图中的部件并不一定按照比例绘制,重点应放在清楚地例示本发明的原理方面。类似地,一幅图中描绘的要素和特征可以与其它附图中描绘的要素和特征进行组合。此外,在附图中,相同的标号贯穿几幅视图表示相应的部件。
图1是根据本发明实施方式的作为示例性电子设备的移动电话的示意图。
图2是根据本发明实施方式的图1的移动电话的相关部分的示意性框图。
图3是图1的移动电话可以在其中工作的通信系统的示意图。
图4是根据本发明的可以用来生成RSA密钥的示例性素数生成功能的流程图。
图5A和5B是例示了根据本发明的可以用来实现素数生成和密钥生成的示例性代码的流程图。
具体实施方式
现在将参照附图来描述本发明的实施方式,其中,相同的标号在全文中用来指代相同要素。应该理解,这些图并不一定要按比例绘制。
可互换的术语“电子装置”和“电子设备”包括便携式无线通信装置。在后文中也被称为“移动无线终端”的术语“便携式无线通信装置”包括诸如移动电话、寻呼机、通信器、电子记事本、个人数字助理(PDA)、智能电话、便携式通信装置、便携式游戏设备等所有这些装置。
在本申请中,主要在移动电话环境下描述本发明的实施方式。然而,应该理解,本发明并不是要局限于移动电话的环境下,而是可以涉及任何类型的适当的电子装置。
首先参照图1和2,图中示出了电子设备10。电子设备10包括RSA密钥生成功能12,其被设置用于在电子设备10内自动生成RSA私钥和公钥。RSA密钥生成功能12的其它细节和操作将在下面进行更详细的描述。RSA密钥生成功能12可以实施为驻留在电子设备10中并且由电子设备10执行的可执行代码。在一个实施方式中,RSA密钥生成功能12可以是存储在计算机或机器可读介质上的程序。RSA密钥生成功能12可以是独立的软件应用,或者形成用于执行与电子设备10有关的额外任务的软件应用的一部分。
所例示的实施方式的电子设备是移动电话,并且将被称为移动电话10。移动电话10被表示为具有“直板(brick或block)”形状因子的外壳,但是应该理解,可以利用其它外壳类型,例如,“翻盖”形状因子(例如,“蛤壳式”外壳)或滑盖形状因素(例如,“滑动式”外壳)。
移动电话10可以包括显示器14。显示器14向用户显示信息,例如,工作状态、时间、电话号码、联系人信息、各种导航菜单等,使得用户能够利用移动电话10的各种特征。显示器14还可以用来从视觉上显示移动电话10接收到的内容和/或从移动电话10的存储器16(图2)获取的内容。显示器14可以用来向用户呈现图像、视频和其它图形,例如,照片、移动电视内容和游戏相关视频。
键盘18提供了各种用户输入操作。例如,键盘18通常包括数字字母键,用于允许键入数字字母信息,例如,电话号码、电话列表、联系人信息、备注等。此外,键盘18通常还包括特殊功能键,例如,用于发起或应答呼叫的“呼叫发送”键,和用于结束或“挂起”呼叫的“呼叫结束”键。特殊功能键还可以包括菜单导航与选择键,以帮助通过显示器14上显示的菜单来进行导航。例如,可以存在定点设备和/或导航键以接受来自用户的定向输入。特殊功能键可以包括视听内容播放键,以开始、停止和暂停播放,跳过或者重复音轨等。其它与移动电话相关的键可以包括音量键、静音键、电源开/关键、网络浏览器启动键、摄像键等。键或者类似键的功能还可以实施为与显示器14相关联的触摸屏。此外,显示器14和键盘18可以相互协同来使用,以实现软键功能。
移动电话10包括呼叫电路,该呼叫电路使移动电话10能够与通常为另一部移动电话或固定电话的被叫/主叫设备建立呼叫和/或交换信号。然而,被叫/主叫设备不一定是另一部电话,也可以是一些其它设备,例如,因特网网络服务器、内容提供服务器等。呼叫可以采用任何适当的形式。例如,呼叫可以是通过蜂窝电路交换网建立的常规呼叫,或者是通过蜂窝网络的分组交换能力或通过另选的分组交换网络(例如,WiFi(例如,基于IEEE 802.11标准的网络)、WiMax(例如,基于IEEE 802.16标准的网络))等建立的基于网际协议的语音(VoIP)呼叫。另一实施例包括通过蜂窝网络或另选网络建立的支持视频的呼叫。
移动电话10可以被设置用于发送、接收和/或处理数据,例如,文本消息(例如,文本消息常被称为“SMS”,代表短消息服务)、即时消息、电子邮件消息、多媒体消息(例如,多媒体消息常被某些人称为“MMS”,代表多媒体消息服务)、图像文件、视频文件、音频文件、铃音、流音频、流视频、数据种子(包括播客)等。对这些数据进行的处理可以包括:将数据存储在存储器16中、执行应用以允许用户与数据进行交互、显示与数据相关联的视频和/或图像内容、输出与数据相关联的音频声音等。
图2示出了移动电话10的功能框图。出于简明的目的,这里将不详细描述移动电话10的一般常规特征。
移动电话10包括主控制电路20,该控制电路20被设置用于执行移动电话10的功能和操作的整体控制。控制电路20可以包括处理设备22,例如,CPU、微控制器或微处理器。处理设备22执行控制电路20内的存储器(未示出)和/或诸如存储器16这样的单独存储器中所存储的代码,以执行移动电话10的操作。
存储器16可以包括用非易失性存储器16a实现的只读存储区,和用易失性存储器16b实现的随机存取存储器或系统存储器。应该理解的是,非易失性存储器在断电时不会失去数据存储能力,并且通常用来存储数据、应用代码、文件等。非易失性存储器16a可以用例如闪存来实现。闪存可以具有NAND架构,但是也可以使用其它闪存架构,例如,NOR架构。应该理解的是,易失性存储器在断电时会失去数据存储能力,并且通常用来存储供处理设备22在逻辑例程的执行期间存取的数据。易失性存储器16b可以是随机存取存储器(RAM)。RAM可以是例如同步动态随机存取存储器(SDRAM),但是也可以使用其它利用存储器块的RAM架构。数据可以在非易失性存储器16a和易失性存储器16b之间按照常规那样进行交换。非易失性存储器16a和易失性存储器16b的大小可以被设置为适合于移动电话10或使用存储器16的其它电子设备。
此外,处理设备22可以执行实现RSA密钥生成功能12的代码。对计算机编程领域技术人员(尤其是对移动电话或其它电子设备进行应用编程的技术人员)而言,如何对移动电话10进行编程以基于本文的描述来操作和实行与RSA密钥生成功能12相关联的逻辑功能是显而易见的。因此,为了简明,已经省略了关于特定编程代码的细节。此外,尽管根据本发明的优选实施方式,RSA密钥生成功能12是由处理设备22执行的,但是该功能也可以通过专用硬件、固件、软件或其组合来实行,而不会超出本发明的范围。这些实现中的任意一个都可以被称为RSA密钥生成电路12或简称为逻辑电路。
继续参照图1和2,移动电话10包括连接到无线电路26的天线24。无线电路26包括射频发射机和接收机,用于按常规那样通过天线24发射和接收信号。无线电路26可以被设置成在移动通信系统中工作,并且可以用来发送和接收数据和/或视听内容。与移动无线网络和/或广播网络进行交互的接收机类型包括但不限于:GSM、CDMA、WCDMA、GPRS、WiFi、WiMax、DVB-H、ISDB-T等,以及这些标准的高级版本。
移动电话10还包括声音信号处理电路28,用于处理从无线电路26发射和接收的音频信号。声音处理电路28上连接有扬声器30和麦克风32,它们按照常规那样使用户能够通过移动电话10进行听说。无线电路26和声音处理电路28都连接到控制电路20,以进行整体操作。音频数据可以从控制电路20传递给声音信号处理电路28,以便播放给用户。音频数据可以包括例如:来自存储器16所存储并通过控制电路20获取的音频文件的音频数据,或者从移动无线服务接收到的诸如流音频形式的音频数据。声音处理电路28可以包括任何适当的缓冲器、解码器、放大器等。
显示器14可以通过视频处理电路34连接到控制电路20,该视频处理电路34将视频数据转换成用于驱动显示器14的视频信号。视频处理电路34可以包括任何适当的缓冲器、解码器、视频数据处理器等。视频数据可以由控制电路20生成、从存储在存储器16中的视频文件获取、从无线电电路28接收到的流入视频数据流导出,或者通过任何其它适当方法获得。
移动电话10还可以包括一个或更多个I/O接口36。I/O接口36可以是典型移动电话I/O接口的形式,并且可以包括一个或更多个电连接器。和典型情况一样,接口36可以用来将移动电话10连接到电池充电器,来为移动电话10内的电源单元(PSU)38的电池充电。另外或者另选地,I/O接口36可以用来将移动电话10连接到耳机组件(例如,个人免提(PHF)设备),该耳机组件与移动电话10具有有线接口。此外,I/O接口36可以用来通过数据线将移动电话10连接到个人计算机或其它设备来进行数据交换。当连接到车载电源适配器或电源插座适配器时,移动电话10可以通过I/O接口36接收工作电力。
移动电话10还可以包括系统时钟40,用于为移动电话10的各种部件(例如,控制电路20)设置时钟。而控制电路20又可以执行计时功能,例如,对呼叫时长进行计时、生成时间和日期戳的内容等。
移动电话10可以包括摄像机42,用于拍摄数字照片和/或影像。对应于照片和/或影像的图像和/或视频文件可以存储在存储器16中。
移动电话10还可以包括位置数据接收机44,例如,全球定位系统(GPS)接收机、伽利略卫星系统接收机等。
移动电话10还可以包括本地无线接口46,例如,红外收发机和/或RF接口(例如,蓝牙接口),用于与附件、另一移动无线终端、计算机或另一设备建立通信。例如,在耳机组件具有对应无线接口的实施方式中,本地无线接口46可以操作地将移动电话10连接到该耳机组件(例如,PHF设备)。
继续参照图3,移动电话10可以被设置成作为通信系统48的一部分来运行。系统48可以包括具有一个(或多个)服务器52的通信网络50,服务器52用于管理移动电话10发起或作为目的地的呼叫、向移动电话10发送数据以及实行任何其它支持功能。服务器52通过传输介质与移动电话10进行通信。该传输介质可以是任何适当的设备或组件,例如包括:通信塔(例如,小区塔)、另一部移动电话、无线接入点、卫星等。网络的各个部分可以包括无线传输路径。网络50可以支持多个移动电话10和其它类型的终端用户设备的通信操作。
应该理解的是,服务器52可以被设置成用来执行服务器功能的典型计算机系统,并且可以包括被设置用于运行包含逻辑指令的软件的处理器和存储该软件的存储器,所述逻辑指令用于实现服务器52的功能。
现在移至RSA密钥生成功能12,用于创建RSA公钥和私钥的一般步骤如下示出。
·选择两个不同的大随机素数p和q。
·计算η=pq,其中,η是公钥和私钥二者的模数。
·计算欧拉函数
Figure G2007800533023D00102
在PKCS#1 v2.0中该函数变化为λ(η)=lcm(p-1,q-1)。
·选择整数e使得1<e<Φ(η),并且e与Φ(η)互素,即,e和Φ(η)没有除1以外的公因数;gcd(e,Φ(η))=1。
·e被解出来作为公钥指数。
·计算d使之满足恒等关系de≡1(modΦ(η)),即,对于某些整数k,de=1+kΦ(η)。
·d被保存为私钥指数。
计算RSA密钥的首要步骤是素数p和q的选择,因为所有其它值都是从中直接或间接推导出的。如果始终生成相同的素数,则也将生成相同的私钥和公钥。通过在移动电话10内实现始终生成相同素数的素数生成电路12a,可以在每次需要时生成相同的RSA密钥,随后在使用之后被擦除。此外,通过使电路12a的素数生成建立在移动电话10的独特特性的基础上,RSA密钥对于每个移动电话10都将是独特的。这样就不需要在外部生成RSA密钥随后在移动电话10中对它们进行存储与加密。
为了生成相同的素数p和q,可以结合诸如移动电话10的硬件相关密钥K这样的密钥来使用HMAC运算,对于给定串(数据),该HMAC运算始终生成相同的哈希值(例如,h=HMAC(K,data))。如本领域技术人员熟知的,密钥哈希消息认证码(或HMAC)是一种将加密哈希函数与密钥结合使用所计算出的消息认证码(MAC)。对于任何MAC,都可以用来同时验证数据的完整性和消息的可靠性。迭代的哈希函数将消息分解成固定大小的多个块,并用压缩函数对它们进行迭代。例如,MD5和SHA-1对512比特的块进行运算。HMAC的输出的大小与基础哈希函数的大小相同,尽管期望时可以对其进行截取。
优选地,密钥K是随机生成的,并且对于每个移动电话10都是独特的。实施为硬件相关密钥的密钥K例如可以在生产期间生成,并且以加密格式被永久存储在移动电话中(例如,烧入到只读存储器或ROM中)。
此外,计算出的哈希值优选为20字节的长度,尽管其它长度也是可能的。20字节或更长的长度意味着应该使用相同密钥(K)和相同串(数据)对HMAC函数进行多次调用(例如,直到生成的数为期望长度为止),其中,所述串以序列方式构成,使得它可以随时被重复使用。示例性代码示出如下。
const EHMAC_OUT_LEN=20;
expectedPrimeLen=128bytes;
Len=0;
K=GetHardwareKey();
p=””
q=””
generation_string_p=“P_PRIME_STRING”||DevicesIMEINumber||Len;
generation_string_q=“Q_PRIME_STRING”||DevicesIMEINumber||Len;
while(Len<expectedPrimeLen)
{
    generation_string_p[last2bytes]=Len;
    generation_string_q[last2bytes]=Len;
    p=p||HMAC(K,generation_string_p);
    q=q||HMAC(K,generation_string_q);
    Len+=EHMAC_OUT_LEN;
}
一旦生成的p和q的值为期望长度,就将它们视为可能素数(即,满足所有素数都同样满足的特定条件的整数)。为了确保这些可能素数确实是素数,对这些可能数进行检查或测试。更具体来说,将生成的p和q的值转换成奇数(如果还不是奇数的话),然后检查素性。如果确定出所生成的p和q的值为素数,则使用它们来生成RSA密钥。如果确定出可能素数之一或二者不是素数,则将未通过测试的数加2然后再次进行测试。如果新的数未通过测试,则将它加2,如此操作直到满足测试为止。反复进行该过程,直到确定该数为素数为止。一旦确定p和q均为素数,就如本文所描述的那样将它们用于生成RSA密钥。
用于检查该数为奇数还是偶数并测试素性的示例性代码示出如下。
If(p[expectedPrimeLen-1]%2==0)///<Check if even number
   p[expectedPrimeLen-1]++;
If(q[expectedPrimeLen-1]%2==0)///<Check if even number
   q[expectedPrimeLen-1]++;
i=0;
p_test=p;
while(!isPrime(p_test))///<Check for primality
{
    p_test=p+(i*2);///<inc number for i*2
    i++;
}
    p=p_test;
i=0;
q_test=q;
while(!isPrime(q_test))///<Check for primality
{
    q_test=q+(i*2);///<inc number for i*2
    i++;
}
    q=q_test;
另一种查找素数的方式是重新生成初始产生的素数(即,可能素数)的后X字节,直到满足素性测试为止。示例性代码示出如下。
If(p[expectedPrimeLen-1]%2==0)///<Check if even number
   p[expectedPrimeLen-1]++;
If(q[expectedPrimeLen-1]%2==0)///<Check if even number
   q[expectedPrimeLen-1]++;
i=Len+1;
while(!isPrime(p_test))///<Check for primality
{
    //Replace last X bytes in p with new value
    P[lastXbytes]=HMAC(K,generation_string_p||i);
    i++;
}
p=p_test;
i=Len+1;
while(!isPrime(q_test))///<Check for primality
{
    //Replace last X bytes in p with new value
    Q[lastXbytes]=HMAC(K,generation_string_q||i);
    i++;
}
q=q_test;
在上面的实施例中,可能素数的后X字节用新生成的数据来替换,所述新生成的数据是基于密钥K和串数据使用HMAC函数来生成的。重复该过程,直到确定可能素数是素数为止。
无论使用上面的哪种算法,始终都会生成相同的素数p和q,因此执行相同的RSA密钥计算。
除了生成相同素数之外,还可以缓存各种数据,以提高整体计算的速度。例如,首次执行计算时,可以执行整个算法,以生成计算p和q以及RSA密钥所需的中间数据。一旦使用了密钥,就可以将它们与私钥指数d一同从存储器中清除。公钥指数e和模数η是公知的,因此不需要从存储器中清除,因为它们不会造成安全问题。换言之,可以将模数η和公钥指数e缓存在存储器中以供随后使用。
在后续RSA密钥计算中,仅需要计算与私钥指数d相关联的数据,因为与公钥相关联的数据可以从存储器获取。此外,一旦已经首次生成了密钥,就可以通过将公钥缓存在非易失性存储器(例如,闪存、硬盘等)中来优化该生成过程。于是,需要公钥时,无需执行生成公钥的计算,因为可以简单地从存储器中获取公钥并立即使用。
所提出的密钥生成方法的优点在于可以省略以下工厂处理:生成密钥、将它们格式化为适当图像、保护该图像以及将该图像闪存到移动电话中。这从本质上免除了针对所有密钥维护数据库和对不同工厂工具与数据库进行同步的要求。此外,不需要在工厂对移动电话进行引导(boot),以便用硬件相关密钥对RSA密钥进行再加密,这确保了以更高的安全级别来保护密钥。
另一优点在于,移动电话在RSA密钥丢失(例如,在移动电话内被破坏或擦除)的情况下不需要返工,因为每当需要RSA密钥时它们就被自动生成。此外,如果用于特定国际移动设备标识(IMEI)的密钥K被存储在受保护数据库中,则可以通过闪存IMEI和硬件相关密钥来克隆移动电话,这将使用户能够使用之前已经下载并存储在例如记忆棒上的受保护内容(例如,DRM内容)。
继续参照图4,所图示的是实现生成素数的示例性方法的逻辑操作,所述素数用于在移动电话10中创建RSA私钥和公钥。图4图示了可以实现来在每当需要RSA密钥时导出相同素数的步骤。该示例性方法可以例如通过执行RSA密钥生成功能12的实施方式来实行。因此,图4的流程图可以视为描绘了由移动电话10实行的方法的步骤。尽管图4示出了执行功能逻辑框的特定顺序,但是可以相对于所示出的顺序改变执行这些框的顺序。此外,依次示出的两个或更多个框可以同时执行,或者部分同时执行。还可以省略某些框。此外,出于增强效用、结算力、性能、措施、故障诊断等目的,可以向该逻辑流程添加任意数量的功能、逻辑操作、命令、状态变量、信号或消息。应该理解,所有这些变体都落入本发明的范围内。
RSA密钥生成功能12的逻辑流程可以在框60处开始,其中,选择素数p和q的期望大小(例如,字节数)并获得用于推导所述素数的串。该串可以从组合了设备的独特标识符的固定或预定串中获得。优选地,所选的素数的大小较大,例如为128字节或更大,因为较大的素数提高了RSA密钥的安全级别。在框61处,可能素数p和q被设置为0(例如,可能素数的变量被初始化为0)。
然后,在框62处,获取密钥K,例如电子设备的硬件相关密钥。如本文所提到的,硬件相关密钥K是存储在电子设备内的独特标识符,并且可以在制造电子设备时进行指定。
接着,在框64处构成用于推导素数p和q的数据串。在电子设备被实施为移动电话10的情况下,例如可以根据与预定义的数据串相组合的IMEI来构成所述串。下面示出示例性代码,其中“串”是在框60处获得的数据串,数“14”对应于用字节表示的IMEI的长度,而数“2”对应于变量“primeLength”的长度。
primeLength=0;
prime=“”;
generation_string=string||GetIMEI()||primeLength;
generation_string_length=strlen(string)+14+2;
接着,在框66处,根据所构成的数据串(generation_string)和移动电话的独特标识符(例如,硬件密钥)来生成可能素数p和q中的每个的数部(number portion)。每个可能素数的数部例如可以利用HMAC运算来生成。然后,在框67处,可以将每个生成的数部附加到相应的可能素数p或q上。因为可能素数p和q被指定为具有特定长度(例如,特定字节数),所以如框68和70处所示来检查可能素数的长度。如果生成的素数不满足所指定的长度,则在框72处继续进行生成步骤,以寻找更大的可能素数(例如,可以将额外的数据附加到所构成的串上,然后可以根据新的串来生成新的可能素数)。重复该过程,直到可能素数满足框60处指定的长度为止。
一旦可能素数具有足够的长度,则在框74和76处,测试该可能素数的素性。素性测试可以包括将可能素数转换成奇数(如果还不是奇数的话)。如果该数不是素数,则在框78处,修改该可能素数。如上所述,修改初始生成的可能素数可以包括将该数加2。然后,方法移回到框74和76,进行重新测试。如果再次确定该数不是素数,则将该数加4(然后是6、8、10等等),然后再次测试,直到确定素数为止。可替换地,修改可以包括重新生成初始产生的可能素数的后X字节,直到满足素性测试为止。一旦确定了p和q均为素数,则在框80处,将这些素数用于生成RSA密钥。
进一步参照图5A和5B,示出了说明可以用来实现上述算法的示例性代码的流程图。更具体来说,图5A图示了用于生成素数的示例性步骤,而图5B图示了用于生成公钥和私钥的示例性步骤。计算机编程领域技术人员考虑本文所提供的公开,将容易理解图5A和5B中图示的步骤,因此未提供关于这些单独步骤的进一步细节。
因此,用于生成RSA私钥和公钥的素数可以在电子设备内生成,从而这些素数(进而这些RSA密钥)对于特定设备将始终相同。然而,因为素数的生成是建立在移动电话的独特密钥的基础上的,所以素数(进而RSA密钥)在设备之间将是不同的。
本文已经公开了本发明的特定实施方式。本领域技术人员将容易认识到本发明可以具有在其它环境下的其它应用。实际上,许多实施方式和实现都是可能的。以下权利要求书绝不是要将本发明的范围限制在上述特定实施方式。此外,对“用于......的装置”的任何叙述都意图进行部件和权利要求的功能性解释,而任何未特别使用“用于......的装置”叙述的部件并不意图解释为功能性部件,即使权利要求包括词语“装置”。
可由硬件和/或软件(包括固件、驻留软件、微代码等)来实施本发明的计算机程序部件。本发明可以采用计算机程序产品的形式,该计算机程序产品可由具有计算机可用或可读程序指令、“代码”或“计算机程序”的计算机可用或可读存储介质来实现,计算机可用或可读程序指令、“代码”或“计算机程序”包含在该介质中,供指令执行系统使用或与指令执行系统一起使用。在本申请的环境下,计算机可用或计算机可读介质是指可以包含、存储、传送、传播或传输程序的任意介质,该程序供指令执行系统、装置或设备来使用,或与它们一起结合使用。计算机可用或计算机可读介质可以是,例如但不限于,电、磁、光、电磁、红外或者半导体系统、装置、设备,或者是诸如因特网的传播介质。值得注意的是,因为可以例如通过对纸张或者其它介质进行光学扫描而电子地获取程序,然后对其进行编译、解释,或者通过其它合适的方式进行处理,所以计算机可用或可读介质甚至可以是其上可印刷有程序的纸张或者其它合适的介质。在示例实施方式中,这里描述的计算机程序产品和任何软件、硬件构成了实现本发明的各种功能的多种方式。
虽然已经参照特定优选实施方式或实施方式示出和描述了本发明,但是明显的是,本领域其它技术人员通过阅读并理解本说明书及附图将能够想到本发明的等同替换物和变型例。具体针对由上述单元(部件、组件、设备、组合等)执行的各种功能,除非另有说明,否则即使这些单元在结构上与这里示出的本发明示例性实施方式或实施方式中执行这些功能的所公开的结构不同,用于描述这些单元的术语(包括提到的“装置”词)也旨在与执行所述单元的特定功能的任意单元相对应(即,功能上等同)。此外,虽然可能以上只针对多个示出的实施方式中的一个或更多个实施方式而描述了本发明中的特定特征,但是对于给定或特定的应用可能期望和有利的是,这种特征可以与其它实施方式中的一个或更多个特征相结合。

Claims (12)

1.一种用于与其它电子设备交换加密数据的便携式电子设备,该便携式电子设备包括:
处理器(22)和存储器(16);以及
素数生成电路(12a),其可操作地连接到所述处理器和所述存储器,所述素数生成电路包括
基于存储在所述电子设备中的独特数据来生成至少两个素数
的逻辑,其中,所述至少两个素数始终是相同的至少两个素数。
2.根据权利要求1所述的便携式电子设备,其中,所述素数生成电路还包括:
在至少两个可能素数是偶数的情况下将所述至少两个可能素数转换成奇数的逻辑;以及
确定所述至少两个可能素数是否为素数的逻辑。
3.根据权利要求2所述的便携式电子设备,其中,确定所述至少两个可能素数是否为素数的所述逻辑包括:
测试所述至少两个可能素数的素性的逻辑;
在所述至少两个可能素数中的某个可能素数未通过素性测试时将相应的可能素数增加2的逻辑;以及
使用增加后的可能素数来重复所述确定步骤的逻辑。
4.根据权利要求2-3中任意一项所述的便携式电子设备,其中,确定所述至少两个可能素数是否为素数的所述逻辑包括:
测试所述至少两个可能素数的素性的逻辑;
重新生成所述至少两个可能素数中未通过素性测试的可能素数的预定数量的最低有效字节的逻辑;以及
对所述素性测试和所述最低有效字节的重新生成进行重复直到所述可能素数是素数为止的逻辑。
5.根据权利要求1-4中任意一项所述的便携式电子设备,该便携式电子设备还包括:对生成所述至少两个素数时所使用的参数进行缓存的逻辑;以及在后续RSA密钥生成期间重新使用所缓存的参数的逻辑。
6.根据权利要求1-5中任意一项所述的便携式电子设备,该便携式电子设备还包括:RSA生成电路(12),其可操作地基于所述至少两个素数在所述电子设备内生成RSA公钥和私钥。
7.根据权利要求1-6中任意一项所述的便携式电子设备,其中,所述便携式电子设备是移动电话(10)。
8.一种用于在便携式电子设备中生成RSA密钥的方法,该方法包括以下步骤:
基于存储在所述电子设备中的独特数据来生成至少两个素数,其中,所述至少两个素数始终是相同的至少两个素数;以及
使用所述至少两个素数来生成RSA私钥和公钥。
9.根据权利要求8所述的方法,其中,基于存储在所述电子设备中的独特数据来生成至少两个素数的步骤包括:
生成至少两个可能素数;
如果所述至少两个可能素数中相应的可能素数是偶数,则将所述至少两个可能素数中相应的可能素数转换成奇数;以及
确定所述至少两个可能素数是否为素数。
10.根据权利要求9所述的方法,其中,确定所述至少两个可能素数是否为素数的步骤包括:
测试所述至少两个可能素数的素性;
在所述至少两个可能素数中相应的可能素数未通过素性测试时,将相应的可能素数增加2;以及
使用相应的增加后的可能素数来重复所述确定步骤。
11.根据权利要求9-10中任意一项所述的方法,其中,确定所述至少两个奇数是否为素数的步骤包括:
测试所述至少两个奇数的素性;
当相应的奇数不是素数时,重新生成所述至少两个可能素数的预定数量的最后字节;以及
重复进行测试和重新生成的步骤,直到所述至少两个奇数是素数为止。
12.根据权利要求8-11中任意一项所述的方法,该方法还包括以下步骤:对生成所述至少两个素数时所使用的参数进行缓存;以及在后续RSA密钥生成期间重新使用所缓存的参数。
CN200780053302A 2007-06-15 2007-12-14 设备相关rsa密钥的生成 Pending CN101682507A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/763,564 2007-06-15
US11/763,564 US8472620B2 (en) 2007-06-15 2007-06-15 Generation of device dependent RSA key
PCT/IB2007/003931 WO2008152440A1 (en) 2007-06-15 2007-12-14 Generation of device dependant rsa key

Publications (1)

Publication Number Publication Date
CN101682507A true CN101682507A (zh) 2010-03-24

Family

ID=39338418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780053302A Pending CN101682507A (zh) 2007-06-15 2007-12-14 设备相关rsa密钥的生成

Country Status (7)

Country Link
US (1) US8472620B2 (zh)
EP (1) EP2168302A1 (zh)
JP (1) JP2010530081A (zh)
CN (1) CN101682507A (zh)
BR (1) BRPI0721813A2 (zh)
TW (1) TWI366374B (zh)
WO (1) WO2008152440A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969640A (zh) * 2010-11-15 2011-02-09 成都信息工程学院 一种用于移动终端设备的计算密钥生成方法
CN103780600A (zh) * 2013-11-01 2014-05-07 国家电网公司 一种基于rsa公钥密码的离线电力交易信息系统授权方法
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN107579815A (zh) * 2017-08-18 2018-01-12 福州瑞芯微电子股份有限公司 一种安全烧写密钥的方法及其装置
CN107750033A (zh) * 2010-10-21 2018-03-02 3D声学控股有限公司 声音漫射发生器
CN108702291A (zh) * 2015-12-18 2018-10-23 株式会社 Kt 基于生物信息的认证装置及其操作方法
CN109633546A (zh) * 2018-12-18 2019-04-16 中国电子科技集团公司第四十九研究所 一种加密信息簇式高保真海上目标探测装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970381B2 (en) * 2007-08-13 2011-06-28 General Motors Llc Method of authenticating a short message service (sms) message
US8077869B2 (en) * 2008-04-09 2011-12-13 Lockheed Martin Corporation Organic keyed encryption
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa
TWI483606B (zh) * 2011-01-27 2015-05-01 Chi Mei Comm Systems Inc 手機檔案保護系統及方法
CN107612685A (zh) 2011-12-29 2018-01-19 英特尔公司 使用在物理上不可克隆的函数的安全密钥存储
US9182943B2 (en) 2013-03-08 2015-11-10 Qualcomm Incorporated Methods and devices for prime number generation
US9800407B2 (en) * 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
CA3108866A1 (en) * 2018-08-07 2020-02-13 Haventec Pty Ltd A method and system for securing data
US11411732B2 (en) * 2020-04-17 2022-08-09 Juniper Networks, Inc. Prime number generation for encryption

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351982A (en) * 1980-12-15 1982-09-28 Racal-Milgo, Inc. RSA Public-key data encryption system having large random prime number generating microprocessor or the like
US4736423A (en) 1985-04-30 1988-04-05 International Business Machines Corporation Technique for reducing RSA Crypto variable storage
AU6762196A (en) * 1995-07-20 1997-02-18 Dallas Semiconductor Corporation Secure module with microprocessor and co-processor
US5717756A (en) * 1995-10-12 1998-02-10 International Business Machines Corporation System and method for providing masquerade protection in a computer network using hardware and timestamp-specific single use keys
DE19837405A1 (de) * 1998-08-18 2000-02-24 Siemens Ag Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar
FR2811442B1 (fr) 2000-07-10 2002-09-13 Gemplus Card Int Procede de generation d'une cle electronique a partir d'un nombre premier compris dans un intervalle determine et dispositif de mise en oeuvre du procede
TWI244610B (en) * 2001-04-17 2005-12-01 Matsushita Electric Ind Co Ltd Information security device, prime number generation device, and prime number generation method
NO316489B1 (no) * 2001-10-01 2004-01-26 Genkey As System, b¶rbar anordning og fremgangsmåte for digital autentisering, kryptering og signering ved generering av flyktige, men konsistente ogrepeterbare kryptonökler
FR2841411B1 (fr) 2002-06-19 2004-10-29 Gemplus Card Int Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede
KR20060021851A (ko) 2003-05-22 2006-03-08 마츠시타 덴끼 산교 가부시키가이샤 저작권 보호시스템 및 거듭제곱 잉여연산장치 및 방법
US7706528B2 (en) 2003-12-26 2010-04-27 Panasonic Corporation Prime calculating apparatus, key issuing system, and prime calculation method
CN1898897A (zh) 2003-12-26 2007-01-17 松下电器产业株式会社 素数计算装置及方法、以及密钥发行系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107750033A (zh) * 2010-10-21 2018-03-02 3D声学控股有限公司 声音漫射发生器
CN101969640A (zh) * 2010-11-15 2011-02-09 成都信息工程学院 一种用于移动终端设备的计算密钥生成方法
CN103780600A (zh) * 2013-11-01 2014-05-07 国家电网公司 一种基于rsa公钥密码的离线电力交易信息系统授权方法
CN103780600B (zh) * 2013-11-01 2017-01-11 国家电网公司 一种基于rsa公钥密码的离线电力交易信息系统授权方法
CN108702291A (zh) * 2015-12-18 2018-10-23 株式会社 Kt 基于生物信息的认证装置及其操作方法
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN107579815A (zh) * 2017-08-18 2018-01-12 福州瑞芯微电子股份有限公司 一种安全烧写密钥的方法及其装置
CN109633546A (zh) * 2018-12-18 2019-04-16 中国电子科技集团公司第四十九研究所 一种加密信息簇式高保真海上目标探测装置

Also Published As

Publication number Publication date
TW200849927A (en) 2008-12-16
EP2168302A1 (en) 2010-03-31
TWI366374B (en) 2012-06-11
US20080310634A1 (en) 2008-12-18
BRPI0721813A2 (pt) 2014-02-18
US8472620B2 (en) 2013-06-25
WO2008152440A1 (en) 2008-12-18
JP2010530081A (ja) 2010-09-02

Similar Documents

Publication Publication Date Title
CN101682507A (zh) 设备相关rsa密钥的生成
US8990564B2 (en) System and method for performing device authentication using key agreement
CN104852911B (zh) 安全验证方法、装置及系统
Lisonek et al. SMS encryption for mobile communication
CN108141364B (zh) 用于消息认证的方法和装置
CN108292994B (zh) 用于消息验证的方法及装置
CN104821937A (zh) 令牌获取方法、装置及系统
US20090282256A1 (en) Secure push messages
KR20160120598A (ko) 무선 통신 시스템에서 단말에 프로파일을 다운로드 하는 방법 및 장치
WO2002054663A2 (en) Local authentication in a communication system
JP6889161B2 (ja) 電子エンティティにおけるデータ受信方法および関連する電子エンティティ
Mayrhofer et al. UACAP: A unified auxiliary channel authentication protocol
US20240143202A1 (en) Customer-specific activation of functionality in a semiconductor device
US20070074040A1 (en) Online authorization using biometric and digital signature schemes
CN114172544A (zh) 一种复制智能卡的方法及电子设备
CN104639394A (zh) 客户端使用人数的统计方法、装置和系统
Zhu A new architecture for secure two-party mobile payment transactions
CN115859903A (zh) 在芯片中的验证处理方法及相关产品
US10530772B2 (en) Communication apparatus
JP2005530212A (ja) 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト
KR101591323B1 (ko) 데이터 전송이 가능한 단말 장치 및 상기 데이터 전송이 가능한 단말 장치의 부인 방지를 위한 데이터 전송 방법
CN110249334B (zh) 设备间高效安全通信的系统和方法
CN110601841B (zh) Sm2协同签名及解密方法、装置
CN116073991A (zh) 私钥生成方法、电子设备、可读存储介质及程序产品
CN106209736B (zh) 流媒体数据播放方法、终端及流媒体服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100324