JP2000164809A - 半導体集積回路 - Google Patents

半導体集積回路

Info

Publication number
JP2000164809A
JP2000164809A JP10355352A JP35535298A JP2000164809A JP 2000164809 A JP2000164809 A JP 2000164809A JP 10355352 A JP10355352 A JP 10355352A JP 35535298 A JP35535298 A JP 35535298A JP 2000164809 A JP2000164809 A JP 2000164809A
Authority
JP
Japan
Prior art keywords
circuit
current
semiconductor integrated
integrated circuit
value
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
Application number
JP10355352A
Other languages
English (en)
Inventor
Hiroki Shudo
啓樹 首藤
Tadao Takeda
忠雄 竹田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP10355352A priority Critical patent/JP2000164809A/ja
Publication of JP2000164809A publication Critical patent/JP2000164809A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Semiconductor Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】 付与される命令コードに応じて所定の命令を
生成する制御回路と、上記制御回路が生成した上記所定
の命令に応じて、所定の演算を実行する演算回路とによ
って構成されている半導体集積回路において、上記演算
回路における演算内容を、消費電流に基づいて類推する
ことが困難である半導体集積回路を提供することを目的
とするものである。 【解決手段】 所定時間における平均動作電流の値であ
る時間平均動作電流値が所定期間以上の間、所定の電流
値よりも減少した場合、冗長回路を動作させることによ
って、時間平均動作電流の変化量を減少させる半導体集
積回路である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CMOS同期型集
積回路において、命令コードに応じて特有の論理演算を
行う際の消費電流の時間依存性に関係する。
【0002】
【従来の技術】図3は、従来の半導体集積回路IC10
を示すブロック図である。
【0003】従来の半導体集積回路IC10は、制御回
路11と、入力レジスタ用メモリ12と、演算回路13
と、出力レジスタ用メモリ14とを有する。
【0004】制御回路11は、命令コードS0に応じて
制御信号S1を出力するものであり、メモリ12の出力
信号S2は、演算回路13の入力データである。演算回
路13は、制御信号S1に応じて、入力データS2に基
づいて信号S3を出力し、この演算された出力信号S3
は、メモリ14に格納される。なお、CKは、クロック
信号である。
【0005】ここで、従来の半導体集積回路IC10
は、べき乗剰余演算(AB modN)を行うものである
とする。ただし、A、B、Nは8ビットの値であるとす
る。
【0006】図4は、従来の半導体集積回路IC10に
おける演算回路13の構成例を示すブロック図である。
【0007】半導体集積回路IC10の演算回路13
は、8ビットレジスタ23、24、30と、1ビットレ
ジスタ31と、2入力1出力の8ビットセレクタ21、
22、29と、8ビット×8ビットの乗算器25、26
と、剰余演算器27、28とを有する。
【0008】乗算器26は制御信号値によっては、乗算
を行わない場合がある。このように乗算器26が乗算を
行わない場合、乗算器26の消費電流がゼロであるかま
たは非常に少なく、消費電流の合計を計算する場合に、
乗算器26の消費電流の値を無視することができるもの
である。これと同様に、剰余演算器28も制御信号値に
よっては、剰余演算を行わない場合がある。このように
剰余演算器28が剰余演算を行わない場合、剰余演算器
28の消費電流がゼロであるかまたは非常に少なく、消
費電流の合計を計算する場合に、乗算器26の消費電流
の値を無視することができるものである。
【0009】ところで、上記AB modNにおけるB
は、2進数では、B=277 +266 +255
44 +233 +222 +2b1 +b0 と表され
る。
【0010】また、信号S12は、上記Nに相当し、信
号S13は、b0 〜b7 の任意のビットであり、信号S
14は、上記8ビットの値Aに相当する信号である。信
号S15は、「00000001」であり、制御信号S
11は、セレクタ21、22の選択状態を決める信号で
あり、乗算器25の出力16ビット信号S22の値は、
信号S20の値の2乗である。
【0011】図5は、上記従来例における動作を示すフ
ローチャートである。
【0012】まず、関数A、B、Nを入力し(ST
1)、関数X、Y、iをそれぞれ、A、1、0にセット
する(ST2)。なお、Xは、演算回路13のレジスタ
23に格納されている値に相当する関数であり、Yは、
演算回路13のレジスタ24に格納されている値に相当
する関数である。
【0013】そして、信号iが8であれば(ST3)、
Yを出力する(ST8)。ここで、信号S13(bi
が1であれば(ST4)、XYmodNの演算結果をY
に代入し、X2 modNの演算結果をXに代入し(ST
5)、iを1インクリメントする(ST6)。信号S1
3(bi )が0であれば(ST4)、X2 modNの演
算結果をXに代入し(ST7)、iを1インクリメント
する(ST6)。
【0014】上記のように、信号S13であるb0 〜b
7 の値に応じて、演算回路13における乗算器26と剰
余演算器28とが動作するか否かが決まる。
【0015】ここで、半導体集積回路C10、演算回路
13において、べき乗剰余演算を行った場合の時間平均
動作電流の概算値を求める。
【0016】信号S13であるb0 〜b7 の任意のビッ
トをbi とすると、bi =1である場合は、演算回路1
3における乗算器25、26と剰余演算器27、28と
が同時に動作する。一方bi =0である場合は、演算回
路13における乗算器26と剰余演算器28とが動作を
停止する。
【0017】乗算器25、26のそれぞれの時間平均動
作電流をI1 とし、剰余演算器27、28のそれぞれの
時間平均動作電流をI2 とし、bi =1である場合にお
ける演算回路13全体の時間平均動作電流をI3 とし、
i =0である場合における演算回路13全体の時間平
均動作電流をI4 とすると、I3 −I4 =I1 +I2
ある。
【0018】
【発明が解決しようとする課題】演算回路13におい
て、消費電流全体に占める時間平均動作電流I1 、I2
の割合が大きいので、時間平均動作電流の変化を検出す
ると、この検出された時間平均動作電流に基づいて、乗
算器26と剰余演算器28とが動作したか、否かを判定
することができる。つまり、時間平均動作電流に基づい
て、8ビットの値Bが推測されるという問題がある。た
とえば、公開鍵暗号通信システムにおいては、AB mo
dNの演算が使用され、Bの値は秘密鍵に相当する場合
があり、上記のように時間平均動作電流に基づいて、B
が推測されると、暗号解読されるという問題がある。
【0019】図6は、上記従来例において、演算回路1
3における消費電流の変化の一例を示す図である。
【0020】図6に示す例では、b0 =1、b1 =0、
2 =1、b3 =1、b4 =0、b5 =1、b6 =0、
7 =1であるので、B=277 +266 +25
5 +244 +233 +222 +2b1+b0 =27
・1+26 ・0+25 ・1+24 ・0+23 ・1+22
・1+2・0+1=27 +25 +23 +22 +1=1
73であることが推測される。
【0021】本発明は、付与される命令コードに応じて
所定の命令を生成する制御回路と、上記制御回路が生成
した上記所定の命令に応じて、所定の演算を実行する演
算回路とによって構成されている半導体集積回路におい
て、上記演算回路における演算内容を、消費電流に基づ
いて類推することが困難である半導体集積回路を提供す
ることを目的とするものである。
【0022】
【課題を解決するための手段】本発明は、所定時間にお
ける平均動作電流の値である時間平均動作電流値が所定
期間以上の間、所定の電流値よりも減少した場合に、冗
長回路を動作させることによって、時間平均動作電流の
変化量を減少させる半導体集積回路である。
【0023】
【発明の実施の形態および実施例】図1は、本発明の一
実施例である半導体集積回路IC1を示すブロック図で
ある。
【0024】半導体集積回路IC1は、基本的には、従
来の集積回路IC10と同じであるが、電流値検出回路
15と、冗長回路16とを有する点が、従来の集積回路
IC10とは異なる。
【0025】つまり、半導体集積回路IC1は、制御回
路11と、入力レジスタ用メモリ12と、演算回路13
と、出力レジスタ用メモリ14と、電流値検出回路15
と、冗長回路16とを有する回路である。
【0026】制御信号S1は、命令コードS0に応じた
制御信号であり、演算回路13を制御する信号である。
メモリ12の出力信号S2は、演算回路13の入力デー
タであり、演算回路13の出力信号S3は、メモリ14
に格納される。CKは、クロック信号である。なお、命
令コードS0は、たとえばべき乗剰余演算命令であり、
べき乗剰余演算のA、B、N等が演算回路への入力値と
して入力される。
【0027】また、演算回路13の具体的な回路は、図
4に示す演算回路13と同じ回路である。
【0028】冗長回路16は、制御信号S4に応じて動
作する回路であり、演算回路13による演算結果に影響
を与えず、演算回路13の消費電流を増加させる冗長回
路である。
【0029】電流値検出回路15は、回路11、12、
13、14、16が動作する場合における時間平均動作
電流を検出し、この検出された電流値に応じて制御信号
S4を冗長回路16に送出する回路である。
【0030】つまり、電流値検出回路15は、半導体集
積回路IC1が命令コードに従って動作しているとき
に、演算回路13の時間平均動作電流を検出し、連続し
て第1の所定時間(N1 クロックサイクル期間)以上の
間、演算回路13の時間平均動作電流が第1の電流値以
下であることを検出した場合にのみ、冗長回路16の動
作を開始させ、一方、連続して第2の所定時間(N2
ロックサイクル期間)以上の間、演算回路13の時間平
均動作電流が、上記第1の電流値よりも大きい第2の電
流値以上であることを検出した場合に、冗長回路16の
動作を停止させる電流検出回路である。図2は、半導体
集積回路IC1における消費電流の時間応答の一例を示
す図である。
【0031】つまり、連続して所定時間T1 (N1 クロ
ックサイクル期間)以上の間、回路11、12、13、
14、16の時間平均動作電流が、規定値I5 以下にな
った場合、半導体集積回路IC1の時間平均動作電流を
増加させるように、電流値検出回路15が制御信号S4
を出力し、この制御信号S4によって冗長回路16が動
作する。ここで、冗長回路16が動作しても、演算回路
13の出力信号が変化しない。
【0032】また、連続して所定時間T2 (N2 クロッ
クサイクル期間)以上の間、回路11、12、13、1
4、16の時間平均動作電流が、規定値I6 以上になっ
た場合、半導体集積回路IC1の時間平均動作電流を減
少させるように、制御信号S4を介して、電流値検出回
路15が冗長回路16の動作を停止させる。
【0033】ここで、乗算器25、26のそれぞれの時
間平均動作電流をI1 とし、剰余演算器27、28のそ
れぞれの時間平均動作電流をI2 とし、bi =1である
場合における演算回路13全体の時間平均動作電流をI
3 とし、bi =0である場合における演算回路13全体
の時間平均動作電流をI4 とする。
【0034】そして、電流検出回路15の平均動作電流
0 に電流I4 を加えた電流値をI4 ’とし、電流検出
回路15の平均動作電流I0 に電流I3 を加えた電流値
をI3 ’とする。電流I5 は、電流I4 ’よりも大き
く、電流I3 ’よりも小さい値である。電流I6 は、電
流I3 ’よりも大きい電流値である。冗長回路16が動
作しても、演算回路13の出力信号には影響がない。
【0035】そして、I3 ’−I5 、I6 −I3 ’、T
1 、T2 をそれぞれ小さくすれば、外部から時間平均動
作電流を観測しても、電流値はほぼ一定となり、電流値
についての時間依存性がなくなる。
【0036】つまり、半導体集積回路IC1は、時間平
均動作電流の変化に基づいて内部の動作が推測されるの
を防ぐために、時間平均動作電流が所定の値以下になっ
たときに、演算には関係のない冗長回路16を動作させ
ることによって、半導体集積回路IC1全体の消費電流
の変化を小さく抑え、外部から動作を推測されないよう
にするものである。
【0037】また、上記実施例において、電流検出回路
の代わりに、冗長回路制御手段を設けるようにしてもよ
い。
【0038】上記冗長回路制御手段は、上記半導体集積
回路の時間平均動作電流を検出するものではなく、半導
体集積回路IC1が入力する命令コードと所定の入力値
に基づいて、半導体集積回路IC1の時間平均動作電流
を判断するものである。つまり、上記冗長回路制御手段
は、半導体集積回路IC1が命令コードに従って動作し
ているときに、連続して第1の所定時間(N1 クロック
サイクル期間)以上の間、半導体集積回路IC1の時間
平均動作電流が第1の電流値以下になることを、上記命
令コードと所定の入力値に基づいて、判断した場合にの
み、上記冗長回路16の動作を開始させ、一方、連続し
て第2の所定時間(N2 クロックサイクル期間)以上の
間、半導体集積回路IC1の時間平均動作電流が、上記
第1の電流値よりも大きい第2の電流値以上になること
を、上記命令コードと所定の入力値に基づいて、判断し
た場合に、冗長回路16の動作を停止させる制御手段で
ある。
【0039】上記冗長回路制御手段を使用した場合も、
上記演算回路における演算内容を、消費電流に基づいて
類推することが困難である。
【0040】また、電流検出回路15の代わりに、冗長
回路16を動作させるプログラムカウンタを設けるよう
にしてもよい。なお、上記プログラムカウンタは、特定
の命令コードにおいて、入力データに応じて連続して第
1の所定時間以上の間、時間平均動作電流が第1の電流
値以下になる上記プログラムカウンタの値をPC1
し、連続してN2 クロックサイクル期間以上、時間平均
動作電流が第2の電流値以上になる上記プログラムカウ
ンタの値をPC2 とした場合、上記プログラムカウンタ
は、その値が上記PC1 から上記PC2 になるまでの
間、冗長回路16を動作させるプログラムカウンタであ
る。
【0041】命令コードとA、B、N等の入力値とに応
じて、所定の演算が実行され、上記プログラムカウンタ
がPC1 からPC2 の期間、平均動作電流が規定の範囲
にあることが予めわかっている場合を想定し、その実行
手段としてプログラムカウンタの値に応じて冗長回路1
6を動作させる。
【0042】
【発明の効果】本発明によれば、付与される命令コード
に応じて所定の命令を生成する制御回路と、上記制御回
路が生成した上記所定の命令に応じて、所定の入力値に
対して所定の演算を実行する演算回路とによって構成さ
れている半導体集積回路において、上記演算回路におけ
る演算内容を、消費電流に基づいて類推することが困難
であるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例である半導体集積回路IC1
を示すブロック図である。
【図2】半導体集積回路IC1における消費電流の時間
応答の一例を示す図である。
【図3】従来の半導体集積回路IC10を示すブロック
図である。
【図4】従来の半導体集積回路IC10における演算回
路13の構成例を示すブロック図である。
【図5】上記従来例における動作を示すフローチャート
である。
【図6】上記従来例において、演算回路13における消
費電流の変化の一例を示す図である。
【符号の説明】
IC1…半導体集積回路、 11…制御回路、 12…入力レジスタ用メモリ、 13…演算回路、 14…出力レジスタ用メモリ、 15…電流値検出回路、 16…冗長回路。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 付与される命令コードに応じて所定の命
    令を生成する制御回路と、上記制御回路が生成した上記
    所定の命令に応じて、所定の入力値に対して所定の演算
    を実行する演算回路とによって構成されている半導体集
    積回路において、 上記演算回路による演算結果に影響を与えず、上記半導
    体集積回路における消費電流を増加させる冗長回路と;
    上記半導体集積回路が上記命令コードに従って動作して
    いるときに、上記半導体集積回路の時間平均動作電流を
    検出し、連続して第1の所定時間以上の間、上記半導体
    集積回路の時間平均動作電流が第1の電流値以下である
    ことを検出した場合にのみ、上記冗長回路の動作を開始
    させ、一方、連続して第2の所定時間以上の間、上記半
    導体集積回路の時間平均動作電流が、上記第1の電流値
    よりも大きい第2の電流値以上であることを検出した場
    合に、上記冗長回路の動作を停止させる電流検出回路
    と;を有することを特徴とする半導体集積回路。
  2. 【請求項2】 付与される命令コードに応じて所定の命
    令を生成する制御回路と、上記制御回路が生成した上記
    所定の命令に応じて、所定の入力値に対して所定の演算
    を実行する演算回路とによって構成されている半導体集
    積回路において、 上記演算回路による演算結果に影響を与えず、上記半導
    体集積回路における消費電流を増加させる冗長回路と;
    上記半導体集積回路が命令コードに従って動作している
    ときに、連続して第1の所定時間以上の間、上記半導体
    集積回路の時間平均動作電流が第1の電流値以下になる
    ことを、上記命令コードに基づいて、判断した場合にの
    み、上記冗長回路の動作を開始させ、一方、連続して第
    2の所定時間以上の間、上記半導体集積回路の時間平均
    動作電流が、上記第1の電流値よりも大きい第2の電流
    値以上になることを、上記命令コードに基づいて、判断
    した場合に、上記冗長回路の動作を停止させる冗長回路
    制御手段と;を有することを特徴とする半導体集積回
    路。
  3. 【請求項3】 請求項2において、 特定の命令コードにおいて、入力データに応じて連続し
    て上記第1の所定時間以上の間、上記時間平均動作電流
    が上記第1の電流値以下になる上記プログラムカウンタ
    の値をPC1 とし、連続して上記N2 クロックサイクル
    期間以上、時間平均動作電流が上記第2の電流値以上に
    なる上記プログラムカウンタの値をPC2 とした場合、 値が上記PC1 から上記PC2 になるまでの間、上記冗
    長回路を動作させるプログラムカウンタを有することを
    特徴とする半導体集積回路。
JP10355352A 1998-11-30 1998-11-30 半導体集積回路 Pending JP2000164809A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10355352A JP2000164809A (ja) 1998-11-30 1998-11-30 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10355352A JP2000164809A (ja) 1998-11-30 1998-11-30 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2000164809A true JP2000164809A (ja) 2000-06-16

Family

ID=18443441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10355352A Pending JP2000164809A (ja) 1998-11-30 1998-11-30 半導体集積回路

Country Status (1)

Country Link
JP (1) JP2000164809A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001237382A (ja) * 1999-12-30 2001-08-31 Infineon Technologies Ag 集積回路の電力消費調整回路装置
JP2016058817A (ja) * 2014-09-08 2016-04-21 富士通株式会社 半導体装置および半導体装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001237382A (ja) * 1999-12-30 2001-08-31 Infineon Technologies Ag 集積回路の電力消費調整回路装置
JP2016058817A (ja) * 2014-09-08 2016-04-21 富士通株式会社 半導体装置および半導体装置の制御方法

Similar Documents

Publication Publication Date Title
US20100306518A1 (en) Method for managing the reset of a data processor
US20060064453A1 (en) Modular multiplication with parallel calculation of the look-ahead parameters
JP4302640B2 (ja) 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体
US5889689A (en) Hierarchical carry-select, three-input saturation
WO2005109210A1 (ja) 消費電力解析防止機能つき半導体装置
KR19990029948A (ko) 데이터 처리장치의 사용자 프로그래머블회로
US8533517B2 (en) Clock switching circuits and methods to select from multiple clock sources
US8205097B2 (en) Microprocessor in a security-sensitive system
Diehl et al. Side-channel resistant soft core processor for lightweight block ciphers
JP2000164809A (ja) 半導体集積回路
JP2001092631A (ja) ゼロ結果検出器およびゼロ結果を検出する方法
US7216141B2 (en) Computing carry-in bit to most significant bit carry save adder in current stage
US7284029B2 (en) 4-to-2 carry save adder using limited switching dynamic logic
JP2000222170A (ja) 半導体集積回路
JP4159565B2 (ja) ベクトル積和演算回路
JP3530418B2 (ja) 乗算装置
JP2002325459A (ja) パルス幅変調信号生成装置
KR100385233B1 (ko) 데이터 프로세싱 시스템의 익스포넌트 유닛
US20240111908A1 (en) Cryptographic hardware accelerator with dummy block addressing for protection against side channel attacks
JP2665067B2 (ja) 浮動小数点加減算器
Lórencz et al. Subtraction-free almost Montgomery inverse algorithm
JP3122622B2 (ja) 除算装置
JP3557366B2 (ja) 大小比較方法および装置
JP2000283750A (ja) 検出角度データ補正方法
JP2002024004A (ja) データ処理装置およびその方法