JP2005045752A - 暗号処理装置、および暗号処理方法 - Google Patents

暗号処理装置、および暗号処理方法 Download PDF

Info

Publication number
JP2005045752A
JP2005045752A JP2003394034A JP2003394034A JP2005045752A JP 2005045752 A JP2005045752 A JP 2005045752A JP 2003394034 A JP2003394034 A JP 2003394034A JP 2003394034 A JP2003394034 A JP 2003394034A JP 2005045752 A JP2005045752 A JP 2005045752A
Authority
JP
Japan
Prior art keywords
clock signal
processing
data
random number
cryptographic
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.)
Pending
Application number
JP2003394034A
Other languages
English (en)
Inventor
Joshi Abe
譲司 阿部
Masashi Kanamaru
昌司 金丸
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003394034A priority Critical patent/JP2005045752A/ja
Publication of JP2005045752A publication Critical patent/JP2005045752A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 暗号処理におけるデータの格納などの処理タイミングにおける消費電力測定による暗号解析を困難としセキュリティレベルの高い暗号処理装置および方法を実現する。
【解決手段】 乱数に基づく信号に従って、変調クロック信号を生成して、該変調クロック信号に基づいてデータ処理タイミングを決定してデータ処理を実行する。あるいは、ランダムな初期遅延を設定した遅延クロック信号による処理タイミング制御を行って処理を行なう。さらに、変調クロックまたはランダム遅延クロックによる遅延量が予め設定された許容最大遅延時間未満であるか否かを判定し、遅延量が予め設定された許容最大遅延時間以内になるようにクロック信号に基づく制御を実行する。
【選択図】 図10

Description

本発明は、暗号処理装置および暗号処理方法に関する。さらに詳細には、暗号処理における中間データの格納タイミングなどの処理タイミングを乱数に基づいて生成する変調クロック信号に従って制御することにより、暗号解析に対する耐性を高めた暗号処理装置および暗号処理方法に関する。
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。
例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。
暗号処理モジュールにおいては、例えば、平文を入力し暗号文を出力するデータ暗号化処理、あるいは暗号文を入力し平文を出力する復号化処理が実行される。これらの暗号処理は、暗号処理モジュールを構成するハードウェア、例えば半導体による電気的な処理を含む。従って、このような半導体モジュールにおいて暗号処理が実行される際の電力消費を解析することで、暗号処理の適用鍵や、アルゴリズムが解析されてしまうという恐れがある。
例えば、IC等の演算処理装置に対する攻撃、すなわち暗号解読攻撃として、処理時間を解析することによる秘密情報を推定するタイミングアタック(TA:Timing attack)、暗号処理時の消費電力の観測により秘密情報を推定する単純電力解析(SPA:Simple Power Analysis)、さらに、大量のデータに対する暗号処理における消費電力を測定し、それらの測定データを統計的に解析することにより秘密情報を推定する電力差分解析(DPA:Differential Power Analysis)等がある。
一般的な暗号処理装置は、データ入力部と記憶部と暗号処理部、およびデータ出力部とから構成されており、例えば入力データの暗号化を行う場合は、次のように動作する。すなわち、データ入力部から暗号処理部に平文が入力される。暗号処理部は、例えばDES(Data Encryption Standard)などの暗号処理アルゴリズムを実行する処理部において一定の暗号処理アルゴリズムに従ったデータ処理がなされる。
暗号処理アルゴリズムの実行過程において生成される中間データを逐次、記憶部に格納し、また記憶部に格納した中間データを取得して予め定められた一定の処理順序に従って暗号化処理が実行される。暗号処理部において、予め定められた一連の暗号処理アルゴリズムが終了すると、生成暗号文が出力部を介して出力される。
このような暗号処理装置において、暗号化処理の開始時から特定の暗号化中間処理手続きが開始されるまでに要する時間は、おおよそ一定になる。なお、暗号アルゴリズムの実装方法については、例えば非特許文献1に詳しく述べられている。
このような暗号処理装置は、前述した単純電力解析(シンプル・パワー・アナリシス)や電力差分解析(ディファレンシャル・パワー・アナリシス)と呼ばれる暗号解析法を適用することで、暗号処理に適用する鍵情報や、アルゴリズムが解析される恐れがある。
単純電力解析および電力差分解析は、現在のメモリやレジスタ等の半導体デバイスにおいて、特定の時刻に、半導体デバイスの保持する値に変化が生じた場合と、保持する値に変化が生じなかった場合とで、消費電力に差が発生するという特徴を利用して、暗号処理装置が暗号処理を実行している様々なタイミングにおいて消費電力を測定することにより、暗号処理装置が保持している暗号鍵等の秘密情報を特定する暗号解析法である。
単純電力解析や電力差分解析が有効に機能する条件としては、第1に消費電力を測定している各時点で行われている暗号処理手続きが特定できること、第2に各時刻で測定した消費電力の値が当該時刻において暗号化装置内で行われている暗号化処理の演算結果を顕著に反映していること、の2点が挙げられる。
従来の暗号化装置、復号化装置および暗号化・復号装置等の暗号処理装置においては、上記の2点の条件が満たされてしまうために、単純電力解析や電力差分解析が有効に機能し、暗号の解読が可能になりうるという問題点が存在した。
この問題に対処するため、いくつかの方法が提案されてきた。例えば特許文献1には差分解読や線形解読を防止することを目的としたデータの暗号化方法及び装置が記載されている。本文献には、データを複数ブロックに分割して、ブロックを順次、暗号化する構成において、暗号処理対象のブロックに適用する鍵を、前の処理ブロックの中間結果から導く構成とすることにより、ブロック毎に異なる鍵を適用した処理を行うものであり、結果として統計的な鍵推定を困難としたものである。
また、特許文献2には、暗号処理に適用する鍵情報の漏洩を防止した構成が示されている。本文献に記載の構成は、暗号化された鍵情報を不揮発性メモリに格納し、電源投入時に不揮発性メモリから暗号化された鍵情報を復号し、復号の結果としての鍵情報を揮発性メモリに格納して、これを暗号処理に適用するとともに、電源遮断時に揮発性メモリから鍵情報を能動的に消去することにより、鍵情報の漏洩を防止したものである。
また、特許文献3には、電力解析および電力差分解析等の消費電力の測定による暗号解析に対して耐性のある暗号化装置が示されている。本文献に記載の構成は、中間データ制御手段が、暗号処理において生成される中間データを乱数によって変化させ、この乱数によって変化した中間データに基づく暗号処理を実行する構成とし、さらに最終的な出力(暗号文)については、乱数に依存しないデータとすることを可能としたものである。本構成においては、暗号処理デバイスの状態変化は、乱数によって変化した中間データに基づく変化となり、その結果、電力解析および電力差分解析等、消費電力の測定による暗号解析の困難性が高まるというものである。
さらに、非特許文献2には、暗号処理の実行シーケンスにおいて、ランダムなタイミングシフトを挿入することによって、波形のタイミング合わせを困難にする防御法が示されている。
上述したように、暗号鍵あるいはアルゴリズムの漏洩に対する対策についての提案は様々存在するが、例えば特許文献1に記載の構成は、ブロック単位で、処理済みブロックから中間データを抽出し、新たな鍵を生成するといった複雑な処理が必要となり、演算処理効率の低下、処理遅延という問題を発生させる恐れがある。また、特許文献2に記載の構成は、鍵データそのものの漏洩を防止する効果は有するものの、暗号処理実行中の単純電力解析および電力差分解析等、消費電力の測定による暗号解析に対する対策とはなっていない。さらに、特許文献3に記載の乱数を利用した方法については、高階電力差分解析と呼ばれる暗号解析法によって攻撃が可能なことがMessergesによって既に示されている。例えば、["Using Second−Order Power Analysisto Attack DPA Resistant Software", T.S.Messerges, CHES2000]に説明が記述されている。
また、上述の非特許文献2は、暗号処理の実行シーケンス中にランダムなタイミングシフトを挿入して波形のタイミング合わせを困難化できるとは述べられているものの、具体的なランダムタイミングシフトの挿入方法が開示されていない。また、タイミングシフト挿入に伴うパフォーマンス低下に対する解決手段についての開示がなく、一定時間内の高速処理が要請されるシステムなどには適用できないという問題がある。
暗号処理を実行する例えばICモジュールは、例えば駅の改札などの様々なゲート、あるいはショッピングセンターなどで盛んに利用されるようになっており、小型化および処理の迅速化の要求が厳しくなってきている。従って、処理アルゴリズムを複雑化させることなく高速処理が可能で、かつ電力差分解析や、高階電力差分解析に対する耐性のある構成が必要とされている。
特開平9−230786号公報 特開平8−504067号公報 特開2000−305453号公報 『「Applied Cryptography 」(Bruce Shneier 著) John Wieley& Sons ,Inc .,1996 ,ISBN 0 −471 −11709 −9 ,pp .623 −673 』 "DES and Di.erential Power Analysis", Louis Goubin, Jacques Patarin,CHES99
本発明は、上記問題点に鑑みてなされたものであり、処理アルゴリズムを複雑化させることなく、暗号処理シーケンスの持つ規則的な処理に伴う消費電力変動の検出等に基づく単純電力解析、電力差分解析や高階電力差分解析による暗号解析の困難性を高め、かつ、パフォーマンスの低下を防止し、高速な暗号処理を可能とした暗号処理装置および暗号処理方法を提供することを目的とする。
本発明の第1の側面は、
暗号処理装置であり、
データ処理タイミング制御信号としての変調クロック信号を生成する変調クロック信号生成部と、
前記変調クロック信号を入力し、該入力変調クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理部とを有し、
前記変調クロック信号生成部は、乱数に基づく乱数信号に対応した変調クロック信号を生成し、前記データ処理部に対して出力する構成であることを特徴とする暗号処理装置にある。
さらに、本発明の暗号処理装置の一実施態様において、前記変調クロック信号生成部の生成する前記変調クロック信号は、前記データ処理部内のメモリのクロック端子に入力され、該メモリに対するデータ格納および該メモリからのデータ読み出しタイミングの制御信号として適用する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、一定のクロック周期の正規クロック信号を生成するクロック信号生成部と、前記乱数信号の前記正規クロック信号に対する遅延量を計測するカウンタを有し、前記変調クロック信号生成部は、前記カウンタによって計測される遅延量が予め設定された許容最大遅延時間未満である場合は、前記乱数信号に対応した変調クロック信号を前記データ処理部に対して出力し、遅延量が予め設定された許容最大遅延時間に達した場合は、前記正規クロック信号に対応した変調クロック信号を前記データ処理部に対して出力する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記データ処理部は、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行する暗号処理装置であり、前記データ処理部は、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定する構成であることを特徴とする。
さらに、本発明の第2の側面は、
暗号処理装置であり、
データ処理タイミング制御信号として、ランダムな遅延が設定されたランダム遅延クロック信号を生成するランダム遅延クロック信号生成部と、
前記ランダム遅延クロック信号を入力し、該入力クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理部とを有し、
前記ランダム遅延クロック信号生成部は、乱数に基づいてランダムな初期遅延を設定したランダム遅延クロック信号を生成し、前記データ処理部に対して出力する構成であることを特徴とする暗号処理装置にある。
さらに、本発明の暗号処理装置の一実施態様において、前記ランダム遅延クロック信号生成部の生成する前記ランダム遅延クロック信号は、前記データ処理部内のメモリのクロック端子に入力され、該メモリに対するデータ格納および該メモリからのデータ読み出しタイミングの制御信号として適用する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、乱数に基づく初期遅延量を決定する初期遅延量決定部を有し、前記初期遅延量決定部は、前記乱数に基づいて決定する初期遅延量を予め設定された許容最大遅延時間以内に設定する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、乱数に基づく初期遅延量を決定する初期遅延量決定部を有し、前記初期遅延量決定部は、前記乱数に基づく演算処理またはテーブル参照処理により初期遅延量を決定する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記データ処理部は、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行する暗号処理装置であり、前記データ処理部は、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定する構成であることを特徴とする。
さらに、本発明の第3の側面は、
暗号処理方法であり、
データ処理タイミング制御信号として、乱数に基づく乱数信号に対応した変調クロック信号を生成する変調クロック信号生成ステップと、
前記変調クロック信号を入力し、該入力変調クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理ステップと、
を有することを特徴とする暗号処理方法にある。
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理方法は、さらに、一定のクロック周期の正規クロック信号を生成するクロック信号生成ステップと、前記乱数信号の前記正規クロック信号に対する遅延量を計測する遅延量計測ステップを有し、前記変調クロック信号生成ステップは、遅延量が予め設定された許容最大遅延時間未満である場合は、前記乱数信号に対応した変調クロック信号を前記データ処理部に対して出力するクロック信号とし、遅延量が予め設定された許容最大遅延時間に達した場合は、前記正規クロック信号に対応したクロック信号を前記データ処理部に対して出力することを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記データ処理ステップは、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定することを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記データ処理ステップは、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行するステップであり、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定することを特徴とする。
さらに、本発明の第4の側面は、
暗号処理方法であり、
データ処理タイミング制御信号として、乱数に基づくランダム初期遅延を設定したランダム遅延クロック信号を生成するランダム遅延クロック信号生成ステップと、
前記ランダム遅延クロック信号を入力し、該入力クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理ステップと、
を有することを特徴とする暗号処理方法にある。
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理方法は、さらに、乱数に基づく初期遅延量を決定する初期遅延量決定ステップを有し、前記初期遅延量決定ステップは、前記乱数に基づいて決定する初期遅延量を予め設定された許容最大遅延時間以内に設定するステップであることを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理方法は、さらに、乱数に基づく初期遅延量を決定する初期遅延量決定ステップを有し、前記初期遅延量決定ステップは、前記乱数に基づく演算処理またはテーブル参照処理により初期遅延量を決定するステップであることを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記データ処理ステップは、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定することを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記データ処理ステップは、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行するステップであり、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定することを特徴とする。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、乱数に基づく信号に従って、変調クロック信号を生成して、該変調クロック信号に基づいてデータ処理タイミングを決定してデータ処理を実行する構成としたので、データの暗号化や復号を行う暗号処理装置の時間経過に伴う消費電力を測定することによる暗号化鍵や復号鍵等の秘密情報解析、すなわち、電力解析に基づく暗号解析を困難とすることが可能となり、セキュリティレベルの高い暗号処理装置および方法が実現される。
本発明の構成によれば、乱数に基づく信号に従って、ランダム遅延クロック信号を生成して、該ランダム遅延クロック信号に基づいてデータ処理タイミングを決定してデータ処理を実行する構成としたので、データの暗号化や復号を行う暗号処理装置の時間経過に伴う消費電力を測定することによる暗号化鍵や復号鍵等の秘密情報解析、すなわち、電力解析に基づく暗号解析を困難とすることが可能となり、セキュリティレベルの高い暗号処理装置および方法が実現される。
本発明の構成によれば、遅延量が予め設定された許容最大遅延時間未満である場合は、乱数信号に対応した変調クロック信号に基づく制御を実行し、遅延量が予め設定された許容最大遅延時間に達した場合は、正規クロック信号に対応したクロック信号に基づいて制御を実行する構成としたので、過大な処理遅延の発生が防止され、一定時間内の処理完了が保証されることになる。
本発明の構成によれば、ランダム遅延クロックにおける遅延量の設定において、予め設定された許容最大遅延時間未満の遅延量を設定する構成としたので、過大な処理遅延の発生が防止され、一定時間内の処理完了が保証されることになる。
本発明の構成によれば、例えば複数段のラウンド関数部からなる共通鍵暗号処理を実行する暗号処理装置おいて、各段のF関数出力、すなわちSボックスから置換部を介した中間データ出力値のレジスタに格納するタイミング、および、次段の処理においてレジスタからデータを読み出すタイミングを乱数信号によって決定し、かつ、予め定めた許容遅延時間以降は、正規のクロック信号に基づいてデータの格納および読み出しを実行する構成としたので、許容遅延時間内では乱数信号に基づく不規則なタイミングでのデータ処理が実行され、時間経過に伴う消費電力の測定による暗号化鍵や復号鍵等の秘密情報を得る暗号解析法に耐性を向上させることができる。さらに、予め定めた許容遅延時間以降は、正規のクロック信号に基づいてデータの格納および読み出しを実行するので、過大な処理遅延の発生が防止され、一定時間内の処理完了が保証されることになる。
本発明の構成によれば、例えば複数段のラウンド関数部からなる共通鍵暗号処理を実行する暗号処理装置おいて、各段のF関数出力、すなわちSボックスから置換部を介した中間データ出力値のレジスタに格納するタイミング、および、次段の処理においてレジスタからデータを読み出すタイミングをランダムな初期遅延を設定したランダム遅延クロック信号によって決定し、かつ、遅延量が許容遅延時間以内になるように設定したので、不規則なタイミングでのデータ処理が実行され、時間経過に伴う消費電力の測定による暗号化鍵や復号鍵等の秘密情報を得る暗号解析法に耐性を向上させることができる。さらに、過大な処理遅延の発生が防止され、一定時間内の処理完了が保証されることになる。
以下、本発明の暗号処理装置および暗号処理方法の詳細について説明する。
暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
共通鍵暗号方式の1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いて暗号処理を繰り返し実行する方式がある。このような鍵生成方式を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。
共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部とに分けることができる。ラウンド関数部の各ランウドで適用する鍵(副鍵)は、1つの主鍵に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド関数部で適用される。この共通鍵暗号方式の代表的な方式に米国連邦標準暗号方式としてのDES(Data Encryption Standard)がある。
DES暗号処理の基本構造について、図を参照して説明する。DES暗号処理は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。図1にDES暗号処理の基本構成を示す。入力データの変換を実行するラウンド関数部110と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部120とによって構成される。
ラウンド関数部110において、平文(64ビット)は、まず、初期置換部111において、L,R各32ビットに分割され、分割されたL,R32ビットが、第1段変換部112に入力され、鍵スケジュール部120の第1段鍵生成部122から入力する鍵K(1)に基づいて変換処理がなされる。変換処理結果は、次段の第2段変換部113に入力される。
鍵スケジュール部120においては、まず、選択置換部121により入力主鍵(64ビット)のパリティ8ビットが取り除かれ、残り56ビットの入れ替え処理が実行されて第1段鍵生成部122に入力される。第1段鍵生成部122では、入力ビット列のシフト処理およびパリティビットの除去等が実行され、48ビットの副鍵K(1)を生成し、生成した副鍵K(1)をラウンド関数部110の第1段変換部112に出力する。第1段鍵生成部122では、シフト処理による上位ビット列(28ビット)と下位ビット列(28ビット)とを下段の第2段鍵生成部123に出力する。
ラウンド関数部は、16段の変換部を有し、それぞれ前段の変換部の出力を入力として鍵スケジュール部120から入力する鍵を適用した変換処理を実行し、変換結果を後段の変換部に出力する。16段の変換部で変換された出力が逆置換部114に入力され、初期置換部111の逆置換処理が実行されて、暗号文として出力される。
ラウンド関数部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)が入力され同様の処理が繰り返される。
F関数の構成を図3に示す。F関数は、非線形処理を実行する複数のSボックス(Sbox)を有する。ラウンド関数部の前段からの入力値R(n−1)は置換部171によって48ビットに拡大され、さらに鍵スケジュール部から入力する鍵(48ビット)と排他論理和が実行され、その出力が6ビットずつ非線形変換処理を実行する複数のSボックス181−1〜8に入力される。各Sボックスでは、例えば変換テーブルを適用した6ビットから4ビットへの非線形変換処理が実行される。
Sボックス181−1〜8からの出力ビット4×8=32ビットは、置換部172に入力されて、ビット位置の入れ替え処理がなされ、F関数出力32ビットを生成して出力する。
図1〜3を参照して説明したように複数段(16段)の変換処理によってDES暗号処理が実行される。このDES暗号処理をさらに暗号強度を高めるため複数繰り返し実行する構成、例えば3回のDES暗号処理を実行するトリプルDES暗号処理が様々な分野、例えばインターネットを介したデータ通信機器間の相互認証処理や、ICカードとリーダライタ間の相互認証処理等に適用する暗号処理として多く採用されている。なお、トリプルDES暗号処理と区別するため、1回のDES暗号処理をシングルDES暗号処理と呼ぶ。
トリプルDES(Triple DES)暗号処理構成は、図4に示すように、図1〜3を参照して説明したDES暗号処理を3回繰り返して実行することにより、平文から暗号文を生成する。シングルDES暗号処理部185、186,187のそれぞれが上述した16段のラウンド関数部を持ち、Sボックスを持つF関数による処理を16回繰り返す。
通常、トリプルDES暗号処理では、最初のシングルDES暗号処理部185と、最後のDES暗号処理部187においては同じ主鍵(K1)を適用し、中間のDES暗号処理部186には異なる主鍵(K2)を適用する。このように、DES暗号処理を複数回繰り返し実行することで、暗号強度を向上させることができる。
しかし、このような共通鍵暗号処理においては、暗号解析による鍵、あるいは暗号アルゴリズムの漏洩が問題となっている。暗号解析手法としては、複数の種類がある。まず、単純電力解析(SPA:Simple Power Analysis)について説明する。スマートカードなどの耐タンパデバイスのほとんどはトランジスタで構成された論理回路からなり、ゲートに電圧が加えられたときに電流が流れ、電力が消費される。一般に回路の消費電力は、実行している演算と用いられているデータの値に関係する。例えば、乗法演算は0を書き込む場合よりも1を書き込む場合のほうが消費電力が大きくなり、乗法演算と平方演算ではそれぞれ異なる電力を消費する。
このように演算やデータ値に応じて電力消費量が変動することから、秘密情報を用いた演算を行っているデバイスの消費電力の変化を観察することで、秘密情報に関してハミングウェイトなどの情報を得ることが可能となり、エントロピーを小さくすることができる。消費電力の変化を直接解析に用いる方法を単純電力解析と呼ぶ。
デバイスの消費電力は、デバイスと電源または接地との間に抵抗を直列に挿入し、抵抗を流れる電流値から求めることができる。実際に共通鍵暗号の演算を行っているスマートカードに対して消費電力測定を行うと、測定波形より共通鍵暗号の各段の演算がはっきり確かめられる。さらに、消費電力波形を詳しく解析することにより鍵レジスタの交換等の情報を得ることができる。
次に、電力差分解析(DPA:Differential Power Analysis)について説明する。耐タンパデバイスの消費電力は一般に演算内容と演算に用いられている秘密情報に依存する。しかしこれらの内容に依存した消費電力の変化は小さく、測定誤差やノイズなどから見分けることは一般に困難である。
そこでKocherらは大量の測定値の平均をとって測定誤差やノイズなどの影響を小さくし、全データの平均値との差分を取ることで演算プロセスによる電力消費の影響を除いて、用いられる秘密情報による消費電力の変化のみを取り出す方法(電力差分解析)を提案した。
KocherらはDESに対する適用例を示している。まず、ラウンド関数部の第1段、または第16段に入る鍵の一部のビットについて予想し、第1段、または第16段の最後にメモリに書きこまれると予想されるデータの1ビットの値に注目して、その値に従って消費電力の観測データを分類する。次にそれぞれのグループについて測定値の平均をとり、それらの差分をとる。予想が正しい場合注目したビットが演算に用いられるとき消費電力の差分が大きくなる。予想が異なる場合目立った差分は確認されない。
電力差分解析は、具体的には、以下の手順(ステップ1〜ステップ7)に従った解析が行われる。
(ステップ1)
m回暗号化プロセスを観測し、それぞれ第16段の消費電力の変化T1,・・・,Tmを観測する。さらに、暗号文C1,・・・,Cmを記録する。第16段の消費電力の変化を解析に用いる場合、平文の情報は必要ない。なお、mは1000程度で十分である。
(ステップ2)
鍵に依存した分配関数D(Ks,C)を選択する。ただし、Ksは何らかの鍵情報、Cは暗号文である。
例えば、最終段のSボックス1の出力の1ビット目の値に着目し、Sボックス1に供給される6ビットの部分鍵を推定する場合を考える。この場合、関数Dは次式で与えられる。
Figure 2005045752
ただし、
K16は、第16段にSボックス1に供給される6ビットの部分鍵の予想値、
C6はK16と排他論理和(XOR)される暗号文の6ビット、
SBOX1(x)はSボックス1に6ビットxが供給された場合の出力結果の1ビット目、
C1はSBOX1の出力結果に排他論理和(XOR)される暗号文の1ビットである。
(ステップ3)
関数Dを用いてT1,・・・,Tmを2つのグループに分ける。
S0={Ti|D(・,・,・)=0}
S1={Ti|D(・,・,・)=1}
次に、それぞれのグループについて消費電力の平均値を取る。
Figure 2005045752
ただし、|S0|+|S1|=mである。
(ステップ4)
A0とA1の差分をとり、電力差分信号ΔDを得る。
ΔD=A−A
(ステップ5)
部分鍵の予想値Ksが正しくない場合、D(・,・,・)は暗号文に対してほぼランダムに"0"と"1"を出力する。従って十分多くのサンプルを取ると、ΔDの値は0に近づいていく。ただし、実際には正しい予想値Ksとの相互作用のため、ΔDの波形は完全にはフラットにならない。Ksが正しい場合は、D(・,・,・)は注目したビットの実際の値と同じ値を取るため、m→∞とすることで、ΔDは注目したビットを用いるときに消費する電力に近づいていく。
他のデータ値や測定誤差などD(・,・,・)に依存しないものは0に近づいていく。消費電力はデータのビット値に依存するため、D(・,・,・)の波形は注目したビットが用いられる領域でパルスを見せ、それ以外の領域では平坦になる。
(ステップ6)
以上を繰り返し、Sボックス1に供給される部分鍵を推定する。反復の最大値は2=64回である。
(ステップ7)
同様の作業を残り7つのSボックスについて行い、秘密鍵について48ビットの情報を得る。残りの8ビットの鍵情報は全探索によって求める。これは、DESに関する例であるが、Camellia等で利用されている8×8Sboxについても同様に適用が可能である。
次に、高階電力差分解析について説明する。
上に述べた電力差分解析はサンプルの一つのイベントに基づいた情報に対して解析を行っているが、高次電力差分解析は複数のイベントに基づいた情報を関連付けて解析に用いる。分配関数Dはサンプルごとにそれぞれ異なる重み付けをしたり、2つ以上のグループ分けをしたりすることができる。そのような関数は多くの防御策を封じ、平文や暗号文の情報が不完全な場合でも解析が可能な場合がある。また、特徴的な統計的性質を持つサンプルに対しては、単純に平均をとるのではなく別の処理を行うことが有効である。
図1〜図4を参照して説明した複数段(16段)の変換処理によって暗号処理が実行される場合、各段の処理結果、すなわち中間データが、一旦、記憶部としてのレジスタに格納され、次の処理段での処理の開始時にレジスタから中間データが取り出されて次段の処理が実行される。すなわち、レジスタへの中間データの格納、およびレジスタからの中間データの取り出しが繰り返し実行されることになる。
具体的な処理について、図5を参照して説明する。図5には、Sボックス(Sbox)204を持つF関数の構成および中間データ記憶部としてのレジスタ207,208を持つ暗号処理デバイスの構成例である。
図1〜図4を参照して説明した複数段(16段)の変換処理を実行する場合、各処理段毎に生成する中間データがレジスタ207,208に格納され、次の処理段では、レジスタ207およびレジスタ208から中間データが取り出されて処理が実行される。
図5(a)は図2に示す変換処理部に相当し、その詳細および中間データ記憶部としてのレジスタを示したのが図5(b)である。前段(n−1段)の処理結果、すなわち、L(n−1)、R(n−1)は、それぞれLレジスタ211、Rレジスタ212に格納され、Rレジスタ212の32ビットデータがF関数部200に入力され、置換部201において、32ビットから48ビットに拡大置換される。置換部201は、図3の置換部171に相当する。
さらに置換部201の出力に対して、鍵スケジュール部から鍵(k(n))202が適用されて、排他論理和(XOR)部203において排他論理和演算処理がなされ、処理結果がSボックス204に入力される。Sボックスにおいて非線形変換が実行され、Sボックス204出力が置換部205でビット入れ替え等の置換処理が実行された後、置換結果が、排他論理和(XOR)部206においてLレジスタ211の格納値と排他論理和演算処理がなされ、その結果が、Rレジスタ212、Lレジスタ211に格納される。これらの格納データがさらに次の段の処理において取り出されて同様の処理が繰り返されることになる。
図5に示すような実装では、F関数部200の出力が直接レジスタに蓄えられ、後段の処理には、レジスタからのデータ取り出しを実行して取り出したデータに基づく処理が実行される。
これらの処理を実行するデバイスは、トランジスタで構成された論理回路であり、前述したように、実行している演算と用いられているデータの値に関係する消費電力が発生する。例えば、レジスタに対するデータ書き込みにおいて、0を書き込む場合と1を書き込む場合とで異なる消費電力を示すことになる。従って、レジスタに対する中間データの書き込み、読み取りを繰り返し実行する演算を行っているデバイスの消費電力の変化を観察することで、秘密情報の解析を行うことが可能となる。
暗号処理を実行するデバイスとしてのICモジュール300の構成例を図6に示す。上述の暗号処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図6に示すICモジュール300は、これら様々な機器に構成することが可能である。
図6に示すCPU(Central processing Unit)301は、暗号処理の開始や、終了、暗号処理プログラムに従った各処理の実行、データの送受信の制御、各構成部間のデータ転送制御、メモリ(レジスタ)302へのデータ格納、メモリ(レジスタ)302からのデータ読み取り処理、その他の各種処理を実行するプロセッサである。
メモリ(レジスタ)302は、CPU301が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU301の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。メモリ(レジスタ)302には、上述した中間データの格納領域も形成される。プロセッサによって実行される様々な処理における中間データの格納あるいは読み取りは、クロック信号生成部310の生成するクロック信号がメモリ302のクロック端子に入力され、データの格納あるいは読み取り実行タイミングが制御される。また、メモリ302は暗号処理に必要な鍵データ等の格納領域として使用可能である。
乱数発生器303は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
送受信部304は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
先に図5を参照して説明したように、暗号処理において発生する中間データは、レジスタに格納され、また、次の処理においてレジスタから中間データの読み出しが行われることになる。これらのデータの記録および読み出す際の処理タイミングは、一定サイクルの周期を持つクロック信号によって制御される。
すなわち、図7に示すように、クロック信号生成部310は、一定周期のクロック信号を生成し、生成されたクロック信号がメモリ302のクロック端子に入力され、データの格納あるいは読み取り実行タイミングが制御され、メモリ(レジスタ)302に対するデータ書き込み、およびデータ読み取り処理が実行される。
図8に示すように、クロック信号生成部310の生成するクロック信号は、一定周期のクロックサイクルを持つデジタル波形信号であり、例えば図8の信号立ち上がり部分において、CPU301は、メモリ(レジスタ)302に対するデータ書き込み処理、あるいは、メモリ(レジスタ)302からのデータ読み取り処理を実行する。
クロック信号生成部310の生成するクロック信号は時間間隔が一定であるため、消費電力を測定することによって暗号化鍵や復号鍵等の秘密情報を得る暗号解析法が有効に作用することになる。すなわち、時間経過に伴う、消費電力の推移を観察することで、レジスタに対するデータ格納タイミングなど、各種の処理タイミングが解析されてしまうことになる。
本発明は、このような規則的な処理タイミングに従った処理に起因する攻撃に対する弱点を解消するものであり、クロック信号をそのまま、処理実行タイミングの制御信号として用いるのではなく、乱数に基づいてランダムな処理実行タイミング制御信号としての変調クロック信号を生成し、変調クロック信号に基づいて各種の処理を実行する構成とした。
本発明に従った、暗号処理実行デバイスとしてのICモジュール500の構成例を図9に示す。図9に示すCPU(Central processing Unit)501は、データ処理機能を持つプロセッサであり、暗号処理の開始や、終了、暗号処理プログラムに従った各処理の実行、データの送受信の制御、各構成部間のデータ転送制御、メモリ(レジスタ)502へのデータ格納、メモリ(レジスタ)502からのデータ読み取り処理、その他の各種処理を実行するプロセッサである。プロセッサによって実行される様々な処理において、データのメモリ(レジスタ)502に対する格納処理あるいは読み取り処理のタイミングは、変調クロック信号生成部530の生成する変調クロック信号に基づいて制御される。すなわち、変調クロック信号生成部530の生成する変調クロック信号がメモリ502のクロック端子に入力され、データの格納あるいは読み取り実行タイミングが制御される。
変調クロック信号生成部530は、一定周期の正規のクロック信号をクロック信号生成部510から入力するとともに、乱数信号生成部520の生成する乱数信号を入力し、これらの2つの信号に基づいて変調クロック信号を生成する。変調クロック信号生成部530は、カウンタ540を有し、カウンタに基づいて、処理の遅延時間が、予め定めた許容遅延時間内にあるか否かを計測し、許容遅延時間内においては、乱数信号に基づく変調クロック信号をメモリ502のクロック端子に出力し、遅延が許容遅延時間上限になると、一定周期の正規のクロック信号をメモリ502のクロック端子に出力する。これらの処理によって、処理の実行タイミングが制御されることになる。これらの処理の詳細については、後述する。
メモリ(レジスタ)502は、CPU501が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU501の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。メモリ(レジスタ)502は、上述した中間データの格納領域も形成される。また、メモリ502は暗号処理に必要な鍵データ等の格納領域として使用可能である。秘密データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
乱数発生器503は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
送受信部504は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
本実施例の構成において、データ処理機能を持つCPU501の実行する処理、例えばメモリ(レジスタ)502に対するデータ格納処理や、メモリ(レジスタ)502からのデータ読み出し処理タイミングなどの各種処理タイミングは、変調クロック信号生成部530の生成する変調クロック信号に基づいて決定される。
図10を参照して、変調クロック信号生成部530の生成する変調クロック信号について説明する。変調クロック信号生成部530は、一定周期の正規のクロック信号をクロック信号生成部510から入力するとともに、乱数信号生成部520の生成する乱数信号を入力し、これらの2つの信号に基づいて変調クロック信号を生成する。
図10(a)が、クロック信号生成部510から入力する一定周期の正規のクロック信号である。(b)は、乱数信号生成部520の生成する乱数の例であり、(c)は乱数に基づいて生成される乱数信号である。
図10では、乱数[110011101101]の乱数データ例を示してある。(c)の乱数信号は、乱数[1]で[High]、乱数[0]で[Low]となるように設定された信号である。乱数は、乱数信号生成部520においてランダムに生成される乱数であり、(c)の乱数信号は、ランダムに生成される乱数に基づいて設定される信号である。
変調クロック信号生成部530は、図10(a)の一定周期の正規のクロック信号をクロック信号生成部510から入力し、図10(b)の乱数信号を乱数信号生成部520から入力し、これら2つの信号に基づいて、図10(e)の変調クロック信号を生成し、処理タイミングの制御信号として出力する。図10(e)の変調クロック信号において、各種の処理タイミングは、変調クロック信号の立ち上がり部1〜5に設定される。
図10(e)の変調クロック信号は、前半は、(c)乱数信号であり、後半は、(a)クロック信号に対応する信号である。変調クロック信号生成部530は、カウンタ540を有し、カウンタ540によって、(c)の乱数信号に基づいて処理を実行した場合の遅延を計測する。すなわち、(a)の正規のクロック信号に基づく処理に比較して、(c)の乱数信号に基づく処理によって発生する遅延をカウントし、遅延が予め設定した許容遅延時間内である場合は、(c)乱数信号を変調クロック信号として出力し、遅延が予め設定した許容遅延時間の上限に達した場合は、(a)の正規のクロック信号を変調クロック信号として出力する。この処理によって、処理遅延が過大になることが防止され、所定時間内の処理完了が保証される。
図10の例では、最大の許容遅延時間をカウンタ=4として設定した例を示している。すなわち、(a)の正規のクロック信号に対して、(c)の乱数信号の処理タイミング発生数の遅れが4になるまでは、(c)乱数信号を変調クロック信号として出力し、遅延が4に達した場合は、(a)の正規のクロック信号を変調クロック信号として出力する。
(d)カウンタは、初期状態は[0]に設定され、(a)の正規のクロック信号の立ち上がりまたは立ち下がりの発生数と、(c)の乱数信号の立ち上がりまたは立ち下がりの発生数の差が発生した時点で、カウントアップする。図10の例では、ポイント(イ)、(ハ)、(ホ)、(ヘ)の各点において、(a)の正規のクロック信号の立ち上がりまたは立ち下がりが発生しているが、(c)の乱数信号の立ち上がりまたは立ち下がりが発生しておらず、これらの各ポイントでカウンタ540はカウントアップする。
図10の例では、最大の許容遅延時間をカウンタ=4として設定した例であり、(ヘ)のポイントにおいて、カウンタ540のカウント値=4となるので、図10(e)に示すように、ポイント(へ)までは、(c)乱数信号を変調クロック信号として出力し、遅延が予め設定した許容遅延時間の上限、すなわちカウント=4に達した場合は、(a)の正規のクロック信号を変調クロック信号として出力する。この処理によって、処理遅延は、正規クロック数に換算してクロック数=4までに抑えることが可能であり、遅延が過大になることが防止され、所定時間内の処理完了が保証される。
図11を参照して、変調クロック信号に基づくレジスタに対するデータ書き込み処理および、レジスタからのデータ読み取り処理について説明する。
メモリ(レジスタ)502に対するデータ書き込み、あるいはメモリ(レジスタ)502からのデータ読み取り処理は、例えば、先に図1〜図5を参照して説明した複数段のラウンド関数部における各段のSボックス出力に基づくデータの格納処理や、次段の処理開始時に繰り返し、実行される。
これらの処理タイミングは、変調クロック信号生成部530の生成する変調クロック信号に基づいて決定される。メモリ502のクロック端子に変調クロック信号生成部530の生成する変調クロック信号が入力され、入力する変調クロック信号によって決定される処理タイミング、すなわち、図10(e)のポイント1〜5において、メモリ(レジスタ)502に対するデータ書き込み、あるいはメモリ(レジスタ)502からのデータ読み取り処理が実行される。
変調クロック信号生成部530は、図10(a)の一定周期の正規のクロック信号をクロック信号生成部510から入力し、図10(b)の乱数信号を乱数信号生成部520から入力し、これら2つの信号に基づいて、図10(e)の変調クロック信号を生成する。
変調クロック信号生成部530は、カウンタ540を有し、カウンタ540によって、(c)の乱数信号に基づいて処理を実行した場合の遅延を計測し、遅延が予め設定した許容遅延時間内である場合は、(c)乱数信号を変調クロック信号として出力し、遅延が予め設定した許容遅延時間の上限に達した場合は、(a)の正規のクロック信号を変調クロック信号としてメモリ502のクロック端子に供給する。変調クロック信号生成部530から入力する変調クロック信号に基づくタイミング制御の下に処理が実行される。この遅延時間のカウント処理によって、処理遅延が過大になることが防止され、所定時間内の処理完了が保証される。
図12に変調クロック信号生成部530において実行する変調クロック信号の生成および出力処理手順を説明するフローチャートを示す。フローチャートを参照して、変調クロック信号生成部530の処理手順を説明する。
ステップS101において、変調クロック信号生成部は、一定周期の正規のクロック信号(図10(a)参照)をクロック信号生成部から入力し、乱数信号(図10(b)参照)を乱数信号生成部520から入力する。
ステップS102において、乱数信号(図10(b)参照)に基づいて、変調クロック信号を生成し、変調クロック信号生成部におけるカウンタが、正規のクロック信号に対する乱数信号の遅れのカウントを開始(図10(d)参照)する。
ステップS103において、カウンタによってカウントされるカウント数に基づいて決定される遅延量が、予め定めた許容遅延時間以内であるか否かを判定する。図10の例では、カウント数=4を許容最大遅延時間として設定している。
遅延量が予め定めた許容最大遅延時間未満である場合(ステップS103の判定:Yes)は、ステップS104に進み、乱数信号を変調クロック信号として出力する。遅延量が予め設定した許容最大遅延時間に達した場合(ステップS103の判定:No)は、ステップS105に進み、正規のクロック信号を変調クロック信号として出力する。
このように、本発明の構成によれば、乱数に基づいて生成される変調クロック信号を適用して処理タイミングが設定され、例えば中間データのレジスタへの格納処理、あるいはレジスタからのデータ読み取り処理が、変調クロック信号に基づいて制御されることになる。従って、規則的なクロックによる処理が実行されないこととなり、時間軸に沿った電力消費の解析に基づく暗号解析に対する耐性を高めることが可能となり、セキュリティレベルの高い暗号処理が可能となる。
さらに、本発明の構成では、乱数信号に基づく制御によって発生する遅延量をカウンタによって計測し、遅延量が許容最大遅延時間に達した以降は、正規のクロック信号を出力して、正規のクロック信号によって設定されるタイミングで処理を実行する構成としたので、処理遅延が過大になることが防止され、所定時間内の処理完了が保証され、高速処理の必要なシステムにおいても処理エラーを発生させることないシステムが実現される。
なお、上述の実施例では、カウンタを必須のユニットとしていたが、遅延量や、パフォーマンスの低下を考慮する必要がない場合は、カウンタによる遅延量の計測を実行する必要がないので、カウンタを設けず、常時、乱数信号に基づいて生成する変調クロック信号を制御クロックとして出力し、乱数信号に基づいて生成する変調クロック信号に従った処理を実行する構成としてもよい。
上述した実施例1においては、乱数信号に基づいて変調クロック信号を生成して、データ書き込みタイミング等の制御信号として用いる構成例を説明した。次に、乱数信号に基づいてランダムな初期遅延量を設定し、ランダムな初期遅延量を持つクロック信号をメモリに対するデータ書き込みなどの処理タイミング制御信号として適用した実施例について説明する。
本発明に従った、暗号処理実行デバイスとしてのICモジュール700の構成例を図13に示す。図13に示すCPU(Central processing Unit)701は、データ処理機能を持つプロセッサであり、暗号処理の開始や、終了、暗号処理プログラムに従った各処理の実行、データの送受信の制御、各構成部間のデータ転送制御、メモリ(レジスタ)702へのデータ格納、メモリ(レジスタ)702からのデータ読み取り処理、その他の各種処理を実行するプロセッサである。プロセッサによって実行される様々な処理において、データのメモリ(レジスタ)702に対する格納処理あるいは読み取り処理のタイミングは、ランダム遅延クロック信号生成部730の生成するランダムに遅延されたクロック信号に基づいて制御される。すなわち、ランダム遅延クロック信号生成部730の生成する遅延クロック信号がメモリ702のクロック端子に入力され、データの格納あるいは読み取り実行タイミングが制御される。
ランダム遅延クロック信号生成部730は、一定周期の正規のクロック信号をクロック信号生成部710から入力するとともに、乱数信号生成部720の生成する乱数信号を入力する。
ランダム遅延クロック信号生成部730は、初期遅延量決定部740を有し、初期遅延量決定部740が、乱数信号生成部720の生成する乱数信号に基づいて初期遅延量を決定し、決定した初期遅延を持つ遅延クロック信号がメモリ702のクロック端子に入力され、データの格納あるいは読み取り実行タイミングが制御される。
ただし、初期遅延量決定部740は、予め定められた最大許容遅延時間:Dmax以内において、ランダムな遅延量を決定する。すなわち、初期遅延時間:dは、
0≦d≦Dmax
の範囲で、乱数信号生成部720の生成する乱数信号に基づいて初期遅延量を決定する。この処理の詳細については、後述する。
メモリ(レジスタ)702は、CPU701が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU701の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。メモリ(レジスタ)702は、上述した中間データの格納領域も形成される。また、メモリ702は暗号処理に必要な鍵データ等の格納領域として使用可能である。秘密データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
乱数発生器703は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
送受信部704は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
本実施例の構成において、データ処理機能を持つCPU701の実行する処理、例えばメモリ(レジスタ)702に対するデータ格納処理や、メモリ(レジスタ)702からのデータ読み出し処理タイミングなどの各種処理タイミングは、ランダム遅延クロック信号生成部730の生成する遅延クロック信号に基づいて決定される。
図14を参照して、ランダム遅延クロック信号生成部730の生成するランダム遅延クロック信号について説明する。ランダム遅延クロック信号生成部730は、一定周期の正規のクロック信号をクロック信号生成部710から入力するとともに、乱数信号生成部720の生成する乱数信号を入力する。
図14(a)が、クロック信号生成部710から入力する一定周期の正規のクロック信号である。(b)は、ランダム遅延クロック信号生成部730の生成するランダム遅延クロック信号の例であり、(c)は乱数信号生成部720の生成する乱数信号の例である。
図14では、(c)の乱数信号、すなわち、乱数信号生成部720の生成する乱数信号が[00011011]の8ビットデータである例を示してある。ランダム遅延クロック信号生成部730の初期遅延量決定部740は、この乱数信号[00011011]に基づいて初期遅延量を決定する。
乱数信号に基づく遅延量の決定処理態様としては、例えば入力乱数信号に基づく演算処理、あるいは乱数信号と遅延量を対応付けたテーブル参照処理などが適用可能である。
演算式による遅延量算出構成を持つ場合は、初期遅延量決定部740は、乱数信号生成部720から入力する乱数rに基づいて、予め定められた遅延量決定演算式f(r)を実行し、遅延量d=f(r)を算出する。また、乱数信号と遅延量を対応付けたテーブルに基づく遅延量決定構成を持つ場合は、乱数信号生成部720から入力する乱数rに基づいて、乱数信号と遅延量を対応付けたテーブルから、入力乱数rに対応して設定された遅延量dを抽出する。
ランダム遅延クロック信号生成部730は、初期遅延量決定部740において決定した遅延量dを初期遅延として、クロック信号生成部710から入力する一定周期の正規のクロック信号に初期遅延dを設定し、図14(b)に示すようなランダム遅延クロック信号を生成して、メモリに対する処理タイミング制御信号として出力する。
なお、初期遅延量決定部740は、予め定められた最大許容遅延時間:Dmax以内のランダムな遅延量を決定する。すなわち、初期遅延時間:dは、
0≦d≦Dmax
の範囲で、乱数信号生成部720の生成する乱数信号に基づいて決定する。この処理によって、処理遅延が過大になることが防止され、所定時間内の処理完了が保証される。
図15を参照して、ランダム遅延クロック信号に基づくレジスタに対するデータ書き込み処理および、レジスタからのデータ読み取り処理について説明する。
メモリ(レジスタ)702に対するデータ書き込み、あるいはメモリ(レジスタ)702からのデータ読み取り処理は、例えば、先に図1〜図5を参照して説明した複数段のラウンド関数部における各段のSボックス出力に基づくデータの格納処理や、次段の処理開始時に繰り返し、実行される。
これらの処理タイミングは、ランダム遅延クロック信号生成部730の生成するランダム遅延クロック信号に基づいて決定される。メモリ702のクロック端子にランダム遅延クロック信号生成部730の生成するランダム遅延クロック信号が入力され、入力するランダム遅延クロック信号によって決定される処理タイミング、例えば、図14(b)のパルス立ち上がり部において、メモリ(レジスタ)702に対するデータ書き込み、あるいはメモリ(レジスタ)702からのデータ読み取り処理が実行される。
ランダム遅延クロック信号生成部730は、図14(a)の一定周期の正規のクロック信号をクロック信号生成部410から入力し、図14(c)の乱数信号を乱数信号生成部720から入力し、乱数信号に基づいて、初期遅延量dを決定し、図14(b)のランダム遅延クロック信号を生成する。
ランダム遅延クロック信号生成部730は、初期遅延量決定部740を有し、乱数信号生成部720から入力する乱数に基づく演算、あるいはテーブル参照処理などにより、初期遅延量dを決定する。ただし、初期遅延量決定部740は、予め定められた最大許容遅延時間:Dmax以内のランダムな遅延量、すなわち、
0≦d≦Dmax
の範囲の初期遅延量dを、乱数信号生成部720の生成する乱数信号に基づいて決定する。この処理によって、処理遅延が過大になることが防止され、所定時間内の処理完了が保証される。
図16にランダム遅延クロック信号生成部730において実行するランダム遅延クロック信号の生成、出力処理、およびデータ処理、例えばメモリに対するデータ書き込み処理の実行手順を説明するフローチャートを示す。フローチャートの各ステップの処理について説明する。
ステップS201において、ランダム遅延クロック信号生成部730は、乱数信号生成部520から入力する乱数に基づいて初期遅延量dを決定する。前述したように、最大許容遅延時間:Dmax以内のランダムな遅延量、すなわち、
0≦d≦Dmax
の範囲の初期遅延量dを、乱数信号生成部720の生成する乱数信号に基づいて決定する。
ステップS202において、初期遅延dを設定したランダム遅延クロック信号をメモリの処理制御信号として出力する。
ステップS203において、メモリは、ランダム遅延クロック信号のパルス検出を行い、例えばパルスの立ち上がり部を検出した場合、ステップS204において、データ書き込み等の処理を実行する。
なお、図16に示すフローでは、データ書き込み処理を処理例として示してあるが、データ読み出しの際のタイミング制御信号としてランダム遅延クロック信号を用いてもよい。
このように、本実施例の構成によれば、乱数に基づいて決定するランダムな初期遅延を設定したランダム遅延クロック信号を適用して処理タイミングが設定され、例えば中間データのレジスタへの格納処理、あるいはレジスタからのデータ読み取り処理が、ランダム遅延クロック信号に基づいて制御されることになる。従って、規則的なクロックによる処理が実行されないこととなり、時間軸に沿った電力消費の解析に基づく暗号解析に対する耐性を高めることが可能となり、セキュリティレベルの高い暗号処理が可能となる。
さらに、本発明の構成では、乱数信号に基づいて設定する遅延量が許容最大遅延時間以内に設定する構成としてあるので、遅延が過大になることが防止され、所定時間内の処理完了が保証され、高速処理の必要なシステムにおいても処理エラーを発生させることないシステムが実現される。
なお、実施例1で説明した変調クロック信号に対して、実施例2で説明したランダム遅延を設定する構成としてもよい。ただし、この構成の場合には、ランダム遅延によって設定される遅延時間と、変調クロック信号によって生成される遅延時間のトータルが、最大許容遅延時間Dmax以内に設定されるように制御を実行する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明は、認証処理、暗号処理を実行するデバイス、例えば暗号処理モジュールを持つICカードあるいはその他の暗号処理装置に適用可能である。本発明の構成を適用することにより、電力解析によるICモジュール内の暗号処理鍵やアルゴリズムの漏洩が困難となり、また過大な処理遅延も防止される。本発明の構成によりセキュリティレベルの高い暗号処理実行機能を持つデバイスあるいは装置が提供可能となる。
DES暗号処理の基本構成を示す図である。 ラウンド関数部の各ラウンドを構成する変換部の構成を示す図である。 F関数の構成を示す図である。 トリプルDES(Triple DES)暗号処理構成を示す図である。 Sボックス(Sbox)を持つF関数の構成および中間データ記憶部としてのレジスタを持つ暗号処理デバイスの構成例について説明する図である。 暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。 クロック信号に基づく処理タイミングの制御について説明する図である。 クロック信号の例、およびクロック信号に基づく処理タイミングの制御について説明する図である。 本発明の実施例1に係る暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。 変調クロック信号の生成例、および変調クロック信号に基づく処理タイミングの制御について説明する図である。 変調クロック信号に基づく処理タイミングの制御について説明する図である。 変調クロック信号生成部における処理手順を説明するフロー図である。 本発明の実施例2に係る暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。 ランダム遅延クロック信号の生成例、およびランダム遅延クロック信号に基づく処理タイミングの制御について説明する図である。 ランダム遅延クロック信号に基づく処理タイミングの制御について説明する図である。 ランダム遅延クロック信号に基づく処理手順を説明するフロー図である。
符号の説明
110 ラウンド関数部
111 初期置換部
112,113 変換部
114 逆置換部
120 鍵スケジュール部
121 選択置換部
122,123 鍵生成部
151 F関数部
171,172 置換部
181 Sボックス
185,186,187 DES暗号処理部
200 F関数部
201 置換部
202 鍵
203 排他論理和(XOR)部
204 Sボックス
205 置換部
206 排他論理和(XOR)部
211 Lレジスタ
212 Rレジスタ
300 ICモジュール
301 CPU(Central processing Unit)
302 メモリ
303 乱数発生器
304 送受信部
310 クロック信号生成部
500 ICモジュール
501 CPU(Central processing Unit)
502 メモリ
503 乱数発生器
504 送受信部
510 クロック信号生成部
520 乱数信号生成部
530 変調クロック信号生成部
540 カウンタ
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 乱数発生器
704 送受信部
710 クロック信号生成部
720 乱数信号生成部
730 ランダム遅延クロック信号生成部
740 初期遅延量決定部

Claims (20)

  1. 暗号処理装置であり、
    データ処理タイミング制御信号としての変調クロック信号を生成する変調クロック信号生成部と、
    前記変調クロック信号を入力し、該入力変調クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理部とを有し、
    前記変調クロック信号生成部は、乱数に基づく乱数信号に対応した変調クロック信号を生成し、前記データ処理部に対して出力する構成であることを特徴とする暗号処理装置。
  2. 前記変調クロック信号生成部の生成する前記変調クロック信号は、前記データ処理部内のメモリのクロック端子に入力され、該メモリに対するデータ格納および該メモリからのデータ読み出しタイミングの制御信号として適用する構成であることを特徴とする請求項1に記載の暗号処理装置。
  3. 前記暗号処理装置は、
    一定のクロック周期の正規クロック信号を生成するクロック信号生成部と、
    前記乱数信号の前記正規クロック信号に対する遅延量を計測するカウンタを有し、
    前記変調クロック信号生成部は、前記カウンタによって計測される遅延量が予め設定された許容最大遅延時間未満である場合は、前記乱数信号に対応した変調クロック信号を前記データ処理部に対して出力し、遅延量が予め設定された許容最大遅延時間に達した場合は、前記正規クロック信号に対応した変調クロック信号を前記データ処理部に対して出力する構成であることを特徴とする請求項1に記載の暗号処理装置。
  4. 前記データ処理部は、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定する構成であることを特徴とする請求項1に記載の暗号処理装置。
  5. 前記暗号処理装置は、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行する暗号処理装置であり、
    前記データ処理部は、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定する構成であることを特徴とする請求項1に記載の暗号処理装置。
  6. 暗号処理装置であり、
    データ処理タイミング制御信号として、ランダムな遅延が設定されたランダム遅延クロック信号を生成するランダム遅延クロック信号生成部と、
    前記ランダム遅延クロック信号を入力し、該入力クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理部とを有し、
    前記ランダム遅延クロック信号生成部は、乱数に基づいてランダムな初期遅延を設定したランダム遅延クロック信号を生成し、前記データ処理部に対して出力する構成であることを特徴とする暗号処理装置。
  7. 前記ランダム遅延クロック信号生成部の生成する前記ランダム遅延クロック信号は、前記データ処理部内のメモリのクロック端子に入力され、該メモリに対するデータ格納および該メモリからのデータ読み出しタイミングの制御信号として適用する構成であることを特徴とする請求項6に記載の暗号処理装置。
  8. 前記暗号処理装置は、
    乱数に基づく初期遅延量を決定する初期遅延量決定部を有し、
    前記初期遅延量決定部は、前記乱数に基づいて決定する初期遅延量を予め設定された許容最大遅延時間以内に設定する構成であることを特徴とする請求項6に記載の暗号処理装置。
  9. 前記暗号処理装置は、
    乱数に基づく初期遅延量を決定する初期遅延量決定部を有し、
    前記初期遅延量決定部は、前記乱数に基づく演算処理またはテーブル参照処理により初期遅延量を決定する構成であることを特徴とする請求項6に記載の暗号処理装置。
  10. 前記データ処理部は、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定する構成であることを特徴とする請求項6に記載の暗号処理装置。
  11. 前記暗号処理装置は、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行する暗号処理装置であり、
    前記データ処理部は、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定する構成であることを特徴とする請求項6に記載の暗号処理装置。
  12. 暗号処理方法であり、
    データ処理タイミング制御信号として、乱数に基づく乱数信号に対応した変調クロック信号を生成する変調クロック信号生成ステップと、
    前記変調クロック信号を入力し、該入力変調クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理ステップと、
    を有することを特徴とする暗号処理方法。
  13. 前記暗号処理方法は、さらに、
    一定のクロック周期の正規クロック信号を生成するクロック信号生成ステップと、
    前記乱数信号の前記正規クロック信号に対する遅延量を計測する遅延量計測ステップを有し、
    前記変調クロック信号生成ステップは、遅延量が予め設定された許容最大遅延時間未満である場合は、前記乱数信号に対応した変調クロック信号を前記データ処理部に対して出力するクロック信号とし、遅延量が予め設定された許容最大遅延時間に達した場合は、前記正規クロック信号に対応したクロック信号を前記データ処理部に対して出力することを特徴とする請求項12に記載の暗号処理方法。
  14. 前記データ処理ステップは、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定することを特徴とする請求項12に記載の暗号処理方法。
  15. 前記データ処理ステップは、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行するステップであり、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記変調クロック信号に従って決定することを特徴とする請求項12に記載の暗号処理方法。
  16. 暗号処理方法であり、
    データ処理タイミング制御信号として、乱数に基づくランダム初期遅延を設定したランダム遅延クロック信号を生成するランダム遅延クロック信号生成ステップと、
    前記ランダム遅延クロック信号を入力し、該入力クロック信号に基づいて処理タイミングを決定してデータ処理を実行するデータ処理ステップと、
    を有することを特徴とする暗号処理方法。
  17. 前記暗号処理方法は、さらに、
    乱数に基づく初期遅延量を決定する初期遅延量決定ステップを有し、
    前記初期遅延量決定ステップは、前記乱数に基づいて決定する初期遅延量を予め設定された許容最大遅延時間以内に設定するステップであることを特徴とする請求項16に記載の暗号処理方法。
  18. 前記暗号処理方法は、さらに、
    乱数に基づく初期遅延量を決定する初期遅延量決定ステップを有し、
    前記初期遅延量決定ステップは、前記乱数に基づく演算処理またはテーブル参照処理により初期遅延量を決定するステップであることを特徴とする請求項16に記載の暗号処理方法。
  19. 前記データ処理ステップは、暗号処理の実行に際して生成する中間データのレジスタに対する格納処理、または暗号処理の実行に際して適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定することを特徴とする請求項16に記載の暗号処理方法。
  20. 前記データ処理ステップは、複数段のラウンド関数部を適用した共通鍵暗号処理方式に従った暗号処理を実行するステップであり、前記複数段のラウンド関数部において生成する中間データのレジスタに対する格納処理、または前記複数段のラウンド関数部の処理において適用する中間データのレジスタからの読み出し処理タイミングを前記ランダム遅延クロック信号に従って決定することを特徴とする請求項16に記載の暗号処理方法。
