JP4589327B2 - 電子素子及びデータ処理方法 - Google Patents

電子素子及びデータ処理方法 Download PDF

Info

Publication number
JP4589327B2
JP4589327B2 JP2006527641A JP2006527641A JP4589327B2 JP 4589327 B2 JP4589327 B2 JP 4589327B2 JP 2006527641 A JP2006527641 A JP 2006527641A JP 2006527641 A JP2006527641 A JP 2006527641A JP 4589327 B2 JP4589327 B2 JP 4589327B2
Authority
JP
Japan
Prior art keywords
random number
input
bit
output
signal
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 - Lifetime
Application number
JP2006527641A
Other languages
English (en)
Other versions
JPWO2006006199A1 (ja
Inventor
大輔 鈴木
稔 佐伯
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2006006199A1 publication Critical patent/JPWO2006006199A1/ja
Application granted granted Critical
Publication of JP4589327B2 publication Critical patent/JP4589327B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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/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)
  • Logic Circuits (AREA)

Description

本発明は、暗号アルゴリズムを実現する半導体デバイスを構成する電子素子に関する。例えば、デバイス内で処理される秘密情報をデバイスの消費電力から特定する攻撃に対して対抗する電子素子、データ処理方法に関する。
従来の半導体デバイスに関する秘密情報保護のための対抗措置は、CPU(Central Processing Unit)に代表される、ある特定の半導体デバイスを利用したソフトウェアによる対抗措置と、半導体デバイスそのものへのハードウェアによる対抗措置の2つに大別される。
前者のソフトウェアによる対抗措置は、ICカードに代表されるCPUとメモリとを併せ持つデバイス構成で実現される。例えば、特開2000−066585号公報では、広範に用いられている共通鍵ブロック暗号DES(Data Encryption Standard)に対して、そのアルゴリズムで使用されるS−boxと呼ばれる置換テーブルを、あらかじめ決められた規則Xに従って乱数パラメータRを用いて、アルゴリズムで規定されているS−boxと異なる置換テーブルの複数個分を事前に計算し、メモリ上にその結果を格納する。アルゴリズムの処理の際は、平文データM(もしくは暗号文データC)と鍵データKに加えて乱数パラメータRを用いて暗号文データC(平文データM)を処理する。これにより、通常のM(C)とKのみによる処理と比較して、Rのとりうる場合の数の分だけ処理フローが変化するため、それに伴う消費電力も多様化する。また、乱数パラメータRを用いることで、処理の中間値は予測不能となるため、消費電力から秘密情報を解読することは不可能であると説明されている。この他に、特表2002−540654号公報も類似の対抗措置であるが、前記の規則X及び乱数パラメータRのとり方が異なるだけで、本質的には同等の対抗措置である。
後者のハードウェアによる対抗措置は、アルゴリズムを半導体デバイスで実装する際の、その設計手法により実現される。例えば、特表2003−526134号公報では、デジタル回路の基本素子であるANDゲートに対して、そのスイッチング特性が相補的な(打ち消しあうような)INV−ANDゲートを対に実装することを対抗措置としている(以下これをゲートペアと略記する)。これによりアルゴリズムの中間値にデバイスの消費電力が依存しないため、消費電力から秘密情報を解読することは不可能であると説明されている。また、類似の対抗措置として、特開2002−311826号公報がある。これはゲート単位でペアを構成せずにある回路単位(この例の場合S−boxを実現する回路)でペアを構成している。しかし、これは、見かけ上の違いだけで、本質的には特表2003−526134号公報と全く同じ対抗措置である。
上記従来のゲートペアによる対抗措置は、原理的に消費電力から秘密情報を解読される可能性がある。以下にその理由を説明する。
ゲートペアの安全性の根拠はANDゲートとINV−ANDゲートが完全に相補的な動作を行うことに基づいている。この条件を満たすためには、対となるANDゲートとINV−ANDゲートが同じタイミングで動作し、かつそのゲートの先に接続される負荷が等しくなければならない。何故ならば、動作するタイミングが微小でもずれた場合、観測される消費電力にも時間差が発生し、それぞれのゲートに起因する電力は位相がずれて観測されるからである。また、あるゲートペアにおけるANDゲートとINV−ANDゲートの負荷が異なる場合は、その2つゲートが動作した直後の消費電力が異なる。このため、どちらのゲートが動作したかが容易に判別可能となり、相補的な動作とはならない。相補的な動作を行うために追加したゲート(以下これをダミーゲートという)は、論理実現のためには不必要なゲートであり、そのゲートの出力は使用されない。よって、必要なゲートと比較して、ダミーゲートは、その先の負荷が小さくなる傾向にある。同一の負荷を実現するために、ゲートのペアではなく、回路全体に対してペアを形成した場合、例として特開2002−311826号公報のような対抗措置の場合、対応するゲートペアが同じタイミングで動作することを保証するのは、非常に困難である。これらの問題は、ゲートペアまたは回路ペアが相補的な動作を実現するために、その出力ノードが2つ存在することに起因する。
特開2000-066585号公報 特表2002−540654号公報 特表2003−526134号公報 特開2002−311826号公報
本発明は、1つの出力ノードで原理的に相補的な動作を行う半導体素子を構成することで、前記の時間差の問題及び負荷の問題を解決することを目的とする。
この発明の電子素子は、
所定のデータと第1乱数との排他的論理和の結果を入力信号として入力し、入力した入力信号に基いて所定の論理演算を実行し、実行した論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とする。
この発明の電子素子は、
n(n≧1)ビットのデータにnビットの第1乱数が排他的論理和されたデータを示すXORデータと、nビットの第1乱数と、1ビットの第2乱数とを入力信号として入力し、XORデータと第1乱数との排他的論理和によりnビットのデータを算出し、算出したnビットのデータの各ビットを用いて所定の論理演算を実行し、実行した論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とする。
前記第1乱数は、
nビットの各ビットが同一の値であり、
前記第2乱数は、
前記第1乱数の各ビットの値と等しい値であることを特徴とする。
前記電子素子は、
入力信号の状態変化に依存せず、過渡的な処理を行わずに出力信号を出力することを特徴とする。
前記電子素子は、さらに、
出力信号の出力を指令する指令信号を入力するとともに、指令信号を入力した場合に、出力信号を出力することを特徴とする。
前記所定の論理演算は、
論理積(AND)、否定論理積(NAND)、論理和(OR)、否定論理和(NOR)、排他的論理和(XOR)のうち、いずれかであることを特徴とする。
この発明の電子素子は、
複数のトランジスタから構成され、第1乱数と第2乱数とnビット(n≧1)のデータとを入力して所定の信号を出力信号として出力する電子素子において、
第1乱数と第2乱数とnビットのデータとを入力した場合に、
第1乱数とnビットのデータとの排他的論理和を実行し排他的論理和の実行結果を示す各ビットを用いて所定の論理演算を行い所定の論理演算の結果と第2乱数との排他的論理和を実行することにより得られる結果と等価な結果を示す出力信号を、複数のトランジスタのスイッチングにより出力することを特徴とする。
前記第1乱数は、
各ビットが同一の値であるnビットの乱数であり、
前記第2乱数は、
前記第1乱数の各ビットの値と等しい値である1ビットの乱数であることを特徴とする。
前記電子素子は、
前記複数のトランジスタのスイッチングを同時に行うことを特徴とする。
前記電子素子は、
出力信号の出力を指令する指令信号を入力するとともに、指令信号を入力した場合に、出力信号を出力することを特徴とする。
この発明の電子素子は、
第1乱数と第2乱数とnビット(n≧1)のデータとを入力して所定の信号を出力信号として出力する電子素子において、
第1乱数と第2乱数とnビットのデータとを入力する入力部と、
0と1とにより構成される論理データを格納する格納部と、
前記入力部が第1乱数と第2乱数とnビットのデータとを入力した場合に、第1乱数とnビットのデータとの排他的論理和を実行し排他的論理和の実行結果を示す各ビットを用いて所定の論理演算を行い所定の論理演算の結果と第2乱数との排他的論理和を実行することにより得られる結果と等価な結果を、スイッチングにより前記格納部が格納する論理データから取得し出力信号として出力する複数のトランジスタと
を備えたことを特徴とする。
前記第1乱数は、
各ビットが同一の値であるnビットの乱数であり、
前記第2乱数は、
前記第1乱数の各ビットの値と等しい値である1ビットの乱数であることを特徴とする。
前記複数のトランジスタは、
スイッチングを同時に行うことを特徴とする。
前記入力部は、さらに、
出力信号の出力を指令する指令信号を入力し、
前記電子素子は、
指令信号を入力した場合に、出力信号を出力することを特徴とする。
この発明のデータ処理方法は、
所定のデータと第1乱数との排他的論理和の結果を入力信号として入力し、入力した入力信号に基づき所定の論理演算を実行し、実行した論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とする。
この発明のデータ処理方法は、
nビットのデータにnビットの第1乱数が排他的論理和されたデータを示すXORデータと、nビットの第1乱数と、1ビットの第2乱数とを入力信号として入力し、XORデータと第1乱数との排他的論理和によりnビットのデータを算出し、算出したnビットデータの各ビットを用いて所定の論理演算を実行し、実行した論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とする。
この発明により、相補的な動作を行う回路を設けることなく、消費電力から秘密情報を特定しようとする攻撃に対抗することができる。
実施の形態1.
図1〜図11を用いて、実施の形態1を説明する。実施の形態1は、非線形変換の処理を行う基本素子A、線形変換の処理を行う基本素子B、及び基本素子A、基本素子Bを用いて暗号アルゴリズムを処理する回路に関する。なお、以下において、nビットのデータAと、nビットのデータBとのビットどうしの排他的論理和を、A<XOR>Bとも表記する。
任意の暗号アルゴリズムFは、その安全性を堅持するために、必ず、非線形変換Si(0≦i≦p)と、線形変換Lj(0≦j≦q)との組み合わせからなる。これは、デジタル回路で実装した場合に、AND(論理積)ゲートとXOR(排他的論理和)ゲートの組み合わせに等価変換できることを意味する。当然、OR(論理和)、NOR(否定論理和)、NAND(否定論理積)等の基本ゲートを組み合わせても実装できる。しかし、それらの処理も、全てANDゲートとXORゲートとの組み合わせに等価変換できる。このため、ANDとXORを中心に説明する。請求の範囲は、AND、XOR、OR、NOR、NAND等の全ての基本ゲートに対するものである。
まず、非線形変換Siを構成する基本素子Aについて説明する。以下、非線形変換を構成する素子を基本素子Aと呼ぶものとする。また、非線形変換Siは、基本素子Aにより構成されているとする。
図1は、基本素子Aが2bitの入力データ(x1,y2)を入力する場合を想定し、基本素子Aの処理を説明するための便宜的な素子20を示す図である。図1の素子20は、基本素子Aの処理を説明するための便宜的な構成であり、基本素子Aの実施例を示すものではない。基本素子Aの具体的な実施例は、図6の基本素子A100として後述する。
素子20は、XOR22、ANDゲート23、XOR27、ANDゲート24を備える。素子20は、(xi,yi)に乱数rが排他的論理和されたx1(x1=xi^r)、x2(x2=xj^r)を入力する。また、乱数r及び制御信号en26を入力する。
素子20の動作を説明する。
(1)素子20は、データ(xi,yi)(所定のデータの一例)と乱数r(第1乱数の一例)との排他的論理和である、x1(x1=xi^r)、x2(x2=xj^r)を入力する。
(2)XOR22は、(x1、x2)(XORデータの一例)及び乱数rを入力し、排他的論理和を実行する。すなわち、「xi^r^r」、及び「xj^r^r」を実行する。XOR22の出力は、xiとxjとなる。
(3)ANDゲート23は、xi、xjを入力し、「xi&xj」を出力する(出力点25)。
(4)XOR27は、乱数r(第2乱数の一例)と「xi&xj」を入力し、「xi&xj^r」を出力する。
(5)ANDゲート24は、「x&x^r」と制御信号en26とを入力し、制御信号en26が「1」のとき、「z=x&x^r」を出力する。ただし、これは一例であり、基本素子Aの動作は、制御信号enの有意を「0」とすれば、ANDゲート24をORゲートで置き換えた動作で実現してもよい。
また、制御信号enが「立ち上がり」もしくは「立ち下がり」で有意を決定する信号であるとするならば、基本素子Aの動作は、ANDゲート24をフリップフロップで置き換え、制御信号enが「立ち上がり」もしくは「立ち下がり」でXOR27の出力を取り込む方式の動作で実現してもよい。以下、基本素子Aの動作は、説明の理解を簡単にするために制御信号enの有意を「1」とし、前述のANDゲート24による動作で説明する。請求の範囲は、信号の有意が「0」、「1」、「立ち上がり」、「立ち下がり」の全ての方式に対するものである。また、これは基本素子Bについても同様である。
次に、n−bit入力の場合を、図1に示した2bit入力の素子20と対比させて説明する。非線形変換Siの各非線形処理において、例えば、n入力ANDを下記のような(1a)から(4a)の処理を行う基本素子Aで実現する。基本素子Aは、入力として、n−bitのデータであるX(x1,x2,・・・,xn)と、n−bitの乱数であるRa(r1,r2,・・・,rn)(第1乱数の一例)と、1bitの乱数であるrb(第2乱数の一例)と制御信号en(指令信号の一例)を入力する。そして、出力として、
z=((x1^r1)&(x2^r2)&・・・(xn^rn)^rb)&en
を出力する。
(1a)n−bitの入力X(x1,x2,・・・,xn)(XORデータの一例)を、nビットの乱数Ra(r1,r2,・・・,rn)と排他的論理和する(なお、x1,x2等は、入力前に乱数Raと排他的論理和されているものとする)。これをX’とする。素子20の場合では、x1=xi^r、x2=xj^rである。また、乱数Ra=(r1,r2)=(r,r)である。よって、X’=(xi,xj)である。
(2a)X’の全てのビットについて論理積(AND)をとる。これをx’’とする。素子20の場合は、x’’=xi&xjとなる。
(3a)x’’と、1bitの乱数であるrbとを排他的論理和する。これをyとする。素子20の場合は、rb=rであり、y=xi&xj^rとなる。
(4a)yと制御用信号enのANDをとり出力する。これをzとする。素子20の場合は、上述のように、z=xi&xj^rとなる。なお、zを出力する場合は、すべての入力信号が確定後、制御信号enを「1」にすることにより、一気に出力する。
上記の(1a)から(4a)の処理を、全て単一の演算素子で実行し、これを基本素子Aとして非線形変換Siを構成する。zを出力する場合は、前述のように、すべての入力信号が確定後、制御信号enにより出力zを一気に出力する。
基本素子Aの特徴は、以下の点にある。すなわち、従来の暗号処理アルゴリズムの処理の対象と成るデータ(xi、xj等)と乱数とを排他的論理和したデータを入力する。そして、従来の処理の対象となるデータに対する所定の論理演算の結果に乱数を排他的論理和した状態で出力する。さらに、出力の時には、すべて入力信号が確定した後に出力する。この特徴により、デバイス内で処理される秘密情報をデバイスの消費電力から特定しようとする攻撃に対して、対抗することができる。対抗できるのは次の理由による。出力zには乱数rが排他的論理和されて出力される。この乱数rは「0」と「1」が1/2の確率で出現するため、出力zの信号遷移率αは、1/2になる。また、zを出力する場合は、すべて入力信号の状態遷移が完了した場合に、処理を実行し出力信号zを出力する。ここで「処理」とは、n−bitのデータであるX(XORデータ)と乱数Ra(第1乱数)との排他的論理和によりnビットのデータを算出し、算出したnビットデータの各ビットを用いてAND演算(所定の論理演算の一例)を実行し、実行したAND演算(論理演算)の結果と乱数rb(第2乱数)との排他的論理和を実行する一連の過程をいう。このため、攻撃者からは、出力zの電力の変動を検出することができないからである。後述の基本素子Bについても同様である。この特徴点については、さらに、図8〜図11の説明で述べる。
基本素子Aの構成をより簡単にするために、乱数を1bitのみ用いることも可能である。すなわち
(1b)n−bitの入力X(x1,x2,・・・,xn)を、1bitの乱数rによるn−bit連結と排他的論理和する。これをX’とする。すなわち、
X’=(x1^r,x2^r,・・・,xn^r)
(2b)X’の全てのbitについてANDをとる。これをx’’とする。すなわち、
x’’=(x1^r)&(x2^r)&・・・&(xn^r)
(3b)x’’とrを排他的論理和する。これをyとする。すなわち、
y=(x1^r)&(x2^r)&・・・&(xn^r)^r
(4b)yと制御用信号enのANDをとり出力とする。これをzとする。
(1b)から(4b)の処理を全て単一の演算素子で実行し、これを基本素子AとしてSiを構成する。すなわち
基本素子A(X):
z=((x1^r)&(x2^r)&・・・(xn^r)^r)&en
となる。
次に、線形変換Ljを構成する基本素子Bの概略を説明する。
以下、線形変換を構成する素子を基本素子Bと呼ぶ。線形変換Ljは、基本素子Bにより構成されているとする。線形変換Ljの各線形処理において、例えば、n入力XORを下記のような処理を行う素子で実現する。
(1c)n−bitの入力X(x1,x2,・・・,xn)の全てのビットについてXORをとる。これをx’とする。すなわち、
x’=x1^x2^・・・^xn
(2c)x’と1bitの乱数rを排他的論理和する。これをyとする。すなわち、
y=(x1^x2^・・・^xn)^r
(3c)yと制御用信号enのANDをとり出力とする。これをzとする。
(1c)から(3c)の処理を全て単一の演算素子で実行し、これを基本素子BとしてLjを構成する。すなわち
基本素子B(X):
z=(x1^x2^・・・^xn^r)&en
となる。ここで、入力Xが既に乱数成分を排他的論理和されている場合、例えば、A(X)の出力である場合、Xが奇数ビット列であれば(2c)の処理は行わない。
基本素子A、基本素子Bの入力として用いる制御用信号enは、各基本素子のその他の入力信号より十分遅れて変化させる。すなわち、前記の基本素子A、基本素子Bの場合、制御用信号enが論理「1」のときのみ、
「(暗号アルゴリズムの中間値もしくは処理結果)^乱数値」
の形で各基本素子は結果を出力し、それ以外の場合は常に0を出力する。これら基本素子A、基本素子Bを用いて、暗号アルゴリズムFを構成する。後述する図2の「最後の変換層」の場合のように、基本素子Aもしくは基本素子Bの処理結果に対して、直前の処理で使用した乱数を排他的論理和することで暗号文または、平文を得ることができる。
次に、図2により、基本素子A、基本素子Bを用いて暗号アルゴリズムを処理する回路について説明する。図2は、基本素子A、基本素子Bを用いて暗号アルゴリズムFの処理を行う回路30の構成の概略を示すブロック図である。基本素子A、基本素子Bは、暗号アルゴリズムの最小単位の基本演算に対する対抗措置であるため、適用アルゴリズムは限定されない。
回路30は、セレクタ2、乱数発生器3、排他的論理和4、排他的論理和5、非線形変換S16等、線形変換L27等、制御回路8、タイミング生成回路TG9、タイミング制御回路TC10、ANDゲート11、排他的論理和12、レジスタ13、レジスタ14を備える。非線形変換S16、線形変換L27等は、層を形成している。非線形変換Siは、基本素子Aで構成される。また、線形変換Ljは基本素子Bで構成される。
図3は、図2に示す回路30の動作を示すフローチャートである。図3を参照して、回路30の動作を説明する。
入力データX1(平文、暗号文、鍵等)は、排他的論理和4で乱数R1と処理され、X<XOR>R1となり、非線形変換S16へ入力される(S101)。なお、図2では、非線形変換S16、線形変換L2等の順に層を形成している。これは一例である。非線形変換層、線形変換層の順序、及び層数はアルゴリズムFと実装方法に依存する。排他的論理和5の上からの入力は0とし、乱数発生器3の一番上の出力は乱数R1である。また、非線形変換S16への右からの入力は乱数R1及び乱数R2である。非線形変換S16への左からは、前記の制御用信号en1を入力する(S102)。制御用信号en1は、入力信号であるX<XOR>R1、R1、及びR2の信号変化より遅れて“1”に変化する。この制御は、制御回路8、タイミング生成回路TG9、タイミング制御回路TC10で行う。非線形変換S16は、X1<XOR>R2を出力する(S103)。同様に、線形変換L27は、入力としてX1<XOR>R2、R2及びこれらの信号変化より遅れた制御用信号en2を入力する。これにより、線形変換L27は、X2<XOR>R2を出力する。これ以降、同様に、非線形変換、線形変換の処理を繰り返し行う(S104)。
なお、非線形変換、線形変換の回路を同一の回路で処理する場合は、最後の変換層Sn(あるいはLn)で出力した結果Xi<XOR>Rjをセレクタ2で選択し、再び排他的論理和4の入力とする。このとき、排他的論理和5の上からの入力はRjであり、乱数発生器3の一番上の出力はRj+1である。これより、排他的論理和4の右からの入力はRj<XOR>Rj+1となり、排他的論理和4の出力は、Xi<XOR>Rj+1となる(S105)。
暗号アルゴリズムFの処理に必要な非線形変換、線形変換の処理が終了した段階で、制御回路8は、ANDゲート11に対して“1”を入力する。これにより、最後の変換層Sn(あるいはLn)で出力した結果Xn<XOR>Rmは、Rmと排他的論理和12で処理され、データXnが出力される(S106)。
図4は、図2に示した回路30に対して、乱数を1bitに簡略化した回路31の構成を示す図である。例えば、回路31の非線形変換S1は、前述した、乱数を1bitのみ用いる基本素子Aにより構成されている。回路31は、回路30と比較して、回路上で用いる乱数の数を削減しているため、回路30よりも少ない回路面積で実装できる。
図5は、図2の回路30、図4の回路31における各層で用いる制御信号のタイミングを示した図である。暗号アルゴリズムの処理を開始するstart信号が有効になってから、入力データX1に対して、セレクタ2、排他的論理和4の処理が終了し、かつ非線形変換S1を構成する基本素子Aにその処理結果が十分伝播してから、最初の層S1の制御信号en(S1)が論理1に変化する。その後S1は演算結果を出力し、L2を構成する基本素子Bにデータが伝播する。全てのデータが伝播した段階で、L2の制御信号(L2)が論理1に変化する。同様の動作をその後の層に対して行い、最終的に最後の層であるS2i-1の制御信号en(S2i-1)が論理1に変化する。
上記の制御信号については、次の演算を行うために、各制御信号を論理0にする初期化処理が必要となる。初期化の方式は、全ての演算が終了した段階で行う方法がある。また、別の方法として、図5のように、上位層から順次初期化する方法もある。上位層から順次初期化する方法は、次の演算開始までの待ち時間を短縮できるため、高速処理を実現できる。しかし、初期化の対象となる層と次の層との層間に、初期化の対象となる層の出力を格納するレジスタが必要となる。このため、回路コストは増加する。
図6は、前述の基本素子Aの実施例として、トランジスタで具体的に構成した基本素子A100を示す図である。図6の基本素子A100は、x1(x1=xi^r)、x2(x2=xj^r)、及び乱数r、制御信号en(指令信号の一例)を入力する。そして、
z=((x1^r)&(x2^r)^r)&en
を出力する。zの式においてx1、及びx2と排他的論理和的論理和されている乱数rは第1乱数である。3つ目の乱数rは、第2乱数である。
図6を用いて、基本素子A100の構成を説明する。
(1)基本素子A100は、上部115と下部116との直列接続により構成される。上部115と下部116との間から出力信号zが出力される。
(2)図6において、記号「!」は、信号信号の反転を意味する。また、上部115を構成する各トランジスタに付されている右向き矢印「→」は、信号が「0」のときにトランジスタが導通することを示す。また、下部116を構成する各トランジスタに付されている左向き矢印「←」は、信号が「1」のときにトランジスタが導通することを示す。したがって、上部115は、信号が「0」のとき導通するトランジスタの集合である。また、下部116は、信号が「1」のとき導通するトランジスタの集合である。印加部113には、論理「1」に相当する電圧が印加される。
(3)印加部113に論理「1」に相当する電圧が印加された場合、各トランジスタのスイッチングにより
z=((x1^r)&(x2^r)^r)&en
が出力される。
(4)基本素子A100のトランジスタの構成を説明する。上部115は、トランジスタ101と、トランジスタ102とトランジスタ103との並列回路と、トランジスタ104とトランジスタ105との直列接続とトランジスタ106とが並列接続された並列回路とが、直列接続されて構成される。
(5)下部116は、トランジスタ107と、トランジスタ108とトランジスタ109との直列接続と、トランジスタ110とトランジスタ111との並列回路とトランジスタ112との直列接続とが、並列接続されて構成される。そして、トランジスタ107、トランジスタ109、及びトランジスタ112の一端は、アース114に接続されている。
(6)次に入力信号について説明する。入力信号は全て反転してトランジスタに入力する。
入力信号x1は、反転して、トランジスタ102、トランジスタ104、トランジスタ108、及びトランジスタ110に入力する。
(7)入力信号x2は、反転して、トランジスタ103、トランジスタ105、トランジスタ109、及びトランジスタ111に入力する。
(8)入力信号rは、反転して、トランジスタ106及びトランジスタ112に入力する。
(9)入力信号enは、反転して、トランジスタ101及びトランジスタ107に入力する。
前述のように、基本素子A100は、xi、xjのそれぞれに乱数rを排他的論理和したデータであるx1、x2を入力し、xi、xjに対する所定の論理演算の結果に乱数rを排他的論理和した状態で出力する。そして、出力する場合は、すべての入力信号が確定後に一気に出力する。すなわち、出力信号は、入力信号の過渡遷移の影響を受けない。また、入力から出力に至る途中のデータを生成することなく一気に出力する。これにより、消費電力から秘密情報を特定しようとする攻撃に対抗することができる。
図6の基本素子A100は、2入力AND型であり、前述のように、次のzを出力する。
A(x1、x2):z=((x1^r)&(x2^r)^r)&en
ここで、x1=xj^r、x2=xj^r
である。
図4の非線形変換S1を基本素子A100で構成した場合は、次のようになる。非線形変換S1の入力である、X<XOR>{r,r,r,・・・,r}、r、及び制御信号enについて、基本素子A100は、任意の2bitに対してA(xi^r,xj^r)の処理を行い、zを出力する。すなわち、
z=(((xi^r)^r)&((xj^r)^r))&en
となる。そして、en=1の場合、
z=xi&xj^r
を出力する。
図7は、基本素子A100の真理値表を示している。
1=0の場合において、出力zの信号が「0から1」あるいは「1から0」に遷移する信号遷移率α(x1=0)は、
α(x1=0)=P0×P1(x1=0)+ P1×P0(x1=0)=1/2
となる。
ここで、P0は、zが「0」になる確率である。P1はzが「1」になる確率である。真理値表から、
P0=4/8、
P1=4/8
である。
また、P1(x1=0)は、x1=0の条件下において、zが「1」になる確率である。P0(x1=0)は、x1=0の条件下において、zが「0」になる確率である。真理値表から、
P0(x1=0)=3/4、
P1(x1=0)=1/4
である。よって、
α(x1=0)=P0×P1(x1=0)+P1×P0(x1=0)
=4/8×1/4+4/8×3/4=1/2
となる。
1=1の場合も同様に計算すると、真理値表から、
P0(x1=1)=1/4、
P1(x1=1)=3/4
である。よって、
α(x1=1)=P0×P1(x1=1)+P1×P0(x1=1)
=4/8×3/4+4/8×1/4=1/2
となる。したがって、信信号遷移率αは、入力x1(あるいはx2)が0と1の場合で同じとなる。また、出力zについては、制御信号enにより、入力信号が確定後に一気に出力する。すなわち、出力信号は、入力信号の過渡遷移の影響を受けない。また、入力から出力に至る途中のデータを生成することなく一気に出力する。このため基本素子Aにおいては、消費電力から秘密情報を予測することはできない。
図8A〜図8Cは、基本素子A100における乱数rと制御信号enとの役割を説明する図である。前述の基本素子A100におけるxi&xjの処理を、乱数rと制御信号enを使用しない状態で処理した場合は、図8Aに示す2入力ANDゲートと同様となる。その場合の真理値表は、図8Bとなる。この場合、出力における信号遷移率αは、図8Bの真理値表より、
i=0のとき、α(xi=0)=1/4、
i=1のとき、α(xi=1)=1/2
となる。すなわち、信号遷移率αが異なる。
図8Cを用いて、詳しく説明する。まず、xi=0の場合において、出力zの信号が「0から1」あるいは「1から0」に遷移する信号遷移率α(xi=0)は、
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)=1/4
である。
ここで、P0は、zが「0」になる確率である。P1は、zが「1」になる確率である。図8Bの真理表から、P0=3/4、P1=1/4である。また、P1(xi=0)は、xi=0の条件下において、zが「1」になる確率である。P0(xi=0)は、xi=0の条件下においてzが「0」になる確率である。真理値表から、
P0(xi=0)=1、
P1(xi=0)=0
である。よって、
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)
=3/4×0+1/4×1=1/4
となる。
i=0の場合も同様に計算すると、真理値表から、
P0(xi=1)=1/2、
P1(xi=1)=1/2
である。よって、
α(xi=1)=P0×P1(xi=1)+P1×P0(xi=1)
=3/4×1/2+1/4×1/2=1/2
となる。
したがって、上記のように、
i=0のとき、α(xi=0)=1/4、
i=1のとき、α(xi=1)=1/2
となる。このように信号遷移率αに偏りが生じる。
よって、図8Aに示す2入力ANDは、片方の入力xi(あるいはxj)が0と1の場合で電力差が生じることになる。このため、消費電力からANDゲートの入力を予測することが可能となる。これにより、処理に用いられている秘密情報を特定することが可能になる。
次に、図9A〜図9Cを用いて、制御信号enについて説明する。図9Aに示すような制御信号enを用いない基本素子A’は、入力信号の変化に時間差がある場合、過渡遷移において乱数に依存しない信号変化が発生し、信号遷移率αに偏りが発生する。このため、秘密情報の特定が可能となる。図9Bは、図9Aの基本素子A’の真理値表を示す。また、図9Cは、基本素子A’の信号遷移率αを示す。図9Bの真理値表からは、出力zに関する信号遷移率α(xi=0)、信号遷移率α(xi=1)のいずれも1/2となる。しかし、入力信号の変化に時間差がある場合、次のようになる。例えば、基本素子A’において、図9Cに示すようにxi、xj、rの順に信号が変化する場合、xjが変化する時間において、信号遷移率αに図8C同様の偏りが発生する。したがって、消費電力からANDゲートの入力を予測することが可能となる。xi、xj、rの変化する順序が異なっても偏りが発生する時間がずれるだけである。なお、入力信号の変化に時間差がない場合は、問題はない。
図10A〜図10Cは、基本素子A100の処理を示す図である。
図10Aは、基本素子A100の入出力を示す図である。
図10Bは、基本素子A100の真理値表を示す図である。
図10Cは、入力信号の変化と出力信号zとの関係を示す図である。
図10Cでは、図10Bの真理値表から、信号遷移率αはxi、xjの0、1に依存せずに1/2となる。さらに、図10Cに示すように、制御信号enが0の間は、基本素子A100の出力zは、常に0である。よって、xi、xj、rの信号変化より遅く制御信号enを1にすることにより、出力zに過渡遷移は発生せず、信号遷移率αが均等である遷移しか発生しない。したがって、消費電力から秘密情報を特定することはできない。
このように、入出力値について、従来の処理の対象であった値であるxi、xj等に対して乱数を排他的論理和し、かつ、その出力は制御信号enによって演算した結果を出力する場合と任意の値を出力するような処理方式を、3入力以上のAND処理や、その他OR、NOR、NAND、XOR等にも適用し、非線形変換層、線形変換層を構成する。
前記の手法で基本素子を構成する際に、単に、従来の基本ゲートを組み合わせて、上記と同様の演算を行っても対抗措置として機能しない。例えば、図11は、図6の等価回路である。図11のANDゲート40は、xi&xjの処理を行うため、図8Aと同じ動作をすることを意味する。よって、信号遷移率αに偏りが生じるため、ANDゲート40の入力を予測することが可能となる。図11の「等価回路」は、図1の素子20と同一である。素子20の出力点25において、ANDゲート40と同様に信号遷移率αに偏りが生じる。このため、素子20は、基本素子Aを説明するための便宜的な構成である。電力消費からの秘密情報漏洩を防ぐため、入出力値について従来の値に対して乱数値を排他的論理和し、かつ、その出力は制御信号enによって一気に出力する処理を行うには、図6の基本素子A100のように、一気に出力zを出力する単一の演算素子で処理を実現する必要がある。
特表2003−526134号公報や特開2002−311826号公報のゲートペアや回路ペア等の、相補的な回路を実装することで信号遷移率αを均等化する方式は、相補的な動作を行う回路が同一のタイミングで動作しない限り、対抗措置として機能しない。一方、この実施の形態1の基本素子A100では、単体の演算素子で信号遷移率αが均等になるとともに、出力zに過渡遷移が生じない。このため、「相補的な動作を行う回路が同一のタイミングで動作することを要する」というような前記のような条件を必要としない。よって、効率よく対抗措置を実現することができる。また、図6の基本素子A100は、出力線は1本しか存在しない。したがって、ゲートペアや回路ペアのように「出力線の負荷の均等化」について考慮する必要がない。
実施の形態1の基本素子Aは、n−bitのデータと乱数Raとの排他的論理和的論理和のデータXを入力して所定の論理演算を実行し、論理演算の結果と乱数rbとの排他的論理和を出力信号として出力するので、出力信号の信号遷移率を均等にすることができる。このため、消費電力の偏りをなくすことにより、消費電力から秘密情報を特定しようとする攻撃に対抗することができる。
実施の形態1の基本素子Aは、一種類の乱数rを用いて処理を行うことにより乱数の種類を削減するので、多種類の乱数を用いる場合に比べて、実装面積を小さくすることができる。
実施の形態1の基本素子Aは、入力信号の状態遷移が完了した場合に、処理を実行して出力信号を出力するので、出力の信号遷移均等にすることができる。
実施の形態1の基本素子Aは、出力を指令する制御信号en(指令信号)により出力zを出力するので、信号遷移率を均等にすることができる。
実施の形態1の基本素子A100により、消費電力から秘密情報を特定しようとする攻撃に対抗することができる。また、基本素子A100は、トランジスタの回路構成によるハードウェアの対抗であるので、ソフトウェアの対抗策に比べて高速処理が可能である。
実施の形態1の基本素子A100は、一種類の乱数rを用いて処理を行うことにより乱数の種類を削減するので、多種類の乱数を用いる場合に比べて、実装面積を小さくすることができる。
実施の形態1の基本素子A100は、出力を指令する制御信号en(指令信号)により出力zを出力するので、信号遷移率を均等にすることができる。
実施の形態2.
次に、図12A〜図16を用いて、実施の形態2を説明する。実施の形態2は、メモリ素子を用いることにより、図6に示した実施の形態1の基本素子A100と等価な機能を実現するLUT200(後述の図15)を説明する。
まず、非線形層の例として、DESのS−boxの構成方法について説明する。その後、S−boxにLUT200を適用する場合を説明する。
「S−box」とは、ある入力に対して決められた出力を行う変換テーブルである。DESでは、6bit入力、4bit出力のテーブルが8種類定義されている。このような変換テーブルは、全てAND−XOR回路で実装できる。
図12Aは、DESアルゴリズムで定義されるS1テーブルの入出力を表す図である。図12Aに示すように、S1テーブルは、6bitのデータ{X5,X4,X3,X2,X1,X0}を入力して、4bitのデータ{y3,y2,y1,y0}に変換して出力する。
図12Bは、S1テーブルの内容を示す図である。図12BのS1テーブルにおいて、入力データ{X5,X4,X3,X2,X1,X0}の{X5,X0}から行が決定される。また、{X4,X3,X2,X1}から列が決定される。
図12Cは、入力値と出力値の一例を示す図である。
{X5,X4,X3,X2,X1,X0}={011011}
から、
{X5,X0}={01}=1
である。したがって、S1テーブルの2行目と決定される。次に、
{X4,X3,X2,X1}={1101}=13
である。よって、S1テーブルの14列目と決定される。よって、{011011}は、2行14列の「5」(0101)に換字される。
図12Bに示すS1テーブル1行目の「14、4、13、・・・0、7」は、図13に示すy0’からy3’の式に等価変形できる。同様に、2行目以降も変換可能である。図13の式は、図4の回路31の場合と同様に、図14に示すような、それぞれ1層の非線形層と1層の線形層で構成できる。図14では、図4の場合と同様に、入力データは、あらかじめ乱数rにより排他的論理和されて非線形層に入力される。次に、第1層の非線形層でAND処理が行われ、2層目の線形層でXORの処理が行われる。
これまでに説明した対抗措置は、図6の基本素子A100のように、MOSFET(Metal Oxide Semiconductor Field Effect Transistor)で構成することを想定していた。しかし、暗号アルゴリズムの回路をMOSFETレベルの設計で行わない場合も考えられる。例えば、FPGA(Field Programble Gate Array)に代表される書き換え可能な半導体デバイスとして設計する場合も考えられる。この場合は、あらかじめチップ上に実装されているSRAM(Static Random Access Memory)を基本に構成されたメモリ素子(以下これをLUTと略記する)や、フリップフロップに代表される記憶素子の内部状態と、その配線のみとを設計者が自由に変更可能な仕様となっている。このようなデバイスにおける実施形態を図15に示す。
図15は、図6の基本素子A100と等価な機能を、4入力1出力のLUT200を用いて実現した構成を示す図である。
LUT200は、基本素子A100と等価であり、入力としてx1、x2、r、enを入力する。出力zは、
z=((x1^r)&(x2^r)^r)&en
である。
LUT200は、入力部250、複数のSRAM260等(格納部)、及び複数のパストランジスタ280等を備える。SRAMは、論理関数を実現する値を格納する機能を持つ。データ列270(論理データ)は、各SRAMが格納するデータで構成される。パストランジスタは、左右の結線に対してのスイッチング機能を持つ。
図15のLUT200の構成を説明する。各パストランジスタは、ツリー構造の各ブランチに配置される。後述のように、各パストランジスタは、ブランチ201〜ブランチ230の30のブランチのそれぞれに配置される。入力信号線は、各ブランチに配置されたパストランジスタをON/OFFのスイッチングを行う。スイッチ機能としてのパストランジスタは、「0」が入力すると開く。
(1)次に、LUT200の構成を説明する。LUT200は、出力Zからブランチ201、ブランチ202が二分木に分岐する。ブランチ202は、ブランチ205、ブランチ206の二分木に分岐する。ブランチ205は、ブランチ211、ブランチ212の二分木に分岐する。ブランチ206は、ブランチ213、ブランチ214の二分木に分岐する。ブランチ211は、ブランチ223、ブランチ224の二分木に分岐する。ブランチ212は、ブランチ225、ブランチ226の二分木に分岐する。ブランチ213は、ブランチ227、ブランチ228の二分木に分岐する。ブランチ214は、ブランチ229、ブランチ230の二分木に分岐する。「ブランチ223、ブランチ224、・・・ブランチ230」のそれぞれには、SRAMが接続している。
(2)ブランチ201は、ブランチ202と同様に分岐していく。ブランチ201は、ブランチ203、ブランチ204の二分木に分岐する。ブランチ203は、ブランチ207、ブランチ208の二分木に分岐する。ブランチ204は、ブランチ209、ブランチ210の二分木に分岐する。ブランチ207は、ブランチ215、ブランチ216の二分木に分岐する。ブランチ208は、ブランチ217、ブランチ218の二分木に分岐する。ブランチ209は、ブランチ219、ブランチ220の二分木に分岐する。ブランチ210は、ブランチ221、ブランチ222の二分木に分岐する。「ブランチ215、ブランチ216、・・・ブランチ222」のそれぞれには、SRAMが接続している。図15では、ブランチ216、ブランチ218、、ブランチ220に接続しているSRAMには「1」が格納されている。その他のSRAMには「0」が格納されている。
(3)入力信号について説明する。入力信号xの反転信号は、ブランチ201に配置されたパストランジスタに入力する。入力信号xは、ブランチ202に配置されたパストランジスタに入力する。入力信号xの反転信号は、ブランチ203、ブランチ205に配置されたパストランジスタに入力する。入力信号xは、ブランチ204、ブランチ206に配置されたパストランジスタに入力する。入力信号rの反転信号は、ブランチ207、ブランチ209、ブランチ211、ブランチ213に配置されたパストランジスタに入力する。入力信号rは、ブランチ208、ブランチ210、ブランチ212、ブランチ214に配置されたパストランジスタに入力する。入力信号enの反転信号は、ブランチ215、ブランチ217、ブランチ219、ブランチ221、ブランチ223、ブランチ225、ブランチ227、ブランチ229に配置されたパストランジスタに入力する。入力信号enは、ブランチ216、ブランチ218、ブランチ220、ブランチ222、ブランチ224、ブランチ226、ブランチ228、ブランチ230に配置されたパストランジスタに入力する。
制御信号enの有意を「0」とするならば、前述のz=((x^r)&(x^r)^r)&enにおける「&en」の処理は、「|en」(制御信号enとのOR)に変更し、同様の考え方でLUTにより基本素子Aの等価な機能を実現できる。
なお、入力信号x1、x2、rが同時に入力するのであれば制御信号enは不要である。この場合、それぞれの該当するトランジスタは、同時にスイッチングする。
その他、2入力OR、NOR、NAND、XOR等にも同様の処理方式を適用することで、秘密情報を消費電力から特定する攻撃に対して、対抗することができる。
3入力以上の基本素子では、一般に、LUTの大きさは固定されている場合が多い。このため、図16に示すように、2入力の基本素子を組み合わせて構成することが現実的である。この場合、2本の異なる制御信号を用いる必要がある。これは、図16に示すように、LUT292の入力となるLUT291の出力と、LUT292におけるLUT291からの入力以外の入力について、信号変化の時間差があるため、制御信号を共有した場合は、前述した理由(入力信号の過渡遷移)から、乱数性が機能しなくなるためである。
実施の形態2のLUT200により、消費電力から秘密情報を特定しようとする攻撃に対抗することができる。
実施の形態2のLUT200は、一種類の乱数rを用いて処理を行うことにより乱数の種類を削減するので、多種類の乱数を用いる場合に比べて、実装面積を小さくすることができる。
実施の形態2のLUT200は、複数のトランジスタがスイッチングを同時に行うので、入力から出力に至る途中経過は出現せず、信号遷移率を均等にすることができる。
実施の形態2のLUT200は、出力を指令する制御信号en(指令信号)により出力zを出力するので、信号遷移率を均等にすることができる。
実施の形態3.
次に、図17〜図22を用いて、図6の基本素子A100、図15のLUT200とは別の基本素子について説明する。図17〜図24に示す一連の基本素子は、基本素子A100、LUT200等と同様に、消費電力から秘密情報を特定する攻撃に対抗することができる。
図17は、実施の形態3に係る基本素子A300を示す図である。基本素子A300は、図6の基本素子A100に対して、制御信号enを入力するトランジスタ101とトランジスタ107とを削除した構成である。すなわち基本素子A300入力信号は、x1、x2、rである。また、出力zは、
z=((x1^r)&(x2^r)^r)
となる。御信号enは存在しない。基本素子A300は、入力信号x1、x2、rが各トランジスタに同じタイミングで入力する場合を想定した素子である。
すなわち、入力信号は同時に入力するので、該当する複数のトランジスタのスイッチングは同時に行われる。この場合、制御信号enは必要ないからである。
実施の形態3の基本素子A300は、制御信号enの入力を必要としないので、簡易な構成で実装することができる。
図18は、実施の形態3に係る基本素子A400を示す図である。図6の基本素子A100が2入力AND型であるのに対して、基本素子A400は、2入力OR型である。入力信号は、x1、x2、r、enである。また、出力zは、
z=((x1^r)|(x2^r)^r)&en
となる。基本素子A100の場合と同様に、入力x1、x2は、
1=xi^r, x2=xj^r
である。よって、入出力に乱数が排他的論理和されている。及び制御信号enに基づく各トランジスタのスイッチングにより、一気にzが出力される。これらにより、基本素子A100と同様、消費電力から秘密情報を特定する攻撃に対抗することができる。
(1)基本素子A400の構成を説明する。基本素子A400は、上部415と下部416との直列接続により構成されている。上部415と下部416との間から出力信号zが出力される。
(2)図18において、記号「!」、右向き矢印「→」、左向き矢印「←」は、図6の場合と同様である。なお、これらの意味は、後述の図19〜図22についても同様である。印加部413には、論理「1」に相当する電圧が印加される。
(3)印加部413に論理「1」に相当する電圧が印加された場合、各トランジスタのスイッチングにより
z=((x1^r)|(x2^r)^r)&en
が出力される。
(4)上部415は、トランジスタ401と部分回路417との直列接続で構成される。
トランジスタ401の一端は、印加部413と接続され、他端が部分回路417に接続する。部分回路417は、トランジスタ402とトランジスタ403との直列接続と、トランジスタ404とトランジスタ405との並列回路とトランジスタ406との直列接続とが、並列接続されている。
(5)下部416のトランジスタの構成は、図6の基本素子A100の下部116と同じ構成である。すなわち、トランジスタ407〜トランジスタ412の配置は、トランジスタ107〜トランジスタ112の配置と同一である。ただし、下部116のトランジスタ112には、入力信号rの反転信号が入力するのに対して、下部416のトランジスタ412には、入力信号rが反転することなく、そのまま入力する。
(6)次に、入力信号について説明する。入力信号x1の反転信号がトランジスタ402、トランジスタ404、トランジスタ408、及びトランジスタ410に入力する。
(7)入力信号x2の反転信号が、トランジスタ403、トランジスタ405、トランジスタ409、及びトランジスタ411に入力する。
(7)入力信号rが、トランジスタ406及びトランジスタ412に入力する。
(8)入力信号enの反転信号が、トランジスタ401及びトランジスタ407に入力する。
図19は、実施の形態3に係る基本素子A500を示す図である。図6の基本素子A100が2入力AND型であるのに対して、基本素子A500は、2入力NAND型である。入力信号は、x1、x2、r、enである。また、出力zは、
z=(〜((x1^r)&(x2^r))^r)&en
となる。基本素子A100の場合と同様に、入力x1、x2は、
1=xi^r, x2=xj^r
である。よって、入出力に乱数が排他的論理和されている。及び制御信号enに基づく各トランジスタのスイッチングにより、一気にzが出力される。これにより基本素子A100と同様、消費電力から秘密情報を特定する攻撃に対抗することができる。
(1)基本素子A500のトランジスタの構成は、図19に示すように、図18の基本素子A500と同じである。ただし、各トランジスタに入力する信号の反転が異なる。
(2)入力信号について説明する。入力信号x1は、トランジスタ502、トランジスタ504、トランジスタ508、及びトランジスタ510に入力する。
(3)入力信号x2は、トランジスタ503、トランジスタ505、トランジスタ509、及びトランジスタ511に入力する。
(4)入力信号rは、トランジスタ506及びトランジスタ512に入力する。
(5)入力信号enの反転信号が、トランジスタ301及びトランジスタ307に入力する。
図20は、実施の形態3に係る基本素子A600を示す図である。図6の基本素子A100が2入力AND型であるのに対して、基本素子A600は、2入力NOR型である。入力信号は、x1、x2、r、enである。また、出力zは、
「z=(〜((x1^r)|(x2^r))^r)&en」となる。基本素子A100の場合と同様に、入力x1、x2は、
1=xi^r, x2=xj^r
である。よって、入出力に乱数が排他的論理和されている。及び制御信号enに基づく各トランジスタのスイッチングにより、一気にzが出力される。これにより基本素子A100と同様、消費電力から秘密情報を特定する攻撃に対抗することができる。
(1)基本素子A600のトランジスタの構成は、図20に示すように、図18の基本素子A300と同じである。ただし、各トランジスタに入力する信号の反転の有無が異なる。
(2)入力信号について説明する。入力信号x1は、トランジスタ602、トランジスタ604、トランジスタ608、及びトランジスタ610に入力する。
(3)入力信号x2は、トランジスタ603、トランジスタ605、トランジスタ609に入力する。また、入力信号x2の反転信号が、トランジスタ611入力する。
(4)入力信号rの反転信号が、トランジスタ606及びトランジスタ612に入力する。
(5)入力信号enの反転信号が、トランジスタ601及びトランジスタ607に入力する。
図21は、実施の形態3に係る基本素子B700を示す図である。図6の基本素子A100が2入力AND型であるのに対して、基本素子B700は、2入力XOR型である。入力信号は、x1、x2、r、enである。また、出力zは、
z=((x1^r)^(x2^r)^r)&en
となる。基本素子A100の場合と同様に、入力x1、x2は、
1=xi^r, x2=xj^r
である。よって、入出力に乱数が排他的論理和されている。及び制御信号enに基づく各トランジスタのスイッチングにより、一気にzが出力される。これにより、基本素子A100と同様、消費電力から秘密情報を特定する攻撃に対抗することができる。
(1)基本素子B700は、上部721と下部722との直列接続で構成される。上部721と下部722との間から出力信号zが出力される。
(2)印加部719には、論理「1」に相当する電圧が印加される。
(3)印加部719に論理「1」に相当する電圧が印加された場合、各トランジスタのスイッチングにより
z=((x1^r)^(x2^r)^r)&en
が出力される。
(4)上部721は、トランジスタ701と部分回路727との直列接続で構成される。
トランジスタ701は、一端が印加部719に接続され、他端が部分回路727と接続する。
(5)部分回路727の構成を説明する。部分回路727は、トランジスタ702と並列回路723との直列接続と、並列回路724とトランジスタ709との直列接続とが、並列に接続されている。
そして、並列回路723は、トランジスタ703とトランジスタ704との直列接続と、トランジスタ705とトランジスタ706との直列接続とが並列に接続されて、並列回路を構成している。
また、並列回路724は、トランジスタ707とトランジスタ708とが、並列回路を構成している。
(6)次に、下部722の構成を説明する。
下部722は、トランジスタ710と、並列回路725とトランジスタ715との直列接続と、並列回路726とトランジスタ718との直列接続とが、並列に接続されている。そして、並列回路725は、並列回路723と同様に、トランジスタ711とトランジスタ712との直列接続と、トランジスタ713とトランジスタ714との直列接続とが、並列に接続されて、並列回路を構成している。並列回路726は、並列回路724と同様に、トランジスタ716とトランジスタ717とが、並列回路を構成している。
(7)次に、各トランジスタへの入力信号について説明する。入力信号x1は、トランジスタ703、トランジスタ707、トランジスタ711、トランジスタ716に入力する。また、入力信号x1の反転信号は、トランジスタ705、トランジスタ713に入力する。入力信号x2は、トランジスタ704、トランジスタ708、トランジスタ712、トランジスタ717に入力する。また、入力信号x2の反転信号は、トランジスタ706、トランジスタ714に入力する。入力信号rは、トランジスタ709、トランジスタ718に入力する。入力信号rの反転信号は、トランジスタ702、トランジスタ715に入力する。入力信号enの反転信号は、トランジスタ701、トランジスタ710に入力する。
図22は、実施の形態3に係る基本素子A800を示す図である。図6の基本素子A100が2入力AND型であるのに対して、基本素子A800は、3入力AND型である。入力信号は、x1、x2、x3、r、enである。また、出力zは、
z=((x1^r)&(x2^r)&(x3^r)^r)&en
となる。基本素子A100の場合と同様に、入力x1,x2,x3は、
1=xi^r, x2=xj^r, x3=xk^r
である。よって、入出力に乱数が排他的論理和されている。及び制御信号enに基づく各トランジスタのスイッチングにより、一気にzが出力される。これにより、基本素子A100と同様、消費電力から秘密情報を特定する攻撃に対抗することができる。
(1)基本素子A800は、上部819と下部820との直列接続により構成されている。
上部819と下部820との間から出力信号zが出力される。
(2)印加部817には、論理「1」に相当する電圧が印加される。
(3)印加部817に論理「1」に相当する電圧が印加された場合、各トランジスタのスイッチングにより
「z=((x1^r)&(x2^r)&(x3^r)^r)&en」
が出力される。
(4)上部819は、トランジスタ801と、トランジスタ802とトランジスタ803とトランジスタ804とによる並列回路と、トランジスタ805とトランジスタ806とトランジスタ807との直列接続とトランジスタ808とによる並列回路との直列接続で構成される。
(5)下部820は、トランジスタ809と、トランジスタ810とトランジスタ811とトランジスタ812とによる直列接続と、トランジスタ813とトランジスタ814とトランジスタ815との並列回路とトランジスタ816とによる直列接続とが、並列に接続されて、並列回路を構成している。
(6)次に、各トランジスタへの入力信号について説明する。基本素子A800では、入力信号であるx1、x2、x3、r、enは、全て反転して、各トランジスタに入力する。入力信号x1の反転信号は、トランジスタ802、トランジスタ805、トランジスタ810、トランジスタ813に入力する。入力信号x2の反転信号は、トランジスタ803、トランジスタ806、トランジスタ811、トランジスタ814に入力する。入力信号x3の反転信号は、トランジスタ804、トランジスタ807、トランジスタ812、トランジスタ815に入力する。入力信号rの反転信号は、トランジスタ808、トランジスタ816に入力する。入力信号enの反転信号は、トランジスタ801、トランジスタ809に入力する。
図23は、消費電力から秘密情報を特定する攻撃を行った場合の、消費電力の時間変化を示すグラフである。図23は、基本素子A、基本素子Bを用いていない、AND回路、XOR回路から構成される回路について、対策前の状態を示している。図に示すように、AND演算、及びXOR演算が実行される際に、消費電量のピークが出現している。このピークの出現により、秘密情報の特定が可能となる。
図24は、図23に対して、基本素子A、基本素子Bを用いて対策を行った場合を示している。図23の場合に出現していたピークが消えている。このピークの消滅により、秘密情報の特定を行うことはできなくなる。
実施の形態1における基本素子Aの処理を説明するための便宜的な素子20を示す図である。 実施の形態1における回路30の構成の概略を示すブロック図である。 実施の形態1における回路30の動作を示すフローチャートである。 実施の形態1における回路31の構成を示す図である。 実施の形態1における回路30及び回路31の各層で用いる制御信号のタイミングを示した図である。 実施の形態1における基本素子A100を示す図である。 実施の形態1における基本素子A100の真理値表を示す図である。 2入力ANDゲートを示す図である。 2入力ANDゲートの真理値表である。 2入力ANDゲートの信号遷移率を説明する図である。 2入力ANDゲートを示す図である。 2入力ANDゲートの真理値表である。 2入力ANDゲートの過渡遷移と信号遷移率との関係を説明する図である。 実施の形態1における基本素子A100の入出力を示す図である。 実施の形態1における基本素子A100の真理値表を示す図である。 実施の形態1における基本素子A100の入力信号の変化と出力信号zとの関係を示す図である。 基本素子A100と論理的に等価な回路を示す図である。 DESアルゴリズムで定義されるS1テーブルの入出力を表す図である。 S1テーブルの内容を示す図である。 入力値と出力値の一例を示す図である。 S1テーブルの1行目を等価変形した式を示す図である。 図13に示す式を実施する回路構成を示す図である。 実施の形態2におけるLUT200を示す図である。 実施の形態2における2入力の基本素子を組み合わせて構成する回路を示す図である。 実施の形態3における基本素子A300を示す図である。 実施の形態3における基本素子A400を示す図である。 実施の形態3における基本素子A500を示す図である。 実施の形態3における基本素子A600を示す図である。 実施の形態3における基本素子B700を示す図である。 実施の形態3における基本素子A800を示す図である。 対策前において消費電力から秘密情報を特定する攻撃を行った場合の、消費電力の時間変化を示すグラフである。 対策後において消費電力から秘密情報を特定する攻撃を行った場合の、消費電力の時間変化を示すグラフである。
符号の説明
1 入力データX、2 セレクタ、3 乱数発生器、4,5 排他的論理和、6 非線形変換S1、7 線形変換L2、8 制御回路、9 タイミング生成回路TG、10 タイミング制御回路TC、11 ANDゲート、12 排他的論理和、13,14 レジスタ、20 素子、21,22 XOR、23,24 ANDゲート、25 出力点、26 制御信号en、27 XOR、30 回路、31 回路、40 ANDゲート、100 基本素子A、101〜112 トランジスタ、113 印加部、114 アース、115 上部、116 下部、200 LUT、201〜230 ブランチ、250 入力部、260 SRAM、270 データ列、280 パストランジスタ、291,292 LUT、300 基本素子A、400 基本素子A、401〜412 トランジスタ、413 印加部、414 アース、415 上部、416 下部、417 部分回路、500 基本素子A、501〜512 トランジスタ、600 基本素子A、601〜612 トランジスタ、700 基本素子B、701〜718 トランジスタ、719 印加部、720 アース、721 上部、722 下部、723 並列回路、724,725,726 並列回路、727 部分回路、800 基本素子A、801〜816 トランジスタ、817 印加部、818 アース、819 上部、820 下部。

Claims (13)

  1. n(n≧1)ビットのデータにnビットの第1乱数が排他的論理和されたデータを示すXORデータと、nビットの第1乱数と、1ビットの第2乱数とを入力信号として入力し、XORデータと第1乱数との排他的論理和によりnビットのデータを算出し、算出したnビットのデータのすべてのビットの所定の論理演算をとり所定の論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とする電子素子。
  2. 前記第1乱数は、
    前記1ビットの第2乱数のnビット連結を用いることを特徴とする請求項記載の電子素子。
  3. 前記電子素子は、
    入力信号の状態遷移が完了した場合に、処理を実行して出力信号を出力することを特徴とする請求項記載の電子素子。
  4. 前記電子素子は、さらに、
    出力信号の出力を指令する指令信号を入力するとともに、指令信号を入力した場合に、出力信号を出力することを特徴とする請求項記載の電子素子。
  5. 前記所定の論理演算は、
    論理積(AND)、否定論理積(NAND)、論理和(OR)、否定論理和(NOR)、排他的論理和(XOR)のうち、いずれかであることを特徴とする請求項記載の電子素子。
  6. 複数のトランジスタから構成され、第1乱数と第2乱数とnビット(n≧1)のデータとを入力して所定の信号を出力信号として出力する電子素子において、
    第1乱数と第2乱数とnビットのデータとを入力した場合に、
    第1乱数とnビットのデータとの排他的論理和を実行し排他的論理和の実行結果を示す各ビットのすべてのビットの所定の論理演算をとり所定の論理演算の結果と第2乱数との排他的論理和を実行することにより得られる結果と等価な結果を示す出力信号を、複数のトランジスタを同時にスイッチングすることにより出力することを特徴とする電子素子。
  7. 前記第2乱数は1ビットであり、
    前記第1乱数は、
    前記1ビットの第2乱数のnビット連結を用いることを特徴とする請求項記載の電子素子。
  8. 前記電子素子は、
    出力信号の出力を指令する指令信号を入力するとともに、指令信号を入力した場合に、出力信号を出力することを特徴とする請求項記載の電子素子。
  9. 第1乱数と第2乱数とnビット(n≧1)のデータとを入力して所定の信号を出力信号として出力する電子素子において、
    第1乱数と第2乱数とnビットのデータとを入力する入力部と、
    0と1とにより構成される論理データを格納する格納部と、
    前記入力部が第1乱数と第2乱数とnビットのデータとを入力した場合に、第1乱数とnビットのデータとの排他的論理和を実行し排他的論理和の実行結果を示す各ビットのすべてのビットの所定の論理演算をとり所定の論理演算の結果と第2乱数との排他的論理和を実行することにより得られる結果と等価な結果を、スイッチングにより前記格納部が格納する論理データから取得し出力信号として出力する複数のトランジスタと
    を備えたことを特徴とする電子素子。
  10. 前記第2乱数は1ビットであり、
    前記第1乱数は、
    前記1ビットの第2乱数のnビット連結を用いることを特徴とする請求項記載の電子素子。
  11. 前記複数のトランジスタは、
    スイッチングを同時に行うことを特徴とする請求項記載の電子素子。
  12. 前記入力部は、さらに、
    出力信号の出力を指令する指令信号を入力し、
    前記電子素子は、
    指令信号を入力した場合に、出力信号を出力することを特徴とする請求項記載の電子素子。
  13. nビットのデータにnビットの第1乱数が排他的論理和されたデータを示すXORデータと、nビットの第1乱数と、1ビットの第2乱数とを入力信号として入力し、XORデータと第1乱数との排他的論理和によりnビットのデータを算出し、算出したnビットデータの各ビットのすべてのビットの所定の論理演算をとり所定の論理演算の結果と第2乱数との排他的論理和を出力信号として出力することを特徴とするデータ処理方法。
JP2006527641A 2004-07-07 2004-07-07 電子素子及びデータ処理方法 Expired - Lifetime JP4589327B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/009633 WO2006006199A1 (ja) 2004-07-07 2004-07-07 電子素子及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPWO2006006199A1 JPWO2006006199A1 (ja) 2008-04-24
JP4589327B2 true JP4589327B2 (ja) 2010-12-01

Family

ID=35783565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006527641A Expired - Lifetime JP4589327B2 (ja) 2004-07-07 2004-07-07 電子素子及びデータ処理方法

Country Status (6)

Country Link
US (1) US8577942B2 (ja)
EP (1) EP1764762B1 (ja)
JP (1) JP4589327B2 (ja)
CN (1) CN1957384B (ja)
TW (1) TWI276337B (ja)
WO (1) WO2006006199A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108903876A (zh) * 2011-05-20 2018-11-30 艺康美国股份有限公司 自动清洗方法和设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2954868A1 (fr) * 2009-12-24 2011-07-01 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
JP5322977B2 (ja) * 2010-03-04 2013-10-23 株式会社エヌ・ティ・ティ・データ 消費電力錯乱型論理回路及び情報記憶媒体
US8861720B2 (en) 2010-07-28 2014-10-14 The Ritsumeikan Trust Tamper-resistant memory integrated circuit and encryption circuit using same
JP2012150661A (ja) * 2011-01-19 2012-08-09 Toshiba Corp プロセッサ動作検査システム、及びその検査方法
CN104333362B (zh) * 2014-09-16 2017-07-04 哈尔滨工业大学(威海) 一种同或‑异或双轨预充电逻辑单元
CN108092760A (zh) * 2016-11-22 2018-05-29 北京同方微电子有限公司 一种分组密码的协处理器装置和非线性变换方法
TWI631544B (zh) * 2017-03-03 2018-08-01 友達光電股份有限公司 顯示面板及驅動方法
CN110414276B (zh) * 2018-04-27 2021-05-18 联华电子股份有限公司 电子元件的加密方法
CN109359470B (zh) * 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP2002539488A (ja) * 1999-03-08 2002-11-19 ジェムプリュス 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
JP2002366029A (ja) * 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化
JP2005236977A (ja) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd 電力分析攻撃に安全な基本演算装置および方法
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
JP2005318476A (ja) * 2004-04-30 2005-11-10 Toshiba Corp マスク論理回路及び暗号装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808486A (en) * 1997-04-28 1998-09-15 Ag Communication Systems Corporation Glitch free clock enable circuit
IL139935A (en) 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
WO1999067766A2 (en) 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
DE19850721A1 (de) 1998-11-03 2000-05-18 Koninkl Philips Electronics Nv Datenträger mit Verschleierung des Stromverbrauchs
FR2789776B1 (fr) 1999-02-17 2001-04-06 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
JP3844116B2 (ja) 2001-04-16 2006-11-08 株式会社ルネサステクノロジ 暗号化・復号化装置とicカード
KR100446317B1 (ko) * 2001-12-24 2004-09-01 주식회사 하이닉스반도체 코드 롬의 테스트시 데이터를 보호하기 위한 장치
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
EP1351148A3 (en) 2002-04-04 2008-05-07 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2002539488A (ja) * 1999-03-08 2002-11-19 ジェムプリュス 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP2002366029A (ja) * 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化
JP2005236977A (ja) * 2004-02-19 2005-09-02 Samsung Electronics Co Ltd 電力分析攻撃に安全な基本演算装置および方法
JP2005266810A (ja) * 2004-03-16 2005-09-29 Samsung Electronics Co Ltd マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法
JP2005318476A (ja) * 2004-04-30 2005-11-10 Toshiba Corp マスク論理回路及び暗号装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108903876A (zh) * 2011-05-20 2018-11-30 艺康美国股份有限公司 自动清洗方法和设备

