(57)【要約】【課題】データをサーバに保持させる際に、データがサーバ側に漏洩する可能性を低くし、データをサーバから受信して表示するときのレイアウトの崩れを抑止する。【解決手段】クライアントとサーバとからなるコンピュータシステムのクライアント側のフォント適用装置１２において、難読化フォント記憶部３３が、文字コードに基づいてサーバが特定する文字とは異なりその文字と同じ幅を持つ文字をその文字コードにマッピングした難読化フォントを記憶し、難読化文書受信部５１が、文字コードをその文字コードに基づいてサーバが特定する文字に難読化フォントにおいてマッピングされた文字コードに変換することで文書データを難読化した難読化文書をサーバから受信し、可読化処理部５２が、難読化文書に含まれる文字コードに難読化フォントにおいてマッピングされた文字を特定し、表示制御部５３が、文字の表示を制御する。【選択図】図６
2014160353.tif 000002
【特許請求の範囲】
【請求項１】
データに含まれる文字コードを変換することにより当該データを難読化することで得られた難読化データをサーバに保持させる装置であって、
文字コードに基づいて前記サーバが特定する第１のグリフとは異なるグリフであって当該第１のグリフと同じ幅を持つグリフである第２のグリフを、当該文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、
前記データに含まれる文字コードを、当該文字コードに基づいて前記サーバが特定するグリフが前記マッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、当該データを難読化することで得られた前記難読化データを、当該サーバから受信する受信部と、
前記受信部により受信した前記難読化データに含まれる文字コードに前記マッピング情報において第２のグリフとしてマッピングされたグリフを特定する特定部と、
前記特定部により特定されたグリフを表示する表示部と
を含む、装置。
【請求項２】
ユーザの操作に応じて前記データを取得する取得部と、
前記取得部により取得された前記データに含まれる文字コードを、当該文字コードに基づいて前記サーバが特定するグリフが前記マッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、当該データを難読化する難読化部と、
前記難読化部により前記データを難読化することで得られた前記難読化データを前記サーバに送信する送信部と
を含む、請求項１の装置。
【請求項３】
グリフの幅に対して、当該幅を持つ複数のグリフを定義した定義情報を記憶する定義情報記憶部と、
文字コードに基づいて前記サーバが特定する第１のグリフに代えて、前記定義情報において当該第１のグリフの幅に対して定義された前記複数のグリフのうちの当該第１のグリフ以外のグリフを、第２のグリフとして当該文字コードにマッピングすることにより、前記マッピング情報を生成する生成部と
を含む、請求項１又は請求項２の装置。
【請求項４】
前記生成部は、前記データの属性に応じた選択方法を用いて、前記定義情報において前記第１のグリフの幅に対して定義された前記複数のグリフから、当該第１のグリフ以外のグリフを選択する、請求項３の装置。
【請求項５】
前記生成部は、前記データの属性に応じた文字の種別ごとに、前記マッピング情報を生成する、請求項３の装置。
【請求項６】
データに含まれる文字コードを変換することにより当該データを難読化することで得られた難読化データをサーバに保持させる装置であって、
文字コードに基づいて前記サーバが特定する第１のグリフとは異なるグリフであって当該第１のグリフと同じ幅を持つグリフである第２のグリフを、当該文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、
ユーザの操作に応じて前記データを取得する取得部と、
前記取得部により取得された前記データに含まれる文字コードを、当該文字コードに基づいて前記サーバが特定するグリフが前記マッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、当該データを難読化する難読化部と、
前記難読化部により前記データを難読化することで得られた前記難読化データを前記サーバに送信する送信部と
を含む、装置。
【請求項７】
データに含まれる文字コードを変換することにより当該データを難読化することで得られた難読化データをサーバに保持させる方法であって、
文字コードに基づいて前記サーバが特定する第１のグリフとは異なるグリフであって当該第１のグリフと同じ幅を持つグリフである第２のグリフを、当該文字コードにマッピングしたマッピング情報を記憶するステップと、
前記データに含まれる文字コードを、当該文字コードに基づいて前記サーバが特定するグリフが前記マッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、当該データを難読化することで得られた前記難読化データを、当該サーバから受信するステップと、
受信した前記難読化データに含まれる文字コードに前記マッピング情報において第２のグリフとしてマッピングされたグリフを特定するステップと、
特定されたグリフを表示するステップと
を含む、方法。
【請求項８】
データに含まれる文字コードを変換することにより当該データを難読化することで得られた難読化データをサーバに保持させる装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
文字コードに基づいて前記サーバが特定する第１のグリフとは異なるグリフであって当該第１のグリフと同じ幅を持つグリフである第２のグリフを、当該文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、
前記データに含まれる文字コードを、当該文字コードに基づいて前記サーバが特定するグリフが前記マッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、当該データを難読化することで得られた前記難読化データを、当該サーバから受信する受信部と、
前記受信部により受信した前記難読化データに含まれる文字コードに前記マッピング情報において第２のグリフとしてマッピングされたグリフを特定する特定部と、
前記特定部により特定されたグリフを表示する表示部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、難読化データをサーバに保持させる装置及び方法に関する。特に、本発明は、データに含まれる文字コードを変換することによりデータを難読化することで得られた難読化データをサーバに保持させる装置及び方法に関する。
【背景技術】
【０００２】
近年、サーバのストレージを貸し出し、インターネット経由でユーザのデータを預かって保持するオンラインストレージサービスが広く使用されるようになってきている。
このようなオンラインストレージサービスでは、サービスの提供元は信頼できることが前提であり、サーバにデータをそのまま保持させても問題ないというのが一般的な考え方であった。従って、これまで、サーバ側を信頼して、サーバに保持させたデータを守るための技術が主として提案されてきた（例えば、非特許文献１参照）。非特許文献１は、ウェプページ上に掲示された多様なコンテンツのテキストを保持し、暗号化されたテキストを指定したＵＲＬ上のみで解読可能なテキストで提供し、それ以外のＵＲＬでは暗号化されたテキストで提供され判読不可能にする技術を開示する。
【０００３】
一方で、SaaS（Software as a Service）型のアプリケーションを用いたオンラインストレージサービスでは、サービスの提供元が信頼できないことも可能性としてはあり得る。このような場合、サーバに保持させたデータが企業秘密や個人情報等の機密情報を含んでいると、それらがサービスの提供元へ漏洩してしまうという問題が生じる。従って、サーバに保持させた機密情報がサービスの提供元に漏洩しないようにする技術も提案されている（例えば、特許文献１〜３参照）。
【０００４】
特許文献１は、データソースからの複数のレコードの一または複数のフィールドに生じる値を読み込むこと、キー値を保存すること、複数の前記レコードのそれぞれについて、レコードの所定のフィールドのオリジナル値を置き換えるための難読化された値を、キー値を用いて、難読化された値がキー値に依存し且つオリジナル値に決定論的に関連するように、生成すること、および、データストレージシステム内の難読化された値を含むレコードを含む難読化された値のコレクションを保存することを含む、データを難読化する方法を開示する。
特許文献２は、データ変換のルールが記述されている変換テーブルを記憶する記憶装置と、入力装置から入力された入力データを受け付け、入力データを変換テーブルを用いて変換するデータ変換部とを備え、変換後のデータをアプリケーションサーバへ送信することにより、変換後のデータをアプリケーションサーバにおいて管理させるセキュリティ装置を開示する。
特許文献３は、プログラムメモリに、変換処理手段としての複数のプログラムと、変換文字リストとしての複数のテーブルとが格納されている。文字列変換装置では、指定されたマスク範囲に含まれる文字が各テーブルに含まれる文字と一致するか否かを判定し、一致する場合には、予め定義された変換規則に従って、当該テーブル内の他の文字に変換する。また、復元処理として、変換された各文字列を変換規則に従って変換前の文字列に復元する文字列変換装置を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１２−５２９１１４号公報
【特許文献２】特開２００７−２７２５３９号公報
【特許文献３】特開２００７−１０２５４０号公報
【非特許文献１】RIXCO FONTECT for Web 1.0、［online］、［平成２５年１月２９日検索］、インターネット＜URL：http://ontoff.com/rixco.jp/fontect.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、データに含まれる文字を変換してサーバに保持させる技術は既に存在した。
しかしながら、このような文字の変換を単純に行うと、文字を直接入力するようなアプリケーションでは、変換前の文字列と変換後の文字列とで長さが異なること等によりレイアウトが崩れて、使用上の不都合が生じるという問題があった。ここで、ユーザのデータを預かってサーバに保持するサービスは第三者が提供しているので、サーバ側の処理を変更することはできない。
尚、非特許文献１の技術及び特許文献１〜３の技術の何れもこうした問題に対する解決手段を提示するものではない。
【０００７】
本発明の目的は、データをサーバに保持させる際に、データがサーバ側に漏洩する可能性を低くし、データをサーバから受信して表示するときのレイアウトの崩れを抑止することにある。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、データに含まれる文字コードを変換することによりデータを難読化することで得られた難読化データをサーバに保持させる装置であって、文字コードに基づいてサーバが特定する第１のグリフとは異なるグリフであって第１のグリフと同じ幅を持つグリフである第２のグリフを、文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、データに含まれる文字コードを、文字コードに基づいてサーバが特定するグリフがマッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、データを難読化することで得られた難読化データを、サーバから受信する受信部と、受信部により受信した難読化データに含まれる文字コードにマッピング情報において第２のグリフとしてマッピングされたグリフを特定する特定部と、特定部により特定されたグリフを表示する表示部とを含む、装置を提供する。
【０００９】
ここで、この装置は、ユーザの操作に応じてデータを取得する取得部と、取得部により取得されたデータに含まれる文字コードを、文字コードに基づいてサーバが特定するグリフがマッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、データを難読化する難読化部と、難読化部によりデータを難読化することで得られた難読化データをサーバに送信する送信部とを含む、ものであってよい。
また、この装置は、グリフの幅に対して、幅を持つ複数のグリフを定義した定義情報を記憶する定義情報記憶部と、文字コードに基づいてサーバが特定する第１のグリフに代えて、定義情報において第１のグリフの幅に対して定義された複数のグリフのうちの第１のグリフ以外のグリフを、第２のグリフとして文字コードにマッピングすることにより、マッピング情報を生成する生成部とを含む、ものであってもよい。
更に、生成部は、データの属性に応じた選択方法を用いて、定義情報において第１のグリフの幅に対して定義された複数のグリフから、第１のグリフ以外のグリフを選択する、ものであってよい。
更にまた、生成部は、データの属性に応じた文字の種別ごとに、マッピング情報を生成する、ものであってもよい。
【００１０】
また、本発明は、データに含まれる文字コードを変換することによりデータを難読化することで得られた難読化データをサーバに保持させる装置であって、文字コードに基づいてサーバが特定する第１のグリフとは異なるグリフであって第１のグリフと同じ幅を持つグリフである第２のグリフを、文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、ユーザの操作に応じてデータを取得する取得部と、取得部により取得されたデータに含まれる文字コードを、文字コードに基づいてサーバが特定するグリフがマッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、データを難読化する難読化部と、難読化部によりデータを難読化することで得られた難読化データをサーバに送信する送信部とを含む、装置も提供する。
【００１１】
更に、本発明は、データに含まれる文字コードを変換することによりデータを難読化することで得られた難読化データをサーバに保持させる方法であって、文字コードに基づいてサーバが特定する第１のグリフとは異なるグリフであって第１のグリフと同じ幅を持つグリフである第２のグリフを、文字コードにマッピングしたマッピング情報を記憶するステップと、データに含まれる文字コードを、文字コードに基づいてサーバが特定するグリフがマッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、データを難読化することで得られた難読化データを、サーバから受信するステップと、受信した難読化データに含まれる文字コードにマッピング情報において第２のグリフとしてマッピングされたグリフを特定するステップと、特定されたグリフを表示するステップとを含む、方法も提供する。
【００１２】
更にまた、本発明は、データに含まれる文字コードを変換することによりデータを難読化することで得られた難読化データをサーバに保持させる装置として、コンピュータを機能させるプログラムであって、コンピュータを、文字コードに基づいてサーバが特定する第１のグリフとは異なるグリフであって第１のグリフと同じ幅を持つグリフである第２のグリフを、文字コードにマッピングしたマッピング情報を記憶するマッピング情報記憶部と、データに含まれる文字コードを、文字コードに基づいてサーバが特定するグリフがマッピング情報において第２のグリフとしてマッピングされた文字コードに変換することにより、データを難読化することで得られた難読化データを、サーバから受信する受信部と、受信部により受信した難読化データに含まれる文字コードにマッピング情報において第２のグリフとしてマッピングされたグリフを特定する特定部と、特定部により特定されたグリフを表示する表示部として機能させる、プログラムも提供する。
【発明の効果】
【００１３】
本発明によれば、データをサーバに保持させる際に、データがサーバ側に漏洩する可能性を低くし、データをサーバから受信して表示するときのレイアウトの崩れを抑止することができる。
【図面の簡単な説明】
【００１４】
【図１】表示幅ごとにその表示幅を持つ文字を定義した情報を示した図である。
【図２】通常フォントに含まれる文字コードとグリフとのマッピングの一例及び表示幅を維持する難読化フォントに含まれる文字コードとグリフとのマッピングの一例を示した図である。
【図３】表示幅を維持する難読化フォントを用いて難読化を行ったときの効果を具体的に示した図である。
【図４】本発明の実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。
【図５】本発明の実施の形態を適用可能なコンピュータのハードウェア構成例を示した図である。
【図６】本発明の実施の形態におけるフォント適用装置の機能構成例を示したブロック図である。
【図７】本発明の実施の形態におけるフォント適用装置の文書データを難読化する際の動作例を示したフローチャートである。
【図８】本発明の実施の形態におけるフォント適用装置の文書データを可読化する際の動作例を示したフローチャートである。
【図９】第１の変形例で用いられる表示幅ごとにその表示幅を持つ文字を定義した情報を示した図である。
【図１０】第２の変形例で用いられる表示幅ごとにその表示幅を持つ文字を定義した情報を示した図である。
【図１１】単純に難読化を行ったときの問題を具体的に示した図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
本実施の形態では、データをそのままサーバ側に送ると情報が漏洩する虞があることを考慮し、クライアント側で難読化フォントを用いて難読化したデータ（以下、「難読化データ」という）をサーバ側に送るようにする。ここで、難読化フォントとは、文字コードとグリフとのマッピングが通常とは異なるフォントであり、この難読化フォントを用いて表示上の文字を置き換えることによりデータを難読化する。つまり、難読化フォントでは文字コードとグリフとのマッピングが変えてあるので、サーバ側に送られたデータはそのマッピングを知らないと無意味な文字列に見える。
【００１６】
しかしながら、このような難読化を単純に行うと、アプリケーションの使用上、問題が生ずる。
ウェブアプリケーションが実行される際、ウェブブラウザは、サーバ側からＪａｖａＳｃｒｉｐｔ（登録商標）等のクライアント側で動作するコードを受け取って処理する。画面上のレイアウトに関する処理はこのコードに書かれている。
難読化フォントを使用して表示上の文字を置き換えた場合、コードは文字の違いを認識できないため、画面上のレイアウトに関する正常な処理が行われなくなる。
【００１７】
図１１は、このように単純に難読化を行ったときの問題を具体的に示した図である。
（ａ）はウェブアプリケーションのコードが想定している画面を示し、（ｂ）はユーザが見ている画面を示す。
（ｂ）では、文字の幅が（ａ）の対応する文字の幅と異なる場合があるため、レイアウトが崩れてしまっている。
具体的には、例えば最も長い行の右端が、（ａ）では破線２５１の位置に、（ｂ）では破線１５１の位置にあり、これらがずれていることからも分かるように、全体的に行の長さが異なっている。
また、（ａ）ではカーソル２５２で示されるように文字と文字の間にカーソルが表示されているが、（ｂ）ではカーソル１５２で示されるように文字の中にカーソルが表示されている。
更に、（ａ）ではバックスペースキーを押すと消える文字の直後にカーソルが表示されているが、（ｂ）ではこの文字とカーソルの表示位置との関係が崩れているので、予期しない動作が行われることがある。例えば、（ｂ）において、“caash”を“cash”に訂正しようとしてバックスペースキーを押すと、“free”の“e”が消えてしまう。
【００１８】
そこで、本実施の形態では、文字コードとグリフとのマッピングが通常とは異なるがグリフの表示幅を維持するような難読化フォントを用意し、このような難読化フォントを用いて難読化した難読化データをサーバに送るようにした。これにより、クライアント側での表示レイアウトの崩れを防ぎつつ、サーバに保存させるデータを解読困難にした。
【００１９】
具体的には、表示幅を維持して難読化を行うようなマッピングを作成する。
まず、このようなマッピングの作成方法について説明する。
図１は、表示幅ごとにその表示幅を持つ文字を定義した表である。この表にはＡｒｉａｌフォントの３０ｐｔにおける表示幅と文字との対応が示されている。
本実施の形態では、このような定義に基づいて、通常はある文字を表す文字コードにその文字と同じ表示幅を持つ文字をマッピングする。
例えば、表示幅１９ｐｔに対しては文字“A”、“T”、“V”、“X”、“Y”が定義されている。そこで、通常は文字“A”を表す文字コードに文字“Y”を、通常は文字“T”を表す文字コードに文字“A”を、通常は文字“V”を表す文字コードに文字“T”を、通常は文字“X”を表す文字コードに文字“V”を、通常は文字“Y”を表す文字コードに文字“X”を、それぞれマッピングする。
また、表示幅２５ｐｔに対しては文字“M”、“m”が定義されている。そこで、通常は文字“M”を表す文字コードに文字“m”を、通常は文字“m”を表す文字コードに文字“M”を、それぞれマッピングする。
更に、他の表示幅についても、同じ表示幅の文字同士で、通常はある文字を表す文字コードに別の文字をマッピングする。
【００２０】
図２は、文字コードとグリフとのマッピングを例示した図である。但し、文字コード“41”〜“5A”に対応する部分のみを示す。このうち、（ａ）は、通常フォントにおけるマッピングの一例である。ここでは、通常フォントにおけるマッピングとして、一般に入手可能なマッピングを採用したが、一般に入手可能とは言えないサーバに特有のマッピングを採用してもよい。また、（ｂ）は、表示幅を維持する難読化フォントにおけるマッピングの一例であり、（ａ）のマッピングで文字コードが表す文字を同じ表示幅の文字同士で変更することにより作成されたものである。
例えば、太い実線で囲んで示すように、（ａ）では、文字コード“41”が文字“A”を、文字コード“54”が文字“T”を、文字コード“56”が文字“V”を、文字コード“58”が文字“X”を、文字コード“59”が文字“Y”を、それぞれ表しているが、（ｂ）では、文字コード“41”が文字“Y”を、文字コード“54”が文字“A”を、文字コード“56”が文字“T”を、文字コード“58”が文字“V”を、文字コード“59”が文字“X”を、それぞれ表すようにしている。
また、太い破線で示すように、（ａ）では、文字コード“4D”が文字“M”を表しているが、（ｂ）では、文字コード“4D”が文字“m”を表すようにしている。この場合は、図示を省略しているが、文字コード“6D”が、（ａ）では文字“m”を表していたのを、（ｂ）では文字“M”を表すように変更するものとする。
更に、他の表示幅についても、同じ表示幅の文字同士で、文字コードが表す文字を変更する。
【００２１】
図３は、表示幅を維持する難読化フォントを用いて難読化を行ったときの効果を具体的に示した図である。
（ａ）はウェブアプリケーションのコードが想定している画面を示し、（ｂ）はユーザが見ている画面を示す。
（ａ）と（ｂ）とで文字の幅が保たれているので、レイアウト崩れを防ぐことができる。
具体的には、例えば最も長い行の右端が、（ａ）では破線２０１の位置に、（ｂ）では破線１０１の位置にあり、これらが同じ位置であることからも分かるように、全体的に行の長さが等しくなっている。
また、（ａ）ではカーソル２０２で示されるように、（ｂ）ではカーソル１０２で示されるように、何れも文字と文字の間にカーソルが表示されている。
更に、（ａ），（ｂ）の何れにおいても、バックスペースキーを押すと消える文字の直後にカーソルが表示されている。従って、例えば、（ｂ）において、“caash”を“cash”に訂正しようとしてバックスペースキーを押すと、正しい動作が行われ、“caash”の“a”が消える。
【００２２】
以下、このような概略動作を行う実施の形態について詳細に説明する。尚、本実施の形態では、文書作成ソフトウェア、表計算ソフトウェア、プレゼンテーションソフトウェア等の業務ソフトウェアで作成された如何なるデータを難読化の対象としてもよいが、以下では、特に文書作成ソフトウェアで作成された文書データを難読化の対象にするものとして説明する。
図４は、本実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。
図示するように、このコンピュータシステムは、クライアント１０とサーバ２０とがインターネット等のネットワーク８０を介して接続されることにより構成されている。
【００２３】
クライアント１０は、ユーザが使用するコンピュータであり、ユーザが文書データを閲覧するために用いるウェブブラウザがインストールされている。より詳しくは、クライアント１０は、情報入力装置１１と、フォント適用装置１２と、難読化フォント１３と、画面描画装置１４とを含む。
情報入力装置１１は、ユーザがクライアント１０に情報を入力するために用いる装置であり、例えば、キーボードである。
フォント適用装置１２は、情報入力装置１１から入力された文書データに難読化フォント１３を適用して難読化した文書データ（以下、「難読化文書」という）を生成したり、サーバ２０から送られた難読化文書に難読化フォント１３を適用して可読化を行ったりする装置であり、ウェブブラウザのアドオン又はプラグイン、カスタムスタイルシート等によって実現される。
難読化フォント１３は、情報入力装置１１から入力された文書データを難読化したり、サーバ２０から送られた難読化文書を可読化したりするためにフォント適用装置１２で適用されるフォントであり、本実施の形態では、特に図２（ｂ）に示したような表示幅を維持するためのマッピングを含む。また、難読化フォント１３は、Ａｒｉａｌフォントの１０ｐｔであれば“ObfuscatedArial10.ttf”、Ａｒｉａｌフォントの１２ｐｔであれば“ObfuscatedArial12.ttf”というように、フォントの種類及びサイズごとに用意される。
画面描画装置１４は、フォント適用装置１２から出力された情報を画面に描画する装置であり、例えば、液晶ディスプレイである。
【００２４】
サーバ２０は、文書データを保持させるためのコンピュータであり、ウェブブラウザからの要求に応じてウェブアプリケーションを実行してウェブブラウザに実行結果を返すウェブサーバがインストールされている。より詳しくは、サーバ２０は、ＨＴＭＬ（HyperText Markup Language）ファイル２１を含む。ＨＴＭＬファイル２１は、ユーザがウェブアプリケーションにログインして編集可能な文書を開くと、ウェブブラウザ上のレイアウトに関する処理を行うＪａｖａＳｃｒｉｐｔ（登録商標）と、ユーザが開いた文書のデータとが含められ、ウェブサーバからウェブブラウザへ送信される。
【００２５】
次に、このコンピュータシステムを構成するコンピュータのうち、クライアント１０について更に詳細に説明する。
図５は、クライアント１０のハードウェア構成例を示した図である。図示するように、クライアント１０は、演算手段であるＣＰＵ（Central Processing Unit）１０ａと、Ｍ／Ｂ（マザーボード）チップセット１０ｂを介してＣＰＵ１０ａに接続されたメインメモリ１０ｃと、同じくＭ／Ｂチップセット１０ｂを介してＣＰＵ１０ａに接続された表示機構１０ｄとを備える。また、Ｍ／Ｂチップセット１０ｂには、ブリッジ回路１０ｅを介して、ネットワークインターフェイス１０ｆと、磁気ディスク装置（ＨＤＤ）１０ｇと、音声機構１０ｈと、キーボード／マウス１０ｉと、フレキシブルディスクドライブ１０ｊとが接続されている。そして、これらの構成のうち、表示機構１０ｄが図４の画面描画装置１４に対応し、キーボード／マウス１０ｉが図４の情報入力装置１１に対応する。
【００２６】
尚、図５において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ１０ａとＭ／Ｂチップセット１０ｂの間や、Ｍ／Ｂチップセット１０ｂとメインメモリ１０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット１０ｂと表示機構１０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構１０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット１０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路１０ｅと接続する場合、ネットワークインターフェイス１０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置１０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス１０ｉ、及び、フレキシブルディスクドライブ１０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００２７】
図６は、クライアント１０の構成要素のうち、フォント適用装置１２の機能構成例を示したブロック図である。尚、図４では、難読化フォント１３をフォント適用装置１２の外に示したが、ここでは、フォント適用装置１２が難読化フォント１３を含むものとして説明する。
図示するように、フォント適用装置１２は、表示幅情報記憶部３１と、難読化フォント生成部３２と、難読化フォント記憶部３３とを備えている。また、フォント適用装置１２は、操作受付部４１と、難読化処理部４２と、難読化文書記憶部４３と、難読化文書取得部４４と、難読化文書送信部４５とを備えている。更に、フォント適用装置１２は、難読化文書受信部５１と、可読化処理部５２と、表示制御部５３とを備えている。
【００２８】
表示幅情報記憶部３１は、文字の表示幅とその表示幅を持つ文字とを対応付けた表示幅情報を記憶する。この表示幅情報は、例えば図１に示した情報に対応する。本実施の形態では、グリフの幅に対してその幅を持つ複数のグリフを定義した定義情報の一例として、表示幅情報を用いており、定義情報を記憶する定義情報記憶部の一例として、表示幅情報記憶部３１を設けている。
【００２９】
難読化フォント生成部３２は、表示幅情報記憶部３１に記憶された表示幅情報に基づいて、難読化フォントを生成する。具体的には、文字コードが通常表す文字に代えて、表示幅情報においてその文字の表示幅に対応付けられた文字の１つをその文字コードに対応付けることにより、難読化フォントを生成する。また、難読化フォント生成部３２は、情報入力装置１１から入力された文書データを難読化する際には、その文書データの属性を用いて動的に難読化フォントを生成してよく、サーバ２０から送られた難読化文書を可読化する際には、その難読化文書の属性を用いて動的に難読化フォントを生成してよい。本実施の形態では、文字コードに基づいてサーバが特定する第１のグリフに代えて、定義情報において第１のグリフの幅に対して定義された複数のグリフのうちの第１のグリフ以外のグリフである第２のグリフをその文字コードにマッピングしたマッピング情報の一例として、難読化フォントを用いており、マッピング情報を生成する生成部の一例として、難読化フォント生成部３２を設けている。
【００３０】
難読化フォント記憶部３３は、難読化フォント生成部３２が生成した難読化フォントを記憶する。この難読化フォントは、上述したように、文字の表示幅を維持するフォントであり、フォントの種類及びサイズごとに、例えば図２（ｂ）に示したようなマッピングを含むものが記憶される。本実施の形態では、マッピング情報を記憶するマッピング情報記憶部の一例として、難読化フォント記憶部３３を設けている。
【００３１】
操作受付部４１は、情報入力装置１１を用いて文書データを入力するユーザ操作又は難読化文書を読み出してサーバ２０に送信することを指示するユーザ操作を受け付ける。本実施の形態では、データを取得する取得部の一例として、操作受付部４１を設けている。
【００３２】
難読化処理部４２は、文書データを入力するユーザ操作を操作受付部４１が受け付けると、入力された文書データに含まれる各文字の文字コードを、難読化フォント記憶部３３に記憶された難読化フォントに基づいて変換することにより、難読化文書を生成する。具体的には、各文字の文字コードを、この文字コードが通常表す文字が難読化フォントにおいて対応付けられた文字コードに変換する。本実施の形態では、データを難読化する難読化部の一例として、難読化処理部４２を設けている。
難読化文書記憶部４３は、難読化処理部４２が生成した難読化文書を記憶する。
【００３３】
難読化文書取得部４４は、難読化文書を読み出してサーバ２０に送信することを指示するユーザ操作を操作受付部４１が受け付けると、難読化文書記憶部４３に記憶された難読化文書を取得する。
難読化文書送信部４５は、難読化文書取得部４４が難読化文書を取得すると、この難読化文書をサーバ２０に送信する。本実施の形態では、難読化部によりデータを難読化することで得られた難読化データの一例として、難読化文書を用いており、難読化データをサーバに送信する送信部の一例として、難読化文書送信部４５を設けている。
【００３４】
難読化文書受信部５１は、ユーザ操作に基づくクライアント１０からの要求に応じてサーバ２０から送られた難読化文書を受信する。本実施の形態では、難読化データをサーバから受信する受信部の一例として、難読化文書受信部５１を設けている。
【００３５】
可読化処理部５２は、難読化文書受信部５１が受信した難読化文書に含まれる各文字の文字コードが表す文字を、難読化フォント記憶部３３に記憶された難読化フォントに基づいて特定する。具体的には、各文字の文字コードが表す文字を、この文字コードに難読化フォントにおいて対応付けられた文字とする。本実施の形態では、難読化データに含まれる文字コードにマッピング情報においてマッピングされたグリフを特定する特定部の一例として、可読化処理部５２を設けている。
【００３６】
表示制御部５３は、可読化処理部５２が特定した文字が画面描画装置１４に表示されるように制御する。本実施の形態では、グリフを表示する表示部の一例として、表示制御部５３を設けている。
【００３７】
尚、これらの機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、ＣＰＵ１０ａ（図５参照）が、難読化フォント生成部３２、操作受付部４１、難読化処理部４２、難読化文書取得部４４、難読化文書送信部４５、難読化文書受信部５１、可読化処理部５２、表示制御部５３を実現するプログラムを例えば磁気ディスク装置１０ｇ（図５参照）からメインメモリ１０ｃ（図５参照）に読み込んで実行することにより、これらの機能部は実現される。また、表示幅情報記憶部３１、難読化フォント記憶部３３、難読化文書記憶部４３は、例えば磁気ディスク装置１０ｇ（図５参照）により実現される。
【００３８】
次いで、図６に示したフォント適用装置１２の動作について詳細に説明する。
図７は、情報入力装置１１から入力された文書データにフォント適用装置１２が難読化フォントを適用して難読化文書を生成する際の動作例を示したフローチャートである。
図示するように、フォント適用装置１２では、まず、操作受付部４１が、情報入力装置１１から文書データ及びその属性情報を入力するユーザ操作に応じて、入力された文書データ及び属性情報を取得する（ステップ４０１）。ここで、属性情報は、文書データの範囲ごとにその範囲を示す情報とその範囲で使用されているフォントの種類及びサイズを示す情報とからなるフォント情報と、難読化フォントを生成する際に用いられる付随情報とを含む。このうち、付随情報とは、文書データの名称（文書名）、文書データの作成日時等である。これにより、文書データ及び属性情報（フォント情報及び付随情報）は、操作受付部４１から難読化フォント生成部３２へ伝えられ、文書データ及び属性情報（フォント情報のみ）は、操作受付部４１から難読化処理部４２へ伝えられる。
【００３９】
次に、難読化フォント生成部３２が、操作受付部４１から伝えられたフォント情報に含まれるフォントの種類及びサイズのうち、１つの範囲で使用されているフォントの種類及びサイズに着目し、このフォントの種類及びサイズに対応する表示幅情報を表示幅情報記憶部３１から読み出す（ステップ４０２）。
そして、表示幅情報に含まれる表示幅のうちの１つの表示幅に着目し（ステップ４０３）、この表示幅に対して定義された複数の文字において、各文字をどの文字に変換するかを決定する（ステップ４０４）。
【００４０】
その際、各文字をどの文字に変換するかは、如何なる方法で決定してもよい。即ち、各文字の変換後の文字を、同じ表示幅の複数の文字から、如何なる選択方法を用いて選択してもよい。例えば、操作受付部４１から伝えられた付随情報に応じた選択方法を用いて選択することも可能である。
ここでは、各文字を右に何文字分ずらすかを決定し、各文字を右にこの決定した文字分ずらした文字に変換する（一番右の文字を右に１文字分ずらした文字は一番左の文字とする）ことを考える。この場合、各文字を右に何文字ずらすかを、操作受付部４１から伝えられた付随情報を用いて決定する。付随情報としては文書名を用いるものとする。文書名の長さをＬ、文字幅に対して定義されている文字の数をＮ（Ｎ≠１）とすると、右にずらす文字数Ｓは、例えば、「Ｓ＝Ｌｍｏｄ（Ｎ−１）＋１」で求めるとよい。このような式で求めれば、右にずらす文字数Ｓは、０になることがなく、１からＮ−１までの何れかの値をとることになるので、各文字は、１つの文字しか定義されていない表示幅を持つ文字を除き、必ず別の文字に置き換えられることになる。また、右にずらす文字数Ｓは、文書データの属性に基づいて決められるので、文書データをサーバ２０に保持させている間、クライアント１０側に記憶しておく必要もない。例えば、図１の表示幅１９ｐｔに対しては５つの文字が定義されているのでＮ＝５である。このとき、文書名が８文字、つまりＬ＝８であるとすると、Ｓ＝１となり、文字“A”が文字“T”に、文字“T”が文字“V”に、文字“V”が文字“X”に、文字“X”が文字“Y”に、文字“Y”が文字“A”に、それぞれ変換されることになる。
また、付随情報として文書データの作成日時を用いるものとすると、ある時刻を起点として作成日時を変換したシリアル値をＬとして同様の式により右にずらす文字数Ｓを求めればよいし、付随情報としてその他の情報を用いた場合であっても同様の考え方により右にずらす文字数Ｓを求めればよい。
【００４１】
次いで、難読化フォント生成部３２は、ステップ４０４での決定に基づいて文字コードと文字とのマッピングを作成し、難読化フォントに含める（ステップ４０５）。具体的には、ステップ４０４で第１の文字を第２の文字に変換することが決定されたとすると、第２の文字に通常フォントにおいて対応付けられた文字コードと、第１の文字とのマッピングを作成し、難読化フォントに含める。例えば、図１の表示幅１９ｐｔについては、文字“A”が文字“Ｔ”に、文字“T”が文字“V”に、文字“V”が文字“X”に、文字“X”が文字“Y”に、文字“Y”が文字“A”に、それぞれ変換されることが決定された。従って、文字“T”に通常フォントにおいて対応付けられた文字コード“54”と文字“A”とのマッピング、文字“V”に通常フォントにおいて対応付けられた文字コード“56”と文字“T”とのマッピング、文字“X”に通常フォントにおいて対応付けられた文字コード“58”と文字“V”とのマッピング、文字“Y”に通常フォントにおいて対応付けられた文字コード“59”と文字“X”とのマッピング、及び、文字“A”に通常フォントにおいて対応付けられた文字コード“41”と文字“Y”とのマッピングが作成される。
【００４２】
その後、難読化フォント生成部３２は、表示幅情報に含まれる表示幅の中にまだ着目していない表示幅が存在するかどうかを判定する（ステップ４０６）。そして、着目していない表示幅が存在すると判定されれば、ステップ４０３へ戻り、着目していない表示幅が存在しないと判定されれば、表示幅情報の中にまだ読み出していない表示幅情報が存在するかどうかを判定する（ステップ４０７）。その結果、読み出していない表示幅情報が存在すると判定されれば、ステップ４０２へ戻る。
【００４３】
一方、読み出していない表示幅情報が存在しないと判定されれば、難読化処理部４２は、操作受付部４１から伝えられたフォント情報に含まれる１つの範囲に着目し（ステップ４０８）、フォント情報においてこの範囲に対応付けられたフォントの種類及びサイズに対応する難読化フォントを難読化フォント記憶部３３から読み出す（ステップ４０９）。そして、操作受付部４１から伝えられた文書データのその範囲の文字を、ステップ４０９で読み出した難読化フォントを適用することにより難読化する（ステップ４１０）。例えば、操作受付部４１から伝えられた文書データのある部分が文字列“T”、“A”、“X”であるとすると、文書データのその部分は文字コード列“56”、“54”、“59”に変換されることにより難読化される。
【００４４】
その後、難読化処理部４２は、フォント情報に含まれる範囲の中にまだ着目していない範囲が存在するかどうかを判定する（ステップ４１１）。そして、着目していない範囲が存在すると判定されれば、ステップ４０８へ戻り、着目していない範囲が存在しないと判定されれば、処理を終了する。
【００４５】
このようにして文書データの全ての範囲の文字が難読化されると、文書データ全体は難読化文書として難読化文書記憶部４３に記憶される。そして、その後、難読化文書を読み出してサーバ２０に送信することを指示するユーザ操作があると、難読化文書取得部４４が、難読化文書を難読化文書記憶部４３から読み出し、難読化文書送信部４５が、この読み出した難読化文書をサーバ２０に送信する。
これにより、難読化文書はサーバ２０に保存されることになる。ここで、サーバ２０に保存されたデータは通常フォントを用いて表示されることになるので、サーバ２０にアクセスしてこの難読化文書を閲覧しようとするユーザには、意味不明な文字列しか見えない。例えば、文字列“T”、“A”、“X”が文字コード列“56”、“54”、“59”に変換された難読化文書を閲覧しても、文字列“V”、“T”、“Y”しか見えない。
【００４６】
図８は、サーバ２０から送られた文書データにフォント適用装置１２が難読化フォントを適用して解読可能に表示する際の動作例を示したフローチャートである。
まず、ユーザが、ウェブアプリケーションにログインし、サーバ２０に保持された難読化文書を開くと、ウェブサーバは、ＪａｖａＳｃｒｉｐｔ（登録商標）のコードを含むＨＴＭＬファイルに更に難読化文書を含めてウェブブラウザに送信する。
これにより、フォント適用装置１２では、ステップ５０１〜５０７の処理が行われる。このステップ５０１〜５０７の処理は、ステップ５０１の動作主体が難読化文書受信部５１である点、及び、ステップ５０２〜５０７で用いられる文書データ及び属性情報が難読化文書受信部５１から渡されたものである点以外は、図７のステップ４０１〜４０７と同じなので、ここでの説明は省略する。
【００４７】
ステップ５０１〜５０７の処理が終了すると、可読化処理部５２は、難読化文書受信部５１から伝えられたフォント情報に含まれる１つの範囲に着目し（ステップ５０８）、フォント情報においてこの範囲に対応付けられたフォントの種類及びサイズに対応する難読化フォントを難読化フォント記憶部３３から読み出す（ステップ５０９）。そして、難読化文書受信部５１から伝えられた難読化文書のその範囲の文字コードが表す文字を、ステップ５０９で読み出した難読化フォントに基づいて特定する（ステップ５１０）。例えば、難読化文書受信部５１から伝えられた難読化文書のある部分が文字コード列“56”、“54”、“59”であるとすると、文書データのその部分が表す文字列が“T”、“A”、“X”であると特定する。
【００４８】
その後、可読化処理部５２は、フォント情報に含まれる範囲の中にまだ着目していない範囲が存在するかどうかを判定する（ステップ５１１）。そして、着目していない範囲が存在すると判定されれば、ステップ５０８へ戻り、着目していない範囲が存在しないと判定されれば、処理を終了する。
【００４９】
このようにして文書データの全ての範囲の文字コードが表す文字が特定されると、特定された文字は表示制御部５３に供給される。そして、表示制御部５３が、この文字が画面描画装置１４により描画されるように制御する。
【００５０】
尚、本実施の形態では、文書データの全ての範囲の文字を難読化したが、文書データの一部の範囲の文字を難読化するようにしてもよい。その場合は、難読化文書をサーバ２０に送信した後に、難読化文書が保存された場所のＵＲＬ（Uniform Resource Locator）を受け取り、これに文書データの難読化した範囲を示す情報を対応付けて図示しないメモリに記憶しておくとよい。そして、難読化文書をサーバ２０から受信した際に、難読化文書が保存されていた場所のＵＲＬに対応付けて図示しないメモリに記憶された情報により示される範囲についてのみ難読化フォントを使って文字を表示するようにするとよい。
【００５１】
また、本実施の形態では、文書データの属性に関わらず、全ての文字を難読化したが、文書データの属性に応じて難読化する文字と難読化しない文字を切り分けるようにしてもよい。例えば、文書データの属性を文書データの種類とし、文書データの種類に応じた文字の種別ごとに、難読化するかどうかを決定するようにしてもよい。
【００５２】
以下、このような実施の形態を、本実施の形態の変形例として説明する。
第１の変形例として、文書データが日本語で書かれている日本語文書である場合を考える。
この場合、フォントによっては、平仮名、片仮名、漢字等の文字の種類ごとに、異なる幅の文字が存在することがある。
図９は、第１の変形例で用いられる表示幅ごとにその表示幅を持つ文字を定義した表である。このフォントでは、平仮名、片仮名のそれぞれが、複数の表示幅の文字を含んでいる（漢字については全ての文字の表示幅が同じとして図示を省略している）。
そこで、例えば、平仮名は別の平仮名に、片仮名は別の片仮名に、漢字は別の漢字に置き換えることにより、より元の見た目を保った難読化が可能になる。
【００５３】
第２の変形例として、数字が重要な意味を持つ文書（財務諸表等）を考える。
この場合は、表示幅が同じ数字同士で置き換えて難読化することで、難読化されているのかさえ一見して分からないようにすることができる。
図１０は、第２の変形例で用いられる表示幅ごとにその表示幅を持つ文字を定義した表である。
この定義を用いれば、例えば、「Ｘ社のGAAP EPSの2012年の予想は$14.29+である。」という文章は、「Ｘ社のGAAP EPSの3813年の予想は$16.32+である。」のように難読化される。
【００５４】
以上述べたように、本実施の形態では、文字コードとグリフとのマッピングが通常とは異なるがグリフの表示幅を維持するような難読化フォントを用意し、このような難読化フォントを用いて難読化した難読化データをサーバに保持させるようにした。これにより、データがサーバ側に漏洩する可能性を低くし、データをサーバから受信して表示するときのレイアウトの崩れを抑止することができるようになった。
【００５５】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００５６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００５７】
１０…クライアント、１１…情報入力装置、１２…フォント適用装置、１３…難読化フォント、１４…画面描画装置、２０…サーバ、２１…ＨＴＭＬファイル、３１…表示幅情報記憶部、３２…難読化フォント生成部、３３…難読化フォント記憶部、４１…操作受付部、４２…難読化処理部、４３…難読化文書記憶部、４４…難読化文書取得部、４５…難読化文書送信部、５１…難読化文書受信部、５２…可読化処理部、５３…表示制御部
【図１】
2014160353.tif 000003
【図２】
2014160353.tif 000004
【図３】
2014160353.tif 000005
【図４】
2014160353.tif 000006
【図５】
2014160353.tif 000007
【図６】
2014160353.tif 000008
【図７】
2014160353.tif 000009
【図８】
2014160353.tif 000010
【図９】
2014160353.tif 000011
【図１０】
2014160353.tif 000012
【図１１】
2014160353.tif 000013