JP2003394034A 2003-07-07 2003-11-25 暗号処理装置、および暗号処理方法 Pending JP2005045752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003394034A JP2005045752A (ja) 2003-07-07 2003-11-25 暗号処理装置、および暗号処理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003271524 2003-07-07
JP2003394034A JP2005045752A (ja) 2003-07-07 2003-11-25 暗号処理装置、および暗号処理方法

Publications (1)

Publication Number Publication Date
JP2005045752A true JP2005045752A (ja) 2005-02-17

Family

ID=34277410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003394034A Pending JP2005045752A (ja) 2003-07-07 2003-11-25 暗号処理装置、および暗号処理方法

Country Status (1)

Country Link
JP (1) JP2005045752A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174025A (ja) * 2005-12-20 2007-07-05 Sony Corp 暗号処理装置
WO2008053626A1 (fr) * 2006-10-30 2008-05-08 Sharp Kabushiki Kaisha Appareil de cryptage
JP2010011353A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd 演算処理装置
US8699884B2 (en) 2009-03-30 2014-04-15 Fujitsu Limited Optical transmission system and optical transmission method
JP2016081522A (ja) * 2014-10-10 2016-05-16 ザ・ボーイング・カンパニーThe Boeing Company メモリからの情報漏洩を低減するためのシステム及び方法
KR20180059872A (ko) * 2015-09-25 2018-06-05 제말토 에스에이 랜덤 클럭 생성기
JP2022131402A (ja) * 2021-02-26 2022-09-07 Necプラットフォームズ株式会社 検査制御装置、情報処理装置、検査制御方法及びプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174025A (ja) * 2005-12-20 2007-07-05 Sony Corp 暗号処理装置
WO2008053626A1 (fr) * 2006-10-30 2008-05-08 Sharp Kabushiki Kaisha Appareil de cryptage
JP2008113130A (ja) * 2006-10-30 2008-05-15 Sharp Corp 暗号化装置
JP2010011353A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd 演算処理装置
US8699884B2 (en) 2009-03-30 2014-04-15 Fujitsu Limited Optical transmission system and optical transmission method
JP2016081522A (ja) * 2014-10-10 2016-05-16 ザ・ボーイング・カンパニーThe Boeing Company メモリからの情報漏洩を低減するためのシステム及び方法
KR20180059872A (ko) * 2015-09-25 2018-06-05 제말토 에스에이 랜덤 클럭 생성기
JP2018528719A (ja) * 2015-09-25 2018-09-27 ジエマルト・エス・アー ランダムクロック発生器
KR102398235B1 (ko) 2015-09-25 2022-05-13 제말토 에스에이 랜덤 클럭 생성기
JP2022131402A (ja) * 2021-02-26 2022-09-07 Necプラットフォームズ株式会社 検査制御装置、情報処理装置、検査制御方法及びプログラム
JP7323202B2 (ja) 2021-02-26 2023-08-08 Necプラットフォームズ株式会社 検査制御装置、情報処理装置、検査制御方法及びプログラム

Similar Documents

Publication Publication Date Title
EP1496641A2 (en) Cryptographic processing apparatus, cryptographic processing method and computer program
EP1873671B2 (en) A method for protecting IC Cards against power analysis attacks
Gierlichs et al. Revisiting higher-order DPA attacks: Multivariate mutual information analysis
US8265273B2 (en) Encryption device using mask value to convert plain text into encrypted text
US7659837B2 (en) Operation processing apparatus, operation processing control method, and computer program
JP2007195132A (ja) 暗号処理装置
Meijer et al. Ciphertext-only cryptanalysis on hardened Mifare classic cards
CN115643003B (zh) 用于侧信道分析的方法及装置
JP2004212828A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
Homma et al. Electromagnetic information leakage for side-channel analysis of cryptographic modules
Hnath et al. Differential power analysis side-channel attacks in cryptography
JP2011101413A (ja) 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
JP2005134478A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005045752A (ja) 暗号処理装置、および暗号処理方法
JP2005031471A (ja) 暗号処理装置、および暗号処理方法
JP2006054568A (ja) 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム
JP2007174024A (ja) 暗号処理装置
JP4935229B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP2006025366A (ja) 暗号化装置及び半導体集積回路
JP2005134477A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2002528754A (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Li et al. Enhanced correlation power analysis attack against trusted systems
KR20170108595A (ko) 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법
Savitha et al. Implementation of AES algorithm to overt fake keys against counter attacks