(57)【要約】      （修正有）【課題】データを暗号化し送信する処理に要する時間が短縮されるデータサーバを提供する。【解決手段】データサーバ１の制御装置１１は、データ制御部１５と暗号化処理部１６を備える。暗号化処理部１６は、端末２から与えられるユーザデータを分割して、複数の分割データを生成するデータ分割部と、複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部と、複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化部を備える。また、データ制御部１５は、複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データをバックアップ用サーバ３に送信する。【選択図】図１
2017005682.tif 000002
【特許請求の範囲】
【請求項１】
データを圧縮及び暗号化し他の装置に送信するデータ処理装置であって、
前記データを分割して、複数の分割データを生成するデータ分割部と、
前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部と、
前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより複数の暗号データを生成するデータ暗号化部と、
前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御部と、
を備えているデータ処理装置。
【請求項２】
前記データ暗号化部は、前記複数の圧縮データそれぞれの暗号化に用いる複数の乱数データを生成する乱数データ生成部を備え、
前記乱数データ生成部は、複数の前記乱数データの内、一の前記乱数データに基づいて次の前記乱数データを生成し、
前記データ暗号化部は、前記乱数データ生成部が前記乱数データを生成するごとに前記複数の暗号データを順次生成する
請求項１に記載のデータ処理装置。
【請求項３】
データを圧縮及び暗号化し他の装置に送信するデータ送信方法であって、
前記データを分割して、複数の分割データを生成するデータ分割ステップと、
前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮ステップと、
前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化ステップと、
前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御ステップと、
を含むデータ送信方法。
【請求項４】
データを圧縮及び暗号化し他の装置に送信するデータ送信処理をコンピュータに実行させるためのコンピュータプログラムであって、
コンピュータに
前記データを分割して、複数の分割データを生成するデータ分割ステップと、
前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮ステップと、
前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化ステップと、
前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御ステップと、
を実行させるためのコンピュータプログラム。
【請求項５】
データを圧縮及び暗号化しバックアップサーバに送信するデータサーバであって、
前記データを分割して、複数の分割データを生成するデータ分割部と、
前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部と、
前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化部と、
前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御部と、
を備えているデータサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバに関する。
【背景技術】
【０００２】
従来、データを暗号化してストレージ（記憶装置）に記憶する技術が提案されている（例えば特許文献１参照）。また、データをストレージに保存する際、データを圧縮することが一般的に行われている。そして、これらの技術を組み合わせて、データに対して圧縮と暗号化とを別々のプロセスで行うことが一般的に行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４２１９６２９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、データに対して圧縮と暗号化とを別々のプロセスで行う場合、データが大きくなると圧縮及び暗号化に要する時間が増加してしまう。
さらに、圧縮及び暗号化を行ったデータを、例えば、外部のバックアップサーバに記憶させるために当該バックアップサーバに送信する場合、データに対する圧縮及び暗号化が完了するまで送信することができないので、これら処理が完了するまで送信を待たなければならず、無駄な待ち時間が生じることがあった。
【０００５】
本発明はこのような事情に鑑みてなされたものであり、データを暗号化し送信する処理に要する時間の短縮を図ることができるデータ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）一実施形態に係るデータ処理装置は、データを圧縮及び暗号化し他の装置に送信するデータ処理装置であって、前記データを分割して、複数の分割データを生成するデータ分割部と、前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部と、前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化部と、前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御部と、を備えている。
【０００７】
本構成によれば、データ分割部がデータを分割して複数の分割データを生成し、データ圧縮部が、複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成する。これにより、データ圧縮部が、分割前のデータを圧縮する構成に比べて、圧縮時間の短縮を図ることができるので、データの暗号化処理に要する時間を短縮することができる。また、データ暗号化部が、複数の圧縮データを複数次元データとして暗号化する。これにより、データ暗号化部が、複数の圧縮データそれぞれの暗号化に、複数次元データ暗号化アルゴリズムを採用することができる。
さらに、送信制御部が、複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに一の暗号データを他の装置に送信するので、複数の暗号データ全部が生成されるのを待つことなく送信することができる。このため、送信すべきデータである複数の分割データが全て暗号化されるのを待って送信する場合と比較して、暗号化のための待ち時間を圧縮することができ、データの送信処理に要する時間を短縮することができる。
以上のように、本構成によれば、データを暗号化し送信する処理に要する時間の短縮を図ることができる。
【０００８】
（２）上記データ処理装置において、前記データ暗号化部は、前記複数の圧縮データそれぞれの暗号化に用いる複数の乱数データを生成する乱数データ生成部を備え、前記乱数データ生成部は、複数の前記乱数データの内、一の前記乱数データに基づいて次の前記乱数データを生成し、前記データ暗号化部は、前記乱数データ生成部が前記乱数データを生成するごとに前記複数の暗号データを順次生成することが好ましい。
この場合、乱数データが生成されるごとに、暗号データが順次生成される。よって、送信制御部は、複数の暗号データの内、一の暗号データが生成されるごとに順次他の装置に送信する。これにより、送信処理に要する時間を効果的に短縮することができる。
【０００９】
（３）また、一実施形態に係るデータ送信方法は、データを圧縮及び暗号化し他の装置に送信するデータ送信方法であって、前記データを分割して、複数の分割データを生成するデータ分割ステップと、前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮ステップと、前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化ステップと、前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御ステップと、を含む。
【００１０】
（４）また、一実施形態に係るコンピュータプログラムは、データを圧縮及び暗号化し他の装置に送信するデータ送信処理をコンピュータに実行させるためのコンピュータプログラムであって、コンピュータに前記データを分割して、複数の分割データを生成するデータ分割ステップと、前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮ステップと、前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化ステップと、前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御ステップと、を実行させるためのコンピュータプログラムである。
【００１１】
（５）また、一実施形態に係るデータサーバは、データを圧縮及び暗号化しバックアップサーバに送信するデータサーバであって、前記データを分割して、複数の分割データを生成するデータ分割部と、前記複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部と、前記複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化部と、前記複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データを前記他の装置に送信する送信制御部と、を備えている。
【００１２】
上記構成のデータ送信方法、コンピュータプログラム、及びデータサーバによれば、データを圧縮し送信する処理に要する時間の短縮を図ることができる。
【発明の効果】
【００１３】
本発明によれば、データを圧縮し送信する処理に要する時間の短縮を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】データ管理システムの概略構成図である。
【図２】暗号化処理部の構成を示すブロック図である。
【図３】データ暗号化部、及びデータ復号部のブロック図である。
【図４】暗号化用乱数発生部の構成を示すブロック図である。
【図５】本実施形態に係るデータ管理システムにおけるデータサーバと端末との間におけるユーザデータの授受に関する処理を示すシーケンス図である。
【図６】（ａ）は、本実施形態に係るデータ圧縮・暗号化処理の概念図、（ｂ）は、本実施形態に係るデータ復元処理の概念図である。
【図７】データサーバが行うバックアップ処理を示すシーケンス図である。
【図８】暗号化処理部が暗号化を開始し、データ制御部が暗号データを送信する際のタイムチャートである。
【発明を実施するための形態】
【００１５】
〔構成について〕
図１は、データ管理システムの概略構成図である。
データ管理システムは、データサーバ１と、複数の端末２と、バックアップ用サーバ３とを備えている。
データサーバ１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、インターネット４を介して複数の端末２との間で互いに通信可能に接続されている。また、データサーバ１は、インターネット４を介してバックアップ用サーバ３との間で互いに通信可能に接続されている。
【００１６】
このデータ管理システムでは、データサーバ１が複数の端末２の少なくとも１つからデータ蓄積要求を受け付けると、当該データサーバ１は、データ蓄積要求を送信した端末２から送信されるユーザデータを受け付けて蓄積する。一方、データサーバ１が複数の端末２の少なくとも１つからデータ引出し要求を受け付けると、データサーバ１は、自らが蓄積するユーザデータを、データ引出し要求を送信した端末２に向けて送信する。
【００１７】
また、データサーバ１は、端末２から送信されるユーザデータを受け付けて蓄積する際、ユーザデータをバックアップ用サーバ３に送信し、バックアップ用サーバ３にバックアップデータとして記憶し蓄積させる機能も有している。
つまり、データサーバ１はメインのデータセンターとしての機能を有しており、バックアップ用サーバ３は、データバックアップ用のデータセンターとしての機能を有している。
【００１８】
端末２は、例えば、ＣＰＵ（図示せず）やメモリ等の記憶装置（図示せず）を備えたパーソナルコンピュータ等の情報処理装置によって構成されており、当該端末２が記憶しているユーザデータをデータサーバ１に蓄積することを要求するための蓄積要求をデータサーバ１に送信する機能や、蓄積すべきユーザデータをデータサーバ１に送信する機能、蓄積されたユーザデータをデータサーバ１から引き出すためのデータ引出し要求をデータサーバ１に送信する機能、データ引出し要求に応じてデータサーバ１から送信されるユーザデータを受け付ける機能を有している。
【００１９】
バックアップ用サーバ３は、例えば、ＣＰＵ（図示せず）やメモリ、ハードディスク等の記憶装置（図示せず）を備えたワークステーションやパーソナルコンピュータ等の情報処理装置によって構成されており、データサーバ１がバックアップのために送信するデータを受け付けて記憶する機能を有している。
また、バックアップ用サーバ３は、記憶し蓄積しているデータをデータサーバ１からの要求に応じて当該データサーバ１に送信する機能も有している。
【００２０】
図１に示すように、データサーバ１は、データ処理装置としての制御装置１１と、記憶装置１２と、通信装置１３とを備えている。
記憶装置１２は、端末２から送信されるデータを記憶する機能を有しており、例えばハードディスク等の外部記憶装置から構成される。
通信装置１３は、端末２やバックアップ用サーバ３との間で通信接続するための機能を有しており、例えばＬＡＮインターフェース等から構成される。
【００２１】
制御装置１１は、端末２から送信されて与えられるユーザデータを記憶装置１２へ格納して蓄積したり、端末２から送信されたデータをバックアップ用サーバ３に送信する処理を行う。
制御装置１１は、例えばパーソナルコンピュータによって構成されており、ＣＰＵ（図示せず）とメモリ（図示せず）とを有する。制御装置１１の各種機能は、ＣＰＵがメモリに読み出された所定のコンピュータプログラムを実行することにより実現されている。なお、制御装置１１は、その少なくとも一部がＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の集積回路から構成されていてもよい。
【００２２】
制御装置１１は、データ制御部１５と、暗号化処理部１６とを機能的に備えている。暗号化処理部１６は、端末２から与えられるユーザデータを分割し、分割した分割データを圧縮し、暗号化する処理（データ圧縮・暗号化処理）を行う機能を有している。また、暗号化処理部１６は、当該暗号化処理部１６が分割して圧縮暗号化した暗号データを復号、展開し、結合して元のユーザデータを復元する処理（データ復元処理）を行う機能も有している。
【００２３】
データ制御部１５は、端末２からの蓄積要求や引出し要求に応じて、端末２から与えられるユーザデータについて暗号化処理部１６にデータ圧縮・暗号化処理を行わせ、暗号化された暗号データを記憶装置１２に与えて蓄積させたり、記憶装置１２に蓄積されている暗号データを読み出して暗号化処理部１６にデータ復元処理を行わせ、復元したユーザデータを端末２に送信する機能を有している。
また、データ制御部１５は、暗号化処理部１６が生成した暗号データをインターネット４を介してバックアップ用サーバ３に送信し、バックアップ用サーバ３に記憶し蓄積させるバックアップ処理を行う機能を有している。
また、データ制御部１５は、バックアップ用サーバ３に記憶し蓄積させた暗号データをバックアップ用サーバ３に送信させて引出し、記憶装置１２に蓄積させたり、そのまま暗号化処理部１６にデータ復元処理を行わせて端末２に送信する機能も有している。
【００２４】
このように、データ制御部１５は、端末２やバックアップ用サーバ３との間におけるユーザデータや暗号データの授受に関する制御を行う。
【００２５】
図２は、暗号化処理部１６の構成を示すブロック図である。
暗号化処理部１６は、データ制御部１５から端末２のユーザデータが与えられると、当該ユーザデータに対して、分割、圧縮、暗号化を行い、複数の暗号データを生成する。
また、暗号化処理部１６は、データ制御部１５から複数の暗号データが与えられると、当該暗号データに対して、復号、展開、結合を行って、元のユーザデータを生成する。
暗号化処理部１６は、生成した複数の暗号データ及びユーザデータをデータ制御部１５に与える。
【００２６】
暗号化処理部１６は、データ分割部２０と、データ圧縮部２１と、データ暗号化部２２と、データ復号部２３と、データ展開部２４と、データ結合部２５とを備えている。また、暗号化処理部１６は、更に、データ暗号化部２２やデータ復号部２３が使用する秘密鍵を保持する秘密鍵保持部２６を備えている。
【００２７】
データ分割部２０は、データ制御部１５からユーザデータが与えられると、当該ユーザデータを所定の長さに分割し、複数の分割データを生成する。データ分割部２０は、ユーザデータを所定の長さの複数の分割データに分割すると、複数の分割データをデータ圧縮部２１へ与える。
【００２８】
データ圧縮部２１は、データ分割部２０から複数の分割データが与えられると、与えられた分割データそれぞれの圧縮を並列処理により行う。データ圧縮部２１は、可逆圧縮アルゴリズムを利用してデータの圧縮を行う。具体的には、データ圧縮部２１は、例えばＬＺ７７（Ｌｅｍｐｅｌ−Ｚｉｖ）やＬＺＳＳ（Ｌｅｍｐｌｅ−Ｚｉｖ−Ｓｔｏｒｅｒ−Ｓｚｙｍａｎｓｋｉ）等の圧縮アルゴリズムを利用してデータの可逆圧縮処理を行う。
そして、データ圧縮部２１は、データを圧縮する処理により得られる圧縮データをデータ暗号化部２２へ与える。
【００２９】
データ暗号化部２２は、データ圧縮部２１から与えられる圧縮データに対して、複数次元データ暗号化アルゴリズムを利用した暗号化処理を施す。ここでは、データ暗号化部２２は、複数の圧縮データを複数次元データとみなして暗号化処理を行う。そして、データ暗号化部２２は、暗号化された圧縮データ（以下、「暗号データ」と称する。）をデータ制御部１５に与える。
【００３０】
一方、データ復号部２３は、データ制御部１５から一のユーザデータの暗号化によって得られた複数の暗号データが与えられると、これら複数の暗号データに対して、暗号化法を利用した復号処理を施す。そして、データ復号部２３は、複数の暗号データに対して復号処理を施すことにより得られた圧縮データをデータ展開部２４に与える。
【００３１】
図３は、データ暗号化部２２、及びデータ復号部２３のブロック図である。
【００３２】
データ暗号化部２２は、暗号化演算部２２ａと、暗号化用乱数発生部２２ｂとを備えている。
暗号化用乱数発生部２２ｂは、秘密鍵保持部２６が保持する秘密鍵に基づいて、複数の圧縮データそれぞれの暗号化に使用する複数の乱数データを生成する。
秘密鍵保持部２６は、例えばＮ個（Ｎは自然数）の秘密鍵を保持している。
暗号化用乱数発生部２２ｂは、データ圧縮部２１から圧縮データが与えられると、秘密鍵保持部２６から秘密鍵を取得する。暗号化用乱数発生部２２ｂは、Ｎ個の秘密鍵から暗号化用のＮ個以上のＭ個（Ｍは自然数）の範囲で必要数の乱数データを生成する。
【００３３】
図４は、暗号化用乱数発生部２２ｂの構成を示すブロック図である。
図４中、暗号化用乱数発生部２２ｂは、初期値生成部３１と、第１記憶部３２と、第２記憶部３３と、第１計算部３４と、第２計算部３５と、出力部３６とを備えている。
【００３４】
初期値生成部３１は、秘密鍵か与えられると、第１ベクトルｘの初期値及び第２ベクトルｙの初期値を生成する。初期値生成部３１は、初期値である第１ベクトルｘを第１記憶部３２に与えるとともに、初期値である第２ベクトルｙを第２記憶部３３に与える。第１記憶部３２は、第１ベクトルｘが与えられるとこれを記憶するとともに、第１計算部３４に与える。
第１計算部３４は、第１ベクトルｘが与えられると、当該第１ベクトルｘに第１の有理ベクトル写像ｆを適用した第３ベクトルｘ’（＝ｆ（ｘ））を求め、求めた第３ベクトルｘ’を出力部３６と、第２計算部３５とに与える。
【００３５】
また、第２記憶部３３は、初期値生成部３１から第２ベクトルｙが与えられるとこれを記憶するとともに、第２計算部３５に与える。
第２計算部３５は、第２ベクトルｙ及び第１計算部３４から第３ベクトルｘ’が与えられると、これらに第２の有理ベクトル写像ｇを適用した第４ベクトルｙ’（＝ｇ（ｘ’，ｙ））を求め、求めた第４ベクトルｙ’を出力部３６に与える。
【００３６】
出力部３６は、第３ベクトルｘ’と、第４ベクトルｙ’とを結合したベクトルｚを生成し、これを乱数データとして暗号化演算部２２ａに与える。
【００３７】
また、第１計算部３４は、求めた第３ベクトルｘ’を第１更新部３７に与える。第１更新部３７は、第３ベクトルｘ’を第１ベクトルｘとして第１記憶部３２に与える。
第１記憶部３２は、第１更新部３７から第１ベクトルｘが与えられると、過去の第１ベクトルｘを破棄して新たに与えられた第１ベクトルｘを記憶する。次いで、第１記憶部３２は、第１更新部３７から与えられた第１ベクトルｘを第１計算部３４に与える。
【００３８】
さらに、第２計算部３５は、求めた第４ベクトルｙ’を第２更新部３８に与える。第２更新部３８は、第４ベクトルｙ’を第２ベクトルｙとして第２記憶部３３に与える。
第２記憶部３３は、第２更新部３８から第２ベクトルｙが与えられると、過去の第２ベクトルｙを破棄して新たに与えられた第２ベクトルｙを記憶する。次いで、第２記憶部３３は、第２更新部３８から与えられた第２ベクトルｙを第２計算部３５に与える。
【００３９】
その後、第１計算部３４及び第２計算部３５は、第３ベクトルｘ’及び第４ベクトルｙ’を出力部３６に与える。
出力部３６は、次のベクトルｚを生成し、次の乱数データを暗号化演算部２２ａに与える。
【００４０】
なお、第１の有理ベクトル写像ｆ及び第２の有理ベクトル写像ｇとしては、楕円関数の加法定理により導かれる有理写像を用いることができる。
【００４１】
以上のように、暗号化用乱数発生部２２ｂは、一の乱数データを得るために第１ベクトルｘ及び第２ベクトルｙから演算された第３ベクトルｘ’及び第４ベクトルｙ’を、次の乱数データを求めるための計算に用いる第１ベクトルｘ及び第２ベクトルｙとして更新しつつ、順次、必要数の乱数データを生成し、暗号化演算部２２ａに与える。
【００４２】
このように、暗号化用乱数発生部２２ｂは、一の乱数データに基づいて次の乱数データを生成するので、一の乱数データを生成した後に、次の乱数データを生成する。
暗号化用乱数発生部２２ｂは、乱数データを生成するごとに生成した乱数データを暗号化演算部２２ａに与える。
【００４３】
なお、暗号化用乱数発生部２２ｂによる乱数データの生成については、特許第３０３０３４１号公報に記載されている。
【００４４】
図３に戻って、暗号化演算部２２ａは、データ圧縮部２１から与えられる圧縮データと、暗号化用乱数発生部２２ｂから与えられる乱数データとを用いて暗号化演算を行うことにより、暗号データを生成する。この暗号化演算部２２ａは、暗号化演算として、例えば、圧縮データと乱数データとの排他的論理和を計算する。なお、暗号化演算は、排他的論理和の計算に限定されるものではない。
【００４５】
暗号化演算部２２ａは、圧縮データと、乱数データとを用いて暗号化演算を行うことにより暗号データを生成するので、暗号化用乱数発生部２２ｂから乱数データが与えられるごとに各圧縮データそれぞれについて暗号化演算を開始し、暗号データを生成する。よって、データ暗号化部２２の暗号化演算部２２ａは、乱数データが与えられるごとに複数の暗号データを順次生成する。
暗号化演算部２２ａは、暗号データを生成するごとに生成した暗号データをデータ制御部１５に与える。
【００４６】
以上のようにして、暗号化処理部１６は、データ制御部１５から与えられるユーザデータに対してデータ圧縮・暗号化処理を行い、複数の暗号データを生成してデータ制御部１５に与える。
【００４７】
データ復号部２３は、復号演算部２３ａと、復号用乱数発生部２３ｂとを備えている。
復号用乱数発生部２３ｂは、秘密鍵保持部２６が保持する秘密鍵に基づいて、複数の暗号データそれぞれの復号に使用する複数の乱数データを生成する。
復号用乱数発生部２３ｂは、データ制御部１５から暗号データが与えられると、秘密鍵保持部２６から秘密鍵を取得する。復号用乱数発生部２３ｂは、Ｎ個の秘密鍵から復号用のＭ個の範囲で必要数の乱数データを生成する。
なお、復号用乱数発生部２３ｂの構成は、暗号化用乱数発生部２２ｂと同様の構成である。よって、ここでは説明を省略する。
【００４８】
復号演算部２３ａは、データ制御部１５から与えられる複数の暗号データと、復号用乱数発生部２３ｂから与えられる乱数データとを用いて復号演算を行うことにより、複数の暗号データを復号し圧縮データを生成する。この復号演算部２３ａは、復号演算として、例えば、暗号データと乱数データとの排他的論理和を計算する。なお、暗号化演算は、排他的論理和に限定されるものではない。
復号演算部２３ａは、生成した複数の圧縮データをデータ展開部２４に与える。
【００４９】
図２に戻って、データ展開部２４は、データ復号部２３から複数の圧縮データが与えられると、与えられた複数の圧縮データそれぞれの展開を並列処理により行う。データ展開部２４は、前述の可逆圧縮アルゴリズムを利用してデータの展開を行う。
データ展開部２４は、データを展開する処理により得られる展開データをデータ結合部２５へ与える。
【００５０】
データ結合部２５は、データ展開部２４から与えられる複数の展開データを結合して元のユーザデータを生成する。
このようにして、暗号化処理部１６は、データ制御部１５から与えられる複数の暗号データに対してデータ復元処理を行い、複数の暗号データから元のユーザデータを復元する。
【００５１】
次に、本実施形態に係るデータ管理システムの動作について説明する。
〔データサーバと端末との間の処理について〕
図５は、本実施形態に係るデータ管理システムにおけるデータサーバと端末との間におけるユーザデータの授受に関する処理を示すシーケンス図である。
【００５２】
図５中、まず、端末２が保持するユーザデータをデータサーバ１に蓄積することを要求するデータ蓄積要求を、当該端末２がデータサーバ１に送信したとする（ステップＳ１）。
すると、データサーバ１のデータ制御部１５は、端末２から送信されたデータ蓄積要求を受け付け、蓄積可能と判断すれば、蓄積を許可する旨の通知（蓄積許可）を送信する（ステップＳ２）。
【００５３】
蓄積許可を受け付けた端末２は、データサーバ１に対して、自らが保持するユーザデータを送信する（ステップＳ３）。このとき、データサーバ１のデータ制御部１５は、端末２から与えられるユーザデータの一部又は全部を例えば制御装置１１が有するメモリ内のデータバッファに蓄積する。
そして、データ制御部１５は、記憶装置１２における、端末２から送信されるユーザデータを書き込む記憶領域を特定する（ステップＳ４）。
その後、データサーバ１のデータ制御部１５は、暗号化処理部１６にユーザデータに対するデータ圧縮・暗号化処理を行わせて当該ユーザデータに対応する複数の暗号データを生成させる（ステップＳ５）。次いで、データ制御部１５は、これら複数の暗号データを記憶装置１２に書き込む。
【００５４】
また、端末２がデータサーバ１に蓄積しているユーザデータを引き出すことを要求するデータ引出し要求を、当該端末２がデータサーバ１に送信したとする（ステップＳ６）。
すると、データサーバ１のデータ制御部１５は、端末２から送信されたデータ引出し要求を受け付け、記憶装置１２における、端末２のユーザデータに対応する複数の暗号データが格納された記憶領域を特定する（ステップＳ７）。
【００５５】
そして、データサーバ１のデータ制御部１５は、端末２のユーザデータに対応する複数の暗号データを読み出して、暗号化処理部１６に複数の暗号データについてデータ復元処理を行わせてユーザデータを復元させる（ステップＳ８）。
その後、データ制御部１５は、復元したユーザデータを端末２に対して送信する（ステップＳ８）。
【００５６】
〔データ圧縮・暗号化処理について〕
次に、データ圧縮・暗号化処理の詳細について説明する。
図６（ａ）は、本実施形態に係るデータ圧縮・暗号化処理の概念図である。
まず、暗号化処理部１６のデータ分割部２０が、ユーザデータを複数の分割データ（図例では４つ）に分割する。
次に、データ圧縮部２１が、複数の分割データの可逆圧縮を並列処理により行い、複数の圧縮データを生成する。この複数の圧縮データは、複数次元データを構成する。
【００５７】
その後、データ暗号化部２２が、複数の圧縮データを複数次元データ暗号化アルゴリズムに基づいて、暗号化を並列処理により行う。ここでは、複数次元データ暗号化アルゴリズムとして、任意次元の有理数ベクトルの暗号化を並列処理により行うことが可能な任意次元並列可能カオス暗号可逆アルゴリズムを用いて暗号化を行う。
【００５８】
このアルゴリズムでは、Ｍ個（Ｍは自然数）の秘密鍵を用いてＮ次元（Ｎは自然数であり、Ｎ≧Ｍ）の有理数ベクトルを一括化して暗号化するカオス暗号化法により、複数の圧縮データを暗号化する。つまり、任意Ｎ（≧Ｍ）次元の有理数ベクトルを一括して暗号化する。ここで、「有理数ベクトル」とは、複数の圧縮データそれぞれを要素とする複数次元のベクトルである。そして、複数の圧縮データの個数をＮ個とすると、Ｎ個以下のＭ個の秘密鍵から生成されるＮ個の乱数データを用いて、複数の圧縮データそれぞれを暗号化する。なお、カオス暗号化法については、特許第３０３０３４１号公報、特許第４２１９６２９号公報および特開２０１１−３５８００号公報に説明されている。
【００５９】
以上のように、データ暗号化部２２が、複数の圧縮データの暗号化を並列処理により行う。これにより、例えば、暗号化処理部１６が、複数の圧縮データを個別に順番に暗号化する構成に比べて、データ暗号化処理に要する時間を短縮できる。
【００６０】
〔データ復元処理について〕
次に、データ復元処理の詳細について説明する。
図６（ｂ）は、本実施形態に係るデータ復元処理の概念図である。
まず、暗号化処理部１６のデータ復号部２３が、複数の暗号データそれぞれの復号を、複数次元データ暗号化アルゴリズムに基づいて並列処理により行うことにより、複数の圧縮データを生成する。ここで、複数の暗号データが、複数次元データを構成している。
次に、データ展開部２４が、複数の圧縮データそれぞれの展開を並列処理により行うことにより、複数の展開データを生成する。
その後、データ結合部２５が、複数の展開データを結合することにより、データを復元する。
【００６１】
以上のように、データ復号部２３が、複数の暗号データの復号を並列処理により行う。これにより、例えば、データ復号部２３が、複数の暗号データを個別に順番に復号する構成に比べて、データ復元処理に要する時間を短縮できる。
【００６２】
〔バックアップ処理について〕
図７は、データサーバ１が行うバックアップ処理を示すシーケンス図である。
この図７では、端末２から蓄積要求されたユーザデータをデータサーバ１がバックアップ用サーバ３に送信しバックアップする場合について示している。
【００６３】
図７中、まず、端末２がデータ蓄積要求をデータサーバ１に送信したとする（ステップＳ１１）。
端末２からのデータ蓄積要求を受け付けると、データサーバ１のデータ制御部１５は、バックアップ用サーバ３に対して、バックアップ処理の対象となるデータの蓄積をバックアップ用サーバ３に要求するためのデータ蓄積要求を送信する（ステップＳ１２）。
バックアップ用サーバ３は、データサーバ１から送信されたデータ蓄積要求を受け付け、蓄積可能と判断すれば、蓄積を許可する旨の通知（蓄積許可）をデータサーバ１に送信する（ステップＳ１３）。
【００６４】
バックアップ用サーバ３からの蓄積許可を受け付けたデータサーバ１のデータ制御部１５は、端末２に対して蓄積を許可する旨の通知（蓄積許可）を端末２に送信する（ステップＳ１４）。
【００６５】
蓄積許可を受け付けた端末２は、データサーバ１に対して、自らが保持するユーザデータを送信する（ステップＳ１５）。データサーバ１のデータ制御部１５は、端末２から与えられるユーザデータの一部又は全部を例えば制御装置１１が有するメモリ内のデータバッファに一時的に蓄積する。
【００６６】
データ制御部１５は、暗号化処理部１６にデータ圧縮・暗号化処理を行わせるために、ユーザデータを当該暗号化処理部１６に与える。
暗号化処理部１６は、ユーザデータが与えられると、当該ユーザデータに対して分割、圧縮を行い、複数の圧縮データを生成する（ステップＳ１６）。
その後、暗号化処理部１６のデータ暗号化部２２は、複数の圧縮データに対する暗号化を開始する（ステップＳ１７）。
【００６７】
データ暗号化部２２（の暗号化演算部２２ａ）は、上述のように、暗号データを生成するごとに生成した暗号データをデータ制御部１５（図１）に与える。よって、データ制御部１５には、複数の暗号データが順次与えられる。
データ制御部１５は、前記複数の暗号データの内、一の暗号データが生成され与えられると他の暗号データが生成され与えられるのを待たずに前記一の暗号データをバックアップ用サーバ３に送信する。
【００６８】
よって、データ暗号化部２２が複数の暗号データの内、最初の暗号データを生成してデータ制御部１５に与えると、データ制御部１５は、他の暗号データが与えられるのを待たずにバックアップ用サーバ３に向けた暗号データの送信を開始する（ステップＳ１８）。
【００６９】
図８は、暗号化処理部１６が暗号化を開始し、データ制御部１５が暗号データを送信する際のタイムチャートである。なお、図８では、４つの圧縮データ（圧縮データ１〜４）から４つの暗号データ（暗号データ１〜４）を並列に処理して生成する場合を示している。
また、図８中、期間Ｐ１〜Ｐ４は、それぞれ乱数データを生成する期間、期間Ｑ１〜Ｑ４は、それぞれ圧縮データを暗号化して暗号データを生成する期間、期間Ｒ１〜Ｒ４は、それぞれ暗号データをバックアップ用サーバ３に送信する期間を示している。
【００７０】
暗号化処理部１６は、期間Ｐ１の始点において暗号化を開始すると（図８中、ステップＳ１７）、まず、秘密鍵を取得して１番目の圧縮データ１の暗号化に用いる乱数データの生成を開始する。
図８中、暗号化処理部１６は、期間Ｐ１で圧縮データ１の暗号化に用いる乱数データを生成する。
ここで、データ暗号化部２２が暗号化に用いる乱数データは、上述したように、一の乱数データに基づいて次の乱数データが生成される（図４）。
【００７１】
よって、暗号化処理部１６（の暗号化用乱数発生部２２ｂ）は、期間Ｐ１で圧縮データ１の暗号化に用いる乱数データを生成した後、期間Ｐ１終了直後の期間Ｐ２において、圧縮データ１用の乱数データに基づいて圧縮データ２用の乱数データを生成する。
暗号化処理部１６は、期間Ｐ２で圧縮データ２用の乱数データを生成した後、期間Ｐ２終了直後の期間Ｐ３において、圧縮データ２用の乱数データに基づいて圧縮データ３用の乱数データを生成する。
さらに、暗号化処理部１６は、期間Ｐ３で圧縮データ３用の乱数データを生成した後、期間Ｐ３終了直後の期間Ｐ４において、圧縮データ３用の乱数データに基づいて圧縮データ４用の乱数データを生成する。
【００７２】
暗号化処理部１６は、各期間Ｐ１、Ｐ２、Ｐ３、Ｐ４において、各圧縮データの暗号化に用いる乱数データを生成すると、その後の各期間Ｑ１、Ｑ２、Ｑ３、Ｑ４において、乱数データを用いて暗号化を行い、暗号データ１、２、３、４を生成する。
【００７３】
上記のように、暗号化処理部１６は、一の乱数データに基づいて次の乱数データを生成するため、各圧縮データ２〜４に用いる乱数データを生成して暗号化を開始するタイミング（期間Ｐ２〜Ｐ４それぞれの始点）が、乱数データを生成するために必要な期間（Ｐ１〜Ｐ３）ずつ順次遅れる。
【００７４】
よって、分割データ（圧縮データ）がほぼ同じ長さ（データ量）とされているとすると、最も早いタイミングで暗号化が開始された圧縮データ１の暗号化が最初に完了し、順次圧縮データ２、３、４の順に暗号化が完了する。
なお、本例では、分割データ（圧縮データ）がほぼ同じ長さ（データ量）とされているものとする。
【００７５】
暗号化処理部１６は、暗号化が完了し暗号データを生成するごとに当該暗号データをデータ制御部１５に与える。
データ制御部１５は、上述ように、複数の暗号データの内、一の暗号データが生成され与えられると他の暗号データが生成され与えられるのを待たずに前記一の暗号データをバックアップ用サーバ３に送信する。
【００７６】
よって、図８中、暗号化処理部１６が期間Ｑ１において生成した暗号データ１をデータ制御部１５に与えると、データ制御部１５は、他の暗号データ２〜４の生成を待たずに、期間Ｒ１において、暗号データ１の送信を行う。つまり、データ制御部１５は、期間Ｒ１の始点において、バックアップ用サーバ３に向けた暗号データの送信を開始する（図８中、ステップＳ１８）。
【００７７】
その後、暗号化処理部１６が生成した暗号データを順次データ制御部１５に与えると、データ制御部１５は、他の暗号データの生成を待たずに、与えられた暗号データをバックアップ用サーバ３に順次送信する。
【００７８】
暗号化処理部１６は、期間Ｑ４において暗号データ４を生成すると、全ての圧縮データの暗号化を終える。よって、暗号化処理部１６は、期間Ｑ４の終点において、ユーザデータの暗号化を終える（図８中、ステップＳ１９）。
また、データ制御部１５は、暗号化処理部１６から暗号データ４が与えられ、期間Ｒ４において、暗号データ４の送信を終えると、全ての暗号データの送信を終える。よって、データ制御部１５は、期間Ｒ４の終点において、暗号データの送信を終える（図８中、ステップＳ２０）。
【００７９】
上記構成によれば、送信制御部としてのデータ制御部１５が、複数の暗号データの内、一の暗号データが生成され与えられると他の暗号データが生成され与えられるのを待たずに一の暗号データを他の装置としてのバックアップ用サーバ３に送信するので、複数の暗号データ全部が生成されるのを待つことなく送信することができる。このため、このため、複数の分割データが全て暗号化されるのを待って送信する場合と比較して、暗号化のための待ち時間を圧縮することができ、ユーザデータの送信処理に要する時間を短縮することができる。
【００８０】
仮に全暗号データが生成された後に各暗号データを送信する場合、データ制御部１５は、図８中、ステップＳ１９のタイミングまで暗号データの送信を待つことになり、ステップＳ１９のタイミング以後に全暗号データの送信を開始するため、図８中、ステップＳ２０以降において、破線で示す、最大で３つの暗号データを送信するための期間が必要となる。
本実施形態では、上述のように、一の暗号データが生成されると他の暗号データが生成されるのを待たずに一の暗号データをバックアップ用サーバ３に送信するので、図８中、破線で示す期間を短縮することができる。
【００８１】
また、本実施形態において、複数の暗号データは、インターネット４を通じてデータサーバ１からバックアップ用サーバ３に送信されるが、これら複数の暗号データは、ユーザデータを分割した複数の分割データを暗号化して得たものなので、第三者が、暗号データを取得したとしても、元のユーザデータに容易に復元されるのを抑制することができる。
【００８２】
図７に戻って、ユーザデータの暗号化を終え（ステップＳ１９）、暗号データの送信を終えると（ステップＳ２０）、データサーバ１は、送信終了通知をバックアップ用サーバ３に送信する（ステップＳ２１）。
送信終了通知を受け付けたバックアップ用サーバ３は、全暗号データを受信したことを認識し、これら複数の暗号データを蓄積する。
【００８３】
なお、データ制御部１５は、各暗号データを生成すると、生成した複数の暗号化データを制御装置１１が有するメモリ内のデータバッファ等に一時的に蓄積する。
データ制御部１５は、バックアップ用サーバ３への暗号データの送信を終えると、前記データバッファに一時的に蓄積していた複数の暗号データをデータサーバ１の記憶装置１２に与えて蓄積させる（ステップＳ２２）。
これにより、データサーバ１は、暗号データとされたユーザデータを自身に蓄積しつつ、暗号データとされたユーザデータのバックアップをバックアップ用サーバ３に行わせることができる。
なお、暗号データの記憶装置１２への蓄積は、暗号データが生成された後であれば、いつ行ってもよく、各暗号データを生成するごとに逐次行ってもよいし、暗号データの送信が終わった直後に行ってもよい。
【００８４】
以上により、端末２から蓄積要求されたユーザデータをデータサーバ１がバックアップ用サーバにバックアップするバックアップ処理は、終了する。
【００８５】
バックアップ用サーバ３に蓄積された暗号データを引き出す場合、データサーバ１は、バックアップ用サーバ３に引出し要求を送信する。なお、引出し要求の送信は、データサーバ１が自発的に送信することもできるし、端末２がデータサーバ１にバックアップ用サーバ３に対する引出し要求を送信させることもできる。
バックアップ用サーバ３は、この引出し要求を受け付けると、要求に応じた暗号データを要求元のデータサーバ１に送信する。
【００８６】
バックアップ用サーバ３からの暗号データを受け付けたデータサーバ１は、復号、展開、及び結合を行ってユーザデータを復元することができる。
データサーバ１は、復元したユーザデータを端末２に与える。
【００８７】
〔効果について〕
本実施形態のデータサーバ１が有する制御装置１１（データ処理装置）は、端末２から与えられるユーザデータを分割して、複数の分割データを生成するデータ分割部２０と、複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成するデータ圧縮部２１と、複数の圧縮データを、複数次元データとして複数次元データ暗号化アルゴリズムを用いて暗号化することにより暗号データを生成するデータ暗号化部２２と、複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに前記一の暗号データをバックアップ用サーバ３（他の装置）に送信するデータ制御部１５（送信制御部）と、を備えている。
【００８８】
本実施形態によれば、データ分割部２０がユーザデータを分割して複数の分割データを生成し、データ圧縮部が、複数の分割データそれぞれを可逆圧縮することにより複数の圧縮データを生成する。これにより、データ圧縮部２１が分割前のユーザデータを圧縮する構成に比べて、圧縮時間の短縮を図ることができるので、ユーザデータの暗号化処理に要する時間を短縮することができる。また、データ暗号化部２２が、複数の圧縮データを複数次元データとして暗号化する。これにより、データ暗号化部２２が、複数の圧縮データそれぞれの暗号化に、複数次元データ暗号化アルゴリズムを採用することができる。
【００８９】
さらに、データ制御部１５が、複数の暗号データの内、一の暗号データが生成されると他の暗号データの生成を待たずに一の暗号データをバックアップ用サーバ３に送信するので、複数の暗号データ全部が生成されるのを待つことなく送信することができる。このため、ユーザデータを分割せずそのまま暗号化する場合や、複数の分割データが全て暗号化されるのを待って送信する場合と比較して、暗号化のための待ち時間を圧縮することができ、ユーザデータの送信処理に要する時間を短縮することができる。
以上のように、本実施形態によれば、ユーザデータを暗号化し送信する処理に要する時間の短縮を図ることができる。
【００９０】
なお、上記実施形態では、バックアップ用サーバ３がインターネット４を介してデータサーバ１に接続された場合を例示したが、バックアップ用サーバ３は、データサーバ１に通信可能に接続されていればよく、ＬＡＮや電話通信等によってデータサーバ１に接続されていてもよい。
【００９１】
また、上記実施形態では、データサーバ１が一つのバックアップ用サーバ３に対して暗号データを送信し、このバックアップ用サーバ３に暗号データを蓄積させる場合を例示したが、例えば、複数のバックアップ用サーバ３に一つのユーザデータから生成された複数の暗号データを分散して蓄積させてもよい。
これにより、暗号データが第三者によって容易に元のユーザデータに復元されるのをより効果的に抑制することができる。
【符号の説明】
【００９２】
１  データサーバ
２  端末
３  バックアップ用サーバ
４  インターネット
１１  制御装置
１２  記憶装置
１３  通信装置
１５  データ制御部
１６  暗号化処理部
２０  データ分割部
２１  データ圧縮部
２２  データ暗号化部
２２ａ  暗号化演算部
２２ｂ  暗号化用乱数発生部
２３  データ復号部
２３ａ  復号演算部
２３ｂ  復号用乱数発生部
２４  データ展開部
２５  データ結合部
２６  秘密鍵保持部
３１  初期値生成部
３２  第１記憶部
３３  第２記憶部
３４  第１計算部
３５  第２計算部
３６  出力部
３７  第１更新部
３８  第２更新部
【図１】
2017005682.tif 000003
【図２】
2017005682.tif 000004
【図３】
2017005682.tif 000005
【図４】
2017005682.tif 000006
【図５】
2017005682.tif 000007
【図６】
2017005682.tif 000008
【図７】
2017005682.tif 000009
【図８】
2017005682.tif 000010