产生可重现会话密钥的系统和方法转让专利

申请号 : CN200480031130.6

文献号 : CN1871809B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 迈克尔·K·布朗迈克尔·S·布朗赫伯特·A·利特尔

申请人 : 捷讯研究有限公司

摘要 :

一种用于在无线收发消息系统中产生可重现会话密钥的系统和 方法。根据消息本身的散列(可选地与附加信息相连接)产生会话密钥。因为本地服务器存储消息,响应于每一个MORE请求,可以容易地产生相同的会话密钥。可以利用存储的原始消息、公钥和根据消息散列产生会话密钥的算法,来实现本发明的方法。

权利要求 :

1.一种产生用于加密数据项中的数据以便在会话期间传送至远程通信设备的可重现会话密钥的方法,所述数据项包括至少一批数据,所述方法包括步骤:在可由数据处理设备寻址的至少一个存储器中存储数据项;

通过向数据项的全部或一部分应用确定性算法来产生数据项的散列;

将所述散列用作唯一的会话密钥来对与数据项相关的数据进行加密;

将加密后的数据项发送到远程通信设备;以及

当数据项超过所选批量大小时,通过向数据项的全部或一部分应用确定性算法从而重现同一个会话密钥,以及使用重现的会话密钥加密多批数据中的每一批,利用同一个会话密钥来加密所述多批数据,以及在会话期间传送加密后的多批数据。

2.根据权利要求1所述的方法,其中,确定性算法包括散列算法。

3.根据权利要求1所述的方法,其中,确定性算法包括密钥导出函数。

4.根据权利要求1所述的方法,其中,所述产生散列包括:根据与数据项和附加数据相关的一连串数据来产生所述散列。

5.根据权利要求4所述的方法,其中,附加数据是来自数据项的外部的源的非零数据。

6.根据权利要求5所述的方法,其中,所述附加数据是从电子邮件地址、随机产生的字节和递增计数器值之一中选择的。

7.根据权利要求1所述的方法,包括附加步骤:向会话密钥应用公钥以产生加密会话密钥。

8.一种产生用于加密数据项中的数据以便在会话期间传送至远程通信设备的可重现会话密钥的系统,所述数据项包括至少一批数据,所述系统包括:装置,用于在可由数据处理设备寻址的至少一个存储器中存储数据项;

装置,用于通过向数据项的全部或一部分应用确定性算法来产生数据项的散列;

装置,用于将所述散列用作唯一的会话密钥来对与数据项相关的数据进行加密;

装置,用于将加密后的数据项发送到远程通信设备;以及装置,用于当数据项超过所选批量大小时,通过向数据项的全部或一部分应用确定性算法从而重现同一个会话密钥,以及使用重现的会话密钥加密多批数据中的每一批,利用同一个会话密钥来加密所述多批数据,以及在会话期间传送加密后的多批数据。

9.根据权利要求8所述的系统,其中,确定性算法包括散列算法。

10.根据权利要求8所述的系统,其中,确定性算法包括密钥导出函数。

11.根据权利要求8所述的系统,其中,处理器根据与数据项和附加数据相关的一连串数据来产生所述散列。

12.根据权利要求11所述的系统,其中,附加数据是来自数据项的外部的源的非零数据。

13.根据权利要求12所述的系统,其中,所述附加数据是从电子邮件地址、随机产生的字节和递增计数器值之一中选择的。

14.根据权利要求8所述的系统,其中,处理器还向会话密钥应用公钥以产生加密会话密钥。

说明书 :

产生可重现会话密钥的系统和方法

技术领域

[0001] 本发明涉及无线通信设备。具体地,本发明涉及一种用于针对移动通信设备和网络服务器或网关之间的安全通信而产生会话密钥的系统和方法。

背景技术

[0002] 在商业和个人应用中广泛使用经由一个或多个电子邮件、电话、SMS消息、基于因特网和内联网的应用来通信的无线移动通信设备。这些设备包括自带设备,以及可以集成到便携式计算机中的无线调制解调器。在典型的具有多个用户的商业环境中,多个移动通信设备通过本地服务器进行通信,本地服务器管理通信流量并且将通信信号中继到电信载波。
[0003] 在这种无线通信系统中安全是主要的关注点。因此,本地服务器在发送到移动通信设备之前对所有消息进行加密,并且在移动通信设备中由适当软件或硬件来解密发送到移动通信设备的加密消息。
[0004] 典型地加密和解密处理使用“公钥”架构来工作,其中可靠的第三方证明用户所产生的公开/私有密钥对的真实性。公钥被用于加密消息和验证数字签名,而私钥被用于解密消息和数字地在文献上签名。公知为“非对称加密”的公钥和密钥的这种组合被用于有效地加密消息和产生数字签名,如本领域的技术人员所公知的。因此确保了通信系统的无线分量,因此如果由恶意攻击者截取了无线信号,不能够解密该信号。
[0005] 为了使移动通信系统中的安全最大化,每一次用户的移动通信设备请求从本地服务器向移动通信设备发送消息时产生会话密钥。在每一个消息发送会话的开始处,移动通信设备可以加密“仅签名了的”消息,以产生本地服务器和移动通信设备之间的链接,并且作为该处理的一部分,利用用户的公钥来产生并且加密会话密钥。
[0006] 移动通信设备中的存储器非常珍贵,并且有时消息太大,而难以方便地将整个消息下载到移动通信设备。因此,本地服务器典型地一次将数据的批或块(例如2KB)发送到移动通信设备。对于一些消息,第一块包括整个消息,并且因此当完成该消息传送时会话结束。然而对于较大的消息,阻止来自移动通信设备的剩下的消息数据,直到请求其他消息的MORE请求被发送到本地服务器。例如,当用户将消息滚动到移动通信设备靠近下载数据块末端处时,设备自动地将MORE请求发送到本地服务器。当接收到MORE请求时,将消息中下一个数据块发送到移动通信设备。
[0007] 当从移动通信设备接收到MORE请求时,为了避免解密消息中的错误,本地服务器需要利用与前一个(一些)数据块所使用的会话密钥相同的会话密钥来加密下一个数据块。然而,不希望在本地服务器中存储会话密钥,因为这不必要地使用了附加存储器,并且还因为限制必须存储在本地服务器上的秘密信息的量是有利的。
[0008] 因此,提供一种产生安全、可重现会话密钥的方法和使用该方法的系统是有利的。

发明内容

[0009] 本发明提供一种用于产生可重现会话密钥的系统和方法。
[0010] 根据本发明,至少部分地根据消息本身的散列,产生会话密钥。因为本地服务器存储消息至少到会话结束为止,则响应于每一个MORE请求,可以容易地产生相同的会话密钥。
[0011] 在优选实施例中,将附加数据添加到散列中,以确保散列的唯一性。附加的数据可以是例如用户的电子邮件地址、存储在本地服务器中的随机字节或者递增计数器(因此,例如如果将相同的消息发送到用户多次,每一次会话密钥是不同的)。如果不使用附加数据,仅根据消息本身的散列,来产生会话密钥。
[0012] 因此,本发明提供一种用于产生可重现会话密钥的系统和方法。此外,可以仅利用存储的原始消息、公钥和用于根据消息散列来产生会话密钥的算法,来实现本发明的方法。
[0013] 因此,本发明提供一种产生用于加密数据项中数据以便在会话期间发送到远程通信设备的可重现会话密钥的方法,其中,如果数据项超出选择的批量大小,在会话期间发送多批数据,并且利用相同的会话密钥进行加密,所述方法包括步骤:a.在可由数据处理设备寻址的至少一个存储器中存储数据项,以及b.向数据项的所有或部分应用确定性算法,以产生作为与数据项相关的唯一会话密钥使用的数据项的散列。
[0014] 本发明还提供一种产生用于加密数据项中数据以便在会话期间发送到远程通信设备的可重现会话密钥的系统,其中,如果数据项超出选择的批量大小,在会话期间发送多批数据,并且利用相同的会话密钥进行加密,所述系统包括:数据处理设备,与至少一个用于存储数据项的存储器进行通信;以及处理器,用于向数据项的所有或部分应用确定性算法,以产生作为与数据项相关的唯一会话密钥使用的数据项的散列。
[0015] 本发明还提供一种计算机使用的计算机程序产品,该计算机程序产品包括计算机可用介质,计算机可用介质具有在所述介质中实现的、用于产生用于加密消息数据的可重现会话密钥计算机可读程序代码装置,所述计算机程序产品具有:a.计算机可读程序代码装置,用于从至少一个存储器中读取数据项,以及b.计算机可读程序代码装置,用于向数据项的所有或部分应用确定的算法,以产生作为与数据项相关的唯一会话密钥使用的数据项的散列。

附图说明

[0016] 附图中作为示例仅示出了本发明的优选实施例,图中:
[0017] 图1是传统的手持移动通信设备的系统概观的方框图。
[0018] 图2是示出了使用本发明的方法来加密和解密消息的方法的流程图。

具体实施方式

