节点装置以及程序的制作方法

文档序号:7733726阅读:165来源:国知局
专利名称:节点装置以及程序的制作方法
技术领域
本发明涉及自律分散型网络中的用于安全维护的装置以及程序。
背景技术
作为安全性对策的一种,一直在对发送数据进行加密。作为加密的方法,例如有公 用密钥方式(也叫做对称密钥加密方式)。另外,为了进一步巩固安全性,还有如下面的公 知例那样每隔一定时间就使公用密钥变化的技术。另外,也有WEP(Wired Equivalent Privacy,有线等效保密)和 WPA(Wi_Fi Protected Access, Wi-Fi保护访问)等的安全方式。根据这些技术,一般是通过在服务器中发出控制命令来进行认证处理。另外,也公开了一种技术,在通信系统中,保持客户端侧的密码不变而只变更服务 器的控制变量,由此来变更共有的加密密钥。由此,能够以较短的时间间隔使共有的公用密 钥变化从而提高了密码系统的安全性。专利文献1 日本特开平9-321748号公报与有线还是无线无关,在考虑包含非常多的节点装置的网络的情况下,1个管理服 务器生成公用密钥(也就是说根据时间变更)并向各节点装置通知并不实用。即,由于节 点装置的数量较多,所以即使只是从服务器发送控制指令也会造成大量负荷。因此,希望各 节点装置与其他节点装置协同动作自主地进行用于加密的动作。

发明内容
本发明的目的在于,提供一种与其他节点装置协同动作自主地进行用于加密的动 作的节点装置,以及命令节点装置与其他节点装置协同动作自主地进行用于加密的动作的 程序。第1方式的节点装置是由包含第1节点装置和第2节点装置的多个节点装置构成 的网络中的上述第1节点装置,具有访问密钥生成部、公用密钥生成部、访问密钥通知部、 访问密钥接收部、访问密钥解密部、数据发送部、数据接收部、数据解密部以及一致性确认 部。上述访问密钥生成部每隔第1时间变更生成作为上述第1节点装置中固有的加密 密钥的第1访问密钥。另外,上述公用密钥生成部每隔在上述多个节点装置中是共同的时 间的第2时间变更生成在上述网络内的上述多个节点装置中公用的公用密钥。上述访问密钥通知部使用所生成的上述公用密钥对生成的上述第1访问密钥进 行加密并向上述第2节点装置发送。上述访问密钥接收部接收从上述第2节点装置发送来 的包含访问密钥通知数据的访问密钥通知帧,该访问密钥通知数据是使用上述公用密钥对 作为上述第2节点装置所固有的加密密钥的第2访问密钥进行加密而得到的数据。上述访问密钥解密部使用所生成的上述公用密钥对上述访问密钥通知数据解密, 由此从上述访问密钥通知数据中取得上述第2访问密钥。
上述数据发送部向第1明文帧附加使用上述公用密钥对包含根据该第1明文帧计 算出的第1散列(hash)值的数据进行加密得到的第1署名数据。并且,上述数据发送部使 用解密得到的上述第2访问密钥对附加有上述第1署名数据的上述第1明文帧进行加密并 作为第1加密帧发送。上述数据接收部从上述第2节点装置接收第2加密帧。这里,上述第2加密帧,是 利用上述第1访问密钥对第2明文帧进行加密得到的,该第2明文帧附加有使用上述公用 密钥对包含第2散列值的数据进行加密得到的第2署名数据。上述数据解密部使用上述第1访问密钥对上述第2加密帧进行解密,从而从上述 第2加密帧中得到附加有上述第2署名数据的上述第2明文帧。上述一致性确认部通过使用所生成的上述公用密钥对上述第2署名数据解密来 取得上述第2散列值。并且,上述一致性确认部根据上述第2明文帧计算第3散列值,并确 认是否取得了上述第2散列值和上述第3散列值之间的一致性。第2方式的程序是由控制由包含第1节点装置和第2节点装置的多个节点装置构 成的网络中的上述第1节点装置的计算机执行的程序。上述程序是使上述计算机控制第2 方式的上述第1节点装置以使得第2方式的上述第1节点装置与第1方式的上述第1节点 装置同样地进行动作的程序。在上述任何一个方式中,网络中的第1节点装置能够自主地并且与第2节点装置 等其他节点装置协同动作来进行为了加密通信的动作。所以,上述任何一个方式,都能够提 高包含多个节点装置的网络中的通信的安全性。


图1是自组织(ad hoc)通信系统的整体概念图。图2是表示包含多个节点装置的传感器网络的例子的网络构成图。图3是实施方式涉及的节点装置的构成图。图4是实施方式涉及的节点装置的硬件构成图。图5是更加详细表示本实施方式涉及的节点装置的构成的图。图6是对基于实施方式涉及的节点装置的认证方法进行说明的图。图7是表示了在2个节点装置之间互相认证对方的节点装置并进行通信的处理的 顺序图。图8是表示数据帧的格式的图。图9是公用密钥更新处理的流程图。图10是访问密钥更新处理的流程图。图11是问候帧发送处理的流程图。图12是说明问候帧的格式和进行的与问候帧有关的各种处理的图。图13是问候帧接收处理的流程图。图14是数据帧发送处理的流程图。图15是说明数据帧的格式和进行的与数据帧有关的各种处理的第1例的图。图16是数据帧接收处理的流程图。图17是说明数据帧的格式和进行的与数据帧有关的各种处理的第2例的图。
图18是说明时刻同步方法的图。图19是说明时刻同步方法的顺序图。图20是时刻同步帧发送处理的流程图。图21是时刻同步帧接收处理的流程图。
具体实施例方式下面,参照附图对本发明的实施方式进行详细说明。图1是自组织通信系统的整
体概略图。如图1所示那样,节点装置(a、b.....s、t)相互连接构成网。在自组织通信系
统中,各节点装置作为中继器工作,将信息从开始节点(图1的例中的节点装置b)传递到 目标节点(图1的例中的节点装置t)。各节点装置各自保有固有的识别信息(ID、Identification)、即节点ID。也可以 将MAC (Media Access Control)地址作为节点ID利用。各节点装置不把握相互邻接的节点装置和网络整体。在初始状态时,相互的链接 不存在,各节点装置不把握自身以外的节点装置。所以,在图1所示的自组织通信系统中,为了将信息从作为开始节点的节点装置b 传递到作为目标节点的节点装置t,首先需要决定路径。决定路径的顺序如下面所述。首先,各节点装置检测周围的节点装置。为此各节点装置周期性地向邻近存在的 节点装置通知自身的存在。在针对邻近节点装置的通知中附带有与路径生成有关的信息。 各节点装置若从其他的节点装置接收到了通知,则能够生成关于周围的节点装置的列表, 并把握自身节点装置的周围存在的其他节点装置。检测出周围的节点装置的节点装置根据所生成的列表决定自身节点装置要转送 信息的节点装置,并向该决定的节点装置转送信息。各节点装置,由于安全对策的原因,将帧加密后与对方的节点装置通信。具体来 讲,各节点装置使用通信对方的节点装置所固有的加密密钥和网络中的节点装置之间公用 的公用密钥进行加密,并将信息发送至通信对方的节点装置。另外,各节点装置若从通信对 方的节点装置接收到了信息,则使用自身节点装置所固有的加密密钥和上述的公用密钥对 帧进行解密来取出信息。后面同样,在节点装置间的通信中,各节点装置使用解密得到的加密密钥将数据 发送至通信对方的节点装置。另外,各节点装置根据接收到的数据是利用自身节点装置生 成的加密密钥被加密了的情况判断通信对方的节点装置是合法的。下面,具体说明基于本实施方式涉及的节点装置的认证处理以及通信的方法。本实施方式的节点装置能够应用于如图1那样的任意的自组织通信系统中,也可 以应用于例如如图2那样的通过自组织网络实现的传感器网络中。图2是表示包含多个节点装置的传感器网络的例子的网络构成图。在图2的传感器网络中,多个节点装置IA II以及网关装置GW构成了自组织网 络。另外,网关装置GW例如通过电缆与服务器SV连接。当然,网关装置GW和服务器SV之 间的连接也可以是经由网络的连接,也可以是基于无线的连接。在图2中,多个节点装置IA II各自或者与未图示的1个以上的传感器连接,或 者内置有未图示的1个以上的传感器。后面为了使说明简单,设各节点装置IA II各自与1个传感器连接。传感器例如也可以是感知温度、压力、加速度等的传感器。另外,也可 以使用不同种类的多个传感器。各节点装置IA II从与自身节点装置连接的传感器取得表示传感器感知的结果 的数据(后面称为“传感器数据”)。并且,各节点装置IA II生成包含所取得的传感器 数据的加密帧(后面称为“传感器数据帧”),通过自组织网络向网关装置GW发送传感器数 据帧。例如,各传感器也可以在1分钟内向节点装置输出一次传感器数据。所以,在如上 所述那样节点装置IA II分别与1个传感器连接的情况下,各节点装置IA II在1分 钟内发送1次传感器数据帧。网关装置GW和各节点装置IA II 一样具备后面说明的图3的各部,能够和节点 装置IA II协同动作自主地构成自组织网络。也就是说,在节点装置IA II和网关装 置GW之间,公用密钥是公用的,后面说明的时刻同步用的固定密钥也是公用的。网关装置GW将由各节点装置IA II发送来的传感器数据帧中包含的传感器数 据发送至服务器SV。例如,网关装置GW也可以如下面那样动作。网关装置GW对接收到的传感器数据帧进行解密并提取传感器数据。并且,网关装 置GW向服务器SV发送包含提取出的传感器数据的数据。或者,网关装置GW也可以进一步从接收到的传感器数据帧中提取传感器数据帧 的发送源的节点装置(1A II中的任意一个)的识别信息。并且,网关装置GW也可以生 成将对包含传感器数据和识别信息的数据进行加密而得到的数据包含在净荷中的加密帧 并向服务器SV发送。服务器SV能够使用收集到的传感器数据进行基于传感器感知的物理量的任意的 各种处理。例如,在各传感器是温度传感器的情况下,服务器SV也可以进行分析温度分布 和温度变化的处理,还可以进行温度预测处理。如果将后面详细说明的本实施方式的节点装置1作为图2的节点装置IA IH利 用,则服务器SV能够在将传感器数据保持秘密状态的同时对其进行收集,并且能够收集未 经篡改的正确的传感器数据。图3是本实施方式涉及的节点装置的构成图。图3所示的节点装置1具有访问密 钥生成部2、公用密钥生成部3、加密部4、解密部5、帧处理部6、发送部7、接收部8以及时 刻同步部9。例如,图2的节点装置IA II各自具有图3那样的构成。访问密钥生成部2生成节点装置1所固有的加密密钥(后面称为“访问密钥”)。 使用公知的WEP和WPA等技术生成访问密钥。作为对称密钥加密方式中的加密密钥生成访 问密钥并使用。另外,每隔规定的时间间隔、随机更新访问密钥。在本实施方式中,例如、= 10(分钟)。另外,访问密钥通过RC4(Rivest’ s Cipher 4)被加密并发送至其他的节点装置, 在本实施方式中,访问密钥的长度是128位。由于RC4是流加密的1种,所以通过RC4加密 的密文(ciphertext)的长度等于原先的明文(plaintext)的长度。但是,一般来说,密钥的长度是64位的RC4的解读需要收集50万帧,密钥的长度 是128位的解读需要收集100万帧。对此,如上所述,在本实施方式中,访问密钥每隔、=10分钟随机地变化。例如,如与图2相关的示例那样,若设通常每分钟发送1帧,则10分钟内发送10 帧。并且,例如,在图2的例子中,作为传感器数据帧的最终发送目的地的网关装置GW在自 组织网络内接收最多的帧。但是,即使是网关装置GW,例如从总数500台的节点装置接收数 据的情况下的帧数是每分钟大约500帧。即,在访问密钥被更新之前的10分钟内,非法节 点装置收集解读所需要的帧,可以说事实上是不可能的。公用密钥生成部3通过节点装置1内具备的防篡改装置(例如后面说明的图4的 防篡改PIC微机14)等生成在图1的网络内的节点装置中公用的加密密钥、即公用密钥。公 用密钥每隔规定的时间间隔t2被更新。在本实施方式中,例如t2 = 12(小时)。在各节点装置中保有的时刻信息在网络内被同步。因此,公用密钥虽然根据时间 变化,但是在某个时刻,在网络内的节点装置中是共同的。加密部4对向其他节点装置发送的帧中包含的数据进行加密,解密部5对由其他 节点装置加密并发送的帧中包含的数据进行解密。发送部7向其他节点装置发送包含在图3所示的节点装置1中生成的加密数据的 加密帧,接收部8接收其他节点装置发送的加密帧。帧处理部6执行对接收到的帧的处理。例如,帧处理部6也可以从接收到的帧的 规定的字段取出信息,进行“是否是已经接收过的帧”的判断作为上述“对接收到的帧的处 理”。或者,帧处理部6也可以从接收到的帧的规定的字段取出信息,进行“是否是由合法的 节点装置发送的帧”的判断等作为上述“对接收到的帧的处理”。帧处理部6还进行生成要发送的帧的处理。时刻同步部9执行用于使图3所示的 节点装置1中保持的时刻与网络内的其他节点装置的时刻同步的处理。与图18 图21 — 起详细说明时刻同步部9的动作。图3所示的节点装置1在开始与网络内的其他节点装置通信之前,在与对方的节 点装置之间交换使用公用密钥加密后的访问密钥。利用公用密钥加密的访问密钥被保存在 例如被称为“问候帧(hello frame),,的规定形式的帧的规定字段中,并被向对方的节点装
置发送。另外,下面为了方便说明,有时将节点装置1自身生成的访问密钥称为“内部来源 (internally-originated)访问密钥”,将从其他的节点装置接受的访问密钥称为“外部来 源(externally-originated)访|、n]密f月,,。图3的节点装置1使用自身节点装置1中保有的公用密钥对从通信对方的节点装 置(具有与图3的节点装置1相同的构成的未图示的第2节点装置)接收的被加密后的访 问密钥进行解密。并且,图3的节点装置1在之后与该未图示的第2节点装置进行通信时, 使用通过解密得到的访问密钥(即外部来源访问密钥)对发往未图示的第2节点装置的帧 进行加密。如上所述,公用密钥以及访问密钥分别以规定的时间间隔、以及、被更新。因此, 即使第三者非法取得了某个时间点上的公用密钥或者访问密钥,也无法进行冒充等的非法 访问ο接着,参照图4对实现图3的构成的硬件的具体例进行说明。图4是本实施方式 涉及的节点装置1的硬件构成图。
图 3 的节点装置 1 具备 MPU (Microprocessing Unit) 11、有线 PHY (PHYsical layer)处理部 12、定时器 IC (Integrated Circuit) 13、防篡改 PIC (Peripheral Interface Controller)微机(microcomputer) 14。节点装置 1 还具备 DRAM (Dynamic Random Access Memory) 15、闪存 16 和无线 LAN (Local Area Network)处理部 17。MPUll和有线PHY处理部12之间的连接接口例如是MII(Media Independent Interface) /MDIO (Management Data Input/Output) 18 (另外,“MII/MDI0” 是指 “Mil 或者 MDI0”)。Mil 和 MDIO 都是物理层和 MAC 子层(Media Access Control sublayer)之间的接口。另外,定时器IC13 和防篡改 PIC 微机 14 通过 I2C(Inter-Integrated Circuit)/ PIO(Parallel Input/Output)总线 19 与 MPUll 连接(另外“I2C/PI0 总线”是指"I2C 总线 或者PIO总线”)。DRAMl5,闪存 16 和无线 LAN 处理部 17 通过 PCI (Peripheral Component Interconnect)总线 20 与 MPUll 连接。MPUll通过将作为非易失性存储装置的1种的闪存16上保存的固件等的各种程序 加载到DRAM15上并执行来执行各种各样的处理。MPUll例如执行防篡改PIC微机14的驱 动和用于使节点装置1执行后面说明的各种处理的固件程序等的各种各样的程序。另外,DRAMl5中也可以保存加密密钥等各种数据。另外,DRAMl5也可以作为帧的 发送缓冲以及接收缓冲使用。闪存16如上所述保存固件程序等。另外,闪存16中也可以 保存节点装置1自身所固有的信息(例如,节点ID和MAC地址)。有线PHY处理部12是进行有线连接时的物理层的处理的电路。另外,无线LAN处 理部17是进行无线LAN连接时的物理层的处理的硬件。无线LAN处理部17例如包含天 线、ADC(Analog-to-Digital Converter)、DAC (Digital-to-Analog Converter)、调制器禾口 解调器等,进行物理层和MAC子层的处理。所以,在本实施方式中,节点装置1能够进行有 线通信和无线通信两者。但是,节点装置1也能够是只进行有线通信或者无线通信的其中 一者的实施方式。定时器IC13是直到经过所设定的时间为止进行计时动作,若经过了所设定的时 间则输出中断信号的电路。防篡改PIC微机14是内部具有生成公用密钥的规定的算法的微机。由于防篡改 Pic微机14是防篡改的,所以从外部无法分析生成公用密钥的规定的算法具体是什么样的算法。接着,参照图5对参照图3和图4说明过的节点装置1的构成进行更加详细的说 明。图5是更加详细表示本实施方式涉及的节点装置1的构成的图。在图5中,表示了和图3同样的访问密钥生成部2、公用密钥生成部3、加密部4、解 密部5、帧处理部6、发送部7、接收部8以及时刻同步部9。如图5所示那样,接收部8具备对节点装置1接收到的帧根据帧的种类进行分类 的帧分支处理部21和对应不同帧种类的接收缓冲。例如通过图4的DRAM15实现接收缓冲。在本实施方式中,具体来说,对应问候帧、时刻同步帧以及数据帧这3种种类,接 收部8具备问候帧接收缓冲22、时刻同步帧接收缓冲23和数据帧接收缓冲24。例如通过图4的无线LAN处理部17和MPUll或者通过有线PHY处理部12和MPUll来实现帧分支处理部21。如与图12、图15以及图17 —起在后面说明的那样,由于帧头包 含表示帧的种类的“帧类型”字段,所以帧分支处理部21能够根据帧类型字段的值来识别 接收到的帧的种类从而对接收到的帧进行分类。另外,解密部5对应3种帧的种类具备问候帧解密部25、时刻同步帧解密部26和 数据帧解密部27。在本实施方式中通过MPUll实现解密部5,但是也可以通过专用的硬件 电路来实现。问候帧解密部25对问候帧接收缓冲22中保存的问候帧进行解密,提取图4中未 图示的其他的节点装置的访问密钥并输出。时刻同步帧解密部26对时刻同步帧接收缓冲 23中保存的时刻同步帧进行解密,将解密得到的信息发送至时刻同步部9。数据帧解密部 27对数据帧接收缓冲24中保存的数据帧进行解密。并且,节点装置1具备图5所示的、保存其他节点装置用的访问密钥(即外部来源 访问密钥)的访问密钥保存部28。访问密钥保存部28中保存有由问候帧解密部25解密后 的明文中包含的外部来源访问密钥。更具体来讲,访问密钥保存部28将分别与多个节点装 置对应的外部来源访问密钥与识别多个节点装置的信息(例如节点ID或者MAC地址等) 建立对应关系并保存。另外,例如通过图4的DRAM15来实现访问密钥保存部28。另外,也可以将至少一 部分通过MPUll内的高速缓存来实现。另外,节点装置1包含确认解密后的数据帧的正确性的确认部29。确认部29的 详细动作和图16 —起在后面说明,例如通过MPUll来实现确认部29。另外,在本实施方式 中,确认部29也进行解密后的访问密钥的正确性的确认。另外,帧处理部6包含接收数据帧处理部30,进行使用了由确认部29确认为“正 确(即没有被篡改)“的数据帧的处理。例如,接收数据帧处理部30可以进行判别是再次接 收了和已经接收的数据帧相同的数据帧还是接收了新的数据帧的处理。也可以通过MPUll 来实现接收数据帧处理部30。另外,在上述的数据帧解密部27的解密中,使用了节点装置1自身的访问密钥。因 此,节点装置1还具备保存自身节点装置1用的访问密钥(即内部来源访问密钥)的访问 密钥保存部31。例如也可以通过DRAM15来实现访问密钥保存部31,还可以通过MPUll内 的高速缓存来实现。另一方面,在上述的问候帧解密部25的解密中,使用了网络内的多个节点装置中 公用的公用密钥。因此,节点装置1还具备保存公用密钥的公用密钥保存部32。例如也可 以通过DRAM15来实现公用密钥保存部32,还可以通过MPUll内的高速缓存来实现。另外,如关于图3所说明的那样通过公用密钥生成部3生成公用密钥保存部32中 保存的公用密钥。即,根据本实施方式,在多个节点装置的各自的公用密钥生成部3中,按 照相同的算法生成根据时刻唯一决定的公用密钥,以使得在多个节点装置之间不需交换公 用密钥。另外,为了防止公用密钥的泄露,通过图4的防篡改PIC微机14来实现本实施方 式的公用密钥生成部3。S卩,公用密钥生成部3是防篡改的。另外,公用密钥生成部3为了生成公用密钥利用时刻信息。具体来讲,节点装置1 具备时钟33,公用密钥生成部3参照时钟33得到时刻信息。
另外,在后面会和图10 —起详细说明,节点装置1还具备通过图4的定时器IC13 实现的计数器34。计数器34反复进行递增计数动作,若计数器34的值达到了预先设定的 值,则访问密钥生成部2生成访问密钥,计数器34被清零。另外,在上述的时刻同步帧解密部26的解密中,使用在网络内的多个节点装置中 公用的、也不随时间变动的、固定的时刻同步密钥。因此,节点装置1还具备保存时刻同步 密钥的时刻同步密钥保存部35。时刻同步密钥,例如可以作为常数预先写入MPUll执行的固件程序中,通过将固 件加载到DRAM15中来保存储DRAM15中。例如能够通过闪存16、DRAM15或者MPUll内的高 速缓存来实现时刻同步密钥保存部35。但是,帧处理部6不止是处理接收到的数据帧的上述的接收数据帧处理部30,还 具备生成问候帧的问候帧生成部36。问候帧生成部36从访问密钥保存部31中读取节点装 置1自身的访问密钥,生成问候帧的原来的明文帧并输出。例如通过MPUll来实现问候帧 生成部36。问候帧生成部36输出的明文帧被输入到加密部4进行加密。另外,加密部4具备 问候帧加密部37、时刻同步帧加密部38以及数据帧加密部39,例如也通过MPUll来实现加 密部4内的这些各部。问候帧加密部37使用公用密钥保存部32中保存的公用密钥对问候帧的原来的明 文帧进行加密。另外,时刻同步帧加密部38使用时刻同步密钥保存部35中保存的时刻同 步密钥对时刻同步帧的原来的明文帧进行加密。并且,数据帧加密部39使用访问密钥保存 部28中保存的访问密钥中的作为数据帧的发送目的地的节点装置用的访问密钥对数据帧 的原来的明文帧进行加密。另外,如后面与图20 —起详细说明的那样,从时刻同步部9向时刻同步帧加密部 38输出时刻同步帧的原来的明文帧。另外,帧处理部6还具备生成数据帧的原来的明文帧并向数据帧加密部39输出的 数据帧生成部40在加密部4中被加密的各种帧被输出至发送部7并从节点装置1发送。具体来讲, 发送部7除了具备例如通过图4的DRAM15实现的3个缓冲(即问候帧发送缓冲41、时刻同 步帧发送缓冲42和数据帧发送缓冲43),还具备发送处理部44。例如可以通过有线PHY处 理部12和MPUll来实现发送处理部44,也可以通过无线LAN处理部17和MPUll来实现。问候帧发送缓冲41从问候帧加密部37接受被加密的问候帧并保存,并向发送处 理部44输出。时刻同步帧发送缓冲42从时刻同步帧加密部38接受被加密的时刻同步帧 并保存,并向发送处理部44输出。数据帧发送缓冲43从数据帧加密部39接受被加密的数 据帧并保存,并向发送处理部44输出。并且,发送处理部44发送接受到的帧。另外,如图5所示那样,节点装置1例如还具备通过DRAM15实现的最新发送时刻 保存部45,因为在后面会与图16 —起说明最新发送时刻保存部45,所以这里省略其说明。上面参照图3 图5对节点装置1的构成进行了说明,因此接着参照图6 图21 对节点装置1的动作进行说明。图6是说明基于本实施方式涉及的节点装置1的认证方法的图。如图6所示那样,当在节点装置IA的周边存在节点装置IB以及节点装置IC的情况下,节点装置IA将生成的访问密钥al分别与节点装置IB以及节点装置IC的访问密钥 bl以及cl交换。并且,节点装置IA利用访问密钥bl对数据帧加密并向节点装置IB发送, 利用访问密钥cl对数据帧加密并向节点装置IC发送。在图6的例子中,对于节点装置1A,访问密钥al是内部来源访问密钥、访问密钥 bl以及cl是外部来源访问密钥。另一方面,对于节点装置1B,访问密钥al是外部来源访 问密钥,访问密钥bl是内部来源访问密钥。节点装置IA对于节点装置IB和节点装置IC使用分别不同的访问密钥(bl以及 Cl)。另外,例如,在与节点装置IB的通信中,节点装置IA在数据发送时使用访问密钥bl 而在数据接收时使用访问密钥al。这样,节点装置IA在数据发送时和数据接收时分别使用 不同的访问密钥进行通信。换言之,内部来源访问密钥是解密用的密钥,外部来源访问密钥 是加密用的密钥。这样,构成自组织通信网络的节点装置各自通过上述的方法与邻接的节点装置交 换访问密钥,使用从通信对方的节点装置接收的访问密钥对帧加密并发送。另外,与此同 时,对从通信对方接收到的帧,使用在自身节点装置中被定期更新的访问密钥进行解密。由 此,确保了安全性。如上所述,在本实施方式中,网络内的各节点装置在与邻接的节点装置进行通信 时,生成用于使通信对方的节点装置访问自身节点装置的访问密钥。并且,各节点装置使用 网络中公用的公用密钥,对上述生成的访问密钥进行加密,并将加密后的访问密钥利用问 候帧广播。各节点装置使用公用密钥对从邻接节点装置接收到的问候帧中包含的访问密钥 进行解密,使用解密后得到的访问密钥访问邻接节点装置。下面,对2台节点装置之间执行 的处理进行具体说明。图7是表示了在2个节点装置之间互相对对方的节点装置进行认证并通信的处理 的顺序图。这里,为了互相区别2台节点装置1,分别设为“节点装置1A”以及“节点装置 IB ”。首先,在步骤Sl中,从节点装置IA向作为通信对方节点装置的节点装置IB发送 由节点装置IA生成的访问密钥al。访问密钥al如上面所述的那样被利用节点装置IA和 节点装置IB之间共同保有的公用密钥加密。节点装置IB使用在自身节点装置IB中使用 防篡改装置生成的公用密钥进行解密处理,得到访问密钥al。接着,在步骤S2中,从节点装置IB向作为通信对方节点装置的节点装置IA发送 由节点装置IB生成的访问密钥bl。访问密钥bl也被利用节点装置IA和节点装置IB之间 公用的公用密钥加密。节点装置IA使用在自身节点装置IA中使用防篡改装置生成的公用 密钥进行解密处理,得到访问密钥bl。在步骤Sl以及步骤S2的处理中,在一方的节点装置是企图非法访问的第三者的 情况下,和通信对方节点装置之间没有公用的公用密钥,无法解密并取得通信对方节点装 置的访问密钥。利用此,当在2台的节点装置IA和IB之间进行了访问密钥的交换的情况 下,能够判断通信对方的节点装置IA以及IB合法。也就是说,当在节点装置IA和IB之间 进行了访问密钥的交换的情况下,节点装置IA能够判断节点装置IB合法,节点装置IB能 够判断节点装置IA合法。在本实施方式中,设根据与通信对方节点装置之间的访问密钥的交换的成功与否来进行通信对方节点装置的认证,在认证成功的情况下,开始步骤S3之后的通信。另外,在每次访问密钥被更新时执行步骤Sl以及步骤S2的认证处理。在步骤S3中,从节点装置IA向节点装置IB发送包含数据的帧。发送的帧被利用 在步骤S2中节点装置IA取得的访问密钥bl加密。例如,如关于图2所说明的那样,作为 包含传感器数据的加密帧的传感器数据帧在步骤S3中被发送。另外,在帧中进行了署名。关于署名会在后面说明。接收到帧的节点装置IB使用 在自身节点装置IB中生成的访问密钥bl对接收到的帧进行解密,得到数据。在步骤S4中,从节点装置IB向节点装置IA发送包含数据的帧。发送的帧被利用 在步骤Sl中节点装置IB取得的访问密钥al加密并被署名。在接收到帧的节点装置IA中, 使用在自身节点装置IA中生成的访问密钥al对接收到的帧进行解密,得到数据。如图7所示那样,本实施方式涉及的节点装置1 (1A以及1B)使用和通信对方的节 点装置(1B以及1A)公用的公用密钥,对各节点装置(1A以及1B)中生成的访问密钥(al 以及bl)进行加密并交换。在通信对方的节点装置(1B以及1A)合法的情况下,通信对方 的节点装置(1B以及1A)保有和自身节点装置(1A以及1B)公用的公用密钥。因此,各节点装置(1A以及1B)能够使用自身节点装置(1A以及1B)中保有的公 用密钥对从通信对方的节点装置(1B以及1A)接收到的访问密钥(bl以及al)进行解密。 由于在企图非法访问的第三者中没有保有上述公用密钥,所以各节点装置(1A以及1B)能 够根据是否能够对接收到的访问密钥(bl以及al)解密来判断通信对方的节点装置(1B以 及1A)是合法的还是非法的。各节点装置1定期与通信对方的节点装置交换访问密钥,继 续与被判断为是合法的节点装置进行通信。另外,在接收数据时,使用在自身节点装置中生成的访问密钥进行解密处理,并取 出数据。例如,在步骤S3中,接收侧的节点装置IB使用自身节点装置IB生成的访问密钥 bl进行解密处理。在发送数据时,使用在认证处理中从通信对方节点装置接收的、在通信对方节点 装置中生成的访问密钥进行加密,并发送数据。例如,在步骤S3中,发送侧的节点装置IA 使用在步骤S2中从通信对方节点装置IB接收到的访问密钥bl进行加密处理。图8是表示数据帧的格式的图。后面会和图15以及图17 —起对格式进行更加详 细的说明。另外,问候帧的格式的例子会在后面与图12—起说明。如图8所示那样,数据帧由帧头、帧的识别信息(FID)、时刻信息以及帧体构成,在 数据帧中追加有署名。在帧头中,保存有帧的发送目的地信息等。在FID中,保存有由发送源的节点装置 1附加的用于识别数据帧的顺序编号等。在时刻信息中保存有表示图8所示的帧被构成的 时刻的信息。具体来讲,保存有表示将图8的数据帧向邻接节点装置转送的时刻的信息。在 帧体中,保存有数据主体。在署名中,保存有帧(准确来说是明文帧)自身的散列代码被利用公用密钥加密 后的值。利用署名来证明图8所示的帧是在保有相同的公用密钥的节点装置中生成的。图8所示的数据帧被利用通信对方的节点装置的访问密钥(也就是说是外部来源 访问密钥)加密并被发送。本实施方式涉及的节点装置1若从通信对方的节点装置接收到加密帧,则使用自身节点装置生成的访问密钥进行解密得到明文帧。节点装置1还从明文帧中取出作为署名 被附加的加密后的散列值,并且使用公用密钥对取出的散列值(被加密的散列值)进行解 密。并且,比较使用公用密钥解密得到的值和根据明文帧计算出的散列值,在相互一致的情 况下,节点装置1判定为“接收了在保有与自身节点装置相同的公用密钥的节点装置中生 成的帧”。另外,本实施方式涉及的节点装置1预先存储从对方接收到的数据帧的FID和时 刻信息的组合,将存储的FID以及时刻信息与接收到的数据帧的FID以及时刻信息进行比 较。例如,在被认证为合法的2台节点装置之间进行通信时,有时会发生非法的节点装置捕 获以及复制数据帧并发送来的情况。在这种情况下,数据帧中包含的FID以及时刻信息与 过去从合法的节点装置接收到的FID以及时刻信息一致。这样,在接受到的数据帧的FID 以及时刻信息与节点装置1自身存储的FID以及时刻信息一致的情况下,节点装置1判断 为是来自非法的节点装置的访问,从而废弃接收到的数据帧。另外,在从合法的节点装置再次发送了数据帧的情况下,虽然FID与存储的FID — 致,但是时刻信息是不同的。这样,对于“FID与存储的值一致而时间信刻不同”的数据帧, 节点装置1判断为与已经接收的数据帧相同,从而也废弃该数据帧。接着,对于上述参照图6 图8说明的一系列处理,参照图9 图16的流程图进 行更详细的说明。图9是公用密钥更新处理的流程图。在节点装置1的电源接入后开始公用密钥更 新处理。在步骤SlOl中,图4的控制节点装置1整体的MPUll参照图5的时钟33识别当 前时刻,判断当前时刻是否是预先决定的更新时刻。另外,这里的“更新时刻”是作为进行 公用密钥的更新的时刻而预先决定的时刻。例如,在、=12(小时)的情况下,也可以决 定为“更新时刻是每天1点和13点”。如果当前时刻是更新时刻,则处理进入步骤S102。MPUll命令防篡改PIC微机14 的驱动器(后面称为“防篡改装置驱动器”)开始用于生成公用密钥的处理。防篡改装置驱 动器作为公用密钥生成部3的一部分工作。BP,MPUll向防篡改装置驱动器提供作为用于生成公用密钥的种子(seed)使用的 数据(后面称为“种子数据”)作为参数。防篡改装置驱动器也是通过MPUll执行的程序的 1种。接着,在步骤S103中,防篡改装置驱动器向作为防篡改装置的防篡改PIC微机14 输出接受到的种子数据,并命令防篡改PIC微机14使用该种子数据生成新的公用密钥。并且,在步骤S104中,防篡改PIC微机14使用接受到的种子数据生成新的公用密 钥,并向防篡改装置通知所生成的公用密钥。防篡改装置驱动器将生成的新的公用密钥保 存在例如在DRAM15上实现的公用密钥保存部32中。通过以上那样做,如果当前时刻是更新时刻,则更新公用密钥。另一方面,如果当 前时刻不是更新时刻,则处理返回到步骤S101。另外,也可以通过定时器中断来实现步骤 SlOl的分支。接着,参照图10对访问密钥的更新进行说明。如关于图7所说明的那样,访问密 钥被定期更新。
图10是访问密钥更新处理的流程图。在步骤S201中,节点装置1内部的定时器计数器(即通过图4的定时器IC13实 现的图5的计数器34)进行递增计数操作。并且,在步骤S202中,访问密钥生成部2参照计数器34的值判断规定的时间、= 10分钟是否已经经过。如果规定的时间、=10分钟已经经过(即计数器34的值已经达 到作为与ti = 10分钟相对应的值而被预先设定的值),则处理进入步骤S203,如果规定的 时间、=10分钟还没有经过,则处理返回至步骤S201。在步骤S203中,访问密钥生成部2按照规定的算法生成新的访问密钥从而覆盖更 新访问密钥保存部31中存储的内部来源访问密钥。另外,在步骤S204中,进行定时器计数器(也就是说图5的计数器34)的清零动 作,之后处理返回至步骤S201。另外,也可以利用当计数值达到与规定的时间t2相当的值时就被清零的未图示的 第2计数器(也就是说图5的计数器34之外的计数器)来实现图9的公用密钥更新处理。 或者反之,访问密钥生成部2也可以通过参照时钟33判断当前时刻是否符合访问密钥的更 新时刻来实现图10的访问密钥更新处理。但是,在包含多数的节点装置1的自组织通信系统中,优选地,作为自组织通信系 统整体,流量在时间上分散。伴随着访问密钥的更新的问候帧的发送例如能够通过下面的 (1) (3)在自组织通信系统内从时间上被分散。(1)在图2的各节点装置IA II被设定为,在电源接入后经过共同的规定时间以 后开始图10的处理的情况下,对各节点装置IA II错开时刻接入电源。这样,由于基于 各节点装置IA II的访问密钥的更新时刻也分散,所以随着访问密钥的更新而接着产生 的问候帧的发送也从时间上分散而发生。(2)各节点装置IA II也可以被设定为,在电源接入后经过按每个节点装置 IA II不同的随机的时间以后开始图10的处理。例如,也可以在各节点装置IA II各 自的闪存16的规定的区域中预先写入上述随机的时间而设定。(3)在各节点装置IA II中也可以被设定为,上述的规定的时间、的长度不同。 例如作为MPUll执行的固件程序中利用的定数来预先设定规定的时间、。若如上述那样通过图10的处理生成了访问密钥,则如关于图7的步骤Sl和S2所 说明的那样,问候帧被发送。所生成的新的访问密钥通过问候帧被通知给邻接的节点装置。所以,下面参照图11 图13对问候帧的发送和接受进行详细说明。图11是问候帧发送处理的流程图。另外,图12是说明问候帧的格式和进行的与 问候帧有关的各种处理的图。图11的处理是以访问密钥生成部2生成了访问密钥为契机开始的。例如,在图7 的步骤Sl中节点装置IA执行图11的处理,在步骤S2中节点装置IB执行图11的处理。例 如,访问密钥生成部2向问候帧生成部36通知访问密钥的生成,由此问候帧生成部36开始 图11的处理。在步骤S301中,问候帧生成部36生成问候数据(即问候帧的净荷的原来的明文 数据)和问候帧的帧头。具体来讲,问候数据包含访问密钥生成部2新生成的访问密钥的 数据。
例如,问候帧是为了交换访问密钥而预先决定的规定的格式的帧即可,净荷中也 可以包含访问密钥以外的各种各样的字段。但是,下面为了使说明简单,对于本实施方式的 问候巾贞,以只在净荷中包含被加密的访问密钥的情况作为例子进行说明。在这种情况下,在步骤S301中问候帧生成部36能够只是从访问密钥保存部31中 作为问候数据读取内部来源访问密钥来准备问候数据。即,在步骤S301中准备图12的明 文访问密钥Dl作为问候数据。接着,在步骤S302中,问候帧生成部36计算问候数据的散列值,并将计算出的散 列值作为署名附加在问候帧的原来的明文帧的末尾。具体来讲,问候帧生成部36根据图12 的明文访问密钥Dl计算明文散列值D2,并将连接了帧头、明文访问密钥Dl和明文散列值 D2而得到的明文帧输出至问候帧加密部37。另外,“明文散列值”的名称是为了表明其与加 密后的散列值相比是加密前的原来的散列值的名称。并且,在步骤S303中,问候帧加密部37参照公用密钥保存部32读取公用密钥,并 使用公用密钥对在步骤S302中附加了署名后的明文帧(准确来讲是明文帧的净荷和帧尾) 进行加密。例如,在本实施方式中,作为加密算法采用作为流加密的1种的RC4。所以,在步 骤S303中,问候帧加密部37根据公用密钥生成密钥流,求出由明文访问密钥Dl和明文散 列值D2组成的部分与密钥流的异或(XOR :eXclusive OR)。由此,在步骤S303中,生成被 加密的净荷以及帧尾。具体来讲,如图12所示那样,问候帧加密部37根据明文访问密钥Dl生成加密访 问密钥D3,根据明文散列值D2生成加密散列值D4。另外,在图12中,使用了公用密钥的加 密或者解密的操作用黑色粗体箭头表示。另外,在步骤S301中准备的帧头没有被加密而是保持明文(cleartext)的原样被 使用。在本实施方式中,例如如图12所示那样,在步骤S301中准备包含本地收信地址D5、 本地发信地址D6、帧类型D7以及帧大小D8的各字段的自组织帧头D9。所以,在步骤S303中,问候帧加密部37将自组织帧头D9与作为净荷DlO的加密 访问密钥D3和作为帧尾Dll的加密散列值D4连接,生成问候帧。并且,问候帧加密部37 向问候帧发送缓冲41输出所生成的问候帧。另外,在本实施方式中,为了向邻接的多个装置(其他的节点装置和网关装置GW) 通知访问密钥,对问候帧进行广播。因此,具体来讲,本地收信地址D5是广播地址,本地发 信地址D6是节点装置1自身的MAC地址。另外,帧类型D7被设定成表示问候帧的值。帧大小D8指定了加密访问密钥D3和 加密散列值D4的长度的和(即明文访问密钥Dl和明文散列值D2的长度的和)。最后,在步骤S304中发送部7发送问候帧。即,作为步骤S303的结果暂时保存在 问候帧发送缓冲41中的问候帧由发送处理部44在步骤S304中读取并发送。图13是问候帧接收处理的流程图。例如,在图7的步骤Sl中,由于图2的节点装 置IA进行图11的处理,所以在与节点装置IA邻接的节点装置IB中进行图13的处理。在节点装置IB中,若接收部8接收到了问候帧,则帧分支处理部21根据自组织帧 头D9的帧类型D7判别“接收到的帧是问候帧”。并且,以该判别为契机开始图13的处理。 另外,由帧分支处理部21判别为是问候帧的接收帧被暂时保存在问候帧接收缓冲22中。
在步骤S401中,解密部5的问候帧解密部25参照公用密钥保存部32读取公用密 钥的数据。并且,问候帧解密部25使用公用密钥对保存在问候帧接收缓冲22中的问候帧 (在本实施方式中准确来说是其净荷和帧尾)进行解密。S卩,问候帧解密部25根据公用密钥生成密钥流,求出由净荷DlO和帧尾Dll组成 的部分和密钥流之间的X0R。由此,问候帧解密部25根据加密访问密钥D3得到解密后的明 文访问密钥D12,并且根据加密散列值D4得到解密后的明文散列值D13。并且,问候帧解密 部25向确认部29输出由自组织帧头D9、解密后的明文访问密钥D12和解密后的明文散列 值D13组成的明文帧。由此,在步骤S402中,确认部29从由问候帧解密部25输入的明文帧中提取解密 后的明文访问密钥D12。并且,确认部29计算解密后的明文访问密钥D12的散列值,得到图 12的计算出的散列值D14。并且,在步骤S403中,确认部29比较图12的解密后的明文散列值D13和计算出 的散列值D14。2个散列值如果相等,则确认部29判断为“0K”,处理转移至步骤S404。另一方面, 2个散列值如果不同,则确认部29判断为“NG”,处理转移至步骤S405。在步骤S404中,确认部29用解密后的明文访问密钥D12覆盖与本地发信地址D6 建立有关联的访问密钥保存部28内的外部来源访问密钥。其结果,与问候帧的发送源的节 点装置相对应的外部来源访问密钥被更新。并且结束图13的处理。另一方面,在步骤S405中,成为开始图13的处理的契机的该问候帧被废弃,结束 图13的处理。上面参照图10 图13对与图7的步骤Sl和S2相对应的处理进行了详细说明, 因此接着参照图14 图16对与图7的步骤S3和S4相对应的处理进行详细说明。图14是数据帧发送处理的流程图。在图7的步骤S3中节点装置IA进行图14的 处理,在步骤S4中节点装置IB进行图14的处理。根据实施方式,例如,也可以以来自与节 点装置1连接的传感器等的外部机器的输入作为契机开始数据帧发送处理。或者,节点装 置1也可以按照预先决定的计划进行数据帧发送处理。在本实施方式中,若下面的(1) (3)的条件成立,则数据帧生成部40开始图14 的处理。(1)准备作为发送对象的数据(后面称为“对象数据”)。对象数据例如可以由与 节点装置1连接的外部机器输入,也可以由数据帧生成部40生成。作为对象数据的例子, 是对图2进行说明的传感器数据。(2)决定最终的发送目的地(即自组织网络内的全局发送目的地)。也可以将最 终的发送目的地如图2的例子那样固定地决定为网关装置GW,还可以由数据帧生成部40动 态决定。(3)根据全局发送目的地决定本地发送目的地(即邻接的其他节点装置中的1 个)。作为自组织通信系统的构成要素的节点装置1能够根据全局发送目的地决定本地发 送目的地。另外,如下面那样对上述的(3)进行补充。如关于图1所说明的那样,作为自组织通信系统的构成要素的节点装置1能够生
17成关于在节点装置1自身的周围存在的其他节点装置的列表,并根据列表决定节点装置1 要转送帧的节点装置。也就是说,在节点装置1中安装有根据全局发送目的地决定本地发 送目的地并对帧进行路由的功能。例如,图2的节点装置IB生成关于节点装置IB自身的周围存在的其他节点装置 1A、IC以及IE的列表,管理“优选将最终的发送目的地是网关装置GW的帧向节点装置IC转 送”之类的信息。也就是说,节点装置IB将全局发送目的地(例如网关装置GW)与表示和 节点装置IB自身邻接的装置的本地发送目的地(例如节点装置1C)建立对应关系并管理, 进行帧的路由。例如将全局发送目的地和本地发送目的地建立对应关系的信息存储在图4 的 DRAMl5 中。另外,也可以对将全局发送目的地和本地发送目的地建立对应关系的信息进行加 权。通过加权表示对于某个全局发送目的地(例如网关装置GW)将与节点装置IB自身邻 接的多个装置(例如节点装置1A、1C以及1E)中的哪个优选作为转送目的地。例如,在图 2的例子中,与网关装置GW与节点装置IA的组合的权数相比,网关装置GW与节点装置IC 的组合的权数表示较高的优先级。即,通过加权表示了“对于最终的发送目的地是网关装置 GW的巾贞,与向节点装置IA或者IE转送相比,优选向节点装置IC转送”之类的信息。MPUll通过执行固件程序来管理上述的信息并判断是否需要转送接收到的帧。在 需要转送的情况下,执行固件程序的MPUl 1参照DRAM15根据全局发送目的地决定本地发送 目的地,并将所决定的本地发送目的地作为转送目的地来发送帧。这里若返回图14的说明,则如上面所述那样,数据帧发送处理在上述(1) (3) 的条件成立时开始。于是,在步骤S501中数据帧生成部40计算数据帧的净荷的原来的明文净荷的散 列值。数据帧生成部40将计算出的散列值附加在明文净荷的末尾作为后面的明文帧尾的 一部分。本实施方式在帧尾设有署名。这里,如下面所述,参照图15对步骤S501进行更加详细的说明。图15是说明数据帧的格式和进行的与数据帧有关的各种处理的第1例的图。图 15是对采用一部分与图8不同的格式的情况进行的说明。关于采用与图8相同的格式的情 况,在后面与图17—起说明。在步骤S501中,数据帧生成部40发布新的FID作为图15的明文FID/D15。另夕卜, 数据帧生成部40在步骤S501中不仅准备关于上述的条件(1)所说明的对象数据,还适当 地准备净荷中包含的其他数据。在步骤S501中准备的数据也可以是从DRAM15或者闪存 16中读取的数据,还可以是由数据帧生成部40生成的数据,也可以是由外部机器输入的数 据。例如,数据帧生成部40将指定作为数据帧的最终的发送目的地的全局发送目的 地的数据和条件(1)中准备的对象数据合并来生成明文帧体D16。另外,在图14中没有明示,但是,数据帧生成部40在步骤S501中还生成自组织帧 头D9。自组织帧头D9的形式和问候帧相同。即,在数据帧中,自组织帧头D9也包含本地收信地址D5、本地发信地址D6、帧类型 D7以及帧大小D8。但是,本地收信地址D5是如上述的条件(3)中所说明的那样决定的MAC 地址。另外,将帧类型D7设定成表示数据帧的值。
这样,数据帧生成部40在步骤S501中生成由自组织帧头D9、明文FID/D15和明文 帧体D16组成的明文净荷,并根据明文净荷计算图15的明文散列值D17。另外,在步骤S502中,数据帧生成部40参照时钟33取得当前时刻信息,将取得的 当前时刻信息作为图15的明文时刻D18连结在明文散列值D17的后面。明文散列值D17 和明文时刻D18组成的部分是加密署名的原来的明文署名。并且,数据帧生成部40向数据 帧加密部39输出由自组织帧头D9、明文净荷以及明文署名组成的明文帧。于是,在步骤S503中,数据帧加密部39参照公用密钥保存部32读取公用密钥,并 使用公用密钥对明文署名加密来得到加密署名D21。如上述那样,在本实施方式中采用了 RC4作为加密算法。所以,在步骤S503中,数 据帧加密部39具体来讲根据公用密钥生成密钥流,求出明文署名和密钥流之间的X0R。其结果,根据明文散列值D17得到加密散列值D19,根据明文时刻D18得到加密时 刻D20。换言之,根据明文署名整体得到由加密散列值D19和加密时刻D20组成的加密署名 D21。接着,在步骤S504中,数据帧加密部39使用由上述条件(3)决定的发送目的地的 节点装置(即、在本地发送目的地地址D5中指定了 MAC地址的节点装置)的访问密钥对明 文帧进行加密。即、数据帧加密部39参照访问密钥保存部28读取发送目的地的节点装置 的访问密钥,使用读取的访问密钥对明文净荷和加密署名D21进行加密。S卩,数据帧加密部39进行密钥流的生成和XOR运算。其结果,数据帧加密部39分 别地根据明文FID/D15生成加密FID/D22,根据明文帧体D16生成加密帧体D23。另外,数 据帧加密部39根据加密散列值D19生成二重加密散列值D24,根据加密时刻D20生成二重 加密时刻D25。也就是说,根据加密署名D21得到相当于帧尾的被二重加密的署名。另外,在图15以及图17中,用黑色箭头表示基于公用密钥的加密以及解密,用斜 线模样的箭头表示基于访问密钥的加密以及解密。如上面那样,生成由加密FID/D22和加密帧体D23组成的净荷D26和由二重加密 散列值D24和二重加密时刻D25组成的作为署名的帧尾D27。所以,在步骤S504中,数据帧 加密部39将净荷D26和帧尾D27与自组织帧头D9连结生成数据帧,并向数据帧发送缓冲 43输出。最后,在步骤S505中,发送部7发送数据帧。S卩,由发送处理部44在步骤S505中 读取作为步骤S504的结果暂时保存在数据帧发送缓冲43中的数据帧并发送。图16是数据帧接收处理的流程图。在图7的步骤S3中IB进行图16的处理,在 步骤S4中节点装置IA进行图16的处理。下面,为了方便说明,在图7的步骤S3中,对节点装置IB在接受部8中接收利用 访问密钥bl加密的数据帧的情况进行说明。若上述数据帧被节点装置IB接收了,则帧分支处理部21根据自组织帧头D9的帧 类型D7判别为“接收到的帧是数据帧”。并且,以该判别为契机开始图16的处理。另外,由 帧分支处理部21判别为是数据帧的接收帧被暂时保存在数据帧接收缓冲24中。在步骤S601中,解密部5的数据帧解密部27使用自身节点装置IB的访问密钥对 接收到的帧进行解密。即,数据帧解密部27参照访问密钥保存部31读取对节点装置IB自 身来说作为内部来源的访问密钥的访问密钥bl的数据。并且,数据帧解密部27使用访问密钥bl对保存在数据帧接收缓冲24中的数据帧(在本实施方式中准确来讲是其净荷和帧 尾)进行解密。即,数据帧解密部27根据访问密钥bl生成密钥流,求出密文(也就是由图15的 净荷D26和帧尾D27组成的部分)和密钥流之间的X0R。由此,数据帧解密部27根据加密 FID/D22得到解密后的明文FID/D28,根据加密帧体D23得到解密后的明文帧体D29。另外, 数据帧解密部27根据二重加密散列值D24得到解密后的密文散列值D30,根据二重加密时 刻D25得到解密后的密文时刻D31。也就是说,数据帧解密部27根据二重加密署名得到加
密署名 ο接着,在步骤S602中,数据帧解密部27参照公用密钥保存部32读取公用密钥的 数据,使用公用密钥对由解密后的密文散列值D30和解密后的密文时刻D31组成的加密署 名进行解密。其结果,根据解密后的密文散列值D30得到解密后的明文散列值D33,根据解 密后的密文时刻D31得到解密后的明文时刻D34。所以,数据帧解密部27将自组织帧头D9、解密后的明文FID/D28、解密后的明文帧 体D29、解密后的明文散列值D33以及计数34作为解密后的明文帧向确认部29输出。在步骤S603中,确认部29从来自数据帧解密部27的输入中提取由解密后的明文 FID/D28和解密后的明文帧体D29组成的部分(后面称为“解密后的明文净荷”)。并且,确 认部29计算解密后的明文净荷的散列值,得到图15的计算出的散列值D32。在步骤S603中,作为接受到的数据帧的认证判定处理,确认部29比较计算出的散 列值D32和解密后的明文散列值D33。如果接受到的数据帧是没有被篡改过之类的正确的 数据帧,则计算出的散列值D32和解密后的明文散列值D33 —致。所以,在计算出的散列值D32和解密后的明文散列值D33 —致的情况下,确认部29 判定为“0K”,处理转移至步骤S604。另一方面,在计算出的散列值D32和解密后的明文散 列值D33不一致的情况下,确认部29判定为“NG”,处理转移至步骤S608。在步骤S604中,确认部29提取解密后的明文时刻D34。由于步骤S604被执行是 因为是在步骤S603中判断为“0K”的情况,所以解密后的明文时刻D34等于原来的明文时 刻D18。另外,确认部29在步骤S604中也提取本地发信地址D6。并且,在步骤S605中,确认部29进行时刻判定处理。时刻判定处理是为了防御冒 充攻击的处理。另外,在本说明书中,将非法的第三者监听(即捕获)数据帧,并将监听到 的数据帧复制或者变更其中一部分进行发送的情况称为冒充攻击。具体来讲,确认部29参照图5的最新发送时刻保存部45进行时刻判定处理。如 图16所示那样,最新发送时刻保存部45存储将本地发信地址和时刻建立对应关系的项。例如,图16所示的第1项将本地发信地址A1和时刻T1建立了对应关系。另外,如 上所述,图16的说明是将节点装置IB进行图16的处理的情况作为例子。所以,图16所示 的第1项表示“根据节点装置IB从利用本地发信地址A1识别的节点装置接收到的最新的 数据帧得到的解密后的明文时刻D34是T/’。节点装置IB的电源被接入的时间点、即初始状态下的最新发送时刻保存部45没 有存储任何项,但是通过后面说明的步骤S606来向最新发送时刻保存部45追加项,或者更 新已经存在的项。在步骤S605中,确认部29将提取出的本地发信地址D6作为检索关键字对最新发送时刻保存部45进行检索。作为检索的结果,如果不存在“本地发信地址”字段与提取出 的本地发信地址D6 —致的项,则确认部29判断为“接收到的数据帧不是通过冒充攻击发 送来的数据帧”。即,确认部29判断为“接收到的数据帧是合法的数据帧”,处理转移至步骤 S606。相反,作为检索的结果,在找到“本地发信地址”字段与提取出的本地发信地址D6 一致的项的情况下,接收到的数据帧有可能是通过冒充攻击发送来的。所以,确认部29将 找到到的项的“时刻”字段的值与在步骤S604中提取出的解密后的明文时刻D34进行比较。在2个时刻一致的情况下,确认部29判断为“接收到的数据帧是基于冒充攻击的 数据帧”,处理转移至步骤S608。相反,如果2个时刻不一致,则确认部29判断为“来自利 用本地发信地址D6识别的节点装置的、与到目前为止节点装置IB接收到的数据帧不同的 新的数据帧被合法发送”,处理转移至步骤S606。在步骤S606中,确认部29更新利用本地发信地址D6识别的发送源节点装置的最 新时刻信息。即,在通过步骤S605的检索没有找到项的情况下,确认部29生成将本地发信地址 D6和解密后的明文时刻D34建立对应关系的新的项并保存在最新发送时刻保存部45中。 另外,在通过步骤S605的检索找到了项的情况下,确认部29用解密后的明文时刻D34覆盖 找到的该项的“时刻”字段的值。若通过上面所述更新了最新发送时刻保存部45保持的最新时刻信息,则确认部 29向接收数据帧处理部30输出明文帧。于是,在步骤S607中,接收数据帧处理部30使用来自确认部29的输入进行与实 施方式相应的处理。例如,在解密后的明文帧体D29中也可以指定对象数据的最终的发送目的地(也 就是全局发送目的地)。并且,接收数据帧处理部30也可以根据全局的发送目的地判断是 否需要转送数据帧,在要转送的情况下决定本地的发送目的地,并命令数据帧生成部40构 造新的数据帧。另外,接收数据帧处理部30也可以如关于图8所说明的那样,使用解密后的明文 FID/D28和解密后的明文时刻D34进行非法的数据帧和合法的数据帧的判别和接收到的数 据帧是否是再次发送的数据帧的判断。另外,在步骤S608中,接收到的数据帧被废弃,结束图16的处理。即,在步骤S608 中,确认部29不向接收数据帧处理部30输出数据。与上面参照图14 图16说明的数据帧的发送接收有关的一系列的处理能够根据 数据帧的格式适当地变形。和图17—起对其具体例进行说明。图17是说明数据帧的格式和进行的与数据帧有关的各种处理的第2例的图。图 17是将图8详细化的格式的一例。下面,以从节点装置IA向节点装置IB发送数据帧的情况为例,对与图17对应的 处理进行详细说明。节点装置IA的数据帧生成部40计算由明文FID/D15、明文时刻D18和明文帧体 D16组成的明文净荷的散列值,得到明文散列值D35。并且,节点装置IA的数据帧加密部39 使用公用密钥对明文散列值D35进行加密得到加密散列值D36,并使用节点装置IB的访问密钥bl对由明文净荷和加密散列值D36组成的部分进行加密。其结果,根据明文FID/D15得到加密FID/D37,根据明文时刻D18得到加密时刻 D38,根据明文帧体D16得到加密帧体D39,根据加密散列值D36得到二重加密散列值D40。节点装置IA的数据帧加密部39将由加密FID/D37、加密时刻D38和加密帧体D39 组成的净荷D41和作为帧尾D42的二重加密散列值D40与自组织帧头D9连结。通过连结 完成的加密数据帧被暂时保存在数据帧发送缓冲43中并从发送处理部44发送。并且,在接收到了加密后的数据帧的节点装置IB中,帧分支处理部21根据帧类型 D7判别为“接收到的帧是数据帧”,并将接受到的帧保存在数据帧接收缓冲24中。并且,数 据帧解密部27利用节点装置IB自身的访问密钥bl对净荷D41和帧尾D42进行解密。其结果,根据加密FID/D37得到解密后的明文FID/D43,根据加密时刻D38得到解 密后的明文时刻D44,根据加密帧体D39得到解密后的明文帧体D45。另外,根据二重加密 散列值D40得到解密后的密文散列值D46。数据帧解密部27还通过利用公用密钥对解密后 的密文散列值D46解密来得到解密后的明文散列值D48。于是,节点装置IB的确认部29计算由解密后的明文FID/D43、解密后的明文时刻 D44和解密后的明文帧体D45组成的部分的散列值,得到计算出的散列值D47。并且,确认 部29比较计算出的散列值D47和解密后的明文散列值D48,如果两者不一致则废弃数据帧。计算出的散列值D47和解密后的明文散列值D48 —致时,确认部29还将解密后 的明文时刻D44作为检索关键字对最新发送时刻保存部45进行检索,进行与图16的步骤 S605同样的时刻判定处理。步骤S605以后的处理和关于图16所说明的一样。如上面所述那样,本实施方式涉及的节点装置使用以规定的期间更新的公用密钥 交换访问密钥,利用公用密钥以及访问密钥判别是基于第三者的非法的访问还是来自合法 的节点装置的访问。因此,需要在节点装置之间使更新公用密钥和访问密钥的定时一致。 即,对于节点装置内的时刻,需要在网络内的节点装置之间预先取得同步。下面对时刻的同 步方法进行说明。图18是说明时刻的同步方法的图。以在图18的节点装置IA中取得时刻的同步 来校准时刻的情况为例进行说明。节点装置IA预先将自身节点装置IA的当前时刻和进行了时刻校准的最终时刻存 储在存储部中(例如DRAM15)。并且,在接收到了时刻同步用的时刻同步帧的情况下,从时 刻同步帧中取出与时刻有关的信息并与在自身节点装置IA中存储的信息进行比较。作为 比较的结果,在判断为需要进行同步的情况下,节点装置IA按照时刻同步帧中包含的信息 进行时刻校准。时刻同步帧在本实施方式中是与问候帧类似的格式的控制用帧的1种,包含表示 当前时刻以及进行了时刻校准的时刻(后面称为“同步时刻”)的数据。这里,当前时刻是 指在生成时刻同步帧的时间点上的该节点装置1自身的时刻,同步时刻是指在规定的装置 中取得了时刻的同步的时刻。所谓规定的装置在本实施方式中是指网关装置GW,时刻的同 步是指在网关装置GW中例如通过SNTP (Simple Network Time Protocol,简单网络时间协 议)等取得时刻的同步。在网关装置GW中,定期地、例如每2小时一次通过SNTP等取得时刻的同步。各节 点装置1在时刻同步帧中保存自身节点装置1的当前时刻和同步时刻并通过时刻同步帧广播。在规定的定时(例如每2小时1次)使用与上述的时间变化的公用密钥不同的固定的 时刻同步密钥对时刻同步帧进行加密并发送。在图18所示的例子中,在网关装置GW中,在12点通过SNTP等取得时刻的同步, 在13点生成时刻同步帧Pl并发送。接收到时刻同步帧Pl的节点装置IA比较自身节点装置IA中存储的最终同步时 刻和时刻同步帧Pl的同步时刻。在图18的例子中,时刻同步帧Pl的同步时刻(12:00)比 所存储的最终同步时刻(11:00)新。在这种情况下,节点装置IA作为当前时刻设定接收到 的时刻同步帧中保存的当前时刻(13:00)。这里,节点装置IA有时会接收如节点装置IB发送的时刻同步帧P2那样的、基于 不是最新时刻的同步的时刻同步帧。在接收了时刻同步帧P2的情况下,由于自身节点装置 IA中存储的最终同步时刻(11:00)比时刻同步帧P2的同步时刻(10:00)新,所以节点装置 IA不取得时刻的同步。接着,参照图19 图21对图18的例子进行更加详细的说明。图19是说明参照图18说明的时刻的同步方法的顺序图。在图19中表示了 SNTP 服务器SS、网关装置GW以及节点装置IA 1C。下面设为,在自组织网络内网关装置GW与 节点装置IA邻接,节点装置IA也与节点装置IB以及IC邻接。另外,网关装置GW和节点装置IA IC都具备图5的各部。另外,网关装置GW也 安装有基于SNTP的时刻校准功能。如步骤S701所示那样,若网关装置GW自身的时钟33的时刻变成12:00,则网关装 置GW按照预先决定的计划,通过SNTP访问SNTP服务器SS,进行时刻校准。另外,在网关装置GW中,关于发送时刻同步帧的定时,也预先设定如“13:00发送” 那样的计划。所以,若在步骤S701中的时刻校准的结果适当修正的网关装置GW的时钟表 示成13:00,则网关装置GW如步骤S702所示那样发送时刻同步帧P1。另外,对于发送时刻同步帧的定时,也可以对邻接的多个节点装置分别设定不同 的时刻。虽然省略了时刻同步帧的格式的详细的图示,但是时刻同步帧包含和图12的问 候帧同样的自组织帧头D9,并且,包含使用时刻同步密钥对包含“同步时亥Γ和“当前时刻” 这两个字段的明文净荷进行加密得到的加密净荷。例如,在步骤S702中,网关装置GW发送表示“同步时刻是12:00而当前时刻是 13:00”的时刻同步帧Ρ1。即,同步时刻字段的值是网关装置GW自身进行了步骤S701中的 时刻校准的时刻,当前时刻字段的值是网关装置GW发送时刻同步帧Pl的时刻。另外,下面设时刻同步帧Pl的本地收信地址是节点装置IA的地址。后面与图20 一起详细说明时刻同步帧发送处理。但是,在本实施方式中,在自组织网络内互相邻接的装置之间的通信延迟时间被 视为零。于是,当网关装置GW的时钟33是13:00的时候在节点装置IA中接收到时刻同步 帧Ρ1。但是,接收到时刻同步帧Pl时的节点装置IA的时钟33例如可能表示为12:58,也 可能表示为13:03。所以,接收到时刻同步帧Pl的节点装置IA在步骤S703中进行节点装置IA自身的 时钟33的时刻校准(即时刻同步处理)。其结果,节点装置IA的时钟33被校正到13:00。
23另外,步骤S703的时刻同步处理具体来讲是图21的时刻同步帧接收处理。对于在步骤S703中节点装置IA的时钟33被校正的情况,换言之,也可以说成在 步骤S703中节点装置IA从时间段Tnal切换到时间段Tna2。另外,各个节点装置IA IC根据各个计划设定进行时刻同步帧发送处理。例如, 在图19的例子中,若节点装置IB的时钟变成13:30,则节点装置IB如步骤S704所示那样 发送时刻同步帧P2。时刻同步帧P2表示“同步时刻是10:00而当前时刻是13:30”。另外, 设时刻同步帧P2的本地收信地址为节点装置IA的地址。由此,节点装置IA接收时刻同步帧P2,并以时刻同步帧P2的接收为契机,如步骤 S705所示那样进行时刻同步处理。但是,与已经在步骤S703中进行过的时刻同步处理中使 用过的时刻同步帧Pl中作为同步时刻表示的12:00相比,时刻同步帧P2中作为同步时刻 表示的10:00是旧的。因此,如与图21 —起详细说明的那样,在步骤S705中,节点装置IA 不更新时钟33。但是,在各个节点装置IA IC中,预先设定了从通过时刻同步处理校正时钟33 开始到向邻接的其他节点装置发送时刻同步帧为止的间隔Tnax。例如,对节点装置IA设定 的间隔Tnax是40分钟。也可以对每个节点装置IA IC设定不同的随机的间隔。另外,对于节点装置1A, 也可以将从校正时钟33开始到向多个节点装置IB和IC分别发送时刻同步帧为止的间隔 设定成相同的值(例如上述的间隔Tnax)。或者相反,也可以在1个节点装置IA中将从校 正时钟33开始到向节点装置IB发送时刻同步帧为止的间隔(在图19中没有图示)和从 校正时钟33开始到向节点装置IC发送时刻同步帧为止的间隔Tnax设定成不同的值。节点装置IA按照设定,若在校正时钟33起经过了规定的时间(即Tnax = 40分 钟),则如步骤S706所示那样进行时刻同步帧发送处理。在步骤S706中,发送表示“同步 时刻是12:00而当前时刻是13:40”的时刻同步帧P3。时刻同步帧P3表示“同步时刻是12:00”是因为成为节点装置IA校正时钟33的 契机的时刻同步帧Pl作为同期时刻表示的是12:00。另外,时刻同步帧P3表示“当前时刻 是13:40”是因为时刻同步帧P3是在13:40被发送的。并且,若在节点装置IC中接收到时刻同步帧P3,则如步骤S707所示那样,节点装 置IC进行时刻同步处理。图20是时刻同步帧发送处理的流程图。例如,分别地在图19的步骤S702中网关 装置GW进行图20的处理,在步骤S704中节点装置IB进行图20的处理,在步骤S706中节 点装置IA进行图20的处理。例如,节点装置IA的时刻同步部9也可以具备与图5的计数器34不同的未图示 的第2计数器。例如能够通过与图4的定时器IC13类似的硬件电路来实现第2计数器。在第2计数器中设定有表示间隔Tnax的值。并且,时刻同步部9当在后面与图21 一起说明的时刻同步帧接收处理结束时对第2计数器清零。当第2计数器的计数达到表示 间隔Tnax的值时,时刻同步部9开始图20的处理。或者,时刻同步部9也可以存储校正时钟33的时刻,通过参照时钟33来判断从进 行了存储的时刻算起是否经过了间隔Tnax,如果经过了间隔Tnax则开始图20的处理。若开始了图20的处理,则在步骤S801中时刻同步部9将自身节点装置1中保持的最终同步时刻作为同步时刻设定在帧中。时刻同步部9将根据最后进行了图21的处理时的时刻同步帧的同步时刻字段得 到的时刻作为节点装置1自身的“最终同步时刻”例如保持在DRAM15上。所以,在步骤S801 中,时刻同步部9在新生成的明文帧的同步时刻字段中设定所保持的最终同步时刻的值。例如在图19的例子中,在节点装置IA的时刻同步部9执行步骤S706的情况下, 时刻同步部9作为最终同步时刻保持成为在步骤S703中校正时钟33的契机的时刻同步帧 Pl表示的同步时刻、即12:00。所以,在步骤S706调用的图20的处理的步骤S801中,时刻 同步部9在新生成的明文帧的同步时刻字段中设定为12:00。接着,在步骤S802中,时刻同步部9将自身节点装置1的时刻同步帧发送时刻作 为“当前时刻”设定在帧中(也就是新生成的明文帧)。更严密来说,将步骤S802执行时时 钟33表示的时刻近似地看做来自节点装置1的时刻同步帧发送时刻,并通过时刻同步部9 将其设定在明文帧的当前时刻字段中。例如,在图19的例子中,在节点装置IA的时刻同步部9执行步骤S706的情况下, 在步骤S706调用的图20的处理的步骤S802中,时刻同步部9在明文帧的当前时刻字段中 设定为13:40。并且,在步骤S803中,时刻同步部9生成时刻同步帧的帧头,并将所生成的帧头附 加在明文净荷(包含同步时刻和当前时刻)的前面。在步骤S803中生成的帧头例如是与 问候帧的自组织帧头D9同样的形式。并且,时刻同步部9向时刻同步帧加密部38输出由 帧头和明文净荷组成的明文帧。于是,在步骤S804中,时刻同步帧加密部38参照时刻同步密钥保存部35读取时 刻同步密钥,并使用时刻同步密钥对明文净荷加密。例如,在用于对时刻同步帧进行加密的 加密算法也是RC4的情况下,在步骤S804中,时刻同步帧加密部38具体来讲进行密钥流的 生成和XOR操作。时刻同步帧加密部38向时刻同步帧发送缓冲42输出由在步骤S803中 附加的帧头和在步骤S804中被加密的净荷组成的时刻同步帧。最后在步骤S805中,发送部7发送时刻同步帧。也就是说,发送处理部44发送暂 时保存在时刻同步帧发送缓冲42中的时刻同步帧并结束图20的处理。图21是时刻同步帧接收处理的流程图。例如,在图19的步骤S703和S705中,节 点装置IA进行图21的处理。以节点装置1在接受部8中接收帧,接收部8的帧分支处理 部21根据自组织帧头D9的帧类型D7判别为“接收到的帧是时刻同步帧”为契机开始图21 的处理。另外,若帧分支处理部21判别为“接收到的帧是时刻同步帧”,则接收到的帧被输 出至时刻同步帧接收缓冲23中并被保存。在步骤S901中,时刻同步帧解密部26从时刻同步帧接收缓冲23中读取时刻同步 帧并进行解密。即,时刻同步帧解密部26参照时刻同步密钥保存部35读取时刻同步密钥, 并使用时刻同步密钥对时刻同步帧的被加密的净荷进行解密。在如上面所述那样用于对时刻同步帧进行加密的加密算法也是RC4的情况下,时 刻同步帧解密部26在步骤S901中具体来讲进行密钥流的生成和XOR操作。另外,解密后,时刻同步帧解密部26向时刻同步部9输出帧头和通过解密得到的 明文净荷。于是,在步骤S902中,时刻同步部9从明文净荷中提取同步时刻字段的值,并且读取例如在DRAM15中保持的最终同步时刻。并且时刻同步部9比较提取的同步时刻和读取 的最终同步时刻。在同步时刻比最终同步时刻新时,处理转移至步骤S903。相反,在同步时刻与最终 同步时刻相同又或者同步时刻比最终同步时刻旧时,处理转移至步骤S904。在步骤S903中,时刻同步部9将时刻同步帧的当前时刻作为自身节点装置1的时 刻来设定。即,时刻同步部9提取时刻同步帧的当前时刻字段的值,并在时钟33中设定提 取出的值,由此来校正时钟33的时刻。并且,结束图21的处理。例如,在图19的步骤S703调用图21的处理的情况下,步骤S903被执行,时刻同 步部9校正时钟33。另外,在步骤S904中,时刻同步部9废弃时刻同步帧并结束图21的处理。例如, 在图19的步骤S705调用图21的处理的情况下,步骤S904被执行。另外,如关于图20以及图21所说明的那样,虽然本实施方式的时刻同步帧中没有 特别包含署名等的帧尾,但是也可以是利用将明文净荷的散列值作为帧尾进行附加的格式 的时刻同期帧的实施方式。在这种情况下,在时刻同步帧发送处理中,时刻同步部9进行散列值的计算,时刻 同步帧加密部38对净荷和帧尾的双方进行加密。另外,在时刻同步帧接收处理中,时刻同 步帧解密部26对净荷和帧尾的双方进行解密。并且,确认部29根据通过解密得到的明文 净荷计算散列值,并比较计算出的散列值和通过解密得到的明文散列值,只有在2个散列 值一致的情况下时刻同步部9才执行步骤S902以后的处理。在构成自组织通信网络的节点装置数量较多的情况下,在各节点装置取得与网关 装置等的规定的1个装置的时刻同步的构成中,流量增大。另一方面,根据本实施方式,即 使在节点装置数量较多的情况下,各节点装置也如上述的时刻同步方法那样从邻接的节点 装置中的已经取得了同步的节点装置接收时刻同步帧来进行时刻校准。因此,根据本实施 方式,不增大网络整体的流量各节点装置就能够取得时刻的同步。上面参照图1 图21对本实施方式进行了详细的说明,关于本实施方式的节点装 置1的概况如下面所述。图3 图5所示的节点装置1是例如如图2、图6、图7、图18以及图19所示那样 由多个节点装置构成的网络中的节点装置中的一个。这里为了方便说明,以多个节点装置 中的第1节点装置IA和第2节点装置IB为着重点来说明第1节点装置IA的构成概况。第1节点装置IA如图3以及图5所示那样具有每隔第1时间就变更并生成作为 第1节点装置IA所固有的加密密钥的第1访问密钥的访问密钥生成部2。这里,所谓“第 1访问密钥”,例如是图6的访问密钥al,所谓“第1时间”,在上述的实施方式的例子中是、 =10(分钟)。另外,第1节点装置IA如图3以及图5所示那样具有每隔作为在多个节点装置中 共同的时间的第2时间就变更并生成网络内的多个节点装置中公用的公用密钥的公用密 钥生成部3。这里,所谓“第2时间”在上述的实施方式的例子中是、=12(小时)。另外,第1节点装置IA具有作为利用所生成的公用密钥对所生成的第1访问密钥 进行加密并向第2节点装置IB发送的访问密钥通知部而工作的组件。即,图3的帧处理部 6、加密部4和发送部7协同动作作为上述访问密钥通知部而工作。更详细来说,图5的问候帧生成部36、问候帧加密部37、问候帧发送缓冲41和发送处理部44协同动作作为上述 访问密钥通知部而工作。另外,第1节点装置IA具有作为接收从第2节点装置IB发送来的访问密钥通知 帧的访问密钥接收部而工作的组件。这里,“访问密钥通知帧”包含使用公用密钥对第2节 点装置IB所固有的加密密钥、即第2访问密钥进行加密得到的数据、即访问密钥通知数据, 具体来讲是上述实施方式中的被加密的问候帧。另外,“第2访问密钥”例如是图6的访问 密钥bl,“访问密钥通知数据”例如是图12的加密访问密钥D3。另外,在上述实施方式中,图3的接收部8 (更详细来讲是图5的帧分支处理部21 和问候帧接收缓冲22)作为访问密钥接收部而工作。另外,第1节点装置IA具有作为通过使用所生成的公用密钥对访问密钥通知数 据进行解密来从访问密钥通知数据中取得第2访问密钥的访问密钥解密部而工作的组件。 即,在上述实施方式中,图3的解密部5 (更详细来说是图5的问候帧解密部25)作为上述 访问密钥解密部而工作从而取得访问密钥bl。另外,第1节点装置IA具有作为数据发送部而工作的组件。数据发送部向第1明 文帧中附加使用公用密钥对包含根据第1明文帧计算出的第1散列值的数据进行加密得到 的第1署名数据。并且,数据发送部使用解密得到的第2访问密钥对附加有第1署名数据 的第1明文帧进行加密并作为第1加密帧发送。这里的“第1明文帧”的例子是包含关于图15所说明的由自组织帧头D9、明文 FID/D15和明文帧体D16组成的明文净荷的明文帧。“第1散列值”的例子是根据还没有生 成帧尾的明文帧(更准确来讲是根据明文净荷)计算出的图15的明文散列值D17,“第1 署名数据”的例子是加密署名D21。根据实施方式不同,也可以还利用帧头计算散列值。另 外,“第2访问密钥”具体来讲是图6的访问密钥bl。在上述实施方式中,图3的加密部4和发送部7 (更详细来讲是图5的数据帧加密 部39、数据帧发送缓冲43和发送处理部44)协同动作作为上述数据发送部而工作。另外,第1节点装置IA具有作为接收来自第2节点装置IB的第2加密帧的数据 接收部而工作的图3的接收部8 (更详细来说是图5的帧分支处理部21和数据帧接收缓冲 24)。这里,所谓“第2加密帧”是利用第1访问密钥对第2明文帧进行加密得到的帧,“第 2明文帧”是附加有利用上述公用密钥对包含第2散列值的数据进行加密得到的第2署名 数据的帧。另外,第1节点装置IA具有作为数据解密部而工作的图3的解密部5 (更详细来 说是图5的数据帧解密部27)。上述数据解密部利用第1访问密钥对第2加密帧进行解密, 并根据第2加密帧得到附加有第2署名数据的第2明文帧。在上述实施方式的说明中,结合从节点装置IA向节点装置IB发送数据帧的情况 对图15的例子进行了说明,但是图15也适用于从节点装置IB向节点装置IA发送数据帧 的情况。在这种情况下,图15的由自组织帧头D9、净荷D26和帧尾D27组成的数据帧相当 于从节点装置IB发送来的“第2加密帧”。并且,作为上述数据解密部而工作的节点装置IA的数据帧解密部27使用作为“第 1访问密钥”的访问密钥al得到第2明文帧。这里,“第2明文帧”包含由自组织帧头D9、被 解密的明文FID/D28以及被解密的明文帧体D29组成的明文净荷。另外,在“第2明文帧”中,由被解密的密文散列值D30和被解密的密文时刻D31组成的加密署名(相当于上述的 “第2署名数据”)作为帧尾被附加。另外,第1节点装置IA具有作为一致性确认部而工作的组件。在上述实施方式中, 图5的数据帧解密部27和确认部29协同动作作为一致性确认部而工作。具体来讲,作为 一致性确认部的一部分的数据帧解密部27通过使用所生成的公用密钥对第2署名数据进 行解密来取得第2散列值。并且,作为一致性确认部的一部分的确认部29根据第2明文帧 计算第3散列值(例如图15的计算出的散列值D32),并确认是否取得了第2散列值和上述 第3散列值的一致性。另外,上述的数据发送部还可以使第1明文帧中包含用于唯一识别第1明文帧的 第1识别符和表示第1发送时刻的信息。在上述实施方式中,数据帧生成部40也作为数据发送部的一部分而工作,数据帧 生成部40使第1明文帧中包含作为“第1识别符”的图17的明文FID/D15和作为“表示第 1发送时刻的信息”的明文时刻D18。或者,数据帧生成部40也可以如图15那样使第1明 文帧中包含加密时刻D20,作为“表示第1发送时刻的信息”。明文时刻D18和加密时刻D20 虽然有是明文或密文的区别,但是在“表示第1发送时刻”这一点上是相同的。另外,图5的接收数据帧处理部30还可以附加性地作为上述的一致性确认部而工 作。也就是说,在从第2加密帧解密得到的第2明文帧中包含的第2识别符等于从过去接 收过的第3加密帧解密得到的第3明文帧中包含的第3识别符的情况下,作为一致性确认 部的接收数据帧处理部30也可以将第2和第3明文帧中的通过解密得到的信息表示较新 的发送时刻的一方废弃。例如,若将图17的例子适用于从节点装置IB向节点装置IA发送的情况,则“第2 明文帧”由自组织帧头D9、明文净荷和作为明文帧尾的被解密的密文散列值D46组成。并 且,明文净荷由被解密的明文FID/D43、被解密的明文时刻D44以及被解密的明文帧体D45 组成。另外,“第2识别符”相当于被解密的明文FID/D43。并且,作为一致性确认部的接收数据帧处理部30如下面那样工作。即,接收数据 帧处理部30在明文FID/D43等于过去接收过的其他的数据帧的FID的情况下,将通过解密 得到的发送时刻(例如被解密的明文时刻D44)较新一方的数据帧废弃。这样,作为数据发送部以及一致性确认部的各部进行使用了识别符(具体来讲是 FID)的处理,由此节点装置IA能够检测出由非法的节点装置发送的帧。另外,网络内的多个节点装置(例如包含节点装置IA和1B)的各自的公用密钥生 成部3,如上面所述那样每隔共同的时间、即第2时间就生成公用密钥。所以,多个节点装置 的各自的时钟(例如图5的时钟33)如果在即使无视也不会产生问题的程度的误差范围内 互相同步,则在多个节点装置中生成公用密钥的定时也同步。但是,多个节点装置各自的时钟的时刻的错位也有可能随着时间扩大。所以,上述 实施方式通过校正多个节点装置各自的时钟的时刻的错位在网络内的多个节点装置之间 取得生成公用密钥的定时的同步。S卩,第1节点装置IA具有协同动作作为时刻同步帧发送部而工作的组件。时刻同 步帧发送部生成包含表示第1节点装置IA中的第1当前时刻和在第1节点装置IA中进行 了时刻校准的第1同步时刻的数据的第1时刻同步帧作为时刻同步帧并发送。
28
例如,在图19的例子中,步骤S703以后的“第1同步时刻”是1200,在步骤S706 中发送包含表示作为“第1当前时刻”的13:40的信息的时刻同步帧P3。另外,虽然上述实施方式的时刻同步帧被利用时刻同步密钥加密,但是时刻同步 帧没有被加密的实施方式也是可能的。所以,虽然在上述实施方式中图5的时刻同步部9、 时刻同步帧加密部38、时刻同步帧发送缓冲42以及发送处理部44协同动作作为时刻同步 帧发送部而工作,但是也可以省略时刻同步帧加密部38。另外,第1节点装置IA具有作为从第2节点装置IB接收第2时刻同步帧的时刻 同步帧接收部而工作的组件。这里,第2时刻同步帧包含表示第2节点装置IB中的第2当 前时刻(例如在图19的例子中是13:30)和在上述第2节点装置中进行了时刻校准的第2 同步时刻(例如在图19的例子中是10:00)的数据。在上述实施方式中,图5的帧分支处理部21以及时刻同步帧接收缓冲23协同动 作作为上述时刻同步帧接收部而工作。并且,第1节点装置IA具有作为时刻更新部而工作的组件。时刻更新部比较根据 第2时刻同步帧得到的第2同步时刻和第1节点装置IA存储的第1同步时刻。并且,如果 第2同步时刻较新,则时刻更新部设定第2当前时刻作为第1节点装置IA中的当前时刻, 来更新第1节点装置IA的时刻。具体来讲,图5的时刻同步部9作为时刻更新部而工作。另外,在上述实施方式中, 由于时刻同步帧被加密,所以为了根据第2时刻同步帧得到第2同步时刻,时刻同步帧解密 部26也作为时刻更新部的一部分而工作。并且,节点装置IA例如具有DRAM15作为存储部。该存储部将第2同步时刻作为 通过作为时刻更新部的时刻同步部9更新第1节点装置IA的时刻进行了时刻校准的时刻 进行存储。另外,图3以及图5的公用密钥生成部3根据作为时刻更新部的时刻同步部9 进行了更新的时刻(具体来讲是图5的时钟33表示的时刻)对第2时间进行计时。根据上面大概描述的上述实施方式,在第2节点装置是合法的节点装置的情况 下,第2节点装置保有和第1节点装置公用的公用密钥。所以,能够使用公用密钥安全地交 换第1节点装置中生成的第1访问密钥和第2节点装置中生成的第2访问密钥。另外,第1节点装置能够使用通过解密得到的第2节点装置的第2访问密钥对数 据加密并向第2节点装置发送。并且,第1节点装置还能够从第2节点装置接收使用第1 节点自身生成的第1访问密钥加密后的数据。这样,根据上述实施方式,各节点装置自主地与其他的节点装置协同动作进行用 于加密的动作。所以,即使在包含非常多的节点装置的网络中,也不会发生用于加密密钥的 交换的流量集中的情况。另外,各节点装置为了自主地进行用于加密的动作,需要取得各节点装置根据时 间生成并通过修改进行变更的公用密钥的变更定时的同步。根据上述的实施方式,提供了 构成简单并且不会增加网络负荷的、能够取得同步而自主地变更公用密钥的节点装置。另外,在上述的实施方式中,主要说明了节点装置,但是使计算机执行上述方法的 控制程序也包含在本发明的实施方式的一例中。该控制程序也可以通过由磁盘、光磁盘、非 易失性的半导体存储器、光盘等的计算机能够读取的存储介质存储来提供,被加载到计算 机上并由计算机执行。
执行该控制程序的计算机内置在未图示的节点装置中或者与其连接,按照该控制 程序控制上述未图示的节点装置以使上述未图示的节点装置和上述实施方式的节点装置1 同样动作。例如,如果从其他的观点来看上述实施方式,也可以说成节点装置1的内置计算 机、即MPUll按照闪存16中存储的控制程序控制节点装置1并使上述各处理在节点装置1 中执行。另外,上述实施方式中示例的RC4是能够采用的加密算法的一个例子。也可以根 据实施方式不同进行基于其他的加密算法的加密以及解密。例如,也可以使用流加密以外 的加密算法。另外,分别使用了时刻同步密钥、公用密钥和访问密钥的加密以及解密也可以 基于不同的加密算法。另外,问候帧、数据帧、时刻同步帧的格式当然不限定于上述实施方式中示例的格 式。例如,各帧还可以包含上述实施方式中没有示例的字段。相反,如果帧是固定长度,帧 大小D8的字段可以省略。并且,上述实施方式中示例的“10分钟”等的具体的数值只不过是为了帮助理解才 表示的,可以根据实施方式设定各种各样的具体的数值。
权利要求
1.一种节点装置,其特征在于,是由包含第1节点装置和第2节点装置的多个节点装置构成的网络中的上述第1节点 装置,具有访问密钥生成部,每隔第1时间变更生成上述第1节点装置所固有的加密密钥、即第1 访问密钥;公用密钥生成部,每隔在上述多个节点装置中共同的时间、即第2时间变更生成在上 述网络内的上述多个节点装置中公用的公用密钥;访问密钥通知部,使用所生成的上述公用密钥对所生成的上述第1访问密钥进行加密 并向上述第2节点装置发送;访问密钥接收部,接收从上述第2节点装置发送来的包含访问密钥通知数据的访问密 钥通知帧,该访问密钥通知数据是使用上述公用密钥对上述第2节点装置所固有的加密密 钥、即第2访问密钥进行加密得到的数据;访问密钥解密部,使用所生成的上述公用密钥对上述访问密钥通知数据解密,由此根 据上述访问密钥通知数据取得上述第2访问密钥;数据发送部,向第1明文帧附加使用上述公用密钥对包含根据该第1明文帧计算出的 第1散列值的数据进行加密得到的第1署名数据,使用通过解密得到的上述第2访问密钥 对附加有上述第1署名数据的上述第1明文帧进行加密并作为第1加密帧发送;数据接收部,从上述第2节点装置接收利用上述第1访问密钥对第2明文帧进行加密 得到的第2加密帧,该第2明文帧附加有使用上述公用密钥对包含第2散列值的数据进行 加密得到的第2署名数据;数据解密部,使用上述第1访问密钥对上述第2加密帧进行解密,从而根据上述第2加 密帧得到附加有上述第2署名数据的上述第2明文帧;和一致性确认部,通过使用所生成的上述公用密钥对上述第2署名数据解密来取得上述 第2散列值,根据上述第2明文帧计算第3散列值,并确认是否取得了上述第2散列值和上 述第3散列值的一致性。
2.根据权利要求1所述的节点装置,其特征在于,上述数据发送部使上述第1明文帧中包含用于唯一识别上述第1明文帧的第1识别符 和表示第1发送时刻的信息;在上述数据解密部从上述第2加密帧解密得到的上述第2明文帧中包含的第2识别符 与从过去接收过的第3加密帧解密得到的第3明文帧中包含的第3识别符相等的情况下, 上述一致性确认部还废弃上述第2明文帧和上述第3明文帧中的通过解密得到的信息表示 较新的发送时刻的一方。
3.根据权利要求2所述的节点装置,其特征在于, 具有时刻同步帧发送部,生成包含表示上述第1节点装置中的第1当前时刻和在上述第1 节点装置中进行了时刻校准的第1同步时刻的数据的第1时刻同步帧作为时刻同步帧并发 送;时刻同步帧接收部,从上述第2节点装置接收包含表示上述第2节点装置中的第2当 前时刻和在上述第2节点装置中进行了时刻校准的第2同步时刻的数据的第2时刻同步帧;时间更新部,比较根据上述第2时刻同步帧得到的第2同步时刻和上述第1节点装置存储的上述第1同步时刻,如果上述第2同步时刻较新,则将上述第2当前时刻设定为上述 第1节点装置中的当前时刻来更新上述第1节点装置的时刻;和存储部,存储上述第2同步时刻,作为通过上述时刻更新部更新第1节点装置的时刻来 进行了时刻校准的时刻;上述公用密钥生成部根据上述时刻更新部进行了更新的时刻对上述第2时间进行计时。
4. 一种程序,其特征在于,使控制由包含第1节点装置和第2节点装置的多个节点装置构成的网络中的上述第1 节点装置的计算机执行下列处理每隔第1时间变更生成上述第1节点装置所固有的加密密钥、即第1访问密钥; 每隔在上述多个节点装置中共同的时间、即第2时间变更生成在上述网络内的上述多 个节点装置中公用的公用密钥;使用所生成的上述公用密钥对所生成的上述第1访问密钥进行加密并向上述第2节点 装置发送;接收从上述第2节点装置发送来的包含访问密钥通知数据的访问密钥通知帧,该访问 密钥通知数据是使用上述公用密钥对上述第2节点装置所固有的加密密钥、即第2访问密 钥进行加密得到的数据;使用所生成的上述公用密钥对上述访问密钥通知数据解密,由此根据上述访问密钥通知数据取得上述第2访问密钥;向第1明文帧附加使用上述公用密钥对包含根据该第1明文帧计算出的第1散列值的数据进行加密得到的第1署名数据,使用通过解密得到的上述第2访问密钥对附加有上述 第1署名数据的上述第1明文帧进行加密并作为第1加密帧发送;从上述第2节点装置接收利用上述第1访问密钥对第2明文帧进行加密得到的第2加密帧,该第2明文帧附加有使用上述公用密钥对包含第2散列值的数据进行加密得到的第 2署名数据;使用上述第1访问密钥对上述第2加密帧进行解密,从而根据上述第2加密帧得到附加有上述第2署名数据的上述第2明文帧;通过使用所生成的上述公用密钥对上述第2署名数据解密来取得上述第2散列值,根据上述第2明文帧计算第3散列值,并确认是否取得了上述第2散列值和上述第3散列值 的一致性。
全文摘要
在由多个节点装置构成的网络中的第1节点装置中,访问密钥生成部每隔第1时间变更第1节点装置所固有的加密密钥、即第1访问密钥。公用密钥生成部每隔第2时间变更在多个节点装置中公用的公用密钥。第1节点装置使用所生成的公用密钥对所生成的第1访问密钥进行加密并发送,并且接收由第2节点装置发送来的、包含使用公用密钥对第2节点装置的第2访问密钥进行加密得到的数据的访问密钥通知帧。解密部通过使用所生成的公用密钥对接收到的访问密钥通知帧进行解密来取得第2访问密钥。发送部发送使用第2访问密钥对明文帧进行加密得到的加密帧,该明文帧附加有使用公用密钥对包含根据明文帧计算出的散列值的数据进行加密得到的署名数据。
文档编号H04L9/08GK102007726SQ20098011333
公开日2011年4月6日 申请日期2009年4月24日 优先权日2008年4月24日
发明者中嶋千明, 古贺俊介, 增渊健太郎, 岩尾忠重, 池本健太郎, 高桥勇治 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1