数据接收设备、数据传输系统和密钥生成设备的制作方法

文档序号:17048551发布日期:2019-03-05 19:48阅读:182来源:国知局
数据接收设备、数据传输系统和密钥生成设备的制作方法

于2017年8月28日提交的日本专利申请号2017-163283的公开内容(包括说明书、附图和摘要)通过引用整体并入本文。

本发明涉及数据接收设备、数据传输系统和密钥生成设备。



背景技术:

近年来,物联网(iot)技术一直备受关注。在iot技术中,数据的传输方式变得非常重要。多跳通信被称为数据传输方法。关于此,专利文献1公开了一种系统,其中存在父节点和多个子节点,并且子节点之一经由其他子节点向父节点传输数据。专利文献2公开了一种技术,其中数据传输源的设备在向数据附加认证符之后将数据传输到中继器设备。

(专利文献1)国际公开wo/2017/010057

(专利文献2)日本未审查专利申请公开号2016-181815



技术实现要素:

在多跳通信中,数据经由中继器设备传输。因此,重要的是,确认所传输的数据是否是正确的数据,并且此外,确认数据是否沿着正确的路径传输。因此,期望提出一种新技术,该技术可以验证所传输的数据是否未被伪造以及数据是否沿着正确的路径传输。

从本说明书的描述和附图中,本发明的其他问题和新特征将变得清楚。

根据一个实施例,一种数据接收设备包括:经由中继器设备接收数据、传输源设备和中继器设备的个体标识符的列表、和由中继器设备生成的mac的接收单元;通过使用预定的伪随机函数执行算术运算来导出秘密密钥的伪随机函数处理单元;以及通过使用预定的mac生成函数执行算术运算来生成mac的mac生成函数处理单元。数据接收设备还包括:控制伪随机函数处理单元递归地生成与从第一层级到第n层级的每个通信设备的个体标识符相对应的秘密密钥的伪随机函数处理控制器;控制mac生成函数处理单元递归地生成与从第n层级到第一层级的每个通信设备相对应的mac的mac生成函数处理控制器;以及将由接收单元接收的mac与由mac生成函数处理单元生成的与第一层级通信设备相对应的mac相比较的比较器。

根据一个实施例,可以验证传输的数据是否未被伪造以及数据是否沿着正确的路径传输。

附图说明

图1是示出根据实施例的概述的数据接收设备的配置的示例的框图;

图2是示出根据实施例的数据传输系统的网络配置的示例的示意图;

图3是示出作为数据接收设备的通信设备的配置的示例的框图;

图4是示出作为传输源设备的通信设备的配置的示例的框图;

图5是示出作为中继器设备的通信设备的配置的示例的框图;

图6是表示作为数据接收设备的通信设备的详细配置的示例的框图;

图7是示出根据实施例1的密钥生成设备中的处理流程的示意图;

图8是示出根据实施例1的验证设备中的处理流程的示意图;

图9是示出根据实施例1的数据传输系统中的初始设置的操作流程的示例的流程图;

图10是示出当作为中继器设备的通信设备生成用于较低顺序的节点的密钥时中继器设备的配置的示例的框图;

图11是示出根据实施例1的数据传输系统的传输操作流程的示例的流程图;

图12是通过传输源设备和中继器设备中的传输路径的具体示例示出信息流的示意图;

图13是示出图12所示的每个通信设备中的认证生成设备的处理流程的示意图;

图14是示出根据实施例1的数据接收设备中的验证操作流程的示例的流程图;

图15是示出根据实施例2的中继器设备的配置的示例的框图;

图16是示出根据实施例2的数据传输系统中的传输操作流程的示例的流程图;

图17是通过传输源设备和中继器设备中的传输路径的具体示例示出信息流的示意图;

图18a是示出图17所示的通信设备中的认证生成设备的处理流程的示意图;

图18b是示出图17所示的通信设备中的认证生成设备的处理流程的示意图;

图18c是示出图17所示的通信设备中的认证生成设备的处理流程的示意图;

图19是示出根据实施例3的传输源设备的配置的示例的框图;

图20是示出根据实施例3的数据接收设备的配置的示例的框图;

图21是示出根据实施例3的验证设备中的处理流程的示意图;

图22是示出根据实施例3的数据传输系统中的传输操作流程的示例的流程图;

图23是通过传输源设备和中继器设备中的传输路径的具体示例示出信息流的示意图;

图24是示出图23所示的每个通信设备中的加密设备和认证生成设备的处理流程的示意图;以及

图25是示出根据实施例3的数据接收设备中的验证操作流程的示例的流程图。

具体实施方式

在以下描述和附图中,适当地进行缩写和简化以阐明说明。在每个附图中,相同的符号或附图标记被附加到相同的元素,并且适当省略其重复说明。

<实施例的概述>

首先,在详细说明实施例之前说明实施例的概述。图1是示出根据实施例的概述的数据接收设备1的配置的示例的框图。如图1所示,数据接收设备1包括秘密密钥存储单元2、接收单元3、标识符提取单元4、伪随机函数处理单元5、mac生成函数处理单元6、伪随机函数处理控制器7、mac生成函数处理控制器8和比较器9。数据接收设备1是在由多个通信设备组成的网络中通过使用多跳通信来接收数据(也称为消息)的通信设备。也就是说,该网络包括作为数据传输源的通信设备的传输源设备、作为中继数据传输的通信设备的中继器设备、和作为接收数据的通信设备(数据传输目的地的通信设备)的数据接收设备1。数据接收设备1经由中继器设备接收由传输源设备传输的数据。

秘密密钥存储单元2存储目的地设备密钥作为预先确定的秘密密钥。

接收单元3经由中继器设备接收信息。具体地,接收单元3接收数据、传输源设备和中继器设备的个体标识符列表、和由中继器设备生成的mac(消息认证码)。个体标识符被预先指派给中继器设备和传输源设备。个体标识符列表以传输路径的顺序示出了传输路径中的通信设备的个体标识符直到数据到达数据接收设备1。

如上所述,中继器设备存在于从传输源设备到数据接收设备1的传输路径中。因此,当假定数据接收设备1是最高层级的通信设备并且传输源设备是最低层级的通信设备时,传输路径中的通信设备配置层级结构。这里,当假定数据接收设备1是第0层级的通信设备时,直接向数据接收设备1传输数据的通信设备可以被称为第一层级的通信设备。此外,当来自传输源设备的数据通过p个中继器设备到达数据接收设备1(p是正整数)时,该传输源设备可以被称为第(p+1)层级的通信设备。

标识符提取单元4从由接收单元3接收的列表中提取数据的传输路径中的每个层级的通信设备的个体标识符。标识符提取单元4可以通过任意方法从列表中提取个体标识符。例如,预先确定每个层级的通信设备的个体标识符的长度(即,比特长度);因此,标识符提取单元4可以基于预先确定的长度从列表中提取每个个体标识符。

伪随机函数处理单元5通过使用预定的伪随机函数执行算术运算来导出秘密密钥。在由mac生成函数处理单元6执行的处理中使用导出的秘密密钥。mac生成函数处理单元6通过使用预定的mac生成函数执行算术运算来生成mac。

伪随机函数处理控制器7控制由伪随机函数处理单元5执行的处理。具体地,伪随机函数处理控制器7执行控制以通过向伪随机函数处理单元中输入目的地设备密钥和第一层级通信设备的提取的个体标识符来导出秘密密钥。伪随机函数处理控制器7执行控制以通过向伪随机函数处理单元5中输入导出的秘密密钥和第k层级的通信设备的提取的个体标识符来递归地导出秘密密钥(这里,k是在2和n之间的正整数(包括2和n),并且n是提取的个体标识符的数目)。以这种方式,伪随机函数处理控制器7执行控制以生成与从第一层级到第n层级的每个通信设备的个体标识符相对应的秘密密钥。

mac生成函数处理控制器8控制mac生成函数处理单元6的处理。具体地,mac生成函数处理控制器8执行控制以通过向mac生成函数处理单元中输入由接收单元3接收的数据和与第n层级通信设备的提取的个体标识符相对应的秘密密钥来导出mac。mac生成函数处理控制器8执行控制以通过向mac生成函数处理单元6中输入导出的mac和与第m层级通信设备的提取的个体标识符相对应的秘密密钥来递归地导出mac(这里,m是在1到n-1之间的正整数(包括性的))。以这种方式,mac生成函数处理控制器8执行控制以生成与从第n层级到第一层级的每个通信设备相对应的mac。

比较器9将由接收单元3接收的mac与由mac生成函数处理单元6生成的与第一层级通信设备相对应的mac相比较。

当数据接收设备1接收到伪造数据时,适当的数据没有被输入到mac生成函数处理单元6。因此,由接收单元3接收的mac与由mac生成函数处理单元6生成的与第一层级通信设备相对应的mac不同。

另外,当数据接收设备1接收到伪造的mac时,适当的mac没有被输入到mac生成函数处理单元6。因此,由接收单元3接收的mac与由mac生成函数处理单元6生成的与第一层级通信设备相对应的mac不同。

此外,当数据接收设备1接收到伪造的个体标识符列表时,适当的个体标识符没有被输入到伪随机函数处理单元5。因此,没有生成适当的秘密密钥。因此,适当的秘密密钥没有被输入到mac生成函数处理单元6。因此,由接收单元3接收的mac与由mac生成函数处理单元6生成的与第一层级通信设备相对应的mac不同。

因此,当比较器9确定两个mac一致时,这表示正确的数据已经沿着正确的路径传输。当比较器9确定两个mac不一致时,这表示数据已经被伪造或者数据没有沿着正确的路径传输。因此,根据数据接收设备1,可以验证传输的数据是否未被伪造以及数据是否沿着正确的路径传输。

<实施例1>

接着,说明实施例的细节。图2是示出根据实施例1的数据传输系统10的网络配置的示例的示意图。数据传输系统10在由多个通信设备组成的网络中通过使用多跳通信来传输数据(也称为消息)。

在数据传输系统10中,网络被配置为具有通信设备100_0的树的形状,通信设备100_0最终作为最高顺序的节点接收传输数据。换言之,在数据传输系统10中,通信路径以树的形状耦合。一个或多个通信设备通信地耦合到作为最高顺序的节点的通信设备100_0。在图2所示的示例中,通信设备100_0通信地耦合到通信设备100_1a、100_1b和100_1c。通信地耦合到通信设备100_0的通信设备分别通信地耦合到没有一个或者一个或多个通信设备。在图2所示的示例中,通信设备100_2a、100_2b和100_2c耦合到通信设备100_1b。在数据传输系统10的网络配置中,可以以上述方式耦合更多的通信设备。在图2所示的示例中,通信设备100_3a和100_3b耦合到通信设备100_2b。在数据传输系统10中,通信设备可以通过使用无线通信或通过使用有线通信相互通信。

