(57)【要約】【課題】ＳＳＬを第三者による攻撃、特にはMITMAによる攻撃に強くするように改良する。【解決手段】クライアントとサーバはともに、同じ条件下では同じ解を生成する機能を持つ。クライアントは、一つ目の解を作り（Ｓ１００２）、それをサーバに送る（Ｓ１００３）。サーバは解を受取ると自ら解を作り（Ｓ２００２）、それがクライアントから受取った解と一致したらクライアントが正当だと認証する（Ｓ２００３）。サーバは新たな解を生成し（Ｓ２００４）、それを用いてサーバ証明書及びＳＳＬ証明書を暗号化してから（Ｓ２００５）、クライアントへ送る（Ｓ２００６）。クライアントは新たな解を生成し（Ｓ１００５）それを用いてサーバ証明書及びＳＳＬ証明書を復号化する（Ｓ１００６）。以降の処理は現行のＳＳＬ通信と同じである。【選択図】図８
2018026631.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成されるＳＳＬ通信システムで実行される通信方法であって、
前記クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取る過程、
前記サーバが、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、
前記クライアントが、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取る過程、
前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、ＳＳＬ通信方法。
【請求項２】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記クライアントで実行されるＳＳＬ通信方法であって、
前記クライアントが実行する、
その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、
前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、ＳＳＬ通信方法。
【請求項３】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記サーバで実行されるＳＳＬ通信方法であって、
前記サーバが実行する、
前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取り、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、
前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を含んでなる、ＳＳＬ通信方法。
【請求項４】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第２暗号化復号化手段と、を有しているものと、
の組合せにより、ＳＳＬ暗号化通信システムを構成するための、前記ネットワークに接続可能とされたクライアントであって、
前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、
共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、
前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、
前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、
共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第２暗号化復号化手段と、
を備えており、
前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、前記サーバ解生成手段で前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取るようになっており、
前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記クライアント認証手段が前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段は、前記クライアントが持つ共通鍵を暗号化するようになっているとともに、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記サーバとの間で共通鍵方式の暗号化通信を行うようになっている、
クライアント。
【請求項５】
前記サーバは、前記サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第１暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で２つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第１暗号化復号化手段により、前記サーバ証明書及び前記ＳＳＬ証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を、前記クライアントに送信するようになっているとともに、
前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第１暗号化復号化手段を備えており、
前記クライアント解生成手段は、前記クライアントが暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記ＳＳＬ証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で２つ目或いはそれ以降の解を生成するようになっているとともに、
前記クライアント第１暗号化復号化手段は、前記クライアント解生成手段が生成した前記２つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を復号化するようになっている、
請求項４記載のクライアント。
【請求項６】
前記サーバは、前記サーバ第１暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっており、
前記クライアント第１暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段は、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっている、
請求項５記載のクライアント。
【請求項７】
秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、
前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、
解を連続して生成することのできるサーバ解生成手段と、
公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、
共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第２暗号化復号化手段と、
を有しており、
前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第２暗号化復号化手段と、を有している、前記ネットワークに接続可能とされたクライアントと、
の組合せにより、ＳＳＬ暗号化通信システムを構成するための、前記ネットワークに接続可能とされたサーバであって、
前記クライアントの正当性を認証するためのサーバ認証手段を備えており、
前記クライアントは、前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバ解生成手段は、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取ったときに、前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成するようになっているとともに、
前記サーバ認証手段は、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するようになっており、
前記クライアントが正当だとの認証が前記サーバ認証手段で行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するようになっており、
前記クライアントは、前記サーバ証明書及び前記ＳＳＬ証明書を受取るとともに、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記クライアント認証手段により前記サーバから送られてきた前記サーバ証明書が正当か否か判定し、前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段で、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、
前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記クライアントとの間で共通鍵方式の暗号化通信を行うようになっている、
サーバ。
【請求項８】
前記サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第１暗号化復号化手段を備えているとともに、
前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で２つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第１暗号化復号化手段により、前記サーバ証明書及び前記ＳＳＬ証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を、前記クライアントに送信するようになっているとともに、
前記クライアントは、前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第１暗号化復号化手段を備えており、前記クライアント解生成手段は、クライアントが暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記ＳＳＬ証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で２つ目或いはそれ以降の解を生成するようになっているとともに、前記クライアント第１暗号化復号化手段は、前記クライアント解生成手段が生成した前記２つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を復号化するようになっている、
請求項７記載のサーバ。
【請求項９】
前記サーバ第１暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっており、
前記クライアントでは、前記クライアント第１暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段が、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっている、
請求項８記載のサーバ。
【請求項１０】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記クライアントとして、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータに、
その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、
前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、
前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、
前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、
前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、
を実行させるためのコンピュータプログラム。
【請求項１１】
所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、
所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、
を含んで構成される暗号化通信システムの前記サーバとして、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータに、
前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、
前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、
前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取り、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、
前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、
以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、
を実行させるためのコンピュータプログラム。
【請求項１２】
前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、クライアントを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、ＴＣＰ／ＩＰとの間で実行させるようになっているとともに、
前記アプリケーションで生成された平文を暗号化してから前記サーバに送信するために前記ＴＣＰ／ＩＰに渡し、前記ＴＣＰ／ＩＰから渡された前記サーバから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
請求項１０記載のコンピュータプログラム。
【請求項１３】
前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、サーバを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、ＴＣＰ／ＩＰとの間で実行させるようになっているとともに、
前記アプリケーションで生成された平文を暗号化してから前記クライアントに送信するために前記ＴＣＰ／ＩＰに渡し、前記ＴＣＰ／ＩＰから渡された前記クライアントから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
請求項１１記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術、より詳細には暗号化通信のための技術に関する。
【背景技術】
【０００２】
例えば、インターネット上でインターネット上に存在する店舗への支払いを行う、インターネットバンキングで自らの口座の残高を見たり第三者への送金を行う等という場合には、それらを行うユーザは自らの端末（クライアント）と上記店舗等のサーバとの間でインターネットを介して通信を行う。かかる通信はもちろん秘匿性が高いものでなければならず、暗号化通信の技術が用いられている。
暗号化通信の技術の1つとしてＳＳＬ（secure sockets layer）と呼ばれる技術が実用化されている。なお、本願でＳＳＬと言う場合には、ＳＳＬを標準化したものであるＴＬＳ（transport layer security）も当然にＳＳＬに含まれる。
【０００３】
ＳＳＬには大きく分けて２つの側面がある。１つは本人確認（認証）であり、もう１つは暗号化通信である。これらがどのように実現されるかについて説明するため、ＳＳＬ通信で実行される処理について説明する。
この例では、クライアントとサーバ間でＳＳＬ通信が実行されるものとする。
（１）前提処理
ａ．サーバは、一対の秘密鍵と公開鍵を生成する。秘密鍵と公開鍵とは、周知のように、そのいずれもが平文のデータを暗号化して暗号化データとすることが可能なものであるとともに、それらの他方で暗号化された暗号化データを復号化して平文のデータに戻すことができるものとされる。他方、サーバには、自己の正当性を相手方が確認するためのデータであるサーバ証明書であって、自己の公開鍵を含み、且つそのサーバ証明書の正当性を示すための電子署名が付されているものがインストールされる。なお、サーバ証明書の電子署名のみではサーバ証明書の、ひいてはサーバの正当性を立証できない場合には、サーバ証明書の電子署名の正当性を示すための、その電子署名を行った認証局（後述）よりも更に上位の認証局（ルート認証局を含む）によるＳＳＬ証明書（ルート証明書を含む）もサーバにインストールされる。
ｂ．クライアントは、共通鍵を準備する。共通鍵は、周知のように、平文のデータを暗号化して暗号化データとすることが可能なものであるとともに、同じ共通鍵で暗号化された暗号化データを復号化して平文のデータに戻すことができるものとされる。
ｃ．クライアントには、ＳＳＬ証明書（ルート証明書を含む）がインストールされる。ＳＳＬ証明書は、認証局が作成したものである。認証局は、上述のサーバ証明書を作成する者でもあり、サーバ証明書に電子署名を付す者でもある。クライアントは、ＳＳＬ証明書とサーバ証明書に付された電子署名の組合せにより、サーバ証明書の正当性を確認することができる。
（２）サーバとクライアントでの共通鍵の共有
ａ．クライアントがサーバにＳＳＬ通信の要求を行う。
ｂ．サーバがクライアントに対して上記サーバ証明書を送信する。場合によってはこのとき、ＳＳＬ証明書も同時に送られる。上述のように、サーバ証明書には、サーバが用いる公開鍵が含まれ、電子署名が付されている。
ｃ．クライアントは、自己が所有するＳＳＬ証明書とサーバ証明書に付された電子署名とを用いてサーバ証明書の正当性を検証し、サーバ証明書が正当であれば自分が通信しているサーバが正当であると認証し、サーバ証明書が不当であればサーバが正当であるとの認証を行わない。サーバ証明書に付された電子署名の正当性をそれ単独では評価できない場合には、クライアントはサーバ証明書に付された電子署名の正当性を示すサーバ証明書からのＳＳＬ証明書に付された電子署名の正当性を、自己の持つＳＳＬ証明書により立証できるか試み、それができた場合のみサーバが正当であるとの認証を行う。
ｄ．クライアントはサーバを認証した場合には、自己が所有する共通鍵を、サーバから受取ったサーバ証明書に含まれていた公開鍵で暗号化して、サーバに送る。
ｅ．サーバは、クライアントから受取った暗号化された共通鍵を自己が所有する秘密鍵で復号化する。これにて、クライアントの共通鍵は、クライアントとサーバで共有されることになる。
（３）サーバとクライアント間での暗号化通信
サーバとクライアントとはともに、自分が持つ共通鍵で暗号化した暗号化データを相手方に送る。サーバとクライアントはともに、相手から受取った暗号化データを自分が持つ共通鍵で復号化する。これにて、サーバとクライアントとの間では暗号化通信が可能となる。
【０００４】
以上がＳＳＬ通信で実行される処理である。
乱暴であることを承知で言うと、ＳＳＬ通信で実行したいのは、上記（３）のサーバとクライアント間での暗号化通信のみである。これを、共通鍵を用いて行いたいというのがＳＳＬ通信の要点である。なぜ共通鍵でかかる暗号化通信を行いたいかといえば、共通鍵での暗号化通信は、特に公開鍵と秘密鍵とを用いた暗号化通信に較べてその処理が格段に軽いからである。
もっとも、そのためには、共通鍵をサーバとクライアントとの間で共有しなければならない。それを実現するために、サーバが持つ公開鍵と秘密鍵とを用いてクライアントからサーバに共通鍵が送信されるというのが、ＳＳＬ通信についての上記（２）の処理である。公開鍵と秘密鍵を使った暗号化通信では、暗号化と復号化に用いられる鍵が上述のように異なる。したがって、公開鍵で暗号化されたクライアントの共通鍵が仮に、クライアントからサーバに送られている途中で悪意のある第三者に盗まれたとしても、当該第三者は秘密鍵を持たないのでクライアントの共通鍵そのものが第三者に盗まれるということはない。この結果には、公開鍵が公開されていることはまったく影響しない。
クライアントから第三者に共通鍵を送る際には、上述したように、サーバからクライアントに送られてきた公開鍵が用いられる。しかしながら、ここでその公開鍵自体の正当性、ひいては公開鍵を送って来た者（サーバ）の正当性が問題となる。たとえば、悪意のある第三者が公開鍵をクライアントに送ってくることがあるからである。公開鍵乃至それを送ってきた者の正当性を担保するのが、ＳＳＬ通信についての上記（１）、（２）の処理である。これら処理により、クライアントが、サーバの正当性を確認（認証）することで、ＳＳＬ通信の正当性が保証されることになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上の説明によればＳＳＬ通信には、悪意の第三者が付け入る隙が無いようにも思われる。しかしながら、実際にはＳＳＬ通信でも悪意の第三者による盗聴が発生しており、例えばインターネットバンキングではユーザの口座の金銭がそのユーザの預かり知らない第三者の口座に勝手に送金される等の被害が頻繁に生じている。
そのようなことが生じる原因は複数あるが、例えば、クライアントにある上述したＳＳＬ証明書が例えばハッキングや、コンピュータウィルスを用いる等の手法によって改竄されることがその一因となる。また、ルート証明書には通常有効期限があるにもかかわらず、多くのユーザは自らのクライアントにおいてルート証明書の更新をしていない。そうすると、クライアント内にあるルート証明書は改竄されたのと同様の状態となることがあり得る。サーバの管理者は、サーバ証明書、ＳＳＬ証明書に対する第三者からの攻撃に十分に備えるだけの技術を備えていることが多く、また、サーバの管理者はルート証明書の更新を正しく行うのが通常なので、上述の如き問題は主にクライアント側の問題となる。
クライアントにおけるルート証明書が改竄された場合には、悪意のある第三者は、改竄されたＳＳＬ証明書によって自らの正当性がクライアントにおいて認証されるような偽のサーバ証明書を自ら作り、ユーザが正当なサーバへとＳＳＬ通信の要求を行ったときに、正当なサーバになりすまして、クライアントと正当なサーバとの間に入り込んでその要求を受取る。そしてその正当なサーバになりすました偽のサーバは、自らが作った、偽のサーバ証明書をクライアントへと送信する。そうするとクライアントは、改善されたルート証明書を使ってその偽のサーバ証明書を正当なものと判断し、ひいては偽のサーバを正当なものと認証する。そうすると、クライアントは自らが持つ共通鍵を偽のサーバ証明書に含まれていた偽の公開鍵で暗号化して、偽のサーバへと送信する。それを受取った偽のサーバは自らが持つ上述の偽の公開鍵と対となった秘密鍵でその暗号化された共通鍵を復号化する。これをもって、クライアントが持っていた共通鍵は、悪意の第三者の手に渡るのである。以降においては、そのクライアントとサーバとの間の通信が仮に共通鍵による暗号化通信であったとしても、その暗号化通信のために必要な共通鍵を所有している悪意の第三者は、その解読を自由に行えるようになる。
このような、クライアントとサーバの間に悪意の第三者が入り込んで行う攻撃を中間者攻撃（man-in-the-middle attack：MITMA）と称するが、他の暗号化通信の場合と同様、ＳＳＬの場合にもこれを防げていない。
【０００６】
そもそも暗号化通信の分野では、送信者と受信者が同じ鍵を持つ（つまり、共通鍵方式の通信を行う。）というのが基本であり、同じ鍵をどうやって共有するのかという点が古くから問題となっている。かかる問題は鍵の配送問題などと称されるが、ＳＳＬ通信でもこの鍵の配送問題は解決されていないのである。
上述したようにＳＳＬ通信では最終的に共通鍵方式の通信を行うが、それに先立って、クライアントが持つ共通鍵をどうやって安全にサーバに配送するのかという点が問題となる。ＳＳＬ通信では上述のように、秘密鍵方式の暗号化通信を初段に用い、且つサーバ証明書とルート証明書とを用いた認証技術を組合せることで、クライアントが持つ共通鍵を安全にサーバに配送せんとしているが、その試みは上述のように、完璧に成し遂げられているとは言えないのである。
【０００７】
本願発明は、第三者による攻撃、特にはMITMAによる攻撃に強いＳＳＬ通信の技術を提案するものである。
【課題を解決するための手段】
【０００８】
上述の如き問題は、以下のことが原因で生じると出願人は考えている。
つまり従来のＳＳＬ通信では、サーバ証明書等を用いてクライアントがサーバの適正さの認証を行っている。しかしながら、上述のようにクライアントは悪意ある第三者からの攻撃を完全に防ぐのは難しい。他方、従来のＳＳＬ通信ではサーバは、クライアントの適正さの認証を行っていない。これこそが、上述の問題が発生する原因だと本願発明者は考えている。
クライアントよりは、第三者からの攻撃に強いサーバの方がかかる認証を正しく行える可能性が高いと思われるし、また、サーバの方がクライアントよりも相手方の認証を正しく行える可能性が高いかどうかをひとまず置くとしても、クライアントとサーバの双方が相手方の認証を行った方が通信の安全性が高まるのは自明であろう。したがって、サーバにおいても、クライアントの認証を行うべきだというのが本願発明者の考えである。しかしながら、従来のＳＳＬは、サーバ証明書、ルート証明書等を用いてサーバの認証を行うという方向で長年発展してきているため、かかる仕組みを変える或いは壊すのはあまりにも手間、コストがかかる。他方、かかる仕組みに簡単に応用することができるサーバにおけるクライアントの認証の仕組みというのは今のところ提案されていない。
本願発明者が提案する本願発明は、そのような仕組みに関する。
【０００９】
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成されるＳＳＬ通信システムで実行されるＳＳＬ通信方法である。かかる通信方法は、現在普及しているＳＳＬ通信の進化版或いは改良版と捉えることができる。なお、本願におけるネットワークは、典型的にはインターネットである。
そして、本願発明は、以下の過程を含む。
本願発明は、前記クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取る過程、前記サーバが、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、前記クライアントが、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取る過程、前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、を含んでいる。
本願発明における上述の過程のうちの最後の過程、つまり、「以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバと、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程」は、現在のＳＳＬ通信の場合における（３）の処理に相当する。
また、本願発明に含まれる各過程のうち、最後の過程の前に位置する「前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、」、「前記クライアントが、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、」、「前記サーバ証明書が正当なものと認証された場合に、前記クライアントが、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、」、「前記クライアントが、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、」、「前記サーバが、前記暗号化された共通鍵を受取る過程、」、「前記サーバが、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、」という過程は、現在のＳＳＬ通信の場合における（２）のｂ〜ｅに相当する。
現在のＳＳＬ通信と共通する上述の過程は、必ずしもそうする必要はないが、現在用いられているＳＳＬ通信における処理を、完全に踏襲することが可能である。特に、現在非常に大きな金銭が動くビジネスとして大きく広まっている公開鍵が埋め込まれたサーバ証明書、或いはサーバ証明書の正当性を判断するためのＳＳＬ証明書（ルート証明書を含む）をそのまま使用するということまで考慮すれば、本願発明は、現在のＳＳＬ通信と親和性が高く、現在のＳＳＬ通信に応用するのが容易である。
他方、本願発明は、そのセキュリティ性が高い。その理由について説明する。
【００１０】
この発明では、クライアントとサーバとで、解生成手段が用いられるというのが特徴的である。クライアントとサーバとで用いられる解生成手段は同じものでも同じものでなくても構わないが、少なくとも、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできるものである。解生成手段には、例えば、ワンタイムパスワードの技術を流用することができる。ワンタイムパスワードには、２つの解生成手段で生成されたワンタイムパスワードの同じ順番で生成されたもの同士を比較した場合に両者が同じになるもの、２つの解生成手段で同じ時刻で生成されたもの同士を比較した場合に両者が同じになるもの等の幾つかの方式があるが、ワンタイムパスワードの技術を流用するのであれば、この発明で用いられる解生成手段はそれらのどれでも構わない。
本願発明では、クライアントが、その解生成手段で解を生成させ、その解を前記ネットワークを介してサーバに送信する。その解はサーバにより受取られる。この解は、サーバにおけるクライアントの認証に使用される。
具体的には、サーバは、クライアントから解を受取ると、その解生成手段でクライアントの解生成手段で解が生成されたのと同一条件下で解を生成させる。そして、サーバの解生成手段で生成した解と、クライアントから受取った解とを比較して、両者が一致した場合には、クライアントを正当なものと認証する。上述したように、サーバとクライアントにある解生成手段は、少なくとも、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできるものである。したがって、解を生成する際の条件が、サーバとクライアントとの間で、或いはサーバの解生成手段とクライアントの解生成手段との間で共有されているのであれば、サーバの解生成手段とクライアントの解生成手段とは、同じ解を生成することができ、言葉を変えれば生成される解を同期させることができる。
本願発明では、そのような解の同期がなされていれば、クライアントは正当なものであると認証するわけである。
サーバにおけるクライアントの正当性の認証は、従来のＳＳＬ通信の場合と同様に、サーバ証明書とＳＳＬ証明書とによって行える。解生成手段という簡単な仕組みをサーバとクライアントに配し、サーバによるクライアントの認証をも行うことにより、ＳＳＬ通信は、サーバとクライアントとが双方向で相手方を認証できるものに進化する。しかも、サーバとクライアントとがどのような条件下で解を生成するのかということは、基本的に悪意の第三者にはわからない。したがって、本願のこのＳＳＬ通信による暗号化通信は、従来よりもより安全性の高いものとなる。
【００１１】
本願発明は、クライアントで実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
その方法は例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記クライアントで実行されるＳＳＬ通信方法である。
そしてこの通信方法は、前記クライアントが実行する、以下の過程を含む。
その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、である。
【００１２】
本願発明は、サーバで実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
その方法は例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記サーバで実行されるＳＳＬ通信方法である。
そしてこの通信方法は、前記サーバが実行する、以下の過程を含む。
その過程は、前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取り、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、である。
【００１３】
本願発明は、サーバとの組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされたクライアントと捉えることもできる。かかるクライアントの効果は上記のとおりである。
クライアントは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第２暗号化復号化手段と、を有しているものと、の組合せにより、ＳＳＬ暗号化通信システムを構成するための、前記ネットワークに接続可能とされたクライアントである。
そして、クライアントは、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第２暗号化復号化手段と、を備えている。
そして、このクライアントは、前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、前記サーバ解生成手段で前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取るようになっており、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記クライアント認証手段が前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段は、前記クライアントが持つ共通鍵を暗号化するようになっているとともに、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記サーバとの間で共通鍵方式の暗号化通信を行うようになっている。
【００１４】
かかるクライアントは、以下のようなものとすることができる。
その場合、前記サーバは、前記サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第１暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で２つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第１暗号化復号化手段により、前記サーバ証明書及び前記ＳＳＬ証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を、前記クライアントに送信するようになっている。
そして、そのようなサーバと組合せて用いられるクライアントは、前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第１暗号化復号化手段を備えており、前記クライアント解生成手段は、前記クライアントが暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記ＳＳＬ証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で２つ目或いはそれ以降の解を生成するようになっているとともに、前記クライアント第１暗号化復号化手段は、前記クライアント解生成手段が生成した前記２つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を復号化するようになっている。
このクライアントでは、サーバ証明書及びＳＳＬ証明書は、サーバからクライアントへ送られるときに、暗号化された状態で送られる。これにより、このサーバ及びクライアントを用いて実行される暗号化通信は、より第三者による盗聴の可能性が低いものとなる。その理屈について説明する。
この場合のサーバは、サーバ解生成手段で生成された解を用いた暗号化を行うことができるサーバ第１暗号化復号化手段を備えている。また、この場合のサーバでは、クライアントが正当だとの認証がサーバ認証手段で行われた場合に、サーバのサーバ解生成手段で予め定められた条件下で２つ目或いはそれ以降の解が生成されるようになっている。サーバ第１暗号化復号化手段は、上記解を用いてサーバ証明書及びＳＳＬ証明書を暗号化する。
他方、この場合のクライアントは、クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合にはサーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第１暗号化復号化手段を備えている。クライアントが暗号化されたサーバ証明書及びＳＳＬ証明書をサーバから受取った場合、クライアント解生成手段は、サーバでサーバ証明書及び前記ＳＳＬ証明書を暗号化するときに用いられた解がサーバ解生成手段で生成されたときと同じ条件下で２つ目或いはそれ以降の解を生成するようになっている。そして、それにより生成された解を用いて、クライアント第１暗号化復号化手段は、暗号化されたサーバ証明書及びＳＳＬ証明書を復号化する。
上述のように、クライアント解生成手段で生成される解は、サーバ証明書及びＳＳＬ証明書を暗号化するためにサーバ解生成手段で生成された解と同条件下で生成されたものであるから、サーバ解生成手段でサーバ証明書及びＳＳＬ証明書を暗号化するために生成された解と、クライアント第１暗号化復号化手段で暗号化されたサーバ証明書及びＳＳＬ証明書を復号化するためにクライアント解生成手段で生成される解とは同じものとなる。他方、クライアント第１暗号化復号化手段は、同じ解が用いられる場合にはサーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるようになっているので、暗号化された解との同一性が担保された解を用いる限り、クライアント第１暗号化復号化手段は、暗号化されたサーバ証明書及びＳＳＬ証明書を復号化することができる。これは、第三者による何らかの妨害がない限り、保証される。
ところで、サーバにおけるサーバ第１暗号化復号化手段による暗号化、及びクライアントにおけるクライアント第１暗号化復号化手段による復号化はともに、解によってその結果が変わる。つまり、これら暗号化と復号化には解依存性がある。したがって、第三者が、暗号化された状態でネットワーク上を送信されているサーバ証明書及びＳＳＬ証明書の内容を知ろうと思うのであれば、その解の内容を知る必要がある。しかしながら、上述のように、暗号化、復号化の際に用いられる上述の解は、サーバ又はクライアントの中にのみ存在し、ネットワーク上を送信されない。したがって、悪意のある第三者は、暗号化、復号化の際に用いられる上述の解を知ることができず、結果として、暗号化された状態でネットワーク上を送信されているサーバ証明書及びＳＳＬ証明書の内容を知ることができない。従来のＳＳＬ通信における悪意のある第三者によるサーバ証明書及びＳＳＬ証明書の改竄の典型的なものは、送信途中のサーバ証明書及びＳＳＬ証明書を盗むことによるものである。それを防げるため、この発明による暗号化通信の強度は極めて高いと言える。
なお、この発明では、上述のように、サーバにおけるサーバ第１暗号化復号化手段による暗号化、及びクライアントにおけるクライアント第１暗号化復号化手段による復号化はともに、解依存性がある。かかる解依存性を上記暗号化、復号化に持たせるには、解を例えば、暗号化、復号化の際の鍵として用いることができる。
本願発明では、サーバとクライアントとが、クライアントからサーバに送られた解の後に、どのような条件下で生成された解（例えば、幾つめの解）をサーバ証明書及びＳＳＬ証明書の暗号化と復号化に用いるかは、サーバとクライアントの間で最初から決定しておけばよい。例えば、クライアントからサーバに送られた解の次に両者で発生された解を用いるとか、５番目に発生した解を用いるとか、そういう取極めを両者の間で予めしておくことができる。暗号化と復号化とに、共通の複数の解を用いることも可能であり、それにより第三者にサーバ証明書及びＳＳＬ証明書を盗まれる可能性をより低くすることができるようになる。
サーバからクライアントへ、暗号化した状態でサーバ証明書及びＳＳＬ証明書を送るようにする場合には、更に暗号化していない状態のサーバ証明書をもサーバからクライアントへ送るようにすることができる。
その場合、前記サーバは、前記サーバ第１暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっている。この場合、前記クライアント第１暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段は、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっていてもよい。第三者の攻撃がなければ、暗号化されてサーバからクライアントへ送られたサーバ証明書と暗号化しないでサーバからクライアントへ送られたサーバ証明書とは一致するはずである。両者が一致した場合にのみクライアント認証手段がサーバ証明書の正当性の認証を改めて行うこととすれば、第三者による改竄のないサーバ証明書のみをクライアントは認証の対象とすることができるようになる。なお、この場合には、暗号化していないサーバ証明書に加えて暗号化していないＳＳＬ証明書をもサーバからクライアントへ送り、且つ暗号化してサーバからクライアントへ送られたサーバ証明書とＳＳＬ証明書のすべてが、暗号化せずにサーバからクライアントへ送られたサーバ証明書とＳＳＬ証明書のすべてと一致した場合のみ、クライアント認証手段がサーバ証明書の適正さについての認証を実行するようになっていても構わない。
【００１５】
本願発明は、クライアントとの組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされたサーバと捉えることもできる。かかるサーバの効果は上記のとおりである。
サーバは例えば、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできるサーバ解生成手段と、公開鍵による暗号化がなされたデータに対して秘密鍵による復号化を行うことができる秘密鍵復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるサーバ第２暗号化復号化手段と、を有しており、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバ解生成手段で生成されたものと同じものとなる解を連続して生成することのできるクライアント解生成手段と、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みることのできるクライアント認証手段と、前記公開鍵を用いて暗号化を行うことのできる公開鍵暗号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできるクライアント第２暗号化復号化手段と、を有している、前記ネットワークに接続可能とされたクライアントと、の組合せにより、ＳＳＬ暗号化通信システムを構成するための、前記ネットワークに接続可能とされたサーバである。
そして、このサーバは、前記クライアントの正当性を認証するためのサーバ認証手段を備えており、前記クライアントは、前記クライアント解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバ解生成手段は、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取ったときに、前記クライアント解生成手段で解が生成されたのと同一条件下で解を生成するようになっているとともに、前記サーバ認証手段は、前記サーバ解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するようになっており、前記クライアントが正当だとの認証が前記サーバ認証手段で行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するようになっており、前記クライアントは、前記サーバ証明書及び前記ＳＳＬ証明書を受取るとともに、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記クライアント認証手段により前記サーバから送られてきた前記サーバ証明書が正当か否か判定し、前記サーバ証明書を正当なものと認証した場合には、前記公開鍵暗号化手段で、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信するようになっており、前記サーバが、受取った前記暗号化された共通鍵を前記秘密鍵を用いて前記秘密鍵復号化手段により復号化するようになっており、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバ第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記クライアント第２暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記クライアントとの間で共通鍵方式の暗号化通信を行うようになっている。
【００１６】
かかるサーバは、以下のようなものとすることができる。
この場合のサーバは、前記サーバ解生成手段で生成された解を用いた暗号化と復号化を行うことができるサーバ第１暗号化復号化手段を備えているとともに、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信するに先立って、前記サーバ解生成手段で予め定められた条件下で２つ目或いはそれ以降の解を生成するとともに、前記サーバ解生成手段で生成された前記解を用いて、前記サーバ第１暗号化復号化手段により、前記サーバ証明書及び前記ＳＳＬ証明書を暗号化させ、その暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を、前記クライアントに送信するようになっている。
かかるサーバは、前記クライアントは、前記クライアント解生成手段で生成された解を用いて、同じ解が用いられる場合には前記サーバ第１暗号化復号化手段で暗号化されたデータを復号化することができるクライアント第１暗号化復号化手段を備えており、前記クライアント解生成手段は、クライアントが暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を受取った場合には、前記サーバで前記サーバ証明書及び前記ＳＳＬ証明書を暗号化するときに用いられた解が前記サーバ解生成手段で生成されたときと同じ条件下で２つ目或いはそれ以降の解を生成するようになっているとともに、前記クライアント第１暗号化復号化手段は、前記クライアント解生成手段が生成した前記２つ目或いはそれ以降の解を用いて、暗号化された前記サーバ証明書及び前記ＳＳＬ証明書を復号化するようになっている、クライアントと組合せて用いられる。
かかるサーバは、上述したサーバ証明書及びＳＳＬ証明書を暗号化してサーバからクライアントに送る場合におけるサーバであり、その効果は既に述べたとおりである。
この場合のサーバは、前記サーバ第１暗号化復号化手段により暗号化された前記サーバ証明書を前記クライアントに送信するようになっているのに加えて、暗号化されていない状態の前記サーバ証明書を前記クライアントに送信するようになっていてもよい。この場合、前記クライアントでは、前記クライアント第１暗号化復号化手段により復号化された前記サーバ証明書と、前記サーバから暗号化されずに送信されてきた前記サーバ証明書とが同一であった場合にのみ、前記クライアント認証手段が、前記サーバから送られてきた前記サーバ証明書が正当なものか否かの認証を実行するようになっていてもよい。これは、サーバからクライアントへ、暗号化した状態でサーバ証明書及びＳＳＬ証明書を送るようにするのに加えて、更に暗号化していない状態のサーバ証明書をもサーバからクライアントへ送るようにすることに相当する。これによる効果は既に述べた通りである。
【００１７】
本願発明は、汎用のコンピュータを、本願発明のクライアントとして機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
そのコンピュータプログラムは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記クライアントとして、コンピュータを機能させるためのコンピュータプログラムである。
そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記クライアントから前記ネットワークを介して前記解を受取り、その解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証するとともに、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信した場合に、前記サーバ証明書及び前記ＳＳＬ証明書を受取る過程、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書が正当なものかの認証を試みる過程、前記サーバ証明書が正当なものと認証された場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化する過程、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する過程、前記サーバが、前記暗号化された共通鍵を受取り、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する処理を実行することにより前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記サーバとの間で、共通鍵方式の暗号化通信を行う過程、である。
【００１８】
本願発明は、汎用のコンピュータを、本願発明のサーバとして機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
そのコンピュータプログラムは例えば、所定のネットワークに接続可能なサーバであり、秘密鍵と、前記秘密鍵と対になる公開鍵を含む電子署名が付された当該サーバの正当性を証明するためのサーバ証明書と、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、解を連続して生成することのできる解生成手段と、を有しているものと、所定のネットワークに接続可能なクライアントであり、前記サーバ証明書に付された電子署名の正当性を証明するためのＳＳＬ証明書と、共通条件下で生成されたもの同士を比較すれば前記サーバの解生成手段で生成されたものと同じものとなる解を連続して生成することのできる解生成手段を備えるものと、を含んで構成される暗号化通信システムの前記サーバとして、コンピュータを機能させるためのコンピュータプログラムである。
そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
その過程は、前記クライアントが、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記サーバの解生成手段で前記クライアントの前記解生成手段で解が生成されたのと同一条件下で解を生成させ、前記サーバの解生成手段で生成した解と、前記クライアントから受取った解とを比較して、両者が一致した場合には、前記クライアントを正当なものと認証する過程、前記クライアントが正当だとの認証が前記サーバで行われた場合に、前記サーバが持っていた前記サーバ証明書及び前記ＳＳＬ証明書を、前記ネットワークを介して前記クライアントに送信する過程、前記クライアントが、前記サーバから前記ネットワークを介して前記サーバ証明書及び前記ＳＳＬ証明書を受取り、前記サーバから送られてきた前記ＳＳＬ証明書と、前記クライアントが持っていた前記ＳＳＬ証明書とを用いて、前記サーバから送られてきた前記サーバ証明書を正当なものと認証した場合に、前記サーバ証明書に含まれていた前記公開鍵を用いて、前記クライアントが持つ共通鍵を暗号化して、前記暗号化された共通鍵を前記ネットワークを介して前記サーバに送信する処理を行った場合に、前記暗号化された共通鍵を受取る過程、前記暗号化された共通鍵を前記サーバが持っている前記秘密鍵により復号化する過程、以上により前記サーバと前記クライアントで共有されることになった前記共通鍵を用いて、前記クライアントとの間で、共通鍵方式の暗号化通信を行う過程、である。
【００１９】
コンピュータを本願発明のクライアントとして機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、クライアントを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、ＴＣＰ／ＩＰとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記サーバに送信するために前記ＴＣＰ／ＩＰに渡し、前記ＴＣＰ／ＩＰから渡された前記サーバから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
現在のＳＳＬ通信のコンピュータプログラムは、アプリケーションと、ＴＣＰ／ＩＰとの間で暗号化と復号化とを行うようになっている。上述の如きコンピュータプログラムであれば、現在のＳＳＬ通信用のコンピュータプログラムに置換するのが容易である。
【００２０】
コンピュータを本願発明のサーバとして機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、サーバを構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、ＴＣＰ／ＩＰとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記クライアントに送信するために前記ＴＣＰ／ＩＰに渡し、前記ＴＣＰ／ＩＰから渡された前記クライアントから送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
これによっても、本願発明の上記コンピュータプログラムで、現在のＳＳＬ通信用のコンピュータプログラムを置換するのが容易になる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態によるＳＳＬ通信システムの全体構成を示す図。
【図２】図１に示したＳＳＬ通信システムに含まれるクライアントの外観を示す図。
【図３】図１に示したＳＳＬ通信システムに含まれるクライアントのハードウェア構成を示す図。
【図４】図１に示したＳＳＬ通信システムに含まれるクライアントの内部に生成される機能ブロックを示すブロック図。
【図５】図４に示した暗号化復号化部の内部に生成される機能ブロックを示すブロック図。
【図６】図１に示したＳＳＬ通信システムに含まれるサーバの内部に生成される機能ブロックを示すブロック図。
【図７】図６に示した暗号化復号化部の内部に生成される機能ブロックを示すブロック図。
【図８】図１に示したＳＳＬ通信システムで通信が行われるときに実行される処理の流れを示す図。
【図９】第２実施形態のクライアントの暗号化復号化部の内部に生成される機能ブロックを示す図。
【図１０】第２実施形態のサーバの暗号化復号化部の内部に生成される機能ブロックを示す図。
【図１１】第２実施形態のＳＳＬ通信システムで通信が行われるときに実行される処理の流れを示す図。
【図１２】第３実施形態のＳＳＬ通信システムで通信が行われるときに実行される処理の流れを示す図。
【発明を実施するための形態】
【００２２】
以下、本発明の第１〜第３実施形態について説明する。各実施形態の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。
【００２３】
≪第１実施形態≫
図１に、第１実施形態のＳＳＬ通信システムの全体構成を概略で示す。
ＳＳＬ通信システムは、複数のクライアント１００−１〜１００−Ｎ（以後、単に、「クライアント１００」と記載する場合もある。）、及びサーバ２００を含んで構成されている。これらはすべて、ネットワーク４００に接続可能とされている。
ネットワーク４００は、これには限られないが、この実施形態ではインターネットである。
【００２４】
クライアント１００は、コンピュータを含んでいるか、汎用のコンピュータにより構成されている。
【００２５】
次に、クライアント１００の構成を説明する。各クライアント１００−１〜１００−Ｎの構成は、本願発明との関連でいえば同じである。
クライアント１００は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク４００を介しての通信が可能なものであり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められ、それが可能であるのであればそれ以外の仕様は特に問わない。
例えば、クライアント１００がスマートフォンかタブレットなのであれば、スマートフォンとしてのクライアント１００は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰｈｏｎｅで良いし、タブレットとしてのクライアント１００は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰａｄでよい。以下、これには限られないが、クライアント１００がスマートフォンであることとして話を進める。
【００２６】
クライアント１００の外観の一例を図２に示す。
クライアント１００は、ディスプレイ１０１を備えている。ディスプレイ１０１は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ１０１は例えば、液晶ディスプレイである。クライアント１００は、また入力装置１０２を備えている。入力装置１０２は、ユーザが所望の入力をクライアント１００に対して行うためのものである。入力装置１０２は、公知或いは周知のものを用いることができる。この実施形態におけるクライアント１００の入力装置１０２はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、クライアント１００がノート型パソコン、デスクトップ型パソコンである場合には、入力装置１０２はキーボードや、マウス等になるであろう。また、ディスプレイ１０１がタッチパネルである場合、ディスプレイ１０１は入力装置１０２の機能を兼ねることになり、この実施形態ではそうされている。
【００２７】
クライアント１００のハードウェア構成を、図３に示す。
ハードウェアには、ＣＰＵ（central processing unit）１１１、ＲＯＭ（read only memory）１１２、ＲＡＭ（random access memory）１１３、インターフェイス１１４が含まれており、これらはバス１１６によって相互に接続されている。
ＣＰＵ１１１は、演算を行う演算装置である。ＣＰＵ１１１は、例えば、ＲＯＭ１１２、或いはＲＡＭ１１３に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ハードウェアはＨＤＤ（hard disk drive）その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のクライアントとしてこのクライアント１００を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、クライアント１００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのクライアント１００へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ１１２は、ＣＰＵ１１１が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ＲＯＭ１１２に記録されたコンピュータプログラムとしては、これに限られず、クライアント１００がスマートフォンであれば、クライアント１００をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。クライアント１００は、また、ネットワーク４００を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のｗｅｂブラウザを実装している。
ＲＡＭ１１３は、ＣＰＵ１１１が処理を行うために必要なワーク領域を提供する。
インターフェイス１１４は、バス１１６で接続されたＣＰＵ１１１やＲＡＭ１１３等と外部との間でデータのやり取りを行うものである。インターフェイス１１４には、上述のディスプレイ１０１と、入力装置１０２とが接続されている。入力装置１０２から入力された操作内容は、インターフェイス１１４からバス１１６に入力されるようになっている。また、周知のようにディスプレイ１０１に画像を表示するための画像データは、インターフェイス１１４から、ディスプレイ１０１に出力されるようになっている。インターフェイス１１４は、また、インターネットであるネットワーク４００を介して外部と通信を行うための公知の手段である送受信機構（図示を省略）に接続されており、それにより、クライアント１００は、ネットワーク４００を介してデータを送信することと、ネットワーク４００を介してデータを受信することとが可能になっている。かかるネットワーク４００を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、クライアント１００がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク４００から受取ったデータは、インターフェイス１１４により受取られるようになっており、インターフェイス１１４から送受信機構にわたされたデータは、送受信機構によって、ネットワーク４００を介して外部、例えば、サーバ２００に送られるようになっている。
【００２８】
ＣＰＵ１１１がコンピュータプログラムを実行することにより、クライアント１００内部には、図４で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、クライアント１００を本願発明のクライアントとして機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、クライアント１００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
クライアント１００内には、本願発明の機能との関係で、アプリケーション１２１と、暗号化復号化部１２２と、送受信部１２３とが生成される。
もっとも、これらのうちアプリケーション１２１は、公知のブラウザのソフトウェア、電子メールのソフトウェア等であり、また、送受信部１２３はネットワーク４００を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。
アプリケーション１２１は、クライアント１００からサーバ２００に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またサーバ２００からクライアント１００へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション１２１は上で例示したものに限られない。アプリケーション１２１はインターフェイス１１４と接続されており、インターフェイス１１４を介して受取る入力装置１０２からの操作内容に関するデータにしたがって動作する。アプリケーション１２１はその動作の結果、暗号化してネットワーク４００を介してサーバ２００に送るべき平文のデータを生成する。このデータは暗号化復号化部１２２に送られるようになっている。アプリケーション１２１は、また、動作の結果、例えば上述した画像データを生成する。画像データはインターフェイス１１４に送られ、そこからディスプレイ１０１に送られるようになっている。
また、送受信部１２３は、サーバ２００等とネットワーク４００を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部１２３は、少なくともＴＣＰ／ＩＰを用いてネットワーク４００を介しての通信を行えるようになっている。送受信部１２３は、送受信機構がネットワーク４００から受取ったデータをインターフェイス１１４を介して受取る。送受信部１２３は、インターフェイス１１４を介して送受信機構から受取ったデータを暗号化復号化部１２２へ送るようになっている。また、送受信部１２３は、暗号化復号化部１２２からデータを受取る場合がある。送受信部１２３はその暗号化復号化部１２２から受取ったデータをインターフェイス１１４に送り、送受信機構からネットワーク４００を介してサーバ２００へ送るようになっている。
【００２９】
暗号化復号化部１２２は、簡単にいうと、送受信部１２３から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション１２１から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ２００とクライアント１００の互いの認証のために必要な処理を行うものである。つまり、暗号化復号化部１２２は、本願発明におけるクライアント１００とサーバ２００の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをクライアントとして機能させるためのコンピュータプログラムにより、クライアント１００内に生成されるものであると言える。
また、暗号化復号化部１２２には、入力装置１０２から入力された操作内容についてのデータが、インターフェイス１１４を介して入力される場合がある。
【００３０】
暗号化復号化部１２２の中には入力部１２２Ａ、主制御部１２２Ｂ、クライアント解生成部１２２Ｃ、解データ記録部１２２Ｄ、クライアント第１暗号化復号化部１２２Ｅ、クライアント第２暗号化復号化部１２２Ｆ、出力部１２２Ｇ、認証部１２２Ｈ、及び公開鍵暗号化部１２２Ｉが生成される（図５）。
【００３１】
入力部１２２Ａは、インターフェイス１１４又はアプリケーション１２１からデータを受取るものである。インターフェイス１１４を介して入力装置１０２から操作内容についてのデータが入力された場合には、入力部１２２Ａは、それを主制御部１２２Ｂに送るようになっている。また、入力部１２２Ａには後述するように、サーバ２００から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス１１４、送受信部１２３を介して送られてくることがある。そのデータを受取ったら入力部１２２Ａは、それをクライアント第２暗号化復号化部１２２Ｆに送るようになっている。入力部１２２Ａには、また、後述するように、サーバ２００から暗号化された状態で送られてきたサーバ証明書及びＳＳＬ証明書のデータが、インターフェイス１１４、送受信部１２３を介して入力される場合がある。かかるデータを受取ったら入力部１２２Ａは、それをクライアント第１暗号化復号化部１２２Ｅに送るようになっている。入力部１２２Ａはまた、アプリケーション１２１から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからサーバ２００に送られることを意図したものであるが、このデータを受取ったら入力部１２２Ａは、そのデータをクライアント第２暗号化復号化部１２２Ｆに送るようになっている。
【００３２】
主制御部１２２Ｂは、暗号化復号化部１２２全体の制御を行うものである。主制御部１２２Ｂは上述のように、入力部１２２Ａから操作内容についてのデータを受取る場合があり、それを受取った場合には、それに基づいた指示を適宜暗号化復号化部１２２内の機能ブロックに送るようになっている。例えば、あるデータを受取った場合、主制御部１２２Ｂは、クライアント解生成部１２２Ｃに対して解を生成せよとの指示を送るようになっている。
また、主制御部１２２Ｂは、予めインストールされた、ＳＳＬ証明書を保持している。ＳＳＬ証明書は、従来からのものと同じでよく、認証局の情報が記載され、その認証局の公開鍵が埋め込まれており、またそのＳＳＬ証明書の正当性を証明するための、そのＳＳＬ証明書を発行した認証局の電子署名（ＳＳＬ証明書がルート証明書である場合には、ルート認証局自体の電子署名）が付されている。ＳＳＬ証明書は、後述するようなタイミングで認証部１２２Ｈに送られるようになっている。ＳＳＬ証明書は、アプリケーション（例えばブラウザ）にプリインストールされているか、或いは各ユーザが自分でアプリケーションに組込む。なお、主制御部１２２Ｂに存在するＳＳＬ証明書は、従来のＳＳＬ通信の場合と同様１つとは限らない。
主制御部１２２Ｂは、また、共通鍵を生成できるようになっている。共通鍵は、必要になる都度主制御部１２２Ｂが生成する。主制御部１２２Ｂが共通鍵を生成する方法は、周知又は公知技術によれば良い。主制御部１２２Ｂは、生成した共通鍵を、公開鍵暗号化部１２２Ｉに送るようになっている。この実施形態における主制御部１２２Ｂは、後述のように認証部１２２Ｈから公開鍵を受取る場合がある。公開鍵を受取った主制御部１２２Ｂは、共通鍵を、公開鍵とともに公開鍵暗号化部１２２Ｉに送るようになっている。なお、主制御部１２２Ｂは、共通鍵を必要となる度に生成するのではなく、１つの固定の共通鍵を持っており必要となる度に公開鍵暗号化部１２２Ｉに送るようになっていても構わない。
【００３３】
クライアント解生成部１２２Ｃは、解を連続して生成することのできるものとされている。解は、数字、文字、記号の少なくとも１つの羅列である。後述するように、サーバ２００にはサーバ解生成部が存在し、サーバ解生成部も連続して解を生成するようになっているが、サーバ解生成部が生成する解と、クライアント解生成部１２２Ｃが生成する解とを比較した場合、共通条件下で生成された解同士を比較すれば両者は常に一致するようになっている。簡単に言えば、クライアント解生成部１２２Ｃと、サーバ解生成部とは同期されており、或いはクライアント解生成部１２２Ｃで生成される解と、サーバ解生成部で生成される解とは同期されている。それが可能な限り、クライアント解生成部１２２Ｃ及びサーバ解生成部で解を生成する方法はどのようなものでもよい。
クライアント解生成部１２２Ｃとサーバ解生成部で解を生成する方法が、上述の条件が充足される限りどのようなものでもよいのは既に述べたとおりである。そのような技術は既に、ワンタイムパスワードの生成の技術として完成し、実用されている。クライアント解生成部１２２Ｃ及びサーバ解生成部では、そのような技術を流用することができる。サーバ解生成部でも同じであるからクライアント解生成部１２２Ｃについてのみに言及するが、より詳細には、クライアント解生成部１２２Ｃは、例えば、ある初期値に対して決められた演算を行うことで解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て…、という処理を繰り返すことで、連続して解を生成するものとすることができる。このような技術は、擬似乱数を生成するための技術として周知である。
解を生成するより具体的な方法について説明する。
解を生成するには、ある初期値（以下の、（ａ）、（ｃ）のように２つ以上の場合もある）を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期値依存性のある擬似乱数となる。
上述の解を作るのに使われる関数の例として、以下の（ａ）〜（ｃ）を挙げる。以下の（ａ）〜（ｃ）はいずれも、Ｎ番目の解であるＸＮを作るための式である。また、Ｐ、Ｑ、Ｒ、Ｓは自然数である。
（ａ）（ＸＮ）＝（ＸＮ−１）Ｐ＋（ＸＮ−２）Ｑ
（ｂ）（ＸＮ）＝（ＸＮ−１）Ｐ
（ｃ）（ＸＮ）＝（ＸＮ−１）Ｐ（ＸＮ−２）Ｑ（ＸＮ-3）R（ＸＮ−4）S
（ａ）は、過去の解２つを用い、それらをそれぞれＰ乗とＱ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解２つを用い、それらをＰ乗とＱ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。
（ｂ）は、過去の解１つを用い、それをＰ乗したものの桁数を上述のように整理したものを新しい解とするものである。
（ｃ）は、過去の解４つを用い、それらをそれぞれＰ乗、Ｑ乗、Ｒ乗、Ｓ乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
上述の（ａ）〜（ｃ）は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の（ａ）〜（ｃ）を順番に用いる等の変化を加えることも可能である。また、上述の解に、時間依存性を与えれば、つまりそのときの時刻に合わせた変化を加えるようにすることもできる。
いずれにせよ、サーバ２００にあるサーバ解生成部と、クライアント解生成部１２２Ｃとは、上述の如く、解を同期させられるようにされている。
これには限られないが、この実施形態のクライアント解生成部１２２Ｃは上記（ａ）のアルゴリズムを用いて解を生成することとしている。その場合、新しい解を生成するには、初期値乃至過去の解が必要となる。解データ記録部１２２Ｄには当初初期値が記録されており、クライアント解生成部１２２Ｃが新しい解を生成するたびに、初期値が新しい解により上書きされ、その新しい解が更に新しい解により上書きされるようになっている。解データ記録部１２２Ｄには、このように初期値又は解が記録されており、クライアント解生成部１２２Ｃは新しい解を生成するたびに、解データ記録部１２２Ｄから新しい解を読みだすようになっている。
クライアント解生成部１２２Ｃは、また、解を生成した場合、それをクライアント第１暗号化復号化部１２２Ｅ又は出力部１２２Ｇに送るようになっている。
【００３４】
クライアント第１暗号化復号化部１２２Ｅは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも復号化の処理を行えれば足りる。クライアント第１暗号化復号化部１２２Ｅは、サーバ２００の後述するサーバ第１暗号化復号化部で暗号化されたデータを少なくとも復号化できるようになっている。クライアント第１暗号化復号化部１２２Ｅでの暗号化、復号化には、解が使われる。上述のようにクライアント解生成部１２２Ｃで生成された解はクライアント解生成部１２２Ｃからクライアント第１暗号化復号化部１２２Ｅに送られるが、その解はクライアント第１暗号化復号化部１２２Ｅで上述の復号化が行われる際に使用される。他方、クライアント第１暗号化復号化部１２２Ｅには、入力部１２２Ａから暗号化されたサーバ証明書及びＳＳＬ証明書のデータが送られてくる。このサーバ証明書及びＳＳＬ証明書のデータは、後述するようにサーバ２００から送られてくるものであり、これも後述するようにサーバ２００のサーバ第１暗号化復号化部で暗号化されたものである。後述するように、クライアント第１暗号化復号化部１２２Ｅは、この暗号化されたサーバ証明書及びＳＳＬ証明書のデータを、解を用いて復号化することができるようになっている。
クライアント第１暗号化復号化部１２２Ｅは、復号化したサーバ証明書及びＳＳＬ証明書のデータを、認証部１２２Ｈに送るようになっている。
【００３５】
認証部１２２Ｈは、サーバ２００が正当なものかの認証、言い換えれば、サーバ２００から送られてきたサーバ証明書が正当なものかの認証を行う。かかる認証には、主制御部１２２Ｂから受取った元々クライアント１００内にあったＳＳＬ証明書と、クライアント第１暗号化復号化部１２２Ｅから受取った、元々はサーバ２００にあったサーバ証明書とＳＳＬ証明書とが用いられる。
かかる認証をどのように行うかについては追って説明を行うこととするが、いずれにせよかかる認証の方法は既存のＳＳＬ通信における、ＳＳＬ証明書を用いたサーバ証明書の認証の方法に倣うことができ、この実施形態ではそうしている。かかる部分を変えなければ、この実施形態のＳＳＬ通信システムで実行される暗号化通信は、ＳＳＬ通信に僅かな変更を加えるだけで実施できるものとなる。
認証部１２２Ｈは、サーバ証明書が正当なものであると認証したら、そのサーバ証明書に含まれていた公開鍵をサーバ証明書から取出し、主制御部１２２Ｂに送るようになっている。
【００３６】
公開鍵暗号化部１２２Ｉは、公開鍵を用いた暗号化を行うものである。上述したように、公開鍵暗号化部１２２Ｉは、主制御部１２２Ｂから公開鍵と共通鍵とを受取るようになっている。これらを受け取ったら公開鍵暗号化部１２２Ｉは、共通鍵を公開鍵で暗号化するようになっている。
従来のＳＳＬ通信においても、クライアントは自らが持つ共通鍵を公開鍵を用いて暗号化してサーバに送るようになっている。公開鍵暗号化部１２２Ｉは、その従来から存在するＳＳＬ通信における機能を用いて実現することができる。
なお、公開鍵暗号化部１２２Ｉは、暗号化した共通鍵のデータを出力部２２２Ｇに送るようになっている。
【００３７】
クライアント第２暗号化復号化部１２２Ｆは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、主制御部１２２Ｂから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション１２１から入力部１２２Ａを介して送られてきた平文のデータであり、また復号化の対象となるのは、サーバ２００から、ネットワーク４００、送受信機構、インターフェイス１１４、入力部１２２Ａを介して送られてきた暗号化されたデータである。
クライアント第２暗号化復号化部１２２Ｆで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよく、例えばＳＳＬの本願の背景技術で述べた（３）の通信で用いられている公知或いは周知の手法をこれに応用することができる。例えば、クライアント第２暗号化復号化部１２２Ｆは、DES暗号法を実行するものとすることができる。
クライアント第２暗号化復号化部１２２Ｆは、アプリケーション１２１から送られてきたデータを暗号化したものを出力部１２２Ｇに送るようになっているとともに、サーバ２００から送られてきた暗号化されたデータを復号化したものを出力部１２２Ｇに送るようになっている。
【００３８】
出力部１２２Ｇは、暗号化復号化部１２２内で生成されたデータを外部に出力するためのものである。
出力部１２２Ｇには、クライアント解生成部１２２Ｃから解が送られてくる場合があり、またクライアント第２暗号化復号化部１２２Ｆから、アプリケーション１２１から送られてきたデータをクライアント第２暗号化復号化部１２２Ｆで暗号化したものと、サーバ２００から送られてきた暗号化されたデータをクライアント第２暗号化復号化部１２２Ｆで復号化したものとが送られてくる場合がある。
出力部１２２Ｇは、これらのうち、解と、アプリケーション１２１から送られてきたデータをクライアント第２暗号化復号化部１２２Ｆで暗号化したものとを送受信部１２３を介してインターフェイス１１４に送るようになっている。インターフェイス１１４に送られたこれらデータは、送受信機構、ネットワーク４００を介してサーバ２００に送られるようになっている。出力部１２２Ｇは、また、公開鍵暗号化部１２２Ｉから、暗号化された共通鍵のデータを受取る場合がある。公開鍵暗号化部１２２Ｉから送られてきた暗号化された共通鍵のデータは、上述の解等と同じようにしてサーバ２００に送られる。
出力部１２２Ｇは、また、サーバ２００から送られてきた暗号化されたデータをクライアント第２暗号化復号化部１２２Ｆで復号化したものをアプリケーション１２１に送るようになっている。それらデータは、アプリケーション１２１で使用される。
【００３９】
次に、サーバ２００の構成について説明する。
サーバ２００は、ハードウェアとして見た場合には、既存の公知又は周知のサーバで構わない。また、そのハードウェア構成も一般的なものでよく、大雑把に言えば、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、インターフェイス１１４をバス１１６で接続するという、クライアント１００のハードウェア構成を踏襲することができる。もっとも、サーバ２００は通常、ＨＤＤその他の大容量記録装置を有するのが一般的であろう。
サーバ２００が備えるＣＰＵ、ＲＯＭ、ＲＡＭ、インターフェイス、バス、及び大容量記録装置の構成、機能は、クライアント１００におけるそれらの構成、機能と変わらない。また、サーバ２００が備えるインターフェイスには、クライアント１００が備えていたのと同様の、サーバ２００外の機器とネットワーク４００を介しての通信を行うための送受信機構が接続されている。サーバ２００が備えるインターフェイスには、クライアント１００が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
【００４０】
サーバ２００の内部におけるＲＯＭ、大容量記録装置等に記録されていたコンピュータプログラムを実行することによって、サーバ２００の内部には以下に説明するような機能ブロックが生成される。なお、以下の機能ブロックは、サーバ２００を本願発明のサーバとして機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、サーバ２００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。また、上記コンピュータプログラムのサーバ２００へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、クライアント１００の場合と同様である。
サーバ２００内には、本願発明の機能との関係で、アプリケーション２２１と、暗号化復号化部２２２と、送受信部２２３とが生成される（図６）。
もっとも、これらのうちアプリケーション２２１は、クライアント１００のブラウザに所望の画像を表示させるための公知のソフトウェア、クライアント１００を操作するユーザの意思決定に基いてインターネットバンキングでの決済を実行するソフトウェア等であり、また、送受信部２２３はネットワーク４００を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。この事情は、クライアント１００の場合と同様である。
アプリケーション２２１は、サーバ２００からクライアント１００に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またクライアント１００からサーバ２００へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション２２１は上で例示したものに限られない。アプリケーション２２１はインターフェイスと接続されており、インターフェイスを介して受取る入力装置からの操作内容に関するデータにしたがって、或いは予め作成されたプログラムにしたがって自動的に動作する。アプリケーション２２１はその動作の結果、暗号化してネットワーク４００を介してクライアント１００に送るべき平文のデータを生成する。このデータは暗号化復号化部２２２に送られるようになっている。アプリケーション２２１は、また、動作の結果、例えば画像データを生成する場合がある。画像データはインターフェイスに送られ、そこから、サーバ２００の備える図外のディスプレイに送られて画像を表示する。
また、送受信部２２３は、クライアント１００等とネットワーク４００を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部２２３は、少なくともＴＣＰ／ＩＰを用いてネットワーク４００を介しての通信を行えるようになっている。送受信部２２３は、送受信機構がネットワーク４００から受取ったデータをインターフェイスを介して受取る。送受信部２２３は、インターフェイスを介して送受信機構から受取ったデータを暗号化復号化部２２２へ送るようになっている。また、送受信部２２３は、暗号化復号化部２２２からデータを受取る場合がある。送受信部２２３はその暗号化復号化部２２２から受取ったデータをインターフェイスに送り、送受信機構からネットワーク４００を介してクライアント１００へ送るようになっている。
【００４１】
暗号化復号化部２２２は、簡単にいうと、送受信部２２３から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション２２１から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ２００とのクライアント１００との互いの認証のために必要な処理を行うものである。つまり、暗号化復号化部２２２は、本願発明におけるクライアント１００とサーバ２００の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをサーバとして機能させるためのコンピュータプログラムにより、サーバ２００内に生成されるものであると言える。
また、暗号化復号化部２２２には、入力装置から入力された操作内容についてのデータが、インターフェイスを介して入力される場合がある。
【００４２】
暗号化復号化部２２２の中には入力部２２２Ａ、主制御部２２２Ｂ、サーバ解生成部２２２Ｃ、解データ記録部２２２Ｄ、サーバ第１暗号化復号化部２２２Ｅ、サーバ第２暗号化復号化部２２２Ｆ、出力部２２２Ｇ、認証部２２２Ｈ、秘密鍵復号化部２２２Ｉが生成される（図７）。
【００４３】
入力部２２２Ａは、インターフェイス又はアプリケーション２２１からデータを受取るものである。入力部２２２Ａには後述するように、クライアント１００から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス、送受信部２２３を介して送られてくることがある。そのデータを受取ったら入力部２２２Ａは、それをサーバ第２暗号化復号化部２２２Ｆに送るようになっている。入力部２２２Ａには、また、後述するように、クライアント１００から送られてきた解のデータが、インターフェイスを介して入力される場合がある。かかるデータを受取ったら入力部２２２Ａは、それを主制御部２２２Ｂに送るようになっている。入力部２２２Ａには、また、後述するように、クライアント１００から送られてきた暗号化された共通鍵のデータが、インターフェイスを介して入力される場合がある。かかるデータを受取ったら入力部２２２Ａは、それを主制御部２２２Ｂに送るようになっている。入力部２２２Ａはまた、インターフェイスを介してアプリケーション２２１から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからクライアント１００に送られることを意図したものであるが、このデータを受取ったら入力部２２２Ａは、そのデータをサーバ第２暗号化復号化部２２２Ｆに送るようになっている。
【００４４】
主制御部２２２Ｂは、暗号化復号化部２２２全体の制御を行うものである。主制御部２２２Ｂは上述のように、入力部２２２Ａから、クライアント１００から送られてきた解のデータを受取る場合があり、それを受取った場合には、それを認証部２２２Ｈへ送るようになっているとともに、サーバ解生成部２２２Ｃに対して解を生成せよとの指示を送るようになっている。主制御部２２２Ｂは、また、認証部２２２Ｈから後述する認証データを受取ることがあり、それを受取った場合には、サーバ解生成部２２２Ｃに対して解を生成せよとの指示を送るようになっている。
主制御部２２２Ｂは、サーバ証明書と、ＳＳＬ証明書とを保有している。これらは、通常は、サーバ２００の管理者が、サーバ証明書、或いはＳＳＬ証明書を発行する認証局から入手し、サーバ２００にインストールする。サーバ証明書、ＳＳＬ証明書とも、現在のＳＳＬ通信で用いられている通常のものでよく、この実施形態ではそうされている。ＳＳＬ証明書はクライアント１００の説明の中で説明した通りのものであり、サーバ証明書は、サーバ２００の情報が記載され、そのサーバの公開鍵が埋め込まれており、またそのサーバ証明書の正当性を証明するための、そのサーバ証明書を発行した認証局の電子署名が付されている。サーバ証明書は１つであるが、ＳＳＬ証明書は１つとは限らない。これも従来からのＳＳＬ通信の場合と同様である。主制御部２２２Ｂは、サーバ証明書及びＳＳＬ証明書を後述のタイミングでサーバ第１暗号化復号化部２２２Ｅに送るようになっている。
【００４５】
サーバ解生成部２２２Ｃは、クライアント解生成部１２２Ｃ同様に、解を連続して生成することのできるものとされている。サーバ解生成部２２２Ｃで連続して生成される解のそれぞれは、共通条件下においてクライアント解生成部１２２Ｃで連続して生成される解と一致するようになっている。この実施形態では、サーバ解生成部２２２Ｃで解を連続して生成する方法と、クライアント解生成部１２２Ｃで解を連続して生成する方法とは共通である。
解データ記録部２２２Ｄには、新たな解を生成するためのデータ、つまり、クライアント１００の解データ記録部１２２Ｄに記録されていたのと同様の初期値、或いは過去の解のデータが記録されている。もっとも、サーバ２００は、多数のクライアント１００の認証を行う必要がある。したがって、サーバ２００は、各クライアント１００を識別するためのデータ（この実施形態では各クライアント１００のＩＰアドレスを、各クライアント１００を識別するためのデータとして利用することとしているが、他のデータ例えば各クライアント１００が販売された段階から各クライアント１００に割り振られている、クライアント１００の販売業者や認証を行うための組織等により厳格に管理されている各クライアント１００にユニークな識別子等を、かかるデータとして利用することもできる。）と各クライアント１００毎の新たな解を生成するためのデータとを、互いに紐付けた状態で記録している。つまり、この実施形態では、各クライアント１００のクライアント解生成部１２２Ｃで連続して生成される解の列はそれぞれ異なるものとなっているが、サーバ２００の側では、各クライアント１００で生成されるそれぞれ異なる解の列と同じ解の列を、各クライアント１００に対応して生成することができるようになっている。言い換えれば、サーバ２００にあるサーバ解生成部２２２Ｃと、各クライアント１００にあるクライアント解生成部１２２Ｃのそれぞれとは、解を同期させられるようにされている。
サーバ解生成部２２２Ｃは、解を生成した場合、それをサーバ第１暗号化復号化部２２２Ｅか又は認証部２２２Ｈに送るようになっている。サーバ解生成部２２２Ｃが解を認証部２２２Ｈに送るときには、解データ記録部２２２Ｄに記録されていたものであり、その解を生成する際に参照された、クライアント１００を特定するためのデータをも認証部２２２Ｈに送るようになっている。
【００４６】
サーバ第１暗号化復号化部２２２Ｅは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも暗号化の処理を行えれば足りる。サーバ第１暗号化復号化部２２２Ｅが暗号化したデータは、クライアント１００の少なくともクライアント第１暗号化復号化部１２２Ｅで復号化できるようになっている。サーバ第１暗号化復号化部２２２Ｅでの暗号化、復号化には、クライアント第１暗号化復号化部１２２Ｅでの暗号化、復号化の場合と同様に、解が使われる。上述のようにサーバ解生成部２２２Ｃで生成された解はサーバ解生成部２２２Ｃからサーバ第１暗号化復号化部２２２Ｅに送られるが、その解はサーバ第１暗号化復号化部２２２Ｅで上述の暗号化が行われる際に使用される。他方、サーバ第１暗号化復号化部２２２Ｅには、主制御部２２２Ｂからサーバ証明書及びＳＳＬ証明書のデータが送られてくる。このサーバ証明書及びＳＳＬ証明書のデータは、後述するようにクライアント１００に送られるものであり、サーバ第１暗号化復号化部２２２Ｅにて暗号化される。この暗号化されたサーバ証明書及びＳＳＬ証明書のデータが、後述するように、クライアント第１暗号化復号化部１２２Ｅで復号化され、サーバ証明書及びＳＳＬ証明書のデータに戻されるのである。
サーバ第１暗号化復号化部２２２Ｅは、暗号化したサーバ証明書及びＳＳＬ証明書のデータを出力部２２２Ｇに送るようになっている。
【００４７】
秘密鍵復号化部２２２Ｉは、秘密鍵を用いて復号化を行うものである。上述のサーバ証明書に埋め込まれた公開鍵と対になった秘密鍵を秘密鍵復号化部２２２Ｉは備えている。
秘密鍵復号化部２２２Ｉには、主制御部２２２Ｂから、クライアント１００から送られてきた、公開鍵で暗号化された共通鍵のデータが送られてくる場合がある。秘密鍵復号化部２２２Ｉは、秘密鍵を用いて暗号化された共通鍵のデータを復号化して元の共通鍵のデータに戻せるようになっている。
従来のＳＳＬ通信においても、クライアントは自らが持つ共通鍵を公開鍵を用いて暗号化してサーバに送るようになっている。そして、サーバはその暗号化された共通鍵を秘密鍵を用いて復号化するようになっている。したがって、秘密鍵復号化部２２２Ｉは、その従来から存在するＳＳＬ通信における機能を用いて実現することができる。
秘密鍵復号化部２２２Ｉは、上記復号化の処理によって得られた共通鍵のデータを、サーバ第２暗号化復号化部２２２Ｆに送るようになっている。
【００４８】
サーバ第２暗号化復号化部２２２Ｆは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、秘密鍵復号化部２２２Ｉから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション２２１から入力部２２２Ａを介して送られてきた平文のデータであり、また復号化の対象となるのは、クライアント１００から、ネットワーク４００、送受信機構、インターフェイス、入力部２２２Ａを介して送られてきた暗号化されたデータである。
サーバ第２暗号化復号化部２２２Ｆで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよいが、同じ共通鍵を用いた場合には、ここで暗号化されたデータはクライアント第２暗号化復号化部１２２Ｆで復号化でき、クライアント第２暗号化復号化部１２２Ｆで暗号化されたデータは、ここで復号化できるものとされる。
サーバ第２暗号化復号化部２２２Ｆは、アプリケーション２２１から送られてきたデータを暗号化したものを出力部２２２Ｇに送るようになっているとともに、クライアント２００から送られてきた暗号化されたデータを復号化したものを出力部２２２Ｇに送るようになっている。
【００４９】
認証部２２２Ｈは、クライアント１００が正当か否かの判断、つまりクライアント１００の認証を行うためのものである。上述したように、認証部２２２Ｈには主制御部２２２Ｂから、クライアント１００から送られてきた解のデータが送られてくる。また、解データ記録部２２２Ｄから解のデータと、その解を生成する際に参照されたクライアント１００を特定するためのデータが認証部２２２Ｈに送られる。認証部２２２Ｈは、これら３つのデータを用いてクライアント１００が正当か否かについての判断を行い、クライアント１００が正当であると認証したときに認証データを生成する。なお、具体的な認証の方法については追って説明する。
かかる認証が行われた場合には、認証部２２２Ｈは認証データを生成し、その認証データを主制御部２２２Ｂに送るようになっている。
【００５０】
出力部２２２Ｇは、暗号化復号化部２２２内で生成されたデータを外部に出力するためのものである。
出力部２２２Ｇには、サーバ第２暗号化復号化部２２２Ｆから、アプリケーション２２１から送られてきたデータをサーバ第２暗号化復号化部２２２Ｆで暗号化したものと、クライアント１００から送られてきた暗号化されたデータをサーバ第２暗号化復号化部２２２Ｆで復号化したものとが送られてくる場合がある。
出力部２２２Ｇは、これらのうち、アプリケーション２２１から送られてきたデータをサーバ第２暗号化復号化部２２２Ｆで暗号化したものを、送受信部２２３を介してインターフェイスに送るようになっている。インターフェイスに送られたこれらデータは、送受信機構、ネットワーク４００を介してクライアント１００に送られるようになっている。出力部２２２Ｇは、また、サーバ第１暗号化復号化部２２２Ｅから、暗号化されたサーバ証明書及びＳＳＬ証明書のデータを受取る場合がある。このデータも、上記の場合と同様に、クライアント１００に送られるようになっている。
出力部２２２Ｇは、また、クライアント１００から送られてきた暗号化されたデータをサーバ第２暗号化復号化部２２２Ｆで復号化したものをアプリケーション２２１に送るようになっている。それらデータは、アプリケーション２２１で使用される。
【００５１】
次に、クライアント１００とサーバ２００を含んでなるこのＳＳＬ通信システムの使用方法、及び動作について説明する。
かかる説明には、主に図８を用いる。
【００５２】
まず、ユーザは、自らのクライアント１００を操作し、クライアント１００とサーバ２００との間での通信を試みる。例えば、ユーザは、サーバ２００に接続して、サーバ２００が提供するウェブサイトを閲覧しようとする。
そのために、ユーザはまず、クライアント１００上のアプリケーション１２１を立ち上げる（Ｓ１００１）。ウェブサイトを閲覧するためのアプリケーション１２１であれば、通常は周知のブラウザを立ち上げることになろう。ユーザは、入力装置１０２を適宜操作してブラウザを立ち上げる。ブラウザを立ち上げるための操作内容は、入力装置１０２からインターフェイス１１４を介してアプリケーション１２１に送られる。それによりアプリケーション１２１が動作し、画像データがインターフェイス１１４を介してディスプレイ１０１に送られることにより、ブラウザがクライアント１００のディスプレイ１０１上に表示される。
【００５３】
その状態でユーザは、サーバ２００が提供するウェブサイトを閲覧しようとする。通常は、サーバ２００のウェブアドレス（URL）をブラウザ上で指定することにより、クライアント１００はサーバ２００との通信を開始する。このとき、クライアント１００は、まず、クライアント１００の認証に必要な処理を始める。具体的には、サーバ２００のウェブアドレスをユーザがブラウザ上で指定すると、その操作内容のデータが入力装置１０２からインターフェイス１１４を介して、入力部１２２Ａに送られてくる。この操作内容のデータは入力部１２２Ａから、主制御部１２２Ｂに送られる。これを受取った主制御部１２２Ｂは、クライアント解生成部１２２Ｃに解を生成せよとの指示を送る。クライアント解生成部１２２Ｃは、解を生成する（Ｓ１００２）。
クライアント解生成部１２２Ｃが解を生成する方法は上述した通りである。クライアント解生成部１２２Ｃが解を生成するのが初めてなのであれば、クライアント解生成部１２２Ｃは解データ記録部１２２Ｄから初期値を読出し、また、解を生成するのが初めてでないのであれば、クライアント解生成部１２２Ｃは解データ記録部１２２Ｄから過去に生成した解を読みだす。そのいずれかに基いて、クライアント解生成部１２２Ｃは新たな解を生成する。生成された解は、クライアント解生成部１２２Ｃから、出力部１２２Ｇへ送られる。
【００５４】
出力部１２２Ｇは、受取った解を送受信部１２３に送る。送受信部１２３は、解のデータにＴＣＰ／ＩＰの規則にのっとってヘッダを付すなどの所定の処理を行う。このときヘッダには、クライアント１００を他のクライアント１００から識別するための情報となるクライアント１００のＩＰアドレスや、サーバ２００のウェブアドレス等が含まれる。ＳＳＬの通信では、ウェブアドレスに続けて相手方のポート番号として決まった数字（一般には４４３）の記載を行うことによりそのヘッダを含むデータがＳＳＬによる通信を求めるものであることを示すといった共通ルールがあるが、この暗号化通信でもそのようなルールに従ってもよい。いずれにせよ、そのようなヘッダが付された解のデータは、送受信部１２３から、インターフェイス１１４を介して、送受信機構に送られる。
解のデータは、送受信機構から、ネットワーク４００を介して、サーバ２００に送られる（Ｓ１００３）。なお、解のデータをクライアント１００で暗号化してからサーバ２００に送ることも可能であるが、この実施形態では暗号化しないままで解をサーバ２００に送ることとしている。
【００５５】
解は、サーバ２００によって受取られる（Ｓ２００１）。具体的には、解を含むデータは、サーバ２００の送受信機構によって受取られ、インターフェイスから、送受信部２２３に送られる。送受信部２２３は、そこから解のデータと、ヘッダに含まれていたその解を送ってきたクライアント１００のＩＰアドレスとを入力部２２２Ａへと送る。それらは、入力部２２２Ａから、主制御部２２２Ｂへと送られる。
主制御部２２２Ｂは、互いに紐付けた状態で解及びＩＰアドレスのデータを認証部２２２Ｈに送る。
他方、主制御部２２２Ｂは、そのＩＰアドレスのデータをサーバ解生成部２２２Ｃに送るとともに、サーバ解生成部２２２Ｃに解を生成せよとの指示を送る。これを受けたサーバ解生成部２２２Ｃは、解を生成する（Ｓ２００２）。サーバ解生成部２２２Ｃは、解データ記録部２２２Ｄに記録されている各クライアント１００についての新たな解を生成するためのデータ（初期値か過去の解のデータ）のうち、主制御部２２２Ｂから受取ったＩＰアドレスと紐付けられていたものを読みだす。そして、その初期値か過去の解のデータを用いて、既に述べた方法で新たな解を生成する。サーバ解生成部２２２Ｃは、生成した解と、その解を送ってきたクライアント１００を特定するＩＰアドレスとをそれらを互いに紐付けた状態で認証部２２２Ｈへと送る。
【００５６】
認証部２２２Ｈには、上述のように、主制御部２２２Ｂから送られてきた解及びＩＰアドレスが存在する。他方、認証部２２２Ｈには、サーバ解生成部２２２Ｃから送られてきた解及びＩＰアドレスが存在する。ここで、ＩＰアドレスが必要となるのは、短時間の間に複数のクライアント１００から多数の解が送られて来た場合には、認証部２２２Ｈにおいて行われる、後述する、主制御部２２２Ｂから送られてきた解とサーバ解生成部２２２Ｃから送られてきた解との対比を行うにあたり、どの解とどの解を対比すべきかが不明となることがあり得るからである。これには限られないが、この実施形態では、同じＩＰアドレスに紐付けられている主制御部２２２Ｂから送られてきた解と、サーバ解生成部２２２Ｃから送られてきた解とを比較することにより、その解を送ってきたクライアント１００が正当なものであるか否かの認証を行うこととしている。
上述したように、サーバ解生成部２２２Ｃで生成される解は、各クライアント１００のクライアント解生成部１２２Ｃで生成される解と同期させられている。したがって、クライアント１００が正当なものであれば、対比の対象となる上述の２つの解は一致するはずである。両者が一致した場合には、認証部２２２Ｈは、その解を送ってきたクライアント１００が正当なものであると認証し、その旨を示す認証データを生成する（Ｓ２００３）。
認証データは、それにより認証されたクライアント１００のＩＰアドレスと紐付けた状態で、主制御部２２２Ｂへと送られる。２つの解が一致しなかったら、認証部２２２Ｈはクライアント１００が正当でないという旨を主制御部２２２Ｂへ通知し、そこでクライアント１００とサーバ２００の間の通信を打ち切ることが可能であり、この実施形態ではそうしている。このときサーバ２００はそのクライアント１００に、クライアント１００が認証されなかったということを通知するようになっていてももちろん良い。
【００５７】
主制御部２２２Ｂは、認証データとＩＰアドレスとを受取った場合には、そのＩＰアドレスと紐付けた状態で、主制御部２２２Ｂが有するサーバ証明書及びＳＳＬ証明書をサーバ第１暗号化復号化部２２２Ｅへ送る。
他方、主制御部２２２Ｂは、サーバ証明書及びＳＳＬ証明書を、上記ＩＰアドレスと紐付けた状態でサーバ第１暗号化復号化部２２２Ｅに送るとともに、新たな解を生成せよとの指示をサーバ解生成部２２２Ｃに送る。サーバ解生成部２２２Ｃは、少なくとも１つの解を生成する（Ｓ２００４）。生成された解は、その解を生成する指示のきっかけとなったＩＰアドレスとともにサーバ第１暗号化復号化部２２２Ｅに送られる。ここで、サーバ解生成部２２２Ｃでどのような条件で解を生成するのか、例えば幾つの解を生成するのか、またそのうちのどれを（例えば、２番目に生成されたものを、或いは１００番目に生成されたものを）サーバ第１暗号化復号化部２２２Ｅに送るのかは、予め決定されており、その情報はクライアント１００と共有されている。
上述したように、サーバ第１暗号化復号化部２２２Ｅは、受取ったサーバ証明書及びＳＳＬ証明書のデータを暗号化する（Ｓ２００５）。かかる暗号化には、サーバ解生成部２２２Ｃから送られてきた解が使われる。サーバ証明書及びＳＳＬ証明書を暗号化する際に用いる解は、それらに互いに紐付けられたＩＰアドレスが同じものを選択すればよい。ここで、サーバ第１暗号化復号化部２２２Ｅで行われる暗号化は、暗号化の結果得られるデータが解に依存したものとなる。解の使い方は暗号化の結果得られるデータが解に依存する限りどのようなものでも良いが、例えば解を暗号化の鍵として用いてもよい。なお、このときそのサーバ証明書及びＳＳＬ証明書のデータと紐付けられていたＩＰアドレスのデータは暗号化しない。
暗号化されたサーバ証明書及びＳＳＬ証明書のデータは、暗号化される前のサーバ証明書及びＳＳＬ証明書のデータと紐付けられていたＩＰアドレスのデータとともに出力部２２２Ｇへと送られる。
【００５８】
出力部２２２Ｇは、それらデータを送受信部２２３へと送る。送受信部２２３は、暗号化されたサーバ証明書及びＳＳＬ証明書のデータに対して、その送信先を示すヘッダを付す。その送信先は、上述のＩＰアドレスにより特定可能である。ヘッダを付された暗号化されたサーバ証明書及びＳＳＬ証明書のデータは、送受信部２２３からインターフェイスに送られ、更には送受信機構から、ネットワーク４００を介してクライアント１００へと送られる（Ｓ２００６）。
【００５９】
クライアント１００は、暗号化されたサーバ証明書及びＳＳＬ証明書のデータを受取る（Ｓ１００４）。暗号化されたサーバ証明書及びＳＳＬ証明書のデータは、クライアント１００の送受信機構で受取られ、インターフェイス１１４を介して、送受信部１２３に送られる。送受信部１２３は、そのデータを、入力部１２２Ａに送る。
入力部１２２Ａは、暗号化されたサーバ証明書及びＳＳＬ証明書のデータをクライアント第１暗号化復号化部１２２Ｅへと送る。他方、入力部１２２Ａは、暗号化されたサーバ証明書及びＳＳＬ証明書のデータを受取った旨の通知を主制御部１２２Ｂへ送る。これを受取った主制御部１２２Ｂは、クライアント解生成部１２２Ｃに対して新たな解を生成せよとの指示を送る。
【００６０】
この指示を受取ったクライアント解生成部１２２Ｃは新たな解を少なくとも１つ生成する（Ｓ１００５）。そして、生成された解はクライアント解生成部１２２Ｃからクライアント第１暗号化復号化部１２２Ｅに送られる。
ここで、クライアント解生成部１２２Ｃでどのような条件下で解を生成するのか、例えば幾つの解を生成するのか、また、そしてそのうちのどれを（例えば、２番目に生成されたものを、或いは１００番目に生成されたものを）クライアント第１暗号化復号化部１２２Ｅに送るのかは、予め決定されており、その情報はサーバ２００と共有されている。クライアント解生成部１２２Ｃは、共通の条件下ではサーバ解生成部２２２Ｃと共通の解を連続して生成できるものとなっているのであるから、結果として、サーバ第１暗号化復号化部２２２Ｅが共通鍵のデータを暗号化するのに使用する解としてサーバ解生成部２２２Ｃが生成してサーバ第１暗号化復号化部２２２Ｅに送った解とまったく同じ解が、クライアント解生成部１２２Ｃからクライアント第１暗号化復号化部１２２Ｅへと送られることになる。
この解を用いて、クライアント第１暗号化復号化部１２２Ｅは、暗号化されたサーバ証明書及びＳＳＬ証明書のデータを復号化して、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータに戻す（Ｓ１００６）。クライアント第１暗号化復号化部１２２Ｅにおける復号化の処理は、解に依存するものであり、且つ同じ解を用いた場合には、サーバ解生成部２２２Ｃで暗号化されたデータを復号化して元の平文のデータに戻すことが可能な処理である。したがって、暗号化された共通鍵のデータは、サーバ２００の主制御部２２２Ｂが生成した通りのサーバ証明書及びＳＳＬ証明書のデータに戻る。
クライアント第１暗号化復号化部１２２Ｅは、サーバ証明書及びＳＳＬ証明書を認証部１２２Ｈへ送る。他方、サーバ証明書及びＳＳＬ証明書を受取った認証部１２２Ｈは、主制御部１２２ＢにＳＳＬ証明書を送れとの指示を送り、主制御部１２２Ｂから、元々主制御部１２２Ｂが持っていたＳＳＬ証明書を受取る。
【００６１】
この状態で、認証部１２２Ｈは、サーバ２００が適正か否かの或いはサーバ証明書が適正か否かの認証の処理を行う（Ｓ１００７）。
かかる処理は、従来のＳＳＬ通信で行われていたサーバ証明書の適正性の認証と同様の処理として実行することができる。
例えば、クライアント１００が持っていたＳＳＬ証明書と、サーバ２００から送られてきたＳＳＬ証明書とが、完全に一致したものであったとする。この状態で、サーバ２００は、自己が所有していたＳＳＬ証明書或いはそれに付されていた公開鍵は適正なものであると判断している。ここで、クライアント１００の認証部１２２Ｈは、サーバ証明書の例えば全体に対してハッシュを行って得たそのハッシュ値と、サーバ証明書に付されていた電子署名をＳＳＬ証明書に付されていた公開鍵で復号化したもの（得られた値）とを比較する。サーバ証明書に付されている電子署名は、そのサーバ証明書を発行した認証局が、サーバ証明書の例えば全体に対してハッシュを行って得たハッシュ値をその認証局が有する秘密鍵で暗号化したものとされている。したがって、電子署名を含めてそのサーバ証明書に、そのサーバ証明書が認証局で発行されて以降、悪意の第三者による改竄を含むいかなる変更もなかった場合には、上述の２つの値は必ず一致する。これにより、サーバ証明書は適正なものであると認証されるのである。
実際のＳＳＬ通信では、自己のＳＳＬ証明書（ルート証明書）に自己の電子署名を行うことによりそのＳＳＬ証明書の適正性を証明できるとされるルート認証局を頂点として、認証局にはその信用性の度合いにより様々なレベルのものがあり、ＳＳＬ証明書にもその信用性の度合いにより様々なレベルのものがある。ＳＳＬ通信のかかる認証では、場合により複数のＳＳＬ証明書を多段に用い、クライアント１００の認証部１２２Ｈが信用できるとしているＳＳＬ証明書を用いて、サーバ証明書の適正さを認証する。本願の認証部１２２Ｈも、そのような処理を実行することができる。
いずれにせよ、認証部１２２Ｈがサーバ証明書を適正なものだと認証した場合には、認証部１２２Ｈは、サーバ証明書からそれに埋め込まれていた公開鍵を抜き出してそれを主制御部１２２Ｂに送る。主制御部１２２Ｂは、その公開鍵を、主制御部１２２Ｂが持っていた共通鍵とともに、公開鍵暗号化部１２２Ｉに送る。
他方、主制御部１２２Ｂは、共通鍵のデータをクライアント第２暗号化復号化部１２２Ｆに送る。この共通鍵は、もちろん暗号化されていない。これにより、クライアント第２暗号化復号化部１２２Ｆは、共通鍵方式の暗号化通信を行うために必要となる共通鍵を持った状態となる。
【００６２】
共通鍵と公開鍵とを受取った公開鍵暗号化部１２２Ｉは、従来のＳＳＬ通信の場合と同様に、共通鍵を公開鍵を用いて暗号化する（Ｓ１００８）。
暗号化された共通鍵は、公開鍵暗号化部１２２Ｉから出力部１２２Ｇへと送られる。
【００６３】
暗号化された共通鍵のデータは、出力部１２２Ｇで必要に応じてヘッダを付された上で、インターフェイス１１４から送受信機構に送られ、ネットワーク４００を介してサーバ２００に送られる（Ｓ１００９）。
サーバ２００は、その送受信機構で暗号化された共通鍵のデータを受取る（Ｓ２００７）。暗号化された共通鍵のデータは、インターフェイス、送受信部２２３を経て、入力部２２２Ａへ送られ、入力部２２２Ａから主制御部２２２Ｂを経て、秘密鍵復号化部２２２Ｉへと送られる。
上述したように、秘密鍵復号化部２２２Ｉは、秘密鍵を有しており、その秘密鍵と対になった公開鍵で暗号化されたデータを復号化できるようなものとされている。そして、暗号化された共通鍵を暗号化するときに用いられた公開鍵、つまりサーバ２００からクライアント１００へ送られたサーバ証明書に埋め込まれていた公開鍵は、サーバ２００における秘密鍵復号化部２２２Ｉが持っていた秘密鍵と対になったものなのであるから、秘密鍵復号化部２２２Ｉは、主制御部２２２Ｂから受取った暗号化された共通鍵を復号化することができる。
秘密鍵復号化部２２２Ｉは秘密鍵を用いて暗号化されていた共通鍵を復号化する（Ｓ２００８）。
復号化された共通鍵は、秘密鍵復号化部２２２Ｉからサーバ第２暗号化復号化部２２２Ｆへと送られる。
【００６４】
以上の処理により、サーバ２００におけるサーバ第２暗号化復号化部２２２Ｆと、クライアント１００におけるクライアント第２暗号化復号化部１２２Ｆとは、共通の共通鍵を持った状態となる。
【００６５】
サーバ２００におけるサーバ第２暗号化復号化部２２２Ｆと、クライアント１００におけるクライアント第２暗号化復号化部１２２Ｆとが、共通の共通鍵を持った状態となったのであれば、サーバ２００とクライアント１００とは、従来のＳＳＬ通信の上記（３）の過程で実行していたと同様の暗号化通信を行えるようになる。
かかる暗号化通信は、必要に応じてクライアント１００からサーバ２００に、或いはサーバ２００からクライアント１００に、暗号化したデータが送られることにより実現される（Ｓ１０１０、Ｓ２００９）。
例えば、クライアント１００のアプリケーション１２１で、暗号化してサーバ２００に送るべきデータが生成され、そのデータがアプリケーション１２１から、暗号化復号化部１２２に送られる。暗号化復号化部１２２の入力部１２２Ａがそのデータを受取ると、そのデータはクライアント第２暗号化復号化部１２２Ｆに送られ、そこで共通鍵を用いて暗号化される。暗号化されたそのデータは、出力部１２２Ｇから、送受信部１２３へ送られ、上述のようなヘッダを付す処理が必要に応じて行われた上で、インターフェイス１１４から送受信機構に送られ、そこからネットワーク４００を介して、サーバ２００に送られる。
サーバ２００は、その送受信機構でそのデータを受取る。そのデータは、サーバ２００の送受信機構からインターフェイスに送られ、そして送受信部２２３を経て、入力部２２２Ａに送られる。その暗号化されたデータは、サーバ第２暗号化復号化部２２２Ｆで共通鍵を用いて復号化され、出力部２２２Ｇへと送られる。出力部２２２Ｇは復号化されたそのデータを、アプリケーション２２１に送り、アプリケーション２２１はそのデータを適宜用いる。
他方、サーバ２００のアプリケーション２２１が、暗号化してクライアント１００に送るべき平文のデータを生成する場合がある。アプリケーション２２１がそのようなデータを生成した場合、そのデータは、暗号化復号化部２２２中の入力部２２２Ａに送られる。そのデータは、入力部２２２Ａからサーバ第２暗号化復号化部２２２Ｆへと送られ、そこで共通鍵を用いて暗号化される。サーバ第２暗号化復号化部２２２Ｆで暗号化されたそのデータは、出力部２２２Ｇを介して送受信部２２３に送られる。送受信部２２３では、その暗号化されたデータにヘッダを付す上述の如き処理が必要に応じて行われる。かかる処理が行われたそのデータは、送受信部２２３からインターフェイスを介してサーバ２００の送受信機構に送られ、そこからネットワーク４００を介してクライアント１００に送られる。
クライアント１００は、その送受信機構でそのデータを受取る。そのデータは、クライアント１００の送受信機構からインターフェイス１１４に送られ、そして送受信部１２３を経て、入力部１２２Ａに送られる。その暗号化されたデータは、クライアント第２暗号化復号化部１２２Ｆで共通鍵を用いて復号化され、出力部１２２Ｇへと送られる。出力部１２２Ｇは復号化されたそのデータを、アプリケーション１２１に送り、アプリケーション１２１はそのデータを適宜用いる。
以上のようにして、サーバ２００とクライアント１００との間で共通鍵を用いた共通鍵方式の暗号化通信が行われる。
上述の暗号化通信において暗号化、復号化が行われるのは、サーバ２００においては、アプリケーション２２１と、ＴＣＰ／ＩＰの通信を行う送受信部２２３との間にある暗号化復号化部２２２であり、クライアント１００においては、アプリケーション１２１と、ＴＣＰ／ＩＰの通信を行う送受信部１２３との間にある暗号化復号化部１２２である。アプリケーションと、ＴＣＰ／ＩＰとの間で暗号化と復号化の処理を実行するというのは、従来からのＳＳＬ通信のプロトコルに共通するものであるので、この実施形態の発明を既存のＳＳＬ通信に応用するのは比較的簡単である。もっとも、本願発明は、暗号化と復号化の処理を必ずしも、アプリケーションと、ＴＣＰ／ＩＰとの間で行うには及ばない。
通信を行う必要がなくなれば、サーバ２００とクライアント１００との間の暗号化通信が終了する。
【００６６】
≪第２実施形態≫
第２実施形態におけるＳＳＬ通信システムについて説明する。
第２実施形態におけるＳＳＬ通信システムは、概ね第１実施形態におけるそれと同様である。異なるのは、第１実施形態におけるＳＳＬ通信システムにおけるクライアント１００とサーバ２００との間の通信では、サーバ２００からクライアント１００へとサーバ証明書及びＳＳＬ証明書を送る際に、サーバ証明書及びＳＳＬ証明書が暗号化されていたのに対して、第２実施形態ではサーバ証明書及びＳＳＬ証明書は暗号化されずにサーバ２００からクライアント１００へ送信されるという点である。
【００６７】
かかる相違点に基いて、サーバ２００とクライアント１００にも多少の変更がある。ハードウェア構成の点ではサーバ２００もクライアント１００も第１実施形態の場合と変わらないが、その内部に生成される機能ブロックの点で、両者の間には多少の違いが存在している。
その違いは、第２実施形態におけるクライアント１００の暗号化復号化部１２２の中には、第１実施形態の場合に存在したクライアント第１暗号化復号化部１２２Ｅが存在せず、第２実施形態におけるサーバ２００の暗号化復号化部２２２の中には、第１実施形態の場合に存在したサーバ第１暗号化復号化部２２２Ｅが存在しない、という点である（図９、図１０）。
【００６８】
第２実施形態のＳＳＬ通信システムの使用方法、動作について説明する。
かかるＳＳＬ通信システムで実行される方法は、概ね第１実施形態の場合と同じであるので、その差分を中心として説明することにする（図１１）。もっともその差分は、第２実施形態では、第１実施形態において存在したクライアント１００におけるＳ１００５、及びＳ１００６の処理が存在せず、第１実施形態において存在したサーバ２００におけるＳ２００４、及びＳ２００５の処理が存在しないというものである。
具体的に説明する。
クライント１００で実行される、第１実施形態におけるＳ１００１〜Ｓ１００３の処理、及びサーバ２００で実行される、第１実施形態におけるＳ２００１〜Ｓ２００３までの処理は、第２実施形態でも同じである。
第２実施形態でも、サーバ２００の認証部２２２Ｈで、クライアント１００が正当であるとの認証が行われる（Ｓ２００３）。かかる認証が行われると、第２実施形態でも、第１実施形態の場合と同様に認証データが生成される。
第１実施形態の場合、認証部２２２Ｈが認証データを生成すると、それは主制御部２２２Ｂに送られ、続けて新たな解の生成（Ｓ２００４）の処理、新たな解を用いた共通鍵の暗号化（Ｓ２００５）の処理が行われた。しかしながら、第２実施形態の場合には、主制御部２２２Ｂは、認証データを受取ると、認証データに付されていたクライアント１００のＩＰアドレスのデータと紐付けた状態で、サーバ証明書及びＳＳＬ証明書を、暗号化することなくそのまま出力部２２２Ｇへと送るようになっている。
ＩＰアドレスのデータと紐付けられたサーバ証明書及びＳＳＬ証明書のデータは、出力部２２２Ｇから、送受信部２２３へと送られる。サーバ証明書及びＳＳＬ証明書のデータは、必要に応じて第１実施形態の場合と同様にしてヘッダが付されてから、インターフェイスを介して送受信機構に送られ、そこからネットワーク４００を介してクライアント１００へと送られる（Ｓ２００６Ａ）。
【００６９】
クライアント１００は、サーバ証明書及びＳＳＬ証明書のデータを受取る（Ｓ１００４Ａ）。サーバ証明書及びＳＳＬ証明書のデータは暗号化されていない。
サーバ証明書及びＳＳＬ証明書のデータは、送受信機構から、インターフェイス１１４を介して主制御部１２２Ｂへと送られる。主制御部１２２Ｂは、入力部１２２Ａから受取ったサーバ証明書及びＳＳＬ証明書を、元々自己が持っていたＳＳＬ証明書とともに認証部１２２Ｈと送る。
この状態で、認証部１２２Ｈは、サーバ２００の或いはサーバ証明書が適正か否かの認証の処理を行う（Ｓ１００７）。
以後の処理は、第１実施形態と同じである。
【００７０】
≪第３実施形態≫
第３実施形態におけるＳＳＬ通信システムについて説明する。第３実施形態におけるＳＳＬ通信システムの構成及び動作は概ね第１実施形態におけるＳＳＬ通信システムにおけるそれらと同じである。第３実施形態のＳＳＬ通信システムが第１実施形態におけるＳＳＬ通信システムと異なるのは、第１実施形態では、サーバ２００からクライアント１００に暗号化された状態のサーバ証明書及びＳＳＬ証明書が送られるようになっていたが、第３実施形態にはそれに加えて、第２実施形態のときのように、暗号化されていないサーバ証明書及びＳＳＬ証明書が送られるようになっている、という点である。
【００７１】
第３実施形態におけるクライアント１００とサーバ２００のハードウェア構成は第１実施形態の場合と変わらず、また、第３実施形態におけるクライアント１００とサーバ２００の中に生成される機能ブロックも、第１実施形態の場合と変わらない。
もっとも、上述の変更点に基づき、第３実施形態におけるクライアント１００及びサーバ２００の中に生成される機能ブロックの機能は、第１実施形態の場合と若干異なる点がある。その点については後述する。
【００７２】
第３実施形態のＳＳＬ通信システムの使用方法、動作について説明する。
かかるＳＳＬ通信システムで実行される方法は、概ね第１実施形態の場合と同じであるので、その差分を中心として説明することにする（図１２）。
まず、クライント１００で実行される、第１実施形態におけるＳ１００１〜Ｓ１００３の処理、及びサーバ２００で実行される、第１実施形態におけるＳ２００１〜Ｓ２００５までの処理は、第３実施形態でも同じである。
第３実施形態でも、サーバ第１暗号化復号化部２２２Ｅで、サーバ証明書及びＳＳＬ証明書のデータが暗号化される（Ｓ２００５）。第１実施形態では、この後、暗号化されたサーバ証明書及びＳＳＬ証明書のデータが暗号化される前のサーバ証明書及びＳＳＬ証明書のデータと紐付けられていたＩＰアドレスのデータとともに出力部２２２Ｇへと送られたが、第３実施形態では、暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータとが、暗号化される前のサーバ証明書及びＳＳＬ証明書のデータと紐付けられていたＩＰアドレスのデータとともに出力部２２２Ｇへと送られる。
【００７３】
これにより、第１実施形態では、サーバ２００からクライアント１００に暗号化された状態のサーバ証明書及びＳＳＬ証明書のみが送られるようになっていたのに対して、第３実施形態ではそれに加えて、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータがサーバ２００からクライアント１００へ送られる。
具体的には、出力部２２２Ｇに送られた、暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータと、暗号化される前のサーバ証明書及びＳＳＬ証明書のデータと紐付けられていたＩＰアドレスのデータは、出力部２２２Ｇから送受信部２２３へ送られる。暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータは、必要に応じて第１実施形態の場合と同様にしてヘッダが付されてからインターフェイスを介して送受信機構に送られ、そこからネットワーク４００を介してクライアント１００へと送られる（Ｓ２００６Ｂ）。
【００７４】
クライアント１００は、暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータとを受取る（Ｓ１００４Ｂ）。
暗号化されたサーバ証明書及びＳＳＬ証明書のデータは、クライアント第１暗号化復号化部１２２Ｅへと送られ、第１実施形態の場合と同様のＳ１００５の処理によってクライアント解生成部１２２Ｃで生成された解を用いて第１実施形態の場合と同様にして復号化される（Ｓ１００６）。
他方、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータは、送受信機構からインターフェイス１１４、及び送受信部１２３を経て入力部１２２Ａへ送られ、入力部１２２Ａから主制御部１２２Ｂを経て、認証部１２２Ｈへと送られる。
この状態で、認証部１２２Ｈには、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書及びＳＳＬ証明書と、サーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書及びＳＳＬ証明書とが、ともに存在することになる。いずれのサーバ証明書及びＳＳＬ証明書も、平文になっている。認証部１２２Ｈは、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書を対比し、また、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたＳＳＬ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたＳＳＬ証明書とを対比する（Ｓ１０１１）。
認証部１２２Ｈは、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書とが互いに一致し、且つ、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたＳＳＬ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたＳＳＬ証明書とが互いに一致した場合にのみ、それらサーバ証明書及びＳＳＬ証明書に、それらがサーバ２００からクライアント１００に送られる間にいかなる改竄もなかった、と判定する。
そのようなポジティブな判定がなされた場合にのみ、第３実施形態における認証部１２２Ｈは、サーバ証明書の認証についての第１実施形態におけるＳ１００７の過程に進むことになる。もちろん上記のポジティブな判定がなされなかったら、サーバ２００とクライアント１００との間の通信はそこで終了する。
以後の処理は、第１実施形態と同じである。
【００７５】
なお、この実施形態では、Ｓ２００６Ｂの処理で、暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータとは、同時にサーバ２００からクライアント１００に送られることになっていたが、これらは必ずしも同時に、サーバ２００からクライアント１００へ送られる必要はない。Ｓ１０１１の処理が行われる時点で認証部１２２Ｈに、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書及びＳＳＬ証明書と、サーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書及びＳＳＬ証明書とが、ともに存在する状態が作れるのであれば、暗号化されたサーバ証明書及びＳＳＬ証明書のデータと、暗号化されていないサーバ証明書及びＳＳＬ証明書のデータとの一方が他方よりも先にサーバ２００からクライアント１００に送られても構わない。
また、この実施形態では上述のように、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書とが互いに一致し、且つ、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたＳＳＬ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたＳＳＬ証明書とが互いに一致することが、認証部１２２Ｈが、サーバ証明書及びＳＳＬ証明書に対していかなる改竄もなかった、と判定するための条件となっていた。しかしながら、ここで認証部１２２Ｈが確認を行うべき最低限は、サーバ証明書に改竄がないことなのであるから、認証部１２２Ｈは、暗号化されてサーバ２００から送られて来た後にクライアント第１暗号化復号化部１２２Ｅで復号化されたサーバ証明書とサーバ２００からクライアント１００へ暗号化されることなく送られてきたサーバ証明書とが互いに一致することのみを、認証部１２２Ｈが、サーバ証明書に対していかなる改竄もなかった、と判定するための条件とすることも可能である。この場合には、暗号化しないでサーバ２００からクライアント１００に送信する対象を、サーバ証明書及びＳＳＬ証明書から、サーバ証明書のみとすることも当然に可能である。
【符号の説明】
【００７６】
１００  クライアント  
１０１  ディスプレイ
１０２  入力装置
１２１  アプリケーション
１２２  暗号化復号化部
１２２Ａ  入力部
１２２Ｂ  主制御部
１２２Ｃ  クライアント解生成部
１２２Ｄ  解データ記録部
１２２Ｅ  クライアント第１暗号化復号化部
１２２Ｆ  クライアント第２暗号化復号化部
１２２Ｇ  出力部
１２２Ｈ  認証部
１２２Ｉ  公開鍵暗号化部
１２３  送受信部
２２１  アプリケーション
２２２  暗号化復号化部
２２２Ａ  入力部
２２２Ｂ  主制御部
２２２Ｃ  サーバ解生成部
２２２Ｄ  解データ記録部
２２２Ｅ  サーバ第１暗号化復号化部
２２２Ｆ  サーバ第２暗号化復号化部
２２２Ｇ  出力部
２２２Ｈ  認証部
２２２Ｉ  秘密鍵復号化部
２２３  送受信部
【図１】
2018026631.tif 000003
【図２】
2018026631.tif 000004
【図３】
2018026631.tif 000005
【図４】
2018026631.tif 000006
【図５】
2018026631.tif 000007
【図６】
2018026631.tif 000008
【図７】
2018026631.tif 000009
【図８】
2018026631.tif 000010
【図９】
2018026631.tif 000011
【図１０】
2018026631.tif 000012
【図１１】
2018026631.tif 000013
【図１２】
2018026631.tif 000014