加密通信系统中重发数据的解密的制作方法

文档序号:7574436阅读:114来源:国知局
专利名称:加密通信系统中重发数据的解密的制作方法
技术领域
本发明涉及通信系统,其中包括但不局限于加密通信系统。请参考KevinG.Doberstein等人在与本发明同一天申请的美国专利申请第08/649,098号,题为“加密通信系统中重发数据的解密”,其受让人也与本发明相同。
加密话音和数据系统是众所周知的。许多这些系统通过共享用户间的一部分或多部分信息,藉此只允许这些用户得知用以将这些消息正确解密的信息,从而提供两个或多个用户间的保密通信。一般而言,利用密钥发生器(KG)将话音和数据消息加密或解密。KG是一种非线性数学函数,可给定用来定义该数学函数的初始起动矢量和密钥参数,产生一种伪随机序列。KG输出一个用明语(未加密)电文XOR(如本技术领域熟知的,“或”函数)的密钥流以产生密文。该密文被发射至接收机。接收机用一种密钥流将接收到的密文进行XOR,从而从发射装置处得出明文,该密钥流由接收机根据接收到的信息来确定。
除了拥有相同的加密密钥将加密消息解密之外,加密与解密的加密装置必须完全一致,即,在同一时间以相同的方式从相同的(内部)加密状态执行相同的加密算法。在通信信道上发送同步(也称作sync)数据,以使解密装置将其加密状态与加密装置的加密状态对齐,此后执行对输入消息的正确解密。当在加密通信系统中使用加密同步数据时,通常也将其称作消息指示码(MI)。
可以以几种操作模式中的一种来操作加密装置。加密装置所使用的操作模式提供了将接收装置与发射装置同步的不同方法。一种操作模式称作密码反馈(CFB)。CFB提供自同步。换句话说,也可利用被解密的数据来将KG初始化。然而,被用来将KG初始化的数据将被错误地解密,直至接收KG与发射KG同步为止。如果两个装置具有不同的初始加密状态,但是流入它们的加密流相同,则两个装置都将自同步达到加密装置的加密状态,并在一定的比特数输入进该装置后(根据该加密装置中内部寄存器的长度),输出相同的解密信息。在消息之前发送出同步数据有助于接收装置同步,而不丢失数据。在发射机,由一MI将一个KG初始化。执行加密算法来产生密钥流。此后用明文将该密钥流进行XOR,以产生密文。然后将该密文反馈进KG的输入端,以产生下一个密钥流数据。对所有数据重复该过程。在接收机,使用该MI将该KG初始化。执行加密算法以产生密钥流。用该密钥流将接收到的密文XOR化,从而将该数据解密。并将该密文反馈进KG,从而为下一信息组产生密钥流。
在许多系统中需要拥有一种与加密数据和非加密数据均一致的数据吞吐量等级。然而在接收数据时,错误地接收数据并非是罕见的。众所周知在许多通信系统中,对于错误接收到的任何数据块要请求重发。这种数据重发在加密数据系统中会导致一种问题。由于加密过程的同步性质,当对一个选择的重试块N进行解密时,需要将N-1个块解密。这一属性极大地降低了加密数据系统中的吞吐量,导致了加密与非加密数据之间吞吐量的悬殊差异。普通的系统实施过程包括在将消息解密之前的记录,直至所有的块都被无误码地接收为止。这种方法增加了在将消息解密之前的处理时延。另一种方法是,当对一个选择的重试块N进行解密时,将先前的N-1个块解密。此方法需要多花费(N-1)倍的解密时间来将选择的重试解密。本质上,为了将一个块解密,此方法需要将可能一个完整的已被解密过的消息重新解密。
另一种解决重发解密问题的方案是,为每个数据块发射同步信息,或MI。这种解决方案增加了发射及接收消息所花费的时间和能量。此后重新发射的MI还有可能被错误地接收,而需要继续重新发射。
因此,需要一种方法,在接收单元接收到重发的一些块之后将数据解密,而不会为解密过程增加不必要的时延。此外,这种方法应当为加密和非加密数据均提供一致的数据吞吐量等级。