以这种方式,在数据传输系统10中,通信设备以层级方式通信地耦合。在图2所示的示例中,作为最高顺序的节点的通信设备100_0与三个层级的网络耦合。然而,层级的数目是示例,并且不用说,实施例不限于本示例。当前耦合到每个通信设备的通信设备的数目也是示例,并且不用说,实施例不限于本示例。

在以下说明中,直接通信地耦合到作为最高顺序的节点的通信设备100_0的通信设备(即,图2所示的示例中的通信设备100_1a、100_1b和100_1c)被称为第一层级的通信设备。直接通信地耦合到第一层级的通信设备的较低顺序的通信设备(即,图2所示的示例中的通信设备100_2a、100_2b和100_2c)被称为第二层级的通信设备。类似地,直接通信地耦合到第(n-1)层级的通信设备的较低顺序的通信设备被称为第n层级的通信设备。配置数据传输系统10的通信设备可以不加区分地统称为通信设备100。

如上所述,在数据传输系统10中,通过使用多跳通信来传输数据。因此,数据传输系统10包括作为数据传输源的通信设备的传输源设备、作为中继数据传输的通信设备的中继器设备、和作为接收数据的通信设备的数据接收设备(数据传输目的地的通信设备)。然后,数据接收设备经由中继器设备接收由传输源设备传输的数据。

在图2所示的数据传输系统10中,通信设备100_3a、100_3b、100_2a、100_2c、100_1a和100_1c例如是传输源设备。同样,在图2所示的数据传输系统10中,通信设备100_2b和100_1b例如是中继器设备。在图2所示的数据传输系统10中,通信设备100_0是数据接收设备。也就是说,通信设备100_0对应于上述数据接收设备1。

例如,作为数据接收设备的通信设备100_0是具有相对较高计算能力的计算机,诸如群和服务器。例如,作为中继器设备或传输源设备的通信设备(而不是通信设备100_0)是具有相对较低计算能力的电子设备,诸如半导体设备和嵌入式设备。

在数据传输系统10中,本地id被指派给作为传输源设备或中继器设备的通信设备100。这里,本地id是用于识别通信设备100的上述个体标识符。本地id(个体标识符)可以唯一地指定直接耦合到同一通信设备100的较低顺序的通信设备100。因此,本地id(个体标识符)可以不是可以唯一地指定数据传输系统10中的通信设备100的标识符。例如,相互不同的本地id被指派给作为同一通信设备100_1b的紧接的较低顺序的通信设备的通信设备100_2a、100_2b和100_2c。例如,通信设备100_2a的本地id和通信设备100_3a的本地id可以相同。

例如,本地id可以是通信设备100的ip地址,可以是通信设备100的序列号,或者可以是通信设备100的生产号。在本实施例中,本地id被定义为与稍后描述的导出密钥设置值不同的值。例如,导出密钥设置值为0。因此,例如,大于0的整数用于本地id。每个层级的本地id的长度可以自由设置。然而,如上所述,假定本地id的比特数是a,由特定通信设备控制的较低顺序的节点的最大数目不应当超过2a。在本实施例中,本地id被定义为与导出密钥设置值不同的值。因此,实际上,由某个通信设备控制的较低顺序的节点的最大数目不会超过2a-1。以这种方式,与本地id的长度相比,允许指数数目的通信设备参与网络。

被指派本地id(个体标识符)的通信设备100具有层级标识符。层级标识符唯一地与被指派本地id(个体标识符)的每个通信设备100相关联。层级标识符包括与所涉及的层级标识符相关联的通信设备100的本地id(个体标识符)与来自所涉及的通信设备100的预定数据传输路径中的每个通信设备100的本地id(个体标识符)的组合。具体地,例如,层级标识符包括与传输路径中的顺序相对应地布置的这些本地id。也就是说,层级标识符包括在从特定通信设备100到数据接收设备的预定数据传输路径中的通信设备100的个体标识符的组合。在下文中,层级标识符被称为层级id。

这里,通过具体示例说明层级id。当通信设备100_1b的本地id是id1,通信设备100_2b的本地id是id2,并且通信设备100_3a的本地id是id3时,如图2所示,通信设备100_3a的层级id是{id1,id2,id3},并且通信设备100_2b的层级id是{id1,id2}。通信设备100_1b的层级id变为与通信设备100_1b的本地id相同。以这种方式,通过网络耦合到通信设备100_0的通信设备100可以由层级id唯一地指定。

这里,详细说明通信设备100的配置。

首先,说明作为数据接收设备的通信设备100(图2所示的示例中的通信设备100_0)的配置。图3是示出作为数据接收设备的通信设备100的配置的示例的框图。作为数据接收设备的通信设备100包括接收器201、发射器202、密钥生成设备203和验证设备204。

接收器201对应于上述接收单元3,并且包括接收从其他通信设备100传输的信息的接收电路。发射器202包括向其他通信设备100传输信息的发射电路。接收器201和发射器202可以包括一个发射器/接收器。接收器201可以被称为接收单元,发射器202可以被称为发射单元。

接收器201经由中继器设备接收作为传输目标的数据、传输源设备和中继器设备的本地id的列表、和由中继器设备生成的mac。这里,列表指示重复路径,并且当在正确的重复路径中执行传输时,列表与传输源设备的层级id一致。发射器202传输由密钥生成设备203生成的秘密密钥。

密钥生成设备203生成要指派给传输源设备和中继器设备的秘密密钥。密钥生成设备203基于层级id为传输源设备的通信设备100和中继器设备的通信设备100生成秘密密钥。发射器202将所生成的秘密密钥传输到传输源设备的通信设备100和中继器设备的通信设备100。当数据接收设备具有关于传输源设备和中继器设备中的每个的层级id的信息时,数据接收设备使用每个层级id为每个通信设备100生成秘密密钥。例如,当数据接收设备确定每个通信设备100的本地id时,数据接收设备知道每个通信设备100的层级id。与此相反,例如,在中继器设备确定被添加到网络的较低顺序的通信设备100的本地id的情况下,当向数据接收设备通知较低顺序的通信设备100的层级id时,数据接收设备为所涉及的较低顺序的通信设备100生成秘密密钥。发射和/或接收秘密密钥的通信应当在不进行伪造和窃听的环境中执行。

验证设备204验证传输到作为数据接收设备的通信设备100的消息。当接收器201从中继器设备接收到消息、mac和本地id列表(对应于传输源设备的层级id)时,验证设备204验证消息是否有效以及消息是否已经经由正确的中继器设备传输。稍后将描述密钥生成设备203和验证设备204的细节。

接着,说明作为传输源设备的通信设备100的配置(在图2所示的示例中,通信设备100_3a、100_3b、100_2a、100_2c、100_1a和100_1c)。图4是示出作为传输源设备的通信设备100的配置的示例的框图。作为传输源设备的通信设备100包括接收器301、发射器302和认证生成设备303。

接收器301包括接收从其他通信设备100传输的信息的接收电路。发射器302包括向其他通信设备100传输信息的发射电路。接收器301和发射器302可以包括一个发射器/接收器。接收器301可以被称为接收单元,并且发射器302可以被称为发射单元。

认证生成设备303生成对消息的认证,并且具体地生成mac。认证生成设备303包括伪随机函数处理单元311、伪随机函数处理控制器312、mac生成函数处理单元321和mac生成函数处理控制器322。认证生成设备303生成秘密密钥(下文中称为导出密钥),这个导出密钥是使用由数据接收设备生成的秘密密钥从伪随机函数处理单元311涉及的秘密密钥导出的。然后,使用导出密钥,认证生成设备303通过mac生成函数处理单元321计算关于作为传输目标的数据的消息的mac。

伪随机函数处理单元311通过使用预定的伪随机函数执行算术运算来导出秘密密钥(导出密钥)。预定的伪随机函数输入秘密密钥和任意长度的值,并且输出从密码学的角度不能与随机数区分的任意长度的值。在伪随机函数中,当用预定的秘密密钥输入相同的消息时,函数的输出总是相同的。基于公共密钥加密或散列函数的密钥导出函数和利用具有证明的安全性的取幂算法的密钥导出函数中的任何一个可以用作伪随机函数。此外,在稍后描述的伪随机函数处理单元411和伪随机函数处理单元211中,使用与伪随机函数处理单元311中使用的相同的伪随机函数。

伪随机函数处理控制器312执行控制以通过向伪随机函数处理单元311中输入被指派给所涉及的传输源设备的秘密密钥和导出密钥设置值来生成对于所涉及的传输源设备唯一的秘密密钥。导出密钥设置值是预定值,并且例如是0。同样,在稍后描述的伪随机函数处理单元411中,使用与伪随机函数处理单元311中使用的相同的导出密钥设置值。此外,在稍后描述的伪随机函数处理单元211中,当输入导出密钥设置值时,使用与伪随机函数处理单元311中使用的相同的导出密钥设置值。在本实施例中,输入到伪随机函数处理单元311的秘密密钥是由数据接收设备的密钥生成设备203的伪随机函数处理单元211(稍后描述)生成的密钥。接收器301接收由密钥生成设备203生成的秘密密钥,并且伪随机函数处理单元311使用该接收的秘密密钥生成导出密钥。

mac生成函数处理单元321通过使用预定的mac生成函数执行算术运算来生成mac。预定的mac生成函数利用公共密钥加密或散列函数生成mac(消息认证码)。诸如基于公共密钥加密的cmac(基于密码的mac)和基于散列函数的hmac(基于散列的mac)等任何方法可以用作mac生成函数,只要其安全性导出证实。此外,在mac生成函数处理单元421和mac生成函数处理单元221(稍后描述)中,使用与mac生成函数处理单元321中使用的相同的伪随机函数。

mac生成函数处理控制器322执行控制以通过向mac生成函数处理单元321中输入作为传输目标的数据(消息)和对于所涉及的传输源设备唯一的秘密密钥来生成关于数据的mac。在本实施例中,mac生成函数处理控制器322向mac生成函数处理单元321中输入由伪随机函数处理单元311生成的秘密密钥(导出密钥)作为对于所涉及的传输源设备唯一的秘密密钥。由于作为传输目标的数据被输入到mac生成函数处理单元321,因此具有任意长度值的消息被输入。

发射器302向作为所涉及的传输源设备的较高顺序的节点的中继器设备传输作为传输目标的数据的消息、由mac生成函数处理单元321生成的mac、和所涉及的传输源设备的本地id。

接着,说明作为中继器设备的通信设备100的配置(图2所示的示例中的通信设备100_2b和100_1b)。图5是示出作为中继器设备的通信设备100的配置的示例的框图。作为中继器设备的通信设备100包括接收器401、发射器402和认证生成设备403。

接收器401包括接收从其他通信设备100传输的信息的接收电路。发射器402包括向其他通信设备100传输信息的发射电路。接收器401和发射器402可以包括一个发射器/接收器。接收器401可以被称为接收单元,并且发射器402可以被称为发射单元。

当中继数据传输时,接收器401接收作为传输目标的数据、mac、和通信设备100的个体标识符。

与认证生成设备303的情况一样,认证生成设备403生成对消息的认证,并且具体地生成mac。认证生成设备403包括伪随机函数处理单元411、伪随机函数处理控制器412、mac生成函数处理单元421和mac生成函数处理控制器422。认证生成设备403使用由数据接收设备生成的秘密密钥来从伪随机函数处理单元411涉及的秘密密钥生成导出密钥。然后,使用导出密钥,认证生成设备403通过mac生成函数处理单元421计算关于由接收器401接收的mac的mac。

与伪随机函数处理单元311的情况一样,伪随机函数处理单元411通过使用预定的伪随机函数执行算术运算来导出秘密密钥(导出密钥)。伪随机函数处理控制器412执行控制以通过向伪随机函数处理单元411中输入被指派给所涉及的中继器设备的秘密密钥和导出密钥设置值来生成对于所涉及的中继器设备唯一的秘密密钥。在本实施例中,输入到伪随机函数处理单元411的秘密密钥是由数据接收设备的密钥生成设备203的伪随机函数处理单元211(稍后描述)生成的秘密密钥。

与mac生成函数处理单元321的情况一样,mac生成函数处理单元421通过使用预定的mac生成函数执行算术运算来生成mac。mac生成函数处理控制器422执行控制以向通过mac生成函数处理单元421中输入由接收器401接收的mac和对于所涉及的中继器设备唯一的秘密密钥来生成关于由接收器401接收的mac的mac。在本实施例中,mac生成函数处理控制器422向mac生成函数处理单元421中输入由伪随机函数处理单元411生成的秘密密钥。由接收器401接收的mac被输入到mac生成函数处理单元421作为消息。因此,作为消息被输入到mac生成函数处理单元421的值的比特长度变为要计算的mac的比特长度。

发射器402向作为较高顺序的节点的通信设备(即,另一中继器设备或数据接收设备)传输将作为传输目标的数据的消息、由mac生成函数处理单元421生成的mac、所涉及的中继器设备的本地id、和由接收器401接收的本地id。当直接向所涉及的中继器设备传输消息的通信设备100是中继器设备时,所涉及的中继器设备的接收器401从传输源设备向所涉及的中继器设备接收关于通信设备100的多个本地id。因此,在这种情况下,发射器402向作为较高顺序的节点的通信设备传输所接收的多个本地id的组以及所涉及的中继器设备的本地id。

接着,说明数据接收设备的密钥生成设备203和验证设备204的细节。图6是示出作为数据接收设备的通信设备100的详细配置的示例的框图。如图6所示,作为验证设备204的配置,作为数据接收设备的通信设备100包括秘密密钥存储单元230、层级分离单元240、伪随机函数处理单元211、伪随机函数处理控制器212、mac生成函数处理单元221、mac生成函数处理控制器222和比较器250。这里,密钥生成设备203包括秘密密钥存储单元230、层级分离单元240、伪随机函数处理单元211和伪随机函数处理控制器212。

秘密密钥存储单元230对应于上述秘密密钥存储单元2,并且存储目的地设备密钥作为预先确定的预定秘密密钥。秘密密钥存储单元230由诸如安全存储装置等任意安全存储器设备实现。目的地设备密钥是数据接收设备具有的密钥。指派给传输源设备和中继器设备的秘密密钥是基于目的地设备密钥而生成的。

层级分离单元240如下操作。当生成用于分发给传输源设备和中继器设备的秘密密钥时,即,当层级分离单元240用作密钥生成设备203的一部分时,层级分离单元240作为秘密密钥的分发目标的通信设备100的层级id中提取传输路径中的每个层级的通信设备100的本地id。例如,当秘密密钥的分发目标是图2所示的通信设备100_3a时,层级分离单元240从通信设备100_3a的层级id中提取id3、id2和id1。以这种方式,当作为秘密密钥的分发目标的通信设备100是网络中的第n层级的通信设备时,层级分离单元240提取从第一层级的通信设备100到第n层级的通信设备100的n个本地id。

层级分离单元240还如下提取本地id。当执行来自传输源设备的数据传输时,即,当层级分离单元240用作验证设备204的一部分时,层级分离单元240从由接收器201接收的本地id列表中提取数据的传输路径中的每个层级中的通信设备100的本地id。如上所述,当传输源设备和中继器设备向较高顺序的通信设备传输数据时,自身设备的本地id被添加到作为传输目标的信息。因此,数据接收设备的接收器201接收传输路径中的每个通信设备100的本地id的列表(即,从传输源设备到数据接收设备的每个层级的通信设备100)。层级分离单元240从接收的列表中分离和提取每个层级的本地id。层级分离单元240针对每个层级分离与本地id的长度相对应的接收列表,并且提取每个本地id。以这种方式,当接收到n个本地id的列表时,层级分离单元240提取从第一层级的通信设备100到第n层级的通信设备100的n个本地id。

层级分离单元240对应于上述标识符提取单元4。

与伪随机函数处理单元311的情况一样,伪随机函数处理单元211通过使用预定的伪随机函数执行算术运算来导出秘密密钥。伪随机函数处理单元211的处理由伪随机函数处理控制器212控制。伪随机函数处理单元211对应于上述伪随机函数处理单元5。伪随机函数处理控制器212对应于上述伪随机函数处理控制器7。

当伪随机函数处理控制器212生成用于分发给传输源设备和中继器设备的秘密密钥时,即,当伪随机函数处理控制器212用作密钥生成设备203的一部分时,伪随机函数处理控制器212通过从较高顺序的层级顺序地向伪随机函数处理单元211中输入由层级分离单元240提取的本地id来执行递归控制。具体地,伪随机函数处理控制器212执行以下控制。

伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入目的地设备密钥和第一层级的通信设备100的提取的本地id来导出秘密密钥。伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入由此导出的秘密密钥和第k层级的通信设备100的导出的本地id来递归地导出秘密密钥(k是在2和n之间的正整数(包括2和n),并且n是由层级分离单元240提取的本地id的数目)。

伪随机函数处理控制器212首先执行控制以通过使用目的地设备密钥和第一层级的本地id来导出与第一层级的本地id相对应的秘密密钥,并且然后执行控制以通过使用通过使用第(k-1)层级的本地id和第k层级的本地id而导出的秘密密钥重复该处理以导出与第k层级的本地id相对应的秘密密钥。

因此,伪随机函数处理控制器212执行控制以生成作为秘密密钥的分发目标的第n层级的通信设备100的预定秘密密钥。

图7是示出上述密钥生成设备203中的处理流程的示意图。在图7中,{id}指示作为秘密密钥的分发目标的通信设备100的层级id。id1、id2、......、idn指示本地id,并且其索引指示本地id对应于哪个层级的通信设备100。例如,id1指示第一层级的通信设备100的本地id,并且idn指示第n层级的通信设备100的本地id。sk指示数据接收设备具有的目的地设备密钥。sk1、sk2、......、skn指示秘密密钥,并且其索引指示秘密密钥对应于要分发给哪个层级的通信设备100的秘密密钥。如图7所示,密钥生成设备203通过使用秘密密钥和从第n层级的通信设备100的层级id中提取的本地id重复伪随机函数的处理来生成要分发给具有输入的层级id的通信设备100的秘密密钥。

接着,下面说明当执行来自传输源设备的数据传输时伪随机函数处理控制器212的控制。当执行来自传输源设备的数据传输时,即,当伪随机函数处理控制器212用作验证设备204的一部分时,伪随机函数处理控制器212通过从较高顺序的层级顺序地向伪随机函数处理单元211中输入由层级分离单元240提取的本地id来执行递归控制。具体地,伪随机函数处理控制器212执行以下控制。

伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入目的地设备密钥和第一层级的通信设备100的提取的本地id来导出秘密密钥。伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入由此导出的密钥和第k层级的通信设备100的提取的本地id以递归地导出秘密密钥来生成与从第一层级到第n层级的每个通信设备100的本地id相对应的秘密密钥(k是在2到n之间的正整数(包括性的),并且n是提取的本地id的数目)。

也就是说,与用作密钥生成设备203的一部分的情况一样,用作验证设备204的一部分的伪随机函数处理控制器212首先执行控制以通过使用目的地设备密钥和第一层级的本地id来导出与第一层级的本地id的相对应的秘密密钥,然后执行控制以通过使用通过使用第(k-1)层级的本地id和第k层级的本地id而导出的秘密密钥重复该处理以导出与第k层级的本地id相对应的秘密密钥。

以这种方式,当用作验证设备204的一部分时,伪随机函数处理控制器212从接收的信息中恢复已经分发给通信设备100的秘密密钥。

这里,在本实施例中,传输源设备和中继器设备从数据接收设备如上所述分发的秘密密钥来生成导出密钥。因此,验证设备204必须再现导出密钥。因此,在本实施例中,当用作验证设备204的一部分时,伪随机函数处理控制器212通过从较高顺序的层级顺序地向伪随机函数处理单元211中输入由层级分离单元240提取的本地id来执行递归控制,如下所述。

