説明

情報漏洩防止方法

【課題】盗聴やハッキングがされても情報が漏洩しないようにする。また、そのための処理負担を抑える。
【解決手段】クライアントが、ユーザに固有の第一のコード群を基に、所定の規則に従って、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を取得し、取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成し、n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成し、その暗号化情報をサーバシステムに送信する。サーバシステムは、クライアントから該暗号化情報を受信し、その暗号化情報を所定の記憶装置に登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の漏洩を防止するための技術に関する。
【背景技術】
【0002】
情報の漏洩を防止するための技術として、例えば、特許文献1に開示の技術が知られている。特許文献1では、漏洩防止の対象となる情報は、パスワードである。特許文献1では、例えば、以下の処理がいわゆるクライアントサーバシステムで行われる。
【0003】
初回登録の際、サーバが、ユーザから入力された色配列及びパスワードをクライアントから受信し、受信した色配列(例えば“青・黄・赤”)及びパスワード(例えば“12345”)を登録する。色配列は、パスワードの入力順序を表している。具体的には、青が、1番目の桁を意味し、黄が、2番目の桁を意味し、赤が、3番目の桁を意味する。
【0004】
パスワード認証の際、サーバが、色配列“青・赤・黄”をランダムに並び替え、色配列を構成する色数が、パスワードの桁数未満であれば、並び替えられた色配列(例えば“黄・赤・青”)をパスワードの桁数以上の長さになるように連続させ、連続させた色配列(例えば“黄・赤・青”を連続させて“黄・赤・青・黄・赤・青”とすることにより、色数をパスワード桁数5以上にしたもの)を表示する。ユーザは、その表示された色配列群“黄・赤・青・黄・赤・青”と、初回登録時に入力した“青・黄・赤”の順序とに基づいて、正規のパスワードを並び替えたものを入力する。この例において、表示された色配列群“黄・赤・青・黄・赤・青”に従って並び替えたパスワードを正しく入力するならば、“2315□4”となる(□はブランクを意味する)。この並び替えられたパスワードが、クライアントからサーバに送信され、サーバが、その並び替えられたパスワード“2315□4”を、初回登録の際に登録された色配列“青・黄・赤”を基に並び替えることで、パスワード“12345”を得る。
【0005】
【特許文献1】特開2004−185074号公報(特に段落25−33)
【発明の開示】
【発明が解決しようとする課題】
【0006】
例えば、クレジットカード番号(以下、単に「カード番号」と言う)をユーザから預かり、預かったカード番号をユーザの代わりに別のコンピュータシステム(例えば、決済を行うためのコンピュータシステム)に出力するサーバシステム(以下、代行サーバ)の構築が考えられる。この代行サーバにより、ユーザは、カード番号を預けた後、いろいろなサイトでいちいちカード番号を入力しなくてもカード番号を行使する(例えば、クレジットカードで決済する)ことができる。
【0007】
代行サーバとクライアントによるクライアントサーバシステムにおいて、カード番号が漏洩してしまう(不当な第三者にカード番号がわかってしまう)おそれのあるケースとして、以下の2つが考えられる。
(1)クライアントから代行サーバにカード番号を送信中にそのカード番号が盗聴されるケース。
(2)カード番号を保管するストレージがハッキングされるケース。
【0008】
上述した特許文献1によれば、初回登録の後のパスワード認証では、並び替えたパスワードがユーザに入力されてクライアントからサーバに送信されるので、上記(1)のケースが生じてもパスワードの漏洩を防止できるが、初回登録では、並び替えのされていない正規のパスワードがクライアントからサーバに送信されるので、上記(1)のケースが生じてしまうとパスワードが漏洩するおそれがある。また、上述した特許文献1には、上記(2)のケースを想定した記載は無い。
【0009】
以上のことから、上記2つのケースが生じてもカード番号の漏洩しない情報漏洩防止技術の実現が望まれる。
【0010】
また、その情報漏洩防止技術の実現の際に、ユーザのユーザビリティをなるべく落とさないようにすることが望ましい。その理由の一つとして、例えば、代行サーバは、いわゆるBtoCで利用されることが多いと考えられ、煩雑な操作をユーザに強いると、誤操作などのミスが生じ易くなるためである。特許文献1の技術によれば、パスワード認証の際、初期登録の際に入力した色配列をユーザが管理或いは記憶していないと正しく並び替えたパスワードを入力することができないので、ユーザビリティの点で良いとは言えない。
【0011】
また、代行サーバでは、たくさんのユーザからカード番号を預かり、そのたくさんのユーザのカード番号を出力することが考えられる。さらに、一人のユーザが複数枚のクレジットカードを所有し、一ユーザにつきそれら複数枚のクレジットカードのカード番号を登録することを考えると、預かるカード番号の数や処理件数が膨大になると考えられる。これらのことを考慮すると、上記情報漏洩防止技術の実現において、情報漏洩防止のための処理負担をなるべく軽くすることが望ましい。
【0012】
以上の点は、漏洩防止の対象となる情報がカード番号である場合に限らず、他種の情報の漏洩を防止する場合にも該当し得る。
【0013】
従って、本発明の第一の目的は、登録する情報が第一のコンピュータシステムから第二のコンピュータシステムに送信中に盗聴されてもその情報が漏洩してしまうのを防ぐことにある。
【0014】
本発明の第二の目的は、記憶装置から情報が盗み出されてもその情報が漏洩してしまうことを防ぐことにある。
【0015】
本発明の第三の目的は、情報漏洩防止技術の実現の際にユーザビリティが低下しないようにすることにある。
【0016】
本発明の第四の目的は、情報漏洩防止のための処理負担を抑えることにある。
【課題を解決するための手段】
【0017】
本発明に従うコンピュータプログラムは、コード変換ステップと、数値取得ステップと、生成ステップとをコンピュータに実行させることを特徴とする。コード変換ステップでは、ユーザに固有の第一のコード群を所定の規則に従って第二のコード群に変換する。数値取得ステップでは、前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得る。生成ステップでは、前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する。前記虫食いダミーコード群は、前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成すること、及び、前記暗号化情報から、前記生成された虫食いダミーコード群のn個の空白にそれぞれ対応する位置に存在するn文字の漏洩防止対象情報を特定することにより、該n文字の漏洩防止対象情報を復号することに利用されるデータである。
【0018】
このコンピュータプログラムの実行に要する負担は小さいので、情報漏洩防止のための処理負担を抑えることができる。
【0019】
第一の実施態様において、前記コード変換ステップでは、ユーザが所望のサービス(例えばログイン)を受けることの許可を得ることを目的として入力され所定の記憶資源に記憶されたコード群(以下、許可申請コード群)を、該記憶資源から取得し、該コード群を前記第二のコード群に変換する。つまり、前記第一のコード群は、前記虫食いダミーコード群の生成を主要な目的として入力されたコード群ではなく、過去の或る時点で入力され記憶された許可申請コード群である。このため、虫食いダミーコード群の生成の基とされた第一のコード群が何であるのかを第三者に特定しにくくすることができ、以って、情報の漏洩防止に一層貢献することができる。また、この第一の実施態様では、前記許可申請コード群を前記第一のコード群に流用しているので、ユーザは、第一のコード群を別途入力しなくても済む。このため、ユーザのユーザビリティを向上することができる。
【0020】
第二の実施態様において、前記第一のコード群は、文字列である。前記コード変換ステップでは、前記文字列を構成する複数の文字を、それぞれ、所定のコード体系に従う複数の文字コードに変換する。前記数値取得ステップでは、各文字コードを構成する各文字コード要素をP進数(Pは2以上の整数)の数値とみなし、前記複数の文字コードから成る文字コード群から、前記n個の数値を取得する。
【0021】
この第二の実施態様によれば、コード変換のための規則として、所定のコード体系に従う、文字コードと文字との変換規則が利用される。このため、コード変換のための専用の規則をわざわざ設けなくても済む。
【0022】
第三の実施態様において、前記数値取得ステップでは、前記第二コード群中の複数の要素をそれぞれP進数の数値とみなし、前記複数のP進数の数値をそれぞれ用いた四則演算を行って、前記n個の数値を得る。
【0023】
この第三の実施態様によれば、各P進数の数値から求まる位置ではなく、四則演算を行って得られた数値から求まる位置とされる。このため、暗号化情報のうちのどこが情報漏洩防止対象の文字が入っている位置であるかを第三者に特定されてしまう可能性をより低減することができる。
【0024】
第四の実施態様では、前記第三の実施態様において、前記数値取得ステップでは、各P進数の数値と変数とを用いた前記四則演算を行い、該変数に、前記複数のP進数の数値のうちの所定番目の数値を代入する。
【0025】
第一のコード群はユーザに固有のコード群であり、故に、前記第二コード群から得られる各P進数の数値も、ユーザに固有の値となる。四則演算で変数を使用し、その変数に、ユーザに固有のP進数の数値を代入すれば、このコンピュータプログラムに従うアルゴリズムも結果としてユーザに固有となる。すなわち、この第四の実施態様によれば、複数のユーザに共通の一つのコンピュータプログラム(アルゴリズム)で実質的にユーザ毎に異なるアルゴリズムを実現することができる。
【0026】
第五の実施態様では、前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップを更にコンピュータに実行させる。
【0027】
第六の実施態様では、前記暗号化情報から、前記生成された虫食いダミーコード群のn個の空白にそれぞれ対応する位置に存在するn文字の漏洩防止対象情報を特定することにより、該n文字の漏洩防止対象情報を復号するステップを更にコンピュータに実行させる。
【0028】
以上のコンピュータプログラムは、第一のコンピュータシステムと第二のコンピュータシステムとで構成されるコンピュータシステム群の前記第一のコンピュータシステムで実行させることで、一つの情報漏洩防止方法を実現することができる。
【0029】
具体的には、第一のコンピュータシステムが、ユーザに固有の第一コード群を、前記第一のコンピュータシステムの第一の記憶資源に記憶するステップと、前記第一のコンピュータシステムが、前記第一のコード群を、所定の規則に従って、第二のコード群に変換するステップと、前記第一のコンピュータシステムが、前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得るステップと、前記第一のコンピュータシステムが、前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成するステップと、前記第一のコンピュータシステムが、前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップと、前記第一のコンピュータシステムが、前記暗号化情報を第二のコンピュータシステムに送信するステップと、前記第二のコンピュータシステムが、前記第一のコンピュータシステムから前記暗号化情報を受信するステップと、前記第二のコンピュータシステムが、前記受信した暗号化情報を所定の記憶装置に登録するステップと
を有する情報漏洩防止方法を実現することができる。
【0030】
この情報漏洩防止方法によれば、登録する情報が第一のコンピュータシステムから第二のコンピュータシステムに送信中に盗聴されても、その情報は暗号化情報であるので、情報が漏洩してしまうのを防ぐことができる。
【0031】
また、この情報漏洩防止方法によれば、記憶装置には、暗号化情報が登録されるので、その記憶装置がハッキングされても、情報が漏洩してしまうのを防ぐことができる。
【発明を実施するための最良の形態】
【0032】
以下、図面を参照して、本発明の一実施形態について説明する。
【0033】
図1は、本発明の一実施形態に係るクライアントサーバシステムの構成例を示す。
【0034】
本実施形態では、漏洩防止の対象となる情報は、クレジットカードの番号(カード番号)である。通信ネットワーク151にクライアント101及びサーバシステム500が接続されており、サーバシステム500は、ユーザが所有するクレジットカードのカード番号を他のコンピュータシステムに出力するシステムである。
【0035】
クライアント101は、一種の計算機であり、CPU103、入力装置105(例えばキーボード)、表示装置106、及び記憶資源107を備える。記憶資源107は、一又は複数の記憶装置(例えばメモリ或いはハードディスク)で構成することができる。記憶資源107には、CPU103で実行されるコンピュータプログラムが記憶されており、そのコンピュータプログラムの一つとしてWebブラウザ109がある。
【0036】
サーバシステム500は、一又は複数台のサーバマシンで構成することができる。この実施形態では、通信ネットワーク151に接続したWebサーバ201と、Webサーバ201及びデータベース(DB)サーバ401に接続したアプリケーションサーバ301と、ユーザに関するデータで構成されたDB(以下、ユーザDB)403を記憶したDBサーバ401とで構成することができる。
【0037】
ユーザDB403には、例えば、各ユーザ毎のログインID、パスワード及び一以上のカード番号が含まれる。ログインID及びパスワードの少なくとも一方(例えばパスワード)が、暗号化されている(例えばハッシュ値である)。また、ユーザDB403に格納されるカード番号は、後述するように、暗号化されたカード番号である。
【0038】
図1では、複数のサーバ201、301及び401のうちアプリケーションサーバ301の構成を代表的に示している。アプリケーションサーバ301は、CPU303や記憶資源307を備えている。記憶資源307には、CPU303で実行されるコンピュータプログラムが記憶されており、そのコンピュータプログラムとして、パターン生成プログラム309、暗号化プログラム311及び復号プログラム313がある。各種コンピュータプログラムについては後述する。
【0039】
以下、このクライアントサーバシステムで行われる処理の流れを説明する。
【0040】
図2は、カード番号の登録のための処理フローの一例を示す。
【0041】
Webブラウザ109がWebサーバ201にアクセスすると、所定のログイン要求画面がWebブラウザ109によって表示装置106に表示される。ログイン要求画面に入力されたログインID及びパスワードが、記憶資源107に記憶され、クライアント101からWebサーバ201に送信される(ステップS1)。アプリケーションサーバ301は、Webサーバ201が受信したログインID及びパスワードに一致するログインID及びパスワードをユーザDB403から検索し、見つかれば、そのログインID及びパスワードが認証される(S2)。
【0042】
S2でログインID及びパスワードが認証されたことを契機に、アプリケーションサーバ301は、パターン生成プログラム309及び暗号化プログラム311をWebサーバ201に送信する(S3)。Webサーバ201は、アプリケーションサーバ301からのパターン生成プログラム309及び暗号化プログラム311と、カード番号の入力を受け付けるための登録画面と、一時記憶された所定の情報を消去することをクライアント101の所定のコンピュータプログラムに実行させるための消去制御情報とを、クライアント101に送信する(S4)。クライアント101では、登録画面が、Webブラウザ109により表示装置106に表示され、パターン生成プログラム309、暗号化プログラム311及び消去制御情報は、記憶資源107(例えばメモリ)に記憶される。
【0043】
表示された登録画面にカード番号が入力されて所定の操作が行われたことを契機に(例えば、登録画面上の所定のボタンが押下されたことを契機に)(S5)、記憶資源107に記憶されたパターン生成プログラム309がCPU103により実行される(S6)。パターン生成プログラム309は、記憶資源107に記憶されているパスワードを入力値とし、そのパスワードを用いて後述のパターン生成アルゴリズムを実行することにより、秘匿パターンを生成する。秘匿パターンとは、カード番号を秘匿にするためのパターンであり、具体的には、カード番号の桁数n(nは2以上の整数、本実施形態ではn=16とする)と同じ数の空白(ブランク)を有する数値群である。この数値群を構成する数値の数Zは、空白の数nよりも多い(Zは空白数nを含んだ数であり、Z>nである)。生成された秘匿パターンは、記憶資源107に展開される。
【0044】
秘匿パターンが生成されたことを契機に、記憶資源107に記憶された暗号化プログラム311がCPU103により実行される(S7)。暗号化プログラム311は、秘匿パターンにおける各空白に、カード番号を構成する各数値を入れる。これにより、暗号化されたカード番号が生成される。すなわち、暗号化されたカード番号は、秘匿パターンとそれに組み込まれたカード番号とのセットである。
【0045】
クライアント101は、記憶資源107上の、暗号化されたカード番号を、Webサーバ201に送信する(S8)。Webサーバ201は、クライアント101からの、暗号化されたカード番号をアプリケーションサーバ301に送信し、アプリケーションサーバ301が、その暗号化されたカード番号を、ユーザDB403に格納する(S9)。その暗号化されたカード番号は、S2でのログインID及びパスワードに関連付けられる。
【0046】
クライアント101では、記憶資源107に記憶された消去制御情報による所定のタイミングで所定のコンピュータプログラムが実行されることにより、記憶資源107に一時的に記憶された情報(パスワード、カード番号、秘匿パターン、パターン生成プログラム309及び暗号化プログラム311)が消去される(S10)。
【0047】
以上の流れによれば、カード番号の登録の際には、暗号化されたカード番号が、クライアント101からWebサーバ201に送信され、暗号化されていないカード番号(以下、「生のカード番号」と言う)は送信されない。このため、送信中の情報が盗聴されても、得られるのは、暗号化されたカード番号であり、故に、生のカード番号が漏洩することを防ぐことができる。
【0048】
また、以上の流れによれば、この暗号化されたカード番号が、ユーザDB403に格納され、生のカード番号は、ユーザDB403に格納されないので、ユーザDB403を記憶した記憶装置がハッキングされても、生のカード番号が漏洩してしまうことを防ぐことができる。
【0049】
さらに、以上の流れによれば、秘匿パターンの作成のシード(秘匿パターンの作成の基になるコード群)は、クライアント101とサーバシステム500との間で明示的に鍵としてやりとりされるものではなく、暗号化を本来の目的としていないパスワードである。このため、秘匿パターンの作成のシードが何であるのかを第三者に特定しにくくすることができ、以って、カード番号の漏洩防止に貢献することができる。
【0050】
また、以上の流れによれば、クライアント101では、所定のタイミングで、一時的に記憶された秘密性の高い情報が記憶資源107から消去される。これにより、そのような秘密性の高い情報が記憶資源107にいつまでも残ってしまうことを防ぐことができるので、セキュリティ性が高まる。なお、所定のタイミングとしては、Webブラウザ109が閉じられたタイミング、或いは、S1以降の或る所定時点(例えば、暗号化されたカード番号が送信された時点)から一定時間経過したタイミングなど、種々のタイミングを採用することができる。
【0051】
さて、本実施形態では、前述したように、生のカード番号ではなく暗号化されたカード番号が送信及び格納されるが、生のカード番号の暗号化のための準備処理として実行されるパターン生成アルゴリズムが大きな特徴の一つである。
【0052】
図3は、パターン生成アルゴリズムとカード番号暗号化の説明図である。
【0053】
パターン生成アルゴリズムは、第一〜第三のステップで構成され、カード番号暗号化は、第四のステップで構成される。第一〜第三のステップが、図2のS6に対応し、第四のステップが、図2のS7に対応する。以下、各ステップについて説明する。
【0054】
<第一のステップ>
第一のステップは、パスワード(例えば“PASSWORD”)をアスキーコード群に変換し16等分する処理である。図示の例では、パスワードの文字列は8個の文字で構成されているため、アスキーコード群に変換すると、1文字当たり2個のコードで構成されたアスキーコードが8個得られ、各アスキーコードを個々にばらすことで、16個のコードが得られる。16等分するのは、本実施形態ではカード番号が16桁であるためである。以下の説明では、パスワードを構成する一つの文字を、「パスワード文字」と言い、一つのアスキーコードを構成する2個のコードを「アスキーコード要素」と言う。
【0055】
<第二のステップ>
第二のステップは、16個のアスキーコード要素をそれぞれ数値と見なし、mod4による余剰を求める処理である。以下、mod4により求められた余剰を「mod4値」と言う。
【0056】
<第三のステップ>
第三のステップは、mod4値を基にして秘匿パターンを作成する処理である。ここで作成された秘匿パターンは、16個のアスキーコード要素にそれぞれ対応した16のサブ数値群で構成される。一つのサブ数値群は、4個の要素で構成され、それらのうち、そのサブ数値群に対応するアスキーコード要素のmod4値に対応する要素(位置)が空白となっており、他の3つの要素が、数値である。3個の数値は、いずれも、ダミーの数値(例えば、ランダムで決定された数値)である。なお、サブ数値群が4個の要素で構成されるのは、modXのXの値が4であるからである。
【0057】
<第四のステップ>
第四のステップは、秘匿パターンを基に、カード番号を秘匿にする処理である。具体的には、秘匿パターンを構成する各サブ数値群の空白に、カード番号を構成する各数値を入れる。これにより、図3に例示する、暗号化されたカード番号が得られる。
【0058】
以上が、パターン生成アルゴリズムとカード番号暗号化の説明である。なお、パターン生成アルゴリズム、換言すれば、秘匿パターンの構成は、上述したものに限らず、他の様々なものを採用することができる。
【0059】
例えば、第一のステップでは、秘匿パターンのシードとされるパスワードは、ハッシュ値などの暗号化されたパスワードであっても良いし、暗号化されていない生のパスワードであっても良い。言うまでもなく、暗号化と復号化では、同種のパスワードがシードとされる。つまり、本実施形態において、一方で生のパスワードがシードとされ、他方で暗号化されたパスワードがシードとされることはない。
【0060】
また、第一のステップでは、パスワードに代えて、ユーザに固有の他種の固定コード群(例えばログインID)が用いられても良い。固定コード群とは、不規則に変換することの無い一以上のコードで構成されたコード群である。固定コード群を構成する各固定コードは、文字、符号及び数値のいずれであってもよい。
【0061】
また、上記の例のアルゴリズムでは、パスワードをアスキーコード群に変換し、アスキーコード群が16等分され、各アスキーコード要素を用いて除算が行われた。しかし、アスキーコード群への変換に代えて、他種の変換規則を用いた変換が行われても良い。具体的には、例えば、文字列を構成する複数の文字(ここで言う文字は、英数字や記号などの文字が含まれても良い)を、それぞれ、所定のコード体系(例えば、JISコード、シフトJISコード、或いはUnicode)に従う複数の文字コードに変換し、複数の文字コードの各々を構成する各文字コード要素を、P進数(Pは2以上の整数)の数値と見なして、四則演算を行っても良い。なお、文字列を構成する文字に、変換に利用するコード体系でサポートされていない文字が含まれている場合には(例えば、変換に利用するコード体系がアスキーコードである場合に、変換対象の文字列に漢字が含まれている場合には)、その文字に対応する文字コード要素を、所定の値にしても良い。つまり、クライアントとサーバシステムのそれぞれにおいて、同じ文字列を用いてパターン生成プログラム309を実行すれば同じ秘匿パターンが生成されるようになっていれば良い。
【0062】
また、例えば、固定コード群から数値を得るための変換規則として、所定のコード体系に従う文字コードに変換する規則以外の規則が採用されても良い。例えば、各固定コードをどんな値に変換するかを定義した専用の変換テーブルを用意し、該専用の変換テーブル用いて、各固定コードに対応する各値が得られても良い。なお、この場合、専用の変換テーブルが、パターン生成プログラム309や暗号化プログラム311等のダウンロードと同じセッション或いは別のセッションで、サーバシステム500からクライアント101にダウンロードすることができる。
【0063】
また、第一のステップでは、アスキーコード群を構成するアスキーコード要素の個数k(kは1以上の整数)が、カード番号の桁数nより少ない場合には、ダミーのコードを、(n−k)個加えることで、結果的に、n個のアスキーコード要素を生成することができる。このようにするのは、秘匿パターンに、少なくとも、カード番号の桁数nと同数のサブ数値群を用意するためである。なお、逆に、kが、カード番号の桁数nより多い場合には、k個のアスキーコード要素のうちのn個のアスキーコード要素のみを、第二のステップで4で除算されるコードとすることができる。ただし、採用されるn個のアスキーコード要素は、所定位置にあるアスキーコード要素である。復号のために秘匿パターンが生成される場合にも、同じアスキーコード要素が採用されないと、復号に成功しないためである。同様の理由から、上記加えられる(n−k)個のダミーコードは、所定の規則に従うコード(例えば、所定の規則に従って算出されたコード、或いは予め設定されているコード)であり、且つ、(n−k)個のダミーコードは所定位置に加えられるのであり、ランダムに決定されたコードが加えられたりランダムに決定された位置に加えられたりするのではない。
【0064】
また、第二のステップでは、modXのXの値は4に限らず、他の値を採用することができる。Xの値が大きい程、暗号化されたカード番号から生のカード番号が特定されてしまう可能性を低くすることができる。Xに代入される値は、予め定められた値であっても良いが、所定の代入規則に基づく可変値とすると(つまりXを変数とすると)、セキュリティ性をより高めることができると考えられる。所定の代入規則としては、例えば、固定コード群を所定の変換規則に従って変換することにより得られた第一数値群(例えば16のアスキーコード要素)の所定の一以上の位の数値をXとする代入規則が考えられる。この代入規則によれば、ユーザ固有の固定コード群によって、秘匿パターンの構成が異なるので、ユーザ毎に秘匿パターンの構成を違えることができる。
【0065】
また、第二のステップでは、除算に限らず、他種の四則演算が用いられても良い。具体的には、例えば、図4に例示するように、各アスキーコード要素(数値)を、4で除算するのではなく、4で乗算しても良い。この場合、第三のステップでは、各積を基にして、秘匿パターンを作成しても良い。具体的には、例えば、一つのサブ数値群を、複数の積のうちの最大値と同数の数値で構成し、そのサブ数値群における空白の位置を、図4に例示するように、そのサブ数値群に対応したアスキーコード要素と4との積に相当する位置にする。
【0066】
また、第三のステップでは、秘匿パターンの構成要素であるサブ数値群の数Kを、カード番号の桁数nよりも多くしてもよい。つまり、ダミーの数値のみで構成されたダミーのサブ数値群が一つ以上含まれても良い。ダミーのサブ数値群は、秘匿パターンのどの位置に含まれても良い。ただし、ダミーサブ数値群の構成や位置は、所定の規則に従う構成や位置となる(つまりランダムに決定された構成や位置ではない)。復号のために秘匿パターンが生成される場合にも、同じ構成のダミーサブ数値群が生成されて同じ位置に入れられないと、暗号化のための秘匿パターンと同じ秘匿パターンが得られないためである。
【0067】
また、本実施形態では、漏洩防止対象の情報が、数値のみで構成されるカード番号であるため、第三のステップでは、秘匿パターンに含まれるダミーのコードは全て数値となるが、漏洩防止対象の情報に、数値に代えて又は加えて、他種のコードが含まれる場合には、秘匿パターンに含まれるダミーのコードも、数値に代えて又は加えて、他種のコードとすることができる。
【0068】
また、秘匿パターンは、図3や図4に例示したような方形でなくても良い。例えば、横一行或いは縦一列で構成されても良い。また、例えば、複数のサブ数値群が所定の法則に従って並べられたり列が改められたりされても良い。
【0069】
以上のように、図3を参照して説明したパターン生成アルゴリズムはほんの一例であり、パターン生成アルゴリズムについて種々の変形例が考えられる。いずれのパターン生成アルゴリズムであっても、基本的には、秘匿パターンの作成のシードとするユーザ固有の第一のコード群を、所定の規則に従って、第二のコード群に変換し、第二のコード群から、漏洩防止対象情報の文字数nと同数の数値を取得し、取得したn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る(秘匿パターン)を生成する。暗号化では、秘匿パターンにおける各空白に、漏洩防止対象情報を構成する各文字を入れる。復号化では、暗号化された情報と、秘匿パターンとの比較により、空白に位置する各文字より、生の情報(すなわち漏洩防止対象情報)が得られる。このような処理は、CPUにとって負担の小さい処理である。
【0070】
さて、本実施形態では、前述した流れで、暗号化されたカード番号が登録された後、例えば、カード番号の行使、パスワードの変更、パターン生成プログラムの変更が行われる。以下、それぞれのケースで実行される処理フローの一例を説明する。
【0071】
図5は、カード番号の行使のための処理フローの一例である。
【0072】
クライアント101に入力されたログインID及びパスワードの認証が行われる(S21、S22)。認証されたパスワード(ユーザから入力されたパスワード)が、記憶資源307に記憶される。
【0073】
その後、アプリケーションサーバ301が、Webサーバ201を介してクライアント101からカード番号の行使の指示を受ける(S23)。それを契機に、アプリケーションサーバ301でパターン生成プログラム309が実行される(S24)。すなわち、S22で認証されたパスワード(記憶資源307に記憶されているパスワード)を用いて前述したパターン生成アルゴリズムが実行されることにより、秘匿パターンが生成されて記憶資源307に記憶される。
【0074】
秘匿パターンが生成されたら、復号プログラム313が実行される(S25)。すなわち、復号プログラム313が、認証されたログインID及びパスワードに対応する、暗号化されたカード番号を、ユーザDB403から取得し、その暗号化されたカード番号と、S24で生成された秘匿パターンとを比較することにより、秘匿パターンの空白の位置に相当する各数値を、暗号化されたカード番号から特定する。特定された各数値が、生のカード番号を構成する数値である。つまり、このS25で、暗号化されたカード番号が生のカード番号に復号される。生のカード番号は、記憶資源307に一時記憶される。
【0075】
アプリケーションサーバ301は、復号された生のカード番号を行使する(S26)。具体的には、例えば、生のカード番号を、行使先のコンピュータシステムに送信する。なお、そのコンピュータシステムが、パターン生成プログラム309や復号プログラム313を有する場合には、生のカード番号ではなく暗号化されたカード番号を送信してもよい。或いは、そのコンピュータシステムに、暗号化されたカード番号と、パターン生成プログラム309や復号プログラム313とを送信し、暗号化されたカード番号を復号させ、その復号に使用されたパターン生成プログラム309や復号プログラム313を消去させても良い。
【0076】
S26の後、アプリケーションサーバ301は、復号された生のカード番号や秘匿パターンを記憶資源307から消去する(S27)。
【0077】
図6は、パスワードの変更の処理フローの一例である。
【0078】
クライアント101に入力されたログインID及びパスワードの認証が行われる(S31、S32)。
【0079】
次に、クライアント101では、変更後のパスワード(以下、新パスワード)がユーザから入力されて、入力された新パスワードが、Webサーバ201を介してアプリケーションサーバ301に送信される(S33)。
【0080】
アプリケーションサーバ301は、ユーザDB403に存在する旧いパスワードを読み出して記憶資源307に記憶し、ユーザDB403内のその旧いパスワードを新パスワードに更新する(S34)。
【0081】
そして、アプリケーションサーバ301は、既存の暗号化されたカード番号に代えて、新パスワードをシードとした新しい秘匿パターンでカード番号を暗号化したものをユーザDB403に格納する処理を実行する。
【0082】
具体的には、まず、旧いパスワードを用いてパターン生成プログラム309を実行することにより、旧いパスワードをシードとした秘匿パターンを生成する(S35)。次に、復号プログラム313を実行することにより、ユーザDB403から既存の暗号化されたカード番号を取得し、その暗号化されたカード番号と、S35で生成された秘匿パターンとを比較することにより、暗号化されたカード番号を生のカード番号に復号する(S36)。次に、新パスワードを用いてパターン生成プログラム309を実行することにより、新パスワードをシードとした新たな秘匿パターンを生成する(S37)。次に、暗号化プログラム311を実行することにより、新たな秘匿パターンの各空白に、復号されたカード番号の各値を入れることで、新たな暗号化されたカード番号を生成する(S38)。アプリケーションサーバ301は、ユーザDB403内の既存の暗号化されたカード番号を、その生成された、新たな暗号化されたカード番号に更新する(S39)。
【0083】
図7は、パターン生成プログラムの変更の処理フローの一例である。
【0084】
アプリケーションサーバ301では、パターン生成プログラム309を変更する場合(S41)、既存の暗号化されたカード番号に代えて、変更後のパターン生成プログラム309で新しい秘匿パターンを生成し、その秘匿パターンでカード番号を暗号化したものをユーザDB403に格納する処理を実行する。
【0085】
具体的には、まず、ユーザDB403内のパスワード(ユーザに入力を要求し、その要求に応答して入力されたパスワードでも良い)を用いて、変更前のパターン生成プログラム309を実行することにより、秘匿パターンを生成する(S42)。次に、復号プログラム313を実行することにより、ユーザDB403から既存の暗号化されたカード番号を取得し、その暗号化されたカード番号と、S42で生成された秘匿パターンとを比較することにより、暗号化されたカード番号を生のカード番号に復号する(S43)。次に、S42で使用されたパスワードと同じパスワードを用いて変更後のパターン生成プログラム309を実行することにより、新たな秘匿パターンを生成する(S44)。次に、暗号化プログラム311を実行することにより、新たな秘匿パターンの各空白に、復号されたカード番号の各値を入れることで、新たな暗号化されたカード番号を生成する(S45)。アプリケーションサーバ301は、ユーザDB403内の既存の暗号化されたカード番号を、その生成された、新たな暗号化されたカード番号に更新する(S46)。
【0086】
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0087】
例えば、パターン生成プログラムや暗号化プログラムは、予めクライアント101にインストールされていても良い。その場合、例えばカード番号の登録において、S2の後に、クライアント101とサーバシステム500との間で、お互いのパターン生成プログラムが同じであるか否かをチェックし(例えば、パターン生成プログラムのバージョン情報をやり取りし互いのバージョンが一致するか否かをチェックし)、同じであれば、S5が行われ、違っていれば、S3が行われても良い。
【0088】
また、例えば、サーバシステム500には、ユーザ毎に異なるパターン生成プログラム309が記憶されていて、ユーザに対応したパターン生成プログラムが実行されても良い。
【図面の簡単な説明】
【0089】
【図1】本発明の一実施形態に係るクライアントサーバシステムの構成例を示す。
【図2】カード番号の登録のための処理フローの一例を示す。
【図3】パターン生成アルゴリズムとカード番号暗号化の説明図である。
【図4】パターン生成アルゴリズムの一変形例の説明図である。
【図5】カード番号の行使のための処理フローの一例である。
【図6】パスワードの変更の処理フローの一例である。
【図7】パターン生成プログラムの変更の処理フローの一例である。
【符号の説明】
【0090】
101…クライアント 201…Webサーバ 301…アプリケーションサーバ 309…パターン生成プログラム 311…暗号化プログラム 313…復号プログラム 401…データベースサーバ 403…ユーザデータベース