[0019] 下面仅作为示例,在例如图1所示的手持移动通信设备10的远程通信设备的上下文中,详细描述本发明的系统和方法。这种手持移动通信设备10对于本领域的技术人员是熟知的。然而,可以认识到,本发明的原理可应用于其他无线通信设备并且不希望这样限制该系统。还可以认识到,本发明不受所使用的特定通信方法(例如电子邮件、电话、SMS、MMS等)限制。
[0020] 通常,手持移动通信设备10包括外壳、键盘14和输出设备16。所示的输出设备是显示器16,优选地显示器16是全图形LCD。可选地可以使用其他类型的输出设备。图1中示意地示出的处理器18被容纳在外壳内,并且连接在键盘14和显示器16之间。响应于用户激励键盘14上的键,处理器18控制显示器16的操作以及移动设备10的整体操作。
[0021] 可以垂直地延长外壳,或者外壳可以具有其他尺寸和形状(包括翻盖式外壳结构)。键盘14可以包括模式选择键或者用于在文本输入和电话输入之间切换的其他硬件或软件。
[0022] 除了处理器18外,图1中示意地示出了移动设备10的其他部分。这些部分包括:通信子系统100;近距离通信子系统;键盘14以及显示器16,连同其他输入/输出设备106、
108、110和112;以及存储设备116、118和各种其他设备子系统120。移动设备10优选地是具有语音和数据通信能力的双向RF通信设备。此外,移动设备10优选地具有经由因特网与其他计算机进行通信的能力。
[0023] 优选地,由处理器18执行的操作系统软件被存储在例如闪存116的永久存储器中,然而也可以被存储在例如只读存储器(ROM)或类似存储单元的其他类型的存储设备中。此外,可以暂时地将系统软件、专用设备应用或其部分载入到例如随机存取存储器(RAM)118的易失性存储器中。还可以将移动设备接收到的通信信号存储在RAM118中。
[0024] 除了操作系统功能外,处理器18能够在设备10上执行软件应用程序130A-130N。可以在制造期间将控制基本设备操作的预定应用程序组(例如数据和语音通信130A和
130B)安装在设备10上。此外,可以在制造期间安装个人信息管理(PIM)应用程序。优选地PIM能够组织和管理数据项,例如电子邮件、日历事件、语音邮件、约会和任务项。还优选地PIM应用程序能够经由无线网络140发送和接收数据项。优选地,经由无线网络140将PIM数据项与主计算机系统存储的或相关的设备用户的相应数据项整合、同步并更新。
[0025] 通过通信子系统100(并且可能通过近距离通信子系统)来执行包括数据和语音通信的通信功能。通信子系统100包括接收机150、发射机152以及一个或多个天线154和156。此外,通信子系统100还包括例如数字信号处理器(DSP)158的处理模块和本地振荡器(LO)160。通信子系统100的特定设计和实施方式是基于移动设备10意欲工作的通信TM TM
网络。例如,移动设备10可以包括设计用于在Mobitex 、DataTAC 或通用分组无线业务(GPRS)移动数据通信网络中工作并且还设计用于在例如AMPS、TDMA、CDMA、PCS、GSM等的各种语音通信网络中工作的通信子系统100。还可以利用移动设备10来使用其他类型的数据和语音网络(独立和集成的)。
[0026] 网络访问需求基于通信系统的类型而变化。例如,在Mobitex和DataTAC网络中,移动设备使用与每一个设备相关的唯一个人识别号或PIN在网络上注册。然而,在GPRS网络中,网络访问与设备的订户或用户相关。因此GPRS设备需要通常称为S工M卡的订户身份模块,以便在GPRS网络上工作。
[0027] 当完成了需要的网络注册或激活过程时,移动设备10可以在通信网络140上发送和接收通信信号。由天线154从通信网络140接收到的信号被路由到接收机150,接收机150提供信号放大、频率下变换、滤波、信道选择等,并且还可以提供模拟到数字变换。接收信号的模拟到数字变换允许DSP 158能够执行更复杂的通信功能,例如解调和解码。按照类似的方式,由DSP 158处理(例如解调和解码)要发送到网络140的信号,然后提供给发射机152,进行数字到模拟变换、频率上变换、滤波、放大并且经由天线156发送到通信网络
140(或多个网络)。
[0028] 除了处理通信信号外,DSP 158提供接收机150和发射机152的控制。例如,可以通过在DSP 158中实施的自动增益控制算法,自适应地控制施加到接收机150和发射机152中通信信号的增益。
[0029] 在数据通信模式中,由通信子系统100处理例如文本消息或下载的网页等接收信号,并且输入到处理器18。然后由处理器18进一步处理接收信号,以输出到显示器16,或者可选地输出到一些其他辅助I/O设备106。设备用户还可以使用键盘14和/或例如触摸板、摇臂开关、指轮的一些其他辅助I/O设备106或一些其他类型的输入设备,来编撰例如电子邮件消息的数据项。然后经由通信子系统100在通信网络140上发送编撰的数据项。在“会话”期间以加密的形式在网络140上发送每一个数据项,“会话”包括发送一个或多批数据直到完全将数据项发送到设备10为止。在优选实施例中,使用公共的“会话密钥”来加密在每一个这种会话期间发送的数据,如下面详细描述的。
[0030] 在语音通信模式中,设备的整体操作实质上类似于数据通信模式,除了将接收信号输出到扬声器110,并且由麦克风112产生要发送的数据。还可以在设备10上实现例如语音消息记录子系统的可选语音或音频I/O子系统。此外,还可以在语音通信模式中使用显示器16,例如用于显示呼叫方的身份、语音呼叫的持续时间或其他语音呼叫相关数据。
[0031] 近距离通信子系统能够在移动设备10和不一定是类似设备的其他邻近的系统或设备之间进行通信。例如,近距离通信子系统可以包括红外设备以及相关的电路和组件、或TM者蓝牙 通信模块,以提供与类似使能系统和设备的通信。
[0032] 本发明应用于在通信网络140上发送数据项(例如电子邮件消息)。为了网络140的有效操作,以批数据(例如以2kb批(尽管可以选择任意适当的批大小))的形式发送数据项,直到已经将整个消息发送到设备10为止(公知为“会话”)。为了安全的目的,在会话期间以加密形式发送数据项。
[0033] 根据本发明,采用确定性算法来产生消息的散列。一般而言,散列是利用获得批数据并且将其压缩到更小的唯一标识符的压缩功能来处理批数据的结果。
[0034] 在该方法的优选实施例中,例如散列算法(例如,在2002年8月1日出版的美国联邦信息处理标准(FIPS)公布180-2中定义的SHA-256,其一并在此作为参考)或者密钥导出函数(使用散列算法和其他数据,重复地弄乱数据以产生特定长度的密钥的通用结构)被应用于要加密的消息m。仅作为示例,使用SHA-256作为散列算法H()来描述本发明的实施方式,当使用高级加密标准(AES)来加密消息m时,SHA-256提供256比特输出并且相应地工作良好。此处由H(m)表示消息m的散列。
[0035] 至少部分地根据消息的散列来产生会话密钥。可以仅根据消息本身的散列来产生会话密钥,然而,在优选实施例中,附加数据被添加到散列中以确保散列是唯一的,从而例如如果发送相同的消息两次,两个不同会话将具有不同的会话密钥。因此本发明的优选实施例允许选择使用附加信息r,将所述附加信息r添加到消息m以确保散列是唯一的。附加消息r可以是例如用户的电子邮件地址、存储在本地服务器上的随机产生的字节或者递增的计数器。在可选实施例中,可以将附加数据r的散列与消息m的散列相结合。可以认识到,存在使用附加数据r的不同方式。因为附加数据r的使用是可选的,r也可以是空的。
[0036] 想要解密消息的恶意攻击者必须确定会话密钥。为此,攻击者必须读取原始消息,因为利用会话密钥加密了原始消息,在没有会话密钥时攻击者不能够完成读取,或者攻击者必须解密会话密钥,因为利用用户的公钥加密了会话密钥,并且恶意攻击者不具有对相应私钥的访问权,攻击者不能够完成解密。
[0037] 由m和r的连接(‖)的散列产生会话密钥k,表达为k=H(m‖r)。在r是空的情况下,即,仅从消息m的内容中产生会话密钥k,可以表达为(k=Hm)。
[0038] 然后,使用用户的公钥p、按照运算Ep(k)加密会话密钥k以产生加密的会话密钥ep=Ep(k),公钥p可以是例如RSA密钥。
[0039] 使用会话密钥k(例如使用AES)加密消息m(或者来自消息m的批数据,如果消息m大于选择的批大小),因此加密消息em变为em=Ek(m)。加密会话密钥ek和加密消息em被发送到用户的移动通信设备10,然后移动设备10可以按照传统的方式使用与公钥p相对应的私钥来解密会话密钥,然后使用会话密钥解密消息数据。可以在会话的持续时间内将会话密钥存储在移动设备10中。
[0040] 如图2所示,如果消息整个包含在第一批数据中,则完成了会话。如果第一批消息数据不包含整个消息,移动通信设备10向本地服务器发送MORE请求,例如当用户向第一批消息数据的末端滚动消息时。然后针对下一批消息数据重复上述处理。本地服务器根据消息数据的散列(以及如果使用的话,还有可选的外部数据r)重新产生会话密钥,使用公钥重新加密会话密钥,以重新产生加密会话密钥,使用相同的会话密钥加密下一批消息数据,并且按照相同的方式将下一批加密消息数据发送到移动设备10。
[0041] 可以认识到,可以应用本发明的原理,而与采用的通信方法无关,并且加密平台和公钥系统是选择的问题。
[0042] 作为示例详细描述了本发明的各种实施例,对于本领域的技术人员显而易见的是,在不脱离本发明的情况下可以做出改变和修改。本发明包括处于所附权利要求范围内的所有这种改变和修改。