当接收器201接收数据、列表和由中继器设备生成的mac时,伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入目的地设备密钥和第一层级的通信设备100的提取的本地id来导出临时秘密密钥。该临时秘密密钥对应于密钥生成设备203生成的秘密密钥(即,作为导出密钥的源的密钥)。然后,伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入该临时秘密密钥和导出密钥设置值来导出真实秘密密钥。该真实秘密密钥对应于导出密钥。也就是说,导出密钥在验证设备204中再现。伪随机函数处理控制器212执行控制以通过向伪随机函数处理单元211中输入导出的临时秘密密钥和第k层级的通信设备100的提取的本地id来递归地导出临时秘密密钥和真实秘密密钥(k是在2和n之间的正整数(包括2和n),并且n是提取的本地id的数目)。

也就是说,伪随机函数处理控制器212首先执行控制以通过使用目的地设备密钥和第一层级的本地id来导出与第一层级的本地id相对应的秘密密钥,然后执行控制以通过使用秘密密钥和导出密钥设置值来导出与第一层级的本地id相对应的导出密钥。然后,伪随机函数处理控制器212首先执行控制以通过使用通过使用第(k-1)层级的本地id和第k层级的本地id而导出的秘密密钥来导出对应于第k层级的本地id的秘密密钥,然后执行控制以通过使用秘密密钥和导出密钥设置值重复该处理以导出与第k层级的本地id相对应的导出密钥。

因此,伪随机函数处理控制器212执行控制以生成与从第一层级到第n层级的每个通信设备100的本地id相对应的真实秘密密钥(即,导出密钥)。

与mac生成函数处理单元321的情况一样,mac生成函数处理单元221通过使用预定的mac生成函数执行算术运算来生成mac。mac生成函数处理单元221中的处理由mac生成函数处理控制器222控制。mac生成函数处理单元221对应于上述mac生成函数处理单元6。mac生成函数处理控制器222对应于上述mac生成函数处理控制器8。

mac生成函数处理控制器222执行控制以通过向mac生成函数处理单元221中输入由接收器201接收的数据(消息)和与第n层级的通信设备100的提取的本地id相对应的秘密密钥来导出mac。mac生成函数处理控制器222执行控制以通过向mac生成函数处理单元221中输入由此导出的mac和与第m层级的通信设备100的提取的本地id相对应的秘密密钥来递归地导出mac(m是在1和n-1之间的正整数(包括1和n-1))。

也就是说,mac生成函数处理控制器222通过使用传输的数据和由伪随机函数处理单元211生成并且对应于第n层级的通信设备100(即,被估计为传输源设备的通信设备100)的秘密密钥(具体地,作为与导出密钥相对应的密钥的真实秘密密钥)来再现由第n层级的通信设备100生成的mac。随后,mac生成函数处理控制器222执行控制以通过使用关于第(m+1)层级的通信设备100而再现的mac以及与第m层级的通信设备100相对应的秘密密钥(具体地,作为与导出密钥相对应的密钥的真密钥)来重复处理以再现由第m层级的通信设备100生成的mac。

因此,mac生成函数处理控制器222执行控制以生成与从第n层级到第一层级的每个通信设备100相对应的mac。

比较器250对应于上述比较器9。比较器250将由接收器201接收的mac与由mac生成函数处理单元221生成的与第一层级的通信设备100相对应的mac相比较。比较器250输出比较结果。当正确的数据沿着正确的路径传输时,两个mac一致。当数据被伪造或数据未沿着正确的路径传输时,两个mac不一致。

图8是示出验证设备204中的上述处理流程的示意图。在图8中,{id}是由接收器201利用传输的数据(消息)接收的本地id的列表。id1、id2、......、idn指示本地id,并且其索引指示本地id对应于哪个层级的通信设备100。sk指示目的地设备密钥。sk1、sk2、......、skn指示秘密密钥,并且其索引指示秘密密钥对应于哪个层级的通信设备100。sk1、sk2、......、skn对应于上述临时秘密密钥,并且利用导出密钥设置值(在图8所示的示例中为0)输入伪随机函数。因此,为mac生成函数生成和提供真密钥(导出密钥)。在图8中,m指示传输的消息,即数据。s1_1、s1_2、......、s1_n指示由mac生成函数处理单元221输出的mac,并且其索引指示mac对应于哪个层级的通信设备100。s1是由第一层级的通信设备100生成并且由接收器201利用传输的数据(消息)接收的mac。b指示比较器250的比较结果。

如图8所示,验证设备204再现当数据从传输源设备传输到数据接收设备时执行的认证生成,并且验证设备204生成mac。然后,验证设备204通过将生成的mac与接收的mac相比较来验证是否接收到了正确的数据以及数据是否沿着正确的路径传输。

接着,说明数据传输系统10的操作。首先,说明初始设置。图9是示出数据传输系统10中的初始设置的操作流程的示例的流程图。该初始设置在不执行恶意攻击者的敲击的环境中执行。

首先,在步骤100(s100),密钥生成设备203生成要分发给传输源设备和中继器设备的秘密密钥。当密钥生成设备203生成秘密密钥时,需要层级id。本地id被预先指派给作为中继器设备的通信设备100和作为传输源设备的通信设备100。当已经确定了层级id时,每个通信设备100经由较高顺序的节点的通信设备100将层级id传输到作为数据接收设备的通信设备100。当生成秘密密钥时,密钥生成设备203获取作为秘密密钥的分发目的地的通信设备100的层级id就足够了。不用说,不仅可以采用上述方法而且可以采用其他任意方法作为层级id的获取方法。

当没有为通信设备100指派本地id时,将除了导出密钥设置值之外的预定长度的值指派给所涉及的通信设备100作为本地id。例如,当通信设备100被新添加到已经被指派本地id的中继器设备的较低顺序位置时,作为与所涉及的中继器设备执行直接通信的较低顺序的节点,该中继器设备可以新发出本地id,并且可以将其指派给所涉及的较低顺序的节点。此时,中继器设备发出本地id,使得它不会与已经指派给与所涉及的中继器设备执行直接通信的其他较低顺序的节点的本地id重复。这用于使得能够通过层级id唯一地指定网络中的通信设备100。作为向每个通信设备100指派未重复的本地id的方法,可以按顺序指派值,如1、2和3,或者可以指派从足够长的比特长度(例如,128比特)中随机选择的值。数据接收设备可以执行本地id的指派,或者特定的中继器设备可以为所有较低顺序的节点执行本地id的指派。

当作为数据接收设备的通信设备100的接收器201接收到层级id时,密钥生成设备203使用层级id和目的地设备密钥生成与层级id相对应的秘密密钥。假定输入到密钥生成设备203的层级id是{id1,id2,id3,......,idn}。层级分离单元240提取每个层级的本地id。伪随机函数处理控制器212将sk作为秘密密钥输入到伪随机函数中,将id1作为第一层级的本地id作为消息输入,并且获取sk1。接着,伪随机函数处理控制器212将sk1作为秘密密钥输入到伪随机函数中,将id2作为第二层级的本地id作为消息输入,并且获取sk2。伪随机函数处理控制器212递归地重复该处理,并且最终将skn-1作为秘密密钥输入到伪随机函数中,将idn作为第n层的本地id作为消息输入,并且获取skn。然后,伪随机函数处理控制器212输出该skn作为所涉及的层级id的秘密密钥。

在初始设置中,步骤101的处理在步骤100之后执行。在步骤101(s101),分发由密钥生成设备203生成的秘密密钥。作为数据接收设备的通信设备100的发射器202从密钥生成设备203获取skn,并且然后将skn传输到与所涉及的层级id相对应的通信设备100。skn的传输可以经由作为中继器设备的通信设备100来执行。初始设置在步骤101结束时完成。在初始设置之后,传输源设备和中继器设备的所有通信设备100最终都具有本地id和秘密密钥。

在上文中,说明了秘密密钥的生成操作。在上述说明中,要分发的秘密密钥由作为数据接收设备的通信设备100生成。然而,数据接收设备还可以将用于较低顺序的节点的秘密密钥的生成委托给中继器设备。在这种情况下,作为中继器设备的通信设备100仅需要具有与上述密钥生成设备203相同的配置。图10是示出当作为中继器设备的通信设备100生成用于较低顺序的节点的密钥时中继器设备的配置的示例的框图。

图10所示的配置与图5所示的配置不同之处在于,包括层级分离单元430。层级分离单元430也称为标识符提取单元。在图10所示的中继器设备中,密钥生成设备404包括层级分离单元430、伪随机函数处理单元411和伪随机函数处理控制器412。

层级分离单元430从目标设备到中继器设备的紧接的较低顺序的通信设备100的当前id的列表中提取每个层级的通信设备100的本地id。具体地,该目标设备指示所涉及的中继器设备的较低顺序的通信设备100以及作为秘密密钥的分发目标的通信设备100。中继器设备的紧接的较低顺序的通信设备100指示可以与中继器设备执行直接通信的较低顺序的通信设备100。图2所示的通信设备100_1b生成要分发给通信设备100_3a的秘密密钥的情况作为示例进行说明。假定通信设备100_2b的本地id是id2,并且通信设备100_3a的本地id是id3。通信设备100_1b的层级分离单元430从本地id的列表{id2,id3}中提取id2和id3作为每个层级的通信设备100的本地id。

在图10所示的中继器设备中,除了上述用于生成自身设备的导出密钥的控制之外,伪随机函数处理控制器412执行以下控制以生成要分发给较低顺序的通信设备100的秘密密钥。也就是说,伪随机函数处理控制器412通过从较高顺序的层级顺序地向伪随机函数处理单元411中输入由层级分离单元430提取的本地id来执行递归控制。具体地,伪随机函数处理控制器412执行以下控制。

伪随机函数处理控制器412执行控制以通过向伪随机函数处理单元411中输入对于所涉及的中继器设备唯一的秘密密钥和当从所涉及的中继器设备观察时的第一层级的通信设备100的提取的本地id来导出秘密密钥。伪随机函数处理控制器412执行控制以通过向伪随机函数处理单元411中输入导出的秘密密钥和当从所涉及的中继器设备观察时的第k层级的通信设备100的提取的本地id来递归地导出秘密密钥(k是在2到n之间的正整数(包括性的),并且n是由层级分离单元430提取的本地id的数目)。上述唯一秘密密钥是所涉及的中继器设备的导出密钥的源。

伪随机函数处理控制器412首先执行控制以通过使用指派给所涉及的中继器设备的秘密密钥和紧接的较低顺序的通信设备100(第一层级的通信设备100)的本地id来导出与第一层级的本地id相对应的秘密密钥,并且然后执行控制以通过使用通过使用第(k-1)层级的本地id和第k层级的本地id而导出的秘密密钥重复该处理以导出与第k层级的本地id相对应的秘密密钥。

