(57)【要約】【課題】通信ノードが通信を行う際に、自ノードと通信相手となる他の通信ノードとが、お互いに正しい通信ノードであることをより確実に確認することができる。【解決手段】第１の通信ノードから第２の通信ノードへの送信する接続要求メッセージに応えて、第２の通信ノードが生成し、第１の通信ノードへ返送する第１認証メッセージに含まれる第１の通信識別子と、第１の通信ノードが保持する認証子データと、第１の通信ノードで生成する第２の通信識別子とをもとに演算を実施し、生成の度にメッセージが異なり、かつ、認証子データから容易に生成できるメッセージで、かつ、前記第１認証メッセージに対応して生成されたことが識別でき、かつ、該メッセージから認証子データを導出、類推することが容易でないようなメッセージを生成する。前記第２認証メッセージを検証する。【選択図】      図１
2007138876.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムであって、
前記着信側通信ノードは、
前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する第１認証メッセージ生成手段と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含み、
前記発信側通信ノードは、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う第１認証メッセージ検証手段と、
前記第１認証メッセージ検証手段による検証結果に基づいて前記第２認証メッセージを生成する第２認証メッセージ生成手段とを含むことを特徴とする通信ノード認証システム。
【請求項２】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証するものである、請求項１に記載の通信ノード認証システム。
【請求項３】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１に記載の通信ノード認証システム。
【請求項４】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものである、請求項１に記載の通信ノード認証システム。
【請求項５】
さらに、接続手続手段を有し、
前記接続手続手段は、
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始するものである、請求項１に記載の通信ノード認証システム。
【請求項６】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する手段とを含む、請求項２又は３に記載の通信ノード認証システム。
【請求項７】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含む、請求項４に記載の通信ノード認証システム。
【請求項８】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する手段とを含む、請求項２又は３に記載の通信ノード認証システム。
【請求項９】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含む、請求項４に記載の通信ノード認証システム。
【請求項１０】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証するものである、請求項１に記載の通信ノード認証システム。
【請求項１１】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１０に記載の通信ノード認証システム。
【請求項１２】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものであり、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する接続手続手段を有する、請求項１０又は１１に記載の通信ノード認証システム。
【請求項１３】
前記発信側通信ノードの第２認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する手段とを含む、請求項１０、１１又は１２のいずれか一項に記載の通信ノード認証システム。
【請求項１４】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する手段とを含む、請求項１０、１１又は１２のいずれか一項に記載の通信ノード認証システム。
【請求項１５】
前記第２認証メッセージ生成手段、前記第２認証メッセージ検証手段、前記第１認証メッセージ生成手段及び前記第１認証メッセージ検証手段における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結後のビット長が、請求項１〜９のいずれかに記載の第１通信識別子と第２通信識別子のビット長以上になる条件の下で、第１通信識別子と第２通信識別子のビット長を削減する、請求項１０、１１、１２、１３又は１４のいずれか一項に記載の通信ノード認証システム。
【請求項１６】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶する手段と、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する手段とを含む、請求項１〜７、請求項１０〜１５のいずれか一項に記載の通信ノード認証システム。
【請求項１７】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置であって、
発信側となる通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する第１認証メッセージ生成手段と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含むことを特徴とする通信ノード認証装置。
【請求項１８】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置であって、
着信側となる通信ノードから送信される前記第１認証メッセージの検証を行う第１認証メッセージ検証手段と、
前記第１認証メッセージ検証手段による検証結果に基づいて、発信側通信ノードを認証するための第２認証メッセージを生成する第２認証メッセージ生成手段とを含むことを特徴とする通信ノード認証装置。
【請求項１９】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証方法であって、
前記着信側通信ノードにおいて、前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する処理を実行し、
前記発信側通信ノードにおいて、前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う処理と、前記第１認証メッセージの検証結果に基づいて第２認証メッセージを生成する処理とを実行し、
前記着信側通信ノードにおいて、前記発信側通信ノードから送信される第２認証メッセージの検証を行う処理を実行することを特徴とする通信認証方法。
【請求項２０】
前記発信側通信ノードにおいて、前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証する、請求項１９に記載の通信ノード認証方法。
【請求項２１】
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１９に記載の通信ノード認証方法。
【請求項２２】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する、請求項１９に記載の通信ノード認証方法。
【請求項２３】
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始する、請求項１９に記載の通信ノード認証方法。
【請求項２４】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する、請求項２０又は２１に記載の通信ノード認証方法。
【請求項２５】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する、請求項２２に記載の通信ノード認証方法。
【請求項２６】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する、請求項２０又は２１記載の通信ノード認証方法。
【請求項２７】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する、請求項２２に記載の通信ノード認証方法。
【請求項２８】
前記発信側通信ノードにおいて、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証する、請求項１９に記載の通信ノード認証方法。
【請求項２９】
前記発信側通信ノードにおいて、前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する、請求項２８に記載の通信ノード認証方法。
【請求項３０】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証し、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する、請求項２８又は２９に記載の通信ノード認証方法。
【請求項３１】
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する、請求項２８、２９又は３０のいずれか一項に記載の通信ノード認証方法。
【請求項３２】
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する、請求項２８、２９又は３０のいずれか一項に記載の通信ノード認証方法。
【請求項３３】
前記第２認証メッセージの生成処理、前記第２認証メッセージの検証処理、前記第１認証メッセージの生成処理及び前記第１認証メッセージの検証処理における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減する、請求項２８、２９、３０、３１又は３２のいずれか一項に記載の通信ノード認証方法。
【請求項３４】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する、請求項１９〜２５、請求項２８〜３３のいずれか一項に記載の通信ノード認証方法。
【請求項３５】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証プログラムであって、
前記着信側通信ノードを構成するコンピュータに、
前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する機能と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う機能と、
前記第１認証メッセージの検証結果に基づいて前記第２認証メッセージを生成する機能とを実行させることを特徴とする通信ノード認証プログラム。
【請求項３６】
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３７】
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３８】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３９】
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項４０】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する機能とを実行させる、請求項３８又は３９に記載の通信ノード認証プログラム。
【請求項４１】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させる、請求項４０に記載の通信ノード認証プログラム。
【請求項４２】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する機能とを実行させる、請求項３８又は３９に記載の通信ノード認証プログラム。
【請求項４３】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させる、請求項４０に記載の通信ノード認証プログラム。
【請求項４４】
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証する機能を実行させる、請求項３７に記載の通信ノード認証プログラム。
【請求項４５】
前記発信側通信ノードを構成するコンピュータに、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させる、請求項４４に記載の通信ノード認証プログラム。
【請求項４６】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させ、
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
正規の第１認証メッセージであることが検証され、かつ、正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させる、請求項４４又は４５に記載の通信ノード認証プログラム。
【請求項４７】
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する機能とを実行させる、請求項４６、４７又は４８のいずれか一項に記載の通信ノード認証プログラム。
【請求項４８】
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する機能とを実行させる、請求項４６、４７又は４８のいずれか一項に記載の通信ノード認証プログラム。
【請求項４９】
前記第２認証メッセージの生成、前記第２認証メッセージの検証、前記第１認証メッセージの生成及び前記第１認証メッセージの検証における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減する、請求項４６、４７、４８、４９又は５０のいずれか一項に記載の通信ノード認証プログラム。
【請求項５０】
前記コンピュータに、
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する機能を実行させる、請求項３７〜４３、請求項４６〜５１のいずれか一項に記載の通信ノード認証プログラム。
【請求項５１】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置を構成するコンピュータに、
発信側となる通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する機能と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させることを特徴とする通信ノード認証プログラム。
【請求項５２】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置を構成するコンピュータに、
着信側となる通信ノードから送信される前記第１認証メッセージの検証を行う機能と、
前記第１認証メッセージ検証手段による検証結果に基づいて、発信側通信ノードを認証するための第２認証メッセージを生成する機能とを実行させることを特徴とする通信ノード認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ノード間の接続可否を認証する通信ノード認証装置及び方法、通信ノード認証プログラムに関し、特に、電池など有限の電源リソースで長時間稼働される無線通信ノードにおける通信ノード認証システム及び方法、通信ノード認証プログラムに関する。
【背景技術】
【０００２】
関連する通信ノード認証方法の一例が、特許文献１に記載されている。特許文献１に記載されている通信ノード認証方法は、通信が可能な少なくとも１つの機器と、前記機器を制御するホームサーバとから構成されたホームネットワークにおいて、ホームサーバが管理している機器の固有情報と、前記固有情報を利用して生成した認証値とから認証キーを前記ホームサーバで生成し、前記生成された認証キーを機器の固有情報と共に前記機器に伝送するステップと、前記機器から伝送された値を認証値と比較するステップと、前記機器から伝送された値が認証値と一致する場合に、伝送元の機器をホームサーバで認証するステップとからなる。【０００３】
また、特許文献１には、ホームネットワークを構成している機器が、ホームサーバに要請して認証を受ける認証方法として、ホームサーバから伝送された情報から抽出した認証キーと、前記機器が管理している固有情報とに基づいて認証値を生成するステップと、前記生成した認証値をホームサーバに伝送し、前記ホームサーバから認証結果に対する情報を受信するステップとからなる認証方法も開示されている。【０００４】
このような通信ノード認証方法が適用された通信ノードは、次のように動作する。図２０に示すように、ステップＳ５００において、ホームサーバは、ホームネットワークを構成している機器に対する情報として、各機器に対するグループ識別子，機器識別子，アドレス情報及び機器秘密キーなどの情報を、各機器と共有する。ホームサーバは、共有した情報を利用して、該当する機器に対する機器秘密キーとアドレス情報とを認知する。なお、グループ識別子は、機器の環境，位置，機能などを考慮して設定される。【０００５】
ステップＳ５０２において、ホームサーバは、認知した機器秘密キー及びアドレス情報と機器の認証値とを利用して、該当する機器に対する認証キーを生成する。ここに、前記機器の認証値は、ホームネットワークを構成している機器をグループ別に管理するため、１つのグループに対して１つ生成される値、または、各機器に対して固有に生成される値を意味する。また、前記認証キーは、例えば、機器秘密キー，機器認証値，アドレス情報を利用して、排他的論理和演算を行うことによって生成される。【０００６】
ステップＳ５０４において、ホームサーバは、認証キーメッセージを生成する。認証キーメッセージは、グループ識別子，機器識別子，機器認証キー（認証キー），ランダム情報などから構成される。ステップＳ５０６において、ホームサーバは、生成した認証キーメッセージを該当する機器に伝送する。なお、認証キーメッセージは、機器に対して認証を要求するメッセージの役割も行うため、認証要請メッセージ（Authentication  Request  Message）と称することもある。【０００７】
ステップＳ５０８において、前記機器は、受信した認証要請メッセージと、機器内部または外部に備える所定の記憶装置に格納して自ら管理している機器秘密キーとアドレス情報とを利用して、自分に割り当てられた機器認証キーを生成する。【０００８】
ステップＳ５１０において、前記機器は、生成した機器認証キーと、認証に関連した情報とを利用して、ハッシュ演算を行うことにより、認証値を生成する。ここに、認証に関連した情報とは、ホームサーバと機器とが相互に共有する情報、例えば、アドレス情報，機器秘密キー，ランダム情報を意味する。ステップＳ５１２において、前記機器は、生成した認証値を認証メッセージ（Authentication  Message）に含めて前記ホームサーバに伝送する。【０００９】
ステップＳ５１４において、ホームサーバは、伝送された認証値と、ホームサーバ内部または外部に備える記憶装置内に格納し自ら管理している該当の機器に対する情報とを利用して、生成した該当の機器に対する認証値とを比較する。比較の結果、双方の値が一致すると、認証が成功したことを意味し、双方の値が一致しないと、認証が失敗したことを意味する。ステップＳ５１６において、ホームサーバは、認証結果に対する情報を認証結果メッセージ（Authentication  Result  Message）に含めて該当の機器に伝送する。【００１０】
【特許文献１】特開２００５−１９６７９０号公報（段落００４０−００４３、図５）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に記載されている通信ノード認証方法のように、ある通信ノードＢ（前記機器に相当する）が、他の通信ノードＡ（前記ホームサーバに相当する）からの認証要請メッセージに応答して、被認証処理を行うことによって、接続が許可されるような片方向の認証方法では、認証要請メッセージを発した通信ノードＡが正しい通信ノードか否かを確認できない。したがって、通信ノードＢが、不正な通信ノードＡからの認証要請メッセージに応答して、不正な通信ノードＡとの接続が許可されることにより、通信ノードＢから不正な通信ノードＡに情報が流出してしまうという可能性がある。【００１２】
仮に、通信ノードＢも、認証要請元である通信ノードＡに対して同様の認証シーケンスを行ったとしても、双方向に行われる２つの認証シーケンスの間に連続性を保証できなければ、なりすまし等による攻撃に対抗できない。【００１３】
本発明の目的は、通信ノードが通信を行う際に、自ノードと通信相手となる他の通信ノードとが、お互いに正しい通信ノードであることをより確実に確認することができる通信ノード認証装置及び方法、通信ノード認証プログラムを提供することにある。【００１４】
また、本発明は、電池などの有限の電源リソースで長時間稼働されるような無線通信ノードにも適用可能なように、電源リソースの消費を押さえた相互認証を実現することを目的とする。
【課題を解決するための手段】
【００１５】
前記目的を達成するため、本発明に係る通信ノード認証システムは、相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムであって、
前記着信側通信ノードは、
前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する第１認証メッセージ生成手段と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含み、
前記発信側通信ノードは、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う第１認証メッセージ検証手段と、
前記第１認証メッセージ検証手段による検証結果に基づいて前記第２認証メッセージを生成する第２認証メッセージ生成手段とを含むことを特徴とするものである。【００１６】
以上の説明では、本発明を通信ノードシステムとして構築したが、これに限られるものではない。本発明は、通信ノードシステムに用いる通信ノード認証装置、通信ノード認証方法、通信ノード認証プログラムとして構築してもよいものである。【００１７】
本発明に係る通信ノード認証装置は、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置であって、
発信側となる通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する第１認証メッセージ生成手段と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含むことを特徴とするものである。【００１８】
本発明に係る通信ノード認証装置は、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置であって、
着信側となる通信ノードから送信される前記第１認証メッセージの検証を行う第１認証メッセージ検証手段と、
前記第１認証メッセージ検証手段による検証結果に基づいて、発信側通信ノードを認証するための第２認証メッセージを生成する第２認証メッセージ生成手段とを含むことを特徴とするものである。【００１９】
本発明に係る通信ノード認証方法は、相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証方法であって、
前記着信側通信ノードにおいて、前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する処理を実行し、
前記発信側通信ノードにおいて、前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う処理と、前記第１認証メッセージの検証結果に基づいて第２認証メッセージを生成する処理とを実行し、
前記着信側通信ノードにおいて、前記発信側通信ノードから送信される第２認証メッセージの検証を行う処理を実行することを特徴とするものである。【００２０】
本発明に係る通信ノード認証プログラムは、相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証プログラムであって、
前記着信側通信ノードを構成するコンピュータに、
前記発信側通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する機能と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う機能と、
前記第１認証メッセージの検証結果に基づいて前記第２認証メッセージを生成する機能とを実行させることを特徴とするものである。
【発明の効果】
【００２１】
本発明によれば、接続を要求される第２の通信ノードによって生成される第１認証メッセージに含ませる第１の通信識別子を利用して、第２認証メッセージ生成手段が第２認証メッセージを生成し、第２認証メッセージ検証手段が受信した第２認証メッセージが第１認証メッセージに対応するメッセージであるかを検証しつつ、第１の通信ノードを認証するので、例えば、不正な通信ノードからの接続要求に応答して、不正な通信ノードに接続してしまうことを防ぐことができ、不正な通信ノードに情報が流出してしまう危険性をなくすことができる。【００２２】
特に、電池などの有限の電源リソースで長時間稼働されるような無線通信ノードにおいては、電池寿命を延長できる効果がある。その理由は、認証のために通信ノード間で通信するデータ量の削減と、データ演算量の削減とにより、認証処理に必要な電力量を減らすことができるからである。【００２３】
特に多数のセンサを配置し、センシング情報を収集するような無線センサネットワークを構成する無線通信ノードにも適用可能なように、認証のために各無線通信ノードに恒常的に保持しておく情報量を削減することができる。その理由は、認証相手の通信ノード毎に別の情報を保持する必要がなく、多数の通信ノードと認証する場合であっても、恒常的に保持しておく情報が増大しないからである。
【発明を実施するための最良の形態】
【００２４】
（実施形態１）
以下、本発明の実施の形態を図面を参照して説明する。【００２５】
本発明の実施形態１は、相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信を開始する通信ノード認証システムである。本発明の実施形態１に係る通信ノード認証システムに用いられる通信ノードは図１に示すように、それぞれ通信ノード認証装置１０及びメッセージ通信装置２０を有している。【００２６】
メッセージ通信装置２０は図１に示すように、通信ノード認証装置１０とのインタフェースを持ち、他の通信ノードとの間に通信を行い、様々なメッセージを送受信する。図１では、通信ノード認証装置１０の左右にメッセージ通信装置２０をそれぞれ分離して図示してあるが、これらのメッセージ通信装置２０は、１台のメッセージ通信装置であって、右側のメッセージ通信装置２０は、接続要求を含む情報を他の通信ノードに向けて送信する機能を担当するものとして図示しており、左側のメッセージ通信装置２０は、他の通信ノードから送信された接続要求を含む情報を受信する機能を担当するものとして図示している。【００２７】
前記通信ノード認証装置１０は、本発明の実施形態１における特徴である装置であって、図１に示す本発明の実施形態１に係る通信ノード認証装置１０は、接続要求メッセージ生成部１０１と、第１認証メッセージ生成部１０２と、第１認証メッセージ検証部１０３と、第２認証メッセージ生成部１０４と、第２認証メッセージ検証部１０５と、接続許可メッセージ生成部１０６と、接続手続部１０７と、認証子データ記憶部１０８と、演算器１０９と、通信識別子記憶部１１０とを含んでいる。なお、図１に示す通信ノード認証装置１０は、発信側通信ノードの機能と、着信側通信ノードの機能とを兼ね備えている構成である。【００２８】
通信ノード認証装置１０は、相互に通信を行うそれぞれの通信ノードに組み込まれるものであって、図１では、通信ノード認証装置１０が組み込まれる１台の通信ノードを図示しているが、図１に示す通信ノードと相互に通信を行う他の通信ノードにも同様に図１に示す通信ノード認証装置１０が組み込まれる。図２は、図１に示す通信ノード認証装置１０を発信側通信ノード認証装置（発信側通信ノード）と着信側通信ノード（着信側通信ノード）とに機能分けして図示している。【００２９】
接続要求メッセージ生成部１０１は図２に示すように、図１に示す通信ノードが発信側通信ノードとして機能する際に起動するものであって、他の通信ノードに対して接続を要求するための接続要求メッセージを生成し、その生成した接続要求メッセージをメッセージ通信装置２０に送信する。【００３０】
第１認証メッセージ生成部１０２は図２に示すように、図１に示す通信ノードが着信側通信ノードとして機能する際に起動するものであって、図示しない他の通信ノード（発信側通信ノード）が送信してメッセージ通信装置２０が受信した前記発信側通信ノードからの接続要求メッセージを受けて、第１認証メッセージを生成する。ここで、第１認証メッセージとは、発信側通信ノードからの接続要求を受信した着信側通信ノードが発信側通信ノードに対する正規の接続相手であるか否かを、前記発信側通信ノードに確認させるために、着信側通信ノードの前記第１認証メッセージ生成部１０２が生成する情報を意味する。【００３１】
第１認証メッセージ検証部１０３は図２に示すように、図１に示す通信ノードが発信側通信ノードとして機能する際に起動するものであって、図示しない他の通信ノード（着信側通信ノード）が送信してメッセージ通信装置２０が受信した第１認証メッセージを受けて、その第１認証メッセージを検証する。ここで、第１認証メッセージ検証部１０３が受ける第１認証メッセージは、図示しない着信側通信ノードの第１認証メッセージ生成部１０２が生成する第１認証メッセージである。【００３２】
第２認証メッセージ生成部１０４は図２に示すように、図１に示す通信ノードが発信側通信ノードとして機能する際に起動するものであって、図示しない着信側通信ノードから送信されてメッセージ通信装置２０が受信した前記第１認証メッセージに対して発信側通信ノードの第１認証メッセージ検証部１０３が検証に成功した場合に、第２認証メッセージを生成する。前記第１認証メッセージ検証部１０３が検証に成功した場合とは、前記第１認証メッセージを送信した前記着信側通信ノードが正規の接続相手としての着信側通信ノードであることを検証した場合を意味する。第２認証メッセージ生成部１０４が生成する前記第２認証メッセージとは、前記着信側通信ノードに、前記第２認証メッセージを送信した前記発信側通信ノードが正規の接続相手であるか否かを確認させるための情報であるとともに、一連の認証シーケンスにおいて前記着信側通信ノードによって生成された第１認証メッセージの送信相手であるか否かを発信側通信モード自身に確認させるための情報である。【００３３】
第２認証メッセージ検証部１０５は図２に示すように、図１に示す通信ノードが着信側通信ノードとして機能する際に起動するものであって、図示しない発信側通信ノードが送信した前記第２認証メッセージを受けて、その第２認証メッセージを検証する。第２認証メッセージ検証部１０５は、前記第２認証メッセージを送信した前記発信側通信ノードが正規の接続相手としての発信側通信ノードであることを検証した場合、その旨を接続許可メッセージ生成部１０６及び接続手続部１０７にそれぞれ送信する。【００３４】
なお、第１認証メッセージ生成部１０２による第１認証メッセージの生成、第２認証メッセージ生成部１０４による第２認証メッセージの生成、第１認証メッセージ検証部１０３による第１認証メッセージの検証、及び第２認証メッセージ検証部１０５による第２認証メッセージの検証については、後述する。【００３５】
接続許可メッセージ生成部１０６は図２に示すように、図１に示す通信ノードが着信側通信ノードとして機能する際に起動するものであって、第２認証メッセージ検証部１０５が第２認証メッセージの検証に成功した旨の通知を受けると、前記発信側通信ノードに向けて接続を許可することを知らせるための接続許可メッセージを生成する。【００３６】
接続手続部１０７は図２に示すように、図１に示す通信ノードが発信側通信ノードとして機能する場合、図示しない着信側通信ノードの接続許可メッセージ生成部１０６から送信される接続許可メッセージを受け取ると、通信相手となる図示しない着信側通信ノードとの接続手続を開始する。また、接続手続部１０７は図２に示すように、図１に示す通信ノードが着信側通信ノードとして機能する場合、或いは第２認証メッセージ検証部１０５が第２認証メッセージの検証に成功した場合、図示しない発信側通信ノードとの接続手続を開始する。【００３７】
認証子データ記憶部１０８は、特定の通信ノードの正当性を認証（保証）するための情報である認証子データを記憶する。なお、発信側通信ノード及び着信側通信ノードの認証子データ記憶部１０８は、それぞれ同一の認証子データを記憶しているものとする。前記認証子データは、認証子データ記憶部１０８に通信システム管理者によって設定登録され、相互に通信を行うすべての通信ノードの認証子データ記憶部１０８に記憶されて共有される。なお、認証子データ記憶部１０８に記憶される認証子データは、着信側通信ノードにおいて、第１認証メッセージの生成および第２認証メッセージの検証に用いられ、発信側通信ノードにおいて、第１認証メッセージの検証および第２認証メッセージの生成に用いられる。【００３８】
演算器１０９は、第１認証メッセージの生成や検証、および第２認証メッセージの生成や検証を実施するために、データ演算、比較、および通信識別子の生成を行う。ここで、通信識別子とは、第１認証メッセージまたは第２認証メッセージと、他の第１認証メッセージまたは第２認証メッセージとを区別するための情報であって、第１認証メッセージまたは第２認証メッセージを生成する度に生成され、一連の認証シーケンス（具体的には、第１認証メッセージと第２認証メッセージ）に対応づけられる値である。従って、少なくとも通信システムが正当に動作することを期待する期間において再現性の無い値であることが望ましい。なお、「再現性の無い」という性質が、ビット数の制限等で実現不可能な場合には、繰り返し同じ値を用いざるを得ないが、通信に悪意で侵入する攻撃者に解読されないように工夫する必要がある。最も簡単には、十分大きなビット数を利用し、増算／減算カウンタを用いる方法がある。このような場合には、ある周期を経過すれば同じ値が利用されるが、利用状況によってその周期を大きな値（例えば、１ヶ月、１年）とすることで、なりすまし等による攻撃をしにくくする。また、十分大きなビット数が利用できなかったり、通信回数が多く、周期が短くなる場合には、攻撃できるタイミングをわかりにくくするため、乱数を用いてもよい。なお、着信側通信ノードでは、第１認証メッセージに紐付ける（対応づける）第１通信識別子を生成し、発信側通信ノードでは、第２認証メッセージに紐付ける（対応づける）第２通信識別子を生成する。【００３９】
演算器１０９は、連結演算器１０９１と、ハッシュ演算器１０９２と、比較器１０９３と、乱数生成器１０９４とを含んでいる。【００４０】
演算器１０９の連結演算器１０９１は、通信識別子と認証子データとの連結演算を行う。ハッシュ演算器１０９２は、前記連結演算器１０９１で連結演算された連結結果に対してハッシュ演算を行う。比較器１０９３は、受信した第１認証メッセージから切り出した第１検証値と、演算して得られた第１検証値とを比較する。着信側通信ノードの乱数生成器１０９４は第１通信識別子を生成する。発信側通信ノードの乱数生成器１０９４は第２通信識別子を生成する。【００４１】
通信識別子記憶部１１０は、演算器１０９の乱数生成器１０９４で生成した自ノードの通信識別子を記憶する。なお、本発明の実施形態では、通信識別子記憶部１１０は、少なくとも着信側通信ノードにおいて、自ノードで生成した第１通信識別子を記憶する。【００４２】
図１に示す構成では、第１認証メッセージ生成部１０１，第１認証メッセージ検証部１０２，第２認証メッセージ生成部１０３，第２認証メッセージ検証部１０４，接続要求メッセージ生成部１０５，接続許可メッセージ生成部１０６及び接続手続部１０７は、ハードウェアとしての構成として構築したが、これに限られるものではない。通信ノード認証装置１０に組み込まれた、第１認証メッセージ生成部１０１，第１認証メッセージ検証部１０２，第２認証メッセージ生成部１０３，第２認証メッセージ検証部１０４，接続要求メッセージ生成部１０５，接続許可メッセージ生成部１０６及び接続手続部１０７の機能をコンピュータ上で実行させるプログラムとして構成してもよいものである。【００４３】
また、認証子データ記憶部１０８，通信識別子記憶部１１０は、例えば、通信ノード認証装置１０が備える記憶装置によって実現してもよいものである。また、演算器１０９は、通信ノード認証装置１０が備える各種演算回路、およびプログラムに従って動作するマイクロプロセッサ等によって実現してもよいものである。【００４４】
また、通信ノード認証装置１０は、発信側通信ノードとして機能する際に、接続要求メッセージ生成部１０１と、第１認証メッセージ検証部１０３と、第２認証メッセージ生成部１０４及び接続手続部１０７とが必要となる。通信認証装置１０は、着信側通信ノードとして機能する際に、第１認証メッセージ生成部１０２と、第２認証メッセージ検証部１０５と、接続許可メッセージ生成部１０６及び接続手続部１０７とが必要となる。図１に示す通信ノード認証装置１０は、発信側通信ノードと着信側通信ノードとの両機能を実行する構成として構築したが、これに限られるものでなく、図３に示す構成として構築してもよいものである。【００４５】
すなわち、図３に示す発信側通信ノードに組み込む通信ノード認証装置１０Ａは、接続要求メッセージ生成部１０１と、第１認証メッセージ検証部１０３と、第２認証メッセージ生成部１０４と、接続手続部１０７とを含んでいる。図３に示す着信側通信ノードに組み込む通信ノード認証装置１０Ｂは、第１認証メッセージ生成部１０２と、第２認証メッセージ検証部１０５と、接続許可メッセージ生成部１０６と、接続手続部１０７とを含んでいる。【００４６】
図３では、発信側通信ノードの通信ノード認証装置１０Ａと着信側通信ノードの通信認証装置１０Ｂとを区別するため、各構成に付する符号を異ならせている。すなわち、発信側通信ノードに組み込む通信ノード認証装置１０は、接続要求メッセージ生成部１０１Ａと、第１認証メッセージ検証部１０３Ａと、第２認証メッセージ生成部１０４Ａと、接続手続部１０７Ａとを含んでいる。図３における、接続要求メッセージ生成部１０１Ａと、第１認証メッセージ検証部１０３Ａと、第２認証メッセージ生成部１０４Ａと、接続手続部１０７Ａとは、図１における、接続要求メッセージ生成部１０１と、第１認証メッセージ検証部１０３と、第２認証メッセージ生成部１０４と、接続手続部１０７とにそれぞれ相当する。【００４７】
図３に示す着信側通信ノードに組み込む通信ノード認証装置１０Ｂは、第１認証メッセージ生成部１０２Ｂと、第２認証メッセージ検証部１０５Ｂと、接続許可メッセージ生成部１０６Ｂと、接続手続部１０７Ｂとを含んでいる。図３における、第１認証メッセージ生成部１０２Ｂと、第２認証メッセージ検証部１０５Ｂと、接続許可メッセージ生成部１０６Ｂと、接続手続部１０７Ｂとは、図１における、第１認証メッセージ生成部１０２と、第２認証メッセージ検証部１０５と、接続許可メッセージ生成部１０６と、接続手続部１０７とにそれぞれ相当する。【００４８】
さらに、図３に示す発信側通信ノードに組み込まれる通信ノード認証装置１０Ａは、演算器１０９Ａと、認証子記憶部１０８Ａとを含んでいる。図３の演算器１０９Ａと認証子記憶部１０８Ａとは、図１における演算器１０９と認証子記憶部１０８とにそれぞれ相当する。図３に示す着信側通信ノードに組み込まれる通信ノード認証装置１０Ｂは、認証子記憶部１０８Ｂと通信識別子記憶部１１０Ｂとを含んでいる。図３の認証子記憶部１０８Ｂと通信識別子記憶部１１０Ｂとは、図１の認証子記憶部１０８と通信識別子記憶部１１０とにそれぞれ相当する。【００４９】
次に、本発明の実施形態１に係る通信ノード認証システムを用いて通信認証方法を実行する場合の動作を図４に基づいて説明する。以下の説明では、図３に示す構成の発信側通信ノードと着信側通信ノードとを組み合わせた通信ノード認証システムを用いて通信ノード認証方法を実行する場合の動作について説明するが、図１及び図２に示す構成の発信側通信ノードと着信側通信ノードとを組み合わせた通信ノード認証システムを用いて通信認証方法を実行する場合の動作も同様に動作する。【００５０】
発信側通信ノードの通信ノード認証装置１０Ａに外部から接続指示の指令が入力する。接続要求メッセージ生成部１０１Ａは、前記外部指令を受け取ると、接続要求メッセージを生成する（図４のステップＳ５１０）。接続要求メッセージを生成する際、接続要求メッセージ生成部１０１Ａは、少なくとも、発信側通信ノード（Ａ）から着信側通信ノード（Ｂ）へ向けた接続要求であることがわかる情報を含む接続要求メッセージを生成する。【００５１】
発信側通信ノードのメッセージ通信装置２０は、前記接続要求メッセージ生成部１０１Ａから送信される接続要求を着信側通信ノードに向けて送信する（図４のステップＳ５１１）。【００５２】
着信側通信ノードは、発信側通信ノードからの接続要求メッセージを受信するために待機している（図４のステップＳ５２０）。【００５３】
着信側通信ノードは、発信側通信ノードから接続要求メッセージが送信されると、その送信された接続要求メッセージをメッセージ通信装置２０で受信し、その受信した接続要求メッセージを通信ノード認証装置１０Ｂに受け渡す（図４のステップＳ５２１）。【００５４】
通信ノード認証装置１０Ｂの第１認証メッセージ生成部１０２Ｂは、前記受信した接続要求メッセージを受け取ると、第１認証メッセージを生成し（図４のステップＳ５２２）、その第１認証メッセージをメッセージ通信装置２０に送信する。前記メッセージ通信装置２０は、第１認証メッセージ生成部１０２Ｂから受け取った第１認証メッセージを発信側通信ノードに向けて送信する（図４のステップＳ５２３）。【００５５】
前記第１認証メッセージ生成部１０２Ｂが生成する第１認証メッセージは、少なくとも、発信側通信ノードからの接続要求を受信した着信側通信ノードが正規の接続相手であるか否かを確認するに必要な情報と、第１通信識別子と、第１認証メッセージを検証するための第１検証値とを含むメッセージである。なお、第１通信識別子は、例えば、第認証メッセージ生成部１０２Ｂが第１認証メッセージを生成する度に変化する値であって、乱数生成器、疑似乱数生成器、増算カウンタ、減算カウンタなどで生成される値である。また、第１検証値は、認証子データと第１通信識別子とに基づいて、第１演算を実施して得られる値である。ここで、第１演算は、認証子データと第１通信識別子とから第１検証値が容易に生成でき、かつ、生成した第１検証値と認証子データを除く演算に用いた情報（第１通信識別子）とから、認証子データを導出、推測することが容易でない性質を持つ演算（例えば、一方向性関数を用いた演算）であることを要する。なお、第１認証メッセージの生成、検証動作について、具体的な動作例は後述する。【００５６】
発信側通信ノードは、接続要求を送信した後、着信側通信ノードから送信される第１認証メッセージを受信する状態で待機する（図４のステップＳ５１２）。【００５７】
発信側通信ノードは、着信側通信ノードからの第１認証メッセージをメッセージ通信装置１０で受信すると、その受信した第１認証メッセージを通信ノード認識装置１０Ａに受け渡す（図４のステップＳ５１３）。【００５８】
メッセージ通信装置１０から第１認証メッセージを受け取ると、通信ノード認識装置１０Ａの第１認証メッセージ検証部１０３Ａは、受信した第１認証メッセージに含まれる値（第１通信識別子）と、認証子データ記憶部１０８Ａに記憶されている認証子データとから、予め定められた第１演算を実施し、その結果で得られた値と、受信した第１認証メッセージに含まれる値（第１検証値）とを比較することによって、第１認証メッセージの検証を行う（図４のステップＳ５１４）。ここで、第１認証メッセージ検証部１０２Ａが行った第１演算の結果と、受信した第１認証メッセージに含まれる第１検証値とが一致した場合には、第１認証メッセージ検証部１０３Ａは検証成功として判定し、一致しなかった場合には、第１認証メッセージ検証部１０３Ａは検証失敗と判定する。なお、第１演算は、通信システム管理者によって設定登録される等によって、本発明の実施形態を適用する全通信ノードに共有されているものとする。【００５９】
上述したように、着信側通信ノードＢから第１認証メッセージを受信した場合（図４のステップＳ５１３）、通信ノード認証装置１０Ａの第１認証メッセージ検証部１０３Ａは、第１認証メッセージを検証する（ステップＳ５１４）。しかし、発信側通信ノードＡが、例えば所定の時間以内に着信側通信ノードＢから第１認証メッセージを受信しない場合には、発信側通信ノードＡの接続要求メッセージ生成部１０１Ａは、新たに接続要求メッセージを送信してもよいし、発信側通信ノードＡの第１認証メッセージ検証部１０３Ａは、接続失敗として接続処理を終了してもよい。【００６０】
発信側通信ノードの第１認証メッセージ検証部１０３Ａが着信側通信ノードから送信される第１認証メッセージの検証に成功した場合、第２認証メッセージ生成部１０４Ａは、第１認証メッセージ検証部１０３Ａから送信される検証成功の通知に基づいて、第２認証メッセージを生成する（図４のステップＳ５１５）。第２認証メッセージ生成部１０４Ａは、生成した第２認証メッセージをメッセージ通信装置１０に送信する。【００６１】
前記第２認証メッセージは、少なくとも、第２認証メッセージを送信した発信側通信ノードが最初に接続要求を送信した通信ノードであることがわかる情報と、第２通信識別子と、第２認証メッセージを検証するための第２検証値とを含むメッセージである。なお、第２通信識別子は、例えば、第２認証メッセージ生成部１０４Ａが第２認証メッセージを生成する度に変化する値であって、乱数生成器、疑似乱数生成器、増算カウンタ、減算カウンタなどで生成される値である。また、第２検証値は、認証子データと第２通信識別子と第１通信識別子とに基づいて、第２演算を実施して得られる値である。ここで、第２演算は、第１演算と同様、認証子データと第１通信識別子と第２通信識別子とから第２検証値が容易に生成でき、かつ、生成した第２検証値と認証子データを除く演算に用いた情報（第１通信識別子と第２通信識別子）とから、認証子データを導出、推測することが容易でない性質を持つ演算であることを要する。なお、第２演算に用いる第１通信識別子は、ステップＳ５１４において検証に成功した第１認証メッセージに含まれる第１通信識別子である。【００６２】
第２認証メッセージ生成部１０４Ａは、例えば、演算器１０９Ａを用いて第２通信識別子を生成し、生成した第２通信識別子と、受信した第１認証メッセージに含まれる第１通信識別子と、認証子データ記憶部１０８Ａに記憶している認証子データとをもとに、予め定められた第２演算を実施して第２検証値を生成する。第２認証メッセージ生成部１０４Ａは、第２認証メッセージを送信した発信側通信ノードが最初に接続要求を送信した通信ノードであることを示す情報と、生成した第２通信識別子と、生成した第２検証値とを含む第２認証メッセージを生成する。なお、第２認証メッセージの生成、検証動作についても、具体的な動作例は後述する。【００６３】
発信側通信ノードのメッセージ通信装置２０は、第２認証メッセージ生成部１０４Ａから第２認証メッセージを受け取ると、その第２認証メッセージを着信側通信ノードＢに送信する（図４のステップＳ５１６）。【００６４】
着信側通信ノードの通信ノード認識装置１０Ｂは、第１認証メッセージを送信した後、発信側通信ノードから送信される第２認証メッセージを受信する状態で待機する（図４のステップＳ５２４）。【００６５】
着信側通信ノードのメッセージ通信装置２０が、発信側通信ノードからの第２認証メッセージを受信すると（図４のステップＳ５２５）、その受信した第２認証メッセージを通信ノード認証装置１０Ｂに受け渡す。【００６６】
通信ノード認証装置１０Ｂの第２認証メッセージ検証部１０５Ｂは、メッセージ通信装置２０が受信した第２認証メッセージを受け取ると、第２認証メッセージに対して検証を行う（図４のステップＳ５２６）。【００６７】
具体的に説明すると、第２認証メッセージ検証部１０４Ｂは、受信した第２認証メッセージに含まれる値（第２通信識別子）と、認証子データ記憶部１０８Ｂに記憶している認証子データと、通信識別子記憶部１１０Ｂに記憶している第１通信識別子とから、予め定められた第２演算を実施し、その結果得られた値と、受信した第２認証メッセージに含まれる値（第２検証値）とを比較することによって第２認証メッセージの検証を行う。第２認証メッセージ検証部１０５Ｂは、第２認証メッセージ検証部１０４Ｂが行った第２演算の結果と、受信した第２認証メッセージに含まれる第２検証値とが一致した場合に検証成功と判定し、一致しなかった場合に検証失敗と判定する。なお、第２演算も、通信システム管理者によって設定登録される等によって、本発明の実施形態に用いられる全通信ノードに共有されているものとする。【００６８】
第２認証メッセージの検証に成功した場合、接続許可メッセージ生成部１０６Ｂは、第２認証メッセージ検証部１０４Ｂからの検証成功の結果を受け取ると、接続許可メッセージを生成し（図４のステップＳ５２７）、その接続許可メッセージをメッセージ通信装置２０及び接続手続部１０７Ｂに向けて送信する。【００６９】
メッセージ通信装置２０は、接続許可メッセージ生成部１０６Ｂから接続許可メッセージを受け取ると、その接続メッセージを発信側通信ノードに向けて送信する（図４のステップＳ５２８）。【００７０】
接続手続部１０７Ｂは、第２認証メッセージ検証部１０４Ｂから接続許可メッセージを受け取ると、発信側通信ノードとの接続手続を開始する（図４のステップＳ５２９）。【００７１】
なお、第２認証メッセージの検証に失敗した場合、接続許可メッセージ生成部１０６Ｂは、不正な通信ノードからの接続要求であるとして、接続を許可しないことを示す接続拒否メッセージを生成し、メッセージ通信装置２０は、接続許可メッセージ生成部１０６Ｂの生成した接続拒否メッセージを発信側通信ノードに向けて送信するようにしてもよいものである。【００７２】
発信側通信ノードは、第２認証メッセージを送信した後、着信側通信ノードからの接続許可メッセージを受信する状態で待機する（図４のステップＳ５１７）。【００７３】
発信側通信ノードのメッセージ通信装置２０は、着信側通信ノードから接続許可メッセージが送信された場合、その接続許可メッセージを受信し、その受信した接続許可メッセージを通信ノード認証装置１０Ｂに受け渡す（図４のステップＳ５１８）。【００７４】
発信側通信ノードの接続手続部１０７Ａは、メッセージ通信装置２０が受信した接続許可メッセージを受け取ると、着信側通信ノードとの接続を開始する（図４のステップＳ５１９）。【００７５】
以上の処理過程を経ることで、発信側通信ノードの接続手続部１０７Ａと着信側通信ノードの接続手続部１０７Ｂとの間において、相互通信が開始される。
【００７６】
次に、具体的な例を用いて、第１認証メッセージおよび第２認証メッセージの生成、検証について図３及び図５に基づいて説明する。第１認証メッセージ生成部１０２Ｂ，第２認証メッセージ生成部１０４Ａは、演算器１０９Ａ，１０９Ｂを用いて、第１認証メッセージ，第２認証メッセージをそれぞれ生成する。第１認証メッセージ検証部１０３Ａ，第２認証メッセージ検証部１０５Ｂは、演算器１０９Ａ，１０９Ｂを用いて、第１認証メッセージの検証、第２認証メッセージの検証をそれぞれ行う。図３（図１）に示す演算器１０９Ａ及び１０９Ｂ（１０９）の連結演算器１０９１が行うデータＡとデータＢとの連結演算結果を"Ａ｜｜Ｂ"で示す。また、図３（図１）に示す演算器１０９Ａ及び１０９Ｂ（１０９）のハッシュ演算器１０９２が行うデータＡのハッシュ演算結果を"ＨＡＳＨ（Ａ）"で示す。【００７７】
まず、着信側通信ノードの第１認証メッセージ生成部１０２Ｂが第１認証メッセージを生成する場合について説明する。【００７８】
着信側通信ノードの第１認証メッセージ生成部１０２Ｂは、着信側通信ノードの演算器１０９Ｂを用いて、第１認証メッセージを生成する。すなわち、着信側通信ノードの演算器１０９Ｂは、乱数生成器１０９４を用いて、乱数（以下、ＲＢと記す。）を生成する（図５のステップＳ６１０）。【００７９】
次に、着信側通信ノードの演算器１０９Ｂは、乱数生成器１０９４が生成した乱数（ＲＢ）を第１通信識別子として、着信側通信ノードの通信識別子記憶部１１０Ｂに記憶させる（図５のステップＳ６１１）。【００８０】
次に、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードの認証子データ記憶部１０８Ｂに記憶されている認証子データ（通信ノード認証装置１０Ｂに設定登録されている認証子データ。以下、ＧＢと記す。）を取得する（ステップＳ６１２）。着信側通信ノードの演算器１０９Ｂは、乱数生成器１０９４で生成した第１通信識別子ＲＢと、認証子データ記憶部１０８Ｂに記憶されている認証子データＧＢとに基づいて第１検証値を生成する。【００８１】
具体的に説明すると、着信側通信ノードの演算器１０９Ｂは、連結演算器１０９１を用いて、第１通信識別子ＲＢと認証子データＧＢの連結演算を行う（図５のステップＳ６１３）。ここで、連結演算器１０９１による連結演算結果をＵＣ１とすると、連結演算結果ＵＣ１は、例えば、式（１）によって示される。【００８２】
ＵＣ１＝ＲＢ｜｜ＧＢ    ・・・式（１）【００８３】
なお、連結演算結果ＵＣ１は、第１通信識別子ＲＢと認証子データＧＢとを用いて演算できるデータであればよく、例えば、式（２）に示すような計算式によって求めてもよい。
ＵＣ１＝ＧＢ｜｜ＲＢ
ＵＣ１＝ＲＢ｜｜ＧＢ｜｜ＲＢ
ＵＣ１＝ＲＢ｜｜ＨＡＳＨ（ＧＢ）    ・・・式（２）【００８４】
次に、着信側通信ノードの演算器１０９Ｂは、ハッシュ演算器１０９２を用いて、連結演算器１０９１で処理された連結演算結果ＵＣ１に対しハッシュ演算を行う（図５のステップＳ６１４）。なお、ハッシュ演算としては、ＭＤ２やＭＤ５、ＳＨＡといったよく知られている関数を用いればよい。ハッシュ演算結果をＨＣ１とすると、ハッシュ演算結果ＨＣ１は式（３）で示される。なお、このハッシュ演算結果ＨＣ１が、第１検証値に相当する。【００８５】
ＨＣ１＝ＨＡＳＨ（ＵＣ１）    ・・・式（３）【００８６】
次に、着信側通信ノードの演算器１０９Ｂは、連結演算器１０９１を用いて、第１通信識別子ＲＢとハッシュ演算結果ＨＣ１との連結演算を行い、第１認証メッセージを生成する（図５のステップＳ６１５）。ここで、第１認証メッセージをＭＳＧ１とすると、第１認証メッセージＭＳＧ１は、式（４）のように示される。なお、第１認証メッセージＭＳＧ１は、第１通信識別子ＲＢと第１検証値ＨＣ１とを含み、かつ、第１通信識別子ＲＢと第１検証値ＨＣ１とが容易に分離することができればよい。【００８７】
ＭＳＧ１＝ＲＢ｜｜ＨＣ１    ・・・式（４）【００８８】
なお、第１認証メッセージを生成するステップにおいて、第１検証値を求めるための演算である第１演算は、本例では、式（５）で示される演算のいずれかである。【００８９】
ＨＡＳＨ（ＲＢ｜｜ＧＢ）
ＨＡＳＨ（ＧＢ｜｜ＲＢ）
ＨＡＳＨ（ＲＢ｜｜ＧＢ｜｜ＲＢ）
ＨＡＳＨ（ＲＢ｜｜ＨＡＳＨ（ＧＢ））    ・・・式（５）【００９０】
次に、発信側通信ノードの第１認証メッセージ検証部１０３Ａが、着信側通信ノードから送信される第１認証メッセージについて発信側通信ノードの演算器１０９Ａを用いて検証を行う場合を図３及び図６に基づいて説明する。【００９１】
発信側通信ノードの演算器１０９Ａは、メッセージ通信装置１０で受信した第１認証メッセージＭＳＧ１から第１通信識別子ＲＢと第１検証値ＨＣ１とを切り出す（図６のステップＳ７１０、７１１）。【００９２】
次に、発信側通信ノードの演算器１０９Ａは、発信側通信ノードの認証子データ記憶部１０８Ａに記憶されている認証子データ（通信ノード認証装置１０Ａに設定登録されている認証子データ。以下、ＧＡと記す。）を取得する（ステップＳ７１２）。発信側通信ノードの演算器１０９Ａは、受信した第１認証メッセージＭＳＧ１から切り出した第１通信識別子ＲＢと、認証子データ記憶部１０８Ａに記憶されている認証子データＧＡとに基づいて、発信側通信ノードにおける第１検証値を求める。【００９３】
具体的に説明すると、発信側通信ノードの演算器１０９Ａは、連結演算器１０９１を用いて、受信した第１認証メッセージＭＳＧ１から切り出した第１通信識別子ＲＢと認証子データＧＡとの連結演算を行う（ステップＳ７１３）。ここで、連結演算器１０９１による連結演算結果をＵＶ１とすると、その連結演算結果ＵＶ１は、例えば、式（６）で示される。【００９４】
ＵＶ１＝ＲＢ｜｜ＧＡ    ・・・式（６）【００９５】
なお、連結演算結果ＵＶ１は、第１通信識別子ＲＢと認証子データＧＡとを用いて演算できるデータであればよく、例えば、式（７）に示すような計算式によって求めてもよい。ただし、図５のステップＳ６１３における連結演算結果ＵＣ１の演算と同様の演算とする。【００９６】
ＵＶ１＝ＧＡ｜｜ＲＢ
ＵＶ１＝ＲＢ｜｜ＧＡ｜｜ＲＢ
ＵＶ１＝ＲＢ｜｜ＨＡＳＨ（ＧＡ）    ・・・式（７）【００９７】
次に、発信側通信ノードの演算器１０９Ａは、ハッシュ演算器１０９２を用いて、連結演算器１０９１による連結演算結果ＵＶ１に対し、ハッシュ演算を行う（図６のステップＳ７１４）。なお、ハッシュ演算についても、図５のステップＳ６１４におけるハッシュ演算結果ＨＣ１の演算と同様の演算とする。ここで、ハッシュ演算結果をＨＶ１とすると、ハッシュ演算結果ＨＶ１は、式（８）で示される。なお、このハッシュ演算結果ＨＶ１が、通信ノード認証装置１０Ａにおける第１検証値に相当する。【００９８】
ＨＶ１＝ＨＡＳＨ（ＵＶ１）    ・・・式（８）【００９９】
最後に、発信側通信ノードの演算器１０９Ａは、比較器１０９３を用いて、受信した第１認証メッセージから切り出した第１検証値ＨＣ１と、演算して得られた第１検証値ＨＶ１とを比較する（ステップＳ７１５）。【０１００】
発信側通信ノードの第１認証メッセージ検証部１０３Ａは、比較器１０９３による比較の結果、第１検証値ＨＣ１と第１検証値ＨＶ１とが一致すれば、第１認証メッセージの検証を成功と判断する。発信側通信ノードの第１認証メッセージ検証部１０３Ａは、比較器１０９３による比較の結果、第１検証値ＨＣ１と第１検証値ＨＶ１とが一致しなければ、第１認証メッセージの検証を失敗と判断する。【０１０１】
次に、発信側通信ノードの第２認証メッセージ生成部１０４Ａが第２認証メッセージを生成する場合を図３及び図７に基づいて説明する。【０１０２】
発信側通信ノードの第２認証メッセージ生成部１０４Ａは、発信側通信ノードの演算器１０９Ａを用いて、第２認証メッセージを生成する。すなわち、発信側通信ノードの演算器１０９Ａは、乱数生成器１０９４を用いて、第２通信識別子として、乱数（以下、ＲＡと記す。）を生成する（図７のステップＳ８１０）。【０１０３】
次に、発信側通信ノードの演算器１０９Ａは、発信側通信ノードのメッセージ通信装置２０が受信した第１認証メッセージから第１通信識別子ＲＢを切り出す（図７のステップＳ８１１）。なお、第１認証メッセージ検証部１０２Ａによる検証処理の際に切り出された第１通信識別子ＲＢを、前記切り出した第１通信識別子ＲＢとして用いてもよいものである。【０１０４】
次に、発信側通信ノードの演算器１０９Ａは、発信側通信ノードの認証子データ記憶部１０８Ａに記憶されている認証子データＧＡを取得する（図７のステップＳ８１２）。発信側通信ノードの演算器１０９Ａは、第１認証メッセージに含まれる第１通信識別子ＲＢと、乱数生成器１０９４が生成した第２通信識別子ＲＡと、発信側通信ノードの認証子記憶部１０８Ａに記憶されている認証子データＧＡとに基づいて、第２検証値を生成する。【０１０５】
具体的に説明すると、発信側通信ノードの演算器１０９Ａは、連結演算器１０９１を用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証子データＧＡとの連結演算を行う（図７のステップＳ８１３）。ここで、連結演算器１０９１による連結演算結果をＵＣ２とすると、連結演算結果ＵＣ２は、例えば、式（９）で示される。【０１０６】
ＵＣ２＝ＲＡ｜｜ＲＢ｜｜ＧＡ    ・・・式（９）【０１０７】
なお、連結演算器１０９１による連結演算結果ＵＣ２は、第１通信識別子ＲＢと第２通信識別子ＲＡ認証子データＧＡとを用いて演算できるデータであればよく、例えば、式（１０）に示すような計算式によって求めてもよい。【０１０８】
ＵＣ２＝ＧＡ｜｜ＲＡ｜｜ＲＢ
ＵＣ２＝ＲＡ｜｜ＲＢ｜｜ＧＡ｜｜ＲＢ
ＵＣ２＝ＲＡ｜｜ＲＢ｜｜ＨＡＳＨ（ＧＡ）    ・・・式（１０）【０１０９】
次に、発信側通信ノードの演算器１０９Ａは、発信側通信ノードのハッシュ演算器１０９２を用いて、連結演算器１０９１による連結演算結果ＵＣ２に対し、ハッシュ演算を行う（図７のステップＳ８１４）。なお、ハッシュ演算としては、ＭＤ２やＭＤ５、ＳＨＡといったよく知られている関数を用いればよい。ここで、ハッシュ演算結果をＨＣ２とすると、ハッシュ演算結果ＨＣ２は式（１１）で示される。なお、このハッシュ演算結果ＨＣ２が、第２検証値に相当する。【０１１０】
ＨＣ２＝ＨＡＳＨ（ＵＣ２）    ・・・式（１１）【０１１１】
次に、発信側通信ノードの演算器１０９Ａは、発信側通信ノードの連結演算器１０９１を用いて、第２通信識別子ＲＡとハッシュ演算結果ＨＣ２との連結演算を行い、第２認証メッセージを生成する。ここで、第２認証メッセージを第２認証メッセージＭＳＧ２とすると、第２認証メッセージＭＳＧ２は、式（１２）のように示される。なお、第２認証メッセージＭＳＧ２は、第２通信識別子ＲＡと第２検証値ＨＣ２とを含み、かつ、第２通信識別子ＲＡと第２検証値ＨＣ２とが容易に分離することができればよい。【０１１２】
ＭＳＧ２＝ＲＡ｜｜ＨＣ２    ・・・式（１２）【０１１３】
なお、第２認証メッセージを生成するステップにおいて、第２検証値を求めるための演算である第２演算は、本例では、式（１３）に示す計算式で示される演算のいずれかである。【０１１４】
ＨＡＳＨ（ＲＡ｜｜ＲＢ｜｜ＧＡ）
ＨＡＳＨ（ＧＡ｜｜ＲＡ｜｜ＲＢ）
ＨＡＳＨ（ＲＡ｜｜ＲＢ｜｜ＧＡ｜｜ＲＢ）
ＨＡＳＨ（ＲＡ｜｜ＲＢ｜｜ＨＡＳＨ（ＧＡ））    ・・・式（１３）【０１１５】
次に、第着信側通信ノードの第２認証メッセージ検証部１０５Ｂが第２認証メッセージを検証する場合を図３及び図８に基づいて説明する。【０１１６】
着信側通信ノードの第２認証メッセージ検証部１０４Ｂは、着信側通信ノードの演算器１０９Ｂを用いて、着信側通信ノードのメッセージ通信装置２０が受信した第２認証メッセージに対して検証を行う。【０１１７】
すなわち、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードのメッセージ通信装置２０が受信した第２認証メッセージＭＳＧ２から第２通信識別子ＲＡと第２検証値ＨＣ２とを切り出す（図８のステップＳ９１０、９１１）。【０１１８】
次に、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードの認証子データ記憶部１０８Ｂに記憶されている認証子データＧＢを取得する（図８のステップＳ９１２）。【０１１９】
次に、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードの通信識別子記憶部１１０Ｂに記憶されている、第１認証メッセージを生成する際に生成した第１通信識別子ＲＢを取得する（図８のステップＳ９１３）。【０１２０】
次に、着信側通信ノードの演算器１０９Ｂは、第２認証メッセージから切り出した第２通信識別子ＲＡと、記憶されている第１通信識別子ＲＢと、記憶されている認証子データＧＢとに基づいて、通信ノード認証装置１０Ｂにおける第２検証値を求める。【０１２１】
具体的に説明すると、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードの連結演算器１０９１を用いて、第２通信識別子ＲＡと第１通信識別子ＲＢと認証子データＧＢの連結演算を行う（図８のステップＳ９１４）。ここで、連結演算器１０９１による連結演算結果をＵＶ２とすると、連結演算結果ＵＶ２は、例えば、式（１４）で示される。【０１２２】
ＵＶ２＝ＲＡ｜｜ＲＢ｜｜ＧＢ    ・・・式（１４）【０１２３】
なお、連結演算結果ＵＶ２も、第１通信識別子ＲＢと認証子データＧＢとを用いて演算できるデータであればよく、例えば、式（１５）に示すような計算式によって求めてもよい。ただし、図７のステップＳ８１３における連結演算結果ＵＣ２の演算と同様の演算とする。【０１２４】
ＵＶ２＝ＧＢ｜｜ＲＡ｜｜ＲＢ
ＵＶ２＝ＲＡ｜｜ＲＢ｜｜ＧＢ｜｜ＲＢ
ＵＶ２＝ＲＡ｜｜ＲＢ｜｜ＨＡＳＨ（ＧＢ）    ・・・式（１５）【０１２５】
次に、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードのハッシュ演算器１０９２を用いて、連結演算器１０９１による連結演算結果ＵＶ２に対し、ハッシュ演算を行う（図８のステップＳ９１５）。なお、ハッシュ演算についても、図７のステップＳ８１４におけるハッシュ演算結果ＨＣ２の演算と同様の演算とする。ここで、ハッシュ演算結果をＨＶ２とすると、ハッシュ演算結果ＨＶ１は、式（１６）で示される。なお、このハッシュ演算結果ＨＶ２が、着信側通信ノードにおける第２検証値に相当する。【０１２６】
ＨＶ２＝ＨＡＳＨ（ＵＶ２）    ・・・式（１６）【０１２７】
次に、着信側通信ノードの演算器１０９Ｂは、着信側通信ノードの比較器１０９３を用いて、受信した第２認証メッセージから切り出した第２検証値ＨＣ２と、演算して得られた第２検証値ＨＶ２とを比較する（図８のステップＳ９１６）。【０１２８】
着信側通信ノードの第２認証メッセージ検証部１０５Ｂは、比較器１０９３による比較の結果、第２検証値ＨＣ２と第２検証値ＨＶ２とが一致すれば、第２認証メッセージの検証を成功と判断する。着信側通信ノードの第２認証メッセージ検証部１０５Ｂは、比較器１０９３による比較の結果、第２検証値ＨＣ２と第２検証値ＨＶ２とが一致しなければ、第２認証メッセージの検証を失敗と判断する。【０１２９】
なお、本例では、第１通信識別子および第２通信識別子を、乱数生成器１０９４を用いて生成する例を示したが、第１通信識別子または第２通信識別子は、生成の度に変化する値であればよく、例えば、疑似乱数生成器や増算カウンタ、減算カウンタなどを用いて生成してもよい。【０１３０】
以上のように、本発明の実施形態１によれば、接続要求である発信側通信ノードにおける認証と、接続待機である着信側通信ノードにおける認証とを独立して動作させずに、１つの認証シーケンスとして、一方の通信ノードで実施した認証結果を踏まえて、他方の通信ノードにおける認証を一連の処理として行うので、発信側通信ノードにおいて、着信側通信ノードが正規の通信ノードであるか否かを確認することができるとともに、着信側通信ノードにおいても、発信側通信ノードが正規の通信ノードであるか否かを確認することができる。つまり、相互認証において連続性を保証できるので、例えば、正規の通信ノードが、不正な通信ノードからの接続要求メッセージに応答して接続してしまうことによって、不正な通信ノードに情報が流出してしまう危険性をなくすことができる。【０１３１】
また、関連する技術のように相互に独立して認証を行う場合には、それぞれで認証要求と認証結果とをやりとりしなければならないが、本発明の実施形態１によれば、一方の通信ノードでの認証結果の通知が、他方の通信ノードでの認証要求を兼ねているので、関連する認証シーケンスに比べて通信回数を減らす効果がある。ネットワークにおける通信回数は、消費電力量に直結するため、通信回数を圧縮できる本方法は、電池駆動するセンサノード等の利用においてより有効である。【０１３２】
また、本発明の実施形態１では、各通信ノードが恒常的に保持しておく必要のある情報は、共通の認証子データのみである。つまり、通信相手毎に異なる認証子データを設定、登録する必要がなく、複数の通信相手と通信を行う場合であっても、通信相手の数に応じて各通信ノードで恒常的に保持する必要のある情報が増大しないため、多数の通信ノードと接続するような通信システムに適用しても、各通信ノードのメモリリソースに影響を与えない。
（実施形態２）【０１３３】
次に、図１（図３）において、第１認証メッセージ及び第２認証メッセージの生成、及び第１認証メッセージ及び第２認証メッセージの検証に用いる演算器１０９の変更例を、本発明の実施形態２として説明する。【０１３４】
本発明の実施形態２に係る演算器１０９は図９に示すように、図１に示す演算器１０９と比較して、排他的論理和演算器１０９５を追加した構成とした点に特徴がある。すなわち、本発明の実施形態２に係る演算器１０９５は、第１認証メッセージの生成、検証および第２認証メッセージの生成、検証の際に行う第１演算および第２演算に、排他的論理和を用いる点で、図１に示す実施形態１と異なる。【０１３５】
次に、本発明の実施形態２の動作について、実施形態１と異なる部分に注目して説明する。以下、排他的論理和演算器１０９５によるデータＡとデータＢの排他的論理和演算結果を"Ａ（×）Ｂ"と示すこととする。【０１３６】
本発明の実施形態２において、第１認証メッセージ生成ステップである図５のステップＳ６１３において、着信側通信ノードの第１認証メッセージ生成部１０１Ｂは、演算器１０９Ｂの排他的論理和演算器１０９５を用いて、第１通信識別子ＲＢと認証データＧＢの排他的論理和演算を行う。ここに、排他的論理和演算器１０９５による排他的論理和演算結果をＵＣ１とすると、排他的論理和演算結果ＵＣ１は、式（１７）で示される。【０１３７】
ＵＣ１＝ＲＢ（×）ＧＢ    ・・・式（１７）【０１３８】
第１認証メッセージ検証ステップである図６のステップＳ７１３において、第１認証メッセージ検証部１０２Ａは、演算器１０９Ａの排他的論理和演算器１０９５を用いて、第１通信識別子ＲＢと認証子データＧＡの排他的論理和演算を行う。ここに、排他的論理和演算器１０９５による排他的論理和演算結果をＵＶ１とすると、排他的論理和演算結果ＵＶ１は、式（１８）で示される。【０１３９】
ＵＶ１＝ＲＢ（×）ＧＡ    ・・・式（１８）【０１４０】
第２認証メッセージ生成ステップである図７のステップＳ８１３において、第２認証メッセージ生成部１０３Ａは、演算器１０９Ａの排他的論理和演算器１０９５とハッシュ演算器１０９２とを用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証子データＧＡとの演算を行う。ここで、演算結果をＵＣ２とすると、演算結果ＵＣ２は式（１９）で示される。【０１４１】
ＵＣ２＝ＨＡＳＨ（ＲＡ）（×）ＲＢ（×）ＧＡ    ・・・式（１９）【０１４２】
第２認証メッセージ検証ステップである図８のステップＳ９１４において、第２認証メッセージ生成部１０３Ａは、演算器１０９Ａの排他的論理和演算器１０９５とハッシュ演算器１０９２とを用いて、第２通信識別子ＲＡと第１通信識別子ＲＢと認証子データＧＢとの演算を行う。ここで、演算結果をＵＶ２とすると、演算結果ＵＶ２は式（２０）で示される。なお、演算結果ＵＣ２、ＵＶ１のＲＡに対するハッシュ演算については、後述する。【０１４３】
ＵＶ２＝ＨＡＳＨ（ＲＡ）（×）ＲＢ（×）ＧＢ    ・・・式（２０）【０１４４】
本発明の実施形態２によれば、排他的論理和演算器１０９５による排他的論理和演算を利用することによって、第１検証値または第２検証値を生成するためのハッシュ演算（ステップＳ６１４、７１４、８１４、９１５）を実施するデータ長を短くすることができ、処理の高速化を実現できる。または、ハッシュ演算器１０９１の回路構成を縮小することができる。【０１４５】
次に、演算結果ＵＣ２、ＵＶ１のＲＡに対するハッシュ演算について説明する。図１０は、本発明を適用した通信ノード間の通信において、通信を傍受してなりすまし等を試みる不正な通信ノードによる通信状態を示す説明図である。なお、図１０において、正規の通信ノードＡ、Ｂは、共通の認証子データ（ＧＡ、ＧＢ）を秘密に保持している通信ノードであり、一方、不正な通信ノードＸは、認証子データを知らないが、通信ノードＢに不正に接続を試みる通信ノードである。図１０において、通信状態１１０１は不正接続の準備状態を示しており、通信状態１１０２は不正接続の試行を行っている状態を示している。【０１４６】
ここで、第２認証メッセージ生成ステップである図７のステップＳ８１３において、式（２１）に示す計算式によって、第２認証識別子ＲＡと第１通信識別子ＲＢと認証子データＧＡとから、生成容易なデータ（演算結果ＵＣ２）を得る場合について考える。【０１４７】
ＵＣ２＝ＲＡ（×）ＲＢ（×）ＧＡ    ・・・式（２１）【０１４８】
図１０に示す通信状態１１０１において、通信ノードＡと通信ノードＢとは、保持する共通の認証子データを直接通信することなく、お互いに認証することに成功する。この際、通信ノードＸは、前記通信ノードＡと通信ノードＢとの間における認証手続きに関する一連の通信を傍受することが可能であるとする。この傍受によって得られるデータは、次のＤ１〜Ｄ４である。なお、Ｄ１、Ｄ２は、第１認証メッセージによって得られるデータであり、Ｄ３、Ｄ４は、第２認証メッセージによって得られるデータである。【０１４９】
Ｄ１＝ＲＢ
Ｄ２＝ＨＡＳＨ（ＲＢ（×）ＧＢ）
Ｄ３＝ＲＡＤ４＝ＨＡＳＨ（ＲＡ（×）ＲＢ（×）ＧＡ）【０１５０】
これらのデータ（Ｄ１〜Ｄ４）を得た通信ノードＸは、通信ノードＢに対し、接続要求メッセージを発し、被認証を試みる（通信状態１１０２）。【０１５１】
通信ノードＸは、通信ノードＢから、式（２２）に示す第１認証メッセージＭＳＧ１ｓを受信する。ここで、ＲＢｓは、通信ノードＢが生成した第１通信識別子であり、シーン１１０１における第１通信識別子ＲＢとは異なる値である。【０１５２】
ＭＳＧ１ｓ＝ＲＢｓ｜｜ＨＡＳＨ（ＲＢｓ（×）ＧＢ）    ・・・式（２２）【０１５３】
ここで問題となるのは、ハッシュ演算器１０９２によるハッシュ演算の特性により、通信ノードＸが、通信状態１１０１で傍受して得られたデータＤ１〜Ｄ４から、認証子データＧＡ、ＧＢを導出することは困難であるが、排他的論理和演算器１０９５による排他的論理和演算の特性と、Ｄ１、Ｄ３、Ｄ４、ＲＢｓとを用いることにより、第２認証メッセージを生成することが可能である点である。【０１５４】
通信ノードＸは、式（２３）に示す計算式を用いて、第２認証メッセージＭＳＧ２ｓを生成する。【０１５５】
ＲＸ＝Ｄ３（×）Ｄ１（×）ＲＢｓ
ＭＳＧ２ｓ＝ＲＸ｜｜Ｄ４    ・・・式（２３）【０１５６】
なお、排他的論理和演算器１０９５による排他的論理和演算の特性により、
ＲＸ（×）ＲＢｓ＝Ｄ３（×）Ｄ１＝ＲＡ（×）  ＲＢ（×）・・・式（２４）
である。【０１５７】
通信ノードＸは、このように生成した第２認証メッセージＭＳＧ２ｓを通信ノードＢに送信する。そして、通信ノードＢは、通信ノードＸから受信した第２認証メッセージＭＳＧ２ｓを検証する。【０１５８】
このとき、通信ノードＸが生成した第２検証値に相当する値Ｄ４は、
Ｄ４＝ＨＡＳＨ（ＲＡ（×）ＲＢ（×）ＧＡ）
＝ＨＡＳＨ（ＲＸ（×）ＲＢｓ（×）ＧＡ）
＝ＨＡＳＨ（ＲＸ（×）ＲＢｓ（×）ＧＢ）・・・式（２５）
である。【０１５９】
一方、通信ノードＢが正規に計算する第２検出値ＵＶ２は、
ＵＶ２＝ＨＡＳＨ（ＲＸ（×）ＲＢｓ（×）ＧＢ）・・・式（２６）
である。【０１６０】
従って、受信した第１認証メッセージＭＳＧ１ｓに含まれる第２検証値Ｄ４と計算によって求めた第２検出値ＵＶ２とが一致するため、認証が成功してしまう。このようにして、通信ノードＸは、通信ノードＡになりすまし、通信ノードＢから認証を受けることに成功する可能性が生じる。【０１６１】
このなりすましを防止するため、本発明の実施形態２では、第２認証メッセージ生成ステップである図７のステップＳ８１３において、第１通信識別子ＲＡに対し、ハッシュ演算を実施した後、排他的論理和演算を実施する。そうすることによって、通信ノードＸは、通信状態１１０１の通信傍受などによって、ＨＡＳＨ（ＲＸ）に相当する値を導出することができても、ハッシュ演算の特性によりＲＸを導出することが困難であり、なりすまして認証をうけることができない。【０１６２】
このように、第２演算は、第１演算によって生成される第１認証メッセージが、仮に、通信子データを知らない通信ノードに傍受されたとしても、なりすまして認証を受けることが難しくなるような演算であることがより好ましい。
（実施形態３）【０１６３】
次に、本発明の実施形態３について説明する。【０１６４】
本発明の実施形態３は図１１に示すように、上述した実施形態１及び実施形態２と同様の構成でステップＳ１４１０〜ステップＳ１４２９までの一連の処理が実行されるが、本発明の実施形態３においては、第１認証メッセージの生成、検証及び第２認証メッセージの生成、検証の際に利用する第２通信識別子の送受信タイミング、第１認証メッセージの生成及び検証方法、第２認証メッセージの生成及び検証方法の点が、上述した実施形態１及び２とは異なる。以下では、実施形態１と異なる箇所に注目して説明する。【０１６５】
図３（図１）に示す発明の実施形態１では、第２通信識別子としての乱数ＲＡは図７のステップＳ８１０において、着信側通信ノードから送信される第１認証メッセージを検証した後に生成していた。【０１６６】
これに対して、本発明の実施形態３では、図７のステップＳ８１０に先だって、発信側通信ノードから接続要求メッセージを生成する際に、第２通信識別子としての乱数ＲＡを生成している。すなわち、発信側通信ノードの接続要求メッセージ生成部１０５は、他の通信ノードへの接続を要求する接続要求メッセージを生成する際（図１１のステップＳ１４１０，図１２のステップＳ１５１０）、演算器１０９の乱数生成器１０９４を用いて、第２通信識別子（ＲＡ）を生成する（図１２のステップＳ１５１１）。前記第２通信識別子（ＲＡ）は、第１認証メッセージに紐付ける（対応づける）ものである。【０１６７】
次に、本発明の実施形態３では、発信側通信ノードの接続要求メッセージ生成部１０１は、生成した接続要求メッセージに前記第２通信識別子ＲＡを連結し（図１３のステップＳ１６１１）、その連結した接続要求メッセージ及び第２通信識別子を発信側通信ノードのメッセージ通信装置２０に向けて送信する。【０１６８】
発信側通信ノードのメッセージ通信装置２０は、接続要求メッセージ生成部１０１から接続要求メッセージ及び第２通信識別子を受け取ると、これらの情報を着信側通信ノードに向けて送信する（（図１１のステップＳ１４１１，図１３のステップＳ１６１２）。【０１６９】
着信側通信ノードでは、メッセージ受信待機状態（図１１のステップＳ１４２０）において、発信側通信ノードから送信される接続要求メッセージ及び第２通信識別子を受信すると（図１１のステップＳ１４２１）、着信側通信ノードの第１認証メッセージ生成部１０１は、発信側通信ノードから送信された接続要求メッセージ及び第２通信識別子を受けて、第１認証メッセージを生成する（図１１のステップＳ１４２２）。【０１７０】
図１４は、前記着信側通信ノードの第１認証メッセージ生成部１０２が第１認証メッセージを生成する処理過程を示すものである。図１４において、ステップＳ１７１０からステップＳ１７１２までの処理過程は、実施形態１における第１認証メッセージ生成ステップである図５のステップＳ６１０〜ステップ６１２までの処理過程と同様である。【０１７１】
本発明の実施形態３では、第１認証メッセージ生成部１０２は、演算器１０９を用いて、発信側通信ノードから送信された接続要求メッセージから第２通信識別子ＲＡを切り出す（図１４のステップＳ１７１３）。【０１７２】
次に、着信側通信ノードの第１認証メッセージ生成部１０１は、着信側の演算器１０９連結演算器１０９１もしくは排他的論理和演算器１０９５を用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証データＧＢとの演算を行う（図１４のステップＳ１７１４）。例えば、連結演算器１０９或いは排他的論理和演算器１０９５による演算結果をＵＣ１とすると、演算結果ＵＣ１は、式（２８）のようになる。なお、図１４のステップＳ１７１５およびステップＳ１７１６は、図５のステップＳ６１４、Ｓ６１５と同様である。【０１７３】
ＵＣ１＝ＲＡ｜｜ＲＢ｜｜ＧＢ
ＵＣ１＝ＲＡ（×）ＲＢ｜｜ＧＢ
ＵＣ１＝ＲＡ｜｜ＲＢ（×）ＧＢ
ＵＣ１＝ＲＡ（×）ＲＢ（×）ＧＢ・・・式（２８）【０１７４】
本発明の実施形態３では、図１１に示す第１認証メッセージ検証ステップＳ１４１４の処理が実施形態１と異なる。すなわち、発信側通信ノードの第１認証メッセージ検証部１０２は、発信側演算器１０９の連結演算器１０９１もしくは排他的論理和演算器１０９５を用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証データＧＢとの演算を行う（図１５のステップＳ１８１３）。例えば、連結演算器１０９１或いは排他的論理和演算器１０９１或いは排他的論理和演算器１０９５による演算結果をＵＶ１とすると、演算結果ＵＶ１は、式（２９）のようになる。ここで、ＵＶ１の演算方法はＵＣ１と同様の演算方法であればよく、式（２８）および式（２９）は一例に過ぎないことに注意されたい。【０１７５】
なお、図１５のステップＳ１８１０〜Ｓ１８１２、Ｓ１８１４〜Ｓ１８１５は、実施形態１における第１認証メッセージ検証ステップである図６のＳ７１０〜Ｓ７１２、Ｓ７１４〜Ｓ７１５と同様である。【０１７６】
ＵＶ１＝ＲＡ｜｜ＲＢ｜｜ＧＢ
ＵＶ１＝ＲＡ（×）ＲＢ｜｜ＧＢ
ＵＶ１＝ＲＡ｜｜ＲＢ（×）ＧＢ
ＵＶ１＝ＲＡ（×）ＲＢ（×）ＧＢ・・・式（２９）【０１７７】
本発明の実施形態３では、図１６に示す第２認証メッセージ生成ステップＳ１４１５の処理過程が実施形態１と異なる。すなわち、着信側通信ノードの第２認証メッセージ生成部１０３は、着信側演算器１０９の連結演算器１０９１もしくは排他的論理和演算器１０９５とハッシュ演算器１０９２とを用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証子データＧＡとの演算を行う（図１６のＳ１９１２）。例えば、連結演算器１０９１もしくは排他的論理和演算器１０９５とハッシュ演算器１０９２とによる演算結果をＵＣ２とすると、演算結果ＵＣ２は式（３０）で示される。【０１７８】
なお、図１６のステップＳ１９１０、Ｓ１９１１、Ｓ１９１３は、実施形態１における第２認証メッセージ生成ステップである図７のＳ８１１、Ｓ８１２、Ｓ８１４と同様である。【０１７９】
ＵＣ２＝ＨＡＳＨ（ＲＡ｜｜ＲＢ）｜｜ＧＡ
ＵＣ２＝ＨＡＳＨ（ＲＡ｜｜ＲＢ）（×）ＧＡ
ＵＣ２＝ＨＡＳＨ（ＲＡ（×）ＲＢ）｜｜ＧＡ
ＵＣ２＝ＨＡＳＨ（ＲＡ（×）ＲＢ）（×）ＧＡ    ・・・式（３０）【０１８０】
本発明の実施形態３では、図１７に示す第２認証メッセージ検証ステップＳ１４２６の処理過程が実施形態１と異なる。すなわち、着信側通信ノードの第２認証メッセージ検証部１０４は、着信側演算器１０９の連結演算器１０９１もしくは排他的論理和演算器１０９５とハッシュ演算器１０９２とを用いて、第１通信識別子ＲＢと第２通信識別子ＲＡと認証子データＧＢとの演算を行う（図１７のＳ２０１４）。ここで、連結演算器１０９１もしくは排他的論理和演算器１０９５とハッシュ演算器１０９２とによる演算結果をＵＶ２とすると、演算結果ＵＶ２は例えば、式（３１）で示される。ここで、ＵＶ２の演算方法はＵＣ２と同様の演算方法で、かつＵＣ１およびＵＶ１の演算方法と異なる必要がある。式（３０）および式（３１）は一例に過ぎないことに注意されたい。【０１８１】
なお、図１７のステップＳ２０１０では、図１３のステップＳ１６１２で送信された第２通信識別子ＲＡを切り出している。図１７のステップＳ２０１１では、図１６のステップＳ１９１３で計算された値を取得している。図１７のステップＳ２０１２、Ｓ２０１３、Ｓ２０１５、Ｓ２０１６は、実施形態１における第２認証メッセージ検証ステップである図８のＳ９１２、Ｓ９１３、Ｓ９１５、Ｓ９１６と同様である。【０１８２】
ＵＶ２＝ＨＡＳＨ（ＲＡ｜｜ＲＢ）｜｜ＧＢ
ＵＶ２＝ＨＡＳＨ（ＲＡ｜｜ＲＢ）（×）ＧＢ
ＵＶ２＝ＨＡＳＨ（ＲＡ（×）ＲＢ）｜｜ＧＢ
ＵＶ２＝ＨＡＳＨ（ＲＡ（×）ＲＢ）（×）ＧＢ    ・・・式（３１）【０１８３】
本発明の実施形態３では、認証処理にハッシュ演算を適用しており、ハッシュ演算の一方向性に安全性の根拠を置いている。ハッシュ演算の入力空間が大きいほど、ハッシュ演算の結果から、元の入力値を推測することが困難になる。従って、ハッシュ演算の入力として与える第１の通信識別子ＲＢと第２の通信識別子ＲＡの演算結果は、連結演算を用いてビットの取り得る空間を大きくするほうが安全性の観点から好ましい。【０１８４】
実施形態１のように、ＵＣ１の生成時に１つの通信識別子をハッシュの入力に与えるよりも、実施形態３のように、第２通信識別子の送受信を第１認証メッセージの生成に先だって行い、かつ、第１の通信識別子ＲＢと第２の通信識別子ＲＡの演算を連結演算に限定すれば、認証処理の安全性を高めることができるという利点がある。【０１８５】
同程度の安全性、すなわち、実施形態１または実施形態２と同じ大きさの入力空間Ｌでよければ、第１通信識別子と第２通信識別子を連結演算において連結する場合に限り、連結した際のビット長で入力空間Ｌを満たせば、第１通信識別子と第の通信識別子のビット長を、例えばそれぞれ半分のビット長に削減できる。ここで、それぞれ半分に削減するだけでなく、一方を１／４のビット長に、他方を３／４のビット長にするなどの変更は、容易に類推し得る。【０１８６】
図１８に、実施形態３において、実施形態１または実施２形態と同程度の安全性を得る場合の通信識別子のビット長の一例を示す。【０１８７】
図１８の通信状態２１１０は実施形態１及び２における第1通信識別子、第２通信識別子のビット長である。通信状態２１１０では、それぞれ１２８bitのビット長を持つ通信識別子が発信側通信ノードと着信側通信ノードとの間で相互に遣り取りされる。【０１８８】
図１８の通信状態２１１１は実施形態３における第１通信識別子、第２通信識別子のビット長であり、実施形態３では、それぞれ６４bitのビット長を持つ通信識別子が相互に遣り取りされている。【０１８９】
以上のように本発明の実施形態３では、通信量を削減可能であり、通信量の削減が消費電力低下の大きな要因となる環境、例えば、センサネットワーク環境での実施に好適である。
（実施形態４）【０１９０】
次に、本発明の実施形態４について説明する。本発明の実施形態４は図１９に示すように、受信通信識別子記憶部１１１と、共通値生成部１１２とを有する点で実施形態１〜２と異なる。なお、他の点に関しては、実施形態１または実施形態２と同様である。【０１９１】
本発明の実施形態４は図１９に示すように、受信通信識別子記憶部１１１と共通値生成部１１２を、発信側通信ノードの第１認証メッセージ検証部１０３と、着信側通信ノードの第２認証メッセージ検証部１０５に対応させて設けてある。【０１９２】
受信通信識別子記憶部１１１は、認証手続中の通信相手の通信ノードから受信した通信識別子を記憶する。すなわち、発信側通信ノードの受信通信識別子記憶部１１１は、受信した第１認証メッセージに含まれる第１通信識別子を記憶する。着信側通信ノードの受信識別子記憶部１１１１は、受信した第２認証メッセージに含まれる第２通信識別子を記憶する。【０１９３】
なお、本発明の実施形態４では、通信識別子記憶部１１０は、認証手続き中の通信ノード認証装置１０が生成した通信識別子を必ず記憶することとする。すなわち、着信側通信ノードの通信識別子記憶部１１０は、生成した第１通信識別子を記憶し、発信側通信ノードの通信識別子記憶部１１０は、生成した第２通信識別子を記憶する。【０１９４】
つまり、認証手続きを完了した２つの通信ノードには、その認証手続きに用いた第１通信識別子と第２通信識別子とが保持されていることになる。したがって、発信側通信ノードと着信側通信ノードとは、第１通信識別子（ＲＢ）と、第２通信識別子（ＲＡ）と、認証子データ（ＧＡ＝ＧＢ）とを共有していることとなる。なお、認証子データは、認証手続きにおいて同一値であることが確認できているため、ＧＡ＝ＧＢが成り立つ。【０１９５】
共通値生成部１１２は、認証手続きを完了した２つの通信ノード間で共通の秘密のデータであって、認証後の暗号化通信の暗号化鍵として利用することができる共通値を生成する。共通値生成部１１２は、認証手続きを完了した２つの通信ノード間で共有している情報（ＲＢ、ＲＡ、ＧＡ（＝ＧＢ））を用いて、暗号化鍵を生成する。ここで、共通値をＫとすると、共通値Ｋは、例えば、式（２７）で示すような計算式によって求めることが考えられる。【０１９６】
Ｋ＝ＨＡＳＨ（ＲＡ｜｜ＲＢ｜｜ＧＡ）
Ｋ＝ＨＡＳＨ（ＲＡ（×）ＲＢ（×）ＧＡ）
Ｋ＝ＨＡＳＨ（ＨＡＳＨ（ＲＡ）（×）ＨＡＳＨ（ＲＢ）（×）ＧＡ）・・・式（２７）【０１９７】
なお、共通値Ｋの演算には、第１通信識別子ＲＢと第２通信識別子ＲＡとを知っていても容易に類推することが困難であって、第１通信識別子ＲＢ、第２通信識別子ＲＡ、または認証子データＧＡの値に応じて演算結果（共通値Ｋ）が異なり、かつ、第１通信識別子ＲＢと第２通信識別子ＲＡと演算結果（共通値Ｋ）とから、認証子データＧＡを類推することが困難な演算であれば、他の演算であってもよい。【０１９８】
本発明の実施形態４によれば、認証手続きを完了した２つの通信ノード間で共有している情報を用いて、共通の秘密のデータを生成することによって、当該認証手続き完了後のみ利用可能な共通の暗号化鍵を生成することができる。この暗号化鍵は、認証手続きの度に異なる値であるため、暗号化通信が傍受されて暗号を解読される可能性を低くし、セキュリティ性を高くすることができる。【０１９９】
次に、本発明の実施形態の変更例を逐次説明する。【０２００】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムのうち、前記発信側通信ノードに含まれる前記第２認証メッセージ生成手段は、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成するものであり、
前記着信側通信ノードに含まれる前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証するものであることが望ましいものである。【０２０１】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものであることが望ましいものである。【０２０２】
前記着信側通信ノードに含まれる前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードに含まれる前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものであることが望ましいものである。【０２０３】
さらに、接続手続手段を有し、前記接続手続手段は、前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始するものであることが望ましいものである。【０２０４】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する手段とを含むことが望ましいものである。【０２０５】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含むことが望ましいものである。【０２０６】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する手段とを含むことが望ましいものである。【０２０７】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含むことが望ましいものである。【０２０８】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証するものであることが望ましいものである。【０２０９】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものであることが望ましいものである。【０２１０】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものであり、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する接続手続手段を有することが望ましいものである。【０２１１】
前記発信側通信ノードの第２認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する手段とを含むことが望ましいものである。【０２１２】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する手段とを含むことが望ましいものである。【０２１３】
前記第２認証メッセージ生成手段、前記第２認証メッセージ検証手段、前記第１認証メッセージ生成手段及び前記第１認証メッセージ検証手段における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結後のビット長が、請求項１〜９のいずれかに記載の第１通信識別子と第２通信識別子のビット長以上になる条件の下で、第１通信識別子と第２通信識別子のビット長を削減することが望ましいものである。【０２１４】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶する手段と、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する手段とを含むことが望ましいものである。【０２１５】
本発明の実施形態を通信ノード認証方法として構築した場合、相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとし、認証を行った後に通信ノード相互間で通信を開始する通信ノード認証方法のうち、前記発信側通信ノードにおいて、前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証することが望ましいものである。【０２１６】
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証することが望ましいものである。【０２１７】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることが望ましいものである。【０２１８】
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始することが望ましいものである。【０２１９】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することが望ましいものである。【０２２０】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することが望ましいものである。【０２２１】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較することが望ましいものである。【０２２２】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することが望ましいものである。【０２２３】
前記発信側通信ノードにおいて、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証することが望ましいものである。【０２２４】
前記発信側通信ノードにおいて、前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証することが望ましいものである。【０２２５】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証し、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始することが望ましいものである。【０２２６】
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較することが望ましいものである。【０２２７】
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することが望ましいものである。【０２２８】
前記第２認証メッセージの生成処理、前記第２認証メッセージの検証処理、前記第１認証メッセージの生成処理及び前記第１認証メッセージの検証処理における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減することが望ましいものである。【０２２９】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成することが望ましいものである。【０２３０】
本発明の実施形態を通信ノード認証プログラムとして構築した場合、発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証する機能を実行させることが望ましいものである。【０２３１】
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させることが望ましいものである。【０２３２】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させることが望ましいものである。【０２３３】
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させることが望ましいものである。【０２３４】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する機能とを実行させることが望ましいものである。【０２３５】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させることが望ましいものである。【０２３６】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する機能とを実行させることが望ましいものである。【０２３７】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させることが望ましいものである。【０２３８】
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証する機能を実行させることが望ましいものである。【０２３９】
前記発信側通信ノードを構成するコンピュータに、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第1通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させることが望ましいものである。【０２４０】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させ、
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
正規の第１認証メッセージであることが検証され、かつ、正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させることが望ましいものである。【０２４１】
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する機能とを実行させることが望ましいものである。【０２４２】
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する機能とを実行させることが望ましいものである。【０２４３】
前記第２認証メッセージの生成、前記第２認証メッセージの検証、前記第１認証メッセージの生成及び前記第１認証メッセージの検証における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減することが望ましいものである。【０２４４】
前記コンピュータに、
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する機能を実行させることが望ましいものである。【０２４５】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置を構成するコンピュータに、
発信側となる通信ノードから送信される接続要求メッセージに応答して第１認証メッセージを生成する機能と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させることが望ましいものである。【０２４６】
認証を行った後に通信ノード相互間で通信を開始する通信ノード認証システムに用いる通信ノード認証装置を構成するコンピュータに、
着信側となる通信ノードから送信される前記第１認証メッセージの検証を行う機能と、
前記第１認証メッセージ検証手段による検証結果に基づいて、発信側通信ノードを認証するための第２認証メッセージを生成する機能とを実行させることが望ましいものである。
【産業上の利用可能性】
【０２４７】
本発明は、センサネットワークを構成するセンサノードが相互に認証を行うようなセンサノードに好適に適用可能である。また、ユビキタスシステムを構成するユビキタス機器が相互に認証するようなユビキタス機器にも適用可能である。【０２４８】
さらに、本発明は、演算データのデータ長を小さくすることで演算器に必要な演算回路を十分小さくすることができ、例えば、無線通信用ＬＳＩのチップ面積の増加を最小限に押さえて、作り込むことができる。または、本発明による通信ノード認証プログラムを、センサノードやユビキタス機器に搭載するマイクロプロセッサで実行する場合にも、プログラムサイズや通信のデータ長を小さくすることができ、結果、メモリ維持やマイクロプロセッサ演算に要する電力を削減できるので、電池など有限な電源リソースで長時間稼働されるようなセンサノードやユビキタス機器に好適に適用可能である。
【図面の簡単な説明】
【０２４９】
【図１】本発明の実施形態１に係る通信ノード認証装置を搭載された通信ノードの構成を示すブロック図である。
【図２】図１に示す通信ノード認証装置を機能分けして図示したブロック図である。
【図３】本発明の実施形態２に係る通信ノード認証装置を搭載した発信側通信ノードと着信側通信ノードとの構成を示すブロック図である。
【図４】本発明の実施形態２に係る通信ノード認証装置の動作例を示すフローチャートである。
【図５】本発明の実施形態２に係る通信ノード認証装置において、第１認証メッセージを生成する処理過程を示すフローチャートである。
【図６】本発明の実施形態２に係る通信ノード認証装置において、第１認証メッセージの検証を行う処理過程を示すフローチャートである。
【図７】本発明の実施形態２に係る通信ノード認証装置において、第２認証メッセージを生成する処理過程を示すフローチャートである。
【図８】本発明の実施形態２に係る通信ノード認証装置において、第２認証メッセージの検証を行う処理過程を示すフローチャートである。
【図９】本発明の実施形態１及び実施形態２に係る通信ノード認証装置に含まれる演算器の変更例を示すブロック図である。
【図１０】本発明の実施形態を適用した通信ノード間での通信状態と、適用しない場合における通信ノード間での通信状態とを比較して示す説明図である。
【図１１】本発明の実施形態３に係る通信ノード認証装置の動作例を示すフローチャートである。
【図１２】本発明の実施形態３に係る通信ノード認証装置における接続要求メッセージ生成の具体的な動作例を示すフローチャートである。
【図１３】本発明の実施形態３に係る通信ノード認証装置における接続要求メッセージ送信の具体的な動作例を示すフローチャートである。
【図１４】本発明の実施形態３に係る通信ノード認証装置における第１認証メッセージ生成の具体的な動作例を示すフローチャートである。
【図１５】本発明の実施形態３に係る通信ノード認証装置における第１認証メッセージ検証の具体的な動作例を示すフローチャートである。
【図１６】本発明の実施形態３に係る通信ノード認証装置における第２認証メッセージ生成の具体的な動作例を示すフローチャートである。
【図１７】本発明の実施形態３に係る通信ノード認証装置における第２認証メッセージ検証の具体的な動作例を示すフローチャートである。
【図１８】本発明の実施形態１及び２と、本発明の実施形態３とにおける通信識別子のビット長の一例を示す説明図である。
【図１９】本発明の実施形態４に係る通信ノード認証装置の構成を示すブロック図である。
【図２０】関連する通信ノード認証方法の一例を示す説明図である。
【符号の説明】
【０２５０】
１０  通信ノード認証装置
１０１  第１認証メッセージ生成部
１０２  第１認証メッセージ検証部
１０３  第２認証メッセージ生成部
１０４  第２認証メッセージ検証部
１０５  接続要求メッセージ生成部
１０６  接続許可メッセージ生成部
１０７  接続手続部
１０８  認証子データ記憶部
１０９  演算器
１１０  通信識別子記憶部
１１１  受信通信識別子
１１２  共通値生成部
２０  メッセージ通信装置
【図１】
2007138876.tif 000003
【図２】
2007138876.tif 000004
【図３】
2007138876.tif 000005
【図４】
2007138876.tif 000006
【図５】
2007138876.tif 000007
【図６】
2007138876.tif 000008
【図７】
2007138876.tif 000009
【図８】
2007138876.tif 000010
【図９】
2007138876.tif 000011
【図１０】
2007138876.tif 000012
【図１１】
2007138876.tif 000013
【図１２】
2007138876.tif 000014
【図１３】
2007138876.tif 000015
【図１４】
2007138876.tif 000016
【図１５】
2007138876.tif 000017
【図１６】
2007138876.tif 000018
【図１７】
2007138876.tif 000019
【図１８】
2007138876.tif 000020
【図１９】
2007138876.tif 000021
【図２０】
2007138876.tif 000022
【手続補正書】
【提出日】平成20年3月28日(2008.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとする通信ノード認証システムであって、
前記着信側通信ノードは、
少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより生成する第１認証メッセージ生成手段と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含み、
前記発信側通信ノードは、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う第１認証メッセージ検証手段と、
前記第１認証メッセージ検証手段による検証結果に基づいて前記第２認証メッセージを生成する第２認証メッセージ生成手段とを含むことを特徴とする通信ノード認証システム。
【請求項２】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証するものである、請求項１に記載の通信ノード認証システム。
【請求項３】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１に記載の通信ノード認証システム。
【請求項４】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものである、請求項１に記載の通信ノード認証システム。
【請求項５】
さらに、接続手続手段を有し、
前記接続手続手段は、
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始するものである、請求項１に記載の通信ノード認証システム。
【請求項６】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する手段とを含む、請求項２又は３に記載の通信ノード認証システム。
【請求項７】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する手段と、
前記連結演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含む、請求項４に記載の通信ノード認証システム。
【請求項８】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記第２通信識別子とする乱数を生成する手段と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する手段とを含む、請求項２又は３に記載の通信ノード認証システム。
【請求項９】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記第１通信識別子とする乱数を生成する手段と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する手段と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する手段とを含む、請求項４に記載の通信ノード認証システム。
【請求項１０】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証するものである、請求項１に記載の通信ノード認証システム。
【請求項１１】
前記発信側通信ノードの前記第２認証メッセージ生成手段は、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証メッセージを生成するものであり、
前記着信側通信ノードの前記第２認証検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第１通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１０に記載の通信ノード認証システム。
【請求項１２】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成するものであり、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証するものであり、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する接続手続手段を有する、請求項１０又は１１に記載の通信ノード認証システム。
【請求項１３】
前記発信側通信ノードの第２認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記着信側通信ノードの前記第２認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する手段とを含む、請求項１０、１１又は１２のいずれか一項に記載の通信ノード認証システム。
【請求項１４】
前記着信側通信ノードの前記第１認証メッセージ生成手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段とを含み、
前記発信側通信ノードの前記第１認証メッセージ検証手段は、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する手段と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する手段と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する手段とを含む、請求項１０、１１又は１２のいずれか一項に記載の通信ノード認証システム。
【請求項１５】
前記第２認証メッセージ生成手段、前記第２認証メッセージ検証手段、前記第１認証メッセージ生成手段及び前記第１認証メッセージ検証手段における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結後のビット長が、請求項１〜９のいずれかに記載の第１通信識別子と第２通信識別子のビット長以上になる条件の下で、第１通信識別子と第２通信識別子のビット長を削減する、請求項１０、１１、１２、１３又は１４のいずれか一項に記載の通信ノード認証システム。
【請求項１６】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶する手段と、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する手段とを含む、請求項１〜７、請求項１０〜１５のいずれか一項に記載の通信ノード認証システム。
【請求項１７】
通信ノード相互間で通信する通信ノード認証装置であって、
少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより生成する第１認証メッセージ生成手段と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含むことを特徴とする通信ノード認証装置。
【請求項１８】
（削除）
【請求項１９】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとする通信ノード認証方法であって、
前記着信側通信ノードにおいて、少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより生成する処理を実行し、
前記発信側通信ノードにおいて、前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う処理と、前記第１認証メッセージの検証結果に基づいて第２認証メッセージを生成する処理とを実行し、
前記着信側通信ノードにおいて、前記発信側通信ノードから送信される第２認証メッセージの検証を行う処理を実行することを特徴とする通信認証方法。
【請求項２０】
前記発信側通信ノードにおいて、前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証する、請求項１９に記載の通信ノード認証方法。
【請求項２１】
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証するものである、請求項１９に記載の通信ノード認証方法。
【請求項２２】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する、請求項１９に記載の通信ノード認証方法。
【請求項２３】
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始する、請求項１９に記載の通信ノード認証方法。
【請求項２４】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する、請求項２０又は２１に記載の通信ノード認証方法。
【請求項２５】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施し、前記連結演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する、請求項２２に記載の通信ノード認証方法。
【請求項２６】
前記発信側通信ノードにおいて、前記第２通信識別子とする乱数を生成し、前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する、請求項２０又は２１記載の通信ノード認証方法。
【請求項２７】
前記着信側通信ノードにおいて、前記第１通信識別子とする乱数を生成し、前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施し、前記排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する、請求項２２に記載の通信ノード認証方法。
【請求項２８】
前記発信側通信ノードにおいて、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成し、
前記着信側通信ノードにおいて、前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証する、請求項１９に記載の通信ノード認証方法。
【請求項２９】
前記発信側通信ノードにおいて、前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第１通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する、請求項２８に記載の通信ノード認証方法。
【請求項３０】
前記着信側通信ノードにおいて、前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証し、
さらに、前記第１認証メッセージ検証手段で正規の第１認証メッセージであることが検証され、かつ、前記第２認証メッセージ検証手段で正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する、請求項２８又は２９に記載の通信ノード認証方法。
【請求項３１】
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する、請求項２８、２９又は３０のいずれか一項に記載の通信ノード認証方法。
【請求項３２】
前記着信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、
前記発信側通信ノードにおいて、前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施し、前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施し、前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する、請求項２８、２９又は３０のいずれか一項に記載の通信ノード認証方法。
【請求項３３】
前記第２認証メッセージの生成処理、前記第２認証メッセージの検証処理、前記第１認証メッセージの生成処理及び前記第１認証メッセージの検証処理における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減する、請求項２８、２９、３０、３１又は３２のいずれか一項に記載の通信ノード認証方法。
【請求項３４】
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する、請求項１９〜２５、請求項２８〜３３のいずれか一項に記載の通信ノード認証方法。
【請求項３５】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとする通信ノード認証プログラムであって、
前記着信側通信ノードを構成するコンピュータに、
前記発信側通信ノードから送信される接続要求メッセージに応答して、少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより生成する機能と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードから送信される前記第１認証メッセージの検証を行う機能と、
前記第１認証メッセージの検証結果に基づいて前記第２認証メッセージを生成する機能とを実行させることを特徴とする通信ノード認証プログラム。
【請求項３６】
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージから抽出した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない情報である第２通信識別子とに基づいて、前記第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記第２認証メッセージから抽出した第２通信識別子と、前記第１認証メッセージを生成する際に用いた第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記第２認証メッセージの検証を行うことで前記発信側通信ノードを認証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３７】
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる、第１認証メッセージを識別するための情報であって前記着信側通信ノードによって生成される予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、前記発信側通信ノードが生成する予測不可能または再現性のない第２通信識別子とに基づいて、第２の検証値及び第２通信識別子を含む第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している、認証子データ及び前記第１認証メッセージに第１通信識別子に基づいて演算した演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３８】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データ、及び前記着信側通信ノードが生成した第１通信識別子に基づいて生成される第１検証値と、第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子、及び前記発信側通信ノードが保持している認証子データに基づいた演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項３９】
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
前記第１認証メッセージが正規のメッセージであることが検証され、かつ、前記第２認証メッセージが正規のメッセージであることが検証された場合にのみ、発信側通信ノード及び着信側通信ノードが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させる、請求項３５に記載の通信ノード認証プログラム。
【請求項４０】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２の検証値とを比較する機能とを実行させる、請求項３８又は３９に記載の通信ノード認証プログラム。
【請求項４１】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、連結演算を実施する機能と、
前記連結演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させる、請求項４０に記載の通信ノード認証プログラム。
【請求項４２】
前記発信側通信ノードを構成するコンピュータに、
前記第２通信識別子とする乱数を生成する機能と、
前記生成された第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージに含まれる第２通信識別子と、前記着信側通信ノードが保持している第１通信識別子及び認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第２認証メッセージに含まれる第２検証値とを比較する機能とを実行させる、請求項３８又は３９に記載の通信ノード認証プログラム。
【請求項４３】
前記着信側通信ノードを構成するコンピュータに、
前記第１通信識別子とする乱数を生成する機能と、
前記生成された第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて、排他的論理和演算を実施する機能と、
前記排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる第１検証値とを比較する機能とを実行させる、請求項４０に記載の通信ノード認証プログラム。
【請求項４４】
前記発信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記発信側通信ノードが保持している認証子データと、第２通信識別子とに基づいて、前記発信側通信ノードを認証するための第２認証メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記第２認証メッセージと、前記発信側通信ノードが送信した予測不可能または再現性のない情報である第２通信識別子と、前記着信側通信ノードが送信した予測不可能または再現性のない情報である第１通信識別子と、前記着信側通信ノードが保持している認証子データとに基づいて、前記発信側通信ノードを認証する機能を実行させる、請求項３７に記載の通信ノード認証プログラム。
【請求項４５】
前記発信側通信ノードを構成するコンピュータに、
前記発信側通信ノードで生成されて前記接続要求メッセージに含まれた予測不可能または再現性のない情報である第２通信識別子と、前記発信側通信ノードが保持している認証子データと、前記着信側通信ノードで生成されて前記第１認証メッセージに含まれた予測不可能または再現性のない第１通信識別子とに基づいて生成される第２検証値を含む第２認証用メッセージを生成する機能を実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している認証子データと、前記着信側通信ノードが生成して保持している第１通信識別子とに基づいて演算された演算結果と、前記第２認証メッセージに含まれる前記第２検証値とを比較することによって、前記第１認証メッセージに対応して生成され、かつ、前記着信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第２認証メッセージであることを検証する機能を実行させる、請求項４４に記載の通信ノード認証プログラム。
【請求項４６】
前記着信側通信ノードを構成するコンピュータに、
前記着信側通信ノードが保持している認証子データと、前記接続要求メッセージに含まれる第２通信識別子とに基づいて生成される第１検証値と、前記着信側通信ノードが生成して保持する第１通信識別子とを含む第１認証メッセージを生成する機能を実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる第２通信識別子と、前記第１認証メッセージに含まれる第１通信識別子と、前記発信側通信ノードが保持している認証子データとに基づいて演算される演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較することによって、前記発信側通信ノードが保持している認証子データと同一の認証子データから生成された正規の第１認証メッセージであることを検証する機能を実行させ、
前記着信側通信ノード及び前記発信側通信ノードをそれぞれ構成するコンピュータに、
正規の第１認証メッセージであることが検証され、かつ、正規の第２認証メッセージであることが検証された場合にのみ、前記発信側通信ノードと前記着信側通信ノードとが互いに同一の認証子データを保持していると判断し、相互接続を開始する機能を実行させる、請求項４４又は４５に記載の通信ノード認証プログラム。
【請求項４７】
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第２通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記着信側通信ノードが保持している前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と前記第２認証メッセージに含まれる前記第２検証値とを比較する機能とを実行させる、請求項４６、４７又は４８のいずれか一項に記載の通信ノード認証プログラム。
【請求項４８】
前記着信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記着信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能とを実行させ、
前記発信側通信ノードを構成するコンピュータに、
前記接続要求メッセージに含まれる前記第２通信識別子と、前記第１認証メッセージに含まれる前記第１通信識別子との連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果と、前記発信側通信ノードが保持している認証子データとの連結演算または排他的論理和演算を実施する機能と、
前記連結演算または排他的論理和演算の演算結果に対しハッシュ演算を実施する機能と、
前記ハッシュ演算の演算結果と、前記第１認証メッセージに含まれる前記第１検証値とを比較する機能とを実行させる、請求項４６、４７又は４８のいずれか一項に記載の通信ノード認証プログラム。
【請求項４９】
前記第２認証メッセージの生成、前記第２認証メッセージの検証、前記第１認証メッセージの生成及び前記第１認証メッセージの検証における第１の通信識別子と第２の通信識別子とを連結演算において連結する場合、連結前の前記第１通信識別子あるいは前記第２通信識別子のビット長以上になる条件の下で、連結したデータ列のビット長を削減する、請求項４６、４７、４８、４９又は５０のいずれか一項に記載の通信ノード認証プログラム。
【請求項５０】
前記コンピュータに、
認証相手の一方の通信ノードから認証手続きの際に受信した第１通信識別子または第２通信識別子を受信通信識別子として記憶し、
他方の通信ノードが認証手続きの際に生成した第１通信識別子または第２通信識別子と、認証子データと、前記受信識別子とに基づいて、認証手続き完了後の暗号化通信に用いる暗号化鍵を生成する機能を実行させる、請求項３７〜４３、請求項４６〜５１のいずれか一項に記載の通信ノード認証プログラム。
【請求項５１】
通信ノード相互間で通信し認証を行う通信ノード認証装置を構成するコンピュータに、
発信側となる通信ノードから送信される接続要求メッセージに応答して、少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより第１認証メッセージを生成する機能と、
前記発信側となる通信ノードから送信される第２認証メッセージの検証を行う機能とを実行させることを特徴とする通信ノード認証プログラム。
【請求項５２】
（削除）
【請求項５３】
相互に通信を行う一方を発信側通信ノードとし、他方を着信側通信ノードとする通信ノード認証システムであって、
前記着信側通信ノードは、
少なくとも第１通信識別子と第１検証値を含む第１認証メッセージを生成し、前記第１検証値を、少なくとも前記第１通信識別子と認証子データを複数の演算方式の中から少なくとも１以上の演算方式を選択し演算した値をハッシュ演算することにより生成する第１認証メッセージ生成手段と、
前記発信側通信ノードから送信される第２認証メッセージの検証を行う第２認証メッセージ検証手段とを含むことを特徴とする通信ノード認証システム。
【国際調査報告】
2007138876.tif 000023
2007138876.tif 000024
2007138876.tif 000025
2007138876.tif 000026