(57)【要約】【課題】入力信号の組合せにより充電経路の平均数が異なるため、及び後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減する。【解決手段】論理回路１は、入力信号Ｘ、Ｙと乱数信号ｒとに基づいて生成される出力論理状態を出力線Ｚ１に出力する論理演算回路１０と、制御信号ｅｎ１に応じて出力線Ｚ１の出力状態を制御し、論理演算回路１０の出力論理状態を無効とする出力無効状態である場合に、出力線Ｚ１から電源線ＶＤＤに通じる経路を遮断し、電源線ＶＤＤの電位により出力線Ｚ１を充電する出力制御部２０と、出力線Ｚ１の出力状態に基づいて出力する状態を無効とするマスク状態に、制御信号ｅｎ２に応じて切り替える出力段回路３０とを備える。【選択図】図１
2011188009.tif 000002
【特許請求の範囲】
【請求項１】
第１の電位が第１の供給線から供給され、該第１の電位より低い第２の電位が第２の供給線から供給され、入力される入力信号と乱数信号とに基づいて生成される出力論理状態を出力線に出力する論理演算回路と、
入力される第１の制御信号に応じて前記出力線の出力状態を制御し、前記出力論理状態を無効とする出力無効状態である場合に、前記出力線から前記第２の供給線に通じる第１の経路を遮断し、前記第１の電位により前記出力線を充電する出力制御部と、
前記論理演算回路の後段に設けられ、前記出力線の出力状態に基づいて出力する状態を無効とするマスク状態に、入力される第２の制御信号に応じて切り替える出力段回路と
を備えることを特徴とする消費電力錯乱型論理回路。
【請求項２】
前記出力制御部は、
前記出力無効状態を解除した場合、前記第１の経路を導通させ、前記生成される論理状態に応じて、前記第２の電位により前記出力線を放電する
ことを特徴とする請求項１に記載の消費電力錯乱型論理回路。
【請求項３】
前記論理演算回路は、
前記入力信号と前記乱数信号とに基づいて前記第１の電位により前記出力線を充電するＰネット部と、前記入力信号と前記乱数信号とに基づいて前記第２の電位により前記出力線を放電するＮネット部とが相補に動作して前記出力論理状態を生成し、
前記第１の経路は、
前記出力線から前記Ｎネット部を介して前記第２の供給線に通じる経路である
ことを特徴とする請求項１又は２項に記載の消費電力錯乱型論理回路。
【請求項４】
前記第１の制御信号又は前記第２の制御信号に応じて、前記第１の供給線から前記Ｐネット部を介して前記出力線に通じる第２の経路を遮断するＰネット遮断部
を備える
ことを特徴とする請求項３に記載の消費電力錯乱型論理回路。
【請求項５】
前記入力信号及び前記乱数信号は、
前記出力制御部が前記出力無効状態にあり、前記出力線が前記第１の電位になった後に、変更され、
前記出力制御部は、
前記入力信号及び前記乱数信号の変更が確定した後に、前記第１の制御信号に基づいて前記出力無効状態を解除し、
前記出力段回路は、
前記出力無効状態が解除され、前記出力線の出力状態が確定した後に、前記第２の制御信号に基づいて前記マスク状態を解除する
ことを特徴とする請求項１から請求項４のいずれかに記載の消費電力錯乱型論理回路。
【請求項６】
前記入力信号及び前記乱数信号は、
前記出力制御部が前記出力無効状態にあり、前記Ｐネット遮断部が前記第２の経路を遮断した後に変更され、
前記出力制御部は、
前記入力信号及び前記乱数信号の変更が確定した後に、前記第１の制御信号に基づいて前記出力無効状態を解除し、
前記出力段回路は、
前記出力無効状態が解除され、前記出力線の出力状態が確定した後に、前記第２の制御信号に基づいて前記マスク状態を解除する
ことを特徴とする請求項４に記載の消費電力錯乱型論理回路。
【請求項７】
前記論理演算回路は、
前記入力信号に基づいて予め定められた論理演算処理に応じた論理状態を生成し、前記乱数信号に基づき、前記入力信号を反転させた前記論理演算処理を行うか否か、及び前記出力論理状態を前記論理状態から反転したものにするか否かを切り替える
ことを特徴とする請求項１から請求項６のいずれかに記載の消費電力錯乱型論理回路。
【請求項８】
秘密鍵と情報を記憶する記憶部と、
前記乱数信号を生成する乱数生成部と、
請求項１から請求項７のいずれかに記載の消費電力錯乱型論理回路を含み、前記秘密鍵に応じて暗号処理を行う暗号処理部と
を備えることを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号／復号処理の際に電力消費を解析して、秘密鍵を解明する電力解析攻撃を防ぐ消費電力錯乱型論理回路及び情報記憶媒体に関する。
【背景技術】
【０００２】
ＩＣカードなどの暗号処理を行う情報記憶媒体の電力消費を解析処理することにより、暗号処理に使用する秘密鍵を解明する電力解析攻撃がある。この攻撃に対して論理回路レベルの対策回路が、開示されている。非特許文献１では、乱数を用いて入力信号及び論理演算の正論理／負論理をランダムに切り替えるＲＳＬ（Random Switching Logic）回路を開示している。ＣＭＯＳ（Complementary Metal Oxide Semiconductor：相補型金属酸化膜半導体）集積回路が動作する場合の電力消費は、論理ゲートの出力負荷容量を充放電させる電流による電力が支配的である。そのため、ＲＳＬ回路は、論理ゲートの出力を乱数によりランダムに遷移させることにより、電力消費の統計値と秘密鍵の相関を無くすことを意図した回路である。
【０００３】
図１２の（ａ）は、非特許文献１が開示するＲＳＬによるＮＡＮＤ（否定論理積）ゲート（以下、ＲＳＬ−ＮＡＮＤという。）を示す。元のＮＡＮＤゲートの入力信号をａ、ｂとし、出力をｃ（＝ａ  ＮＡＮＤ  ｂ）とする。ＲＳＬ−ＮＡＮＤの入力信号Ｘ、Ｙは、乱数ｒと入力信号ａ、ｂとをそれぞれＸＯＲ（排他的論理和）演算された値である（Ｘ＝ａ  ＸＯＲ  ｒ、Ｙ＝ｂ  ＸＯＲ  ｒ）。また、ＲＳＬ−ＮＡＮＤの出力Ｚは、同じく乱数信号ｒと出力ｃをＸＯＲ演算した値である（Ｚ＝ｃ  ＸＯＲ  ｒ）。入力信号ａ、ｂをＸＯＲ演算する乱数と出力ｃをＸＯＲ演算する乱数は同じ値であり、ゲート動作ごとに毎回異なる値にする。
また、ＲＳＬ−ＮＡＮＤは、制御信号ｅｎを備える。制御信号ｅｎは、“１”の場合にＲＳＬ−ＮＡＮＤの出力を無効状態にし、ＲＳＬ−ＮＡＮＤの出力を“０”に固定する。また、制御信号ｅｎは、“０”の場合にＲＳＬ−ＮＡＮＤの出力を有効状態にし、入力信号Ｘ、Ｙ、ｒの値に応じた出力にさせる。入力信号Ｘ、Ｙ、ｒが遷移する期間では、制御信号ｅｎは“１”にされ、入力が確定した後に制御信号ｅｎは“０”にされ、ＲＳＬ−ＮＡＮＤの出力を有効にする。これは、入力信号Ｘ、Ｙ、ｒが遷移する際に消費される電力をなくすためである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】D.Suzuki et al.,“Random Switching Logic： A New Countermeasure against DPA and Second-Order DPA at the Logic Level”IEICE TRANS.FUNDAMENTALS, VOL.E90-A, NO.1, JANUARY 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、図１２の（ａ）が示すＲＳＬ−ＮＡＮＤでは、制御信号ｅｎが“１”から”０”に遷移し、無効状態から有効状態に切り替わる際に電力消費が発生する。この電力消費は、入力信号Ｘ、Ｙ、ｒの状態により電力消費波形が異なる。
図１２の（ｂ）は、ＲＳＬ−ＮＡＮＤの論理と“１”を出力する際の充電パスの数を示す論理表である。乱数ｒが“０”の場合、充電パスは、入力信号ａ、ｂの組合せ（１）において３本のパス、組合せ（２）及び（３）において１本のパスとなる。また、乱数信号ｒが“１”の場合、充電パスは、組合せ（４）において１本のパスとなる。そして、組合せ（１）から（４）の各場合における平均パス数、すなわち、ｒが“０”である場合のパス数とｒが“１”である場合のパス数との平均は、順に３／２、１／２、１／２、１／２となる。充電のパス数が異なると、充電電流と充電速度に差が生じる。これら２つの差は、情報記憶媒体の外部から観測できる電力消費波形の差を生じさせる。この電力消費波形の差により、入力信号ａ、ｂの組合せが特定される可能性がある。すなわち、上述のＲＳＬ−ＮＡＮＤでは、入力信号ａ、ｂの組合せにより充電経路（パス）の平均数が異なることから電力消費波形の変化が生じるという問題がある。
【０００６】
また、充電速度が異なると、ＲＳＬ−ＮＡＮＤの出力遷移時間の違いとなって、後段のゲートの動作タイミングに影響する。後段のゲートの動作タイミングが異なれば、情報記憶媒体の外部から観測できる電力消費波形の差を生じさせる。すなわち、上述のＲＳＬ−ＮＡＮＤでは、後段のゲートの動作タイミングが異なることから電力消費波形に変化が生じるという問題がある。
【０００７】
本発明は、上記問題を解決すべくなされたもので、その目的は、入力信号の組合せにより充電経路の平均数が異なるために生じる電力消費波形の変化と、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減する消費電力錯乱型論理回路、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
上記問題を解決するために、本発明は、第１の電位が第１の供給線から供給され、該第１の電位より低い第２の電位が第２の供給線から供給され、入力される入力信号と乱数信号とに基づいて生成される出力論理状態を出力線に出力する論理演算回路と、入力される第１の制御信号に応じて前記出力線の出力状態を制御し、前記出力論理状態を無効とする出力無効状態である場合に、前記出力線から前記第２の供給線に通じる第１の経路を遮断し、前記第１の電位により前記出力線を充電する出力制御部と、前記論理演算回路の後段に設けられ、前記出力線の出力状態に基づいて出力する状態を無効とするマスク状態に、入力される第２の制御信号に応じて切り替える出力段回路とを備える消費電力錯乱型論理回路である。
【０００９】
また、本発明は上記発明において、前記出力制御部は、前記出力無効状態を解除した場合、前記第１の経路を導通させ、前記生成される論理状態に応じて、前記第２の電位により前記出力線を放電することを特徴とする。
【００１０】
また、本発明は上記発明において、前記論理演算回路は、前記入力信号と前記乱数信号とに基づいて前記第１の電位により前記出力線を充電するＰネット部と、前記入力信号と前記乱数信号とに基づいて前記第２の電位により前記出力線を放電するＮネット部とが相補に動作して前記出力論理状態を生成し、前記第１の経路は、前記出力線から前記Ｎネット部を介して前記第２の供給線に通じる経路であることを特徴とする。
【００１１】
また、本発明は上記発明において、前記消費電力錯乱型論理回路は、前記第１の制御信号又は前記第２の制御信号に応じて、前記第１の供給線から前記Ｐネット部を介して前記出力線に通じる第２の経路を遮断するＰネット遮断部を備えることを特徴とする。
【００１２】
また、本発明は上記発明において、前記入力信号及び前記乱数信号は、前記出力制御部が前記出力無効状態にあり、前記出力線が前記第１の電位になった後に、変更され、前記出力制御部は、前記入力信号及び前記乱数信号の変更が確定した後に、前記第１の制御信号に基づいて前記出力無効状態を解除し、前記出力段回路は、前記出力無効状態が解除され、前記出力線の出力状態が確定した後に、前記第２の制御信号に基づいて前記マスク状態を解除することを特徴とする。
【００１３】
また、本発明は上記発明において、前記入力信号及び前記乱数信号は、前記出力制御部が前記出力無効状態にあり、前記Ｐネット遮断部が前記第２の経路を遮断した後に変更され、前記出力制御部は、前記入力信号及び前記乱数信号の変更が確定した後に、前記第１の制御信号に基づいて前記出力無効状態を解除し、前記出力段回路は、前記出力無効状態が解除され、前記出力線の出力状態が確定した後に、前記第２の制御信号に基づいて前記マスク状態を解除することを特徴とする。
【００１４】
また、本発明は上記発明において、前記論理演算回路は、前記入力信号に基づいて予め定められた論理演算処理に応じた論理状態を生成し、前記乱数信号に基づき、前記入力信号を反転させた前記論理演算処理を行うか否か、及び前記出力論理状態を前記論理状態から反転したものにするか否かを切り替えることを特徴とする。
【００１５】
また、本発明は、秘密鍵と情報を記憶する記憶部と、前記乱数信号を生成する乱数生成部と、上記発明のいずれかの消費電力錯乱型論理回路を含み、前記秘密鍵に応じて暗号処理を行う暗号処理部とを備える情報記憶媒体である。
【発明の効果】
【００１６】
本発明によれば、論理演算回路が、第１の電位が第１の供給線から供給され、第１の電位より低い第２の電位が第２の供給線から供給され、入力される入力信号と乱数信号とに基づいて生成される出力論理状態を出力線に出力する。出力制御部が、第１の制御信号に応じて論理演算回路の出力線の出力状態を制御し、論理演算回路の出力論理状態を無効とする出力無効状態である場合に、論理演算回路の出力線から第２の供給線に通じる第１の経路を遮断し、第１の電位により前記出力線を充電する。これにより、入力信号の組合せによらず、充電経路の数が同じになる。そのため、消費電力錯乱型論理回路は、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。また、論理演算回路の後段に設けられた出力段回路が、論理演算回路の出力線の出力状態に基づいて出力する出力状態を無効とするマスク状態に、入力される第２の制御信号に応じて切り替える。これにより、消費電力錯乱型論理回路は、論理演算回路の出力線の動作タイミングの変化をマスクし、消費電力錯乱型論理回路の後段のゲートの動作タイミングの変化を低減できる。そのため、消費電力錯乱型論理回路は、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態による論理回路を示すブロック図である。
【図２】同実施形態における論理回路の論理表を示す図である。
【図３】同実施形態における論理回路のシーケンスを示すタイムチャートである。
【図４】第２の実施形態による論理回路を示すブロック図である。
【図５】同実施形態における論理回路のシーケンスを示すタイムチャートである。
【図６】第３の実施形態による論理回路を示すブロック図である。
【図７】同実施形態における論理回路のシーケンスを示すタイムチャートである。
【図８】第４の実施形態による携帯可能情報記憶媒体を示すブロック図である。
【図９】同実施形態における暗号処理部を示すブロック図である。
【図１０】第５の実施形態による論理回路を示すブロック図である。
【図１１】同実施形態における論理回路の論理表を示す図である。
【図１２】従来技術による論理回路と論理表を示す図である。
【発明を実施するための形態】
【００１８】
＜第１の実施形態＞
以下、本発明の第１の実施形態による論理回路について図面を参照して説明する。
図１は、本実施形態における論理回路を示すブロック図である。
図１に示される消費電力錯乱型論理回路である論理回路１は、論理演算回路１０、出力制御部２０及び出力段回路３０を備える。
論理演算回路１０は、電源線ＶＤＤと電源線ＧＮＤとの間に配置され、Ｐネット部１１とＮネット部１２を備える。論理演算回路１０は、入力信号Ｘ、Ｙと乱数信号ｒに基づき、Ｐネット部１１とＮネット部１２とが相補に動作して生成される出力論理状態を出力線Ｚ１に出力する。
Ｐネット部１１は、電源線ＶＤＤと出力線Ｚ１との間に配置され、入力信号Ｘ、Ｙと乱数信号ｒとに基づいて電源線ＶＤＤの電位により出力線Ｚ１を充電し、論理レベル“１”を出力する。
Ｎネット部１２は、出力線Ｚ１と電源線ＧＮＤとの間に配置され、入力信号Ｘ、Ｙと乱数信号ｒとに基づいて電源線ＧＮＤの電位により出力線Ｚ１を放電し、論理レベル“０”を出力する。
【００１９】
Ｐネット部１１は、Ｐチャネル型金属酸化膜半導体電界効果トランジスタ（Ｐ Channel Metal Oxide Semiconductor Field Effect Transistor、以下、ＰＭＯＳという。）１１１〜１１５を備える。ＰＭＯＳ１１１、１１２は、電源線ＶＤＤと出力線Ｚ１との間に直列に配置される。ＰＭＯＳ１１１は、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ１にそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＰＭＯＳ１１２は、ソース端子がノードＮ１、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＰＭＯＳ１１３、１１４は、電源線ＶＤＤとノードＮ２との間に並列に接続される。ＰＭＯＳ１１３は、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ２にそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＰＭＯＳ１１４は、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ２にそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＰＭＯＳ１１５は、ソース端子がノードＮ２に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に乱数信号ｒが供給される。
【００２０】
Ｎネット部１２は、Ｎチャネル型金属酸化膜半導体電界効果トランジスタ（Ｎ Channel Metal Oxide Semiconductor Field Effect Transistor、以下、ＮＭＯＳという。）１２１〜１２５を備える。ＮＭＯＳ１２１、１２２は、出力線Ｚ１とノードＮ４との間に直列に配置される。ＮＭＯＳ１２１は、ソース端子がノードＮ３に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＮＭＯＳ１２２は、ソース端子がノードＮ４、ドレイン端子がノードＮ３にそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＮＭＯＳ１２３、１２４は、出力線Ｚ１とノードＮ５との間に並列に接続される。ＮＭＯＳ１２３は、ソース端子がＮ５に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＮＭＯＳ１２４は、ソース端子がノードＮ５に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＮＭＯＳ１２５は、ソース端子がノードＮ４に、ドレイン端子がノードＮ５にそれぞれ接続され、ゲート端子に乱数信号ｒが供給される。
【００２１】
出力制御部２０は、ＰＭＯＳ２１とＮＭＯＳ２２とを備え、制御信号ｅｎ１に応じて出力線Ｚ１の出力状態を制御する。出力制御部２０は、ＰＭＯＳ２１とＮＭＯＳ２２とにより、制御信号ｅｎ１に応じて論理演算回路１０の出力論理状態を無効にする。
ＰＭＯＳ２１は、電源線ＶＤＤと出力線Ｚ１との間に、Ｐネット部１１と並列に配置される。ＰＭＯＳ２１は、ソース端子が電源線ＶＤＤに、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に制御信号ｅｎ１が供給される。ＰＭＯＳ２１は、制御信号ｅｎ１が“０”の場合（出力無効状態とする場合）に、電源線ＶＤＤと出力線Ｚ１との間を導通して、出力線Ｚ１を論理レベル“１”に充電する。これにより、Ｐネット部１１は無効化される。
また、ＮＭＯＳ２２は、出力線Ｚ１と電源船ＧＮＤとの間に、Ｎネット部１２と直列に配置される。ＮＭＯＳ２２は、ソース端子が電源線ＧＮＤに、ドレイン端子がノードＮ４にそれぞれ接続され、ゲート端子に制御信号ｅｎ１が供給される。ＮＭＯＳ２２は、制御信号ｅｎ１が“０”の場合（出力無効状態とする場合）に、電源線ＧＮＤからＮネット部１２を介して出力線Ｚ１に通じる経路を遮断して、Ｎネット部１２を無効化する。
【００２２】
出力段回路３０は、論理演算回路１０の後段に配置され、インバータ部３１と出力段制御部３２とを備える。出力段回路３０は、論理演算回路１０の出力線Ｚ１の出力状態に基づいて、論理回路１の出力線Ｚ２に論理レベル“１”又は“０”を出力する。また、出力段回路３０は、制御信号ｅｎ２に応じて、出力線Ｚ２の出力状態を無効にするマスク状態に切り替わる。
インバータ部３１は、ＰＭＯＳ３１１とＮＭＯＳ３１２とを備え、論理演算回路１０の出力線Ｚ１に出力される論理状態を反転した論理レベル“１”又は“０”を出力線Ｚ２に出力する。
ＰＭＯＳ３１１とＮＭＯＳ３１２は、ゲート端子が出力線Ｚ１に、ドレイン端子が出力線Ｚ２にそれぞれ接続される。また、ＰＭＯＳ３１１は、ソース端子がノードＮ６に接続される。ＮＭＯＳ３１２は、ソース端子が電源線ＧＮＤに接続される。
【００２３】
出力段制御部３２は、ＰＭＯＳ３２１とＮＭＯＳ３２２とを備え、制御信号ｅｎ２に応じて、出力線Ｚ２の出力状態を無効にするマスク状態に切り替わる。ＰＭＯＳ３２１は、電源線ＶＤＤとインバータ部３１との間に配置される。ＰＭＯＳ３２１は、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ６にそれぞれ接続され、ゲート端子に制御信号ｅｎ２が供給される。ＰＭＯＳ３２１は、制御信号ｅｎ２が“１”の場合（マスク状態とする場合）に、電源線ＶＤＤからインバータ部３１を遮断して、インバータ部３１を無効化する。
ＮＭＯＳ３２２は、出力線Ｚ２と電源線ＧＮＤとの間に、ＮＭＯＳ３１２と並列に配置される。ＮＭＯＳ３２２は、ソース端子が電源線ＧＮＤに、ドレイン端子が出力線Ｚ２にそれぞれ接続され、ゲート端子に制御信号ｅｎ２が供給される。ＮＭＯＳ３２２は、制御信号ｅｎ２が“１”の場合（マスク状態とする場合）に、電源線ＧＮＤと出力線Ｚ２との間を導通して、出力線Ｚ２を論理レベル“０”に放電する。これにより、出力段制御部３２は、マスク状態である場合に、出力線Ｚ２に論理レベル“０”を出力する。
【００２４】
次に、本実施形態の動作について説明する。
論理回路１は、入力信号ａ、ｂをＡＮＤ（論理積）演算した出力ｃを得るためのＡＮＤ回路である。論理回路１の入力信号Ｘ、Ｙは、入力信号ａ、ｂと、乱数信号ｒとをそれぞれＸＯＲ（排他的論理和）演算された値である（Ｘ＝ａ  ＸＯＲ  ｒ、Ｙ＝ｂ  ＸＯＲ  ｒ）。また、論理回路１の出力線Ｚ２の出力ｚ２は、同じく乱数ｒと出力ｃをＸＯＲ演算した値である（ｚ２＝ｃ  ＸＯＲ  ｒ）。入力ａ、ｂをＸＯＲ演算する乱数信号ｒと出力ｃをＸＯＲ演算する乱数信号ｒは同じ値であり、乱数信号ｒはゲート動作ごとに毎回異なる値にする。
【００２５】
また、論理演算回路１０は、入力信号ａ、ｂをＮＡＮＤ（否定論理積）演算した結果を乱数信号ｒとＸＯＲ演算した出力ｚ１を得るためのＮＡＮＤ／ＮＯＲ（否定論理和）演算回路である。乱数信号ｒが“０”の場合、論理演算回路１０は、入力信号Ｘ、ＹのＮＡＮＤ演算回路として機能する（ｚ１＝Ｘ  ＮＡＮＤ  Ｙ）。また、乱数信号ｒが“１”の場合、論理演算回路１０は、入力信号Ｘ、ＹのＮＯＲ演算回路として機能する（ｚ１＝Ｘ  ＮＯＲ  Ｙ）。その原理は、式（１）から式（３）に示される。
【００２６】
ｚ１＝（ａ  ＮＡＮＤ  ｂ）  ＸＯＲ  ｒ  ・・・（１）
【００２７】
式（１）は、論理演算回路１０の論理演算を示す式である。
【００２８】
［ｒ＝“０”の場合］
Ｘ＝ａ  ＸＯＲ  ｒ＝ａ、Ｙ＝ｂ  ＸＯＲ  ｒ＝ｂ、
ｚ１＝（ａ  ＮＡＮＤ  ｂ）ＸＯＲ  ｒ＝Ｘ  ＮＡＮＤ  Ｙ  ・・・（２）
【００２９】
式（２）は、乱数信号ｒが“０”の場合における論理演算回路１０の論理演算を示す式である。乱数信号ｒが“０”の場合、入力信号ａ、ｂはそれぞれ入力信号Ｘ、Ｙと等しくなる。このため、論理演算回路１０の出力線Ｚ１の論理は、入力信号ＸとＹのＮＡＮＤ演算したものになる。
【００３０】
［ｒ＝“１”の場合］
Ｘ＝ａ  ＸＯＲ  ｒ＝ＮＯＴ（ａ）、Ｙ＝ｂ  ＸＯＲ  ｒ＝ＮＯＴ（ｂ）、
ｚ１＝ＮＯＴ（ＮＯＴ（Ｘ）  ＮＡＮＤ  ＮＯＴ（Ｙ））＝ＮＯＴ（Ｘ  ＯＲ  Ｙ）＝Ｘ  ＮＯＲ  Ｙ  ・・・（３）
【００３１】
式（３）は、乱数信号ｒが“１”の場合における論理演算回路１０の論理演算を示す式である。乱数信号ｒが“１”の場合、入力信号ａ、ｂはそれぞれ入力信号Ｘ、ＹのＮＯＴ（否定）演算した値になる。このため、論理演算回路１０の出力線Ｚ１の論理は、入力信号ＸとＹをそれぞれＮＯＴ演算したものをＮＡＮＤ演算し、更にその演算結果をＮＯＴ演算したものになる。ト゛・モルガンの定理により、（ＮＯＴ（Ｘ）  ＮＡＮＤ  ＮＯＴ（Ｙ））は、入力信号ＸとＹのＯＲ（論理和）演算（Ｘ  ＯＲ  Ｙ）に置き換えられる。これにより、論理演算回路１０の出力線Ｚ１の論理は、入力信号ＸとＹのＮＯＲ演算したものになる。
【００３２】
論理演算回路１０は、乱数信号ｒが“０”の場合、Ｐネット部１１のＰＭＯＳ１１５がオンして、電源線ＶＤＤに並列接続されたＰＭＯＳ１１３、１１４が有効になる。また、Ｎネット部１２のＮＭＯＳ１２５がオフして、出力線Ｚ１に並列接続されたＮＭＯＳ１２３、１２４が無効になる。これにより、出力線Ｚ１は、ＰＭＯＳ１１３、１１４と、出力線Ｚ１にノードＮ３を介して直列接続されたＮＭＯＳ１２１、１２２とで論理演算される出力論理状態が出力される。つまり、論理演算回路１０は、入力信号ＸとＹのＮＡＮＤ演算回路として機能する。なお、この場合、ＰＭＯＳ１１１、１１２は、出力論理状態を決める際に関係しない。
また、論理演算回路１０は、乱数信号ｒが“１”の場合、Ｐネット部１１のＰＭＯＳ１１５がオフして、電源線ＶＤＤに並列接続されたＰＭＯＳ１１３、１１４が無効になる。また、Ｎネット部１２のＮＭＯＳ１２５がオンして、出力線Ｚ１に並列接続されたＮＭＯＳ１２３、１２４が有効になる。これにより、出力線Ｚ１は、ＮＭＯＳ１２３、１２４と、出力線Ｚ１にノードＮ１を介して直列接続されたＰＭＯＳ１１１、１１２とで論理演算される出力論理状態が出力される。つまり、論理演算回路１０は、入力信号ＸとＹのＮＯＲ演算回路として機能する。なお、この場合、ＮＭＯＳ１２１、１２２は、出力論理状態を決める際に関係しない。
【００３３】
論理演算回路１０により論理演算された出力ｚ１は、出力線Ｚ１を介して出力段回路３０のインバータ部３１に供給される。インバータ部３１は、ＰＭＯＳ３１１とＮＭＯＳ３１２により、出力ｚ１の出力論理状態を反転して、出力線Ｚ２に出力ｚ２として出力する。
これにより、論理回路１は、乱数信号ｒに応じて、入力信号ＸとＹのＡＮＤ演算結果（ｚ２＝Ｘ  ＡＮＤ  Ｙ）、又は入力信号ＸとＹのＯＲ演算結果（ｚ２＝Ｘ  ＯＲ  Ｙ）を出力線Ｚ２に出力する。
【００３４】
図２は、本実施形態における論理回路１の論理表を示す図である。
図２において、入力信号Ｘ、Ｙの組合せ４通りと乱数信号ｒの組合せを合わせた８通りの組合せに応じて、出力線Ｚ２の出力ｚ２の状態を示している。乱数信号ｒの値に応じて、出力ｚ２が論理反転していることがわかる。乱数信号ｒはランダムに値が変わるため、入力信号ａ、ｂが同じであっても、出力ｚ２がランダムに変動する。
【００３５】
次に、タイムチャートを参照して、本実施形態の動作を詳細に説明する。
図３は、同実施形態における論理回路１のシーケンスを示すタイムチャートである。
図３において、入力信号Ｘ、Ｙと乱数信号ｒ、制御信号ｅｎ１、ｅｎ２、出力線Ｚ１の出力状態ｚ１、及び出力線Ｚ２の出力状態ｚ２を示している。
まず、制御信号ｅｎ１が時刻Ｔ０Ｈから時刻Ｔ０ＬでＬ（ロウ）状態（論理“０”状態）にされると出力制御部２０が出力有効状態から出力無効状態に移行する。これにより、ＮＭＯＳ２２がオフする。そのため、出力制御部２０は、電源線ＧＮＤからＮネット部１２を介して出力線Ｚ１に通じる経路を遮断して、Ｎネット部１２を無効化する。また、ＰＭＯＳ２１がオンする。ＰＭＯＳ２１は、出力線Ｚ１を電源線ＶＤＤによりＨ（ハイ）状態（論理“１”状態）に充電する。ここで、出力線Ｚ１がＨ状態に充電されるのは、入力信号Ｘ、Ｙと乱数信号ｒにより出力論理状態が“０”となる場合である。そのため、Ｐネット部１１の経路は遮断されている。従って、出力線Ｚ１への充電は、Ｐネット部１１を経由することなく、ＰＭＯＳ２１よって行われる。また、その場合の電力消費波形は、入力信号ａ、ｂの組合せに依存しない一定の波形となる。
【００３６】
時刻Ｔａは、出力線Ｚ１の充電が完了する時刻を示す。制御信号ｅｎ２が出力線Ｚ２の出力を有効にするＬ状態であるため、出力線Ｚ１の出力ｚ１がＨ状態になった結果、出力線Ｚ２の出力ｚ２は、Ｌ状態になる。この出力線Ｚ２のＨ状態からＬ状態への移行は、ＰＭＯＳ２１による充電タイミングが一定であるため、論理回路１の後段のゲートの動作タイミングは、一定となる。
【００３７】
次に、制御信号ｅｎ２が時刻Ｔ１Ｌから時刻Ｔ１ＨでＨ状態（論理“１”状態）にされると出力段回路３０が出力有効状態からマスク状態に移行する。これにより、ＰＭＯＳ３２１がオフし、ＮＭＯＳ３２２がオンする。そのため、出力段回路３０は、ＰＭＯＳ３２１により電源線ＶＤＤから出力線Ｚ２に通じる経路を遮断する。また、出力段回路３０は、ＮＭＯＳ３２２により出力線Ｚ２と電源線ＧＮＤとの間を導通してＬ状態（論理”０”状態）に放電する。これにより、出力段回路３０はマスク状態になり、出力線Ｚ１の状態が変化しても、論理回路１の後段のゲートに伝播しない状態となる。マスク状態の場合、出力線Ｚ２は、出力線Ｚ１の状態に係わらず、Ｌ状態（論理”０”状態）が保持される。
【００３８】
また、入力信号Ｘ、Ｙと乱数信号ｒは、時刻Ｔ２から時刻Ｔ３の間に変更される。時刻Ｔ２は、出力制御部２０が出力無効状態にあり、出力線Ｚ１の充電が完了して、電源線ＶＤＤの電位になった時刻Ｔａよりも後の時刻である。これは、時刻Ｔａよりも前に、入力信号Ｘ、Ｙと乱数信号ｒを変更した場合、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路が導通して、電力消費波形が入力信号ａ、ｂの組合せに依存する可能性があるためである。
【００３９】
次に、制御信号ｅｎ１が時刻Ｔ４Ｌから時刻Ｔ４ＨでＨ状態（論理“１”状態）にされると出力制御部２０が出力無効状態から出力有効状態に移行する。これにより、ＰＭＯＳ２１がオフする。ＰＭＯＳ２１は、出力線Ｚ１と電源線ＶＤＤとの間を遮断する。また、ＮＭＯＳ２２がオンする。そのため、出力制御部２０は、電源線ＧＮＤからＮネット部１２を介して出力線Ｚ１に通じる経路を導通して、Ｎネット部１２による出力論理状態に応じて信号線Ｚ１をＬ状態（論理“０”状態）に放電する。出力ｚ１のｐ０は、論理演算回路１０の出力論理状態が“１”である場合である。この場合、出力ｚ１はＨ状態（論理“１”状態）を保持する。
また、出力ｚ１のｐ１は、論理演算回路１０のＮネット部１２において電源線ＧＮＤに放電する経路（パス）が１本の場合の波形である。この状態は、例えば図２の論理表における（４）の組合せ、且つ乱数信号ｒが“０”の場合である。この場合、ＮＭＯＳ１２５がオフとなるため、出力線Ｚ１から電源線ＧＮＤに通じる経路は、ＮＭＯＳ１２１とＮＭＯＳ１２２を通る経路の１本となる。放電の経路が１本であるため、出力ｚ１は、ｐ３よりも遅れてＬ状態に放電される。ここで、ｐ１により、出力線Ｚ１がＬ状態になる時刻をＴｂとする。
【００４０】
また、出力ｚ１のｐ３は、論理演算回路１０のＮネット部１２において電源線ＧＮＤに放電する経路（パス）が３本の場合の波形である。この状態は、例えば図２の論理表における（１）の組合せ、且つ乱数信号ｒが“１”の場合である。この場合、ＮＭＯＳ１２５がオンとなるため、出力線Ｚ１から電源線ＧＮＤに通じる経路は、ＮＭＯＳ１２１とＮＭＯＳ１２２を通る経路、ＮＭＯＳ１２３の経路、及びＮＭＯＳ１２４の経路の３本となる。放電の経路が３本であるため、出力ｚ１は、ｐ１よりも早くＬ状態に放電される。
ここで、出力線Ｚ１の負荷容量を電源線ＧＮＤに放電する放電電流が流れる。しかし、出力線Ｚ１の負荷容量が繋がる電源線ＧＮＤとＮＭＯＳ２２と接続される電源線ＧＮＤが接続され、共通の電源線として論理回路１の外部に出ているものとする。その場合、この放電電流は、論理回路１内で消費されたものとなり、外部からの電力消費として観測されない。また、ｐ１とｐ３による遷移タイミングの違いは、出力段回路３０によりマスクされ、論理回路１の後段のゲートの動作タイミングに影響しない。
【００４１】
次に、制御信号ｅｎ２が時刻Ｔ５Ｈから時刻Ｔ５ＬでＬ状態（論理“０”状態）にされると出力段回路３０がマスク状態から出力有効状態に移行する。これにより、ＰＭＯＳ３２１がオンし、ＮＭＯＳ３２２がオフする。そのため、出力線Ｚ１の状態を反転した状態が、出力線Ｚ２に出力される。この際に出力段回路３０が消費する電力は、出力線Ｚ２の負荷容量を充電する電流である。そのため、電力消費波形は、出力線Ｚ１の状態により決まり、入力信号ａ、ｂの組合せに依存しない。また、出力線Ｚ２の遷移タイミングは、入力信号ａ、ｂの組合せに依存しない。そのため、論理回路１の後段のゲートの動作タイミングは、入力信号ａ、ｂの組合せに依存しない一定となる。
【００４２】
以上のように、出力制御部２０が、制御信号ｅｎ１に応じて論理演算回路１０の出力線Ｚ１の出力状態を制御する。出力制御部２０は、出力無効状態にある場合に、ＮＭＯＳ２２により論理演算回路１０の出力線Ｚ１から電源線ＧＮＤに通じる経路を遮断し、ＰＭＯＳ２１により電源線ＶＤＤと出力線Ｚとを導通して、Ｈ状態に充電する。これにより、入力信号の組合せによらず、充電経路の数がＰＭＯＳ２１による１本になる。そのため、論理回路１は、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の統計的結果の変化を低減できる。
また、論理演算回路１０の後段に設けられた出力段回路３０が、制御信号ｅｎ２に応じてマスク状態に切り替わる。出力段回路３０は、マスク状態にある場合に、出力線Ｚ１の出力状態を無効にして論理回路１の出力線Ｚ２をＬ状態（論理“０”状態）に保持する。これにより、論理回路１は、論理演算回路１０の出力線の動作タイミングの変化をマスクし、論理回路１の後段のゲートの動作タイミングの変化を低減できる。そのため、論理回路１は、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の変化を低減できる。
【００４３】
＜第２の実施形態＞
以下、本発明の第２の実施形態による論理回路について図面を参照して説明する。
図４は、本実施形態における論理回路１ａを示すブロック図である。
図４において、第１の実施形態の論理回路１に、ＰＭＯＳで構成されるＰネット遮断部４０を設けている。その他の構成は、第１の実施形態と同様である。この図において、図１と同じ構成には同一の符号を付す。
Ｐネット遮断部４０は、Ｐネット部１１と出力線Ｚ１の間に配置され、ソース端子がＰネット部１１の出力であるノードＮ７に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に制御信号ｅｎ２が供給される。Ｐネット遮断部４０は、制御信号ｅｎ２が“０”になり、出力段回路３０がマスク状態にある場合に、Ｐネット部１１と出力線Ｚ１との間を遮断し、Ｐネット部１１を出力線Ｚ１から切り離す。
【００４４】
次に、本実施形態の動作について説明する。
論理回路１ａは、Ｐネット遮断部４０の動作が加わる以外、第１の実施形態と基本的な動作は同じである。
論理回路１ａは、入力信号ａ、ｂをＡＮＤ演算した出力ｃを得るためのＡＮＤ回路である。論理回路１ａの入力信号Ｘ、Ｙは、入力信号ａ、ｂと、乱数信号ｒとをそれぞれＸＯＲ演算された値である（Ｘ＝ａ  ＸＯＲ  ｒ、Ｙ＝ｂ  ＸＯＲ  ｒ）。また、論理回路１ａの出力線Ｚ２の出力ｚ２は、同じく乱数ｒと出力ｃをＸＯＲ演算した値である（ｚ２＝ｃ  ＸＯＲ  ｒ）。入力ａ、ｂをＸＯＲ演算する乱数信号ｒと出力ｃをＸＯＲ演算する乱数信号ｒは同じ値であり、乱数信号ｒはゲート動作ごとに毎回異なる値にする。
【００４５】
図５は、同実施形態における論理回路１ａのシーケンスを示すタイムチャートである。
図５において、入力信号Ｘ、Ｙと乱数信号ｒ、制御信号ｅｎ１、ｅｎ２、出力線Ｚ１の出力状態ｚ１、及び出力線Ｚ２の出力状態ｚ２を示している。この図において、以下の２つのタイミングが、制御信号ｅｎ１による時刻Ｔ０Ｈから時刻Ｔ０Ｌの前になる以外、図３におけるシーケンスと同じである。２つのタイミングとは、制御信号ｅｎ２による時刻Ｔ１Ｌから時刻Ｔ１Ｈと、入力信号Ｘ，Ｙと乱数信号ｒを変更するための時刻Ｔ２から時刻Ｔ３である。
【００４６】
制御信号ｅｎ２が時刻Ｔ１Ｌから時刻Ｔ１ＨでＨ状態（論理“１”状態）にされると出力段回路３０が出力有効状態からマスク状態に移行する。また、Ｐネット遮断部４０が、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断する。また、制御信号ｅｎ２が“０”から“１”に遷移する場合の動作は、第１の実施形態と同様である。
次に、入力信号Ｘ、Ｙと乱数信号ｒは、時刻Ｔ２から時刻Ｔ３の間に変更される。時刻Ｔ２は、Ｐネット遮断部４０がＰネット部１１を遮断した時刻Ｔ１Ｈよりも後の時刻である。このタイミングにより入力信号Ｘ、Ｙと乱数信号ｒが変更される場合、Ｐネット遮断部４０がＰネット部１１を遮断した後であるため、電力消費波形は、電力消費波形が入力信号Ｘ、Ｙと乱数信号ｒを変更しても影響を受けない。これにより、制御信号ｅｎ１の状態に係わらず、入力信号Ｘ、Ｙと乱数信号ｒを変更することができる。そのため、入力信号Ｘ、Ｙと乱数信号ｒの変更タイミングを早めることができる。
【００４７】
次に、制御信号ｅｎ１が時刻Ｔ０Ｈから時刻Ｔ０ＬでＬ状態（論理“０”状態）にされると出力制御部２０が出力有効状態から出力無効状態に移行する。これにより、ＮＭＯＳ２２がオフする。そのため、出力制御部２０は、電源線ＧＮＤからＮネット部１２を介して出力線Ｚ１に通じる経路を遮断して、Ｎネット部１２を無効化する。また、ＰＭＯＳ２１がオンする。ＰＭＯＳ２１は、出力線Ｚ１を電源線ＶＤＤによりＨ状態（論理“１”状態）に充電する。時刻Ｔａは、出力線Ｚ１の充電が完了する時刻を示す。
その後の動作は、制御信号ｅｎ１が時刻Ｔ４Ｌから時刻Ｔ４ＨでＨ状態（論理“１”状態）にされると出力制御部２０が出力無効状態から出力有効状態に移行する。また、制御信号ｅｎ２が時刻Ｔ５Ｈから時刻Ｔ５ＬでＬ状態（論理“０”状態）にされると出力段回路３０がマスク状態から出力有効状態に移行する。また、Ｐネット遮断部４０が、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を導通する。これにより、論理演算回路１０の出力論理状態が“１”である場合、出力線Ｚ１は、Ｈ状態（“１”状態）を保持する。また、出力線Ｚ１の状態を反転した状態が、出力線Ｚ２に出力される。
【００４８】
以上のように、出力制御部２０が、制御信号ｅｎ１に応じて論理演算回路１０の出力線Ｚ１の出力状態を制御する。出力制御部２０は、出力無効状態にある場合に、ＮＭＯＳ２２により論理演算回路１０の出力線Ｚ１から電源線ＧＮＤに通じる経路を遮断し、ＰＭＯＳ２１により電源線ＶＤＤと出力線Ｚとを導通して、Ｈ状態に充電する。これにより、入力信号の組合せによらず、充電経路の数がＰＭＯＳ２１による１本になる。そのため、論理回路１ａは、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の統計的結果の変化を低減できる。
また、論理演算回路１０の後段に設けられた出力段回路３０が、制御信号ｅｎ２に応じてマスク状態に切り替わる。出力段回路３０は、マスク状態にある場合に、出力線Ｚ１の出力状態を無効にして論理回路１ａの出力線Ｚ２をＬ状態に保持する。これにより、論理回路１ａは、論理演算回路１０の出力線の動作タイミングの変化をマスクし、論理回路１ａの後段のゲートの動作タイミングの変化を低減できる。そのため、論理回路１ａは、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の変化を低減できる。
【００４９】
また、Ｐネット遮断部４０が、制御信号ｅｎ２に応じて、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断する。これにより、出力線Ｚ１の充電が完了する時刻Ｔａよりも前に、入力信号Ｘ、Ｙと乱数信号ｒを変更することができる。時刻Ｔａは、論理回路１ａの内部信号である出力線Ｚ１の状態を観測して判断する必要があるが、本実施形態では、入力信号である制御信号ｅｎ２の状態により、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを判断できる。そのため、論理回路１ａは、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを容易に決定できる利点がある。
【００５０】
＜第３の実施形態＞
以下、本発明の第３の実施形態による論理回路について図面を参照して説明する。
図６は、本実施形態における論理回路１ｂを示すブロック図である。
図６において、第２の実施形態と同様にＰＭＯＳで構成されるＰネット遮断部４０ａを設けている。その他の構成は、第２の実施形態と同様である。この図において、図４と同じ構成には同一の符号を付す。
Ｐネット遮断部４０ａは、Ｐネット部１１と出力線Ｚ１の間に配置され、ソース端子がＰネット部１１の出力であるノードＮ７に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に制御信号ｅｎ１を論理反転したｅｎ１ｂ（＝ＮＯＴ（ｅｎ１））が供給される。Ｐネット遮断部４０ａは、制御信号ｅｎ１が“０”になり、出力段回路３０がマスク状態にある場合に、Ｐネット部１１と出力線Ｚ１との間を遮断し、Ｐネット部１１を出力線Ｚ１から切り離す。
【００５１】
次に、本実施形態の動作について説明する。
論理回路１ｂは、Ｐネット遮断部４０ａの制御信号ｅｎ１ｂが異なる以外、第２の実施形態と基本的な動作は同じである。
論理回路１ｂは、入力信号ａ、ｂをＡＮＤ演算した出力ｃを得るためのＡＮＤ回路である。論理回路１ｂの入力信号Ｘ、Ｙは、入力信号ａ、ｂと、乱数信号ｒとをそれぞれＸＯＲ演算された値である（Ｘ＝ａ  ＸＯＲ  ｒ、Ｙ＝ｂ  ＸＯＲ  ｒ）。また、論理回路１ｂの出力線Ｚ２の出力ｚ２は、同じく乱数ｒと出力ｃをＸＯＲ演算した値である（ｚ２＝ｃ  ＸＯＲ  ｒ）。入力ａ、ｂをＸＯＲ演算する乱数信号ｒと出力ｃをＸＯＲ演算する乱数信号ｒは同じ値であり、乱数信号ｒはゲート動作ごとに毎回異なる値にする。
【００５２】
図７は、同実施形態における論理回路１ｂのシーケンスを示すタイムチャートである。
図７において、入力信号Ｘ、Ｙと乱数信号ｒ、制御信号ｅｎ１、ｅｎ１ｂ、ｅｎ２、出力線Ｚ１の出力状態ｚ１、及び出力線Ｚ２の出力状態ｚ２を示している。この図において、以下の３つのタイミングの順序が異なる以外、図５におけるシーケンスと同じである。３つのタイミングとは、制御信号ｅｎ１による時刻Ｔ０Ｈから時刻Ｔ０Ｌ、制御信号ｅｎ２による時刻Ｔ１Ｌから時刻Ｔ１Ｈ、及び入力信号Ｘ，Ｙと乱数信号ｒを変更するための時刻Ｔ２から時刻Ｔ３である。
【００５３】
まず、制御信号ｅｎ１が時刻Ｔ０Ｈから時刻Ｔ０ＬでＬ状態（論理“０”状態）にされると出力制御部２０が出力有効状態から出力無効状態に移行する。また、制御信号ｅｎ１の論理反転した制御信号ｅｎ１ｂにより、Ｐネット遮断部４０ａが、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断する。制御信号ｅｎ１による出力制御部２０の動作は、第１及び第２の実施形態と同様である。なお、時刻Ｔａは、出力線Ｚ１の充電が完了する時刻を示す。
次に、入力信号Ｘ、Ｙと乱数信号ｒは、時刻Ｔ２から時刻Ｔ３の間に変更される。時刻Ｔ２は、Ｐネット遮断部４０ａがＰネット部１１を遮断した時刻Ｔ０Ｈよりも後の時刻である。このタイミングにより入力信号Ｘ、Ｙと乱数信号ｒが変更される場合、Ｐネット遮断部４０ａがＰネット部１１を遮断した後であるため、電力消費波形は、電力消費波形が入力信号Ｘ、Ｙと乱数信号ｒを変更しても影響を受けない。これにより、出力線Ｚ１の充電が完了する時刻Ｔａより前のタイミングにおいて、入力信号Ｘ、Ｙと乱数信号ｒを変更することができる。そのため、入力信号Ｘ、Ｙと乱数信号ｒの変更タイミングを早めることができる。
次に、制御信号ｅｎ２が時刻Ｔ１Ｌから時刻Ｔ１ＨでＨ状態（論理“１”状態）にされると出力段回路３０が出力有効状態からマスク状態に移行する。また、制御信号ｅｎ２が“０”から“１”に遷移する場合の動作は、第１の実施形態と同様である。
【００５４】
その後の動作は、制御信号ｅｎ１が時刻Ｔ４Ｌから時刻Ｔ４ＨでＨ状態（論理“１”状態）にされると出力制御部２０が出力無効状態から出力有効状態に移行する。また、時刻Ｔ４Ｈにおいて、Ｐネット遮断部４０ａが、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を導通する。また、制御信号ｅｎ２が時刻Ｔ５Ｈから時刻Ｔ５ＬでＬ状態（論理“０”状態）にされると出力段回路３０がマスク状態から出力有効状態に移行する。これにより、出力線Ｚ１の状態を反転した状態が、出力線Ｚ２に出力される。
【００５５】
以上のように、出力制御部２０が、制御信号ｅｎ１に応じて論理演算回路１０の出力線Ｚ１の出力状態を制御する。出力制御部２０は、出力無効状態にある場合に、ＮＭＯＳ２２により論理演算回路１０の出力線Ｚ１から電源線ＧＮＤに通じる経路を遮断し、ＰＭＯＳ２１により電源線ＶＤＤと出力線Ｚとを導通して、Ｈ状態に充電する。これにより、入力信号の組合せによらず、充電経路の数がＰＭＯＳ２１による１本になる。そのため、論理回路１ｂは、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の統計的結果の変化を低減できる。
また、論理演算回路１０の後段に設けられた出力段回路３０が、制御信号ｅｎ２に応じてマスク状態に切り替わる。出力段回路３０は、マスク状態にある場合に、出力線Ｚ１の出力状態を無効にして論理回路１ｂの出力線Ｚ２をＬ状態に保持する。これにより、論理回路１ｂは、論理演算回路１０の出力線の動作タイミングの変化をマスクし、論理回路１ｂの後段のゲートの動作タイミングの変化を低減できる。そのため、論理回路１ｂは、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂと相関する電力消費波形の変化を低減できる。
【００５６】
また、Ｐネット遮断部４０ａが、制御信号ｅｎ１ｂ（＝ＮＯＴ（ｅｎ１））に応じて、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断する。これにより、出力線Ｚ１の充電が完了する時刻Ｔａよりも前に、入力信号Ｘ、Ｙと乱数信号ｒを変更することができる。時刻Ｔａは、論理回路１ｂの内部信号である出力線Ｚ１の状態を観測して判断する必要があるが、本実施形態では、入力信号である制御信号ｅｎ１の状態により、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを判断できる。そのため、論理回路１ｂは、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを容易に決定できる利点がある。
【００５７】
＜第４の実施形態＞
以下、本発明の第４の実施形態による情報記憶媒体について図面を参照して説明する。
図８は、本実施形態における情報記憶媒体（ＩＣカード２００）を示すブロック図である。
図８において、情報記憶媒体（ＩＣカード２００）は、制御部２１０、ＲＡＭ（Random Access Memory）２２０、ＲＯＭ（Read Only Memory）２３０、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）２４０、インタフェース部２５０、暗号処理部２６０、及び乱数生成部２７０を備える。ＩＣカード２００は、外部装置３００とインタフェース部２５０を通じて接続される。また、制御部２１０、ＲＡＭ２２０、ＲＯＭ２３０、ＥＥＰＲＯＭ２４０、インタフェース部２５０、暗号処理部２６０、及び乱数生成部２７０は、それぞれデータバスＢ１に接続される。
【００５８】
制御部２１０は、ＩＣカード２００全体を制御する。ＲＡＭ２２０は、制御部２１０が制御に使用する一時記憶情報を記憶する。ＲＯＭ２３０は、制御部２１０のための制御プログラム及び定数情報などを記憶する。ＥＥＰＲＯＭ２４０は、電気的に書き換え可能な不揮発性メモリであり、外部装置３００からインタフェース部２５０を介して供給された情報や暗号処理又は復号処理に使用する秘密鍵などを記憶する。インタフェース部２５０は、外部装置３００との情報の授受を行う。
暗号処理部２６０は、ＥＥＰＲＯＭ２４０が記憶する秘密鍵に基づき、情報の暗号処理及び復号処理を行う。乱数生成部２７０は、乱数Ｒを生成し、暗号処理部２６０に供給する。
【００５９】
図９は、本実施形態における暗号処理部２６０を示すブロック図である。
図９において、暗号処理部２６０は、入力データレジスタ２６１、暗号キーレジスタ２６２、制御レジスタ２６３、暗号復号回路２６４、及び出力データレジスタ２６５を備える。入力データレジスタ２６１は、制御部２１０によってデータバスＢ１を通じて供給される情報を記憶し、暗号復号回路２６４に供給する。制御部２１０によって供給される情報は、ＥＥＰＲＯＭ２４０に記憶された情報やインタフェース部２５０を介して外部装置３００から供給された情報などである。また、暗号キーレジスタ２６２は、制御部２１０によってデータバスＢ１を通じて供給される秘密鍵を記憶し、暗号復号回路２６４に供給する。また、制御レジスタ２６３は、制御部２１０によってデータバスＢ１を通じて供給される制御情報を記憶し、制御信号を暗号復号回路２６４に供給する。制御信号は、暗号復号回路２６４の暗号処理、及び復号処理の制御を行う。また、制御レジスタ２６３は、暗号復号回路２６４の状態を記憶する。暗号復号回路２６４の状態は、データバスＢ１を通じて制御部２１０によって参照される。
【００６０】
暗号復号回路２６４は、第１の実施形態のＡＮＤ回路である論理回路１（図１）を含む。暗号復号回路２６４は、図示は省略するが、論理回路１を含んだ基本論理回路ライブラリを用いて、暗号処理回路、及び復号処理回路が構成される。また、暗号復号回路２６４は、乱数生成部２７０から供給される乱数Ｒを論理回路１に乱数信号ｒとして供給する。また、論理回路１の制御信号ｅｎ１及びｅｎ２は、暗号復号回路２６４の図示しないタイミングコントローラにより生成する。
また、暗号復号回路２６４は、制御レジスタ２６３から供給される制御信号に応じて、入力データレジスタ２６１から供給される情報を、暗号キーレジスタ２６２から供給される秘密鍵に基づき暗号処理又は復号処理する。その結果、暗号情報又は平文情報が生成される。暗号復号回路２６４は、生成した暗号情報又は平文情報を出力データレジスタ２６５に記憶させる。ここで、暗号処理又は復号処理する暗号方式は、例えば、ＤＥＳ（Data Encryption Standard）暗号とする。
出力データレジスタ２６５は、暗号復号回路２６４が生成した暗号情報又は平文情報を記憶する。暗号情報又は平文情報は、制御部２１０により、データバスＢ１を介して読み出され、ＩＣカード２００の情報処理に使用される。
【００６１】
次に、本実施形態の動作について説明する。
ＩＣカード２００は、インタフェース部２５０を介して外部装置３００と様々な情報の授受を行う。その様々な情報を授受する処理の中で、ＩＣカード２００は、秘匿情報を扱う場合に、暗号復号処理部２６０を使用して、暗号処理又は復号処理を行う。例えば、ＩＣカード２００と外部装置３００の正当性を互いに確認する相互認証処理において、暗号処理又は復号処理を使用する。
暗号処理又は復号処理を行う場合、まず、制御部２１０が、ＥＥＰＲＯＭ２４０に記憶された秘密鍵を、データバスＢ１を通じて暗号キーレジスタ２６２に記憶させる。また、制御部２１０は、暗号処理又は復号処理する情報を、データバスＢ１を通じて入力データレジスタ２６１に記憶させる。次に、制御部２１０は、データバスＢ１を通じて制御レジスタ２６３に制御コマンドを供給する。これにより、制御信号が暗号復号回路２６４に供給され、暗号処理又は復号処理が開始される。
【００６２】
暗号復号回路２６４は、制御信号を受けて、入力データレジスタ２６１が記憶する情報を、暗号キーレジスタ２６２が記憶する秘密鍵に基づき暗号処理又は復号処理を行う。この暗号処理又は復号処理を行う際に、暗号復号回路２６４を構成する論理回路１は、乱数信号ｒに応じて、論理回路１の出力線Ｚ２（図１）の出力をランダムに遷移させる。また、論理回路１の動作は、第１の実施形態で説明した通りである。論理回路１の動作により、暗号復号回路２６４は、電力消費の統計値と秘密鍵の相関を無くすことができる。
また、暗号復号回路２６４は、暗号処理又は復号処理が完了した場合、生成した暗号情報又は平文情報を出力データレジスタ２６５に記憶させる。また、暗号復号回路２６４は、暗号処理又は復号処理が完了した状態にあることを、制御レジスタ２６３に記憶させる。制御部２１０は、制御レジスタ２６３を参照して、暗号処理又は復号処理が完了したことを検出する。制御部２１０は、暗号処理又は復号処理の完了を検出した場合、データバスＢ１を通じて出力データレジスタ２６５の情報を読み出して、ＥＥＰＲＯＭ２４０に記憶させる、又はインタフェース部２５０を介して外部装置３００に供給する。
【００６３】
以上のように、ＩＣカード２００は、制御部２１０、ＲＡＭ２２０、ＲＯＭ２３０、ＥＥＰＲＯＭ２４０、インタフェース部２５０、暗号処理部２６０、及び乱数生成部２７０を備える。また、暗号処理部２６０は、入力データレジスタ２６１、暗号キーレジスタ２６２、制御レジスタ２６３、暗号復号回路２６４、及び出力データレジスタ２６５を備える。暗号復号回路２６４は、論理回路１を含み、制御レジスタ２６３から供給される制御信号に応じて、入力データレジスタ２６１から供給される情報を、暗号キーレジスタ２６２から供給される秘密鍵に基づき暗号処理又は復号処理する。そのため、ＩＣカード２００は、暗号処理又は復号処理において、論理回路１の充電経路の平均数が異なるために生じる電力消費波形の変化、及び論理回路の後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。結果として、ＩＣカード２００は、電力消費の統計値と秘密鍵の相関を低減でき、電力解析攻撃を防止する効果が期待できる。
【００６４】
＜第５の実施形態＞
以下、本発明の第５の実施形態による論理回路について図面を参照して説明する。
図１０は、本実施形態における論理回路を示すブロック図である。
図１０に示される論理回路１ｃは、図１に示される論理回路１にＯＲＡＮＤ（論理和論理積）論理演算を行う複合ゲートを適用した一形態である。論理回路１ｃは、論理演算回路１０ａ、出力制御部２０及び出力段回路３０を備える。この図において、図１と同じ構成には同一の符号を付す。
論理演算回路１０ａは、電源線ＶＤＤと電源線ＧＮＤとの間に配置され、Ｐネット部１１ａとＮネット部１２ａを備える。論理演算回路１０ａは、入力信号Ｘ、Ｙ、Ｗと乱数信号ｒに基づき、Ｐネット部１１ａとＮネット部１２ａとが相補に動作して生成される出力論理状態を出力線Ｚ１に出力する。
Ｐネット部１１ａは、電源線ＶＤＤと出力線Ｚ１との間に配置され、入力信号Ｘ、Ｙ、Ｗと乱数信号ｒとに基づいて電源線ＶＤＤの電位により出力線Ｚ１を充電し、論理レベル“１”を出力する。
Ｎネット部１２ａは、出力線Ｚ１と電源線ＧＮＤとの間に配置され、入力信号Ｘ、Ｙ、Ｗと乱数信号ｒとに基づいて電源線ＧＮＤの電位により出力線Ｚ１を放電し、論理レベル“０”を出力する。
【００６５】
Ｐネット部１１ａは、ＰＭＯＳ１１１ａ〜１１５ａ、１１６、１１７を備える。ＰＭＯＳ１１１ａ、１１２ａ、１１５ａは、電源線ＶＤＤと出力線Ｚ１との間に直列に配置される。ＰＭＯＳ１１１ａは、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ１ａにそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＰＭＯＳ１１２ａは、ソース端子がノードＮ１ａ、ドレイン端子がノードＮ８にそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。ＰＭＯＳ１１５ａは、ソース端子がノードＮ８に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に乱数信号ｒが供給される。また、ＰＭＯＳ１１６は、ＰＭＯＳ１１１ａ、１１２ａと並列に配置される。ＰＭＯＳ１１６は、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ８にそれぞれ接続され、ゲート端子に入力信号Ｗが供給される。
また、ＰＭＯＳ１１３ａ、１１４ａは、電源線ＶＤＤとノードＮ２ａとの間に並列に接続される。ＰＭＯＳ１１３ａは、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ２ａにそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＰＭＯＳ１１４ａは、ソース端子が電源線ＶＤＤに、ドレイン端子がノードＮ２ａにそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＰＭＯＳ１１７は、ソース端子がノードＮ２ａに、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｗが供給される。
【００６６】
Ｎネット部１２ａは、ＮＭＯＳ１２１ａ〜１２５ａ、１２６、１２７を備える。ＮＭＯＳ１２１ａ、１２２ａ、１２５ａは、出力線Ｚ１とノードＮ４との間に直列に配置される。ＮＭＯＳ１２１ａは、ソース端子がノードＮ３ａに、ドレイン端子がノードＮ９にそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＮＭＯＳ１２２ａは、ソース端子がノードＮ４、ドレイン端子がノードＮ３ａにそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。ＮＭＯＳ１２５ａは、ソース端子がノードＮ９に、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に乱数信号ｒが供給される。また、ＮＭＯＳ１２６は、ＮＭＯＳ１２１ａ、１２２ａと並列に配置される。ＮＭＯＳ１２６は、ソース端子がノードＮ４に、ドレイン端子がノードＮ９にそれぞれ接続され、ゲート端子に入力信号Ｗが供給される。
また、ＮＭＯＳ１２３ａ、１２４ａは、ノードＮ５ａとノードＮ４との間に並列に接続される。ＮＭＯＳ１２３ａは、ソース端子がノードＮ４に、ドレイン端子がノードＮ５ａにそれぞれ接続され、ゲート端子に入力信号Ｘが供給される。ＮＭＯＳ１２４ａは、ソース端子がノードＮ４に、ドレイン端子がノードＮ５ａにそれぞれ接続され、ゲート端子に入力信号Ｙが供給される。
また、ＮＭＯＳ１２７は、ソース端子がノードＮ５ａに、ドレイン端子が出力線Ｚ１にそれぞれ接続され、ゲート端子に入力信号Ｗが供給される。
【００６７】
次に、本実施形態の動作について説明する。
論理回路１ｃは、入力信号ａ、ｂ、ｃをＯＲＡＮＤ（論理和論理積）演算した出力ｄを得るためのＯＲＡＮＤ回路である。論理回路１ｃの入力信号Ｘ、Ｙ、Ｗは、入力信号ａ、ｂ、ｃと、乱数信号ｒとをそれぞれＸＯＲ（排他的論理和）演算された値である（Ｘ＝ａ  ＸＯＲ  ｒ、Ｙ＝ｂ  ＸＯＲ  ｒ、Ｗ＝ｃ  ＸＯＲ  ｒ）。また、論理回路１ｃの出力線Ｚ２の出力ｚ２は、同じく乱数ｒと出力ｄをＸＯＲ演算した値である（ｚ２＝ｄ  ＸＯＲ  ｒ）。入力ａ、ｂ、ｃをＸＯＲ演算する乱数信号ｒと出力ｄをＸＯＲ演算する乱数信号ｒは同じ値であり、乱数信号ｒはゲート動作ごとに毎回異なる値にする。
【００６８】
また、論理演算回路１０ａは、入力信号ａ、ｂ、ｃをＯＲＮＡＮＤ（論理和否定論理積）演算した結果を乱数信号ｒとＸＯＲ演算した出力ｚ１を得るためのＯＲＮＡＮＤ／ＡＮＤＮＯＲ（論理積否定論理和）演算回路である。乱数信号ｒが“０”の場合、論理演算回路１０ａは、入力信号Ｘ、Ｙ、ＷのＯＲＮＡＮＤ演算回路として機能する（ｚ１＝（Ｘ  ＯＲ  Ｙ）ＮＡＮＤ  Ｗ）。また、乱数信号ｒが“１”の場合、論理演算回路１０ａは、入力信号Ｘ、Ｙ、ＷのＡＮＤＮＯＲ演算回路として機能する（ｚ１＝（Ｘ  ＡＮＤ  Ｙ）ＮＯＲ  Ｗ）。その原理は、式（４）から式（６）に示される。
【００６９】
ｚ１＝（（ａ  ＯＲ  ｂ）  ＮＡＮＤ  ｃ）  ＸＯＲ  ｒ  ・・・（４）
【００７０】
式（４）は、論理演算回路１０ａの論理演算を示す式である。
【００７１】
［ｒ＝“０”の場合］
Ｘ＝ａ  ＸＯＲ  ｒ＝ａ、Ｙ＝ｂ  ＸＯＲ  ｒ＝ｂ、Ｗ＝ｃ  ＸＯＲ  ｒ＝ｃ、
ｚ１＝（（ａ  ＯＲ  ｂ）  ＮＡＮＤ  ｃ）ＸＯＲ  ｒ＝（Ｘ  ＯＲ  Ｙ）  ＮＡＮＤ  Ｗ  ・・・（５）
【００７２】
式（５）は、乱数信号ｒが“０”の場合における論理演算回路１０ａの論理演算を示す式である。乱数信号ｒが“０”の場合、入力信号ａ、ｂ、ｃはそれぞれ入力信号Ｘ、Ｙ、Ｗと等しくなる。このため、論理演算回路１０ａの出力線Ｚ１の論理は、入力信号Ｘ、Ｙ、ＷのＯＲＮＡＮＤ演算したものになる。
【００７３】
［ｒ＝“１”の場合］
Ｘ＝ａ  ＸＯＲ  ｒ＝ＮＯＴ（ａ）、Ｙ＝ｂ  ＸＯＲ  ｒ＝ＮＯＴ（ｂ）、Ｗ＝ｃ  ＸＯＲ  ｒ＝ＮＯＴ（ｃ）、
ｚ１＝ＮＯＴ（（ＮＯＴ（Ｘ）  ＯＲ  ＮＯＴ（Ｙ））ＮＡＮＤ  ＮＯＴ（Ｗ））＝ＮＯＴ（（Ｘ  ＡＮＤ  Ｙ）ＯＲ  Ｗ）＝（Ｘ  ＡＮＤ  Ｙ）ＮＯＲ  Ｗ  ・・・（６）
【００７４】
式（６）は、乱数信号ｒが“１”の場合における論理演算回路１０ａの論理演算を示す式である。乱数信号ｒが“１”の場合、入力信号ａ、ｂ、ｃはそれぞれ入力信号Ｘ、Ｙ、ＷのＮＯＴ演算した値になる。このため、論理演算回路１０ａの出力線Ｚ１の論理は、入力信号Ｘ、Ｙ、ＷをそれぞれＮＯＴ演算したものをＯＲＮＡＮＤ演算し、更にその演算結果をＮＯＴ演算したものになる。ト゛・モルガンの定理により、（（ＮＯＴ（Ｘ）  ＯＲ  ＮＯＴ（Ｙ））ＮＡＮＤ  ＮＯＴ（Ｗ））は、入力信号Ｘ、Ｙ、ＷのＡＮＤＯＲ（論理積論理和）演算（（Ｘ  ＡＮＤ  Ｙ）ＯＲ  Ｗ）に置き換えられる。これにより、論理演算回路１０ａの出力線Ｚ１の論理は、入力信号Ｘ、Ｙ、ＷのＡＮＤＮＯＲ演算したものになる。
【００７５】
論理演算回路１０ａは、乱数信号ｒが“０”の場合、Ｐネット部１１ａのＰＭＯＳ１１５ａがオンして、ＰＭＯＳ１１１ａ、１１２ａ、１１６が有効になる。また、Ｎネット部１２ａのＮＭＯＳ１２５ａがオフして、ＮＭＯＳ１２１ａ、１２２ａ、１２６が無効になる。これにより、出力線Ｚ１は、ＰＭＯＳ１１１ａ、１１２ａ、１１６と、ＮＭＯＳ１２３ａ、１２４ａ、１２７とで論理演算される出力論理状態が出力される。つまり、論理演算回路１０ａは、入力信号Ｘ、Ｙ、ＷのＯＲＮＡＮＤ演算回路として機能する。なお、この場合、ＰＭＯＳ１１３ａ、１１４ａ、１１７は、出力論理状態を決める際に関係しない。
また、論理演算回路１０ａは、乱数信号ｒが“１”の場合、Ｐネット部１１ａのＰＭＯＳ１１５ａがオフして、１１１ａ、１１２ａ、１１６が無効になる。また、Ｎネット部１２ａのＮＭＯＳ１２５ａがオンして、ＮＭＯＳ１２１ａ、１２２ａ、１２６が有効になる。これにより、出力線Ｚ１は、ＮＭＯＳ１２１ａ、１２２ａ、１２６と、ＰＭＯＳ１１３ａ、１１４ａ、１１７とで論理演算される出力論理状態が出力される。つまり、論理演算回路１０ａは、入力信号Ｘ、Ｙ、ＷのＡＮＤＮＯＲ演算回路として機能する。なお、この場合、ＮＭＯＳ１２３ａ、１２４ａ、１２７は、出力論理状態を決める際に関係しない。
【００７６】
論理演算回路１０ａにより論理演算された出力ｚ１は、出力線Ｚ１を介して出力段回路３０に供給される。出力段回路３０は、出力ｚ１の出力論理状態を反転して、出力線Ｚ２に出力ｚ２として出力する。これにより、論理回路１ｃは、乱数信号ｒに応じて、入力信号Ｘ、Ｙ、ＷのＯＲＡＮＤ演算結果（ｚ２＝（Ｘ  ＯＲ  Ｙ）ＡＮＤ  Ｗ）、又は入力信号Ｘ、Ｙ、ＷのＡＮＤＯＲ演算結果（ｚ２＝（Ｘ  ＡＮＤ  Ｙ）ＯＲ  Ｗ）を出力線Ｚ２に出力する。
【００７７】
図１１は、本実施形態における論理回路１ｃの論理表を示す図である。
図１１において、入力信号Ｘ、Ｙ、Ｗの組合せ８通りと乱数信号ｒの組合せを合わせた１６通りの組合せに応じて、出力線Ｚ２の出力ｚ２の状態を示している。乱数信号ｒの値に応じて、出力ｚ２が論理反転していることがわかる。乱数信号ｒはランダムに値が変わるため、入力信号ａ、ｂ、ｃが同じであっても、出力ｚ２がランダムに変動する。
【００７８】
論理回路１ｃにおける、入力信号Ｘ、Ｙ、Ｗ、乱数信号ｒ、及び制御信号ｅｎ１、ｅｎ２の制御シーケンスは、図３が示すタイムチャートと同様である。入力信号Ｗは、入力信号Ｘ、Ｙと同じタイミング（時刻Ｔ２から時刻Ｔ３）で変更する。
【００７９】
以上のように、出力制御部２０が、制御信号ｅｎ１に応じて論理演算回路１０ａの出力線Ｚ１の出力状態を制御する。出力制御部２０は、出力無効状態にある場合に、ＮＭＯＳ２２により論理演算回路１０ａの出力線Ｚ１から電源線ＧＮＤに通じる経路を遮断し、ＰＭＯＳ２１により電源線ＶＤＤと出力線Ｚ１とを導通して、Ｈ状態に充電する。これにより、入力信号の組合せによらず、充電経路の数がＰＭＯＳ２１による１本になる。そのため、論理回路１ｃは、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂ、ｃと相関する電力消費波形の統計的結果の変化を低減できる。
また、論理演算回路１０ａの後段に設けられた出力段回路３０が、制御信号ｅｎ２に応じてマスク状態に切り替わる。出力段回路３０は、マスク状態にある場合に、出力線Ｚ１の出力状態を無効にして論理回路１ｃの出力線Ｚ２をＬ状態に保持する。これにより、論理回路１ｃは、論理演算回路１０ａの出力線の動作タイミングの変化をマスクし、論理回路１ｃの後段のゲートの動作タイミングの変化を低減できる。そのため、論理回路１ｃは、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。これにより、入力信号ａ、ｂ、ｃと相関する電力消費波形の変化を低減できる。
【００８０】
なお、本発明の実施形態によれば、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、電源線ＶＤＤの電位が供給され、電源線ＶＤＤの電位より低い電源線ＧＮＤの電位が供給され、入力される入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）と乱数信号ｒとに基づいて生成される出力論理状態を出力線Ｚ１に出力する論理演算回路１０（又は１０ａ）と、入力される制御信号ｅｎ１に応じて出力線Ｚ１の出力状態を制御し、出力論理状態を無効とする出力無効状態である場合に、出力線Ｚ１から電源線ＧＮＤに通じる経路を遮断し、電源線ＶＤＤの電位により出力線Ｚ１を充電する出力制御部２０と、論理演算回路１０（又は１０ａ）の後段に設けられ、出力線Ｚ１の出力状態に基づいて出力する状態を無効とするマスク状態に、入力される制御信号ｅｎ２に応じて切り替える出力段回路３０とを備える。
これにより、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）の組合せによらず、充電経路の数がＰＭＯＳ２１による１本になる。そのため、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、充電経路の平均数が異なるために生じる電力消費波形の変化を低減できる。
また、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、出力段回路３０により、論理演算回路１０（又は１０ａ）の出力線Ｚ１の動作タイミングの変化をマスクし、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）の後段のゲートの動作タイミングの変化を低減できる。そのため、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。
【００８１】
また、出力制御部２０は、出力無効状態を解除した場合、出力線Ｚ１から電源線ＧＮＤに通じる経路を導通させ、生成される論理状態に応じて、電源線ＧＮＤの電位により出力線Ｚ１を放電する。
また、論理演算回路１０（又は、１０ａ）は、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）と乱数信号ｒとに基づいて電源線ＶＤＤの電位により出力線Ｚ１を充電するＰネット部１１（又は１１ａ）と、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）と乱数信号ｒとに基づいて電源線ＧＮＤの電位により出力線Ｚ１を放電するＮネット部１２（又は１２ａ）とが相補に動作して出力論理状態を生成する。また、出力線Ｚ１から電源線ＧＮＤに通じる経路は、出力線Ｚ１からＮネット部１２（又は１２ａ）を介して電源線ＧＮＤに通じる経路である。
これにより、出力線Ｚ１の負荷容量を電源線ＧＮＤに放電することで、論理演算回路１０（又は１０ａ）の出力論理状態になる。この放電電流は、論理回路１内で消費されるため、外部からの電力消費として観測されない。論理演算回路１０（又は１０ａ）の出力論理状態を決める際に、電力消費波形に影響を与えない。
【００８２】
また、論理回路１ａ（又は１ｂ）は、制御信号ｅｎ１（ｅｎ１ｂ）（又は制御信号ｅｎ２）に応じて、電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断するＰネット遮断部４０（又は４０ａ）を備える。
これにより、出力制御部２０が電源線ＶＤＤの電位により出力線Ｚ１を充電する際に、Ｐネット部１１を出力線Ｚ１から遮断することができる。そのため、出力制御部２０は、入力信号Ｘ、Ｙと乱数信号ｒの状態によらず、ＰＭＯＳ２１により１本の経路により出力線Ｚ１を充電することができる。
【００８３】
また、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）及び乱数信号ｒは、出力制御部２０が出力無効状態にあり、出力線Ｚ１が電源線ＶＤＤの電位になった後に、変更される。出力制御部２０は、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）及び乱数信号ｒの変更が確定した後に、制御信号ｅｎ１に基づいて出力無効状態を解除する。出力段回路３０は、出力無効状態が解除され、出力線Ｚ１の出力状態が確定した後に、制御信号ｅｎ２に基づいてマスク状態を解除する。
これにより、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）及び乱数信号ｒが遷移する際に消費される電力を低減し、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）の組合せによらず確実に、充電経路をＰＭＯＳ２１による１本にできる。そのため、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、充電経路の平均数が異なるために生じる電力消費波形の変化をより低減できる。また、論理演算回路１０（又は１０ａ）の出力線Ｚ１の動作タイミングの変化を確実にマスクできる。そのため、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）の後段のゲートの動作タイミングの変化をより低減できる。
【００８４】
また、入力信号Ｘ、Ｙ及び乱数信号ｒは、出力制御部２０が出力無効状態にあり、Ｐネット遮断部４０（又は４０ａ）が電源線ＶＤＤからＰネット部１１を介して出力線Ｚ１に通じる経路を遮断した後に変更される。出力制御部２０は、入力信号Ｘ、Ｙ及び乱数信号ｒの変更が確定した後に、制御信号ｅｎ１に基づいて出力無効状態を解除する。出力段回路３０は、出力無効状態が解除され、出力線Ｚ１の出力状態が確定した後に、制御信号ｅｎ１に基づいてマスク状態を解除する。
これにより、入力信号Ｘ、Ｙ及び乱数信号ｒの変更タイミングを早めることができる。また、入力信号である制御信号ｅｎ１（又はｅｎ２）の状態により、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを判断できる。そのため、論理回路１ａ（又は１ｂ）は、入力信号Ｘ、Ｙと乱数信号ｒを変更するタイミングを容易に決定できる利点がある。
【００８５】
また、論理演算回路１０（又は１０ａ）は、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）に基づいて予め定められた論理演算処理に応じた論理状態を生成し、乱数信号ｒに基づき、入力信号Ｘ、Ｙ（又はＸ、Ｙ、Ｗ）を反転させた論理演算処理を行うか否か、及び出力論理状態を論理状態から反転したものにするか否かを切り替える。
これにより、論理演算回路１０（又は１０ａ）は、乱数信号ｒに基づき、ＮＡＮＤ論理演算とＮＯＲ論理演算（又はＯＲＮＡＮＤ論理演算とＡＮＤＮＯＲ論理演算）を切り替えることができる。そのため、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）は、出力線Ｚ２の出力ｚ２を乱数ｒによりランダムに遷移させることができる。
【００８６】
また、本発明の実施形態によれば、ＩＣカード２００は、秘密鍵と情報を記憶するＥＥＰＲＯＭ２４０と、乱数信号Ｒを生成する乱数生成部２７０と、論理回路（１、１ａ、１ｂ、１ｃの少なくともいずれか）を含み、秘密鍵に応じて暗号処理又は復号処理の少なくともいずれか一方を行う暗号処理部２６０とを備える。
これにより、ＩＣカード２００は、暗号処理又は復号処理において、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）の充電経路の平均数が異なるために生じる電力消費波形の変化、及び論理回路の後段のゲートの動作タイミングが異なるために生じる電力消費波形の変化を低減できる。結果として、ＩＣカード２００は、電力消費の統計値と秘密鍵の相関を低減でき、電力解析攻撃を防止する効果が期待できる。
【００８７】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。Ｐネット部１１、１１ａ、Ｎネット部１２、１２ａは、各実施形態に限定されるものではなく、例えば、直列接続されたＮＭＯＳ又はＰＭＯＳの接続順序は別の順序で接続された形態でも良い。また、論理演算回路１０、１０ａは、ＮＡＮＤ／ＮＯＲ演算回路とＯＲＮＡＮＤ／ＡＮＤＮＯＲ演算回路の形態を説明したが、これに限定されるものではなく、他の論理演算を行う形態でも良い。
また、論理演算回路１０、１０ａにおいて、乱数信号ｒの代わりに乱数信号ｒの反転信号を使用しても良い。例えば、論理演算回路１０に乱数信号ｒの反転信号を使用した場合、論理演算回路１０は、乱数信号ｒが“０”の場合にＮＯＲ論理、乱数信号ｒが“１”の場合にＮＡＮＤ論理となり、異なる論理演算を行う論理演算回路（ＮＯＲ／ＮＡＮＤ演算回路）に容易に変更することができる。論理演算回路１０ａに乱数信号ｒの反転信号を使用した場合、ＡＮＤＮＯＲ／ＯＲＮＡＮＤ演算回路となる。
また、出力段回路３０の出力段制御部３２は、マスク状態の場合に出力線Ｚ２を“０”に保持する形態を説明したが、ＰＭＯＳ３２１とＮＭＯＳ３２２の位置を変えて“１”を保持する形態でも良い。ただしこの場合、制御信号ｅｎ２の論理を反転する必要がある。
【００８８】
また、Ｐネット遮断部４０（又は４０ａ）は、Ｐネット部１１と出力線Ｚ１の間に配置する形態を説明したが、電源線ＶＤＤとＰネット部１１の間に配置する形態でも良い。また、ＮＭＯＳ２２は、Ｎネット部１２（又は１２ａ）と電源線ＧＮＤの間に配置する形態を説明したが、出力線Ｚ１とＮネット部１２（又は１２ａ）の間に配置する形態でも良い。また、ＰＭＯＳ３２１も同様に、ＰＭＯＳ３１１と出力線Ｚ２の間に配置しても良い。
また、論理演算回路１０（又は１０ａ）及び出力制御部２０に使用する電源線ＶＤＤと、出力段回路３０に使用する電源線ＶＤＤとは、同じ電位の形態を説明したが、異なる電位の電源を使用して、レベルシフタを介して接続しても良い。
また、第１、第３の実施形態において、制御信号ｅｎ２をＨ状態にする時刻Ｔ１Ｌは、制御信号ｅｎ１をＬ状態にする時刻Ｔ０Ｈ以前でも良い。また、第２の実施形態において、制御信号ｅｎ２をＨ状態にする時刻Ｔ１Ｌは、制御信号ｅｎ１をＬ状態にする時刻Ｔ０Ｈ以降でも良い。
【００８９】
また、本発明の情報記憶媒体は、第４の実施形態のＩＣカード２００に限定されるものではない。例えば、暗号処理機能を備えたＵＳＢ（Universal Serial Bus）メモリやＳＤ（エスディー）メモリカードでも良いし、他の形態の情報記憶媒体でも良い。また、インタフェース部２５０は、コンタクトによる接触式インタフェースでも良いし、非接触式インタフェースでも良い。また、暗号処理部２６０が使用する暗号方式は、ＤＥＳ暗号に限定されるものではなく、ＡＥＳ（Advanced Encryption Standard）暗号などの共通鍵暗号や、ＲＳＡ（アールエスエイ）暗号、楕円曲線暗号などの公開鍵暗号、あるいはＳＨＡ−１（Secure Hash Algorithm−１）などのハッシュ関数でも良く、他の暗号方式でも良い。また、第４の実施形態において、ＩＣカード２００は、暗号処理と復号処理の両方を行う形態を説明したが、いずれか一方を処理する形態でも良い。
また、ＩＣカード２００は、情報を記憶する書き換え可能な不揮発性メモリとしてＥＥＰＲＯＭ２４０を備える形態を説明したが、他の書き換え可能な不揮発性メモリを備える形態でも良い。例えば、フラッシュメモリやＦｅＲＡＭ（Ferroelectric Random Access Memory）などのメモリを備える形態でも良い。
また、ＩＣカード２００は、暗号復号回路２６４に論理回路１を含む形態を説明したが、論理回路１ａ、１ｂ、１ｃの内のいずれか１つ又は複数を含む形態でも良い。
なお、本発明の消費電力錯乱型論理回路は、論理回路１（又は１ａ、１ｂ、１ｃのいずれか）に対応する。
【符号の説明】
【００９０】
１、１ａ、１ｂ、１ｃ  論理回路
１０、１０ａ  論理演算回路
１１、１１ａ  Ｐネット部
１２、１２ａ  Ｎネット部
２０  出力制御部
２１  ＰＭＯＳ
２２  ＮＭＯＳ
３０  出力段回路
３１  インバータ部
３２  出力段制御部
４０、４０ａ  Ｐネット遮断部
１１１、１１１ａ、１１２、１１２ａ、１１３、１１３ａ、１１４、１１４ａ、１１５１１５ａ、１１６、１１７  ＰＭＯＳ
１２１、１２１ａ、１２２、１２２ａ、１２３、１２３ａ、１２４、１２４ａ、１２５１２５ａ、１２６、１２７  ＮＭＯＳ
２００  ＩＣカード
２１０  制御部
２２０  ＲＡＭ
２３０  ＲＯＭ
２４０  ＥＥＰＲＯＭ
２５０  インタフェース部
２６０  暗号処理部
２６１  入力データレジスタ
２６２  暗号キーレジスタ
２６３  制御レジスタ
２６４  暗号復号回路
２６５  出力データレジスタ
２７０  乱数生成部
３００  外部装置
３１１、３２１  ＰＭＯＳ
３１２、３２２  ＮＭＯＳ
【図１】
2011188009.tif 000003
【図２】
2011188009.tif 000004
【図３】
2011188009.tif 000005
【図４】
2011188009.tif 000006
【図５】
2011188009.tif 000007
【図６】
2011188009.tif 000008
【図７】
2011188009.tif 000009
【図８】
2011188009.tif 000010
【図９】
2011188009.tif 000011
【図１０】
2011188009.tif 000012
【図１１】
2011188009.tif 000013
【図１２】
2011188009.tif 000014