JP4804981B2 - データ変換装置及びデータ変換プログラム - Google Patents
データ変換装置及びデータ変換プログラム Download PDFInfo
- Publication number
- JP4804981B2 JP4804981B2 JP2006087736A JP2006087736A JP4804981B2 JP 4804981 B2 JP4804981 B2 JP 4804981B2 JP 2006087736 A JP2006087736 A JP 2006087736A JP 2006087736 A JP2006087736 A JP 2006087736A JP 4804981 B2 JP4804981 B2 JP 4804981B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cycle
- spread
- secret information
- secret
- 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.)
- Expired - Fee Related
Links
Images
Description
データ変換の対象となる入力データを入力して第0サイクルから第n−1サイクル(nは1以上の整数)までのnサイクルを順次実行することにより入力データを変換して出力するデータ変換装置において、
入力データの変換に用いる所定のビット数の秘密鍵情報を格納するメモリと、
前記メモリが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報を生成する拡散秘密情報生成部と、
入力データを入力して第0サイクルから第n−1サイクルまでのnサイクルにより入力データを変換するとともにnサイクルのそれぞれにおいて、サイクルごとの変換対象のデータであるサイクル変換対象データを、前記メモリが格納する秘密鍵情報と前記拡散秘密情報生成部が生成した拡散秘密情報とに基づいて変換するデータ変換部と
を備えたことを特徴とする。
以下に図1〜図15を参照して、本実施の形態における暗号処理装置100(データ変換装置)を説明する。
暗号処理装置100による処理では、次の(a)〜(d)を前提条件とする。
(a)暗号処理装置100処理は、
mブロックの平文{P0,P1,・・・,Pm−1}
あるいは
mブロックの暗号文{C0,C1,・・・,Cm−1}
に対して処理を行うものとする。暗号処理装置100は、1ブロックあたりnサイクルの処理で暗号化(あるいは復号化)の処理を終了するものとする。
(b)また、暗号化関数Fは平文P、秘密鍵情報Kを入力とし、暗号文Cを出力すると定義し、これを
C=F(K,P)
と表記(あるいはFK(P)と表記する場合がある)する。
また、これに対応して復号化関数はF−1とし、
P=F−1(K,C)
と表記する。
(c)さらに、平文(あるいは暗号文)1ブロックについて第0サイクル〜第n−1サイクルの各サイクルで処理する暗号化関数Fの部分関数をそれぞれ
f(0),f(1),・・・,f(n−1)
とする。
同様に、復号化関数F−1に対しては、各サイクルで処理する部分関数を
f−1(0),f−1(1),・・・,f−1(n−1)
とする。
(d)また、以下では排他的論理和の演算記号を<EXOR>と表記する。例えば、同じビット数であるデータAとデータBとの排他的論理和を「A<EXOR>B」と表記する。なお、図4等では、この<EXOR>の代わりに、排他的論理和の演算記号を、丸印の中に「+」をもつ記号で表記している。
i:0〜m−1のいずれかの平文(あるいは暗号文)のブロック番号を示す。
J:0〜n−1のいずれかのサイクルを示す。
G(i,J):i,Jにより決まる拡散秘密情報を示す。
H(i,J):i,Jにより決まる中間値を示す。
f(J):Jにより決まる部分関数を示す。
xJ+1:第J(0≦J≦n−1)サイクルにおいて生成されるその第Jサイクルでの最終生成値を示す。
すなわち、
G(0,0)=FK(K)、
G(i,J+1)=G(i,J)<EXOR>H(i,J)
G(i+1,0)=G(i,n)
=G(i,n−1)<EXOR>H(i,n−1)
と定義される。
また、第Jサイクル目で変換され生成されるデータxJ+1は
xJ+1
=fk’(J)(xJ,G(i,J))
=fk (J)(xJ<EXOR>G(i,J))<EXOR>G(i,J+1)
と定義される。
拡散秘密情報G(0,0)(K)
を生成する(S201)。
G(0,0)(K)=F(K,K)
あるいは
G(0,0)(K)=F−1(K,K)
として、拡散秘密関数G(0,0)(拡散秘密情報)を、暗号化関数Fあるいは復号化関数F−1と同一の関数で処理することが可能である。拡散秘密関数G(0,0)は、その出力の各ビットが元の秘密鍵情報Kの全てあるいは複数のビットと依存して決定される関数とする。これにより、拡散秘密情報G(0,0)(K)の各ビット値には元の秘密鍵情報Kの全てあるいは複数のビット値が拡散される。このため、元の秘密鍵情報Kの全てあるいは複数のビット値が導出された場合のみ、G(0,0)(K)の各ビットが算出されることになり、G(0,0)(K)の安全性と秘密鍵情報Kの安全性とを関連づけることができる。
暗号文Ci(0≦i<m)
あるいは
平文Pi(0≦i<m)
を出力し、次のブロックの処理を開始する(S206のNO,S211,S212)。
次に、1サイクル毎の処理(S206〜S210)を説明する。1サイクル毎の処理では、まず入力した平文(あるいは暗号文)(S204)に対して、暗号処理部102により部分関数の処理f(J)あるいはf−1(J)を実行する(S207)。この時、S201で生成した拡散秘密情報G(0,0)あるいはS209で更新した拡散秘密情報G(i,J)を伴って処理を行う。図5の場合では、暗号処理部102が、暗号処理部102を示す枠内の式を実行する。
即ち、
x0=P0<EXOR>G(0,0)
x1=f’k (0)(x0,G(0,0))
=fk (0)(x0<EXOR>G(0,0))<EXOR>G(0,1)
=fk (0)(P0)<EXOR>G(0,1)
を実行する。この処理では、x0、x1の式からわかるように、拡散秘密情報G(0,0)とG(0,1)とを伴って処理を行なっている。
この場合、
fk (0)、x0、G(0,0)は既知である。また、G(0,1)は後述する図6に示すように、
G(0,1)=G(0,0)<EXOR>H(0,0)
と定義される。後述のように、H(0,0)は、それまでに生成されたいずれかの中間値を用いることができるので、G(0,1)も既知となり、
x1=f’k (0)(x0,G(0,0))
=fk (0)(x0<EXOR>G(0,0))<EXOR>G(0,1)
=fk (0)(P0)<EXOR>G(0,1)
が確定する。図5、図6によれば、G(0,1)は図6ではじめて得られるように見かけ上表記されている。しかし、実際には、G(0,1)は前記のように、
図5において
x1=f’k (0)(x0,G(0,0))
=fk (0)(x0<EXOR>G(0,0))<EXOR>G(0,1)
=fk (0)(P0)<EXOR>G(0,1)
を生成する際に、
G(0,1)=G(0,0)<EXOR>H(0,0)
の関係から導出される。
G(i,J+1)=H(i,J)<EXOR>G(i,J) (更新式1)
使用する場合を示した。この中間値H(i,J)は、暗号処理部102により実行されている第Jサイクル(実行サイクル)の終了以前に、暗号処理部102より変換されたいずれかの中間値を用いることができる。例えば、H(0,1)は、暗号処理部102により第1サイクルが実行されている場合において、
x2
=fk (1)・fk (0)(P0)<EXOR>G(0,2)
の値が算出される以前のいずれかの中間値を用いることができる。また、H(i,J)として中間値ではないが、入力データPiを用いてもよい。なお、上記の方法(更新式1)に限定するものではない。
G(i,J+1)=H(i,J)<EXOR>G(i,J)
は一例である。
上記以外の更新方法についても
H(i,J)及びG(i,J)
の各ビットが更新後の
拡散秘密情報G(i,J+1)
の各ビットに依存して決定される方法で更新するとし、前記の例(更新式1)に限定するわけではない。
(1)i=0,J=0〜n−1の場合、
(2)i=1,J=0〜n−1の場合、
(3)i=2,J=0〜n−1の場合
を説明する。
すなわち
(1)は、暗号処理装置100による第0ブロックに対する全サイクルの処理である。
(2)は、暗号処理装置100による第1ブロックに対する全サイクルの処理である。
(3)は、暗号処理装置100による第2ブロックに対する全サイクルの処理である。
図4は、前記のように暗号処理装置100による処理の関係式を示す図である。
図5は、前記のように暗号処理装置100による「i=0,J=0」の処理を示す。
図6は、前記のように暗号処理装置100による「i=0,J=1」の処理を示す。
図7は、暗号処理装置100による「i=0,J=2」の処理を示す。
図8は、暗号処理装置100による「i=0,J=n−1」の処理を示す。
図9は、暗号処理装置100による「i=1,J=0」の処理を示す。
図10は、暗号処理装置100による「i=1,J=1」の処理を示す。
図11は、「i=0,J=0〜n−1」の処理を表形式にした図である。
図12は、「i=1,J=0〜n−1」の処理を表形式にした図である。
図13は、「i=2,J=0〜n−1」の処理を表形式にした図である。
図11の(a)は、図4に対応する。
図11の(b)は、図5に対応する。
図11の(c)は、図6に対応する。
図11の(d)は、図7に対応する。
図11の(g)は、図8に対応する。
拡散秘密情報生成部101は、拡散秘密情報G(0,0)を
G(0,0)=FK(K)
の式により生成して暗号処理部102に送る。
すなわち
x0=P0<EXOR>G(0,0)
である。
すなわち、
x1
=fk’(0)(x0,G(0,0))
=fk (0)(x0<EXOR>G(0,0))<EXOR>G(0,1)
である。
前記のように
x0=P0<EXOR>G(0,0)
であるので、
x1
=fk’(0)(x0,G(0,0))
=fk (0)(x0<EXOR>G(0,0))<EXOR>G(0,1)
=fk (0)(P0<EXOR>G(0,0)<EXOR>G(0,0))<EXOR>G(0,1)
=fk (0)(P0)<EXOR>G(0,1)
となる。
x1=fk (0)(P0)<EXOR>G(0,1)
である。図5にも示すように、暗号処理部102は、入力データP0に秘密鍵情報Kを作用させたfk (0)(P0)(秘密鍵作用データ)に対して、更に拡散秘密情報G(0,1)を作用させることによりx1(拡散秘密情報作用データ)に変換する。暗号処理部102は、拡散秘密情報生成部101にH(0,0)を送る。ここでH(0,0)は、x1を生成するに至るいずれかの中間値と入力データP0とのうちのいずれかを用いることができる。いずれのデータを用いるかにつては予め設定することができる。
次に(c)のJ=1の場合、すなわち第1サイクルの場合を説明する。第1サイクルも第0サイクルと同様である。第1サイクルにおける変換の対象となるデータ(サイクル変換対象データ)は、第0サイクルの最終生成データであるx1である。拡散秘密情報生成部101は、
G(0,1)=G(0,0)<EXOR>H(0,0)
の式により生成した拡散秘密情報G(0,1)を暗号処理部102に送る。
すなわち、
x2
=fk’(1)(x1,G(0,1))
=fk (1)(x1<EXOR>G(0,1))<EXOR>G(0,2)
である。
ここで、(b)により
x1=fk (0)(P0)<EXOR>G(0,1)
であるので、
x2
=fk’(1)(x1,G(0,1))
=fk (1)(x1<EXOR>G(0,1))<EXOR>G(0,2)
=fk (1)(fk (0)(P0)<EXOR>G(0,1)<EXOR>G(0,1))<EXOR>G(0,2)
=fk (1)・fk (0)(P0)<EXOR>G(0,2)
となる。
(1)S301は、拡散秘密情報生成部が、ROMが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報を生成するステップである。
(2)S302は、暗号処理部102(データ変換部)が、入力データを入力して第0サイクルから第n−1サイクルまでのnサイクルにより入力データを変換するとともにnサイクルのそれぞれにおいて、サイクルごとの変換対象のデータであるサイクル変換対象データをROMが格納する秘密鍵情報と、暗号処理部102が生成した拡散秘密情報とに基づいて変換するステップである。
(1)S401は、ROMが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報を生成する処理である。
(2)S402は、入力データを入力して第0サイクルから第n−1サイクルまでのnサイクルにより入力データを変換するとともにnサイクルのそれぞれにおいて、サイクルごとの変換対象のデータであるサイクル変換対象データをROMが格納する秘密鍵情報と、生成された拡散秘密情報とに基づいて変換する処理である。
暗号処理部が各サイクルにおいて、サイクル変換対象データを秘密鍵作用データに対して更に拡散秘密情報を作用させることにより拡散秘密情報作用データに変換する。よって、乱数を生成することなく、サイドチャネル攻撃に対する対抗性を高めることができる。
拡散秘密情報生成部が、実行サイクルにおいて使用される拡散秘密情報を、入力データあるいは中間値等に基づいて生成する。よって、乱数を生成することなく、サイドチャネル攻撃に対する対抗性を高めることができる。
Claims (6)
- データ変換の対象となる入力データP0を入力して第0サイクルから第n−1サイクル(nは3以上の整数)までのnサイクルを順次実行することにより入力データP0を変換して出力するデータ変換装置において、
入力データP0の変換に用いる所定のビット数の秘密鍵情報を格納するメモリと、前記メモリが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報G0を生成する拡散秘密情報生成部と、データ変換部とを備え、
(1)第0サイクルにおいて、
前記データ変換部が、第0サイクルにおける変換対象のデータであって入力データP0に基づくデータである第0サイクル変換対象データX0を拡散秘密情報G0でマスクし、変換対象データX0を拡散秘密情報G0でマスクしたデータをデータ変換し、
前記拡散秘密情報生成部が、前記入力データP0と、前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G0を更新して更新後の拡散秘密情報G1を生成し、
前記データ変換部が、第0サイクルでデータ変換されたデータを更新後の拡散秘密情報G1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G1でマスクしたデータX1を生成し、
(2)第1サイクルにおいて、
前記データ変換部が、前記第0サイクルで生成されたデータX1を第0サイクルで生成された拡散秘密情報G1でマスクし、さらに、データX1を拡散秘密情報G1でマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、第1サイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G1を更新して更新後の拡散秘密情報G2を生成し、
前記データ変換部が、第1サイクルでデータ変換されたデータを更新後の拡散秘密情報G2でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G2でマスクしたデータX2を生成し、
以下、第kサイクル(k:2≦k≦n−1の整数)でも第1サイクルと同様に、
(3)第kサイクルにおいて、
前記データ変換部が、前記第k−1サイクルで生成されたデータXkを第k−1サイクルで生成された拡散秘密情報Gkでマスクし、さらに、データXkを秘密情報Gkでマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、第kサイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値とのいずれかに基づいて拡散秘密情報Gkを更新して更新後の拡散秘密情報Gk+1を生成し、
前記データ変換部が、第kサイクルでデータ変換されたデータを更新後の拡散秘密情報Gk+1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報Gk+1でマスクしたデータXk+1を生成する
ことを特徴とするデータ変換装置。 - 前記データ変換装置は、
前記入力データP0と異なる入力データP1をさらに入力し、入力した前記入力データP1に対して、前記入力データP0と同様に、前記第0サイクルから前記第n−1サイクル(nは3以上の整数)までのnサイクルを順次実行することにより入力データP1を変換して出力すると共に、
(1)入力データP1に関する第0サイクルにおいて、
前記データ変換部が、入力データP1に関する第0サイクルにおける変換対象のデータであって入力データP1に基づくデータである第0サイクル変換対象データX0を、入力データP0に関する第n−1サイクルにおいて前記拡散秘密情報生成部によって生成された拡散秘密情報Gnを拡散秘密情報G(1,0)として拡散秘密情報G(1,0)でマスクし、入力データP1に基づく変換対象データX0を拡散秘密情報G(1,0)でマスクしたデータをデータ変換し、
前記拡散秘密情報生成部が、前記入力データP0と、前記入力データP1と、前記入力データP0に関する第0サイクルから第n−1サイクルまでのnサイクル及び入力データP1に関する第0サイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値と、のうちのいずれかに基づいて拡散秘密情報G(1、0)を更新して更新後の拡散秘密情報G(1、1)を生成し、
前記データ変換部が、入力データP1の第0サイクルでデータ変換されたデータを更新後の拡散秘密情報G(1、1)でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G(1、1)でマスクしたデータX1を生成し、
(2)入力データP1に関する第1サイクルにおいて、
前記データ変換部が、入力データP1の前記第0サイクルで生成されたデータX1を拡散秘密情報G(1、1)でマスクし、さらに、データX1を拡散秘密情報G(1、1)でマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、前記入力データP1と、前記入力データP0に関する第0サイクルから第n−1サイクルまでのnサイクル及び入力データP1に関する第1サイクルまでを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値と、のうちのいずれかに基づいて拡散秘密情報G(1、1)を更新して更新後の拡散秘密情報G(1、2)を生成し、
前記データ変換部が、入力データP1の第1サイクルでデータ変換されたデータを更新後の拡散秘密情報G(1、2)でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G(1、2)でマスクしたデータX2を生成し、
以下、入力データP1に関する第kサイクル(k:2≦k≦n−1の整数)でも入力データP1に関する第1サイクルと同様に、
(3)入力データP1に関する第kサイクルにおいて、
前記データ変換部が、前記第k−1サイクルで生成されたデータXkを第k−1サイクルで生成された拡散秘密情報G(1、k)でマスクし、さらに、データXkを秘密情報G(1、k)でマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、前記入力データP1と、前記入力データP0に関する第0サイクルから第n−1サイクルまでのnサイクル及び入力データP1に関する第kサイクルまでを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値と、のうちのいずれかに基づいて拡散秘密情報G(1、k)を更新して更新後の拡散秘密情報G(1、k+1)を生成し、
前記データ変換部が、第kサイクルでデータ変換されたデータを更新後の拡散秘密情報G(1、k+1)でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G(1、k+1)でマスクしたデータXk+1を生成する
ことを特徴とする請求項1記載のデータ変換装置。 - 第0サイクル変換対象データX0は、
入力データP0を拡散秘密情報G0でマスクしたデータであることを特徴とする請求項1記載のデータ変換装置。 - データ変換の対象となる入力データP0を入力して第0サイクルと第1サイクルとの2サイクルを順次実行することにより入力データP0を変換して出力するデータ変換装置において、
入力データP0の変換に用いる所定のビット数の秘密鍵情報を格納するメモリと、前記メモリが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報G0を生成する拡散秘密情報生成部と、データ変換部とを備え、
(1)第0サイクルにおいて、
前記データ変換部が、第0サイクルにおける変換対象のデータであって入力データP0に基づくデータである第0サイクル変換対象データX0を拡散秘密情報G0でマスクし、変換対象データX0を拡散秘密情報G0でマスクしたデータをデータ変換し、
前記拡散秘密情報生成部が、前記入力データP0と、前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G0を更新して更新後の拡散秘密情報G1を生成し、
前記データ変換部が、第0サイクルでデータ変換されたデータを更新後の拡散秘密情報G1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G1でマスクしたデータX1を生成し、
(2)第1サイクルにおいて、
前記データ変換部が、前記第0サイクルで生成されたデータX1を第0サイクルで生成された拡散秘密情報G1でマスクし、さらに、データX1を拡散秘密情報G1でマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、第1サイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G1を更新して更新後の拡散秘密情報G2を生成し、
前記データ変換部が、第1サイクルでデータ変換されたデータを更新後の拡散秘密情報G2でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G2でマスクしたデータX2を生成することを特徴とするデータ変換装置。 - データ変換の対象となる入力データP0を入力して第0サイクルの1サイクルを実行することにより入力データP0を変換して出力するデータ変換装置において、
入力データP0の変換に用いる所定のビット数の秘密鍵情報を格納するメモリと、前記メモリが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報G0を生成する拡散秘密情報生成部と、データ変換部とを備え、
(1)第0サイクルにおいて、
前記データ変換部が、第0サイクルにおける変換対象のデータであって入力データP0に基づくデータである第0サイクル変換対象データX0を拡散秘密情報G0でマスクし、変換対象データX0を拡散秘密情報G0でマスクしたデータをデータ変換し、
前記拡散秘密情報生成部が、前記入力データP0と、前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G0を更新して更新後の拡散秘密情報G1を生成し、
前記データ変換部が、第0サイクルでデータ変換されたデータを更新後の拡散秘密情報G1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G1でマスクしたデータX1を生成することを特徴とするデータ変換装置。 - データ変換の対象となる入力データP0を入力して第0サイクルから第n−1サイクル(nは3以上の整数)までのnサイクルを順次実行することにより入力データP0を変換して出力するコンピュータであって、入力データP0の変換に用いる所定のビット数の秘密鍵情報を格納するメモリを備えたコンピュータであるデータ変換装置を、
以下の拡散秘密情報生成部、データ変換部として機能させるためのデータ変換プログラム
(1)前記拡散秘密情報生成部が、前記メモリが格納する秘密鍵情報に基づいて、それぞれのビットが秘密鍵情報の少なくとも1以上のビットに依存する情報である拡散秘密情報G0を生成し、
(2)第0サイクルにおいて、
前記データ変換部が、第0サイクルにおける変換対象のデータであって入力データP0に基づくデータである第0サイクル変換対象データX0を拡散秘密情報G0でマスクし、変換対象データX0を拡散秘密情報G0でマスクしたデータをデータ変換し、
前記拡散秘密情報生成部が、前記入力データP0と、前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G0を更新して更新後の拡散秘密情報G1を生成し、
前記データ変換部が、第0サイクルでデータ変換されたデータを更新後の拡散秘密情報G1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G1でマスクしたデータX1を生成し、
(3)第1サイクルにおいて、
前記データ変換部が、前記第0サイクルで生成されたデータX1を第0サイクルで生成された拡散秘密情報G1でマスクし、さらに、データX1を拡散秘密情報G1でマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、第1サイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値とのうちのいずれかに基づいて拡散秘密情報G1を更新して更新後の拡散秘密情報G2を生成し、
前記データ変換部が、第1サイクルでデータ変換されたデータを更新後の拡散秘密情報G2でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報G2でマスクしたデータX2を生成し、
以下、第kサイクル(k:2≦k≦n−1の整数)でも第1サイクルと同様に、
(4)第kサイクルにおいて、
前記データ変換部が、前記第k−1サイクルで生成されたデータXkを第k−1サイクルで生成された拡散秘密情報Gkでマスクし、さらに、データXkを秘密情報Gkでマスクしたデータをデータ変換し、
拡散秘密情報生成部が、前記入力データP0と、第kサイクルを含めてそれまでのサイクルにおいて前記データ変換部によるデータ変換の際に生成された中間値とのいずれかに基づいて拡散秘密情報Gkを更新して更新後の拡散秘密情報Gk+1を生成し、
前記データ変換部が、第kサイクルでデータ変換されたデータを更新後の拡散秘密情報Gk+1でマスクすることにより、データ変換されたデータを更新後の拡散秘密情報Gk+1でマスクしたデータXk+1を生成する。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006087736A JP4804981B2 (ja) | 2006-03-28 | 2006-03-28 | データ変換装置及びデータ変換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006087736A JP4804981B2 (ja) | 2006-03-28 | 2006-03-28 | データ変換装置及びデータ変換プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007266879A JP2007266879A (ja) | 2007-10-11 |
JP4804981B2 true JP4804981B2 (ja) | 2011-11-02 |
Family
ID=38639449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006087736A Expired - Fee Related JP4804981B2 (ja) | 2006-03-28 | 2006-03-28 | データ変換装置及びデータ変換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4804981B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2804524B1 (fr) * | 2000-01-31 | 2002-04-19 | Oberthur Card Systems Sas | Procede d'execution d'un protocole cryptographique entre deux entites electroniques |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
JP2005031471A (ja) * | 2003-07-07 | 2005-02-03 | Sony Corp | 暗号処理装置、および暗号処理方法 |
JP2005046472A (ja) * | 2003-07-31 | 2005-02-24 | Sumitomo Rubber Ind Ltd | 防水靴 |
JP2006019872A (ja) * | 2004-06-30 | 2006-01-19 | Sony Corp | 暗号処理装置 |
-
2006
- 2006-03-28 JP JP2006087736A patent/JP4804981B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007266879A (ja) | 2007-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8638944B2 (en) | Security countermeasures for power analysis attacks | |
JP5892887B2 (ja) | サイドチャネル攻撃に対抗する方法 | |
JP5198526B2 (ja) | 暗号化装置および復号装置 | |
US8605894B2 (en) | Cryptographic process execution protecting an input value against attacks | |
EP1833190A1 (en) | Table splitting for cryptographic processes | |
JP2007195132A (ja) | 暗号処理装置 | |
US20130010963A1 (en) | Multiplicative splits to protect cipher keys | |
JP7155173B2 (ja) | 外部監視攻撃からモジュラーインバージョン演算を保護すること | |
CN111712816B (zh) | 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
Jayasinghe et al. | Constant time encryption as a countermeasure against remote cache timing attacks | |
JP5202350B2 (ja) | 暗号処理装置及び暗号処理方法及び暗号処理プログラム | |
JP7079711B2 (ja) | 変換装置、変換方法、変換プログラム及び難読プログラム | |
KR100991713B1 (ko) | 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템 | |
Vadnala et al. | Algorithms for switching between boolean and arithmetic masking of second order | |
JP4804981B2 (ja) | データ変換装置及びデータ変換プログラム | |
US11336429B2 (en) | Method for protecting a source of entropy used in countermeasures securing a white-box cryptographic algorithm | |
JP2006025366A (ja) | 暗号化装置及び半導体集積回路 | |
Savitha et al. | Implementation of AES algorithm to overt fake keys against counter attacks | |
JP4611643B2 (ja) | 個別鍵生成装置 | |
JP2010232709A (ja) | 暗号演算回路装置 | |
JP2006201641A (ja) | 非線形演算装置及び暗号処理装置及び非線形演算方法及び非線形演算プログラム | |
JP6371197B2 (ja) | 暗号処理装置 | |
KR20240073510A (ko) | 영지식 증명에서 효율적인 일방향 함수를 이용한 연산 방법, 그리고 이를 구현하기 위한 장치 | |
Yuan et al. | Detecting first-order leakages against the tower field masking scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080820 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110419 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110614 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110809 |
|
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: 20110810 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4804981 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140819 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |