(57)【要約】【課題】入力データの値に係わらず、演算処理中の時刻毎の消費電力を一定にする。【解決手段】ＩＣカードチップ（１）は、暗号鍵を用いて暗号化アルゴリズムを実行し、秘密情報を暗号化する暗号コプロセッサ（７）を有する。暗号コプロセッサは、２線２相符号化回路（２０）と、複数の２線２相式論理回路（７０）を有する２線２相式組合せ論理回路（２２）とを備える。２線２相符号化回路は、１線１相符号を用いた入力データ（ＳＩ）を、ビット単位で、有効データとされる論理値１（１，０）又は論理値０（０，１）とを規定する２線２相符号に変換する。２線２相式論理回路は、全ての入力コネクタに無効データであるクリア（１，１）が入力される休止相から、全ての入力コネクタに有効データが入力される稼動相に遷移するときのみ、入力コネクタに入力された論理値を、所定の論理関数により一定回数だけ反転させて、出力コネクタに有効データを確定する。【選択図】図３
2008067349.tif 000002
【特許請求の範囲】
【請求項１】
暗号鍵を用いて暗号化アルゴリズムを実行し、所望の秘密情報を暗号化するプロセッサを有する半導体集積回路であって、
前記プロセッサは、前記秘密情報とされる１線１相符号を用いた入力データを、ビット単位で、論理値１を示す第１信号と、論理値０を示す第２信号とを規定する２線２相符号を用いたデータに変換する２線２相符号化回路と、
前記２線２相符号に対応した論理演算を行う複数の２線２相式論理回路を有し、前記入力データを暗号化する２線２相式組合せ論理回路と、を備え、
前記２線２相式論理回路は、前記２線２相符号に対応する第１の信号線と第２の信号線からなる複数の入力コネクタと、出力コネクタとを有し、全ての前記入力コネクタに無効な情報であるクリア信号が入力される初期状態から、全ての前記入力コネクタに前記第１信号又は前記第２信号が入力される有効状態に遷移するときのみ、前記入力コネクタに入力された論理値を、所定の論理関数により一定回数だけ反転させて、前記出力コネクタに前記第１信号又は前記第２信号を出力する半導体集積回路。
【請求項２】
前記出力コネクタから出力された２線２相符号を用いたデータを、１線１相符号を用いたデータに変換する２線１線変換回路を、さらに備える請求項１記載の半導体集積回路。
【請求項３】
前記２線２相式論理回路は、前記初期状態から前記有効状態に遷移する途中で、少なくとも１つの前記入力コネクタに前記クリア信号が入力された状態であれば、前記出力コネクタに前記クリア信号を出力する請求項１又は請求項２記載の半導体集積回路。
【請求項４】
前記２線２相式論理回路は、前記初期状態から前記有効状態への遷移を繰返す請求項１乃至３の何れか１項記載の半導体集積回路。
【請求項５】
前記２線２相式論理回路は、前記クリア信号、前記第１信号及び前記第２信号と論理値との対応関係を切替えるモード信号に応じて、前記初期状態から前記有効状態に遷移するときに、論理値が変化する前記第１の信号線と前記第２の信号線が切り替わる請求項１乃至４の何れか１項記載の半導体集積回路。
【請求項６】
前記２線２相式組合せ論理回路の前段及び後段に、論理値を反転する否定論理回路をさらに備え、前記否定論理回路は、前記モード信号により有効又は無効とされる請求項５記載の半導体集積回路。
【請求項７】
前記モード信号は、前記２線２相式論理回路が前記初期状態になった後に、前記否定論理回路を有効にする請求項６記載の半導体集積回路。
【請求項８】
前記モード信号は、前記２線２相式論理回路での演算期間中において、前記第１の信号線と前記第２の信号線の論理値が変化する確率を略同一とするように、ランダムに切り替わる請求項５乃至７の何れか１項記載の半導体集積回路。
【請求項９】
前記２線２相符号化回路を制御する制御信号を生成する制御回路をさらに備え、
前記２線２相符号化回路は、前記制御信号に応じて、前記２線２相符号による前記クリア信号、前記第１信号及び前記第２信号を出力するタイミングを変更する請求項１記載の半導体集積回路。
【請求項１０】
前記２線２相式論理回路は、複合ゲートからなる請求項１記載の半導体集積回路。
【請求項１１】
前記２線２相式論理回路は、前記第１の信号線と前記第２の信号線にそれぞれ入力されたデータが論理変化するタイミングのうち、遅い方のタイミングを規定するタイミング信号に同期して、前記２線２相符号に対応した論理演算を開始する請求項１記載の半導体集積回路。
【請求項１２】
前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有し、
前記２線２相式論理回路は、前記入力コネクタに与えられたデータを、タイミング入力端子に与えられた複数のタイミング信号のうち最も変化の遅いタイミング信号に同期して取り込む入力ゲート回路と、
前記入力ゲート回路によって取り込まれたデータを受けて論理動作を行うロジック回路と、
前記最も変化の遅いタイミング信号を前記ロジック回路の論理動作が確定するタイミングよりも更に所定時間遅延させたタイミング信号を生成する遅延回路と、を有し、
前記遅延回路で生成されたタイミング信号は、タイミング出力端子から出力されて後段の前記２線２相式論理回路の前記タイミング入力端子に与えられ、
前記所定時間は、前記２線２相式論理回路間の配線遅延よりも長くされた請求項１記載の半導体集積回路。
【請求項１３】
前記２線２相符号化回路から出力される２線２相符号を用いたデータのビット毎に、前記初期状態から前記有効状態に遷移するタイミングを示す第１タイミング信号を生成する第１タイミング生成回路をさらに有し、
初段の前記２線２相式論理回路は、前記入力コネクタに与えられたデータのビット毎に前記第１タイミング信号を入力し、入力された前記第１タイミング信号のうち最も変化の遅い第１タイミング信号に同期して変化する第２タイミング信号を生成する第２タイミング生成回路を有し、
次段の前記２線２相式論理回路の前記入力ゲート回路は、前記第２タイミング信号に同期して前記２線２相符号を用いたデータを、前記ロジック回路に与える請求項１２記載の半導体集積回路。
【請求項１４】
前記クリア信号は“１，１”、前記第１信号は“１，０”、前記第２信号は“０，１”であり、
前記第１タイミング生成回路は、前記２線２相符号を用いたデータのビット毎に２入力の論理値が相違することを判定するゲート回路を有する請求項１３記載の半導体集積回路。
【請求項１５】
前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有し、
前記２線２相式論理回路は、前記入力コネクタに与えられたデータを、タイミング入力端子に与えられたクロック信号に同期してラッチするラッチ回路と、
前記ラッチ回路にラッチされたデータを受けて論理動作を行うロジック回路と、を有し、
前記クロック信号は、全ての前記ラッチ回路に共通に入力され、
前記クロック信号の周期は、前記ロジック回路の論理動作が確定するまでの論理遅延と、前記２線２相式論理回路間の配線遅延とを含む遅延量よりも大きい請求項１記載の半導体集積回路。
【請求項１６】
前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有し、
前記２線２相式論理回路は、前記入力コネクタに与えられたデータを、タイミング入力端子に与えられたクロック信号に同期して出力するゲート回路と、
前記ゲート回路が出力するデータを受けて論理動作を行うロジック回路と、を有し、
前記クロック信号は、初段の前記２線２相式論理回路を起点とした論理遅延が略同一とされる同一段に配置された前記２線２相式論理回路の前記ゲート回路に共通に入力され、段毎に位相が異なり、
前記クロック信号の周期は、前記ロジック回路の論理動作が確定するまでの論理遅延と、前記２線２相式論理回路間の配線遅延とを含む遅延量よりも大きい請求項１記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、消費電力や電磁波等の漏洩信号を利用した秘密情報の盗聴に対して、秘密情報の保護を可能にする２線２相式論理回路を用いた半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
スマートカードや機密を保持する電子装置等に内蔵された秘密情報を暗号化又は復号化する暗号化回路から、これらの秘密情報を暗号化するのに必要な暗号鍵を物理的な破壊をせずに取り出す方法が知られている。この方法としては、例えば非特許文献１に開示された電力差分攻撃（ＤＰＡ：Differential Power Analysis）がある。ＤＰＡは、入力データと暗号化処理に伴う消費電力に相関があることを利用して暗号鍵を推定する攻撃方法の一種である。
【０００３】
暗号化の演算Ｆが既知であるＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）等の暗号方式において、暗号文Ｏは、入力する平文Ｉ、暗号鍵Ｋを用いて、Ｏ＝Ｆ（Ｉ，Ｋ）で求められる。このため、暗号文Ｏと消費電力Ｗに相関があり、かつ、入力する平文Ｉが既知の場合には、求める暗号鍵Ｋの推定値は、暗号鍵の推定値Ｋ’が取り得る全ての値についてＦ（Ｉ，Ｋ’）と消費電力Ｗとの相関値を計算し、最も大きな相関値を与えるＫ’とすることができる。
【０００４】
電力解析攻撃は、ＤＰＡの一種であって、演算装置に入力する入力データの値と、入力データの値に対する演算処理で発生する消費電力とに相関があることで可能となる。電力解析攻撃によって暗号鍵が推定できる一つの要因は、上記暗号化回路が、ｐＭＯＳトランジスタとｎＭＯＳトランジスタをペアとしたＣＭＯＳ（Complementary Metal Oxide Semiconductor）により構成された論理素子を用いた論理回路で構成されることにある。
【０００５】
ＣＭＯＳで構成された論理素子の消費電力を、最も簡単な否定論理素子を用いて説明する。ＣＭＯＳで構成された否定論理素子では、通常、電源線ＶＤＤはｐＭＯＳトランジスタのソース端子に接続され、グランド線ＧＮＤはｎＭＯＳトランジスタのソース端子に接続され、入力信号線ＶＩＮはｐＭＯＳトランジスタとｎＭＯＳトランジスタのゲートに接続され、出力信号線ＶＯＵＴはｐＭＯＳトランジスタとｎＭＯＳトランジスタのドレイン端子に接続される。出力信号線ＶＯＵＴは、通常、次の論理素子の入力信号線ＶＩＮに接続される。ここで、否定論理素子単体の動作の説明を簡素化するために、出力信号線ＶＯＵＴにゲートと等価な容量Ｃを接続し、容量Ｃの片側の電極はグランド線ＧＮＤに接続した構成とする。
【０００６】
入力信号線ＶＩＮがＨｉｇｈ（又は１）からＬｏｗ（又は０）に変位するとき、ｐＭＯＳトランジスタはソース端子とドレイン端子間が導通状態になり、ｎＭＯＳトランジスタは非導通状態になる。電源線ＶＤＤから出力信号線ＶＯＵＴに電流が流れ容量Ｃに電荷が蓄積される。電荷が蓄積されることにより出力信号線ＶＯＵＴの電位はＨｉｇｈになる。このまま入力信号線ＶＩＮがＨｉｇｈの状態を保持すると、容量Ｃの電荷蓄積が許容量を超え、電荷の蓄積が止まり、電流が流れなくなり、出力信号線ＶＯＵＴの電位はＨｉｇｈの状態を保持する。
【０００７】
入力信号線ＶＩＮがＬｏｗからＨｉｇｈに変位するとき、ｎＭＯＳトランジスタはソース端子とドレイン端子間が導通状態になり、ｐＭＯＳトランジスタは非導通状態になる。容量Ｃに蓄積された電荷が、ｎＭＯＳトランジスタのソース端子とドレイン端子を通りグラウンド線ＧＮＤに放出される。電荷が放出されることにより電流が流れる。電荷が放出されることにより出力信号線ＶＯＵＴの電位はＬｏｗになる。このまま入力信号線ＶＩＮがＨｉｇｈの状態を保持すると、電荷がなくなり電流が流れなくなり、出力信号線ＶＯＵＴの電位はＬｏｗの状態を保持する。
【０００８】
このように、ＣＭＯＳで構成された論理素子は、容量Ｃの電荷の蓄積と放出が発生するとき、即ち出力信号線ＶＯＵＴの電位が、ＨｉｇｈからＬｏｗ、ＬｏｗからＨｉｇｈに変化するときのみ、電流が流れ電力が消費される。そして、出力信号線ＶＯＵＴの電位が変化しない間は、容量Ｃの電荷の変動がないため電力は消費されない。さらに、論理素子では、通常１つの信号線を１ビットとして表し、信号線がＨｉｇｈのときの電位が論理値１、Ｌｏｗのときの電位が論理値０と定義される。このため、全ての論理素子の出力信号線で発生する論理値の変化と、消費電力とは相関があることになる。即ち、上記論理素子を用いた演算回路には、電力解析攻撃等のＤＰＡにより、暗号鍵が容易に推定されてしまう危険性がある。
【０００９】
特許文献１，２には、ＤＰＡに対して高い安全性を得るために、演算回路に入力されたデータに対する演算処理で発生する消費電力を一定にすることで知られる２線２相符号を用いて演算処理を行う技術が開示されている。
【００１０】
【特許文献１】特表２００３−５２１２０１号公報
【特許文献２】特開２００４−３４７９７５号公報
【非特許文献１】P. Kocher, J. Jaffe, and B. Jun, Differential Power Analysis, CRYPTO '99, LNCS1666, pp. 388-397,1999
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ＣＭＯＳで構成された論理回路は、出力信号線に接続された配線の負荷容量等により入力値が確定してから入力に対する出力値が確定するまでに遅延が発生してしまう。このため、２線２相符号を用いた２線２相式論理回路をＣＭＯＳで構成した場合には、２線２相式論理回路は、２つの信号線を出力とし、さらに信号線毎に異なる負荷容量を有するので、２つの信号線の遅延時間に差が生じることになる。例えば２線２相式論理回路において、２線２相符号がクリア（１，１）、論理値０（０，１）、論理値１（１，０）の３つの状態を保持し、遅延差がある場合には、入力の論理値が確定してから出力がクリアから論理値０、論理値１いずれかの論理値に変化する時刻に差が生じる。つまり、２線２相式論理回路では、出力が論理値０と論理値１では２つの信号線の論理値が変化する時刻に差があり、その結果、電力が発生する時刻に差が生じて、入力値に対する消費電力パターンに差が生じてしまう。これでは、上記電力解析攻撃によって暗号鍵が容易に推定されてしまい、安全性が低くなってしまう。本発明者は、電力解析攻撃等のＤＰＡに対して高い安全性を得るために、入力データの値と消費電力の相関を極めて小さくする必要性を見出した。
【００１２】
これに対して、特許文献１には、２線２相符号を用いた論理演算回路が開示されているものの、入力データの値と消費電力の相関を小さくするために必要な構成が記載されていない。また、特許文献２では、個々の論理演算回路の入出力に同期信号を用いたラッチ回路を設ける必要があり、回路規模が増大してしまい、消費電力が増加するという問題があった。
【００１３】
さらに、本発明者は、２線２相符号に対応した論理演算を行う２線２相式論理回路の出力データが論理変化するタイミングは、配線遅延等によって差が生じる場合のあることを見出した。即ち、ＬＳＩの配置配線において配線の等長化並びに等容量化を実現できない場合があるからである。例えば、２線２相式論理回路の出力コネクタの２つの信号線の配線長が異なる場合には、配線による負荷容量に差が生じ、トランジスタでの充放電電流量が異なってしまう。２線２相式論理回路は、所望の論理動作を実現するために複数従属接続されているから、前段の２線２相式論理回路で生じた上記電流量の差によって、次段の２線２相式論理回路の入力コネクタの２つの信号線に与えられる電圧レベルの過渡変化に差が生じて、トランジスタがオンオフする時刻に差が生じてしまう。その結果、次段の２線２相式論理回路では、入力データが論理変化するタイミングが配線遅延によって異なることで、出力データが論理変化するタイミングに差が生じてしまう、という問題があった。このようにして、入力データが論理変化するタイミングが異なる場合であっても、入力データの値と消費電力の相関を極めて小さくする必要性が本発明者によって見出された。
【００１４】
本発明の目的は、入力データの値に係わらず、演算処理中の時刻毎の消費電力を一定にできる２線２相式論理回路を用いた半導体集積回路を提供することにある。
【００１５】
本発明の別の目的は、回路規模を増大させず、消費電力を低減できる２線２相式論理回路を用いた半導体集積回路を提供することにある。
【００１６】
本発明の更に別の目的は、入力データが論理変化するタイミングが異なる場合であっても、入力データの値に対する消費電力パターンを形成され難くする２線２相式論理回路を用いた半導体集積回路を提供することにある。
【００１７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１８】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記の通りである。
【００１９】
即ち、２線２相式組合せ論理回路に含まれる２線２相式論理回路は、全ての入力コネクタに無効データであるクリアが入力される休止相から、全ての入力コネクタに有効データが入力される稼動相に遷移するときのみ、入力コネクタに入力された論理値を、所定の論理関数により一定回数だけ反転させて、出力コネクタに有効データを確定する。これにより、全ての入力コネクタに有効データが揃うまでは、出力コネクタには有効データが確定せず、さらに入力コネクタに入力された論理値に係らず一定のトグル数を経て有効データを確定する。従って、入力データの値に係わらず、演算処理中の時刻毎の消費電力を一定にできる。
【発明の効果】
【００２０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２１】
入力データの値に係わらず、演算処理中の時刻毎の消費電力を一定にできる。また、回路規模を増大させず、消費電力を低減できる。
【発明を実施するための最良の形態】
【００２２】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２３】
本発明の代表的な実施の形態に係る半導体集積回路は、暗号鍵を用いて暗号化アルゴリズムを実行し、所望の秘密情報を暗号化するプロセッサ（７）を有する。前記プロセッサは、２線２相符号化回路（２０）と、２線２相式組合せ論理回路（２２）とを備える。２線２相符号化回路は、前記秘密情報とされる１線１相符号を用いた入力データ（ＳＩ）を、ビット単位で、論理値１を示す第１信号（１，０）と、論理値０を示す第２信号（０，１）とを規定する２線２相符号を用いたデータ（ＤＲＩ０，ＤＲＩ１）に変換する。２線２相式組合せ論理回路は、前記２線２相符号に対応した論理演算を行う複数の２線２相式論理回路（７０）を有し、前記入力データを暗号化する。前記２線２相式論理回路は、前記２線２相符号に対応する第１の信号線と第２の信号線からなる複数の入力コネクタ（（ａ０，ａ１）、（ｂ０，ｂ１））と、出力コネクタ（ｑ０，ｑ１）を有する。２線２相式論理回路は、全ての前記入力コネクタに無効な情報であるクリア信号（１，１）が入力される初期状態から、全ての前記入力コネクタに前記第１信号又は前記第２信号が入力される有効状態に遷移するときのみ、前記入力コネクタに入力された論理値を、所定の論理関数により一定回数だけ反転させて、前記出力コネクタに前記第１信号又は前記第２信号を出力する。尚、本明細書中、入力コネクタとは入力端子を意味し、出力コネクタとは出力端子を意味する。
【００２４】
上記より、２線２相式論理回路では、全ての入力コネクタに無効な情報であるクリア信号が入力された初期状態に対して、有効な情報である第１信号又は第２信号が入力されて、全ての入力コネクタに有効な情報が揃った時点で、出力コネクタに、論理関数による演算結果である有効な情報が確定される。言換えると、入力コネクタに有効な情報が入力されるときに、遅延差が生じた場合であっても、全ての入力コネクタに有効な情報が揃うまでは、出力コネクタには有効な情報が確定せず、クリア信号が入力された状態のまま変化しない。これは、有効な情報が遅延差を伴って入力コネクタに入力された場合であっても、出力コネクタの論理値が変化する時刻に差が生じないことを意味しており、論理関数による演算処理に伴う消費電力が発生する時刻に差が生じない。
【００２５】
さらに、２線２相式論理回路では、出力コネクタで確定した有効な情報は、第１信号又は第２信号に係らず、論理関数により一定回数だけ反転させることで得られる。ここで、論理関数による演算処理に伴う消費電力は、複数の論理素子が入力値を反転した回数、即ちトグル数と相関がある。このため、２線２相式論理回路のように、入力値に係らず、トグル数を一定にすれば、入力値と、入力値に対する演算処理に伴う消費電力との相関を小さくできる。従って、上記プロセッサを有する半導体集積回路によれば、有効な情報とされる秘密情報を、２線２相式論理回路の論理関数で暗号鍵を用いて演算処理により暗号化を行う場合であっても、入力値に対する演算処理に伴う消費電力を、入力値によらず時刻毎に一定にできる。その結果、プロセッサによる秘密情報の暗号化の演算処理中に、電力解析攻撃等を受けても、暗号鍵が推定される危険性を回避できる。
【００２６】
別の形態として、前記出力コネクタから出力された２線２相符号を用いたデータ（ＤＲＯ０，ＤＲＯ１）を、１線１相符号を用いたデータ（ＳＯ）に変換する２線１線変換回路（２３）を、さらに備える。上記より、２線２相式論理回路で暗号化され、出力コネクタに確定した有効な情報を、適宜の１線式の論理回路で演算可能とすることができるから、プロセッサを、１線式の論理回路を備えた適宜の半導体集積回路に適用できる。
【００２７】
更に別の形態として、前記２線２相式論理回路は、前記初期状態から前記有効状態に遷移する途中で、少なくとも１つの前記入力コネクタに前記クリア信号が入力された状態であれば、前記出力コネクタに前記クリア信号を出力する。上記より、全ての入力コネクタに有効な情報が揃うまでは、出力コネクタの論理値は変化しない。これにより、２線２相式論理回路の信号線の状態変化を抑えることができ、消費電力を低減できる。さらに、例えば入力データを同期させる同期信号や、２線２相式論理回路の入力側に同期信号を用いたラッチ回路を設ける必要がない。これにより、回路規模が増大することがなく、小型化を図ることができる。
【００２８】
更に別の形態として、前記２線２相式論理回路は、前記初期状態から前記有効状態への遷移を繰返す。上記より、隣接する有効な情報の間に無効な情報が存在するから、有効な情報のみからなる消費電力パターンが生じない。
【００２９】
更に別の形態として、前記２線２相式論理回路は、前記クリア信号、前記第１信号及び前記第２信号と論理値との対応関係を切替えるモード信号（ＭＯＤＥ）に応じて、前記初期状態から前記有効状態に遷移するときに、論理値が変化する前記第１の信号線と前記第２の信号線が切り替わる。上記より、モード信号によって、入力データの値と、入力データの値に対して論理値が変化する出力コネクタの信号線との対応関係を切替えられるから、入力データの特定の値に対応して、論理値が変化する出力コネクタの信号線が常に特定されるという事態を回避できる。これにより、入力データの値と、消費電力パターンとの相関を小さくできる。
【００３０】
更に別の形態として、前記２線２相式組合せ論理回路の前段及び後段に、論理値を反転する否定論理回路（２０１）をさらに備え、前記否定論理回路は、前記モード信号により有効又は無効とされる。上記より、否定論理回路が共に有効である場合には、クリア信号、第１信号及び第２信号を示す２線２相符号が反転された上で、２線２相式組合せ論理回路で演算され、その演算結果が更に反転される。これにより、２線２相符号の定義付けが変更された場合であっても、２線２相符号に対応した論理演算を行うことができる。また、否定論理回路が共に無効である場合には、２線２相符号の定義付けは変更されず、２線２相符号に対応した論理演算を行うことができる。
【００３１】
更に別の形態として、前記モード信号は、前記２線２相式論理回路が前記初期状態になった後に、前記否定論理回路を有効にする。上記より、２線２相式論理回路は、２線２相符号の定義付けを変更した上で初期状態から有効状態への遷移を行うことができる。
【００３２】
更に別の形態として、前記モード信号は、前記２線２相式論理回路での演算期間中において、前記第１の信号線と前記第２の信号線の論理値が変化する確率を略同一とするように、ランダムに切り替わる。上記より、２線２相式論理回路での演算期間中に、出力コネクタでの論理値の変化がランダムに切り替わるので、演算期間の一部において消費電力パターンが形成され難い。さらに、出力コネクタで演算期間中に論理値が変化する確率を第１の信号線と第２の信号線で略同一とするので、第１の信号線と第２の信号線の負荷容量に伴う遅延差を考慮する必要がなく、演算期間の全体においても、入力値に対する消費電力パターンが形成され難い。従って、演算期間中に電力解析攻撃等を受けたとしても、消費電力パターンを解析して暗号鍵を推定することが困難となる。
【００３３】
更に別の形態として、前記２線２相符号化回路を制御する制御信号（ＣＴＲＬ）を生成する制御回路（１５）をさらに備える。前記２線２相符号化回路は、前記制御信号に応じて、前記２線２相符号による前記クリア信号、前記第１信号及び前記第２信号を出力するタイミングを変更する。上記より、２線２相式論理回路が演算処理を開始するタイミングを可変にできるから、入力値に応じた演算処理に伴う消費電力パターンを生じ難くできる。
【００３４】
更に別の形態として、前記２線２相式論理回路は、複合ゲートからなる。上記より、２線２相方式論理回路を構成するトランジスタ数の低減でき、小型化を図ることができる。
【００３５】
更に別の形態として、前記２線２相式論理回路は、前記第１の信号線と前記第２の信号線にそれぞれ入力されたデータが論理変化するタイミングのうち、遅い方のタイミングを規定するタイミング信号に同期して、前記２線２相符号に対応した論理演算を開始する。上記より、第１の信号線と第２の信号線にそれぞれ入力されたデータが論理変化した後に、２線２相式論理回路の論理演算が開始されることになる。このため、入力データが論理変化するタイミングが第１の信号線と第２の信号線で異なる場合であっても、２線２相式論理回路の論理演算の結果である出力データが論理変化するタイミングに差が生じ難いので、入力データの値に対する消費電力パターンを形成され難くできる。
【００３６】
更に別の形態として、前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有する。前記２線２相式論理回路は、入力ゲート回路（１４１〜１４４）と、ロジック回路（１４６〜１５５）と、遅延回路（１５７）とを有する。入力ゲート回路は、前記入力コネクタに与えられたデータ（（ａ０，ａ１）、（ｂ０，ｂ１））を、タイミング入力端子に与えられた複数のタイミング信号（ａ２，ｂ２）のうち最も変化の遅いタイミング信号（Ａ）に同期して取り込む。ロジック回路は、前記入力ゲート回路によって取り込まれたデータを受けて論理動作を行う。遅延回路は、前記最も変化の遅いタイミング信号を前記ロジック回路の論理動作が確定するタイミングよりも更に所定時間遅延させたタイミング信号（Ｂ）を生成する。前記遅延回路で生成されたタイミング信号は、タイミング出力端子から出力されて後段の前記２線２相式論理回路の前記タイミング入力端子に与えられる。前記所定時間は、前記２線２相式論理回路間の配線遅延よりも長くされる。上記より、入力コネクタに与えられたデータが論理変化するタイミングが異なっていても、ロジック回路は、論理変化するタイミングが揃ったデータを入力ゲート回路から受けることになる。これにより、２線２相式論理回路の出力データが論理変化するタイミングに差が生じ難い。さらに、遅延回路によって遅延させられたタイミング信号が、後段の入力ゲート回路で最も変化の遅いタイミング信号を得るために用いられる。このため、後段の２線２相式論理回路においても、出力データが論理変化するタイミングに差が生じ難い。従って、複数の従属接続された２線２相式論理回路において、入力データが論理変化するタイミングが配線遅延と論理遅延により異なる場合であっても、出力データが論理変化するタイミングに差が生じ難い。
【００３７】
更に別の形態として、前記２線２相符号化回路から出力される２線２相符号を用いたデータのビット毎に、前記初期状態から前記有効状態に遷移するタイミングを示す第１タイミング信号を生成する第１タイミング生成回路（２０６）をさらに有する。初段の前記２線２相式論理回路（１４０）は、前記入力コネクタに与えられたデータのビット毎に前記第１タイミング信号を入力し、入力された前記第１タイミング信号のうち最も変化の遅い第１タイミング信号に同期して変化する第２タイミング信号（Ａ）を生成する第２タイミング生成回路（１４５）を有する。次段の前記２線２相式論理回路の前記入力ゲート回路は、前記第２タイミング信号に同期して前記２線２相符号を用いたデータを、前記ロジック回路に与える。上記より、入力ゲート回路は、データのビット毎に状態が遷移するタイミングのうち最も変化の遅いタイミングに同期して変化する第２タイミング信号を生成するから、タイミングを揃えたデータがロジック回路に与えられる。このため、初段の２線２相式論理回路においても、出力データが論理変化するタイミングに差が生じ難い。
【００３８】
更に別の形態として、前記クリア信号は“１，１”、前記第１信号は“１，０”、前記第２信号は“０，１”である。前記第１タイミング生成回路は、前記２線２相符号を用いたデータのビット毎に２入力の論理値が相違することを判定するゲート回路（２１０−１〜２１０−ｎ）を有する。上記より、第１タイミング生成回路は、クリア信号から第１信号又は第２信号に遷移するときだけ、例えば“１”を出力することにより、データのビット毎に状態が遷移するタイミングを示す第１タイミング信号を生成できる。
【００３９】
更に別の形態として、前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有する。前記２線２相式論理回路は、前記入力コネクタに与えられたデータを、タイミング入力端子に与えられたクロック信号（ＮＣＬＫ）に同期してラッチするラッチ回路（２２１〜２２４）と、前記ラッチ回路にラッチされたデータを受けて論理動作を行うロジック回路（２２５）と、を有する。前記クロック信号は、全ての前記ラッチ回路に共通に入力される。前記クロック信号の周期は、前記ロジック回路の論理動作が確定するまでの論理遅延と、前記２線２相式論理回路間の配線遅延とを含む遅延量よりも大きい。上記より、入力コネクタに入力されたデータの論理変化するタイミングが論理遅延や配線遅延により異なっていても、ロジック回路に与えられるデータの論理変化するタイミングは、ラッチ回路により揃えられる。これにより、２線２相式論理回路では、出力データが論理変化するタイミングに差が生じ難い。
【００４０】
更に別の形態として、前記２線２相式組合せ論理回路は、従属接続された複数の前記２線２相式論理回路を有する。前記２線２相式論理回路は、前記入力コネクタに与えられたデータを、タイミング入力端子に与えられたクロック信号（ＰＣＬＫ）に同期して出力するゲート回路（１４１〜１４４）と、前記ゲート回路から出力されたデータを受けて論理動作を行うロジック回路（１４６〜１５５）と、を有する。前記クロック信号は、初段の前記２線２相式論理回路を起点とした論理遅延が略同一とされる同一段に配置された前記２線２相式論理回路の前記ゲート回路に共通に入力され、段毎に位相が異なる。前記クロック信号の周期は、前記ロジック回路の論理動作が確定するまでの論理遅延と、前記２線２相式論理回路間の配線遅延とを含む遅延量よりも大きい。上記より、ロジック回路に与えられるデータの論理変化するタイミングは、同一段で共通に入力されるクロック信号に同期するゲート回路により揃えられる。これにより、出力データが論理変化するタイミングに差が生じ難い。
【００４１】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
《実施形態１》
図１には、本発明の実施形態１に係る半導体集積回路の一例であるＩＣカードチップの構成が例示される。ＩＣカードチップ１は、例えば入出力回路２、中央処理装置（ＣＰＵ）３、制御回路４、データメモリ５、プログラムメモリ６、暗号コプロセッサ７及びデータバス８を備える。制御回路４は、入出力回路２、ＣＰＵ３、データメモリ５、プログラムメモリ６、暗号コプロセッサ７、データバス８が協調して動作するように制御する。ＣＰＵ３は、プログラムメモリ６に記憶されたプログラムに応じて、入出力回路２、データメモリ５、暗号コプロセッサ７間のデータを、データバス８を介して入出力すると共に、上記プログラムに応じて上記データの演算処理を行う。
【００４２】
図２には、暗号コプロセッサ７の構成が例示される。暗号コプロセッサ７は、ＣＰＵ３の演算を補助して高速処理を行う暗号・認証専用の演算回路であって、例えば適宜のメモリに格納されていた暗号鍵を読出し、この暗号鍵を用いて暗号化アルゴリズムを実行して、秘密情報を暗号化する。暗号コプロセッサ７は、バス変換回路１０、データレジスタ１１、２線２相式演算回路１４、制御回路１５を備える。制御回路１５は、以下の処理を制御する。即ち、暗号コプロセッサ７でデータ処理を行うデータである秘密情報は、データバス８からバス変換回路１０を介して、一時的にデータを記憶するデータレジスタ１１に一時記憶される。データレジスタ１１に記憶されたデータは、２線２相式演算回路１４に入力され、暗号化される。２線２相式演算回路１４の出力である暗号化された秘密情報は、データレジスタ１１に一時記憶される。データレジスタ１１に記憶された暗号化された秘密情報は、バス変換回路１０を介してデータバス８に出力される。
【００４３】
図３には、２線２相式演算回路１４の構成が例示される。図２６には、２線２相式演算回路１４における論理値と２線２相符号の対応関係が例示されている。ここでは、論理値１を（１，０）、論理値０を（０，１）、クリアを（１，１）とそれぞれ規定する２線２相符号が用いられる。但し、これは、２線２相符号に割り当てる２つの信号線の値を限定するものではない。以下では、この論理値１、論理値０を２線２相符号の有効データといい、クリアを無効データという。２線２相式演算回路１４は、２線２相符号化回路２０、２線２相式組合せ論理回路２２、２線１線変換回路２３を備える。２線２相符号化回路２０は、論理値を１ビットで表した１線１相符号を用いた入力データＳＩを、ビット単位で、２線２相符号に変換して出力する回路であって、その出力タイミングは制御回路１５で生成される制御信号ＣＴＲＬにより制御される。また、入力データＳＩは、秘密情報とされる。２線２相式組合せ論理回路２２は、２線２相符号に対応した論理演算を行う複数の２線２相式論理回路（図７〜図１０参照）を有しており、２線２相符号で表されたデータが入力されると、この２線２相式論理回路を用いて論理演算処理を行い、論理演算処理の結果を２線２相符号で表されたデータで出力する。これは、暗号コプロセッサ７での暗号鍵を用いた秘密情報の暗号化が、２線２相符号による論理演算で行われることを意味している。２線１線変換回路２３は、２線２相式組合せ論理回路２２から出力された２線２相符号で表されたデータを入力し、２線２相符号の有効データを、１ビットの論理値で表される１線１相符号を用いたデータＳＯに変換して出力する。
【００４４】
図４には、２線２相符号化回路２０の構成が例示される。２線２相符号化回路２０は、Ｄフリップフロップ５０−１〜５０−ｎ、２入力ＯＲ論理素子５２−１〜５２−ｎ、５３−１〜５３−ｎを備える。ここで、図６のタイミングチャートを用いて２線２相符号化回路２０の動作を説明する。２線２相符号化回路２０は、ｎ個の１と０の値を有する１ビットからなる秘密情報とされる入力データＳＩを入力し、同期信号ＣＬＫの立ち上がりに同期して入力データＳＩを、ビット毎にＤフリップフロップ５０−１〜５０−ｎにより保持し、Ｄフリップフロップ５０−１〜５０−ｎの出力Ｑと出力ＱＮにより、２線２相符号の有効データとされる論理値０（０，１）又は論理値１（１，０）が出力される。
【００４５】
また、２入力ＯＲ論理素子５２−１〜５２−ｎの一方の入力には、Ｄフリップフロップ５０−１〜５０−ｎの出力Ｑが接続される。２入力ＯＲ論理素子５３−１〜５３−ｎの一方の入力には、Ｄフリップフロップ１５０−１〜５０−ｎの出力ＱＮが接続される。さらに、２入力ＯＲ論理素子５２−１〜５２−ｎ、５３−１〜５３−ｎの他方の入力には、それぞれ制御信号ＣＴＲＬが入力される。これにより、２線２相符号化回路２０は、制御信号ＣＴＲＬが０であれば、２線２相式符号による出力データ（ＤＲＩ０，ＤＲＩ１）としてＤフリップフロップ５０−１〜５０−ｎの出力Ｑ、ＱＮの値である論理値０（０，１）又は論理値１（１，０）を出力する。このとき、２線２相式組合せ論理回路２２に有効データが入力される。以下では、この状態を稼動相という。また、２線２相符号化回路２０は、制御信号ＣＴＲＬが１であれば、２線２相式符号による出力データ（ＤＲＩ０，ＤＲＩ１）としてクリア（１，１）を出力する。このとき、２線２相式組合せ論理回路２２に無効データが入力される。以下では、この状態を休止相という。このように、制御信号ＣＴＲＬの周期により、休止相から稼動相への遷移が繰返されるから、隣接する稼動相の間には休止相があり、有効データの間に無効データが存在することになって、有効データが連続しない。これにより、有効データのみからなる消費電力パターンが生じない。また、制御信号ＣＴＲＬの周期は、固定でなく変化させてもよい。これにより、２線２相符号化回路２０が２線２相符号による出力データ（ＤＲＩ０，ＤＲＩ１）を出力するタイミングを可変とし、休止相と稼動相が切り替わるタイミングを変更できる。また、２線２相符号化回路２０の入力データＳＩの各ビット毎独立に、異なる周期の制御信号ＣＴＲＬを与えるようにしてもよい。
【００４６】
図５には、２線１線変換回路２３の構成が例示されている。２線１線変換回路２３は、Ｄフリップフロップ５１−１〜５１−ｎを備えている。ここで、図６のタイミングチャートを用いて、２線１線変換回路２３の動作を説明する。２線２相符号を有する２つの信号線において、一方の信号線をＤフリップフロップ５１−１〜５１−ｎに入力し、同期信号ＣＬＫの立ち上がりで、Ｄフリップフロップ５１−１〜５１−ｎに入力した値を保持して出力する。即ち、２線１線変換回路２３は、一方の信号線から入力された値、即ち２線２相式組合せ論理回路２２の出力データ（ＤＲＯ０，ＤＲＯ１）を２線２相符号の有効データの値で保持することにより、１ビットの信号線に変換し、例えばデータレジスタ１１にデータＳＯとして出力する。また、２線１線変換回路２３は、Ｄフリップフロップ５０−１〜５０−ｎに入力データの有効データを保持するタイミングにおいて、入力データの２線２相符号がクリア（１，１）又は未使用（０，０）であれば、２線２相式組合せ論理回路２２の動作が異常であると判断することもできる。
【００４７】
次に、２線２相式組合せ論理回路２２に含まれる２線２相式論理回路の一例として、２線２相符号を用いてＡＮＤ論理演算を行う２線２相式ＡＮＤ論理回路と、２線２相符号を用いてＸＯＲ論理演算を行う２線２相式ＸＯＲ論理回路の詳細を説明する。図７には、２線２相式組合せ論理回路２２に含まれる２線２相式ＡＮＤ論理回路の構成が例示されている。２線２相式ＡＮＤ論理回路７０は、２入力ＮＯＲ論理素子７１〜７４と、３入力ＮＯＲ論理素子７５、７６とを備える。これらの論理素子７１〜７６は、ＣＭＯＳを用いて構成されている。２線２相式ＡＮＤ論理回路７０は、２線２相符号で表される入力データ（ａ０，ａ１）、（ｂ０，ｂ１）がそれぞれ入力される第１の信号線と第２の信号線からなる２つの入力コネクタと、出力データ（ｑ０，ｑ１）が出力される第１の信号線と第２の信号線からなる１つの出力コネクタとを有する。図２７には、２線２相式ＡＮＤ論理回路７０についての入力と出力の関係が２線２相符号で例示されている。この対応関係について図１１を用いて詳述する。
【００４８】
図１１には、２線２相式ＡＮＤ論理回路７０の出力を示すカルノー図が例示されている。図中、〔１〕〜〔９〕は、出力コネクタからの出力データ（ｑ０，ｑ１）を示しており、〔１〕は休止相、〔２〕〔４〕〔７〕〔９〕は稼動相、〔３〕〔５〕〔６〕〔８〕は、休止相から稼動相への遷移の途中を示す中間状態を、それぞれ示している。以下、入力データ（ａ０，ａ１）かつ入力データ（ｂ０，ｂ１）がクリア（１，１）である休止相から、論理値０又は論理値１である稼動相に遷移したときの動作を説明する。ここで、入力データ（ａ０，ａ１）又は入力データ（ｂ０，ｂ１）がクリアから論理値０又は論理値１に遷移する時刻が同時でないとする。例えば入力データ（ａ０，ａ１）が入力データ（ｂ０，ｂ１）よりも先にクリアから論理値０又は論理値１に遷移したとき、出力データ（ｑ０，ｑ１）は、中間状態である〔３〕、〔８〕に遷移する。次に、入力データ（ｂ０，ｂ１）が入力データ（ａ０，ａ１）に遅れて、クリアから論理値０又は論理値１に遷移したとき、出力データ（ｑ０，ｑ１）は〔２〕、〔４〕、〔７〕、〔９〕のいずれかの状態に遷移する。
【００４９】
一方、入力データ（ｂ０，ｂ１）が入力データ（ａ０，ａ１）よりも先にクリアから論理値０又は論理値１に遷移したとき、出力データ（ｑ０，ｑ１）は中間状態である〔５〕、〔６〕に遷移する。次に、入力データ（ａ０，ａ１）が入力データ（ｂ０，ｂ１）に遅れて、クリアから論理値０又は論理値１に遷移したとき、出力データ（ｑ０，ｑ１）は〔２〕、〔４〕、〔７〕、〔９〕のいずれかの状態に遷移する。
【００５０】
以下、２線２相式ＡＮＤ論理回路７０において、出力データ（ｑ０，ｑ１）が変化する時刻が一定であり、かつ、この出力データ（ｑ０，ｑ１）が確定されるときの消費電力が一定になることを説明する。図１１において、入力がクリア（１，１）から論理値０（０，１）又は論理値１（１，０）に変化するとき、休止相〔１〕において２入力ＮＯＲ論理素子７１〜７４の出力は０であり、中間状態〔３〕、〔５〕、〔６〕、〔８〕において、２入力ＮＯＲ論理素子７１〜７４の出力は０であり、稼動相〔２〕、〔４〕、〔７〕、〔９〕において２入力ＮＯＲ論理素子７１〜７４のいずれかの出力が１になり、３入力ＮＯＲ論理素子７５、７６のいずれかが１になる。即ち、２線２相式ＡＮＤ論理回路７０では、休止相から稼動相に遷移するとき、同一段に配置された２入力ＮＯＲ論理素子７１〜７４のいずれかの出力と、同一段に配置された３入力ＮＯＲ論理素子７５、７６のいずれかの出力との２つの出力のみが必ず反転する。これにより、トグル数が固定となり、入力値に係らず常に消費電力が一定となる。トグル数とは、所定の論理関数により論理値が反転される回数をいう。また、２線２相式ＡＮＤ論理回路７０では、上記のように、同一段に配置された論理素子のいずれかの出力だけが反転するように複数の論理素子を配置しているから、トグルする論理素子の数を少なくして、消費電力を削減できる。
【００５１】
要するに、２線２相式ＡＮＤ論理回路７０は、休止相〔１〕から稼動相〔２〕、〔４〕、〔７〕、〔９〕に遷移するときのみ、言換えると全ての入力コネクタに有効データが揃った時点で、入力コネクタの入力データの論理値を、上記複数の論理素子７１〜７６からなる論理関数により一定回数、ここでは２回だけ反転させて、出力コネクタに有効データを確定する。また、全ての入力コネクタに有効な情報が揃う前は、出力コネクタは上記休止相〔１〕、中間状態〔３〕、〔５〕、〔６〕、〔８〕に示されるように無効データを出力する。これにより、２線２相式ＡＮＤ論理回路７０における信号線の状態変化を抑えることができるから、消費電力を低減できる。さらに、有効データが遅延して入力コネクタに入力された場合であっても、出力コネクタの論理値が変化する時刻に差が生じず、その結果、論理関数による演算処理に伴う消費電力が発生する時刻に差が生じない。これは、２線２相式ＡＮＤ論理回路７０では、全ての入力コネクタの遅延差を考慮する必要がないことを意味している。このため、例えば入力データ（ａ０，ａ１）、（ｂ０，ｂ１）を同期させる同期信号や、２線２相式ＡＮＤ論理回路７０の入力側に同期信号を用いたラッチ回路を設ける必要がないから、回路規模が増大することがなく、小型化を図ることができる。
【００５２】
さらに、２線２相式ＡＮＤ論理回路７０では、入力データの値に係らず、一定のトグル数を経て出力コネクタに有効データが確定される。これは、消費電力が、ＣＭＯＳで構成された複数の論理素子７１〜７６でのトグル数と相関があることを考慮すれば、入力データの値と、入力データの値に対する演算処理に伴う消費電力との相関を小さくできることを意味する。従って、暗号コプロセッサ７によれば、２線２相式ＡＮＤ論理回路７０を用いて秘密情報の暗号化に伴う論理演算を行うことにより、入力データの値に係らずトグル数を固定とするから、入力データに対する演算処理に伴う消費電力を、入力データの値に係らず、時刻毎に一定にできる。これにより、暗号コプロセッサ７での暗号化に伴う論理演算中に、入力値と論理演算中に発生する消費電力を利用して解析を行う電力解析攻撃によって、暗号鍵が推定されることがなく、高い安全性を得ることができる。
【００５３】
これに対して、１本の信号線で１ビットを表し、信号線の状態がそのまま１ビットのデータ値に対応する１線１相符号を用いた適宜の１線式の演算回路を用いて、秘密情報の暗号化を行った場合には、１線式の演算回路の入力データと、入力データに対する演算処理で発生する消費電力とに相関が生じてしまい、電力解析攻撃等により暗号鍵を容易に推定されてしまう。
【００５４】
以上、２線２相式ＡＮＤ論理回路７０において、２線２相符号のクリアを（１，１）とした例を示したが、２線２相符号のクリアを（０，０）とした場合について図９を用いて説明する。図９には、２線２相式組合せ論理回路２２に含まれる別の２線２相式ＡＮＤ論理回路の構成が例示されている。２線２相式ＡＮＤ論理回路８０は、２入力ＮＡＮＤ論理素子８１〜８４と、３入力ＮＡＮＤ論理素子８５、８６とを備える。図１３には、２線２相式ＡＮＤ論理回路８０の出力を示すカルノー図が例示されている。２線２相式ＡＮＤ論理回路８０は、図１３のカルノー図に従って構成されており、図中、〔１〕〜〔９〕は、上記図１１と同様に、出力コネクタからの出力データ（ｑ０，ｑ１）を示しており、〔１〕は休止相、〔２〕〔４〕〔７〕〔９〕は稼動相、〔３〕〔５〕〔６〕〔８〕は中間状態を、それぞれ示している。そして、２線２相式ＡＮＤ論理回路８０は、２線２相式ＡＮＤ論理回路７０と同様に、休止相から稼動相に遷移するときのみ、入力データの値に係らず、一定のトグル数を経て出力コネクタに有効データを確定する。従って、２線２相式ＡＮＤ論理回路８０によれば、入力データの値とそれに伴う消費電力との相関を小さくでき、電力解析攻撃により暗号鍵が推定されることを回避できる。
【００５５】
図８には、２線２相式組合せ論理回路２２に含まれる２線２相式ＸＯＲ論理回路の構成が例示されている。２線２相式ＸＯＲ論理回路９０は、２入力ＮＯＲ論理素子９１〜９６を備える。図１２には、２線２相式ＸＯＲ論理回路９０の出力を示すカルノー図が例示されている。２線２相式ＸＯＲ論理回路９０は、図１２のカルノー図に従って構成される。２線２相式ＸＯＲ論理回路９０は、２線２相式ＡＮＤ論理回路７０と同様に、休止相から稼動相に遷移するときのみ、入力データの値に係らず、一定のトグル数を経て出力コネクタに有効データを確定する。
【００５６】
ここで、上記２線２相式ＸＯＲ論理回路９０において、２線２相符号のクリアを（１，１）とした例を示したが、（０，０）とした場合について図１０を用いて説明する。図１０には、２線２相式組合せ論理回路２２に含まれる更に別の２線２相式ＸＯＲ論理回路の構成が例示されている。２線２相式ＸＯＲ論理回路１００は、２入力ＮＡＮＤ論理素子１０１〜１０６を備える。図１４には、２線２相式ＸＯＲ論理回路１００の出力を示すカルノー図が例示されている。２線２相式ＸＯＲ論理回路１００は、図１４のカルノー図に従って構成される。２線２相式ＸＯＲ論理回路１００は、２線２相式ＡＮＤ論理回路７０と同様に、休止相から稼動相に遷移するときのみ、入力データの値に係らず、一定のトグル数を経て出力コネクタに有効データを確定する。
【００５７】
《実施形態２》
図１５には、本発明の実施形態２に係る論理演算回路の一例である２線２相式演算回路の構成が例示されている。以下、図２で例示した２線２相式演算回路１４と重複する機能等については同一符号を付し、適宜説明を省略する。２線２相式演算回路２００は、例えば２つの否定論理回路２０１、２線２相符号化回路２１、２線２相式組合せ論理回路２０２、２線１線変換回路２３を備えている。図２８には、２線２相式演算回路２００についての論理値と２線２相符号の対応関係が例示されている。２線２相式演算回路２００では、２線２相符号を切替え信号ＭＯＤＥの値により、ＭＯＤＥ＝０ならば（０，１）を論理値０、（１，０）を論理値１とし、ＭＯＤＥ＝１ならば（０，１）を論理値１、（１，０）を論理値０として論理演算を行う。要するに、否定論理回路２０１は、入力される全ての信号線の論理値を、切替え信号ＭＯＤＥが１のとき否定論理して出力する。切替え信号ＭＯＤＥは、例えば制御回路１５により生成され、図１７のタイミングチャートのように与えられる。
【００５８】
図１６には、否定論理回路２０１の構成が例示されている。否定論理回路２０１は、ＸＯＲ論理素子５４−１〜５４−ｍを備える。入力されるｍ個の入力信号線ＩＮは、ＸＯＲ論理素子５４−１〜５４−ｍに接続され、切替え信号ＭＯＤＥが１のとき、ＸＯＲ論理素子５４−１〜５４−ｍは、入力信号線ＩＮの論理値を否定して出力するように動作する。
【００５９】
２線２相式組合せ論理回路２０２は、２線２相符号による論理演算を行う２線２相式論理回路（図１８、図１９参照）を有しており、２線２相符号で表されたデータが入力されると、この２線２相式論理回路を用いて論理演算処理を行い、論理演算処理の結果を２線２相符号で表されたデータで出力する。
【００６０】
これにより、２線２相式演算回路２００では、否定論理回路２０１が共に有効である場合には、論理値と２線２相符号との対応関係が反転された上で、入力データＳＩが２線２相符号化回路２１で２線２相符号に変換された後、２線２相式組合せ論理回路２０２で演算され、その演算結果である２線２相符号で表されたデータが更に反転される。従って、２線２相式演算回路２００によれば、２線２相符号の定義付けが変更された場合であっても、２線２相符号に対応した論理演算を行うことができる。また、否定論理回路２０１は、２線２相式組合せ論理回路２０２に含まれる２線２相式論理回路が休止相になった後に有効とされる。このようにすれば、２線２相式演算回路２００は、２線２相符号の定義付けを変更した上で、２線２相式論理回路における休止相から稼動相への遷移を行うことができる。一方、２線２相式演算回路２００は、否定論理回路２０１が共に無効である場合には、２線２相符号の定義付けは変更されず、上記２線２相式演算回路１４と同様な論理演算を行うことができる。
【００６１】
次に、２線２相式組合せ論理回路２０２に含まれる切替え信号ＭＯＤＥを入力する２線２相式論理回路の一例として、２線２相符号を用いてＡＮＤ論理演算を行う２線２相式ＡＮＤ論理回路と、２線２相符号を用いてＸＯＲ論理演算を行う２線２相式ＸＯＲ論理回路を説明する。図１８には、２線２相式組合せ論理回路２０２に含まれる２線２相式ＡＮＤ論理回路の構成が例示されている。２線２相式ＡＮＤ論理回路１３０は、２入力ＮＯＲ論理素子１３１〜１３２と、３入力ＮＯＲ論理素子１３３〜１３８とを備える。ｃは切替え信号ＭＯＤＥと同じ値であり、ｃｎは切替え信号ＭＯＤＥの論理値を否定した値である。
【００６２】
図２０には、２線２相式ＡＮＤ論理回路１３０の動作を示すカルノー図が例示されている。２線２相式ＡＮＤ論理回路１３０は、図２０のカルノー図に従って構成される。２線２相式ＡＮＤ論理回路１３０は、図示のように、休止相から稼動相に遷移するときに、切替え信号ＭＯＤＥに応じて、論理値が変化する第１の信号線と第２の信号線を切替える。これにより、入力データの特定の値に対応して、論理値が変化する出力コネクタの信号線が常に特定されるという事態を回避できる。例えば２線２相式ＡＮＤ論理回路１３０は、図１８においてｃが０ならば、２線２相式ＡＮＤ論理回路として動作し、ｃが１ならば２線２相式ＯＲ論理回路として動作する。これは、論理回路の論理関数がＡＮＤ（論理積）であるとき、「＆」をＡＮＤ（論理積）として、論理関数を「Ｚ＝Ｘ＆Ｙ」とすると、入出力の論理値を否定した場合、「Ｚ＝Ｘ＆Ｙ」と等価な論理関数は、「−」を入出力の論理値の否定とし、「Ｖ」をＯＲ（論理和）とすれば、「−Ｚ＝−ＸＶ−Ｙ」となることから明らかである。言換えると、否定論理回路２０１で入出力の論理値を否定すると共に、２線２相式論理回路の論理関数をＡＮＤ（論理積）に対してＯＲ（論理和）に切替えることで、否定論理回路２０１が共に有効である場合での２線２相式ＡＮＤ論理回路１３０と等価な論理関数を得ることができる。
【００６３】
また、切替え信号ＭＯＤＥは、２線２相式ＡＮＤ論理回路１３０での演算期間中において、第１の信号線と第２の信号線の論理値が変化する確率を略同一とするように、ランダムに切替えられる。これにより、２線２相式ＡＮＤ論理回路１３０による演算期間の一部に注目した場合に、切替え信号ＭＯＤＥがランダムに切替えられることで、入力値に対する消費電力パターンが形成され難い。さらに、２線２相式ＡＮＤ論理回路１３０による演算期間の全体に注目した場合であっても、第１の信号線と第２の信号線で論理値が変化する確率が略同一となるので、入力値に対する消費電力パターンが形成され難い。従って、２線２相式演算回路２００によれば、演算期間中に電力解析攻撃等を受けたとしても、消費電力パターンを解析して暗号鍵を推定することが困難となる。
【００６４】
図１９には、２線２相式組合せ論理回路２０２に含まれる２線２相式ＸＯＲ論理回路の構成が例示されている。２線２相式ＸＯＲ論理回路１１０は、２入力ＮＯＲ論理素子１１１〜１１６と、２入力ＮＡＮＤ論理素子１１７〜１２２とを備える。図２１には、２線２相式ＸＯＲ論理回路１１０の動作を示すカルノー図が例示されている。２線２相式ＸＯＲ論理回路１１０は、図２１のカルノー図に従って構成される。要するに、２線２相式ＸＯＲ論理回路１１０は、図１９においてｃが０ならば、２線２相式ＸＯＲ論理回路として動作し、ｃが１ならば２線２相式ＸＮＯＲ論理回路として動作する。従って、２線２相式ＸＯＲ論理回路１１０を用いた２線２相式演算回路２００によれば、上記同様に、電力解析攻撃等に対する高い安全性を確保できる。
【００６５】
配線遅延等により２線２相式論理回路の１ビット毎の入力データで論理値が変化するタイミングに差を生ずると、そのために出力データが論理変化するタイミングに無視し得ない差が生じてしまう場合がある。具体的には、複数の２線２相式論理回路は、所定の論理動作を実現するために従属接続されており、配線遅延等がある場合には図２９に示すように、例えば１ビットの入力データ（ａ０，ａ１）でのａ０とａ１で、論理値が変化する時刻に差Ｄ１が生じる。さらに、この２線２相式論理回路では、差Ｄ１に応じて１ビットの出力データ（ｑ０，ｑ１）でのｑ０とｑ１で論理値が変化するタイミングに差Ｄ２が生じてしまう。この差Ｄ２が大きくなり過ぎてしまうと、入力値に対する消費電力パターンが形成される可能性がある。このため、実施形態１，２では、ＩＣレイアウト時における２線２相式論理回路の出力コネクタの第１の信号線と第２の信号線の配線長を等しくして、負荷容量や配線抵抗等の遅延に影響する素子のばらつきを制御すればよい。しかし、これではＩＣレイアウトにおいて配線長を等しくするための余計な工程が必要となってしまう。
【００６６】
以下に示す各実施形態は、入力データが論理変化するタイミングが配線遅延等によって異なってしまうことを想定し、このような場合であっても、入力データの値に対する消費電力パターンを形成され難くするための構成を有する。
【００６７】
《実施形態３》
図３０には、本発明の実施形態３に係る論理演算回路の一例である２線２相式演算回路の構成が例示されている。以下、図１５で例示した２線２相式演算回路２００と重複する機能等については同一符号を付し、適宜説明を省略する。２線２相式演算回路２０５は、例えば２つの否定論理回路２０１、２線２相符号化回路２１、同期生成回路２０６、２線２相式組合せ論理回路２０７、２線１線変換回路２３等を備えている。否定論理回路２０１は、入力される全ての信号線の論理値を、切替え信号ＭＯＤＥが１のとき否定論理して出力する。切替え信号ＭＯＤＥは、例えば制御回路１５により生成され、図１７のタイミングチャートのように与えられる。そして、２線２相式演算回路２０５では、実施形態２と同様に２線２相符号を切替え信号ＭＯＤＥの値により、ＭＯＤＥ＝０ならば（０，１）を論理値０、（１，０）を論理値１とし、ＭＯＤＥ＝１ならば（０，１）を論理値１、（１，０）を論理値０として論理演算を行う。
【００６８】
図３１には、同期生成回路２０６の構成が例示されている。同期生成回路２０６は、ＸＯＲ論理素子２１０−１〜２１０−ｎ等を有する。ＸＯＲ論理素子２１０−１〜２１０−ｎには、２線２相符号化回路２１の出力データ（ＤＲＩ０，ＤＲＩ１）が１ビット毎にそれぞれ入力され、図３２に示す真理値表に従い、第１タイミング信号ＴＳを生成する。第１タイミング信号ＴＳは、出力データ（ＤＲＩ０，ＤＲＩ１）として例えばクリア（１，１）が入力された後に、論理値０（０，１）又は論理値１（１，０）が入力されることで“１”とされるので、データのビット毎に状態が遷移するタイミングに同期した信号とされる。また、同期生成回路２０６は、ｎビットの出力データ（ＤＲＩ０，ＤＲＩ１）をそのまま２線２相式組合せ論理回路２０７に出力する。
【００６９】
２線２相式組合せ論理回路２０７は、所望の論理動作を実現するために、従属接続された複数の２線２相式論理回路を有している。図３３には、２線２相符号を用いてＡＮＤ論理演算を行う２線２相式ＡＮＤ論理回路の構成が例示される。同期生成回路２０６は、ｎビットの出力データ（ＤＲＩ０，ＤＲＩ１）を２線２相式組合せ論理回路２０７に出力するが、ここでは代表的に２ビットの出力データ（（ＤＲＩ０[１]，ＤＲＩ１[１]）、（ＤＲＩ０[２]，ＤＲＩ１[２]））を入力データ（（ａ０，ａ１）、（ｂ０，ｂ１））として例示する。またこれに対応して、図３３には第１タイミング信号ＴＳ[１]，ＴＳ[２]が代表的に例示される。２線２相式ＡＮＤ論理回路１４０は、入力データ（（ａ０，ａ１）、（ｂ０，ｂ１））が入力される入力コネクタと、第１タイミング信号ＴＳ[１]，ＴＳ[２]が入力されるタイミング入力端子等を有し、さらに上記切替え信号ＭＯＤＥと同じ値を示すｃと、切替え信号ＭＯＤＥの論理値を否定した値を示すｃｎとが入力される。第１タイミング信号ＴＳ[１]は、図３４に示すように、入力データ（ａ０，ａ１）の状態が遷移するタイミングのうち遅い方、即ちａ０に同期して“１”とされる。また、第２タイミング信号ＴＳ[２]は、入力データ（ｂ０，ｂ１）の状態が遷移するタイミングのうち遅い方、即ちｂ０に同期して“１”とされる。
【００７０】
２線２相式ＡＮＤ論理回路１４０は、２入力ＮＡＮＤ論理素子１４５と、入力ゲート回路１５８と、ロジック回路１５９と、遅延回路１５７等を有する。さらに２線２相式ＡＮＤ論理回路１４０は、出力データ（ｑ０，ｑ１）を出力する出力コネクタと、後述する遅延信号Ｂを出力するタイミング出力端子等を有する。２入力ＮＡＮＤ論理素子１４５には、第１タイミング信号ＴＳ[１]，ＴＳ[２]が入力され、図３４に示すように、入力された第１タイミング信号ＴＳ[１]，ＴＳ[２]のうち最も変化の遅いタイミング、ここでは第１タイミング信号ＴＳ[１]に同期して変化し、“１”とされる第２タイミング信号Ａを生成する。第２タイミング信号Ａは、入力ゲート回路１５８に入力される。
【００７１】
入力ゲート回路１５８は、２入力ＮＯＲ論理素子１４１〜１４４を有する。２入力ＮＯＲ論理素子１４１〜１４４には、上記入力データとされるａ０，ａ１，ｂ０，ｂ１がそれぞれ入力され、第２タイミング信号Ａが制御信号として共通に入力される。このようにすれば、２入力ＮＯＲ論理素子１４１〜１４４は、第２タイミング信号Ａに同期してａ０，ａ１，ｂ０，ｂ１を取込み、図３４に示すように、論理変化するタイミングが揃ったデータａ０´，ａ１´，ｂ０´，ｂ１´をロジック回路１５９に出力する。ロジック回路１５９は、２入力ＮＡＮＤ論理素子１４６，１４７、３入力ＮＡＮＤ論理素子１４８〜１５３、否定論理素子１５４，１５５等からなり、データａ０´，ａ１´，ｂ０´，ｂ１´を受けて論理動作を行い、その論理動作の結果を出力コネクタから出力データ（ｑ０，ｑ１）として、次段の２線２相式論理回路（不図示）の入力コネクタに出力する。出力データ（ｑ０，ｑ１）は、入力ゲート回路１５８からタイミングが揃ったデータａ０´，ａ１´，ｂ０´，ｂ１´を受けたロジック回路１５９による論理演算の結果であるから、図３４に示すように論理変化するタイミングに差が生じ難い。これにより、従属接続された複数の２線２相式ＡＮＤ論理回路のうち、初段の２線２相式ＡＮＤ論理回路１４０では、入力データが論理変化するタイミングが異なっていても、入力データの値に対する消費電力パターンが形成され難い。
【００７２】
そして、２線２相式ＡＮＤ論理回路１４０は、第１タイミング信号ＴＳ[１]，ＴＳ[２]がいずれかが論理１であれば、出力ｑ０及び出力ｑ１は論理１とされ、第１タイミング信号ＴＳ[１]，ＴＳ[２]がいずれも論理０であれば、２線２相式ＡＮＤ論理回路１３０と同様に図２０に示すカルノー図に従い出力ｑ０及び出力ｑ１を得るように動作する。即ち、２線２相式ＡＮＤ論理回路１４０は、２線２相式ＡＮＤ論理回路１３０と同様にｃが０であれば、２線２相式ＡＮＤ論理回路として動作し、ｃが１であれば２線２相式ＯＲ論理回路として動作する。
【００７３】
一方、次段の２線２相式ＡＮＤ論理回路は、初段の２線２相式ＡＮＤ論理回路１４０と同一構成であるが、２入力ＮＡＮＤ論理素子１４５で受ける信号が遅延回路１５７で生成された遅延信号Ｂとされる。遅延回路１５７は、第２タイミング信号Ａを否定論理素子１５６を介して受け、ロジック回路１５９の論理動作が確定するタイミング、即ち論理遅延と、初段と次段の２線２相式ＡＮＤ論理回路間における配線遅延とからなる遅延量よりも更に所定時間遅延させることで、遅延信号Ｂを生成する。つまり、遅延信号Ｂは、図３４に示すように、上記遅延量よりも長く遅延されることで差Ｄ３を経て論理変化し、“１”とされる。この遅延信号Ｂは、上記したように次段の２線２相式ＡＮＤ論理回路の２入力ＮＡＮＤ論理素子１４５に、第１タイミング信号ＴＳ[１]，ＴＳ[２]の代わりに入力され、上記第２タイミング信号Ａを生成するために用いられる。要するに、次段の２線２相式ＡＮＤ論理回路においても、初段の２線２相式ＡＮＤ論理回路１４０と同様に、入力ゲート回路１５８によって論理変化するタイミングが揃ったデータがロジック回路１５９に入力されることになり、出力データ（ｑ０，ｑ１）が論理変化するタイミングに差が生じ難い。
【００７４】
図３５には、２線２相符号を用いてＸＯＲ論理演算を行う２線２相式ＸＯＲ論理回路の構成が例示される。２線２相式ＸＯＲ論理回路１６０は、第１タイミング信号ＴＳ[１]，ＴＳ[２]を２入力ＮＡＮＤ論理素子１６５で受けて第２タイミング信号Ａ１を生成し、３入力ＮＯＲ論理素子１６１〜１６４からなる入力ゲート回路１５８Ａにより論理変化するタイミングの揃ったデータａ０´，ａ１´，ｂ０´，ｂ１´をロジック回路１５９Ａに出力する。ロジック回路１５９Ａは、２入力ＮＯＲ論理素子１６６，１６７と、２入力ＮＡＮＤ論理素子１６８〜１７３からなり、データａ０´，ａ１´，ｂ０´，ｂ１´を受けて論理動作を行い、出力データ（ｑ０，ｑ１）を次段の２線２相式ＸＯＲ論理回路に出力する。そして、２線２相式ＸＯＲ論理回路１６０は、第１タイミング信号ＴＳ[１]，ＴＳ[２]のいずれかが論理１であれば、出力ｑ０及び出力ｑ１は論理１とされ、第１タイミング信号ＴＳ[１]，ＴＳ[２]がいずれも論理０であれば、２線２相式ＸＯＲ論理回路１１０と同様に図２１に示すカルノー図に従い出力ｑ０及び出力ｑ１を得るように動作する。要するに、２線２相式ＸＯＲ論理回路１６０は、２線２相式ＸＯＲ論理回路１１０と同様にｃが０であれば、２線２相式ＸＯＲ論理回路として動作し、ｃが１であれば２線２相式ＸＮＯＲ論理回路として動作する。
【００７５】
また、遅延回路１７５は、第２タイミング信号Ａ１を否定論理素子１７４を介して受け、ロジック回路１５９Ａによる論理遅延と、初段と次段の２線２相式ＸＯＲ論理回路間における配線遅延とからなる遅延量よりも更に所定時間遅延させることで、遅延信号Ｂ１を生成する。この遅延信号Ｂ１は、次段の２線２相式ＸＯＲ論理回路の２入力ＮＡＮＤ論理素子１６５に入力され、第２タイミング信号Ａ１を生成するために用いられる。これにより、従属接続された複数の２線２相式ＸＯＲ論理回路では、入力データが論理変化するタイミングが異なっていても、出力データ（ｑ０，ｑ１）が論理変化するタイミングに差が生じ難い。
【００７６】
従って、２線２相式ＡＮＤ論理回路１４０や２線２相式ＸＯＲ論理回路１６０を用いた２線２相式組合せ論理回路２０７を含む２線２相式演算回路２０５によれば、複数の２線２相式論理回路で入力データが論理変化するタイミングが配線遅延や論理遅延により異なった場合であっても、入力データの値に対する消費電力パターンが形成され難いから、電力解析攻撃等に対する高い安全性を確保できる。
【００７７】
《実施形態４》
図３６には、図１５で示した２線２相式演算回路２００に含まれる２線２相式組合せ論理回路２０２の別の構成が例示されている。以下、２線２相式演算回路２００と重複する機能等については同一符号を付し、適宜説明を省略する。２線２相式組合せ論理回路２３０は、所望の論理動作を実現するために、従属接続された２線２相式論理回路２２０−１〜２２０−Ｍを有する。２線２相式論理回路２２０−１〜２２０−Ｍは、２線２相式組合せ論理回路２３０でＮ段に接続されており、それぞれの出力データｑの遅延量が段毎に略均等に分割されるように配置されている。２線２相式組合せ論理回路２３０は、２線２相符号化回路２１からの２線２相符号を用いた出力データ（ＤＲＩ[１]〜ＤＲＩ[Ｋ]）と、後述する同期クロック信号ＮＣＬＫ等が入力され、２線２相符号を用いたデータ（ｑ[１]〜ｑ[Ｋ]）を出力する。この同期クロック信号ＮＣＬＫは、図２に例示した制御回路１５により生成され、２線２相式論理回路２２０−１〜２２０−Ｍに共通に入力される。
【００７８】
図３８には、代表的に２線２相式論理回路２２０−１の構成が例示されている。２線２相式論理回路２２０−１は、出力データ（ＤＲＩ[１]，ＤＲＩ[２]）に対応するデータ（（ａ０，ａ１）、（ｂ０，ｂ１））が入力される入力コネクタと、同期クロック信号ＮＣＬＫが入力されるタイミング入力端子と、出力データ（ｑ０，ｑ１）が出力される出力コネクタを有し、上記ｃ，ｃｎも入力される。また、２線２相式論理回路２２０−１は、ラッチ回路２２６と、２線２相式論理回路２２５とを有する。ラッチ回路２２６は、Ｄ型フリップフロップ回路２２１〜２２４を有し、同期クロック信号ＮＣＬＫの立ち上がりでデータ（（ａ０，ａ１）、（ｂ０，ｂ１））をそれぞれ保持して、２線２相式論理回路２２５に出力する。２線２相式論理回路２２５は、図１８、図１９に例示した２線２相式ＡＮＤ論理回路１３０又は２線２相式ＸＯＲ論理回路１１０で構成されている。さらに、同期クロック信号ＮＣＬＫの周期は、２線２相式論理回路２２０−１〜２２０−Ｍのロジック回路とされる２線２相式論理回路２２５の論理動作が確定するまでの論理遅延と、２線２相式組合せ論理回路２３０全体の配線遅延をＮ段で略均等に分割することで得られる配線遅延と、を含む遅延量よりも大きい。そして、同期クロック信号ＮＣＬＫは、図３７に示すように、休止相と稼動相が切り替わるタイミングを制御する制御信号ＣＴＲＬに比べて、Ｎ段の２線２相式論理回路２２０−１〜２２０−Ｍを動作させるために休止相、稼動相それそれの期間でＮ周期を有する。このようにすれば、２線２相式組合せ論理回路２３０は、同期クロックＮＣＬＫに同期して、初段の２線２相式論理回路２２０−１からＮ段目の２線２相式論理回路２２０−Ｍまで順次入力データが保持されてから出力データが確定するように動作できる。そして、２線２相式論理回路２２０−１〜２２０−Ｍでは、入力データの論理変化するタイミングが論理遅延や配線遅延によって異なっても、２線２相式論理回路２２５に与えられるデータの論理変化するタイミングがラッチ回路２２６によって揃えられており、出力データの論理変化するタイミングに差が生じ難い。
【００７９】
従って、２線２相式組合せ論理回路２３０を用いた２線２相式演算回路２００によれば、２線２相式論理回路２２０−１〜２２０−Ｍで入力データが論理変化するタイミングが配線遅延や論理遅延により異なった場合であっても、入力データの値に対する消費電力パターンが形成され難く、電力解析攻撃等に対する高い安全性を確保できる。
【００８０】
《実施形態５》
図３９には、図１５で示した２線２相式演算回路２００に含まれる２線２相式組合せ論理回路２０２の更に別の構成が例示されている。以下、図３６で例示した２線２相式組合せ論理回路２３０と重複する機能等については説明を適宜省略する。２線２相式組合せ論理回路２４０は、所望の論理動作を実現するために、従属された２線２相式論理回路２５０−１〜２５０−Ｍを有する。２線２相式論理回路２５０−１〜２５０−Ｍは、２線２相式組合せ論理回路２４０でＮ段に接続されており、それぞれの出力データｑの遅延量が同一段で略同一となるように配置されている。２線２相式組合せ論理回路２４０は、２線２相符号化回路２１からの２線２相符号を用いた出力データ（ＤＲＩ[１]〜ＤＲＩ[Ｋ]）と、後述する同期クロック信号（ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]）等が入力され、２線２相符号を用いたデータ（ｑ[１]〜ｑ[Ｋ]）を出力する。この同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]は、図２に例示した制御回路１５により生成され、２線２相式論理回路２５０−１〜２５０−Ｍの同一段毎にそれぞれ共通に入力されている。ここで、同一段とは、２線２相式組合せ論理回路２４０において、初段の２線２相式論理回路２５０−１，２５０−２を起点とした論理遅延が略同一とされるように２線２相式論理回路が配置されている状態をいう。
【００８１】
図４１には、代表的に２線２相式論理回路２５０−１の構成が例示されている。２線２相式論理回路２５０−１は、出力データ（ＤＲＩ[１]，ＤＲＩ[２]）に対応するデータ（（ａ０，ａ１）、（ｂ０，ｂ１））が入力される入力コネクタと、同期クロック信号ＰＣＬＫ[１]が入力されるタイミング入力端子と、出力データ（ｑ０，ｑ１）が出力される出力コネクタを有し、上記ｃ，ｃｎも入力される。この２線２相式論理回路２５０−１は、２線２相式ＡＮＤ論理回路であって、図３３に示した２線２相式ＡＮＤ論理回路１４０と比べて、入力ゲート回路とされる２入力ＮＯＲ論理素子１４１〜１４４の１入力が同期クロック信号ＰＣＬＫ[１]とされていること、遅延回路１５７がないこと等が異なる。２線２相式論理回路２５０−１では、遅延回路１５７がないために、次段（例えば２段目）のタイミング入力端子に入力される遅延信号が生成されないことになる。しかし、次段のタイミング入力端子には、遅延信号の代わりに同期クロック信号ＰＣＬＫ[２]が入力されることになる。
【００８２】
同期クロック信号ＰＣＬＫ[１]の周期は、２線２相式論理回路２５０−１の２入力ＮＡＮＤ論理素子１４６，１４７、３入力ＮＡＮＤ論理素子１４８〜１５３、否定論理素子１５４，１５５等からなるロジック回路の論理動作が確定するまでの論理遅延と、例えば２線２相式論理回路２５０−１，２５０−３間の配線遅延とを含む遅延量よりも大きい。そして、同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]は、図４０に示すように、２線２相式論理回路２５０−１〜２５０−Ｍのうち同一段に配置された２線２相式論理回路に対応した上記周期を有し、それぞれ位相が異なっている。このようにすれば、２線２相式組合せ論理回路２４０では、Ｎ個の異なる位相で変化する同期クロックＰＣＬＫ［１］〜ＰＣＬＫ［Ｎ］がそれぞれ対応するＮ段の２線２相式論理回路２５０−１〜２５０−Ｍに入力される。そして、２線２相式組合せ論理回路２４０は、同期クロックＰＣＬＫ［１］が入力される初段の２線２相式論理回路２５０−１から、同期クロックＰＣＬＫ［Ｎ］が入力されるＮ段目の２線２相式論理回路２５０−Ｍまで順次入力が保持されてから出力が確定するように動作する。
【００８３】
また、２線２相式論理回路２５０−１〜２５０−Ｍは、同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]が１であれば、出力データ（ｑ０，ｑ１）は１となり、同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]が０であれば、入力データ（（ａ０，a１）、（ｂ０，ｂ１））に応じて図２０に例示するカルノー図に従って出力データ（ｑ０，ｑ１）を得るように動作する。要するに、２線２相式論理回路２５０−１〜２５０−Ｍでは、入力データの論理変化するタイミングが論理遅延や配線遅延によって異なっても、同期クロック信号ＰＣＬＫ［１］〜ＰＣＬＫ［Ｎ］に同期して動作する入力ゲート回路によって、論理変化するタイミングが揃ったデータａ０´，ａ１´，ｂ０´，ｂ１´が上記ロジック回路に与えられることになる。従って、２線２相式論理回路２５０−１〜２５０−Ｍでは、出力データの論理変化するタイミングに差が生じ難い。
【００８４】
図４２には、２線２相式論理回路２５０−１と別の構成が例示される。２線２相式論理回路２５０−１Ａは、２線２相式ＸＯＲ論理回路であって、図４１に示した２線２相式ＡＮＤ論理回路と比べて、２入力ＮＡＮＤ論理素子１６８〜１７３からなるロジック回路が異なり、その他の機能等は略同一とされる。即ち、２線２相式論理回路２５０−１Ａは、入力データの論理変化するタイミングが異なっても、同期クロック信号ＰＣＬＫ［１］に同期して動作する入力ゲート回路によって、論理変化するタイミングが揃ったデータａ０´，ａ１´，ｂ０´，ｂ１´が上記ロジック回路に与えられ、出力データの論理変化するタイミングに差が生じ難い。また、２線２相式論理回路２５０−１Ａは、同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]が１であれば、出力データ（ｑ０，ｑ１）は１となり、同期クロック信号ＰＣＬＫ[１]〜ＰＣＬＫ[Ｎ]が０であれば、入力データ（（ａ０，a１）、（ｂ０，ｂ１））に応じて図２１に例示するカルノー図に従って出力データ（ｑ０，ｑ１）を得るように動作する。
【００８５】
従って、２線２相式組合せ論理回路２４０を用いた２線２相式演算回路２００によれば、２線２相式論理回路２５０−１〜２５０−Ｍで入力データが論理変化するタイミングが配線遅延や論理遅延により異なった場合であっても、入力データの値に対する消費電力パターンが形成され難く、電力解析攻撃等に対する高い安全性を確保できる。
【００８６】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８７】
例えば図４に例示された２線２相符号化回路２０では、２線２相式符号のクリアを（１，１）としたが、これに限定されない。例えば２線２相式符号のクリアを（０，０）とする場合には、２線２相符号化回路２０に対して、２入力ＯＲ論理素子５２−１〜５２−ｎ、５３−１〜５３−ｎを２入力ＡＮＤ論理素子に変更し、さらに制御信号ＣＴＲＬの論理値を否定論理とすればよい。
【００８８】
また、２線２相式組合せ論理回路２２に含まれる２線２相式論理回路として、図７，９に２線２相式ＡＮＤ論理回路７０，８０を例示し、図８，１０に２線２相式ＸＯＲ論理回路９０，１００を例示したが、これに限定されない。即ち、２線２相式ＯＲ論理回路は、２線２相式ＡＮＤ論理回路７０に対して、入力データ（ａ０，ａ１）、入力データ（ｂ０，ｂ１）、出力データ（ｑ０，ｑ１）にそれぞれ対応する２つの配線を逆にする、例えばａ０をａ１、ａ１をａ０のように置き換えることで構成できる。同様に、２線２相式ＮＯＲ論理回路は、２線２相式ＯＲ論理回路に対して、出力データ（ｑ０，ｑ１）にそれぞれ対応する２つの配線を逆にすることで構成できる。また、２線２相式ＮＡＮＤ論理回路は、２線２相式ＡＮＤ論理回路７０に対して、出力データ（ｑ０，ｑ１）にそれぞれ対応する２つの配線を逆にすることで構成できる。同様に、２線２相式ＸＮＯＲ論理回路は、２線２相式ＸＯＲ論理回路９０に対して、入力データ（ａ０，ａ１）、入力データ（ｂ０，ｂ１）、出力データ（ｑ０，ｑ１）にそれぞれ対応する２つの配線を逆にすることで構成できる。
【００８９】
さらに、２線２相式論理回路としては、プリミティブゲートを利用した構成を例示した。これによれば、既存のセルライブラリを利用してレイアウト設計でき、ＬＳＩ設計期間の短縮、さらに、回路規模を小さくすることも可能である。しかしながら、これに限定されず、２線２相式論理回路を複合ゲートとして構成することも可能である。例えば実施形態１で例示した２線２相式ＡＮＤ論理回路７０、２線２相式ＸＯＲ論理回路９０は、図２２及び図２３のように複合ゲートで構成することができる。また、実施形態２で例示した２線２相式ＡＮＤ論理回路１３０は、図２４又は図４３に例示するように複合ゲートで構成することも可能である。さらに実施形態２で例示した２線２相式ＸＯＲ論理回路１１０は、図２５又は図４４に例示するように複合ゲートで構成することも可能である。このようにすれば、２線２相方式論理回路を構成するトランジスタ数の低減できるから、回路規模を小さくできると共に、低消費電力化を図ることができる。
【００９０】
さらに、実施形態３で例示した２線２相式ＡＮＤ論理回路１４０を複合ゲートで構成することも可能である。図４５には、複合ゲートで構成された２線２相式ＡＮＤ論理回路１４０が例示される。以下、図３３で例示した２線２相式ＡＮＤ論理回路１４０と重複する機能等については同一符号を付し、適宜説明を省略する。２線２相式ＡＮＤ論理回路１４０は、図３３においてＮＡＮＤ論理素子、ＮＯＲ論理素子等のプリミティブゲートを使用した構成を例示したが、ここではＣＭＯＳで構成した複合ゲートが例示される。ここで２線２相式ＡＮＤ論理回路１４０での２線２相符号のクリアの値は（０，０）とされる。２線２相式ＡＮＤ論理回路１４０は、ｐＭＯＳトランジスタ（ｐ１〜ｐ４）、ｎＭＯＳトランジスタ（ｎ１〜ｎ１７）、否定論理素子３０１、３０２等を備える。
【００９１】
図４６には、ｎＭＯＳトランジスタ（ｎ１〜ｎ３）以外のｎＭＯＳトランジスタ（ｎ４〜ｎ１７）での入力値とオンするｎＭＯＳトランジスタの関係が例示されている。また、入力ａは入力データ（ａ０，ａ１）、入力ｂは入力データ（ｂ０，ｂ１）にそれぞれ対応しており、さらにｑは出力データ（ｑ０，ｑ１）に対応している。２線２相式ＡＮＤ論理回路１４０では、入力値によらずオンするｎＭＯＳトランジスタの個数が３個であるから、ｎＭＯＳトランジスタのオン抵抗が一定となる。これは、出力が論理１又は論理０であっても、各々の出力の負荷容量からの放電電流パターンが同一となることを意味している。従って、２線２相式ＡＮＤ論理回路１４０をこのような複合ゲートで構成した場合であっても、入力値に対する消費電力パターンが形成され難く、電力解析攻撃に対する高い安全性を確保できる。さらに、２線２相式ＡＮＤ論理回路１４０をこのような複合ゲートで構成すれば、トランジスタ数が低減できるから、回路規模を小さくできると共に、低消費電力化を図ることができる。
【００９２】
また、実施形態１による切替え信号ＭＯＤＥを伴わない２線２相式ＡＮＤ論理回路７０，８０及び２線２相式ＸＯＲ論理回路９０，１００では、出力が論理１又は論理０のときいずれでも、出力の負荷容量からの放電電流パターンを略同一とするために、ｎＭＯＳトランジスタのオン抵抗が同一になるように配置するようにしてもよい。また、実施形態３での２線２相式ＡＮＤ論理回路１４０及び２線２相式ＸＯＲ論理回路１６０では、切替え信号ＭＯＤＥを用いた構成を例示したが、これに限定されず、切替え信号ＭＯＤＥを用いない構成としてもよい。
【００９３】
さらに、上記２線２相式ＡＮＤ論理回路１４０及び２線２相式ＸＯＲ論理回路１６０では、２ビットのデータが入力され、１ビットのデータが出力される例を示したが、これに限られず、適宜のビットに対応させてもよい。一例として、３２ビットのデータが入力され、１６ビットのデータ出力されるような２線２相式ＡＮＤ論理回路や２線２相式ＸＯＲ論理回路を形成してもよい。この場合には、２入力ＮＡＮＤ論理素子１４５、２入力ＮＯＲ論理素子１６５の代わりに、３２入力ＮＡＮＤ論理素子、３２入力ＮＯＲ論理素子を用いればよく、さらに遅延信号Ｂ，Ｂ１を１ビット毎、即ち１６出力するようにすればよい。さらに、本発明は、入力データの値に係らず、演算処理中に発生する消費電力を一定とすることができ、さらに演算時刻においても、消費電力を一定にできるので、入力データの値と消費電力の相関を用いた電力解析攻撃に対して高い安全性を得ることが不可欠な適宜の演算装置に適用できる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態１に係る半導体集積回路の一例であるＩＣカードチップの構成を例示する図である。
【図２】図１に示す暗号コプロセッサの構成を例示する説明図である。
【図３】本発明の実施形態１に係る論理演算回路の一例である２線２相式演算回路の構成を例示する説明図である。
【図４】図３に示す２線２相符号化回路の構成を例示する説明図である。
【図５】図３に示す２線１線変換回路の構成を例示する説明図である。
【図６】図３に示す２線２相式演算回路の動作を示すタイミングチャートである。
【図７】図３に示す２線２相式組合せ論理回路に含まれる２線２相式ＡＮＤ論理回路の構成を例示する説明図である。
【図８】図３に示す２線２相式組合せ論理回路に含まれる２線２相式ＸＯＲ論理回路の構成を例示する説明図である。
【図９】図３に示す２線２相式組合せ論理回路に含まれる別の２線２相式ＡＮＤ論理回路の構成を例示する説明図である。
【図１０】図３に示す２線２相式組合せ論理回路に含まれる更に別の２線２相式ＸＯＲ論理回路の構成を例示する説明図である。
【図１１】図７に示す２線２相式ＡＮＤ論理回路の動作を示すカルノー図である。
【図１２】図８に示す２線２相式ＸＯＲ論理回路の動作を示すカルノー図である。
【図１３】図９に示す別の２線２相式ＡＮＤ論理回路の動作を示すカルノー図である。
【図１４】図１０に示す更に別の２線２相式ＸＯＲ論理回路の動作を示すカルノー図である。
【図１５】本発明の実施形態２に係る論理演算回路の一例である２線２相式演算回路の構成を例示する説明図である。
【図１６】図１５に示す否定論理回路の構成を例示する説明図である。
【図１７】図１５に示す２線２相式演算回路の動作を示すタイミングチャートである。
【図１８】図１５に示す２線２相式組合せ論理回路に含まれる２線２相式ＡＮＤ論理回路の構成を例示する説明図である。
【図１９】図１５に示す２線２相式組合せ論理回路に含まれる２線２相式ＸＯＲ論理回路の構成を例示する説明図である。
【図２０】図１８に示す２線２相式ＡＮＤ論理回路の動作を示すカルノー図である。
【図２１】図１９に示す２線２相式ＸＯＲ論理回路の動作を示すカルノー図である。
【図２２】図７に示す２線２相式ＡＮＤ論理回路を複合ゲートで構成した場合の構成を例示する説明図である。
【図２３】図８に示す２線２相式ＸＯＲ論理回路を複合ゲートで構成した場合の構成を例示する説明図である。
【図２４】図１８に示す２線２相式ＡＮＤ論理回路を複合ゲートで構成した場合の構成を例示する説明図である。
【図２５】図１９に示す２線２相式ＸＯＲ論理回路を複合ゲートで構成した場合の構成を例示する説明図である。
【図２６】図３に示す２線２相式演算回路についての論理値と２線２相符号の対応関係を例示する説明図である。
【図２７】図７に示す２線２相式ＡＮＤ論理回路についての入力と出力の関係を２線２相符号で例示する説明図である。
【図２８】図１５に示す２線２相式演算回路についての論理値と２線２相符号の対応関係を例示する説明図である。
【図２９】配線遅延差により出力データの論理変化するタイミングに差が生じる例を示す説明図である。
【図３０】本発明の実施形態３に係る論理演算回路の一例である２線２相式演算回路の構成を例示する説明図である。
【図３１】図３０に示す同期生成回路の構成を例示する説明図である。
【図３２】同期生成回路についての入出力の対応関係を例示する説明図である。
【図３３】図３０に示す２線２相式組合せ論理回路に含まれる２線２相式ＡＮＤ論理回路の構成を例示する説明図である。
【図３４】図３３に示す２線２相式ＡＮＤ論理回路の動作を示すタイミングチャートである。
【図３５】図３０に示す２線２相式組合せ論理回路に含まれる２線２相式ＸＯＲ論理回路の構成を例示する説明図である。
【図３６】図１５に示す２線２相式組合せ論理回路の別の構成を例示する説明図である。
【図３７】図３６に示す２線２相式組合せ論理回路の動作を示すタイミングチャートである。
【図３８】図３６に示す２線２相式組合せ論理回路に含まれる２線２相式論理回路の構成を例示する説明図である。
【図３９】図１５に示す２線２相式組合せ論理回路の更に別の構成を例示する説明図である。
【図４０】図３９に示す２線２相式組合せ論理回路の動作を示すタイミングチャートである。
【図４１】図３９に示す２線２相式組合せ論理回路に含まれる２線２相式ＡＮＤ論理回路の構成を例示する説明図である。
【図４２】図３９に示す２線２相式組合せ論理回路に含まれる２線２相式ＸＯＲ論理回路の構成を例示する説明図である。
【図４３】図１８に示す２線２相式ＡＮＤ論理回路を複合ゲートで構成した場合の別の構成を例示する説明図である。
【図４４】図１９に示す２線２相式ＸＯＲ論理回路を複合ゲートで構成した場合の別の構成を例示する説明図である。
【図４５】図３３に示す２線２相式ＡＮＤ論理回路を複合ゲートで構成した場合の構成を例示する説明図である。
【図４６】図４５に示す２線２相式ＡＮＤ論理回路の入力値とオンするｎＭＯＳトランジスタの関係を例示する説明図である。
【符号の説明】
【００９５】
１  ＩＣカードチップ
２  入出力回路
３  ＣＰＵ
４  制御回路
５  データメモリ
６  プログラムメモリ
７  暗号コプロセッサ
８  データバス
１０  バス変換回路
１１  データレジスタ
１４，２００  ２線２相式演算回路
２０  ２線２相符号化回路
２２，２０２，２０７，２３０，２４０  ２線２相式組合せ論理回路
２３  ２線１線変換回路
７０，８０，１３０，１４０，１８０  ２線２相式ＡＮＤ論理回路
９０，１００，１１０，１６０，１９０  ２線２相式ＸＯＲ論理回路
２０１  否定論理回路
２０６  同期生成回路
【図１】
2008067349.tif 000003
【図２】
2008067349.tif 000004
【図３】
2008067349.tif 000005
【図４】
2008067349.tif 000006
【図５】
2008067349.tif 000007
【図６】
2008067349.tif 000008
【図７】
2008067349.tif 000009
【図８】
2008067349.tif 000010
【図９】
2008067349.tif 000011
【図１０】
2008067349.tif 000012
【図１１】
2008067349.tif 000013
【図１２】
2008067349.tif 000014
【図１３】
2008067349.tif 000015
【図１４】
2008067349.tif 000016
【図１５】
2008067349.tif 000017
【図１６】
2008067349.tif 000018
【図１７】
2008067349.tif 000019
【図１８】
2008067349.tif 000020
【図１９】
2008067349.tif 000021
【図２０】
2008067349.tif 000022
【図２１】
2008067349.tif 000023
【図２２】
2008067349.tif 000024
【図２３】
2008067349.tif 000025
【図２４】
2008067349.tif 000026
【図２５】
2008067349.tif 000027
【図２６】
2008067349.tif 000028
【図２７】
2008067349.tif 000029
【図２８】
2008067349.tif 000030
【図２９】
2008067349.tif 000031
【図３０】
2008067349.tif 000032
【図３１】
2008067349.tif 000033
【図３２】
2008067349.tif 000034
【図３３】
2008067349.tif 000035
【図３４】
2008067349.tif 000036
【図３５】
2008067349.tif 000037
【図３６】
2008067349.tif 000038
【図３７】
2008067349.tif 000039
【図３８】
2008067349.tif 000040
【図３９】
2008067349.tif 000041
【図４０】
2008067349.tif 000042
【図４１】
2008067349.tif 000043
【図４２】
2008067349.tif 000044
【図４３】
2008067349.tif 000045
【図４４】
2008067349.tif 000046
【図４５】
2008067349.tif 000047
【図４６】
2008067349.tif 000048