JP2002542504A - 同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置 - Google Patents

同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置

Info

Publication number
JP2002542504A
JP2002542504A JP2000611431A JP2000611431A JP2002542504A JP 2002542504 A JP2002542504 A JP 2002542504A JP 2000611431 A JP2000611431 A JP 2000611431A JP 2000611431 A JP2000611431 A JP 2000611431A JP 2002542504 A JP2002542504 A JP 2002542504A
Authority
JP
Japan
Prior art keywords
secret
electronic device
cryptographic
bits
conversion
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.)
Granted
Application number
JP2000611431A
Other languages
English (en)
Other versions
JP4153665B2 (ja
Inventor
パタラン,ジヤツク
グバン,ルイ
Original Assignee
ブル・セー・ペー・8
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 ブル・セー・ペー・8 filed Critical ブル・セー・ペー・8
Publication of JP2002542504A publication Critical patent/JP2002542504A/ja
Application granted granted Critical
Publication of JP4153665B2 publication Critical patent/JP4153665B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

(57)【要約】 本発明は、同一の秘密鍵Ksの暗号アルゴリズムを使用して、1つまたは複数の電子装置を保護する方法に関し、計算する方法が、各電子装置および各秘密鍵に対して、1つまたは複数の電子装置の秘密ゾーンに蓄積された秘密データDsに依存することを特徴とする。

Description

【発明の詳細な説明】
【0001】 本発明は、同一の秘密鍵暗号アルゴリズムを使用する1つまたは複数の電子装
置(コンピュータシステム)の安全化方法と、この方法の使用および電子装置と
に関する。より詳しくは、計算を実施する方法を秘密データに依存させることを
めざしており、秘密データは、介在する電子装置もしくは使用される秘密鍵に応
じて異なったものにすることができる。本発明の目的は、電子装置が、いわゆる
DKDPA(「Differential Key Differential
Power Analysis」)といった一定の物理的な攻撃タイプに対し
て耐性を失わせないようにすることにある。DKDPAは、異なる秘密鍵を用い
て行われる計算を複数回実行する間に、1つまたは複数の電子装置の電力消費量
を調べて、秘密鍵に関する情報を得ようとするものであって、(たとえば攻撃者
が、これらの計算の少なくとも1つに対して秘密鍵を自分で設定することができ
た場合)少なくとも1つの秘密鍵が攻撃者により知られてしまう。
【0002】 ここで考慮された暗号アルゴリズムは、入力情報の関数として出力情報を計算
するために秘密鍵を使用する。これは、暗号化操作、復号化操作、または署名操
作あるいは署名の確認操作、認証操作または破棄操作に関する。暗号アルゴリズ
ムは、入力および出力を知った攻撃者が、実際には、秘密鍵そのものについて如
何なる情報も引き出せないように構成される。
【0003】 従って、「秘密鍵アルゴリズム」すなわち「対称アルゴリズム」といった表現
で一般に示された分類よりも広い分類に関与する。特に、本特許出願に記載され
たものは全て、「公開鍵アルゴリズム」すなわち「非対称アルゴリズム」と呼ば
れるアルゴリズムにも適用される。非対称アルゴリズムは、事実、公開鍵ともう
1つの秘密鍵との2つの鍵を含んでおり、攻撃の対象となる後者について以下に
説明する。
【0004】 電力解析(「Power Analysis」)型の攻撃は、Paul Ko
cherおよびCryptographic Research(Confer
document Introduction to Differenti
al Power Analysis and Related Attack
s by Paul Kocher,Joshua Jaffe,and Be
njamin Jun, Cryptography Research,87
0 Market St.,Suite 1008,San Francisc
o,CA94102;下記のURLアドレスにおけるHTML文書版: http://www.cryptography.com/dpa/tec
hnical/index.html を資料として本出願に挿入)により開発されたものであり、実際には、攻撃者が
、計算の実行時に、単なる入出力データ、たとえばマイクロコントローラの電力
消費量とか、回路から放出される電磁放射線とかいったデータ以外の情報を収集
できると確認することから出発している。
【0005】 電力差分解析(DPA「Differential Power Analy
sis」)は、この同一の秘密鍵を用いた多数の計算で実施されるエネルギー消
費量の測定結果を統計的に分析して、電子装置に含まれる秘密鍵についての情報
を得ることを可能にする攻撃である。
【0006】 限定的ではない例として、DES(Data Encryption Sta
ndard)アルゴリズムの場合を考慮する。このアルゴリズムは、以下の資料
の1つに記載されている。
【0007】 FIPS PUB 46−2, Data Encryption Stan
dard 1994; FIPS PUB 74,Guidelines for Implemen
ting and Using the NBS Data Encrypti
on Standard,1981; ANSI X3.92,American National Standa
rd, Data Encryption Algorithm 1981; ISO/IEC 8731:1987,Banking−Approved
Algorithms for Message Authenticatio
−Part 1:Data Encryption Algorithm(DE
A)。
【0008】 あるいはまた以下の著書に記載されている。 Bruce Schneier
,Applied Cryptography,第2版, John Wile
y&Sons,1996,270ページ。
【0009】 上記の文献は、資料として本出願に挿入する。 DESアルゴリズムは、図2
Aに示したような、「ラウンド」と呼ばれる16ステップで展開される。16個
のラウンドの各々で、変換Fが、第1のラウンドで入力メッセージ(E)の半分
(R)を構成する32ビット(R)で実施される。各ラウンドでは、32ビ
ットの暗号化情報から形成される一部(R)が、32ビットの暗号秘密鍵(K
s)からなる一部(K)と関数Fで組み合わされる。この関数Fは、各ラウン
ドで、6ビットから4ビットへの非線形変換を8回使用する。これはS、S 、...、S(図1b、2b)と示され、「箱S」と呼ばれる符号化テーブル
において、それぞれ符号化されて記憶される。これらの8個の箱Sは、全てのカ
ードまたは全ての電子装置に対して同じである。ただ、暗号鍵だけが、カードあ
るいは電子装置間で異なる。各箱Sは、4個の1ビット列×64(2)行を備
えるテーブルである。勿論、これらのテーブルは、場所を節約できるようにする
ように違ったやり方でメモリに配置してもよい。
【0010】 DESアルゴリズムの構成により、図2Bでは、32個の構成ビットの情報(
)に対して関数Fが実施する変換Fが、常に以下のカテゴリーの1つに入れ
られることが分かる。
【0011】 −複数ビットのRを置換し、次いで48ビットにRを拡大して、情報R ’を得る。
【0012】 −鍵または副鍵だけに依存する変数Kで、R’を排他的ORして、48ビ
ットの結果R”を得る。
【0013】 −異なる6個の箱Sを、R”を構成する6ビットの各部分へ適用することに
より、非線形変換する。
【0014】 −8個の箱S(S〜S)からなる集合の32個の出力ビットについて、置
換Pを行う(この置換は、DES標準により規定されて課される)。
【0015】 尚、以下の文章中では記号
【0016】
【数1】 は、特に断りのない限り、○+と記す。
【0017】 関数Fの実施により得られる結果は、排他的ORで、図2Aの式R=Ri− ○+F(Ri−1,Ki)を満たすように、他の32ビットのメッセージまた
はステップi−2で供給される32ビットの結果と組み合わされる。
【0018】 DESアルゴリズムに対するDPAタイプの攻撃は、DESに対して次のよう
に実施可能である。
【0019】 第1ステップ: DESアルゴリズムの計算1000回に対して、第1のラウ
ンドDESの電力消費量を測定する。こうした1000回の計算の入力値を、E
[1]、...、[E1000]と記す。計算時に測定された電力消費量の対応
する1000個の曲線をC[1]、...、[C1000]と記す。また、10
00個の電力消費量曲線の平均曲線CMを同様に計算する。
【0020】 第2ステップ: たとえば、第1のラウンドの時に、第1の箱Sの第1の出力
ビットに注目する。このビットの値をbと記す。bは、6ビットの秘密鍵だけに
依存することが容易に分かる。攻撃者は、関与する6ビットを仮定する。これら
の6ビットおよびE[i]から、bに対して期待される理論上の値を計算する。
これにより、1000個の入力E[1]、...、E[1000]を、b=0の
カテゴリーとb=1のカテゴリーの2つのカテゴリーに分けることができる。
【0021】 第3ステップ: 第1のカテゴリーすなわちb=0の入力に対応する曲線の平
均値CM’を保持する。CMとCM’の差が著しい場合、6ビットの鍵に対して
考慮された値は正しいものとみなされる。統計的な意味で、CMとCM’に著し
い差がない場合、すなわち、測定ノイズの標準偏差を大きく超える差がない場合
、6ビットに対して別の選択肢で第2ステップをやり直す。
【0022】 第4ステップ: 第2の箱S、次いで第3の箱、...、第8の箱Sまで、箱
から送られるターゲットビットbで、第2ステップおよび第3ステップを繰り返
す。従って、最終的には48ビットの秘密鍵が得られる。
【0023】 第5ステップ: 残りの8個のビットは、網羅的なサーチにより見つけること
ができる。
【0024】 この攻撃は、各命令の個々の電力消費量についても、また各命令の時間におけ
る位置についても何の知識も必要としない。攻撃者が、アルゴリズムの出力と、
対応する電力消費曲線とを知っていると仮定した場合も同様に、この攻撃が適用
される。こうした攻撃は、単に、次のような根本的な仮定に基づいているだけで
ある。
【0025】 根本的な仮定: アルゴリズムの計算中に現れる中間変数が存在し、実際には
32ビット未満のいくつかの鍵のビットを知ることにより、2個の入力または2
個の出力が、この変数に対して同じ値を与えるか否か判断することができる。
【0026】 DES等の箱Sを使用する全てのアルゴリズムが、潜在的にはDPAで損傷さ
れうるが、これは、通常の実施形態が一般に上記の仮定の範囲に留まっているか
らである。
【0027】 高レベル電力差分解析(HO−DPA「High−Order Differ
ential Power Analysis」)と呼ばれる攻撃は、上記のD
PA攻撃を一般化したものである。この攻撃は、複数の異なる情報源を使用可能
であす。すなわち、電力消費量に加えて、電磁放射線や温度等の測定を実施した
り、単なる平均概念よりもずっと複雑な統計処理、(上記のビットbを一般化し
た)初歩的でない中間変数を使用したりすることができる。しかしながら、この
攻撃は、DPAと同じ根本的な仮定に全く基づいている。
【0028】 DPAまたはHO−DPA攻撃の危険性をなくすための1つの解決方法は、秘
密鍵Ksによる暗号計算プロセスに対して、前記根本的な仮定が検証されないよ
うに、アルゴリズムの実施形態を修正することからなる。それは、計算された中
間変数のどれもが、秘密鍵の容易にアクセス可能な部分集合の知識に依存しない
からである。
【0029】 このため、第1に、暗号計算プロセスは、電子装置内で、並列に作動される複
数の異なる計算プロセス部分PPC〜PPC(図3)に分割され、次いで第
2に、電子装置内で、分割されないときに暗号計算によって得られる値に対応す
る最終値Vを、前記異なる計算プロセス部分PPC〜PPCによって得られ
る部分中間結果v1〜vkから再生する。
【0030】 こうした分割は、計算中に介在して入力(または出力)データに依存する各中
間変数vを、k個の変数v、v、...、vに代え、v、v、...
、vが、必要に応じてvを再生できるようにする修正計算アルゴリズムから構
成される。より詳しくは、これは、v=f(v,v,...,v)である
ようにvを決定可能な関数fが存在し、修正アルゴリズムによって実施される分
割が、この関数を満たすことを意味する。しかも、fは、好適には次のような第
1の条件を満たすものとする。
【0031】 条件1: 指数iが(広い意味で)1〜kに含まれる。値vを知っても、実際
には、式f(v,...,v)を満たす(k−1)項組(v,...,v i−1 ,vi+1,...,v)が存在するような値viの集合に関する情報
を決して導き出すことはできない。
【0032】 その場合には、入力(または出力)データに依存する各中間変数vを、k個の
変数v、v、...、vに代えることによって、アルゴリズムを「翻訳」
する。
【0033】 修正アルゴリズムの最大の安全性を、新しい形で補償するために、関数fにつ
いて以下の追加条件(条件2)を課す。
【0034】 条件2: 関数fは、一般にvについて実施される変換の代わりに、計算中に
、v、...、またはvについて実施される変換が、vを計算し直さな
くてもインプリメント可能であるように構成する。
【0035】 DESアルゴリズムの例を再度挙げる。上記の方法を具体的に実施するには、
修正計算アルゴリズムDESを構成して、計算中に介在して入力または出力デ
ータに依存する各中間変数vを、たとえば2個の変数v、vに分割する(k
=2)。上記の例1の関数f(v,v)=v=v○+vは、条件1の構
成を満たすものとみなされる。DESアルゴリズムの構成により、vについて行
われる変換が、常に次の5つのカテゴリーの1つに入ることが容易に認められる
【0036】 −数ビットのvの置換 −数ビットのvの拡大 −同じタイプの別の変数v’によるvの排他的OR −鍵または副鍵だけに依存する変数cによるvの排他的OR −箱Sによるvの非線形変換 最初の2つのカテゴリーは、変数vのビットについての線形変換に対応する。
従って、条件2は、こうした線形変換に対して、検証がきわめて簡単であり、一
般にvに対して実施される変換の代わりに、v、次いでvを置換もしくは拡
大するだけで十分である。変換前に真であった関係式f(v,v)=vは、
変換後も真であり続ける。
【0037】 同様に、第3の場合は、計算v”=v○+v’を、v”=v○+v’
v”=v”○+v’とに代えるだけでよい。式f(v,v)=vと、f
(v’,v’)=v’から、f(v”,v”)=v”が適切に得られ、
条件2がさらに検証される。
【0038】 鍵または副鍵だけに依存する変数cによるvの排他的ORに関しては、条件2
もまたすぐに満たすことができる。すなわち、v○+cを、v○+cまたはv ○+cに代えるだけでよく、これによって条件2が満たされる。
【0039】 さらに、図4Aに示されているように、この例では、6ビットの入力を受信し
4ビットの出力を生成する箱Sとして構成された、所定の従来技術の非線形変換
v’=S(v)の代わりに、電子装置は、それぞれが12ビットから4ビットへ
のテーブルの形態をとることができる新しい2個の箱Sによって、変形実施形態
で(v’,v’)=S’(v,v)の変換を行う。等式f(v’,v
)=v’を保証するには、以下の選択をするだけで十分である。
【0040】
【数2】 ここでAは、12ビットを4ビットにする任意の秘密変換を示す。第1の(新し
い)箱S(図4bのS’)は、(v,v)にA(v,v)を関連付け
る変換テーブル(v,v)→A(v,v)に対応し、第2の(新しい)
箱S(S’)は、(v,v)にS(v○+v)○+A(v,v
を関連付ける変換テーブル(v,v)→S(v○+v)○+A(v
)に対応する。任意関数Aの存在により、条件1を保証できる。また、テー
ブルの使用によりv○+vを計算する必要がないので、条件2を満たすこと
ができる。
【0041】 変換または転換テーブルは、電子装置がマイクロ計算機カードから構成される
場合、マイクロ計算機カードのROMに記憶可能である。
【0042】 かくして、DES等の標準の暗号計算プロセスにより実施される非線形変換タ
イプの計算ステップの場合、図4Cに示したように、k個の部分に分割されるこ
とができる。nビットの変換出力を、mビットの入力の関数であるアドレスで読
み込む変換テーブルによって記述されたmビットからnビットへの非線形変換を
用いた従来の暗号計算プロセスに比べて、修正暗号計算アルゴリズムDES
、分割のない時に入力変数Eの役割を果たすmビットの中間変数に実施される従
来の暗号計算プロセスのmビットからnビットへの各非線形変換を、mビットの
部分中間変数v〜vの集合kの部分中間変数にそれぞれ実施される、複数k
個のkmビットからnビットへの部分非線形変換に代える。本発明が目的とする
方法の特に注目すべき特徴によれば、こうした部分非線形変換が、k個の部分変
換テーブルによって記述および構成され、各テーブルのnビットの出力それぞれ
が、この変換の変数v’、変数v’、...変数v’をそれぞれ構成し、
k個のkmビット入力群のうち、1つの入力群の関数であるアドレスで読み込ま
れる。
【0043】 図4Cに関して示した上記DESの例では、k=2、n=4、m=6である。
【0044】 第1の変形実施形態によれば、ROMが大型化するという理由から、DESの
従来の記述の8個の各箱Sに対して、同じ任意関数Aを完全に使用可能であり、
それによって、新しい蓄積箱Sを、16個の代わりに9個だけにすることができ
る。
【0045】 第2の変形実施形態(以下、変形実施形態2という)について、図4Dを参照
しながら説明する。
【0046】 箱Sを蓄積するのに必要なROMのサイズを低減するために、箱Sとして与え
られた当初のインプリメンテーションの各非線形変換v’=S(v)(DESの
例では、6ビットの入力が受信され、4ビットの出力が出力される)の代わりに
、6ビットから4ビットへのテーブルをそれぞれ含む2個の箱S(S’、S’ )により、この第2の変形実施形態で、変換(v’,v’)=S’(v ,v)を行う以下の方法を同様に使用することができる。当初使用されたv’
=S(v)の計算は、修正アルゴリズムでは、以下の2つの計算に代えられる。
【0047】
【数3】 これは、6ビットから6ビットへの全単射秘密関数φを使用する。また
【0048】
【数4】 ここで、Aは、6ビットを4ビットにする任意の秘密変換を示す。第1の(新
しい)箱S(図4DではS’)は、vをA(v)に関連付ける変換テーブ
ルv→A(v)に対応し、第2の(新しい)箱S(図4DではS’)は、
v0をS(φ−1(v))○+A(v)に関連付ける変換テーブルv→S
(φ−1(v))○+A(v)A(v)に対応する。構成上、等式f(v
,v’)=v’が常に得られる。任意関数Aにより、条件1を保証できる
。テーブルの使用により、φ−1(v)=v○+vを計算する必要はない
【0049】 図4Eでは、DESのような標準の暗号計算プロセスの範囲で使用される非線
形タイプの対応計算ステップを、変形実施形態2に従って、本発明が目的とする
方法に修正したものを示した。nビットの出力を、mビットの入力の関数である
アドレスで読み込む変換テーブルにより記述されたmビットからnビットへの非
線形変換に対する入力変数Eに実施されたk個の部分への分割に加えて、暗号計
算プロセスは、従来の計算プロセスの入力変数Eの役割を果たすmビットの中間
変数に実施されるmビットからnビットへの各非線形変換を、mビットの部分中
間変数v1〜vkの集合kに実施されるkmビットからknビットへの部分非線
形変換に代えることによって修正される。こうした部分非線形変換は、k個のk
mビットからnビットへの変換テーブルにより記述および構成され、変換テーブ
ルの各入力は、j∈[1,k]のとき、式φof(v,...,v)に従
って、部分中間変数の関数f(v,...,v)に、秘密全単射関数φ
適用して得られる値を受信する。上記の式φof(v,...,v)の写
像は、結果値の直接見積もりによって実施され、結果値を1〜kの対応する変換
テーブルの入力に入力することにより、mビットの入力の関数であるアドレスで
、n個の変換出力ビットv’またはv’または...v’を読み込むこと
ができる。
【0050】 前記第1の実施例と同様に、図4Eを参照しながら、変数2は、k=2、m=
6、n=4であるものとする。
【0051】 さらに、簡略化した例では、全単射関数φ〜φが同じである。
【0052】 条件2を満たすために、全単射変換φまたは全単射関数φ〜φを選択して
、v=φ(v○+v)の計算が、v○+vを計算し直さずに行えるよ
うにする。
【0053】 関数φの2つの選択例を以下に示す。
【0054】 例1: 線形全単射φ φに対して、6ビットから6ビットへの全単射秘密線形関数を選択する。この
ような選択の範囲では、6ビットにおける値の集合が、2個の要素を持つ有限体
における寸法6のベクトル空間であるものとみなす。実際には、φを選択す
ることは、係数が0または1である寸法6×6の可逆的な任意マトリクスを選択
することに帰す。このようにφを選択することにより、条件2が満たされること
が容易に分かる。事実、φ(v○+v)を計算するには、φ(v)、次い
でφ(v)を計算してから、さらに得られた2つの結果の「排他的OR」を計
算するだけでよい。
【0055】 たとえば、マトリクス
【0056】
【数5】 は、可逆的である。これは、6ビットから6ビットへの線形全単射φに対応し、
以下によって規定される。
【0057】
【数6】 φ(v○+v)を計算するために、v=(v1,1,v1,2,v1, ,v1,4,v1,5,v1,6)およびv=(v2,1,v2,2,v ,3 ,v2,4,v2,5,v2,6)と記す場合、順次、以下を計算する。
【0058】
【数7】
【0059】
【数8】
【0060】 次に、得られた2つの結果の「排他的OR」を計算する。
【0061】 例2: 二次の全単射φ φに対して、6ビットから6ビットへの二次の全単
射秘密関数を選択する。「二次」という表現は、ここでは、関数φの出力値の各
ビットが、有限体Fの6個の要素で識別される6個の入力ビットの二次の多項
式関数によって与えられる。実際には、式φ(x)=t(s(x))によって
定義される関数φを選択可能であり、ここでsは、Lに対する(Fの全単
射秘密線形写像であり、tは、(Fに対するLの全単射秘密線形写像であ
る。Lは、有限体F2の6次の代数外延(algebraic extensi
on)を示す。この関数φの全単射特徴は、a→a5が外延Lへの全単射(従っ
て逆は、b→b38)であることによって生ずる。さらに条件2を満たすには、
次のように表すだけでよい。
【0062】
【数9】 ここで、関数ψ(x,y)=t(s(x)・s(y))である。
【0063】 たとえば、F2[X]/(X+X+1)でXを識別し、各マトリクスのsお
よびtが、F2に対するLの基(1、X、X2、X3、X4、X5)に対して、
またF2に対する(Fの標準基に対して、
【0064】
【数10】 であるとき、以下のような6ビットから6ビットへの二次の全単射φが得られる
【0065】
【数11】 φ(v○+v)を計算する場合、12ビットから6ビットへのψ(x,y
)=t(s(x)4/s(y))を使用し、以下の規則により、12ビットの入
力に応じて6ビットの出力が得られる。
【0066】
【数12】 これらの式を用いることにより、以下を計算する。
【0067】
【数13】 次に、得られた4個の結果の「排他的OR」を計算する。
【0068】 第3の変形実施形態では、同じく箱Sを蓄積するのに必要なROMのサイズを
低減するために、上記の2つの変形実施形態(変形実施形態1および2)の考え
方を同時に適用することができる。すなわち、箱Sとして与えられた各非線形変
換の新たなインプリメンテーションにおいて、同じ秘密全単射φ(6ビットから
6ビットに)および同じ任意の秘密関数A(6ビットから6ビットに)によって
、変形実施形態2を用いる。
【0069】 DPA攻撃をかわすための前述の解決方法の欠点は、この解決方法が、DKD
PA攻撃に弱いことにある。
【0070】 上記の安全化方法の使用により、DPAまたはHO−DPA攻撃を操作不能に
することができる。しかしながら、秘密鍵による暗号アルゴリズムの新しい実施
形態は、従来のDPA攻撃がうまくいかなくても、別の攻撃に対して弱い場合が
ある。以下、この別の攻撃をDKDPA(「Differential Key
and Differential Power Analysis」)と呼
ぶ。次に、この攻撃の一般原理について説明する。
【0071】 攻撃者は、少数の電子装置を有し、各装置に対して、それが使用する暗号アル
ゴリズムの秘密鍵を知っている。各電子装置に対し、攻撃者は既に秘密鍵を知っ
ているが、あたかも秘密鍵を知らないかのようにDPA攻撃を実施する。前述の
原理に従って、6ビットの秘密鍵を仮定し、これらの6ビットの各選択肢に対し
て、平均消費曲線の差を示す64個の曲線を得る。
【0072】 幾つかのアルゴリズムの実施形態では、これらの6ビットの秘密鍵の幾つかの
選択肢に対して、DPAが異例の現象を示すことがある(すなわち、64個の曲
線の内の1つに対して通常とは異なる頂点または空洞がある)。もちろん、特定
の6ビットの秘密鍵は、本物の秘密鍵に対応しないが、この6ビット(K’と記
す)と、本物の秘密鍵に対応する6ビット(Kと記す)との「排他的OR」は、
しばしば定数Cになり、すなわち、攻撃者が秘密鍵を知っている各電子装置に対
して、常にK○+K’=Cになる。
【0073】 もし、その通りであれば、攻撃者は、未知の本物の秘密鍵のビットをたやすく
見つけることができる。つまり、標準DPA攻撃を実施し、その後、通常とは異
なる曲線を示す6ビットの特定の選択肢K’を記し、最後に、K=K’○+Cを
計算することによって、Kを導き出す。Cは、前述と同様に得られる。
【0074】 本発明の目的の1つは、電子装置のDKDPA攻撃に対する上記のような弱さ
を改善することにある。
【0075】 非常に綿密な調査によれば、上記のDKDPAタイプの攻撃は、1つまたは複
数の電子装置によって実施される暗号計算プロセスの実施形態が、検討される電
子要素や、暗号プロセスが用いる秘密鍵とは無関係に、常に同じになることによ
って可能になる。
【0076】 本発明が対象とする方法は、秘密鍵による暗号計算プロセスを用いる電子装置
またはシステムのDKDPA攻撃の危険性をなくすことを目的とする。
【0077】 本発明が対象とする1つまたは複数の電子装置の安全化方法は、暗号秘密鍵に
よる暗号計算プロセスを実施し、暗号秘密鍵による暗号計算プロセスの実施形態
が、秘密データに依存することを特徴とする。
【0078】 別の特徴によれば、各電子装置および各秘密鍵に対して、前記暗号計算を行う
ために前記秘密データを使用する方法は、公開式である。
【0079】 別の特徴によれば、前記電子装置によって使用される秘密データが、少なくと
も全部で2個である。
【0080】 別の特徴によれば、各電子装置が、少なくとも1つのいわゆる固有の秘密デー
タを含む。
【0081】 従って、本発明の別の目的は、1つの秘密鍵または別の秘密鍵の使用時に、電
子装置間で、または同一の電子装置に対して、簡単に違ったものにすることがで
きる暗号計算の実施方法にある。
【0082】 この目的は、各電子アセンブリにおいて、この電子装置によって使用される様
々な秘密鍵に対応する前記秘密データが、少なくとも全部で2個であることによ
って達せられる。
【0083】 別の特徴によれば、各電子装置において、前記暗号計算によって使用される各
秘密鍵に、固有の秘密データの1つが対応する。
【0084】 別の特徴によれば、nビットの変換出力を、kmビットの入力の関数であるア
ドレスで読み込むk個の変換テーブルによって、kmビットからknビットへの
非線形変換を記述し、この変換を用いた暗号計算プロセスを使用する方法が、各
非線形変換に対して、前記k個のテーブルが、秘密データの一部をなすことを特
徴とする。
【0085】 別の特徴によれば、mビットの値の秘密全単射関数(φ)を当てはめて得られ
るアドレスでnビットの変換出力を読み込み、非線形変換のkmビットの入力の
公開関数の適用によりmビットの値そのものを得るk個の変換テーブルによって
、kmビットからknビットへの非線形変換を記述し、この変換を用いた暗号計
算プロセスを使用する1つまたは複数の電子装置の安全化方法が、各非線形変換
に対して、k個のテーブルが秘密データの一部をなすことを特徴とする。
【0086】 別の特徴によれば、各非線形変換に対し、秘密全単射関数もまた、秘密データ
の一部をなす。
【0087】 別の特徴によれば、秘密データが、マイクロ計算機カードのEEPROMに蓄
積される。
【0088】 別の特徴によれば、変換テーブルの計算プログラムを各電子装置に記憶して所
定の事象により始動することによりテーブルを計算し、これらのテーブルの全部
または一部を秘密データに記憶する。
【0089】 別の特徴によれば、所定の事象が、カウンタが所定値を超過することである。
【0090】 本発明の他の目的は、この方法の使用にある。
【0091】 この目的は、前記方法が、DES、トリプルDES、RSAアルゴリズムによ
ってサポートされる暗号計算プロセスを安全化するために使用されることによっ
て達せられる。
【0092】 本発明の最後の目的は、DPAおよびDKDPA攻撃に強い1つまたは複数の
電子装置を定義することにある。
【0093】 この目的は、従来の暗号アルゴリズムの計算段階に従い、記憶手段の秘密ゾー
ンで得られる暗号秘密鍵を使用する修正暗号アルゴリズムの記憶手段と、この修
正暗号アルゴリズムの実行手段とを含み、また、従来のアルゴリズムの計算段階
に必要な各中間変数を複数(k)の部分中間変数に代える第1の秘密手段と、非
線形変換テーブルをこれらの部分中間変数の各々に実施する第2の手段と、部分
変数で得られる結果から従来の暗号アルゴリズムの使用に対応する最終結果を再
生する第3の秘密手段とを含むことを特徴とする電子装置によって達せられる。
【0094】 別の特徴によれば、電子装置の秘密データが、少なくとも1つの部分秘密変数
を構成する少なくとも1つの第1の任意の変数vを含んでおり、修正アルゴリ
ズムが、中間変数vと1つまたは複数の部分秘密変数vとに第1の秘密関数を
実施することによって、少なくとも1つの別の部分変数、たとえばvを決定す
る。
【0095】 別の特徴によれば、修正アルゴリズムは、任意抽出によって形成される少なく
とも1つのテーブルAを秘密データDsに記憶し、計算に必要な他のテーブルを
不揮発性メモリに記憶するようなテーブルの使用によって、部分変数v、v に非線形変換を実施し、従来のアルゴリズムの様々な計算順序が、部分変数に毎
回テーブルを使用することによって行われ、アルゴリズムの最終順序が、第2の
秘密関数に従って部分変数を組み合わせた結果を計算する。
【0096】 別の特徴によれば、修正アルゴリズムの第1の秘密手段が、部分中間変数と各
中間変数(v)とを結合する関数fから構成されており、こうした中間変数の値
を知っていても、式f(v,...,v,...,v)=vを満たす(k
−1)項組(v,...,vi−1,vi+1,...,v)が存在するよ
うな特定の部分値vの集合を導き出すことができないようにする。
【0097】 別の特徴によれば、修正アルゴリズムの第2の手段が、k個の部分変換テーブ
ルから構成され、k個の部分変換テーブルのうち、k−1個の部分変換テーブル
が任意の秘密変数を含む。
【0098】 別の特徴によれば、修正アルゴリズムの第2の手段が、k個の変換テーブルを
含んでおり、各変換テーブルが、式φof(v,...,v)、j∈[1
,k]に従って部分中間変数の前記関数f(v,...,v)に秘密全単射
関数φを実施して得られる値を入力として受け、こうした写像φof(v ,...,v)が、結果値の直接見積もりによって行われ、この結果値を変換
テーブルの入力に入力することによって、一個のアドレスでnビットの変換出力
を読み込むことができ、前記変換出力が、mビットの入力の関数である。
【0099】 別の特徴によれば、修正アルゴリズムの第2の手段が、分割されないときに従
来の暗号計算プロセスの中間変数に実施される各非線形変換を、部分中間変数の
集合に実施されるkmビットからknビットへの部分非線形変換に代え、(k−
1)nビットの前記変換出力をkmビットの入力の多項式関数として計算し、出
力ビットの残りのnビットが、km個の入力ビットの関数であるアドレスで前記
出力ビットの残りのnビットを読み込む変換テーブルの読み込みによって得られ
る。
【0100】 別の特徴によれば、暗号計算プロセスを複数の異なる計算プロセス部分に分割
して得られる各部分で複数の操作が修正アルゴリズムにより実施され、これらの
操作が、逐次的に実行される。
【0101】 別の特徴によれば、暗号計算プロセスを複数の異なる計算プロセス部分に分割
して得られる各部分で複数の操作が実施され、前記操作が重なって実行される。
【0102】 別の特徴によれば、暗号計算プロセスを複数の異なる計算プロセス部分に分割
して得られる各部分で複数の操作が実施され、前記操作は、マルチプログラミン
グの場合に同時に実行される。
【0103】 別の特徴によれば、暗号計算プロセスを複数の異なる計算プロセス部分に分割
して得られる各部分で複数の操作が実施され、前記操作は、異なるプロセッサで
並列作業することにより同時に実行される。
【0104】 別の特徴によれば、電子装置が、各電子装置に記憶された変換テーブルの計算
プログラムと、テーブルの計算を所定の事象によって始動し、秘密データにこれ
らのテーブルの全部または一部を記憶する手段とを含む。
【0105】 別の特徴によれば、カウンタは、所定値を超過したとき、テーブルの計算を始
動する所定の事象を構成するために、各暗号計算におけるインクリメント値を記
憶する。
【0106】 本発明の他の特徴および長所は、添付図面に関してなされた説明を読めば、い
っそう明らかになるであろう。
【0107】 以下、本発明は、図1に関して、図4Fに示した従来技術の実施形態と比較し
ながら説明する。
【0108】 電子装置は、たとえばサーバまたは端末等の広範な装置に設置される安全電子
モジュールから構成可能である。この電子装置は、1つまたは複数のICを、広
範な装置あるいはまたチップカードに組み込んで構成することができる。チップ
カードは、有接点もしくは無接点のコネクタにより広範な装置に接続されるマイ
クロプロセッサまたはマイクロコントローラを含む場合、一般に「スマートカー
ド」と呼ばれる。たとえばDESのような、標準の暗号アルゴリズムは、電子装
置(1)のたとえばROM(7)型の不揮発性メモリに設置可能である。この電
子装置(1)のマイクロプロセッサ(2)は、電子装置を様々なメモリに接続す
るバス(4)により、ROM(7)に含まれる命令を読み込みながら、前記アル
ゴリズムを実行し、それによって、図2A、2Bに関して説明するように、電子
装置で、たとえばEEPROM型のプログラマブル不揮発性メモリ(6)の秘密
ゾーン(60)に含まれる暗号秘密鍵(Ks)と組み合わせて、暗号方法の複数
段階を実行する。このとき、暗号化される情報Eは、たとえばRAM型の不揮発
性メモリ(5)に瞬間的に記憶される。RAM、ROM、EEPROMを備えた
単一ICに結合されるマイクロプロセッサは、マイクロコントローラまたはマイ
クロ計算機と称される装置を構成する。マイクロプロセッサは、入出力回路(3
)を介して広範な装置と対話し、不揮発性メモリの秘密ゾーン(60)への如何
なるアクセスも、マイクロプロセッサ(2)以外の回路によって許可されること
はない。マイクロプロセッサ(2)だけが、秘密鍵(Ks)を読み込んで、図2
A、2Bに記載された従来の暗号化方法に従って秘密鍵を使用することにより、
暗号化メッセージMc=DES(E,Ks)を生成する。
【0109】 本発明は、暗号を使用するアルゴリズムを修正して、従来のアルゴリズム(D
ES)の計算プロセスと同じ段階を尊重する修正アルゴリズム(DES)を構
成することからなる。かくして、DESの場合、修正アルゴリズムは、標準のD
ESの暗号計算プロセスを、並列に作動されて従来の暗号計算とは異なる中間部
分結果値(部分変数と呼ばれる)を用いた複数の異なる計算プロセス部分に分割
する。こうした分割は、電子装置(1)のメモリ(6)の秘密ゾーン(60)に
含まれる秘密データ(Ds)を使用して実行される。修正アルゴリズムは、Mc
=DES(E,Ks,Ds)=DES(E,Ks)のように、中間部分結果値
から最終値を再生することによって結果Mcを生成する。この結果は、従来のア
ルゴリズムによって得られる結果に等しい。このように得られる電子装置は、従
来の暗号化を行う電子装置(以下、従来装置とする)と完全に互換性があるので
、従来装置が攻撃を受けるおそれのある用途または場所で従来装置の代わりに使
用することができ、安全化した場所にある装置と交換する必要がない。
【0110】 こうした修正アルゴリズムは、従来のアルゴリズムの各中間変数を、複数の部
分中間変数に代える秘密手段と、これらの部分中間変数それぞれに非線形変換テ
ーブルを実施する手段と、部分変数で得られる結果から従来の暗号アルゴリズム
の使用に対応する最終結果を再生する秘密手段とを含む。かくして、不正行為者
は、部分変数と最終結果との関係を知ることはなくなるので、DPA攻撃による
暗号秘密鍵(Ks)を発見できなくなる。
【0111】 たとえば、前述のDESアルゴリズムの安全化方法の場合、修正暗号計算プロ
セスの実施形態を、kmビットからknビットへの各非線形変換の計算に対して
用いられるk個の変換テーブルに依存させる。このk個のテーブルが、秘密デー
タ(Ds)を構成する。さらに、変形実施形態2、3の場合、暗号計算プロセス
の実施形態を、同じく秘密データの一部をなす秘密全単射写像のデータφ、φ 、...、φに依存させる。
【0112】 このようにして、修正アルゴリズムは、必要だと判明した計算段階で、秘密デ
ータ(Ds)に含まれる秘密全単射関数を用い、他の計算段階では、同じく秘密
データに含まれる変換テーブルを用いる。
【0113】 上記のDESアルゴリズムの例の場合、この秘密データを使用する方法は、公
開式である。
【0114】 本発明は、DES暗号アルゴリズムの場合で説明したが、同じ原理および同じ
方法を、トリプルDESあるいはまたRSAといった既知の他の暗号化方法と共
に使用可能である。
【0115】 1つまたは複数の電子装置でDKDPAタイプの攻撃を操作不能にするには、
電子装置間で常に同じではないか、1つまたは別の秘密鍵の使用時に常に同じで
はない秘密データ(Ds)を選択しなければならない。このため、電子装置間で
容易に交換できるように、プログラマブルメモリに秘密データを入れておくこと
が好ましい。上記のDESの例では、kmビットからknビットへの各非線形変
換の計算に用いられるk個の変換テーブルの中で、秘密データに対して新しい値
が容易に選択されることが認められる。たとえば、(k−1)個のテーブルを任
意に選択し、次に、簡単な計算によってk番目のテーブルを導き出すことができ
る。変形実施形態2と3の場合も同様に、(k−1)個のテーブルを任意に選択
し、また秘密全単射写像φ、φ、...、φを同じく任意に選択してから
、簡単な計算によってk番目のテーブルを導き出す。
【0116】 1つまたは複数の電子装置が、1つまたは複数のマイクロ計算機カードである
場合、秘密鍵による暗号プロセスの実施形態が依存する秘密データ(Ds)は、
EEPROM(6)に蓄積可能である。これによって、カードの個人化プロセス
の際に、カード間で秘密データを変更できる。カードの個人化プロセスでは、一
般に、前記カードのEEPROMに1つまたは複数の秘密鍵が入れられる。また
、カードに含まれる1つまたは複数の秘密鍵の変更が必要な場合、EEPROM
に入れられたこの秘密データを変えることもできる。
【0117】 本発明の最も強力な実施形態では、秘密データが、考慮されたマイクロ計算機
カードと、暗号計算プロセスにより使用される秘密鍵とに、同時に依存する。た
とえば、秘密データは、カードに秘密鍵を入力する都度、任意に選択される。実
際、これは、マイクロプロセッサカードのEEPROMに秘密鍵だけを入れる代
わりに、(秘密鍵Ks、秘密データDsの)組を毎回入力することになる。限定
的ではなく例として挙げられた本発明の変形実施形態では、秘密データが、少な
くとも1つの部分秘密変数をなす少なくとも1つの第1の任意の変数vを含ん
でおり、修正アルゴリズムが、中間変数vと1つまたは複数の部分秘密変数v とに秘密関数を実施することによって、少なくとも1つの別の部分変数、たとえ
ばvを決定する。この秘密関数は、たとえば、次のような排他的ORとするこ
とができる。
【0118】
【数14】 修正アルゴリズムは、任意抽出からなる少なくとも1つのテーブルAを秘密デ
ータDsに記憶したテーブルの使用により、部分変数v、vに非線形変換を
実施する。計算に必要な他のテーブルは、不揮発性メモリに記憶可能である。従
来のアルゴリズムの様々な計算順序は、部分変数に毎回テーブルを実施すること
によって行われ、アルゴリズムは、最終順序で、第2の秘密関数に応じて部分変
数の組合わせにより結果を計算する。第2の秘密関数は、第1の秘密関数とは逆
にしてもよい。
【0119】 図3から4Fに関して記載した全ての変形実施形態もまた、本発明の一部をな
し、プログラマブル不揮発性メモリ(6)に含まれる秘密データに、アルゴリズ
ムの修正に介在する1つまたは複数の要素を組み込んだものである。アルゴリズ
ムの修正に介在する要素は、秘密関数fまたは部分変換テーブルであるか、任意
の1つの秘密変換テーブルAを、プログラマブルメモリ(6)または非プログラ
マブルメモリ(7)の秘密でない部分に含まれる他の変換テーブルに計算によっ
て結合したものか、多項式関数および1つまたは複数の変換テーブルか、秘密全
単射関数φおよび任意の秘密変換Aか、あるいはまた秘密に時間数かである。
【0120】 本発明の別の変形実施形態では、通常は個人化装置に存在する箱Sの計算プロ
グラムまたは変換テーブルが、不揮発性メモリEEPROM(6)の秘密ゾーン
(61)に予備個人化段階でダウンロードまたは入力され、個人化段階で一回だ
け実行可能な外部からの命令により個人化段階で始動される。一回、命令が実行
されると、計算プログラムが、不揮発性メモリをロックし、特定の鍵を提示しな
ければプログラムへのアクセスを禁じるか、あるいは別の実施形態では、秘密ゾ
ーン(61)の自動消去を開始する。この変形実施形態は、未修正の個人化装置
でも本発明を実施できる。箱Sの計算または変換テーブルは、上記の原理を尊重
することによって実施され、個人化中のカードに固有の情報を多様化するものと
して、予備個人化段階に記録されたカードの量産番号を使用する。この計算によ
って得られた値は、不揮発性メモリ(6)の秘密ゾーン(60)に書き込まれる
【0121】 別の追加変形実施形態では、カードが、不揮発性メモリに追加カウンタ(62
)を含んでおり、追加カウンタは、カウンタによるDES計算を実行するたびに
、DESアルゴリズムによってインクリメントされる。カード利用システムは
、このカウンタの内容と、所定値nとをカードに印加する度に比較するように、
また、値nを超過している場合には、計算プログラム(61)を呼び出して、新
しい箱Sまたは変換テーブルを計算するように構成される。カード利用システム
または計算プログラムは、計算プログラム(61)または利用システムにより規
定される手順に従って秘密データに箱Sを記憶し、カウンタをリセットする。さ
らに、この変形実施形態では、DESアルゴリズムは、DES計算を実施する
前に、cが所定の定数であるとき、追加カウンタ(62)が、この定数を加えた
所定値(n+c)を超過していないかどうかチェックする。超過していた場合に
は、不正行為の試みがあると結論し、カードをリセットする。
【0122】 また、開示された全ての実施形態において、暗号計算が行われる方法がDES アルゴリズムの修正に依存し、この修正そのものが、メモリの秘密ゾーンに含
まれる諸要素に依存することは自明である。
【0123】 上記の様々な変形実施形態のあらゆる組み合わせもまた、本発明の一部をなす
【図面の簡単な説明】
【図1】 本発明の方法により、修正暗号アルゴリズムを使用する電子装置を示す図であ
る。
【図2A】 従来技術によるDES(「Data Encryption Standar
d」)暗号化/復号化プロセスを概略的に示す図である。
【図2B】 従来技術によるDES暗号化/復号化プロセスを概略的に示す図である。
【図3】 本発明による分割方法を示す概略的な流れ図である。
【図4A】 標準のDES暗号アルゴリズムに従来技術による方法を使用するモードを示す
概略図である。
【図4B】 本発明によるDES等の修正暗号計算プロセスの特定の実施形態の流れ図で
ある。
【図4C】 図3に示した方法を使用する変形実施形態の図である。
【図4D】 図4bに示した方法を使用する変形実施形態の図である。
【図4E】 DES等の修正暗号計算プロセスで使用される非線形変換に、秘密全単射変
換を実施した、本発明の方法による特定の別の実施形態を示す図である。
【図4F】 従来技術による一般的な暗号アルゴリズムが実施される電子装置を示す図であ
る。
【手続補正書】
【提出日】平成12年12月12日(2000.12.12)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 同一の秘密鍵(Ks)の暗号アルゴリズムを使用して、1つ
    または複数の電子装置を保護する方法であって、計算する方法が、各電子装置お
    よび各秘密鍵(Ks)に対して、1つまたは複数の電子装置の秘密ゾーンに蓄積
    された秘密データ(Ds)に依存することを特徴とする方法。
  2. 【請求項2】 各電子装置および各秘密鍵(Ks)に対して、暗号計算を行
    うために、前記秘密データ(Ds)を使用する方法が、公開されていることを特
    徴とする請求項1に記載の方法。
  3. 【請求項3】 前記電子装置によって使用される前記秘密データ(Ds)が
    、少なくとも2つあることを特徴とする請求項1に記載の方法。
  4. 【請求項4】 各電子装置が、少なくとも1つの固有の秘密データ(Ds)
    を含むことを特徴とする請求項3に記載の方法。
  5. 【請求項5】 各電子装置において、当該電子装置によって使用される様々
    な秘密鍵に対応する前記秘密データ(Ds)が、少なくとも2つあることを特徴
    とする請求項1に記載の方法。
  6. 【請求項6】 各電子装置において、前記暗号計算によって使用される各秘
    密鍵(Ks)が、前記固有の秘密データ(Ds)に対応することを特徴とする請
    求項5に記載の方法。
  7. 【請求項7】 nビットの変換出力を、kmビットの入力の関数であるアド
    レスで読み込む、k個の変換テーブルによって記述された、kmビットからkn
    ビットへの非線形変換を用いた暗号計算プロセスを使用して、1つまたは複数の
    電子装置を保護する方法であって、 各非線形変換に対して、前記k個の変換テーブルが、秘密データ(Ds)の一
    部をなすことを特徴とする請求項1に記載の方法。
  8. 【請求項8】 nビットの変換出力を、非線形変換のkmビットの入力の公
    開関数を適用して得られたmビットの値に対して秘密全単射関数(φ)を適用す
    ることにより得られるアドレスで読み込む、k個の変換テーブルによって記述さ
    れた、kmビットからknビットへの非線形変換を用いた暗号計算プロセスを使
    用して、1つまたは複数の電子装置を保護する方法であって 各非線形変換に対して、前記k個の変換テーブルが、秘密データ(Ds)の一
    部をなすことを特徴とする請求項1に記載の方法。
  9. 【請求項9】 各非線形変換に対し、秘密全単射関数(φ)もまた、秘密デ
    ータ(Ds)の一部をなすことを特徴とする請求項8に記載の方法。
  10. 【請求項10】 1つまたは複数のマイクロ計算機カードを保護する方法で
    あって、秘密データが、前記マイクロ計算機カードのEEPROMに蓄積される
    ことを特徴とする請求項1に記載の方法。
  11. 【請求項11】 変換テーブルを計算し、当該変換テーブルの全部または一
    部を秘密データに記憶するために、変換テーブルの計算プログラムが、各電子装
    置に記憶され、所定の事象により始動することを特徴とする請求項1に記載の方
    法。
  12. 【請求項12】 所定の事象が、カウンタが所定値を超過することであるこ
    とを特徴とする請求項11に記載の方法。
  13. 【請求項13】 DES、トリプルDES、RSAアルゴリズムによってサ
    ポートされる暗号計算プロセスを保護するために、請求項1に記載の方法を使用
    する方法。
  14. 【請求項14】 標準の暗号アルゴリズムの計算段階に従い、記憶手段の秘
    密ゾーンに含まれる暗号秘密鍵を使用する修正暗号アルゴリズムの記憶手段と、
    当該修正暗号アルゴリズムの実行手段とを含む電子装置であって、 標準の暗号アルゴリズムの計算段階に必要な各中間変数(v)を、複数(k個
    )の部分中間変数に代える第1の秘密手段と、 非線形変換テーブルを、当該部分中間変数の各々に適用する第2の手段と、 部分中間変数で得られる結果から、標準の暗号アルゴリズムの使用に対応する
    最終結果を再生する第3の秘密手段とを含むことを特徴とする電子装置。
  15. 【請求項15】 秘密ゾーンに記憶された秘密データが、少なくとも1つの
    部分秘密変数を構成する少なくとも1つの第1の任意変数(v)を含んでおり
    、修正暗号アルゴリズムが、中間変数(v)と1つまたは複数の部分秘密変数(
    )とに、第1の秘密関数を適用することによって、少なくとも1つの別の部
    分変数(v)を決定することを特徴とする請求項14に記載の電子装置。
  16. 【請求項16】 修正暗号アルゴリズムが、 テーブルの使用によって、部分秘密変数(v、v)に非線形変換を適用す
    る手段であって、任意抽出によって形成される少なくとも1つのテーブル(A)
    が、秘密データ(Ds)に記憶され、計算に必要な他のテーブルが、不揮発性メ
    モリに記憶される手段と、 部分秘密変数に毎回テーブルを使用する度に、標準の暗号アルゴリズムの様々
    なラウンドの計算を実行する手段と、 第2の秘密関数に従って、部分秘密変数(v、v)を組み合わせた結果を
    、修正暗号アルゴリズムの最後のラウンドで計算する手段とを含むことを特徴と
    する請求項15に記載の電子装置。
  17. 【請求項17】 修正暗号アルゴリズムの第1の秘密手段が、部分中間変数
    と各中間変数(v)とを関連付ける関数fから構成されており、当該中間変数(
    v)の値を知っていても、式f(v,...,v,...,v)=vを満
    たす(k−1)項組(v,...、vi−1,vi+1,...,v)が存
    在するような特定の部分中間変数(v)の集合を導き出すことができないよう
    にすることを特徴とする請求項14に記載の電子装置。
  18. 【請求項18】 修正暗号アルゴリズムの第2の手段が、k個の部分変換テ
    ーブルから構成され、k個の部分変換テーブルのうち、k−1個の部分変換テー
    ブルが、秘密任意変数を含むことを特徴とする請求項14に記載の電子装置。
  19. 【請求項19】 修正暗号アルゴリズムの第2の手段が、k個の変換テーブ
    ルを含んでおり、 各変換テーブルが、式φof(v,...,v)、j∈[1,k]に従
    って、部分中間変数の関数f(v,...,v)に秘密全単射関数φを適
    用して得られる値を入力として受け、 写像φof(v,...,v)が、結果値の直接評価によって行われ、 変換テーブルの入力に入力される当該結果値が、mビットの入力の関数である
    アドレスで、nビットの変換出力を読み込むことを可能にすることを特徴とする
    請求項18に記載の電子装置。
  20. 【請求項20】 修正暗号アルゴリズムの第2の手段が、 分割されないときに標準の暗号計算プロセスの中間変数に適用される各非線形
    変換を、部分中間変数の集合に適用されるkmビットからknビットへの部分非
    線形変換に代える手段と、 (k−1)nビットの変換出力を、kmビットの入力の多項式関数として計算
    する手段と、 出力ビットの残りのnビットを、km個の入力ビットの関数であるアドレスで
    読み込む、変換テーブルの読み込みによって、前記出力ビットの残りのnビット
    を読み込む手段とを含むことを特徴とする請求項14に記載の電子装置。
  21. 【請求項21】 暗号計算プロセスを、複数の異なる計算プロセス部分に分
    割して得られる各部分で、修正暗号アルゴリズムにより実施される操作を、逐次
    実行する手段を含むことを特徴とする請求項14に記載の電子装置。
  22. 【請求項22】 暗号計算プロセスを、複数の異なる計算プロセス部分に分
    割して得られる各部分で、実施される操作を、インターリーブ方式で実行する手
    段を含むことを特徴とする請求項14に記載の電子装置。
  23. 【請求項23】 暗号計算プロセスを、複数の異なる計算プロセス部分に分
    割して得られる各部分で実施される操作を、マルチプログラミングの場合に、同
    時に実行する手段を含むことを特徴とする請求項14に記載の電子装置。
  24. 【請求項24】 暗号計算プロセスを、複数の異なる計算プロセス部分に分
    割して得られる各部分でが実施される操作を、並行して動作する異なるプロセッ
    サで同時に実行する手段を含むことを特徴とする請求項14に記載の電子装置。
  25. 【請求項25】 各電子装置に記憶された変換テーブルの計算プログラムと
    、テーブルの計算を所定の事象によって始動し、秘密データに当該変換テーブル
    の全部または一部を記憶する手段とを含むことを特徴とする請求項14に記載の
    電子装置。
  26. 【請求項26】 カウンタが、所定値を超過したとき、テーブルの計算を始
    動する手段によって所定の始動事象を構成するために、各暗号計算におけるイン
    クリメント値を記憶する手段を含むことを特徴とする請求項14に記載の電子装
    置。
JP2000611431A 1999-04-09 2000-04-07 同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置 Expired - Fee Related JP4153665B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR99/04441 1999-04-09
FR9904441A FR2792141B1 (fr) 1999-04-09 1999-04-09 Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique
PCT/FR2000/000902 WO2000062473A1 (fr) 1999-04-09 2000-04-07 Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme crytographique avec cle secrete, une utilisation du procede et l'ensemble electronique

Publications (2)

Publication Number Publication Date
JP2002542504A true JP2002542504A (ja) 2002-12-10
JP4153665B2 JP4153665B2 (ja) 2008-09-24

Family

ID=9544212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000611431A Expired - Fee Related JP4153665B2 (ja) 1999-04-09 2000-04-07 同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置

Country Status (7)

Country Link
US (1) US7050581B1 (ja)
EP (1) EP1086547B1 (ja)
JP (1) JP4153665B2 (ja)
AT (1) ATE305681T1 (ja)
DE (1) DE60022840T2 (ja)
FR (1) FR2792141B1 (ja)
WO (1) WO2000062473A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016595A (ja) * 2000-06-30 2002-01-18 Toyo Commun Equip Co Ltd 秘密情報生成装置及び方法
JP2008067416A (ja) * 2000-01-31 2008-03-21 Oberthur Card Systems Sa 2つの電子的エンティティ間における暗号プロトコル実行方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
FR2873523B1 (fr) * 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US8689338B2 (en) * 2005-08-03 2014-04-01 St-Ericsson Sa Secure terminal, a routine and a method of protecting a secret key
CN101401348B (zh) * 2006-03-10 2011-08-31 耶德托公司 用于使密码函数模糊的方法和系统
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
JP5203594B2 (ja) * 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法
JP2013523043A (ja) 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法
JP2012083542A (ja) * 2010-10-12 2012-04-26 Renesas Electronics Corp 暗号処理装置及び暗号処理回路の制御方法
EP3910512B1 (en) * 2019-01-10 2023-11-29 Nippon Telegraph And Telephone Corporation Secure array access apparatus, secure array access method, and program

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4993068A (en) * 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
FR2672402B1 (fr) * 1991-02-05 1995-01-27 Gemplus Card Int Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques.
US5588059A (en) * 1995-03-02 1996-12-24 Motorola, Inc. Computer system and method for secure remote communication sessions
JP2000503154A (ja) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5850443A (en) * 1996-08-15 1998-12-15 Entrust Technologies, Ltd. Key management system for mixed-trust environments
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067416A (ja) * 2000-01-31 2008-03-21 Oberthur Card Systems Sa 2つの電子的エンティティ間における暗号プロトコル実行方法
JP2002016595A (ja) * 2000-06-30 2002-01-18 Toyo Commun Equip Co Ltd 秘密情報生成装置及び方法
JP4640663B2 (ja) * 2000-06-30 2011-03-02 ネッツエスアイ東洋株式会社 秘密情報生成装置及び方法

Also Published As

Publication number Publication date
ATE305681T1 (de) 2005-10-15
US7050581B1 (en) 2006-05-23
EP1086547B1 (fr) 2005-09-28
EP1086547A1 (fr) 2001-03-28
DE60022840D1 (de) 2005-11-03
FR2792141B1 (fr) 2001-06-15
DE60022840T2 (de) 2006-07-06
JP4153665B2 (ja) 2008-09-24
FR2792141A1 (fr) 2000-10-13
WO2000062473A1 (fr) 2000-10-19

Similar Documents

Publication Publication Date Title
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
US6658569B1 (en) Secret key cryptographic process for protecting a computer system against attacks by physical analysis
EP1421461B1 (en) Space-efficient, Side-channel Attack Resistant Table Lookups
US8473751B2 (en) Method for cryptographic data processing, particularly using an S box, and related device and software
US8479018B2 (en) System for making program difficult to read, device for making program difficult to read, and method for making program difficult to read
KR102413846B1 (ko) Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
US9515820B2 (en) Protection against side channels
JP4659149B2 (ja) 電子チップの不正行為に対する保護の非対称暗号通信法
US6615354B1 (en) Information processing equipment
CN110710155A (zh) 渐进式密钥加密算法
US20130028412A1 (en) Method of counter-measuring against side-channel attacks
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
JP7076474B2 (ja) 暗号装置及び方法
CN106487497A (zh) 对rijndael算法的dpa保护
JP2011072040A (ja) 誤りに基づく攻撃から電子回路を保護する方法
JP4153665B2 (ja) 同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置
EP3506558A1 (en) Whitebox computation of keyed message authentication codes
US6820814B1 (en) Countermeasure method in an electric component using a secret key cryptographic algorithm
EP3078154B1 (en) A computing device for iterative application of table networks
US7747012B2 (en) Process of security of an electronic unit with cryptoprocessor
KR20060132923A (ko) 암호화 연산을 수행하는 방법 및 장치
JP6890589B2 (ja) 計算デバイス及び方法
KR20190076859A (ko) 정합성 합을 결정하기 위한 방법, 이와 관련된 컴퓨터 프로그램 및 전자 엔티티
EP3832945A1 (en) System and method for protecting memory encryption against template attacks
JP4717437B2 (ja) スパイ行為に対抗して保護される逆法計算

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040518

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040824

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050621

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050628

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051014

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070201

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080527

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080704

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130711

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees