(57)【要約】【課題】  署名を算出する時間を短縮するとともに、メッセージの正規化を必要としない構造化文書について認証する認証方法を提供する。【解決手段】  被認証機器１０は、少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文書を受信する工程Ａと、所定のルールで、工程Ａにおいて受信した構造化文書に含まれる属性について並び替えを行う工程Ｂと、工程Ｂにおいて並び替えた順序で属性の値である属性値を連結する工程Ｃと、前記工程Ｃにおいて連結した属性値を所定のハッシュ関数に入力することによって署名を算出する工程Ｄと、工程Ｄにおいて算出した署名を構造化文書に付加して認証機器に送信する工程Ｅとを有する。【選択図】  図８
2006101284.tif 000002
【特許請求の範囲】
【請求項１】
認証機器が、被認証機器から送信された構造化文書について認証する認証方法であって
、
前記被認証機器が、少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文
書を生成する工程Ａと、
前記被認証機器が、所定のルールで、前記工程Ａにおいて生成した前記構造化文書に含
まれる前記属性について並び替えを行う工程Ｂと、
前記被認証機器が、前記工程Ｂにおいて並び替えた順序で、前記属性の値である属性値
を連結する工程Ｃと、
前記被認証機器が、前記工程Ｃにおいて連結した前記属性値を所定のハッシュ関数に入
力することによって署名を算出する工程Ｄと、
前記被認証機器が、前記工程Ｄにおいて算出した前記署名を前記構造化文書に付加して
前記認証機器に送信する工程Ｅと、
前記認証機器が、前記所定のルールで、前記被認証機器から送信された前記構造化文書
に含まれる前記属性について並び替えを行う工程Ｆと、
前記認証機器が、前記工程Ｆにおいて並び替えた順序で、前記属性の値である属性値を
連結する工程Ｇと、
前記認証機器が、前記工程Ｇにおいて連結した前記属性値を前記所定のハッシュ関数に
入力することによって署名を算出する工程Ｈと、
前記認証機器が、前記被認証機器から送信された前記構造化文書に付加されている署名
を取得する工程Ｉと、
前記認証機器が、前記工程Ｈにおいて算出した前記署名と前記工程Ｉにおいて取得した
前記署名とを比較する工程Ｊと、
前記認証機器が、前記工程Ｊにおける比較結果に基づいて、前記被認証機器から送信さ
れた前記構造化文書が正当な文書であるか否かについて判断する工程Ｋとを有することを
特徴とする認証方法。
【請求項２】
前記工程Ｄにおいて、前記被認証機器は、前記工程Ｃにおいて連結した前記属性値と前
記認証機器との間の共通鍵とを連結して前記所定のハッシュ関数に入力することによって
前記署名を算出し、
前記工程Ｈにおいて、前記認証機器は、前記工程Ｇにおいて連結した前記属性値と前記
共通鍵とを連結して前記所定のハッシュ関数に入力することによって前記署名を算出する
ことを特徴とする請求項１に記載の認証方法。
【請求項３】
前記工程Ｂにおいて、前記被認証機器は、前記工程Ａにおいて生成した前記構造化文書
に含まれる前記属性について、該属性の識別子のアルファベット順に並び替えを行い、
前記工程Ｄにおいて、前記認証機器は、前記被認証機器から送信された前記構造化文書
に含まれる前記属性について、該属性の識別子のアルファベット順に並び替えを行うこと
を特徴とする請求項１に記載の認証方法。
【請求項４】
前記工程Ｄにおいて、前記被認証機器は、前記工程Ｃにおいて連結した前記属性値と前
記被認証機器によって管理されているシーケンス番号とを連結して前記所定のハッシュ関
数に入力することによって前記署名を算出し、
前記工程Ｈにおいて、前記認証機器は、前記工程Ｇにおいて連結した前記属性値と前記
シーケンス番号とを連結して前記所定のハッシュ関数に入力することによって前記署名を
算出することを特徴とする請求項１に記載の認証方法。
【請求項５】
前記工程Ｄにおいて、前記被認証機器は、前記工程Ｃにおいて連結した前記属性値と該
被認証機器の識別子とを連結して前記所定のハッシュ関数に入力することによって前記署
名を算出し、
前記工程Ｈにおいて、前記認証機器は、前記工程Ｇにおいて連結した前記属性値と前記
被認証機器の識別子とを連結して前記所定のハッシュ関数に入力することによって前記署
名を算出することを特徴とする請求項１に記載の認証方法。
【請求項６】
前記工程Ｂにおいて、前記被認証機器は、所定の要素に含まれている属性についてのみ
並び替えを行い、
前記工程Ｃにおいて、前記被認証機器は、前記工程Ｂにおいて並び替えた順序で、前記
所定の要素に含まれている前記属性の値である属性値のみを連結し、
前記工程Ｆにおいて、前記認証機器は、前記所定の要素に含まれている属性についての
み並び替えを行い、
前記工程Ｇにおいて、前記認証機器は、前記工程Ｆにおいて並び替えた順序で、前記所
定の要素に含まれている前記属性の値である属性値のみを連結することを特徴とする請求
項１に記載の認証方法。
【請求項７】
少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文書を生成する生成部
と、
所定のルールで、前記生成部によって生成された前記構造化文書に含まれる前記属性に
ついて並び替えを行う並び替え部と、
前記並び替え部によって並び替えられた順序で、前記属性の値である属性値を連結する
連結部と、
前記連結部によって連結された前記属性値を所定のハッシュ関数に入力することによっ
て署名を算出する署名算出部と、
前記署名算出部によって算出された前記署名を前記構造化文書に付加する署名付加部と
、
前記署名付加部によって前記署名が付加された前記構造化文書を認証機器に対して送信
する送信部とを具備することを特徴とする被認証機器。
【請求項８】
前記署名算出部は、前記連結部により連結された前記属性値と前記認証機器との間の共
通鍵とを連結して前記所定のハッシュ関数に入力することによって前記署名を算出するこ
とを特徴とする請求項７に記載の被認証機器。
【請求項９】
前記並び替え部は、前記生成部によって生成された前記構造化文書に含まれる前記属性
について、該属性の識別子のアルファベット順に並び替えを行うことを特徴とする請求項
７に記載の被認証機器。
【請求項１０】
前記署名算出部は、前記連結部によって連結された前記属性値と前記被認証機器によっ
て管理されているシーケンス番号とを連結して前記所定のハッシュ関数に入力することに
よって前記署名を算出することを特徴とする請求項７に記載の被認証機器。
【請求項１１】
前記署名算出部は、前記連結部によって連結された前記属性値と該被認証機器の識別子
とを連結して前記所定のハッシュ関数に入力することによって前記署名を算出することを
特徴とする請求項７に記載の被認証機器。
【請求項１２】
前記並び替え部は、所定の要素に含まれている属性についてのみ並び替えを行い、
前記連結部は、前記並び替え部によって並び替えられた順序で、前記所定の要素に含ま
れる前記属性の値である属性値のみを連結することを特徴とする請求項７に記載の被認証
機器。
【請求項１３】
被認証機器から、少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文書
を受信する受信部と、
所定のルールで、前記受信部によって受信された前記構造化文書に含まれる属性につい
て並び替えを行う並び替え部と、
前記並び替え部によって並び替えられた順序で、前記属性の値である属性値を連結する
連結部と、
前記連結部によって連結された前記属性値を前記所定のハッシュ関数に入力することに
よって署名を算出する署名算出部と、
前記受信部によって受信された前記構造化文書に付加されている署名を取得する署名取
得部と、
前記署名算出部によって算出された前記署名と前記署名取得部によって取得された前記
署名とを比較する署名比較部と、
前記署名比較部による比較結果に基づいて、前記被認証機器から送信された前記構造化
文書が正当な文書であるか否かについて判断する判断部とを具備することを特徴とする認
証機器。
【請求項１４】
前記署名算出部は、前記連結部によって連結された前記属性値と前記被認証機器との間
の共通鍵とを連結して前記所定のハッシュ関数に入力することによって前記署名を算出す
ることを特徴とする請求項１３に記載の認証機器。
【請求項１５】
前記並び替え部は、前記受信部によって受信された前記構造化文書に含まれる前記属性
について、該属性の識別子のアルファベット順に並び替えを行うことを特徴とする請求項
１３に記載の認証機器。
【請求項１６】
前記署名算出部は、前記連結部によって連結された前記属性値と前記被認証機器によっ
て管理されているシーケンス番号とを連結して前記所定のハッシュ関数に入力することに
よって前記署名を算出することを特徴とする請求項１３に記載の認証機器。
【請求項１７】
前記署名算出部は、前記連結部によって連結された前記属性値と前記被認証機器の識別
子とを連結して前記所定のハッシュ関数に入力することによって前記署名を算出すること
を特徴とする請求項１３に記載の認証機器。
【請求項１８】
前記並び替え部は、所定の要素に含まれている属性についてのみ並び替えを行い、
前記連結部は、前記並び替え部によって並び替えられた順序で、前記所定の要素に含ま
れる前記属性の値である属性値のみを連結することを特徴とする請求項１３に記載の認証
機器。
【請求項１９】
コンピュータに、
少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文書を生成する工程Ａ
と、
所定のルールで、前記工程Ａにおいて生成した前記構造化文書に含まれる前記属性につ
いて並び替えを行う工程Ｂと、
前記工程Ｂにおいて並び替えた順序で、前記属性の値である属性値を連結する工程Ｃと
、
前記工程Ｃにおいて連結した前記属性値を所定のハッシュ関数に入力することによって
署名を算出する工程Ｄと、
前記工程Ｄにおいて算出した前記署名を前記構造化文書に付加して認証機器に送信する
工程Ｅとを実行させるためのプログラム。
【請求項２０】
コンピュータに、
被認証機器から、少なくとも１つの属性を含む少なくとも１つの要素を含む構造化文書
を受信する工程Ａと、
所定のルールで、前記工程Ａにおいて受信した前記構造化文書に含まれる前記属性につ
いて並び替えを行う工程Ｂと、
前記工程Ｂにおいて並び替えた順序で、前記属性の値である属性値を連結する工程Ｃと
、
前記工程Ｃにおいて連結した前記属性値を前記所定のハッシュ関数に入力することによ
って署名を算出する工程Ｄと、
前記工程Ａにおいて受信した前記構造化文書に付加されている署名を取得する工程Ｅと
、
前記工程Ｄにおいて算出した前記署名と前記工程Ｅにおいて取得した前記署名とを比較
する工程Ｆと、
前記工程Ｆにおける比較結果に基づいて、前記被認証機器から送信された前記構造化文
書が正当な文書であるか否かについて判断する工程Ｇとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証機器が被認証機器から送信された構造化文書について認証する認証方法
、及び、かかる認証方法に用いられる認証機器、被認証機器及びプログラムに関する。
【背景技術】
【０００２】
一般的に、ネットワークに接続された複数の機器間で通信を行う場合、受信機器（認証
機器）が送信機器（被認証機器）から送信されたメッセージを認証する必要がある。
【０００３】
従来の認証方法では、送信機器が、受信機器との間の共通鍵（検証鍵）を用いて署名を
生成し、生成した署名をメッセージに付加して送信しており、当該受信機器が、受信した
メッセージに付加されている署名に基づいて当該メッセージの正当性について確認してい
る。
【非特許文献１】「Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）  １.０（Ｔｈｉｒｄ  Ｅｄｉｔｉｏｎ）」、２００４年２月４日、Ｗ３Ｃ勧告、インターネット＜ＵＲＬ：http://www.w3.org/TR/2004/REC-xml-20040204＞
【非特許文献２】「Ｃａｎｏｎｉｃａｌ  ＸＭＬ  Ｖｅｒｓｉｏｎ  １.０」、２００１年３月１５日、Ｗ３Ｃ勧告、インターネット＜ＵＲＬ：http://www.w3.org/TR/xml-c14n＞
【特許文献１】特開２００１-４２７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来の認証方法では、送信機器（及び、受信機器）が、メ
ッセージ全体を所定のハッシュ関数に入力することによって上述の署名を算出していたた
め、メッセージが長い場合、かかる署名を算出するのに長い時間が必要になってしまうと
いう問題点があった。
【０００５】
また、従来の認証方法では、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇ
ｕａｇｅ）文書等の構造化文書がメッセージとして用いられている場合、ＸＭＬの規格上
、属性の順序の違いが認められているため、同じメッセージでも異なる形式で取り扱われ
ることにより、各機器によって算出される署名が異なってしまう可能性があるため、必ず
メッセージの正規化が必要であるという問題点があった。
【０００６】
そこで、本発明は、以上の点に鑑みてなされたもので、署名を算出する時間を短縮する
とともに、メッセージの正規化を必要としない構造化文書についての認証方法、及び、か
かる認証方法に用いられる認証機器、被認証機器及びプログラムを提供することを目的と
する。
【課題を解決するための手段】
【０００７】
本発明の第１の特徴は、認証機器が、被認証機器から送信された構造化文書について認
証する認証方法であって、前記被認証機器が、少なくとも１つの属性を含む少なくとも１
つの要素を含む構造化文書を生成する工程Ａと、前記被認証機器が、所定のルールで、前
記工程Ａにおいて生成した前記構造化文書に含まれる前記属性について並び替えを行う工
程Ｂと、前記被認証機器が、前記工程Ｂにおいて並び替えた順序で、前記属性の値である
属性値を連結する工程Ｃと、前記被認証機器が、前記工程Ｃにおいて連結した前記属性値
を所定のハッシュ関数に入力することによって署名を算出する工程Ｄと、前記被認証機器
が、前記工程Ｄにおいて算出した前記署名を前記構造化文書に付加して前記認証機器に送
信する工程Ｅと、前記認証機器が、前記所定のルールで、前記被認証機器から送信された
前記構造化文書に含まれる前記属性について並び替えを行う工程Ｆと、前記認証機器が、
前記工程Ｆにおいて並び替えた順序で、前記属性の値である属性値を連結する工程Ｇと、
前記認証機器が、前記工程Ｇにおいて連結した前記属性値を前記所定のハッシュ関数に入
力することによって署名を算出する工程Ｈと、前記認証機器が、前記被認証機器から送信
された前記構造化文書に付加されている署名を取得する工程Ｉと、前記認証機器が、前記
工程Ｈにおいて算出した前記署名と前記工程Ｉにおいて取得した前記署名とを比較する工
程Ｊと、前記認証機器が、前記工程Ｊにおける比較結果に基づいて、前記被認証機器から
送信された前記構造化文書が正当な文書であるか否かについて判断する工程Ｋとを有する
ことを要旨とする。
【０００８】
かかる発明によれば、被認証機器及び認証機器は、送信される構造化文書が長い場合で
あっても、当該構造化文書に含まれる属性の値である属性値のみに基づいて署名を算出す
ることができるため、署名を算出する時間を短縮することができ、当該構造化文書につい
ての認証に掛かる時間を短縮することができる。
【０００９】
本発明の第１の特徴において、前記工程Ｄで、前記被認証機器が、前記工程Ｃにおいて
連結した前記属性値と前記認証機器との間の共通鍵とを連結して前記所定のハッシュ関数
に入力することによって前記署名を算出し、前記工程Ｈで、前記認証機器が、前記工程Ｇ
において連結した前記属性値と前記共通鍵とを連結して前記所定のハッシュ関数に入力す
ることによって前記署名を算出してもよい。
【００１０】
かかる発明によれば、被認証機器と認証機器との間の共通鍵を用いて署名を算出するた
め、当該共通鍵を有していない第３者によって不正な署名が付加された構造化文書を検出
することができる。
【００１１】
本発明の第１の特徴において、前記工程Ｂで、前記被認証機器が、前記工程Ａにおいて
生成した前記構造化文書に含まれる前記属性について、該属性の識別子のアルファベット
順に並び替えを行い、前記工程Ｄで、前記認証機器が、前記被認証機器から送信された前
記構造化文書に含まれる前記属性について、該属性の識別子のアルファベット順に並び替
えを行ってもよい。
【００１２】
かかる発明によれば、被認証機器及び認証機器は、各属性の識別子のアルファベット順
に各属性を並び替えるため、署名を算出するにあたって連結する属性値の順序が一意に決
まり、構造化文書の正規化を行わなくても、被認証機器及び認証機器において構造化文書
に付加される署名が異なる可能性があるという不具合を解決することができる。
【００１３】
本発明の第１の特徴において、前記工程Ｄで、前記被認証機器が、前記工程Ｃにおいて
連結した前記属性値と前記被認証機器によって管理されているシーケンス番号とを連結し
て前記所定のハッシュ関数に入力することによって前記署名を算出し、前記工程Ｈで、前
記認証機器が、前記工程Ｇにおいて連結した前記属性値と前記シーケンス番号とを連結し
て前記所定のハッシュ関数に入力することによって前記署名を算出してもよい。
【００１４】
かかる発明によれば、被認証機器及び認証機器は、当該被認証機器（送信側）で管理さ
れているシーケンス番号を用いて署名を算出するため、第３者が、当該被認証機器から送
信された構造化文書を不正に取得して、取得した構造化文書を当該認証機器に送信した場
合であっても、かかるシーケンス番号を参照することによって当該構造化文書が正当な文
書ではないと判断することができる。
【００１５】
本発明の第１の特徴において、前記工程Ｄで、前記被認証機器が、前記工程Ｃにおいて
連結した前記属性値と該被認証機器の識別子とを連結して前記所定のハッシュ関数に入力
することによって前記署名を算出し、前記工程Ｈで、前記認証機器が、前記工程Ｇにおい
て連結した前記属性値と前記被認証機器の識別子とを連結して前記所定のハッシュ関数に
入力することによって前記署名を算出してもよい。
【００１６】
かかる発明によれば、被認証機器の識別子を用いて署名を算出することによって、被認
証機器と認証機器との間で、同一の構造化文書に対して算出する署名が同一になることを
考慮して、受信した構造化文書をそのまま使用するといった事態を回避し、認証方法にお
ける不測の事態の発生を回避することができる。
【００１７】
本発明の第１の特徴において、前記工程Ｂで、前記被認証機器が、所定の要素に含まれ
ている属性についてのみ並び替えを行い、前記工程Ｃで、前記被認証機器が、前記工程Ｂ
において並び替えた順序で、前記所定の要素に含まれている前記属性の値である属性値の
みを連結し、前記工程Ｆで、前記認証機器が、前記所定の要素に含まれている属性につい
てのみ並び替えを行い、前記工程Ｇで、前記認証機器は、前記工程Ｆにおいて並び替えた
順序で、前記所定の要素に含まれている前記属性の値である属性値のみを連結してもよい
。
【００１８】
かかる発明によれば、重要な要素に含まれている属性の値である属性値のみを用いて署
名を算出するため、署名の算出に掛かる時間をより短縮することができる。
【００１９】
本発明の第２の特徴は、少なくとも１つの属性を含む少なくとも１つの要素を含む構造
化文書を生成する生成部と、所定のルールで、前記生成部によって生成された前記構造化
文書に含まれる前記属性について並び替えを行う並び替え部と、前記並び替え部によって
並び替えられた順序で、前記属性の値である属性値を連結する連結部と、前記連結部によ
って連結された前記属性値を所定のハッシュ関数に入力することによって署名を算出する
署名算出部と、前記署名算出部によって算出された前記署名を前記構造化文書に付加する
署名付加部と、前記署名付加部によって前記署名が付加された前記構造化文書を認証機器
に対して送信する送信部とを具備する被認証機器であることを要旨とする。
【００２０】
本発明の第３の特徴は、被認証機器から、少なくとも１つの属性を含む少なくとも１つ
の要素を含む構造化文書を受信する受信部と、所定のルールで、前記受信部によって受信
された前記構造化文書に含まれる属性について並び替えを行う並び替え部と、前記並び替
え部によって並び替えられた順序で、前記属性の値である属性値を連結する連結部と、前
記連結部によって連結された前記属性値を前記所定のハッシュ関数に入力することによっ
て署名を算出する署名算出部と、前記受信部によって受信された前記構造化文書に付加さ
れている署名を取得する署名取得部と、前記署名算出部によって算出された前記署名と前
記署名取得部によって取得された前記署名とを比較する署名比較部と、前記署名比較部に
よる比較結果に基づいて、前記被認証機器から送信された前記構造化文書が正当な文書で
あるか否かについて判断する判断部とを具備する認証機器であることを要旨とする。
【００２１】
本発明の第４の特徴は、コンピュータに、少なくとも１つの属性を含む少なくとも１つ
の要素を含む構造化文書を生成する工程Ａと、所定のルールで、前記工程Ａにおいて生成
した前記構造化文書に含まれる前記属性について並び替えを行う工程Ｂと、前記工程Ｂに
おいて並び替えた順序で、前記属性の値である属性値を連結する工程Ｃと、前記工程Ｃに
おいて連結した前記属性値を所定のハッシュ関数に入力することによって署名を算出する
工程Ｄと、前記工程Ｄにおいて算出した前記署名を前記構造化文書に付加して認証機器に
送信する工程Ｅとを実行させるためのプログラムであることを要旨とする。
【００２２】
本発明の第５の特徴は、コンピュータに、被認証機器から、少なくとも１つの属性を含
む少なくとも１つの要素を含む構造化文書を受信する工程Ａと、所定のルールで、前記工
程Ａにおいて受信した前記構造化文書に含まれる前記属性について並び替えを行う工程Ｂ
と、前記工程Ｂにおいて並び替えた順序で、前記属性の値である属性値を連結する工程Ｃ
と、前記工程Ｃにおいて連結した前記属性値を前記所定のハッシュ関数に入力することに
よって署名を算出する工程Ｄと、前記工程Ａにおいて受信した前記構造化文書に付加され
ている署名を取得する工程Ｅと、前記工程Ｄにおいて算出した前記署名と前記工程Ｅにお
いて取得した前記署名とを比較する工程Ｆと、前記工程Ｆにおける比較結果に基づいて、
前記被認証機器から送信された前記構造化文書が正当な文書であるか否かについて判断す
る工程Ｇとを実行させるためのプログラムであることを要旨とする。
【発明の効果】
【００２３】
以上説明したように、本発明によれば、署名を算出する時間を短縮するとともに、メッ
セージの正規化を必要としない構造化文書についての認証方法、及び、かかる認証方法に
用いられる認証機器、被認証機器及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
（本発明の第１の実施形態に係る認証システムの構成）
図１乃至図３を参照して、本発明の第１の実施形態に係る認証システムの構成について
説明する。本実施形態に係る認証システムでは、認証機器３０が、ネットワークを介して
被認証機器１０から送信された署名付きメッセージ１について認証するように構成されて
いる。
【００２５】
なお、本実施形態では、メッセージとして、ＸＭＬ文書等の構造化文書を用いるものと
して説明する。
【００２６】
図２に、本実施形態に係る認証システムにおける被認証機器１０の主な機能を示し、図
３に、本実施形態に係る認証システムにおける認証機器３０の主な機能を示す。
【００２７】
図２に示すように、被認証機器１０は、制御部１０１と、メッセージ生成部１０２と、
演算部分取得部１０３と、公開鍵記憶部１０４と、乱数生成部１０５と、秘密鍵記憶部１
０６と、乱数取得部１０７と、公開鍵取得部１０８と、検証鍵生成部１１０と、検証鍵記
憶部１１１と、検証鍵取得部１１２と、署名算出部１１３と、署名付加部１１４と、送信
部１１５と、受信部１１６とを具備している。
【００２８】
制御部１０１は、被認証機器１０の各機能を制御するものである。
【００２９】
メッセージ生成部１０２は、ネットワークを介して認証機器１０に送信するメッセージ
を生成するものである。
【００３０】
生成されたメッセージについて認証が不要である場合、メッセージ生成部１０２は、送
信部１１５に対して、当該メッセージを認証機器３０に送信するように依頼する。また、
生成されたメッセージについて認証が必要である場合、メッセージ生成部１０２は、演算
部分取得部１０３に対して署名の算出を依頼すると共に、署名付加部１１４に対して当該
メッセージを送信する。
【００３１】
ここで、メッセージ生成部１０２によって生成されたメッセージは、少なくとも１つの
要素（例えば、「ｈｃｓｐ」や「ａｕｔｈ」や「ａｃｔｉｏｎ」等）を含むように構成さ
れており、各要素は、少なくとも１つの属性（例えば、「ｈｃｓｐ」の場合、「ｘｍｌｎ
ｓ」や「ｔｏ」や「ｆｒｏｍ」等）を含むように構成されている（図９参照）。
【００３２】
なお、メッセージ生成部１０２は、必要に応じて、送信部１１５に対して、公開鍵記憶
部１０４から送信された被認証機器１０の公開鍵や乱数生成部１０５から送信された被認
証機器１０の乱数を送信するように依頼する。
【００３３】
演算部分取得部１０３は、メッセージ生成部１０２からの依頼に応じて、生成されたメ
ッセージから、署名の算出に使用する文字列を取得して、署名算出部１１３に対して署名
の算出を依頼するものである。
【００３４】
具体的には、演算部分取得部１０３は、生成されたメッセージから、認証が必要とされ
ている所定の要素に含まれている属性を取得して、署名算出部１１３に対して署名の算出
を依頼する。なお、演算部分取得部１０３は、各要素について認証が必要であるか否かに
ついて管理しているものとする（図１０参照）。
【００３５】
公開鍵記憶部１０４は、被認証機器１０の公開鍵を記憶するものである。公開鍵記憶部
１０４は、必要に応じて、被認証機器１０の公開鍵をメッセージ生成部１０２に送信する
。
【００３６】
乱数生成部１０５は、検証鍵（認証機器３０との間の共通鍵）を生成するために用いら
れる被認証機器１０の乱数を生成するものである。乱数生成部１０５は、必要に応じて、
被認証機器１０の乱数をメッセージ生成部１０２及び検証鍵生成部１１０に送信する。
【００３７】
秘密鍵記憶部１０６は、被認証機器１０の秘密鍵を記憶するものである。秘密鍵記憶部
１０６は、必要に応じて、被認証機器１０の秘密鍵を検証鍵生成部１１０に送信する。
【００３８】
乱数取得部１０７は、受信部１１６を介して認証機器３０から受信した認証機器３０の
乱数を取得して検証鍵生成部１１０に送信するものである。
【００３９】
公開鍵取得部１０８は、受信部１１６を介して認証機器３０から受信した認証機器３０
の公開鍵を取得して検証鍵生成部１１０に送信するものである。
【００４０】
検証鍵生成部１１０は、被認証機器１０の秘密鍵及び乱数と認証機器３０の公開鍵及び
乱数とを用いて、検証鍵を生成するものである。なお、検証鍵生成部１１０は、任意の検
証鍵生成方法を用いて、認証機器３０の検証鍵生成部３１０（後述）によって生成される
検証鍵と同一の検証鍵を生成するように構成されている。
【００４１】
検証鍵記憶部１１１は、検証鍵生成部１１０によって生成された検証鍵を記憶するもの
である。検証鍵記憶部１１１は、必要に応じて、検証鍵取得部１１２に送信する。
【００４２】
検証鍵取得部１１２は、検証鍵記憶部１１１から取得した検証鍵を署名算出部１１３に
送信するものである。
【００４３】
署名算出部１１３は、演出部分取得部１０３からの依頼に応じて、署名を算出するもの
である。
【００４４】
具体的には、第１に、署名算出部１１３は、演出部分取得部１０３から送信された属性
について、所定のルールで（例えば、属性の識別子のアルファベット順に）並び替えを行
う。第２に、署名算出部１１３は、並び替えられた順序で、属性の値である属性値を連結
する。第３に、署名算出部１１３は、連結した文字列を所定のハッシュ関数に入力するこ
とによって署名を算出する。
【００４５】
なお、署名算出部１１３は、連結された属性値と、検証鍵取得部１１２から送信された
検証鍵と、被認証機器１０によって管理されているシーケンス番号と、被認証機器１０の
識別子（単に、被認証機器１０が、クライアント端末であるか、又は、サーバ端末である
かについて識別するためのクライアントサーバ識別子であってもよい）を連結するように
構成されていてもよい。
【００４６】
署名付加部１１４は、署名算出部１１３によって算出された署名を、メッセージ生成部
１０２によって生成されたメッセージに付加するものである。
【００４７】
送信部１１５は、署名付加部１１４からの依頼に応じて、署名が付加されたメッセージ
（署名付きメッセージ）１を認証機器３０に対して送信するものである。また、送信部１
１５は、メッセージ生成部１０２からの依頼に応じて、署名が付加されていないメッセー
ジを認証機器３０に対して送信する。なお、送信部１１５は、必要に応じて、メッセージ
生成部１０２から送信された被認証機器１０の公開鍵や乱数を認証機器３０に送信する。
【００４８】
受信部１１６は、認証機器３０から、認証機器３０の公開鍵及び乱数を受信するもので
ある。受信部１１６は、受信した認証機器３０の公開鍵を公開鍵取得部１０８に送信し、
受信した認証機器３０の乱数を乱数取得部１０７に送信する。
【００４９】
図３に示すように、認証機器３０は、制御部３０１と、演算部分取得部３０３と、公開
鍵記憶部３０４と、乱数生成部３０５と、秘密鍵記憶部３０６と、乱数取得部３０７と、
公開鍵取得部３０８と、署名取得部３０９と、検証鍵生成部３１０と、検証鍵記憶部３１
１と、検証鍵取得部３１２と、署名算出部３１３と、送信部３１５と、受信部３１６と、
受信処理部３１７と、署名比較部３１８とを具備している。
【００５０】
制御部３０１は、認証機器３０の各機能を制御するものである。
【００５１】
演算部分取得部３０３は、受信処理部３１７からの依頼に応じて、受信したメッセージ
から、署名の算出に使用する文字列を取得して、署名算出部３１３に対して署名の算出を
依頼するものである。
【００５２】
具体的には、演算部分取得部３０３は、受信処理部３１７から送信されたメッセージか
ら、認証が必要とされている所定の要素に含まれている属性を取得して、署名算出部３１
３に対して署名の算出を依頼する。なお、演算部分取得部３０３は、各要素について認証
が必要であるか否かについて管理しているものとする（図１０参照）。
【００５３】
公開鍵記憶部３０４は、認証機器３０の公開鍵を記憶するものである。公開鍵記憶部３
０４は、必要に応じて、認証機器３０の公開鍵を送信部３１５に送信する。
【００５４】
乱数生成部３０５は、検証鍵を生成するために用いられる認証機器３０の乱数を生成す
るものである。乱数生成部３０５は、必要に応じて、認証機器３０の乱数を送信部３１５
及び検証鍵生成部３１０に送信する。
【００５５】
秘密鍵記憶部３０６は、認証機器３０の秘密鍵を記憶するものである。秘密鍵記憶部３
０６は、必要に応じて、認証機器３０の秘密鍵を検証鍵生成部３１０に送信する。
【００５６】
乱数取得部３０７は、受信部３１６を介して被認証機器１０から受信した被認証機器１
０の乱数を取得して検証鍵生成部３１０に送信するものである。
【００５７】
公開鍵取得部３０８は、受信部３１６を介して被認証機器１０から受信した被認証機器
１０の公開鍵を取得して検証鍵生成部３１０に送信するものである。
【００５８】
検証鍵生成部３１０は、認証機器３０の秘密鍵及び乱数と被認証機器１０の公開鍵及び
乱数とを用いて、検証鍵を生成するものである。なお、検証鍵生成部３１０は、任意の検
証鍵生成方法を用いて、被認証機器１０の検証鍵生成部１１０によって生成される検証鍵
と同一の検証鍵を生成するように構成されている。
【００５９】
検証鍵記憶部３１１は、検証鍵生成部３１０によって生成された検証鍵を記憶するもの
である。検証鍵記憶部３１１は、必要に応じて、検証鍵取得部３１２に送信する。
【００６０】
検証鍵取得部３１２は、検証鍵記憶部３１１から取得した検証鍵を署名算出部３１３に
送信するものである。
【００６１】
署名算出部３１３は、演出部分取得部３０３からの依頼に応じて、署名を算出するもの
である。
【００６２】
具体的には、第１に、署名算出部３１３は、演出部分取得部３０３から送信された属性
について、所定のルールで（例えば、属性の識別子のアルファベット順に）並び替えを行
う。第２に、署名算出部３１３は、並び替えられた順序で、属性の値である属性値を連結
する。第３に、署名算出部３１３は、連結した文字列を所定のハッシュ関数に入力するこ
とによって署名を算出する。
【００６３】
なお、署名算出部３１３は、認証機器１０の署名算出部１１３と同一の方法で署名を算
出するために、連結された属性値と、検証鍵取得部３１２から送信された検証鍵と、被認
証機器１０によって管理されているシーケンス番号と、被認証機器１０の識別子（単に、
被認証機器１０が、クライアント端末であるか、又は、サーバ端末であるかについて識別
するためのクライアントサーバ識別子であってもよい）を連結するように構成されていて
もよい。
【００６４】
送信部３１５は、公開鍵記憶部３０４から送信された認証機器３０の公開鍵や、乱数生
成部３０５から送信された認証機器３０の乱数を、被認証機器１０に送信するものである
。
【００６５】
受信部３１６は、被認証機器１０から、署名付きメッセージや被認証機器１０の公開鍵
及び乱数を受信して、受信処理部３１７に送信するものである。
【００６６】
受信処理部３１７は、受信した被認証機器１０の公開鍵を公開鍵取得部３０８に送信し
、受信した被認証機器１０の乱数を乱数取得部３０７に送信するものである。また、受信
処理部３１７は、受信した署名付きメッセージを解析して、メッセージ全体を演出部分取
得部３０３に送信し、署名を署名取得部３０９に送信する。
【００６７】
署名取得部３０９は、受信処理部３１７から署名を取得して、署名比較部３１８に送信
するものである。
【００６８】
署名比較部３１８は、署名算出部３１３によって算出された署名と署名取得部３０９に
よって取得された署名とを比較して、かかる比較結果に基づいて、被認証機器１０から送
信された署名付きメッセージが正当な文書であるか否かについて判断するものである。
（本発明の第１の実施形態に係る認証方法）
図４乃至図１４を参照して、本発明の第１の実施形態に係る認証方法について説明する
。
【００６９】
図４に示すように、ステップＳ１００１において、認証機器３０の乱数生成部３０５が
、認証機器３０の乱数を生成して送信部３１５に送信し（図５のステップＳ１００１ａ）
、送信部３１５は、公開鍵記憶部３０４から認証機器３０の公開鍵を取得する（図５のス
テップＳ１００１ｂ）。
【００７０】
ステップＳ１００２において、送信部３１５は、取得した認証機器３０の公開鍵及び乱
数を、被認証機器１０に対して送信する。
【００７１】
なお、既に、被認証機器１０が、認証機器３０の公開鍵及び乱数を保持している場合、
ステップＳ１００１及びＳ１００２は、省略可能である。
【００７２】
次に、図６を参照して、上述の認証機器３０の公開鍵及び乱数を受信した被認証機器１
０のステップＳ１００３における動作について詳述する。
【００７３】
図６に示すように、ステップＳ１００３ａにおいて、被認証機器１０の検証鍵生成部１
１０は、認証機器３０の公開鍵及び乱数を取得する。
【００７４】
ステップＳ１００３ｂにおいて、検証鍵生成部１１０は、秘密鍵記憶部１０６から被認
証機器１０の秘密鍵を取得する。
【００７５】
ステップＳ１００３ｃにおいて、検証鍵生成部１１０は、乱数生成部１０５によって生
成された被認証機器１０の乱数を取得する。
【００７６】
ステップＳ１００３ｄにおいて、検証鍵生成部１１０は、認証機器３０の公開鍵及び乱
数と、被認証機器１０の秘密鍵及び乱数とを用いて、認証機器３０との間の共通鍵である
検証鍵を生成する。
【００７７】
ステップＳ１００３ｅにおいて、検証鍵生成部１１０は、生成した検証鍵を検証鍵記憶
部１１１に格納する。
【００７８】
ステップＳ１００３ｆにおいて、メッセージ生成部１０２は、公開鍵記憶部１０４から
、被認証機器１０の公開鍵を取得する。
【００７９】
ステップＳ１００３ｇにおいて、メッセージ生成部１０２は、認証機器３０に送信する
メッセージ（ＸＭＬ文書等の構造化文書）を生成する。
【００８０】
ステップＳ１００３ｈにおいて、署名算出部１１３は、メッセージ生成部１０２によっ
て生成されたメッセージに付加する署名を算出する。かかるステップＳ１００３ｈの動作
について、図８を参照して詳述する。なお、ステップＳ１００３ｈの動作では、図９にお
いて「ｓｉｇｎａｔｕｒｅ」に該当する署名が算出されるものとする。
【００８１】
図８に示すように、ステップＳ２００１において、署名算出部１１３は、所定のルール
で、認証が必要な要素の全ての属性を並び替える。
【００８２】
例えば、図９に示すメッセージの場合、署名算出部１１３は、「ｈｃｓｐ」要素及び「
ａｃｔｉｏｎ」要素に含まれる属性を、属性の識別子（ｈｃｓｐやａｃｔｉｏｎ）のアル
ファベット順に並び替える。図１１のステップＳ２００１に、「ｈｃｓｐ」要素に含まれ
る属性の並び替えの例を示し、図１２のステップＳ２００１に、「ｈｃｓｐ」要素に含ま
れる属性の並び替えの例を示す。
【００８３】
この際、署名算出部１１３は、図１０に示すテーブルを参照して、各要素において認証
が必要であるか否かについて判断する。
【００８４】
なお、上述のアルファベット順は、属性の識別子を構成する文字列についての昇順であ
ってもよいし降順であってもよい。また、上述のアルファベット順では、数字を英字より
も前に来る文字として取り扱ってもよいし、英字を数字よりも前に来る文字として取り扱
ってもよい。
【００８５】
ステップＳ２００２において、署名算出部１１３は、並び替えた順序で、各要素に含ま
れる属性の値である属性値を連結する。
【００８６】
例えば、署名算出部１１３は、図１１のステップＳ２００２に示すように、「ｈｃｓｐ
」要素に含まれる属性の属性値を連結し、図１２のステップＳ２００２に示すように、「
ｈｃｓｐ」要素に含まれる属性の属性値を連結する。
【００８７】
ステップＳ２００３において、署名算出部１１３は、認証が必要な全ての要素について
、上述の属性の並び替え処理及び属性値の連結処理を完了したか否かについて判断する。
完了したと判断された場合、本動作は、ステップＳ２００４に進み、完了していないと判
断された場合、本動作は、全ての要素について上述の属性の並び替え処理及び属性値の連
結処理を完了するまで、ステップＳ２００１及びＳ２００２の処理を繰り返す。
【００８８】
ステップＳ２００４において、署名算出部１１３は、各要素に含まれる属性の属性値を
連結した後、全ての要素に含まれる属性の属性値同士を連結する。
【００８９】
ステップＳ２００５において、署名算出部１１３は、検出鍵と、シーケンス番号と、ク
ライアントサーバ識別子（又は、被認証機器１０の識別子）と、連結された属性値とを連
結する（図１３参照）。
【００９０】
ステップＳ２００６において、署名算出部１１３は、ステップＳ２００５において連結
した文字列を所定のハッシュ関数（図１３の例では「ＳＨＡ-１」）に入力して、署名を
算出する。
【００９１】
次に、図６に示すように、ステップＳ１００３ｉにおいて、署名付加部１１４は、署名
算出部１１３によって算出された署名を、メッセージ生成部１０２から送信されたメッセ
ージに対して付加する（図９参照）。
【００９２】
次に、図４に示すように、ステップＳ１００４において、送信部１１５は、署名付加部
１１４から取得した署名付きメッセージ１を、認証機器３０に送信する。なお、必要に応
じて、送信部１１５は、被認証機器１０の公開鍵及び乱数を、認証機器３０に送信する。
【００９３】
ここで、図１４（ａ）に、エアコンに対するメッセージの一例を示し、図１４（ｂ）に
、玄関ドアに対するメッセージの一例を示す。両メッセージにおいて、「ａｃｔｉｏｎ」
要素については認証が必要であり、「ｑｕｅｒｙ」要素については認証が不要である。
【００９４】
次に、図７を参照して、上述の署名付きメッセージ１（及び、被認証機器１０の公開鍵
及び乱数）を受信した認証機器３０のステップＳ１００５における動作について詳述する
。
【００９５】
図７に示すように、ステップＳ１００５ａにおいて、認証機器３０の受信部３１６は、
被認証機器１０から送信された署名付きメッセージ１を受信する。
【００９６】
ステップＳ１００５ｂにおいて、署名取得部３０９は、受信して署名付きメッセージ１
に付加されている署名を取得する。
【００９７】
ステップＳ１００５ｃにおいて、検証鍵生成部３１０は、被認証機器１０の公開鍵及び
乱数を取得する。
【００９８】
ステップＳ１００５ｄにおいて、検証鍵生成部３１０は、秘密鍵記憶部３０６から認証
機器３０の秘密鍵を取得し、乱数生成部３０５から認証機器３０の乱数を取得する。
【００９９】
ステップＳ１００５ｅにおいて、検証鍵生成部３１０は、被認証機器１０の公開鍵及び
乱数と、認証機器３０の秘密鍵及び乱数とを用いて、被認証機器１０との間の共通鍵であ
る検証鍵を生成する。
【０１００】
ステップＳ１００５ｆにおいて、検証鍵生成部３１０は、生成した検証鍵を検証鍵記憶
部３１１に格納する。
【０１０１】
ステップＳ１００５ｇにおいて、署名算出部３１３は、被認証機器１０におけるステッ
プＳ１００３ｈの処理と同じ方法で、被認証機器１０から送信された署名付きメッセージ
１に対する署名を算出する（図８参照）。
【０１０２】
ステップＳ１００５ｈにおいて、署名比較部３１８は、署名算出部３１３によって算出
された署名と、署名取得部３０９によって取得された署名とが一致するか否かについて判
断する。
【０１０３】
一致すると判断された場合、ステップＳ１００５ｉにおいて、署名比較部３１８は、被
認証機器１０から送信された署名付きメッセージ１が正当なメッセージと判断する。
【０１０４】
一方、一致しないと判断された場合、ステップＳ１００５ｊにおいて、署名比較部３１
８は、被認証機器１０から送信された署名付きメッセージ１が不正なメッセージと判断し
、かかる署名付きメッセージ１を破棄する。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１の実施形態に係る認証システムの全体構成図である。
【図２】本発明の第１の実施形態に係る認証システムにおける被認証機器の機能ブロック図である。
【図３】本発明の第１の実施形態に係る認証システムにおける認証機器の機能ブロック図である。
【図４】本発明の第１の実施形態に係る認証方法を示すシーケンス図である。
【図５】本発明の第１の実施形態に係る認証方法のステップＳ１００１の動作を示すフローチャートである。
【図６】本発明の第１の実施形態に係る認証方法のステップＳ１００３の動作を示すフローチャートである。
【図７】本発明の第１の実施形態に係る認証方法のステップＳ１００５の動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係る認証方法の署名算出動作（ステップＳ１００３ｈ及びＳ１００５ｇ）を示すフローチャートである。
【図９】本発明の第１の実施形態に係る認証方法において、被認証機器から認証機器に送信される署名付きメッセージの一例を示す図である。
【図１０】本発明の第１の実施形態に係る認証方法において、各要素に含まれる属性についての並び替えの要否を設定するテーブルを示す図である。
【図１１】本発明の第１の実施形態に係る認証方法の署名算出動作において、各属性についての並び替え動作（ステップＳ２００１）及び各属性値の連結動作（ステップＳ２００２）の一例を示す図である。
【図１２】本発明の第１の実施形態に係る認証方法の署名算出動作において、各属性についての並び替え動作（ステップＳ２００１）及び各属性値の連結動作（ステップＳ２００２）の一例を示す図である。
【図１３】本発明の第１の実施形態に係る認証方法の署名算出動作において、連結された検証鍵とクライアントサーバ識別子とシーケンス番号と属性値の一例を示す図である。
【図１４】本発明の第１の実施形態に係る認証方法において、被認証機器から認証機器に送信される署名付きメッセージの一例を示す図である。
【符号の説明】
【０１０６】
１…署名付きメッセージ、１０…被認証機器、１０１…制御部、１０２…メッセージ生成
部、１０３…演算部分取得部、１０４…公開鍵記憶部、１０５…乱数生成部、１０６…秘
密鍵記憶部、１０７…乱数取得部、１０８…公開鍵取得部、１１０…検証鍵生成部、１１
１…検証鍵記憶部、１１２…検証鍵取得部、１１３…署名算出部、１１４…署名付加部、
１１５…送信部、１１６…受信部、３０…認証機器、３０１…制御部、３０３…演算部分
取得部、３０４…公開鍵記憶部、３０５…乱数生成部、３０６…秘密鍵記憶部、３０７…
乱数取得部、３０８…公開鍵取得部、３０９…署名取得部、３１０…検証鍵生成部、３１
１…検証鍵記憶部、３１２…検証鍵取得部、３１３…署名算出部、３１５…送信部、３１
６…受信部、３１７…受信処理部、３１８…署名比較部
【図１】
2006101284.tif 000003
【図２】
2006101284.tif 000004
【図３】
2006101284.tif 000005
【図４】
2006101284.tif 000006
【図５】
2006101284.tif 000007
【図６】
2006101284.tif 000008
【図７】
2006101284.tif 000009
【図８】
2006101284.tif 000010
【図９】
2006101284.tif 000011
【図１０】
2006101284.tif 000012
【図１１】
2006101284.tif 000013
【図１２】
2006101284.tif 000014
【図１３】
2006101284.tif 000015
【図１４】
2006101284.tif 000016