(57)【要約】【課題】表示内容を自動的に秘匿することが可能な電子機器を提供する。【解決手段】携帯端末装置のＣＰＵが実行する処理は、秘匿する対象の秘匿データの少なくとも一部と一致する部分を、モニタに表示する表示データから探索するステップ（Ｓ３０）と、一致する部分に含まれているデータと秘匿データとの類似度を算出するステップ（Ｓ３２）と、類似度が高くなるにつれて、一致する部分についてのモニタへの表示の秘匿度合いを高くするステップ（Ｓ５２）とを含む。【選択図】図７
2016045765.tif 000002
【特許請求の範囲】
【請求項１】
モニタと、
秘匿対象の第１のデータと、前記モニタに表示する第２のデータとを格納するための記憶部と、
前記第１のデータの少なくとも一部と一致する部分を前記第２のデータから探索するための探索部と、
前記第２のデータの前記一致する部分が前記第２のデータの他の部分よりも視認されないように、前記モニタによる表示を制御するための表示制御部とを備える、電子機器。
【請求項２】
前記電子機器は、前記一致する部分に含まれているデータと前記第１のデータとの類似度を算出するための算出部をさらに備え、
前記表示制御部は、前記類似度が高くなるにつれて、前記一致する部分についての前記モニタへの表示の秘匿度合いを高くする、請求項１に記載の電子機器。
【請求項３】
前記第１のデータは、秘匿対象の文字列を含み、
前記算出部によって算出される前記類似度は、前記一致する部分に含まれている文字列と、前記秘匿対象の文字列との間で一致する文字数が多いほど高くなる、請求項２に記載の電子機器。
【請求項４】
前記第１のデータは、秘匿対象の画像を含み、
前記算出部によって算出される前記類似度は、前記一致する部分に含まれている画像と、前記秘匿対象の画像との間で、一致する画像情報が多いほど高くなる、請求項２に記載の電子機器。
【請求項５】
電子機器の制御方法であって、
前記電子機器は、
モニタと、
秘匿対象の第１のデータと、前記モニタに表示する第２のデータとを格納するための記憶部とを備え、
前記制御方法は、
前記第１のデータの少なくとも一部と一致する部分を前記第２のデータから探索するステップと、
前記第２のデータの前記一致する部分が前記第２のデータの他の部分よりも視認されないように、前記モニタによる表示を制御するステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子機器の制御に関し、特に、表示内容を秘匿する電子機器の制御に関する。
【背景技術】
【０００２】
近年、モニタを有するスマートフォンなどの電子機器が普及している。このような電子機器の普及に伴い、モニタの表示内容を他人に秘匿するための技術が開発されている。たとえば、特許文献１は、表示された文字の内容を見えにくくすることにより、表示された文字の内容を保護することを目的とする移動通信端末機を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１９７５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示される移動通信端末機は、カーソル位置に表示されている文字のみを本来の文字色（たとえば、黒色）で表示し、それ以外の部分に表示されている文字を背景色と類似した色で表示する。すなわち、ユーザは、見えにくくする部分を明示的に指定する必要があり、手間がかかる。
【０００５】
本開示は上述のような問題点を解決するためになされたものであって、その目的は、表示内容を自動的に秘匿することが可能な電子機器、および、その制御方法を提供することである。
【課題を解決するための手段】
【０００６】
一実施の形態に従うと、電子機器は、モニタと、秘匿対象の第１のデータと、モニタに表示する第２のデータとを格納するための記憶部と、第１のデータの少なくとも一部と一致する部分を第２のデータから探索するための探索部と、第２のデータの一致する部分が第２のデータの他の部分よりも視認されないように、モニタによる表示を制御するための表示制御部とを備える。
【発明の効果】
【０００７】
ある局面において、表示内容を自動的に秘匿することができる。
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【０００８】
【図１】第１の実施の形態に従うスマートフォンの表示画面の一例を示した図である。
【図２】第１の実施の形態に従うスマートフォンの主要なハードウェア構成を示すブロック図である。
【図３】第１の実施の形態に従うスマートフォンの機能構成の一例を示すブロック図である。
【図４】秘匿データ２２のデータ構造を示す図である。
【図５】異なる文字列であっても同じハッシュ値になる場合を示す図である。
【図６】表示データ２４のデータ構造と、秘匿レベル２６のデータ構造とを示した図である。
【図７】第１の実施の形態に従うスマートフォンが実行する処理の一部を表わすフローチャートである。
【図８】第２の実施の形態に従うスマートフォンの表示態様の一例を示した図である。
【図９】第３の実施の形態に従うスマートフォンの表示態様の一例を示した図である。
【図１０】第４の実施の形態に従うスマートフォンの表示態様の一例を示した図である。
【図１１】第４の実施の形態に従うスマートフォンに格納されている秘匿データ２２のデータ構造を示す図である。
【図１２】第５の実施の形態に従うスマートフォンによる画像データを秘匿する処理を概略的に示した概念図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００１０】
なお、以下では、電子機器の一例であるスマートフォンの詳細について説明するが、電子機器は、スマートフォンに限定されるものではない。たとえば、電子機器は、タブレット端末、デジタルカメラ、電子辞書、ＰＤＡ（Personal  Digital  Assistant）、ゲーム機、その他のモニタを有する装置なども含み得る。また、以下で説明される各実施の形態は、適宜選択的に組み合わされてもよい。
【００１１】
＜第１の実施の形態＞
［概要］
図１を参照して、第１の実施の形態に従うスマートフォン１００の概要について説明する。図１は、スマートフォン１００の表示画面の一例を示した図である。スマートフォン１００は、モニタ５と、後述の記憶装置２０とを有する。
【００１２】
記憶装置２０は、モニタ５に表示されるデータを表示データ２４としてバッファリングする。また、記憶装置２０には、ユーザが他人に知られたくない秘匿対象のデータ（図１の秘匿データ２２）が予め格納されている。秘匿データ２２は、たとえば、クレジットカード番号、パスワードなどの文字列データや、以下の「第５の実施の形態」で説明するように画像データを含む。
【００１３】
スマートフォン１００は、秘匿データ２２（第１のデータ）の少なくとも一部と一致するデータ（以下、「一致部分」ともいう。）が表示データ２４（第２のデータ）に含まれている場合に、表示データ２４のうちの一致部分を秘匿して表示し、それ以外の部分を秘匿せずに表示する。
【００１４】
より具体的な例として、図１（Ａ）に示されるように、記憶装置２０には、秘匿データ２２として、クレジットカード番号「９８７６−５４３２−１２３４−５６７０」が予め格納されているとする。また、表示データ２４には、文字列「９８７６−５４３２−００００−００００」が含まれているとする。このような状態において、スマートフォン１００が、秘匿データ２２の少なくとも一部と一致する部分を表示データ２４から探索すると、スマートフォン１００は、探索結果として、秘匿データ２２の「９８７６−５４３２−」の部分が、表示データ２４の「９８７６−５４３２−」に一致すると判断する（図１（Ａ）の一致部分３０参照）。
【００１５】
次に、スマートフォン１００は、一致部分３０のデータと秘匿データ２２との類似度を算出する。一例として、この類似度は、一致部分３０に含まれている文字列と、秘匿データ２２の文字列との間で一致する文字数が多いほど高くなる。スマートフォン１００は、この類似度が予め定められた値を超えた場合に、一致部分３０の文字列を秘匿して表示する（図１（Ａ）の表示領域３２参照）。文字列を秘匿する方法の一例として、スマートフォン１００は、秘匿対象の文字列を含む表示領域３２のコントラストを下げる。すなわち、スマートフォン１００は、表示領域３２の文字とこの文字の背景との輝度差あるいは色差を小さくする。これにより、スマートフォン１００は、表示領域３２の文字が他人に視認されることを防止し、表示領域３２の情報を秘匿することができる。
【００１６】
このようにして、スマートフォン１００は、秘匿データ２２の少なくとも一部と一致する部分を表示データ２４から探索することにより、表示データ２４の秘匿する部分を自動的に特定する。また、スマートフォン１００は、秘匿する情報を自動的に特定できるので、ユーザが入力中の文字列についてもリアルタイムに秘匿することができる。
【００１７】
ある局面において、秘匿データ２２と表示データ２４との類似度が高くなるにつれて、スマートフォン１００は、一致部分についてのモニタ５への表示の秘匿レベル（秘匿度合い）を高くする。たとえば、図１（Ｂ）に示されるように、表示データ２４には、文字列「９８７６−５４３２−１２３４−５６７０」が含まれているとする。このような状態において、スマートフォン１００が、秘匿データ２２の少なくとも一部と一致する部分を表示データ２４から探索すると、スマートフォン１００は、探索結果として、秘匿データ２２の「９８７６−５４３２−１２３４−５６７０」の全てが、表示データ２４の「９８７６−５４３２−１２３４−５６７０」に一致すると判断する（図１（Ｂ）の一致部分３４参照）。
【００１８】
図１（Ａ）の例では、一致部分３０の文字数が１０文字（すなわち、「９８７６−５４３２−」）であったのに対して、図１（Ｂ）の例では、一致部分３４の文字数が１９文字（すなわち、「９８７６−５４３２−１２３４−５６７０」）であるので、スマートフォン１００は、一致部分３０の表示領域３２における秘匿レベルよりも、一致部分３４の表示領域３６に対する秘匿レベルを高くする。すなわち、スマートフォン１００は、表示領域３２のコントラストよりも表示領域３６のコントラストを低くする。
【００１９】
このように、スマートフォン１００は、秘匿データ２２との類似度に応じて適応的に秘匿レベルを変えることができる。これにより、ユーザが秘匿対象の文字列を入力する度に、その文字列を段階的に秘匿することができる。
【００２０】
［ハードウェア構成］
図２を参照して、第１の実施の形態に従うスマートフォン１００のハードウェア構成の一例について説明する。図２は、スマートフォン１００の主要なハードウェア構成を示すブロック図である。図２に示されるように、スマートフォン１００は、ＲＯＭ（Read  Only  Memory）１と、ＣＰＵ（Central  Processing  Unit）２と、ＲＡＭ（Random  Access  Memory）３と、入力部４と、モニタ５と、ネットワークインタフェース（Ｉ／Ｆ）８と、記憶装置２０とを含む。
【００２１】
ＲＯＭ１は、オペレーティングシステム（ＯＳ：Operating  System）、スマートフォン１００で実行される制御プログラムなどを格納する。ＣＰＵ２は、オペレーティングシステムやスマートフォン１００の制御プログラムなどの各種プログラムを実行することで、スマートフォン１００の動作を制御する。ＲＡＭ３は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
【００２２】
入力部４は、スマートフォン１００に対するユーザ操作を受け付ける。入力部４は、キーボード、タッチパネル、その他のスマートフォン１００の操作装置を含む。モニタ５は、たとえば、液晶ディスプレイ、有機ＥＬ（Electro  Luminescence）ディスプレイ、またはその他の表示機器などを含む。モニタ５は、タッチセンサ（図示しない）と組み合わされてタッチパネルとして構成されてもよい。モニタ５は、ユーザが入力部４を操作することによって入力された文字列などを表示する。入力された文字列が秘匿データ２２に一致または類似する場合には、スマートフォン１００は、入力された文字列を秘匿する。
【００２３】
ネットワークＩ／Ｆ８は、アンテナ８Ａを介して、他の通信機器との間でデータを送受信する。他の通信機器は、たとえば、スマートフォン、パソコン、サーバ装置、その他の通信機能を有する装置などを含む。スマートフォン１００は、アンテナ８Ａを介して、本実施の形態に従う各種の処理を実現するためのプログラムをダウンロードできるように構成されてもよい。
【００２４】
記憶装置２０は、たとえば、ｅＭＭＣ（Embedded  MultiMediaCard）などの記憶媒体を含む。ｅＭＭＣは、ＮＡＮＤフラッシュメモリと、制御回路とを含む。記憶装置２０は、本実施の形態に従う各種の処理を実現するためのプログラム、秘匿データ２２、表示データ２４、秘匿レベル２６などを格納する。秘匿データ２２、表示データ２４、および秘匿レベル２６の詳細については後述する。なお、秘匿データ２２、表示データ２４、および秘匿レベル２６の少なくとも１つは、記憶装置２０ではなく、ＲＯＭ１、ＣＰＵ２の記憶領域（たとえば、キャッシュメモリなど）、ＲＡＭ３、または外部の記憶装置などに格納されてもよい。
【００２５】
なお、本実施の形態に従う各種の処理を実現するためのプログラムは、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従うスマートフォン１００の趣旨を逸脱するものではない。さらに、本実施の形態に従うプログラムによって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、サーバ装置側が全ての機能を実行する必要はなく、スマートフォン１００とサーバ装置とが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも１つのサーバ装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態でスマートフォン１００が構成されてもよい。
【００２６】
［機能構成］
図３を参照して、スマートフォン１００の機能について説明する。図３は、スマートフォン１００の機能構成の一例を示すブロック図である。図３に示されるように、スマートフォン１００のＣＰＵ２は、探索部１１０と、算出部１２０と、表示制御部１３０とを含む。
【００２７】
探索部１１０は、秘匿データ２２の少なくとも一部と一致する部分（単に、「一致部分」ともいう。）を表示データ２４から探索する。つまり、探索部１１０は、表示データ２４をスキャンして、秘匿データ２２と一文字でも一致する部分を探索する。探索部１１０による探索処理の詳細については後述する。
【００２８】
算出部１２０は、一致部分に含まれているデータと秘匿データ２２との類似度を算出する。ある局面において、この類似度は、一致部分に含まれている文字列と、秘匿データ２２に含まれる文字列との間で一致する文字数が多いほど高くなる。たとえば、この類似度は、秘匿データ２２と一致部分との間で一致する文字数として示される。あるいは、この類似度は、秘匿データ２２の文字数に対する、一致部分の文字数の割合として示される。
【００２９】
表示制御部１３０は、表示データ２４の一致部分が他の部分よりも視認されないように、モニタ５による表示を制御する。より具体的には、表示制御部１３０は、一致部分と秘匿データ２２との類似度が高くなるにつれて、一致部分についてのモニタ５への表示の秘匿レベルを高くする。たとえば、表示制御部１３０は、一致部分についてのモニタ５への表示のコントラストを低下することにより、一致部分の情報を秘匿する。他にも、表示制御部１３０は、一致部分の表示サイズ（たとえば、文字サイズ）を小さくすることにより、一致部分の情報を秘匿してもよい。他にも、表示制御部１３０は、一致部分の文字の向きを変えることにより、一致部分の情報を秘匿してもよい。他にも、表示制御部１３０は、一致部分の文字を別の文字に置換することにより、一致部分の情報を秘匿してもよい。別の文字は、たとえば、アスタリスク、空白、またはランダムに生成された文字などを含む。
【００３０】
［暗号化（秘匿データ２２の詳細）］
図４を参照して、秘匿データ２２の暗号化について説明する。図４は、秘匿データ２２のデータ構造を示す図である。クレジットカード番号などの秘匿データ２２は、記憶装置２０（図２参照）にそのままの状態で格納されてもよいが、この場合には、秘匿データ２２が他人に漏れてしまう可能性がある。そのため、好ましくは、スマートフォン１００は、秘匿データ２２を特定のルールで暗号化して保持する。暗号化の手法としては、たとえば、ハッシュ化が挙げられる。本実施の形態におけるハッシュ化とは、秘匿対象のデータから一定の計算手順に従ってハッシュ値と呼ばれる擬似乱数を求め、秘匿対象のデータをハッシュ値に置き換えることをいう。
【００３１】
以下では、秘匿対象のデータとして秘匿文字列「９８７６−５４３２−１２３４−５６７０」をハッシュ化する例について説明する。スマートフォン１００は、一例として、秘匿文字列の文字コード（たとえば、アスキーコード）を以下の式（１）によりハッシュ化する。
【００３２】
Ｈ［ｋ］  ＝  Σ（〔ａ［ｋ］×２３÷１０〕＋５５５５％ａ［ｋ］）・・・（１）
なお、式（１）のＨ［ｋ］は、秘匿文字列の１〜ｋ文字目までのハッシュ値を示す。式（１）のａ［ｋ］は、秘匿文字列のｋ文字目の文字コードを示す。式（１）の〔  〕は、小数点以下切り捨てを示す。式（１）の「％」は、剰余を求める演算を示す。
【００３３】
まず、図４（Ａ）に示されるように、スマートフォン１００は、秘匿文字列の１文字目「９」を式（１）によりハッシュ化する。文字「９」の文字コードは、「５７」（＝ａ［１］）であるので、ｋ＝１のときのハッシュ値Ｈ［１］は、下記の式（２）より１５７となる。
【００３４】
Ｈ［１］＝〔（５７×２３）÷１０〕＋（５５５５％ａ［ｋ］）＝１５７・・・（２）
次に、スマートフォン１００は、秘匿文字列の１文字目「９」と２文字目「８」を式（１）によりハッシュ化する。文字「９」の文字コードが「５７」（＝ａ［１］）であり、文字「８」の文字コードが「５６」（＝ａ［２］）であるので、ｋ＝２のときのハッシュ値Ｈ［２］は、下記の式（３）より２９６となる。
【００３５】
Ｈ［２］＝〔（５７×２３）÷１０〕＋（５５５５％ａ［ｋ］）＋〔（５６×２３）÷１０〕＋（５５５５％ａ［ｋ］）＝２９６・・・（３）
同様に、スマートフォン１００は、秘匿文字列の部分文字列のハッシュ値Ｈ［３］〜Ｈ［ｋ］を式（１）により順に算出する。これにより、秘匿文字列の文字数分のハッシュ値が算出される。スマートフォン１００は、図４（Ｂ）に示されるように、算出したハッシュ値Ｈ［１］〜Ｈ［ｋ］を秘匿データ２２として保持する。
【００３６】
このように、スマートフォン１００は、秘匿対象の文字列の全文字をハッシュ化したものだけではなく、秘匿対象の文字列の一部をハッシュ化したものを秘匿データ２２として保持する。スマートフォン１００は、秘匿文字列の部分文字列ごとにハッシュ化されたハッシュ値を保持することで、後述の「探索処理」で説明するように、秘匿データ２２と表示データ２４との一致部分の文字数を容易に特定することができる。
【００３７】
なお、ハッシュ値の算出方法（アルゴリズム）は、上記の式（１）に限定されない。たとえば、スマートフォン１００は、秘匿文字列の１〜ｋ文字目までの各文字コードを足し合わせたものをハッシュ値として算出してもよい。但し、ハッシュ値を算出するための式が簡易である場合には、図５に示されるように、文字列「ＡＢ」および文字列「１２」のような異なる文字列であっても同じハッシュ値になる可能性が高くなる。文字列とハッシュ値との対応が多対一となる可能性を低くするために、ハッシュ値を算出する式は、上記の式（１）のような複雑な式であることが望ましい。特に、ハッシュ化で用いる式を複雑にすることは、秘匿対象の文字列の文字数が少ない場合に効果的である。
【００３８】
［探索処理］
図６を参照して、表示データ２４から秘匿データ２２を探索する方法について説明する。図６は、表示データ２４のデータ構造と秘匿レベル２６のデータ構造とを示した図である。
【００３９】
図６に示されるように、表示データ２４は、モニタ５に表示されるデータを一時的にバッファリングしたものに相当し、モニタ５に表示する文字データを含む。表示データ２４は、モニタ５に表示する前のものであってもよいし、モニタ５に表示した後のものであってもよい。表示データ２４は、モニタ５の表示が更新される度に書き換えられる。秘匿レベル２６には、表示データ２４の各文字を秘匿するレベルが含まれる。
【００４０】
上述したように、探索部１１０（図３参照）は、秘匿データ２２の少なくとも一部と一致する部分（すなわち、一致部分）を表示データ２４から探索する。このとき、探索部１１０は、秘匿データ２２の暗号化処理と同じ手法を用いて表示データ２４を暗号化した上で探索処理を行なう。たとえば、秘匿データ２２がハッシュ化により暗号化されている場合には、探索部１１０は、表示データ２４をハッシュ化した上で探索処理を行なう。
【００４１】
より具体的な探索処理の例として、探索部１１０が秘匿文字列「９８７６−５４３２−１２３４−５６７０」を表示データ２４から探索する場合について説明する。まず、探索部１１０は、秘匿文字列の１文字目「９」のハッシュ値と一致する部分をハッシュ化された表示データ２４から探索する。その結果、図６に示されるように、探索部１１０は、表示データ２４の１４文字目（すなわち、ｉ＝１４）に文字「９」があると判断する。
【００４２】
続いて、スマートフォン１００は、表示データ２４の１４文字目から何文字が秘匿データ２２に一致するかを判断する。より具体的には、スマートフォン１００は、表示データ２４の１４文字目からｋ文字（但し、ｋ＞１）を順にハッシュ化し、表示データ２４のｋ文字のハッシュ値と、秘匿文字列のｋ文字のハッシュ値とを比較する。これらのハッシュ値が一致する場合に、スマートフォン１００は、表示データ２４の１４文字目からｋ文字が秘匿データ２２に一致していると判断する。図６の例では、表示データ２４の１４文字目から１０文字（すなわち、「９８７６−５４３２−」）が秘匿データ２２と一致するので、変数ｋの値は「１０」となる。
【００４３】
次に、算出部１２０（図３参照）は、秘匿データ２２と表示データ２４との類似度を算出する。図６の例では、１０文字が一致するので、算出部１２０は、表示データ２４の１４文字目から２３文字目までの類似度を「１０」とする。その結果、スマートフォン１００は、表示データ２４の１４文字目から２３文字目の秘匿レベルを「１０」に設定する（秘匿レベル２６のＬ［１４］〜［２３］参照）。
【００４４】
その後、表示制御部１３０（図３参照）は、秘匿レベル２６の値に基づいて、表示データ２４の各文字の背景輝度を決定する。一例として、表示制御部１３０は、秘匿レベル２６の値が高いほど、文字色と背景色との色差を小さくする。たとえば、文字の輝度がゼロ（すなわち、黒色）であり、背景の最大輝度が２５５（すなわち、白色）である場合に、表示制御部１３０は、背景輝度を以下の式（４）により算出する。
【００４５】
背景輝度  ＝  ２５５−Ｌ［ｉ］×８（但し、背景輝度≧０）・・・（４）
図６に示される例のように、秘匿データ２２と表示データ２４との一致部分の秘匿レベルが「１０」である場合には、式（４）から背景輝度が「１７５」（＝２５５−１０×８）に設定される。これにより、図１（Ａ）に示されるようにモニタ５の表示領域３２が薄いグレーで表示される。
【００４６】
また、異なる例として、秘匿データ２２の全文字が表示データ２４に含まれている場合には、一致部分の文字数が１９文字となる。この場合、背景輝度が式（４）から「１０８」（＝２５５−１９×８）に設定され、図１（Ｂ）に示されるようにモニタ５の表示領域３２が濃いグレーで表示される。
【００４７】
なお、表示制御部１３０は、秘匿レベルに応じて段階的に文字列を秘匿するのではなく、秘匿レベルが予め定められた秘匿レベル（たとえば、５）を超えた文字に対してのみ秘匿化処理を実行してもよい。
【００４８】
［制御構造］
図７を参照して、スマートフォン１００の制御構造について説明する。図７は、スマートフォン１００が実行する処理の一部を表わすフローチャートである。図７の処理は、スマートフォン１００のＣＰＵ２がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子、その他のハードウェアによって実行されてもよい。
【００４９】
なお、以下では、秘匿データ２２（図６参照）の１〜ｋ文字目までのハッシュ値をＨ［ｋ］として定義する。表示データ２４（図６参照）のｉ文字目をＳ［ｉ］として定義する。秘匿レベル２６（図６参照）のｉ番目の秘匿レベル（類似度）をＬ［ｉ］として定義する。秘匿データ２２の文字数を変数Ｎとして定義する。表示データ２４の文字数を変数Ｍとして定義し、秘匿化処理の対象となる最小の文字数を変数Ｐとして定義する。
【００５０】
ステップＳ１０において、ＣＰＵ２は、秘匿レベルＬ［ｉ］を初期化する。より具体的には、ＣＰＵ２は、秘匿レベルＬ［０］〜Ｌ［Ｍ］を０に初期化する。ステップＳ１２において、変数ｉを１に初期化する。但し、この初期化は、ステップＳ１２の１回目の実行時のみ実行される。２回目以降においては、ＣＰＵ２は、変数ｉに１を加算する。
【００５１】
ステップＳ１４において、変数ｋを変数Ｐで初期化する。但し、この初期化は、ステップＳ１４の１回目の実行時、またはステップＳ１２において変数ｉが書き換えられた時のみ実行される。それ以外の時には、ＣＰＵ２は、変数ｋに１を加算する。
【００５２】
ステップＳ２０において、ＣＰＵ２は、秘匿レベルＬ［ｉ］が変数ｋよりも小さいか否かを判断する。ステップＳ２０において、ＣＰＵ２は、秘匿レベルＬ［ｉ］が変数ｋよりも小さいと判断した場合に（ステップＳ２０においてＹＥＳ）、制御をステップＳ２２に切り替える。そうでない場合には（ステップＳ２０においてＮＯ）、ＣＰＵ２は、ステップＳ１４の処理を再び実行する。
【００５３】
ステップＳ２２において、ＣＰＵ２は、表示データＳ［ｉ］〜［ｉ＋ｋ−１］までの部分文字列のハッシュ値αを算出する。ステップＳ３０において、ＣＰＵ２は、算出したハッシュ値αとハッシュ値Ｈ［ｋ］とが等しいか否かを判断する。ハッシュ値αとハッシュ値Ｈ［ｋ］とが等しいということは、秘匿データ２２の１〜ｋ文字目までと、表示データ２４のｉ〜ｉ＋ｋ−１文字目までが等しいことを意味する。ＣＰＵ２は、ハッシュ値αおよびハッシュ値Ｈ［ｋ］が等しいと判断した場合に（ステップＳ３０においてＹＥＳ）、制御をステップＳ３２に切り替える。そうでない場合には（ステップＳ３０においてＮＯ）、ＣＰＵ２は、ステップＳ１４の処理を再び実行する。
【００５４】
ステップＳ３２において、ＣＰＵ２は、秘匿レベルＬ［ｉ］〜Ｌ［ｉ＋ｋ−１］に変数ｋを代入する。すなわち、ＣＰＵ２は、一致した文字数ｋを秘匿レベル２６に設定する。ステップＳ４０において、ＣＰＵ２は、変数ｋが変数Ｎよりも小さいか否かを判断する。ＣＰＵ２は、変数ｋが変数Ｎよりも小さいと判断した場合に（ステップＳ４０においてＹＥＳ）、ステップＳ１４の処理を再び実行する。そうでない場合には（ステップＳ４０においてＮＯ）、ＣＰＵ２は、制御をステップＳ５０に切り替える。ステップＳ４０の処理結果に応じて、ステップＳ１４〜Ｓ４０の処理が繰り返される。これにより、ＣＰＵ２は、算出部１２０として、秘匿データ２２の１〜ｋ文字目までと、表示データ２４のｉ〜ｉ＋ｋ−１文字目までの類似度を算出することができる。
【００５５】
ステップＳ５０において、ＣＰＵ２は、変数ｉが変数Ｍよりも小さいか否かを判断する。ＣＰＵ２は、変数ｉが変数Ｍよりも小さいと判断した場合に（ステップＳ５０においてＹＥＳ）、ステップＳ１２の処理を再び実行する。そうでない場合には（ステップＳ５０においてＮＯ）、ＣＰＵ２は、制御をステップＳ５２に切り替える。ステップＳ５０の処理により、ステップＳ１２〜ステップＳ５０の処理が繰り返される。これにより、ＣＰＵ２は、探索部１１０として、秘匿データ２２の少なくとも一部と一致する部分を表示データ２４から探索することができる。
【００５６】
ステップＳ５２において、ＣＰＵ２は、表示制御部１３０として、秘匿レベルＬ［ｉ］に応じて、秘匿文字列との一致部分についての表示を秘匿する。秘匿化処理については上述の通りであるので説明を繰り返さない。
【００５７】
なお、「第４の実施の形態」で説明するように、スマートフォン１００がクレジットカード番号の他にも名前など複数の秘匿データ２２を保持する場合には、ＣＰＵ２は、秘匿データ２２のデータ数の分だけステップＳ１２〜Ｓ５０の処理を繰り返す。
【００５８】
また、ステップＳ１４において、定数Ｐの値は「１」であってもよい。好ましくは、定数Ｐの値は、「１」よりも大きい方がよい。定数Ｐの値が大きくなることで、ハッシュ化する文字列の文字数を多くすることができ、図５で説明したように、異なる文字列間でハッシュ値が等しくなることによる誤動作の可能性を低くすることができる。但し、本実施の形態では、一致する文字数が少ないほど秘匿化の度合いを小さくするので、Ｐの値が「１」に設定されて誤動作が生じたとしても、その影響は小さい。
【００５９】
［小括］
以上のようにして、本実施の形態に従うスマートフォン１００は、秘匿対象の文字列を表示データ２４から探索することで、秘匿文字列を自動的に秘匿することができる。また、スマートフォン１００は、秘匿文字列と表示データ２４との間で一致する文字数に応じて秘匿レベルを適応的に変える。これにより、ユーザがクレジットカード番号などの秘匿文字列を入力するにつれて秘匿レベルを高めることができる。
【００６０】
＜第２の実施の形態＞
図８を参照して、第２の実施の形態に従うスマートフォン１００Ａについて説明する。図８は、スマートフォン１００Ａの表示態様の一例を示した図である。第１の実施の形態に従うスマートフォン１００は、背景色を文字色に近付けることで秘匿化処理を行なっていた。これに対して、第２の実施の形態に従うスマートフォン１００Ａは、文字色を背景色に近付けることで秘匿化処理を行なう。
【００６１】
たとえば、文字の最小輝度がゼロ（すなわち、黒色）であり、背景の輝度が２５５（すなわち、白色）である場合に、スマートフォン１００Ａの表示制御部１３０（図３参照）は、秘匿対象の文字の輝度を以下の式（５）からＬ［ｉ］に基づいて算出する。
【００６２】
文字の輝度  ＝  Ｌ［ｉ］×８（但し、文字の輝度≦２５５）・・・（５）
これにより、スマートフォン１００Ａは、図８に示されるように、秘匿対象の文字列を背景色に近付けるようにコントラストを低下することができる（表示領域３８参照）。
【００６３】
なお、スマートフォン１００Ａのハードウェア構成などその他の点については第１の実施の形態に従うスマートフォン１００と同じであるので、それらの説明は繰り返さない。
【００６４】
＜第３の実施の形態＞
図９を参照して、第３の実施の形態に従うスマートフォン１００Ｂについて説明する。図９は、スマートフォン１００Ｂの表示態様の一例を示した図である。第１の実施の形態に従うスマートフォン１００は、秘匿対象の文字としてハイフンなどの記号を含んでいた。これに対して、第３の実施の形態に従うスマートフォン１００Ｂは、数字部分や文字部分だけを秘匿する。
【００６５】
たとえば、図９に示されるように、スマートフォン１００Ｂの表示制御部１３０（図３参照）は、表示領域４０に含まれる文字列のうち、ハイフンを除く数字部分「９８７６」、「５４３２」、「１２３４」、および「５６７０」を秘匿化する。
【００６６】
なお、スマートフォン１００Ｂのハードウェア構成などその他の点については第１の実施の形態に従うスマートフォン１００と同じであるので、それらの説明は繰り返さない。
【００６７】
＜第４の実施の形態＞
図１０および図１１を参照して、第４の実施の形態に従うスマートフォン１００Ｃについて説明する。図１０は、スマートフォン１００Ｃの表示態様の一例を示した図である。図１１は、スマートフォン１００Ｃに格納されている秘匿データ２２のデータ構造を示す図である。第１の実施の形態に従うスマートフォン１００は、１つの文字列を秘匿対象としていた。これに対して、第４の実施の形態に従うスマートフォン１００Ｃは、２つ以上の文字列を秘匿対象とする。なお、スマートフォン１００Ｃのハードウェア構成などその他の点については、後述の点を除き、第１の実施の形態に従うスマートフォン１００と同じであるので、それらの説明は繰り返さない。
【００６８】
ユーザが秘匿したいデータには、クレジット番号の他にも、名前、パスワードなど様々なデータがある。たとえば、ユーザは、秘匿対象のデータとして、名前「権兵衛」と、クレジットカード番号「９８７６−５４３２−１２３４−５６７０」とを秘匿データ２２としてスマートフォン１００Ｃに登録したとする。スマートフォン１００Ｃは、表示データ２４（図６参照）を監視し、表示データ２４から登録されたクレジットカード番号と名前とのそれぞれを探索する。これらのデータが表示データ２４に含まれている場合に、スマートフォン１００Ｃは、クレジットカード番号および名前のそれぞれの表示を秘匿する。
【００６９】
スマートフォン１００Ｃは、秘匿データ２２と一致する文字数に応じて秘匿する度合いを高くする。図１０の例では、名前「権兵衛」については、一致文字数が３文字であるため、スマートフォン１００Ｃは、名前の秘匿レベル２６（図６参照）を「３」に設定する。一方、クレジットカード番号「９８７６−５４３２−１２３４−５６７０」については、一致文字数が１９文字であるため、スマートフォン１００Ｃは、クレジットカード番号の秘匿レベル２６を「１９」に設定する。この結果、名前よりもクレジットカード番号の秘匿レベルが高くなり、名前部分の背景色が薄いグレーに設定され（表示領域４２参照）、クレジットカード番号部分の背景色が濃いグレーに設定される（表示領域４４参照）。このように、スマートフォン１００Ｃは、秘匿データ２２のそれぞれについての秘匿レベルを適応的に変えることができる。
【００７０】
また、スマートフォン１００Ｃは、秘匿対象のデータの重要度に応じて秘匿レベルを決定してもよい。たとえば、図１１に示されるように、スマートフォン１００Ｃには、クレジットカード番号としての秘匿データ２２Ａと、名前としての秘匿データ２２Ｂが登録されているとする。スマートフォン１００Ｃは、秘匿データ２２Ａ，２２Ｂのそれぞれについて重要度を設定できるように構成され得る。スマートフォン１００Ｃは、秘匿データ２２Ａと表示データ２４との一致部分の類似度の算出時に、秘匿データ２２Ａに設定された重要度を一致文字数に乗じて類似度を算出し得る。また、スマートフォン１００Ｃは、秘匿データ２２Ｂと表示データ２４との一致部分の類似度の算出時に、秘匿データ２２Ｂに設定された重要度を一致文字数に乗じて類似度を算出し得る。これにより、ユーザによって設定された重要度に応じて秘匿度合いを変えることができる。
【００７１】
＜第５の実施の形態＞
図１２を参照して、第５の実施の形態に従うスマートフォン１００Ｄについて説明する。図１２は、画像データを秘匿する処理を概略的に示した概念図である。第１の実施の形態に従うスマートフォン１００は、文字列データを秘匿対象としていた。これに対して、第５の実施の形態に従うスマートフォン１００Ｄは、画像データを秘匿対象とする。なお、スマートフォン１００Ｄのハードウェア構成などその他の点については、後述の点を除き、第１の実施の形態に従うスマートフォン１００と同じであるので、それらの説明は繰り返さない。
【００７２】
秘匿する対象の秘匿データ２２（図４参照）は、文字列だけでなく、秘匿画像５０などの画像データを含んでもよい。秘匿画像５０は、スマートフォン１００Ｄにそのままの状態で格納されてもよいが、この場合には、秘匿画像５０が他人に認識されてしまう可能性がある。このため、好ましくは、スマートフォン１００Ｄは、秘匿画像５０を特定のルールで暗号化して暗号画像５２として保持する。たとえば、スマートフォン１００Ｄは、秘匿画像５０を複数の格子状の領域に分割し（たとえば、１０×１０＝１００領域、１領域は１８×１８ドット）、各領域の平均輝度を暗号画像５２として保持する。
【００７３】
また、モニタ５に表示する表示データ２４（図６参照）は、文字データだけでなく、画像データ（たとえば、入力画像６０）を含んでもよい。スマートフォン１００Ｄは、秘匿画像５０の暗号化方法と同様に、入力画像６０を複数の格子状の領域に分割し（たとえば、２０×２０＝４００領域）、各領域の平均輝度を探索画像６４として算出する。
【００７４】
スマートフォン１００Ｄは、探索画像６４をスキャンして、暗号画像５２と類似する部分を探索する。より具体的には、スマートフォン１００Ｄは、探索画像６４上で一定画素ごとに暗号画像５２を移動させながら、暗号画像５２と探索画像６４との重複領域における、暗号画像５２と探索画像６４との類似度を順次算出する。この類似度は、暗号画像５２と探索画像６４との重複領域における画像情報が互いに一致するほど高くなる。この類似度の算出には、たとえば、ＳＡＤ（Sum  of  Absolute  Difference：輝度値の差の絶対値の合計）が用いられる。ＳＡＤ値は、以下の式（６）により算出される。
【００７５】
【数１】
2016045765.tif 000003
【００７６】
なお、ＳＡＤ値は、暗号画像５２と探索画像６４とが類似しているほど小さくなるため、類似度は、ＳＡＤ値が小さくなるほど高くなるように算出される。たとえば、類似度は、ＳＡＤ値の逆数として算出される。
【００７７】
スマートフォン１００Ｄは、探索画像６４上の類似度を算出した領域の各々について、対応する入力画像６０上の領域の画像情報を類似度に応じて秘匿する。図１２の例では、スマートフォン１００Ｄは、マーク５１と類似していないマーク６１，６２の表示領域７２，７４よりも、マーク５１と類似しているマーク６３の表示領域７６のコントラストをより低下させる（出力画像７０参照）。この結果、スマートフォン１００Ｄは、秘匿画像５０のマーク５１と類似するマーク６３を秘匿することができる。
【００７８】
なお、上記では、類似度が輝度情報から算出される例について説明したが、類似度は、秘匿画像５０と入力画像６０とのそれぞれから抽出した特徴量から算出されてもよい。たとえば、特徴量は、秘匿画像５０と入力画像６０との領域ごとに離散コサイン変換したデータなどを含む。
【００７９】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【００８０】
１  ＲＯＭ、２  ＣＰＵ、３  ＲＡＭ、４  入力部、５  モニタ、８  ネットワークＩ／Ｆ、８Ａ  アンテナ、２０  記憶装置、２２，２２Ａ，２２Ｂ  秘匿データ、２４  表示データ、２６  秘匿レベル、３０，３４  一致部分、３２，３６，３８，４０，４２，４４，７２，７４，７６  表示領域、５０  秘匿画像、５２  暗号データ、６０  入力画像、６４  探索画像、７０  出力画像、１００，１００Ａ〜１００Ｄ  スマートフォン、１１０  探索部、１２０  算出部、１３０  表示制御部。
【図２】
2016045765.tif 000004
【図３】
2016045765.tif 000005
【図４】
2016045765.tif 000006
【図５】
2016045765.tif 000007
【図６】
2016045765.tif 000008
【図７】
2016045765.tif 000009
【図１１】
2016045765.tif 000010
【図１】
2016045765.tif 000011
【図８】
2016045765.tif 000012
【図９】
2016045765.tif 000013
【図１０】
2016045765.tif 000014
【図１２】
2016045765.tif 000015