JP4936996B2 - 非線形データ変換器、暗号化装置、および復号装置 - Google Patents
非線形データ変換器、暗号化装置、および復号装置 Download PDFInfo
- Publication number
- JP4936996B2 JP4936996B2 JP2007137842A JP2007137842A JP4936996B2 JP 4936996 B2 JP4936996 B2 JP 4936996B2 JP 2007137842 A JP2007137842 A JP 2007137842A JP 2007137842 A JP2007137842 A JP 2007137842A JP 4936996 B2 JP4936996 B2 JP 4936996B2
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- stage
- mask value
- bit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Description
図1は、暗号アルゴリズムDES(Data Encryption Standard)の暗号化装置5の基本構成を示すブロック図である。
秘密情報として保持される鍵情報19を用いて、鍵スケジュール部20は拡大鍵21a、21b,‥21pを算出する。拡大鍵21a、21b,‥21pは、第1段〜第16段の段関数30a〜30pに供給される。それぞれの段関数30a〜30pは、拡大鍵21a、21b,‥21pを用いて平文ブロック9(64bit)を攪拌する。平文ブロック9は、初期転置IP(Initial Permutation)10で転置され、それぞれの段関数30a〜30pで攪拌され、最終転置FP(Final Permutation)40で転置され、暗号文ブロック50となる。
第1段の段関数30aは、拡大転置E(Extention Permutation)31と、拡大転置E31の出力と拡大鍵21aとの排他的論理和演算を行う排他的論理和37と、8個のS箱(S1,S2,・・・,S8)33a〜33hと、転置P(Permutation)34と、転置P34の出力と第1段の段関数30aの32bitの左側入力との排他的論理和演算を行う排他的論理和35とを備える。
図3は本発明の第1の実施形態に係る暗号化装置100を示すブロック図である。
この第1の実施形態に係る暗号化装置100は、外部から入力された64bitの平文ブロックの初期転置を行う初期転置部(IP)105と、初期転置部105が出力するビット列とマスク値rmsk0,lmsk0との排他的論理和演算を行う排他的論理和130A、130Bと、マスク処理あるいはマスクの除去処理のために排他的論理和演算を行う排他的論理和130a〜130hと、段関数の32bitの左側入力を排他的論理和130Aの出力、排他的論理和130hの出力、排他的論理和130bの出力のいずれかから選択するセレクタ110Lと、段関数の32bitの右側入力を排他的論理和130Bの出力、排他的論理和130hの出力、排他的論理和130bの出力のいずれかから選択するセレクタ110Rと、セレクタ110L、110Rからの32bit出力を記憶するレジスタ120L、120Rと、排他的論理和130dの出力と拡大鍵rkeyjとの排他的論理和演算を行う排他的論理和130zと、段関数ごとに乱数ビット列を発生する乱数発生部145と、拡大転置部(E)150と、転置部(P)160と、第16段の段関数の2つの出力と後述するマスク値rmsk16,lmsk16との排他的論理和演算を行う排他的論理和130C、130Dと、受信したビット列に最終転置を行い、64bitの暗号文ブロックを外部へ出力する最終転置部(FP)165とを備える。
ここで、DESのS箱(Si)33a〜33h(i=1,2,・・・,8)は、6bitのビット列xが入力された場合に、4bitのビット列Si(x)を出力する。つまり、第1の変形S箱(S100、S101、S110、S111)141a〜144a〜第8の変形S箱(S800、S801、S810、S811)141h〜144hは、6bitのビット列xが入力された場合に、4bitのビット列Si00(x)、Si01(x)、Si10(x)、Si11(x)(i=1,2,・・・,8)を出力する。
まず、乱数発生部145は、乱数ビット列(rmptn0,lmptn0)を生成する。初期転置部105は、外部から受信した64bitの平文ブロックを上位32bitと下位32bitのビット列に分割して出力する。排他的論理和130Aは、出力された上位32bitと乱数ビット列(rmptn0)から計算されるマスク値(rmsk0)との排他的論理和演算を行う。排他的論理和130Bは、出力された下位32bitと乱数ビット列(lmptn0)から計算されるマスク値(lmsk0)との排他的論理和演算を行う。それぞれの演算結果は、セレクタ110L、100Rを通して、レジスタ120L、120Rに格納される。なお、乱数ビット列(rmptn0,lmptn0)は、第1段の段関数(第2番目のクロックサイクル)で使用されるため、記憶される。
まず、乱数発生部は、乱数ビット列(rmptnj,lmptnj)を生成する。排他的論理和130aは、上記レジスタ120Rに格納された32bitのビット列に対して乱数ビット列(rmptnj)から計算されるマスク値(rmskj)との排他的論理和演算を行う。次の、排他的論理和130bは、排他的論理和130aの出力とマスク値(lmskj−1)との排他的論理和演算を行う。その演算結果は、セレクタ110R,110L、拡大転置部E150に出力され、拡大転置部E150では転置され、かつ、48bitのビット列に拡大される。なお、排他的論理和130bの出力は、第j段の段関数の左出力(32bitのビット列)である。
セレクタ110L、110Rの動作を除き、第2〜16のクロックサイクルで行われる第1〜15段の段関数の動作と、第16段の段関数の動作は同様である。
排他的論理和130Cは、レジスタ120Lに記憶された第16段の段関数の右側出力のビット列と、マスク値(lmsk16)との排他的論理和演算を行い、最終転置部(FP)165に送信する。また、レジスタ120Rに記憶されたビット列は、排他的論理和130a、130bで、マスク値(rmsk16、lmsk15)と排他的論理和演算が行われる。次に、排他的論理和130Dは、排他的論理和130bから出力される第16段の段関数の左側出力のビット列と、マスク値(rmsk16)との排他的論理和演算を行い、最終転置部(FP)165に送信する。最終転置部(FP)165は、排他的論理和130C、130Dより受信した2つのビット列を連結し、転置を行い、64bitの暗号文ブロックを出力する。
第1の実施形態では、乱数発生部は、各段関数(第1段から第16段まで)の演算が行われる度に、2つの8bitの乱数ビット列(lmptnj、rmptnj)を発生するものとして説明を行った。
変形例1では、第j段の段関数の演算を行う際に、第j段と第j−1段の段関数の演算時に発生させた乱数ビット列(mptnj、mptnj−1)を用いてマスク処理およびマスクの除去処理を行う。そのため、排他的論理和130a、130bが排他的論理和演算を行う際に用いるマスク値が双方ともに(mskj−1)となり、排他的論理和130a、130bが不要となる。
第1の実施形態では、DESのS箱内部で、入力ビット列に「a’」あるいは「a’ ̄」によるマスク処理がなされ、出力ビット列に「a」あるいは「a ̄」によるマスク処理がなされたものとして、4種類の変形S箱(Si00,Si01,Si10,Si11)(i=1,2,・・・,8)を用意するものとして説明を行った。
図7は、暗号アルゴリズムAES(Advanced Encryption Standard)の暗号化装置205の基本構成を示すブロック図である。
鍵スケジュール部250は、秘密情報として保持される鍵情報249を用いて、例えば128bitの拡大鍵251、251a〜251jを算出し、鍵加算部240、各段の鍵加算部240a〜240jへ拡大鍵251、251a〜251jを供給する。例えば128bitの平文ブロックは、鍵加算部240で拡大鍵251と加算され、拡大鍵251a〜251jとの加算を含む第1〜10段の段関数200a〜200jで攪拌され、暗号文ブロックとなる。
図8は、本発明の第2の実施形態に係る暗号化装置300を示すブロック図である。
第2の実施形態に係る暗号化装置300は、第1段の段関数に入力される前に、マスク処理を行う排他的論理和330aと、マスクされた平文ブロックと段関数の出力とを選択するセレクタ310と、段関数の入力を記憶するレジスタ320と、マスク処理あるいはマスクの除去処理のために排他的論理和演算を行う排他的論理和330b、330cと、排他的論理和330cの出力と拡大鍵(rkeyk−1)との排他的論理和演算を行う鍵加算部350aと、SubByte’360と、ShiftRow370と、MixColumn’380と、第10段の段関数の鍵加算部350bと、暗号文ブロックを出力する排他的論理和330dと、段関数ごとに乱数ビット列を発生する図示しない乱数発生部を備える。
ここで、AESのS箱(Si)(i=1,2,・・・,16、ただしSiはすべて等しい)は、8bitのビット列xが入力された場合に、8bitの各ビット列Si(x)を出力する。つまり、変形S箱(Si00、Si01、Si10、Si11)341a〜344pは、8bitのビット列xが入力された場合に、8bitの各ビット列Si00(x)、Si01(x)、Si10(x)、Si11(x)を出力するものとする。
まず、乱数発生部は、乱数ビット列(imptn0,omptn0)を生成する。排他的論理和330aは、外部から受信した128bitの平文ブロックと、乱数ビット列(omptn0)から計算されるマスク値(omsk0)との排他的論理和演算を行う。この演算結果は、セレクタ310を介してレジスタ320に記憶される。なお、乱数ビット列(omptn0)は、第1段の段関数(第2番目のクロックサイクル)で使用されるため、図示しないメモリに記憶される。
まず、乱数発生部は、乱数ビット列(imptnk,omptnk)を生成する。排他的論理和330bは、レジスタ320に格納された128bitのビット列と、マスク値(imskk)との排他的論理和演算を行う。次の、排他的論理和330cは、排他的論理和330bの出力とマスク値(omskk−1)との排他的論理和演算を行う。その演算を受ける鍵加算350aは、さらに拡大鍵(rkeyk−1)との排他的論理和演算を行う。
第2〜10のクロックサイクルで行われる第1〜9段目の段関数の動作と、レジスタ320に記憶されたビット列が、ShiftRow370による処理が行われるまでは、各段のマスク値に基づいて上述した動作を繰り返す。
第2の実施形態では、乱数発生部は、各段関数(第1段から第10段まで)の演算が行われる度に、2つの16bitの乱数ビット列(imptnk、omptnk)を発生するものとして説明を行った。
この変形例1に係る暗号化装置300は、排他的論理和330b、330cが無い点で第2の実施形態と相異する。また、第2の実施形態に係る乱数発生部が第k段目の段関数の演算で発生させた乱数ビット列(imptnk)を、変形例1に係る乱数発生部が第k−1段目の段関数の演算で発生させた乱数ビット列(mptnk−1)とする。また、第2の実施形態に係る乱数発生部が第k段目の段関数の演算で発生させた乱数ビット列(omptnk)を、変形例1に係る乱数発生部が第k段目の段関数の演算で発生させた乱数ビット列(mptnk)とする。
第2の実施形態では、AESのS箱内部で、入力ビット列に「a」あるいは「a ̄」によるマスク処理がなされ、出力ビット列に「a」あるいは「a ̄」によるマスク処理がなされたものとして、4種類の変形S箱(Si00,Si01,Si10,Si11)(i=1,2,・・・,8)を用意するものとして説明を行った。
この変形例2に係る暗号化装置300は、2つの変形S箱(S101、S111)342a、344aが無く、変形S箱(S100)341aの出力を全ビット反転する排他的論理和330xと、変形S箱(S111)343aの出力を全ビット反転する排他的論理和330yとをさらに備える点で第2の実施形態と相異する。
また、2種類の変形S箱(例えば、S100、S110)とそれらの出力のビット反転を行う素子を利用することで回路規模を削減することができ、かつ、DPA、高次DPAによる解析を困難なものとする復号装置を構成することができる。
9・・・平文ブロック
10・・・初期転置部(IP)
19・・・鍵情報
20・・・鍵スケジュール部
21a、21b、21p・・・拡大鍵
30a・・・段関数(第1段)
30b・・・段関数(第2段)
30p・・・段関数(第16段)
31・・・拡大転置部(E)
33a・・・DESのS箱(S1)
33b・・・DESのS箱(S2)
33h・・・DESのS箱(S8)
34・・・転置部(P)
35、37・・・排他的論理和
40・・・最終転置部(FP)
41・・・暗号文ブロック
100・・・暗号化装置
105・・・初期転置部(IP)
110a、110L、110R・・・セレクタ
120L、120R・・・レジスタ
130a〜130h、130A〜130D、130x、130y・・・排他的論理和
140a・・・変形S箱群
141a・・・変形S箱(S100)
142a・・・変形S箱(S101)
143a・・・変形S箱(S110)
144a・・・変形S箱(S111)
145・・・乱数発生部
150・・・拡大転置部(E)
160・・・転置部(P)
165・・・最終転置部
200a・・・段関数(第1段)
200i・・・段関数(第9段)
200j・・・段関数(第10段)
205・・・暗号化装置
209・・・平文ブロック
210a、210j・・・SubByte
220a、220j・・・ShiftRow
230a・・・MixColumn
240、240a、240j・・・鍵加算部
241・・・暗号文ブロック
249・・・鍵情報
250・・・鍵スケジュール部
251、251a、251i、251j・・・拡大鍵
300・・・暗号化装置
310、310a・・・セレクタ
320・・・レジスタ
330a、330b、330c、330d、330x、330y・・・排他的論理和
340a・・・変形S箱群
341a・・・変形S箱(S100)
342a・・・変形S箱(S101)
343a・・・変形S箱(S110)
344a・・・変形S箱(S111)
345・・・乱数発生部
350a、350b・・・鍵加算部
360・・・SubByte’
370・・・ShiftRow
380・・・MixColumn’
Claims (6)
- 入力ビット列を、第1のマスク値を用いてマスク処理し、そのマスク処理されたビット列を暗号または復号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を第2のマスク値を用いてマスク処理して得られるビット列と等しい第1の出力ビット列に変換する第1のデータ変換手段と、
前記入力ビット列を前記第1のマスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号または前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第2のマスク値のビット反転である第2の反転マスク値を用いてマスク処理して得られるビット列と等しい第2の出力ビット列に変換する第2のデータ変換手段と、
前記入力ビット列を前記第1のマスク値のビット反転である第1の反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号または前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第2のマスク値を用いてマスク処理して得られるビット列と等しい第3の出力ビット列に変換する第3のデータ変換手段と、
前記入力ビット列を前記第1の反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号または前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第2の反転マスク値を用いてマスク処理して得られるビット列と等しい第4の出力ビット列に変換する第4のデータ変換手段と、
乱数ビット列を生成する生成手段と、
前記乱数ビット列に従い、前記第1のデータ変換手段乃至前記第4のデータ変換手段が出力した前記第1の出力ビット列乃至前記第4の出力ビット列のうち、いずれか1つを選択する選択手段と
を備えることを特徴とする非線形データ変換器。 - 入力ビット列を、第1のマスク値を用いてマスク処理し、そのマスク処理されたビット列を暗号または復号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を第2のマスク値を用いてマスク処理して得られるビット列と等しい第1の出力ビット列に変換する第1のデータ変換手段と、
前記第1のデータ変換手段が出力する前記第1の出力ビット列をビット反転し、第2の出力ビット列として出力する第1の反転手段と、
前記入力ビット列を前記第1のマスク値のビット反転である第1の反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号または前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第2のマスク値を用いてマスク処理して得られるビット列と等しい第3の出力ビット列に変換する第2のデータ変換手段と、
前記第2のデータ変換手段が出力する前記第3の出力ビット列をビット反転し、第4の出力ビット列として出力する第2の反転手段と、
乱数ビット列を生成する生成手段と、
前記乱数ビット列に従い、前記第1のデータ変換手段が出力した前記第1の出力ビット列、前記第1の反転手段が出力した前記第2の出力ビット列、前記第2のデータ変換手段が出力した前記第3の出力ビット列、または前記第2の反転手段が出力した前記第4の出力ビット列のうち、いずれか1つを選択する選択手段と
を備えることを特徴とする非線形データ変換器。 - 秘密情報である鍵情報から第j(jは1以上z以下の整数;zは2以上の整数)拡大鍵を生成する鍵スケジュール手段と、第j乱数ビット列を生成する乱数生成手段と、前記第j乱数ビット列とあらかじめ定められた第1のマスク値および第2のマスク値とに基づいて第j段第1マスク値および第j段第2マスク値を作成するマスク作成手段と、外部から入力された平文ブロックに基づくビット列から第1段ビット列を出力する前処理部と、第j段ビット列に対して暗号化演算を行い第j+1段ビット列を出力する第j段の段関数演算部と、第z+1段ビット列に基づき暗号化結果を出力する後処理部とを備える暗号化装置であって、
前記第j段の段関数演算部が、
前記第j段ビット列に基づく変換前ビット列を、前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を暗号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第1の変換後ビット列に変換する第1のデータ変換手段と、
前記変換前ビット列を前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値のビット反転である第j段第2反転マスク値を用いてマスク処理して得られるビット列と等しい第2の変換後ビット列に変換する第2のデータ変換手段と、
前記変換前ビット列を前記第j段第1マスク値のビット反転である第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第3の変換後ビット列に変換する第3のデータ変換手段と、
前記変換前ビット列を前記第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2反転マスク値を用いてマスク処理して得られるビット列と等しい第4の変換後ビット列に変換する第4のデータ変換手段と、
前記第j乱数ビット列に従い、前記第1のデータ変換手段乃至前記第4のデータ変換手段が出力した前記第1の変換後ビット列乃至前記第4の変換後ビット列のうち、いずれか1つを選択する選択手段と、
前記選択手段により選択された前記変換後ビット列に基づくビット列を前記第j+1段ビット列として出力する出力手段と
を備えることを特徴とする暗号化装置。 - 秘密情報である鍵情報から第j(jは1以上z以下の整数;zは2以上の整数)拡大鍵を生成する鍵スケジュール手段と、第j乱数ビット列を生成する乱数生成手段と、前記第j乱数ビット列とあらかじめ定められた第1のマスク値および第2のマスク値とに基づいて第j段第1マスク値および第j段第2マスク値を作成するマスク作成手段と、外部から入力された暗号文ブロックに基づくビット列から第1段ビット列を出力する前処理部と、第j段ビット列に対して復号演算を行い第j+1段ビット列を出力する第j段の段関数演算部と、第z+1段ビット列に基づき復号結果を出力する後処理部とを備える復号装置であって、
前記第j段の段関数演算部が、
前記第j段ビット列に基づく変換前ビット列を、前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を復号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第1の変換後ビット列に変換する第1のデータ変換手段と、
前記変換前ビット列を前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値のビット反転である第j段第2反転マスク値を用いてマスク処理して得られるビット列と等しい第2の変換後ビット列に変換する第2のデータ変換手段と、
前記変換前ビット列を前記第j段第1マスク値のビット反転である第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第3の変換後ビット列に変換する第3のデータ変換手段と、
前記変換前ビット列を前記第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2反転マスク値を用いてマスク処理して得られるビット列と等しい第4の変換後ビット列に変換する第4のデータ変換手段と、
前記第j乱数ビット列に従い、前記第1のデータ変換手段乃至前記第4のデータ変換手段が出力した前記第1の変換後ビット列乃至前記第4の変換後ビット列のうち、いずれか1つを選択する選択手段と、
前記選択手段により選択された前記変換後ビット列に基づくビット列を前記第j+1段ビット列として出力する出力手段と
を備えることを特徴とする復号装置。 - 秘密情報である鍵情報から第j(jは1以上z以下の整数;zは2以上の整数)拡大鍵を生成する鍵スケジュール手段と、第j乱数ビット列を生成する乱数生成手段と、前記第j乱数ビット列とあらかじめ定められた第1のマスク値および第2のマスク値とに基づいて第j段第1マスク値および第j段第2マスク値を作成するマスク作成手段と、外部から入力された平文ブロックに基づくビット列から第1段ビット列を出力する前処理部と、第j段ビット列に対して暗号化演算を行い第j+1段ビット列を出力する第j段の段関数演算部と、第z+1段ビット列に基づき暗号化結果を出力する後処理部とを備える暗号化装置であって、
前記第j段の段関数演算部が、
前記第j段ビット列に基づく変換前ビット列を、前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を暗号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第1の変換後ビット列に変換する第1のデータ変換手段と、
前記第1のデータ変換手段が出力する前記第1の変換後ビット列をビット反転し、第2の変換後ビット列として出力する第1の反転手段と、
前記変換前ビット列を前記第j段第1マスク値のビット反転である第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記暗号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第3の変換後ビット列に変換する第2のデータ変換手段と、
前記第2のデータ変換手段が出力する前記第3の変換後ビット列をビット反転し、第4の変換後ビット列として出力する第2の反転手段と、
前記第j乱数ビット列に従い、前記第1の変換後ビット列乃至前記第4の変換後ビット列のうち、いずれか1つを選択する選択手段と、
前記選択手段により選択された前記変換後ビット列に基づくビット列を前記第j+1段ビット列として出力する出力手段と
を備えることを特徴とする暗号化装置。 - 秘密情報である鍵情報から第j(jは1以上z以下の整数;zは2以上の整数)拡大鍵を生成する鍵スケジュール手段と、第j乱数ビット列を生成する乱数生成手段と、前記第j乱数ビット列とあらかじめ定められた第1のマスク値および第2のマスク値とに基づいて第j段第1マスク値および第j段第2マスク値を作成するマスク作成手段と、外部から入力された暗号文ブロックに基づくビット列から第1段ビット列を出力する前処理部と、第j段ビット列に対して復号演算を行い第j+1段ビット列を出力する第j段の段関数演算部と、第z+1段ビット列に基づき復号結果を出力する後処理部とを備える復号装置であって、
前記第j段の段関数演算部が、
前記第j段ビット列に基づく変換前ビット列を、前記第j段第1マスク値を用いてマスク処理し、そのマスク処理されたビット列を復号方式として定められた非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第1の変換後ビット列に変換する第1のデータ変換手段と、
前記第1のデータ変換手段が出力する前記第1の変換後ビット列をビット反転し、第2の変換後ビット列として出力する第1の反転手段と、
前記変換前ビット列を前記第j段第1マスク値のビット反転である第j段第1反転マスク値を用いてマスク処理し、そのマスク処理されたビット列を前記復号方式として定められた前記非線形変換方式に従いデータ変換し、その変換されたビット列を前記第j段第2マスク値を用いてマスク処理して得られるビット列と等しい第3の変換後ビット列に変換する第2のデータ変換手段と、
前記第2のデータ変換手段が出力する前記第3の変換後ビット列をビット反転し、第4の変換後ビット列として出力する第2の反転手段と、
前記第j乱数ビット列に従い、前記第1の変換後ビット列乃至前記第4の変換後ビット列のうち、いずれか1つを選択する選択手段と、
前記選択手段により選択された前記変換後ビット列に基づくビット列を前記第j+1段ビット列として出力する出力手段と
を備えることを特徴とする復号装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007137842A JP4936996B2 (ja) | 2007-05-24 | 2007-05-24 | 非線形データ変換器、暗号化装置、および復号装置 |
US12/053,143 US8401180B2 (en) | 2007-05-24 | 2008-03-21 | Non-linear data converter, encoder and decoder |
EP08009368A EP1995906A1 (en) | 2007-05-24 | 2008-05-21 | Non-linear data converter, encoder and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007137842A JP4936996B2 (ja) | 2007-05-24 | 2007-05-24 | 非線形データ変換器、暗号化装置、および復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008292742A JP2008292742A (ja) | 2008-12-04 |
JP4936996B2 true JP4936996B2 (ja) | 2012-05-23 |
Family
ID=39523743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007137842A Expired - Fee Related JP4936996B2 (ja) | 2007-05-24 | 2007-05-24 | 非線形データ変換器、暗号化装置、および復号装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8401180B2 (ja) |
EP (1) | EP1995906A1 (ja) |
JP (1) | JP4936996B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
JP5202350B2 (ja) * | 2009-01-16 | 2013-06-05 | 三菱電機株式会社 | 暗号処理装置及び暗号処理方法及び暗号処理プログラム |
FR2941342B1 (fr) * | 2009-01-20 | 2011-05-20 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve. |
US8687802B2 (en) * | 2009-03-30 | 2014-04-01 | The Regents Of The University Of California | Method and system for accelerating the deterministic enciphering of data in a small domain |
JP2010245881A (ja) * | 2009-04-07 | 2010-10-28 | Toshiba Corp | 暗号処理装置 |
FR2952773B1 (fr) * | 2009-11-13 | 2012-07-20 | Inst Telecom Telecom Paristech | Circuit electronique de faible complexite protege par masquage personnalise |
WO2011101994A1 (ja) * | 2010-02-22 | 2011-08-25 | 株式会社東芝 | 暗号化装置 |
JP5060606B2 (ja) * | 2010-09-17 | 2012-10-31 | 株式会社東芝 | 暗号化装置 |
US8958550B2 (en) * | 2011-09-13 | 2015-02-17 | Combined Conditional Access Development & Support. LLC (CCAD) | Encryption operation with real data rounds, dummy data rounds, and delay periods |
JP5481455B2 (ja) * | 2011-09-27 | 2014-04-23 | 株式会社東芝 | 暗号処理装置 |
JP5818768B2 (ja) * | 2012-10-18 | 2015-11-18 | 日本電信電話株式会社 | マスク生成装置、情報処理装置、及びその方法、プログラム |
JPWO2015059845A1 (ja) * | 2013-10-24 | 2017-03-09 | 日本電気株式会社 | 暗号化処理回路及びその方法及びプログラム並びに復号処理回路 |
DE102014004378A1 (de) * | 2014-03-26 | 2015-10-01 | Giesecke & Devrient Gmbh | Speichereffiziente seitenkanalgeschützte Maskierung |
DE102015116049B3 (de) * | 2015-09-23 | 2017-02-16 | Infineon Technologies Ag | Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis |
WO2017145317A1 (ja) * | 2016-02-25 | 2017-08-31 | 楽天株式会社 | ブロック符号化装置、ブロック復号化装置、情報処理装置、プログラム、ブロック符号化方法及びブロック復号化方法 |
CN109951268B (zh) * | 2019-02-18 | 2020-12-22 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP3844116B2 (ja) * | 2001-04-16 | 2006-11-08 | 株式会社ルネサステクノロジ | 暗号化・復号化装置とicカード |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
EP1486026A1 (en) * | 2002-03-07 | 2004-12-15 | Axalto SA | Method for making safe an electronic cryptography assembly with a secret key |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
FR2880485B1 (fr) * | 2005-01-06 | 2007-03-16 | Canon Europa Nv Naamlooze Venn | Procedes de stockage et de lecture d'un contenu, du type mettant en oeuvre un protocole de protection de contenu, dispositifs source, de stockage et recepteur correspondants. |
JP4783104B2 (ja) | 2005-09-29 | 2011-09-28 | 株式会社東芝 | 暗号化/復号装置 |
-
2007
- 2007-05-24 JP JP2007137842A patent/JP4936996B2/ja not_active Expired - Fee Related
-
2008
- 2008-03-21 US US12/053,143 patent/US8401180B2/en not_active Expired - Fee Related
- 2008-05-21 EP EP08009368A patent/EP1995906A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US8401180B2 (en) | 2013-03-19 |
EP1995906A1 (en) | 2008-11-26 |
JP2008292742A (ja) | 2008-12-04 |
US20080292100A1 (en) | 2008-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4936996B2 (ja) | 非線形データ変換器、暗号化装置、および復号装置 | |
JP4127472B2 (ja) | データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
US6769063B1 (en) | Data converter and recording medium on which program for executing data conversion is recorded | |
US8731188B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
WO2009122464A1 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
JPH0863097A (ja) | データを暗号化するための対称暗号化方法およびシステム | |
TWI595460B (zh) | Data processing device, information processing device, data processing method and program | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
WO2008026622A1 (en) | Encryption device, encryption method, and computer program | |
JP4515716B2 (ja) | 拡大鍵生成装置、暗号化装置および暗号化システム | |
JPWO2010109516A1 (ja) | データ処理装置及びデータ処理方法 | |
JP3782210B2 (ja) | 暗号装置 | |
JP2002510058A (ja) | 2進データ・ブロックの暗号変換のための方法 | |
JP6089668B2 (ja) | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム | |
JP2010507813A (ja) | 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置 | |
JPWO2008117804A1 (ja) | ストリーム暗号向け擬似乱数生成装置とプログラムと方法 | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
Algazy et al. | Investigation of the different implementations for the new cipher Qamal | |
JP3017726B2 (ja) | データ変換装置 | |
JP3478306B2 (ja) | 暗号装置 | |
JP2000089666A (ja) | 暗号化/復号化装置 | |
JP3017725B2 (ja) | データ変換装置 | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JPWO2009034929A1 (ja) | 暗号化方法、暗号装置及び暗号処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100426 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120119 |
|
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: 20120124 |
|
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: 20120221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |