(57)【要約】【目的】簡便かつ安全な暗号通信を提供する。【構成】復号装置３０は暗号ファイル（平文の暗号化に用いたセッションキーを暗号者の秘密鍵１で暗号化した暗号化セッションキー１，暗号者ＩＤ１および暗号文）を取得する。暗号化セッションキー１，暗号者ＩＤ１および復号者ＩＤ２が復号装置３０から鍵管理サーバ１０に送信される。復号者が復号権限を持つ場合（ステップ６４でＹＥＳ  ），暗号者の公開鍵１で暗号化セッションキー１が復号されてセッションキーが得られ（ステップ６６），セッションキーが復号実行者の公開鍵２で暗号化されて暗号化セッションキー２が生成される（ステップ６７）。暗号化セッションキー２が鍵管理サーバ１０から復号装置３０に送信される。復号装置３０では暗号化セッションキー２が秘密鍵２で復号され（ステップ６８），得られたセッションキーで暗号文が復号される（ステップ６９）。【選択図】    図４
2004297755.tif 000002
【特許請求の範囲】
【請求項１】
復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバを制御するプログラムであり，
上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを，受信し，
受信した暗号文作成者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の第１の鍵で，受信した第１暗号化セッション・キーを復号してセッション・キーを得，
得られたセッション・キーを，受信した上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で暗号化して第２暗号化セッション・キーを生成し，
生成した上記第２暗号化セッション・キーを上記復号装置に送信するように鍵管理サーバを制御するプログラム。
【請求項２】
上記管理データベースは，各ユーザの固有ＩＤに対応させて，各ユーザが復号可能な暗号文の作成者についての固有ＩＤである一または複数の復号許可ＩＤをさらに記憶しており，
上記プログラムはさらに，
受信した復号実行者ＩＤに対応する復号許可ＩＤ中に，受信した暗号文作成者ＩＤが含まれているかどうかを判断し，
復号許可ＩＤ中に暗号文作成者ＩＤが含まれていると判断した場合に，第１暗号化セッション・キーの復号と，第２暗号化セッション・キーの生成と，第２暗号化セッション・キーの送信とを許可するように鍵管理サーバを制御する，請求項１に記載のプログラム。
【請求項３】
暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置を制御するプログラムであり，
平文をセッション・キーで暗号化して生成される暗号文と，上記セッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成される第１暗号化セッション・キーと，暗号文作成者の固有ＩＤである暗号文作成者ＩＤの入力を受付け，
上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，第１暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに送信し，
鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベースに記憶されている上記暗号文作成者に固有の第１の鍵で上記第１暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で暗号化して生成される第２暗号化セッション・キーを，受信し，
受信した第２暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の第２の鍵で復号してセッション・キーを得，
得られたセッション・キーで暗号文を復号して平文を得るように復号装置を制御するプログラム。
【請求項４】
上記第１の鍵は公開鍵であり，
上記第２の鍵は上記公開鍵に対応する秘密鍵である，
請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
上記第１の鍵および第２の鍵は同一の共通鍵である，
請求項１から３のいずれか一項に記載のプログラム。
【請求項６】
復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続される鍵管理サーバであり，
暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース，
上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを受信する受信手段，
受信された暗号文作成者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の第１の鍵で，受信された第１暗号化セッション・キーを復号してセッション・キーを得る手段，
得られたセッション・キーを，受信された上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で暗号化して第２暗号化セッション・キーを生成する手段，ならびに
生成された上記第２暗号化セッション・キーを上記復号装置に送信する送信手段，
を備えた鍵管理サーバ。
【請求項７】
上記管理データベースは，各ユーザの固有ＩＤに対応させて，各ユーザが復号可能な暗号文の作成者についての固有ＩＤである一または複数の復号許可ＩＤをさらに記憶しており，
受信された復号実行者ＩＤに対応する復号許可ＩＤ中に，受信された暗号文作成者ＩＤが含まれているかどうかを判断する判断手段，
上記判断手段によって復号許可ＩＤ中に暗号文作成者ＩＤが含まれていると判断された場合に，第１暗号化セッション・キーの復号と，第２暗号化セッション・キーの生成と，第２暗号化セッション・キーの送信とを許可する手段をさらに備えている，請求項６に記載の鍵管理サーバ。
【請求項８】
上記第１の鍵は公開鍵であり，
上記第２の鍵は上記公開鍵に対応する秘密鍵である，
請求項６または７に記載の鍵管理サーバ。
【請求項９】
上記第１の鍵および第２の鍵は同一の共通鍵である，
請求項６または７に記載の鍵管理サーバ。
【請求項１０】
暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続される復号装置であり，
復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段，
平文をセッション・キーで暗号化して生成される暗号文と，上記セッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成される第１暗号化セッション・キーと，暗号文作成者の固有ＩＤである暗号文作成者ＩＤの入力を受付ける受付手段，
上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，第１暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに送信する送信手段，
鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベースに記憶されている上記暗号文作成者に固有の第１の鍵で上記第１暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で暗号化して生成される第２暗号化セッション・キーを，受信する受信手段，
受信された第２暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の第２の鍵で復号してセッション・キーを得る手段，ならびに
得られたセッション・キーで暗号文を復号して平文を得る手段，
を備えた復号装置。
【請求項１１】
上記第１の鍵は公開鍵であり，
上記第２の鍵は上記公開鍵に対応する秘密鍵である，
請求項１０に記載の復号装置。
【請求項１２】
上記第１の鍵および第２の鍵は同一の共通鍵である，
請求項１０に記載の復号装置。
【請求項１３】
暗号文作成者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，および各ユーザに固有の固有鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，暗号文作成者の固有ＩＤおよび暗号文実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた暗号化装置を制御するプログラムであり，
平文の入力を受付け，
セッション・キーを生成し，
生成したセッション・キーで平文を暗号化し，
上記セッション・キーを，記憶手段に記憶された秘密鍵または共通鍵で暗号化して第１暗号化セッション・キーを生成し，
生成した第１暗号化セッション・キーを，暗号文作成者の固有ＩＤである暗号文作成者ＩＤとともに鍵管理サーバに送信し，
鍵管理サーバから送信される，暗号文作成者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の公開鍵または共通鍵で第１暗号化セッション・キーを復号して得られるセッション・キーを，暗号文実行者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の固有鍵で暗号化して生成される第２暗号化セッション・キーを，受信し，
受信した第２暗号化セッション・キー，記憶手段に記憶されている暗号文作成者ＩＤ，および平文を暗号化することによって得られた暗号文を含む暗号ファイルを作成するように暗号化装置を制御するプログラム。
【請求項１４】
暗号文作成者に固有の固有ＩＤおよび暗号文作成者に固有の秘密鍵または共通鍵を記憶する暗号化装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，ならびに各ユーザに固有の固有鍵を記憶する管理データベースを備えた鍵管理サーバを制御するプログラムであって，
暗号化装置から送信される，平文の暗号化に用いられるセッション・キーを暗号文作成者に固有の秘密鍵または共通鍵で暗号して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤを，受信し，受信した暗号文作成者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の公開鍵または共通鍵で，受信した第１暗号化セッション・キーを復号してセッション・キーを得，
得られたセッション・キーを，暗号文実行者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の固有鍵で暗号化して第２暗号化セッション・キーを生成し，
生成した第２暗号化セッション・キーを暗号化装置に送信するように鍵管理サーバを制御するプログラム。
【請求項１５】
暗号文作成者に固有の固有ＩＤおよび暗号文作成者に固有の秘密鍵または共通鍵を記憶する暗号化装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，ならびに各ユーザに固有の固有鍵を記憶する管理データベースを備えた鍵管理サーバにネットワークを介して接続され，復号実行者に固有の固有ＩＤおよび復号実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた復号装置を制御するプログラムであり，
請求項１３に記載のプログラムによって制御される暗号化装置によって作成される暗号ファイルの入力を受付け，
上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，受付けた暗号ファイル中の第２暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに送信し，
鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベースに記憶されている上記暗号化作成者に固有の固有鍵で上記第２暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の公開鍵または共通鍵で暗号化して生成される第３暗号化セッション・キーを，受信し，
受信した第３暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の秘密鍵または共通鍵で復号してセッション・キーを得，
得られたセッション・キーで暗号ファイルに含まれる暗号文を復号して平文を得るように復号装置を制御するプログラム。
【請求項１６】
検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置とネットワークを通じて接続され，署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバを制御するプログラムであり，
上記検証装置から送信される，被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文および署名者の固有ＩＤである署名者ＩＤと，検証者の固有ＩＤである検証者ＩＤとを，受信し，
受信した署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で，受信した署名文を復号して被署名文を得，
得られた被署名文を，受信した上記検証者ＩＤに対応して管理データベースに記憶されている検証者に固有の第１の鍵で暗号化して暗号化被署名文を生成し，
生成した上記暗号化被署名文を上記検証装置に送信するように鍵管理サーバを制御する，プログラム。
【請求項１７】
署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置を制御するプログラムであり，
被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文，署名者の固有ＩＤである署名者ＩＤおよび上記被署名文の入力を受付け，
上記記憶手段に記憶されている固有ＩＤを検証者ＩＤとして，検証者ＩＤ，署名文および署名者ＩＤを，鍵管理サーバに送信し，
鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で上記署名文を復号して得られる被署名文を検証者ＩＤに対応して管理データベースに記憶されている検証者に固有の第１の鍵で暗号化して生成される暗号化被署名文を，受信し，
受信した暗号化被署名文を，上記記憶手段に記憶されている検証者に固有の第２の鍵で復号して被署名文を得，
得られた被署名文と，受付けた被署名文とを比較して同一であるかどうかを判断するように検証装置を制御する，プログラム。
【請求項１８】
鍵管理サーバに固有の公開鍵を記憶する記憶手段を備えた検証装置とネットワークを通じて接続され，署名者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵ならびに鍵管理サーバに固有の秘密鍵を記憶する管理データベースを備えた鍵管理サーバを制御するプログラムであり，
上記検証装置から送信される，被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文および署名者の固有ＩＤである署名者ＩＤを，受信し，
受信した署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で，署名文を復号して被署名文を得，
得られた被署名文を，上記管理データベースに記憶されている鍵管理サーバに固有の秘密鍵で暗号化して暗号化被署名文を生成し，
生成された上記暗号化被署名文を上記検証装置に送信するように鍵管理サーバを制御する，プログラム。
【請求項１９】
署名者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の第１の鍵，および鍵管理サーバに固有の秘密鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，上記鍵管理サーバに固有の公開鍵を記憶する記憶手段を備えた検証装置を制御するプログラムであり，
被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文，署名者の固有ＩＤである署名者ＩＤ，および上記被署名文の入力を受付け，
受付けた署名文および署名者ＩＤを鍵管理サーバに送信させ，
鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で上記署名文を復号して得られる被署名文を管理データベースに記憶されている上記鍵管理サーバに固有の秘密鍵で暗号化して生成される暗号化被署名文を，受信し，
受信した暗号化被署名文を，上記記憶手段に記憶されている上記鍵管理サーバに固有の公開鍵で復号して被署名文を得，
得られた被署名文と，受付けられた被署名文とを比較して同一かどうかを判断するように検証装置を制御する，プログラム。
【請求項２０】
署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置を制御するプログラムであり，
被署名文を一方向性変換処理することによって得られる変換データを署名者に固有の第２の鍵で暗号化して生成される第１認証子，署名者の固有ＩＤである署名者ＩＤ，および上記被署名文の入力を受付け，
上記記憶手段に記憶されている固有ＩＤを検証者ＩＤとして，検証者ＩＤ，第１認証子および署名者ＩＤを，鍵管理サーバに送信し，
鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で第１認証子を復号して得られる変換データを検証者ＩＤに対応して管理データベースに記憶されている検証者に固有の第１の鍵で暗号化して生成される第２認証子を，受信し，
受信した第２認証子を，上記記憶手段に記憶されている検証者に固有の第２の鍵で復号して変換データを得，
受付けられた被署名文を上記一方向性変換処理することによって変換データを得，
復号によって得られた変換データと一方向性変換処理によって得られた変換データとを比較して同一かどうかを判断するように検証装置を制御する，プログラム。
【請求項２１】
署名者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の第１の鍵，および鍵管理サーバに固有の秘密鍵を記憶する管理データベースを備えた鍵管理サーバとネットワークを介して接続され，上記鍵管理サーバに固有の公開鍵を記憶する記憶手段を備えた検証装置を制御するプログラムであり，
被署名文を一方向性変換処理することによって得られる変換データを署名者に固有の第２の鍵で暗号化して生成される第１認証子，署名者の固有ＩＤである署名者ＩＤ，および上記被署名文の入力を受付け，
第１認証子および署名者ＩＤを鍵管理サーバに送信し，
鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベースに記憶されている署名者に固有の第１の鍵で第１認証子を復号して得られる変換データを管理データベースに記憶されている鍵管理サーバに固有の秘密鍵で暗号化して生成される第２認証子を，受信し，
受信した第２認証子を，上記記憶手段に記憶されている鍵管理サーバに固有の公開鍵で復号して変換データを得，
受付けられた被署名文を上記一方向性変換処理することによって変換データを得，
復号によって得られた変換データと一方向性変換処理によって得られた変換データとを比較して同一かどうかを判断するように検証装置を制御する，プログラム。
【請求項２２】
上記第１の鍵は公開鍵であり，
上記第２の鍵は上記公開鍵に対応する秘密鍵である，
請求項１６から２１のいずれか一項に記載のプログラム。
【請求項２３】
上記第１の鍵および第２の鍵は同一の共通鍵である，
請求項１６から２１のいずれか一項に記載のプログラム。
【請求項２４】
請求項１から５，および１３から２３のいずれか一項に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は，暗号システムにおける鍵管理サーバおよび復号装置を制御するプログラム，ならびに署名／検証システムにおける鍵管理サーバおよび検証装置を制御するプログラムに関する。
【０００２】
【発明の背景】
サーバに備えられた管理データベースに記憶されているデータを用いることによって，安全に平文の暗号化および暗号文の復号を行うことができる暗号システムが提案されている（例えば，特許文献１参照）。
【０００３】
特許文献１に記載の暗号システムでは，管理データベースにユーザごとの固有鍵が記憶されている（第４図）。この固有鍵が用いられて暗号ファイルの作成処理（第８図，ステップ１２８，１２９を参照）および暗号ファイルの復号処理（第９図，ステップ１４８  を参照）が行われる。暗号化処理および復号処理において固有鍵そのものはネットワークを介して送受信されないので秘匿性が高い。しかしながら，暗号化処理および復号処理のいずれにおいてもクライアントとサーバとのデータ通信が必要とされるので，システムとしては若干大がかりになってしまう。
【０００４】
【特許文献１】
ＷＯ  ０２／０８７１４６
【０００５】
【発明の開示】
この発明は，より簡便に暗号文の作成とその復号処理とを実現することができる暗号システムを提供することを目的とし，特にこの暗号システムを構成する鍵管理サーバおよびその制御プログラムならびに復号装置およびその制御プログラムを提供することを目的とする。
【０００６】
この発明はまた，新しい署名／検証システムを提供することを目的とし，特にこの検証システムを構成する鍵管理サーバを制御するプログラムおよび検証装置を制御するプログラムを提供することを目的とする。
【０００７】
この発明による鍵管理サーバを制御するプログラムは，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバを制御するプログラムである。
【０００８】
第１の鍵および第２の鍵は，暗号化処理および復号処理に用いられる，互いに対応する鍵である。一実施態様は，第１の鍵は公開鍵であり，第２の鍵は公開鍵に対応する秘密鍵である。公開鍵で暗号化されたデータは，暗号化に用いられた公開鍵に対応する秘密鍵で復号することができる。秘密鍵で暗号化されたデータは，暗号化に用いられた秘密鍵に対応する公開鍵で復号することができる。
【０００９】
他の実施態様では，第１の鍵および第２の鍵は同一の共通鍵である。共通鍵で暗号化されたデータは，暗号化に用いられた共通鍵と同一の共通鍵で復号することができる。
【００１０】
この発明による鍵管理サーバを制御するプログラムは，鍵管理サーバが，上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを，（受信手段により）受信し，受信した暗号文作成者ＩＤに対応して管理データベースに記憶されている暗号文作成者に固有の第１の鍵で，受信した第１暗号化セッション・キーを（復号手段により）復号してセッション・キーを得，得られたセッション・キーを，受信した上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で（暗号化手段により）暗号化して第２暗号化セッション・キーを生成し，生成した上記第２暗号化セッション・キーを上記復号装置に（送信手段により）送信するように，鍵管理サーバを制御する。鍵管理サーバを制御するプログラムは，一つのプログラムで構成されていてもよいし複数のプログラム・ルーチンの組合せによって構成されるものであってもよい。
【００１１】
この発明は次のように表現することもできる。すなわち，この発明による鍵管理サーバを制御するプログラムは，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続される鍵管理サーバを，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース装置，上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを受信する受信手段，受信された暗号文作成者ＩＤに対応して管理データベース装置に記憶されている暗号文作成者に固有の第１の鍵で，受信された第１暗号化セッション・キーを復号してセッション・キーを得る手段，得られたセッション・キーを，受信された上記復号実行者ＩＤに対応して管理データベース装置に記憶されている復号実行者に固有の第１の鍵で暗号化して第２暗号化セッション・キーを生成する手段，ならびに生成された上記第２暗号化セッション・キーを上記復号装置に送信する送信手段として機能させるものである。
【００１２】
この発明は鍵管理サーバも提供している。この発明による鍵管理サーバは，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続される。鍵管理サーバは，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置），上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを受信する受信手段，受信された暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の第１の鍵で，受信された第１暗号化セッション・キーを復号してセッション・キーを得る手段，得られたセッション・キーを，受信された上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の第１の鍵で暗号化して第２暗号化セッション・キーを生成する手段，ならびに生成された上記第２暗号化セッション・キーを上記復号装置に送信する送信手段を備えたものである。
【００１３】
この発明による復号装置の制御プログラムは，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続され，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段を備えた復号装置を制御するプログラムである。このプログラムは，復号装置が，平文をセッション・キーで暗号化して生成される暗号文と，上記セッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成される第１暗号化セッション・キーと，暗号文作成者の固有ＩＤである暗号文作成者ＩＤの入力を（受付手段により）受付け，上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，第１暗号化セッション・キーおよび暗号文作成者ＩＤを，（送信手段により）鍵管理サーバに送信し，鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている上記暗号文作成者に固有の第１の鍵で上記第１暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の第１の鍵で暗号化して生成される第２暗号化セッション・キーを，（受信手段により）受信し，受信した第２暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の第２の鍵で（第１の復号手段により）復号してセッション・キーを得，得られたセッション・キーで暗号文を（第２の復号手段により）復号して平文を得るように，復号装置を制御する。
【００１４】
この発明による復号装置は，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続されるものであり，復号実行者に固有の固有ＩＤおよび復号実行者に固有の第２の鍵を記憶する記憶手段，平文をセッション・キーで暗号化して生成される暗号文と，上記セッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成される第１暗号化セッション・キーと，暗号文作成者の固有ＩＤである暗号文作成者ＩＤの入力を受付ける受付手段，上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，第１暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに送信する送信手段，鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている上記暗号文作成者に固有の第１の鍵で上記第１暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の第１の鍵で暗号化して生成される第２暗号化セッション・キーを，受信する受信手段，受信された第２暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の第２の鍵で復号してセッション・キーを得る手段，ならびに得られたセッション・キーで暗号文を復号して平文を得る手段を備えている。
【００１５】
鍵管理サーバは，暗号文作成者および復号実行者を含む各ユーザについて，各ユーザに固有の固有ＩＤおよび各ユーザに固有の第２の鍵を記憶する管理データベース（装置）を備えている。あるユーザが暗号文を作成する場合にはそのユーザは暗号文作成者と呼ばれ，あるユーザが暗号文を復号する場合にはそのユーザは復号実行者と呼ばれる。暗号文作成者に固有の固有ＩＤが暗号文作成者ＩＤ，復号実行者に固有の固有ＩＤが復号実行者ＩＤである。
【００１６】
鍵管理サーバは，暗号化装置が利用されて暗号文作成者によって作成された暗号文を復号するときに用いられる。
【００１７】
鍵管理サーバおよび復号装置とともに用いられる暗号化装置は，第２の鍵を記憶する記憶手段を備えたものである。この第２の鍵に対応する第１の鍵が，管理データベースに固有ＩＤとともに管理されている。暗号化装置では，暗号化すべき平文（平文データ）を受付け，セッション・キー（暗号文の生成の度に生成される鍵）を生成し，受付けられた平文を生成されたセッション・キーで暗号化して暗号文（暗号文データ）を生成する。そして，第２の鍵で上記セッション・キーを暗号化して第１暗号化セッション・キーを生成する。このように，暗号化処理では暗号化装置と鍵管理サーバとの間で特段の通信は行われることなく，暗号化装置において暗号文および第１暗号化セッション・キーが生成される。
【００１８】
暗号化装置において平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の第２の鍵で暗号化して生成された第１暗号化セッション・キー，暗号文作成者の固有ＩＤである暗号文作成者ＩＤおよび暗号文が，暗号化装置から復号装置に送信等される。
【００１９】
暗号化装置と復号装置とは同一の装置であることもある。すなわち，一つのコンピュータ装置が，暗号化装置として用いられ，かつ復号装置として用いられる場合である。具体的に言えば，あるユーザがコンピュータ装置を用いて暗号文を作成し，そのユーザがそのコンピュータ装置を用いて暗号文を復号する場合，同一の装置コンピュータ装置が，暗号化装置として利用され，かつ復号装置として利用される。この場合には，暗号化装置から復号装置に第１暗号化セッション・キー，暗号文作成者ＩＤおよび暗号文を送信等する必要がないのは言うまでもない。いずれにしても，復号装置では，第１暗号化セッション・キー，暗号文作成者ＩＤおよび暗号文の入力が受け付けられる（受信されるまたは与えられる）。
【００２０】
復号装置から鍵管理サーバに，第１暗号化セッション・キーおよび暗号文作成者ＩＤおよび復号実行者の固有ＩＤである復号実行者ＩＤが送信される。
【００２１】
暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の第１の鍵で，鍵管理サーバにおいて第１暗号化セッション・キーが復号される。第１暗号化セッション・キーは，暗号文作成者に固有の第２の鍵で暗号化されたものであるから，第２の鍵に対応する第１の鍵で第１暗号化セッション・キーを復号することにより，セッション・キーを得ることができる。
【００２２】
上述したように，一実施態様では第１の鍵は公開鍵であり，第２の鍵は公開鍵に対応する秘密鍵である。この場合，暗号化装置において，セッション・キーが秘密鍵で暗号化されることによって得られる第１暗号化セッション・キーは，鍵管理サーバにおいて，秘密鍵に対応する公開鍵で復号することができる。
【００２３】
第１の鍵および第２の鍵が同一の共通鍵である場合には，暗号化装置においてセッション・キーが共通鍵で暗号化されることによって得られる第１暗号化セッション・キーは，鍵管理サーバにおいて同一の共通鍵を用いて復号することができる。
【００２４】
得られたセッション・キーが，上記復号実行者ＩＤに対応して管理データベースに記憶されている復号実行者に固有の第１の鍵で暗号化されて第２暗号化セッション・キーが生成される。鍵管理サーバは，生成した第２暗号化セッション・キーを上記復号装置に送信する。
【００２５】
復号装置の記憶手段には，第２暗号化セッション・キーの生成に用いられた復号実行者の固有の第１の鍵に対応する復号実行者に固有の第２の鍵が記憶されている。この第２の鍵によって第２暗号化セッション・キーが復号されてセッション・キーが得られる。暗号文は，セッション・キーで平文を暗号化したものであるから，得られたセッション・キーで暗号文を復号することができる。復号装置において平文が得られる。
【００２６】
この発明によると，暗号文の復号処理において鍵管理サーバと復号装置とが協働して処理を実行する。鍵管理サーバが復号装置から受信する（復号装置が鍵管理サーバに送信する）ものは，第１暗号化セッション・キー，暗号作成者ＩＤおよび復号実行者ＩＤである。鍵管理サーバが復号装置に送信する（復号装置が鍵管理サーバから受信する）ものは，第２暗号化セッション・キーである。平文の暗号化に用いられるセッション・キー，第１暗号化セッション・キーの復号に用いられる暗号文作成者に固有の第１の鍵，第２暗号化セッション・キーの復号に用いられる復号実行者に固有の第２の鍵は，暗号文の復号処理において鍵管理サーバと復号装置との間において送受信されない。このため，暗号文の秘匿性，安全性は高い。
【００２７】
好ましくは，上記管理データベース（装置）は，各ユーザの固有ＩＤに対応させて，各ユーザが復号可能な暗号文の作成者についての固有ＩＤである一または複数の復号許可ＩＤをさらに記憶しており，鍵管理サーバの制御プログラムは，鍵管理サーバが，受信した復号実行者ＩＤに対応する復号許可ＩＤ中に，受信した暗号文作成者ＩＤが含まれているかどうかを（判断手段により）判断し，復号許可ＩＤ中に暗号文作成者ＩＤが含まれていると判断した場合に，第１暗号化セッション・キーの復号と，第２暗号化セッション・キーの生成と，第２暗号化セッション・キーの送信とを（許可手段により）許可するように鍵管理サーバを制御する。復号実行者についての復号許可ＩＤ中に暗号文作成者の固有ＩＤが含まれている場合に復号処理が進行することになる。いずれのユーザにいずれのユーザが作成した暗号文の復号権限を与えるかどうかを，鍵管理サーバにおいて集中管理することができる。
【００２８】
この発明は，他の暗号システムを構成する暗号化装置，復号装置および鍵管理サーバの制御プログラムも提供している。
【００２９】
他の暗号システムを構成する暗号化装置の制御プログラムは，暗号文作成者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，および各ユーザに固有の固有鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続され，暗号文作成者の固有ＩＤおよび暗号文実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた暗号化装置を制御するものであり，暗号化装置が，（受付手段により）平文の入力を受付け，（セッション・キー生成手段により）セッション・キーを生成し，生成したセッション・キーで（第１暗号化手段により）平文を暗号化し，上記セッション・キーを，記憶手段に記憶された秘密鍵または共通鍵で（第２暗号化手段により）暗号化して第１暗号化セッション・キーを生成し，生成した第１暗号化セッション・キーを，暗号文作成者の固有ＩＤである暗号文作成者ＩＤとともに鍵管理サーバに（送信手段により）送信し，鍵管理サーバから送信される，暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の公開鍵または共通鍵で第１暗号化セッション・キーを復号して得られるセッション・キーを，暗号文実行者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の固有鍵で暗号化して生成される第２暗号化セッション・キーを，（受信手段により）受信し，受信した第２暗号化セッション・キー，記憶手段に記憶されている暗号文作成者ＩＤ，および平文を暗号化することによって得られた暗号文を含む暗号ファイルを（暗号ファイル作成手段により）作成するように暗号化装置を制御する。
【００３０】
他の暗号システムを構成する鍵管理サーバの制御プログラムは，暗号文作成者に固有の固有ＩＤおよび暗号文作成者に固有の秘密鍵または共通鍵を記憶する暗号化装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，ならびに各ユーザに固有の固有鍵を記憶する管理データベース（装置）を備えた鍵管理サーバを制御するものであり，鍵管理サーバが，暗号化装置から送信される，平文の暗号化に用いられるセッション・キーを暗号文作成者に固有の秘密鍵または共通鍵で暗号して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤを，（受信手段により）受信し，受信した暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の公開鍵または共通鍵で，受信した第１暗号化セッション・キーを（復号手段により）復号してセッション・キーを得，得られたセッション・キーを，暗号文実行者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の固有鍵で（暗号化手段により）暗号化して第２暗号化セッション・キーを生成し，生成した第２暗号化セッション・キーを（送信手段により）暗号化装置に送信するように鍵管理サーバを制御する。
【００３１】
他の暗号システムにおいて復号装置を制御するプログラムは，暗号文作成者に固有の固有ＩＤおよび暗号文作成者に固有の秘密鍵または共通鍵を記憶する暗号化装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザに固有の固有ＩＤ，各ユーザに固有の公開鍵または共通鍵，ならびに各ユーザに固有の固有鍵を記憶する管理データベース（装置）を備えた鍵管理サーバにネットワークを介して接続され，復号実行者に固有の固有ＩＤおよび復号実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた復号装置を制御するものであり，復号装置が，上述の暗号化装置制御プログラムによって制御される暗号化装置によって作成される暗号ファイルの入力を（受付手段により）受付け，上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，受付けた暗号ファイル中の第２暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに（送信手段により）送信し，鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている上記暗号化作成者に固有の固有鍵で上記第２暗号化セッション・キーを復号して得られるセッション・キーを上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の公開鍵または共通鍵で暗号化して生成される第３暗号化セッション・キーを，（受信手段により）受信し，受信した第３暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の秘密鍵または共通鍵で（第１復号手段により）復号してセッション・キーを得，得られたセッション・キーで暗号ファイルに含まれる暗号文を（第２復号手段により）復号して平文を得るように，復号装置を制御する。
【００３２】
暗号化装置において作成される暗号ファイルは，第２暗号化セッション・キー，暗号文作成者ＩＤおよび暗号文を含む。第２暗号化セッション・キーは，暗号化装置において秘密鍵または共通鍵でセッション・キーを暗号化することにより生成された第１暗号化セッション・キーを，鍵管理サーバにおいて公開鍵または共通鍵で一旦復号し，復号によって得られたセッション・キーを暗号文作成者の固有鍵で暗号化したものである。暗号化装置と鍵管理サーバとが協働して，暗号ファイルが作成される。
【００３３】
暗号化装置において作成される第２暗号化セッション・キー，暗号文作成者ＩＤおよび暗号文を含む暗号ファイルが，復号装置に受付けられる（入力される，受信される，記録媒体等から読取られる）。復号装置は，暗号ファイル中の第２暗号化セッション・キーおよび暗号文作成者ＩＤと，復号実行者ＩＤを鍵管理サーバに送信する。鍵管理サーバは，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている上記暗号化作成者に固有の固有鍵で上記第２暗号化セッション・キーを復号してセッション・キーを得，上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の公開鍵または共通鍵でセッション・キー暗号化して第３暗号化セッション・キーを生成する。第３暗号化セッション・キーが鍵管理サーバから復号装置に送信される。
【００３４】
復号装置では，受信した第３暗号化セッション・キーを，上記記憶手段に記憶されている復号実行者に固有の秘密鍵または共通鍵で復号してセッション・キーを得，得られたセッション・キーで暗号ファイルに含まれる暗号文を復号する。平文を得ることができる。
【００３５】
他の暗号システムにおいては，暗号文の復号処理において暗号文作成者の公開鍵および秘密鍵または共通鍵は一切用いられない。このため，暗号文作成者の公開鍵および秘密鍵または共通鍵が更新されたとしても，暗号文を復号することができる。公開鍵および秘密鍵または共通鍵を更新しても暗号文の復号処理に影響がでないので，暗号システムの利用メンバは，適宜，公開鍵および秘密鍵または共通鍵を更新することができる。公開鍵および秘密鍵または共通鍵の紛失，漏洩等に対処することができる。
【００３６】
この発明によるさらに他の鍵管理サーバの制御プログラムは，復号実行者の固有ＩＤおよび復号実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた復号装置とネットワークを通じて接続され，暗号文作成者および復号実行者を含む各ユーザについて，固有ＩＤ，固有の公開鍵または共通鍵および固有の固有鍵を記憶する管理データベース（装置）を備えた鍵管理サーバを制御するものであり，鍵管理サーバが，上記復号装置から送信される，平文の暗号化に用いられたセッション・キーを暗号文作成者に固有の秘密鍵または共通鍵で暗号化して生成された第１暗号化セッション・キーおよび暗号文作成者の固有ＩＤである暗号文作成者ＩＤと，復号実行者の固有ＩＤである復号実行者ＩＤとを，（受信手段により）受信し，暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の公開鍵または共通鍵で，第１暗号化セッション・キーを（復号手段により）復号してセッション・キーを得，得られたセッション・キーを，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の固有鍵で（第１暗号化手段により）暗号化して第３暗号化セッション・キーを生成し，セッション・キーの暗号化に用いられた暗号文作成者に固有の固有鍵を，上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の公開鍵または共通鍵で（第２暗号化手段により）暗号化して暗号化固有鍵を生成し，上記第３暗号化セッション・キーおよび上記暗号化固有鍵を上記復号装置に（送信手段により）送信するように鍵管理サーバを制御する。
【００３７】
この発明によるさらに他の復号装置の制御プログラムは，暗号文作成者および復号実行者を含む各ユーザについて，固有ＩＤ，固有の公開鍵または共通鍵および固有の固有鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続され，上記固有ＩＤおよび復号実行者に固有の秘密鍵または共通鍵を記憶する記憶手段を備えた復号装置を制御するものであり，復号装置が，平文をセッション・キーで暗号化して生成される暗号文，上記セッション・キーを暗号文作成者に固有の秘密鍵または共通鍵で暗号化して生成される第１暗号化セッション・キー，および暗号文作成者の固有ＩＤである暗号文作成者ＩＤの入力を（受付手段により）受付け，上記記憶手段に記憶されている固有ＩＤを復号実行者ＩＤとして，復号実行者ＩＤ，第１暗号化セッション・キーおよび暗号文作成者ＩＤを，鍵管理サーバに（送信手段により）送信し，鍵管理サーバから送信される，上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている上記暗号文作成者に固有の公開鍵または共通鍵で上記第１暗号化セッション・キーを復号して得られるセッション・キーを上記暗号文作成者ＩＤに対応して管理データベース（装置）に記憶されている暗号文作成者に固有の固有鍵で暗号化して生成される第３暗号化セッション・キーと，上記セッション・キーの暗号化に用いられた固有鍵を上記復号実行者ＩＤに対応して管理データベース（装置）に記憶されている復号実行者に固有の公開鍵または共通鍵で暗号化して生成される暗号化固有鍵を，（受信手段により）受信し，受信した暗号化固有鍵を，上記記憶手段に記憶されている復号実行者に固有の秘密鍵または共通鍵で（第１復号手段により）復号して固有鍵を得，受信した第３暗号化セッション・キーを，得られた固有鍵で（第２復号手段により）復号してセッション・キーを得，得られたセッション・キーで暗号文を（第３復号手段により）復号して平文を得るように復号装置を制御する。
【００３８】
上述の他の鍵管理サーバおよび復号装置の制御プログラムによれば，暗号文作成者が暗号文を作成した後にその暗号文の作成に用いられるセッション・キーの暗号化に用いられた秘密鍵または共通鍵を紛失したとしてもセッション・キーを得ることができ，暗号文作成者は，自分の作成した暗号文を復号することができる。
【００３９】
この発明はさらに，署名／検証システムにおける鍵管理サーバの制御プログラムおよび検証装置の制御プログラムも提供している。署名／検証システムは，署名者（署名装置）が被署名文に署名することによって作成する署名文を，検証者（検証装置）が検証（データが１ビットも改竄されていないことを確認）するシステムである。
【００４０】
第１の署名／検証システムにおいて用いられる鍵管理サーバの制御プログラムは，検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置とネットワークを通じて接続され，署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバを制御するものであり，鍵管理サーバが，上記検証装置から送信される，被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文および署名者の固有ＩＤである署名者ＩＤと，検証者の固有ＩＤである検証者ＩＤとを，（受信手段により）受信し，受信した署名者ＩＤに対応して管理データベース（装置）に記憶されている署名者に固有の第１の鍵で，受信した署名文を（復号手段により）復号して被署名文を得，得られた被署名文を，受信した上記検証者ＩＤに対応して管理データベース（装置）に記憶されている検証者に固有の第１の鍵で（暗号化手段により）暗号化して暗号化被署名文を生成し，生成した上記暗号化被署名文を上記検証装置に（送信手段により）送信するように鍵管理サーバを制御する。
【００４１】
第１の署名／検証システムにおける検証装置の制御プログラムは，署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続され，検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置を制御するものであり，検証装置が，被署名文を署名者に固有の第２の鍵で暗号化して生成される署名文，署名者の固有ＩＤである署名者ＩＤおよび上記被署名文の入力を（受付手段により）受付け，上記記憶手段に記憶されている固有ＩＤを検証者ＩＤとして，検証者ＩＤ，署名文および署名者ＩＤを，（送信手段により）鍵管理サーバに送信し，鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベース（装置）に記憶されている署名者に固有の第１の鍵で上記署名文を復号して得られる被署名文を検証者ＩＤに対応して管理データベース（装置）に記憶されている検証者に固有の第１の鍵で暗号化して生成される暗号化被署名文を，（受信手段により）受信し，受信した暗号化被署名文を，上記記憶手段に記憶されている検証者に固有の第２の鍵で（復号手段により）復号して被署名文を得，得られた被署名文と，受付けた被署名文とを比較して同一であるかどうかを（判断手段により）判断するように検証装置を制御する。
【００４２】
署名／検証システムにおける上述の鍵管理サーバまたは検証装置の制御プログラムにおいても，一実施態様では第１の鍵は公開鍵であり，第２の鍵は公開鍵に対応する秘密鍵である。他の実施態様では，第１の鍵および第２の鍵は同一の共通鍵である。
【００４３】
鍵管理サーバと検証装置とが協働することによって検証処理が進行する。鍵管理サーバと検証装置との間のデータの送受信において，高い秘匿が必要とされる第２の鍵はネットワークを介して送受信されない。また，一般的な署名／認証システムでは，検証者（検証装置）において，署名文作成者の公開鍵を用いて署名文から被署名文（署名されるべきデータ）得るが，この発明によると，鍵管理サーバにおいて，署名文作成者の第１の鍵が用いられて署名文から被署名文が得られる。一般的な署名／検証システムのように，相手（署名者）の公開鍵を検証者に対して公開する必要がない。公開鍵を公開することなく，検証装置において署名文を検証（認証）することができる。
【００４４】
鍵管理サーバにおいて，検証者の第１の鍵を用いて被署名文を暗号化することに代えて，鍵管理サーバ（鍵管理サーバの管理者）に固有の秘密鍵を用いて被署名文を暗号化するようにしてもよい。この場合には，鍵管理サーバの記憶手段（管理データベースであっても，他の記憶手段であってもよい）に，鍵管理サーバに固有の秘密鍵を記憶させておき，かつ検証装置の記憶手段には，鍵管理サーバに固有の公開鍵を記憶させておく。鍵管理サーバに固有の秘密鍵で暗号化された被署名文（暗号化被署名文）は，検証装置において鍵管理サーバに固有の公開鍵で復号される。この場合には，検証装置には，第２の鍵および固有ＩＤは必ずしも必要とされない。
【００４５】
第２の署名／検証システムにおける検証装置の制御プログラムは，署名者および検証者を含む各ユーザに固有の固有ＩＤおよび各ユーザに固有の第１の鍵を記憶する管理データベース（装置）を備えた鍵管理サーバとネットワークを介して接続され，検証者に固有の固有ＩＤおよび検証者に固有の第２の鍵を記憶する記憶手段を備えた検証装置を制御するものであり，検証装置が，被署名文を一方向性変換処理することによって得られる変換データを署名者に固有の第２の鍵で暗号化して生成される第１認証子，署名者の固有ＩＤである署名者ＩＤ，および上記被署名文の入力を（受付手段により）受付け，上記記憶手段に記憶されている固有ＩＤを検証者ＩＤとして，検証者ＩＤ，第１認証子および署名者ＩＤを，鍵管理サーバに（送信手段により）送信し，鍵管理サーバから送信される，上記署名者ＩＤに対応して管理データベース（装置）に記憶されている署名者に固有の第１の鍵で第１認証子を復号して得られる変換データを検証者ＩＤに対応して管理データベース（装置）に記憶されている検証者に固有の第１の鍵で暗号化して生成される第２認証子を，（受信手段により）受信し，受信した第２認証子を，上記記憶手段に記憶されている検証者に固有の第２の鍵で（復号手段により）復号して変換データを得，受付けられた被署名文を（一方向性変換処理手段により）上記一方向性変換処理することによって変換データを得，復号によって得られた変換データと一方向性変換処理によって得られた変換データとを比較して同一かどうかを（判断手段により）判断するように検証装置を制御する。たとえば，ハッシュ関数のような一方向性関数が用いられて得られる変換データに基づいて，検証が行われる。
【００４６】
この発明は，暗号システムと署名／検証システムの両方のシステムにおいて利用することができる鍵管理サーバおよび復号／検証装置も提供することができるのはいうまでもない。
【００４７】
【実施例の説明】
第１実施例（暗号システム（その１））
図１は，第１実施例の暗号システムの全体的構成を示すブロック図である。
【００４８】
暗号システムは，鍵管理サーバ・コンピュータ（以下，鍵管理サーバという）１０と，複数台のクライアント・コンピュータ（ユーザ端末装置）（以下，クライアントという）と，複数台のクライアント同士，および複数台のクライアントと鍵管理サーバ１０とを接続するネットワーク１（専用回線および公衆回線のいずれも含む）とから構成されている。図１においては，複数台のクライアントのうち４台のクライアント（クライアント２０，３０，４０，５０）が図示されている。暗号システムにおいて，クライアントの台数に特に制限はない。もちろん，クライアントの台数が１台であっても暗号システムは機能する。
【００４９】
この実施例では，クライアント２０，３０，４０，５０・・・は，それぞれ一人のユーザによって用いられることを基本とする。もちろん，クライアントにマルチ・ユーザ・タイプのＯＳ（オペレーティング・システム）が用いられている場合には，ＩＤ等によってクライアントを使用しているユーザが一人に特定されるので，この場合には，１台のクライアントを複数人が利用する利用態様であってもよい。以下の説明では，一人のユーザが１台の特定のクライアントを利用するものとする。
【００５０】
図２は，鍵管理サーバ１０のハードウエア構成の一例を示すブロック図である。鍵管理サーバ１０は，鍵管理サーバ１０を統括的に制御するＣＰＵ１１を含む。ＣＰＵ１１に，データの入力等に用いられる入力装置（キーボード，マウス等）１２，文字，画像等を可視的に表示する表示装置１３，ワークエリア，バッファエリア等を提供するメモリ１４，各種プログラムおよびデータを記憶するハードディスク１５，フレキシブルディスク（ＦＤ）にデータ等を記録し，ＦＤに記録されたデータ等を読出すＦＤドライブ１６，ＣＤ−ＲＯＭに記憶されたデータ等を読出すＣＤ−ＲＯＭドライブ１７およびネットワーク１を介してデータの送受信を行うための通信装置１８が接続されている。
【００５１】
クライアント２０，３０，４０，５０・・・も，基本的には鍵管理サーバ１０と同じハードウエア構成を持つ。図２において，複数台のクライアントの代表として，クライアント２０およびクライアント３０のハードウエア構成を（  ）内の符号で示す。
【００５２】
図３は，クライアントにおける公開鍵および秘密鍵の生成の様子と，鍵管理サーバ１０に設けられる管理データベース６０への公開鍵の登録の様子を示している。図４は暗号化装置を利用した暗号文データを含む暗号ファイルの生成の様子，復号装置および鍵管理サーバを利用した暗号ファイル（暗号文データ）の復号処理の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。クライアント２０，３０・・・は，暗号システムにおいて暗号化装置として機能し，かつ復号装置としても機能する。図４では，クライアント２０が暗号化装置として機能し，かつクライアント３０が復号装置として機能している様子を示している。
【００５３】
暗号システムの利用メンバには，暗号システムの管理者によって識別符号（ＩＤ）が付与される。識別符号（ＩＤ）は利用メンバごとに異なる。暗号システムの管理者から利用メンバへのＩＤの通知は，郵送，電子メール，その他方法によって行われる。
【００５４】
クライアント２０，３０・・・のハードディスク２５，３５・・・には，公開鍵／秘密鍵生成プログラムが記憶されている。公開鍵／秘密鍵生成プログラムは，公開鍵と秘密鍵の対を生成するプログラムである。クライアント２０，３０・・・では暗号システムの立ち上げ時，またはクライアント２０，３０・・・が暗号システムに加えられたときに公開鍵／秘密鍵生成プログラムが実行される。クライアント２０，３０・・・のそれぞれにおいて，クライアント２０，３０・・・に固有（クライアント２０，３０・・・を利用する暗号システムの利用メンバに固有）の公開鍵および秘密鍵の対が生成される。
【００５５】
生成された公開鍵および秘密鍵のうち，秘密鍵はクライアント２０，３０・・・のハードディスク２５，３５・・・に記憶される。他方，公開鍵は暗号システムの管理者によって付与されたＩＤとともに，クライアント２０，３０・・・から鍵管理サーバ１０に送信され，ＩＤとともに管理データベース６０に記憶される。
【００５６】
たとえば，クライアント２０の利用メンバ（ユーザＡとする）に付与されたＩＤを「ＩＤ１」とし，クライアント２０において公開鍵／秘密鍵生成プログラムが実行されることによって生成された公開鍵／秘密鍵を，「公開鍵１／秘密鍵１」とする。クライアント２０のハードディスク２５にＩＤ１と秘密鍵１とが記憶される。秘密鍵１と対をなす公開鍵１は，ＩＤ１とともに，クライアント２０から鍵管理サーバ１０に送信される。鍵管理サーバ１０はＩＤ１と公開鍵１とを受信する。受信したＩＤ１と公開鍵１とが，管理データベース６０に記憶（登録）される。
【００５７】
鍵管理サーバ１０のハードディスク１５に記憶されている管理データベース６０には，暗号システムの利用メンバごとの管理データを記憶したものである。管理データは「ＩＤ」と，「公開鍵」と，「復号許可ＩＤ」とを含む。
【００５８】
「ＩＤ」は，上述のように，暗号システムの利用メンバのそれぞれに付与される識別符号（番号，記号，またはこれらの組合せ等）である。「公開鍵」は「ＩＤ」によって識別されるクライアント（クライアントの利用メンバ）から送信された公開鍵である。
【００５９】
「復号許可ＩＤ」は，「ＩＤ」欄に格納されたＩＤによって特定される利用メンバが復号可能な暗号ファイル（暗号文データ）の作成者のＩＤである。すなわち，復号許可ＩＤは，暗号システムの利用メンバとその利用メンバが復号することができる暗号文作成者（この作成者も暗号システムの利用メンバである）との関係を示すものである。復号許可ＩＤは，暗号システムの管理者によって，鍵管理サーバ１０の入力装置１２が用いられて管理データベース６０に記憶される。
【００６０】
たとえば，上述のように，クライアント２０の利用メンバ（ユーザＡ）のＩＤを「ＩＤ１」とする。管理データには，ＩＤ欄に「ＩＤ１」が，公開鍵欄に「公開鍵１」が記憶（登録）され，さらに，復号許可ＩＤ欄には「ＩＤ１，ＩＤ２，ＩＤ３，ＩＤ４」が記憶されているとする。ユーザＡは，「ＩＤ１」によって特定される利用メンバ（自分自身），「ＩＤ２」によって特定される利用メンバ，「ＩＤ３」によって特定される利用メンバおよび「ＩＤ４」によって特定される利用メンバが作成した暗号ファイルを復号することができる（復号権限を持つ）。復号許可ＩＤを利用した暗号ファイルの復号処理については後述する。
【００６１】
はじめに，暗号ファイルの作成処理について説明する。クライアント２０が暗号化装置として用いられた場合を例にとる（図４の左下に示すクライアント２０（暗号化装置２０）を参照する）。図４の左下には，暗号化装置２０における暗号ファイルの作成処理の流れが示されている。
【００６２】
暗号ファイルの作成処理（暗号化処理）は，暗号ファイルの作成のためのプログラムにしたがって行われる。クライアント２０のハードディスク２５には暗号ファイル作成プログラムが記憶されており，暗号ファイル作成プログラムがクライアント２０において実行されることによって，クライアント２０が暗号化装置として機能する。
【００６３】
暗号ファイル作成プログラムが実行されると，はじめに乱数が生成される（ステップ６１）。そして，暗号化の対象である文書データ（平文データ）が入力装置２２，ＦＤドライブ２６等から入力される。生成された乱数がセッション・キーとして用いられて，入力された文書データが暗号化される（ステップ６２）。文書データから暗号文データが得られる。
【００６４】
上述のように，クライアント２０のハードディスク２５には，クライアント２０（ユーザＡ）に固有の秘密鍵１が記憶されている。文書データの暗号化に用いられたセッション・キーが，秘密鍵１によって暗号化される（ステップ６３）。セッション・キーを秘密鍵を用いて暗号化したものを，暗号化セッション・キー１と呼ぶ。暗号文データと，暗号化セッション・キー１と，ＩＤ１（暗号ファイル作成者のＩＤ）とによって構成される暗号ファイルが作成される（たとえば，暗号化セッション・キー１およびＩＤ１が，暗号文データ（データ本体）のヘッダ情報とされる）。
【００６５】
次に，暗号ファイル（暗号文データ）の復号処理について説明する。クライアント３０が復号装置として用いられた場合を例にとる。図４の右下に示すクライアント（復号装置３０）および図４の上段に示す鍵管理サーバ１０を参照する。図４の右下には，復号装置３０における暗号ファイルの復号処理の流れが示されている。図４の上段には，暗号ファイルの復号処理における鍵管理サーバ１０の処理が流れが示されている。
【００６６】
上述したクライアント（暗号化装置）２０において作成された暗号文データを含む暗号ファイルを，クライアント（復号装置）３０を用いてクライアント（復号装置）３０の利用メンバ（ユーザＢとする）が復号する場合を説明する。上述のように，暗号ファイルは，暗号文データと，暗号化セッション・キーおよび暗号文作成者ＩＤとを含んでいる。はじめに，ユーザＢは，復号しようとする暗号文データを含む暗号ファイルを取得する。暗号ファイルの取得は，暗号化装置２０からネットワーク１を介して復号装置３０に送信する態様であってもよいし，複数の暗号システムの利用メンバがアクセス可能なコンピュータの記憶装置（共有記憶装置）を介して，ダウンロードする態様であってもよい。
【００６７】
暗号ファイルの復号処理は，暗号ファイルの復号処理のためのプログラムにしたがって行われる。クライアント３０のハードディスク３５には復号処理プログラムが記憶されており，復号処理プログラムがクライアント３０において実行されることによって，クライアント３０が復号装置として機能する。また，次の説明から明らかになるが，暗号システムにおける復号処理は，復号装置（クライアント）と鍵管理サーバ１０とが協働して動作することによって実行される。
【００６８】
クライアント（復号装置）３０のハードディスク３５にも，ＩＤと秘密鍵とが記憶されている（クライアント３０のハードディスク３５に記憶されているＩＤを「ＩＤ２」，秘密鍵を「秘密鍵２」とする）。復号処理プログラムが実行されると，暗号ファイルに含まれる暗号化セッション・キー１およびＩＤ１（暗号ファイル作成者ＩＤ）と，復号装置３０のハードディスク３５に記憶されているＩＤ２（復号実行者ＩＤ）とがネットワーク１を介して復号装置３０から鍵管理サーバ１０に送信される。
【００６９】
鍵管理サーバ１０も，復号処理のためのプログラムを，そのハードディスク１５に記憶している。以下に説明する復号処理における鍵管理サーバ１０の動作は，鍵管理サーバ１０のハードディスク１５に記憶されている復号処理プログラムに基づく処理である。
【００７０】
復号装置３０から暗号化セッション・キー１およびＩＤ１（暗号ファイル作成者ＩＤ）と，ＩＤ２（復号実行者ＩＤ）とを受信すると，鍵管理サーバ１０は，ＩＤ２（復号実行者ＩＤ）によって特定される利用メンバ（復号実行者）が，ＩＤ１（暗号ファイル作成者ＩＤ）によって特定される利用メンバ（暗号ファイル作成者）が作成した暗号ファイルを復号する権限を有するかどうかの判断を行う（ステップ６４）。
【００７１】
すなわち，上述のように，ＩＤ２によって特定される利用メンバが復号可能な暗号ファイル作成者のＩＤは，ＩＤ２についての管理データ中の復号許可ＩＤ欄に記憶されている。上述の例の場合は，復号実行者であるユーザＢのＩＤ「ＩＤ２」についての管理データ中の復号許可ＩＤ欄に，暗号ファイル作成者ＩＤ「ＩＤ１」が記憶されているかどうかが判断される。
【００７２】
もしも，復号実行者の管理データ中の復号許可ＩＤ欄に，暗号ファイル作成者ＩＤが記憶されていない場合には，復号処理が許されていない旨のメッセージ等が鍵管理サーバ１０から復号装置３０に送信される。この場合には鍵管理サーバ１０および復号装置３０において，復号処理は終了する（終了処理；ステップ６４でＮＯ，ステップ６５）。
【００７３】
復号実行者についての管理データ中の復号許可ＩＤ欄に，暗号文作成者ＩＤが記憶されている場合には，復号処理が継続して進行する（ステップ６４でＹＥＳ  ）。
【００７４】
復号装置３０から受信した暗号文作成者ＩＤ「ＩＤ１」に対応する公開鍵１が，管理データベース６０から読出される。そして，復号装置３０から受信した暗号化セッション・キー１が，読出された公開鍵１で復号される（ステップ６６）。上述のように，暗号化セッション・キー１は，暗号文作成者の秘密鍵によってセッション・キーが暗号化されて生成されたものであるから，暗号化セッション・キー１はその秘密鍵に対応する公開鍵で復号することができる。暗号化セッション・キー１が復号されてセッション・キーが得られる。
【００７５】
次に，得られたセッション・キーが，復号実行者の公開鍵によって暗号化される（ステップ６７）。上述の例の場合，復号装置３０において公開鍵２と秘密鍵２の対が生成され，生成された公開鍵２と秘密鍵２の対のうちの公開鍵２が，ＩＤ２と関連して管理データベース６０に記憶されている。復号実行者ＩＤ「ＩＤ２」に対応する公開鍵２が管理データベース６０から読出され，読出された公開鍵２によってセッション・キーが暗号化される。復号実行者の公開鍵が用いられてセッション・キーが暗号化されることによって，鍵管理サーバ１０において新たに生成される暗号化セッション・キーを，暗号化セッション・キー２と呼ぶ。
【００７６】
生成された暗号化セッション・キー２が，鍵管理サーバ１０から復号装置３０にネットワーク１を介して送信される。
【００７７】
復号装置３０は，鍵管理サーバ１０から暗号化セッション・キー２を受信すると，ハードディスク３５に記憶されている秘密鍵２で暗号化セッション・キー２を復号する（ステップ６８）。上述のように，暗号化セッション・キー２は，復号装置３０のハードディスク３５に記憶されている秘密鍵２に対応する公開鍵２によって暗号化されたものであるから，秘密鍵２を用いて復号することができる。暗号化セッション・キー２が復号されて，セッション・キーが得られる。
【００７８】
最後に，得られたセッション・キーが用いられて，暗号ファイルに含まれる暗号文データが復号される（ステップ６９）。暗号化装置２０から取得した暗号ファイルに含まれる暗号文データは，暗号化装置２０において文書データ（平文データ）をセッション・キーによって暗号化したものであるから，上述の復号処理によって，復号装置３０においてもとの文書データ（平文データ）が得られる。
【００７９】
通常の公開鍵／秘密鍵方式では，文書データを暗号する場合，文書データ（平文データ）の復号を許可する相手の公開鍵で文書データを暗号するが，この暗号システムでは文書データをセッション・キーで暗号化し，暗号化に用いられたセッション・キーを暗号文作成者の秘密鍵で暗号化する。文書データの暗号化に用いられるセッション・キーは暗号ファイルの作成の度に生成されるので，公開鍵／秘密鍵方式に比べて機密性が高い。また，暗号化処理（暗号ファイルの作成処理）では，暗号化装置と，その他の装置との間では通信は一切行われない。機密性をさらに高めることができる。
【００８０】
また，暗号システムでは，鍵管理サーバ１０の管理データベース６０中の復号許可ＩＤが用いられることによって，暗号ファイルの復号を許す相手が特定される。たとえば，管理データベース６０に，企業等の従業員等のそれぞれについての管理データを記憶させ，上司である従業員等の管理データ中の復号許可ＩＤ欄には，その従業員等（上司）の部下である従業員等のＩＤを記憶させておく。上司は，部下の作成した暗号ファイルを復号することができるが，部下は上司の暗号ファイルを復号することができないように暗号システムが運用される。企業等における組織構造に対応した権限管理を行うことができる。
【００８１】
上述した例では，クライアント２０，３０・・・において公開鍵と秘密鍵の対を生成しているが，鍵管理サーバ１０において多数の公開鍵と秘密鍵の対を生成し，生成された公開鍵と秘密鍵の対のうちの秘密鍵を，クライアント２０，３０・・・のユーザのそれぞれに渡すようにしてもよい。
【００８２】
また，クライアント２０，３０・・・のハードディスク２５，３５・・・には，一般的には，暗号ファイル作成プログラムと復号処理プログラムの両方が記憶される。クライアント２０，３０・・・は，暗号化装置としても，復号装置としても機能する。クライアント２０，３０・・・において実行されるプログラム（暗号ファイル作成プログラムおよび復号処理プログラム）および鍵管理サーバ１０において実行される復号処理プログラムは，ネットワーク１を介してインストールすることによって，またはＣＤ−ＲＯＭ等に記録されたものをインストールすることによって，クライアント２０，３０・・・または鍵管理サーバ１０のハードディスクに記憶することができる。
【００８３】
暗号ファイル作成処理および復号処理の一部または全部を，プログラムによる処理に代えて，ハードウエアによる処理によって実現してもよいのは言うまでもない。
【００８４】
第２実施例（暗号システム（その２））
図５は，第２実施例の暗号システムにおいて鍵管理サーバ１０に設けられる管理データベース６０Ａに登録（記憶）される共通鍵の登録処理の様子を示している。図６は第２実施例の暗号システムにおいて，暗号化装置を利用した暗号ファイルの生成の様子，復号装置および鍵管理サーバを利用した暗号ファイルの復号の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。
【００８５】
第２実施例の暗号システムも，第１実施例と同様に，ネットワーク１に接続された鍵管理サーバ１０と複数台のクライアント２０，３０・・・から構成される。第２実施例の暗号システムでは，管理データベース６０Ａに記憶される利用メンバごとの管理データ中に公開鍵に代えて共通鍵が記憶される点，およびクライアント２０，３０・・・のハードディスク２５，３５・・・に，秘密鍵に代えて共通鍵がそれぞれ記憶されている点が，第１実施例の暗号システムと大きく異なる。クライアント２０，３０・・・は，第２実施例の暗号システムにおいても，暗号化装置として機能するとともに，復号装置としても機能する。暗号化装置における暗号ファイルの作成処理，ならびに復号装置および鍵管理サーバが協働して実行される暗号ファイルの復号処理において，第１実施例と同じ処理には同一の符号を付し，重複した詳細な説明は避けることにする。
【００８６】
はじめに，図５を参照して，管理データベース６０Ａに登録（記憶）される共通鍵の登録処理について説明する。
【００８７】
第２実施例の暗号化システムでは，鍵管理サーバ１０のハードディスク１５に公開鍵／秘密鍵生成プログラムが記憶されている。鍵管理サーバ１０において公開鍵／秘密鍵生成プログラムが実行されることによって，鍵管理サーバ１０において公開鍵と秘密鍵の対が生成される。生成された公開鍵および秘密鍵は，鍵管理サーバ１０のハードディスク１５に記憶される。
【００８８】
他方，クライアント２０，３０・・・のハードディスク２５，３５・・・には，共通鍵生成プログラムが記憶されている。共通鍵生成プログラムはデータの暗号化および復号の両方に用いられる鍵（共通鍵）を生成するプログラムである。クライアント２０，３０・・・のそれぞれにおいて共通鍵生成プログラムが実行されることによって，クライアント２０，３０・・・のそれぞれにおいて共通鍵１，２，・・・が生成される。生成された共通鍵１，２・・・は，クライアント２０，３０・・・のハードディスク２５，３５・・・にそれぞれ記憶される。
【００８９】
鍵管理サーバ１０は，ＩＤおよび公開鍵をクライアント２０，３０・・・のそれぞれに送信する。送信されるＩＤおよび公開鍵のうち，ＩＤについてはクライアント２０，３０・・・のそれぞれについて固有のものが送信される。公開鍵についてはクライアント２０，３０・・・のそれぞれに同じものが送信される。
【００９０】
クライアント２０，３０・・・のハードディスク２５，３５・・・には，共通鍵を暗号化するための暗号化プログラムが記憶されている。ＩＤおよび公開鍵を受信したクライアント２０，３０・・・では，暗号化プログラムが実行され，鍵管理サーバ１０から受信した公開鍵が用いられてクライアント２０，３０・・・において生成された共通鍵１，２・・・が暗号化される。暗号化共通鍵１，２・・・が得られる。暗号化共通鍵はＩＤとともにクライアント２０，３０・・・から鍵管理サーバ１０に送信される。
【００９１】
鍵管理サーバ１０では，受信した暗号化共通鍵を，ハードディスク１５に記憶されている秘密鍵を用いて復号する。暗号化共通鍵は，上述のように，共通鍵を公開鍵で暗号化したものであるので，公開鍵に対応する秘密鍵を用いることによって暗号化共通鍵を復号することができる。この復号によって共通鍵が得られる。共通鍵は，ＩＤとともに管理データベース６０Ａに記憶される。
【００９２】
図６を参照して，鍵管理サーバ１０の管理データベース６０Ａに記憶される管理データは「ＩＤ」と，「共通鍵」と，「復号許可ＩＤ」とを含む。上述のように，ＩＤおよび共通鍵は，クライアント２０，３０・・・から送信されて記憶されたものである。もちろん，ＩＤは鍵管理サーバ１０において発行されるものであるから，鍵管理サーバ１０において発行されたＩＤを鍵管理サーバ１０において管理データベース６０Ａに記憶させてもよい。この場合には，ＩＤについてはクライアントから送信されたものを管理データベース６０Ａに記憶させる必要は必ずしもない。復号許可ＩＤは，第１実施例と同様，「ＩＤ」欄に格納されたＩＤによって特定される利用メンバが復号可能な暗号ファイル（暗号文データ）の作成者のＩＤである。
【００９３】
暗号ファイル作成処理（暗号化処理）について説明する。図６の左下に示すクライアント（暗号化装置）２０を参照する。
【００９４】
クライアント２０のハードディスク２５には暗号ファイル作成プログラムが記憶されており，クライアント２０において暗号ファイル作成プログラムが実行されることによって，クライアント２０が暗号化装置として機能する。暗号ファイル作成プログラムは，上述した公開鍵の暗号化に用いられる暗号化プログラムと同じもの（同じアルゴリズムのもの）であってもよいし，異なるものであってもよい。
【００９５】
暗号ファイル作成プログラムが実行されると，はじめに乱数（セッション・キー）が生成される（ステップ６１）。セッション・キーが用いられて，入力された文書データ（平文データ）が暗号化される。暗号文データが得られる（ステップ６２）。
【００９６】
文書データの暗号化に用いられたセッション・キーが，暗号化装置２０のハードディスク２５に記憶されている共通鍵１によって暗号化される（ステップ６３Ａ）。セッション・キーを共通鍵で暗号化したものを，暗号化セッション・キー３と呼ぶ。暗号文データと，暗号化セッション・キー３と，ＩＤ１（暗号ファイル作成者ＩＤ）とによって構成される暗号ファイルが作成される。
【００９７】
次に暗号文の復号処理について説明する。図６の右下に示すクライアント（復号装置）３０および図６の上段に示す鍵管理サーバ１０を参照する。上述したクライアント（暗号化装置）２０によって作成された暗号ファイルを，クライアント（復号装置）３０において復号する場合を説明する。
【００９８】
クライアント３０のハードディスク３５は復号処理プログラムが記憶されており，復号処理プログラムがクライアント３０において実行されることによってクライアント３０が復号装置として機能する。
【００９９】
復号装置３０のハードディスク３５にはＩＤ２と共通鍵２とが記憶されている。暗号ファイルに含まれている暗号化セッション・キー３およびＩＤ１（暗号ファイル作成者ＩＤ）と，ハードディスク３５に記憶されているＩＤ２（復号実行者ＩＤ）とが，ネットワーク１を介して復号装置３０から鍵管理サーバ１０に送信される。
【０１００】
復号装置３０から暗号化セッション・キー３およびＩＤ１（暗号ファイル作成者ＩＤ）と，ＩＤ２（復号実行者ＩＤ）とを受信すると，鍵管理サーバ１０は，管理データベース６０Ａを参照して，ＩＤ２（復号実行者ＩＤ）についての復号許可ＩＤに基づいて，ＩＤ２によって特定される利用メンバ（復号実行者）がＩＤ１によって特定される利用メンバ（暗号ファイル作成者）が作成した暗号文を復号する権限を有するかどうかの判断を行う（ステップ６４）。
【０１０１】
復号実行者が暗号ファイルの復号権限を有する場合（ステップ６４でＹＥＳ  ），ＩＤ１（暗号ファイル作成者ＩＤ）に対応する共通鍵１が管理データベース６０Ａから読み出され，読み出された共通鍵１が用いられて暗号化セッション・キー３が復号される（ステップ６６Ａ）。暗号化セッション・キー３は，暗号化装置２０において共通鍵１が用いられて暗号化されたものであるから，共通鍵１を用いた復号処理により暗号化セッション・キー３を復号することができる。セッション・キーが得られる。
【０１０２】
ＩＤ２（復号実行者ＩＤ）に対応する共通鍵２が管理データベース６０Ａから読み出され，セッション・キーが共通鍵２によって暗号化される（ステップ６７Ａ）。セッション・キーを復号実行者の共通鍵によって暗号化したものを，暗号化セッション・キー４と呼ぶ。暗号化セッション・キー４が鍵管理サーバ１０から復号装置３０に送信される。
【０１０３】
復号装置３０は，鍵管理サーバ１０から暗号化セッション・キー４を受信すると，ハードディスク３５に記憶されている共通鍵２で暗号化セッション・キー４を復号する（ステップ６８Ａ）。上述のように，暗号化セッション・キー４は，管理データベース６０Ａに記憶されている共通鍵２によって暗号化されたものであるから，共通鍵２を用いることによって復号することができる。セッション・キーが得られる。最後に，得られたセッション・キーが用いられて，暗号ファイルに含まれる暗号文データが復号される（ステップ６９）。文書データが得られる。
【０１０４】
第２実施例の暗号システムにおいても，文書データの暗号化に用いられるセッション・キーは暗号文の作成の度に生成されるので，文書データの機密性は高い。また，暗号化処理（暗号ファイルの作成処理）では，暗号化装置と，その他の装置との間では通信は一切行われないので，文書データの機密性をさらに高めることができる。
【０１０５】
変形例（その１）
図７から図９は，第２実施例の暗号システムの変形例を示すもので，図７は暗号化装置２０において作成される暗号ファイルに含まれる暗号化セッション・キー３を，別の暗号化セッション・キー（暗号化セッション・キー５と呼ぶ）に差し替える様子を示している。図８は，暗号化装置２０において作成される暗号ファイルに，暗号化セッション・キー３に代えて別の暗号化セッション・キー（暗号化セッション・キー５）を含ませる様子を示している。図９は，図７または図８に示す処理によって作成される暗号ファイルの復号処理の様子を示している。図７から図９に示す鍵管理サーバ１０，暗号化装置２０および復号装置３０の処理も，基本的にはこれらの装置のハードディスクに記憶されるプログラムに基づく。
【０１０６】
図７〜図９に示す第２実施例の暗号システムの変形例では，鍵管理サーバ１０のハードディスク１５に記憶される管理データベース６０Ｂに，ＩＤ，共通鍵および復号許可ＩＤに加えて，固有鍵が含まれている点が，第２実施例の暗号システムにおける管理データベース６０Ａ（図６）と異なる。
【０１０７】
固有鍵は，暗号システムの利用メンバに固有の鍵である。固有鍵は，鍵管理サーバ１０または他のコンピュータが用いられて生成されて，管理データベース６０Ｂに記憶される。暗号システムにおける固有鍵の用いられ方については後述する。
【０１０８】
図７を参照して，暗号化セッション・キー３およびＩＤ１と，暗号文データとを含む暗号ファイルが作成された後，暗号化装置２０から鍵管理サーバ１０に，暗号化セッション・キー３およびＩＤ１が送信される。鍵管理サーバ１０では，受信したＩＤ（暗号ファイル作成者ＩＤ）が管理データベース６０Ｂに登録されているかどうかを判断する（ステップ８２）。
【０１０９】
鍵管理サーバ１０が受信したＩＤが，管理データベース６０Ｂに登録されていないＩＤの場合には，鍵管理サーバ１０は暗号化セッション・キーの差替えの処理を終了する（ステップ６５）。
【０１１０】
受信したＩＤが，管理データベース６０Ｂに登録されている場合（ステップ８２でＹＥＳ  ），暗号化セッション・キーの差し替え処理は継続して進行する。
【０１１１】
鍵管理サーバ１０は，受信したＩＤ１（暗号ファイル作成者ＩＤ）に対応して管理データベース６０Ｂに記憶されている共通鍵１を読み出し，読み出した共通鍵１で受信した暗号化セッション・キー３を復号する（ステップ６６Ａ）。セッション・キーが得られる。
【０１１２】
鍵管理サーバ１０はさらに，受信したＩＤ１に対応して管理データベース６０Ｂに記憶されている固有鍵１を読み出し，読み出した固有鍵１で得られたセッション・キーを暗号化する（ステップ６７Ｂ）。セッション・キーを固有鍵で暗号化したものを，暗号化セッション・キー５と呼ぶ。暗号化セッション・キー５が得られる。暗号化セッション・キー５は，鍵管理サーバ１０から暗号化装置２０に送信される。
【０１１３】
暗号化装置２０では，暗号ファイルに含まれている暗号化セッション・キー３が，受信した暗号化セッション・キー５と差し替えられる（ステップ８１）。暗号文データと，暗号化セッション・キー５と，ＩＤ１とを含む暗号化ファイルが作成される。
【０１１４】
上述の図７に示す例では，暗号化セッション・キー３およびＩＤ１を含む暗号ファイルが一旦作成され，作成された暗号ファイルに含まれる暗号化セッション・キー３を暗号化セッション・キー５に差し替えている。これに対して図８に示す例では，暗号化セッション・キー３およびＩＤ１を含む暗号ファイルは作成されず，暗号化セッション・キー５およびＩＤ１を含む暗号ファイルが作成される。鍵管理サーバ１０から送信され，暗号化装置２０において受信された暗号化セッション・キー５が用いられて，暗号化セッション・キー５およびＩＤ１を含む暗号ファイルが作成される。
【０１１５】
図９を参照して，暗号化セッション・キー５，ＩＤおよび暗号文データを含む暗号ファイルから文書データを得る処理（復号処理）を説明する。
【０１１６】
暗号ファイルに含まれている暗号化セッション・キー５およびＩＤ１（暗号ファイル作成者ＩＤ）と，ハードディスク３５に記憶されているＩＤ２（復号実行者ＩＤ）が，ネットワーク１を介して復号装置３０から鍵管理サーバ１０に送信される。
【０１１７】
鍵管理サーバ１０では，ＩＤ１（暗号化作成者ＩＤ）に対応して管理データベース６０Ｂに記憶されている固有鍵１を読出し，読出した固有鍵１で暗号化セッション・キー５を復号する（ステップ６６Ｂ）。暗号化セッション・キー５は，暗号ファイル作成者の固有鍵を用いてセッション・キーを暗号化したものであるから，この復号によって暗号化セッション・キー５が復号される。セッション・キーが得られる。
【０１１８】
ＩＤ２（復号実行者ＩＤ）に対応する共通鍵２が，管理データベース６０Ｂから読み出され，読み出された共通鍵２が用いられてセッション・キーが暗号化される（ステップ６７Ａ）。暗号化セッション・キー４が得られる（第２実施例（図６）と同じ）。暗号化セッション・キー４は鍵管理サーバ１０から復号装置３０に送信される。復号装置３０において暗号化セッション・キー４が復号され（ステップ６８Ａ），得られたセッション・キーで暗号文データが復号される（ステップ６９）。
【０１１９】
第２実施例の変形例では，暗号化セッション・キー５を含む暗号ファイルの復号処理（図９）において，暗号ファイル作成者の固有鍵と，復号実行者の共通鍵が用いられている（復号実行者の共通鍵は，鍵管理サーバ１０（ステップ６７Ａ）と復号装置３０（ステップ６８Ａ）の両方において用いられる）。第２実施例の変形例では，暗号ファイルの復号処理において暗号ファイル作成者の共通鍵は一切用いられない。鍵管理サーバ１０の管理データベース６０Ｂに記憶されている暗号ファイル作成者の共通鍵が更新されたとしても，暗号ファイルを復号することができる。このように，第２実施例の変形例では，共通鍵を更新しても暗号ファイルの復号処理に影響がでないので，暗号システムの利用メンバは随時共通鍵を更新することができる。共通鍵の紛失，漏洩等に対処することができる。
【０１２０】
図１０は，第２実施例の暗号システムのさらに他の変形例を示すものであり，暗号化装置を利用した暗号ファイルの生成の様子，復号装置および鍵管理サーバを利用した暗号ファイルの復号処理の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。図６に示すものとは，暗号ファイルの復号処理（復号装置３０および鍵管理サーバ１０の処理）が異なる。また鍵管理サーバ１０のハードディスク１５には，管理データベース６０Ｂ（図７から図９と同じ）が記憶されている。
【０１２１】
暗号化装置２０における暗号ファイルの作成処理は，上述の第２実施例（図６）と同じである。復号処理について説明する。
【０１２２】
復号装置３０において復号プログラムが実行される。暗号ファイルに含まれる暗号化セッション・キー３およびＩＤ１（暗号ファイル作成者ＩＤ）と，クライアント３０のハードディスク３５に記憶されているＩＤ２（復号実行者ＩＤ）とが，ネットワーク１を介して復号装置３０から鍵管理サーバ１０に送信される。
【０１２３】
復号装置３０から暗号化セッション・キー１およびＩＤ１（暗号ファイル作成者ＩＤ）と，ＩＤ２（復号実行者ＩＤ）とを受信すると，鍵管理サーバ１０では，ＩＤ１（暗号ファイル作成者ＩＤ）に対応する共通鍵１を管理データベース６０Ｂから読出す。読出された共通鍵１によって暗号化セッション・キー３が復号される（ステップ６６Ａ）。セッション・キーが得られる。
【０１２４】
次に，暗号ファイル作成者ＩＤ（ＩＤ１）に対応する固有鍵１が管理データベース６０Ｂから読出され，固有鍵１が用いられて，セッション・キーが暗号化される（ステップ６７Ｂ）。暗号化セッション・キー５が得られる。
【０１２５】
さらに，ＩＤ２（復号実行者ＩＤ）に対応する共通鍵２が管理データベース６０Ｂから読出され，共通鍵２が用いられてセッション・キーの暗号化に用いられた固有鍵１が暗号化される（ステップ６７Ｃ）。固有鍵を復号実行者の共通鍵で暗号化したものを暗号化固有鍵と呼ぶ。暗号化固有鍵１と，暗号化セッション・キー５とが，鍵管理サーバ１０から復号装置３０に送信される。
【０１２６】
復号装置３０では，鍵管理サーバ１０から受信した暗号化固有鍵１が，ハードディスク３５に記憶されている共通鍵２で復号される（ステップ６８Ｃ）。上述のように，暗号化固有鍵１は，固有鍵１を共通鍵２で暗号化したものであるので，この復号によって固有鍵１が得られる。
【０１２７】
得られた固有鍵１が用いられて，鍵管理サーバ１０から受信した暗号化セッション・キー５が復号される（ステップ６８Ｂ）。上述のように，暗号化セッション・キー５はセッション・キーを固有鍵１で暗号化したものであるので，この復号によってセッション・キーが得られる。
【０１２８】
得られたセッション・キーが用いられて，暗号ファイルに含まれる暗号文データを復号して文書データを得るのは，第２実施例と同じである（ステップ６９）。
【０１２９】
第２実施例の変形例（図７から図１０）において，第１実施例と同じように，管理データベースに利用メンバごとの公開鍵を記憶させ，各クライアント（暗号化装置および復号装置）のハードディスクのそれぞれに，公開鍵に対応する秘密鍵を記憶させてもよい。共通鍵に代えて，公開鍵および秘密鍵が用いられて，上述の同様の処理が行われる。
【０１３０】
第３実施例（署名／検証システム）
図１１は，署名／検証システムにおける鍵管理サーバと，署名装置と，検証装置との関係，および各装置における処理およびデータの流れを示している。
【０１３１】
署名／検証システムは，署名装置から検証装置に送信されるデータが，送信途中で改竄されていないことを保証するシステムである。署名／検証システムが鍵管理サーバ１０と，鍵管理サーバ１０にネットワーク１によって接続された複数台のクライアント２０，３０・・・とによって構成される点は，図１に示す第１実施例の暗号システムと同じである。また，鍵管理サーバ１０およびクライアント２０，３０・・・のハードウエア構成も，図２に示すものと同じである。クライアント２０，３０・・・のハードディスク２５，３５・・・のそれぞれに公開鍵／秘密鍵方式における秘密鍵とＩＤとが記憶されている点，および公開鍵の管理データベースへの登録の処理も，第１実施例の暗号システムと同じである。上述の暗号システムと区別するために，鍵管理サーバを符号１０Ａで示し，署名装置として用いられるクライアントを符号２０Ａで示し，検証装置として用いられるクライアントを符号３０Ａで示す。上述の第１実施例の暗号システムとは，鍵管理データ１０Ａのハードディスク１５に記憶されている管理データベース６０Ｃの内容，ならびに鍵管理サーバ１０Ａ，クライアント（署名装置）２０Ａおよびクライアント（検証装置）３０Ａにおける処理の内容（プログラム処理の内容）が異なっている。
【０１３２】
署名／検証システムにおいて，鍵管理サーバ１０Ａのハードディスク１５に記憶されている管理データベース６０Ｃには，利用メンバごとに付与されたＩＤと，利用メンバに固有の公開鍵が記憶されている。利用メンバに固有の公開鍵は，各利用メンバがクライアント２０，３０，・・・を用いて作成した公開鍵／秘密鍵のうちの公開鍵であるのは，第１実施例の暗号システムと同じである。
【０１３３】
はじめに，署名処理について説明する。図１１の左下に示す署名装置２０Ａを参照する。
【０１３４】
データ署名処理は，署名処理のためのプログラムにしたがって行われる。クライアント２０Ａのハードディスク２５には署名処理プログラムが記憶されており，署名処理プログラムがクライアント２０において実行されることによって，クライアント２０が署名装置２０Ａとして機能する。
【０１３５】
署名者が署名すべきデータ（被署名文データ，入力データ）が入力装置２２等から入力されると，被署名文データがメモリ２４において複製（コピー）される。複製された被署名文データがハードディスク２５に記憶されている秘密鍵１で暗号化される（ステップ７１）。秘密鍵が用いられて被署名文データが暗号化されることによって得られるデータを「署名文データ」と呼ぶ。メモリ２４には，被署名文データと署名文データとが一時的に記憶される。
【０１３６】
生成された署名文データのヘッダ情報として，ハードディスク２５に記憶されているＩＤ１が付加される。署名文の検証を受ける場合には，検証するユーザのクライアント（検証装置）に，ＩＤが付加された署名文データと被署名文データとが送信される。
【０１３７】
次に，検証処理について説明する。図１１の右下に示す検証装置３０Ａおよび図１１の上段に示す鍵管理サーバ１０Ａを参照する。
【０１３８】
はじめに，検証装置３０Ａのユーザ（ユーザＢ）は署名文データ，署名文データのヘッダに付加された署名者（ユーザＡ）のＩＤ（署名者ＩＤ）（ＩＤ１），およびユーザＡが入力した被署名文データを取得する。一般的には，署名文データ，署名者ＩＤおよび被署名文データは，ネットワーク１を介して署名装置２０Ａから検証装置３０Ａに送信される。
【０１３９】
署名文の検証処理は，検証処理のためのプログラムにしたがって行われる。検証装置３０Ａのハードディスク３５には検証プログラムが記憶されており，検証プログラムがクライアント３０において実行されることによって，クライアント３０が検証装置３０Ａとして機能する。
【０１４０】
検証プログラムが実行されると，署名文および署名者ＩＤ（ＩＤ１）と，検証装置３０Ａのハードディスク３５に記憶されている検証者ＩＤ（ＩＤ２）とが，ネットワーク１を介して検証装置３０Ａから鍵管理サーバ１０Ａに送信される。
【０１４１】
鍵管理サーバ１０Ａは，検証処理のためのプログラムを，そのハードディスク１５に記憶している。以下に説明する検証処理における鍵管理サーバ１０Ａの処理（動作）は，鍵管理サーバ１０Ａのハードディスク１５に記憶されている検証処理プログラムに基づく。
【０１４２】
検証装置３０Ａから署名文データおよび署名者ＩＤ（ＩＤ１）と，検証者ＩＤ（ＩＤ２）とを受信すると，鍵管理サーバ１０Ａでは，署名者ＩＤ（ＩＤ１）に対応して記憶されている公開鍵１を管理データベース６０Ｃから読出す。読出された公開鍵１が用いられて，受信した署名文データが復号される（ステップ７２）。上述のように，署名文データは，署名者に固有の秘密鍵１によって暗号化されて生成されたものであるから，署名文データはその秘密鍵１に対応する公開鍵１で復号することができる。署名文データが復号されて被署名文データが得られる。
【０１４３】
次に，鍵管理サーバ１０Ａでは検証者ＩＤ（ＩＤ２）に対応して記憶されている公開鍵２を管理データベース６０Ｃから読出す。読出された公開鍵２が用いられて，得られた被署名文データが暗号化される（ステップ７３）。検証者の公開鍵によって新たに生成される暗号化された被署名文データを，「暗号化被署名文データ」と呼ぶ。
【０１４４】
生成された暗号化被署名文データが，鍵管理サーバ１０Ａから検証装置３０Ａにネットワーク１を介して送信される。
【０１４５】
検証装置３０Ａは，鍵管理サーバ１０Ａから暗号化被署名文データを受信すると，ハードディスク３５に記憶されている秘密鍵２で暗号化被署名文データを復号する（ステップ７４）。暗号化被署名文データは，検証装置３０Ａのハードディスク３５に記憶されている秘密鍵２に対応する公開鍵２が用いられて暗号化されたものであるから，秘密鍵２を用いることによって復号することができる。暗号化被署名文データが復号されて被署名文データが得られる。
【０１４６】
最後に，署名装置２０Ａから送信された被署名文データと，復号によって得られた被署名文データとが一致するかどうかが判断される（ステップ７５：検証）。これらの２つのデータが一致している場合は，署名装置２０Ａから検証装置３０Ａに送信された被署名文データ（または署名文データ）が，通信途中で改竄されていないことが分かる。検証装置３０Ａでは，署名装置２０Ａから送信された被署名文データ（署名文データ）が，署名装置２０Ａのユーザ（ユーザＡ）が入力した被署名文データ（または署名装置２０Ａにおいて生成された署名文データ）そのものであることを検証することができる。
【０１４７】
もしも，署名装置２０Ａから送信された被署名文データと，復号によって得られた被署名文データとが一致しない場合には，署名者が意図しないデータが被署名文データ（署名文データ）として署名装置２０Ａから検証装置３０Ａに送信されてしまったことが分かる。たとえば，署名装置２０Ａから検証装置３０Ａに被署名文データ（署名文データ）を送信する途中に，第三者によってデータ内容が改竄されてしまったような場合に２つのデータは一致しない。具体的な一例を挙げると，１０個の商品の注文データを送ったものの，通信途中に改竄されてしまい，１０００個の商品の注文データに書き替えられてしまった場合等である。
【０１４８】
一般的な署名／検証方式では，署名者の公開鍵を公開し，さらに検証者が入手する署名者の公開鍵が所望する相手の正しい公開鍵かどうか確認するために，公開鍵が誰の公開鍵であるかを証明する機関（認証局と呼ばれる）が発行する証明書により，署名者の公開鍵の信頼性を担保している。他方，上述の署名／検証システムでは鍵管理サーバ１０Ａに公開鍵が保管されており，公開鍵を公開することなく署名／検証が実現される。公開鍵が公開されないので認証局による認証（証明書の発行）も必要とされない。
【０１４９】
変形例
図１２は，図１１に示す署名／検証システムの他の例を示すものである。
【０１５０】
図１２に示す署名／検証システムでは，検証処理において鍵管理サーバ１０に固有の公開鍵／秘密鍵が用いられる点と，上記の鍵管理サーバ１０に固有の公開鍵／秘密鍵のうちの公開鍵がクライアント（署名装置および検証装置）のハードディスクに記憶されている点が，図１１に示す署名／検証システムと異なっている。鍵管理サーバ１０に固有の公開鍵を「公開鍵Ａ」，公開鍵Ａに対応する鍵管理サーバ１０に固有の秘密鍵を「秘密鍵Ａ」と呼ぶことにする。以下の説明では，鍵管理サーバを符号１０Ｂで示し，署名装置として用いられるクライアントを符号２０Ｂで示し，検証装置として用いられるクライアントを符号３０Ｂで示す。鍵管理サーバ１０Ｂ，署名装置２０Ｂおよび検証装置３０Ｂにおける処理のうち，上記した図１１の署名／検証システムにおける処理と同じ処理には同一符号を付し，重複説明を避ける。
【０１５１】
上述のように，図１２に示す署名／検証システムにおいて署名装置および検証装置として機能するクライアント２０Ｂ，３０Ｂ・・・のハードディスク２５，３５・・・には，ＩＤおよびユーザに固有の秘密鍵とともに，上述の鍵管理サーバ１０Ｂに固有の公開鍵Ａが記憶されている。すなわち，鍵管理サーバ１０Ｂにおいて生成された公開鍵Ａ／秘密鍵Ａのうちの公開鍵Ａが，クライアント２０Ｂ，３０Ｂ・・・のそれぞれに送信（配信）されて，ハードディスクにそれぞれ記憶されている。また，鍵管理サーバ１０Ｂのハードディスク１５には，鍵管理サーバ１０Ｂに固有の秘密鍵Ａが記憶されている。
【０１５２】
署名装置２０Ｂにおける署名のための処理は，上述の図１１に示す署名／検証システムにおける署名装置２０Ａと同じ処理と同じである。すなわち，被署名文データ（入力データ）のコピーが，署名者に固有の秘密鍵１で暗号化されて署名文データが生成される（ステップ７１）。署名文データ，署名者ＩＤおよび被署名文データが署名装置２０Ｂから検証装置３０Ｂに送信される。
【０１５３】
検証処理について説明する。図１２の右下に示す検証装置３０Ｂおよび図１２の上段に示す鍵管理サーバ１０Ｂを参照する。
【０１５４】
署名文データおよび署名者ＩＤ（ＩＤ１）が検証装置３０Ｂから鍵管理サーバ１０Ｂに送信される。
【０１５５】
鍵管理サーバ１０Ｂでは，署名者ＩＤ（ＩＤ１）に基づいて，管理データベース６０Ｃから公開鍵１を読出し，読出した公開鍵１で署名文データを復号する（ステップ７２）。被署名文データが得られる。次に，鍵管理サーバ１０Ｂのハードディスク１５に記憶されている鍵管理サーバ１０Ｂに固有の秘密鍵Ａが用いられて，得られた被署名文データが暗号化される（ステップ７３Ａ）。鍵管理サーバ１０Ｂの秘密鍵Ａによって暗号された被署名文データ（暗号化被署名文データ）が，鍵管理サーバ１０Ｂから検証装置３０Ｂに送信される。
【０１５６】
上述したように，図１２に示す署名／検証システムを構成するクライアントのハードディスクには，鍵管理サーバ１０Ｂに固有の公開鍵Ａが記憶されている。署名装置３０Ｂが受信した暗号化被署名文データは，鍵管理サーバ１０Ｂに固有の秘密鍵Ａによって暗号化されたものであるので，暗号被署名文データを署名装置３０Ｂのハードディスク３５に記憶されている公開鍵Ａによって復号することができる。被署名文データが得られる（ステップ７４Ａ）。
【０１５７】
得られた被署名文データと，署名装置２０Ｂから受信した被署名文データとが比較されて，被署名文データ（署名文データ）の検証が行われる（ステップ７５）。
【０１５８】
変形例（その２）
図１３は図１１に示す署名／検証システムのさらに他の例を示すものである。以下の説明では，鍵管理サーバを符号１０Ｃで示し，署名装置として用いられるクライアントを符号２０Ｃで示し，検証装置として用いられるクライアントを符号３０Ｃで示す。
【０１５９】
署名装置２０Ｃでは，はじめに被署名文データ（入力データ）に一方向性変換処理が施される（ステップ９１）。被署名文データに一方向性変換処理を施した後のデータを「変換データ」と呼ぶ。一方向性変換処理では，一方向性関数（ある入力を変換し出力するのは可能であるが，逆方向の出力から入力を求めることが困難または不可能な関数）が用いられる。たとえば，ハッシュ関数を用いることができる。
【０１６０】
署名装置２０Ｃのハードディスク２５に記憶されている秘密鍵１が用いられて，変換データが暗号化される（ステップ９２）。変換データを秘密鍵によって暗号化して生成されるものを「認証子１」と呼ぶ。生成された認証子１およびハードディスク２５に記憶されている署名者ＩＤ（ＩＤ１）と被署名文データとが，署名装置２０Ｃから検証装置３０Ｃに送信される。
【０１６１】
検証装置３０Ｃでは，署名装置２０Ｃから受信した被署名文データに，署名装置２０Ｃと同じ一方向性変換処理が施され，変換データが生成される（ステップ９６）。後述するように，検証処理ではこの変換データが用いられることになる。
【０１６２】
検証装置３０Ｃは，署名装置２０Ｃから受信した認証子１および署名者ＩＤ（ＩＤ１）と，検証者ＩＤ（ＩＤ２）とを，鍵管理サーバ１０Ｃに送信する。
【０１６３】
認証子１および署名者ＩＤ（ＩＤ１）と，検証者ＩＤ（ＩＤ２）とを受信した鍵管理サーバ１０Ｃでは，受信した署名者ＩＤ（ＩＤ１）に基づいて，管理データベース６０Ｃに記憶されているＩＤ１に対応する公開鍵１を読出す。読出された公開鍵１が用いられて，受信した認証子１が復号される（ステップ９３）。上述のように，認証子１は公開鍵１に対応する秘密鍵１が用いられて暗号化されたものであるので，公開鍵１を用いることによって認証子１を復号することができる。認証子１を公開鍵１を用いて復号することにより変換データが得られる。
【０１６４】
管理データベース６０Ｃに記憶されている検証者ＩＤ（ＩＤ２）に対応する公開鍵２が用いられて，得られた変換データが暗号化される（ステップ９４）。検証者の公開鍵を用いて変換データを暗号化したものを「認証子２」と呼ぶ。認証子２が鍵管理サーバ１０Ｃから検証装置３０Ｃに送信される。
【０１６５】
認証子２を受信した検証装置３０Ｃでは，受信した認証子２をハードディスク３５に記憶されている秘密鍵２で復号する（ステップ９５）。上述のように，認証子２は，変換データを秘密鍵２に対応する公開鍵２で暗号化したものである。このため，認証子２を秘密鍵２で復号することにより変換データを得ることができる。
【０１６６】
得られた変換データと，署名装置２０Ｃから受信した被署名文データに一方向性変換処理を施すことによって得られた変換データとが比較される（ステップ９７；検証）。
【０１６７】
変形例（その２）の署名／検証システムについても，上述の変形例（その１）と同様に，鍵管理サーバ１０Ｃに固有の公開鍵Ａおよび秘密鍵Ａの対を生成し，公開鍵Ａを各ユーザ（クライアント）に配布しておき，秘密鍵Ａを鍵管理サーバ１０Ｃのハードディスク１５に記憶させておき，鍵管理サーバ１０Ｃにおいて変換データを検証者の公開鍵で暗号化するのに代えて，鍵管理サーバ１０Ｃに固有の秘密鍵Ａで暗号化して認証子２を生成するようにしてもよい。この場合には，検証装置３０Ｃでは，あらかじめ配布されている鍵管理サーバ１０Ｃに固有の公開鍵Ａで認証子２が復号されて変換データを得ることになる。
【０１６８】
図１１から図１３に示す署名／検証システムについても，公開鍵／秘密鍵に代えて，共通鍵を用いるようにしてもよい（第１実施例の暗号システム（図４）と第２実施例の暗号システム（図６）の関係と同じ）。
【図面の簡単な説明】
【図１】第１実施例の暗号システムの全体的構成を示すブロック図である。
【図２】鍵管理サーバの電気的構成を示すブロック図である。
【図３】第１実施例の暗号システムにおいて，クライアントにおける公開鍵および秘密鍵の生成の様子と，鍵管理サーバにおける公開鍵の登録の様子を示している。
【図４】暗号化装置における暗号ファイルの生成の様子，復号装置および鍵管理サーバにおける暗号ファイルの復号処理の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図５】第２実施例の暗号システムにおいて，クライアントにおける暗号化共通鍵の生成の様子，鍵管理サーバにおける暗号化共通鍵の復号の様子，および鍵管理サーバにおける共通鍵の登録の様子を示している。
【図６】第２実施例の暗号システムにおいて，暗号化装置における暗号ファイルの生成の様子，復号装置および鍵管理サーバにおける暗号ファイルの復号処理の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図７】第２実施例の変形例を示すもので，暗号化セッション・キーの差し替えの様子を示している。
【図８】第２実施例の変形例を示すもので，鍵管理サーバにおいて生成された暗号化セッション・キーを，暗号化装置において暗号ファイルに含ませる様子を示している。
【図９】第２実施例の変形例において，復号装置および鍵管理サーバにおける暗号ファイルの復号処理の様子，ならびに復号装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図１０】第２実施例のさらに他の変形例を示すもので，暗号化装置における暗号ファイルの生成の様子，復号装置および鍵管理サーバにおける暗号ファイルの復号処理の様子，ならびに暗号化装置，復号装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図１１】署名装置における署名文生成の様子，検証装置および鍵管理サーバにおける検証処理の様子，ならびに署名装置，検証装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図１２】署名装置における署名文生成の様子，検証装置および鍵管理サーバにおける検証処理の様子，ならびに署名装置，検証装置および鍵管理サーバ間のデータの送受信の様子を示している。
【図１３】署名装置における署名文生成の様子，検証装置および鍵管理サーバにおける検証処理の様子，ならびに署名装置，検証装置および鍵管理サーバ間のデータの送受信の様子を示している。
【符号の説明】
１０  鍵管理サーバ
２０  クライアント（暗号化装置）
３０  クライアント（復号装置）
２０Ａ，２０Ｂ，２０Ｃ  クライアント（署名装置）
３０Ａ，３０Ｂ，３０Ｃ  クライアント（検証装置）
１１，２１，３１  ＣＰＵ
１２，２２，３２  入力装置
１４，２４，３４  メモリ
１５，２５，３５  ハードディスク
１８，２８，３８  通信装置
【図１】
2004297755.tif 000003
【図２】
2004297755.tif 000004
【図３】
2004297755.tif 000005
【図４】
2004297755.tif 000006
【図５】
2004297755.tif 000007
【図６】
2004297755.tif 000008
【図７】
2004297755.tif 000009
【図８】
2004297755.tif 000010
【図９】
2004297755.tif 000011
【図１０】
2004297755.tif 000012
【図１１】
2004297755.tif 000013
【図１２】
2004297755.tif 000014
【図１３】
2004297755.tif 000015