【特許請求の範囲】
【請求項1】
ユーザに固有の第一のコード群を、所定の規則に従って、第二のコード群に変換する、コード変換ステップと、
前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得る数値取得ステップと、
前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する生成ステップと
をコンピュータに実行させ、
前記虫食いダミーコード群は、前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成すること、及び、前記暗号化情報から、前記生成された虫食いダミーコード群のn個の空白にそれぞれ対応する位置に存在するn文字の漏洩防止対象情報を特定することにより、該n文字の漏洩防止対象情報を復号することに利用されるデータである、
ことを特徴とするコンピュータプログラム。
【請求項2】
前記コード変換ステップでは、ユーザが所望のサービスを受けることの許可を得ることを目的として入力され所定の記憶資源に記憶されたコード群を、該記憶資源から取得し、該コード群を前記第二のコード群に変換する、
請求項1記載のコンピュータプログラム。
【請求項3】
前記第一のコード群は、文字列であり、
前記コード変換ステップでは、前記文字列を構成する複数の文字を、それぞれ、所定のコード体系に従う複数の文字コードに変換し、
前記数値取得ステップでは、各文字コードを構成する各文字コード要素をP進数(Pは2以上の整数)の数値とみなし、前記複数の文字コードから成る文字コード群から、前記n個の数値を取得する、
請求項1記載のコンピュータプログラム。
【請求項4】
前記数値取得ステップでは、前記第二コード群中の複数の要素をそれぞれP進数の数値とみなし、前記複数のP進数の数値をそれぞれ用いた四則演算を行って、前記n個の数値を得る、
請求項1又は3記載のコンピュータプログラム。
【請求項5】
前記数値取得ステップでは、各P進数の数値と変数とを用いた前記四則演算を行い、該変数に、前記複数のP進数の数値のうちの所定番目の数値を代入する、
請求項4記載のコンピュータプログラム。
【請求項6】
登録する情報を第二のコンピュータシステムに送信する第一のコンピュータシステムにおいて、
記憶資源と、
ユーザに固有の第一のコード群を前記記憶資源に記憶する第一コード群記憶手段と、
前記第一のコード群を基に、所定の規則に従って、第二のコード群に変換するコード変換手段と、
前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得る数値取得手段と、
前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する虫食いダミーコード群生成手段と、
前記生成された虫食いダミーコード群を前記記憶資源に記憶する虫食いダミーコード群生成記憶手段と、
前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成する暗号化手段と、
前記暗号化情報を前記第二のコンピュータシステムに送信する送信手段と
を備えるコンピュータシステム。
【請求項7】
登録する情報を第一のコンピュータシステムから受信する第二のコンピュータシステムであって、
記憶資源と、
虫食いダミーコード群とそれに入れられたn文字の漏洩防止対象情報とで構成される暗号化情報を第一のコンピュータシステムから受信する受信手段と、
前記受信した暗号化情報を所定の記憶装置に登録する登録手段と、
ユーザに固有の第一のコード群を前記記憶資源に記憶する第一コード群記憶手段と、
前記第一のコード群を、所定の規則に従って、第二のコード群に変換するコード変換手段と、
前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得る数値取得手段と、
前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成する虫食いダミーコード群手段と、
前記生成された虫食いダミーコード群を前記記憶資源に記憶する虫食いダミーコード群記憶手段と、
前記受信した暗号化情報から、前記生成された虫食いダミーコード群のn個の空白にそれぞれ対応する位置に存在するn文字の漏洩防止対象情報を特定することにより、該n文字の漏洩防止対象情報を復号する復号手段と
を備えるコンピュータシステム。
【請求項8】
前記第一のコンピュータシステムが、請求項6記載のコンピュータシステムであり、
前記第一のコンピュータシステムの記憶資源から所定のタイミングで前記虫食いダミーコード群を消去させる消去手段、
を更に備えた請求項7記載のコンピュータシステム。
【請求項9】
前記コード変換手段、前記数値取得手段及び前記虫食いダミーコード群生成手段とで構成されたコンピュータプログラムを前記第一のコンピュータシステムにダウンロードすることにより前記第一のコンピュータシステムの記憶資源に記憶させるダウンロード手段、
を更に備え、
前記消去手段が、前記所定のタイミングで前記コンピュータプログラムも消去させる、
請求項8記載のコンピュータシステム。
【請求項10】
第一のコンピュータシステムが、ユーザに固有の第一コード群を、前記第一のコンピュータシステムの第一の記憶資源に記憶するステップと、
前記第一のコンピュータシステムが、前記第一のコード群を、所定の規則に従って、第二のコード群に変換するステップと、
前記第一のコンピュータシステムが、前記第二のコード群から、漏洩防止対象情報の文字数n(nは2以上の整数)と同数の数値を得るステップと、
前記第一のコンピュータシステムが、前記取得されたn個の数値からそれぞれ求まる位置に配置されたn個の空白と、それ以外の位置に配置されたダミーコードとから成る虫食いダミーコード群を生成するステップと、
前記第一のコンピュータシステムが、前記n個の空白に、それぞれ、前記n文字から成る漏洩防止対象情報を入れることにより、前記虫食いダミーコード群とそれに入れられた前記n文字の漏洩防止対象情報とで構成される暗号化情報を生成するステップと、
前記第一のコンピュータシステムが、前記暗号化情報を第二のコンピュータシステムに送信するステップと、
前記第二のコンピュータシステムが、前記第一のコンピュータシステムから前記暗号化情報を受信するステップと、
前記第二のコンピュータシステムが、前記受信した暗号化情報を所定の記憶装置に登録するステップと
を有する情報漏洩防止方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−28695(P2008−28695A)
【公開日】平成20年2月7日(2008.2.7)
【国際特許分類】
【出願番号】特願2006−198950(P2006−198950)
【出願日】平成18年7月21日(2006.7.21)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】