IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 新唐科技股▲ふん▼有限公司の特許一覧

特許7005576小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス
<>
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図1
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図2
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図3
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図4
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図5A
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図5B
  • 特許-小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-07
(45)【発行日】2022-01-21
(54)【発明の名称】小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス
(51)【国際特許分類】
   G06F 21/55 20130101AFI20220114BHJP
【FI】
G06F21/55 380
【請求項の数】 20
(21)【出願番号】P 2019203511
(22)【出願日】2019-11-08
(65)【公開番号】P2020087453
(43)【公開日】2020-06-04
【審査請求日】2019-11-08
(31)【優先権主張番号】16/194,342
(32)【優先日】2018-11-18
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100102923
【弁理士】
【氏名又は名称】加藤 雄二
(72)【発明者】
【氏名】ジブ ヘルシュマン
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2017/0061121(US,A1)
【文献】特開2014-049891(JP,A)
【文献】特開2010-219666(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
少なくとも一つの入力及び少なくとも一つの出力を有する組み合わせ論理回路と、
複数の連続する周波数期間で前記組み合わせ論理回路の前記少なくとも一つの出力信号をサンプリングする少なくとも一つのステートサンプリングコンポーネントと、
保護回路と、を備え、
前記保護回路は、前記複数の周波数期間ごとに、
前記周波数期間における前記ステートサンプリングコンポーネントのサンプリング時間前に、所定の持続時間で前記組み合わせ論理回路の前記少なくとも一つの入力にランダムデータを提供し始める動作と、
前記ランダムデータを提供した後に、前記組み合わせ論理回路の前記少なくとも一つの入力に関数型データを提供するように変更して、前記ステートサンプリングコンポーネントにサンプリングをさせる動作とを実行することにより、前記組み合わせ論理回路を保護する、
前記組み合わせ論理回路における前記少なくとも一つの入力と前記少なくとも一つの出力との何れかの信号経路における転送遅延は、前記所定の持続時間以上であり、前記ステートサンプリングコンポーネントの前記サンプリング時間前に、前記所定の持続時間で前記ランダムデータが提供し始められることを特徴とする電子デバイス。
【請求項2】
前記ランダムデータ及び前記関数型データは、前記ステートサンプリングコンポーネントに入力され、前記転送遅延は前記所定の持続時間以上であるので、前記ステートサンプリングコンポーネントは、前記ランダムデータをサンプリングしないで、前記関数型データのみをサンプリングすることを特徴とする請求項1に記載の電子デバイス。
【請求項3】
前記組み合わせ論理回路は、少なくとも前記所定の持続時間に設定されるホールドタイム余裕度を有することを特徴とする請求項1に記載の電子デバイス。
【請求項4】
前記組み合わせ論理回路は、前記ホールドタイム余裕度を少なくとも前記所定の持続時間に設定するための少なくとも一つの信号経路に挿入される遅延ユニットを少なくとも一つ含むことを特徴とする請求項3に記載の電子デバイス。
【請求項5】
暗号化動作を実行するための第1の暗号化エンジン及び第2の暗号化エンジンを更に含み、前記保護回路は、前記第1の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第2の暗号化エンジンを使用せず、かつ前記第2の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第1の暗号化エンジンを使用せずに前記暗号化動作を実行することを特徴とする請求項1に記載の電子デバイス。
【請求項6】
前記保護回路は、前記複数の周波数期間ごとに前記ランダムデータを複数回修正するために用いられることを特徴とする請求項1に記載の電子デバイス。
【請求項7】
前記ランダムデータ及び前記関数型データを提供するためのタイミングは、前記電子デバイスにより事前に設定され、前記電子デバイスは、前記組み合わせ論理回路の独立性能に基づいて前記タイミングを事前に設定することを特徴とする請求項1に記載の電子デバイス。
【請求項8】
前記保護回路は、前記組み合わせ論理回路の実際的な性能に基づいて、前記ランダムデータ及び前記関数型データを提供するためのタイミングを適応的に修正することを特徴とする請求項1に記載の電子デバイス。
【請求項9】
前記保護回路は、前記タイミングを適応的に修正するので、前記ランダムデータを提供する動作期間を改善することを特徴とする請求項8に記載の電子デバイス。
【請求項10】
前記関数型データを前記組み合わせ論理回路における前記少なくとも一つの入力に提供する前に、前記組み合わせ論理回路は、全ての前記信号経路における前記ランダムデータの転送を先に完了することを特徴とする請求項1に記載の電子デバイス。
【請求項11】
電子デバイスにおける少なくとも一つの入力及び少なくとも一つの出力を有する組み合わせ論理回路を保護する方法であって、
複数の連続する周波数期間において、少なくとも一つのステートサンプリングコンポーネントを使用して前記組み合わせ論理回路における前記少なくとも一つの出力信号をサンプリングすることと、
前記複数の周波数期間ごとに、以下のようなステップを行って前記組み合わせ論理回路を保護すること、とを含み、
行うステップは、
前記周波数期間における前記ステートサンプリングコンポーネントのサンプリング時間前に、所定の持続時間で前記組み合わせ論理回路の前記入力にランダムデータを提供し始めるステップと、
前記ランダムデータを提供した後に、前記組み合わせ論理回路の入力に関数型データを提供するように変更して、前記ステートサンプリングコンポーネントにサンプリングをさせるステップと、を含み、
前記組み合わせ論理回路における前記少なくとも一つの入力と前記少なくとも一つの出力との何れかの信号経路における転送遅延は、前記所定の持続時間以上であり、前記ステートサンプリングコンポーネントの前記サンプリング時間前に、前記所定の持続時間で前記ランダムデータが提供し始められることを特徴とする電子デバイスにおける少なくとも一つの入力及び少なくとも一つの出力を有する組み合わせ論理回路を保護する方法。
【請求項12】
前記ランダムデータ及び前記関数型データは、前記ステートサンプリングコンポーネントに入力され、前記転送遅延は前記所定の持続時間以上であるので、前記ステートサンプリングコンポーネントは、前記ランダムデータをサンプリングしないで、前記関数型データのみをサンプリングすることを特徴とする請求項11に記載の方法。
【請求項13】
前記組み合わせ論理回路は、少なくとも前記所定の持続時間に設定されるホールドタイム余裕度を有することを特徴とする請求項11に記載の方法。
【請求項14】
前記組み合わせ論理回路は、前記ホールドタイム余裕度を少なくとも前記所定の持続時間に設定するための少なくとも一つの信号経路に挿入される遅延ユニットを少なくとも一つ含むことを特徴とする請求項13に記載の方法。
【請求項15】
前記電子デバイスは、暗号化動作を実行するための第1の暗号化エンジン及び第2の暗号化エンジンを含み、
前記ランダムデータを生成するステップは、
前記保護回路は、前記第1の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第2の暗号化エンジンを使用せず、かつ前記第2の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第1の暗号化エンジンを使用せずに前記暗号化動作を実行することを含むこと、
を特徴とする請求項11に記載の方法。
【請求項16】
前記複数の周波数期間ごとに前記ランダムデータを複数回修正することを更に含むことを特徴とする請求項11に記載の方法。
【請求項17】
前記電子デバイスの前記組み合わせ論理回路の独立性能に基づいて、前記ランダムデータ及び前記関数型データを提供するためのタイミングを事前に設定することを更に含むことを特徴とする請求項11に記載の方法。
【請求項18】
前記組み合わせ論理回路の実際的な性能に基づいて、前記ランダムデータ及び前記関数型データを提供するためのタイミングを適応的に修正することを更に含むことを特徴とする請求項11に記載の方法。
【請求項19】
前記タイミングを適応的に修正するステップは、
前記ランダムデータを提供する動作期間を改善することを含む
ことを特徴とする請求項18に記載の方法。
【請求項20】
続き関数型データが前記組み合わせ論理回路の前記少なくとも一つの入力に提供される前に、前記組み合わせ論理回路の全ての前記信号経路における前記ランダムデータの転送を完了することを特徴とする請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子回路のデータセーフティの技術分野に関し、特にサイドチャネル攻撃(side-channel attacks) を防犯する方法及びシステムに関する。
【背景技術】
【0002】
近年、例えばサイドチャネル攻撃など、電子デバイスから情報を取得するための様々な技術が発展されている。このような攻撃は通常、許可されていない者により実行され、電子デバイスに保存された機密情報をアクセスされる。サイドチャネル攻撃の原理は、主に論理デバイスの状態遷移時に多くのエネルギーを消耗することに基づく。サイドチャネル攻撃は、情報が保存された電子デバイスに電気的に接触する必要がなく、非侵襲的測定電子デバイスからの電子信号及び/又は放射線を介して、情報を取得する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
現在、電子デバイスをサイドチャネル攻撃から防犯する様々な対策が講じられている。例えば、2012年2月にSouthampton大学の電気資金学院の物理応用科学系のBaddam氏が発表された「Hardware Level countermeasure Against Differential Power Analysis」という名の博士論文に記載された幾つかの対策の中で、特にデュアルレールプリチャージ(Dual Rail Precharge,DRP)回路という方法が注目されている。
【課題を解決するための手段】
【0004】
本発明の一つの実施例により、本発明の電子デバイスは、組み合わせ論理回路と、少なくとも一つのステートサンプリングコンポーネントと、保護回路と、を備え、組み合わせ論理回路は、少なくとも一つの入力及び少なくとも一つの出力を有し、少なくとも一つのステートサンプリングコンポーネントは、複数の連続する周波数期間で組み合わせ論理回路の少なくとも一つの出力信号をサンプリングするように構成され、保護回路は、ステートサンプリングコンポーネントが周波数期間のサンプリング時間前に、所定の持続時間で前記組み合わせ論理回路の少なくとも一つの入力にランダムデータを提供し始め、及び前記ランダムデータを提供した後で、前記組み合わせ論理回路の少なくとも一つの入力に関数型データを提供しように変更し、前記ステートサンプリングコンポーネントにより少なくとも一つの入力信号をサンプリングする作動を行って組み合わせ論理回路を保護し、前記組み合わせ論理回路の前記入力と前記出力とのいずれかの信号経路における転送遅延は前記所定の持続時間以上であり、前記ステートサンプリングコンポーネントの前記サンプリング時間前に、前記ランダムデータが前記所定の持続時間で提供し始められることを特徴とする。
【0005】
一つの実施例により、ランダムデータ及び前記関数型データは、入力として前記ステートサンプリングコンポーネントに提供されており、前記転送遅延が前記所定の持続時間以上であるので、前記ステートサンプリングコンポーネントは、前記ランダムデータをサンプリングすることなく、前記関数型データだけをサンプリングする、いくつかの実施例では、組み合わせ論理回路は、少なくとも前記所定の持続時間に設定されるホールドタイム余裕度(hold-time margin)を有し、別の実施例では、組み合わせ論理回路は、少なくとも一つの信号経路に挿入されて、前記ホールドタイム余裕度を少なくとも前記所定の持続時間に設定する少なくとも一つの遅延ユニットを有し。
【0006】
一つの実施例では、電子デバイスは暗号化動作を実行するために、少なくとも第1の暗号化エンジン及び第2の暗号化エンジンを含んでも良い。前記保護回路は、前記第1の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第2の暗号化エンジンを使用せず、かつ前記第2の暗号化エンジンを使用して前記ランダムデータを生成するときは前記第1の暗号化エンジンを使用せずに前記暗号化動作を実行する。
【0007】
一つの実施例では、保護回路は、前記複数の周波数期間ごとに前記ランダムデータを複数回修正する。別の実施例において、前記ランダムデータ及び前記関数型データを提供するためのタイミングは、前記電子デバイスにより事前に設定され、前記電子デバイスは、前記組み合わせ論理回路の独立性能に基づいて前記タイミングを事前に設定する。更に別の実施例において、保護回路は、前記組み合わせ論理回路の実際的な性能に基づいて、適応的に前記ランダムデータ及び前記関数型データを提供するためのタイミングを修正する。更に別の実施例において、保護回路は、適応的に前記タイミングを修正して、前記ランダムデータを提供する動作期間を改善する。更に別の実施例において、続き関数型データが前記組み合わせ論理回路の少なくとも一つの入力に提供される前に、前記組み合わせ論理回路は、全ての信号経路における前記ランダムデータの転送を完了する。
【0008】
本発明の一つの実施例により、本発明の少なくとも一つの入力及び少なくとも一つの出力を有する組み合わせ論理回路を保護する方法であって、複数の連続する周波数期間で、少なくとも一つのステートサンプリングコンポーネントを使って前記組み合わせ論理回路の前記出力信号をサンプリングすることと、周波数期間ごとに、以下のようなステップを行って前記組み合わせ論理回路を保護すること、とを含み、前記組み合わせ論理回路を保護することは、前記周波数期間の前記ステートサンプリングコンポーネントのサンプリング時間前に、所定の持続時間でランダムデータを前記組み合わせ論理回路の前記入力に提供し始めるステップと、前記ランダムデータを提供した後で、前記組み合わせ論理回路の入力に関数型データを提供しように変更して、前記ステートサンプリングコンポーネントをサンプリングさせるステップと、を有し、前記組み合わせ論理回路における入力と出力とのいずれかの信号経路における転送遅延が前記所定の持続時間以上であり、前記ステートサンプリングコンポーネントの前記サンプリング時間前に、前記ランダムデータが前記所定の持続時間で提供し始められることを特徴とする。
【図面の簡単な説明】
【0009】
図1】本発明の一つの実施例におけるサイドチャネル攻撃を防犯する可能なセーフティ電子デバイスを示すブロック図である。
図2図1における電子デバイスの信号タイミング図である。
図3図1における電子デバイスの信号タイミング図である。
図4】本発明の一つの実施例における均一化の遅延を有する組み合わせ論理回路を示すブロック図である。
図5A】本発明の一つの実施例における互いに接続された二つの暗号化エンジンを含む乱数生成器を示すブロック図である。
図5B図5Aの乱数生成器に用いられる別のマルチプレクサを示すブロック図である。
図6】本発明の更に別の実施例におけるサイドチャネル攻撃を防犯するセーフティ電子デバイスを示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面及び実施例に基づいて本発明の実施形態を説明する。
【実施例1】
【0011】
本発明の実施例は、電子デバイスをサイドチャネル攻撃から防犯する改善方法及び回路に関わる。本明細書に記載された技術は、例えばセキュアメモリコンポーネントや内蔵コントローラのような多種類のセーフティデバイスに応用できる。
【0012】
実施例において、セーフティ電子デバイスは組み合わせ論理回路を含む。組み合わせ論理回路は、通常、関数型データに所定のセーフティ動作を行う複数の互いに接続された論理レベルを含む。組み合わせ論理回路は、関数型データを受信して少なくとも一つの入力を処理し、かつ少なくとも一つの出力で処理の結果を提供する。少なくとも一つのフリップフロップ(FF)又は他のステートサンプリングコンポーネントは、複数の連続する周波数期間で組み合わせ論理回路の出力信号をサンプリングする。サンプリングされた信号は、次の周波数期間で入力になる。
【0013】
セーフティデバイスは更に組み合わせ論理回路をサイドチャネル攻撃から保護する保護回路を含む。いくつかの実施例では、保護回路は、周波数期間ごとにランダムデータと関数型データとを組み合わせ論理回路の入力に交互に提供する。本発明において、ランダムデータの種類は擬似ランダムデータも含む。よって、組み合わせ論理回路は、一部の周波数期間でランダムデータを処理し、他の周波数期間で関数型データを処理する。ランダムデータの処理は、組み合わせ論理回路の瞬時消費電力を有効にランダム化できるため、攻撃者は、組み合わせ論理回路の消費電力又は放射電力を検出することにより機密情報を再構築することが困難である。
【0014】
本発明の技術提案において、関数型データ及びランダムデータは、同じ信号経路で転送され、同じフリップフロップを通過する。所定の周波数期間において、保護回路は、通常、フリップフロップのサンプリング時間前に、上記周波数期間において組み合わせ論理回路の入力にランダムデータを特定の持続時間で提供し始める。この後で、保護回路は、組み合わせ論理回路の入力に関数型データを提供しように変更して、フリップフロップをサンプリングさせる。
【0015】
ランダムデータを先に提供する利点は、組み合わせ論理回路がランダムデータを処理する時間の割合を増やして、消費電力をより適切にランダム化できることである。一方、ランダムデータを先に提供するリスクは、フリップフロップがタイミングの変異により関数型データをサンプリングしない可能性があるが、ランダムデータをサンプリングすることである。具体的には、組み合わせ論理回路における少なくとも一つの信号経路の転送遅延は、フリップフロップのサンプリング時間前のランダムデータが始まる持続時間より少ない場合、フリップフロップはランダムデータをサンプリングする。
【0016】
いくつかの実施例では、保護回路及び/又は組み合わせ論理回路の設計は、以上のような状況を避けることができる。つまり、本発明の設計は、組み合わせ論理回路におけるいずれかの経路の転送遅延が、FF(フリップフロップ)のサンプリング時間前のランダムデータが始まる持続時間以上であることを保証できる。この制限で、ランダムデータがFFのサンプリング時間で組み合わせ論理回路の入力に提供されても、フリップフロップもランダムデータをサンプリングしなく、関数型データだけをサンプリングする。
【0017】
いくつかの実施例では、組み合わせ論理回路のホールドタイム余裕度に適切な下限値を設定すると、上記限定を満たすことができる。下限値を設定することは、組み合わせ論理回路における信号経路の転送遅延を均一化することに相当する。一つの実施例において、少なくとも一つの信号経路(通常は、最も小さい転送遅延を有する経路)に遅延ユニットを挿入することにより、転送遅延の均一化を実現する。
【0018】
本発明に記載される技術は、サイドチャネル攻撃に対する防犯を提供する。いくつかの実施例では、セーフティデバイスが有する暗号化エンジンでランダムデータを生成する。また、ホールドタイム及び/又はタイム余裕度の設置する期間でランダムデータを提供するので、本発明の技術提案は周波数の速度に影響がない、或いは影響が小さい。最も実用的な状況で、ランダムデータ及び関数型データの入力時間は重複しても良いが、組み合わせ論理回路での転送経路は異なる。この時間重複の方法は、消費電力のランダム化を向上できるので、安全性が向上される。また、本発明の技術は、関数型データが組み合わせ論理回路に提供される周波数期間の割合を低減できるので、セーフティデバイスの静電気漏れも低減される。
【0019】
以下、本発明における実施例及び関連する性能折衷案をそれぞれに説明する。
【0020】
システムの説明
図1は本発明の一つの実施例におけるサイドチャネル攻撃を防犯する可能なセーフティ電子デバイス20を示すブロック図である。一つの実施例において、セーフティ電子デバイス20は、例えば暗号化回路を整合するメモリコンポーネント、又は暗号化や検証回路を含む内蔵コントローラ(EC)或いは基板管理コントローラ(BMC)、又は他の任意の適切なセーフティ電子デバイスなどの集積回路(IC)を含んでも良い。
【0021】
この例では、セーフティ電子デバイス20は組み合わせ論理回路24を含む。組み合わせ論理回路24は、少なくとも一つの入力M1及び少なくとも一つの出力D1を有し、かつ入力M1を介して入力データが保存されたデジタル入力信号を受け取り、出力D1を介して出力データが保存されたデジタル出力信号を出力する。組み合わせ論理回路24は、例えば論理ゲートなどの複数の互いに接続された論理レベルLを含む。論理レベルLは、組み合わせ論理回路24の指定関数を実行し、又は入力M1を出力D1に変換する。純粋に論理的な組み合わせとして、組み合わせ論理回路24は、記憶機能を有しない、例えば出力D1の処理は入力M1の現在の数値のみ依存する。
【0022】
セーフティ電子デバイス20は、複数の連続する周波数期間で組み合わせ論理回路24の出力D1をサンプリングするための少なくとも一つのフリップフロップ(FF)28を更に含む。ここでのフリップフロップ28とは、組み合わせ論理回路24の現在の状態をサンプリングするための「ステートサンプリングコンポーネント」である。別の実施例において、ステートサンプリングコンポーネントは、複数のラッチと、スタティックランダムアクセスメモリ(SRAM)ユニットと、又は他の任意の適切なメモリユニットとを含んでも良い。サンプリングされた各出力は、ロジックhigh(logic high)又はロジックlow(logic low)であっても良い。
【0023】
フリップフロップ28は、クロックツリーからの周波数信号C1(サンプリング周波数とも呼ばれる)により制御される。この例では、フリップフロップ28は、出力D1の周波数信号C1の期間ごとの上がりエッジでサンプリングするが、これは単なる例であり、本発明はこれに限定されない。サンプリングされた出力(内部の組み合わせ論理回路を通過することなく、セーフティ電子デバイス20のみとしての出力は含まれない)は、Q1で示す。サンプリングされた出力Q1は、組み合わせ論理回路24の次の周波数期間での入力信号として、マルチプレクサ32を介して組み合わせ論理回路24の入力M1に提供される。
【0024】
いくつかの実施例では、組み合わせ論理回路24は、特定のセーフティ動作を実行する、又は機能を確立するために用いられる。組み合わせ論理回路24は、例えば乗算段、暗号化、復号化、マーキング又は検証処理の反復、或いは他の任意の適切なセーフティ動作に関連する回路などを含んでも良い。
【0025】
十分な保護がない限り、攻撃者は、組み合わせ論理回路24の瞬時消費電力を検出して機密情報を不正に取得することができる。攻撃者は、例えばセーフティ電子デバイス20の電源供給装置から消費した瞬時消費電力、又はセーフティ電子デバイス20からの電磁の瞬時電力を検出する可能性がある。
【0026】
いくつかの実施例では、セーフティ電子デバイス20は、セーフティ電子デバイス20をサイドチャネル攻撃から保護する保護回路を更に含む。
【0027】
この例では、保護回路は、ランダムデータR1(ランダムデータもランダムプリチャージデータ(random pre-charging data, RPD)で示す)又は擬似ランダムデータのワードストリーム(word stream)を生成する乱数生成器(RNG)36と、ランダムデータR1(RPD)及びサンプリングされた関数型データQ1を交互に入力M1を駆動するマルチプレクサ(MUX)32と(なお、組み合わせ論理回路24が出力する関数型データ(ALD)は演算データとも呼ばれる)、クロックツリーCRに位置する遅延ユニットDLY1、DLY2及びDLY3と、SRのフリップフロップSRFFと、を備える。
【0028】
以上の保護回路が備えるデバイスは、周波数信号C1(フリップフロップ28に用いられる)とMUX制御信号S1(マルチプレクサ32に用いられる)との相対的なタイミングを制御する。通常、クロックツリーCRはDLY1を含み、以下、DLY2及びDLY3の設計選択について説明する。この例では、DLY2は、DLY1とDLY3との差だ。
【0029】
組み合わせ論理回路24における遅延ユニットは、図4に示す態様であってもよい。
ランダムプリチャージの技術を使用してサイドチャネル攻撃を防犯する。
【0030】
以上のように、保護回路は、組み合わせ論理回路24の入力を関数型データ(ALD)及びランダムデータ(RPD)で交互に駆動する。前記交互の行為は、周波数期間ごとに実行する。つまり、周波数期間ごとには、RPDが組み合わせ論理回路24に入力された期間と、ALDが組み合わせ論理回路24に入力された期間とを含む。これらの入力に応答して、各論理レベルLは、周波数期間の一部の期間でランダムデータを処理し、他の期間で関数型データを処理する。よって、組み合わせ論理回路24の瞬時消費電力をランダム化できるため、攻撃者は、消費電力又は放射電力を検出することにより関数型データ(ALD)を再構築することが困難である。
【0031】
いくつかの実施例では、条件を満たすタイミングに応じて、保護回路は、正確なタイミングを選択してランダムデータ(RPD)を組み合わせ論理回路24に入力し、かつ関数型データ(ALD)を組み合わせ論理回路24に入力する。
【0032】
周波数期間ごとには、関数型データが安定してサンプリング可能になる前に(例えば、フリップフロップのこの周波数期間のサンプリング時間前に)、ランダムデータは、組み合わせ論理回路24の入力に提供される。つまり、MUX制御信号S1は、マルチプレクサ32を制御して周波数信号C1の上がりエッジの前で、乱数生成器36の出力を入力M1に転送する。
【0033】
しかしながら、フリップフロップ28は、ランダムデータ(RPD)をサンプリングすることなく、関数型データ(ALD)だけをサンプリングする。
【0034】
この二つの条件を満たすためには、組み合わせ論理回路24におけるいずれかの経路の信号転送時間(転送遅延ともいう)を十分に長くする必要がある。組み合わせ論理回路24における少なくとも一つの経路の転送路遅延が少なすぎると、ランダムデータは、フリップフロップ28のサンプリング時間前に、出力D1に転送され、サンプリングされる。
【0035】
具体的には、図2に示すように、入力M1のランダムデータからフリップフロップ28のサンプリングする(周波数信号C1の上がりエッジ)までの持続時間は、DLY3に等しい。フリップフロップ28がランダムデータをサンプリングされないことを保証するために、組み合わせ論理回路24における入力M1から出力D1までのいずれかの経路の最小転送時間は、DLY3以上である必要がある。
【0036】
図2は、図1におけるセーフティ電子デバイス20の信号タイミング図であり、上から下に向かって時間軸に以下の信号を表示している、
周波数信号C1は、フリップフロップ28に提供される。この例では、フリップフロップは、周波数信号C1の上がりエッジで組み合わせ論理回路24の出力D1をサンプリングする。フリップフロップ28のサンプリング時点は、40で示す。
【0037】
MUX制御信号S1は、マルチプレクサ32を制御する。この例では、MUX制御信号S1はロジックhighである場合に、マルチプレクサ32は、乱数生成器36が生成したランダムデータR1を出力することを選択する。MUX制御信号S1はロジックlowである場合に、マルチプレクサ32は、フリップフロップの出力端Qが出力したサンプリングされた関数型データQ1を出力することを選択する。マルチプレクサ32は、時点44でランダムデータを提供し始める(MUX制御信号S1は、ロジックlowからロジックhighに切り替える)。
【0038】
関数型データQ1は、サンプリング時点40でのフリップフロップ28が関数型データ(ALD)をサンプリングした結果である。複数の連続する周波数期間における関数型データは、ALD1、ALD2、ALD3で示し、これで類推する。
【0039】
入力M1は、マルチプレクサ32から組み合わせ論理回路24に転送される。前述のように、入力M1の信号はMUX制御信号S1によりランダムデータ(RPD)及び関数型データ(ALD)の間で交互にされる。連続する周波数期間において、ランダムデータはRPD1、RPD2、RPD3…で示し、これで類推する。
【0040】
出力D1は、組み合わせ論理回路24の出力である。この例では、組み合わせ論理回路24における異なる経路は異なる遅延を有する。よって、いくつかの時点では、図にXXXXXで示し、出力D1の信号には、瞬時データ、ランダムデータ及び関数型データの混合が乗せられる。他の時点では、出力D1の全ての信号には、安定非瞬時的なランダムデータ(RPD)又は安定非瞬時的な関数型データ(ALD)だけが乗せられる。
【0041】
図に示すように、組み合わせ論理回路24は、周波数期間ごとにおける一つの明らかな時点でランダムデータを処理し、周波数期間における他の時点で関数型データを処理する。よって、組み合わせ論理回路24の瞬時消費電力及び放射電力をランダム化できるため、電子デバイスをサイドチャネル攻撃から防犯する。
【0042】
組み合わせ論理回路24は、周波数期間におけるかなり長い時点でランダムデータを処理するが、フリップフロップ28は、ランダムデータをサンプリングすることなく、関数型データだけをサンプリングする。この結果は、関数型データQ1(時点40で出力D1をサンプリングしたサンプリングのバージョンである)を観察することにより得られる。
【0043】
図3は、図1におけるセーフティ電子デバイス20の信号タイミング図である。図2の例に対して、図3の例は、より積極的な設計方法を示し、これはサイドチャネル攻撃に対するより高い防犯を提供するために、組み合わせ論理回路24における遅延の均一化に対してより高い要求を持っている。
【0044】
図3において、ランダムデータは、組み合わせ論理回路24の最大転送時間においてT_RPD_maxで示す。ランダムデータは、組み合わせ論理回路24の最小転送時間においてT_RPD_minで示す。関数型データは、組み合わせ論理回路24の最大転送時間においてT_ALD_maxで示す。関数型データは、組み合わせ論理回路24の最小転送時間においてT_ALD_minで示す。図において、設置タイム余裕度及びホールドタイム余裕度が示されている。
【0045】
入力M1におけるランダムデータは、RPD0、RPD1…で示し、出力D1におけるランダムデータは、RPDD0、RPDD1…で示す。組み合わせ論理回路24は、RPD及びRPDD0を変更する可能性があるので、RPDの数値は、対応するRPDD0の数値と異なる可能性がある。
【0046】
図1及び図3に示す実施例により、RPDDは周波数信号C1の立ち下がりエッジの付近で安定していることが分かった。よって、別の実施例において、次の期間における擬似ランダムデータとして、RPDDは立ち下がりエッジのフリップフロップでサンプリングすることができる。更に別の実施例において、R1のランダム化を強化するために、RPDDは乱数生成器36の出力と「排他的又は(XOR)」の処理を行ってもよい。組み合わせ論理回路24は、回路クリティカルセットパス遅延を低減することなく、単一の周波数期間において二つのデータ(具体的には、一つの時点でALDを処理し、別の時点でRPDを処理する)を処理できる。
【0047】
図2図3は、周波数信号C1(或いはサンプリング周波数とも呼ばれる)に対して、MUX制御信号S1のタイミング及びパルス幅(例えば、ランダムデータと関数型データとの交互出力)をどのように設定するかの二つの例を示す。他のタイミング及びパルス幅の設定も使用できる。以下、MUX制御信号S1を定義するための制限及び設計上の考慮事項を説明する。
【0048】
説明しやすいために、図においては、マルチプレクサ32及びフリップフロップ28の転送遅延を無視すると仮定する。周波数信号C2及びC3から導出されるMUX制御信号S1のSRFFでは、入力端(R)をリセットする優先度は入力端(S)を設定する優先度より高いと仮定する。説明しやすいために、この例でのMUX制御信号S1の立ち下がりエッジとC1の上がりエッジとは重複している。しかしながら、本発明はこの関係に限定されない、他の関係を有しても良い。例えば、MUX制御信号S1の立ち下がりエッジはC1の上がりエッジより遅くても良いが、ALDの最大転送時間はMUX制御信号S1の立ち下がりエッジからのみ始まり、C1の上がりエッジで終わるので、この時のクリティカルセットタイミングが影響を受ける可能性がある。また、MUX制御信号S1の立ち下がり時間を遅延すると、ランダムデータの持続時間を高めることができる、例えば、保護の程度を高めることができる代償として、組み合わせ論理回路24に対してより厳しい設定時間が必要だ。
【0049】
いくつかの実施例では、図1の配置は、セーフティ電子デバイス20において複数に作成でき、かつそれぞれに組み合わせ論理回路24の異なる部分に応用される。つまり、組み合わせ論理回路24は複数の部分に分けられてもよく、例えば、タイミング及び/又は物理的に近い部分によって分けられる。保護回路の個別例は、各部分に結合されても良い、かつ個別のマルチプレクサ及び個別のマルチプレクサコントローラを含んでも良い、DLY1、DLY2及び/又はDLY3などの異なる遅延の値を有する可能性もある。
【0050】
いくつかの実施例では、フリップフロップの出力負荷を最低に低減するために、複数のフリップフロップ28とマルチプレクサ32との物理的な距離は、最小値に保たれ、よって、漏電を最低に低減する。また、例えば、図6に示すように、DRPやマスクなどの追加の対策を用いってフリップフロップ28の漏電を回避する。
【0051】
組み合わせ論理回路における遅延を均一化により、ランダムデータ及び関数型データを交互に使用し、関数型データのみサンプリングすることを保証する。
【0052】
以上のように、フリップフロップ28が出力D1でランダムデータをサンプリングしないことを確保するために、組み合わせ論理回路24における最小転送時間は、フリップフロップ28のサンプリング時間前のランダムデータが入力M1で始まる持続時間以上である必要がある。例えば、図2に示す構造では、前記持続時間は、時点44(MUX制御信号S1において)と時点40(信号C1において)との持続時間だ。組み合わせ論理回路24におけるいずれかの経路の転送遅延は、前記持続時間以上である必要がある。
【0053】
いくつかの実施例では、上記のような組み合わせ論理回路24におけるいずれかの経路の転送遅延は、所定の持続時間より多いことを確保するための制限は、組み合わせ論理回路24を実現する集積回路の設計期間に応用できる。例えば、集積回路の設計期間において、組み合わせ論理回路24におけるホールドタイム余裕度の数値は、少なくとも所定の持続時間に設定されても良い。ホールドタイム余裕度は、通常、正確なタイミングを確保する余裕度より大きい。
【0054】
普通に言えば、集積回路の設計におけるいずれかのステージにおいて、例えば、回線合成(synthesis) のステージ、放置&配線(P&R)のステージ、又は他のステージで、転送遅延に下限値を設定しても良い。
【0055】
通常、意図的に組み合わせ論理回路24における少なくとも一つの最速信号経路の転送遅延を高めることにより、転送遅延における下限値の設定を実現する。転送遅延における所定の持続時間より高い他の経路については、変更する必要がない。いくつかの実施例では、セキュリティが必要とされない特定の信号経路、例えば機密情報を転送しない経路も、転送遅延の均一化する考慮範囲から除外される。
【0056】
均一化の動作は、異なる経路間の転送遅延の差を低減できる。よって、「組み合わせ論理回路24における多種の経路の転送遅延の下限値を設定する」というの動作は、「組み合わせ論理回路24における多種の経路の転送遅延を均一化する」という動作に相当する。組み合わせ論理回路24における多種の経路の転送遅延が均一するほど、より高いホールドタイム余裕度を有することができる。上記で説明したように、ホールドタイム余裕度は、消費電力をランダム化するが、ランダムデータがサンプリングされないようにランダムデータを挿入できる。
【0057】
転送遅延を十分に高く確保する一つの方法は、組み合わせ論理回路24におけるいくつかの論理レベルの間に遅延ユニットを挿入することである。
【0058】
図4は、本発明の一つの実施例における均一化の遅延を有する組み合わせ論理回路24を示すブロック図である。この非常に簡略化された例では、組み合わせ論理回路24における論理レベルは、G1、G2及びG3の三つの論理ゲートを含む。論理ゲートごとには、特定の転送遅延を有する。組み合わせ論理回路24における多種の経路の転送遅延を均一化ために、二つの遅延ユニット48が組み合わせ論理回路24の回路設計に挿入されても良い。遅延ユニットDLY_G1の効果は、論理ゲートG1の転送遅延に近似し、遅延ユニットDLY_G2の効果は、論理ゲートG2の転送遅延に近似する。よって、組み合わせ論理回路24における三つの信号経路は、ほぼ同じ遅延を有する。
【0059】
例えばDLY_G1、DLY_G2及びDLY_G3の遅延ユニットは、任意の適切な方式で実現できる、例えば、ダミー論理ユニット、バッファユニット、又は配線(例えば、より長い配線)を使用しても良い。
【0060】
図4は、本発明を説明ための実施例である。別の実施例において、他の任意の適切な技術は、組み合わせ論理回路24における多種の信号経路の転送遅延を均一化できる。
【0061】
一つの実施例では、以下の擬似コード(pseudo-code)は遅延を均一化できる、
・集積回路の設計及びそのタイミングの制限条件を静的タイミング解析ツールにロードする、例えばsynopsys社のPrimeTime又はIC compiler、
・回路設計のトレードオフによってタイミング均一化の制限条件(TBL)を設定する、
・組み合わせ論理回路24における出力ピンごとについて、
・このピンを通過する最小のスラックを有するタイミング経路を取得する、
・必要に応じて、遅延ユニットを増やして、最小経路タイミングのスラックが TBL より小さくなるまで遅延を増やす。
【0062】
上記プロセスは、例えば、回路設計における低速シミュレーション条件で設計の後ルーティング段階(post-routing stage)で実行できる、低速シミュレーション条件は、例えば、高温、低電圧、低速セルプロセスコーナーモデル(slow cell process corner model)、高容量配線又はその組み合わせを含む。
【0063】
また、回路設計のタイミング最適化ツールで設置タイム余裕度に対して適切な下限値を設定することは遅延の均一化を改善でき、なお、回路設計のタイミングの需要を満たすために必要な設置タイム余裕度を超える。例えば、(i) 遅延を低減する(後は均一化が必要)、及び(ii)最長と最短経路の間のプロセス変動を低減できるので、設置タイムを制限するのは有利である。
【0064】
乱数生成器の構成例
各実施例では、乱数生成器36は任意の適切なアナログ及び/又はデジタル回路で実現できる。乱数生成器36は、必ずしも周波数で駆動する必要がない、アナログノイズ源で実現しても良い。別の実施例では、乱数生成器36は、全デジタルハードウェアで実現でき、例えば、周波数論理を使用して擬似ランダムデータ列を生成する。いくつかの実施例では、乱数生成器36は、セーフティ電子デバイス20の固有するセキュリティ関連回路、例えばセキュア・ハッシュ・アルゴリズム(SHA)、又は高度暗号化規格(AES)暗号化エンジンを再利用しても良い。この場合には、毎回ランダムシードでSHA又は高度暗号化規格を実行したほうがいい。
【0065】
図5Aは、本発明の一つの実施例における乱数生成器36を実現するための乱数生成器を示すブロック図である。この実施例は、SHA及びAESを採用したセーフティ電子デバイス20のサイドチャネル攻撃対策以外のセキュリティ動作に使用することができる。
【0066】
図5Aに示す例では、乱数生成器は互いに接続された二つの乱数生成器(以下、暗号化エンジンを呼ぶ)を含む、図5Aの左側に示す高度暗号化規格(AES)暗号化エンジンはAES論理回路52及びフリップフロップ56を含み、右側に示すSHA暗号化エンジンはSHA論理回路60及びフリップフロップ64を含む。マルチプレクサ68は、フリップフロップ56と64の出力を受け取り、かつAES論理回路52の入力にマルチタスクを処理する。図5Aにおいて、信号AES_NOISE_EN(図5Aには、AES NOISE ENで示す)はAESノイズを起動し、信号SHA_NOISE_EN(図5Aには、SHANOISE ENで示す)はSHAノイズを起動する。
【0067】
いくつかの実施例における一部の期間では、セーフティ電子デバイス20は、SHA暗号化エンジンを使用せず、AES暗号化エンジンを使用し、他の期間では、セーフティ電子デバイス20は、AES暗号化エンジンを使用せず、SHA暗号化エンジンを使用する。これらの実施例では、使用されない乱数生成器は、乱数生成器36として再利用されてランダムデータ(RPD)を生成してもよい。つまり、セーフティ電子デバイス20はSHA暗号化エンジンを使用しないでAES暗号化エンジンを使用する場合には、SHA暗号化エンジンはRPDを生成するために使用される。セーフティ電子デバイス20はAES暗号化エンジンを使用しないでSHA暗号化エンジンを使用する場合には、AES暗号化エンジンはRPDを生成するために使用される。
【0068】
フリップフロップ56及び64は、AES及びSHA暗号化エンジンの内部のバッファを表してもよく、必ずしもメインモジュール出力に結合されない(例えば、高度暗号化標準パスワード又はSHAの処理)。よって、対応する暗号化エンジンを実行する時に、これらの数値は周波数期間ごとに変更できる。
【0069】
信号AES_NOISE_EN及び信号SHA_NOISE_ENは、対応する暗号化エンジンに入ることができ、「ノイズ」の状態に入ると、暗号化エンジンは、停止するまで乱数の生成を維持するために、ますます多くなるデータを処理し続ける、例えば、NOISE_ENの信号リセットまで。マルチプレクサ68及び72は、図1のマルチプレクサ32と類似する。
【0070】
図5Bは、図5Aの乱数生成器に用いられるマルチプレクサ68及び72の別の配置を示すブロック図である。乱数生成器の他の部分は、変更されない。
【0071】
図5A図5Bの乱数生成器の配置は、あくまで例示であり、本発明はこれに制限されない、他の任意の適切な方式でも使用できる。例えば、乱数生成器(RNG)は、少なくとも二つの任意の種類の暗号化エンジンの組み合わせで実現でき、例えば、Rivest-Shamir-Adleman(RSA) 暗号化エンジン、Elliptic-CurveCryptography(ECC)暗号化エンジン又はCRC暗号化エンジンを使用する。
【0072】
追加の対策の統合
図6は、本発明の更に別の実施例におけるサイドチャネル攻撃を防犯するセーフティ電子デバイスを示すブロック図である。図6は、図1~3の保護機構が追加のセキュリティ対策と組み合わせることができることを証明できる。図6は、一つの組み合わせ可能な対策を例として示す。
【0073】
この例では、フリップフロップ28から読み取られる及びフリップフロップ28に書き込まれるデータは、一つの追加の乱数生成器80でマスクされる。フリップフロップ28のサンプリングする前に、乱数生成器80により生成されたランダムデータMDは、組み合わせ論理回路24の出力Dと組み合わせ、例えば、ビット相互排他又はゲート(bitwise XOR)を使用して組み合わせる。この他、追加のフリップフロップ84は、ランダムデータMDをサンプリングする。組み合わせ論理回路24の入力を駆動する前に、フリップフロップ84が出力したサンプリングデータMQは、マルチプレクサ32のサンプリングされた出力と組み合わせ、例えば、ビット相互排他又はゲートを使用して組み合わせる。
【0074】
追加の実施例及び変形例
いくつかの実施例では、周波数期間ごとに、乱数生成器36はランダムデータを複数回修正する。例えば、図2の入力M1を参照し、間隔RPDにおけるランダムデータの数値は、少なくとも一回変更される。
【0075】
いくつかの実施例では、ランダムデータ及び関数型データを提供するタイミングは一定的ではない。タイミングを修正することにより、周波数期間におけるランダムデータを提供する期間の割合、及び周波数期間における関数型データを提供する期間の残りの割合を制御できる。フリップフロップのサンプリング時間(例えば、図2と3に示す時点40)前のランダムデータが始まる(例えば、図2と3に示す時点44)持続時間も制御できる。図1に示す配置では、例えば、遅延ユニットDLY3を修正することにより、上記タイミングを修正してもよい。
【0076】
本発明において、「ランダムデータ及び関数型データを提供するタイミング」とは、周波数期間におけるランダムデータ(例えば、時点44)からフリップフロップのサンプリング時間(例えば、時点40)までのサイズ及び/又は位置である。
【0077】
いくつかの実施例では、電子デバイスにおける組み合わせ論理回路の独立性能に応じて、ランダムデータ及び関数型データを提供するタイミングの設定は、セーフティ電子デバイス20ごとに独立する。例えば、この設定は、独立セーフティ電子デバイス間のホールドタイム余裕度の統計的な違いを利用でき、例えば、プロセス変動を利用する。
【0078】
例えば、セーフティ電子デバイス20における組み合わせ論理回路24は、高い設置タイム余裕度及び低いホールドタイム余裕度を有することが考えられる。前記独立セーフティ電子デバイス20において、タイミングは、フリップフロップのサンプリング時間(例えば、時点40)後にランダムデータを提供し始め、かつフリップフロップのサンプリング時間(例えば、時点40)後にランダムデータの提供を停止するように設定されてもよい。上記順番の設定は任意の適切な時間で実行でき、例えば、セーフティ電子デバイス20の製造又は最終のテストの時に実行する。この設定は、回路補正やトレーニングシーケンスと見なす場合がある。
【0079】
また、セーフティ電子デバイス20において、組み合わせ論理回路の現在の実際の性能に応じて、保護回路は、ランダムデータ及び関数型データを提供するタイミングと時間的に適合できる。例えば、この適合は、例えば温度、電圧又はその他の動作条件による違いなど、時間の経過に伴う転送遅延の違いを利用できる。この適合は、コンポーネント間の違い(device-to-devicevariations)も利用できる。
【0080】
一つの実施例では、組み合わせ論理回路24の出力(D1)を監視することにより、保護回路は、組み合わせ論理回路24の入力(M1)に予め定義トレーニングシーケンスを提供し、及び組み合わせ論理回路24のホールドタイム余裕度(信号経路の転送遅延間の均一化程度に等しい)を推定し、かつタイミング(例えば、DLY2及びDLY3のタイミング)を設定できる。例えば、上記順番の適合は、電源投入時またはリセット時に実行され、及び/又は毎回組み合わせ論理回路24を使用して暗号化動作が行われる前に、定期的に実行されてもよい。
【0081】
この実施例では、ホールドタイム余裕度が高い場合、周波数期間のより先の部分(フリップフロップのサンプリング時間前に)にランダムデータを提供することで、安全性を向上する。その他の時間で、ホールドタイム余裕度が低い場合、ランダムデータが周波数期間のより遅い部分(フリップフロップのサンプリング時間前に)に提供される必要があるが、この場合には、設定余裕度は通常より高いので、ランダムデータがデータのサンプリング時間後に提供されてもよい。
【0082】
通常の実施例では、例えば、プロセス変動、電圧変動及び温度変動により組み合わせ論理回路24の最も遅い転送時間を起こす場合、低速プロセス-電圧-温度(PVT)コーナーでホールドタイム余裕度は高い。この条件では、周波数期間のより先の部分(フリップフロップのサンプリング時間のより前に)にランダムデータを提供することで、安全性を向上する。同じ方式により、高速プロセス電圧温度(PVT)コーナーでホールドタイム余裕度が小さくなり、ランダムデータが周波数期間のより後の部分(リップフロップのサンプリング時間前に)に提供されてもよい。
【0083】
ランダムデータ及び関数型データを提供するタイミングを適合する利点を証明ために、以下の数値が考えられる。組み合わせ論理回路24の最小転送時間は、低速PVTコーナーで10nsと、高速PVTコーナーで6nsと仮定され、組み合わせ論理回路24の最大転送時間は、低速PVTコーナーで20nsと、高速PVTコーナーで12nsと仮定される。
【0084】
この場合には、保護回路は遅延ユニットDLY2及びDLY3の適応的な補正を実行できるため、低速PVTコーナーでフリップフロップのサンプリング時間(例えば、時点40)前の10ns(例えば、時点44)からフリップフロップのサンプリング時間(例えば、時点40)までランダムデータ(RPD)を提供することができる。高速PVTコーナーでフリップフロップのサンプリング時間(例えば、時点40)前の6ns(例えば、時点44)からフリップフロップのサンプリング時間(例えば、時点40)後の8nsまでRPDを提供することができる。
【0085】
上記内容において、ランダムデータ及び関数型データを提供するタイミングの設定は、ランダムデータを提供する動作期間(周波数期間の割合)を改善し、かつランダムデータがサンプリングされないことを確保することを目的としている。この条件は、関数型データを提供する動作期間(周波数期間の割合)を最低に低減できる。よって、セーフティ電子デバイス20の静電気漏れも低減できる。
【0086】
分かり易いために、図1、4、5A、5B及び6に示すセーフティ電子デバイス、組み合わせ論理回路及び乱数生成器の配置は例のみである。他の実施例では、別の任意の適切な配置も使用できる。各実施例では、セーフティ電子デバイス、組み合わせ論理回路及び/又は乱数生成器は任意の適切なハードウェアで実現でき、例えば、少なくとも一つの個別コンポーネント、少なくとも一つの特殊なアプリケーション集積回路(ASIC)及び/又は少なくとも一つのフィールド・プログラマブル論理ゲート・アレイ(FPGA)を使用してもよい。
【0087】
本発明のいくつかの実施例を説明したが、発明の範囲を限定することは意図していない。これら実施例は、本発明の要旨を逸脱しない範囲で、種々の置き換え、変更を行うことができる。
【符号の説明】
【0088】
20…セーフティ電子デバイス
24…組み合わせ論理回路
28、56、64、84、FF…フリップフロップ
32,68,72…マルチプレクサ
36,80、RNG…乱数生成器
40,44…時点
48、DLY_G1、DLY_G2、DLY1、DLY2、DLY3…遅延ユニット
52…AES論理回路
60…SHA論理回路
ALD、ALD1、ALD2、ALD3…関数型データ
C1,C2,C3…周波数信号
CR…クロックツリー
G1,G2,G3…論理ゲート
L…論理レベル
M1…入力
MQ…サンプリングデータ
Q,D,D1…出力
Q1…関数型データ
R1,RPD、RPD1、RPD2、RPD3、RPDD、RPDD0、RPDD1、MD…ランダムデータ
S1…MUX制御信号
SRFF…SRのフリップフロップ
T_ALD_max…最大転送時間
T_ALD_min…最小転送時間
T_RPD_max…最大転送時間
T_RPD_min…最小転送時間
図1
図2
図3
図4
図5A
図5B
図6