α,與通信部103向通信裝置2發(fā)送的數(shù)據(jù)幀中保存的幀計(jì)數(shù)器值N的差是α。此時(shí),存儲(chǔ)指示部104使保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值N向第I存儲(chǔ)器105及第2存儲(chǔ)器106存儲(chǔ)(S404)。
[0079]然后,與S401同樣,通信部103將保存有幀計(jì)數(shù)器值Ν+1的數(shù)據(jù)幀向通信裝置2發(fā)送(S405)。此時(shí),存儲(chǔ)指示部104與S402同樣,使保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值N+1向第I存儲(chǔ)器105存儲(chǔ)(S406)。
[0080]這里,在通信裝置I重新啟動(dòng)的情況下(S407),計(jì)數(shù)器計(jì)算部101讀出第2存儲(chǔ)器106中存儲(chǔ)的幀計(jì)數(shù)器值N。計(jì)數(shù)器計(jì)算部101對(duì)讀出的幀計(jì)數(shù)器值N加上β,計(jì)算向數(shù)據(jù)幀的頭201內(nèi)保存的幀計(jì)數(shù)器值N+β (S408)。
[0081]然后,與S403同樣,通信部103將保存有幀計(jì)數(shù)器值N+β的數(shù)據(jù)幀向通信裝置2發(fā)送(S409)。此時(shí),存儲(chǔ)指示部104與S404同樣,使保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值Ν+β向第I存儲(chǔ)器105及第2存儲(chǔ)器106存儲(chǔ)(S410)。
[0082]圖5表示表示有關(guān)實(shí)施方式I的通信裝置I (發(fā)送側(cè))的動(dòng)作的流程圖。
[0083]首先,通信裝置I判定是否被重新啟動(dòng)(S501)。
[0084]在通信裝置I沒(méi)有重新啟動(dòng)的情況下(S501中否),如果通信裝置I從應(yīng)用等上級(jí)層接受數(shù)據(jù)的發(fā)送請(qǐng)求,則計(jì)數(shù)器計(jì)算部101從第I存儲(chǔ)器105讀出幀計(jì)數(shù)器值。并且,計(jì)數(shù)器計(jì)算部101計(jì)算將所讀出的幀計(jì)數(shù)器值增加后的值,作為新的幀計(jì)數(shù)器值(502)。
[0085]另外,關(guān)于通信裝置I重新啟動(dòng)了的情況下(S501中是)的重新啟動(dòng)時(shí)數(shù)據(jù)幀收發(fā)處理(S508),使用圖6進(jìn)行說(shuō)明。此外,在圖5中,在數(shù)據(jù)幀發(fā)送處理的最初判定通信裝置I是否被重新啟動(dòng),但并不限于該例。即,在S502以后通信裝置I被重新啟動(dòng)了的情況下,也可以將此前的處理初始化而進(jìn)行S508的處理。
[0086]幀制作部102進(jìn)行包括在S502中計(jì)算出的幀計(jì)數(shù)器值等的頭201、將通信數(shù)據(jù)加密后的加密有效載荷202及加密篡改檢測(cè)碼203的制作,制作要發(fā)送的數(shù)據(jù)幀(S503)。
[0087]通信部103將在S503中制作出的數(shù)據(jù)幀向通信裝置2發(fā)送(S504)。
[0088]存儲(chǔ)指示部104使保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值向第I存儲(chǔ)器105存儲(chǔ)(S505)。
[0089]然后,存儲(chǔ)指示部104判定保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值是否從存儲(chǔ)在第2存儲(chǔ)器106中的值增加了 α以上(S506)。
[0090]在保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值從保存在第2存儲(chǔ)器106中的值增加了 α的情況下(S506中是),存儲(chǔ)指示部104使保存在發(fā)送的數(shù)據(jù)幀中的幀計(jì)數(shù)器值存儲(chǔ)到第2存儲(chǔ)器 106(S507)。
[0091]接著,使用圖6說(shuō)明通信裝置I (發(fā)送側(cè))重新啟動(dòng)后的數(shù)據(jù)幀發(fā)送處理。
[0092]另外,關(guān)于與通信裝置I沒(méi)有重新啟動(dòng)的情況(S501中是)相同的處理賦予相同的標(biāo)號(hào)而省略其說(shuō)明。
[0093]如果通信裝置I從應(yīng)用等上級(jí)層接受到數(shù)據(jù)的發(fā)送請(qǐng)求,則計(jì)數(shù)器計(jì)算部101從第2存儲(chǔ)器106讀出幀計(jì)數(shù)器值。并且,計(jì)數(shù)器計(jì)算部101計(jì)算對(duì)所讀出的幀計(jì)數(shù)器值加上β后的值,作為新的幀計(jì)數(shù)器值(S601)。接著,通信裝置I進(jìn)行S503及S504的處理。
[0094]然后,通信裝置I在數(shù)據(jù)幀的發(fā)送成功的情況下,根據(jù)從通信裝置2送來(lái)的ACK,判定數(shù)據(jù)幀的發(fā)送是否成功(S605)。在發(fā)送不成功的情況下(S605中否),向S601返回,再次計(jì)算幀計(jì)數(shù)器值。另一方面,在發(fā)送成功的情況下(S605中是),進(jìn)行S505的處理。
[0095]圖7表示表示有關(guān)實(shí)施方式I的通信裝置2 (接收側(cè))的動(dòng)作的流程圖。
[0096]首先,通信部111接收從通信裝置I發(fā)送的數(shù)據(jù)幀。并且,計(jì)數(shù)器判定部113取得在通信部111新接收到的數(shù)據(jù)幀的頭201中保存的幀計(jì)數(shù)器值和通信裝置I的地址信息(S701)。
[0097]接著,計(jì)數(shù)器判定部113從第3存儲(chǔ)器112讀出過(guò)去從相同的通信裝置I接收到的數(shù)據(jù)幀中保存的幀計(jì)數(shù)器值(S702)。
[0098]計(jì)數(shù)器判定部113進(jìn)行保存在新接收到的數(shù)據(jù)幀中的幀計(jì)數(shù)器值與存儲(chǔ)的過(guò)去的幀計(jì)數(shù)器值的比較(S703)。
[0099]在保存在新接收到的數(shù)據(jù)幀中的幀計(jì)數(shù)器值比所存儲(chǔ)的過(guò)去的幀計(jì)數(shù)器值大的情況下(S703中是),通信部111在將加密有效載荷202解碼后,如果基于包括幀計(jì)數(shù)器值的頭的一部分和解碼后的有效載荷計(jì)算出的值與接收到的加密篡改檢測(cè)碼203 —致,則認(rèn)證為新接收到的數(shù)據(jù)幀是從正確的通信裝置I發(fā)送的數(shù)據(jù)幀。并且,通信部111向通信裝置 I 發(fā)送 ACK(S704)。
[0100]然后,通信部111使保存在新接收到的數(shù)據(jù)幀中的幀計(jì)數(shù)器值向第3存儲(chǔ)器112存儲(chǔ)(S705)。
[0101]另一方面,在保存在新接收到的數(shù)據(jù)幀中的幀計(jì)數(shù)器值是所存儲(chǔ)的過(guò)去的幀計(jì)數(shù)器值以下的情況下(S703中否),通信部111將新接收到的數(shù)據(jù)幀丟棄(S706)。
[0102]根據(jù)有關(guān)實(shí)施方式I的通信裝置1,將向第2存儲(chǔ)器106的幀計(jì)數(shù)器值的存儲(chǔ)不是每當(dāng)發(fā)送數(shù)據(jù)幀時(shí)進(jìn)行,而是幀計(jì)數(shù)器值計(jì)數(shù)每增加一定值α?xí)r進(jìn)行。由此,能夠抑制向第2存儲(chǔ)器106的訪問(wèn)次數(shù)。結(jié)果,不縮短非易失存儲(chǔ)器的壽命而能夠防止通過(guò)偽造的重放攻擊。此外,由于不需要在重新啟動(dòng)后再次進(jìn)行與對(duì)方通信裝置之間的密鑰共享的協(xié)議,所以即使重新啟動(dòng)也能夠立即重新開(kāi)始通信。
[0103]此外,在通信裝置I的重新啟動(dòng)時(shí),計(jì)數(shù)器計(jì)算部101對(duì)第2存儲(chǔ)器106所存儲(chǔ)的幀計(jì)數(shù)器值加上的值(β)也可以是在規(guī)定的時(shí)間中通信裝置I發(fā)送的最大數(shù)據(jù)幀數(shù)的推測(cè)值。即,也可以是將通信部103發(fā)送數(shù)據(jù)幀的發(fā)送頻度與存儲(chǔ)指示部104使幀計(jì)數(shù)器值存儲(chǔ)到第2存儲(chǔ)器106的規(guī)定的間隔相乘而得到的值。
[0104]另外,該推測(cè)值既可以在系統(tǒng)設(shè)計(jì)的時(shí)間點(diǎn)設(shè)定為固定值,也可以根據(jù)通信裝置I實(shí)際通信的統(tǒng)計(jì)信息而適應(yīng)性地設(shè)定。
[0105]此外,在通信裝置I的重新啟動(dòng)時(shí),計(jì)數(shù)器計(jì)算部101對(duì)第2存儲(chǔ)器106所存儲(chǔ)的幀計(jì)數(shù)器值加上的值(β)也可以為比α小的數(shù)。在此情況下,計(jì)數(shù)器計(jì)算部101從第2存儲(chǔ)器106讀出幀計(jì)數(shù)器值。并且,計(jì)數(shù)器計(jì)算部101計(jì)算對(duì)所讀出的幀計(jì)數(shù)器值加上比α小的值(例如α/8)后的值作為新的幀計(jì)數(shù)器值。這里,在發(fā)送不成功的情況下,再次計(jì)算幀計(jì)數(shù)器值。此時(shí),計(jì)數(shù)器計(jì)算部101對(duì)所讀出的幀計(jì)數(shù)器值加上α以下且比前次加上的值大的值(例如α/4)等,作為新的幀計(jì)數(shù)器值來(lái)計(jì)算。通信裝置I重復(fù)以上的處理直到數(shù)據(jù)幀的發(fā)送成功。
[0106]由此,在幀計(jì)數(shù)器值的值域有限的情況下,即使在通信裝置I被多次重新啟動(dòng)而每次幀計(jì)數(shù)器值增加的情況下,也能夠降低幀計(jì)數(shù)器值溢出的可能性。
[0107]此外,在通信裝置2中,計(jì)數(shù)器判定部113在進(jìn)行第3存儲(chǔ)器112所存儲(chǔ)的過(guò)去從相同的通信裝置I接收到的數(shù)據(jù)幀的幀計(jì)數(shù)器值、與在通信部111新接收到的數(shù)據(jù)幀的頭201中保存的幀計(jì)數(shù)器值的比較時(shí),在判定為新接收到的幀計(jì)數(shù)器值比第3存儲(chǔ)器112所存儲(chǔ)的幀計(jì)數(shù)器值大β+l以上的情況下,通信部111也可以將新接收到的數(shù)據(jù)幀丟棄。
[0108]由此,能夠限制接收的數(shù)據(jù)幀的幀計(jì)數(shù)器值的范圍。結(jié)果,能夠提高對(duì)于通過(guò)偽造的重放攻擊的安全性。
[0109]此外,在數(shù)據(jù)幀的發(fā)送失敗的情況下(不能取得通信裝置2的生存確認(rèn)的情況下),也可以等待數(shù)據(jù)幀的發(fā)送直到取得通信裝置2的生存確認(rèn)。這里,在通信裝置2的生存確認(rèn)中,也可以利用通信裝置2定期地向通信裝置I發(fā)送的控制幀等??刂茙缡切艠?biāo)幀或Link Status幀,并不限于這些例子。
[0110]此外,存儲(chǔ)指示部104也可以使最近正常發(fā)送的數(shù)據(jù)幀的幀計(jì)數(shù)器值和時(shí)間戳一起存儲(chǔ)到第2存儲(chǔ)器106。此時(shí),在重新啟動(dòng)時(shí),計(jì)數(shù)器計(jì)算部101可以考慮每單位時(shí)間的設(shè)想幀計(jì)數(shù)器值更新數(shù)來(lái)推測(cè)。
[0111]以上,使用圖1?圖7對(duì)實(shí)施方式I的通信裝置進(jìn)行了說(shuō)明。
[0112]由此,即使在發(fā)送側(cè)的通信裝置被重新啟動(dòng)等情況下,也不用再次進(jìn)行通信裝置之間的密鑰共享而能夠在短時(shí)間內(nèi)重新開(kāi)始通信裝置之間的數(shù)據(jù)收發(fā)。此外,能夠使向非易失存儲(chǔ)器的寫(xiě)入頻度減少。結(jié)果,能夠抑制通信裝置的非易失存儲(chǔ)器的劣化,降低發(fā)送側(cè)的通信裝置故障的可能性。
[0113]〈實(shí)施方式2>
[0114]有關(guān)實(shí)施方式I的通信裝置I是存儲(chǔ)指示部104判定規(guī)定的間隔、使幀計(jì)數(shù)器值存儲(chǔ)到第2存儲(chǔ)器106的結(jié)構(gòu)。另一方面,有關(guān)實(shí)施方式2的通信裝置I從接收側(cè)的通信裝置12接受使幀計(jì)數(shù)器