JP2008271048A - 分割テーブル作成装置及び分割テーブル作成プログラム - Google Patents
分割テーブル作成装置及び分割テーブル作成プログラム Download PDFInfo
- 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
Links
Images
Abstract
【解決手段】分割テーブル作成装置1000は、複数のアドレス毎にnビットの出力用データが定義され、データをアドレスとしてデータを出力用データに変換するLUT1を持つROM101と、データバス幅がmビットで、LUT1を読み込み、アドレス毎の各nビット出力用データを同じビット位置を境界としてm/2以下のビット数の各部分ビットに分割し、各部分ビットに付加ビットを付加した全体ビットをデータバス幅のmビットとし、かつ、ハミング重みが各全体ビットで同一となるべく付加ビット値を決定し、出力用データにおけるビット位置が同じ部分ビットを含む全体ビット同士からなり、かつ、アドレスと部分ビットの対応関係を維持する複数の分割テーブルを作成するCPU100とを備えた。
【選択図】図1
Description
複数のアドレスごとにnビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、
データバスの幅がm(ただし、m≦2n)ビットであるCPU(Central Processing Unit)であって、前記変換テーブル格納部から前記変換テーブルを読み込み、読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割し、分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定し、前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成するCPUと
を備えたことを特徴とする。
本発明の詳細な実施の形態1について図1を参照し説明する。図1は、コンピュータである分割テーブル作成装置1000の構成を示す図である。分割テーブル作成装置1000は、CPU100と、ROM101(変換テーブル格納部の一例)と、RAM102とを備える。
図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.演算結果の出力」
図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とした場合を示している。
本実施の形態1ではm=8である。
(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に格納する。
分割テーブル作成装置1000の動作をコンピュータに実行させる分割テーブル作成プログラムとして把握することも可能である。
Claims (10)
- 複数のアドレスごとにn(nは2以上の整数)ビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、
データバスの幅がm(ただし、2≦m≦2n)ビットであるCPU(Central Processing Unit)であって、前記変換テーブル格納部から前記変換テーブルを読み込み、読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割し、分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定し、前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成するCPUと
を備えたことを特徴とする分割テーブル作成装置。 - 前記CPUは、
乱数を発生させることができるとともに、発生させた乱数によって前記付加ビットの値を決定することを特徴とする請求項1記載の分割テーブル作成装置。 - 前記CPUは、
それぞれの前記分割テーブルを順次参照して前記アドレスを同じくする前記全体ビットを参照し、前記アドレスを同じくする前記全体ビットの前記部分ビットを結合することにより前記アドレスとされた前記データを変換する合成器を備えたことを特徴とする請求項1または2のいずれかに記載の分割テーブル作成装置。 - 前記CPUは、
前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する場合には、予め設定された規則に基づいて、境界とするビット位置を決定することを特徴とする請求項1〜3のいずれかに記載の分割テーブル作成装置。 - 前記予め設定された規則は、
前記データバスのビット間の相関に基づき作成されていることを特徴とする請求項4記載の分割テーブル作成装置。 - 複数のアドレスごとにn(nは2以上の整数)ビットの出力用データが定義されており、データをアドレスとして、前記データを前記出力用データに変換するために使用される変換テーブルを格納した変換テーブル格納部と、データバスの幅がm(ただし、2≦m≦2n)ビットであるCPU(Central Processing Unit)とを備えたコンピュータに以下の処理を実行させる分割テーブル作成プログラム
(1)前記変換テーブル格納部から前記変換テーブルを読み込む処理
(2)読み込んだ前記変換テーブルに基づき前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する処理
(3)分割したそれぞれの前記部分ビットに付加ビットを付加することにより前記部分ビットと前記付加ビットとの全体である全体ビットを前記データバスの幅のmビットとするとともにハミング重みがそれぞれの前記全体ビットにおいて同一となるように前記付加ビットの値を決定する処理
(4)前記出力用データにおけるビット位置を同じくする前記部分ビットを含む前記全体ビット同士からなるとともに前記アドレスと前記部分ビットとの対応関係を維持している複数の分割テーブルを作成する処理。 - 前記CPUは、
乱数を発生させることができ、
前記分割テーブル作成プログラムは、
前記CPUに乱数を発生させ、発生させた乱数によって前記付加ビットの値を決定する処理を前記コンピュータに実行させることを特徴とする請求項6記載の分割テーブル作成プログラム。 - 前記分割テーブル作成プログラムは、
それぞれの前記分割テーブルを順次参照して前記アドレスを同じくする前記全体ビットを参照し、前記アドレスを同じくする前記全体ビットの前記部分ビットを結合することにより前記アドレスとされた前記データを変換する処理を前記コンピュータに実行させることを特徴とする請求項6または7のいずれかに記載の分割テーブル作成プログラム。 - 前記分割テーブル作成プログラムは、
前記アドレスごとのnビットの前記出力用データのそれぞれを同じビット位置を境界としてm/2以下のビット数からなる複数の部分ビットに分割する処理を前記コンピュータに実行させる場合には、予め設定された規則に基づいて境界とするビット位置を決定することを前記コンピュータに実行させることを特徴とする請求項6〜8のいずれかに記載の分割テーブル作成プログラム。 - 前記予め設定された規則は、
前記データバスのビット間の相関に基づき作成されていることを特徴とする請求項9記載の分割テーブル作成プログラム。
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)
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 | 暗号処理回路及び暗号処理方法 |
-
2007
- 2007-04-18 JP JP2007109734A patent/JP4901564B2/ja active Active
Patent Citations (4)
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 |