(57)【特許請求の範囲】
【請求項１】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１及び第２クライアント装置に用いられるファイルアクセス制御方法であって、
前記第１及び第２クライアント装置の読出処理は、
前記サーバ装置から前記暗号化ファイルセット及びデジタル署名を受信する工程と、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する工程と、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る工程と、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する工程とを含んでおり、
前記第１クライアント装置の書込処理は、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する工程と、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する工程と、
前記導出した書込用認証データＦwriteを前記サーバ装置に転送する工程と、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する工程と、
前記導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る工程と、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する工程と、
を含んでいることを特徴とするファイルアクセス制御方法。
【請求項２】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるファイルアクセス制御方法であって、
前記サーバ装置側では、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置により前記秘密鍵データＦpriに一方向性関数ｆを適用して導出され且つ転送された書込用認証データＦwriteを保存する工程を含み、
前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する工程を含んでいることを特徴とするファイルアクセス制御方法。
【請求項３】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第２クライアント装置に用いられるファイルアクセス制御方法であって、
前記第２クライアント装置の読出処理は、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する工程と、
前記自己の公開鍵データＵpubを前記サーバ装置に転送する工程と、
前記読出要求した暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）をサーバ装置に転送する工程と、
前記サーバ装置から前記公開鍵データＵpubにより乱数Ｒが暗号化されたチャレンジ値Ｕpub（Ｒ）を受けると、このチャレンジ値Ｕpub（Ｒ）を前記自己の秘密鍵データＵpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る工程と、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する工程と、
この転送した値ｆ（Ｒ）が正当であるとき、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する工程と、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する工程と、
この共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る工程と、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する工程と、
を含んでいることを特徴とするファイルアクセス制御方法。
【請求項４】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１クライアント装置に用いられるファイルアクセス制御方法であって、
前記第１クライアント装置の読出処理は、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する工程と、
前記ファイルセットに関する公開鍵データＦpubを前記サーバ装置に転送する工程と、
前記ファイルセットに関する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する工程と、
この導出した書込用認証データＦwriteと前記公開鍵データＦpubとの組合せ値｛Ｆwrite，Ｆpub｝に一方向性関数ｆを適用してトークンｆ（Ｆwrite，Ｆpub）を導出する工程と、
この導出したトークンｆ（Ｆwrite，Ｆpub）をサーバ装置に転送する工程と、
このトークンｆ（Ｆwrite，Ｆpub）の転送後、前記サーバ装置から前記公開鍵データＦpubにより乱数Ｒが暗号化されたチャレンジ値Ｆpub（Ｒ）を受けると、
このチャレンジ値Ｆpub（Ｒ）を前記秘密鍵データＦpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る工程と、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する工程と、
この値ｆ（Ｒ）の転送の後、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する工程と、
前記公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する工程と、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る工程と、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する工程と、を含んでおり、
前記第１クライアント装置の書込処理は、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する工程と、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する工程と、
この導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る工程と、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する工程と、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する工程と、
この導出した書込用認証データＦwriteを前記サーバ装置に転送する工程と、
を含んでいることを特徴とするファイルアクセス制御方法。
【請求項５】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるファイルアクセス制御方法であって、
前記サーバ装置側では、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置から転送された書込用認証データＦwriteを保存する工程を含み、
前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する工程を含んでおり、
前記各クライアント装置による読出処理の際に、前記暗号化ファイルセットの読出要求を受信したとき、この読出要求された暗号化ファイルセットに対応する書込用認証データＦwriteを読み出す工程と、
前記読出要求元のクライアント装置の公開鍵データＵpubを受信する工程と、
前記読出要求された暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）を受信したとき、前記読み出した書込用認証データＦwriteと前記受信した公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝に一方向性関数ｆを適用して導出したトークンｆ（Ｆwrite，Ｕpub）と、前記受信したトークンｆ（Ｆwrite，Ｕpub）とを比較し、両者が一致するか否かを判定する工程と、
この判定結果が両者の一致を示すとき、生成した乱数Ｒを前記公開鍵データＵpubを用いて公開鍵暗号方式により暗号化し、得られたチャレンジ値Ｕpub（Ｒ）を読出要求元のクライアント装置に転送する工程と、
このチャレンジ値Ｕpub（Ｒ）の転送後、前記読出要求元のクライアント装置からチャレンジ値Ｕpub（Ｒ）が秘密鍵データＵpriにより復号化されて得られる乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を受信する工程と、
この受信した値ｆ（Ｒ）が正当か否かを判定し、この判定結果が正当を示すとき、前記読出要求された暗号化ファイルセット及びデジタル署名を読出要求元のクライアント装置に転送する工程と、
を含んでいることを特徴とするファイルアクセス制御方法。
【請求項６】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１及び第２クライアント装置に用いられるプログラムであって、
前記第１及び第２クライアント装置のコンピュータに、
前記読出処理の際に、
前記サーバ装置から前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、を実現させ、
前記第１クライアント装置のコンピュータに、
前記書込処理の際に、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
前記導出した書込用認証データＦwriteを前記サーバ装置に転送する機能、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する機能、
前記導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る機能、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する機能、
を実現させるためのプログラム。
【請求項７】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるプログラムであって、
前記サーバ装置のコンピュータに、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置により前記秘密鍵データＦpriに一方向性関数ｆを適用して導出され且つ転送された書込用認証データＦwriteを保存する機能、前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する機能、
を実現させるためのプログラム。
【請求項８】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第２クライアント装置に用いられるプログラムであって、
前記第２クライアント装置のコンピュータに、
前記読出処理の際に、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する機能、
前記自己の公開鍵データＵpubを前記サーバ装置に転送する機能、
前記読出要求した暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）をサーバ装置に転送する機能、
前記サーバ装置から前記公開鍵データＵpubにより乱数Ｒが暗号化されたチャレンジ値Ｕpub（Ｒ）を受けると、このチャレンジ値Ｕpub（Ｒ）を前記自己の秘密鍵データＵpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る機能、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する機能、
この転送した値ｆ（Ｒ）が正当であるとき、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、
を実現させるためのプログラム。
【請求項９】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１クライアント装置に用いられるプログラムであって、
前記第１クライアント装置のコンピュータに、
前記読出処理の際に、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する機能、
前記ファイルセットに関する公開鍵データＦpubを前記サーバ装置に転送する機能、
前記ファイルセットに関する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
この導出した書込用認証データＦwriteと前記公開鍵データＦpubとの組合せ値｛Ｆwrite，Ｆpub｝に一方向性関数ｆを適用してトークンｆ（Ｆwrite，Ｆpub）を導出する機能、
この導出したトークンｆ（Ｆwrite，Ｆpub）をサーバ装置に転送する機能、
このトークンｆ（Ｆwrite，Ｆpub）の転送後、前記サーバ装置から前記公開鍵データＦpubにより乱数Ｒが暗号化されたチャレンジ値Ｆpub（Ｒ）を受けると、
このチャレンジ値Ｆpub（Ｒ）を前記秘密鍵データＦpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る機能、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する機能、
この値ｆ（Ｒ）の転送の後、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、を実現させ、
前記書込処理の際には、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る機能、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する機能、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
この導出した書込用認証データＦwriteを前記サーバ装置に転送する機能、
を実現させるためのプログラム。
【請求項１０】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるプログラムであって、
前記サーバ装置のコンピュータに、
前記書込処理の際に、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置から転送された書込用認証データＦwriteを保存する機能、
前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する機能、を実現させ、
前記各クライアント装置による読出処理の際には、
前記暗号化ファイルセットの読出要求を受信したとき、この読出要求された暗号化ファイルセットに対応する書込用認証データＦwriteを読み出す機能、
前記読出要求元のクライアント装置の公開鍵データＵpubを受信する機能、
前記読出要求された暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）を受信したとき、前記読み出した書込用認証データＦwriteと前記受信した公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝に一方向性関数ｆを適用して導出したトークンｆ（Ｆwrite，Ｕpub）と、前記受信したトークンｆ（Ｆwrite，Ｕpub）とを比較し、両者が一致するか否かを判定する機能、
この判定結果が両者の一致を示すとき、生成した乱数Ｒを前記公開鍵データＵpubを用いて公開鍵暗号方式により暗号化し、得られたチャレンジ値Ｕpub（Ｒ）を読出要求元のクライアント装置に転送する機能、
このチャレンジ値Ｕpub（Ｒ）の転送後、前記読出要求元のクライアント装置からチャレンジ値Ｕpub（Ｒ）が秘密鍵データＵpriにより復号化されて得られる乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を受信する機能、
この受信した値ｆ（Ｒ）が正当か否かを判定し、この判定結果が正当を示すとき、前記読出要求された暗号化ファイルセット及びデジタル署名を読出要求元のクライアント装置に転送する機能、
を実現させるためのプログラム。
【請求項１１】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１及び第２クライアント装置に用いられるコンピュータ読取り可能な記憶媒体であって、
前記第１及び第２クライアント装置のコンピュータに、
前記読出処理の際に、
前記サーバ装置から前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、を実現させ、
前記第１クライアント装置のコンピュータに、
前記書込処理の際に、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
前記導出した書込用認証データＦwriteを前記サーバ装置に転送する機能、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する機能、
前記導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る機能、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する機能、
を実現させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【請求項１２】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpubを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるコンピュータ読取り可能な記憶媒体であって、
前記サーバ装置のコンピュータに、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置により前記秘密鍵データＦpriに一方向性関数ｆを適用して導出され且つ転送された書込用認証データＦwriteを保存する機能、前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する機能、
を実現させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【請求項１３】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第２クライアント装置に用いられるコンピュータ読取り可能な記憶媒体であって、
前記第２クライアント装置のコンピュータに、
前記読出処理の際に、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する機能、
前記自己の公開鍵データＵpubを前記サーバ装置に転送する機能、
前記読出要求した暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）をサーバ装置に転送する機能、
前記サーバ装置から前記公開鍵データＵpubにより乱数Ｒが暗号化されたチャレンジ値Ｕpub（Ｒ）を受けると、このチャレンジ値Ｕpub（Ｒ）を前記自己の秘密鍵データＵpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る機能、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する機能、
この転送した値ｆ（Ｒ）が正当であるとき、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、
を実現させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【請求項１４】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記第１クライアント装置に用いられるコンピュータ読取り可能な記憶媒体であって、
前記第１クライアント装置のコンピュータに、
前記読出処理の際に、
前記暗号化ファイルセットの読出要求を前記サーバ装置に転送する機能、
前記ファイルセットに関する公開鍵データＦpubを前記サーバ装置に転送する機能、
前記ファイルセットに関する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
この導出した書込用認証データＦwriteと前記公開鍵データＦpubとの組合せ値｛Ｆwrite，Ｆpub｝に一方向性関数ｆを適用してトークンｆ（Ｆwrite，Ｆpub）を導出する機能、
この導出したトークンｆ（Ｆwrite，Ｆpub）をサーバ装置に転送する機能、
このトークンｆ（Ｆwrite，Ｆpub）の転送後、前記サーバ装置から前記公開鍵データＦpubにより乱数Ｒが暗号化されたチャレンジ値Ｆpub（Ｒ）を受けると、このチャレンジ値Ｆpub（Ｒ）を前記秘密鍵データＦpriを用いて前記公開鍵暗号方式により復号化して乱数Ｒを得る機能、
この得られた乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を前記サーバ装置に転送する機能、
この値ｆ（Ｒ）の転送の後、前記サーバ装置から転送された前記暗号化ファイルセット及びデジタル署名を受信する機能、
前記公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて前記共通鍵暗号方式により、前記受信した暗号化ファイルセットを復号化してファイルセットを得る機能、
このファイルセットと前記公開鍵データＦpubとに基づいて、前記受信したデジタル署名を検証する機能、を実現させ、
前記書込処理の際には、
前記管理する秘密鍵データＦpriを用いて公開鍵暗号方式により、書込対象のファイルセットに対してデジタル署名を生成する機能、
前記管理する公開鍵データＦpubに一方向性関数ｆを適用して共通鍵データＦcryptを導出する機能、
この導出した共通鍵データＦcryptを用いて共通鍵暗号方式により、前記書込対象のファイルセットを暗号化して暗号化ファイルセットを得る機能、
前記書込対象のファイルセットに基づく暗号化ファイルセット及びデジタル署名を前記サーバ装置に転送する機能、
前記管理する秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出する機能、
この導出した書込用認証データＦwriteを前記サーバ装置に転送する機能、
を実現させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【請求項１５】
一つ又は複数のファイルからなるファイルセットが共通鍵暗号方式により暗号化された暗号化ファイルセット、前記ファイルセットに対して公開鍵暗号方式により生成されたデジタル署名、及び書込用認証データＦwriteが互いに関連付けられて記憶されるサーバ装置と、
前記公開鍵暗号方式の一対の公開鍵データＦpub及び秘密鍵データＦpriを管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理／書込処理を実行可能な第１クライアント装置と、
前記公開鍵データＦpub、自己の一対の公開鍵データＵpub及び秘密鍵データＵpri、前記ファイルセットに関する秘密鍵データＦpriから一方向性関数ｆにより得られる書込用認証データＦwriteと前記自己の公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝から一方向性関数ｆにより得られて前記第１クライアント装置から受けたトークンｆ（Ｆwrite，Ｕpub）を管理し、前記サーバ装置にアクセスして前記暗号化ファイルセット及びデジタル署名の読出処理を実行可能な第２クライアント装置と、
を備えた暗号化ファイルシステムに関し、前記サーバ装置に用いられるコンピュータ読取り可能な記憶媒体であって、
前記サーバ装置のコンピュータに、
前記書込処理の際に、
前記第１クライアント装置による書込処理が新規のファイルセットに基づくとき、前記第１クライアント装置から転送された書込用認証データＦwriteを保存する機能、
前記第１クライアント装置による書込処理が更新後のファイルセットに基づくとき、前記保存された書込用認証データＦwriteと、前記第１クライアント装置から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルセットに基づく暗号化ファイルセット及びデジタル署名を保存する機能、を実現させ、
前記各クライアント装置からの読出処理の際には、
前記暗号化ファイルセットの読出要求を受信したとき、この読出要求された暗号化ファイルセットに対応する書込用認証データＦwriteを読み出す機能、
前記読出要求元のクライアント装置の公開鍵データＵpubを受信する機能、
前記読出要求された暗号化ファイルセットに対応するトークンｆ（Ｆwrite，Ｕpub）を受信したとき、前記読み出した書込用認証データＦwriteと前記受信した公開鍵データＵpubとの組合せ値｛Ｆwrite，Ｕpub｝に一方向性関数ｆを適用して導出したトークンｆ（Ｆwrite，Ｕpub）と、前記受信したトークンｆ（Ｆwrite，Ｕpub）とを比較し、両者が一致するか否かを判定する機能、
この判定結果が両者の一致を示すとき、生成した乱数Ｒを前記公開鍵データＵpubを用いて公開鍵暗号方式により暗号化し、得られたチャレンジ値Ｕpub（Ｒ）を読出要求元のクライアント装置に転送する機能、
このチャレンジ値Ｕpub（Ｒ）の転送後、前記読出要求元のクライアント装置からチャレンジ値Ｕpub（Ｒ）が秘密鍵データＵpriにより復号化されて得られる乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を受信する機能、
この受信した値ｆ（Ｒ）が正当か否かを判定し、この判定結果が正当を示すとき、前記読出要求された暗号化ファイルセット及びデジタル署名を読出要求元のクライアント装置に転送する機能、
を実現させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散コンピュータシステムの暗号化ファイルシステムに用いられるファイルアクセス制御方法、プログラム及び記憶媒体に係り、特に、簡素な構成により、ファイルの読出権と書込権とを個別に制御でき、利便性を向上し得るファイルアクセス制御方法、プログラム及び記憶媒体に関する。
【０００２】
【従来の技術】
一つ又は複数のコンピュータから構成可能なコンピュータシステムの分野では、複数のコンピュータが通信機構を介して接続されてなる分散コンピュータシステムが広く知られている。
【０００３】
この種の分散コンピュータシステムでは、接続された各コンピュータのうち、サービスを要求してサービスの提供を受ける側の一つ又は複数のコンピュータがクライアント（以下、クライアント装置という）と呼ばれている。
【０００４】
一方、クライアント装置にサービスを提供する側のコンピュータが、サーバ（以下、サーバ装置という）と呼ばれている。具体的にはサーバ装置は、サービスの要求を受けると、共有の処理資源や記憶媒体等に対する共有アクセスをクライアント装置に提供する機能を有し、サーバ管理者により保守・管理が行われている。但し、サーバ管理者は、サーバ装置に物理的にアクセス可能なため、一般に、他のユーザにより保存されたファイルをサーバ装置から不正に読出可能であり、また、読み出したファイルの内容を不正に変更可能でもある。
【０００５】
しかしながら、サーバ管理者といえども不正な読出／変更処理が可能であることは、極秘ファイルを保存する上で好ましくない。
【０００６】
そこで、不正な読出処理を阻止し、ファイルの機密性を保護する観点から、保存対象のファイルを予め共通鍵暗号により暗号化して保存する暗号化ファイルシステムが広く用いられている。この暗号化ファイルシステムは、前述した機密性の保護に加え、ファイル内容の不正な変更処理を阻止し、ファイルの完全性（又は原本性）を保護する観点から、公開鍵暗号方式によるデジタル署名が用いられている。
【０００７】
さて、このような暗号化ファイルシステムでは、機密性保護のための共通鍵暗号方式の共通鍵と、完全性保護のための公開鍵暗号方式の鍵ペア、という二種類の鍵をクライアント装置側のユーザが管理する必要がある。また、係る鍵管理の負担とは別に、サーバ装置側では、保存ファイル毎に適切なユーザのみを読出／書込可能とするためにユーザ情報に基づく複雑なファイルアクセス制御を実現する必要がある。
【０００８】
一方、サーバ側のファイルアクセス制御を簡素化する観点から、サーバ装置がユーザの正当性を判断せずに、読出要求した全てのユーザに暗号化ファイルを提供する方法がリード（D. Reed）らにより提案されている（D. Reed and L. Svobodova; Swallow: A distributed data storage system for a local network, Local Networks for Computer Communications, pp.355-373, 1981）。
【０００９】
この方法は、暗号化ファイルの提供を受けたユーザのうち、正当な共通鍵を保持するユーザのみが暗号化ファイルを復号できることを利用し、結果的に、ファイルの読出権を制御するものである。この方法によれば、読出要求した全てのユーザに暗号化ファイルを提供するので、読出処理に関するファイルアクセス制御の方式が大幅に簡素化される。
【００１０】
【発明が解決しようとする課題】
しかしながら、以上のようなリードらの方法では、共通鍵暗号方式をファイルアクセス制御に転用することから、読出可能なユーザが即、書込可能なユーザとなる。このため、ファイルの読出権と書込権とを個別に制御できず、ファイルアクセス制御の機能が制限され、利便性を低下させてしまう。
【００１１】
また、リードらの方法では、サーバ装置側でファイルアクセス制御の構成が簡素化できたとしても、クライアント装置側では、依然として、共通鍵と鍵ペアとの二種類の鍵を管理する負担がある。
【００１２】
これらに加え、リードらの方法では、共通鍵を第三者に渡すと、その第三者も暗号化ファイルを復号可能となるため、暗号化ファイルを共有する複数のユーザからなる共有グループの構成をその共有グループ内のユーザ全員が増員できることになる。すなわち、共有グループに参加する権利と、共有グループの構成を増員させる権利とを個別に制御できないので、第三者が共有グループに参加してしまい、ファイルの機密性及び完全性の保護が不十分になる可能性がある。なお、この可能性は、参加した第三者が更に他の第三者に共通鍵を渡すことにより、大幅に増大してしまう。
【００１３】
本発明は上記実情を考慮してなされたもので、簡素な構成により、ファイルの読出権と書込権とを個別に制御でき、利便性を向上し得るファイルアクセス制御方法、プログラム及び記憶媒体を提供することを目的とする。
【００１４】
また、本発明の他の目的は、ユーザの鍵管理の負担を低減し得るファイルアクセス制御方法、プログラム及び記憶媒体を提供することにある。
【００１５】
さらに、本発明の他の目的は、第三者の共有グループへの参加を防ぎ、ファイルの機密性及び完全性を十分に保護し得るファイルアクセス制御方法、プログラム及び記憶媒体を提供することにある。
【００１６】
【課題を解決するための手段】
上記目的を達成するために、請求項１〜２，６〜７，１１〜１２に対応する第１の発明は、共通鍵暗号方式による暗号化ファイルセット、公開鍵暗号方式による当該ファイルセットのデジタル署名、及び書込用認証データＦwriteが保存されるサーバ装置に対し、クライアント装置が、共通鍵暗号方式の共通鍵データＦcryptを保持せず、公開鍵暗号方式の公開鍵データＦpub又は鍵ペア（Ｆpub，Ｆpri）のみを管理する簡素な構成により、クライアント・サーバ間のファイルアクセスを制御するものである。
【００１７】
ここで、公開鍵データＦpubは、ファイルアクセス権限のうちの読出権に対応しており、ファイルセット固有に生成された値であって、通常の（ユーザ固有の）公開鍵とは異なり、第三者に非公開である。また、秘密鍵データＦpriは、この公開鍵データＦpubと鍵ペアの関係にある値であり、ファイルアクセス権限のうちの書込権に対応する。
【００１８】
これにより、例えば読出処理の際には、クライアント装置は、サーバ装置から受ける暗号化ファイルセット及びデジタル署名に対し、公開鍵データＦpubから一方向性関数ｆにより共通鍵データＦcryptを導出し、この共通鍵データＦcryptを用いて暗号化ファイルセットを復号化し、公開鍵データＦpubによりデジタル署名を検証する。
【００１９】
また、書込処理の際には、クライアント装置は、秘密鍵データＦpriから一方向性関数ｆにより書込用認証データＦwriteを導出し、この書込用認証データＦwriteをサーバ装置に送信して書込権の認証を受けることにより、書込対象の暗号化ファイルセット及びデジタル署名をサーバ装置に送信して当該暗号化ファイルセット及びデジタル署名を保存させる。
【００２０】
従って、クライアント装置が公開鍵データ又は鍵ペアデータのみを管理する簡素な構成により、ファイル（セット）の読出権と書込権とを個別に制御でき、利便性を向上させることができる。また、共通鍵暗号方式の共通鍵を保持しないことから、ユーザの鍵管理の負担を低減させることができる。
【００２１】
一方、請求項３〜５，８〜１０，１３〜１５に対応する第２の発明は、第１の発明を前提とし、第１の発明の読出権（ファイルセット別の公開鍵データＦpub）に加え、クライアント装置固有の読出権を付加することにより、読出処理の際に、サーバ装置がクライアント装置を個別に認証するものである。
【００２２】
ここで、クライアント装置固有の読出権は、クライアント装置固有のトークンｆ（Ｆwrite，Ｕpub）及びクライアント装置固有の秘密鍵データＵpriに対応する。なお、トークンｆ（Ｆwrite，Ｕpub）は、クライアント装置固有の公開鍵データＵpubと前述した書込用認証データＦwriteとの組から一方向性関数ｆにより得られる値であり、予め読出権及び書込権をもつクライアント装置から読出権のみを持たせるクライアント装置に配布される。また、クライアント装置固有の秘密鍵データＵpriは、トークン内の公開鍵データＵpubに対して鍵ペアの関係にある値である。
【００２３】
これにより、読出処理の際には、サーバ装置は、クライアント装置から送信されたトークンに対し、クライアント装置の公開鍵データＵpubと予め保存された書込用認証データＦwriteとから導出されるトークンとを比較して両者が一致するか否かによりトークンの正当性を確認し、次いで、クライアント装置の公開鍵データＵpubにより乱数Ｒを暗号化し、得られた値Ｕpub（Ｒ）を当該クライアント装置が正しく復号化できるか否かにより、クライアント装置の正当性（秘密鍵データＵpriを持つこと）を確認する。
【００２４】
従って、これらの確認により、読出処理の際に、クライアント装置を個別に認証できるので、第１の発明の作用に加え、第三者の共有グループへの参加を防ぎ、ファイル（セット）の機密性及び完全性を十分に保護することができる。
【００２５】
【発明の実施の形態】
以下、本発明の各実施形態について図面を参照しながら説明する。なお、第１の実施形態が前述した第１の発明に対応し、第２の実施形態が前述した第２の発明に対応している。
【００２６】
（第１の実施形態）
図１は本発明の第１の実施形態に係るファイルアクセス制御方法が適用された暗号化ファイルシステムの概略構成を示す模式図である。
【００２７】
この暗号化ファイルシステムは、図示するように、ファイルサーバ装置１０と、第１クライアント装置２０１、第２クライアント装置２０２及び他の各クライアント装置（図示せず）とが互いにネットワーク４０を介して接続されている。
【００２８】
ここで、ファイルサーバ装置１０は、図２に示すように、ファイル記憶部１１、ファイル管理部１２及び通信Ｉ／Ｆ部１３を備えている。
【００２９】
ファイル記憶部１１は、ファイル管理部１２により読出／書込可能なメモリ部であり、暗号化ファイルセット毎に、ファイルセット名ＩＤfs、書込用認証データＦwrite、暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）が互いに関連付けられて記憶されるものである。
【００３０】
ファイルセットfsは、一つ又は複数のファイルから構成されるファイル群を意味しており、“ファイルセット”の用語に代えて、“ディレクトリ”又は“フォルダ”の用語を用いてもよい。ファイルセット名ＩＤfsはこのファイル群を特定するための特定情報を意味している。
【００３１】
書込用認証データＦwriteは、新規登録後の暗号化ファイルセットＦcrypt（fs）の書込の際に、ユーザ認証に用いられるデータであり、後述する書込権付き秘密鍵データＦpriに一方向性関数ｆを適用して得られる値ｆ（Ｆpri）＝Ｆwriteである。なお、データの修飾語である「書込用認証」は、説明の便宜上のものであり、「書込用」に代えて「書込時」又は「書込権」を用いたり、「認証」に代えて「照合」又は「確認」というように、適宜、言い換えても構わない。
【００３２】
暗号化ファイルセットＦcrypt（fs）は、ファイルセットfsが読出用共通鍵データＦcryptに基づいて共通鍵暗号方式により暗号化されたものである。なお、読出用共通鍵データＦcryptは、後述する読出権付き公開鍵データＦpubに一方向性関数ｆを適用して得られる値ｆ（Ｆpub）＝Ｆcryptであり、ファイルセットfsの暗号化及び復号化の両方に用いられる。また同様に、共通鍵データの修飾語である「読出用」は、説明の便宜上のものであり、「読出用」を省略したり、あるいは「読出用」に代えて「暗復号用」又は「ファイル用」というように、適宜、言い換えても構わない。
【００３３】
署名Ｆpri（fs）は、ファイルセットfsのデジタル署名であり、ファイルセットfsが書込権付き秘密鍵データＦpriに基づいて公開鍵暗号方式により暗号化されたものである。
【００３４】
ファイル管理部１２は、クライアント装置２０ｉ（ｉ＝１，２，…）からの要求に基づいて、以下のように、ファイル記憶部１１に対する暗号化ファイルセット毎の新規登録機能１２ａ、読出機能１２ｂ及び書込機能１２ｃを実現するためのものである。
【００３５】
（１２ａ）第１クライアント装置２０１による書込処理が新規のファイルセットfsに基づくとき、第１クライアント装置２０１により秘密鍵データＦpriに一方向性関数ｆを適用して導出され且つ転送された書込用認証データＦwriteをファイル記憶部１１に保存する機能。
【００３６】
（１２ｂ）第１又は第２クライアント装置２０１，２０２から読出要求された暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）をファイル記憶部１１から読み出して読出要求元の第１又は第２クライアント装置２０１，２０２に転送する機能。
【００３７】
（１２ｃ）第１クライアント装置２０１による書込処理が更新後のファイルセットfs’に基づくとき、ファイル記憶部１１に保存された書込用認証データＦwriteと、第１クライアント装置２０１から転送された書込用認証データＦwriteとを比較し、両者が一致することにより、更新後のファイルに基づく暗号化ファイルセットＦcrypt（fs’）及びデジタル署名Ｆpri（fs’）をファイル記憶部１１に保存する機能。
【００３８】
通信Ｉ／Ｆ部１３は、ファイルサーバ装置１０内部とネットワーク４０との間のインターフェイスである。
【００３９】
一方、各クライアント装置２０１，２０２，…は、図３に示すように、互いに同一のハードウェア構成をもつため、ここでは第１クライアント装置２０１を代表例に挙げて説明する。但し、ハードウェア構成は同一であるが、ファイルセットの読出権と書込権との保持状況は、各クライアント装置２０１，２０２，…により異なる。
【００４０】
例えば第１クライアント装置２０１は、ファイルセットfsの読出権と書込権とを有するユーザＵ１により操作されるため、読出権付き公開鍵データＦpub及び書込権付き秘密鍵データＦpriが鍵管理部２４に保持されている。
【００４１】
一方、第２クライアント装置２０２は、ファイルセットfsの読出権のみを有するユーザＵ２により操作されるため、読出権付き公開鍵データＦpubが鍵管理部２４に保持されている。なお、読出権のみ、又は読出権及び書込権を配布する際の第１クライアント装置２０１から第２クライアント装置２０２等への鍵データの配送は、第三者への漏洩が阻止される方法であれば、任意の方法が使用可能となっている。
【００４２】
さて、第１クライアント装置２０１は、入力部２１、ＲＡＭ２２、ファイル作成部２３、鍵管理部２４、公開鍵暗号部２５、一方向性関数部２６、共通鍵暗号部２７、制御部２８、出力部２９及び通信Ｉ／Ｆ部３０が互いにバス３１を介して接続されており、言うまでも無いが、各部２１〜３１以外にも通常のコンピュータ機能を有している。
【００４３】
また、各部２３〜２９は、アプリケーションソフトウェアと共通のＣＰＵの一機能とによって構成可能であり、予め各部２３〜２９の機能を実現するためのプログラムが記憶媒体又はネットワーク等から予めインストールされて実現される。但し、各部２３〜２９のうち、演算に関する機能部２５〜２７は、適宜、高速演算用のコプロセッサ等をソフトウェアで制御する方式としても良い。
【００４４】
入力部２１は、ユーザＵ１の入力操作により、図示しない入力デバイスからの入力内容を制御部２８に入力するものである。ここで、入力デバイスとしては、例えばキーボード又はマウス等が使用可能となっている。
【００４５】
ＲＡＭ２２は、各部２３，２５〜２８により読出／書込可能なメモリ部であり、特に、計算途中の値や算出結果などを一時的に保持するのに用いられる。
【００４６】
ファイル作成部２３は、ユーザＵ１の入力操作により、ＲＡＭ２２にファイルを一時的に保持させつつ、ファイルの作成、編集及び印刷等の処理を行なうためのワード・プロセッサ部である。
【００４７】
鍵管理部２４は、制御部２８により読出／書込可能な不揮発性のメモリ部であり、図４に示すように、ファイルセット名ＩＤfs毎に、一つ又は複数のファイルｆ１〜ｆｎに対応するファイル名ｎ１，…ｎｎ、読出権付き公開鍵データＦpub及び書込権付き秘密鍵データＦpriが記憶可能となっている。なお、前述同様に、公開鍵データや秘密鍵データの修飾語である「読出権付き」や「書込権付き」は、説明の便宜上のものであり、適宜、省略又は他の用語に言い換えても構わない。
【００４８】
ここで、鍵管理部２４は、書込権及び読出権をもつ場合、図４に示したように、読出権付き公開鍵データＦpub及び書込権付き秘密鍵データＦpriの両者が記憶されるが、読出権のみをもつ場合、図５（ａ）又は（ｂ）に示すように、両者のうち、書込権付き秘密鍵データＦpriが記憶されない。
【００４９】
公開鍵暗号部２５は、制御部２８により制御されて所定の公開鍵暗号方式を用い、以下のような各機能２５ａ〜２５ｃを実現するためのものである。
（２５ａ）ファイルセット名fs毎に、読出権付き公開鍵データＦpub及び書込権付き秘密鍵データＦpriからなる鍵ペアを作成し、得られた鍵ペアを鍵管理部２４に記憶させるために制御部２８に送出する鍵ペア生成機能。
【００５０】
（２５ｂ）制御部２８からファイルセット名ＩＤfsの指定を伴う署名生成要求を受けると、ＲＡＭ２２内の該当するファイルセットfsを鍵管理部２４内の書込権付き秘密鍵データＦpriに基づいて暗号化してデジタル署名Ｆpri（fs）を生成し、当該デジタル署名Ｆpri（fs）をＲＡＭ２２に書込む署名生成機能。なお、デジタル署名Ｆpri（fs）の生成時に、ファイルセットfsのハッシュ値を生成する場合、一方向性関数部２６の一方向性関数ｆがハッシュ関数であれば、一方向性関数部２６を用いればよい。
【００５１】
（２５ｃ）制御部２８から署名検証要求、署名Ｆpri（fs）及び読出権付き公開鍵データＦpubを受けると、署名Ｆpri（fs）を読出権付き公開鍵データＦpubにより検証し、検証結果を制御部２８に送出する署名検証機能。
【００５２】
なお、公開鍵暗号方式は、暗号化ファイルシステム内の全装置１０，２０１，２０２，…が使用可能な方式であれば、ＲＳＡ(Rivest Shamir Adleman)署名やＤＳＡ(Digital Signature Algorithm)署名といった任意の方式を適用可能である。
【００５３】
一方向性関数部２６は、制御部２８から受けた対象データＦに所定の一方向性関数ｆを適用して（関数）値ｆ(Ｆ)を導出し、この値ｆ(Ｆ)をＲＡＭ２２に書込む機能をもっている。
【００５４】
ここで、対象データＦは、書込権付き秘密鍵データＦpri又は読出権付き公開鍵データＦpubである。導出される値ｆ(Ｆ)は、書込用認証データＦwrite（＝ｆ(Ｆpri)）又は読出用共通鍵データＦcrypt（＝ｆ(Ｆpub)）である。
【００５５】
また、所定の一方向性関数ｆは、暗号化ファイルシステム内の全てのクライアント装置２０１，２０２，…間で共通の一方向性関数ｆを意味している。また、一方向性関数ｆ自体としては、当該関数ｆの適用後の値ｆ(Ｆ)から適用前の値Ｆを再現することが困難である一方向性と、当該関数ｆの適用後の値ｆ(Ｆ)，ｆ(Ｇ)を同一値（ｆ(Ｆ)＝ｆ(Ｇ)）とするような互いに異なる適用前の値Ｆ，Ｇを生成することが困難である衝突困難性という二つの性質を持つ関数であれば、ハッシュ関数（例、ＭＤ５(Message Digest Algorithm 5)、ＳＨＡ−１(Secure Hash Algorithm 1)）等の任意の関数が使用可能となっている。
【００５６】
共通鍵暗号部２７は、制御部２８により制御されて所定の共通鍵暗号方式を用い、以下のような各機能２７ａ〜２７ｂを実現するためのものである。
（２７ａ）制御部２８から暗号化要求、ファイルセットfs及び読出用共通鍵データＦcryptを受けると、ファイルセットfsを読出用共通鍵データＦcryptにより暗号化し、得られた暗号化ファイルセットＦcrypt（fs）をＲＡＭ２２に書込む暗号化機能。
【００５７】
（２７ｂ）制御部２８から復号化要求、暗号化ファイルセットＦcrypt（fs）及び読出用共通鍵データＦcryptを受けると、暗号化ファイルセットＦcrypt（fs）を読出用共通鍵データＦcryptにより復号化し、得られたファイルセットfs（＝Ｆcrypt(Ｆcrypt(fs))）をＲＡＭ２２に書込む復号化機能。
【００５８】
なお、共通鍵暗号方式は、前述同様にシステム内の全装置１０，２０１，２０２，…が使用可能な方式であれば、ＤＥＳ(Data Encryption Standard)やＦＥＡＬ(Fast Data Encipherment Algorithm)といった任意の方式を適用可能である。
【００５９】
制御部２８は、ファイルサーバ装置１０に対して、図６乃至図８の各々左側に示す如き、ファイルセットの新規登録処理、読出処理及び書込処理を実現させるためのものである。
【００６０】
具体的には、制御部２８は、各部２４〜３０を制御する機能により、次の読出機能２８ａ及び書込機能２８ｂを実現している。
（２８ａ）読出処理の際に、読出要求をファイルサーバ装置１０に送信する機能と、ファイルサーバ装置１０から暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）を受信する機能と、鍵管理部２４内の公開鍵データＦpubを一方向性関数部２６に入力して共通鍵データＦcryptを導出させる機能と、この導出させた共通鍵データＦcryptを共通鍵暗号部２７に入力して暗号化ファイルセットＦcrypt（fs）を復号化させる機能と、この復号化により得られたファイルセットfsと公開鍵データＦpubとに基づいて、公開鍵暗号部２５にデジタル署名Ｆpri（fs）を検証させる機能。
【００６１】
（２８ｂ）新規登録処理又は書込処理の際に、鍵管理部２４内の秘密鍵データＦpriを一方向性関数部２６に入力して書込用認証データＦwriteを導出させる機能と、鍵管理部２４内の公開鍵データＦpubを一方向性関数部２６に入力させて共通鍵データＦcryptを導出させる機能と、導出させた書込用認証データＦwriteをファイルサーバ装置１０に転送する機能と、鍵管理部２４内の秘密鍵データＦpriを公開鍵暗号部２５に入力して、書込対象のファイルセットfsに対してデジタル署名Ｆpri（fs）を生成させる機能と、導出させた共通鍵データＦcryptを共通鍵暗号部２７に入力して、書込対象のファイルセットfsを暗号化して暗号化ファイルセットＦcrypt（fs）を得る機能と、これら暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）をファイルサーバ装置１０に転送する機能。
【００６２】
出力部２９は、通常の画面表示や印字出力のための機能であり、例えば各部２１，２３，２５〜３０から受けるデータを表示装置（図示せず）に画面表示させるための表示処理機能と、ユーザＵ１の操作に基づいて画面表示の内容などをプリンタ（図示せず）に印字出力するための印字出力機能とを併せて図示したものである。
【００６３】
通信Ｉ／Ｆ部３０は、第１クライアント装置２０１内部とネットワーク４０との間のインターフェイスである。
【００６４】
次に、以上のように構成された暗号化ファイルシステムの動作を図６乃至図８のフローチャートを用いて、ファイルセットの新規登録処理、読出処理及び書込処理の順に説明する。
（新規登録処理：図６）
ここでは、ファイルセットfsに対する書込権を有するユーザＵ１（例、ファイルの所有者）が新規のファイルセットfsを作成してファイルサーバ装置１０に保存する場合について述べる。
【００６５】
第１クライアント装置２０１は、ユーザＵ１の操作により、ファイル作成部２３がファイルセットfsを作成し、このファイルセットfsをファイルセット名ＩＤfsと共に、ＲＡＭ２２に書込む。ここで、ファイルセットfsは、各ファイル名ｎ１〜ｎｎを個別に有する各ファイルｆ１〜ｆｎからなるファイル群であり、ファイルサーバ装置１０への保存対象であるとする。
【００６６】
このとき、第１クライアント装置２０１は、制御部２８の制御により、公開鍵暗号部２５が当該ファイルセットfsに対して鍵ペア（読出権付き公開鍵データＦpub，書込権付き秘密鍵データＦpri）を生成し（ＳＴ１）、図４に示したように、これら読出権付き公開鍵データＦpub、書込権付き秘密鍵データＦpri、ファイルセット名ＩＤfs及び各ファイル名ｎ１〜ｎｎを互いに関連付けて鍵管理部２４に書込む。
【００６７】
次に、第１クライアント装置２０１は、制御部２８の制御により、一方向性関数部２６が当該書込権付き秘密鍵データＦpri及び読出権付き公開鍵データＦpubに対し、それぞれ一方向性関数ｆを適用して書込用認証データＦwrite（＝ｆ(Ｆpri)）及び読出用共通鍵データＦcrypt（＝ｆ(Ｆpub)）を導出し（ＳＴ２〜ＳＴ３）、ＲＡＭ２２に一時的に保存する。但し、ステップＳＴ３のＦcryptの導出は、ステップＳＴ１とＳＴ７との間であれば、適宜、他のタイミングで行なっても良い。
【００６８】
しかる後、第１クライアント装置２０１は、制御部２８の制御により、ファイルセット名fs、各ファイル名ｎ１〜ｎｎ及び書込用認証データＦwriteをファイルサーバ装置１０に転送する（ＳＴ４）。なお、Ｆwriteの転送も、ステップＳＴ２とＳＴ９との間であれば、適宜、他のタイミングで行なって良く、この場合、Ｆwriteの導出も転送前であれば適宜なタイミングで行なっても良い。
【００６９】
一方、ファイルサーバ装置１０では、ファイル管理部１２がファイルセット名fs、各ファイル名ｎ１〜ｎｎ及び書込用認証データＦwriteを互いに関連付けてファイル記憶部１１に保存する（ＳＴ５）。
【００７０】
また一方、第１クライアント装置２０１は、制御部２８の制御により、公開鍵暗号部２５が書込権付き秘密鍵データＦpriに基づき、ファイルセットfsに対してデジタル署名Ｆpri（fs）を生成し（ＳＴ６）、このデジタル署名Ｆpri（fs）をＲＡＭ２２に書込む。
【００７１】
続いて、第１クライアント装置２０１は、制御部２８の制御により、共通鍵暗号部２７が、ステップＳＴ３で導出した読出用共通鍵データＦcryptを用い、共通鍵暗号方式によりファイルセットfsを暗号化し（ＳＴ７）、得られた暗号化ファイルセットＦcrypt（fs）をＲＡＭ２２に書込む。
【００７２】
しかる後、第１クライアント装置２０１は、制御部２８の制御により、ＲＡＭ２２内の暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）をファイルセット名ＩＤfsと共に、ファイルサーバ装置１０に転送する（ＳＴ８）。
【００７３】
ファイルサーバ装置１０では、図２に示したように、ファイル管理部１２が、このファイルセット名ＩＤfsに基づき、ステップＳＴ５で保存したファイルセット名ＩＤfsに関連付けて、暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）をファイル記憶部１１に保存する（ＳＴ９）。
これにより、ファイルサーバ装置１０上へのファイルセットfsの新規登録処理が完了する。
【００７４】
（読出処理：図７）
始めに、読出権の配布について述べ、しかる後、読出処理を説明する。
第１クライアント装置２０１は、ファイルセットfsの読出権をユーザＵ２に配布する場合、ユーザＵ１の操作により、鍵管理部２４内の読出権付き公開鍵データＦpubをファイルセット名ＩＤfs及び各ファイル名ｎ１〜ｎｎと共に、ユーザＵ２の第２クライアント装置２０２に配布する。
【００７５】
第２クライアント装置２０２は、図５に示したように、これら読出権付き公開鍵データＦpub、ファイルセット名ＩＤfs及び各ファイル名ｎ１〜ｎｎを互いに関連付けて鍵管理部２４に保存する。
【００７６】
これにより、読出権の配布が完了し、第２クライアント装置２０２は、ファイルセット名ＩＤfsに対応する暗号化ファイルセットＦcrypt（fs）をファイルサーバ装置１０から読出可能となる。なお、第１クライアント装置２０１の方も、暗号化ファイルセットＦcrypt（fs）を読出可能なことは言うまでもない。
【００７７】
さて次に、第２クライアント装置２０２を例に挙げて読出処理を説明する。
第２クライアント装置２０２は、ユーザＵ２の操作により、制御部２８がファイルセット名ＩＤfsを含む読出要求をファイルサーバ装置１０に送信する（ＳＴ１１）。
【００７８】
ファイルサーバ装置１０は、読出要求を受けると、特に認証を行なわずに、ファイル管理部１２が読出要求のファイルセット名ＩＤfsに対応する暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）をファイル記憶部１１から検索し、得られた暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）を要求元の第２クライアント装置２０２に転送する（ＳＴ１２）。
【００７９】
第２クライアント装置２０２は、暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）を受けると、制御部２８の制御により、一方向性関数部２６が、読出要求したファイルセット名ＩＤfsに対応する読出権付き公開鍵データＦpubに一方向性関数ｆを適用して読出用共通鍵データＦcryptを導出し、この読出用共通鍵データＦcryptをＲＡＭ２２に一時的に書込む。
【００８０】
次に、第２クライアント装置２０２は、制御部２８の制御により、共通鍵暗号部２７が、この読出用共通鍵データＦcryptを用い、共通鍵暗号方式により暗号化ファイルセットＦcrypt（fs）を復号化し（ＳＴ１３）、得られたファイルセットfsをＲＡＭ２２に一時的に書込む。
【００８１】
しかる後、第２クライアント装置２０２は、制御部２８の制御により、公開鍵暗号部２５が読出権付き公開鍵データＦpubに基づいて署名Ｆpri（fs）を検証し、署名の正当性を確認する（ＳＴ１４）。
【００８２】
（書込処理：図８）
次に、第１クライアント装置２０１を例に挙げて書込処理を説明する。
始めに、第１クライアント装置２０１は、前述した図７の手順と同様に、ファイルセットfsの読出処理を実行したとする。また、第１クライアント装置２０１は、ユーザＵ１の操作により、ファイル作成部２３がファイルセットfsの内容を更新し、更新後のファイルセットfs’をファイルセット名ＩＤfsと共に、ＲＡＭ２２に書込む。
【００８３】
次に、第１クライアント装置２０１は、制御部２８の制御により、公開鍵暗号部２５が、鍵管理部２２内の対応する書込権付き秘密鍵データＦpriを用いてファイルセットfs’に対してデジタル署名Ｆpri（fs’）を生成し、このデジタル署名Ｆpri（fs’）をＲＡＭ２２に書込む。
【００８４】
次に、第１クライアント装置２０１は、制御部２８の制御により、前述同様に読出権付き公開鍵データＦpubに一方向性関数ｆを適用して読出用共通鍵データＦcryptを導出し、この読出用共通鍵データＦcryptを用いて共通鍵暗号方式によりファイルセットfs’を暗号化し、得られた暗号化ファイルセットＦcrypt（fs’）をＲＡＭ２２に書込む。
【００８５】
しかる後、第１クライアント装置２０１は、制御部２８の制御により、ＲＡＭ２２内の暗号化ファイルセットＦcrypt（fs’）及び署名Ｆpri（fs’）をファイルセット名ＩＤfsと共に、ファイルサーバ装置１０に転送する（ＳＴ２１）。
【００８６】
ファイルサーバ装置１０では、ファイル管理部１２が、このファイルセット名ＩＤfsに基づき、ファイル記憶部１１から書込用認証データＦwriteを読み出す（ＳＴ２２）。
【００８７】
続いて、第１クライアント装置２０１は、制御部２８の制御により、前述同様に書込権付き秘密鍵データＦpriに一方向性関数ｆを適用して書込用認証データＦwriteを導出し、この書込用認証データＦwriteをファイルサーバ装置１０に転送する（ＳＴ２３）。なお、Ｆwriteの転送は、ステップＳＴ２１と同時又はそれ以前に行なっても良い。
【００８８】
ファイルサーバ装置１０は、ステップＳＴ２２で読み出した書込用認証データＦwriteとステップＳＴ２３で受けた書込用認証データＦwriteとが一致するか否かを判定し（ＳＴ２４）、一致しなければアクセスを拒否して処理を終了するが（ＳＴ２５）、ここでは一致するとして、ステップＳＴ２１で受けたファイルセット名ＩＤfsに関連付けて、暗号化ファイルセットＦcrypt（fs’）及び署名Ｆpri（fs’）をファイル記憶部１１に保存する（ＳＴ２６）。
【００８９】
上述したように本実施形態によれば、例えば新規登録時には、第１クライアント装置２０１は、秘密鍵データＦpriから一方向性関数ｆにより書込用認証データＦwriteを導出し、この書込用認証データＦwriteと、書込対象の暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）とを互いに関連付けてファイルサーバ装置１０に保存させることにより、ファイルの読出処理と書込処理とが個別に実行可能となる。
【００９０】
例えば読出処理の際には、第２クライアント装置２０２は、ファイルサーバ装置１０から受ける暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）に対し、公開鍵データＦpubから一方向性関数ｆにより共通鍵データＦcryptを導出し、この共通鍵データＦcryptを用いて暗号化ファイルセットＦcrypt（fs）を復号化し、公開鍵データＦpubによりデジタル署名Ｆpri（fs）を検証する。
【００９１】
また、書込処理の際には、第１クライアント装置２０１は、秘密鍵データＦpriから一方向性関数ｆにより書込用認証データＦwriteを導出し、この書込用認証データＦwriteをファイルサーバ装置１０に送信して書込権の認証を受けることにより、書込対象の暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）をファイルサーバ装置１０に送信して当該暗号化ファイル及びデジタル署名を保存させる。
【００９２】
従って、クライアント装置２０ｉが公開鍵データ又は鍵ペアデータのみを管理する簡素な構成により、ファイルの読出権と書込権とを個別に制御でき、利便性を向上させることができる。また、共通鍵暗号方式の共通鍵を保持しないことから、ユーザの鍵管理の負担を低減させることができる。
【００９３】
換言すると、ファイルの完全性を保護するための公開鍵暗号方式の鍵ペア（Ｆpub，Ｆpri）を、機密性を保護するための共通鍵暗号方式の共通鍵データとしても用いることでユーザの管理する鍵データ数を減らし、加えて、その鍵ペアを用いたファイルヘの読出権、書込権の個別の制御を実現することで、適切なユーザのみを読出／書込可能とする従来のアクセス制御の機能を維持したまま、サーバ装置で従来必要とされる複雑なファイルアクセス制御機能を大幅に簡素化することができる。
【００９４】
また、書込権付き秘密鍵データＦpriから書込用認証データＦwriteの導出には一方向性関数ｆを用いるため、ファイルサーバ装置１０は、保持する書込用認証データＦwriteから逆に書込権付き秘密鍵データＦpriを導出できない。よって、ファイルサーバ装置１０の管理者であってもファイルセットfsに対するデジタル署名を生成できないので、ファイルセットを不正に書換えできず、ファイルセットの完全性が保護される。
【００９５】
また、ファイルサーバ装置１０は、暗号化ファイルセットＦcrypt（fs）を保持するが、読出権付き公開鍵データＦpubを持たない。よって、ファイルサーバ装置１０の管理者であっても暗号化ファイルセットを復号化できないので、ファイルセットを不正に読み出しできず、ファイルセットの機密性が保護される。
【００９６】
（第２の実施形態）
図９は本発明の第２の実施形態に係るファイルアクセス制御方法が適用された暗号化ファイルシステムの概略構成を示す模式図であり、図１０及び図１１はそれぞれ同システム内のファイルサーバ装置又は各クライアント装置の構成を示す模式図であって、図１乃至図３と同一部分には同一符号を付すと共に、変更部分にはｘの添字を付して、前述した部分と重複した説明を省略し、ここでは異なる部分について主に述べる。
【００９７】
すなわち、本実施形態は、第１の実施形態の変形例であり、読出権として、前述した読出権（読出権付き公開鍵データＦpub）に加え、クライアント装置２０ｘｊ（ｊ＝１，２，…）固有の読出権を付加することにより、読出処理の際に、ファイルサーバ装置１０ｘが各クライアント装置２０ｘｊを個別に認証可能とするものである。
【００９８】
ここで、各クライアント装置２０ｘｊ固有の読出権は、各クライアント装置２０ｘｊ固有のトークンｆ（Ｆwrite，Ｕｊpub）及び各クライアント装置２０ｘｊ固有の秘密鍵データＵｊpriに対応する。
【００９９】
トークンｆ（Ｆwrite，Ｕｊpub）は、各クライアント装置２０ｘｊ固有の公開鍵データＵｊpubと前述した書込用認証データＦwriteとの組から一方向性関数ｆにより得られる値であり、予め読出権及び書込権をもつ第１クライアント装置２０ｘ１から、読出権のみを持たせる例えば第２クライアント装置２０ｘ２に配布される。
【０１００】
各クライアント装置２０ｘｊ固有の秘密鍵データＵｊpriは、トークンｆ（Ｆwrite，Ｕｊpub）内の公開鍵データＵｊpubに対して鍵ペアの関係にある値である。
【０１０１】
なお、ファイルセットfsに関する鍵ペア（Ｆpub，Ｆpri）の公開鍵暗号方式と、ユーザ固有の鍵ペア（Ｕｊpub，Ｕｊpri）の公開鍵暗号方式とは、構成の簡素化の観点からは互いに同一の公開鍵暗号方式、又は互いに同一の鍵生成アルゴリズムを用いる公開鍵暗号方式（例、ＲＳＡ署名とＲＳＡ暗号）の方が好ましいが、これに限らず、互いに異なる公開鍵暗号方式としてもよい。また、ファイルセットfsに関する公開鍵データＦpubは第三者に非公開であるが、ユーザ固有の公開鍵データＵｊpubは第三者に公開されていてもよい。
【０１０２】
以上に伴い、ファイルサーバ装置１０ｘのファイル管理部１２ｘは、前述した新規登録機能１２ａ及び書込機能１２ｃを有する一方、前述した読出機能１２ｂに代えて、次の読出機能１２ｂｘ１〜１２ｂｘ６を有するものとなっている。
【０１０３】
（１２ｂｘ１）クライアント装置２０ｘｊから暗号化ファイルセットＦcrypt（fs）の読出要求を受信したとき、この読出要求された暗号化ファイルセットに対応する書込用認証データＦwriteをファイル記憶部１１から読出す機能。
（１２ｂｘ２）読出要求元のクライアント装置２０ｘｊのユーザ公開鍵データＵｊpubを受信する機能。
【０１０４】
（１２ｂｘ３）読出要求された暗号化ファイルセットＦcrypt（fs）に対応するトークンｆ（Ｆwrite，Ｕｊpub）を受信したとき、ファイル記憶部１１から読み出した書込用認証データＦwriteと受信した公開鍵データＵｊpubとの組合せ値｛Ｆwrite，Ｕｊpub｝に一方向性関数ｆを適用して導出したトークンｆ（Ｆwrite，Ｕｊpub）と、受信したトークンｆ（Ｆwrite，Ｕｊpub）とを比較し、両者が一致するか否かを判定する機能。
【０１０５】
（１２ｂｘ４）この判定結果が両者の一致を示すとき、生成した乱数Ｒを公開鍵データＵｊpubを用いて公開鍵暗号方式により暗号化し、得られたチャレンジ値Ｕｊpub（Ｒ）を読出要求元のクライアント装置２０ｘｊに転送する機能。
【０１０６】
（１２ｂｘ５）このチャレンジ値Ｕpub（Ｒ）の転送後、読出要求元のクライアント装置２０ｘｊから、チャレンジ値Ｕpub（Ｒ）が秘密鍵データＵｊpriにより復号化されて得られる乱数Ｒに一方向性関数ｆを適用して得られた値ｆ（Ｒ）を受信する機能。
【０１０７】
（１２ｂｘ６）この受信した値ｆ（Ｒ）が正当か否かを判定し、この判定結果が正当を示すとき、読出要求された暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）を読出要求元のクライアント装置２０ｘｊに転送する機能。
【０１０８】
一方、各クライアント装置２０ｘｊの鍵管理部２４ｘは、制御部２８ｘにより読出／書込可能な不揮発性のメモリ部であり、書込権及び読出権をもつ場合、図４と同様に、ファイルセット名ＩＤfs毎に、一つ又は複数のファイルｆ１〜ｆｎに対応するファイル名ｎ１，…ｎｎ、読出権付き公開鍵データＦpub及び書込権付き秘密鍵データＦpriが記憶可能となっている。
【０１０９】
また、鍵管理部２４ｘは、読出権のみをもつ場合、図１２に示すように、書込権付き秘密鍵データＦpriに代えて、読出権付きトークンｆ（Ｆwrite，Ｕ２pub）が記憶され、また、ユーザ固有の鍵ペア（例、Ｕ２pub，Ｕ２pri）が記憶される。
【０１１０】
各クライアント装置２０ｘｊの制御部２８ｘは、前述した制御部２８と同一の新規登録処理及び書込処理の各機能２８ｂを有し、さらに、図１３の左側及び次に示す如き、読出処理の機能２８ａｘ１〜９を備えている。但し、各機能２８ａｘ１〜９のうち、２８ａｘ１，６〜９は、前述した読出機能２８ａと同様である。
【０１１１】
（２８ａｘ１）暗号化ファイルセットＦcrypt（fs）の読出要求をファイルサーバ装置１０ｘに転送する機能。
【０１１２】
（２８ａｘ２）鍵管理部２４ｘ内の自己の公開鍵データＵｊpubをファイルサーバ装置１０ｘに転送する機能。
（２８ａｘ３）読出権のみを有する場合、読出要求した暗号化ファイルセットＦcrypt（fs）に対応するトークンｆ（Ｆwrite，Ｕｊpub）を鍵管理部２４ｘからファイルサーバ装置１０ｘに転送する機能。なお、書込権及び読出権を有する場合は、読出要求した暗号化ファイルセットＦcrypt（fs）に対応するトークンを導出し、この導出したトークンをファイルサーバ装置１０ｘに転送する機能。
【０１１３】
（２８ａｘ４）ファイルサーバ装置１０ｘから公開鍵データＵｊpubにより乱数Ｒが暗号化されたチャレンジ値Ｕｊpub（Ｒ）を受けると、このチャレンジ値Ｕｊpub（Ｒ）と鍵管理部２４ｘ内の自己の秘密鍵データＵｊpriとを公開鍵暗号部２５に入力し、チャレンジ値Ｕｊpub（Ｒ）を復号化して乱数Ｒを得る機能。
（２８ａｘ５）この得られた乱数Ｒを一方向性関数部２６に入力して得られた値ｆ（Ｒ）をファイルサーバ装置１０ｘに転送する機能。
【０１１４】
（２８ａｘ６）ファイルサーバ装置１０ｘから転送された暗号化ファイルセットＦcrypt（fs）及びデジタル署名Ｆpri（fs）を受信する機能。
（２８ａｘ７）鍵管理部２４ｘ内の読出権付き読出権付き公開鍵データＦpubを一方向性関数部２６に入力して読出用共通鍵データＦcryptを導出する機能。
（２８ａｘ８）この読出用共通鍵データＦcryptを共通鍵暗号部２７に入力し、受信した暗号化ファイルセットＦcrypt（fs）を復号化してファイルセットfsを得る機能。
（２８ａｘ９）このファイルセットfsと読出権付き公開鍵データＦpubとに基づいて、受信したデジタル署名Ｆpri（fs）を検証する機能。
【０１１５】
なお、以上の読出機能２８ａｘ１〜９において、第１クライアント装置２０ｘ１では、鍵管理の負担を低減する観点から、自己の鍵ペア（Ｕ１pub，Ｕ１pri）に代えて、ファイル別の鍵ペア（Ｆpub，Ｆpri）を用い、且つトークンをｆ（Ｆwrite，Ｆpub）とすることが好ましいが、これに限らず、書込権を持たないユーザＵ２と同様に、自己の鍵ペア（Ｕ１pub，Ｕ１pri）を用い、且つトークンをｆ（Ｆwrite，Ｕ１pub）としてもよい。
【０１１６】
次に、以上のように構成された暗号化ファイルシステムの動作を説明するが、新規登録処理及び書込処理は前述した処理と同一のため、ここでは読出処理についてのみ図１３を用いて述べる。
【０１１７】
（読出処理：図１３）
始めに、読出権の配布について述べ、しかる後、読出処理を説明する。
第１クライアント装置２０ｘ１は、ファイルセットfsの読出権をユーザＵ２に配布する場合、ユーザＵ２の第２クライアント装置２０ｘ２にユーザ公開鍵データＵ２pubを要求し、ユーザ公開鍵データＵ２pubを受信する。
【０１１８】
また、一方向性関数部２６により、前述同様に、ファイルセットfsに対応する書込用認証データＦwriteを導出する。なお、ユーザ公開鍵データＵ２pubの要求と、書込用認証データＦwriteの導出とはいずれを先にしてもよい。
【０１１９】
続いて、第１クライアント装置２０ｘ１は、これら書込用認証データＦwriteと、ユーザ公開鍵データＵ２pubとの組合せ値｛Ｆwrite，Ｕ２pub｝に一方向性関数ｆを適用して読出権付きトークンｆ（Ｆwrite，Ｕ２pub）を導出し、得られた読出権付きトークンｆ（Ｆwrite，Ｕ２pub）をファイルセット名ＩＤfs及び各ファイル名ｎ１〜ｎｎと共に、ユーザＵ２の第２クライアント装置２０ｘ２に配布する。
【０１２０】
第２クライアント装置２０ｘ２は、図１２に示したように、これら読出権付きトークンｆ（Ｆwrite，Ｕ２pub）、ファイルセット名ＩＤfs及び各ファイル名ｎ１〜ｎｎを互いに関連付けて鍵管理部２４ｘに保存する。
【０１２１】
これにより、読出権の配布が完了し、第２クライアント装置２０ｘ２は、ファイルセット名ＩＤfsに対応する暗号化ファイルセットＦcrypt（fs）をファイルサーバ装置１０ｘから読出可能となる。
【０１２２】
なお、第１クライアント装置２０ｘ１の方も、トークンの生成により、暗号化ファイルセットＦcrypt（fs）を読出可能なことは言うまでもない。
【０１２３】
さて次に、第２クライアント装置２０ｘ２を例に挙げて読出処理を説明する。
第２クライアント装置２０ｘ２は、ユーザＵ２の操作により、制御部２８ｘがファイルセット名ＩＤfsを指定した読出要求をファイルサーバ装置１０ｘに転送する（ＳＴ３１）。
【０１２４】
ファイルサーバ装置１０ｘは、読出要求を受けると、ファイル管理部１２ｘが読出要求のファイルセット名ＩＤfsに基づいて、書込用認証データＦwriteをファイル記憶部１１から読出す（ＳＴ３２）。
【０１２５】
続いて、第２クライアント装置２０ｘ２は、ユーザＵ２のユーザ公開鍵データＵ２pubをファイルサーバ装置１０ｘに転送する（ＳＴ３３）。
【０１２６】
ファイルサーバ装置１０ｘはこのユーザ公開鍵データＵ２pubを受信する（ＳＴ３４）。
さらに、第２クライアント装置２０ｘ２は、読出権配布時に受けた読出権付きトークンｆ（Ｆwrite，Ｕ２pub）をファイルサーバ装置１０ｘに転送する（ＳＴ３５）。
【０１２７】
ファイルサーバ装置１０ｘは、読出権付きトークンｆ（Ｆwrite，Ｕ２pub）を受信すると、ステップＳＴ３２の書込用認証データＦwriteと、ステップＳＴ３４のユーザ公開鍵データＵ２pubとの組合せ値｛Ｆwrite，Ｕ２pub｝に一方向性関数ｆを適用してトークンｆ（Ｆwrite，Ｕ２pub）を導出する。
【０１２８】
次いで、この導出したトークンｆ（Ｆwrite，Ｕ２pub）と、ステップＳＴ３５で転送された読出権付きトークンｆ（Ｆwrite，Ｕ２pub）とが一致するか否かを判定する（ＳＴ３６）。
【０１２９】
ステップＳＴ３６の結果が一致しなければアクセスを拒否して処理を終了するが（ＳＴ３７）、ここでは一致するとして、乱数Ｒを生成する（ＳＴ３８）。
【０１３０】
また、ファイルサーバ装置１０ｘは、この乱数ＲをステップＳＴ３４のユーザ公開鍵データＵ２pubを用いて公開鍵暗号方式により暗号化し、得られたチャレンジ値Ｕ２pub（Ｒ）を第２クライアント装置２０ｘ２に転送する（ＳＴ３９）。
【０１３１】
第２クライアント装置２０ｘ２は、このチャレンジ値Ｕ２pub（Ｒ）をユーザ秘密鍵データＵ２priにより復号化して乱数Ｒを得ると（ＳＴ４０）、この乱数Ｒに一方向性関数ｆを適用して得た値ｆ（Ｒ）をファイルサーバ装置１０ｘに転送する（ＳＴ４１）。
【０１３２】
ファイルサーバ装置１０ｘは、別途、ステップＳＴ３８の乱数Ｒに一方向性関数ｆを適用した値ｆ（Ｒ）と、ステップＳＴ４１で受けた値ｆ（Ｒ）とが一致するか否かを判定する（ＳＴ４２）。なお、ステップＳＴ４２の結果が一致することは、読出権付きトークンｆ（Ｆwrite，Ｕ２pub）内のユーザ公開鍵データＵ２pubに対して鍵ペアであるユーザ秘密鍵データＵ２priが第２クライアント装置２０ｘ２に保持されることを意味しており、ユーザＵ２個別の正当性が確認されたことになる。
【０１３３】
さて、ステップＳＴ４２の結果が一致しなければアクセスを拒否して処理を終了するが（ＳＴ４３）、ここでは一致するとして、ステップＳＴ３１で読出要求されたファイルセット名ＩＤfsに対応する暗号化ファイルセットＦcrypt（fs）及び署名Ｆpri（fs）を第２クライアント装置２０ｘ２に転送する（ＳＴ４４）。
【０１３４】
以下、第２クライアント装置２０ｘ２は、前述したステップＳＴ１３，ＳＴ１４と同様に、読出用共通鍵データＦcryptを用いて暗号化ファイルセットＦcrypt（fs）を復号化し（ＳＴ４５）、得られたファイルセットfsと、読出権付き公開鍵データＦpubとに基づいて、デジタル署名Ｆpri（fs）の正当性を確認する（ＳＴ４６）。
【０１３５】
上述したように本実施形態によれば、読出処理の際に、ファイルサーバ装置１０ｘは、第２クライアント装置２０ｘ２から送信されたトークンｆ（Ｆwrite，Ｕ２pub）に対し、第２クライアント装置２０ｘ２の公開鍵データＵ２pubと予め保存された書込用認証データＦwriteとから導出されるトークンｆ（Ｆwrite，Ｕ２pub）とを比較して両者が一致するか否かによりトークンの正当性を確認し、次いで、第２クライアント装置２０ｘ２の公開鍵データＵ２pubにより乱数Ｒを暗号化し、得られた値Ｕpub（Ｒ）を当該第２クライアント装置２０ｘ２が正しく復号化できるか否かにより、第２クライアント装置２０ｘ２の正当性（秘密鍵データＵ２priを持つこと）を確認する。
【０１３６】
従って、これらの確認により、読出処理の際に、各クライアント装置２０ｘｊを個別に認証できるので、第１の実施形態の効果に加え、第三者の共有グループへの参加を防ぎ、ファイルの機密性及び完全性を十分に保護することができる。また、ユーザ固有の読出権を設定できるので、より一層、利便性を向上させることができる。
【０１３７】
補足すると、トークンｆ（Ｆwrite，Ｕpub）には各ユーザ毎に異なるユーザ公開鍵データＵpubが含まれているため、トークンｆ（Ｆwrite，Ｕpub）はそのユーザ専用となり、他のユーザはそのトークンｆ（Ｆwrite，Ｕpub）を利用することは不可能である。このため、暗号化ファイルセットfsを共有するユーザからなる共有グループに参加する権利と、共有グループの構成を増員する権利との二種類の権利を個別に制御することができ、利便性を向上させることができる。
【０１３８】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１３９】
また、本願発明は、上記各実施形態に限定されるものでなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合、組み合わされた効果が得られる。さらに、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば実施形態に示される全構成要件から幾つかの構成要件が省略されることで発明が抽出された場合には、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。
【０１４０】
【発明の効果】
以上説明したように本発明によれば、簡素な構成により、ファイルの読出権と書込権とを個別に制御でき、利便性を向上できる。また、ユーザの鍵管理の負担を低減できる。さらに、第三者の共有グループへの参加を防ぎ、ファイルの機密性及び完全性を十分に保護できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る暗号化ファイルシステムの概略構成を示す模式図。
【図２】同実施形態におけるファイルサーバ装置の構成を示す模式図。
【図３】同実施形態におけるクライアント装置の構成を示す模式図。
【図４】同実施形態における鍵管理部の構成を示す模式図。
【図５】同実施形態における鍵管理部の構成を示す模式図。
【図６】同実施形態における新規登録処理の動作を説明するためのフローチャート。
【図７】同実施形態における読出処理の動作を説明するためのフローチャート。
【図８】同実施形態における書込処理の動作を説明するためのフローチャート。
【図９】本発明の第２の実施形態に係る暗号化ファイルシステムの概略構成を示す模式図。
【図１０】同実施形態におけるファイルサーバ装置の構成を示す模式図。
【図１１】同実施形態におけるクライアント装置の構成を示す模式図。
【図１２】同実施形態における鍵管理部の構成を示す模式図。
【図１３】同実施形態における読出処理の動作を説明するためのフローチャート。
【符号の説明】
１０，１０ｘ…ファイルサーバ装置
１１…ファイル記憶部
１２…ファイル管理部
１３，３０…通信Ｉ／Ｆ部
２０１，２０２，２０ｘ１，２０ｘ２…クライアント装置
２１…入力部
２２…ＲＡＭ
２３…ファイル作成部
２４，２４ｘ…鍵管理部
２５…公開鍵暗号部
２６…一方向性関数部
２７…共通鍵暗号部
２８，２８ｘ…制御部
２９…出力部
３１…バス
４０…ネットワーク
【図１】
0003978046.tif 000002
【図２】
0003978046.tif 000003
【図３】
0003978046.tif 000004
【図４】
0003978046.tif 000005
【図５】
0003978046.tif 000006
【図６】
0003978046.tif 000007
【図７】
0003978046.tif 000008
【図８】
0003978046.tif 000009
【図９】
0003978046.tif 000010
【図１０】
0003978046.tif 000011
【図１１】
0003978046.tif 000012
【図１２】
0003978046.tif 000013
【図１３】
0003978046.tif 000014