(57)【要約】      （修正有）【課題】送信装置と受信装置とが安全性と利便性とを両立させた上で共通鍵を共有する技術を提供する。【解決手段】クライアントとサーバはともに、同じ初期解に基いて同じ日時に同じ解を生成する機能を持つ。クライアントは、サーバに自己を識別する識別情報を送る（Ｓ１００２）。クライアントと、サーバは、同じ初期解に基いて、時間同期により同じ解を生成する（Ｓ１００３、Ｓ２００２）。クライアントとサーバは同じ解を共通鍵として用いて暗号化通信を行う（Ｓ１００４、Ｓ２００３）。【選択図】図６
2019054466.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワークを介して互いに通信可能とされた第１通信装置と、第２通信装置とを含んでなる通信システムであって、
前記第１通信装置は、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
を備えており、
前記第２通信装置は、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
を備えている、
通信システム。
【請求項２】
所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置であって、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
を備えており、
前記第１通信装置と組合せられる前記第２通信装置は、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
を備えている、
第１通信装置。
【請求項３】
前記第２通信装置の前記第２解生成手段で生成される前記解を、前記第１解生成手段で生成される前記解と一致させるための同期情報を生成する同期情報生成手段を備えており、
前記第１送受信手段は、前記第１暗号化復号化手段が前記暗号化データを生成する処理又は前記送信対象データを生成する処理を実行するのに先立って、前記同期情報を前記第２通信装置に送信するようになっているとともに、
前記第１通信装置と組合せられる前記第２通信装置の前記第２送受信手段は、前記第１通信装置から前記同期情報を受付けるようになっており、
前記第２解生成手段は、前記同期情報を用いて、前記第２暗号化復号化手段が前記暗号化データを生成する処理又は前記送信対象データを生成する処理を実行するのに先立って、前記第２初期解記録手段に記録された前記初期解に基き、前記第１通信装置の前記第１解生成手段で生成されたものと同じ前記解を生成するようになっている、
請求項２記載の第１通信装置。
【請求項４】
前記同期情報は、前記第１暗号化復号化手段で少なくとも最初に使用される解が生成される場合に指定される日時を特定する情報である、
請求項３記載の第１通信装置。
【請求項５】
前記同期情報は、その時点における日時を特定する情報である、
請求項４記載の第１通信装置。
【請求項６】
前記同期情報は、前記第１解生成手段で生成された解の一部である、
請求項４記載の第１通信装置。
【請求項７】
前記第１解生成手段は、その時点における日時を指定して生成された前記解或いはその一部である認証用解を生成するようになっているとともに、前記送信手段は認証用解を前記第２通信装置に送信するようになっており、
前記第１通信装置と組合せられる前記第２通信装置の前記第２送受信手段は、前記認証用解を受信するようになっているとともに、前記第２通信装置は、前記第２解生成手段が前記認証用解と同じ前記解或いはその一部を生成できた場合に、前記認証用解を前記第２通信装置に送ってきた前記第１通信装置が正当なものであると認証する認証手段を備えている、
請求項１記載の第１通信装置。
【請求項８】
前記第１解生成手段は複数の解を生成するようになっているとともに、前記第１暗号化復号化手段は、１つの前記送信対象データを暗号化する際に前記第１解生成手段が生成した複数の解に基づく複数の暗号化の方法を実行する処理、１つの前記暗号化データを復号化する際に前記第１解生成手段が生成した複数の解に基づく複数の復号化の方法を実行する処理の少なくとも一方を行うようになっており、
前記第１通信装置と組合せられる前記第２通信装置の前記第２解生成手段は複数の解を生成するようになっているとともに、前記第２暗号化復号化手段は、１つの前記送信対象データを暗号化する際に前記第２解生成手段が生成した複数の解に基づく複数の暗号化の方法を実行する処理、１つの前記暗号化データを復号化する際に前記第２解生成手段が生成した複数の解に基づく複数の復号化の方法を実行する処理の少なくとも一方を行うようになっている、
請求項２記載の第１通信装置。
【請求項９】
所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置であって、
前記第２通信装置と組合せられる前記第１通信装置は、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
を備えており、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
を備えている、
第２通信装置。
【請求項１０】
所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置にて実行される方法であって、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段を備えている前記第１通信装置が実行する、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成過程と、
前記第１解生成過程で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化過程と、
前記第１暗号化復号化過程で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信過程と、
を含んでおり、
前記第１通信装置と組合せられる前記第２通信装置は、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
を備えている、
方法。
【請求項１１】
所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置にて実行される方法であって、
前記第２通信装置と組合せられる前記第１通信装置は、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
を備えており、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段を備えている前記第２通信装置が実行する、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成過程と、
前記第２解生成過程で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化過程と、
前記第２暗号化復号化過程で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信過程と、
を含んでいる、
方法。
【請求項１２】
所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
して機能させるためのものであり、
前記第１通信装置と組合せられる前記第２通信装置は、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
を備えている、
コンピュータプログラム。
【請求項１３】
所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記第２通信装置と組合せられる前記第１通信装置は、
文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、
前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、
前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、
前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、
を備えており、
前記コンピュータを、
前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、
前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、
前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、
前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、
して機能させるための、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術、より詳細には暗号化通信技術に関する。
【背景技術】
【０００２】
暗号化通信には広く知られているように、送信装置と受信装置とがアルゴリズムと鍵を用いる。暗号化通信の技術には、広く知られているように、送信装置と受信装置とが同じ鍵を用いる共通鍵方式と、送信装置と受信装置とが異なる鍵を用いる公開鍵方式とが存在する。
いずれも周知であるから詳しい説明は省略するが、共通鍵方式の暗号化通信は一般に公開鍵方式の暗号化通信よりも処理が軽い。したがって、現在は、暗号化通信の大半は共通鍵方式で実行されており、公開鍵方式の暗号化通信は、共通鍵方式で通信を行うに先立って送信装置と受信装置が安全に同一の共通鍵を共有するためといった限定的な利用がなされているのみである。例えば、インターネットのホームページの閲覧において汎用されているＳＳＬ（Secure Sockets Layer）通信の場合においては、送信装置（サーバ）と受信装置（クライアント）とは共通鍵での暗号化通信を行うが、それに先立って受信装置がそもそも持っている共通鍵を受信装置から送信装置へと安全に送信するために、公開鍵方式の暗号化通信が利用されている。
【０００３】
上述の説明からも明らかなように、共通鍵方式の暗号化通信を行うためには送信装置と受信装置とが同じ鍵（共通鍵）を持ち合う必要がある。これは、暗号化の処理と復号化の処理とに、共通したアルゴリズムと鍵とを必要とする共通鍵方式の暗号化通信にとっては不可避の条件となっている。
共通鍵方式の通信に先立って行われるかかる鍵の共有のための処理は、送信装置が持つ鍵を送信装置から受信装置に送信すること、受信装置が持つ鍵を受信装置から送信装置に送信すること、或いは送信装置でも受信装置でもない第３の装置から送信装置と受信装置の双方に同じ鍵を送信すること、のいずれかによって行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
送信装置と受信装置とが共通鍵を共有するための処理においては、上述のように鍵の送受信が不可避である。かかる鍵の送受信を、安全性と利便性とを両立させた上でどのように成立させるのかということが、積年の課題となっている。かかる課題は、共通鍵方式の暗号化通信における「鍵の配送問題」等と称されている。
かかる問題を解決するための１つの手法が、ＳＳＬでも採用されている公開鍵方式の暗号化通信であり、その採用により鍵の配送問題は解決されたと少なくとも過去の一時期においては言われていた。しかしながら、公開鍵方式の暗号化通信でもその安全性が完全ではないということが既に判明している。
【０００５】
本願発明は、共通鍵方式の通信における鍵の配送問題を少なくとも部分的には解決するための技術を提供することを課題とする。
【課題を解決するための手段】
【０００６】
かかる課題を解決するために本願発明者は研究を重ねた。その結果、上述の問題は、共通鍵となる鍵をインターネットを介して送信しなければ生じないという極めて簡単でしかも本質的なことに気がついた。
本願発明は、そのような知見に基づくものである。
【０００７】
上述の課題を解決するための本願発明は、以下のようなものである。
本願発明は、所定のネットワークを介して互いに通信可能とされた第１通信装置と、第２通信装置とを含んでなる通信システムである。
前記第１通信装置は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、を備えている。
また、前記第２通信装置は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、を備えている。
【０００８】
この通信システムは、ネットワーク（典型的にはインターネット）を介して互いに通信可能な第１通信装置と、第２通信装置とを含んで構成される。
これら第１通信装置と第２通信装置とは、送信対象データの暗号化の処理と他方の装置から送られてきた暗号化データの復号化の処理との少なくとも一方を、或いは暗号化データの送信と受信の少なくとも一方を行うものである。第１通信装置と第２通信装置とは、２つの通信装置の一方と他方程度の位置づけである。第１通信装置は、第２通信装置を兼ねることができ、第２通信装置は、第１通信装置を兼ねることができる。
第１通信装置と、第２通信装置とはそれぞれ、第１初期解記録手段と、第２初期解記録手段とを備えている。第１初期解記録手段と、第２初期解記録手段とにはそれぞれ、同じ初期解が記録されている。初期解は書換えられることもあり得るが、第１初期解記録手段と、第２初期解記録手段とにおいて書換えられた初期解は、互いに同じものとされるようになっている。また、第１通信装置と、第２通信装置とはそれぞれ、同一の処理を実行することができる、第１解生成手段と、第２解生成手段とを備えている。第１解生成手段と、第２解生成手段とはともに、初期解に基づいて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成するものとなっている。このような構成により、第１通信装置と第２通信装置とは、仮に離れた場所に存在しており、それらの間で何らの通信を行わなかったとしても、同じ解を生成することができる。このように離れた場所において同じ解を生成することを可能とする技術として、例えば、近年インターネットバンキング等の分野で広範に普及しているワンタイムパスワードの技術が知られている。ワンタイムパスワードの技術では、各ユーザが持つトークンと、銀行等が管理するサーバとで、同一の初期値に基いて同一のワンタイムパスワード（解）を生成することができるようになっている。本願の通信システムでは、第１通信装置と第２通信装置とが、かかる技術においてトークンとサーバで生成されるのと同じようにして同一の解を生成することが可能となっている。上述のワンタイムパスワードの技術においては、共通の初期値に基いて同一の演算を行うことにより、離れた２つの場所で同じ解を生成する。ワンタイムパスワードの技術において、共通の解を生成するための生成方法として、演算を行った回数が同一である場合には、離れた２つの場所で同じ解が生成されるという手法（イベント同期）と、同じ日時に生成された解であれば同じになるという手法（時刻同期）とが存在する。本願発明では、初期解に基づいて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成するという第１解生成手段と、第２解生成手段とが時刻同期を用いることにより、ワンタイムパスワードの技術における時刻同期と同様の手法を用いて、第１通信装置と第２通信装置とで同一の解を生成することができるようになっている。かかる時刻同期を採用すれば、第１通信装置と第２通信装置との間で、同じ解を生成する目的で何らのデータの送受信をしなくとも、同じ解（同期された解）を生成することが可能となる。
そして、第１通信装置と、第２通信装置とは、その同期された解を、暗号化通信を行う際に、暗号化又は復号化の方法を決定するための一要素として用いる。これにより、第１通信装置と、第２通信装置とは、仮に何らの通信を行わなくとも、対応した、つまり暗号化した送信対象データを復号化できるような、暗号化の方法と、復号化の方法を実行できるようになる。暗号化と復号化の方法は、上述のように、アルゴリズムと、鍵とにより決定される。第１通信装置における第１暗号化復号化手段と、第２通信装置における第２暗号化復号化手段とは、第１解生成手段又は第２解生成手段によって生成された解をそれぞれ用いて、互いに同期した状態で鍵又はアルゴリズムの少なくとも一方を変化させることにより、互いに同期した状態で暗号化と復号化の方法を変更することが可能となる。例えば、第１暗号化復号化手段と第２暗号化復号化手段とは、典型的には、解を鍵として用いる。そうすることで、鍵の配送を行うことなく、第１暗号化復号化手段と第２暗号化復号化手段とは、同期して変化する同じ鍵を用いて、暗号化及び復号化の方法を変化させながら、暗号化通信を行うことが可能となる。
第１暗号化復号化手段と第２暗号化復号化手段とにおいて行われる暗号化の方法及び復号化の方法の変更は、例えば、少なくとも第１通信装置と第２通信装置とが通信を行う度に行うようにすれば良い。第１通信装置と第２通信装置との間で、鍵の配送、或いはそれに類するデータの送受信を行わないのであれば、鍵の配送によって生じるあらゆるリスクを無くすことができるようになる。
なお、第１暗号化復号化手段と、第２暗号化復号化手段とは、暗号化と復号化という文言の双方を含むが、暗号化と復号化の一方しか行わない場合もあり得る。
【０００９】
本願発明者は、本願発明における通信システムを構成する第１通信装置をも本願発明の通信装置として提案する。第１通信装置による効果は、本願発明における通信システムの効果と同じである。
その第１通信装置は、例えば、所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置である。
第１通信装置は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、を備えている。
前記第１通信装置と組合せられる前記第２通信装置は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、を備えている。
【００１０】
上述するように、第１通信装置と、第２通信装置とは、それらのそれぞれが有する第１解生成手段と、第２解生成手段とで発生する解を同一のものとするために、或いは同期させて発生させるために、両者の間で何らのデータを送受信する必要はない。他方、両者の間で、データの送受信を行うことも可能である。
例えば、前記第２通信装置の前記第２解生成手段で生成される前記解を、前記第１解生成手段で生成される前記解と一致させるための同期情報を生成する同期情報生成手段を備えており、前記第１送受信手段は、前記第１暗号化復号化手段が前記暗号化データを生成する処理又は前記送信対象データを生成する処理を実行するのに先立って、前記同期情報を前記第２通信装置に送信するようになっていてもよい。その場合、前記第１通信装置と組合せられる前記第２通信装置の前記第２送受信手段は、前記第１通信装置から前記同期情報を受付けるようになっており、前記第２解生成手段は、前記同期情報を用いて、前記第２暗号化復号化手段が前記暗号化データを生成する処理又は前記送信対象データを生成する処理を実行するのに先立って、前記第２初期解記録手段に記録された前記初期解に基き、前記第１通信装置の前記第１解生成手段で生成されたものと同じ前記解を生成するようになっていてもよい。日時は、第１通信装置と第２通信装置が存在する場所で、それら場所が互いに離れていても等しく進んでいく。したがって、「同じ初期解」と、「その時点における日時」とを変数として用いて解を生成する限りにおいて、両者において同期した同じ解を生成することが基本的に可能となる。しかしながら、第１通信装置と第２通信装置とがそれぞれ備える時計に狂いがある場合、第１通信装置と第２通信装置とで実行される処理にある程度以上の時間がかかる場合、第１通信装置と第２通信装置との間で行われる通信にある程度以上の時間がかかる場合には、第１通信装置と第２通信装置とで同期させた状態で同じ解を生成することが困難となることもあり得る。
そのような場合であっても、第１通信装置が、第１解生成手段で解を生成するときに指定される日時を特定するために必要な情報である同期情報を生成し、それを第２通信装置に送信し、第２解生成手段がその同期情報を参照して解を生成することで、第１解生成手段と第２解生成手段で生成される解を確実に同じものとすることができるようになる。この場合には、第三者が第１通信装置と第２通信装置とで生成される解を推定するためのいわば手掛かりとなる同期情報がネットワーク上で送受信されることになるが、仮にそれが第三者の手に渡ったとしても同期情報それ単体では第１通信装置と第２通信装置とで生成される解を第三者が正しく推定することは困難であるから、通信の安全性には特段の問題も生じない。
【００１１】
同期情報は、前記第２通信装置の第２解生成手段で生成される前記解を、前記第１解生成手段で生成される前記解と一致させるための情報である。その限りにおいて、同期情報は、どのようなものであっても構わない。例えば、第１解生成手段と第２解生成手段とが、「分」単位で、異なる解を生成する場合を考える。例えば、第１通信装置と第２通信装置とが互いに暗号化通信を開始するための予備的な通信（例えば、通信開始の要求を行う通信）が２０１７年１０月３日２０時４２分０秒に、第１通信装置から第２通信装置に到達したとする。その前後に第１通信装置の第１解生成手段が解を生成し、その後に第２通信装置の第２解生成手段が解を生成した場合、例えば両者間の通信にタイムラグが存在すると、第１解生成手段は、２０１７年１０月３日２０時４１分を指定して、第２解生成手段は、２０１７年１０月３日２０時４２分を指定して、それぞれ異なる解を生成してしまうことがあり得る。そのような場合には、第１解生成手段で生成される解が特定されたときの秒まで含めた日時が、その１分間（６０秒間）の前半と後半のどちらに属していたかということを示す情報を、同期情報として第１通信装置から第２通信装置に送ることができる。つまり、予備的な通信が２０１７年１０月３日２０時４２分０秒に第２通信装置に到達し、第１解生成手段が２０１７年１０月３日２０時４１分を指定して２０１７年１０月３日２０時４１分５９秒に解を生成した場合には、「後半」という同期情報が第１通信装置から第２通信装置へと送られることになる。最近の技術では、第１通信装置と第２通信装置との通信に３０秒も要することはまず無いから、第２通信装置は、「後半」という同期情報を得れば、予備的な通信におけるデータが第２通信装置に到達した日時を勘案すれば、第１解生成手段で用いられた同期情報が、２０１７年１０月３日２０時４２分の前半ではなく、２０１７年１０月３日２０時４１分の後半を指定して生成されたたと把握することができる。また、「前半」という同期情報を得れば、第１解生成手段で用いられた同期情報が、２０１７年１０月３日２０時４２分の前半に生成されたと把握することができる。かくして、第１通信装置と第２通信装置とは、それらの第１解生成手段と第２解生成手段とで、同じ解を生成することができることになる。
他方、前記同期情報は、前記第１暗号化復号化手段で少なくとも最初に使用される解が生成される場合に指定される日時を特定する情報であってもよい。この日時は、必ずしもその時点における日時である必要はない。１０年前、或いは１０年後の日時を指定したとしても、第１解生成手段と第２解生成手段とは同じ解を生成することができる。もっとも、前記同期情報は、その時点における日時を特定する情報であってもよい。
前記同期情報は、前記第１解生成手段で生成された解の一部であってもよい。この場合、第１解生成手段と第２解生成手段とは、その時点の日時を指定して解を生成するようになっているのが好ましい。解の一部を同期情報として用いることにより第１通信装置と第２通信装置とは、確実に同じ解を用いることができるようになる。というのは、同じ初期解を用いる第１解生成手段と第２解生成手段とは、同じ日時を指定しさえすれば同じ解を必ず生成することができるのであるから、例えば第１通信装置と第２通信装置とが用いる時計にずれが無く、またそれらの間での通信において生じるタイムラグが無視できる程小さいとすれば、両者は同じ日時を指定して同じ解を生成することができる。とすれば、第１解生成手段と、第２解生成手段が生成される解は原則同じになるはずであるから、第２解生成手段は、第１通信装置から送られてきた解の一部を含む解を生成できるはずである。とすれば、第１通信装置から送られてきた解の一部を含む第２解生成手段で生成されてきた解は、第１通信装置で生成された解と同じであることが保証される。このようにして、第１解生成手段と第２解生成手段とで生成された解を同期させつことが可能になるのである。なお、第２解生成手段で生成された解が第１通信装置から送られてきた解の一部を含まない場合には、第１解生成手段で生成された解は、第２解生成手段で生成された解を生成するときに指定された日時の前後幾らかの範囲内の日時を指定して生成されたはずである。第２解生成手段で生成された解が第１通信装置から送られてきた解の一部を含まないのであれば、第２解生成手段は、他の日時を指定して第１通信装置から送られてきた解の一部を含む解の生成を試みれば良い。第２解生成手段で生成した解に、第１通信装置から送られてきた解の一部を含む解が現れたら、その解が第１通信装置の第１解生成手段で生成された解である。
或いは、第２解生成手段は、最初から複数の解を生成するように設計されていても良い。例えば、第１解生成手段と第２解生成手段とが、「分」単位で、異なる解を生成する場合を考える。この場合において、第１通信装置と第２通信装置とが互いに暗号化通信を開始するための予備的な通信を２０１７年１０月３日２０時４２分０秒に行ったとする。その前後に第１通信装置の第１解生成手段は解を生成し、第１通信装置はその解の一部を取出して第２通信装置に送る。この場合において、第１通信装置の第１解生成手段が、２０１７年１０月３日２０時４１分という日時を、解を作るために指定したとする。他方、第２通信装置の第２解生成手段は、上述の予備的な通信が２０１７年１０月３日２０時４２分０秒に行われたのであるから、第１通信装置の第１解生成手段で解が生成されたときに指定された日時は、２０１７年１０月３日２０時４２分か、その前後の日時であることは把握できている。そこで、第２解生成手段は、例えば、２０１７年１０月３日２０時４０分、２０１７年１０月３日２０時４１分、２０１７年１０月３日２０時４２分、２０１７年１０月３日２０時４３分を指定して、４つの解を生成する。第１通信装置から送られてきた解の一部は、第２解生成手段で生成された４つの解のどれかの一部に一致する。その一部が一致した解を第１解生成手段で生成された解とすることにより、第１解生成手段で生成される解と、第２解生成手段で生成される解とを同期させる、或いは同一とすることが可能となる。なお、上述の例では第２解生成手段は解を４つ生成したが、これはもちろん例に過ぎない。例えば、第１解生成手段と、第２解生成手段とが秒単位で解を変化させるのであれば、第２解生成手段で生成すべき解はもっと多くなるであろうが、第１解生成手段と第２解生成手段とで解を一致するための原理自体は上述の説明の通りで構わない。なお、この場合には、第１通信装置と第２通信装置との間で、場合によっては暗号化の鍵として用いられることもある文字列の一部が送受信されるから、一見すれば暗号化通信の安全性に問題があるように見えるかもしれない。しかしながら、解の一部を第三者が入手できたところで、解の全体を第三者は推定することができないから、かかる手法によったとしても暗号化通信の安全性には問題が生じない。第１通信装置から第２通信装置へと送られる解の一部は、それが確率的に、第２通信装置で生成される複数の解に含まれることが無い程度の情報量（文字数、或いは桁数）を持つべきである。例えば、解の一部が、「１」、「ｐ」等という１文字或いは一桁の文字或いは数字であった場合には、第２通信装置で生成される解がそのような文字、数字を含む可能性はかなり高い。そのような事態が生じないようにすべきである。
【００１２】
前記第１解生成手段は、例えば、前記第１暗号化復号化手段に渡される前記解の前に、その時点における日時を指定して生成された前記解或いはその一部である認証用解を生成するようになっているとともに、前記第１送受信手段は前記認証用解を前記第２通信装置に送信するようになっており、前記第１通信装置と組合せられる前記第２通信装置の前記第２送受信手段は、前記認証用解を受信するようになっているとともに、前記第２通信装置は、前記第２解生成手段が前記認証用解と同じ前記解或いはその一部を生成できた場合に、前記認証用解を前記第２通信装置に送ってきた前記第１通信装置が正当なものであると認証する認証手段を備えていてもよい。
この場合に第１通信装置から第２通信装置に送られる解或いはその一部である認証用解は、同期情報とはその性格が異なる。同期情報を送信することなく、第１通信装置から第２通信装置にかかる解或いはその一部の送信がなされても構わない。上述したように、第２解生成手段は、上述の予備的な通信を行った後に、その時点における日時、或いはその前後の幾つかの日時を指定することにより、第１解生成手段で生成されたのと同じ解を生成することができる。逆にいえば、第２解生成手段と第１解生成手段とが結果として同じ解を生成できたということは、第１通信装置と第２通信装置とが同じ初期解を所持しているという証拠となる。かかる理屈により、認証用解を用いることにより、第１通信装置の認証を行い、第三者による第１通信装置へのなりすましを排除することができる。かかる認証は、双方向で行っても構わない。
認証用解は、解そのものでも、解の一部でも構わない。認証用解を解そのものとするよりも、解の一部とした方が、それを第三者に盗まれた場合に、初期解や以後に生成される解を第三者に看破されるおそれを低くすることが可能となる。なお、認証用解は、第１通信装置と第２通信装置とが暗号化通信を行う場合に、第１暗号化復号化手段と第２暗号化復号化手段とが実行する暗号化又は復号化の方法を決定するのに使用しないようにすることもできる。その場合には、第１通信装置の第１解生成手段と、第２解生成手段の第２解生成手段とは、両者間で予め取決めてあった決まりにしたがって新たな共通の解を生成し、それを第１暗号化復号化手段と第２暗号化復号化手段とが、暗号化通信に用いるようにすれば良い。
【００１３】
前記第１解生成手段は複数の解を生成するようになっているとともに、前記第１暗号化復号化手段は、１つの前記送信対象データを暗号化する際に前記第１解生成手段が生成した複数の解に基づく複数の暗号化の方法を実行する処理、１つの前記暗号化データを復号化する際に前記第１解生成手段が生成した複数の解に基づく複数の復号化の方法を実行する処理の少なくとも一方を行うようになっていてもかまわない。この場合、前記第１通信装置と組合せられる前記第２通信装置の前記第２解生成手段は複数の解を生成するようになっているとともに、前記第２暗号化復号化手段は、１つの前記送信対象データを暗号化する際に前記第２解生成手段が生成した複数の解に基づく複数の暗号化の方法を実行する処理、１つの前記暗号化データを復号化する際に前記第２解生成手段が生成した複数の解に基づく複数の復号化の方法を実行する処理の少なくとも一方を行うようになっていてもよい。
このように１つの対象データを送受信する間に、暗号化通信の方法を変化させることが可能となる。このようにすることで、暗号化通信の安全性を高めることが可能となる。
【００１４】
本願発明者は、以上の如き通信システムの第２通信装置をも、本願発明の一態様として提案する。その効果は、上述の通信システムの効果に等しい。
一例となる第２通信装置は、所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置である。
前記第２通信装置と組合せられる前記第１通信装置は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、を備えている。
第２通信装置は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、を備えている。
【００１５】
本願発明者は、以上の如き通信システムの第１通信装置で実行される方法をも、本願発明の一態様として提案する。これによる効果は、本願発明による通信システムの効果に等しい。
一例となるその方法は、所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置にて実行される方法である。
その方法は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段を備えている前記第１通信装置が実行する、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成過程と、前記第１解生成過程で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化過程と、前記第１暗号化復号化過程で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信過程と、を含んでいる。
前記第１通信装置と組合せられる前記第２通信装置は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、を備えている。
本願発明者は、以上の如き通信システムの第１通信装置として、コンピュータ、例えば汎用のコンピュータを機能させるためのコンピュータプログラムも、本願発明の一態様として提案する。
一例となるコンピュータプログラムは、所定のネットワークを介して互いに通信可能とされた第２通信装置との組合せにより、通信システムを構成する第１通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
そのコンピュータプログラムは、前記コンピュータを、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、して機能させるためのものである。
前記第１通信装置と組合せられる前記第２通信装置は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、を備えている。
【００１６】
本願発明者は、以上の如き通信システムの第２通信装置で実行される方法をも、本願発明の一態様として提案する。これによる効果は、本願発明による通信システムの効果に等しい。
一例となるその方法は、所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置にて実行される方法である。
前記第２通信装置と組合せられる前記第１通信装置は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、を備えている。
その方法は、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段を備えている前記第２通信装置が実行する、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成過程と、前記第２解生成過程で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化過程と、前記第２暗号化復号化過程で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信過程と、を含む。
本願発明者は、以上の如き通信システムの第２通信装置として、コンピュータ、例えば汎用のコンピュータを機能させるためのコンピュータプログラムも、本願発明の一態様として提案する。
一例となるコンピュータプログラムは、所定のネットワークを介して互いに通信可能とされた第１通信装置との組合せにより、通信システムを構成する第２通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
前記第２通信装置と組合せられる前記第１通信装置は、文字、数字、記号の少なくとも１つを所定数羅列したものである解を生成するために用いられるデータである初期解を記録する第１初期解記録手段と、前記第１初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解を生成する第１解生成手段と、前記第１解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第２通信装置で生成された暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第１暗号化復号化手段と、前記第１暗号化復号化手段で生成された前記暗号化データを前記第２通信装置に送信する処理、前記第２通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第１送受信手段と、を備えている。
そのコンピュータプログラムは、前記コンピュータを、前記第１通信装置の前記第１初期解記録手段に記録された前記初期解と同一の初期解を記録する第２初期解記録手段と、前記第２初期解記録手段に記録された前記初期解に基いて、同じ日時を指定して生成されたものが常に同じものとなる新たな解であって、前記第１通信装置の前記第１解生成手段で生成されたものと同じものを生成する第２解生成手段と、前記第２解生成手段で生成された前記解に基いて暗号化又は復号化の方法を変化させるようになっているとともに、送信の対象となる送信対象データを暗号化して暗号化データを生成する処理、前記第１通信装置で生成された前記暗号化データを復号化して送信対象データを生成する処理の少なくとも一方を実行する第２暗号化復号化手段と、前記第２暗号化復号化手段で生成された前記暗号化データを前記第１通信装置に送信する処理、前記第１通信装置から前記暗号化データを受信する処理の少なくとも一方を実行する第２送受信手段と、して機能させるための、コンピュータプログラムである。
【図面の簡単な説明】
【００１７】
【図１】一実施形態による通信システムの全体構成を示す図。
【図２】図１に示した通信システムに含まれるクライアントの外観を示す図。
【図３】図１に示した通信システムに含まれるクライアントのハードウェア構成を示す図。
【図４】図１に示した通信システムに含まれるクライアントの内部に生成される機能ブロックを示すブロック図。
【図５】図１に示した通信システムに含まれるサーバの内部に生成される機能ブロックを示すブロック図。
【図６】図１に示した通信システムで通信が行われるときに実行される処理の流れを示す図。
【図７】変形例２の通信システムに含まれるクライアントの内部に生成される機能ブロックを示すブロック図。
【図８】変形例２の通信システムに含まれるサーバの内部に生成される機能ブロックを示すブロック図。
【図９】変形例２の通信システムで通信が行われるときに実行される処理の流れを示す図。
【発明を実施するための形態】
【００１８】
以下、本発明の好ましい一実施形態、及びその変形例について説明する。実施形態、及び各変形例における発明は、特に矛盾がない限りにおいて互いに組合せることができる。
【００１９】
図１に、本願発明の通信システムの好ましい一実施形態としての通信システムの全体構成を概略で示す。
通信システムは、複数のクライアント１００−１〜１００−Ｎ（以後、単に、「クライアント１００」と記載する場合もある。）、及びサーバ２００を含んで構成されている。これらはすべて、ネットワーク４００に接続可能とされている。
ネットワーク４００は、これには限られないが、この実施形態ではインターネットである。
この実施形態におけるクライアント１００は、本願でいう第１通信装置に相当するものである。また、この実施形態におけるサーバ２００は本願でいう第２通信装置に相当する。もっとも本願における第１通信装置と第２通信装置に相当するサーバ２００とクライアント１００とは、いわゆるサーバとクライアントの関係である必要はなく、２つの互いに対等な通信装置であっても構わない。
これには限られないが、この実施形態における通信システムはインターネットバンキングシステム（の一部）であって、サーバ２００は銀行が管理するものとされ、クライアント１００−１〜１００−Ｎはインターネットバンキングを利用する各ユーザが所有するものとされる。
【００２０】
クライアント１００は、コンピュータを含んでいる。より詳細には、この実施形態におけるクライアント１００は、汎用のコンピュータにより構成されている。
【００２１】
次に、クライアント１００の構成を説明する。各クライアント１００−１〜１００−Ｎの構成は、本願発明との関連でいえば同じである。
クライアント１００は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク４００を介しての通信が可能なものであり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められ、それが可能であるのであればそれ以外の仕様は特に問わない。
例えば、クライアント１００がスマートフォンかタブレットなのであれば、スマートフォンとしてのクライアント１００は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰｈｏｎｅシリーズの製品で良いし、タブレットとしてのクライアント１００は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰａｄシリーズの製品でよい。以下、これには限られないが、クライアント１００がスマートフォンであることとして話を進める。
【００２２】
クライアント１００の外観の一例を図２に示す。
クライアント１００は、ディスプレイ１０１を備えている。ディスプレイ１０１は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ１０１は例えば、液晶ディスプレイである。クライアント１００は、また入力装置１０２を備えている。入力装置１０２は、ユーザが所望の入力をクライアント１００に対して行うためのものである。入力装置１０２は、公知或いは周知のものを用いることができる。この実施形態におけるクライアント１００の入力装置１０２はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、クライアント１００がノート型パソコン、デスクトップ型パソコンである場合には、入力装置１０２はキーボードや、マウス等になるであろう。また、ディスプレイ１０１がタッチパネルである場合、ディスプレイ１０１は入力装置１０２の機能を兼ねることになり、この実施形態ではそうされている。
【００２３】
クライアント１００のハードウェア構成を、図３に示す。
ハードウェアには、ＣＰＵ（central processing unit）１１１、ＲＯＭ（read only memory）１１２、ＲＡＭ（random access memory）１１３、インターフェイス１１４が含まれており、これらはバス１１６によって相互に接続されている。
ＣＰＵ１１１は、演算を行う演算装置である。ＣＰＵ１１１は、例えば、ＲＯＭ１１２、或いはＲＡＭ１１３に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ハードウェアはＨＤＤ（hard disk drive）その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のクライアントとしてこのクライアント１００を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、クライアント１００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのクライアント１００へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ１１２は、ＣＰＵ１１１が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ＲＯＭ１１２に記録されたコンピュータプログラムとしては、これに限られず、クライアント１００がスマートフォンであれば、クライアントをスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。クライアント１００は、また、ネットワーク４００を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のｗｅｂブラウザを実装している。
ＲＡＭ１１３は、ＣＰＵ１１１が処理を行うために必要なワーク領域を提供する。場合によっては、上述のコンピュータプログラムやデータが記録されていてもよい。
インターフェイス１１４は、バス１１６で接続されたＣＰＵ１１１やＲＡＭ１１３等と外部との間でデータのやり取りを行うものである。インターフェイス１１４には、上述のディスプレイ１０１と、入力装置１０２とが接続されている。入力装置１０２から入力された操作内容は、インターフェイス１１４からバス１１６に入力されるようになっている。また、周知のようにディスプレイ１０１に画像を表示するための画像データは、インターフェイス１１４から、ディスプレイ１０１に出力されるようになっている。インターフェイス１１４は、また、インターネットであるネットワーク４００を介して外部と通信を行うための公知の手段である送受信機構（図示を省略）に接続されており、それにより、クライアント１００は、ネットワーク４００を介してデータを送信することと、ネットワーク４００を介してデータを受信することとが可能になっている。かかるネットワーク４００を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、クライアント１００がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク４００から受取ったデータは、インターフェイス１１４により受取られるようになっており、インターフェイス１１４から送受信機構にわたされたデータは、送受信機構によって、ネットワーク４００を介して外部、例えば、サーバ２００に送られるようになっている。
【００２４】
ＣＰＵ１１１がコンピュータプログラムを実行することにより、クライアント１００内部には、図４で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、クライアント１００を本願発明の第１通信装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、クライアント１００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
クライアント１００内には、本願発明の機能との関係で、入力部１２１、主制御部１２２、第１解生成部１２３、第１初期解記録部１２４、第１暗号化復号化部１２６、出力部１２７が生成される。
【００２５】
入力部１２１は、インターフェイス１１４からの入力を受取るものである。
インターフェイス１１４からの入力には、例えば、後述する識別情報（ユーザＩＤ）や、インターネットバンキングで決済等を行うための情報であるバンキング情報等がある。識別情報は、各ユーザを他のユーザから識別するための各ユーザにユニークな情報であって、一般にユーザＩＤ等と称されるものである。これらはいずれも入力装置１０２から入力され、インターフェイス１１４を介して入力部１２１に入力される。
入力部１２１は、ユーザＩＤのデータを受取った場合にはそれを主制御部１２２に送るようになっており、バンキング情報を受取った場合にはそれを第１暗号化復号化部１２６に送るようになっている。
入力部１２１は、また、サーバ２００から送られてきて送受信機構で受取られた暗号化データを、インターフェイス１１４を介して受取る場合がある。入力部１２１は、受取った暗号化データを第１暗号化復号化部１２６に送るようになっている。
【００２６】
主制御部１２２は、クライアント１００内に生成された各機能ブロック全体の制御を行うものである。
主制御部１２２は、入力部１２１からユーザＩＤのデータを受取る場合がある。ユーザＩＤのデータを受取った場合、主制御部１２２はそれを出力部１２７に送るとともに、第１解生成部１２３に解を生成せよとの指示を送るようになっている。
【００２７】
第１解生成部１２３は、解を生成せよとの指示を受取った場合に解を生成するものである。この実施形態では、第１解生成部１２３は、解を生成せよとの指示を、主制御部１２２から受取る。
解の生成の仕方については後述するが、この実施形態における解は、文字、数字、記号の少なくとも１つを所定数羅列したものであり、また、初期解に基いて生成されるようになっている。典型的には、解は擬似乱数であり、各解はこの実施形態では、その桁数乃至文字数が常に一定となるようにして生成されるようになっている。解は、初期解に基づき、ある日時を指定することにより第１暗号化復号化部１２３によって生成される。
解を生成する場合、第１解生成部１２３は、第１初期解記録部１２４に記録されている初期解のデータを用いる。第１解生成部１２３には、少なくとも初期状態即ち、最初の新たな解が第１暗号化復号化部１２６で生成される前の状態では、最初の初期解のデータが記録されている。初期解のデータは、後に生成される解に影響を与えるものである。初期解のデータは、解のデータと同じ形式、即ち、文字、数字、記号の少なくとも１つを所定数羅列したものであって、その桁数乃至文字数が解と同数であるものである場合もあるし、そうでない場合もあるが、この実施形態ではこれには限られないが、初期解のデータは解のデータと同じ形式とされている。初期解のデータは、後述するようにして更新されることがあり得る。
第１解生成部１２３は生成した解を、第１暗号化復号化部１２６へと送るようになっている。
【００２８】
第１暗号化復号化部１２６は、暗号化と復号化の処理の少なくとも一方を行うものであり、これには限られないが、この実施形態では暗号化と復号化の処理の双方を行うものとされている。
第１暗号化復号化部１２６が暗号化の処理を行うのは、入力部１２１からバンキング情報を受取った場合であり、第１暗号化復号化部１２６が復号化の処理を行うのは、入力部１２１から暗号化データを受取った場合である。
暗号化の方法の詳細は後述するので、ここでは簡単に述べる。暗号化を行う場合それに先立って、第１暗号化復号化部１２６は、第１解生成部１２３から解を受け取っている。その解が第１暗号化復号化部１２６における暗号化に用いられ、解に基づき暗号化の方法が変化する。これには限られないが、この実施形態で暗号化されるデータは、入力装置１０２の操作により生成されたバンキング情報のデータである。入力装置１０２の操作により生成されたバンキング情報のデータは平文であるが、それが第１暗号化復号化部１２６で暗号化された結果暗号化データになる。第１暗号化復号化部１２６で生成された暗号化データは、出力部１２７に送られるようになっている。
復号化の方法の詳細は後述するので、ここでは簡単に述べる。復号化を行う場合それに先立って、第１暗号化復号化部１２６は、第１解生成部１２３から解を受け取っている。その解が第１暗号化復号化部１２６における復号化に用いられ、解によって復号化の方法が変化する。これには限られないが、この実施形態で復号化されるデータは、サーバ２００から送られてきたバンキング情報のデータ（後述）である。サーバ２００から送られてきたバンキング情報は暗号化データの状態となっているが、それが第１暗号化復号化部１２６で復号化された結果、平文のバンキング情報のデータになる。第１暗号化復号化部１２６で生成された平文のバンキング情報は、出力部１２７に送られるようになっている。
【００２９】
出力部１２７は、クライアント１００内の機能ブロックで生成されたデータをインターフェイス１１４に出力するものである。
出力部１２７には、上述のように主制御部１２２から識別情報が送られてくる場合がある。出力部１２７は、かかる識別情報を、インターフェイス１１４に出力する。この識別情報は、インターフェイス１１４から送受信機構に送られ、送受信機構から、ネットワーク４００を介してサーバ２００に送られるようになっている。
出力部１２７にはまた、第１暗号化復号化部１２６から、暗号化データが送られてくる場合がある。暗号化データを受取った場合には、出力部１２７は、その暗号化データを、インターフェイス１１４に出力する。この暗号化データは、インターフェイス１１４から送受信機構に送られ、送受信機構から、ネットワーク４００を介してサーバ２００に送られるようになっている。
出力部１２７にはまた、第１暗号化復号化部１２６から、平文のバンキング情報のデータが送られてくる場合がある。このバンキング情報は、元々はサーバ２００で生成されたものである。かかるバンキング情報のデータを受取った場合には、出力部１２７は、そのバンキング情報のデータを、インターフェイス１１４に出力する。バンキング情報のデータは、ディスプレイ１０１に送られ、それを受取ったディスプレイ１０１がバンキング情報に応じた表示を行うようになっている。
【００３０】
次に、サーバ２００の構成について説明する。
サーバ２００は、ハードウェアとして見た場合には、既存の公知又は周知のサーバで構わない。また、そのハードウェア構成も一般的なものでよく、大雑把に言えば、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、インターフェイス１１４をバス１１６で接続するという、クライアント１００のハードウェア構成を踏襲することができる。もっとも、サーバ２００は、ＨＤＤその他の大容量記録装置を有するのが一般的であろう。
サーバ２００が備えるＣＰＵ、ＲＯＭ、ＲＡＭ、インターフェイス、バス、及び大容量記録装置の構成、機能は、クライアント１００におけるそれらの構成、機能と変わらない。また、サーバ２００が備えるインターフェイスには、クライアント１００が備えていたのと同様の、サーバ２００外の機器とネットワーク４００を介しての通信を行うための送受信機構が接続されている。サーバ２００が備えるインターフェイスには、クライアント１００が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
【００３１】
サーバ２００の内部におけるＲＯＭ、大容量記録装置等に記録されていたコンピュータプログラムを実行することによって、サーバ２００の内部には以下に説明するような機能ブロックが生成される。なお、以下の機能ブロックは、サーバ２００を本願発明の第２通信装置として機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、サーバ２００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。また、上記コンピュータプログラムは、サーバ２００にプリインストールされたものでもよいが、出荷後のサーバ２００にインストールされたものでもあってもよい。その場合、上記コンピュータプログラムのサーバ２００へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、クライアント１００の場合と同様である。
サーバ２００内には、本願発明の機能との関係で、入力部２２１、主制御部２２２、第２解生成部２２３、第２初期解記録部２２４、第２暗号化復号化部２２６、及び出力部２２７が生成される（図５）。
【００３２】
入力部２２１は、インターフェイスからの入力を受取るものである。
インターフェイスからの入力には、例えば、インターネットバンキングでユーザが求めた決済を認めたか等についての情報であるバンキング情報等がある。バンキング情報は、例えばサーバ２００外のインターネットバンキングを実行する他の装置から入力され、インターフェイスを介して入力部２２１に入力される。もっとも、インターネットバンキングを実行するのがサーバ２００自体であるのであれば、かかるバンキング情報は、インターフェイスを介さずに、サーバ２００内のインターネットバンキングを実行しバンキング情報を生成する図示せぬ機能ブロックから入力部２２１に入力されることがありうる。
入力部２２１は、識別情報をインターフェイスから受取る場合がある。識別情報はクライアント１００からネットワーク４００を介して送られてきたものであり、サーバ２００がその送受信機構で受取ったものである。入力部２２１は、識別情報を受取った場合には、それらを主制御部２２２に送るようになっている。
同様に、入力部２２１は、クライアント１００からネットワーク４００を介して送られてきたものであり、サーバ２００がその送受信機構で受取った暗号化データを、インターフェイスを介して受取る場合がある。インターフェイスからかかる暗号化データを受取った場合には、入力部２２１はそれを第２暗号化復号化部２２６に送るようになっている。
【００３３】
主制御部２２２は、サーバ２００内に生成された各機能ブロック全体の制御を行うものである。
主制御部２２２は、入力部２２１から識別情報のデータを受取る場合がある。そのデータを受取った場合、主制御部２２２は、識別情報に加えて解を生成せよとの指示を第２解生成部２２３に送るようになっている。
【００３４】
第２解生成部２２３は、解を生成せよとの指示を受取った場合に解を生成するものである。第２解生成部２２３は、解を生成せよとの指示を、主制御部２２２から受取る。
解の生成の仕方については後述するが、第２解生成部２２３が実行する解の生成は、クライアント１００の第１解生成部１２３が実行する解の生成と同じ方法とされる。
第２解生成部２２３も、解を生成する場合、第１解生成部１２３が第１初期解記録部１２４に記録されていた初期解のデータを用いるのと同じように第２初期解記録部２２４に記録されている初期解のデータを用いる。第２初期解記録部２２４に記録されている初期解のデータは、第１初期解記録部１２４に記録されているものと同じである。ただし、第２解生成部２２３は、各クライアント１００と暗号化通信を行うために、各クライアント１００を操作するユーザ用の異なる解を生成する必要がある。したがって、第２解生成部２２３には、少なくとも初期状態（どのユーザ用の解をも第２解生成部２２３が発生していない状態）では、各ユーザ用のユーザの数と同数の初期解のデータが記録されており、且つ各ユーザ用の初期解は、各ユーザが持つクライアント１００の第１初期解記録部１２４に記録されている最初の初期解と同一である。この実施形態において、初期解のデータは、各初期解がどのユーザのためのものであるかを把握できるようにするため、各ユーザの識別情報と紐付けられた状態で第２初期解記録部２２４に記録されている。第２初期解記録部２２４に記録されている、各識別情報に紐付けられた初期解は、その初期解に紐付けられた識別情報で特定されるユーザが使用することが予定されたクライアント１００の第１初期解記録部１２４に記録される初期解と同じとなるようになっている。各識別情報に紐付けられた初期解はそれぞれ、後述するように、更新される場合がある。各識別情報に紐付けられた初期解は、それが更新されるときには、その初期解に紐付けられた識別情報によって特定されるユーザのクライアント１００における第１初期解記録部１２４に記録されている初期解と、後述するようにして同期して更新される。その結果、各識別情報に紐付けられた初期解は、その初期解に紐付けられた識別情報で特定されるユーザが使用することが予定されたクライアント１００の第１初期解記録部１２４に記録された初期解と常に同一となるようになっている。
第２解生成部２２３は、上述のように主制御部２２２から、解を生成せよとの指示と、識別情報とを受取る。かかる指示と識別情報とを受取ると、第２解生成部２２３は、解を生成する。解を生成するとき、第２解生成部２２３は、解を生成せよという指示とともに受付けた識別情報と同じ識別情報と紐付けられた初期解のデータを、第２初期解記録部２２４から読み出すようになっており、そして読み出したその初期解を用いて解を生成するようになっている。第２解生成部２２３が解を生成する方法は、各クライアント１００における第１解生成部１２３が解を生成する方法と同じであり、第１解生成部１２３と同様に日時を指定することによりこれを行う。それにより第２解生成部２２３が生成する解は、各クライアント１００における第１解生成部１２３が生成する解と同じとなるようになっている。
第２解生成部２２３は生成した解を、第２暗号化復号化部２２６へと送るようになっている。
【００３５】
第２暗号化復号化部２２６は、暗号化と復号化の処理の少なくとも一方を行うものであり、これには限られないが、この実施形態では暗号化と復号化の処理の双方を行うものとされている。なお、第２暗号化復号化部２２６は、クライアント１００の第１暗号化復号化部１２６が暗号化のみを行う場合には復号化のみを、第１暗号化復号化部１２６が復号化のみを行う場合には暗号化のみを行うものとすることができる。
第２暗号化復号化部２２６が暗号化の処理を行うのは、入力部２２１からバンキング情報を受取ったときであり、第２暗号化復号化部２２６が復号化の処理を行うのは、入力部２２１から暗号化データを受取ったときである。
第２暗号化復号化部２２６で実行される暗号化の方法、及び復号化の方法は、クライアント１００の第１暗号化復号化部１２６で実行される暗号化、及び復号化の方法に等しい。
暗号化の方法の詳細は後述するので、ここでは簡単に説明する。暗号化を行う場合それに先立って、第２暗号化復号化部２２６は、第２解生成部２２３から解を受け取っている。その解が第２暗号化復号化部２２６において実行される暗号化に用いられ、解に基づき暗号化の方法が変更させられる。これには限られないが、この実施形態で暗号化されるデータは、インターフェイスから入力されたバンキング情報のデータである。バンキング情報は平文のデータであるが、それが第２暗号化復号化部２２６で暗号化された結果暗号化データになる。第２暗号化復号化部２２６で生成された暗号化データは、出力部２２７に送られるようになっている。
復号化の方法の詳細は後述するので、ここでは簡単に説明する。復号化を行う場合それに先立って、第２暗号化復号化部２２６は、第２解生成部２２３から解を受け取っているその解が第２暗号化復号化部２２６における復号化に用いられ、解に基いて復号化の方法が変更させられる。これには限られないが、この実施形態で復号化されるデータは、クライアント１００から送られてきたバンキング情報についての暗号化データである。その暗号化データが第２暗号化復号化部２２６で復号化された結果、平文のバンキング情報のデータになる。第２暗号化復号化部２２６で生成された平文のバンキング情報は、出力部２２７に送られるようになっている。
【００３６】
出力部２２７は、サーバ２００内の機能ブロックで生成されたデータをインターフェイスに出力するものである。
出力部２２７には、第２暗号化復号化部２２６から、暗号化データが送られてくる場合がある。暗号化データを受取った場合には、出力部２２７は、その暗号化データを、インターフェイスに出力する。この暗号化データは、インターフェイスから送受信機構に送られ、送受信機構から、ネットワーク４００を介してクライアント１００に送られるようになっている。
出力部２２７にはまた、第２暗号化復号化部２２６から、平文のバンキング情報のデータが送られてくる場合がある。このバンキング情報は、元々はクライアント１００で生成されたものである。かかるバンキング情報のデータを受取った場合には、出力部２２７は、そのバンキング情報のデータを、インターフェイスに出力する。バンキング情報のデータは、インターフェイスから、インターネットバンキングについての処理を実行する他の装置に送られる。もっとも、インターネットバンキングについての処理を実行するのがサーバ２００内の他の機能ブロックなのであれば、バンキング情報はインターフェイスを経ずにその図示せぬ機能ブロックに送られることになる。
【００３７】
次に、以上で説明した通信システムの使用方法、及び動作について、図６を参照して説明する。
インターネットバンキングを利用しようとするユーザは、まず、自らが所有するクライアント１００の入力装置１０２を操作して、ブラウザを立ち上げる。ブラウザの機能は、クライアント１００が通常有する公知又は周知のコンピュータプログラムによる。クライアント１００のディスプレイ１０１には、ブラウザが表示される。
ユーザはブラウザのアドレスバーに、インターネットバンキングを提供するサーバ２００のURLを入力する。これにより、ブラウザには、インターネットバンキングのホームページが表示される。
ここで、ユーザは、識別情報であるユーザＩＤの入力を行う（Ｓ１００１）。ユーザＩＤの入力をユーザに促すように、この状態のインターネットバンキングのホームページには、ユーザＩＤの入力を促す公知、或いは周知の表示がなされていても構わない。ユーザは入力装置１０２を操作して識別情報を入力する。入力された識別情報のデータは、インターフェイス１１４を介して入力部１２１に送られ、入力部１２１から主制御部１２２に送られる。
【００３８】
識別情報を受取ると、主制御部１２２は、識別情報を出力部１２７に送る。識別情報は、出力部１２７から、インターフェイス１１４を経て送受信部へ送られ、送受信部から、ネットワーク４００を介して、サーバ２００へと送られる（Ｓ１００２）。
【００３９】
サーバ２００は、その送受信機構で、クライアント１００から送られてきた識別情報のデータを受取る（Ｓ２００１）。識別情報のクライアント１００からサーバ２００への送信が、この実施形態では事実上、クライアント１００がサーバ２００に対して送信する両者間での通信開始の要求となる。もちろん、通信の要求を行うことを意味する識別情報以外のデータを、公知或いは周知技術にしたがって、クライアント１００からサーバ２００へ送信することも可能である。
識別情報は、サーバ２００において、送受信部からインターフェイスに送られ、インターフェイスから入力部２２１に送られる。入力部２２１は、識別情報のデータを主制御部２２２に送る。
主制御部２２２は、識別情報のデータを、第２解生成部２２３へと送る。
【００４０】
他方、クライアント１００では、解の生成が行われる（Ｓ１００３）。また、サーバでも、解の生成が行われる（Ｓ２００２）。
クライアント１００で行われる解の生成の処理と、サーバ２００で行われる解の生成の処理とは独立して実行され、どちらが先に行われても構わないし、同時に行われても構わない。
【００４１】
クライアント１００での解の生成の方法について説明する。
クライアント１００の主制御部１２２は、上述のように入力部１２１から受取った識別情報を出力部１２７に送る際に、第１解生成部１２３に対して、解を生成せよとの指示を送る。
かかる指示を受取った第１解生成部１２３が解を生成する。
解を生成する場合、第１解生成部１２３は、第１初期解記録部１２４から、初期解を読み出す。初期解は、上述したように、文字、数字、記号の少なくとも一つを羅列したものである。
解の生成の方法はどのようなものでも構わないが、この実施形態では、これには限られないが、従来からのワンタイムパスワードの技術における時間同期の技術を応用したものとされている。以下、解の生成方法の一例について述べる。
【００４２】
この実施形態における第１解生成部１２３は、初めて解を生成するとき（なお、初めて解を生成するときに限らず、解を生成する場合にはいつも初期解が用いられる。）、第１初期解記録部１２４に最初に記録されている初期解のデータを読み出す。初期解のデータは、例えば、２０桁の数字と小文字の英字混じりの文字列であるものとする。かかる初期解は、各クライアント１００にユニークなものであり、各クライアント１００に対して、サーバ２００が、或いはサーバ２００の管理者が割り当てたものである。初期解は１つのこともあるが、この実施形態では５つとされる。第１解生成部１２３は、その５つの初期解のすべてを読み出す。
第１解生成部１２３は、それら初期解に対して演算を行うことにより、その時点における解を生成する。まず、演算が可能なように、初期解を数字のみに直す。初期解の中に、英字が含まれている場合には、それを２桁の数字に置き換える。置き換えの対象となる数字は、その英字のアルファベット中の順番である。例えば、「ａ」なら「０１」に、「ｂ」なら「０２」に、……「ｚ」なら「２６」にそれぞれ置き換える。例えば、初期解が「５ａ６４５８ｐ６５５６ｆｆ４２７２１４９」というものだったとする。この場合、初期解を上述の約束にしたがって数字のみにすると、「５０１６４５８１６６５５６０６０６４２７２１４９」となる。数字のみにした場合の桁数は、初期解に含まれていた英字の数に応じて増えることになる。なお、（、）、！、＆、：等の記号をも解に含めたいのであれば、「（」に「２７」、「）」に「２８」、「！」に「２９」等の適当な数字の割当てを行うようにすればよい。
次に、数字に対して演算を行う。この演算の結果求められるのは、解の元となる数字の列である。得られる解をＸとすると、Ｘは、その時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。つまり、この実施形態で時間同期を実現するために指定される日時は、「第１解生成部１２３が解を生成しようとするその時点における日時」である。以下の数式におけるＸ１、Ｘ２、Ｘ3、Ｘ4、Ｘ５はそれぞれ、５つの初期解を数字に直したものである。この実施形態で初期解を５つとしているのは、西暦の年、月、日、時、分という５つの要素にしたがって解を変化させることにしているからである。
Ｘ＝Ｘ１Ｐ＋Ｘ２Ｑ＋Ｘ3Ｒ＋Ｘ4Ｓ＋Ｘ５Ｔ
ここで、Ｐ＝西暦の年の数字を５で割った余りに１を足したもの、Ｑ＝月の数字を５で割った余りに１を足したもの、Ｒ＝日の数字を５で割った余りに１を足したもの、Ｓ＝時の数字を５で割った余りに１を足したもの、Ｔ＝分の数字を５で割った余りに１を足したものである。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。なお、Ｐ〜Ｔのすべてにおいて、１を足す過程を加えているのは、Ｐ〜Ｔのすべてがたまたま０になった場合に最終的に得られる解Ｘが５になるが、そのような簡単な数字が頻出することを避けるためである。
なお、例えば、以下のような数式を用いれば、用いる初期解は１つで済む。
Ｘ＝Ｘ１ＰＸ１Ｑ＋Ｘ１ＲＸ１Ｓ＋Ｘ１Ｔ
上述の演算を行った結果、解の元となる数字の列Ｘが得られる。次いで、その数字の列の中の任意の２桁の中に０１〜２６という数字が含まれていたら、先ほどの英字から数字への置き換えの約束事とは逆の約束事にしたがい、それらをａ〜ｚの英字に置き換える。
このようにして得られた数字と小文字の英字混じりの文字列は、限りなく１００％に近い確率で２０桁以上の桁数である。それが２０桁以上であるときには、その文字列の例えば前から２０文字を抜き出し、それを解とする。上述のようにして得られた数字と小文字の英字混じりの文字列がちょうど２０桁の場合には、それをそのまま解とする。また、上述のようにして得られた数字と小文字の英字混じりの文字列が２０桁よりも少ない場合には、何らかの決まり事に基いて桁数を増やす。例えば、その文字列の最初の数字又は英字に基いて何らかの数字又は文字を、桁数が２０桁に至るまでに、その文字列中に挿入するようにしてもよい。或いは、上述の数式におけるＰとＴとを入れ替えて演算を行って得られる数字の列に対して数字を英字に置き換える上述の過程を実行することによって新たな数字と小文字の英字混じりの文字列を生成して、それを元の数字と小文字の英字混じりの後に繋げるというような作業を、その桁数が少なくとも２０桁になるまで繰り返して、その前から２０文字を抜き出して解とする、というような方法も採用しうる。
いずれにせよ、これにより、その時点の日時に対応した解が生成される。
第１解生成部１２３は生成した解を、第１暗号化復号化部１２６へ送る。
【００４３】
他方、サーバ２００の第２解生成部２２３でも解が生成される。
上述したように、第２解生成部２２３は、主制御部２２２から解を生成せよという指示と、識別情報とを受け取っている。第２解生成部２２３は、受取った識別情報と同じ識別情報が存在するか否かの検索を、第２初期解記録部２２４に対して行う。第２解生成部２２３は、第２初期解記録部２２４内で、主制御部２２２から受取った識別情報と同じ識別情報を発見したら、その識別情報に紐付けられている初期解を読み出す。この初期解は、その識別情報を送って来たクライアント１００の第１初期解記録部１２４に記録されており、第１解生成部１２３で解を生成するときに使用された解と同じものである。
次いで、第２解生成部２２３は、解を生成するために指定される日時を決定する。かかる日時は、クライアント１００で解を生成する場合と同じく、「第２解生成部２２３が解を生成しようとするその時点における日時」である。
第２解生成部２２３は、第１解生成部１２３が解を生成するときに用いた上述の数式及び規則と同じ数式及び規則を用いて新たな解を生成する。
上述の数式が、年、月、日、時間、分を用いていたことから明らかなように、同じ初期解を用いていても、時刻の「分」が１分進むと、クライアント１００とサーバ２００でそれぞれ生成される解は異なるものとなっている。もっとも、今の技術水準であれば、クライアント１００とサーバ２００で使用される時計の双方を、例えばグリニッジ標準時に０．１秒のずれもなく一致させることは容易であるし、また、クライアント１００から識別情報を送出した後にクライアント１００内で解の生成を開始するタイミングから、識別情報をネットワーク４００を介して受取ったサーバ２００が解の生成を開始するタイミングは、クライアント１００からサーバ２００に識別情報が届くまでのタイムラグを考慮しても、１分はかからない。したがって、例えば、本実施形態におけるサーバ２００とクライアント１００を同国内で使用することに限定する等の制限を設けた場合は特に、よほどのことがない限り、サーバ２００の第２解生成部２２３で生成される解は、クライアント１００の第１解生成部２２３で生成される解と一致する。
もし、これが一致しないとすれば、両者の間で後述する暗号化通信を行えないということであるから、その場合には、もう一度最初から処理をやり直せという指示を、サーバ２００からクライアント１００へネットワーク４００を介して送信することにより、Ｓ１００１から処理をやり直せば良い。そのような負担をユーザにかけるのを避けたい場合には、サーバ２００の第２解生成部２２３で、例えば、その時点の日時である２０１７年９月１７日１８時１２分を指定して解を生成しようとした場合に、例えばその前後５分を指定した、２０１７年９月１７日１８時７分から、２０１７年９月１７日１８時１７分までの１１個の解を生成すれば良い。幾ら通信におけるタイムラグが大きくても、或いは多少クライアント１００とサーバ２００が使用する時計にずれがあったとしても、さすがにサーバ２００が生成する１１個の解の中には、クライアント１００で生成されたのと同じ解が存在するはずである。
第２解生成部２２３は解を１つだけ生成する場合も複数生成する場合も、生成した解を第２暗号化復号化部２２６へと送る。
【００４４】
これにて、暗号化通信の準備が整った。この状態で、クライアント１００とサーバ２００との間で暗号化通信が行われる（Ｓ１００４、Ｓ２００３）。
【００４５】
まず、クライアント１００からサーバ２００へ暗号化データが送信される場合について説明する。
なお、クライアント１００からサーバ２００への暗号化データの送信と、後述するサーバ２００からクライアント１００への暗号化データの送信とは、その先後を問わない、というよりともに必要に応じて行われるものである。また、後述する第１解生成部１２３での新たな解の生成と、第２解生成部２２３での新たな解の生成も、その先後を問わない。クライアント１００とサーバ２００の双方で行われる新たな解の生成は、独立して実行される。
ユーザは、クライアント１００の入力装置１０２を操作して、バンキング情報を入力する。バンキング情報は、例えば、残額を照会したいという意思表示、残額を照会したい銀行口座を特定する情報、他の口座に送金を行いたいという意思表示、送金したい金額を特定する情報、送金先の口座を特定する情報等である。これらについてのバンキング情報は、入力装置１０２の操作によって生成される。バンキング情報についてのデータは平文のデータである。
バンキング情報のデータは、インターフェイス１１４から入力部１２１に送られ、更には第１暗号化復号化部１２６に送られる。バンキング情報のデータは暗号化されるが、そのために、先程説明した、第１解生成部１２３から受け取っている解が用いられる。
この場合の解の用い方は自由である。解を用いることで、第１暗号化復号化部１２６が実行する暗号化の方法が変わる。暗号化の方法は一般に、アルゴリズムと、鍵によって決定されるから、解によってアルゴリズムと、鍵の少なくとも一方を変化させる。これには限られないが、この実施形態では、解によって鍵を変化させるものとする。たとえば、アルゴリズムを変化させるのであれば、解によって複数種類の予め準備されたアルゴリズムの一つを選択する、という手法が考えられる。解によって鍵を変化させるには、解自体を鍵としても良いし、解を鍵の一部にする、或いは解に対して何らかの決まった演算を行うことにより鍵とするといった手法がある。この実施形態では、解をそのまま鍵として用いることにする。
いずれにせよ、平文のバンキング情報は第１暗号化復号化部１２６で暗号化され、暗号化データにされる。
生成された暗号化データは、第１暗号化復号化部１２６から出力部１２７へと送られる。
【００４６】
出力部１２７は、暗号化データをインターフェイス１１４を介して送受信機構へと送る。暗号化データは、ネットワーク４００を介してサーバ２００へと送られる。
サーバ２００は、その送受信機構でクライアント１００から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイスを介して入力部２２１へと送られる。入力部２２１は、第２暗号化復号化部２２６へ暗号化データを送る。
暗号化データを受取った第２暗号化復号化部２２６は暗号化データを復号化する。そのために、第２暗号化復号化部２２６は、先程説明したように第２解生成部２２３から先に受取っている解を用いる。
第２暗号化復号化部２２６は、解を用いて、暗号化データを復号化する。解を用いることにより、第２暗号化復号化部２２６で実行される復号化の方法が変わる。
この場合の解の用い方は、クライアント１００の第１暗号化復号化部１２６での解の用いられ方に倣う。この実施形態では、クライアント１００とサーバ２００が共通鍵方式の暗号化通信の共通鍵として解を用いる。
いずれにせよ、第２暗号化復号化部２２６で、暗号化データは復号化され、元の平文のバンキング情報のデータに戻される。
上述したように、第２暗号化復号化部２２６には、第２解生成部２２３から複数の解が送られてくる場合がある。その場合には、第２暗号化復号化部２２６は、暗号化データに対して、すべての解を用いて復号化を試みる。１１個の解が第２暗号化復号化部２２６に存在するのであれば、そのうちの１つだけがクライアント１００でその暗号化データを生成するときに使用されたいわば「正しい」解であり、他の解は「誤った解」である。すべての解を用いて総当り的に復号化を試みた結果、暗号化データを正しく復号化することができた解が、正しい解である。第２暗号化復号化部２２６は、正しい解を残し、その他の解を削除する。そうすることで、第２暗号化復号化部２２６は、以後、正しい解を用いて、復号化の処理を実行することができるようになる。
バンキング情報のデータは、第２暗号化復号化部２２６から、出力部２２７に送られ、出力部２２７からインターフェイスを介して、インターネットバンキングの処理を行う他の装置へと送られ適当に使用される。
【００４７】
次に、サーバ２００からクライアント１００へ暗号化データが送信される場合について説明する。簡単にいうと、この処理は、クライアント１００からサーバ２００へ暗号化データが送信されるときの処理の逆である。
サーバ２００には、バンキング情報のデータが入力される。バンキング情報のデータは、インターネットバンキングの処理を実行するサーバ２００外の装置で作られサーバ２００に入力される。バンキング情報は、例えば、ある口座の残額を示す情報、どの口座に幾ら送金を行ったという情報、過去の口座の取引履歴等についての情報である。これらについてのバンキング情報は、生成された段階では平文のデータである。
バンキング情報のデータは、インターフェイスから入力部２２１に送られ、更には第２暗号化復号化部２２６に送られる。バンキング情報のデータは暗号化されるが、そのために第２暗号化復号化部２２６が既に持っている上述の解が用いられる。ここで用いられる解は、先ほどと同じ解で構わない。
第２暗号化復号化部２２６は、第１暗号化復号化部１２６がバンキング情報を暗号化したのと同じ方法で、バンキング情報を暗号化して暗号化データとする。生成された暗号化データは、第２暗号化復号化部２２６から出力部２２７へと送られる。
【００４８】
出力部２２７は、暗号化データをインターフェイスを介して送受信機構へと送る。暗号化データは、ネットワーク４００を介してクライアント１００へと送られる。
クライアント１００は、その送受信機構でサーバ２００から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイスを介して入力部１２１へと送られる。入力部１２１は、第１暗号化復号化部１２６へ暗号化データを送る。
暗号化データを受取った第１暗号化復号化部１２６は暗号化データを復号化する。そのために、第１暗号化復号化部１２６は、第１解生成部１２３が生成した解を用いる。この場合の解は、第１解生成部１２３が既に持っている解のままで良い。
第１暗号化復号化部１２６は、例えば共通鍵方式で暗号化データを復号化する際の鍵として解を用いて、暗号化データを復号化し、暗号化データを元の平文のバンキング情報のデータに戻す。
バンキング情報のデータは、第１暗号化復号化部１２６から、出力部１２７に送られ、出力部１２７からインターフェイス１１４を介して、ディスプレイ１０１に送られる。ディスプレイ１０１には、サーバ２００から送られてきたバンキング情報に基いて、ユーザの口座の残額、ある口座に幾ら送金されたか、或いはユーザの口座の過去の取引履歴等が表示される。
【００４９】
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
なお、この実施形態における通信システムでは、暗号化通信を行うＳ１００４、Ｓ２００３の過程で用いられる解は１つだけ、或いは固定であった。これに代えて、解を変化させながら複数の解を用いて暗号化通信を行うことも可能である。その場合、クライアント１００とサーバ２００とは、同期させながら解を変更させることが必要となる。
【００５０】
例えば、クライアント１００からサーバ２００へ、２回目の暗号化データの送信を行う場合を考える。
この場合、上述したように、入力部１２１から第１暗号化復号化部１２６へとバンキング情報のデータが送られてくる。第１暗号化復号化部１２６は、第１解生成部１２３に対して解を生成せよとの指示を送る。第１解生成部１２３は、この指示を受けると新たな解を生成する。ここで解を生成する場合には、例えば、新たな日時を指定する。どのような日時を指定するかというルールは、クライアント１００の第１解生成部１２３とサーバ２００の第２解生成部２２３とで共有されている。
第１解生成部１２３は、第１解生成部１２３から初期解を読出し、例えば、先程指定した日時である２０１７年９月１７日１８時１２分に「＋１分」した日時を、解を生成するための時刻として指定する。この時刻は、その時点における時刻である必要はない。もちろん、「＋１分」は例示であり、これは「＋１日」でも、「−１月」でも、何でも良い。
第１解生成部１２３は、新たに生成した解を、第１暗号化復号化部１２６に送る。この解を用いて第１暗号化復号化部１２６は暗号化の方法を決定し、バンキング情報を暗号化する。これによって、バンキング情報は暗号化データに変わる。
この暗号化データは、既に述べたようにしてクライアント１００からサーバ２００へと送られ、サーバ２００内の第２暗号化復号化部２２６へと送られる。
暗号化データを受取った第２暗号化復号化部２２６は、第２解生成部２２３に対して解を生成せよとの指示を出す。第２解生成部２２３は、この指示を受けると新たな解を生成する。ここで解を生成する場合には、例えば、新たな日時を指定する。上述したように、どのような日時を指定するかというルールは、クライアント１００の第１解生成部１２３とサーバ２００の第２解生成部２２３とで共有されている。したがって、上述した例に倣えば、サーバ２００で生成される解は、上述した２０１７年９月１７日１８時１２分に「＋１分」した日時を指定して生成されることになる。サーバ２００の第２解生成部２２３が複数の解を生成するようになっているのであれば、その場合には、上述した「正しい」解を生成するときに指定された日時に「＋１分」した日時を指定して、第２解生成部２２３は、新しい解を生成する。このようにして第２解生成部２２３で生成された新しい解は、当然に、クライアント１００で生成された新しい解と同じものとなる。
この解を、第２解生成部２２３は第２暗号化復号化部２２６へと送る。第２暗号化復号化部２２６は、この新しい解を用いて復号化の方法を決定し、暗号化データを復号化する。この新しい解は、クライアント１００で生成されその暗号化データを生成するときに第１暗号化復号化部１２６で使用するときに用いられたた解と同じであるから、第２暗号化復号化部２２６は、暗号化データを正しく復号化することができる。
【００５１】
このようにして、クライアント１００からサーバ２００へ、暗号化データの送信を行う度に、新しい解を用いることができる。
同様に、サーバ２００からクライアントへ暗号化データを送信する場合にも、暗号化データを送信する度に、新しく生成された解を用いることができる。
このようにすれば、クライアント１００とサーバ２００の間で行われる一回の通信の最中であっても、暗号化、復号化の方法を変えることが可能となる。これにより、暗号化通信の安全性がより高くなる。
更にいえば、暗号化、復号化の方法を変えるタイミングは、暗号化データをクライアント１００とサーバ２００の一方から他方へ送る度とする必要はない。例えば、暗号化データがクライアント１００とサーバ２００の一方から他方へ所定の回数送信される度に解を変えるとか、最初の解を生成するときに第１解生成部１２３と第２解生成部２２３とで指定された日時から、所定の時間経過する度に解を変える等としても良い。
【００５２】
また、上述の例では、基本的に、あるクライアント１００内の第１初期解記録部１２４に記録された初期解と、第２初期解記録部２２４に記録されたそのクライアント１００を持つユーザの識別情報と紐付けられた初期解とは、常に固定であった。かかる初期解は、クライアント１００とサーバ２００とで同期しつつ、つまり、同じであるという条件を保ちつつ、クライアント１００とサーバ２００とで書換えることが可能である。
例えば、第１解生成部１２３は、第１初期解記録部１２４から初期解を読み出して解を生成した場合は常に、新たに生成した解で、第１初期解記録部１２４に記録されていた初期解を上書きすることが可能である。この場合、第２解生成部２２３は、第２初期解記録部２２４から初期解を読み出して解を生成した場合は常に、新たに生成した解で、第２初期解記録部２２４に記録されていた解のうち、読出した初期解を上書きする。
また、クライアント１００とサーバ２００が、上述したように、暗号化データをその一方から他方に送信する度に新たな解を生成するようになっているのであれば、第１解生成部１２３は、その通信の間に最後に生成した解で、第１初期解記録部１２４に記録されていた初期解を上書きすることが可能である。この場合、第２解生成部２２３は、その通信の間に最後に生成した解で、第２初期解記録部２２４に記録されていた初期解を上書きする。
これらは勿論例示であるが、クライアント１００とサーバ２００とで初期解の更新のための何らかのルールを共有することで、初期解も変化させることが可能となる。これも暗号化通信の安全性を高めることは自明であろう。
【００５３】
＜変形例１＞
変形例１の通信システムについて説明する。
変形例１の通信システムは、殆ど上述の実施形態における通信システムと変わらない。変形例１の通信システムも上述の実施形態の場合と同様、多数のクライアント１００と、サーバ２００とにより構成される。
クライアント１００もサーバ２００も、それらのハードウェア構成及びそれらの内部に生成される機能ブロックとも、上述の実施形態の場合と同じである。
唯一異なるのは、変形例１のクライアント１００とサーバ２００は、同期情報を扱うという点である。かかる相違点により、変形例１のクライアント１００とサーバ２００における機能ブロックのうちの一部の機能ブロックは、その機能が上述の実施形態の場合とやや異なる。
【００５４】
変形例１のクライアント１００で、上述の実施形態と機能が異なるのは、主に第１解生成部１２３である。変形例１のサーバ２００で、上述の実施形態と機能が異なるのは、主に第２解生成部２２３である。
それを踏まえて、変形例１の通信システムの使用方法と、動作を説明する。
【００５５】
インターネットバンキングを利用しようとするユーザは、識別情報であるユーザＩＤの入力を行う（Ｓ１００１）。これは上述の実施形態と同じでよい。識別情報のデータは、インターフェイス１１４を介して入力部１２１に送られ、入力部１２１から主制御部１２２に送られる。
識別情報を受取ると、主制御部１２２は、識別情報を出力部１２７に送る。
他方、クライアント１００の主制御部１２２は、入力部１２１から受取った識別情報を出力部１２７に送る際に、第１解生成部１２３に対して、解を生成せよとの指示を送る。かかる指示を受取った第１解生成部１２３が解を生成する（Ｓ１００３）。解の生成の方法は、上述の実施形態の場合と変わらない。解を生成する際に第１解生成部１２３で指定される日時は、「第１解生成部１２３が解を生成しようとするその時点における日時」である。変形例１でも、生成された解は、第１暗号化復号化部１２６へと送られる。
ここで、変形例１の第１解生成部１２３は、上述の実施形態では行わなかった処理を行う。第１解生成部１２３は、「第１解生成部１２３が解を生成しようとするその時点における日時」を特定する情報を同期情報として生成し、それを出力部１２７に送る。上述の実施形態を例に取るなら、２０１７年９月１７日１８時１２分という日時を特定する情報が同期情報となる。
【００５６】
出力部１２７は、先に受け取っていた識別情報のみならず同期情報をも、サーバ２００に送る。この過程は、同期情報が識別情報と一緒に送信されるという点で、識別情報のみが送られる上述の実施形態におけるＳ１００２の処理と若干異なるものとなる。なお、上述の実施形態では、Ｓ１００２の処理とＳ１００３の処理の先後は問わないが、変形例１ではＳ１００２の処理は、Ｓ１００３の処理の後に実行されることになる。
サーバ２００は、識別情報と同期情報とを受取る。ここでも、サーバ２００が識別情報のみならず、同期情報をも受取る分だけ、上述の実施形態におけるＳ２００１の処理とは異なる処理となる。
識別情報と同期情報とを受け取ったら、サーバ２００は、解を生成する。識別情報と同期情報は、入力部２２１から主制御部２２２を経て、解を生成せよという指示とともに第２解生成部２２３へと送られる。
これを受取った第２解生成部２２３は、解を生成する（Ｓ２００２）。第２解生成部２２３が実行する解の生成の処理は、基本的に上述の実施形態の場合と同じである。唯一異なるのが、第２解生成部２２３が解を生成するときに指定する日時である。上述の実施形態では第２解生成部２２３は、「第２解生成部２２３が解を生成しようとするその時点における日時」或いはその前後数分の日時を、解を生成するときに指定する日時として選択するようになっていた。これと異なり、第２解生成部２２３は、「同期情報で特定された日時」を、解を生成するときに指定する日時として選択するようになっている。
勿論、第２解生成部２２３においてこれにより指定される日時は、第１解生成部１２３において解を生成するときに指定された日時と必ず一致することになる。これにより、第２解生成部２２３は、１つしか解を生成しないとしても、第１解生成部１２３と同じ解を必ず生成できることになる。このような同期情報を用いるのであれば、解は分単位どころか、秒単位或いは０．０１秒単位で変化するようなものとなっていても一向に構わない。
生成された解は、第２解生成部２２３から第２暗号化復号化部２２６へと送られる。
【００５７】
変形例１以降における暗号化通信に関するＳ１００４、Ｓ２００３の処理は、上述の実施形態の場合と変わらない。
【００５８】
なお、変形例１における同期情報は、「第１解生成部１２３が解を生成しようとするその時点における日時」であったが、同期情報はそうである必要がない。
例えば、同期情報は、遥か昔でも遥か将来でも構わない適当な日時を特定するものとすることができる。第１解生成部１２３と第２解生成部２２３とが同期した状態で同一の解を生成できるようにするためには、指定される日時はいつだとしても構わないが、解を生成する際に同一の日時を指定することのみが必要である。したがって、例えば第１解生成部１２３は、例えばランダムにその日時を指定して解を生成するとともに、そのランダムに指定された日時を特定する情報を同期情報とすることができる。その同期情報を識別情報とともに受取ったサーバ２００の第２解生成部２２３は、その同期情報で特定される日時を指定して解を生成することで、第１解生成部１２３が生成したのと同一の解を生成することができる。
また、同期情報は、必ずしもある日時を特定する情報である必要はない。
例えば、第１解生成部１２３と第２解生生成部２２３とが、「分」単位で、異なる解を生成する場合であり、クライアント１００とサーバ２００の時計が正確で且つ両者間での通信のタイムラグが略ないことが保証されているとする。そのような場合には、既に述べたように、問題が生じるのは、クライアント１００の第１解生成部１２３で解が２０１７年１０月３日２０時４１分５９秒に、２０１７年１０月３日２０時４１分を指定して生成され、且つサーバ２００の第２解生成部２２３で解が２０１７年１０月３日２０時４２分２秒に、２０１７年１０月３日２０時４２分２秒を指定して生成されるような場合のみである。このように、クライアント１００で解が生成されるタイミングが、分を跨ぐタイミングとほど近い場合には、クライアント１００とサーバ２００で生成される解は異なるものとなる可能性がある。そのような場合、クライアント１００からサーバ２００へ送られる同期情報は、「前半」或いは「後半」という情報のいずれかとすることができる。「前半」とは、ある分の前半３０秒の間に解が生成されたということを特定し、「前半」とは、ある分の後半３０秒の間に解が生成されたということを特定する情報である。かかる情報を受取ったサーバ２００の第２解生成部２２３は、その同期情報から、クライアント１００の第１解生成部１２３で解を生成するときに特定された日時が、２０１７年１０月３日２０時４１分なのか、２０１７年１０月３日２０時４２分なのかを把握することができる。サーバ２００が識別情報と同期情報とをクライアント１００から受取るタイミングは、２０１７年１０月３日２０時４１分から２０１７年１０月３日２０時４２分に切り換わる狭間のタイミングであろうが、同期情報が「前半」であれば、第１解生成部１２３で指定された日時は２０１７年１０月３日２０時４２分であり、同期情報が「後半」であれば、第１解生成部１２３で指定された日時は２０１７年１０月３日２０時４１分であると特定できる。
【００５９】
また、同期情報は、解の一部であってもよい。
上述の例では、同期情報を生成するのは第１解生成部１２３であった。同様に、同期情報が解の一部であるときにおいても、同期情報は第１解生成部１２３が生成する。この場合においても、識別情報がクライアント１００からサーバ２００へと送信される前に、クライアント１００の第１解生成部１２３が解を生成する。このときクライアント１００の第１解生成部１２３では、「第１解生成部１２３が解を生成しようとするその時点における日時」を指定して解が生成される。第１解生成部１２３が生成した解は、既に説明したように第１暗号化復号化部１２６へと送られる。他方、第１解生成部１２３は、生成した解から一部解を生成する。一部解は、解からその一部を抜き出したものである。一部解は、変形例２で追って説明するものと同じ方法で生成することができ、変形例２で追って説明するものと同じものとすることができる。一部解を生成するために、変形例１のクライアント１００の機能ブロック中に、変形例２で説明する第１一部解生成部１２５を設けることも当然に可能である。
識別情報をクライアント１００からサーバ２００へと送信するときに、第１解生成部１２３が生成した一部解を、クライアント１００は、識別情報とともにサーバ２００へと送る。サーバ２００はそれらを受取る。一部解は識別情報とともに、入力部２２１から主制御部２２２へと送られ、主制御部２２２から第２解生成部２２３へと送られる。それらを受取った第２解生成部２２３は、上述の実施形態の場合と同じ方法で解を生成する。この場合第２解生成部２２３は、識別情報をサーバ２００が受取った日時の前後のある程度の範囲の日時を指定して、複数の解を生成する。それら複数の解の中には、一部解を含んでいるものが存在する。その一部解を含んでいる解を、第２解生成部２２３は選択し、残りの解を削除する。第２解生成部２２３は、その選択した解を第２暗号化復号化部２２６へと送る。
これにより、クライアント１００の第１暗号化復号化部１２６と、サーバ２００の第２暗号化復号化部２２６は同じ解を共有したこととなった。第１実施形態において説明した、暗号化通信に関するＳ１００４、Ｓ２００３の処理と同じ処理が以後行われる。
ネットワーク４００を送信されてきた一部解を含む解を暗号化通信に用いることに安全上の懸念があるのであれば、クライアント１００とサーバ２００とは同期させて新たな解を生成し、それを暗号化通信に用いることができる。
【００６０】
＜変形例２＞
変形例２の通信システムについて説明する。
変形例２の通信システムは、殆ど上述の実施形態における通信システムと変わらない。変形例２の通信システムも上述の実施形態の場合と同様、多数のクライアント１００と、サーバ２００とにより構成される。
クライアント１００もサーバ２００も、それらのハードウェア構成は上述の実施形態と変わらない。ただし、変形例２では、クライアント１００もサーバ２００も、その内部に生成される機能ブロックが、上述の実施形態の場合と異なる。
【００６１】
変形例２のクライアント１００には、上述の実施形態の場合には存在しなかった第１一部解生成部１２５が、変形例２のサーバ２００には、上述の実施形態の場合には存在しなかった第２一部解生成部２２５と、認証部２２８とがそれぞれ存在している。
これらが存在することで、変形例２の通信システムは、後述する一部解を用いた認証の処理を実行することができる。その点を踏まえて、以上の機能ブロックの機能にも言及しつつ、変形例２の通信システムの使用方法と、動作を図９を参照して説明する。
【００６２】
インターネットバンキングを利用しようとするユーザは、識別情報であるユーザＩＤの入力を行う（Ｓ１００１）。これは上述の実施形態と同じでよい。識別情報のデータは、インターフェイス１１４を介して入力部１２１に送られ、入力部１２１から主制御部１２２に送られる。
識別情報を受取ると、主制御部１２２は、識別情報を出力部１２７に送る。
他方、クライアント１００の主制御部１２２は、入力部１２１から受取った識別情報を出力部１２７に送る際に、第１解生成部１２３に対して、解を生成せよとの指示を送る。かかる指示を受取った第１解生成部１２３が解を生成する（Ｓ１００３）。解の生成の方法は、上述の実施形態の場合と変わらない。上述の実施形態では、生成された解が第１暗号化復号化部１２６へと送られたが、変形例２では、上述の実施形態の場合と異なり、生成された解は第１解生成部１２３から、第１暗号化復号化部１２６と第１一部解生成部１２５との双方へと送られる。
第１第１一部解生成部１２５は、解を受取ると一部解を生成する（Ｓ１００５）。一部解は、解を構成する文字等から、適当な数の文字等を抜き出したものである。第１一部解生成部１２５が解から一部解を生成する方法はどのようなものであってもよいし、また、常に同じである必要はない。もっとも、解を生成する方法は、第２一部解生成部２２５と共有されている必要がある。解から一部解を生成する方法は例えば、解が２０桁（２０文字）で生成されると仮定した場合に、解の最初の１０桁を取出す、奇数桁目のみを取出す、２〜９桁目を取出す、或いは英数字混じりの解から数字のみを取出す等とすることができる。
第１一部解生成部１２５は、一部解を生成したら、それを出力部１２７へと送る。
【００６３】
出力部１２７は、上述のように、主制御部１２２から識別情報を受取り、また、第１一部解生成部１２５から一部解を受取る。これらを受取った出力部１２７は、一部解と識別情報とを、ひとまとめにして同時にサーバ２００に送るべく、それらのデータをインターフェイス１１４に送る。
それらのデータはインターフェイス１１４から送受信機構に送られ、通常のインターネットの通信で用いられている技術にしたがって送受信機構でヘッダ等を付された上で、送受信機構からネットワーク４００を介してサーバ２００に送られる（Ｓ１００６）。
【００６４】
サーバ２００は、その送受信機構で、クライアント１００から送られてきた一部解と識別情報とのデータを受取る（Ｓ２００４）。より詳細には、サーバ２００は、その送受信機構で、クライアント１００から送られてきた一部解と識別情報とをまとめて同時に受取る。
それらは、サーバ２００のインターフェイスに送られ、インターフェイスから入力部２２１に送られる。入力部２２１は、一部解と識別情報のデータをインターフェイスから受取ると、それらを主制御部２２２に送る。
主制御部２２２は、入力部２２１から一部解と識別情報のデータを受取ると、一部解のデータを認証部２２８に送り、識別情報と解を生成せよとの指示とを第２解生成部２２３に送る。
【００６５】
第２解生成部２２３は、識別情報とともに、解を生成せよとの指示を受取ると解を生成する（Ｓ２００２）。
第２解生成部２２３が解を生成する方法は、上述の実施形態の場合と同様で良い。場合によっては、上述の実施形態の場合と同様に、第２解生成部２２３は複数の解を生成する。
第２解生成部２２３は、生成した解を、第２暗号化復号化部２２６と、第２一部解生成部２２５の双方へ送る。
第２一部解生成部２２５は、解を受取ると、解から一部解を生成する（Ｓ２００５）。第２一部解生成部２２５が解から一部解を生成する方法は、クライアント１００の第１一部解生成部１２５が解から一部解を生成する方法と同じである。
第２一部解生成部２２５が解から一部解を生成した場合、第２一部解生成部２２５は、その一部解を認証部２２８に送る。第２一部解生成部２２５は、複数の解を第２解生成部２２３から受取った場合には複数の一部解を生成し、それらのすべてを認証部２２８に送る。
【００６６】
認証部２２８は、主制御部２２２から、クライアント１００で生成された一部解を、第２一部解生成部２２５から、サーバ２００で生成された一部解を、それぞれ受取る。
認証部２２８は、それら一部解を用いて認証を行う（Ｓ２００６）。
認証部２２８は、クライアント１００で生成された一部解を、サーバ２００で生成された一部解と比較し、前者が後者と一致した場合には、一部解を送ってきたクライアント１００が適正なものであると認証し、前者が後者と一致しなかった場合には、一部解を送ってきたクライアント１００が適正なものであるとの認証を行わない。認証部２２８が複数の一部解を第２一部解生成部２２５から受け取った場合には、認証部２２８は、クライアント１００で生成された一部解を、サーバ２００で生成された複数の一部解と比較し、前者が後者のうちの１つと一致した場合には、一部解を送ってきたクライアント１００が適正なものであると認証し、前者が後者のいずれとも一致しなかった場合には、一部解を送ってきたクライアント１００が適正なものであるとの認証を行わない。
これで認証を行えるのは、クライアント１００の第１解生成部１２３と、サーバ２００の第２解生成部２２３とは、同じ初期値と、同じ指定された日時を用いれば、必ず同じ解、或いは同じ解に基いて生成される同じ一部解を生成することができるということが保証されているからである。クライアント１００がサーバ２００が生成するのと同じ一部解を生成できたということは、クライアント１００が真正であるということを意味するため、上述の認証方式が成立しうる。しかもかかる認証方式では、解の一部のみをネットワーク４００を介して送信するものであり、解の全体をネットワーク４００を介して送信しないので、悪意の第三者にその一部解を盗まれたとしても、その被害は限定的であり、解の生成の手法を第三者に看破される可能性は低い。もっとも、安全性に多少目を瞑るのであれば、クライアント１００からサーバ２００へ送るのは一部解でなく解であってもよい。その場合には、第１一部解生成部１２５と第２一部解生成部２２５は不要になり、認証部２２８はクライアント１００から送られてきた解と、サーバ２００で生成された解とを比較することになる。
なお、変形例１で説明した同期情報を用いれば、サーバ２００が生成する解は、１つで済む。
認証が行われた場合には、認証部２２８は、そのクライアント１００について認証が行われたということを示すデータである認証データを生成し、それを主制御部２２２と出力部２２７とに送る。認証が行われなかった場合には、クライアント１００とサーバ２００との間の通信はそこで終了となる。ユーザは、クライアント１００を操作して、再度ユーザＩＤである識別情報の入力を行う処理に戻る。
【００６７】
認証データは、上述のように、出力部２２７に送られる。出力部２２７は、認証データを受取ると、それをインターフェイスに出力する。この認証データは、インターフェイスから送受信機構に送られ、送受信機構から、ネットワーク４００を介してクライアント１００に送られる（Ｓ２００７）。
クライアント１００は、サーバ２００から送られてきた認証データを受取る。より詳細には、クライアント１００は、その送受信機構で認証データを受取る（Ｓ１００７）。
認証データは、送受信機構からインターフェイス１１４を経て、入力部１２１に送られる。入力部１２１は、認証データを主制御部１２２へと送る。認証データを受取った主制御部１２２は、第１暗号化復号化部１２６に暗号化と、復号化を行って良い、との指示を行う。
【００６８】
この状態で、クライアント１００とサーバ２００との間で暗号化通信が行われる（Ｓ１００４、Ｓ２００３）。
この状態で、第１暗号化復号化部１２６と、第２暗号化復号化部２２６とは、上述の実施形態の場合と同様に同じ解を持っているから、上述の実施形態の場合と同様に、暗号化通信を行うことが可能である。つまり、変形例２における以降の処理は、上述の実施形態の場合と同じでよい。
もっとも、変形例２では、第１暗号化復号化部１２６と、第２暗号化復号化部２２６が共通して持っている、場合によっては共通鍵方式の暗号化通信で鍵として用いられる解は、その一部が一部解として、ネットワーク４００上を送信されたものである。したがって、第１暗号化復号化部１２６と、第２暗号化復号化部２２６が持っている解により、両者における暗号化と復号化の方法を決定するのが安全性の面から見て問題だとも考え得る。そのような問題を避けるのであれば、既に説明したのと同じ方法で、第１暗号化復号化部１２６には第１解生成部１２３から、第２暗号化復号化部２２６には第２解生成部２２３から、同期された同じ解を提供するようにすれば良い。
【符号の説明】
【００６９】
１００  クライアント  
１０１  ディスプレイ
１０２  入力装置
１２１  入力部
１２２  主制御部
１２３  第１解生成部
１２４  第１初期解記録部
１２５  第１一部解生成部
１２６  第１暗号化復号化部
１２７  出力部
２２１  入力部
２２２  主制御部
２２３  第２解生成部
２２４  第２初期解記録部
２２５  第２一部解生成部
２２６  第２暗号化復号化部
２２７  出力部
２２８  認証部
【図１】
2019054466.tif 000003
【図２】
2019054466.tif 000004
【図３】
2019054466.tif 000005
【図４】
2019054466.tif 000006
【図５】
2019054466.tif 000007
【図６】
2019054466.tif 000008
【図７】
2019054466.tif 000009
【図８】
2019054466.tif 000010
【図９】
2019054466.tif 000011