(57)【要約】【課題】バイナリ形式のデータをＸＭＬ形式に変換して中継および利用するシステムにおけるデータの真正性の証明／保証を確実、容易にする。【解決手段】データ生成装置１がバイナリ形式のデータにディジタル署名を付加してデータ中継装置２に発信し、データ中継装置はバイナリ形式データをＸＭＬ形式データに変換してデータ利用装置３に発信し、データ利用装置はディジタル署名によってデータの真正性を証明／保証を得る方法において、データ生成装置はバイナリ形式データに対応するＸＭＬ形式データを一時的に生成してこれに対応するディジタル署名を作成してデータ中継装置に発信する。ディジタル署名の作成には、メッセージダイジェストの処理ブロック毎にバイナリ形式データからＸＭＬ形式データを生成し、このブロック毎のＸＭＬ形式データに対応するメッセージダイジェストを作成する。WS-Security仕様の対応も含む。【選択図】  図１
2006157850.tif 000002
【特許請求の範囲】
【請求項１】
データ生成装置はバイナリ形式のデータにディジタル署名を付加してデータ中継装置に発信し、前記データ中継装置は前記バイナリ形式データをＸＭＬ形式データに変換してデータ利用装置に発信し、前記データ利用装置は前記ディジタル署名によって前記ＸＭＬ形式データの真正性を証明／保証を得る方法において、
前記データ生成装置は、前記バイナリ形式データに対応するＸＭＬ形式データを一時的に生成し、このＸＭＬ形式データに対応するディジタル署名を作成し、前記バイナリ形式データと前記ディジタル署名をセットにして前記データ中継装置に発信する過程を有することを特徴とするディジタル署名によるデータの証明／保証方法。
【請求項２】
前記データ生成装置は、前記ディジタル署名の作成過程として、メッセージダイジェストの処理ブロック毎にバイナリ形式データから前記ＸＭＬ形式データを生成し、このブロック毎のＸＭＬ形式データに対応するメッセージダイジェストを作成する処理を繰り返す過程を有することを特徴とする請求項１に記載のディジタル署名によるデータの証明／保証方法。
【請求項３】
前記データ生成装置は、バイナリ形式データからXML形式データを作成および該XML形式データを識別する識別子を作成し、このXML形式データからメッセージダイジェストを計算し、該メッセージダイジェストをBASE64方式でテキスト表現にエンコードし、このメッセージダイジェストテキストと前記識別子を使ってWS-Security仕様に則った署名情報XMLを作成し、この署名情報XMLにデータ生成装置の秘密鍵を使ってディジタル署名を計算し、この署名をバイナリ形式データに付して前記データ中継装置に発信する過程を有し、
前記データ中継装置は、データ生成装置から発信されたバイナリ形式データからXML形式データと署名情報XMLを作成し、該署名情報をBASE64方式でテキスト表現へエンコードし、この署名テキストとXML形式データおよび署名情報XMLからWS-Security署名付きXML形式データを作成する過程を有することを特徴とする請求項１に記載のディジタル署名によるデータの証明／保証方法。
【請求項４】
前記データ生成装置は、データ項目ごとに前記メッセージダイジェストを計算して前記署名情報ＸＭＬを作成する過程を有し、
前記データ中継装置は、データ項目ごとに前記メッセージダイジェストを計算して前記署名情報ＸＭＬを作成する過程を有することを特徴とする請求項３に記載のディジタル署名によるデータの証明／保証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ生成・収集系からデータ利用系へのディジタルデータ送信に、データの真正性を証明／保証するディジタル署名によるデータの証明／保証方法に係り、特にバイナリ形式データからＸＭＬ形式データへのデータ形式変換を行うシステムにおけるデータの証明／保証方法に関する。
【背景技術】
【０００２】
ディジタルデータの真正性を証明／保証できるディジタル署名は、公開鍵暗号を利用した技術であり、データ生成・収集系では証明しようとするデータから一方向ハッシュ関数を用いてメッセージダイジェストと呼ばれる数十バイトの固定長データを作成し、このメッセージダイジェストを秘密鍵で処理してディジタル署名を生成し、データ利用系では同様に作成したメッセージダイジェストと、ディジタル署名と公開鍵とからディジタル署名検証手続きによりデータの真正性を確認する（例えば、特許文献１参照）。
【０００３】
Ｗｅｂサービスで標準となるＸＭＬ形式のデータ送信に上記のディジタル署名方式を適用するには、ＸＭＬ署名（ＸＭＬ Signature）という規格でディジタル署名を付けたＸＭＬ文書のデータ形式が定められている。この規格では、ＸＭＬ文書の一部に署名をする方法や、ＸＭＬ文書の表現の違いで署名が無効にならないように正規化して署名する方法などが規定されている。
【特許文献１】特開２００３−３１８８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図４はデータ形式変換を伴うシステムにおけるディジタル署名方式の適用例を示す。データ生成装置１は、例えばセンサからの検出入力値による１００個の整数値からなるバイナリ形式のデータを生成し、このデータにディジタル署名ｘｘｘｘを付加してデータ中継装置２に発信する。データ中継装置２ではバイナリ形式の１００個のデータが個々にタグに入ったＸＭＬ形式のデータに変換してデータ利用装置３に発信する。このＸＭＬ形式のデータを受信したデータ利用装置３では該データを表示したり、保存したりといったデータ利用を行う。
【０００５】
このシステムにおいて、ディジタル署名はそれを付加したデータを編集すると無効になるため、データ中継装置２がバイナリ形式のデータをＸＭＬ形式に変換するとデータ利用装置３でディジタル署名による検証ができなくなる。
【０００６】
この対策としては、データ中継装置２がバイナリ形式のままデータ利用装置３に中継する方法が考えられるが、バイナリ形式のデータをＸＭＬ形式に変換して中継および利用するシステムには適用できない。
【０００７】
また、データ利用装置３がバイナリ形式を予め認識しておいて証明／検証時にデータを復元する方法が考えられるが、データを標準的なＸＭＬ形式に変換して中継および利用することが無駄な処理になってしまう。
【０００８】
他の対策として、データ生成装置１自体がＸＭＬ形式のデータを発信するという方法もあるが、これはデータ生成装置とデータ中継装置の間の通信帯域が狭い場合には効率の悪いシステムになる。
【０００９】
本発明の目的は、バイナリ形式のデータをＸＭＬ形式に変換して中継および利用するシステムに適用して、さらにデータ生成装置とデータ中継装置の間の通信帯域が狭いシステムに適用して、データの真正性の証明／保証が確実、容易になるディジタル署名によるデータの証明／保証方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、データ生成装置がディジタル署名を生成する際に、自身が発信するデータ形式に対応する署名を生成する代わりに、データ中継装置が中継するデータ形式に対応した署名を生成して発信するようにしたもので、以下の方法を特徴とする。
【００１１】
（１）データ生成装置はバイナリ形式のデータにディジタル署名を付加してデータ中継装置に発信し、前記データ中継装置は前記バイナリ形式データをＸＭＬ形式データに変換してデータ利用装置に発信し、前記データ利用装置は前記ディジタル署名によって前記ＸＭＬ形式データの真正性を証明／保証を得る方法において、
前記データ生成装置は、前記バイナリ形式データに対応するＸＭＬ形式データを一時的に生成し、このＸＭＬ形式データに対応するディジタル署名を作成し、前記バイナリ形式データと前記ディジタル署名をセットにして前記データ中継装置に発信する過程を有することを特徴とする。
【００１２】
（２）前記データ生成装置は、前記ディジタル署名の作成過程として、メッセージダイジェストの処理ブロック毎にバイナリ形式データから前記ＸＭＬ形式データを生成し、このブロック毎のＸＭＬ形式データに対応するメッセージダイジェストを作成する処理を繰り返す過程を有することを特徴とする。
【００１３】
（３）前記データ生成装置は、バイナリ形式データからXML形式データを作成および該XML形式データを識別する識別子を作成し、このXML形式データからメッセージダイジェストを計算し、該メッセージダイジェストをBASE64方式でテキスト表現にエンコードし、このメッセージダイジェストテキストと前記識別子を使ってWS-Security仕様に則った署名情報XMLを作成し、この署名情報XMLにデータ生成装置の秘密鍵を使ってディジタル署名を計算し、この署名をバイナリ形式データに付して前記データ中継装置に発信する過程を有し、
前記データ中継装置は、データ生成装置から発信されたバイナリ形式データからXML形式データと署名情報XMLを作成し、該署名情報をBASE64方式でテキスト表現へエンコードし、この署名テキストとXML形式データおよび署名情報XMLからWS-Security署名付きXML形式データを作成する過程を有することを特徴とする。
【００１４】
（４）前記データ生成装置は、データ項目ごとに前記メッセージダイジェストを計算して前記署名情報ＸＭＬを作成する過程を有し、
前記データ中継装置は、データ項目ごとに前記メッセージダイジェストを計算して前記署名情報ＸＭＬを作成する過程を有することを特徴とする。
【発明の効果】
【００１５】
以上のとおり、本発明によれば、データ生成装置がディジタル署名を生成する際に、自身が発信するデータ形式に対応する署名を生成する代わりに、データ中継装置が中継するデータ形式に対応した署名を生成して発信するようにしたため、バイナリ形式のデータをＸＭＬ形式に変換して中継および利用するシステムに適用して、さらにデータ生成装置とデータ中継装置の間の通信帯域が狭いシステムに適用してデータの真正性の証明／保証が確実、容易になる。
【００１６】
また、ディジタル署名の生成に、メッセージダイジェストの処理ブロック毎にバイナリ形式データからＸＭＬ形式データを生成し、このブロック毎のＸＭＬ形式データに対応するメッセージダイジェストを作成する処理を繰り返すことにより、必要とするメモリ容量を軽減できる。
【００１７】
また、データ形式をWS-Security仕様に対応できるため、標準的なWebサービス機能で署名検証ができる。さらには、データ項目ごとに独立して署名を付けているのでデータ利用装置においてデータ項目をばらして扱うことができる。
【発明を実施するための最良の形態】
【００１８】
（実施形態１）
図１は、本発明の実施形態を示すシステム構成例であり、図４と同様に、データ生成装置１がバイナリ形式のデータ列を生成し、このデータにディジタル署名を付加してデータ中継装置２に発信し、データ中継装置２ではＸＭＬ形式のデータに変換してデータ利用装置３に配信する。
【００１９】
ここで、データ生成装置１は、バイナリ形式データの生成と共に、そのＸＭＬ形式データに対応するディジタル署名ｙｙｙｙを作成し、このバイナリ形式データとＸＭＬ形式に対応するディジタル署名をセットにして発信する。このとき、ディジタル署名（ｙｙｙｙ）は、バイナリ形式データと合致しないが、データ中継装置２でバイナリ形式データをＸＭＬ形式のデータに変換すると、このデータとディジタル署名が合致する。
【００２０】
データ利用装置３は、データ中継装置２から配信されるＸＭＬ形式のデータとこれに対応するディジタル署名ｙｙｙｙによってデータの真正性の証明／保証を得る。
【００２１】
図２は、データ生成装置におけるディジタル署名の作成フローチャートを示す。データ生成装置１は、センサ等から取得するバイナリ形式データを一旦正規化したＸＭＬ形式データを作成し（Ｓ１）、このＸＭＬ形式データに対応したディジタル署名を作成し（Ｓ２）、このディジタル署名をバイナリ形式データと一体にして発信する（Ｓ３）。これらを受信するデータ中継装置２はバイナリ形式データをＸＭＬ形式データに変換し、このＸＭＬ形式データとこれに対応するディジタル署名を中継する。
【００２２】
したがって、本実施形態では、バイナリ形式のデータをＸＭＬ形式に変換して中継するシステムにおいて、ディジタル署名はそれを付加する際に発信するデータ形式に対応するものでなく、データ利用装置で利用するデータ形式に対応するものを作成して発信する。これにより、データ生成装置とデータ中継装置の間の通信帯域を節約しながら、データ利用装置でデータの証明／保証を得ながら標準的なＸＭＬ形式データを利用することができる。
【００２３】
（実施形態２）
前記のように、ディジタル署名は、データのメッセージダイジェストを作成するが、この演算ではデータを数十バイトのブロック（ＳＨＡ−１では５１２ビット＝６４バイト）毎に順に処理する。この処理途中ではブロック１つ分だけＸＭＬ形式データが存在すればよい。
【００２４】
そこで、本実施形態では、データ生成装置１は、バイナリ形式データからＸＭＬ形式データを生成するときに、ＸＭＬ形式データを上記のブロックの大きさ毎に生成してメッセージダイジェストの計算を並行して実行する処理を繰り返す。これにより、ディジタル署名の作成に際して、ＸＭＬ形式データ全体を構築して保持することを不要にし、必要とするメモリ容量を軽減させる。
【００２５】
図３は、本実施形態によるディジタル署名の作成処理フローチャートである。ディジタル署名の作成に、メッセージダイジェストの処理ブロック毎にバイナリ形式データからＸＭＬ形式データを生成し（Ｓ１１）、これをブロックバッファに一時保持し、このブロックバッファのデータと内部バッファのデータを使ってメッセージダイジェストを計算し（Ｓ１２）、メッセージダイジェストを生成する。最後に、メッセージダイジェストについて、秘密鍵を使用して署名作成器によりディジタル署名を作成する（Ｓ１３）。
【００２６】
（実施形態３）
前記までの実施形態では、データ中継装置がデータ形式をXMLに変換することを想定して、データ中継装置が構成するXML形式データに対応する署名をデータ生成装置で計算することにしている。
【００２７】
ここで、WS-Security仕様に則ったXML署名をデータ生成装置で作成しようとする場合、WS-Security仕様では、図５に示すように、XML形式データ自体から署名を計算するのではなく、XML形式データからメッセージダイジェストを計算した上でそのメッセージダイジェストを含む署名情報XMLを別途作成して、この署名情報XMLに対する署名を計算している。このため、WS-Security仕様に合せた署名作成には、実施形態１，２の署名作成方法をそのまま適用できない。
【００２８】
本実施形態は、WS-Security仕様に則ったXML署名をデータ生成装置で作成できるようにしたものである。
【００２９】
本実施形態において、扱うデータとして、データ生成装置の装置名、データの時刻、複数の項目からなるものを考える。図６のように、データ生成装置１ではこれらをバイナリ形式データとしてデータ中継装置２に送り、データ中継装置２ではこれをXML形式データに変換してデータ利用装置３に送るものとする。
【００３０】
図６の構成において、一度に送るデータ全体に署名を付ける場合を考えると、図７のようにデータ生成装置１は署名を追加したものを送り、データ中継装置２はWS-Security仕様の署名付きXML形式データを送ることになる。
【００３１】
このためには、図８にWS-Security仕様に対応したデータ生成装置による署名作成のデータフローを示すように、まず、データ生成装置１ではバイナリ形式データからXML形式データを作成し（Ｓ２１）、そのXML形式データを識別する識別子を作成する（Ｓ２２）。このXML形式データからメッセージダイジェストを計算し（Ｓ２３）、メッセージダイジェストをBASE64方式でテキスト表現にエンコードし（Ｓ２４）、このメッセージダイジェストテキストと識別子を使って署名情報XMLを作成する（Ｓ２５）。この署名情報XMLにデータ生成装置の秘密鍵を使って署名を計算し（Ｓ２６）、この署名をバイナリ形式データに付してデータ中継装置へ送り出す。
【００３２】
データ中継装置２では、図９にWS-Security署名付きＸＭＬ形式データの作成フローを示すように、データ生成装置１と同じ手順でバイナリ形式データからXML形式データと署名情報XMLを作成し（Ｓ３１〜Ｓ３５）、さらに署名情報をBASE64方式でテキスト表現へエンコードし（Ｓ３６）、この署名テキストとXML形式データおよび署名情報XMLからWS-Security署名付きXML形式データを作成する（Ｓ３７）。
【００３３】
データ利用装置３では、WS-Security対応の署名検証プログラムとデータ生成装置の秘密鍵に対応する公開鍵を用意しておき、WS-Security署名付きXML形式データの署名を検証する。
【００３４】
したがって、本実施形態によれば、WS-Security仕様に則ったXML署名の作成が可能となり、標準的なＷｅｂサービス機能で署名検証ができる。
【００３５】
（実施形態４）
本実施形態は、実施形態３と同様に、WS-Security対応の署名検証を可能とするが、図１０のようにXML形式データを項目ごとに装置名を含んで識別可能にするものである。
【００３６】
WS-Security仕様では署名情報XMLには複数のXML部分のメッセージダイジェストを含むことができ、また複数の署名を含むことができる。これを使って、図１１のように、時刻と項目の組ごとに署名情報XMLを作成して署名を付ける。こうすることでデータ利用装置では項目を個別に扱うことができるようになる。
【００３７】
図１２は、データ生成装置によるデータ項目ごとのWS-Security仕様に対応した署名の作成フローを示す。データ生成装置１は、まず、時刻および各項目に対してそれぞれＸＭＬ化とそれぞれに異なる識別子を作成してメッセージダイジェストを計算し（Ｓ４１〜Ｓ４６）、BASE64方式でテキスト表現をエンコードする（Ｓ４７，Ｓ４８）。これらを用いて項目ごとに、時刻と項目の組に関する署名情報XMLを作成する（Ｓ４９）。この署名情報XMLのそれぞれにデータ生成装置１の秘密鍵を使って署名を計算し（Ｓ５０）、これらをバイナリ形式データとともにデータ中継装置２へ送り出す。
【００３８】
図１３は、データ中継装置によるデータ項目ごとのWS-Security仕様に対応した署名付きＸＭＬ形式データの作成フローを示す。データ中継装置２ではデータ生成装置１と同じ手順でバイナリ形式データから各項目のXMLデータ形式を作成し、項目ごとの時刻と項目の組に関するメッセージダイジェストを計算し（Ｓ５１〜Ｓ５６）、これらをBASE64方式でテキスト表現にエンコードし、署名情報XMLを対応する署名のBASE64テキスト表現と識別子に組み合わせて署名XMLを作成する（Ｓ５７〜Ｓ６１）。そしてこれらをまとめてWS-Security署名付きXML形式データを構成する(Ｓ６２)。
【００３９】
データ利用装置３では、WS-Security対応の署名検証プログラムとデータ生成装置の秘密鍵に対応する公開鍵を用意しておき、WS-Security署名付きXML形式データの署名を検証する。また、署名は時刻と項目の組ごとに独立しているので、WS-Security署名付きXML形式データを項目ごとに分解しても署名検証が可能である。
【００４０】
したがって、本実施形態では、WS-Security仕様に則ったXML署名の作成を可能にし、しかもデータ項目ごとに独立して署名を付けているのでデータ利用装置においてデータ項目をばらして扱うことができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態１を示すディジタル署名の生成と中継／利用方法を示す図。
【図２】実施形態１におけるディジタル署名の生成フローチャート。
【図３】本発明の実施形態２を示すディジタル署名の生成フローチャート。
【図４】データ形式変換を伴い、ディジタル署名によりデータの真正性を証明／保証するシステムの構成例。
【図５】ＸＭＬ形式データとWS-Security署名の例。
【図６】ディジタル署名の生成と中継／利用方法を示す図。
【図７】本発明の実施形態３を示すディジタル署名の生成と中継／利用方法を示す図。
【図８】実施形態３におけるデータ生成装置によるWS-Security仕様に対応するディジタル署名の生成フローチャート。
【図９】実施形態３におけるデータ中継装置によるWS-Security署名付きＸＭＬ形式データの生成フローチャート。
【図１０】項目ごとに閉じたＸＭＬ形式データの生成と中継／利用方法を示す図。
【図１１】本発明の実施形態４を示すディジタル署名の生成と中継／利用方法を示す図。
【図１２】実施形態４におけるデータ生成装置によるデータ項目ごとのWS-Security仕様に対応するディジタル署名の生成フローチャート。
【図１３】実施形態４におけるデータ中継装置によるデータ項目ごとのWS-Security署名付きＸＭＬ形式データの生成フローチャート。
【符号の説明】
【００４２】
１  データ生成装置
２  データ中継装置
３  データ利用装置
【図１】
2006157850.tif 000003
【図２】
2006157850.tif 000004
【図３】
2006157850.tif 000005
【図４】
2006157850.tif 000006
【図５】
2006157850.tif 000007
【図６】
2006157850.tif 000008
【図７】
2006157850.tif 000009
【図８】
2006157850.tif 000010
【図９】
2006157850.tif 000011
【図１０】
2006157850.tif 000012
【図１１】
2006157850.tif 000013
【図１２】
2006157850.tif 000014
【図１３】
2006157850.tif 000015