因此,伪随机函数处理控制器412执行控制以生成作为秘密密钥的分发目标的较低顺序的通信设备100的秘密密钥。因此,在这种情况下,较低顺序的通信设备100最终通过使用基于由伪随机函数处理单元411生成的秘密密钥而生成的秘密密钥(导出密钥)作为唯一秘密密钥来生成mac。

因此,当中继器设备为较低顺序的通信设备100生成秘密密钥时,数据传输系统10如下操作。首先,中继器设备将自己的层级id传输到数据接收设备。然后,中继器设备接收由数据接收设备的密钥生成设备203生成的与所涉及的层级id相对应的秘密密钥。中继器设备将接收的秘密密钥输入到密钥生成设备404中,并且执行与密钥生成设备203中的相同的操作。当中继器设备接收到从较低顺序的节点到所涉及的中继器设备的本地id列表时,层级分离单元430提取本地id。然后,伪随机函数处理控制器412执行控制以使用伪随机函数递归地生成用于较低顺序层级的秘密密钥。

要分发给每个通信设备100的秘密密钥由所涉及的通信设备100的层级id和目的地设备密钥唯一地确定。因此,在由作为最高顺序的节点的数据接收设备进行密钥生成和由中继器设备进行密钥生成的任何一种情况下,为相同的通信设备100生成相同的秘密密钥。这样,对于较低顺序的节点,中继器设备可以生成与数据接收设备生成的秘密密钥相同的秘密密钥。因此,可以将子节点的通信设备动态地添加到网络。

接着,下面说明用于将作为传输目标的数据的消息m从作为传输源设备的通信设备100安全地传输到作为数据接收设备的通信设备100的数据传输系统10的操作。图11是示出数据传输系统10中的传输操作流程的示例的流程图。图12是通过传输源设备与中继器设备之间的传输路径的具体示例示出信息流的示意图。图13是示出图12所示的每个通信设备中的认证生成设备的处理流程的示意图。在下文中,适当地参考图12和图13来说明图11所示的流程图。

在图12中,作为传输源设备的通信设备100被称为通信设备d3,作为通信设备d3的更高顺序的的中继器设备的通信设备100被称为通信设备d2,并且作为通信设备d2的较高顺序的中继器设备并且作为数据接收设备的紧接的较低顺序的节点的通信设备100被称为通信设备d1。假定通信设备d1的本地id是id1,通信设备d2的本地id是id2,并且通信设备d3的本地id是id3。在这种情况下,通信设备d3的层级id是{id1,id2,id3}。还假定秘密密钥sk1从作为数据接收设备的通信设备100分发到通信设备d1,并且通信设备d1将秘密密钥sk1存储在存储器设备(未示出)中。以相同的方式,假定通信设备d2将分发的秘密密钥sk2存储在存储器设备(未示出)中,并且通信设备d3将分发的秘密密钥sk3存储在存储器设备(未示出)中。被包括在通信设备d3中的认证生成设备303被称为认证生成设备d31,被包括在通信设备d2中的认证生成设备403被称为认证生成设备d21,并且被包括在通信设备d1中的认证生成设备403被称为认证生成设备d11。在上述附图标记的前提下,图12示出了在初始设置、认证生成设备的输入输出和节点之间的通信内容之后由通信设备d1、d2和d3保持的值。

当传输消息m时,首先,在步骤200(s200),作为传输源设备的通信设备100生成关于消息m的mac。具体地,首先,传输源设备的认证生成设备303的伪随机函数处理单元311从分发的密钥生成导出密钥。然后,传输源设备的认证生成设备303的mac生成函数处理单元321使用导出密钥生成关于消息m的mac。

当基于图12和图13所示的示例详细说明时,在步骤200,通信设备d3如下操作。通信设备d3将消息m和秘密密钥sk3输入到认证生成设备d31中。在认证生成设备d31中,首先,伪随机函数处理单元311输入sk3作为秘密密钥,输入0作为消息,并且生成导出密钥sk31。接着,mac生成函数处理单元321输入导出密钥sk31作为秘密密钥,输入m作为消息,并且输出mac值s3作为计算结果。

在步骤200之后,处理进行到步骤201(s201)。

在步骤201,向较高顺序的中继器设备传输信息。具体地,传输源设备向较高顺序的中继器设备传输消息m、由认证生成设备303生成的mac值、和传输源设备的本地id。当根据示例详细说明时,通信设备d3的发射器302向通信设备d2传输(m,s3,id3)。

在步骤201之后,处理进行到步骤202(s202)。

在步骤202,中继器设备生成关于接收的mac的mac。具体地,首先,中继器设备的认证生成设备403的伪随机函数处理单元411从指派的秘密密钥生成导出密钥。然后,中继器设备的认证生成设备403的mac生成函数处理单元421使用导出密钥生成关于接收的mac的mac。

当根据示例详细说明时,在步骤202,通信设备d2如下操作。通信设备d2的接收器401从通信设备d3接收(m,s3,id3),并且将mac值s3和秘密密钥sk2输入到认证生成设备d21中。在认证生成设备d21中,首先,伪随机函数处理单元411输入sk2作为秘密密钥,输入0作为消息,并且生成导出密钥sk21。接着,mac生成函数处理单元421输入导出密钥sk21作为秘密密钥,输入mac值s3作为消息,并且输出mac值s2作为计算结果。

在步骤202之后,当所涉及的中继器设备的较高顺序的节点不是数据接收设备时(步骤203(s203)处的否),处理返回到步骤201,并且执行信息到另一中继器设备的传输。具体地,中继器设备向较高顺序的中继器设备传输消息m、由认证生成设备403生成的mac值、所接收的本地id(本地id组)、和所涉及的中继器设备的本地id。当根据示例详细说明时,通信设备d2的发射器402将(m,s2,{id2,id3})传输到通信设备d1。

通信设备d1执行与通信设备d2相同的操作。也就是说,通信设备d1的接收器401从通信设备d2接收(m,s2,{id2,id3}),并且将mac值s2和秘密密钥sk1输入到认证生成设备d11中。在认证生成设备d11中,首先,伪随机函数处理单元411输入sk1作为秘密密钥,输入0作为消息,并且生成导出密钥sk11。接着,mac生成函数处理单元421输入导出密钥sk11作为秘密密钥,输入mac值s2作为消息,并且输出mac值s1作为计算结果。

另一方面,当所涉及的中继器设备的较高顺序的节点是数据接收设备时(步骤203处的是),处理转到步骤204。

在步骤204(s204),中继器设备将信息传送到数据接收设备。具体地,中继器设备向数据接收设备传输消息m、由认证生成设备403生成的mac值、接收的本地id(本地id组)、和所涉及的中继器设备的本地id。当根据示例详细说明时,通信设备d1的发射器402将(m,s1,{id1,id2,id3})传输到作为数据接收设备的通信设备100。

接着,说明作为数据接收设备的通信设备100中的验证操作。图14是示出数据接收设备中的验证操作流程的示例的流程图。当接收器201从中继器设备接收到包括消息m的信息时,数据接收设备执行验证设备204的验证处理,如下所示。

在步骤300(s300),层级分离单元240从由接收器201接收的本地id列表中提取消息m的传输路径中的每个层级的通信设备100的本地id。在上述示例中,接收器201接收{id1,id2,id3},并且这对应于传输源设备的层级id。在该步骤,从本地id列表中,执行n个层级的分离(n是任意整数)以提取n个本地id。在上述示例中,层级分离单元240将本地id列表分成三个层级:id1、id2和id3,并且提取三个本地id。

接着,在步骤301(s301),伪随机函数处理单元211和伪随机函数处理控制器212使用提取的本地id和存储在秘密密钥存储单元230中的目的地设备密钥sk来生成秘密密钥。具体地,伪随机函数处理单元211和伪随机函数处理控制器212设置sk0'=sk并且对于0≤i<n的i执行以下操作。伪随机函数处理控制器212将ski'作为秘密密钥输入输入伪随机函数处理单元211中,输入第(i+1)层级的本地ididi+1作为消息,并且从伪随机函数处理单元211获取ski+1'。当每个接收的本地id与正确的传输路径(即,数据传输系统10中的网络指定的传输路径)中的通信设备100的本地id一致时,此时生成的从sk1'到skn'的值与在正确的传输路径中给予通信设备100的秘密密钥(分发的秘密密钥)一致。

接着,在步骤302(s302),伪随机函数处理单元211和伪随机函数处理控制器212使用在步骤301生成的秘密密钥和导出密钥设置值来生成导出密钥。具体地,伪随机函数处理单元211和伪随机函数处理控制器212对于1≤i≤n的i执行以下操作。伪随机函数处理控制器212将ski'作为秘密密钥输入到伪随机函数处理单元211中,输入0作为消息,并且获取导出密钥ski_1'。当每个接收的本地id与正确的传输路径中的通信设备100的本地id一致时,此时生成的从sk1_1'到skn_1'的值与通信设备100在正确的传输路径中使用以生成mac的导出密钥一致。

接着,在步骤303(s303),mac生成函数处理单元221和mac生成函数处理控制器222使用接收的消息m和在步骤302生成的导出密钥来生成mac。具体地,mac生成函数处理单元221和mac生成函数处理控制器222设置s1_n+1=m并且对于n≥i≥1的i执行以下操作。mac生成函数处理控制器222将ski_1'作为秘密密钥输入到mac生成函数处理单元221中,输入s1_i+1作为消息,并且获取s1_i。当消息m被正确传输时,此时生成的从s1_n到s1_1的每个值与由从数据接收设备到传输源设备的每个层级的通信设备100生成的mac值一致。

接着,在步骤304(s304),比较器250将接收的mac与在步骤303生成的与第一层级的通信设备100相对应的mac相比较。具体地,比较器250将在步骤303生成的s1_1与接收的s1相比较,并且确定两个值是否一致。当两者一致时,比较器250输出输出值b=1,否则输出输出值b=0。这里,当b=1时,表示消息m已经在正确的传输路径中从传输源设备被传输而没有伪造。当b=0时,表示消息m已经被伪造或者已经经由除了正确的传输路径中的通信设备之外的其他通信设备被传输。数据接收设备可以包括基于比较器250的输出值以这种方式确定传输的安全性的确定单元(未示出)。

