(57)【特許請求の範囲】
【請求項１】
対象のコンテキストを生成し、複数のコンテキストから高次コンテキストを推定するためのシステムであって、
対象を検出するためのセンサと、該センサによって検出されたデータに基づき、対象とその１次コンテキストを抽出する手段と、該１次コンテキストを該対象に対応する鍵で暗号化する手段をもつ検出装置と、
前記暗号化された１次コンテキストを記録する記憶装置と、
前記記憶装置から、前記暗号化された１次コンテキストを受け取る手段と、前記暗号化された１次コンテキストに関与する前記対象に対応する鍵を、前記検出装置から受け取る手段と、該受け取った鍵を用いて、前記暗号化された１次コンテキストを復号化する手段と、該復号された１次コンテキストを用いて、高次コンテキストを推定する手段をもつ処理装置とを備え、
前記処理装置は、前記検出装置に対して、特定の対象に対応する鍵の情報を削除するように要求する手段を有する、
システム。
【請求項２】
前記検出装置がロボットであり、前記センサが、画像センサ及びマイクを含む、請求項１に記載のシステム。
【請求項３】
前記検出装置が、前記対象の実名と、前記対象の識別名と、該対象に対応する鍵のエントリの第１の対応表を有する、請求項１に記載のシステム。
【請求項４】
前記検出装置が、前記抽出された１次コンテキストの時区間、及び該１次コンテキストに関連する対象の識別名のエントリの第２の対応表を有する、請求項３に記載のシステム。
【請求項５】
前記検出装置から前記記憶装置に送られる前記暗号化された１次コンテキストの情報に、該１次コンテキストの時区間の情報が、暗号化されない形式で追加される、請求項４に記載のシステム。
【請求項６】
前記記憶装置から、前記暗号化された１次コンテキストを受け取る手段は、１次コンテキストの時区間で前記記憶装置に対して問い合わせする、請求項５に記載のシステム。
【請求項７】
前記暗号化がＡＥＳ暗号方式であり、前記鍵は128ビットである、請求項１に記載のシ
ステム。
【請求項８】
前記検出装置を複数有し、該各検出装置が、異なる前記検出装置で検出される対象に対して、所定の条件の下で、協調コンテキスト鍵を作成する手段と、該条件に該当するコンテキストの暗号化に該協調コンテキスト鍵を使用する手段をさらに有する、請求項１に記載のシステム。
【請求項９】
前記記憶装置が、クラウド・コンピューティングのストレージ・サービスによって提供される、請求項１に記載のシステム。
【請求項１０】
対象のコンテキストを生成し、複数のコンテキストから高次コンテキストを推定するための方法であって、
対象を検出するためのセンサと、該センサによって検出されたデータに基づき、対象とその１次コンテキストを抽出する手段と、該１次コンテキストを該対象に対応する鍵で暗号化する手段をもつ検出装置が、記憶装置に、前記暗号化された１次コンテキストを記録するステップと、
処理装置が、前記記憶装置から、前記暗号化された１次コンテキストを受け取るステップと、
前記処理装置が、前記暗号化された１次コンテキストに関与する前記対象に対応する鍵を、前記検出装置から受け取るステップと、
前記処理装置が、前記受け取った鍵を用いて、前記暗号化された１次コンテキストを復号化するステップと、前記検出装置に対して、特定の対象に対応する鍵の情報を削除するように要求するステップを有する、
方法。
【請求項１１】
前記検出装置がロボットであり、前記センサが、画像センサ及びマイクを含む、請求項１０に記載の方法。
【請求項１２】
前記検出装置が、前記対象の実名と、前記対象の識別名と、該対象に対応する鍵のエントリの第１の対応表を有する、請求項１０に記載の方法。
【請求項１３】
前記検出装置が、前記抽出された１次コンテキストの時区間、及び該１次コンテキストに関連する対象の識別名のエントリの第２の対応表を有する、請求項１２に記載の方法。
【請求項１４】
前記検出装置から前記記憶装置に送られる前記暗号化された１次コンテキストの情報に、該１次コンテキストの時区間の情報が、暗号化されない形式で追加される、請求項１３に記載の方法。
【請求項１５】
前記記憶装置から、前記暗号化された１次コンテキストを受け取るステップは、１次コンテキストの時区間で前記記憶装置に対して問い合わせする、請求項１４に記載の方法。
【請求項１６】
前記暗号化がＡＥＳ暗号方式であり、前記鍵は128ビットである、請求項１０に記載の
方法。
【請求項１７】
前記検出装置を複数有し、該各検出装置が、異なる前記検出装置で検出される対象に対して、所定の条件の下で、協調コンテキスト鍵を作成するステップと、該条件に該当するコンテキストの暗号化に該協調コンテキスト鍵を使用するステップをさらに有する、請求項１０に記載の方法。
【請求項１８】
前記記憶装置が、クラウド・コンピューティングのストレージ・サービスによって提供される、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プライバシーやセキュリティ保護を要する環境で、コンテキスト情報を処理する技法に関するものである。
【背景技術】
【０００２】
最近になって、家庭における家電製品の操作、育児、高齢者の支援、ペットの世話、見張り、娯楽などの目的で、ロボットが導入されはじめている。このような個人あるいは家庭向けロボットは、パーソナル・ロボットとも呼ばれる。ロボットはまた、オフィスにおける受付、情報検索支援、その他事務作業のサポートなどのためにも導入されつつある。
【０００３】
このようなロボットは、基本的に、画像センサ、音声センサ、接触センサなどの各種センサや、歩行、把持などのマニピュレータや、音声合成エンジンや、各種センサの結果に基づき、文字認識、画像認識、あるいは音声認識するエンジンを備えている。画像認識は例えば、顔認識による個人識別機能も含む。
【０００４】
ロボットはまた、好適には、無線通信を介して、パーソナル・コンピュータやサーバと通信する機能を有する。
【０００５】
このようなロボットは、各種センサで取得したデータをパーソナル・コンピュータやサーバにそのまま送ると、データ量が膨大であるので、パーソナル・コンピュータやサーバのストレージが直ぐに一杯になってしまう。そこで、ロボットは、センサで検出したデータに対して文字認識、画像認識、あるいは音声認識などの前処理を施し、いつ、誰がどういう状態だったかという、縮約されたコンテキスト情報に変換してパーソナル・コンピュータやサーバに送る。そしてロボットは、コンテキスト情報を送ったら、センサで取得したデータは削除する。なお、センサで検出したデータをコンテキストに縮約する処理は、ロボット内の構成要素だけではできない場合があり、その場合はセンサで検出したデータを一旦パーソナル・コンピュータやサーバに送ってコンテキストへの縮約処理を行い、縮約したコンテキスト・データは、パーソナル・コンピュータやサーバに保持してもよい。その場合でも、縮約処理が完了した後は、センサで取得したデータは同様に削除可能である。
【０００６】
しかし、そうやって縮約されたコンテキスト情報といえども、ライフ・ログ的に長期間に亘って記録し続けると、パーソナル・コンピュータやサーバにも入りきらなくなる。そこで、クラウド・サーバや、ネットワーク接続ディスクなど、ビット単価が安価なストレージ装置にコンテキスト情報を送って記録し続けるようにする。
【０００７】
しかし、クラウド・サーバや、ネットワーク接続ディスクは、必ずしもセキュアとはいえないので、ロボットは、特定のキーで暗号化して、それらのストレージ装置に送り、記録するようにする。
【０００８】
ところが、そのとき、ロボットの画像イメージ・センサは、複数の人物を捉えることがありえるが、特定の人物に関するコンテキスト情報だけを、プライバシー保護、秘匿性などの目的で削除したいという要望がでたとき、対処が難しい。
【０００９】
特開２００８−２６９２３２号公報は、情報処理装置が、暗号キーを内部に格納し、かつ、当該暗号キーでデータを暗号化してディスクに記録するハードディスク装置を備え、ＢＩＯＳは、セキュリティサーバから緊急メッセージを受信した場合には、ハードディスク装置１３に暗号キーの削除命令を通知し、ハードディスク装置は、暗号キーの削除命令を受け取った場合に、暗号キーを削除することを開示する。
【００１０】
特開２００９−２２５４３７号公報は、データ記憶装置が、ホスト・システムあるいは装置外部の他のコンポーネントおよびその専用コントロールによる命令および／または制御無しに、暗号鍵を使用して到来データを機械的に暗号化し、暗号化機能はドライブおよび／またはその専用コントローラの組込み機能または自己充足機能であって、ドライブの全コンテンツを永久に削除するために、暗号鍵が捜し出されて消去され記憶装置内に格納される暗号文を使用不能し、内部鍵ライブラリの助けにより管理される複数の内部発生特定ファイル暗号鍵を使用して、データ処分をファイル・ベースで管理することを開示する。
【００１１】
David Evans and Alastair R. Beresford, “Context-derived Pseudonyms for Protection of Privacy in Transport Middleware and Applications”, Pervasive Computing Workshop, 2009は、プライベートなコンテキストを共有することに合意した二人のユーザが、安全にコンテキストを共有することに関するものであり、コンテキストを。メッセージ認証コードを使って秘匿化し、オープンなレポジトリに格納することを開示する。
【００１２】
特開２００８−２６９２３２号公報及び特開２００９−２２５４３７号公報は、特定の状況で暗号キーを削除することを開示する。また、David Evans and Alastair R. Beresford, “Context-derived Pseudonyms for Protection of Privacy in Transport Middleware and Applications”, Pervasive Computing Workshop, 2009は、コンテキストを秘匿化して、ディスクなどに書き込むことを開示する。
【００１３】
しかし、これらの従来技術を組み合わせても、コンテキスト情報を含む環境で、特定のユーザに関するコンテキスト情報のみを無効化する技法は示唆されない。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００８−２６９２３２号公報
【特許文献２】特開２００９−２２５４３７号公報
【非特許文献】
【００１５】
【非特許文献１】David Evans and Alastair R. Beresford, “Context-derived Pseudonyms for Protection of Privacy in Transport Middleware and Applications”, Pervasive Computing Workshop, 2009
【発明の概要】
【発明が解決しようとする課題】
【００１６】
従って、この発明の目的は、ロボットなどによって暗号化されて記録されたコンテキスト情報のうち、特定の対象に関するコンテキスト情報のみを無効化することを可能ならしめる技法を提供することにある。
【課題を解決するための手段】
【００１７】
この発明は、上記問題点を解決するためになされたものであって、本発明のシステムは、センサによって認識されたデータ（以下、センサ・データと称する）からコンテキスト情報を抽出すると、まずコンテキトの主体あるいは対象を認識し、その対象に対応するキーを生成して、コンテキスト情報を暗号化する。これにより、特定の認識対象に関するコンテキストの削除要求があったときに、鍵のみを削除することで、分散した複数データベースまたはストレージに保存された多数のコンテキストを一度に復号不能にすることができる。
【００１８】
本発明のシステムは、複数の認識対象が含まれるコンテキストは、それらの認識対象をビット・テーブルに変換して表現した上で、コンテキストを認識対象の個数だけ複製し、個々の認識対象に対する鍵を用いて、それぞれを暗号化する。これにより、特定の認識対象に関するコンテキストの削除要求を処理した後に、その認識対象に関する可読な情報が残ることを防ぐことができる。さらに、この技法は、暗号化されたコンテキストのサイズが小さく、復号が容易である。
【００１９】
また、本発明のシステムは、センサによって認識されたデータからコンテキスト情報を抽出した際、対象名を識別名で置き換えて匿名化するために、実名、識別名、暗号鍵の対応表を用いる。
【００２０】
本発明の一側面では、特定の認識対象に関するコンテキストを、時間範囲毎に削除できるように、個々の実名に対して時間帯毎に暗号鍵を割り当てた実名−識別名対応表を作成し、それを用いてコンテキストを暗号化する。
【００２１】
さらにコンテキストの復号を効率化するために、時間帯とその時間帯に認識した識別名を対応付ける対応表を用いることができる。
【発明の効果】
【００２２】
この発明によれば、識別された対象毎に暗号鍵を指定した対応表を用意し、この対応表のエントリに基づき、暗号化されたコンテキストを復号化するようにしたので、対応表の指定したエントリを削除するだけで、特定の対象に関するコンテキストを復号化することを不可能にして、秘匿化及びプライバシー保護を図ることができる。
【図面の簡単な説明】
【００２３】
【図１】ロボットと、コンピュータと、ディスク装置からなるシステムを示す概要図である。
【図２】ロボットのハードウェアの内部を示すブロック図である。
【図３】ロボットの機能構成を示すブロック図である。
【図４】コンピュータのハードウェアの内部を示すブロック図である。
【図５】コンピュータの機能構成を示すブロック図である。
【図６】ロボットと、コンピュータと、ディスク装置の三層モデルの動作の概要を示す図である。
【図７】対象の登録動作の処理のフローチャートを示す図である。
【図８】コンテキスト生成処理のフローチャートを示す図である。
【図９】コンテキスト参照処理及び高次コンテキスト推定処理のフローチャートを示す図である。
【図１０】推定された高次コンテキストのデータを構成し暗号化する処理のフローチャートを示す図である。
【図１１】暗号化手続の処理を示す図である。
【図１２】復号化手続の処理を示す図である。
【図１３】鍵削除処理のフローチャートを示す図である。
【図１４】コンテキスト生成処理における、ロボットと、コンピュータと、ディスク装置の三層モデルにおけるデータの例を示す図である。
【図１５】高次コンテキストのビットテーブルデータ構造を示す図である。
【図１６】コンテキスト参照処理及び高次コンテキスト推定処理における、ロボットと、コンピュータと、ディスク装置の三層モデルにおけるデータの例を示す図である。
【図１７】高次コンテキスト推定のためのクラスリング処理の例を示す図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して、本発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。また、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことに留意されたい。
【００２５】
図１は、本発明を実施するための構成要素を示す概要図である。図１において、ロボット１１０は、画像認識、音声認識などにより、特定の個人、その他の対象物を識別するインテリジェント機能を有する。図１の例ではロボット１１０は、予め登録されている個人の顔情報、声情報などに基づき、テーブル１１２の向こうにいる人間１１４及び１１６を識別する。
【００２６】
ロボット１１０は、例えばIEEE 802.11gなどの無線ＬＡＮ通信機能をもつ通信装置を備えており、無線ＬＡＮステーション１２０を介して、パーソナル・コンピュータ１３０に、個人の識別情報を含む１次コンテキスト情報を送信する。
【００２７】
パーソナル・コンピュータ１３０は、受信した１次コンテキスト情報に基づき、どの個人とどの個人が同じ場所にいるなどの２次コンテキスト情報を生成し、ハードディスク・ドライブに記録する。最近、パーソナル・コンピュータ１３０のハードディスク・ドライブも５００ＧＢ程度の大容量のものが普通に搭載されるようになってきているが、パーソナル・コンピュータ１３０は、ロボット１１０から連綿と送られている情報をハードディスク・ドライブに記録し続けるので、そのまま放置すると、ハードディスク・ドライブが一杯になる。
【００２８】
そこでパーソナル・コンピュータ１３０は、例えば、インターネット１４０を介してアクセスされるクラウド・コンピューティングのストレージ・サービスを利用して、ハードディスク・ドライブに記録した２次コンテキスト情報を、ストレージ・サービスによって提供されるストレージ領域（ディスク装置）１５０に定期的に書き出し、ハードディスク・ドライブの２次コンテキスト情報を削除するようにする。
【００２９】
尚、２次コンテキスト情報をストレージ・サービスによって提供されるストレージ領域１５０にそのまま書き出すと、ストレージ・サービスによって提供されるストレージ領域１５０は、安価で大容量であるが、アクセス制御などのセキュリティ保護機構は十分に施されていないので、第三者が２次コンテキスト情報を入手することが困難ではなく、プライバシーやセキュリティの問題が生じる。
【００３０】
そこで、ロボット１１０は、認識した個人特有の暗号キーを生成し、パーソナル・コンピュータ１３０に送る。パーソナル・コンピュータ１３０は、ストレージ・サービスによって提供されるストレージ領域１５０に２次コンテキスト情報を書き込む際に、当該の２次コンテキスト情報に関連する個人の暗号キーで２次コンテキスト情報を暗号化してストレージ領域１５０に書き込む。こうしておくことで、第三者が２次コンテキスト情報を入手しても、その中身を理解することが実質的に不可能になる。
【００３１】
尚ここで、ストレージ領域１５０は、複数のディスク装置からなっていてもよい。それは、クラウド・コンピューティングのストレージ・サービス以外に、ネットワーク接続されたＮＡＳやＳＡＮでもよく、あるいは、ＵＳＢ接続されたローカル・ディスクであってもよい。このようにストレージ領域１５０が複数のディスク装置からなるときは、そのうちの特定のディスク装置をデフォルト・ディスク装置とし、その以外のディスク装置に対しても優先順位をつけておくようにする。
【００３２】
次に、図２のブロック図を参照して、ロボット１１０のハードウェア構成について説明する。ロボット１１０は結局、組み込みコンピュータ・システムであって、バス２０２をもち、バス２０２には、ＣＰＵ２０４、主記憶（ＲＡＭ）２０６、不揮発性記憶装置としてのフラッシュ・メモリ２０８が接続されている。フラッシュ・メモリ２０８には、Ｌｉｎｕｘ（商標）のような組み込み用オフペレーティング・システム、画像認識、音声認識、アクチュエータ・コントローラなどのロボット用制御プログラム等が格納されている。ＣＰＵ２０４としては、パーソナル・コンピュータに使用されているような６４ビットまたは３２ビットの、ＣＩＳＣまたはＲＩＳＣアキーテクチャのマイクロプロセッサでよい。また、不揮発性記憶装置として、フラッシュメモリの代わりに、あるいは付加的にハードディスク・ドライブを装備してもよい。
【００３３】
バス２０２にはさらに、所定のインターフェース２１０を介して、画像センサ２１２が接続されている。画像センサ２１２は好適にはＣＣＤを備えるものであるが、ＣＭＯＳを使ったより安価なものでもよい。画像センサ２１２は、人や対象物を画像認識して識別するために使用される。
【００３４】
バス２０２にはさらに、Ａ／Ｄ変換器などの所定のインターフェース２１４を介して、マイク２１６が接続されている。マイク２１６は、人が話す声を音声認識して識別するために使用される。
【００３５】
バス２０２にはさらに、アクチュエータ制御部２１８を介して、歩行用の車輪などのアクチュエータ２２０が接続されている。アクチュエータ２２０は、回転モータ、ステッピング・モータなどの電動駆動源を含み、サーボ制御の仕組みで制御を行う。ロボット１１０が二足歩行タイプのロボットである場合、アクチュエータ制御部２１８は、複雑な制御を要するが、この発明の主題ではないので、ここでは詳しく述べない。
【００３６】
バス２０２にはさらに、Ｄ／Ａ変換器などの所定のインターフェース２２２を介して、スピーカ２２４が接続されている。スピーカ２２４は、音声合成モジュールによって合成された音声を出力するために使用される。
【００３７】
バス２０２にはさらに、IEEE802.11gなどの方式により無線ＬＡＮステーションと通信するための通信カード２２６が接続されている。
【００３８】
バス２０２にはさらに、ＵＳＢインターフェース２２８が接続されている。ＵＳＢインターフェース２２８は例えば、パーソナル・コンピュータ１３０とＵＳＢケーブルで接続して、パーソナル・コンピュータ１３０を介して、コマンドや文字列などを打ち込み、ロボット１１０に設定したり、情報を記憶させたりするために使用される。
【００３９】
図示しないが、ロボット１１０は、電力源として、リチウムイオン電池、ニッケルカドミウム電池、ニッケル水素電池などの充電池を備える。充電池は例えば、ＵＳＢインターフェース２２８を介して、電源プラグに接続されたＡＣアダプター（図示しない）によって充電される。
【００４０】
ロボット１１０は、図示しないが、用途に応じて、赤外線センサなどの近接センサ、ポテンショメータなどの変位センサ、傾斜センサ、圧力センサ、加速度センサ、ＧＰＳなどを備えていてもよい。
【００４１】
図３は、ロボット１１０の機能構成を示すブロック図である。画像認識モジュール３０２は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。画像認識モジュール３０２は、画像センサ２１２から取り込まれた画像に対して、閾値処理、エッジ処理、雑音除去、色抽出、ラベリングなどの処理を施して、対象の画像の特徴を抽出する機能をもつ。
【００４２】
音声認識モジュール３０４は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。音声認識モジュール３０４は、マイク２１６からアナログの音声信号を取り込み、Ａ／Ｄ変換、離散フーリエ変換、メルフィルタ離散コサイン変換などの処理を経て、声紋、イントネーションなどの話者特徴や、会話の内容を認識・抽出する機能をもつ。
【００４３】
対象登録モジュール３０６は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。対象登録モジュール３０６は、パーソナル・コンピュータ１３０をロボット１１０にＵＳＢケーブルによって接続された状態で使用される。すなわち、ロボット１１０の画像センサ２１２が、人などの対象を捉えている状態、あるいは、対象としての人の声をマイク２１６が捉えている状態で、対象登録モジュール３０６は、画像認識モジュール３０２または音声認識モジュール３０４の一方、あるいは両方を起動し、その認識結果を、登録された対象３０８としてフラッシュ・メモリ２０８に格納する。その際、対象登録モジュール３０６は、パーソナル・コンピュータ１３０の画面に、認識した対象の実名を入力するようにプロンプトする。それに応答して、パーソナル・コンピュータ１３０のユーザが実名を入力すると、対象登録モジュール３０６は、実名に対応する一意的な識別名と、コンテキスト鍵を生成して、実名−識別名対応表３１０を作成して、好適にはフラッシュ・メモリ２０８に保存する。対象登録モジュール３０６による対象登録動作が終了すると、好適には、ロボット１１０とパーソナル・コンピュータ１３０の間のＵＳＢケーブルは、外すようにする。なお、ロボット１１０とパーソナル・コンピュータ１３０は無線ＬＡＮで接続されているので、対象登録動作は、ＵＳＢケーブル接続でなく、無線ＬＡＮ経由で行うようにしてもよい。また、実名の入力は、キーボーでなく、音声入力でもよい。
【００４４】
対象識別モジュール３１２は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。対象識別モジュール３１２は、ロボット１１０の通常動作の間、画像認識モジュール３０２または音声認識モジュール３０４によって識別された特徴データを、既存の登録された対象３０８のデータと比較して、登録された対象３０８のデータのうち、ある範囲の近さの特徴データをもつ対象を選ぶ。
【００４５】
１次コンテキスト抽出モジュール３１４は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。１次コンテキスト抽出モジュール３１４は、画像認識モジュール３０２または音声認識モジュール３０４によって識別された特徴データ自体から、どの対象がどこにいる、というような１次コンテキストのみを抽出して、１次コンテキスト３１６として書き出す機能をもつ。一旦１次コンテキスト３１６が抽出されると、画像センサ２１２やマイク２１６などのセンス・データは維持する必要がなくなるので、好適には削除される。一般的に、もともと、ロボット１１０の不揮発記憶装置の容量は限られているので、大容量の画像データを保持し続けることはできない。
【００４６】
識別名−時区間対応表作成モジュール３１８は、１次コンテキスト抽出モジュール３１４が１次コンテキストを抽出したときの時間の情報と、１次コンテキストの対象に対応する識別名のエントリを含む識別名−時区間対応表３２０を作成して好適にはフラッシュ・メモリ３２０に格納する。その際、対象の実名と識別名の対応は、実名−識別名対応表３１０のテーブルをルックアップすることで取得される。
【００４７】
送信データ作成モジュール３２２は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。送信データ作成モジュール３２２は、好適には、ロボット１１０から直接、ディスク装置１５０に、鍵で暗号化したコンテキストを書き込む第１のモードと、ロボット１１０からパーソナル・コンピュータ１３０に一旦実名−識別名対応表３１０から実名を除去した情報と、１次コンテキスト３１６と、識別名−時区間対応表３２０の情報をとりまとめて送って、それらの情報をパーソナル・コンピュータ１３０で一旦キャッシュし、パーソナル・コンピュータ１３０で鍵情報で暗号化してからディスク装置１５０に送る第２のモードとをもつ。第１のモードでは、無線ＬＡＮステーション１２０がルータの役割も果たす場合、無線ＬＡＮステーション１２０から直接、暗号化したコンテキストの情報を、ディスク装置１５０に書き込むことができる。
【００４８】
鍵処理モジュール３２６は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。鍵処理モジュール３２６は、通信モジュール３２４を介してパーソナル・コンピュータ１３０から受け取った時区間の情報に基づき、識別名−時区間対応表３２０と、実名−識別名対応表３１０とから、対応するコンテキスト鍵の情報を取得して、通信モジュール３２４を介して、パーソナル・コンピュータ１３０に送る。鍵処理モジュール３２６はさらに、パーソナル・コンピュータ１３０から通信モジュール３２４を介して所定のコマンドを受け取ることにより、実名−識別名対応表３１０から、所定の対象の鍵を含むエントリを削除する機能ももつ。
【００４９】
コンテキスト参照モジュール３２８は、フラッシュ・メモリ２０８に格納されていて、必要に応じて主記憶２０６にロードされて実行される。コンテキスト参照モジュール３２８は、画像センサ２１２やマイク２１６などが所定の状況を検出するなどの事象にトリガされて、通信モジュール３２４を介してパーソナル・コンピュータ１３０に、コンテキストに関連する鍵とともに、コンテキストを参照するコマンドを送る。コンテキストに関連する鍵は、鍵処理モジュール３２６に要求して取得する。それに応答して、コンテキスト情報がパーソナル・コンピュータ１３０から送られると、コンテキスト参照モジュール３２８は、スピーカ２２４を使って音声を出す、あるいは、アクチュエータ２２０を駆動して、外界に働きかける。
【００５０】
ロボット１１０は、電源を切るときは、ＲＡＭ２０６上にある対応表のデータをロボット１１０の所定の鍵で暗号化してパーソナル・コンピュータ１３０に送り、パーソナル・コンピュータ１３０はその情報をハードディスク・ドライブに書き込む。ロボット１１０は、電源再投入時には、パーソナル・コンピュータ１３０からその情報を読み込み、ロボット１１０の所定の鍵で複号して再びＲＡＭ２０６上に、対応表のデータを配置する。
【００５１】
次に、図４を参照して、パーソナル・コンピュータ１３０の構成を説明する。図４において、パーソナル・コンピュータ１３０は、ＣＰＵ４０４、主記憶４０６、ハードディスク・ドライブ４０８をもち、これらは、バス４０２に接続されている。バス４０２には更に、ディスプレイ・コントローラ４１０と、通信インターフェース４１４と、無線ＬＡＮカード４１６と、ＵＳＢインターフェース４１８と、オーディオ・インターフェース４２０と、キーボード・マウス・コントローラ４２６が接続されている。ディスプレイ・コントローラ４１０には、好適には、ＬＣＤディスプレイ４１２が接続されている。
【００５２】
通信インターフェース４１４は、インターネット１４０を介して、クラウド・サービスのディスク装置１５０に接続される。尚、無線ＬＡＮステーション１２０がルータとしても機能するものであるなら、通信インターフェース４１４を用いないで、無線ＬＡＮカード４１６と無線ＬＡＮステーション１２０を介して、クラウド・サービスのディスク装置１５０に接続するようにしてもよい。
【００５３】
ＵＳＢインターフェース４１８は、ＵＳＢケーブルで接続して、ロボット１１０に対象を登録する処理を行うために使用される。
【００５４】
オーディオ・インターフェース４２０には、スピーカ４２２と、マイク４２４が接続されている。
【００５５】
キーボード・マウス・コントローラ４２６には、キーボード４２８と、マウス４３０が接続されている。キーボード４２８は、対象の実名などを打ち込むために使用される。
【００５６】
ＣＰＵ４０４は、例えば、３２ビット・アーキテクチャまたは６４ビット・アーキテクチャに基づく任意のものでよく、インテル社のＰｅｎｔｉｕｍ（インテル・コーポレーションの商標）４、Ｃｏｒｅ（商標）２  Ｄｕｏ、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。
【００５７】
ハードディスク・ドライブ４０８には、少なくとも、オペレーティング・システムと、本発明用の処理プログラムが保存されており、システムの起動時に、オペレーティング・システムは、主記憶４０６にロードされる。オペレーティング・システムは、Ｗｉｎｄｏｗｓ  ＸＰ（マイクロソフト・コーポレーションの商標）、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ（マイクロソフト・コーポレーションの商標）、Ｗｉｎｄｏｗｓ（マイクロソフト・コーポレーションの商標）  ７、Ｌｉｎｕｘ（Linus Torvaldsの商標）などを使用することができる。
【００５８】
ハードディスク・ドライブ４０８には更に、対象登録モジュール５０２、暗号化コンテキスト送信モジュール５０４、コンテキスト参照モジュール５０６、鍵取得モジュール５１０、高次コンテキスト推定モジュール５１２、コンテキスト暗号化モジュール５１４が、Ｃ、Ｃ＋＋、Ｊａｖａ(R)などのプログラミング言語で書かれ、実行可能形式のファイルとして保存されている。
【００５９】
次に、図５を参照して、パーソナル・コンピュータ１３０に格納されている、本発明に関連する処理モジュールの機能的構成を説明する。図５において、対象登録モジュール５０２は、ＵＳＢインターフェース４１８を介してロボット１１０に接続され、ロボット１１０の対象登録モジュール３０６と協働して、対象登録処理を行う。対象登録モジュール５０２は、パーソナル・コンピュータ１３０のキーボード４２８からの実名入力を受け入れることである。
【００６０】
暗号化コンテキスト送信モジュール５０４は、無線ＬＡＮカード４１６を介してロボット１１０から送られてきたデータのうちの暗号化コンテキストの部分を、通信モジュール４１４を介して、ディスク装置１５０に書き込む機能をもつ。
【００６１】
コンテキスト参照モジュール５０６は、ハードディスク・ドライブ４０８に保存され、実行時に主記憶４０６にロードされて実行される。コンテキスト参照モジュール５０６は、パーソナル・コンピュータ１３０のユーザーが入力した時区間などの情報を基に、ディスク装置１５０から、通信モジュール４１４を介して、暗号化コンテキスト情報を読み込む。暗号化コンテキスト情報は、そのままでは内容が読めないので、コンテキスト復号モジュール５０８に引き渡される。
【００６２】
コンテキスト復号モジュール５０８は、鍵取得モジュール５１０を利用して、識別名に対応する鍵を入手することで、暗号化コンテキストを復号化して、高次コンテキスト推定モジュール５１２に渡す。
【００６３】
鍵取得モジュール５１０は、コンテキスト復号モジュール５０８から鍵の取得を要求されると先ず、識別名−鍵対応表キャッシュ５２０に鍵を探しにいき、そこで見つかると、コンテキスト復号モジュール５０８に鍵を渡す。識別名−鍵対応表キャッシュ５２０に鍵が見つからない場合は、鍵取得モジュール５１０は、無線ＬＡＮカード４１６を介して、ロボット１１０にアクセスして鍵を取得する。具体的には、鍵取得モジュール５１０からの要求に従い、ロボット１１０の鍵処理モジュール３２６が、実名−識別名対応表３１０にアクセスして、鍵を入手し、鍵取得モジュール５１０に送り返す。
【００６４】
なお、キャッシュとして、パーソナル・コンピュータ１３０は、識別名−時区間対応表キャッシュ５１８と、識別名−鍵対応表キャッシュ５２０と、コンテキスト・キャッシュ５２２をもつ。これらのキャッシュは、ロボット１１０から識別名−時区間対応表と、実名−識別名対応表と、コンテキストを受け取ったとき、好適には、主記憶４０６上に配置される。コンテキスト・キャッシュ５２２には、コンテキスト復号モジュール５０８が復号したコンテキストをも、格納される。コンテキスト・キャッシュ５２２のエントリは、時区間、識別名、コンテキスト、及びキャッシュの有効期限からなる。
【００６５】
コンテキスト復号モジュール５０８が復号したコンテキスト情報は、高次コンテキスト推定モジュール５１２によって、高次コンテキストを推定するために使用される。ここで高次コンテキストとは、複数の対象がある時間に同じ場所にいる、などの情報である。高次コンテキスト推定モジュール５１２の処理の詳細については、後述する。
【００６６】
コンテキスト暗号化モジュール５１４は、コンテキスト復号モジュール５０８によって生成された高次コンテキストの情報を、その高次コンテキストに関与する対象に対応する鍵で暗号化して、ディスク装置１５０に書き込む。これにより、鍵をもたない第三者がディスク装置１５０上の高次コンテキストの情報を読み取っても、意味がある内容を把握することができなくなる。
【００６７】
パーソナル・コンピュータ１３０は、推定により得られた高次コンテキストを、会議でのアシスタント、ホーム警護などの目的に使用することができる。
【００６８】
図６は、本発明における、ロボット１１０／コンピュータ１３０／ディスク装置１５０という３層構造と、処理の流れを模式的に示す図である。
【００６９】
図示されているように、この３層構造には、主として、４つの処理が関与する。先ず、処理１は、対象、すなわち人やモノの登録であり、ロボット１１０で実行される。この処理により、ロボット１１０において、実名−識別名対応表３１０と、識別名−時区間対応表３２０が、好適にはロボット１１０のＲＡＭ２０６上に生成される。
【００７０】
次に処理２は、コンテキスト生成時処理であって、ロボット１１０とコンピュータ１３０が処理に関与する。処理２において、ロボット１１０で生成されたコンテキストは、第１のモードでは、対応する鍵で暗号化されて、直接、ディスク装置１５０に書き込まれる。ロボット１１０において、生成されたコンテキストが、ロボット１１０のＲＡＭ２０６上に配置される。また、第２のモードでは、ロボット１１０で生成されたコンテキストは、一旦コンピュータ１３０に送られ、そこでコンテキスト・キャッシュ５２２として主記憶４０６に保持されるとともに、対応する鍵で暗号化されて、ディスク装置１５０に書き込まれる。
【００７１】
処理３は、コンテキスト参照処理であって、ロボット１１０とコンピュータ１３０とディスク装置１５０が関与する。コンテキスト参照処理は、ロボット１１０が、好適にはコンピュータ１３０からの要求に応じて、参照したいコンテキストに関連する鍵をコンピュータ１３０に送ることで開始される。それに応答して、コンピュータ１３０は、ディスク装置１５０から、解析対象コンテキストを読み取る。読み取ったコンテキストからコンピュータ１３０は、高次コンテキストを推定し、その結果をロボット１１０に返す。ロボット１１０は、その結果を用いて、外界に対して働きかけを行う。コンピュータ１３０は一方で、生成した高次コンテキストを、対応する鍵で暗号化して、ディスク装置１５０に書き込む。こうしておくことで、同様のコンテキスト参照処理があった場合に、コンピュータ１３０は、ディスク装置１５０から再度高次コンテキストの情報を取得するだけで、改めて高次コンテキスト推定処理を行う必要がなくなる。
【００７２】
処理４は、認識対象削除時処理であって、ロボット１１０とコンピュータ１３０が関与する。認識対象削除時処理は、コンピュータ１３０の鍵削除モジュール５１６からの要求に従い、ロボット１１０の実名−識別名対応表３１０における、要求があった対象に対応することである。それとともに、認識対象削除時処理は、コンピュータ１３０における識別名−鍵対応表キャッシュ５２０からも鍵を削除する。
【００７３】
次に、図７〜図１３のフローチャートを参照して、上記処理１〜４の内容について説明する。
【００７４】
先ず、図７のフローチャートは、処理１に関するものである。この処理は例えば、ロボット１１０と、コンピュータ１３０をＵＳＢケーブルで接続することによってトリガされる。一旦トリガされると、ロボット１１０の対象登録モジュール３０６が動作する。なお、前述のように、ロボット１１０とコンピュータ１３０は、ＵＳＢケーブルでなく、無線ＬＡＮで接続してもよい。
【００７５】
対象登録モジュール３０６は、ステップ７０２で、人やモノを登録すると判断すると、ステップ７０４で実名をコンピュータ１３０のディスプレイ４１２で入力するようにプロンプトし、人やモノの画像を画像センサ２１２に映しつつ、あるいは、人の声をマイク２１６で集音しつつ、オペレータがディスプレイ４１２上に表示されたメニューで実名Niを入力して改行キーを押すことにより、実名とその画像あるいは音声の特徴成分のデータを、フラッシュ・メモリ２０８に保存しつつ、ステップ７０６で、実名に対応して、新しいエントリを登録する。
【００７６】
ステップ７０８では、対象登録モジュール３０６は、実名Niに対応して、識別名PNiと、暗号鍵KPNiを生成する。実名−識別名対応表３１０の内容の例を図１４に示す。図示されているように、暗号鍵は、コンテキスト鍵とも呼ばれる。識別名PN1は、乱数生成、その他のアルゴリズムをもちいて、少なくも１台のロボットの範囲で一意的になるように対象登録モジュール３０６が生成する。また、これには限定されないが、ここでは暗号方式はＡＥＳ(Advanced Encription Standard)方式を用いるものとし、その鍵長は128ビットであるとする。このような鍵KPNiは、乱数、その他のアルゴリズムをもちいて生成することができる。
【００７７】
ステップ７０２に戻って、他にも登録すべき人またはモノがある場合、ステップ７０４で、登録すべく別の人やモノの画像を画像センサ２１２に映しつつ、あるいは、人の声をマイク２１６で集音しつつ、オペレータがディスプレイ４１２上に表示されたメニューで実名Niを入力して改行キーを押すことにより、実名とその画像あるいは音声の特徴成分のデータを、フラッシュ・メモリ２０８に保存しつつ、ステップ７０６で、実名に対応して、新しいエントリを登録する。ステップ７０８では、対象登録モジュール３０６は、実名Niに対応して、識別名PNiと、暗号鍵KPNiを生成する。
【００７８】
こうして、所望のすべての人またはモノの登録を行うと、ステップ７１０に進む。ステップ７１０はオプションであって、時間コンテキスト鍵を生成する場合の処理である。すなわち、時間コンテキスト鍵を生成する場合、一定時間毎に鍵を生成し、実名−識別名対応表３１０を更新してもよい。
【００７９】
次に、図８のフローチャートを参照して、処理２（コンテキスト生成時処理）について説明する。図８のステップ８０２では、対象識別モジュール３１２が、センサ情報、すなわち、画像センサ２１２またはマイク２１６の認識結果に基づき、登録された情報３０８が識別したデータに基づき、１次コンテキスト抽出モジュール３１４が、コンテキストC1 - Ckを抽出する。ここで、コンテキストとは、基本的には、「人やモノのある時間の状況」を表現するものであり、具体的には図１４のデータ１４０２に、１次コンテキストとして示すように、{時区間,状況,人やモノ,確からしさ}からなるが、これは一例であって、例えば、確からしさはオプションでよい。なお、確からしさとは、１次コンテキスト推定処理の推定の確からしさのことである。
【００８０】
ステップ８０４では、送信データ作成モジュール３２２が、実名−識別名対応表３１０を参照して、コンテキストC1 - Ckに関連づけられる実名N1 - Nkを同定する。
【００８１】
ステップ８０４ではさらに、送信データ作成モジュール３２２が、実名N1 - Nkに対応付いた識別名PN1 - PNkとコンテキスト鍵KPN1 - KPNkを、実名−識別名対応表３１０から取得する。このようにして作成されたデータの例は、図１４で参照番号１４０２で示すようなものである。なお、データ１４０２において、Vsは視覚的に存在、Vcは音として存在という状況に対応する。
【００８２】
ステップ８０８では、送信データ作成モジュール３２２が、コンテキストをディスク装置１５０に送るか、あるいは、コンピュータ１３０に送るかを判断する。この判断は、周期的でよい。例えば、回数を記録し、奇数回ではディスク装置１５０に送り、偶数回ではコンピュータ１３０に送るとか、回数をある法で割り、その剰余の値に応じて、ディスク装置１５０に送るモードと、コンピュータ１３０に送るモードを切り替えるようにしてもよい。
【００８３】
送信データ作成モジュール３２２がコンテキストをディスク装置１５０に送るべきと判断した場合は、ステップ８１０に進み、そこで、i = 1からmまでで、PNi、Ci、認証子AC、乱数rを接続してmsgiを生成し、KPNiで暗号化する。この際の暗号化方式は、上述のようにＡＥＳである。このようなメッセージmsgの暗号化方式を図１１を参照して説明する。すなわち、ステップ１１０２では、乱数rを発生する。次のステップ１１０４では、ACを定数の認証子として、Msg = {PNi|Ci|AC|r}で、Msgを生成する。次にステップ１１０６で、Msg自体を、E = EncK(Msg)により暗号化する。
【００８４】
msgiを生成すると、送信データ作成モジュール３２２は、デフォルト・ディスク装置が利用可能かどうか判断する。デフォルト・ディスク装置が利用可能でなければ、ステップ８１４で優先順位に従い、代替ディスク装置に切り替え、ともかく利用可能なディスク装置に対して、ステップ８１６で、送信データ作成モジュール３２２は、該当する時区間[t1s - t1e],...,[tms - tme]と、msg1 - msgmを送信する。こうしてディスク装置１５０に送られたデータは例えば、図１４の参照番号１４０４に示すように、時区間と暗号化コンテキストからなる。
【００８５】
一方、送信データ作成モジュール３２２がコンテキストをコンピュータ１３０に送るべきと判断した場合は、ステップ８０８からステップ８１８に分岐し、そこで、i = 1からmまでで、図１１に示すように、PNi、Ci、認証子AC、乱数rを接続してmsgiを生成し、通信時暗号化してコンピュータ１３０に送る。
【００８６】
ステップ８２０では、コンピュータ１３０が、受け取った送信データを、識別名−鍵対応表キャッシュ５２０と、識別名−時区間対応表キャッシュ５１８と、コンテキスト・キャッシュ５２２に格納して、ステップ８１０に進む。尚、このときのコンピュータ１３０におけるメッセージ受領ステップは、図１２に示すように、ステップ１２０２で暗号文Eを鍵Kで復号し、ステップ１２０４で復号された結果に対して、{PNi|Ci|AC~|r}の書式でデータ分割し、ステップ１２０６でAC~ = ACかどうか判断し、もしそうならステップ１２０８で復号成功であり、そうでないなら、ステップ１２１０で復号失敗と判断する。
【００８７】
図１４のデータ１４０６は、コンピュータ１３０からディスク装置１５０に送るために用意されたものであり、基本的にデータ１４０４と同一のフォーマットである。
【００８８】
ステップ８２２では、識別名−時区間対応表作成モジュール３１８が、i = 1 to kで、Ciの時区間[ti,a - ti,b]に対応付けられる識別名PN1,...,PNkを取り出す。
【００８９】
ステップ８２４では、識別名−時区間対応表作成モジュール３１８は、ti,a - ti,bに対応する識別名−時区間対応表作成の時区間が存在するかどうか判断し、もしそうでなければステップ８２６で識別名−時区間対応表３２０に時区間を作成し、ステップ８２４では、識別名−時区間対応表３２０の該当する時区間にPN1,...,PNkを追加する。
【００９０】
次に、図９及び図１０のフローチャートを参照して、処理３（コンテキスト参照時処理）について説明する。図９において、ステップ９０２では、コンテキスト参照モジュール５０６に対して、コンテキスト推定処理を行う時区間[ta - tb]が設定される。これは例えば、コンピュータ１３０のユーザが、ディスプレイ４１２上に表示された所定のメニューから、キーボード４２８などを用いて打ち込むことによって行われる。
【００９１】
コンテキスト推定処理を行う時区間[ta - tb]が設定されると、コンテキスト参照モジュール５０６は、ステップ９０４で、時区間[ta - tb]に対して、識別名−時区間対応表キャッシュ５１８に該当するエントリがあるかどうか判断する。
【００９２】
もしあるなら、ステップ９０６で、コンテキスト参照モジュール５０６は、識別名−時区間対応表キャッシュ５１８から、該当する識別名を取り出し、コンテキスト・キャッシュ５２２から、コンテキストtis,tie,PNi,Ciを取り出す。
【００９３】
一方、ステップ９０４で、時区間[ta - tb]に対して、識別名−時区間対応表キャッシュ５１８に該当するエントリがないと判断されると、コンテキスト参照モジュール５０６は、ディスク装置１５０にアクセスして、該当する時区間[ta - tb]のコンテキスト・データE1 - Enを取得する。
【００９４】
ステップ９１０では、鍵取得モジュール５１０が、無線ＬＡＮ経由でロボット１１０にアクセスして、実名−識別名対応表３１０から時区間[ta - tb]に対応する鍵を取得する。
【００９５】
ステップ９１２では、コンテキスト復号モジュール５０８が、i = 1,...,nにつき、E1 - Enを、取得したコンテキスト鍵KPNiで復号する。
【００９６】
ステップ９１４では、コンテキスト復号モジュール５０８が、識別子ACが正しく復号された復号結果のtis,tie,PNi,Ciを、コンテキスト・キャッシュ５２２に登録する。この復号処理については、図１２のステップを参照されたい。特にステップ９１４の詳細は、図１０のフローチャートを参照して、後で説明する。
【００９７】
ステップ９０６、あるいは、ステップ９１４からは、ステップ９１６に進み、そこで、高次コンテキスト推定モジュール５１２が、高次コンテキスト推定処理を実施する。高次コンテキスト推定処理については、後で処理詳細に説明する。
【００９８】
ステップ９１８では、コンテキスト暗号化モジュール５１４が、推定された高次コンテキストを暗号化して、ディスク装置１５０に書き込む。
【００９９】
ステップ９２０では、高次コンテキスト推定モジュール５１２が推定された高次コンテキストをロボットに送り、ロボットは、送られた高次コンテキストに含まれる識別名を必要に応じて、実名−識別名対応表３１０を参照して実名に置き換えつつ、その情報に基づき、外界に適宜働きかける。
【０１００】
図１０は、図９のステップ９１４をより詳細に説明するフローチャートである。図１０のステップ１００２で、推定された高次コンテキストCH1t1-t2は、低次コンテキストC1-Ckから構成されているとする。そこで高次コンテキスト推定モジュール５１２は、ステップ１００４で、C1-Ckものそれぞれに設定する識別名PN1-PNkを取得し、識別名に相当するビット位置を計算する。そして、ステップ１００６で、登録済み識別名の総数に応じて高次コンテキスト値のビット数を決め、ステップ１００４で得られたビット位置を"1"に、それ以外の位置を"0"にセットした値を高次コンテキスト値とする。図１５に、高次コンテキスト値の例を示す。
【０１０１】
この例で、高次コンテキストCH1t1-t2にPN3が含まれている場合、CH1t1-t2にPN3 = 22 = 4となる。
【０１０２】
また、高次コンテキストCH1t1-t2にPN3とPN5が含まれている場合、CH1t1-t2 = 22 + 24 = 4 + 16 = 20
【０１０３】
図１５の例は８人の識別名に対応するために１バイトであるが、１６人なら２バイトであり、一般にＮ人なら、Ｎを８で割り、割り切れるならＮ／８バイト、割り切れないなら[Ｎ／８]＋１バイトが必要である。なお、[Ｎ／８]は、Ｎ／８の整数部分をあらわす。
【０１０４】
図１０のフローチャートに戻って、ステップ１００８では、コンテキスト暗号化モジュール５１４が識別名に相当するコンテキスト鍵を鍵取得モジュール５１０を介して実名−識別名対応表３１０から取得し、ステップ１００６で得られた高次コンテキスト値をそれぞれ暗号化する。
【０１０５】
低次コンテキストの場合は、次のようにして暗号化が行われる。すなわち、次のような低次コンテキストを考える。
Presence, A, t1-t2
Presence, B, t1-t2
Presence, C, t1-t2
これは、時区間t1-t2に、対象A,B,Cがそれぞれある同じ場所に存在していたことを示す。
【０１０６】
これらはそれぞれ、次のように暗号化される。
t1-t2, EKA(Presence, A)
t1-t2, EKB(Presence, B)
t1-t2, EKC(Presence, C)
ここで、KA, KB, KCはそれぞれ対象A,B,Cのコンテキスト鍵であり、EKA()は、コンテキスト鍵KAによる暗号化である。
【０１０７】
そこで上記低次コンテキストから推定された高次コンテキストをMeeting{A,B,C},t1-t2とする。本発明によれば、これは、次のように暗号化される。
t1-t2, EKA(Meeting{A,B,C})
t1-t2, EKB(Meeting{A,B,C})
t1-t2, EKC(Meeting{A,B,C})
このようにすると、KA, KB, KCのどれでも復号化可能となる。
【０１０８】
ただ、A,B,Cを識別名とすると、例えばその各々が１６バイトからなるとすると、人数が増えてくると、高次コンテキストを表現するのに多くのバイト数を要する。
【０１０９】
そこで本発明によれば、図１５で示すように、高次コンテキストをビットテーブルで表現して、次のように暗号化する。
t1-t2, EKA(Meeting{1,1,1,0,0})
t1-t2, EKB(Meeting{1,1,1,0,0})
t1-t2, EKC(Meeting{1,1,1,0,0})
【０１１０】
次に図１６を参照して、処理３（コンテキスト参照時処理）の具体例を示す。図１６において、ステップＳ１では、コンピュータ１３０がコンテキスト推定処理を行う時区間を設定し、ステップＳ２では、ディスク装置１５０から暗号化コンテキストを取得する。これは図９ではそれぞれ、ステップ９０２とステップ９０８に対応する。なお、図１６では、コンテキストは８０％のような確からしさを含んでいるが、これはオプションでよい。
【０１１１】
ステップＳ３では、コンピュータ１３０が、ロボット１１０から、コンテキスト推定処理する時区間に対応するコンテキスト鍵をロボット１１０に要求する。
【０１１２】
ステップＳ４では、ロボット１１０が、識別名−時区間対応表３２０から対応する識別名を求め、その識別名に基づき更に実名−識別名対応表３１０からコンテキスト鍵を求めて、コンピュータ１３０に返す。
【０１１３】
ステップＳ５では、コンピュータ１３０が、暗号化コンテキストをコンテキスト鍵で復号し、認証子を検証し、コンテキストを復元する。
【０１１４】
ステップＳ６では、コンピュータ１３０が、復元されたコンテキストから、高次コンテキスト推定を行う。
【０１１５】
次に、図１３のフローチャートを参照して処理４（認識対象削除時処理）について説明する。処理４は、コンピュータ１３０のオペレータの操作に応答して、鍵削除モジュール５１６によって開始される。
【０１１６】
ステップ１３０２では、鍵削除モジュール５１６は、{認識対象PNi,[認識時区間tm-tn]}という引数を受け取る。なお、第二引数は省略可能である。
【０１１７】
ステップ１３０４では、鍵削除モジュール５１６は、認識時区間の引数がないかどうかを判断し、もしないなら、ステップ１３０６で、ロボット１１０に、該当する認識対象を実名−識別名対応表３１０から削除するように指示する。併せて、識別名−鍵対応表キャッシュ５２０からも該当する認識対象を削除する。
【０１１８】
認識時区間の引数があるなら、鍵削除モジュール５１６は、ステップ１３０８で、該当する認識対象・時区間を実名−識別名対応表３１０から削除するように指示する。併せて、識別名−時区間対応表キャッシュ５１８と識別名−鍵対応表キャッシュ５２０からも該当する認識対象・時区間を削除する。ちなみに、実際に削除されるのは、該当する認識対象・時区間のコンテキスト鍵だけである。
【０１１９】
このようにすると、該当する認識対象・時区間のコンテキスト鍵が最早入手できなくなるので、ディスク装置１５０上に存在する該当する、暗号化された１次コンテキストは最早復元できなくなるので、実際上、存在しないのと等価になる。
【０１２０】
このような鍵削除は、ある個人から、プライバシーが気になり記録を全て削除してほしいとか、個人が所属するプロジェクトが変わったり、移動したり、退職したなどの事情があったり、ＶＩＰ、お客様のようにそもそも記録してはいけない相手であることが分かったなどの場合に実行される。
【０１２１】
次に、図１７を参照して、コンテキスト推定処理について、説明する。このコンテキスト推定処理は、図示されているように、各対象A, B, C, D, Eの開始時間をX軸、終了時間をY軸として座標で配置し、距離としてユークリッド距離を用いて、K-meansのような方法でクラスタリングすることによって行われる。そうして、対象が同一クラスタに所属していれば、Meetの関係にあるとする。図１７の例では、Meet(A,D)且つMeet(C,E)という高次コンテキストが推定される。
【０１２２】
なお、上記の実施例では、単一のロボットによって認識された１次コンテキストを用いたが、複数のロボットからの１次コンテキストを扱うようにすることができる。その場合、Diffie-Hellmanの鍵共有アルゴリズムに従い、協調コンテキスト鍵を生成して、それを複数のロボット間で共有し、その協調コンテキスト鍵を使用して、上記の実施例における暗号化／復号化の扱いを同様に実行することができる。
【０１２３】
より具体的には、第１のロボットと第２のロボットが協調コンテキスト鍵生成に合意したとする。このとき、合意条件は、対象、時間、場所などである。例えば、認識対象だとAlice、時間制限だと今から１０分間、場所制限だとここから半径１０キロメートル以内、などである。
【０１２４】
そこで合意の後、第１のロボットと第２のロボットはそれぞれ、実名−識別名対応表に、合意したエントリを生成し、コンテキスト鍵も生成する。例えば、第１のロボットが生成するコンテキスト鍵が、K_R1_Aliceであり、第２のロボットが生成するコンテキスト鍵が、K_R2_Aliceである。
【０１２５】
次に、第１のロボットと第２のロボットは互いに協調して大きな素数pと、それより小さい自然数gを決める。
【０１２６】
次に、第１のロボットは下記のyR1を計算して、第２のロボットに送る。
yR1 = gK_R1_Alice mod p
また、第２のロボットは下記のyR2を計算して、第１のロボットに送る。
yR2 = gK_R2_Alice mod p
【０１２７】
こうして、第１のロボットでは、下記を計算する。
K_R1-R2_Alice = yR2K_R1_Alice mod p
また、第２のロボットでは、下記を計算する。
K_R2-R1_Alice = yR1K_R2_Alice mod p
容易に見て取れるように、K_R1-R2_AliceとK_R2-R1_Aliceは同一になるので、協調コンテキスト鍵の共有が果たされたことになる。この後、協調コンテキストを暗号化する場合は、K_R1-R2_AliceまたはK_R2-R1_Aliceを用いる。好適には、協調コンテキスト鍵は、ロボットの実名−識別名対応表にフィールドを追加して格納される。
【０１２８】
以上、特定の実施例に基づき本発明を説明してきたが、本発明はこの特定の実施例に限定されるものではなく、例えば、対象を認識する装置として、ロボット以外にライフログ記録装置、監視カメラ装置など、画像認識と記録を行う任意の装置やシステムに適用可能である。
【０１２９】
また、コンテキスト鍵の暗号アルゴリズムは、ＡＥＳに限定されず、ＤＥＳなど、所定の暗号強度を満たす任意の暗号方式を採用することができる。
【符号の説明】
【０１３０】
２１２  画像センサ
２１６  マイク
２２０  アクチュエータ
２２２  インターフェース
２２４  スピーカ
２２６  通信カード
２２８  インターフェース
３０２  画像認識モジュール
３０４  音声認識モジュール
３０６  対象登録モジュール
３１０  実名−識別名対応表
３１２  対象識別モジュール
３１４  コンテキスト抽出モジュール
３１６  １次コンテキスト
３１８  識別名−時区間対応表作成モジュール
３２０  識別名−時区間対応表
３２２  送信データ作成モジュール
３２４  通信モジュール
３２６  鍵処理モジュール
３２８  コンテキスト参照モジュール
４０４  ＣＰＵ
４０６  主記憶
４０８  ハードディスク・ドライブ
４１２  ディスプレイ
４１４  通信モジュール
４１６  無線ＬＡＮカード
５０２  対象登録モジュール
５０４  暗号化コンテキスト送信モジュール
５０６  コンテキスト参照モジュール
５０８  コンテキスト復号モジュール
５１０  鍵取得モジュール
５１２  高次コンテキスト推定モジュール
５１４  コンテキスト暗号化モジュール
５１６  鍵削除モジュール
５１８  識別名−時区間対応表キャッシュ
５２０  識別名−鍵対応表キャッシュ
５２２  コンテキスト・キャッシュ
【図１】
0005698614.tif 000002
【図２】
0005698614.tif 000003
【図３】
0005698614.tif 000004
【図４】
0005698614.tif 000005
【図５】
0005698614.tif 000006
【図６】
0005698614.tif 000007
【図７】
0005698614.tif 000008
【図８】
0005698614.tif 000009
【図９】
0005698614.tif 000010
【図１０】
0005698614.tif 000011
【図１１】
0005698614.tif 000012
【図１２】
0005698614.tif 000013
【図１３】
0005698614.tif 000014
【図１４】
0005698614.tif 000015
【図１５】
0005698614.tif 000016
【図１６】
0005698614.tif 000017
【図１７】
0005698614.tif 000018