(57)【要約】【課題】クライアント環境の制約を最小限にできる、電子署名システム等を提供する。【解決手段】サーバとクライアントとを有し署名対象データに電子署名を行う、電子署名システムにおいて、前記サーバは、前記署名対象データと署名者の証明書から仮署名データを生成する仮署名データ生成部と、前記仮署名データから署名ハッシュ値を生成する署名ハッシュ値生成部と、前記仮署名データに署名値を組み込んで署名データを生成する署名データ生成部を有し、また、前記クライアントは、前記証明書を前記サーバに送信する証明書送信部と、前記署名ハッシュ値を前記署名者の秘密鍵により暗号化して前記署名値を生成する署名値生成部と、前記サーバに前記署名値を送る署名値送信部とを有する。【選択図】図２
2018067807.tif 000002
【特許請求の範囲】
【請求項１】
サーバとクライアントとを有し署名対象データに電子署名を行う、電子署名システムであって、
前記サーバが、
前記署名対象データと公開鍵を有する証明書から仮署名データを生成する仮署名データ生成部と、
前記仮署名データから署名ハッシュ値を生成する署名ハッシュ値生成部と、
前記仮署名データに署名値を組み込んで署名データを生成する署名データ生成部を有し、
前記クライアントが、
前記証明書を前記サーバに送信する証明書送信部と、
前記署名ハッシュ値を前記公開鍵に対応する秘密鍵により暗号化して前記署名値を生成する署名値生成部と、
前記サーバに前記署名値を送る署名値送信部とを有する、
電子署名システム。
【請求項２】
請求項１において、
前記クライアントは、前記秘密鍵と前記証明書とを取得する取得部をさらに有する、
電子署名システム。
【請求項３】
請求項１または２において、
前記サーバと前記クライアントは公衆通信回線網を介してデータ通信を行う、
電子署名システム。
【請求項４】
署名者の証明書をサーバに送信する証明書送信部と、
前記サーバにて、署名対象データと前記証明書から生成される仮署名データとから署名ハッシュ値が生成されると、当該署名ハッシュ値を秘密鍵により暗号化して署名値を生成する署名値生成部と、
前記サーバにて前記署名ハッシュ値に組み込んで署名データを生成するために当該サーバに前記署名値を送る署名値送信部と、
を有する、
電子署名クライアント。
【請求項５】
公開鍵を有する証明書をサーバに送信する証明書送信工程と、
前記サーバにて、署名対象データと前記証明書から生成される仮署名データとから更に署名ハッシュ値が生成されると、当該署名ハッシュ値を前記公開鍵に対応する秘密鍵により暗号化して署名値を生成する署名値生成工程と、
前記サーバにて前記署名ハッシュ値に組み込んで署名データを生成するために当該サーバに前記署名値を送る送信工程と、
をクライアントに実行させる、電子署名プログラム。
【請求項６】
請求項５において、
前記クライアントが有するブラウザプログラムにプラグインとして組み込まれる、電子署名プログラム。
【請求項７】
請求項５において、
前記クライアントが有するブラウザプログラムのユーザインタフェースを包含する、電子署名プログラム。
【請求項８】
請求項５乃至７のいずれかに記載の電子署名プログラムを前記クライアントに提供するサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子署名システム等に関する。
【背景技術】
【０００２】
各種証明書や契約書といった電子文書は、比較的容易に改ざんされるおそれがある。そこで、電子文書のデータが真正のものであることを保証するために、電子署名が用いられる。電子署名では、一般的に、公開鍵暗号方式が用いられる。署名時には、署名対象のデータのハッシュ値が、署名者の秘密鍵で暗号化される。そして、検証者が、秘密鍵と対応付けられた公開鍵により、暗号化されたデータを復号する。そして、復号されたハッシュ値が署名対象のデータのハッシュ値と一致すれば、電子署名の真正性が保証される。
【０００３】
昨今のクラウドコンピューティング環境では、署名対象のデータが、サーバ上に保有されるなど、必ずしも署名者のクライアント端末内に存在しない場合がある。そのような場合に、一連の署名手順がサーバとクライアントとで分散処理される方法が提案されている（たとえば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６４８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーバ・クライアント環境で電子署名システムを実装するとき、パーソナルコンピュータ、スマートフォン、タブレット端末などがクライアントとして用いられる。このようなクライアントのＯＳ（オペレーティングシステム）やＯＳ上で動作するアプリケーション、及びクライアントの処理能力は多様化している。よって、電子署名システムをサーバ・クライアント環境で柔軟に実装するためには、クライアントのＯＳやアプリケーションの種類、または処理能力といった制約を、最小限にすることが望ましい。
【０００６】
上記のような点に鑑みてなされた本発明の目的は、クライアント環境の制約を最小限にできる、電子署名システム等を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の一側面は、サーバとクライアントとを有し署名対象データに電子署名を行う、電子署名システムである。前記サーバは、前記署名対象データと公開鍵を有する証明書から仮署名データを生成する仮署名データ生成部と、前記仮署名データから署名ハッシュ値を生成する署名ハッシュ値生成部と、前記仮署名データに署名値を組み込んで署名データを生成する署名データ生成部を有する。また、前記クライアントは、前記証明書を前記サーバに送信する証明書送信部と、前記署名ハッシュ値を前記公開鍵に対応する秘密鍵により暗号化して前記署名値を生成する署名値生成部と、前記サーバに前記署名値を送る署名値送信部とを有する。
【０００８】
本発明の別の側面は、電子署名クライアントである。電子署名クライアントは、署名者の証明書をサーバに送信する証明書送信部と、前記サーバにて、署名対象データと前記証明書から生成される仮署名データとから署名ハッシュ値が生成されると、当該署名ハッシュ値を秘密鍵により暗号化して署名値を生成する署名値生成部と、前記サーバにて前記署名ハッシュ値に組み込んで署名データを生成するために当該サーバに前記署名値を送る署名値送信部とを有する。
【０００９】
本発明のさらに別の側面は、電子署名プログラムである。このプログラムは、クライアントに、公開鍵を有する証明書をサーバに送信する証明書送信工程と、前記サーバにて、署名対象データと前記証明書から生成される仮署名データとから更に署名ハッシュ値が生成されると、当該署名ハッシュ値を前記公開鍵に対応する秘密鍵により暗号化して署名値を生成する署名値生成工程と、前記サーバにて前記署名ハッシュ値に組み込んで署名データを生成するために当該サーバに前記署名値を送る送信工程とをクライアントに実行させる。
【発明の効果】
【００１０】
本発明における実施形態によれば、クライアント環境の制約を最小限にできる、電子署名システム等を提供される。
【図面の簡単な説明】
【００１１】
【図１】電子署名の概要を説明する図である。
【図２】電子署名システムの構成図である。
【図３】署名サーバの構成図である。
【図４】署名クライアントの構成図である。
【図５】電子署名システムの動作シーケンス図である。
【図６】署名プログラムの構成例の概念図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１３】
図１は、電子署名の概要を説明する図である。電子署名では、署名者が秘密保持の対象となる署名対象データに秘密鍵を用いて電子署名する。そして、検証者が、電子署名された署名データを公開で復号し、復号したデータともとの署名対象データとを比較する。両者が一致していれば、署名データの真正性が保証される。
【００１４】
まず、署名者側の署名者コンピュータのデータ処理について説明する。
【００１５】
署名者コンピュータ（不図示）は、まず、秘密保持の対象となる署名対象データ１００のハッシュ値を計算し（Ｓ１）、署名対象ハッシュ値１２２を生成する。署名対象ハッシュ値１２２は、署名対象データ１００を一意に示すハッシュ値を有する。署名対象ハッシュ値１２２と証明書１２４とが、仮署名データ１２０を構成する。本実施形態では、署名前の署名対象ハッシュ値１２２と証明書１２４とを有するデータを、「仮署名データ」と称する。証明書１２４は、たとえば認証局から供給され、公開鍵１９０を有する。
【００１６】
次いで、署名者コンピュータは、仮署名データ１２０のハッシュ値を計算して（Ｓ２）、署名ハッシュ値１４０を生成する。署名ハッシュ値１４０は、仮署名データ１２０を一意に示すハッシュ値である。
【００１７】
次いで、署名者コンピュータは、署名ハッシュ値１４０を署名者の秘密鍵１８０により暗号化し（Ｓ３）、署名値１２６を生成する。暗号化は、たとえばＲＳＡ方式で行われる。そして、署名者コンピュータは、署名値１２６を仮署名データ１２０に組み込んで、署名後の署名データ１６０を生成する。署名データ１６０は、種々の形式で記述される。たとえば、ＸＭＬにより記述されるＸＭＬ署名、バイナリのＡＮ．１／ＢＥＲ／ＤＥＲにより記述されるＣＭＳ署名、ＰＤＦファイルに組み込まれるＰＤＦ署名、ＺＩＰファイルに組み込まれるＺＩＰ署名などの形式がある。
【００１８】
次いで、検証者側の検証者コンピュータのデータ処理について説明する。
【００１９】
検証者コンピュータ（不図示）は、署名データ１６０に含まれる証明書１２４から公開鍵１９０を取得する。公開鍵１９０は、秘密鍵１８０に一意に対応する。そして、検証者コンピュータは、署名データ１６０に含まれる署名値１２６を公開鍵１９０で復号し（Ｓ４）、署名ハッシュ値１９２を生成する。さらに、検証者コンピュータは、署名データ１６０から署名値１２６を除去したデータ（つまり、仮署名データ１２０と同等のデータ）のハッシュ値を計算して（Ｓ６）、署名ハッシュ値１９３を生成する。そして、検証者コンピュータは、署名ハッシュ値１９２と署名ハッシュ値１９３とを比較して（Ｓ８）、両者が一致していれば署名データ１６０が真正の仮署名データ１２０に対応するデータであって改ざんされていないと判定する。
【００２０】
ここでさらに、検証者コンピュータは、真正性が保証された署名データ１６０から署名対象ハッシュ値１２２を取り出して、署名対象ハッシュ値１２２と、署名者コンピュータから送信される署名対象データをハッシュ計算して（Ｓ５）得られる署名対象ハッシュ値１２３とを比較する（Ｓ１０）。このとき、両者が一致していれば、検証者コンピュータは、署名データ１６０が真正のデータであって改ざんされていないと判定する。
【００２１】
本実施形態は、上記の処理のうち、署名者側で署名対象データ１００から署名データ１６０を生成するまでの工程の一部に関する。
【００２２】
図２は、本実施形態における電子署名システムの概略構成図である。本実施形態の電子署名システムは、署名サーバ２０と署名クライアント２２とを有する。署名サーバ２０と署名クライアント２２は、有線または無線により、公衆通信回線網２４を介してデータ通信可能に接続される。署名サーバ２０は、たとえばパーソナルコンピュータである。また。署名クライアントは、たとえば、パーソナルコンピュータ、またはスマートフォンやタブレット端末などの携帯情報処理装置である。公衆通信回線網２４は、たとえば、インターネットである。
【００２３】
署名サーバ２０は、仮署名データ生成部２０２、署名ハッシュ値生成部２０４、及び署名データ生成部２０６を有する。仮署名データ生成部２０２は、署名対象データ１００と署名クライアントから取得する証明書１２４とに基づいて仮署名データ１２０を生成する。署名ハッシュ値生成部２０４は、仮署名データ１２０のハッシュ値を計算して署名ハッシュ値１４０を生成し、署名ハッシュ値１４０を署名クライアント２２に送信する。署名データ生成部２０６は、署名クライアント２２にて署名ハッシュ値１４０から生成される署名値１２６を取得すると、署名値１２６を組み込んだ署名データ１６０を生成する。
【００２４】
一方、署名クライアント２２は、証明書送信部２２２、署名値生成部２２４、及び署名値送信部２２６を有する。証明書送信部２２２は、署名サーバ２０が仮署名データ１２０を生成するのに必要な証明書１２４を署名サーバ２０に送信する。署名値生成部２２４は、署名サーバから署名ハッシュ値を取得すると、署名ハッシュ値１４０を秘密鍵１８０により暗号化して、署名値１２６を生成する。署名値送信部２２６は、署名サーバ２０が署名データ１６０に組み込む署名値１２６を、署名サーバ２０に送信する。
【００２５】
図３は、本実施形態の署名サーバ２０の構成例を示す図である。署名サーバ２０は、たとえばパーソナルコンピュータなどの情報処理装置である。署名サーバ２０は、制御部３０、記憶部３６、及び通信部３４を有する。制御部３０、記憶部３６、及び通信部３４は、バス３２によりデータ通信可能に接続される。
【００２６】
記憶部３６は、制御部３０により実行されるサーバプログラム３６０と署名プログラム３６２とを格納する。記憶部３６は、また、署名対象データ１００を格納する。あるいは、署名対象データ１００は、署名クライアント２２や他のコンピュータから取得してもよい。また、記憶部３６は、その作業領域に、仮署名データ１２０、署名ハッシュ値、署名データ、署名クライアント２２から送信される証明書１２４、署名値１２６などを一時的に格納する。記憶部３６は、たとえば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスクドライブ等を有する。
【００２７】
制御部３０は、記憶部３６からサーバプログラム３６０を読み出し、サーバプログラム３６０で規定される制御手順を実行することで、仮署名データ生成部２０２、署名ハッシュ値生成部２０４、及び署名データ生成部２０６として動作する。制御部３０は、たとえば、ＣＰＵ（Central Processing Unit）である。
【００２８】
通信部３４は、公衆通信回線網２４を介して署名クライアント２２とのデータ通信を行う。通信部３４は、制御部３０からの命令に従って、署名クライアント２２と、証明書１２４、署名ハッシュ値１４０、署名値１２６の送受信を行う。通信部３４は、たとえば、公衆通信回線網２４との有線または無線の通信インタフェースと、その制御回路を有する。
【００２９】
図４は、本実施形態の署名クライアント２２の構成例を示す図である。署名クライアント２２は、たとえばパーソナルコンピュータ、またはスマートフォンやタブレット端末などの携帯情報処理端末である。
【００３０】
署名クライアント２２は、制御部４０、記憶部４８、取得部４４、操作入力部４９、及び通信部４６を有する。制御部４０、記憶部４８、取得部４４、操作入力部４９、及び通信部４６は、バス４２によりデータ通信可能に接続される。
【００３１】
記憶部４８は、制御部４０により実行される署名プログラム３６２を格納する。本実施形態では、署名プログラム３６２は、署名サーバ２０から取得される。ただし、署名プログラム３６２は、予め署名クライアント２２の記憶部３６に格納されていてもよい。また、記憶部４８は、その作業領域に、署名サーバ２０から取得する署名ハッシュ値、生成する署名値１２６などを一時的に格納する。記憶部３６は、たとえば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスクドライブ等を有する。
【００３２】
制御部４０は、記憶部４８から署名プログラム３６２を読み出し、署名プログラム３６２で規定される制御手順を実行することで、証明書送信部２２２、署名値生成部２２４、及び署名値送信部２２６として動作する。制御部３０は、たとえば、ＣＰＵ（Central Processing Unit）やMPU（Micro Processor Unit）である。
【００３３】
通信部４６は、公衆通信回線網２４を介しての署名サーバ２０とのデータ通信を制御する。通信部４６は、制御部４０からの命令に従って動作し、署名サーバ２０との間で、証明書１２４、署名ハッシュ値１４０、署名値１２６の送受信を行う。通信部４６は、たとえば、公衆通信回線網２４との有線または無線の通信インタフェースと、その制御回路を有する。
【００３４】
本実施形態では、取得部４４が、外部の記憶媒体から秘密鍵１８０や証明書１２４を取得する。ここで、外部の記憶媒体は、たとえば、ＵＳＢメモリ、ＳＤカード、ＩＣカードなどの可搬性の不揮発性記憶媒体である。取得部４４は、たとえば、このような記憶媒体からデータを取得するための接触型または非接触型のインタフェースである。取得された秘密鍵１８０や証明書１２４は、記憶部４８に格納されて、証明書送信部２２２や署名値生成部２２４により読み出され、証明書送信部２２２や署名値生成部２２４のデータ処理に用いられる。ただし、秘密鍵１８０や証明書１２４の両方または一方は、予め記憶部４８に格納されており、必要に応じて証明書送信部２２２や署名値生成部２２４により読み出されるように構成してもよい。
【００３５】
表示部４７は、ユーザ（署名者）に操作入力を促すための情報を表示出力する。表示部４７は、たとえば、署名クライアント２２に対し外付けまたは内蔵のディスプレイとその制御回路を有する。
【００３６】
操作入力部４９は、ユーザの操作入力を受け付ける。操作入力部４９は、たとえば、キーボード、タッチスクリーン、ポインティングデバイスなどの操作入力装置とのインタフェースとその制御回路を有する。あるいは、操作入力部４９は、操作入力装置を含んでもよい。本実施形態では、証明書送信部２２２や署名値生成部２２４は、操作入力部４９からの入力に応答して動作する。ただし、証明書送信部２２２や署名値生成部２２４は、操作入力がなくても動作するように構成してもよい。
【００３７】
図５は、本実施形態の電子署名システムの動作シーケンス例を説明する図である。図５には、署名サーバ２０と署名クライアント２２の動作シーケンスの一例が示される。
【００３８】
まず、署名クライアント２２は、署名サーバ２０に対し真性の署名クライアントであることを示す認証情報を、署名サーバ２０に送信する（Ｓ５００）。認証情報は、たとえば、パスワードや、ユーザの生体識別情報など、署名クライアント２２または署名クライアント２２とそのユーザの組合せを一意に特定する情報である。
【００３９】
署名サーバ２０は、識別情報を受信すると、予め格納される照会用の情報と照会して、署名クライアント２２が真正のクライアントであることを認証する（Ｓ５０１）。こうして署名クライアント２２または署名クライアント２２とそのユーザの組合せを一意に特定してから、署名サーバ２０は署名処理を開始する。
【００４０】
署名サーバ２０は、署名対象データ１００を保持する（Ｓ５０２）。署名サーバ２０は、署名対象データ１００を記憶部３６から読み出してもよいし、署名クライアント２２や他のコンピュータトから公衆通信回線網２４を介して取得してもよい。
【００４１】
次いで、署名サーバ２０は、署名プログラム３６２を署名クライアント２２に送信する（Ｓ５０４）。署名サーバ２０は、署名クライアント２２とのセッションが確立されると、署名クライアント２２の送信を開始してもよいし、署名クライアント２２とのセッションが確立された後、署名クライアント２２から所定のリクエストが送られたことに応答して、署名プログラム３６２の送信を開始してもよい。
【００４２】
次いで、署名クライアント２２は、署名プログラム３６２を取得して実行する。
【００４３】
次いで、署名サーバ２０は、署名クライアント２２に、署名メニューデータを送信する（Ｓ５０８）。署名メニューは、ユーザに対し、署名対象データ１００の選択や、電子署名の実行を促すための情報を有する。
【００４４】
次いで、署名クライアント２２は、署名メニューを表示して（Ｓ５１０）、署名開始指示入力を受け付ける（Ｓ５１１）と、証明書送信部２２２を起動する。
【００４５】
次いで、署名クライアント２２では、証明書送信部２２２が、証明書１２４を記憶部４８または取得部４４から取得して（Ｓ５１２）、証明書１２４を署名サーバ２０に送信する（Ｓ５１４）。
【００４６】
次いで、署名サーバ２０では、仮署名データ生成部２０２が証明書１２４を取得する（Ｓ５１６）と、署名対象データ１００から署名対象ハッシュ値１２２を生成し、証明書１２４と組み合わせて仮署名データ１２０を生成する（Ｓ５１８）。
【００４７】
次いで、署名サーバ２０では、署名ハッシュ値生成部２０４が、仮署名データ１２０のハッシュ値を計算して署名ハッシュ値１４０を生成し（Ｓ５２０）、署名ハッシュ値１４０を署名クライアント２２に送信する。
【００４８】
次いで、署名クライアント２２では、署名値生成部２２４が、署名ハッシュ値１４０を受信すると、秘密鍵１８０を取得する（Ｓ５２２）。秘密鍵１８０は、たとえば、ユーザが傾向する可搬性記憶媒体から取得される。ここで、署名値生成部２２４は、署名ハッシュ値１４０を受信する前に秘密鍵１８０を取得してもよい。そして、署名値生成部２２４は、署名ハッシュ値１４０を秘密鍵１８０により暗号化して、署名値１２６を生成する（Ｓ５２４）。そして、署名値生成部２２４は、署名値１２６を署名サーバ２０に送信する（Ｓ５２６）。
【００４９】
次いで、署名サーバ２０では、署名データ生成部２０６が、署名値１２６を受信し（Ｓ５２８）、署名値１２６を仮署名データ１２０に埋め込んで署名データ１６０を生成する（Ｓ５３０）。
【００５０】
そして、署名サーバ２０は、署名クライアント２２に、電子署名処理の完了通知を送信して（Ｓ５３２）、電子署名処理を終了する。
【００５１】
一方、署名クライアント２２は、完了通知を受信して（Ｓ５３４）、電子署名処理を終了する。
【００５２】
本実施形態では、上述のシーケンスにおいて、仮署名データ１２０の生成（Ｓ５１８）、署名ハッシュ値１２２生成（Ｓ５２０）、署名データ１６０生成（Ｓ５３０）を署名サーバ２０側で実行し、署名クライアント２２側では、署名ハッシュ値１２２からの署名値１２６生成（Ｓ５１４）を行う。そうすることで、署名クライアント２２がその他の処理を実行する場合と較べて、署名クライアント２２の処理負荷を軽減できる。特に、署名クライアント２２を構成するハードウェアの処理性能や、ソフトウェア構成が多岐にわたる場合であっても、署名クライアント２２の処理負荷を最小限に止めることで、電子署名システム全体として良好なスループットを得ることができる。また、署名クライアント２２では署名値１２６生成（Ｓ５１４）を行うこととすることで、署名サーバ２０で処理する署名対象データ１００の形式によらず、共通の手順と署名プログラムの構成で、電子署名を行うことができる。
【００５３】
図６（Ａ）、６（Ｂ）は、本実施形態における署名プログラムの構成例を概念的に示す。
【００５４】
図６（Ａ）の例では、署名プログラム３６２は、署名クライアント２２に備えられるブラウザプログラム６０のプラグイン６２である。署名クライアント２２では、ユーザは、ブラウザプログラム６０により公衆通信回線網２４を介して署名サーバ２０にアクセスして署名プログラム３６２をダウンロードし、ブラウザプログラム６０に組み込むことができる。ここで、たとえば署名クライアント２２がWindows ＯＳ環境を有する場合、プラグイン６２はたとえばJava（登録商標）APIやActive Xコントロールの形態で提供される。このように、既存のブラウザプログラム６０のユーザインタフェースを利用する構成とすることで、署名プログラム３６２のデータ量を抑えつつ、ユーザに署名プログラム３６２の機能を提供できる。
【００５５】
図６（Ｂ）の例では、署名プログラム３６２は、署名クライアント２２に備えられるブラウザプログラム６０を取り込んだハイブリッドアプリケーション６４である。署名クライアント２２では、ユーザは、公衆通信回線網２４を介して署名サーバ２０にアクセスして署名プログラム３６２をダウンロードし、署名プログラム３６２を署名クライアント２２にインストールできる。そして、署名クライアント２２は、ハイブリッドアプリケーション６４内で、ブラウザプログラム６０のインタフェースと署名機能６６をユーザに提供できる。このように、署名プログラム３６２をハイブリッドアプリケーション６４として提供することで、署名クライアント２２のＯＳの種類の制約をある程度回避できる。ハイブリッドアプリケーション６４は、たとえば、iOSやAndroidなどのＯＳ上で動作できる。このように、種々のクライアント環境で動作可能な署名プログラム３６２をユーザに提供できる。さらに、既存のブラウザプログラム６０のインタフェースを組み込んで利用することで、ユーザの利便性を損なわずに、電子署名機能を提供できる。
【００５６】
上述した本実施形態は、種々の電子署名に適用できる。たとえば、薬局の薬剤師が電子処方箋に署名を行う場合に、本実施形態の適用が可能である。その場合、薬剤師が署名クライアントを操作し、クラウドの署名サーバ上で処方箋を作成して格納する。そして、薬剤師が携帯するＩＤ兼用のメモリなどに証明書を格納しておき、署名クライアントが証明書を取得して署名サーバに証明書を送信する。そして、署名サーバが証明書を用いて電子処方箋から仮署名データを生成し、さらに署名ハッシュ値を生成する。そして、署名クライアントは、署名ハッシュ値を署名サーバから取得すると、薬剤師のＩＤ兼用メモリから秘密鍵を取得して、秘密鍵を用いて署名ハッシュ値の署名値を生成する。そして、署名クライアントが署名値を署名サーバに送信し、署名サーバが電子処方箋の署名データを生成する。このようにして電子処方箋に電子署名することで、電子処方箋の真正性を保証できる。
【００５７】
上述において、本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００５８】
２０  署名サーバ
２２  署名クライアント
２４  公衆通信回線網
２０２  仮署名データ生成部
２０４  署名ハッシュ値生成部
２０６  署名データ生成部
２２２  証明書送信部
２２４  署名値生成部
１２６  署名値送信部
【図１】
2018067807.tif 000003
【図２】
2018067807.tif 000004
【図３】
2018067807.tif 000005
【図４】
2018067807.tif 000006
【図５】
2018067807.tif 000007
【図６】
2018067807.tif 000008