特開2019-134380(P2019-134380A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

特開2019-134380クロック認証機能付き電子機器およびクロック信号の認証方法
<>
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000003
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000004
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000005
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000006
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000007
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000008
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000009
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000010
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000011
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000012
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000013
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000014
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000015
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000016
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000017
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000018
  • 特開2019134380-クロック認証機能付き電子機器およびクロック信号の認証方法 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-134380(P2019-134380A)
(43)【公開日】2019年8月8日
(54)【発明の名称】クロック認証機能付き電子機器およびクロック信号の認証方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20190712BHJP
   H04L 9/10 20060101ALI20190712BHJP
   G09C 1/00 20060101ALI20190712BHJP
   G06F 1/04 20060101ALI20190712BHJP
【FI】
   H04L9/00 675Z
   H04L9/00 621A
   G09C1/00 640E
   G06F1/04 302Z
【審査請求】未請求
【請求項の数】13
【出願形態】OL
【全頁数】27
(21)【出願番号】特願2018-17068(P2018-17068)
(22)【出願日】2018年2月2日
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】吉田 敦郎
【テーマコード(参考)】
5J104
【Fターム(参考)】
5J104AA07
5J104AA37
5J104AA43
5J104AA47
5J104KA02
5J104NA02
(57)【要約】
【課題】クロック信号を認証できるクロック認証機能付き電子機器を提供する。
【解決手段】クロック認証機能付き電子機器10はクロック用の第1信号線L1とクロック装置1と電子装置5と認証部8とを備える。クロック装置1は、クロック信号を第1信号線L1に出力するクロック生成部2と、クロック生成部2が生成したクロック信号に同期する第1信号を生成する第1信号生成部3とを有する。電子装置5は第1信号線L1を介してクロック信号が入力される電子回路6と、電子回路6に入力されるクロック信号に同期した第2信号を生成する第2信号生成部7とを有する。認証部8は第1信号と第2信号とが互いに同期しているか否かに基づいて、電子回路6に入力されるクロック信号を認証する。
【選択図】図1
【特許請求の範囲】
【請求項1】
クロック用の第1信号線と、
クロック信号を前記第1信号線に出力するクロック生成部と、前記クロック生成部が生成したクロック信号に同期する第1信号を生成する第1信号生成部とを有するクロック装置と、
前記第1信号線を介してクロック信号が入力される電子回路と、前記電子回路に入力されるクロック信号に同期した第2信号を生成する第2信号生成部とを有する電子装置と、
前記第1信号と前記第2信号とが互いに同期しているか否かに基づいて、前記電子回路に入力されるクロック信号を認証する認証部と
を備える、クロック認証機能付き電子機器。
【請求項2】
請求項1に記載のクロック認証機能付き電子機器であって、
前記第1信号生成部は、前記クロック生成部が生成したクロック信号をカウントし、そのカウント値を前記第1信号として出力する第1カウンタを有し、
前記第2信号生成部は、前記第1カウンタと同期して初期化され、前記電子回路に入力されるクロック信号をカウントして、そのカウント値を前記第2信号として出力する第2カウンタを有する、クロック認証機能付き電子機器。
【請求項3】
請求項2に記載のクロック認証機能付き電子機器であって、
前記クロック装置および前記電子装置は第2信号線を介して相互に接続されており、
前記認証部は前記電子装置に属しており、
前記第1信号生成部は、前記第1カウンタのカウント量が認証値と一致するときに第1通知信号を生成し、前記第2信号線を介して前記認証部に前記第1通知信号を出力する通知信号生成部を有し、
前記認証部は、前記第1通知信号が入力されたときの前記第2カウンタのカウント量が前記認証値と一致しないとき、または、前記第2カウンタのカウント量が前記認証値と一致したときに前記第1通知信号が未だ入力されていないときに、前記電子回路に入力されるクロック信号は不正であると判断する、クロック認証機能付き電子機器。
【請求項4】
請求項3に記載のクロック認証機能付き電子機器であって、
前記認証部は、前記第1通知信号が入力されたときの前記第2カウンタのカウント量が前記認証値と一致するときに、前記電子回路に入力されるクロック信号は正規のクロック信号であると判断する、クロック認証機能付き電子機器。
【請求項5】
請求項3または請求項4に記載のクロック認証機能付き電子機器であって、
前記第2信号生成部は、乱数値を前記認証値として生成する乱数生成部を有し、
前記認証部は前記乱数生成部から入力された前記乱数値を、前記第2信号線を介して前記通知信号生成部に出力する、クロック認証機能付き電子機器。
【請求項6】
請求項3または請求項4に記載のクロック認証機能付き電子機器であって、
前記第2信号生成部は、
乱数値を生成する乱数生成部と、
前記乱数値を変数とした所定の関数の値を前記認証値として生成する第1演算部と
を有し、
前記認証部は前記乱数生成部から入力された前記乱数値を、前記第2信号線を介して前記通知信号生成部に出力し、
前記第1信号生成部は、前記乱数値を変数とした前記所定の関数の値を前記認証値として生成する第2演算部を有する、クロック認証機能付き電子機器。
【請求項7】
請求項5または請求項6に記載のクロック認証機能付き電子機器であって、
前記認証部は、前記第2カウンタのカウント量が前記乱数値と一致したときに、前記第2信号線を介して第2通知信号を前記通知信号生成部に出力し、
前記通知信号生成部は、前記第2通知信号が入力されたときの前記第2カウンタのカウント量を前記乱数値として認識する、クロック認証機能付き電子機器。
【請求項8】
請求項3から請求項7のいずれか一つに記載のクロック認証機能付き電子機器であって、
前記認証値はクロック信号の認証ごとに更新される、クロック認証機能付き電子機器。
【請求項9】
請求項1に記載のクロック認証機能付き電子機器であって、
前記第1信号生成部は、
擬似乱数値を前記第1信号として生成する第1擬似乱数生成部と、
所定の鍵生成アルゴリズムを用いて共通鍵を、前記第1擬似乱数生成部の初期設定値として生成する第1設定値生成部と
を有し、
前記第2信号生成部は、
擬似乱数値を前記第2信号として生成する第2擬似乱数生成部と、
前記所定の鍵生成アルゴリズムを用いて共通鍵を、前記第2擬似乱数生成部の初期設定値として生成する第2設定値生成部と
を有する、クロック認証機能付き電子機器。
【請求項10】
請求項9に記載のクロック認証機能付き電子機器であって、
前記電子回路は、通常処理と、前記通常処理で用いられる情報よりも秘匿性の高い秘密情報を用いた秘密処理とを実行し、
前記電子回路は、前記第1設定値生成部および前記第2設定値生成部が前記初期設定値を生成した後に、前記秘密処理を開始する、クロック認証機能付き電子機器。
【請求項11】
請求項1から請求項9のいずれか一つに記載のクロック認証機能付き電子機器であって、
前記電子回路は、通常処理と、前記通常処理で用いられる情報よりも秘匿性の高い秘密情報を用いた秘密処理とを実行し、
前記認証部は、前記電子回路が前記秘密情報を実行するときに、前記電子回路に入力されたクロック信号を認証する、クロック認証機能付き電子機器。
【請求項12】
請求項1から請求項11のいずれか一つに記載のクロック認証機能付き電子機器であって、
前記認証部は、前記電子回路に入力されたクロック信号が不当であると判断したときに、前記電子回路の動作を制限する、クロック認証機能付き電子機器。
【請求項13】
第1信号線を介して相互に接続されるクロック装置と電子装置とを備える電子機器におけるクロック信号の認証方法であって、
前記クロック装置のクロック生成部はクロック信号を第1信号線に出力し、
前記クロック装置の第1同期信号生成部は、前記クロック生成部によって生成されたクロック信号に同期する第1信号を生成し、
前記電子装置の電子回路は前記第1信号線を介して入力されたクロック信号に基づいて動作し、
前記電子装置の第2同期信号生成部は、前記電子回路に入力されるクロック信号に同期した第2信号を生成し、
前記第1信号と前記第2信号とが互いに同期しているか否かに基づいて、前記電子回路に入力されるクロック信号を認証する、クロック信号の認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クロック認証機能付き電子機器およびクロック信号の認証方法に関する。
【背景技術】
【0002】
従来から、不正な第三者が電子回路を攻撃することで、電子回路が保有する秘密情報を不正に取得する技術が存在する。このような攻撃として例えば電子回路の消費電力を解析する電力解析攻撃などが挙げられる。
【0003】
一方で、このような秘密情報の取得を困難にする技術も提案されている(例えば特許文献1)。例えば特許文献1では、モジュールはクロック変換機構とサブモジュールとを備えている。クロック変換機構には、クロック信号が入力される。クロック変換機構はこのクロック信号を変換し、変換後のクロック信号をサブモジュールに出力する。より具体的には、クロック変換機構はクロック信号に基づいて擬似乱数列を生成し、この擬似乱数列を変換後のクロック信号としてサブモジュールに出力する。サブモジュールは、入力されたクロック信号に基づいて動作する。変換後のクロック信号の周期は不規則に変化するので、サブモジュールの動作タイミングが第三者に特定されにくくなる。よって、上記攻撃による秘密情報の取得が困難となる。
【0004】
また本願に関連する技術として、特許文献2,3を掲示する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−337750号公報
【特許文献2】特許第5322144号公報
【特許文献3】特開2013−80426号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1のモジュールに対して次の処置を施すことにより、擬似乱数列によるクロック信号を無効化することができる。即ち、不正な第三者がクロック変換機構とサブモジュールとの間のクロック信号線の一部を切断することにより、擬似乱数列によるクロック信号を無効化できる。そして、第三者が自ら用意した不正なクロック信号を当該クロック信号線に印加することにより、その不正なクロック信号でサブモジュールを動作させることができる。不正なクロック信号として、略一定周期のクロック信号がサブモジュールに入力される。第三者がこのサブモジュールの動作中に電力解析攻撃などを行えば、サブモジュールの秘密情報を取得することができる。よって、このような不正なクロック信号がサブモジュールに入力されることは好ましくない。
【0007】
また秘密情報の漏洩の問題に限らず、そもそも不正なクロック信号が電子回路に入力される状況は好ましくない。
【0008】
そこで、本願は、クロック信号を認証できるクロック認証機能付き電子機器およびクロック信号の認証方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
クロック認証機能付き電子機器の第1の態様は、クロック用の第1信号線と、クロック信号を前記第1信号線に出力するクロック生成部と、前記クロック生成部が生成したクロック信号に同期する第1信号を生成する第1信号生成部とを有するクロック装置と、前記第1信号線を介してクロック信号が入力される電子回路と、前記電子回路に入力されるクロック信号に同期した第2信号を生成する第2信号生成部とを有する電子装置と、前記第1信号と前記第2信号とが互いに同期しているか否かに基づいて、前記電子回路に入力されるクロック信号を認証する認証部とを備える。
【0010】
クロック認証機能付き電子機器の第2の態様は、請求項1に記載のクロック認証機能付き電子機器であって、前記第1信号生成部は、前記クロック生成部が生成したクロック信号をカウントし、そのカウント値を前記第1信号として出力する第1カウンタを有し、前記第2信号生成部は、前記第1カウンタと同期して初期化され、前記電子回路に入力されるクロック信号をカウントして、そのカウント値を前記第2信号として出力する第2カウンタを有する。
【0011】
クロック認証機能付き電子機器の第3の態様は、請求項2に記載のクロック認証機能付き電子機器であって、前記クロック装置および前記電子装置は第2信号線を介して相互に接続されており、前記認証部は前記電子装置に属しており、前記第1信号生成部は、前記第1カウンタのカウント量が認証値と一致するときに第1通知信号を生成し、前記第2信号線を介して前記認証部に前記第1通知信号を出力する通知信号生成部を有し、前記認証部は、前記第1通知信号が入力されたときの前記第2カウンタのカウント量が前記認証値と一致しないとき、または、前記第2カウンタのカウント量が前記認証値と一致したときに前記第1通知信号が未だ入力されていないときに、前記電子回路に入力されるクロック信号は不正であると判断する。
【0012】
クロック認証機能付き電子機器の第4の態様は、請求項3に記載のクロック認証機能付き電子機器であって、前記認証部は、前記第1通知信号が入力されたときの前記第2カウンタのカウント量が前記認証値と一致するときに、前記電子回路に入力されるクロック信号は正規のクロック信号であると判断する。
【0013】
クロック認証機能付き電子機器の第5の態様は、請求項3または請求項4に記載のクロック認証機能付き電子機器であって、前記第2信号生成部は、乱数値を前記認証値として生成する乱数生成部を有し、前記認証部は前記乱数生成部から入力された前記乱数値を、前記第2信号線を介して前記通知信号生成部に出力する。
【0014】
クロック認証機能付き電子機器の第6の態様は、請求項3または請求項4に記載のクロック認証機能付き電子機器であって、前記第2信号生成部は、乱数値を生成する乱数生成部と、前記乱数値を変数とした所定の関数の値を前記認証値として生成する第1演算部とを有し、前記認証部は前記乱数生成部から入力された前記乱数値を、前記第2信号線を介して前記通知信号生成部に出力し、前記第1信号生成部は、前記乱数値を変数とした前記所定の関数の値を前記認証値として生成する第2演算部を有する。
【0015】
クロック認証機能付き電子機器の第7の態様は、請求項5または請求項6に記載のクロック認証機能付き電子機器であって、前記認証部は、前記第2カウンタのカウント量が前記乱数値と一致したときに、前記第2信号線を介して第2通知信号を前記通知信号生成部に出力し、前記通知信号生成部は、前記第2通知信号が入力されたときの前記第2カウンタのカウント量を前記乱数値として認識する。
【0016】
クロック認証機能付き電子機器の第8の態様は、請求項3から請求項7のいずれか一つに記載のクロック認証機能付き電子機器であって、前記認証値はクロック信号の認証ごとに更新される。
【0017】
クロック認証機能付き電子機器の第9の態様は、請求項1に記載のクロック認証機能付き電子機器であって、前記第1信号生成部は、擬似乱数値を前記第1信号として生成する第1擬似乱数生成部と、所定の鍵生成アルゴリズムを用いて共通鍵を、前記第1擬似乱数生成部の初期設定値として生成する第1設定値生成部とを有し、前記第2信号生成部は、擬似乱数値を前記第2信号として生成する第2擬似乱数生成部と、前記所定の鍵生成アルゴリズムを用いて共通鍵を、前記第2擬似乱数生成部の初期設定値として生成する第2設定値生成部とを有する。
【0018】
クロック認証機能付き電子機器の第10の態様は、請求項9に記載のクロック認証機能付き電子機器であって、前記電子回路は、通常処理と、前記通常処理で用いられる情報よりも秘匿性の高い秘密情報を用いた秘密処理とを実行し、前記電子回路は、前記第1設定値生成部および前記第2設定値生成部が前記初期設定値を生成した後に、前記秘密処理を開始する。
【0019】
クロック認証機能付き電子機器の第11の態様は、請求項1から請求項9のいずれか一つに記載のクロック認証機能付き電子機器であって、前記電子回路は、通常処理と、前記通常処理で用いられる情報よりも秘匿性の高い秘密情報を用いた秘密処理とを実行し、前記認証部は、前記電子回路が前記秘密情報を実行するときに、前記電子回路に入力されたクロック信号を認証する。
【0020】
クロック認証機能付き電子機器の第12の態様は、請求項1から請求項11のいずれか一つに記載のクロック認証機能付き電子機器であって、前記認証部は、前記電子回路に入力されたクロック信号が不当であると判断したときに、前記電子回路の動作を制限する。
【0021】
クロック信号の認証方法の第1の態様は、第1信号線を介して相互に接続されるクロック装置と電子装置とを備える電子機器におけるクロック信号の認証方法であって、前記クロック装置のクロック生成部はクロック信号を第1信号線に出力し、前記クロック装置の第1同期信号生成部は、前記クロック生成部によって生成されたクロック信号に同期する第1信号を生成し、前記電子装置の電子回路は前記第1信号線を介して入力されたクロック信号に基づいて動作し、前記電子装置の第2同期信号生成部は、前記電子回路に入力されるクロック信号に同期した第2信号を生成し、前記第1信号と前記第2信号とが互いに同期しているか否かに基づいて、前記電子回路に入力されるクロック信号を認証する。
【発明の効果】
【0022】
クロック認証機能付き電子機器の第1の態様およびクロック信号の認証方法の第13の態様によれば、クロック信号を認証することができる。
【0023】
クロック認証機能付き電子機器の第2の態様によれば、簡単な回路で第1信号および第2信号を生成できる。
【0024】
クロック認証機能付き電子機器の第3の態様によれば、クロック装置から電子装置の認証部へと第1信号を出力せずに、第1通知信号を出力し、第1通知信号が入力されるタイミングに基づいて、不正なクロック信号を検出している。
【0025】
第1信号はカウント値(多値)を表現できる程度の情報量を必要とするのに対して、第1通知信号はそのような多値を表現する必要がない。よって、少ない情報量で第1通知信号を構成できる。つまり、クロック装置から電子装置へと伝達される第1通知信号の情報量を低減することができる。これは例えば第2信号線の簡素化に寄与する。
【0026】
クロック認証機能付き電子機器の第4の態様によれば、クロック信号が正規であると判断できる。
【0027】
クロック認証機能付き電子機器の第5の態様によれば、認証値の秘匿性を向上できる。
【0028】
クロック認証機能付き電子機器の第6の態様によれば、認証値の秘匿性を更に向上できる。
【0029】
クロック認証機能付き電子機器の第7の態様によれば、乱数値を出力することなく、第2通知信号によって乱数値をクロック装置に伝達できる。乱数値は多値を表現する程度の情報量を有しているのに対して、第2通知信号はそのような多値を表現する必要がない。よって少ない情報量で第2通知信号を構成できる。つまり、クロック装置から電子装置へと伝達される第2通知信号の情報量を低減することができる。これも例えば第2信号線の簡素化に寄与する。
【0030】
クロック認証機能付き電子機器の第8の態様によれば、認証値の秘匿性を向上できる。
【0031】
クロック認証機能付き電子機器の第9の態様によれば、初期設定値を高い秘匿性で生成できる。
【0032】
クロック認証機能付き電子機器の第10の態様によれば、秘密処理の開始直後からクロック信号の認証を行うことができる。
【0033】
クロック認証機能付き電子機器の第11の態様によれば、クロック認証の必要性が高い状況でクロック認証を行うことができる。
【0034】
クロック認証機能付き電子機器の第12の態様によれば、不当なクロック信号に基づく電子回路の動作を制限するので、不当な第三者が得られる利益を抑制できる。
【図面の簡単な説明】
【0035】
図1】第1の実施の形態に係る電子機器の構成の一例を概略的に示す図である。
図2】不正クロック生成部が設けられた電子機器の構成の一例を概略的に示す図である。
図3】機能を実現する構成の一例を概略的に示す図である。
図4】電子機器のより具体的な構成の一例を概略的に示す図である。
図5】電子装置の動作の一例を示すフローチャートである。
図6】クロック装置の動作の一例を示すフローチャートである。
図7】正規のクロック信号が入力されたときのタイミングチャートの一例を示す図である。
図8】不当なクロック信号が入力されたときのタイミングチャートの一例を示す図である。
図9】クロック装置の動作の一例を示すフローチャートである。
図10】第2の実施の形態に係る電子機器の構成の一例を概略的に示す図である。
図11】正規のクロック生成部が接続された電子機器におけるタイミングチャートの一例を示す図である。
図12】電子装置の動作の一例を示すフローチャートである。
図13】クロック装置の動作の一例を示すフローチャートである。
図14】正規のクロック信号が入力されたときのタイミングチャートの一例を示す図である。
図15】不当なクロック信号が入力されたときのタイミングチャートの一例を示す図である。
図16】正規のクロック信号が入力されたときのタイミングチャートの他の一例を示す図である。
図17】不当なクロック信号が入力されたときのタイミングチャートの他の一例を示す図である。
【発明を実施するための形態】
【0036】
第1の実施の形態.
図1は、クロック認証機能付き電子機器10(以下、単に電子機器10と呼ぶ)の概略的な構成の一例を示す機能ブロック図である。
【0037】
電子機器10はクロック装置1と電子装置5とを備えている。クロック装置1および電子装置5は信号線L1,L2の各々を介して相互に接続されている。クロック装置1はクロック信号CL1を生成し、そのクロック信号CL1を信号線L1に出力する。電子装置5は、信号線L1から入力されるクロック信号に基づいて動作する。よって信号線L1は、クロック信号CL1を伝達するためのクロック用の信号線であるといえる。また信号線L2は後述するように、クロック信号の認証に用いられる各種の信号を伝達するための認証用の信号線である。
【0038】
図1に示すように、クロック装置1はクロック生成部2と同期信号生成部3とを備えている。クロック生成部2はクロック信号CL1を生成し、クロック信号CL1を信号線L1に出力する。例えばクロック生成部2は水晶発振器、LC発振器、RC発振器、リング発振器、セラミック発振器またはMEMS(Micro Electro Mechanical Systems)発振器などの発振器を発振源として有している。発振源としてMEMS発振器を採用する場合には、その発信器からの出力信号の特性を良好にでき、また発振器のサイズを低減できる。
【0039】
クロック生成部2は当該発振器によって出力される周期的な出力信号に基づいてクロック信号CL1を生成する。ここでは、クロック生成部2は周期が略一定のクロック信号CL1と、周期が不規則に変化するクロック信号CL1とを択一的に出力する。以下、具体的な一例について説明する。
【0040】
例えばクロック生成部2は、当該発振器の出力信号を適宜に分周および/または逓倍して、クロック信号CL1を生成するPLL(Phase Locked Loop)回路を有している。このクロック信号CL1の周期は例えば略一定である。
【0041】
また例えばクロック生成部2は特許文献1と同様にクロック変換機構を有している。このクロック変換機構は例えば擬似乱数生成回路を有しており、この擬似乱数生成回路によって生成された擬似乱数列をクロック信号CL1として出力する。このクロック信号CL1の周期は不規則に変化する。
【0042】
さらにクロック生成部2は、略一定周期のクロック信号CL1および不規則周期のクロック信号CL1を選択する選択部(例えばスイッチ)を有している。当該選択部には、PLL回路から略一定周期のクロック信号CL1が入力されるとともに、クロック変換機構から不規則周期のクロック信号CL1が入力される。選択部は電子装置5からの要求に基づいてクロック信号CL1を選択し、選択したクロック信号CL1を信号線L1に出力する。
【0043】
図1に示すように、電子装置5は電子回路6と同期信号生成部7と認証部8とを備えている。電子回路6は、信号線L1を介して入力されたクロック信号に基づいて動作する。電子回路6は例えばロジックIC(Integrated Circuit)である。この電子回路6は秘匿性が高い情報(以下、秘密情報と呼ぶ)を用いた処理(以下、秘密処理と呼ぶ)を行うことができる。秘密処理としては、暗号化処理および復号化処理を例示でき、秘密情報としては暗号キーおよび復号キーを例示できる。
【0044】
例えば電子回路6は不図示の外部から第1暗号文データを受け取り、この第1暗号文データに対して所定のキー(復号キー)で復号化処理を行うことにより、第1平文データを生成する。また電子回路6は第2平文データに対して所定のキー(暗号キー)で暗号化処理を行うことにより、第2暗号文データを生成し、この第2暗号文データを外部へと出力する。このような暗号化処理および復号化処理で用いるアルゴリズムは特に限定される必要は無いものの、例えばAES(Advanced Encryption Standard)を採用できる。
【0045】
また電子回路6は、秘密処理とは異なる通常処理を行うこともできる。通常処理は、秘密情報よりも秘匿性の低い情報を用いた処理である。通常処理は特に制限される必要は無いものの、例えば画像処理などの処理であってもよい。
【0046】
電子回路6は通常処理を行う際には、略一定周期のクロック信号CL1をクロック装置1に要求し、秘密処理を行う際には、不規則周期のクロック信号CL1をクロック装置1に要求する。クロック生成部2は当該要求に基づいて信号線L1にクロック信号CL1を出力する。
【0047】
電子回路6が不規則周期のクロック信号CL1に基づいて秘密処理(例えば暗号化処理または復号化処理)を実行すれば、秘密処理における各手順が不規則なタイミングで実行されることとなる。したがって、第三者は当該タイミングを特定しにくく、たとえ不正な攻撃(例えば電力解析攻撃)を行っても秘密情報を取得しにくい。
【0048】
しかしながら、第三者がこの不規則周期のクロック信号CL1を無効にすべく、別途に不正なクロック生成部を用意することが考えられる。図2は、不正なクロック生成部が設けられた電子機器10の構成の一例を概略的に示す図である。図2の例では、信号線L1はクロック装置1と電子装置5との間において断線しており、信号線L1a,L1bが形成されている。信号線L1aは、断線された信号線L1のうちクロック生成部2に接続された部分であり、信号線L1bは、断線された信号線L1のうち電子回路6に接続された部分である。
【0049】
信号線L1bには、第三者によって不正クロック生成部2’が接続されている。不正クロック生成部2’は略一定周期の不正なクロック信号CL2を信号線L1bに出力する。この場合、電子回路6は不正なクロック信号CL2に基づいて動作する。略一定周期のクロック信号CL2に基づいて電子回路6が秘密処理を実行すれば、第三者による不正な攻撃によって秘密情報が漏洩しやすくなる。
【0050】
そこで、図1および図2に例示するように、電子機器10には、クロック信号を認証するための同期信号生成部3,7および認証部8が設けられている。
【0051】
以下、同期信号生成部3,7および認証部8の機能について説明する。同期信号生成部3,7および認証部8の機能は例えばソフトウェアで実現されてもよい。図3は、当該機能をソフトウェアで実現するときの構成の一例を概略的に示している。図3に例示するように、当該構成は例えば演算処理部101と記憶媒体102とを有している。演算処理部101は例えばCPU(Central Processing Unit)またはDSP(Digital Signal Processor)などの処理部であり、記憶媒体102は、演算処理部101の作業領域を提供するRAM(Random Access Memory)102aおよびプログラムおよびデータなどが記憶されるROM(Read Only Memory)102bを有している。演算処理部101が記憶媒体102に記憶されたプログラムを読み出して実行することで、各種の機能が実現される。
【0052】
なお同期信号生成部3,7および認証部8の各々の一部または全部は必ずしもソフトウェアで実現される必要は無く、ハードウェア回路で実現されてもよい。つまり、同期信号生成部3,7および認証部8の各々は、ハードウェア、ソフトウェア、又はこれらの混在したもの等、によって形成される回路群(=circuitry)により実現される。ハードウェア回路を用いる場合には、例えば、論理回路等を含む専用の回路等の動作により機能を実現することができる。ハードウェア回路で構成された機能部は高い応答性を実現できる。
【0053】
同期信号生成部3はクロック装置1の内部において信号線L1に接続されている。よって、同期信号生成部3には、クロック生成部2が出力したクロック信号CL1が入力される。同期信号生成部3はこのクロック信号CL1に同期した認証用の信号T1(以下、認証信号T1と呼ぶ)を生成し、信号線L2を介してこの認証信号T1を認証部8に出力する。同期信号生成部3の具体的な例については後述する。
【0054】
同期信号生成部7は電子装置5の内部において信号線L1に接続されている。よって、同期信号生成部7には、電子回路6に入力されるクロック信号と同じクロック信号が入力される。以下では、電子回路6に入力されるクロック信号をクロック信号CL3と呼ぶ。電子回路6に正規のクロック信号CL1が入力される場合には、クロック信号CL3は正規のクロック信号CL1であり、電子回路6に不正なクロック信号CL2が入力される場合には、クロック信号CL3は不正なクロック信号CL2である。
【0055】
同期信号生成部7は、クロック信号CL3に同期した認証用の信号T2(以下、認証信号T2と呼ぶ)を生成する。よって同期信号生成部7は、電子回路6に正規のクロック信号CL1が入力されるときには、正規のクロック信号CL1に同期した認証信号T2を生成し、電子回路6に不正なクロック信号CL2が入力されるときには、不正なクロック信号CL2に同期した認証信号T2を生成する。
【0056】
認証部8には、電子装置5の内部において同期信号生成部7から認証信号T2が入力され、同期信号生成部3から信号線L2を介して認証信号T1が入力される。認証部8は認証信号T1,T2が互いに同期しているか否かに基づいて、電子回路6に入力されたクロック信号CL3を認証する。具体的には、認証部8は認証信号T1,T2が同期しているときにクロック信号CL3が正規のクロック信号CL1であると判断し、認証信号T1,T2が同期していないときにクロック信号CL3が不当なクロック信号CL2であると判断する。
【0057】
図4は、電子機器10のより具体的な構成の一例を示す図である。図4では、同期信号生成部3,7の具体的な内部構成の一例が示されている。同期信号生成部3は認証信号生成部31と設定値生成部32とを備え、同期信号生成部7は認証信号生成部71と設定値生成部72とを備えている。
【0058】
設定値生成部32,72は互いに共通の初期設定値を生成する。この初期設定値は後に詳述する認証信号生成部31,71で用いられる。設定値生成部32,72は当該初期設定値として、例えば公開鍵暗号方式の鍵共有を鍵生成アルゴリズムとして用いて共通鍵を生成する。このアルゴリズムには、例えばDiffie-Hellman鍵共有を用いることができる。なおこの共通鍵は共通鍵暗号方式または公開鍵暗号方式の守秘アルゴリズムの暗号鍵または復号鍵として利用されるものではなく、認証信号生成部31,71の初期設定値として利用される。ここでは初期設定値を鍵生成アルゴリズムで生成する関係から、以下で述べる各値を便宜上「鍵」と呼んでいるが、実際に「鍵」として機能する必要は無い。
【0059】
設定値生成部32は鍵共有部321と乱数生成部322とを備え、設定値生成部72は鍵共有部721と乱数生成部722とを備えている。
【0060】
乱数生成部322は乱数生成回路であり、乱数値を秘密鍵SKaとして生成して、この秘密鍵SKaを鍵共有部321に出力する。乱数生成部722は乱数生成回路であり、乱数値を秘密鍵SKbとして生成して、この秘密鍵SKbを鍵共有部721に出力する。
【0061】
鍵共有部321は秘密鍵SKaとベースパラメータX,pとに基づいて公開鍵PKaを生成する。ベースパラメータX,pは例えば予め設定されており、クロック装置1の記憶媒体に記憶されている。例えば、ベースパラメータXは小さな整数であり、ベースパラメータpは大きな素数である。鍵共有部321は例えば(X^SKa mod p)を演算し、その演算結果を公開鍵PKaとして生成する。ここで、「A^B」はBを指数としたAの累乗を示し、「A mod B」はAをBで除算した余りを示す。鍵共有部321はこの公開鍵PKaを、信号線L2を介して電子装置5の鍵共有部721に出力する。
【0062】
鍵共有部721は秘密鍵SKbとベースパラメータX,pとに基づいて公開鍵PKbを生成する。ベースパラメータX,pは電子装置5の記憶媒体にも記憶されている。鍵共有部721は例えば(X^SKb mod p)を演算し、その演算結果を公開鍵PKbとして生成する。鍵共有部721は公開鍵PKbを、信号線L2を介してクロック装置1の鍵共有部321に出力する。
【0063】
鍵共有部321は秘密鍵SKaと公開鍵PKbとに基づいて共通鍵CKを生成し、その共通鍵CKを初期設定値として認証信号生成部31に出力する。具体的には鍵共有部321は例えば(PKb^SKa mod p)を演算し、その演算結果を共通鍵CKとして生成する。鍵共有部721は秘密鍵SKbと公開鍵PKaとに基づいて共通鍵CKを生成し、その共通鍵CKを初期設定値として認証信号生成部71に出力する。具体的には鍵共有部721は例えば(PKa^SKb mod p)を演算し、その演算結果を共通鍵CKとして生成する。(PKb^SKa mod p)および(PKa^SKb mod p)は同じ値であるので、設定値生成部32,72はそれぞれ共通の共通鍵CK(初期設定値)を生成することになる。
【0064】
認証信号生成部31には、クロック装置1の内部において、クロック生成部2からクロック信号CL1が入力され、また鍵共有部321から共通鍵CKが入力される。認証信号生成部31は共通鍵CKを初期設定値として用いて、クロック信号CL1に同期して繰り返し所定のアルゴリズムで演算処理を行って認証信号T1を生成する。初期設定値とは、例えば所定のアルゴリズムにおける最初の変数である。例えば認証信号生成部31は一つ前の認証信号T1を変数としたアルゴリズムで認証信号T1を生成(あるいは更新)してもよい。この認証信号T1の値はクロック信号CL1に同期して変化する。
【0065】
より具体的な一例として、認証信号生成部31は、所定のアルゴリズムで擬似乱数値を認証信号T1として生成する第1擬似乱数生成回路を有していてもよい。この第1擬似乱数生成回路には、共通鍵CKが初期設定値として入力されるとともに、クロック信号CL1が入力される。第1擬似乱数生成回路はクロック信号CL1と同期して擬似乱数値(認証信号T1)を順次に生成する。認証信号生成部31は信号線L2を介してこの認証信号T1を認証部8に出力する。
【0066】
認証信号生成部71には、電子装置5の内部において、信号線L1を介してクロック信号CL3が入力され、また鍵共有部721から共通鍵CKが入力される。認証信号生成部71は共通鍵CKを初期設定値として用いて、クロック信号CL3に同期して認証信号生成部31と同じアルゴリズムで演算処理を繰り返し行って認証信号T2を生成する。よって、この認証信号T2の値はクロック信号CL3に同期して変化する。
【0067】
より具体的な一例として、認証信号生成部71は認証信号生成部31の第1擬似乱数生成回路と同じ第2擬似乱数生成回路を有している。この第2擬似乱数生成回路には、共通鍵CKが初期設定値として入力されるとともに、クロック信号CL3が入力される。第2擬似乱数生成回路は第1擬似乱数生成回路と同じアルゴリズムでクロック信号CL3と同期して擬似乱数値(認証信号T2)を順次に生成する。認証信号生成部71はこの認証信号T2を認証部8に出力する。
【0068】
認証信号生成部71に正規のクロック信号CL1が入力される場合には、認証信号生成部31,71がそれぞれ生成する認証信号T1,T2は互いに同期して変化する。つまり認証信号T1,T2は理想的には常に同じ値をとる。
【0069】
一方で、認証信号生成部71に不正なクロック信号CL2が入力される場合には、認証信号生成部31,71がそれぞれ生成する認証信号T1,T2は同期しない。つまり、認証信号T1,T2はいずれ互いに異なる値をとることになる。
【0070】
そこで、認証部8は認証信号T1,T2に値に基づいて認証信号T1,T2が互いに同期しているか否かを判断する。より具体的には、認証部8は認証信号T1,T2の値が互いに等しいか否かを判断する。認証部8は認証信号T1,T2の値が互いに等しいとき、つまり認証信号T1,T2が互いに同期しているときには、電子回路6に入力されるクロック信号CL3は正規のクロック信号CL1であると判断する。一方で、認証信号T1,T2の値が互いに等しくないとき、つまり互いに同期していないときには、電子回路6に入力されるクロック信号CL3は不正なクロック信号CL2であると判断する。
【0071】
図5および図6は、電子機器10の具体的な動作の一例を示すフローチャートである。図5は、電子装置5の動作の一例を示し、図6は、クロック装置1の動作の一例を示している。図7および図8は、電子機器10のタイミングチャートの一例を示す図である。図7は、電子回路6に正規のクロック信号CL1が入力されているときのタイミングチャートを示し、図8は、電子回路6に不正なクロック信号CL2が入力されているときのタイミングチャートを示している。
【0072】
図5を参照して、まずステップS10にて、例えば電子回路6は、初期設定値の生成を指示するコマンド(以下、設定コマンドと呼ぶ)をクロック装置1に出力する。例えば電子回路6は通常処理から秘密処理への切り替えの際に、その秘密処理に先立って、設定コマンドを出力する。クロック装置1はこの設定コマンドの入力に応じて初期設定値の生成処理を実行する(図6のステップS21〜S24:後述)。また、この設定コマンドに応じて電子装置5でも初期設定値の生成処理(ステップS11〜S14)を実行する。
【0073】
ステップS11にて、乱数生成部722は乱数値を秘密鍵SKbとして生成し、秘密鍵SKbを鍵共有部721に出力する。次にステップS12にて、鍵共有部721は例えば秘密鍵SKbとベースパラメータX,pとに基づいて公開鍵PKbを生成し、その公開鍵PKbをクロック装置1の鍵共有部321に出力する。
【0074】
次にステップS13にて、鍵共有部721はクロック装置1から公開鍵PKaが入力されたか否かを判断する。公開鍵PKaが未だ入力されていないときには、鍵共有部721は再びステップS13を実行する。公開鍵PKaが入力されたときには、ステップS14にて、鍵共有部721は秘密鍵SKbおよび公開鍵PKaに基づいて共通鍵CKを生成して、その共通鍵CKを認証信号生成部71に出力する。
【0075】
次にクロック装置1の動作の一例について説明する。図6を参照して、ステップS20にて、クロック装置1は電子装置5から設定コマンドが入力されたか否かを判断する。設定コマンドが未だ入力されていないときには、クロック装置1はステップS20を再び実行する。
【0076】
設定コマンドが入力されたときには、ステップS21にて、乱数生成部322は乱数値を秘密鍵SKaとして生成し、この秘密鍵SKaを鍵共有部321に出力する。次にステップS22にて、鍵共有部321は例えば秘密鍵SKaとベースパラメータX,pとに基づいて公開鍵PKaを生成し、その公開鍵PKaを電子装置5の鍵共有部721に出力する。
【0077】
次にステップS23にて、鍵共有部321は電子装置5の鍵共有部721から公開鍵PKbが入力されたか否かを判断する。公開鍵PKbが未だ入力されていないときには、鍵共有部321は再びステップS23を実行する。公開鍵PKbが入力されたときには、ステップS24にて、鍵共有部321は秘密鍵SKaおよび公開鍵PKbに基づいて共通鍵CKを生成して、その共通鍵CKを認証信号生成部31に出力する。
【0078】
以上のように、ステップS11〜S14およびステップS21〜S24によって、認証信号T1,T2を生成するための共通の初期設定値(共通鍵CK)を生成することができる。
【0079】
ところで、ステップS11〜S14,S21〜S24の一連の処理は初期設定値の生成というクロック認証の前段階の処理に相当する。この前段階の処理においては、実際のクロックの認証(後述のステップS15〜S19,S25〜S27)は行われないので、電子回路6はこの前段階の処理が終了した後に秘密処理を実行するとよい。これによれば、秘密処理の開始直後からクロックの認証を行うことができ、秘密情報の漏洩をより確実に抑制できる。
【0080】
また上述のように、電子回路6は通常処理から秘密処理への切り替えの際に、不規則周期のクロック信号CL1をクロック装置1に要求する。電子回路6が初期設定値の生成処理の後に秘密処理を実行する場合には、この要求も当該生成処理の後に実行してもよい。すなわち、この前段階の処理が終了したときに、電子回路6は不規則周期のクロック信号CL1を要求するコマンド(以下、イレギュラーコマンドと呼ぶ)をクロック装置1に出力し、その後、秘密処理を実行してもよい。クロック生成部2はこのイレギュラーコマンドに応答して、不規則周期のクロック信号CL1を信号線L1に出力する。クロック信号CL1が適切に電子回路6に入力されている場合には、電子回路6はこの不規則周期のクロック信号CL1に基づいて秘密処理を実行することができる。
【0081】
ステップS25にて、認証信号生成部31はクロック信号CL1に同期して、共通鍵CKに基づいて認証信号T1を生成し、信号線L2を介してこの認証信号T1を認証部8に出力する。例えば認証信号生成部31は共通鍵CKを初期設定値として擬似乱数値(認証信号T1)を生成する。図7および図8の例示では、認証信号生成部31はクロック信号CL1の立ち下りに同期して認証信号T1[0]を生成している。
【0082】
次にステップS26にて、認証信号生成部31はクロック信号CL1の例えば次の立ち下りに同期して認証信号T1を更新し、信号線L2を介してこの認証信号T1を認証部8に出力する。図7および図8の例では、更新後の認証信号T1が認証信号T1[1],・・・,T1[8]で示されている。
【0083】
次にステップS27にて、クロック装置1はイレギュラーコマンドが電子装置5から入力されたか否かを判断する。イレギュラーコマンドは、略一定周期のクロック信号CL1の出力を指示するコマンドであり、例えば秘密処理から通常処理への切り替えの際に電子回路6によって出力される。レギュラーコマンドが未だ入力されていないときには、認証信号生成部31は再びステップS26を実行する。一方でレギュラーコマンドが入力されたときには、クロック装置1はクロック信号の認証処理を終了し、略一定周期のクロック信号CL1を信号線L1に出力する。つまりここでは、クロック装置1は秘密処理の実行期間に亘ってクロック信号の認証処理を実行し、通常処理の実行期間にはクロック信号の認証処理を実行しない。
【0084】
再び電子装置5の動作の一例を説明する。図5を参照して、ステップS14の次のステップS15にて、認証信号生成部71はクロック信号CL3に同期して、共通鍵CKに基づいて認証信号T2を生成し、この認証信号T2を認証部8に出力する。例えば認証信号生成部71は共通鍵CKを初期設定値として擬似乱数値(認証信号T2)を生成する。図7および図8の例示では、認証信号生成部71はクロック信号CL3の立ち下りに同期して認証信号T2[0]を生成している。認証信号生成部71は認証信号生成部31と同じ初期設定値を用いて同じアルゴリズムで認証信号T2を生成するので、認証信号T1[0],T2[0]の値は互いに一致する。
【0085】
次にステップS16にて、認証部8は認証信号T1,T2が互いに一致しているか否かを判断する。例えば認証部8はクロック信号CL3の立ち上がりに同期してこの判断を実行する。認証信号T1,T2が互いに一致しているときは、ステップS17にて、認証部8はレギュラーコマンドがクロック装置1に出力されたか否かを判断する。レギュラーコマンドが出力されたときには、認証部8はクロック信号の認証処理を終了する。
【0086】
レギュラーコマンドが出力されていないときには、ステップS18にて、認証信号生成部71はクロック信号CL3の例えば次の立ち下りに同期して認証信号T2を更新し、その認証信号T2を認証部8に出力する。例えば認証信号生成部71は擬似乱数値を認証信号T2として生成する。次に認証部8は再びステップS16を実行する。
【0087】
図7および図8の例では、更新後の認証信号T2が認証信号T2[1],・・・,T2[8](あるいはT2[9])で示されている。認証信号生成部71は認証信号生成部31と同じアルゴリズムで認証信号T2を更新するので、認証信号T1[n],T2[n](nは整数)の値は互いに一致する。
【0088】
クロック信号CL3が正規のクロック信号CL1であるときには、認証信号T1[n],T2[n]は互いに同期して更新されるので、理想的には任意のタイミングにおける認証信号T1,T2は互いに一致する(図7)。これに対して、クロック信号CL3が不正なクロック信号CL2であるときには、認証信号T1[n],T2[n]は互いに非同期で更新される。よって、同じ時点における認証信号T1,T2はいずれ互いに異なる(図8)。
【0089】
よって、いずれステップS16にて、認証部8は認証信号T1,T2の値が互いに一致していないと判断する。例えば図8の例では、クロック信号CL3が立ち下がるある時点における認証信号T1[7],T2[8]は互いに異なっており、このとき認証部8は認証信号T1,T2は互いに一致しないと判断する。認証信号T1,T2の値が互いに一致しないときには、ステップS19にて、認証部8はクロック信号CL3が不正なクロック信号CL2であると判断して、電子回路6の動作を制限する。例えば認証部8は電子回路6の動作を終了させる。より具体的には、例えば電子回路6がリセット端子を有している場合には、認証部8はリセット信号を電子回路6に出力してもよい。
【0090】
以上のように、認証信号T1,T2が互いに一致するときには、認証部8はクロック信号CL3が正規のクロック信号CL1と判断し、ステップS19を実行することなくクロック信号の認証処理を続行し(ステップS16〜S18)、認証信号T1,T2が互いに一致しないときには、認証部8はクロック信号CL3が不正なクロック信号CL2であると判断して、電子回路6の動作を制限する(ステップS16,S19)。これにより、不正な第三者による秘密情報の取得を困難にすることができる。より一般的に言えば、不当なクロック信号CL2に基づく電子回路6の動作を制限するので、不当な第三者が得られる利益を抑制できる。
【0091】
なお上述の例では、認証信号生成部31,71に共通して入力する初期設定値として、共通鍵CKを採用している。よって、初期設定値の秘匿性を向上することができる。これによれば、クロック認証の強度を向上できる。また認証信号生成部31,71が擬似乱数生成回路を有している場合には、それぞれクロック信号CL1,CL3に同期してランダムに認証信号T1,T2が更新される。これによれば、第三者による認証信号T1,T2の予測が困難となるので、クロック認証の強度を更に向上できる。
【0092】
また上述の例では、クロック信号の認証処理を秘密処理の実行期間において実行し、通常処理の実行期間において実行していない。これによれば、秘密情報が漏洩しやすい状況でのみクロック信号の認証処理が実行される。よって、秘密情報の漏洩を効率的に抑制しつつも、電子機器10の消費電力を低減できる。なお消費電力の低減の必要性が低い場合には、クロック信号の認証処理を通常処理の実行期間において実行しても構わない。
【0093】
第2の実施の形態.
第1の実施の形態の具体例では、クロック装置1から電子装置5へ出力される認証信号T1として乱数値を採用している。よって、この認証信号T1は少なくとも乱数値を表現できる程度の情報量を有している。第2の実施の形態では、クロック装置1から電子装置5へ出力される信号の情報量を低減することを企図する。
【0094】
第2の実施の形態にかかる電子機器10Aの構成の一例は図1の電子機器10と同様である。ただし、同期信号生成部3,7および認証部8の動作が相違する。図9は、第2の実施の形態にかかる電子機器10Aの構成の一例を概略的に示す図である。
【0095】
<クロック認証の概要>
まず第2の実施の形態にかかるクロック認証の考え方について簡単に説明する。上述のように、電子回路6に入力されるクロック信号CL3が不正なクロック信号CL2である場合、クロック信号CL3の周期は正規のクロック信号CL1の周期と相違する。よってこの場合、基準時点からのクロック信号CL1,CL3のサイクル数は時間の経過に伴って徐々にずれていく(図8も参照)。例えば図8では、クロック信号CL1の8サイクル目の期間はクロック信号CL3の8サイクル目の期間と時間的に重なっていない。その一方で、クロック信号CL3が正規のクロック信号CL1である場合、当然にクロック信号CL1,CL3のサイクル数は理想的には時間の経過に依らず常に一致する(図7も参照)。
【0096】
第2の実施の形態では、クロック装置1はクロック信号CL1のy(yは自然数)サイクル目の期間において電子装置5へと通知信号TS1を出力する。この通知信号TS1の情報量は認証信号T1の情報量に比して小さく、例えば1ビットでも構わない。
【0097】
クロック信号CL3が正規のクロック信号CL1である場合には、電子装置5はこの通知信号TS1をクロック信号CL3のyサイクル目の期間において受け取り、クロック信号CL3が不当なクロック信号CL1である場合には、電子装置5はこの通知信号TS1をクロック信号CL3のyサイクル目の期間では受け取らない。そこで、電子装置5はクロック信号CL3のyサイクル目の期間において通知信号TS1を受け取ったか否かを判断し、当該期間において通知信号TS1を受け取ったときには、クロック信号CL3は正規のクロック信号CL1であると判断する。また電子装置5は当該期間において通知信号TS1を受け取らないときには、クロック信号CL3は不正なクロック信号CL2であると判断する。
【0098】
<電子機器の詳細>
図9に例示するように、同期信号生成部3はカウンタ33と通知信号生成部34とを備えており、同期信号生成部7はカウンタ73と乱数生成部74とを備えている。
【0099】
カウンタ33はクロック装置1の内部において信号線L1に接続されており、クロック生成部2が生成したクロック信号CL1が入力される。カウンタ33はクロック信号CL1をカウントしてカウント値CT1を生成し、カウント値CT1を通知信号生成部34に出力する。このカウント値CT1はクロック信号CL1に同期した信号である。カウンタ33はカウントアップ動作を行ってもよく、カウントダウン動作を行ってもよい。つまりカウンタ33はクロック信号CL1の周期ごとにカウント値CT1をインクリメントしてもよく、または、クロック信号CL1の周期ごとにカウント値CT1をディクリメントしてもよい。このカウンタ33によってカウントされたカウント量はカウンタ33が初期化された時点からのクロック信号CL1のサイクル数を示すことになる。
【0100】
カウンタ73は電子装置5の内部において信号線L1に接続されており、電子回路6に入力されるクロック信号CL3が入力される。カウンタ73はクロック信号CL3をカウントしてカウント値CT2を生成し、カウント値CT2を認証部8に出力する。このカウント値CT2はクロック信号CL3に同期した信号である。カウンタ73はカウントアップ動作を行ってもよく、カウントダウン動作を行ってもよい。つまり、カウンタ73はクロック信号CL3の周期ごとにカウント値CT2をインクリメントしてもよく、または、クロック信号CL3の周期ごとにカウント値CT2をディクリメントしてもよい。このカウンタ73によってカウントされたカウント量はカウンタ73が初期化された時点からのクロック信号CL3のサイクル数を示すことになる。
【0101】
これらのカウンタ33,73は互いに同期して初期化されて、それぞれカウント動作を開始する。初期化の具体的なタイミングの一例は後に述べる。
【0102】
通知信号生成部34はカウンタ33のカウント量がある値yとなるときに通知信号TS1を出力する。図10は、電子機器10Aのタイミングチャートの一例を示している。図10では、電子装置5に正規のクロック信号CL1が入力されている場合のタイミングチャートが示されている。図10の例では、カウント値CT1,CT2はそれぞれ零、値yに初期化されており、カウント値CT1はクロック信号CL1の立ち下りに同期してインクリメントされ、カウント値CT2はクロック信号CL3の立ち下りに同期してディクリメントされる。
【0103】
カウンタ33のカウント量が値yとなるときにはカウント値CT1が値yをとるので、通知信号生成部34はカウント値CT1が値yをとる期間で通知信号TS1を認証部8に出力する。これにより、クロック信号CL1のyサイクル目の期間において通知信号TS1が出力される。なお図10の例では、通知信号TS1の出力が、H(ハイ)をとる通知信号TS1で示されている。
【0104】
認証部8はカウンタ73のカウント量が値yである期間において、通知信号TS1が入力されたか否かを判断する。図10の例示では、カウンタ73のカウント値CT2は値yを初期値としてディクリメントされるので、カウント値CT2が零のときにカウンタ73のカウント量が値yとなる。よって、認証部8はカウント値CT2が零となる期間において通知信号TS1が入力されたか否かを判断すればよい。認証部8は当該期間において通知信号TS1が入力されたときに、クロック信号CL3が正規のクロック信号CL1であると判断し、当該期間において通知信号TS1が入力されないときにクロック信号CL3が不正なクロック信号CL2であると判断する。
【0105】
<認証値y>
上述の値yは例えば予め設定されてクロック装置1および電子装置5のそれぞれの記憶媒体に記憶されていてもよい。しかるに、ここでは、電子装置5が値y(以下、認証値yと呼ぶ)を生成し、その認証値yをクロック装置1へと伝達する。以下、まず認証値yの生成および伝達方法の概要を説明する。その後、上述の認証動作も含めて電子機器10のより具体的な動作の一例を説明する。
【0106】
図9の例示では、同期信号生成部7は、値y(以下、認証値yとも呼ぶ)を生成する乱数生成部74を備えている。乱数生成部74は乱数生成回路であり、乱数値を認証値yとして生成して、この認証値yを認証部8へと出力する。
【0107】
認証部8は信号線L2を介してこの認証値yをクロック装置1の通知信号生成部34へと伝達する。ただしここでは、認証値yをそのまま出力するのではなく、クロック信号CL1,CL3の周期を利用して認証値yを通知信号生成部34へと伝達する。
【0108】
図11は、電子機器10Aのタイミングチャートの一例を示す図である。図11では、電子装置5に正規のクロック信号CL1が入力されている場合のタイミングチャートが示されている。まずカウンタ33,73を同期して初期化する。なおこの時点ではクロック装置1には認証値yが未だ伝達されていないので、図11の例示では、当該時点でのクロック装置1側の認証値が零で示されている。
【0109】
次に認証部8はカウンタ73の初期化時点からクロック信号CL3のyサイクル目の期間において、信号線L2を介して通知信号TS2を通知信号生成部34へと出力する。つまり、認証部8はカウンタ73のカウント量が認証値yと一致する期間(図11の例ではカウント値CT2が零となる期間)において、通知信号TS2を出力する。通知信号TS2は通知信号TS1と同様に1ビットで構成されてもよい。
【0110】
通知信号生成部34は、通知信号TS2を受け取ったときのクロック信号CL1のサイクル数を、認証値yとして認識する。言い換えれば、通知信号生成部34は通知信号TS2を受け取ったときのカウンタ33のカウント量(図11の例ではカウント値CT1)を認証値yとして認識する。
【0111】
図11に例示するように、クロック信号CL3が正規のクロック信号CL1であるときには、通知信号生成部34はカウント値CT1が値yをとる期間(つまりクロック信号CL1のyサイクル目の期間)において、通知信号TS2を受け取る。よって、通知信号生成部34は適切に認証値yを認識することができる。
【0112】
なお図11の例示では、通知信号TS2がH(ハイ)をとる期間よりも後の期間において、クロック装置1側の認証値が「y」で示されている。そして、この期間において上記クロック認証が行われる。
【0113】
一方でクロック信号CL3が不当なクロック信号CL2であるときには、通知信号生成部34はカウント値CT1が値y’(y’はyとは異なる自然数)をとる期間(つまりクロック信号CL1のy’サイクル目の期間)において、通知信号TS2を受け取る(図14も参照)。この場合には、通知信号生成部34は正しく認証値yを認識できず、認証値yを値y’と誤認することとなる。
【0114】
<具体的な動作の一例>
次に上記の認証値yの生成および伝達、並びに、クロックの認証の一連の動作のより具体的な一例を説明する。図12および図13は、電子機器10Aの上記動作の具体的な一例を示すフローチャートである。図12は、電子装置5の動作の一例を示し、図13は、クロック装置1の動作の一例を示している。図14は、電子機器10Aのタイミングチャートの一例を示す図である。図14は、電子装置5に不正なクロック信号CL2が入力されている場合のタイミングチャートを示している。
【0115】
まずステップS30にて、電子回路6は設定コマンドをクロック装置1へ出力する。次にステップS31にて、乱数生成部74は乱数値を認証値yとして生成し、この認証値yを認証部8へ出力する。ステップS30,S31の実行順序は逆でもよい。次にステップS32にて、認証部8はカウンタ73のカウント値CT2を初期化する。図11および図14の例では、カウント値CT2は認証値yに初期化され、クロック信号CL3の立ち下りごとにディクリメントされる。
【0116】
次にステップS33にて、認証部8はカウンタ73のカウント量が認証値yと一致するか否かを判断する。具体的には、認証部8はカウンタ73のカウント値CT2が零と一致するか否かを判断する。カウント量が認証値yに一致しないときには、認証部8は再びステップS33を実行する。カウント量が認証値yに一致したときには、ステップS34にて、認証部8は信号線L2を介して通知信号TS2を通知信号生成部34に出力する。図11および図14の例では、カウント値CT2が零となる期間において通知信号TS2がH(ハイ)をとっている。
【0117】
上記動作によって、カウンタ73の初期化時点からクロック信号CL3のyサイクル目の期間において通知信号TS2が出力される。
【0118】
次にクロック装置1の動作の一例について述べる。図13を参照して、ステップS50にて、クロック装置1は、設定コマンドが電子回路6から入力されたか否かを判断する。設定コマンドが入力されていないときには、クロック装置1は再びステップS50を実行する。イレギュラーコマンドが入力されたときには、ステップS51にて、クロック装置1はカウンタ33のカウント値CT1を初期化する。カウンタ33,73は実質的に設定コマンドに応じて初期化されるので、互いに同期して初期化される。図11および図14の例では、カウント値CT1は零に初期化され、クロック信号CL1の立ち下りごとにインクリメントされる。
【0119】
次にステップS52にて、通知信号生成部34は通知信号TS2が信号線L2を介して認証部8から入力されたか否かを判断する。通知信号TS2が未だ入力されていないときには、通知信号生成部34は再びステップS52を実行する。通知信号TS2が入力されたときには、ステップS53にて、通知信号生成部34はカウンタ33のカウント量(ここではカウント値CT1)を認証値yとして認識する。
【0120】
図11に示すように、クロック信号CL3が正規のクロック信号CL1である場合、通知信号TS2が出力されたときのカウント値CT1は認証値yと一致するので、通知信号生成部34は適切に認証値yを認識できる。一方で図14に示すように、クロック信号CL3が不正なクロック信号CL2である場合、通知信号TS2が出力されたときのカウント値CT1は値y’である。よってこの場合、通知信号生成部34は認証値yを値y’と誤認することになる。以下では、通知信号生成部34が認識する認証値yを認証値y1とも呼ぶ。
【0121】
以上の動作により、正規のクロック装置1が電子装置5に正しく接続されている場合には、認証値yを通知信号生成部34へと適切に伝達することができる。なおこの認証値yの伝達はクロック認証の前処理に相当するので、電子回路6はこの認証値yの伝達の後にイレギュラーコマンドを出力し、その後、秘密処理を開始するとよい。これによれば、秘密処理の開始直後から後述のクロック認証(ステップS35〜S42,S54〜S58)を実行することができる。
【0122】
ステップS53の次のステップS54にて、通知信号生成部34はカウンタ33のカウント値CT1を初期化する。図11および図14の例では、カウント値CT1は零に初期化され、クロック信号CL1の立ち下りごとにインクリメントされる。次にステップS55にて、通知信号生成部34はカウンタ33のカウント量(ここではカウント値CT1)が認証値y1と一致したか否かを判断する。
【0123】
カウント量が認証値y1と一致していないときには、ステップS56にて、通知信号生成部34はレギュラーコマンドが電子回路6から入力されたか否かを判断する。レギュラーコマンドが入力されたときには、クロック信号の認証処理を終了し、レギュラーコマンドが入力されていないときには、通知信号生成部34はステップS55を再び実行する。
【0124】
カウント量が認証値y1と一致しているときには、ステップS57にて、通知信号生成部34は信号線L2を介して通知信号TS1を認証部8に出力する。クロック信号CL3が正規のクロック信号CL1であるときには、通知信号TS1はカウント値CT1が認証値yと一致する期間(つまりクロック信号CL1のyサイクル目の期間)において出力されることになる(図11)。一方で、クロック信号CL3が不正なクロック信号CL2であるときには、通知信号TS1はカウント値CT1が値y’と一致する期間(つまりクロック信号CL1のy’サイクル目の期間)において出力されることになる(図14)。
【0125】
再び電子装置5の動作の一例について説明する。図12を参照して、ステップS34の次のステップS35にて、認証部8はカウンタ73のカウント値CT2を初期化する。図11および図14の例では、カウント値CT2は認証値yに初期化され、クロック信号CL3の立ち下りごとにディクリメントされる。カウンタ33,73は実質的に通知信号TS2に応答して初期化されるので、互いに同期して初期化される。
【0126】
次にステップS36にて、認証部8は通知信号TS1が入力されたか否かを判断する。通知信号TS1が入力されたときには、ステップS37にて、認証部8はカウンタ73のカウント量が認証値yと一致するか否かを判断する。具体的には、認証部8はカウント値CT2が零と一致するか否かを判断する。クロック信号CL3が不正なクロック信号CL2である場合、通知信号TS1が入力されたときのカウント量は認証値yと一致しない(図14)。よって、このときステップS40にて、認証部8はクロック信号CL3が不正なクロック信号CL2であると判断して、電子回路6の動作を制限する。例えば認証部8は電子回路6の動作を終了させる。
【0127】
なお図14の例では、通知信号TS1が出力されたときに、カウンタ73のカウント値CT2は零よりも大きい。つまり、カウンタ73のカウント値CT2が零に至る前に通知信号TS1が出力されている。しかしながら、カウント値CT2が零に至った後に通知信号TS1が出力される場合もある。言い換えれば、通知信号TS1が出力されるよりも前にカウンタ73のカウント量が認証値yに至ることがある。例えばクロック信号CL2の周期がクロック信号CL1の周期よりも短い場合などには、通知信号TS1が出力されるよりも前にカウンタ73のカウント量が認証値yに至り得る。
【0128】
そこで、ステップS36において通知信号TS1が入力されていないと判断したときには、ステップS41にて、認証部8はカウンタ73のカウント量が認証値yと一致しているか否かを判断する。つまり、認証部8は通知信号TS1が入力される前にカウンタ73のカウント量が認証値yと一致したか否かを判断する。カウンタ73のカウント量が認証値yと一致しているときには、認証部8はクロック信号CL3が不正なクロック信号CL2であると判断して、ステップS40を実行する。
【0129】
ステップS41にて、カウンタ73のカウント量が認証値yと一致しないときには、ステップS42にて、認証部8はレギュラーコマンドが電子回路6から出力されたか否かを判断する。レギュラーコマンドが出力されたときにはクロック信号の認証処理を終了し、レギュラーコマンドが出力されていないときには、認証部8は再びステップS36を実行する。
【0130】
ステップS37おいて、カウンタ73のカウント量が認証値yと一致すると判断されたときには、認証部8はクロック信号CL3が正規のクロック信号CL1であると判断し、ステップS40を実行せずに、ステップS38を実行する。ステップS38では、認証部8は、レギュラーコマンドが電子回路6から出力されたか否かを判断する。レギュラーコマンドが出力されたときには、クロック信号の認証処理を終了し、レギュラーコマンドが出力されていないときには、ステップS39にて、認証部8は乱数生成部74に認証値yの更新を指示する。乱数生成部74は当該指示に応答して新たな乱数値を認証値yとして生成し、その認証値yを認証部8に出力する。なお、乱数生成部74は更新指示の前に新たな乱数値を生成しておき、更新指示に応答して当該新たな乱数値を認証値yとして認証部8に出力してもよい。
【0131】
次に認証部8は更新後の認証値yを用いて再びステップS32を実行する。つまり、クロック信号CL3が正規のクロック信号CL1であると判断したときには、認証値yを更新して再びクロック信号の認証処理を実行する。これによれば、乱数生成部74はクロックの認証ごとに認証値yを更新しているので、認証値yの秘匿性を向上できる。
【0132】
以上のように、認証部8は通知信号生成部34からの通知信号TS1の入力タイミングに基づいてクロック信号CL3を認証することができる。この通知信号TS1の情報量はカウント値CT1(あるいは認証信号T1)のような多値を表現する信号に比して少なく設定できる。つまり、クロック装置1から電子装置5へと伝達される信号の情報量を低減することができる。ひいては、信号線L2の簡素化(例えば本数の低減)に寄与する。
【0133】
また電子機器10Aによれば、クロック信号CL1,CL3に同期した信号(カウント値CT1,CT2)をカウンタ33,73によって生成している。このカウンタ33,73は例えば乱数生成回路よりも簡単な回路で構成できる。つまり、電子機器10の回路規模を低減できる。
【0134】
また上述の例では、乱数生成部74が認証値yとして乱数値を生成するので、認証値yはランダムに生成される。よって認証値yの秘匿性が高い。また上述の例では、クロックの認証ごとに認証値yが更新される。よって認証値yの秘匿性を更に向上できる。
【0135】
また上述の例では、認証部8は認証値yをそのまま出力するのではなく、クロック信号CL1,CL3の周期を利用して通知信号生成部34に認証値yを伝達している。よって高い秘匿性で認証値yを伝達できる。また通知信号TS2の情報量は認証値y(例えば乱数値)のような多値を表現する信号に比して少なく設定できる。よって、少ない本数の信号線L2でも認証値yを容易に伝達できる。言い換えれば、信号線L2の簡素化(例えば本数の低減)に寄与する。
【0136】
<認証値の生成>
上述の例では、電子装置5が認証値yをクロック装置1に伝達した。しかしながら、必ずしも認証値y自体を伝達する必要は無い。例えば電子装置5が認証値yを生成する元となるパラメータxを生成し、このパラメータxをクロック装置1に伝達してもよい。
【0137】
図15は、電子機器10Bの構成の一例を概略的に示す図である。電子機器10Bは同期信号生成部3,7の内部構成という点で電子機器10Aと相違する。同期信号生成部3は演算部35を更に有しており、同期信号生成部7は演算部75を更に有している。
【0138】
乱数生成部74は乱数値をパラメータxとして生成し、そのパラメータxを演算部75および認証部8に出力する。演算部75は演算回路であって、パラメータxを変数とした所定の関数を演算して認証値yを算出し、認証値yを認証部8に出力する。当該関数は任意に設定すればよいものの、例えば以下の式で表すことができる。
【0139】
y^2=x^3+x+1(mod P) ・・・(1)
ここで、Pは例えば予め定められた値(例えば素数)である。
【0140】
認証部8はパラメータxを通知信号生成部34に伝達する。ただしここでは、認証部8はパラメータxをそのまま通知信号生成部34に出力するのではなく、クロック信号CL1,CL3の周期を利用してパラメータxを伝達する。
【0141】
図16および図17は、電子機器10Bのタイミングチャートの一例を示す図である。図16は、電子装置5に正規のクロック信号CL1が入力されている場合のタイミングチャートを示し、図17は、電子装置5に不正なクロック信号CL2が入力されている場合のタイミングチャートを示している。
【0142】
図16および図17に例示するように、カウンタ33,73のカウント値CT1,CT2は同期して初期化される。図16および図17では、カウント値CT2はパラメータxに初期化され、クロック信号CL3の立ち下りごとにディクリメントされる。カウント値CT1は零に初期化され、クロック信号CL1の立ち下りごとにインクリメントされる。
【0143】
認証部8はカウンタ73のカウント量がパラメータxと一致するとき、つまりここではカウント値CT2が零となるときに、信号線L2を介して通知信号TS2を通知信号生成部34に出力する。通知信号生成部34は通知信号TS2を受け取ったときのカウンタ33のカウント量(ここではカウント値CT1)をパラメータxとして認識する。
【0144】
よって、クロック信号CL3が正規のクロック信号CL1である場合には、パラメータxが正しく通知信号生成部34に伝達され、通知信号生成部34および認証部8は互いに同じパラメータxを認識できる(図16)。一方、クロック信号CL3が不正なクロック信号CL2である場合には、通知信号生成部34はパラメータxを値x’に誤認する(図17)。
【0145】
通知信号生成部34はパラメータxを演算部35に出力する。演算部35は演算部75と同じ演算回路である。演算部35は、パラメータxを変数とした演算部75と同じ関数を演算して認証値yを算出し、その認証値yを通知信号生成部34に出力する。クロック信号CL3が正規のクロック信号CL1である場合には、演算部35,75に入力されるパラメータxが互いに等しいので、演算部35,75から出力される認証値yも互いに等しい。一方で、クロック信号CL3が不正なクロック信号CL2である場合には、演算部35にはパラメータxとして値x’が入力され、演算部75にはパラメータxが入力される。よって、例え演算部35,75が同じアルゴリズムを行ったとしても、その出力たる認証値yは互いに異なる。以下では、通知信号生成部34が認識する認証値yを認証値y1とも呼ぶ。
【0146】
認証値yが通知信号生成部34および認証部8の両方で認識されると、再びカウンタ33,73のカウント値CT1,CT2が同期して初期化される。図16および図17の例では、通知信号TS2がHとなる期間の直後に、カウント値CT1,CT2はそれぞれ零および認証値yに初期化される。
【0147】
通知信号生成部34はカウンタ33のカウント量が認証値y1と一致するときに、信号線L2を介して通知信号TS1を認証部8に出力する。認証部8はカウンタ73のカウント量が認証値yと一致するときに通知信号TS1が入力されたか否かを判断する。カウンタ73のカウント量が認証値yと一致するときに通知信号TS1が入力されたときには、認証部8はクロック信号CL3が正規のクロック信号CL1であると判断する。図16の例では、カウント値CT2が零になるとき、つまりカウンタ73のカウント量が認証値yと一致するときに、通知信号TS1が認証部8に入力される。よってこのとき、認証部8はクロック信号CL3を正規のクロック信号CL1と判断する。
【0148】
一方で、カウンタ73のカウント量が認証値yと一致するときに通知信号TS1が入力されないときには、認証部8はクロック信号CL3が不当なクロック信号CL2であると判断する。図17の例では、通知信号生成部34は認証値yを値y’と誤認するので、カウンタ33のカウント量が値y’と一致するときに通知信号TS1を出力する。このとき通常は、カウント値CT2は零ではない(つまりカウンタ73のカウント量は認証値yと一致しない)。よって、認証部8はクロック信号CL3を不当なクロック信号CL3と判断し、電子回路6の動作を制限する。
【0149】
以上のように、電子機器10Bもクロック信号CL3を認証できる。しかも、認証値yはクロック装置1の内部の演算部35および電子装置5の内部の演算部75によって生成される。よって、たとえ不正な第三者がクロック装置1と電子装置5との間の信号線L2をモニタしてパラメータxを不正に取得できたとしても、当該第三者が演算部35,75のアルゴリズムを知らない以上、認証値yを取得することができない。したがって、認証値yの秘匿性を更に向上することができる。
【0150】
以上のように、電子機器10は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種実施の形態は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この電子機器10の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【0151】
1 クロック装置
2 クロック生成部
3 第1信号生成部(同期信号生成部)
5 電子装置
6 電子回路
7 第2信号生成部(同期信号生成部)
8 認証部
10,10A,10B 電子機器
31 第1擬似乱数生成部(認証信号生成部)
32 第1設定値生成部(初期設定値生成部)
33,73 カウンタ
34 通知信号生成部
35 第1演算部(演算部)
71 第2擬似乱数生成部(認証信号生成部)
72 第2設定値生成部(初期設定値生成部)
74 乱数生成部
75 第2演算部(演算部)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17