(57)【要約】      （修正有）【課題】暗号化の対象となる機密情報を短時間で暗号化する。【解決手段】機密情報のデータの並びを固定長ブロック単位で分割して第１のファイルを生成し、次に第１のファイルの各分割データに対して順序情報を付与して第２のファイルを生成する。次に第２のファイルの各分割データを順序情報と共にランダムに並び替えて第３のファイルを生成する。次に第３のファイルの機密情報の各分割データに対応する順序情報部分だけに対して対称暗号鍵を用いて暗号化処理することで、第４のファイルを生成し、最終暗号化データとして出力する。暗号化処理は機密情報それ自身全てを暗号鍵で暗号化する場合に比較して短い時間で機密情報を暗号化することができる。【選択図】図１
2015069191.tif 000002
【特許請求の範囲】
【請求項１】
平文を、暗号文に変換する情報処理装置であって、
平文を、固定長のブロックに分割する手段と、
前記分割した平文を、前記ブロック単位に、順序を表す順序情報と対応させる手段と、
前記分割した平文と前記順序情報を、前記ブロック単位に、ランダムに並び替えさせる手段と、
前記ランダムに並び替えした順序情報を、暗号鍵を用いて暗号化する手段と、を備えたことを特徴とする情報処理装置。
【請求項２】
機密情報を、暗号化したファイルに変換する情報処理装置であって、
機密情報を、複数のレコードからなる第１のファイルに変換するファイル生成部と、
前記第１のファイルを、レコード単位に、順序を表す順序情報と機密情報とに対応させて、第２のファイルに変換する順序情報付加処理部と、
前記第２のファイルを、レコード単位に、シャッフルさせて、第３のファイルに変換する第１の並び替え処理部と、
前記第３のファイルの順序情報を、暗号鍵を用いて暗号化し、第４のファイルに変換する順序情報暗号化処理部と、を備えたことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記第３のファイル生成手段は、前記第３のファイルと前記第２のファイルの順序情報をレコードごとに比較し、レコードの不一致度を求め、該不一致度が閾値より低い場合、再度、レコード単位に、ランダムに並び替えさせることを特徴とする情報処理装置。
【請求項４】
請求項２または３に記載の情報処理装置において、
暗号化された前記第４のファイルの順序情報を、暗号鍵を用いて復号し、第３のファイルに変換する順序情報復号処理部と、
前記第３のファイルの順序情報に基づき、レコード単位に、順序を並び替え、第２のファイルに変換する第２の並び替え処理部と、
前記第２のファイルから機密情報を取り出す機密情報取り出し部と、を備えたことを特徴とする情報処理装置。
【請求項５】
情報処理装置による暗号化方法であって、
前記情報処理装置の記憶部に記憶されている機密情報を、複数のレコードからなる第１のファイルに変換する過程と、
前記第１のファイルを、レコード単位に、順序を表す順序情報と機密情報を対応させた第２のファイルに変換する過程と、
前記第２のファイルを、レコード単位に、ランダムに並び替えさせた第３のファイルに変換する過程と、
前記第３のファイルの順序情報を、暗号鍵を用いて暗号化した第４のファイルに変換する過程を含むことを特徴とする暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、短い時間で機密情報を暗号化することができる情報処理装置、暗号化方法に関する。
【背景技術】
【０００２】
機密情報の内容を秘匿する手段として、暗号化が有効である。暗号化により第三者に機密情報を通信途中で盗み見られたり、保管してある機密情報を読まれないようにすることができる。
【０００３】
機密情報とは、機密に管理されている情報であり、データ形式としては、文字コードにより表現されるテキスト形式、ロードモジュール、画像データ、テキスト以外の文書などのバイナリ形式すべてを含む。
【０００４】
暗号方式としては、共通鍵を用いる共通鍵方式、公開鍵を用いる公開鍵方式が一般的に知られている。これらの鍵（共通鍵、公開鍵）は、暗号鍵と呼ばれている。何れの暗号方式も暗号化対象となる機密情報のデータ長が長くなるほど、暗号化処理により多くの時間を要することとなる。
【０００５】
このような課題にたいしては、例えば、以下の特許文献１〜３に開示された技術が知られている。
いずれの公知文献も、一連のデータの中より指定された箇所についてのみ暗号化している。これにより、暗号化処理に要する時間をできるだけ短くしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３１２１５６号公報
【特許文献２】特開平１１−３４４９２５号公報
【特許文献３】特開２００２−９１８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特許文献１〜３の従来技術は、一連のデータの中から暗号化すべきデータを選定して部分的に暗号化しているにすぎないため、暗号化すべき対象となるデータが長くなれば、暗号化処理に要する時間は、その装置として求められる処理時間をオーバーしてしまうことになる。
【０００８】
たとえば、図７（Ａ）に示すＡデータでは、重要度が高いデータＡ３を暗号化することにより、Ａデータ全体を暗号化する場合と比べて、データサイズとして７０％縮小できるが、図７（Ｂ）に示すＢデータの場合、重要度が高いデータＢ３を暗号化してもデータサイズは５０％も縮小できないため、効果がかなり減少する。
【０００９】
特に、高いレスポンスが要求される制御機器における制御パラメータの情報を暗号化したい場合や組込機器のようにハードウェア資源に制限があり、十分なメモリ容量、高いＣＰＵ性能が利用できない環境下でプログラムを暗号化したい場合などは顕著である。
【００１０】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、暗号化の対象となる機密情報を短時間で暗号化することを目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明は、平文を、暗号文に変換する情報処理装置であって、平文を、固定長のブロックに分割する手段と、前記分割した平文を、前記ブロック単位に、順序を表す順序情報と対応させる手段と、前記分割した平文と前記順序情報を、前記ブロック単位に、ランダムに並び替えさせる手段と、前記ランダムに並び替えした順序情報を、暗号鍵を用いて暗号化する手段と、を備えたことを特徴とする。
【００１２】
また、本発明は、機密情報を、暗号化したファイルに変換する情報処理装置であって、機密情報を、複数のレコードからなる第１のファイルに変換するファイル生成部と、前記第１のファイルを、レコード単位に、順序を表す順序情報と機密情報とに対応させて、第２のファイルに変換する順序情報付加処理部と、前記第２のファイルを、レコード単位に、ランダムに並び替えさせて、第３のファイルに変換する第１の並び替え処理部と、前記第３のファイルの順序情報を、暗号鍵を用いて暗号化し、第４のファイルに変換する順序情報暗号化処理部と、を備えたことを特徴とする。
【００１３】
また、本発明の情報処理装置において前記第３のファイル生成手段は、前記第３のファイルと前記第２のファイルの順序情報をレコードごとに比較し、レコードの不一致度を求め、該不一致度が閾値より低い場合、再度、レコード単位に、ランダムに並び替えさせることを特徴とする。
【００１４】
また、本発明の情報処理装置は、暗号化された前記第４のファイルの順序情報を、暗号鍵を用いて復号し、第３のファイルに変換する順序情報復号処理部と、前記第３のファイルの順序情報に基づき、レコード単位に、順序を並び替え、第２のファイルに変換する並び替え処理部と、前記第２のファイルから機密情報を取り出す機密情報取り出し部と、を備えたことを特徴とする。
【００１５】
また、本発明の情報処理装置による暗号化方法は、前記情報処理装置の記憶部に記憶されている機密情報を、複数のレコードからなる第１のファイルに変換する過程と、前記第１のファイルを、レコード単位に、順序を表す順序情報と機密情報を対応させた第２のファイルに変換する過程と、前記第２のファイルを、レコード単位に、ランダムに並び替えさせた第３のファイルに変換する過程と、前記第３のファイルの順序情報を、暗号鍵を用いて暗号化した第４のファイルに変換する過程を含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、機密情報のデータの並びを固定長のブロック単位でランダムに並び替え、機密情報に対応する順序情報に対して暗号鍵を用いて暗号化処理を行うことで、機密情報全体に対して暗号鍵を用いて暗号化処理するよりも遥かに短い時間で機密情報を暗号化することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る情報処理装置の構成概要を示す図である。
【図２】本発明の実施の形態に係る暗号化処理手順を示す図である。
【図３】本発明の実施の形態に係る情報処理装置の暗号化処理を示すフローチャートである。
【図４】本発明の実施の形態に係る復号処理手順を示す図である。
【図５】本発明の実施の形態に係る情報処理装置の復号処理を示すフローチャートである。
【図６】本発明の実施の形態に係るソースプログラムをレコード単位に分割した例を示す図である。
【図７】従来の問題を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、詳細に説明する。
＜情報処理装置の構成概要＞
図１は、本発明の実施形態に係る情報処理装置の構成概要を示す図である。情報処理装置１は、暗号化処理部１０と復号処理部２０で構成され、通信により情報の送受信を行う。
【００１９】
暗号化処理部１０は、更に、機密情報受け取り部１１、ファイル生成部１２、順序情報付加処理部１３、第１の並び替え処理部１４、順序情報暗号化処理部１５で構成されている。暗号化処理部１０の主な機能は、受け取った機密情報をランダムに並び替え、暗号化したファイルに変換し、その暗号化したファイルを復号処理部２０に渡すことである。
【００２０】
復号処理部２０は、更に、暗号化ファイル受け取り部２１、順序情報復号処理部２２、第２の並び替え処理部２３、機密情報取り出し部２４で構成されている。復号処理部２０の主な機能は、暗号化処理部１０から受け取った暗号化したファイルを復号し、順序情報に基づき並び替え、機密情報を取り出し、その機密情報を出力することである。
【００２１】
情報処理装置１は、ハードウェア資源として、例えば、ＣＰＵ（中央処理装置）、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、入出力装置、ドライブ装置、各種インターフェースなど、コンピュータとしての周知の構成を有している（図示せず）。入力装置は、キーボード、マウス、タッチパネル等のインターフェースを用いて実現され、出力装置は、液晶または有機EL等からなる表示パネル等を用いて実現され、ドライブ装置は、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ等の可搬型の記憶媒体からプログラムやデータを読み書き可能であり、これらの構成要素は、バスやシリアル回線等を介して接続されている。
【００２２】
また、情報処理装置１は、ネットワークを介して他のコンピュータと通信することもできる。このとき、ネットワークは、インターネット、ＬＡＮ（ローカルエリアネットワーク）、携帯端末の電波網等である。また、入出力装置は、ネットワーク経由で接続された情報処理装置１の端末であっても良い。
【００２３】
暗号化処理部１０及び復号処理部２０の実体は、プログラムであり、構成する各処理部（１１〜１５及び２１〜２４）は、記憶部であるROM等に記憶され、CPUが、ROM等に記憶されたプログラムを実行することで上述の機能が実現される。記憶部であるRＡMには、上述の各処理部（１１〜１５及び２１〜２４）で使われる入出力データ（機密情報、暗号化ファイル）、処理途中で利用するワークデータなどが記憶されている。
【００２４】
また、各処理部（１１〜１５及び２１〜２４）は、夫々、または組み合わせた単一の半導体チップ上に形成されていても良い。例えば、第１の並び替え処理部１４は、データの並び替えを行う回路を構築しても良い。
【００２５】
暗号化処理部１０及び復号処理部２０の実体は、それぞれ異なるコンピュータ内にあっても良い。このときのハードウェア資源としては、上述した情報処理装置１と基本的に同じである。また、暗号化処理部１０は、ネットワークを介して、または記憶媒体を介して、暗号化したファイルを復号処理部２０に送る。
＜暗号化処理手順＞
図２は、本発明の実施の形態に係る機密情報、順序情報のデータ例と対応付けて暗号化処理手順を示した図である。図３は、本発明の実施の形態に係る暗号化処理の詳細を示したフローチャートである。以降の暗号化処理手順の説明は、図２、図３及び図１を使って説明する。
【００２６】
機密情報受け取り部１１は、情報処理装置１の外部より平文である機密情報３０を受け取る（Ｓ１１）。受け取り方として、入力装置から機密情報を入力して情報を受け取っても良い。また、機密情報が保存された可搬型の記憶媒体から情報を受け取っても良い。また、外部装置からネットワークを介して情報を受け取っても良い。
【００２７】
次に、ファイル生成部１２は、機密情報受け取り部１１で受け取った機密情報３０をレコード単位のファイルに変換し、第１のファイル３１を生成する（Ｓ１２）。
また、ファイル生成部１２は、レコード単位のファイルに変換するとき、１レコードのデータ長は、レコード内のデータから機密情報が解読できないようなデータ長にする。
【００２８】
図６の例では、（Ａ）に示す機密情報であるソースプログラムを、（Ｂ）に示すレコード単位のファイルに変換した例である。
図６（Ａ）のソースプログラムは、１レコード当たり４バイトのデータに分割している。これにより１レコード内のデータから関連する他のレコード内データを結びつけ、ソースプログラム全体を解読することは、難しくなっている。
【００２９】
図６では、ソースプログラム（テキスト形式）の例で示したが、ロードモジュール（バイナリ形式）であっても同様である。
図２の例では、1番目のレコードにデータ１が対応し、２番目のレコードにデータ２が対応し、・・・Ｎ番目のレコードにデータＮが対応している。
【００３０】
ここで、ファイル生成とは、例えば、一般ファイルの機密情報をデータファイルとして扱い易い管理とするため、ＲＤＢ（リレーショナルデータベース）またはプロセスファイルで用いられる行（レコード）の概念でデータファイルを定義することを意味する。また、ファイル生成部１２は、データファイルの管理機能を利用しなくとも、ファイル生成部１２自身で固定長のブロックごとにデータを管理しても良い。
【００３１】
次に、順序情報付加処理部１３は、第１のファイルに順序情報をレコード単位に付加し、第２のファイル３２に変換する（Ｓ１３）。
図２の例では、順序情報としてアドレスを用いている。1番目のレコードの先頭に順序情報として１６進で’８０００’を付加している。以降昇順に順序情報が付加されている。
【００３２】
アドレスは、第２のファイルが格納されているＲＡＭ（ランダムアクセスメモリ）上の各レコードに対応する先頭アドレスでも良い。
また、１番目のレコードに対応するアドレスを予め決めておき、以降のレコードに対応するアドレスは、一定の間隔で昇順または降順させても良い。
【００３３】
また、機密情報の実体が、ロードモジュールの場合、該当のロードモジュールがＣＰＵにより実行されるときのメモリ上のアドレスを順序情報としても良い。
また、順序情報は、アドレスでなくとも、単なる昇降順を表す数字（１，２、３・・・など）や文字（Ａ、Ｂ、Ｃ・・・）であっても良い。
【００３４】
また、レコードにおける順序情報を付加する位置は、機密情報の前後どちらにあっても良い。また、レコードの先頭からの相対位置を決めておき、順序情報を付加しても良い。
次に、第１の並び替え処理部１４は、第２のファイル３２をレコード単位にランダムに並び替え、第３のファイル３３に変換する（Ｓ１４）。Ｎレコードの中からランダムに１レコードを選び、残りのレコードから１レコードを選び、これを繰り返すことでレコード単位にランダムに並び替えることができる。しかし、並び替えていないレコードも出てくる可能性があり、全体のランダム性が低い場合、セキュリティの信頼度が低くなる可能性がある。
【００３５】
そこで、Ｓ１４後、レコード単位に第３のファイル３３と第２のファイル３２を比較し（Ｓ１５）、「データが異なるレコード数」／「ファイル全体のレコード数」＝「不一致度」を求め、「不一致度」と「閾値」を比較し、不一致度が閾値よりも低い場合（Ｓ１５  ＮＯ）、再び、Ｓ１４の前に戻って処理する。
【００３６】
図６の機密情報がソースプログラムの例では、閾値を「０．９」以上に設定すれば、対象レコードの前後につながるレコードは内容から結び付けられず、結果としてソースプログラムのロジックが解読されることは、難しくなる。
【００３７】
また、ファイル３３と第２のファイル３２のレコード単位の比較は、レコードの全データ一致でなくとも、機密情報の一部または順序情報など、レコードの一部データの比較でも良い。
【００３８】
不一致度が閾値以上の場合（Ｓ１５  ＹＥＳ）、順序情報暗号化処理部１５は、第３のファイル３３の順序情報を共通鍵方式で暗号化し、第４のファイル４０に変換する（Ｓ１６）。共通鍵方式の暗号化アルゴリズムとしては、代表的なAES−256bit暗号アルゴリズムを利用すると良い。
【００３９】
共通鍵は、暗号化処理部１０と復号処理部２０それぞれで、２つの同じ共通鍵を別なセキュアな記憶領域で管理している。公開鍵方式でも同様の処理となるが、一般的に、公開鍵方式は、共通鍵方式よりも暗号化、復号に時間がかかると言われている。
【００４０】
次に、順序情報暗号化処理部１５は、暗号化した第４のファイルを復号処理部２０に送る（Ｓ１７）。情報処理装置１内では、バスやシリアル回線等を介して第４のファイル４０を送ることが考えられる。また、暗号化処理部１０と復号処理部２０が、別なコンピュータにある場合は、ネットワークを介して、または記憶媒体を介して、暗号化した第４のファイル４０を送る。
【００４１】
先に述べた暗号化処理部の処理は、第１の並び替え処理部１４と順序情報暗号化処理部１５の処理順を入れ替えても良い。処理を入れ替えた場合であっても、結果として第４のファイル内容は同じである。
＜第１の並び替え処理部の補足説明＞
レコード単位にランダムに並び替える方法として、Ｃ言語やＪａｖａ（登録商標）などが標準で提供しているrand関数（乱数を生成させる関数）を利用する方法がある。
【００４２】
１レコードごとにレコード数だけrand関数を実行し、実行結果のレコード位置に並び替えることで、ファイルをレコード単位にランダムに並び替えることができる。
しかし、単純に、乱数発生数値の範囲を指定してrand関数を繰り返し実行すると、現在のレコード位置と同じ位置の実行結果となる可能性もある。
【００４３】
そこで、１レコードごとに現在のレコード位置を乱数発生数値の範囲から除外してrand関数を繰り返し実行することにより、現在のレコード位置と異なる位置の実行結果とすることもできる。この方式を採用する場合、Ｓ１５の処理は不要となる。
＜復号処理手順＞
図４は、本発明の実施の形態に係る機密情報、順序情報のデータ例と対応付けて復号処理手順を示した図である。図５は、本発明の実施の形態に係る復号処理の詳細を示したフローチャートである。以降の復号処理手順の説明は、図４、図５及び図１を使って説明する。
【００４４】
暗号化ファイル受け取り部２１は、暗号化処理部１０の順序情報暗号化処理部１５より暗号化した第４のファイル４０を受け取る（Ｓ２１）。
次に、順序情報復号処理部２２は、暗号化ファイル受け取り部２１が受け取った第４のファイル４０の順序情報を共通鍵方式で復号し、第３のファイル３３を生成する（Ｓ２２）。
【００４５】
次に、第２の並び替え処理部２３は、第３のファイルの順序情報を基にしてレコード単位で順序を並び替え、第２のファイル３２を生成する（Ｓ２３）。
次に、機密情報取り出し部２４は、第２のファイル３２から機密情報３０を取り出す（Ｓ２４）。
【００４６】
次に、機密情報取り出し部２４は、取り出した平文の機密情報３０を出力する（Ｓ２５）。出力としては、出力装置への表示、記憶媒体への書き込み、機密情報を利用するアプリケーション処理や他のコンピュータへの送信等がある。
＜実施例の効果＞
上述した本実施例によれば、本発明の情報処理装置の適用により、機密情報全体に対して暗号鍵を用いて暗号化処理するよりも遥かに短い時間で機密情報を暗号化することができる。
【００４７】
もちろん、ファイルのレコード数が少ない場合、組み合わせ数も少なくなり、暗号化強度が弱くなる。
例えば、AES−256bit暗号化方式の強度(暗号鍵が取りえるパターン数)は2の256乗であり、約10の77乗通りであるが、レコードの数が58行（N=58）である場合、組み合わせ数は、約10の78乗通りとなる。
【００４８】
つまり、レコードの数が58行以上であれば、暗号強度は十分である。また、レコードの数が多ければ多いほど、行方向の順序の組合せ数が多くなる。レコードの順序情報のみを暗号化処理するため、すべてのデータを暗号化するより全体の処理時間が短縮できる。
【００４９】
さらに、レコードの順序情報のサイズはレコードのタイプにより、多少異なるが、機密情報の重要性に係らず、暗号鍵を用いて暗号化する部分のサイズを固定化できる。
また、保護する必要があるデータ全部を対象に暗号鍵を用いて暗号化する必要がなくなる。
【００５０】
従って、暗号化に時間がかかる暗号鍵を使用した暗号方式の対象となるデータ量を減らすと、処理時間が短縮でき、より早く別の処理をすることが可能となる。
また、順序情報のみについて暗号鍵を用いて暗号化するため、機密情報について暗号鍵を用いて暗号化、復号処理しなくて済み、データ変換中の誤りを起こす可能性が低くなる。順序情報の復号処理中、誤りを起こしても（復号したアドレス値が領域外、重複など）、早期検知は可能である。
【００５１】
さらに、毎回、暗号鍵を用いて暗号化処理する前にデータ順序をランダムに並び替えるので、暗号鍵を変更せずに、ランダムな暗号文が出力できる。
【符号の説明】
【００５２】
１    情報処理装置
１０  暗号化処理部
１１  機密情報受け取り部
１２  ファイル生成部
１３  順序情報付加処理部
１４  第１の並び替え処理部
１５  順序情報暗号化処理部
２０  復号処理部
２１  暗号化ファイル受け取り部
２２  順序情報復号処理部
２３  第２の並び替え処理部
２４  機密情報取り出し部
３０  機密情報
４０  暗号化ファイル
【図１】
2015069191.tif 000003
【図２】
2015069191.tif 000004
【図３】
2015069191.tif 000005
【図４】
2015069191.tif 000006
【図５】
2015069191.tif 000007
【図６】
2015069191.tif 000008
【図７】
2015069191.tif 000009