Also Published As

Publication number Publication date
TW200603591A (en) 2006-01-16
WO2006006199A1 (ja) 2006-01-19
EP1764762A1 (en) 2007-03-21
US20080021940A1 (en) 2008-01-24
TWI276337B (en) 2007-03-11
US8577942B2 (en) 2013-11-05
CN1957384B (zh) 2011-04-06
CN1957384A (zh) 2007-05-02
EP1764762B1 (en) 2019-05-15
EP1764762A4 (en) 2009-11-18
JPWO2006006199A1 (ja) 2008-04-24

Similar Documents

Publication Publication Date Title
JP4687775B2 (ja) 暗号処理装置
JP4453697B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
Shahbazi et al. Area-efficient nano-AES implementation for Internet-of-Things devices
KR20120098679A (ko) 다양한 회로 토폴러지를 가지는 고활용도 범용 로직 배열 및 상수 전력 서명을 가지는 다양한 로직 게이트를 실현하기 위한 물류 지도 회로
US9325494B2 (en) Method for generating a bit vector
JP5863994B2 (ja) 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
Mane et al. High speed area efficient FPGA implementation of AES algorithm
US8149143B2 (en) Data encryption and decryption with a key by an N-state inverter modified switching function
JP4589327B2 (ja) 電子素子及びデータ処理方法
US20120093308A1 (en) Apparatus and method for generating random data
US9166795B2 (en) Device and method for forming a signature
Ahmad et al. A new ASIC implementation of an advanced encryption standard (AES) crypto-hardware accelerator
KR100735953B1 (ko) 일련 번호 생성 장치, 그 방법 및 컴퓨터 판독가능 저장매체
KR100861841B1 (ko) 전자 소자 및 데이터 처리 방법
KR20040048471A (ko) 직렬 유한체 승산기
Masoumi et al. Design and evaluation of basic standard encryption algorithm modules using nanosized complementary metal–oxide–semiconductor–molecular circuits
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Harshitha et al. High performance advanced encryption standard system using secure double rate registers
Bryk et al. Encryption using reconfigurable reversible logic gate and its simulation in FPGAs
US7464130B2 (en) Logic circuit and method for performing AES MixColumn transform
Sandyarani et al. Vlsi architecture for nano wire based Advanced Encryption Standard (AES) with the efficient multiplicative inverse unit
JP4849140B2 (ja) データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
Nandan et al. Design of Improved Advance Encryption Standard Algorithm with Affine Transformation in S-Box for Performance Improvement in Field-Programmable Gate Arrays
Punia et al. Speed Optimization of the AES Algorithm Using Pipeline Hardware Architecture
KR100458850B1 (ko) 인증 시스템에서의 임의 숫자 발생 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

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: 20100907

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: 20100909

R150 Certificate of patent or registration of utility model

Ref document number: 4589327

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130917

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

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