(57)【要約】【課題】盗聴やハッキングがされても情報が漏洩しないようにする。また、そのための処理負担を抑える。【解決手段】クライアントが、ユーザに固有の第一のコード群を基に、所定の規則に従って、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を取得し、取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成し、ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成し、その暗号化情報をサーバシステムに送信する。サーバシステムは、クライアントから該暗号化情報を受信し、その暗号化情報を所定の記憶装置に登録する。【選択図】図２
2008028695.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに固有の第一のコード群を、所定の規則に従って、第二のコード群に変換する、コード変換ステップと、
前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得る数値取得ステップと、
前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する生成ステップと
をコンピュータに実行させ、
前記虫食いダミーコード群は、前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成すること、及び、前記暗号化情報から、前記生成された虫食いダミーコード群のｎ個の空白にそれぞれ対応する位置に存在するｎ文字の漏洩防止対象情報を特定することにより、該ｎ文字の漏洩防止対象情報を復号することに利用されるデータである、
ことを特徴とするコンピュータプログラム。
【請求項２】
前記コード変換ステップでは、ユーザが所望のサービスを受けることの許可を得ることを目的として入力され所定の記憶資源に記憶されたコード群を、該記憶資源から取得し、該コード群を前記第二のコード群に変換する、
請求項１記載のコンピュータプログラム。
【請求項３】
前記第一のコード群は、文字列であり、
前記コード変換ステップでは、前記文字列を構成する複数の文字を、それぞれ、所定のコード体系に従う複数の文字コードに変換し、
前記数値取得ステップでは、各文字コードを構成する各文字コード要素をＰ進数（Ｐは２以上の整数）の数値とみなし、前記複数の文字コードから成る文字コード群から、前記ｎ個の数値を取得する、
請求項１記載のコンピュータプログラム。
【請求項４】
前記数値取得ステップでは、前記第二コード群中の複数の要素をそれぞれＰ進数の数値とみなし、前記複数のＰ進数の数値をそれぞれ用いた四則演算を行って、前記ｎ個の数値を得る、
請求項１又は３記載のコンピュータプログラム。
【請求項５】
前記数値取得ステップでは、各Ｐ進数の数値と変数とを用いた前記四則演算を行い、該変数に、前記複数のＰ進数の数値のうちの所定番目の数値を代入する、
請求項４記載のコンピュータプログラム。
【請求項６】
登録する情報を第二のコンピュータシステムに送信する第一のコンピュータシステムにおいて、
記憶資源と、
ユーザに固有の第一のコード群を前記記憶資源に記憶する第一コード群記憶手段と、
前記第一のコード群を基に、所定の規則に従って、第二のコード群に変換するコード変換手段と、
前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得る数値取得手段と、
前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する虫食いダミーコード群生成手段と、
前記生成された虫食いダミーコード群を前記記憶資源に記憶する虫食いダミーコード群生成記憶手段と、
前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成する暗号化手段と、
前記暗号化情報を前記第二のコンピュータシステムに送信する送信手段と
を備えるコンピュータシステム。
【請求項７】
登録する情報を第一のコンピュータシステムから受信する第二のコンピュータシステムであって、
記憶資源と、
虫食いダミーコード群とそれに入れられたｎ文字の漏洩防止対象情報とで構成される暗号化情報を第一のコンピュータシステムから受信する受信手段と、
前記受信した暗号化情報を所定の記憶装置に登録する登録手段と、
ユーザに固有の第一のコード群を前記記憶資源に記憶する第一コード群記憶手段と、
前記第一のコード群を、所定の規則に従って、第二のコード群に変換するコード変換手段と、
前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得る数値取得手段と、
前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する虫食いダミーコード群手段と、
前記生成された虫食いダミーコード群を前記記憶資源に記憶する虫食いダミーコード群記憶手段と、
前記受信した暗号化情報から、前記生成された虫食いダミーコード群のｎ個の空白にそれぞれ対応する位置に存在するｎ文字の漏洩防止対象情報を特定することにより、該ｎ文字の漏洩防止対象情報を復号する復号手段と
を備えるコンピュータシステム。
【請求項８】
前記第一のコンピュータシステムが、請求項６記載のコンピュータシステムであり、
前記第一のコンピュータシステムの記憶資源から所定のタイミングで前記虫食いダミーコード群を消去させる消去手段、
を更に備えた請求項７記載のコンピュータシステム。
【請求項９】
前記コード変換手段、前記数値取得手段及び前記虫食いダミーコード群生成手段とで構成されたコンピュータプログラムを前記第一のコンピュータシステムにダウンロードすることにより前記第一のコンピュータシステムの記憶資源に記憶させるダウンロード手段、
を更に備え、
前記消去手段が、前記所定のタイミングで前記コンピュータプログラムも消去させる、
請求項８記載のコンピュータシステム。
【請求項１０】
第一のコンピュータシステムが、ユーザに固有の第一コード群を、前記第一のコンピュータシステムの第一の記憶資源に記憶するステップと、
前記第一のコンピュータシステムが、前記第一のコード群を、所定の規則に従って、第二のコード群に変換するステップと、
前記第一のコンピュータシステムが、前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得るステップと、
前記第一のコンピュータシステムが、前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成するステップと、
前記第一のコンピュータシステムが、前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップと、
前記第一のコンピュータシステムが、前記暗号化情報を第二のコンピュータシステムに送信するステップと、
前記第二のコンピュータシステムが、前記第一のコンピュータシステムから前記暗号化情報を受信するステップと、
前記第二のコンピュータシステムが、前記受信した暗号化情報を所定の記憶装置に登録するステップと
を有する情報漏洩防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の漏洩を防止するための技術に関する。
【背景技術】
【０００２】
情報の漏洩を防止するための技術として、例えば、特許文献１に開示の技術が知られている。特許文献１では、漏洩防止の対象となる情報は、パスワードである。特許文献１では、例えば、以下の処理がいわゆるクライアントサーバシステムで行われる。
【０００３】
初回登録の際、サーバが、ユーザから入力された色配列及びパスワードをクライアントから受信し、受信した色配列（例えば“青・黄・赤”）及びパスワード（例えば“１２３４５”）を登録する。色配列は、パスワードの入力順序を表している。具体的には、青が、１番目の桁を意味し、黄が、２番目の桁を意味し、赤が、３番目の桁を意味する。
【０００４】
パスワード認証の際、サーバが、色配列“青・赤・黄”をランダムに並び替え、色配列を構成する色数が、パスワードの桁数未満であれば、並び替えられた色配列（例えば“黄・赤・青”）をパスワードの桁数以上の長さになるように連続させ、連続させた色配列（例えば“黄・赤・青”を連続させて“黄・赤・青・黄・赤・青”とすることにより、色数をパスワード桁数５以上にしたもの）を表示する。ユーザは、その表示された色配列群“黄・赤・青・黄・赤・青”と、初回登録時に入力した“青・黄・赤”の順序とに基づいて、正規のパスワードを並び替えたものを入力する。この例において、表示された色配列群“黄・赤・青・黄・赤・青”に従って並び替えたパスワードを正しく入力するならば、“２３１５□４”となる（□はブランクを意味する）。この並び替えられたパスワードが、クライアントからサーバに送信され、サーバが、その並び替えられたパスワード“２３１５□４”を、初回登録の際に登録された色配列“青・黄・赤”を基に並び替えることで、パスワード“１２３４５”を得る。
【０００５】
【特許文献１】特開２００４−１８５０７４号公報（特に段落２５−３３）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば、クレジットカード番号（以下、単に「カード番号」と言う）をユーザから預かり、預かったカード番号をユーザの代わりに別のコンピュータシステム（例えば、決済を行うためのコンピュータシステム）に出力するサーバシステム（以下、代行サーバ）の構築が考えられる。この代行サーバにより、ユーザは、カード番号を預けた後、いろいろなサイトでいちいちカード番号を入力しなくてもカード番号を行使する（例えば、クレジットカードで決済する）ことができる。
【０００７】
代行サーバとクライアントによるクライアントサーバシステムにおいて、カード番号が漏洩してしまう（不当な第三者にカード番号がわかってしまう）おそれのあるケースとして、以下の２つが考えられる。
（１）クライアントから代行サーバにカード番号を送信中にそのカード番号が盗聴されるケース。
（２）カード番号を保管するストレージがハッキングされるケース。
【０００８】
上述した特許文献１によれば、初回登録の後のパスワード認証では、並び替えたパスワードがユーザに入力されてクライアントからサーバに送信されるので、上記（１）のケースが生じてもパスワードの漏洩を防止できるが、初回登録では、並び替えのされていない正規のパスワードがクライアントからサーバに送信されるので、上記（１）のケースが生じてしまうとパスワードが漏洩するおそれがある。また、上述した特許文献１には、上記（２）のケースを想定した記載は無い。
【０００９】
以上のことから、上記２つのケースが生じてもカード番号の漏洩しない情報漏洩防止技術の実現が望まれる。
【００１０】
また、その情報漏洩防止技術の実現の際に、ユーザのユーザビリティをなるべく落とさないようにすることが望ましい。その理由の一つとして、例えば、代行サーバは、いわゆるＢｔｏＣで利用されることが多いと考えられ、煩雑な操作をユーザに強いると、誤操作などのミスが生じ易くなるためである。特許文献１の技術によれば、パスワード認証の際、初期登録の際に入力した色配列をユーザが管理或いは記憶していないと正しく並び替えたパスワードを入力することができないので、ユーザビリティの点で良いとは言えない。
【００１１】
また、代行サーバでは、たくさんのユーザからカード番号を預かり、そのたくさんのユーザのカード番号を出力することが考えられる。さらに、一人のユーザが複数枚のクレジットカードを所有し、一ユーザにつきそれら複数枚のクレジットカードのカード番号を登録することを考えると、預かるカード番号の数や処理件数が膨大になると考えられる。これらのことを考慮すると、上記情報漏洩防止技術の実現において、情報漏洩防止のための処理負担をなるべく軽くすることが望ましい。
【００１２】
以上の点は、漏洩防止の対象となる情報がカード番号である場合に限らず、他種の情報の漏洩を防止する場合にも該当し得る。
【００１３】
従って、本発明の第一の目的は、登録する情報が第一のコンピュータシステムから第二のコンピュータシステムに送信中に盗聴されてもその情報が漏洩してしまうのを防ぐことにある。
【００１４】
本発明の第二の目的は、記憶装置から情報が盗み出されてもその情報が漏洩してしまうことを防ぐことにある。
【００１５】
本発明の第三の目的は、情報漏洩防止技術の実現の際にユーザビリティが低下しないようにすることにある。
【００１６】
本発明の第四の目的は、情報漏洩防止のための処理負担を抑えることにある。
【課題を解決するための手段】
【００１７】
本発明に従うコンピュータプログラムは、コード変換ステップと、数値取得ステップと、生成ステップとをコンピュータに実行させることを特徴とする。コード変換ステップでは、ユーザに固有の第一のコード群を所定の規則に従って第二のコード群に変換する。数値取得ステップでは、前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得る。生成ステップでは、前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する。前記虫食いダミーコード群は、前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成すること、及び、前記暗号化情報から、前記生成された虫食いダミーコード群のｎ個の空白にそれぞれ対応する位置に存在するｎ文字の漏洩防止対象情報を特定することにより、該ｎ文字の漏洩防止対象情報を復号することに利用されるデータである。
【００１８】
このコンピュータプログラムの実行に要する負担は小さいので、情報漏洩防止のための処理負担を抑えることができる。
【００１９】
第一の実施態様において、前記コード変換ステップでは、ユーザが所望のサービス（例えばログイン）を受けることの許可を得ることを目的として入力され所定の記憶資源に記憶されたコード群（以下、許可申請コード群）を、該記憶資源から取得し、該コード群を前記第二のコード群に変換する。つまり、前記第一のコード群は、前記虫食いダミーコード群の生成を主要な目的として入力されたコード群ではなく、過去の或る時点で入力され記憶された許可申請コード群である。このため、虫食いダミーコード群の生成の基とされた第一のコード群が何であるのかを第三者に特定しにくくすることができ、以って、情報の漏洩防止に一層貢献することができる。また、この第一の実施態様では、前記許可申請コード群を前記第一のコード群に流用しているので、ユーザは、第一のコード群を別途入力しなくても済む。このため、ユーザのユーザビリティを向上することができる。
【００２０】
第二の実施態様において、前記第一のコード群は、文字列である。前記コード変換ステップでは、前記文字列を構成する複数の文字を、それぞれ、所定のコード体系に従う複数の文字コードに変換する。前記数値取得ステップでは、各文字コードを構成する各文字コード要素をＰ進数（Ｐは２以上の整数）の数値とみなし、前記複数の文字コードから成る文字コード群から、前記ｎ個の数値を取得する。
【００２１】
この第二の実施態様によれば、コード変換のための規則として、所定のコード体系に従う、文字コードと文字との変換規則が利用される。このため、コード変換のための専用の規則をわざわざ設けなくても済む。
【００２２】
第三の実施態様において、前記数値取得ステップでは、前記第二コード群中の複数の要素をそれぞれＰ進数の数値とみなし、前記複数のＰ進数の数値をそれぞれ用いた四則演算を行って、前記ｎ個の数値を得る。
【００２３】
この第三の実施態様によれば、各Ｐ進数の数値から求まる位置ではなく、四則演算を行って得られた数値から求まる位置とされる。このため、暗号化情報のうちのどこが情報漏洩防止対象の文字が入っている位置であるかを第三者に特定されてしまう可能性をより低減することができる。
【００２４】
第四の実施態様では、前記第三の実施態様において、前記数値取得ステップでは、各Ｐ進数の数値と変数とを用いた前記四則演算を行い、該変数に、前記複数のＰ進数の数値のうちの所定番目の数値を代入する。
【００２５】
第一のコード群はユーザに固有のコード群であり、故に、前記第二コード群から得られる各Ｐ進数の数値も、ユーザに固有の値となる。四則演算で変数を使用し、その変数に、ユーザに固有のＰ進数の数値を代入すれば、このコンピュータプログラムに従うアルゴリズムも結果としてユーザに固有となる。すなわち、この第四の実施態様によれば、複数のユーザに共通の一つのコンピュータプログラム（アルゴリズム）で実質的にユーザ毎に異なるアルゴリズムを実現することができる。
【００２６】
第五の実施態様では、前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップを更にコンピュータに実行させる。
【００２７】
第六の実施態様では、前記暗号化情報から、前記生成された虫食いダミーコード群のｎ個の空白にそれぞれ対応する位置に存在するｎ文字の漏洩防止対象情報を特定することにより、該ｎ文字の漏洩防止対象情報を復号するステップを更にコンピュータに実行させる。
【００２８】
以上のコンピュータプログラムは、第一のコンピュータシステムと第二のコンピュータシステムとで構成されるコンピュータシステム群の前記第一のコンピュータシステムで実行させることで、一つの情報漏洩防止方法を実現することができる。
【００２９】
具体的には、第一のコンピュータシステムが、ユーザに固有の第一コード群を、前記第一のコンピュータシステムの第一の記憶資源に記憶するステップと、前記第一のコンピュータシステムが、前記第一のコード群を、所定の規則に従って、第二のコード群に変換するステップと、前記第一のコンピュータシステムが、前記第二のコード群から、漏洩防止対象情報の文字数ｎ（ｎは２以上の整数）と同数の数値を得るステップと、前記第一のコンピュータシステムが、前記取得されたｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成するステップと、前記第一のコンピュータシステムが、前記ｎ個の空白に、それぞれ、前記ｎ文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記ｎ文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップと、前記第一のコンピュータシステムが、前記暗号化情報を第二のコンピュータシステムに送信するステップと、前記第二のコンピュータシステムが、前記第一のコンピュータシステムから前記暗号化情報を受信するステップと、前記第二のコンピュータシステムが、前記受信した暗号化情報を所定の記憶装置に登録するステップと
を有する情報漏洩防止方法を実現することができる。
【００３０】
この情報漏洩防止方法によれば、登録する情報が第一のコンピュータシステムから第二のコンピュータシステムに送信中に盗聴されても、その情報は暗号化情報であるので、情報が漏洩してしまうのを防ぐことができる。
【００３１】
また、この情報漏洩防止方法によれば、記憶装置には、暗号化情報が登録されるので、その記憶装置がハッキングされても、情報が漏洩してしまうのを防ぐことができる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照して、本発明の一実施形態について説明する。
【００３３】
図１は、本発明の一実施形態に係るクライアントサーバシステムの構成例を示す。
【００３４】
本実施形態では、漏洩防止の対象となる情報は、クレジットカードの番号（カード番号）である。通信ネットワーク１５１にクライアント１０１及びサーバシステム５００が接続されており、サーバシステム５００は、ユーザが所有するクレジットカードのカード番号を他のコンピュータシステムに出力するシステムである。
【００３５】
クライアント１０１は、一種の計算機であり、ＣＰＵ１０３、入力装置１０５（例えばキーボード）、表示装置１０６、及び記憶資源１０７を備える。記憶資源１０７は、一又は複数の記憶装置（例えばメモリ或いはハードディスク）で構成することができる。記憶資源１０７には、ＣＰＵ１０３で実行されるコンピュータプログラムが記憶されており、そのコンピュータプログラムの一つとしてＷｅｂブラウザ１０９がある。
【００３６】
サーバシステム５００は、一又は複数台のサーバマシンで構成することができる。この実施形態では、通信ネットワーク１５１に接続したＷｅｂサーバ２０１と、Ｗｅｂサーバ２０１及びデータベース（ＤＢ）サーバ４０１に接続したアプリケーションサーバ３０１と、ユーザに関するデータで構成されたＤＢ（以下、ユーザＤＢ）４０３を記憶したＤＢサーバ４０１とで構成することができる。
【００３７】
ユーザＤＢ４０３には、例えば、各ユーザ毎のログインＩＤ、パスワード及び一以上のカード番号が含まれる。ログインＩＤ及びパスワードの少なくとも一方（例えばパスワード）が、暗号化されている（例えばハッシュ値である）。また、ユーザＤＢ４０３に格納されるカード番号は、後述するように、暗号化されたカード番号である。
【００３８】
図１では、複数のサーバ２０１、３０１及び４０１のうちアプリケーションサーバ３０１の構成を代表的に示している。アプリケーションサーバ３０１は、ＣＰＵ３０３や記憶資源３０７を備えている。記憶資源３０７には、ＣＰＵ３０３で実行されるコンピュータプログラムが記憶されており、そのコンピュータプログラムとして、パターン生成プログラム３０９、暗号化プログラム３１１及び復号プログラム３１３がある。各種コンピュータプログラムについては後述する。
【００３９】
以下、このクライアントサーバシステムで行われる処理の流れを説明する。
【００４０】
図２は、カード番号の登録のための処理フローの一例を示す。
【００４１】
Ｗｅｂブラウザ１０９がＷｅｂサーバ２０１にアクセスすると、所定のログイン要求画面がＷｅｂブラウザ１０９によって表示装置１０６に表示される。ログイン要求画面に入力されたログインＩＤ及びパスワードが、記憶資源１０７に記憶され、クライアント１０１からＷｅｂサーバ２０１に送信される（ステップＳ１）。アプリケーションサーバ３０１は、Ｗｅｂサーバ２０１が受信したログインＩＤ及びパスワードに一致するログインＩＤ及びパスワードをユーザＤＢ４０３から検索し、見つかれば、そのログインＩＤ及びパスワードが認証される（Ｓ２）。
【００４２】
Ｓ２でログインＩＤ及びパスワードが認証されたことを契機に、アプリケーションサーバ３０１は、パターン生成プログラム３０９及び暗号化プログラム３１１をＷｅｂサーバ２０１に送信する（Ｓ３）。Ｗｅｂサーバ２０１は、アプリケーションサーバ３０１からのパターン生成プログラム３０９及び暗号化プログラム３１１と、カード番号の入力を受け付けるための登録画面と、一時記憶された所定の情報を消去することをクライアント１０１の所定のコンピュータプログラムに実行させるための消去制御情報とを、クライアント１０１に送信する（Ｓ４）。クライアント１０１では、登録画面が、Ｗｅｂブラウザ１０９により表示装置１０６に表示され、パターン生成プログラム３０９、暗号化プログラム３１１及び消去制御情報は、記憶資源１０７（例えばメモリ）に記憶される。
【００４３】
表示された登録画面にカード番号が入力されて所定の操作が行われたことを契機に（例えば、登録画面上の所定のボタンが押下されたことを契機に）（Ｓ５）、記憶資源１０７に記憶されたパターン生成プログラム３０９がＣＰＵ１０３により実行される（Ｓ６）。パターン生成プログラム３０９は、記憶資源１０７に記憶されているパスワードを入力値とし、そのパスワードを用いて後述のパターン生成アルゴリズムを実行することにより、秘匿パターンを生成する。秘匿パターンとは、カード番号を秘匿にするためのパターンであり、具体的には、カード番号の桁数ｎ（ｎは２以上の整数、本実施形態ではｎ＝１６とする）と同じ数の空白（ブランク）を有する数値群である。この数値群を構成する数値の数Ｚは、空白の数ｎよりも多い（Ｚは空白数ｎを含んだ数であり、Ｚ＞ｎである）。生成された秘匿パターンは、記憶資源１０７に展開される。
【００４４】
秘匿パターンが生成されたことを契機に、記憶資源１０７に記憶された暗号化プログラム３１１がＣＰＵ１０３により実行される（Ｓ７）。暗号化プログラム３１１は、秘匿パターンにおける各空白に、カード番号を構成する各数値を入れる。これにより、暗号化されたカード番号が生成される。すなわち、暗号化されたカード番号は、秘匿パターンとそれに組み込まれたカード番号とのセットである。
【００４５】
クライアント１０１は、記憶資源１０７上の、暗号化されたカード番号を、Ｗｅｂサーバ２０１に送信する（Ｓ８）。Ｗｅｂサーバ２０１は、クライアント１０１からの、暗号化されたカード番号をアプリケーションサーバ３０１に送信し、アプリケーションサーバ３０１が、その暗号化されたカード番号を、ユーザＤＢ４０３に格納する（Ｓ９）。その暗号化されたカード番号は、Ｓ２でのログインＩＤ及びパスワードに関連付けられる。
【００４６】
クライアント１０１では、記憶資源１０７に記憶された消去制御情報による所定のタイミングで所定のコンピュータプログラムが実行されることにより、記憶資源１０７に一時的に記憶された情報（パスワード、カード番号、秘匿パターン、パターン生成プログラム３０９及び暗号化プログラム３１１）が消去される（Ｓ１０）。
【００４７】
以上の流れによれば、カード番号の登録の際には、暗号化されたカード番号が、クライアント１０１からＷｅｂサーバ２０１に送信され、暗号化されていないカード番号（以下、「生のカード番号」と言う）は送信されない。このため、送信中の情報が盗聴されても、得られるのは、暗号化されたカード番号であり、故に、生のカード番号が漏洩することを防ぐことができる。
【００４８】
また、以上の流れによれば、この暗号化されたカード番号が、ユーザＤＢ４０３に格納され、生のカード番号は、ユーザＤＢ４０３に格納されないので、ユーザＤＢ４０３を記憶した記憶装置がハッキングされても、生のカード番号が漏洩してしまうことを防ぐことができる。
【００４９】
さらに、以上の流れによれば、秘匿パターンの作成のシード（秘匿パターンの作成の基になるコード群）は、クライアント１０１とサーバシステム５００との間で明示的に鍵としてやりとりされるものではなく、暗号化を本来の目的としていないパスワードである。このため、秘匿パターンの作成のシードが何であるのかを第三者に特定しにくくすることができ、以って、カード番号の漏洩防止に貢献することができる。
【００５０】
また、以上の流れによれば、クライアント１０１では、所定のタイミングで、一時的に記憶された秘密性の高い情報が記憶資源１０７から消去される。これにより、そのような秘密性の高い情報が記憶資源１０７にいつまでも残ってしまうことを防ぐことができるので、セキュリティ性が高まる。なお、所定のタイミングとしては、Ｗｅｂブラウザ１０９が閉じられたタイミング、或いは、Ｓ１以降の或る所定時点（例えば、暗号化されたカード番号が送信された時点）から一定時間経過したタイミングなど、種々のタイミングを採用することができる。
【００５１】
さて、本実施形態では、前述したように、生のカード番号ではなく暗号化されたカード番号が送信及び格納されるが、生のカード番号の暗号化のための準備処理として実行されるパターン生成アルゴリズムが大きな特徴の一つである。
【００５２】
図３は、パターン生成アルゴリズムとカード番号暗号化の説明図である。
【００５３】
パターン生成アルゴリズムは、第一〜第三のステップで構成され、カード番号暗号化は、第四のステップで構成される。第一〜第三のステップが、図２のＳ６に対応し、第四のステップが、図２のＳ７に対応する。以下、各ステップについて説明する。
【００５４】
＜第一のステップ＞
第一のステップは、パスワード（例えば“ＰＡＳＳＷＯＲＤ”）をアスキーコード群に変換し１６等分する処理である。図示の例では、パスワードの文字列は８個の文字で構成されているため、アスキーコード群に変換すると、１文字当たり２個のコードで構成されたアスキーコードが８個得られ、各アスキーコードを個々にばらすことで、１６個のコードが得られる。１６等分するのは、本実施形態ではカード番号が１６桁であるためである。以下の説明では、パスワードを構成する一つの文字を、「パスワード文字」と言い、一つのアスキーコードを構成する２個のコードを「アスキーコード要素」と言う。
【００５５】
＜第二のステップ＞
第二のステップは、１６個のアスキーコード要素をそれぞれ数値と見なし、mod4による余剰を求める処理である。以下、mod4により求められた余剰を「mod4値」と言う。
【００５６】
＜第三のステップ＞
第三のステップは、mod4値を基にして秘匿パターンを作成する処理である。ここで作成された秘匿パターンは、１６個のアスキーコード要素にそれぞれ対応した１６のサブ数値群で構成される。一つのサブ数値群は、４個の要素で構成され、それらのうち、そのサブ数値群に対応するアスキーコード要素のmod4値に対応する要素（位置）が空白となっており、他の３つの要素が、数値である。３個の数値は、いずれも、ダミーの数値（例えば、ランダムで決定された数値）である。なお、サブ数値群が４個の要素で構成されるのは、modXのXの値が４であるからである。
【００５７】
＜第四のステップ＞
第四のステップは、秘匿パターンを基に、カード番号を秘匿にする処理である。具体的には、秘匿パターンを構成する各サブ数値群の空白に、カード番号を構成する各数値を入れる。これにより、図３に例示する、暗号化されたカード番号が得られる。
【００５８】
以上が、パターン生成アルゴリズムとカード番号暗号化の説明である。なお、パターン生成アルゴリズム、換言すれば、秘匿パターンの構成は、上述したものに限らず、他の様々なものを採用することができる。
【００５９】
例えば、第一のステップでは、秘匿パターンのシードとされるパスワードは、ハッシュ値などの暗号化されたパスワードであっても良いし、暗号化されていない生のパスワードであっても良い。言うまでもなく、暗号化と復号化では、同種のパスワードがシードとされる。つまり、本実施形態において、一方で生のパスワードがシードとされ、他方で暗号化されたパスワードがシードとされることはない。
【００６０】
また、第一のステップでは、パスワードに代えて、ユーザに固有の他種の固定コード群（例えばログインＩＤ）が用いられても良い。固定コード群とは、不規則に変換することの無い一以上のコードで構成されたコード群である。固定コード群を構成する各固定コードは、文字、符号及び数値のいずれであってもよい。
【００６１】
また、上記の例のアルゴリズムでは、パスワードをアスキーコード群に変換し、アスキーコード群が１６等分され、各アスキーコード要素を用いて除算が行われた。しかし、アスキーコード群への変換に代えて、他種の変換規則を用いた変換が行われても良い。具体的には、例えば、文字列を構成する複数の文字（ここで言う文字は、英数字や記号などの文字が含まれても良い）を、それぞれ、所定のコード体系（例えば、JISコード、シフトJISコード、或いはUnicode）に従う複数の文字コードに変換し、複数の文字コードの各々を構成する各文字コード要素を、Ｐ進数（Ｐは２以上の整数）の数値と見なして、四則演算を行っても良い。なお、文字列を構成する文字に、変換に利用するコード体系でサポートされていない文字が含まれている場合には（例えば、変換に利用するコード体系がアスキーコードである場合に、変換対象の文字列に漢字が含まれている場合には）、その文字に対応する文字コード要素を、所定の値にしても良い。つまり、クライアントとサーバシステムのそれぞれにおいて、同じ文字列を用いてパターン生成プログラム３０９を実行すれば同じ秘匿パターンが生成されるようになっていれば良い。
【００６２】
また、例えば、固定コード群から数値を得るための変換規則として、所定のコード体系に従う文字コードに変換する規則以外の規則が採用されても良い。例えば、各固定コードをどんな値に変換するかを定義した専用の変換テーブルを用意し、該専用の変換テーブル用いて、各固定コードに対応する各値が得られても良い。なお、この場合、専用の変換テーブルが、パターン生成プログラム３０９や暗号化プログラム３１１等のダウンロードと同じセッション或いは別のセッションで、サーバシステム５００からクライアント１０１にダウンロードすることができる。
【００６３】
また、第一のステップでは、アスキーコード群を構成するアスキーコード要素の個数ｋ（ｋは１以上の整数）が、カード番号の桁数ｎより少ない場合には、ダミーのコードを、（ｎ−ｋ）個加えることで、結果的に、ｎ個のアスキーコード要素を生成することができる。このようにするのは、秘匿パターンに、少なくとも、カード番号の桁数ｎと同数のサブ数値群を用意するためである。なお、逆に、ｋが、カード番号の桁数ｎより多い場合には、ｋ個のアスキーコード要素のうちのｎ個のアスキーコード要素のみを、第二のステップで４で除算されるコードとすることができる。ただし、採用されるｎ個のアスキーコード要素は、所定位置にあるアスキーコード要素である。復号のために秘匿パターンが生成される場合にも、同じアスキーコード要素が採用されないと、復号に成功しないためである。同様の理由から、上記加えられる（ｎ−ｋ）個のダミーコードは、所定の規則に従うコード（例えば、所定の規則に従って算出されたコード、或いは予め設定されているコード）であり、且つ、（ｎ−ｋ）個のダミーコードは所定位置に加えられるのであり、ランダムに決定されたコードが加えられたりランダムに決定された位置に加えられたりするのではない。
【００６４】
また、第二のステップでは、modXのXの値は４に限らず、他の値を採用することができる。Xの値が大きい程、暗号化されたカード番号から生のカード番号が特定されてしまう可能性を低くすることができる。Xに代入される値は、予め定められた値であっても良いが、所定の代入規則に基づく可変値とすると（つまりＸを変数とすると）、セキュリティ性をより高めることができると考えられる。所定の代入規則としては、例えば、固定コード群を所定の変換規則に従って変換することにより得られた第一数値群（例えば１６のアスキーコード要素）の所定の一以上の位の数値をXとする代入規則が考えられる。この代入規則によれば、ユーザ固有の固定コード群によって、秘匿パターンの構成が異なるので、ユーザ毎に秘匿パターンの構成を違えることができる。
【００６５】
また、第二のステップでは、除算に限らず、他種の四則演算が用いられても良い。具体的には、例えば、図４に例示するように、各アスキーコード要素（数値）を、４で除算するのではなく、４で乗算しても良い。この場合、第三のステップでは、各積を基にして、秘匿パターンを作成しても良い。具体的には、例えば、一つのサブ数値群を、複数の積のうちの最大値と同数の数値で構成し、そのサブ数値群における空白の位置を、図４に例示するように、そのサブ数値群に対応したアスキーコード要素と４との積に相当する位置にする。
【００６６】
また、第三のステップでは、秘匿パターンの構成要素であるサブ数値群の数Kを、カード番号の桁数ｎよりも多くしてもよい。つまり、ダミーの数値のみで構成されたダミーのサブ数値群が一つ以上含まれても良い。ダミーのサブ数値群は、秘匿パターンのどの位置に含まれても良い。ただし、ダミーサブ数値群の構成や位置は、所定の規則に従う構成や位置となる（つまりランダムに決定された構成や位置ではない）。復号のために秘匿パターンが生成される場合にも、同じ構成のダミーサブ数値群が生成されて同じ位置に入れられないと、暗号化のための秘匿パターンと同じ秘匿パターンが得られないためである。
【００６７】
また、本実施形態では、漏洩防止対象の情報が、数値のみで構成されるカード番号であるため、第三のステップでは、秘匿パターンに含まれるダミーのコードは全て数値となるが、漏洩防止対象の情報に、数値に代えて又は加えて、他種のコードが含まれる場合には、秘匿パターンに含まれるダミーのコードも、数値に代えて又は加えて、他種のコードとすることができる。
【００６８】
また、秘匿パターンは、図３や図４に例示したような方形でなくても良い。例えば、横一行或いは縦一列で構成されても良い。また、例えば、複数のサブ数値群が所定の法則に従って並べられたり列が改められたりされても良い。
【００６９】
以上のように、図３を参照して説明したパターン生成アルゴリズムはほんの一例であり、パターン生成アルゴリズムについて種々の変形例が考えられる。いずれのパターン生成アルゴリズムであっても、基本的には、秘匿パターンの作成のシードとするユーザ固有の第一のコード群を、所定の規則に従って、第二のコード群に変換し、第二のコード群から、漏洩防止対象情報の文字数ｎと同数の数値を取得し、取得したｎ個の数値からそれぞれ求まる位置に配置されたｎ個の空白と、それ以外の位置に配置されたダミーコードとから成る（秘匿パターン）を生成する。暗号化では、秘匿パターンにおける各空白に、漏洩防止対象情報を構成する各文字を入れる。復号化では、暗号化された情報と、秘匿パターンとの比較により、空白に位置する各文字より、生の情報（すなわち漏洩防止対象情報）が得られる。このような処理は、ＣＰＵにとって負担の小さい処理である。
【００７０】
さて、本実施形態では、前述した流れで、暗号化されたカード番号が登録された後、例えば、カード番号の行使、パスワードの変更、パターン生成プログラムの変更が行われる。以下、それぞれのケースで実行される処理フローの一例を説明する。
【００７１】
図５は、カード番号の行使のための処理フローの一例である。
【００７２】
クライアント１０１に入力されたログインＩＤ及びパスワードの認証が行われる（Ｓ２１、Ｓ２２）。認証されたパスワード（ユーザから入力されたパスワード）が、記憶資源３０７に記憶される。
【００７３】
その後、アプリケーションサーバ３０１が、Ｗｅｂサーバ２０１を介してクライアント１０１からカード番号の行使の指示を受ける（Ｓ２３）。それを契機に、アプリケーションサーバ３０１でパターン生成プログラム３０９が実行される（Ｓ２４）。すなわち、Ｓ２２で認証されたパスワード（記憶資源３０７に記憶されているパスワード）を用いて前述したパターン生成アルゴリズムが実行されることにより、秘匿パターンが生成されて記憶資源３０７に記憶される。
【００７４】
秘匿パターンが生成されたら、復号プログラム３１３が実行される（Ｓ２５）。すなわち、復号プログラム３１３が、認証されたログインＩＤ及びパスワードに対応する、暗号化されたカード番号を、ユーザＤＢ４０３から取得し、その暗号化されたカード番号と、Ｓ２４で生成された秘匿パターンとを比較することにより、秘匿パターンの空白の位置に相当する各数値を、暗号化されたカード番号から特定する。特定された各数値が、生のカード番号を構成する数値である。つまり、このＳ２５で、暗号化されたカード番号が生のカード番号に復号される。生のカード番号は、記憶資源３０７に一時記憶される。
【００７５】
アプリケーションサーバ３０１は、復号された生のカード番号を行使する（Ｓ２６）。具体的には、例えば、生のカード番号を、行使先のコンピュータシステムに送信する。なお、そのコンピュータシステムが、パターン生成プログラム３０９や復号プログラム３１３を有する場合には、生のカード番号ではなく暗号化されたカード番号を送信してもよい。或いは、そのコンピュータシステムに、暗号化されたカード番号と、パターン生成プログラム３０９や復号プログラム３１３とを送信し、暗号化されたカード番号を復号させ、その復号に使用されたパターン生成プログラム３０９や復号プログラム３１３を消去させても良い。
【００７６】
Ｓ２６の後、アプリケーションサーバ３０１は、復号された生のカード番号や秘匿パターンを記憶資源３０７から消去する（Ｓ２７）。
【００７７】
図６は、パスワードの変更の処理フローの一例である。
【００７８】
クライアント１０１に入力されたログインＩＤ及びパスワードの認証が行われる（Ｓ３１、Ｓ３２）。
【００７９】
次に、クライアント１０１では、変更後のパスワード（以下、新パスワード）がユーザから入力されて、入力された新パスワードが、Ｗｅｂサーバ２０１を介してアプリケーションサーバ３０１に送信される（Ｓ３３）。
【００８０】
アプリケーションサーバ３０１は、ユーザＤＢ４０３に存在する旧いパスワードを読み出して記憶資源３０７に記憶し、ユーザＤＢ４０３内のその旧いパスワードを新パスワードに更新する（Ｓ３４）。
【００８１】
そして、アプリケーションサーバ３０１は、既存の暗号化されたカード番号に代えて、新パスワードをシードとした新しい秘匿パターンでカード番号を暗号化したものをユーザＤＢ４０３に格納する処理を実行する。
【００８２】
具体的には、まず、旧いパスワードを用いてパターン生成プログラム３０９を実行することにより、旧いパスワードをシードとした秘匿パターンを生成する（Ｓ３５）。次に、復号プログラム３１３を実行することにより、ユーザＤＢ４０３から既存の暗号化されたカード番号を取得し、その暗号化されたカード番号と、Ｓ３５で生成された秘匿パターンとを比較することにより、暗号化されたカード番号を生のカード番号に復号する（Ｓ３６）。次に、新パスワードを用いてパターン生成プログラム３０９を実行することにより、新パスワードをシードとした新たな秘匿パターンを生成する（Ｓ３７）。次に、暗号化プログラム３１１を実行することにより、新たな秘匿パターンの各空白に、復号されたカード番号の各値を入れることで、新たな暗号化されたカード番号を生成する（Ｓ３８）。アプリケーションサーバ３０１は、ユーザＤＢ４０３内の既存の暗号化されたカード番号を、その生成された、新たな暗号化されたカード番号に更新する（Ｓ３９）。
【００８３】
図７は、パターン生成プログラムの変更の処理フローの一例である。
【００８４】
アプリケーションサーバ３０１では、パターン生成プログラム３０９を変更する場合（Ｓ４１）、既存の暗号化されたカード番号に代えて、変更後のパターン生成プログラム３０９で新しい秘匿パターンを生成し、その秘匿パターンでカード番号を暗号化したものをユーザＤＢ４０３に格納する処理を実行する。
【００８５】
具体的には、まず、ユーザＤＢ４０３内のパスワード（ユーザに入力を要求し、その要求に応答して入力されたパスワードでも良い）を用いて、変更前のパターン生成プログラム３０９を実行することにより、秘匿パターンを生成する（Ｓ４２）。次に、復号プログラム３１３を実行することにより、ユーザＤＢ４０３から既存の暗号化されたカード番号を取得し、その暗号化されたカード番号と、Ｓ４２で生成された秘匿パターンとを比較することにより、暗号化されたカード番号を生のカード番号に復号する（Ｓ４３）。次に、Ｓ４２で使用されたパスワードと同じパスワードを用いて変更後のパターン生成プログラム３０９を実行することにより、新たな秘匿パターンを生成する（Ｓ４４）。次に、暗号化プログラム３１１を実行することにより、新たな秘匿パターンの各空白に、復号されたカード番号の各値を入れることで、新たな暗号化されたカード番号を生成する（Ｓ４５）。アプリケーションサーバ３０１は、ユーザＤＢ４０３内の既存の暗号化されたカード番号を、その生成された、新たな暗号化されたカード番号に更新する（Ｓ４６）。
【００８６】
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【００８７】
例えば、パターン生成プログラムや暗号化プログラムは、予めクライアント１０１にインストールされていても良い。その場合、例えばカード番号の登録において、Ｓ２の後に、クライアント１０１とサーバシステム５００との間で、お互いのパターン生成プログラムが同じであるか否かをチェックし（例えば、パターン生成プログラムのバージョン情報をやり取りし互いのバージョンが一致するか否かをチェックし）、同じであれば、Ｓ５が行われ、違っていれば、Ｓ３が行われても良い。
【００８８】
また、例えば、サーバシステム５００には、ユーザ毎に異なるパターン生成プログラム３０９が記憶されていて、ユーザに対応したパターン生成プログラムが実行されても良い。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施形態に係るクライアントサーバシステムの構成例を示す。
【図２】カード番号の登録のための処理フローの一例を示す。
【図３】パターン生成アルゴリズムとカード番号暗号化の説明図である。
【図４】パターン生成アルゴリズムの一変形例の説明図である。
【図５】カード番号の行使のための処理フローの一例である。
【図６】パスワードの変更の処理フローの一例である。
【図７】パターン生成プログラムの変更の処理フローの一例である。
【符号の説明】
【００９０】
１０１…クライアント  ２０１…Ｗｅｂサーバ  ３０１…アプリケーションサーバ  ３０９…パターン生成プログラム  ３１１…暗号化プログラム  ３１３…復号プログラム  ４０１…データベースサーバ  ４０３…ユーザデータベース
【図１】
2008028695.tif 000003
【図２】
2008028695.tif 000004
【図３】
2008028695.tif 000005
【図４】
2008028695.tif 000006
【図５】
2008028695.tif 000007
【図６】
2008028695.tif 000008
【図７】
2008028695.tif 000009