(57)【要約】【課題】解析困難性を高めたエンコード処理構成を実現する。【解決手段】第１ＰＮ系列生成手段が生成したＰＮ系列の構成ビット値を、第２ＰＮ系列生成手段の生成したＰＮ系列に基づくアドレスに従って配置したマトリクスによるエンコードを実行する。マトリクス上のビット並びから元のＰＮ系列を推測することは困難であり安全性の高いデータ処理が可能となる。また、第１ＰＮ系列のビット値は、第２ＰＮ系列のアドレス値に応じてマトリクス構成データとしての利用の有無が決定される構成としたのでマトリクス構成情報とＰＮ系列データとは一致することがなく解析困難性を高めた安全性の高いデータ処理システムが実現される。【選択図】図１１
2008177654.tif 000002
【特許請求の範囲】
【請求項１】
エンコード処理対象となる入力データを入力する入力手段と、
第１擬似乱数を生成する第１擬似乱数生成手段と、
第２擬似乱数を生成する第２擬似乱数生成手段と、
前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定するアドレス決定手段と、
前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成するマトリクス生成手段と、
前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行してエンコードデータを生成するエンコード手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記アドレス決定手段は、
前記マトリクスアドレス候補値と、前記マトリクス生成手段の生成するマトリクスの最大アドレスを比較し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合は、マトリクス生成に適用するアドレスとして利用し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、マトリクス生成に適用するアドレスとして利用しない処理を実行する構成であることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記マトリクス生成手段は、
前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数の構成ビット値に基づく画素値を前記アドレス候補値の指定位置に設定し、
前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、前記第１擬似乱数の構成ビット値に基づく画素値をマトリクス生成処理に利用しない構成であることを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記アドレス決定手段は、
前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列から選択するビット列を順次シフとして、複数のマトリクスアドレス候補値を順次決定する処理を実行する構成であり、
前記マトリクス生成手段は、
前記アドレス決定手段の決定するマトリクスアドレス候補値に対応して、前記第１擬似乱数の構成ビット値を順次シフトしながら選択し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数から選択したビット値に基づく画素値を前記アドレス候補値の指定位置に設定する処理を実行する構成であることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記第２擬似乱数生成手段は、
前記マトリクス生成手段の生成するマトリクスを構成するために必要となるマトリクスアドレス数以上の周期からなる擬似乱数を生成する構成であることを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記第１擬似乱数生成手段、および前記第２擬似乱数生成手段は、ＰＮ（Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｏｉｓｅ）系列生成手段によって構成されていることを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記データ処理装置は、さらに、
前記マトリクス生成手段の生成したマトリクスと、前記エンコード手段の生成したエンコードデータとの対応位置データとの排他的論理和演算を実行してデコードデータを生成するデコード手段と、
前記デコード手段の生成したデコードデータと、前記入力手段から入力される入力データとの照合処理を実行する照合手段と、
を有することを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
データ処理装置におけるデータ処理方法であり、
入力手段が、エンコード処理対象となる入力データを入力するデータ入力ステップと、
第１擬似乱数生成手段が、第１擬似乱数を生成する第１擬似乱数生成ステップと、
第２擬似乱数生成手段が、第２擬似乱数を生成する第２擬似乱数生成ステップと、
アドレス決定手段が、前記第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定するアドレス決定ステップと、
マトリクス生成手段が、前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成するマトリクス生成ステップと、
エンコード手段が、前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行してエンコードデータを生成するエンコードステップと、
を有することを特徴とするデータ処理方法。
【請求項９】
前記アドレス決定ステップは、さらに、
前記マトリクスアドレス候補値と、前記マトリクス生成手段の生成するマトリクスの最大アドレスを比較し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合は、マトリクス生成に適用するアドレスとして利用し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、マトリクス生成に適用するアドレスとして利用しない処理を実行するステップを含むことを特徴とする請求項８に記載のデータ処理方法。
【請求項１０】
前記マトリクス生成ステップは、
前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数の構成ビット値に基づく画素値を前記アドレス候補値の指定位置に設定し、
前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、前記第１擬似乱数の構成ビット値に基づく画素値をマトリクス生成処理に利用しないことを特徴とする請求項８に記載のデータ処理方法。
【請求項１１】
前記アドレス決定ステップは、
前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列から選択するビット列を順次シフとして、複数のマトリクスアドレス候補値を順次決定する処理を実行するステップを含み、
前記マトリクス生成ステップは、
前記アドレス決定ステップにおいて決定するマトリクスアドレス候補値に対応して、前記第１擬似乱数の構成ビット値を順次シフトしながら選択し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数から選択したビット値に基づく画素値を前記アドレス候補値の指定位置に設定する処理を実行することを特徴とする請求項８に記載のデータ処理方法。
【請求項１２】
前記第２擬似乱数生成ステップは、
前記マトリクス生成手段の生成するマトリクスを構成するために必要となるマトリクスアドレス数以上の周期からなる擬似乱数を生成することを特徴とする請求項８に記載のデータ処理方法。
【請求項１３】
前記第１擬似乱数生成ステップ、および前記第２擬似乱数生成ステップは、ＰＮ（Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｏｉｓｅ）系列を生成するステップであることを特徴とする請求項８に記載のデータ処理方法。
【請求項１４】
前記データ処理方法は、さらに、
デコード手段が、前記マトリクス生成手段の生成したマトリクスと、前記エンコード手段の生成したエンコードデータとの対応位置データとの排他的論理和演算を実行してデコードデータを生成するデコードステップと、
照合手段が、前記デコード手段の生成したデコードデータと、前記入力手段から入力される入力データとの照合処理を実行する照合ステップと、
を有することを特徴とする請求項８に記載のデータ処理方法。
【請求項１５】
データ処理装置におけるデータ処理を実行させるコンピュータ・プログラムであり、
入力手段に、エンコード処理対象となる入力データを入力させるデータ入力ステップと、
第１擬似乱数生成手段に、第１擬似乱数を生成させる第１擬似乱数生成ステップと、
第２擬似乱数生成手段に、第２擬似乱数を生成させる第２擬似乱数生成ステップと、
アドレス決定手段に、前記第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定させるアドレス決定ステップと、
マトリクス生成手段に、前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成させるマトリクス生成ステップと、
エンコード手段に、前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行させてエンコードデータを生成させるエンコードステップと、
を実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、およびデータ処理方法、並びにプログラムに関する。さらに詳細には、例えば生体情報のテンプレートなどの秘匿性を要するデータ等の難読化や暗号化を実行するデータ処理装置、およびデータ処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、指紋や静脈等の生体情報を利用したバイオメトリクス認証技術が注目を集めている。一般的なバイオメトリクス認証処理は、予めシステムに登録された生体情報の特徴量（テンプレート）と、ユーザがシステムに新たに読み取らせた生体情報から取得した特徴量との比較照合を行なう処理として行われる。このようなバイオメトリクス認証システムにおいては、登録されたテンプレート情報が漏洩を防ぐためにテンプレートを暗号化する等、安全な形でシステム内の記憶部にデータを保存しておく必要がある。
【０００３】
データ漏洩を防止する一つの手法として、オリジナルデータをあるルールに従って変更して難読化する手法がある。例えば、ストリームデータのようなビット列を難読化する手法としてはＰＮ（Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｏｉｓｅ）系列を利用してデータを難読化する手法が知られている。ＰＮ系列はシフトレジスタと適当な帰還タップを設けることで生成出来る。
【０００４】
ＰＮ系列を利用したデータ難読化により秘密情報をデータベースに記録するシステム構成について、図を参照して説明する。図１は、例えば、指紋や静脈等の生体情報を入力して、このデータをＰＮ系列を利用してエンコード（暗号化（難読化））を行いデータベースに登録する認証システム１０の構成例を示している。
【０００５】
ユーザの指紋情報等が入力手段１１を介して入力され、エンコード／デコード手段１２が、入力手段１１からのデータと、ＰＮ系列生成手段１３からＰＮ系列を入力して、これらの２つのデータに基づくエンコード（暗号化（難読化））を行いデータベース１４に登録する。照合時には、エンコード／デコード手段１２が、データベース１４に登録されたエンコードデータを取得して、エンコードデータとＰＮ系列生成手段１３の発生するＰＮ系列とに基づくデコード処理を実行して、デコード結果を照合手段１５に出力する。照合手段１５は、デコード結果と、新たに入力手段１１を介して入力されたデータとの照合処理を実行する。
【０００６】
図１に示すＰＮ系列生成手段１３は、擬似乱数を生成する手段である。図２（１）に、周期７のＰＮ系列を生成するシフトレジスタと帰還タップ構成の例を示す。３つのシフトレジスタＳＲａ２１、ＳＲｂ２２、ＳＲｃ２３と、排他的論理和演算（Exclusive OR）部２４によって構成されている。シフトレジスタ２１の値は、シフトレジスタ２２に出力され、シフトレジスタ２２の値は、シフトレジスタ２３に出力され、シフトレジスタ２３の値は、排他的論理和演算部２４に入力され、シフトレジスタ２１の値との排他論理和演算が実行され、その結果がシフトレジスタ２１に入力される。これら各シフトレジスタ間のデータ入出力は、所定のクロックタイミングに基づいて制御されることになる。
【０００７】
図２（２）は、３つのシフトレジスタＳＲａ２１、ＳＲｂ２２、ＳＲｃ２３の保持データの推移を示している。レジスタを順にシフトさせていくと、図中のビット並びで示したように周期７で元の状態に戻っていることが分かる。ＰＮ系列の特徴は、シフトレジスタ内のデータが全て０というパターンを除く全ての状態を取り得るため、周期は２の（シフトレジスタの段数）乗−１となる。図２の場合は、シフトレジスタの段数が３なので、周期は、
２３−１＝７となる。
【０００８】
図３にＰＮ系列を利用したデータのエンコード処理とデコード処理の例について説明する。例えば、認証システムにおいて、生体情報の特徴量（テンプレート）をデータベースに格納する場合、先に図１を参照して説明したように、入力手段１１からのデータと、ＰＮ系列生成手段１３からＰＮ系列を入力して、これらの２つのデータに基づくエンコード（暗号化（難読化））を行いデータベース１４に登録する。
【０００９】
図３（１）に示すエンコード処理において、
（１ａ）入力ビット列が、例えば生態情報の特徴量に対応するエンコード対象となる図１の入力手段１１からの入力データ、
（１ｂ）ＰＮ系列が、図１に示すＰＮ系列生成手段１３から入力されるＰＮ系列データ、
（１ｃ）エンコード結果が、図１に示すエンコード／デコード手段１２において、入力ビットとＰＮ系列に基づいて生成されるエンコードデータである。
【００１０】
エンコード／デコード手段１２は、エンコード処理において、入力ビット列と、ＰＮ系列との排他的論理和を実行して、エンコード結果を得る。例えば、入力ビット列と、ＰＮ系列の第１番目のビットは、０と１であり、
０（ＸＯＲ）１＝１
となる。（ＸＯＲ）は排他的論理和演算を示すものとする。
第２番目のビットは、０と０であり、
０（ＸＯＲ）０＝０
以下同様に入力ビット列と、ＰＮ系列の対応ビットの排他的論理和を実行して、
として、（１ｃ）エンコード結果を生成する。このエンコード結果が、図１に示すデータベース１４に格納される。
このように、（１ｃ）エンコード結果は元のビット列、すなわち、（１ａ）入力ビット列とは全く異なる形となる。
【００１１】
一方、図３（２）に示すデコード処理において、
（２ａ）エンコードビット列は、図１に示すデータベース１４に格納されたエンコード結果であり、図３（１ｃ）エンコード結果に相当する。
（２ｂ）ＰＮ系列は、図１に示すＰＮ系列生成手段１３から入力されるＰＮ系列データ、
（２ｃ）デコード結果が、図１に示すエンコード／デコード手段１２において、（２ａ）エンコードビット列と（２ｂ）ＰＮ系列に基づいて生成されるデコードデータである。
【００１２】
エンコード／デコード手段１２は、デコード処理においても、（２ａ）エンコードビット列と（２ｂ）ＰＮ系列との排他的論理和を実行して、デコード結果を得る。なお、エンコード時とデコード時に利用するＰＮ系列は同じＰＮ系列である。この結果（２ｃ）デコード結果は、（１ａ）入力ビット列と同一であり、元のビット列が再現されていることが分かる。
【００１３】
上述したＰＮ系列を利用したエンコード／デコード手法は、比較的簡単な構成であり、ハードウェアとしても簡易に実現されるので非常に使いやすい反面、ＰＮ系列によって生成されたビット列中のある程度の長さ（具体的にはシフトレジスタ段数の２倍の長さ）のビット並びが分かってしまうと、そのＰＮ系列情報から帰還タップの状況を推測することが可能なため、同じＰＮ系列を用いて生成したビット列とエンコードされたビット列との間で総当り的に排他的論理和を取ることで、元のビット列を再現されてしまう危険性が存在する。なお、この解析手法は、「Ｂｅｒｌｅｋａｍｐ−Ｍａｓｓｅｙ」アルゴリズムとして知られている。
【００１４】
このように、ＰＮ系列を用いたデータの暗号化、難読化手法は、簡易な構成であり利用し易いというメリットを持つ一方で、ＰＮ系列情報の漏洩に基づいて、入力データの解析が可能になるというセキュリティの面での脆弱さを有する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、例えば上述のような問題点を解決するものであり、ＰＮ系列を用いたデータの暗号化、難読化手法を適用した構成において、オリジナルデータの解析困難性を高めたデータ処理装置、およびデータ処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の側面は、
エンコード処理対象となる入力データを入力する入力手段と、
第１擬似乱数を生成する第１擬似乱数生成手段と、
第２擬似乱数を生成する第２擬似乱数生成手段と、
前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定するアドレス決定手段と、
前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成するマトリクス生成手段と、
前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行してエンコードデータを生成するエンコード手段と、
を有することを特徴とするデータ処理装置にある。
【００１７】
さらに、本発明のデータ処理装置の一実施態様において、前記アドレス決定手段は、前記マトリクスアドレス候補値と、前記マトリクス生成手段の生成するマトリクスの最大アドレスを比較し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合は、マトリクス生成に適用するアドレスとして利用し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、マトリクス生成に適用するアドレスとして利用しない処理を実行する構成であることを特徴とする。
【００１８】
さらに、本発明のデータ処理装置の一実施態様において、前記マトリクス生成手段は、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数の構成ビット値に基づく画素値を前記アドレス候補値の指定位置に設定し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、前記第１擬似乱数の構成ビット値に基づく画素値をマトリクス生成処理に利用しない構成であることを特徴とする。
【００１９】
さらに、本発明のデータ処理装置の一実施態様において、前記アドレス決定手段は、前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列から選択するビット列を順次シフとして、複数のマトリクスアドレス候補値を順次決定する処理を実行する構成であり、前記マトリクス生成手段は、前記アドレス決定手段の決定するマトリクスアドレス候補値に対応して、前記第１擬似乱数の構成ビット値を順次シフトしながら選択し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数から選択したビット値に基づく画素値を前記アドレス候補値の指定位置に設定する処理を実行する構成であることを特徴とする。
【００２０】
さらに、本発明のデータ処理装置の一実施態様において、前記第２擬似乱数生成手段は、前記マトリクス生成手段の生成するマトリクスを構成するために必要となるマトリクスアドレス数以上の周期からなる擬似乱数を生成する構成であることを特徴とする。
【００２１】
さらに、本発明のデータ処理装置の一実施態様において、前記第１擬似乱数生成手段、および前記第２擬似乱数生成手段は、ＰＮ（Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｏｉｓｅ）系列生成手段によって構成されていることを特徴とする。
【００２２】
さらに、本発明のデータ処理装置の一実施態様において、前記データ処理装置は、さらに、前記マトリクス生成手段の生成したマトリクスと、前記エンコード手段の生成したエンコードデータとの対応位置データとの排他的論理和演算を実行してデコードデータを生成するデコード手段と、前記デコード手段の生成したデコードデータと、前記入力手段から入力される入力データとの照合処理を実行する照合手段と、を有することを特徴とする。
【００２３】
さらに、本発明の第２の側面は、
データ処理装置におけるデータ処理方法であり、
入力手段が、エンコード処理対象となる入力データを入力するデータ入力ステップと、
第１擬似乱数生成手段が、第１擬似乱数を生成する第１擬似乱数生成ステップと、
第２擬似乱数生成手段が、第２擬似乱数を生成する第２擬似乱数生成ステップと、
アドレス決定手段が、前記第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定するアドレス決定ステップと、
マトリクス生成手段が、前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成するマトリクス生成ステップと、
エンコード手段が、前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行してエンコードデータを生成するエンコードステップと、
を有することを特徴とするデータ処理方法にある。
【００２４】
さらに、本発明のデータ処理方法の一実施態様において、前記アドレス決定ステップは、さらに、前記マトリクスアドレス候補値と、前記マトリクス生成手段の生成するマトリクスの最大アドレスを比較し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合は、マトリクス生成に適用するアドレスとして利用し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、マトリクス生成に適用するアドレスとして利用しない処理を実行するステップを含むことを特徴とする。
【００２５】
さらに、本発明のデータ処理方法の一実施態様において、前記マトリクス生成ステップは、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数の構成ビット値に基づく画素値を前記アドレス候補値の指定位置に設定し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下でない場合は、前記第１擬似乱数の構成ビット値に基づく画素値をマトリクス生成処理に利用しないことを特徴とする。
【００２６】
さらに、本発明のデータ処理方法の一実施態様において、前記アドレス決定ステップは、前記第２擬似乱数生成手段の生成する第２擬似乱数のビット列から選択するビット列を順次シフとして、複数のマトリクスアドレス候補値を順次決定する処理を実行するステップを含み、前記マトリクス生成ステップは、前記アドレス決定ステップにおいて決定するマトリクスアドレス候補値に対応して、前記第１擬似乱数の構成ビット値を順次シフトしながら選択し、前記マトリクスアドレス候補値が前記マトリクスの最大アドレス以下である場合に、前記第１擬似乱数から選択したビット値に基づく画素値を前記アドレス候補値の指定位置に設定する処理を実行することを特徴とする。
【００２７】
さらに、本発明のデータ処理方法の一実施態様において、前記第２擬似乱数生成ステップは、前記マトリクス生成手段の生成するマトリクスを構成するために必要となるマトリクスアドレス数以上の周期からなる擬似乱数を生成することを特徴とする。
【００２８】
さらに、本発明のデータ処理方法の一実施態様において、前記第１擬似乱数生成ステップ、および前記第２擬似乱数生成ステップは、ＰＮ（Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｏｉｓｅ）系列を生成するステップであることを特徴とする。
【００２９】
さらに、本発明のデータ処理方法の一実施態様において、前記データ処理方法は、に、デコード手段が、前記マトリクス生成手段の生成したマトリクスと、前記エンコード手段の生成したエンコードデータとの対応位置データとの排他的論理和演算を実行してデコードデータを生成するデコードステップと、照合手段が、前記デコード手段の生成したデコードデータと、前記入力手段から入力される入力データとの照合処理を実行する照合ステップと、を有することを特徴とする。
【００３０】
さらに、本発明の第３の側面は、
データ処理装置におけるデータ処理を実行させるコンピュータ・プログラムであり、
入力手段に、エンコード処理対象となる入力データを入力させるデータ入力ステップと、
第１擬似乱数生成手段に、第１擬似乱数を生成させる第１擬似乱数生成ステップと、
第２擬似乱数生成手段に、第２擬似乱数を生成させる第２擬似乱数生成ステップと、
アドレス決定手段に、前記第２擬似乱数のビット列に基づいてマトリクスアドレス候補値を決定させるアドレス決定ステップと、
マトリクス生成手段に、前記マトリクスアドレス候補値に基づいて指定されるマトリクス位置に、前記第１擬似乱数生成手段の生成する第１擬似乱数の構成ビット値に基づく画素値を設定したマトリクスを生成させるマトリクス生成ステップと、
エンコード手段に、前記マトリクス生成手段の生成したマトリクスと、前記入力データとの対応位置データとの排他的論理和演算を実行させてエンコードデータを生成させるエンコードステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
【００３１】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３３】
本発明の一実施例の構成は、マトリクスを利用したエンコード、デコード処理を実行する構成であり、ある１つのＰＮ系列生成手段が生成したＰＮ系列の構成ビット情報を、他のＰＮ系列生成手段の生成したＰＮ系列から決定されたアドレスに従ってマトリクス上でランダムに配置したマトリクスを利用したエンコード、デコード処理を実行する構成とした。本構成によればマトリクス上のビット並びから元のＰＮ系列生成手法を推測することが困難となり、データ漏洩の可能性を低減した安全性の高いデータ処理が可能となる。また、第１ＰＮ系列の全てのビット値をマトリクス構成データとして使用せず、第２ＰＮ系列のアドレス値に応じてマトリクス構成データとしての利用有無を決定する構成としたので、マトリクス構成ビットデータが元のＰＮ系列データと等しくならずオリジナルＰＮ系列の解析や、エンコードデータからのオリジナルデータの解析困難性が高まり、安全性の高いデータ処理システムが実現される。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しながら本発明のデータ処理装置、画像信号処理装置、および方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３５】
図４を参照して本発明のデータ処理装置の一実施例としての認証システム１００の構成について説明する。図４に示す認証システムは、先に図１を参照して説明したシステムと同様、例えばユーザの指紋や静脈等の生体情報などを利用したバイオメトリクス認証処理を行なうシステムであり、擬似乱数（ＰＮ系列）を利用したデータ難読化により秘密情報をデータベースに記録する認証システム１００である。
【００３６】
ユーザの指紋情報等が入力手段１０１を介して入力され、エンコード／デコード手段１０６が、入力手段１０１からのデータを入力し、さらに、マトリクス生成手段１０５からマトリクスデータを入力して、これらの２つのデータに基づくエンコード（暗号化（難読化））を行いデータベース１０７に登録する。照合時には、エンコード／デコード手段１０６が、データベース１０７に登録されたエンコードデータを取得して、エンコードデータと、マトリクス生成手段１０５からマトリクスデータを入力して、これらの２つのデータに基づくデコード（復号）処理を実行して、デコード結果を照合手段１０８に出力する。照合手段１０８は、デコード結果と、新たに入力手段１０１を介して入力されたデータとの照合処理を実行する。
【００３７】
図１の構成と異なるのは、エンコード／デコード手段１０６が、エンコード処理やデコード処理において、ＰＮ系列生成手段の生成するＰＮ系列を適用するのではなく、
マトリクス生成手段１０５の生成するマトリクスを利用する点である。
【００３８】
マトリクス生成手段１０５は、図４に示す第１の擬似乱数生成手段である第１ＰＮ系列生成手段１０２からＰＮ系列データを入力する。さらに、第２の擬似乱数生成手段である第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データがアドレス決定手段１０４に入力され、アドレス決定手段１０４が、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データに基づいてアドレスを生成する。
【００３９】
マトリクス生成手段１０５は、第１ＰＮ系列生成手段１０２から入力するＰＮ系列データと、アドレス決定手段１０４が第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データに基づいて生成したアドレスを入力してマトリクスデータを生成する。
【００４０】
マトリクス生成手段１０５は、「０」、「１」のいずれかで構成されたマトリクスデータを生成する。第１ＰＮ系列生成手段１０２、第２ＰＮ系列生成手段１０３の構成は、先に図２を参照して説明したと同様の構成であり、例えば図５に示すように、ｎ段のシフトレジスタ１５１−１〜ｎと排他的論理和演算部１５２によって構成される。ただし、シフトレジスタの段数ｎは、第１ＰＮ系列生成手段１０２と、第２ＰＮ系列生成手段１０３とで等しくする必要はない。なお、第２ＰＮ系列生成手段１０３のシフトレジスタの段数はマトリクスの構成画素数に応じて決定するのが好ましい。この理由、および具体的なマトリクス生成処理については後述する。
【００４１】
次に、図６を参照して、エンコード／デコード手段１０６におけるマトリクスデータを利用した入力データのエンコード処理例について説明する。図６（ａ）は、入力データであり、例えば、ユーザの静脈情報の二値化された画像データである。この画像が例えば認証時の照合処理に適用されるテンプレート情報であり、これをエンコードしてデータベースに格納する。
図６（ｂ）は（ａ）入力データと同じサイズで生成したマトリクスデータの例である。図４に示すマトリクス生成手段１０５が生成する。
図６（ａ）、（ｂ）ともに、各画素の黒色は「０」を白色は「１」を表している。
図６（ｃ）エンコード結果データは、（ａ）と（ｂ）との間で対応画素ごとに排他的論理和演算を行った結果である。
【００４２】
エンコード処理について図７を参照して説明する。図７（ａ）〜（ｃ）は、図６（ａ）〜（ｃ）と同様、
（ａ）入力データ、
（ｂ）マトリクスデータ、
（ｃ）エンコード結果データ、
を示している。
【００４３】
図７には各データの対応画素をそれぞれ３点のみ示してある。
（ａ）入力データの画素２１１は黒画素であり、ビット値＝［０］、
（ｂ）マトリクスデータの対応点の画素２２１は黒画素であり、ビット値＝［０］、
である。
（ｃ）エンコード結果データにおける対応画素２３１の画素値は、
（ａ）入力データの画素２１１のビット値［０］（黒）と、（ｂ）マトリクスデータの対応点画素２２１のビット値［０］（黒）との排他的論理和結果、すなわち、
０（ＸＯＲ）０＝０
となり、ビット値［０］＝黒画素として設定される。
【００４４】
他の対応画素についても同様であり、
（ｃ）エンコード結果データにおける画素２３２の画素値は、
（ａ）入力データの画素２１２のビット値［１］（白）と、（ｂ）マトリクスデータの対応点画素２２２のビット値［０］（黒）との排他的論理和結果、すなわち、
１（ＸＯＲ）０＝１
となり、ビット値［１］＝白画素として設定される。
【００４５】
さらに、（ｃ）エンコード結果データにおける画素２３３の画素値は、
（ａ）入力データの画素２１３のビット値［１］（白）と、（ｂ）マトリクスデータの対応点画素２２３のビット値［１］（白）との排他的論理和結果、すなわち、
１（ＸＯＲ）１＝０
となり、ビット値［０］＝黒画素として設定される。
【００４６】
例えば、（ａ）入力データ、（ｂ）マトリクスデータともに、図７に示すように横６０画素×縦１６０画素の計９６００画素とすると、各対応画素ごとの９６００個の排他的論理和演算によって、（ｃ）エンコード結果データの９６００画素の画素値が決定されることになる。
【００４７】
このように、本発明のデータ処理装置におけるエンコード処理は、エンコード／デコード手段１０６におけるマトリクスデータを利用した処理として実行され、
［入力データの画素値］（ＸＯＲ）［マトリクスデータ］＝［エンコード結果データ］
として算出される。
このデータが、図４に示す構成におけるデータベース１０７に格納される。
【００４８】
また、デコード処理も、エンコード／デコード手段１０６におけるマトリクスデータを利用した処理として実行される。すなわち、（ｃ）エンコード結果データと、（ｂ）マトリクスデータの排他的論理和演算を実行してデコード結果を得る。
［エンコード結果データ］（ＸＯＲ）［マトリクスデータ］＝［デコード結果データ］
としてデコード結果が算出される。
排他的論理和演算を２度行うと元に戻る性質があるため、［デコード結果データ］は、（ａ）入力データと同じデータとなる。
【００４９】
本発明の構成では、ＰＮ系列を用いるのではなく、上述したようにマトリクスデータを適用したエンコードおよびデコード処理を実行する。従って、マトリクスデータの生成手法を秘匿しておくことにより、エンコードデータの安全性を確保することが出来る。
【００５０】
先に図１〜図３を参照して説明したＰＮ系列を直接適用したエンコードデータ生成処理は、上述したマトリクスデータの利用処理として説明すると、図８に示す設定となる。
【００５１】
図８（ａ）が、入力データであり、図８（ｂ１）が例えば図１に示す構成のＰＮ系列生成手段１３の生成するＰＮ系列データであり、図８（ｂ２）が、このＰＮ系列データをそのまま、画素順に縦に並べて生成したマトリクスデータである。縦１６０画素×横６０画素の画像サイズを例にとった場合の例である。図８（ｂ２）のマトリクスデータは、ＰＮ系列で生成したビット列を単純に画素アドレス順に配置した例である。図１に示す構成におけるエンコード／デコード手段１２は、図８（ａ）入力データと、図８（ｂ２）マトリクスデータとの対応画素の排他的論理和演算を実行してエンコード結果を得るという処理を行っている。
【００５２】
しかし、このようにＰＮ系列生成手段の生成するＰＮ系列をそのまま入力データとの排他的論理和演算に利用してエンコード結果を得る構成では、前述のようにＰＮ系列生成手段の生成するＰＮ系列データの連続したビット並びをある程度の長さ分抽出することでＰＮ系列生成のためのシフトレジスタ、帰還タップの構成を推測することが出来る。この解析が成功してしまうと全く同じマトリクスを再現される可能性がある。同じマトリクスを再現されてしまうということは、データベースに格納されたエンコード結果データから入力データを生成するデコード処理が可能になることを意味する。これでは、エンコードした画像データの安全性が確保されているとは到底言えない。
【００５３】
本発明のデータ処理装置では、このような解析処理を困難としたマトリクス生成処理を実行する。すなわち、より秘匿性の高いマトリクス生成手法を適用する。以下、本発明のマトリクス生成方法について、図９以下を参照して説明する。
【００５４】
図９は、図４に示すシステムにおける
第１ＰＮ系列生成手段１０２、
第２ＰＮ系列生成手段１０３、
アドレス決定手段１０４、
マトリクス生成手段１０５、
これらの各構成における処理を説明する図である。
【００５５】
マトリクス生成手段１０５は、縦１６０画素×横６０画＝９６００画素の画像データに相当するマトリクスを生成する。
第１ＰＮ系列生成手段１０２は、マトリクスに配置する画素値情報としての構成ビット情報からなるビット列を第１ＰＮ系列として生成する。
【００５６】
例えば第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列を、図に示すように、
［１０１００１００１００１・・・］
とした場合、
マトリクス生成手段１０２には、
第１ＰＮ系列［１０１００１００１００１・・・］の先頭から順に１ビットずつ入力される。
最初の第１ビットは［１］であり、これは、例えば（白）を意味する。
次の第２ビットは［０］であり、これは、例えば（黒）を意味する。
次の第３ビットは［１］であり、これは、例えば（白）を意味する。
これらは、マトリクス生成手段１０５の生成するマトリクスの１つの構成画素の画素値候補として設定される。
【００５７】
ただし、実際にマトリクスの１つの構成画素の画素値として設定されるのは、アドレス決定手段１０３から有効なマトリクスアドレスがマトリクス生成手段１０５に入力された場合のみである。アドレス決定手段１０３から有効なマトリクスアドレスがマトリクス生成手段１０５に入力された場合に、そのアドレス位置に、第１ＰＮ系列生成手段１０２から入力するビット情報に従った画素値（１＝白，０＝黒）が設定される。
【００５８】
マトリクスアドレス決定処理は、アドレス決定手段１０４において実行される。アドレス決定手段１０４は、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データを入力する。
【００５９】
第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データが、図に示すように、
［００１１０１０１０００１１１００１０１１・・］
とする。
アドレス決定手段１０４は、この第２ＰＮ系列データを入力して、予め定められた連続ビットを選択する。まず、先頭から１４ビットを選択する。この先頭１４ビットの示す数値が最初のマトリクスアドレスとして利用される。この例では、最初のマトリクスアドレスは、
［００１１０１０１０００１１１］
となる。これは、１０進数として示すと、
［１４５０８］
となる。
【００６０】
マトリクスアドレスについて、図１０を参照して説明する。マトリクスアドレスは、マトリクス生成手段１０５の生成するマトリクスの画素位置を示す。図１０に示す例では、縦１６０画素×横６０画＝９６００画素の画像データに相当するマトリクスであり、アドレスは、左上端を［１］として、以下、下方向に１つずつ増加して、最下段に至ると右列の上端から［１６１］のアドレスとなり、右下端の画素アドレスが［９６００］とする設定とされる。
【００６１】
この例では、縦１６０画素×横６０画＝９６００画素のマトリクスであり、
アドレスは１〜９６００が有効アドレスとして利用される。
従って、図９を参照して説明したアドレス決定手段１０４の生成する最初のマトリクスアドレス、
［００１１０１０１０００１１１］＝［１４５０８］
は、９６００を超えているので、無効となる。
【００６２】
この場合、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の最初の第１ビットは［１］＝（白）は、マトリクス生成手段１０５の生成するマトリクスの構成画素情報としては利用されないことになる。
【００６３】
なお、アドレス決定手段１０４は、第２ＰＮ系列データを入力して、予め定められた連続ビットを選択すると説明したが、本例では、連続１４ビットを選択する設定としている。これは、マトリクスの構成画素数＝９６００に基づいて決定されるものであり
２１４≧９６００≧２１３
であるので、アドレスデータ１〜９６００が得られるビットデータ数を選択するためである。
【００６４】
なお、図１１以下を参照して、順次、説明するが、アドレス決定手段１０４は、第２ＰＮ系列データから、
第１アドレス：第１〜１４ビット、
第２アドレス：第２〜１５ビット、
第３アドレス：第３〜１６ビット、
第４アドレス：第４〜１７ビット、
・・・
という設定で、順次アドレスを決定する。この各１４ビットデータにおいて１〜９６００である場合に有効アドレスとしてマトリクス生成手段１０５が画素位置を決定する。
【００６５】
マトリクスの構成画素１〜９６００を全て埋めるためには、１〜９６００のアドレスが生成されることが必要となる。この１〜９６００のアドレス生成が保証されるためには、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データの周期が一定以上であることが必要となる。この場合、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データの周期が９６００以上であることが必要である。実施例では、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データの周期は［２１４−１］として設定している。先に説明したように、ＰＮ系列の特徴は、シフトレジスタ内のデータが全て０というパターンを除く全ての状態を取り得るため、周期は２の（シフトレジスタの段数）乗−１となる。図２の場合は、シフトレジスタの段数が３なので、周期は、
２３−１＝７となる。
従って、第２ＰＮ系列データの周期を［２１４−１］とする場合は、シフトレジスタの段数＝１４とすればよい。
【００６６】
図１１を参照して、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第２ビット［０］＝（黒）に対応する処理について説明する。
【００６７】
図１１において、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列の第２ビット［０］＝（黒）は、マトリクス生成手段１０５の生成するマトリクスの１つの構成画素の画素値候補として設定される。
【００６８】
アドレス決定手段１０４は、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データ、すなわち、
［００１１０１０１０００１１１００１０１１・・］
この第２ＰＮ系列データを入力して、
第２ビット〜第１５ビットの１４ビットを選択する。この１４ビットの示す数値が
第１ＰＮ系列の第２ビット［０］＝（黒）のマトリックス配置位置としてのマトリクスアドレスとして利用される。この例では、マトリクスアドレスは、
［０１１０１０１０００１１１０］
となる。これは、１０進数として示すと、
［７２５４］
となる。
【００６９】
［７２５４］は、マトリクスの最大アドレス［９６００］以下となるので、有効アドレスとして利用される。この場合、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第２ビット［０］＝（黒）は、マトリクス生成手段１０５の生成するマトリクスの構成画素情報として利用され、アドレス決定手段１０４の決定したアドレス、
［０１１０１０１０００１１１０］＝［７２５４］
の示すアドレス位置に
［０］＝（黒）
が設定される。
【００７０】
次に図１２を参照して、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第３ビット［１］＝（白）に対応する処理について説明する。
【００７１】
図１２において、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列の第３ビット［１］＝（白）は、マトリクス生成手段１０５の生成するマトリクスの１つの構成画素の画素値候補として設定される。
【００７２】
アドレス決定手段１０４は、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データ、すなわち、
［００１１０１０１０００１１１００１０１１・・］
この第２ＰＮ系列データを入力して、
第３ビット〜第１６ビットの１４ビットを選択する。この１４ビットの示す数値が
第１ＰＮ系列の第３ビット［１］＝（白）のマトリックス配置位置としてのマトリクスアドレスとして利用される。この例では、マトリクスアドレスは、
［１１０１０１０００１１１００］
となる。これは、１０進数として示すと、
［３６２７］
となる。
【００７３】
［３６２７］は、マトリクスの最大アドレス［９６００］以下となるので、有効アドレスとして利用される。この場合、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第３ビット［１］＝（白）は、マトリクス生成手段１０５の生成するマトリクスの構成画素情報として利用され、アドレス決定手段１０４の決定したアドレス、
［１１０１０１０００１１１００］＝［３６２７］
の示すアドレス位置に
［１］＝（白）
が設定される。
【００７４】
次に図１３を参照して、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第４ビット［０］＝（黒）に対応する処理について説明する。
【００７５】
図１３において、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列の第４ビット［０］＝（黒）は、マトリクス生成手段１０５の生成するマトリクスの１つの構成画素の画素値候補として設定される。
【００７６】
アドレス決定手段１０４は、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データ、すなわち、
［００１１０１０１０００１１１００１０１１・・］
この第２ＰＮ系列データを入力して、
第４ビット〜第１７ビットの１４ビットを選択する。この１４ビットの示す数値が
第１ＰＮ系列の第４ビット［０］＝（黒）のマトリックス配置位置としてのマトリクスアドレスとして利用される。この例では、マトリクスアドレスは、
［１０１０１０００１１１００１］
となる。これは、１０進数として示すと、
［１０００５］
となる。
【００７７】
［１０００５］は、マトリクスの最大アドレス［９６００］を超えているので、有効アドレスとして利用されず、無効となる。この場合は、第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列、
［１０１００１００１００１・・・］
の第４ビット［０］＝（黒）は、マトリクス生成手段１０５の生成するマトリクスの構成画素情報として利用されない。
【００７８】
この処理を順次、実行していくことで、マトリクス生成手段の生成する縦１６０画素×横６０画＝９６００画素の画像データの全が素地が設定されることになる。これは、先に説明したように、ＰＮ系列の特徴は、シフトレジスタ内のデータが全て０というパターンを除く全ての状態を取るため、第２ＰＮ系列データの周期を［２１４−１］とした場合、
第１〜１４ビット、
第２〜１５ビット、
第３〜１６ビット、
・・・
という設定でビットデータを選択していくと、［２１４−１］＝１６３８３のパターンが出現することになるからである。このように第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データは１周期の中で１〜１６３８３の全ての値を取り得るため、１周期分の処理が終わった時点では確実にマトリクス上の全てのアドレスに対するビットが確定することになる。
【００７９】
このようにして生成したマトリクスデータが、例えば、先に図６を参照して説明した（ｂ）マトリクスデータとなる。図４に示すマトリクス生成手段１０５は、このようにして第１ＰＮ系列生成手段１０２の生成する第１ＰＮ系列の構成ビットをマトリクス構成画素値として利用し、第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列の構成ビットをマトリクスアドスとして利用してマトリクス画素を「０」、「１」のいずれかで構成されたマトリクスデータを生成する。
【００８０】
図４に示すエンコード／デコード手段１０６は、このようにして生成されたマトリクスデータを利用した入力データのエンコード、デコード処理を実行する。すなわち、先に図６、図７を参照して説明したように、エンコード処理は、エンコード／デコード手段１０６におけるマトリクスデータを利用した処理として実行され、
［入力データの画素値］（ＸＯＲ）［マトリクスデータ］＝［エンコード結果データ］
として算出される。
このデータが、図４に示す構成におけるデータベース１０７に格納される。
【００８１】
また、デコード処理も、エンコード／デコード手段１０６におけるマトリクスデータを利用した処理として実行される。すなわち、（ｃ）エンコード結果データと、（ｂ）マトリクスデータの排他的論理和演算を実行してデコード結果を得る。
［エンコード結果データ］（ＸＯＲ）［マトリクスデータ］＝［デコード結果データ］
としてデコード結果が算出される。
排他的論理和演算を２度行うと元に戻る性質があるため、［デコード結果データ］は、（ａ）入力データと同じデータとなる。
【００８２】
次に、図１４に示すフローチャートを参照して本発明のデータ処理装置において実行する入力データのエンコード処理のシーケンスについて説明する。まず、ステップＳ１０１においてエンコード対象とするデータ、例えば上述した例では、静脈情報からなる画像データを入力する。これは、図４の構成図における入力手段１０１を介して入力される。
【００８３】
次に、ステップＳ１０２において、図４の構成図における第１ＰＮ系列生成手段１０２が第１ＰＮ系列データを生成する。この第１ＰＮ系列データは、先に説明したようにマトリクス生成手段１０５において生成するマトリクスデータの構成画素の画素値指定情報として利用されるデータである。例えば０＝黒、１＝白とする。なお、実施例では、０＝黒、１＝白とする設定例を説明したが、逆の設定としてもよく、また、白、黒以外のデータを対応させてもよい。
【００８４】
ステップＳ１０３は、図４の構成図における第２ＰＮ系列生成手段１０３において第２ＰＮ系列データを生成するステップである。この第２ＰＮ系列データは、先に説明したようにマトリクス生成手段１０５において生成するマトリクスデータのアドレス（マトリクスアドレス）として利用される。
【００８５】
ステップＳ１０４は、図４の構成図におけるアドレス決定手段１０４の処理であり、ステップＳ１０３において第２ＰＮ系列生成手段１０３の生成する第２ＰＮ系列データから予め決定された所定の連続ビットを順次選択してマトリクスアドレス値とする処理である。アドレス決定手段１０４は、さらにステップＳ１０５において、第２ＰＮ系列データから選択したビット情報によって構成されるマトリクスアドレス値が、マトリクス生成手段１０５において生成するマトリクスの最大アドレス以下の数値であるか否かを判定する。上述した実施例では、マトリクス生成手段１０５において生成するマトリクスは、６０×１６０＝９６００の画素数であり、マトリクスアドレスとして１〜９６００が有効となり、第２ＰＮ系列データから選択したビット情報によって構成されるマトリクスアドレス値が９６００以下であるか否かを判定することになる。
【００８６】
第２ＰＮ系列データから選択したビット情報によって構成されるマトリクスアドレス値が最大マトリクスアドレス以下である場合は、ステップＳ１０６に進み、最大マトリクスアドレス以下でない場合は、ステップＳ１１１に進む。ステップＳ１１１では、ビットシフト処理を実行する。このビットシフト処理は、以下の２つの処理によって構成される。
（ａ）第１ＰＮ系列生成手段１０２が生成する第１ＰＮ系列データからの画素値用の選択ビットを１つずらす処理、
（ｂ）第２ＰＮ系列生成手段１０３が生成する第２ＰＮ系列データからのアドレス用の選択ビット領域を１つずらす処理、
これらのビットシフトを実行する。これらのビットシフトの後、ステップｓ１０４以下の処理を繰り返し実行する。
【００８７】
一方、第２ＰＮ系列データから選択したビット情報によって構成されるマトリクスアドレス値が最大マトリクスアドレス以下である場合は、ステップＳ１０６に進み、ステップＳ１０６において、第２ＰＮ系列に基づいて決定されたマトリクスアドレスの指定アドレス位置に第１ＰＮ系列から選択されたビット情報に基づくデータ（例えば、［１］＝白、［０］＝黒）を設定する。この処理は、図４に示すマトリクス生成手段１０５において実行される。
【００８８】
次に、ステップＳ１０７において、マトリクス生成手段１０５は、マトリクス上の全アドレス位置（例えば１〜９６００）にデータ（画素値）が設定されたか否かを判定する。未処理のアドレスがある場合は、ステップＳ１１１に進み、前述したビットシフト処理を実行した後、ステップＳ１０４以下の処理を繰り返し実行する。
【００８９】
ステップＳ１０７において、マトリクス上の全アドレス位置（例えば１〜９６００）にデータ（画素値）が設定されたと判定された場合は、ステップＳ１０８に進み、図４に示すエンコード／デコード手段１０６がステップＳ１０１において入力した入力データと、生成したマトリクスデータとの対応画素の排他的論理和演算を実行してエンコードデータを生成する。この処理によって、先に、図６を参照して説明したエンコードデータが生成される。
【００９０】
このようにして生成されたエンコードデータが記憶部に格納される。なお、照合処理に際しては、エンコード／デコード手段１０６がエンコードデータとマトリクスデータとの排他的論理和演算を実行して、入力データを再現し、照合手段１０８において新たに入力された入力データとの照合処理が実行される。エンコードデータに対してデコード処理を行なう場合には、第１ＰＮ系列、第２ＰＮ系列ともにシフトレジスタの初期値をエンコード時と同じ値にすることにより、エンコード時と全く同じマトリクスを生成することで元の画像データを復元することが出来る。
【００９１】
このようにデコード処理において利用するマトリクスは、エンコード処理において利用したマトリクスと同じマトリクスを利用する。このマトリクスはエンコード時に生成したものを記憶部に格納しておいてもよいし、あるいはデコード処理に際して、エンコード処理において生成したと同様のシーケンスに従ったマトリクス生成処理を実行して同じマトリクスを生成する構成としてもよい。
【００９２】
本発明に従ったマトリクスを利用したエンコード、デコード処理では、ある１つのＰＮ系列生成手段が生成したビット列が、他のＰＮ系列生成手段の生成したアドレスに従ってマトリクス上でランダムに配置されることになり、マトリクス上のビット並びから元のＰＮ系列生成手法を推測することが著しく困難となる。従って、エンコード時と全く同じマトリクスを生成して画像データを復元される危険性を大きく低減することが可能となる。また、第１ＰＮ系列の全てのビットを画素値として使用するのではなく、第２ＰＮ系列のアドレス値に応じて、マトリクス上の画素値として配置される場合と配置されない場合とが発生することになるので、万が一マトリクス生成時に順次使用されたビットデータの列が解析されたとしても元のＰＮ系列データとは異なることになるため、元のＰＮ系列の解析はほぼ不可能であり、マトリクス生成手法の推測は困難となる。
【００９３】
さらに、マトリクスのビット列生成用の第１ＰＮ系列、アドレス生成用の第２ＰＮ系列ともにシフトレジスタの初期値を変化させることにより、生成されるビット列、アドレスをランダムな順序に変化させることが可能であり、毎回あるいは適宜、これらの初期値の変更を行えばマトリクス生成手法の秘匿性をより一層高めることが可能となる。
【００９４】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【００９５】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００９６】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【００９７】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【００９８】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【００９９】
以上、説明したように、本発明の一実施例の構成はマトリクスを利用したエンコード、デコード処理を実行する構成であり、ある１つのＰＮ系列生成手段が生成したＰＮ系列の構成ビット情報を、他のＰＮ系列生成手段の生成したＰＮ系列から決定されたアドレスに従ってマトリクス上でランダムに配置したマトリクスを利用したエンコード、デコード処理を実行する構成とした。本構成によればマトリクス上のビット並びから元のＰＮ系列生成手法を推測することが困難となり、データ漏洩の可能性を低減した安全性の高いデータ処理が可能となる。また、第１ＰＮ系列の全てのビット値をマトリクス構成データとして使用せず、第２ＰＮ系列のアドレス値に応じてマトリクス構成データとしての利用有無を決定する構成としたので、マトリクス構成ビットデータが元のＰＮ系列データと等しくならずオリジナルＰＮ系列の解析や、エンコードデータからのオリジナルデータの解析困難性が高まり、安全性の高いデータ処理システムが実現される。
【図面の簡単な説明】
【０１００】
【図１】ＰＮ系列を利用してエンコード（暗号化（難読化））を行いデータベースに登録する認証システムの構成例を示す図である。
【図２】ＰＮ系列生成手段の構成例および周期について説明する図である。
【図３】ＰＮ系列を利用したデータのエンコード処理とデコード処理の例について説明する図である。
【図４】本発明のデータ処理装置の一実施例としての認証システムの構成について説明する図である。
【図５】ＰＮ系列生成手段の構成例について説明する図である。
【図６】エンコード／デコード手段におけるマトリクスデータを利用した入力データのエンコード処理例について説明する図である。
【図７】エンコード／デコード手段におけるマトリクスデータを利用した入力データのエンコード処理例について説明する図である。
【図８】ＰＮ系列を直接適用したエンコードデータ生成処理をマトリクスデータの利用処理として説明する図である。
【図９】本発明におけるマトリクス生成処理例について説明する図である。
【図１０】マトリクスアドレスについて説明する図である。
【図１１】本発明におけるマトリクス生成処理例について説明する図である。
【図１２】本発明におけるマトリクス生成処理例について説明する図である。
【図１３】本発明におけるマトリクス生成処理例について説明する図である。
【図１４】本発明のデータ処理装置において実行する入力データのエンコード処理のシーケンスについて説明するフローチャートを示す図である。
【符号の説明】
【０１０１】
１０  認証システム
１１  入力手段
１２  エンコード／デコード手段
１３  ＰＮ系列生成手段
１４  データベース
１５  照合手段
２１〜２３  シフトレジスタ
２４  排他的論理和演算部
１００  認証システム
１０１  入力手段
１０２  第１ＰＮ系列生成手段
１０３  第２ＰＮ系列生成手段
１０４  アドレス決定手段
１０５  マトリクス生成手段
１０６  エンコード／デコード手段
１０７  データベース
１０８  照合手段
１５１  シフトレジスタ
１５２  排他的論理和演算部
２１１〜２１３  画素
２２１〜２２３  画素
２３１〜２３３  画素
【図１】
2008177654.tif 000003
【図２】
2008177654.tif 000004
【図３】
2008177654.tif 000005
【図４】
2008177654.tif 000006
【図５】
2008177654.tif 000007
【図６】
2008177654.tif 000008
【図７】
2008177654.tif 000009
【図８】
2008177654.tif 000010
【図９】
2008177654.tif 000011
【図１０】
2008177654.tif 000012
【図１１】
2008177654.tif 000013
【図１２】
2008177654.tif 000014
【図１３】
2008177654.tif 000015
【図１４】
2008177654.tif 000016