JP6089664B2 - 暗号処理装置と方法並びに暗号処理プログラム - Google Patents
暗号処理装置と方法並びに暗号処理プログラム Download PDFInfo
- Publication number
- JP6089664B2 JP6089664B2 JP2012271543A JP2012271543A JP6089664B2 JP 6089664 B2 JP6089664 B2 JP 6089664B2 JP 2012271543 A JP2012271543 A JP 2012271543A JP 2012271543 A JP2012271543 A JP 2012271543A JP 6089664 B2 JP6089664 B2 JP 6089664B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- bits
- bit
- value
- encryption
- 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.)
- Active
Links
Images
Description
代表的な暗号アルゴリズムとして、例えばSPN(substitution permutation network)構造のブロック暗号(block cipher)方式のAES(Advanced Encryption Standard)がある。AESは、代表的な暗号解読法(例えば、差分解読法(Differential cryptanalysis)や線形解読法(Linear cryptanalysis))に対して安全である。秘密鍵の全数探索(brute force attack)よりも効率的に鍵を求める方法は知られていない。そして、秘密鍵の全数探索には膨大な時間を要することから、AESは安全である。
h(d)∈{0,1,2,... ,n}
である。ハミングウェイトとは、データを2進数表現したときの1の数である。例えば、n=8の場合、
h(00000000) = 0、
h(00001000) = 1、
h(00100011) = 3、
h(11111111) = 8
となる。
zi=S(xi L ^Ki) ・・・(5)
である。なお、^はC言語等で用いられる、ビット毎の排他的論理和(bitwise XOR)の演算子である(以下、排他的論理和演算子として^を用いる)。
α3=α1^α2 ・・・(6)
である。
((x0 L^α1)^K0)=(x0 L^α1^K0) ・・・(7)
である。
(x0 L^K0) ・・・(8)
となる。
z0=(S(x0 L^K0)^α3) ・・・(9)
z0^(x0 R^α2) ・・・(10)
が行われる。このため、α3とα2の排他的論理和によりα1が生成される。すなわち、
(S(x0 L^K0)^α3)^(x0 R^α2)
=S(x0 L^K0)^(α1^α2)^(x0 R^α2)
=S(x0 L^K0)^α1^α2^α2^x0 R
=S(x0 L^K0)^α1^x0 R ・・・(11)
x1 L^α1
と表される。
x1 R=x0 L^α1^α3=x0 L^α2 ・・・(12)
である。
x1 R^α2
と表される。
xi Lはα1でマスクされ、
xi Rはα2でマスクされた状態となる。
xr−1 L^α1 ・・・(13)
S(xr−1 L^Kr−1)^α1^xr−1 R ・・・(14)
となり、いずれもα1でマスクされる。
xr R=(S(xr−1 L^Kr−1)^α1^xr−1 R)^α1
=(S(xr−1 L^Kr−1)^xr−1 R) ・・・(16)
第2のビット数の乱数を生成する前記乱数生成手段と、
第1のビット数の平文データに、前記乱数生成手段で生成された第2のビット数の乱数を連結した値を生成する乱数連結手段と、
前記表の基準アドレスを指すポインタを更新するポインタ更新手段と、
前記更新されたポインタを基準とし、前記第1のビット数のデータと第2のビット数の乱数との連結値から計算されるアドレスにて前記表を参照する処理を含む暗号化処理を行う暗号化手段と、
前記暗号化手段の出力から乱数を除去する乱数削除手段と、
を備える暗号処理装置が提供される。
表作成処理では、前記表の各要素に、共通鍵暗号方式の暗号化処理に関わる第1のビット数の値に、乱数生成処理で生成された第2のビット数の前記乱数を連結した値を設定し、
乱数連結処理では、第1のビット数の平文データに、前記乱数生成処理で生成された第2のビット数の乱数を連結した値を生成し、
ポインタ更新処理では、前記表の基準アドレスを指すポインタを更新し、
暗号化処理では、前記更新されたポインタを基準とし、第1のビット数のデータと第2のビット数の乱数との連結値から求まるアドレスで前記表を参照する処理を含む暗号化処理を行い、
乱数削除処理では、前記暗号化処理の出力から乱数を除去する、暗号処理方法が提供される。
前記表の各要素に、共通鍵暗号方式の暗号化処理に関わる第1のビット数の値に、乱数生成処理で生成された第2のビット数の前記乱数を連結した値を設定する表生成処理と、
前記第2のビット数の前記乱数を生成する前記乱数生成処理と、
第1のビット数の平文データに、前記乱数生成処理で生成された第2のビット数の乱数を連結した値を生成する乱数連結処理と、
前記表の基準アドレスを指すポインタを更新するポインタ更新処理と、
前記更新されたポインタを基準とし、第1のビット数のデータと第2のビット数の乱数との連結値から求まるアドレスで前記表を参照する処理を含む暗号化処理を行う暗号化処理と、
前記暗号化処理の出力から乱数を除去する乱数削除処理と、
を実行させるプログラムが提供される。本発明によれば、該プログラムを記録した記録媒体(半導体メモリ、あるいは磁気/光ディスク等)が提供される。
第2のビット数の乱数を生成する前記乱数生成手段(図5の70)と、
第1のビット数の平文データに、前記乱数生成手段(図5の70)で生成された第2のビット数の乱数を連結した値を生成する乱数連結手段(図5の72)と、
第1のビット数の暗号データと第2のビット数の前記乱数との連結値をインデックスとして前記表(S’)の参照が行えるように、前記表(S’)の基準アドレス(例えば先頭アドレス)を指すポインタ(S'addr)を更新するポインタ更新手段(図5の74)と、
前記更新されたポインタ(S'addr)を基準とし、前記第1のビット数の暗号データと第2のビット数の乱数との連結値をインデックスとして計算されるアドレスにて前記表を参照する処理を含む暗号化処理を行う暗号化手段(図5の73)と、
前記暗号化手段の出力から乱数を除去する乱数削除手段(図5の75)と、を備える。
Xaddr=Saddr−{(2n−1−x)<<t)} ・・・(17)’
で与えられる。
z0^(β0||x0 R) ・・・(20)
で計算される。
βr||xr L、
βr+1||xr R
からそれぞれ乱数βr、βr+1を除去し(下位nビット:xr L、xr Rを抽出)、暗号文C=xr L||xr Rを生成する。
乱数削除手段75は、データから乱数を取り除き、データを結合したものを暗号文とする(ステップS10)。
排他的論理和を2回、
S[]のロードを1回、
S’[]へのストアを1回実行する。
S’[]へのストアの1回で済む(乱数αをストア命令のサイズに一致させた場合)。
2 入出力装置
3 CPU
4 RAM
5 ROM
6 バス
7 暗号処理プログラム
10 F関数
11 非線形処理S
30 乱数マスクをかけた非線形処理S
31 排他的論理和
70 乱数生成手段
71 表生成手段
72 乱数連結手段
73 暗号化手段
74 ポインタ更新手段
75 乱数削除手段
301 非線形変換処理
Claims (9)
- 参照される要素の値を出力する表の各要素に、共通鍵暗号方式の暗号化処理に関わる第1のビット数の値に、乱数生成手段で生成された第2のビット数の乱数を連結した値を設定する表生成手段と、
第2のビット数の乱数を生成する前記乱数生成手段と、
第1のビット数の平文データに、前記乱数生成手段で生成された第2のビット数の乱数を連結した値を生成する乱数連結手段と、
前記表参照用の基準アドレスを指すポインタを更新するポインタ更新手段と、
前記更新されたポインタを基準とし、第1のビット数のデータと第2のビット数の乱数との連結値から計算されるアドレスにて前記表を参照する処理を含む暗号化手段と、
前記暗号化手段の出力から乱数を除去する乱数削除手段と、
を備える、ことを特徴とする暗号処理装置。 - 前記第1のビット数をnとし、
前記表は、ビット幅m(ただし、1≦n<m)の要素を2n個備え、
前記第2のビット数をs(ただし、1≦s<(m−n))とし、
前記表生成手段は、前記表のmビットの各要素において、下位nビットに、前記暗号化処理に関わる値を設定し、前記下位nビットよりも上位ビットに前記乱数生成手段で生成されたsビットの乱数を設定し、
前記乱数連結手段は、nビットの平文データを下位nビットとし、その上位ビットに前記乱数生成手段で生成されたsビットの乱数を連結した値を生成し、
前記ポインタ更新手段は、下位nビットのデータと上位sビットの前記乱数との連結値からなるインデックスの前記下位nビットを0とした値を、前記表の要素のアドレスに換算した値を、前記表の先頭アドレスを指すポインタから減算した値を、更新後のポインタとし、
前記暗号化手段は、前記更新後のポインタに、下位nビットのデータと上位sビットの乱数との連結値からなる前記インデックスのアドレス換算値を加算したアドレスにて、前記表の要素を参照し、前記表から出力されるmビットの要素から、暗号化処理に関わるnビットの値とsビットの前記乱数とを連結した値を取得する、ことを特徴とする請求項1記載の暗号処理装置。 - 前記暗号化手段は、前記表を参照する処理を含むラウンド処理を予め定められた回数行い、
前記乱数削除手段は、最終のラウンド処理の出力から乱数を削除する、ことを特徴とする請求項1又は2記載の暗号処理装置。 - 参照される要素の値を出力する表を少なくとも記憶する記憶装置とプロセッサを備えたデータ処理装置による暗号処理方法であって、
前記プロセッサによる表作成処理では、前記記憶装置にアクセスし、前記表の各要素に、共通鍵暗号方式の暗号化処理に関わる第1のビット数の値に、前記プロセッサによる乱数生成処理で生成された第2のビット数の乱数を連結した値を設定して前記記憶装置に記憶された前記表を更新し、
前記プロセッサによる乱数連結処理では、第1のビット数の平文データと、前記乱数生成処理で生成された第2のビット数の乱数を入力し、前記第1のビット数の平文データに、前記乱数生成処理で生成された第2のビット数の乱数を連結した値を生成して前記記憶装置に保持し、
前記プロセッサによるポインタ更新処理では、前記記憶装置に記憶される前記表参照用の基準アドレスを指すポインタを更新し、
前記プロセッサによる暗号化処理では、前記更新されたポインタを基準とし、前記第1のビット数のデータと第2のビット数の乱数との連結値から求まるアドレスにて前記記憶装置に記憶された前記表を参照する処理を行い、
前記プロセッサによる乱数削除処理では、前記暗号化処理の出力を受け、前記暗号化処理の出力から乱数を除去する、
ことを特徴とする暗号処理方法。 - 前記第1のビット数をnとし、
前記記憶装置に記憶された前記表は、ビット幅m(ただし、1≦n<m)の要素を2n個備え、
前記第2のビット数をs(ただし、1≦s<(m−n))とし、
前記表生成処理では、前記記憶装置に記憶された前記表のmビットの各要素において、下位nビットに、前記暗号化処理に関わる値を設定し、前記下位nビットよりも上位ビットにsビットの乱数を設定し、
前記乱数連結処理では、入力されたnビットの平文データを下位nビットとし、その上位ビットにsビットの乱数を連結した値を生成して前記記憶装置に保持し、
前記ポインタ更新処理では、下位nビットのデータと上位sビットの前記乱数との連結値からなるインデックスの前記下位nビット0とした値を、前記記憶装置に記憶された前記表の要素のアドレスに換算した値を、前記表の先頭アドレスを指すポインタから減算した値を、更新後のポインタとし、
前記暗号化処理では、前記更新後のポインタに、下位nビットのデータと上位sビットの乱数との連結値からなるインデックスのアドレス換算値を加算したアドレスにて、前記記憶装置に記憶された前記表の要素を参照し、前記表から出力されるmビットの要素から、暗号化処理に関わるnビットの値とsビットの前記乱数とを連結した値を取得する、ことを特徴とする請求項4記載の暗号処理方法。 - 前記暗号化処理では、前記記憶装置に記憶された前記表を参照する処理を含むラウンド処理を予め定められた回数行い、
前記乱数削除処理では、前記暗号化処理による最終のラウンドの出力を受け、前記暗号化処理による最終のラウンドの出力から乱数を削除する、ことを特徴とする請求項5記載の暗号処理方法。 - 参照される要素の値を出力する表を少なくとも記憶する記憶装置を備えたコンピュータに、
前記記憶装置にアクセスし、前記表の各要素に、共通鍵暗号方式の暗号化処理に関わる第1のビット数の値に、乱数生成処理で生成された第2のビット数の前記乱数を連結した値を設定し前記記憶装置に記憶された前記表を更新する表生成処理と、
第2のビット数の前記乱数を生成し前記記憶装置に保持する前記乱数生成処理と、
第1のビット数の平文データに、前記乱数生成処理で生成された第2のビット数の乱数を入力し、前記第1のビット数の平文データに、前記乱数生成処理で生成された第2のビット数の乱数を連結した値を生成して前記記憶装置に保持する乱数連結処理と、
前記記憶装置に記憶された前記表の基準アドレスを指すポインタを更新するポインタ更新処理と、
前記更新されたポインタを基準とし、第1のビット数のデータと第2のビット数の乱数との連結値から求まるアドレスで、前記記憶装置に記憶された前記表を参照する処理を含む暗号化処理と、
前記暗号化処理の出力を受け、前記暗号化処理の出力から乱数を除去する乱数削除処理と、
を実行させるプログラム。 - 前記第1のビット数をnとし、
前記表は、ビット幅m(ただし、1≦n<m)の要素を2n個備え、
前記第2のビット数をs(ただし、1≦s<(m−n))とし、
前記表生成処理では、前記記憶装置に記憶された前記表のmビットの各要素において、下位nビットに、前記暗号化処理に関わる値を設定し、前記下位nビットよりも上位ビットにsビットの乱数を設定し、
前記乱数連結処理では、入力されたnビットの平文データを下位nビットとし、その上位ビットにsビットの乱数を連結した値を生成して前記記憶装置に保持し、
前記ポインタ更新処理では、下位nビットのデータと上位sビットの前記乱数との連結値からなるインデックスの前記下位nビット0とした値を、前記記憶装置に記憶された前記表の要素のアドレスに換算した値を、前記表の先頭アドレスを指すポインタから減算した値を、更新後のポインタとし、
前記暗号化処理では、前記更新後のポインタに、下位nビットのデータと上位sビットの乱数との連結値からなるインデックスのアドレス換算値を加算したアドレスにて、前記記憶装置に記憶された前記表の要素を参照し、前記表から出力されるmビットの要素から、暗号化処理に関わるnビットの値とsビットの前記乱数とを連結した値を取得する、ことを特徴とする請求項7記載のプログラム。 - 前記暗号化処理では、前記記憶装置に記憶された前記表を参照する処理を含むラウンド処理を予め定められた回数行い、
前記乱数削除処理では、前記暗号化処理から最終のラウンドの出力を受け、前記最終のラウンドの出力から乱数を削除する、ことを特徴とする請求項8記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012271543A JP6089664B2 (ja) | 2012-12-12 | 2012-12-12 | 暗号処理装置と方法並びに暗号処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012271543A JP6089664B2 (ja) | 2012-12-12 | 2012-12-12 | 暗号処理装置と方法並びに暗号処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014115579A JP2014115579A (ja) | 2014-06-26 |
JP6089664B2 true JP6089664B2 (ja) | 2017-03-08 |
Family
ID=51171595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012271543A Active JP6089664B2 (ja) | 2012-12-12 | 2012-12-12 | 暗号処理装置と方法並びに暗号処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6089664B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
US7720225B2 (en) * | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
CN102484581B (zh) * | 2009-06-19 | 2015-07-01 | 耶德托公司 | 使用中间数据更改的具有可配置密钥的白盒密码*** |
-
2012
- 2012-12-12 JP JP2012271543A patent/JP6089664B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014115579A (ja) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5242560B2 (ja) | 暗号化装置、復号化装置、暗号化方法及び集積回路 | |
Benvenuto | Galois field in cryptography | |
JP5402632B2 (ja) | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム | |
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4828526B2 (ja) | 暗号計算を実行するための方法及び装置 | |
Jaffe | A first-order DPA attack against AES in counter mode with unknown initial counter | |
EP1833190A1 (en) | Table splitting for cryptographic processes | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5612007B2 (ja) | 暗号化鍵生成装置 | |
Waqas et al. | Generation of AES-like S-boxes by replacing affine matrix | |
JP2004258667A (ja) | N個のデジットを含むワードの擬似ランダム置換の生成方法 | |
US9391770B2 (en) | Method of cryption | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
JP5202350B2 (ja) | 暗号処理装置及び暗号処理方法及び暗号処理プログラム | |
CN106656500A (zh) | 加密装置及方法 | |
JP2010044251A (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
JP6136325B2 (ja) | 暗号処理装置、暗号処理方法およびプログラム | |
CN107493164B (zh) | 一种基于混沌***的des加密方法和*** | |
JP6089664B2 (ja) | 暗号処理装置と方法並びに暗号処理プログラム | |
CN110417540B (zh) | 一种抗差分功耗分析的信息加密方法 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
US20100128870A1 (en) | Pseudo-random number generation device, program, and method for stream encoding | |
JP2006054568A (ja) | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161205 |
|
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: 20170110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170123 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6089664 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |