具体实施例
下面通过本发明的实施例描述本发明。下面的实施例不限制权利要求书中描述的发明,并且在下面的实施例中描述的特征的全部组合对于本发明的解决方法来说并非总是必要的。
图1示出了信息处理系统10整体的结构。信息处理系统10包括发送系统12和接收系统14。发送系统12包括通信终端13、具有基于第3层(OSI参考模型中的网络层)的通信功能的通信装置15和具有基于第2层(OSI参考模型中的数据链路层)的通信功能的通信装置30。为了与稍后描述的通信终端95通信,通信终端13将数据包传送到通信装置15。通信装置15在例如互联网协议(此后称为IP)的基础上控制通信。具体地说,在从通信终端13接收到数据包后,通信装置15在IP头中写用于控制IP通信的信息,例如目的地IP地址的信息,并将其中写了信息的数据包传送到通信装置30。被传送到通信装置30的数据包由通信数据20表示。
通信装置30使用介质访问控制地址(此后称为MAC地址)控制通信。具体地说,在从通信装置15接收到通信数据20以后,通信装置30将例如目的地MAC地址的信息写在MAC头中。而且,通信装置30至少对一部分通信数据20进行加密。该加密数据可以被通信装置60解密。以这种方式产生的通信数据由通信数据50表示。通信数据50被传送到接收系统14。
在本实施例中通信终端13是例如个人计算机、文件服务器和打印服务器的各种类型的服务器其中之一,或者是PDA等等。而且,通信装置15是叫做路由器或者网关的第3层交换机。通信装置30是叫做网桥等的第2层交换机。
此外,个人计算机等或者每一个交换机等可以由记录在CD-ROM 100上的程序控制。这个程序允许在个人计算机等或交换机等中提供的处理器起到通信终端13、通信装置15和/或通信装置30的作用。此外,这个程序允许处理器进一步起到通信终端95、通信装置60和/或通信装置90的作用。这个程序在被从CD-ROM 100读出以后被传送到发送系统12或者接收系统14,并且被传送的程序在发送系统12或接收系统14中被安装并执行。该程序允许发送系统12或者接收系统14执行的具体操作和在图2到图8中描述的相同。因此省略了具体操作的描述。
上述程序可以存储在外部存储介质中。作为存储介质,不仅CD-ROM 100,而且例如软盘、DVD或PD的光学记录介质、例如MD的磁光介质、磁带介质,或者例如IC卡的半导体存储器也可以被使用。此外,通过使用连接到专用通信网络或者互联网的服务器系统中提供的例如硬盘或者RAM的存储设备作为记录介质,可以通过网络将该程序提供给发送系统12。
接收系统14包括具有第2层通信功能的通信装置60、具有第3层通信功能的通信装置90,以及通信终端95。通信装置60使用MAC地址控制通信,并且在本实施例中起到MAC帧接收装置的作用。具体来说,在写入MAC头中的信息的基础上,通信装置60获取要被通信装置60中继的MAC帧。例如,通信装置60通过网络从通信装置30接收通信数据50。而且,通信装置60对被通信装置30加密的通信数据50的一部分进行解密。以这种方式产生的通信数据由通信数据80表示。通信装置90从通信装置60接收通信数据80,并将接收到的通信数据80传送到通信终端95。
如上所述,根据本发明实施例的信息处理系统10是用来在第2层中实现密码通信。在这种情况下,信息处理系统10是用来通过应用CBC(密码块链接)等来增强在密码通信中信息的保密性而不增加加密所需的处理时间。
在本实施例中,为了描述的简洁,将发送系统12和接收系统14描述为分离的系统。但是,一个系统还可以具有另一个系统的功能。换句话说,发送系统12和接收系统14中的任意一个均可以起到IP包发送/接收系统的作用。
图2示出了通信数据20的具体例子。通信数据20包括具有IP包200-1作为有效载荷的MAC帧和具有IP包200-2作为有效载荷的MAC帧。从通信数据项产生IP包200-1和200-2。例如,当通信装置15从通信终端13接收到的通信数据的尺寸超过了MTU(最大传输单元)时,通信装置15通过将所述通信数据分割为两部分产生IP包200-1和200-2。
IP包200-1包括IP头210-1和IP数据220-1。IP包200-2包括IP头210-2和IP数据220-2。IP头210-1和210-2中的每一个均包括各种类型的控制信息,例如目的地IP地址。IP头210-1包括标识符字段230-1,并且IP头210-2包括标识符字段230-2。标识符字段230-1是用于记录IP包200-1的包标识符的字段。标识符字段230-2是用于记录IP包200-2的包标识符的字段。响应于将IP包分割为多个经过分割的IP包,相同的包标识符被存储在经过分割的IP包的标识符字段中。因此,标识符字段230-1和230-2存储了相同的包标识符。
在图5和图8以及图2中,省略了除用于描述第2层和第3层的处理所需要的部分以外的包部分。具体来说,在图2中的部分以外,IP包200-1还可以包括例如CRC(循环冗余码)的错误检测/校正数据,或者和头部对应的尾部。省略了对它们的描述。
图3示出了通信装置30的功能结构。通信装置30不仅具有控制第2层通信的功能,而且具有图3中所示的单元所指示的功能。具体来说,通信装置30包括确定单元300、包加密单元310、向量写单元315、存储单元340和向量输出单元350。确定单元300确定要被传送到通信装置60的MAC帧的有效载荷是否是使用IP协议的IP包。当该MAC帧符合以太网(注册商标)帧格式时,确定单元300可以在“类型(type)”字段的值的基础上确定有效载荷是否是IP包。在MAC帧的有效载荷是IP包的情况下,包加密单元310加密该IP包来产生加密包。
在这种加密中使用预先确定的初始向量。更具体地说,包加密单元310包括分割部分320和数据加密部分330。分割部分320顺次地将IP包分割为多个分别具有预先确定的尺寸的经过分割的数据项。接着,数据加密部分330使用所述初始向量来加密一个经过分割的数据项。数据加密部分330还通过使用所述加密数据项作为下一个向量对下一个经过分割的数据项加密。结果,数据加密部分330能够加密经过分割的数据项以便产生多个加密数据项。
向量写单元315将标识初始向量的向量标识符记录在如上述那样产生的加密包的IP头中提供的预先确定的字段的至少一部分中。具体来说,这个预先确定的字段是存储用于从经过分割的IP包重构原始IP包的信息的字段。例如,这个字段是图2中所示的标识符字段230-1。标识符字段230-1是用于IP包分割的保留字段,即使IP包被分割或者不被分割。换句话说,向量写单元315在标识符字段230-1中记录向量标识符,而不管IP包被分割还是不被分割。
或者,所述预先确定的字段可以是用于存储IP包的段偏移(fragment offset)的字段。此外,在预先确定的字段中,用不增加IP包的尺寸的方法记录向量标识符。例如,已经记录在预先确定的字段中的信息可以被向量标识符覆盖,并且可以在向量标识符的基础上转换已经记录在预先确定的字段中的信息。此外,所述预先确定的字段最好是不将值传递到第3层(网络层)以上的层中的装置的字段。这能够防止第2层密码通信干扰不同层中的通信。
对于已经加密的IP包,存储单元340存储已被存储在IP包中标识符字段中的包标识符(包ID)和标识在加密IP包时已使用的初始向量的向量标识符(向量ID),以使两者彼此相关联。在图3中的例子中,存储单元340存储包ID 0x1234....5678,以便与向量ID 0x1234相关联。存储单元340最好以预先确定的定时或者是周期性地删除所存储的包标识符和初始向量之间的关联。这能够防止所需要的存储单元340的存储量上的增加,并能够提高向量标识符搜索速度。例如,预先确定的定时可以是改变通信装置30和60之间设置的加密密钥的定时。
响应于通信装置30接收IP包,向量输出单元350将该IP包视作新的要被加密的IP包,并在存储单元340里搜索和该IP包的包标识符对应的向量标识符。在搜索到这个向量标识符的情况下,即,在这个向量标识符被存储在存储单元340中的情况下,向量输出单元350输出对应于该向量标识符的初始向量作为供在IP包加密中使用的初始向量。包加密单元310使用这个初始向量来执行上述加密。
而且,向量输出单元350将找到的向量标识符输出到向量写单元315。向量写单元315将这个向量标识符记录在IP头中。在上述处理中,相同的向量标识符被记录在具有相同的包ID的IP包中。这允许例如标识符字段230-1和230-2在所记录的内容上是相同的,从而允许由接收系统14进行的IP包重构。
在未搜索到向量标识符的情况下,向量输出单元350可以基于通过使用预先确定的伪随机数等新产生的向量标识符产生初始向量。被产生的向量标识符和初始向量被类似地输出到向量写单元315和包加密单元310。
图4是通信装置30对IP包200-1进行加密的处理的概念图示。在图4的上面部分,示出了处于加密前状态的IP包200-1,并且在图4的下面部分,示出了处于加密状态的包200-1。由于通信装置30在第2层中加密IP包200-1,所以在本实施例中的IP包200-1除了图2中的IP包200-1以外还包括MAC头。MAC头的数据尺寸是例如6字节。
首先,分割部分320顺次地将IP包200-1分割为多个分别均具有预先确定的尺寸的经过分割的数据项。例如,通过分割IP数据220-1获得的经过分割的数据项由明文数据项225-1到225-N表示。还从IP头210-1产生经过分割的数据项。接着,向量输出单元350在向量ID或伪随机数的基础上产生初始向量(S410)。从向量ID产生初始向量的处理由例如预先确定的扩展哈希函数来实现,并且这个函数的内容可以向公众开放。
接着,数据加密部分330通过使用初始向量顺次地加密IP头210-1中的经过分割的数据项。例如,数据加密部分330在IP头210-1中的一个经过分割的数据项和初始向量之间实施异或运算(S420)。数据加密部分330通过使用预先确定的加密密钥对运算的结果加密,产生加密数据项(S430)。这时,包加密单元310用向量ID替代IP包200-1中的标识符字段230-1(S435),并且包加密单元310可以对IP包200-1的、除了标识符字段230-1以外的部分加密。包加密单元310可以用向量ID替代整个标识符字段230-1,或者可以用向量ID只替代标识符字段230-1的一部分。在部分标识符字段230-1被替代的情况下,包加密单元310可以对IP包200-1的、除了被替代部分以外的部分加密。
或者,包加密单元310可以用向量标识符替代在S420中实施的异或运算的结果,而不是替代明文的IP包200-1。换句话说,包加密单元310可以用向量标识符替代对应于在S420中实施的异或运算的结果中的标识符字段230-1的一部分。而且,在这种结构中,可以在解密加密数据项时获得向量标识符,并且可以获得供在解密异或操作中使用的初始向量。
此后,数据加密部分330通过将所述加密数据项用作下一个向量来加密下一个经过分割的数据项。加密的过程和上面所描述的类似。响应于IP头210-1的加密完成的时刻,数据加密部分330通过将最后加密的数据用作向量来加密明文数据项225-1。具体来说,数据加密部分330在该向量和明文数据项225-1之间实施异或运算(S440)。数据加密部分330通过使用预先确定的加密密钥对运算结果加密,产生加密数据项228-1(S450)。接着,数据加密部分330通过将加密数据项228-1用作加密数据项来加密跟在明文数据项225-1后面的明文数据项225-2。具体来说,数据加密部分330在加密数据项228-1和明文数据项225-2之间实施异或运算(S460)。数据加密部分330通过使用预先确定的加密密钥对运算结果加密,产生加密数据项228-2。此后,通过重复地执行加密,数据加密部分330最后产生加密数据项228-N(S490)。
上述加密系统是个例子,并且使用初始向量的加密系统中可能存在很多变化。例如,通过在由加密一个经过分割的数据项产生的数据和初始向量之间实施异或运算,包加密单元310可以产生运算结果作为加密数据项。在这种情况下,包加密单元310通过将所述加密数据项用作下一个向量来加密下一个经过分割的数据项。和图4中的例子类似,即使在这种结构中,也能够增强加密的保密性。加密IP包200-2的处理和加密IP包200-1的处理类似。因此省略了其描述。
图5示出了通信数据50的具体例子。通过上述加密获得的通信数据50包括具有IP包200-1作为有效载荷的MAC帧和具有IP包200-2作为有效载荷的MAC帧。IP包200-1包括加密IP头210-1和加密IP数据220-1。IP头210-1被针对每一个经过分割的数据项加密。但是,IP头210-1在标识符字段230-1中包括未加密的向量标识符。IP数据220-1被针对每一个经过分割的数据项加密。类似地,IP头210-2和IP数据220-2被针对每一个经过分割的数据项加密。但是,IP头210-2在标识符字段230-2中包括未加密的向量标识符。
图6示出了通信装置60的功能结构。通信装置60具有控制第2层通信的功能,并且还包括确定单元600、标识符获取单元605和包解密单元610。标识符获取单元605确定通信装置60所接收的MAC帧的有效载荷是否是IP包。在接收到的MAC是IP包的情况下,标识符获取单元605从在加密包的IP头中提供的标识符字段的至少一部分中获取标识了在加密IP包时已使用的初始向量的向量标识符。这个标识符字段是要用于从多个经过分割的IP包重构原始IP包的信息的例子。通过分割同一IP包产生的IP包在其标识符字段中具有相同的值。
包解密单元610通过使用由向量标识符标识的初始向量执行加密包的解密,产生了解密数据。具体来说,包解密单元610包括分割部分620、向量获取部分630和数据解密部分640。分割部分620顺次地将加密数据包分割为多个分别具有预先确定的尺寸的经过分割的数据项。向量获取部分630获取对应于从加密包的标识符字段获取的向量标识符的初始向量。数据解密部分640使用所述初始向量来解密一个经过分割的数据项,并且通过将所述经过分割的数据项用作下一个向量来进一步解密下一个经过分割的数据项。结果,数据解密部分640能够解密经过分割的数据项以产生多个解密数据项。
图7是其中对通信装置60对IP包200-1进行解密的处理的概念图示。首先,分割部分620将IP头210-1和IP数据220-1分割为多个经过分割的数据项。通过分割IP数据220-1产生的经过分割的数据项由加密数据项228-1到228-N表示。此外,标识符获取单元605从标识符字段230-1获取向量标识符(S700)。接着,向量获取部分630获取对应于该向量标识符的初始向量(S710)。如已经描述的那样,从向量标识符获取初始向量的处理可以由预先确定的哈希函数实现。
接着,数据解密部分640使用所述初始向量来解密一个经过分割的数据项,并通过将所述经过分割的数据项用作下一个向量来进一步解密下一个经过分割的数据项。这使得数据解密部分640能够解密经过分割的数据项,以便产生多个解密数据项。具体来说,例如,数据解密部分640解密IP头210-1中的一个经过分割的数据项(S720)。当这个经过分割的数据项包括向量标识符时,数据解密部分640对加密数据项228-1的、除了向量标识符以外的部分进行解密。数据解密部分640通过在解密数据项和初始向量之间实施异或运算产生明文数据项225-1(S730)。通过将一个解密前的经过分割的数据项用作下一个向量,数据解密部分640解密下一个经过分割的数据项。
在完成了IP头210-1中的解密以后,数据解密部分640顺次地执行IP数据220-1中的解密。具体来说,数据解密部分640通过将处于其被解密前的状态的最后一个经过分割的数据项用作向量,对加密数据项228-1进行解密(S740)。数据解密部分640在被解密的加密数据项228-1和所述向量之间实施异或运算(S750)。接着,数据解密部分640通过将加密数据项228-1用作向量对加密数据项228-2解密。例如,数据解密部分640对加密数据项228-2解密(S760),并在被解密的加密数据项228-2和加密数据项228-1之间实施异或运算(S770)。数据解密部分640顺次地重复上述解密,并最后将加密数据项228-N解密为明文数据项225-N(S780、S790)。用于解密IP包200-2的处理基本上也和解密IP包200-1的处理类似。因此省略了其描述。
图8示出了通信数据80的具体例子。通过上述解密获得的通信数据80包括具有IP包200-1作为有效载荷的MAC帧和具有IP包200-2作为有效载荷的MAC帧。IP包200-1包括明文IP头210-1和明文IP数据220-1。明文IP头210-1在标识符字段230-1中包括向量标识符。IP包200-2包括明文IP头210-2和明文IP数据220-2。IP头210-2在标识符字段230-2中包括向量标识符。
响应于接收到IP包200-1和200-2,通信装置90通过使用存储在标识符字段230-1和230-2中的包标识符重构原始的IP包。将通信数据80与图2中所示的通信数据20比较,发现两者差别在于存储在标识符字段230-1和230-2中的包标识符。这是因为每一个包标识符的至少一部分被向量标识符覆盖。因此,原始的IP包也有可能未被适当地重构。但是,通信装置90组合多个具有相同的包标识符的IP包,但是不组合多个具有不同的包标识符的IP包,而不管包标识符的具体内容如何。由于包标识符和向量标识符在图3中的存储单元340中彼此相关联,所以在通信数据80中,存储在标识符字段230-1中的向量ID和存储在标识符字段230-2中的向量ID彼此相同。因此,通信装置90能够通过组合IP包200-1和200-2适当地重构原始的IP包。
图9示出了通信装置30和60的通信流程图的例子。响应于通信装置30从通信装置15接收到通信数据20,确定单元300确定通信数据20中所包括的MAC帧的有效载荷是否是IP包(S900)。在有效载荷是IP包的情况下(S900:YES),包加密单元310通过使用初始向量加密数据包,产生加密包(S910)。向量写单元315将标识初始向量的向量标识符记录在所述加密包的标识符字段的至少一部分中(S920)。以这种方式被加密的MAC帧被作为通信数据50从通信装置30传送到通信装置60。
响应于通信装置60从通信装置30接收到通信数据50的时刻,确定单元600确定通信数据50中所包括的MAC帧的有效载荷是否是IP包(S930)。在有效载荷是IP包的情况下(S930:YES),标识符获取单元605从这个IP包中的标识符字段的至少一部分获取标识初始向量的向量标识符(S940)。包解密单元610使用这个向量标识符来对加密IP包进行解密(S950),并将解密包通过通信装置90提供给通信终端95。这在通信装置13和通信终端95之间实现了具有高度保密性的通信。
如上所述,根据本实施例中的信息处理系统10,通过使用例如包标识符的信息字段能够增强第2层密码通信的保密性却不妨碍例如分割和重构的处理,在IP包的分割和重构中使用所述包标识符。这能够防止第2层中数据帧尺寸的增加,并且能够消除分割和重构第2层中数据帧的需求。此外,本实施例中的加密系统可应用于各种需要初始向量的算法。因此,本实施例中的加密系统能够广泛地不仅应用于例如CBC的现有算法,而且能够应用于将来可能开发出的算法。
尽管已经通过使用本发明的实施例对其进行描述,但是本发明的技术范围不局限于前述实施例中描述的范围。本领域技术人员很清楚,可以以不同方式更改或改进前述实施例。此外,从权利要求书的范围的描述很清楚,通过更改或改进本实施例获得的形式将被包括在本发明的技术范围内。