(57)【要約】【課題】小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を図る。【解決手段】暗号処理を実行するための論理をプログラマブルに設定可能な論理回路（３）と、同一の暗号処理アルゴリズムに対応する複数の論理構成情報を記憶するメモリ（７）と、上記論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するＣＰＵ（２）とを含んで暗号処理装置（１）を構成する。同一の暗号鍵を使った処理でも、処理毎に上記論理回路の論理が変更されることで、暗号処理における消費電流を異ならせたり、誤動作を起こす場所やタイミングを異ならせることができる。また複数の論理を実現するためのハードウェアの規模の増大を抑えることができる。【選択図】図１
2007228141.tif 000002
【特許請求の範囲】
【請求項１】
暗号処理を実行するための論理をプログラマブルに設定可能な論理回路を用いた暗号処理方法であって、
暗号処理毎に、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定されることを特徴とする暗号処理方法。
【請求項２】
上記論理回路で暗号処理が行われる前に、上記論理回路での暗号処理手順、又は上記論理回路での暗号処理の実行タイミング、若しくは上記論理回路での暗号処理に伴う消費電力が互いに異なる複数の論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定される請求項１記載の暗号処理方法。
【請求項３】
暗号処理を実行するための論理をプログラマブルに設定可能な論理回路と、
同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するＣＰＵと、を含むことを特徴とする暗号処理装置。
【請求項４】
暗号処理を実行するための論理をプログラマブルに設定可能な論理回路と、
同一の暗号処理アルゴリズムに対応する複数の論理構成情報を記憶するメモリと、
上記メモリの論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するＣＰＵと、を含むことを特徴とする暗号処理装置。
【請求項５】
上記ＣＰＵは、上記論理回路で暗号処理が行われる前に、上記メモリの論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定する請求項４記載の暗号処理装置。
【請求項６】
上記ＣＰＵは、上記論理回路で暗号処理が行われる前に、上記論理回路での暗号処理処理手順、又は上記論理回路での暗号処理の実行タイミング、若しくは上記論理回路での暗号処理に伴う消費電力が互いに異なる複数の論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定する請求項４記載の暗号処理装置。
【請求項７】
上記複数の論理構成情報は、上記ＣＰＵの演算処理によって求められた構成情報を含む請求項４記載の暗号処理装置。
【請求項８】
上記複数の論理構成情報は、暗号化されて上記メモリに記憶される請求項４記載の暗号処理装置。
【請求項９】
上記メモリは、不揮発性メモリとされる請求項４記載の暗号処理装置。
【請求項１０】
上記論理回路は、ＦＰＧＡ又はＰＬＤによって構成される請求項４記載の暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理技術に関し、例えば通信システムにおける通信装置に適用して有効な技術に関する。
【背景技術】
【０００２】
暗号技術の一つとして公開鍵暗号技術が有る。この技術では、例えば特許文献１における図１４に示されるように、送信者は、メッセージＭに対して「Ｃ＝ＭemodＮ」による符号化で暗号文Ｃを形成し、受信者は暗号文Ｃに対して、「Ｍ＝ＣdmodＮ」による復号化でメッセージＭを得る。上記符号化におけるパラメータe，Ｎは公開とされ、上記復号化におけるｄは非公開とされる。前記符号化及び復号化のための演算式は、べき乗剰余演算であり、代表的に「XY mod N」（X, Y, N は正の整数）と記述する事ができる。「mod」は剰余演算を意味し、べき乗剰余演算「XY mod N」は、XY をNで除算した余りを解とするものである。
【０００３】
ところで、ＩＣカード、著作権管理機能を有するＡＶ（audio-visual）機器や記憶装置等の暗号処理機能を有する情報機器あるいは通信装置においては、高性能・低消費電力な暗号処理を実現するために専用ハードウェアを搭載するのが一般的である。また、これらの装置においては、応用ソフトウェアの用途、目的、およびディジタルコンテンツの暗号化方式に応じて複数の異なる暗号処理を行う必要があり、単一の装置で複数の暗号処理ハードウェアを搭載する場合が多い。
【０００４】
また、同一の暗号処理を異なる論理構成で実現する方法として、例えば非特許文献１に記載されているＡＥＳ(Advanced Encryption Standard)暗号に関して非特許文献２に記載された実装方法が知られている。
【０００５】
【特許文献１】特開平１０-２１０５７号公報
【非特許文献１】Federal Information Processing Standards Publication 197, Announcing the ADVANCED ENCRYPTＩ／ON STANDARD (ＡＥＳ), November 26, 2001
【非特許文献２】Simplified Adaptive Multiplicative Masking for AES, Elena Trichina, Domenico De Seta, and Lucia Germani, LNCS 2523, p. 187-197
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＩＣカード、著作権管理機能を有するＡＶ機器や記憶装置等の暗号処理機能を有する情報機器あるいは通信装置においては、データ暗号化、復号化のためのブロック暗号、認証処理のための公開鍵暗号などを含む種類の暗号処理機能が必要である。さらに、公開鍵暗号としてＲＳＡ、楕円暗号、ブロック暗号としてＤＥＳ，ＡＥＳなど、様々な暗号アルゴリズムが広く使われており、ハードウェアの機能としてこれら多数のアルゴリズムを実装する必要がある。
【０００７】
また、上記情報機器においては、ハードウェア的な手法を用いたアタックに対する安全性(耐タンパ性)が重要とされる。すなわち、動作中の消費電力や電磁放射を測定することにより秘密情報を解読する攻撃や、動作中のハードウェアに誤動作を起こさせ、その結果を観測することによって秘密情報を解読する攻撃に対する安全性の実現が必須要件となっている。上記ハードウェア的な手法を用いたアタックに対して、耐タンパ性の実現のための付加的な論理回路を設けることが考えられる。
【０００８】
しかしながら、上記情報機器においては、上記のような各種暗号アルゴリズム毎に複数の専用ハードウェアを搭載しており、それに加えて、耐タンパ性の実現のための付加的な論理回路を設けることは、ハードウェア規模が増大するため、情報機器の製造コストの上昇を余儀なくされる。
【０００９】
本発明の目的は、小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を図るための技術を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
〔１〕暗号処理を実行するための論理をプログラマブルに設定可能な論理回路を用いた暗号処理方法において、暗号処理毎に、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定されるようにする。
【００１３】
上記〔１〕の手段によれば、暗号処理方法において、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定される。同一の暗号鍵を使った処理でも、上記論理回路の論理が変更されることで、暗号処理における消費電流を異ならせることができ、それによって電流解析によるアタックに対する安全性を向上させることができる。また、上記論理回路の論理が変更されることで、誤動作を起こす場所やタイミングを異ならせることができ、それによって誤動作解析アタックに対する安全性を向上させることができる。そして、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定されることにより、複数の論理を実現するためのハードウェアの規模の増大を抑えることができる。このことが、小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を達成する。
【００１４】
〔２〕上記〔１〕において、上記論理回路で暗号処理が行われる前に、上記論理回路での暗号処理処理手順、又は上記論理回路での暗号処理の実行タイミング、若しくは上記論理回路での暗号処理に伴う消費電力が互いに異なる複数の論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定されるようにすることができる。
【００１５】
〔３〕暗号処理を実行するための論理をプログラマブルに設定可能な論理回路と、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するＣＰＵとを含んで暗号処理装置を構成することができる。
【００１６】
〔４〕また、暗号処理を実行するための論理をプログラマブルに設定可能な論理回路と、同一の暗号処理アルゴリズムに対応する複数の論理構成情報を記憶するメモリと、上記メモリの論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するＣＰＵとを含んで暗号処理装置を構成することができる。
【００１７】
上記〔３〕〔４〕の手段によれば、暗号処理装置において、同一の暗号鍵を使った処理でも、上記論理回路の論理が変更されることで、暗号処理における消費電流を異ならせることができ、それによって電流解析によるアタックに対する安全性を向上させることができる。また、上記論理回路の論理が変更されることで、誤動作を起こす場所やタイミングを異ならせることができ、それによって誤動作解析アタックに対する安全性を向上させることができる。そして、同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記論理回路に設定されることにより、複数の論理を実現するためのハードウェアの規模の増大を抑えることができる。このことが、小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を達成する。
【００１８】
〔５〕上記〔４〕において、上記ＣＰＵは、上記論理回路で暗号処理が行われる直前に、上記メモリの論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するように構成することができる。これにより、上記論理回路の時分割的利用の円滑化と利用効率の向上を図ることができる。
【００１９】
〔６〕上記〔４〕において、上記ＣＰＵは、上記論理回路で暗号処理が行われる直前に、上記論理回路での暗号処理処理手順、又は上記論理回路での暗号処理の実行タイミング、若しくは上記論理回路での暗号処理に伴う消費電力が互いに異なる複数の論理構成情報に基づいて、同一の暗号処理アルゴリズムに対応する複数の論理を選択的に上記論理回路に設定するように構成することができる。これにより、上記論理回路の時分割的利用の円滑化と利用効率の向上を図ることができる。
【００２０】
〔７〕上記〔４〕において、上記複数の論理構成情報には、上記ＣＰＵの演算処理によって求められた構成情報を含めることができる。
【００２１】
〔８〕上記〔４〕において、機密保護の見地から上記複数の論理構成情報を暗号化して上記メモリに記憶するのが良い。
【００２２】
〔９〕上記〔４〕において、上記論理構成情報の喪失を防ぐため、上記メモリを不揮発性メモリとすることができる。
【００２３】
〔１０〕上記〔４〕において、上記論理回路はＦＰＧＡField Programmable Gate Array)又はＰＬＤ(Programmable Logic Device)によって容易に構成することができる。
【発明の効果】
【００２４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２５】
すなわち、小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を達成することができる。
【発明を実施するための最良の形態】
【００２６】
図３には、本発明にかかる暗号処理装置を含む通信システムが示される。
【００２７】
図３に示される通信システムは、特に制限されないが、第１通信装置２０と第２通信装置２１とが通信線２３を介して結合されることによって、第１通信装置２０と第２通信装置２１との間で、各種信号のやり取りが可能とされる。第１通信装置２０と第２通信装置２１とは、互いに同一構成とされる。第１通信装置２０は、特に制限されないが、通信制御を行う通信制御装置２２、上記通信制御装置２２を介して信号の入出力を可能とする入出力装置２３と、上記通信制御装置２２によって行われる通信の暗号処理を行う暗号処理装置１とを含んで成る。特に制限されないが、上記暗号処理装置１は、データ暗号化、復号化のためのブロック暗号、認証処理のための公開鍵暗号などを含む複数種類の暗号処理機能を備えている。
【００２８】
Ｉ／Ｏインタフェース５を介して送られるコマンドのひとつに電子署名処理コマンドがある。電子署名の方法については「Alfred J. Menezes、Paul C. van Oorschot、Scott A. Vanstone “Handbook of Applied Cryptography”, CRC Press, 1996, ISBN: 0-8493-8523-7, chapter7」に記載された公知の技術を適用することができる。電子署名処理は、通信装置が通信相手の個体識別、認証を行うために用いることができる。装置は通信路を介して乱数値を送り、暗号処理装置は予め記録している固有の秘密鍵を用いて該乱数値に対して署名処理を行う。この処理は、通信相手の装置が暗号処理装置1の個体識別をするために用いられる。電子署名処理のアルゴリズムの詳細については、例えば「Alfred J. Menezes、Paul C. van Oorschot、Scott A. Vanstone “Handbook of Applied Cryptography”, CRC Press, 1996, ISBN: 0-8493-8523-7, chapter7」に記載されている。
【００２９】
図４には、上記通信装置２０において、他の通信装置２１から暗号化された情報を受信する場合の処理手順が示される。
【００３０】
通信装置２０は通信装置２１との間で通信を行う場合、先ず接続要求３１を送信する。この通信要求３１には通信装置２０自身の装置番号を含む。通信装置２１は、上記接続要求３１を受け取ると乱数を生成し（３２）、接続要求元の通信装置２０に、その乱数を送信し署名を要求する（２３）。通信装置２０は、自身の秘密鍵を用いて署名処理を行い（３４）、この署名を通信装置２１に返送する（３５）。通信装置２１は、通信装置２０の秘密鍵に対する公開鍵を用いて署名の検証を行い、検証が成功すると、通信装置２０の正当性が確認できたものとしてデータ送信処理を行う（３７）。通信装置２０では、上記通信装置２１から伝達されたデータの復号化処理が行われる（３８）。
【００３１】
尚、上記例では通信装置の認証を電子署名によって行うこととしたが、これに限定されず、ゼロ知識証明を用いた個体認証、共通鍵暗号を用いた個体認証などを用いることも可能である。各種認証処理のアルゴリズムについては例えば「Alfred J. Menezes、Paul C. van Oorschot、Scott A. Vanstone “Handbook of Applied Cryptography”, CRC Press, 1996, ISBN: 0-8493-8523-7, chapter10」に記載されている。
【００３２】
図１には、上記暗号処理装置１の構成例が示される。
【００３３】
図１に示される暗号処理装置１は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００３４】
図１に示される暗号処理装置１は、特に制限されないが、演算処理のためのＣＰＵ（中央処理装置）２、論理構成の変更が可能とされる再構成可能論理回路３、乱数発生のための乱数生成器４、外部との間で各種信号の入出力を可能とするＩ／Ｏ（入出力）インタフェース５、上記ＣＰＵ２での演算処理における作業領域などに利用されるＲＡＭ（ランダム・アクセス・メモリ）６、各種情報が格納されるＲＯＭ（リード・オンリー・メモリ）７、記憶情報を電気的に書き換え可能なＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・プログラマブル・リード・オンリー・メモリ）８を含み、それらはシステムバス９によって相互に接続される。
【００３５】
暗号処理装置1では、Ｉ／Ｏインタフェース５を介した通信によりコマンドを受け取り、予め決められた処理を実行し、Ｉ／Ｏインタフェース５を介して返信し、また必要に応じてＲＡＭ６やＥＥＰＲＯＭ８に記録する。
【００３６】
再構成可能論理回路３は、特に制限されないが、ＦＰＧＡ(Field Programmable Gate Array)あるいはＰＬＤ(Programmable Logic Device)と呼ばれる論理回路によって構成される。ＦＰＧＡの内部構成例については、例えば「Stratix II Device Handbook, Volume 1 ver 3.1, Jul 2005」に記載されている。ここで、上記再構成可能論理回路３が本発明における論理回路の一例とされる。
【００３７】
ＲＯＭ７には、ＣＰＵ２で実行されるプログラムや、再構成可能論理回路３における論理構成をＣＰＵ２によって設定するための論理構成情報１１〜１６などが記憶される。この論理構成情報１１〜１６には、同一の暗号処理を異なる処理手順で実行するための複数の構成情報が含まれる。特に制限されないが、論理構成情報１１〜１４には、同一の暗号（１）に対応して互いに異なる構成情報（１）〜（４）が設定され、論理構成情報１５，１６には、同一の暗号（２）に対応して互いに異なる構成情報（３），（４）が設定される。この結果、論理構成情報１１〜１４を用いて再構成可能論理回路３の論理が設定された場合には、同一の暗号（１）処理が行われることになるが、再構成可能論理回路３の論理構成は論理構成情報１１〜１４によって互いに異なる。同様に論理構成情報１５，１６を用いて再構成可能論理回路３の論理が設定された場合には、同一の暗号（２）処理が行われることになるが、再構成可能論理回路３の論理構成は論理構成情報１５，１６によって互いに異なる。再構成可能論理回路３の論理構成が異なることにより、暗号処理の手順が異なり、再構成可能論理回路３の動作中の消費電力や電磁放射も異なる。従って、再構成可能論理回路３の論理構成を変更して、同一の暗号処理を行うようにすれば、動作中の消費電力や電磁放射の測定に基づく秘密情報解読が困難になる。また、上記再構成可能論理回路３の論理が変更されることで、誤動作を起こす場所やタイミングを異ならせることができ、それによって誤動作解析に基づく秘密情報解読が困難になる。これにより耐タンパ性の向上を図ることができる。
【００３８】
上記論理構成情報１１〜１４は機密保護の見地から暗号化されてＲＯＭ７に記憶することができる。このとき、上記論理構成情報１１〜１４の復号化は、ＣＰＵ２によって行われる。
【００３９】
以下、同一の暗号処理を異なる論理構成で実現する方法を、標準的なブロック暗号のひとつであるＡＥＳ(Advanced Encryption Standard)を例に説明する。
【００４０】
ＡＥＳの処理方式の詳細は、例えば「Federal Information Processing Standards Publication 197, Announcing the ADVANCED ENCRYPTION STANDARD (AES), November 26, 2001」に詳述されている。以下、ＡＥＳのアルゴリズムの一部であるSboxと呼ばれる処理の実装について説明する。ＡＥＳのSboxは、8ビットのデータの変換であり、標数２のガロア体GF(28)における乗法逆元の計算とアフィン変換の組み合わせによって、図２に示される式で定義される。この変換は位数２５６の集合の１対１写像を構成する。
【００４１】
この計算式を論理回路で実装した場合、入力値aの乗法逆元の計算において、aの値と消費電力の関係からaの値を推定し、それを用いて暗号鍵の一部を解読できる可能性があることが「Simplified Adaptive Multiplicative Masking for AES, Elena Trichina, Domenico De Seta, and Lucia Germani, LNCS 2523, p. 187-197.」に記載されている。この解読を防ぐための方法として、aの逆元計算において入力値aに予め変換を施し、逆元計算を行った後に入力値の変換による影響を除去する処理を行うことで電流値のデータ依存性を解消する方法も、同文献に記載されている。具体的には、以下の計算式で表される方法で実現することができる。
【００４２】
すなわち、a' = a + d, (a-1)' = a-1 + d とすると、乱数yを用いて以下のように(a-1)'を計算することができる。
【００４３】
((a' x y + dy)-1 + (d x y-1)) x y = ((a x y)-1 + (d x y-1)) x y = ((a-1 + d) x y-1) x y = a-1 + d
上記計算方法においては、実行時に二つのパラメータd, yが用いられる。dはガロア体GF(28)の任意の元、yはGF(28)の0でない任意の値であり、それらを「マスク項」と称する。
【００４４】
本例によるＡＥＳの処理方法においては、上記二つのパラメーターの複数の組について、該パラメーターを固定して得られる計算式を実行するように再構成可能論理回路を構成するための構成情報をＲＯＭ７に記録する。ＡＥＳ暗号処理実行時には該複数の構成情報の中からＣＰＵ２がひとつの構成情報を選択して再構成可能論理回路３を構成し、ＡＥＳ暗号処理を実行する。
【００４５】
次に、再構成可能論理回路３において、論理構成情報１１〜１６に基づいて実現される論理構成例について説明する。
【００４６】
図５には、それぞれ４ビット構成の入力ａ０，ａ１，φに基づいてGF(28)の逆元計算を行って、４ビット構成の出力ｂ０，ｂ１を得るための構成例が示される。
【００４７】
同図に示される回路は、加算回路（ａｄｄ）５０１，５０６、乗算回路（ｍｕｌｔ）５０３，５０４，５０８、５０９、平方回路（ｓｑｒ）５０２、及びインバータ（ｉｎｖ）５０７が結合されて成る。加算回路（ａｄｄ）５０１，５０６は、ビット単位の排他的論理和を得る。加算回路５０１の出力は、乗算回路５０３，５０８に伝達される。加算器５０６の出力は後段のインバータ（ｉｎｖ）５０７に伝達される。インバータ（ｉｎｖ）５０７は、加算回路５０６の出力論理を反転して後段の乗算回路５０８，５０９に出力する。乗算回路（ｍｕｌｔ）５０３，５０４，５０８、５０９は、GF(24)の乗算を行う。平方回路（ｓｑｒ）５０２は、GF(24)の元の平方を計算する。
【００４８】
図６には、上述したマスク項を導入した逆元計算を実現する論理構成例が示される。
【００４９】
図６に示される構成例は、加算回路（ａｄｄ）６０４，６０７、乗算回路（ｍｕｌｔ）６０１，６０２，６０５，６０８、インバータ（ｉｎｖ）６０３，６０６が結合されて成る。入力a',y,d及び出力a-1は、それぞれ８ビット構成とされる。このとき、マスク項（d,y）を特定の値に固定した場合、より簡単な論理回路によって実現される。具体的にはマスク値（d,y）を入力とする乗算回路６０１、６０２，６０５が簡約化される。また、入力値yの値が固定される場合にはyの逆元を計算する逆元計算回路６０３は、予め計算された逆元の値に固定された信号線の組に置き換えることで削除することができる。以下では説明の便宜上、ガロア体の乗算回路がどのように簡略化されるかをGF(2)の場合の例で示す。実際に図５に示されるGF(256)の逆元計算回路で用いられるのは、GF(16)の乗算回路であるが、論理簡略化の原理は同様である。
【００５０】
図７には、GF(2)の乗算回路の論理構成例が示される。
【００５１】
同図において乗算回路７００〜７０３は、二つの入力値a,dを入力し、乗算結果cが排他的論理和(EOR)７０４，７０５，７０６を介して出力される。GF(2)の元は２ビットデータとして(0,0)(0,1)(1,0)(1,1)で表現され、(0,0)は零元、(0,1)は単位元をそれぞれ表す。乗算回路の入力値をa=(a1,a0), d=(d1,d0)、出力をc=(c1,c0)とする。が設けられる。
【００５２】
以下、上記乗算回路の入力値の一部が確定している場合には論理回路を以下のように簡略化できる。
【００５３】
図８、図９、図１０には、図７の乗算回路の入力値のうちdがそれぞれd=(1,1), d=(1,0), d=(0,1)とした場合の構成例が示される。ここで、特にd=(0,1)の場合、dはGF(2)における乗法単位元であり、dとの乗算は恒等写像となる。これらの例で示されるように、入力値の一部が確定している場合、逆元計算回路の論理構成は大幅に簡略化される。
【００５４】
逆元計算を実現する別の方法としてテーブルを用いても良い。例えば図１に示されるようなGF(28)の逆元計算の対応表を、ＲＡＭ６、あるいはＲＯＭ７又はＥＥＰＲＯＭ８にテーブルとして保持し、暗号処理の実行時において、入力値に対する逆元を上記テーブル参照して求めるように構成することができる。
【００５５】
本発明にかかる暗号装置の別の構成例においては、図６に示されるマスク付き逆元計算回路において、マスク値y，dを固定して簡約化した複数の回路について再構成可能論理回路の構成情報をＲＯＭ７又はＥＥＰＲＯＭ８に記録し、暗号処理実行時に、予め決められた手順で構成情報を選択する。これにより、図６に示される乗算回路をそのまま再構成可能論理回路３上で実現するのに比べて、より少ないハードウェアで実装可能となる。また、実行時に起こる信号線の変動が、図６に示す回路で実行した場合に比べ少なくなるため、実行時の消費電力を低減することができる。
【００５６】
さらに、図１１に示されるような逆元計算の対応表を、再構成可能論理回路３に実装するための構成情報をＲＯＭ７に記録し、暗号処理実行時に、上記対応表を参照するようにしても良い。この場合、逆元計算結果を短時間で得ることができる。
【００５７】
上記の例においては、マスク付き逆元計算回路においてマスク値を固定した回路の構成情報を記録するとしたが、別の実施形態として、このような構成情報を実行時にＣＰＵ2によって生成するようにすることも可能である。この場合、ＲＯＭ７には、図６に示されるマスク付き逆元計算回路の構成情報を記録しておき、それに基づいて、マスク値を固定した場合の簡約化された構成情報をＣＰＵ2で求めるようにすると良い。つまり、暗号処理実行時にＣＰＵ２が予め決められた手順でマスク付き逆元計算に用いるマスク値を選択し、マスク付き逆元計算回路の入力値を該マスク値に固定して簡約化した論理回路の構成情報をＣＰＵ２で生成し、該構成情報を用いて再構成可能論理回路３での論理を構成して暗号処理を実行するようにする。このとき、ＣＰＵ２で得られた構成情報は、一時的にＲＡＭ６に格納される。
【００５８】
上記の例によれば、以下の作用効果を得ることができる。
【００５９】
（１）暗号処理が行われる毎に、同一の暗号処理アルゴリズムに対応する複数の論理がＣＰＵ２により選択的に再構成可能論理回路３に設定されるようになっているため、上記再構成可能論理回路３の論理が変更されることで、同一の暗号鍵を使った処理でも、暗号処理における消費電流を異ならせることができ、それによって電流解析によるアタックに対する安全性を向上させることができる。また、上記再構成可能論理回路３の論理が変更されることで、誤動作を起こす場所やタイミングを異ならせることができ、それによって誤動作解析アタックに対する安全性を向上させることができる。
【００６０】
（２）同一の暗号処理アルゴリズムに対応する複数の論理が選択的に上記再構成可能論理回路３に設定されることにより、複数の論理を実現するためのハードウェアの規模の増大を抑えることができる。
【００６１】
（３）上記（１），（２）の作用効果により、小規模ハードウェアによりハードウェア的手法を用いた攻撃に対する安全性の向上を達成することができる。
【００６２】
（４）互いに異なる暗号処理アルゴリズムに対応する複数の論理が選択的に上記再構成可能論理回路３に設定されることにより、複数の論理を実現するためのハードウェアの規模の増大を抑えることができる。ここでＩＣカード、著作権管理機能を有するＡＶ（audio-visual）機器や記憶装置等の暗号処理機能を有する情報機器あるいは通信装置においては、応用ソフトウェアの用途、目的、およびディジタルコンテンツの暗号化方式に応じて複数の異なる暗号処理を行う必要があり、単一の装置で複数の暗号処理ハードウェアを搭載する場合が多い。しかしながら、この複数の暗号処理ハードウェアは、選択的に使用されることが多く、同時に使用されることは滅多にない。したがって、上記のように互いに異なる暗号処理アルゴリズムに対応する複数の論理が選択的に上記再構成可能論理回路３に設定される構成にしても、暗号処理において特に不都合は生じない。
【００６３】
（４）上記（３），（４）の作用効果により、図３に示される通信システムの信頼性の向上や、システムのコスト低減を図ることができる。
【００６４】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６５】
例えば、論理構成情報１１〜１６をＥＥＰＲＯＭ８に格納するようにしても良い。ＥＥＰＲＯＭ８は電気的な書き込みが可能とされるため、論理構成情報１１〜１６をＥＥＰＲＯＭ８に格納する場合には、記憶情報の書き換えにより、論理構成情報１１〜１６の内容変更を容易に行うことができる。
【００６６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である通信システムに含まれる暗号処理装置に適用した場合について説明したが、本発明はそれに限定されるものではなく、暗号処理を行う装置に広く適用することができる。
【００６７】
本発明は、少なくとも暗号処理を実行するための論理をプログラマブルに設定可能な論理回路を含むことを条件に適用することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明に係る暗号処理装置の構成例ブロック図である。
【図２】上記暗号処理装置で取り扱われるＡＥＳのアルゴリズムの一部であるSbox定義説明図である。
【図３】上記暗号処理装置を含む通信システムの全体的な構成例ブロック図である。
【図４】図３に示される通信システムに含まれる通信装置が暗号化情報を受信する場合の手順の説明図である。
【図５】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の説明図である。
【図６】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の別の説明図である。
【図７】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の別の説明図である。
【図８】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の別の説明図である。
【図９】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の別の説明図である。
【図１０】上記暗号処理装置に含まれる再構成可能論理回路において、論理構成情報に基づいて実現される論理構成例の別の説明図である。
【図１１】上記暗号処理装置で利用可能な逆元計算対応表の説明図である。
【符号の説明】
【００６９】
１  暗号処理装置
２  ＣＰＵ
３  再構成可能論理回路
４  乱数生成器
５  ＩＯインタフェース
６  ＲＡＭ
７  ＲＯＭ
８  ＥＥＰＲＯＭ
９  システムバス
２０，２１  通信装置
２２  通信制御装置
２４  入出力装置
【図１】
2007228141.tif 000003
【図２】
2007228141.tif 000004
【図３】
2007228141.tif 000005
【図４】
2007228141.tif 000006
【図５】
2007228141.tif 000007
【図６】
2007228141.tif 000008
【図７】
2007228141.tif 000009
【図８】
2007228141.tif 000010
【図９】
2007228141.tif 000011
【図１０】
2007228141.tif 000012
【図１１】
2007228141.tif 000013