(57)【要約】【課題】利便性の高い暗号化処理を実行すること。【解決手段】他の装置からのアクセスが許容される所定サイズの第１記憶領域と、他の装置からのアクセスが許容されるその所定サイズの第２記憶領域を含むメモリを有する通信装置は、他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する。連結暗号データとは異なるデータが第２記憶領域に保持され、暗号化によって生成された連結暗号データは、所定サイズを超えないサイズを有し、かつ、第１記憶領域に保持される。ここで、複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、連結暗号データに含まれるパディングデータのサイズが小さい。【選択図】図７
2020022056.tif 000002
【特許請求の範囲】
【請求項１】
他の装置からのアクセスが許容される所定サイズの第１記憶領域と、他の装置からのアクセスが許容される前記所定サイズの第２記憶領域を含むメモリを有する通信手段と、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する暗号化手段と、
を有し、
前記連結暗号データとは異なるデータが前記第２記憶領域に保持され、
前記暗号化手段によって生成された前記連結暗号データは、前記所定サイズを超えないサイズを有し、かつ、前記第１記憶領域に保持され、
前記複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、前記連結暗号データに含まれるパディングデータのサイズが小さい、
ことを特徴とする通信装置。
【請求項２】
他の装置からのアクセスが許容される所定サイズの記憶領域を備え、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＬＥ）規格に従う通信を行う通信手段と、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する暗号化手段と、
を有し、
前記暗号化手段によって生成された前記連結暗号データは、前記所定サイズを超えないサイズを有し、かつ、前記記憶領域に保持され、
前記複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、前記連結暗号データに含まれるパディングデータのサイズが小さい、
ことを特徴とする通信装置。
【請求項３】
前記複数のデータのうちの取りうるデータの組み合わせの中から、当該データの組み合わせが連結された場合の連結データのサイズと、前記ブロック暗号化方式におけるブロックサイズとに基づいて、少なくとも１つの組み合わせを選択する選択手段をさらに有する、
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記選択手段は、第１のデータの組み合わせにおける第１連結データのサイズと前記ブロックサイズとの差分の大きさに基づいて定まるパディングデータのサイズが、第２のデータの組み合わせにおける第２連結データのサイズと前記ブロックサイズとの差分の大きさに基づいて定まる前記パディングデータのサイズより小さい場合、前記第１のデータの組み合わせを、前記少なくとも１つの組み合わせのうちの１つとして選択する、
ことを特徴とする請求項３に記載の通信装置。
【請求項５】
前記選択手段は、前記ブロックサイズと前記データの組み合わせごとの前記連結データのサイズとの差分の大きさに基づいて定まるパディングデータのサイズが最小となるデータの組み合わせを、前記少なくとも１つの組み合わせのうちの１つとして選択する、
ことを特徴とする請求項３に記載の通信装置。
【請求項６】
前記選択手段は、前記ブロックサイズと前記データの組み合わせごとの前記連結データのサイズとの差分の大きさに基づいて定まるパディングデータのサイズが所定量より小さいデータの組み合わせを、前記少なくとも１つの組み合わせのうちの１つとして選択する、
ことを特徴とする請求項３に記載の通信装置。
【請求項７】
前記通信手段は、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＬＥ）規格に従って動作する、
ことを特徴とする請求項１に記載の通信装置。
【請求項８】
前記第１記憶領域は、前記ＢＬＥ規格におけるＧｅｎｅｒｉｃ  Ａｔｔｒｉｂｕｔｅ  Ｐｒｏｆｉｌｅのデータベースにおけるキャラクタリスティックに対応し、
前記連結暗号データは前記キャラクタリスティックに保持される、
ことを特徴とする請求項７に記載の通信装置。
【請求項９】
前記通信手段を介して前記通信装置の通信相手となる情報処理装置は、前記第１記憶領域に保持される前記連結暗号データと、前記第２記憶領域に保持される第２の連結暗号データとを読み出し、前記読み出された前記連結暗号データと前記第２の連結暗号データとを復号した復号結果に基づいて前記通信装置との無線接続を確立する、
ことを特徴とする請求項７に記載の通信装置。
【請求項１０】
前記他の装置と通信するための前記通信手段と異なる第２の通信手段をさらに有し、
前記複数のデータは、前記第２の通信手段による通信のための情報を含む、
ことを特徴とする請求項１から９のいずれか１項に記載の通信装置。
【請求項１１】
前記第２の通信手段による通信のための情報は、前記第２の通信手段によって生成されるネットワークの識別子を含む、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記第２の通信手段は、ＩＥＥＥ８０２．１１規格シリーズに従って動作する、
ことを特徴とする請求項１０又は１１に記載の通信装置。
【請求項１３】
前記第２の通信手段を介して受信した印刷ジョブに基づいて印刷処理を実行する印刷制御手段をさらに有する、
ことを特徴とする請求項１０から１２のいずれか１項に記載の通信装置。
【請求項１４】
他の装置からのアクセスが許容される所定サイズの第１記憶領域と、他の装置からのアクセスが許容される前記所定サイズの第２記憶領域を含むメモリを有する通信手段を備えた通信装置の制御方法であって、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する暗号化工程と、
前記暗号化工程において生成された前記連結暗号データを前記第１記憶領域に保持させる工程と、
前記連結暗号データとは異なるデータを前記第２記憶領域に保持させる工程と、
を有し、
前記暗号化工程において生成された前記連結暗号データは、前記所定サイズを超えないサイズを有し、
前記複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、前記連結暗号データに含まれるパディングデータのサイズが小さい、
ことを特徴とする制御方法。
【請求項１５】
他の装置からのアクセスが許容される所定サイズの記憶領域を備え、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＬＥ）規格に従う通信を行う通信手段を有する通信装置の制御方法であって、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する暗号化工程と、
前記暗号化工程において生成された前記連結暗号データを前記記憶領域に保持させる工程と、
を有し、
前記暗号化工程において生成された前記連結暗号データは、前記所定サイズを超えないサイズを有し、
前記複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、前記連結暗号データに含まれるパディングデータのサイズが小さい、
ことを特徴とする制御方法。
【請求項１６】
コンピュータを、請求項１から１３のいずれか１項に記載の通信装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをブロック暗号を用いて暗号化する技術に関する。
【背景技術】
【０００２】
近年、Ｂｌｕｅｔｏｏｔｈ（登録商標）を用いた近距離無線通信機能を有する電子機器が普及している。例えば、スマートフォン等の情報処理装置とプリンタ等の通信装置との間の通信などに、Ｂｌｕｅｔｏｏｔｈが用いられる場合がある。電子機器は、Ｂｌｕｅｔｏｏｔｈによる近距離無線通信を行う場合、その通信相手とペアリングを行うことが特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１５０４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、無線通信のセキュリティ向上に伴い、より利便性の高い暗号化処理が求められるようになってきた。
【０００５】
本発明は上記課題に鑑みてなされたものであり、利便性の高い暗号化処理に関する技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様による通信装置は、他の装置からのアクセスが許容される所定サイズの第１記憶領域と、他の装置からのアクセスが許容される前記所定サイズの第２記憶領域を含むメモリを有する通信手段と、前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータに対してブロック暗号化方式を用いて暗号化することにより連結暗号データを生成する暗号化手段と、を有し、前記連結暗号データとは異なるデータが前記第２記憶領域に保持され、前記暗号化手段によって生成された前記連結暗号データは、前記所定サイズを超えないサイズを有し、かつ、前記第１記憶領域に保持され、前記複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、前記連結暗号データに含まれるパディングデータのサイズが小さい、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、利便性の高い暗号化処理を実行することができる。
【図面の簡単な説明】
【０００８】
【図１】通信システム内の装置の構成例を示す図である。
【図２】近距離無線通信部の構成例を示すブロック図である。
【図３】ＧＡＴＴのデータ形式を示す図である。
【図４】鍵シードを生成して保存する処理の流れの例を示す図である。
【図５】キャラクタリスティックに暗号化したデータを書き込む処理の流れの例を示す図である。
【図６】ＧＡＴＴのデータの例を示す図である。
【図７】暗号データの生成処理を概略的に説明する図である。
【図８】鍵シードの公開／非公開を設定する処理の流れの例を示す図である。
【図９】プリンタ登録処理の流れの例を示す図である。
【図１０】ＢＬＥ経由で情報を取得する処理の流れの例を示す図である。
【図１１】連結暗号データの復号処理を概略的に説明する図である。
【図１２】ＧＡＴＴのデータの別の例を示す図である。
【図１３】暗号データの生成処理を概略的に説明する図である。
【図１４】連結暗号データの復号処理を概略的に説明する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。なお、本発明は、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて以下に記載する実施形態に対して適宜変更が加えられたものについても、その範囲に含むことが理解されるべきである。
【００１０】
（通信システムの構成）
図１に、本実施形態に係る通信システムとシステム内の装置の構成例を示す。通信システムは、例えば、情報処理装置１０１、アクセスポイント１３１、及び、通信装置１５１を含んで構成される。情報処理装置１０１は、例えば、スマートフォン、携帯端末、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレット端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルカメラ等の任意の情報処理装置である。なお、以下では、情報処理装置１０１はスマートフォンであるものとする。また、通信装置１５１は、例えばプリンタであるが、情報処理装置１０１と無線通信を行うことが可能である限りにおいて、任意の電子機器でありうる。例えば、通信装置１５１は、複写機、ファクシミリ装置、携帯端末、スマートフォン、ノートＰＣ、タブレット端末、ＰＤＡ、デジタルカメラ、音楽再生デバイス、テレビ、スマートスピーカ等であってもよい。また、通信装置１５１は、複写機能、ＦＡＸ機能、印刷機能等の複数の機能を備えるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であってもよい。なお、以下では、通信装置１５１は、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等のプリンタであるものとする。
【００１１】
情報処理装置１０１は、一例において、入力インタフェース１０２、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、外部記憶装置１０６、出力インタフェース１０７、通信部１０９、近距離無線通信部１１０、撮影装置１１１を有する。なお、これらのブロックは、例えば内部バスを用いて相互に接続される。また、ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの、ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの、ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの、頭字語である。また、図１では、情報処理装置１０１の外部に表示部１０８（外部表示装置）が存在するような図解がなされているが、表示部１０８は情報処理装置１０１に内蔵されたディスプレイ等の情報提示装置であってもよい。なお、これらの構成は一例であり、情報処理装置１０１は、図示された以外のブロックを含んでもよい。また、図１における複数のブロックが１つのブロックにまとめられてもよいし、１つのブロックが２つ以上のブロックに分割されてもよい。すなわち、情報処理装置１０１は、後述するような処理を実行可能な範囲で任意の構成をとることができる。
【００１２】
ＣＰＵ１０３は、システム制御部であり、情報処理装置１０１の全体を制御する。ＲＯＭ１０４は、ＣＰＵ１０３が実行する制御プログラムやデータテーブル、組み込みＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム等の固定データを格納する。本実施形態では、ＲＯＭ１０４に格納されている各制御プログラムは、ＲＯＭ１０４に格納されている組み込みＯＳの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行うために用いられる。ＲＡＭ１０５は、例えば、バックアップ電源を必要とするＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）等で構成される。なお、ＲＡＭ１０５は、不図示のデータバックアップ用の一次電池によってデータが保持されるため、プログラム制御変数等のデータを揮発させずに格納することができる。また、情報処理装置１０１の設定情報や情報処理装置１０１の管理データ等を格納するメモリエリアもＲＡＭ１０５に設けられる。また、ＲＡＭ１０５は、ＣＰＵ１０３の主メモリ及びワークメモリとしても用いられる。外部記憶装置１０６は、印刷実行機能を提供するアプリケーションを記憶する。また、外部記憶装置１０６は、通信装置１５１が解釈可能な印刷情報を生成する印刷情報生成プログラム、通信部１０９を介して接続している通信装置１５１との間で送受信する情報送受信制御プログラム等の各種プログラムを記憶する。これらのプログラムが使用する各種情報や、通信部を介して他の情報処理装置やインターネットから得られた画像データも、外部記憶装置１０６に保存されうる。
【００１３】
入力インタフェース１０２は、ユーザからのデータ入力や動作指示の受付のためのインタフェースであり、物理キーボードやボタン等で構成される。出力インタフェース１０７は、表示部１０８に、データの表示や情報処理装置１０１の状態の通知を行わせるための制御を行うインタフェースである。表示部１０８は、ＬＥＤ（発光ダイオード）やＬＣＤ（液晶ディスプレイ）などを含んで構成され、データの表示や情報処理装置１０１の状態のユーザへの通知を行う。なお、ユーザからの操作の受け付け等のための入力インタフェース１０２と、画面の出力のための後述の出力インタフェース１０７（及び表示部１０８）とが、タッチパネル等の１つの装置によって実現されてもよい。例えば、表示部１０８上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを含んだソフトキーボードを表示させることにより、表示部１０８を介してユーザからの入力の受け付けが行われうる。なお、出力インタフェース１０７は、音出力や振動出力によって、不図示の出力部に情報を提示させるための制御を行ってもよい。
【００１４】
通信部１０９は、所定の無線通信方式に従って通信を行うための回路やアンテナを含んで構成され、同じ無線通信方式に従って通信を行うことができる通信装置１５１等の他の装置と接続し、データ通信を実行する。例えば、通信部１０９は、無線ＬＡＮの端末としての機能を有し、通信装置１５１の通信部１５６が無線ＬＡＮのアクセスポイントとして機能している場合に、そのアクセスポイントに無線接続することができる。通信部１０９と通信部１５６との間で接続が確立されることにより、情報処理装置１０１と通信装置１５１とが相互に通信することができるようになる。なお、通信部１０９がアクセスポイントとして動作する場合に、通信装置１５１が端末として動作することによって接続を確立することもできる。さらに、情報処理装置１０１と通信装置１５１が共に端末として動作しながら、端末間通信を行うこともできる。なお、通信部１０９や通信部１５６は、アクセスポイント又は端末としてのハードウェアを有し、各機能を固定的に実行するように構成されてもよいし、ソフトウェア的にこれらの機能を動的に切り替えて使用する能力を有していてもよい。例えば、通信部１５６は、アクセスポイントとして動作することが可能であるが、アクセスポイントのような機能を実行できればよい。すなわち、通信部１５６は、ネットワークを構築したり、ネットワークにおいて使用されるチャネルを決定する機能を備えていればよい。なお、アクセスポイントのような機能を実行する装置を親局と呼ぶこともある。逆に、親局が生成したネットワークに参加する装置を子局と呼ぶこともある。また、通信部１０９と通信部１５６は、共に端末として動作し、例えばアクセスポイント１３１を介して接続することもできる。なお、アクセスポイント１３１は、例えば、無線ＬＡＮルータ等の機器であり、ネットワークを構築したり、ネットワークにおいて使用されるチャネルを決定する装置である。通信部１０９及び通信部１５６は、ＩＥＥＥ８０２．１１規格シリーズに準拠した無線ＬＡＮの無線通信方式に従って動作する能力を有してもよいし、他の無線通信方式に従って動作する能力を有してもよい。例えば、通信部１０９及び通信部１５６は、例えば（一例においてバージョン３．０以前の）Ｂｌｕｅｔｏｏｔｈ（登録商標）等の規格に従って動作する能力を有してもよい。
【００１５】
近距離無線通信部１１０は、情報処理装置１０１と一定の近距離範囲内に存在する通信装置１５１等の他の装置と無線接続し、データ通信を実行するための回路やアンテナを含んで構成されるデバイスである。なお、近距離無線通信部１１０は、通信部１０９と異なる無線通信方式によって通信を行う。近距離無線通信部１１０は、同じ無線通信方式に従って動作する、通信装置１５１の近距離無線通信部１５７と接続可能である。なお、本実施形態では、近距離無線通信部１１０及び近距離無線通信部１５７は、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＬＥ）規格に従って動作するものとする。なお、Ｂｌｕｅｔｏｏｔｈ機器の各々の通信モジュールには、機器固有の識別情報であるＢＤアドレス（Ｂｌｕｅｔｏｏｔｈ  Ｄｅｖｉｃｅ  Ａｄｄｒｅｓｓ）が割り当てられる。
【００１６】
撮影装置１１１は、撮影素子で撮影した画像をデジタルデータに変換する装置である。デジタルデータは、一度ＲＡＭ１０５に格納され、その後、ＣＰＵ１０３によって実行されるプログラムに基づいて所定の画像フォーマットに変換されて、画像データとして外部記憶装置１０６に保存される。
【００１７】
通信装置１５１は、一例において、ＲＯＭ１５２、ＲＡＭ１５３、ＣＰＵ１５４、プリントエンジン１５５、通信部１５６、近距離無線通信部１５７、入力インタフェース１５８、出力インタフェース１５９、及び、不揮発性メモリ１６１を有する。なお、これらのブロックは、例えば内部バスを用いて相互に接続される。また、図１では、通信装置１５１の外部に表示部１６０（外部表示装置）が存在するような図解がなされているが、表示部１６０は通信装置１５１に内蔵されたディスプレイであってもよい。なお、これらの構成は一例であり、通信装置１５１は、図示された以外のブロックを含んでもよい。また、図１における複数のブロックが１つのブロックにまとめられてもよいし、１つのブロックが２つ以上のブロックに分割されてもよい。すなわち、通信装置１５１は、後述するような処理を実行可能な範囲で任意の構成をとることができる。
【００１８】
ＣＰＵ１５４は、システム制御部であり、通信装置１５１の全体を制御する。ＲＡＭ１５３は、例えばＲＡＭ１０５と同様に、バックアップ電源を必要とするＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）等で構成される。ＲＡＭ１５３は、ＣＰＵ１５４の主メモリとワークメモリとしても用いられ、情報処理装置１０１等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する際に用いられうる。ＲＡＭ１５３は、バックアップ用の電源が供給されることによってデータが保持されるため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。ＲＯＭ１５２は、ＣＰＵ１５４が実行する制御プログラムやデータテーブル、ＯＳプログラム等の固定データを格納する。本実施形態では、ＲＯＭ１５２に格納されている各制御プログラムは、ＲＯＭ１５２に格納されている組み込みＯＳの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行うために用いられる。また、通信装置１５１の設定情報や通信装置１５１の管理データ等の、電源供給がされていない場合も保持する必要があるデータを格納するメモリエリアも、ＲＯＭ１５２に設けられうる。
【００１９】
通信部１５６は、上述の通信部１０９と同様の機能を有し、通信部１０９との通信を直接接続により又はアクセスポイント１３１を介した間接接続により、行うことができる。近距離無線通信部１５７は、情報処理装置１０１の近距離無線通信部１１０と同じ無線通信方式（本実施形態ではＢＬＥ規格に従う無線通信方式）を用いて、近距離無線通信部１１０との間で近距離無線通信を行うことができる装置である。
【００２０】
プリントエンジン１５５は、ＲＡＭ１５３に保存された情報や情報処理装置１０１等から受信した印刷ジョブに基づいて、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。そのため、通信装置１５１は、印刷制御を実行することも可能である。この時、情報処理装置１０１等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部１５７よりも高速に通信可能な通信部１５６を介して受信されうる。
【００２１】
入力インタフェース１５８は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。出力インタフェース１５９は、表示部１６０に、データの表示や通信装置１５１の状態の通知を行わせるための制御を行うインタフェースである。表示部１６０は、ＬＥＤ（発光ダイオード）やＬＣＤ（液晶ディスプレイ）などを含んで構成され、データの表示や通信装置１５１の状態のユーザへの通知を行う。なお、ユーザからの操作の受け付け等のための入力インタフェース１５８と、画面の出力のための後述の出力インタフェース１５９（及び表示部１６０）とが、タッチパネル等の１つの装置によって実現されてもよい。例えば、表示部１６０上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを表示させることにより、表示部１６０を介してユーザからの入力の受け付けが行われうる。なお、出力インタフェース１５９は、音出力や振動出力によって、不図示の出力部に情報を提示させるための制御を行ってもよい。
【００２２】
不揮発性メモリ１６１は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ-Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等のデバイスによって構成される。不揮発性メモリ１６１は、主に、通信装置１５１の設定値等の、通信装置１５１の電源が供給されない間にも保持する必要のあるデータを保存するのに使用される。
【００２３】
なお、通信装置１５１には、外付けＨＤＤやＳＤカード等のメモリがオプション機器として装着されてもよく、通信装置１５１に保存される情報は、そのメモリに保存されてもよい。また、ここでは、例として情報処理装置１０１と通信装置１５１との処理分担を上述のように示したが、特にこの分担形態に限らず他の形態が用いられてもよい。
【００２４】
近距離無線通信部１５７の詳細について、図２を用いて説明する。近距離無線通信部１５７は、情報処理装置１０１等の装置と近距離で無線接続するための構成を有するデバイスである。本実施形態では、近距離無線通信部１５７は、上述のようにＢＬＥ規格に従う無線通信方式で通信を行う。なお、近距離無線通信部１５７とＣＰＵ１５４は、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のバスインタフェースを介して通信を行うことができ、例えば、近距離無線通信部１５７内部の記憶領域にＣＰＵ１５４がアクセス可能である。近距離無線通信部１５７は、その内部に、例えば、ＣＰＵ２０１、記憶領域２０２、ＲＯＭ２０３、及び、ＲＡＭ２０４を含んで構成される。ＣＰＵ２０１は、近距離無線通信部１５７の全体を制御する。ＲＯＭ２０３は、ＣＰＵ２０１が実行する制御プログラムやデータテーブル、ＯＳプログラム等の固定データを格納する。ＲＡＭ２０４は、例えば、バックアップ電源を必要とするＤＲＡＭ等で構成され、プログラム制御変数等の重要なデータを揮発させずに格納する能力を有する。また、ＲＡＭ２０４は、ＣＰＵ２０１の主メモリ及びワークメモリとしても用いられうる。記憶領域２０２は、ＣＰＵ１５４から、または、近距離無線通信部１１０を介して情報処理装置１０１から、アクセス可能な情報を記憶可能な領域である。なお、記憶領域２０２は情報記憶が可能な任意の装置によって構成され、例えばＲＡＭ２０４の一部として構成されてもよいし、ＲＯＭ２０３やＲＡＭ２０４とは別の例えば不揮発性メモリによって構成されうる。なお、通信部１５６と近距離無線通信部１５７は別々のチップ上で動作してもよいし、１つのチップ上で動作してもよい。
【００２５】
（ＧＡＴＴ通信の概要）
ＢＬＥ規格におけるＧＡＴＴ（Ｇｅｎｅｒｉｃ  Ａｔｔｒｉｂｕｔｅ  Ｐｒｏｆｉｌｅ）通信の概要について説明する。ＧＡＴＴは、データの転送元と転送先とに基づいて、ＧＡＴＴクライアントとＧＡＴＴサーバとの２つのロールを定義している。ＧＡＴＴクライアントは、ＧＡＴＴサーバにリクエストを送信し、ＧＡＴＴサーバからの応答を受信する役割である。ＧＡＴＴサーバは、ＧＡＴＴクライアントからの要求を受信した場合に応答を返す役割である。なお、本実施形態では、情報処理装置１０１がＧＡＴＴクライアントとなり、通信装置１５１がＧＡＴＴサーバとなるものとする。すなわち、情報処理装置１０１は、通信装置１５１の通信相手装置である。なお、ＧＡＴＴサーバは、データまたは状態情報を格納するデバイスである。ＧＡＴＴクライアントは、ＧＡＴＴサーバに対して、データのリード・ライトを実行することができる。
【００２６】
ＧＡＴＴのデータベースは、サービス、キャラクタリスティック、ディスクリプタと呼ばれる３つの要素を含んで構成される。なお、ＧＡＴＴのデータベースは、記憶領域２０２により保持される。これらの３つの要素の関係を図３に示す。サービスは、１つ以上のキャラクタリスティックを含み、キャラクタリスティックはディスクリプタを含む。これらのうち、キャラクタリスティックが、ユーザデータを保持するために用いられ、複数のキャラクタリスティックを用いることにより、それぞれ別個の情報を保持することができる。ディスクリプタは、必要に応じてキャラクタリスティックの付加情報を保持する。なお、ディスクリプタは存在しなくてもよい。なお、キャラクタリスティックに保存できるデータのサイズは、予め決められている所定サイズである。
【００２７】
サービス、キャラクタリスティック、ディスクリプタは、それぞれに割り当てられたＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）により識別可能である。ＵＵＩＤは、例えば、１６進数３２桁（１２８ビット）で「５５０ｅ８４００−ｅ２９ｂ−４１ｄ４−ａ７１６−４４６６５５４４００００」のように表現される。ＵＵＩＤは、ソフトウェア上でオブジェクトを一意に識別するための識別子として使用される。なお、Ｂｌｕｅｔｏｏｔｈ  ＳＩＧ（Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）の標準で定義されている値については、４桁で表現される。
【００２８】
サービス、キャラクタリスティック、ディスクリプタは、それぞれ、ＧＡＴＴクライアントに対する、リード・ライトの属性やセキュリティの属性を設定することができる。ＧＡＴＴクライアントは、サービス及びキャラクタリスティックにそれぞれ対応するＵＵＩＤを指定することにより、キャラクタリスティックごとに保持される値に対して、リード・ライトを実行することができる。ただし、リード・ライトが実行できるか否かは、サービスとキャラクタリスティックとのそれぞれに設定されているリード・ライト属性に従って定まる。
【００２９】
（処理の流れ）
例えばＢｌｕｅｔｏｏｔｈ通信機器に搭載されているメモリ容量は小さいことが多く、このため、Ｂｌｕｅｔｏｏｔｈ通信機器では小容量の情報を記録するように構成されることが多い。これに対して、Ｂｌｕｅｔｏｏｔｈ通信機器のメモリに記録する複数の情報を、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のようなブロック暗号で個別に暗号化すると、情報ごとにパディングデータが挿入されうる。このため、場合によっては暗号化対象のデータ量に対してパディングデータの量が大きくなり、Ｂｌｕｅｔｏｏｔｈ機器に搭載されているメモリ容量が不必要に浪費されてしまう場合がありうる。以下では、この点を考慮して実行される処理について説明する。
【００３０】
続いて、通信システム内で実行される処理の流れの例について説明する。本通信システムでは、通信装置１５１から情報処理装置１０１へ、近距離無線通信部１５７を介して暗号化されたデータを送信する。ここで、送信されるデータは、例えば、通信部１０９がアクセスポイント１３１や通信部１５６と接続するために用いられる通信パラメータのデータでありうる。本実施形態では、通信装置１５１は、近距離無線通信部１５７内の記憶領域２０２に、送信対象データを暗号化した後に書き込む。情報処理装置１０１は、この暗号化されたデータを読み出し、その暗号化されたデータを復号することによって、必要なデータを取得することができる。
【００３１】
まず、通信装置１５１が、鍵シードを生成して保存する処理について、図４を用いて説明する。本処理では、通信装置１５１は、まず、鍵シードの生成が必要か否かを判定する（Ｓ４０１）。この判定は、例えば、不揮発性メモリ１６１の鍵シードが格納される領域に、有効な鍵シードの値が格納されているか否かを通信装置１５１が確認することによって行われる。通信装置１５１は、有効な鍵シードの値が不揮発性メモリ１６１に格納されていない場合に、鍵シードの生成が必要であると判定する。また、この判定は、例えば通信装置１５１の起動時に実行されうるが、それ以外のタイミングで実行されてもよい。なお、鍵シードは、暗号鍵を生成するために利用する値である。また、暗号鍵は、データを暗号化する際に用いられる値であり、本実施形態では、暗号鍵は鍵シードを用いて算出される。鍵シードから暗号鍵を算出するアルゴリズムは、例えばハッシュ関数を用いるアルゴリズムでありうる。ハッシュ関数は、入力値に対して出力値が一意となる関数であり、出力の重複が少なくなるよう設計されている関数である。なお、入力値に対して一意の出力値が得られる計算方法によって暗号鍵が生成される限りにおいて、他のアルゴリズムが用いられてもよい。また、本実施形態では、鍵シードと無効値とが区別可能なように鍵シードが生成される。例えば、鍵シードの値が「０」を示す場合にこの鍵シードを無効値として扱うものとし、鍵シードの生成時には、このような無効値が生成されないような制御が行われる。
【００３２】
通信装置１５１は、鍵シードの生成が必要と判定した場合（Ｓ４０１でＹＥＳ）、鍵シードを生成する処理を実行する（Ｓ４０２）。ここでの鍵シードは、無効値が生成されない限り、生成の度に同じ値が生成されてもよいし、ランダムな値が生成されてもよい。通信装置１５１は、生成した鍵シードを不揮発性メモリ１６１に保存する（Ｓ４０２）。一方、通信装置１５１は、鍵シードの生成が必要でないと判定した場合（Ｓ４０１でＮＯ）、鍵シードを生成せずに、図４の処理を終了する。なお、通信装置１５１は、鍵シードの生成が必要でないと判定される場合であっても、例えば鍵シードの再生成を指示するユーザ操作を受け付けた場合等には、鍵シードを生成しうる。
【００３３】
続いて、通信装置１５１が、ＲＡＭ１５３または不揮発性メモリ１６１に保存されている設定値を暗号化して、近距離無線通信部１５７に書き込む際の処理について、図５を用いて説明する。本処理では、まず、通信装置１５１が、近距離無線通信部１５７のキャラクタリスティックを更新する必要があるか否かを判定する（Ｓ５０１）。例えば、通信装置１５１は、通信装置１５１内のＲＡＭ１５３または不揮発性メモリ１６１に保存されている設定値が更新された場合にキャラクタリスティックを更新する必要があると判定する。なお、設定値の更新は、例えば通信装置１５１の表示部１６０を介して入力されたユーザ指示により行われる。本実施形態では、一例として、後述のように、ＳＳＩＤ、パスワードが暗号化される。このため、例えば、ユーザが、通信装置１５１の表示部１６０を介して、通信部１５６が構築するネットワークのＳＳＩＤおよびパスワードの少なくとも１つを変更した場合、通信装置１５１はＳ５０１においてＹＥＳと判定する。また、ユーザが通信装置１５１の表示部１６０を介して、例えば、通信部１５６が使用する外部のアクセスポイントを変更した場合、インフラストラクチャ接続のために使用されるＳＳＩＤなどが変更される。そのため、通信装置１５１はＳ５０１においてＹＥＳと判定する。また、通信装置１５１は、自装置の起動時に近距離無線通信部１５７のキャラクタリスティックを初期化してもよく、また、設定値によらずにキャラクタリスティックの値を更新してもよい。
【００３４】
ここで、図６を用いて、通信装置１５１の近距離無線通信部１５７がＧＡＴＴサーバとして有するデータベースの構造の例について説明する。ベンダの独自サービス名「Ｏｒｉｇｉｎａｌ」（Ｓｅｒｖｉｃｅ  ＵＵＩＤ：００００００００−００００−１０００−１０００−００４０５ｆ９ｂ３４ｆｂ）には、４つのキャラクタリスティック６０１〜６０４が含まれる。４つのキャラクタリスティックは、それぞれ、「連結暗号データ」、「鍵シード」、「固有名称」、「完了通知」を保持する。これらのキャラクタリスティックに対しては、それぞれ別個のＣｈａｒａｃｔｅｒｉｓｔｉｃｓ  ＵＵＩＤが割り当てられる。また、これらのキャラクタリスティックのそれぞれに対して、Ｒｅａｄ属性とＷｒｉｔｅ属性及び保存するデータに対する暗号化の有無が定められる。図６において、「Ｒｅａｄ」部分が「〇」で示されるキャラクタリスティックは読み出しが許容されており、「Ｗｒｉｔｅ」部分が「〇」で示されるキャラクタリスティックは書き込みが許容されている。同様に、図６において、「暗号化」部分が「○」で示されているキャラクタリスティックでは、キャラクタリスティック６０２によって提供される鍵シードから算出される暗号鍵を用いて暗号化された後のデータが保持される。
【００３５】
図６のキャラクタリスティックの一部の内容についてさらに詳細に説明する。キャラクタリスティック６０１には、例えば、通信装置１５１の通信部１５６がアクセスポイントとして動作している場合に、通信部１５６により構築されたネットワークに他の装置が接続するための情報が保持される。例えば、そのアクセスポイントのＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）及びパスワードと、通信装置１５１のエラー情報等が、キャラクタリスティック６０１に保存される。なお、ＳＳＩＤは、アクセスポイント自身又はアクセスポイントが生成するネットワークを識別するための識別子である。これらのＳＳＩＤとパスワードとエラー情報は、連結されて暗号化された状態で保存される。キャラクタリスティック６０３には、通信装置１５１の固有名称である「ｐｒｉｎｔｅｒ」という文字列が暗号化された状態で保存される。これらの暗号化された情報は、機密性の高い情報として扱われうる。なお、図６で説明される近距離無線通信部１５７がＧＡＴＴサーバとして有するデータベースは一例に過ぎず、これに限定されない。例えば、任意の項目がキャラクタリスティックとして追加されうる。
【００３６】
図５に戻り、通信装置１５１は、近距離無線通信部１５７のキャラクタリスティックを更新する必要はないと判定した場合（Ｓ５０１でＮＯ）は、図５の処理を終了する。一方、通信装置１５１は、近距離無線通信部１５７のキャラクタリスティックを更新する必要があると判定した場合（Ｓ５０１でＹＥＳ）、Ｓ４０２で生成し、ＲＡＭ１５３や不揮発性メモリ１６１に保存されている鍵シード値を読み出す（Ｓ５０２）。そして、通信装置１５１は、Ｓ５０２で読み出した鍵シードを用いて暗号鍵を生成する（Ｓ５０３）。なお、本実施形態では、暗号化アルゴリズムとして、情報を暗号化する際に用いる暗号鍵と暗号化されたデータを復号する際に用いる復号鍵とで同一の鍵を用いる、共通鍵暗号方式が用いられるものとする。なお、本実施形態では、特に、共通鍵暗号方式の一種であるＡＥＳを用いるものとするが、これに限定されず、その他の暗号化アルゴリズムが用いられてもよい。通信装置１５１は、ＲＡＭ１５３または不揮発性メモリ１６１に保存されているＳＳＩＤとパスワードとエラー情報を読み出し、これらを連結させて暗号化を実行する（Ｓ５０４）。データの連結と暗号化について、図７を用いて概説する。図７に示すように、読み出されたＳＳＩＤ（「ＩＪ＿ＰＲＩＮＴＥＲ＿０１」）、パスワード（「ｐ８ＹＴｘＲｅ」）、及びエラー情報（「１０００」）の３つのデータは、連結されて１つの連結データが生成される。そして、この連結データに対して一括して暗号化が行われ、これらの３つのデータが連結された１つの連結データに対応する１つの連結暗号データが得られる。なお、図７の連結データは一例であり、任意の複数のデータが連結されうる。なお、ここでの「連結」は、１つのデータの後に別のデータが（例えばデータの区切りを示す特定のデータを挟んで）繋げられることを指す。連結暗号データのデータサイズは、１つのキャラクタリスティックに保存可能なデータサイズよりも小さい、または、同じである。ここで、例えば１つのキャラクタリスティックに対して１種類のデータのみ（例えば、ＳＳＩＤのみ）をブロック暗号化方式に従って暗号化して保存する場合を想定する。なお、このＳＳＩＤのデータサイズは、ブロック暗号化方式のブロックサイズの整数倍ではないとする。この場合、ＳＳＩＤのデータサイズをブロックサイズで割った時の余りを埋める必要がある。この余りを埋めるために使用されるデータがパディングデータである。ＳＳＩＤを暗号化することで生成された暗号データが１つのキャラクタリスティックに保存される。ここで１つのキャラクタリスティックに保存される暗号化データのデータサイズは、ＳＳＩＤのデータサイズとパディングデータの和に相当する。つまり、状況によっては、１つのキャラクタリスティックに保存された暗号化データに含まれる実質的なデータはわずかで、残りの大部分がパディングデータとなってしまうおそれがある。以上のような保存処理をデータ単位に行っていくと、近距離無線通信部１５７の記憶領域２０２に必要なデータが保存できなくなるおそれがある。
【００３７】
一方、Ｓ５０４において上述したように、本実施形態は、複数のデータを連結した連結データのサイズが、ブロックサイズの整数倍に近くなるように複数のデータを連結する。さらに、キャラクタリスティックに保存可能なデータサイズ以下に収まるように連結データが生成される。このように連結データが生成されることで、複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、本実施形態を実行することで生成される連結暗号データに含まれるパディングデータのサイズを軽減することが可能となる。すなわち、本実施形態は、ブロック暗号を用いて得られる暗号データのサイズを抑制することができる。
【００３８】
なお、本実施形態では、情報処理装置１０１が通信装置１５１の通信部１０９とダイレクトに通信するためのＳＳＩＤ及びパスワードと通信装置１５１のエラー情報を、ＲＡＭ１５３または不揮発性メモリ１６１から読み出すとしたが、これに限られない。例えば、外部のアクセスポイント１３１と接続するためのＳＳＩＤ及びパスワード等が読み出されてもよい。また、Ｓ５０４で暗号化される対象は、Ｓ５０１で更新が必要とされた設定値でなくてもよい。また、本実施形態では、暗号化対象として連結させる複数のデータは、ブロック暗号化方式のブロックサイズとそれらの複数のデータのサイズの全長との差分に応じて定まる暗号化時のパディングデータのサイズに応じて動的に決定されうる。例えば、パディングデータのサイズが最小となるように、連結させるデータが決定されうる。また、パディングデータのサイズが所定量より小さくなるように、連結させるデータが選択されてもよい。この場合、複数の組み合わせにおいて、パディングデータのサイズが所定量より小さい場合、その複数の組み合わせのうちの１つが、例えばランダムに又はパディングデータのサイズが最小のものなどの所定の基準に基づいて、選択されうる。また、どのようなデータの組み合わせにおいても、パディングデータのサイズが所定量より小さくならない場合は、例えばパディングデータのサイズが最小となるようなデータの組み合わせを選択して、又は連結を行わずに、暗号化を行いうる。また、第１の組み合わせのデータを連結させた場合のパディングデータのサイズが、第２の組み合わせのデータを連結させた場合のパディングデータのサイズより小さい場合は、第１の組み合わせのデータを連結させて暗号化を行うようにしうる。すなわち、パディングデータのサイズが最小でなくても、相対的にそのサイズが小さくなるような組み合わせが、連結対象として選択されうる。さらに、例えば、複数のデータを連結させる場合と連結させない場合とで、連結させた方がパディングデータのサイズが小さくなる場合にはデータを連結させ、パディングデータのサイズが小さくならない場合にはデータを連結させないようにしうる。パディングデータのサイズに応じた連結データの決定方法では、連結データのサイズが暗号ブロックサイズ（ＡＥＳの場合は１６バイト）の整数倍に近い大きさとなるように連結データが選択される。暗号ブロックサイズは、ＡＥＳの場合は１６バイトであるが、例えば３２バイトなどの１６バイト以外のブロックサイズを有するブロック暗号化方式が用いられてもよい。この場合、連結データのサイズとブロックサイズの大きさとに基づいて、連結対象となるデータが選択される。なお、データの連結の際には、データの区切りとなる値が連結されるデータ間に挿入されてもよい。
【００３９】
図５に戻り、通信装置１５１は、Ｓ５０４で暗号化した連結暗号データを、近距離無線通信部１５７のキャラクタリスティック６０１（連結暗号データを保持するキャラクタリスティック）へ書き込む（Ｓ５０５）。このような連結暗号データが用いられることにより、ＳＳＩＤとパスワードとエラー情報とが個別に暗号化されてキャラクタリスティックに格納されるよりも少ない容量で、データを格納することが可能になる。なお、通信装置１５１は、このタイミングでＲＡＭ１５３や不揮発性メモリ１６１から暗号化する必要のない値を読み出し、暗号化せずに近距離無線通信部１５７のキャラクタリスティックに書き込んでもよい。
【００４０】
上述の処理は、図６において「Ｒｅａｄ」が「○」で、かつ、「暗号化」部分が「○」の各キャラクタリスティックに保存される全ての値について繰り返し実行される。すなわち、図６において「Ｒｅａｄ」が「○」で、かつ、「暗号化」部分が「○」の各キャラクタリスティックに保存される値は、全てＲＡＭ１５３または不揮発性メモリ１６１から読み出され、暗号化された値となる。
【００４１】
なお、上述の説明では、Ｓ５０１でキャラクタリスティックの更新が必要と判定された場合にＳ５０２及びＳ５０３で暗号鍵を生成すると説明したが、前回のキャラクタリスティックの更新時から暗号鍵が変更されない場合、この処理は省略されてもよい。すなわち、Ｓ５０１でキャラクタリスティックの更新が必要と判定された際に、鍵シードが初期化されていた場合にのみ、暗号鍵を生成するようにしてもよい。
【００４２】
次に、図８を用いて、通信装置１５１によって実行される、鍵シードの公開／非公開を設定する処理の流れの例について説明する。通信装置１５１は、入力インタフェース１５８を介してユーザによる特定のキー操作を受け付けることにより、鍵シードの公開／非公開を設定することができるように構成されうる。本実施形態では、鍵シードを非公開とする状態においては、鍵シードの値を無効値とし、鍵シードを公開する状態において、鍵シードの値を有効値とする。本処理では、通信装置１５１は、ユーザによる特定のキー操作を受け付けたことにより、鍵シードを格納するキャラクタリスティック６０２に対して、Ｓ４０２で示した方法で生成された鍵シードの値を書き込む（Ｓ８０１）。通信装置１５１は、所定の終了条件が満了するまで（Ｓ８０２でＮＯの間）鍵シードを公開した状態を維持し、所定の終了条件が満たされた場合に（Ｓ８０２でＹＥＳ）、鍵シードの値を無効値に書き換え、鍵シードを非公開の状態に遷移させる（Ｓ８０３）。ここで、所定の終了条件は、例えば、情報処理装置１０１とのＧＡＴＴ通信により、情報処理装置１０１において通信装置１５１が登録された通知を受けることでありうる。なお、鍵シードを非公開とする方法は、無効値を格納する他に、データベース上で鍵シードが格納されているキャラクタリスティックを読み取り不可能な状態にすることによって行われてもよい。このような制御により、装置に対して特定の操作を行うことが許容される正当な利用者以外が、鍵シードを読み取ることができないようにすることができる。
【００４３】
次に、図９を用いて、情報処理装置１０１によって実行される、プリンタ登録処理の流れについて説明する。なお、以下では、新規登録対象のプリンタとして通信装置１５１が発見されるものとする。情報処理装置１０１は、アプリケーションを介してプリンタ登録処理を開始すると、近距離無線通信部１１０を用いて、周囲のプリンタからのＢＬＥアドバタイズ及びスキャンレスポンスから、アドバタイズ情報を受信する（Ｓ９０１）。そして、情報処理装置１０１は、受信したアドバタイズ情報の送信元のプリンタ（通信装置１５１）が、アプリケーションが対応可能かつ登録済みでないプリンタである場合に、そのプリンタの情報を新規登録が可能なプリンタ情報として表示する（Ｓ９０２）。なお、情報処理装置１０１は、Ｓ９０２において表示対象となるプリンタを複数発見した場合には、その複数のプリンタについてのプリンタ情報を表示し、ユーザに登録するプリンタを選択させうる（不図示）。
【００４４】
次に、情報処理装置１０１は、ユーザによって選択されたプリンタ（通信装置１５１）に対して、近距離無線通信部１１０を通じて接続要求を送信し、ＢＬＥ接続を行う（Ｓ９０３）。なお、情報処理装置１０１のアプリケーションは、事前の取り決めにより、図６で説明した通信装置１５１が有するベンダ独自サービスのキャラクタリスティックの構成の知識を有する。また、このアプリケーションは、例えばユーザによる登録等によりキャラクタリスティック６０３に保持される固有名称の暗号化前の値の知識を有し、また、キャラクタリスティック６０４へ書き込むべき完了通知を示す値を記憶しているものとする。
【００４５】
情報処理装置１０１は、ＢＬＥ接続を確立すると、通信装置１５１の鍵シードが格納されている所定のキャラクタリスティック６０２に対する読み込みを実行し、そのキャラクタリスティックに保持されている値を取得する（Ｓ９０４）。そして、情報処理装置１０１は、読み込んだ値が有効値であるか否かに基づいて又は読み込みを行うことができたか否かに基づいて、通信装置１５１が鍵シードを公開している状態か否かを判定する（Ｓ９０５）。情報処理装置１０１は、Ｓ９０４で読み込んだ鍵シードの値が無効値である場合や読み取れない場合に、鍵シードが非公開な状態にあると判定する（Ｓ９０５でＮＯ）。情報処理装置１０１は、通信装置１５１が鍵シードを非公開の状態であると判定すると（Ｓ９０５でＮＯ）、鍵シードを公開する状態となるまで、所定時間待機する（Ｓ９０６）。なお、情報処理装置１０１は、このときに、表示部１０８等を介して、ユーザに対して通信装置１５１を鍵シード公開状態に移行させるように促す表示を行ってもよい。なお、情報処理装置１０１は、所定時間待っても鍵シード公開状態にならない場合や、ユーザによるキャンセル指示などを受けた場合、図９の処理を終了させうる。
【００４６】
一方、情報処理装置１０１は、通信装置１５１が鍵シードを公開している状態であると判定すると（Ｓ９０５でＹＥＳ）、読み込んだ鍵シードに基づいて、図５に関して上述したのと同様にして復号鍵を生成する（Ｓ９０７）。続いて、情報処理装置１０１は、固有名称が保持されたキャラクタリスティック６０３を読み込み、通信装置１５１の固有名称の情報を取得する（Ｓ９０８）。本実施形態では、図６のように、通信装置１５１のＧＡＴＴデータベースのキャラクタリスティック６０３には「ｐｒｉｎｔｅｒ」という固有名称の文字列が、暗号化された状態で保存され、かつ、読み取り可能な状態となっている。情報処理装置１０１は、この暗号化された固有名称の情報を取得し、Ｓ９０７で生成した復号鍵を用いてその暗号化された情報を復号し、通信装置１５１の固有名称の情報「ｐｒｉｎｔｅｒ」を取得する。
【００４７】
その後、情報処理装置１０１は、Ｓ９０８で取得して復号された固有名称の情報「ｐｒｉｎｔｅｒ」が、事前に記憶している固有名称の情報と一致しているか否かに基づいて、復号鍵が正常値であるか否かを判定する（Ｓ９０９）。すなわち、情報処理装置１０１は、取得された固有名称の情報が、事前に記憶している固有名称の情報と一致する場合に、復号鍵が正常値であると判定する（Ｓ９０９でＹＥＳ）。情報処理装置１０１は、復号鍵が正常であると判定した場合（Ｓ９０９でＹＥＳ）、Ｓ９０２において選択したプリンタのＢＤアドレスなどの識別子と鍵シードとを関連付けて記憶することにより、このプリンタの登録処理を行う（Ｓ９１０）。情報処理装置１０１は、プリンタ登録処理を正常に完了したことに応じて、通信装置１５１のキャラクタリスティック６０４に対して、完了通知を示す値を登録する。ここでは、例えば、登録が完了したことを示す「ｒｅｇｉｓｔｅｒｅｄ」という特定の文字列を上述の共通鍵暗号方式で暗号化した値が、ＧＡＴＴ通信を用いて、通信装置１５１のキャラクタリスティック６０４に書き込まれる。通信装置１５１は、キャラクタリスティック６０４に対して、定められた値（「ｒｅｇｉｓｔｅｒｅｄ」）が、指定した鍵シードを用いて暗号化されて書き込まれたことにより、情報処理装置１０１における登録処理が正常に完了したことを確認することができる。
【００４８】
情報処理装置１０１は、プリンタ登録の完了により、図９の処理を終了する。また、情報処理装置１０１は、復号鍵が正常でないと判定した場合（Ｓ９０９でＮＯ）は、プリンタを登録せずに、図９の処理を終了する。
【００４９】
次に、図１０を用いて、情報処理装置１０１によって実行される、通信装置１５１（プリンタ）からＢＬＥ経由で情報を取得する処理の例について説明する。なお、本処理は、例えば、情報処理装置１０１が、上述のＳ９０３によって通信装置１５１とＢＬＥ接続済の状態であり、かつ、上述のＳ９１０によって通信装置１５１を登録済みの状態である場合に実行される。
【００５０】
情報処理装置１０１は、通信装置１５１に対して、近距離無線通信部１１０を通じてＧＡＴＴ通信による情報取得を要求する（Ｓ１００１）。ここで取得を要求する情報は、図６で示される情報のうち、「暗号化」が「○」であるキャラクタリスティック（キャラクタリスティック６０１）等に保持される情報（例えば連結暗号データ）であり、上述のＳ５０４の処理によって暗号化されている情報である。続いて、情報処理装置１０１は、上述のＳ９０４で取得した鍵シードから、暗号化された情報を復号するための復号鍵を生成する（Ｓ１００２）。なお、復号鍵の生成処理は、上述のＳ５０３又はＳ９０７と同様の処理である。なお、Ｓ９０７の処理で復号鍵を生成して保持しており、かつ、その復号鍵を用いて後述のＳ１００３のデータの復号を行う場合は、Ｓ１００２の処理は省略されてもよい。なお、本実施形態では共通鍵暗号方式を用いるため、暗号鍵の算出処理と復号鍵の算出処理とが同様となるが、その他の暗号方式を用いる場合にはこれらの鍵の算出処理は相異なりうる。その後、情報処理装置１０１は、Ｓ１００１において取得した情報を、Ｓ１００２で生成した復号鍵を用いて復号する（Ｓ１００３）。この復号の様子を、図１１に概略的に示す。図１１のように、復号処理では、図７の処理と逆の処理が行われ、例えば、キャラクタリスティック６０１から取得された連結暗号データから、ＳＳＩＤ、パスワード及びエラー情報が連結された連結データが生成される。情報処理装置１０１は、復号によって取得された連結データから、通信装置１５１の通信部１５６がアクセスポイントとして動作する場合に、そのアクセスポイントと接続するためのＳＳＩＤ及びパスワードを取得することができる。情報処理装置１０１は、所定の区切り文字またはデータサイズに基づいてＳＳＩＤおよびパスワードを識別することができる。
【００５１】
情報処理装置１０１は、この復号処理により、ＢＬＥ標準のペアリングを実行することなく、通信装置１５１から暗号化された情報を取得し、取得した通信装置１５１の情報を活用することが可能となる。また、情報処理装置１０１が、ＢＬＥ標準のペアリングを実行することなく、通信装置１５１に暗号化したデータを送信し、通信装置１５１が、受信した情報を活用することが可能となる。また、通信装置１５１は、パディングデータのサイズが最小になるように又は十分に小さくなるように連結データを生成する。そして、通信装置１５１は、その連結データを暗号化することによって、記憶容量の少ない通信装置１５１の近距離無線通信部１５７に暗号化されたデータを格納することが可能になる。また、情報処理装置１０１は、通信装置１５１から取得した情報を利用して通信装置１５１とＷｉ−Ｆｉ接続を確立することができる。ここで、確立されるＷｉ−Ｆｉ接続について説明する。情報処理装置１０１が取得した情報が通信部１５６により構築されたネットワークに関する情報である場合、情報処理装置１０１の通信部１０９は、通信部１５６とダイレクト接続を確立する。ダイレクト接続とは、アクセスポイント１３１のような外部のアクセスポイントを使用しない接続方法である。一方、情報処理装置１０１が取得した情報がアクセスポイント１３１により構築されたネットワークに関する情報である場合、通信部１０９は、アクセスポイント１３１を介して通信部１５６とインフラストラクチャ接続を確立する。そして、情報処理装置１０１は、これらの処理を経て確立されたＷｉ−Ｆｉ接続（ダイレクト接続またはインフラストラクチャ接続）を介して、通信装置１５１に印刷ジョブを送信することや、通信装置１５１からスキャンデータを取得することができる。そして、通信装置１５１は、Ｗｉ−Ｆｉ接続を介して取得した印刷ジョブに基づいて印刷処理を実行する。また、通信装置１５１は、Ｗｉ−Ｆｉ接続を介してスキャンデータを送信する。
【００５２】
なお、上述の説明では、ＲＡＭ１５３または不揮発性メモリ１６１に保存されている、ＳＳＩＤ、パスワード、及びエラー情報が読み出されて連結され、さらに暗号化された連結暗号データがキャラクタリスティックに保持される例について説明した。これらの情報は一例であり、これら以外の情報が連結及び暗号化されてキャラクタリスティックに保存されてもよい。例えば、通信部１５６のＭＡＣアドレスや、近距離無線通信部１５７のハードウェアアドレスを示すＢＤアドレスが、保存されてもよい。この場合の例について、図１２〜図１４を用いて説明する。
【００５３】
図１２には、この場合に、通信装置１５１の近距離無線通信部１５７がＧＡＴＴサーバとして有するデータベースの構造の例を示している。図１２の例では、ベンダの独自サービス名「Ｏｒｉｇｉｎａｌ」に、５つのキャラクタリスティック１２０１〜１２０５が含まれている。図６の例と比較すると、連結暗号データのキャラクタリスティックが１つ増えている。なお、「ＵＵＩＤ」、「Ｒｅａｄ」、「Ｗｒｉｔｅ」、及び「暗号化」の各項目については図６と同様であるため、説明を省略する。第１連結暗号データのキャラクタリスティック１２０１には、アクセスポイントとして動作する通信部１５６と接続するためのＳＳＩＤと、通信部１５６のＭＡＣアドレスとが連結されて暗号化された状態で保存される。第２連結暗号データのキャラクタリスティック１２０２には、アクセスポイントとしての通信部１５６に接続するためのパスワードと、近距離無線通信部１５７のＢＤアドレスと、通信装置１５１のエラー情報とが連結されて暗号化された状態で保存される。なお、ＳＳＩＤやパスワードは外部のアクセスポイント１３１と接続するための情報であってもよく、この場合、ＭＡＣアドレスは、アクセスポイント１３１のＭＡＣアドレスでありうる。
【００５４】
通信装置１５１は、上述のＳ５０４において、ＳＳＩＤ、パスワード、通信装置１５１のエラー情報に加えて、通信部１５６のＭＡＣアドレスと近距離無線通信部１５７のＢＤアドレスを読み出す。そして、通信装置１５１は、例えば、図１３のように、上述のＳＳＩＤとＭＡＣアドレスとを連結して第１連結データを生成し、また、上述のパスワードとＢＤアドレスとエラー情報とを連結して第２連結データを生成する。その後、通信装置１５１は、図１３のように、第１連結データと第２連結データとを、Ｓ５０３で生成した暗号鍵を用いてそれぞれ暗号化し、第１連結暗号データと第２連結暗号データとを生成する。なお、このときに、暗号化時のパディングデータのサイズが小さくなるように、連結対象データが選択されうる。この例では、第１連結データに関するパディングデータのサイズと第２連結データに関するパディングデータのサイズの総量が、最小又は十分に小さくなるように、それぞれの連結対象データが選択されうる。例えば、図１３の例では、ＳＳＩＤとＭＡＣアドレスとが連結されて第１連結データが生成されているが、これに限られない。例えば図７のように、ＳＳＩＤとパスワードとエラー情報とを連結し、かつ、ＭＡＣアドレスとＢＤアドレスとを連結させた方がパディングデータの総サイズが小さい場合には、ＳＳＩＤとパスワードとエラー情報とが連結されると判定されうる。なお、これら以外の組み合わせが用いられてもよい。また、３つ以上の連結データが別個に生成されてもよい。さらに、例えばＭＡＣアドレスやＢＤアドレスについては他の情報と連結させずに暗号化してもよい。また、本実施形態で読み出す情報も一例に過ぎず、これら以外のデータがさらに連結されて暗号化されてもよい。
【００５５】
通信装置１５１は、Ｓ５０５において、Ｓ５０４で生成した第１連結暗号データと第２連結暗号データとを近距離無線通信部１５７のキャラクタリスティック１２０１及び１２０２へ書き込む。これにより、個々にＳＳＩＤとパスワードとＭＡＣアドレスとＢＤアドレスとエラー情報を暗号化して暗号データを生成し、格納するよりも少ない容量で、これらのデータをキャラクタリスティックに格納することが可能になる。
【００５６】
一方、情報処理装置１０１は、Ｓ１００３において、Ｓ１００１で取得した情報を、Ｓ１００２で生成した復号鍵を用いて復号する。このときの復号処理を、図１４に概略的に示す。図１４の処理は、図１３の処理の逆の処理である。すなわち、情報処理装置１０１は、第１連結暗号データ及び第２連結暗号データをそれぞれ復号し、それぞれの復号結果から第１連結データ及び第２連結データを生成する。情報処理装置１０１は、第１連結データと第２連結データとから、アクセスポイントとして動作する通信装置１５１の通信部１５６と接続するために使用するＳＳＩＤとパスワードを取得することができる。そして、情報処理装置１０１は、第１連結データと第２連結データとから取得されたＳＳＩＤとパスワードを使ってＷｉ−Ｆｉ接続を確立する。
【００５７】
上述の実施形態では、情報処理装置１０１が、ＢＬＥを使用して、通信装置１５１から暗号化された情報を取得する処理について説明した。しかし、情報処理装置１０１は、通信装置１５１から暗号化された情報を取得する際に、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）等のＢＬＥ以外の近距離無線通信を利用してもよい。
【００５８】
また、上述の実施形態では、キャラクタリスティックに保持させるデータ量を削減するために、連結暗号データを生成する例を示しているが、データを連結して暗号データのサイズを低減することは、これ以外の用途にも適用可能であることは明らかである。
【００５９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６０】
１０１：情報処理装置、１０３：ＣＰＵ、１０４：ＲＯＭ、１０５：ＲＡＭ、１０９：通信部、１１０：近距離無線通信部、１５１：通信装置、１５２：ＲＯＭ、１５３：ＲＡＭ、１５４：ＣＰＵ、１５６：通信部、１５７：近距離無線通信部、１６１：不揮発性メモリ
【図１】
2020022056.tif 000003
【図２】
2020022056.tif 000004
【図３】
2020022056.tif 000005
【図４】
2020022056.tif 000006
【図５】
2020022056.tif 000007
【図６】
2020022056.tif 000008
【図７】
2020022056.tif 000009
【図８】
2020022056.tif 000010
【図９】
2020022056.tif 000011
【図１０】
2020022056.tif 000012
【図１１】
2020022056.tif 000013
【図１２】
2020022056.tif 000014
【図１３】
2020022056.tif 000015
【図１４】
2020022056.tif 000016