JP6323065B2 - マイクロコンピューター及び電子機器 - Google Patents

マイクロコンピューター及び電子機器 Download PDF

Info

Publication number
JP6323065B2
JP6323065B2 JP2014035037A JP2014035037A JP6323065B2 JP 6323065 B2 JP6323065 B2 JP 6323065B2 JP 2014035037 A JP2014035037 A JP 2014035037A JP 2014035037 A JP2014035037 A JP 2014035037A JP 6323065 B2 JP6323065 B2 JP 6323065B2
Authority
JP
Japan
Prior art keywords
unit
control data
data
random number
bit
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.)
Active
Application number
JP2014035037A
Other languages
English (en)
Other versions
JP2015161969A (ja
Inventor
秋山 千里
千里 秋山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2014035037A priority Critical patent/JP6323065B2/ja
Priority to CN201510088930.1A priority patent/CN104866007A/zh
Publication of JP2015161969A publication Critical patent/JP2015161969A/ja
Application granted granted Critical
Publication of JP6323065B2 publication Critical patent/JP6323065B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、マイクロコンピューター及び電子機器等に関する。
マイクロコンピューターでは、実行している命令(インストラクション)に応じて動作する回路素子が決まるため、実行している命令と電源の消費電流との間に相関がある。そのため、消費電流の時間変化を測定することによって、走行しているインストラクションを推測することができる。
例えば、セキュリティートークン等のセキュリティー対策用のハードウェアを上記の手法でハッキングされた場合、アルゴリズムの解読やパスワードの解読、その解読された情報を使ったハードウェアの複製が可能となり、セキュリティーが破られる危険性がある。
特表2002−508549号公報 特開2000−259799号公報
上記のようなハッキングを妨害する手法として、乱数を用いて命令と消費電流の相関を減らす手法が知られている(例えば特許文献1、2)。例えば、発生した乱数を2進数のビット列とし、そのビット列から1ビットずつ取り出し、“1”の場合には動作タイミングをずらす手法が考えられる。
しかしながら、乱数は“0”又は“1”が連続して続く場合がある。そのため、“0”が続いた場合には通常の動作を行う期間が長く続いて命令と消費電流の間に相関が生じ、“1”が続いた場合には動作タイミングをずらす期間が長く続いて処理速度が落ちてしまうという課題がある。
本発明の幾つかの態様によれば、処理速度の低下を抑制しつつ命令と消費電流の相関を小さくすることが可能なマイクロコンピューター及び電子機器等を提供できる。
本発明の一態様は、インストラクション処理を行う処理部と、前記インストラクション処理の動作タイミングを変化させる制御データを生成する制御データ生成部と、を含み、前記制御データ生成部は、乱数データを発生する乱数発生部と、前記乱数データを加工して、同一論理のビットが所定数連続して発生しない前記制御データを生成するコード変換部と、を有し、前記処理部は、前記制御データに基づいて前記動作タイミングが変化する前記インストラクション処理を行うマイクロコンピューターに関係する。
本発明の一態様によれば、乱数データが加工されることで、同一論理のビットが所定数連続して発生しない制御データが生成され、その制御データに基づいてインストラクション処理の動作タイミングが変更される。これにより、動作タイミングが変更される場合又は変更されない場合が長期間続かないようにできるため、処理速度の低下を抑制しつつ命令と消費電流の相関を小さくすることが可能となる。
また本発明の一態様は、前記乱数発生部は、nビット(nは2≦nの自然数)の乱数データを発生し、前記コード変換部は、同一論理のビットがjビット(jは2≦j<nの自然数)連続して発生しないように前記乱数データを加工して、mビット(mはn<mの自然数)の前記制御データを生成してもよい。
インストラクション処理の動作タイミングが変更される場合には処理速度が低下し、変更されない場合には命令と消費電流の相関が大きくなる。この点、本発明の一態様によれば、制御データにおいて同一論理のビットが連続するビット数をjビットより少なくできる。このビット数jは、乱数データのビット数nよりも小さいので、乱数データのビット列をそのまま制御データとして用いる場合よりも、同一論理のビットが連続するビット数を少なくできる。ビットの論理でインストラクション処理の動作タイミングを変更するか否かを制御するので、動作タイミングが変更される場合又は変更されない場合が続く期間を短くできる。
また本発明の一態様は、前記制御データに基づいて周期を変化させたクロック信号を前記処理部に供給するクロック供給部を含み、前記処理部が、前記クロック供給部からの前記クロック信号に基づいて前記インストラクション処理を行うことで、前記インストラクション処理の前記動作タイミングが変化してもよい。
このように処理部がインストラクション処理を実行するためのクロック信号の周期を、制御データに基づいて変更することで、インストラクション処理の動作タイミングを変化させることができる。制御データは同一論理が所定数連続しないので、周期が通常の場合と変更された場合が長期間連続せず、ランダムに分散されたクロック信号を供給できる。
また本発明の一態様は、前記クロック供給部は、前記制御データが第1の論理レベルの場合に前記クロック信号の周期を増加させてもよい。
このようにすれば、制御データが第2の論理レベルの場合にクロック信号の周期を変更せず、制御データが第1の論理レベルの場合にクロック信号の周期を増加できる。乱数データにより第1の論理レベルと第2の論理レベルがランダムに発生するので、命令と消費電流の相関が小さくなる。また、第2の論理レベルが連続すると処理速度が低下するが、同一論理は所定数連続しないので、処理速度のムラが分散される。
また本発明の一態様は、前記コード変換部は、前記乱数データを8b10b方式で変換することで、同一論理のビットが所定数連続して発生しない前記制御データを生成する8b10b変換部を含んでもよい。
8b10b方式は8ビットのデータを10ビットのデータに変換する手法であり、変換後は、同一論理のビットが最大でも5ビットしか連続しないデータとなる。この8b10b方式により乱数データを変換することで、同一論理のビットが最大でも5ビットしか連続しない制御データを生成できる。
また本発明の一態様は、前記乱数発生部は、nビット(nは2≦nの自然数)の乱数データを発生し、前記コード変換部は、前記nビットの乱数データのうちのMSB側のn/2ビットの第1の乱数データが入力される第1の8b10b変換部と、前記nビットの乱数データのうちのLSB側のn/2ビットの第2の乱数データが入力される第2の8b10b変換部と、前記第1の8b10b変換部からの第1の変換データと、前記第2の8b10b変換部からの第2の変換データと、で構成される変換データから順次1ビットずつ選択して前記制御データとして出力するセレクターと、を有してもよい。
8b10b方式を用いる場合、単純には8ビットの乱数データを用いることが考えられるが、8ビットでは乱数データの数が限られるという課題がある。この点、MSB側の8ビットとLSB側の8ビットをそれぞれ8b10b方式でコード変換することで、乱数の数を確保し、制御データのランダム性を向上できる。
また本発明の一態様は、前記処理部にクロック信号を供給するクロック供給部を含み、前記クロック供給部は、前記セレクターにより選択されたビットが第1の論理レベルの場合、前記クロック信号の周期を増加させてもよい。
このように、セレクターが制御データから順次1ビットずつ選択し、その選択したビットの論理レベルに応じてクロック信号の周期を制御することで、処理部が行うインストラクション処理の動作タイミングをランダムに変化させることができる。
また本発明の一態様は、バスコントロールユニットを含み、前記バスコントロールユニットが、前記処理部がバスにアクセスする際のアクセスタイミングを前記制御データに基づいて変化させることで、前記インストラクション処理の前記動作タイミングが変化してもよい。
このようにすれば、バスにアクセスする命令を処理部が処理する際、制御データの論理レベルに応じてバスアクセスのタイミングが変更される。制御データによりバスアクセスのタイミングがランダムに変更されるので、インストラクション処理のタイミングもランダムに変化させることができる。
また本発明の他の態様は、上記のいずれかに記載されるマイクロコンピューターを含む電子機器に関係する。
比較例の動作説明図。 本実施形態のマイクロコンピューターの構成例。 本実施形態の動作説明図。 乱数データの例。 コード変換の例。 本実施形態のマイクロコンピューターの第2の構成例。 クロック供給部及び制御データ生成部の詳細な構成例。 クロック供給部及び制御データ生成部の動作タイミングチャート。 電子機器の構成例。 電子機器の構成例。
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.比較例
図1に、本実施形態の比較例の動作説明図を示す。
マイクロコンピューターは、命令を処理するCPU(Central Processing Unit)と、記憶装置やインターフェース等を含むペリフェラルとで構成される。CPUにはクロック信号CK_CPUが供給され、そのクロック信号CK_CPUの立ち上がりエッジに同期してCPUが動作しているとする。
即ち、クロック信号CK_CPUの立ち上がりで命令フェッチを行い、次の立ち上がりで、その命令をデコードし、アドレス計算を行う。アドレス計算では、例えば実行に用いるデータが格納された主記憶装置のアドレスを計算する。そして、次のクロック信号CK_CPUの立ち上がりで命令を実行し、実行結果をレジスターに書き込む。命令の実行では、例えばアドレス計算で得られたアドレスからデータを読み出し、そのデータに対して演算装置が処理を行う。
パイプライン処理を行う場合には、第1命令、第2命令、・・・の処理を1クロック毎に開始し、複数の命令を並列処理する。この場合、1クロック毎に命令の実行結果が得られる。
このような動作では、マイクロコンピューターの消費電流(IDD)が命令の内容に応じて異なっている。例えば、演算の内容が異なる命令では、演算装置で用いるロジック回路の個数や種類が異なり、そのロジック回路で消費する電流が異なる。或いは、演算装置を用いる命令と用いない命令、主記憶装置にアクセスする命令とアクセスしない命令では、動作する回路が異なるため消費電流が異なる。
上述のように、クロック信号CK_CPUの立ち上がりに同期して命令を処理しているので、各クロックの立ち上がりで消費電流が発生し、その消費電流はそのときに実行している命令に応じたものとなる。そのため、この消費電流(例えば、その時間変化のパターン)を解析することで、マイクロコンピューターが実行している命令や、或いはその命令から構成されるアルゴリズムを推測することが可能となる。
2.マイクロコンピューター
図2に、このような課題を解決できる本実施形態のマイクロコンピューターの構成例を示す。
マイクロコンピューターは、クロック供給部10(クロックジェネレーター)と、制御データ生成部20と、CPU30(処理部)と、ROM40と、RAM50(主記憶装置)と、バス60と、第1〜第sのペリフェラルPH1〜PHs(sは自然数)と、を含む。
CPU30は、インストラクション処理を行う処理部である。インストラクション処理とは、上述した命令フェッチ、デコード、アドレス計算、実行、レジスター書き込みの一連の処理である。CPU30は、例えば命令デコーダーやレジスター、演算装置(ALU: Arithmetic Logic Unit)等で構成される。CPU30はバス60によりRAM50やペリフェラルPH1〜PHs等の各部と接続されており、そのバス60を介して各部との通信を行う。
ROM40とRAM50はマイクロコンピューターの内部メモリーである。RAM50は、CPU30が処理するプログラムやデータを記憶する主記憶装置(一次記憶装置)として用いられる。
ペリフェラルPH1〜PHsは、マイクロコンピューターの周辺機能を実現する装置であり、例えば、カウンターやタイマー、割り込みコントローラー、シリアルインターフェース(例えばUART: Universal Asynchronous Receiver Transmitter)、ADコンバーター、DAコンバーター、発振回路等である。
クロック供給部10は、クロック源から供給されるクロック信号CKS1〜CKSt(tは自然数)を受けて、複数のクロック信号を生成する。クロック源は、例えばマイクロコンピューター外部のクロック生成回路や、マイクロコンピューター内部の発振回路等である。クロック供給部10は、生成したクロック信号CK_PH1〜CK_PHs、CK_SYS、CK_CPUを、それぞれペリフェラルPH1〜PHs、制御データ生成部20、CPU30(及びROM40、RAM50)へ供給する。
制御データ生成部20は、インストラクション処理の動作タイミングを変化させる制御データCTLを生成する。CPU30は、その制御データCTLに基づいて動作タイミングが変化するインストラクション処理を行う。
具体的には、制御データ生成部20は、乱数データを発生する乱数発生部21を含み、制御データ生成部20は、その乱数データに基づいて制御データCTLを出力する。クロック供給部10は、その制御データCTLに基づいてクロック信号CK_CPUの周期を変化させる。そして、CPU30は、その周期が変化するクロック信号CK_CPUでインストラクション処理を行うことで、インストラクション処理の動作タイミングを変化させる。
図3に、本実施形態の動作タイミングチャートを示す。
制御データ生成部20は、乱数のビット列をMSB側(又はLSB側)から1ビットずつ制御データCTLとして出力する。例えば乱数が16進数の“4”である場合、2進数のビット列では“0100”となるので、制御データCTLは“0”、“1”、“0”、“0”の順に出力される。例えば、図3の例ではクロック信号CK_SYSの2クロック毎に1ビットずつ出力する。
クロック供給部10は、制御データCTLが“0”の場合にはクロック信号CK_CPUを基準の周期で出力する。図3の例では、クロック信号CK_SYSと同一の周期である。一方、制御データCTLが“1”の場合には、基準の周期よりも遅い周期でクロック信号CK_CPUを出力する。図3の例では、基準の周期の半分の周期であり、クロック信号CK_SYSの2つのパルスのうち2つ目のパルスを欠落させる。制御データCTLは乱数データから生成されるので、周期が遅くなるタイミングはランダムである。
CPU30は、このランダムに周期が変化するクロック信号CK_CPUで動作するので、マイクロコンピューターの消費電流(IDD)の発生タイミングもランダムとなる。具体的には、クロック信号CK_CPUのパルスが欠落したときにはインストラクション処理が次のステップに進まずにウェイト状態となるため、消費電流が小さくなり、そのタイミングがランダムであることによって、命令と消費電流の相関を小さくできる。
しかしながら、乱数を使うことによって以下のような課題がある。図4に示すように、例えば16進数で“0000”〜“FFFF”の乱数データを発生させた場合、2進数では16ビットのビット列となる。このビット列をそのまま制御データCTLとして使ったとすると、乱数データには“0000”や“FFFF”が含まれるので、最大で“0”又は“1”のビットが16回以上続くことになる。
ビット“0”が続いた場合、その間はCPU30が通常のタイミングで動作するため、命令と消費電流の相関が大きくなる。そのため、消費電流の解析によりアルゴリズムやパスワードをハッキングされる可能性がある。一方、ビット“1”が続いた場合、その間はCPU30の動作周波数が遅くなるため、マイクロコンピューターのパフォーマンス(処理速度)が低下して(又はパフォーマンスにムラが生じて)しまう。
そこで本実施形態では、制御データ生成部20がコード変換部22を含み、そのコード変換部22が、乱数データを加工して、同一論理のビットが所定数連続して発生しない制御データCTLを生成する。
図5に、コード変換の例を示す。この例では、乱数データを20ビットのビット列に変換し、“0”又は“1”の同一論理のビットが5回以上連続して発生しないように制御データCTLを生成する。例えば、乱数データが“0000”である場合には最大でビット“0”が3回続くのみであり、乱数データが“FFFF”である場合には最大でビット“1”が3回続くのみである。
このように、同一論理のビットが長く連続しないように乱数データを加工することで、“0”の連続によるハッキングの可能性と、“1”の連続によるパフォーマンスの低下とを、防ぐことができる。
より具体的には、コード変換部22は、乱数データを8b10b方式で変換する。8b10b方式は、8ビットのビット列を10ビットのビット列に変換するコード変換法である。本実施形態では、乱数データのMSB側(上位)8ビット、LSB側(下位)8ビットを、それぞれ10ビットに変換し、合わせて20ビットのビット列を生成する。
8b10b方式では、同一論理のビットが5ビットよりも多く続かないビット列を出力できる。これは、8ビットのビット列を変換した場合に成り立つだけでなく、それを連続させて8×2ビット、8×3ビット、・・・のビット列を変換した場合にも、同一論理のビットは5ビット以下となる。即ち、乱数データの列を変換した制御データCTLのビット列では、どの部分をとっても同一論理のビットを最大で5ビットにできる。図5では、乱数“00”と“FF”の変換例をあげているが、図5に示す例の他に乱数“00”をビット列“1001110100”に変換する場合、乱数“FF”をビット列“1010110001”に変換する場合がある。いずれのビット列に変換するかは、その直前の変換結果に応じて同一ビットが連続しないように決定される。なお、8b10b方式については米国特許4486739に詳細に記載されている。
なお、コード変換の手法は上記に限定されない。即ち、乱数発生部21は、nビット(nは2≦nの自然数)の乱数データを発生し、コード変換部22は、同一論理のビットがjビット(jは2≦j<nの自然数)連続して発生しないように乱数データを加工して、mビット(mはn<mの自然数)の制御データCTLを生成すればよい。
このようなコード変換を用いることで、制御データCTLにおいて同一論理が続くビット数は、乱数データのビット数nよりも少ないビット数jとなる。即ち、乱数データのビット列をそのまま用いる場合よりも、同一論理が連続するビット数を少なくできるため、命令と消費電流の相関を減らすと共にパフォーマンスの低下を防ぐことができる。
3.動作タイミングを変更する手法の変形例
以上の実施形態では、CPU30に供給するクロック信号CK_CPUの周期を変更することでCPU30の動作タイミングを変更したが、動作タイミングの変更手法はこれに限定されない。
図6に、バスアクセスのタイミングを変更する場合のマイクロコンピューターの構成例を示す。
マイクロコンピューターは、クロック供給部10と、制御データ生成部20と、CPU30と、ROM40と、RAM50と、バス60と、バスコントロールユニット70と、第1〜第sのペリフェラルPH1〜PHsと、を含む。なお、既に上述した構成要素と同一の構成要素については同一の符号を付し、適宜説明を省略する。
バスコントロールユニット70は、データバスやアドレスバス等で構成されるバス60を介した通信を制御するものである。この制御によって、CPU30と各部との間のデータ転送や制御が可能となる。本構成例では、バスコントロールユニット70は、CPU30がバス60にアクセスする際のアクセスタイミングを変化させる。
具体的には、制御データ生成部20は、上述したビット列の制御データCTLをバスコントロールユニット70に出力する。バスコントロールユニット70は、制御データCTLが“0”の場合にはアクセスタイミングを変更せずに通常の制御を行い、制御データCTLが“1”の場合にはアクセスタイミングを遅らせる。
例えば、CPU30が命令を実行する際にRAM50(主記憶装置)からデータを読み出すとする。この場合、CPU30はバス60を介してRAM50にアクセスするが、制御データCTLが“1”の場合にはバスコントロールユニット70が、そのアクセスタイミングを遅らせる。例えば、CPU30からアクセス要求を受けてから、実際にRAM50にアクセスするまでの時間を遅延させる。或いは、一時的にビジー信号をCPU30に返すことによって、実質的にアクセスタイミングを変更する。
本実施形態によれば、バス60を介してRAM50やペリフェラルPH1〜PHsにアクセスする命令を実行する場合には、上記のようにして乱数によりアクセスタイミングがランダムに変更される。これにより、インストラクション処理のタイミングがランダムに変更されることになるため、命令と消費電流の相関を減らすことができる。
4.クロック供給部、制御データ生成部
図7に、クロック供給部10及び制御データ生成部20の詳細な構成例を示す。
クロック供給部10は、クロックギア出力部170と、クロックギア選択レジスター180と、クロック生成部190と、を含む。制御データ生成部20は、オンオフ制御レジスター110と、16ビット乱数発生部120と、分周部130と、第1の8b10b変換部140と、第2の8b10b変換部150と、セレクター160と、を含む。
オンオフ制御レジスター110には、制御データ生成のイネーブル/ディスエーブル信号が設定される。イネーブルが設定された場合には制御データ生成部20はランダムな制御データCTLを生成し、ディスエーブルが設定された場合には制御データ生成部20は“0”を制御データCTLとして出力する。
分周部130は、クロック信号CK_CPUを40分周するカウンターであり、40カウント毎にシフト制御信号を16ビット乱数発生部120に出力する。
16ビット乱数発生部120は、分周部130からのシフト制御信号を受け取った場合に16ビットの乱数データを更新する。16ビット乱数発生部120は、例えば線形帰還シフトレジスター(LFSR: linear feedback shift register)で構成される。
第1の8b10b変換部140は、16ビットの乱数データのうちのMSB側の8ビットの第1の乱数データを8b10b方式でコード変換し、20ビットの変換データのうちのMSB側の10ビットの第1の変換データとして出力する。第2の8b10b変換部150は、16ビットの乱数データのうちのLSB側の8ビットの第2の乱数データを8b10b方式でコード変換し、20ビットの変換データのうちのLSB側の10ビットの第2の変換データとして出力する。
セレクター160は、分周部130のカウント値に基づいて20ビットの変換データをLSB側から1ビットずつ選択し、制御データCTLとして出力する。分周部130のカウント値は10進数で“0”〜“39”であり、セレクター160は2カウント毎に1ビットを選択する。
クロックギア選択レジスター180には、クロック信号CK_SYSとクロック信号CK_CPUの周波数比(ギア比)を選択する信号が設定される。例えば、設定値0、1、2、3が設定された場合、周波数比は1/1、1/2、1/4、1/8が設定される。
クロックギア出力部170は、制御データCTLが“0”(第2の論理レベル)の場合には、クロックギア選択レジスター180の設定値をそのまま出力し、制御データCTLが“1”(第1の論理レベル)の場合には、クロックギア選択レジスター180の設定値に1を加算して出力する。
クロック生成部190は、クロックギア出力部170からの設定値に対応する周波数比でクロック信号CK_SYSを減速し、クロック信号CK_CPUを出力する。例えば、クロックギア選択レジスター180の設定値が0の場合、制御データCTLが“0”であればクロックギア出力部170は設定値0を出力するので、クロック生成部190はクロック信号CK_SYSと同じ周波数のクロック信号CK_CPUを出力する。一方、制御データCTLが“1”であればクロックギア出力部170は設定値0+1=1を出力するので、クロック生成部190はクロック信号CK_SYSの1/2の周波数のクロック信号CK_CPUを出力する。
以上のようにして、20ビットの変換データの中からセレクター160が1ビットずつ選択することで制御データCTLを生成できる。そして、制御データCTLが“1”(第1の論理レベル)の場合にクロック信号CK_CPUの周期を増加させ、ランダムに周期が変化するクロック信号CK_CPUを生成できる。
また、8b10b方式は8ビットのデータを変換する手法であるが、その入力として8ビットの乱数データを用いた場合、乱数の数が限られてしまう。この点、16ビットの乱数データを発生し、そのMSB側の8ビットとLSB側の8ビットをそれぞれ8b10b方式でコード変換することで、乱数の数を確保し、制御データのランダム性を上げることができる。
図8に、上記のクロック供給部10及び制御データ生成部20の動作タイミングチャートを示す。
A1に示すように、分周部130は、クロック信号CK_CPUの立ち上がりでカウント値count40をカウントアップする。A2に示すように、分周部130は、カウント値count40が0の場合にシフト制御信号shift_enをアクティブ(Hレベル)にする。A3に示すように、16ビット乱数発生部120は、シフト制御信号shift_enの立ち下がりで乱数データLFSRout[15:0]を更新する。A4に示すように、第1の8b10b変換部140及び第2の8b10b変換部150は、乱数データLFSRout[15:0]を変換データ8b10boutに変換する。
A5に示すように、セレクター160は、例えばカウント値count40が34、35のときに位置(bit position)17のビットを選択する。ビット位置は0〜19で指定されるので、ビット位置17はLSB側から18番目であり、制御データCTLは“0”となる。A6に示すように、クロックギア選択レジスター180の設定値cgear_r_in[1:0]が0の場合、A7に示すように、クロックギア出力部170は、設定値cgear_r_out[1:0]=0を出力する。
A8に示すように、次のビット位置18(LSB側から19番目)では制御データCTLは“1”となる。A9に示すように、クロックギア出力部170は、設定値cgear_r_out[1:0]=1を出力する。設定値cgear_r_out[1:0]が0から1に変化するのは、A10に示すクロック信号CK_CPUの立ち上がりである。その次のA11に示す立ち上がりで、クロック生成部190は周波数比を切り替える。即ち、実際にクロック信号CK_CPUの周期が変わるのは、制御データCTLの論理レベルが変わってから、1クロック後である。
5.電子機器
図9、図10に、本実施形態のマイクロコンピューターを適用できる電子機器の構成例を示す。なお以下ではセキュリティートークンに適用した場合を例に説明するが、これに限定されず、本実施形態のマイクロコンピューターは種々の電子機器に適用できる。
電子機器200は、表示部210、マイクロコンピューター220(集積回路装置)、操作部230、記憶部240、通信部250を含む。
マイクロコンピューター220は、ユーザーが電子機器200に対して特定の操作を行った場合に、ワンタイムパスワード等のセキュリティー情報を演算し、そのセキュリティー情報を表示部210に表示させる。
例えば、サーバーとの同期を行うタイプのトークンの場合、ユーザーが端末と電子機器200を接触又は非接触の通信で接続すると、通信部250が端末と通信してサーバーから例えば鍵情報を取得し、マイクロコンピューター220は、その鍵情報を用いてセキュリティー情報を演算する。
或いは、単独でセキュリティー情報を発行するトークンの場合、記憶部240に例えば共通鍵情報が記憶されており、ユーザーが操作部230を操作する(例えばボタンを押す)と、マイクロコンピューター220は、記憶部240から共通鍵情報を読み出し、その共通鍵情報を用いてセキュリティー情報を演算する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。またクロック供給部、制御データ生成部、CPU、マイクロコンピューター、電子機器の構成・動作等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。
10 クロック供給部、20 制御データ生成部、21 乱数発生部、
22 コード変換部、30 CPU、40 ROM、50 RAM、60 バス、
70 バスコントロールユニット、110 オンオフ制御レジスター、
130 分周部、140 第1の8b10b変換部、
150 第2の8b10b変換部、160 セレクター、
170 クロックギア出力部、180 クロックギア選択レジスター、
190 クロック生成部、200 電子機器、210 表示部、
220 マイクロコンピューター、230 操作部、240 記憶部、
250 通信部、
CK_CPU,CK_SYS クロック信号、CTL 制御データ、
IDD 消費電流

Claims (7)

  1. インストラクション処理を行う処理部と、
    前記インストラクション処理の動作タイミングを変化させる制御データを生成する制御データ生成部と、
    を含み、
    前記制御データ生成部は、
    乱数データを発生する乱数発生部と、
    前記乱数データを8b10b方式で変換することで、同一論理のビットが所定数連続して発生しない前記制御データを生成する8b10b変換部を含むコード変換部と、
    を有し、
    前記処理部は、
    前記制御データに基づいて前記動作タイミングが変化する前記インストラクション処理を行うことを特徴とするマイクロコンピューター。
  2. 請求項1において、
    前記制御データに基づいて周期を変化させたクロック信号を前記処理部に供給するクロック供給部を含み、
    前記処理部が、前記クロック供給部からの前記クロック信号に基づいて前記インストラクション処理を行うことで、前記インストラクション処理の前記動作タイミングが変化することを特徴とするマイクロコンピューター。
  3. 請求項2において、
    前記クロック供給部は、
    前記制御データが第1の論理レベルの場合に前記クロック信号の周期を増加させることを特徴とするマイクロコンピューター。
  4. 請求項1において、
    バスコントロールユニットを含み、
    前記バスコントロールユニットが、前記処理部がバスにアクセスする際のアクセスタイミングを前記制御データに基づいて変化させることで、前記インストラクション処理の前記動作タイミングが変化することを特徴とするマイクロコンピューター。
  5. インストラクション処理を行う処理部と、
    前記インストラクション処理の動作タイミングを変化させる制御データを生成する制御データ生成部と、
    を含み、
    前記制御データ生成部は、
    nビット(nは2≦nの自然数)の乱数データを発生する乱数発生部と、
    前記乱数データを加工して、同一論理のビットが所定数連続して発生しない前記制御データを生成するコード変換部と、
    を有し、
    前記コード変換部は、
    前記nビットの乱数データのうちのMSB側のn/2ビットの第1の乱数データが入力される第1の8b10b変換部と、
    前記nビットの乱数データのうちのLSB側のn/2ビットの第2の乱数データが入力される第2の8b10b変換部と、
    前記第1の8b10b変換部からの第1の変換データと、前記第2の8b10b変換部からの第2の変換データと、で構成される変換データから順次1ビットずつ選択して前記制御データとして出力するセレクターと、
    を有し、
    前記処理部は、
    前記制御データに基づいて前記動作タイミングが変化する前記インストラクション処理を行うことを特徴とするマイクロコンピューター。
  6. 請求項5において、
    前記処理部にクロック信号を供給するクロック供給部を含み、
    前記クロック供給部は、
    前記セレクターにより選択されたビットが第1の論理レベルの場合、前記クロック信号の周期を増加させることを特徴とするマイクロコンピューター。
  7. 請求項1乃至のいずれかに記載されたマイクロコンピューターを含むことを特徴とする電子機器。
JP2014035037A 2014-02-26 2014-02-26 マイクロコンピューター及び電子機器 Active JP6323065B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014035037A JP6323065B2 (ja) 2014-02-26 2014-02-26 マイクロコンピューター及び電子機器
CN201510088930.1A CN104866007A (zh) 2014-02-26 2015-02-26 微型计算机以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014035037A JP6323065B2 (ja) 2014-02-26 2014-02-26 マイクロコンピューター及び電子機器

Publications (2)

Publication Number Publication Date
JP2015161969A JP2015161969A (ja) 2015-09-07
JP6323065B2 true JP6323065B2 (ja) 2018-05-16

Family

ID=53911902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014035037A Active JP6323065B2 (ja) 2014-02-26 2014-02-26 マイクロコンピューター及び電子機器

Country Status (2)

Country Link
JP (1) JP6323065B2 (ja)
CN (1) CN104866007A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10958414B2 (en) * 2016-02-23 2021-03-23 Google Llc Clock period randomization for defense against cryptographic attacks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790557A2 (en) * 1996-02-14 1997-08-20 Matsushita Electric Industrial Co., Ltd. Task managemant apparatus
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
JP3827050B2 (ja) * 1999-03-09 2006-09-27 株式会社ルネサステクノロジ Icカードと半導体集積回路装置
CN1305177A (zh) * 2000-12-08 2001-07-25 后健慈 使集成电路运作模式具有不确定性的控制方法
FR2821181A1 (fr) * 2001-02-22 2002-08-23 Schlumberger Systems & Service Procede de creation de valeurs aleatoires par un module associe a un microprocesseur
JP2003018143A (ja) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp 情報処理装置
US7149764B2 (en) * 2002-11-21 2006-12-12 Ip-First, Llc Random number generator bit string filter
JP4546339B2 (ja) * 2005-06-29 2010-09-15 キヤノン株式会社 乱数生成装置及び乱数生成方法
KR101402392B1 (ko) * 2010-08-03 2014-06-03 어드밴테스트 (싱가포르) 피티이. 엘티디. 비트열 생성기
CN103324467B (zh) * 2013-05-28 2015-09-16 戴葵 一种基于随机指令延迟的抗旁路攻击处理器架构

Also Published As

Publication number Publication date
JP2015161969A (ja) 2015-09-07
CN104866007A (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
JP2010534014A (ja) リモートコントロール赤外線信号発生器
US6145076A (en) System for executing nested software loops with tracking of loop nesting level
JP2018513635A (ja) Nベース数から物理線状態シンボルへの転換方法
US11843379B2 (en) Fractional frequency divider and flash memory controller
JP6323065B2 (ja) マイクロコンピューター及び電子機器
CN108027719B (zh) 随机时钟生成器
JP5171420B2 (ja) 擬似乱数生成装置
US8762439B2 (en) System and method for random number generation using asynchronous boundaries and phase locked loops
JP4567753B2 (ja) パリティ生成回路、計数回路および計数方法
JP2004303235A (ja) オンチップ・クロック周波数の急激な変化を可能とするオンチップ・クロック発生器
JP2001237826A (ja) パラレルランダムパタン生成回路及びそれを用いたスクランブル回路並びにデスクランブル回路
JP5031797B2 (ja) タッチパネル駆動装置およびタッチパネル装置
US9209792B1 (en) Clock selection system and method
CN111158758B (zh) 一种唤醒中央处理器的方法和装置
JP3701100B2 (ja) クロック生成回路及びクロック生成方法
JPH08139575A (ja) パルス出力回路
JP2006318002A (ja) クロック分周回路
JP2010140419A (ja) 乱数発生器および擬似乱数発生器
CN106033231B (zh) 一种信息处理方法、时钟分频装置及信息处理***
TW201447535A (zh) 節能裝置及其節能方法
US20140203884A1 (en) Numerically-Controlled Oscillator
JP2017501493A (ja) レシーバクロックのみを用いるCCIeレシーバ論理レジスタ書込み
KR20020078190A (ko) 정보 처리 시스템용 가변 주파수 클럭 발생 장치 및 방법
KR0157153B1 (ko) 난수발생 장치
JP2002236582A (ja) 乱数発生装置および確率発生装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160617

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171221

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20171221

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20171221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180326

R150 Certificate of patent or registration of utility model

Ref document number: 6323065

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150