(57)【要約】【課題】  テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止する。【解決手段】  排他的論理和回路121〜12nが、入力データa1〜anに対し、乱数発生器11に生成されたマスク値m1〜m1との排他的論理和を算出してマスク済入力データx1〜xnを得る入力構成と、排他的論理和回路14が、各マスク済演算結果データy,rの排他的論理和から得た出力データf(a1,…,an)を出力する出力構成とにより、テーブルを用いずに実現できる。また、マスク素子回路部13が、互いに異なる順番の組合せ(xi,mk),(xi,xk),(mi,mk)を論理演算する構成により、マスクされる前の入力データa1〜anを露呈してしまうことがなく、マスクされる前の入力a1〜anと相関の無い内部信号で動作し、中間情報の漏洩を阻止する。【選択図】  図１
2005318476.tif 000002
【特許請求の範囲】
【請求項１】
ｎ（ｎ≧２）個の一ビットの入力値を論理演算し１個の一ビットの結果値を得る論理演算装置に利用されるマスク素子回路であって、
マスク用の値としてｎ個のマスク値を入力する第１入力手段と、
前記ｎ個の入力値と対応付けた前記ｎ個のマスク値で排他的論理和されたｎ個の被マスク化値を入力する第２入力手段と、
入力される前記ｎ個のマスク値と入力される前記ｎ個の被マスク化値との組み合わせによって、それぞれ１ビットの第１と第２の出力値が決まるゲート群であって、前記第１の出力値と前記第２の出力値とを排他的論理和すると前記一ビットの結果値と一致するような前記第１の出力値と前記第２の出力値とを得るゲート群と、
前記第１の出力値と前記第２の出力値とを出力する出力手段と
を備えたことを特徴とするマスク素子回路。
【請求項２】
請求項１に記載のマスク素子回路において、
前記ゲート群に含まれる各ゲートの出力値と前記一ビットの結果値との間に相関が無いことを特徴とするマスク素子回路。
【請求項３】
入力されたｎ個の１ビット入力データ｛ａ１，…，ａｎ｝の関数ｆ（ａ１，…，ａｎ）を出力する際に、前記各入力データ｛ａ１，…，ａｎ｝をｎ個の１ビットマスク値｛ｍ１，…，ｍｎ｝の排他的論理和(xor)によりマスクする機能と、前記マスクにより得られた各マスク済入力データ｛ｘ１，…，ｘｎ｝(但し、ｘｉ＝ａｉ xor ｍｉ、１≦ｉ≦ｎ)及び前記マスク値｛ｍ１，…，ｍｎ｝を論理演算する論理演算機能と、前記論理演算機能により得られた２個の１ビットマスク済演算結果データｙ，ｒから互いの排他的論理和により前記マスクの影響を除去し、得られた１個の１ビット出力データｆ（ａ１，…，ａｎ）を出力する出力機能とを有するマスク論理回路であって、
前記論理演算機能は、
前記各マスク済入力データ｛ｘ１，…，ｘｎ｝及び前記マスク値｛ｍ１，…，ｍｎ｝から前記各マスク済演算結果データｙ，ｒを得るまでの途中結果を前記各入力データ｛ａ１，…，ａｎ｝とは相関が無いように生成するように、複数の論理素子からなる１種類以上の複数のマスク論理素子が互いに接続されてなり、
前記各マスク論理素子は、
前記各１ビットマスク済入力データ｛ｘ１，…，ｘｎ｝及び前記各１ビットマスク値｛ｍ１，…，ｍｎ｝を順番１，…，ｎで区別するとき、互いに同じ順番同士の複数の各１ビットマスク済入力データ及び各１ビットマスク値が入力された際に、当該各１ビットマスク済入力データ及び各１ビットマスク値の各々を２つに分岐させる機能と、
各々が分岐された各１ビットマスク済入力データ及び各１ビットマスク値のうち、互いに異なる順番の各１ビットマスク済入力データ及び／又は各１ビットマスク値を前記各論理素子により演算する機能と、
を備えたことを特徴とするマスク論理回路。
【請求項４】
請求項３に記載のマスク論理回路において、
前記各マスク論理素子のうち、第１の種類（論理積）のマスク論理素子は、
同じ順番ｊ（但し、１≦ｊ≦ｎ）のマスク済入力データとマスク値との組｛ｘｊ，ｍｊ｝と、他の同じ順番ｋ（但し、１≦ｋ≦ｎ、ｋ≠ｊ）のマスク済入力データとマスク値との組｛ｘｋ，ｍｋ｝とが入力されると、途中結果の演算を介して２個の１ビットマスク済論理積結果データｙAND，ｒANDを生成する生成機能を有し、
前記各マスク済論理積結果データｙAND，ｒANDは、
ｙAND xor ｒAND＝ａｊ and ａｋの関係（但し、andは論理積）を満たし、且つ前記途中結果が順番ｊ，ｋの入力データ｛ａｊ，ａｋ｝と相関が無いことを特徴とするマスク論理回路。
【請求項５】
請求項４に記載のマスク論理回路において、
前記第１の種類のマスク論理素子における生成機能は、
下記式［ＡＮＤ１］〜［ＡＮＤ１２］のうち、いずれかの式に示すように、論理積and、論理和or、否定not及び排他的論理和xorのうちの幾つかを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済論理積結果データｙAND，ｒANDを生成することを特徴とするマスク論理回路。
［ＡＮＤ１］
ｙAND＝(ｘｊ and ｘｋ) or (ｍｊ and (not ｘｋ))
ｒAND＝(ｘｊ and ｍｋ) or (ｍｊ and (not ｍｋ))
［ＡＮＤ２］
ｙAND＝(ｘｊ and ｍｋ) or (ｍｊ and (not ｍｋ))
ｒAND＝(ｘｊ and ｘｋ) or (ｍｊ and (not ｘｋ))
［ＡＮＤ３］
ｙAND＝not ( (ｘｊ and ｘｋ) or (ｍｊ and (not ｘｋ)) )
ｒAND＝not ( (ｘｊ and ｍｋ) or (ｍｊ and (not ｍｋ)) )
［ＡＮＤ４］
ｙAND＝not ( (ｘｊ and ｍｋ) or (ｍｊ and (not ｍｋ)) )
ｒAND＝not ( (ｘｊ and ｘｋ) or (ｍｊ and (not ｘｋ)) )
［ＡＮＤ５］
ｙAND＝(ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ))
ｒAND＝(ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ))
［ＡＮＤ６］
ｙAND＝(ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ))
ｒAND＝(ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ))
［ＡＮＤ７］
ｙAND＝not ( (ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ)) )
ｒAND＝not ( (ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ)) )
［ＡＮＤ８］
ｙAND＝not ( (ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ)) )
ｒAND＝not ( (ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ)) )
［ＡＮＤ９］
ｙAND＝(not (ｘｊ and ｘｋ) ) xor (ｍｊ and (not ｘｋ))
ｒAND＝(not (ｘｊ and ｍｋ) ) xor (ｍｊ and (not ｍｋ))
［ＡＮＤ１０］
ｙAND＝(not (ｘｊ and ｍｋ) ) xor (ｍｊ and (not ｍｋ))
ｒAND＝(not (ｘｊ and ｘｋ) ) xor (ｍｊ and (not ｘｋ))
［ＡＮＤ１１］
ｙAND＝not ( (ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ)) )
ｒAND＝not ( (ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ)) )
［ＡＮＤ１２］
ｙAND＝not ( (ｘｊ and ｍｋ) xor (ｍｊ and (not ｍｋ)) )
ｒAND＝not ( (ｘｊ and ｘｋ) xor (ｍｊ and (not ｘｋ)) )
【請求項６】
請求項４又は請求項５に記載のマスク論理回路において、
前記各マスク論理素子のうち、第２の種類（論理和）のマスク論理素子は、
同じ順番ｇ（但し、１≦ｇ≦ｎ、ｇ≠ｊ，ｇ≠ｋ）のマスク済入力データとマスク値との組｛ｘｇ，ｍｇ｝と、他の同じ順番ｈ（但し、１≦ｈ≦ｎ、ｈ≠ｇ、ｈ≠ｊ、ｈ≠ｋ）のマスク済入力データとマスク値との組｛ｘｈ，ｍｈ｝とが入力されると、途中結果の演算を介して２個の１ビットマスク済論理積結果データｙOR，ｒORを生成する生成機能を有し、
前記各マスク済論理和結果データｙOR，ｒORは、
ｙOR xor ｒOR＝ａｇ or ａｈの関係（但し、orは論理和）を満たし、且つ前記途中結果が順番ｇ，ｈの入力データ｛ａｇ，ａｈ｝と相関が無いことを特徴とするマスク論理回路。
【請求項７】
請求項６に記載のマスク論理回路において、
前記第２の種類のマスク論理素子における生成機能は、
下記式［ＯＲ１］〜［ＯＲ４］のうち、いずれかの式に示すように、論理積and、論理和or及び否定notを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済論理和結果データｙOR，ｒORを生成することを特徴とするマスク論理回路。
［ＯＲ１］
ｙOR＝not ( ((not ｘｇ) and (not ｘｈ)) or (ｍｇ and ｘｈ))
ｒOR＝((not ｘｇ) and ｍｈ) or (ｍｇ and (not ｍｈ))
［ＯＲ２］
ｙOR＝((not ｘｇ) and (not ｘｈ)) or (ｍｇ and ｘｈ)
ｒOR＝not ( ((not ｘｇ) and (not ｍｈ)) or (ｍｇ and ｍｈ))
［ＯＲ３］
ｙOR＝not ( (ｘｇ and ｘｈ) or ((not ｍｇ) and (not ｘｈ)) )
ｒOR＝(ｘｇ and (not ｍｈ)) or ((not ｍｇ) and ｍｈ)
［ＯＲ４］
ｙOR＝(ｘｇ and ｘｈ) or ((not ｍｇ) and (not ｘｈ))
ｒOR＝not ( (ｘｇ and (not ｍｈ)) or ((not ｍｇ) and ｍｈ) )
【請求項８】
請求項４乃至請求項７のいずれか１項に記載のマスク論理回路において、
前記各マスク論理素子のうち、第３の種類（否定）のマスク論理素子は、
同じ順番ｐ（但し、１≦ｐ≦ｎ、ｐ≠ｊ、ｐ≠ｋ、ｐ≠ｇ、ｐ≠ｈ）のマスク済入力データとマスク値との組｛ｘｐ，ｍｐ｝が入力されると、２個の１ビットマスク済否定結果データｙNOT，ｒNOTを生成する生成機能を有し、
前記各マスク済否定結果データｙNOT，ｒNOTは、
ｙNOT xor ｒNOT＝not ａｐの関係（但し、notは論理和）を満たすことを特徴とするマスク論理回路。
【請求項９】
請求項８に記載のマスク論理回路において、
前記第３の種類のマスク論理素子における生成機能は、
下記式［ＮＯＴ１］又は［ＮＯＴ２］に示すように、否定notを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済否定結果データｙNOT，ｒNOTを生成することを特徴とするマスク論理回路。
［ＮＯＴ１］
ｙNOT＝not ｘｐ
ｒNOT＝ｍｐ
［ＮＯＴ２］
ｙNOT＝ｘｐ
ｒNOT＝not ｍｐ
【請求項１０】
請求項４乃至請求項９のいずれか１項に記載のマスク論理回路において、
前記各マスク論理素子の出力は、他のマスク論理素子への入力又は前記出力機能による出力であることを特徴とするマスク論理回路。
【請求項１１】
請求項１０に記載のマスク論理回路を備えた暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティを高めるためのマスク論理回路及び暗号装置に係り、特に、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止し得るマスク論理回路及び暗号装置に関する。
【背景技術】
【０００２】
近年、ＩＣカードのように、内部に秘密情報の暗号鍵を保持し、外部から入力された平文を暗号鍵により暗号化し、得られた暗号文を出力するといった暗号装置の重要性が増してきている。係る暗号装置は、暗号装置本体を分解し、内部の秘密情報を暴く攻撃について対策が講じられている。
【０００３】
しかしながら、最近、電力解析(power analysis)や時間解析(timing attack)のように、暗号装置本体を分解しない攻撃が登場した。これらの攻撃は、暗号処理に要した消費電力や時間のような、暗号装置設計者が考慮しなかった二次情報から秘密情報を解析するものである。一般に、サイドチャネル攻撃(side channel attack)と呼ばれる。
【０００４】
この種のサイドチャネル攻撃の一つに、電力差分攻撃(ＤＰＡ ： Differential Power Analysis)がある。この電力差分攻撃（以下、ＤＰＡという）は、共通鍵暗号方式に有効であることが知られている。その理由は次の(i)〜(iii)の通りである。
【０００５】
(i)元々共通鍵暗号は、処理中の中間情報を知ることができないという暗黙の前提により安全であった。(ii)しかしながら、ＤＰＡによれば、処理中の中間情報を二次情報の形で検出可能である。(iii)この二次情報は、暗号装置設計者の予想を越えて秘密情報と相関があるので、秘密情報の解析に有効である。
【０００６】
このようにＤＰＡが有効な攻撃手法であるため、様々な対策が提案されている。これらの対策は、いずれも同じ原理に基づく。すなわち、様々な対策は、入力に乱数を作用させてから暗号化（復号）処理を行い、最後に出力から乱数の影響を除去し、中間情報の漏洩を阻止するという同じ原理に基づく。ここで「乱数を作用させる」ことは「マスクする」という用語で呼ばれる。
【０００７】
共通鍵暗号のアルゴリズムは、非線形な部分と線形な部分に分けて対策を適用可能である。線形な部分は、対策を効率的に適用可能である。一方、非線形な部分は、対策を効率的に適用することが困難である。
【０００８】
非線形な部分の対策は、例えばテーブルを用いる方式がある。この方式では、共通鍵暗号のＳボックスのような非線形部分を関数ｆ(ｘ)で表すとき、例えばｆ(ｘ＋ｒ１)＋ｒ２というテーブルを用意する。このテーブル中、ｒ１，ｒ２はランダムに選ばれた定数であり、マスクと呼ばれる。
【０００９】
この方式では、予め入力ｘからマスクｒ１を減算すると、本来の出力ｆ(ｘ)に定数ｒ２を加算した結果を得る。
【００１０】
ｆ((ｘ−ｒ１)＋ｒ１)＋ｒ２＝ｆ(ｘ)＋ｒ２
しかしながら、この方式は、本来の出力ｆ(ｘ)とは異なる結果を得るが、本来の入力ｘと相関した計算をするので、ＤＰＡ対策にはならない。また、この方式は、テーブルを作るために定数ｒ１，ｒ２を固定する必要があるが、定数ｒ１，ｒ２を固定すると、攻撃が容易になる。そのため、もう一段の工夫が必要である。このような工夫をした方式としては、テーブル書換方法及びテーブル切替方法が知られている。
【００１１】
テーブル書換方法は、テーブルをＲＡＭのような書換可能なメモリ上に置き、定期的に乱数発生等により新しいマスクを作り、テーブルを書き換える方式である。
【００１２】
テーブル切替方法は、複数のマスクに対応する複数のテーブルを予め用意し、乱数により切り替えて使う方式である（例えば、特許文献１参照。）。この方式はＲＯＭのような書換不可のメモリでも実現可能である。
【００１３】
しかしながら、テーブル書換方法は、非線形部分の入力の範囲にもよるが、テーブルを作り直すので時間がかかるという問題がある。しかし、マスクを自由に選べるので、安全性が高いという利点がある。
【００１４】
一方、テーブル切替方法は、マスクが取り得る値の種類が増えると予め用意するテーブルの数が増えるので、安全性を高めるとテーブルに必要なメモリのサイズも増大する問題がある。しかし、テーブル書換方法とは異なり、事前計算によりテーブルを用意できるので余分な計算時間が不要になる利点がある。
【００１５】
まとめると、テーブル書換方法は、安全性を高めると、書換処理の負荷を増大させる問題が生じる。テーブル切替方法は、安全性を高めると、メモリサイズを増大させる問題が生じる。
【００１６】
一方、テーブルの実現方法には、メモリに保持する方法の他に、論理回路で実現する方法が知られている。この方法では、テーブル自体を真理値表とみなし、この真理値表を実現する論理回路を構成する。論理回路は、アンド(AND)回路やオア(OR)回路等の複数の論理素子で構成され、一般に、非常に複雑な構造をしている。しかしながら、現在では、コンピュータによる設計により、テーブルを論理回路で構成すること自体は容易である。テーブルを論理回路で構成する利点は、小規模の論理回路で済む点である。
【００１７】
しかしながら、テーブルを論理回路で構成する方法はＤＰＡ対策に使用されない。理由は本来の入力ｘと論理回路の内部信号とが相関の無い旨を保証できないからである。
【特許文献１】特開２００２−３６６０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
以上説明したように、従来のＤＰＡ対策方法では、テーブルをメモリで実現する場合、安全性を高めると、書換処理の負荷が増大するか又はメモリサイズを増大させてしまう問題が生じる。一方、テーブルを論理回路で構成する場合、本来の入力ｘと論理回路の内部信号とが相関の無い旨を保証できない問題がある。
【００１９】
本発明者の検討によれば、これらの問題は全てがテーブルを用いることに起因するため、テーブルを用いない方法を確立する必要があると考えられる。
【００２０】
本発明は上記実情を考慮してなされたもので、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止し得るマスク論理回路及び暗号装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
第１の発明は、  ｎ（ｎ≧２）個の一ビットの入力値を論理演算し１個の一ビットの結果値を得る論理演算装置に利用されるマスク素子回路であって、マスク用の値としてｎ個のマスク値を入力する第１入力手段と、前記ｎ個の入力値と対応付けた前記ｎ個のマスク値で排他的論理和されたｎ個の被マスク化値を入力する第２入力手段と、入力される前記ｎ個のマスク値と入力される前記ｎ個の被マスク化値との組み合わせによって、それぞれ１ビットの第１と第２の出力値が決まるゲート群であって、前記第１の出力値と前記第２の出力値とを排他的論理和すると前記一ビットの結果値と一致するような前記第１の出力値と前記第２の出力値とを得るゲート群と、前記第１の出力値と前記第２の出力値とを出力する出力手段とを備えたマスク素子回路である。
【００２２】
従って、第１の発明によれば、入力されるｎ個のマスク値と入力されるｎ個の被マスク化値との組み合わせによって、それぞれ１ビットの第１と第２の出力値が決まるゲート群であって、第１の出力値と第２の出力値とを排他的論理和すると一ビットの結果値と一致するような第１の出力値と第２の出力値とを得るゲート群を備えた構成により、テーブルを用いずに実現できる。
【００２３】
また、第１の発明によれば、ゲート群は、互いに排他的論理和すると一ビットの結果値と一致するような第１及び第２の出力値を得る構成であり、ゲート群としては第１及び第２の出力値を互いに排他的論理和せず、マスクされる前の入力と相関の無い内部信号で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
【００２４】
第２の発明は、入力されたｎ個の１ビット入力データ｛ａ１，…，ａｎ｝の関数ｆ（ａ１，…，ａｎ）を出力する際に、前記各入力データ｛ａ１，…，ａｎ｝をｎ個の１ビットマスク値｛ｍ１，…，ｍｎ｝の排他的論理和(xor)によりマスクする機能と、前記マスクにより得られた各マスク済入力データ｛ｘ１，…，ｘｎ｝(但し、ｘｉ＝ａｉ xor ｍｉ、１≦ｉ≦ｎ)及び前記マスク値｛ｍ１，…，ｍｎ｝を論理演算する論理演算機能と、前記論理演算機能により得られた２個の１ビットマスク済演算結果データｙ，ｒから互いの排他的論理和により前記マスクの影響を除去し、得られた１個の１ビット出力データｆ（ａ１，…，ａｎ）を出力する出力機能とを有するマスク論理回路であって、前記論理演算機能は、前記各マスク済入力データ｛ｘ１，…，ｘｎ｝及び前記マスク値｛ｍ１，…，ｍｎ｝から前記各マスク済演算結果データｙ，ｒを得るまでの途中結果を、前記各入力データ｛ａ１，…，ａｎ｝とは相関が無いように生成するための１種類以上の複数のマスク論理素子が互いに接続されてなり、前記各マスク論理素子は、前記各１ビットマスク済入力データ｛ｘ１，…，ｘｎ｝及び前記各１ビットマスク値｛ｍ１，…，ｍｎ｝のうち、互いに異なる順番の各１ビットマスク済入力データ及び／又は各１ビットマスク値同士を論理演算する機能を有するマスク論理回路である。
【００２５】
従って、第２の発明によれば、複数個の１ビットマスク値を生成し、各１ビット入力データと各１ビットマスク値との排他的論理和を算出し、各１ビットマスク済入力データを得る構成と、各マスク済演算結果データ同士の排他的論理和を算出し、得られた１個の１ビット出力データを出力する構成とにより、テーブルを用いずに実現できる。
【００２６】
また、第２の発明によれば、各１ビットマスク済入力データ及び各１ビットマスク値のうち、互いに異なる順番の各１ビットマスク済入力データ及び／又は各１ビットマスク値を論理演算する構成により、マスクされる前の入力データを露呈してしまうことがなく、マスクされる前の入力と相関の無い内部信号で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
【発明の効果】
【００２７】
以上説明したように本発明によれば、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止できるマスク論理回路及び暗号装置を提供できる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の各実施形態について図面を参照しながら説明する。  
（第１の実施形態）
図１は本発明の第１の実施形態に係るマスク論理回路の構成を示す模式図である。このマスク論理回路１０は、乱数発生器（マスク値生成手段）１１、入力側のｎ個の排他的論理和回路（マスク済データ生成手段）１２１〜１２ｎ、マスク素子回路部（論理演算手段）１３及び出力側の１個の排他的論理和回路（出力手段）１４を備えている。
【００２９】
ここで、乱数発生器１１は、ｎ個の１ビットマスク値ｍ１〜ｍｎを生成する機能と、各マスク値ｍ１〜ｍｎを個別に排他的論理和回路１２１〜１２ｎ及びマスク素子回路部１３に送出する機能とをもっている。但し、乱数発生器１１は、互いに異なるｎ個の乱数をｎ個のマスク値として用いる構成に限らず、互いに異なるｎ個未満の乱数をｎ個のマスク値として用いる構成としてもよい（ｎ個のマスク値は、互いに同じ値のマスク値の組を含んでもよい）。
【００３０】
排他的論理和回路１２１〜１２ｎは、入力されたｎ個の１ビット入力データａ１〜ａｎと、乱数発生器１１から送出された各マスク値ｍ１〜ｍｎとの排他的論理和を算出し、得られた各１ビットの各マスク済入力データｘ１〜ｘｎをマスク素子回路部１３に送出する機能をもっている。
【００３１】
マスク素子回路部１３は、排他的論理和回路１２１〜１２ｎから送出された各マスク済入力データｘ１〜ｘｎ及び乱数発生器１１から送出された各マスク値ｍ１〜ｍｎのうち、排他的論理和を算出したときの組合せ(ｘｉ，ｍｉ)とは異なる組合せ(ｘｉ，ｍｋ),(ｘｉ，ｘｋ)，(ｍｉ，ｍｋ)の各マスク済入力データｘ１，…，ｘｎ及び／又は各マスク値ｍ１，…，ｍｎを論理演算する機能と、論理演算結果として得られた２個の１ビットマスク済演算結果データｙ，ｒを排他的論理和回路１４に送出する機能をもっている。
【００３２】
詳しくは、マスク素子回路部１３は、入力されるｎ個のマスク値ｍ１〜ｍｎと入力されるｎ個のマスク済入力データ（被マスク化値）ｘ１〜ｘｎとの組み合わせによって、それぞれ１ビットのマスク済演算結果データ（第１と第２の出力値）ｙ，ｒが決まるゲート群であって、第１の出力値と第２の出力値とを排他的論理和すると１個の１ビット出力データ（一ビットの結果値、詳しくは入力データａ１〜ａｎの論理関数ｆ（ａ１，…，ａｎ）の結果値）と一致するような２個の１ビットマスク済演算結果データｙ，ｒを得るゲート群から構成されている。
【００３３】
なお、マスク素子回路部１３は、後述するようにマスクアンド素子mand、マスクオア素子mor、マスクノット素子mnot等が接続された論理回路であるが、本実施形態では、説明の簡単化のため、マスクアンド素子mandからなる回路部としている。
【００３４】
排他的論理和回路１４は、マスク素子回路部１３から送出された各マスク済演算結果データｙ，ｒ同士の排他的論理和を算出し、得られた１個の１ビット出力データを出力する機能をもっている。なお、各マスク済演算結果データｙ，ｒのうち、データｙはマスクされた出力であり、データｒは出力ｙのマスク値である。
【００３５】
次に、以上のように構成されたマスク論理回路の作用を説明する。ここで、具体例として、入力数ｎ＝２のマスクアンド回路について述べる。
【００３６】
図２に示すように、マスクしない通常の論理回路２０は、例えば１ビットのａ１，ａ２を入力として１ビットの出力を出す関数ｆ(ａ１，ａ２)を論理演算するとする。
【００３７】
ここで、関数ｆを論理積演算（アンド回路）とする。すなわち、関数ｆは次の（１）式のように表せる。  
ｆ(ａ１，ａ２)＝ ａ１ and ａ２      …（１）
この関数ｆの入出力関係は、次の４通りとなる。  
ｆ(０，０)＝０  
ｆ(０，１)＝０  
ｆ(１，０)＝０  
ｆ(１，１)＝１
この関数ｆにマスクを適用したマスク論理回路１０を図３を用いて説明する。なお、図３は図１をｎ＝２とした例である。マスク素子回路部１３では、入力が４つに増え、出力が２つに増える。マスク演算としては、排他的論理和（xor）を使用する。
【００３８】
図３中、マスク値ｍ１，ｍ２と、マスク済入力ｘ１，ｘ２とは以下の（２）〜（３）式の関係にある。  
ｘ１＝ａ１ xor ｍ１    …（２）
ｘ２＝ａ２ xor ｍ２    …（３）
ｒは出力のマスク値であり、ｙはマスクされた出力であり、両者ｒ，ｙは次の（４）式の関係にある。  
ｙ＝(ａ１ and ａ２) xor ｒ    …（４）
図４はマスク素子回路部１３の関数Ｆを示す真理値表である。左の４つの列は４つの入力ｘ１，ｘ２，ｍ１，ｍ２の取り得る値を示している。４つの独立な２値変数が取り得るすべての場合は１６通りである。次の２列は隠したい入力ａ１，ａ２が実際には何であったかを示している。次の２列は出力ｙ，ｒを示している。
【００３９】
次の２列は、マスク無しの出力Ａ及びマスク有りの出力Ｂを示しており、両者Ａ，Ｂはそれぞれ以下の（５）〜（６）式の関係にある。  
Ａ＝ａ１ and ａ２    …（５）
Ｂ＝ｙ xor ｒ        …（６）
ここで、マスク無し／有りの出力Ａ，Ｂが一致しているので、Ａ＝Ｂとして次の（７）〜（８）式の関係が分かる。  
ｙ xor ｒ = ａ１ and ａ２     …（７）
すなわち  
ｙ＝(ａ１ and ａ２) xor ｒ    …（８）
なお、出力ｙ，ｒの列は１例であり、上式を満足する出力ｙ，ｒの他の選択も可能である。例えば出力ｙ，ｒの値の０と１を全て反転させた場合も上式を満足する。但し、上式を満足しても、セキュリティ的に安全とは限らない。このことは後述する。
【００４０】
また、内部信号ｔ０〜ｔ３を示す残りの４列については後で説明する。下の２行は各信号がａ１やａ２と何回一致したかを示している。例えばａ１の列とｙの列で値が一致したのは何回あるかを示している。図４中、出力ｙは、入力ａ１とは８回だけ一致し、入力ａ２とは８回だけ一致している。８回という値は、全組合せが１６通りなので、ちょうど半分である。すなわち、出力ｙは入力ａ１，ａ２とは統計的に偏りがない、つまり相関がないことが分かる。
【００４１】
図４で示した真理値表を満足するマスク素子回路部１３の関数Ｆは、入出力に関して隠したいデータａ１，ａ２と相関がない。しかし、関数Ｆの内部に存在する信号も全てａ１，ａ２と相関がないかというと、そうとは限らない。一般に真理値表が与えられた場合に、その真理値表を満足する論理回路は複数存在するからである。
【００４２】
図５に内部の信号ｔ０〜ｔ３も入力ａ１，ａ２と相関がない回路構成を示す。この回路構成（mand１）は４入力２出力形であり、各１ビットマスク済入力データ｛ｘ１，ｘ２｝及び各１ビットマスク値｛ｍ１，ｍ２｝を順番１，２で区別するとき、互いに同じ順番同士の複数の各１ビットマスク済入力データ及び各１ビットマスク値が入力された際に、当該各１ビットマスク済入力データ及び各１ビットマスク値の各々｛ｘ１，ｍ１，ｘ２，ｍ２｝を２つに分岐させる機能と、各々が分岐された各１ビットマスク済入力データｘ１，ｘ２及び各１ビットマスク値ｍ１，ｍ２のうち、互いに異なる順番１，２の各１ビットマスク済入力データ及び／又は各１ビットマスク値を各論理素子（and０〜and３）により演算する機能と、をもっている。
【００４３】
具体的にはマスクアンド回路mand１は、２個の２入力１出力形のアンド回路and０，and１の２出力を２入力１出力形のオア回路or１に接続した回路と、同様のアンド回路and２，and３及びオア回路or２からなる同様の回路とにより、論理演算を実行する。
【００４４】
この論理演算を論理式で表現すると次の（９）〜（１０）式の通りとなる。  
ｙ＝(ｘ１ and ｘ２) or (ｍ１ and (not ｘ２))    …（９）
ｒ＝(ｘ１ and ｍ２) or (ｍ１ and (not ｍ２))    …（１０）
ここで、再び図４に戻る。図４の右側の４列は入力ｘ１，ｘ２，ｍ１，ｍ２を動かしたときに内部信号ｔ０〜ｔ３が取る値を示している。前述同様に、入力ａ１，ａ２と一致する回数が下の２行に示されている。ここでは、全ての値が８であり、内部信号ｔ０〜ｔ３は、入力ａ１，ａ２と相関がないことが分かる。
【００４５】
マスク値ｍ１，ｍ２は、各々０と１のいずれの値も取ることができるので、全部で４通りの可能な全てのマスク値を取ることができる。一方、ＲＯＭで実現した従来のテーブル切替方式では、このようなことはできない。
【００４６】
また、ＲＡＭで実現した従来のテーブル書換方式とは異なり、マスク値を変えるための余分な操作は必要ない。
【００４７】
なお、図５に示す回路mand１は、図６に示すように、出力ｙ，ｒを入れ替えた回路mand２に変形しても電力差分攻撃（ＤＰＡ）から安全な回路となっている。同様に、図７に示すように、出力ｙ，ｒに各々ノット(not)回路を接続した回路mand３に変形しても安全である。また同様に、図８に示すように、第１のマスク済入力ｘ１及びマスク値ｍ１と、第２のマスク済入力ｘ２及びマスク値ｍ２とを入れ替えた回路mand４に変形しても安全である。
【００４８】
上述したように本実施形態によれば、ｎ個のマスク値ｍ１〜ｍｎを生成し、各入力データａ１〜ａｎと各マスク値ｍ１〜ｍｎとの排他的論理和を算出し、各マスク済入力データｘ１〜ｘｎを得る構成と、各マスク済演算結果データｙ，ｒ同士の排他的論理和を算出し、得られた１個の１ビット出力データを出力する構成とにより、テーブルを用いずに実現できる。詳しくは、乱数生成器１１により、マスク値ｍ１〜ｍｎを切換えて生成することができるので、テーブルを用いずに、テーブル書換方式及びテーブル切替方式と同様のＤＰＡ対策の効果を得ることができる。
【００４９】
また、本実施形態によれば、各マスク済入力データｘ１〜ｘｎ及び各マスク値ｍ１〜ｍｎのうち、互いに異なる順番（排他的論理和を算出したときの組合せ(ｘｉ，ｍｉ)とは異なる組合せ(ｘｉ，ｍｋ),(ｘｉ，ｘｋ)，(ｍｉ，ｍｋ)）の各マスク済入力データｘ１，…，ｘｎ及び／又は各マスク値ｍ１，…，ｍｎを論理演算する構成により、マスクされる前の入力データａ１，…，ａｎを露呈してしまうことがなく、マスクされる前の入力データａ１，…，ａｎと相関の無い内部信号ｔ０，…で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
【００５０】
また、本実施形態のマスク論理回路１０は、例えばブロック暗号等の共通鍵暗号方式の暗号装置において、ブロック暗号の非線形部分を構成するためにも用いることができる。この場合、マスク論理回路１０を備えた暗号装置は、電力差分攻撃に対する安全性を向上させることができる。これらは以下の各実施形態でも同様である。
【００５１】
（第２の実施形態）
図９及び図１０は本発明の第２の実施形態に係るマスク論理回路に適用されるマスクオア素子又はマスクノット素子の構成を示す模式図であり、図５と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
【００５２】
すなわち、本実施形態は、第１の実施形態の変形例であり、前述したアンド(AND)回路に対応するマスク素子回路部１３を、ノット(NOT)回路やオア(OR)回路といった他の基本ゲートに対して適用したものである。
【００５３】
ここで、マスク素子回路部１３に用いられ、図５〜図８に示した如き、アンド回路を構成する回路ブロックをマスクアンド素子mand１〜mand４と呼び、オア回路を構成する回路ブロックをマスクオア素子morと呼ぶことにする。図９にマスクアンド素子mand１を使ってマスクオア素子mor１〜mor４を構成する４つの例を示す。
【００５４】
また、図１０にはマスクノット素子mnot１，mnot２の２つの構成例を示す。
【００５５】
マスクノット素子mnot１，mnot２は、マスク済入力データｘ又はそのマスク値ｍを反転させることにより、マスクされたノット回路を構成する。すなわち、マスクノット素子mnot１，mnot２では、次の（１１）式の関係が成立している。
【００５６】
ｙ xor ｒ＝ not(ｘ xor ｍ)    …（１１）
以上のような構成によれば、第１の実施形態で述べたマスクアンド素子mandに限らず、マスクオア素子mor及びマスクノット素子mnotを実現できるので、第１の実施形態の効果に加え、マスク論理回路１０の設計の自由度を向上させることができる。
【００５７】
なお、本実施形態は、マスク素子回路部１３を１つのマスクアンド素子mand、マスクオア素子mor又はマスクノット素子mnotとして説明したが、これに限らず、マスク素子回路部１３を複数のマスクアンド素子mand、マスクオア素子mor及びマスクノット素子mnotを互いに接続してなるものとしてもよい。
【００５８】
この場合、各マスク論理素子のうち、あるマスク論理素子（mand）は、排他的論理和回路１２ｉ，…及び乱数生成器１１から、あるいは他の各マスク論理素子から２個の１ビットマスク済入力データｘ１，ｘ２及び２個の１ビットマスク値ｍ１，ｍ２が入力されると、前述した（９）〜（１０）式に示したように論理積and、論理和or、否定notからなる論理演算を実行し、得られた２個の１ビットマスク済演算結果データｙ，ｒを他のマスク論理素子又は排他的論理和回路１４に出力する構成とすればよい。
【００５９】
すなわち、マスク論理素子を互いに接続してマスク素子回路部１３を構成する場合、基本となるマスク論理素子を図４の真理値表を満たす（図５のような）マスクアンド素子mand１とすればよい。理由は、ＤＰＡから安全なことが図４の真理値表で保証されたマスクアンド素子mand１を組合せることにより、得られたマスク素子回路部１３もＤＰＡから安全であると考えられるからである。
【００６０】
（第３の実施形態）
次に、本発明の第３の実施形態に係るマスク論理回路に適用される各マスク論理素子について説明する。ここでは、多入力１ビット出力の場合を述べる。
【００６１】
任意の論理回路は、ノット回路、アンド回路、オア回路の３つのゲートがあれば構成できることが知られている。このようなゲートはユニバーサルゲートと呼ばれる。なお、マスク論理回路も同様にユニバーサルゲートである。
【００６２】
本実施形態では、ユニバーサルゲートの性質を使って任意の多入力１ビット出力論理回路をマスク論理回路１０で構成する方法を述べる。この方法は次の手順（１）〜（２）を用いる。  
（１）適用したい論理回路をノット回路、オア回路及びアンド回路の３つのゲート構成される回路に変換する。
【００６３】
（２）次に、ノット回路、オア回路、アンド回路をマスクノット素子、マスクオア素子、マスクアンド素子に置き換える。これにより、多入力１ビット出力のマスク論理回路１０が得られる。
【００６４】
以上の様子を図１１〜図１３を用いて説明する。図１１はマスク付きにしたい４入力１出力論理回路（通常の論理回路２０）を示しており、この論理回路２０は、並列に配置されたアンド回路and１，and２がオア回路or１を介してノット回路not１に接続されている。
【００６５】
図１２はこの論理回路２０をマスク素子回路部１３の対応するマスク素子で置き換えた構成を示している。すなわち、図１１に示したアンド回路and１，and２、オア回路or１、ノット回路not１を、図１２に示すように、マスクアンド素子mand１−１，mand１−２、マスクオア素子mor１、マスクノット素子mnot１で置き換えている。
【００６６】
但し、各出力ｙ１，ｒ１とｙ２，ｒ２とは、そのまま混在した状態で後段に入力する訳ではない。各出力ｙ１，ｒ１とｙ２，ｒ２とは、マスクされた出力ｙ１，ｙ２の組と、出力マスク値ｒ１，ｒ２の組とに分類されて後段のマスクオア素子mor１に入力される。
【００６７】
また、乱数発生器１１及び排他的論理和回路１２１〜１２４からなる入力回路部１５と、排他的論理和回路からなる出力回路部１６とは、マスク素子回路部１３の入出力側に接続される。なお、図１２中、連続した２つのノット素子（mnot１とその左側の丸記号で示すノット素子）は冗長なので取り除くことができる。
【００６８】
図１３では、図１２のマスク素子回路部１３に対し、新しいマスク値ｍ５，ｍ６の入力構成を追加した例である。対応するデータ入力とマスク入力との組（ｙ１，ｒ１），（ｙ２，ｒ２）に対して同じマスク値ｍ５，ｍ６を適用する必要がある。この例では、対応する入力の組ｙ１，ｒ１にマスク値ｍ５を適用し、対応する入力の組ｙ２，ｒ２にマスク値ｍ６を適用する。なお、図示しないが、前述した入力回路部１５及び出力回路部１６も接続されていることは言うまでもない。このように新たなマスクを容易に追加できる。
【００６９】
また、多入力多出力の回路は、多入力１ビット出力の回路を並べることで実現できる。さらに、共有できる部分を利用して回路の効率化を図ることもできる。
【００７０】
上述したように本実施形態によれば、所望の論理演算をマスク無しの通常のアンド回路and、オア回路or、ノット回路notを組合せた論理回路で構成し、その後、論理回路内のアンド回路and、オア回路or、ノット回路notを、マスクアンド素子mand、マスクオア素子mor、マスクノット素子mnotに置き換えることにより、任意のマスク論理回路を構成することができる。従って、第２の実施形態の効果に加え、設計の自由度をより向上させることができる。
【００７１】
（第４の実施形態）
図１４は本発明の第４の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
【００７２】
本実施形態は、第３の実施形態の変形例であり、図１２に示したマスク論理素子mand，mor，mnotのみで構成されたマスク素子回路部１３とは異なり、図１４に示すように、マスクされてない２個の１ビット入力データｘ３，ｘ４を論理演算し、得られた１個の１ビット演算結果データｙ２を例えばマスクアンド素子mand２に入力する通常の（マスク無しの）アンド回路and２を備えている。
【００７３】
これに伴い、通常のアンド回路and２の出力ｙ２をマスク付きの回路（mor１）と接続するために新たなマスク値ｍ３を導入している。なお、通常の論理回路（例、and２）としては、例えば、秘密情報とは無関係の回路の如き、電力差分攻撃の対象にならない回路などが適用可能である。また、アンド回路and２は、マスク無しの通常の論理回路の一例であり、回路設計に応じてオア回路or又はノット回路not等の他種類の論理回路としてもよいことは言うまでもない。
【００７４】
以上のような構成によれば、第３の実施形態の効果に加え、マスク無しの論理回路が混在するので、より一層、設計の自由度を向上させることができる。
【００７５】
（第５の実施形態）
図１５は本発明の第５の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
【００７６】
本実施形態は、第１の実施形態の変形例であり、図５に示したマスクアンド素子mand１をＣＭＯＳロジック回路で構成した例である。図１５中、符号Ｐ，Ｎは各々Ｐチャネルトランジスタ、Ｎチャネルトランジスタを表している。各マスク済み入力ｘ１，ｘ２及びマスク値ｍ１，ｍ２は、それぞれＰチャネルトランジスタ、Ｎチャネルトランジスタのゲート入力となっている。  
以上のような構成としても、第１の実施形態と同様の効果を得ることができる。
【００７７】
（第６の実施形態）
次に、本発明の第６の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第１の実施形態の変形例であり、（９）式及び（１０）式以外の論理式で表現されるマスク論理素子mandの変形例を列挙するものである。
【００７８】
すなわち、マスク論理素子mandは、（９）式及び（１０）式を［ＡＮＤ１］と呼ぶ場合、次の［ＡＮＤ２］〜［ＡＮＤ１２］式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
【００７９】
［ＡＮＤ１］
ｙAND＝(ｘ１ and ｘ２) or (ｍ１ and (not ｘ２))
ｒAND＝(ｘ１ and ｍ２) or (ｍ１ and (not ｍ２))
［ＡＮＤ２］
ｙAND＝(ｘ１ and ｍ２) or (ｍ１ and (not ｍ２))
ｒAND＝(ｘ１ and ｘ２) or (ｍ１ and (not ｘ２))
［ＡＮＤ３］
ｙAND＝not ( (ｘ１ and ｘ２) or (ｍ１ and (not ｘ２)) )
ｒAND＝not ( (ｘ１ and ｍ２) or (ｍ１ and (not ｍ２)) )
［ＡＮＤ４］
ｙAND＝not ( (ｘ１ and ｍ２) or (ｍ１ and (not ｍ２)) )
ｒAND＝not ( (ｘ１ and ｘ２) or (ｍ１ and (not ｘ２)) )
［ＡＮＤ５］
ｙAND＝(ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２))
ｒAND＝(ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２))
［ＡＮＤ６］
ｙAND＝(ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２))
ｒAND＝(ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２))
［ＡＮＤ７］
ｙAND＝not ( (ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２)) )
ｒAND＝not ( (ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２)) )
［ＡＮＤ８］
ｙAND＝not ( (ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２)) )
ｒAND＝not ( (ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２)) )
［ＡＮＤ９］
ｙAND＝(not (ｘ１ and ｘ２) ) xor (ｍ１ and (not ｘ２))
ｒAND＝(not (ｘ１ and ｍ２) ) xor (ｍ１ and (not ｍ２))
［ＡＮＤ１０］
ｙAND＝(not (ｘ１ and ｍ２) ) xor (ｍ１ and (not ｍ２))
ｒAND＝(not (ｘ１ and ｘ２) ) xor (ｍ１ and (not ｘ２))
［ＡＮＤ１１］
ｙAND＝not ( (ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２)) )
ｒAND＝not ( (ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２)) )
［ＡＮＤ１２］
ｙAND＝not ( (ｘ１ and ｍ２) xor (ｍ１ and (not ｍ２)) )
ｒAND＝not ( (ｘ１ and ｘ２) xor (ｍ１ and (not ｘ２)) )
以上のような構成としても、第１の実施形態と同様の作用効果を得ることができる。
【００８０】
（第７の実施形態）
次に、本発明の第７の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第２の実施形態の変形例であり、図９を表現した論理式のマスク論理素子morを列挙するものである。
【００８１】
すなわち、マスク論理素子morは、図９を表現した論理式を［ＯＲ１］〜［ＯＲ４］と呼ぶ場合、次の［ＯＲ１］〜［ＯＲ４］式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
【００８２】
［ＯＲ１］
ｙOR＝not ( ((not ｘ１) and (not ｘ２)) or (ｍ１ and ｘ２))
ｒOR＝((not ｘ１) and ｍ２) or (ｍ１ and (not ｍ２))
［ＯＲ２］
ｙOR＝((not ｘ１) and (not ｘ２)) or (ｍ１ and ｘ２)
ｒOR＝not ( ((not ｘ１) and (not ｍ２)) or (ｍ１ and ｍ２))
［ＯＲ３］
ｙOR＝not ( (ｘ１ and ｘ２) or ((not ｍ１) and (not ｘ２)) )
ｒOR＝(ｘ１ and (not ｍ２)) or ((not ｍ１) and ｍ２)
［ＯＲ４］
ｙOR＝(ｘ１ and ｘ２) or ((not ｍ１) and (not ｘ２))
ｒOR＝not ( (ｘ１ and (not ｍ２)) or ((not ｍ１) and ｍ２) )
以上のような構成としても、第２の実施形態と同様の作用効果を得ることができる。
【００８３】
（第８の実施形態）
次に、本発明の第８の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第２の実施形態の変形例であり、図１０を表現した論理式のマスク論理素子mnotを列挙するものである。
【００８４】
すなわち、マスク論理素子mnotは、図１０を表現した論理式を［ＮＯＴ１］及び［ＮＯＴ２］と呼ぶ場合、次の［ＮＯＴ１］又は［ＮＯＴ２］式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
【００８５】
［ＮＯＴ１］
ｙNOT＝not ｘ１
ｒNOT＝ｍ１
［ＮＯＴ２］
ｙNOT＝ｘ１
ｒNOT＝not ｍ１
以上のような構成としても、第２の実施形態と同様の作用効果を得ることができる。
【００８６】
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施形態に係るマスク論理回路の構成を示す模式図である。
【図２】同実施形態における作用を説明するための通常の論理回路を示す模式図である。
【図３】図２の論理回路にマスクを適用したマスク論理回路の構成を示す模式図である。
【図４】図３のマスク素子回路部の関数Ｆの真理値表を示す図である。
【図５】図４の真理値表を満たすマスクアンド素子の回路構成図である。
【図６】図５のマスクアンド素子の変形例を示す回路構成図である。
【図７】図５のマスクアンド素子の変形例を示す回路構成図である。
【図８】図５のマスクアンド素子の変形例を示す回路構成図である。
【図９】本発明の第２の実施形態に係るマスク論理回路に適用されるマスクオア素子の構成を示す模式図である。
【図１０】同実施形態におけるマスクノット素子の構成を示す模式図である。
【図１１】本発明の第３の実施形態に係るマスク論理回路を説明するための通常の論理回路の構成を示す模式図である。
【図１２】図１１の論理回路に対応するマスク素子回路部の構成を示す模式図である。
【図１３】図１２のマスク素子回路部の変形例を示す模式図である。
【図１４】本発明の第４の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
【図１５】本発明の第５の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
【符号の説明】
【００８８】
１０…マスク論理回路、１１…乱数発生器、１２１〜１２ｎ，１４…排他的論理和回路、１３…マスク素子回路部、ｍ１〜ｍｎ…マスク値、ａ１〜ａｎ…入力、ｘ１〜ｘｎ…マスク済入力、ｙ，ｒ…出力、ｔ０〜ｔ３…内部信号、mand１〜mand４…マスクアンド素子、mor１〜mor４…マスクオア素子、mnot１，mnot２…マスクノット素子。
【図１】
2005318476.tif 000003
【図２】
2005318476.tif 000004
【図３】
2005318476.tif 000005
【図４】
2005318476.tif 000006
【図５】
2005318476.tif 000007
【図６】
2005318476.tif 000008
【図７】
2005318476.tif 000009
【図８】
2005318476.tif 000010
【図９】
2005318476.tif 000011
【図１０】
2005318476.tif 000012
【図１１】
2005318476.tif 000013
【図１２】
2005318476.tif 000014
【図１３】
2005318476.tif 000015
【図１４】
2005318476.tif 000016
【図１５】
2005318476.tif 000017