(57)【要約】【課題】署名生成や署名検証に用いられる署名方法や検証方法を特定するための情報を更新するための管理が容易であり、なおかつ、署名装置や検証装置にこれらの情報を継続的に格納しておくことができない環境であっても実現可能な方式を提供する。【解決手段】署名装置１１は、署名生成時に署名ローダーを用いて署名方法管理装置１５に接続し、署名方法を特定するための署名方法情報の入力を受け付け、それを用いて署名を生成する。また、検証装置１２は、署名検証時に検証ローダーを用いて検証方法管理装置１６に接続し、検証方法を特定するための検証方法情報の入力を受け付け、それを用いて署名を検証する。【選択図】図６
2011101083.tif 000002
【特許請求の範囲】
【請求項１】
署名生成を行う署名装置であって、
署名対象のメッセージを格納するメッセージ記憶部と、
前記署名装置に対応する署名用秘密鍵とネットワーク上の署名方法管理装置の位置を特定する位置指定子とを含む署名ローダーを格納する署名ローダー記憶部と、
前記署名ローダーを用い、当該署名ローダーが含む前記位置指定子によってネットワーク上の位置が特定される前記署名方法管理装置にネットワーク経由で接続し、当該署名方法管理装置から送信された、署名方法を特定するための署名方法情報の入力を受け付ける署名方法情報取得部と、
前記署名方法情報取得部に前記署名方法情報が入力されると、当該署名方法情報によって特定される署名方法に従い、前記署名用秘密鍵を用いて前記メッセージに対する署名を生成する署名生成部と、
を有する署名装置。
【請求項２】
請求項１の署名装置であって、
任意の契機で、前記署名用秘密鍵とそれに対応する検証用公開鍵とを生成し、設定した前記署名用秘密鍵を用いて前記署名ローダーを生成する署名ローダー生成部と、
前記署名ローダー生成部で前記検証用公開鍵が生成されると、前記検証用公開鍵を出力する検証用情報出力部と、をさらに有し、
前記署名方法情報取得部の処理と前記署名生成部の処理とは、前記署名ローダー生成部で前記署名ローダーが生成された後に実行される、
ことを特徴とする署名装置。
【請求項３】
署名検証を行う検証装置であって、
メッセージとそれに対する署名とを格納する署名情報記憶部と、
ネットワーク上の検証方法管理装置の位置を特定する位置指定子を含む検証ローダーを格納する検証ローダー記憶部と、
前記検証ローダーを用い、当該検証ローダーが含む前記位置指定子によってネットワーク上の位置が特定される前記検証方法管理装置にネットワーク経由で接続し、当該検証方法管理装置から送信された、検証方法を特定するための検証方法情報の入力を受け付ける検証方法情報取得部と、
前記検証方法情報取得部に前記検証方法情報が入力されると、当該検証方法情報によって特定される検証方法に従い、前記署名の生成に用いられた署名用秘密鍵に対応する検証用公開鍵と前記メッセージとを用い、前記署名の検証を行う署名検証部と、
を有する検証装置。
【請求項４】
署名対象のメッセージを格納するメッセージ記憶部と、前記署名装置に対応する署名用秘密鍵とネットワーク上の署名方法管理装置の位置を特定する位置指定子とを含む署名ローダーを格納する署名ローダー記憶部と、前記署名ローダーを用い、当該署名ローダーが含む前記位置指定子によってネットワーク上の位置が特定される前記署名方法管理装置にネットワーク経由で接続し、当該署名方法管理装置から送信された、署名方法を特定するための署名方法情報の入力を受け付ける署名方法情報取得部と、前記署名方法情報取得部に前記署名方法情報が入力されると、当該署名方法情報によって特定される署名方法に従い、前記署名用秘密鍵を用いて前記メッセージに対する署名を生成する署名生成部と、を含む署名装置と、
前記メッセージとそれに対する前記署名とを格納する署名情報記憶部と、ネットワーク上の検証方法管理装置の位置を特定する第２位置指定子を含む検証ローダーを格納する検証ローダー記憶部と、前記検証ローダーを用い、当該検証ローダーが含む前記第２位置指定子によってネットワーク上の位置が特定される前記検証方法管理装置にネットワーク経由で接続し、当該検証方法管理装置から送信された、検証方法を特定するための検証方法情報の入力を受け付ける検証方法情報取得部と、前記検証方法情報取得部に前記検証方法情報が入力されると、当該検証方法情報によって特定される検証方法に従い、前記署名の生成に用いられた前記署名用秘密鍵に対応する検証用公開鍵と前記メッセージとを用い、前記署名の検証を行う署名検証部と、を含む検証装置と、
を有する署名生成・署名検証システム。
【請求項５】
署名装置が署名を生成し、検証装置が当該署名を検証する署名生成・署名検証であって、
前記署名装置のメッセージ記憶部に署名対象のメッセージを格納するステップと、
前記署名装置の署名方法情報取得部が、前記署名装置に対応する署名用秘密鍵とネットワーク上の署名方法管理装置の位置を特定する位置指定子とを含む署名ローダーを用い、当該署名ローダーが含む前記位置指定子によってネットワーク上の位置が特定される前記署名方法管理装置にネットワーク経由で接続し、当該署名方法管理装置から送信された、署名方法を特定するための署名方法情報の入力を受け付けるステップと、
前記署名方法情報取得部に前記署名方法情報が入力されると、前記署名装置の署名生成部が、前記署名方法情報によって特定される署名方法に従い、前記署名用秘密鍵を用いて前記メッセージに対する署名を生成するステップと、
前記検証装置の署名情報記憶部に、前記メッセージとそれに対する前記署名とを格納するステップと、
前記検証装置の検証方法情報取得部が、ネットワーク上の検証方法管理装置の位置を特定する第２位置指定子を含む検証ローダーを用い、当該検証ローダーが含む前記第２位置指定子によってネットワーク上の位置が特定される前記検証方法管理装置にネットワーク経由で接続し、当該検証方法管理装置から送信された、検証方法を特定するための検証方法情報の入力を受け付けるステップと、
前記検証方法情報取得部に前記検証方法情報が入力されると、前記検証装置の署名検証部が、前記検証方法情報によって特定される検証方法に従い、前記署名の生成に用いられた署名用秘密鍵に対応する検証用公開鍵と前記メッセージとを用い、前記署名の検証を行うステップと、
を有する署名・検証方法。
【請求項６】
請求項１又は２の署名装置としてコンピュータを機能させるためのプログラム。
【請求項７】
請求項３の検証装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号技術に関し、特に、電子署名技術に関する。
【背景技術】
【０００２】
署名装置がメッセージに対して電子署名を生成し、検証装置がメッセージとその電子署名の確からしさを検証するシステムを構築するためには、署名装置が署名生成用の正しいプログラムと秘密鍵とを用いて電子署名を生成し、検証装置が署名検証用の正しいプログラムと検証鍵とを用いて電子署名の検証を行う必要がある。
【０００３】
検証装置が正しい検証鍵を手に入れる方法としては、ＰＫＩ（Public Key Infrastructure）に基づく方法が利用されている（非特許文献１）。このＰＫＩに基づく方法の場合、検証鍵の正当性は、認証局の確からしさ（どの程度認証をしっかりとやっているか）と、認証局の公開鍵（ルート証明書）の確からしさとに依存している（非特許文献２）。
【０００４】
一方、署名装置や検証装置が正しいプログラムを用いるために、署名装置や検証装置が出元の明らかなプログラムを用いることが推奨されている。このために通常とられている方法は、例えば、当初から署名用のプログラムや検証用のプログラムがインストールされているパーソナルコンピュータ等の装置を署名装置や検証装置として用いる方法である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】”PKI 関連技術情報”、[online]、平成１９年７月３日、独立行政法人 情報処理推進機構  セキュリティセンター  情報セキュリティ分析ラボラトリー準備室、[平成２１年１０月２１日検索]、インターネット＜http://www.ipa.go.jp/security/pki/index.html＞
【非特許文献２】新野淳一、”5分で絶対に分かるPKI”、[online]、平成１３年２月１７日、アイティメディア株式会社、[平成２１年１０月２１日検索]、インターネット＜http://www.atmarkit.co.jp/fsecurity/special/02fivemin/fivemin05.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、署名用のプログラムや検証用のプログラムがインストールされている装置を署名装置や検証装置として用いる場合、以下のような問題が生じる。
まず、方式の変更や安全性の問題などから、システムで使用される署名用及び検証用のプログラムの変更が必要となった場合、すべての署名装置や検証装置にプログラムの変更が必要となったことを伝え、すべての署名装置や検証装置に変更後のプログラムをインストールさせなければならない。このようなプログラムの更新をすべての署名装置や検証装置に対して確実かつ速やかに実行することは困難である。
【０００７】
また、ストレージの容量やその他の問題で、署名装置や検証装置にプログラムを継続的にインストールしておくことが出来ない場合も存在する。
なお、これらの問題は署名用や検証用のプログラムに限定される問題ではなく、署名生成や署名検証に用いられる署名方法や検証方法を特定するための何らかの情報に共通する問題である。
【０００８】
本発明はこのような点に鑑みてなされたものであり、署名生成や署名検証に用いられる署名方法や検証方法を特定するための情報を更新するための管理が容易であり、なおかつ、署名装置や検証装置にこれらの情報を継続的に格納しておくことができない環境であっても実現可能な署名技術及びその検証技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
署名装置に署名対象のメッセージを格納し、署名装置が、署名装置に対応する署名用秘密鍵とネットワーク上の署名方法管理装置の位置を特定する位置指定子とを含む署名ローダーを用い、当該署名ローダーが含む位置指定子によってネットワーク上の位置が特定される署名方法管理装置にネットワーク経由で接続し、当該署名方法管理装置から送信された、署名方法を特定するための署名方法情報の入力を受け付け、署名方法情報が入力されると、当該署名方法情報によって特定される署名方法に従い、署名用秘密鍵を用いてメッセージに対する署名を生成する。署名検証時には、検証装置の署名情報記憶部にメッセージとそれに対する署名とを格納し、検証装置が、ネットワーク上の検証方法管理装置の位置を特定する第２位置指定子を含む検証ローダーを用い、当該検証ローダーが含む第２位置指定子によってネットワーク上の位置が特定される検証方法管理装置にネットワーク経由で接続し、当該検証方法管理装置から送信された、検証方法を特定するための検証方法情報の入力を受け付け、検証方法情報が入力されると、当該検証方法情報によって特定される検証方法に従い、署名の生成に用いられた署名用秘密鍵に対応する検証用公開鍵とメッセージとを用い、署名の検証を行う。
【００１０】
ここで、署名装置は、署名生成時に署名ローダーを用いて署名方法管理装置に接続し、署名方法を特定するための署名方法情報の入力を受け付け、それを用いて署名を生成する。また、検証装置は、署名検証時に検証ローダーを用いて検証方法管理装置に接続し、検証方法を特定するための検証方法情報の入力を受け付け、それを用いて署名を検証する。この場合、署名装置や検証装置は常に最新の情報を用いて署名生成や署名検証を実行することになる。そのため、署名装置や検証装置に格納されたプログラムなどの情報が更新されたか否かを管理する必要がなくなる。また、プログラムなどの情報を署名装置や検証装置に継続的に格納しておく必要もない。
【発明の効果】
【００１１】
以上のように本発明の署名技術は、署名生成に用いられる署名方法を特定するための情報を更新するための管理が容易であり、なおかつ、署名装置にこの情報を継続的に格納しておくことができない環境であっても実現可能である。また、本発明の検証技術は、署名検証に用いられる検証方法を特定するための情報を更新するための管理が容易であり、なおかつ、検証装置にこの情報を継続的に格納しておくことができない環境であっても実現可能である。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態の署名生成・署名検証システムの機能構成を説明するための図。
【図２】図１の署名装置の機能構成を説明するための図。
【図３】図１の検証装置の機能構成を説明するための図。
【図４】図１の鍵管理装置の機能構成を説明するための図。
【図５】第１実施形態の鍵生成処理を説明するための図。
【図６】第１実施形態の署名生成処理を説明するための図。
【図７】第１実施形態の署名検証処理を説明するための図。
【図８】第２実施形態の署名生成・署名検証システムの機能構成を説明するための図。
【図９】第２実施形態形態の処理を説明するための図。
【図１０】第２実施形態形態の処理を説明するための図。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態を説明する。
〔第１実施形態〕
まず、本発明の第１実施形態を説明する。
＜構成＞
図１は、第１実施形態の署名生成・署名検証システム１の機能構成を説明するための図である。図２は、図１の署名装置１１の機能構成を説明するための図である。図３は、図１の検証装置１２の機能構成を説明するための図である。図４は、図１の鍵管理装置１７の機能構成を説明するための図である。まず、これらの図を用いて各構成を説明する。
【００１４】
図１に例示するように、本形態の署名生成・署名検証システム１は、署名装置１１と検証装置１２と情報記録・配信装置１３と鍵生成プログラム配信装置１４と署名方法管理装置１５と検証方法管理装置１６と鍵管理装置１７とを有し、これらはネットワーク１８を通じた通信可能に接続されている。本形態の各装置は、例えば、ＣＰＵ（central processing unit）、ＲＡＭ（random-access memory）、ＲＯＭ（read-only memory）、通信装置等から構成される公知のコンピュータに特別なプログラムが読込まれることによって構成される。これにより、各装置は、情報を記憶するメモリと、各処理を行う処理部と、ネットワーク１８を通じて行う通信部とを備える。また、簡略化のため、図１には、各装置の１つずつ記載されているが、これらの装置の少なくとも一部が複数存在してもよい。
【００１５】
図２に例示するように、本形態の署名装置１１は、メモリ１１１（メッセージ記憶部、署名ローダー記憶部）と、制御部１１２と、署名ローダー生成部１１３と、署名方法情報取得部１１４と、署名生成部１１５と、通信部１１６（検証用情報出力部）とを有する。署名装置１１は、制御部１１２の制御のもと各処理を実行する。
【００１６】
図３に例示するように、本形態の検証装置１２は、メモリ１２１（署名情報記憶部、検証ローダー記憶部）と、制御部１２２と、検証方法情報取得部１２４と、署名検証部１２５と、通信部１２６とを有する。検証装置１２は、制御部１２２の制御のもと各処理を実行する。
【００１７】
図４に例示するように、本形態の鍵管理装置１７は、メモリ１７１と、制御部１７２と、検索部１７３と、通信部１７６とを有する。鍵管理装置１７は、制御部１７２の制御のもと各処理を実行する。
【００１８】
＜処理＞
次に、本形態の各処理を説明する。
［事前処理］
情報記録・配信装置１３のメモリ（図示せず）には、署名対象のメッセージMが格納されている。鍵生成プログラム配信装置１４のメモリ（図示せず）には、鍵生成プログラムKGPが格納されている。鍵生成プログラムKGPは、ネットワーク１８上の署名方法管理装置１５の位置を特定するポインタである位置指定子SLOCを含み、署名装置１１に、署名生成のための署名用秘密鍵SK(j)と、署名検証のための検証用公開鍵PK(j)と、署名ローダーSLD(j)とを作成させるためのプログラムである。なお、署名ローダーSLD(j)は、署名用秘密鍵SK(j)や位置指定子SLOCなどを含むプログラムやそれを特定するためのデータ等である。なお、jは署名装置１１ごとに対応するインデックスである。また、位置指定子の例は、ＵＲＬ、ＩＰアドレス、ＭＡＣアドレス、メールアドレスなどである（以下同様）。
【００１９】
署名方法管理装置１５のメモリ（図示せず）には、署名方法を特定するための署名方法情報が格納され、検証方法管理装置１６のメモリ（図示せず）には、検証方法を特定するための検証方法情報が格納されている。なお、署名方法情報の例は、実行することによって正しい署名生成処理が実行されるプログラム（例えば、署名関数や署名手順などを実行するためのプログラム）や、そのようなプログラムを特定するためのパラメータ等である。また、検証方法情報の例は、実行することによって正しい検証生成処理が実行されるプログラム（例えば、署名検証関数や検証手順などを実行するためのプログラム）や、そのようなプログラムを特定するためのパラメータ等である。署名方法管理装置１５及び検証方法管理装置１６には、それぞれ、最新の署名方法情報や検証方法情報が格納され、当該署名方法情報によって特定される署名方法に従って生成された署名は、当該検証方法情報によって特定される検証方法によって正しく検証できる構成となっている。また、署名方法情報によって特定される署名方法の例は、ＲＳＡ署名によって署名生成を行うアルゴリズムであり、検証方法情報によって特定される検証方法の例は、ＲＳＡ署名の検証を行うアルゴリズムである。
【００２０】
検証方法管理装置１６のメモリ（図示せず）には、さらに、ネットワーク１８上の検証方法管理装置１６の位置を特定するポインタである位置指定子VLOCと、鍵管理装置１７の位置を特定するポインタである位置指定子KLOCとを含む検証ローダー
VLD=(KLOC,VLOC)      …(1)
が格納されている。
署名装置１１のメモリ１１１には、署名装置１１又はその利用者を一義に特定するための識別子ID(j)が格納されている。識別子ID(j)の例は、メールアドレス、ＵＲＬ、その他、重複のないように設定された識別子である。
【００２１】
［鍵生成処理］
図５は、第１実施形態の鍵生成処理を説明するための図である。
まず、鍵生成プログラム配信装置１４（図１）が、そのメモリに格納された鍵生成プログラムKGPをネットワーク１８経由で署名装置１１に送信する（ステップＳ１０１）。鍵生成プログラムKGPは、署名装置１１（図２）の通信部１１６で受信され、メモリ１１１に格納される（ステップＳ１０１）。
【００２２】
署名装置１１の署名ローダー生成部１１３は、任意の契機で、メモリ１１１から鍵生成プログラムKGPを読込んで実行する。これにより、署名ローダー生成部１１３は、署名用秘密鍵SK(j)とそれに対応する検証用公開鍵PK(j)とを生成し、設定した署名用秘密鍵SK(j)と、メモリ１１１に格納された識別子ID(j)と、鍵生成プログラムKGPが含む位置指定子SLOCとを用い、これらを含むプログラムやそれを特定するためのデータ等である署名ローダー
SLD(j)=(ID(j),SK(j),SLOC)      …(2)
を生成する（ステップＳ１０２）。生成された署名ローダーSLD(j)はメモリ１１１に格納される（ステップＳ１０３）。また、メモリ１１１に格納された識別子ID(j)と、署名ローダー生成部１１３で生成された検証用公開鍵PK(j)とが通信部１１６に送られ、通信部１１６は、これらをネットワーク１８経由で、鍵管理装置１７に送信（出力）する（ステップＳ１０４）。識別子ID(j)と検証用公開鍵PK(j)とは、鍵管理装置１７（図４）の通信部１７６で受信され、識別子ID(j)と検証用公開鍵PK(j)とが対応付けられてメモリ１７１に格納される（ステップＳ１０５）。同様な処理は図示していない他の署名装置によっても行われ、これにより、メモリ１７１には、識別子と検証用公開鍵とが対応付けられた鍵データベース１７１ａが構成される。
【００２３】
なお、ステップＳ１０２〜Ｓ１０５の処理は、署名用秘密鍵SK(j)や検証用公開鍵PK(j)を最初に生成するときや、生成されたこれらの鍵を更新するときに実行されればよい。ステップＳ１０２の「任意の契機」とはこのような契機を意味し、具体的には、所定の入力指示があった契機や、所定の時間に達した契機などを意味する。また、ステップＳ１０１の処理は一度実行されればよく、鍵生成のたびに実行する必要はない。また、識別子ID(j)と検証用公開鍵PK(j)とが対応付けられてメモリ１７１に格納される前の何れかの時点で、署名装置１１の署名ローダー生成部１１３と鍵管理装置１７との間で識別子ID(j)の認証処理を行い、それが合格であった場合にのみ、ステップＳ１０５で、識別子ID(j)と検証用公開鍵PK(j)とが対応付けられて鍵管理装置１７のメモリ１７１に格納される構成でもよい。
【００２４】
［署名生成処理］
図６は、第１実施形態の署名生成処理を説明するための図である。
まず、情報記録・配信装置１３のメモリ（図示せず）に格納されていた署名対象のメッセージMがその通信部（図示せず）から、ネットワーク１８経由で署名装置１１に送信される。メッセージMは署名装置１１（図２）の通信部１１６で受信され、メモリ１１１に格納される（ステップＳ１１１）。
【００２５】
次に、署名方法情報取得部１１４が、メモリ１１１から署名ローダーSLD(j)を読み出し、署名ローダーSLD(j)を実行する（署名ローダーSLD(j)を用いる）。これにより、署名方法情報取得部１１４は、通信部１１６を用い、署名ローダーSLD(j)が含む位置指定子SLOCによってネットワーク１８上の位置が特定される署名方法管理装置１５にネットワーク１８経由で接続し、署名方法を特定するための署名方法情報SIGIの送信を要求する。これは、その旨の要求情報REQ(SLOC)が署名方法管理装置１５に送信されることによって行われる（ステップＳ１１３）。これに対し、署名方法管理装置１５は、そのメモリ（図示せず）に格納された最新の署名方法情報SIGIを、その通信部（図示せず）から、ネットワーク１８経由で署名装置１１に送信する。送信された署名方法情報SIGIは、署名装置１１（図２）の通信部１１６で受信され、署名方法情報取得部１１４に入力され、そこからメモリ１１１に格納される（ステップＳ１１４）。
【００２６】
署名方法情報取得部１１４に署名方法情報SIGIが入力され、これがメモリ１１１に格納されると、次に署名生成部１１５が、メモリ１１１から、署名方法情報SIGIとメッセージMと署名用秘密鍵SK(j)と識別子ID(j)とを読込む。署名生成部１１５は、署名方法情報SIGIによって特定される署名方法に従い、署名用秘密鍵SK(j)を用いてメッセージMに対する署名Sig(M)を生成する（ステップＳ１１５）。署名生成部１１５は、メッセージMと署名Sig(M)と識別子ID(j)とを通信部１１６に出力し、通信部１１６は、これらをネットワーク１８経由で情報記録・配信装置１３に送信する（ステップＳ１１６）。情報記録・配信装置１３は、送信されたメッセージMと署名Sig(M)と識別子ID(j)とを自らのメモリ（図示せず）に格納する（ステップＳ１１７）。
【００２７】
［署名検証処理］
図７は、第１実施形態の署名検証処理を説明するための図である。
まず、検証方法管理装置１６のメモリ（図示せず）に格納された検証ローダーVLDがネットワーク１８経由で検証装置１２に送信される。検証ローダーVLDは、検証装置１２（図３）の通信部１２６で受信されメモリ１２１に格納される（ステップＳ１２０）。なお、ステップＳ１２０の処理は一度実行されれば、二度以上実行する必要はない。
【００２８】
また、上述のように情報記録・配信装置１３のメモリ（図示せず）に格納されたメッセージMと署名Sig(M)と識別子ID(j)とが、ネットワーク１８経由で検証装置１２に送信される。メッセージMと署名Sig(M)と識別子ID(j)とは、検証装置１２の通信部１２６で受信され、メモリ１２１に格納される（ステップＳ１２１）。
【００２９】
次に、検証方法情報取得部１２４が、メモリ１２１から検証ローダーVLDを読み出し、検証ローダーVLDを実行する（検証ローダーVLDを用いる）。これにより、検証方法情報取得部１２４は、通信部１２６を用い、検証ローダーVLDが含む位置指定子VLOCによってネットワーク１８上の位置が特定される検証方法管理装置１６にネットワーク１８経由で接続し、検証方法を特定するための検証方法情報VERIの送信を要求する。これは、その旨の要求情報REQ(VLOC)が検証方法管理装置１６に送信されることによって行われる（ステップＳ１２３）。これに対し、検証方法管理装置１６は、そのメモリ（図示せず）に格納された最新の検証方法情報VERIを、その通信部（図示せず）から、ネットワーク１８経由で検証装置１２に送信する。送信された検証方法情報VERIは、検証装置１２（図３）の通信部１２６で受信され、検証方法情報取得部１２４に入力され、そこからメモリ１２１に格納される（ステップＳ１２４）。
【００３０】
また、検証方法情報取得部１２４は、メモリ１２１に格納された識別子ID(j)を読込み、検証ローダーVLDを実行することで、通信部１２６を用い、検証ローダーVLDが含む位置指定子KLOCによってネットワーク１８上の位置が特定される鍵管理装置１７にネットワーク１８経由で接続し、識別子ID(j)に対応する検証用公開鍵PK(j)の送信を要求する。これは、その旨の要求情報REQ(KLOC,ID(j))が鍵管理装置１７に送信されることによって行われる（ステップＳ１２６）。要求情報REQ(KLOC,ID(j))は、鍵管理装置１７（図４）の通信部１７６で受信され、要求情報REQ(KLOC,ID(j))が含む識別子ID(j)が検索部１７３に送られる。検索部１７３は、メモリ１７１に格納された鍵データベース１７１ａを検索し、識別子ID(j)に対応付けられた検証用公開鍵PK(j)を抽出する。この検証用公開鍵PK(j)は通信部１７６に送られ、そこからネットワーク１８経由で、検証装置１２に送信される（ステップＳ１２７）。検証用公開鍵PK(j)は、検証装置１２（図３）の通信部１２６ｄで受信され、検証方法情報取得部１２４に入力され、そこからメモリ１２１に格納される（ステップＳ１２８）。
【００３１】
検証方法情報取得部１２４に検証方法情報VERI及び検証用公開鍵PK(j)が入力され、これらがメモリ１２１に格納されると、署名検証部１２５は、メモリ１２１から、検証方法情報VERIと、メッセージMと、署名Sig(M)と、検証用公開鍵PK(j)（署名Sig(M)の生成に用いられた署名用秘密鍵SK(j)に対応する）とを読み出す。署名検証部１２５は、検証方法情報VERIによって特定される検証方法に従い、検証用公開鍵PK(j)とメッセージMとを用い、署名Sig(M)の検証を行い、その検証結果OK or NGを出力する（ステップＳ１２８）。
【００３２】
＜本形態の特徴＞
以上のように、本形態の署名装置１１は、署名生成時に署名ローダーSLD(j)を用いて署名方法管理装置１５に接続し、署名方法を特定するための署名方法情報SIGIの入力を受け付け、それを用いて署名Sig(M)を生成する。また、検証装置１２は、署名検証時に検証ローダーVLDを用いて検証方法管理装置１６に接続し、検証方法を特定するための検証方法情報VERIの入力を受け付け、それを用いて署名Sig(M)を検証する。この場合、署名装置１１や検証装置１２は常に最新の情報を用いて署名生成や署名検証を実行することになる。そのため、署名装置１１や検証装置１２に格納されたプログラムなどの情報が更新されたか否かを管理する必要がなくなる。また、プログラムなどの情報を署名装置や検証装置に継続的に格納しておく必要もない。
【００３３】
そのため、本形態の方式は、署名生成や署名検証に用いられるプログラム等を更新するための管理が容易であり、なおかつ、これらのプログラム等を署名装置１１や検証装置１２に継続的に格納しておくことができない環境であっても実現可能である。
【００３４】
〔第２実施形態〕
次に、本発明の第２実施形態を説明する。本形態は、第１実施形態の具体化例である。
＜構成＞
図８は、第２実施形態の署名生成・署名検証システム２の機能構成を説明するための図である。
図８に例示するように、本形態では、鍵生成プログラム配信装置１４と署名方法管理装置１５と検証方法管理装置１６と鍵管理装置１７とが１つのシステム管理装置２０を構成する。その他は、第１実施形態と同様である。
【００３５】
図９及び図１０は、第２実施形態形態の処理を説明するための図である。
図９及び図１０に例示するように、本形態の署名装置１１は、Webブラウザモジュールと、Webブラウザモジュール上で動作するプログラムであるブックマークレット生成プログラム（鍵生成プログラムKGP）と、ブックマークレット生成プログラムによって生成されるブックマークレットであるブックマークレット署名モジュール（署名ローダーSLD(j)）と、メーラモジュールとが格納又は実装されたコンピュータである。なお、ブックマークレットとは、Java(登録商標)Scriptで書かれたブックマークである（例えば、"http://e-words.jp/w/E38396E38383E382AFE3839EE383BCE382AFE383ACE38383E38388.html"参照）。
【００３６】
図１０に例示するように、本形態の検証装置１２は、Webブラウザモジュールと、Webブラウザモジュール上で動作するブックマークレットであるブックマークレット検証モジュール（検証ローダーVLD）が格納又は実装されたコンピュータである。
【００３７】
図９及び図１０に例示するように、システム管理装置２０の例は、登録CGIモジュールと、メールサーバモジュールと、鍵管理モジュールと、送信モジュールとが実装され、ブックマークレット生成プログラム（鍵生成プログラムKGP）と、署名プログラム（署名方法情報SIGI）と、検証プログラム（検証方法情報VERI）と、鍵データベース１７１ａとが格納されたサーバ装置などのコンピュータである。
【００３８】
図１０に例示するように、本形態の情報記録・配信装置１３は、掲示板CGIモジュールが実装されたサーバ装置などのコンピュータである。掲示板CGIモジュールが実行されることで構成された電子掲示板には署名対象のメッセージMが配置されている。
【００３９】
［鍵生成処理］
図９に例示するように、署名装置１１のWebブラウザモジュールは、システム管理装置２０の登録CGIモジュールにアクセスし、登録CGIモジュールに対して識別子ID(j)を送信する（ステップＳ２０１）。登録CGIモジュールは、識別子ID(j)にひも付いた鍵管理モジュールのＵＲＬである鍵登録用位置指定子RLOC(ID(j))生成する。なお、識別子ID(j)にひも付いたＵＲＬとは、識別子ID(j)に対応付けられたＵＲＬを意味し、例えば、識別子ID(j)を一部に含むＵＲＬを意味する。生成された鍵登録用位置指定子RLOC(ID(j))は、メールサーバモジュールに送られ、そこから署名装置１１のメーラモジュールに送信される（ステップＳ２０２）。署名装置１１のメーラモジュールが鍵登録用位置指定子RLOC(ID(j))を受信すると、署名装置１１を構成するWebブラウザモジュールは、鍵登録用位置指定子RLOC(ID(j))を用いて鍵管理モジュールに接続する（ステップＳ２０３）。
【００４０】
これを契機に、システム管理装置２０の送信モジュールが、システム管理装置２０に格納されたブックマークレット生成プログラム（鍵生成プログラムKGP）を、署名装置１１のWebブラウザモジュールに送信する。ブックマークレット生成プログラム（鍵生成プログラムKGP）は、署名装置１１に格納される（ステップＳ１０１）。
【００４１】
署名装置１１のWebブラウザモジュールは、所定の契機でブックマークレット生成プログラム（鍵生成プログラムKGP）を読込んで実行する。これにより、署名装置１１のWebブラウザモジュールは、署名用秘密鍵SK(j)とそれに対応する検証用公開鍵PK(j)とを生成し、設定した署名用秘密鍵SK(j)と、識別子ID(j)と、ブックマークレット生成プログラム（鍵生成プログラムKGP）が含む位置指定子SLOCとを用い、これらを含むプログラムであるブックマークレット署名モジュール（署名ローダーSLD(j)）を生成して格納する（ステップＳ１０２，Ｓ１０３）。署名装置１１のWebブラウザモジュールは、接続されたシステム管理装置２０の鍵管理モジュールに識別子ID(j)と検証用公開鍵PK(j)とを送信する（ステップＳ１０４）。システム管理装置２０は、これらを対応付けて鍵データベース１７１ａに格納する（ステップＳ１０５）。
【００４２】
［署名生成処理］
まず、情報記録・配信装置１３の掲示板CGIモジュールが実行されて構成された電子掲示板にアップロードされている署名対象のメッセージMが署名装置１１のWebブラウザモジュールに送信される。メッセージMは署名装置１１に格納される（ステップＳ１１１）。
【００４３】
次に、署名装置１１のWebブラウザモジュールが、ブックマークレット署名モジュール（署名ローダーSLD(j)）を実行する。これにより、ブックマークレット署名モジュール（署名ローダーSLD(j)）は、システム管理装置２０に接続し、システム管理装置２０に格納された署名プログラム（署名方法情報SIGI）を受信する（ステップＳ１１３，Ｓ１１４）。
【００４４】
署名プログラム（署名方法情報SIGI）を取得した署名装置１１のWebブラウザモジュールは、署名プログラム（署名方法情報SIGI）を実行し、それが特定する処理に従って、署名用秘密鍵SK(j)を用いてメッセージMに対する署名Sig(M)を生成する（ステップＳ１１５）。署名装置１１のWebブラウザモジュールは、メッセージMと署名Sig(M)と識別子ID(j)とを、情報記録・配信装置１３の掲示板CGIモジュールに対して送信し（ステップＳ１１６）、その電子掲示板にアップロードする（ステップＳ１１７）。
【００４５】
［署名検証処理］
上述のように情報記録・配信装置１３の電子掲示板にアップロードされたメッセージMと署名Sig(M)と識別子ID(j)とが、検証装置１２のWebブラウザモジュールに送信され、検証装置１２に格納される（ステップＳ１２１）。
【００４６】
次に、検証装置１２のWebブラウザモジュールが、格納されたブックマークレット検証モジュール（検証ローダーVLD）を実行する（ステップＳ１２２）。これにより、検証装置１２のWebブラウザモジュールは、システム管理装置２０に接続して検証プログラム（検証方法情報VERI）を受信し、それを格納する（ステップＳ１２３，Ｓ１２４）。また、検証装置１２のWebブラウザモジュールは、システム管理装置２０の鍵管理モジュールに接続して、鍵データベース１７１ａに格納された、識別子ID(j)に対応する検証用公開鍵PK(j)を受信し、それを格納する（ステップＳ１２５−Ｓ１２７）。
【００４７】
検証装置１２のWebブラウザモジュールは、ブックマークレット検証モジュール（検証ローダーVLD）を実行し、検証用公開鍵PK(j)とメッセージMとを用い、署名Sig(M)の検証を行い、その検証結果OK or NGを出力する（ステップＳ１２８）。
【００４８】
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上記の実施形態では特に説明しなかったが、装置間の通信路の安全性がＳＳＬ（Secure Socket Layer）等の暗号・認証技術を用いて確保されていてもよい。これにより、検証用公開鍵PK(j)や署名方法情報SIGIや検証方法情報VERIの正しさが担保され、より安全性が高まる。
【００４９】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００５０】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００５１】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００５２】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００５３】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００５４】
１，２  署名生成・署名検証システム
１１  署名装置
１２  検証装置
【図１】
2011101083.tif 000003
【図２】
2011101083.tif 000004
【図３】
2011101083.tif 000005
【図４】
2011101083.tif 000006
【図５】
2011101083.tif 000007
【図６】
2011101083.tif 000008
【図７】
2011101083.tif 000009
【図８】
2011101083.tif 000010
【図９】
2011101083.tif 000011
【図１０】
2011101083.tif 000012