图1为根据本发明接收消息作为操作在CFB模式下的密钥发生器的输入的方框图。
图2的流程图显示了一种根据本发明当重发错误数据块已发生时,将密码反馈加密消息解密的方法。
图3的流程图显示了一种根据本发明处理密码反馈加密数据的方法。
图4的流程图显示了一种根据本发明接收并处理重发数据块的方法。
下文描述了一种将加密数据的重发解密的方法,其中该重发不包括完整消息的发射。根据对包含多个块的加密数据消息的初始接收,将接收块确定为有误码的或无误码的。为错误接收的消息部分存储一个初始起动块。执行一次重发错误接收块的请求。当无误码地接收到重发块时,从加密数据消息的初始接收的存储中拖出初始起动块。这样,无需为了将整个消息解密而一直等到整个消息都被接收为止,或者将数据重新解密。由此,实现了将消息的选定部分解密,而避免了不必要的时延或者冗余工作。
一种将一条消息的重发部分解密的方法包括,接收(201)一条含有加密同步和多个加密块的消息。在错误接收到多个加密块中的第一块之前,由加密同步和多个加密块中的至少一个产生(205)第一密钥流,并且利用第一密钥流,将在错误接收到多个加密块中的第一块之前无误码地接收到的多个加密块解密(207)。从该消息中确定(211)初始起动块。当错误地接收到多个加密块中的第一块时,发射(219)第二消息来请求重发第一块。在无误码地接收到第一块的重发之后,由初始起动块和第一块的重发产生(223)一个第二密钥流,并且利用第二密钥流将第一块的重发解密(225)。
图1所示为接收消息作为操作在CFB模式下的密钥发生器的输入的方框图。接收消息100通常包括一个消息指示码(MI)101。利用MI 101将加密装置(称为密钥发生器或KG)的内部状态同步。块1 103的接收含有O个误码。块2 105的接收含有1个误码。块3 107的接收无误码。块4 109的接收含有2个误码。块X 111的接收含有零个误码,其中X是一个整数,表示在消息100中有多少个加密块被接收。在请求重新发射错误码块的系统中,为错误码块发射一个重发请求,在此情况下是为块2 105和块4 109,其中假设无误码地接收了块4和块X之间的所有块。
将接收消息100作为密文输入到KG 113的CTI(密文输入)输入端。KG 113利用KG 113的加密算法将CTI处理为一个密钥流。XOR门115通过KG的密文输入将该密钥流进行XOR,从而产生明文,即未加密数据,这样解密过程完成。由于KG 113操作在CFB模式下,KG 113是自同步的。在接收KG 113的加密状态与发射消息110的KG同步之前,数据将被错误地接收。如果两个装置具有不同的初始加密状态,但是流入它们的加密流相同,则两个装置都将自同步达到加密装置的加密状态,并在一定的比特数输入进该装置后(根据该加密装置中内部寄存器的长度),输出相同的解密信息。在最佳实施例中,使用64比特。
在消息之前发射作为同步数据的加密数据有助于接收KG同步,而不丢失数据。此后将用于使KG同步的加密数据称作初始起动块。在最佳实施例中,对于数据的块N,初始起动块为块N-1的数据的最后64比特,即,在接收到块N之前刚刚接收到的数据块。当N=1时,初始起动块为在消息数据之前发射的同步数据MI 101。同一MI 101将发射机的(加密)KG初始化。
为了将一个消息的中间或末端解密而无需先把该消息的开始解密,即,为了首先将接收消息100的块107解密而无需先把块103和块105解密,用先前接收到的块105的加密数据的最后一些比特将KG 113初始化,以避免数据丢失。初始化KG 113包括将初始起动块输入KG 113。在初始化KG 113之后,当加密消息的数据的下一比特被输入KG 113时,即,块107的第一比特被输入KG 113时,将解密数据的第一比特作为明文输出。当加密数据的剩余比特被输入KG 113时,重复此过程,直至接收消息的所有数据都被解密为止。
在密码反馈系统中,如果错误地接收到一个块,就不可能实现随后块的正确解密,这是因为至少一部分先前密文块是当前块的初始起动块,该块被用来产生正确的密钥流从而将该块解密。为了从一些起始点而不是从开始来起动消息解密,在最佳实施例中通过作为初始起动块来存储在错误接收的块之前被正确接收到的最后块的至少一部分,从而保留KG在先前块末端的状态。当错误地接收到该消息的第一块时,将MI标记并存储作为初始起动块。
图2的流程图显示了一种当已经发生了错误数据块的重发时将一个密码反馈加密消息解密的方法。在201步中,接收到一条消息100。如果在203步中,无误码地接收到一个块,则程序继续到205步,在这里从初始起动块处产生密钥流。在最佳实施例中,对于数据块N,初始起动块是块N-1(即先前数据块)的数据的最后64比特。当N=1时,即,对于该消息的第一块103,初始起动块是MI 101。如上述方法所确定的,每个数据块都含有一个不同的初始起动块。初始起动流包括初始起动块和跟随其后的密文或加密数据。例如,如果在块103至111中发现加密数据,初始起动块为MI 101,而块103至111中的加密数据用于初始起动流。按如下方式利用初始起动流来产生密钥流。将初始起动流输入KG 113的CTI输入端。KG 113的KSO输出为将密文解密所必须的密钥流,该密文被作为初始起动流的一部分而输入给KG。
在207步中,利用密钥流将无误码接收到的块解密。如果在209步中的消息100中有更多个块,程序继续到203步。如果在203步中错误地接收到一个块,在211步中确定一个初始起动块。在211块中将最后无误码接收到的块标记作错误接收到的特殊块的初始起动块。如果错误地接收到加密数据的第一块103,即错误接收到的第一块是当前接收到的消息的第一块,则在211步中MI 101为初始起动块。在213步中,如果消息100中还剩余有更多个块要解密,程序继续到215步。如果在213步中的消息100中没有其它的剩余块,程序继续到219步。在215步中,如果该块被正确接收,在最佳实施例的217步中将该块标记作一个后续块,用以随后将其解密,并用作下一个接收块的初始起动块,并且程序继续到209步。如果在215步中该块被错误接收,程序继续到213步。
在219步中,通信单元请求对任何错误接收到的块重发,即,需要的块。当在221步中无误码地接收到被请求重发的块时,即,无误码地接收到需要的块时,正如在221步中为该块所确定的,从初始起动块处产生密钥流,并且为该重发块产生加密数据。在225块中,利用密钥流将需要块的重发解密。在密码反馈系统中,如果错误地接收到一个块,则随后块将不能被解密,因为要利用先前密文块来产生当前块的产生起动流(密钥流)。由此,在最佳实施例中,在227步中,需要块被解密后立刻将后续块解密,因为该需要块提供了正确将后续块解密所必须的初始起动块。如果在229步中存在更多个从消息100处接收到的块,程序继续到221步,否则程序终止。当任一块的重发被无误码地接收时,或者当两个或多个块的重发被无误码地接收时,进一步,或者当所有需要块的重发都被无误码地接收时,都可能发生需要块的重发的解密。
图3的流程图根据最佳实施例显示了一种处理密码反馈加密数据的方法。该流程图描述了当第一次接收到一个加密数据消息时所作的动作。在301步中,检索MI 101。在303步中,利用MI 101将密钥发生器初始化。利用MI使发射装置与接收装置同步。该同步的实现方式如下利用形式为MI 101的相同信息将发射装置与接收装置的输入寄存器初始化,即,将输入给加密(发射)KG的相同信息(MI 101)输入给接收KG 113。在305步中,将块计数器N初始化,即,N=1。在307步中,从消息100处检索块N。如果在309步中,没有错误地接收块N,即,块N被正确接收,则程序继续到311步。在311步中,将块N存储在缓存器N+1中,从而当块N+1被错误接收时将其用作初始起动块。在313步中,将块N解密并存储其结果。在315步中,增加块计数器,N=N+1。如果在317步中块N是消息的最后一块,则程序继续到337步,否则程序继续到307步。
如果在309步中错误地接收到块N,则程序继续到319步。在319步中,为块N设置一个重试标记。在321步中,丢弃块N。在323步中,增加块计数器,即,N=N+1。在325步中,检索块N。如果在327步中,正确接收到块N,则程序继续到329步,在此处将块N存储在缓存器N中用于后续解密,并且如果无误码地接收到下一块(N+1),还可能利用块N将接收KG重新初始化至发射KG,程序继续到31 5步。如果在327步中,错误地接收块N,在331步中设置块N的重试标记。在333步中增加块计数器,即,N=N+1。如果在335步中块N不是消息100的最后一块,程序继续到325步,否则程序继续到337步。在337步中,通信单元请求对任一错误接收块(即,需要块)重发,程序终止。这时,每个需要块或者一组连续的需要块拥有一个存储的初始起动块,从而当无误码地接收到该需要块或该组需要块的重发时,用以产生一个密钥流。
再次描述对图3中的流程图,接收并检测一个数据块来查看它是否被正确接收。如果该块被正确接收,则将该接收块存储在接收缓存器中的块N+1处,这里N为当前的块号。该数据还被解密并将其结果以解密电文存储在缓存器块N中。增加数据块号,并检测它来查看是否整个消息已被正确接收。如果没有,则处理下一数据块。如果没有正确接收数据块,则该接收数据块被丢弃,并为当前数据块设置重试标记。这样,在当前块的缓存器中存储先前块(正确接收)的接收数据。当重新发射错误接收到的块的数据时,该存储消息被用作KG的初始化。检索下一(后续)数据块。如果正确接收该数据,将密文存储在块N的缓存器中。由于先前块有误并且由此KG将与发射机不同步,因此并不立即将该块解密。在返回到主环(无误码)之前,将使用正确接收到的重发块对KG重新初始化,用以后续块的解密。这样,只要错误接收到数据块,该数据被丢弃,在该消息终止之前或数据块之前的重试比特组被无误码地接收。
图4的流程图根据最佳实施例描述在接收到一个重发数据块时通信单元所采用的方法。在401步中,读取块N,这里块N是一个根据通信单元的请求被重发给通信单元的块。如果在403步中错误地接收到该块,程序终止。如果在403步中正确接收到该块,程序继续到405步,在这里将块N存储在一个暂时缓存器中。在407步中,如果在消息的初期接收中正确接收到块N-1,程序继续到409步,在这里利用在311步中被存储作为初始起动块的块N-1的密文将KG初始化。然后将块N解密,并在411步中存储其结果。
如果在407步中,在消息的初期接收中错误地接收到块N-1,程序继续到413步,在这里将块N存储在缓存器N中。在最佳实施例中,由于此时将块N解密所需的初始起动块,即源自块N-1的信息,没有被正确接收,在413步中为块N存储密文,因为现在不能将其正确解密。在最佳实施例中,该块将在先前块N-1被正确解密后被解密。在415步中重新设置块N的重试标记。在417步中,利用块N作为初始起动块来将KG 113初始化,即,将该初始起动块输入给KG 113,且程序继续到419步。如果在419步中在消息的初期接收中正确接收到块N+1,由于现在从411步或417步中KG 113与解密块N+1同步,所以现在将块N+1解密,且在421步中存储其结果。如果在419步中,错误地接收到块N+1,在423步中将块N存储在缓存器N+1中,从而当重发块N+1时将其用作初始起动块(在最佳实施例中如果连续地错误接收到两个或多个块,第一块的重发被正确接收,而第二块被错误接收,则有必要进行该步骤),且程序终止。
对每个重发的块都重复图4的程序。如果在每个块都已被重发后,仍存在没有被正确接收的块,则请求重发仍然有误的块。再一次,对已被重发的每个块重复图4中的程序。请求重发有误的块,直至所有的块都被正确接收或者直至该通信单元已用完了该通信单元所允许的最大的重试数为止。
图3和图4中流程图的方法可被描述如下。该方法包括的步骤有,接收一个包含加密同步和多个加密块的消息。多个加密块包括一个被无误码地接收的第N块,此后立刻跟随有被错误接收的M个连续块,随后是被正确接收的L个连续块,其中N和L为整数≥0,M为正整数。当N≥0时,从该消息中确定一个第一初始起动块,从该初始起动块和第N块中产生一个第一密钥流,并利用第一密钥流将第N块解密。在错误地接收到M个连续块之后,从该消息中确定一个第二初始起动块,并发射一个第二消息,以请求重发错误接收的M个连续块。在正确接收到M个连续块的重发之后,从第二初始起动块和M个连续块的重发中产生一个第二密钥流,并利用第二密钥流将M个连续块的重发解密。
此外,在最佳实施例中,将多个加密块的(N+M+1)块标记作为后续块。在将M个连续块的重发解密之后,立刻将该后续块解密。而且,当N=0时,将加密同步标记作为初始起动块,否则该初始起动块包含第N块。
在现有密码系统中,产生一个适合于加密操作模式的密钥流,然后通过将该密钥流与加密消息混合(对于数字信息通常为XOR)产生明(未加密)文立刻将加密消息解密,从而实现解密过程。混合步骤可以在一个运行于例如1MHz的微处理器中简便而又迅速地实现。然而,密钥流的产生受到KG的操作频率的限制,通常为6至50kHz。这样,产生密钥流和将加密消息解密的实际时间在本质上受到最高的KG运行频率的限制。上述方法及其变通方法通过存储并/或产生合适的信息,使需要重发数据时接收并解密整个消息的时间最小化,从而较现有技术节省了时间。
权利要求
1.一种包括下列步骤的方法接收一个包含加密同步和多个加密块的消息;在多个加密块的第一块被错误接收之前,从加密同步和多个加密块中的至少一个中产生第一密钥流,并利用第一密钥流将在错误接收到多个加密块的第一块之前正确接收到的多个加密块解密;从该消息中确定一个初始起动块;当错误接收到多个加密块的第一块时,发射一个第二消息,以请求重发第一块;在正确接收到第一块的重发之后,从初始起动块和第一块的重发中产生一个第二密钥流,并利用第二密钥流将第一块的重发解密。
2.一种包括下列步骤的方法接收一个包含加密同步和多个加密块的消息,其中多个加密块包括被无误码地接收的N个连续块,此后立刻跟随有被错误接收的M个连续块,随后是被正确接收的L个连续块,其中N,M和L为正整数;从加密同步和被正确接收的N个连续块中产生一个第一密钥流,并且利用第一密钥流将正确接收到的N个连续块解密;从该消息中确定一个初始起动块;在接收到错误地接收的M个连续块之后,发射一个第二消息,以请求重发错误接收到的M个连续块;在正确接收到M个连续块的重发之后,从初始起动块和M个连续块的重发中产生一个第二密钥流,并利用第二密钥流将M个连续块的重发解密。
3.一种包括下列步骤的方法接收一个包含加密同步和多个加密块的消息;在错误接收到多个加密块的第一块之前,从加密同步和正确接收的多个加密块的至少一个中产生第一密钥流,并利用第一密钥流将正确接收到的多个加密块中的至少一个解密;从该消息中确定一个初始起动块;当错误地接收到多个加密块中的第一块时,将在接收到第一块之后立即将错误地连续接收到的所有块标记作为需要块;发射一个第二消息,以请求重发第一块和需要块;在正确地接收到第一块和需要块的重发之后,从初始起动块和第一块与需要块的重发中产生一个第二密钥流,并利用第二密钥流将第一块和需要块的重发解密。
4.权利要求3的方法,进一步包括如下步骤将多个加密块的第三块标记作为后续块,该第三块是在接收到有误块之后立刻接收到的;在将第一块和需要块的重发解密之后立刻将后续块解密。
5.权利要求3的方法,其中确定初始起动块的步骤中包括,当错误接收到的多个加密块中的第一块是当前接收到的多个加密块中的第一块时,利用加密同步作为初始起动块。
6.权利要求3的方法,其中确定初始起动块的步骤包括,将多个加密块的第二块标记作初始起动块,该第二块是在接收到第一块之前立刻接收到的。
7.一种包括如下步骤的方法接收一个包含加密同步和多个加密块的消息,其中多个加密块包括被正确接收的第N块,此后立刻跟随有被错误接收的M个连续块,随后是被正确接收的L个连续块,其中N和L为整数≥0,M为正整数;当N≥0时,从该消息中确定一个第一初始起动块,从该初始起动块和第N块中产生一个第一密钥流,并利用第一密钥流将第N块解密;在错误地接收到M个连续块之后,从该消息中确定一个第二初始起动块,并发射一个第二消息,以请求重发错误接收的M个连续块;在正确接收到M个连续块的重发之后,从第二初始起动块和M个连续块的重发中产生一个第二密钥流,并利用第二密钥流将M个连续块的重发解密。
8.权利要求7的方法,进一步包括如下步骤将多个加密块的(N+M+1)块标记作为后续块;在将M个连续块的重发解密之后立刻将该后续块解密。
9.权利要求7的方法,进一步包括下述步骤,即,当N=0时,将加密同步标记作为初始起动块。
10.权利要求7的方法,其中确定初始起动块的步骤包括,将第N块标记作为初始起动块。
全文摘要
一种将一条消息的重发部分解密的方法,其中包括,接收(201)一个包括加密同步和多个加密块的消息。在错误接收到多个加密块的第一块之前,从加密同步和多个加密块的至少一个中产生(205)一个第一密钥流,并利用第一密钥流,将在错误接收到多个加密块的第一块之前正确接收到的多个加密块解密(207)。从该消息中确定(211)一个初始起动块。当错误地接收到多个加密块中的第一块时,发射(219)一个第二消息,以请求重发第一块。在正确接收到第一块的重发之后,从初始起动块和第一块的重发中产生(223)一个第二密钥流,并利用第二密钥流将第一块的重发解密(225)。
文档编号H04L9/00GK1194743SQ97190549
公开日1998年9月30日 申请日期1997年4月23日 优先权日1997年4月23日
发明者米切尔·W·布莱特, 斯考特·J·帕派斯, 卡文·G·杜波斯坦 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1