説明

暗号鍵生成方法、ネットワークシステム及びプログラム

【課題】
ネットワークシステムのサーバと端末機器との間で暗号通信するため、常に保持しておかなければならない暗号鍵の数を、サーバにて保持する暗号鍵、端末機器にて保持する暗号鍵の両方で削減する。
【解決手段】
第1のサーバの暗号鍵と第1のサーバの下位に接続された第2のサーバの属性値とを一方向性関数に入力して暗号鍵を生成する処理を第1のサーバにて実行し、生成した暗号鍵を第2のサーバの暗号鍵として第1のサーバから第2のサーバに送信する。これを階層化ネットワークシステムの上位サーバから下位サーバに向かって順次繰り返して各サーバの暗号鍵を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークシステムにおいてサーバと端末機器の間で行う暗号通信に関し、特に、この種の暗号通信に使用する暗号鍵の生成及び管理に関する。
【背景技術】
【0002】
ネットワークシステムにおいてサーバから複数の端末機器に対して制御コマンドやデータを送信することがある。第三者に内容を知られても構わないデータを送信するのであれば、送信先の複数の端末機器に対してそのデータを平文のままマルチキャストしても問題はないが、守秘性を有するデータであれば暗号化して送信するのが一般的であり、暗号化には暗号鍵の生成及び管理が不可欠である。
【0003】
暗号化方式が共通鍵方式の場合、送信側と受信側に同じ暗号鍵を用意する必要がある。単純な方式では、暗号鍵を管理するサーバを用意し、このサーバにて各端末機器の暗号鍵を生成して保持する一方、それぞれの暗号鍵を該当する端末機器になんらかの経路で通知し、サーバと端末機器間で暗号通信を行う際には、この暗号鍵を用いて暗号化/復号化を行うことが考えられる。
【0004】
このような方式では、暗号通信に先立って、サーバは全端末機器の暗号鍵を生成しておく必要がある。つまり、暗号鍵の生成処理の負荷は全てサーバに集中することになる。また、サーバは生成した暗号鍵を全て保持しておく必要があり、このためには端末機器の数に比例した記憶容量がサーバ乃至ネットワークシステムのどこかに必要となる。
【0005】
更に、ネットワークシステムにはサーバを階層化するものがある。例えば、会社組織として、複数の本社があり、各本社の配下に複数の支社があり、更に各支社の配下に複数のグループがあるような組織構造を有するものを考える。このような会社組織にネットワークシステムを構築する際、センターサーバを中核として、その下層に本社毎に本社サーバを設置し、本社サーバの下層に支社毎に支社サーバを設置し、支社サーバの下層にグループ毎にグループサーバを設置し、各グループサーバの配下に端末機器を設置するといったネットワーク構成をとることがある。このようなネットワーク構成では、センターサーバは根ノードであり、端末機器は葉ノードとなる。センターサーバは本社サーバの親ノードであり、本社サーバは支社サーバの親ノードであり、支社サーバはグループサーバの親ノードである。
【0006】
この種の階層化したネットワークシステムにおいて、上述のような暗号鍵と暗号通信を行うための暗号鍵を、センターサーバ、本社サーバ、支社サーバ、グループサーバのサーバの個々について用意すると、ネットワークシステム全体として生成・保持する暗号鍵の数は大きく膨れ上がる。どの階層のサーバも下流に接続された端末機器それぞれのための暗号鍵を生成して保持しなければならない。また、端末機器に対してその端末機器が属するセンターサーバ、本社サーバ、支社サーバ、グループサーバの4つの暗号鍵を通知する必要があり、端末機器ではこれら4つの暗号鍵を保持する必要がある。
【0007】
また、この種の階層化したネットワークシステムでは、上層のサーバは下層のサーバよりも強い権限、即ち、下層のサーバのもつ権限を包括した権限を与えられることが多い。こういった権限の構造を、暗号通信を復号する権限として階層化ネットワークシステムに持ち込むには、上流のサーバは、自身の下流のサーバと更に下流の端末機器との間の暗号通信の復号が可能であるが、逆に、下流のサーバが上流のサーバと端末機器との間の暗号通信を復号することはできないようにサーバ、端末機器に暗号鍵を付与することが望ましい。上述したような単純な方式をベースとしてこのような階層的な復号の権限を実装しようとすると、下流のサーバと端末機器との間の暗号通信のための暗号鍵を、上流のサーバでも保持する必要がある。つまりグループサーバ‐端末機器間の暗号通信用の暗号鍵を、そのグループサーバの上流にある支社サーバ、本社サーバ、センターサーバが保持する必要があり、支社サーバ‐端末機器間用の暗号鍵をその支社サーバの上流の本社サーバ、センターサーバが保持する必要があり、本社サーバ‐端末機器間用の暗号鍵をセンターサーバが保持する必要がある。結果として、サーバが上層にあるほど保持すべき暗号鍵の数は増加し、ネットワークシステム全体として保持すべき暗号鍵は更に膨れ上がることになる。
【0008】
本発明と関連する技術が記載された文献として特許文献1、特許文献2を挙げる。これらの文献には、サーバと端末機器との間で暗号通信を行うための暗号鍵の生成に関する従来の技術が記載されている。これら文献に記載のシステムではノードを複数のグループに分類しているがグループ間に上下関係はなく、端末機器から見てサーバは全て同一階層に属する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−124884号公報
【特許文献2】特開2008−131076号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、ネットワークシステムのサーバと端末機器との間で暗号通信するため、常に保持しておかなければならない暗号鍵の数を、サーバが保持すべき暗号鍵の数についても端末機器が保持すべき暗号鍵の数についても削減し、ネットワークシステム全体としても削減することができる技術を提供することである。
【課題を解決するための手段】
【0011】
上述の課題を解決するため、本発明は、次のような暗号鍵生成方法、ネットワークシステム及びプログラムを提供する。
【0012】
まず、本発明の一態様として、サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムの、サーバS、S、…、Sの暗号鍵K、K、…、Kを生成するため、サーバSi−1(iはa以下の自然数)に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する処理を、サーバSi−1が実行する段階1、及び、暗号鍵KをサーバSに送信する処理をサーバSi−1が実行する段階2を、i=1、2、…、a−1の順に順次繰り返すことを特徴とする暗号鍵生成方法を提供する。
【0013】
また、本発明の他の一態様として、サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムであって、サーバSi−1(i=1、2、…、a)はそれぞれ、サーバSi−1に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する手段と、生成した暗号鍵KをサーバSに送信する処理を実行する手段とを備えることを特徴とするネットワークシステムを提供する。
【0014】
更に、本発明の他の一態様として、サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムのサーバS、S、S、…、Sa−1のいずれかのサーバの処理装置にて実行されて、当該処理装置がサーバSi−1(iはa以下の自然数)の処理装置であるとき、サーバSi−1に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する手段、及び、生成した暗号鍵KをサーバSに送信する処理を実行する手段として当該処理装置を機能させるためのプログラムを提供する。
【発明の効果】
【0015】
本発明によれば、上位のサーバは、自身の暗号鍵と、自身よりも下位のサーバの属性値と、一方向性関数を元に自身よりも下位の全てのサーバの暗号鍵を算出することができるが、逆に下位のサーバでは、逆関数の計算が不可能乃至困難であるという一方向性関数の性質により、自身よりも上位のサーバの暗号鍵を算出することが困難乃至事実上できない。
【0016】
このため、本発明によれば、上位のサーバには下位のサーバ宛の暗号通信の復号が可能であるが、逆に下位のサーバには上位のサーバ宛の暗号通信の復号が不可能であるといった状況を立ち上げることができる。いうなれば階層的な体系を有する暗号鍵の一群を生成することができる。ある階層よりも上位に属する一群のサーバでのみ復号可能な暗号を生成することができることとなるので、マルチキャストで送信しても指定した階層よりも上位のサーバのみで復号可能な暗号を生成することができる。一般に、この種の階層化したネットワークシステムでは、上位階層のサーバは下位階層のサーバよりも強いアクセス権を与えられる場合が多いが、本発明はこうしたアクセス権を付与するネットワークシステムに特に好適である。
【0017】
各サーバの属性値と一方向性関数についてはネットワークシステム内で公開した状態で管理してもよい。下位サーバの暗号鍵については、下位サーバの暗号通信を復号する必要に応じて、自身の暗号鍵、下位サーバの属性値及び一方向性関数から算出可能なので、各サーバが保持するのは自身の暗号鍵のみでも構わない。最上位のサーバSはサーバSの属性値IDから暗号鍵Kを求めてその直下の階層に属するサーバSに送信し、サーバSは暗号鍵Kとその直下の階層に属するサーバSの属性値IDから暗号鍵Kを求めてサーバSに送信するといったように、上位階層から下位階層に向かって逐次暗号鍵を求めることで、最終的にはサーバSの暗号鍵Kまで求めることができる。同様にして、サーバS、S、…、Sのどれでも自身より下位のサーバの暗号鍵を全て求めることができる。このため、各サーバが常時保持していければならない暗号鍵の数は自身の暗号鍵だけで済み、自身より下位のサーバの暗号鍵については必要に応じて生成することにしてもよい。このため、ネットワークシステム全体で常時保持すべき暗号鍵の数も少なくて済む。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施の形態であるネットワークシステム100の木構造を説明するための図である。
【図2】ネットワークシステム100のグループサーバ1−1−8〜1−1−15と端末機器1−2−1〜1−2−32の接続関係を説明するための図である。
【図3】センターサーバの秘密シードs、本社サーバのデータ鍵dc、支社サーバのデータ鍵dfxy、グループサーバのデータ鍵dsxyzの生成関係と、サーバ間の権限の高低について説明するための図である。
【図4】センターサーバ、本社サーバ、支社サーバ、グループサーバそれぞれにおける、秘密シードs、データ鍵dc、dfxy、dsxyzを用いての暗号通信の可否を示す表である。
【図5】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図6】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図7】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図8】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図9】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図10】本発明の実施例1において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図11】グループサーバ2−1−8〜2−1−15と端末機器2−2−1〜2−2−32の接続関係を説明するための図である。
【図12】秘密シードsと本社属性値ID、支社属性値ID、グループ属性値IDとを元に、センターサーバ、本社サーバ、支社サーバにてデータ鍵dc、dfxy、dsxyzを順次生成していく過程を説明するための図である。
【図13】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図14】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図15】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図16】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図17】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図18】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図19】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図20】本発明の実施例2において本社属性値ID、支社属性値ID、グループ属性値IDを各サーバに配信する方法について説明するための図である。
【図21】グループサーバ3−1−8〜3−1−15と端末機器3−2−1〜3−2−32の接続関係を説明するための図である。
【図22】秘密シードsと本社属性値ID、支社属性値ID、グループ属性値IDとを元に、センターサーバ、本社サーバ、支社サーバにてデータ鍵dc、dfxy、dsxyzを順次生成していく過程を説明するための図である。
【発明を実施するための形態】
【0019】
本発明の実施の形態であるネットワークシステム100について説明する。図1に示すように、ネットワークシステム100はセンターサーバ1−1−1を頂点とする木構造の階層構造を有するネットワークシステムである。センターサーバ1−1−1の階層の下には、上から順に本社サーバ階層、支社サーバ階層、グループサーバ階層がある。本社サーバ階層には本社サーバ1−1−2、1−1−3が属し、支社サーバ階層には支社サーバ1−1−4〜1−1−7が属し、グループサーバ階層にはグループサーバ1−1−8〜1−1−15が属する。グループサーバには図2に示すように端末機器が接続されている。これらサーバ及び端末機器はコンピュータであり、いずれもコンピュータプログラムに従って動作する中央処理装置、主記憶装置、コンピュータプログラムやデータを格納する補助記憶装置、キーボード、マウス、ネットワークインタフェース装置、ディスプレイ等の入出力装置を備える。
【0020】
ネットワークシステム100の全サーバ及び全端末機器はそれぞれ鍵生成機能を備える。紙面の都合上、図1、2では、センターサーバ1−1−1、本社サーバ1−1−2、支社サーバ1−1−4、グループサーバ1−1−8、端末機器1−2−1のみがそれぞれ鍵生成機能1−1−1−1、1−1−2−1、1−1−3−1、1−1−8−1、1−2−1−1を備えるように記載しているが、実際には全てのサーバ、端末機器が鍵生成機能を備える。鍵生成機能は、専用の回路としてハードウェア的に実現してもよいし、或いは、サーバ、端末機器の不図示の処理装置にて実行されるプログラムとしてソフトウェア的に実現してもよい。
【0021】
各サーバには所属する階層に応じた属性が付与される。センターサーバには属性[センター]が付与され、各本社サーバには属性[本社]が付与され、各支社サーバには属性[支社]が付与され、各グループサーバには属性[グループ]が付与される。ネットワークシステム100は、[センター]を先頭に[本社]、[支社]、[グループ]の属性順にピラミッド構造を成している。つまり、ネットワークシステム100はセンターサーバ1−1−1を根ノードとし、本社サーバを第1階層のノード、支社サーバを第2階層のノード、グループサーバを第3階層のノードとし、グループサーバに接続された端末機器を葉ノードとする木構造を有する。
【0022】
サーバに与えられた属性はそのサーバが有する管理権限の強弱を示す。ここで管理権限とは他のサーバや端末機器を管理する権限である。ピラミッド構造の上位にあるサーバはそのサーバより下の階層に属するサーバ、端末機器の管理権限を有するものとする。例えば、センターサーバ1−1−1はネットワークシステム100内の他の全サーバ及び全端末機器の管理権限を有する。本社サーバ1−1−2は、ピラミッド構造において自分の下にあるサーバ及び端末機器、即ち、支社サーバ1−1−4、1−1−5、グループサーバ1−1−8、1−1−9、1−1−10、1−1−11、端末機器1−2−1〜1−2−16の管理権限を有するが、本社サーバ1−1−3及びその配下のサーバ、端末機器の管理権限は有していない。支社サーバ、グループサーバについても同様であり、ピラミッド構造において自分の配下のサーバ、端末機器の管理権限を有する。尚、サーバAがサーバBの配下にあるとは、サーバAがサーバBよりも下の階層に属し、かつ、サーバAがサーバBに直接、或いは、サーバBの配下にある他のサーバを介して間接に接続されていることをいうものとする。
【0023】
ピラミッド構造の最上位であるセンターサーバ1−1−1を除くサーバ、端末機器にはそれぞれ属性値が付与される。完全な属性値は属性[本社]、[支社]、[グループ]に対応する3つの属性値の組、即ち、本社属性値ID、支社属性値ID、グループ属性値IDからなる。属性[本社]、[支社]、[グループ]はそれぞれピラミッド構造をなす階層のひとつに対応する。本社属性値ID、支社属性値ID、グループ属性値IDを総称して階層属性値と呼ぶものとする。完全な属性値はピラミッド構造をなす全ての階層の階層属性値の組である。本実施の形態では本社サーバ及び支社サーバには完全な属性値を付与しない。図1においてサーバを示すブロックの中にある3桁の数字は、そのサーバの属性に対応する属性値である。例えば、本社サーバ1−1−2にはID=001が付与される。支社サーバ1−1−4、1−1−6にはそれぞれID=001が付与される。グループサーバ1−1−8、1−1−10、1−1−12、1−1−14にはそれぞれID=001が付与される。
【0024】
以下、本社属性値ID、支社属性値ID、グループ属性値IDの組からなる完全な属性値(ID、ID、ID)を単に属性値と呼ぶものとする。あるグループサーバの配下にある端末機器群には、ネットワークシステム100においてセンターサーバ1−1−1からその端末機器群に至るまでの間に通過する本社サーバ、支社サーバ、グループサーバの本社属性値ID、支社属性値ID、グループ属性値IDからなる属性値(ID、ID、ID)が付与されて、端末機器群全体が一括表現される。例えば、端末機器1−2−1〜1−2−4には、属性値(001、001、001)が付与される。属性値(001、001、001)はピラミッド構造の上位階層でこれらの端末機器に接続される本社サーバはID=001であり、支社サーバはID=001であり、グループサーバはID=001であることを示す。図1において、各グループサーバの下に記載してあるのが属性値である。また、図2において、一のグループサーバの配下にある端末機器群を点線の四角形で囲んでいるが、四角形の底辺に沿って記載しているのがその端末機器群の属性値である。
【0025】
属性値とは別に端末機器はそれぞれ固有IDを有する。固有IDはその端末機器に固有の識別子であり、例えばベンダー名に製造番号を連接したもので唯一無二の値である。図2において各端末機器の直下に記載したNと3桁の数字を連接したものが固有IDである。図2では、端末機器1−2−1〜1−2−32の固有IDは順にN001〜N032である。
【0026】
次に、図3を参照してネットワークシステム100におけるデータ鍵の生成について説明する。ここで生成するデータ鍵は、各サーバと端末機器との間で暗号化したデータ通信を行う際に用いる共通鍵暗号方式の暗号鍵である。図3では、図1に示したブランチ構造の各属性[センター]、[本社]、[支社]、[グループ]、及び、図2に示した一グループサーバ配下の端末機器群のうち、親子関係にあるノードを抽象化し、センターサーバ1−3−5、本社サーバ1−3−4、支社サーバ1−3−3、グループサーバ1−3−2、端末機器1−3−1と記す。このような親子関係は、図1では例えばグループサーバ1−1−8、支社サーバ1−1−4、本社サーバ1−1−2、センターサーバ1−1−1の間に成り立つ。また、グループサーバ1−1−14、支社サーバ1−1−7、本社サーバ1−1−3、センターサーバ1−1−1の間に成り立つ。
【0027】
端末機器1−3−1が接続されたある機器のステータス情報1−3−11をデータ鍵で暗号化し、ネットワークを介してグループサーバ1−3−2、支社サーバ1−3−3、本社サーバ1−3−4あるいはセンターサーバ1−3−5へ送信する。この暗号化されたステータス情報1−3−11は、その重要度に応じて、どの属性サーバで受信あるいは復号して良いかが端末機器1−3−1で定められている。この定めに従い、各属性のサーバがそれぞれに持つ受信権限の範囲内でそれら暗号化されたステータス情報1−3−11を受信できることになる。ここで言う受信権限とは、データ鍵で暗号化されたステータス情報1−3−11を受け取ったあるサーバが、それを復号できるか否かを意味し、そのサーバの受信権限の高低により区別されることを示す。
【0028】
あるいは、ある属性のサーバから端末機器1−3−1へデータ鍵で暗号化されたコマンドを送信し、そのコマンドを受信した端末機器1−3−1は、送信相手サーバの送信権限の範囲内でそれらコマンドを受付けるか否か決定できる。ここでは、それら送信権限と受信権限を総称してアクセス権限と称すこととする。ここで、図1−3の場合、アクセス権限1−3−12は、センターサーバ1−3−5側が高く、グループサーバ1−3−2側が低い。このため、端末機器1−3−1から送信されるデータ鍵で暗号化されたステータス情報1−3−11は、4段階の階層を持ったそれぞれのデータ鍵1−3−6のいずれかによって暗号化される必要がある。なお、あるサーバから送信されるコマンドの場合も同様である。
【0029】
データ鍵1−3−6は[センター][本社][支社][グループ]の4つの階層のそれぞれに対応する4つのデータ鍵s、dc、dfxy、dsxyzからなる。これら4つのデータ鍵は、ある階層のデータ鍵と、その下の階層の属性に対応する属性値とを連接してハッシュ演算したものを、その下の階層のデータ鍵とすることを各階層で順次繰り返すことにより求める。
【0030】
図3を参照すると、センターサーバ1−3−5のデータ鍵1−3−10はsそのものである。本社サーバ1−3−4のデータ鍵dc1−3−9は、その本社サーバ1−3−4の属性IDをsに連接し、それをハッシュ演算した結果である。支社サーバ1−3−3のデータ鍵dfxy1−3−8は、その支社サーバ1−3−3の属性IDをdcに連接し、ハッシュ演算した結果である。グループサーバ1−3−2のデータ鍵dsxyz1−3−7は、そのグループサーバ1−3−2の属性IDをdfxyに連接し、ハッシュ演算した結果である。
【0031】
一方、端末機器1−3−1は、上述の各サーバのデータ鍵s、dcx、dfxy、dsxyzのすべてをデータ鍵1−3−6として保持する。暗号通信を行う際、端末機器1−3−1は、送信しようとしているステータス情報[status]の重要度に応じて適切なデータ鍵を選択し、選択したデータ鍵を用いて暗号化した暗号化データを送信する。
【0032】
ネットワークシステム100では、各サーバと端末機器とがこのようなデータ鍵を保持した後で、端末機器とサーバとの間で暗号通信を行う。暗号化に用いるデータ鍵を選択することによって、センターサーバ1−3−5以下のどのサーバまでで復号可能な暗号通信とするかを選択することができる。図4の表1−3−13を参照して説明すると、グループサーバ用データ鍵dsxyzにて暗号化したステータス情報[status]であるE(dsxyz、[status])は、グループサーバ1−3−2、支社サーバ1−3−3、本社サーバ1−3−4、センターサーバ1−3−5で復号可能である。支社サーバ用データ鍵dfxyにて暗号化したステータス情報[status]であるE(dfxy、[status])は、グループサーバ1−3−2では復号することができないが、支社サーバ1−3−3、本社サーバ1−3−4、センターサーバ1−3−5で復号可能である。本社サーバ用データ鍵dcにて暗号化したステータス情報[status]であるE(dc、[status])は、グループサーバ1−3−2、支社サーバ1−3−3では復号することができないが、本社サーバ1−3−4、センターサーバ1−3−5で復号可能である。センターサーバ用データ鍵、即ち秘密シードsにて暗号化したステータス情報[status]であるE(s、[status])はセンターサーバ1−3−5でのみ復号可能である。
【0033】
センターサーバ1−3−5は自身のデータ鍵である秘密シードsと属性値ID、ID、IDから容易に他サーバのデータ鍵を求めることができるのに対して、ハッシュ演算がもつ逆演算の困難性により、本社サーバ、支社サーバ、グループサーバでは秘密シードsを求めることが事実上できない。また、本社サーバは自身のデータ鍵dcと属性値ID、IDから支社サーバ、グループサーバのデータ鍵を求めることができるが逆はできない。同様に、支社サーバは自身のデータ鍵dfxyと属性値IDからグループサーバのデータ鍵を求めることができるが逆はできない。このようにして、ネットワークシステム100では、自分より下の階層に属するサーバのデータ鍵を各サーバは生成することができる一方、自分よりも上の階層に属するサーバのデータ鍵を生成することはできないようになる。
【0034】
ネットワークシステム100によれば、端末機器にてひとつの暗号鍵で暗号化処理を行うだけで、指定した上位階層に属するサーバでのみ復号可能な暗号を生成することができる。従来のように送信先のサーバ毎に異なるデータ鍵を用いて暗号化処理を実行する必要がなく、端末機器での暗号化処理の負荷を軽減することができる。
【0035】
また、ネットワークシステム100によれば、暗号化したデータを送信する際に、送信先のサーバ毎にユニキャスト通信を行う代わりにネットワークシステム全体に対してブロードキャストを行っても、所望のサーバでのみ復号可能であるので、ネットワーク負荷の軽減に資することができる。
【0036】
また、ネットワークシステム100によれば、常に保持しておかなければならないデータ鍵の数を従来に比べて少なくすることができる。
【0037】
まず、管理する全ての端末機器それぞれのデータ鍵をセンターサーバの記憶装置に秘密状態で保持する必要がなく、秘密鍵s、本社属性値ID、支社属性値ID、グループ属性値IDを用いてハッシュ演算することにより必要に応じて通信相手の端末機器のデータ鍵を生成することができる。これらのうち、各属性値はネットワークシステム内で公開し、秘密鍵sのみを秘密状態で管理してもよい。このため、特に、端末機器の数が膨大な場合、端末機器毎にデータ鍵を管理する従来のシステムと比較して、ネットワークシステム全体でのデータ鍵の管理コストを軽減することができる。
【0038】
同様に、端末機器にて管理しなければならないデータ鍵の数についても、秘密鍵sを保持した上で、他のデータ鍵dc、dfxy、dsxyzについては必要に応じて端末機器にて生成することとしてもよい。このようにすれば、各端末機器が常時記憶装置に保持しておかなければならないデータ鍵は秘密シードsだけで済む。特に、ネットワークシステム全体で見たときの端末機器のデータ鍵の管理コストを低減することができる。
【実施例1】
【0039】
上述の実施の形態では、本社属性値ID、支社属性値ID、グループ属性値IDは予めネットワークシステム100内の各サーバ、端末機器に通知されていることを前提として説明した。本実施例では、ネットワークシステム100において本社属性値ID、支社属性値ID、グループ属性値IDを配信する方法について説明する。尚、センターサーバは配下の全てのサーバ及び端末機器のアドレス、特にマルチキャストアドレスを予め取得しているものとする。
【0040】
はじめに以下の説明中で参照する図面について説明する。図5〜10はネットワークシステム100に相当するネットワークシステムにおいて、IPマルチキャストを用いてID、ID、IDを配信する過程を示すものである。図11にはこのネットワークシステムにおいてグループサーバ2−1−8〜2−1−15の配下にある端末機器2−2−1〜2−2−32を図示している。ネットワークシステム100ではID、ID、IDはそれぞれ001または002の値を取る為、属性値は2×2×2=8通りであり、一の属性値が一のグループサーバに設定され、グループサーバの下位にある各端末機器には上位のグループサーバと同じ属性値が設定される。つまり同じグループサーバ配下の端末機器には同じ属性値が設定される。また、端末機器はそれぞれ固有IDを備える。例えば、属性値(001,001,001)が設定される4つの端末機器2−2−1、2−2−2、2−2−3、2−2−4は順にN001、N002、N003、N004を有する。固有IDは例えばベンダー名に製造番号を連接した唯一無二のものである。
【0041】
<1回目:(1)ID=001をIPマルチキャスト通知>
図5を参照して説明すると、センターサーバ2−1−1から、IPマルチキャストパケットを使い、属性値(ID,ID,ID)のうちのIDが001であることを、本社サーバ2−1−2、及び、本社サーバ2−1−2に連なる親子関係を有するノードに順次送信していく。具体的には、図5の略左半分に図示した本社サーバ2−1−2、支社サーバ2−1−4、2−1−5、グループサーバ2−1−8〜2−1−11と、図11の上段に図示した端末機器2−2−1〜2−2−16に対し、ID=001をIPマルチキャストする。端末機器2−2−1〜2−2−16にはその端末機器の親ノードにあたるグループサーバと同じ属性値が設定される。
【0042】
このIPマルチキャストを受信した本社サーバ、支社サーバ、グループサーバの各サーバ及び端末機器は自身の属性値の本社属性値IDを次のようにセットする。
【0043】
属性値(ID,ID,ID)=(001,???,???)
“?”は属性値が未設定であることを示す。
【0044】
<2回目:(1)ID=002をIPマルチキャスト通知>
今度は図中の略右半分のノードに本社属性値ID=002を通知する。センターサーバ2−1−1から、IPマルチキャストパケットを使い、属性値(ID,ID,ID)のうちのIDが002であることを本社サーバ2−1−3、支社サーバ2−1−6、2−1−7、グループサーバ2−1−12〜2−1−15、端末機器2−2−17〜2−2−32に送信する。
【0045】
このIPマルチキャストを受信した本社サーバ、支社サーバ、グループサーバの各サーバ及び端末機器は自身の属性値の本社属性値IDを次のようにセットする。
【0046】
属性値(ID,ID,ID)=(002,???,???)
尚、グループサーバ配下の各端末機器にはそのグループサーバと同じ属性値が設定される。
【0047】
<3回目:(2)ID=001をIPマルチキャスト通知>
次に、本社サーバ2−1−2及び2−1−3それぞれの配下の図中左側の枝に連なる支社サーバ、グループサーバ、端末機器に対しID=001を通知する。図7及び図11を参照すると、本社サーバ2−1−2側では、属性値(ID,ID,ID)のうちのIDが001であることを、本社サーバ2−1−2、支社サーバ2−1−4、グループサーバ2−1−8、2−1−9、端末機器2−2−1〜2−2−8に対して、センターサーバ2−1−1からIPマルチキャストパケットを使って送信する。同様に、本社サーバ2−1−3側では、本社サーバ2−1−3、支社サーバ2−1−6、グループサーバ2−1−12、2−1−13、端末機器2−2−17〜2−2−24へセンターサーバ2−1−1からIPマルチキャストパケットを使って送信する。尚、この過程で、各本社サーバは、配下の支社サーバの支社属性値ID=001を取得する。
【0048】
このようにして、支社サーバ2−1−4、2−1−6、グループサーバ2−1−8、2−1−9、2−1−12、2−1−13、及びこれらの配下の端末機器2−2−1〜2−2−8、2−2−17〜2−2−24の属性値の支社属性値IDを次のように定める。
【0049】
属性値(ID,ID,ID)=(00*,001,???)
記号“*”はサーバ、端末機器によって異なる値が既定されていることを示す。例えばこの段階における端末機器2−2−1の属性値は(001,001,???)であり、端末機器2−2−10の属性値は(002,001,???)である。
【0050】
<4回目:(2)ID=002をIPマルチキャスト通知>
今度は、本社サーバ2−1−2及び2−1−3それぞれの配下の図中右側の枝に連なる支社サーバ、グループサーバ、端末機器に対しID=002を通知する。図8に示すように、属性値(ID,ID,ID)のうちのIDが002であることを、本社サーバ2−1−2、支社サーバ2−1−5、グループサーバ2−1−10、2−1−11、端末機器2−2−9〜2−2−16に対し、センターサーバ2−1−1からIPマルチキャストパケットを使って送信する。同様に、同様に、本社サーバ2−1−3側では、本社サーバ2−1−3、支社サーバ2−1−7、グループサーバ2−1−14、2−1−15、端末機器2−2−25〜2−2−32へセンターサーバ2−1−1からIPマルチキャストパケットを使って送信する。尚、この過程で、各本社サーバは、配下の支社サーバの支社属性値ID=002を取得する。
【0051】
このようにして、支社サーバ2−1−5、2−1−7、グループサーバ2−1−10、2−1−11、2−1−14、2−1−15、及びこれらの配下の端末機器2−2−9〜2−2−16、2−2−25〜2−2−32の属性値の支社属性値IDを次のように定める。
【0052】
属性値(ID,ID,ID)=(00*,002,???)
例えばこの段階における端末機器2−2−9の属性値は(001,002,???)であり、端末機器2−2−25の属性値は(002,002,???)である。
【0053】
<5回目:(3)ID=001をIPマルチキャスト通知>
次に、図9に示すように、各支社サーバ配下の図中左側のグループサーバ及びそのグループサーバ配下の端末機器に対して、ID=001を通知する。属性値(ID,ID,ID)のうちのIDが001であることを、本社サーバ2−1−2、2−1−3、支社サーバ2−1−4〜2−1−7、グループサーバ2−1−8、2−1−10、2−1−12、2−1−14、端末機器2−2−1〜2−2−4、2−2−9〜2−2−12、2−2−17〜2−2−20、2−2−25〜2−2−28に対して、センターサーバ2−1−1からIPマルチキャストパケットを使って送信する。尚、この過程で、各本社サーバ、各支社サーバは、配下のグループサーバのグループ属性値ID=001を取得する。
【0054】
これにより、グループサーバ2−1−8、2−1−10、2−1−12、2−1−14、端末機器2−2−1〜2−2−4、2−2−9〜2−2−12、2−2−17〜2−2−20、2−2−25〜2−2−28に対して、属性値のグループ属性値IDを次のように定める。
【0055】
属性値(ID,ID,ID)=(00*,00*,001)
例えば、端末機器2−2−1の属性値は(001,001,001)であり、端末機器2−2−9の属性値は(001,002,001)であり、端末機器2−2−17の属性値は(002,001,001)であり、端末機器2−2−25の属性値は(002,002,001)である。
【0056】
<6回目:(3)ID=002をIPマルチキャスト通知>
次に、図10に示すように、各支社サーバ配下の図中右側のグループサーバ及びそのグループサーバ配下の端末機器に対して、ID=002を通知する。属性値(ID,ID,ID)のうちのIDが002であることを、本社サーバ2−1−2、2−1−3、支社サーバ2−1−4〜2−1−7、グループサーバ2−1−9、2−1−11、2−1−13、2−1−15、端末機器2−2−5〜2−2−8、2−2−13〜2−2−16、2−2−21〜2−2−24、2−2−29〜2−2−32に対して、センターサーバ2−1−1からIPマルチキャストパケットを使って送信する。尚、この過程で、各本社サーバ、各支社サーバは、配下のグループサーバのグループ属性値ID=002を取得する。
【0057】
これにより、グループサーバ2−1−9、2−1−11、2−1−13、2−1−15、端末機器2−2−5〜2−2−8、2−2−13〜2−2−16、2−2−21〜2−2−24、2−2−29〜2−2−32に対して、属性値のグループ属性値IDを次のように定める。
【0058】
属性値(ID,ID,ID)=(00*,00*,002)
例えば、端末機器2−2−5の属性値は(001,001,002)であり、端末機器2−2−13の属性値は(001,002,002)であり、端末機器2−2−21の属性値は(002,001,002)であり、端末機器2−2−29の属性値は(002,002,002)である。
【0059】
このようにして、ネットワークシステム100内のグループサーバ及び端末機器のそれぞれに対し、属性値(ID,ID,ID)を設定する。尚、以上の手順では、本社サーバに対して支社属性値ID、グループ属性値IDを設定することについては考慮していない。また、支社サーバに対して、グループ属性値IDを設定することについても考慮していない。
【0060】
次に、図12を参照して、ネットワークシステム100におけるデータ鍵の生成について説明する。図12では各サーバ、端末機器の鍵生成機能のみを取り上げている。
【0061】
<センターサーバにおける鍵生成機能2−1−1−1の動作>
例えばセンターサーバ2−1−1のキーボードからの入力やサーバに内蔵する乱数生成機等により、センターサーバ2−1−1には予め秘密シードsが与えられている。鍵生成機能2−1−1−1は、秘密シードsと本社サーバそれぞれの本社属性値IDとを連接した値をハッシュ演算することにより、本社サーバ2−1−2のデータ鍵dc、本社サーバ2−1−3のデータ鍵dcを算出してセンターサーバ2−1−1に渡す。
【0062】
dc=h(s||IDX1
dc=h(s||IDX2
【0063】
センターサーバ2−1−1は、データ鍵dc、dcをそれぞれ配下の本社サーバ2−1−2、2−1−3へ送信する。
【0064】
<本社サーバにおける鍵生成機能2−1−2−1、2−1−3−1の動作>
各本社サーバは、センターサーバから受け取った自身のデータ鍵と自身の配下の支社サーバの支社属性値IDとを連接した値をハッシュ演算することにより、その支社サーバのデータ鍵を生成する。
【0065】
センターサーバ2−1−1から本社サーバ2−1−2がデータ鍵dcを受信すると、鍵生成機能2−1−2−1は、データ鍵dcと、配下の支社サーバ2−1−4の支社属性値IDy1とを連接した値をハッシュ演算することにより、支社サーバ2−1−4のデータ鍵df1.1を生成し、また、データ鍵dcと、配下の支社サーバ2−1−5の支社属性値IDy2とを連接した値をハッシュ演算することにより、支社サーバ2−1−5のデータ鍵df1.2を生成する。
【0066】
同様にして、センターサーバ2−1−1から本社サーバ2−1−3がデータ鍵dcを受信すると、鍵生成機能2−1−3−1は、データ鍵dcと、配下の支社サーバ2−1−6の支社属性値IDy1とを連接した値をハッシュ演算することにより、支社サーバ2−1−6のデータ鍵df2.1を生成し、また、データ鍵dcと、配下の支社サーバ2−1−7の支社属性値ID2とを連接した値をハッシュ演算することにより、支社サーバ2−1−7のデータ鍵df2.2を生成する。
【0067】
df1,1=h(dc||IDy1
df1,2=h(dc||IDy2
df2,1=h(dc||IDy1
df2,2=h(dc||IDy2
【0068】
鍵生成機能2−1−2−1からデータ鍵df1.1、df1.2を受け取った本社サーバ2−1−2は、それぞれのデータ鍵を対応する支社サーバ2−1−4、2−1−5に送信する。また、鍵生成機能2−1−3−1からデータ鍵df2.1、df2.2を受け取った本社サーバ2−1−3は、それぞれのデータ鍵を対応する支社サーバ2−1−6、2−1−7にも同様に送信する。
【0069】
<支社サーバにおける鍵生成機能2−1−4−1〜2−1−7−1の動作>
各支社サーバの鍵生成機能では、自身の上位の本社サーバから受け取った自身のデータ鍵と、自身の配下のグループサーバのグループ属性値IDとを連接した値をハッシュ演算することにより、そのグループサーバのデータ鍵を生成する。
【0070】
支社サーバ2−1−4では、本社サーバ2−1−2からデータ鍵df1,1を受信すると、鍵生成機能2−1−4−1は、このデータ鍵df1,1と、支社サーバ2−1−4の配下のグループサーバ2−1−8のグループ属性値IDz1とを連接した値をハッシュ演算することにより、グループサーバ2−1−8のデータ鍵ds1,1,1を生成する。また、鍵生成機能2−1−4−1は、データ鍵df1,1と、配下のもう一方のグループサーバ2−1−9のグループ属性値IDz2とを連接した値をハッシュ演算することにより、グループサーバ2−1−9のデータ鍵ds1,1,2を生成する。
【0071】
つまり、支社サーバ2−1−4の鍵生成機能2−1−4−1では、次の演算を行うことにより、グループサーバ2−1−8のデータ鍵ds1,1,1、グループサーバ2−1−9のデータ鍵ds1,1,2を生成する。
【0072】
ds1,1,1=h(df1,1||IDZ1
ds1,1,2=h(df1,1||IDZ2
【0073】
支社サーバ2−1−5の鍵生成機能2−1−5−1では、次の演算を行うことにより、グループサーバ2−1−10のデータ鍵ds1,2,1、グループサーバ2−1−11のデータ鍵ds1,2,2を生成する。
【0074】
ds1,2,1=h(df1,2||IDZ1
ds1,2,2=h(df1,2||IDZ2
【0075】
支社サーバ2−1−6の鍵生成機能2−1−6−1では、次の演算を行うことにより、グループサーバ2−1−12のデータ鍵ds2,1,1、グループサーバ2−1−13のデータ鍵ds2,1,2を生成する。
【0076】
ds2,1,1=h(df2,1||IDZ1
ds2,1,2=h(df2,1||IDZ2
【0077】
支社サーバ2−1−7の鍵生成機能2−1−7−1では、次の演算を行うことにより、グループサーバ2−1−14のデータ鍵ds2,2,1、グループサーバ2−1−15のデータ鍵ds2,2,2を生成する。
【0078】
ds2,2,1=h(df2,2||IDZ1
ds2,2,2=h(df2,2||IDZ2
【0079】
このようにしてグループサーバのデータ鍵を生成すると、各支社サーバは、配下のグループサーバに対し、そのグループサーバのデータ鍵を送信する。上記サーバー間でのデータ鍵の受け渡しは事前に用意されたデータ鍵受け渡し用の暗号鍵で暗号化して行われる。
【0080】
<端末機器における鍵生成機能2−2−1−1〜2−2−32−1の動作>
図5〜10を参照して行った説明により、ネットワークシステム100内の全ての端末機器に対して属性値を通知した。これらの属性値における本社属性値はその端末機器を配下とする本社サーバの本社属性値と同じである。同様に、端末機器の属性値の支社属性値は、その端末機器を配下とする支社サーバの支社属性値と同じであり、また、端末機器の属性値のグループ属性値は、その端末機器を配下とするグループサーバのグループ属性値と同じである。つまり、端末機器は、自身の属性値から、自身を配下とする本社サーバの本社属性値、支社サーバの支社属性値、グループサーバのグループ属性値を取得することができる。
【0081】
一方で、端末機器2−2−1〜2−2−32には秘密シードsを通知しておく。この通知は例えばセンターサーバ2−1−1から各端末機器にユニキャストやブロードキャストで送信することによって行う。公開鍵暗号方式を用いて通知する例として、センターの公開鍵を端末機器が取得可能な状態で、秘密シードsをセンターの秘密鍵で暗号化し、各端末機器に暗号化した秘密シードsを送信するものがある。或いは、予め端末機器の記憶装置に秘密シードsを記憶しておくことで実現してもよい。
【0082】
端末機器2−2−1〜2−2−32はそれぞれ鍵生成機能2−2−1−1〜2−2−32−1を備える。鍵生成機能2−2−1−1〜2−2−32−1はそれぞれ、その端末機器の属性値(ID,ID,ID)と秘密シードsとを元に、その端末機器を配下とする本社サーバ、支社サーバ、グループサーバのデータ鍵を生成する。
【0083】
これらサーバのデータ鍵は、そのサーバの上位のサーバのデータ鍵と、そのサーバが属する階層に対応する属性値とを連接した値をハッシュ演算することにより求める。センターサーバのデータ鍵は秘密シードsである。秘密シードsと本社属性値IDとを連接した値をハッシュ演算して本社サーバのデータ鍵dcを生成し、生成したデータ鍵dcと支社属性値IDとを連接した値をハッシュ演算して支社サーバのデータ鍵dfxyを生成し、生成したデータ鍵dfxyとグループ属性値IDとを連接した値をハッシュ演算してグループサーバのデータ鍵dsxyzを生成する。同一グループサーバ配下にある端末機器のデータ鍵dc、dfxy、dsxyzは共通である。
【0084】
例えば、グループサーバ2−1−8の配下である端末機器2−2−1〜2−2−4においては、鍵生成機能2−2−1−1〜2−2−4−1は、本社サーバ2−1−2のデータ鍵dc、支社サーバ2−1−4のデータ鍵df1,1、グループサーバ2−1−8のデータ鍵ds1,1,1を次の演算を実行して生成する。
【0085】
dc=h(s||IDX1
df1,1=h(dc||IDy1
ds1,1,1=h(df1,1||IDZ1
【0086】
また、例えば、グループサーバ2−1−9の配下である端末機器2−2−5〜2−2−8においては、鍵生成機能2−2−5−1〜2−2−8−1は、本社サーバ2−1−2のデータ鍵dc、支社サーバ2−1−4のデータ鍵df1,1、グループサーバ2−1−9のデータ鍵ds1,1,2を次の演算を実行して生成する。
【0087】
dc=h(s||IDX1
df1,1=h(dc||IDy1
ds1,1,2=h(df1,1||IDZ2
【0088】
別の例としては、グループサーバ2−1−15の配下である端末機器2−2−29〜2−2−32においては、鍵生成機能2−2−29−1〜2−2−32−1は、本社サーバ2−1−3のデータ鍵dc、支社サーバ2−1−7のデータ鍵df2,2、グループサーバ2−1−15のデータ鍵ds2,2,2を次の演算により生成する。
【0089】
dc=h(s||IDX2
df2,2=h(dc||IDy2
ds2,2,2=h(df2,2||IDZ2
【0090】
<暗号通信>
図12に示すように、センターサーバ2−1−1、本社サーバ2−1−2、2−1−3、支社サーバ2−1−4〜2−1−7、グループサーバ2−1−8〜2−1−15は、それぞれ、自身のデータ鍵として秘密シードs、データ鍵dc、df、dsを取得する一方、端末機器2−2−1〜2−2−32は、それぞれ自身を配下とするセンターサーバ、本社サーバ、支社サーバ、グループサーバの秘密鍵s、データ鍵dc、df、dsを取得した。
【0091】
各端末機器は秘密シードsを含む4種類のデータ鍵を適宜使い分けて暗号通信を行うことにより、図4に示すように、復号可能なサーバを階層化した暗号化情報を生成することができる。
【0092】
以上、本実施例によれば、各階層におけるデータ鍵は、自己の階層より1つ上の階層の属性から順次計算して与えるので、データ鍵を生成するための演算処理を多数のサーバにて分散処理することができる。つまり、Kを予め与えられた秘密シードsとし、mを2以上の自然数、階層Lのデータ鍵をK、階層Lの階層属性値をA、階層Lに属するサーバをSと表すとき、本実施の形態では、求めようとするデータ鍵Kの階層Lのひとつ上の階層Lm−1のデータ鍵Km−1と、階層Lの階層属性値Aとを連接し、連接した値Km−1||Aをハッシュ演算してK=h(Km−1||A)を求める処理を、階層Lm−1のサーバSm−1において実行した後、求めたデータ鍵KをサーバSm−1からサーバSに通知する。このような処理を上位の階層から下位の階層に向かって順次繰り返すことにより、ネットワークシステム内のすべてのサーバのデータ鍵を生成する。各サーバは自分の直下の階層に属するサーバの数だけハッシュ演算を行う。このため、一箇所のセンターサーバ等にてデータ鍵の生成処理を実行する従来の技術と比較すると、生成処理のための負荷を複数のコンピュータに分散して実行することができる点で異なる。
【0093】
また、本実施例によれば、ネットワークシステム内のデータ鍵同士の間に、ネットワークシステムを構成するサーバ間の階層構造に似た階層構造を与えることができる。ネットワークシステム100において、各サーバは、階層構造の上位にあるサーバから自身のデータ鍵を通知される一方、その配下の下位のサーバに対しそのサーバの階層属性値を通知する過程で、これら下位サーバの階層属性値を取得し、自身のデータ鍵と下位サーバの階層属性値から、直下の階層のサーバのデータ鍵だけではなく、更にその下の階層のサーバのデータ鍵をも必要に応じて生成することができる。逆に、下位階層のサーバは、自身のデータ鍵と上位階層のサーバの階層属性値とから上位階層サーバのデータ鍵を求めるのは極めて困難である。これはハッシュ演算の逆演算が困難であることによる。
【0094】
また、本実施例によれば、端末機器に対して上位階層のサーバ全てのデータ鍵を通知する必要はなく、秘密シードsとその端末機器の属性値(ID、ID、ID)を通知するだけでよい。各サーバと暗号通信する際に用いるデータ鍵は、上位サーバのデータ鍵から順にハッシュ演算にて求めることができるからである。
【実施例2】
【0095】
実施例2のネットワークシステムのネットワーク構造は、実施例1のネットワークシステムと同じであるが、参照符号の先頭の数字が異なる。例えば、実施例1ではセンターサーバの参照符号は2−1−1であるが、実施例2のセンターサーバの参照符号は3−1−1である。本社サーバ、支社サーバ、グループサーバ、端末機器、鍵生成機能の参照符号についても同様である。
【0096】
上述の実施例1では、端末機器及びグループサーバに完全な属性値を割り当てたが、本実施例では、端末機器及びグループサーバに加えて本社サーバ及び支社サーバにも完全な属性値を割り当てる点で異なる。
【0097】
本来、本社サーバは支社の属性を有していないが、本社サーバの支社属性値IDを000と定義する。同様に、本社サーバ及び支社サーバはグループの属性を有していないが、本社サーバ及び支社サーバのグループ属性値IDを000と定義する。
【0098】
本社サーバ、支社サーバ、グループサーバ、端末機器への完全な属性値の通知は、図13から図20に示す8回のIPマルチキャスト通信により行う。これら8回のIPマルチキャスト通信のうち、1回目(図13)、2回目(図14)、4回目(図16)、5回目(図17)、7回目(図19)、8回目(図20)は、それぞれ、実施例1において説明した1〜6回目(図5〜10)に順に対応する。例えば、本社属性値ID=001及びID=002のマルチキャスト通知動作は図13及び図14に示すようにして行われるが、この動作は、参照符号の先頭の数字が異なる点を除けば実施例1にて図5及び図6を参照して行った動作と同様である。このため、ここでは実施例1と同様の動作については説明を省略し、実施例1では行わなかった3回目(図15)、6回目(図18)の動作について説明する。
【0099】
<3回目:(2)ID=000をIPマルチキャスト通知>
図15に示すように、センターサーバ3−1−1からIPマルチキャストパケットを用いて、属性値(ID,ID,ID)のうちの支社属性値IDが000であることを本社サーバ3−1−2、および本社サーバ3−1−3に通知する。この通知に応じて各本社サーバは自身の属性値を次のように設定する。
【0100】
本社サーバ3−1−2:
(ID,ID,ID)=(001,000,???)
本社サーバ3−1−3:
(ID,ID,ID)=(002,000,???)
【0101】
<6回目:(3)ID=000をIPマルチキャスト通知>
図18に示すように、センターサーバ3−1−1からIPマルチキャストパケットを使い、属性値(ID,ID,ID)のうちのグループ属性値IDが000であることを、本社サーバ3−1−2、3−1−3、支社サーバ3−1−4、3−1−5、3−1−6、3−1−7へ送信する。これにより本社サーバ及び支社サーバの属性値は次のように設定される。
【0102】
本社サーバ3−1−2:
(ID,ID,ID)=(001,000,000)
本社サーバ3−1−3:
(ID,ID,ID)=(002,000,000)
支社サーバ3−1−4:
(ID,ID,ID)=(001,001,000)
支社サーバ3−1−5:
(ID,ID,ID)=(001,002,000)
支社サーバ3−1−6:
(ID,ID,ID)=(002,001,000)
支社サーバ3−1−7:
(ID,ID,ID)=(002,002,000)
【0103】
実施例1にて行ったIPマルチキャスト通信に加えて、図15及び18のIPマルチキャスト通信を行うことにより、本社サーバ、支社サーバ、グループサーバ、端末機器に対して、本社属性値ID、支社属性値ID、グループ属性値IDからなる完全な属性値(ID,ID,ID)を設定する。各端末機器3−2−1〜3−2−32には、図21に示すように、それぞれその端末機器が接続されたグループサーバの属性値が設定される。本社サーバと支社サーバにて属性値の形式が同じために、属性値からデータ鍵を算出する鍵生成機能として、本社サーバと支社サーバはほとんど同じ条件の処理を適用することができる。
【0104】
次に、センターサーバ、本社サーバ、支社サーバ、端末機器の鍵生成機能にて行うデータ鍵の算出について図22を参照して説明する。
【0105】
<センターサーバの鍵生成機能3−1−1−1の動作>
センターサーバ3−1−1の鍵生成機能3−1−1−1では、秘密シードのsと本社サーバの属性値IDをハッシュ演算することにより、本社サーバのデータ鍵を算出する。
【0106】
本社サーバ3−1−2のデータ鍵dc1,0,0
dc1,0,0=h(s||IDX1
本社サーバ3−1−3のデータ鍵dc2,0,0
dc2,0,0=h(s||IDX2
【0107】
データ鍵生成後、センターサーバ3−1−1は、データ鍵dc1,0,0を本社サーバ3−1−2に送信し、データ鍵dc2,0,0を本社サーバ3−1−3に送信する。センターサーバ3−1−1は生成したデータ鍵dc1,0,0及びdc2,0,0を記憶装置に保持してもいいし、或いは、必要に応じて生成することとしてもよい。これにより、端末機器がデータ鍵dc1,0,0及びdc2,0,0を用いて暗号化した通信を復号することができる。
【0108】
また、鍵生成機能3−1−1−1は、予め生成したデータ鍵dc1,0,0及びdc2,0,0を用いて、必要に応じて或いは予め、支社サーバのデータ鍵を生成する。データ鍵を求めようとする支社サーバの上流に位置する本社サーバのデータ鍵と、その支社サーバの属性値IDをハッシュ演算する以下のような演算処理を実行することにより、所望の支社サーバのデータ鍵を算出する。
【0109】
支社サーバ3−1−4のデータ鍵df1,1,0
df1,1,0=h(dc1,0,0||IDy1
支社サーバ3−1−5のデータ鍵df1,2,0
df1,2,0=h(dc1,0,0||IDy2
支社サーバ3−1−6のデータ鍵df2,1,0
df2,1,0=h(dc2,0,0||IDy1
支社サーバ3−1−7のデータ鍵df2,2,0
df2,2,0=h(dc2,0,0||IDy2
【0110】
更に、鍵生成機能3−1−1−1は、予め生成したデータ鍵df1,1,0、df1,2,0、df2,1,0、df2,2,0と、グループ属性値IDを用いて、必要に応じて或いは予め、グループサーバのデータ鍵を生成する。データ鍵を求めようとするグループサーバの上流に位置する支社サーバのデータ鍵と、そのグループサーバの属性値IDをハッシュ演算する以下のような演算処理を実行することにより、所望のグループサーバのデータ鍵を算出する。
【0111】
グループサーバ3−1−8のデータ鍵ds1,1,1
ds1,1,1=h(df1,1,0||IDZ1
グループサーバ3−1−9のデータ鍵ds1,1,2
ds1,1,2=h(df1,1,0||IDZ2
グループサーバ3−1−10のデータ鍵ds1,2,1
ds1,2,1=h(df1,2,0||IDZ1
グループサーバ3−1−11のデータ鍵ds1,2,2
ds1,2,2=h(df1,2,0||IDZ2
グループサーバ3−1−12のデータ鍵ds2,1,1
ds2,1,1=h(df2,1,0||IDZ1
グループサーバ3−1−13のデータ鍵ds2,1,2
ds2,1,2=h(df2,1,0||IDZ2
グループサーバ3−1−14のデータ鍵ds2,2,1
ds2,2,1=h(df2,2,0||IDZ1
グループサーバ3−1−15のデータ鍵ds2,2,2
ds2,2,2=h(df2,2,0||IDZ2
【0112】
<本社サーバの鍵生成機能3−1−2−1、3−1−3−1の動作>
本社サーバ3−1−2において、鍵生成機能3−1−2−1は、センターサーバ3−1−1から受信したデータ鍵dc1,0,0と、支社サーバの属性値IDを用いて、必要に応じて或いは予め、支社サーバ3−1−4、3−1−5のデータ鍵df1,1,0、df1,2,0を生成する。ここで実行される演算処理は、センターサーバ3−1−1において、鍵生成機能3−1−1−1がデータ鍵df1,1,0、df1,2,0を生成するために行う演算として既に説明したものと同じである。
【0113】
また、鍵生成機能3−1−4−1は、予め生成したデータ鍵df1,1,0、df1,2,0と、グループ属性値IDを用いて、必要に応じて或いは予め、グループサーバ3−1−8〜3−1−11のデータ鍵を生成する。ここで実行される演算処理は、センターサーバ3−1−1において、鍵生成機能3−1−1−1がデータ鍵ds1,1,1、ds1,1,2、ds1,2,1、ds1,2,2を生成するために行う演算として既に説明したものと同じである。
【0114】
他方、本社サーバ3−1−3において、鍵生成機能3−1−3−1は、上述の鍵生成機能3−1−2−1と同様に、センターサーバ3−1−1から受信したデータ鍵dc2,0,0と、支社属性値IDを用いてデータ鍵df2,1,0、df2,2,0を生成する。更に、鍵生成機能3−1−3−1は、生成したデータ鍵df2,1,0、df2,2,0と、グループ属性値IDを用いてデータ鍵ds2,1,1、ds2,1,2、ds2,2,1、ds2,2,2を生成する。このとき鍵生成機能3−1−3−1が実行する演算処理は、鍵生成機能3−1−1−1が同じデータ鍵を生成する際に実行した既述の演算処理と同じである。
【0115】
<支社サーバの鍵生成機能3−1−4−1〜3−1−7−1の動作>
支社サーバはいずれも上流にひとつの本社サーバが接続され、下流に2つのグループサーバが接続されている。支社サーバ3−1−4〜3−1−7において、鍵生成機能3−1−4−1〜3−1−7−1は、それぞれ、その支社サーバに接続された本社サーバから受信した自身のデータ鍵と、その支社サーバに接続されたグループサーバのグループ属性値IDとを用いて、必要に応じて或いは予め、グループサーバのデータ鍵を生成する。支社サーバは、生成する際に用いたグループ属性値を有するグループサーバに対してそのデータ鍵を送信する。
【0116】
支社サーバ3−1−4を例に挙げて説明する。支社サーバ3−1−4は、上流の本社サーバ3−1−2から自身のデータ鍵df1,1,0を受信する。データ鍵df1,1,0と、グループサーバ3−1−8のグループ属性値IDz1とを連接したものをハッシュ演算することにより、支社サーバ3−1−4は、グループサーバ3−1−8のデータ鍵ds1,1,1を生成する。このハッシュ演算は、センターサーバ3−1−1において鍵生成機能3−1−1−1がデータ鍵ds1,1,1を生成する際に行うものと同じである。
【0117】
ds1,1,1=h(df1,1,0||IDZ1
【0118】
支社サーバ3−1−4は生成したデータ鍵ds1,1,1をグループサーバ3−1−8に送信する。また、支社サーバ3−1−4は、データ鍵df1,1,0と、グループサーバ3−1−9のグループ属性値IDz2とを連接したものをハッシュ演算することにより、グループサーバ3−1−9のデータ鍵ds1,1,2を生成する。このハッシュ演算は、鍵生成機能3−1−1−1がデータ鍵ds1,1,2を生成する際に行うものと同じである。
【0119】
ds1,1,2=h(df1,1,0||IDZ2
【0120】
支社サーバ3−1−4は生成したデータ鍵ds1,1,2をグループサーバ3−1−9に送信する。
【0121】
同様に、支社サーバ3−1−5〜3−1−7においても、その支社サーバの上流にある本社サーバから受け取った自身のデータ鍵と、生成しようとするデータ鍵の宛先となるグループサーバのグループ属性値IDとを連接したものをハッシュ演算することにより、その支社サーバの下流のグループサーバのデータ鍵を生成し、対応するグループサーバに送信する。
【0122】
支社サーバ3−1−5では鍵生成機能3−1−5−1にて次のハッシュ演算を行い、生成したデータ鍵ds1,2,1をグループサーバ3−1−10に送信する。
【0123】
ds1,2,1=h(df1,2,0||IDZ1
【0124】
また、鍵生成機能3−1−5−1にて次のハッシュ演算を行い、生成したデータ鍵ds1,2,2をグループサーバ3−1−11に送信する。
【0125】
ds1,2,2=h(df1,2,0||IDZ2
【0126】
支社サーバ3−1−6では鍵生成機能3−1−6−1にて次のハッシュ演算を行い、生成したデータ鍵ds2,1,1をグループサーバ3−1−12に送信する。
【0127】
ds2,1,1=h(df2,1,0||IDZ1
【0128】
また、鍵生成機能3−1−6−1にて次のハッシュ演算を行い、生成したデータ鍵ds2,1,2をグループサーバ3−1−13に送信する。
【0129】
ds2,1,2=h(df2,1,0||IDZ2
【0130】
支社サーバ3−1−7では鍵生成機能3−1−7−1にて次のハッシュ演算を行い、生成したデータ鍵ds2,2,1をグループサーバ3−1−14に送信する。
【0131】
ds2,2,1=h(df2,2,0||IDZ1
【0132】
また、鍵生成機能3−1−7−1にて次のハッシュ演算を行い、生成したデータ鍵ds2,2,2をグループサーバ3−1−15に送信する。
【0133】
ds2,2,2=h(df2,2,0||IDZ2
【0134】
上記サーバー間でのデータ鍵の受け渡しは事前に用意されたデータ鍵受け渡し用の暗号鍵で暗号化して行われる。
【0135】
<端末機器の鍵生成機能3−2−1−1〜3−2−32−1の動作>
図13〜20に示した手順により、端末機器3−2−1〜3−2−32には、接続されたグループサーバと同じ属性値(ID,ID,ID)が図21に示すように設定されている。本実施例では、8つのグループサーバそれぞれの配下に4つの端末機器が接続されているので、属性値が同じ端末機器が4台ずつ存在する。
【0136】
端末機器は自身に設定された属性値から、自身が属する本社サーバの本社属性値、支社サーバの支社属性値、グループサーバのグループ属性値を取得することができる。各端末機器の鍵生成機能は、自身に設定された属性値と、別途通知される秘密シードsとを元に、自身の上流にある本社サーバ、支社サーバ、グループサーバと通信するためのデータ鍵を生成する。秘密シードsと本社属性値IDとを連接した値をハッシュ演算して本社サーバのデータ鍵dcxyzを生成し、生成したデータ鍵dcxyzと支社属性値IDとを連接した値をハッシュ演算して支社サーバのデータ鍵dfxyzを生成し、生成したデータ鍵dfxyzとグループ属性値IDとを連接した値をハッシュ演算してグループサーバのデータ鍵dsxyzを生成する。同一グループサーバ配下にある端末機器のデータ鍵dcxyz、dfxyz、dsxyzは共通である。
【0137】
例えば、端末機器3−2−1〜3−2−4の鍵生成機能3−2−1−1〜3−2−4−1は、必要に応じて或いは予め、次の4つのハッシュ演算を行うことにより、本社サーバ3−1−2のデータ鍵dc1,0,0、支社サーバ3−1−4のデータ鍵df1,1,0、グループサーバ3−1−8のデータ鍵ds1,1,1を生成する。
【0138】
dc1,0,0=h(s||IDX1
df1,1,0=h(dc1,0,0||IDy1
ds1,1,1=h(df1,1,0||IDZ1
【0139】
また、例えば、端末機器3−2−5〜3−2−8の鍵生成機能3−2−5−1〜3−2−8−1は、必要に応じて或いは予め、次の4つのハッシュ演算を行うことにより、本社サーバ3−1−2のデータ鍵dc1,0,0、支社サーバ3−1−4のデータ鍵df1,1,0、グループサーバ3−1−9のデータ鍵ds1,1,2を生成する。
【0140】
dc1,0,0=h(s||IDX1
df1,1,0=h(dc1,0,0||IDy1
ds1,1,2=h(df1,1,0||IDZ2
【0141】
別の例としては、端末機器3−2−29〜3−2−32の鍵生成機能3−2−29−1〜3−2−32−1は、必要に応じて或いは予め、次の4つのハッシュ演算を行うことにより、本社サーバ3−1−3のデータ鍵dc2,0,0、支社サーバ3−1−7のデータ鍵df2,2,0、グループサーバ3−1−15のデータ鍵ds2,2,2を生成する。
【0142】
dc2,0,0=h(s||IDX2
df2,2,0=h(dc2,0,0||IDy2
ds2,2,2=h(df2,2,0||IDZ2
【0143】
<暗号通信>
実施例1では、各端末機器は4つのデータ鍵、即ち、自身を配下とするセンターサーバ、本社サーバ、支社サーバ、グループサーバの4種類のサーバそれぞれと暗号通信を行うためのデータ鍵を生成したが、これら4種類のサーバでは自身の直下にあるサーバのデータ鍵のみを生成して暗号通信を行った。例えば、センターサーバ2−1−1は本社サーバ2−1−2、2−1−3のデータ鍵を生成するが、支社サーバ2−1−4〜2−1−7、グループサーバ2−1−8〜2−1−15のデータ鍵は生成しなかった。
【0144】
これに対して、本実施例では、各サーバの鍵生成機能は、自身の直下にあるサーバだけではなく、そのサーバの更に下流にあるサーバのデータ鍵も生成する。例えば、ネットワークシステムの最上位にあるセンターサーバ3−1−1では全てのサーバのデータ鍵を生成する。また、本社サーバ3−1−2では直下にある、本社サーバ3−1−1を親とすればいわば子に相当する関係にある支社サーバ3−1−4、3−1−5だけではなく、孫に相当するグループサーバ3−1−8〜3−1−11のデータ鍵についても生成する。これにより、図4に示すような暗号通信の可否の関係を構築する。
【0145】
例えば、端末機器3−2−1は秘密シードs、データ鍵dc1,0,0、df1,1,0、ds1,1,1を用いて暗号通信を行うことができるが、秘密シードsを用いて暗号化した場合、復号に必要な鍵である秘密シードsを有するのはセンターサーバ3−1−1のみであり、他のサーバは鍵を保持していないため復号できない。本社サーバ3−1−2のデータ鍵dc1,0,0にて暗号化した暗号通信の場合、本社サーバ3−1−2とその上位にあるセンターサーバ3−1−1はデータ鍵dc1,0,0を生成可能であり復号可能であるが、他のサーバでは生成できず復号できない。
【0146】
以上、本発明を実施の形態及び実施例に即して説明したが、本発明はこれに限定されるものではなく、発明の技術的範囲内で様々な変形が可能であることは当業者には明らかであろう。
【0147】
例えば、属性値とは別に端末機器に付与される固有IDを用いて、センターサーバが特定の端末機器と暗号通信を行うことが考えられる。手順は例えば次の通りである。
【0148】
(1)センターサーバは、暗号通信しようとする端末機器からその端末機器の固有IDを取得する。
【0149】
(2)センターサーバは、その固有IDと秘密シードsとを連接し、それをハッシュして暗号鍵dkを生成する。
【0150】
(3)センターサーバは暗号鍵dkを用いて通信文を暗号化してその特定の端末機器に送信する。
【0151】
(4)センターサーバから暗号文を受信した端末機器は、自身の固有IDと予め通知されている秘密シードsとを連接し、それをハッシュして暗号鍵dkを生成する。
【0152】
(5)端末機器は自身で生成した暗号鍵dkを用いて暗号文を復号する。
【0153】
上述したデータ鍵による暗号通信では、センターサーバと、一のグループサーバ配下の複数の端末機器との間での暗号通信を行うものであり、いわば一対多の暗号通信であったが、ここで述べたような暗号鍵dkによる暗号通信を併用することにより、センターサーバと特定の端末装置との間の暗号通信をも可能とすることができる。尚、この例ではセンターサーバと端末機器の間の個別暗号鍵での暗号通信を示したが、本社サーバと端末機器、支社サーバと端末機器、グループサーバと端末機器の各々の間でも同様に各サーバの暗号鍵と端末機器の個有IDを用い個別の暗号通信を行うことが出来る。
【符号の説明】
【0154】
100 ネットワークシステム
1−1−1、2−1−1、3−1−1 センターサーバ
1−1−2、1−1−3、2−1−2、2−1−3 本社サーバ
1−1−4〜1−1−7、2−1−4〜2−1−7、3−1−4〜3−1−7 支社サーバ
1−1−8〜1−1−15、2−1−8〜2−1−15、3−1−8〜3−1−15 グループサーバ
1−1−1−1、1−1−2−1、1−1−4−1、1−1−8−1、1−2−1−1、2−1−1−1、2−1−2−1、2−1−4−1、2−1−8−1、2−2−1−1、3−1−1−1、3−1−2−1、3−1−4−1、3−1−8−1、3−2−1−1 鍵生成機能
1−2−1〜1−2−32、2−2−1〜2−2−32、3−2−1〜3−2−32 端末機器
1−3−7、1−3−8、1−3−9、1−3−10 データ鍵

【特許請求の範囲】
【請求項1】
サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムの、サーバS、S、…、Sの暗号鍵K、K、…、Kを生成するため、
サーバSi−1(iはa以下の自然数)に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する処理を、サーバSi−1が実行する段階1、及び、
暗号鍵KをサーバSに送信する処理をサーバSi−1が実行する段階2を、
i=1、2、…、a−1の順に順次繰り返すことを特徴とする暗号鍵生成方法。
【請求項2】
請求項1に記載の暗号鍵生成方法において、
ネットワークシステムはサーバSを根ノードとし、サーバS、S、…、Sをそれぞれ第1階層のノード、第2階層のノード、…、第a階層のノードとし、サーバSに接続された端末機器Tを葉ノードとする木構造を有し、
暗号鍵K(jはa−1以下の自然数)の生成に先立って、属性値IDをサーバSに通知する処理をサーバSが実行する段階を含む
ことを特徴とする暗号鍵生成方法。
【請求項3】
請求項2に記載の暗号鍵生成方法において、サーバSの配下にあるサーバ及び端末機器に対し、サーバSの属性値IDを通知する処理をサーバSが実行する段階を含むことを特徴とする暗号鍵生成方法。
【請求項4】
請求項3に記載の暗号鍵生成方法において
端末機器Tと、サーバS、S、…、SのいずれかであるサーバS(xはa以下の自然数)との間で暗号通信を行うための共通鍵方式の暗号鍵Kを端末機器Tが取得するため、
予め取得したサーバSの暗号鍵K、及び、予め通知された属性値ID、ID、…、IDに基づいて、サーバSm−1(mはa以下の自然数)に対して予め定められた暗号鍵Km−1と、サーバSm−1に接続されたサーバSの属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する処理を、mがxになるまでmをひとつずつ増やしながら端末機器Tが繰り返し実行する
ことを特徴とする暗号鍵生成方法。
【請求項5】
請求項1乃至4のいずれかに記載の暗号鍵生成方法において、一方向性関数Fはハッシュ関数であることを特徴とする暗号鍵生成方法。
【請求項6】
サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムであって、
サーバSi−1(i=1、2、…、a)はそれぞれ、
サーバSi−1に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する手段と、
生成した暗号鍵KをサーバSに送信する処理を実行する手段とを備える
ことを特徴とするネットワークシステム。
【請求項7】
請求項6に記載のネットワークシステムにおいて、
サーバSを根ノードとし、サーバS、S、…、Sをそれぞれ第1階層のノード、第2階層のノード、…、第a階層のノードとし、サーバSに接続された端末機器Tを葉ノードとする木構造を有し、
サーバSは、暗号鍵K(jはa−1以下の自然数)の生成に先立って、属性値IDをサーバSに通知する処理を実行する手段を備える
ことを特徴とするネットワークシステム。
【請求項8】
請求項7に記載のネットワークシステムにおいて、サーバSは、サーバSの配下にあるサーバ及び端末機器に対し、サーバSの属性値IDを通知する処理を実行する手段を備えることを特徴とするネットワークシステム。
【請求項9】
請求項8に記載のネットワークシステムにおいて、
端末機器Tと、サーバS、S、…、SのいずれかであるサーバS(xはa以下の自然数)との間で暗号通信を行うための共通鍵方式の暗号鍵Kを生成するため、
予め取得したサーバSの暗号鍵K、及び、予め通知された属性値ID、ID、…、IDに基づいて、サーバSm−1(mはa以下の自然数)に対して予め定められた暗号鍵Km−1と、サーバSm−1に接続されたサーバSの属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する処理を、mがxになるまでmをひとつずつ増やしながら繰り返し実行する手段を端末機器Tが備える
ことを特徴とするネットワークシステム。
【請求項10】
請求項6乃至9のいずれかに記載のネットワークシステムにおいて、一方向性関数Fはハッシュ関数であることを特徴とするネットワークシステム。
【請求項11】
請求項6乃至10のいずれかに記載のネットワークシステムにおいて、
端末機器はそれぞれ自端末機器に固有の識別子である固有IDを記憶する記憶装置を備え、
サーバS(bは0以上a以下の整数)は端末機器それぞれの固有IDを記憶する記憶装置を備え、
サーバS及び端末機器は暗号鍵Kを記憶する記憶装置を備え、
サーバSと一の端末機器は、それぞれ、その端末機器の固有IDと暗号鍵Kとを元に生成した暗号鍵を用いて、サーバSとその端末機器との間の暗号通信を行うことを特徴とするネットワークシステム。
【請求項12】
サーバS、サーバSに接続されたサーバS、サーバSに接続されたサーバS、・・・、サーバSa−1に接続されたサーバS(aは予め定められた自然数)を備えるネットワークシステムのサーバS、S、S、…、Sa−1のいずれかのサーバの処理装置にて実行されて、
当該処理装置がサーバSi−1(iはa以下の自然数)の処理装置であるとき、
サーバSi−1に対して予め定められた暗号鍵Ki−1と、サーバSi−1に接続されたサーバSに対して予め定められた属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する手段、及び、
生成した暗号鍵KをサーバSに送信する処理を実行する手段
として当該処理装置を機能させるためのプログラム。
【請求項13】
請求項12に記載のプログラムにおいて、
ネットワークシステムは、サーバSを根ノードとし、サーバS、S、…、Sをそれぞれ第1階層のノード、第2階層のノード、…、第a階層のノードとし、サーバSに接続された端末機器Tを葉ノードとする木構造を有し、
サーバSの処理装置にて実行され、
暗号鍵K(jはa−1以下の自然数)の生成に先立って、属性値IDをサーバSに通知する処理を実行する手段としてサーバSの処理装置を機能させるためのプログラム。
【請求項14】
請求項13に記載のプログラムにおいて、サーバSの配下にあるサーバ及び端末機器に対してサーバSの属性値IDを通知する処理を実行する手段として、サーバSの処理装置を機能させるためのプログラム。
【請求項15】
サーバSを根ノードとし、サーバS、S、…、Sをそれぞれ第1階層のノード、第2階層のノード、…、第a階層のノードとし、サーバSに接続された端末機器Tを葉ノードとする木構造を有するネットワークシステムの端末機器Tの処理装置にて実行され、
端末機器Tと、サーバS、S、…、SのいずれかであるサーバS(xはa以下の自然数)との間で暗号通信を行うための共通鍵方式の暗号鍵Kを生成するため、
予め取得したサーバSの暗号鍵K、及び、予め通知された属性値ID、ID、…、IDに基づいて、サーバSm−1(mはa以下の自然数)に対して予め定められた暗号鍵Km−1と、サーバSm−1に接続されたサーバSの属性値IDとを、一方向性関数Fに入力して暗号鍵Kを生成する処理を、mがxになるまでmをひとつずつ増やしながら繰り返し実行する手段として、端末機器Tの処理装置を機能させるプログラム。
【請求項16】
請求項12乃至15のいずれかに記載のプログラムにおいて、一方向性関数Fはハッシュ関数であることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2010−219912(P2010−219912A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−64645(P2009−64645)
【出願日】平成21年3月17日(2009.3.17)
【出願人】(000197366)NECアクセステクニカ株式会社 (1,236)
【出願人】(591107481)株式会社エルイーテック (37)
【Fターム(参考)】