JP4271077B2 - マスク論理回路及び暗号装置 - Google Patents

マスク論理回路及び暗号装置 Download PDF

Info

Publication number
JP4271077B2
JP4271077B2 JP2004136726A JP2004136726A JP4271077B2 JP 4271077 B2 JP4271077 B2 JP 4271077B2 JP 2004136726 A JP2004136726 A JP 2004136726A JP 2004136726 A JP2004136726 A JP 2004136726A JP 4271077 B2 JP4271077 B2 JP 4271077B2
Authority
JP
Japan
Prior art keywords
mask
masked
bit
xor
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004136726A
Other languages
English (en)
Other versions
JP2005318476A (ja
Inventor
秀夫 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004136726A priority Critical patent/JP4271077B2/ja
Publication of JP2005318476A publication Critical patent/JP2005318476A/ja
Application granted granted Critical
Publication of JP4271077B2 publication Critical patent/JP4271077B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、セキュリティを高めるためのマスク論理回路及び暗号装置に係り、特に、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止し得るマスク論理回路及び暗号装置に関する。
近年、ICカードのように、内部に秘密情報の暗号鍵を保持し、外部から入力された平文を暗号鍵により暗号化し、得られた暗号文を出力するといった暗号装置の重要性が増してきている。係る暗号装置は、暗号装置本体を分解し、内部の秘密情報を暴く攻撃について対策が講じられている。
しかしながら、最近、電力解析(power analysis)や時間解析(timing attack)のように、暗号装置本体を分解しない攻撃が登場した。これらの攻撃は、暗号処理に要した消費電力や時間のような、暗号装置設計者が考慮しなかった二次情報から秘密情報を解析するものである。一般に、サイドチャネル攻撃(side channel attack)と呼ばれる。
この種のサイドチャネル攻撃の一つに、電力差分攻撃(DPA : Differential Power Analysis)がある。この電力差分攻撃(以下、DPAという)は、共通鍵暗号方式に有効であることが知られている。その理由は次の(i)〜(iii)の通りである。
(i)元々共通鍵暗号は、処理中の中間情報を知ることができないという暗黙の前提により安全であった。(ii)しかしながら、DPAによれば、処理中の中間情報を二次情報の形で検出可能である。(iii)この二次情報は、暗号装置設計者の予想を越えて秘密情報と相関があるので、秘密情報の解析に有効である。
このようにDPAが有効な攻撃手法であるため、様々な対策が提案されている。これらの対策は、いずれも同じ原理に基づく。すなわち、様々な対策は、入力に乱数を作用させてから暗号化(復号)処理を行い、最後に出力から乱数の影響を除去し、中間情報の漏洩を阻止するという同じ原理に基づく。ここで「乱数を作用させる」ことは「マスクする」という用語で呼ばれる。
共通鍵暗号のアルゴリズムは、非線形な部分と線形な部分に分けて対策を適用可能である。線形な部分は、対策を効率的に適用可能である。一方、非線形な部分は、対策を効率的に適用することが困難である。
非線形な部分の対策は、例えばテーブルを用いる方式がある。この方式では、共通鍵暗号のSボックスのような非線形部分を関数f(x)で表すとき、例えばf(x+r1)+r2というテーブルを用意する。このテーブル中、r1,r2はランダムに選ばれた定数であり、マスクと呼ばれる。
この方式では、予め入力xからマスクr1を減算すると、本来の出力f(x)に定数r2を加算した結果を得る。
f((x−r1)+r1)+r2=f(x)+r2
しかしながら、この方式は、本来の出力f(x)とは異なる結果を得るが、本来の入力xと相関した計算をするので、DPA対策にはならない。また、この方式は、テーブルを作るために定数r1,r2を固定する必要があるが、定数r1,r2を固定すると、攻撃が容易になる。そのため、もう一段の工夫が必要である。このような工夫をした方式としては、テーブル書換方法及びテーブル切替方法が知られている。
テーブル書換方法は、テーブルをRAMのような書換可能なメモリ上に置き、定期的に乱数発生等により新しいマスクを作り、テーブルを書き換える方式である。
テーブル切替方法は、複数のマスクに対応する複数のテーブルを予め用意し、乱数により切り替えて使う方式である(例えば、特許文献1参照。)。この方式はROMのような書換不可のメモリでも実現可能である。
しかしながら、テーブル書換方法は、非線形部分の入力の範囲にもよるが、テーブルを作り直すので時間がかかるという問題がある。しかし、マスクを自由に選べるので、安全性が高いという利点がある。
一方、テーブル切替方法は、マスクが取り得る値の種類が増えると予め用意するテーブルの数が増えるので、安全性を高めるとテーブルに必要なメモリのサイズも増大する問題がある。しかし、テーブル書換方法とは異なり、事前計算によりテーブルを用意できるので余分な計算時間が不要になる利点がある。
まとめると、テーブル書換方法は、安全性を高めると、書換処理の負荷を増大させる問題が生じる。テーブル切替方法は、安全性を高めると、メモリサイズを増大させる問題が生じる。
一方、テーブルの実現方法には、メモリに保持する方法の他に、論理回路で実現する方法が知られている。この方法では、テーブル自体を真理値表とみなし、この真理値表を実現する論理回路を構成する。論理回路は、アンド(AND)回路やオア(OR)回路等の複数の論理素子で構成され、一般に、非常に複雑な構造をしている。しかしながら、現在では、コンピュータによる設計により、テーブルを論理回路で構成すること自体は容易である。テーブルを論理回路で構成する利点は、小規模の論理回路で済む点である。
しかしながら、テーブルを論理回路で構成する方法はDPA対策に使用されない。理由は本来の入力xと論理回路の内部信号とが相関の無い旨を保証できないからである。
特開2002−366029号公報
以上説明したように、従来のDPA対策方法では、テーブルをメモリで実現する場合、安全性を高めると、書換処理の負荷が増大するか又はメモリサイズを増大させてしまう問題が生じる。一方、テーブルを論理回路で構成する場合、本来の入力xと論理回路の内部信号とが相関の無い旨を保証できない問題がある。
本発明者の検討によれば、これらの問題は全てがテーブルを用いることに起因するため、テーブルを用いない方法を確立する必要があると考えられる。
本発明は上記実情を考慮してなされたもので、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止し得るマスク論理回路及び暗号装置を提供することを目的とする。
第1の発明は、 n(n≧2)個の一ビットの入力値を論理演算し1個の一ビットの結果値を得る論理演算装置に利用されるマスク素子回路であって、マスク用の値としてn個のマスク値を入力する第1入力手段と、前記n個の入力値と対応付けた前記n個のマスク値で排他的論理和されたn個の被マスク化値を入力する第2入力手段と、入力される前記n個のマスク値と入力される前記n個の被マスク化値との組み合わせによって、それぞれ1ビットの第1と第2の出力値が決まるゲート群であって、前記第1の出力値と前記第2の出力値とを排他的論理和すると前記一ビットの結果値と一致するような前記第1の出力値と前記第2の出力値とを得るゲート群と、前記第1の出力値と前記第2の出力値とを出力する出力手段とを備えたマスク素子回路である。
従って、第1の発明によれば、入力されるn個のマスク値と入力されるn個の被マスク化値との組み合わせによって、それぞれ1ビットの第1と第2の出力値が決まるゲート群であって、第1の出力値と第2の出力値とを排他的論理和すると一ビットの結果値と一致するような第1の出力値と第2の出力値とを得るゲート群を備えた構成により、テーブルを用いずに実現できる。
また、第1の発明によれば、ゲート群は、互いに排他的論理和すると一ビットの結果値と一致するような第1及び第2の出力値を得る構成であり、ゲート群としては第1及び第2の出力値を互いに排他的論理和せず、マスクされる前の入力と相関の無い内部信号で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
第2の発明は、入力されたn個の1ビット入力データ{a1,…,an}の関数f(a1,…,an)を出力する際に、前記各入力データ{a1,…,an}をn個の1ビットマスク値{m1,…,mn}の排他的論理和(xor)によりマスクする機能と、前記マスクにより得られた各マスク済入力データ{x1,…,xn}(但し、xi=ai xor mi、1≦i≦n)及び前記マスク値{m1,…,mn}を論理演算する論理演算機能と、前記論理演算機能により得られた2個の1ビットマスク済演算結果データy,rから互いの排他的論理和により前記マスクの影響を除去し、得られた1個の1ビット出力データf(a1,…,an)を出力する出力機能とを有するマスク論理回路であって、前記論理演算機能は、前記各マスク済入力データ{x1,…,xn}及び前記マスク値{m1,…,mn}から前記各マスク済演算結果データy,rを得るまでの途中結果を、前記各入力データ{a1,…,an}とは相関が無いように生成するための1種類以上の複数のマスク論理素子が互いに接続されてなり、前記各マスク論理素子は、前記各1ビットマスク済入力データ{x1,…,xn}及び前記各1ビットマスク値{m1,…,mn}のうち、互いに異なる順番の各1ビットマスク済入力データ及び/又は各1ビットマスク値同士を論理演算する機能を有するマスク論理回路である。
従って、第2の発明によれば、複数個の1ビットマスク値を生成し、各1ビット入力データと各1ビットマスク値との排他的論理和を算出し、各1ビットマスク済入力データを得る構成と、各マスク済演算結果データ同士の排他的論理和を算出し、得られた1個の1ビット出力データを出力する構成とにより、テーブルを用いずに実現できる。
また、第2の発明によれば、各1ビットマスク済入力データ及び各1ビットマスク値のうち、互いに異なる順番の各1ビットマスク済入力データ及び/又は各1ビットマスク値を論理演算する構成により、マスクされる前の入力データを露呈してしまうことがなく、マスクされる前の入力と相関の無い内部信号で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
以上説明したように本発明によれば、テーブルを用いずに実現でき、マスクされていない入力と相関の無い内部信号で動作し、電力差分攻撃に対して中間情報の漏洩を阻止できるマスク論理回路及び暗号装置を提供できる。
以下、本発明の各実施形態について図面を参照しながら説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係るマスク論理回路の構成を示す模式図である。このマスク論理回路10は、乱数発生器(マスク値生成手段)11、入力側のn個の排他的論理和回路(マスク済データ生成手段)12〜12、マスク素子回路部(論理演算手段)13及び出力側の1個の排他的論理和回路(出力手段)14を備えている。
ここで、乱数発生器11は、n個の1ビットマスク値m1〜mnを生成する機能と、各マスク値m1〜mnを個別に排他的論理和回路12〜12及びマスク素子回路部13に送出する機能とをもっている。但し、乱数発生器11は、互いに異なるn個の乱数をn個のマスク値として用いる構成に限らず、互いに異なるn個未満の乱数をn個のマスク値として用いる構成としてもよい(n個のマスク値は、互いに同じ値のマスク値の組を含んでもよい)。
排他的論理和回路12〜12は、入力されたn個の1ビット入力データa1〜anと、乱数発生器11から送出された各マスク値m1〜mnとの排他的論理和を算出し、得られた各1ビットの各マスク済入力データx1〜xnをマスク素子回路部13に送出する機能をもっている。
マスク素子回路部13は、排他的論理和回路12〜12から送出された各マスク済入力データx1〜xn及び乱数発生器11から送出された各マスク値m1〜mnのうち、排他的論理和を算出したときの組合せ(xi,mi)とは異なる組合せ(xi,mk),(xi,xk),(mi,mk)の各マスク済入力データx1,…,xn及び/又は各マスク値m1,…,mnを論理演算する機能と、論理演算結果として得られた2個の1ビットマスク済演算結果データy,rを排他的論理和回路14に送出する機能をもっている。
詳しくは、マスク素子回路部13は、入力されるn個のマスク値m1〜mnと入力されるn個のマスク済入力データ(被マスク化値)x1〜xnとの組み合わせによって、それぞれ1ビットのマスク済演算結果データ(第1と第2の出力値)y,rが決まるゲート群であって、第1の出力値と第2の出力値とを排他的論理和すると1個の1ビット出力データ(一ビットの結果値、詳しくは入力データa1〜anの論理関数f(a1,…,an)の結果値)と一致するような2個の1ビットマスク済演算結果データy,rを得るゲート群から構成されている。
なお、マスク素子回路部13は、後述するようにマスクアンド素子mand、マスクオア素子mor、マスクノット素子mnot等が接続された論理回路であるが、本実施形態では、説明の簡単化のため、マスクアンド素子mandからなる回路部としている。
排他的論理和回路14は、マスク素子回路部13から送出された各マスク済演算結果データy,r同士の排他的論理和を算出し、得られた1個の1ビット出力データを出力する機能をもっている。なお、各マスク済演算結果データy,rのうち、データyはマスクされた出力であり、データrは出力yのマスク値である。
次に、以上のように構成されたマスク論理回路の作用を説明する。ここで、具体例として、入力数n=2のマスクアンド回路について述べる。
図2に示すように、マスクしない通常の論理回路20は、例えば1ビットのa1,a2を入力として1ビットの出力を出す関数f(a1,a2)を論理演算するとする。
ここで、関数fを論理積演算(アンド回路)とする。すなわち、関数fは次の(1)式のように表せる。
f(a1,a2)= a1 and a2 …(1)
この関数fの入出力関係は、次の4通りとなる。
f(0,0)=0
f(0,1)=0
f(1,0)=0
f(1,1)=1
この関数fにマスクを適用したマスク論理回路10を図3を用いて説明する。なお、図3は図1をn=2とした例である。マスク素子回路部13では、入力が4つに増え、出力が2つに増える。マスク演算としては、排他的論理和(xor)を使用する。
図3中、マスク値m1,m2と、マスク済入力x1,x2とは以下の(2)〜(3)式の関係にある。
x1=a1 xor m1 …(2)
x2=a2 xor m2 …(3)
rは出力のマスク値であり、yはマスクされた出力であり、両者r,yは次の(4)式の関係にある。
y=(a1 and a2) xor r …(4)
図4はマスク素子回路部13の関数Fを示す真理値表である。左の4つの列は4つの入力x1,x2,m1,m2の取り得る値を示している。4つの独立な2値変数が取り得るすべての場合は16通りである。次の2列は隠したい入力a1,a2が実際には何であったかを示している。次の2列は出力y,rを示している。
次の2列は、マスク無しの出力A及びマスク有りの出力Bを示しており、両者A,Bはそれぞれ以下の(5)〜(6)式の関係にある。
A=a1 and a2 …(5)
B=y xor r …(6)
ここで、マスク無し/有りの出力A,Bが一致しているので、A=Bとして次の(7)〜(8)式の関係が分かる。
y xor r = a1 and a2 …(7)
すなわち
y=(a1 and a2) xor r …(8)
なお、出力y,rの列は1例であり、上式を満足する出力y,rの他の選択も可能である。例えば出力y,rの値の0と1を全て反転させた場合も上式を満足する。但し、上式を満足しても、セキュリティ的に安全とは限らない。このことは後述する。
また、内部信号t0〜t3を示す残りの4列については後で説明する。下の2行は各信号がa1やa2と何回一致したかを示している。例えばa1の列とyの列で値が一致したのは何回あるかを示している。図4中、出力yは、入力a1とは8回だけ一致し、入力a2とは8回だけ一致している。8回という値は、全組合せが16通りなので、ちょうど半分である。すなわち、出力yは入力a1,a2とは統計的に偏りがない、つまり相関がないことが分かる。
図4で示した真理値表を満足するマスク素子回路部13の関数Fは、入出力に関して隠したいデータa1,a2と相関がない。しかし、関数Fの内部に存在する信号も全てa1,a2と相関がないかというと、そうとは限らない。一般に真理値表が与えられた場合に、その真理値表を満足する論理回路は複数存在するからである。
図5に内部の信号t0〜t3も入力a1,a2と相関がない回路構成を示す。この回路構成(mand1)は4入力2出力形であり、各1ビットマスク済入力データ{x1,x2}及び各1ビットマスク値{m1,m2}を順番1,2で区別するとき、互いに同じ順番同士の複数の各1ビットマスク済入力データ及び各1ビットマスク値が入力された際に、当該各1ビットマスク済入力データ及び各1ビットマスク値の各々{x1,m1,x2,m2}を2つに分岐させる機能と、各々が分岐された各1ビットマスク済入力データx1,x2及び各1ビットマスク値m1,m2のうち、互いに異なる順番1,2の各1ビットマスク済入力データ及び/又は各1ビットマスク値を各論理素子(and0〜and3)により演算する機能と、をもっている。
具体的にはマスクアンド回路mand1は、2個の2入力1出力形のアンド回路and0,and1の2出力を2入力1出力形のオア回路or1に接続した回路と、同様のアンド回路and2,and3及びオア回路or2からなる同様の回路とにより、論理演算を実行する。
この論理演算を論理式で表現すると次の(9)〜(10)式の通りとなる。
y=(x1 and x2) or (m1 and (not x2)) …(9)
r=(x1 and m2) or (m1 and (not m2)) …(10)
ここで、再び図4に戻る。図4の右側の4列は入力x1,x2,m1,m2を動かしたときに内部信号t0〜t3が取る値を示している。前述同様に、入力a1,a2と一致する回数が下の2行に示されている。ここでは、全ての値が8であり、内部信号t0〜t3は、入力a1,a2と相関がないことが分かる。
マスク値m1,m2は、各々0と1のいずれの値も取ることができるので、全部で4通りの可能な全てのマスク値を取ることができる。一方、ROMで実現した従来のテーブル切替方式では、このようなことはできない。
また、RAMで実現した従来のテーブル書換方式とは異なり、マスク値を変えるための余分な操作は必要ない。
なお、図5に示す回路mand1は、図6に示すように、出力y,rを入れ替えた回路mand2に変形しても電力差分攻撃(DPA)から安全な回路となっている。同様に、図7に示すように、出力y,rに各々ノット(not)回路を接続した回路mand3に変形しても安全である。また同様に、図8に示すように、第1のマスク済入力x1及びマスク値m1と、第2のマスク済入力x2及びマスク値m2とを入れ替えた回路mand4に変形しても安全である。
上述したように本実施形態によれば、n個のマスク値m1〜mnを生成し、各入力データa1〜anと各マスク値m1〜mnとの排他的論理和を算出し、各マスク済入力データx1〜xnを得る構成と、各マスク済演算結果データy,r同士の排他的論理和を算出し、得られた1個の1ビット出力データを出力する構成とにより、テーブルを用いずに実現できる。詳しくは、乱数生成器11により、マスク値m1〜mnを切換えて生成することができるので、テーブルを用いずに、テーブル書換方式及びテーブル切替方式と同様のDPA対策の効果を得ることができる。
また、本実施形態によれば、各マスク済入力データx1〜xn及び各マスク値m1〜mnのうち、互いに異なる順番(排他的論理和を算出したときの組合せ(xi,mi)とは異なる組合せ(xi,mk),(xi,xk),(mi,mk))の各マスク済入力データx1,…,xn及び/又は各マスク値m1,…,mnを論理演算する構成により、マスクされる前の入力データa1,…,anを露呈してしまうことがなく、マスクされる前の入力データa1,…,anと相関の無い内部信号t0,…で動作するので、電力差分攻撃に対して中間情報の漏洩を阻止できる。
また、本実施形態のマスク論理回路10は、例えばブロック暗号等の共通鍵暗号方式の暗号装置において、ブロック暗号の非線形部分を構成するためにも用いることができる。この場合、マスク論理回路10を備えた暗号装置は、電力差分攻撃に対する安全性を向上させることができる。これらは以下の各実施形態でも同様である。
(第2の実施形態)
図9及び図10は本発明の第2の実施形態に係るマスク論理回路に適用されるマスクオア素子又はマスクノット素子の構成を示す模式図であり、図5と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
すなわち、本実施形態は、第1の実施形態の変形例であり、前述したアンド(AND)回路に対応するマスク素子回路部13を、ノット(NOT)回路やオア(OR)回路といった他の基本ゲートに対して適用したものである。
ここで、マスク素子回路部13に用いられ、図5〜図8に示した如き、アンド回路を構成する回路ブロックをマスクアンド素子mand1〜mand4と呼び、オア回路を構成する回路ブロックをマスクオア素子morと呼ぶことにする。図9にマスクアンド素子mand1を使ってマスクオア素子mor1〜mor4を構成する4つの例を示す。
また、図10にはマスクノット素子mnot1,mnot2の2つの構成例を示す。
マスクノット素子mnot1,mnot2は、マスク済入力データx又はそのマスク値mを反転させることにより、マスクされたノット回路を構成する。すなわち、マスクノット素子mnot1,mnot2では、次の(11)式の関係が成立している。
y xor r= not(x xor m) …(11)
以上のような構成によれば、第1の実施形態で述べたマスクアンド素子mandに限らず、マスクオア素子mor及びマスクノット素子mnotを実現できるので、第1の実施形態の効果に加え、マスク論理回路10の設計の自由度を向上させることができる。
なお、本実施形態は、マスク素子回路部13を1つのマスクアンド素子mand、マスクオア素子mor又はマスクノット素子mnotとして説明したが、これに限らず、マスク素子回路部13を複数のマスクアンド素子mand、マスクオア素子mor及びマスクノット素子mnotを互いに接続してなるものとしてもよい。
この場合、各マスク論理素子のうち、あるマスク論理素子(mand)は、排他的論理和回路12,…及び乱数生成器11から、あるいは他の各マスク論理素子から2個の1ビットマスク済入力データx1,x2及び2個の1ビットマスク値m1,m2が入力されると、前述した(9)〜(10)式に示したように論理積and、論理和or、否定notからなる論理演算を実行し、得られた2個の1ビットマスク済演算結果データy,rを他のマスク論理素子又は排他的論理和回路14に出力する構成とすればよい。
すなわち、マスク論理素子を互いに接続してマスク素子回路部13を構成する場合、基本となるマスク論理素子を図4の真理値表を満たす(図5のような)マスクアンド素子mand1とすればよい。理由は、DPAから安全なことが図4の真理値表で保証されたマスクアンド素子mand1を組合せることにより、得られたマスク素子回路部13もDPAから安全であると考えられるからである。
(第3の実施形態)
次に、本発明の第3の実施形態に係るマスク論理回路に適用される各マスク論理素子について説明する。ここでは、多入力1ビット出力の場合を述べる。
任意の論理回路は、ノット回路、アンド回路、オア回路の3つのゲートがあれば構成できることが知られている。このようなゲートはユニバーサルゲートと呼ばれる。なお、マスク論理回路も同様にユニバーサルゲートである。
本実施形態では、ユニバーサルゲートの性質を使って任意の多入力1ビット出力論理回路をマスク論理回路10で構成する方法を述べる。この方法は次の手順(1)〜(2)を用いる。
(1)適用したい論理回路をノット回路、オア回路及びアンド回路の3つのゲート構成される回路に変換する。
(2)次に、ノット回路、オア回路、アンド回路をマスクノット素子、マスクオア素子、マスクアンド素子に置き換える。これにより、多入力1ビット出力のマスク論理回路10が得られる。
以上の様子を図11〜図13を用いて説明する。図11はマスク付きにしたい4入力1出力論理回路(通常の論理回路20)を示しており、この論理回路20は、並列に配置されたアンド回路and1,and2がオア回路or1を介してノット回路not1に接続されている。
図12はこの論理回路20をマスク素子回路部13の対応するマスク素子で置き換えた構成を示している。すなわち、図11に示したアンド回路and1,and2、オア回路or1、ノット回路not1を、図12に示すように、マスクアンド素子mand1−1,mand1−2、マスクオア素子mor1、マスクノット素子mnot1で置き換えている。
但し、各出力y1,r1とy2,r2とは、そのまま混在した状態で後段に入力する訳ではない。各出力y1,r1とy2,r2とは、マスクされた出力y1,y2の組と、出力マスク値r1,r2の組とに分類されて後段のマスクオア素子mor1に入力される。
また、乱数発生器11及び排他的論理和回路12〜12からなる入力回路部15と、排他的論理和回路からなる出力回路部16とは、マスク素子回路部13の入出力側に接続される。なお、図12中、連続した2つのノット素子(mnot1とその左側の丸記号で示すノット素子)は冗長なので取り除くことができる。
図13では、図12のマスク素子回路部13に対し、新しいマスク値m5,m6の入力構成を追加した例である。対応するデータ入力とマスク入力との組(y1,r1),(y2,r2)に対して同じマスク値m5,m6を適用する必要がある。この例では、対応する入力の組y1,r1にマスク値m5を適用し、対応する入力の組y2,r2にマスク値m6を適用する。なお、図示しないが、前述した入力回路部15及び出力回路部16も接続されていることは言うまでもない。このように新たなマスクを容易に追加できる。
また、多入力多出力の回路は、多入力1ビット出力の回路を並べることで実現できる。さらに、共有できる部分を利用して回路の効率化を図ることもできる。
上述したように本実施形態によれば、所望の論理演算をマスク無しの通常のアンド回路and、オア回路or、ノット回路notを組合せた論理回路で構成し、その後、論理回路内のアンド回路and、オア回路or、ノット回路notを、マスクアンド素子mand、マスクオア素子mor、マスクノット素子mnotに置き換えることにより、任意のマスク論理回路を構成することができる。従って、第2の実施形態の効果に加え、設計の自由度をより向上させることができる。
(第4の実施形態)
図14は本発明の第4の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
本実施形態は、第3の実施形態の変形例であり、図12に示したマスク論理素子mand,mor,mnotのみで構成されたマスク素子回路部13とは異なり、図14に示すように、マスクされてない2個の1ビット入力データx3,x4を論理演算し、得られた1個の1ビット演算結果データy2を例えばマスクアンド素子mand2に入力する通常の(マスク無しの)アンド回路and2を備えている。
これに伴い、通常のアンド回路and2の出力y2をマスク付きの回路(mor1)と接続するために新たなマスク値m3を導入している。なお、通常の論理回路(例、and2)としては、例えば、秘密情報とは無関係の回路の如き、電力差分攻撃の対象にならない回路などが適用可能である。また、アンド回路and2は、マスク無しの通常の論理回路の一例であり、回路設計に応じてオア回路or又はノット回路not等の他種類の論理回路としてもよいことは言うまでもない。
以上のような構成によれば、第3の実施形態の効果に加え、マスク無しの論理回路が混在するので、より一層、設計の自由度を向上させることができる。
(第5の実施形態)
図15は本発明の第5の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
本実施形態は、第1の実施形態の変形例であり、図5に示したマスクアンド素子mand1をCMOSロジック回路で構成した例である。図15中、符号P,Nは各々Pチャネルトランジスタ、Nチャネルトランジスタを表している。各マスク済み入力x1,x2及びマスク値m1,m2は、それぞれPチャネルトランジスタ、Nチャネルトランジスタのゲート入力となっている。
以上のような構成としても、第1の実施形態と同様の効果を得ることができる。
(第6の実施形態)
次に、本発明の第6の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第1の実施形態の変形例であり、(9)式及び(10)式以外の論理式で表現されるマスク論理素子mandの変形例を列挙するものである。
すなわち、マスク論理素子mandは、(9)式及び(10)式を[AND1]と呼ぶ場合、次の[AND2]〜[AND12]式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
[AND1]
AND=(x1 and x2) or (m1 and (not x2))
AND=(x1 and m2) or (m1 and (not m2))
[AND2]
AND=(x1 and m2) or (m1 and (not m2))
AND=(x1 and x2) or (m1 and (not x2))
[AND3]
AND=not ( (x1 and x2) or (m1 and (not x2)) )
AND=not ( (x1 and m2) or (m1 and (not m2)) )
[AND4]
AND=not ( (x1 and m2) or (m1 and (not m2)) )
AND=not ( (x1 and x2) or (m1 and (not x2)) )
[AND5]
AND=(x1 and x2) xor (m1 and (not x2))
AND=(x1 and m2) xor (m1 and (not m2))
[AND6]
AND=(x1 and m2) xor (m1 and (not m2))
AND=(x1 and x2) xor (m1 and (not x2))
[AND7]
AND=not ( (x1 and x2) xor (m1 and (not x2)) )
AND=not ( (x1 and m2) xor (m1 and (not m2)) )
[AND8]
AND=not ( (x1 and m2) xor (m1 and (not m2)) )
AND=not ( (x1 and x2) xor (m1 and (not x2)) )
[AND9]
AND=(not (x1 and x2) ) xor (m1 and (not x2))
AND=(not (x1 and m2) ) xor (m1 and (not m2))
[AND10]
AND=(not (x1 and m2) ) xor (m1 and (not m2))
AND=(not (x1 and x2) ) xor (m1 and (not x2))
[AND11]
AND=not ( (x1 and x2) xor (m1 and (not x2)) )
AND=not ( (x1 and m2) xor (m1 and (not m2)) )
[AND12]
AND=not ( (x1 and m2) xor (m1 and (not m2)) )
AND=not ( (x1 and x2) xor (m1 and (not x2)) )
以上のような構成としても、第1の実施形態と同様の作用効果を得ることができる。
(第7の実施形態)
次に、本発明の第7の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第2の実施形態の変形例であり、図9を表現した論理式のマスク論理素子morを列挙するものである。
すなわち、マスク論理素子morは、図9を表現した論理式を[OR1]〜[OR4]と呼ぶ場合、次の[OR1]〜[OR4]式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
[OR1]
OR=not ( ((not x1) and (not x2)) or (m1 and x2))
OR=((not x1) and m2) or (m1 and (not m2))
[OR2]
OR=((not x1) and (not x2)) or (m1 and x2)
OR=not ( ((not x1) and (not m2)) or (m1 and m2))
[OR3]
OR=not ( (x1 and x2) or ((not m1) and (not x2)) )
OR=(x1 and (not m2)) or ((not m1) and m2)
[OR4]
OR=(x1 and x2) or ((not m1) and (not x2))
OR=not ( (x1 and (not m2)) or ((not m1) and m2) )
以上のような構成としても、第2の実施形態と同様の作用効果を得ることができる。
(第8の実施形態)
次に、本発明の第8の実施形態に係るマスク論理回路に適用されるマスク論理素子について説明する。本実施形態は、第2の実施形態の変形例であり、図10を表現した論理式のマスク論理素子mnotを列挙するものである。
すなわち、マスク論理素子mnotは、図10を表現した論理式を[NOT1]及び[NOT2]と呼ぶ場合、次の[NOT1]又は[NOT2]式のいずれを用いて構成してもよい。また、以下の各式に限らず、各式の等価回路も本発明の範囲に包含されることはいうまでもない。
[NOT1]
NOT=not x1
NOT=m1
[NOT2]
NOT=x1
NOT=not m1
以上のような構成としても、第2の実施形態と同様の作用効果を得ることができる。
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態に係るマスク論理回路の構成を示す模式図である。 同実施形態における作用を説明するための通常の論理回路を示す模式図である。 図2の論理回路にマスクを適用したマスク論理回路の構成を示す模式図である。 図3のマスク素子回路部の関数Fの真理値表を示す図である。 図4の真理値表を満たすマスクアンド素子の回路構成図である。 図5のマスクアンド素子の変形例を示す回路構成図である。 図5のマスクアンド素子の変形例を示す回路構成図である。 図5のマスクアンド素子の変形例を示す回路構成図である。 本発明の第2の実施形態に係るマスク論理回路に適用されるマスクオア素子の構成を示す模式図である。 同実施形態におけるマスクノット素子の構成を示す模式図である。 本発明の第3の実施形態に係るマスク論理回路を説明するための通常の論理回路の構成を示す模式図である。 図11の論理回路に対応するマスク素子回路部の構成を示す模式図である。 図12のマスク素子回路部の変形例を示す模式図である。 本発明の第4の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。 本発明の第5の実施形態に係るマスク論理回路に適用されるマスク素子回路部の構成を示す模式図である。
符号の説明
10…マスク論理回路、11…乱数発生器、12〜12,14…排他的論理和回路、13…マスク素子回路部、m1〜mn…マスク値、a1〜an…入力、x1〜xn…マスク済入力、y,r…出力、t0〜t3…内部信号、mand1〜mand4…マスクアンド素子、mor1〜mor4…マスクオア素子、mnot1,mnot2…マスクノット素子。

Claims (11)

  1. n(n≧2)個の一ビットの入力値を論理演算し1個の一ビットの結果値を得る論理演算装置に利用されるマスク素子回路であって、
    マスク用の値としてn個のマスク値を入力する第1入力手段と、
    前記n個の入力値と対応付けた前記n個のマスク値で排他的論理和されたn個の被マスク化値を入力する第2入力手段と、
    入力される前記n個のマスク値と入力される前記n個の被マスク化値との組み合わせによって、それぞれ1ビットの第1と第2の出力値が決まるゲート群であって、前記第1の出力値と前記第2の出力値とを排他的論理和すると前記一ビットの結果値と一致するような前記第1の出力値と前記第2の出力値とを得るゲート群と、
    前記第1の出力値と前記第2の出力値とを出力する出力手段と
    を備えたことを特徴とするマスク素子回路。
  2. 請求項1に記載のマスク素子回路において、
    前記ゲート群に含まれる各ゲートの出力値と前記一ビットの結果値との間に相関が無いことを特徴とするマスク素子回路。
  3. 入力されたn個の1ビット入力データ{a1,…,an}の関数f(a1,…,an)を出力する際に、前記各入力データ{a1,…,an}をn個の1ビットマスク値{m1,…,mn}の排他的論理和(xor)によりマスクする機能と、前記マスクにより得られた各マスク済入力データ{x1,…,xn}(但し、xi=ai xor mi、1≦i≦n)及び前記マスク値{m1,…,mn}を論理演算する論理演算機能と、前記論理演算機能により得られた2個の1ビットマスク済演算結果データy,rから互いの排他的論理和により前記マスクの影響を除去し、得られた1個の1ビット出力データf(a1,…,an)を出力する出力機能とを有するマスク論理回路であって、
    前記論理演算機能は、
    前記各マスク済入力データ{x1,…,xn}及び前記マスク値{m1,…,mn}から前記各マスク済演算結果データy,rを得るまでの途中結果を前記各入力データ{a1,…,an}とは相関が無いように生成するように、複数の論理素子からなる1種類以上の複数のマスク論理素子が互いに接続されてなり、
    前記各マスク論理素子は、
    前記各1ビットマスク済入力データ{x1,…,xn}及び前記各1ビットマスク値{m1,…,mn}を順番1,…,nで区別するとき、互いに同じ順番同士の複数の各1ビットマスク済入力データ及び各1ビットマスク値が入力された際に、当該各1ビットマスク済入力データ及び各1ビットマスク値の各々を2つに分岐させる機能と、
    各々が分岐された各1ビットマスク済入力データ及び各1ビットマスク値のうち、互いに異なる順番の各1ビットマスク済入力データ及び/又は各1ビットマスク値を前記各論理素子により演算する機能と、
    を備えたことを特徴とするマスク論理回路。
  4. 請求項3に記載のマスク論理回路において、
    前記各マスク論理素子のうち、第1の種類(論理積)のマスク論理素子は、
    同じ順番j(但し、1≦j≦n)のマスク済入力データとマスク値との組{xj,mj}と、他の同じ順番k(但し、1≦k≦n、k≠j)のマスク済入力データとマスク値との組{xk,mk}とが入力されると、途中結果の演算を介して2個の1ビットマスク済論理積結果データyAND,rANDを生成する生成機能を有し、
    前記各マスク済論理積結果データyAND,rANDは、
    AND xor rAND=aj and akの関係(但し、andは論理積)を満たし、且つ前記途中結果が順番j,kの入力データ{aj,ak}と相関が無いことを特徴とするマスク論理回路。
  5. 請求項4に記載のマスク論理回路において、
    前記第1の種類のマスク論理素子における生成機能は、
    下記式[AND1]〜[AND12]のうち、いずれかの式に示すように、論理積and、論理和or、否定not及び排他的論理和xorのうちの幾つかを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済論理積結果データyAND,rANDを生成することを特徴とするマスク論理回路。
    [AND1]
    AND=(xj and xk) or (mj and (not xk))
    AND=(xj and mk) or (mj and (not mk))
    [AND2]
    AND=(xj and mk) or (mj and (not mk))
    AND=(xj and xk) or (mj and (not xk))
    [AND3]
    AND=not ( (xj and xk) or (mj and (not xk)) )
    AND=not ( (xj and mk) or (mj and (not mk)) )
    [AND4]
    AND=not ( (xj and mk) or (mj and (not mk)) )
    AND=not ( (xj and xk) or (mj and (not xk)) )
    [AND5]
    AND=(xj and xk) xor (mj and (not xk))
    AND=(xj and mk) xor (mj and (not mk))
    [AND6]
    AND=(xj and mk) xor (mj and (not mk))
    AND=(xj and xk) xor (mj and (not xk))
    [AND7]
    AND=not ( (xj and xk) xor (mj and (not xk)) )
    AND=not ( (xj and mk) xor (mj and (not mk)) )
    [AND8]
    AND=not ( (xj and mk) xor (mj and (not mk)) )
    AND=not ( (xj and xk) xor (mj and (not xk)) )
    [AND9]
    AND=(not (xj and xk) ) xor (mj and (not xk))
    AND=(not (xj and mk) ) xor (mj and (not mk))
    [AND10]
    AND=(not (xj and mk) ) xor (mj and (not mk))
    AND=(not (xj and xk) ) xor (mj and (not xk))
    [AND11]
    AND=not ( (xj and xk) xor (mj and (not xk)) )
    AND=not ( (xj and mk) xor (mj and (not mk)) )
    [AND12]
    AND=not ( (xj and mk) xor (mj and (not mk)) )
    AND=not ( (xj and xk) xor (mj and (not xk)) )
  6. 請求項4又は請求項5に記載のマスク論理回路において、
    前記各マスク論理素子のうち、第2の種類(論理和)のマスク論理素子は、
    同じ順番g(但し、1≦g≦n、g≠j,g≠k)のマスク済入力データとマスク値との組{xg,mg}と、他の同じ順番h(但し、1≦h≦n、h≠g、h≠j、h≠k)のマスク済入力データとマスク値との組{xh,mh}とが入力されると、途中結果の演算を介して2個の1ビットマスク済論理積結果データyOR,rORを生成する生成機能を有し、
    前記各マスク済論理和結果データyOR,rORは、
    OR xor rOR=ag or ahの関係(但し、orは論理和)を満たし、且つ前記途中結果が順番g,hの入力データ{ag,ah}と相関が無いことを特徴とするマスク論理回路。
  7. 請求項6に記載のマスク論理回路において、
    前記第2の種類のマスク論理素子における生成機能は、
    下記式[OR1]〜[OR4]のうち、いずれかの式に示すように、論理積and、論理和or及び否定notを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済論理和結果データyOR,rORを生成することを特徴とするマスク論理回路。
    [OR1]
    OR=not ( ((not xg) and (not xh)) or (mg and xh))
    OR=((not xg) and mh) or (mg and (not mh))
    [OR2]
    OR=((not xg) and (not xh)) or (mg and xh)
    OR=not ( ((not xg) and (not mh)) or (mg and mh))
    [OR3]
    OR=not ( (xg and xh) or ((not mg) and (not xh)) )
    OR=(xg and (not mh)) or ((not mg) and mh)
    [OR4]
    OR=(xg and xh) or ((not mg) and (not xh))
    OR=not ( (xg and (not mh)) or ((not mg) and mh) )
  8. 請求項4乃至請求項7のいずれか1項に記載のマスク論理回路において、
    前記各マスク論理素子のうち、第3の種類(否定)のマスク論理素子は、
    同じ順番p(但し、1≦p≦n、p≠j、p≠k、p≠g、p≠h)のマスク済入力データとマスク値との組{xp,mp}が入力されると、2個の1ビットマスク済否定結果データyNOT,rNOTを生成する生成機能を有し、
    前記各マスク済否定結果データyNOT,rNOTは、
    NOT xor rNOT=not apの関係(但し、notは論理和)を満たすことを特徴とするマスク論理回路。
  9. 請求項8に記載のマスク論理回路において、
    前記第3の種類のマスク論理素子における生成機能は、
    下記式[NOT1]又は[NOT2]に示すように、否定notを用いた論理演算により、前記マスク済入力データとマスク値との組から各マスク済否定結果データyNOT,rNOTを生成することを特徴とするマスク論理回路。
    [NOT1]
    NOT=not xp
    NOT=mp
    [NOT2]
    NOT=xp
    NOT=not mp
  10. 請求項4乃至請求項9のいずれか1項に記載のマスク論理回路において、
    前記各マスク論理素子の出力は、他のマスク論理素子への入力又は前記出力機能による出力であることを特徴とするマスク論理回路。
  11. 請求項10に記載のマスク論理回路を備えた暗号装置。
JP2004136726A 2004-04-30 2004-04-30 マスク論理回路及び暗号装置 Expired - Fee Related JP4271077B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004136726A JP4271077B2 (ja) 2004-04-30 2004-04-30 マスク論理回路及び暗号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004136726A JP4271077B2 (ja) 2004-04-30 2004-04-30 マスク論理回路及び暗号装置

Publications (2)

Publication Number Publication Date
JP2005318476A JP2005318476A (ja) 2005-11-10
JP4271077B2 true JP4271077B2 (ja) 2009-06-03

Family

ID=35445405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004136726A Expired - Fee Related JP4271077B2 (ja) 2004-04-30 2004-04-30 マスク論理回路及び暗号装置

Country Status (1)

Country Link
JP (1) JP4271077B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4589327B2 (ja) * 2004-07-07 2010-12-01 三菱電機株式会社 電子素子及びデータ処理方法
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
JP4962165B2 (ja) * 2007-06-22 2012-06-27 大日本印刷株式会社 暗号処理装置,暗号処理プログラム及び暗号処理方法
JP2015102639A (ja) * 2013-11-22 2015-06-04 Kddi株式会社 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置
US10255462B2 (en) * 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor

Also Published As

Publication number Publication date
JP2005318476A (ja) 2005-11-10

Similar Documents

Publication Publication Date Title
Schneider et al. ParTI–towards combined hardware countermeasures against side-channel and fault-injection attacks
Wyseur et al. Cryptanalysis of white-box DES implementations with arbitrary external encodings
Bilgin et al. Efficient and first-order DPA resistant implementations of Keccak
KR100725169B1 (ko) 전력 분석 공격에 안전한 논리 연산 장치 및 방법
TWI447683B (zh) Information processing device
KR20180002069A (ko) 부채널 분석에 대응한 보호 방법 및 장치
CN102648600B (zh) 由定制的掩蔽保护的低复杂度电子电路
RU2603550C2 (ru) Устройство обработки данных, способ обработки данных и программа
US11700111B2 (en) Platform neutral data encryption standard (DES) cryptographic operation
JP5364840B2 (ja) 暗号化装置
Shahmirzadi et al. New first-order secure AES performance records
US7003109B2 (en) Compact crypto-engine for random number and stream cipher generation
Gross et al. First-order masking with only two random bits
AlTawy et al. Spix: An authenticated cipher submission to the NIST LWC competition
Kim et al. Masked implementation of PIPO block cipher on 8-bit AVR microcontrollers
Kraleva et al. Cryptanalysis of strong physically unclonable functions
Gafsi et al. Hardware implementation of a strong pseudorandom number generator based block‐cipher system for color image encryption and decryption
JP4271077B2 (ja) マスク論理回路及び暗号装置
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
Gandh et al. FPGA implementation of enhanced key expansion algorithm for Advanced Encryption Standard
Maiti et al. Design of fault-resilient S-boxes for AES-like block ciphers
KR102141843B1 (ko) 암호화 방법을 실행하기 위한 장치 및 방법
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
CN113691364B (zh) 一种基于位片技术的动态s盒分组密码的加密及解密方法
JP5268001B2 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050907

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4271077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees