(57)【特許請求の範囲】
【請求項１】
予め起動され動作中の特定のデバイスの出力データを取得する取得部と、
前記出力データの値が前記特定のデバイスの個体差が現れる所定の条件を満たした際に、当該値に関するデータを特定する特定部と、
前記特定部により特定された１つ以上のデータからなる固有情報を生成する生成部と、
前記固有情報に基づいて端末識別情報を算出する算出部と、を備える識別情報生成装置。
【請求項２】
前記算出部は、前記固有情報を一方向性関数に入力し、前記端末識別情報を算出する請求項１に記載の識別情報生成装置。
【請求項３】
前記算出部は、前記固有情報及び指定されたシード値の演算により、当該シード値毎に異なる前記端末識別情報を算出する請求項１又は請求項２に記載の識別情報生成装置。
【請求項４】
前記算出部は、
前記生成部により初回に生成された固有情報及び乱数の誤り訂正符号に基づく補助データを記憶し、
前記生成部により２回目以降に生成された固有情報に対して、前記補助データにより誤り訂正処理を行う請求項１から請求項３のいずれかに記載の識別情報生成装置。
【請求項５】
前記取得部は、特定のセンサデバイスによる測定値を取得する請求項１から請求項４のいずれかに記載の識別情報生成装置。
【請求項６】
前記特定部は、前記特定のデバイスの出力値から解析される特性データを特定する請求項１から請求項５のいずれかに記載の識別情報生成装置。
【請求項７】
端末の識別情報を生成する識別情報生成方法であって、
前記端末において予め起動され動作中の特定のデバイスの出力データを取得する取得ステップと、
前記出力データの値が前記特定のデバイスの個体差が現れる所定の条件を満たした際に、当該値に関するデータを特定する特定ステップと、
前記特定ステップにおいて特定された１つ以上のデータからなる固有情報を生成する生成ステップと、
前記固有情報に基づいて端末識別情報を算出する算出ステップと、を前記端末が実行する識別情報生成方法。
【請求項８】
端末の識別情報を生成するための識別情報生成プログラムであって、
前記端末において予め起動され動作中の特定のデバイスの出力データを取得する取得ステップと、
前記出力データの値が前記特定のデバイスの個体差が現れる所定の条件を満たした際に、当該値に関するデータを特定する特定ステップと、
前記特定ステップにおいて特定された１つ以上のデータからなる固有情報を生成する生成ステップと、
前記固有情報に基づいて端末識別情報を算出する算出ステップと、を前記端末に実行させるための識別情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末を一意に識別するための識別情報生成装置、識別情報生成方法及び識別情報生成プログラムに関する。
【背景技術】
【０００２】
従来、コンテンツ配信サービスでは、著作権保護のため、コンテンツを再生する端末毎に異なる鍵で暗号化し、各端末に配信することが一般的である。例えば、スマートフォンにおいては、端末のＭＡＣアドレス又はＢｌｕｅｔｏｏｔｈ（登録商標）のアダプタの識別子を取得し、当該端末の鍵を生成することが一般的である。
【０００３】
また、専用の回路を用いて端末の識別情報を生成する技術（例えば、特許文献１〜３参照）、及び電源投入時という特殊な状況でのメモリの特性に基づいて端末の識別情報を生成する技術（例えば、特許文献４参照）が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１２７７５７号公報
【特許文献２】特開２０１３−２１８４８３号公報
【特許文献３】特開２０１３−１３１８６７号公報
【特許文献４】特開２０１４−０５３０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、近年のスマートフォンのＯＳにおいては、セキュリティ及びプライバシ向上を目的として、一般のアプリケーションが通常のＡＰＩ経由で前述のＭＡＣアドレス及びアダプタの識別子等を取得することを制限している場合が多い。
【０００６】
また、特許文献１〜３のように専用の回路を用いる場合、端末内にこの専用回路を組み込む必要があるため、特にスマートフォン又はウェアラブル端末等の小型の機器では、利用できる端末に強い制約が生じる。
さらに、特許文献４のように汎用装置であるメモリを用いた場合、ハードウェア面での制約は少ない一方で、個々のメモリから特殊な状況における情報を取得するために専用のドライバを利用する必要があるため、ソフトウェア面で利用できる端末に制約が生じる。
このため、あらゆる端末において制約なく識別情報を生成することは難しかった。
【０００７】
本発明は、実装上の制約が少ない識別情報生成装置、識別情報生成方法及び識別情報生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る識別情報生成装置は、起動中の特定のデバイスの出力データを取得する取得部と、前記出力データから、前記特定のデバイスの個体差が現れる所定の条件を満たすデータを特定する特定部と、前記特定部により特定された１つ以上のデータからなる固有情報を生成する生成部と、前記固有情報に基づいて端末識別情報を算出する算出部と、を備える。
【０００９】
前記算出部は、前記固有情報を一方向性関数に入力し、前記端末識別情報を算出してもよい。
【００１０】
前記算出部は、前記固有情報及び指定されたシード値に基づいて、前記端末識別情報を算出してもよい。
【００１１】
前記算出部は、前記生成部により初回に生成された固有情報及び乱数の誤り訂正符号に基づく補助データを記憶し、前記生成部により２回目以降に生成された固有情報に対して、前記補助データにより誤り訂正処理を行ってもよい。
【００１２】
前記取得部は、特定のセンサデバイスから出力されるデジタル値を取得してもよい。
【００１３】
前記特定部は、前記特定のデバイスの出力値から解析される特性データを特定してもよい。
【００１４】
本発明に係る識別情報精製方法は、端末の識別情報を生成する方法であって、前記端末において起動中の特定のデバイスの出力データを取得する取得ステップと、前記出力データから、前記特定のデバイスの個体差が現れる所定の条件を満たすデータを特定する特定ステップと、前記特定ステップにおいて特定された１つ以上のデータからなる固有情報を生成する生成ステップと、前記固有情報に基づいて端末識別情報を算出する算出ステップと、を前記端末が実行する。
【００１５】
本発明に係る識別情報生成プログラムは、端末の識別情報を生成するためのプログラムであって、前記端末において起動中の特定のデバイスの出力データを取得する取得ステップと、前記出力データから、前記特定のデバイスの個体差が現れる所定の条件を満たすデータを特定する特定ステップと、前記特定ステップにおいて特定された１つ以上のデータからなる固有情報を生成する生成ステップと、前記固有情報に基づいて端末識別情報を算出する算出ステップと、を前記端末に実行させる。
【発明の効果】
【００１６】
本発明によれば、端末の識別情報を生成するための実装上の制約が低減される。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る端末の機能構成を示すブロック図である。
【図２】第１実施形態に係る取得部及び特定部による処理の実装例を示す図である。
【図３】第１実施形態に係る端末識別情報の算出処理を示す機能ブロック図である。
【図４】第２実施形態に係る端末識別情報の算出処理を示す機能ブロック図である。
【図５】第３実施形態に係る端末識別情報の算出処理を示す機能ブロック図である。
【図６】第４実施形態に係る端末識別情報の算出処理を示す機能ブロック図である。
【図７】第５実施形態に係る端末識別情報の算出処理を示す機能ブロック図である。
【発明を実施するための形態】
【００１８】
［第１実施形態］
以下、本発明の第１実施形態について説明する。
本実施形態に係る識別情報生成装置としての端末１は、スマートフォン又はウェアラブル端末等の電子機器である。端末１は、標準的に搭載されている加速度センサ・ジャイロセンサ・近接センサ等の各種センサ、マイク・スピーカ・カメラ等の入出力デバイス、又は無線通信（例えば、ＬＴＥ又はＷｉＭＡＸ（登録商標））若しくは近距離通信（例えば、Ｂｌｕｅｔｏｏｔｈ又はＮＦＣ）のためのアンテナ等のデバイスに含まれる電子回路の個体差を利用し、端末を一意に識別するための端末識別情報を生成する。
【００１９】
図１は、本実施形態に係る端末１の機能構成を示すブロック図である。
端末１は、制御部１０（例えば、ＣＰＵ）と、制御部１０により制御される各種のデバイス２０とを備える。
制御部１０は、デバイス２０を含むハードウェア群の全体を制御する機能部であり、本実施形態では、デバイス２０から出力されるデータを受け取り、端末１を一意に識別するための端末識別情報を生成する。
【００２０】
制御部１０は、取得部１１と、特定部１２と、生成部１３と、算出部１４とを備える。これらの各部は、端末１の記憶部に格納されたアプリケーション（識別情報生成プログラム）を制御部１０が実行することにより機能する。
【００２１】
取得部１１は、起動中の特定のデバイス２０の出力データを、デバイス２０毎に標準で用意されているＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）経由で取得する。
【００２２】
取得部１１が取得する出力データは、特定のデバイス２０から出力されるデジタル値（例えば、センサデバイスによる測定値）であってよく、この出力データは、個体差により、同一条件であってもデバイス毎に異なる値となる。
【００２３】
特定部１２は、出力データから、特定のデバイス２０の個体差が現れる所定の条件を満たすデータを特定する。
所定の条件を満たすデータは、例えば、デバイス２０から出力可能な最大又は最小のデータ、あるいは、特定の値に最も近い出力データ等であってよい。これらのデジタル値には、デバイス毎の個体差によって端数部分等が僅かに異なって現れる。
【００２４】
また、特定部１２は、特定のデバイス２０の出力値から解析される特性データを特定してもよい。
特性データは、例えば、出力値の線型特性における傾き又は切片、マイク・スピーカ・アンテナ等の周波数特性（例えば、最も感度の良い周波数の組み合わせ等）、カメラにおける色合い（ＲＧＢ値の偏り）又は明度等が挙げられる。
【００２５】
生成部１３は、特定部１２により特定された１つ以上のデータからなる、端末１の固有情報を生成する。生成部１３は、複数のデータを連結して端末１の固有情報を生成する場合、固有情報のデータ長を長くできる。この結果、単一のデータでは端末間で偶然に一致する可能性があったとしても、固有情報が重複する可能性が低減し、端末１の識別性が向上する。
算出部１４は、固有情報に基づいて端末識別情報を算出する。
【００２６】
ここで、固有情報の生成処理の具体例１〜３について説明する。
（具体例１）
制御部１０（取得部１１、特定部１２、生成部１３）は、加速度センサの最大値及び最小値から固有情報を生成する。
【００２７】
まず、利用者は、端末１を持ち強く振る。制御部１０は、処理の内部で暫定の最大値及び最小値を保存するための変数を持つ。固有情報の取得の際は、予めこれらの変数を全て０で初期化しておく。そして、特定部１２は、加速度センサから新たに取得した値が暫定の最大値よりも大きい場合はこの暫定の最大値を更新し、最小値よりも小さい場合はこの暫定の最小値を更新する。利用者が一定の期間、端末１を強く振り、暫定の最大値及び暫定の最小値が更新されなくなった場合、特定部１２は、これらの値をそれぞれ加速度センサの最大値及び最小値とみなす。
【００２８】
図２は、本実施形態に係る制御部１０（取得部１１、特定部１２）による処理の実装例を示す図である。
ｍａｘＸ，ｍｉｎＸ，ｍａｘＹ，ｍｉｎＹ，ｍａｘＺ，ｍｉｎＺは、それぞれＸ軸，Ｙ軸，Ｚ軸方向の暫定の最大値及び暫定の最小値を格納するための変数である。
【００２９】
この処理の結果、Ｘ軸，Ｙ軸，Ｚ軸方向の加速度の最大値及び最小値が取得される。例えば、Ｘ軸方向の加速度の最大値として「３９．５９９４８７ｍ／ｓ２」、最小値として「−３８．８５３７１４ｍ／ｓ２」、Ｙ軸方向の最大値として「３８．９８７５４９ｍ／ｓ２」、最小値として「−３８．４６５６５２ｍ／ｓ２」、Ｚ軸方向の最大値として「３９．２３６１７６ｍ／ｓ２」、最小値として「−３９．２１７０２６ｍ／ｓ２」が取得されたとする。
【００３０】
次に、制御部１０（生成部１３）は、加速度センサの個体差によって十分なばらつきを有する桁の値を文字列として取得し、Ｘ軸，Ｙ軸，Ｚ軸方向の加速度の最大値及び最小値から得られる６つの文字列を連接する。
例えば、上記の数値例においては、小数第２位から第６位までの値が十分なばらつきを有する。したがって、Ｘ軸方向の加速度の最大値の小数第２位から第６位までの値が５文字の文字列「９９４８７」として取得され、最小値からは文字列「５３７１４」が取得される。同様に、Ｙ軸方向の加速度の最大値からは文字列「８７５４９」が、最小値からは文字列「６５６５２」が取得される。また、Ｚ軸方向の加速度の最大値からは文字列「３６１７６」が、最小値からは文字列「１７０２６」が取得される。
【００３１】
生成部１３は、最後に、取得したこれらの値を全て連接することで、加速度センサの固有情報を得る。上記の数値例では、固有情報として、３０桁の１０進数「９９４８７５３７１４８７５４９６５６５２３６１７６１７０２６」が得られる。
【００３２】
（具体例２）
制御部１０（取得部１１、特定部１２、生成部１３）は、カメラの撮像画像の明度から固有情報を生成する。
【００３３】
まず、利用者は、明るさが均一の物体をカメラで撮影する。
特定部１２は、取得部１１により取得した撮像画像のうち、予め設定された複数の対象画素に対して、周囲の平均明度よりも明るい場合に「１」を、その他の場合の「０」を割り当てる。生成部１３は、複数の対象画素に割り当てられた値を連結し、複数ビットの固有情報を生成する。
【００３４】
（具体例３）
制御部１０（取得部１１、特定部１２、生成部１３）は、マイク又はアンテナ等のデバイス２０における受信周波数特性から固有情報を生成する。
【００３５】
特定部１２は、取得部１１により取得したデバイス２０の受信データ（音波、電磁波）を解析し、周波数分布を得ると、振幅が最大となる周波数、又は上位所定数の周波数を特定する。生成部１３は、特定された周波数を符号化し、固有情報を生成する。
【００３６】
図３は、本実施形態に係る制御部１０（算出部１４）による端末識別情報の算出処理を示す機能ブロック図である。
本実施形態では、算出部１４は、生成部１３により生成された固有情報を、そのまま端末１の端末識別情報として出力する。
【００３７】
本実施形態によれば、端末１は、アプリケーションがセンサ、入出力デバイス、アンテナ等の汎用のデバイス２０からＡＰＩ経由で取得できるデータの個体差を用いて、端末１の固有情報を生成する。
したがって、端末１における端末識別情報の生成方法は、スマートフォン及びウェアラブル端末等に汎用的に搭載されているデバイス２０を用いており、ハードウェア面での実装上の制約は少ない。また、デバイスに依存した特殊なドライバを用いることなく、一般のアプリケーションから、これらのデバイス２０の出力データを利用できるので、端末１は、この出力データに基づき端末識別情報を生成することで、ソフトウェア面での実装上の制約も少ない。
【００３８】
また、センサ値等、デバイス２０から出力されるデジタル値は、同一条件であっても数字データの並びに個体差があるため、端末１は、この個体差が現れるデータを特定することにより、容易に端末１の固有情報を生成できる。
【００３９】
また、端末１は、デバイス２０の出力値から解析される特性データを固有情報とすることもできる。端末１は、このように解析後のデータを用いることにより、固有情報の秘匿性を高め、さらに、特性データのばらつきが生じることにより、第三者に固有情報が知られるリスクを低減できる。
【００４０】
［第２実施形態］
以下、本発明の第２実施形態について説明する。
本実施形態では、算出部１４の機能が第１実施形態と異なる。
【００４１】
図４は、本実施形態に係る制御部１０（算出部１４）による端末識別情報の算出処理を示す機能ブロック図である。
算出部１４は、生成部１３により生成された固有情報を、一方向性関数に入力し、演算結果を端末識別情報として出力する。
【００４２】
一方向性関数としては、例えば、ハッシュ関数が挙げられる。また、鍵がさらに入力されるＭＡＣ生成関数が用いられてもよい。
さらに、生成される固有情報（例えば、周波数特性等の特性データ）に生ずる値のずれに対する対策として、一方向性関数にＦｕｚｚｙ  Ｅｘｃｔｒａｃｔｏｒが用いられてもよい。Ｆｕｚｚｙ  Ｅｘｃｔｒａｃｔｏｒの具体的な方式としては、例えば、「Ｙｅｖｇｅｎｉｙ  Ｄｏｄｉｓ，  Ｒａｆａｉｌ  Ｏｓｔｒｏｖｓｋｙ，  Ｌｅｏｎｉｄ  Ｒｅｙｚｉｎ，  ａｎｄ  Ａｄａｍ  Ｓｍｉｔｈ，  “Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒｓ：  Ｈｏｗ  ｔｏ  Ｇｅｎｅｒａｔｅ  Ｓｔｒｏｎｇ  Ｋｅｙｓ  ｆｒｏｍ  Ｂｉｏｍｅｔｒｉｃｓ  ａｎｄ  Ｏｔｈｅｒ  Ｎｏｉｓｙ  Ｄａｔａ，”  ｉｎ  ＳＩＡＭ  Ｊｏｕｒｎａｌ  ｏｎ  Ｃｏｍｐｕｔｉｎｇ，  ３８（１）：  ９７−１３９，  ２００８」が採用可能である。
【００４３】
本実施形態によれば、端末１は、一方向性関数によって固有情報を変換するので、偏りのある固有情報からも、エントロピーの高い端末識別情報を生成できる。
さらに、端末１は、一方向性関数を秘密にすることにより、第三者によって固有情報から端末識別情報が導出されるリスクを低減できる。
【００４４】
［第３実施形態］
以下、本発明の第３実施形態について説明する。
本実施形態では、算出部１４の機能が第１及び第２実施形態と異なる。
【００４５】
図５は、本実施形態に係る制御部１０（算出部１４）による端末識別情報の算出処理を示す機能ブロック図である。
算出部１４は、生成部１３により生成された固有情報及び指定されたシード値に基づいて、端末識別情報を算出し、出力する。具体的には、例えば、固有情報とシード値との排他的論理和が算出されてよい。
【００４６】
本実施形態によれば、端末１は、端末識別情報の生成にシード値を含めることで、同一の端末１において、アプリケーション毎に異なる端末識別情報を生成し利用できる。したがって、サービス事業者毎に端末識別情報が区別されるので、送受信データが他社に読み取られるリスクが低減され、セキュリティが向上する。
【００４７】
［第４実施形態］
以下、本発明の第４実施形態について説明する。
本実施形態では、算出部１４の機能が第１〜第３実施形態と異なる。算出部１４は、固有情報の値のずれに対する対策として、誤り訂正符号を利用する。
【００４８】
図６は、本実施形態に係る制御部１０（算出部１４）による端末識別情報の算出処理を示す機能ブロック図である。
算出部１４は、端末識別情報の初回生成時に、生成部１３により初回に生成された固有情報、及び内部生成した乱数の誤り訂正符号に基づく補助データを記憶する。
また、算出部１４は、端末識別情報の２回目以降の生成時に、生成部１３により２回目以降に生成された固有情報に対して、記憶しておいた補助データにより誤り訂正処理を行う。
【００４９】
具体的には、算出部１４は、端末識別情報の初回生成時に、乱数を生成し、この乱数を誤り訂正符号により符号化する。そして、算出部１４は、符号語（Ｒ）と固有情報（Ｄ）との排他的論理和（Ｒ＋Ｄ）を演算し、補助データとして記憶する。
【００５０】
また、算出部１４は、端末識別情報の２回目以降の生成時に、固有情報（Ｄ´）と補助データ（Ｒ＋Ｄ）との排他的論理和（Ｒ＋Ｄ＋Ｄ´＝Ｒ＋ΔＤ）を演算し、演算結果に対して誤り訂正を行う。そして、算出部１４は、誤り訂正を行った符号語（Ｒ）と補助データ（Ｒ＋Ｄ）との排他的論理和（Ｒ＋Ｒ＋Ｄ＝Ｄ）を演算することで、初回生成時の固有情報（Ｄ）を生成できる。
【００５１】
本実施形態によれば、端末１は、誤り訂正符号を利用することにより、固有情報の値のゆらぎを吸収し、２回目以降も初回と同一の端末識別情報を生成できる。
【００５２】
［第５実施形態］
以下、本発明の第５実施形態について説明する。
本実施形態では、算出部１４の機能が第１〜第４実施形態と異なる。
【００５３】
図７は、本実施形態に係る制御部１０（算出部１４）による端末識別情報の算出処理を示す機能ブロック図である。
算出部１４は、前述の一方向性関数、シード値、及び誤り訂正符号を組み合わせて端末識別情報を算出する。
【００５４】
具体的には、算出部１４は、端末識別情報の初回生成時に、シード値と固有情報との排他的論理和を演算し、演算結果Ａを一方向性関数で変換して端末識別情報を算出する。このとき、算出部１４は、乱数を生成し、この乱数を誤り訂正符号により符号化する。そして、算出部１４は、符号語と演算結果Ａとの排他的論理和を演算し、補助データとして記憶する。
【００５５】
また、算出部１４は、端末識別情報の２回目以降の生成時に、シード値と固有情報と補助データとの排他的論理和を演算し、演算結果に対して誤り訂正を行う。そして、算出部１４は、誤り訂正を行った符号語と補助データとの排他的論理和を演算することで、初回生成時の演算結果Ａを生成できる。算出部１４は、この演算結果Ａを一方向性関数で変換して、初回と同一の端末識別情報を算出する。
【００５６】
本実施形態では、一方向性関数、シード値、及び誤り訂正符号を組み合わせた端末識別情報の算出方法を採用したが、組み合わせはこれには限られず、任意の組み合わせが適宜採用可能である。
また、端末１は、複数のデバイス２０から、それぞれの固有情報を入力として受け付けて端末識別情報を生成してもよい。
【００５７】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００５８】
端末１による識別情報生成方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（端末１）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータ（端末１）に提供されてもよい。
【符号の説明】
【００５９】
１  端末（識別情報生成装置）
１０  制御部
１１  取得部
１２  特定部
１３  生成部
１４  算出部
２０  デバイス
【図１】
0006591294.tif 000002
【図２】
0006591294.tif 000003
【図３】
0006591294.tif 000004
【図４】
0006591294.tif 000005
【図５】
0006591294.tif 000006
【図６】
0006591294.tif 000007
【図７】
0006591294.tif 000008