(57)【特許請求の範囲】
【請求項１】
コンピュータ装置が平文を暗号化するための第１共通鍵を作成し、通信ネットワークを介して鍵情報を他のコンピュータ装置に配送するための共通鍵配送方法であって、
コンピュータ装置が、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他のコンピュータ装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納ステップと、
利用者の所望する文字列又は数値からなる任意の英数記号文字から構成される英数記号文字列である第１共通鍵を生成する第１共通鍵生成ステップと、
前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、第２の整数である第２共通鍵を生成する第２共通鍵生成ステップと、
前記通信ネットワークを介して、前記他のコンピュータ装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信する通信ステップと、を含み、
前記第２共通鍵生成ステップは、さらに、
前記第１共通鍵である英数記号文字列を第１の整数に可逆的に変換する整数変換ステップと、
前記整数変換ステップにより算出された前記第１の整数及び前記ベース共通鍵を入力として、前記第２の整数を算出する第１演算処理ステップと、を含み、
前記整数変換ステップは、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出するステップと、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトするステップとし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出するステップと、
前記算出された１１２進数を１０進数の整数である前記第１の整数に変換するステップと、を含む、方法。
【請求項２】
コンピュータ装置が平文を暗号化するための第１共通鍵を作成し、通信ネットワークを介して鍵情報を他のコンピュータ装置に配送するための共通鍵配送方法であって、
コンピュータ装置が、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他のコンピュータ装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納ステップと、
利用者の所望する文字列又は数値からなる任意の英数記号文字から構成される英数記号文字列である第１共通鍵を生成する第１共通鍵生成ステップと、
前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、英数記号文字から構成される英数記号文字列である第２共通鍵を生成する第２共通鍵生成ステップと、
前記通信ネットワークを介して、前記他のコンピュータ装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信する通信ステップと、を含み、
前記第２共通鍵生成ステップは、さらに、
前記第１共通鍵である英数記号文字列を第１の整数に可逆的に変換する整数変換ステップと、
前記整数変換ステップにより算出された前記第１の整数及び前記ベース共通鍵を入力として、第２の整数を算出する第１演算処理ステップと、
前記第１演算処理ステップにより算出された第２の整数を前記英数記号文字から構成される英数記号文字列である第２共通鍵に可逆的に変換する英数記号文字列変換ステップと、を含み、
前記英数記号文字列変換ステップにより算出された第２の英数記号文字列を第２共通鍵とし、
前記整数変換ステップは、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出するステップと、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトするステップとし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出するステップと、
前記算出された１１２進数を１０進数の整数である前記第１の整数に変換するステップと、を含む、方法。
【請求項３】
コンピュータ装置が、通信ネットワークを介して暗号文を復号化するための、暗号文作成者の所望する文字列又は数値からなる英数記号文字から構成される英数記号文字列である第１共通鍵を他のコンピュータ装置から、配送を受けるための方法であって、
コンピュータ装置が、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他のコンピュータ装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納ステップと、
前記他のコンピュータ装置から通信ネットワークを介して、前記第１共通鍵とは異なる英数記号文字から構成される英数記号文字列である第２共通鍵を受信するステップと、
前記他のコンピュータ装置から受信した前記第２共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得ステップと、
前記第１共通鍵取得ステップは、さらに、
前記第２共通鍵である英数記号文字列を可逆的に第２の整数に変換する整数変換ステップと、
前記第２の整数及び前記ベース共通鍵を入力として、第１の整数を算出する第２演算処理ステップと、
前記第２演算処理ステップにより算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換ステップと、を含み、
前記英数記号文字列変換ステップにより算出された第１の英数記号文字列を第１共通鍵とし、
前記整数変換ステップは、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出するステップと、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトするステップとし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出するステップと、
前記算出された１１２進数を１０進数の整数である前記第２の整数に変換するステップと、を含む、方法。
【請求項４】
前記第１演算処理ステップにおいて、加算処理により第２の整数を算出する、請求項１又は請求項２に記載の方法。
【請求項５】
前記第２演算処理ステップにおいて、減算処理により第１の整数を算出する、請求項３に記載の方法。
【請求項６】
コンピュータ装置に請求項１から請求項５のいずれか１項に記載の方法の各ステップを実行させるためのコンピュータプログラム。
【請求項７】
平文を暗号化するための第１共通鍵を作成し、鍵情報を受信側端末装置に配送する送信側端末装置と、前記送信側端末装置から配送される前記鍵情報から、第１共通鍵を取得する前記受信側端末装置とを含む共通鍵配送システムであって、
前記送信側端末装置は、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記受信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納部と、
利用者の所望する文字列又は数値からなる任意の英数記号文字から構成される英数記号文字列である第１共通鍵を生成する第１共通鍵生成部と、
前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、英数記号文字から構成される英数記号文字列である第２共通鍵を生成する第２共通鍵生成部と、
前記受信側端末装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信する前記受信側端末装置と通信するための通信部と、を含み、
前記第２共通鍵生成部は、さらに、
前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、
前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、
前記第１演算処理部により算出された第２の整数を第２の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、
前記整数変換部は、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出し、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出し、
前記算出された１１２進数を１０進数の整数である前記第１の整数に変換し、
前記受信側端末装置は、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記送信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース鍵格納部と、
前記送信側端末装置から通信ネットワークを介して、前記第１共通鍵とは異なる第２共通鍵を受信するための通信部と、
前記送信側端末装置から前記通信部を介して受信した前記第２共通鍵及び前記ベース鍵格納部に格納されたベース共通鍵を入力として可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得部と、を含み、
前記第１共通鍵取得部は、さらに、
前記第２共通鍵及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、
前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する第２英数記号文字列変換部と、を含み、
前記第２英数記号文字列変換部により算出された第１の英数記号文字列を第１共通鍵とする、
共通鍵配送システム。
【請求項８】
平文を暗号化するための第１共通鍵を作成し、鍵情報を受信側端末装置に配送する送信側端末装置と、前記送信側端末装置から配送される前記鍵情報から、第１共通鍵を取得する前記受信側端末装置とを含む共通鍵配送システムであって、
前記送信側端末装置は、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記受信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納部と、
利用者の所望する文字列又は数値からなる任意の英数記号文字から構成される英数記号文字列である第１共通鍵を生成する第１共通鍵生成部と、
前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、英数記号文字から構成される英数記号文字列である第２共通鍵を生成する第２共通鍵生成部と、
前記受信側端末装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信する前記受信側端末装置と通信するための通信部と、を含み、
前記第２共通鍵生成部は、さらに、
前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、
前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、
前記第１演算処理部により算出された第２の整数を第２の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、
前記整数変換部は、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出し、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出し、
前記算出された１１２進数を１０進数の整数である前記第１の整数に変換し、
前記受信側端末装置は、
予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記送信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース鍵格納部と、
前記送信側端末装置から通信ネットワークを介して、前記第１共通鍵とは異なる第２共通鍵を受信するための通信部と、
前記送信側端末装置から前記通信部を介して受信した前記第２共通鍵及び前記ベース鍵格納部に格納されたベース共通鍵を入力として可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得部と、を含み、
前記第１共通鍵取得部は、さらに、
前記第２共通鍵を可逆的に第２の整数に変換する整数変換部と、
前記整数変換部により算出された前記第２の整数及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、
前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する第２英数記号文字列変換部と、を含み、
前記第２英数記号文字列変換部により算出された第１の英数記号文字列を第１共通鍵とし、
前記整数変換部は、さらに、
英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出し、
前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトし、
前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出し、
前記算出された１１２進数を１０進数の整数である前記第２の整数に変換する、共通鍵配送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号文を作成する利用者の所望する共通鍵を同時若しくは事後に配送する共通鍵配送に係る方法、プログラム、及びシステムに関する。
【背景技術】
【０００２】
近年、インターネット等のネットワークをデータの交換手段として利用することが急速に広まっている。しかしながら、インターネット等のネットワークでは、データを交換する際に複数のサーバ及び通信回線を経由してデータが転送される。第３者に知られることなく、安全に２者間、若しくはそれ以上の間で安全な通信を行うために、データを暗号化して伝送されることがよく行われる。【０００３】
共通鍵暗号は、シーザー暗号でよく知られるが、紀元前から利用されている、暗号と復号を同じ鍵で行うため、鍵を事前共有する。
この共通鍵暗号方式は、公開鍵暗号方式に比べ、共通鍵を用いて暗号化及び復号を行うので、アルゴリズムが簡易であり、一般的に暗号化スピードが早いという長所があるため、通常トラフィックデータに対する暗号化方式として、今後の伝送路の高速化に対応するためにも、共通鍵暗号方式を採用するのがふさわしい。【０００４】
共通鍵の鍵配送・鍵共有については、例えば、安全な鍵の共有（配送）の方法として、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式（以下、「ＤＨ鍵交換方式」ともいう）が提案されている。【０００５】
特許文献１には、ＤＨ鍵交換方式に基づいて、共通鍵の受け渡しを行わずに、２者間で安全に共通鍵を共有する共通鍵生成システム及び共通鍵配送システムが記載されている。具体的には、以下のとおりである。【０００６】
第１の端末は、共通鍵を生成する情報となる基数Ａ、除数Ｂ、及び第１秘密鍵Ｓ１を生成し、生成した基数Ａ、除数Ｂ、及び第１秘密鍵Ｓ１に基づいて第１中間鍵Ｍ１を、以下の（式１）により生成する。
ＡＳ１  ＝  Ｘ１・Ｂ  ＋  Ｍ１                          （式１）
第１の端末は、生成した基数Ａ、除数Ｂ、及び生成した第１中間鍵Ｍ１を第２の端末に送信する。【０００７】
第２の端末は、第２秘密鍵Ｓ２を生成すると共に、第１の端末から受信した基数Ａ及び除数Ｂ、並びに生成した第２秘密鍵Ｓ２に基づいて第２中間鍵Ｍ２を、以下の（式２）により生成する。
ＡＳ２  ＝  Ｘ２・Ｂ  ＋  Ｍ２                          （式２）
第２の端末は、生成した第２中間鍵Ｍ２を第１の端末に送信する。【０００８】
そうすることで、第１の端末は、受信した第２中間鍵Ｍ２、並びに生成した除数Ｂ及び第１秘密鍵Ｓ１に基づいて、共通鍵Ｃを、以下の（式３）により生成することができる。
Ｍ２Ｓ１  ＝  Ｙ１・Ｂ  ＋Ｃ                          （式３）
同様に、第２の端末は、受信した第１中間鍵Ｍ１、除数Ｂ、生成した第２秘密鍵Ｓ２に基づいて、共通鍵Ｃを、以下の（式４）により生成することができる。
Ｍ１Ｓ２  ＝  Ｙ２・Ｂ  ＋Ｃ                          （式４）【０００９】
このように、第１の端末及び第２の端末それぞれにおいて共通鍵Ｃを生成することができる。第１の端末と第２の端末との間で共通鍵Ｃの受け渡しを行うことなく、２者間で安全に共通鍵を共有することができる。【００１０】
なお、３以上の複数の端末間においても、計算のラウンドを増やすことで、同様に安全に共有鍵を共有することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第５２５３４５６号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＤＨ鍵交換方式によれば、『事前に』共有した安全な鍵で情報（文書）を暗号化して、盗聴されるかもしれない通信路で送付し、受信者はその鍵で復号化することで情報を読み取り、安全性が確保される。
しかしながら、この鍵は、機械的に自動生成されるものであり、必ずしも利用者が所望したものではなく、利用者自身が覚えやすいものでもない。また、事前に生成する必要がある。【００１３】
本発明は、このような問題に鑑みてなされたものであり、暗号文を作成する利用者の所望した鍵であって、利用者自身が覚えやすい任意の鍵（例えば、パスワード、暗証番号等）を暗号化文書と共に或いは事後でも電子メール等により配送することを可能とする、共通鍵配送システム、共通鍵配送方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
（１）コンピュータ装置が平文を暗号化するための第１共通鍵を作成し、通信ネットワークを介して鍵情報を他のコンピュータ装置に配送するための共通鍵配送方法であって、コンピュータ装置が、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他のコンピュータ装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納ステップと、利用者の所望する文字列又は数値から構成される第１共通鍵を生成する第１共通鍵生成ステップと、前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、第２共通鍵を生成する第２共通鍵生成ステップと、前記通信ネットワークを介して、前記他のコンピュータ装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信する通信ステップと、を含む方法。【００１５】
（１）本発明の方法においては、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式により自動的に生成される共通鍵（ベース共通鍵）を使用する代わりに、暗号文を作成する利用者の所望した第１共通鍵であって、利用者自身が覚えやすい任意の鍵（例えば、パスワード、暗証番号等）を使用することができ、利用者の利便性を大いに向上させる。他方、鍵情報については、第１共通鍵ではなく、第１共通鍵及び前記ベース共通鍵から生成される第２共通鍵を用いて配送するため、ベース共通鍵を知らない限り、第1共通鍵を取得することはできないことから、本発明の方法は、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式の場合と同等の安全性を確保することができる。
さらに、第１公開鍵とは異なる第２共通鍵Ｋ２を暗号文Ｃと共に或いは事後でも電子メール等により配送することができ、暗号鍵の配送についても安全性を担保すると共に、利用者の利便性を大いに向上させることができる。
また、利用者は、暗号文を生成する毎に、毎回、第１共通鍵を容易に変更することができ、暗号文の秘匿性をより高めることを容易に実現できる。
さらに、ベース共通鍵を適宜再作成することで、セキュリティをより高度に確保することもできる。【００１６】
（２）前記第１共通鍵がゼロでない整数、前記第２共通鍵が整数であって、前記第２共通鍵生成ステップは、前記第１共通鍵及び前記ベース共通鍵を入力として、第２の整数を算出する第１演算処理ステップを含み、前記第１演算処理ステップにより算出された前記第２の整数を第２共通鍵とすることを特徴とする（１）に記載の方法。【００１７】
（２）このようにすることで、本発明において、暗号文を作成する利用者の所望した第１共通鍵であって、利用者自身が覚えやすい鍵として、例えば１６桁の数値を採用することができる。【００１８】
（３）前記第１共通鍵が任意の英数記号文字から構成される英数記号文字列、前記第２共通鍵が整数であって、前記第２共通鍵生成ステップは、前記第１共通鍵である英数記号文字列を第１の整数に可逆的に変換する整数変換ステップと、前記整数変換ステップにより算出された前記第１の整数及び前記ベース共通鍵を入力として、第２の整数を算出する第１演算処理ステップと、を含み、前記第１演算処理ステップにより算出された前記第２の整数を第２共通鍵とすることを特徴とする（１）に記載の方法。【００１９】
（３）このようにすることで、本発明において、暗号文を作成する利用者の所望した第１共通鍵であって、利用者自身が覚えやすい鍵として、例えば７桁の英数記号文字を採用することができる。【００２０】
（４）前記第１共通鍵、及び前記第２共通鍵がそれぞれ英数記号文字から構成される英数記号文字列であって、前記第２共通鍵生成ステップは、前記第１共通鍵である英数記号文字列を第１の整数に可逆的に変換する整数変換ステップと、前記整数変換ステップにより算出された前記第１の整数及び前記ベース共通鍵を入力として、第２の整数を算出する第１演算処理ステップと、前記第１演算処理ステップにより算出された第２の整数を第２の英数記号文字列に可逆的に変換する英数記号文字列変換ステップと、を含み、前記英数記号文字列変換ステップにより算出された第２の英数記号文字列を第２共通鍵とすることを特徴とする（１）に記載の方法。【００２１】
（４）第２共通鍵をこのようにすることで、本発明においては、第２共有鍵は整数変換部０１、第２演算処理部２３１、及び英数字記号文字列変換部０２の３つの異なる独立した変換部に基づき、英数字文字列として生成されることになる。
これにより、第２共通鍵Ｋ２から、第１共通鍵Ｋｕを算出することが、より困難になり、安全性を増すことができる。【００２２】
（５）コンピュータ装置が、通信ネットワークを介して暗号文を復号化するための、暗号文作成者の所望する文字列又は数値から構成される第１共通鍵を他のコンピュータ装置から、配送を受けるための方法であって、コンピュータ装置が、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他のコンピュータ装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納ステップと、前記他のコンピュータ装置から通信ネットワークを介して、前記第１共通鍵とは異なる第２共通鍵を受信するステップと、前記他のコンピュータ装置から受信した前記第２共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得ステップと、を含む、方法。【００２３】
（６）前記第１共通鍵がゼロでない整数、前記第２共通鍵が整数であって、前記第１共通鍵取得ステップは、前記第２共通鍵及び前記ベース共通鍵を入力として、第１の整数を算出する第２演算処理ステップを含み、前記第２演算処理ステップにより算出された前記第１の整数を第１共通鍵とすることを特徴とする（５）に記載の方法。【００２４】
（７）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、前記第２共通鍵が整数であって、前記第１共通鍵取得ステップは、前記第２共通鍵及び前記ベース共通鍵を入力として、第１の整数を算出する第２演算処理ステップと、前記第２演算処理ステップにより算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換ステップと、を含み、前記英数記号文字列変換ステップにより算出された第１の英数記号文字列を第１共通鍵とすることを特徴とする（５）に記載の方法。【００２５】
（８）前記第１共通鍵及び前記第２共通鍵が、それぞれ英数記号文字から構成される英数記号文字列であって、前記第１共通鍵取得ステップは、前記第２共通鍵である英数記号文字列を可逆的に第２の整数に変換する整数変換ステップと、前記第２の整数及び前記ベース共通鍵を入力として、第１の整数を算出する第２演算処理ステップと、前記第２演算処理ステップにより算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換ステップと、を含み、前記英数記号文字列変換ステップにより算出された第１の英数記号文字列を第１共通鍵とすることを特徴とする（５）に記載の方法。【００２６】
（５）〜（８）の方法によれば、（１）〜（４）の方法と同様の効果を奏することができる。【００２７】
（９）第１演算処理ステップにおいて、加算処理により第２の整数を算出する、（２）〜（４）のいずれかに記載の方法。【００２８】
（９）第２共有鍵を生成する演算として、ベース共通鍵を加算することで、効率的に第２共有鍵を生成することができる。また、ベース共通鍵がわからない限り、第１共通鍵を逆算することもできないため、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式の場合と同等の安全性を確保することができる。【００２９】
（１０）第２演算処理ステップにおいて、減算処理により第１の整数を算出する、（６）〜（８）のいずれかに記載の方法。【００３０】
（１０）第１共通鍵を算出する演算として、ベース共通鍵を減算することで、効率的に第２共有鍵を生成することができる。また、ベース共通鍵を知らない限り、第１共通鍵を逆算することもできないため、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式の場合と同等の安全性を確保することができる。【００３１】
（１１）英数記号文字列を可逆的に整数に変換する整数変換ステップは、英数記号文字の各々が、３２以上１２７以下の整数の各々に１対１に対応付けられた、文字・整数対応テーブルに基づいて、前記英数記号文字列を構成する各桁の英数記号文字に対応する整数を算出するステップと、前記各桁における英数記号文字に対応する各整数をそれぞれ１６以上１１１以下の整数にシフトするステップとし、前記シフトされた、各桁における英数記号文字に対応する各整数を、１１２進数における桁の値とする１１２進数を算出するステップと、前記算出された１１２進数を１０進数の整数に変換するステップと、を含むことを特徴とする、（３）、（４）、又は（８）のいずれかに記載の方法。【００３２】
（１１）本発明において、暗号文を作成する利用者の所望した第１共通鍵であって、利用者自身が覚えやすい鍵として英数記号文字を採用した場合、加算と乗算のみにより、簡単に整数に変換できる。また、この変換は可逆的な変換であり、第２共通鍵から第１共通鍵を算出する際にも適用できる。【００３３】
（１２）コンピュータ装置に（１）から（１１）のいずれかに記載の方法の各ステップを実行させるためのコンピュータプログラム。【００３４】
（１２）（１１）のコンピュータプログラムによれば、（１）〜（１１）の方法と同様の効果を奏することができる。【００３５】
（１３）平文を暗号化するための第１共通鍵を作成し、鍵情報を受信側端末装置に配送する送信側端末装置と、前記送信側端末装置から配送される前記鍵情報から、第１共通鍵を取得する前記受信側端末装置とを含む共通鍵配送システムであって、前記送信側端末装置は、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記受信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納部と、利用者の所望する文字列又は数値から構成される第１共通鍵を生成する第１共通鍵生成部と、前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、第２共通鍵を生成する第２共通鍵生成部と、前記受信側端末装置と通信するための通信部と、を含み、前記通信部は、前記受信側端末装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信し、前記受信側端末装置は、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記送信側端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース鍵格納部と、前記送信側端末装置から通信ネットワークを介して、前記第１共通鍵とは異なる第２共通鍵を受信するための通信部と、前記送信側端末装置から前記通信部を介して受信した前記第２共通鍵及び前記ベース鍵格納部に格納されたベース共通鍵を入力として可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得部と、を含むことを特徴とする共通鍵配送システム。【００３６】
（１４）前記第１共通鍵がゼロでない整数、及び前記第２共通鍵が整数であって、前記第２共通鍵生成部は、前記第１共通鍵及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部を含み、前記第１演算処理部により算出された前記第２の整数を第２共通鍵とし、前記第１共通鍵取得部は、前記第２共通鍵及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部を含み、前記第２演算処理部により算出された前記第１の整数を第１共通鍵とすることを特徴とする（１３）に記載の共通鍵配送システム。【００３７】
（１５）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵が整数であって、前記第２共通鍵生成部は、前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、を含み、前記第１演算処理部により算出された前記第２の整数を第２共通鍵とし、前記第１共通鍵取得部は、前記第２共通鍵及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された前記第１の英数記号文字列を第１共通鍵とすることを特徴とする（１３）に記載の共通鍵配送システム。【００３８】
（１６）前記第１共通鍵は任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵は英数記号文字から構成される第２の英数記号文字列であって、前記第２共通鍵生成部は、前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、前記第１演算処理部により算出された第２の整数を第２の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された第２の英数記号文字列を第２共通鍵とし、前記第１共通鍵取得部は、前記第２共通鍵を可逆的に第２の整数に変換する整数変換部と、前記整数変換部により算出された前記第２の整数及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された第１の英数記号文字列を第１共通鍵とすることを特徴とする（１３）に記載の共通鍵配送システム。【００３９】
（１３）〜（１６）のシステムによれば、（１）〜（８）の方法と同様の効果を奏することができる。【００４０】
（附記）本発明の課題を解決するための手段として、以下に記載するように、端末装置として提供することができる。【００４１】
（１７）平文を暗号化するための第１共通鍵を作成し、通信ネットワークを介して鍵情報を他の端末装置に配送する端末装置であって、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他の端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース共通鍵格納部と、利用者の所望する文字列又は数値から構成される第１共通鍵を生成する第１共通鍵生成部と、前記第１共通鍵及び前記ベース共通鍵を入力として、可逆的な変換処理を行い、第２共通鍵を生成する第２共通鍵生成部と、前記他の端末装置と通信するための通信部と、を含み、前記通信部は、前記他の端末装置に対して前記第１共通鍵ではなく前記第２共通鍵を送信することを特徴とする端末装置。【００４２】
（１８）前記第１共通鍵がゼロでない整数、及び前記第２共通鍵が整数であって、前記第２共通鍵生成部は、前記第１共通鍵及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部を含み、前記第１演算処理部により算出された前記第２の整数を第２共通鍵とすることを特徴とする（１７）に記載の端末装置。【００４３】
（１９）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵が整数であって、前記第２共通鍵生成部は、前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、を含み、前記第１演算処理部により算出された前記第２の整数を第２共通鍵とすることを特徴とする（１７）に記載の端末装置。【００４４】
（２０）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵が英数記号文字から構成される第２の英数記号文字列であって、前記第２共通鍵生成部は、前記第１共通鍵を第１の整数に可逆的に変換する整数変換部と、前記整数変換部により算出された前記第１の整数及び前記ベース共通鍵を入力として、第１演算処理を行い、第２の整数を算出する第１演算処理部と、前記第１演算処理部により算出された第２の整数を第２の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された第２の英数記号文字列を第２共通鍵とすることを特徴とする（１７）に記載の端末装置。【００４５】
（１７）〜（２０）の端末装置によれば、（１）〜（４）の方法と同様の効果を奏することができる。【００４６】
（２１）通信ネットワークを介して暗号文を復号化するための、暗号文作成者の所望する文字列又は数値から構成される第１共通鍵を他の端末装置から配送を受ける端末装置であって、予め、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換方式に基づいて前記他の端末装置と共有する共通鍵を生成し、生成した共通鍵をベース共通鍵として格納するベース鍵格納部と、前記他の端末装置から通信ネットワークを介して、前記第１共通鍵とは異なる第２共通鍵を受信するための通信部と、前記他の端末装置から前記通信部を介して受信した、前記第２共通鍵及び前記ベース鍵格納部に格納されたベース共通鍵を入力として可逆的な変換処理を行い、前記第１共通鍵を取得する第１共通鍵取得部と、を含むことを特徴とする端末装置。【００４７】
（２２）前記第１共通鍵がゼロでない整数、及び前記第２共通鍵が整数であって、前記第１共通鍵取得部は、前記第２共通鍵及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部を含み、前記第２演算処理部により算出された前記第１の整数を第１共通鍵とすることを特徴とする（２１）に記載の端末装置。【００４８】
（２３）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵が整数であって、前記第１共通鍵取得部は、前記第２共通鍵及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された前記第１の英数記号文字列を第１共通鍵とすることを特徴とする（２１）に記載の端末装置。【００４９】
（２４）前記第１共通鍵が任意の英数記号文字から構成される第１の英数記号文字列、及び前記第２共通鍵が英数記号文字から構成される第２の英数記号文字列であって、前記第１共通鍵取得部は、前記第２共通鍵を可逆的に第２の整数に変換する整数変換部と、前記整数変換部により算出された前記第２の整数及び前記ベース共通鍵を入力として、第２演算処理を行い、第１の整数を算出する第２演算処理部と、前記第２演算処理部により算出された前記第１の整数を第１の英数記号文字列に可逆的に変換する英数記号文字列変換部と、を含み、前記英数記号文字列変換部により算出された第１の英数記号文字列を第１共通鍵とすることを特徴とする（２１）に記載の端末装置。【００５０】
（２１）〜（２４）の端末装置によれば、（５）〜（８）の方法と同様の効果を奏することができる。
【発明の効果】
【００５１】
本発明によれば、予め生成したベース共通鍵を送信側端末及び受信側端末の間で共有した後は、送信側端末は、利用者の所望する鍵であって、利用者自身が覚えやすい任意の鍵（例えば、パスワード、暗証番号等）により、情報を暗号化することができる。
そして、盗聴可能な通信路（例えば、インターネット等）で利用者の所望する鍵により暗号化した暗号化文書と共に或いは事後でも鍵情報を、例えば電子メール等により配送することで、当該鍵情報を送信側端末及び受信側端末間で安全に共有することができる。
【図面の簡単な説明】
【００５２】
【図１】本実施形態に係る情報システム１の全体概要を示す図である。
【図２】本実施形態に係る端末装置（送信側端末１０及び受信側装置２０）の機能構成を示す図である。
【図３】本実施形態に係る英数記号文字・１０進数対応テーブル０３の概要を示す図である。
【図４】本実施形態に係る情報システム１における処理の流れを示すフローチャートである。
【図５】本実施形態に係る整数変換部０１に係る詳細な処理の流れを示すフローチャートである。
【図６】本実施形態に係る英数記号文字列変換部０２に係る詳細な処理の流れを示すフローチャートである。
【図７】第２実施形態に係る端末装置（送信側端末１０及び受信側装置）の機能構成を示す図である。
【図８】第２実施形態に係る情報システム１における処理の流れを示すフローチャートである。
【図９】第３実施形態に係る端末装置（送信側端末１０及び受信側装置）の機能構成を示す図である。
【図１０】第３実施形態に係る情報システム１における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００５３】
以下、本発明の好ましい実施形態について図を参照しながら説明する。本発明のプログラムは、送信側端末及び受信側端末に適用され、送信側端末及び受信側端末にそれぞれ、各種機能を実現させる。
【００５４】
［第１実施形態］
初めに、図を参照して、第1実施形態について説明する。
［機能構成］
図１は、第１実施形態に係る情報システム１の全体概要を示す図である。情報システム１は、送信側端末１０と、受信側端末２０と、を備える。送信側端末１０及び受信側端末２０は、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）やインターネット等のコンピュータネットワークにより構成される通信ネットワークＮにより、通信可能に接続されている。
なお、図１の情報システム１においては、送信側端末１０及び受信側端末２０からなる２者間システムが例として記載されているが、情報システム１は、３以上の任意の複数の端末装置間で共通鍵を配送するように通信可能に接続されてもよい。
【００５５】
この送信側端末１０及び受信側端末２０の間では、予め、例えばＤＨ法等に基づいて、ベース共通鍵Ｋｂを生成し、共有する。
送信側端末１０では、送信者である利用者の所望した鍵であって、利用者自身が覚えやすい任意の第１共通鍵Ｋｕ（例えば、パスワード、暗証番号等）を生成し、公知の暗号化手段により平文Ｍを第１共通鍵Ｋｕを用いて暗号化して暗号文Ｃを生成し、公知の送信手段により暗号文Ｃを受信側端末２０に送信する。
送信側端末１０では、第１共通鍵Ｋｕとベース共通鍵Ｋｂに所定の可逆的な演算処理Ｆを行い、第２共通鍵Ｋ２を生成し、第２共通鍵Ｋ２を受信側端末に配送する。
ここで、第２共通鍵Ｋ２の送信に際して、暗号化せずに、そのまま送信してもよい。また、暗号文Ｃの送信と第２共通鍵Ｋ２の配送の順番は、任意としてもよい。
【００５６】
受信側端末２０では、公知の受信手段により送信側端末１０から暗号文Ｃ及び第２共通鍵Ｋ２を受信し、第２共通鍵Ｋ２とベース共通鍵Ｋｂに所定の可逆的な演算処理Ｆの逆変換処理Ｆ−１を行い、第１共通鍵Ｋｕを取得し、送信側端末１０から受信した暗号文Ｃを公知の復号化手段により第１共通鍵Ｋｕを用いて復号化して平文Ｍを取得する。
【００５７】
送信側端末１０及び受信側端末２０は、パソコン、サーバ、ノートパソコン、タブレット端末、ＰＤＡ、スマートフォン等その他の装置であって、通信機能を備える電子機器（コンピュータ装置）を含む。
本実施形態は、コンピュータ及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備えるハードウェア並びにこのハードウェアを制御するソフトウェアによって構成される。
【００５８】
上記ハードウェアには、制御部としてのＣＰＵの他、記憶部、通信部、表示部及び入力部が含まれる。記憶部としては、例えば、メモリ（ＲＡＭ、ＲＯＭ等）、ハードディスクドライブ（ＨＤＤ）及び光ディスク（ＣＤ、ＤＶＤ等）ドライブが挙げられる。通信部としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示部としては、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイが挙げられる。入力部としては、例えば、キーボード、マウス、タッチパネルディスプレイ等が挙げられる。
【００５９】
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して必要に応じて適宜ダウンロードすることも可能であり、ＣＤ−ＲＯＭ等のコンピュータ可読媒体に記録して配布することも可能である。
【００６０】
送信側端末１０及び受信側端末２０の各端末装置に含まれる制御部としてのＣＰＵは、各プログラムを実行することによって、それぞれ、送信側端末１０及び受信側端末２０の所定の手段として機能させる。
また、送信側端末１０及び受信側端末２０の各端末装置に含まれる制御部としてのＣＰＵは各プログラムを実行することによって、それぞれ、送信側端末１０及び受信側端末２０に、所定の手順を実行させる。
【００６１】
以下、送信側端末１０及び受信側端末２０の各端末装置が、それぞれ有する機能を手段の観点から説明する。なお、手順（方法）の観点に基づく説明は、「部」を「手順」に置き換えることで説明できるため、省略する。
【００６２】
図２は、第１実施形態に係る送信側端末１０の機能構成を示す図である。
【００６３】
［送信側端末の機能構成］
送信側端末１０は、予め、受信側端末２０と共有するベース共通鍵Ｋｂを格納するベース鍵格納部１１と、平文Ｍを暗号化するための第１共通鍵Ｋｕを生成する第１共通鍵生成部１２と、ベース鍵格納部１１に格納されたベース共通鍵Ｋｂと第１共通鍵生成部１２により生成された第１共通鍵Ｋｕとを入力として、予め定めた可逆的な演算処理Ｆを実行することで第２共通鍵Ｋ２を生成する第２共通鍵生成部１３と、第１共通鍵Ｋｕを用いて平文Ｍを暗号化して暗号文Ｃを作成する暗号化部１４と、第２共通鍵生成部１３により生成された第２共通鍵Ｋ２を受信側端末２０に送信する送信部１５と、を備える。
なお、暗号化部１４及び送信部１５は、それぞれ公知の暗号化手段及び公知の送信手段を採用する。
【００６４】
ベース鍵格納部１１は、例えば、公知のＤＨ鍵交換方式に基づいて、共通鍵の受け渡しを行わずに、秘密裏に２者間で安全に生成されたベース共通鍵Ｋｂを格納することができる。第１実施形態では、ベース共通鍵Ｋｂは、整数とする。以下の説明においては、送信側端末１０及び受信側端末２０からなる２者間での共有であるが、前述したように、公知のＤＨ鍵交換方式に基づいて、共通鍵の受け渡しを行わずに、秘密裏に３以上の任意の複数の端末装置間で安全に生成されたベース共通鍵Ｋｂを格納することができる。ベース鍵Ｋｂ共有のための別形態として、ＤＨ鍵交換方式に基づかないで、ベース鍵格納部１１は、送信側端末１０において、例えば公知の乱数生成等により生成されたベース共通鍵Ｋｂを格納することができる。その場合、ベース共通鍵Ｋｂを例えば、記録媒体に記録して安全な方法で当該記録媒体を受信側端末２０に送付することで、２者間で共有するようにしてもよい。なお、ベース鍵格納部１１は、受信側端末２０において生成されたベース共通鍵Ｋｂを格納するようにしてもよい。
【００６５】
第１共通鍵生成部１２は、入力部を介して、利用者により入力された利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取り格納する。第１共通鍵Ｋｕについては、半角英数記号文字から構成される半角英数記号文字列とする。
以下、特に断らない限り、半角英数記号文字及び半角英数記号文字列をそれぞれ、英数記号文字及び英数記号文字列ともいう。
【００６６】
第２共通鍵生成部１３は、第１共通鍵Ｋｕとベース共通鍵Ｋｂに所定の可逆的な演算処理Ｆを行い、第２共通鍵Ｋ２を生成する。
Ｋ２＝Ｆ（Ｋｕ，Ｋｂ）                                (式５)
第２共通鍵生成部１３の詳細については、後述で説明する。
【００６７】
送信部１５は、第２共通鍵生成部１３により生成された第２共通鍵Ｋ２を受信側端末２０に送信する。なお、送信部１５として、例えば、公知の電子メールを利用することができる。第２共通鍵Ｋ２を受信側端末２０に送信する際、第２共通鍵Ｋ２をそのまま、電子メール等で送信することができる。
【００６８】
第２共通鍵生成部１３は、任意の英数記号文字(例えば、ＡＳＣＩＩ文字)から構成される英数記号文字列を１０進数の整数に変換する整数変換部０１と、２つの整数を加算する第１演算処理部１３１と、を含む。
【００６９】
［整数変換部０１］
整数変換部０１は、任意の英数記号文字(例えば、ＡＳＣＩＩ文字)から構成される英数記号文字列を１０進数の整数に変換する。
【００７０】
英数記号文字 (例えば、ＡＳＣＩＩ文字)は、図３に示すように、１６進数の‘２０’（＝１０進数の３２）から‘７Ｆ’（＝１０進数の１２７）に対応して割り当てられている。
例えば、「Ｓｐａｃｅ」には１０進数の３２が、「！」には１０進数の３３が、数字文字「０」には１０進数の４８が、英字の「Ａ」には１０進数の６５が、英字の「ａ」には１０進数の９７が、「Ｄｅｌｅｔｅキー」には１０進数の１２７が、それぞれ対応する。
整数変換部０１は、図３に示す、英数記号文字と１０進数との対応関係を表すテーブル（以下「英数記号文字・１０進数対応テーブル０３」という）に基づいて、英数記号文字列を１０進数の整数に変換する。
英数記号文字・１０進数対応テーブル０３は、送信側端末１０が備えても良いし、ネットワーク上のアクセス可能な場所、例えばサーバやクラウド上にあってもよい。
【００７１】
以下、(式６)に示す、英数記号文字７桁から構成される英数記号文字列Ｋについて説明するが、英数記号文字列Ｋの桁数については、当業者であれば、必要に応じて適宜変更できる設計事項である。
Ｋ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                              (式６)
ここで、ａｉは、ひとつの英数記号文字を意味する。
０≦ｉ≦６
【００７２】
整数変換部０１は、(式７)に示すように、英数記号文字・１０進数対応テーブル０３に基づいて、英数記号文字列Ｋを構成する英数記号文字である各ａｉに対応する、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）を取得する。
Ｘｉ  ＝  ＴＲ（ａｉ）                                    (式７)
ここで、ＴＲ（ａｉ）は、英数記号文字ａｉに対応する１０進数を意味する。
【００７３】
次に、整数変換部０１は、(式８)に示すように、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）から、それぞれ、１６を引き、Ｙｉ（１６≦Ｙｉ≦１１１）を算出する。
Ｙｉ  ＝  Ｘｉ  −  １６                                  (式８)
【００７４】
次に、整数変換部０１は、(式９)に示すように、Ｙｉをｉ番目の桁の値とする１１２進数を１０進数の整数Ｚに変換する。
Ｚ    ＝  Σ（０≦ｉ≦６）Ｙｉ＊（１１２）ｉ                      (式９)
こうすることで、整数変換部０１は、英数記号文字列Ｋを１０進数の整数Ｚに変換することができる。
ここで、Ｚは、
Ｚ≦２２１，０６７，９８１，９７１，０８６
を満たす整数（１０進数表示）となる。
【００７５】
［第２共通鍵生成部１３］
以上の説明を前提として、第２共通鍵生成部１３の処理について説明する。
以下、英数記号文字７桁から構成される第１共通鍵Ｋｕについて説明するが、桁数については、あくまでも一例であって、本発明の技術的範囲はこれに限られるものではなく、当業者であれば、必要に応じて適宜変更できる設計事項である。
【００７６】
第２共通鍵生成部１３は、利用者により、第1共通鍵Ｋｕが、英数記号文字列７桁未満で指定された場合、先頭にＤｅｌｅｔｅキー（１０進数の１２７に対応）を付加して、７桁にする。なお、第１共通鍵生成部１２は、入力部を介して利用者により入力された英数記号文字列が7桁未満の場合、入力エラーとして、利用者に７桁の英数記号文字列を再入力するように指示してもよい。
こうすることで、(式１０)に示すように、第1共通鍵Ｋｕを７桁の英数記号文字列とする。
Ｋｕ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                          (式１０)
ここで、ａｉは、ひとつの英数記号文字を意味する。
０≦ｉ≦６
【００７７】
第２共通鍵生成部１３は、整数変換部０１により、第1共通鍵Ｋｕとして指定した英数記号文字列Ｋｕを１０進数の整数Ｚに変換する。
ここで、Ｚは、
Ｚ≦２２１，０６７，９８１，９７１，０８６
を満たす整数（１０進数表示）となる。
【００７８】
次に、第２共通鍵生成部１３は、(式１１)に示すように、第１演算処理部１３１により、整数変換部０１により算出された整数Ｚにベース共通鍵Ｋｂを加算して、整数Ｋｍを算出する。
Ｋｍ  ＝  Ｚ  ＋  Ｋｂ                                  (式１１)
なお、ベース共通鍵Ｋｂを、予め、７７８，９３２，０１８，０２８、９１３以下となるように生成しておくことで、整数Ｚにベース共通鍵Ｋｂを加算した整数Ｋｍの値が、１５桁以内の１０進数となるようにすることができる。
【００７９】
第２共通鍵生成部１３は、 (式１２)に示すように、整数Ｋｍを第２共通鍵Ｋ２とすることができる。
Ｋ２  ＝  Ｋｍ                                          (式１２)
【００８０】
以上のように、第２共通鍵生成部１３は、利用者により入力された利用者の所望する第１共通鍵Ｋｕ（英数記号文字列）を、整数変換部０１により１０進数の整数Ｚに変換し、第１演算処理部１３１により、１０進数の整数Ｚにベース共通鍵Ｋｂを加算して、整数Ｋｍを算出することで、第２共通鍵Ｋ２を算出する。
【００８１】
送信側端末１０は、公知の暗号化／復号化手段を利用することにより、平文Ｍを、第１共通鍵Ｋｕにより暗号化し、暗号文Ｃを作成することができる。
また、送信側端末１０は、例えば、電子メール等の公知の通信ソフトを利用することにより、暗号文Ｃを受信側端末２０に送信することができる。
また、前述したように、送信側端末１０は、例えば、電子メール等の公知の通信ソフトを利用することにより、第２共通鍵Ｋ２を受信側端末２０に送信することができる。
【００８２】
［受信側端末］
次に、本実施形態における受信側端末２０について説明する。
図２は、第１実施形態に係る受信側端末２０の機能構成を示す図である。
【００８３】
［受信側端末の機能構成］
受診側端末２０は、予め、送信側端末１０と共有するベース共通鍵Ｋｂを格納するベース鍵格納部２１と、送信側端末１０から第２共通鍵Ｋ２を受信する受信部２２と、受信部２２により受信した第２共通鍵Ｋ２とベース鍵格納部２１に格納されたベース共通鍵Ｋｂを入力として、予め定めた可逆的な演算処理の逆演算処理を実行することで、第１共通鍵Ｋｕを取得する第１共通鍵取得部２３と、を備える。
【００８４】
ベース鍵格納部２１は、例えば、公知のＤＨ鍵交換方式に基づいて、共通鍵の受け渡しを行わずに、秘密裏に２者間で安全に生成されたベース共通鍵Ｋｂを格納することができる。第１実施形態では、ベース共通鍵Ｋｂは、整数とする。前述したように、公知のＤＨ鍵交換方式に基づいて、共通鍵の受け渡しを行わずに、秘密裏に３以上の任意の複数の端末装置間で安全に生成されたベース共通鍵Ｋｂを格納することができる。ベース鍵Ｋｂ共有のための別形態として、ＤＨ鍵交換方式に基づかないで、ベース鍵格納部２１は、受信側端末２０において、例えば公知の乱数生成等により生成されたベース共通鍵Ｋｂを格納することができる。その場合、ベース共通鍵Ｋｂを例えば、記録媒体に記録して安全な方法で当該記録媒体を送信側端末１０に送付することで、２者間で共有するようにしてもよい。なお、ベース鍵格納部２１は、送信側端末１０において生成されたベース共通鍵Ｋｂを格納するようにしてもよい。
【００８５】
受信部２２は、送信側端末１０が第２共通鍵生成部１３により算出した第２共通鍵Ｋ２を送信側端末１０から受信する。なお、受信部２２として、例えば、公知の電子メールを採用することができる。第２共通鍵Ｋ２を送信側端末２０から受信する際、第２共通鍵Ｋ２をそのまま、電子メール等で受信することができる。
【００８６】
第１共通鍵取得部２３は、任意の整数を英数記号文字から構成される英数記号文字列に変換する英数記号文字列変換部０２と、２つの整数間の減算を行う第２演算処理部２３１と、を含む。
英数記号文字列変換部０２と前述した整数変換部０１とは、一方が他方の逆関数となる関係にある。
【００８７】
［英数記号文字列変換部０２］
英数記号文字列変換部０２は、任意の整数Ｚを英数記号文字から構成される英数記号文字列Ｋに変換する。なお、英数記号文字列変換部０２は、整数変換部０１の逆変換に相当する。
【００８８】
英数記号文字列変換部０２は、(式１３)に示すように、１０進数の整数Ｚを１１２進数に変換する。
Ｚ  ＝    Σ（０≦ｉ≦６）Ｙｉ＊（１１２）ｉ                  (式１３)
【００８９】
次に、英数記号文字列変換部０２は、(式１４)に示すように、１１２進数の各桁Ｙｉ（０≦Ｙｉ≦１１１）に１６を加算して、各桁Ｘｉ（１６≦Ｘｉ≦１２７）を算出する。
Ｘｉ  ＝  Ｙｉ  ＋  １６                                (式１４)
【００９０】
次に、英数記号文字列変換部０２は、(式１５)に示すように、英数記号文字・数字対応テーブル２０に基づいて、各Ｘｉに対応する、英数記号文字であるａｉを取得する。
ａｉ  ＝  ＴＲ−１（Ｘｉ）      (１６≦Ｘｉ≦１２７)       (式１５)
ここで、ＴＲ−１（Ｘｉ）は、１０進数Ｘｉに対応する英数記号文字であるａｉを意味する。
【００９１】
次に、英数記号文字列変換部０２は、(式１６)に示すように、ｉの値の小さい順に英数記号文字である各ａｉを右から並べて、英数記号文字列Ｋを取得する。
Ｋ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                          (式１６)
【００９２】
なお、後述するように、第１共通鍵とベース共通鍵を加算して得られた整数を英数記号文字列Ｋに変換する場合に、英数記号文字列Ｋは、制御符号（１６進数の‘１０’（＝１０進数の１６）から１６進数の‘１Ｆ’ （＝１０進数の３１））を含む可能性がある。この場合には、第２共通鍵を構成する英数記号文字の例外として制御符号のまま取り扱ってもよい。
また、１０進数の１６〜３１に対応する制御符号１６文字について、当該数値に６４を加算して得られる整数に対応する印字可能文字を求め、当該印字可能文字に「コントロール+」（＾）という前置表現を付けることで、制御符号を表記してもよい。
例えば、ＤＬＥ（１６進数の‘１０’）を＾Ｐ、ＵＳ（１６進数の‘１Ｆ’）を＾_と表示することができる。
この場合、英数記号文字列に現れる＾が、独立した英数記号文字を意味するのか、それとも前置表現を表しているかの判定が困難となる。
そこで、英数記号文字列における文字を一文字毎に区切ることで英数記号文字列に現れる＾が、独立した英数記号文字を意味するのか、それとも前置表現を表しているかの判定を可能とすることができる。
【００９３】
［第１共通鍵取得部２３］
以上の説明を前提として、第１共通鍵取得部２３の機能について説明する。
【００９４】
始めに受信部２２により受信した第２共通鍵Ｋ２を１０進数の整数Ｋｍとする。
【００９５】
第１共通鍵取得部２３は、(式１７)に示すように、第２演算処理部２３１により、１０進数の整数である第１中間鍵Ｋｍから、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数である第２中間鍵Ｚを算出する。
Ｚ  ＝  Ｋｍ  −  Ｋｂ                                  (式１７)
【００９６】
次に、第１共通鍵取得部２３は、英数字記号文字列変換部０２により、１０進数の整数である第２中間鍵Ｚを英数記号文字からなる英数記号文字列Ｋに変換する。
【００９７】
第１共通鍵取得部２３は、英数記号文字列Ｋの先頭がＤｅｌｅｔｅキー（１０進数の１２７に対応）である場合、先頭のＤｅｌｅｔｅキー（１０進数の１２７に対応）から連続するＤｅｌｅｔｅキーを削除することで、先頭がＤｅｌｅｔｅキー以外の英数記号文字となる７桁未満の英数記号文字列を算出し、当該英数記号文字列を第１共通鍵Ｋｕとする。
こうすることで、(式１８)に示すように、第1共通鍵Ｋｕを７桁の英数記号文字列とする。
Ｋｕ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                        （式１８)
ここで、ａｉは、ひとつの英数記号文字を意味する。
０≦ｉ≦６
【００９８】
以上のように、送信側端末１０における第２共通鍵生成部１３により、第２共通鍵Ｋ２が生成されている場合、受信側端末２０における第１共通鍵取得部２３により、第１共通鍵Ｋｕを取得することができる。
【００９９】
以上で、情報システム１における受信側端末２０における機能構成を説明した。
受信側端末２０は、公知の暗号化／復号化手段を利用することにより、暗号文Ｃを第１共通鍵Ｋｕにより復号化し、平文Ｍを作成することができる。
また、受信側端末２０は、例えば、電子メール等の公知の通信ソフトを利用することにより、暗号文Ｃを送信側端末１０から受信することができる。
また、前述したように、受信側端末１０は、例えば、電子メール等の公知の通信ソフトを利用することにより、第２共通鍵Ｋ２を送信側端末１０から受信することができる。
【０１００】
［処理の流れ］
図４は、送信側端末１０において、利用者の所望する、利用者自身が覚えやすい任意の第1共通鍵Ｋｕに基づいて第２共通鍵Ｋ２を生成し、受信側端末２０に配送するまでの処理の流れと、受信側端末２０において、送信側端末１０から暗号文と同時若しくは事後に受信する第２共通鍵Ｋ２から第1暗号鍵を取得するまでの処理の流れと、を示すフローチャートである。
図４を参照して、第１実施形態に係る情報システム１における処理の流れを説明する。
【０１０１】
始めにステップＳＴ１０１において、送信側端末１０のベース鍵格納部１１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に受信側端末２０のベース鍵格納部２１との間で安全に共有するベース共通鍵Ｋｂ（整数）を格納する。
【０１０２】
ステップＳＴ２０１において、受信側端末２０のベース鍵格納部２１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に送信側端末１０のベース鍵格納部１１との間で安全に共有するベース共通鍵Ｋｂ(整数)を格納する。
【０１０３】
ステップＳＴ１０２において、送信側端末１０の第１共通鍵生成部１２は、入力部を介して、利用者により入力された利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取り、記憶部に格納する。
【０１０４】
ステップＳＴ１０３において、送信側端末１０の第２共通鍵生成部１３は、第1共通鍵Ｋｕが、英数記号列７桁未満で指定された場合、先頭にＤｅｌｅｔｅキー（１０進数の１２７に対応）を付加して、７桁にする。
なお、ステップＳＴ１０２において、送信側端末１０の第１共通鍵生成部１２は、入力部を介して、利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取る際に、第1共通鍵Ｋｕが英数記号列７桁未満の場合、エラーとして、利用者に対して再入力を促すようにしてもよい。
また、例示として、第１共通鍵Ｋｕが英数記号文字列の場合に、その桁数を７桁としているが、桁数は、７桁に限定されるものではなく、適宜設定することができる
【０１０５】
ステップＳＴ１０４において、送信側端末１０の第２共通鍵生成部１３は、整数変換部０１により、第１共通鍵Ｋｕ（英数記号文字列）を１０進数の整数Ｚに変換する。整数変換部０１に係る処理の流れについては、後述する。
【０１０６】
ステップＳＴ１０５において、送信側端末１０の第２共通鍵生成部１３は、第１演算処理部１３１により、１０進数の整数Ｚにベース共通鍵Ｋｂを加算して、１０進数の整数Ｋｍを算出する（(式１１)参照)。
【０１０７】
ステップＳＴ１０６において、送信側端末１０は、ステップＳＴ１０５において算出された１０進数の整数Ｋｍを第２共通鍵Ｋ２として、受信側端末２０に送信する。
【０１０８】
ステップＳＴ２０２において、受信側端末２０は、送信側端末１０から、第２共通鍵Ｋ２（１０進数の整数）を受信する。
【０１０９】
ステップＳＴ２０３において、第１共通鍵取得部２３は、第２演算処理部２３１により、１０進数の整数である第２共通鍵Ｋ２から、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数である第２中間鍵Ｚを算出する（(式１７)参照)。
【０１１０】
ステップＳＴ２０４において、第１共通鍵取得部２３は、英数字記号文字列変換部０２により、１０進数の整数である第２中間鍵Ｚを英数記号文字からなる第１共通鍵Ｋｕに変換する（(式１８)参照)。
【０１１１】
［整数変換部０１に係る処理の流れ］
図５を参照して、英数記号文字列Ｋを１０進数の整数Ｚに変換する整数変換部０１に係る詳細な処理の流れを説明する。
【０１１２】
ステップＳＴ３０１において、整数変換部０１は、英数記号文字・１０進数対応テーブル０３に基づいて、英数記号文字列Ｋの各桁を構成する英数記号文字であるａｉ（０≦ｉ≦６）に対応する、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）を取得する（(式７)参照)。
【０１１３】
ステップＳＴ３０２において、整数変換部０１は、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）から、それぞれ、１６を引き、１０進数の整数Ｙｉ（１６≦Ｙｉ≦１１１）を算出する（(式８)参照)。
【０１１４】
ステップＳＴ３０３において、整数変換部０１は、Ｙｉをｉ番目の桁の値とする１１２進数を１０進数の整数Ｚに変換する（（式９)参照)。
【０１１５】
［英数記号文字列変換部０２に係る処理の流れ］
次に、図６を参照して、１０進数の整数Ｚを英数記号文字列Ｋに変換する英数記号文字列変換部０２に係る詳細な処理の流れを説明する。
【０１１６】
ステップＳＴ４０１において、英数記号文字列変換部０２は、１０進数の整数Ｚを１１２進数に変換する((式１３)参照)。
【０１１７】
ステップＳＴ４０２において、英数記号文字列変換部０２は、ステップＳＴ４０１において算出した１１２進数の各桁Ｙｉ（０≦Ｙｉ≦１１１）に１６を加算して、各桁Ｘｉ（１６≦Ｘｉ≦１２７）を算出する（(式１４)参照)。
【０１１８】
ステップＳＴ４０３において、英数記号文字列変換部０２は、英数記号文字・数字対応テーブル２０に基づいて、各Ｘｉに対応する、英数記号文字であるａｉを取得する（(式１５)参照)。
【０１１９】
ステップＳＴ４０４において、英数記号文字列変換部０２は、ｉの値の小さい順に英数記号文字である各ａｉを右から並べて、英数記号文字列Ｋを取得する（(式１６)参照)。
【０１２０】
ステップＳＴ４０５において、英数記号文字列変換部０２は、英数記号文字であるａｉのうち、制御符号については、対応する印字可能文字に「コントロール+」（＾）を付けることで、制御符号を表記することで、第２共通鍵Ｋ２を算出する。
【０１２１】
［第１実施形態の効果］
以上説明した第１実施形態の情報システム１によれば以下の効果を奏する。
送信側端末１０と受信側端末２０の間で、ベース共通鍵Ｋｂを共有した後は、利用者は、利用者自身の所望する鍵であって、利用者自身が覚えやすい任意の鍵（第１共通鍵Ｋｕ）により、平文Ｍを暗号化し、送信側端末から受信側端末に第２共通鍵Ｋ２を送信するだけでよい。
こうすることで、利用者は、利用者自身の所望する鍵であって、利用者自身が覚えやすい任意の鍵（例えば、パスワード、暗証番号等）により、平文Ｍを暗号化し、暗号文Ｃを作成することができ、利用者の利便性を向上させることができる。そして、利用者自身の所望する鍵とは異なる第２共通鍵Ｋ２を暗号文Ｃと共に或いは事後でも電子メール等により配送することができ、暗号鍵の配送についても安全性を担保することができる。
また、利用者は、暗号文を生成する毎に、毎回、第１共通鍵Ｋｕを容易に変更することができ、暗号文の秘匿性をより高めることを容易に実現できる。
【０１２２】
［第２実施形態］
続いて、本発明の第２実施形態について、図面を参照しながら説明する。第１実施形態では、送信側端末１０の第２共通鍵生成部１２は、第１共通鍵Ｋｕ（英数記号文字列）を整数変換部０１により変換した整数値を第２共通鍵Ｋ２としたが、第２実施形態では、送信側端末１０の第２共通鍵生成部（以下「第２共通鍵生成部１３Ａ」という）は、整数変換部０１により変換した整数値をさらに、英数記号文字列変換部０２により英数記号文字列に変換して、当該英数記号文字列を第２共通鍵Ｋ２とする。
これに対応して、受信側端末２０の第１共通鍵取得部（以下「第１共通鍵取得部２３Ａ」という）は、送信側端末１０の第２共通鍵生成部１３Ａにより生成された第２共通鍵Ｋ２（英数記号文字列）から第１共通鍵Ｋｕを取得する。
なお、第２実施形態の説明において、第１実施形態と同様の構成については同一の符号を付し、説明を省略する。
【０１２３】
［機能構成］
図７に、第２実施形態に係る送信側端末１０の機能構成を示す。
【０１２４】
［送信側端末の機能構成］
送信側端末１０は、第1実施形態の第２共通鍵生成部１３を第２共通鍵生成部１３Ａに置き換えたものとなる。第２実施形態の送信側端末１０の各部の機能は、第２共通鍵生成部１３Ａを除いて、第1実施形態の送信側端末１０の各部の機能と同じであるため、第２共通鍵生成部１３Ａ以外の構成については、同一の符号を付し、説明を省略する。
以下、第２共通鍵生成部１３Ａの処理について説明する。なお、第１実施形態の第２共通鍵生成部１３と同様の構成については同一の符号を付し、説明を省略する。
【０１２５】
［第２共通鍵生成部１３Ａ］
第２共通鍵生成部１３Ａは、任意の英数記号文字(例えば、ＡＳＣＩＩ文字)から構成される英数記号文字列を１０進数の整数に変換する整数変換部０１と、任意の整数を英数記号文字から構成される英数記号文字列に変換する英数記号文字列変換部０２と、２つの整数を加算する第１演算処理部１３１と、を含む。
【０１２６】
第２共通鍵生成部１３Ａは、整数変換部０１により、第1共通鍵Ｋｕとして指定した英数記号文字列Ｋｕを１０進数の整数Ｚに変換する。
【０１２７】
次に、第２共通鍵生成部１３Ａは、(式１９)に示すように、第１演算処理部１３１により、整数変換部０１により算出された整数Ｚにベース共通鍵Ｋｂを加算して、整数Ｋｍ（「第１中間鍵Ｋｍ」という）を算出する。
Ｋｍ  ＝  Ｚ  ＋  Ｋｂ                                  (式１９)
【０１２８】
続いて、第２共通鍵生成部１３Ａは、英数記号文字列変換部０２により、第1中間鍵Ｋｍを英数記号文字列Ｋに変換する。第２共通鍵生成部１３Ａは、(式２０)に示すように、変換された英数記号文字列Ｋを第２共通鍵Ｋ２とする。
Ｋ２  ＝  Ｋ                                            (式２０)
【０１２９】
以上のように、第２実施形態において、送信側端末１０の第２共通鍵生成部１３Ａは、利用者により入力された利用者の所望する第１共通鍵Ｋｕ（英数記号文字列）を、整数変換部０１により１０進数の整数Ｚに変換し、第１演算処理部１３１により、１０進数の整数Ｚにベース共通鍵Ｋｂを加算して、第１中間鍵Ｋｍを算出し、英数記号文字列変換部０２により、第１中間鍵Ｋｍを英数記号文字列に変換することで、第２共通鍵Ｋ２を算出する。
【０１３０】
［受信側端末］
次に、第２実施形態における受信側端末２０について説明する。
図７に、第２実施形態に係る受信側端末２０の機能構成を示す。
【０１３１】
［受信側端末の機能構成］
受信側端末２０は、第1実施形態の第１共通鍵取得部２３を第１共通鍵取得部２３Ａに置き換えたものとなる。第２実施形態の受信側端末の各部の機能は、第１共通鍵取得部２３Ａを除いて、第1実施形態の受信側端末の各部の機能と同じであるため、第１共通鍵取得部２３Ａ以外の構成については、同一の符号を付し、説明を省略する。
以下、第１共通鍵取得部２３Ａの処理について説明する。なお、第１実施形態の第１共通鍵取得部２３と同様の構成については同一の符号を付し、説明を省略する。
【０１３２】
第１共通鍵取得部２３Ａは、整数変換部０１と、英数記号文字列変換部０２と、２つの整数間の減算を行う第２演算処理部２３１と、を含む。
【０１３３】
第１共通鍵取得部２３Ａは、整数変換部０１により、英数記号文字からなる英数記号文字列である第２共通鍵Ｋ２を、１０進数の整数である第１中間鍵Ｋｍに変換する。
【０１３４】
次に、第１共通鍵取得部２３Ａは、(式２１)に示すように、第２演算処理部２３１により、１０進数の整数である第１中間鍵Ｋｍから、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数である第２中間鍵Ｚを算出する。
Ｚ  ＝  Ｋｍ  −  Ｋｂ                                  (式２１)
【０１３５】
次に、第１共通鍵取得部２３Ａは、英数字記号文字列変換部０２により、１０進数の整数である第２中間鍵Ｚを英数記号文字からなる英数記号文字列Ｋに変換する。
【０１３６】
第１共通鍵取得部２３Ａは、英数記号文字列Ｋの先頭がＤｅｌｅｔｅキー（１０進数の１２７に対応）でない場合、英数記号文字列Ｋを第１共通鍵Ｋｕとする（式２２）。
Ｋｕ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                        （式２２)
ここで、ａｉは、ひとつの英数記号文字を意味する。
０≦ｉ≦６
なお、英数記号文字列Ｋの先頭がＤｅｌｅｔｅキー（１０進数の１２７に対応）である場合、先頭のＤｅｌｅｔｅキー（１０進数の１２７に対応）から連続するＤｅｌｅｔｅキーを削除することで、先頭がＤｅｌｅｔｅキー以外の英数記号文字となる７桁未満の英数記号文字列を算出し、当該英数記号文字列を第１共通鍵Ｋｕとする。
【０１３７】
以上のように、第２実施形態では、送信側端末１０における第２共通鍵生成部１３Ａにより、第２共通鍵Ｋ２（英数記号文字列）が生成されている場合、受信側端末２０における第１共通鍵取得部２３Ａにより、第１共通鍵Ｋｕを取得することができる。
【０１３８】
［処理の流れ］
図８に、送信側端末１０において、利用者の所望した、利用者自身が覚えやすい任意の第1共通鍵Ｋｕに基づいて第２共通鍵Ｋ２を生成し、受信側端末２０に配送するまでの処理の流れと、受信側端末２０において、送信側端末１０から暗号文と同時若しくは事後に受信する第２共通鍵Ｋ２から第１暗号鍵を取得するまでの処理の流れと、を示す。
図８を参照して、第２実施形態に係る情報システム１における処理の流れを説明する。
【０１３９】
ステップＳＴ＿Ａ１０１において、送信側端末１０のベース鍵格納部１１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に受信側端末２０のベース鍵格納部２１との間で安全に共有するベース共通鍵Ｋｂ（整数）を格納する。
【０１４０】
ステップＳＴ＿Ａ２０１において、受信側端末２０のベース鍵格納部２１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に送信側端末１０のベース鍵格納部１１との間で安全に共有するベース共通鍵Ｋｂ(整数)を格納する。
【０１４１】
ステップＳＴ＿Ａ１０２において、送信側端末１０の第１共通鍵生成部１２は、入力部を介して、利用者により入力された利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取り、記憶部に格納する。
【０１４２】
ステップＳＴ＿Ａ１０３において、送信側端末１０の第２共通鍵生成部１３Ａは、第1共通鍵Ｋｕが、英数記号列７桁未満で指定された場合、先頭にＤｅｌｅｔｅキー（１０進数の１２７に対応）を付加して、７桁にする。
なお、ステップＳＴ＿Ａ１０２において、送信側端末１０の第１共通鍵生成部１２Ａは、入力部を介して、利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取る際に、第1共通鍵Ｋｕが英数記号列７桁未満の場合、エラーとして、利用者に対して再入力を促すようにしてもよい。
また、例示として、第１共通鍵Ｋｕが英数記号文字列の場合に、その桁数を７桁としているが、桁数は、７桁に限定されるものではなく、適宜設定することができる
【０１４３】
ステップＳＴ＿Ａ１０４において、送信側端末１０の第２共通鍵生成部１３Ａは、整数変換部０１により、第１共通鍵Ｋｕ（英数記号文字列）を１０進数の整数Ｚに変換する。
【０１４４】
ステップＳＴ＿Ａ１０５において、送信側端末１０の第２共通鍵生成部１３Ａは、第１演算処理部１３１により、１０進数の整数Ｚにベース共通鍵Ｋｂを加算して、１０進数の整数（第１中間鍵Ｋｍ）を算出する（(式１９)参照)。
【０１４５】
ステップＳＴ＿Ａ１０６において、送信側端末１０の第２共通鍵生成部１３Ａは、英数記号文字列変換部０２により、１０進数の整数（第１中間鍵Ｋｍ）を第２共通鍵Ｋ２（英数記号文字列）に変換する（(式２０)参照)。
【０１４６】
ステップＳＴ＿Ａ１０７において、送信側端末１０は、ステップＳＴ＿Ａ１０６において算出された第２共通鍵Ｋ２を受信側端末２０に送信する。
【０１４７】
ステップＳＴ＿Ａ２０２において、受信側端末２０は、送信側端末１０から、第２共通鍵Ｋ２を受信する。
【０１４８】
ステップＳＴ＿Ａ２０３において、受信側端末２０の第１共通鍵取得部２３Ａは、整数変換部０１により、英数記号文字からなる英数記号文字列である第２共通鍵Ｋ２を、１０進数の整数である第１中間鍵Ｋｍに変換する。
【０１４９】
ステップＳＴ＿Ａ２０４において、第１共通鍵取得部２３Ａは、第２演算処理部２３１により、１０進数の整数である第１中間鍵Ｋｍから、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数である第２中間鍵Ｚを算出する（(式２１)参照)。
【０１５０】
ステップＳＴ＿Ａ２０５において、第１共通鍵取得部２３Ａは、英数字記号文字列変換部０２により、１０進数の整数である第２中間鍵Ｚを英数記号文字からなる第１共通鍵Ｋｕに変換する（(式２２)参照)。
【０１５１】
［第２実施形態の効果］
以上説明した第２実施形態の情報システム１によれば、第1実施形態と同様の効果を奏する。それに加えて、以下のような効果も奏する。
【０１５２】
第２実施形態においては、第１共通鍵Ｋｕを整数変換部０１、第２演算処理部２３１、及び英数字記号文字列変換部０２の３つの異なる独立した変換部により、英数字文字列として生成する。
これにより、第２共通鍵Ｋ２から、第共通鍵Ｋｕを算出することは、第１実施形態に比較してより困難になり、安全性を増すことができる。
【０１５３】
［第３実施形態］
続いて、本発明の第３実施形態について、図面を参照しながら説明する。第１実施形態では、送信側端末１０の第１共通鍵生成部１２第１共通鍵Ｋｕを英数記号文字列としたが、第３実施形態では、第１共通鍵Ｋｕを整数とする。
すなわち、送信側端末１０の第１共通鍵生成部１２（以下「第１共通鍵生成部１２Ｃ」という）は、入力部を介して、利用者により入力された利用者の所望する鍵となる、第１共通鍵Ｋｕを受け取り格納する。第１共通鍵Ｋｕについては、整数とする。
なお、第３実施形態の説明において、第１実施形態と同様の構成については同一の符号を付し、説明を省略する。
【０１５４】
［機能構成］
図９に、第３実施形態に係る送信側端末１０の機能構成を示す。
【０１５５】
［送信側端末の機能構成］
送信側端末１０は、第1実施形態の第１共通鍵生成部１２、及び第２共通鍵生成部１３を、それぞれ第１共通鍵生成部１２Ｂ、及び第２共通鍵生成部１３Ｂに置き換えたものとなる。第２実施形態の送信側端末１０の各部の機能は、第１共通鍵生成部１２Ｂ、及び第２共通鍵生成部１３Ｂを除いて、第1実施形態の送信側端末１０の各部の機能と同じであるため、第１共通鍵生成部１２Ｂ、及び第２共通鍵生成部１３Ｂ以外の構成については、同一の符号を付し、説明を省略する。
以下、第２共通鍵生成部１３Ｂの機能について説明する。なお、第１実施形態の第２共通鍵生成部１３と同様の構成については同一の符号を付し、説明を省略する。
【０１５６】
［第２共通鍵生成部１３Ｂ］
第２共通鍵生成部１３Ｂは、２つの整数を加算する第１演算処理部１３１を含む。
【０１５７】
第２共通鍵生成部１３Ｂは、第１共通鍵生成部１２Ｂにより、第1共通鍵として指定した１０進数の整数Ｋｕにベース共通鍵Ｋｂを加算して得られた整数を、第２共通鍵Ｋ２とする。
Ｋ２  ＝  Ｋｕ  ＋  Ｋｂ                                (式２３)
【０１５８】
以上のように、第２共通鍵生成部１３Ｂは、利用者により入力された利用者の所望する第１共通鍵Ｋｕ（整数）に対して、第１演算処理部１３１により、ベース共通鍵Ｋｂを加算して、整数Ｋｍを算出することで、第２共通鍵Ｋ２を算出する。
【０１５９】
［受信側端末］
次に、第３実施形態における受信側端末２０について説明する。
図９に、第３実施形態に係る受信側端末２０の機能構成を示す。
【０１６０】
［受信側端末の機能構成］
受診側端末２０は、第1実施形態の第１共通鍵取得部２３を第１共通鍵取得部２３Ｂに置き換えたものとなる。第３実施形態の受信側端末の各部の機能は、第１共通鍵取得部２３Ｂを除いて、第1実施形態の受信側端末の各部の機能と同じであるため、第１共通鍵取得部２３Ｂ以外の構成については、同一の符号を付し、説明を省略する。
以下、第１共通鍵取得部２３Ｂの処理について説明する。なお、第１実施形態の第１共通鍵取得部２３と同様の構成については同一の符号を付し、説明を省略する。
【０１６１】
第１共通鍵取得部２３Ｂは、２つの整数間の減算を行う第２演算処理部２３１を含む。
【０１６２】
第１共通鍵取得部２３Ｂは、(式２４)に示すように、第２演算処理部２３１により、第２共通鍵Ｋ２から、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数である第２中間鍵Ｚを算出し、当該整数Ｚを第１共通鍵Ｋｕとする。
Ｚ  ＝  Ｋ２  −  Ｋｂ                                  (式２４)
【０１６３】
以上のように、第３実施形態では、送信側端末１０における第２共通鍵生成部１３Ｂにより、第２共通鍵Ｋ２（英数記号文字列）が生成されている場合、受信側端末２０における第１共通鍵取得部２３Ｂにより、第１共通鍵Ｋｕを取得することができる。
【０１６４】
［処理の流れ］
図１０に、送信側端末１０において、利用者の所望した、利用者自身が覚えやすい任意の第1共通鍵Ｋｕに基づいて第２共通鍵Ｋ２を生成し、受信側端末２０に配送するまでの処理の流れと、受信側端末２０において、送信側端末１０から暗号文と同時若しくは事後に受信する第２共通鍵Ｋ２から第1暗号鍵を取得するまでの処理の流れと、を示す。
図１０を参照して、第３実施形態に係る情報システム１における処理の流れを説明する。
【０１６５】
ステップＳＴ＿Ｂ１０１において、送信側端末１０のベース鍵格納部１１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に受信側端末２０のベース鍵格納部２１との間で安全に共有するベース共通鍵Ｋｂ（整数）を格納する。
【０１６６】
ステップＳＴ＿Ｂ２０１において、受信側端末２０のベース鍵格納部２１は、例えば、公知のＤＨ鍵交換方式に基づいて、秘密裏に送信側端末１０のベース鍵格納部１１との間で安全に共有するベース共通鍵Ｋｂ(整数)を格納する。
【０１６７】
ステップＳＴ＿Ｂ１０２において、送信側端末１０の第１共通鍵生成部１２Ｂは、入力部を介して、利用者により入力された利用者の所望する鍵となる、第１共通鍵Ｋｕ(整数)を受け取り、記憶部に格納する。
【０１６８】
ステップＳＴ＿Ｂ１０３において、送信側端末１０の第２共通鍵生成部１３Ｂは、第１演算処理部１３１により、第１共通鍵Ｋｕ(整数)にベース共通鍵Ｋｂ(整数)を加算して、１０進数の整数Ｚを算出し、第２共通鍵Ｋ２とする。
【０１６９】
ステップＳＴ＿Ｂ１０４において、送信側端末１０は、ステップＳＴ＿Ｂ１０３において算出された第２共通鍵Ｋ２を受信側端末２０に送信する。
【０１７０】
ステップＳＴ＿Ｂ２０２において、受信側端末２０は、送信側端末１０から、第２共通鍵Ｋ２を受信する。
【０１７１】
ステップＳＴ＿Ｂ２０３において、受信側端末２０の第１共通鍵取得部２３Ｂは、第２演算処理部２３１により、１０進数の整数である第２共通鍵Ｋ２から、１０進数の整数であるベース共通鍵Ｋｂを減算して、１０進数の整数Ｚを算出し、当該整数Ｚを第１共通鍵Ｋｕとする。
【０１７２】
［第３実施形態の効果］
以上説明した第３実施形態の情報システム１によれば、第1実施形態と同様の効果を奏する。それに加えて、以下のような効果も奏する。
【０１７３】
第３実施形態においては、送信側端末１０の第２共通鍵生成部１３Ｂは、第１共通鍵Ｋｕ及びベース共通鍵Ｋｂの単なる加算演算により第２共通鍵Ｋ２を算出し、受信側端末２０の第１共通鍵取得部２３Ｂは、第２共通鍵Ｋ２及びベース共通鍵Ｋｂの単なる減算演算により第１共通鍵Ｋｕを算出する。
これにより、送信側端末１０及び受信側端末２０において、演算処理をより高速化することができる。
【０１７４】
以上、本発明の好ましい第１実施形態から第３実施形態につき説明したが、本発明は、上述の実施形態に制限されるものではなく、適宜変更が可能である。
【０１７５】
［変形例１］
例えば、上記第１実施形態及び第２実施形態では、整数変換部０１及び英数記号文字列変換部０２は、１１２進数を応用したが、１１２進数に換えて９６進数を応用してもよい。
具体的には、９６進数を応用した整数変換部（以下、「整数変換部０１Ａ」という）及び英数記号文字列変換部（以下、「英数記号文字列変換部０２Ａ」という）は、次のとおりである。
【０１７６】
［整数変換部０１Ａ（整数変換部０１の別の実施例）］
整数変換部０１Ａは、(式７)に示すように、整数変換部０１と同様に、英数記号文字・１０進数対応テーブル０３に基づいて、英数記号文字列Ｋを構成する英数記号文字である各ａｉに対応する、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）を取得する。
【０１７７】
次に、整数変換部０１Ａは、(式２５)に示すように、１０進数の整数Ｘｉ（３２≦Ｘｉ≦１２７）から、それぞれ、３２を引き、Ｙｉ（０≦Ｙｉ≦９５）を算出する。
Ｙｉ  ＝  Ｘｉ  −  ３２                                (式２５)
【０１７８】
次に、整数変換部０１Ａは、(式２６)に示すように、Ｙｉをｉ番目の桁の値とする９６進数を１０進数の整数Ｚに変換する。
Ｚ    ＝  Σ（０≦ｉ≦６）Ｙｉ＊（９６）ｉ                    (式２６)
こうすることで、整数変換部０１Ａは、英数記号文字列Ｋを１０進数の整数Ｚに変換することができる。
ここで、Ｚは、
Ｚ≦７５，１４４，７４７，８１０，８１５
を満たす整数（１０進数表示）となる。
【０１７９】
［英数記号文字列変換部０２Ａ］
英数記号文字列変換部０２Ａは、(式２７)に示すように、１０進数の整数Ｚを９６進数に変換する。
Ｚ  ＝    Σ（０≦ｉ≦６）Ｙｉ＊（９６）ｉ                    (式２７)
【０１８０】
次に、英数記号文字列変換部０２Ａは、(式２８)に示すように、各桁Ｙｉ（０≦Ｙｉ≦９５）に３２を加算して、各桁Ｘｉ（３２≦Ｘｉ≦１２７）を算出する。
Ｘｉ  ＝  Ｙｉ  ＋  ３２                                (式２８)
【０１８１】
次に、英数記号文字列変換部０２Ａは、(式２９)に示すように、英数記号文字・数字対応テーブル２０に基づいて、各Ｘｉに対応する、英数記号文字であるａｉを取得する。
ａｉ  ＝  ＴＲ−１（Ｘｉ）      (１６≦Ｘｉ≦１２７)       (式２９)
ここで、ＴＲ−１（Ｘｉ）は、１０進数Ｘｉに対応する英数記号文字であるａｉを意味する。
【０１８２】
次に、英数記号文字列変換部０２Ａは、(式３０)に示すように、ｉの値の小さい順に英数記号文字である各ａｉを右から並べて、英数記号文字列Ｋを取得する。
Ｋ  ＝  ａ６ａ５ａ４ａ３ａ２ａ１ａ０                          (式３０)
以上、整数変換部０１Ａとその逆変換に相当する英数記号文字列変換部０２Ａについて説明した。
【０１８３】
そして、第１実施形態及び第２実施形態において、整数変換部０１及び英数記号文字列変換部０２に換えて、それぞれ整数変換部０１Ａ及び英数記号文字列変換部０２Ａを採用することとしてもよい。
【０１８４】
［変形例２］
第１実施形態、第２実施形態、及び第３実施形態において、送信側端末１０の第１演算処理部１３１が、加算演算をする代わりに、例えば、減算（−）、乗算（＊）、除算（／）等の四則演算処理を採用してもよい。この場合、受信側端末２０の第２演算処理部２３１は送信側端末１０の第１演算処理部１３１の逆演算処理を行うように構成する。
【０１８５】
［変形例３］
第１実施形態、第２実施形態、及び第３実施形態において、送信側端末の第１演算処理部１３１が、加算演算をする代わりに、例えば、ビットの排他的論理和等の論理演算を採用してもよい。この場合、受信側端末２０の第１共通鍵取得部２３の第２演算処理部２３１は、第２共通鍵Ｋ２のビット列にベース共通鍵Ｋｂのビット列の排他的論理和をするように構成することで、第１共通鍵Ｋｕを算出することができる
【０１８６】
以上、好適な実施形態について説明したが、本発明は前述した実施形態に限定されることなく種々の形態で実施することができる。前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、前述のものに限定されない。
【符号の説明】
【０１８７】
１  情報システム
０１、０１Ａ  整数変換部
０２、０２Ａ  英数記号文字列変換部
０３  英数記号文字・１０進数対応テーブル
１０  送信側端末
１１  ベース鍵格納部
１２、１２Ｂ  第１共通鍵生成部
１３、１３Ａ、１３Ｂ  第２共通鍵生成部
１４  暗号化部
１５  送信部
１６  第１共通鍵生成部
２０  受信側端末
２１  ベース鍵格納部
２２  受信部
２３、２３Ａ、２３Ｂ  第１共通鍵取得部
１３１  第１演算処理部
２３１  第２演算処理部
【図１】
0006489123.tif 000002
【図２】
0006489123.tif 000003
【図３】
0006489123.tif 000004
【図４】
0006489123.tif 000005
【図５】
0006489123.tif 000006
【図６】
0006489123.tif 000007
【図７】
0006489123.tif 000008
【図８】
0006489123.tif 000009
【図９】
0006489123.tif 000010
【図１０】
0006489123.tif 000011