这里,基于比较器250的比较结果给出对验证的补充说明。当在传输源设备或中继器设备向其他通信设备传输数据的同时消息m被伪造时,在步骤303,适当的输入值没有被输入到mac生成函数处理单元6。因此,只要mac生成函数安全,验证设备204的验证就不成功。

当在传输期间生成的mac值s1、s2、......、sn之一被伪造时,在步骤303,适当的mac没有被输入到mac生成函数处理单元6。因此,只要mac生成函数安全,接收的s1和生成的s1_1不一致,并且验证设备204的验证不成功。

只要伪随机函数安全,由伪随机函数生成的秘密密钥与其他秘密密钥或导出密钥发生冲突的冲突概率(复制概率)取决于密钥的比特数而呈指数地变小。因此,当作为指示数据传输路径的信息的本地id列表被伪造时,在步骤301不生成适当的秘密密钥。因此,适当的秘密密钥没有被输入到mac生成函数处理单元6并且验证设备204的验证不成功。

当需要k比特的安全性时并且当要求伪随机函数的安全性不受大于2-k的概率的影响时,输入到伪随机函数的秘密密钥和从伪随机函数输出的秘密密钥或导出密钥大于k位。当需要k比特的安全性时并且当要求mac生成函数的安全性不受大于2-k的概率的影响时,mac生成函数的输出大于2×k比特。

在上文中,说明了实施例1。如上所述,根据实施例1的数据传输系统10,可以验证传输的数据是否未被伪造以及数据是否沿着正确的路径传输。

此外,如上所述,每个通信设备100的秘密密钥由密钥生成设备203基于目的地设备密钥来生成。因此,数据接收设备控制的秘密密钥仅是目的地设备密钥,而与网络上的节点数目无关。因此,易于管理用作验证设备的设备中的密钥。中继器设备和传输源设备仅需要管理分发的秘密密钥。因此,管理密钥很容易。

具体地,根据实施例1,不是直接从分发的秘密密钥计算mac,传输源设备和中继器设备首先生成导出密钥,并且然后使用该导出密钥计算mac。因此,确保了在加密算法(伪随机函数)中使用不同的秘密密钥来导出秘密密钥,并且在加密算法(mac生成函数)中使用不同的秘密密钥来计算mac。因此,可以实现安全系统。

在实施例1中,示出了其中使用导出密钥生成mac的配置。但是,不一定需要生成导出密钥。也就是说,可以使用分发的秘密密钥生成mac。也就是说,对于传输源设备和中继器设备唯一的秘密密钥仅需要是通过使用预定的伪随机函数执行算术运算而导出的秘密密钥。换言之,对于通信设备唯一的秘密密钥可以表示分发的秘密密钥,并且可以表示从分发的秘密密钥生成的导出密钥。即使在除了本实施例之外的将在后面描述的其他实施例中,也可以不使用导出密钥而是使用分发的秘密密钥来生成mac。当不使用导出密钥时,在传输源设备、中继器设备和数据接收设备中不需要导出密钥的生成操作。当不使用导出密钥并且中继器设备包括上述密钥生成设备404时,伪随机函数处理控制器412执行用于生成用于较低顺序的通信设备的秘密密钥的控制,并且不执行用于生成导出密钥的控制。当不使用导出密钥并且中继器设备包括上述密钥生成设备404时,对于所涉及的中继器设备的较低顺序的通信设备唯一的秘密密钥是由伪随机函数处理单元411生成的秘密密钥。

由数据接收设备接收的用于验证的mac值(s1)的比特长度不依赖于直到传输源设备的层级的深度。因此,当存在s1时,可以同时执行消息m的验证和正确的传输路径的验证。由中继器设备使用mac生成函数进行的计算由固定长度的长度决定,而与消息m的长度无关(即,由较低顺序的节点生成的mac值的长度决定)。因此,计算时间是恒定的。因此,即使当传输源设备输出各种长度的消息时,施加在中继器设备上的负载也是恒定的。

近年来,在包括车载微型计算机领域在内的各种技术领域中,在来自iot设备的传感器数据的传输的情况下,对于保证作为传感器数据的消息不被伪造的技术示出浓厚的兴趣。因此,确保数据已经在正确的路径中传输也很重要。根据实施例1的数据传输系统10可以满足这些需求,以实现有效的密钥管理。中继器设备不计算关于消息m的mac值,而是计算关于从较低顺序的节点接收的mac值的mac值。因此,可以抑制mac值的计算量和相关业务量。

<实施例2>

接着,说明实施例2。根据实施例1,仅数据接收设备执行验证。另一方面,在实施例2中,中继器设备另外执行验证。因此,在实施例2中可以高效地检查mac。下文中,说明与实施例1的不同之处。根据本实施例,传输源设备和中继器设备的操作与实施例1中的不同。

在本实施例中,除了在实施例1中说明的控制之外,作为传输源设备的通信设备100的mac生成函数处理控制器322执行以下控制。mac生成函数处理控制器322执行控制以通过向mac生成函数处理单元321中输入关于由mac生成函数处理单元321生成的数据的mac(即,通过向mac生成函数处理单元321中输入传输目标的数据和密钥而获取的mac)和对于传输源设备唯一的秘密密钥来生成关于由mac生成函数处理单元321生成的mac的mac。在由mac生成函数处理单元321生成的两个mac中,在后的mac被称为第一mac,而在前的mac被称为第二mac。

然后,本实施例的传输源设备的发射器302向中继器设备传输传输目标的数据、由mac生成函数处理单元321基于该数据生成的两个mac、和所涉及的传输源设备的本地id。

接着,说明根据实施例2的中继器设备。图15是示出根据实施例2的中继器设备的配置的示例的框图。作为中继器设备的通信设备100与图15所示的配置的不同之处在于,认证生成设备403被替换为认证生成设备405。认证生成设备405包括伪随机函数处理单元411、伪随机函数处理控制器412、mac生成函数处理单元421、mac生成函数处理控制器422和比较器440。

在本实施例中,作为中继器设备的通信设备100的伪随机函数处理控制器412除了在实施例1中说明的控制之外还执行以下控制。伪随机函数处理控制器412执行控制以通过向伪随机函数处理单元411中输入对于所涉及的中继器设备唯一的秘密密钥和由接收器401接收的本地id中已经执行到所涉及的中继器设备的传输的通信设备100(即,所涉及的中继器设备的紧接的较低顺序的节点的通信设备100)的本地id来生成对于已经执行到所涉及的中继器设备的传输的通信设备100唯一的秘密密钥。

中继器设备的比较器440将由接收器401接收的两个mac中的第一mac与由mac生成函数处理单元421生成的mac相比较。当较低顺序的节点是传输源设备时,较低顺序的节点利用传输目标的数据传输两个mac。另外,当较低顺序的节点是中继器设备时,作为较低顺序的节点的中继器设备利用传输目标的数据传输两个mac,如稍后将描述的。因此,中继器设备的接收器401利用传输目标的数据接收两个mac。

在本实施例中,作为中继器设备的通信设备100的mac生成函数处理控制器422执行控制以通过向mac生成函数处理单元421中输入所涉及的第二mac和对于已经执行到所涉及的中继器设备的传输的通信设备100唯一的秘密密钥来生成关于由接收器401接收的两个mac的第二mac的mac。此时,比较器440将第一mac与关于第二mac的mac相比较。当比较结果表明一致时,mac生成函数处理控制器422执行以下处理。当比较结果未指示一致时,mac生成函数处理控制器422停止以下处理。作为中继器设备的通信设备100的mac生成函数处理控制器422执行控制以通过向mac生成函数处理单元421中输入第一mac和对于所涉及的中继器设备唯一的秘密密钥来生成关于所涉及的第一mac的mac。

在本实施例中,发射器402向较高顺序的通信设备100(即,另一中继器设备或数据接收设备)传输传输目标的数据、第一mac、关于第一mac的mac、所涉及的中继器设备的本地id、和由接收器401接收的本地id。

接着,说明本实施例中的传输操作。图16是示出根据实施例2的数据传输系统的传输操作流程的示例的流程图。图17是通过传输源设备与中继器设备之间的传输路径的具体示例示出信息流的示意图。图18a、图18b和图18c是示出图17所示的通信设备中的认证生成设备的处理流程的示意图。图18a示出了认证生成设备d31,图18b示出了认证生成设备d21,而图18c示出了认证生成设备d11。下文中,适当地参考图17、图18a、18b和18c来说明图16所示的流程图。图17示出了配置(通信设备和认证生成设备)和信息(本地id、秘密密钥、消息和mac),其具有与图12所示的示例中使用的相同的符号。在这种符号的前提下,图17示出了在初始设置、认证生成设备的输入输出和节点之间的通信内容之后由通信设备d1、d2和d3保持的值。本实施例中的初始设置与实施例1的初始设置相同。

当传输消息m时,首先,在步骤220(s220),与图11所示的步骤200的情况一样,作为传输源设备的通信设备100生成关于消息m的mac。具体地,首先,传输源设备的认证生成设备303的伪随机函数处理单元311从分发的密钥生成导出密钥。然后,传输源设备的认证生成设备303的mac生成函数处理单元321使用导出密钥生成关于消息m的mac。

当基于图17、图18a、18b和18c所示的示例详细说明时,在步骤220,在通信设备d3的认证生成设备d31中,伪随机函数处理单元311使用秘密密钥sk3和导出密钥设置值(具体地,0)来生成导出密钥sk31。接着,mac生成函数处理单元321使用导出密钥sk31和消息m输出mac值s4。

在步骤220之后,处理进行到步骤221(s221)。在步骤221,作为传输源设备的通信设备100生成关于在步骤220生成的mac的mac。当基于图17、图18a、18b和18c所示的示例详细说明时,在步骤221,mac生成函数处理单元321输入导出密钥sk31作为秘密密钥并且输入mac值s4作为消息,并且输出mac值s3作为计算结果。

在步骤221之后,处理进行到步骤222(s222)。在步骤222,将信息传送到较高顺序的中继器设备。具体地,传输源设备向较高顺序的中继器设备传输消息m、由认证生成设备303基于消息m生成的两个mac值、和传输源设备的本地id。当根据示例详细说明时,通信设备d3的发射器302将(m,s4,s3,id3)传输到通信设备d2。

在步骤222之后,处理进行到步骤223(s223)。在步骤223,中继器设备生成关于两个接收的mac中的一个mac的mac。具体地,首先,中继器设备的认证生成设备403的伪随机函数处理单元411从分发给自身设备的秘密密钥生成已经传输消息m的较低顺序的节点的秘密密钥。此外,伪随机函数处理单元411从所生成的较低顺序的节点的秘密密钥生成该较低顺序的节点的导出密钥。然后,中继器设备的认证生成设备403的mac生成函数处理单元421使用较低顺序的节点的导出密钥生成关于接收的mac之一的mac。

当根据示例详细说明时,在步骤223,通信设备d2如下操作。通信设备d2的接收器401从通信设备d3接收(m,s4,s3,id3),并且将mac值s4和s3、秘密密钥sk2、和id3输入到认证生成设备d21中。在认证生成设备d21中,首先,伪随机函数处理单元411输入sk2作为秘密密钥并且输入id3作为消息,并且输出计算结果sk32。sk32对应于分发给较低顺序的节点的密钥。接着,伪随机函数处理单元411输入sk32作为秘密密钥,输入0作为消息,并且输出计算结果sk33。sk33对应于较低顺序的节点的导出密钥。接着,mac生成函数处理单元421输入导出密钥sk33作为秘密密钥,输入mac值s4作为消息,并且输出mac值s31作为计算结果。当没有错误时,秘密密钥sk32与通信设备d3的秘密密钥sk3一致,导出密钥sk33与由通信设备d3计算的导出密钥sk31一致,并且mac值s31与由通信设备d3计算的mac值s3一致。

在步骤223之后,处理进行到步骤224(s224)。在步骤224,中继器设备的比较器440将在步骤223生成的mac与接收的两个mac中的另一mac相比较。当根据示例详细说明时,比较器440将在步骤223生成的mac值s31与接收的mac值s3相比较。当mac值一致时(步骤225(s225)处的是),执行步骤226之后的以下处理。然而,当mac值不一致时(步骤225(s225)处的否),中继器设备终止处理。

在步骤226,中继器设备生成关于接收的两个mac中的另一mac的mac。具体地,首先,中继器设备的认证生成设备403的伪随机函数处理单元411从分发的秘密密钥生成导出密钥。然后,中继器设备的认证生成设备403的mac生成函数处理单元421使用导出密钥生成关于接收的mac的mac。

当根据示例详细说明时,在步骤226,通信设备d2如下操作。在认证生成设备d21中,首先,伪随机函数处理单元411输入sk2作为秘密密钥,输入0作为消息,并且生成导出密钥sk21。接着,mac生成函数处理单元421输入导出密钥sk21作为秘密密钥并且输入mac值s3作为消息,并且输出mac值s2作为计算结果。

在步骤226之后,当所涉及的中继器设备的较高顺序的节点不是数据接收设备时(步骤227(s227)处的否),处理返回到步骤222,并且执行信息到另一中继器设备的传输。具体地,中继器设备向较高顺序的中继器设备传输消息m、由认证生成设备403生成的两个mac值、接收的本地id、和所涉及的中继器设备的本地id。当根据示例详细说明时,通信设备d2的发射器402将(m,s3,s2,{id2,id3})传输到通信设备d1。

通信设备d1执行与通信设备d2中的相同的操作。也就是说,通信设备d1的接收器401从通信设备d2接收(m,s3,s2,{id2,id3}),并且将mac值s3和s2、秘密密钥sk1、和id2输入到认证生成设备d11中。在认证生成设备d11中,首先,伪随机函数处理单元411输入sk1作为秘密密钥,输入id2作为消息,并且输出计算结果sk22。接着,伪随机函数处理单元411输入sk22作为秘密密钥,输入0作为消息,并且输出计算结果sk23。接着,mac生成函数处理单元421输入导出密钥sk23作为秘密密钥,输入mac值s3作为消息,并且输出mac值s21作为计算结果。然后,比较器440将mac值s21与接收的mac值s2相比较。当两者一致时,认证生成设备d11使用秘密密钥sk1计算导出密钥sk11,并且最终生成mac值s1作为关于mac值s2的mac。当没有错误时,秘密密钥sk22与通信设备d3的秘密密钥sk2一致,导出密钥sk23与由通信设备d3计算的导出密钥sk21一致,并且mac值s21与由通信设备d3计算的mac值s2一致。

当中继器设备的较高顺序的节点是数据接收设备时(步骤227处的是),处理转到步骤228。在步骤228(s228),中继器设备将信息传送到数据接收设备。具体地,中继器设备向数据接收设备传输消息m、由认证生成设备403生成的两个mac值、接收的本地id、和所涉及的中继器设备的本地id。当根据示例详细说明时,通信设备d1的发射器402将(m,s2,s1,{id1,id2,id3})传输到作为数据接收设备的通信设备100。通信设备d1可以不传输s2。在上文中,说明了实施例2中的传输操作。数据接收设备中的验证操作与实施例1中的相同。因此,当基于上述示例进行说明时,数据接收设备使用从通信设备d1接收的(m,s1,{id1,id2,id3})根据图14所示的流程执行验证处理。

在上文中,说明了实施例2。实施例2采用其中中继器设备可以执行从较低顺序的节点传输的mac值的验证的配置。然后,如上所述,当比较器440确定第一mac与关于第二mac的mac一致时,中继器设备的mac生成函数处理控制器422执行控制以通过向mac生成函数处理单元421中输入第一mac和对于所涉及的中继器设备唯一的秘密密钥来生成关于第一mac的mac。换言之,当比较器440确定mac不一致时,中继器的mac生成函数处理控制器422设备不执行生成关于第一mac的mac的处理。因此,可以抑制数据传输系统中的处理负载。

当比较器440确定第一mac与关于第二mac的mac一致时,中继器设备的发射器402向较高顺序的通信设备100传输传输目标的数据、第一mac、关于第一mac的mac、所涉及的中继器设备的本地id、和由接收器401接收的本地id。换言之,当比较器440确定mac不一致时,中继器设备的mac生成函数处理控制器422不执行到较高顺序的节点的传输。因此,可以抑制数据传输系统中的通信量。在本实施例中,当比较器440确定mac不一致时,mac的生成和到较高顺序的节点的传输都被抑制。然而,仅可以抑制到较高顺序的节点的传输。

传输源设备执行两次mac生成并且生成两个mac。因此,中继器设备可以执行验证而不将消息m作为传输目标的数据输入到认证生成设备405中。因此,中继器设备的认证生成设备405的计算时间不是取决于消息m的长度,并且可以预先估计认证生成设备405的计算时间。因此,如果确定从较低顺序的节点传输的数据的传输间隔,则可以预先估计可以执行数据传输和接收而不会引起系统延迟的较低顺序的节点的最大连接数。

同样在本实施例中,中继器设备可以生成秘密密钥。也就是说,在本实施例中,中继器设备可以包括密钥生成设备404。同样,在本实施例中,可以不使用导出密钥。也就是说,可以使用分发的秘密密钥生成mac。这种配置可以通过省略关于上述数据传输系统中的导出密钥的生成的处理来实现。

<实施例3>

接着,说明实施例3。根据实施例1,传输目标的数据以明文进行传输。与此相反,在根据实施例3的数据传输系统中,传输目标的数据被加密和传输。因此,在实施例3中,数据可以更安全地传输。下文中,说明与实施例1的不同之处。

图19是示出根据实施例3的传输源设备的配置的示例的框图。作为传输源设备的通信设备100具有与图4所示的配置不同的配置,因为认证生成设备303被替换位加密设备304。加密设备304与认证生成设备303的不同之处在于,包括认证加密函数处理单元331和认证加密函数处理控制器332,而不是mac生成函数处理单元321和mac生成函数处理控制器322。加密设备304生成密文和mac,如下所述。因此,加密设备304可以被称为认证生成设备。

认证加密函数处理单元331通过使用预定的认证加密函数执行算术运算来生成和加密mac。认证加密函数处理控制器332执行控制以通过向认证加密函数处理单元331中输入传输目标的数据和对于传输源设备唯一的秘密密钥来生成关于传输目标的数据的mac并且加密传输目标的数据。认证加密函数处理控制器332将由伪随机函数处理单元311生成的秘密密钥(导出密钥)作为对于传输源设备唯一的秘密密钥输入到认证加密函数处理单元331中。

在本实施例中,传输源设备的发射器302向中继器设备传输由认证加密函数处理单元331加密的数据、由认证加密函数处理单元331生成的mac、和所涉及的传输源设备的本地id。

因此,根据本实施例的中继器设备的接收器401接收加密数据、mac、和通信设备100的本地id。然后,中继器设备的发射器402向另一中继器设备或数据接收设备传输由接收器401接收的加密数据、由mac生成函数处理单元421生成的mac、由传输源设备生成的mac、所涉及的中继器设备的本地id、和由接收器401接收的本地id。

接着,说明根据实施例3的数据接收设备。图20是示出根据实施例3的数据接收设备的配置的示例的框图。作为数据接收设备的通信设备100具有与图6所示的配置不同的配置,因为验证设备204被替换位验证设备205。验证设备205与验证设备204的不同之处在于,添加了认证解密函数处理单元261和认证解密函数处理控制器262。

认证解密函数处理单元261使用预定的认证解密函数执行算术运算以生成解密数据。认证解密函数处理控制器262执行控制以通过向认证解密函数处理单元261中输入与从第n层级的通信设备100提取的本地id相对应的秘密密钥、由接收器201接收的加密数据和由传输源设备生成并且由接收器201接收的mac来生成解密数据。根据本实施例的接收器201经由中继器设备接收加密数据、本地id列表、由中继器设备生成的mac、和由由传输源设备生成的mac。然而,在精确意义上,由传输源设备生成并且由接收器201接收的mac是被估计为要由传输源设备生成的mac,并且当执行诸如伪造等不公正时,它不同于由传输源设备生成的mac。

上述预定的认证加密函数和预定的认证解密函数可以是由诸如gcm模式或ccm模式等密码使用模式形成的函数,或者可以是通过组合诸如加密然后是mac方法等加密和mac而形成的函数,或者可以是由用于caesar竞争的算法形成的专用函数。

根据本实施例的mac生成函数处理控制器222执行控制以通过向mac生成函数处理单元221中输入由传输源设备生成并且由接收器201接收的mac和与第(n-1)层级的通信设备100的提取的本地id相对应的秘密密钥来导出mac。mac生成函数处理控制器222执行控制以通过向mac生成函数处理单元221中输入由此导出的mac和与第m层级的通信设备100的提取的本地id相对应的秘密密钥来递归地导出mac(m是在1到n-2之间的正整数(包括性的))。

也就是说,mac生成函数处理控制器222通过使用由传输源设备生成的mac和由伪随机函数处理单元211生成的与第(n-1)层级的通信设备100相对应的秘密密钥(具体地,作为与导出密钥相对应的密钥的真实秘密密钥)来再现由第(n-1)层级的通信设备100生成的mac。随后,mac生成函数处理控制器222执行控制以通过使用第(m+1)层级的通信设备100上的再现mac和与第m层级的通信设备100相对应的秘密密钥(具体地,作为与导出密钥相对应的密钥的真实秘密密钥)来重复由第m层级的通信设备100生成的mac的再现处理。

因此,mac生成函数处理控制器222执行控制以生成与从第(n-1)层级到第一层级的每个通信设备100相对应的mac。

然后,比较器250将由中继器设备生成并且由接收器201接收的mac与由mac生成函数处理单元221生成的与第一层级的通信设备100相对应的mac相比较。与上述实施例的情况一样,当正确数据沿着正确路传输时,两个mac一致,但是,当数据被伪造或数据未沿着正确路径传输时,两个mac不一致。

图21是示出验证设备205中的上述处理流程的示意图。与图8所示的处理流程的情况一样,同样,在本实施例中,首先,通过伪随机函数生成秘密密钥,然后,利用导出密钥设置值(在图21所示的示例中为0)将生成的密钥输入到伪随机函数中。因此,生成导出密钥。其中与第n层级的通信设备的本地id相对应的导出密钥被输入到认证的解密函数中,并且与从第(n-1)层级到第一层级的通信设备的本地id相对应的导出密钥被输入到mac生成函数中。在图21中,c指示传输的密文,即加密数据。s1_1、s1_2、......、s1_n-1指示由mac生成函数处理单元221输出的mac,并且s1_n指示由传输源设备(第n层级的通信设备100)生成并且传输的mac。s1指示由中继器设备(第一层级的通信设备100)生成并且传输的mac。其他符号与图8中的符号相同。如图21所示,验证设备205通过认证解密函数处理单元261对接收的密文c进行解密,并且生成作为加密之前数据的消息m。验证设备205再现当数据从传输源设备传输到数据接收设备时执行的认证生成,并且生成mac。然后,验证设备205通过将生成的mac与接收的mac相比较来验证是否接收到正确数据以及数据是否沿着正确的路径传输。

接着,说明根据实施例3的数据传输系统的操作。关于根据本实施例的初始设置的操作与实施例1的操作相同。因此,省略其说明。图22是示出根据实施例3的数据传输系统中的传输操作流程的示例的流程图。如图22所示,本实施例中的传输操作的流程图与图11所示的流程图的不同之处在于,步骤200被替换为步骤240。图23是通过传输源设备与中继器设备之间的传输路径的具体示例示出信息流的示意图。图24是示出图23所示的每个通信设备中的加密设备和认证生成设备的处理流程的示意图。在下文中,参考图23和图24适当地说明图22所示的流程图。

图23示出了配置(通信设备和认证生成设备)和信息(本地id、秘密密钥、消息和mac),其具有与图12所示的示例中使用的相同的符号。在图12中,认证生成设备d31被示出为在通信设备d3中。然而,在本实施例中,传输源设备包括如上所述的加密设备。因此,在图23中,加密设备d31c被示出为在通信设备d3中。在这种符号的前提下,图23示出了在初始设置、加密设备或认证生成设备的输入输出以及节点之间的通信内容之后由通信设备d1、d2和d3保持的值。

当传输消息m时,首先,在步骤240(s240),作为传输源设备的通信设备100的认证加密函数处理单元331生成通过加密消息m而获取的密文c,并且生成关于消息m的mac。首先,传输源设备的加密设备304的伪随机函数处理单元311从分发的秘密密钥生成导出密钥。然后,传输源设备的加密设备304的认证加密函数处理单元331使用导出密钥生成关于消息m的密文和mac。

当基于图23和图24所示的示例详细说明时,在步骤240,在通信设备d3的加密设备d31c中,伪随机函数处理单元311使用秘密密钥sk3和导出密钥设置值(具体地,0)来生成导出密钥sk31。接着,认证加密函数处理单元331使用导出密钥sk31和消息m来输出密文c和mac值s3。

在步骤240之后,与实施例1的情况一样,执行步骤201和后续步骤的处理。然而,与实施例1不同,不是作为明文的消息m,而是由传输源设备生成的密文c和mac被传输到数据接收设备。因此,通信设备d3的发射器302将(c,s3,id3)传输到通信设备d2,并且通信设备d2的发射器402将({c,s3},s2,{id2,id3})传输到通信设备d1。通信设备d1的发射器402将({c,s3},s1,{id1,id2,id3})传输到作为数据接收设备的通信设备100。

接着,说明根据本实施例的数据接收设备中的验证操作。图25是示出根据实施例3的数据接收设备中的验证操作流程的示例的流程图。如图25所示,本实施例中的验证操作的流程图与图14所示的流程图的不同之处在与,在步骤302与步骤303之间插入了步骤310。当接收器201从中继器设备接收到包括密文c的信息时,根据实施例3的数据接收设备通过验证设备205执行验证处理,如下所示。

首先,与实施例1的情况一样,执行从步骤300到步骤302的处理。也就是说,与实施例1的情况一样,生成导出密钥ski_1'(1≤i≤n)。在步骤302之后,处理转到步骤310。

在步骤310(s310),认证解密函数处理单元261和认证解密函数处理控制器262使用由传输源设备生成并且由接收器201接收的mac、由接收器201接收的密文、和在步骤302生成的与第n层级的通信设备100相对应的导出密钥来解密密文。具体地,认证解密函数处理控制器262向认证解密函数处理单元261中输入skn_1'作为秘密密钥,输入c作为密文,并且输入s1_n作为mac值,并且生成明文m。s1_n是由传输源设备(第n层级的通信设备100)生成并且由接收器201接收的mac。当通过认证解密函数对mac值的验证不成功时,认证解密函数处理单元261的输出变为假。另一方面,当验证成功时,从认证解密函数处理单元261输出正确的明文m。由认证解密函数处理单元261生成的明文m从验证设备205输出。

在步骤310之后,处理转到步骤303。在本实施例的步骤303,mac生成函数处理单元221和mac生成函数处理控制器222使用由传输源设备生成并且接收的mac以及在步骤302生成的导出密钥来生成mac。具体地,mac生成函数处理单元221和mac生成函数处理控制器222对于n-1≥i≥1的i执行以下操作。mac生成函数处理控制器222向mac生成函数处理单元221中输入ski_1'作为秘密密钥并且输入s1_i+1作为消息,并且获取s1_i。当消息传输正确执行时,此时生成的从s1_n-1到s1_1的每个值与由从数据接收设备到传输源设备的每个层级的通信设备100生成的mac值一致。

接着,在步骤304,比较器250将由中继器设备生成并且由接收器201接收的mac与在步骤303生成的与第一层级的通信设备100相对应的mac相比较。具体地,比较器250比较在步骤303生成的s1_1与接收的s1,并且确定两个值是否一致。当两者一致时,比较器250输出输出值b=1,否则输出输出值b=0。同样,在本实施例中,当b=1时,表示消息m已经沿着来自传输源设备的正确的传输路径被传输而没有伪造。当b=0时,表示消息m已经被伪造或者已经经由除了正确的传输路径中的通信设备之外的其他通信设备被传输。数据接收设备可以包括基于比较器250的输出值和认证解密函数处理单元261的输出值来确定传输的安全性的确定单元(未示出)。当认证解密函数处理单元261的输出值不是假时,该确定单元可以确定消息已经正确地加密并且发送,并且当比较器250的输出是b=1时,该确定单元可以确定消息已经经由正确的传输路径被传输。

在上文中,说明了实施例3。在本实施例中,传输加密数据。因此,可以更安全地传输数据。因此,例如,在使用需要数据保密的传感器网络的情况下以及在传输伴随有个人信息的消息的情况下,可以以保证保密的方式执行传输。

根据实施例3的配置可以与根据实施例2的配置组合。也就是说,可以组合用于传输加密数据的配置和用于通过中继器设备执行验证的配置。同样,在实施例3中,中继器设备可以生成秘密密钥。也就是说,在实施例3中,中继器设备可以包括密钥生成设备404。在根据实施例3的配置中,使用导出密钥生成mac。但是,可以不会生成导出密钥。也就是说,可以使用分发的秘密密钥生成mac。

在实施例中,附图中描述的作为执行各种处理的功能块的每个元素可以由cpu、存储器和其他电路以硬件方式配置,并且可以通过加载到存储器的程序以软件方式实现。因此,本领域技术人员可以理解,这些功能块可以仅通过硬件、仅通过软件、或通过那些组合以各种形式来实现,而不限于一种。也就是说,在密钥生成设备203和404、验证设备204和205、验证生成设备303、403和405以及加密设备304中,配置设备的部分或全部功能块可以通过执行由cpu加载到存储器的程序来实现,并且可以通过专用硬件电路来实现。执行功能处理的电路可以包括安装在半导体产品中作为硬件的现有电路,诸如公共密钥加密aes和散列函数sha2。

上述程序使用各种类型的非暂态计算机可读介质来存储,并且可以提供给计算机。非暂态计算机可读介质包括各种类型的有形存储介质。非暂态计算机可读介质的示例包括磁记录介质(例如,软盘、磁带、硬盘驱动器)、光磁记录介质(例如,磁光盘)、cd-rom(只读存储器)、cd-r、cd-r/w和半导体存储器(例如,掩模rom、prom(可编程rom)、eprom(可擦除prom)、闪存rom、ram(随机存取存储器))。程序可以通过各种类型的暂态计算机可读介质提供给计算机。暂态计算机可读介质的示例包括电信号、光信号和电磁波。暂态计算机可读介质可以经由电线、光纤等的有线通信路径或无线通信路径将程序提供给计算机。

如上所述,基于实施例具体说明了本发明人完成的本发明。然而,不言而喻,本发明不限于如上所述的实施例,并且可以在不偏离本发明的范围的情况下进行各种改变。不用说,作为中继器设备操作的通信设备例如可以作为传输源设备进行操作。在这种情况下,所涉及的通信设备包括作为中继器设备的功能和作为传输源设备的功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1