(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-20
(45)【発行日】2022-12-28
(54)【発明の名称】通信装置、制御方法、及びプログラム
(51)【国際特許分類】
H04L 9/08 20060101AFI20221221BHJP
【FI】
H04L9/08 C
(21)【出願番号】P 2018144030
(22)【出願日】2018-07-31
【審査請求日】2021-07-26
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】門田 英二
【審査官】打出 義尚
(56)【参考文献】
【文献】特開2016-167803(JP,A)
【文献】特開2002-247026(JP,A)
【文献】国際公開第2009/147788(WO,A1)
【文献】特開2018-032910(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
他の装置からのアクセスが許容される所定サイズ
の記憶領
域を含むメモリを有する通信手段と、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータ
を連結した連結データのパディングデータのサイズが所定のサイズよりも小さくなる場合、前記連結データに対してブロック暗号化方式を用いて暗号化することによ
り暗号データを生成
し、前記複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくならない場合、前記複数のデータを連結することなく前記複数のデータに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成する暗号化手段と、
を有
することを特徴とする通信装置。
【請求項2】
他の装置からのアクセスが許容される所定サイズの記憶領域を備え、Bluetooth Low Energy(BLE)規格に従う通信を行う通信手段と、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータ
を連結した連結データのパディングデータのサイズが所定のサイズよりも小さくなる場合、前記連結データに対してブロック暗号化方式を用いて暗号化することによ
り暗号データを生成
し、前記複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくならない場合、前記複数のデータを連結することなく前記複数のデータに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成する暗号化手段と、
を有
することを特徴とする通信装置。
【請求項3】
前記複数のデータのうちの取りうるデータの組み合わせの中から、当該データの組み合わせが連結された場合の連結データのサイズと、前記ブロック暗号化方式におけるブロックサイズとに基づいて、少なくとも1つの組み合わせを選択する選択手段をさらに有
し、
前記暗号化手段は、前記選択された組み合わせを暗号化することを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記選択手段は、第1のデータの組み合わせにおける第1連結データのサイズと前記ブロックサイズとの差分の大きさに基づいて定まるパディングデータのサイズが、第2のデータの組み合わせにおける第2連結データのサイズと前記ブロックサイズとの差分の大きさに基づいて定まる前記パディングデータのサイズより小さい場合、前記第1のデータの組み合わせを、前記少なくとも1つの組み合わせのうちの1つとして選択する、
ことを特徴とする請求項3に記載の通信装置。
【請求項5】
前記選択手段は、前記ブロックサイズと前記データの組み合わせごとの前記連結データのサイズとの差分の大きさに基づいて定まるパディングデータのサイズが最小となるデータの組み合わせを、前記少なくとも1つの組み合わせのうちの1つとして選択する、
ことを特徴とする請求項3に記載の通信装置。
【請求項6】
前記選択手段は、前記ブロックサイズと前記データの組み合わせごとの前記連結データのサイズとの差分の大きさに基づいて定まるパディングデータのサイズが所定量より小さいデータの組み合わせを、前記少なくとも1つの組み合わせのうちの1つとして選択する、
ことを特徴とする請求項3に記載の通信装置。
【請求項7】
前記通信手段は、Bluetooth Low Energy(BLE)規格に従って動作する、
ことを特徴とする請求項1に記載の通信装置。
【請求項8】
前
記記憶領域は、前記BLE規格におけるGeneric Attribute Profileのデータベースにおけるキャラクタリスティックに対応し、
前
記暗号データは前記キャラクタリスティックに保持される、
ことを特徴とする請求項7に記載の通信装置。
【請求項9】
前記通信手段を介して前記通信装置の通信相手となる情報処理装置は、前
記記憶領域に保持される前
記暗号デー
タを読み出し、前記読み出された前
記暗号デー
タを復号した復号結果に基づいて前記通信装置との無線接続を確立する、
ことを特徴とする請求項7に記載の通信装置。
【請求項10】
前記他の装置と通信するための前記通信手段と異なる第2の通信手段をさらに有し、
前記複数のデータは、前記第2の通信手段による通信のための情報を含む、
ことを特徴とする請求項1から9のいずれか1項に記載の通信装置。
【請求項11】
前記第2の通信手段による通信のための情報は、前記第2の通信手段によって生成されるネットワークの識別子を含む、
ことを特徴とする請求項10に記載の通信装置。
【請求項12】
前記第2の通信手段は、IEEE802.11規格シリーズに従って動作する、
ことを特徴とする請求項10又は11に記載の通信装置。
【請求項13】
前記第2の通信手段を介して受信した印刷ジョブに基づいて印刷処理を実行する印刷制御手段をさらに有する、
ことを特徴とする請求項10から12のいずれか1項に記載の通信装置。
【請求項14】
他の装置からのアクセスが許容される所定サイズ
の記憶領
域を有する通信手段を備えた通信装置の制御方法であって、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータ
を連結した連結データのパディングデータのサイズが所定のサイズよりも小さくなる場合、前記連結データに対してブロック暗号化方式を用いて暗号化することによ
り暗号データを生成
し、前記複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくならない場合、前記複数のデータを連結することなく前記複数のデータに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成する暗号化工程
を有することを特徴とする制御方法。
【請求項15】
他の装置からのアクセスが許容される所定サイズの記憶領域を備え、Bluetooth Low Energy(BLE)規格に従う通信を行う通信手段を有する通信装置の制御方法であって、
前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータ
を連結した連結データのパディングデータのサイズが所定のサイズよりも小さくなる場合、前記連結データに対してブロック暗号化方式を用いて暗号化することによ
り暗号データを生成
し、前記複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくならない場合、前記複数のデータを連結することなく前記複数のデータに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成する暗号化工程
を有することを特徴とする制御方法。
【請求項16】
コンピュータを、請求項1から13のいずれか1項に記載の通信装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データをブロック暗号を用いて暗号化する技術に関する。
【背景技術】
【0002】
近年、Bluetooth(登録商標)を用いた近距離無線通信機能を有する電子機器が普及している。例えば、スマートフォン等の情報処理装置とプリンタ等の通信装置との間の通信などに、Bluetoothが用いられる場合がある。電子機器は、Bluetoothによる近距離無線通信を行う場合、その通信相手とペアリングを行うことが特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、無線通信のセキュリティ向上に伴い、より利便性の高い暗号化処理が求められるようになってきた。
【0005】
本発明は上記課題に鑑みてなされたものであり、利便性の高い暗号化処理に関する技術を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様による通信装置は、他の装置からのアクセスが許容される所定サイズの記憶領域を含むメモリを有する通信手段と、前記他の装置によって読み出され、かつ、暗号化されるべき複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくなる場合、前記連結データに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成し、前記複数のデータを連結した連結データのパディングデータのサイズが所定のサイズよりも小さくならない場合、前記複数のデータを連結することなく前記複数のデータに対してブロック暗号化方式を用いて暗号化することにより暗号データを生成する暗号化手段と、を有する。
【発明の効果】
【0007】
本発明によれば、利便性の高い暗号化処理を実行することができる。
【図面の簡単な説明】
【0008】
【
図1】通信システム内の装置の構成例を示す図である。
【
図2】近距離無線通信部の構成例を示すブロック図である。
【
図4】鍵シードを生成して保存する処理の流れの例を示す図である。
【
図5】キャラクタリスティックに暗号化したデータを書き込む処理の流れの例を示す図である。
【
図7】暗号データの生成処理を概略的に説明する図である。
【
図8】鍵シードの公開/非公開を設定する処理の流れの例を示す図である。
【
図9】プリンタ登録処理の流れの例を示す図である。
【
図10】BLE経由で情報を取得する処理の流れの例を示す図である。
【
図11】連結暗号データの復号処理を概略的に説明する図である。
【
図12】GATTのデータの別の例を示す図である。
【
図13】暗号データの生成処理を概略的に説明する図である。
【
図14】連結暗号データの復号処理を概略的に説明する図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施の形態について説明する。なお、本発明は、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて以下に記載する実施形態に対して適宜変更が加えられたものについても、その範囲に含むことが理解されるべきである。
【0010】
(通信システムの構成)
図1に、本実施形態に係る通信システムとシステム内の装置の構成例を示す。通信システムは、例えば、情報処理装置101、アクセスポイント131、及び、通信装置151を含んで構成される。情報処理装置101は、例えば、スマートフォン、携帯端末、ノートPC(Personal Computer)、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等の任意の情報処理装置である。なお、以下では、情報処理装置101はスマートフォンであるものとする。また、通信装置151は、例えばプリンタであるが、情報処理装置101と無線通信を行うことが可能である限りにおいて、任意の電子機器でありうる。例えば、通信装置151は、複写機、ファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ、スマートスピーカ等であってもよい。また、通信装置151は、複写機能、FAX機能、印刷機能等の複数の機能を備えるMFP(Multi Function Printer)であってもよい。なお、以下では、通信装置151は、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等のプリンタであるものとする。
【0011】
情報処理装置101は、一例において、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、通信部109、近距離無線通信部110、撮影装置111を有する。なお、これらのブロックは、例えば内部バスを用いて相互に接続される。また、CPUはCentral Processing Unitの、ROMはRead Only Memoryの、RAMはRandom Access Memoryの、頭字語である。また、
図1では、情報処理装置101の外部に表示部108(外部表示装置)が存在するような図解がなされているが、表示部108は情報処理装置101に内蔵されたディスプレイ等の情報提示装置であってもよい。なお、これらの構成は一例であり、情報処理装置101は、図示された以外のブロックを含んでもよい。また、
図1における複数のブロックが1つのブロックにまとめられてもよいし、1つのブロックが2つ以上のブロックに分割されてもよい。すなわち、情報処理装置101は、後述するような処理を実行可能な範囲で任意の構成をとることができる。
【0012】
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みOS(Operating System)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行うために用いられる。RAM105は、例えば、バックアップ電源を必要とするSRAM(Static RAM)等で構成される。なお、RAM105は、不図示のデータバックアップ用の一次電池によってデータが保持されるため、プログラム制御変数等のデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられる。また、RAM105は、CPU103の主メモリ及びワークメモリとしても用いられる。外部記憶装置106は、印刷実行機能を提供するアプリケーションを記憶する。また、外部記憶装置106は、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムを記憶する。これらのプログラムが使用する各種情報や、通信部を介して他の情報処理装置やインターネットから得られた画像データも、外部記憶装置106に保存されうる。
【0013】
入力インタフェース102は、ユーザからのデータ入力や動作指示の受付のためのインタフェースであり、物理キーボードやボタン等で構成される。出力インタフェース107は、表示部108に、データの表示や情報処理装置101の状態の通知を行わせるための制御を行うインタフェースである。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などを含んで構成され、データの表示や情報処理装置101の状態のユーザへの通知を行う。なお、ユーザからの操作の受け付け等のための入力インタフェース102と、画面の出力のための後述の出力インタフェース107(及び表示部108)とが、タッチパネル等の1つの装置によって実現されてもよい。例えば、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを含んだソフトキーボードを表示させることにより、表示部108を介してユーザからの入力の受け付けが行われうる。なお、出力インタフェース107は、音出力や振動出力によって、不図示の出力部に情報を提示させるための制御を行ってもよい。
【0014】
通信部109は、所定の無線通信方式に従って通信を行うための回路やアンテナを含んで構成され、同じ無線通信方式に従って通信を行うことができる通信装置151等の他の装置と接続し、データ通信を実行する。例えば、通信部109は、無線LANの端末としての機能を有し、通信装置151の通信部156が無線LANのアクセスポイントとして機能している場合に、そのアクセスポイントに無線接続することができる。通信部109と通信部156との間で接続が確立されることにより、情報処理装置101と通信装置151とが相互に通信することができるようになる。なお、通信部109がアクセスポイントとして動作する場合に、通信装置151が端末として動作することによって接続を確立することもできる。さらに、情報処理装置101と通信装置151が共に端末として動作しながら、端末間通信を行うこともできる。なお、通信部109や通信部156は、アクセスポイント又は端末としてのハードウェアを有し、各機能を固定的に実行するように構成されてもよいし、ソフトウェア的にこれらの機能を動的に切り替えて使用する能力を有していてもよい。例えば、通信部156は、アクセスポイントとして動作することが可能であるが、アクセスポイントのような機能を実行できればよい。すなわち、通信部156は、ネットワークを構築したり、ネットワークにおいて使用されるチャネルを決定する機能を備えていればよい。なお、アクセスポイントのような機能を実行する装置を親局と呼ぶこともある。逆に、親局が生成したネットワークに参加する装置を子局と呼ぶこともある。また、通信部109と通信部156は、共に端末として動作し、例えばアクセスポイント131を介して接続することもできる。なお、アクセスポイント131は、例えば、無線LANルータ等の機器であり、ネットワークを構築したり、ネットワークにおいて使用されるチャネルを決定する装置である。通信部109及び通信部156は、IEEE802.11規格シリーズに準拠した無線LANの無線通信方式に従って動作する能力を有してもよいし、他の無線通信方式に従って動作する能力を有してもよい。例えば、通信部109及び通信部156は、例えば(一例においてバージョン3.0以前の)Bluetooth(登録商標)等の規格に従って動作する能力を有してもよい。
【0015】
近距離無線通信部110は、情報処理装置101と一定の近距離範囲内に存在する通信装置151等の他の装置と無線接続し、データ通信を実行するための回路やアンテナを含んで構成されるデバイスである。なお、近距離無線通信部110は、通信部109と異なる無線通信方式によって通信を行う。近距離無線通信部110は、同じ無線通信方式に従って動作する、通信装置151の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110及び近距離無線通信部157は、Bluetooth Low Energy(BLE)規格に従って動作するものとする。なお、Bluetooth機器の各々の通信モジュールには、機器固有の識別情報であるBDアドレス(Bluetooth Device Address)が割り当てられる。
【0016】
撮影装置111は、撮影素子で撮影した画像をデジタルデータに変換する装置である。デジタルデータは、一度RAM105に格納され、その後、CPU103によって実行されるプログラムに基づいて所定の画像フォーマットに変換されて、画像データとして外部記憶装置106に保存される。
【0017】
通信装置151は、一例において、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157、入力インタフェース158、出力インタフェース159、及び、不揮発性メモリ161を有する。なお、これらのブロックは、例えば内部バスを用いて相互に接続される。また、
図1では、通信装置151の外部に表示部160(外部表示装置)が存在するような図解がなされているが、表示部160は通信装置151に内蔵されたディスプレイであってもよい。なお、これらの構成は一例であり、通信装置151は、図示された以外のブロックを含んでもよい。また、
図1における複数のブロックが1つのブロックにまとめられてもよいし、1つのブロックが2つ以上のブロックに分割されてもよい。すなわち、通信装置151は、後述するような処理を実行可能な範囲で任意の構成をとることができる。
【0018】
CPU154は、システム制御部であり、通信装置151の全体を制御する。RAM153は、例えばRAM105と同様に、バックアップ電源を必要とするDRAM(Dynamic RAM)等で構成される。RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する際に用いられうる。RAM153は、バックアップ用の電源が供給されることによってデータが保持されるため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行うために用いられる。また、通信装置151の設定情報や通信装置151の管理データ等の、電源供給がされていない場合も保持する必要があるデータを格納するメモリエリアも、ROM152に設けられうる。
【0019】
通信部156は、上述の通信部109と同様の機能を有し、通信部109との通信を直接接続により又はアクセスポイント131を介した間接接続により、行うことができる。近距離無線通信部157は、情報処理装置101の近距離無線通信部110と同じ無線通信方式(本実施形態ではBLE規格に従う無線通信方式)を用いて、近距離無線通信部110との間で近距離無線通信を行うことができる装置である。
【0020】
プリントエンジン155は、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づいて、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。そのため、通信装置151は、印刷制御を実行することも可能である。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信されうる。
【0021】
入力インタフェース158は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。出力インタフェース159は、表示部160に、データの表示や通信装置151の状態の通知を行わせるための制御を行うインタフェースである。表示部160は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などを含んで構成され、データの表示や通信装置151の状態のユーザへの通知を行う。なお、ユーザからの操作の受け付け等のための入力インタフェース158と、画面の出力のための後述の出力インタフェース159(及び表示部160)とが、タッチパネル等の1つの装置によって実現されてもよい。例えば、表示部160上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを表示させることにより、表示部160を介してユーザからの入力の受け付けが行われうる。なお、出力インタフェース159は、音出力や振動出力によって、不図示の出力部に情報を提示させるための制御を行ってもよい。
【0022】
不揮発性メモリ161は、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等のデバイスによって構成される。不揮発性メモリ161は、主に、通信装置151の設定値等の、通信装置151の電源が供給されない間にも保持する必要のあるデータを保存するのに使用される。
【0023】
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、そのメモリに保存されてもよい。また、ここでは、例として情報処理装置101と通信装置151との処理分担を上述のように示したが、特にこの分担形態に限らず他の形態が用いられてもよい。
【0024】
近距離無線通信部157の詳細について、
図2を用いて説明する。近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成を有するデバイスである。本実施形態では、近距離無線通信部157は、上述のようにBLE規格に従う無線通信方式で通信を行う。なお、近距離無線通信部157とCPU154は、I2C(Inter-Integrated Circuit)等のバスインタフェースを介して通信を行うことができ、例えば、近距離無線通信部157内部の記憶領域にCPU154がアクセス可能である。近距離無線通信部157は、その内部に、例えば、CPU201、記憶領域202、ROM203、及び、RAM204を含んで構成される。CPU201は、近距離無線通信部157の全体を制御する。ROM203は、CPU201が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。RAM204は、例えば、バックアップ電源を必要とするDRAM等で構成され、プログラム制御変数等の重要なデータを揮発させずに格納する能力を有する。また、RAM204は、CPU201の主メモリ及びワークメモリとしても用いられうる。記憶領域202は、CPU154から、または、近距離無線通信部110を介して情報処理装置101から、アクセス可能な情報を記憶可能な領域である。なお、記憶領域202は情報記憶が可能な任意の装置によって構成され、例えばRAM204の一部として構成されてもよいし、ROM203やRAM204とは別の例えば不揮発性メモリによって構成されうる。なお、通信部156と近距離無線通信部157は別々のチップ上で動作してもよいし、1つのチップ上で動作してもよい。
【0025】
(GATT通信の概要)
BLE規格におけるGATT(Generic Attribute Profile)通信の概要について説明する。GATTは、データの転送元と転送先とに基づいて、GATTクライアントとGATTサーバとの2つのロールを定義している。GATTクライアントは、GATTサーバにリクエストを送信し、GATTサーバからの応答を受信する役割である。GATTサーバは、GATTクライアントからの要求を受信した場合に応答を返す役割である。なお、本実施形態では、情報処理装置101がGATTクライアントとなり、通信装置151がGATTサーバとなるものとする。すなわち、情報処理装置101は、通信装置151の通信相手装置である。なお、GATTサーバは、データまたは状態情報を格納するデバイスである。GATTクライアントは、GATTサーバに対して、データのリード・ライトを実行することができる。
【0026】
GATTのデータベースは、サービス、キャラクタリスティック、ディスクリプタと呼ばれる3つの要素を含んで構成される。なお、GATTのデータベースは、記憶領域202により保持される。これらの3つの要素の関係を
図3に示す。サービスは、1つ以上のキャラクタリスティックを含み、キャラクタリスティックはディスクリプタを含む。これらのうち、キャラクタリスティックが、ユーザデータを保持するために用いられ、複数のキャラクタリスティックを用いることにより、それぞれ別個の情報を保持することができる。ディスクリプタは、必要に応じてキャラクタリスティックの付加情報を保持する。なお、ディスクリプタは存在しなくてもよい。なお、キャラクタリスティックに保存できるデータのサイズは、予め決められている所定サイズである。
【0027】
サービス、キャラクタリスティック、ディスクリプタは、それぞれに割り当てられたUUID(Universally Unique Identifier)により識別可能である。UUIDは、例えば、16進数32桁(128ビット)で「550e8400-e29b-41d4-a716-446655440000」のように表現される。UUIDは、ソフトウェア上でオブジェクトを一意に識別するための識別子として使用される。なお、Bluetooth SIG(Special Interest Group)の標準で定義されている値については、4桁で表現される。
【0028】
サービス、キャラクタリスティック、ディスクリプタは、それぞれ、GATTクライアントに対する、リード・ライトの属性やセキュリティの属性を設定することができる。GATTクライアントは、サービス及びキャラクタリスティックにそれぞれ対応するUUIDを指定することにより、キャラクタリスティックごとに保持される値に対して、リード・ライトを実行することができる。ただし、リード・ライトが実行できるか否かは、サービスとキャラクタリスティックとのそれぞれに設定されているリード・ライト属性に従って定まる。
【0029】
(処理の流れ)
例えばBluetooth通信機器に搭載されているメモリ容量は小さいことが多く、このため、Bluetooth通信機器では小容量の情報を記録するように構成されることが多い。これに対して、Bluetooth通信機器のメモリに記録する複数の情報を、AES(Advanced Encryption Standard)のようなブロック暗号で個別に暗号化すると、情報ごとにパディングデータが挿入されうる。このため、場合によっては暗号化対象のデータ量に対してパディングデータの量が大きくなり、Bluetooth機器に搭載されているメモリ容量が不必要に浪費されてしまう場合がありうる。以下では、この点を考慮して実行される処理について説明する。
【0030】
続いて、通信システム内で実行される処理の流れの例について説明する。本通信システムでは、通信装置151から情報処理装置101へ、近距離無線通信部157を介して暗号化されたデータを送信する。ここで、送信されるデータは、例えば、通信部109がアクセスポイント131や通信部156と接続するために用いられる通信パラメータのデータでありうる。本実施形態では、通信装置151は、近距離無線通信部157内の記憶領域202に、送信対象データを暗号化した後に書き込む。情報処理装置101は、この暗号化されたデータを読み出し、その暗号化されたデータを復号することによって、必要なデータを取得することができる。
【0031】
まず、通信装置151が、鍵シードを生成して保存する処理について、
図4を用いて説明する。本処理では、通信装置151は、まず、鍵シードの生成が必要か否かを判定する(S401)。この判定は、例えば、不揮発性メモリ161の鍵シードが格納される領域に、有効な鍵シードの値が格納されているか否かを通信装置151が確認することによって行われる。通信装置151は、有効な鍵シードの値が不揮発性メモリ161に格納されていない場合に、鍵シードの生成が必要であると判定する。また、この判定は、例えば通信装置151の起動時に実行されうるが、それ以外のタイミングで実行されてもよい。なお、鍵シードは、暗号鍵を生成するために利用する値である。また、暗号鍵は、データを暗号化する際に用いられる値であり、本実施形態では、暗号鍵は鍵シードを用いて算出される。鍵シードから暗号鍵を算出するアルゴリズムは、例えばハッシュ関数を用いるアルゴリズムでありうる。ハッシュ関数は、入力値に対して出力値が一意となる関数であり、出力の重複が少なくなるよう設計されている関数である。なお、入力値に対して一意の出力値が得られる計算方法によって暗号鍵が生成される限りにおいて、他のアルゴリズムが用いられてもよい。また、本実施形態では、鍵シードと無効値とが区別可能なように鍵シードが生成される。例えば、鍵シードの値が「0」を示す場合にこの鍵シードを無効値として扱うものとし、鍵シードの生成時には、このような無効値が生成されないような制御が行われる。
【0032】
通信装置151は、鍵シードの生成が必要と判定した場合(S401でYES)、鍵シードを生成する処理を実行する(S402)。ここでの鍵シードは、無効値が生成されない限り、生成の度に同じ値が生成されてもよいし、ランダムな値が生成されてもよい。通信装置151は、生成した鍵シードを不揮発性メモリ161に保存する(S402)。一方、通信装置151は、鍵シードの生成が必要でないと判定した場合(S401でNO)、鍵シードを生成せずに、
図4の処理を終了する。なお、通信装置151は、鍵シードの生成が必要でないと判定される場合であっても、例えば鍵シードの再生成を指示するユーザ操作を受け付けた場合等には、鍵シードを生成しうる。
【0033】
続いて、通信装置151が、RAM153または不揮発性メモリ161に保存されている設定値を暗号化して、近距離無線通信部157に書き込む際の処理について、
図5を用いて説明する。本処理では、まず、通信装置151が、近距離無線通信部157のキャラクタリスティックを更新する必要があるか否かを判定する(S501)。例えば、通信装置151は、通信装置151内のRAM153または不揮発性メモリ161に保存されている設定値が更新された場合にキャラクタリスティックを更新する必要があると判定する。なお、設定値の更新は、例えば通信装置151の表示部160を介して入力されたユーザ指示により行われる。本実施形態では、一例として、後述のように、SSID、パスワードが暗号化される。このため、例えば、ユーザが、通信装置151の表示部160を介して、通信部156が構築するネットワークのSSIDおよびパスワードの少なくとも1つを変更した場合、通信装置151はS501においてYESと判定する。また、ユーザが通信装置151の表示部160を介して、例えば、通信部156が使用する外部のアクセスポイントを変更した場合、インフラストラクチャ接続のために使用されるSSIDなどが変更される。そのため、通信装置151はS501においてYESと判定する。また、通信装置151は、自装置の起動時に近距離無線通信部157のキャラクタリスティックを初期化してもよく、また、設定値によらずにキャラクタリスティックの値を更新してもよい。
【0034】
ここで、
図6を用いて、通信装置151の近距離無線通信部157がGATTサーバとして有するデータベースの構造の例について説明する。ベンダの独自サービス名「Original」(Service UUID:00000000-0000-1000-1000-00405f9b34fb)には、4つのキャラクタリスティック601~604が含まれる。4つのキャラクタリスティックは、それぞれ、「連結暗号データ」、「鍵シード」、「固有名称」、「完了通知」を保持する。これらのキャラクタリスティックに対しては、それぞれ別個のCharacteristics UUIDが割り当てられる。また、これらのキャラクタリスティックのそれぞれに対して、Read属性とWrite属性及び保存するデータに対する暗号化の有無が定められる。
図6において、「Read」部分が「〇」で示されるキャラクタリスティックは読み出しが許容されており、「Write」部分が「〇」で示されるキャラクタリスティックは書き込みが許容されている。同様に、
図6において、「暗号化」部分が「○」で示されているキャラクタリスティックでは、キャラクタリスティック602によって提供される鍵シードから算出される暗号鍵を用いて暗号化された後のデータが保持される。
【0035】
図6のキャラクタリスティックの一部の内容についてさらに詳細に説明する。キャラクタリスティック601には、例えば、通信装置151の通信部156がアクセスポイントとして動作している場合に、通信部156により構築されたネットワークに他の装置が接続するための情報が保持される。例えば、そのアクセスポイントのSSID(Service Set Identifier)及びパスワードと、通信装置151のエラー情報等が、キャラクタリスティック601に保存される。なお、SSIDは、アクセスポイント自身又はアクセスポイントが生成するネットワークを識別するための識別子である。これらのSSIDとパスワードとエラー情報は、連結されて暗号化された状態で保存される。キャラクタリスティック603には、通信装置151の固有名称である「printer」という文字列が暗号化された状態で保存される。これらの暗号化された情報は、機密性の高い情報として扱われうる。なお、
図6で説明される近距離無線通信部157がGATTサーバとして有するデータベースは一例に過ぎず、これに限定されない。例えば、任意の項目がキャラクタリスティックとして追加されうる。
【0036】
図5に戻り、通信装置151は、近距離無線通信部157のキャラクタリスティックを更新する必要はないと判定した場合(S501でNO)は、
図5の処理を終了する。一方、通信装置151は、近距離無線通信部157のキャラクタリスティックを更新する必要があると判定した場合(S501でYES)、S402で生成し、RAM153や不揮発性メモリ161に保存されている鍵シード値を読み出す(S502)。そして、通信装置151は、S502で読み出した鍵シードを用いて暗号鍵を生成する(S503)。なお、本実施形態では、暗号化アルゴリズムとして、情報を暗号化する際に用いる暗号鍵と暗号化されたデータを復号する際に用いる復号鍵とで同一の鍵を用いる、共通鍵暗号方式が用いられるものとする。なお、本実施形態では、特に、共通鍵暗号方式の一種であるAESを用いるものとするが、これに限定されず、その他の暗号化アルゴリズムが用いられてもよい。通信装置151は、RAM153または不揮発性メモリ161に保存されているSSIDとパスワードとエラー情報を読み出し、これらを連結させて暗号化を実行する(S504)。データの連結と暗号化について、
図7を用いて概説する。
図7に示すように、読み出されたSSID(「IJ_PRINTER_01」)、パスワード(「p8YTxRe」)、及びエラー情報(「1000」)の3つのデータは、連結されて1つの連結データが生成される。そして、この連結データに対して一括して暗号化が行われ、これらの3つのデータが連結された1つの連結データに対応する1つの連結暗号データが得られる。なお、
図7の連結データは一例であり、任意の複数のデータが連結されうる。なお、ここでの「連結」は、1つのデータの後に別のデータが(例えばデータの区切りを示す特定のデータを挟んで)繋げられることを指す。連結暗号データのデータサイズは、1つのキャラクタリスティックに保存可能なデータサイズよりも小さい、または、同じである。ここで、例えば1つのキャラクタリスティックに対して1種類のデータのみ(例えば、SSIDのみ)をブロック暗号化方式に従って暗号化して保存する場合を想定する。なお、このSSIDのデータサイズは、ブロック暗号化方式のブロックサイズの整数倍ではないとする。この場合、SSIDのデータサイズをブロックサイズで割った時の余りを埋める必要がある。この余りを埋めるために使用されるデータがパディングデータである。SSIDを暗号化することで生成された暗号データが1つのキャラクタリスティックに保存される。ここで1つのキャラクタリスティックに保存される暗号化データのデータサイズは、SSIDのデータサイズとパディングデータの和に相当する。つまり、状況によっては、1つのキャラクタリスティックに保存された暗号化データに含まれる実質的なデータはわずかで、残りの大部分がパディングデータとなってしまうおそれがある。以上のような保存処理をデータ単位に行っていくと、近距離無線通信部157の記憶領域202に必要なデータが保存できなくなるおそれがある。
【0037】
一方、S504において上述したように、本実施形態は、複数のデータを連結した連結データのサイズが、ブロックサイズの整数倍に近くなるように複数のデータを連結する。さらに、キャラクタリスティックに保存可能なデータサイズ以下に収まるように連結データが生成される。このように連結データが生成されることで、複数のデータを個別に暗号化することで生成されるパディングデータの合計サイズよりも、本実施形態を実行することで生成される連結暗号データに含まれるパディングデータのサイズを軽減することが可能となる。すなわち、本実施形態は、ブロック暗号を用いて得られる暗号データのサイズを抑制することができる。
【0038】
なお、本実施形態では、情報処理装置101が通信装置151の通信部109とダイレクトに通信するためのSSID及びパスワードと通信装置151のエラー情報を、RAM153または不揮発性メモリ161から読み出すとしたが、これに限られない。例えば、外部のアクセスポイント131と接続するためのSSID及びパスワード等が読み出されてもよい。また、S504で暗号化される対象は、S501で更新が必要とされた設定値でなくてもよい。また、本実施形態では、暗号化対象として連結させる複数のデータは、ブロック暗号化方式のブロックサイズとそれらの複数のデータのサイズの全長との差分に応じて定まる暗号化時のパディングデータのサイズに応じて動的に決定されうる。例えば、パディングデータのサイズが最小となるように、連結させるデータが決定されうる。また、パディングデータのサイズが所定量より小さくなるように、連結させるデータが選択されてもよい。この場合、複数の組み合わせにおいて、パディングデータのサイズが所定量より小さい場合、その複数の組み合わせのうちの1つが、例えばランダムに又はパディングデータのサイズが最小のものなどの所定の基準に基づいて、選択されうる。また、どのようなデータの組み合わせにおいても、パディングデータのサイズが所定量より小さくならない場合は、例えばパディングデータのサイズが最小となるようなデータの組み合わせを選択して、又は連結を行わずに、暗号化を行いうる。また、第1の組み合わせのデータを連結させた場合のパディングデータのサイズが、第2の組み合わせのデータを連結させた場合のパディングデータのサイズより小さい場合は、第1の組み合わせのデータを連結させて暗号化を行うようにしうる。すなわち、パディングデータのサイズが最小でなくても、相対的にそのサイズが小さくなるような組み合わせが、連結対象として選択されうる。さらに、例えば、複数のデータを連結させる場合と連結させない場合とで、連結させた方がパディングデータのサイズが小さくなる場合にはデータを連結させ、パディングデータのサイズが小さくならない場合にはデータを連結させないようにしうる。パディングデータのサイズに応じた連結データの決定方法では、連結データのサイズが暗号ブロックサイズ(AESの場合は16バイト)の整数倍に近い大きさとなるように連結データが選択される。暗号ブロックサイズは、AESの場合は16バイトであるが、例えば32バイトなどの16バイト以外のブロックサイズを有するブロック暗号化方式が用いられてもよい。この場合、連結データのサイズとブロックサイズの大きさとに基づいて、連結対象となるデータが選択される。なお、データの連結の際には、データの区切りとなる値が連結されるデータ間に挿入されてもよい。
【0039】
図5に戻り、通信装置151は、S504で暗号化した連結暗号データを、近距離無線通信部157のキャラクタリスティック601(連結暗号データを保持するキャラクタリスティック)へ書き込む(S505)。このような連結暗号データが用いられることにより、SSIDとパスワードとエラー情報とが個別に暗号化されてキャラクタリスティックに格納されるよりも少ない容量で、データを格納することが可能になる。なお、通信装置151は、このタイミングでRAM153や不揮発性メモリ161から暗号化する必要のない値を読み出し、暗号化せずに近距離無線通信部157のキャラクタリスティックに書き込んでもよい。
【0040】
上述の処理は、
図6において「Read」が「○」で、かつ、「暗号化」部分が「○」の各キャラクタリスティックに保存される全ての値について繰り返し実行される。すなわち、
図6において「Read」が「○」で、かつ、「暗号化」部分が「○」の各キャラクタリスティックに保存される値は、全てRAM153または不揮発性メモリ161から読み出され、暗号化された値となる。
【0041】
なお、上述の説明では、S501でキャラクタリスティックの更新が必要と判定された場合にS502及びS503で暗号鍵を生成すると説明したが、前回のキャラクタリスティックの更新時から暗号鍵が変更されない場合、この処理は省略されてもよい。すなわち、S501でキャラクタリスティックの更新が必要と判定された際に、鍵シードが初期化されていた場合にのみ、暗号鍵を生成するようにしてもよい。
【0042】
次に、
図8を用いて、通信装置151によって実行される、鍵シードの公開/非公開を設定する処理の流れの例について説明する。通信装置151は、入力インタフェース158を介してユーザによる特定のキー操作を受け付けることにより、鍵シードの公開/非公開を設定することができるように構成されうる。本実施形態では、鍵シードを非公開とする状態においては、鍵シードの値を無効値とし、鍵シードを公開する状態において、鍵シードの値を有効値とする。本処理では、通信装置151は、ユーザによる特定のキー操作を受け付けたことにより、鍵シードを格納するキャラクタリスティック602に対して、S402で示した方法で生成された鍵シードの値を書き込む(S801)。通信装置151は、所定の終了条件が満了するまで(S802でNOの間)鍵シードを公開した状態を維持し、所定の終了条件が満たされた場合に(S802でYES)、鍵シードの値を無効値に書き換え、鍵シードを非公開の状態に遷移させる(S803)。ここで、所定の終了条件は、例えば、情報処理装置101とのGATT通信により、情報処理装置101において通信装置151が登録された通知を受けることでありうる。なお、鍵シードを非公開とする方法は、無効値を格納する他に、データベース上で鍵シードが格納されているキャラクタリスティックを読み取り不可能な状態にすることによって行われてもよい。このような制御により、装置に対して特定の操作を行うことが許容される正当な利用者以外が、鍵シードを読み取ることができないようにすることができる。
【0043】
次に、
図9を用いて、情報処理装置101によって実行される、プリンタ登録処理の流れについて説明する。なお、以下では、新規登録対象のプリンタとして通信装置151が発見されるものとする。情報処理装置101は、アプリケーションを介してプリンタ登録処理を開始すると、近距離無線通信部110を用いて、周囲のプリンタからのBLEアドバタイズ及びスキャンレスポンスから、アドバタイズ情報を受信する(S901)。そして、情報処理装置101は、受信したアドバタイズ情報の送信元のプリンタ(通信装置151)が、アプリケーションが対応可能かつ登録済みでないプリンタである場合に、そのプリンタの情報を新規登録が可能なプリンタ情報として表示する(S902)。なお、情報処理装置101は、S902において表示対象となるプリンタを複数発見した場合には、その複数のプリンタについてのプリンタ情報を表示し、ユーザに登録するプリンタを選択させうる(不図示)。
【0044】
次に、情報処理装置101は、ユーザによって選択されたプリンタ(通信装置151)に対して、近距離無線通信部110を通じて接続要求を送信し、BLE接続を行う(S903)。なお、情報処理装置101のアプリケーションは、事前の取り決めにより、
図6で説明した通信装置151が有するベンダ独自サービスのキャラクタリスティックの構成の知識を有する。また、このアプリケーションは、例えばユーザによる登録等によりキャラクタリスティック603に保持される固有名称の暗号化前の値の知識を有し、また、キャラクタリスティック604へ書き込むべき完了通知を示す値を記憶しているものとする。
【0045】
情報処理装置101は、BLE接続を確立すると、通信装置151の鍵シードが格納されている所定のキャラクタリスティック602に対する読み込みを実行し、そのキャラクタリスティックに保持されている値を取得する(S904)。そして、情報処理装置101は、読み込んだ値が有効値であるか否かに基づいて又は読み込みを行うことができたか否かに基づいて、通信装置151が鍵シードを公開している状態か否かを判定する(S905)。情報処理装置101は、S904で読み込んだ鍵シードの値が無効値である場合や読み取れない場合に、鍵シードが非公開な状態にあると判定する(S905でNO)。情報処理装置101は、通信装置151が鍵シードを非公開の状態であると判定すると(S905でNO)、鍵シードを公開する状態となるまで、所定時間待機する(S906)。なお、情報処理装置101は、このときに、表示部108等を介して、ユーザに対して通信装置151を鍵シード公開状態に移行させるように促す表示を行ってもよい。なお、情報処理装置101は、所定時間待っても鍵シード公開状態にならない場合や、ユーザによるキャンセル指示などを受けた場合、
図9の処理を終了させうる。
【0046】
一方、情報処理装置101は、通信装置151が鍵シードを公開している状態であると判定すると(S905でYES)、読み込んだ鍵シードに基づいて、
図5に関して上述したのと同様にして復号鍵を生成する(S907)。続いて、情報処理装置101は、固有名称が保持されたキャラクタリスティック603を読み込み、通信装置151の固有名称の情報を取得する(S908)。本実施形態では、
図6のように、通信装置151のGATTデータベースのキャラクタリスティック603には「printer」という固有名称の文字列が、暗号化された状態で保存され、かつ、読み取り可能な状態となっている。情報処理装置101は、この暗号化された固有名称の情報を取得し、S907で生成した復号鍵を用いてその暗号化された情報を復号し、通信装置151の固有名称の情報「printer」を取得する。
【0047】
その後、情報処理装置101は、S908で取得して復号された固有名称の情報「printer」が、事前に記憶している固有名称の情報と一致しているか否かに基づいて、復号鍵が正常値であるか否かを判定する(S909)。すなわち、情報処理装置101は、取得された固有名称の情報が、事前に記憶している固有名称の情報と一致する場合に、復号鍵が正常値であると判定する(S909でYES)。情報処理装置101は、復号鍵が正常であると判定した場合(S909でYES)、S902において選択したプリンタのBDアドレスなどの識別子と鍵シードとを関連付けて記憶することにより、このプリンタの登録処理を行う(S910)。情報処理装置101は、プリンタ登録処理を正常に完了したことに応じて、通信装置151のキャラクタリスティック604に対して、完了通知を示す値を登録する。ここでは、例えば、登録が完了したことを示す「registered」という特定の文字列を上述の共通鍵暗号方式で暗号化した値が、GATT通信を用いて、通信装置151のキャラクタリスティック604に書き込まれる。通信装置151は、キャラクタリスティック604に対して、定められた値(「registered」)が、指定した鍵シードを用いて暗号化されて書き込まれたことにより、情報処理装置101における登録処理が正常に完了したことを確認することができる。
【0048】
情報処理装置101は、プリンタ登録の完了により、
図9の処理を終了する。また、情報処理装置101は、復号鍵が正常でないと判定した場合(S909でNO)は、プリンタを登録せずに、
図9の処理を終了する。
【0049】
次に、
図10を用いて、情報処理装置101によって実行される、通信装置151(プリンタ)からBLE経由で情報を取得する処理の例について説明する。なお、本処理は、例えば、情報処理装置101が、上述のS903によって通信装置151とBLE接続済の状態であり、かつ、上述のS910によって通信装置151を登録済みの状態である場合に実行される。
【0050】
情報処理装置101は、通信装置151に対して、近距離無線通信部110を通じてGATT通信による情報取得を要求する(S1001)。ここで取得を要求する情報は、
図6で示される情報のうち、「暗号化」が「○」であるキャラクタリスティック(キャラクタリスティック601)等に保持される情報(例えば連結暗号データ)であり、上述のS504の処理によって暗号化されている情報である。続いて、情報処理装置101は、上述のS904で取得した鍵シードから、暗号化された情報を復号するための復号鍵を生成する(S1002)。なお、復号鍵の生成処理は、上述のS503又はS907と同様の処理である。なお、S907の処理で復号鍵を生成して保持しており、かつ、その復号鍵を用いて後述のS1003のデータの復号を行う場合は、S1002の処理は省略されてもよい。なお、本実施形態では共通鍵暗号方式を用いるため、暗号鍵の算出処理と復号鍵の算出処理とが同様となるが、その他の暗号方式を用いる場合にはこれらの鍵の算出処理は相異なりうる。その後、情報処理装置101は、S1001において取得した情報を、S1002で生成した復号鍵を用いて復号する(S1003)。この復号の様子を、
図11に概略的に示す。
図11のように、復号処理では、
図7の処理と逆の処理が行われ、例えば、キャラクタリスティック601から取得された連結暗号データから、SSID、パスワード及びエラー情報が連結された連結データが生成される。情報処理装置101は、復号によって取得された連結データから、通信装置151の通信部156がアクセスポイントとして動作する場合に、そのアクセスポイントと接続するためのSSID及びパスワードを取得することができる。情報処理装置101は、所定の区切り文字またはデータサイズに基づいてSSIDおよびパスワードを識別することができる。
【0051】
情報処理装置101は、この復号処理により、BLE標準のペアリングを実行することなく、通信装置151から暗号化された情報を取得し、取得した通信装置151の情報を活用することが可能となる。また、情報処理装置101が、BLE標準のペアリングを実行することなく、通信装置151に暗号化したデータを送信し、通信装置151が、受信した情報を活用することが可能となる。また、通信装置151は、パディングデータのサイズが最小になるように又は十分に小さくなるように連結データを生成する。そして、通信装置151は、その連結データを暗号化することによって、記憶容量の少ない通信装置151の近距離無線通信部157に暗号化されたデータを格納することが可能になる。また、情報処理装置101は、通信装置151から取得した情報を利用して通信装置151とWi-Fi接続を確立することができる。ここで、確立されるWi-Fi接続について説明する。情報処理装置101が取得した情報が通信部156により構築されたネットワークに関する情報である場合、情報処理装置101の通信部109は、通信部156とダイレクト接続を確立する。ダイレクト接続とは、アクセスポイント131のような外部のアクセスポイントを使用しない接続方法である。一方、情報処理装置101が取得した情報がアクセスポイント131により構築されたネットワークに関する情報である場合、通信部109は、アクセスポイント131を介して通信部156とインフラストラクチャ接続を確立する。そして、情報処理装置101は、これらの処理を経て確立されたWi-Fi接続(ダイレクト接続またはインフラストラクチャ接続)を介して、通信装置151に印刷ジョブを送信することや、通信装置151からスキャンデータを取得することができる。そして、通信装置151は、Wi-Fi接続を介して取得した印刷ジョブに基づいて印刷処理を実行する。また、通信装置151は、Wi-Fi接続を介してスキャンデータを送信する。
【0052】
なお、上述の説明では、RAM153または不揮発性メモリ161に保存されている、SSID、パスワード、及びエラー情報が読み出されて連結され、さらに暗号化された連結暗号データがキャラクタリスティックに保持される例について説明した。これらの情報は一例であり、これら以外の情報が連結及び暗号化されてキャラクタリスティックに保存されてもよい。例えば、通信部156のMACアドレスや、近距離無線通信部157のハードウェアアドレスを示すBDアドレスが、保存されてもよい。この場合の例について、
図12~
図14を用いて説明する。
【0053】
図12には、この場合に、通信装置151の近距離無線通信部157がGATTサーバとして有するデータベースの構造の例を示している。
図12の例では、ベンダの独自サービス名「Original」に、5つのキャラクタリスティック1201~1205が含まれている。
図6の例と比較すると、連結暗号データのキャラクタリスティックが1つ増えている。なお、「UUID」、「Read」、「Write」、及び「暗号化」の各項目については
図6と同様であるため、説明を省略する。第1連結暗号データのキャラクタリスティック1201には、アクセスポイントとして動作する通信部156と接続するためのSSIDと、通信部156のMACアドレスとが連結されて暗号化された状態で保存される。第2連結暗号データのキャラクタリスティック1202には、アクセスポイントとしての通信部156に接続するためのパスワードと、近距離無線通信部157のBDアドレスと、通信装置151のエラー情報とが連結されて暗号化された状態で保存される。なお、SSIDやパスワードは外部のアクセスポイント131と接続するための情報であってもよく、この場合、MACアドレスは、アクセスポイント131のMACアドレスでありうる。
【0054】
通信装置151は、上述のS504において、SSID、パスワード、通信装置151のエラー情報に加えて、通信部156のMACアドレスと近距離無線通信部157のBDアドレスを読み出す。そして、通信装置151は、例えば、
図13のように、上述のSSIDとMACアドレスとを連結して第1連結データを生成し、また、上述のパスワードとBDアドレスとエラー情報とを連結して第2連結データを生成する。その後、通信装置151は、
図13のように、第1連結データと第2連結データとを、S503で生成した暗号鍵を用いてそれぞれ暗号化し、第1連結暗号データと第2連結暗号データとを生成する。なお、このときに、暗号化時のパディングデータのサイズが小さくなるように、連結対象データが選択されうる。この例では、第1連結データに関するパディングデータのサイズと第2連結データに関するパディングデータのサイズの総量が、最小又は十分に小さくなるように、それぞれの連結対象データが選択されうる。例えば、
図13の例では、SSIDとMACアドレスとが連結されて第1連結データが生成されているが、これに限られない。例えば
図7のように、SSIDとパスワードとエラー情報とを連結し、かつ、MACアドレスとBDアドレスとを連結させた方がパディングデータの総サイズが小さい場合には、SSIDとパスワードとエラー情報とが連結されると判定されうる。なお、これら以外の組み合わせが用いられてもよい。また、3つ以上の連結データが別個に生成されてもよい。さらに、例えばMACアドレスやBDアドレスについては他の情報と連結させずに暗号化してもよい。また、本実施形態で読み出す情報も一例に過ぎず、これら以外のデータがさらに連結されて暗号化されてもよい。
【0055】
通信装置151は、S505において、S504で生成した第1連結暗号データと第2連結暗号データとを近距離無線通信部157のキャラクタリスティック1201及び1202へ書き込む。これにより、個々にSSIDとパスワードとMACアドレスとBDアドレスとエラー情報を暗号化して暗号データを生成し、格納するよりも少ない容量で、これらのデータをキャラクタリスティックに格納することが可能になる。
【0056】
一方、情報処理装置101は、S1003において、S1001で取得した情報を、S1002で生成した復号鍵を用いて復号する。このときの復号処理を、
図14に概略的に示す。
図14の処理は、
図13の処理の逆の処理である。すなわち、情報処理装置101は、第1連結暗号データ及び第2連結暗号データをそれぞれ復号し、それぞれの復号結果から第1連結データ及び第2連結データを生成する。情報処理装置101は、第1連結データと第2連結データとから、アクセスポイントとして動作する通信装置151の通信部156と接続するために使用するSSIDとパスワードを取得することができる。そして、情報処理装置101は、第1連結データと第2連結データとから取得されたSSIDとパスワードを使ってWi-Fi接続を確立する。
【0057】
上述の実施形態では、情報処理装置101が、BLEを使用して、通信装置151から暗号化された情報を取得する処理について説明した。しかし、情報処理装置101は、通信装置151から暗号化された情報を取得する際に、NFC(Near Field Communication)等のBLE以外の近距離無線通信を利用してもよい。
【0058】
また、上述の実施形態では、キャラクタリスティックに保持させるデータ量を削減するために、連結暗号データを生成する例を示しているが、データを連結して暗号データのサイズを低減することは、これ以外の用途にも適用可能であることは明らかである。
【0059】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0060】
101:情報処理装置、103:CPU、104:ROM、105:RAM、109:通信部、110:近距離無線通信部、151:通信装置、152:ROM、153:RAM、154:CPU、156:通信部、157:近距離無線通信部、161:不揮発性メモリ