(57)【要約】  本明細書に開示されたデータ処理装置の文字列暗号化方法は、入力データを取得する段階と、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する段階と、前記暗号文を出力データに変換する段階とを含み、前記変換する段階において前記出力データを構成する出力文字は、前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように変換される方法である。【選択図】図７
2015526757.tif 000002
【特許請求の範囲】
【請求項１】
入力データを取得する段階と、
一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する段階と、
前記暗号文を出力データに変換する段階と、を含み、
前記変換する段階において前記出力データを構成する出力文字は、前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように変換することを特徴とする、データ処理装置の文字列暗号化方法。
【請求項２】
前記変換する段階は、
前記暗号文を１つ以上のブロックに区分する段階と、
前記ブロックに対応する前記出力文字を決定する段階と、
前記出力文字を結合して前記出力データを生成する段階と、を含み、
前記１つ以上のブロックの数は前記出力データの長さに基づいて決定されることを特徴とする、請求項１に記載の暗号化方法。
【請求項３】
前記出力文字を決定する段階は、
前記１つ以上のブロックそれぞれに対応するインデックス（ｉｎｄｅｘ）を計算する段階と、
前記インデックスにより前記入力文字が属する集合から前記出力文字をそれぞれ選択する段階とを含むことを特徴とする、請求項２に記載の暗号化方法。
【請求項４】
前記暗号文を生成する段階において、
前記入力データに対して少なくとも１回以上前記一方向関数が実行されて前記暗号文を生成し、
前記一方向関数は、前記暗号文の長さが、前記ブロックに区分するのに十分であるように繰り返し実行することを特徴とする、請求項１に記載の暗号化方法。
【請求項５】
前記一方向関数は、
前記入力データの全部または一部と、任意のシード（ｓｅｅｄ）を入力することにより実行されることを特徴とする、請求項４に記載の暗号化方法。
【請求項６】
入力データを取得する段階と、
前記入力データに対応する代替情報を取得する段階と、
一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する段階と、
前記暗号文を出力データに変換する段階と、
前記出力データと前記代替情報が同一であるか否かを判断する段階とを含み、
前記変換する段階において前記出力データを構成する出力文字は、前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように変換することを特徴とする、データ処理装置の文字列検証方法。
【請求項７】
少なくとも１回以上乱数生成器を用いて乱数を生成する段階と、
前記乱数を結合することで、暗号文を生成する段階と、
前記暗号文を、特定フォーマット特性を有する出力データに変換する段階とを含み、
前記変換する段階において前記出力データを構成する出力文字は、特定集合から選択され、前記出力データの長さは特定長さになるように変換することを特徴とする、データ処理装置の乱数生成方法。
【請求項８】
前記変換する段階は、
前記暗号文を１つ以上のブロックに区分する段階と、
前記ブロックに対応する前記出力文字を決定する段階と、
前記出力文字を結合して前記出力データを生成する段階とを含み、
前記１つ以上のブロックの数は、前記出力データの長さに基づいて決定されることを特徴とする、請求項７に記載の乱数生成方法。
【請求項９】
前記出力文字を決定する段階は、
前記１つ以上のブロックのそれぞれに対応するインデックス（ｉｎｄｅｘ）を計算する段階と、
前記インデックスにより前記特定集合から前記出力文字をそれぞれ選択する段階と、を含むことを特徴とする、請求項８に記載の乱数生成方法。
【請求項１０】
前記暗号文を生成する段階において、
少なくとも１回以上の前記乱数生成器の実行による乱数を結合することで、前記暗号文を生成し、
前記乱数生成器は、前記暗号文の長さが前記ブロックに区分するのに十分であるように繰り返し実行されることを特徴とする、請求項７に記載の乱数生成方法。
【請求項１１】
入力データを取得する入力部と、
一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する暗号化部と、
前記暗号文を出力データに変換する変換部とを含み、
前記変換部は、前記出力データを構成する出力文字が前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように前記暗号文を変換することを特徴とする、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、特定フォーマットを有する代替データの生成および検証に関する。
【背景技術】
【０００２】
情報保護のための暗号システムは、データ機密性の保障だけでなく、データの無欠性または認証などのサービスを提供する。データの機密性のためには双方向暗号化技術が使用されるが、無欠性、認証などのサービスのためには一方向暗号化技術が使用される。
【０００３】
このような暗号化技術は、デジタル形式のデータのフォーマットを変更させることができる。例えば、数字形態（ｎｕｍｅｒｉｃ  ｔｙｐｅ）の文字列からなる平文（ｐｌａｉｎ  ｔｅｘｔ）をＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のようなブロック暗号アルゴリズムを用いて暗号化する場合、暗号文データ（ｃｙｐｈｅｒ  ｔｅｘｔ）は数字形態以外の文字列を含むことができる。このようなデータフォーマットの変更は一方向暗号化技術においても同一である。
【０００４】
最近では、個人情報の保護を強化する法律または産業界からの要求事項が増加している。個人情報はデータベースにより保存または管理され、通信網を介して送信されることができ、ここで、個人情報は、特定フォーマットで表現されるデータとして扱われる。特に、保護対象となる個人情報を直接扱うより、それに対応する代替情報を保存または送信することで個人情報を保護する方法が提示されている。この場合、個人情報の保護のために単純に一方向または双方向の暗号化技術を適用してデータを処理すると、既に存在しているデータベースまたは通信網は、処理されたデータフォーマットの変更を反映することができない問題が発生する可能性がある。
【０００５】
これに対して、特許文献１は、フォーマットを保存する暗号化および復号化について開示する。ただし、前記特許は双方向に適用されるフォーマット保存の暗号化技術について開示しているが、一方向関数のフォーマット変更問題については言及していない。
【０００６】
また、特許文献２は、代替情報を用いて個人情報を保護するトークンシステムについて開示する。ただし、前記特許文献２は代替情報の使用による個人情報の保護方法について開示しているのみで、代替情報のフォーマット変更問題については言及していない。
【０００７】
したがって、既に存在しているデータ処理システムの設計変更を要求せず、保護対象となる情報に対応する代替データを生成し、検証する方法の必要性が生じている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第７、８６４、９５２号明細書
【特許文献２】米国特許出願公開第２００９／３１０７７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本明細書は、特定フォーマットを有する代替データを生成する方法および装置を提供するためのものである。
【００１０】
また、本明細書は、入力データが示すフォーマットの特性を保存し、前記入力データの代わりに使用できる代替データを生成する方法および装置を提供するためのものである。
【００１１】
また、本明細書は、既に生成された代替データを検証するための方法および装置を提供するためのものである。
【００１２】
また、本明細書は、代替情報の生成において繰り返し一方向関数または乱数生成器を適用することができるようにして、多様な長さのデータに対しても代替情報を使用できるようにする方法および装置を提供するためのものである。
【課題を解決するための手段】
【００１３】
一実施形態として、データ処理装置の文字列暗号化方法が開示される。前記暗号化方法は、入力データを取得する段階と、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する段階と、前記暗号文を出力データに変換する段階とを含む。
【００１４】
前記一実施形態またはその他の実施形態は、次のような特徴のうち、いずれか１つを含む。
【００１５】
前記変換する段階において、前記出力データを構成する出力文字は、前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように変換される可能性がある。
【００１６】
また、前記変換する段階は、前記暗号文を１つ以上のブロックに区分する段階と、前記ブロックに対応する前記出力文字を決定する段階と、前記出力文字を結合して前記出力データを生成する段階とを含み、前記１つ以上のブロックの数は前記出力データの長さに基づいて決定されてもよい。
【００１７】
また、前記出力文字を決定する段階は、前記１つ以上のブロックのそれぞれに対応するインデックス（ｉｎｄｅｘ）を計算する段階と、前記インデックスにより前記入力文字が属する集合から前記出力文字をそれぞれ選択する段階とを含むことができる。
【００１８】
また、前記暗号文を生成する段階において、前記入力データに対して少なくとも１回以上前記一方向関数が実行されて前記暗号文を生成し、前記一方向関数は前記暗号文の長さが前記ブロックに区分するのに十分であるように、繰り返し実行してもよい。また、前記一方向関数は、前記入力データの全部または一部と、任意のシード（ｓｅｅｄ）を入力することで実行するものでもよい。
【００１９】
一方、他の実施形態として、データ処理装置の文字列検証方法が開示される。前記文字列検証方法は、入力データを取得する段階と、前記入力データに対応する代替情報を取得する段階と、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する段階と、前記暗号文を出力データに変換する段階と、前記出力データと前記代替情報が同一であるか否かを判断する段階とを含み、前記変換する段階において前記出力データを構成する出力文字は前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように変換されてもよい。
【００２０】
一方、さらに他の実施形態として、データ処理装置の乱数生成方法が開示される。前記乱数生成方法は、少なくとも１回以上乱数生成器を用いて乱数を生成する段階と、前記乱数を結合することで、暗号文を生成する段階と、前記暗号文を、特定フォーマット特性を有する出力データに変換する段階とを含み、前記変換する段階において、前記出力データを構成する出力文字は、特定集合から選択され、前記出力データの長さは特定長さになるように変換されてもよい。
【００２１】
前記変換する段階は、前記暗号文を１つ以上のブロックに区分する段階と、前記ブロックに対応する前記出力文字を決定する段階と、前記出力文字を結合して前記出力データを生成する段階とを含み、前記１つ以上のブロックの数は、前記出力データの長さに基づいて決定されてもよい。また、前記出力文字を決定する段階は、前記１つ以上のブロックのそれぞれに対応するインデックス（ｉｎｄｅｘ）を計算する段階と、前記インデックスにより前記特定集合から前記出力文字をそれぞれ選択する段階とを含むことができる。また、前記暗号文を生成する段階において、少なくとも１回以上の前記乱数生成器実行による乱数を結合することで、前記暗号文を生成し、前記乱数生成器は前記暗号文の長さが前記ブロックに区分するのに十分であるように繰り返し実行されてもよい。
【００２２】
一方、さらに他の実施形態としてデータ処理装置が開示される。前記データ処理装置は、入力データを取得する入力部と、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する暗号化部と、前記暗号文を出力データに変換する変換部とを含み、前記変換部は、前記出力データを構成する出力文字が前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように、前記暗号文を変換するものとする。
【発明の効果】
【００２３】
本明細書に開示された一方向暗号化により、平文形式のデータの代りに代替データを使用することができる。
【００２４】
また、本明細書に開示された代替データ生成方法により、敏感な個人情報をシステムで使用することなく、それに対応する代替データを使用することができる。
【００２５】
また、本明細書に開示された代替データ検証方法は、使用中の代替情報の有効性を検証することができる。
【００２６】
また、データ処理装置は、本明細書に開示された代替データの生成および検証方法を採用することで、暗号化されたデータを処理するための別途の修正もなく、代替データを処理することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本明細書に開示された代替データの生成および検証方法に用いられる表である。
【図２】図２は、本明細書に開示された代替データの生成および検証方法が採用されるデータ処理装置の例示的なブロック図である。
【図３】図３は、データ処理装置が特定フォーマットを有する代替データを生成する方法の例示的なフローチャートである。
【図４】図４は、特定フォーマットを有する代替データの例である。
【図５】図５は、暗号文データをブロック別に区分した例である。
【図６】図６は、インデックスに基づいてブロックが出力文字に対応する方法の例である。
【図７】図７は、データ処理装置が平文形式のデータを一方向暗号化し、フォーマット保存のための変換を実行することで、代替データを生成する方法を示す例示的なフローチャートである。
【図８】図８は、繰り返し一方向関数を実行して暗号文を生成する例である。
【図９】図９は、データ処理装置が代替情報を検証する方法を示す例示的なフローチャートである。
【図１０】図１０は、データ処理装置が乱数生成器（ｒａｎｄｏｍ  ｎｕｍｂｅｒ  ｇｅｎｅｒａｔｏｒ）を使用して特定フォーマット特性を有する代替データを生成する方法の例示的なフローチャートである。
【発明を実施するための最良の形態】
【００２８】
本明細書に開示された技術は情報保護のためのデータ処理システムに適用される。しかし、本明細書に開示された技術は、これに限らず、その技術的思想が適用されることができるすべてのデータ処理システムおよび方法、通信システムおよび方法、データベースおよびその管理方法、その他の情報保護システムおよび方法にも適用することができる。
【００２９】
本明細書に使用する技術的用語は、単に特定の実施形態を説明するために使用されるものであって、本発明を限定しようとする意図ではないことを留意しなければならない。また、本明細書に使用する技術的用語は、本明細書において特別に他の意味として定義されない限り、本発明が属する技術分野において通常の知識を有する者によって一般的に理解される意味として解釈すべきであり、過度に包括的な意味として解釈されるか、または過度に縮小された意味として解釈されてはいけない。
【００３０】
また、本明細書に使用する単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現も含む。本出願において、「構成される」または「含む」などの用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずすべて含むものとして解釈してはならず、その中の一部構成要素または一部段階は含まれないこともあり、または追加的な構成要素または段階をさらに含むことができるものと解釈しなければならない。
【００３１】
また、本明細書に使用する第１、第２などのように、序数を含む用語は、多様な構成要素を説明するために使用されるが、前記構成要素は、前記用語により限定されてはいけない。前記用語は１つの構成要素を他の構成要素から区別する目的のみとして使用される。
【００３２】
ある構成要素が他の構成要素に「連結されて」あるとか「接続されて」あると言及された場合には、その他の構成要素に直接的に連結されているか、または接続されていることができるが、間に他の構成要素が存在することもありうる。一方、ある構成要素が他の構成要素に「直接連結されて」あるとか「直接接続されて」あると言及された場合には、間に他の構成要素が存在しないものと理解しなければならない。
【００３３】
以下、添付の図面を参照して本発明による好適な実施形態を詳細に説明するが、図面符号に関係なく、同一または類似の構成要素は同一参照番号を付してこれに対する重複説明は省略する。また、本発明の説明において、関連する公知技術に対する具体的な説明が本発明の要旨と合わないものと判断される場合、その詳細な説明を省略する。また、添付の図面は本発明の思想を容易に理解するためのものであって、添付の図面により本発明の思想が制限されると解釈してはならないことに留意しなければならない。本発明の思想は、添付図面の外すべての変更、均等物ないし代替物にまで拡張するものと解釈すべきである。
【００３４】
図１は、本明細書に開示された代替データの生成および検証方法に使用されるテーブルを示す。
【００３５】
前記テーブル１０は、多様なフィールドを含むように構成される。例えば、前記テーブル１０は、名前１１、社会保障番号または住民登録番号１２、ユーザＩＤまたはユーザネーム１３、暗号１４、または住所１５のようなフィールドを含むことができる。
【００３６】
前記フィールド値は、運用政策または法律に従って、機密性が保障されるように扱われる必要がある。例えば、前記住所フィールド１５に該当する値が住所情報取扱に対する政策などに従って平文形式に保存されず、双方向暗号化方式により暗号化されて保存され、復号化して使用される。
【００３７】
また、前記フィールドの値は、運用政策または法律に従って、復号化されないよう一方向暗号化方式により保護されるべきである。例えば、前記暗号フィールド１４に該当する値は、暗号情報取扱に対する政策などにより、平文形式に復号化されないよう保護されるべきである。このように一方向暗号化方式に保護されなければならないフィールドに対する有効性検査は、さらに一方向暗号化方式を実行して暗号化された結果が同一であるか否かを判断することで行われる。
【００３８】
よって、前記のような場合に、前記フィールドの値を取り扱う装置またはシステムは平文形式に該当する前記フィールドの値を直接保存あるいは送信せず、それぞれに対応する代替データを代わりとして用いることができる。このような代替データは特定フォーマット特性を有したシステムの特徴に適合するように生成する必要がある。特に、前記代替データはそれに対応するフィールド値の代わりに保存または送信される情報として、前記フィールド値を保存または送信するシステムのフォーマット特性を有するように生成する必要がある。
【００３９】
本明細書に開示された代替データの生成および検証方法の実施形態において、前記代替データのフォーマット特性は、前記代替データの長さおよび前記代替データを構成する文字の種類を示すことができる。
【００４０】
前記フォーマット特性のうち前記代替データの長さは前記代替データが保存または送信されるシステムから提供される最大長および前記代替データに対応する平文形式のフィールド値の論理的な長さを考慮して決定される。例えば、前記住民登録番号フィールド１２値の実際長さが１３である場合に、前記住民登録番号フィールド１２の代替データの長さは前記代替データが保存されるシステムで許容する最大長および前記実際の長さを考慮して決定される。
【００４１】
また、前記フォーマット特性のうちの前記代替データを構成する文字の種類は、前記代替データが保存または送信されるシステムの特徴によって決定される。前記文字の種類は、文字列を構成する元素の集合（Ｓ）または前記集合内の元素の個数（｜Ｓ｜）を用いて表現される。前記代替データを構成する文字は、特定文字の集合で選択された文字列を含むことができる。例えば、前記代替データが前記代替データに対応する平文形式のフィールド値に含まれる文字だけで構成されることができる。具体的に、前記住民登録番号フィールド１２値の例において、実際の値は数字０から９までに該当する文字の集合から選択された文字列を含むことができるため、前記住民登録番号フィールド１２に対する代替データを構成する文字も前記数字０から９までに該当する文字の集合から選択されることができる。
【００４２】
一方、本明細書に開示された実施形態は、特定フォーマット特性により前記代替データを生成し、検証する方法に関する。そのための前記フォーマット特性は前記代替データを保存または送信するシステムの特徴、または前記代替データに対応する平文形式のデータの特徴を考慮して決定される。
【００４３】
例えば、前記代替データがデータベースにより管理される場合、前記代替データを保存するためのテーブルに示されたデータ形式、すなわち、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）によって表現されるＮＵＭＢＥＲ、ＶＡＲＣＨＡＲ２、ＮＶＡＲＣＨＡＲ２、ＶＡＲＣＨＡＲ、ＣＨＡＲ、ＰＬＳ＿ＩＮＴＥＧＥＲ、ＢＩＮＡＲＹ＿ＩＮＴＥＧＥＲ、ＬＯＮＧ、ＤＡＴＥ、ＴＩＭＥＳＴＡＭＰ、ＲＡＷ、ＬＯＮＧＲＡＷ、ＢＬＯＢ、ＢＦＩＬＥなどのデータ形式を考慮して前記代替データの長さまたは文字の種類が決定される。
【００４４】
ただし、代替データを生成するか、または検証するデータ処理装置が平文形式のフィールド値の代わりに、単純に暗号化アルゴリズムなどの関数が適用された暗号文を代替データとして用いる場合、前記関数の特性により特定フォーマット特性に合致しない値が生成される可能性があるため、このような場合、前記代替データが特定フォーマット特性によるようにするための変換過程が行われる必要がある。
【００４５】
一方、本明細書は、データベースに保存されるデータを例として開示しているが、本明細書に開示された実施形態に係る代替データの生成および検証はこれに限らず、データの保存装置および方法、またはデータの送信装置および方法にも適用されることができる。
【００４６】
以下において、本明細書に開示された実施形態による代替データ処理装置がフォーマット特性を考慮して代替データを生成して検証する実施形態について開示される。
【００４７】
本明細書に開示された実施形態によるデータ処理装置は、代替データの生成および検証のために、例えば暗号学的関数（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｆｕｎｃｔｉｏｎ）または乱数生成（ｒａｎｄｏｍ  ｎｕｍｂｅｒ  ｇｅｎｅｒａｔｉｏｎ）のような、暗号アルゴリズムを実行することができる。
【００４８】
特に、本明細書に開示された実施形態は、平文形式のデータの代りに代替データを生成するか、または乱数に基づいて代替データを生成することに関する。このために、本明細書には、一方向暗号化方式または乱数生成を例示として開示しているが、これに限らず、双方向暗号化方式でも前記代替データ自体を平文形式のデータに復元する方式ではない、他の形態により実行されることも排除しない。
【００４９】
このために、本明細書に開示された実施形態に係るデータ処理装置は暗号化機能を実行することができる。本明細書に記述された代替データは平文形式のデータを保護するために前記平文形式のデータの代わりに使用するデータをいう。本明細書に開示された実施形態に係るデータ処理装置は、前記暗号化機能を実行することで、平文形式のデータを保護し、変換過程を介してフォーマット特性に適合する代替データを生成する。
【００５０】
すなわち、本明細書に開示された実施形態に係るデータ処理装置は、前記平文形式のデータが扱われる環境を変更せず、単にその値を交替するために前記平文形式のデータのフォーマットと同じフォーマットの代替データを生成することができる。よって、本明細書に開示された代替データの生成および検証はデータフォーマットの保存機能を実行することができる。
【００５１】
図２は、本明細書に開示された代替データの生成および検証方法が採用されることができるデータ処理装置の例示的なブロック図である。
【００５２】
前記データ処理装置１００は、入力データを取得する入力部１１０、暗号文を生成する暗号化部１２０および前記暗号文を出力データに変換する変換部１３０を含むことができる。
【００５３】
前記入力部１１０は、前記入力データ以外に前記暗号化部１２０または前記変換部１３０の動作のための他の情報を取得することができる。例えば、前記入力部１１０は、前記暗号化部１２０のためのシステム情報、出力データを構成する出力文字の情報、出力データの長さまたはランダムシード（ｒａｎｄｏｍ  ｓｅｅｄ）を受信することができる。
【００５４】
前記暗号化部１２０は、平文形式の前記入力データを保護するためにそれに対応する暗号文を生成することができる。この場合、前記暗号化部１２０が一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して、前記入力データに基づいて前記暗号文を生成することができる。また、前記暗号化部１２０は任意の乱数に対応する暗号文を生成することができる。この場合、前記暗号化部１２０が乱数生成器により実行した結果に基づいて前記暗号文を生成することができる。
【００５５】
前記変換部１３０は、前記暗号文をフォーマット特性に合うように変換する過程を実行する。前記変換部１３０は前記暗号文を変換して前記入力データの代わりに使用することができる代替データを生成する。
【００５６】
前記変換部１３０は、前記出力データを構成する出力文字が前記入力データを構成する入力文字の集合から選択され、前記出力データの長さは特定長さになるように前記暗号文を変換することができる。
【００５７】
前記変換部１３０により変換された前記出力データは前記入力データの代替データとして使用されることができる。
【００５８】
前記データ処理装置１００は、多様な形態の演算装置とすることができる。つまり、前記データ処理装置１００は、個人用コンピュータ、サーバ、ワークステーション、メインフレームなど多様な形態で実装されることができる。
【００５９】
一方、後述の実施形態により前記入力部１１０、前記暗号化部１２０または前記変換部１３０が実行する代替データの生成または検証方法は、前記データ処理装置１００で実行することができるプログラムの形態として提供してもよい。前記データ処理装置１００は、前記プログラムを保存するメモリおよび前記プログラムを実行するプロセッサを含むように実装することができる。前記メモリは、前記プログラムを実行する過程で生成される中間値を保存することができる。
【００６０】
また、前記データ処理装置１００は、後述される代替データの生成または検証方法を実現しているデータベースシステムの形態で実装することができる。この場合、前記データ処理装置１００はデータベースと単一装置または別途装置の形態で動作することができる。
【００６１】
また、前記データ処理装置１００は、アプリケーションサーバを含むシステム形態で実装することができる。この場合、前記アプリケーションサーバは、前記暗号化部１２０または前記変換部１３０の機能のうちの一部を実行するサーバとすることができる。例えば、前記データ処理装置を含むデータ処理システムは、本明細書に開示された実施形態に含まれた暗号化機能を別途で実行するアプリケーションサーバおよび前記暗号化機能を用いて代替データの生成または検証方法を実行する前記データ処理装置１００の形態で実装することができる。この場合、前記アプリケーションサーバは、ネットワークと接続されて特定機能を実行するデータ処理装置とすることができる。また、前記アプリケーションサーバは、１つ以上の演算装置が集合的に特定機能を実行する形態で実装することができ、例えば、前記アプリケーションサーバはクラウドコンピューティング、仮想コンピューティングまたはＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）のように動作する１つ以上の演算装置とすることができる。
【００６２】
以下に、図３乃至図６を参照して本明細書に開示された実施形態に係るデータ処理装置が、暗号文を、特定フォーマットを有する出力データに変換する方法が具体的に説明される。
【００６３】
図３は、データ処理装置が特定フォーマットを有する代替データを生成する方法の例示的なフローチャートである。図３は、暗号アルゴリズムにより生成された暗号文を、特定フォーマット特性を有する代替データに変換する過程を示す。すなわち、前記変換過程は、前記暗号文を前記特定フォーマット特性により特定文字の集合から選択された文字よりなっており、特定長さの文字列に該当する前記代替データに変換する過程である。
【００６４】
図４は、特定フォーマットを有する代替データの例を示す。例えば、前記代替データのフォーマット特性のうちの前記代替データの長さは６４であって、前記代替データを構成する文字は、英大文字、英小文字、および数字（ａｌｐｈａｎｕｍｅｒｉｃ）（０−９、Ａ−Ｚ、ａ−ｚ）の集合（Ｓ）から選択された文字よりなると仮定する。この場合、前記代替データを保存するためのフィールドの最大長が７０であり、前記集合の大きさ（｜Ｓ｜）は６２（英大文字２６＋英小文字２６＋数字１０）である。
【００６５】
まず、データ処理装置は、暗号文（Ｃｉｐｈｅｒ  Ｄａｔａ；ＣＤ）を生成する（Ｓ１１０）。前記暗号文は、既に知られている暗号アルゴリズムまたは関数により生成されたデータとすることができる。前記暗号アルゴリズムまたは関数が固定した長さの暗号値（Ｃｉｐｈｅｒ  Ｖａｌｕｅ；ＣＶ）を生成する場合、前記代替データの長さを考慮して前記暗号アルゴリズムまたは関数が繰り返し実行されることで、１つ以上の暗号値（ＣＶ）に基づいた暗号文（ＣＤ）が生成されることができる。前記暗号文の生成の具体的な過程は実施形態とともに後述される。
【００６６】
その後の段階（Ｓ１２０、Ｓ１３０、Ｓ１４０）は、前記データ処理装置が前記暗号文を出力データに変換し、前記出力データを前記代替データとして使用することに関する。前記暗号文はこのような変換過程を介して、前記出力データを構成する出力文字が特定フォーマットを有する文字の集合から選択され、前記出力データの長さは特定長さになるように変換されることができる。
【００６７】
具体的に、前記データ処理装置は、前記暗号文（ＣＤ）を１つ以上のブロック（Ｂ）に区分する（Ｓ１２０）。前記１つ以上のブロックは、前記特定文字の集合の大きさ（｜Ｓ｜）を考慮して区分される。すなわち、前記ブロック（Ｂ）の大きさは、１つのブロックにより前記特定文字の集合（Ｓ）内の元素をそれぞれ指示するものでなければならない。また、後述するように、前記区分されたブロック（Ｂ）の数は前記代替データの長さと等しくなる。
【００６８】
一実施形態においては、前記データ処理装置が前記暗号文（ＣＤ）データの最初から必要な大きさほどのブロックを区画して区分することができ、この場合に前記ブロック（Ｂ）の大きさはｌｏｇ２｜Ｓ｜より大きい最小の整数（ビット；ｂｉｔ）でよい。前記図４および図５の例を参照すると、まず、前記暗号文（ＣＤ）５１０を区分する前記ブロック（Ｂ）５１１の大きさは、前記集合の大きさ（｜Ｓ｜）を考慮してｌｏｇ２｜Ｓ｜＝ｌｏｇ２６２＝５．９５よりも大きい最小の整数である６ビットとすることができる。この場合に前記暗号文（ＣＤ）は、ｌｏｇ２｜Ｓ｜ビットの大きさを有する１つ以上のブロック（Ｂ［１］、Ｂ［２］、…、Ｂ［６４］）に区分される。
【００６９】
また、他の実施形態においては、前記データ処理装置が前記暗号文（ＣＤ）データの最初からバイト単位でブロックを区画して区分することができ、この場合、前記データ処理装置は、前記ブロック内のビットのうちの必要な大きさの分５２１だけを取得するようになって、前記ブロック（Ｂ）は（ｌｏｇ２｜Ｓ｜）／８より大きい最小定数の長さを有するビット列であってよい。図４および図５の例を参照すると、まず、前記暗号文（ＣＤ）５２０を区分する前記ブロック（Ｂ）５２１の大きさは、前記集合の大きさ（｜Ｓ｜）を考慮すると、（ｌｏｇ２｜Ｓ｜）／８＝（ｌｏｇ２６２）／８＝０．７４であって、これよりも大きい最小定数である１バイトであってよい。この場合に前記暗号文（ＣＤ）は、（ｌｏｇ２｜Ｓ｜）／８よりも大きい最小定数の大きさを有する１つ以上のブロック（Ｂ［１］、Ｂ［２］、…、Ｂ［６４］）に区分される。
【００７０】
このように、前記代替データの長さに合うように前記暗号文をブロック（Ｂ）に区分する過程に続き、区分された各ブロック（Ｂ）に対応する出力文字を決定する過程がその後に実行される。
【００７１】
次に、前記データ処理装置が出力データのフォーマットを考慮してブロックに対応する出力文字を決定する（Ｓ１３０）。前記データ処理装置は、前記ブロック（Ｂ）のそれぞれをインデックス（ｉｎｄｅｘ）として計算し、前記インデックスに基づいて前記集合（Ｓ）内の文字のうちの出力文字を決定することで、前記特定フォーマットが保存されるようにする。
【００７２】
前記データ処理装置は、多様な方法によって前記ブロック（Ｂ）のそれぞれをインデックス計算することができる。前記インデックスは、前記ブロックを前記集合（Ｓ）内の文字に対応させるためのもので、前記集合の大きさ（｜Ｓ｜）分の値を有するように計算すべきである。そのために、前記データ処理装置は、前記ブロック（Ｂ）のそれぞれを自然数に変換し、ｍｏｄ｜Ｓ｜演算を実行した結果をインデックスとして用いることができる。
【００７３】
このために、前記データ処理装置は、前記集合（Ｓ）内の文字に対して特定手順に従って索引化を実行することができる。すなわち、図４乃至図６を参照すると、前記データ処理装置は、前記集合の大きさを考慮してＳ［１］乃至Ｓ［６２］をあらかじめ保存していてもよい。前記集合（Ｓ）内の文字に対する索引化（５３５）は変換過程を行う度に実行する必要がなく、あらかじめ実行された結果（５３０）が保存され、保存された結果を使用することができる。
【００７４】
図５を参照すると、前記データ処理装置は、前記ブロック（５１１または５２１）をインデックスに変換することができる。すなわち、０＜ｉ＜＝Ｌｅｎ１であるｉに対してＩｎｄｅｘ［ｉ］＝Ｂ［ｉ］ｍｏｄ｜Ｓ｜と計算することができ、ｉ番目の出力文字Ｔ［ｉ］は、Ｔ［ｉ］＝Ｓ［Ｉｎｄｅｘ［ｉ］］のように決定することができる。ここで、Ｌｅｎ１は、前記特定フォーマット特徴から与えられた代替データの長さを示し、Ｉｎｄｅｘ［ｉ］は、ｉ番目ブロックのインデックスを示し、Ｓ［ｉ］は、出力文字の集合Ｓに属するｉ番目の文字を示し、Ｂ［ｉ］は、ｉ番目のブロックを自然数に変換した値を示し、Ｔ［ｉ］は、前記出力データ内のｉ番目の出力文字を示す。
【００７５】
次に、前記データ処理装置が前記出力文字を結合して出力データを生成する（Ｓ１４０）。前記データ処理装置は前記出力文字を連接して出力データを生成することができる。
【００７６】
以後、前記データ処理装置は、特定フォーマット特性に合うように変換された前記出力データを前記代替データとして使用することができる。
【００７７】
図７は、データ処理装置が平文形式のデータを一方向暗号化し、フォーマット保存のための変換を実行することで、代替データを生成する方法を示す例示的なフローチャートである。図７に示す一方向暗号化を用いた代替データ生成方法は、原始データの復元が必要でない場合に使用される。特に、前記データ処理装置に入力された前記原始データが保存されないように要求される場合に、一方向暗号化による代替データを使用することが好ましい。
【００７８】
図７に示す実施形態は、図３と比較して暗号文生成段階（Ｓ１１０）の以前に入力データを取得する過程が追加されていて、前記入力データに基づいて暗号文を生成する過程が詳細に開示されている。図３を参照して説明された暗号文の変換段階（Ｓ１２０、Ｓ１３０、Ｓ１４０）は、前記暗号文のフォーマット保存のためのもので、図７の暗号文の変換段階（Ｓ２３０）と同一であるため、その詳細な説明は省略する。
【００７９】
まず、前記データ処理装置が入力データを取得する（Ｓ２１０）。前記入力データは平文形式のデータである。前記入力データはフォーマットの特性に従って入力されたデータとすることができる。
【００８０】
次に、前記データ処理装置は、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成する（Ｓ２２０）。
【００８１】
前記暗号文は、既に知られている一方向暗号化関数により生成されたデータとすることができる。例えば、前記一方向関数は、ＭＤ５、ＳＨＡ−０、ＳＨＡ−１、ＳＨＡ−２５６／２２４、ＳＨＡ−５１２／３８４などのような固定された長さの暗号文を生成する暗号学的ハッシュ関数（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）とすることができ、またはその他の一方向関数とすることができる。
【００８２】
図３乃至図６を参照して説明されたフォーマット保存機能を実行するためには、前記暗号文がブロックに区分された後、各ブロックが出力データの出力文字に対応することができる程度に前記暗号文が十分な長さでなければならない。よって、前記データ処理装置は、前記入力データを、前記一方向関数を用いて処理する過程（Ｓ２２１）を少なくとも１回以上実行することができる。
【００８３】
前記一方向関数の処理過程（Ｓ２２１）が繰り返されて行われる場合、前記一方向関数が実行される度に入力値に差がなければ、実行結果に変化はない。そのために、前記データ処理装置は、前記一方向関数が実行される場合、動的変数、例えば、システム変数または実行回数のような値を前記入力データとともに入力して提供することができる。
【００８４】
図８を参照して、例えば、前記データ処理装置は、同様の前記一方向関数４０５を実行しながら同一入力データ４０１の全部または一部を入力して提供すること以外に、各一方向関数４０５の実行する度に異なったシード入力を提供する。
【００８５】
次に、前記データ処理装置は、前記繰り返しの一方向関数の実行が必要か否かを判断する（Ｓ２２２）。これは、前記データ処理装置が今までの一方向関数の実行結果である暗号値（ＣＶ）に基づいて生成される暗号文（ＣＤ）を有し、その後の変換段階を実行する場合、前記出力データの長さが前記入力データの長さよりも小さいか否かを判断する。
【００８６】
すなわち、前記入力データの各処理過程（Ｓ２２１）は、その後に前記暗号文に対する変換段階を実行しても前記出力データの長さが前記入力データの長さと同一であるか、または大きくなるように繰り返し実行される。したがって、前記判断過程（Ｓ２２２）においても前記出力データが有することになるフォーマット特性を考慮しなければならない。
【００８７】
前述のように、前記フォーマット特性は、代替データに使用される前記出力データの長さ（Ｌｅｎ１）および前記出力データを構成する出力文字の種類を示すことができる。
【００８８】
この場合、前記データ処理装置は、前記繰り返し実行が必要か否かを判断するために、［（Ｌｅｎ１×ｌｏｇ２｜Ｓ｜）／Ｌｅｎ２］よりも大きい最小定数ほど実行されたか判断することができる。ここで、Ｌｅｎ２は、前記一方向関数の実行結果で生成される暗号値（ＣＶ）の大きさ（ｂｉｔ）を示す。図４を参照すると、前記一方向暗号化アルゴリズムが１６０ビットの固定された大きさの暗号値（ＣＶ）であるハッシュ値を生成するＳＨＡ−１の場合、Ｌｅｎ２は１６０であるので、前記データ処理装置は［（Ｌｅｎ１×ｌｏｇ２｜Ｓ｜）／Ｌｅｎ２］＝［（６４×ｌｏｇ２６２）／１６０］＝２．３８により３回ほど実行したか否かを判断することになる。
【００８９】
次に、前記データ処理装置は、前記一方向関数の処理（Ｓ２２１）結果から出る暗号値（ＣＶ）を結合して暗号文（ＣＤ）を生成する（Ｓ２２３）。これは前記データ処理装置が繰り返しに前記一方向関数を処理した場合、各処理結果から出る暗号値（ＣＶ）を連接（ｃｏｎｃａｔｅｎａｔｉｏｎ）することで、前記暗号文を生成するものでよい。図８を参照すると、前記データ処理装置は、一方向関数の実行結果から計算された暗号値４０６、４０７、４０８を結合することで、その後の変換過程で使用される前記暗号文４１０を生成する。
【００９０】
次に、前記データ処理装置は、前記暗号文（ＣＤ）を１つ以上のブロック（Ｂ）に区分し（Ｓ２３１）、出力データのフォーマットを考慮してブロックに対応する出力文字を決定し（Ｓ２３２）、前記出力文字を結合して出力データを生成する（Ｓ２３３）。前記過程（Ｓ２３１、Ｓ２３２、Ｓ２３３）は、図３を参照して説明した変換過程（Ｓ１２０、Ｓ１３０、Ｓ１４０）とそれぞれ同一であるので、詳しい説明は省略する。
【００９１】
前記データ処理装置は、前記のように生成された前記出力データを前記代替データとして使用することができる。すなわち、前記データ処理装置は、前記入力データがデータベースに保存されなければならない場合、平文形式に入力された前記入力データが保存されるデータベースフィールドに前記出力データを代替データとして保存することができる。
【００９２】
図９は、データ処理装置が代替情報を検証する方法を示す例示的なフローチャートである。前記代替情報の検証方法は、図７乃至図８を参照して説明した代替情報の生成方法を繰り返して同一な出力データが出るか否かを判断する。これは、前述した代替情報の生成方法が一方向関数を用いて実行されるので、前記データ処理装置は、検証しようとする入力データに基づいて出力データを生成し、あらかじめ作られた代替情報と比較する方式で実行される。以下、図７乃至図８を参照して説明した内容と重複される段階の詳細な説明は省略する。
【００９３】
まず、前記データ処理装置が検証するための入力データを取得する（Ｓ３１０）。
【００９４】
次に、前記データ処理装置は、前記入力データに対応する代替情報を取得する（Ｓ３２０）。前記代替情報がデータベースに保存されている場合、前記データ処理装置は、前記データベースから前記代替情報を取得する。前記代替情報を取得する過程（Ｓ３２０）があらかじめ実行されるか、または、その後に実際の比較過程（Ｓ３５０）を行う前に実行される。
【００９５】
次に、前記データ処理装置は、一方向関数（ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ）を実行して前記入力データに基づいて暗号文を生成し（Ｓ３３０）、前記暗号文を出力データに変換する（Ｓ３４０）。次に、前記データ処理装置は、前記出力データと前記代替情報が同一であるか否かを判断する（Ｓ３５０）。
【００９６】
図１０は、データ処理装置が乱数生成器（ｒａｎｄｏｍ  ｎｕｍｂｅｒ  ｇｅｎｅｒａｔｏｒ）を介して特定フォーマット特性を有する代替データを生成する方法の例示的なフローチャートである。図１０に示す実施形態は、図７乃至図８を参照して説明した一方向暗号化を用いた代替データ生成方法と暗号文を生成する方法における差があるだけで、同一なものである。以下に、図３および図７を参照して説明した内容との相違点を中心に説明し、重複する内容については詳しい説明を省略する。
【００９７】
まず、前記データ処理装置は、少なくとも１回以上乱数生成器を用いて乱数値（Ｒａｎｄｏｍ  Ｖａｌｕｅ；ＲＶ）を生成する（Ｓ４１１）。前記乱数生成器が生成する乱数値は一定な大きさを有する。
【００９８】
次に、前記データ処理装置は、前記乱数生成器における繰り返しの乱数生成が必要か否かを判断する（Ｓ４１２）。これは、前記データ処理装置が今までに生成された乱数値の組み合わせに基づいて以後の変換段階を実行する場合、前記出力データの長さを満たせるか否かを判断するものである。
【００９９】
これは、前記出力データのフォーマット特性を考慮して判断しなければならなく、前記フォーマット特性は代替データの長さ（Ｌｅｎ１）を含むことができる。この場合、前記データ処理装置は、前記繰り返し実行が必要か否かを判断するために、［（Ｌｅｎ１×ｌｏｇ２｜Ｓ｜）／Ｌｅｎ２］より大きい最小定数ほど実行されているか判断することができる。ここで、Ｌｅｎ２は、前記乱数生成器が生成する乱数値の大きさ（ｂｉｔ）を示す。
【０１００】
次に、前記データ処理装置は、前記乱数生成器が生成した乱数値を結合して暗号文を生成する（Ｓ４１３）。これは、前記データ処理装置が繰り返しに前記乱数生成器を実行した場合、それぞれ結果として出る乱数値を連接（ｃｏｎｃａｔｅｎａｔｉｏｎ）することで、前記暗号文を生成するものであってよい。
【０１０１】
次に、前記データ処理装置は、前記暗号文を、特定フォーマット特性を有する出力データに変換する（Ｓ４２０）。具体的に、前記データ処理装置は、前記暗号文を１つ以上のブロック（Ｂ）に区分し（Ｓ４２１）、出力データのフォーマットを考慮してブロックに対応する出力文字を決定し（Ｓ４２２）、前記出力文字を結合して出力データを生成する（Ｓ４２３）。前記過程（Ｓ４２１、Ｓ４２２、Ｓ４２３）は、図３を参照して説明した変換過程（Ｓ１２０、Ｓ１３０、Ｓ１４０）とそれぞれ同一であるので、詳しい説明は省略する。
【０１０２】
前記データ処理装置は、前記のように生成された前記出力データを前記代替データとして使用することができる。前記データ処理装置は、データベースの特定フィールドに前記出力データを代替データとして保存することができる。
【０１０３】
以上、本明細書に開示された技術の実施形態を例示的に説明したが、本明細書に開示された技術の範囲は、このような特定実施形態だけに限定されるものでなく、本明細書に開示された技術は、本明細書に開示された技術の思想および特許請求の範囲に記載された範疇内において多様な形態に修正、変更、または改善することができる。
【図１】
2015526757.tif 000003
【図２】
2015526757.tif 000004
【図３】
2015526757.tif 000005
【図４】
2015526757.tif 000006
【図５】
2015526757.tif 000007
【図６】
2015526757.tif 000008
【図７】
2015526757.tif 000009
【図８】
2015526757.tif 000010
【図９】
2015526757.tif 000011
【図１０】
2015526757.tif 000012
【国際調査報告】
2015526757.tif 000013
2015526757.tif 000014
2015526757.tif 000015
2015526757.tif 000016