(57)【要約】【課題】電力解析による暗号解析の困難性を著しく高めることを可能とした暗号処理装置および方法を提供する。【解決手段】オリジナルの暗号処理シーケンスを複数の群へ分割するとともに、必要に応じてダミー設定を実行して処理順を攪拌することで、数百〜数万種類の異なる攪拌暗号処理シーケンスの設定を可能とし、これら多数の設定可能なシーケンスから選択したシーケンスを実行する。本構成により、選択された攪拌暗号処理シーケンスの実行毎に、オリジナルの暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動とは全く異なる消費電力変動を発生させることが可能となり、電力解析による暗号解析の困難性を著しく高めることができる。【選択図】  図８
2004212828.tif 000002
【特許請求の範囲】
【請求項１】
データ暗号処理を実行する暗号処理装置であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割し、各設定群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する制御部と、
前記制御部の設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理部と、
を有することを特徴とする暗号処理装置。
【請求項２】
前記制御部は、
前記分割群の少なくともいずれかの群に、前記オリジナル暗号処理シーケンスには不要なダミーの暗号処理を実行するダミー暗号処理単位を設定し、該ダミー暗号処理単位を含む複数群の暗号処理単位の攪拌を実行して１つの攪拌暗号処理シーケンスを設定する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記制御部は、
１以上の暗号処理単位から構成される複数の群への分割処理において、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、該独立実行可能なシーケンスを単位とした分割群の設定処理を実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項４】
前記暗号処理単位は、シングルＤＥＳ暗号処理であり、
前記制御部は、１以上のシングルＤＥＳ暗号処理を含むオリジナル暗号処理シーケンスを１以上のシングルＤＥＳ暗号処理から構成される複数の群に分割して、各分割群に含まれるシングルＤＥＳ暗号処理単位を各設定群内での処理順を固定とする条件の下で、各設定群のシングルＤＥＳ暗号処理単位の相互入れ替えにより攪拌し、１つの攪拌暗号処理シーケンスを設定する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項５】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、
前記制御部は、
トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項６】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理および乱数生成処理を含む暗号処理シーケンスであり、
前記制御部は、
乱数生成処理を３回のシングルＤＥＳ処理による変換処理を含む処理として構成し、分割群のいずれかに乱数生成処理としてのトリプルＤＥＳ暗号処理を設定する構成としたことを特徴とする請求項１に記載の暗号処理装置。
【請求項７】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、
前記制御部は、
トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行するとともに、前記分割群の少なくともいずれかの群に、本来のオリジナル暗号処理シーケンスには不要なダミー暗号処理としてのダミーのシングルＤＥＳ処理を設定し、設定するダミーのシングルＤＥＳ処理数をトリプルＤＥＳに対応する３の倍数として設定する構成としたことを特徴とする請求項１に記載の暗号処理装置。
【請求項８】
前記暗号処理装置は、
前記制御部の設定した攪拌暗号処理シーケンスを構成する暗号処理単位の処理結果を格納するメモリを有し、
前記制御部は、前記メモリに対して、いずれの暗号処理単位の処理結果であるかを識別可能な態様で処理結果の格納を実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項９】
データ暗号処理を実行する暗号処理装置であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割し、前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する制御部と、
前記制御部の設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理部と、
を有することを特徴とする暗号処理装置。
【請求項１０】
前記オリジナル暗号処理シーケンスに含まれる暗号処理単位は、シングルＤＥＳ暗号処理であり、
前記制御部は、
前記ダミー暗号処理単位をシングルＤＥＳ暗号処理として設定する構成であることを特徴とする請求項９に記載の暗号処理装置。
【請求項１１】
データ暗号処理を実行する暗号処理方法であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する分割ステップと、
前記分割ステップにおいて設定した各群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンス設定ステップにおいて設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とする暗号処理方法。
【請求項１２】
前記暗号処理方法は、さらに、
前記分割群の少なくともいずれかの群に、前記オリジナル暗号処理シーケンスには不要なダミーの暗号処理を実行するダミー暗号処理単位を設定するステップを含み、
前記攪拌暗号処理シーケンス設定ステップは、
前記ダミー暗号処理単位を含む複数群の暗号処理単位の攪拌を実行して１つの攪拌暗号処理シーケンスを設定することを特徴とする請求項１１に記載の暗号処理方法。
【請求項１３】
前記分割ステップは、
１以上の暗号処理単位から構成される複数の群への分割処理において、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、該独立実行可能なシーケンスを単位とした分割群の設定処理を実行するステップであることを特徴とする請求項１１に記載の暗号処理方法。
【請求項１４】
前記暗号処理単位は、シングルＤＥＳ暗号処理であり、
前記分割ステップは、
１以上のシングルＤＥＳ暗号処理を含むオリジナル暗号処理シーケンスを１以上のシングルＤＥＳ暗号処理から構成される複数の群に分割し、
前記攪拌暗号処理シーケンス設定ステップは、
各分割群に含まれるシングルＤＥＳ暗号処理単位を各設定群内での処理順を固定とする条件の下で、各設定群のシングルＤＥＳ暗号処理単位の相互入れ替えにより攪拌し、１つの攪拌暗号処理シーケンスを設定することを特徴とする請求項１１に記載の暗号処理方法。
【請求項１５】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、
前記分割ステップは、
トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行することを特徴とする請求項１１に記載の暗号処理方法。
【請求項１６】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理および乱数生成処理を含む暗号処理シーケンスであり、
前記暗号処理方法は、さらに、
乱数生成処理を３回のシングルＤＥＳ処理による変換処理を含む処理として構成し、分割群のいずれかに乱数生成処理としてのトリプルＤＥＳ暗号処理を設定するステップを有することを特徴とする請求項１１に記載の暗号処理方法。
【請求項１７】
攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、
前記分割ステップは、
トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行し、
前記攪拌暗号処理シーケンス設定ステップは、
前記分割群の少なくともいずれかの群に、本来のオリジナル暗号処理シーケンスには不要なダミー暗号処理としてのダミーのシングルＤＥＳ処理を設定し、設定するダミーのシングルＤＥＳ処理数をトリプルＤＥＳに対応する３の倍数として設定する処理を含むことを特徴とする請求項１１に記載の暗号処理方法。
【請求項１８】
前記暗号処理ステップは、
攪拌暗号処理シーケンスを構成する暗号処理単位の処理結果を格納するメモリに対して、いずれの暗号処理単位の処理結果であるかを識別可能な態様で処理結果の格納を実行するステップを含むことを特徴とする請求項１１に記載の暗号処理方法。
【請求項１９】
データ暗号処理を実行する暗号処理方法であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割する分割ステップと、
前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とする暗号処理方法。
【請求項２０】
前記オリジナル暗号処理シーケンスに含まれる暗号処理単位は、シングルＤＥＳ暗号処理であり、
前記攪拌暗号処理シーケンス設定ステップは、
前記ダミー暗号処理単位をシングルＤＥＳ暗号処理として設定することを特徴とする請求項１９に記載の暗号処理方法。
【請求項２１】
暗号処理をコンピュータ・システム上で実行するために記述されたコンピュータ・プログラムであって、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する分割ステップと、
前記分割ステップにおいて設定した各群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンス設定ステップにおいて設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項２２】
暗号処理をコンピュータ・システム上で実行するために記述されたコンピュータ・プログラムであって、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割する分割ステップと、
前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、暗号処理を実行する例えばＩＣモジュール等の演算回路における電力解析による暗号処理解析に対する耐性の高い暗号処理を実現する暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の１つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。
【０００３】
例えばＩＣカード等の小型の装置中に暗号処理モジュールを埋め込み、ＩＣカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。
【０００４】
暗号処理モジュールにおいては、例えば、平文を入力し暗号文を出力するデータ暗号化処理、あるいは暗号文を入力し平文を出力する復号化処理が実行される。これらの暗号処理は、暗号処理モジュールを構成するハードウェア、例えば半導体による電気的な処理を含む。従って、このような半導体モジュールにおいて暗号処理が実行される際の電力消費を解析することで、暗号処理手順が解析されてしまうという恐れがある。
【０００５】
例えば、ＩＣ等の演算処理装置に対する攻撃、すなわち暗号解読攻撃として、処理時間を解析することによる秘密情報を推定するＴｉｍｉｎｇ  ａｔｔａｃｋ（ＴＡ）、暗号処理時の消費電力の観測により秘密情報を推定するＳｉｍｐｌｅＰｏｗｅｒ  Ａｎａｌｙｓｉｓ（ＳＰＡ）、さらに、大量のデータに対する暗号処理における消費電力を測定し、それらの測定データを統計的に解析することにより秘密情報を推定するＤｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ（ＤＰＡ）等がある。
【０００６】
電力解析に対する耐性を高めるための技術については、すでにいくつか提案されている。例えば、特許文献１には、中間データ制御手段を設け、暗号処理において生成される中間データを乱数によって変化させ、乱数によって消費電力をコントロールすることで、消費電力に基づく解析を困難とした構成が示されている。さらに、特許文献２、特許文献３には、暗号処理回路を構成するバスの電流検出による解析を防止する構成として、バスを転送するデータのバイト数を制御する構成を付加することで、解析を困難にする構成が示されている。
【０００７】
さらに、特許文献４には、暗号処理モジュール内の演算処理と、レジスタ間のデータ移動を時間的に並列に実行させることにより、消費電力による解析を困難とした構成が示され、また、特許文献５には、メモリに対するデータ書き込み処理の際に乱数に基づいて生成した値の書き込み処理を実行することにより、解析を困難とした構成が示されている。
【０００８】
上述のように、電力解析に対する耐性を向上させようとする様々な技術が提案されている。しかし、中間データに対する乱数に基づく電力コントロールを行なう構成では、暗号処理シーケンス中のどの位置において乱数に基づく電力コントロール位置が行われているかが解明されてしまった場合、その位置以外の実質的な暗号処理シーケンス実行位置における電力解析が可能となる恐れがある。また並列処理による電力解析を困難化させようとする構成においても、暗号処理シーケンス中の特定のステップで並列処理を実行すると、並列処理の処理位置が解明されてしまうと電力解析が可能となる恐れがある。
【０００９】
【特許文献１】
特開２０００−３０５４５３号公報
【特許文献２】
特開２００１−２５６１１６号公報
【特許文献３】
特開２００１−２５６７１３号公報
【特許文献４】
特開２００２−５２６７９７号公報
【特許文献５】
特開２００２−５２６８４９号公報
【００１０】
【発明が解決しようとする課題】
本発明は、上記問題点に鑑みてなされたものであり、オリジナルの暗号処理シーケンスを攪拌して実行する構成において、数百〜数万種類の異なる攪拌暗号処理シーケンスの設定を可能とし、これら多数の設定可能なシーケンスから選択したシーケンスを実行することにより、オリジナルの暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動とは全く異なる消費電力変動を発生させ、電力解析による暗号解析の困難性を高めることを可能とした暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の第１の側面は、
データ暗号処理を実行する暗号処理装置であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割し、各設定群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する制御部と、
前記制御部の設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理部と、
を有することを特徴とする暗号処理装置にある。
【００１２】
さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、前記分割群の少なくともいずれかの群に、前記オリジナル暗号処理シーケンスには不要なダミーの暗号処理を実行するダミー暗号処理単位を設定し、該ダミー暗号処理単位を含む複数群の暗号処理単位の攪拌を実行して１つの攪拌暗号処理シーケンスを設定する構成であることを特徴とする。
【００１３】
さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、１以上の暗号処理単位から構成される複数の群への分割処理において、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、該独立実行可能なシーケンスを単位とした分割群の設定処理を実行する構成であることを特徴とする。
【００１４】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理単位は、シングルＤＥＳ暗号処理であり、前記制御部は、１以上のシングルＤＥＳ暗号処理を含むオリジナル暗号処理シーケンスを１以上のシングルＤＥＳ暗号処理から構成される複数の群に分割して、各分割群に含まれるシングルＤＥＳ暗号処理単位を各設定群内での処理順を固定とする条件の下で、各設定群のシングルＤＥＳ暗号処理単位の相互入れ替えにより攪拌し、１つの攪拌暗号処理シーケンスを設定する構成であることを特徴とする。
【００１５】
さらに、本発明の暗号処理装置の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、前記制御部は、トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行する構成であることを特徴とする。
【００１６】
さらに、本発明の暗号処理装置の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理および乱数生成処理を含む暗号処理シーケンスであり、前記制御部は、乱数生成処理を３回のシングルＤＥＳ処理による変換処理を含む処理として構成し、分割群のいずれかに乱数生成処理としてのトリプルＤＥＳ暗号処理を設定する構成としたことを特徴とする。
【００１７】
さらに、本発明の暗号処理装置の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、前記制御部は、トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行するとともに、前記分割群の少なくともいずれかの群に、本来のオリジナル暗号処理シーケンスには不要なダミー暗号処理としてのダミーのシングルＤＥＳ処理を設定し、設定するダミーのシングルＤＥＳ処理数をトリプルＤＥＳに対応する３の倍数として設定する構成としたことを特徴とする。
【００１８】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、前記制御部の設定した攪拌暗号処理シーケンスを構成する暗号処理単位の処理結果を格納するメモリを有し、前記制御部は、前記メモリに対して、いずれの暗号処理単位の処理結果であるかを識別可能な態様で処理結果の格納を実行する構成であることを特徴とする。
【００１９】
さらに、本発明の第２の側面は、
データ暗号処理を実行する暗号処理装置であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割し、前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する制御部と、
前記制御部の設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理部と、
を有することを特徴とする暗号処理装置にある。
【００２０】
さらに、本発明の暗号処理装置の一実施態様において、前記オリジナル暗号処理シーケンスに含まれる暗号処理単位は、シングルＤＥＳ暗号処理であり、前記制御部は、前記ダミー暗号処理単位をシングルＤＥＳ暗号処理として設定する構成であることを特徴とする。
【００２１】
さらに、本発明の第３の側面は、
データ暗号処理を実行する暗号処理方法であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する分割ステップと、
前記分割ステップにおいて設定した各群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンス設定ステップにおいて設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とする暗号処理方法にある。
【００２２】
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理方法は、さらに、前記分割群の少なくともいずれかの群に、前記オリジナル暗号処理シーケンスには不要なダミーの暗号処理を実行するダミー暗号処理単位を設定するステップを含み、前記攪拌暗号処理シーケンス設定ステップは、前記ダミー暗号処理単位を含む複数群の暗号処理単位の攪拌を実行して１つの攪拌暗号処理シーケンスを設定することを特徴とする。
【００２３】
さらに、本発明の暗号処理方法の一実施態様において、前記分割ステップは、１以上の暗号処理単位から構成される複数の群への分割処理において、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、該独立実行可能なシーケンスを単位とした分割群の設定処理を実行するステップであることを特徴とする。
【００２４】
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理単位は、シングルＤＥＳ暗号処理であり、前記分割ステップは、１以上のシングルＤＥＳ暗号処理を含むオリジナル暗号処理シーケンスを１以上のシングルＤＥＳ暗号処理から構成される複数の群に分割し、前記攪拌暗号処理シーケンス設定ステップは、各分割群に含まれるシングルＤＥＳ暗号処理単位を各設定群内での処理順を固定とする条件の下で、各設定群のシングルＤＥＳ暗号処理単位の相互入れ替えにより攪拌し、１つの攪拌暗号処理シーケンスを設定することを特徴とする。
【００２５】
さらに、本発明の暗号処理方法の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、前記分割ステップは、トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行することを特徴とする。
【００２６】
さらに、本発明の暗号処理方法の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理および乱数生成処理を含む暗号処理シーケンスであり、前記暗号処理方法は、さらに、乱数生成処理を３回のシングルＤＥＳ処理による変換処理を含む処理として構成し、分割群のいずれかに乱数生成処理としてのトリプルＤＥＳ暗号処理を設定するステップを有することを特徴とする。
【００２７】
さらに、本発明の暗号処理方法の一実施態様において、攪拌対象となるオリジナル暗号処理シーケンスは、トリプルＤＥＳ暗号処理を含む暗号処理シーケンスであり、前記分割ステップは、トリプルＤＥＳ暗号処理を構成するシングルＤＥＳ暗号処理を暗号処理単位として、１以上の暗号処理単位から構成される複数の群に分割する処理を実行し、前記攪拌暗号処理シーケンス設定ステップは、前記分割群の少なくともいずれかの群に、本来のオリジナル暗号処理シーケンスには不要なダミー暗号処理としてのダミーのシングルＤＥＳ処理を設定し、設定するダミーのシングルＤＥＳ処理数をトリプルＤＥＳに対応する３の倍数として設定する処理を含むことを特徴とする。
【００２８】
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは、攪拌暗号処理シーケンスを構成する暗号処理単位の処理結果を格納するメモリに対して、いずれの暗号処理単位の処理結果であるかを識別可能な態様で処理結果の格納を実行するステップを含むことを特徴とする。
【００２９】
さらに、本発明の第４の側面は、
データ暗号処理を実行する暗号処理方法であり、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割する分割ステップと、
前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とする暗号処理方法にある。
【００３０】
さらに、本発明の暗号処理方法の一実施態様において、前記オリジナル暗号処理シーケンスに含まれる暗号処理単位は、シングルＤＥＳ暗号処理であり、前記攪拌暗号処理シーケンス設定ステップは、前記ダミー暗号処理単位をシングルＤＥＳ暗号処理として設定することを特徴とする。
【００３１】
さらに、本発明の第５の側面は、
暗号処理をコンピュータ・システム上で実行するために記述されたコンピュータ・プログラムであって、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する分割ステップと、
前記分割ステップにおいて設定した各群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンス設定ステップにおいて設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００３２】
さらに、本発明の第６の側面は、
暗号処理をコンピュータ・システム上で実行するために記述されたコンピュータ・プログラムであって、
オリジナル暗号処理シーケンスを、１以上の暗号処理単位に分割する分割ステップと、
前記暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、前記ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する攪拌暗号処理シーケンス設定ステップと、
前記攪拌暗号処理シーケンスに従って、暗号処理を実行する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００３３】
【作用】
本発明の構成によれば、オリジナルの暗号処理シーケンスの複数群への分割およびダミーの設定により、数百〜数万種類の異なる攪拌暗号処理シーケンスの設定を可能とし、これら多数の設定可能なシーケンスから選択したシーケンスを実行する構成としたので、選択された攪拌暗号処理シーケンスの実行毎に、オリジナルの暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動とは全く異なる消費電力変動を発生させることが可能となり、電力解析による暗号解析の困難性を著しく高めることができる。
【００３４】
さらに、本発明の構成によれば、オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する場合に、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、独立実行可能なシーケンスを単位とした分割群の設定処理を実行するとともに、各設定群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行する構成としたので、攪拌暗号処理シーケンスを実行した場合においても必要な処理結果を確実に取得することが可能となる。
【００３５】
さらに、本発明の構成によれば、乱数発生処理、あるいは設定するダミーについて、例えばオリジナル暗号処理がトリプルＤＥＳを基本とするアルゴリズムである場合、乱数生成、変換処理をトリプルＤＥＳ処理によって実行する態様とし、またダミーも３の倍数に相当するシングルＤＥＳの設定としたので、全ての処理についてオリジナルのトリプルＤＥＳとの判別が困難となり、電力解析の困難性を高めることができる。
【００３６】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００３８】
【発明の実施の形態】
以下、本発明の暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムについて、図面を参照して説明する。
【００３９】
暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
【００４０】
共通鍵暗号方式の１つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いて暗号処理を繰り返し実行する方式がある。このような鍵生成方式を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。
【００４１】
共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部とに分けることができる。ラウンド関数部の各ランウドで適用する鍵（副鍵）は、１つの主鍵に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド関数部で適用される。この共通鍵暗号方式の代表的な方式に米国連邦標準暗号方式としてのＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）がある。
【００４２】
ＤＥＳ暗号処理の基本構造について、図を参照して説明する。ＤＥＳ暗号処理は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。図１にＤＥＳ暗号処理の基本構成を示す。入力データの変換を実行するラウンド関数部１１０と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部１２０とによって構成される。
【００４３】
ラウンド関数部１１０において、平文（６４ビット）は、まず、初期置換部１１１において、Ｌ，Ｒ各３２ビットに分割され、分割されたＬ，Ｒ３２ビットが、第１段変換部１１２に入力され、鍵スケジュール部１２０の第１段鍵生成部１２２から入力する鍵Ｋ（１）に基づいて変換処理がなされる。変換処理結果は、次段の第２段変換部１１３に入力される。
【００４４】
鍵スケジュール部１２０においては、まず、選択置換部１２１により入力主鍵（６４ビット）のパリティ８ビットが取り除かれ、残り５６ビットの入れ替え処理が実行されて第１段鍵生成部１２２に入力される。第１段鍵生成部１２２では、入力ビット列のシフト処理およびパリティビットの除去等が実行され、４８ビットの副鍵Ｋ（１）を生成し、生成した副鍵Ｋ（１）をラウンド関数部１１０の第１段変換部１１２に出力する。第１段鍵生成部１２２では、シフト処理による上位ビット列（２８ビット）と下位ビット列（２８ビット）とを下段の第２段鍵生成部１２３に出力する。
【００４５】
ラウンド関数部は、１６段の変換部を有し、それぞれ前段の変換部の出力を入力として鍵スケジュール部１２０から入力する鍵を適用した変換処理を実行し、変換結果を後段の変換部に出力する。１６段の変換部で変換された出力が逆置換部１１４に入力され、初期置換部１１１の逆置換処理が実行されて、暗号文として出力される。
【００４６】
ラウンド関数部１１０の各ラウンドを構成する変換部の構成を図２に示す。図２に示すように、変換部は、前段（ｎ−１段）の変換部から２つの入力、Ｌ（ｎ−１）、Ｒ（ｎ−１）を入力し、鍵スケジュール部から鍵（ｋ（ｎ））を入力する。Ｆ関数部１５１において、鍵スケジュール部から入力する鍵（ｋ（ｎ））を用いて、前段変換部から入力するビット列（Ｒ（ｎ−１））の変換処理がなされ、変換結果が、前段変換部から入力する残りのビット列（Ｌ（ｎ−１））と排他論理和が実行されて、次段の変換部の出力Ｒ（ｎ）が生成される。次段の変換部には、Ｒ（ｎ−１）をＬ（ｎ）としたビット列と、上述のＦ関数および排他論理和演算により生成されたＲ（ｎ）が入力され同様の処理が繰り返される。
【００４７】
Ｆ関数の構成を図３に示す。Ｆ関数は、非線形処理を実行する複数のＳボックス（Ｓｂｏｘ）を有する。ラウンド関数部の前段からの入力値Ｒ（ｎ−１）は置換部１７１によって４８ビットに拡大され、さらに鍵スケジュール部から入力する鍵（４８ビット）と排他論理和が実行され、その出力が６ビットづつ非線形変換処理を実行する複数のＳボックス１８１−１〜８に入力される。各Ｓボックスでは、例えば変換テーブルを適用した６ビットから４ビットへの非線形変換処理が実行される。
【００４８】
Ｓボックス１８１−１〜８からの出力ビット４×８＝３２ビットは、置換部１７２に入力されて、ビット位置の入れ替え処理がなされ、Ｆ関数出力３２ビットを生成して出力する。
【００４９】
図１〜３を参照して説明したように複数段（１６段）の変換処理によってＤＥＳ暗号処理が実行される。このＤＥＳ暗号処理をさらに暗号強度を高めるため複数繰り返し実行する構成、例えば３回のＤＥＳ暗号処理を実行するトリプルＤＥＳ暗号処理が様々な分野、例えばインターネットを介したデータ通信機器間の相互認証処理や、ＩＣカードとリーダライタ間の相互認証処理等に適用する暗号処理として多く採用されている。なお、トリプルＤＥＳ暗号処理と区別するため、回のＤＥＳ暗号処理をシングルＤＥＳ暗号処理と呼ぶ。
【００５０】
トリプルＤＥＳ（Ｔｒｉｐｌｅ  ＤＥＳ）暗号処理構成は、図４に示すように、図１〜３を参照して説明したＤＥＳ暗号処理を３回繰り返して実行することにより、平文から暗号文を生成する。シングルＤＥＳ暗号処理部１８５、１８６，１８７のそれぞれが上述した１６段のラウンド関数部を持ち、Ｓボックスを持つＦ関数による処理を１６回繰り返す。
【００５１】
通常、トリプルＤＥＳ暗号処理では、最初のシングルＤＥＳ暗号処理部１８５と、最後のＤＥＳ暗号処理部１８７においては同じ主鍵（Ｋ１）を適用し、中間のＤＥＳ暗号処理部１８６には異なる主鍵（Ｋ２）を適用する。このように、ＤＥＳ暗号処理を複数回繰り返し実行することで、暗号強度を向上させることができる。
【００５２】
このトリプルＤＥＳ暗号処理を適用した処理例として、インターネットを介したデータ通信機器間、あるいはＩＣカードとリーダライタ間で実行される相互認証処理のシーケンスを図５に示す。
【００５３】
図５には、右側にＩＣカード、左側にＩＣカードとのデータ通信を実行するリーダライタを示す。それぞれのデバイスは、上述のトリプルＤＥＳ暗号処理を実行可能な暗号処理モジュールを格納し、相互に接触または非接触でのデータ通信が可能な構成を持つ。
【００５４】
図５に示すＤＥＳ共通鍵暗号方式による相互認証処理手順について説明する。まず、ステップＳ１０１において、リーダライタが乱数［Ｒｒ］を入力とし、リーダライタとＩＣカードが共通に所有する鍵［ＫｅｙＡ］を用いてトリプルＤＥＳ暗号処理（Ｔ−ＤＥＳ）を実行し、暗号化データ［Ａ１］を生成し、生成した暗号化データ［Ａ１］をＩＣカードに送信する。なお、前述したように、トリプルＤＥＳ暗号処理には、２つの異なる鍵が適用され、上述の鍵［ＫｅｙＡ］は、トリプルＤＥＳ暗号処理に適用する２つの異なる鍵の組合わせを示す。
【００５５】
暗号化データ［Ａ１］を受信したＩＣカードは、ステップＳ１０２において、共通に所有する鍵［ＫｅｙＡ］を用いて受信した暗号化データ［Ａ１］をトリプルＤＥＳにより復号し、復号データ［Ａ１＿１］を得る。なお、復号処理においてもトリプルＤＥＳ暗号処理構成が適用される。すなわち、トリプルＤＥＳ暗号処理部に暗号文を入力し平文を出力する。さらにＩＣカードは、復号データ［Ａ１＿１］を、やはり、リーダライタとＩＣカードが共通に所有する鍵［ＫｅｙＢ］を用いてトリプルＤＥＳ暗号処理を実行して、暗号化データ［Ｂ１］を生成する。
【００５６】
さらに、ＩＣカードは、ステップＳ１０３において、乱数［Ｒｃ］を作り、生成乱数［Ｒｃ］を、鍵［ＫｅｙＢ］を用いて、トリプルＤＥＳ暗号処理を実行して暗号化データ［Ｂ２］を生成する。ＩＣカードは、生成した暗号化データ［Ｂ１］と、暗号化データ［Ｂ２］とをリーダライタに送信する。
【００５７】
リーダライタは、ＩＣカードから暗号化データ［Ｂ１］と、暗号化データ［Ｂ２］とを受信すると、ステップＳ１０４において、暗号化データ［Ｂ１］を鍵［ＫｅｙＢ］にて復号し、復号データ［Ｂ１＿１］を得る。ここで、復号データ［Ｂ１＿１］が先に生成した乱数Ｒｒと等しいか否かを検証する。等しい場合には、リーダライタは、ＩＣカードが正当な共通鍵を持つデバイスであると認証する。
【００５８】
さらに、リーダライタは、ステップＳ１０５において、暗号化データ［Ｂ２］を鍵［ＫｅｙＢ］にて復号し、復号データ［Ｂ２＿１］を得る。さらに、復号データ［Ｂ２＿１］に対して、鍵［ＫｅｙＡ］を適用してトリプルＤＥＳ暗号処理を実行して暗号化データ［Ａ２］を得る。この暗号化データ［Ａ２］をＩＣカードに送信する。
【００５９】
ＩＣカードは、リーダライタから暗号化データ［Ａ２］を受信すると、ステップＳ１０６において、暗号化データ［Ａ２］を、鍵［ＫｅｙＡ］を適用して復号し、復号データ［Ａ２＿１］を取得する。ここで、復号データ［Ａ２＿１］が先に生成した乱数Ｒｃと等しいか否かを検証する。等しい場合には、ＩＣカードは、リーダライタが正当な共通鍵を持つデバイスであると認証する。ＩＣカードは、復号データ［Ａ２＿１］をリーダ／ライタに送信する。
【００６０】
以上の処理により、ＩＣカード、リーダライタがそれぞれ同一の共通鍵を持つ正当なデバイスであることが証明される。相互にデータ通信を行なう場合は、例えばＩＣカードの生成乱数Ｒｃ（＝Ａ２＿１）をセッション鍵として通信データの暗号化、復号化用鍵として適用したデータ通信を行なう。
【００６１】
上述の共通鍵認証シーケンスにおいて、例えばＩＣカードの処理ステップＳ１０２とＳ１０３の処理シーケンスを暗号処理時の消費電力の観測により秘密情報を推定するＳｉｍｐｌｅ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ（ＳＰＡ）、あるいは、大量のデータに対する暗号処理における消費電力を測定し、それらの測定データを統計的に解析することにより秘密情報を推定するＤｉｆｆｅｒｅｎｔｉａｌＰｏｗｅｒ  Ａｎａｌｙｓｉｓ（ＤＰＡ）等を適用すると、暗号処理に適用する鍵データ列が漏洩する可能性がある。
【００６２】
上述の共通鍵認証シーケンスにおけるＩＣカードの処理ステップＳ１０２とＳ１０３の処理シーケンスをＩＣカード内の暗号処理モジュールで実行する場合のシーケンスについて、図６を参照して説明する。ＩＣカードの処理シーケンスは、図６（ａ）に示す処理となる。
【００６３】
すなわち、ステップＳ１０２とステップＳ１０３において、
（１）暗号化データ［Ａ１］のトリプルＤＥＳによる復号処理による復号データ［Ａ１＿１］の取得。
（２）復号データ［Ａ１＿１］のトリプルＤＥＳ暗号処理による暗号化データ［Ｂ１］の生成。
（３）乱数［Ｒｃ］の生成処理。
（４）乱数［Ｒｃ］を入力として、トリプルＤＥＳ暗号処理を実行して暗号化データ［Ｂ２］を生成。
【００６４】
以上の（１）〜（４）の処理がシーケンシャルに行なわれる。具体的には、図６（ｂ）に示すように、時間軸ｔに沿って、（１）トリプルＤＥＳ、（２）トリプルＤＥＳ、（３）乱数生成、（４）トリプルＤＥＳが、順次実行されることになる。これらの処理を実行するＩＣカードの電力消費の変動シーケンスは、ＤＥＳ暗号処理シーケンス（１）〜（４）に対応したものとなる。
【００６５】
ＤＥＳ暗号処理は、前述したように、ラウンド関数部において、複数段のＦ関数を繰り返し実行するものである。Ｆ関数を構成する非線形変換処理実行部としてのＳボックスを適用したデータ変換実行時における電力変動を解析することで、データ変換処理の解析が可能となる場合がある。従って、データシーケンスが、図６（ｂ）のように実行されることが把握されると、各ＤＥＳ暗号処理におけるＳボックスを適用した変換タイミングも容易に推測可能であり、様々な入力データに基づいて、そのタイミングにおける消費電力変動を計測することが可能となり、不正者による暗号解析を許容することになる。
【００６６】
本発明の暗号処理装置、暗号処理方法は、図６に示すような規則的な処理シーケンスを攪拌することにより、暗号解析に対する耐性を高めた構成を提供するものである。
【００６７】
図７を参照して本発明の暗号処理シーケンスの構成について説明する。本発明の暗号処理装置および方法においては、従来の規則的な暗号処理シーケンスに対して、以下のような処理を行ないオリジナル暗号処理シーケンスの攪拌を実行し、攪拌暗号処理シーケンスを設定する。
【００６８】
（ａ）乱数（Ｒｃ）の拡張
シングルＤＥＳ暗号処理を３回実行して生成乱数の変換処理を行なう。どの乱数を実際の処理に適用する乱数とするかは任意である。シすなわち、初期設定の乱数でもよいし、ＤＥＳ暗号処理によって変換された値でもよい。シングルＤＥＳ暗号処理を３回行うのは、解析者から見た際に乱数の発生もトリプルＤＥＳ（Ｔｒｉｐｌｅ−ＤＥＳ）の処理であると認識させ、他のトリプルＤＥＳ（Ｔｒｉｐｌｅ−ＤＥＳ）処理との判別を困難にするためである。
（ｂ）ダミーの追加
一連の処理の最後にｎ個のダミーのＤＥＳ暗号処理を挿入し、処理全体として解析に意味があるデータか否かの判別を困難にさせる。なお、ダミーの追加は乱数の拡張と同様に３の倍数にする。理由は、乱数と同じく各処理をＴｒｉｐｌｅ−ＤＥＳに見せるため
【００６９】
図７に示すように、共通鍵認証シーケンスにおけるＩＣカードの処理ステップＳ１０２とＳ１０３の処理シーケンスを２つの群、Ｘ群とＹ群に分割する。
【００７０】
Ｘ群は、
（１）暗号化データ［Ａ１］のトリプルＤＥＳによる復号処理による復号データ［Ａ１＿１］の取得。
（２）復号データ［Ａ１＿１］のトリプルＤＥＳ暗号処理による暗号化データ［Ｂ１］の生成。
【００７１】
Ｙ群は、
（３）乱数［Ｒｃ］の生成処理。
（４）乱数［Ｒｃ］を入力として、トリプルＤＥＳ暗号処理を実行して暗号化データ［Ｂ２］を生成。
（５）ｎ個のダミーのシングルＤＥＳ処理実行。
により構成する。
【００７２】
上述のように、処理（１）〜（４）に（５）のダミーによるシングルＤＥＳ処理を付加し、（１）、（２）をＸ群、（３）、（４）、（５）をＹ群として区分した後、これらの処理シーケンスを攪拌する。
【００７３】
本発明の暗号処理装置では、１以上の暗号処理単位（例えばシングルＤＥＳ）から構成されるオリジナル暗号処理シーケンスを複数の群へ分割する場合、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、独立実行可能なシーケンスを単位とした分割群の設定処理を実行し、必要に応じて設定群のいずれかにダミーの設定を行なう。上述の例では、（１）、（２）の処理は１つの独立して実行可能なシーケンスであり、（３）、（４）の処理は、もう１つの独立して実行可能なシーケンスである。
【００７４】
攪拌暗号処理シーケンスを生成するための攪拌処理について、図８を参照して説明する。図８には、Ｘ群の（１）［Ａ１＿１］の生成において実行するトリプルＤＥＳを構成するシングルＤＥＳをＸ１，Ｘ２，Ｘ３として示し、（２）［Ｂ１］の生成において実行するトリプルＤＥＳを構成するシングルＤＥＳをＸ４，Ｘ５，Ｘ６として示している。
【００７５】
また、Ｙ群の（３）［Ｒｃ］の生成において実行するトリプルＤＥＳを構成するシングルＤＥＳをＹ１，Ｙ２，Ｙ３として示し、（４）［Ｂ２］の生成において実行するトリプルＤＥＳを構成するシングルＤＥＳをＹ４，Ｙ５，Ｙ６として示し、（５）ｎ個のダミーにおいて実行するシングルＤＥＳをＹ７，Ｙ８・・Ｙ６＋ｎとして示している。
【００７６】
これらの各ＤＥＳ暗号処理を順番を入れ替えて実行する。ただし、例えばＸ群においては、Ｘ１の後にＸ２を実行し、その後にＸ３、Ｘ４、Ｘ５、Ｘ６と実行することが必要であるため、このＸ１〜Ｘ６の処理順序の入れ替えは行なわない。Ｙ群においても、Ｙ１の後にＹ２を実行し、その後にＹ３、Ｙ４、Ｙ５、Ｙ６と実行することが必要であるため、このＹ１〜Ｙ６の処理順序の入れ替えは行なわない。
【００７７】
本発明の暗号処理装置では、オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割するとともに、各設定群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定する。
【００７８】
上記条件の下、Ｘ群、Ｙ群を構成するシングルＤＥＳの処理単位Ｘ１〜Ｘ６と、Ｙ１〜Ｙ６＋ｎとの処理順番を攪拌した場合の組み合わせ数は、以下のように計算される。
【００７９】
まず、図８（Ａ）に示すように、Ｘ群のＸ１〜Ｘ６の前後および各間にＹ群を挿入する処理態様が複数ある。例えばＹ群を１固まりにして、図８（Ａ）に示すＸ群のａ１〜ａ７の位置に挿入する場合の態様としては、７Ｃ１通り、すなわち７通りとなる。また、Ｙ群を２つに分割して図８（Ａ）に示すＸ群のａ１〜ａ７の位置に挿入する場合の態様としては、７Ｃ２通り、すなわち２１通りとなる。以下、Ｙ群は６＋ｎまで分割可能であり、その場合は、７Ｃ６＋ｎ通りの組合わせがある。
【００８０】
さらに、図８（Ｂ）に示すように、Ｘ群に挿入するＹ群の分割位置の設定態様も分割数に応じて多数の組合わせが可能である。すなわち、Ｙ群は、図８（Ｂ）に示すようにｂ１〜ｂ５＋ｎのいずれかで分割可能である。分割数０の場合、すなわちＹ群を１固まりにして、Ｘ群のａ１〜ａ７の位置のいずれかに挿入する場合のＹ群の分割態様は、５＋ｎＣ０通り、すなわち１通りであるが、分割数１の場合、すなわちＹ群を２つにするＹ群の分割態様は、５＋ｎＣ１通りとなる。以下、Ｙ群の分割数は５＋ｎまで設定可能であり、この場合、すなわちＹ群を５＋ｎに分割する場合のＹ群の分割態様は、５＋ｎＣ５＋ｎ＝１通りとなる。このようにＹ群の分割数に応じてその組み合わせ数が決定される。
【００８１】
さらに、図８（Ｃ）に示すように、６＋ｎ個のＹ群の中に、実質的な暗号処理シーケンス、すなわちオリジナル暗号処理シーケンスに含まれるシングルＤＥＳ処理としてのＹ１〜Ｙ６を配列する組み合わせ数が６＋ｎＣ６通りとなる。
【００８２】
このように、（Ａ）、（Ｂ）、（Ｃ）の各々についての組合せ数を考慮すると、トータルとしての組合わせ数の総計は、下式に示す計算の総数として求められる。
【００８３】
【数１】
７Ｃ１×５＋ｎＣ０×６＋ｎＣ６
７Ｃ２×５＋ｎＣ１×６＋ｎＣ６
・・
７Ｃ６＋ｎ×５＋ｎＣ５＋ｎ×６＋ｎＣ６
【００８４】
図９を参照して、上記式の説明をする。図９に示す計算式中（Ａ）の部分は、図８（Ａ）の組合わせ数に相当する計算部分であり、Ｘ群のＸ１〜Ｘ６の前後および各間にＹ群を挿入する処理態様の組合わせ数の計算部分である。図９に示す計算式中（Ｂ）の部分は、図８（Ｂ）の組合わせ数に相当する計算部分であり、Ｘ群に挿入するＹ群の分割位置の組み合わせ数の計算部分である。図９に示す計算式中（Ｃ）の部分は、図８（Ｃ）の組合わせ数に相当する計算部分であり６＋ｎ個のＹ群の中に、実質的な暗号処理シーケンスに必要となるシングルＤＥＳ処理としてのＹ１〜Ｙ６を配列する組み合わせ数、すなわち、６＋ｎＣ６の計算部分である。
【００８５】
例えば、図９の最上段の行は、Ｘ群の挿入位置を１つとして、Ｙ群の分割数を０とした場合の組合わせ数を計算し、次の行は、Ｘ群の挿入位置を２つとして、Ｙ群の分割数を１つ、すなわち、２つにＹ群を分割してＸ群のいずれかに挿入する場合の組合わせ数を計算している。最下段の行は、Ｘ群の挿入位置を７つ（Ｍａｘ）として、Ｙ群の分割数を５＋ｎ（Ｍａｘ）とした場合の組合わせ数を計算している。
【００８６】
これら各行の計算値の総和が、Ｘ群のＸ１〜Ｘ６、Ｙ群のＹ１〜Ｙ６の処理順序を固定とした条件の下で、Ｘ群、Ｙ群を構成するシングルＤＥＳの処理単位Ｘ１〜Ｘ６と、Ｙ１〜Ｙ６＋ｎとの処理順番を変更する組み合わせ数となる。
【００８７】
具体的な計算例について図１０を参照して説明する。図１０（ａ）は、Ｘ群Ｘ１〜Ｘ６、Ｙ群Ｙ１〜Ｙ６に、追加ダミー数：ｎ＝０として設定した場合の組合わせ総数を計算したものであり、その総数は９４２通りとなる。
【００８８】
図１０（ｂ）は、Ｘ群Ｘ１〜Ｘ６、Ｙ群Ｙ１〜Ｙ６に、追加ダミー数：ｎ＝３として設定した場合の組合わせ総数を計算したものであり、その総数は４２０４２０通りとなる。さらに、ダミー数を増加させることにより、組み合わせ数は加速度的に増大することになる。
【００８９】
本発明の暗号処理装置、暗号処理方法では、上述のように、実行すべきオリジナル暗号処理シーケンスを複数の群に分割し、それらの分割群における暗号処理単位（例えばシングルＤＥＳ）を所定条件、例えば各群内のシーケンスは一定とする等の所定条件の下に攪拌し、攪拌暗号処理シーケンスを設定し設定した攪拌暗号処理シーケンスに従って暗号処理を実行する。
【００９０】
従って、消費電力は、攪拌暗号処理シーケンスに応じたものとなり、前述したように規則的なシーケンスに従ったものとはならず、図５に示すＩＣカード側の処理ステップＳ１０２とステップＳ１０３において実行される処理内のＤＥＳ暗号処理のどの部分が実行中であるかを外部からの消費電力のモニタによって推察することは非常に困難となる。
【００９１】
図１０の具体的数値からも明らかなように、ダミーを用いない場合であっても処理シーケンスの設定態様は、９４２通りであり、処理開始時にシーケンスを設定して処理を実行すれば、処理毎にシーケンスが異なることになり、外部からの電力モニタによる暗号処理解析は極めて困難となる。さらに、ダミーによる処理を加えることで、図１０に示すように、設定可能なシーケンス数は飛躍的に増大し、同一のシーケンスが繰り返される確率は極めて低くなる。従って、外部からの電力モニタによる暗号解析の可能性を著しく低減することが可能となる。
【００９２】
なお、上述した実施例では、図５に示す認証シーケンスにおけるＩＣカード側の処理ステップＳ１０２、Ｓ１０３を例として説明したが、上述のシーケンス攪拌処理は、その他の処理、例えば図５におけるリーダライタの処理ステップＳ１０４とステップＳ１０５についても同様に適用可能である。例えばステップＳ１０４の処理をＸ群とし、ステップＳ１０５の処理をＹ群として設定し、必要に応じて少なくともいずれかの群にダミー処理にむよるシングルＤＥＳ処理を設定し、上述と同様の各暗号処理単位（シングルＤＥＳ）の順番を入れ替える攪拌処理により、処理シーケンスを設定することが可能である。
【００９３】
また、上述した実施例では、ＤＥＳ暗号処理を実行する構成例について説明したが、暗号処理は、ＤＥＳに限らず、他の暗号処理アルゴリズムを実行する構成においても、上述と同様の処理シーケンスの攪拌により解析を困難とすることが可能である。
【００９４】
様々な暗号処理アルゴリズムにおいて、例えばシングルＤＥＳ等と同様の暗号処理単位を持つアルゴリズムでは、その暗号処理単位を、独立に実行可能な複数の群に分割し、必要に応じてダミーの処理単位を付加して、結果出力が可能なシーケンスを維持することを条件として、複数群の個々の処理単位の順番を入れ替える攪拌処理を実行する。このようにして設定された攪拌後の処理シーケンスに従って暗号処理を実行することで、外部からの電力解析を困難化することができる。
【００９５】
また、上述した実施例では、Ｘ群、Ｙ群の２つの群に分割する処理例を説明したが、実行すべきオリジナル暗号処理シーケンス中に独立して実行可能な暗号処理シーケンスが３つ以上存在する場合は、３以上の群に分割して、必要に応じて各群少なくともいずれかにダミーを設定し、各分割群内の処理シーケンスを維持するなどの所定条件の下に暗号処理単位を攪拌し、攪拌した処理シーケンスを設定して暗号処理を実行するめ構成とすることが可能である。
【００９６】
上述の暗号処理シーケンスの設定、および設定した暗号処理シーケンスを実行するデバイスとしてのＩＣモジュール３００の構成例を図１１に示す。上述の処理は、例えばＰＣ、ＩＣカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図１１に示すＩＣモジュール３００は、これら様々な機器に構成することが可能である。
【００９７】
図１１に示すＣＰＵ（Ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ３０２は、ＣＰＵ３０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納するＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ−Ｍｅｍｏｒｙ）、ＣＰＵ３０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなる。また、メモリ３０２は暗号処理に必要な鍵データ等の格納領域として使用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
【００９８】
暗号処理手部３０３は、例えば上述したトリプルＤＥＳに従った暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをＲＯＭに格納し、ＣＰＵ３０１がＲＯＭ格納プログラムを読み出して実行するように構成してもよい。
【００９９】
乱数発生器３０４は、暗号処理に必要となる乱数の発生処理を実行する。発生した乱数を例えばＤＥＳ暗号処理によって変換する場合には、発生乱数を暗号処理部３０３に入力し暗号処理を実行する。
【０１００】
処理制御部３０５は、上述した処理において処理シーケンスの設定、すなわち、Ｘ群、Ｙ群等、複数の群の設定処理、競った低した処理群に対するダミーの設定、ダミーの暗号処理（例えばシングルＤＥＳ）を実行する場合のダミー暗号処理に対する入力値設定処理等を実行する。
【０１０１】
なお、ここでは、理解を容易にするため、処理制御部３０５を、本発明の特徴的な処理を実行する要素として独立して示したが、処理制御部３０５の上述の処理は、ＣＰＵ３０１、あるいは暗号処理部３０３内の制御部において実行する構成とすることも可能であり、上述の処理制御部を独立に構成することは必須ではない。
【０１０２】
次に、図１２、図１３のフローチャートを参照して、本発明の暗号処理装置における暗号処理のシーケンス設定、および暗号処理の実行手順について説明する。
【０１０３】
図１２のフローに示す各ステップ毎の処理について説明する。まず、暗号処理を実行する機器、例えばＩＣカード、リーダライタ、ＰＣ等の機器は、ステップＳ３０１においてオリジナル暗号処理シーケンスを複数群に分割する。この複数群への分割は、上述した実施例におけるＸ群、およびＹ群への分割に相当する。群への分割要件は、それぞれの群の暗号処理が独立に実行可能なシーケンスとして設定されていることである。具体的には、図５に示すＩＣカードにおけるステップＳ１０２の暗号処理シーケンスと、ステップＳ１０３における暗号処理シーケンスのように、それぞれ独立に実行可能なシーケンスは個別の群として設定可能となる。リーダライタのステップＳ１０４と、ステップＳ１０５のシーケンスも個別の群として設定できる。なお、３つ以上の独立シーケンスがあれば３つ以上の群に分割可能である。
【０１０４】
図１２のフローにおけるステップＳ３０１において複数群への分割が実行さると、ステップＳ３０２において分割群のいずれかの群にダミーを設定する。これは図７、図８に示すＹ群のｎ個のダミーの設定処理である。なお、ダミーの設定は任意である。ダミーを用いない場合でも、先に図１０を参照して説明したように、十分なシーケンス攪拌が可能である場合もあり、このように十分な攪拌が可能である場合には、ダミーを付加しない構成としてもよい。
【０１０５】
ステップＳ３０３において、分割群を所定条件下で、攪拌して、攪拌暗号処理シーケンスを設定する。所定条件とは、例えば、各個別群の中の暗号処理単位（例えばシングルＤＥＳ）の処理順序の入れ替えは行なわない等の条件である。
【０１０６】
設定される攪拌暗号処理シーケンスは、例えば、図１０の（ｂ）の例のＸ群Ｘ１〜Ｘ６、Ｙ群Ｙ１〜Ｙ６に、追加ダミー数：ｎ＝３として設定した場合、４２０４２０通りのシーケンスから選択された１つのシーケンスとなる。このシーケンスの選択は、例えば暗号処理装置の制御部がランダムに選択する。
【０１０７】
実行する攪拌暗号処理シーケンスの選択が終了すると、ステップＳ３０４において、設定されたシーケンスに従って、暗号処理を実行する。暗号処理の実行詳細を図１３のフローチャートを参照して説明する。
【０１０８】
図１３のフローは、攪拌暗号処理シーケンスを構成する各処理単位、すなわち上述の実施例では、図７、図８に示す１つの円に対応するシングルＤＥＳの処理における処理手順を示している。ステップＳ５０１において、処理単位（例えばシングルＤＥＳ）に入力する値をメモリから取得し、ステップＳ５０２において、入力値に基づく暗号処理（例えばシングルＤＥＳ）を実行する。
【０１０９】
メモリから取得する値は、前段の結果の入力な処理である場合には、前段の処理結果をメモリから取得する。例えば、図８において、Ｘ群のＸ２の処理においては、Ｘ１の処理結果を入力することが必要となる。この場合には、メモリから前段の出力結果を取得し、入力値とする。
【０１１０】
ステップＳ５０２において、暗号処理単位の処理が実行されると、ステップＳ５０３において、結果をメモリに格納する。格納する場合は、どの処理単位のデータであるかを判別可能な状態で格納する。例えば図８において、Ｘ群のＸ２の処理を実行した場合は、Ｘ２の処理結果であることを判別可能な態様で格納する。こうすることで、Ｘ３の処理が実行される際、Ｘ３の入力値を誤りなくメモリから取得可能となる。
【０１１１】
ステップＳ５０４において、実行した処理単位が、攪拌暗号処理シーケンスの最終処理単位であるか否かを判定し、Ｎｏである場合には、ステップＳ５０１に戻り、メモリから入力値を取り出して暗号処理を実行するシーケンスを繰り返す。
【０１１２】
ステップＳ５０４において、実行した処理単位が、攪拌暗号処理シーケンスの最終処理単位であると判定された場合は、ステップＳ５０５に進み、メモリに格納された値の中から、ダミーに基づく処理結果を除く、各群の実際に必要となるオリジナル暗号処理シーケンスの最終処理結果をメモリに保存あるいは必要に応じて出力する。図７または図８に示す例では、Ｘ群における処理単位Ｘ６の処理結果と、Ｙ群における処理単位Ｙ６の処理結果が、メモリに対する保存あるいは出力データとされる。これは、図５に示す例においては、ステップＳ１０２の結果［Ｂ１］と、ステップＳ１０３の結果［Ｂ２］に相当する値である。
【０１１３】
上述のようにオリジナル暗号処理シーケンスを複数群に分割し、必要に応じてダミーを設定し、攪拌暗号処理シーケンスを設定後に暗号処理を実行することで、オリジナル暗号処理シーケンスに対応した規則的な処理シーケンスが実行されることがなくなり、電力解析による暗号処理解析の困難性が高められる。
【０１１４】
なお、上述の実施例では、オリジナル暗号処理シーケンスを複数群に分割することを前提として説明したが、独立して実行可能なシーケンスが複数存在しない場合には、複数群への分割を実行せず、ダミーの追加のみを実行して、追加したダミーと、オリジナル暗号処理シーケンスの処理単位とに基づく攪拌を実行する構成としてもよい。
【０１１５】
すなわち、オリジナル暗号処理シーケンスを、暗号処理単位に分割し、暗号処理単位に相当する処理を実行するダミー暗号処理単位を付加し、オリジナル暗号処理シーケンス中に含まれるオリジナル暗号処理単位と、ダミー暗号処理単位の処理順の攪拌を実行して攪拌暗号処理シーケンスを設定し、設定した攪拌暗号処理シーケンスに従って、暗号処理を実行する構成としてもよい。この場合、例えば、オリジナル暗号処理シーケンスに含まれる暗号処理単位が、シングルＤＥＳ暗号処理である場合は、ダミー暗号処理単位もシングルＤＥＳ暗号処理として設定する。
【０１１６】
次に、暗号処理ＩＣモジュールを持つＰＣ、ポータブルデバイス、リーダライタ、ＩＣカード等の機器の構成例について、図１４を参照して説明する。図１１では、上述の処理を実行するための最低限の構成要素として、暗号処理ＩＣモジュールのみの構成を示したが、図１４に、データ入出力可能な通信部、その他の記憶部、入力部、出力部等を備え、上述の暗号処理シーケンスの設定、実行、さらにデータ入出力可能な構成を含む情報処理装置の一般的構成について説明する。
【０１１７】
上述の実施例で述べた一連の処理は、ハードウェア、ソフトウェアの組合わせにより行うことができる。即ち、汎用のコンピュータや、マイクロコンピュータにプログラムを実行させることにより行う構成とすることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータや１チップのマイクロコンピュータ等にインストールされる。図１４は、上述した一連の処理を実行するプログラムをインストールして実行可能なコンピュータの一実施形態としての構成例を示している。
【０１１８】
図１４に示すシステム構成例は１つの例であり、本発明の処理を実行するシステムは、ここに示すべての機能を必ずしも備えることが要求されるものではない。図１４に示すＣＰＵ（Ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１は、上述したアルゴリズムに従ったプログラムやその他の各種アプリケーションプログラム、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行するプロセッサである。この例では、図１１に示す処理制御部の処理もＣＰＵ５０１の制御の下に実行される。
【０１１９】
ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ−Ｍｅｍｏｒｙ）５０２は、ＣＰＵ５０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３は、ＣＰＵ５０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【０１２０】
ＨＤＤ５０４はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。暗号処理手段５０５は、データの暗号処理、復号処理、乱数発生処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをＲＯＭ５０２に格納し、ＣＰＵ５０１がＲＯＭ格納プログラムを読み出して実行するように構成してもよい。メモリ（セキュアモジュール）５０６は例えば耐タンパ構造を持つメモリとして構成され、暗号処理に必要な鍵データ等の格納領域として使用可能である。なお、これらのデータは、他のメモリ領域、記憶媒体に格納することも可能である。
【０１２１】
バス５２１はＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｎｅｔ／Ｉｎｔｅｒｆａｃｅ）バス等により構成され、各モジュール、入出力インタフェース１２２を介した各入手力装置とのデータ転送を可能にしている。
【０１２２】
入力部５１１は、例えばキーボード、ポインティングデバイス、あるいはその他のデータ入力手段によって構成され、ＣＰＵ５０１に各種のデータあるいはコマンドを入力する。出力部５１２は、例えばＣＲＴ、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。
【０１２３】
通信部５１３はシステムの接続したエンティテイ、例えば暗号データの通信エンティテイ（例えばリーダライタ）との通信処理を実行し、ＣＰＵ５０１の制御の下に、各記憶部から供給されたデータ、あるいはＣＰＵ５０１によって処理されたデータ、暗号化されたデータ等を送信したり、他エンティテイからのデータを受信する処理を実行する。
【０１２４】
ドライブ５１４は、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  ＲｅａｄＯｎｌｙ  Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ  ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体５１５の記録再生を実行するドライブであり、各リムーバブル記録媒体５１５からのプログラムまたはデータ再生、リムーバブル記録媒体５１５に対するプログラムまたはデータ格納を実行する。
【０１２５】
各記憶媒体に記録されたプログラムまたはデータを読み出してＣＰＵ５０１において実行または処理を行なう場合は、読み出したプログラム、データはインタフェース５２２、バス５２１を介して例えば接続されているＲＡＭ５０３に供給される。
【０１２６】
先にフロー図を参照した処理を実行するためのプログラムは例えばＲＯＭ５０２に格納されてＣＰＵ５０１によって処理されるか、あるいはハードディスクに格納され、ハードディスクから読み出されてＣＰＵ５０１により実行される。
【０１２７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１２８】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１２９】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ  ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１３０】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１３１】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１３２】
【発明の効果】
以上、説明してきたように、本発明の構成によれば、オリジナルの暗号処理シーケンスの複数群への分割およびダミーの設定により、数百〜数万種類の異なる攪拌暗号処理シーケンスの設定を可能とし、これら多数の設定可能なシーケンスから選択したシーケンスを実行する構成としたので、選択された攪拌暗号処理シーケンスの実行毎に、オリジナルの暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動とは全く異なる消費電力変動を発生させることが可能となり、電力解析による暗号解析の困難性を著しく高めることができる。
【０１３３】
さらに、本発明の構成によれば、オリジナル暗号処理シーケンスを、１以上の暗号処理単位から構成される複数の群に分割する場合に、分割対象となるオリジナル暗号処理シーケンス中、独立して実行可能なシーケンス群を判別し、独立実行可能なシーケンスを単位とした分割群の設定処理を実行するとともに、各設定群内の暗号処理単位の処理順を固定とする条件の下で暗号処理単位の処理順の攪拌を実行する構成としたので、攪拌暗号処理シーケンスを実行した場合においても必要な処理結果を確実に取得することが可能となる。
【０１３４】
さらに、本発明の構成によれば、乱数発生処理、あるいは設定するダミーについて、例えばオリジナル暗号処理がトリプルＤＥＳを基本とするアルゴリズムである場合、乱数生成、変換処理をトリプルＤＥＳ処理によって実行する態様とし、またダミーも３の倍数に相当するシングルＤＥＳの設定としたので、全ての処理についてオリジナルのトリプルＤＥＳとの判別が困難となり、電力解析の困難性を高めることができる。
【図面の簡単な説明】
【図１】ＤＥＳ暗号処理アルゴリズムについて説明する図である。
【図２】ＤＥＳ暗号処理アルゴリズムにおけるラウンド関数部の構成ついて説明する図である。
【図３】ＤＥＳ暗号処理アルゴリズムにおけるラウンド関数部内のＳボックス構成ついて説明する図である。
【図４】トリプルＤＥＳ暗号処理構成について説明する図である。
【図５】共通鍵方式の相互認証処理シーケンスについて説明する図である。
【図６】共通鍵方式の相互認証処理シーケンスにおけるＩＣカード側の詳細処理シーケンスを説明する図である。
【図７】本発明の暗号処理における分割群の設定処理について説明する図である。
【図８】本発明の暗号処理における分割群の設定および攪拌暗号処理シーケンスの設定について説明する図である。
【図９】本発明の暗号処理における攪拌暗号処理シーケンスの設定態様数の計算について説明する図である。
【図１０】本発明の暗号処理における攪拌暗号処理シーケンスの設定態様数の計算の具体例について説明する図である。
【図１１】本発明の暗号処理を実行するＩＣモジュールの構成例を説明するブロック図である。
【図１２】本発明の暗号処理の手順を説明するフローチャートである。
【図１３】本発明の暗号処理の手順を説明するフローチャートである。
【図１４】本発明の暗号処理を実行する情報処理装置構成例を示す図である。
【符号の説明】
１１０  ラウンド関数部
１１１  初期置換部
１１２  第１変換部
１１３  第２変換部
１１４  逆置換部
１２０  鍵スケジュール部
１２１  選択置換部
１２２  第１鍵生成部
１２３  第２鍵生成部
１５１  Ｆ関数部
１７１  置換部
１７２  置換部
１８１  Ｓボックス
１８５〜１８７  ＤＥＳ暗号処理部
３００  ＩＣモジュール
３０１  ＣＰＵ
３０２  メモリ
３０３  暗号処理部
３０４  乱数発生器
３０５  処理制御部
５０１  ＣＰＵ
５０２  ＲＯＭ
５０３  ＲＡＭ
５０４  ＨＤＤ
５０５  暗号処理手段
５０６  メモリ
５１１  入力部
５１２  出力部
５１３  通信部
５１４  リムーバブル記憶媒体
５２１  バス
５２２  入出力インタフェース
【図１】
2004212828.tif 000003
【図２】
2004212828.tif 000004
【図３】
2004212828.tif 000005
【図４】
2004212828.tif 000006
【図５】
2004212828.tif 000007
【図６】
2004212828.tif 000008
【図７】
2004212828.tif 000009
【図８】
2004212828.tif 000010
【図９】
2004212828.tif 000011
【図１０】
2004212828.tif 000012
【図１１】
2004212828.tif 000013
【図１２】
2004212828.tif 000014
【図１３】
2004212828.tif 000015
【図１４】
2004212828.tif 000016