(57)【特許請求の範囲】
【請求項１】
第１管理者によって管理されているデータ処理装置と、上記第１管理者とは異なる第２管理者によって管理されているサーバ装置とがネットワークを介して通信可能に接続されたデータ管理システムであって、
上記データ処理装置は、
単語間を区切らずに表記する連続表記法によって表された複数の文字からなる文字データをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化する暗号化手段と、
上記暗号化手段によって暗号化された文字データを上記暗号化手段の暗号化とは逆の手順で復号する復号手段と、を有し、
少なくとも上記文字データを含む保管対象データに対する保管要求が入力された場合に上記暗号化手段に上記保管対象データに含まれる文字データを暗号化させて暗号データを生成して該暗号データを上記サーバ装置に送信するよう構成されており、
上記サーバ装置は、
上記データ処理装置から上記暗号データを受信した場合に該暗号データを予め定められた記憶装置に格納するよう構成されているデータ管理システム。
【請求項２】
上記データ処理装置は、
検索キーワードが入力された場合に上記暗号化手段に該検索キーワードを暗号化させて暗号キーワードを生成して該暗号キーワードを上記サーバ装置に送信し、
上記サーバ装置から上記暗号キーワードに応じた暗号データを検索結果として受信した場合に該暗号データを上記復号手段に復号させるものであり、
上記サーバ装置は、
上記データ処理装置から上記暗号キーワードを受信した場合に上記記憶装置から上記暗号キーワードに応じた上記暗号データを検索して、検索された暗号データを検索結果として上記データ処理装置に送信するものである請求項１に記載のデータ管理システム。
【請求項３】
第１管理者によって管理されているデータ処理装置と、上記第１管理者とは異なる第２管理者によって管理されているサーバ装置とがネットワークを介して通信可能に接続されたデータ管理システムに適用されるデータ管理方法であって、
単語間を区切らずに表記する連続表記法によって表された複数の文字からなる文字データを含む保管対象データに対する保管要求が上記データ処理装置に入力された場合に、上記文字データをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化して暗号データを生成して該暗号データを上記サーバ装置に送信する第１ステップと、
上記データ処理装置から送信された上記暗号データが上記サーバ装置で受信された場合に該暗号データを予め定められた記憶装置に格納する第２ステップと、
検索キーワードが上記データ処理装置に入力された場合に該検索キーワードをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化して暗号キーワードを生成して該暗号キーワードを上記サーバ装置に送信する第３ステップと、
上記データ処理装置から送信された上記暗号キーワードが上記サーバ装置で受信された場合に上記記憶装置から上記暗号キーワードに応じた上記暗号データを検索して、検索された暗号データを検索結果として上記データ処理装置に送信する第４ステップと、
上記サーバ装置から送信された上記暗号データが上記検索結果として上記データ処理装置で受信された場合に該暗号データを上記第１ステップにおける暗号化とは逆の手順で復号する第５ステップと、を備えるデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字データを暗号化する技術及び暗号化されたデータをネットワーク上のサーバ装置で保管する技術に関し、特に、上記サーバ装置で管理されているデータの内容が上記サーバ装置の管理者から漏洩することを防止可能なデータ管理システム及びデータ管理方法に関する。
【背景技術】
【０００２】
従来、インターネット上に設けられたサーバ装置（以下「ネットワークサーバ」という。）から提供される顧客管理アプリケーション（ＣＲＭアプリケーション）やデータ管理アプリケーションなどの各種アプリケーションをインターネットを通じて利用者に利用させるネットワークサービスが知られている。このようなネットワークサービスの利用者は、第三者が所有するネットワークサーバが提供する各種アプリケーションを利用して、ネットワーク上に保管された利用者自身のデータ（例えば顧客データやアドレスデータ）に自由にアクセスすることができる。このようなネットワークサービスを利用すれば、利用者自身がデータを管理するためのサーバシステムを設ける必要がないため、経済的メリットが大きい。その反面、第三者の管理下に置かれたネットワークサーバ又はその外部ストレージにデータが保管されるため、利用者の意に反してデータが漏洩するおそれがある。しかし、近年においては、ユーザの認証技術やネットワークセキュリティ技術が向上したことによって、ネットワークサーバからのデータ漏洩などの危険性が低くなっており、第三者の管理下にあるネットワークサーバに利用者自身のデータを管理してもらう管理方法が主流になりつつある。
【０００３】
また、企業のグローバル化が急速に展開されている昨今では、ネットワークサーバが世界各国に設置されるようになった。また、利用者は、自然災害や戦争・紛争・テロなどの人的災害（以下「災害」と称する。）の発生によってネットワークサーバが利用不能となる事態に備えて、世界の複数の地域に点在する複数のネットワークサーバを利用するようになった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２７８９７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記ネットワークサービスの利用者は、国外に設置されたネットワークサーバを利用する場合であっても、そのネットワークサーバが保管する利用者自身のデータを自由に取り扱うことが可能である。しかしながら、各国における法律の改正や社会情勢の変化などによって上記ネットワークサーバの管理体制が変化して、利用者自身のデータにもかかわらずデータの読み出しが制限されたり、場合によってはデータがインターネット上に漏出されたり、データが消去されたりといった不測の事態が発生するおそれがある。また、社会情勢の変化にともないネットワークサーバの管理者のモラルが低下すると、利用者のデータが管理者によって不当に開示されるという問題も生じ得る。このような問題に対しては、事前に暗号化されたデータをネットワークサーバに保管させる方法が有効である。例えば、特許文献１には、暗号化されたデータ及び索引情報がネットワークサーバに送信されると、ネットワークサーバが暗号化されたデータを保管するシステムが開示されている。
【０００６】
しかしながら、特許文献１に記載のシステムは、暗号化されたデータだけでなく、これらのデータを索引するための索引情報が暗号化データに紐付けされた状態でネットワークサーバに保管される仕組みが採用されている。このような仕組みを実現するためには、ネットワークサーバのファームウェアまたはシステムを上記仕組みに合わせて変更する必要があるが、顧客管理アプリケーションなどのネットワークサービスの利用者が同サービスの提供者のネットワークサーバのファームウェアまたはシステムを変更するのは、実質的に不可能である。
【０００７】
そこで、本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、顧客管理アプリケーションなどのネットワークサービスを提供する第三者のネットワークサーバのファームウェアやシステムの仕組みを変更することなく、第三者のネットワークサーバと利用者のデバイスとの間でデータの秘匿性を保持することが可能なデータ管理システム及びデータ管理方法を提供することにある。
【課題を解決するための手段】
【０００８】
(1)  本発明は、第１管理者によって管理されているデータ処理装置と、上記第１管理者とは異なる第２管理者によって管理されているサーバ装置とがネットワークを介して通信可能に接続されたデータ管理システムである。上記データ処理装置は、複数の文字からなる文字データを暗号化する暗号化手段と、上記暗号化手段によって暗号化された文字データを上記暗号化手段の暗号化とは逆の手順で復号する復号手段と、を有している。このデータ処理装置は、少なくとも上記文字データを含む保管対象データに対する保管要求が入力された場合に上記暗号化手段に上記保管対象データに含まれる文字データを暗号化させて暗号データを生成して該暗号データを上記サーバ装置に送信するよう構成されている。上記サーバ装置は、上記データ処理装置から上記暗号データを受信した場合に該暗号データを予め定められた記憶装置に格納するよう構成されている。
【０００９】
このように構成されたデータ管理システムでは、クライアント端末などからデータ処理装置に上記保管要求が入力されると、データ処理装置は上記保管要求に応じた保管対象データの文字データを上記暗号化手段に暗号化させる。このとき暗号化される文字データは、保管要求とともに入力されたものであってもよく、或いは保管要求とともに入力されたアドレス（ＩＰアドレス、メモリアドレス、ハードディスクのトラックアドレス等）で特定される記憶領域に格納されたものであってもよい。この記憶領域は、第１管理者の管理下に置かれたものであり、データ処理装置内のメモリやＨＤＤ、或いはネットワーク上に設けられたのＨＤＤなどが該当する。なお、文字データとは、文字で表現されたデータのことであり、文書データあるいはテキストデータと同義である。
【００１０】
暗号化された文字データ（暗号データ）は、ネットワークを経由して、サーバ装置に送信される。上記サーバ装置は、上記データ処理装置から送信されてきた上記暗号データを受信すると、この暗号データを予め定められた記憶装置に格納する。この記憶装置は第２管理者の管理下に置かれてものであり、例えばサーバ装置内に設けられたものや、或いはネットワーク上の所定のアドレスに設けられたものが該当する。記憶装置に格納された暗号データはサーバ装置によって保管される。
【００１１】
このように本発明のデータ管理システムが構成されているため、第２管理者が管理するサーバ装置には暗号化された文字データが格納される。したがって、仮にサーバ装置内のデータが漏洩しても、それらのデータは暗号化されたものであるため、そのデータ内容が第１管理者以外の者に知られることはない。また、データの暗号化及び復号がデータ処理装置で行われるため、第２管理者の管理下にあるサーバ装置のファームウェアやシステムに変更を加えることなく、既存のデータサーバシステムに本発明を容易に適用することができる。
【００１２】
なお、このデータ管理システムにおいて、データ処理装置は、上記保管対象データに対する読出要求が入力された場合に、上記読出要求を上記サーバ装置に送信するよう構成されている。この場合、サーバ装置は、上記データ処理装置から上記読出要求を受信した場合に、該読出要求に基づいて特定される上記暗号データを上記記憶装置から読み出して上記データ処理装置に送信する。そして、データ処理装置は、上記読出要求に応じて上記サーバ装置から送信された上記暗号データを受信した場合に、該暗号データを上記復号手段に復号させて元の文字データに戻す。
【００１３】
(2)  上記文字データは、単語間を区切らずに表記する連続表記法によって表されたものである。すなわち、この文字データは、中国語、日本語、韓国語（以下「ＣＪＫ言語」と総称する。）などのように分かち書き（単語間をスペースなどで区切る書き方）をせずに複数の単語を連続して表記する連続表記法で記載された文章が文字コード化されたテキストデータである。この場合、上記暗号化手段は、上記保管対象データに含まれる文字データをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化するものであることが好ましい。
【００１４】
連続表記法を採用する言語の代表格は中国語、日本語、韓国語（ＣＪＫ言語）である。ＣＪＫ言語で作成された文章は、アルファベット文字を組み合わせて構成される欧米の言語（以下「欧米言語」と略する。）の文章とは異なり、わかち書きがされない。このような言語で使用される文字列を含む文字データは、上記暗号化手段によって、Ｎ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成されるブロックに分解され、各ブロックそれぞれが暗号化される。このように暗号化されることにより、連続するＮ個の文字からなる１ブロックが一つの特徴部分として把握される。そのため、暗号化後の文字データ（暗号データ）であっても、その特徴部分に基づいて、暗号化されたままの文字データ（暗号データ）に対する部分一致検索処理や全文検索処理、更にはソート処理などの各処理が高い精度で実現可能となる。
【００１５】
(3)  上記データ処理装置は、検索キーワードが入力された場合に上記暗号化手段に該検索キーワードを暗号化させて暗号キーワードを生成して該暗号キーワードを上記サーバ装置に送信し、上記サーバ装置から上記暗号キーワードに応じた暗号データを検索結果として受信した場合に該暗号データを上記復号手段に復号させるものである。この場合、上記サーバ装置は、上記データ処理装置から上記暗号キーワードを受信した場合に上記記憶装置から上記暗号キーワードに応じた上記暗号データを検索して、検索された暗号データを検索結果として上記データ処理装置に送信するものであることが好ましい。
【００１６】
これにより、サーバ装置内で暗号データが復号されることなく検索処理が行われ、その検索結果がデータ処理装置で復号される。そのため、サーバ装置からのデータの漏洩を防止しつつ、暗号化されたデータを検索対象とする検索機能を実現することが可能となる。
【００１７】
(4)  上記暗号化手段は、上記保管対象データに含まれる文字データをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれをを整数化処理した後に、整数化処理後のデータに示される数値を予め定めされた文字置換テーブルに基づいて特定された文字に置換するものである。また、上記データ処理装置は、上記サーバ装置から暗号データを受信した場合に該暗号データを上記復号手段に復号させるものである。上記サーバ装置は、予め定められた項目に対するソート要求に基づいて該項目に属する暗号データを所定のソート順序となるようにソートして、ソート後の順序を示すソート順序情報と共に暗号データを上記データ処理装置に送信するものである。
【００１８】
このように暗号化手段が構成されているため、サーバ装置において暗号データに対してソート処理が行われた場合に、その暗号データに対するソート順序と復号後の文字データに対するソート順序とが一致する。つまり、暗号データに対して行われたソート結果を復号後の文字データにも適用することができる。これにより、サーバ装置からのデータの漏洩を防止しつつ、暗号化されたデータをソート対象とするソート機能を実現することが可能となる。
【００１９】
(5) 本発明は、上述したデータ管理システムに適用されるデータ管理方法として捉えることもできる。このデータ管理方法が適用されるデータ管理システムは、第１管理者によって管理されているデータ処理装置と、上記第１管理者とは異なる第２管理者によって管理されているサーバ装置とがネットワークを介して通信可能に接続されたデータ管理システムである。当該データ管理方法は、第１ステップ乃至第５ステップを有する。第１ステップは、単語間を区切らずに表記する連続表記法によって表された複数の文字からなる文字データを含む保管対象データに対する保管要求が上記データ処理装置に入力された場合に、上記文字データをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化して暗号データを生成して該暗号データを上記サーバ装置に送信する。第２ステップは、上記データ処理装置から送信された上記暗号データが上記サーバ装置で受信された場合に該暗号データを予め定められた記憶装置に格納する。第３ステップは、検索キーワードが上記データ処理装置に入力された場合に該検索キーワードをＮ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成される複数のブロックに分解し、各ブロックそれぞれを暗号化して暗号キーワードを生成して該暗号キーワードを上記サーバ装置に送信する。第４ステップは、上記データ処理装置から送信された上記暗号キーワードが上記サーバ装置で受信された場合に上記記憶装置から上記暗号キーワードに応じた上記暗号データを検索して、検索された暗号データを検索結果として上記データ処理装置に送信する。第５ステップは、上記サーバ装置から送信された上記暗号データが上記検索結果として上記データ処理装置で受信された場合に該暗号データを上記第１ステップにおける暗号化とは逆の手順で復号する。
【００２０】
これにより、仮にサーバ装置内のデータが漏洩しても、それらのデータは暗号化されたものであるため、そのデータ内容が第１管理者以外の者に知られることはない。また、データの暗号化及び復号がデータ処理装置で行われるため、第２管理者の管理下にあるサーバ装置のファームウェアやシステムに変更を加える必要もない。また、サーバ装置内で暗号データが復号されることなく検索処理が行われ、その検索結果がデータ処理装置で復号される。そのため、検索時においてもサーバ装置からのデータの漏洩を防止しつつ、暗号化されたデータを検索対象とする検索機能を実現することが可能となる。
【発明の効果】
【００２１】
本発明によれば、第２管理者のサーバ装置のファームウェアやシステムの仕組みを変更することなく、第２管理者のサーバ装置から第１管理者のデータの内容が漏洩することを防止してデータの秘匿性を保持することが可能となる。また、文字データが連続表記法によって作成された文章の文書データやテキストデータである場合は、その文字データをＮ−ｇｒａｍ方式に基づいて分割されたブロックごとに暗号化することにより、連続するＮ個の文字からなる１ブロックが一つの特徴部分として把握される。そのため、文字データ（暗号データ）であっても、それに対する部分一致検索処理、全文検索処理などの各処理を高精度で実現することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、データ管理システム１０のネットワーク構成を示すネットワーク図である。
【図２】図２は、データ管理システム１０の各デバイスの概略構成を示すブロック図である。
【図３】図３は、データのアップロード時にデータ管理システム１０内で実行されるデータ又は信号の送受信シーケンスを示すシーケンス図である。
【図４】図４は、データのアップロード時に中継サーバ２１０で実行される処理の手順の一例を示すフローチャートである。
【図５】図５は、データの検索時にデータ管理システム１０内で実行されるデータ又は信号の送受信シーケンスを示すシーケンス図である。
【図６】図６は、データの検索時に中継サーバ２１０で実行される処理の手順の一例を示すフローチャートである。
【図７】図７は、データのソート時にデータ管理システム１０内で実行されるデータ又は信号の送受信シーケンスを示すシーケンス図である。
【図８】図８は、データのソート時に中継サーバ２１０で実行される処理の手順の一例を示すフローチャートである。
【図９】図９は、中継サーバ２１０で実行される暗号化処理の手順の一例を示すフローチャートである。
【図１０】図１０は、顧客データ及びユーザーインターフェースの一例を示す図である。
【発明を実施するための形態】
【００２３】
以下、適宜図面を参照して本発明の一実施形態に係るデータ管理システム１０（本発明のデータ管理システムの一例）について説明する。
【００２４】
図１に示されるように、データ管理システム１０は、アプリケーションを提供するアプリケーションサーバ１５(以下「アプリサーバ」と略する。本発明のサーバ装置の一例)と、クライアント管理システム２０とによって構成されている。アプリサーバ１５は、インターネット１２（本発明のネットワークの一例）を介して、クライアント管理システム２０の中継サーバ２１０（本発明のデータ処理装置の一例）と通信可能に接続されている。
【００２５】
本実施形態では、アプリサーバ１５は、所謂「Software as a Service」のカテゴリに属するアプリケーションサービスを提供する事業者（本発明の第２管理者に相当、以下「ＳａａＳ事業者」という。）の管理下に置かれて運用されている。一方、クライアント管理システム２０は、ＳａａＳ事業者とは異なる事業者（本発明の第１管理者に相当）の管理下に置かれて運用されている。従来は、同一の管理者によってサーバ及びクライアント管理システムの双方が管理運用された管理システムが主流であった。しかし、近年は、システムの設備投資負担を軽減することや、災害時の設備損壊及びデータ紛失といったリスクを分散することの重要性が高まっており、セキュリティ技術の向上により通信時のデータ漏洩の危険性も低くなったことも相まって、記憶領域の提供や利用者のデータの保管、顧客情報等のデータベース管理をＳａａＳ事業者が請け負い、ＳａａＳ事業者がネットワークを通じて提供するアプリケーションサービスを利用者が利用するといった本実施形態のデータ管理システム１０のようなシステムが主流になりつつある。このようなアプリケーションサービスの実例として、米国のセールスフォース・ドットコムインコーポレイテッドが提供するＣＲＭソリューションや、米国のグーグルインコーポレイテッドが提供するグーグルカレンダー（ウェブカレンダーサービス）などがある。なお、グーグルはグーグルインコーポレイテッドの登録商標である。
【００２６】
アプリサーバ１５は、データベース管理機能、データ検索機能、及びソート機能を有する。データベース管理機能は、インターネット１２を経て外部デバイスから転送された顧客データやアドレスデータなどをデータベースとして内部或いは外部の記憶領域に蓄積保存する機能である。データ検索機能は、外部デバイスから転送された検索キーワードに基づいて上記データベースに対してキーワード検索を行う機能である。ソート機能は、外部デイバイスからソート対象となる項目が指定されたときに、その項目に関して上記データベース内の顧客データの順序の並べ替え（ソート）を行う機能である。アプリサーバ１５は、インターネット１２を通じてクライアント管理システム２０に上記各機能を提供することができるように構成されている。そのため、上記各機能を実現するためのアプリケーションソフトウェアがアプリサーバ１５にインストールされている。これにより、クライアント管理システム２０は、アプリサーバ１５が提供する上記各機能のネットワークサービスを利用することが可能となっている。以下に、アプリサーバ１５及びクライアント管理システム２０の各構成について詳細に説明する。
【００２７】
図２に示されるように、アプリサーバ１５は、ＣＰＵなどの制御部１５１と、ＲＯＭ１５２と、ＲＡＭ１５３と、ＨＤＤなどの大容量記憶媒体であるデータ記憶部１５４と、外部との通信を行う通信Ｉ／Ｆ１５５とを備えるコンピュータ（電子計算機）である。アプリサーバ１５に備えられた各構成要素は、内部バスによって互いに通信可能に接続されている。データ記憶部１５４には、インターネット１２を経て転送されてきたデータがデータベースとして蓄積記憶される。データ記憶部１５４に格納されるデータの種類は特に限定されないが、本実施形態では、図１０（Ａ）に示されるように、顧客番号、顧客名称、顧客住所、顧客に関するメモ（以下「顧客メモ」と称する。）、登録日（アップデートした日）の５つの項目からなるリスト形式の顧客データ（以下「顧客リスト」ともいう。）がテキスト形式でデータベース管理されているものとする。なお、データ記憶部１５４には、図示しないアプリケーション記憶領域が割り当てられており、この記憶領域に、上述したデータベース管理機能、データ検索機能、ソート機能を実現するためのアプリケーションのプログラムが格納されている。
【００２８】
図１に示されるように、クライアント管理システム２０は、中継サーバ２１０と、情報管理サーバ２２０と、複数の端末装置２３０（２３０Ａ，２３０Ｂ，２３０Ｃ）とによって構成されており、これらがＬＡＮ２１によって互いに通信可能に接続されている。
【００２９】
図２に示されるように、端末装置２３０は、ＣＰＵなどの制御部２３１と、ＲＯＭ２３２と、ＲＡＭ２３３と、ＨＤＤ２３４と、キーボードなどの入力部２３５と、液晶ディスプレイなどのモニタ２３６と、外部との通信を行う通信Ｉ／Ｆ２３７とを備えるコンピュータ（電子計算機）であり、具体的には、パーソナルコンピュータやＰＤＡ、携帯電話、タブレット端末、スマートフォンなどが該当する。アプリサーバ１５のネットワークサービスを利用しようとする利用者は、端末装置２３０を操作して中継サーバ２１０やアプリサーバ１５に対して上述のデータベース管理機能やデータ検索機能、ソート機能に関する各種の要求を送信する。
【００３０】
情報管理サーバ２２０は、ＣＰＵなどの制御部２２１と、ＲＯＭ２２２と、ＲＡＭ２２３と、後述する基本情報が格納されたＨＤＤなどの基本情報記憶部２２４と、外部との通信を行う通信Ｉ／Ｆ２２５とを備えるコンピュータ（電子計算機）である。基本情報記憶部２２４には、暗号化及び復号に用いられる暗号方式を指定するための暗号指定情報や、暗号化処理に用いられる複数の文字置換表などが基本情報として格納されている。上記暗号指定情報は、端末装置２３０を識別するためのユーザＩＤ等の識別情報や予め定められた複数の言語情報などと対応付けられた状態でテーブルデータとして基本情報記憶部２２４に記憶されている。上記テーブルデータは、後述する暗号方式の選択時に、端末装置２３０の識別情報に応じた暗号方式や、暗号化対象のデータで使用されている文字の言語に応じた暗号方式を選択する際に参照される。
【００３１】
基本情報記憶部２２４には、第１文字置換表と第２文字置換表とが記憶されている。第１文字置換表は後述する第１暗号方式による暗号化の際に用いられるものであり、第２文字置換表は後述する第２暗号方式による暗号化の際に用いられる。
【００３２】
上記暗号指定情報は、端末装置２３０から中継サーバ２１０に対してデータのアップロード要求（データの書き込み要求）があったときに、中継サーバ２１０によって基本情報記憶部２２４から読み出される。例えば、端末装置２３０Ａから中継サーバ２１０に対してアップロード要求があったときに、要求元の端末装置２３０Ａの識別情報に対応する暗号指定情報、或いは暗号化対象のデータに使用されている言語に対応する暗号指定情報が上記テーブルデータから読み出されて、その暗号指定情報が情報管理サーバ２２０から中継サーバ２１０へ送信される。上記暗号指定情報は、端末装置２３０ごとに異なるものであってもよく、或いはクライアント管理システム２０に属する全ての端末装置２３０について共通のものであってもよい。
【００３３】
中継サーバ２１０は、ＣＰＵなどの制御部２１１と、ＲＯＭ２１２と、ＲＡＭ２１３と、各種アプリケーションが格納されたＨＤＤ２１４と、外部との通信を行う通信Ｉ／Ｆ２１５，２１６とを備えるコンピュータ（電子計算機）である。通信Ｉ／Ｆ２１５は、ＬＡＮ２１に接続するためのインターフェースであり、通信Ｉ／Ｆ２１６は、インターネット１２に接続するためのインターフェースである。中継サーバ２１０には、暗号化処理や復号処理を行うアプリケーションや、アプリサーバ１５及び端末装置２３０それぞれとの間で種々のデータや信号を中継するためのアプリケーションがインストールされており、それらのアプリケーションのプログラムはＨＤＤ２１４に格納されている。
【００３４】
本実施形態では、暗号化処理のアプリケーションとして少なくとも次の２種類の暗号化プログラムがＨＤＤ２１４に格納されている。具体的には、第１暗号方式による暗号化を実行するためのプログラムと、第２暗号方式による暗号化を実行するためのプログラムとがＨＤＤ２１４に格納されている。第１暗号方式は、暗号化されたデータに対してソート処理はできないが検索処理は可能とする暗号方式である。第２暗号方式は、暗号化されたデータに対してソート処理及び検索処理を可能とする暗号方式である。これらの暗号化方式は、暗号化する対象に応じて使い分けられている。
【００３５】
上記第１暗号方式は、暗号化対象として入力されたテキストデータ（本発明の文字データに相当）を、全文検索などに用いられる所謂Ｎ−ｇｒａｍ方式に基づいて連続するＮ個の文字で構成されるブロックに分割し、分割された各ブロックのテキストデータをＡＥＳ１２８ＣＦＢモードで暗号化し、暗号化されたテキストデータに対して文字置換処理を行う方式である。一方、上記第２暗号方式は、暗号化対象として入力されたテキストデータを連続するＮ個の文字で構成されるブロックに分割し、その各ブロックのテキストデータに対して文字置換処理を行う方式である。これらの暗号方式は、日本語で構成された文章のようにわかち書きがされていない文章、つまり、単語間をスペースなどで区切らずに複数の単語を連続して表記する連続表記法で記載された文章のテキストデータに対して暗号化処理が行われる場合に選択される。わかち書きがされていない文章のテキストデータとしては、日本語による文章のテキストデータだけでなく、所謂ＣＪＫ言語（中国語、日本語、韓国語）やタイ語などで作成され文章のテキストデータが該当する。なお、欧米言語からなる文章のテキストデータに対して暗号化処理が行われる場合は、第１暗号方式及び第２暗号方式とは異なる従来周知の暗号方式（ＡＥＳ等）が選択される。
【００３６】
以下、図３乃至図１０を参照しながら、データ管理システム１０で実行される各種の処理手順について説明する。なお、以下の説明では、データ管理システム１０において実行される通信（データや信号の送受信）は、国際標準化機構（ＩＳＯ）や国際電気通信連合（ＩＴＵ）などによって標準化された通信プロトコルに基づいて行われるものとし、その通信方法の詳細な説明については省略する。また、以下において、暗号化処理及び復号処理を実行する中継サーバ２１０の制御部２１１が本発明の暗号化手段及び復号手段に相当する。
【００３７】
まず、図３及び図４を用いて、クライアント管理システム２０からアプリサーバ１５へデータがアップロードされるときに中継サーバ２１０で実行される処理手順の一例について詳細に説明する。なお、以下の実施形態では、データ管理システム１０は、各デバイス間の通信接続が確立され、アプリサーバ１５によるネットワークサービスで使用されるユーザーインターフェースの一例である入力画面３６（図１０（Ｂ）参照）が端末装置２３０のモニタ２３６に表示された状態にあるものとする。また、以下においては、アプリサーバ１５のデータ記憶部１５４(図２参照)に記憶された顧客データに関するデータベース（図１０（Ａ）参照）に対して新たな顧客データがアップロードされる例について説明する。また、当該アップロード時にデータ管理システム１０で送受信される顧客データは、複数の日本語文字がＵＴＦ−８で定義される文字コードで表されたテキストデータとする。
【００３８】
利用者が端末装置２３０からアプリサーバ１５へ新たな顧客データをアップロードする場合、まず、利用者は端末装置２３０を操作することによって、任意の顧客データとともにその顧客データのアップロード要求（本発明の保管要求に相当）を中継サーバ２１０へ送信する（図３参照）。具体的には、入力画面３６（図１０（Ｂ）参照）に設けられた顧客番号、顧客名称、顧客住所、顧客メモ、登録日などの項目（フィールド又はカラムとも呼ばれる。）の各入力欄に必要な事項が日本語で入力された後に、登録ボタン３１が押し操作されると、端末装置２３０の制御部２３１は、入力された各項目のデータをＵＴＦ−８で定義される３バイト或いは４バイトの文字コードからなるテキストデータに変換して、アプリサーバ１５に対するアップロード要求とともに中継サーバ２１０へ送信する。このとき、端末装置２３０の識別情報（例えばユーザＩＤ）が上記アップロード要求とともに送信される。なお、変換された各項目のデータ（顧客番号、顧客名称、顧客住所、顧客メモ、登録日それぞれの個別データ）はそれぞれが関連付けられた状態でひとまとまりの１件分の顧客データ（以下「レコード」という。）として取り扱われる。
【００３９】
なお、ＵＴＦ−８は、中国語、日本語、韓国語（ＣＪＫ言語）の文字を表示することが可能であるため、我が国をはじめＣＪＫ言語の国では、コンピュータに利用させる文字コードとして多言語用文字コードであるＵＴＦ−８が使用されている。
【００４０】
図４に示されるように、中継サーバ２１０では、端末装置２３０からのアップロード要求及び上記レコードが受信されると（Ｓ１のＹＥＳ）、制御部２１１は、上記アップロード要求に対応する暗号方式を情報管理サーバ２２０に要求する（Ｓ２）。この要求時に、制御部２１１は、端末装置２３０の識別情報や、入力されたレコードに含まれるテキストデータの文字種別情報（例えば日本文データか英文データの区別）を情報管理サーバ２２０に送信する。なお、日本文データか英文データの区別は、使用されている文字コードから識別可能である。
【００４１】
情報管理サーバ２２０では、中継サーバ２１０からの要求を受けると、制御部２２１は、アップロード要求に応じた暗号指定情報（暗号方式を指定するためのもの）を基本情報記憶部２２４から読み出す。具体的には、端末装置２３０の識別情報や入力されたレコードの文字種別情報に対応する暗号指定情報が基本情報記憶部２２４内のテーブルデータから読み出される。本実施形態では、入力されたレコードに含まれるテキストデータが日本語であるので、上述した第１暗号方式及び第２暗号方式を指定するための暗号指定情報が読み出され、また、これらの暗号方式に用いられる第１文字置換表及び第２文字置換表が読み出される。その後、その暗号指定情報及び文字置換表が中継サーバ２１０に送信される。
【００４２】
図４に示されるように、中継サーバ２１０では、情報管理サーバ２２０から暗号指定情報及び文字置換表が受信されると（Ｓ３のＹＥＳ）、制御部２１１は、その暗号指定情報が示す暗号方式を特定する（Ｓ４）。具体的には、その暗号指定情報が示す上記第１暗号方式及び上記第２暗号方式を特定する。その後、上記レコードに含まれる複数の項目のデータの中から暗号化する対象が特定される（Ｓ５）。本実施形態では、上記レコードに含まれる複数の項目のうち、予め定められた顧客メモが第１暗号方式の対象として特定され、予め定められた顧客名称及び顧客住所（以下「顧客名称等」と称する。）が第２暗号方式の対象として特定される。その他の項目（顧客番号、登録日）は秘匿性が低いため、暗号化対象から外される。
【００４３】
その後、制御部２１１は、上記レコードのうち、暗号化対象に特定された項目のデータだけを暗号化する（Ｓ６）。本実施形態では、顧客メモのデータに対して第１暗号方式に基づく暗号化処理（以下「第１暗号化処理」と称する。）が行われ、顧客名称等のデータに対して第２暗号方式に基づく暗号化処理（以下「第２暗号化処理」と称する。）が行われる。この暗号化処理は、各項目のデータ毎に行われる。
【００４４】
顧客メモのデータに対する上記第１暗号化処理は、図９（Ａ）のフローチャートに示される手順にしたがって行われる。具体的には、まず、暗号化対象である顧客メモのテキストデータ（ＵＴＦ−８に基づいて文字コード化されたもの）が２−ｇｒａｍ方式に基づいて連続する２個の文字（Ｘ，Ｙ）で構成されるブロックに分割される（Ｓ４１）。例えば、上記レコードの顧客メモの欄に、「東京都知事選挙に出馬した。」という日本語文章が入力されていた場合は、この文章は、（Ｘ，Ｙ）＝｛（東，京）（京，都）（都，知）（知，事）（事，選）（選，挙）（挙，に）（に，出）（出，馬）（馬，し）（し，た）｝というように１１個のブロックに分割される。以下、これらの各ブロックがＵＴＦ−８で表された文字コードをＰ（Ｘ，Ｙ）と表す。
【００４５】
次ぎに、制御部２１１によって、ＵＴＦ−８で表された文字コードＰ（Ｘ，Ｙ）が、ユニコード１６で表される文字コードに変換される（Ｓ４２）。変換後の文字コード、つまりユニコード１６で表された文字コードをＰ’（Ｘ’，Ｙ’）と表す。ユニコード１６によれば、１文字が２バイトで表現される。したがって、ＵＴＦ−８では３又は４バイトの文字コードで表された文字Ｘは、ユニコード１６では２バイトの文字コードで表された文字Ｘ’となる。同様に、ＵＴＦ−８では３又は４バイトの文字コードで表された文字Ｙは、ユニコード１６では２バイトの文字コードで表された文字Ｙ’となる。したがって、Ｐ’（Ｘ’，Ｙ’）は４バイト（３２ビット）で表されることになる。このようにステップＳ４２の変換処理を行うことによって、暗号化後のデータの膨大化を抑制することができる。
【００４６】
次ぎに、制御部２１１によって、変換後のＰ’（Ｘ’，Ｙ’）が整数化される（Ｓ４３）。ここで、整数化後の数値をＱ１（Ｘ’，Ｙ’）と表す。このＱ１（Ｘ’，Ｙ’）は、Ｘ’とＹ’との排他的論理和（排他的ビット和）により得られた演算値と６５５３５とを乗算し、その演算結果にＹ’を加算して得られた数値であり、Ｑ１（Ｘ’，Ｙ’）＝（Ｘ’＾Ｙ’）＊６５５３５＋Ｙ’の数式により求められる。上記数式において（Ｘ’＾Ｙ’）は排他的論理和を示す。このように排他的論理和の演算が行われることにより、文字Ｘと文字Ｙとの前後位置関係がＱ１（Ｘ’，Ｙ’）からは読み取られ難くなり、暗号化後のデータが容易に解読されなくなる。なお、ステップＳ４３で得られた整数値は４バイト（３２ビット）で表示される。つまり、ステップＳ４３の整数化処理によって変換可能な整数値は、０〜２３２までの６５５３５個の正の整数である。
【００４７】
続いて、Ｑ１（Ｘ’，Ｙ’）がＡＥＳ１２８ＣＦＢモードで暗号化される（Ｓ４４）。暗号化された４バイトのテキストデータは、次のステップＳ４４において、テキストデータの１バイトずつに対して文字置換処理が行われる（Ｓ４５）。具体的には、１バイトで表現できる２５６通りの数値それぞれに対応するように異なる文字や記号が予め定められた第１文字置換表が用意されており、その第１文字置換表に基づいて、上記４バイトのテキストデータの１バイトずつに対して、その１バイトが表す数値に対応する文字等が第１文字置換表から選択されて割り当てられる。
【００４８】
そして、ステップＳ４１で分割された全てのブロックに対して文字置換処理が終了すると（Ｓ４６のＹＥＳ）、隣接するブロックに対応するテキストデータが連結されて一つの暗号データ（本発明の暗号データに相当）が生成される（Ｓ４７）。このようにして生成された暗号データは、元の「東京都知事選挙に出馬した。」という文章のテキストデータとはなっておらず、文字置換された理解不明な文字列となっている。
【００４９】
顧客名称等のデータに対する第２暗号化処理は、図９（Ｂ）のフローチャートに示される手順にしたがって行われる。具体的には、まず、上述したステップＳ４１及びＳ４２と同様にして、制御部２１１によって、暗号化対象の項目のテキストデータ（ＵＴＦ−８に基づいて文字コード化されたもの）が２−ｇｒａｍ方式に基づいて連続する２個の文字（Ｘ，Ｙ）で構成されるブロックに分割され（Ｓ５１）、その後、ＵＴＦ−８で表された文字コードＰ（Ｘ，Ｙ）が、ユニコード１６で表される文字コードＰ’（Ｘ’，Ｙ’）に変換される（Ｓ５２）。
【００５０】
次ぎに、制御部２１１によって、変換後のＰ’（Ｘ’，Ｙ’）が整数化される（Ｓ５３）。ここで、整数化後の数値をＱ２（Ｘ’，Ｙ’）と表す。このＱ２（Ｘ’，Ｙ’）は、Ｘ’に６５５３５を乗じて得られた値にＹ’を加算して得られた数値であり、Ｑ２（Ｘ’，Ｙ’）＝６５５３５＊Ｘ’＋Ｙ’の数式により求められる。なお、ステップＳ５３で得られた整数値は４バイト（３２ビット）で表示される。
【００５１】
続いて、Ｑ２（Ｘ’，Ｙ’）の４バイトのテキストデータは、そのテキストデータの１バイトずつに対して文字置換処理が行われる（Ｓ５４）。具体的には、１バイトで表現できる２５６通りの数値それぞれに対応するように異なる文字や記号が予め定められた第２文字置換表（表１参照）が用意されており、その第２文字置換表に基づいて、上記４バイトのテキストデータの１バイトずつに対して、その１バイトが表す数値に対応する文字等が第２文字置換表から選択されて割り当てられる。なお、第２文字置換表は、表１に示されるように、文字コードが示す数値が小さいものから順に０〜２５５の番号が割り当てられている。その順番に対応するように文字が割り当てられるので、Ｑ２（Ｘ’，Ｙ’）に対して文字置換処理が行われても、文字Ｘと文字Ｙとの前後位置関係が置換後のテキストデータから読み取れるようになっている。
【００５２】
【表１】
0005307199.tif 000002
【００５３】
その後、ステップＳ５１で分割された全てのブロックに対して文字置換処理が終了すると（Ｓ５５のＹＥＳ）、隣接するブロックに対応するテキストデータが連結されて一つの暗号データ（本発明の暗号データに相当）が生成される（Ｓ５６）。このようにして生成されたテキストデータは、元の文章とは異なる理解不明な文字列となっている。
【００５４】
上記レコードにおける全ての暗号化対象（顧客名称、顧客住所、顧客メモ）のデータが暗号化されると、暗号化前のレコードと同様の関連性を各項目のデータ間に付与され、これらの各データそれぞれが関連付けられた状態でひとまとまりの１件のレコードとして取り扱われる。なお、このときに、第１暗号化対象の顧客メモの暗号データの前後に識別子としてプレフィックス（Ｐｒｅｆｉｘ）及びサフィックス（Ｓｕｆｆｉｘ）を付加し、また、第２暗号化対象の顧客名称及び顧客住所の暗号データそれぞれの前後に別の識別子としてプレフィックス及びサフィックスを付加してもよい。これにより、中継サーバ２１０は、アプリサーバ１５から暗号化されたレコードが送られてきたときに、第１暗号化対象の項目と第２暗号化対象の項目とを容易に識別することが可能となる。
【００５５】
図４に示されるステップＳ６の暗号化処理が終了すると、暗号化後の上記レコードがアップロード要求とともに中継サーバ２１０からインターネット１２を経てアプリサーバ１５に送信される（Ｓ７）。このときに送信されるレコードは、ＳＳＬ（Secure Socket Layer）方式により更に暗号化されてもよく、また、ＳＳＬによる暗号がされないままアプリサーバ１５に送信されてもよい。なお、ステップＳ１〜Ｓ７の一連の処理が本発明の第１ステップに相当する。
【００５６】
アプリサーバ１５では、暗号化後のレコードを受信すると、制御部１５１は、そのレコードをデータ記憶部１５４に格納する（本発明の第２ステップに相当）。その後、アップロード完了通知がアプリサーバ１５から中継サーバ２１０に送信される。中継サーバ２１０は、このアップロード完了通知を受信すると（Ｓ８のＹＥＳ）、そのアップロード完了通知を端末装置２３０に送信する（Ｓ９）。
【００５７】
次に、図５及び図６を用いて、クライアント管理システム２０からアプリサーバ１５に対してデータ検索の要求がされたときに中継サーバ２１０で実行される処理手順の一例について詳細に説明する。なお、以下においては、アプリサーバ１５によるネットワークサービスで使用されるユーザーインターフェースの一例である検索画面３７（図１０（Ｃ）参照）が端末装置２３０のモニタ２３６に表示された状態にあるものとする。
【００５８】
利用者が端末装置２３０からアプリサーバ１５に対してデータ検索を行う場合、まず、利用者は端末装置２３０を操作することによって、検索キーワード（本発明の検索キーワードに相当）とともに検索要求を中継サーバ２１０へ送信する（図５参照）。具体的には、図１０（Ｃ）に示される検索画面３７において、顧客名称、顧客住所、顧客メモのいずれかの項目の入力欄に検索キーワードが入力された後に、検査ボタン３２が押し操作されると、端末装置２３０の制御部２３１は、入力された検索キーワードとアプリサーバ１５に対する検索要求とを中継サーバ２１０へ送信する。
【００５９】
図６に示されるように、中継サーバ２１０では、端末装置２３０からの検索要求及び検索キーワードが受信されると（Ｓ３１のＹＥＳ）、制御部２１１は、上記検索要求に対応する暗号方式を情報管理サーバ２２０に要求する（Ｓ３２）。この要求時に、制御部２１１は、端末装置２３０の識別情報（例えばユーザＩＤ）や、入力された検索キーワードの文字種別情報（例えば日本文データか英文データの区別）を情報管理サーバ２２０に送信する。
【００６０】
情報管理サーバ２２０では、中継サーバ２１０からの要求を受けると、制御部２２１は、検索要求に応じた暗号指定情報を基本情報記憶部２２４から読み出す。具体的には、端末装置２３０の識別情報や検索キーワードの文字種別情報に対応する暗号指定情報が基本情報記憶部２２４内のテーブルデータから読み出される。本実施形態では、入力された検索キーワードの文字種が日本語であると仮定する。この場合、上述した第１暗号方式及び第２暗号方式を指定するための暗号指定情報が読み出され、また、これらの暗号方式に用いられる第１文字置換表及び第２文字置換表が読み出される。その後、その暗号指定情報及び文字置換表が中継サーバ２１０に送信される。
【００６１】
図６に示されるように、中継サーバ２１０では、情報管理サーバ２２０から暗号指定情報及び文字置換表が受信されると（Ｓ３３のＹＥＳ）、制御部２１１は、その暗号指定情報が示す上記第１暗号方式及び上記第２暗号方式を特定し（Ｓ３４）、その後、検索キーワードを暗号化する（Ｓ３５）。本実施形態では、顧客メモの欄に入力された検索キーワードは第１暗号方式にしたがって暗号化され、顧客名称及び顧客住所の欄に入力された検索キーワードは第２暗号方式にしたがって暗号化される。ここでの暗号化は、上記ステップＳ６で説明した暗号化と同じであり、図９に示される手順と同様であるので、ここでの説明は省略する。
【００６２】
暗号化が終わると、図６に示されるように、暗号化された検索キーワード（以下「暗号キーワード」という。本発明の暗号キーワードに相当。）が検索要求とともに中継サーバ２１０からインターネット１２を経てアプリサーバ１５に送信される（Ｓ３６）。なお、ステップＳ３１〜Ｓ３６の一連の処理が本発明の第３ステップに相当する。
【００６３】
アプリサーバ１５では、暗号キーワードを受信すると、制御部１５１は、その暗号キーワードとデータ記憶部１５４（図２参照）内のデータベースとを照合して、暗号キーワードを含む暗号データを検索する（図５参照）。そして、検索によって暗号データが存在する場合は、その暗号データを含むレコードが中継サーバ２１０へ送信される（本発明の第４ステップに相当）。
【００６４】
図６に示されるように、中継サーバ２１０では、検索結果として上記レコードが受信されると（Ｓ３７のＹＥＳ）、受信したレコードの各項目の暗号データが制御部２１１によって復号される（Ｓ３８１）。このステップＳ３８及びＳ３８１の処理が本発明の第５ステップに相当する。制御部２１１は、ステップＳ３８１の復号処理を実行する前に、レコードの各データの前後に上記識別子（プレフィックス及びサフィックス）があると判断した場合は、その識別子に応じた暗号化方式を各データごとに特定する。そして、その特定された暗号化方式の逆手順にしたがって各項目の暗号データが復号される。なお、この復号処理の具体的手法については、上記ステップＳ６の暗号化の逆手順であるため、ここでの説明は省略する。その後、復号されたオリジナルの各データを含むオリジナルのレコードが端末装置２３０に送信されて（Ｓ３８２）、端末装置２３０のモニタ２３６に表示される。
【００６５】
一方、検索結果として上記レコードが受信されず（Ｓ３７のＮＯ）、アプリサーバ１５から検索無し（ヒット無し）を意味する信号が受信されると（Ｓ３９１のＹＥＳ）、その検索無しを示す信号が端末装置２３０に送信されて（Ｓ３９２）、端末装置２３０のモニタ２３６に検索無しのメッセージ情報が表示される。
【００６６】
次ぎに、図７及び図８を用いて、クライアント管理システム２０からアプリサーバ１５に対して顧客リスト（図１０（Ａ）参照）のソート（並べ替え）要求がされたときに中継サーバ２１０で実行される処理手順の一例について詳細に説明する。なお、以下においては、図１０（Ａ）に示されるように顧客番号について昇順で並べられた顧客データが端末装置２３０のモニタ２３６にユーザーインターフェースとして表示された状態にあるものとする。
【００６７】
利用者が端末装置２３０からアプリサーバ１５に対してソート要求を出す場合、まず、利用者は端末装置２３０を操作することによって、ソート対象の項目（ソート項目）とともにソート要求を中継サーバ２１０へ送信する（図７参照）。具体的には、図１０（Ａ）に示される顧客リスト画面３８において、顧客名称、顧客住所、登録日の各項目欄に設けられた上向き三角形状のキー３３（３３Ａ，３３Ｂ，３３Ｃ）のいずれか、又は、顧客名称、顧客住所、登録日の各項目欄に設けられた下向き三角形状のキー３４（３４Ａ，３４Ｂ，３４Ｃ）のいずれかが押し操作されると、端末装置２３０の制御部２３１は、押し操作された項目を示す項目情報とアプリサーバ１５に対するソート要求とを中継サーバ２１０へ送信する（図７参照）。なお、キー３３が押されると、その項目を昇順でソートする要求が送信され、キー３４が押されると、その項目を降順でソートする要求が送信される。
【００６８】
図８に示されるように、中継サーバ２１０では、端末装置２３０からのソート要求及び上記項目情報が受信されると（Ｓ６２のＹＥＳ）、制御部２１１は、受信した上記ソート要求及び項目情報をただちにアプリサーバ１５へ転送する（Ｓ６２）。
【００６９】
アプリサーバ１５では、中継サーバ２１０からの要求を受けると、制御部１５１は、項目情報によって指定された項目（以下「指定項目」という。）について降順又は昇順でソートをし、その後、ソートされた順番及び上記指定項目を示す情報とともに、データ記憶部１５４内で検索対象となった全てのレコードが中継サーバ２１０へ送信される（図７参照）。
【００７０】
図８に示されるように、中継サーバ２１０では、ソート結果として全てのレコードが受信されると（Ｓ６３のＹＥＳ）、受信したレコードに含まれる暗号データが制御部２１１によって復号される（Ｓ６４）。なお、この復号の具体的手法については、上記ステップＳ６の暗号化の逆手順であるため、ここでの説明は省略する。その後、復号されたオリジナルのレコードとソート順序を示す情報とが端末装置２３０に送信される（Ｓ６５）。そして、端末装置２３０では、ソート結果として上記ソート順にソートされた顧客リストが作成されて、その顧客リストがモニタ２３６に表示される（図７参照）。
【００７１】
上述したように、本実施形態では、クライアント管理システム２０からアプリサーバ１５に新たな顧客データを保存（アップデート）する場合に、クライアント管理システム２０の中継サーバ２１０で顧客データが暗号化され、その暗号データがアプリサーバ１５に送信されて保存される。このため、仮にアプリサーバ１５内のデータが漏洩しても、そのデータは暗号化されたものであるため、秘匿性の高い顧客データの内容が外部に知られることはない。また、データの暗号化及び復号が中継サーバ２１０で行われるため、ＳａａＳ事業者の管理下にあるアプリサーバ１５のファームウェアやシステムはそのままで、本発明をデータ管理システム１０で実現することができる。つまり、クライアント管理システム２０の管理者（アプリサーバ１５の利用者）は、アプリサーバ１５を管理するＡＳＰ事業者にアプリサーバ１５のファームウェアなどを変更してもらわなくても、本発明によって、データセキュリティ性の高いデータサーバシステムを容易に構築することができる。
【００７２】
また、アプリサーバ１５内で暗号データが復号されることなく検索処理が行われ、その検索結果が中継サーバ２１０で復号されるため、アプリサーバ１５からのデータの漏洩を防止しつつ、暗号化されたデータを検索対象とする検索機能を実現することが可能となる。
【００７３】
また、ソート対象の項目のデータは第２暗号方式によって暗号化されるので、アプリサーバ１５内のデータベースは暗号化された状態でソート可能である。これにより、アプリサーバ１５内で暗号データが復号されることなくソート処理が行われ、そのソート結果が中継サーバ２１０で復号されるため、アプリサーバ１５からのデータの漏洩を防止しつつ、暗号化されたデータをソート対象とするソート機能を実現することが可能となる。
【００７４】
なお、上述の実施形態では、クライアント管理システム２０がＬＡＮ２１を介して中継サーバ２１０、情報管理サーバ２２０及び端末装置２３０を接続する構成となっているが、このような接続構成に限られない。例えば、端末装置２３０がインターネット１２に接続されて、インターネット２１を通じて中継サーバ２１０にアクセスするような接続構成であってもよい。また、端末装置２３０だけでなく、情報管理サーバ２２０もインターネット１２を通じて中継サーバ２１０と通信可能な接続構成であってもよい。このような接続構成についても本発明は適用可能である。
【００７５】
また、上述の実施形態では、ステップＳ４１において、暗号化対象の文字データを２−ｇｒａｍ方式に基づいて連続する２個の文字（Ｘ，Ｙ）で構成されるブロックに分割することとしたが、３−ｇｒａｍ方式に基づいて３個の文字に分割してもよく、４−ｇｒａｍ方式に基づいて４個の文字に分割してもよい。
【００７６】
１０：データ管理システム
１２：インターネット
１５：アプリケーションサーバ
２０：クライアント管理システム
２１：ＬＡＮ
３６：入力画面
３７：検索画面
３８：顧客リスト画面
２１０：中継サーバ
２２０：情報管理サーバ
２３０：端末装置
【図１】
0005307199.tif 000003
【図２】
0005307199.tif 000004
【図３】
0005307199.tif 000005
【図４】
0005307199.tif 000006
【図５】
0005307199.tif 000007
【図６】
0005307199.tif 000008
【図７】
0005307199.tif 000009
【図８】
0005307199.tif 000010
【図９】
0005307199.tif 000011
【図１０】
0005307199.tif 000012