JP6089668B2 - 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム - Google Patents
暗号化処理回路及び復号処理回路とその方法並びにそのプログラム Download PDFInfo
- Publication number
- JP6089668B2 JP6089668B2 JP2012272789A JP2012272789A JP6089668B2 JP 6089668 B2 JP6089668 B2 JP 6089668B2 JP 2012272789 A JP2012272789 A JP 2012272789A JP 2012272789 A JP2012272789 A JP 2012272789A JP 6089668 B2 JP6089668 B2 JP 6089668B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- permutation
- exclusive
- output
- slice
- 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
入力値を複数に分割した値をそれぞれ非線形変換する複数のテーブルを含む非線形変換部と、
前記非線形変換部の前記複数のテーブルから出力された複数の値に対して線形変換を施す線形変換部と、
前記線形変換部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力の並び替えを行う第1のパーミュテーション部と、
を備え、
初回のラウンド処理では、前記非線形変換部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降のラウンド処理では前記非線形変換部には、前回のラウンド処理での前記第1のパーミュテーション部の出力が入力され、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
前記非線形変換部、前記線形変換部、前記鍵加算部、及び、前記第1のパーミュテーション部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第2の排他的論理和演算部と、
前記第2の排他的論理和演算部の出力を並び替え暗号文として出力する第2のパーミュテーション部と、を備えた暗号化処理回路が提供される。
平文とマスク値との排他的論理和をとる第1の排他的論理和工程と、
入力値を複数に分割した値をそれぞれ複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する非線形変換工程と、
前記非線形変換工程から出力された複数の値に対して線形変換を施す線形変換工程と、
前記線形変換された値とラウンド鍵とを加算する鍵加算工程と、
前記鍵加算工程による加算結果の並び替えを行う第1のパーミュテーション工程と、
を含み、
初回のラウンド処理では、前記非線形変換工程には、前記第1の排他的論理和工程の演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換工程には、前回のラウンド処理における前記第1のパーミュテーション工程の出力が入力され、
前記非線形変換工程、前記線形変換工程、前記鍵加算工程、前記第1のパーミュテーション工程によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記第1のパーミュテーション工程の出力とアンマスク値との排他的論理和をとる第2の排他的論理和工程と、
前記第2の排他的論理和工程の演算結果を並び替え暗号文として出力する第2のパーミュテーション工程と、をさらに含む暗号化処理方法が提供される。
平文とマスク値との排他的論理和をとる第1の排他的論理和処理と、
入力値を複数に分割した値をそれぞれ複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する非線形変換処理と、
前記非線形変換処理から出力された複数の値に対して線形変換を施す線形変換処理と、
前記線形変換された値とラウンド鍵とを加算する鍵加算処理と、
前記鍵加算処理による加算結果の並び替えを行う第1のパーミュテーション処理と、
を含み、
初回のラウンド処理では、前記非線形変換処理には、前記第1の排他的論理和処理の演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換処理には、前回のラウンド処理における前記第1のパーミュテーション処理の出力が入力され、
前記非線形変換処理、前記線形変換処理、前記鍵加算処理、前記第1のパーミュテーション処理からなるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後における前記第1のパーミュテーション処理の出力とアンマスク値との排他的論理和をとる第2の排他的論理和処理と、
前記第2の排他的論理和処理の演算結果を並び替え暗号文として出力する第2のパーミュテーション処理と、を含む暗号化処理プログラムが提供される。本発明によれば、該暗号化処理プログラムを記録したコンピュータ読み出し可能な媒体(例えば半導体メモリ、磁気/光ディスク等)が提供される。
前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第1の排他的論理和演算部と、
入力値の並び替えを行う第2のパーミュテーション部と、
前記第2のパーミュテーション部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力に線形変換を施す線形変換部と、
前記線形変換部の出力を入力とし、入力値を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換部と、
を備え、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション部には、前回のラウンド処理における前記非線形変換部の出力が入力され、
前記第2のパーミュテーション部、前記鍵加算部、前記線形変換部、及び前記非線形変換部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換部の出力とマスク値との排他的論理和をとり、排他的論理和演算結果を平文として出力する第2の排他的論理和演算部を備えた復号処理回路が提供される。
暗号文を入力して並び替える第1のパーミュテーション工程と、
前記第1のパーミュテーション工程の出力とアンマスク値との排他的論理和をとる第1の排他的論理和工程と、
入力値の並び替えを行う第2のパーミュテーション工程と、
前記第2のパーミュテーション工程の出力とラウンド鍵とを加算する鍵加算工程と、
前記鍵加算工程の出力に線形変換を施す線形変換工程と、
前記線形変換工程の出力を入力とし、入力値を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換工程と、
を含み、
前記非線形変換工程において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション工程には、前記第1の排他的論理和工程の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション工程には、前回のラウンド処理における前記非線形変換工程の出力が入力され、
前記第2のパーミュテーション工程、前記鍵加算工程、前記線形変換工程、及び前記非線形変換工程によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換工程の出力とマスク値との排他的論理和をとり排他的論理和演算結果を、平文として出力する第2の排他的論理和工程を含む復号処理方法が提供される。
暗号文を入力して並び替える第1のパーミュテーション処理と、
前記第1のパーミュテーション処理の出力とアンマスク値との排他的論理和をとる第1の排他的論理和処理と、
入力値の並び替えを行う第2のパーミュテーション処理と、
前記第2のパーミュテーション処理の出力とラウンド鍵とを加算する鍵加算処理と、
前記鍵加算処理の出力に線形変換を施す線形変換処理と、
前記線形変換処理の出力を入力とし、入力値を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換処理と、
を含み、
前記非線形変換処理において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション処理には、前記第1の排他的論理和処理の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション処理には、前回のラウンド処理における前記非線形変換処理の出力が入力され、
前記第2のパーミュテーション処理、前記鍵加算処理、前記線形変換処理、及び前記非線形変換処理によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換処理の出力とマスク値との排他的論理和をとり、排他的論理和演算結果を、平文として出力する第2の排他的論理和処理と、を含む復号処理プログラムが提供される。本発明によれば、該復号処理プログラムを記録したコンピュータ読み出し可能な媒体(例えば半導体メモリ、磁気/光ディスク等)が提供される。
図1は、本発明の第1の実施形態の暗号化処理回路の構成を示す図である。本実施形態の暗号化処理回路は、暗号化部1000と鍵生成部2000を含む。
非線形変換:S(・)、
線形変換:L(・)、
パーミュテーション:P(・)。
出力側の各マスクm1b〜mnbを結合したものをMb、
とする。
Z=L(Y)
となる。
・最初のマスクMp、
・最後のアンマスクMc、
・非線形変換テーブルの入力側のマスクMa、
・非線形変換テーブルの出力側のマスクMb、
がある。各マスク値の関係について説明する。
Mp=Ma=Mc
となり、これらは、Mbを線形変換部1300及びパーミュテーション部1501で変換された結果と等しい。このため、ユーザは、任意の値をMbに設定し、それに合わせて、マスク値Ma、アンマスク値Mcは、自動的に設定される。
T*16*3(T=16バイト)
分必要となる。
次に、本発明の第2の実施形態について説明する。図12は、本発明の第2の実施形態の構成を示す図である。図12を参照すると、図2の前記第1の実施形態の排他的論理和演算部1101の前に、パーミュテーション部1504が追加され、乱数発生器1900を備えている。乱数発生器1900で生成された乱数(R)はパーミュテーション部1504、1502に入力される。図12において、パーミュテーション部1504では、乱数発生器1900から出力される乱数を受け、入力された平文に対して並び替え処理(乱数に対応した並び替え回数)を行い、並び替えた平文を排他的論理和演算部1101へと出力する。また、パーミュテーション部1502は、乱数発生器1900から出力される乱数を受け、排他的論理和演算部1102の出力の並び替え処理を行い、暗号文として出力する。
図13を参照して説明した第2の実施形態の一具体例として、128ビットAES(AES128)を用いるときの暗号化処理回路を説明する。
ステップB9-1での巡回シフトの回数 IRotは、最初のR及び10ラウンド分の4バイト巡回シフトされたデータを元の位置に戻すものとなり、次のように計算される。
暗号として3D暗号を用いるときの暗号化処理回路を実施例2として説明する。
パーミュテーション部4504で、各スライス内での4バイト巡回シフトをR回行う(ステップC9)。
暗号鍵を用いて平文を複数のラウンドで暗号化する暗号化処理回路であって、
暗号化処理回路は、第1、第2の排他的論理和演算部と、非線形変換部と、線形変換部、第1、第2のパーミュテーション部と、を備え、
前記第1の排他的論理和演算部は、平文とマスク値との排他的論理和をとり、
前記非線形変換部は、複数のテーブルを備え、
前記テーブルの入力及び出力にそれぞれマスク値をかけ、
前記テーブルの入力に対して、入力側のマスクをかけることで、マスク前の値に変換し、前記マスク前の値を用いて前記テーブルに従った非線形変換を行い、
前記非線形変換した値に対して、出力側のマスクをかけた値を出力し、
前記線形変換部は、入力された複数の値に対して、線形変換をとり、入力は前記非線形変換部の出力と結合されており、
前記第1のパーミュテーション部は、入力されたデータ列の並び替えを行い、入力は前記線形変換部の出力と結合されており、
前記第2の排他的論理和演算部は、ラウンド処理終了後のデータ列とアンマスク値との排他的論理和をとり、
前記第2のパーミュテーション部は、ラウンド処理終了後のデータ列とアンマスク値との排他的論理和の出力結果の並び替えを行い、並び替えた結果を暗号文として出力すること、を特徴とする、暗号化処理回路。
前記入力側マスク値と前記出力側マスク値は固定値であり、前記入力側マスクは、前記出力側マスクを前記線形変換部、及び、前記第1のパーミュテーション部で変換した値であることを特徴とする付記1に記載の暗号化処理回路。
前記第1のパーミュテーション部で行う並び替えは、任意のデータ列を、前記非線形変換部で非線形変換し、さらに前記線形変換部で線形変換した結果を前記第1のパーミュテーション部で並び替えた第1の結果と、
同じデータ列を前記第1のパーミュテーション部で並び替えた結果を前記非線形変換部で非線形変換し、さらに前記線形変換部で線形変換した第2の結果と、が互いに等しくとなるような並び替えを行うことを特徴とする付記1又は2に記載の暗号化処理回路。
第3のパーミュテーション部を備え、前記第3のパーミュテーション部は、平文の並び替えを行い、前記前記第3のパーミュテーション部で並び替えた平文を前記第1の排他的論理和演算部に入力することを特徴とする付記1乃至3のいずれか一に記載の暗号化処理回路。
暗号化アルゴリズムとしてAESを対象とし、前記第1のパーミュテーション部では、4の倍数のバイトの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、4の倍数のバイトでの巡回シフトによって暗号文を出力することを特徴とする付記1乃至3のいずれか一に暗号化処理回路。
暗号化アルゴリズムとしてAESを対象とし、
前記第1のパーミュテーション部では、4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、4の倍数のバイトでの巡回シフトによって暗号文を出力し、
前記第3のパーミュテーション部では、4の倍数のバイトでの巡回シフトによって平文の並び替えを行うことを特徴とする付記4記載の暗号化処理回路。
暗号化アルゴリズムとしてAESを対象とし、
前記第1のパーミュテーション部では、4バイトごとに列を構成し、各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、4バイトごとに列を構成し、各列の中で同じ巡回シフトによって暗号文を出力することを特徴とする付記1乃至3のいずれか一に記載の暗号化処理回路。
暗号化アルゴリズムとしてAESを対象とし、
前記第1のパーミュテーション部では、4バイトごとに列を構成し、各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、4バイトごとに列を構成し、各列の中で同じ巡回シフトによって暗号文を出力し、
前記第3のパーミュテーション部では、4バイトごとに列を構成し、各列の中で同じ巡回シフトによって平文の並び替えを行うことを特徴とする付記4に記載の暗号化処理回路。
暗号化アルゴリズムとして3D暗号を対象とし、
第1のスライスにかかるマスクに対して、第2のスライスにかかるマスクは前記第1のスライスにかかるマスクを12バイト巡回シフトした値であり、
第3のスライスにかかるマスクは前記第1のスライスにかかるマスクを8バイト巡回シフトした値であり、
第4のスライスにかかるマスクは前記第1のスライスにかかるマスクを4バイト巡回シフトした値であることを特徴とする付記1乃至4のいずれか一に記載の暗号化処理回路。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション部では、第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果を結合したものを暗号文とする、ことを特徴とする付記1乃至3、9のいずれか一に記載の暗号化処理回路。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション部では、第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果を結合したものを暗号文とすること、
前記第3のパーミュテーション部では、第1のスライスの中で4の倍数のバイトでの巡回シフトによって平文を並び替え、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替えることを特徴とする付記4又は9に記載の暗号化処理回路。
平文とマスク値との排他的論理和をとる第1の排他的論理和演算部と、
入力値を複数に分割した値をそれぞれ非線形変換する複数のテーブルを含む非線形変換部と、
前記非線形変換部の前記複数のテーブルから出力された複数の値に対して線形変換を施す線形変換部と、
前記線形変換部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力の並び替えを行う第1のパーミュテーション部と、
を備え、
初回のラウンド処理では、前記非線形変換部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降のラウンド処理では前記非線形変換部には、前回のラウンド処理での前記第1のパーミュテーション部の出力が入力され、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
前記非線形変換部、前記線形変換部、前記鍵加算部、及び、前記第1のパーミュテーション部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第2の排他的論理和演算部と、
前記第2の排他的論理和演算部の出力を並び替え暗号文として出力する第2のパーミュテーション部と、
を備えたことを特徴とする暗号化処理回路。
前記非線形変換部において、前記テーブルの入力に対して、入力側のマスクをかけることで、マスク前の値に変換し、前記マスク前の値を用いて前記テーブルに従った非線形変換を行うことを特徴とする付記12記載の暗号化処理回路。
前記入力側のマスク値は、前記出力側のマスク値を、前記線形変換部と前記第1のパーミュテーション部で変換した値であることを特徴とする付記12又は13記載の暗号化処理回路。
前記平文の並び替えを行う第3のパーミュテーション部をさらに備え、
前記第1の排他的論理和演算部は、前記第3のパーミュテーション部の出力とマスク値との排他的論理和をとることを特徴とする付記12乃至14のいずれか一に記載の暗号化処理回路。
前記第1のパーミュテーション部での並び替えに対応して前記ラウンド鍵の並び替えを行い、前記鍵加算部に供給する第4のパーミュテーション部を備えたことを特徴とする付記12乃至15のいずれか一に記載の暗号化処理回路。
データ処理装置による暗号化処理方法であって、
平文とマスク値との排他的論理和をとる第1の排他的論理和工程と、
入力値を複数に分割した値をそれぞれ複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する非線形変換工程と、
前記非線形変換工程から出力された複数の値に対して線形変換を施す線形変換工程と、
前記線形変換された値とラウンド鍵とを加算する鍵加算工程と、
前記鍵加算工程による加算結果の並び替えを行う第1のパーミュテーション工程と、
を含み、
初回のラウンド処理では、前記非線形変換工程には、前記第1の排他的論理和工程の演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換工程には、前回のラウンド処理における前記第1のパーミュテーション工程の出力が入力され、
前記非線形変換工程、前記線形変換工程、前記鍵加算工程、前記第1のパーミュテーション工程によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記第1のパーミュテーション工程の出力とアンマスク値との排他的論理和をとる第2の排他的論理和工程と、
前記第2の排他的論理和工程の演算結果を並び替え暗号文として出力する第2のパーミュテーション工程と、
をさらに含むことを特徴とする暗号化処理方法。
前記非線形変換工程において、前記テーブルの入力に対して、入力側のマスクをかけることで、マスク前の値に変換し、前記マスク前の値を用いて前記テーブルに従った非線形変換を行うことを特徴とする付記17記載の暗号化処理方法。
前記入力側のマスク値は、前記出力側のマスク値を、前記線形変換工程と前記第1のパーミュテーション工程で変換した値であることを特徴とする付記17又は18記載の暗号化処理方法。
前記第1のパーミュテーション工程での並び替えに対応して前記ラウンド鍵の並び替えを行い、前記鍵加算工程に供給する第4のパーミュテーション工程を含むことを特徴とする付記17乃至19のいずれか一に記載の暗号化処理方法。
前記第1のパーミュテーション工程は、
前記非線形変換工程で非線形変換し、前記線形変換工程で線形変換した結果を、前記第1のパーミュテーション工程で並び替えた結果と、
前記第1のパーミュテーション工程で並び替えた結果を、前記非線形変換工程で非線形変換し、前記線形変換工程で線形変換した結果と、
が互いに一致するような並び替えを行う、ことを特徴とする付記17乃至20のいずれか一に記載の暗号化処理方法。
前記平文の並び替えを行う第3のパーミュテーション工程をさらに備え、
前記第1の排他的論理和工程は、前記第3のパーミュテーション工程の出力とマスク値との排他的論理和をとることを特徴とする付記17乃至21のいずれか一に記載の暗号化処理方法。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション工程は、4の倍数のバイトの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程は、4の倍数のバイトでの巡回シフトによって暗号文を出力する、ことを特徴とする、付記17乃至21のいずれか一に記載の暗号化処理方法。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1及び第3のパーミュテーション工程は、4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程は、4の倍数のバイトでの巡回シフトによって暗号文を出力する、ことを特徴とする付記22記載の暗号化処理方法。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション工程は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力する、ことを特徴とする、付記17乃至21のいずれか一に記載の暗号化処理方法
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1及び第3のパーミュテーション工程は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力する、ことを特徴とする、付記22記載の暗号化処理方法。
暗号化アルゴリズムとして3D暗号を対象とし、
入力側マスクは出力側マスクを、前記線形変換処理及び前記第1のパーミュテーション処理で変換した値であり、
第1のスライスにかかるマスクに対して、
第2のスライスにかかるマスクは、前記第1のスライスにかかるマスクを12バイト巡回シフトした値であり、
第3のスライスにかかるマスクは、前記第1のスライスにかかるマスクを8バイト巡回シフトした値であり、
第4のスライスにかかるマスクは、前記第1のスライスにかかるマスクを4バイト巡回シフトした値である、ことを特徴とする付記17乃至21のいずれか一に記載の暗号化処理方法。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション工程では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程では、
第1のスライスの中で、4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
を結合したものを暗号文とする、ことを特徴とする付記17乃至21のいずれか一に記載の暗号化処理方法。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション工程では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション工程では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果を結合したものを暗号文とすること、
前記第3のパーミュテーション工程では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって平文を並び替え、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替える、ことを特徴とする、付記22記載の暗号化処理方法。
データ処理装置に暗号化処理を実行させるプログラムであって、
平文とマスク値との排他的論理和をとる第1の排他的論理和処理と、
入力値を複数に分割した値をそれぞれ複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する非線形変換処理と、
前記非線形変換処理から出力された複数の値に対して線形変換を施す線形変換処理と、
前記線形変換された値とラウンド鍵とを加算する鍵加算処理と、
前記鍵加算処理による加算結果の並び替えを行う第1のパーミュテーション処理と、
を含み、
初回のラウンド処理では、前記非線形変換処理には、前記第1の排他的論理和処理の演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換工程には、前回のラウンド処理における前記第1のパーミュテーション工程の出力が入力され、前記非線形変換処理、前記線形変換処理、前記鍵加算処理、前記第1のパーミュテーション処理のラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後における前記第1のパーミュテーション処理の出力とアンマスク値との排他的論理和をとる第2の排他的論理和処理と、
前記第2の排他的論理和処理の演算結果を並び替え暗号文として出力する第2のパーミュテーション処理と、
を含む、ことを特徴とするプログラム。
前記非線形変換処理において、前記テーブルの入力に対して、入力側のマスクをかけることで、マスク前の値に変換し、前記マスク前の値を用いて前記テーブルに従った非線形変換を行うことを特徴とする付記30記載のプログラム。
前記入力側のマスク値は、前記出力側のマスク値を、前記線形変換処理と前記第1のパーミュテーション処理で変換した値であることを特徴とする付記30又は31記載のプログラム。
前記第1のパーミュテーション処理での並び替えに対応して前記ラウンド鍵の並び替えを行い、前記鍵加算処理に供給する第4のパーミュテーション処理を含むことを特徴とする付記30乃至32のいずれか一に記載のプログラム。
前記第1のパーミュテーション処理は、
前記非線形変換処理で非線形変換し、前記線形変換処理で線形変換した結果を、前記第1のパーミュテーション処理で並び替えた結果と、
前記第1のパーミュテーション処理で並び替えた結果を、前記非線形変換処理で非線形変換し、前記線形変換処理で線形変換した結果と、
が互いに一致するような並び替えを行う、ことを特徴とする付記30乃至33のいずれか一に記載のプログラム。
前記平文の並び替えを行う第3のパーミュテーション処理をさらに備え、
前記第1の排他的論理和処理は、前記第3のパーミュテーション処理の出力とマスク値との排他的論理和をとることを特徴とする付記30乃至34いずれか一に記載のプログラム。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション処理は、4の倍数のバイトの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理は、4の倍数のバイトでの巡回シフトによって暗号文を出力する、ことを特徴とする、付記30乃至34のいずれか一に記載のプログラム。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1及び第3のパーミュテーション処理は、4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理は、4の倍数のバイトでの巡回シフトによって暗号文を出力する、ことを特徴とする付記35記載のプログラム。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション処理は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力する、ことを特徴とする、付記30乃至34のいずれか一に記載のプログラム。
暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1及び第3のパーミュテーション処理は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力する、ことを特徴とする、付記35記載のプログラム。
暗号化アルゴリズムとして3D暗号を対象とし、
第1のスライスにかかるマスクに対して、
第2のスライスにかかるマスクは、前記第1のスライスにかかるマスクを12バイト巡回シフトした値であり、
第3のスライスにかかるマスクは、前記第1のスライスにかかるマスクを8バイト巡回シフトした値であり、
第4のスライスにかかるマスクは、前記第1のスライスにかかるマスクを4バイト巡回シフトした値である、ことを特徴とする付記30乃至34のいずれか一に記載のプログラム。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション処理では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理では、
第1のスライスの中で、4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、を結合したものを暗号文とする、ことを特徴とする付記30乃至34のいずれか一に記載のプログラム。
暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション処理では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション処理では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果を結合したものを暗号文とすること、
前記第3のパーミュテーション処理では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって平文を並び替え、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替える、ことを特徴とする、付記35記載のプログラム。
暗号文を入力して並び替える第1のパーミュテーション部と、
前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第1の排他的論理和演算部と、
入力値の並び替えを行う第2のパーミュテーション部と、
前記第2のパーミュテーション部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力に線形変換を施す線形変換部と、
前記線形変換部の出力を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換部と、
を備え、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション部には、前回のラウンド処理における前記非線形変換部の出力が入力され、
前記第2のパーミュテーション部、前記鍵加算部、前記線形変換部、及び前記非線形変換部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換部の出力とマスク値との排他的論理和をとり、排他的論理和演算結果を平文として出力する第2の排他的論理和演算部と、を備えたことを特徴とする復号処理回路。
前記暗号文は、付記1の暗号化処理回路で暗号化されたものであり、
前記第1のパーミュテーション部、前記第2のパーミュテーション部、前記線形変換部、前記非線形変換部は、それぞれ、付記1の暗号化処理回路の前記第2のパーミュテーション部、前記第1のパーミュテーション部、前記線形変換部、前記非線形変換部と逆の並び換え/変換を行う、ことを特徴とする付記43記載の復号処理回路。
データ処理装置による復号処理方法であって、
暗号文を入力して並び替える第1のパーミュテーション工程と、
前記第1のパーミュテーション工程の出力とアンマスク値との排他的論理和をとる第1の排他的論理和工程と、
入力値の並び替えを行う第2のパーミュテーション工程と、
前記第2のパーミュテーション工程の出力とラウンド鍵とを加算する鍵加算工程と、
前記鍵加算工程の出力に線形変換を施す線形変換工程と、
前記線形変換工程の出力を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換工程と、
を含み、
前記非線形変換工程において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド工程では、前記第2のパーミュテーション工程には、前記第1の排他的論理和工程の出力が入力され、2回目以降ラウンド工程では、前記第2のパーミュテーション工程には、前回のラウンド処理における前記非線形変換工程の出力が入力され、
前記第2のパーミュテーション工程、前記鍵加算工程、前記線形変換工程、及び前記非線形変換工程によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換工程の出力とマスク値との排他的論理和をとり、排他的論理和演算結果を、平文として出力する第2の排他的論理和工程と、を含むことを特徴とする復号処理方法。
前記暗号文は、付記16の暗号化処理回路で暗号化されたものであり、
前記第1のパーミュテーション工程、前記第2のパーミュテーション工程、前記線形変換工程、前記非線形変換工程は、それぞれ、付記16の暗号化処理回路の前記第2のパーミュテーション工程、前記第1のパーミュテーション工程、前記線形変換工程、前記非線形変換工程と逆の並び換え/変換を行う、ことを特徴とする付記43記載の復号処理回路。
データ処理装置による復号処理を実行させるプログラムであって、
暗号文を入力して並び替える第1のパーミュテーション処理と、
前記第1のパーミュテーション処理の出力とアンマスク値との排他的論理和をとる第1の排他的論理和処理と、
入力値の並び替えを行う第2のパーミュテーション処理と、
前記第2のパーミュテーション処理の出力とラウンド鍵とを加算する鍵加算処理と、
前記鍵加算処理の出力に線形変換を施す線形変換処理と、
前記線形変換処理の出力を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換処理と、
を含み、
前記非線形変換処理において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション処理には、前記第1の排他的論理和処理の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション処理には、前回のラウンド処理における前記非線形変換処理の出力が入力され、
前記第2のパーミュテーション処理、前記鍵加算処理、前記線形変換処理、及び前記非線形変換処理によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換処理の出力とマスク値との排他的論理和をとり排他的論理和演算結果を平文として出力する第2の排他的論理和処理と、を含むことを特徴とするプログラム。
前記暗号文は、付記30のプログラムを前記データ処理装置で実行することで暗号化されたものであり、
前記第1のパーミュテーション処理、前記第2のパーミュテーション処理、前記線形変換処理、前記非線形変換処理は、それぞれ、付記29のプログラムにおける前記第2のパーミュテーション処理、前記第1のパーミュテーション処理、前記線形変換処理、前記非線形変換処理と逆の並び換え/変換を行う、ことを特徴とする付記47記載のプログラム。
1101、1102 排他的論理和演算部
1200 非線形変換部
1201 非線形変換テーブル(S1)
1202 非線形変換テーブル(S2)
1203 非線形変換テーブル(S3)
1204 非線形変換テーブル(Sn)
1211〜1218 排他的論理和演算部
1221〜1224 非線形変換テーブル(S)
1300 線形変換処理
1400 鍵加算処理
1411〜1414 排他的論理和演算部
1501〜1504 パーミュテーション部
1600 非線形変換部(AES)
1700 非線形変換部(RSM)
1701 バレルシフト
1702 バレルシフト
1800 MMSj+1加算部
1900 乱数発生器
2000 鍵生成部
2001 パーミュテーション付鍵生成部
3101、3102 排他的論理和演算部
3200 非線形変換部
3201 マスク付SBOX(S1)
3202 マスク付SBOX(S2)
3203 マスク付SBOX(S3)
3204 マスク付SBOX(S4)
3205 マスク付SBOX(S5)
3216 マスク付SBOX(S16)
3301 ShiftRows
3302 MixColumns
3400 AddRoundKey
3401 AddRoundKey(ラウンド0)
3501 パーミュテーション
3502 パーミュテーション
3503 パーミュテーション
3504 パーミュテーション
3600 非線形変換部
3601 SBOX(S)
3602 SBOX(S)
3616 SBOX(S)
4101 排他的論理和演算部
4102 排他的論理和演算部
4200 非線形変換部
4201 マスク付非線形変換テーブル(γ1)
4202 マスク付非線形変換テーブル(γ2)
4264 マスク付非線形変換テーブル(γ64)
420A 非線形変換部
420B 非線形変換部
4201A マスク付非線形変換テーブル(γ1)
4202A マスク付非線形変換テーブル(γ2)
4264A マスク付非線形変換テーブル(γ64)
4201B マスク付非線形変換テーブル(γ’1)
4202B マスク付非線形変換テーブル(γ’2)
4264B マスク付非線形変換テーブル(γ’64)
4270 セレクタ
4301 拡散関数部(θ)
4302 最大距離分離行列演算部(π)
4400 AddRoundKey
4401 AddRoundKey(ラウンド0)
4501 パーミュテーション
4502 パーミュテーション
4503 パーミュテーション
4504 パーミュテーション
4600 非線形変換部
4601、4602、4616 非線形変換テーブル(γ)
Claims (10)
- 平文とマスク値との排他的論理和をとる第1の排他的論理和演算部と、
入力値を複数に分割した値をそれぞれ非線形変換する複数のテーブルを含む非線形変換部と、
前記非線形変換部の前記複数のテーブルから出力された複数の値に対して線形変換を施す線形変換部と、
前記線形変換部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力の並び替えを行う第1のパーミュテーション部と、
を備え、
初回のラウンド処理では、前記非線形変換部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降のラウンド処理では前記非線形変換部には、前回のラウンド処理での前記第1のパーミュテーション部の出力が入力され、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
前記非線形変換部、前記線形変換部、前記鍵加算部、及び、前記第1のパーミュテーション部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第2の排他的論理和演算部と、
前記第2の排他的論理和演算部の出力を並び替え暗号文として出力する第2のパーミュテーション部と、
を備えたことを特徴とする暗号化処理回路。 - 前記入力側のマスク値が、前記出力側のマスク値を、前記線形変換部と前記第1のパーミュテーション部で変換した値であることを特徴とする請求項1記載の暗号化処理回路。
- 前記第1のパーミュテーション部は、前記非線形変換部で非線形変換し、前記線形変換部で線形変換した結果を、前記第1のパーミュテーション部で並び替えた第1の結果と、前記第1のパーミュテーション部で並び替えた結果を、前記非線形変換部で非線形変換し、前記線形変換部で線形変換した第2の結果と、が互いに一致するような並び替えを行うことを特徴とする請求項1又は2記載の暗号化処理回路。
- 前記平文の並び替えを行う第3のパーミュテーション部をさらに備え、
前記第1の排他的論理和演算部は、前記第3のパーミュテーション部の出力とマスク値との排他的論理和をとることを特徴とする請求項1乃至3のいずれか1項に記載の暗号化処理回路。 - 暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション部は、4の倍数のバイトの巡回シフトによって並び替えを行い、且つ、前記第2のパーミュテーション部は、4の倍数のバイトでの巡回シフトによって暗号文を出力するか、
又は、
前記第1及び第3のパーミュテーション部は、4の倍数のバイトでの巡回シフトによって並び替えを行い、且つ、前記第2のパーミュテーション部は、4の倍数のバイトでの巡回シフトによって暗号文を出力することを特徴とする請求項4記載の暗号化処理回路。 - 暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を対象とし、
前記第1のパーミュテーション部は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、且つ、前記第2のパーミュテーション部は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力し、
又は、
前記第1及び第3のパーミュテーション部は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって並び替えを行い、且つ、前記第2のパーミュテーション部は、4バイトごとに列を構成し各列の中で同じ巡回シフトによって暗号文を出力することを特徴とする請求項4記載の暗号化処理回路。 - 暗号化アルゴリズムとして3D暗号を対象とし、
前記第1のパーミュテーション部では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、
第1のスライスの中で、4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
を結合したものを暗号文とする、
又は、
前記第1のパーミュテーション部では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行い、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行い、
前記第2のパーミュテーション部では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果と、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって並び替えを行った結果を結合したものを暗号文とすること、
前記第3のパーミュテーション部では、
第1のスライスの中で4の倍数のバイトでの巡回シフトによって平文を並び替え、
第2のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第3のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替え、
第4のスライスの中で、前記第1のスライスと同じ4の倍数のバイトでの巡回シフトによって平文を並び替えることを特徴とする請求項4記載の暗号化処理回路。 - データ処理装置による暗号化処理方法であって、
前記データ処理装置の第1の排他的論理和演算部が、入力された平文とマスク値との排他的論理和をとる工程と、
前記データ処理装置の非線形変換部が、入力値を複数に分割した値をそれぞれ記憶部に記憶された複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する工程と、
前記データ処理装置の線形変換部が、前記非線形変換部から出力された複数の値に対して線形変換を施す工程と、
前記データ処理装置の鍵加算部が、前記線形変換された値とラウンド鍵とを加算する工程と、
前記データ処理装置の第1のパーミュテーション部が、前記鍵加算部による加算結果の並び替えを行う工程と、
を含み、
初回のラウンド処理では、前記非線形変換部には、前記第1の排他的論理和部での演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換部には、前回のラウンド処理における前記第1のパーミュテーション部の出力が入力され、
前記非線形変換部、前記線形変換部、前記鍵加算部、前記第1のパーミュテーション部によるラウンド処理が規定回数行われ、
前記データ処理装置の第2の排他的論理和演算部が、前記規定回数のラウンド処理終了後の前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる工程と、
前記データ処理装置の第2のパーミュテーション部が、前記第2の排他的論理和部での演算結果を並び替え暗号文として出力する工程と、
をさらに含むことを特徴とする暗号化処理方法。 - データ処理装置に、
入力した平文と記憶部に記憶されたマスク値とを入力し前記平文と前記マスク値との排他的論理和をとる第1の排他的論理和処理と、
前記平文と前記マスク値との排他的論理和を入力値として受け、前記入力値を複数に分割した値をそれぞれ記憶部に記憶された複数のテーブルを用いて非線形変換するにあたり、前記テーブルへの入力に対して入力側のマスクと排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して、出力側のマスク値と排他的論理和をとった値を出力する非線形変換処理と、
前記非線形変換処理から出力される複数の値を入力として受け、前記複数の値に対して線形変換を施す線形変換処理と、
前記線形変換された複数の値を入力として受け、記憶部に記憶されたラウンド鍵とを加算する鍵加算処理と、
前記鍵加算処理による加算結果を入力として受け、前記加算結果の並び替えを行う第1のパーミュテーション処理と、
を実行させるプログラムであって、
初回のラウンド処理では、前記非線形変換処理には、前記第1の排他的論理和処理の演算結果が入力され、2回目以降のラウンド処理では、前記非線形変換工程には、前回のラウンド処理における前記第1のパーミュテーション工程の出力が入力され、前記非線形変換処理、前記線形変換処理、前記鍵加算処理、前記第1のパーミュテーション処理のラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後における前記第1のパーミュテーション処理の出力を入力として受け、前記規定回数のラウンド処理終了後における前記第1のパーミュテーション処理の出力と記憶部に記憶されたアンマスク値との排他的論理和をとる第2の排他的論理和処理と、
前記第2の排他的論理和処理の演算結果を入力として受け、前記演算結果の並び替えを行い暗号文として出力する第2のパーミュテーション処理と、
を実行させるプログラム。
- 暗号文を入力して並び替える第1のパーミュテーション部と、
前記第1のパーミュテーション部の出力とアンマスク値との排他的論理和をとる第1の排他的論理和演算部と、
入力値の並び替える第2のパーミュテーション部と、
前記第2のパーミュテーション部の出力とラウンド鍵とを加算する鍵加算部と、
前記鍵加算部の出力に線形変換を施す線形変換部と、
前記線形変換部の出力を入力とし、入力値を複数に分割した値をそれぞれ入力し非線形変換する複数のテーブルを含む非線形変換部と、
を備え、
前記非線形変換部において、前記テーブルは、前記テーブルへの入力に対して入力側のマスク値と排他的論理和をとった値を用いて、前記テーブルに従った非線形変換を行い、前記非線形変換した値に対して出力側のマスク値と排他的論理和をとった値を出力し、
初回のラウンド処理では、前記第2のパーミュテーション部には、前記第1の排他的論理和演算部の出力が入力され、2回目以降ラウンド処理では、前記第2のパーミュテーション部には、前回のラウンド処理における前記非線形変換部の出力が入力され、
前記第2のパーミュテーション部、前記鍵加算部、前記線形変換部、及び前記非線形変換部によるラウンド処理が規定回数行われ、
前記規定回数のラウンド処理終了後の前記非線形変換部の出力とマスク値との排他的論理和をとり排他的論理和演算結果を平文として出力する第2の排他的論理和演算部を備えたことを特徴とする復号処理回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012272789A JP6089668B2 (ja) | 2012-12-13 | 2012-12-13 | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012272789A JP6089668B2 (ja) | 2012-12-13 | 2012-12-13 | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014119512A JP2014119512A (ja) | 2014-06-30 |
JP6089668B2 true JP6089668B2 (ja) | 2017-03-08 |
Family
ID=51174416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012272789A Active JP6089668B2 (ja) | 2012-12-13 | 2012-12-13 | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6089668B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019233029B2 (en) * | 2018-03-12 | 2021-07-22 | Nippon Telegraph And Telephone Corporation | Secure computation apparatus, secure computation method, program, and recording medium |
CN117131517B (zh) * | 2023-10-27 | 2024-03-19 | 鼎铉商用密码测评技术(深圳)有限公司 | 加密算法的安全性检测方法、终端设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4909018B2 (ja) * | 2006-11-16 | 2012-04-04 | 富士通株式会社 | 共通鍵暗号のための暗号化装置 |
FR2952773B1 (fr) * | 2009-11-13 | 2012-07-20 | Inst Telecom Telecom Paristech | Circuit electronique de faible complexite protege par masquage personnalise |
-
2012
- 2012-12-13 JP JP2012272789A patent/JP6089668B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014119512A (ja) | 2014-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8737603B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
JP5402632B2 (ja) | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム | |
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
US8731188B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
US6769063B1 (en) | Data converter and recording medium on which program for executing data conversion is recorded | |
RU2449482C2 (ru) | Устройство обработки шифрования, способ обработки шифрования и компьютерная программа | |
JP6406350B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR101770874B1 (ko) | 암호 처리 장치, 암호 처리 방법, 컴퓨터로 판독가능한 기록 매체, 및 정보 처리 장치 | |
JP2009175167A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Lepoint et al. | Another nail in the coffin of white-box AES implementations | |
JP2015191107A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Shorin et al. | Linear and differential cryptanalysis of Russian GOST | |
JP6089668B2 (ja) | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム | |
Minier et al. | Solving a symmetric key cryptographic problem with constraint programming | |
JP2010044251A (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
Scripcariu et al. | Extended des algorithm to galois fields | |
Mihalkovich et al. | MPF based symmetric cipher performance comparison to AES and TDES | |
WO2012060685A1 (en) | A method for linear transformation in substitution-permutation network symmetric-key block cipher | |
WO2015059845A1 (ja) | 暗号化処理回路及び復号処理回路並びにその方法 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Sharma et al. | Comparative analysis of block key encryption algorithms | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
Xiao et al. | Generating large non-singular matrices over an arbitrary field with blocks of full rank | |
JP2014197785A (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: 6089668 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |