説明

暗号化および復号化のためのシステムおよび方法

【課題】少なくとも三者間で情報をやり取りする場合に利用可能な、セキュアなデータ通信のための暗号化および復号化のためのシステムおよび方法を提供する。
【解決手段】本システムは、ネットワーク接続されている第1〜第3のコンピュータ間で所定の情報を暗号化して送受信する。第1のコンピュータは、予め定められた情報から変換アルゴリズムに従って生成した変換後情報と、所定のアルゴリズムで生成したチェックデジットとからスクランブルコードを生成する。第2のコンピュータは、少なくともスクランブルコード、本人識別情報、および購入金額の値を第3のコンピュータに送信する。第3のコンピュータは、逆変換アルゴリズムに従ってスクランブルコードを解読し、所定の判定を行う。この判定は、チェックデジットおよび本人識別情報が一致するか、および購入金額が利用可能金額以下であるかを判定して行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュアなデータ通信のための暗号化および復号化のためのシステムおよび方法に関する。より詳細には、本発明は、購入者本人を確認するための暗号化された情報を送信し、受信側でその情報を復号化することによって、セキュアなデータ通信を実現するシステムおよび方法に関する。
【背景技術】
【0002】
近年、インターネットなどのネットワークを利用して各種契約・決済を行う取引形態である電子商取引が広まっている。このうち、企業・消費者間の取引は「BtoC(Business to Consumer)」と呼ばれているが、消費者から企業に対しては個人のプライバシーに関わる情報やクレジットカード番号など、第三者に情報漏えいが起こった場合に被害の大きい情報がやり取りされている。かかる場合のセキュリティ対策として、各種暗号技術が採用されている。
各種暗号技術としては、例えば、対称暗号、メッセージ認証コード、公開鍵暗号、デジタル署名、擬似乱数生成器、SSL/TLSなどが従来から知られている(非特許文献1参照)。このうち、SSL/TLSは、インターネット上で情報を暗号化して送受信するプロトコルの一つであり、最も利用頻度の高い暗号技術である。なお、SSL/TLSは、公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数などのセキュリティ技術を組み合わせ、データの盗聴や改ざん、なりすましを防ぐためのプロトコルである。
【0003】
一方、金融機関が提供する預金商品の一つに、所定の用途に使用する場合に所定の特典が受けられる提携特典付預金などがある。このような預金商品で得られる特典が付与されて当該金融機関の提携企業からサービスの提供を受ける場合、契約者、当該金融機関、当該提携企業の間で情報のやり取りをしなければならない。このような情報のやり取りにおいても、第三者への情報漏えいを防止する必要があり、ネットワーク上で情報をやり取りする場合には上記のようなセキュリティ技術を採用することが必須となる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】結城 浩著、「新版 暗号技術入門」ソフトバンククリエイティブ株式会社、2008年11月、p.48-368
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記のセキュリティ技術を使用したとしても、必要な情報を全て関係者間で送受信した場合には、暗号が解読されて情報が漏えいする虞がある。このため、必要な情報を関係者間で全てやり取りしなくても、関係者がやり取りした情報をもとに必要な情報を導き出せるような仕組みが求められており、また、関係者間でやり取りする情報が仮に漏えいしたとしても、漏えいした情報だけでは全く意味をなさないようにする仕組みも求められている。
【0006】
本発明は、このような問題に鑑みてなされたもので、少なくとも三者間で情報をやり取りする場合に従来のセキュリティ技術と併せて利用可能な、セキュアなデータ通信のための暗号化および復号化のためのシステムおよびそのための方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明に係るシステムは、ネットワーク経由で相互接続されている第1、第2、および第3のコンピュータ間で予め定められた情報を暗号化して送受信するシステムであって、第1のコンピュータは、第2のコンピュータからの要求に応答して、前記予め定められた情報を所定の順序で配列し、変換前情報を生成する手段と、前記変換前情報に基づいて第1のチェックデジットを算出する手段と、nが整数である、n個の変換アルゴリズムを格納する変換アルゴリズム格納手段と、前記変換アルゴリズム格納手段から一つの変換アルゴリズムを読み出す手段と、変換アルゴリズムを読み出せた場合に、該変換アルゴリズムにしたがって前記変換前情報から変換後情報を生成する変換手段と、前記変換アルゴリズム格納手段からn個の変換アルゴリズムを全て読み出すまで、前記読み出す手段と、前記変換手段とを繰り返し動作させる手段であって、生成された変換後情報が次の繰り返し動作時に変換前情報として扱われ、前記n個の変換アルゴリズムによる変換がすべて終わった段階で生成される変換後情報に第1のチェックデジットを付加してスクランブルコードを生成する手段と、前記スクランブルコードを第2のコンピュータに送信する手段を備え、第2のコンピュータは、少なくとも前記スクランブルコード、本人識別情報、および購入金額の値を含む購入申込データを第3のコンピュータに送信する手段を備え、第3のコンピュータは、第2のコンピュータから受信した前記スクランブルコードのうち前記第1のチェックデジット以外のデータを抽出し、第2の変換前情報を生成する手段と、nが整数である、n個の逆変換アルゴリズムを格納する逆変換アルゴリズム格納手段であって、該逆変換アルゴリズムは前記変換アルゴリズムと1対1に対応付けられる、逆変換アルゴリズム格納手段と、前記逆変換アルゴリズム格納手段から一つの逆変換アルゴリズムを読み出す手段と、逆変換アルゴリズムを読み出せた場合に、該逆変換アルゴリズムにしたがって前記第2の変換前情報から第2の変換後情報を生成する逆変換手段と、前記逆変換アルゴリズム格納手段からn個の逆変換アルゴリズムを全て読み出すまで、前記読み出す手段と、前記逆変換手段とを繰り返し動作させる手段であって、生成された第2の変換後情報が次の繰り返し動作時に第2の変換前情報として扱われる、手段と、最終的に生成された第2の変換後情報に基づいて第2のチェックデジットを算出する手段と、判定手段であって、前記第1のチェックデジットと前記第2のチェックデジットとが一致するか否かを判定し、前記最終的に生成された第2の変換後情報に含まれる本人識別情報と第2のコンピュータから受信した本人識別情報とが一致するか否かを判定し、第2のコンピュータから受信した購入金額の値が、前記最終的に生成された第2の変換後情報に含まれる申込条件を示す値以下であるか否かを判定する、判定手段とを備えたことを特徴する。
【0008】
また、本発明に係る方法は、ネットワーク経由で相互接続されている第1、第2、および第3のコンピュータ間で予め定められた情報を暗号化して送受信する方法であって、第1のコンピュータが、第2のコンピュータからの要求に応答して、前記予め定められた情報を所定の順序で配列し、変換前情報を生成するステップと、前記変換前情報に基づいて第1のチェックデジットを算出するステップと、nが整数である、n個の変換アルゴリズムを格納する変換アルゴリズム格納手段から一つの変換アルゴリズムを読み出すステップと、変換アルゴリズムを読み出せた場合に、該変換アルゴリズムにしたがって前記変換前情報から変換後情報を生成する変換ステップと、前記変換アルゴリズム格納手段からn個の変換アルゴリズムを全て読み出すまで、前記読み出すステップと、前記変換ステップとを繰り返し動作させるステップであって、生成された変換後情報が次の繰り返し動作時に変換前情報として扱われ、前記n個の変換アルゴリズムによる変換がすべて終わった段階で生成される変換後情報に第1のチェックデジットを付加してスクランブルコードを生成するステップと、前記スクランブルコードを第2のコンピュータに送信するステップを実行し、第2のコンピュータが、少なくとも前記スクランブルコード、本人識別情報、および購入金額の値を含む購入申込データを第3のコンピュータに送信するステップを実行し、第3のコンピュータが、第2のコンピュータから受信した前記スクランブルコードのうち前記第1のチェックデジット以外のデータを抽出し、第2の変換前情報を生成するステップと、nが整数である、n個の逆変換アルゴリズムを格納する逆変換アルゴリズム格納手段から一つの逆変換アルゴリズムを読み出すステップであって、該逆変換アルゴリズムは前記変換アルゴリズムと1対1に対応付けられる、ステップと、逆変換アルゴリズムを読み出せた場合に、該逆変換アルゴリズムにしたがって前記第2の変換前情報から第2の変換後情報を生成する逆変換ステップと、前記逆変換アルゴリズム格納手段からn個の逆変換アルゴリズムを全て読み出すまで、前記読み出すステップと、前記逆変換ステップとを繰り返し動作させるステップであって、生成された第2の変換後情報が次の繰り返し動作時に第2の変換前情報として扱われる、ステップと、最終的に生成された第2の変換後情報に基づいて第2のチェックデジットを算出するステップと、判定ステップであって、前記第1のチェックデジットと前記第2のチェックデジットとが一致するか否かを判定し、前記最終的に生成された第2の変換後情報に含まれる本人識別情報と第2のコンピュータから受信した本人識別情報とが一致するか否かを判定し、第2のコンピュータから受信した購入金額の値が、前記最終的に生成された第2の変換後情報に含まれる申込条件を示す値以下であるか否かを判定する、判定ステップとを実行することを特徴する。
【発明の効果】
【0009】
本発明は、少なくとも三者間で情報をやり取りする場合に従来のセキュリティ技術と併せて利用可能な、セキュアなデータ通信のための暗号化および復号化のためのシステムおよびそのための方法を提供できる。
【図面の簡単な説明】
【0010】
【図1】本発明に係る、顧客A、銀行B、提携企業Cの三者間で行われるデータ処理およびデータのやり取りの概念を示す全体図である。
【図2】本発明に係る生成システムのハードウェア構成を示す図である。
【図3】本発明に係る解読システムのハードウェア構成を示す図である。
【図4】本発明に係る生成システムの機能ブロックの構成を示す図である。
【図5】本発明に係る解読システムの機能ブロックの構成を示す図である。
【図6】本発明に係る暗号化の処理フローを示す図である。
【図7】本発明に係る復号化の処理フローを示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について詳細に説明する。以下の説明では、本発明を理解しやすくするため、顧客A、銀行B、提携企業Cの三者を登場させ、顧客Aが、銀行Bが提供する提携特典付預金を、特典が付与されて提携企業Cによって提供されるサービスを購入するために使用するケースを用いて説明する。
【0012】
また、提携企業Cが顧客Aに提供するサービスは必ずしも全ての処理がネットワーク上で完結するものばかりではない。そのため、顧客A、銀行B、提携企業Cの三者間で行われるデータのやり取りは全てがネットワーク上でやり取りされるわけではなく、一部に郵送などの手段が含まれることもある。しかしながら、本発明の要旨となる部分は、すべてコンピュータによって実行されることに留意されたい。
【0013】
なお、本明細書において使用する「スクランブルコード」とは、所定の英数字データに対して予め定められたアルゴリズムにしたがってデータの置換および並べ替えを所定の回数行った結果生成される意味の無い英数字データ、つまり、「スクランブルされたデータ(scrambled data)」のことをいう。異なる所定の英数字データから同一のスクランブルコードを生成することは非常に困難であるため、本発明では、スクランブルコードを顧客A、銀行B、提携企業Cの三者間で送受信される、適切にサービスを受けるための識別子として説明する。
【0014】
図1は、顧客A、銀行B、提携企業Cの三者間で行われるデータ処理およびデータのやり取りの概念を示す全体図である。この全体図の流れを説明すると図1の(1)〜(4)の順番で手続きが進んでいく。
(1)まず、顧客Aは銀行Bが提供する提携特典付預金の申し込みをする。この申し込みの際に、顧客Aは当該金融機関の提携企業を選択する。また、提携企業Cのサービスを将来的に利用するため、提携企業Cが顧客Aの指定する口座から購入代金を引き落とすための口座振替契約もあわせて締結する。銀行Bは、この段階で顧客Aの本人識別情報、申込条件、提携企業などの情報を勘定系システム110に登録しておく。
(2)所定の期間経過(例えば、預金の満期到来)後、顧客Aは銀行Bに対して提携特典付預金の解約申し込みを行う。銀行Bでは解約に必要な手続きをするとともに、予め定められたアルゴリズムに従ってスクランブルコードを生成して顧客Aに通知する。この通知はインターネットバンキングのサービスなどネットワーク経由で行うことができる。
(3)顧客Aは通知されたスクランブルコードとともに所定の情報(例えば、購入する商品またはサービスの名前、購入金額、本人識別情報)を顧客Aが選択した提携企業(提携企業C)に対して送信する。顧客Aは提携企業Cが提供するウェブサイトを利用して情報を入力・送信することもできる。
(4)提携企業Cは顧客Aから受け取ったスクランブルコードを予め定められたアルゴリズムに従って解読する。このアルゴリズムは銀行Bと提携企業Cの間で予め定められたものであり、両者がそれぞれ当該アルゴリズムの情報を保有している。提携企業Cは、解読結果に基づいて銀行Bに対して口座引き落としの手続きをするとともに、顧客Aに対してサービスを提供する。
【0015】
図2は、本発明に係るスクランブルコード生成システム100のハードウェア構成を示す図である。生成システム100は、その内部に制御部101、主記憶部102、補助記憶部103、入力部104、および出力部105を有する。各構成要素はバスなどで相互に接続されており、制御部101によって各構成要素102〜105は統括して制御される。また、生成システム100は、インターフェース(I/F)106およびネットワーク107経由で勘定系システム110と接続されている。
【0016】
制御部101は、中央処理装置(CPU)とも呼ばれ、各構成要素102〜105の制御やデータの演算を行い、また、補助記憶部103に格納されている各種プログラムを主記憶部102に読み出して実行する。主記憶部102は、メインメモリとも呼ばれ、勘定系システム110から受信した各種データ、並びにコンピュータ実行可能な命令および当該命令による演算処理後のデータなどを記憶する。補助記憶部103は、ハードディスク(HDD)などに代表される記憶装置であり、データやプログラムを長期的に保存する。
【0017】
入力部104は、ネットワーク107経由で勘定系システム110から受信したデータを、生成システム100に入力する。入力されたデータは主記憶部102に一時的に記憶される。また、入力部104は、システムオペレータより各種コマンドや入力データ(各種マスタ、テーブルなど)を受け付けるインターフェース(入力画面などのアプリケーションプログラム)を提供する。また、出力部105は、生成システム100によって生成されるスクランブルコードを勘定系システム110に送信し、生成システム100によって処理されたデータを表示する表示画面も提供する。
【0018】
勘定系システム110は、銀行Bが提供する提携特典付預金に関するデータを保持している。図1で説明したように顧客Aから解約申込を受け付けると、勘定系システム110は顧客Aの提携特典付預金に関するデータを生成システム100に送信する。送信されるデータは、後述するように生成システム100においてスクランブルコードを生成するための元情報として使用される。なお、元情報のフォーマット情報は、後述するようにデータフォーマット411、511に格納されている。
【0019】
図3は、本発明に係るスクランブルコード解読システム200のハードウェア構成を示す図である。解読システム200は、その内部に制御部201、主記憶部202、補助記憶部203、入力部204、および出力部205を有する。図2同様、各構成要素はバスなどで相互に接続されており、制御部201によって各構成要素202〜205は統括して制御される。また、解読システム200は、インターフェース(I/F)206およびネットワーク207経由で外部と接続されている。ネットワーク207は、インターネットなどの公衆回線や特定の企業との間で開設した専用回線とすることができる。
【0020】
図2同様、制御部201は、中央処理装置(CPU)とも呼ばれ、各構成要素202〜205の制御やデータの演算を行い、また、補助記憶部203に格納されている各種プログラムを主記憶部202に読み出して実行する。主記憶部202は、メインメモリとも呼ばれ、外部から受信した各種データ、並びにコンピュータ実行可能な命令および当該命令による演算処理後のデータなどを記憶する。補助記憶部203は、ハードディスク(HDD)などに代表される記憶装置であり、データやプログラムを長期的に保存する。
【0021】
入力部204は、ネットワーク207経由で外部から受信したデータ(例えば、銀行Bから受信する各種フォーマットデータ)を、解読システム200に入力する。入力されたデータは主記憶部202に一時的に記憶される。また、入力部204は、システムオペレータより各種コマンドや入力データ(各種マスタ、テーブルなど)を受け付けるインターフェース(入力画面などのアプリケーションプログラム)を提供する。また、出力部205は、解読システム200によって処理されたデータを表示する表示画面も提供する。
【0022】
図4は、本発明に係る生成システム100の機能ブロックの構成を示す図である。図4に示すように、生成システム100は、データ受信部401、チェックデジット生成部402、変換部403、出力部404、変換アルゴリズムマスタ410、およびデータフォーマット411を備える。
【0023】
データ受信部401は、解約申込された顧客Aの提携特典付預金に係るデータをスクランブルコードを生成するための元情報として勘定系システム110から受信する。当該元情報は、少なくとも、
(1)本人識別情報
(2)申込条件
(3)提携企業コード
を含む。
【0024】
申込条件としては、顧客Aが提携企業Cのサービスを購入する際に閾値として使用される金額情報(例えば、利用可能金額)、サービスを受けることができる期限を示す日付情報など所定の条件を任意に定めておくことができる。提携企業コードは顧客Aが提携特典付預金の申込をする際に自動的に定まる。
【0025】
データ受信部401は、少なくとも上記(1)〜(3)を含む元情報を読み込む。本実施形態では、読み込まれたデータは英数字データからなるシーケンスとなるが、記号(例えば、#や&など)を含めることも可能である。なお、この段階で生成されたシーケンスに対し所定の演算処理を行うことも可能である。
【0026】
チェックデジット生成部402は、解読システム200において復元したデータのシーケンスが正しいか否かを検証するためのチェックデジットを生成する。チェックデジット自体は上記元情報から所定のアルゴリズムにしたがって生成することができ、特定のアルゴリズムに限定されることはない。また、チェックデジットは、検証用として使用できればよいので、その桁数なども限定されることはない。なお、後述するように、生成システム100および解読システム200は、同一のチェックデジット算出用のアルゴリズムを使用する。
【0027】
変換アルゴリズムマスタ410は、本発明に係る生成システム100において使用される変換アルゴリズムを提携企業別に格納するマスタである。本発明において、各提携企業はn個(nは整数)の変換アルゴリズムを使用することができる。このため、変換アルゴリズムマスタ410は、提携企業Cについてはn個の変換アルゴリズムを格納する。また、このn個の変換アルゴリズムは使用される順番が予め定められているものとする。なお、提携企業ごとに使用する変換アルゴリズムの数およびアルゴリズム自体が変わりうることは理解されよう。
【0028】
変換部403は、変換アルゴリズムマスタ410から提携企業Cが使用する変換アルゴリズムを一つずつ順番に読み出し、入力データを読み出した変換アルゴリズムにしたがって変換して出力データを生成する。また、変換部403は、提携企業Cがn個の変換パターンを使用する場合、次の変換アルゴリズムを変換アルゴリズムマスタ410から読み出し、生成した出力データを入力データとしてさらに変換する処理を行う。このように、変換部403は、それぞれの提携企業が予め定めたn個の変換アルゴリズムをすべて使用して変換処理を行っていく。
【0029】
変換部403は、最終的に生成された出力コードにチェックデジットを所定の位置に付加することによってスクランブルコードを生成する。スクランブルコードにおけるチェックデジットの位置は提携企業Cごとに予め定めてあり、その位置はデータフォーマット411に格納されているフォーマット情報によって知ることができる。
【0030】
なお、変換アルゴリズムは、元情報である英数字のシーケンスの各々の文字を所定の文字に置換したり、各々の文字の順番を入れ替えたり、特定のルールにしたがって変換したりするためのアルゴリズムであり、一つ一つのアルゴリズム自体は周知のものである。
【0031】
出力部404は、生成されたスクランブルコードを勘定系システム110に送信するとともに、顧客Aに対して通知する。勘定系システム110に送信されたスクランブルコードは顧客Aの提携特典付預金の口座データに関連付けて記憶される。
【0032】
データフォーマット411は、スクランブルコードを生成するための元情報、即ち、勘定系システム110から受信する提携特典付預金に係るデータのフォーマット情報と、生成システム100によって生成されるスクランブルコードのフォーマット情報とを格納するデータベースである。スクランブルコード自体はそのまま見ても特に意味のある英数字データのシーケンスではないが、これらのフォーマット情報によって、元情報およびスクランブルコードのうちのどの位置にある情報がどのような情報を示すのかを把握することが可能となる。
【0033】
図5は、本発明に係る解読システム200の機能ブロックの構成を示す図である。図5に示すように、解読システム200は、受信・抽出部501、逆変換部502、チェックデジット計算部503、判定部504、出力部505、逆変換アルゴリズムマスタ510、およびデータフォーマット511を備える。
【0034】
受信・抽出部501は、解読システム200が外部から受信したスクランブルコードを受信して、チェックデジット以外のスクランブルコードを抽出する。スクランブルコードにおけるチェックデジットの位置は、提携企業Cごとに予め定めてあり、そのフォーマット情報はデータフォーマット511に格納されている。
【0035】
逆変換アルゴリズムマスタ510は、本発明に係る解読システム200において使用される逆変換アルゴリズムを格納するマスタである。本発明においては、提携企業Cはn個(nは整数)の逆変換アルゴリズムを使用することができる。この逆変換アルゴリズムは、変換アルゴリズムマスタ410に格納されている変換アルゴリズムと対応付けられるものであり、ある変換アルゴリズムによって変換された英数字データを元に戻すために使用される。例えば、変換アルゴリズムマスタ410のある変換アルゴリズムがデータAをデータBに変換する場合に、逆変換アルゴリズムマスタ510の対応付けられる逆変換アルゴリズムはデータBをデータAに変換する。なお、変換アルゴリズムマスタ410は、提携企業毎の変換パターンを格納するが、逆変換アルゴリズムマスタ510は当該提携企業が使用する変換パターンのみ格納する。
【0036】
逆変換部502は、逆変換アルゴリズムマスタ510から一つずつ逆変換アルゴリズムを読み出し、受信・抽出部501によって抽出されたチェックデジット以外のスクランブルコードに対して当該逆変換アルゴリズムにしたがって逆変換処理を行う。ここで、逆変換アルゴリズムマスタ510から読み出す順番は、変換部403によって読み出された変換アルゴリズムとは逆の順序となることに留意されたい。例えば、変換部403が変換アルゴリズムをa→b→・・・→nの順序で変換処理を行った場合、逆変換部502は逆変換アルゴリズムn´→・・・→b´→a´の順序で逆変換処理を行う。上述したように、変換アルゴリズムaは逆変換アルゴリズムa´に対応付けられている。
【0037】
逆変換部502は、逆変換アルゴリズムマスタ510に格納されている全ての逆変換アルゴリズムを用いて逆変換処理を行う。この結果、生成システム100がスクランブルコードを生成するのに使用した元情報と同じ英数字データが最終データとして得られるはずである。
【0038】
チェックデジット計算部503は、逆変換部502によって生成された最終データに基づいてチェックデジットを計算する。チェックデジット計算用のアルゴリズムは、生成システム100において使用されたものと同じアルゴリズムである。
【0039】
判定部504は、逆変換部502によって生成された最終データとチェックデジット計算部503によって計算されたチェックデジットに基づいて、顧客Aからの申込が所定の要件を満たすか否かを判定する。以下、所定の要件の一例を説明する。
【0040】
判定部504は、スクランブルコードの所定の位置のチェックデジットとチェックデジット計算部503によって計算されたチェックデジットが同一か否かを判定する。スクランブルコードに含まれるチェックデジットの位置は、データフォーマット511に格納されているフォーマット情報によって知ることができる。この判定は、逆変換部502によって生成された最終データが、生成システム100が元々処理した元情報に等しいか否かを判定するために行う。
【0041】
また、判定部504は、顧客Aから受信した購入金額の情報と逆変換部502によって生成された最終データの所定の位置に含まれる金額情報(例えば、利用可能額)との大小比較を行い、顧客Aが提携企業Cのサービスを購入可能か否か判定する。
【0042】
また、判定部504は、顧客Aから受信した本人識別情報と、逆変換部502によって生成された最終データの所定の位置に含まれる本人識別情報とを比較し、顧客Aが本人であるか否かを判定する。最終データの含まれる本人識別情報の位置は、データフォーマット511に格納されているフォーマット情報によって知ることができる。
【0043】
出力部505は、判定部504によって顧客Aからのサービスの購入申込が所定の条件を満たすと判定された場合に、銀行Bに対して口座引き落とし要求を行う。なお、この口座引き落とし要求が正常に完了したことを提携企業Cが確認した後、顧客Aが申し込んだサービスの提供が行われることになる。
【0044】
データフォーマット511は、銀行Bから受信したスクランブルコードを生成するための元情報、即ち、提携特典付預金に係るデータのフォーマット情報と、スクランブルコードのフォーマット情報とを格納するデータベースである。上述したように、当該元情報と逆変換部502によって生成される最終データは同じフォーマットとなるはずである。格納されているフォーマット情報は、データフォーマット411に格納されている当該提携企業用のフォーマット情報と一致している。なお、データフォーマット411は、銀行B内の生成システム100が有しているため提携企業ごとにフォーマット情報が格納されているのに対し、データフォーマット511は、提携企業C内の解読システム200が有しているため当該提携企業Cのフォーマット情報だけが格納されている点で異なる。
【0045】
図6は、本発明に係る暗号化(スクランブルコードの生成)を詳細に説明するための処理フロー図である。暗号化の処理は、銀行B内のスクランブルコード生成システム100において実施される。
【0046】
本発明に係る生成システム100よって生成されるスクランブルコードの元情報は、少なくとも
(1)本人識別情報
(2)申込条件
(3)提携企業コード
を含んでいる。以下、スクランブルコードを生成する処理を詳細に説明する。
【0047】
ステップS601において、データ受信部401は、勘定系システム110から予め受信してある元情報のデータを読み込む。読み込まれたデータは、データフォーマット411に格納されている元情報のフォーマットにしたがって並べられ、英数字データのシーケンスとなる。なお、この段階で生成されたシーケンスに対し所定の演算処理を行うことも可能である。
【0048】
ステップS602において、チェックデジット生成部402は、英数字データのシーケンスに基づいて復元した数値の並びの正しさを検証するためのチェックデジットを生成する。上述したように、チェックデジット自体は元情報から所定のアルゴリズムにしたがって生成することができる。また、チェックデジットは、検証用として使用できればよいので、その桁数なども限定されることはない。
【0049】
ステップS603において、変換部403は、変換アルゴリズムマスタ410から提携企業Cの変換アルゴリズムを予め定められた順番にしたがって読み出す。どの企業の変換アルゴリズムを読み出すかは、英数字データのシーケンスの所定の位置に格納されている提携企業コードの情報に基づく。変換アルゴリズムが読み出せた場合はステップS604に処理が進み、読み出せなかった場合はステップS605に処理が進む。
【0050】
ステップS604において、変換部403はステップS603で読み出した変換アルゴリズムを用いて入力データ(最初の変換処理時は、上記英数字データのシーケンス)に対して変換処理を行い、出力データが生成される。その後、ステップS603に処理が戻り、再び変換アルゴリズムを読み出せた場合は、当該出力データが入力データとなり変換部403変換処理を繰り返し行う。
【0051】
ステップS605において、変換部403は最終的に生成された出力データにステップS602で生成されたチェックデジットを付加することにより、スクランブルコードを生成する。チェックデジットを付加する位置はデータフォーマット411に格納されているスクランブルコードのフォーマット情報によって予め定まっている。
【0052】
最後に、ステップS606において、出力部404は生成されたスクランブルコードを顧客Aにネットワーク経由で送信するととともに、勘定系システム110に送信する。勘定系システム110は受信したスクランブルコードを顧客Aの提携特典付預金の口座データに関連付けてハードディスクなどの記憶媒体に記憶しておく。なお、スクランブルコードを顧客Aに通知する手段は特に限定されない。
【0053】
図7は、本発明に係る復号化(スクランブルコードの解読)を詳細に説明するための処理フロー図である。復号化の処理は、提携企業C内のスクランブルコード解読システム200において実施される。
【0054】
ステップS701において、解読システム200は顧客Aからネットワーク経由で顧客Aが購入を希望する特定のサービスの情報(購入金額情報含む)および本人識別情報とともにスクランブルコードを受信する。かかる場合、提携企業Cが開設するウェブサイトのサービス経由で受信することも可能である。
【0055】
ステップS702において、受信・抽出部501は受信したスクランブルコードのうちチェックデジット以外のデータを抽出する。スクランブルコードにおけるチェックデジットの位置は、データフォーマット511に格納されているスクランブルコードのフォーマット情報に基づく。
【0056】
ステップS703において、逆変換部502は逆変換アルゴリズムマスタ510から逆変換アルゴリズムを読み出す。上述したように、変換アルゴリズムマスタ410および逆変換アルゴリズムマスタ510に格納されている変換アルゴリズムおよび逆変換アルゴリズムはそれぞれ対応付けられており、それぞれ読み出される順番も定まっている。逆変換アルゴリズムを読み出せた場合にはステップS704に処理が進み、読み出せなかった場合にはステップS705に処理が進む。
【0057】
ステップS704において、逆変換部502は、入力データ(最初の逆変換処理時はステップS702において抽出されたデータ)に対して、読み出した逆変換アルゴリズムにしたがって変換処理を行い、出力データを生成する。その後、ステップS703に処理が戻り、再び逆変換アルゴリズムを読み出せた場合は、ステップS704において逆変換部502は、当該出力データを入力データとして逆変換処理を行う。
【0058】
ステップS705において、チェックデジット計算部505は、ステップS704において最終的に生成された出力データを元にしてチェックデジットを計算する。チェックデジットは最終的に生成された出力データが間違いないか否かを検証するために使用される。また、チェックデジットを計算するアルゴリズムは、生成システム100において使用されるアルゴリズムと共通である。
【0059】
ステップS706において、判定部504は、ステップS704において最終的に生成された出力データに含まれる情報が所定の要件を満たすか否かを判定する。なお、当該出力データは、スクランブルコードを生成した元情報と同一であると想定されるので、データフォーマット511に格納されているフォーマット情報にしたがってそれぞれの情報の位置を特定する。以下、このステップで行われる判定について詳細に説明する。
【0060】
判定部504は、当該出力データに含まれている本人識別情報と、顧客Aからネットワーク経由で受信した本人識別情報とが一致するか否か判定する。この判定は、顧客Aが確かに本人であることを確認するために行われる。上述したように、銀行Bにある生成システム100によって生成されるスクランブルコードは、その元情報として本人識別情報を含んでいる。そして、顧客Aは、提携企業Cに対してサービスの購入申込をする際、本人識別情報を送信している。したがって、両者を比較して一致している場合には顧客Aが銀行Bによって提供される提携特典付預金の契約者であることを確認することができる。
【0061】
また、判定部504は、ステップS705で計算したチェックデジットと、ステップS701で受信したスクランブルコードに含まれるチェックデジットとが一致するか否かを判定する。上述したように、スクランブルコードに含まれるチェックデジットは、生成システム100によって生成されたものである。生成システム100および解読システム200は、同一のチェックデジット算出アルゴリズムを使用しているので、スクランブルコードが途中で改ざんされていない限りは、両者は一致するはずである。一致する場合には、当該出力データとシステム100においてスクランブルコードを生成した元データとが同一であることが確認できる。
【0062】
また、判定部504は、顧客Aからネットワーク経由で受信した購入金額情報と当該出力データに含まれている金額情報(例えば、利用可能額)とを比較する。そして、判定部504は、購入金額が利用可能額以下であるか否かを判定する。金額情報が当該出力データのうちのどのデータに該当するかは、データフォーマット511に格納されているフォーマット情報から得ることができる。顧客Aが送信した購入金額の値が当該出力データに含まれている金額情報以下である場合には、顧客Aは提携企業Cからサービスを購入することができることとなる。一方、購入金額の値の方が大きくなってしまう場合には顧客Aは提携企業Cからサービスを購入することができない。
【0063】
さらに、判定部504は、当該出力データに含まれている日付情報が予め定められた期間内に存在するか否かを判定する。この判定は、顧客Aが銀行Bにおいて提携特典付預金を解約してから所定の期間内に提携企業Cでサービス購入の申込をしたか否かを判定するために行う。
【0064】
なお、上記で説明した判定部504が行う判定処理の内容については、これ以外の要件を課すこともできる。すなわち、スクランブルコードを生成する元情報と顧客Aが提携企業Cに送信する情報を任意に選択することによって新たに要件を課すこともできる。これらの一連の判定処理で全ての要件を満たす場合にはステップS708に処理が進み、一つでも満たさない場合にはステップS707に処理が進む。
【0065】
ステップS707では、解読システム200は、顧客Aからのサービスの購入申込データとともに要件を満たさなかった要件を出力部505によってリスト出力し、顧客Aにエラー発生の事実としてネットワーク経由で通知する。
【0066】
ステップS708では、提携企業Cは銀行Bに対してオンラインで購入金額の口座引き落とし要求を送信する。口座引き落としが確認できた後、提携企業Cは顧客Aに対してサービスの提供を行うことができる。
【0067】
以上、例示的な実施形態を参照しながら本発明の原理を説明したが、本発明の要旨を逸脱することなく、構成および細部において変更する様々な実施形態を実現可能であることを当業者は理解するだろう。
【産業上の利用可能性】
【0068】
本発明は、少なくとも三者間で情報をやり取りする場合に従来のセキュリティ技術と併せて利用可能な、セキュアなデータ通信のための暗号化および復号化のためのシステムおよびそのための方法に利用することができる。
【符号の説明】
【0069】
101、201 制御部
102、202 主記憶部
103、203 補助記憶部
104、204 入力部
105、205 出力部
106、206 インターフェース(I/F)
107、207 ネットワーク
110 勘定系システム
401 データ受信部
402 チェックデジット生成部
403 変換部
404、505 出力部
410 変換アルゴリズムマスタ
411、511 データフォーマット
501 受信・抽出部
502 逆変換部
503 チェックデジット計算部
504 判定部
510 逆変換アルゴリズムマスタ

【特許請求の範囲】
【請求項1】
ネットワーク経由で相互接続されている第1、第2、および第3のコンピュータ間で予め定められた情報を暗号化して送受信するシステムであって、
第1のコンピュータは、
第2のコンピュータからの要求に応答して、前記予め定められた情報を所定の順序で配列し、変換前情報を生成する手段と、
前記変換前情報に基づいて第1のチェックデジットを算出する手段と、
nが整数である、n個の変換アルゴリズムを格納する変換アルゴリズム格納手段と、
前記変換アルゴリズム格納手段から一つの変換アルゴリズムを読み出す手段と、
変換アルゴリズムを読み出せた場合に、該変換アルゴリズムにしたがって前記変換前情報から変換後情報を生成する変換手段と、
前記変換アルゴリズム格納手段からn個の変換アルゴリズムを全て読み出すまで、前記読み出す手段と、前記変換手段とを繰り返し動作させる手段であって、生成された変換後情報が次の繰り返し動作時に変換前情報として扱われ、前記n個の変換アルゴリズムによる変換がすべて終わった段階で生成される変換後情報に第1のチェックデジットを付加してスクランブルコードを生成する手段と、
前記スクランブルコードを第2のコンピュータに送信する手段と
を備え、
第2のコンピュータは、
少なくとも前記スクランブルコード、本人識別情報、および購入金額の値を含む購入申込データを第3のコンピュータに送信する手段
を備え、
第3のコンピュータは、
第2のコンピュータから受信した前記スクランブルコードのうち前記第1のチェックデジット以外のデータを抽出し、第2の変換前情報を生成する手段と、
nが整数である、n個の逆変換アルゴリズムを格納する逆変換アルゴリズム格納手段であって、該逆変換アルゴリズムは前記変換アルゴリズムと1対1に対応付けられる、逆変換アルゴリズム格納手段と、
前記逆変換アルゴリズム格納手段から一つの逆変換アルゴリズムを読み出す手段と、
逆変換アルゴリズムを読み出せた場合に、該逆変換アルゴリズムにしたがって前記第2の変換前情報から第2の変換後情報を生成する逆変換手段と、
前記逆変換アルゴリズム格納手段からn個の逆変換アルゴリズムを全て読み出すまで、前記読み出す手段と、前記逆変換手段とを繰り返し動作させる手段であって、生成された第2の変換後情報が次の繰り返し動作時に第2の変換前情報として扱われる、手段と、
最終的に生成された第2の変換後情報に基づいて第2のチェックデジットを算出する手段と、
判定手段であって、
前記第1のチェックデジットと前記第2のチェックデジットとが一致するか否かを判定し、
前記最終的に生成された第2の変換後情報に含まれる本人識別情報と第2のコンピュータから受信した本人識別情報とが一致するか否かを判定し、
第2のコンピュータから受信した購入金額の値が、前記最終的に生成された第2の変換後情報に含まれる申込条件を示す値以下であるか否かを判定する、
判定手段と
を備えたことを特徴するシステム。
【請求項2】
前記第1のコンピュータは、
前記予め定められた情報を所定の順序で配列するための第1のフォーマットデータ、および前記スクランブルコードに対応付けられる第2のフォーマットデータを格納する第1のフォーマット格納手段
をさらに備え、
前記第3のコンピュータは、
前記最終的に生成された第2の変換後情報に対応付けられる第3のフォーマットデータ、および前記スクランブルコードに対応付けられる前記第2のフォーマットデータを格納する第2のフォーマット格納手段
をさらに備えたことを特徴とする請求項1に記載のシステム。
【請求項3】
1対1に対応付けられる前記変換アルゴリズムと前記逆変換アルゴリズムは、
前記変換アルゴリズムによって第1のデータシーケンスが第2のデータシーケンスに変換され、
前記逆変換アルゴリズムによって前記第2のデータシーケンスが前記第1のデータシーケンスに変換される、
ことを特徴とする請求項1または2に記載のシステム。
【請求項4】
ネットワーク経由で相互接続されている第1、第2、および第3のコンピュータ間で予め定められた情報を暗号化して送受信する方法であって、
第1のコンピュータが、
第2のコンピュータからの要求に応答して、前記予め定められた情報を所定の順序で配列し、変換前情報を生成するステップと、
前記変換前情報に基づいて第1のチェックデジットを算出するステップと、
nが整数である、n個の変換アルゴリズムを格納する変換アルゴリズム格納手段から一つの変換アルゴリズムを読み出すステップと、
変換アルゴリズムを読み出せた場合に、該変換アルゴリズムにしたがって前記変換前情報から変換後情報を生成する変換ステップと、
前記変換アルゴリズム格納手段からn個の変換アルゴリズムを全て読み出すまで、前記読み出すステップと、前記変換ステップとを繰り返し動作させるステップであって、生成された変換後情報が次の繰り返し動作時に変換前情報として扱われ、前記n個の変換アルゴリズムによる変換がすべて終わった段階で生成される変換後情報に第1のチェックデジットを付加してスクランブルコードを生成するステップと、
前記スクランブルコードを第2のコンピュータに送信するステップと
を実行し、
第2のコンピュータが、
少なくとも前記スクランブルコード、本人識別情報、および購入金額の値を含む購入申込データを第3のコンピュータに送信するステップ
を実行し、
第3のコンピュータが、
第2のコンピュータから受信した前記スクランブルコードのうち前記第1のチェックデジット以外のデータを抽出し、第2の変換前情報を生成するステップと、
nが整数である、n個の逆変換アルゴリズムを格納する逆変換アルゴリズム格納手段から一つの逆変換アルゴリズムを読み出すステップであって、該逆変換アルゴリズムは前記変換アルゴリズムと1対1に対応付けられる、ステップと、
逆変換アルゴリズムを読み出せた場合に、該逆変換アルゴリズムにしたがって前記第2の変換前情報から第2の変換後情報を生成する逆変換ステップと、
前記逆変換アルゴリズム格納手段からn個の逆変換アルゴリズムを全て読み出すまで、前記読み出すステップと、前記逆変換ステップとを繰り返し動作させるステップであって、生成された第2の変換後情報が次の繰り返し動作時に第2の変換前情報として扱われる、ステップと、
最終的に生成された第2の変換後情報に基づいて第2のチェックデジットを算出するステップと、
判定ステップであって、
前記第1のチェックデジットと前記第2のチェックデジットとが一致するか否かを判定し、
前記最終的に生成された第2の変換後情報に含まれる本人識別情報と第2のコンピュータから受信した本人識別情報とが一致するか否かを判定し、
第2のコンピュータから受信した購入金額の値が、前記最終的に生成された第2の変換後情報に含まれる申込条件を示す値以下であるか否かを判定する、
判定ステップと
を実行する
ことを特徴する方法。
【請求項5】
前記第1のコンピュータは、
前記予め定められた情報を所定の順序で配列するための第1のフォーマットデータ、および前記スクランブルコードに対応付けられる第2のフォーマットデータを格納する第1のフォーマット格納手段
をさらに備え、
前記第3のコンピュータは、
前記最終的に生成された第2の変換後情報に対応付けられる第3のフォーマットデータ、および前記スクランブルコードに対応付けられる前記第2のフォーマットデータを格納する第2のフォーマット格納手段
をさらに備えたことを特徴とする請求項4に記載の方法。
【請求項6】
1対1に対応付けられる前記変換アルゴリズムと前記逆変換アルゴリズムは、
前記変換アルゴリズムによって第1のデータシーケンスが第2のデータシーケンスに変換され、
前記逆変換アルゴリズムによって前記第2のデータシーケンスが前記第1のデータシーケンスに変換される、
ことを特徴とする請求項4または5に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−49681(P2011−49681A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194628(P2009−194628)
【出願日】平成21年8月25日(2009.8.25)
【出願人】(397077955)株式会社三井住友銀行 (120)
【出願人】(302064762)株式会社日本総合研究所 (367)
【Fターム(参考)】