説明

暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム

【課題】 複数段のラウンド関数からなる共通鍵ブロック暗号の電力解析困難性を高めた構成を実現する。
【解決手段】 複数段のラウンド関数からなる共通鍵ブロック暗号を実行する構成において、暗号文または復号文生成のための変換データを入力する正規のラウンド関数部と、正規のラウンド関数部の前段、または後段の少なくともいずれかにダミーデータを入力してダミー演算を実行するダミーラウンド関数部を構成して、正規のラウンド関数部の演算実行ステップの前段または後段の少なくともいずれかにおいて、ダミーのラウンド関数演算を実行する。本構成により、電力解析を行う攻撃者が各ラウンド関数の実行時の電力を解析しても、ダミーと正規のラウンド関数の判別が困難となり、電力解析の困難性、攻撃耐性を高めた暗号処理が実現される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、暗号処理を実行する例えばICモジュール等の演算回路における電力解析に基づく暗号解析に対する耐性の高い暗号処理を実現する暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0002】
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。
【0003】
例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。
【0004】
暗号処理モジュールにおいては、例えば、平文を入力し暗号文を出力するデータ暗号化処理、あるいは暗号文を入力し平文を出力する復号化処理が実行される。これらの暗号処理は、暗号処理モジュールを構成するハードウェア、例えば半導体による電気的な処理を含む。従って、このような半導体モジュールにおいて暗号処理が実行される際の電力消費を解析することで、暗号処理の適用鍵や、アルゴリズムが解析されてしまうという恐れがある。
【0005】
例えば、IC等の演算処理装置に対する攻撃、すなわち暗号解読攻撃として、処理時間を解析することによる秘密情報を推定するタイミングアタック(TA:Timing attack)、暗号処理時の消費電力の観測により秘密情報を推定する単純電力解析(SPA:Simple Power Analysis)、さらに、大量のデータに対する暗号処理における消費電力を測定し、それらの測定データを統計的に解析することにより秘密情報を推定する電力差分解析(DPA:Differential Power Analysis)等がある。
【0006】
一般的な暗号処理装置は、データ入力部と記憶部と暗号処理部、およびデータ出力部とから構成されており、例えば入力データの暗号化を行う場合は、次のように動作する。すなわち、データ入力部から暗号処理部に平文が入力される。暗号処理部は、例えばDES(Data Encryption Standard)などの暗号処理アルゴリズムを実行する処理部において一定の暗号処理アルゴリズムに従ったデータ処理がなされる。
【0007】
暗号処理アルゴリズムの実行過程において生成される中間データを逐次、記憶部に格納し、また記憶部に格納した中間データを取得して予め定められた一定の処理順序に従って暗号化処理が実行される。暗号処理部において、予め定められた一連の暗号処理アルゴリズムが終了すると、生成暗号文が出力部を介して出力される。
【0008】
このような暗号処理装置において、暗号化処理の開始時から特定の暗号化中間処理手続きが開始されるまでに要する時間は、おおよそ一定になる。なお、暗号アルゴリズムの実装方法については、例えば非特許文献1に詳しく述べられている。
【0009】
このような暗号処理装置は、前述した単純電力解析(シンプル・パワー・アナリシス)や電力差分解析(ディファレンシャル・パワー・アナリシス)と呼ばれる暗号解析法を適用することで、暗号処理に適用する鍵情報や、アルゴリズムが解析される恐れがある。
【0010】
単純電力解析および電力差分解析は、現在のメモリやレジスタ等の半導体デバイスにおいて、特定の時刻に、半導体デバイスの保持する値に変化が生じた場合と、保持する値に変化が生じなかった場合とで、消費電力に差が発生するという特徴を利用して、暗号処理装置が暗号処理を実行している様々なタイミングにおいて消費電力を測定することにより、暗号処理装置が保持している暗号鍵等の秘密情報を特定する暗号解析法である。
【0011】
単純電力解析や電力差分解析が有効に機能する条件としては、第1に消費電力を測定している各時点で行われている暗号処理手続きが特定できること、第2に各時刻で測定した消費電力の値が当該時刻において暗号化装置内で行われている暗号化処理の演算結果を顕著に反映していることの2点が挙げられる。
【0012】
従来の暗号化装置、復号化装置および暗号化・復号装置等の暗号処理装置においては、上記の2点の条件が満たされてしまうために、単純電力解析や電力差分解析が有効に機能し、暗号の解読が可能になりうるという問題点が存在している。
【0013】
この問題に対処するため、いくつかの方法が提案されてきた。例えば特許文献1には差分解読や線形解読を防止することを目的としたデータの暗号化方法及び装置が記載されている。本文献には、データを複数ブロックに分割して、ブロックを順次、暗号化する構成において、暗号処理対象のブロックに適用する鍵を、前の処理ブロックの中間結果から導く構成とすることにより、ブロック毎に異なる鍵を適用した処理を行うものであり、結果として統計的な鍵推定を困難としたものである。
【0014】
また、特許文献2には、暗号処理に適用する鍵情報の漏洩を防止した構成が示されている。本文献に記載の構成は、暗号化された鍵情報を不揮発性メモリに格納し、電源投入時に不揮発性メモリから暗号化された鍵情報を復号し、復号の結果としての鍵情報を揮発性メモリに格納して、これを暗号処理に適用するとともに、電源遮断時に揮発性メモリから鍵情報を能動的に消去することにより、鍵情報の漏洩を防止したものである。
【0015】
また、特許文献3には、電力解析および電力差分解析等の消費電力の測定による暗号解析に対して耐性のある暗号化装置が示されている。本文献に記載の構成は、中間データ制御手段が、暗号処理において生成される中間データを乱数によって変化させ、この乱数によって変化した中間データに基づく暗号処理を実行する構成とし、さらに最終的な出力(暗号文)については、乱数に依存しないデータとすることを可能としたものである。本構成においては、暗号処理デバイスの状態変化は、乱数によって変化した中間データに基づく変化となり、その結果、電力解析および電力差分解析等、消費電力の測定による暗号解析の困難性が高まるというものである。
【0016】
上述したように、暗号鍵あるいはアルゴリズムの漏洩に対する対策についての提案は様々存在するが、例えば特許文献1に記載の構成は、ブロック単位で、処理済みブロックから中間データを抽出し、新たな鍵を生成するといった複雑な処理が必要となり、演算処理効率の低下、処理遅延という問題を発生させる恐れがある。また、特許文献2に記載の構成は、鍵データそのものの漏洩を防止する効果は有するものの、暗号処理実行中の単純電力解析および電力差分解析等、消費電力の測定による暗号解析に対する対策とはなっていない。さらに、特許文献3に記載の乱数を利用した方法については、高階電力差分解析と呼ばれる暗号解析法によって攻撃が可能なことがMessergesによって既に示されている。例えば、["Using Second−Order Power Analysisto Attack DPA Resistant Software", T.S.Messerges, CHES2000]に説明が記述されている。
【0017】
暗号処理を実行する例えばICモジュールは、例えば駅の改札などの様々なゲート、あるいはショッピングセンターなどで盛んに利用されるようになっており、小型化および処理の迅速化の要求が厳しくなってきている。従って、処理アルゴリズムを複雑化させることなく、かつ、電力解析に対する耐性のある構成が必要とされている。
【特許文献1】特開平9−230786号公報
【特許文献2】特開平8−504067号公報
【特許文献3】特開2000−305453号公報
【非特許文献1】『「Applied Cryptography 」(Bruce Shneier 著) John Wieley& Sons ,Inc .,1996 ,ISBN 0 −471 −11709 −9 ,pp .623 −673 』
【発明の開示】
【発明が解決しようとする課題】
【0018】
本発明は、上記問題点に鑑みてなされたものであり、処理アルゴリズムを複雑化させることなく、暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動の検出等に基づく単純電力解析、電力差分解析や高階電力差分解析による暗号解析の困難性を高めた暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【0019】
本発明の第1の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する暗号化装置であり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数部と、
前記正規のラウンド関数部の前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数部と、
を有することを特徴とする暗号化装置にある。
【0020】
さらに、本発明の暗号化装置の一実施態様において、前記ダミーラウンド関数部の設定数は、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、前記値M,Nとに基づいて算出した数であることを特徴とする。
【0021】
さらに、本発明の暗号化装置の一実施態様において、前記ダミーラウンド関数部の設定数:Lは、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、L>M/N−1を満足する数である構成を有することを特徴とする。
【0022】
さらに、本発明の暗号化装置の一実施態様において、前記ダミーラウンド関数部は、前記平文または平文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行する構成であることを特徴とする。
【0023】
さらに、本発明の第2の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する復号化装置であり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数部と、
前記正規のラウンド関数部の前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数部と、
を有することを特徴とする復号化装置にある。
【0024】
さらに、本発明の復号化装置の一実施態様において、前記ダミーラウンド関数部の設定数は、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、前記値M,Nとに基づいて算出した数であることを特徴とする。
【0025】
さらに、本発明の復号化装置の一実施態様において、前記ダミーラウンド関数部の設定数:Lは、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、L>M/N−1を満足する数である構成を有することを特徴とする。
【0026】
さらに、本発明の復号化装置の一実施態様において、前記ダミーラウンド関数部は、前記暗号文または暗号文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行する構成であることを特徴とする。
【0027】
さらに、本発明の第3の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する暗号化方法であり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とする暗号化方法にある。
【0028】
さらに、本発明の暗号化方法の一実施態様において、前記ダミーラウンド関数実行ステップの設定数は、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、前記値M,Nとに基づいて算出した数に設定されていることを特徴とする。
【0029】
さらに、本発明の暗号化方法の一実施態様において、前記ダミーラウンド関数実行ステップの設定数:Lは、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、L>M/N−1を満足する数であることを特徴とする。
【0030】
さらに、本発明の暗号化方法の一実施態様において、前記ダミーラウンド関数実行ステップは、前記平文または平文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行することを特徴とする。
【0031】
さらに、本発明の第4の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する復号化方法であり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とする復号化方法にある。
【0032】
さらに、本発明の復号化方法の一実施態様において、前記ダミーラウンド関数実行ステップの設定数は、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、前記値M,Nとに基づいて算出した数に設定されていることを特徴とする。
【0033】
さらに、本発明の復号化方法の一実施態様において、前記ダミーラウンド関数実行ステップの設定数:Lは、前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、L>M/N−1を満足する数であることを特徴とする請求項。
【0034】
さらに、本発明の復号化方法の一実施態様において、前記ダミーラウンド関数実行ステップは、前記平文または平文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行することを特徴とする。
【0035】
さらに、本発明の第5の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行するコンピュータ・プログラムであり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0036】
さらに、本発明の第6の側面は、
複数段のラウンド関数からなる共通鍵ブロック暗号を実行するコンピュータ・プログラムであり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0037】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0038】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0039】
本発明の構成によれば、複数段のラウンド関数からなる共通鍵ブロック暗号を実行する暗号化処理および復号化処理において、暗号文または復号文生成のための変換データを入力する正規のラウンド関数部と、正規のラウンド関数部の前段、または後段の少なくともいずれかに正規の処理データとは異なるダミーデータを入力してダミー演算を実行するダミーラウンド関数部を構成して、正規のラウンド関数部の演算実行ステップの前段または後段の少なくともいずれかにおいて、ダミーのラウンド関数演算を実行する構成としたので、電力解析を行う攻撃者が各ラウンド関数の実行時の電力を解析しても、ダミーのラウンド関数が実行されているのか、正規のラウンド関数が実行されているかの判別が困難となり、電力解析による鍵解析を防止することができ、攻撃耐性を高めた暗号処理が実現される。
【発明を実施するための最良の形態】
【0040】
以下、本発明の暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の項目順に行う。
1.DES(Data Encryption Standard)暗号処理の概要と電力差分解析概要
2.本発明に従った解析困難性を高めた暗号処理構成
【0041】
[1.DES(Data Encryption Standard)暗号処理の概要と電力差分解析概要]
まず、DES(Data Encryption Standard)暗号処理の概要と電力差分解析概要について説明する。
【0042】
暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
【0043】
共通鍵暗号方式の1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いて暗号処理を繰り返し実行する方式がある。このような鍵生成方式を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。
【0044】
共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部とに分けることができる。ラウンド関数部の各ランウドで適用する鍵(副鍵)は、1つのマスター鍵(主鍵)に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド関数部で適用される。この共通鍵暗号方式の代表的な方式に米国連邦標準暗号方式としてのDES(Data Encryption Standard)がある。
【0045】
DES暗号処理の基本構造について、図を参照して説明する。DES暗号処理は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。図1にDES暗号処理の基本構成を示す。入力データの変換を実行するラウンド関数部110と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部120とによって構成される。
【0046】
ラウンド関数部110において、平文(64ビット)は、まず、初期置換部111において、L,R各32ビットに分割され、分割されたL,R32ビットが、第1段ラウンド関数部112に入力され、鍵スケジュール部120の第1段鍵生成部122から入力する鍵K(1)に基づいて変換処理がなされる。変換処理結果は、次段の第2段ラウンド関数部113に入力される。
【0047】
鍵スケジュール部120においては、まず、マスター鍵(主鍵)置換部(PC−1)121により入力マスター鍵(主鍵:64ビット)のパリティ8ビットが取り除かれ、残り56ビットの入れ替え処理が実行されて第1段ラウンド鍵生成部122に入力される。第1段ラウンド鍵生成部122では、入力ビット列のシフト処理およびパリティビットの除去等が実行され、48ビットのラウンド鍵K(1)を生成し、生成したラウンド鍵K(1)をラウンド関数部110の第1段ラウンド関数部112に出力する。第1段ラウンド鍵生成部122では、シフト処理による上位ビット列(28ビット)と下位ビット列(28ビット)とを下段の第2段ラウンド鍵生成部123に出力する。
【0048】
ラウンド関数部は、16段のラウンド関数部を有し、それぞれ前段のラウンド関数部の出力を入力として鍵スケジュール部120から入力する鍵を適用した変換処理を実行し、変換結果を後段のラウンド関数部に出力する。16段のラウンド関数部で変換された出力が逆置換部114に入力され、初期置換部111の逆置換処理が実行されて、暗号文として出力される。
【0049】
ラウンド関数部110の各ラウンドを構成する各段のラウンド関数部の構成を図2に示す。図2に示すように、ラウンド関数部は、前段(n−1段)のラウンド関数部から2つの入力、L(n−1)、R(n−1)を入力し、鍵スケジュール部から鍵(k(n))を入力する。F関数部151において、鍵スケジュール部から入力する鍵(k(n))を用いて、前段ラウンド関数部から入力するビット列(R(n−1))の変換処理がなされ、変換結果が、前段ラウンド関数部から入力する残りのビット列(L(n−1))と排他論理和が実行されて、次段のラウンド関数部の出力R(n)が生成される。次段のラウンド関数部には、R(n−1)をL(n)としたビット列と、上述のF関数および排他論理和演算により生成されたR(n)が入力され同様の処理が繰り返される。
【0050】
F関数の構成を図3に示す。F関数は、非線形処理を実行する複数のSボックス(Sbox)を有する。ラウンド関数部の前段からの入力値R(n−1)は置換部171によって48ビットに拡大され、さらに鍵スケジュール部から入力する鍵(48ビット)と排他論理和が実行され、その出力が6ビットずつ非線形変換処理を実行する複数のSボックス181−1〜8に入力される。各Sボックスでは、例えば変換テーブルを適用した6ビットから4ビットへの非線形変換処理が実行される。
【0051】
Sボックス181−1〜8からの出力ビット4×8=32ビットは、置換部172に入力されて、ビット位置の入れ替え処理がなされ、F関数出力32ビットを生成して出力する。
【0052】
図1〜3を参照して説明したように複数段(16段)の変換処理によってDES暗号処理が実行される。このDES暗号処理をさらに暗号強度を高めるため複数繰り返し実行する構成、例えば3回のDES暗号処理を実行するトリプルDES暗号処理が様々な分野、例えばインターネットを介したデータ通信機器間の相互認証処理や、ICカードとリーダライタ間の相互認証処理等に適用する暗号処理として多く採用されている。なお、トリプルDES暗号処理と区別するため、1回のDES暗号処理をシングルDES暗号処理と呼ぶ。
【0053】
トリプルDES(Triple DES)暗号処理構成は、図4に示すように、図1〜3を参照して説明したDES暗号処理を3回繰り返して実行することにより、平文から暗号文を生成する。シングルDES暗号処理部185、186,187のそれぞれが上述した16段のラウンド関数部を持ち、Sボックスを持つF関数による処理を16回繰り返す。
【0054】
通常、トリプルDES暗号処理では、最初のシングルDES暗号処理部185と、最後のDES暗号処理部187においては同じマスター鍵(主鍵)(K1)を適用し、中間のDES暗号処理部186には異なるマスター鍵(主鍵)(K2)を適用する。このように、DES暗号処理を複数回繰り返し実行することで、暗号強度を向上させることができる。
【0055】
しかし、このような共通鍵暗号処理においては、暗号解析による鍵、あるいは暗号アルゴリズムの漏洩が問題となっている。暗号解析手法としては、複数の種類がある。まず、単純電力解析(SPA:Simple Power Analysis)について説明する。スマートカードなどの耐タンパデバイスのほとんどはトランジスタで構成された論理回路からなり、ゲートに電圧が加えられたときに電流が流れ、電力が消費される。一般に回路の消費電力は、実行している演算と用いられているデータの値に関係する。例えば、乗法演算は0を書き込む場合よりも1を書き込む場合のほうが消費電力が大きくなり、乗法演算と平方演算ではそれぞれ異なる電力を消費する。
【0056】
このように演算やデータ値に応じて電力消費量が変動することから、秘密情報を用いた演算を行っているデバイスの消費電力の変化を観察することで、秘密情報に関してハミングウェイトなどの情報を得ることが可能となり、エントロピーを小さくすることができる。消費電力の変化を直接解析に用いる方法を単純電力解析と呼ぶ。
【0057】
デバイスの消費電力は、デバイスと電源または接地との間に抵抗を直列に挿入し、抵抗を流れる電流値から求めることができる。実際に共通鍵暗号の演算を行っているスマートカードに対して消費電力測定を行うと、測定波形より共通鍵暗号の各段の演算がはっきり確かめられる。さらに、消費電力波形を詳しく解析することにより鍵レジスタの交換等の情報を得ることができる。
【0058】
次に、電力差分解析(DPA:Differential Power Analysis)について説明する。耐タンパデバイスの消費電力は一般に演算内容と演算に用いられている秘密情報に依存する。しかしこれらの内容に依存した消費電力の変化は小さく、測定誤差やノイズなどから見分けることは一般に困難である。
【0059】
そこでKocherらは大量の測定値の平均をとって測定誤差やノイズなどの影響を小さくし、全データの平均値との差分を取ることで演算プロセスによる電力消費の影響を除いて、用いられる秘密情報による消費電力の変化のみを取り出す方法、すなわち、電力差分解析(DPA:Differential Power Analysis)を提案した。
【0060】
KocherらはDESに対する適用例を示している。まず、ラウンド関数部の第1段、または第16段に入るラウンド鍵の一部のビットについて予想し、第1段、または第16段の最後にメモリに書きこまれると予想されるデータの1ビットの値に注目して、その値に従って消費電力の観測データを分類する。次にそれぞれのグループについて測定値の平均をとり、それらの差分をとる。予想が正しい場合注目したビットが演算に用いられるとき消費電力の差分が大きくなる。予想が異なる場合目立った差分は確認されない。
【0061】
電力差分解析は、具体的には、以下の手順(ステップ1〜ステップ7)に従った解析が行われる。
(ステップ1)
m回暗号化プロセスを観測し、それぞれ第16段の消費電力の変化T1,・・・,Tmを観測する。さらに、暗号文C1,・・・,Cmを記録する。第16段の消費電力の変化を解析に用いる場合、平文の情報は必要ない。なお、mは1000程度で十分である。
【0062】
(ステップ2)
鍵に依存した分配関数D(Ks,C)を選択する。ただし、Ksは何らかの鍵情報、Cは暗号文である。
例えば、最終段のSボックス1の出力の1ビット目の値に着目し、Sボックス1に供給される6ビットの部分鍵を推定する場合を考える。この場合、関数Dは次式で与えられる。
【0063】
【数1】

【0064】
ただし、
K16は、第16段にSボックス1に供給される6ビットの部分鍵の予想値、
C6はK16と排他論理和(XOR)される暗号文の6ビット、
SBOX1(x)はSボックス1に6ビットxが供給された場合の出力結果の1ビット目、
C1はSBOX1の出力結果に排他論理和(XOR)される暗号文の1ビットである。
【0065】
(ステップ3)
関数Dを用いてT1,・・・,Tmを2つのグループに分ける。
S0={Ti|D(・,・,・)=0}
S1={Ti|D(・,・,・)=1}
【0066】
次に、それぞれのグループについて消費電力の平均値を取る。
【0067】
【数2】

【0068】
ただし、|S0|+|S1|=mである。
【0069】
(ステップ4)
A0とA1の差分をとり、電力差分信号ΔDを得る。
ΔD=A0−A1
【0070】
(ステップ5)
部分鍵の予想値Ksが正しくない場合、D(・,・,・)は暗号文に対してほぼランダムに"0"と"1"を出力する。従って十分多くのサンプルを取ると、ΔDの値は0に近づいていく。ただし、実際には正しい予想値Ksとの相互作用のため、ΔDの波形は完全にはフラットにならない。Ksが正しい場合は、D(・,・,・)は注目したビットの実際の値と同じ値を取るため、m→∞とすることで、ΔDは注目したビットを用いるときに消費する電力に近づいていく。
【0071】
他のデータ値や測定誤差などD(・,・,・)に依存しないものは0に近づいていく。消費電力はデータのビット値に依存するため、D(・,・,・)の波形は注目したビットが用いられる領域でパルスを見せ、それ以外の領域では平坦になる。
【0072】
(ステップ6)
以上を繰り返し、Sボックス1に供給される部分鍵を推定する。反復の最大値は2=64回である。
【0073】
(ステップ7)
同様の作業を残り7つのSボックスについて行い、秘密鍵について48ビットの情報を得る。残りの8ビットの鍵情報は全探索によって求める。これは、DESに関する例であるが、Camellia等で利用されている8×8Sboxについても同様に適用が可能である。
【0074】
DES各ラウンドのF関数は、先に図3を参照して説明したように、8つのSボックス(Sbox)を有し、その各々のSボックスに対して、48ビットのラウンド鍵の6ビットの部分鍵が対応づけられる構成となっている。
【0075】
図3に示すように、F関数は、非線形処理を実行する8つのSボックス(Sbox)を有する。ラウンド関数部の前段からの入力値R(n−1)は置換部171によって48ビットに拡大され、さらに鍵スケジュール部から入力する鍵(48ビット)と排他論理和が実行され、その出力が6ビットずつ非線形変換処理を実行する複数のSボックス181−1〜8に入力される。各Sボックスでは、例えば変換テーブルを適用した6ビットから4ビットへの非線形変換処理が実行される。
【0076】
Sボックス181−1〜8からの出力ビット4×8=32ビットは、置換部172に入力されて、ビット位置の入れ替え処理がなされ、F関数出力32ビットを生成して出力する。
【0077】
8つのSボックス(Sbox)181−1〜8各々への入力は、ラウンド関数部の前段からの入力値R(n−1)は置換部171によって48ビットに拡大置換されたデータの48/8=6ビットと、鍵スケジュール部から入力するラウンド鍵(48ビット)を構成する48/8=6ビットとの排他論理和結果である。
【0078】
暗号解析においては、ラウンド関数部における第1段では既知の入力値を適用可能であり、第16段では、出力値を取得可能である。従って、ラウンド関数部における第1段および第16段の8つのSボックス(Sbox)181−1〜8の入力値を上述したKocherらによる電力差分解析(DPA:Differential Power Analysis)により推定することで、第1段および第16段のラウンド鍵が解析可能となる。
【0079】
次に、高階電力差分解析について説明する。
上に述べた電力差分解析はサンプルの一つのイベントに基づいた情報に対して解析を行っているが、高次電力差分解析は複数のイベントに基づいた情報を関連付けて解析に用いる。分配関数Dはサンプルごとにそれぞれ異なる重み付けをしたり、2つ以上のグループ分けをしたりすることができる。そのような関数は多くの防御策を封じ、平文や暗号文の情報が不完全な場合でも解析が可能な場合がある。また、特徴的な統計的性質を持つサンプルに対しては、単純に平均をとるのではなく別の処理を行うことが有効である。
【0080】
[2.本発明に従った解析困難性を高めた暗号処理構成]
次に、本発明に従った解析困難性を高めた暗号処理構成について説明する。上述したように、暗号処理に対する電力差分解析による暗号処理鍵が解析される可能性があることは、暗号処理によるデータのセキュリティが十分に保持されないという問題を引き起こすことになる。
【0081】
暗号処理として適用される暗号アルゴリズムには、DES(Data Encryption Standard)、トリプルDES、さらには、DESに代わる次世代の共通鍵暗号として知られるAES(Advanced Encryption Standard)などがある。AESは、鍵長が128、192、256bitと、DESの64bit鍵長に比較して長いビット長の鍵を適用した暗号処理であり、強固な安全性を持つものである。AESでは、鍵長、ブロック長とも128、192、256bitと、独立に異なるビット長とした処理が可能であり、上述したDESと同様、複数のラウンドの処理を繰り返し実行する。
【0082】
しかし、いずれの暗号処理アルゴリズムにおいても、上述した電力差分解析などの手法による暗号鍵の解析を完全に防止することは困難である。一旦、鍵の漏洩が発生すると、その暗号処理を適用したデータのセキュリティは維持されなくなる。
【0083】
一般的に、DES、トリプルDES、AESなど、どの暗号アルゴリズムを適用する場合であっても、その暗号処理は図5に示すような処理として実行される。図5には、(A)DES、(B)トリプルDES、(C)AESの暗合アルゴリズムに従った暗号処理構成を示している。例えば(A)のDES暗号処理部191を適用した処理の場合、DES暗号処理部191は、マスター鍵:Kを入力して、マスター鍵:Kに基づいてラウンド鍵を生成し、入力平文(PT)に対して、図1を参照して説明した16段のラウンド関数を繰り返し実行して、暗号文(CT)を出力する。
【0084】
(B)トリプルDES構成では、DES暗号処理部192〜194を適用し、これらの3つのDES暗号処理部192〜194に対して、マスター鍵:K1またはK2を入力して、3つのDES暗号処理部192〜194の各々が、入力マスター鍵に基づいてラウンド鍵を生成し、入力平文(PT)に対して、図1を参照して説明した16段のラウンド関数を繰り返し実行して、暗号文(CT)を出力する。
【0085】
(C)AES構成においても、AES暗号処理部195において、鍵長がDESより比較して長い例えば128、192、256bitの鍵:Kを入力した暗号処理が実行される。
【0086】
しかし、いずれの暗号処理においても、暗号処理鍵:Kが、上述の電力解析などにより漏洩する可能性を有しており、セキュリティレベルが低下する可能性を有している。
【0087】
このような鍵解析の可能性を考慮した上で、暗号処理データの生成、格納、通信処理などにおけるセキュリティレベルの低下を防止した本発明の構成について説明する。
【0088】
先に図1を参照して説明したように、従来のDES暗号アルゴリズムは、16段のラウンド関数部の繰り返しの変換処理によって、平文から暗号文の生成を行っている。本発明の構成では、図6に示すように、正規のラウンド関数実行部の前段または後段の少なくともいずれかにダミーのラウンド関数部を構成する。
【0089】
図6の構成において、正規のラウンド関数実行部は、第1変換部202、第2変換部203〜第16変換部204の16段のラウンド関数部によって構成され、第1変換部202の前段に2つのダミーラウンド関数部D−2,211と、ダミーラウンド関数部D−1,212とを設定し、第16変換部204の後段に2つのダミーラウンド関数部D1,213と、ダミーラウンド関数部D2,214とを設定している。
【0090】
ダミーラウンドを適用しない通常の暗号処理の実行アルゴリズムとしては、平文は、まず、初期置換部201において、L,R各32ビットに分割され、分割されたL,R32ビットが、第1段ラウンド関数部202に入力され、図示しない鍵スケジュール部の第1段鍵生成部から入力する鍵K(1)に基づいて変換処理がなされ、変換処理結果が、次段の第2段ラウンド関数部203に入力され、正規のラウンド関数実行部の最終段である第16段ラウンド関数部204の変換結果が逆置換部205に入力され、初期置換部201の逆置換処理が実行されて、暗号文として出力される。
【0091】
ダミーラウンドを適用する場合の処理は、第1段ラウンド関数部202における正規のラウンド関数の実行ステップの前に、図に示す2つのダミーラウンド関数、すなわち、ダミーラウンド関数部D−2,211と、ダミーラウンド関数部D−1,212とによって2つのサイクルのラウンド関数による計算が実行される。ただし、このダミーラウンドは、電力解析を撹乱することが目的であるため、平文データを入力した処理は実行せず、ダミーデータを入力して実行する。
【0092】
ダミーデータを入力し、ダミーラウンド関数部D−2,211と、ダミーラウンド関数部D−1,212とによって2つのサイクルのラウンド関数処理が終了した後、正規の第1段ラウンド関数部202におけるラウンド関数が実行される。その後、正規のラウンド関数実行部の最終段である第16段ラウンド関数部204の変換処理が終了すると、図に示す第16変換部204の後段に設定した2つのダミーラウンド関数部D1,213と、ダミーラウンド関数部D2,214によるラウンド関数が実行される。この2つのダミーラウンドも、電力解析を撹乱することが目的であるため、平文データを入力した処理は実行せず、ダミーデータを入力して実行する。
【0093】
これらの2つのダミーラウンドが終了した後、正規のラウンド関数実行部の最終段である第16段ラウンド関数部204の変換結果が逆置換部205に入力され、初期置換部201の逆置換処理が実行されて、暗号文として出力される。
【0094】
正規のラウンド関数部も、ダミーラウンド関数部も、先に図2、図3を参照して説明した計算アルゴリズムに従ったデータ変換処理を実行する。電力解析の実行者は、各ラウンド関数の実行時の電力を解析するが、ダミーのラウンド関数が実行されているのか、正規のラウンド関数が実行されているかの判別は極めて困難であり、電力解析に対する耐性を高めることが可能となる。
【0095】
図には、正規のラウンド関数実行部の前段に2つのダミーラウンドを設定し、さらに、後段に2つのダミーラウンドを設定した構成を示しているが、これらのダミーラウンドの設定数は、この例に限られるものではない。一般に、電力差分解析を用いて攻撃を行う者は、無限の攻撃時間が許容されるものではなく、ある有限の時間が許容される。従って、攻撃に要する最大の時間が存在する。これを[Tmax]とする。また、電力差分解析を適用した攻撃に適用できる平文数[M]と、攻撃に必要な最小の固有の平文数[N]がある。
【0096】
このとき、M/N−1に相当する冗長性をランダムに付加することによって、有限時間内[Tmax]での攻撃は困難となる。この冗長性の付加は、ダミーラウンド関数の付加数を調整することによって実現される。電力差分解析を困難にする冗長性を持つダミーラウンドの数の算出を行うためのアルゴリズムを図7に示すフローを参照して説明する。
【0097】
ステップS101において、電力差分解析による攻撃に要する最大の時間、すなわち電力解析最大時間=Tmaxを設定する。ステップS102において、電力差分解析を適用した攻撃に適用できる平文数[M]、電力差分解析による攻撃に必要な最小の固有の平文数[N]を設定する。これらの値は、仮想の電力解析を想定して設定可能である。
【0098】
次に、ステップS103において、初期設定としてダミーラウンド関数の数L=0を設定する。ステップS104において、
L>M/N−1
が成立するか否かを判定する。
【0099】
L>M/N−1
が成立しない場合は、ステップS105に進み、Lの値を1つ増加させる更新処理を実行する。さらに、ステップS104に戻り更新されたLの値が上記式を満足するか否かを判定する。式を満足するまで、Lの更新を実行し、最終的に、
L>M/N−1
が成立するLの値を求める。
【0100】
次にステップS106において、
L>M/N−1
が成立するLの値をダミーラウンドの数として設定する。
【0101】
なお、図7に示すフローにおいて算出されるLの値は、ある仮定した電力差分解析における攻撃に要する最大時間[Tmax]と、電力差分解析を適用した攻撃に適用できる平文数[M]、電力差分解析による攻撃に必要な最小の固有の平文数[N]を想定した電力解析では解析がほぼ不可能となる冗長性が保証される値であり、このアルゴリズムによって求めたLのダミーラウンドを設定することにより、Tmax時間内の電力解析では解析がほぼ不可能となる冗長性が保証されることになり、電力解析に対する耐性の高い安全な暗号処理が実現される。さらに、上記の有限時間[Tmax]内に暗号化、復号化に適用する鍵を更新すれば、攻撃をほぼ永久に困難にすることができる。
【0102】
最後に、暗号文の生成、あるいは暗号文の復号処理等の暗号処理を実行する暗号処理装置としてのICモジュール600の構成例を図8を参照して説明する。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図8に示すICモジュール600は、これら様々な機器に構成することが可能である。
【0103】
図8に示すCPU(Central processing Unit)601は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ602は、CPU601が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU601の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ602は暗号処理に必要な鍵データ等の格納領域として使用可能である。例えば上述した共有秘密鍵:Kが格納される。データ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
【0104】
暗号処理手部603は、例えば上述したDES、トリプルDES、AES、その他のアルゴリズムに従った暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU601がROM格納プログラムを読み出して実行するように構成してもよい。
【0105】
乱数発生器604は、暗号処理に適用する鍵、乱数情報の生成処理において適用される。あるいはデバイス間の認証処理おいて必要となる乱数生成、その他、暗号処理に必要となる乱数生成処理に適用される。乱数発生器604は、例えばLFSR(線形フィードバックシフトレジスタ)を適用した乱数生成器、あるいは擬似乱数生成器などによって構成される。
【0106】
送受信部605は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
【0107】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0108】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0109】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0110】
本発明は、暗号処理を実行するデバイス、例えば暗号処理モジュールを持つICカードあるいはその他の暗号処理装置に適用可能である。本発明の構成を適用することにより、電力解析によるICモジュール内の暗号処理鍵やアルゴリズムの漏洩が困難となるので、セキュリティレベルの高い暗号処理実行機能を持つデバイスあるいは装置が提供可能となる。
【図面の簡単な説明】
【0111】
【図1】DES暗号処理の基本構成を示す図である。
【図2】ラウンド関数部の各ラウンドを構成する変換部の構成を示す図である。
【図3】F関数の構成を示す図である。
【図4】トリプルDES(Triple DES)暗号処理構成を示す図である。
【図5】一般的な暗号処理構成について説明する図である。
【図6】ダミーラウンド関数部を設定した本発明の構成を適用した暗号アルゴリズムニついて説明する図である。
【図7】電力解析に対する耐性の高い冗長性を持つダミーラウンド関数部の設定数を算出するためのアルゴリズムについて説明するフローチャートである。
【図8】本発明の構成が適用可能な暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。
【符号の説明】
【0112】
110 ラウンド関数部
111 初期置換部
112,113 変換部
114 逆置換部
120 鍵スケジュール部
121 選択置換部
122,123 鍵生成部
151 F関数部
171,172 置換部
181 Sボックス
185,186,187 DES暗号処理部
191 暗号処理部(DES)
192,193,194 暗号処理部(DES)
195 暗号処理部(AES)
201 初期値間部
202〜204 変換部
211〜214 ダミーラウンド関数部
600 ICモジュール
601 CPU(Central processing Unit)
602 メモリ
603 暗号処理部
604 乱数発生器
605 送受信部

【特許請求の範囲】
【請求項1】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する暗号化装置であり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数部と、
前記正規のラウンド関数部の前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数部と、
を有することを特徴とする暗号化装置。
【請求項2】
前記ダミーラウンド関数部の設定数は、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
前記値M,Nとに基づいて算出した数であることを特徴とする請求項1に記載の暗号化装置。
【請求項3】
前記ダミーラウンド関数部の設定数:Lは、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
L>M/N−1
を満足する数である構成を有することを特徴とする請求項1に記載の暗号化装置。
【請求項4】
前記ダミーラウンド関数部は、
前記平文または平文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行する構成であることを特徴とする請求項1に記載の暗号化装置。
【請求項5】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する復号化装置であり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数部と、
前記正規のラウンド関数部の前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数部と、
を有することを特徴とする復号化装置。
【請求項6】
前記ダミーラウンド関数部の設定数は、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
前記値M,Nとに基づいて算出した数であることを特徴とする請求項5に記載の復号化装置。
【請求項7】
前記ダミーラウンド関数部の設定数:Lは、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
L>M/N−1
を満足する数である構成を有することを特徴とする請求項5に記載の復号化装置。
【請求項8】
前記ダミーラウンド関数部は、
前記復号文生成のための暗号文または暗号文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行する構成であることを特徴とする請求項5に記載の復号化装置。
【請求項9】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する暗号化方法であり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とする暗号化方法。
【請求項10】
前記ダミーラウンド関数実行ステップの設定数は、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
前記値M,Nとに基づいて算出した数に設定されていることを特徴とする請求項9に記載の暗号化方法。
【請求項11】
前記ダミーラウンド関数実行ステップの設定数:Lは、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
L>M/N−1
を満足する数であることを特徴とする請求項9に記載の暗号化方法。
【請求項12】
前記ダミーラウンド関数実行ステップは、
前記平文または平文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行することを特徴とする請求項9に記載の暗号化方法。
【請求項13】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行する復号化方法であり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とする復号化方法。
【請求項14】
前記ダミーラウンド関数実行ステップの設定数は、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
前記値M,Nとに基づいて算出した数に設定されていることを特徴とする請求項13に記載の復号化方法。
【請求項15】
前記ダミーラウンド関数実行ステップの設定数:Lは、
前記共通鍵ブロック暗号に対する電力解析に利用可能な平文数をM、
前記共通鍵ブロック暗号に対する電力解析に必要な最小平文数をNとしたとき、
L>M/N−1
を満足する数であることを特徴とする請求項13に記載の復号化方法。
【請求項16】
前記ダミーラウンド関数実行ステップは、
前記復号文生成のための暗号文または暗号文に基づく変換データとは異なるタミーデータを入力し、ダミーデータに基づくラウンド関数演算を実行することを特徴とする請求項13に記載の復号化方法。
【請求項17】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行するコンピュータ・プログラムであり、
暗号文生成のための平文または平文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記平文または平文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項18】
複数段のラウンド関数からなる共通鍵ブロック暗号を実行するコンピュータ・プログラムであり、
復号文生成のための暗号文または暗号文に基づく変換データを入力する正規のラウンド関数実行ステップと、
前記正規のラウンド関数実行ステップの前段、または後段の少なくともいずれかに前記暗号文または暗号文に基づく変換データを入力しないダミー演算を実行するダミーラウンド関数実行ステップと、
を有することを特徴とするコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−54568(P2006−54568A)
【公開日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−233359(P2004−233359)
【出願日】平成16年8月10日(2004.8.10)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】