(57)【特許請求の範囲】
【請求項１】
暗号化／復号演算をデジタルデータに対して実行するための暗号化／復号装置であって、
前記デジタルデータを受け取って、前記デジタルデータに対して暗号化／復号演算を実行するデータ暗号化／復号ユニットと、
乱数データを生成するよう構成され、前記乱数データはＮビットを有し、Ｎは正の整数である乱数発生器と、
前記乱数発生器に接続された電力解析保護回路であって、前記乱数データを電力解析保護回路が受け取るとき前記乱数データの各ビットデータに基づく異なるレベルのＭ種類の電力信号を生成し、Ｍは２のＮ乗に等しい、該電力解析保護回路と、を備え、
前記電力解析保護回路はＮ個の電力信号発生器を備え、各電力信号発生器は、それぞれ乱数データにおける各ビットデータを受け取り、これにより異なる電力レベルの電力信号を生成し、
ｎ番目の電力信号発生器が生成する電力信号は、２の（ｎ−１）乗倍の単位電力に等しく、ｎは正の整数であり、１≦ｎ≦Ｎであり、
ｎ番目の電力信号発生器は、２の（ｎ−１）乗個のリング発振器を備え、各リング発振器は、電力信号の１単位電力を生成し、
前記リング発振器は、
ＮＡＮＤゲートであって、前記ＮＡＮＤゲートの第１入力端子は、前記乱数データにおけるそのＮＡＮＤゲートに対応する１つのビットデータを受け取る、該ＮＡＮＤゲートと、
第１インバータであって、前記第１インバータの入力端子は、前記ＮＡＮＤゲートの出力端子に接続されている、該第１インバータと、
第２インバータであって、前記第２インバータの入力端子は、前記第１インバータの出力端子に接続されており、また前記第２インバータの出力端子は、前記ＮＡＮＤゲートの第２入力端子に接続されている、該第２インバータと、
を備える、暗号化／復号装置。
【請求項２】
前記データ暗号化／復号ユニットが前記暗号化／復号演算を実行しないとき、前記暗号化／復号装置は乱数発生器を停止させて、これにより前記電力解析保護回路が演算を停止するように制御する、請求項１に記載の暗号化／復号装置。
【請求項３】
前記データ暗号化／復号ユニットは、
秘密鍵及び前記デジタルデータを受け取り、前記暗号化／復号演算を前記デジタルデータに対して前記鍵に基づいて実行する論理演算ユニットを備える、請求項１又は２に記載の暗号化／復号装置。
【請求項４】
前記受け取られるビットデータが論理０であるとき、前記電力信号発生器は演算を停止する、請求項１に記載の暗号化／復号装置。
【請求項５】
暗号化／復号装置に適用される電力解析保護方法であって、
乱数データを生成する乱数データ生成ステップであって、前記乱数データはＮビットであり、Ｎは正の整数である、該乱数データ生成ステップと、  前記乱数データに基づいて電力解析保護回路の動作を開始させ、前記電力解析保護回路に対して、前記乱数データを電力解析保護回路が受け取るとき前記乱数データの各ビットデータに基づく異なるレベルのＭ種類の電力信号を生成させ、Ｍは２のＮ乗に等しいものである、ステップと、
を含み、
前記電力解析保護回路はＮ個の電力信号発生器を備え、各電力信号発生器は、それぞれ乱数データにおける各ビットデータを受け取り、これにより異なる電力レベルの電力信号を生成し、
ｎ番目の電力信号発生器が生成する電力信号は、２の（ｎ−１）乗倍の単位電力に等しく、ｎは正の整数であり、１≦ｎ≦Ｎであり、
ｎ番目の電力信号発生器は、２の（ｎ−１）乗個のリング発振器を備え、各リング発振器は、電力信号の１単位電力を生成し、
前記リング発振器は、
ＮＡＮＤゲートであって、前記ＮＡＮＤゲートの第１入力端子は、前記乱数データにおけるそのＮＡＮＤゲートに対応する１つのビットデータを受け取る、該ＮＡＮＤゲートと、
第１インバータであって、前記第１インバータの入力端子は、前記ＮＡＮＤゲートの出力端子に接続されている、該第１インバータと、
第２インバータであって、前記第２インバータの入力端子は、前記第１インバータの出力端子に接続されており、また前記第２インバータの出力端子は、前記ＮＡＮＤゲートの第２入力端子に接続されている、該第２インバータと、
を備える、電力解析保護方法。
【請求項６】
前記暗号化／復号演算が実行されないとき、前記乱数データが生成されるのを停止し、これにより前記電力解析保護回路が演算を停止する、請求項５に記載の電力解析保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化／復号技術に関し、また特に、電力解析攻撃に対して防護できる暗号化／復号装置及びその電力解析保護方法に関する。
【背景技術】
【０００２】
暗号化／復号技術は、通常、情報伝達のセキュリティを確保するのに使用される。古典的暗号化技術においては、先ず情報（平文）を送信側で暗号化し、また受信側で情報（暗号文）を復号又はデコードする。このような情報の暗号化又は復号は、通常暗号化／復号技術として知られている。
【０００３】
暗号化／復号アルゴリズムは、無線通信システム、例えば、無線ローカル・エリア・ネットワーク、近距離無線通信、データ記憶システム、及び銀行システムに広く使用されてきたが、この暗号化／復号アルゴリズムを解明する悪意のあるツールが依然として存在する。サイドチャネル攻撃とは、システムの物理的解析及び実装解析に基づいて暗号化／復号システムを解明しようとする行為を意味する。例えば、暗号化／復号システムにおける情報、例えば、電力消費、電磁波、時間差等がシステムの解明に役立つことがあり得る。
【０００４】
差動的電力解析攻撃は、ハードウェアが秘密鍵を得る暗号化及び復号を行うときにチャネルから漏洩する電力情報を利用する。差動的電力解析攻撃は、例えば、外部から電力を受け取るスマートカードのようなパスワードコンパイラの電力消費（電力信号）を測定することによって実行することができ、例えば、この場合、スマートカードのその時点の電力消費は、その時に行っている演算によって決定されるゲートスイッチングに基づくことがあり得る。攻撃者は、スマートカードの電力消費をモニタリングすることができ、スマートカードが取り扱われるとき、極秘データに関連する情報を推測する統計情報を利用する。したがって、電力解析攻撃に対して如何に有効的に防護するかは、実際上当業者が関心を抱く重要ポイントである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、電力解析攻撃に対して効果的に防護でき、また暗号化／復号演算の速度及び効率に影響を与えることがない、暗号化／復号装置及びその電力解析保護方法を提供する。
【課題を解決するための手段】
【０００６】
本発明暗号化／復号装置は、デジタルデータに対して暗号化／復号演算を実行し得るものであり、またデータ暗号化／復号ユニット、乱数発生器、及び電力解析保護回路を備える。データ暗号化／復号ユニットは、デジタルデータを受け取ってこのデジタルデータに対して暗号化／復号演算を実行する。乱数発生器は、乱数データを生成するよう構成され、乱数データはＮビットを有し、Ｎは正の整数である。電力解析保護回路は、乱数データを電力解析保護回路が受け取るとき乱数データの各ビットデータに基づく異なるレベルのＭ種類の電力信号を生成し、またＭは２のＮ乗に等しい。
【０００７】
本発明の一実施形態において、前記データ暗号化／復号ユニットが前記暗号化／復号演算を実行しないとき、前記暗号化／復号装置は乱数発生器を停止させて、これにより前記電力解析保護回路が演算を停止するように制御する。
【０００８】
本発明の電力解析保護方法は暗号化／復号装置に適用される。本発明の電力解析保護方法は、乱数データを生成する乱数データ生成ステップであって、前記乱数データはＮビットであり、Ｎは正の整数である、該乱数データ生成ステップと、前記乱数データに基づいて電力解析保護回路の動作を開始させ、前記電力解析保護回路に対して、前記乱数データを電力解析保護回路が受け取るとき前記乱数データの各ビットデータに基づく異なるレベルのＭ種類の電力信号を生成させ、Ｍは２のＮ乗に等しいものであるステップと、を含む。
【発明の効果】
【０００９】
上述のことに基づいて、本発明暗号化／復号装置は、乱数データにおける変動を活用して、クロック周期毎に暗号化／復号演算処理で発生する電力消費（電力信号）を動的に変化させ、これにより攻撃者が電力消費に基づいて極秘データに関連する情報（例えば秘密鍵）を導き出すのを困難にする。さらに、電力解析保護回路及びデータ暗号化／復号ユニットは独立的に配置され、したがって、暗号化／復号演算の速度及び効率に影響するのを回避でき、また電力解析保護回路は、暗号化／復号演算が実行されているか否かに基づいて演算を適切に停止させ、これにより不必要な電力消費を減らすことができる。
【００１０】
本発明の上述したまた他の特徴及び利点をよりよく理解できるようにするため、添付図面に基づく実施形態を以下に詳細に説明する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態の暗号化／復号装置を示す概略図である。
【図２】本発明の一実施形態のデータ暗号化／復号ユニットを示す概略図である。
【図３】本発明の一実施形態の電力解析保護回路を示す概略図である。
【図４】本発明の一実施形態の電力解析保護回路における確率と電力レベルとの関係を示すグラフである。
【図５】本発明の一実施形態の電力信号発生器を示す概略図である。
【図６】本発明の一実施形態における電力解析保護方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
先ず、図１につき説明すると、図１は本発明の一実施形態の暗号化／復号装置を示す概略図である。この実施形態において、暗号化／復号装置１００は、例えばパスワードチップとすることができ、データ暗号化／復号ユニット１１０、乱数発生器１２０、及び電力解析保護回路１３０を備えることができる。デジタルデータＤ１が暗号化／復号装置１００に入力されるとき、暗号化／復号演算をデジタルデータＤ１に対して行う。この暗号化／復号演算は、例えば暗号化標準、例えば、データ暗号化標準（ＤＥＳ）、３−ＤＥＳ、又はアドバンスド暗号化標準（ＡＥＳ）、等々に基づく。データ暗号化／復号ユニット１１０は、暗号化／復号演算で電力信号ＳＰ１を発生する。
【００１３】
実施例として、図２は、本発明の一実施形態におけるデータ暗号化／復号ユニットを示す概略図である。図２に示すように、データ暗号化／復号ユニット１１０は、論理演算ユニット２００及び記憶ユニット２１０を備える。論理演算ユニット２００は秘密鍵Ｋ１及びデジタルデータＤ１を受け取り、次に秘密鍵Ｋ１に基づいてデジタルデータＤ１に対して論理演算を行うことができ、また記憶ユニット２１０に記憶したデジタルデータ置換テーブルを利用してデジタルデータＤ１に対して置換を行い、これにより暗号化／復号演算を実行することができる。ただし、上述したようなデータ暗号化／復号ユニットの構造及び機能は単なる例示的実施形態であり、本発明はこれに限定されないことに留意されたい。
【００１４】
図１に戻って説明すると、乱数発生器１２０はクロック周期毎に異なる乱数データＤ２を生成することができる。乱数データＤ２は、例えば実数の乱数データであり、各乱数データＤ２はＮビット（Ｎは正の整数）を有する。電力解析保護回路１３０は、乱数発生器１２０に接続し、また乱数発生器１２０から乱数データＤ２を受け取ることができる。電力解析保護回路１３０は、乱数データＤ２を電力解析保護回路１３０が受け取るとき乱数データＤ２の各ビットデータに基づく異なるレベルのＭ種類の電力信号ＳＰ２を生成する（Ｍは２のＮ乗に等しい）。この場合、Ｎの大きさは実際の要求に基づいて確定／決定されるものであり、より大きいＮが決定される場合、電力解析攻撃に対する保護の信頼性はより高まるが、コストもより高くなる。
【００１５】
攻撃者が本発明の実施形態の暗号化／復号装置１００の電力消費を測定するとき、測定され得る電力信号ＳＰ３は、電力信号ＳＰ１及び電力信号ＳＰ２の和である。したがって、電力信号ＳＰ３は、クロック周期毎に異なるレベルの２Ｎ種類の混ざり合った変動を有し、攻撃者が電力消費を利用することによって極秘データに関する情報（例えば、秘密鍵）を導き出すのは困難となる。
【００１６】
例として、図３は本発明の一実施形態の電力解析保護回路を示す概略図である。図３に示すように、電力解析保護回路１３０は、Ｎ個の電力信号発生器３００＿１〜３００＿Ｎを備えることができ、電力信号発生器３００＿１〜３００＿Ｎのそれぞれは、乱数データＤ２の各ビットデータＤ２＿１〜Ｄ２＿Ｎを受け取り、これにより異なる電力レベルの電力信号を生成する。例えば、電力信号発生器３００＿１を考慮すると、受け取ったビットデータＤ２＿１が論理０であるとき、電力信号発生器３００＿１は演算を停止して、いかなる電力信号をも発生しないようにすることができる。受け取ったビットデータＤ２＿１が論理１であるとき、電力信号発生器３００＿１は特定レベル（例えば、単位電力ＵＰ×１）の電力信号を発生できるようにする。
【００１７】
電力信号発生器３００＿１〜３００＿Ｎがそれぞれ発生する電力信号間には所定の比例関係がある。より具体的には、電力信号発生器３００＿１〜３００＿Ｎがそれぞれ発生する電力信号は単位電力ＵＰに２の累乗を積算することによって設定することができる。換言すれば、電力信号発生器３００＿２が発生する電力信号（単位電力ＵＰ×２）は、電力信号発生器３００＿１が発生する電力信号（単位電力ＵＰ×１）の２倍であり、ｎ番目の電力信号発生器３００＿ｎが発生する電力信号は、単位電力ＵＰの２の（ｎ−１）乗倍に等しい（ｎは正の整数であって、１≦ｎ≦Ｎ）。換言すれば、電力解析保護回路１３０における電力信号発生器３００＿１〜３００＿Ｎのそれぞれは、論理０又は論理１として受け取る各ビットデータＤ２＿１〜Ｄ２＿Ｎに基づいて動作を開始すべきか否かを決定することができ、また動作を開始するとき、電力信号発生器３００＿１〜３００＿Ｎのそれぞれは、特定電力レベルを有する電力信号を発生する。さらに、データ暗号化／復号ユニット１１０が暗号化／復号演算を実行しないときには、暗号化／復号装置１００は停止信号により乱数発生器１２０を停止させるよう制御し、これにより電力信号発生器３００＿１〜３００＿Ｎのそれぞれは動作を開始せず、また電力解析保護回路１３０は演算を停止し、また不要な電力消費を減少する。
【００１８】
本発明の実施形態をさらに説明するため、以下表１は、Ｎが３に等しい状況、電力解析保護回路１３０の電力信号発生器３００＿１〜３００＿３における動作開始状態、及び生成する電力信号ＳＰ２を示す。
【表１】
0006533553.tif 000002
【００１９】
表１に示すように電力解析保護回路１３０は、乱数データの３ビットに基づいて異なるレベルの組合せを有する８（２３）種類の電力信号ＳＰ２を生成する。概して、電力解析保護回路１３０は、乱数データＤ２のＮビットに基づいて異なるレベルの組合せを有する２Ｎ種類の電力信号ＳＰ２を生成する。
【００２０】
この実施形態において、暗号化／復号装置１００における乱数発生器１２０及び電力解析保護回路１３０は、データ暗号化／復号ユニット１１０から完全に独立しており、データ暗号化／復号ユニット１１０の速度及び効率に影響を与えることを回避する点に留意されたい。他の観点から、この実施形態における暗号化／復号装置１００における乱数発生器１２０及び電力解析保護回路１３０は、任意な種類の暗号化／復号装置に組み込むことができ、高い利用可能性を有する。
【００２１】
図４は、本発明の一実施形態の電力解析保護回路における確率と電力レベルとの間の関係を示すグラフである。ここで、図４の横軸は電力解析保護回路１３０が発生する電力信号ＳＰ２の電力レベルを表し、また縦軸はその電力レベルが発生する確率を表すのに使用する。電力解析保護回路１３０が、図４に示すように、乱数データＤ２によってトリガされて動作を開始するとき、電力解析保護回路１３０は異なるレベルの組合せを有する２Ｎ種類の電力レベルを発生し、各電力レベルを発生する確率は１／２Ｎに等しい。
【００２２】
図５につき説明すると、図５は本発明の一実施形態における電力信号発生器を示す概略図である。電力信号発生器３００＿１〜３００＿Ｎは、例えば、リング発振器（リング・オシレータ）を採用する構造とすることができる。図５に示すように、例えば、電力信号発生器３００＿１はリング発振器５００を備えることができる。リング発振器５００は、ＮＡＮＤゲート５１０、第１インバータ５２０、及び第２インバータ５３０を含むことができる。ＮＡＮＤゲート５１０の第１入力端子は乱数データＤ２における対応のビットデータＤ２＿１を受け取る。第１インバータ５２０の入力端子はＮＡＮＤゲート５１０の出力端子に接続する。第２インバータ５３０の入力端子は第１インバータ５２０の出力端子に接続し、また第２インバータ５３０の出力端子はＮＡＮＤゲート５１０の第２入力端子に接続する。リング発振器５００はビットデータＤ２＿１によってトリガされて、単位電力ＵＰの１倍の電力信号を発生する。
【００２３】
他方、電力信号発生器３００＿２が発生する電力信号は、電力信号発生器３００＿１が発生する電力信号の２倍とすることができ、これにより電力信号発生器３００＿２は２個のリング発振器５００を備えることができる。２個のリング発振器５００双方はビットデータＤ２＿１に接続し、かつ互いに並列にし、これにより２個のリング発振器５００はビットデータＤ２＿１によってトリガされて、全体として単位電力ＵＰの２倍の電力信号を発生する。概して、ｎ番目の電力信号発生器３００＿ｎ（ｎは正の整数であって、１≦ｎ≦Ｎ）は、互いに並列接続した２ｎ−１個のリング発振器５００を含み、単位電力ＵＰの２ｎ−１倍の電力信号を発生することができる。
【００２４】
さらに、乱数発生器１２０も、例えば、リング発振器に基づく乱数発生器とすることができる。乱数発生器１２０及び電力解析保護回路１３０を主にリング発振器によって構成する場合、設計プロセスが容易になり、コストを減少する。
【００２５】
図６は、本発明の一実施形態における電力解析保護方法を示すフローチャートである。本発明の電力解析保護方法は図１の暗号化／復号装置に適用することができる。図１及び図６につき説明すると、ステップ６１０において暗号化／復号装置１００が暗号化／復号演算を行うとき、乱数発生器１２０は乱数データＤ２を発生する。乱数データＤ２はＮビットを有し、またＮは正の整数である。ステップ６２０において、暗号化／復号装置１００は乱数データＤ２に基づいて電力解析保護回路１３０の動作を開始させ、これにより電力解析保護回路１３０が乱数データＤ２を受け取るとき、乱数データＤ２における各ビットデータＤ２＿１〜Ｄ２＿Ｎに基づいて、電力解析保護回路１３０に対して、Ｍ種類（Ｍは２のＮ乗に等しい）の異なるレベルの電力信号を発生させる。
【００２６】
その他に、実行ステップ及び電力解析保護方法の詳細な実装に関して上述した複数の実施形態及び実施例で分かり易く説明してあるので、図６においては、いかには繰り返して説明しない。
【００２７】
上述したように、本発明暗号化／復号装置及び電力解析保護方法は、乱数データの変化を活用して、異なる電力レベルを有する混合した電力消費を得ることができ、これにより、攻撃者が電力消費に基づいて極秘データに関連する情報（例えば、秘密鍵）を導き出すことを困難にする。構造的には、電力解析保護回路及びデータ暗号化／復号ユニットは独立的に配置して、暗号化／復号演算の速度及び効率に影響するのを回避し、また電力解析保護回路は、本発明で使用されていないときに演算を適切に停止することから、不必要な電力消費を減少する。
【００２８】
本発明を上述の実施形態につき説明してきたが、これら実施形態は本発明を限定することを意図するものではない。当業者には、発明の精神及び範囲から逸脱することなく上述した実施形態に対して変更及び改変できることは理解できるであろう。
【産業上の利用可能性】
【００２９】
本発明の実施形態で述べた暗号化／復号装置及び電力解析保護方法は暗号化／復号技術に利用可能である。
【符号の説明】
【００３０】
１００                    暗号化／復号装置
１１０                    データ暗号化／復号ユニット
１２０                    乱数発生器
１３０                    電力解析保護回路
２００                    論理演算ユニット
２１０                    記憶ユニット
３００＿１〜３００＿Ｎ    電力信号発生器
５００                    リング発振器（リング・オシレータ）
５１０                    ＮＡＮＤゲート
５２０                    第１インバータ
５３０                    第２インバータ
Ｄ１                      デジタルデータ
Ｄ２                      乱数データ
Ｄ１＿１〜Ｄ２＿Ｎ        ビットデータ
Ｋ１                      秘密鍵
ＳＰ１，ＳＰ２，ＳＰ３    電力信号
Ｓ６１０，Ｓ６２０        ステップ
【図１】
0006533553.tif 000003
【図２】
0006533553.tif 000004
【図３】
0006533553.tif 000005
【図４】
0006533553.tif 000006
【図５】
0006533553.tif 000007
【図６】
0006533553.tif 000008