(57)【要約】 【課題】  本発明は、個人情報などのデータベースを保護することができるとともに、そのアクセスに対する処理を簡易なものにすることのできる情報処理装置を提供することを目的とする。【解決手段】  サーバ２００では、暗号化処理部２０２が、受け付けられたデータのうち予め定められた項目に対するデータを２進数データに変換する。そして、ビット反転処理部２０３が、ビット反転処理を行い、演算処理部２０４はビット反転処理されたデータに対して所定値を加算することで、前記項目に対応するデータを暗号化する。データベース管理アプリケーション２０１は、暗号化データを、入力された他のデータと対応付けてデータベース３００に記憶させる。【選択図】  図１
2009258973.tif 000002
【特許請求の範囲】
【請求項１】
所定の形式に従った項目ごとに区分けされたデータの入力をオペレータから受け付ける入力手段と、
前記入力手段により受け付けられたデータのうち予め定められた項目に対するデータを２進数データに変換し、ビット反転処理を行い、ビット反転処理されたデータに対して所定値を加算することで、前記項目に対応するデータを暗号化する暗号化手段と、
前記暗号化手段により暗号化された暗号化データを、前記入力手段により入力された他のデータと対応付けて記憶するデータベースと、
を備える情報処理装置。
【請求項２】
前記暗号化手段は、
前記入力手段により入力された文字が２バイト系文字列である場合には、所定の１バイト分についてのみ暗号化処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記暗号化手段は、
前記入力手段により入力された文字種別に応じて、加算する所定値を変えることを特徴とする請求項１または２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを暗号化する情報処理装置に関する。
【背景技術】
【０００２】
近年、個人情報の扱いが厳しくなり、個人情報を本来の目的を外れて使用することが禁じられている。そのために、個人情報を漏洩することがないように考えられている。例えば、特許文献１には、個人情報を記述するデータベースにおける所定の領域を暗号化し、その暗号化したデータを記憶させることが記載されている。
【特許文献１】特開２００５−３０９８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、データベース全体または所定領域を暗号化すると、個人情報にアクセスするたびに、暗号化されたデータベースを復号することが必要となり、アクセス端末における処理負担が大きい。また、データベース全体を暗号化してしまうと、ソートなどのデータベース内での簡易な処理を行うことができない、という問題もある。
【０００４】
そこで、本発明は、個人情報などのデータベースを保護することができるとともに、そのアクセスに対する処理を簡易なものにすることのできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するために、本発明は、所定の形式に従った項目ごとに区分けされたデータの入力をオペレータから受け付ける入力手段と、前記入力手段により受け付けられたデータのうち予め定められた項目に対するデータを２進数データに変換し、ビット反転処理を行い、ビット反転処理されたデータに対して所定値を加算することで、前記項目に対応するデータを暗号化する暗号化手段と、前記暗号化手段により暗号化された暗号化データを、前記入力手段により入力された他のデータと対応付けて記憶する記憶手段と、備えている。
【０００６】
この発明によれば、所定の形式に従った項目ごとに区分けされたデータの入力をオペレータから受け付け、受け付けられたデータのうち予め定められた項目に対するデータを２進数データに変換し、ビット反転処理を行い、ビット反転処理されたデータに対して所定値を加算することで、前記項目に対応するデータを暗号化し、暗号化された暗号化データを、入力された他のデータと対応付けて記憶することができる。これにより、項目単位で暗号化することができ、暗号化する際の処理および閲覧時における復号する際の処理負担を軽減することができる。また、項目単位に暗号化し、またビット反転処理、所定値加算処理を行うことで、暗号化されたデータでソート処理なども可能とし、使いやすいものとすることができる。
【０００７】
また、本発明の情報処理装置における前記暗号化手段は、前記入力手段により入力された文字が２バイト系文字列である場合には、所定の１バイト分についてのみ暗号化処理を行うことが好ましい。
【０００８】
この発明によれば、入力された文字が２バイト系文字列（例えば、漢字など）である場合には、所定の１バイト分についてのみ暗号化処理を行うことで、セキュリティを向上させることができる。すなわち、全てに対して暗号化することがないため、暗号化ルールを予測しにくくさせ、よってセキュリティを向上させることができる。
【０００９】
また、本発明の情報処理装置における前記暗号化手段は、前記入力手段により入力された文字種別に応じて、加算する所定値を変えることが好ましい。
【００１０】
この発明によれば、入力された文字種別に応じて、加算する所定値を変えることで、セキュリティを向上させることができる。
【発明の効果】
【００１１】
本発明によれば、項目単位で暗号化することができ、暗号化する際の処理および閲覧時における復号する際の処理負担を軽減することができる。また、項目単位に暗号化し、またビット反転処理、所定値加算処理を行うことで、暗号化されたデータでソート処理なども可能とし、使いやすいものとすることができる。
【発明を実施するための最良の形態】
【００１２】
添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【００１３】
図１は、本実施形態の入力端末であるＰＣ１００を用いた処理概念を示す概念図である。図１に示すように、ＰＣ１００には、入力手段であるキーボードおよび出力部であるディスプレイが備えられている。このＰＣ１００は、データベース管理アプリケーション２０１および暗号化処理部２０２を備えるサーバ２００とアクセス可能に構成されている。
【００１４】
ユーザＵは、ＰＣ１００を操作することで、ネットワーク上に配置されているサーバ２００に保持されているデータベース管理アプリケーション２０１を操作することにより、当該データベース管理アプリケーション２０１の処理にしたがって氏名、フリガナ、アルファベット、生年月日、社内情報Ａ、社内情報Ｂ・・・などの情報を入力する。一方、暗号化処理部２０２は、データベース管理アプリケーション２０１を介して入力されたデータを暗号化する。この暗号化処理部２０２は、氏名、フリガナ、アルファベットを暗号化するものであって、暗号化されたデータでもソート可能な形に暗号化する。そして、データベース管理アプリケーション２０１は、これら暗号化されたデータとともに、その他のデータである、生年月日、社内情報Ａなどのデータを対応付けて、ネットワーク上に配置されているデータベース３００に記憶する。
【００１５】
一方、ユーザＵは、ＰＣ１００およびデータベース管理アプリケーション２０１を用いて、データベース３００からデータベースを閲覧することができる。この場合、暗号化された暗号化データを暗号化することなく、そのままソート処理などのデータベース処理を実行することができる。
【００１６】
このような処理を実現するためのＰＣ１００およびサーバ２００について説明する。図２は、本実施形態のＰＣ１００およびサーバ２００の機能を示すブロック図である。図２に示すようにＰＣ１００は、入力部１０１（入力手段）および出力部１０２を備えており、サーバ２００は、情報処理装置であって、データベース管理アプリケーション２０１および暗号化処理部２０２（ビット反転処理部２０３、演算処理部２０４：暗号化手段）を含んで構成されている。このサーバ２００は、さらにデータベース３００（記憶手段）とアクセスするように構成されている。以下、各構成要素について説明する。
【００１７】
入力部１０１は、キーボードなどのユーザにより操作され、各種情報の入力を受け付ける部分である。本実施形態においては、入力部１０１は、ユーザ操作により、社員情報としての情報である、氏名、フリガナ、アルファベット、生年月日、社内情報Ａ、社内情報Ｂ等の入力を受け付ける。すなわち、この入力部１０１は、所定の形式に従った項目ごとに区分けされたデータの入力をオペレータから受け付ける。
【００１８】
出力部１０２は、ディスプレイなどの、データベース３００に記憶されている社員情報を閲覧可能に表示する部分である。
【００１９】
データベース管理アプリケーション２０１は、氏名、フリガナ、アルファベット、生年月日、社内情報Ａ、社内情報Ｂ等の社員情報を、上記Ｔ入力部１０１からの入力を受け付け、データベースの管理処理を行う部分である。なお、データベース管理アプリケーション２０１は、入力項目の判定処理も行い、全角文字を対象とするか、半角文字を対象とするか、さらに半角文字のうち、半角カナ、半角英字、半角数字であるかを判定し、その項目の処理区分を管理している。これを用いて、暗号化処理部２０２では、その処理区分に従った暗号化処理を行うことができる。
【００２０】
暗号化処理部２０２は、データベース管理アプリケーション２０１を介して入力された氏名等を暗号化する部分である。本実施形態では、氏名等については、全て二進数の文字コードとして扱われ、ビット反転処理部２０３がその２進数からなる文字コードに対してビット反転処理、すなわち１であれば０に、０であれば１に変換する処理を行い、これを１６進数のデータに変換し、さらに１０進数のデータに変換し、演算処理部２０４が１０進数データに対して、ＳＱＬ文における処理違反とならないように所定数加算する処理を行う。このように暗号化された暗号化文字をデータベース３００に登録する。
【００２１】
データベース３００は、暗号化処理部２０２により暗号化されたデータおよび暗号化されていないデータを対応付けて記憶する部分である。これら情報のうち氏名、フリガナ、アルファベットについては、暗号化処理部２０２において暗号化処理されており、暗号化された情報が記憶されている。図３にデータベース３００に記憶されている社員情報の具体例を示す。図３に示されているように、氏名、フリガナ（半角）、氏名アルファベット、生年月日、社内情報Ａ、社内情報Ｂが対応付けて記憶されている。氏名については、“唾・”、フリガナについては“Ｉ．Ｖ”、氏名アルファベットについては“．Ａ０３−”などの暗号化された情報が記憶されている。ここでの暗号化処理についての詳細は後述する。
【００２２】
なお、本実施形態では、サーバ２００に、データベース管理アプリケーション２０１および暗号化処理部２０２を備えているが、これに限るものではなく、ＰＣ１００にデータベース間Ｒにアプリケーション２０１および暗号化処理部２０２を備えるようにしてもよい。
【００２３】
つぎに、本実施形態のサーバ２００の動作について説明する。図４は、サーバ２００の動作を示すフローチャートである。
【００２４】
データベース管理アプリケーション２０１により、ＰＣ１００から入力された各種情報における引数（処理区分）のチェックが行われ（Ｓ１０１）、当該引数が全角漢字、半角英字、半角カナ、半角数字のいずれかであるか、すなわち入力可能文字であるか否かがデータベース管理アプリケーション２０１により判断される（Ｓ１０２）。ここで入力可能文字ではない、と判断されると、戻り値として“異常終了”の旨をセットし、処理は終了する。
【００２５】
つぎに、データベース管理アプリケーション２０１において、メモリ（図示せず）上における処理領域の確保が行われる（Ｓ１０３）。メモリ内に空き領域がなく、領域確保ができない場合には（Ｓ１０４）、戻り値として“異常終了”の旨がセットされ、処理は終了する。
【００２６】
処理領域の確保が行われると、全ての文字列に対する処理が完了したか否かの判定処理がなされる（Ｓ１０５）。初回の場合には、この判定処理は、ＮＯと判定される。そして、入力された文字が漢字などの全角文字か否か、また全角文字である場合には奇数番目の文字コードであるか否かの判定が行われる（Ｓ１０６）。なお、ここでは、入力時における入力対象文字が全角であるか、半角である可など文字種別が定められているため、それに基づいた判定が行われる。また、Ｓ１０５〜Ｓ１１０は、１バイトずつ処理されることになる。よって、Ｓ１０５において、全角文字については文字コードの前半部分と後半部分とに分けられることになる。すなわち、全角文字は、２バイトから構成されており、ここでは２バイト目の部分を“奇数番目”と称し、奇数番目と偶数番目とで区別して処理が行われる（通常、０から番号がふられているため）。例えば、“0000 0000 1111 1111”とする文字コードがあった場合、９桁〜１６桁部分の“1111 1111”を奇数番目とし、この部分については、後述するとおり暗号化処理はスキップされる。
【００２７】
全角文字であり、処理対象部分が奇数番目であると判断されると（Ｓ１０７：ＮＧ）、その部分についてはビット反転処理などの暗号化処理を行うことなく、Ｓ１０５に戻り、次の文字コードに対する処理を進める。
【００２８】
また、Ｓ１０７において、全角文字であり、偶数番目と判断されるか、または半角文字であると判断されると（Ｓ１０７：ＯＫ）、暗号化処理部２０２（ビット反転処理部２０３）において、引数で渡された２進数データをビット反転処理する（Ｓ１０８）。ここでは、半角文字であれば、全部の文字を対象にビット反転処理が行われ、全角文字であれば、上述したとおり文字コードにおける偶数番目の部分だけをビット反転処理が行われる。そして、演算処理部２０４において、ビット反転処理された２進数データを１６進数に変換する（Ｓ１１１）。そして、演算処理部２０４において、１６進数のデータを１０進数に変換し、変換した値に所定値を加算する（Ｓ１１２）。これは、ＳＱＬ文における処理違反を回避するために処理である。例えば、ＳＱＬ文においては、半角の“！”などの文字は入力対象として認められていないためエラーとなる。このため、所定値を加算することにより文字コードの所定のエリアに規定されている文字に暗号化されないように所定値が加算される。そして、Ｓ１０５に戻り、全ての文字に対して処理がなされると、戻り値として正常終了がセットされ（Ｓ１１１）、暗号化処理の終了処理が行われ（Ｓ１１２）、暗号化されたデータがデータベース３００に格納される（Ｓ１１３）。
【００２９】
ここでＳ１０８〜Ｓ１０９の処理のデータの変遷を、図５を用いて説明する。図５（ａ）は、半角文字を入力したときのデータ変遷を示し、図（ｂ）は、全角文字（漢字）を入力したときのデータ変遷を示す。
【００３０】
図５（ａ）に示すように、半角の“ヤ”が入力されると、コンピュータは２進数データとして扱うために、“1101 0100”と認識する。そして、ビット反転処理が行われ、“0010 1011”に変換される。その後、１６進数に変換し、“２Ｂ”が得られ、さらに１０進数に変換し、“４３”が得られる。さらにＳＱＬ文の処理違反を避けるために、所定値を加算する。ここではαとしており、任意の数字とするが、上述処理違反を避けることができる程度の大きさの数字であることが望まれる。図５では、例えばα＝１０とし、文字コード（ＪＩＳコードＸ ０２０８）が５３となる文字“Ｓ”が得られる。データベース３００にはこの文字Ｓが暗号化された“ヤ”として記憶される。
【００３１】
図５（ｂ）では、“山”が入力されると、“0011 1011 0011 0011”と認識する。上述したとおり、“0011 1011”が０番目（偶数版目）、“0011 0011”が１番目（奇数番目）として扱われる。そして、全角文字である場合には、上述Ｓ１０６、Ｓ１０７での処理のように、文字コードにおける偶数番目のみを反転処理をするため、“0110 1110 0110 0110”に変換される。本実施形態では、半角文字相当分の文字コード単位で処理を行うため、“0110 1110”と“0110 0110”とに分けて処理を行う。そして、それぞれ１６進数データである“Ｃ４”“６６”に変換され、その後１０進数データである“１９６”“１０２”に変換される。さらに所定値を加算し、加算したものに基づいた文字コードに相当する文字をデータベース３００に登録する。ここで加算される所定値は、文字種別（漢字、全角かな、半角カナなど）に応じて変えることで、セキュリティを向上させた暗号化処理とすることができる。
【００３２】
このような暗号化処理を行うことにより、データベース上では暗号化された文字が記憶されることになり、ソートを行う場合には、その暗号化された文字にしたがってソート処理を可能とする。
【００３３】
つぎに、このように暗号化されたデータを記憶するデータベースに対してアクセス処理を行うときの処理について説明する。図６は、復号処理を行うときのフローチャートである。
【００３４】
図に示すように、ユーザはデータベース管理アプリケーション２０１を用いてデータベース３００に対してアクセス処理を行う（Ｓ２０１）。そして、データベース管理アプリケーション２０１を用いて閲覧指示を行うと、データベース３００から所定のデータが読み出される（Ｓ２０２）。そして、データベース管理アプリケーション２０１により読み出されると、暗号化されている項目については、復号化処理が行われる（Ｓ２０３）。復号処理は上述の暗号化処理を逆にしたものであって、所定数を減算した後、１６進数に変換し、さらに２進数に変換する。そして、ビット変換を行い、変換された２進数にしたがって文字を表示する。なお、全角文字については、暗号化時には奇数番目のみがビット反転されていることから、復号時においても偶数番目の部分のみをビット反転する処理を行う。そして、復号された文字が表示部（図示せず）に表示されることになる（Ｓ２０４）。
【００３５】
このような処理を行うことで、復号機能を有していないアプリケーションから不正にデータベース３００に対してアクセスした場合には、上述の復号処理を行うことができないため、正確なデータを不正ユーザは閲覧することはできない。
【００３６】
つぎに、本実施形態のサーバ２００の作用効果について説明する。ＰＣ１００において、所定の形式に従った項目ごとに区分けされたデータの入力をオペレータから受け付け、ＰＣ１００からサーバ２００は、当該データ入力を受け付ける。サーバ２００では、暗号化処理部２０２が、受け付けられたデータのうち予め定められた項目に対するデータを２進数データに変換する。そして、ビット反転処理部２０３が、ビット反転処理を行い、演算処理部２０４はビット反転処理されたデータに対して所定値を加算することで、前記項目に対応するデータを暗号化する。データベース管理アプリケーション２０１は、暗号化データを、入力された他のデータと対応付けてデータベース３００に記憶させる。これにより、項目単位で暗号化することができ、暗号化する際の処理および閲覧時における復号する際の処理負担を軽減することができる。また、項目単位に暗号化し、またビット反転処理、所定値加算処理を行うことで、暗号化されたデータでソート処理なども可能とし、使いやすいものとすることができる。
【００３７】
また、サーバ２００において、暗号化処理部２０２は、入力された文字が２バイト系文字列である場合、例えば漢字、全角かななどの場合には、所定の１バイト分についてのみ暗号化処理を行うことでセキュリティを向上させることができる。すなわち、全てに対して暗号化することがないため、暗号化ルールを予測しにくくさせ、よってセキュリティを向上させることができる。
【００３８】
また、サーバ２００において、暗号化処理部２０２は、入力された文字種別に応じて、例えば、漢字、全角かな、半角カナなどに応じて、加算する所定値を変えることで、セキュリティを向上させることができる。
【図面の簡単な説明】
【００３９】
【図１】本実施形態のＰＣ１００およびサーバ２００を用いた処理概念を示す概念図である。
【図２】本実施形態のＰＣ１００およびサーバ２００の機能を示すブロック図である。
【図３】データベース３００に記憶されている社員情報の具体例を示す図である。
【図４】暗号化処理を行うときのサーバ２００の動作を示すフローチャートである。
【図５】半角文字、全角文字を入力したときのそれぞれのデータ変遷を示す図である。
【図６】復号処理を行うときのサーバ２００の動作を示すフローチャートである。
【符号の説明】
【００４０】
１００…情報処理装置、１０１…入力部、１０２…出力部、２００…サーバ、２０１…データベース管理アプリケーション、２０２…暗号化処理部、２０３…ビット反転処理部、２０４…演算処理部、３００…データベース。
【図１】
2009258973.tif 000003
【図２】
2009258973.tif 000004
【図３】
2009258973.tif 000005
【図４】
2009258973.tif 000006
【図５】
2009258973.tif 000007
【図６】
2009258973.tif 000008