以下、本発明の実施形態に係るデータ処理装置、方法およびプログラムについて図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
以下では、画像データから生成した暗号キーでデータを暗号化した後に暗号キーを破棄し、暗号キーを生成した画像データから生成した復号キーで暗号化したデータを復号することにより、暗号キーの漏洩のリスクを低減することができるデータ処理装置の動作と構成について説明する。
データ処理装置1は、図1に示すように、入力部10と、記憶部11と、暗号キー生成部12と、暗号化部13と、復号キー生成部14と、復号部15とを備える。また、データ処理装置1の暗号方式は、共通鍵方式でもよいし公開鍵方式でもよい。共通鍵方式の場合には、暗号キーと復号キーは、共通である。また、公開鍵方式の場合には、暗号キーが公開鍵になり、復号キーが秘密鍵になる。
入力部10は、入力された画像データを記憶部11に記憶する。本実施例では、画像データは、書類をスキャナ等で画像化して変換されたデータを想定するが、パソコンなどの端末装置で作成したデータであってもよい。さらに、画像データは、ユーザの帳簿などから任意に抽出したものをスキャナで読み込んで生成したものでもよい。記憶部11は、入力部10から入力された画像データを記憶する。
暗号キー生成部12は、記憶部11に記憶されている画像データに基づいて暗号キーを生成する。例えば、暗号キー生成部12は、画像データを文字認識処理して得られたテキストデータから暗号キーを生成する。
ここで、暗号キーを生成する具体的な手順について説明する。暗号キー生成部12は、記憶部11に記憶されている複数の画像データの中から画像データを選択し、予め設定されている座標データに基づいて、画像データを項目ごとに抽出する。なお、暗号キー生成部12は、画像データの罫線を抽出し、枠構造を解析し、読取対象枠の位置推定などの構造解析を行い、画像データを項目ごとに抽出してもよい。図2は、暗号キー生成部12により、画像データAから4つのデータ(図2中の項目データa1〜a4)が抽出された様子を模式的に示す例である。
暗号キー生成部12は、例えば、電話項目データa4をテキストデータに変換する。図2に示す例では、電話項目データa4のテキストデータは、「03−1234・・・」である。暗号キー生成部12は、数字「0」の文字コード(Shift JIS)である「0X824F」と、数字「3」の文字コード(Shift JIS)である「0X8252」を組み合わせて、暗号キー「0X824F0X8252」を生成する。なお、暗号キーは2個の文字に限られない。また、文字コードは、Shift JISに限られない。
暗号化部13は、暗号キー生成部12で生成された暗号キーにより、データを暗号化する。暗号化部13は、暗号化したデータ(以下、暗号化データという)を記憶部11に保存する。また、暗号化部13は、データを暗号化した後に暗号キーを破棄する。具体的には、暗号キー生成部12は、生成した暗号キーを揮発性メモリに保存する。そして、暗号化部13は、データを暗号化した後に揮発性メモリから暗号キーを破棄する。つまり、暗号キーは、インメモリのみに一時的に保存され、記憶部11のような不揮発性メモリに保存されない。
復号キー生成部14は、暗号キー生成部12で暗号キーを生成するときに利用した画像データに基づいて復号キーを生成する。
ここで、復号キーを生成する具体的な手順について説明する。復号キー生成部14は、記憶部11に記憶されている複数の画像データの中から、暗号キーを生成した画像データを選択し、予め設定されている座標データに基づいて、画像データを項目ごとに抽出する。なお、復号キー生成部14は、画像データの罫線を抽出し、枠構造を解析し、読取対象枠の位置推定などの構造解析を行い、画像データを項目ごとに抽出してもよい。
例えば、復号キー生成部14は、記憶部11から暗号化データを読み出し、暗号化データのプロパティなどを参照して暗号キーの生成元になった画像データのファイル名を特定する。復号キー生成部14は、特定したファイル名に基づいて、記憶部11から暗号キーを生成した画像データを選択する。
復号キー生成部14は、項目データ(図2に示す電話項目データa4)をテキストデータに変換する。復号キー生成部14は、数字「0」の文字コード(Shift JIS)である「0X824F」と、数字「3」の文字コード(Shift JIS)である「0X8252」を組み合わせて、復号キー「0X824F0X8252」を生成する。
復号部15は、復号キー生成部14で生成された復号キーにより、暗号化部13で暗号化されたデータを復号する。復号部15は、復号したデータを記憶部11に保存する。また、復号部15は、データを復号した後に復号キーを破棄してもよい。具体的には、復号キー生成部14は、生成した復号キーを揮発性メモリに保存する。そして、復号部15は、暗号化データを復号した後に揮発性メモリから復号キーを破棄する。つまり、復号キーは、インメモリのみに一時的に保存され、記憶部11のような不揮発性メモリに保存されない。
よって、データ処理装置1は、画像データから生成した暗号キーでデータを暗号化した後に暗号キーを破棄し、暗号キーを生成した画像データから生成した復号キーで暗号化したデータを復号するので、暗号キーの漏洩のリスクを低減することができる。
また、暗号化部13は、暗号化するデータの元になった画像データとは異なる画像データに基づいて暗号キーを生成する構成でもよい。
例えば、図3に示す画像データBのカタカナの項目のテキストデータ「イショウジロウ」を暗号化する場合には、暗号化部13は、暗号化するデータの元になった画像データBとは異なる画像データ(例えば、図2に示す画像データA)に基づいて暗号キーを生成する。具体的には、暗号化部13は、図2に示す電話項目データa4をテキストデータに変換し、数字「0」の文字コード(Shift JIS)である「0X824F」と、数字「3」の文字コード(Shift JIS)である「0X8252」を組み合わせて、暗号キー「0X824F0X8252」を生成する。
よって、データ処理装置1は、暗号化するデータの元になった画像データとは異なる画像データに基づいて暗号キーを生成し、生成した暗号キーによってデータを暗号化するので、第三者にとって暗号キーを生成するための画像データの特定が困難であり、暗号化に用いる暗号キーの漏洩のリスクを低減することができる。
また、暗号キー生成部12は、複数の文字が重ね合わされた画像データ(以下、重合画像データという)を文字認識処理して得られたテキストデータから暗号キーを生成する構成でもよい。
例えば、図4に示すように、画像データC1と画像データC2とを重ね合わせて、重合画像データC3を生成し、記憶部11に保存しておく。なお、図4に示す例では、画像データC1は、漢字「鈴」の画像データであり、画像データC2は、漢字「木」の画像データである。
暗号キー生成部12は、重合画像データC3を記憶部11から読み出し、読み出した重合画像データC3を文字認識処理する。暗号キー生成部12は、得られたテキストデータ「鈴木」から暗号データを生成する。具体的には、暗号化部13は、漢字「鈴」の文字コード(Shift JIS)である「0X97E9」と、数字「木」の文字コード(Shift JIS)である「0X96D8」を組み合わせて、暗号キー「0X97E90X96D8」を生成する。
また、暗号キー生成部12は、予め重合画像データを記憶部11に保存しておかなくてもよい。暗号キー生成部12は、例えば、図5に示すように、画像データD1(漢字「中」の画像データ)と画像データD2(漢字「一」の画像データ)とを重ね合わせて重合画像データD3(漢字「申」の画像データ)を生成し、生成した重合画像データD3を文字認識処理する。暗号キー生成部12は、得られたテキストデータ「申」から暗号キーを生成する。図5に示す例では、暗号キーは、漢字「申」の文字コード(Shift JIS)の「0X905C」である。なお、暗号キー生成部12は、一つの画像データに基づいて重合画像データを生成してもよいし、複数の画像データに基づいて重合画像データを生成してもよい。
よって、データ処理装置1は、複数の文字が重ね合わされた重合画像データを文字認識処理し、当該処理により得られたテキストデータから暗号キーを生成するので、判別性が下がって、文字認識処理に時間がかかるため、意図しない第三者からのアクセスに気づかせることができ、暗号キーの漏洩を防ぐことができる。
また、暗号キー生成部12は、複数の項目から構成される画像データから項目ごとに画像データを抽出し、各画像データを文字認識処理して得られたテキストデータを組み合わせて暗号キーを生成する構成でもよい。
例えば、図2に示すように、暗号キー生成部12は、氏名項目データa2と電話項目データa4の文字認識処理を行ってテキストデータに変換する。図2に示す例では、氏名項目データa2のテキストデータは、「特許太郎」であり、電話項目データa4のテキストデータは、「03−1234・・・」である。
暗号キー生成部12は、漢字「特」、「太」と数字「0」、「1」に基づいて暗号キーを生成する。例えば、暗号キー生成部12は、「特」の文字コード(Shift JIS)である「0X93C1」と、「太」の文字コード(Shift JIS)である「0X91BE」と、「0」の文字コード(Shift JIS)である「0X824F」と、「1」の文字コード(Shift JIS)である「0X8250」を組み合わせて、暗号キー「0X93C10X91BE0X824F0X8250」を生成する。なお、上述した暗号キー「特太01」は、一例であり、これに限られない。また、文字コードは、Shift JISに限られない。
よって、データ処理装置1は、複数の項目から画像データを抽出して暗号キー(例えば、「特太01」)を生成するので、どの画像データのどこの部分が暗号キーの元になっているのか特定が困難であり、暗号キーの漏洩のリスクを低減することができる。
また、暗号キーは、漢字を含むテキストデータにより構成されていてもよい。例えば、暗号キー生成部12は、図2に示す住所項目データa3の文字認識処理を行ってテキストデータに変換する。図2に示す例では、住所項目データa3のテキストデータは、「東京都千代田区・・・1−2」である。暗号キー生成部12は、漢字「東」と数字「1」に基づいて暗号キーを生成する。例えば、暗号キー生成部12は、「東」の文字コード(Shift JIS)である「0X938C」と、「1」の文字コード(Shift JIS)である「0X8250」を組み合わせて、暗号キー「0X938C0X8250」を生成する。なお、上述した暗号キー「東1」は、一例であり、これに限られない。また、文字コードは、Shift JISに限られない。
よって、データ処理装置1は、漢字を含むテキストデータを暗号キー(例えば、「東1」)にするので、高度な文字認識処理が必要になり、暗号キーの漏洩のリスクを低減することができる。また、データ処理装置1は、暗号キーを辞書に載っていない文字の組み合わせで生成することにより、どの画像データのどこの部分が暗号キーの元になっているのか特定を困難にし、暗号キーの漏洩のリスクを低減することができる。
また、暗号キーは、辞書に載っていないテキストデータであってもよい。例えば、暗号キー生成部12は、カタカナ項目データa1の文字認識処理を行ってテキストデータに変換する。図2に示す例では、カタカナ項目データa1のテキストデータは、「トッキョタロウ」である。暗号キー生成部12は、辞書を参照して、辞書に載っていない文字である「ッキ」に基づいて暗号キーを生成する。例えば、暗号キー生成部12は、「ッ」の文字コード(Shift JIS)である「0X8362」と、「キ」の文字コード(Shift JIS)である「0X8362」を組み合わせて、暗号キー「0X83620X8362」を生成する。なお、上述した暗号キー「ッキ」は、一例であってこれに限られない。また、文字コードは、Shift JISに限られない。
よって、データ処理装置1は、辞書に載っていないテキストデータを暗号キー(例えば、「ッキ」)にするので、辞書に載っていない文字の組み合わせであり、どの画像データのどこの部分が暗号キーの元になっているのか特定が困難であり、暗号キーの漏洩のリスクを低減することができる。
ここで、暗号キー生成部12の文字認識処理について説明する。暗号キー生成部12は、概念的には、バックプロパゲーション(誤差逆伝播法)によって、入力層、一または複数の中間層、および出力層から構成される多層のニューラルネットワークを学習させるアルゴリズムを利用して、文字認識を行う。
暗号キー生成部12は、図6に示すように、記憶部20と、画像認識部21と、自然言語処理部22と、判断部23と、出力部24とを備える。
記憶部20は、画像データが保存されており、暗号キー生成部12の専用の記憶部として説明するが、記憶部11の一部として構成されてもよい。画像認識部21は、画像データを項目ごとに認識してテキストデータを生成する。自然言語処理部22は、画像認識部21により生成されたテキストデータを自然言語処理する。判断部23は、画像認識部21により生成されたテキストデータと自然言語処理部22により自然言語処理されたテキストデータを対比する。また、暗号キー生成部12は、判断部23から出力されるテキストデータを暗号キーとして出力する出力部24を備える。出力部24は、暗号キーを記憶部11に保存する。また、暗号キー生成部12は、画像認識部21、自然言語処理部22および判断部23とを独立に機能させ、それぞれの出力結果が相互に出力結果に影響を与えることにより、所定以上の尤度のテキストデータを出力する。
ここで、画像認識部21の動作について説明する。画像認識部21は、画像データに基づいて、読取対象である文字行を抽出する。画像認識部21は、文字行画像から文字パターン候補の切出しと、各文字パターンの文字識別を行う。
つぎに、文字識別の手順について説明する。画像認識部21は、図7に示すように、切出した1個の文字パターンの画像データに対して特徴抽出を行う。そして、画像認識部21は、文字のストロークの方向成分などを抽出して、画像データを1つのベクトルに変換する。図7に示す例では、画像データXが多層のニューラルネットワークに入力され、方向や位置等の特徴を捉えて特徴抽出をされている様子を模式的に示している。また、図7に示す例では、ベクトルX1と、ベクトルX2と、ベクトルX3とに変換された様子を模式的に示している。
画像認識部21は、図8に示すように、変換されたベクトルに基づいて、字種が何であるかを判定する。画像認識部21は、当該判定において、事前に大量のパターンを使った分布の様子から、どの字種が特徴空間上のどの辺に分布しているかを保持している辞書データを参照し、未知の入力パターンである画像データの候補を決定する。図8に示す例では、辞書データにおいて、字種「中」、字種「申」および字種「十」の情報が記憶されている様子を概念的に示している。
画像認識部21は、以上のプロセスにより、複数のテキスト候補(例えば、中、申、十)と、各テキスト候補の尤度を取得する。なお、各テキスト候補の尤度は、特徴空間内における各候補の中心と、未知の入力パターンである画像データとの距離で算出することができる。
また、画像認識部21は、図6に示すように、第1画像認識部21aと、第2画像認識部21bとから構成されている。
第1画像認識部21aは、記憶部20から画像データを読み出し、多層のニューラルネットワークを用いて当該画像データから特徴点を抽出し、複数のテキスト候補と尤度を出力する。
第2画像認識部21bは、記憶部20から画像データを読み出し、多層のニューラルネットワークを用いて当該画像データから特徴点を抽出し、テキストデータよりも小さい因子である素因子テキストに分離されたテキスト候補と尤度を出力する。
第1画像認識部21aと第2画像認識部21bとの主な違いは、画像認識の機械学習を行う際に利用する学習データの違いである。第1画像認識部21aは、1文字を1文字として出力するように学習データが用意されているのに対し、第2画像認識部21bは、1文字をより小さい因子である素因子テキストに分離して出力するように学習データが用意されている。例えば、第1画像認識部21aは、「特」という文字を「特」として出力する。第2画像認識部21bは、「特」という文字を「牛」と「寺」として出力する。
よって、暗号キー生成部12は、様々な手書き文字が含まれている書類について、所定以上の尤もらしさが得られるまで処理を繰り返すので、信頼性の高い高精度な文字認識を行うことができる。
また、判断部23は、自然言語処理部22により出力されたテキスト候補の中で、尤度の高いテキスト候補を第1画像認識部21aにより出力されたテキスト候補よりも優先的に扱う構成でもよい。
当該構成の場合には、暗号キー生成部12は、より自然言語処理部22による処理を優先するので、自然言語処理に適しているといえ、文章の文字認識に対して強みを発揮する。
また、判断部23は、対比した結果、2つのテキスト候補の差分が所定の閾値を超えない場合に、所定以上の尤度のテキストデータであると判断して出力する構成でもよい。つまり、判断部23は、自然言語処理部22により出力されたテキスト候補と、第1画像認識部21aにより出力されたテキスト候補とがほぼ一致している場合に、所定以上の尤度のテキストデータであると判断する。
当該構成の場合には、暗号キー生成部12は、自然言語処理部22と第1画像認識部21aの二つの処理の結果を利用して文字認識を行っているので、高精度に文字認識を行うことができる。
暗号キー生成部12は、図6に示すように、処理にかかる時間を設定する設定部25を備える構成でもよい。設定部25は、例えば、ユーザの指示にしたがって、処理時間を10分などに設定する。
判断部23は、第1画像認識部21aにより出力された最も尤度の高いテキスト候補と、自然言語処理部22により出力された最も尤度の高いテキスト候補とを対比し、所定以上の尤もらしさを得られなかった場合、設定部25によって設定された時間以内において、所定以上の尤もらしさが得られるまで、尤度の高い順に他の候補同士の対比を行う。
よって、暗号キー生成部12は、設定された時間内において、所定以上の尤もらしさが得られるまで処理を繰り返すので、認識処理を何回行っても所定以上の尤もらしさが得られないような認識困難な画像データに対して何度も試行を繰り返すことがないメリットがある。
また、第2画像認識部21bは、項目ごとに適した多層のニューラルネットワークを機械学習により有しており、画像データに含まれる項目を探索し、当該項目に適した多層のニューラルネットワークを用いて画像データから特徴点を抽出し、テキストデータよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する構成でもよい。
例えば、「申込日」のような項目には、「2015年5月1日」等の申込日に関する情報が入力されることが予想できる。つまり、「申込日」のような項目は、数字「0〜9」と、漢字「年」,「月」,「日」が入力され、他の文字は入力されない。よって、第2画像認識部21bは、認識する項目が「申込日」のような場合には、数字「0〜9」と、漢字「年」,「月」,「日」とを出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストデータよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
また、「フリガナ」のような項目には、「トッキョタロウ」等の氏名のカタカナに関する情報が入力されることが予想できる。つまり、「フリガナ」のような項目は、カタカナ「ア〜ン」等が入力され、他の文字(漢字、数字等)は入力されない。よって、第2画像認識部21bは、認識する項目が「フリガナ」のような場合には、カタカナを出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストデータよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
また、「電話番号」のような項目には、「03−1234−5678」等の電話番号に関する情報が入力されることが予想できる。つまり、「電話番号」のような項目は、数字「0〜9」とハイフン「−」が入力され、他の文字(漢字、ひらがな等)は入力されない。よって、第2画像認識部21bは、認識する項目が「電話番号」のような場合には、数字「0〜9」とハイフン「−」を出力するようなニューラルネットワークを用いて画像データから特徴点を抽出し、テキストデータよりも小さい因子である素因子テキストに分離されたテキスト候補を出力する。
よって、暗号キー生成部12は、画像データを高精度にテキストデータに変換することができる。なお、復号キー生成部14の文字認識処理も上述した暗号キー生成部12による文字認識処理と同様なので、文字認識処理の機能は、暗号キー生成部12と復号キー生成部14とで兼用されてもよい。
また、暗号キー生成部12は、画像データを画像認識処理して得られた結果に基づいて暗号キーを生成する構成でもよい。具体的には、暗号キー生成部12は、画像データを画像認識処理して特徴部分を抽出する。図9(a)では、画像データD1を画像認識処理して、特徴部分d1と特徴部分d2とが抽出された場合の例を示している。
暗号キー生成部12は、抽出した特徴部分を解析処理し、画像判定DBを参照して、特徴部分をテキストデータに変換する。例えば、暗号キー生成部12は、特徴部分d1をテキストデータ「木」に変換し、特徴部分d2をテキストデータ「山」に変換する。
暗号キー生成部12は、テキストデータ「木」、「山」に基づいて暗号キーを生成する。例えば、暗号キー生成部12は、「木」の文字コード(Shift JIS)である「0X96D8」と、「山」の文字コード(Shift JIS)である「0X8E52」を組み合わせて、暗号キー「0X96D80X8E52」を生成する。
また、暗号キー生成部12は、複数の画像データを画像認識処理して得られた結果に基づいて暗号キーを生成する構成でもよい。暗号キー生成部12は、図9(b)に示すように、記憶部11から画像データD2と画像データD3とを選択し、各画像データを画像認識処理する。暗号キー生成部12は、画像認識処理の結果に基づいて、画像判定DBを参照し、画像データD2をテキストデータ「木」に変換し、画像データD3をテキストデータ「山」に変換する。
暗号キー生成部12は、テキストデータ「木」、「山」に基づいて暗号キーを生成する。例えば、暗号キー生成部12は、「木」の文字コード(Shift JIS)である「0X96D8」と、「山」の文字コード(Shift JIS)である「0X8E52」を組み合わせて、暗号キー「0X96D80X8E52」を生成する。
また、画像データは、商品などを購入したときに発行されたレシートをスキャナで画像化したものでもよい。暗号キー生成部12は、レシートの画像データを画像認識処理して、レシートの皺をバイナリデータに変換し、当該バイナリデータを暗号キーとしてもよい。
よって、データ処理装置1は、画像データを画像認識処理して得られた結果に基づいて暗号キー(例えば、「木山」)を生成するので、どの画像データのどこの部分が暗号キーの元になっているのか特定が困難であり、暗号キーの漏洩のリスクを低減することができる。
また、暗号キー生成部12は、画像データを文字認識処理して得られた結果と、画像データを画像認識処理して得られた結果とを組み合わせて暗号キーを生成する構成でもよい。例えば、図10に示す、手書き文字が含まれる複数の項目とイラストから構成される画像データEを例にして説明する。
暗号キー生成部12は、画像データEから項目データe1〜e4を抽出し、各項目データに対して文字認識処理を行い、各項目データをテキストデータに変換する。また、暗号キー生成部12は、画像データEからイラストデータe5を抽出し、イラストデータe5に対して画像認識処理を行う。暗号キー生成部12は、画像認識処理に基づいて、画像判定DBを参照し、イラストデータe5をテキストデータ「山」に変換する。
また、暗号キー生成部12は、カタカナ項目データe1のテキストデータの「ッ」とイラストデータe5をテキストデータ「山」とを組み合わせて暗号キーを生成する。具体的には、暗号キー生成部12は、「ッ」の文字コード(Shift JIS)である「0X8362」と、「山」の文字コード(Shift JIS)である「0X8E52」を組み合わせて、暗号キー「0X83620X8E52」を生成する。
よって、データ処理装置1は、画像データを文字認識処理して得られた結果と、画像データを画像認識処理して得られた結果とを組み合わせて暗号キー(例えば、「ッ山」)を生成するので、どの画像データのどこの部分が暗号キーの元になっているのか特定が困難であり、暗号キーの漏洩のリスクを低減することができる。また、データ処理装置1は、暗号キーを辞書に載っていない文字の組み合わせで生成することにより、さらに暗号キーの特定を困難にすることができる。
ところで、文字が長くて複雑な暗号キーほど、セキュリティ性は高まるが、文字認識処理に時間がかかるため、可用性が低下する。このような特徴を利用して、データ処理装置1は、求められるセキュリティ性と可用性に応じて、暗号キーの長さや複雑さを変える構成を備えている。例えば、セキュリティ性が多少低くても可用性を重視する場合には、鮮明な画像データに基づいて、暗号キーを生成する。一方、可用性が低下してもセキュリティ性を重視する場合には、複雑な漢字の画像データ、または漢字の画像データを複数重ね合わせた画像データに基づいて、暗号キーを生成する。
具体的には、データ処理装置1は、図1に示すように、セキュリティの強さを設定する設定部16を備える。当該構成の場合、暗号キー生成部12は、設定部16の設定値に基づいて、暗号キーの長さ、または複雑さを決定し、決定した長さ、または複雑さにより暗号キーを生成する。
以下では、図2に示す画像データAを例にして説明する。なお、設定値は、5段階で説明するが、5段階に限られない。
暗号キー生成部12は、設定部16による設定値が「5」の場合、セキュリティが最も強くなるように長い暗号キー、または処理負担がかかる複雑な暗号キーを生成する。
長い暗号キーを生成する場合には、暗号キー生成部12は、例えば、画像データAのカタカナ項目データa1のテキストデータの「ッキョタ」と、氏名項目データa2のテキストデータの「特太」と、住所項目データa3のテキストデータの「東都千田区2」と、電話項目a4のテキストデータの「3−234」とを組み合わせて暗号キー「ッキョタ特太東都千田区23−234」を生成する。
また、複雑な暗号キーを生成する場合には、暗号キー生成部12は、文字認識処理や画像認識処理に長時間かかる画像データを選択し、当該画像データを処理して暗号キーを生成する。なお、文字認識処理や画像認識処理に長時間かかる画像データとは、不鮮明な画像データや、多数の漢字が含まれている画像データや、図4中のC3に示すように文字同士が重なっている画像データなどである。
また、暗号キー生成部12は、設定部16による設定値が「1」の場合、短い暗号キー、または処理負担のかからない画像データに基づいて暗号キーを生成する。暗号キー生成部12は、例えば、画像データAのカタカナ項目データa1のテキストデータの「ッキ」を暗号キーとして生成する。
よって、データ処理装置1は、セキュリティ性と可用性に応じて、暗号キーの長さや複雑さを変えるので、様々な用途に応用することができ、セキュリティ性が高い場合には、暗号キーの漏洩のリスクを低減することができる。
つぎに、データ処理装置1の動作について、図11に示すフローチャートを参照しながら説明する。
ステップS1において、暗号キー生成部12は、記憶部11に記憶されている画像データに基づいて暗号キーを生成する。
ステップS2において、暗号化部13は、ステップS1の工程において生成された暗号キーにより、データを暗号化する。暗号化部13は、データを暗号化した後に暗号キーを破棄する。つまり、暗号キーは、インメモリのみに一時的に保存され、記憶部11のような不揮発性メモリに保存されない。
ステップS3において、復号キー生成部14は、ステップS2の工程において暗号キーを生成するときに利用した画像データに基づいて復号キーを生成する。
ステップS4において、復号部15は、ステップS3の工程において生成された復号キーにより、ステップS2の工程において暗号化されたデータを復号する。
よって、データ処理装置1は、画像データから生成した暗号キーでデータを暗号化した後に暗号キーを破棄し、暗号キーを生成した画像データから生成した復号キーで暗号化したデータを復号するので、暗号キーの漏洩のリスクを低減することができる。
また、本実施例では、主に、暗号化に用いる暗号キーの漏洩のリスクを低減することができるデータ処理装置1の構成と動作について説明したが、これに限られず、各構成要素を備え、暗号化に用いる暗号キーの漏洩のリスクを低減するための方法、およびプログラムとして構成されてもよい。
さらに、データ処理装置1を構成する各機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、指示することによって実現してもよい。
具体的には、当該プログラムは、記憶部11に記憶されている画像データに基づいて暗号キーを生成する暗号キー生成工程と、暗号キー生成工程で生成された暗号キーにより、データを暗号化する暗号化工程と、暗号キー生成工程で暗号キーを生成するときに利用した画像データに基づいて復号キーを生成する復号キー生成工程と、復号キー生成工程で生成された復号キーにより、暗号化工程で暗号化されたデータを復号する復号工程と、をコンピュータによって実現するためのデータ処理プログラムである。暗号化工程は、データを暗号化した後に暗号キーを破棄する。
ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。