(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-14
(45)【発行日】2022-10-24
(54)【発明の名称】通信システム、サーバ装置、ユーザ装置、方法、コンピュータプログラム
(51)【国際特許分類】
H04L 9/08 20060101AFI20221017BHJP
【FI】
H04L9/08 B
H04L9/08 D
H04L9/08 E
(21)【出願番号】P 2016236509
(22)【出願日】2016-12-06
【審査請求日】2019-11-27
【審判番号】
【審判請求日】2022-03-28
(73)【特許権者】
【識別番号】398030229
【氏名又は名称】株式会社 エヌティーアイ
(74)【代理人】
【識別番号】100108604
【氏名又は名称】村松 義人
(72)【発明者】
【氏名】中村 貴利
【合議体】
【審判長】篠原 功一
【審判官】林 毅
【審判官】児玉 崇晶
(56)【参考文献】
【文献】米国特許第7457416(US,B1)
【文献】特開2009-253650(JP,A)
【文献】米国特許出願公開第2008/0292105(US,A1)
(57)【特許請求の範囲】
【請求項1】
インターネットである
ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置であって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、
を備えており、
前記サーバ装置は、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た情報を、前記同期情報として前記特定ユーザ装置としての前記ユーザ装置のいずれかに送るようになっているとともに、
前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
サーバ装置。
【請求項2】
インターネットである
ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置であって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、
を備えており、
前記サーバ装置は、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第1の情報を前記同期情報として一方の前記ユーザ装置に送るようになっているとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第2の情報を前記同期情報として他方の前記ユーザ装置に送るようになっており、
前記特定ユーザ装置のうちの一方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とするようになっているとともに、前記特定ユーザ装置のうちの他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
サーバ装置。
【請求項3】
前記サーバ装置は、前記ユーザ装置のうちの少なくとも複数との間で同期された前記初期解を生成することができるようになっており、且つ互いに前記ネットワークを介した暗号化通信を行うことができるようになっている、複数の副サーバ装置からなり、
前記特定ユーザ装置が、2つの副サーバ装置のそれぞれとの間で同期された初期解を生成するようになっている場合には、それら2つの副サーバ装置、或いはそれらの双方と暗号化通信を行うことができるようになっている他の副サーバ装置との協働により、前記同期情報生成手段と、前記サーバ送信手段とを構成するようになっている、
請求項2記載のサーバ装置。
【請求項4】
請求項3記載の副サーバ装置。
【請求項5】
請求項1記載のサーバ装置との組合せによって前記通信システムを構成するユーザ装置であって、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段を備えており、
前記サーバ装置は、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た情報を、前記同期情報として前記特定ユーザ装置としての前記ユーザ装置のいずれかに送るようになっているとともに、
前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
ユーザ装置。
【請求項6】
請求項2記載のサーバ装置との組合せによって前記通信システムを構成するユーザ装置であって、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段を備えており、
前記サーバ装置は、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第1の情報を前記同期情報として一方の前記ユーザ装置に送るようになっているとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第2の情報を前記同期情報として他方の前記ユーザ装置に送るようになっており、
前記特定ユーザ装置のうちの一方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とするようになっているとともに、前記特定ユーザ装置のうちの他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
ユーザ装置。
【請求項7】
前記ユーザ送信手段と、前記ユーザ受信手段とを備えた所定の通信装置との組合せにより請求項5記載のユーザ装置を構成するためのコンピュータ装置であって、
前記ユーザ解生成手段と、前記ユーザ暗号化手段と、前記ユーザ復号化手段と、前記初期解を生成する前記手段とを備えている、
コンピュータ装置。
【請求項8】
前記ユーザ送信手段と、前記ユーザ受信手段とを備えた所定の通信装置との組合せにより請求項6記載のユーザ装置を構成するためのコンピュータ装置であって、
前記ユーザ解生成手段と、前記ユーザ暗号化手段と、前記ユーザ復号化手段と、前記初期解を生成する前記手段とを備えている、
コンピュータ装置。
【請求項9】
インターネットであるネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置にて実行される方法であって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段を備えた前記サーバ装置が実行する、
前記特定ユーザ装置の一方から、前記特定情報を受信する第1過程と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する第2過程と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信する第3過程と、
を含み、
前記第2過程では、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た情報を前記同期情報として生成し、
前記第3過程では、前記同期情報を前記特定ユーザ装置としての前記ユーザ装置のいずれかに送り、
前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
方法。
【請求項10】
インターネットであるネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置にて実行される方法であって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段を備えた前記サーバ装置が実行する、
前記特定ユーザ装置の一方から、前記特定情報を受信する第1過程と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する第2過程と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信する第3過程と、
を含み、
前記第2過程では、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第1の情報を前記同期情報として生成するとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第2の情報を前記同期情報として生成し、
前記第3過程では、前記第1の情報を一方の前記ユーザ装置に送るとともに、前記第2の情報を他方の前記ユーザ装置に送り、
前記特定ユーザ装置のうちの一方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とするようになっているとともに、前記特定ユーザ装置のうちの他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
方法。
【請求項11】
インターネットであるネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記コンピュータを、
前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、
して機能させるためのものであり、
前記同期情報生成手段は、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た情報を生成し、前記サーバ送信手段は、当該情報を前記同期情報として前記特定ユーザ装置としての前記ユーザ装置のいずれかに送るようになっているとともに、
前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
コンピュータプログラム。
【請求項12】
インターネットである
ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記ユーザ装置はそれぞれ、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっており、
前記コンピュータを、
前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、
前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、
前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、
前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、
して機能させるためのものであり、
前記同期情報生成手段は、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第1の情報を前記同期情報として生成するとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第2の情報を前記同期情報として生成するようになっているおり、前記サーバ送信手段は、前記第1の情報を一方の前記ユーザ装置に送るようになっているとともに、前記第2の情報を他方の前記ユーザ装置に送るようになっており、
前記特定ユーザ装置のうちの一方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とするようになっているとともに、前記特定ユーザ装置のうちの他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とするようになっており、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっている、
コンピュータプログラム。
【請求項13】
請求項1記載のサーバ装置との組合せによって前記通信システムを構成するユーザ装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段と、
して機能させるためのものであり、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようにするためのものであり、
前記同期情報生成手段は、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た情報を生成し、前記サーバ送信手段は、当該情報を前記同期情報として前記特定ユーザ装置としての前記ユーザ装置のいずれかに送るようになっているとともに、
前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置の前記コンピュータは、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とし、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置の前記コンピュータは、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とし、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とする、
ためのコンピュータプログラム。
【請求項14】
請求項2記載のサーバ装置との組合せによって前記通信システムを構成するユーザ装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである疑似乱数であり一定桁数又は一定文字数の解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、
送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、
前記暗号化データを他の装置に送信するユーザ送信手段と、
前記暗号化データを他の装置から受信するユーザ受信手段と、
受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、
前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段と、
して機能させるためのものであり、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようにするためのものであり、
前記同期情報生成手段は、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第1の情報を前記同期情報として生成するとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方であり、いずれも前記サーバ解生成手段で生成されたものに対してそれらの排他的論理和をとる可逆的な演算を行って得た第2の情報を前記同期情報として生成するようになっているおり、前記サーバ送信手段は、前記第1の情報を一方の前記ユーザ装置に送るようになっているとともに、前記第2の情報を他方の前記ユーザ装置に送るようになっており、
前記特定ユーザ装置のうちの一方の前記ユーザ装置の前記コンピュータは、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とし、前記特定ユーザ装置のうちの他方の前記ユーザ装置の前記コンピュータは、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とし、
それにより前記特定ユーザ装置間で前記解を同期させることを可能とする、
ためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信技術、より詳細には暗号通信技術に関する。
【背景技術】
【0002】
例えば、インターネット上でインターネット上に存在する店舗への支払いを行う、インターネットバンキングで自らの口座の残高を見たり第三者への送金を行う等という場合には、それらを行うユーザは自らの端末と上記店舗等のサーバとの間でインターネットを介して通信を行う。かかる通信ではもちろん、悪意の第三者による通信の盗聴を防ぐことが必要である。
金銭にまつわるサービスをインターネットで受ける場合における上述の如き場合はもちろん、それ以外の一般的な通信を行う場合にも、通信の盗聴を防ぐ目的で、暗号化通信の技術が広く用いられている。
【0003】
そのような技術の1つとして、本願発明者は予てからある技術を開発し、その普及に勤めている。本願発明者が提唱する技術は、次のような技術である。
概略を説明すると、その技術では、2つの通信装置がインターネット等のネットワークを介して通信を行う。この場合、2つの通信装置は、連続して文字、数字、記号の少なくとも1つを所定数羅列したものである解を生成する解生成手段を備えている。かかる解生成手段は、初期解に基づいて解を生成するものであり同じ条件下で生成されたものが常に同じものとなるようになっている。つまり、解には初期値依存性がある。例を挙げるのであれば、解生成手段が生成する解は、擬似乱数である。
また、2つの通信装置は、暗号化手段を備えている。暗号化手段は、送信の対象となる送信対象データを、解生成手段で生成された解を用いて暗号化して暗号化データにする処理を実行する。また、2つの通信装置は、暗号化手段が生成した暗号化データを通信の相手方となる通信装置に送信する送信手段を備えている。
また、2つの通信装置は、暗号化データを通信の相手方となる通信装置から受信する受信手段を備えている。また、2つの通信装置は、受信した暗号化データを、解生成手段で生成された解を用いて復号化して送信対象データにする処理を実行する復号化手段を備えている。
そして、暗号化通信を行おうとしている2つの通信装置は、共通の初期解を有しており、それ故それらがともに持つ解生成手段で同じ解を生成することができるようになっている。本願発明では、そのような状況を、2つの装置が同期した解を生成することができるようになっている、と称することとする。そして、2つの通信装置が同期した解を生成することができるようになっていることにより、かかる通信装置における暗号化通信は、極めて安全なものとなる。
【0004】
例えば、2つの装置が共通鍵方式の通信を実行する場合には、それら2つの装置は、暗号化或いは復号化の処理を規定するアルゴリズムと、そのアルゴリズムを実行する場合に用いられる共通鍵とを共有している。本願発明者が提唱する上述の通信装置では、通信を行う2つの通信装置における解生成手段で、上述のように次々と新しい同期された共通の解が生成される。そして、上記2つの通信装置における暗号化手段と復号化手段とは、それら共通する解を、共通のタイミングで変化する共通鍵として用いることにより、極めて高い通信の安全性を実現する。
本願発明者が提唱する上述の通信装置は、通信毎に解を発生させるのみならず、送信対象データを暗号化する場合の複数のタイミングで、最も頻繁な場合には、送信対象データを切断することにより、暗号化又は復号化の処理を一度に行う対象となる一単位のデータが生成される毎に新たな解を発生させることも可能である。つまり、本願発明者が提唱する上述の通信装置は、少なくとも1回の通信が行われる度に、場合によってはそれ以上のより頻繁なタイミングで暗号化通信を実行する場合の共通鍵を更新する、例えるなら、使い捨ての共通鍵を次々に生成して暗号化通信を行うものであるから、その暗号の強度が極めて高いのである。
なお、一応付言すると、上述の解によって変更される対象は、必ずしも共通鍵その他の鍵である必要はなく、アルゴリズムの方であっても構わない。
【0005】
上述の通信装置においては、2つの通信装置における解生成手段で生成される解が互いに同期されていることが重要であり、かかる解の同期が達成できないのであれば2つの通信装置は暗号化通信を行うことができない。したがって、2つの通信装置は、暗号化通信を行う前に、解を同期させるために必要となる同じ初期解を共有することが要求される。
しかしながら、それが難しい場合もある。それは、通信装置が多数であって、且つそれら多数の通信装置のうちの2つが暗号化通信を行うような場合である。例えば、多数のパーソナルコンピュータ、携帯電話、スマートフォンが上述の通信装置である場合において、それら通信装置のうちの2つが通信の一例となる電子メールのやり取りを行う場合には、それら2つの通信装置が、通信の開始前に共通する初期解を持つ必要がある。この場合において、暗号化通信を行う必要のある2つの通信装置の対の数は膨大であり、そのすべての対における2つの通信装置に対して共通の初期解を持たせるのには手間がかかり、また困難である。
【0006】
もっとも本願発明者は、2つの通信装置に共通の初期解をどのようにして持たせるかという上述の問題を解決するための技術をも既に提案している。その技術は、インターネットに接続される多数の通信装置以外に、2つの通信装置間での暗号化通信を管理する、これもインターネットに接続される制御装置を用意するというものである。かかる制御装置は、暗号化通信を開始する前の2つの通信装置に対して共通の初期解を送信するようになっている。
それにより、2つの通信装置は、共通の初期解を得て、同期した解をそれらの持つ解生成手段で生成できるようになる。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、制御装置から2つの通信装置に対して初期解を送信した場合には、制御装置から2つの通信装置に対して送信される初期解を第三者に盗まれる可能性があり、更にはその初期解を悪用され2つの通信装置の間で行われる暗号化通信を盗聴される可能性がある。
制御装置から2つの通信装置に対して送信される初期解を暗号化し、2つの通信装置で暗号化された初期解を復号化して用いることにすればそのような事態が生じる可能性を抑制することはできるが、暗号化されているとはいえ、初期解自体をインターネット上で送信することによるリスクを完全に消し去ることはできない。
【0009】
本願発明は、多数の通信装置のうちの暗号化通信を行おうとする2つの通信装置に、暗号化通信に用いる同期された連続した解を生成するために必要となる共通の初期解を持たせるための、安全性の高い技術を提供することをその課題とする。
【課題を解決するための手段】
【0010】
上述の課題を解決するための本願発明は、以下のようなものである。
本願発明は、ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムである。
かかる通信システムに含まれる前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、を有している。また、各ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。更に各ユーザ装置は、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっている。
他方、前記サーバ装置は、前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、を備えている。
【0011】
本願発明におけるユーザ装置とサーバ装置とは、背景技術の欄で説明した通信装置と制御装置とにそれぞれ該当する。
各ユーザ装置は、背景技術の欄で説明した通信装置における解生成手段に相当するユーザ解生成手段を備えており、かかるユーザ解生成手段で解を連続して生成することが可能となっている。ユーザ装置のうちの暗号化通信を行う2つのユーザ装置である特定ユーザ装置は、それらが共通の初期解を持っている場合には、背景技術の欄で説明した通信装置と同様に、そのユーザ解生成手段で同期された状態で同じ解を生成することができるようになっており、その解を用いて暗号化通信を行えるようになっている。
他方、背景技術の欄で説明した制御装置に相当する本願発明におけるサーバ装置は、制御装置と同様に、特定ユーザ装置が同じ初期解を持てるようにするための機能を有している。サーバ装置は、各ユーザ装置が持つユーザ解生成手段と同様のサーバ解生成手段を備えている。サーバ解生成手段は、ユーザ装置のそれぞれが持つユーザ解生成手段で生成される解と同じ、ユーザ装置のそれぞれのユーザ解生成手段で生成されるものと同期された前記解を生成することができる。サーバ装置は、特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に対して、同期情報を送る。同期情報は、初期解そのものではなく、同期情報を受取ったユーザ装置が、その同期情報に基づいて初期解を生成することのできる情報であって、サーバ解生成手段によって生成された解を用いて、或いはその解に基づいて生成されるものである。本願発明では、サーバ装置が、同期情報を特定ユーザ装置のうちの少なくとも片方のユーザ装置に送るようになっているが、かかる同期情報は初期解そのものではないから、仮にそれを悪意の第三者に盗まれたとしてもその悪意の第三者は、ユーザ装置間で行われる暗号化通信を盗聴することはできない。なお、サーバ装置が同期情報を送る相手方が、特定ユーザ装置のうちの片方のユーザ装置のみである場合には、特定ユーザ装置のうちの双方のユーザ装置に同期情報を送る場合よりも、同期情報を盗まれる可能性が下がるから、ユーザ装置間で行われる暗号化通信を盗聴される可能性はより低くなる。
もちろん、サーバ装置は、暗号化してから同期情報を特定ユーザ装置のうちの少なくとも片方のユーザ装置に送っても良い。この場合にサーバ装置とユーザ装置との間で実行される暗号化通信は、どのようなもの例えば、公知、周知の暗号化通信でも良いし、本願発明者が提唱しているような、連続して発生される解を用いてのものであっても良い。サーバ装置は、すべてのユーザ装置におけるユーザ解生成手段で発生されるのと同じ解を生成することのできるサーバ解生成手段を備えているので、すべてのユーザ装置と、発生される解を同期させることが可能である。つまり、サーバ解生成手段を備えたサーバ装置は、ユーザ装置間で実行される暗号化通信と同様の暗号化通信をユーザ装置との間で実行することに対して特に困難はない。
【0012】
上述のように、本願発明では、特定ユーザ装置を構成する2つのユーザ装置間で暗号化通信が行われる場合、両ユーザ装置のユーザ解生成手段のそれぞれで同期した解が生成される。また、本願発明におけるサーバ装置のサーバ解生成手段と各ユーザ装置のユーザ解生成手段とは、同期した解を生成可能とされる。
これら2つの場合における解の同期のさせ方について説明する。2つのユーザ解生成手段で同期された解が生成される場合と、サーバ解生成手段とユーザ解生成手段とで同期された解が生成される場合とで解の同期のさせ方は変わらないので、簡単のため、以下の説明では、ユーザ解生成手段もサーバ解生成手段も単に「解生成手段」と称することにする。
解生成手段は、初期解を、その時点の時刻を変数として含む数式に代入することによって生成されるようなものになっていてもよい。これにより、離れた場所にある2つの独立した装置における解生成手段は、同期した解を生成できることになる。これは、インターネットバンキング等の分野で広く実用化されているトークン等で既に実用化されている時間同期と称される同期の方法に程近いものである。
他方、解生成手段で解を生成するための手法は、例えば、過去の解を所定の数式に代入することで新しい解を得て、次にその解を同じ数式に代入することで新しい解を得る、というようなものとすることができる。これは、上述の如きトークン等で既に実用化されているイベント同期と称される同期の方法に程近いものである。イベント同期が採用される場合、2つの解生成手段で生成される解は、同じ順番で生成されたもの同士を比較すると同じになるようになっている。例えば、2つの解生成手段は、解をXとして、Xn+1=f(Xn)という関数により、次の解を生成するというアルゴリズムにより解を生成するようなものとなっていてもよい。この場合、解生成手段は、直前に作った解を保持しておき、その前に生成した解をすべて削除するようになっていてもよい。つまり、次の解を生成するために必要な解のみを解生成手段が保持するようにすることが可能である。この場合、解生成手段は、例えば、4番目の解を生成するのであれば、保持していた3番目の解であるX3をXn+1=f(Xn)の式にX4=f(X3)のように代入することにより、4番目の解を生成する。なお、過去の複数の解を用いて、例えば、Xn+1=f(Xn)+f(Xn-1)の如き数式を用いるのであれば、解生成手段が保持すべき解は、その直前に使われた2つの解となる。このように新しい解を生成するために解生成手段で使用される解は、必ずしも1つとは限らない。そして、この場合における初期解は、2つとなる。このように初期解は必ずしも1つとは限らず、複数である場合がある。
【0013】
本願発明者は、上述の如き通信システムを構成するためのサーバ装置をも、本願発明の一態様として提案する。かかるサーバ装置の効果は、上述の通信システムの効果に同じである。
本願発明の一例となるサーバ装置は、ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置である。
この場合における前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、を有している。また、各ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。また、各ユーザ装置は、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっている。
そして、サーバ装置は、前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、を備えている。
本願発明者は、このようなサーバ装置と組合せて本願発明の通信システムを構成するユーザ装置をも、本願発明の一態様として提案する。かかるユーザ装置の効果は、上述の通信システムの効果に同じである。
一例となるユーザ装置は、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、を有している。また、ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。また、ユーザ装置は、前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段を備えている。
また、本願発明者は、前記ユーザ送信手段と、前記ユーザ受信手段とを備えた所定の通信装置との組合せにより本願発明によるユーザ装置を構成するためのコンピュータ装置であって、前記ユーザ解生成手段と、前記ユーザ暗号化手段と、前記ユーザ復号化手段と、前記初期解を生成する前記手段とを備えている、コンピュータ装置をも、本願発明の一態様として提案する。ここで、所定の通信装置の一例は、スマートフォン、或いは携帯電話であって、コンピュータ装置の一例は、所定の通信装置に搭載可能なSIMカード(Subscriber Identity Module Card)である。
【0014】
前記サーバ装置は、前記初期解を生成するための元となる前記解を前記同期情報として前記特定ユーザ装置としての前記ユーザ装置の双方に送るようになっていてもよい。この場合、前記特定ユーザ装置としての前記ユーザ装置はともに、前記サーバ装置から送られてきた前記解を用いて、それらの前記ユーザ解生成手段で同一の条件下で新たな前記解を生成して、生成された共通の前記解を前記初期解とするようになっていてもよく、それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっていてもよい。
この場合サーバ装置は、同期情報としての解を特定ユーザ装置である2つのユーザ装置の双方に送信する。かかる解は、サーバ解生成手段で生成されたものであっても良いし、そうでなくても良い。ユーザ装置のユーザ解生成手段は、当該解に基いて少なくとも1つの解を生成し、その生成された解を、初期解として用いる。つまり、この場合にサーバ装置から2つのユーザ装置に送られる解は、2つのユーザ装置が暗号化通信を行う場合における解を生成するための初期解ではなく、2つのユーザ装置におけるユーザ解生成手段が共通する初期解を生成するための初期解として用いられるのである。上述したように、共通した解を有するユーザ解生成手段は、同一の条件下においては、同じ解を同期して生成できるようになっている。同期情報としての解をサーバ装置から与えられた2つのユーザ装置におけるユーザ解生成手段は、同一の条件を互いに共有してさえいれば、同じ解を生成することができるから、その新たに生成した共通する解を初期解として用いることができるのである。
2つのユーザ装置のユーザ解生成手段は、上述の同一の条件を、予め共有していても良いし、サーバ装置から送信される情報によって共有しても良い。かかる条件は、例えば、ユーザ解生成手段が、上述したトークン等における時間同期に程近い方法で解の同期を取るようなものとなっているのであれば、『特定の時間(その時間は、過去でも良いし、まだ到来していない時間でも構わない。例えば、「その解を受取った日の100日後の0時0分」とすることができる。)にその解を初期解として生成される解を新たな初期解とする』、というようなものとすることができる。また、かかる条件は、例えば、ユーザ解生成手段が、上述したトークン等におけるイベント同期に程近い方法で解の同期を取るようなものとなっているのであれば、『その解を初期解として生成される何番目、例えば3番目の解を新たな初期解とする』、というようなものとすることができる。
いずれの場合においても、サーバ装置から2つのユーザ装置に送られた解である同期情報は、特定ユーザ装置が暗号化通信を行う場合における初期解として用いられることはなく、当該初期解を生成するためにのみ用いられる。したがって、万が一同期情報を第三者に盗まれたとしてもそれによって特定ユーザ装置が行う暗号化通信を第三者に盗聴されることはない。
【0015】
前記サーバ装置は、前記初期解を生成するための元となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものを、前記同期情報として前記特定ユーザ装置としての前記ユーザ装置の他方に送るようになっていてもよい。この場合、前記特定ユーザ装置のうちの前記同期情報を受取らなかった一方の前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を初期値とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記解を用いて、その前記ユーザ解生成手段で、一方の前記ユーザ装置における前記ユーザ解生成手段で新たな前記解が生成されるときの条件と同一の条件下で新たな前記解を生成しそれを前記初期解とするようになっていてもよく、それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっていてもよい。
この場合サーバ装置は、同期情報としての解を特定ユーザ装置である2つのユーザ装置の他方に送信する。かかる解は、特定ユーザ装置である2つのユーザ装置のうちの一方のユーザ解生成手段で生成することが可能なものである。上述したように、サーバ装置のサーバ解生成手段は、すべてのユーザ装置のユーザ解生成手段で生成される解と同期した解を生成することができる。したがって、ユーザ装置は、特定ユーザ装置である2つのユーザ装置のうちの一方のユーザ解生成手段で生成することが可能な解を把握することができるのである。
この場合、特定ユーザ装置のうちの同期情報を受取らなかった一方のユーザ装置は、そのユーザ解生成手段で所定の条件下で生成した新たな前記解を初期値とする。また、特定ユーザ装置のうち同期情報を受取った方のユーザ装置は、サーバ装置から送られてきた解を用いて、そのユーザ解生成手段で、一方のユーザ装置におけるユーザ解生成手段で新たな解が生成されるときの条件と同一の条件下で新たな解を生成しそれを初期解とする。つまり、特定ユーザ装置のうちの一方のユーザ装置は、自前の解(初期解)を用いて、特定ユーザ装置間で暗号化通信を行う際における初期解を生成し、特定ユーザ装置のうちの他方のユーザ装置は、サーバ装置から送られてきた同期情報としての解を初期解を生成するための初期解として用いることによって初期解を生成するのである。
2つのユーザ装置の解生成手段で共有されるべき同一の条件は、この場合においても、2つのユーザ装置間で予め共有されていても良いし、サーバ装置から送信される情報によって共有されても良い。条件の内容自体は上述したものと同様である。
この場合においても、サーバ装置から特定ユーザ装置における他方のユーザ装置に送られた解である同期情報は、特定ユーザ装置が暗号化通信を行う場合における初期解として用いられることはなく、当該初期解を生成するためにのみ用いられる。したがって、万が一同期情報を第三者に盗まれたとしてもそれによって特定ユーザ装置が行う暗号化通信を第三者に盗聴されることはない。しかも、この場合には、特定ユーザ装置における一方のユーザ装置には同期情報すら送られない。したがって、サーバ装置と上記一方のユーザ装置との間では、同期情報が盗まれる可能性すら、理論上存在しない。
【0016】
前記サーバ装置は、前記初期解となる前記解であって、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能なものと、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能なものとの双方に対して可逆的な演算を行って得た情報を、前記同期情報として前記特定ユーザ装置としての前記ユーザ装置のいずれかに送るようになっていてもよい。この場合、前記特定ユーザ装置のうちの前記同期情報を受取らなかった前記ユーザ装置は、その前記ユーザ解生成手段で所定の条件下で生成した新たな前記解を前記初期解とするようになっているとともに、前記特定ユーザ装置のうち前記同期情報を受取った前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって前記同期情報を受取らなかった前記ユーザ装置で生成される前記解と共通する前記解を前記同期情報から取出してそれを前記初期解とするようになっていてもよく、それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっていてもよい。
この場合サーバ装置は、同期情報を特定ユーザ装置であるユーザ装置のいずれかに送信する。かかる同期情報は、特定ユーザ装置である2つのユーザ装置のユーザ解生成手段で生成することができる2つの解に対して可逆的な演算を行うことによって得られるものである。典型的には、これらの同期情報は、2つの解を乗算したものとすることができ、或いは2つの解の排他的論理和を取ったものとすることができる。上述のように、サーバ装置のサーバ解生成手段は、すべてのユーザ装置のユーザ解生成手段で生成される解と同期した解を生成することができる。したがって、ユーザ装置は、特定ユーザ装置である2つのユーザ装置の双方におけるユーザ解生成手段で生成することが可能な解をともに把握することができる。それ故、把握したそれら2つの解に対して上述の如き可逆的な演算を行うことにより、サーバ装置は、上述した如き同期情報を得ることができるのである。この同期情報は、特定ユーザ装置中の2つのユーザ装置のうちのいずれかのユーザ装置に送られる。
同期情報を受取ったユーザ装置は、自らのユーザ解生成手段で生成した新たな解を用いて、同期情報に対して上述の可逆的演算の逆の演算である逆算を行う。例えば、サーバ装置で同期情報を得るために実行される上述の可逆的演算が乗算であるのであれば、ユーザ装置は、自らのユーザ解生成手段で生成した解により、同期情報を割る除算を行う。そうすると、同期情報を受取ったユーザ装置は、そのユーザ装置では本来得ることのできない、同期情報を受け取っていない側のユーザ装置のユーザ解生成手段でなら生成することのできる解を手に入れることができる。言い換えれば、同期情報を受けったユーザ装置は、同期情報から、同期情報を受け取っていない側のユーザ装置のユーザ解生成手段でなら生成することのできる解を取出すことができる。これを、同期情報を受取ったユーザ装置は初期解とする。他方、同期情報を受取っていないユーザ装置は、自らのユーザ解生成手段で生成した解を初期解とする。かかる解は、同期情報を受取ったユーザ装置が初期解とした解と一致させることができる。
この場合には、同期情報を受取らなかったユーザ装置のユーザ解生成手段で解を生成するときの条件と、サーバ装置のサーバ解生成手段で同期情報を生成するために用いられた解を生成するときの条件とを一致させる必要がある。かかる条件は、当該ユーザ装置とサーバ装置との間で予め共有されていても良いし、サーバ装置から当該ユーザ装置に送信される情報によって、両者の間で共有されても良い。条件の内容自体は上述したものと同様である。
この場合においても、サーバ装置から特定ユーザ装置のうちのいずれかのユーザ装置に送られた解である同期情報は、特定ユーザ装置が暗号化通信を行う場合における初期解として用いられることはなく、当該初期解を生成するためにのみ用いられる。したがって、万が一同期情報を第三者に盗まれたとしてもそれによって特定ユーザ装置が行う暗号化通信を第三者に盗聴されることはない。しかも、この場合には、特定ユーザ装置におけるユーザ装置のうちの片方には同期情報すら送られない。したがって、サーバ装置とかかるユーザ装置との間では、同期情報が盗まれる可能性すら、理論上存在しない。
【0017】
前記サーバ装置は、前記初期解となる前記解と、前記特定ユーザ装置のうちの一方における前記ユーザ解生成手段で生成することが可能な前記解との双方に対して可逆的な演算を行って得た第1の情報を前記同期情報として一方の前記ユーザ装置に送るようになっているとともに、前記初期解となる前記解と、前記特定ユーザ装置のうちの他方における前記ユーザ解生成手段で生成することが可能な前記解との双方に対して可逆的な演算を行って得た第2の情報を前記同期情報として他方の前記ユーザ装置に送るようになっていてもよい。この場合、前記特定ユーザ装置のうちの一方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第1の情報である前記同期情報から前記解を取出してそれを前記初期解とするようになっているとともに、前記特定ユーザ装置のうちの他方の前記ユーザ装置は、前記サーバ装置から送られてきた前記同期情報に対して、その前記ユーザ解生成手段で生成された新たな前記解を用いて前記可逆的な演算の逆算を行うことによって、前記第2の情報である前記同期情報から、一方の前記ユーザ装置で取出されたのと共通する前記解を取出してそれを前記初期解とするようになっていてもよく、それにより前記特定ユーザ装置間で前記解を同期させることを可能とするようになっていてもよい。
この場合サーバ装置は、同期情報を特定ユーザ装置である2つのユーザ装置の双方に送信する。この場合、2つのユーザ装置に送られる同期情報は、異なるものとなる。特定ユーザ装置である2つのユーザ装置のうちの一方に送られる同期情報は、初期解となる解と、特定ユーザ装置のうちの一方におけるユーザ解生成手段で生成することが可能な解との双方に対して可逆的な演算を行って得た第1の情報である。特定ユーザ装置である2つのユーザ装置のうちの他方に送られる同期情報は、初期解となる解と、特定ユーザ装置のうちの他方におけるユーザ解生成手段で生成することが可能な解との双方に対して可逆的な演算を行って得た第2の情報である。可逆的な演算の例は上述した通りである。サーバ装置のサーバ解生成手段は上述のように、すべてのユーザ装置におけるユーザ解生成手段で生成される解と同期した解を生成することができるから、特定ユーザ装置である2つのユーザ装置の双方におけるユーザ解生成手段で生成される解を生成することができる。それら2つの解のそれぞれと、後に特定ユーザ装置で初期解として用いられることになる同じ解とに対して可逆的な演算を行うことにより、サーバ装置は、上述した第1の情報と第2の情報とを生成することができる。後に特定ユーザ装置で初期解として用いられることになる上述の解は、サーバ解生成手段で生成されたものであっても良いし、そうでなくても良い。第1の情報についての同期情報は、特定ユーザ装置中の2つのユーザ装置の一方へ、第2の情報についての同期情報は、特定ユーザ装置中の2つのユーザ装置の他方へそれぞれ送られる。
第1の情報についての同期情報を受取った特定ユーザ装置中のユーザ装置の一方は、自らのユーザ解生成手段で生成された解を用いて、同期情報に対して上述の可逆的演算の逆の演算である逆算を行う。そうすると一方のユーザ装置は、そのユーザ装置では本来得ることのできない、サーバ装置が準備した解を手に入れることができる。言い換えれば、同期情報を受けった一方のユーザ装置は、同期情報から、初期解となる解を取出すことができる。これを、一方のユーザ装置は初期解とする。他方、第2の情報についての同期情報を受取った特定ユーザ装置中のユーザ装置の他方は、自らのユーザ解生成手段で生成された解を用いて、同期情報に対して上述の可逆的演算の逆の演算である逆算を行う。そうすると、他方のユーザ装置は、そのユーザ装置では本来得ることのできない、サーバ装置が準備した解を手に入れることができる。言い換えれば、同期情報を受けった他方のユーザ装置は、同期情報から、初期解となる解を取出すことができる。これを、他方のユーザ装置は初期解とする。これは一方のユーザ装置における初期解と一致する。
この場合には、一方のユーザ装置のユーザ解生成手段で解を生成するときの条件と、サーバ装置のサーバ解生成手段で当該ユーザ装置に送る同期情報を生成する場合に用いられた当該ユーザ装置のユーザ解生成手段で生成する解を生成したときの条件とを一致させる必要がある。同様に、他方のユーザ装置のユーザ解生成手段で解を生成するときの条件と、サーバ装置のサーバ解生成手段で当該ユーザ装置に送る同期情報を生成する場合に用いられた当該ユーザ装置のユーザ解生成手段で生成する解を生成したときの条件とを一致させる必要がある。かかる条件は、それらユーザ装置それぞれとサーバ装置との間で予め共有されていても良いし、サーバ装置からそれらユーザ装置に送信される情報によって、両者の間で共有されても良い。条件の内容自体は上述したものと同様である。
この場合においても、サーバ装置から特定ユーザ装置のうちのいずれかのユーザ装置に送られた解である同期情報は、特定ユーザ装置が暗号化通信を行う場合における初期解として用いられることはなく、当該初期解を生成するためにのみ用いられる。したがって、万が一同期情報を第三者に盗まれたとしてもそれによって特定ユーザ装置が行う暗号化通信を第三者に盗聴されることはない。
【0018】
前記サーバ装置は、1つの装置からなるものとされていても良いが、そのそれぞれがネットワークに接続可能とされた複数の装置である副サーバ装置を有していても良い。
例えば、前記サーバ装置は、前記ユーザ装置のうちの少なくとも複数との間で同期された前記初期解を生成することができるようになっており、且つ互いに前記ネットワークを介した暗号化通信を行うことができるようになっている、複数の副サーバ装置からなっていてもよい。この場合、前記特定ユーザ装置が、2つの副サーバ装置のそれぞれとの間で同期された初期解を生成するようになっている場合には、それら2つの副サーバ装置、或いはそれらの双方と暗号化通信を行うことができるようになっている他の副サーバ装置との協働により、前記同期情報生成手段と、前記サーバ送信手段とを構成するようになっていてもよい。
例えば、100個のユーザ装置が存在するとし、各ユーザ装置に、ユーザ装置1~ユーザ装置100と付番したとする。この場合において、2個のサーバ装置が存在するとし、各サーバ装置に、副サーバ装置1~副サーバ装置2と付番したとする。更に、副サーバ装置1と、ユーザ装置1~ユーザ装置50とは、同期された解を生成可能となっているとし、副サーバ装置2と、ユーザ装置51~ユーザ装置100とは、同期された解を生成可能となっているとする。このような場合において、ユーザ装置1~ユーザ装置50の中の任意の2つのユーザ装置は、これまでに説明したような1つのサーバ装置、つまりユーザ装置1~ユーザ装置50のすべてと解を同期して発生させることのできる副サーバ装置1によって同期情報を供給されることによって共通した初期解を持つことが可能であり、それにより、同期した解を生成できるようになるので、以上に説明したような同期した解を用いた暗号化通信を実行できるようになる。他方、ユーザ装置51~ユーザ装置100の中の任意の2つのユーザ装置は、ユーザ装置51~ユーザ装置100のすべてと解を同期して発生させることのできる副サーバ装置2によって同期情報を供給されることによって共通した初期解を持つことが可能であり、それにより、同期した解を生成できるようになるので、以上に説明したような同期した解を用いた暗号化通信を実行できるようになる。
しかしながら、副サーバ装置1と、副サーバ装置2とが、互いに通信を行わず、或いはユーザ装置への同期情報の提供に関する協力を行わないのであれば、ユーザ装置1~50の中の任意の1つのユーザ装置と、ユーザ装置51~100の中の任意の1つのユーザ装置とは、共通する初期解を持つことができず、それにより同期した解を持つことができず、結果として以上に説明したような同期した解を用いた暗号化通信を実行できないことになる。例えて言うなら、副サーバ装置1に紐付けられた、或いは管理されるユーザ装置1~ユーザ装置50と、副サーバ装置2に紐付けられた、或いは管理されるユーザ装置51~ユーザ装置100とは、異なるグループに属するものであり、異なるグループに属するユーザ装置間では、共通する初期解を持つことができず、結果として以上に説明したような同期した解を用いた暗号化通信を実行できないことになるのである。
これに対して、サーバ装置を構成する複数の副サーバ装置が、互いにネットワークを介した暗号化通信を行うことができるようになっている場合には、共通の副サーバ装置からは同期情報を受取ることのできない、異なるグループに属する2つのユーザ装置(これらが特定ユーザ装置となる)は、それら2つのユーザ装置と同期した解を生成することのできる副サーバ装置から、必要に応じて(上述のように、特定ユーザ装置を構成するユーザ装置の少なくとも片方には同期情報が供給されない場合がある。)同期情報の供給を受けることが可能となる。つまり、そのそれぞれが同一のグループの中では以上で説明したサーバ装置として機能しうる副サーバ装置が協働することにより、協働することになった複数の副サーバ装置は、当該協働した複数の副サーバ装置に管理される異なるグループに属するものが含まれるより多くのユーザ装置に対する新たなサーバ装置であるかのように振る舞うことが可能となる。それにより、異なるグループに属するユーザ装置が、以上に説明したような同期した解を用いた暗号化通信を実行できることになるのである。
この場合、複数の副サーバ装置のどれにより、同期情報が生成されても良い。ある副サーバ装置が同期情報を生成するために必要な情報であってその副サーバ装置が他の副サーバ装置と協働していなければ得ることができない情報、例えば、ある副サーバ装置が属するのとは異なるグループに属するあるユーザ装置で発生される解についての情報は、そのユーザ装置が属するグループにおける副サーバ装置から、同期情報を生成する副サーバ装置に暗号化した状態でネットワークを介して提供することが可能である。また、ある副サーバ装置が生成した同期情報を、その副サーバ装置が属さないグループに属するあるユーザ装置に提供することが必要となった場合には、同期情報を生成した副サーバ装置は、同期情報を送るべきユーザ装置が属するグループを管理する副サーバ装置に生成した同期情報を送ることにより、その副サーバ装置を介して、同期情報を送るべきユーザ装置を送ることが可能となるのである。
実際の実施の場面では、例えば、各プロバイダが、そのプロバイダと契約したユーザ装置を管理する副サーバ装置を準備し、各プロバイダが準備した副サーバ装置が他のプロバイダが準備した副サーバ装置と協働するというようなことが考えられる。もちろん、各副サーバ装置を準備するのはプロバイダに限らず、例えば、SSL(Secure Sockets Layer)或いはTLS(Transport Layer Security)の仕組みで実用されている認証局の如き機関が各副サーバ装置を準備する、という実施の態様も考えられる。
なお、上述した例においては、通信を行おうとする2つの異なるグループに属する2つのユーザ装置は、それらユーザ装置がそれぞれ属するグループに属している、互いに共同する2つの副サーバ装置からそれぞれ必要に応じて同期情報を提供されるようになっており、且つそれら2つの副サーバ装置は、それらのみで協働して、それらの間で直接必要な情報をやり取りするようになっていた。もっとも、この場合における2つの副サーバ装置は、2つの副サーバ装置の間で直接、必要な情報をやり取りする必要はなく、他の副サーバ装置を介して、必要な情報をやり取りするようになっていてもよい。この場合の他の副サーバ装置は、上記2つの副サーバ装置のそれぞれと暗号化通信を行える必要があるものの、上記2つの副サーバ装置は暗号化通信を行えるようになっている必要はない。例えば、上述の例であれば、ある2つのプロバイダが準備した副サーバ装置が各々複数のユーザ装置を管理して、各々のグループを形成しているとする。しかし、この場合において、それら2つのプロバイダが準備した副サーバ装置同士が、それら2つのプロバイダが異なる国に存在する等の理由で、上述の如き協働関係を形成していないとする。そのような場合において、それら2つの副サーバ装置のそれぞれと協働しうる、言葉を変えれば、それら2つの副サーバ装置のそれぞれと信頼関係を既に築けている他の副サーバ装置が存在するのであれば、当該他の副サーバ装置を間に入れて、互いに協働関係を築けていない副サーバ装置同士が暗号化通信を行えば良い。かかる通信の経路がすべて暗号化通信を行うものとなっているのであれば、そこでやり取りされる同期情報を生成するために必要な情報も、生成された同期情報も、第三者に盗聴されることは無いはずである。かかる場合において、上述の他の副サーバ装置は、必ずしもユーザ装置を管理して上述の如きグループを作っている必要はなく、ユーザ装置を管理して上述の如きグループを作っている2つの副サーバ装置を仲介する役割のみを果たせるようになっていても良い。そのような点において、他の副サーバ装置は、ユーザ装置と直接繋がっている、上述の2つの副サーバ装置とは異なるといえる。例えて言うなら、この場合の他の副サーバ装置は、SSL或いはTLSにおける上級認証局のようなものである。上級認証局のように機能する「他の副サーバ装置」が、3つ以上の副サーバ装置の中に存在する場合には、「他の副サーバ装置」が同期情報を生成することも可能である。また、他の副サーバ装置は必ずしも1つである必要はなく、上述の2つの副サーバ装置の間に、複数の他の副サーバ装置が入ることも可能である。このような場合、例えば、2つの副サーバ装置の間に、3つの副サーバ装置が入る場合には、2つの副サーバ装置は、例えば、2つの副サーバ装置の一方-他の副サーバ装置-他の副サーバ装置-他の副サーバ装置-2つの副サーバ装置の他方、のように接続されることになる。ここで、「-」で表現された部分では、その両側の副サーバ装置が暗号化通信を行うことになる。
なお、各副サーバ装置間において実行される暗号化通信は、公知、或いは周知のものであってもよいが、本願で繰り返し説明されている、同期した解を用いた暗号化通信であっても構わない。この場合には、暗号化通信を行う副サーバ装置同士は、同期した解を生成するための手段、機能を備えている必要がある。
【0019】
本願発明者は、上述の如き通信システムを構成するためのサーバ装置で実行される方法をも、本願発明の一態様として提案する。かかる方法の効果は、上述の通信システムの効果に同じである。
その方法の一例は、ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置にて実行される方法である。
その場合、前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、を有している。ユーザ装置は、また、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっている。
かかる方法の発明は、また、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段を備えた前記サーバ装置が実行する、前記特定ユーザ装置の一方から、前記特定情報を受信する過程と、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する過程と、前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信する過程と、を含む。
本願発明者は、上述の如き通信システムを構成するためのユーザ装置で実行される方法をも、本願発明の一態様として提案する。かかる方法の効果は、上述の通信システムの効果に同じである。
かかる方法の一例は、これまでに説明したユーザ装置の1つで実行される方法であり、前記ユーザ装置が実行する、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信する過程、前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する過程、を含む方法である。
【0020】
本願発明者は、上述の如き通信システムを構成するためのサーバ装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。かかるコンピュータプログラムの効果は、上述の通信システムの効果に同じである。
そのコンピュータプログラムの一例は、ネットワークを介して互いに通信可能とされた、多数のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続されたサーバ装置と、を含んでなる通信システムを、前記多数のユーザ装置との組合せによって構成するサーバ装置として、コンピュータを機能させるためのコンピュータプログラムである。
前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、を有している。ユーザ装置は、また、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、且つ、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送信手段により前記サーバ装置へ送信できるようになっている。
コンピュータプログラムは、前記コンピュータを、前記特定ユーザ装置の一方から、前記特定情報を受信するサーバ受信手段と、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成手段で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成手段で生成されるものと同期された前記解を生成することができるサーバ解生成手段と、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である同期情報を前記サーバ解生成手段で生成される前記解を用いて生成する同期情報生成手段と、前記同期情報を、前記特定ユーザ装置のうちの少なくとも片方の前記ユーザ装置に送信するサーバ送信手段と、して機能させるためのものである。
本願発明者は、上述の如き通信システムを構成するためのユーザ装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。かかるコンピュータプログラムの効果は、上述の通信システムの効果に同じである。
かかるコンピュータプログラムの一例は、これまでに説明したサーバ装置の1つとの組合せによって前記通信システムを構成するユーザ装置としてコンピュータを機能させるためのコンピュータプログラムである。
かかるコンピュータプログラムは、前記コンピュータを、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成手段と、送信の対象となる送信対象データを、前記ユーザ解生成手段で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化手段と、前記暗号化データを他の装置に送信するユーザ送信手段と、前記暗号化データを他の装置から受信するユーザ受信手段と、受信した前記暗号化データを、前記ユーザ解生成手段で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化手段と、前記サーバ装置から前記同期情報を受取ったときに、前記特定情報を用いて前記初期解を生成する手段と、して機能させるためのものでる。
かかるコンピュータプログラムは、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、前記特定ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成手段でそれぞれ生成することにより、相手方の前記ユーザ暗号化手段で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送信手段から送られてきて自らの前記ユーザ受信手段により受取ったものを、自らの前記ユーザ復号化手段によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようにする。
【図面の簡単な説明】
【0021】
【
図1】第1実施形態による通信システムの全体構成を示す図。
【
図2】
図1に示した通信システムに含まれるユーザ装置の外観を示す図。
【
図3】
図1に示した通信システムに含まれるユーザ装置のハードウェア構成を示す図。
【
図4】
図1に示した通信システムに含まれるユーザ装置の内部に生成される機能ブロックを示すブロック図。
【
図5】
図1に示した通信システムに含まれるサーバの内部に生成される機能ブロックを示すブロック図。
【
図6】
図1に示した通信システムで通信が行われるときに実行される処理の流れを示す図。
【
図7】第2実施形態による通信システムの全体構成を示す図。
【
図8】
図7に示した通信システムにおけるサーバと、ユーザ装置との関係を概念的に示す図。
【
図9】
図7に示した通信システムにおいて、サーバからユーザ装置へと同期情報を提供するために構築される一例となる通信状態を概念的に示す図。
【
図10】
図7に示した通信システムにおいて、サーバからユーザ装置へと同期情報を提供するために構築される他の通信状態を概念的に示す図。
【
図11】
図7に示した通信システムにおいて、サーバからユーザ装置へと同期情報を提供するために構築される更に他の通信状態を概念的に示す図。
【発明を実施するための形態】
【0022】
以下、本発明の好ましい第1、第2実施形態について説明する。
なお、各実施形態及びその変形例の説明では、共通の対象には重複する符号を付すものとし、且つ共通する説明は場合により省略するものとする。また、各実施形態及びそれらの変形例は、それらを組合せ或いはそれらの一部同士を置換することに特に矛盾することがない場合には、それらの2つ或いはそれ以上を適宜組合せ或いはそれらの一部を適宜置換することが可能である。
【0023】
≪第1実施形態≫
図1に、本願発明の送受信システムの第1実施形態としての通信システムの全体構成を概略で示す。
第1実施形態の通信システムは、多数のユーザ装置100-1~100-N(以後、単に、「ユーザ装置100」と記載する場合もある。)、及びサーバ200を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
この実施形態におけるユーザ装置100は、本願でいうユーザ装置に相当するものである。また、この実施形態におけるサーバ200は本願でいうサーバ装置に相当する。
ユーザ装置100-1~100-Nは、それらのうちの2つが互いに通信を行うことを前提としている。ユーザ装置100-1~100-Nは各ユーザが所有するものとされる。この実施形態ではその通信は後述するような、連続して発生させられる解を用いた暗号化通信であるものとするが、ユーザ装置100-1~100-N暗号化通信に加えて暗号化通信以外の通信を行えるようになっていてももちろん構わない。かかる暗号化通信以外の通信は公知又は周知の技術によって実現すれば良い。ユーザ装置100は、他のユーザ装置100にネットワーク400を介してホームページを閲覧させるためのコンピュータであってもよい。
サーバ200は、この実施形態では1つであり、1つのサーバ200が、すべてのユーザ装置100を管理している。逆にいえば、この実施形態では、1つのサーバ200が管理するユーザ装置100のみを
図1に図示している。
これには限られないが、この実施形態におけるサーバ200は、ある程度の公的な性質を有する企業、例えば、SSLやTSLにおける認証局となれる程度の信用を持っている企業、或いは公的な団体が管理するものとすることができる。或いは、サーバ200は、ユーザ装置100がネットワーク400に接続する場合においてそのネットワーク400への接続をなすプロバイダがその管理を行うものとなっていてもよい。
【0024】
ユーザ装置100は、コンピュータを含んでいる。より詳細には、この実施形態におけるユーザ装置100は、汎用のコンピュータにより構成されている。
【0025】
次に、ユーザ装置100の構成を説明する。各ユーザ装置100-1~100-Nの構成は、本願発明との関連でいえば同じである。
ユーザ装置100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク400を介しての通信が可能なものであり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められ、それが可能であるのであればそれ以外の仕様は特に問わない。
例えば、ユーザ装置100がスマートフォンかタブレットなのであれば、スマートフォンとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPhoneで良いし、タブレットとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPadでよい。以下、これには限られないが、ユーザ装置100がスマートフォンであることとして話を進める。
【0026】
ユーザ装置100の外観の一例を
図2に示す。
ユーザ装置100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。ユーザ装置100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をユーザ装置100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ装置100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、ユーザ装置100がノート型パソコン、デスクトップ型パソコンである場合には、入力装置102はキーボードや、マウス等になるであろう。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
【0027】
ユーザ装置100のハードウェア構成を、
図3に示す。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112、或いはRAM113に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ユーザ装置100は、ハードウェアはHDD(hard disk drive)その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のユーザ装置としてこのユーザ装置100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ装置100にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのユーザ装置100へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムとしては、これに限られず、ユーザ装置100がスマートフォンであれば、ユーザをスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ装置100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。場合によっては、上述のコンピュータプログラムやデータが記録されていてもよい。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっている。また、周知のようにディスプレイ101に画像を表示するための画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。
インターフェイス114は、また、インターネットであるネットワーク400を介して外部と通信を行うための公知の手段である送受信機構(図示を省略)に接続されており、それにより、ユーザ装置100は、ネットワーク400を介してデータを送信することと、ネットワーク400を介してデータを受信することとが可能になっている。かかるネットワーク400を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、ユーザ装置100がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク400から受取ったデータは、インターフェイス114により受取られるようになっており、インターフェイス114から送受信機構にわたされたデータは、送受信機構によって、ネットワーク400を介して外部、例えば、他のユーザ装置100かサーバ200に送られるようになっている。送受信機構がネットワーク400から受取るデータとしては、少なくともサーバ200から送られてきた同期情報と、他のユーザ装置100から送られてきた暗号化データがある。送受信機構から外部に送られるデータとしては、少なくともサーバ200に送られる特定情報と、他のユーザ装置100に送られる暗号化データがある。
【0028】
CPU111がコンピュータプログラムを実行することにより、ユーザ装置100内部には、
図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ装置100を本願発明のユーザ装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ装置100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ装置100内には、本願発明の機能との関係で、入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127が生成される。なお、以上の入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127の機能は、ユーザ装置100に内蔵されたSIMカード上に存在していても構わない。その場合、それらの機能は、ユーザ装置100にインストールされたコンピュータプログラムによって生成されるものとは限らない。
【0029】
入力部121は、インターフェイス114からの入力を受取るものである。
インターフェイス114からの入力には、例えば、入力装置102によって入力された特定情報がある。特定情報は、暗号化通信をこれから行おうとする2つのユーザ装置100(本願発明における特定ユーザ装置)を特定するためのものである。通信を自分から行う側のユーザ装置100に関する特定情報は、すべてのユーザ装置100についてユニークな情報であることが最低限必要とされ、例えば、ユーザ装置100のIPアドレス、電子メールアドレス、URL、SNS(social networking service)のID等であり、通信を受ける側のユーザ装置100についても同様である。この実施形態では、これには限られないが、特定ユーザ装置である2つのユーザ装置100の双方をともにIPアドレスで特定するものとする。なお、この実施形態ではこれには限られないが、ユーザが入力装置102を操作して暗号化通信をこれから行おうとする相手方のユーザ装置100を特定する情報を入力すると、そのユーザ装置100のIPアドレスと相手方のユーザ装置100のIPアドレスの双方を特定する特定情報が自動的に生成されるようになっている。これにかえて、ユーザが暗号化通信を行う2つのユーザ装置100のIPアドレスの双方を入力装置102に入力することによって、特定情報が生成されるようになっていても構わない。
また、ユーザは、入力装置102を操作することにより、送信対象データを生成することができる。かかる送信対象データは、ユーザ装置100間で暗号化した状態で送受信される場合における送受信の対象となるデータである。例えば、かかる送受信が電子メールの送受信である場合には、そのデータは電子メールのデータになるし、一方のユーザ装置100がインターネット上の仮想店舗のホームページを提供するものであって他方のユーザ装置100がその仮想店舗で商品を購入しようとする顧客である場合には、仮想店舗のユーザ装置100側から顧客に送られるデータは、例えば、商品の選択画面や、顧客情報、送付先情報等の記載を顧客に行わせるためのフォーマットを顧客のユーザ装置100に提供するためのデータであり、顧客のユーザ装置100側から仮想店舗のユーザ装置100に送られるデータは、顧客が購入対象として選択した商品及びその数量を特定する情報であったり、上述の如きフォーマットに顧客が記入を行った顧客情報、送付先情報であったりする。送信対象データは、テキストデータ、画像データ、音声データ等その形式を問わない。送信対象データは、ユーザが入力装置102を操作して入力したデータそのものである必要はなく、それに対してユーザ装置100が所定の処理を行うことによって作られたデータであってもよく、むしろその方が通常である。
入力部121にインターフェイス114から入力されるものとしては他に、に送受信機構からインターフェイス114に送られてくる、上述した同期情報と暗号化データがある。
以上のようにして、入力部121には、入力装置102から入力されるものとして特定情報と、送信対象データが、送受信機構から入力されるものとして、同期情報と、暗号化データが入力されることになる。
入力部121は、これらを受取ると、特定情報と同期情報を受取った場合には、それらを主制御部122へ、送信対象データと暗号化データを受取った場合にはそれらをユーザ暗号化復号化部126へと、それぞれ送るようになっている。
【0030】
主制御部122は、ユーザ装置100内に生成された各機能ブロック全体の制御を行うものである。
主制御部122は、入力部121から特定情報を受取る場合がある。特定情報を受取った場合、主制御部122はそれを出力部127に送るようになっている。
主制御部122は、同期情報を受取る場合がある。同期情報を受取った場合、主制御部122は、その同期情報をユーザ初期解生成部125に送るようになっている。
【0031】
ユーザ解生成部123は、解を生成するものである。解の生成の仕方については後述するが、この実施形態における解は、文字、数字、記号の少なくとも1つを所定数羅列したものであり、また、初期解に基いて、同じ条件下で生成されたものが常に同じものとなるようにされている。典型的には、解は擬似乱数であり、各解はこの実施形態では、その桁数乃至文字数が常に一定となるようにして生成されるようになっている。
ユーザ解生成部123が解を生成するのは、まず、ユーザ暗号化復号化部126が後述するが如き暗号化の処理、又は復号化の処理を行う場合である。ユーザ暗号化復号化部126が暗号化の処理又は復号化の処理を行う場合というのは、このユーザ装置100が、他のユーザ装置100と暗号化通信を行うときであるが、その詳細は後に譲る。ユーザ解生成部123は、ユーザ装置100間での暗号化通信のために作られた解を、ユーザ暗号化復号化部126に送るようになっている。
また、ユーザ装置100におけるユーザ解生成部123は、同期情報がユーザ初期解生成部125に送られた場合においても、解を生成する場合がある。このときに生成される解は、暗号化通信に用いられる初期解を生成する目的で生成される。暗号化通信に用いられる初期解を生成する目的で生成された解は、ユーザ解生成部123からユーザ初期解生成部125へと送られるようになっている。
【0032】
ユーザ解記録部124は、ユーザ解生成部123が解を生成する場合に必要となる情報が記録されている。かかる情報は、主に真初期解のデータと初期解のデータである。真初期解のデータ及び初期解のデータはともに、後に生成される解に影響を与えるものである。真初期解、及び初期解のデータは、解のデータと同じ形式、即ち、文字、数字、記号の少なくとも1つを所定数羅列したものであって、その桁数乃至文字数が解と同数であるものである場合もあるし、そうでない場合もある。この実施形態ではこれには限られないが、真初期解、及び初期解のデータは解のデータと同じ形式で、真初期解、及び初期解は解と同じ桁数乃至文字数とされている。
ユーザ解生成部123は、解を生成する場合、ユーザ解記録部124に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
ユーザ解生成部123は、ユーザ装置100とサーバ200とが同期して解を発生させることが必要になった場合には、真初期解か、後述する解を読み出してこれを行う。少なくとも最初の解を生成する場合、ユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解のデータ(なお、真初期解は、ユーザ装置100とサーバ200とが同期して解を発生させるために用いられる初期解であって、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した初期解を発生させるために用いられる本願発明でいう初期解とは異なるものである。)、その他のデータを用いる。つまり、ユーザ解生成部123が少なくとも最初の解を生成する前の状態では、ユーザ解記録部124には、真初期解のデータが記録されている。
他方、ユーザ解生成部123は、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した初期解を発生させる場合には、原則としてユーザ解記録部124に記録されている初期解のデータを読み出してこれを行う。
ユーザ解生成部123での解の生成方法の詳細については追って詳述することとする。
【0033】
ユーザ初期解生成部125は、同期情報を用いて、特定ユーザたる2つのユーザ装置100が解を同期させての暗号化通信を行う場合において必要になる初期解を生成するためのものである。生成される初期解は、上述のように、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した初期解を発生させるために用いられる。
上述したようにユーザ初期解生成部125には、主制御部122から、同期情報が送られてくる場合がある。かかる同期情報を受取った場合には、ユーザ初期解生成部125は、当該同期情報に基いて初期解を生成するようになっている。初期解を生成する際に、ユーザ初期解生成部125はユーザ解生成部123が生成した解を必要とする場合がある。かかる解は、サーバ200とで生成された解と同期した解である。ユーザ初期解生成部125が解を必要とした場合には、ユーザ初期解生成部125は、ユーザ解生成部123に対して解を生成せよとの指示を送る。
かかる指示を受取ったユーザ解生成部123は、解を生成し、それをユーザ初期解生成部125に送るようになっている。
【0034】
ユーザ暗号化復号化部126は、暗号化と復号化の処理の少なくとも一方を行うものであり、これには限られないが、この実施形態では暗号化と復号化の処理の双方を行うものとされている。かかる暗号化と復号化は、ユーザ装置100同士で暗号化通信を行うために必要な処理である。
ユーザ暗号化復号化部126が暗号化、及び復号化の処理を行うのは、主制御部122から、暗号化、復号化を行って良いとの許可があったときのみである。
暗号化の方法の詳細は後述するが、暗号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における暗号化に用いられる。これには限られないが、この実施形態で暗号化されるデータは、入力装置102から入力されたデータに基いて生成された送信対象データである。入力装置102で生成された送信対象データは平文のデータであるが、それがユーザ暗号化復号化部126で暗号化された結果暗号化データになる。ユーザ暗号化復号化部126で生成された暗号化データは、出力部127に送られるようになっている。
復号化の方法の詳細は後述するが、復号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における復号化に用いられる。これには限られないが、この実施形態で復号化されるデータは、他のユーザ装置100から送られてきた暗号化データである。暗号化データは、それを送ってきたユーザ装置100におけるユーザ暗号化復号化部126で生成されたものであり、それがユーザ暗号化復号化部126で復号化された結果、元の送信対象データに戻る。ユーザ暗号化復号化部126で生成された平文の復号化データは、出力部127に送られるようになっている。
【0035】
出力部127は、ユーザ装置100内の機能ブロックで生成されたデータをインターフェイス114に出力するものである。
出力部127には、上述のように主制御部122から特定情報が送られてくる場合がある。出力部127は、かかる特定情報を、インターフェイス114に出力する。この特定情報は、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介してサーバ200に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、暗号化データが送られてくる場合がある。暗号化データを受取った場合には、出力部127は、その暗号化データを、インターフェイス114に出力する。この暗号化データは、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介して暗号化通信の相手側となる他のユーザ装置100に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、平文の送信対象データが送られてくる場合がある。この送信対象データは、他のユーザ装置100で生成されたものである。送信対象データを受取った場合には、出力部127は、その送信対象データを、インターフェイス114に出力する。送信対象データは、ユーザ装置100内で適当に利用されるが、例えばディスプレイ101に送られ、それを受取ったディスプレイ101に送信対象データに応じた表示を行わせるようになっている。
【0036】
次に、サーバ200の構成について説明する。
サーバ200は、ハードウェアとして見た場合には、既存の公知又は周知のサーバで構わない。また、そのハードウェア構成も一般的なものでよく、図示を省略するが、大雑把に言えば、CPU111、ROM112、RAM113、インターフェイス114をバス116で接続するという、ユーザ装置100のハードウェア構成を踏襲することができる。もっとも、サーバ200は通常、HDDその他の大容量記録装置を有するのが一般的であろうし、この実施形態でもそうなっている。
サーバ200が備えるCPU、ROM、RAM、インターフェイス、バス、及び大容量記録装置の構成、機能は、ユーザ装置100におけるそれらの構成、機能と変わらない。また、サーバ200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様の、サーバ200外の機器とネットワーク400を介しての通信を行うための送受信機構が接続されている。サーバ200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
【0037】
サーバ200の内部におけるROM、大容量記録装置等に記録されていたコンピュータプログラムを実行することによって、サーバ200の内部には以下に説明するような機能ブロックが生成される。なお、以下の機能ブロックは、サーバ200を本願発明のサーバとして機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、サーバ200にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。また、上記コンピュータプログラムは、サーバ200にプリインストールされたものでもよいが、出荷後のサーバ200にインストールされたものでもあってもよい。その場合、上記コンピュータプログラムのサーバ200へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、ユーザ装置100の場合と同様である。
サーバ200内には、本願発明の機能との関係で、入力部221、主制御部222、サーバ解生成部223、サーバ解記録部224、同期情報生成部225、及び出力部227が生成される(
図5)。
【0038】
入力部221は、インターフェイスからの入力を受取るものである。
インターフェイスからの入力には、例えば特定情報がある。特定情報は、ユーザ装置100からネットワーク400を介して送られてきたものであり、サーバ200がその送受信機構で受取ったものである。入力部221は、特定情報を受取った場合には、それらを主制御部222に送るようになっている。
【0039】
主制御部222は、サーバ200内に生成された各機能ブロック全体の制御を行うものである。
主制御部222は、入力部221から特定情報のデータを受取る場合がある。特定情報のデータを受取った場合、主制御部222は、当該データを同期情報生成部225に送るようになっている。
【0040】
サーバ解生成部223は、解を生成せよとの指示を受取った場合に解を生成するものである。サーバ解生成部223は、解を生成せよとの指示を、後述するように同期情報生成部225からから受取る場合があり、そのような指示を受取った場合に解を生成するようになっている。
解の生成の仕方については後述するが、サーバ解生成部223が実行する解の生成は、各ユーザ装置100のユーザ解生成部123が実行する解の生成と同じ方法とされる。
サーバ解生成部223は、解を生成する場合、サーバ解記録部224に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
サーバ解記録部224には、サーバ解生成部223が解を生成する場合に必要となる情報が記録されている。かかる情報は、主に真初期解のデータ、或いは解のデータである。真初期解のデータは、各ユーザ装置100のユーザ解記録部124に記録される真初期解のデータと同じものである。真初期解は、解を生成する場合に用いられるが、サーバ200はすべてのユーザ装置100(ユーザ装置100-1~ユーザ装置100-N)と同期した解を生成する必要があるから、少なくとも1つも解が生成されていない状態では、サーバ解記録部224には、ユーザ装置100の数と同じ数の、N個の真初期解が記録されている。また、各真初期解は、どの真初期解がどのユーザ装置100で生成される解に対応する真初期解であるかをサーバ解生成部223が把握する必要があるため、各真初期解は、各ユーザ装置100を特定するための情報と一対一で紐付けられた状態で、サーバ解記録部224に記録されている。各ユーザ装置100を特定するための情報は、特定情報に含まれうる各ユーザ装置100にユニークな情報であり、これには限られないがこの実施形態では、各ユーザ装置100のIPアドレスである。
サーバ200におけるサーバ解生成部223は、ユーザ装置100とサーバ200とが同期して解を発生させることが必要になった場合には、真初期解か、後述する解を読み出してこれを行う。少なくとも最初の解を生成する場合、サーバ解生成部223は、サーバ解記録部224に記録されている真初期解のデータその他のデータを用いる。
サーバ解生成部223での解の生成方法の詳細については追って詳述することとする。
サーバ解生成部223は、上述のように同期情報生成部225から、解を生成せよとの指示を受ける場合があるが、その場合には特定情報に含まれていた、2つの特定ユーザ装置を特定するための情報である2つのIPアドレスをも同期情報生成部225から受取るようになっている。同期情報生成部225から2つのIPアドレスを受取った場合、サーバ解生成部223はそれら2つのIPアドレスの少なくとも一方と紐付けられたIPアドレスに紐付けられた真初期解又は解をサーバ解記録部224から読み出すようになっている。そして、サーバ解生成部223は、読み出したその真初期解又は解を用いて、新たな解を生成するようになっている。少なくともあるIPアドレスで特定されるユーザ装置100についての解が最初に作られる場合には、そのIPアドレスに紐付けられていた真初期解を、サーバ解生成部223はサーバ解記録部224から読みだすようになっている。かかる真初期解に基いて、それに続く解は生成されることになる。詳細は後に譲るが、これにより、サーバ解生成部223は、各ユーザ装置100における各ユーザ解生成部123が生成する解と同じ解を、生成することができるようになっている。つまり、サーバ200で生成される解と、ユーザ装置100で生成される解とは、互いに同期したものとなるようになっている。
サーバ解生成部223が生成した解は、同期情報生成部225に送られるようになっている。
【0041】
同期情報生成部225は、同期情報を生成するものである。同期情報は、特定ユーザ装置に含まれる2つのユーザ装置100が暗号化通信を行うに当って、当該暗号化通信を行うために2つのユーザ装置100の双方で必要となる解を同期させるために2つのユーザ装置100の少なくとも片方で必要となる情報である。平たく言えば、同期情報は、2つのユーザ装置100で解を同期させるために必要な情報であって、解それ自体ではないものである。同期情報の詳細は追って説明する。なお、このような同期情報が必要となるのは、2つの装置が同期した解を生成する場合には、この実施形態で既に説明したように、サーバ200と各ユーザ装置100とが共通する真初期解を有するように、暗号化通信を行う特定ユーザ装置に含まれる2つのユーザ装置100が共通する解(例えば、この実施形態では初期解)が必要であるところ、相手が持つ解を知ることのできない2つのユーザ装置100に解を同期させるための何らかの情報を提供しなければならないからである。この実施形態ではこれには限られないが、1つのサーバ200にてそれを実現することとし、その具体的な手法として同期情報を用いることとしている。
同期情報生成部225は、同期情報生成部225が主制御部222から特定情報を受取った場合に同期情報を生成する。同期情報生成部225は、同期情報を生成する場合に、特定情報によって特定されるユーザ装置100において生成される解と同期した解を用いる。解を生成させるために、同期情報生成部225は、サーバ解生成部223に対して解を生成せよとの指示を送り、解を生成するために必要な同期情報をサーバ解生成部223に送る。これにより、サーバ解生成部223が生成した解は、同期情報生成部225に送られ、同期情報生成部225は受取った解を用いて同期情報を生成することができる。
同期情報生成部225が同期情報を生成した場合、同期情報生成部225は、その同期情報を特定情報とともに出力部227に送るようになっている。
【0042】
出力部227は、サーバ200内の機能ブロックで生成されたデータをインターフェイスに出力するものである。
出力部227には、上述のように、同期情報生成部225から同期情報と特定情報とが送られてくる。出力部227は、同期情報を受取ると、それを特定情報とともにインターフェイスに出力する。これら同期情報及び特定情報は、インターフェイスから送受信機構に送られ、送受信機構から、ネットワーク400を介して、特定情報によって特定された2つのユーザ装置100の少なくとも片方に送られるようになっている。
【0043】
次に、以上で説明した送受信システムの使用方法、及び動作について、
図6を参照して説明する。
自分のユーザ装置100と他のユーザ装置100との間で暗号化通信を行おうとするユーザは、まず、自らが所有するユーザ装置100の入力装置102を操作して、暗号化通信をしようとする相手側のユーザ装置100を特定するための特定情報を入力する。これにより、暗号化通信を行おうとする2つのユーザ装置100である特定ユーザ装置における2つのユーザ装置100を特定するための情報である特定情報が生成される(S1001)。特定情報のデータは、インターフェイス114を介して入力部121に送られ、入力部121から主制御部122に送られる。
【0044】
特定情報を受取ると、主制御部122は、特定情報を出力部127に送る。出力部127は、受取った特定情報をインターフェイス114に送る。インターフェイス114は、受取った特定情報を更に送受信機構に送る。特定情報は、送受信機構からネットワーク400を介してサーバ200に送られる(S1002)。
【0045】
サーバ200は、その送受信機構で、ユーザ装置100から送られてきた特定情報を受取る(S2001)。特定情報は、サーバ200のインターフェイスに送られ、インターフェイスから入力部221に送られる。入力部221は、特定情報のデータをインターフェイスから受取ると、それを主制御部222に送る。
主制御部222は、入力部221から特定情報のデータを受取ると、特定情報を同期情報生成部225に送る。それにより、同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
【0046】
一例となる同期情報の生成方法について説明する。
この実施形態では、特定情報で特定される2つのユーザ装置100のうちのいずれかで生成することができる解を、同期情報とする。これには限られないが、この実施形態では、特定情報を送ってきた側のユーザ装置100のユーザ解生成部123で生成可能な解を同期情報とすることとする。
したがって、同期情報生成部225はそのような解が必要である。したがって、同期情報生成部225は、そのような解を生成せよとの指示を、特定情報とともにサーバ解生成部223に対して送る。ここで送る特定情報はもちろん、特定情報の全体でなく特定情報を送ってきたユーザ装置100のIPアドレスのみでもよい。他の実施形態、変形例でも同様であるが、同期情報生成部225は必要なIPアドレスのみをサーバ解生成部223に送れば足りる。
【0047】
この実施形態におけるサーバ解生成部223は、特定情報に含まれる2つのIPアドレスのうち、特定情報を送ってきたユーザ装置100のIPアドレスに紐付けられている真初期解又は解を呼び出す。上述したように、この実施形態におけるサーバ解生成部223は、少なくとも初めて解を生成するとき、サーバ解記録部224に記録されている真初期解のデータを読み出す。真初期解のデータは、例えば、20桁の数字と小文字の英字混じりの文字列であるものとする。かかる真初期解は、各ユーザ装置100にユニークなものであり、各ユーザ装置100に対して、サーバ200が、或いはサーバ200の管理者が割り当てたものである。真初期解は1つのこともあるが、複数の場合もある。この実施形態では真初期解は1つであるので、サーバ解生成部223は、1つの真初期解をサーバ解記録部224からを読み出す。
サーバ解生成部223は、それら真初期解に対して演算を行うことにより、その時点における解を生成する。
まず、演算が可能なように、真初期解を数字のみに直す。真初期解の中に、英字が含まれている場合には、それを2桁の数字に置き換える。置き換えの対象となる数字は、その英字のアルファベット中の順番である。例えば、「a」なら「01」に、「b」なら「02」に、「z」なら「26」にそれぞれ置き換える。例えば、真初期解が「5a6458p6556ff4272149」というものだったとする。この場合、真初期解を上述の約束にしたがって数字のみにすると、「501645816655606064272149」となる。数字のみにした場合の桁数は、真初期解に含まれていた英字の数に応じて増えることになる。なお、(、)、!、&、:等の記号をも解に含めたいのであれば、「(」に「27」、「)」に「28」、「!」に「29」等の適当な数字の割当てを行うようにすればよい。
次に、数字に対して演算を行う。この演算の結果求められるのは、解の元となる数字の列である。その数字の列をXとすると、Xは、所定の時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。以下の数式におけるX1は、真初期解を数字に直したものである。この実施形態で真初期解を5つとしているのは、西暦の年、月、日、時、分という5つの要素にしたがって解を変化させることにしているからである。なお、時刻によって解の同期を取るこのような手法は、従来から存在する時間同期の手法と同様のものである。
X=X1
PX1
Q+X1
RX1
S+X1
T
ここで、P=西暦の年の数字を5で割った余りに1を足したもの、Q=月の数字を5で割った余りに1を足したもの、R=日の数字を5で割った余りに1を足したもの、S=時の数字を5で割った余りに1を足したもの、T=分の数字を5で割った余りに1を足したものである。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。なお、P~Tのすべてにおいて、1を足す過程を加えているのは、P~Tのすべてがたまたま0になった場合に最終的に得られる解Xが5になるが、そのような簡単な数字が頻出することを避けるためである。
上述の演算を行った結果、解の元となる数字の列Xが得られる。次いで、その数字の列の中の任意の2桁の中に01~26という数字が含まれていたら、先ほどの英字から数字への置き換えの約束事とは逆の約束事にしたがい、それらをa~zの英字に置き換える。
このようにして得られた数字と小文字の英字混じりの文字列は通常、20桁以上の桁数である。それが20桁以上であるときには、その文字列の例えば前から20文字を抜き出し、それを解とする。上述のようにして得られた数字と小文字の英字混じりの文字列がちょうど20桁の場合には、それをそのまま解とする。また、上述のようにして得られた数字と小文字の英字混じりの文字列が20桁よりも少ない場合には、何らかの決まり事に基いて桁数を増やす。例えば、その文字列の最初の数字又は英字に基いて何らかの数字又は文字を、桁数が20桁に至るまでに、その文字列中に挿入するようにしてもよい。或いは、上述の数式におけるPとTとを入れ替えて演算を行って得られる数字の列に対して数字を英字に置き換える上述の過程を実行することによって新たな数字と小文字の英字混じりの文字列を生成して、それを元の数字と小文字の英字混じりの後に繋げるというような作業を、その桁数が少なくとも20桁になるまで繰り返して、その前から20文字を抜き出して解とする、というような方法も採用しうる。
いずれにせよ、これにより、真初期解に基いて、ある時点の日時に対応した解が生成されることになる。これには限られないが、この実施形態では、サーバ200のサーバ解生成部223は、ユーザ装置100がサーバ200に特定情報を送信した時刻(例えば、特定情報の送信時において特定情報を送信するためのデータのパケットにユーザ装置100で付されたタイムスタンプで特定される時刻)の例えば「5分後」の時刻における解を生成するものとする。なお、以下も同様であるが、かかる時刻は、実際にその時刻が到来しているかどうかを問わないものである。
サーバ解生成部223は生成した解を、同期情報生成部225へ送る。
【0048】
同期情報生成部225は、サーバ解生成部223から解を受取る。そして、受取った解を同期情報とし、それを特定情報として、出力部227へ送る。出力部227は、それらをインターフェイスを介して送受信機構に送る。送受信機構は同期情報を、特定情報によって特定されるIPアドレスのうち、特定情報を送って来たユーザ装置100とは異なるもう片方のユーザ装置100に対して送る(S2003)。
特定情報に含まれるIPアドレスのうち必要なのは、同期情報を送るユーザ装置100のものだけである。したがって、特定情報は、必ずしもその全体(2つのユーザ装置100のIPアドレスの双方)が同期情報生成部225から、出力部227、インターフェイスを介して送受信機構に送られる必要はなく、必要なIPアドレスのみが送られれば十分である。これは以後の実施形態等でも同様である。
【0049】
同期情報は、特定情報に含まれる2つのIPアドレスで特定されるユーザ装置100のうち、特定情報をサーバ200に送信したユーザ装置100ではない方のユーザ装置100に送られる。他方、特定情報をサーバ200に送信したユーザ装置100には、同期情報は送られない。なお、この場合の同期情報の送信は暗号化通信によって行うことも可能である。もっとも、ここで行う暗号化通信は、特定ユーザ装置を構成する2つのユーザ装置100間で行われる暗号化通信の如き、連続して発生される解を用いたものである必要はなく、公知の手法によることもできる。
特定情報に含まれる2つのIPアドレスで特定されるユーザ装置100のうち、特定情報をサーバ200に送信したユーザ装置100ではない方のユーザ装置100はその送受信機構により同期情報を受付ける(S1003)。受付けられた同期情報は、インターフェイス114を介して入力部121に送られ、入力部121から、主制御部122を介してユーザ初期解生成部125に送られる。
【0050】
同期情報を受取ったユーザ装置100のユーザ初期解生成部125では、同期情報に基いて、以下のようにして初期解が生成される。
ユーザ初期解生成部125は、上述のように同期情報を受付ける。同期情報は、特定情報で特定されるユーザのうち、特定情報を送信し、同期情報を受付けなかった方のユーザ装置100で生成することが可能な解である。かかるユーザ初期解生成部125は、その解を用いて新たな解を生成する。もっとも解の生成は、ユーザ初期解生成部125から以下のようにして解を生成せよとの指示を受けたユーザ解生成部123が行う。ユーザ解生成部123は、ユーザ初期解生成部125から、そのような指示と、新たな解を生成するために必要な解である同期情報とを送られる。
ユーザ解生成部123は以下のようにして新たな解を生成する。
例えば、解である同期情報が、X2であったとする。そのとき、ユーザ初期解生成部125は、サーバ200で解である同期情報を生成するときに用いられたのと同じ方法、具体的には、下記数式を用いて、新たな解を生成する。
X=X2
P+X2
Q+X2
R+X2
S+X2
T
このような数式を用いて解を生成する際には、上述したように、P、Q、R、S、Tを定めるための特定の時刻を定めることが必要である。この時刻は、同期情報を送られたユーザ装置100と同期情報を送られないユーザ装置100とで後に生成される解が同期されたものとなるようにするには(言い換えれば、初期解を一致させるには)、共通した同じものとされる必要があるが、例えば、『ユーザ装置100がサーバ200に対して特定情報を送信した時刻の「10分後」の時刻における解を生成する』という取極めを予め、少なくとも特定ユーザ装置に含まれる2つのユーザ装置100(好ましくはすべてのユーザ装置100)の間で行っておけば、かかる条件は充足される。例えば、ユーザ装置100を本願発明のユーザ装置として機能させるためのコンピュータプログラムによりそのような条件を満足させるためのコードを埋め込んでおけば良い。
いずれにせよ、これにより、同期情報を受取ったユーザ装置100におけるユーザ解生成部123は、同期情報を用いて、ユーザ装置100がサーバ200に対して特定情報を送信した時刻の「10分後」の時刻における解を生成する。このようにして生成された解は、ユーザ解生成部123からユーザ初期解生成部125へと送られる。
ユーザ初期解生成部125は、その解を、特定情報をサーバ200に送ったユーザ装置100との暗号化通信を行う際に解を発生させるための初期解として決定する。このようにして決定された初期解は、ユーザ解記録部124に記録される。
【0051】
他方、同期情報を受取らなかったユーザ装置100では、以下のようにして初期解が決定される。
上述したように行われるサーバ200への特定情報の送信(S1002)が終わった後、主制御部122は、ユーザ初期解生成部125に初期解を生成せよとの指示を出す。かかる指示を受付けたユーザ初期解生成部125は、解を生成せよとの指示をユーザ解生成部123に対して出す。ユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解に基いて新しい解を生成する。
ユーザ解生成部123が解を生成する方法は、サーバ200のサーバ解生成部223で解を生成する方法と同じである。したがって、ユーザ解生成部123が生成する解は、真初期解が共通である限り、サーバ解生成部223が生成して、もう片方のユーザ初期解生成部125にて初期解であると決定されることになった上述した解と同じものとなるはずである。そして、サーバ200のサーバ解生成部223が、上述の解を生成する際にサーバ解記録部224から読み出して使用した真初期解は、ユーザ初期解生成部125が解を生成する際にユーザ解記録部124から読み出して使用する真初期解と同じものである。この実施形態では、両者はともにX1である。したがって、ユーザ初期解生成部125は、サーバ解生成部223が生成して、このユーザ装置100が行う暗号化通信の相手側となるユーザ装置100に対して送信した、同期情報としての解と同じ解(この実施形態では、X2である。)を生成することとなる。つまり、こちらのユーザ装置100は、同期情報をサーバ200から送られていないにも関わらず、X2という、同期情報を送られたユーザ装置100が同期情報として得たのと同じ解を持った状態となる。
なお、この解がサーバ解生成部223が生成した解と同じものとなるには、ユーザ装置100とサーバ200とにおいて、ユーザ装置100がサーバ200に特定情報を送信した時刻(例えば、特定情報の送信時において特定情報を送信するためのデータのパケットにユーザ装置100で付されたタイムスタンプで特定される時刻)の「5分後」の時刻における解を生成するという規則が共有されている必要がある。かかるルール、特には、『ユーザ装置100がサーバ200に対して特定情報を送信した時刻の「5分後」の時刻における解を生成する』という規則は、例えば、ユーザ装置100を本願発明のユーザ装置100として機能させるための上述のコンピュータプログラムの機能により、ユーザ装置100に予め課されていても良い。或いは、サーバ200は、同期情報を送信しない側のユーザ装置100に対して、同期情報に代わり、『ユーザ装置100がサーバ200に対して特定情報を送信した時刻の「5分後」の時刻における解を生成せよ』との指示を送るようにすることができる。これによっても、かかる指示を、サーバ200とユーザ装置100との間で共有することが可能となる。
続けて、ユーザ解生成部123は、その解(X2)を用いて新たな解を生成する。この解は、他方のユーザ装置100のユーザ解生成部123で新たな解を生成する場合に行われたのと同じ方法で生成される。具体的には、新たな解は、下記数式にX2を代入することによって生成される。
X=X2
P+X2
Q+X2
R+X2
S+X2
T
このような数式を用いて解を生成する際には、上述したように、P、Q、R、S、Tを定めるための特定の時刻を定めることが必要であるが、この時刻は上述したように特定ユーザ装置となる2つのユーザ装置100の間で共有されており、その時刻は、『ユーザ装置100がサーバ200に対して特定情報を送信した時刻の「10分後」の時刻における解を生成する』という規則から決定されるようになっている。そのような時刻によって一意に定まる解を、ユーザ解生成部123は生成する。もちろん、この解は、同期情報を受取ったユーザ装置100で初期解として決定された解と同じものとなる。
ユーザ解生成部123は生成した解を、ユーザ初期解生成部125に送る。ユーザ初期解生成部125は、受取った解を初期解として決定し、その初期解をユーザ解記録部124に記録する。
これにて、特定ユーザ装置たる2つのユーザ装置100におけるユーザ解記録部124のそれぞれに共通する初期解が記録されることになった。言い換えれば、特定ユーザ装置たる2つのユーザ装置100が共通する初期解を持つ状態が形成された(S1004)。つまり、これにより、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う準備が整った。
【0052】
この状態で、特定ユーザ装置を構成する2つのユーザ装置100の間で暗号化通信が行われる(S1005)。
【0053】
暗号化通信についての以下の説明では、特定ユーザ装置である暗号化通信を行う2つのユーザ装置のうちの一方を、一方のユーザ装置100、その他方を、他方のユーザ装置100と称することにする。
まず、一方のユーザ装置100から他方のユーザ装置へ暗号化データが送信される場合について説明する。
なお、2つのユーザ装置100の間でどちらのユーザ装置100からどちらのユーザ装置100へ暗号化データが送信されるかは本来自由である。一方のユーザ装置100から他方のユーザ装置100に暗号化データが送信されても、他方のユーザ装置100から一方のユーザ装置100に暗号化データが送信されても、両ユーザ装置100で行われる処理が逆になるだけで、両ユーザ装置100で行われる処理そのものには変わらない。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成する。送信対象データは平文のデータである。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121に送られ、更にはユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解生成部123がどのようにして解を生成するかは、2つのユーザ装置100におけるユーザ解生成部123で生成される解が同期されている限り自由である。例えば、ユーザ解生成部123とサーバ解生成部223において生成される解を同期させるための方法と、特定ユーザ装置である2つのユーザ装置100におけるユーザ解生成部123において生成される解を同期させるための方法とが、異なるものであっても構わない。これには限られないが、この実施形態では、上記のうちの後者が採用されているものとする。
この実施形態では、一方のユーザ装置100におけるユーザ解生成部123は、この実施形態では、その時点の時刻とは無関係に、初期解を生成するときに用いられた上述の時刻の1年後で、1月後で、1日後で、1時間後で、1分後の時刻に対応した解を生成するようになっているものとする。
ユーザ解生成部123は、ユーザ解記録部124から読み出した初期解を用い、また上述した方法及び上述した時刻を用いて、新たな解を生成する。
新たな解は、一方のユーザ装置内で、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、送信対象データを暗号化する。
この場合の解の用い方は自由である。例えば、ユーザ装置100とサーバ200が共通鍵方式の暗号化通信を行う場合であれば、ユーザ暗号化復号化部126は、その新たな解を共通鍵として用いることができる。つまり、解は、暗号化の鍵として利用可能である。他方、解は、暗号化のアルゴリズムを変化させるために用いることも可能である。解に基いて、複数種類のアルゴリズムの中から1つのアルゴリズムを選択する、といった解の用い方も可能である。
いずれにせよ、送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。
生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
一方のユーザ装置100における出力部127は、暗号化データをインターフェイス114を介して送受信機構へと送る。暗号化データは、ネットワーク400を介して、他方のユーザ装置100へと送られる。
【0054】
他方のユーザ装置100は、その送受信機構でユーザ装置100から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイス114を介して入力部121へと送られる。入力部121は、ユーザ暗号化復号化部126へ暗号化データを送る。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。
この場合の解の用い方は、一方のユーザ装置100のユーザ暗号化復号化部126での解の用いられ方に倣う。例えば、2つのユーザ装置100が共通鍵方式の暗号化通信の共通鍵として解を用いるのであり、一方のユーザ装置100で解がそのように用いられたのであれば、他方のユーザ装置100におけるユーザ暗号化復号化部126も、その新たな解を共通鍵として用いる。
いずれにせよ、ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
送信対象データは、ユーザ暗号化復号化部126から、出力部127に送られ、出力部127からインターフェイス114を介して、他方のユーザ装置100内の例えば他のアプリケーションに送られたり、ディスプレイ101に送られて適当な表示がなされたりする。
【0055】
他方のユーザ装置100から一方のユーザ装置100へ暗号化データが送信される場合には、以上の説明における一方のユーザ装置100と他方のユーザ装置100の役割が入れ替わる。
【0056】
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
なお、この実施形態における通信システムでは、暗号化通信を行うS1005の過程で用いられる解は1つだけ、或いは固定であった。これに代えて、例えば共通鍵方式の暗号化通信を行うための共通鍵を次々と変更していくが如くに、暗号化或いは復号化に用いるための解を、特定ユーザ装置たる2つのユーザ装置100のユーザ解生成部123で、連続的に生成するようにすることも可能である。その場合には、例えば、認証に用いた解の次の新たな解を生成するために、認証に用いられた解が生成された時刻の1年後で、1月後で、1日後で、1時間後で、1分後の時刻に対応した解を生成するという取極めをユーザ解生成部123と、サーバ解生成部223との間でしていたのと同様に、その後に生成する解は、順にその1分後、2分後、3分後…の時刻に生成される解である、等の取極めをユーザ解生成部123とサーバ解生成部223との間で行っておけばよい。もちろん、両者の間で、もっと複雑な取極めを交わしておくことも可能である。
他方、共通鍵方式の暗号化通信を行うための共通鍵を、次々と変更していくがごとくに、特定ユーザ装置たる2つのユーザ装置100のユーザ暗号化復号化部126において暗号化と復号化の処理を行う際に用いられる解を変更するタイミングは、適当に決定することができる。例えば、暗号化通信が開始されてから所定の時間が経過する度に、新しく生成された解に暗号化或いは復号化のために用いられる解が変更或いは更新されてもよく、或いは暗号化データの量が一定のデータ量を超える度に、解が変更或いは更新されても良い。例えば、平文のあるデータを暗号化する場合には通常、データの全体に対して何らかの演算を行うのではなく、通常は、平文のあるデータを所定のビット数毎に切断して小さいデータにしてから、その小さいデータのそれぞれに対して暗号化のための演算を行っていくという手法が用いられる。例えば、その小さいデータを10個暗号化する毎に新しい解を生成して共通鍵を変えるとか、場合によってはその小さいデータを1個暗号化する毎に新しい解を生成して共通鍵を変えるとか、そのような手法を採用しても良い。もちろんこのような暗号化を行う場合には、復号化を行う側でも暗号化を行う側と同じ方法で解を発生させ、同じ方法で共通鍵となる解を変更していく。そのようなことを、特定ユーザ装置たる2つのユーザ装置100の双方で実行することができる。
【0057】
なお、上述のようにして特定ユーザ装置たる2つのユーザ装置100が一度解を同期させたのであれば、特定ユーザ装置たる2つのユーザ装置100は解を同期させた状態を2つのユーザ装置100が機能している間永続的に保つことができる。
例えば、上述の暗号化通信が終わったときに双方のユーザ装置100で発生させた最後の解を、双方のユーザ装置100におけるユーザ解記録部124に、次回の暗号化通信の際に用いる初期解として記録するようにすれば、次回の暗号化通信の場合には、サーバ200の力を借りて同期情報をサーバ200に生成させずとも、2つのユーザ装置100は同期した解を用いての暗号化通信を実行することができる。
他方、各ユーザ装置100は、上記の如き初期解の保存を行わず、暗号化通信を行うたびにサーバ200から同期情報の提供を受け、上述の処理を繰り返すようになっていてももちろん構わない。
なおこの実施形態では、同期情報は、特定ユーザ装置たる2つのユーザ装置100の片方にしか送らなかったが、これを2つのユーザ装置100の双方に送ることも可能である。この実施形態で同期情報を受取らなかったユーザ装置100が同期情報を受取った場合には、同期情報で特定される解をそのユーザ装置100はそもそも自力で生成することができるが、自力で生成した解と同期情報で特定される解を比較し両者の一致を見ることで、少なくともその解に誤りがないことの確認をそのユーザ装置100で行うことが可能となる。
【0058】
<変形例1>
以下、上述した通信システムの変形例について説明する。
以下に説明する通信システムで上述の第1実施形態の通信システムと異なるのは、サーバ200と各ユーザ装置100とにおける解の同期のさせ方、及び特定ユーザ装置たる2つのユーザ装置100間での解の同期のさせ方のみである。
他の部分においては、変形例1と第1実施形態の通信システムの構成には違いがなく、またその使用方法、及び動作についても違いはない。
【0059】
第1実施形態においては、ユーザ装置100が備えるユーザ解生成部123、及びサーバ200が備えるサーバ解生成部223における解の発生のさせ方は、トークン等を用いて行われていた従来のワンタイムパスワードの生成の方法でいえば、時間同期の如き解の同期のさせ方を採用していた。これに対して、変形例1では、ワンタイムパスワードの発生のさせ方でいえば、イベント同期の如き、過去に発生させた解の数(或いは発生させられた解の順番(その解が幾つ目の解かということ))に基づき解を同期させる方法を採用している。
【0060】
変形例1では、ユーザ解生成部123、及びサーバ解生成部223で新しい解を生成するための手法は、例えば、ある初期解に対して決められた演算を行うことで解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て…、という処理を繰り返すことで、連続して解を生成するものとすることができる。このような技術は、擬似乱数を生成するための技術として周知である。
【0061】
ユーザ解生成部123、及びサーバ解生成部223が、解を生成するより具体的な方法について説明する。ユーザ装置100のユーザ解生成部123で新しい解を生成する方法、及びサーバ200のサーバ解生成部223で新しい解を生成する方法とも共通であるので、以下の説明ではそれらの区別を行わずに説明を行う。また、初期解と真初期解も区別せずにそれらをともに初期解としてまとめて説明を行う。
解を生成するには、ある初期解(以下の、(a)、(c)のように2つ以上の場合もある)を用い、過去の解を所定の関数に代入することにより、新しい解を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期解依存性のある擬似乱数となる。
上述の解を作るのに使われる関数の例として、以下の(a)~(c)を挙げる。以下の(a)~(c)はいずれも、N番目の解であるXNを作るための式である。また、P、Q、R、Sは適当な自然数である。
(a)(XN)=(XN-1)P+(XN-2)Q
(b)(XN)=(XN-1)P
(c)(XN)=(XN-1)P(XN-2)Q(XN-3)R(XN-4)S
(a)は、過去の解2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解2つを用い、それらをP乗とQ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。これには限られないが、この実施形態では、解は20桁であるものとする。
(b)は、過去の解1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい解とするものである。
(c)は、過去の解4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
上述の(a)~(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)~(c)を順番に用いる等の変化を加えることも可能である。
なお、上述の(a)~(c)の数式を用いる手法は、解が数字のみで構成されている場合に使用可能である。解に、文字、記号を含めたいのであれば、第1実施形態で説明した、文字、記号に数字を割り振る手法を採用すればよい。
上述の如き数式を用いて解を連続させる方法によれば、同じ順番で生成された解は、初期解が同一である場合においては常に同一のものとなる。
したがって、共通のアルゴリズムを用い、且つ共通の初期解を有するのであれば、サーバ200にあるサーバ解生成部223と、ユーザ装置100にあるユーザ解生成部123とは、共通する同期された解を生成することができ、また、特定ユーザ装置における2つのユーザ装置100にそれぞれあるユーザ解生成部123は、共通する同期された解を生成することができることになる。
これには限られないが、変形例1のユーザ解生成部123とサーバ解生成部223とは、上記(a)のアルゴリズムを用いて解を生成することとしている。また、変形例1における特定ユーザ装置に含まれる2つのユーザ装置100(或いは、すべてのユーザ装置100が特定ユーザ装置になり得ることまで考慮すれば、すべてのユーザ装置100)におけるユーザ解生成部123は、上記(a)のアルゴリズムを用いて解を生成することとしている。
【0062】
かかる通信システムの使用方法、及び動作をより具体的に説明することで、通信システムの構成をより明確にする。
変形例1の通信システムの動作は、
図6に示した通りであり、大まかに言えば、第1実施形態の場合と変わらない。特に、特定ユーザ装置におけるS1001~S1002のステップとサーバ200におけるS2001のステップは、第1実施形態の場合と完全に同一である。
サーバ200は、特定情報を受取る。特定情報は、送受信機構、インターフェイス、入力部221、主制御部222を経て、同期情報生成部225へと送られる。同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
【0063】
変形例1の場合も、第1実施形態の場合と同様に、サーバ200に送られてきた特定情報で特定される2つのユーザ装置100のうちのいずれかで生成することができる解を、同期情報とすることにする。これには限られないが、変形例1でも第1実施形態の場合と同様に、特定情報を送ってきた側のユーザ装置100のユーザ解生成部123で生成可能な解を同期情報とすることとする。
したがって、同期情報生成部225はそのような解が必要である。したがって、同期情報生成部225は、そのような解を生成せよとの指示を、特定情報とともにサーバ解生成部223に対して送る。
変形例1におけるサーバ解生成部223は、特定情報に含まれる2つのIPアドレスのうち、特定情報を送ってきたユーザ装置100のIPアドレスに紐付けられている真初期解又は解を呼び出す。上述したように、この実施形態におけるサーバ解生成部223は、少なくとも初めて解を生成するとき、ユーザ解記録部124に記録されている真初期解のデータを読み出す。もっとも、変形例1のサーバ200におけるサーバ解記録部224には、真初期解に加えて、その真初期解を用いて過去に幾つの解を生成したか、という情報が記録されている。サーバ解生成部223は、真初期解のデータと、その真初期解に基いて過去に幾つの解を生成したかという情報とをサーバ解記録部224から読み出す。
【0064】
変形例1のサーバ解生成部223が解を生成する場合において、例えば、サーバ解生成部223は過去に3つの解を生成したとする。そうすると、サーバ解生成部223は、サーバ解記録部224から、真初期解と、過去に生成した解の数である3という数字を読み出す。サーバ解生成部223は、上述の数式(a)を用いて、真初期解((X0)、(X-1))から1番目の解(X1)を生成し、1番目の解を用いて(より正確には、(X1)、(X0)を用いて)2番目の解を生成し、それを繰り返して、4番目の解(X4)を生成する。そして、サーバ解生成部223は、サーバ解記録部224に記録されていた過去に生成した解の数を1増やし「4」とする。これにより、次にサーバ解生成部223で生成される解は、5番目の解である(X5)になる。
サーバ解生成部223は、次の解(X5)を生成するために少なくとも必要となる解((X3)と(X4))を同期情報生成部225に送る。同期情報生成部225は、第1実施形態の場合と同様にこれを同期情報とする(S2002)。
【0065】
第1実施形態の場合と同様に、同期情報は、特定ユーザ装置である2つのユーザ装置100のうち、特定情報を送って来なかったユーザ装置100に対して送られ(S2003)、特定情報を送って来たユーザ装置100には送られない。
【0066】
同期情報を受取ったユーザ装置において、同期情報は、第1実施形態の場合と同様に、ユーザ初期解生成部125に送られる。ユーザ初期解生成部125は、同期情報を用いて新しい解を生成する。その解は同期情報である(X3)と(X4)を用いて作られる新しい解であり、それは5番目の解である(X5)でもよいし、それ以降のつまり、(X6)以降の解であっても良い。ただし、幾つめの解を生成すべきかということについての条件は、解の同期を取るために、2つの特定ユーザ装置にて共有されている必要がある。
例えば、この変形例1では、同期情報を受取ったユーザ装置100におけるユーザ解生成部123は、5番目の解を生成することになっているものとする。ユーザ解生成部123は、下記の式(a)の(XN-1)に(X4)を(XN-2)に(X3)をそれぞれ代入することにより、5番目の解である(X5)を求める。
(a)(XN)=(XN-1)P+(XN-2)Q
そして、生成された(X4)と(X5)を、ユーザ解生成部123は、ユーザ初期解生成部125へと送る。ユーザ初期解生成部125は、これを初期解として決定し、第1実施形態の場合と同様に、当該ユーザ装置100におけるユーザ解記録部124に記録する。
【0067】
他方、同期情報を受取らなかったユーザ装置100は、同期情報に頼らず第1実施形態の場合と同様に自発的に初期解を生成する。
同期情報を受取らなかったユーザ装置100は、サーバ200への特定情報の送信(S1002)が終わった後において、その主制御部122が、第1実施形態の場合と同様に、ユーザ初期解生成部125に初期解を生成せよとの指示を出す。かかる指示を受けたユーザ初期解生成部125は、ユーザ解生成部123に対して、新たな解を生成せよとの指示を出す。
ユーザ解生成部123が解を生成する方法は、サーバ200のサーバ解生成部223で解を生成する方法と同じである。したがって、ユーザ解生成部123が生成する解は、真初期解が共通である限り、そして、真初期解から生成された順番が同じであるかぎり、サーバ解生成部223が生成する解と同じとなる。どこまで解を生成し、生成したどの解を初期解として用いるかという条件は、少なくともユーザ装置100間では共通とされている。このユーザ装置100のユーザ解記録部124には、少なくともサーバ200で同期情報に必要な解を生成される前の状態と同じ情報、つまり真初期解と真初期解により過去に生成した解が3つであることが記録されている。これら真初期解と、読み出した「3」という数字に基づいて、ユーザ解生成部123は、同期情報を受取ったユーザ装置100におけるユーザ解生成部123が生成したのと同じ順番までの解を生成する。つまり、同期情報を受取らなかったユーザ装置100におけるユーザ解生成部123は、まず(X4)を生成し、続いて(X5)を生成する。このように、ユーザ装置100とサーバ200とが解を同期させる方法は同じとなっており、そのためにユーザ解記録部124に記録されるデータはサーバ解記録部224に記録されるデータと同じとなっている。
そして、ユーザ解生成部123は、これら2つの解を、ユーザ初期解生成部125に対して送る。ユーザ初期解生成部125は、これら2つの解を、以後の解を生成するために使用する初期解とし、それら2つの解を、ユーザ解記録部124に対して記録する。
これにて、特定ユーザ装置たる2つのユーザ装置100におけるユーザ解記録部124のそれぞれに共通する初期解が記録されることになった(S1004)。つまり、これにより第1実施形態の場合と同様に、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う準備が整った。
なお、変形例1では、サーバ200におけるサーバ解記録部224には、真初期解と真初期解から過去に幾つの解を生成したかという情報が記録されており、且つユーザ装置100におけるユーザ解記録部124には、真初期解と真初期解から過去に幾つの解を生成したかという情報が記録されており、それによりサーバ解生成部223と、ユーザ解生成部123とは、同期した状態で同じ順番のものどうしを比較すれば同じになる解を連続して生成することができた。この場合には、サーバ解記録部224とユーザ解記録部124には真初期解が記録され続ける。もっとも、同期情報を受けったユーザ装置100における初期解となる解の生成方法についての上述の説明から判るように、解を同期させるには、必ずしも真初期解と真初期解から過去に幾つの解を生成したかという情報は必要ではなく、その直前に生成された解(複数の場合もある)さえ存在していれば、同じ順番で生成された解がいつも同じになるような状態で、新しい解を次々と発生させることが可能である。そのような場合には、真初期解から1番目の解を生成したら、サーバ解記録部224及びユーザ解記録部124に記録された解を2番目の解を生成させるための解に上書きし、次にその解から2番目の解を生成したら、サーバ解記録部224及びユーザ解記録部124に記録された解を3番目の解を生成させるための解に上書きし…、という処理をサーバ200とユーザ装置100との双方で連続して行えば良い。
なお、変形例1のような解の生成のさせ方を行うと、例えば、特定ユーザ装置たる2つのユーザ装置100の間で暗号化通信を行うために、場合によっては多数の解を生成することが必要となることがあるため(後述)、ユーザ解生成部123で生成する解が、サーバ解生成部223で生成する解よりも先行してしまうことが生じうる。そのようなことが生じると、ユーザ解生成部123とサーバ解生成部223とで生成される解が同期されないこととなるので、ユーザ解記録部124は、ユーザ解生成部123がサーバ解生成部223と同期した状態で解を生成するために必要な情報と、特定ユーザ装置たる2つのユーザ装置100間で同期された解をユーザ解生成部123が生成するために必要な情報とを、それぞれ独立した形で別個に記録しておくべきである。
【0068】
以後の処理は、完全に第1実施形態の場合と同じでも良い。つまり、特定ユーザ装置である2つのユーザ装置において行われる暗号化通信(S1005)を実現するために必要とされる連続して、しかも同期して解を発生させるための処理は、トークン等でいう時間同期によってそれが実現されても構わない。
他方、変形例1では、かかる解の同期がトークン等で実現されるイベント同期により実現されるようにすることも可能であり、変形例1ではそのようにして解が生成されることとして以下の説明を行う。
【0069】
第1実施形態の場合と同様、以下の説明では、特定ユーザ装置である暗号化通信を行う2つのユーザ装置のうちの一方を、一方のユーザ装置100、その他方を、他方のユーザ装置100と称することにする。
まず、一方のユーザ装置100から他方のユーザ装置100へ暗号化データが送信される場合について説明する。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成する。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121を介してユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解記録部124には、上述したように、2つの解である(X4)と(X5)とが記録されている。一方のユーザ装置100のユーザ解生成部123は、これら2つの解を読みだす。これらを上述した式(a)に代入すると、一方のユーザ装置100におけるユーザ解生成部123は、6番目の解である(X6)を生成することができる。ユーザ解生成部123は、次の解を生成するために(X4)と(X5)とをユーザ解記録部124に記録するとともに、ユーザ暗号化復号化部126に、生成した解である(X6)を送る。
ユーザ暗号化復号化部126は、この解(X6)を用いて送信対象データを暗号化する。暗号化の処理における解の用い方は第1実施形態の場合と同じで良い。送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
かかる暗号化データは、第1実施形態の場合と同様に、一方のユーザ装置100から、他方のユーザ装置100へと送られる。
【0070】
他方のユーザ装置100は、その送受信機構でユーザ装置100から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイス114を介して入力部121へと送られ、更には、ユーザ暗号化復号化部126へ送られる。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解((X4)と(X5))と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。復号化の方法は、第1実施形態の場合と同様である。ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
【0071】
変形例1の通信システムにおける以後の処理は、第1実施形態の場合と同様である。
他方のユーザ装置100から一方のユーザ装置100へ暗号化データが送信される場合には、以上の説明における一方のユーザ装置100と他方のユーザ装置100の役割が入れ替わる。
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
【0072】
なお、変形例1の通信システムでは、暗号化通信を行うS1005の過程で用いられる解は1つだけ、或いは固定であった。これに代えて、例えば共通鍵方式の暗号化通信を行うための共通鍵を次々と変更していくが如くに、暗号化或いは復号化に用いるための解を、特定ユーザ装置たる2つのユーザ装置100のユーザ解生成部123で、連続的に生成するようにすることも可能である。
上述したように、同じ直前の解(1つとは限らないが)を用いれば、2つのユーザ装置100におけるユーザ解生成部123は、同期した解を次々と生成することができる。同期された共通の解を、2つのユーザ装置100におけるユーザ解生成部123で次々と生成することによって、特定ユーザ装置たる2つのユーザ装置100は、同期された解を用いて暗号化通信を行うことができる。
新たな解を生成するタイミングとして採用しうるタイミングは、第1実施形態で説明した通りである。
特定ユーザ装置に含まれるユーザ装置100間で一度同期させた解を、当該特定ユーザ装置に含まれる2つのユーザ装置100間での以後の暗号化通信でも使用するか否かは、第1実施形態の場合と同様に自由である。
なお、第1実施形態では、初期解となる解を生成できない側のユーザ装置100に同期情報が送られる。もっとも、双方のユーザ装置100に同期情報を送信して、双方のユーザ装置100で自らの解を用いて同期情報から取り出した相手側のユーザ装置100でしか生成できない解のうちの任意の一方(例えば双方のユーザ装置100の間で決定したもの)を、初期解とすることも可能である。
【0073】
<変形例2>
変形例2の通信システムについて説明する。
なお、変形例2及び、以下に説明する変形例3、変形例4はいずれも、基本的には変形例1の通信システムと同様に構成されており、且つそれらの使用方法、及び動作も変形例1の通信システムと変わらない。
変形例2~4は、いずれも変形例1においては、「特定情報で特定される2つのユーザ装置100のうちのいずれかで生成することができる解」とされていた同期情報の他のバリエーションを提示するものである。したがって、変形例2~4における同期情報は、変形例1の場合と異なるものとされ、またその送信先も、特定情報で特定される2つのユーザ装置100のうちの片方である場合もあるが、2つのユーザ装置100の双方である場合もある。また、特定ユーザ装置において、同期情報を用いて同一の初期解を持つまでの処理も、変形例1の場合と異なる。
変形例2~変形例4では、変形例1からの変更点である、同期情報の内容、サーバ200における同期情報の生成の方法、特定ユーザ装置における初期解の生成の方法について主に説明することにする。
なお、変形例2~変形例4の説明では、解は、トークン等におけるイベント同期の如き方法で生成されるものとする。しかしながら、第1実施形態と変形例1との関係から明らかなように、解のイベント同期による生成は、時間同期にも置換可能である。つまり、変形例2~変形例4は、時間同期によっても実施可能である。例えば、第1実施形態における、「真初期解に基いて生成された、ユーザ装置100がサーバ200に特定情報を送信した時刻の「5分後」の時刻における解(X2)」は、変形例1における真初期解から生成された1番目の解にあたり、「その解(X2)に基いて生成された、ユーザ装置100がサーバ200に特定情報を送信した時刻の「10分後」の時刻における解」は、変形例2における真初期解に基いて生成された2番目の解と捉えられなくもない。初期解を決定するまでにユーザ装置100では少なくとも1つの解を生成する必要が生じるが、時間同期を採用する場合においても、ある解に基いてある時刻の解を生成する、生成された解に基いてある時刻の解を生成する、ということをサーバ200と特定ユーザ装置に含まれる2つのユーザ装置100のうちの必要なものの間で取決めておけば、時間同期の手法を応用して生成される解をイベント同期の方法で生成される解と同様に扱う、或いはそう見做すことができるのである。
【0074】
変形例2における通信システムの使用方法と動作について説明する。
そこまでは第1実施形態と変わらないので、同期情報生成部225が同期情報を生成するところからその説明を行う。
同期情報生成部225が同期情報を生成するのは、変形例1の場合と同様に、ユーザ装置100からサーバ200へ送られた特定情報が主制御部222から同期情報生成部225に送られた後である。かかるタイミングで同期情報生成部225は同期情報を生成する。
変形例2において同期情報は、解である。より具体的には、特定ユーザ装置たる2つのユーザ装置100が新しい解を生成するための元となる解である。
変形例2のユーザ装置100におけるユーザ解生成部123では、これには限られないが変形例1の場合と同様に下記の数式(a)を用いて新しい解を生成するので、新しい解を生成するために2つの解が必要となる。したがって、同期情報生成部225は、2つの解を生成する。かかる2つの解は、特定ユーザ装置たる2つのユーザ装置100において生成されるサーバ200のサーバ解生成部223で生成される解と同期された解とは無関係なもので良い。同期情報生成部225は、適当な方法で、例えばランダムに2つの解を生成する。
(a)(XN)=(XN-1)P+(XN-2)Q
なお、例えば下記数式(b)のように過去の1つの解から新しい解を生成するというアルゴリズムをユーザ装置100で採用しているのであれば、生成する解は1つで良い。
(b)(XN)=(XN-1)P
同期情報生成部225は、それら2つの解(例えば(X0)と(X-1)とする。)をまとめたものを同期情報として生成する。同期情報は、特定情報で特定される特定ユーザ装置たる2つのユーザ装置100に対してネットワーク400を介して送られる。
【0075】
2つのユーザ装置100は受取った同期情報を用いて初期解を生成する。
変形例1の場合と同様に、同期情報は、ユーザ初期解生成部125に送られる。これを受取ったユーザ初期解生成部125は、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う際に用いられる初期解を生成する。
2つのユーザ装置100における初期解の生成方法は同じであり、ともに以下のようなものとされる。
2つのユーザ装置100におけるユーザ初期解生成部125は、同期情報から新しい解を生成せよとの指示を、同期情報とともにユーザ解生成部123に送る。そうすると、ユーザ解生成部123は同期情報に含まれる2つの解を用いて新たな解を生成する。数式(a)に、2つの解である(X0)と(X-1)を代入すると、(X1)=(X0)P+(X-1)Q のようして、1番目の解である(X1)が生成される。次に、新しく生成された解を含む2つの解である(X1)と(X0)とを用いて、(X2)=(X1)P+(X0)Qの如き演算を行うと、2番目の解である(X2)が生成される。2つのユーザ装置100におけるユーザ解生成部123が生成する解は、共通する同期情報に含まれる同じ2つの解((X0)と(X-1))に基いて生成されるので、同じ順番のもの同士を比較すると同じとなる。つまり、2つのユーザ装置100で生成される解は同期されたものとなる。
特定ユーザ装置に含まれる2つのユーザ装置100間で予め取決められた、或いはサーバ200によって指定された、同じ順番で生成された解、例えば、((X2)と(X1))とを2つのユーザ装置100のユーザ初期解生成部125が初期解として決定することにより、2つのユーザ装置100が共通の初期解を持った状態となる。かかる初期解は、変形例1の場合と同様に、ユーザ解記録部124に記録される。
【0076】
以後、特定ユーザ装置たる2つのユーザ装置100は、共通する上述した初期解を用いて、同期した解を生成し、変形例1、或いは第1実施形態の場合と同様に、暗号化通信を実行することができる。
【0077】
<変形例3>
変形例3における通信システムの使用方法と動作について説明する。
そこまでは第1実施形態と変わらないので、同期情報生成部225が同期情報を生成するところからその説明を行う。
同期情報生成部225が同期情報を生成するのは、変形例1の場合と同様に、ユーザ装置100からサーバ200へ送られた特定情報が主制御部222から同期情報生成部225に送られた後である。かかるタイミングで同期情報生成部225は同期情報を生成する。
変形例3において同期情報は、「特定ユーザ装置たる2つのユーザ装置100における2つのユーザ解生成部123でそれぞれ生成可能な解の双方に、それぞれ可逆的な演算を行って得た情報」である。そのような解を生成するには、2つのユーザ装置100において生成可能な解が必要であるから、同期情報生成部225はサーバ解生成部223に、2つのユーザ装置100で生成可能な解を生成せよ、との指示と特定情報とを送る。
かかる指示を受取るとサーバ解生成部223は、2つのユーザ装置100のユーザ解生成部123でそれぞれ生成可能な解を生成する。2つのユーザ装置100の一方において生成可能な解を、(XAN)(ただし、Nは数字)、2つのユーザ装置100の他方において生成可能な解を、(XBN)(ただし、Nは数字)のように表記するものとして、以下話を進める。
変形例3のユーザ装置100におけるユーザ解生成部123では、これには限られないが変形例1の場合と同様に数式(a)を用いて新しい解を生成するものとする。
サーバ解生成部223は、一方のユーザ装置100が後に生成可能なものとして、例えば、4番目の解までが既に、サーバ200とその一方のユーザ装置100とで既に同期して生成されているのであれば、例えば、その後に生成される5番目の解(XA5)を生成して、6番目の解(XA6)を生成するために必要な2つの解となる((XA5)、(XA4))の対を生成する。また、サーバ解生成部223は、他方のユーザ装置100が後に生成可能なものとして、例えば、15番目の解までが既に、サーバ200とその他方のユーザ装置100とで既に同期して生成されているのであれば、例えば、その後に生成される16番目の解(XB16)を生成して、17番目の解(XB17)を生成するために必要な2つの解となる((XB16)、(XB15))の対を生成する。これらはすべて同期情報生成部225に対して送られる。
同期情報生成部225は、それら2つの解の対に対して演算を行う。かかる演算は可逆的な演算であり、例えば、2つの解の積、或いは2つの解の排他的論理和を取ることによってその演算が実行される。これには限られないが、変形例3では、2つの解の対の積を取ることにより、演算を実行することにする。2つの解の対にはそれぞれ、2つずつ解が含まれているので、(XA5)×(XB16)と、(XA4)×(XB15)の2つの演算が実行される。その結果、同期情報生成部225は、((XA5)×(XB16)、(XA4)×(XB15))という一対の情報を得ることになる。同期情報生成部225は、この情報を同期情報とする。
同期情報は、特定ユーザ装置たる2つのユーザ装置100のうちのどちらでも良いが、それらのいずれかに送られる。
【0078】
同期情報を受取ったユーザ装置100では、以下のようにして初期解が生成される。これには限られないが、上述した一方のユーザ装置100に同期情報が送られたものとする。
変形例1の場合と同様に、同期情報は、一方のユーザ装置100のユーザ初期解生成部125に送られる。これを受取ったユーザ初期解生成部125は、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う際に用いられる初期解を生成する。ユーザ初期解生成部125は、解を生成せよとの指示をユーザ解生成部123に送る。ユーザ解生成部123は解を生成する。一方のユーザ装置100におけるユーザ解生成部123は、繰り返し述べているように、サーバ200のサーバ解生成部223で生成される解と同期した解を生成することができる。したがって、ユーザ解生成部123は、サーバ200の同期情報生成部225が同期情報を生成する際に一方のユーザ装置100で生成可能な解として生成した解である(XA5)と(XA4)という2つの解を生成することができる。幾つ目の解をここで生成するかという条件は、サーバ200とユーザ装置100との間で、例えば予め共有されている。
ユーザ解生成部123は、生成したこの2つの解を、ユーザ初期解生成部125に送る。ユーザ初期解生成部125は、(XA5)と(XA4)という2つの解を用いて、サーバ200から送られてきた同期情報に対して、サーバ200の同期情報生成部225で行われた演算の逆演算を行う。かかる演算は、((XA5)×(XB16))に対しては、((XA5)×(XB16))÷(XA5)として実行され、((XA4)×(XB15))に対しては、((XA4)×(XB15))÷(XA4)として実行される。その結果、ユーザ初期解生成部125は、((XB16)、(XB15))という解の対を得ることになる。
かかる解の対は、本来であれば一方のユーザ装置100が入手することのできない、他方のユーザ装置100で生成される解の対であって、当該装置における17番目の解(XB17)を生成するために必要な2つの解である。
この解の対を、ユーザ初期解生成部125は初期解として決定し、ユーザ解記録部124に記録する。
【0079】
同期情報を受取らなかった他方のユーザ装置100では、以下のようにして初期解が生成される。
他方のユーザ装置100では、一方のユーザ装置100と通信が開始される前に(例えば、一方のユーザ装置100から暗号化通信を行うとの要求が来た際に)、その主制御部122がユーザ初期解生成部125に対して初期解を生成せよとの指示を出す。
かかる指示を受取ったユーザ初期解生成部125は、ユーザ解生成部123に対して解を生成せよとの指示を出す。他方のユーザ装置100におけるユーザ解生成部123は、繰り返し述べているように、サーバ200のサーバ解生成部223で生成される解と同期した解を生成することができる。したがって、ユーザ解生成部123は、サーバ200の同期情報生成部225が同期情報を生成する際に他方のユーザ装置100で生成可能な解として生成した解である((XB16)、(XB15))という解の対を生成することができる。幾つ目の解をここで生成するかという条件は、例えば、サーバ200とユーザ装置100との間で予め共有されている。
この解の対を、ユーザ初期解生成部125は初期解として決定し、ユーザ解記録部124に記録する。
【0080】
これにて、特定ユーザ装置たる2つのユーザ装置100で同じ初期解が共有された。
以後、特定ユーザ装置たる2つのユーザ装置100は、共通する上述した初期解を用いて、同期した解を生成し、変形例1、或いは第1実施形態の場合と同様に、暗号化通信を実行することができる。
以上の変形例3では、ユーザ装置100で新たな解を生成するのに過去の2つの解が必要な場合について記載した。ユーザ装置100で新たな解を生成するのに過去の1つの解しか必要ないのであれば、サーバ200からユーザ装置100に送信する同期情報は、解に基づく情報の対でなく、1つの情報で良い。変形例4でも同様である。
なお、この変形例3では、初期解となる解を生成できない側のユーザ装置100に同期情報が送られる。もっとも、双方のユーザ装置100に同期情報を送信して、双方のユーザ装置100で自らの解を用いて同期情報から取り出した相手側のユーザ装置100でしか生成できない解のうちの任意の一方(例えば双方のユーザ装置100の間で決定したもの)を、初期解とすることも可能である。
【0081】
<変形例4>
変形例4における通信システムの使用方法と動作について説明する。
そこまでは第1実施形態と変わらないので、同期情報生成部225が同期情報を生成するところからその説明を行う。
同期情報生成部225が同期情報を生成するのは、変形例1の場合と同様に、ユーザ装置100からサーバ200へ送られた特定情報が主制御部222から同期情報生成部225に送られた後である。かかるタイミングで同期情報生成部225は同期情報を生成する。
変形例4において同期情報は、2種類生成される。変形例4において生成される同期情報は、「特定ユーザ装置たる2つのユーザ装置100における2つのユーザ解生成部123でそれぞれ生成可能な解のそれぞれと、特定ユーザ装置たる2つのユーザ装置100で共通する初期解とに対して、可逆的な演算を行って得た情報」である。そのような解を生成するには、2つのユーザ装置100において生成可能な解が必要であるから、同期情報生成部225はサーバ解生成部223に、2つのユーザ装置100で生成可能な解を生成せよ、との指示と特定情報とを送る。
かかる指示を受取るとサーバ解生成部223は、2つのユーザ装置100のユーザ解生成部123でそれぞれ生成可能な解を生成する。変形例3と同様に、2つのユーザ装置100の一方において生成可能な解を、(XAN)(ただし、Nは数字)、2つのユーザ装置100の他方において生成可能な解を、(XBN)(ただし、Nは数字)のように表記するものとして、以下話を進める。
変形例4のユーザ装置100におけるユーザ解生成部123では、これには限られないが変形例1の場合と同様に数式(a)を用いて新しい解を生成するものとする。
サーバ解生成部223は、一方のユーザ装置100が後に生成可能なものとして、例えば、4番目の解までが既に、サーバ200とその一方のユーザ装置100とで既に同期して生成されているのであれば、例えば、その後に生成される5番目の解(XA5)を生成して、6番目の解(XA6)を生成するために必要な2つの解となる((XA5)、(XA4))の対を生成する。また、サーバ解生成部223は、他方のユーザ装置100が後に生成可能なものとして、例えば、15番目の解までが既に、サーバ200とその他方のユーザ装置100とで既に同期して生成されているのであれば、例えば、その後に生成される16番目の解(XB16)を生成して、17番目の解(XB17)を生成するために必要な2つの解となる((XB16)、(XB15))の対を生成する。これらはすべて同期情報生成部225に対して送られる。
同期情報生成部225は、それら2つの解のそれぞれに対して演算を行う。かかる演算は可逆的な演算であり、例えば、解と、特定ユーザ装置たる2つのユーザ装置100で共通して用いられる初期解の積、或いは解と初期解の排他的論理和を取ることによってその演算が実行される。これには限られないが、変形例4では、解と初期解の積を取ることにより、演算を実行することにする。初期解を、((Y1)、(Y0))とする。なお、この初期解は、例えば同期情報生成部225が適当に生成したものとすることができる。2つの解の対にはそれぞれ、2つずつ解が含まれているので、(XA5)×(Y1)と、(XA4)×(Y0)の2つの演算が実行される。その結果、同期情報生成部225は、((XA5)×(Y1)、(XA4)×(Y0))という一対の情報を得ることになる。同期情報生成部225はこれを、一方のユーザ装置100のための同期情報とする。また、同期情報生成部225は、(XB16)×(Y1)と、(XB15)×(Y0)の2つの演算を実行する。その結果、同期情報生成225部は、((XB16)×(Y1)、(XB15)×(Y0))という一対の情報を得ることになる。同期情報生成部225はこれを、他方のユーザ装置100のための同期情報とする。
一方のユーザ装置100のための同期情報は、特定ユーザ装置たる2つのユーザ装置100のうちの一方のユーザ装置100へ、他方のユーザ装置100のための同期情報は、特定ユーザ装置たる2つのユーザ装置100のうちの他方のユーザ装置100へ、それぞれ送られる。
【0082】
同期情報を受取った一方のユーザ装置100では、以下のようにして初期解が生成される。
変形例1の場合と同様に、同期情報は、一方のユーザ装置100のユーザ初期解生成部125に送られる。これを受取ったユーザ初期解生成部125は、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う際に用いられる初期解を生成する。ユーザ初期解生成部125は、解を生成せよとの指示をユーザ解生成部123に送る。ユーザ解生成部123は解を生成する。一方のユーザ装置100におけるユーザ解生成部123は、繰り返し述べているように、サーバ200のサーバ解生成部223で生成される解と同期した解を生成することができる。したがって、ユーザ解生成部123は、サーバ200の同期情報生成部225が同期情報を生成する際に一方のユーザ装置100で生成可能な解として生成した解である(XA5)と(XA4)という2つの解を生成することができる。幾つ目の解をここで生成するかという条件は、サーバ200とユーザ装置100との間で、例えば予め共有されている。
ユーザ解生成部123は、生成したこの2つの解を、ユーザ初期解生成部125に送る。ユーザ初期解生成部125は、(XA5)と(XA4)という2つの解を用いて、サーバ200から送られてきた同期情報に対して、サーバ200の同期情報生成部225で行われた演算の逆演算を行う。かかる演算は、((XA5)×(Y1))に対しては、((XA5)×(Y1))÷(XA5)として実行され、((XA4)×(Y0))に対しては、((XA4)×(Y0))÷(XA4)として実行される。その結果、ユーザ初期解生成部125は、((Y1)、(Y0))という解の対を得ることになる。
この解の対を、ユーザ初期解生成部125は初期解として決定し、ユーザ解記録部124に記録する。
【0083】
同期情報を受取った他方のユーザ装置100でも同様の処理が行われ、初期解が生成される。
同期情報は、他方のユーザ装置100のユーザ初期解生成部125に送られる。ユーザ初期解生成部125は、解を生成せよとの指示をユーザ解生成部123に送る。ユーザ解生成部123は解を生成する。ユーザ解生成部123は、サーバ200の同期情報生成部225が同期情報を生成する際に他方のユーザ装置100で生成可能な解として生成した解である(XB16)と(XB15)という2つの解を生成することができる。
ユーザ解生成部123は、生成したこの2つの解を、ユーザ初期解生成部125に送る。ユーザ初期解生成部125は、(XB16)と(XB15)という2つの解を用いて、サーバ200から送られてきた同期情報に対して、サーバ200の同期情報生成部225で行われた演算の逆演算を行う。かかる演算は、((XB16)×(Y1))に対しては、((XB16)×(Y1))÷(XB16)として実行され、((XB15)×(Y0))に対しては、((XB15)×(Y0))÷(XB15)として実行される。その結果、ユーザ初期解生成部125は、((Y1)、(Y0))という解の対を得ることになる。
この解の対を、ユーザ初期解生成部125は初期解として決定し、ユーザ解記録部124に記録する。
【0084】
これにて、特定ユーザ装置たる2つのユーザ装置100で同じ初期解が共有された。
以後、特定ユーザ装置たる2つのユーザ装置100は、共通する上述した初期解を用いて、同期した解を生成し、変形例1、或いは第1実施形態の場合と同様に、暗号化通信を実行することができる。
【0085】
≪第2実施形態≫
第2実施形態の通信システムについて説明する。
第2実施形態の通信システムは、概ね第1実施形態の通信システムを踏襲したものとなっており、第1実施形態の通信システムをその内部に含んだものとなっている。
図7に第2実施形態の通信システムを概略的に示す。
第2実施形態の通信システムは、ユーザ装置100とサーバ200とを含んでいる。ユーザ装置100は、ユーザ装置100-1~ユーザ装置100-1000の1000個であり、サーバ200はサーバ200-1~サーバ200-6の6つであるものとする。
ユーザ装置100は、第1実施形態及びその変形例で採用したものとその構成は変わらないものとすることができる。サーバ200のうちサーバ200-1~サーバ200-4も同様である。もっとも、サーバ200のうち以下に説明するものはそれらの間で互いに暗号化通信を行うことが可能になっている。
【0086】
これには限られないが、第2実施形態では、サーバ200-1はユーザ装置100-1~ユーザ装置100-300を、第1実施形態で説明した意味で管理するものとする。つまり、サーバ200-1は、ユーザ装置100-1~ユーザ装置100-300のすべてにおいて発生する解と同期した解を発生させることが可能である。また、サーバ200-1は、ユーザ装置100-1~ユーザ装置100-300のうちの任意の2つのユーザ装置100が特定ユーザ装置となって、特定ユーザ装置たる2つのユーザ装置100の間で第1実施形態において説明した暗号化通信を実行しようとした場合には、それら2つのユーザ装置100に対して同期情報を提供することができるようになっている。言い換えれば、サーバ200-1に管理されるユーザ装置100-1~ユーザ装置100-300は、サーバ200-1の管理下で、第1実施形態(変形例1~変形例4であっても良い。)で説明した暗号化通信を実現できるようになっている。
同様に、サーバ200-2はユーザ装置100-301~ユーザ装置100-600を、第1実施形態で説明した意味で管理し、サーバ200-3はユーザ装置100-601~ユーザ装置100-900を、第1実施形態で説明した意味で管理し、サーバ200-4はユーザ装置100-901~ユーザ装置100-1000を、第1実施形態で説明した意味で管理するようになっている。
そして、サーバ200-1とサーバ200-2は、それらの間で暗号化通信を実現できるようになっている。かかる暗号化通信は、第1実施形態等において特定ユーザ装置たる2つのユーザ装置100の間で実現された同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
他方、サーバ200-5とサーバ200-6は、いずれのユーザ装置100をも第1実施形態で説明した意味では管理しない。ただし、サーバ200-5は、サーバ200-1と、サーバ200-3との間で暗号化通信を行えるようになっており、サーバ200-6はサーバ200-1とサーバ200-4との間で暗号化通信を行えるようになっている。サーバ200-5が、サーバ200-1又はサーバ200-3との間で行う暗号化通信、及びサーバ200-6がサーバ200-1又はサーバ200-4との間で行う暗号化通信は、第1実施形態等において特定ユーザ装置たる2つのユーザ装置100の間で実現された同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
【0087】
以上の説明を、
図8に示す。なお、
図8ではネットワーク400は捨象する。
以上のような通信システムにおいては、もちろん、共通するサーバ200に管理されている任意の2つのユーザ装置100同士であって、特定ユーザ装置をなすものは、それらを共通して管理するサーバ200の下で、当該サーバ200から供給される同期情報を得ることができ、また、その同期情報を用いて、第1実施形態等において特定ユーザ装置たる2つのユーザ装置100の間で実現された同期して発生させられる解を用いて行われる暗号化通信を実現することができる。
例えば、サーバ200-1に管理されたユーザ装置100-1~ユーザ装置100-300のうちの任意の2つであるユーザ装置100-2とユーザ装置100-105、サーバ200-2に管理されたユーザ装置100-451とユーザ装置100-501等は、同期して発生させられる解を用いて行われる暗号化通信を実現することができる。
しかも、第2実施形態における通信システムによれば、共通するサーバ200に管理されていない任意の2つのユーザ装置100同士であっても、それらを管理するサーバ200が直接暗号化通信を行えるようになっているか、或いは他のサーバ200を間に挟んで間接的に暗号化通信を行えるようになっていれば、同期して発生させられる解を用いて行われる暗号化通信を実現することができる。
【0088】
例えば、サーバ200-1に管理されたユーザ装置100-1と、サーバ200-2に管理されたユーザ装置100-390とが特定ユーザ装置となり、ユーザ装置100-1とユーザ装置100-390との間で、同期して発生させられる解を用いて行われる暗号化通信を行うことを希望したとする。例えば、ユーザ装置100-1は、自分を管理するサーバ200-1に対して、第1実施形態で説明したのと同様の特定情報、つまりユーザ装置100-1とユーザ装置100-390とを特定する特定情報を送信する。
サーバ200-1は、特定情報を受取ったとき、他のサーバ200の中から自分が管理しないユーザ装置100-390を管理しているサーバ200を探す。例えば、そのようなサーバ200を探しているという通知を他のサーバ200に送る。その結果、ユーザ装置100-390を管理しているサーバ200であるサーバ200-2を、例えば当該サーバ200-2からの通知により発見する。
上述したように、サーバ200-1とサーバ200-2とは、両者の間で暗号化通信を行えるようになっている。例えて言うのであれば、サーバ200-1とサーバ200-2の間には、或いはそれらを管理する者の間には、暗号化通信を行うだけの信頼関係が既に築かれている状態にある。サーバ200-1とサーバ200-2とは、暗号化通信を行う。かかる暗号化通信は、第1実施形態で説明したような同期情報を生成するための情報を、サーバ200-1とサーバ200-2との間でやり取りするものである。
同期情報を生成するために必須なのは、特定ユーザ装置たる2つのユーザ装置100において生成される解と同期している解であり、それらの解は、特定ユーザ装置たる2つのユーザ装置100であるユーザ装置100-1とユーザ装置100-390をそれぞれ管理する、サーバ200-1とサーバ200-2とのいずれかによって生成可能なものである。また、同期情報を生成するために必要な解を生成するためには、どのユーザ装置100が特定ユーザ装置であるかということを示す特定情報が必要であるが、特定情報はサーバ200-1が既に入手しているので、それを暗号化通信によりサーバ200-2に送信することで、サーバ200-1とサーバ200-2とがその特定情報を共有することが可能である。また、特定ユーザ装置たる2つのユーザ装置100のいずれの解とも同期していない解を、特定ユーザ装置たる2つのユーザ装置における初期解とする場合(例えば、変形例2、変形例4)もあるが、そのような解は、いずれのサーバ200でも生成可能である。したがって、サーバ200-1とサーバ200-2との間で、それらが管理するユーザ装置100によって生成可能な解、特定情報等を送受信することにより、サーバ200-1とサーバ200-2との少なくとも一方で、第1実施形態等で説明した通りの同期情報を生成することができる。
他方、生成された同期情報は、ユーザ装置100-1とユーザ装置100-390の少なくとも一方に送られることが必要になるが、ユーザ装置100-1への同期情報の送信はサーバ200-1が行えばよく、ユーザ装置100-390への同期情報の送信はサーバ200-2が行えば良い。
つまり、以上で説明した場合においては、互いに暗号化通信を実行するサーバ200-1とサーバ200-2は、協働することにより、サーバ200-1とサーバ200-2の少なくとも一方によって管理されているユーザ装置100の全体についての第1実施形態でいうところのサーバ200として機能することになり、サーバ200-1と、サーバ200-2とは、本願発明でいう副サーバ装置として機能することになる。以上の通信の状態を、概念的に
図9に示す。
図9でもネットワーク400は捨象されている。
【0089】
同様に、サーバ200-1に管理されているユーザ装置100である例えばユーザ装置100-90と、サーバ200-3に管理されているユーザ装置100である例えばユーザ装置100-800とが、特定ユーザ装置として、同期して発生させられる解を用いて行われる暗号化通信を行うことを希望したとする。例えば、ユーザ装置100-90は、自分を管理するサーバ200-1に対して、第1実施形態で説明したのと同様の特定情報、つまりユーザ装置100-1とユーザ装置100-800とを特定する特定情報を送信する。
サーバ200-1は、特定情報を受取ったとき、他のサーバ200の中から自分が管理しないユーザ装置100-800を管理しているサーバ200を探す。その結果、ユーザ装置100-800を管理するサーバ200-3を発見する。しかしながら、サーバ200-1とサーバ200-3は、両者の間で暗号化通信を行えるようになっていない。例えて言うのであれば、サーバ200-1とサーバ200-3は、或いはそれらの管理者はお互いを知らず、或いは暗号化通信を行うまでの信頼関係が築けていない。そのような場合、サーバ200-1は、サーバ200-1と、サーバ200-3との間を暗号化通信で繋いでくれる他のサーバを探す。幸いなことに、上述した通り、サーバ200-1とサーバ200-3とを暗号化通信で結ぶことのできるサーバ200として、サーバ200-5が存在する。
サーバ200-1とサーバ200-3とは、サーバ200-5を間に挟み、
図10に示したような通信状態を形成する。サーバ200-1とサーバ200-2との間で、特定ユーザ装置たる2つのユーザ装置100が初期解を共有するための情報である同期情報を生成するのに必要な情報を共有できたように、サーバ200-5を介して、サーバ200-1と、サーバ200-5と、サーバ200-3とは、それら情報を共有することができる。これにより、サーバ200-1と、サーバ200-5と、サーバ200-3とのいずれかにより、同期情報を生成することが可能となる。
生成された同期情報は、ユーザ装置100-90とユーザ装置100-800の少なくとも一方に送られることが必要になるが、ユーザ装置100-90への同期情報の送信はサーバ200-1が行えばよく、ユーザ装置100-800への同期情報の送信はサーバ200-3が行えば良い。
つまり、以上で説明した場合においては、互いに暗号化通信を実行するサーバ200-1と、サーバ200-5と、サーバ200-3とは、協働することにより、サーバ200-1とサーバ200-3の少なくとも一方によって管理されているユーザ装置100の全体についての第1実施形態でいうところのサーバ200として機能することになる。この場合、サーバ200-1と、サーバ200-5と、サーバ200-3とは、本願発明でいう副サーバ装置として機能することになる。副サーバ装置の中には、サーバ200-5の如く、ユーザ装置100を管理しないものが存在しうる。ユーザ装置100を管理しない副サーバ装置は、ユーザ装置100を管理するサーバ200同士を暗号化通信により接続するものであって、ユーザ装置100を管理するサーバ200よりもより公的な色彩を帯びたものになる可能性が高い。
【0090】
同様に、サーバ200-3に管理されているユーザ装置100である例えばユーザ装置100-700と、サーバ200-4に管理されているユーザ装置100である例えばユーザ装置100-999とが、特定ユーザ装置として、同期して発生させられる解を用いて行われる暗号化通信を行うことを希望したとする。例えば、ユーザ装置100-700は、自分を管理するサーバ200-3に対して、第1実施形態で説明したのと同様の特定情報、つまりユーザ装置100-700とユーザ装置100-999とを特定する特定情報を送信する。
サーバ200-3は、特定情報を受取ったとき、他のサーバ200の中から自分が管理しないユーザ装置100-999を管理しているサーバ200を探す。その結果、ユーザ装置100-999を管理するサーバ200-4を発見する。しかしながら、サーバ200-3とサーバ200-4は、両者の間で暗号化通信を行えるようになっていない。また、サーバ200-3とサーバ200-4とを直接暗号化通信で結ぶことのできるサーバ200も存在しない。しかしながら、サーバ200-3と暗号化通信を行うことができるサーバ200-5と、サーバ200-4と暗号化通信を行うことができるサーバ200-6とはともに、サーバ200-1と暗号化通信を行うことが可能となっている。
したがって、サーバ200-3とサーバ200-4とは、サーバ200-5、サーバ200-1、及びサーバ200-6を間に挟み、
図11に示したような通信状態を形成することができる。サーバ200-1とサーバ200-2との間で、特定ユーザ装置たる2つのユーザ装置100が初期解を共有するための情報である同期情報を生成するのに必要な情報を共有できたように、サーバ200-5、サーバ200-1、及びサーバ200-6を介して、サーバ200-3と、サーバ200-5と、サーバ200-1と、サーバ200-6と、サーバ200-4とは、それら情報を共有することができる。これにより、サーバ200-5、サーバ200-1、及びサーバ200-6を介して、サーバ200-3と、サーバ200-5と、サーバ200-1と、サーバ200-6と、サーバ200-4とのいずれかにより、同期情報を生成することが可能となる。
生成された同期情報は、ユーザ装置100-700とユーザ装置100-999の少なくとも一方に送られることが必要になるが、ユーザ装置100-700への同期情報の送信はサーバ200-3が行えばよく、ユーザ装置100-999への同期情報の送信はサーバ200-4が行えば良い。
つまり、以上で説明した場合においては、互いに暗号化通信を実行するサーバ200-3と、サーバ200-5と、サーバ200-1と、サーバ200-6と、サーバ200-4とは、互いに協働することにより、サーバ200-3とサーバ200-4の少なくとも一方によって管理されているユーザ装置100の全体についての第1実施形態でいうところのサーバ200として機能することになる。この場合、サーバ200-3と、サーバ200-5と、サーバ200-1と、サーバ200-6と、サーバ200-4とは、本願発明でいう副サーバ装置として機能することになる。上述したように副サーバ装置の中には、サーバ200-5、サーバ200-6の如く、ユーザ装置100を管理しないものが存在しうる。また、特定ユーザ装置に含まれるユーザ装置100を管理せず且つ特定ユーザ装置に含まれないユーザ装置100を管理するサーバ200(この例ではサーバ200-1)が、特定ユーザ装置たる2つのユーザ装置100を管理する2つのサーバ200(この例では、サーバ200-3とサーバ200-4)の間に入って、特定ユーザ装置たる2つのユーザ装置100を管理する2つのサーバ200の暗号化通信を成立させる手助けを行うことも可能である。
このようにサーバ200と同様の機能をもつサーバ200の集合体を、互いに暗号化通信を行うサーバ200を組合せることにより構築することにより、同じサーバ200に管理されていないユーザ装置100間においても初期解の共有が可能となり、結果として同期した解を連続して発生させての暗号化通信を実行できるようになる。
例えば、
図7に示した例によれば、ユーザ装置100-1からユーザ装置100-1000のうちの任意の2つのユーザ装置100は、少なくとも1つのサーバ200を介して初期解を共有することが可能であり、且つ同期した解を連続して発生させての暗号化通信を実行できるようになっている。
【符号の説明】
【0091】
100 ユーザ装置
101 ディスプレイ
102 入力装置
121 入力部
122 主制御部
123 ユーザ解生成部
124 ユーザ解記録部
125 ユーザ初期解生成部
126 ユーザ暗号化復号化部
127 出力部
221 入力部
222 主制御部
223 サーバ解生成部
224 サーバ解記録部
225 同期情報生成部
227 出力部