专利名称:用于网络通信的动态加密和解密的方法和设备的制作方法
技术领域:
本发明涉及计算机网络技术领域。更具体地,涉及用于网络通信的动态加密和解密的方法和设备。
背景技术:
随着网络技术的发展,网络通信日益广泛地普及和使用。在很多情况下,当在分布于不同位置的网络实体或者内部网络(例如,内部局域网)之间建立通信信道时,需要对信道上传输的数据进行加密。例如,在基于传输控制协议/网际协议(TCP/IP)的公共网络 (例如,因特网)上通信时,通常需要在IP层对网络通信进行加密,以确保通信数据的安全性和完整性。对于加密信道而言,其应当至少满足以下几方面的要求(1)性能影响。在应用加密之后,数据传送性能不应显著降低。(2)密钥敏捷性。用来加密数据的密钥应当能够在运行时动态改变,并且应将每个密钥的有效周期配置得尽可能短。换言之,密钥应当可以尽可能快地切换,以提高信道的加密强度。(3)加密方法的适应性。应当支持各种加密算法。优选地,应当具有对硬件加密算法的适应性,这是因为对于相同的应用和算法而言,硬件实现通常远远快于软件实现。(4)低存储器需求。加密通信信道的实现应当尽可能少地消耗存储资源,以适用于存储空间有限的应用环境(专用加密路由器等)。IPSec是一种用于IP通信安全的已知解决方案。其规定了用于保护在公共网络上传输的私有信息的方法。IPSec所支持的服务包括置信性(加密)、真实性(发送方证明)、 完整性(数据篡改检测)以及回复保护(防止未授权的数据重发)。IPSec还规定了被称作因特网密钥互换(Internet Key Exchange, IKE)的密钥管理机制,用于建立用来加密和解密信息的密钥。然而,IPSec解决方案并不能很好地满足上述要求。
发明内容
发明人的研究表明,IPSec至少存在以下若干缺陷。首先,用于IPSec中ESP/AH协议的附加报头数据以及对安全IP数据报的相应处理和重新打包消耗了较多的处理资源和存储资源。为了解决这个问题,已经开发了某些IPkc的变形。但是这些变形无法满足某些关键条件下的性能需求。其次,IPSec中密钥的最小可配置有效周期为1秒钟,并且在多数情况下,默认的密钥有效周期被设置为1小时甚至更长。然而对于高带宽/速度网络来说,用户可能需要更频繁地切换密钥。第三,用户很可能使用其自己的硬件设备/卡来利用已知的算法进行加密/解密,而IPSec对专用硬件的支持并不理想。因此,需要满足上述要求的网络通信中的动态加密和解密的方法和设备。本发明公开了用于网络通信中的动态加密和解密的方法和设备。在本发明的第一方面,提供一种用于网络通信的动态加密的方法,包括向网络实体分发密钥;将所述密钥存储在密钥表中;使用所述密钥表中的密钥来加密数据,并且将
4所使用密钥在密钥表中的索引附加至加密的数据;以及向所述网络实体发送加密的数据。在本发明的第二方面,提供一种用于网络通信的动态加密的设备,包括密钥同步模块,用于向网络实体分发密钥;密钥表管理模块,用于将所述密钥存储在密钥表中;加密模块,用于使用所述密钥表中的密钥来加密数据,并且将所使用密钥在密钥表中的索引附加至加密的数据;以及通信模块,用于向所述网络实体发送加密的数据。在本发明的第三方面,提供一种用于网络通信的动态解密的方法,包括从网络实体接收密钥;将接收的密钥存储在密钥表中;从所述网络实体接收加密的数据;以及按照附加至所述数据的索引在所述密钥表中定位密钥,并且使用所定位的密钥来解密所述数据。在本发明的第四方面,提供一种用于网络通信的动态解密的设备,包括密钥同步模块,用于从网络实体接收密钥;密钥表管理模块,用于将接收的密钥存储在密钥表中;通信模块,用于从所述网络实体接收加密的数据;以及解密模块,用于按照附加至所述数据的索引在所述密钥表中定位密钥,并且使用所定位的密钥来解密所述数据本发明提供的用于网络通信加密和解密的方法和设备是一种轻量级解决方案,易于实现、管理和修改。此外,根据本发明的实施方式,能够按照密钥有效周期要求和网络状况等因素来动态地生成、分发、同步以及使用密钥,从而实现密钥敏捷性,继而获得加高的保护强度和安全级别。而且,按照本发明实施方式的方法和设备支持对加密和解密的定制实现,例如支持基于专用硬件的实现。特别地,按照本发明的某些实施方式,可以利用已有的网络协议数据结构和格式来实现本发明的技术方案,从而实现较高的兼容性和效率。此外,按照本发明的某些实施方式,可以利用较少的存储和处理资源来实现加密和解码。
通过结合附图对本发明示例性实施方式的描述,有助于更好地理解本发明的上述以及其他特征、优点和方面。在附图中图1示出了按照本发明一个示例性实施方式的用于网络通信的动态加密的方法的流程图;图2示出了按照本发明一个示例性实施方式的用于网络通信的动态解密的方法的流程图;图3示出了按照本发明一个示例性实施方式的用于在解密过程中管理当前密钥索引的方法的流程图;图4示出了按照本发明一个示例性实施方式的用于网络通信的动态加密的设备的框图;图5示出了按照本发明一个示例性实施方式的用于网络通信的动态解密的设备的框图;图6示出了按照本发明一个示例性实施方式的动态加密和解密过程的时序图;以及图7示出了可以用来实现根据本发明的示例性计算机设备的结构框图。
具体实施方式
下面将仅以示例性的方式参考附图,通过若干示例性实施方式来详细按照本发明的方法和设备。应当理解,所示出和描述的实施方式仅仅是示例性的,其意在阐释本发明的原理和精神,而并非限制本发明的范围。在下文描述中,为清晰起见,使用术语“第一网络实体”表示发起密钥同步和发送数据的一方,并且使用术语“第二网络实体”表示接受密钥同步和接收数据的一方。应当理解,第一网络实体和第二网络实体可以是能够进行数据传输的任何网络实体。图1示出了按照本发明一个实施方式的用于网络通信的动态加密方法的流程图。方法开始于步骤S110,在此生成密钥。例如,第一网络实体可以在其认为需要时或是按照指令来生成密钥。在一个实施方式中,第一网络实体可以根据密码的有效周期配置来动态生成新密钥。在其他实施方式中,第一网络实体可以根据当前网络状况、用户输入或者其他任何一个或多个条件来生成密钥。注意,步骤SllO是可选的。例如,在某些实施方式中,密钥可以由外部实体提供, 而非在网络实体中生成。在这种情况下,可以省略步骤S110。在步骤S120,第一网络实体向第二网络实体分发密钥。在一个实施方式中,为了确保密钥的安全,第一网络实体可以通过安全信道向第二实体分发密钥。例如,安全信道可以是非对称加密的套接字(socket)信道。第一网络实体利用公钥对待分发的密钥加密,而后将其发送至第二网络实体。在第二网络实体接收到该密钥之后,其使用相应的私钥来解密, 从而获得将要使用的密钥。除了通过安全信道分发密钥,第一网络实体也可以通过其他电子的和/或物理的方式来向第二网络实体动态地分发密钥。在步骤S130,接收第二网络实体接收到密钥的确认。以此方式,可以确保第一网络实体和第二网络实体之间的密钥同步。也即,第一网络实体在后续通信中使用的密钥已由第二网络实体接收和存储。注意,步骤S130是可选地。例如,在某些实施方式中,第一网络实体和第二网络实体可以通过预先约定的方式来保持密钥的同步。例如,可以通过对第一网络实体和第二网络实体的密钥表(下面结合步骤S140加以描述)的适当设计,来保持二者之间密钥的同步。在这种情况下,第一网络实体无需接收第二网络实体的确认。此外,尽管确保第一网络实体和第二网络实体之间的密钥同步可以有助于接收方正确解密,但这并不是必须的。在不确保第一网络实体和第二网络实体之间的密钥同步时, 可能造成接收方不能正确解密。这种情况可以被视为在通信过程中的丢包或传输错误。这种错误可以根据具体应用以及所使用的网络协议等来进行错误恢复。例如,在基于TCP/IP 协议的实现中,可以通过传输层的重传来进行纠正。这是现有技术可以解决的问题,对此不再详述。在步骤Sl40,将密钥存储在密钥表中。第一网络实体将已分发的密钥保存在其可访问的密钥表中。密钥表可以是能够存储和检索密钥的任何数据结构,例如列表、队列、栈、 堆、数据库、文件等及其组合。特别地,在一个实施方式中,密钥表可以实现为先进先出(FIFO)队列。在这种情况下,如果网络状况理想,则由第一网络实体分发的密钥将按照分发的顺序到达第二网络实体,并且被顺序存储在密钥表中。由此,只要队列足够长,第一网络实体和第二网络实体的密钥表可以始终保持同步,而无需执行上述步骤S130。在又一实施方式中,考虑到实际网络状况以及存储资源的约束,密钥表可以优选地实现为循环队列。换言之,密钥表是长度固定的FIFO队列。当密钥表已满并且要插入新密钥时,最先存储的密钥(也即,最旧的密钥)从密钥表中被删除。在步骤S150,将最新分发的密钥在密钥表中的索引作为“当前密钥索引”。以此方式,当前密钥索引总是与第一网络实体最新分发的最新密钥相关联。在一种实施方式中,在与第二网络实体的后续通信中,第一网络实体可以利用与当前密钥索引相关联的密钥(也即,最新分发的密钥)来加密和解密数据,从而提高保护强度。注意,步骤S150是可选的。如下文针对步骤S160所述,在某些实施方式中,可以使用其他标准来选择要使用的密钥。此时,可以省略步骤S150。在步骤S160,使用密钥表中的密钥来加密数据,并且将所使用密钥在密钥表中的索引附加至加密的数据。第一网络实体可以按照任何方式来选择要使用的密钥。如上所述,在执行了步骤 S150(也即,第一网络实体保持“当前密钥索引”)的某些实施方式中,第一网络实体可以选择与当前密钥索引相关联的密钥(也即,最新分发的密钥)来加密数据。在其他实施方式中,第一网络实体可以按照其他任何标准甚至随机地选择密钥表中的密钥用于加密数据。继而,第一网络实体将用来加密数据的密钥在密钥表中的索引附加到已经加密的数据。所述附加可以通过各种实施方式来实现。例如,在一个实施方式中,可以实现针对第一网络实体和第二网络实体的定制数据包结构,用以封装经过加密的数据和密钥索引。根据本发明的一个实施方式,第一网络实体和第二网络实体可以使用基础网络协议的已有数据包格式,而非自定义数据包。这样,利用现有的网络协议即可实现高效的加密传输。例如,第一网络实体可以将密钥的索引写入基础网络协议的数据包的报头中的未使用位/预留位。以此方式,可以避免对基础协议的修改,从而获得较高兼容性和效率。在此类实施方式中,假设密钥表采用循环队列形式,则循环队列的长度可以根据数据包报头中可用的未使用位/预留位的数目来确定。例如,如果数据包报头中存在η (η > 1)个未使用位/预留位可用于写入密钥索引,则总共可以代表2η个值。除明文数据报之外,密钥表循环队列的长度可以定义为2η-1。此外,在一个实施方式中,为了确保数据的完整性,可以在第一网络实体和第二网络实体之间执行报头校验和检验。在这种情况下,当第一网络实体向报头插入密钥索引之后,可以重新产生报头的校验和。在步骤S170,向第二网络实体发送加密的数据。可以理解,由于密钥的索引已附加至数据,因此该索引也被同时发送到了第二网络实体。这样,第二网络实体可以根据随附的索引,在其密钥表中检索到用于解密的密钥。如上文所述,由于二者的密钥表可以保持同步,因此第二网络实体可以正确地解密数据。解密方法将在下文参照图2进一步描述。图2示出了按照本发明一个示例性实施方式的用于网络通信的动态解密的方法的流程图。方法开始于步骤S210,从第一网络实体接收密钥。类似于图1的步骤S120,为了确保密钥的安全,第二网络实体可以通过安全信道从第一实体分发密钥。具体的实施方式已在上文结合图1的步骤S120进行了描述,在此不再赘述。在其他实施方式中,第二网络实体也可以通过其他电子的和/或物理的方式来从第一网络实体接收密钥。在步骤S220,将接收的密钥存储在密钥表中。如上所述,密钥表可以通过任何适当的数据结构来实现,并且可以优选地实现为循环队列。在步骤S230,设置所存储密钥的状态标记。存储在密钥表中的每个密钥可以具有相关联的状态标记。特别地,在首次存储密钥之后,将其状态标记设为“未使用”。密钥在首次被使用之后,其状态标记被设为“已使用”。注意,步骤S230是可选的。设置密钥的状态标记是出于管理“当前密钥索引”目的(将在下文描述)。因此,在无需管理当前密钥索引的情况下,可以省略步骤S230。在步骤S240,向第一网络实体发送收到密钥的确认。以此方式,可以确保第一网络实体和第二网络实体之间的密钥同步。也即,第一网络实体将在后续通信中使用的密钥已由第二网络实体接收和存储。注意,步骤S240是可选地。在某些实施方式中,第一网络实体和第二网络实体可以通过预先约定的方式来保持密钥的同步,或者无需确保密钥表的同步,这已在上文讨论, 在此不再赘述。在步骤S250,从网络实体接收加密的数据。如上文结合图1所述,按照本发明的相应数据加密方法,数据随附有用于加密的密钥的索引。因此,在步骤S250,第二网络实体同时也接收到了该密钥的索引。继而在步骤S260,按照附加至数据的索引在密钥表中定位密钥,并且使用所定位的密钥来解密该数据。如前所述,由于第一网络实体和第二网络实体之间的密钥表是同步的,因此第二网络实体在其密钥表中定位的密钥正是第一网络实体用来加密的密钥。利用该索引,第二网络实体可以正确地对加密数据进行解密。需要注意,对于循环队列或者其他任何长度有限的密钥表来说,由于网络传输过程中的延迟,到达第二网络实体的数据所使用的密钥可能已从密钥表中删除。此时,按照所附索引定位的密钥并非正确的密钥,从而将会导致解密错误。这种情况可以被视为在通信过程中的丢包或传输错误。第二网络实体可以根据具体应用以及所使用的网络协议等来进行错误恢复。例如,在基于TCP/IP协议的实现中,可以通过传输层的重传来进行恢复,这属于现有技术可解决的问题。特别地,当第一网络实体使用最新分发的密码来加密数据时,则在重传情况下,数据将由最新分发的密钥,从而能够在第二网络实体处被正确解密。在步骤S270,管理当前密钥索引。请注意,步骤S270是可选的。如上文所述,出于对密钥有效周期的考虑,可能希望利用最新分发的密钥来保护数据传输。此时执行步骤 S270,设置当前密钥索引以指示第一网络实体最新分发的密钥在密钥表(特别是循环密钥表)中的位置。当第二网络实体随后向第一网络实体发送数据时,其可以使用与当前密钥索引相关联的密钥(也即,第一网络实体最新分发的密钥)来加密数据。在这种情况下,第一网络实体相应地也保持有与最新分发密钥相关联的当前密钥索引,从而可以正确地解密数据。在其他情况下,可以省略步骤S270。下面将结合图3来描述步骤S270的一种示例性实现。图3示出了按照本发明一个示例性实施方式的用于在解密过程中管理当前密钥索引的方法的流程图,其可以用于实现图2中的步骤S270。在步骤S310,每当第二网络实体从数据中取得随附的密钥索引之后,其便将该索引与目前保持的当前密钥索引进行比较,以确定二者是否相同。如果相同(步骤S310的分支“是”),说明当前接收的数据已由最新分发的密钥来加密,因此保持当前密钥索引不变(步骤S330)。方法随之结束。另一方面,如果获取的索引与当前密钥索引不相同(步骤S310的“否”),则在步骤S320,第二网络实体判断与获取的索引相关联的密钥的状态标记是否为“未使用”。该步骤是为了应对可能出现的网络传输延迟。例如,在使用循环队列用于密钥表的情况下,如果先前发送的密钥延迟到达第二网络实体,尽管其所附的索引可能与第二网络实体目前保持的当前密钥索引不同,但相应的密钥已不是最新分发的密钥,在这种情况下,可以通过步骤 S320来判断该密钥是否为最新分发的密钥(因为最新分发的密钥的状态标记应为“未使用”)。如果与获取的索引相关联的密钥的状态标记为“已使用”(步骤S320的分支 “否”),则说明该密钥并非最新分发的密钥,则第二实体保持当前密钥索引不变(步骤 S330)。方法随之结束。另一方面,如果与获取的索引相关联的密钥的状态标记为“未使用”(步骤S320的分支“是”),则第二网络实体判定当前数据是利用其已经保存、但尚未使用过的最新密钥来加密的。在这种情况下,在步骤S340,以所获取的索引作为当前密钥索引。继而在步骤S350,将与该索引(也即,当前密钥索引)相关联的密钥的状态标记设置为“已使用”。方法随之结束。 返回图2,通过在步骤S270管理当前密钥索引,在某些实施方式中,第一网络实体和第二网络实体可以使用最新分发的密钥来保护二者之间的双向通信。从而提高保护强度和安全级别。应当理解,第二网络实体管理当前密钥索引可以提高保护强度,并有助于接收方以加密的方式向发送方传输数据,但这并不是必须的。在其他情况下(例如,密钥表中的其他密钥也未过期,只存在第一网络实体对第二网络实体的单向通信,或允许明文通信等), 可以省略步骤270。图4示出了按照本发明一个示例性实施方式的用于网络通信的动态加密的设备的框图。如图所述,设备400包括密钥生成模块410,密钥同步模块420,密钥表管理模块 430,密钥加密模块440以及通信模块450。密钥生成模块410可以用于按照密钥的有效周期配置和/或其他各种适当的标准,来生成将要在网络通信中使用的密钥。如上所述,密钥也可以从外部获取而非在设备 400中生成。在这种情况下,密钥生成模块410是可选的(由图中的虚线表示)。密钥同步模块420可以用于向目的地网络实体分发密钥。在一个实施方式中,密钥同步模块420可以通过安全信道来分发密钥。在其他实施方式中,密钥同步模块420可以通过其他电子的和/或物理的方式来分发密钥。密钥同步模块420还可以用于使用最新分发的密钥在密钥表中的索引作为当前密钥索引,使得在与所述网络实体的后续通信中, 该最新分发的密钥被用来加密和解密数据。密钥表管理模块430用于将密钥存储在密钥表中。密钥表管理模块430还可以用于在向接收方网络实体分发密钥后,接收所述网络实体已收到所述密钥的确认。加密模块440可以用于使用所述密钥表中的密钥来加密数据,并且将所使用密钥在密钥表中的索引附加至加密的数据。在一种实施方式中,所述附加是通过由加密模块440将索引写入数据的报头的未使用位/预留位来实现的。加密模块440还可以用于在发送加密的数据之前,重新产生所述数据的报头的校验和。通信模块450用于向目的地网络实体发送加密的数据。特别地,通信模块450例如可以使用公共网络来发送加密的数据。图5示出了按照本发明一个示例性实施方式的用于网络通信的动态解密的设备的框图。如图5所示,设备500包括密钥同步模块510,密钥表管理模块520,通信模块530 以及解密模块讨0。密钥同步模块510可以用于过安全网络连接从网络实体接收密钥。在一个实施方式中,密钥同步模块510可以通过安全信道来接收密钥。在其他实施方式中,密钥同步模块 510可以通过其他电子的和/或物理的方式来接收密钥。密钥同步模块510还可以用于在接收到密钥之后,向所述网络实体发送确认。密钥表管理模块520可以用于将接收的密钥存储在密钥表中。密钥表管理模块 520还可以用于在将接收的密钥存储在密钥表中之后,将该密钥的状态标记设置为未使用状态。当通信模块530接收到加密数据并且解密模块540从数据中获取密钥索引(下文描述)之后,密钥表管理模块520还可以用于响应于该索引与目前保持的当前密钥索引不同、并且与该索引相关联的密钥的状态标记为未使用状态,而将该密钥的状态标记设置为已使用状态;以及使用所述索引作为当前密钥索引。通信模块530用于从网络实体接收加密的数据。特别地,通信模块530例如可以使用公共网络来接收加密的数据。解密模块540用于按照附加至接收数据的索引在密钥表中定位密钥,并且使用所定位的密钥来解密数据。在一种实施方式中,密钥的索引写在接收数据的报头的未使用位 /预留位中。上文已经说明了按照本发明的用于网络通信中的动态加密和解密的方法以及设备。下面将结合图6所示的网络通信时序图,更为详细地阐释本发明的加密和解密原理。注意,在图6描述的示例中,第一网络实体可以对应于结合图4描述的设备400,而第二网络实体可以对应于结合图5描述的设备500。还应注意,第一网络实体和第二网络实体分别执行了包括可选步骤在内的所有步骤,其中可选步骤由虚线表示。在其他实施方式中,可以省略一个或多个可选步骤。如图6所示,第一网络实体例如按照密钥有效周期配置动态地生成密钥(SllO)。 继而,第一网络实体向第二网络实体分发密钥(S120)。密钥例如通过安全信道来分发。第二网络实体通过从第一网络实体接收密钥(S210),将接收的密钥存储在密钥表中(S220), 并且将该密钥的状态标记设为“未使用”(S230)。继而,第二网络实体向第一网络实体发回确认(SMO)。在接收到来自第二网络实体的确认(S130)之后,第一网络实体确定第二网络实体已经获得了所分发的密钥。作为响应,第一网络实体将该密钥也存储在其密钥表中 (S140)。可选地,第一网络实体可以使用最新分发的密钥在密钥表中的索引作为其当前密钥索引(S150)。以此方式,第一网络实体和第二网络实体完成了新密钥的分发和同步。随后,当第一网络实体从密钥表中选择密钥,利用所选密钥来加密待传输的数据, 并且将所用密钥的索引附加至加密的数据(S160)。在某些实施方式中,第一网络实体选择与其当前密钥索引相关联的密钥(也即,最新分发的密钥)来加密数据。
第一网络实体向第二网络实体发送加密的数据(S170)。数据例如通过公共网络来传输。第二网络实体接收加密数据(S250)。继而,第二网络实体从加密数据中提取密钥的索引。第二网络实体利用该索引在密钥表中定位密钥,而后使用定位的密钥来解密数据 (S260)。至此,第一网络向第二网络发送加密数据的过程完成。在某些实施方式中,第二网络实体管理当前密钥索引(S270),从而保持与第一网络实体同步的最新分发密钥。该步骤例如可以通过上文参照图3描述的过程来实现。在第二网络实体保持有当前密钥索引的情况下,当其随后向第一网络实体发送数据时,其可以使用与当前密钥索引相关联的密钥(也即,第一网络实体最新分发的密钥)来加密数据。相应地,第一实体可以利用其当前密钥索引所关联的密钥来解密数据。此时,数据通信总是由最新分发的密钥来加以保护,从而提高了安全级别。本发明通过动态的更新密钥表,并且在传输数据中附加密钥索引,提供了一种轻量级网络安全解决方案。按照本发明,能够按照网络状况动态地分发和同步密钥从而实现较高的密钥敏捷性,并且支持对加密处理的定制。特别地,按照本发明的某些实施方式,可以利用已有的网络协议数据结构和格式来实现本发明的技术方案,从而实现较高的兼容性和效率。此外,按照本发明的某些实施方式,可以利用较少的存储和处理资源来实现加密和解码。图7示出了可以用来实现根据本发明的示例性计算机设备的结构框图。如图7所示,计算机系统可以包括CPU(中央处理单元)701、RAM(随机存取存储器)702、R0M(只读存储器)703、系统总线704、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708、显示器控制器709、硬盘710、键盘711、串行外部设备712、并行外部设备713 和显示器714。在这些部件中,与系统总线704相连的有CPU 70URAM 702,ROM 703、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708和显示器控制器709。 硬盘710与硬盘控制器705相连,键盘711与键盘控制器706相连,串行外部设备712与串行接口控制器707相连,并行外部设备713与并行接口控制器708相连,以及显示器714与显示器控制器709相连。可以理解,图7所述的结构方框图仅仅为了示例的目的而示出的,并非是对本发明的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。本发明提供了用于网络通信的动态加密和解密的方法和设备。按照本发明的解决方案是一种轻量级网络安全方案,易于实现、管理和修改。此外,根据本发明的实施方式,能够按照密钥有效周期要求和网络状况等因素来动态地生成、分发、同步以及使用密钥,从而实现较高的密钥敏捷性和保护强度。而且,按照本发明实施方式的方法和设备支持对加密和解密的定制实现,例如支持基于专用硬件的实现。特别地,按照本发明的某些实施方式,可以利用已有的网络协议数据结构和格式来实现本发明的技术方案,从而实现较高的兼容性和效率。此外,按照本发明的某些实施方式,可以利用较少的存储和处理资源来实现加密和解码。此外,本发明的实施方式可以以软件、硬件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本实施方式的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”),广域网(“WAN”),基于IP协议的网络(例如,因特网)以及端对端网络(例如,ad hoc对等网络)。此外,尽管在附图中以特定的顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照特定的顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤,或是将一个步骤分解为多个步骤。虽然已经参考若干具体实施方式
描述了本发明,但是应该理解本发明并不限于所公开的实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
权利要求
1.一种用于网络通信的动态加密的方法,包括 向网络实体分发密钥;将所述密钥存储在密钥表中;使用所述密钥表中的密钥来加密数据,并且将所使用密钥在密钥表中的索引附加至加密的数据;以及向所述网络实体发送加密的数据。
2.如权利要求1所述的方法,还包括在向接收方网络实体分发密钥后,接收所述网络实体已收到所述密钥的确认。
3.如权利要求1所述的方法,还包括将最新分发的密钥在密钥表中的索引作为当前密钥索引,使得在与所述网络实体的后续通信中,该最新分发的密钥被用来加密和解密数据。
4.如权利要求1所述的方法,还包括 按照密钥的有效周期配置来生成待分发的密钥。
5.如权利要求1所述的方法,其中所述密钥表是循环队列。
6.如权利要求1所述的方法,其中所述附加是将所述索引写入数据的报头的未使用位。
7.如权利要求6所述的方法,还包括在发送加密的数据之前,重新产生所述数据的报头的校验和。
8.如权利要求1所述的方法,其中所述分发通过安全信道来进行。
9.一种用于实现权利要求1-8中任一方法的网络通信的动态加密的设备。
10.一种用于网络通信的动态解密的方法,包括 从网络实体接收密钥;将接收的密钥存储在密钥表中; 从所述网络实体接收加密的数据;以及按照附加至所述数据的索引在所述密钥表中定位密钥,并且使用所定位的密钥来解密所述数据。
11.如权利要求10所述的方法,还包括 在接收到密钥之后,向所述网络实体发送确认。
12.如权利要求10所述的方法,其中所述密钥表是循环队列。
13.如权利要求10所述的方法,还包括在将接收的密钥存储在密钥表中之后,将该密钥的状态标记设置为未使用状态。
14.如权利要求13所述的方法,其中如果所述索引与目前保持的当前密钥索引不同, 并且与所述索引相关联的密钥的状态标记为未使用状态,则将所述索引作为当前密钥索引;以及将与所述索引相关联的密钥的状态标记设置为已使用状态,其中在随后向所述网络实体发送数据时,与所述当前密钥索引相关联的密钥被用来加密数据。
15.如权利要求10所述的方法,其中所述索引写在接收数据的报头的未使用位中。
16.如权利要求10所述的方法,其中从网络实体接收密钥包括通过安全信道来接收密钥。
17. 一种用于实现权利要求10-16中任一方法的网络通信的动态解密的设备。
全文摘要
本发明涉及用于网络通信的动态加密和解密的方法和设备。具体地,公开了一种用于网络通信的动态加密的方法,包括向网络实体分发密钥;将所述密钥存储在密钥表中;使用所述密钥表中的密钥来加密数据,并且将所使用密钥在密钥表中的索引附加至加密的数据;以及向所述网络实体发送加密的数据。还公开了一种用于网络通信的动态解密的方法,包括从网络实体接收密钥;将接收的密钥存储在密钥表中;从所述网络实体接收加密的数据;以及按照附加至所述数据的索引在所述密钥表中定位密钥,并且使用所定位的密钥来解密所述数据。本发明还公开了相应的设备。
文档编号H04L9/08GK102238002SQ201010171638
公开日2011年11月9日 申请日期2010年4月30日 优先权日2010年4月30日
发明者刘新华 申请人:国际商业机器公司