JP2008271048A - 分割テーブル作成装置及び分割テーブル作成プログラム - Google Patents

分割テーブル作成装置及び分割テーブル作成プログラム Download PDF

Info

Publication number
JP2008271048A
JP2008271048A JP2007109734A JP2007109734A JP2008271048A JP 2008271048 A JP2008271048 A JP 2008271048A JP 2007109734 A JP2007109734 A JP 2007109734A JP 2007109734 A JP2007109734 A JP 2007109734A JP 2008271048 A JP2008271048 A JP 2008271048A
Authority
JP
Japan
Prior art keywords
bits
data
bit
address
partial
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
JP2007109734A
Other languages
English (en)
Other versions
JP4901564B2 (ja
Inventor
Tsuneo Sato
恒夫 佐藤
Manabu Misawa
学 三澤
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
Priority to JP2007109734A priority Critical patent/JP4901564B2/ja
Publication of JP2008271048A publication Critical patent/JP2008271048A/ja
Application granted granted Critical
Publication of JP4901564B2 publication Critical patent/JP4901564B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データバス幅の限られた汎用CPUを利用して暗号演算を行う際、演算処理時の消費電力等を解析して秘密情報を抽出する脅威に対抗可能な装置を提供する。
【解決手段】分割テーブル作成装置1000は、複数のアドレス毎にnビットの出力用データが定義され、データをアドレスとしてデータを出力用データに変換するLUT1を持つROM101と、データバス幅がmビットで、LUT1を読み込み、アドレス毎の各nビット出力用データを同じビット位置を境界としてm/2以下のビット数の各部分ビットに分割し、各部分ビットに付加ビットを付加した全体ビットをデータバス幅のmビットとし、かつ、ハミング重みが各全体ビットで同一となるべく付加ビット値を決定し、出力用データにおけるビット位置が同じ部分ビットを含む全体ビット同士からなり、かつ、アドレスと部分ビットの対応関係を維持する複数の分割テーブルを作成するCPU100とを備えた。
【選択図】図1

Description

この発明は、複数のアドレスごとにnビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを複数の分割テーブルに分割する分割テーブル作成装置及び分割テーブル作成プログラムに関する。
従来の「情報処理装置」は、暗号処理に用いる鍵データを、その反転データと共にE2PROMに記憶しておき、E2PROMより鍵データとその反転データを読み出し、それらのうちの鍵データをもとに暗号回路で暗号処理を実行し、この実行結果を用いてCPU(Central Processing Unit)にて演算プログラムを実行していた(例えば、特許文献1)。
特開2003−18143号公報 第11頁、第1図、第2図
従来の「情報処理装置」(例えば特許文献1)では、E2PROMから鍵データとその反転データを読み出し、それらのうちの鍵データをもとに暗号回路で暗号処理を実行していたので、暗号回路で暗号演算を行っていた。そのため、データ処理を実行するCPUだけで暗号処理することができないという課題があった。
また、従来の「情報処理装置」(例えば特許文献1)では、鍵データとその反転データをE2PROMに記憶しておくために、鍵データの倍のビット長のE2PROMが必要であり、データバス幅が固定化されているCPUでは、鍵データとその反転データを同時に保持できないという課題があった。
さらに、従来の「情報処理装置」(例えば特許文献1)では、鍵データとその反転データをE2PROMに記憶しておくので、鍵データの読み出しや暗号回路の動作時の消費電力が、鍵データの値によって変化せず一定となるようになるが、演算データの値に対しては演算データ処理時の消費電力が変化するという課題があった。
本発明は、データバス幅の限られた汎用のCPUを利用して暗号演算を行う際に、演算処理時の消費電力等を解析して秘密情報を抽出する脅威に対抗するために、解析が困難となる消費電力を呈するデータ変換手法およびプログラム手法を提供することを目的とする。
この発明の分割テーブル作成装置は、
複数のアドレスごとにnビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、
データバスの幅がm(ただし、m≦2n)ビットであるCPU(Central Processing Unit)であって、前記変換テーブル格納部から前記変換テーブルを読み込み、読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割し、分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定し、前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成するCPUと
を備えたことを特徴とする。
この発明により、データバス幅の限られた汎用のCPUを利用して暗号演算を行う際に、演算処理時の消費電力等を解析して秘密情報を抽出する脅威に対抗することができる。
実施の形態1.
本発明の詳細な実施の形態1について図1を参照し説明する。図1は、コンピュータである分割テーブル作成装置1000の構成を示す図である。分割テーブル作成装置1000は、CPU100と、ROM101(変換テーブル格納部の一例)と、RAM102とを備える。
CPU100は、算術演算、論理演算、データのストア/ロードができる汎用CPUである。CPU100は後述する合成器104を備える。
ROM101は、プログラム、固定データが格納される不揮発ROMである。ROM101は、後述のLUT(Look Up Table)1(変換テーブル)を格納している。
RAM102は、CPU100の一時的な作業領域を提供する揮発RAMである。RAM102は、後述の分割テーブルであるLUT(1−1)、LUT(1−2)を格納する。RAM102に代えて、フラッシュメモリなどの不揮発性メモリを用いてLUT(1−1)、LUT(1−2)を格納しても構わない。
データバス103は、CPU100、ROM101、RAM102を結ぶデータバスである。簡単のため、本実施の形態1では、データバス103は8ビット固定とする。
その他に、外部との通信を行うI/O装置なども含むこともあるが、図1では省略している。また、図1ではCPU100、ROM101、RAM102が別々の素子のイメージで書かれているが、1チップマイコンのように1つのパッケージにこれらの構成要素が組み込まれていても構わない。
(CPUの一般的処理)
図2は、一般的なCPUを用いたときの、プログラムの進行状況を模式的に表したものである。
(1)CPU100は、ROM101に書き込まれているプログラムを読出し、解釈する(S100)。
(2)プログラムに書かれている内容に沿ってデータを準備する(S101)。「データ準備とは、CPU100内のレジスタ(図示せず)、RAM102の指定アドレス、ROM101の指定アドレスのデータを参照することである。さらに、プログラムに直に書かれているデータを参照する場合もある。
(3)ついで、CPU100は準備されたデータの処理を行う(S102)。データ処理には、算術演算、論理演算、データ交換などがある。
(4)最後に、処理されたデータを指定された場所に格納する(S103)。格納先は、CPU100内のレジスタ、RAM102の指定アドレス、ROM101の指定アドレスである。これら一連のステップを繰り返し行うことで、CPU100はプログラムに記述された作業を完結する。
プログラムに記述される作業は種々あるが暗号処理の場合、プログラムには次のような処理が記述され、これらを順次処理することで暗号処理を完結する。
「1.入力データ(平文)の参照」、
「2.鍵データの参照」、
「3.データ同士の演算(算術演算、論理演算)」、
「4.LUT(Sボックス)の参照」、
「5.データ(ビット)の入替え」、
「6.演算結果の出力」
これらの処理のうち、最も電力を消費するのは、「1.入力データ(平文)の参照」と「6.演算結果の出力」である。これは、図1に記載されていない外部I/Oを参照し動作させるため、自然消費電力は大きくなる。しかし、この処理で扱うデータは、平文、演算結果であるため、秘密情報とは無関係である。
次に消費電力が大きいのは、「2.鍵データの参照」と「4.LUT(Sボックス)の参照」である。鍵データやSボックスは、CPU100に記録されるのではなく、ROM101に記録されることが多いためである。CPU100外部のデータを参照するため、「1.入力データ(平文)の参照」と「6.演算結果の出力」ほどではないにしても、電力を消費する。鍵データが秘密情報であるが、鍵データが固定となっているシステムでは、毎回同じ鍵データを参照するために、鍵データを参照する毎に消費電力が異なるということはない。そのため、鍵データを1ビットずつ参照し、かつ、ビットの値(0か1)によって消費電力が大きく異なる場合を除き、「2.鍵データの参照」の処理が攻撃対象になることは少ない。「4.LUT(Sボックス)の参照」はデータをアドレスとしてSボックスを参照するため、消費電力は参照ごとに異なる。データは各種演算がなされた結果であるので、鍵データも演算過程で使用されている。そのため、「4.LUT(Sボックス)の参照」の処理が攻撃対象になることが多く、各種実験でも「4.LUT(Sボックス)の参照」の処理タイミングにおいて、秘密情報が漏洩している事実を観測することができる。
「3.データ同士の演算(算術演算、論理演算)」と「5.データ(ビット)の入替え」の処理は、CPU100内のレジスタ間で処理されるので、消費電力は最も小さく、これらの処理を攻撃対象にすることは少ない。
以上の「1.入力データ(平文)の参照」〜「6.演算結果の出力」に関する説明から、「4.LUT(Sボックス)の参照」の処理で漏洩する秘密情報量を低減することが、最も有効な対策となる。
図3に「4.LUT(Sボックス)の参照」の処理で使われるであろうLUT1(Sボックス)の一例を示す。このLUT1は、ROM101に格納されている。図3は、アドレスに対して出力するデータの関係を一覧にしたものである。表の右コラムには出力データのハミング重み(出力データのビットの値が1であるビットの数)を示している。図3からわかるように、出力データの値によりハミング重みは異なる。Sボックスは、データをアドレスとして引かれるので、データに対して出力データのハミング重みが異なることを示している。
ここでハミング重みが異なるということは、LUT1を参照する電子回路の状態が異なることを意味する。電子回路の状態0と状態1では、当然消費される電力や放射される電磁波が異なる。また状態が変化する、つまり、状態0から状態1に変化する、または、状態1から状態0に変化する場合でも、当然消費される電力や放射される電磁波が異なる。一方、電力や電磁波は電子回路全体もしくはプローブされる電子回路の一部分として観測されるので、ハミング重みが異なると、電力や電磁波が異なることになる。例えば、図3では、アドレス0の状態とアドレス31の状態では、ハミング重みが0と5であるので、電力や電磁波が異なる。また、アドレス0の状態からアドレス31の状態に移ると、ハミング重みが0から5に変化するので、この場合も電力、電磁波が変化する。
本実施の形態1では、図1のROM101に格納されるLUT1の構成を、図4に示す2つのLUT(1−1)とLUT(1−2)とに分割し、かつ、各出力データのハミング重みが一致するようにする。
ここで分割するときのポイントは2つある。一つはハミング重みを同じくすることである。二つ目は、ビット間に相関が表れる場合には、そのビット間の相関を時間的に切断することである。これらを以下に説明する。
図3に示すLUT1は出力データが5ビットである。一方、図1に示すデータバス103は8ビットであるで、分割されたデータ長がデータバス幅の半分の4ビットを超えないように分割する。この場合は、4ビットと1ビット、3ビットと2ビット、2ビットと3ビット、1ビットと4ビットの組合せが考えられる。どの組合せを選んでも良いが、後ほど述べるデータバス103のビット間の相関を考慮して、分割を行う。本実施の形態1では、4ビットと1ビットに分割することにする。
実際に電力解析を行うと、データバス103のビット間に相関のあると判断されるケースがある。すなわち、例えば、LSBである0ビット目と1ビット目は同時に秘密情報を漏洩する傾向が高いと言うことである。具合的には、例えば図3のLUT1において、アドレス0の出力データ「00000」において、0ビット目と1ビット目とに相関が表れてしまう場合である。このような場合、LUT1にアクセスする際、0ビット目と1ビット目にLUT1のデータが載らないようにすることで、その相関を抑えることが可能である。
(相関の切断)
図4は、このように0ビット目と1ビット目とに相関がある場合に、LUT1をLUT(1−1)とLUT(1−2)とに分割した例を示している。LUT1の出力データの上位4ビットが、LUT(1−1)の上位4ビットに相当する。また、LUT1の出力データの0ビット目がLUT(1−2)の出力データの0ビット目に相当する。これは、データバス103の0ビット目と1ビット目とに相関があるので、その相関をおさえるために、0ビット目と1ビット目にLUT1のデータが配置されないように、LUT1の出力データを0ビット目と1ビット目とを境界として分割し、LUT(1−1)とLUT(1−2)とを作成した場合である。
(ハミング重みの同一化)
LUT(1−1)の下位4ビット、LUT(1−2)の上位7ビットは、LUT1の出力データとは関係ないビットである。このため、この関係のないビットは、CPU100が乱数を発生し、発生した乱数によりビットの値を決める。この際、出力データのハミング重みを一定とする制約をつける。図4ではハミング重みを4とした場合を示している。
LUT1をLUT(1−1)とLUT(1−2)とに分割する処理をCPUの処理動作との関係で説明する。図3の説明で述べたようにROM101は、複数のアドレスごとにnビット(図3はn=5)の出力用データが定義されており、データをアドレスとして、データを出力用データに変換するために使用されるLUT1を格納している。またCPU100のデータバスの幅は、m(ただし、m≦2n)ビットである。
本実施の形態1ではm=8である。
(CPU100の分割テーブルの作成動作)
(1)CPU100は、まず、ROM101からLUT1のデータを読み込む。
(2)次に、CPU100は、読み込んだLUT1のデータに基づきアドレスごとのnビット(ここではn=5)の出力用データのそれぞれを同じビット位置を境界としてm/2(ここではm=8)以下のビット数からなる複数の部分ビットに分割する。例えば、図3のアドレス0の出力データ「00000」に対して、0ビット目を境界として(1ビット目を境界とみても構わない)「0000」と「0」とに分割する。「0000」と「0」とが部分ビットである。同様にアドレス1の出力データ「00001」に対しても、0ビット目を境界として、「0000」と「1」とに分割する。「0000」と「1」とが部分ビットである。その他のアドレスに対応する出力データについても同様に分割する。
(3)CPU100は、分割したそれぞれの部分ビットに付加ビットを付加することにより部分ビットと付加ビットとの全体である全体ビットをデータバスの幅のmビット(ここではm=8)とするとともにハミング重みがそれぞれの全体ビットにおいて同一となるように前記付加ビットの値を決定する。すなわち、図4に示すようにアドレス0の場合で説明すれば、CPU100は、部分ビット「0000」に付加ビット「1111」を付加することにより8ビットである全体ビット「0000 1111」を作成する。また、もう一方の部分ビット「0」に付加ビット「1110010」を付加することにより8ビットである全体ビット「1110010 0」を作成する。他のアドレスに対応する部分ビットについても同様である。
(4)CPU100は、図4に示すように、出力用データにおけるビット位置を同じくする部分ビットを含む全体ビット同士からなるとともにアドレスと部分ビットとの対応関係を維持している分割テーブルであるLUT(1−1)とLUT(1−2)とを作成する。例えば、LUT(1−1)のアドレス0とアドレス1との出力データは「0000 1111」と「0000 1111」であるが、アドレス0の部分ビットである「0000」と、アドレス1の部分ビットである「0000」とは、LUT1においてビット位置を同じくする部分ビットである。またLUT(1−1)及びLUT(1−2)におけるアドレスと部分ビットとの対応関係は、LUT1における関係を維持している。CPU100は、作成したLUT(1−1)とLUT(1−2)とをRAM102に格納する。
なお、データ変換の動作は図5で説明するが、CPU100の合成器104は、RAM102に格納されたLUT(1−1)、LUT(1−2)を順次参照してアドレスを同じくする全体ビットを参照し、アドレスを同じくする全体ビットの部分ビットを結合することによりアドレスとされたデータを変換する。例えば、合成器104は、LUT(1−1)、LUT(1−2)を順次参照し、LUT(1−1)のアドレス0の全体ビットである「0000 1111」と、LUT(1−2)のアドレス0の全体ビットである「1110010 0」との部分ビットである「0000」と「0」とを結合して、データ「0」をアドレスとして、データ「0」を「00000」に変換する。
なお、CPU100は、アドレスごとのnビットの出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する場合には、予め設定された規則に基づいて、境界とするビット位置を決定する。すなわち、図4の場合は、LUT1の出力用データを分割する場合には、0ビットを境界として分割したが、いずれのビット位置を境界として分割するかは、データバス103におけるビット間の相関に基づき、予め規則として設定し、ROM101に記憶させておく。CPU100は、この規則に従って、LUT1の出力用データを所定のビット位置を境界として分割する。
図5は、図4で示した分割テーブルであるLUT(1−1)とLUT(1−2)とを用いたデータ処理の手順を示す。
まず、CPU100は、LUT(1−1)を参照して、RAM102に格納されたLUT(1−1)のデータを読出し(S1021)、レジスタ1(図示せず)に格納する(S1022)。
ついで、CPU100は、LUT(1−2)を参照して、RAM102に格納されたLUT(1−2)のデータを読出し(S1023)、レジスタ2(図示せず)に格納する(S1024)。
LUT(1−1)、LUT(1−2)の参照は逆にしても良い。その後、CPU100は、合成器104により、レジスタ1とレジスタ2とのデータ(全体ビット)のうち有効部分同士(部分ビットどうし)を結合する(S1025)。
この一連の手順により、ひとつの図3のLUT1を参照した場合と同じ結果を得ることができる。
以上の実施の形態1では装置としての分割テーブル作成装置1000を説明したが、
分割テーブル作成装置1000の動作をコンピュータに実行させる分割テーブル作成プログラムとして把握することも可能である。
本実施の形態1では、データバス幅の1/2より大きいデータ長を有するLUTを、データバス幅の1/2以下のデータ長を有する複数のLUTに分割し、分割LUTの各データのハミング重みが一定となるようにした。このため、LUT参照時の状態差が少なくなり、かつ、LUT参照時の状態遷移差も少なくなるので、LUT参照時の電力等の変化量が小さくなり、処理時の消費電力等を解析して秘密情報を抽出する脅威に対抗できる。
また、データバス幅に応じてLUTの分割を柔軟に対応させたので、データバス幅の限られた汎用のCPUを利用して暗号演算が行えると共に、LUT参照時の電力等の変化量が小さくなり、処理時の消費電力等を解析して秘密情報を抽出する脅威に対抗できる。
また、データバスのビット間の相関を時間的に切断するように、分割LUTの有効データのビット位置を決めるので、データバスのビット間の相関がなくなり、その結果、処理時の消費電力等を解析して秘密情報を抽出する脅威にさらに対抗できるようになる。
なお、本実施の形態1ではLUTを2つに分けたが、データバス幅の1/2以下のデータ長を有する複数のLUTなら、どのような分割を行ってもよい。すなわち、本実施の形態1では5ビットのLUT、8ビットのデータバス幅であるので、2ビット、2ビット、1ビットの組合せでも、2ビット、1ビット、1ビット、1ビットでもどちらでも構わない。
実施の形態1における分割テーブル作成装置1000の構成図。 実施の形態1におけるCPUの処理手順を示すフローチャート。 実施の形態1におけるLUT1の内容を示す図。 実施の形態1におけるLUT(1−1)、LUT(1−2)の内容を示す図。 実施の形態1における分割テーブル作成装置のデータ変換のフローチャート。
符号の説明
100 CPU、101 ROM、102 RAM、103 データバス、104 合成器、1000 分割テーブル作成装置。

Claims (10)

  1. 複数のアドレスごとにn(nは2以上の整数)ビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、
    データバスの幅がm(ただし、2≦m≦2n)ビットであるCPU(Central Processing Unit)であって、前記変換テーブル格納部から前記変換テーブルを読み込み、読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割し、分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定し、前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成するCPUと
    を備えたことを特徴とする分割テーブル作成装置。
  2. 前記CPUは、
    乱数を発生させることができるとともに、発生させた乱数によって前記付加ビットの値を決定することを特徴とする請求項1記載の分割テーブル作成装置。
  3. 前記CPUは、
    それぞれの前記分割テーブルを順次参照して前記アドレスを同じくする前記全体ビットを参照し、前記アドレスを同じくする前記全体ビットの前記部分ビットを結合することにより前記アドレスとされた前記データを変換する合成器を備えたことを特徴とする請求項1または2のいずれかに記載の分割テーブル作成装置。
  4. 前記CPUは、
    前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する場合には、予め設定された規則に基づいて、境界とするビット位置を決定することを特徴とする請求項1〜3のいずれかに記載の分割テーブル作成装置。
  5. 前記予め設定された規則は、
    前記データバスのビット間の相関に基づき作成されていることを特徴とする請求項4記載の分割テーブル作成装置。
  6. 複数のアドレスごとにn(nは2以上の整数)ビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、データバスの幅がm(ただし、2≦m≦2n)ビットであるCPU(Central Processing Unit)とを備えたコンピュータに以下の処理を実行させる分割テーブル作成プログラム
    (1)前記変換テーブル格納部から前記変換テーブルを読み込む処理
    (2)読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する処理
    (3)分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定する処理
    (4)前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成する処理。
  7. 前記CPUは、
    乱数を発生させることができ、
    前記分割テーブル作成プログラムは、
    前記CPUに乱数を発生させ、発生させた乱数によって前記付加ビットの値を決定する処理を前記コンピュータに実行させることを特徴とする請求項6記載の分割テーブル作成プログラム。
  8. 前記分割テーブル作成プログラムは、
    それぞれの前記分割テーブルを順次参照して前記アドレスを同じくする前記全体ビットを参照し、前記アドレスを同じくする前記全体ビットの前記部分ビットを結合することにより前記アドレスとされた前記データを変換する処理を前記コンピュータに実行させることを特徴とする請求項6または7のいずれかに記載の分割テーブル作成プログラム。
  9. 前記分割テーブル作成プログラムは、
    前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する処理を前記コンピュータに実行させる場合には、予め設定された規則に基づいて境界とするビット位置を決定することを前記コンピュータに実行させることを特徴とする請求項6〜8のいずれかに記載の分割テーブル作成プログラム。
  10. 前記予め設定された規則は、
    前記データバスのビット間の相関に基づき作成されていることを特徴とする請求項9記載の分割テーブル作成プログラム。
JP2007109734A 2007-04-18 2007-04-18 分割テーブル作成装置及び分割テーブル作成プログラム Active JP4901564B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007109734A JP4901564B2 (ja) 2007-04-18 2007-04-18 分割テーブル作成装置及び分割テーブル作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007109734A JP4901564B2 (ja) 2007-04-18 2007-04-18 分割テーブル作成装置及び分割テーブル作成プログラム

Publications (2)

Publication Number Publication Date
JP2008271048A true JP2008271048A (ja) 2008-11-06
JP4901564B2 JP4901564B2 (ja) 2012-03-21

Family

ID=40049990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007109734A Active JP4901564B2 (ja) 2007-04-18 2007-04-18 分割テーブル作成装置及び分割テーブル作成プログラム

Country Status (1)

Country Link
JP (1) JP4901564B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2005031471A (ja) * 2003-07-07 2005-02-03 Sony Corp 暗号処理装置、および暗号処理方法
JP2005086670A (ja) * 2003-09-10 2005-03-31 Toshiba Corp 暗号化/復号モジュール
JP2008118566A (ja) * 2006-11-07 2008-05-22 Toshiba Corp 暗号処理回路及び暗号処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2005031471A (ja) * 2003-07-07 2005-02-03 Sony Corp 暗号処理装置、および暗号処理方法
JP2005086670A (ja) * 2003-09-10 2005-03-31 Toshiba Corp 暗号化/復号モジュール
JP2008118566A (ja) * 2006-11-07 2008-05-22 Toshiba Corp 暗号処理回路及び暗号処理方法

Also Published As

Publication number Publication date
JP4901564B2 (ja) 2012-03-21

Similar Documents

Publication Publication Date Title
Balasch et al. Compact implementation and performance evaluation of hash functions in attiny devices
JP4718455B2 (ja) 擬似乱数生成装置及び擬似乱数生成方法及び擬似乱数生成プログラム
Gueron Advanced encryption standard (AES) instructions set
JP2008058827A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP6300796B2 (ja) 算術及び論理ユニットを伴わないコンピュータプロセッサ及びシステム
JP2007094377A (ja) 暗号処理装置
TW200822664A (en) Modular reduction using folding
Rinne et al. Performance analysis of contemporary light-weight block ciphers on 8-bit microcontrollers
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
JP2008233683A (ja) 暗号処理装置及びプログラム
EP3559799A1 (en) A calculation device for encoded addition
US20210342486A1 (en) Encrypted data processing
EP3917067A1 (en) Homomorphic encryption device and ciphertext arithmetic method thereof
US20200235922A1 (en) Encryption method
JP2017215518A (ja) データ処理装置、データ処理方法及びプログラム
JP2011123356A (ja) 素数生成装置、素数生成方法、及び素数生成プログラム
JP4901564B2 (ja) 分割テーブル作成装置及び分割テーブル作成プログラム
JP2014240921A (ja) 暗号装置、暗号処理方法及び暗号処理プログラム
US20160119132A1 (en) Method and device for generating a hash value
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
JP2017223822A (ja) 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
US8995651B1 (en) Multiple algorithm cryptography system
Saarinen SNEIK on Microcontrollers: AVR, ARMv7-M, and RISC-V with Custom Instructions
JP2008205753A (ja) 信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111121

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4901564

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

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