專利名稱:節(jié)點裝置以及程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自律分散型網(wǎng)絡(luò)中的用于安全維護的裝置以及程序。
背景技術(shù):
作為安全性對策的一種,一直在對發(fā)送數(shù)據(jù)進行加密。作為加密的方法,例如有公 用密鑰方式(也叫做對稱密鑰加密方式)。另外,為了進一步鞏固安全性,還有如下面的公 知例那樣每隔一定時間就使公用密鑰變化的技術(shù)。另外,也有WEP(Wired Equivalent Privacy,有線等效保密)和 WPA(Wi_Fi Protected Access, Wi-Fi保護訪問)等的安全方式。根據(jù)這些技術(shù),一般是通過在服務(wù)器中發(fā)出控制命令來進行認證處理。另外,也公開了一種技術(shù),在通信系統(tǒng)中,保持客戶端側(cè)的密碼不變而只變更服務(wù) 器的控制變量,由此來變更共有的加密密鑰。由此,能夠以較短的時間間隔使共有的公用密 鑰變化從而提高了密碼系統(tǒng)的安全性。專利文獻1 日本特開平9-321748號公報與有線還是無線無關(guān),在考慮包含非常多的節(jié)點裝置的網(wǎng)絡(luò)的情況下,1個管理服 務(wù)器生成公用密鑰(也就是說根據(jù)時間變更)并向各節(jié)點裝置通知并不實用。即,由于節(jié) 點裝置的數(shù)量較多,所以即使只是從服務(wù)器發(fā)送控制指令也會造成大量負荷。因此,希望各 節(jié)點裝置與其他節(jié)點裝置協(xié)同動作自主地進行用于加密的動作。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種與其他節(jié)點裝置協(xié)同動作自主地進行用于加密的動 作的節(jié)點裝置,以及命令節(jié)點裝置與其他節(jié)點裝置協(xié)同動作自主地進行用于加密的動作的 程序。第1方式的節(jié)點裝置是由包含第1節(jié)點裝置和第2節(jié)點裝置的多個節(jié)點裝置構(gòu)成 的網(wǎng)絡(luò)中的上述第1節(jié)點裝置,具有訪問密鑰生成部、公用密鑰生成部、訪問密鑰通知部、 訪問密鑰接收部、訪問密鑰解密部、數(shù)據(jù)發(fā)送部、數(shù)據(jù)接收部、數(shù)據(jù)解密部以及一致性確認 部。上述訪問密鑰生成部每隔第1時間變更生成作為上述第1節(jié)點裝置中固有的加密 密鑰的第1訪問密鑰。另外,上述公用密鑰生成部每隔在上述多個節(jié)點裝置中是共同的時 間的第2時間變更生成在上述網(wǎng)絡(luò)內(nèi)的上述多個節(jié)點裝置中公用的公用密鑰。上述訪問密鑰通知部使用所生成的上述公用密鑰對生成的上述第1訪問密鑰進 行加密并向上述第2節(jié)點裝置發(fā)送。上述訪問密鑰接收部接收從上述第2節(jié)點裝置發(fā)送來 的包含訪問密鑰通知數(shù)據(jù)的訪問密鑰通知幀,該訪問密鑰通知數(shù)據(jù)是使用上述公用密鑰對 作為上述第2節(jié)點裝置所固有的加密密鑰的第2訪問密鑰進行加密而得到的數(shù)據(jù)。上述訪問密鑰解密部使用所生成的上述公用密鑰對上述訪問密鑰通知數(shù)據(jù)解密, 由此從上述訪問密鑰通知數(shù)據(jù)中取得上述第2訪問密鑰。
上述數(shù)據(jù)發(fā)送部向第1明文幀附加使用上述公用密鑰對包含根據(jù)該第1明文幀計 算出的第1散列(hash)值的數(shù)據(jù)進行加密得到的第1署名數(shù)據(jù)。并且,上述數(shù)據(jù)發(fā)送部使 用解密得到的上述第2訪問密鑰對附加有上述第1署名數(shù)據(jù)的上述第1明文幀進行加密并 作為第1加密幀發(fā)送。上述數(shù)據(jù)接收部從上述第2節(jié)點裝置接收第2加密幀。這里,上述第2加密幀,是 利用上述第1訪問密鑰對第2明文幀進行加密得到的,該第2明文幀附加有使用上述公用 密鑰對包含第2散列值的數(shù)據(jù)進行加密得到的第2署名數(shù)據(jù)。上述數(shù)據(jù)解密部使用上述第1訪問密鑰對上述第2加密幀進行解密,從而從上述 第2加密幀中得到附加有上述第2署名數(shù)據(jù)的上述第2明文幀。上述一致性確認部通過使用所生成的上述公用密鑰對上述第2署名數(shù)據(jù)解密來 取得上述第2散列值。并且,上述一致性確認部根據(jù)上述第2明文幀計算第3散列值,并確 認是否取得了上述第2散列值和上述第3散列值之間的一致性。第2方式的程序是由控制由包含第1節(jié)點裝置和第2節(jié)點裝置的多個節(jié)點裝置構(gòu) 成的網(wǎng)絡(luò)中的上述第1節(jié)點裝置的計算機執(zhí)行的程序。上述程序是使上述計算機控制第2 方式的上述第1節(jié)點裝置以使得第2方式的上述第1節(jié)點裝置與第1方式的上述第1節(jié)點 裝置同樣地進行動作的程序。在上述任何一個方式中,網(wǎng)絡(luò)中的第1節(jié)點裝置能夠自主地并且與第2節(jié)點裝置 等其他節(jié)點裝置協(xié)同動作來進行為了加密通信的動作。所以,上述任何一個方式,都能夠提 高包含多個節(jié)點裝置的網(wǎng)絡(luò)中的通信的安全性。
圖1是自組織(ad hoc)通信系統(tǒng)的整體概念圖。圖2是表示包含多個節(jié)點裝置的傳感器網(wǎng)絡(luò)的例子的網(wǎng)絡(luò)構(gòu)成圖。圖3是實施方式涉及的節(jié)點裝置的構(gòu)成圖。圖4是實施方式涉及的節(jié)點裝置的硬件構(gòu)成圖。圖5是更加詳細表示本實施方式涉及的節(jié)點裝置的構(gòu)成的圖。圖6是對基于實施方式涉及的節(jié)點裝置的認證方法進行說明的圖。圖7是表示了在2個節(jié)點裝置之間互相認證對方的節(jié)點裝置并進行通信的處理的 順序圖。圖8是表示數(shù)據(jù)幀的格式的圖。圖9是公用密鑰更新處理的流程圖。圖10是訪問密鑰更新處理的流程圖。圖11是問候幀發(fā)送處理的流程圖。圖12是說明問候幀的格式和進行的與問候幀有關(guān)的各種處理的圖。圖13是問候幀接收處理的流程圖。圖14是數(shù)據(jù)幀發(fā)送處理的流程圖。圖15是說明數(shù)據(jù)幀的格式和進行的與數(shù)據(jù)幀有關(guān)的各種處理的第1例的圖。圖16是數(shù)據(jù)幀接收處理的流程圖。圖17是說明數(shù)據(jù)幀的格式和進行的與數(shù)據(jù)幀有關(guān)的各種處理的第2例的圖。
圖18是說明時刻同步方法的圖。圖19是說明時刻同步方法的順序圖。圖20是時刻同步幀發(fā)送處理的流程圖。圖21是時刻同步幀接收處理的流程圖。
具體實施例方式下面,參照附圖對本發(fā)明的實施方式進行詳細說明。圖1是自組織通信系統(tǒng)的整
體概略圖。如圖1所示那樣,節(jié)點裝置(a、b.....s、t)相互連接構(gòu)成網(wǎng)。在自組織通信系
統(tǒng)中,各節(jié)點裝置作為中繼器工作,將信息從開始節(jié)點(圖1的例中的節(jié)點裝置b)傳遞到 目標(biāo)節(jié)點(圖1的例中的節(jié)點裝置t)。各節(jié)點裝置各自保有固有的識別信息(ID、Identification)、即節(jié)點ID。也可以 將MAC (Media Access Control)地址作為節(jié)點ID利用。各節(jié)點裝置不把握相互鄰接的節(jié)點裝置和網(wǎng)絡(luò)整體。在初始狀態(tài)時,相互的鏈接 不存在,各節(jié)點裝置不把握自身以外的節(jié)點裝置。所以,在圖1所示的自組織通信系統(tǒng)中,為了將信息從作為開始節(jié)點的節(jié)點裝置b 傳遞到作為目標(biāo)節(jié)點的節(jié)點裝置t,首先需要決定路徑。決定路徑的順序如下面所述。首先,各節(jié)點裝置檢測周圍的節(jié)點裝置。為此各節(jié)點裝置周期性地向鄰近存在的 節(jié)點裝置通知自身的存在。在針對鄰近節(jié)點裝置的通知中附帶有與路徑生成有關(guān)的信息。 各節(jié)點裝置若從其他的節(jié)點裝置接收到了通知,則能夠生成關(guān)于周圍的節(jié)點裝置的列表, 并把握自身節(jié)點裝置的周圍存在的其他節(jié)點裝置。檢測出周圍的節(jié)點裝置的節(jié)點裝置根據(jù)所生成的列表決定自身節(jié)點裝置要轉(zhuǎn)送 信息的節(jié)點裝置,并向該決定的節(jié)點裝置轉(zhuǎn)送信息。各節(jié)點裝置,由于安全對策的原因,將幀加密后與對方的節(jié)點裝置通信。具體來 講,各節(jié)點裝置使用通信對方的節(jié)點裝置所固有的加密密鑰和網(wǎng)絡(luò)中的節(jié)點裝置之間公用 的公用密鑰進行加密,并將信息發(fā)送至通信對方的節(jié)點裝置。另外,各節(jié)點裝置若從通信對 方的節(jié)點裝置接收到了信息,則使用自身節(jié)點裝置所固有的加密密鑰和上述的公用密鑰對 幀進行解密來取出信息。后面同樣,在節(jié)點裝置間的通信中,各節(jié)點裝置使用解密得到的加密密鑰將數(shù)據(jù) 發(fā)送至通信對方的節(jié)點裝置。另外,各節(jié)點裝置根據(jù)接收到的數(shù)據(jù)是利用自身節(jié)點裝置生 成的加密密鑰被加密了的情況判斷通信對方的節(jié)點裝置是合法的。下面,具體說明基于本實施方式涉及的節(jié)點裝置的認證處理以及通信的方法。本實施方式的節(jié)點裝置能夠應(yīng)用于如圖1那樣的任意的自組織通信系統(tǒng)中,也可 以應(yīng)用于例如如圖2那樣的通過自組織網(wǎng)絡(luò)實現(xiàn)的傳感器網(wǎng)絡(luò)中。圖2是表示包含多個節(jié)點裝置的傳感器網(wǎng)絡(luò)的例子的網(wǎng)絡(luò)構(gòu)成圖。在圖2的傳感器網(wǎng)絡(luò)中,多個節(jié)點裝置IA II以及網(wǎng)關(guān)裝置GW構(gòu)成了自組織網(wǎng) 絡(luò)。另外,網(wǎng)關(guān)裝置GW例如通過電纜與服務(wù)器SV連接。當(dāng)然,網(wǎng)關(guān)裝置GW和服務(wù)器SV之 間的連接也可以是經(jīng)由網(wǎng)絡(luò)的連接,也可以是基于無線的連接。在圖2中,多個節(jié)點裝置IA II各自或者與未圖示的1個以上的傳感器連接,或 者內(nèi)置有未圖示的1個以上的傳感器。后面為了使說明簡單,設(shè)各節(jié)點裝置IA II各自與1個傳感器連接。傳感器例如也可以是感知溫度、壓力、加速度等的傳感器。另外,也可 以使用不同種類的多個傳感器。各節(jié)點裝置IA II從與自身節(jié)點裝置連接的傳感器取得表示傳感器感知的結(jié)果 的數(shù)據(jù)(后面稱為“傳感器數(shù)據(jù)”)。并且,各節(jié)點裝置IA II生成包含所取得的傳感器 數(shù)據(jù)的加密幀(后面稱為“傳感器數(shù)據(jù)幀”),通過自組織網(wǎng)絡(luò)向網(wǎng)關(guān)裝置GW發(fā)送傳感器數(shù) 據(jù)幀。例如,各傳感器也可以在1分鐘內(nèi)向節(jié)點裝置輸出一次傳感器數(shù)據(jù)。所以,在如上 所述那樣節(jié)點裝置IA II分別與1個傳感器連接的情況下,各節(jié)點裝置IA II在1分 鐘內(nèi)發(fā)送1次傳感器數(shù)據(jù)幀。網(wǎng)關(guān)裝置GW和各節(jié)點裝置IA II 一樣具備后面說明的圖3的各部,能夠和節(jié)點 裝置IA II協(xié)同動作自主地構(gòu)成自組織網(wǎng)絡(luò)。也就是說,在節(jié)點裝置IA II和網(wǎng)關(guān)裝 置GW之間,公用密鑰是公用的,后面說明的時刻同步用的固定密鑰也是公用的。網(wǎng)關(guān)裝置GW將由各節(jié)點裝置IA II發(fā)送來的傳感器數(shù)據(jù)幀中包含的傳感器數(shù) 據(jù)發(fā)送至服務(wù)器SV。例如,網(wǎng)關(guān)裝置GW也可以如下面那樣動作。網(wǎng)關(guān)裝置GW對接收到的傳感器數(shù)據(jù)幀進行解密并提取傳感器數(shù)據(jù)。并且,網(wǎng)關(guān)裝 置GW向服務(wù)器SV發(fā)送包含提取出的傳感器數(shù)據(jù)的數(shù)據(jù)?;蛘?,網(wǎng)關(guān)裝置GW也可以進一步從接收到的傳感器數(shù)據(jù)幀中提取傳感器數(shù)據(jù)幀 的發(fā)送源的節(jié)點裝置(1A II中的任意一個)的識別信息。并且,網(wǎng)關(guān)裝置GW也可以生 成將對包含傳感器數(shù)據(jù)和識別信息的數(shù)據(jù)進行加密而得到的數(shù)據(jù)包含在凈荷中的加密幀 并向服務(wù)器SV發(fā)送。服務(wù)器SV能夠使用收集到的傳感器數(shù)據(jù)進行基于傳感器感知的物理量的任意的 各種處理。例如,在各傳感器是溫度傳感器的情況下,服務(wù)器SV也可以進行分析溫度分布 和溫度變化的處理,還可以進行溫度預(yù)測處理。如果將后面詳細說明的本實施方式的節(jié)點裝置1作為圖2的節(jié)點裝置IA IH利 用,則服務(wù)器SV能夠在將傳感器數(shù)據(jù)保持秘密狀態(tài)的同時對其進行收集,并且能夠收集未 經(jīng)篡改的正確的傳感器數(shù)據(jù)。圖3是本實施方式涉及的節(jié)點裝置的構(gòu)成圖。圖3所示的節(jié)點裝置1具有訪問密 鑰生成部2、公用密鑰生成部3、加密部4、解密部5、幀處理部6、發(fā)送部7、接收部8以及時 刻同步部9。例如,圖2的節(jié)點裝置IA II各自具有圖3那樣的構(gòu)成。訪問密鑰生成部2生成節(jié)點裝置1所固有的加密密鑰(后面稱為“訪問密鑰”)。 使用公知的WEP和WPA等技術(shù)生成訪問密鑰。作為對稱密鑰加密方式中的加密密鑰生成訪 問密鑰并使用。另外,每隔規(guī)定的時間間隔、隨機更新訪問密鑰。在本實施方式中,例如、= 10(分鐘)。另外,訪問密鑰通過RC4(Rivest’ s Cipher 4)被加密并發(fā)送至其他的節(jié)點裝置, 在本實施方式中,訪問密鑰的長度是128位。由于RC4是流加密的1種,所以通過RC4加密 的密文(ciphertext)的長度等于原先的明文(plaintext)的長度。但是,一般來說,密鑰的長度是64位的RC4的解讀需要收集50萬幀,密鑰的長度 是128位的解讀需要收集100萬幀。對此,如上所述,在本實施方式中,訪問密鑰每隔、=10分鐘隨機地變化。例如,如與圖2相關(guān)的示例那樣,若設(shè)通常每分鐘發(fā)送1幀,則10分鐘內(nèi)發(fā)送10 幀。并且,例如,在圖2的例子中,作為傳感器數(shù)據(jù)幀的最終發(fā)送目的地的網(wǎng)關(guān)裝置GW在自 組織網(wǎng)絡(luò)內(nèi)接收最多的幀。但是,即使是網(wǎng)關(guān)裝置GW,例如從總數(shù)500臺的節(jié)點裝置接收數(shù) 據(jù)的情況下的幀數(shù)是每分鐘大約500幀。即,在訪問密鑰被更新之前的10分鐘內(nèi),非法節(jié) 點裝置收集解讀所需要的幀,可以說事實上是不可能的。公用密鑰生成部3通過節(jié)點裝置1內(nèi)具備的防篡改裝置(例如后面說明的圖4的 防篡改PIC微機14)等生成在圖1的網(wǎng)絡(luò)內(nèi)的節(jié)點裝置中公用的加密密鑰、即公用密鑰。公 用密鑰每隔規(guī)定的時間間隔t2被更新。在本實施方式中,例如t2 = 12(小時)。在各節(jié)點裝置中保有的時刻信息在網(wǎng)絡(luò)內(nèi)被同步。因此,公用密鑰雖然根據(jù)時間 變化,但是在某個時刻,在網(wǎng)絡(luò)內(nèi)的節(jié)點裝置中是共同的。加密部4對向其他節(jié)點裝置發(fā)送的幀中包含的數(shù)據(jù)進行加密,解密部5對由其他 節(jié)點裝置加密并發(fā)送的幀中包含的數(shù)據(jù)進行解密。發(fā)送部7向其他節(jié)點裝置發(fā)送包含在圖3所示的節(jié)點裝置1中生成的加密數(shù)據(jù)的 加密幀,接收部8接收其他節(jié)點裝置發(fā)送的加密幀。幀處理部6執(zhí)行對接收到的幀的處理。例如,幀處理部6也可以從接收到的幀的 規(guī)定的字段取出信息,進行“是否是已經(jīng)接收過的幀”的判斷作為上述“對接收到的幀的處 理”?;蛘?,幀處理部6也可以從接收到的幀的規(guī)定的字段取出信息,進行“是否是由合法的 節(jié)點裝置發(fā)送的幀”的判斷等作為上述“對接收到的幀的處理”。幀處理部6還進行生成要發(fā)送的幀的處理。時刻同步部9執(zhí)行用于使圖3所示的 節(jié)點裝置1中保持的時刻與網(wǎng)絡(luò)內(nèi)的其他節(jié)點裝置的時刻同步的處理。與圖18 圖21 — 起詳細說明時刻同步部9的動作。圖3所示的節(jié)點裝置1在開始與網(wǎng)絡(luò)內(nèi)的其他節(jié)點裝置通信之前,在與對方的節(jié) 點裝置之間交換使用公用密鑰加密后的訪問密鑰。利用公用密鑰加密的訪問密鑰被保存在 例如被稱為“問候幀(hello frame),,的規(guī)定形式的幀的規(guī)定字段中,并被向?qū)Ψ降墓?jié)點裝
置發(fā)送。另外,下面為了方便說明,有時將節(jié)點裝置1自身生成的訪問密鑰稱為“內(nèi)部來源 (internally-originated)訪問密鑰”,將從其他的節(jié)點裝置接受的訪問密鑰稱為“外部來 源(externally-originated)訪|、n]密f月,,。圖3的節(jié)點裝置1使用自身節(jié)點裝置1中保有的公用密鑰對從通信對方的節(jié)點裝 置(具有與圖3的節(jié)點裝置1相同的構(gòu)成的未圖示的第2節(jié)點裝置)接收的被加密后的訪 問密鑰進行解密。并且,圖3的節(jié)點裝置1在之后與該未圖示的第2節(jié)點裝置進行通信時, 使用通過解密得到的訪問密鑰(即外部來源訪問密鑰)對發(fā)往未圖示的第2節(jié)點裝置的幀 進行加密。如上所述,公用密鑰以及訪問密鑰分別以規(guī)定的時間間隔、以及、被更新。因此, 即使第三者非法取得了某個時間點上的公用密鑰或者訪問密鑰,也無法進行冒充等的非法 訪問ο接著,參照圖4對實現(xiàn)圖3的構(gòu)成的硬件的具體例進行說明。圖4是本實施方式 涉及的節(jié)點裝置1的硬件構(gòu)成圖。
圖 3 的節(jié)點裝置 1 具備 MPU (Microprocessing Unit) 11、有線 PHY (PHYsical layer)處理部 12、定時器 IC (Integrated Circuit) 13、防篡改 PIC (Peripheral Interface Controller)微機(microcomputer) 14。節(jié)點裝置 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上并執(zhí)行來執(zhí)行各種各樣的處理。MPUll例如執(zhí)行防篡改PIC微機14的驅(qū) 動和用于使節(jié)點裝置1執(zhí)行后面說明的各種處理的固件程序等的各種各樣的程序。另外,DRAMl5中也可以保存加密密鑰等各種數(shù)據(jù)。另外,DRAMl5也可以作為幀的 發(fā)送緩沖以及接收緩沖使用。閃存16如上所述保存固件程序等。另外,閃存16中也可以 保存節(jié)點裝置1自身所固有的信息(例如,節(jié)點ID和MAC地址)。有線PHY處理部12是進行有線連接時的物理層的處理的電路。另外,無線LAN處 理部17是進行無線LAN連接時的物理層的處理的硬件。無線LAN處理部17例如包含天 線、ADC(Analog-to-Digital Converter)、DAC (Digital-to-Analog Converter)、調(diào)制器禾口 解調(diào)器等,進行物理層和MAC子層的處理。所以,在本實施方式中,節(jié)點裝置1能夠進行有 線通信和無線通信兩者。但是,節(jié)點裝置1也能夠是只進行有線通信或者無線通信的其中 一者的實施方式。定時器IC13是直到經(jīng)過所設(shè)定的時間為止進行計時動作,若經(jīng)過了所設(shè)定的時 間則輸出中斷信號的電路。防篡改PIC微機14是內(nèi)部具有生成公用密鑰的規(guī)定的算法的微機。由于防篡改 Pic微機14是防篡改的,所以從外部無法分析生成公用密鑰的規(guī)定的算法具體是什么樣的算法。接著,參照圖5對參照圖3和圖4說明過的節(jié)點裝置1的構(gòu)成進行更加詳細的說 明。圖5是更加詳細表示本實施方式涉及的節(jié)點裝置1的構(gòu)成的圖。在圖5中,表示了和圖3同樣的訪問密鑰生成部2、公用密鑰生成部3、加密部4、解 密部5、幀處理部6、發(fā)送部7、接收部8以及時刻同步部9。如圖5所示那樣,接收部8具備對節(jié)點裝置1接收到的幀根據(jù)幀的種類進行分類 的幀分支處理部21和對應(yīng)不同幀種類的接收緩沖。例如通過圖4的DRAM15實現(xiàn)接收緩沖。在本實施方式中,具體來說,對應(yīng)問候幀、時刻同步幀以及數(shù)據(jù)幀這3種種類,接 收部8具備問候幀接收緩沖22、時刻同步幀接收緩沖23和數(shù)據(jù)幀接收緩沖24。例如通過圖4的無線LAN處理部17和MPUll或者通過有線PHY處理部12和MPUll來實現(xiàn)幀分支處理部21。如與圖12、圖15以及圖17 —起在后面說明的那樣,由于幀頭包 含表示幀的種類的“幀類型”字段,所以幀分支處理部21能夠根據(jù)幀類型字段的值來識別 接收到的幀的種類從而對接收到的幀進行分類。另外,解密部5對應(yīng)3種幀的種類具備問候幀解密部25、時刻同步幀解密部26和 數(shù)據(jù)幀解密部27。在本實施方式中通過MPUll實現(xiàn)解密部5,但是也可以通過專用的硬件 電路來實現(xiàn)。問候幀解密部25對問候幀接收緩沖22中保存的問候幀進行解密,提取圖4中未 圖示的其他的節(jié)點裝置的訪問密鑰并輸出。時刻同步幀解密部26對時刻同步幀接收緩沖 23中保存的時刻同步幀進行解密,將解密得到的信息發(fā)送至?xí)r刻同步部9。數(shù)據(jù)幀解密部 27對數(shù)據(jù)幀接收緩沖24中保存的數(shù)據(jù)幀進行解密。并且,節(jié)點裝置1具備圖5所示的、保存其他節(jié)點裝置用的訪問密鑰(即外部來源 訪問密鑰)的訪問密鑰保存部28。訪問密鑰保存部28中保存有由問候幀解密部25解密后 的明文中包含的外部來源訪問密鑰。更具體來講,訪問密鑰保存部28將分別與多個節(jié)點裝 置對應(yīng)的外部來源訪問密鑰與識別多個節(jié)點裝置的信息(例如節(jié)點ID或者MAC地址等) 建立對應(yīng)關(guān)系并保存。另外,例如通過圖4的DRAM15來實現(xiàn)訪問密鑰保存部28。另外,也可以將至少一 部分通過MPUll內(nèi)的高速緩存來實現(xiàn)。另外,節(jié)點裝置1包含確認解密后的數(shù)據(jù)幀的正確性的確認部29。確認部29的 詳細動作和圖16 —起在后面說明,例如通過MPUll來實現(xiàn)確認部29。另外,在本實施方式 中,確認部29也進行解密后的訪問密鑰的正確性的確認。另外,幀處理部6包含接收數(shù)據(jù)幀處理部30,進行使用了由確認部29確認為“正 確(即沒有被篡改)“的數(shù)據(jù)幀的處理。例如,接收數(shù)據(jù)幀處理部30可以進行判別是再次接 收了和已經(jīng)接收的數(shù)據(jù)幀相同的數(shù)據(jù)幀還是接收了新的數(shù)據(jù)幀的處理。也可以通過MPUll 來實現(xiàn)接收數(shù)據(jù)幀處理部30。另外,在上述的數(shù)據(jù)幀解密部27的解密中,使用了節(jié)點裝置1自身的訪問密鑰。因 此,節(jié)點裝置1還具備保存自身節(jié)點裝置1用的訪問密鑰(即內(nèi)部來源訪問密鑰)的訪問 密鑰保存部31。例如也可以通過DRAM15來實現(xiàn)訪問密鑰保存部31,還可以通過MPUll內(nèi) 的高速緩存來實現(xiàn)。另一方面,在上述的問候幀解密部25的解密中,使用了網(wǎng)絡(luò)內(nèi)的多個節(jié)點裝置中 公用的公用密鑰。因此,節(jié)點裝置1還具備保存公用密鑰的公用密鑰保存部32。例如也可 以通過DRAM15來實現(xiàn)公用密鑰保存部32,還可以通過MPUll內(nèi)的高速緩存來實現(xiàn)。另外,如關(guān)于圖3所說明的那樣通過公用密鑰生成部3生成公用密鑰保存部32中 保存的公用密鑰。即,根據(jù)本實施方式,在多個節(jié)點裝置的各自的公用密鑰生成部3中,按 照相同的算法生成根據(jù)時刻唯一決定的公用密鑰,以使得在多個節(jié)點裝置之間不需交換公 用密鑰。另外,為了防止公用密鑰的泄露,通過圖4的防篡改PIC微機14來實現(xiàn)本實施方 式的公用密鑰生成部3。S卩,公用密鑰生成部3是防篡改的。另外,公用密鑰生成部3為了生成公用密鑰利用時刻信息。具體來講,節(jié)點裝置1 具備時鐘33,公用密鑰生成部3參照時鐘33得到時刻信息。
另外,在后面會和圖10 —起詳細說明,節(jié)點裝置1還具備通過圖4的定時器IC13 實現(xiàn)的計數(shù)器34。計數(shù)器34反復(fù)進行遞增計數(shù)動作,若計數(shù)器34的值達到了預(yù)先設(shè)定的 值,則訪問密鑰生成部2生成訪問密鑰,計數(shù)器34被清零。另外,在上述的時刻同步幀解密部26的解密中,使用在網(wǎng)絡(luò)內(nèi)的多個節(jié)點裝置中 公用的、也不隨時間變動的、固定的時刻同步密鑰。因此,節(jié)點裝置1還具備保存時刻同步 密鑰的時刻同步密鑰保存部35。時刻同步密鑰,例如可以作為常數(shù)預(yù)先寫入MPUll執(zhí)行的固件程序中,通過將固 件加載到DRAM15中來保存儲DRAM15中。例如能夠通過閃存16、DRAM15或者MPUll內(nèi)的高 速緩存來實現(xiàn)時刻同步密鑰保存部35。但是,幀處理部6不止是處理接收到的數(shù)據(jù)幀的上述的接收數(shù)據(jù)幀處理部30,還 具備生成問候幀的問候幀生成部36。問候幀生成部36從訪問密鑰保存部31中讀取節(jié)點裝 置1自身的訪問密鑰,生成問候幀的原來的明文幀并輸出。例如通過MPUll來實現(xiàn)問候幀 生成部36。問候幀生成部36輸出的明文幀被輸入到加密部4進行加密。另外,加密部4具備 問候幀加密部37、時刻同步幀加密部38以及數(shù)據(jù)幀加密部39,例如也通過MPUll來實現(xiàn)加 密部4內(nèi)的這些各部。問候幀加密部37使用公用密鑰保存部32中保存的公用密鑰對問候幀的原來的明 文幀進行加密。另外,時刻同步幀加密部38使用時刻同步密鑰保存部35中保存的時刻同 步密鑰對時刻同步幀的原來的明文幀進行加密。并且,數(shù)據(jù)幀加密部39使用訪問密鑰保存 部28中保存的訪問密鑰中的作為數(shù)據(jù)幀的發(fā)送目的地的節(jié)點裝置用的訪問密鑰對數(shù)據(jù)幀 的原來的明文幀進行加密。另外,如后面與圖20 —起詳細說明的那樣,從時刻同步部9向時刻同步幀加密部 38輸出時刻同步幀的原來的明文幀。另外,幀處理部6還具備生成數(shù)據(jù)幀的原來的明文幀并向數(shù)據(jù)幀加密部39輸出的 數(shù)據(jù)幀生成部40在加密部4中被加密的各種幀被輸出至發(fā)送部7并從節(jié)點裝置1發(fā)送。具體來講, 發(fā)送部7除了具備例如通過圖4的DRAM15實現(xiàn)的3個緩沖(即問候幀發(fā)送緩沖41、時刻同 步幀發(fā)送緩沖42和數(shù)據(jù)幀發(fā)送緩沖43),還具備發(fā)送處理部44。例如可以通過有線PHY處 理部12和MPUll來實現(xiàn)發(fā)送處理部44,也可以通過無線LAN處理部17和MPUll來實現(xiàn)。問候幀發(fā)送緩沖41從問候幀加密部37接受被加密的問候幀并保存,并向發(fā)送處 理部44輸出。時刻同步幀發(fā)送緩沖42從時刻同步幀加密部38接受被加密的時刻同步幀 并保存,并向發(fā)送處理部44輸出。數(shù)據(jù)幀發(fā)送緩沖43從數(shù)據(jù)幀加密部39接受被加密的數(shù) 據(jù)幀并保存,并向發(fā)送處理部44輸出。并且,發(fā)送處理部44發(fā)送接受到的幀。另外,如圖5所示那樣,節(jié)點裝置1例如還具備通過DRAM15實現(xiàn)的最新發(fā)送時刻 保存部45,因為在后面會與圖16 —起說明最新發(fā)送時刻保存部45,所以這里省略其說明。上面參照圖3 圖5對節(jié)點裝置1的構(gòu)成進行了說明,因此接著參照圖6 圖21 對節(jié)點裝置1的動作進行說明。圖6是說明基于本實施方式涉及的節(jié)點裝置1的認證方法的圖。如圖6所示那樣,當(dāng)在節(jié)點裝置IA的周邊存在節(jié)點裝置IB以及節(jié)點裝置IC的情況下,節(jié)點裝置IA將生成的訪問密鑰al分別與節(jié)點裝置IB以及節(jié)點裝置IC的訪問密鑰 bl以及cl交換。并且,節(jié)點裝置IA利用訪問密鑰bl對數(shù)據(jù)幀加密并向節(jié)點裝置IB發(fā)送, 利用訪問密鑰cl對數(shù)據(jù)幀加密并向節(jié)點裝置IC發(fā)送。在圖6的例子中,對于節(jié)點裝置1A,訪問密鑰al是內(nèi)部來源訪問密鑰、訪問密鑰 bl以及cl是外部來源訪問密鑰。另一方面,對于節(jié)點裝置1B,訪問密鑰al是外部來源訪 問密鑰,訪問密鑰bl是內(nèi)部來源訪問密鑰。節(jié)點裝置IA對于節(jié)點裝置IB和節(jié)點裝置IC使用分別不同的訪問密鑰(bl以及 Cl)。另外,例如,在與節(jié)點裝置IB的通信中,節(jié)點裝置IA在數(shù)據(jù)發(fā)送時使用訪問密鑰bl 而在數(shù)據(jù)接收時使用訪問密鑰al。這樣,節(jié)點裝置IA在數(shù)據(jù)發(fā)送時和數(shù)據(jù)接收時分別使用 不同的訪問密鑰進行通信。換言之,內(nèi)部來源訪問密鑰是解密用的密鑰,外部來源訪問密鑰 是加密用的密鑰。這樣,構(gòu)成自組織通信網(wǎng)絡(luò)的節(jié)點裝置各自通過上述的方法與鄰接的節(jié)點裝置交 換訪問密鑰,使用從通信對方的節(jié)點裝置接收的訪問密鑰對幀加密并發(fā)送。另外,與此同 時,對從通信對方接收到的幀,使用在自身節(jié)點裝置中被定期更新的訪問密鑰進行解密。由 此,確保了安全性。如上所述,在本實施方式中,網(wǎng)絡(luò)內(nèi)的各節(jié)點裝置在與鄰接的節(jié)點裝置進行通信 時,生成用于使通信對方的節(jié)點裝置訪問自身節(jié)點裝置的訪問密鑰。并且,各節(jié)點裝置使用 網(wǎng)絡(luò)中公用的公用密鑰,對上述生成的訪問密鑰進行加密,并將加密后的訪問密鑰利用問 候幀廣播。各節(jié)點裝置使用公用密鑰對從鄰接節(jié)點裝置接收到的問候幀中包含的訪問密鑰 進行解密,使用解密后得到的訪問密鑰訪問鄰接節(jié)點裝置。下面,對2臺節(jié)點裝置之間執(zhí)行 的處理進行具體說明。圖7是表示了在2個節(jié)點裝置之間互相對對方的節(jié)點裝置進行認證并通信的處理 的順序圖。這里,為了互相區(qū)別2臺節(jié)點裝置1,分別設(shè)為“節(jié)點裝置1A”以及“節(jié)點裝置 IB ”。首先,在步驟Sl中,從節(jié)點裝置IA向作為通信對方節(jié)點裝置的節(jié)點裝置IB發(fā)送 由節(jié)點裝置IA生成的訪問密鑰al。訪問密鑰al如上面所述的那樣被利用節(jié)點裝置IA和 節(jié)點裝置IB之間共同保有的公用密鑰加密。節(jié)點裝置IB使用在自身節(jié)點裝置IB中使用 防篡改裝置生成的公用密鑰進行解密處理,得到訪問密鑰al。接著,在步驟S2中,從節(jié)點裝置IB向作為通信對方節(jié)點裝置的節(jié)點裝置IA發(fā)送 由節(jié)點裝置IB生成的訪問密鑰bl。訪問密鑰bl也被利用節(jié)點裝置IA和節(jié)點裝置IB之間 公用的公用密鑰加密。節(jié)點裝置IA使用在自身節(jié)點裝置IA中使用防篡改裝置生成的公用 密鑰進行解密處理,得到訪問密鑰bl。在步驟Sl以及步驟S2的處理中,在一方的節(jié)點裝置是企圖非法訪問的第三者的 情況下,和通信對方節(jié)點裝置之間沒有公用的公用密鑰,無法解密并取得通信對方節(jié)點裝 置的訪問密鑰。利用此,當(dāng)在2臺的節(jié)點裝置IA和IB之間進行了訪問密鑰的交換的情況 下,能夠判斷通信對方的節(jié)點裝置IA以及IB合法。也就是說,當(dāng)在節(jié)點裝置IA和IB之間 進行了訪問密鑰的交換的情況下,節(jié)點裝置IA能夠判斷節(jié)點裝置IB合法,節(jié)點裝置IB能 夠判斷節(jié)點裝置IA合法。在本實施方式中,設(shè)根據(jù)與通信對方節(jié)點裝置之間的訪問密鑰的交換的成功與否來進行通信對方節(jié)點裝置的認證,在認證成功的情況下,開始步驟S3之后的通信。另外,在每次訪問密鑰被更新時執(zhí)行步驟Sl以及步驟S2的認證處理。在步驟S3中,從節(jié)點裝置IA向節(jié)點裝置IB發(fā)送包含數(shù)據(jù)的幀。發(fā)送的幀被利用 在步驟S2中節(jié)點裝置IA取得的訪問密鑰bl加密。例如,如關(guān)于圖2所說明的那樣,作為 包含傳感器數(shù)據(jù)的加密幀的傳感器數(shù)據(jù)幀在步驟S3中被發(fā)送。另外,在幀中進行了署名。關(guān)于署名會在后面說明。接收到幀的節(jié)點裝置IB使用 在自身節(jié)點裝置IB中生成的訪問密鑰bl對接收到的幀進行解密,得到數(shù)據(jù)。在步驟S4中,從節(jié)點裝置IB向節(jié)點裝置IA發(fā)送包含數(shù)據(jù)的幀。發(fā)送的幀被利用 在步驟Sl中節(jié)點裝置IB取得的訪問密鑰al加密并被署名。在接收到幀的節(jié)點裝置IA中, 使用在自身節(jié)點裝置IA中生成的訪問密鑰al對接收到的幀進行解密,得到數(shù)據(jù)。如圖7所示那樣,本實施方式涉及的節(jié)點裝置1 (1A以及1B)使用和通信對方的節(jié) 點裝置(1B以及1A)公用的公用密鑰,對各節(jié)點裝置(1A以及1B)中生成的訪問密鑰(al 以及bl)進行加密并交換。在通信對方的節(jié)點裝置(1B以及1A)合法的情況下,通信對方 的節(jié)點裝置(1B以及1A)保有和自身節(jié)點裝置(1A以及1B)公用的公用密鑰。因此,各節(jié)點裝置(1A以及1B)能夠使用自身節(jié)點裝置(1A以及1B)中保有的公 用密鑰對從通信對方的節(jié)點裝置(1B以及1A)接收到的訪問密鑰(bl以及al)進行解密。 由于在企圖非法訪問的第三者中沒有保有上述公用密鑰,所以各節(jié)點裝置(1A以及1B)能 夠根據(jù)是否能夠?qū)邮盏降脑L問密鑰(bl以及al)解密來判斷通信對方的節(jié)點裝置(1B以 及1A)是合法的還是非法的。各節(jié)點裝置1定期與通信對方的節(jié)點裝置交換訪問密鑰,繼 續(xù)與被判斷為是合法的節(jié)點裝置進行通信。另外,在接收數(shù)據(jù)時,使用在自身節(jié)點裝置中生成的訪問密鑰進行解密處理,并取 出數(shù)據(jù)。例如,在步驟S3中,接收側(cè)的節(jié)點裝置IB使用自身節(jié)點裝置IB生成的訪問密鑰 bl進行解密處理。在發(fā)送數(shù)據(jù)時,使用在認證處理中從通信對方節(jié)點裝置接收的、在通信對方節(jié)點 裝置中生成的訪問密鑰進行加密,并發(fā)送數(shù)據(jù)。例如,在步驟S3中,發(fā)送側(cè)的節(jié)點裝置IA 使用在步驟S2中從通信對方節(jié)點裝置IB接收到的訪問密鑰bl進行加密處理。圖8是表示數(shù)據(jù)幀的格式的圖。后面會和圖15以及圖17 —起對格式進行更加詳 細的說明。另外,問候幀的格式的例子會在后面與圖12—起說明。如圖8所示那樣,數(shù)據(jù)幀由幀頭、幀的識別信息(FID)、時刻信息以及幀體構(gòu)成,在 數(shù)據(jù)幀中追加有署名。在幀頭中,保存有幀的發(fā)送目的地信息等。在FID中,保存有由發(fā)送源的節(jié)點裝置 1附加的用于識別數(shù)據(jù)幀的順序編號等。在時刻信息中保存有表示圖8所示的幀被構(gòu)成的 時刻的信息。具體來講,保存有表示將圖8的數(shù)據(jù)幀向鄰接節(jié)點裝置轉(zhuǎn)送的時刻的信息。在 幀體中,保存有數(shù)據(jù)主體。在署名中,保存有幀(準(zhǔn)確來說是明文幀)自身的散列代碼被利用公用密鑰加密 后的值。利用署名來證明圖8所示的幀是在保有相同的公用密鑰的節(jié)點裝置中生成的。圖8所示的數(shù)據(jù)幀被利用通信對方的節(jié)點裝置的訪問密鑰(也就是說是外部來源 訪問密鑰)加密并被發(fā)送。本實施方式涉及的節(jié)點裝置1若從通信對方的節(jié)點裝置接收到加密幀,則使用自身節(jié)點裝置生成的訪問密鑰進行解密得到明文幀。節(jié)點裝置1還從明文幀中取出作為署名 被附加的加密后的散列值,并且使用公用密鑰對取出的散列值(被加密的散列值)進行解 密。并且,比較使用公用密鑰解密得到的值和根據(jù)明文幀計算出的散列值,在相互一致的情 況下,節(jié)點裝置1判定為“接收了在保有與自身節(jié)點裝置相同的公用密鑰的節(jié)點裝置中生 成的幀”。另外,本實施方式涉及的節(jié)點裝置1預(yù)先存儲從對方接收到的數(shù)據(jù)幀的FID和時 刻信息的組合,將存儲的FID以及時刻信息與接收到的數(shù)據(jù)幀的FID以及時刻信息進行比 較。例如,在被認證為合法的2臺節(jié)點裝置之間進行通信時,有時會發(fā)生非法的節(jié)點裝置捕 獲以及復(fù)制數(shù)據(jù)幀并發(fā)送來的情況。在這種情況下,數(shù)據(jù)幀中包含的FID以及時刻信息與 過去從合法的節(jié)點裝置接收到的FID以及時刻信息一致。這樣,在接受到的數(shù)據(jù)幀的FID 以及時刻信息與節(jié)點裝置1自身存儲的FID以及時刻信息一致的情況下,節(jié)點裝置1判斷 為是來自非法的節(jié)點裝置的訪問,從而廢棄接收到的數(shù)據(jù)幀。另外,在從合法的節(jié)點裝置再次發(fā)送了數(shù)據(jù)幀的情況下,雖然FID與存儲的FID — 致,但是時刻信息是不同的。這樣,對于“FID與存儲的值一致而時間信刻不同”的數(shù)據(jù)幀, 節(jié)點裝置1判斷為與已經(jīng)接收的數(shù)據(jù)幀相同,從而也廢棄該數(shù)據(jù)幀。接著,對于上述參照圖6 圖8說明的一系列處理,參照圖9 圖16的流程圖進 行更詳細的說明。圖9是公用密鑰更新處理的流程圖。在節(jié)點裝置1的電源接入后開始公用密鑰更 新處理。在步驟SlOl中,圖4的控制節(jié)點裝置1整體的MPUll參照圖5的時鐘33識別當(dāng) 前時刻,判斷當(dāng)前時刻是否是預(yù)先決定的更新時刻。另外,這里的“更新時刻”是作為進行 公用密鑰的更新的時刻而預(yù)先決定的時刻。例如,在、=12(小時)的情況下,也可以決 定為“更新時刻是每天1點和13點”。如果當(dāng)前時刻是更新時刻,則處理進入步驟S102。MPUll命令防篡改PIC微機14 的驅(qū)動器(后面稱為“防篡改裝置驅(qū)動器”)開始用于生成公用密鑰的處理。防篡改裝置驅(qū) 動器作為公用密鑰生成部3的一部分工作。BP,MPUll向防篡改裝置驅(qū)動器提供作為用于生成公用密鑰的種子(seed)使用的 數(shù)據(jù)(后面稱為“種子數(shù)據(jù)”)作為參數(shù)。防篡改裝置驅(qū)動器也是通過MPUll執(zhí)行的程序的 1種。接著,在步驟S103中,防篡改裝置驅(qū)動器向作為防篡改裝置的防篡改PIC微機14 輸出接受到的種子數(shù)據(jù),并命令防篡改PIC微機14使用該種子數(shù)據(jù)生成新的公用密鑰。并且,在步驟S104中,防篡改PIC微機14使用接受到的種子數(shù)據(jù)生成新的公用密 鑰,并向防篡改裝置通知所生成的公用密鑰。防篡改裝置驅(qū)動器將生成的新的公用密鑰保 存在例如在DRAM15上實現(xiàn)的公用密鑰保存部32中。通過以上那樣做,如果當(dāng)前時刻是更新時刻,則更新公用密鑰。另一方面,如果當(dāng) 前時刻不是更新時刻,則處理返回到步驟S101。另外,也可以通過定時器中斷來實現(xiàn)步驟 SlOl的分支。接著,參照圖10對訪問密鑰的更新進行說明。如關(guān)于圖7所說明的那樣,訪問密 鑰被定期更新。
圖10是訪問密鑰更新處理的流程圖。在步驟S201中,節(jié)點裝置1內(nèi)部的定時器計數(shù)器(即通過圖4的定時器IC13實 現(xiàn)的圖5的計數(shù)器34)進行遞增計數(shù)操作。并且,在步驟S202中,訪問密鑰生成部2參照計數(shù)器34的值判斷規(guī)定的時間、= 10分鐘是否已經(jīng)經(jīng)過。如果規(guī)定的時間、=10分鐘已經(jīng)經(jīng)過(即計數(shù)器34的值已經(jīng)達 到作為與ti = 10分鐘相對應(yīng)的值而被預(yù)先設(shè)定的值),則處理進入步驟S203,如果規(guī)定的 時間、=10分鐘還沒有經(jīng)過,則處理返回至步驟S201。在步驟S203中,訪問密鑰生成部2按照規(guī)定的算法生成新的訪問密鑰從而覆蓋更 新訪問密鑰保存部31中存儲的內(nèi)部來源訪問密鑰。另外,在步驟S204中,進行定時器計數(shù)器(也就是說圖5的計數(shù)器34)的清零動 作,之后處理返回至步驟S201。另外,也可以利用當(dāng)計數(shù)值達到與規(guī)定的時間t2相當(dāng)?shù)闹禃r就被清零的未圖示的 第2計數(shù)器(也就是說圖5的計數(shù)器34之外的計數(shù)器)來實現(xiàn)圖9的公用密鑰更新處理。 或者反之,訪問密鑰生成部2也可以通過參照時鐘33判斷當(dāng)前時刻是否符合訪問密鑰的更 新時刻來實現(xiàn)圖10的訪問密鑰更新處理。但是,在包含多數(shù)的節(jié)點裝置1的自組織通信系統(tǒng)中,優(yōu)選地,作為自組織通信系 統(tǒng)整體,流量在時間上分散。伴隨著訪問密鑰的更新的問候幀的發(fā)送例如能夠通過下面的 (1) (3)在自組織通信系統(tǒng)內(nèi)從時間上被分散。(1)在圖2的各節(jié)點裝置IA II被設(shè)定為,在電源接入后經(jīng)過共同的規(guī)定時間以 后開始圖10的處理的情況下,對各節(jié)點裝置IA II錯開時刻接入電源。這樣,由于基于 各節(jié)點裝置IA II的訪問密鑰的更新時刻也分散,所以隨著訪問密鑰的更新而接著產(chǎn)生 的問候幀的發(fā)送也從時間上分散而發(fā)生。(2)各節(jié)點裝置IA II也可以被設(shè)定為,在電源接入后經(jīng)過按每個節(jié)點裝置 IA II不同的隨機的時間以后開始圖10的處理。例如,也可以在各節(jié)點裝置IA II各 自的閃存16的規(guī)定的區(qū)域中預(yù)先寫入上述隨機的時間而設(shè)定。(3)在各節(jié)點裝置IA II中也可以被設(shè)定為,上述的規(guī)定的時間、的長度不同。 例如作為MPUll執(zhí)行的固件程序中利用的定數(shù)來預(yù)先設(shè)定規(guī)定的時間、。若如上述那樣通過圖10的處理生成了訪問密鑰,則如關(guān)于圖7的步驟Sl和S2所 說明的那樣,問候幀被發(fā)送。所生成的新的訪問密鑰通過問候幀被通知給鄰接的節(jié)點裝置。所以,下面參照圖11 圖13對問候幀的發(fā)送和接受進行詳細說明。圖11是問候幀發(fā)送處理的流程圖。另外,圖12是說明問候幀的格式和進行的與 問候幀有關(guān)的各種處理的圖。圖11的處理是以訪問密鑰生成部2生成了訪問密鑰為契機開始的。例如,在圖7 的步驟Sl中節(jié)點裝置IA執(zhí)行圖11的處理,在步驟S2中節(jié)點裝置IB執(zhí)行圖11的處理。例 如,訪問密鑰生成部2向問候幀生成部36通知訪問密鑰的生成,由此問候幀生成部36開始 圖11的處理。在步驟S301中,問候幀生成部36生成問候數(shù)據(jù)(即問候幀的凈荷的原來的明文 數(shù)據(jù))和問候幀的幀頭。具體來講,問候數(shù)據(jù)包含訪問密鑰生成部2新生成的訪問密鑰的 數(shù)據(jù)。
例如,問候幀是為了交換訪問密鑰而預(yù)先決定的規(guī)定的格式的幀即可,凈荷中也 可以包含訪問密鑰以外的各種各樣的字段。但是,下面為了使說明簡單,對于本實施方式的 問候巾貞,以只在凈荷中包含被加密的訪問密鑰的情況作為例子進行說明。在這種情況下,在步驟S301中問候幀生成部36能夠只是從訪問密鑰保存部31中 作為問候數(shù)據(jù)讀取內(nèi)部來源訪問密鑰來準(zhǔn)備問候數(shù)據(jù)。即,在步驟S301中準(zhǔn)備圖12的明 文訪問密鑰Dl作為問候數(shù)據(jù)。接著,在步驟S302中,問候幀生成部36計算問候數(shù)據(jù)的散列值,并將計算出的散 列值作為署名附加在問候幀的原來的明文幀的末尾。具體來講,問候幀生成部36根據(jù)圖12 的明文訪問密鑰Dl計算明文散列值D2,并將連接了幀頭、明文訪問密鑰Dl和明文散列值 D2而得到的明文幀輸出至問候幀加密部37。另外,“明文散列值”的名稱是為了表明其與加 密后的散列值相比是加密前的原來的散列值的名稱。并且,在步驟S303中,問候幀加密部37參照公用密鑰保存部32讀取公用密鑰,并 使用公用密鑰對在步驟S302中附加了署名后的明文幀(準(zhǔn)確來講是明文幀的凈荷和幀尾) 進行加密。例如,在本實施方式中,作為加密算法采用作為流加密的1種的RC4。所以,在步 驟S303中,問候幀加密部37根據(jù)公用密鑰生成密鑰流,求出由明文訪問密鑰Dl和明文散 列值D2組成的部分與密鑰流的異或(XOR :eXclusive OR)。由此,在步驟S303中,生成被 加密的凈荷以及幀尾。具體來講,如圖12所示那樣,問候幀加密部37根據(jù)明文訪問密鑰Dl生成加密訪 問密鑰D3,根據(jù)明文散列值D2生成加密散列值D4。另外,在圖12中,使用了公用密鑰的加 密或者解密的操作用黑色粗體箭頭表示。另外,在步驟S301中準(zhǔn)備的幀頭沒有被加密而是保持明文(cleartext)的原樣被 使用。在本實施方式中,例如如圖12所示那樣,在步驟S301中準(zhǔn)備包含本地收信地址D5、 本地發(fā)信地址D6、幀類型D7以及幀大小D8的各字段的自組織幀頭D9。所以,在步驟S303中,問候幀加密部37將自組織幀頭D9與作為凈荷DlO的加密 訪問密鑰D3和作為幀尾Dll的加密散列值D4連接,生成問候幀。并且,問候幀加密部37 向問候幀發(fā)送緩沖41輸出所生成的問候幀。另外,在本實施方式中,為了向鄰接的多個裝置(其他的節(jié)點裝置和網(wǎng)關(guān)裝置GW) 通知訪問密鑰,對問候幀進行廣播。因此,具體來講,本地收信地址D5是廣播地址,本地發(fā) 信地址D6是節(jié)點裝置1自身的MAC地址。另外,幀類型D7被設(shè)定成表示問候幀的值。幀大小D8指定了加密訪問密鑰D3和 加密散列值D4的長度的和(即明文訪問密鑰Dl和明文散列值D2的長度的和)。最后,在步驟S304中發(fā)送部7發(fā)送問候幀。即,作為步驟S303的結(jié)果暫時保存在 問候幀發(fā)送緩沖41中的問候幀由發(fā)送處理部44在步驟S304中讀取并發(fā)送。圖13是問候幀接收處理的流程圖。例如,在圖7的步驟Sl中,由于圖2的節(jié)點裝 置IA進行圖11的處理,所以在與節(jié)點裝置IA鄰接的節(jié)點裝置IB中進行圖13的處理。在節(jié)點裝置IB中,若接收部8接收到了問候幀,則幀分支處理部21根據(jù)自組織幀 頭D9的幀類型D7判別“接收到的幀是問候幀”。并且,以該判別為契機開始圖13的處理。 另外,由幀分支處理部21判別為是問候幀的接收幀被暫時保存在問候幀接收緩沖22中。
在步驟S401中,解密部5的問候幀解密部25參照公用密鑰保存部32讀取公用密 鑰的數(shù)據(jù)。并且,問候幀解密部25使用公用密鑰對保存在問候幀接收緩沖22中的問候幀 (在本實施方式中準(zhǔn)確來說是其凈荷和幀尾)進行解密。S卩,問候幀解密部25根據(jù)公用密鑰生成密鑰流,求出由凈荷DlO和幀尾Dll組成 的部分和密鑰流之間的X0R。由此,問候幀解密部25根據(jù)加密訪問密鑰D3得到解密后的明 文訪問密鑰D12,并且根據(jù)加密散列值D4得到解密后的明文散列值D13。并且,問候幀解密 部25向確認部29輸出由自組織幀頭D9、解密后的明文訪問密鑰D12和解密后的明文散列 值D13組成的明文幀。由此,在步驟S402中,確認部29從由問候幀解密部25輸入的明文幀中提取解密 后的明文訪問密鑰D12。并且,確認部29計算解密后的明文訪問密鑰D12的散列值,得到圖 12的計算出的散列值D14。并且,在步驟S403中,確認部29比較圖12的解密后的明文散列值D13和計算出 的散列值D14。2個散列值如果相等,則確認部29判斷為“0K”,處理轉(zhuǎn)移至步驟S404。另一方面, 2個散列值如果不同,則確認部29判斷為“NG”,處理轉(zhuǎn)移至步驟S405。在步驟S404中,確認部29用解密后的明文訪問密鑰D12覆蓋與本地發(fā)信地址D6 建立有關(guān)聯(lián)的訪問密鑰保存部28內(nèi)的外部來源訪問密鑰。其結(jié)果,與問候幀的發(fā)送源的節(jié) 點裝置相對應(yīng)的外部來源訪問密鑰被更新。并且結(jié)束圖13的處理。另一方面,在步驟S405中,成為開始圖13的處理的契機的該問候幀被廢棄,結(jié)束 圖13的處理。上面參照圖10 圖13對與圖7的步驟Sl和S2相對應(yīng)的處理進行了詳細說明, 因此接著參照圖14 圖16對與圖7的步驟S3和S4相對應(yīng)的處理進行詳細說明。圖14是數(shù)據(jù)幀發(fā)送處理的流程圖。在圖7的步驟S3中節(jié)點裝置IA進行圖14的 處理,在步驟S4中節(jié)點裝置IB進行圖14的處理。根據(jù)實施方式,例如,也可以以來自與節(jié) 點裝置1連接的傳感器等的外部機器的輸入作為契機開始數(shù)據(jù)幀發(fā)送處理?;蛘撸?jié)點裝 置1也可以按照預(yù)先決定的計劃進行數(shù)據(jù)幀發(fā)送處理。在本實施方式中,若下面的(1) (3)的條件成立,則數(shù)據(jù)幀生成部40開始圖14 的處理。(1)準(zhǔn)備作為發(fā)送對象的數(shù)據(jù)(后面稱為“對象數(shù)據(jù)”)。對象數(shù)據(jù)例如可以由與 節(jié)點裝置1連接的外部機器輸入,也可以由數(shù)據(jù)幀生成部40生成。作為對象數(shù)據(jù)的例子, 是對圖2進行說明的傳感器數(shù)據(jù)。(2)決定最終的發(fā)送目的地(即自組織網(wǎng)絡(luò)內(nèi)的全局發(fā)送目的地)。也可以將最 終的發(fā)送目的地如圖2的例子那樣固定地決定為網(wǎng)關(guān)裝置GW,還可以由數(shù)據(jù)幀生成部40動 態(tài)決定。(3)根據(jù)全局發(fā)送目的地決定本地發(fā)送目的地(即鄰接的其他節(jié)點裝置中的1 個)。作為自組織通信系統(tǒng)的構(gòu)成要素的節(jié)點裝置1能夠根據(jù)全局發(fā)送目的地決定本地發(fā) 送目的地。另外,如下面那樣對上述的(3)進行補充。如關(guān)于圖1所說明的那樣,作為自組織通信系統(tǒng)的構(gòu)成要素的節(jié)點裝置1能夠生
17成關(guān)于在節(jié)點裝置1自身的周圍存在的其他節(jié)點裝置的列表,并根據(jù)列表決定節(jié)點裝置1 要轉(zhuǎn)送幀的節(jié)點裝置。也就是說,在節(jié)點裝置1中安裝有根據(jù)全局發(fā)送目的地決定本地發(fā) 送目的地并對幀進行路由的功能。例如,圖2的節(jié)點裝置IB生成關(guān)于節(jié)點裝置IB自身的周圍存在的其他節(jié)點裝置 1A、IC以及IE的列表,管理“優(yōu)選將最終的發(fā)送目的地是網(wǎng)關(guān)裝置GW的幀向節(jié)點裝置IC轉(zhuǎn) 送”之類的信息。也就是說,節(jié)點裝置IB將全局發(fā)送目的地(例如網(wǎng)關(guān)裝置GW)與表示和 節(jié)點裝置IB自身鄰接的裝置的本地發(fā)送目的地(例如節(jié)點裝置1C)建立對應(yīng)關(guān)系并管理, 進行幀的路由。例如將全局發(fā)送目的地和本地發(fā)送目的地建立對應(yīng)關(guān)系的信息存儲在圖4 的 DRAMl5 中。另外,也可以對將全局發(fā)送目的地和本地發(fā)送目的地建立對應(yīng)關(guān)系的信息進行加 權(quán)。通過加權(quán)表示對于某個全局發(fā)送目的地(例如網(wǎng)關(guān)裝置GW)將與節(jié)點裝置IB自身鄰 接的多個裝置(例如節(jié)點裝置1A、1C以及1E)中的哪個優(yōu)選作為轉(zhuǎn)送目的地。例如,在圖 2的例子中,與網(wǎng)關(guān)裝置GW與節(jié)點裝置IA的組合的權(quán)數(shù)相比,網(wǎng)關(guān)裝置GW與節(jié)點裝置IC 的組合的權(quán)數(shù)表示較高的優(yōu)先級。即,通過加權(quán)表示了“對于最終的發(fā)送目的地是網(wǎng)關(guān)裝置 GW的巾貞,與向節(jié)點裝置IA或者IE轉(zhuǎn)送相比,優(yōu)選向節(jié)點裝置IC轉(zhuǎn)送”之類的信息。MPUll通過執(zhí)行固件程序來管理上述的信息并判斷是否需要轉(zhuǎn)送接收到的幀。在 需要轉(zhuǎn)送的情況下,執(zhí)行固件程序的MPUl 1參照DRAM15根據(jù)全局發(fā)送目的地決定本地發(fā)送 目的地,并將所決定的本地發(fā)送目的地作為轉(zhuǎn)送目的地來發(fā)送幀。這里若返回圖14的說明,則如上面所述那樣,數(shù)據(jù)幀發(fā)送處理在上述(1) (3) 的條件成立時開始。于是,在步驟S501中數(shù)據(jù)幀生成部40計算數(shù)據(jù)幀的凈荷的原來的明文凈荷的散 列值。數(shù)據(jù)幀生成部40將計算出的散列值附加在明文凈荷的末尾作為后面的明文幀尾的 一部分。本實施方式在幀尾設(shè)有署名。這里,如下面所述,參照圖15對步驟S501進行更加詳細的說明。圖15是說明數(shù)據(jù)幀的格式和進行的與數(shù)據(jù)幀有關(guān)的各種處理的第1例的圖。圖 15是對采用一部分與圖8不同的格式的情況進行的說明。關(guān)于采用與圖8相同的格式的情 況,在后面與圖17—起說明。在步驟S501中,數(shù)據(jù)幀生成部40發(fā)布新的FID作為圖15的明文FID/D15。另夕卜, 數(shù)據(jù)幀生成部40在步驟S501中不僅準(zhǔn)備關(guān)于上述的條件(1)所說明的對象數(shù)據(jù),還適當(dāng) 地準(zhǔn)備凈荷中包含的其他數(shù)據(jù)。在步驟S501中準(zhǔn)備的數(shù)據(jù)也可以是從DRAM15或者閃存 16中讀取的數(shù)據(jù),還可以是由數(shù)據(jù)幀生成部40生成的數(shù)據(jù),也可以是由外部機器輸入的數(shù) 據(jù)。例如,數(shù)據(jù)幀生成部40將指定作為數(shù)據(jù)幀的最終的發(fā)送目的地的全局發(fā)送目的 地的數(shù)據(jù)和條件(1)中準(zhǔn)備的對象數(shù)據(jù)合并來生成明文幀體D16。另外,在圖14中沒有明示,但是,數(shù)據(jù)幀生成部40在步驟S501中還生成自組織幀 頭D9。自組織幀頭D9的形式和問候幀相同。即,在數(shù)據(jù)幀中,自組織幀頭D9也包含本地收信地址D5、本地發(fā)信地址D6、幀類型 D7以及幀大小D8。但是,本地收信地址D5是如上述的條件(3)中所說明的那樣決定的MAC 地址。另外,將幀類型D7設(shè)定成表示數(shù)據(jù)幀的值。
這樣,數(shù)據(jù)幀生成部40在步驟S501中生成由自組織幀頭D9、明文FID/D15和明文 幀體D16組成的明文凈荷,并根據(jù)明文凈荷計算圖15的明文散列值D17。另外,在步驟S502中,數(shù)據(jù)幀生成部40參照時鐘33取得當(dāng)前時刻信息,將取得的 當(dāng)前時刻信息作為圖15的明文時刻D18連結(jié)在明文散列值D17的后面。明文散列值D17 和明文時刻D18組成的部分是加密署名的原來的明文署名。并且,數(shù)據(jù)幀生成部40向數(shù)據(jù) 幀加密部39輸出由自組織幀頭D9、明文凈荷以及明文署名組成的明文幀。于是,在步驟S503中,數(shù)據(jù)幀加密部39參照公用密鑰保存部32讀取公用密鑰,并 使用公用密鑰對明文署名加密來得到加密署名D21。如上述那樣,在本實施方式中采用了 RC4作為加密算法。所以,在步驟S503中,數(shù) 據(jù)幀加密部39具體來講根據(jù)公用密鑰生成密鑰流,求出明文署名和密鑰流之間的X0R。其結(jié)果,根據(jù)明文散列值D17得到加密散列值D19,根據(jù)明文時刻D18得到加密時 刻D20。換言之,根據(jù)明文署名整體得到由加密散列值D19和加密時刻D20組成的加密署名 D21。接著,在步驟S504中,數(shù)據(jù)幀加密部39使用由上述條件(3)決定的發(fā)送目的地的 節(jié)點裝置(即、在本地發(fā)送目的地地址D5中指定了 MAC地址的節(jié)點裝置)的訪問密鑰對明 文幀進行加密。即、數(shù)據(jù)幀加密部39參照訪問密鑰保存部28讀取發(fā)送目的地的節(jié)點裝置 的訪問密鑰,使用讀取的訪問密鑰對明文凈荷和加密署名D21進行加密。S卩,數(shù)據(jù)幀加密部39進行密鑰流的生成和XOR運算。其結(jié)果,數(shù)據(jù)幀加密部39分 別地根據(jù)明文FID/D15生成加密FID/D22,根據(jù)明文幀體D16生成加密幀體D23。另外,數(shù) 據(jù)幀加密部39根據(jù)加密散列值D19生成二重加密散列值D24,根據(jù)加密時刻D20生成二重 加密時刻D25。也就是說,根據(jù)加密署名D21得到相當(dāng)于幀尾的被二重加密的署名。另外,在圖15以及圖17中,用黑色箭頭表示基于公用密鑰的加密以及解密,用斜 線模樣的箭頭表示基于訪問密鑰的加密以及解密。如上面那樣,生成由加密FID/D22和加密幀體D23組成的凈荷D26和由二重加密 散列值D24和二重加密時刻D25組成的作為署名的幀尾D27。所以,在步驟S504中,數(shù)據(jù)幀 加密部39將凈荷D26和幀尾D27與自組織幀頭D9連結(jié)生成數(shù)據(jù)幀,并向數(shù)據(jù)幀發(fā)送緩沖 43輸出。最后,在步驟S505中,發(fā)送部7發(fā)送數(shù)據(jù)幀。S卩,由發(fā)送處理部44在步驟S505中 讀取作為步驟S504的結(jié)果暫時保存在數(shù)據(jù)幀發(fā)送緩沖43中的數(shù)據(jù)幀并發(fā)送。圖16是數(shù)據(jù)幀接收處理的流程圖。在圖7的步驟S3中IB進行圖16的處理,在 步驟S4中節(jié)點裝置IA進行圖16的處理。下面,為了方便說明,在圖7的步驟S3中,對節(jié)點裝置IB在接受部8中接收利用 訪問密鑰bl加密的數(shù)據(jù)幀的情況進行說明。若上述數(shù)據(jù)幀被節(jié)點裝置IB接收了,則幀分支處理部21根據(jù)自組織幀頭D9的幀 類型D7判別為“接收到的幀是數(shù)據(jù)幀”。并且,以該判別為契機開始圖16的處理。另外,由 幀分支處理部21判別為是數(shù)據(jù)幀的接收幀被暫時保存在數(shù)據(jù)幀接收緩沖24中。在步驟S601中,解密部5的數(shù)據(jù)幀解密部27使用自身節(jié)點裝置IB的訪問密鑰對 接收到的幀進行解密。即,數(shù)據(jù)幀解密部27參照訪問密鑰保存部31讀取對節(jié)點裝置IB自 身來說作為內(nèi)部來源的訪問密鑰的訪問密鑰bl的數(shù)據(jù)。并且,數(shù)據(jù)幀解密部27使用訪問密鑰bl對保存在數(shù)據(jù)幀接收緩沖24中的數(shù)據(jù)幀(在本實施方式中準(zhǔn)確來講是其凈荷和幀 尾)進行解密。即,數(shù)據(jù)幀解密部27根據(jù)訪問密鑰bl生成密鑰流,求出密文(也就是由圖15的 凈荷D26和幀尾D27組成的部分)和密鑰流之間的X0R。由此,數(shù)據(jù)幀解密部27根據(jù)加密 FID/D22得到解密后的明文FID/D28,根據(jù)加密幀體D23得到解密后的明文幀體D29。另外, 數(shù)據(jù)幀解密部27根據(jù)二重加密散列值D24得到解密后的密文散列值D30,根據(jù)二重加密時 刻D25得到解密后的密文時刻D31。也就是說,數(shù)據(jù)幀解密部27根據(jù)二重加密署名得到加
密署名 ο接著,在步驟S602中,數(shù)據(jù)幀解密部27參照公用密鑰保存部32讀取公用密鑰的 數(shù)據(jù),使用公用密鑰對由解密后的密文散列值D30和解密后的密文時刻D31組成的加密署 名進行解密。其結(jié)果,根據(jù)解密后的密文散列值D30得到解密后的明文散列值D33,根據(jù)解 密后的密文時刻D31得到解密后的明文時刻D34。所以,數(shù)據(jù)幀解密部27將自組織幀頭D9、解密后的明文FID/D28、解密后的明文幀 體D29、解密后的明文散列值D33以及計數(shù)34作為解密后的明文幀向確認部29輸出。在步驟S603中,確認部29從來自數(shù)據(jù)幀解密部27的輸入中提取由解密后的明文 FID/D28和解密后的明文幀體D29組成的部分(后面稱為“解密后的明文凈荷”)。并且,確 認部29計算解密后的明文凈荷的散列值,得到圖15的計算出的散列值D32。在步驟S603中,作為接受到的數(shù)據(jù)幀的認證判定處理,確認部29比較計算出的散 列值D32和解密后的明文散列值D33。如果接受到的數(shù)據(jù)幀是沒有被篡改過之類的正確的 數(shù)據(jù)幀,則計算出的散列值D32和解密后的明文散列值D33 —致。所以,在計算出的散列值D32和解密后的明文散列值D33 —致的情況下,確認部29 判定為“0K”,處理轉(zhuǎn)移至步驟S604。另一方面,在計算出的散列值D32和解密后的明文散 列值D33不一致的情況下,確認部29判定為“NG”,處理轉(zhuǎn)移至步驟S608。在步驟S604中,確認部29提取解密后的明文時刻D34。由于步驟S604被執(zhí)行是 因為是在步驟S603中判斷為“0K”的情況,所以解密后的明文時刻D34等于原來的明文時 刻D18。另外,確認部29在步驟S604中也提取本地發(fā)信地址D6。并且,在步驟S605中,確認部29進行時刻判定處理。時刻判定處理是為了防御冒 充攻擊的處理。另外,在本說明書中,將非法的第三者監(jiān)聽(即捕獲)數(shù)據(jù)幀,并將監(jiān)聽到 的數(shù)據(jù)幀復(fù)制或者變更其中一部分進行發(fā)送的情況稱為冒充攻擊。具體來講,確認部29參照圖5的最新發(fā)送時刻保存部45進行時刻判定處理。如 圖16所示那樣,最新發(fā)送時刻保存部45存儲將本地發(fā)信地址和時刻建立對應(yīng)關(guān)系的項。例如,圖16所示的第1項將本地發(fā)信地址A1和時刻T1建立了對應(yīng)關(guān)系。另外,如 上所述,圖16的說明是將節(jié)點裝置IB進行圖16的處理的情況作為例子。所以,圖16所示 的第1項表示“根據(jù)節(jié)點裝置IB從利用本地發(fā)信地址A1識別的節(jié)點裝置接收到的最新的 數(shù)據(jù)幀得到的解密后的明文時刻D34是T/’。節(jié)點裝置IB的電源被接入的時間點、即初始狀態(tài)下的最新發(fā)送時刻保存部45沒 有存儲任何項,但是通過后面說明的步驟S606來向最新發(fā)送時刻保存部45追加項,或者更 新已經(jīng)存在的項。在步驟S605中,確認部29將提取出的本地發(fā)信地址D6作為檢索關(guān)鍵字對最新發(fā)送時刻保存部45進行檢索。作為檢索的結(jié)果,如果不存在“本地發(fā)信地址”字段與提取出 的本地發(fā)信地址D6 —致的項,則確認部29判斷為“接收到的數(shù)據(jù)幀不是通過冒充攻擊發(fā) 送來的數(shù)據(jù)幀”。即,確認部29判斷為“接收到的數(shù)據(jù)幀是合法的數(shù)據(jù)幀”,處理轉(zhuǎn)移至步驟 S606。相反,作為檢索的結(jié)果,在找到“本地發(fā)信地址”字段與提取出的本地發(fā)信地址D6 一致的項的情況下,接收到的數(shù)據(jù)幀有可能是通過冒充攻擊發(fā)送來的。所以,確認部29將 找到到的項的“時刻”字段的值與在步驟S604中提取出的解密后的明文時刻D34進行比較。在2個時刻一致的情況下,確認部29判斷為“接收到的數(shù)據(jù)幀是基于冒充攻擊的 數(shù)據(jù)幀”,處理轉(zhuǎn)移至步驟S608。相反,如果2個時刻不一致,則確認部29判斷為“來自利 用本地發(fā)信地址D6識別的節(jié)點裝置的、與到目前為止節(jié)點裝置IB接收到的數(shù)據(jù)幀不同的 新的數(shù)據(jù)幀被合法發(fā)送”,處理轉(zhuǎn)移至步驟S606。在步驟S606中,確認部29更新利用本地發(fā)信地址D6識別的發(fā)送源節(jié)點裝置的最 新時刻信息。即,在通過步驟S605的檢索沒有找到項的情況下,確認部29生成將本地發(fā)信地址 D6和解密后的明文時刻D34建立對應(yīng)關(guān)系的新的項并保存在最新發(fā)送時刻保存部45中。 另外,在通過步驟S605的檢索找到了項的情況下,確認部29用解密后的明文時刻D34覆蓋 找到的該項的“時刻”字段的值。若通過上面所述更新了最新發(fā)送時刻保存部45保持的最新時刻信息,則確認部 29向接收數(shù)據(jù)幀處理部30輸出明文幀。于是,在步驟S607中,接收數(shù)據(jù)幀處理部30使用來自確認部29的輸入進行與實 施方式相應(yīng)的處理。例如,在解密后的明文幀體D29中也可以指定對象數(shù)據(jù)的最終的發(fā)送目的地(也 就是全局發(fā)送目的地)。并且,接收數(shù)據(jù)幀處理部30也可以根據(jù)全局的發(fā)送目的地判斷是 否需要轉(zhuǎn)送數(shù)據(jù)幀,在要轉(zhuǎn)送的情況下決定本地的發(fā)送目的地,并命令數(shù)據(jù)幀生成部40構(gòu) 造新的數(shù)據(jù)幀。另外,接收數(shù)據(jù)幀處理部30也可以如關(guān)于圖8所說明的那樣,使用解密后的明文 FID/D28和解密后的明文時刻D34進行非法的數(shù)據(jù)幀和合法的數(shù)據(jù)幀的判別和接收到的數(shù) 據(jù)幀是否是再次發(fā)送的數(shù)據(jù)幀的判斷。另外,在步驟S608中,接收到的數(shù)據(jù)幀被廢棄,結(jié)束圖16的處理。即,在步驟S608 中,確認部29不向接收數(shù)據(jù)幀處理部30輸出數(shù)據(jù)。與上面參照圖14 圖16說明的數(shù)據(jù)幀的發(fā)送接收有關(guān)的一系列的處理能夠根據(jù) 數(shù)據(jù)幀的格式適當(dāng)?shù)刈冃?。和圖17—起對其具體例進行說明。圖17是說明數(shù)據(jù)幀的格式和進行的與數(shù)據(jù)幀有關(guān)的各種處理的第2例的圖。圖 17是將圖8詳細化的格式的一例。下面,以從節(jié)點裝置IA向節(jié)點裝置IB發(fā)送數(shù)據(jù)幀的情況為例,對與圖17對應(yīng)的 處理進行詳細說明。節(jié)點裝置IA的數(shù)據(jù)幀生成部40計算由明文FID/D15、明文時刻D18和明文幀體 D16組成的明文凈荷的散列值,得到明文散列值D35。并且,節(jié)點裝置IA的數(shù)據(jù)幀加密部39 使用公用密鑰對明文散列值D35進行加密得到加密散列值D36,并使用節(jié)點裝置IB的訪問密鑰bl對由明文凈荷和加密散列值D36組成的部分進行加密。其結(jié)果,根據(jù)明文FID/D15得到加密FID/D37,根據(jù)明文時刻D18得到加密時刻 D38,根據(jù)明文幀體D16得到加密幀體D39,根據(jù)加密散列值D36得到二重加密散列值D40。節(jié)點裝置IA的數(shù)據(jù)幀加密部39將由加密FID/D37、加密時刻D38和加密幀體D39 組成的凈荷D41和作為幀尾D42的二重加密散列值D40與自組織幀頭D9連結(jié)。通過連結(jié) 完成的加密數(shù)據(jù)幀被暫時保存在數(shù)據(jù)幀發(fā)送緩沖43中并從發(fā)送處理部44發(fā)送。并且,在接收到了加密后的數(shù)據(jù)幀的節(jié)點裝置IB中,幀分支處理部21根據(jù)幀類型 D7判別為“接收到的幀是數(shù)據(jù)幀”,并將接受到的幀保存在數(shù)據(jù)幀接收緩沖24中。并且,數(shù) 據(jù)幀解密部27利用節(jié)點裝置IB自身的訪問密鑰bl對凈荷D41和幀尾D42進行解密。其結(jié)果,根據(jù)加密FID/D37得到解密后的明文FID/D43,根據(jù)加密時刻D38得到解 密后的明文時刻D44,根據(jù)加密幀體D39得到解密后的明文幀體D45。另外,根據(jù)二重加密 散列值D40得到解密后的密文散列值D46。數(shù)據(jù)幀解密部27還通過利用公用密鑰對解密后 的密文散列值D46解密來得到解密后的明文散列值D48。于是,節(jié)點裝置IB的確認部29計算由解密后的明文FID/D43、解密后的明文時刻 D44和解密后的明文幀體D45組成的部分的散列值,得到計算出的散列值D47。并且,確認 部29比較計算出的散列值D47和解密后的明文散列值D48,如果兩者不一致則廢棄數(shù)據(jù)幀。計算出的散列值D47和解密后的明文散列值D48 —致時,確認部29還將解密后 的明文時刻D44作為檢索關(guān)鍵字對最新發(fā)送時刻保存部45進行檢索,進行與圖16的步驟 S605同樣的時刻判定處理。步驟S605以后的處理和關(guān)于圖16所說明的一樣。如上面所述那樣,本實施方式涉及的節(jié)點裝置使用以規(guī)定的期間更新的公用密鑰 交換訪問密鑰,利用公用密鑰以及訪問密鑰判別是基于第三者的非法的訪問還是來自合法 的節(jié)點裝置的訪問。因此,需要在節(jié)點裝置之間使更新公用密鑰和訪問密鑰的定時一致。 即,對于節(jié)點裝置內(nèi)的時刻,需要在網(wǎng)絡(luò)內(nèi)的節(jié)點裝置之間預(yù)先取得同步。下面對時刻的同 步方法進行說明。圖18是說明時刻的同步方法的圖。以在圖18的節(jié)點裝置IA中取得時刻的同步 來校準(zhǔn)時刻的情況為例進行說明。節(jié)點裝置IA預(yù)先將自身節(jié)點裝置IA的當(dāng)前時刻和進行了時刻校準(zhǔn)的最終時刻存 儲在存儲部中(例如DRAM15)。并且,在接收到了時刻同步用的時刻同步幀的情況下,從時 刻同步幀中取出與時刻有關(guān)的信息并與在自身節(jié)點裝置IA中存儲的信息進行比較。作為 比較的結(jié)果,在判斷為需要進行同步的情況下,節(jié)點裝置IA按照時刻同步幀中包含的信息 進行時刻校準(zhǔn)。時刻同步幀在本實施方式中是與問候幀類似的格式的控制用幀的1種,包含表示 當(dāng)前時刻以及進行了時刻校準(zhǔn)的時刻(后面稱為“同步時刻”)的數(shù)據(jù)。這里,當(dāng)前時刻是 指在生成時刻同步幀的時間點上的該節(jié)點裝置1自身的時刻,同步時刻是指在規(guī)定的裝置 中取得了時刻的同步的時刻。所謂規(guī)定的裝置在本實施方式中是指網(wǎng)關(guān)裝置GW,時刻的同 步是指在網(wǎng)關(guān)裝置GW中例如通過SNTP (Simple Network Time Protocol,簡單網(wǎng)絡(luò)時間協(xié) 議)等取得時刻的同步。在網(wǎng)關(guān)裝置GW中,定期地、例如每2小時一次通過SNTP等取得時刻的同步。各節(jié) 點裝置1在時刻同步幀中保存自身節(jié)點裝置1的當(dāng)前時刻和同步時刻并通過時刻同步幀廣播。在規(guī)定的定時(例如每2小時1次)使用與上述的時間變化的公用密鑰不同的固定的 時刻同步密鑰對時刻同步幀進行加密并發(fā)送。在圖18所示的例子中,在網(wǎng)關(guān)裝置GW中,在12點通過SNTP等取得時刻的同步, 在13點生成時刻同步幀Pl并發(fā)送。接收到時刻同步幀Pl的節(jié)點裝置IA比較自身節(jié)點裝置IA中存儲的最終同步時 刻和時刻同步幀Pl的同步時刻。在圖18的例子中,時刻同步幀Pl的同步時刻(12:00)比 所存儲的最終同步時刻(11:00)新。在這種情況下,節(jié)點裝置IA作為當(dāng)前時刻設(shè)定接收到 的時刻同步幀中保存的當(dāng)前時刻(13:00)。這里,節(jié)點裝置IA有時會接收如節(jié)點裝置IB發(fā)送的時刻同步幀P2那樣的、基于 不是最新時刻的同步的時刻同步幀。在接收了時刻同步幀P2的情況下,由于自身節(jié)點裝置 IA中存儲的最終同步時刻(11:00)比時刻同步幀P2的同步時刻(10:00)新,所以節(jié)點裝置 IA不取得時刻的同步。接著,參照圖19 圖21對圖18的例子進行更加詳細的說明。圖19是說明參照圖18說明的時刻的同步方法的順序圖。在圖19中表示了 SNTP 服務(wù)器SS、網(wǎng)關(guān)裝置GW以及節(jié)點裝置IA 1C。下面設(shè)為,在自組織網(wǎng)絡(luò)內(nèi)網(wǎng)關(guān)裝置GW與 節(jié)點裝置IA鄰接,節(jié)點裝置IA也與節(jié)點裝置IB以及IC鄰接。另外,網(wǎng)關(guān)裝置GW和節(jié)點裝置IA IC都具備圖5的各部。另外,網(wǎng)關(guān)裝置GW也 安裝有基于SNTP的時刻校準(zhǔn)功能。如步驟S701所示那樣,若網(wǎng)關(guān)裝置GW自身的時鐘33的時刻變成12:00,則網(wǎng)關(guān)裝 置GW按照預(yù)先決定的計劃,通過SNTP訪問SNTP服務(wù)器SS,進行時刻校準(zhǔn)。另外,在網(wǎng)關(guān)裝置GW中,關(guān)于發(fā)送時刻同步幀的定時,也預(yù)先設(shè)定如“13:00發(fā)送” 那樣的計劃。所以,若在步驟S701中的時刻校準(zhǔn)的結(jié)果適當(dāng)修正的網(wǎng)關(guān)裝置GW的時鐘表 示成13:00,則網(wǎng)關(guān)裝置GW如步驟S702所示那樣發(fā)送時刻同步幀P1。另外,對于發(fā)送時刻同步幀的定時,也可以對鄰接的多個節(jié)點裝置分別設(shè)定不同 的時刻。雖然省略了時刻同步幀的格式的詳細的圖示,但是時刻同步幀包含和圖12的問 候幀同樣的自組織幀頭D9,并且,包含使用時刻同步密鑰對包含“同步時亥Γ和“當(dāng)前時刻” 這兩個字段的明文凈荷進行加密得到的加密凈荷。例如,在步驟S702中,網(wǎng)關(guān)裝置GW發(fā)送表示“同步時刻是12:00而當(dāng)前時刻是 13:00”的時刻同步幀Ρ1。即,同步時刻字段的值是網(wǎng)關(guān)裝置GW自身進行了步驟S701中的 時刻校準(zhǔn)的時刻,當(dāng)前時刻字段的值是網(wǎng)關(guān)裝置GW發(fā)送時刻同步幀Pl的時刻。另外,下面設(shè)時刻同步幀Pl的本地收信地址是節(jié)點裝置IA的地址。后面與圖20 一起詳細說明時刻同步幀發(fā)送處理。但是,在本實施方式中,在自組織網(wǎng)絡(luò)內(nèi)互相鄰接的裝置之間的通信延遲時間被 視為零。于是,當(dāng)網(wǎng)關(guān)裝置GW的時鐘33是13:00的時候在節(jié)點裝置IA中接收到時刻同步 幀Ρ1。但是,接收到時刻同步幀Pl時的節(jié)點裝置IA的時鐘33例如可能表示為12:58,也 可能表示為13:03。所以,接收到時刻同步幀Pl的節(jié)點裝置IA在步驟S703中進行節(jié)點裝置IA自身的 時鐘33的時刻校準(zhǔn)(即時刻同步處理)。其結(jié)果,節(jié)點裝置IA的時鐘33被校正到13:00。
23另外,步驟S703的時刻同步處理具體來講是圖21的時刻同步幀接收處理。對于在步驟S703中節(jié)點裝置IA的時鐘33被校正的情況,換言之,也可以說成在 步驟S703中節(jié)點裝置IA從時間段Tnal切換到時間段Tna2。另外,各個節(jié)點裝置IA IC根據(jù)各個計劃設(shè)定進行時刻同步幀發(fā)送處理。例如, 在圖19的例子中,若節(jié)點裝置IB的時鐘變成13:30,則節(jié)點裝置IB如步驟S704所示那樣 發(fā)送時刻同步幀P2。時刻同步幀P2表示“同步時刻是10:00而當(dāng)前時刻是13:30”。另外, 設(shè)時刻同步幀P2的本地收信地址為節(jié)點裝置IA的地址。由此,節(jié)點裝置IA接收時刻同步幀P2,并以時刻同步幀P2的接收為契機,如步驟 S705所示那樣進行時刻同步處理。但是,與已經(jīng)在步驟S703中進行過的時刻同步處理中使 用過的時刻同步幀Pl中作為同步時刻表示的12:00相比,時刻同步幀P2中作為同步時刻 表示的10:00是舊的。因此,如與圖21 —起詳細說明的那樣,在步驟S705中,節(jié)點裝置IA 不更新時鐘33。但是,在各個節(jié)點裝置IA IC中,預(yù)先設(shè)定了從通過時刻同步處理校正時鐘33 開始到向鄰接的其他節(jié)點裝置發(fā)送時刻同步幀為止的間隔Tnax。例如,對節(jié)點裝置IA設(shè)定 的間隔Tnax是40分鐘。也可以對每個節(jié)點裝置IA IC設(shè)定不同的隨機的間隔。另外,對于節(jié)點裝置1A, 也可以將從校正時鐘33開始到向多個節(jié)點裝置IB和IC分別發(fā)送時刻同步幀為止的間隔 設(shè)定成相同的值(例如上述的間隔Tnax)?;蛘呦喾矗部梢栽?個節(jié)點裝置IA中將從校 正時鐘33開始到向節(jié)點裝置IB發(fā)送時刻同步幀為止的間隔(在圖19中沒有圖示)和從 校正時鐘33開始到向節(jié)點裝置IC發(fā)送時刻同步幀為止的間隔Tnax設(shè)定成不同的值。節(jié)點裝置IA按照設(shè)定,若在校正時鐘33起經(jīng)過了規(guī)定的時間(即Tnax = 40分 鐘),則如步驟S706所示那樣進行時刻同步幀發(fā)送處理。在步驟S706中,發(fā)送表示“同步 時刻是12:00而當(dāng)前時刻是13:40”的時刻同步幀P3。時刻同步幀P3表示“同步時刻是12:00”是因為成為節(jié)點裝置IA校正時鐘33的 契機的時刻同步幀Pl作為同期時刻表示的是12:00。另外,時刻同步幀P3表示“當(dāng)前時刻 是13:40”是因為時刻同步幀P3是在13:40被發(fā)送的。并且,若在節(jié)點裝置IC中接收到時刻同步幀P3,則如步驟S707所示那樣,節(jié)點裝 置IC進行時刻同步處理。圖20是時刻同步幀發(fā)送處理的流程圖。例如,分別地在圖19的步驟S702中網(wǎng)關(guān) 裝置GW進行圖20的處理,在步驟S704中節(jié)點裝置IB進行圖20的處理,在步驟S706中節(jié) 點裝置IA進行圖20的處理。例如,節(jié)點裝置IA的時刻同步部9也可以具備與圖5的計數(shù)器34不同的未圖示 的第2計數(shù)器。例如能夠通過與圖4的定時器IC13類似的硬件電路來實現(xiàn)第2計數(shù)器。在第2計數(shù)器中設(shè)定有表示間隔Tnax的值。并且,時刻同步部9當(dāng)在后面與圖21 一起說明的時刻同步幀接收處理結(jié)束時對第2計數(shù)器清零。當(dāng)?shù)?計數(shù)器的計數(shù)達到表示 間隔Tnax的值時,時刻同步部9開始圖20的處理?;蛘?,時刻同步部9也可以存儲校正時鐘33的時刻,通過參照時鐘33來判斷從進 行了存儲的時刻算起是否經(jīng)過了間隔Tnax,如果經(jīng)過了間隔Tnax則開始圖20的處理。若開始了圖20的處理,則在步驟S801中時刻同步部9將自身節(jié)點裝置1中保持的最終同步時刻作為同步時刻設(shè)定在幀中。時刻同步部9將根據(jù)最后進行了圖21的處理時的時刻同步幀的同步時刻字段得 到的時刻作為節(jié)點裝置1自身的“最終同步時刻”例如保持在DRAM15上。所以,在步驟S801 中,時刻同步部9在新生成的明文幀的同步時刻字段中設(shè)定所保持的最終同步時刻的值。例如在圖19的例子中,在節(jié)點裝置IA的時刻同步部9執(zhí)行步驟S706的情況下, 時刻同步部9作為最終同步時刻保持成為在步驟S703中校正時鐘33的契機的時刻同步幀 Pl表示的同步時刻、即12:00。所以,在步驟S706調(diào)用的圖20的處理的步驟S801中,時刻 同步部9在新生成的明文幀的同步時刻字段中設(shè)定為12:00。接著,在步驟S802中,時刻同步部9將自身節(jié)點裝置1的時刻同步幀發(fā)送時刻作 為“當(dāng)前時刻”設(shè)定在幀中(也就是新生成的明文幀)。更嚴密來說,將步驟S802執(zhí)行時時 鐘33表示的時刻近似地看做來自節(jié)點裝置1的時刻同步幀發(fā)送時刻,并通過時刻同步部9 將其設(shè)定在明文幀的當(dāng)前時刻字段中。例如,在圖19的例子中,在節(jié)點裝置IA的時刻同步部9執(zhí)行步驟S706的情況下, 在步驟S706調(diào)用的圖20的處理的步驟S802中,時刻同步部9在明文幀的當(dāng)前時刻字段中 設(shè)定為13:40。并且,在步驟S803中,時刻同步部9生成時刻同步幀的幀頭,并將所生成的幀頭附 加在明文凈荷(包含同步時刻和當(dāng)前時刻)的前面。在步驟S803中生成的幀頭例如是與 問候幀的自組織幀頭D9同樣的形式。并且,時刻同步部9向時刻同步幀加密部38輸出由 幀頭和明文凈荷組成的明文幀。于是,在步驟S804中,時刻同步幀加密部38參照時刻同步密鑰保存部35讀取時 刻同步密鑰,并使用時刻同步密鑰對明文凈荷加密。例如,在用于對時刻同步幀進行加密的 加密算法也是RC4的情況下,在步驟S804中,時刻同步幀加密部38具體來講進行密鑰流的 生成和XOR操作。時刻同步幀加密部38向時刻同步幀發(fā)送緩沖42輸出由在步驟S803中 附加的幀頭和在步驟S804中被加密的凈荷組成的時刻同步幀。最后在步驟S805中,發(fā)送部7發(fā)送時刻同步幀。也就是說,發(fā)送處理部44發(fā)送暫 時保存在時刻同步幀發(fā)送緩沖42中的時刻同步幀并結(jié)束圖20的處理。圖21是時刻同步幀接收處理的流程圖。例如,在圖19的步驟S703和S705中,節(jié) 點裝置IA進行圖21的處理。以節(jié)點裝置1在接受部8中接收幀,接收部8的幀分支處理 部21根據(jù)自組織幀頭D9的幀類型D7判別為“接收到的幀是時刻同步幀”為契機開始圖21 的處理。另外,若幀分支處理部21判別為“接收到的幀是時刻同步幀”,則接收到的幀被輸 出至?xí)r刻同步幀接收緩沖23中并被保存。在步驟S901中,時刻同步幀解密部26從時刻同步幀接收緩沖23中讀取時刻同步 幀并進行解密。即,時刻同步幀解密部26參照時刻同步密鑰保存部35讀取時刻同步密鑰, 并使用時刻同步密鑰對時刻同步幀的被加密的凈荷進行解密。在如上面所述那樣用于對時刻同步幀進行加密的加密算法也是RC4的情況下,時 刻同步幀解密部26在步驟S901中具體來講進行密鑰流的生成和XOR操作。另外,解密后,時刻同步幀解密部26向時刻同步部9輸出幀頭和通過解密得到的 明文凈荷。于是,在步驟S902中,時刻同步部9從明文凈荷中提取同步時刻字段的值,并且讀取例如在DRAM15中保持的最終同步時刻。并且時刻同步部9比較提取的同步時刻和讀取 的最終同步時刻。在同步時刻比最終同步時刻新時,處理轉(zhuǎn)移至步驟S903。相反,在同步時刻與最終 同步時刻相同又或者同步時刻比最終同步時刻舊時,處理轉(zhuǎn)移至步驟S904。在步驟S903中,時刻同步部9將時刻同步幀的當(dāng)前時刻作為自身節(jié)點裝置1的時 刻來設(shè)定。即,時刻同步部9提取時刻同步幀的當(dāng)前時刻字段的值,并在時鐘33中設(shè)定提 取出的值,由此來校正時鐘33的時刻。并且,結(jié)束圖21的處理。例如,在圖19的步驟S703調(diào)用圖21的處理的情況下,步驟S903被執(zhí)行,時刻同 步部9校正時鐘33。另外,在步驟S904中,時刻同步部9廢棄時刻同步幀并結(jié)束圖21的處理。例如, 在圖19的步驟S705調(diào)用圖21的處理的情況下,步驟S904被執(zhí)行。另外,如關(guān)于圖20以及圖21所說明的那樣,雖然本實施方式的時刻同步幀中沒有 特別包含署名等的幀尾,但是也可以是利用將明文凈荷的散列值作為幀尾進行附加的格式 的時刻同期幀的實施方式。在這種情況下,在時刻同步幀發(fā)送處理中,時刻同步部9進行散列值的計算,時刻 同步幀加密部38對凈荷和幀尾的雙方進行加密。另外,在時刻同步幀接收處理中,時刻同 步幀解密部26對凈荷和幀尾的雙方進行解密。并且,確認部29根據(jù)通過解密得到的明文 凈荷計算散列值,并比較計算出的散列值和通過解密得到的明文散列值,只有在2個散列 值一致的情況下時刻同步部9才執(zhí)行步驟S902以后的處理。在構(gòu)成自組織通信網(wǎng)絡(luò)的節(jié)點裝置數(shù)量較多的情況下,在各節(jié)點裝置取得與網(wǎng)關(guān) 裝置等的規(guī)定的1個裝置的時刻同步的構(gòu)成中,流量增大。另一方面,根據(jù)本實施方式,即 使在節(jié)點裝置數(shù)量較多的情況下,各節(jié)點裝置也如上述的時刻同步方法那樣從鄰接的節(jié)點 裝置中的已經(jīng)取得了同步的節(jié)點裝置接收時刻同步幀來進行時刻校準(zhǔn)。因此,根據(jù)本實施 方式,不增大網(wǎng)絡(luò)整體的流量各節(jié)點裝置就能夠取得時刻的同步。上面參照圖1 圖21對本實施方式進行了詳細的說明,關(guān)于本實施方式的節(jié)點裝 置1的概況如下面所述。圖3 圖5所示的節(jié)點裝置1是例如如圖2、圖6、圖7、圖18以及圖19所示那樣 由多個節(jié)點裝置構(gòu)成的網(wǎng)絡(luò)中的節(jié)點裝置中的一個。這里為了方便說明,以多個節(jié)點裝置 中的第1節(jié)點裝置IA和第2節(jié)點裝置IB為著重點來說明第1節(jié)點裝置IA的構(gòu)成概況。第1節(jié)點裝置IA如圖3以及圖5所示那樣具有每隔第1時間就變更并生成作為 第1節(jié)點裝置IA所固有的加密密鑰的第1訪問密鑰的訪問密鑰生成部2。這里,所謂“第 1訪問密鑰”,例如是圖6的訪問密鑰al,所謂“第1時間”,在上述的實施方式的例子中是、 =10(分鐘)。另外,第1節(jié)點裝置IA如圖3以及圖5所示那樣具有每隔作為在多個節(jié)點裝置中 共同的時間的第2時間就變更并生成網(wǎng)絡(luò)內(nèi)的多個節(jié)點裝置中公用的公用密鑰的公用密 鑰生成部3。這里,所謂“第2時間”在上述的實施方式的例子中是、=12(小時)。另外,第1節(jié)點裝置IA具有作為利用所生成的公用密鑰對所生成的第1訪問密鑰 進行加密并向第2節(jié)點裝置IB發(fā)送的訪問密鑰通知部而工作的組件。即,圖3的幀處理部 6、加密部4和發(fā)送部7協(xié)同動作作為上述訪問密鑰通知部而工作。更詳細來說,圖5的問候幀生成部36、問候幀加密部37、問候幀發(fā)送緩沖41和發(fā)送處理部44協(xié)同動作作為上述 訪問密鑰通知部而工作。另外,第1節(jié)點裝置IA具有作為接收從第2節(jié)點裝置IB發(fā)送來的訪問密鑰通知 幀的訪問密鑰接收部而工作的組件。這里,“訪問密鑰通知幀”包含使用公用密鑰對第2節(jié) 點裝置IB所固有的加密密鑰、即第2訪問密鑰進行加密得到的數(shù)據(jù)、即訪問密鑰通知數(shù)據(jù), 具體來講是上述實施方式中的被加密的問候幀。另外,“第2訪問密鑰”例如是圖6的訪問 密鑰bl,“訪問密鑰通知數(shù)據(jù)”例如是圖12的加密訪問密鑰D3。另外,在上述實施方式中,圖3的接收部8 (更詳細來講是圖5的幀分支處理部21 和問候幀接收緩沖22)作為訪問密鑰接收部而工作。另外,第1節(jié)點裝置IA具有作為通過使用所生成的公用密鑰對訪問密鑰通知數(shù) 據(jù)進行解密來從訪問密鑰通知數(shù)據(jù)中取得第2訪問密鑰的訪問密鑰解密部而工作的組件。 即,在上述實施方式中,圖3的解密部5 (更詳細來說是圖5的問候幀解密部25)作為上述 訪問密鑰解密部而工作從而取得訪問密鑰bl。另外,第1節(jié)點裝置IA具有作為數(shù)據(jù)發(fā)送部而工作的組件。數(shù)據(jù)發(fā)送部向第1明 文幀中附加使用公用密鑰對包含根據(jù)第1明文幀計算出的第1散列值的數(shù)據(jù)進行加密得到 的第1署名數(shù)據(jù)。并且,數(shù)據(jù)發(fā)送部使用解密得到的第2訪問密鑰對附加有第1署名數(shù)據(jù) 的第1明文幀進行加密并作為第1加密幀發(fā)送。這里的“第1明文幀”的例子是包含關(guān)于圖15所說明的由自組織幀頭D9、明文 FID/D15和明文幀體D16組成的明文凈荷的明文幀?!暗?散列值”的例子是根據(jù)還沒有生 成幀尾的明文幀(更準(zhǔn)確來講是根據(jù)明文凈荷)計算出的圖15的明文散列值D17,“第1 署名數(shù)據(jù)”的例子是加密署名D21。根據(jù)實施方式不同,也可以還利用幀頭計算散列值。另 外,“第2訪問密鑰”具體來講是圖6的訪問密鑰bl。在上述實施方式中,圖3的加密部4和發(fā)送部7 (更詳細來講是圖5的數(shù)據(jù)幀加密 部39、數(shù)據(jù)幀發(fā)送緩沖43和發(fā)送處理部44)協(xié)同動作作為上述數(shù)據(jù)發(fā)送部而工作。另外,第1節(jié)點裝置IA具有作為接收來自第2節(jié)點裝置IB的第2加密幀的數(shù)據(jù) 接收部而工作的圖3的接收部8 (更詳細來說是圖5的幀分支處理部21和數(shù)據(jù)幀接收緩沖 24)。這里,所謂“第2加密幀”是利用第1訪問密鑰對第2明文幀進行加密得到的幀,“第 2明文幀”是附加有利用上述公用密鑰對包含第2散列值的數(shù)據(jù)進行加密得到的第2署名 數(shù)據(jù)的幀。另外,第1節(jié)點裝置IA具有作為數(shù)據(jù)解密部而工作的圖3的解密部5 (更詳細來 說是圖5的數(shù)據(jù)幀解密部27)。上述數(shù)據(jù)解密部利用第1訪問密鑰對第2加密幀進行解密, 并根據(jù)第2加密幀得到附加有第2署名數(shù)據(jù)的第2明文幀。在上述實施方式的說明中,結(jié)合從節(jié)點裝置IA向節(jié)點裝置IB發(fā)送數(shù)據(jù)幀的情況 對圖15的例子進行了說明,但是圖15也適用于從節(jié)點裝置IB向節(jié)點裝置IA發(fā)送數(shù)據(jù)幀 的情況。在這種情況下,圖15的由自組織幀頭D9、凈荷D26和幀尾D27組成的數(shù)據(jù)幀相當(dāng) 于從節(jié)點裝置IB發(fā)送來的“第2加密幀”。并且,作為上述數(shù)據(jù)解密部而工作的節(jié)點裝置IA的數(shù)據(jù)幀解密部27使用作為“第 1訪問密鑰”的訪問密鑰al得到第2明文幀。這里,“第2明文幀”包含由自組織幀頭D9、被 解密的明文FID/D28以及被解密的明文幀體D29組成的明文凈荷。另外,在“第2明文幀”中,由被解密的密文散列值D30和被解密的密文時刻D31組成的加密署名(相當(dāng)于上述的 “第2署名數(shù)據(jù)”)作為幀尾被附加。另外,第1節(jié)點裝置IA具有作為一致性確認部而工作的組件。在上述實施方式中, 圖5的數(shù)據(jù)幀解密部27和確認部29協(xié)同動作作為一致性確認部而工作。具體來講,作為 一致性確認部的一部分的數(shù)據(jù)幀解密部27通過使用所生成的公用密鑰對第2署名數(shù)據(jù)進 行解密來取得第2散列值。并且,作為一致性確認部的一部分的確認部29根據(jù)第2明文幀 計算第3散列值(例如圖15的計算出的散列值D32),并確認是否取得了第2散列值和上述 第3散列值的一致性。另外,上述的數(shù)據(jù)發(fā)送部還可以使第1明文幀中包含用于唯一識別第1明文幀的 第1識別符和表示第1發(fā)送時刻的信息。在上述實施方式中,數(shù)據(jù)幀生成部40也作為數(shù)據(jù)發(fā)送部的一部分而工作,數(shù)據(jù)幀 生成部40使第1明文幀中包含作為“第1識別符”的圖17的明文FID/D15和作為“表示第 1發(fā)送時刻的信息”的明文時刻D18?;蛘撸瑪?shù)據(jù)幀生成部40也可以如圖15那樣使第1明 文幀中包含加密時刻D20,作為“表示第1發(fā)送時刻的信息”。明文時刻D18和加密時刻D20 雖然有是明文或密文的區(qū)別,但是在“表示第1發(fā)送時刻”這一點上是相同的。另外,圖5的接收數(shù)據(jù)幀處理部30還可以附加性地作為上述的一致性確認部而工 作。也就是說,在從第2加密幀解密得到的第2明文幀中包含的第2識別符等于從過去接 收過的第3加密幀解密得到的第3明文幀中包含的第3識別符的情況下,作為一致性確認 部的接收數(shù)據(jù)幀處理部30也可以將第2和第3明文幀中的通過解密得到的信息表示較新 的發(fā)送時刻的一方廢棄。例如,若將圖17的例子適用于從節(jié)點裝置IB向節(jié)點裝置IA發(fā)送的情況,則“第2 明文幀”由自組織幀頭D9、明文凈荷和作為明文幀尾的被解密的密文散列值D46組成。并 且,明文凈荷由被解密的明文FID/D43、被解密的明文時刻D44以及被解密的明文幀體D45 組成。另外,“第2識別符”相當(dāng)于被解密的明文FID/D43。并且,作為一致性確認部的接收數(shù)據(jù)幀處理部30如下面那樣工作。即,接收數(shù)據(jù) 幀處理部30在明文FID/D43等于過去接收過的其他的數(shù)據(jù)幀的FID的情況下,將通過解密 得到的發(fā)送時刻(例如被解密的明文時刻D44)較新一方的數(shù)據(jù)幀廢棄。這樣,作為數(shù)據(jù)發(fā)送部以及一致性確認部的各部進行使用了識別符(具體來講是 FID)的處理,由此節(jié)點裝置IA能夠檢測出由非法的節(jié)點裝置發(fā)送的幀。另外,網(wǎng)絡(luò)內(nèi)的多個節(jié)點裝置(例如包含節(jié)點裝置IA和1B)的各自的公用密鑰生 成部3,如上面所述那樣每隔共同的時間、即第2時間就生成公用密鑰。所以,多個節(jié)點裝置 的各自的時鐘(例如圖5的時鐘33)如果在即使無視也不會產(chǎn)生問題的程度的誤差范圍內(nèi) 互相同步,則在多個節(jié)點裝置中生成公用密鑰的定時也同步。但是,多個節(jié)點裝置各自的時鐘的時刻的錯位也有可能隨著時間擴大。所以,上述 實施方式通過校正多個節(jié)點裝置各自的時鐘的時刻的錯位在網(wǎng)絡(luò)內(nèi)的多個節(jié)點裝置之間 取得生成公用密鑰的定時的同步。S卩,第1節(jié)點裝置IA具有協(xié)同動作作為時刻同步幀發(fā)送部而工作的組件。時刻同 步幀發(fā)送部生成包含表示第1節(jié)點裝置IA中的第1當(dāng)前時刻和在第1節(jié)點裝置IA中進行 了時刻校準(zhǔn)的第1同步時刻的數(shù)據(jù)的第1時刻同步幀作為時刻同步幀并發(fā)送。
28
例如,在圖19的例子中,步驟S703以后的“第1同步時刻”是1200,在步驟S706 中發(fā)送包含表示作為“第1當(dāng)前時刻”的13:40的信息的時刻同步幀P3。另外,雖然上述實施方式的時刻同步幀被利用時刻同步密鑰加密,但是時刻同步 幀沒有被加密的實施方式也是可能的。所以,雖然在上述實施方式中圖5的時刻同步部9、 時刻同步幀加密部38、時刻同步幀發(fā)送緩沖42以及發(fā)送處理部44協(xié)同動作作為時刻同步 幀發(fā)送部而工作,但是也可以省略時刻同步幀加密部38。另外,第1節(jié)點裝置IA具有作為從第2節(jié)點裝置IB接收第2時刻同步幀的時刻 同步幀接收部而工作的組件。這里,第2時刻同步幀包含表示第2節(jié)點裝置IB中的第2當(dāng) 前時刻(例如在圖19的例子中是13:30)和在上述第2節(jié)點裝置中進行了時刻校準(zhǔn)的第2 同步時刻(例如在圖19的例子中是10:00)的數(shù)據(jù)。在上述實施方式中,圖5的幀分支處理部21以及時刻同步幀接收緩沖23協(xié)同動 作作為上述時刻同步幀接收部而工作。并且,第1節(jié)點裝置IA具有作為時刻更新部而工作的組件。時刻更新部比較根據(jù) 第2時刻同步幀得到的第2同步時刻和第1節(jié)點裝置IA存儲的第1同步時刻。并且,如果 第2同步時刻較新,則時刻更新部設(shè)定第2當(dāng)前時刻作為第1節(jié)點裝置IA中的當(dāng)前時刻, 來更新第1節(jié)點裝置IA的時刻。具體來講,圖5的時刻同步部9作為時刻更新部而工作。另外,在上述實施方式中, 由于時刻同步幀被加密,所以為了根據(jù)第2時刻同步幀得到第2同步時刻,時刻同步幀解密 部26也作為時刻更新部的一部分而工作。并且,節(jié)點裝置IA例如具有DRAM15作為存儲部。該存儲部將第2同步時刻作為 通過作為時刻更新部的時刻同步部9更新第1節(jié)點裝置IA的時刻進行了時刻校準(zhǔn)的時刻 進行存儲。另外,圖3以及圖5的公用密鑰生成部3根據(jù)作為時刻更新部的時刻同步部9 進行了更新的時刻(具體來講是圖5的時鐘33表示的時刻)對第2時間進行計時。根據(jù)上面大概描述的上述實施方式,在第2節(jié)點裝置是合法的節(jié)點裝置的情況 下,第2節(jié)點裝置保有和第1節(jié)點裝置公用的公用密鑰。所以,能夠使用公用密鑰安全地交 換第1節(jié)點裝置中生成的第1訪問密鑰和第2節(jié)點裝置中生成的第2訪問密鑰。另外,第1節(jié)點裝置能夠使用通過解密得到的第2節(jié)點裝置的第2訪問密鑰對數(shù) 據(jù)加密并向第2節(jié)點裝置發(fā)送。并且,第1節(jié)點裝置還能夠從第2節(jié)點裝置接收使用第1 節(jié)點自身生成的第1訪問密鑰加密后的數(shù)據(jù)。這樣,根據(jù)上述實施方式,各節(jié)點裝置自主地與其他的節(jié)點裝置協(xié)同動作進行用 于加密的動作。所以,即使在包含非常多的節(jié)點裝置的網(wǎng)絡(luò)中,也不會發(fā)生用于加密密鑰的 交換的流量集中的情況。另外,各節(jié)點裝置為了自主地進行用于加密的動作,需要取得各節(jié)點裝置根據(jù)時 間生成并通過修改進行變更的公用密鑰的變更定時的同步。根據(jù)上述的實施方式,提供了 構(gòu)成簡單并且不會增加網(wǎng)絡(luò)負荷的、能夠取得同步而自主地變更公用密鑰的節(jié)點裝置。另外,在上述的實施方式中,主要說明了節(jié)點裝置,但是使計算機執(zhí)行上述方法的 控制程序也包含在本發(fā)明的實施方式的一例中。該控制程序也可以通過由磁盤、光磁盤、非 易失性的半導(dǎo)體存儲器、光盤等的計算機能夠讀取的存儲介質(zhì)存儲來提供,被加載到計算 機上并由計算機執(zhí)行。
執(zhí)行該控制程序的計算機內(nèi)置在未圖示的節(jié)點裝置中或者與其連接,按照該控制 程序控制上述未圖示的節(jié)點裝置以使上述未圖示的節(jié)點裝置和上述實施方式的節(jié)點裝置1 同樣動作。例如,如果從其他的觀點來看上述實施方式,也可以說成節(jié)點裝置1的內(nèi)置計算 機、即MPUll按照閃存16中存儲的控制程序控制節(jié)點裝置1并使上述各處理在節(jié)點裝置1 中執(zhí)行。另外,上述實施方式中示例的RC4是能夠采用的加密算法的一個例子。也可以根 據(jù)實施方式不同進行基于其他的加密算法的加密以及解密。例如,也可以使用流加密以外 的加密算法。另外,分別使用了時刻同步密鑰、公用密鑰和訪問密鑰的加密以及解密也可以 基于不同的加密算法。另外,問候幀、數(shù)據(jù)幀、時刻同步幀的格式當(dāng)然不限定于上述實施方式中示例的格 式。例如,各幀還可以包含上述實施方式中沒有示例的字段。相反,如果幀是固定長度,幀 大小D8的字段可以省略。并且,上述實施方式中示例的“10分鐘”等的具體的數(shù)值只不過是為了幫助理解才 表示的,可以根據(jù)實施方式設(shè)定各種各樣的具體的數(shù)值。
權(quán)利要求
1.一種節(jié)點裝置,其特征在于,是由包含第1節(jié)點裝置和第2節(jié)點裝置的多個節(jié)點裝置構(gòu)成的網(wǎng)絡(luò)中的上述第1節(jié)點 裝置,具有訪問密鑰生成部,每隔第1時間變更生成上述第1節(jié)點裝置所固有的加密密鑰、即第1 訪問密鑰;公用密鑰生成部,每隔在上述多個節(jié)點裝置中共同的時間、即第2時間變更生成在上 述網(wǎng)絡(luò)內(nèi)的上述多個節(jié)點裝置中公用的公用密鑰;訪問密鑰通知部,使用所生成的上述公用密鑰對所生成的上述第1訪問密鑰進行加密 并向上述第2節(jié)點裝置發(fā)送;訪問密鑰接收部,接收從上述第2節(jié)點裝置發(fā)送來的包含訪問密鑰通知數(shù)據(jù)的訪問密 鑰通知幀,該訪問密鑰通知數(shù)據(jù)是使用上述公用密鑰對上述第2節(jié)點裝置所固有的加密密 鑰、即第2訪問密鑰進行加密得到的數(shù)據(jù);訪問密鑰解密部,使用所生成的上述公用密鑰對上述訪問密鑰通知數(shù)據(jù)解密,由此根 據(jù)上述訪問密鑰通知數(shù)據(jù)取得上述第2訪問密鑰;數(shù)據(jù)發(fā)送部,向第1明文幀附加使用上述公用密鑰對包含根據(jù)該第1明文幀計算出的 第1散列值的數(shù)據(jù)進行加密得到的第1署名數(shù)據(jù),使用通過解密得到的上述第2訪問密鑰 對附加有上述第1署名數(shù)據(jù)的上述第1明文幀進行加密并作為第1加密幀發(fā)送;數(shù)據(jù)接收部,從上述第2節(jié)點裝置接收利用上述第1訪問密鑰對第2明文幀進行加密 得到的第2加密幀,該第2明文幀附加有使用上述公用密鑰對包含第2散列值的數(shù)據(jù)進行 加密得到的第2署名數(shù)據(jù);數(shù)據(jù)解密部,使用上述第1訪問密鑰對上述第2加密幀進行解密,從而根據(jù)上述第2加 密幀得到附加有上述第2署名數(shù)據(jù)的上述第2明文幀;和一致性確認部,通過使用所生成的上述公用密鑰對上述第2署名數(shù)據(jù)解密來取得上述 第2散列值,根據(jù)上述第2明文幀計算第3散列值,并確認是否取得了上述第2散列值和上 述第3散列值的一致性。
2.根據(jù)權(quán)利要求1所述的節(jié)點裝置,其特征在于,上述數(shù)據(jù)發(fā)送部使上述第1明文幀中包含用于唯一識別上述第1明文幀的第1識別符 和表示第1發(fā)送時刻的信息;在上述數(shù)據(jù)解密部從上述第2加密幀解密得到的上述第2明文幀中包含的第2識別符 與從過去接收過的第3加密幀解密得到的第3明文幀中包含的第3識別符相等的情況下, 上述一致性確認部還廢棄上述第2明文幀和上述第3明文幀中的通過解密得到的信息表示 較新的發(fā)送時刻的一方。
3.根據(jù)權(quán)利要求2所述的節(jié)點裝置,其特征在于, 具有時刻同步幀發(fā)送部,生成包含表示上述第1節(jié)點裝置中的第1當(dāng)前時刻和在上述第1 節(jié)點裝置中進行了時刻校準(zhǔn)的第1同步時刻的數(shù)據(jù)的第1時刻同步幀作為時刻同步幀并發(fā) 送;時刻同步幀接收部,從上述第2節(jié)點裝置接收包含表示上述第2節(jié)點裝置中的第2當(dāng) 前時刻和在上述第2節(jié)點裝置中進行了時刻校準(zhǔn)的第2同步時刻的數(shù)據(jù)的第2時刻同步幀;時間更新部,比較根據(jù)上述第2時刻同步幀得到的第2同步時刻和上述第1節(jié)點裝置存儲的上述第1同步時刻,如果上述第2同步時刻較新,則將上述第2當(dāng)前時刻設(shè)定為上述 第1節(jié)點裝置中的當(dāng)前時刻來更新上述第1節(jié)點裝置的時刻;和存儲部,存儲上述第2同步時刻,作為通過上述時刻更新部更新第1節(jié)點裝置的時刻來 進行了時刻校準(zhǔn)的時刻;上述公用密鑰生成部根據(jù)上述時刻更新部進行了更新的時刻對上述第2時間進行計時。
4. 一種程序,其特征在于,使控制由包含第1節(jié)點裝置和第2節(jié)點裝置的多個節(jié)點裝置構(gòu)成的網(wǎng)絡(luò)中的上述第1 節(jié)點裝置的計算機執(zhí)行下列處理每隔第1時間變更生成上述第1節(jié)點裝置所固有的加密密鑰、即第1訪問密鑰; 每隔在上述多個節(jié)點裝置中共同的時間、即第2時間變更生成在上述網(wǎng)絡(luò)內(nèi)的上述多 個節(jié)點裝置中公用的公用密鑰;使用所生成的上述公用密鑰對所生成的上述第1訪問密鑰進行加密并向上述第2節(jié)點 裝置發(fā)送;接收從上述第2節(jié)點裝置發(fā)送來的包含訪問密鑰通知數(shù)據(jù)的訪問密鑰通知幀,該訪問 密鑰通知數(shù)據(jù)是使用上述公用密鑰對上述第2節(jié)點裝置所固有的加密密鑰、即第2訪問密 鑰進行加密得到的數(shù)據(jù);使用所生成的上述公用密鑰對上述訪問密鑰通知數(shù)據(jù)解密,由此根據(jù)上述訪問密鑰通知數(shù)據(jù)取得上述第2訪問密鑰;向第1明文幀附加使用上述公用密鑰對包含根據(jù)該第1明文幀計算出的第1散列值的數(shù)據(jù)進行加密得到的第1署名數(shù)據(jù),使用通過解密得到的上述第2訪問密鑰對附加有上述 第1署名數(shù)據(jù)的上述第1明文幀進行加密并作為第1加密幀發(fā)送;從上述第2節(jié)點裝置接收利用上述第1訪問密鑰對第2明文幀進行加密得到的第2加密幀,該第2明文幀附加有使用上述公用密鑰對包含第2散列值的數(shù)據(jù)進行加密得到的第 2署名數(shù)據(jù);使用上述第1訪問密鑰對上述第2加密幀進行解密,從而根據(jù)上述第2加密幀得到附加有上述第2署名數(shù)據(jù)的上述第2明文幀;通過使用所生成的上述公用密鑰對上述第2署名數(shù)據(jù)解密來取得上述第2散列值,根據(jù)上述第2明文幀計算第3散列值,并確認是否取得了上述第2散列值和上述第3散列值 的一致性。
全文摘要
在由多個節(jié)點裝置構(gòu)成的網(wǎng)絡(luò)中的第1節(jié)點裝置中,訪問密鑰生成部每隔第1時間變更第1節(jié)點裝置所固有的加密密鑰、即第1訪問密鑰。公用密鑰生成部每隔第2時間變更在多個節(jié)點裝置中公用的公用密鑰。第1節(jié)點裝置使用所生成的公用密鑰對所生成的第1訪問密鑰進行加密并發(fā)送,并且接收由第2節(jié)點裝置發(fā)送來的、包含使用公用密鑰對第2節(jié)點裝置的第2訪問密鑰進行加密得到的數(shù)據(jù)的訪問密鑰通知幀。解密部通過使用所生成的公用密鑰對接收到的訪問密鑰通知幀進行解密來取得第2訪問密鑰。發(fā)送部發(fā)送使用第2訪問密鑰對明文幀進行加密得到的加密幀,該明文幀附加有使用公用密鑰對包含根據(jù)明文幀計算出的散列值的數(shù)據(jù)進行加密得到的署名數(shù)據(jù)。
文檔編號H04L9/08GK102007726SQ20098011333
公開日2011年4月6日 申請日期2009年4月24日 優(yōu)先權(quán)日2008年4月24日
發(fā)明者中嶋千明, 古賀俊介, 增淵健太郎, 巖尾忠重, 池本健太郎, 高橋勇治 申請人:富士通株式會社