JP2009003495A - 制御装置、擬似乱数生成器の制御方法及び電子機器 - Google Patents
制御装置、擬似乱数生成器の制御方法及び電子機器 Download PDFInfo
- Publication number
- JP2009003495A JP2009003495A JP2007160885A JP2007160885A JP2009003495A JP 2009003495 A JP2009003495 A JP 2009003495A JP 2007160885 A JP2007160885 A JP 2007160885A JP 2007160885 A JP2007160885 A JP 2007160885A JP 2009003495 A JP2009003495 A JP 2009003495A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- pseudo
- interrupt request
- count value
- request signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】本発明の目的は内部回路の複数の割り込み要求信号及び外部入力を起因とする割り込み要求信号をシード生成のトリガとして用いることで異なる周期性を持つ信号を組み合わせることで、再現困難性を持つ擬似乱数生成器を提供することを可能とすることである。
【解決手段】擬似乱数生成器110は割り込み要求信号受信部200、シード生成部210、カウント値格納部230、擬似乱数演算部240を含む。割り込み要求信号受信部200が割り込み要求信号を受けると、カウント値取得信号600がシード生成部210に出力され、そのタイミングの内部カウンタの値がカウント値格納部230内に蓄積される。擬似乱数演算部240は要求を受けると、カウント値格納部230内に蓄積されたカウント値を利用して擬似乱数を生成する。
【選択図】図2
【解決手段】擬似乱数生成器110は割り込み要求信号受信部200、シード生成部210、カウント値格納部230、擬似乱数演算部240を含む。割り込み要求信号受信部200が割り込み要求信号を受けると、カウント値取得信号600がシード生成部210に出力され、そのタイミングの内部カウンタの値がカウント値格納部230内に蓄積される。擬似乱数演算部240は要求を受けると、カウント値格納部230内に蓄積されたカウント値を利用して擬似乱数を生成する。
【選択図】図2
Description
本発明は、制御装置及びマイクロコンピュータに内蔵された擬似乱数生成装置に関する。
乱数生成器は、暗号解読を試みる攻撃者が推定、および、再現できない情報を生成する目的で使用される。たとえば、セキュリティの分野では、一度限り有効な鍵を含む公開鍵や秘密鍵又は共通鍵などの鍵生成や、暗号通信時に通信相手のみに送信する秘密情報の生成など、様々な暗号プロトコルに乱数生成器は用いられている。
理想的な乱数には、ランダムな現象が求められる。ここでランダムな現象とは、ある現象において、それぞれの事象が他の事象とは独立に発生することを言う。
一般的に、このランダムな現象を作り出す乱数生成器として、放射線や熱雑音などの物理現象を使用したものを真性乱数生成器、乱数のように見えるが実際には暗号理論を使用して確定的な計算によって生成する擬似乱数生成器などが用いられる。
真性乱数生成器は、ランダム性を物理現象に求めるため、乱数に高いランダム性を得られる反面、物理現象を観測する装置と、その情報をデジタル値に変換する装置が必要になる。通常のLSIの量産プロセスでは作成が困難であり、作成する場合には高いコストを要する。
一方、擬似乱数生成器は、真性乱数生成器とは異なり、ある入力値に対して一意に確定する値を生成する。しかし、物理現象を観測するための装置が不要で、実装方法はソフトウェア、ハードウェアを選ばないなど、真性乱数生成器に比べて安価で容易に使用できるという利点を持つ。このため、セキュリティ用途においても一般的に使用されている。
擬似乱数生成器では、シード(初期値)と呼ばれる入力に対して、暗号理論を用いた計算によって乱数として使用する値を得る。前述のとおり、シードの値が同一であれば必ず同一の値を出力する。擬似乱数生成器の出力を乱数として使用するためには、使用時毎に異なる値をシードとして入力すること、すなわち、シードの周期性が大きいほうが望ましい。
このような問題に対し、従来技術にはシードとして使用する値として時刻を使用する方式が存在する。時刻は刻々と変化するため、毎回異なる値を得ることができるためである。
特開平7−311674号公報(以下特許文献1)記載の発明では、値を内部クロックに同期してカウントアップするカウンタと、乱数関数の出力を保存するレジスタと、外部からの起動信号によりカウンタ、および、レジスタの値を入力して乱数を出力する乱数関数を具備した擬似乱数生成装置を開示する。この擬似乱数生成装置では、カウンタを起動する内部クロックとは非同期なタイミングで入力される起動信号を利用することにより、外部から観測できないカウンタの値を用いて次の乱数を生成する。
特開平7−311674号公報
擬似乱数生成器を用いる場合、前述のとおり、シードとして入力する値の周期性が大きいことが求められる。加えて、再現が容易な擬似乱数は、セキュリティ強度の低下につながるため、再現が困難な値をシードとして使用する必要がある。
しかしながら、ハードウェアやソフトウェアは規則的に動作することを前提に設計されたものであり、シード生成時の条件は再現性がある場合もある。従って、そのような場合、シードの再現可能性も否定できない。さらに、シードの生成方法や決定方法が単純であれば、実装方法の類推や生成手順の再現により、シードとして同じ値を入力される危険性が増す。
本発明はこのような問題を解決するためになされたものである。即ち、内部回路の複数の割り込み要求信号及び外部入力を起因とする割り込み要求信号をシード生成のトリガとして用い、周期性の異なる信号あるいは周期性の無い信号を組み合わせることで、再現困難性を持つ擬似乱数生成器を提供することを可能とする。
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
本発明に関わる制御装置は、割り込み要求信号を出力する1ないし2以上の機能モジュールと、割り込み要求信号の優劣を判断する割り込みコントローラと、割り込み要求信号によりシードを更新する擬似乱数生成器を有する。
また、この制御装置の擬似乱数生成器の一種には、カウンタと、1ないし2以上の前記割り込み要求信号を受信する割り込み要求信号受信部と、いずれかの割り込み要求信号を割り込み要求信号受信部が受信した際のカウンタの値をカウント値として格納するカウント値格納部と、擬似乱数生成の要求があった際にカウント値格納部に格納されたカウント値をシードとして擬似乱数を生成する擬似乱数生成部を有する。
また、この制御装置の擬似乱数生成器の別の一種には、カウンタと、2以上の前記割り込み要求信号を受信し、受信した該割り込み要求信号を識別するための識別子を生成する割り込み要求信号受信部と、識別子を格納するID格納部と、いずれかの割り込み要求信号を割り込み要求信号受信部が受信した際のカウンタの値をカウント値として格納するカウント値格納部と、擬似乱数生成の要求があった際にカウント値格納部に格納されたカウント値及びID格納部に格納された識別子をシードとして擬似乱数を生成する擬似乱数生成部を有する。
また、この制御装置の擬似乱数生成器の別の一種には、カウンタと、2以上の前記割り込み要求信号を受信し、受信した該割り込み要求信号を識別するための識別子を生成する割り込み要求信号受信部と、いずれかの割り込み要求信号を割り込み要求信号受信部が受信した際のカウンタの値及び識別子を組み合わせて格納するID/カウント値格納部と、擬似乱数生成の要求があった際にID/カウント値格納部に格納されたID/カウント値をシードとして擬似乱数を生成する擬似乱数生成部を有する。
これらの制御装置の擬似乱数生成器において、カウント値格納部はカウント値としてカウンタの値を複数個格納することができ、リングバッファ方式でカウンタの値を更新する。
また、この制御装置は更にCPUを有し、このCPUは擬似乱数生成の要求を擬似乱数生成器に出力し、擬似乱数生成器より生成された擬似乱数を取得することも可能である。
また、この制御装置は更に機能モジュールを有し、この機能モジュールは擬似乱数生成の要求を擬似乱数生成器に出力し、擬似乱数生成器より生成された擬似乱数を取得し、割り込み要求信号を出力することも可能である。
この制御装置において、割り込み要求信号は外部モジュールに依拠することも可能である。
携帯電話等の電子機器がこの制御装置を含むことも考慮される。
本発明に関わる擬似乱数生成器の制御方法の制御対象となる擬似乱数生成器は、カウンタと、1ないし2以上の割り込み要求信号を受信し、カウント値取得信号を出力する割り込み要求信号受信部と、いずれかの割り込み要求信号を割り込み要求信号受信部が受信した際のカウンタの値をカウント値として内部レジスタに格納するカウント値格納部とを有し、割り込み要求信号受信部が割り込み要求信号の受信を受けてカウント値取得信号を出力するカウント値取得信号出力ステップと、カウント値取得信号を受けてカウンタがカウント値をカウント値格納部に出力するカウント値取得ステップと、カウント値を受けたカウント値格納部がカウント値を内部レジスタに格納するカウント値格納ステップを含む。
この擬似乱数生成器は、さらに擬似乱数生成部を含み、この擬似乱数生成器の制御方法では、擬似乱数生成の要求があった際にカウント値格納部の内部レジスタに格納されたカウント値をシードとして擬似乱数を生成する擬似乱数生成ステップを有しても良い。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
本発明に関わる擬似乱数生成器では、割り込み要求信号をシード生成のタイミングとして用いる。この割り込み要求信号の発生タイミングは、マイクロコンピュータ自身の状態と、マイクロコンピュータで実行されるアプリケーションプログラム、OS、デバイスドライバなどのソフトウェアの状態と、それらのソフトウェアで制御、使用するハードウェアの状態といったマイクロコンピュータに係わるシステム全体の影響を受ける。すなわち、シードの決定要因として使用する割り込み要求信号の発生タイミングは、複雑度が大きく類推が困難であり、加えて、システムの状態は刻々と変化する。したがって、本発明により、周期性が大きく、類推、再現困難なシードの生成が可能となる。
以下、図を用いて、本発明の第1の実施の形態を説明する。
(第1の実施の形態)
図1は、本発明に関わる制御装置であるマイクロコンピュータ100の構成を表すブロック図である。
図1は、本発明に関わる制御装置であるマイクロコンピュータ100の構成を表すブロック図である。
マイクロコンピュータ内部には、本発明に関わる擬似乱数生成器110のほか、割り込みコントローラ120、CPU130、画像処理部131、音声処理部132、暗号処理部133、メモリコントローラ134、DMAコントローラ135、周辺バスコントローラ136、クロック生成器140、タイマ141、外部バスコントローラ142、I/Oポート143が搭載されている。また、共用バスとして、CPUバス106と周辺バス107が含まれる。
また、マイクロコンピュータ100の外部回路としてメモリコントローラ134にはメモリ150が接続されている。さらに本図では、外部バスコントローラ142には、第1外部デバイス160及び第2外部デバイス161が接続されている。なお、本図では割り込み要求信号以外の制御信号線は省略している。
本発明に関わる擬似乱数生成器110は、マイクロコンピュータ100内の処理で擬似乱数が必要な際、擬似乱数を生成するための回路である。この擬似乱数生成器110には、画像処理部131、音声処理部132、暗号処理部133、メモリコントローラ134、DMAコントローラ135、周辺バスコントローラ136、タイマ141、外部バスコントローラ142、I/Oポート143から割り込み要求信号が入力される。
割り込みコントローラ120は、画像処理部131などの各機能モジュールからの割り込み要求信号と実行中の処理の優劣判断を行う。割り込み要求信号の求める処理の優先順位の方が高ければCPU130に対して通知する。本実施の形態では、画像処理部131、音声処理部132、暗号処理部133、タイマ141、外部バスコントローラ142、I/Oポート143から割り込み要求信号が割り込みコントローラ120入力される。
CPU130はマイクロコンピュータ100の演算処理を行うCPUバス106下の汎用処理装置である。割り込み要求信号が割り込みコントローラ120に入力され、それが実行中の処理より優先順位の高い処理を要求するものであれば、CPU130に対して図示しない割り込み処理要求信号が出力される。なお、割り込み要求信号はないものの、CPU130も広義の機能モジュールの一つである。
画像処理部131、音声処理部132、暗号処理部133は、CPUバス106上に存在し、上述した各機能モジュールに該当する。CPU130が汎用性を考慮されているのに対し、これらのモジュールはある特定の機能処理に特化した機能モジュールである。
画像処理部131は受信した画像データの符号化・復号化処理を最適に行うことを考慮したモジュールである。この画像処理部131で行われる処理は、動画処理、静止画処理等が考えられる。ただし、本発明では処理の内容を特に限定するものではない。動画であればGOP(Group of Pictures)の処理開始/完了やフレームの処理完了時に割り込み要求信号が割り込みコントローラ120に出力されると想定される。
音声処理部132は音声処理に特化したモジュールである。音声処理部131からは主にデータの送受信のタイミング調整のために割り込み要求信号が出力されると考えられる。
暗号処理部133はマイクロコンピュータ100外部との通信を行う際の暗号処理等を想定したモジュールである。主に暗号処理設定の要求時に割り込み要求信号が割り込みコントローラ120に出力されると想定される。
これらの機能モジュールは、マイクロコンピュータ100が想定する処理によって取捨される。マイクロコンピュータ100の制御対象となる制御装置が暗号処理のみに特化していれば画像処理部131や音声処理部132は存在しないし、音声処理に特化していれば音声処理部132以外のモジュールは不要である。また、簡単な処理しか行わないのであれば、CPU130の代わりにDSP(デジタルシグナルプロセッサ)を用いても良い。これらの取捨は設計事項であり、本発明には特に影響しない。
上述したように、画像処理部131、音声処理部132、暗号処理部133は割り込み要求信号を割り込みコントローラ120に対して出力するが、本発明の実施の形態では擬似乱数生成器110にも割り込み要求信号を出力する点で従来例と相違する。
CPUバス106上に存在するメモリコントローラ134はマイクロコンピュータ100外部に接続されるメモリ150の入出力を制御するモジュールである。
DMAコントローラ135はCPU130を介さずに各モジュールとメモリ150との間で直接データ転送を行うモジュールである。
周辺バスコントローラ136は、CPUバス106と周辺バス107との間のデータ転送を仲介するモジュールである。
メモリコントローラ134、DMAコントローラ135、周辺バスコントローラ136は、一般的なマイクロコントローラのそれと変わるところは無い。CPUバス上の機能モジュール同様、これらも割り込み要求信号を擬似乱数生成器110及び割り込みコントローラ120に出力する。
周辺バス107上にはクロック生成器140、タイマ141、外部バスコントローラ142、I/Oポート143といったモジュールが存在する。
クロック生成器140はマイクロコンピュータ100内で用いられる数種のクロックを生成するPLL(フェイズロックループ)回路等である。本図では簡略化のために図示していないが、CPU130や画像処理部131等の各機能モジュールにクロック信号は入力される。なお、本図ではクロック生成器140は一つであるが、システムが要するクロック周波数に対応して複数のクロック生成器を用意することも可能である。
タイマ141は一定周期で特定の処理を行いたいときに用いられるタイマ・モジュールである。タイマ141の動作パターンには何種類かあるが、基本的は一定周期で割り込み要求信号を割り込みコントローラ120に出力し、所定の処理をCPU130に促すというものである。
外部バスコントローラ142はマイクロコンピュータ100の外部に接続するデバイス、たとえばハードディスクや外部通信モジュール等、との入出力を制御するモジュールである。たとえば、本図では第1外部デバイス160からデータ送信要求があった場合に、外部バスコントローラ142が割り込み要求信号を割り込みコントローラ120に出力することが考えられる。
I/Oポート143はマイクロコンピュータ100外部に接続する機器との入出力に使用する端子、及び、その端子を制御するモジュールである。外部機器から入出力要求がなされ、端子を制御するモジュールから割り込み要求信号が出力されたりすることで、割り込み要求信号を割り込みコントローラ120に出力することが想定される。
以上の周辺バス107上のモジュールも従来のそれと変わるところは無い。ただし各モジュールから出力される割り込み要求信号が、割り込みコントローラ120のみならず、擬似乱数生成器110にも出力される点で相違する。
次に、上述した擬似乱数生成器110の構成を図2等に従って説明する。
図2は擬似乱数生成器110の構成を表すブロック図である。また、図3は割り込み要求信号受信部200の構成を表すブロック図である。
この擬似乱数生成器110は割り込み要求信号受信部200、シード生成部210、カウント値格納部230、擬似乱数演算部240、擬似乱数格納部260、演算部処理状態格納部280より構成される。
割り込み要求信号受信部200には、1若しくは2以上の各モジュールから出力される割り込み要求信号が入力される。割り込み要求信号受信部200は割り込み要求信号が有効になったことを検出し、カウント値取得信号600を出力する。この際、割り込みコントローラ120と異なり、割り込み要求信号受信部200では各信号線の優劣は存在しない。割り込み要求信号が入力されれば必ず割り込み要求信号受信部200はカウント値取得信号600が出力される設計となっている。
この割り込み要求信号受信部200の構成を図3に基づき具体的に説明する。
このモジュールは割り込み要求信号ごとに用意されたエッジ検出部300及びオアゲート301から構成される。
各モジュールから出力される割り込み要求信号に対して、その割り込み要求信号のエッジを検出するエッジ検出部300が割り込み要求信号ごとに配置されている。このエッジ検出部300が割り込み要求信号のエッジを検出すると、検出したエッジ検出部300がパルスを出力する。
エッジ検出部300から出力されたパルスはオアゲート301に入力され、オアゲート301からカウント値取得信号600として出力される。すなわち、いずれか1つの割り込み要求信号が出力され、対応したエッジ検出部300がパルスを出力すれば、割り込み要求信号の優劣無くオアゲート301からカウント値取得信号600が出力される構成である。
なお、エッジを検出することとしているのは、割り込み要求信号がレベルトリガで設計されている場合を考慮したものである。エッジ検出にすることにより、割り込み要求信号がレベルトリガである場合でも、エッジ検出部300は1パルスのみ出力することになり、カウント値取得信号201がアクティブになり続けることを防止する。
図2の説明に戻る。シード生成部210はカウンタ220を具備する。そして、シード生成部210には割り込み要求信号受信部200から出力されたカウント値取得信号600が入力される。
このカウンタ220は、マイクロコンピュータ100の電源供給開始、または擬似乱数生成器110に対するクロック供給の開始と共に動作を開始する。そして、擬似乱数生成器110への電源またはクロック供給の停止までカウンタ220は動作する。カウンタ220の動作クロックは、マイクロコンピュータ100の動作クロックや擬似乱数生成器110の動作クロックに対して、同期したクロック、または、非同期のクロック、どちらを使用してもよい。また、カウンタ220のカウント方法は、単調増加、単調減少のどちらでもよいが、カウンタ220のカウント値は外部から観測できない構成とすることが望ましい。
カウント値取得信号600が入力されると、シード生成部210は、そのときにカウンタ220が示すカウント値を取得し、カウント値格納部230へ出力する。
カウント値格納部230は、シード生成部210より出力されたカウント値を内部レジスタに格納する。カウント値格納部230は、1又は2以上のカウント値を格納できる構成をとり、取得したカウント値を順次格納していく。全ての格納領域への格納がなされると、格納しているカウント値の古いものから順次書き換えるFIFO(First In First Out)方式、具体的実装方法としてはリングバッファ方式で更新する。このカウント値格納部に格納された複数個のカウント値が擬似乱数演算部240で使用されるシードとなる。カウント値格納部230の格納内容は、擬似乱数生成器110外部からの観測、および、書換えができない構成とすることが望ましい。
擬似乱数演算部240は外部から入力される擬似乱数生成要求信号250を受け、カウント値格納部230に格納されたカウント値をシードとして擬似乱数を生成する回路である。擬似乱数の発生には線形合同法、混合合同法、平方採中法といった各種方法が存在するが、本発明ではいずれの方法であっても問題ない。ただし、ハッシュ関数のような、擬似乱数格納部260の格納値からカウント値格納部230に格納されたシードの内容が推定困難である一方向性の高い演算アルゴリズムが用いられることが好ましい。なお、擬似乱数演算部240が導出した擬似乱数は、擬似乱数演算結果241として擬似乱数格納部260に出力される。
擬似乱数生成要求信号250は擬似乱数生成器110に対して擬似乱数の生成を要求する信号である。この信号の入力を契機として、擬似乱数演算部240がカウント値格納部230からシードを取得し、擬似乱数を生成する。
擬似乱数格納部260は擬似乱数演算部240から出力された擬似乱数を格納しておくバッファである。擬似乱数生成要求信号250をアクティブにした要求元のモジュールは、擬似乱数読出要求信号270をアクティブにすることによって擬似乱数格納部260に格納されている擬似乱数をCPUバス106経由で取得し乱数として使用する。この擬似乱数格納部260の格納値は、擬似乱数格納部リセット信号291を受けて擬似乱数格納部260の格納内容はリセットされる。
演算部状態格納部280は擬似乱数演算部240がどのような状況にあるのかを示すレジスタを含む。このレジスタは擬似乱数演算部240によってアクティブにされ、外部の機能モジュールからの状態リセット信号281でリセットされる。また、擬似乱数を必要とする各機能モジュールに対して演算部処理状態通知信号290を出力する。また、内部的には擬似乱数格納部リセット信号291を擬似乱数格納部260に対して出力する。
以下、この擬似乱数生成器110を用いて、擬似乱数を必要とする機能モジュール、ここでは一例としてCPU130が擬似乱数を取得する方法を図4に基づき説明する。
図4は、擬似乱数生成器110と擬似乱数要求元との間のコマンドのやり取りを表す流れ図である。
擬似乱数が必要となった際には、CPU130は擬似乱数生成器110に対して擬似乱数生成要求信号250を入力する(ステップS1001)。上述の通り、擬似乱数生成要求信号250は擬似乱数演算部240に入力され、擬似乱数の生成開始を示す信号として使用する。
擬似乱数演算部240は、擬似乱数生成要求信号250の入力により、カウント値格納部230のレジスタに格納された1または2以上のカウント値を取得する。このカウント値をシードとして、擬似乱数演算を開始する(ステップS1002)。
擬似乱数演算部240の演算が終了すると、擬似乱数演算部240は演算結果を擬似乱数格納部260に格納する(ステップS1003)。この後、擬似乱数演算部240は演算部処理状態格納部280のレジスタに擬似乱数演算の結果をセットし、演算部処理状態通知信号290を介してCPU130に対して演算が完了したことを通知する(ステップS1004)。
演算部処理通知信号290によって擬似乱数演算処理が完了したことを知ると、CPU130は擬似乱数読出信号270を出力する(ステップS1005)。これを受け、擬似乱数格納部260はCPUバス106上に擬似乱数を出力する(ステップS1006)。
CPU130は所望した擬似乱数を受けると、状態リセット信号281を出力する(ステップS1007)。これにより、演算部処理状態格納部280のレジスタをリセットする。合わせて、演算部処理状態格納部280は擬似乱数格納部260に擬似乱数格納部リセット信号291を出力し、格納された擬似乱数を消去する(ステップS1008)。これにより、一連の処理を完了する。
以上の構成をとることで次のような効果を得ることができる。
すなわち、擬似乱数生成要求信号250と無関係かつ規則なく、カウント値は割り込み発生によりリフレッシュされるため、シード値の推定が困難なことである。また、外部入力によるシードの推認が意味を成さず再現困難性が担保される。
(第2の実施の形態)
第2の実施の形態は、第1の実施の形態の変形例である。すなわち第2の実施の形態は、第1の実施の形態のカウント値格納部230のカウント値格納時の処理を変更している。
第2の実施の形態は、第1の実施の形態の変形例である。すなわち第2の実施の形態は、第1の実施の形態のカウント値格納部230のカウント値格納時の処理を変更している。
第1の実施の形態では、シード生成部210の出力をカウント値格納部230は、そのままレジスタに格納した。これを、カウント値格納部230のレジスタ中の書き込む対象となる記憶領域にすでに書き込まれている値と組み合わせた値を新たに記憶することとする。
具体的な構成としては、シード生成部210の出力値と、格納先に格納されている値との排他的論理和をとった値をカウント値格納部230のレジスタに新たに書き込む構成などが考えられる。
このように、シードに割り込み要求信号で生じた過去のシードの履歴を反映することで、同一の乱数を得たい攻撃者は、マイクロコンピュータ100の起動直後からの全ての割り込み要求信号の発生タイミングを推定、および、再現することが必要になるため、再現困難性が向上する。
(第3の実施の形態)
図5は本発明の第3の実施の形態に関わるマイクロコンピュータ101の擬似乱数生成器111のブロック図である。なお、マイクロコンピュータ101自体の構成は第1の実施の形態のマイクロコンピュータ100の図1の擬似乱数生成器110を擬似乱数生成器111に置き換えるのみである。従って、マイクロコンピュータ101自体の構成は省略する。
図5は本発明の第3の実施の形態に関わるマイクロコンピュータ101の擬似乱数生成器111のブロック図である。なお、マイクロコンピュータ101自体の構成は第1の実施の形態のマイクロコンピュータ100の図1の擬似乱数生成器110を擬似乱数生成器111に置き換えるのみである。従って、マイクロコンピュータ101自体の構成は省略する。
この擬似乱数生成器111はマイクロコンピュータ101に接続された第1外部デバイス160、第2外部デバイス162などから送信される外部割込み要求信号と、マイクロコンピュータ101内部のモジュール、たとえば画像処理部131、から送信される割り込み要求信号を明確に区別し、これらを組み合わせて入力する方式である。
外部割り込み要求信号405は、外部デバイスから任意のタイミングでマイクロコンピュータ101とは非同期の信号が入力されるという利点を持つ。すなわち、内部割込み要求信号406を出力する内部モジュールは、クロック生成器140の出力するクロックを基準に動作することが多い。従って、割り込み要求信号もある程度はクロック生成器140の出力に左右されるため、規則性を排除することは困難であるためである。一方で、外部割り込み要求信号405はマイクロコンピュータ101のパッケージ外部に露出している端子に入力される外部デバイスからの信号であり、これら端子への意図的な入力及び端子の観察等が可能であるといった欠点がある。
これに対し、内部割り込み要求信号406は、上述の通り発生タイミングに規則性を生じ、攻撃者に発生タイミングを推定する機会を与える可能性がある。
しかし、内部割り込み要求信号406はマイクロコンピュータ101外部からの観察は困難である。内部割り込み要求信号406の発生タイミングを推定するためには、マイクロコンピュータ101の設定やマイクロコンピュータ101上で動作するソフトウェアの動作を解析する必要が生じる。
外部割り込み要求信号405及び内部割り込み要求信号406の実装上の課題を解決するために、外部割り込み要求信号405と内部割り込み要求信号406を共に擬似乱数生成器110に入力することで、シードの再現困難性が向上する。
(第4の実施の形態)
図6は本発明の第4の実施の形態に関わるマイクロコンピュータ102の擬似乱数生成器112のブロック図であり、図7はこの擬似乱数生成器112の割り込み要求信号受信部500の構成を表すブロック図である。なお、第3の実施例同様、マイクロコンピュータ102自体の構成は第1の実施の形態のマイクロコンピュータ100と同じであるので省略する。
図6は本発明の第4の実施の形態に関わるマイクロコンピュータ102の擬似乱数生成器112のブロック図であり、図7はこの擬似乱数生成器112の割り込み要求信号受信部500の構成を表すブロック図である。なお、第3の実施例同様、マイクロコンピュータ102自体の構成は第1の実施の形態のマイクロコンピュータ100と同じであるので省略する。
本実施の形態の擬似乱数生成器112は割り込み要求信号受信部500、シード生成部210、カウント値格納部230、擬似乱数格納部260、擬似乱数格納部260、演算部処理状態格納部280、ID格納部510、擬似乱数演算部540より構成される。なお、第1の実施の形態の擬似乱数生成器112の構成部材と項番が同一のものについては同一の構成を採るので説明は省略する。また、機能モジュールと擬似乱数生成器112間の処理についても図4と同一であり省略する。
本実施の形態の割り込み要求信号受信部500は、入力される割り込み要求信号の本数に対応したエッジ検出部300とID生成部310及び出力信号であるカウント値取得信号600を生成するオアゲート301より構成される。
エッジ検出部300は割り込み要求信号を受信し、立ち上がりもしくは立ち下がりエッジを検出する。第1の実施の形態同様、エッジ検出部300の出力はオアゲート301を経由し、カウント値取得信号600としてシード生成部210に出力される。一方で第1の実施の形態と異なり、エッジ検出部300の出力は割り込み要求信号受信部500中のID生成部310にも出力される。
ID生成部310は各エッジ検出部300の出力を受信するが、受信した信号線から要求元の識別子を生成する。この識別子をID信号501としてID格納部510に出力する。
ID格納部510はカウント値格納部230同様にレジスタを有する。そしてこのレジスタに送信されるID信号630の識別子を記憶する。また、カウント値格納部230同様に全ての格納領域への格納を完了すると、格納している識別子の古いものから順次書き換えて格納する。第2の実施例同様、割り込み要求信号の発生履歴を残し再現困難性を向上させるために、割り込み要求信号受信部500より入力したIDと、格納先に格納されている値との排他的論理和をとった値を格納しても良い。このID格納部510のレジスタの値は擬似乱数演算部540によって参酌される。
擬似乱数演算部540は擬似乱数生成信号250がアクティブになると擬似乱数生成処理を行う点では第1の実施の形態と同様である。ただし、シードとして参酌する対象がカウント値格納部230のレジスタだけでなく、ID格納部510のレジスタも対象とする点で異なる。
このような構成にすることで、攻撃者は割り込み要求信号の発生タイミングのみならずその割り込み要求信号の要求元の推定、及び、再現が必要となるため、再現困難性が向上する。
(第5の実施の形態)
図8は本発明の第5の実施の形態に関わる擬似乱数生成器113のブロック図である。
図8は本発明の第5の実施の形態に関わる擬似乱数生成器113のブロック図である。
第4の実施の形態では、ID格納部510を専用に設け、擬似乱数演算部540はID格納部510及びカウント値格納部230それぞれに対してシード値となるレジスタの値を参照していた。
この擬似乱数生成器113は、割り込み要求信号受信部570、シード生成部211、I/Dカウント値格納部730、擬似乱数演算部240、擬似乱数格納部260、擬似乱数格納部260、演算部処理状態格納部280より構成される。なお、先の実施の形態と項番が同じものについては同一の構成を採るため、モジュールの説明は省略する。
割り込み要求信号受信部570の内部構成は第4の実施の形態のそれと同様である。ただし、本実施の形態では、ID信号501をもシード生成部211に送信する点で相違する。
シード生成部211は割り込み要求信号受信部201からのカウント値取得信号に加え、ID信号501も受信する。内部的には、カウンタ221を有し、カウント値取得信号がアクティブになったときにカウント値を生成する。そしてID信号501と生成したカウント値をまとめてID/カウント値信号としてID/カウント値格納部730に出力する。
ID/カウント値格納部730は受信しレジスタに記憶する信号がID/カウント値信号となってはいるが、シードのビット長で整合をとれば、構成的には第1の実施の形態のカウント値格納部230同様である。従って、このレジスタの値を読み出す擬似乱数演算部240の構成も同じものとなる。
以上の構成を採ることで、内部構成を簡単にした形で第4の実施の形態の効果を得ることができる。
ここまで、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
本発明は擬似乱数を必要とする多くの電子機器ないしはその電子機器を制御する制御装置での適用が可能である。具体的には、携帯電話機などの通信用の暗号などの用途が考えられるが、これに限定されるものではない。
100…マイクロコンピュータ、106…CPUバス、107…周辺バス107、
110、111、112、113…擬似乱数生成器、
120…割り込みコントローラ、130…CPU、
131…画像処理部、132…音声処理部、133…暗号処理部、
134…メモリコントローラ、135…DMAコントローラ、
136…周辺バスコントローラ、140…クロック生成器、141…タイマ、
142…外部バスコントローラ、143…I/Oポート、150…メモリ、
200…割り込み要求信号受信部、210…シード生成部、220…カウンタ、
230…カウント値格納部、240…擬似乱数演算部、260…擬似乱数格納部、
300…エッジ検出部、301…オアゲート、310…ID生成部
500…割り込み要求信号受信部、510…ID格納部、
730…ID/カウント値格納部
110、111、112、113…擬似乱数生成器、
120…割り込みコントローラ、130…CPU、
131…画像処理部、132…音声処理部、133…暗号処理部、
134…メモリコントローラ、135…DMAコントローラ、
136…周辺バスコントローラ、140…クロック生成器、141…タイマ、
142…外部バスコントローラ、143…I/Oポート、150…メモリ、
200…割り込み要求信号受信部、210…シード生成部、220…カウンタ、
230…カウント値格納部、240…擬似乱数演算部、260…擬似乱数格納部、
300…エッジ検出部、301…オアゲート、310…ID生成部
500…割り込み要求信号受信部、510…ID格納部、
730…ID/カウント値格納部
Claims (12)
- 割り込み要求信号を出力する1ないし2以上の機能モジュールと、
前記割り込み要求信号の優劣を判断する割り込みコントローラと、
前記割り込み要求信号によりシードを更新する擬似乱数生成器を有することを特徴とする制御装置。 - 請求項1記載の制御装置において、前記擬似乱数生成器は、
カウンタと、
1ないし2以上の前記割り込み要求信号を受信する割り込み要求信号受信部と、
いずれかの前記割り込み要求信号を前記割り込み要求信号受信部が受信した際の前記カウンタの値を格納するカウント値格納部と、
擬似乱数生成の要求があった際に前記カウント値格納部に格納された前記カウンタの値を前記シードとして擬似乱数を生成する擬似乱数生成部を有することを特徴とする制御装置。 - 請求項1記載の制御装置において、前記擬似乱数生成器は、
カウンタと、
2以上の前記割り込み要求信号を受信し、受信した該割り込み要求信号を識別するための識別子を生成する割り込み要求信号受信部と、
前記識別子を格納するID格納部と、
いずれかの前記割り込み要求信号を前記割り込み要求信号受信部が受信した際の前記カウンタの値を格納するカウント値格納部と、
擬似乱数生成の要求があった際に前記カウント値格納部に格納された前記カウンタの値及び前記ID格納部に格納された識別子を前記シードとして擬似乱数を生成する擬似乱数生成部を有することを特徴とする制御装置。 - 請求項1記載の制御装置において、前記擬似乱数生成器は、
カウンタと、
2以上の前記割り込み要求信号を受信し、受信した該割り込み要求信号を識別するための識別子を生成する割り込み要求信号受信部と、
いずれかの前記割り込み要求信号を前記割り込み要求信号受信部が受信した際の前記カウンタの値及び前記識別子を格納するID/カウント値格納部と、
擬似乱数生成の要求があった際に前記ID/カウント値格納部に格納された前記カウンタの値及び前記識別子を前記シードとして擬似乱数を生成する擬似乱数生成部を有することを特徴とする制御装置。 - 請求項2または3に記載の制御装置において、前記カウント値格納部は前記カウンタの値を複数個格納することができ、リングバッファ方式で前記カウンタの値を更新することを特徴とする制御装置。
- 請求項4に記載の制御装置において、前記カウント値格納部は前記前記カウンタの値及び前記識別子を複数個格納することができ、リングバッファ方式で前記カウンタの値及び前記識別子を更新することを特徴とする制御装置。
- 請求項2ないし6のいずれか1項に記載の制御装置において、前記制御装置は更にCPUを有し、
前記CPUは前記擬似乱数生成の要求を前記擬似乱数生成器に出力し、前記擬似乱数生成器より生成された擬似乱数を取得することを特徴とする制御装置。 - 請求項2ないし6のいずれか1項に記載の制御装置において、
前記機能モジュールは前記擬似乱数生成の要求を前記擬似乱数生成器に出力し、前記擬似乱数生成器より生成された擬似乱数を取得し、前記割り込み要求信号を出力することを特徴とする制御装置。 - 請求項1ないし8のいずれか1項に記載の制御装置において、前記割り込み要求信号が外部モジュールに依拠することを特徴とする制御装置。
- 請求項1ないし8のいずれか1項に記載の制御装置を含むことを特徴とする電子機器。
- カウンタと、
1ないし2以上の前記割り込み要求信号を受信し、カウント値取得信号を出力する割り込み要求信号受信部と、
いずれかの前記割り込み要求信号を前記割り込み要求信号受信部が受信した際の前記カウンタの値を内部レジスタに格納するカウント値格納部と、
有する擬似乱数生成器の制御方法であって、
割り込み要求信号受信部が前記割り込み要求信号の受信を受けてカウント値取得信号を出力するカウント値取得信号出力ステップと、
前記カウント値取得信号を受けて前記カウンタの値を前記カウント値格納部に出力するカウント値取得ステップと、
前記カウント値を受けたカウント値格納部が出力された前記カウンタの値を前記内部レジスタに格納する格納ステップを含むこと、を特徴とする擬似乱数生成器の制御方法。 - 請求項11記載の擬似乱数生成器の制御方法において、前記擬似乱数生成器は更に擬似乱数生成部を含み、
擬似乱数生成の要求があった際に前記カウント値格納部の前記内部レジスタに格納された前記カウンタの値をシードとして擬似乱数を生成する擬似乱数生成ステップを含むこと、を特徴とする擬似乱数生成器の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007160885A JP2009003495A (ja) | 2007-06-19 | 2007-06-19 | 制御装置、擬似乱数生成器の制御方法及び電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007160885A JP2009003495A (ja) | 2007-06-19 | 2007-06-19 | 制御装置、擬似乱数生成器の制御方法及び電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009003495A true JP2009003495A (ja) | 2009-01-08 |
Family
ID=40319852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007160885A Pending JP2009003495A (ja) | 2007-06-19 | 2007-06-19 | 制御装置、擬似乱数生成器の制御方法及び電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009003495A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013134267A (ja) * | 2011-12-23 | 2013-07-08 | Auto Network Gijutsu Kenkyusho:Kk | 制御装置 |
JP2014521132A (ja) * | 2011-07-07 | 2014-08-25 | ムイセ,ジョセフ,ジェラード | デジタル画像で発見された微細構造とノイズをベースにした真正乱数生成器の提供の方法 |
-
2007
- 2007-06-19 JP JP2007160885A patent/JP2009003495A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014521132A (ja) * | 2011-07-07 | 2014-08-25 | ムイセ,ジョセフ,ジェラード | デジタル画像で発見された微細構造とノイズをベースにした真正乱数生成器の提供の方法 |
JP2013134267A (ja) * | 2011-12-23 | 2013-07-08 | Auto Network Gijutsu Kenkyusho:Kk | 制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210141902A1 (en) | Provision of domains in secure enclave to support multiple users | |
TWI609289B (zh) | 用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法、系統及處理器 | |
US20160283750A1 (en) | Providing enhanced replay protection for a memory | |
JP2006203564A (ja) | マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法 | |
JP2004265194A (ja) | 情報処理装置、および情報処理方法 | |
JP2004302915A (ja) | 擬似乱数発生回路 | |
JP2010525417A (ja) | 擬似乱数生成器のための初期シード管理 | |
JP2007334882A (ja) | ハードウェア・ブート・シーケンスをマスキングするためのシステムおよび方法 | |
JP6222802B2 (ja) | ランダム値生成方法およびシステム | |
Chen et al. | FPGA implementation of SRAM PUFs based cryptographically secure pseudo-random number generator | |
CN111566987B (zh) | 数据处理方法、电路、终端设备及存储介质 | |
CN111814212B (zh) | 总线数据的保护方法、装置、存储介质及芯片 | |
CN112367155A (zh) | 一种基于fpga的zuc加密系统ip核构建方法 | |
JP2011101367A (ja) | 非対話型キー生成装置及び方法、並びにこれを用いた通信セキュリティー方法 | |
US20090327381A1 (en) | True random number generator | |
US7925684B2 (en) | Method and apparatus for distributing random elements | |
JP2009003495A (ja) | 制御装置、擬似乱数生成器の制御方法及び電子機器 | |
KR20150051012A (ko) | Puf를 이용하는 하드웨어 암호키 생성 장치 및 방법 | |
JP2003337750A (ja) | 内部解析防止機能付き半導体デバイス | |
US11886624B2 (en) | Crypto device, integrated circuit and computing device having the same, and writing method thereof | |
JP6203532B2 (ja) | 半導体記憶装置及びデータ処理システム | |
US20190243960A1 (en) | Electronic apparatus with clock authentication function and authentication method of clock signal | |
JP2016025532A (ja) | 通信システム、通信装置、及び通信方法 | |
US20230177154A1 (en) | Sparse Encodings for Control Signals | |
JP2007281994A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100528 |