【文献】
Hyunho Kang, et al.,Cryptographic Key Generation from PUF Data Using Efficient Fuzzy Extractors,2014 16th International Conference on Advanced Communication Technology (ICACT),米国,IEEE,2014年 2月19日,pp.23-26
(58)【調査した分野】(Int.Cl.,DB名)
第1の入力信号に応じてデバイス固有の信号を出力する第1の固有信号生成手段を含む第1のデバイスと、第2の入力信号に応じてデバイス固有の信号を出力する第2の固有信号生成手段を含む第2のデバイスとの間で暗号鍵を共有する暗号鍵共有方法であって、
前記第1のデバイスにおいて、前記第1の固有信号生成手段から出力された信号と予め定められた第1の固定信号とを加算して、前記暗号鍵を生成するための暗号鍵生成信号を作成する第1のステップと、
前記第1のデバイスにおいて、前記暗号鍵生成信号に対するシンドロームを算出する第2のステップと、
前記第2のデバイスにおいて、前記第1の入力信号に応じて予め前記第1の固有信号生成手段から出力された信号と、前記第2の入力信号に応じて予め前記第2の固有信号生成手段から出力された信号と、前記第1の固定信号とを加算することにより得られる第2の固定信号を前記第2の固有信号生成手段から前記第2の入力信号に応じて出力された前記デバイス固有の信号から減算する第3のステップと、
前記第2のデバイスにおいて、前記第3のステップで生成された信号に対するシンドロームを算出する第4のステップと、
前記第2のデバイスにおいて、前記第2のステップで算出された前記シンドロームと前記第4のステップで算出された前記シンドロームを加算する第5のステップと、
前記第2のデバイスにおいて、前記第5のステップで生成された信号を復号する第6のステップと、
前記第2のデバイスにおいて、前記第6のステップで生成された信号及び前記第2の固定信号から、前記第2の固有信号生成手段から前記第2の入力信号に応じて出力された前記デバイス固有の信号を減算することにより前記暗号鍵生成信号を作成する第7のステップとを有する暗号鍵共有方法。
第1の入力信号に応じてデバイス固有の信号を出力する第1の固有信号生成手段を含む第1のデバイスと、第2の入力信号に応じてデバイス固有の信号を出力する第2の固有信号生成手段を含む第2のデバイスとの間で暗号鍵を共有する暗号鍵共有方法であって、
前記第1のデバイスにおいて、前記第1の固有信号生成手段から出力された信号に対するシンドロームを算出する第1のステップと、
前記第2のデバイスにおいて、前記第1の入力信号に応じて予め前記第1の固有信号生成手段から出力された信号と、予め定められた符号語信号とを加算することにより得られる第2の固定信号を、前記第1のステップで算出された前記シンドロームから減算する第2のステップと、
前記第2のデバイスにおいて、前記第2のステップで生成された信号を復号する第3のステップと、
前記第2のデバイスにおいて、前記第3のステップで生成された信号及び前記第2の固定信号と、前記第2の固有信号生成手段から出力された信号とを加算することにより暗号鍵を生成するための暗号鍵生成信号を作成する第4のステップと、
前記第2のデバイスにおいて、前記第2の固有信号生成手段から出力された信号に対するシンドロームを算出する第5のステップと、
前記第1のデバイスにおいて、前記第2の入力信号に応じて予め前記第2の固有信号生成手段から出力された信号と、前記符号語信号とを加算することにより得られる第1の固定信号を、前記第5のステップで算出された前記シンドロームから減算する第6のステップと、
前記第1のデバイスにおいて、前記第6のステップで生成された信号を復号する第7のステップと、
前記第1のデバイスにおいて、前記第7のステップで得られた信号及び前記第1の固定信号と、前記第1の固有信号生成手段から出力された信号とを加算することにより前記暗号鍵生成信号を作成する第8のステップとを有する暗号鍵共有方法。
【発明を実施するための形態】
【0017】
以下において、本発明の実施の形態を図面を参照しつつ詳しく説明する。なお、図中同一符号は同一又は相当部分を示す。
【0018】
[実施の形態1]
図1は本発明の実施の形態1に係る暗号鍵共有システムの基本的な構成を示すブロック図であり、
図2は
図1に示された暗号鍵共有システムの構成例を示すブロック図である。
図1に示されるように、本発明の実施の形態1に係る暗号鍵共有システムは、第1のデバイスDV10と第2のデバイスDV20の間で暗号鍵を共有するシステムであって、第1のデバイスDV10は固有信号生成部10と第1の暗号鍵作成部30、及び第1の鍵共有情報算出部50を備え、第2のデバイスDV20は、第1の暗号鍵作成部30により作成された暗号鍵生成信号と固定信号との差分信号を復号する差分復号部60と、第2の暗号鍵作成部130を備える。ここで、差分復号部60は、第2の鍵共有情報算出部70と復号部110を含む。
なお、第2の固定ベクトル信号NBを第2の鍵共有情報算出部70に供給して得られる結果を予め第2のデバイスDV20に保存しておけば、第2の鍵共有情報算出部70は不要となる。
【0019】
また、固有信号生成部10は、例えば
図2に示されるように、出力信号が入力信号に対してPUFをなすデバイス固有情報生成装置1により構成される。
【0020】
また、
図2に示されるように、第1の暗号鍵作成部30は例えば加算器3により構成され、第1の鍵共有情報算出部50はシンドローム算出器5により構成される。また、第2の鍵共有情報算出部70は例えばシンドローム算出器7により構成され、復号部110は例えば減算器9及び復号器11により構成される。さらに、第2の暗号鍵作成部130は、例えば加算器13により構成される。
【0021】
そして、第1の暗号鍵作成部30は固有信号生成部10に接続され、第1の鍵共有情報算出部50は第1の暗号鍵作成部30に接続される。
【0022】
また、復号部110は第1の鍵共有情報算出部50及び第2の鍵共有情報算出部70に接続され、第2の暗号鍵作成部130は復号部110に接続される。
【0023】
ここで、復号部110の構成例として
図2に示された減算器9はシンドローム算出器5及びシンドローム算出器7に接続され、復号器11は減算器9及び加算器13に接続される。
【0024】
以下、上記のような構成を有する
図1に示された暗号鍵共有システムの動作を説明する。
固有信号生成部10には入力信号Cが入力される。この入力信号Cのデータ形式は固有信号生成部10の構成に依存するが、どこに格納するようにしてもよい。すなわち、第1のデバイスDV10が盗まれた場合を想定すると、入力信号Cは第2のデバイスDV20に格納した方が良い一方、通信を不要にしたい場合には、固有信号生成部10が含まれた第1のデバイスDV10に格納した方が良いことになる。
【0025】
第1の暗号鍵作成部30は、固有信号生成部10により生成されたデバイスDV10に固有の信号と、予めデバイスDV10に登録された任意の第1の固定ベクトル信号NAとから暗号鍵を生成する際の基となる値を持つ暗号鍵生成信号Kを作成する。
【0026】
ここで、
図2に示された例においては、加算器3がデバイス固有情報生成装置1から出力された長さnのガロア体上のベクトル信号R’1と、長さnのガロア体上のベクトル信号N1とを加算し、暗号鍵生成信号KMを作成する。なお、ベクトル信号N1は、第1のデバイスDV1に登録されることにより固定される。また、ベクトル信号R’1あるいはベクトル信号N1あるいはベクトル信号R’1とベクトル信号N1との加算の結果に、第2のデバイスDV2において訂正可能な範囲でかつ毎回変化する誤りを加えてもよい。
【0027】
第1の鍵共有情報算出部50は、第1の暗号鍵作成部30により作成されたデータに対してシンドロームを算出する。
【0028】
なお、シンドロームの算出は、例えば、第1の鍵共有情報算出部50への入力が行ベクトルの場合、誤り訂正符号のパリティ検査行列を右から掛けるか、巡回符号の場合はベクトルの各軸の値をガロア体上の多項式の(n−k−1)次以上の係数とみなして、誤り訂正符号の生成多項式の剰余を求めるか、上記多項式に対応する線形帰還シフトレジスタで剰余を計算することにより行える。また、上記の誤り訂正符号にはBCH符号、リードソロモン符号、Alternant符号、ゴッパ(Goppa)符号などの他、McElice公開鍵暗号、Niederreiter公開鍵暗号などで利用される誤り訂正符号を用いることもできる。
【0029】
一方、第2の鍵共有情報算出部70は、入力信号Cに応じて予め固有信号生成部10から出力された信号と上記第1の固定ベクトル信号NAから生成される第2の固定ベクトル信号NBに対するシンドロームを算出する。
【0030】
ここで、
図2に示された例においては、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と上記ベクトル信号N1とを加算することにより得られた信号D1を第2のデバイスDV2に格納し、シンドローム算出器7が信号D1に対するシンドロームを算出する。
【0031】
なお、第2のデバイスDV2において、上記信号D1をシンドローム算出器7に入力して得られる結果を事前に計算し第2のデバイスDV2に保存しておけば、シンドローム算出器7による算出結果に代用させることができ、第2のデバイスDV2からシンドローム算出器7を取り除くことができる。
【0032】
次に、復号部110は第1の鍵共有情報算出部50で算出されたシンドロームと第2の鍵共有情報算出部70で算出されたシンドロームとに応じて生成された信号を復号する。
【0033】
ここで、
図2に示された例においては、減算器9がシンドローム算出器5で算出されたシンドロームS’1からシンドローム算出器7で算出されたシンドロームを減算するか、若しくは上記のように予め保存されたシンドロームを読み出して減算し、復号器11が減算器9により得られた信号を復号し誤り訂正することにより信号E1を生成する。
【0034】
次に、第2の暗号鍵作成部130は、復号部110により得られた信号と第2の固定ベクトル信号NBから暗号鍵生成信号Kを作成する。
【0035】
ここで、
図2に示された例においては、加算器13が復号器11により生成された信号E1と上記信号D1とを加算することにより、暗号鍵生成信号KMを作成する。
【0036】
なお、上記においては、第2のデバイスDV2,DV20が一つのシステムについて説明したが、複数存在する暗号鍵共有システムも同様に考えられる。
【0037】
上記のような実施の形態1に係る暗号鍵共有システムによれば、計算量の大きな公開鍵暗号の処理をすることなく、第1のデバイスDV1,DV10と第2のデバイスDV2,DV20との間で同じ鍵を生成することができ、かつ、暗号鍵生成信号KMを毎回変更させることができ、かつ、上記信号R1を秘匿することができる。
【0038】
また、本システムによれば、
図1に示された第1の固定ベクトル信号NA及び第2の固定ベクトル信号NB、
図2に示された例においてはベクトル信号N1及び信号D1を変更することによって、それぞれ暗号鍵生成信号K,KMを変更することができるため、たとえ暗号鍵生成信号K,KMが漏洩したとしても、固有信号生成部10やデバイス固有情報生成装置1の新たなチャレンジ・レスポンス対を用いる、つまり、データベース上に予め保存しているチャレンジ・レスポンス対を消費する、ことなく、ベクトル信号N1及び信号D1のみを変更し暗号鍵生成信号K,KMの秘匿性を回復することにより、第1のデバイスDV1,DV10と第2のデバイスDV2,DV20との間で秘匿性の保たれた暗号鍵を共有することができる。
【0039】
図3は、
図2に示された暗号鍵共有システムの第1の変形例を示すブロック図である。
図3に示される暗号鍵共有システムは、
図2に示された暗号鍵共有システムと同様な構成を有するが、以下の点で構成が異なるものである。
【0040】
すなわち、第2のデバイスDV2aはさらに加算器13に接続された加算器14と、シンドローム算出器7に接続された加算器15とを含む。
【0041】
そして、鍵共有を実行する度に変化する、重みが0と使用する誤り訂正符号の誤り訂正能力との間であるベクトル信号N’1が両加算器14,15に入力され、上記信号D1は両加算器14,15に入力される。
【0042】
また、それぞれ加算器14の出力が加算器13へ、加算器15の出力がシンドローム算出器7へ供給される。
【0043】
このような変形例によれば、
図2に示された暗号鍵共有システムと同様な効果を得ることができると共に、ベクトル信号N’1が鍵共有を実行する度に変化し、復号器11への入力と加算器13への入力を変化させることができる。
【0044】
従って、本システムによれば、サイドチャネル攻撃の適用を困難にし、高い耐タンパー性を不要とすることができる。
【0045】
なお、上記の加算器15及びシンドローム算出器7の替わりに、ベクトル信号N’1をシンドロームに変換するシンドローム算出器、及び、本シンドローム算出器から出力されたシンドロームとシンドローム算出器7から読み出されたシンドロームとを加算すると共に、減算器9に接続された加算器を備えることによっても、
図3に示された暗号鍵共有システムと同様な効果を得ることができる。
【0046】
図4は、
図2に示された暗号鍵共有システムの第2の変形例を示すブロック図である。
図4に示される暗号鍵共有システムは、
図2に示された暗号鍵共有システムと同様な構成を有するが、以下の点で構成が異なるものである。
【0047】
すなわち、第1のデバイスDV1aには
図2に示されたシンドローム算出器5の替わりに加算器16を含む変換器17が備えられ、第2のデバイスDV2bには
図2に示されたシンドローム算出器7と復号器11との間に接続された減算器9の替わりに、加算器16とシンドローム算出器21との間に接続された減算器19が備えられる。ただし、信号D1をシンドローム算出器21に入力することにより得られる結果を予め第2のデバイスDV2bに保存しておけば、減算器19を加算器16とシンドローム算出器21との間でなくシンドローム算出器21と復号器11との間に備え、信号Y’1をシンドローム算出器21に入力して得られる結果から、予め第2のデバイスDV2bに保存された上記結果を減じるようにしてもよい。
【0048】
そして、加算器16には使用する誤り訂正符号のランダムな符号語信号M1が入力され、加算器3から出力された信号に加算される。ここで符号語信号とは、シンドロームがゼロになる信号を意味する(以下同様)。
【0049】
また、減算器19は加算器16から出力された信号Y’1から信号D1を減算し、シンドローム算出器21は減算器19からの出力信号に対するシンドロームを算出する。また、復号器11はシンドローム算出器21で算出されたシンドロームを復号し誤り訂正することにより信号E1を生成する。
【0050】
上記のような変形例によっても、
図2に示された暗号鍵共有システムと同様な効果を得ることができ、さらにベクトル信号R’1とベクトル信号N1の加算値が以前の値と同じになった場合においても、利用する誤り訂正符号やそのパラメータを秘匿することにより、その事実を秘匿できるという効果を得ることができる。
【0051】
図5は、
図2に示された暗号鍵共有システムの第3の変形例を示すブロック図である。
図5に示される暗号鍵共有システムは、
図4に示された暗号鍵共有システムと同様な構成を有するが、第2のデバイスDV2cは
図3に示された二つの加算器14,15をさらに備える点で相違したものである。
【0052】
このような第3の変形例によれば、上記第2の変形例と同じ効果に加えて、上記第1の変形例による効果も得ることができ、さらにベクトル信号R’1とベクトル信号N1の加算値が以前の値と同じになった場合においても、利用する誤り訂正符号やそのパラメータを秘匿することにより、その事実を秘匿できるという効果を得ることができる。
【0053】
[実施の形態2]
図6は、本発明の実施の形態2に係る暗号鍵共有システムの構成を示すブロック図である。
図6に示されるように、実施の形態2に係る暗号鍵共有システムは、
図2に示された実施の形態1に係る暗号鍵共有システムの機能が、第1のデバイスDV1bと第2のデバイスDV2dとの間で双方向で実行される構成を有するものである。
【0054】
すなわち、
図6に示された第1のデバイスDV1bは、
図1に示された第1のデバイスDV1の構成要素の他、さらに
図2に示された第2のデバイスDV2に含まれた構成要素も含み、
図6に示された第2のデバイスDV2dは、
図2に示された第2のデバイスDV2の構成要素の他、さらに
図2に示された第1のデバイスDV1に含まれた構成要素も含む。
【0055】
具体的には、以下の点において、
図2に示された暗号鍵共有システムと構成上相違する。
第1のデバイスDV1bは、シンドローム算出器23と減算器25、復号器27、加算器29、及び結合器31をさらに備える。ここで、減算器25は二つのシンドローム算出器5,23に接続され、復号器27は減算器25に接続され、加算器29は復号器27に接続され、結合器31はシンドローム算出器5及び加算器29に接続される。
【0056】
一方、第2のデバイスDV2dは、デバイス固有情報生成装置2と加算器3、シンドローム算出器5、及び結合器31をさらに備える。ここで、加算器3はデバイス固有情報生成装置2に接続され、シンドローム算出器5は加算器3及び減算器25に接続され、結合器31は二つの加算器3,13に接続される。
【0057】
以上のような構成を有する
図6に示された暗号鍵共有システムは、第1のデバイスDV1bと第2のデバイスDV2dとの間で、
図2に示された暗号鍵共有システムの動作を双方向に実行する。なお、第2のデバイスDV2dに含まれた加算器3にはベクトル信号N2が供給されるが、ベクトル信号N2は上記ベクトル信号N1と同様に、第2のデバイスDV2dに登録されることにより固定される。また、第1のデバイスDV1bのベクトル信号R’1あるいはベクトル信号N1、あるいはベクトル信号R’1とベクトル信号N1との加算の結果に、第2のデバイスDV2dにおいて訂正可能な範囲で、かつ、毎回変化する誤りを加えてもよく、第2のデバイスDV2dのベクトル信号R’2あるいはベクトル信号N2、あるいはベクトル信号R’2とベクトル信号N2との加算の結果に、第1のデバイスDV1bにおいて訂正可能な範囲で、かつ、毎回変化する誤りを加えてもよい。
【0058】
そして、第1のデバイスDV1b及び第2のデバイスDV2dに含まれた各結合器31は、デバイス固有情報生成装置1から出力された信号に応じて生成された暗号鍵生成信号KM1と、デバイス固有情報生成装置2から出力された信号に応じて生成された暗号鍵生成信号KM2とから暗号鍵生成信号KMを生成する。
【0059】
ここで、暗号鍵生成信号KMは、例えば、暗号鍵生成信号KM1と暗号鍵生成信号KM2とを連結させた上でハッシュ関数を適用して得られたハッシュ値とすることにより、同じ鍵を再生させる攻撃(同鍵再生攻撃)を回避することができる。
【0060】
つまり、第1のデバイスDV1bや第2のデバイスDV2dに攻撃者が毎回作為的な入力を与えたとしても、同一の暗号鍵生成信号KMを生成させることが困難となる。
【0061】
なお、
図6に示された二つの入力信号C1,C2は、同じ値を使ってもよい。
【0062】
以上のような実施の形態2に係る暗号鍵共有システムによれば、ベクトル信号N1及び信号D1の対を変更するかベクトル信号R’1とベクトル信号N1の加算値に全数探索が困難なほど多様な誤りを加えることにより暗号鍵生成信号KM1の値が大幅に変化し、また、ベクトル信号N2及び信号D2の対を変更するかベクトル信号R’2とベクトル信号N2の加算値に全数探索が困難なほど多様な誤りを加えることにより暗号鍵生成信号KM2の値が大幅に変化するため、たとえ暗号鍵生成信号KM1,KM2が漏洩したとしても、デバイス固有情報生成装置1及びデバイス固有情報生成装置2についての新たなチャレンジ・レスポンス対を用いる、つまり、データベース上に予め保存しているチャレンジ・レスポンス対を消費する、ことなく容易に暗号鍵生成信号KM1,KM2の秘匿性を回復することにより、第1のデバイスDV1bと第2のデバイスDV2dとの間で秘匿性の保たれた暗号鍵を共有することができる。
【0063】
なお、上記のように、実施の形態2に係る暗号鍵共有システムは、第1のデバイスDV1b及び第2のデバイスDV2dにおいて、
図2に示された暗号鍵共有システムを対称的に二つ組み合わせた構成を有するが、
図2〜
図5に示された暗号鍵共有システムを任意に二つ組み合わせた暗号鍵共有システムも同様に考えられる。
【0064】
[実施の形態3]
図7は、本発明の実施の形態3に係る暗号鍵共有システムの構成を示すブロック図である。
図7に示されるように、実施の形態3に係る暗号鍵共有システムは、
図2に示された実施の形態1に係る暗号鍵共有システムと同様な構成を有するが、以下の点で第2のデバイスDV2eの構成が異なるものである。
【0065】
すなわち、第2のデバイスDV2eはデバイス固有情報生成装置2及び減算器19をさらに備え、それぞれ減算器9の替わりに加算器33、加算器13の替わりに減算器35が備えられたものである。
【0066】
ここで、デバイス固有情報生成装置2は二つの減算器19、35に接続され、減算器はさらにシンドローム算出器7に接続される。
【0067】
このような構成を有する第2のデバイスDV2eにおいて、減算器19には
図2に示された信号D1に対応する信号Dが入力され、減算器19はデバイス固有情報生成装置2から入力されたベクトル信号R’2から信号Dを減算して得られた結果をシンドローム算出器7へ供給する。
【0068】
なお、信号Dは入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と、入力信号C2に応じて予めデバイス固有信号生成装置2から出力された信号R2と、ベクトル信号N1とを加算することにより得られたものとされる。
【0069】
また、復号器11は加算器33で得られた信号を復号して誤り訂正を行い信号E12を生成する。減算器35は、シンドローム算出器5から出力された信号S’1及び信号E12からデバイス固有情報生成装置2から出力されたベクトル信号R’2を減算して暗号鍵生成信号KMを生成する。
【0070】
上記のように、実施の形態3に係る暗号鍵共有システムは、第1のデバイスDV1及び第2のデバイスDV2eの両方にそれぞれデバイス固有情報生成装置1,2を備え、第2のデバイスDV2eにおいてのみ、すなわち復号器11で誤り訂正を実行するものである。
【0071】
以上より、実施の形態3に係る暗号鍵共有システムによっても、ベクトル信号N1及び信号Dを変更するかベクトル信号R’1とベクトル信号N1の加算値に全数探索が困難なほど多様な誤りを加えることによって、暗号鍵生成信号KMを大幅に変更することができるため、たとえ暗号鍵生成信号KMが漏洩したとしても、デバイス固有情報生成装置1及びデバイス固有情報生成装置2についての新たなチャレンジ・レスポンス対を用いる、つまり、データベース上に予め保存しているチャレンジ・レスポンス対を消費する、ことなく容易に暗号鍵生成信号KMの秘匿性を回復することにより、第1のデバイスDV1と第2のデバイスDV2eとの間で秘匿性の保たれた暗号鍵を共有することができる。
【0072】
図8は、
図7に示された暗号鍵共有システムの変形例を示すブロック図である。
図8に示された暗号鍵共有システムは、
図7に示された暗号鍵共有システムと同様な構成を有するが、以下の点で相違するものである。
【0073】
図8に示された暗号鍵共有システムは、
図7に示されたシンドローム算出器5の替わりに、
図4に示された加算器16を含む変換器17を備え、
図7に示された加算器33の替わりに、減算器19とシンドローム算出器21との間に接続された加算器37を備える。
【0074】
図8に示された暗号鍵共有システムによっても、
図7に示された暗号鍵共有システムと同様な効果を得ることができ、さらにベクトル信号R’1とベクトル信号N1の加算値が以前の値と同じになった場合においても、利用する誤り訂符号やそのパラメータを秘匿することにより、その事実を秘匿できるという効果を得ることができる。
【0075】
[実施の形態4]
図9は、本発明の実施の形態4に係る暗号鍵共有システムの構成を示すブロック図である。
図9に示されるように、実施の形態4に係る暗号鍵共有システムは、
図6に示された実施の形態2に係る暗号鍵共有システムと同様な構成を有するが、以下の点で相違するものである。
【0076】
第1のデバイスDV1cは、
図6に示された第1のデバイスDV1bに比して、加算器3とシンドローム算出器23、及び結合器31を除いた構成を有する。また、第2のデバイスDV2gは、
図6に示された第2のデバイスDV2dに比して、加算器3とシンドローム算出器7、及び結合器31を除いた構成を有する。
【0077】
このような構成を有する暗号鍵共有システムにおいて、第1のデバイスDV1cでは、入力信号C2に応じて予めデバイス固有情報生成装置2から出力されたベクトル信号R’2と、使用する誤り訂正符号のランダムな符号語信号Nとを加算することにより得られた信号D1が減算器39及び加算器3に供給されると共に、デバイス固有情報生成装置1から出力されたベクトル信号R’1が加算器3に供給される。また、第1のデバイスDV1cのベクトル信号R’1に第2のデバイスDV2gにおいて訂正可能な範囲でかつ毎回変化する誤りを加えてもよく、第2のデバイスDV2gのベクトル信号R’2に第1のデバイスDV1cにおいて訂正可能な範囲でかつ毎回変化する誤りを加えてもよい。
【0078】
また、第2のデバイスDV2gでは、デバイス固有情報生成装置2から出力された信号R’2がシンドローム算出器5及び加算器43に供給される。さらに、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と上記信号Nとを加算することにより得られた信号D2が、減算器41及び加算器43に供給される。
【0079】
上記のように、実施の形態4に係る暗号鍵共有システムは、第1のデバイスDV1c及び第2のデバイスDV2gの両方にそれぞれデバイス固有情報生成装置1,2を備え、第1のデバイスDV1c及び第2のデバイスDV2gの両方、すなわち復号器27及び復号器11の両方で誤り訂正を実行するものである。
【0080】
以上より、実施の形態4に係る暗号鍵共有システムによれば、上記信号D1及び信号D2を変更するかベクトル信号R’1とベクトル信号R’2に全数探索が困難なほど多様な誤りを加えることによって、暗号鍵生成信号KMを大幅に変更することができるため、たとえ暗号鍵生成信号KMが漏洩したとしても、デバイス固有情報生成装置1及びデバイス固有情報生成装置2についての新たなチャレンジ・レスポンス対を用いる、つまり、データベース上に予め保存しているチャレンジ・レスポンス対を消費する、ことなく容易に暗号鍵生成信号KMの秘匿性を回復することにより、第1のデバイスDV1cと第2のデバイスDV2gとの間で秘匿性の確保された暗号鍵を共有することができる。
【0081】
図10は、
図9に示された暗号鍵共有システムの変形例を示すブロック図である。
図10に示された暗号鍵共有システムは、
図9に示された暗号鍵共有システムと同様な構成を有するが、以下の点で相違するものである。
【0082】
図10に示された暗号鍵共有システムは、第1のデバイスDV1dにおいて、
図9に示されたシンドローム算出器5の替わりに、
図4に示された加算器16を含む変換器17が備えられ、減算器39と復号器27の間にはシンドローム算出器45が接続される。
【0083】
また同様に、第2のデバイスDV2hにおいて、
図9に示されたシンドローム算出器5の替わりに、加算器46を含む変換器47が備えられ、減算器19と復号器11の間にはシンドローム算出器21が接続される。
【0084】
なお、加算器46には使用する誤り訂正符号のランダムな符号語信号M2が供給される。
【0085】
図10に示された暗号鍵共有システムによっても、
図9に示された暗号鍵共有システムと同様な効果を得ることができ、さらに、利用する誤り訂正符号やそのパラメータを秘匿することにより、今回のベクトル信号R’1が以前のベクトル信号R’1と同じ値になった場合や今回のベクトル信号R’2が以前のベクトル信号R’2と同じ値になった場合においても、その事実を秘匿できるという効果を得ることができる。
【0086】
なお、以上において、例えばベクトル信号Aとベクトル信号Bを加算する加算器は、ベクトル信号Aからベクトル信号(−B)を減じる減算器に置き換えることができ、ベクトル信号Aからベクトル信号Bを減じる減算器は、ベクトル信号Aとベクトル信号(−B)を加算する加算器に置き換えることができる。ここで、素数2の剰余系からなるガロア体では加算と減算は同じ処理となることから、加算器と減算器は相互に置き換えられることはいうまでもない。
【0087】
また、加算器と減算器との組み合わせは、例えばC−(A+B)=(C−A)−Bなどが成立するように処理の順番を入れ替え、入力の組み合わせを変更しても同じ結果や効果が得られることはいうまでもなく、加算器や減算器とシンドローム算出器との組み合わせにおいても、例えば(A+B)×H=A×H+B×Hなどが成立するように処理の順番を入れ替え、入力の組み合わせを変更しても同じ結果や効果が得られることはいうまでもない。
【0088】
以下において、
図11から
図15のフローチャートを参照しつつ、本発明の実施の形態に係る暗号鍵共有方法について説明する。なお、本方法を上記実施の形態1から4に係る暗号鍵共有システムを用いて具体的に説明するが、本方法はこれらの暗号鍵共有システムを用いたものに限られるものでない。
【0089】
図11は、本発明の実施の形態に係る暗号鍵共有方法の基本的な手順を示すフローチャートである。以下において、本手順を
図1に示された暗号鍵共有システムを用いて説明する。
【0090】
本実施の形態に係る暗号鍵共有方法は、入力信号Cに応じてデバイス固有の信号を出力する固有信号生成部10を含む第1のデバイスDV10と、第2のデバイスDV20との間で暗号鍵を共有する暗号鍵共有方法であって、ステップS1では、第1のデバイスDV10において、固有信号生成部10から出力された信号と予め定められた第1の固定ベクトル信号NAから、暗号鍵を生成するための暗号鍵生成信号Kを作成する。
【0091】
次に、ステップS2において、第1のデバイスDV10において、暗号鍵生成信号Kに対するシンドローム等の鍵共有情報を算出する。
【0092】
そして、ステップS3では、第2のデバイスDV20において、入力信号Cに応じて予め固有信号生成部10から出力された信号と第1の固定ベクトル信号NAとから生成される第2の固定ベクトル信号NBと、鍵共有情報とに応じて、暗号鍵生成信号Kと第2の固定ベクトル信号NBとの差分信号を復号する。
【0093】
次に、ステップS4では、第2のデバイスDV20において、ステップS3で得られた信号と第2の固定ベクトル信号NBから暗号鍵生成信号を作成する。
【0094】
以上のような
図11に示された暗号鍵共有方法によれば、計算量の大きな公開鍵暗号の処理をすることなく、第1のデバイスDV10と第2のデバイスDV20との間で同じ鍵を生成することができる。
【0095】
また、本暗号鍵共有方法によれば、第1の固定ベクトル信号NA及び第2の固定ベクトル信号NBを変更することによって、暗号鍵生成信号Kを変更することができるため、たとえ暗号鍵生成信号Kが漏洩したとしても、容易に暗号鍵生成信号Kの秘匿性を回復することにより、第1のデバイスDV10と第2のデバイスDV20との間で暗号鍵を共有することができる。
【0096】
従って、このような暗号鍵共有方法によれば、サイドチャネル攻撃の適用を困難にすると共に、高い耐タンパー性を不要とすることができる。
【0097】
図12は、
図11に示された暗号鍵共有方法の具体例を示すフローチャートである。以下において、本方法を
図2に示された暗号鍵共有システムを用いて説明する。
【0098】
図12に示された方法は、入力信号C1に応じてデバイス固有の信号を出力するデバイス固有情報生成装置1を含む第1のデバイスDV1と、第2のデバイスDV2との間で暗号鍵を共有する暗号鍵共有方法であって、ステップS1では、第1のデバイスDV1において、デバイス固有情報生成装置1から出力された信号R’1と予め定められた固定されたベクトル信号N1とを加算し、暗号鍵を生成するための暗号鍵生成信号KMを作成する。
【0099】
次に、ステップS2では、第1のデバイスDV1において、暗号鍵生成信号KMに対するシンドロームを算出する。
【0100】
そして、ステップS3では、第2のデバイスDV2において、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1とベクトル信号N1とを加算することにより得られた固定されたベクトル信号D1に対してシンドロームを算出する。
【0101】
次に、ステップS4では、第2のデバイスDV2において、ステップS2において算出されたシンドロームからステップS3において算出されたシンドロームを減算する。
【0102】
そして、ステップS5では、第2のデバイスDV2において、ステップS4において生成された信号を復号する。
【0103】
次に、ステップS6では、第2のデバイスDV2において、ステップS5において生成された信号E1とベクトル信号D1とを加算することにより暗号鍵生成信号KMを作成する。
【0104】
以上のような
図12に示された暗号鍵共有方法によれば、計算量の大きな公開鍵暗号の処理をすることなく、第1のデバイスDV1と第2のデバイスDV2との間で同じ鍵を生成することができる。
【0105】
また、本暗号鍵共有方法によれば、ベクトル信号N1及びベクトル信号D1を変更することによって、暗号鍵生成信号KMを変更することができるため、たとえ暗号鍵生成信号KMが漏洩したとしても、容易に暗号鍵生成信号KMの秘匿性を回復することにより、第1のデバイスDV1と第2のデバイスDV2との間で暗号鍵を共有することができる。
【0106】
図13は、
図12に示された暗号鍵共有方法の変形例を示すフローチャートである。以下において、本方法を
図4に示された暗号鍵共有システムを用いて説明する。
【0107】
図13に示された方法は、入力信号C1に応じてデバイス固有の信号を出力するデバイス固有情報生成装置1を含む第1のデバイスDV1aと、第2のデバイスDV2bとの間で暗号鍵を共有する暗号鍵共有方法であって、ステップS1では、第1のデバイスDV1aにおいて、デバイス固有情報生成装置1から出力された信号R’1と予め定められた固定されたベクトル信号N1とを加算して、暗号鍵を生成するための暗号鍵生成信号KMを作成する。
【0108】
次に、ステップS2では、第1のデバイスDV1aにおいて、暗号鍵生成信号KMに符号語信号M1を加算する。
【0109】
そして、ステップS3では、第2のデバイスDV2bにおいて、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と、固定されたベクトル信号N1とを加算することにより得られる固定されたベクトル信号D1を、ステップS2で生成された信号から減算する。
【0110】
次に、ステップS4では、第2のデバイスDV2bにおいて、ステップS3で生成された信号に対するシンドロームを算出する。
【0111】
そして、ステップS5では、第2のデバイスDV2bにおいて、ステップS4で算出されたシンドロームを復号する。
【0112】
次に、ステップS6では、第2のデバイスDV2bにおいて、ステップS5で生成された信号とベクトル信号D1とを加算することにより暗号鍵生成信号KMを作成する。
【0113】
以上のような
図13に示された暗号鍵共有方法によっても、
図12に示された暗号鍵共有方法と同様な効果を得ることができる。
【0114】
図14は、本発明の他の実施の形態に係る暗号鍵共有方法を示すフローチャートである。以下において、本方法を
図7に示された暗号鍵共有システムを用いて説明する。
【0115】
図14に示された方法は、入力信号C1に応じてデバイス固有の信号を出力するデバイス固有情報生成装置1を含む第1のデバイスDV1と、入力信号C2に応じてデバイス固有の信号を出力するデバイス固有情報生成装置2を含む第2のデバイスDV2eとの間で暗号鍵を共有する暗号鍵共有方法であって、ステップS1では、第1のデバイスDV1において、デバイス固有情報生成装置1から出力された信号R’1と予め定められた固定されたベクトル信号N1とを加算して、暗号鍵を生成するための暗号鍵生成信号KMを作成する。
【0116】
次に、ステップS2では、第1のデバイスDV1において、暗号鍵生成信号KMに対するシンドロームを算出する。
【0117】
そして、ステップS3では、第2のデバイスDV2eにおいて、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と、入力信号C2に応じて予めデバイス固有情報生成装置2から出力された信号と、ベクトル信号N1とを加算することにより得られる固定された信号Dを、デバイス固有情報生成装置2から入力信号C2に応じて出力されたデバイス固有の信号R’2から減算する。
【0118】
次に、ステップS4では、第2のデバイスDV2eにおいて、ステップS3で生成された信号に対するシンドロームを算出する。
【0119】
そして、ステップS5では、第2のデバイスDV2eにおいて、ステップS2で算出されたシンドロームとステップS4で算出されたシンドロームを加算する。
【0120】
次に、ステップS6では、第2のデバイスDV2eにおいて、ステップS5で生成された信号を復号する。
【0121】
そして、ステップS7では、第2のデバイスDV2eにおいて、ステップS6で生成された信号及び上記信号Dから、デバイス固有情報生成装置2から入力信号C2に応じて出力されたデバイス固有の信号R’2を減算することにより暗号鍵生成信号KMを作成する。
【0122】
以上のような
図14に示された暗号鍵共有方法によれば、ベクトル信号N1及び信号Dを変更することによって、暗号鍵生成信号KMを変更することができるため、たとえ暗号鍵生成信号KMが漏洩したとしても、デバイス固有情報生成装置1及びデバイス固有情報生成装置2についての新たなチャレンジ・レスポンス対を用いることなく容易に暗号鍵生成信号KMの秘匿性を回復することにより、第1のデバイスDV1と第2のデバイスDV2eとの間で暗号鍵を共有することができる。
【0123】
図15は、本発明のさらに他の実施の形態に係る暗号鍵共有方法を示すフローチャートである。以下において、本方法を
図9に示された暗号鍵共有システムを用いて説明する。
【0124】
図15に示された方法は、入力信号C1に応じてデバイス固有の信号を出力するデバイス固有情報生成装置1を含む第1のデバイスDV1cと、入力信号C2に応じてデバイス固有の信号を出力するデバイス固有情報生成装置2を含む第2のデバイスDV2gとの間で暗号鍵を共有する暗号鍵共有方法であって、ステップS1では、第1のデバイスDV1cにおいて、デバイス固有情報生成装置1から出力された信号R’1に対するシンドロームを算出する。
【0125】
次に、ステップS2では、第2のデバイスDV2gにおいて、入力信号C1に応じて予めデバイス固有情報生成装置1から出力された信号R1と、予め定められた符号語信号とを加算することにより得られる固定された信号D2を、ステップS1で算出されたシンドロームから減算する。
【0126】
そして、ステップS3では、第2のデバイスDV2gにおいて、ステップS2で生成された信号を復号する。
【0127】
次に、ステップS4では、第2のデバイスDV2gにおいて、ステップS3で生成された信号及び信号D2と、デバイス固有情報生成装置2から出力された信号とを加算することにより暗号鍵を生成するための暗号鍵生成信号KMを作成する。
【0128】
そして、ステップS5では、第2のデバイスDV2gにおいて、デバイス固有情報生成装置2から出力された信号に対するシンドロームを算出する。
【0129】
次に、ステップS6では、第1のデバイスDV1cにおいて、入力信号C2に応じて予めデバイス固有情報生成装置2から出力された信号と、上記符号語信号とを加算することにより得られる固定された信号D1を、ステップS5で算出されたシンドロームから減算する。
【0130】
そして、ステップS7では、第1のデバイスDV1cにおいて、ステップS6で生成された信号を復号する。
【0131】
次に、ステップS8では、第1のデバイスDV1cにおいて、ステップS7で得られた信号及び信号D1と、デバイス固有情報生成装置1から出力された信号R’1とを加算することにより暗号鍵生成信号KMを作成する。
【0132】
以上のような
図15に示された暗号鍵共有方法によれば、信号D1及び信号D2を変更することによって、暗号鍵生成信号KMを変更することができるため、たとえ暗号鍵生成信号KMが漏洩したとしても、デバイス固有情報生成装置1及びデバイス固有情報生成装置2についての新たなチャレンジ・レスポンス対を用いることなく容易に暗号鍵生成信号KMの秘匿性を回復することにより、第1のデバイスDV1cと第2のデバイスDV2gとの間で暗号鍵を共有することができる。