JP5504592B2 - データ変換装置、およびデータ変換方法、並びにプログラム - Google Patents
データ変換装置、およびデータ変換方法、並びにプログラム Download PDFInfo
- Publication number
- JP5504592B2 JP5504592B2 JP2008214810A JP2008214810A JP5504592B2 JP 5504592 B2 JP5504592 B2 JP 5504592B2 JP 2008214810 A JP2008214810 A JP 2008214810A JP 2008214810 A JP2008214810 A JP 2008214810A JP 5504592 B2 JP5504592 B2 JP 5504592B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- function
- processing unit
- unit
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
Description
原像計算困難性(Preimage Resistance)
第二原像計算困難性(2nd Preimage Resistance)
衝突計算困難性(Collision Resistance)
入力をx、ハッシュ関数をhとしてy=h(x)を出力とするハッシュ関数において、
原像計算困難性は、出力yについてh(x)=yとなる入力xを計算する困難性に相当する。
第二原像計算困難性は、1つの入力値xが既知のとき、h(x')=h(x)を満たす異なる入力値x'を見つけることの困難性に相当する。
衝突計算困難性は、h(x')=h(x)を満たす2つの異なる入力値x、x'を見つけることの困難性に相当する。
これらの困難性が高いほど、安全性の高いハッシュ関数であると言える。
入力データに対するデータ攪拌処理を実行する攪拌処理部と、
データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行する圧縮処理部を有し、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能とした複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部は、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行する構成を有し、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行する構成を有し、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力する構成であるデータ変換装置にある。
S←S・xa、T←T・xb
ただしa≠b
とする更新処理を含む構成である。
データ変換装置において実行するデータ変換処理方法であり、
攪拌処理部が、入力データに対するデータ攪拌処理を実行する攪拌処理ステップと、
圧縮処理部が、データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行する圧縮処理ステップを有し、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能とした複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部は、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行し、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行し、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力するデータ変換方法にある。
データ変換装置にデータ変換処理を実行させるプログラムであり、
攪拌処理部に、入力データに対するデータ攪拌処理を実行させる攪拌処理ステップと、
圧縮処理部に、データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行させる圧縮処理ステップを有し、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能とした複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部に、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行させ、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行させ、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力させるシーケンスを記録したプログラムにある。
1.定義域拡張法
2.出力サイズを拡大する新しい定義域拡張法
3.新しい定義域拡張法の処理効率向上法
4.攪拌関数Fの実現方法
5.定義域拡大法の一般化
6.攪拌関数Fの構成の一般化
7.異なる圧縮関数の利用について
8.圧縮関数の内部処理の効率的な実現法
9.入力メッセージ長の拡張法
10.CV処理部とMS部に繰り返し型置換を利用したハッシュ関数実現法
11.MS部のサイズ拡大法
12.CV処理部のサイズ拡大法
13.CV処理部とMS部のサイズ拡大法
14.定義域拡大法用の攪拌関数Fの構成法
15.拡散性能の高い置換処理実現方法
16.独立性の高い出力をもつ置換関数の生成法
17.置換関数に適用するコンスタントの生成処理
18.複数の全体置換に対するコンスタントの生成法
19.ハッシュ関数の出力値の切り詰め手法
20.データ変換装置の構成例
先に説明したように、ハッシュ関数実行部は上述した各種の耐性、すなわち、
原像計算困難性(Preimage Resistance)
第二原像計算困難性(2nd Preimage Resistance)
衝突計算困難性(Collision Resistance)
これらの耐性を備えたものであることが要請される。
(1)第1階層は、定義域拡張(Domain Extension)」部分、
(2)第2階層は、圧縮関数の内部構成、
これらの2つの階層である。
I.Damgard,"A design principle for hash functions."in Proceedings of Crypto'89(G. Brassard,ed.),no.435 in LNCS,pp.417−427,Springer−Verlag,1989.)]
上記構成ではbビットの出力の場合について説明したが、次に、長いビット長の2bビットのハッシュ値を生成するハッシュ関数の構成について考える。
続いて、図5,図6を参照して説明した定義域拡張法の処理効率を向上させたハッシュ関数の構成例について、図8を参照して説明する。図8は攪拌関数Fを挿入する間隔を圧縮関数の2回分の処理ごとに設定したハッシュ関数構成例である。
攪拌関数Fは、入力ビットを攪拌して入力ビットと同一のビット数のデータを出力する関数である。具体的な攪拌関数の実現構成について図10を参照して説明する。図10は、攪拌関数Fを2つの圧縮関数を用いて実現した構成である。
図5〜図9を参照して説明したMD構成を持つハッシュ関数は、1つの攪拌関数Fの出力を2系列の圧縮関数に対して入力する構成、あるいは2系列の圧縮関数の出力を1つの攪拌関数Fに出力する設定であった。すなわち、圧縮関数は2つの系列を用いた設定である。
次に、攪拌関数Fの一般化された構成について説明する。攪拌関数Fの具体的構成については、先に図10を参照して説明した。図10を参照して説明した攪拌関数Fは、2系列の圧縮関数を適用した構成であった。
以上の説明において、複数系列の多段構成とした圧縮関数f1,f2,...,fmを持つ圧縮関数ユニットにおいて、圧縮関数ユニット内の圧縮関数f1〜fmは、それぞれ異なる構成であるものとして説明した。もっとも安全性が高いことを客観的に示すことができるのがこの構成であり、たとえ単一の圧縮関数を用いた場合に即座に安全性が損なわれているわけではない。単一の圧縮関数を繰り返し使った方が実装上のメリットがある場合もあるため、別の実施の形態としてすべての圧縮関数を同じものにする構成も可能である。また単一にしなくとも、より少ない種類の圧縮関数を繰り返し用いる構成も同様に可能である。
次に上記の説明において示した圧縮関数ユニット内に設定する圧縮関数fiの具体的な構成例について説明する。圧縮関数fの内部構成例を図13に示す。図13は、図5〜図12を参照して説明した圧縮関数ユニット内に設定する圧縮関数fi、さらに、攪拌関数Fの構成要素として利用可能な圧縮関数fiの構成例である。
次に、圧縮関数内の入力メッセージサイズを拡張する方法について検討する。図16に示す圧縮関数150は、図13を参照して説明した圧縮関数120と同様、メッセージスケジュール部(MS部)151と連鎖値(CV)処理部152から構成される。先に説明した図13に示す圧縮関数120はメッセージスケジュール部(MS部)121に対するメッセージ入力としてaビット入力構成であった。これに対して、図16に示す圧縮関数150は、2aビット入力に対応したメッセージスケジュール部151を有する。
上述したように、圧縮関数は、メッセージスケジュール部(MS部)と連鎖値(CV)処理部を構成用素として実現可能である。このメッセージスケジュール部(MS部)と連鎖値(CV)処理部の具体的な構成例について説明する。
*付加入力が固定されたときは入力,出力が1対1対応する
という置換本来の性質を継承している。
また、中間出力付き置換関数では、
*入力とそれぞれの中間出力は1対1対応
という置換関数由来の性質をもつという特徴がある。
連鎖値(CV)処理部に付加入力付き置換関数を用い、
メッセージスケジュール部(MS部)に中間出力付きの置換関数を用いて互いに接続して圧縮関数を構成することについてはすでに知られていた(Whirlpool)。
圧縮関数に入力されるデータサイズを拡大した圧縮関数の構成例を図24に示す。図24に示す圧縮関数340は、入力ビットが3aビットに拡大された圧縮関数である。この図24に示す圧縮関数340は、先に、図18を参照して説明した構成と同様の構成であり、2つのメッセージスケジュール部(MS部)341,342と、2つのメッセージスケジュール部(MS部)341,342の出力の排他的論理和演算(XOR)結果を入力する1つの連鎖値(CV)処理部343を有する。
図27に示す圧縮関数370は、先に図15を参照して説明した2系列の圧縮関数のメッセージスケジュール部の共有を行った構成を示したものである。図15で提示した定義域拡大法のb=aとした場合に適用することで、連鎖値(CV)処理部のサイズを拡大している。
図28に示す圧縮関数380は、図27に示す圧縮関数370の変形例であり、先に、図24を参照して説明した圧縮関数340と同様の手法で、圧縮関数に入力されるデータサイズを拡大した圧縮関数の構成例である。図28に示す圧縮関数380は、入力ビットが3aビットに拡大された圧縮関数である。この図28に示す圧縮関数380は、2つのメッセージスケジュール部(MS部)381,382と、2つのメッセージスケジュール部(MS部)381,382の出力の排他的論理和演算(XOR)結果を入力する1つの連鎖値(CV)処理部383,384を有する。
中間出力付き置換関数と、付加入力付き置換関数の組み合わせによって攪拌関数Fを構成することも可能である。図29は、2つの中間出力付き置換関数と、2つの付加入力付き置換関数の組み合わせによって構成した攪拌関数F390の構成例である。
メッセージスケジュール部(MS部)や、連鎖値(CV)処理部に適用する置換関数は、上述したように、比較的単純な置換関数としての内部置換を繰り返し適用して実現できる。このような比較的単純な置換関数を繰り返し適用することで攪拌性能を高めた置換関数が構成できる。
グループ(G1)の4バイトデータの非線形変換結果データと、グループ(G2)の入力データとの排他的論理和演算を実行する。
グループ(G3)の4バイトデータの非線形変換結果データと、グループ(G4)の入力データとの排他的論理和演算を実行する。
グループ(G5)の4バイトデータの非線形変換結果データと、グループ(G6)の入力データとの排他的論理和演算を実行する。
グループ(G7)の4バイトデータの非線形変換結果データと、グループ(G8)の入力データとの排他的論理和演算を実行する。
これらの処理により、偶数番目の4つのグループ(G2,G4,G6,G8)の各4バイト(32ビット)データを更新する。
非線形変換部411から出力されたデータからなる4つのグループ(G1,G3,G5,G7)のデータは、各グループ単位で左端のグループは右端のグループの位置に、それ以外のグループは一つ左のグループのあった位置に移動する。
すなわち、
グループ(G1)は出力グループ(Gout8)の位置に出力、
グループ(G3)は出力グループ(Gout2)の位置に出力、
グループ(G5)は出力グループ(Gout4)の位置に出力、
グループ(G7)は出力グループ(Gout6)の位置に出力、
このような対応でスワップ処理を実行して出力する。
グループ(G2)の4バイトデータを1バイト単位で先頭からABCDとする。
グループ(G2)の1番目の1バイトデータAは、出力グループ(Gout1)の1番目の1バイトデータとして出力、
グループ(G2)の2番目の1バイトデータBは、出力グループ(Gout3)の2番目の1バイトデータとして出力、
グループ(G2)の3番目の1バイトデータCは、出力グループ(Gout5)の3番目の1バイトデータとして出力、
グループ(G2)の4番目の1バイトデータDは、出力グループ(Gout7)の4番目の1バイトデータとして出力、
このような対応でスワップ処理を実行して出力する。
グループ(G4)の4バイトデータを1バイト単位で先頭からEFGHとする。
グループ(G4)の1番目の1バイトデータEは、出力グループ(Gout3)の1番目の1バイトデータとして出力、
グループ(G4)の2番目の1バイトデータFは、出力グループ(Gout5)の2番目の1バイトデータとして出力、
グループ(G4)の3番目の1バイトデータGは、出力グループ(Gout7)の3番目の1バイトデータとして出力、
グループ(G4)の4番目の1バイトデータHは、出力グループ(Gout1)の4番目の1バイトデータとして出力、
このような対応でスワップ処理を実行して出力する。
グループ(G6)の4バイトデータを1バイト単位で先頭からIJKLとする。
グループ(G6)の1番目の1バイトデータIは、出力グループ(Gout5)の1番目の1バイトデータとして出力、
グループ(G6)の2番目の1バイトデータJは、出力グループ(Gout7)の2番目の1バイトデータとして出力、
グループ(G6)の3番目の1バイトデータKは、出力グループ(Gout1)の3番目の1バイトデータとして出力、
グループ(G6)の4番目の1バイトデータLは、出力グループ(Gout3)の4番目の1バイトデータとして出力、
このような対応でスワップ処理を実行して出力する。
グループ(G8)の4バイトデータを1バイト単位で先頭からMNOPとする。
グループ(G8)の1番目の1バイトデータMは、出力グループ(Gout7)の1番目の1バイトデータとして出力、
グループ(G8)の2番目の1バイトデータNは、出力グループ(Gout1)の2番目の1バイトデータとして出力、
グループ(G8)の3番目の1バイトデータOは、出力グループ(Gout3)の3番目の1バイトデータとして出力、
グループ(G8)の4番目の1バイトデータPは、出力グループ(Gout5)の4番目の1バイトデータとして出力、
このような対応でスワップ処理を実行して出力する。
(1)M1とM4(非線形変換部441aと451d)
(2)M2とM1(非線形変換部441bと451a)
(3)M3とM2(非線形変換部441cと451b)
(4)M4とM3(非線形変換部441dと451c)
(1)M1とM2(非線形変換部461aと471d)
(2)M2とM1(非線形変換部461bと471a)
(3)M1とM2(非線形変換部461cと471b)
(4)M2とM1(非線形変換部461dと471c)
上述した処理例では、圧縮関数や攪拌関数Fの内部に多数設定される内部置換処理構成は、例えば、図30に示す内部置換処理構成を用い、この同一構成を複数回繰り返す設定とした処理例として説明した。この内部置換処理の非線形変換部内の線形変換処理行列を上記のように構成することなどによって解析困難性を高めることができる。
*全体置換ごとに利用されるコンスタント値(図31の排他的論理和演算部421で利用)を別のものに置き換える変更をする。
*全体置換に含まれる内部置換処理の部品である非線形変換部としてのS−box(図31の小非線形変換部422)や線形変換行列(図31の線形変換部423)を異なるものしそれを繰り返し利用して全体置換とする。
(a)複数の異なる小非線形演算(S−box)(図31の小非線形変換部422)が利用されている場合は、内部置換の小非線形演算(S−box)を全体置換ごとに入れ替える
(b)線形変換部(図31の線形変換部423)として利用される行列を、1つの行列から生成する複数の異なる行列に設定して、内部置換の行列を全体置換ごと異なる行列を設定する。例えば、行の入れ替えや列の入れ替えを行うことで1つの行列から複数の異なる行列を生成する。
(c)線形変換部(図31の線形変換部423)として利用される行列に複数種類の行列が利用されている場合は、内部置換の行列を全体置換ごとに入れ替える。(前述のDSMを利用した場合などはDSMの条件を崩さない範囲で変更する)
(d)上記の(a)〜(c)のいずれかの組み合わせ
先に説明したように、各ラウンドの置換処理構成を異なる設定とする1つの手法として、各ラウンド単位または複数ラウンド単位でコンスタント(図31の排他的論理和演算部421で利用する[C])を別のものに置き換える変更をする手法が有効であることは先に説明した。
(一つの全体置換で必要とされるコンスタントの集合の例)
1番目の内部置換:C1,1,C1,2,C1,3,C1,4
2番目の内部置換:C2,1,C2,2,C2,3,C2,4
3番目の内部置換:C3,1,C3,2,C3,3,C3,4
4番目の内部置換:C4,1,C4,2,C4,3,C4,4
:
k−1番目の内部置換:Ck−1,1,Ck−1,2,Ck−1,3,Ck−1,4
k番目の内部置換:Ck,1,Ck,2,Ck,3,Ck,4
[1]16ビットの変数Sにそれぞれ初期値を格納する
[2]i=1...kに対して以下の処理を行う
(2.1)Ci,1=(S xor Mask1)<<<Rot1|(S xor Mask2)<<<Rot2
Ci,2=(S xor Mask3)<<<Rot3|(S xor Mask4)<<<Rot4
Ci,3=(S xor Mask5)<<<Rot5|(S xor Mask6)<<<Rot6
Ci,4=(S xor Mask7)<<<Rot7|(S xor Mask8)<<<Rot8
[2.2]S←S・x
[1]16ビットの変数S,Tにそれぞれ初期値を格納する
[2]i=1...kに対して以下の処理を行う
(2.1)Ci,1=(S xor Mask1)<<<Rot1|(S xor Mask2)<<<Rot2
Ci,2=(S xor Mask3)<<<Rot3|(S xor Mask4)<<<Rot4
Ci,3=(T xor Mask5)<<<Rot5|(T xor Mask6)<<<Rot6
Ci,4=(T xor Mask7)<<<Rot7|(T xor Mask8)<<<Rot8
[2.2]S←S・x, T←T・x−1
圧縮関数においては複数の全体置換が存在しており、各全体置換それぞれに対して複数のコンスタントからなるコンスタント値の集合を準備する必要がある。仮に、全体置換の数がm個あるとしてそれらをP1,P2,...,Pmで表すとする。前述のコンスタント生成手法を適用すれば、これらの全体置換数mに応じて、m組の初期値を全体置換ごとに変更して、全体置換内の内部置換において適用するコンスタント値をそれぞれ生成する方法が適用できる。しかし、このような手法を行うとコンスタント値の生成の手間がm倍になり、効率的ではない。
(変換処理例1)
全体置換ごとに定められた異なるローテーション量をRxとし、Ci,j(x)=Ci,j(1)<<<Rxとしてコンスタントを生成する。
Ci,j(1)は上述の複数の初期値S,Tを利用した方法により生成される第1番目のコンスタント集合480の要素としてのコンスタントである。
xは、コンスタント集合の識別番号であり、2〜mの値をとる。
全体置換ごとに定められた異なるマスク値(ワード)をMxとし、Ci,j(x)=Ci,j(1) xor Mxとしてコンスタントを生成する。
Ci,j(1)は上述の複数の初期値S,Tを利用した方法により生成される第1番目のコンスタント集合480の要素としてのコンスタントである。
xは、コンスタント集合の識別番号であり、2〜mの値をとる。
上記の変換処理例1,2を組み合わせた方法
Ci,j(x)=(Ci,j(1)<<<Rx)xor MxまたはCi,j(x)=(Ci,j(1) xor Mx)<<<Rxとしてコンスタントを生成する。
Ci,j(1)は上述の複数の初期値S,Tを利用した方法により生成される第1番目のコンスタント集合480の要素としてのコンスタントである。
xは、コンスタント集合の識別番号であり、2〜mの値をとる。
次に、ハッシュ値の生成処理構成において、nビットのハッシュ値を出力する関数を準備し、kビット分の出力を切り詰めてn−kビットのハッシュ値を出力可能としたデータ変換装置の構成例について説明する。
出力データ系列数をm,切り詰めるビット数(削除ビット数)をkとする。
kビットをできるだけ均等にm個に分けるために、以下の数式に従ってパラメータa,bを算出する。
なお、a+b=mである。
出力として得られるm個の系列y1からymのうちのa個の出力系列の出力データの各々から、f(k/m)ビット分ずつ切り詰める。さらに、残りのb個の出力系列の出力データの各々から、f(k/m)+1ビット分ずつ切り詰める。すなわち、図36に示すように、各出力系列に対するデータ切り詰め処理を実行する。
出力データ系列数をm,切り詰めるビット数(削除ビット数)をkとする。
kビットをできるだけ均等にm個に分けるために、以下の数式に従ってパラメータa,bを算出する。
なお、a+b=m/2である。
出力として得られるm個の系列y1からymのうちのm/2個の奇数番目の出力y1,y3,y5,...,y2m−1のうちのa個の出力系列の出力データの各々から、f(2k/m)ビット分ずつ切り詰める。さらに、m/2個の奇数番目の出力の残りのb個の出力系列の出力データの各々から、f(2k/m)+1ビット分ずつ切り詰める。
最後に、上述した実施例に従った処理を実行する装置としてのICモジュール700の構成例を図37に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能である。また、各処理は、論理回路を構成したハード回路やプログラム、あるいはその双方を適用して実行可能である。処理を実行する一例として例えば、図37に示すICモジュール700があり、このようなICモジュール700は様々な機器に搭載することが可能である。
50 圧縮関数ユニット
55 圧縮関数ユニット
60 圧縮関数ユニット
70,71 圧縮関数ユニット
80,85 攪拌関数F
81,82,86,87 変換部
83,84,88,89 圧縮関数
90,91 圧縮関数ユニット
100 攪拌関数F
120 圧縮関数
121 メッセージスケジュール部(MS部)
122 連鎖値(CV)処理部
130 圧縮関数ユニット
140 圧縮関数ユニット
141 メッセージスケジュール部(MS部)
142 圧縮関数
150 圧縮関数
151 メッセージスケジュール部(MS部)
152 連鎖値(CV)処理部
160 圧縮関数
161,162 メッセージスケジュール部(MS部)
163 連鎖値(CV)処理部
170 圧縮関数
171,172 メッセージスケジュール部(MS部)
173 連鎖値(CV)処理部
174 排他的論理和演算(XOR)部
210 圧縮関数
211 メッセージスケジュール部(MS部)
212 連鎖値(CV)処理部
220 圧縮関数
221 メッセージスケジュール部(MS部)
222 連鎖値(CV)処理部
223 排他的論理和演算(XOR)部
310 置換関数(置換処理部)
311 付加入力
320 置換関数(置換処理部)
321 中間出力
330 圧縮関数
331 メッセージスケジュール部(MS部)
332 連鎖値(CV)処理部
340 圧縮関数
341,342 メッセージスケジュール部(MS部)
343 連鎖値(CV)処理部
350 圧縮関数
351,352 メッセージスケジュール部(MS部)
353 連鎖値(CV)処理部
360 圧縮関数
361,362 メッセージスケジュール部(MS部)
363 連鎖値(CV)処理部
370 圧縮関数
371 メッセージスケジュール部(MS部)
372,373 連鎖値(CV)処理部
380 圧縮関数
381,382 メッセージスケジュール部(MS部)
383,384 連鎖値(CV)処理部
390 攪拌関数F
391,392 メッセージスケジュール部(MS部)
393,394 連鎖値(CV)処理部
410 内部置換処理部(置換関数)
411 非線形変換部
412 排他的論理和(XOR)演算部
413 スワップ処理部
421 排他的論理和(XOR)演算部
422 小非線形変換部
423 線形変換部
440 内部置換処理部(置換関数)
441 非線形変換部
442 排他的論理和演算(XOR)部
443 スワップ処理部
451 非線形変換部
452 排他的論理和演算(XOR)部
460 内部置換処理部(置換関数)
461 非線形変換部
470 内部置換処理部(置換関数)
471 非線形変換部
480〜484 コンスタント集合
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 データ変換部
704 乱数発生器
705 送受信部
Claims (16)
- 入力データに対するデータ攪拌処理を実行する攪拌処理部と、
データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行する圧縮処理部を有し、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能としたMD構成(Merkle−Damgard Construction)を有する複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部は、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行する構成を有し、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行する構成を有し、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力する構成であり、
前記攪拌処理部のデータ攪拌処理は、前記圧縮処理部の複数段のデータ圧縮処理毎に前段の圧縮処理部の全出力に対して実行する構成であるデータ変換装置。 - 前記複数段の圧縮処理部は、前記メッセージデータの同一の分割データを並列に入力して並列に処理を行う複数の処理系列を有する請求項1に記載のデータ変換装置。
- 前記攪拌処理部は、入力データに対するデータ攪拌処理を実行して入力ビット数に等しいビット数の出力データを生成する構成であり、
前記圧縮処理部は、入力データに対するデータ圧縮処理を実行して入力ビット数より少ないビット数の出力データを生成する構成である請求項1に記載のデータ変換装置。 - 前記攪拌処理部は、
入力データに対するビット数調整処理を実行するデータ変換部と、
前記入力データと、前記データ変換部からの出力を入力して圧縮処理を実行する攪拌部内圧縮処理部とを有する構成である請求項1に記載のデータ変換装置。 - 前記データ変換部は複数のデータ変換部が並列に処理を実行する構成であり、
前記攪拌部内圧縮処理部は、各データ変換部からの出力を入力して並列に処理を行う複数の圧縮処理部を有する構成である請求項4に記載のデータ変換装置。 - 前記攪拌処理部は、
置換処理を繰り返し実行し、各置換処理結果を中間値として出力する構成を持つ中間出力付き置換関数実行部と、
前記中間出力付き置換関数実行部から出力される中間出力を付加入力として、置換処理を繰り返し実行する付加入力付き置換関数実行部を有する構成である請求項1に記載のデータ変換装置。 - 前記付加入力付き置換関数実行部は、前記中間出力付き置換関数実行部から出力される中間出力と前段の置換処理結果との排他的論理和結果を次の置換処理の入力データとして設定する構成である請求項6に記載のデータ変換装置。
- 前記置換関数実行部の実行する複数の置換処理の各々は、
入力データの少なくとも一部データに対する非線形変換処理と、データ入れ替え処理としてのスワップ処理とを含む構成である請求項6に記載のデータ変換装置。 - 前記非線形変換処理は、コンスタント(定数)を適用した排他的論理和演算と、非線形変換処理と、線形変換行列を適用した線形変換処理を含む処理である請求項8に記載のデータ変換装置。
- 前記置換関数実行部の実行する複数の置換処理の各々において行われる線形変換処理は、複数の異なる行列を適用するDSM(Diffusion Switching Mechanism)に従った処理として実行する構成である請求項9に記載のデータ変換装置。
- 前記置換関数実行部の実行する複数の置換処理の各々は、それぞれ異なるコンスタント(定数)集合を入力したデータ処理を行う構成であり、
1つの置換処理に適用するコンスタント集合を基本集合として、該基本集合に対するデータ変換により生成した異なるコンスタント集合を各置換処理に適用する構成である請求項6に記載のデータ変換装置。 - 前記基本集合となるコンスタント集合は、
異なる複数の初期値S,Tに対して予め設定した変換ルールを適用して生成した複数のコンスタントから構成され、
前記変換ルールは、前記初期値に対して、
S←S・xa、T←T・xb
ただしa≠b
とする更新処理を含む構成である請求項11に記載のデータ変換装置。 - 前記基本集合に対するデータ変換処理は、
前記基本集合を構成するコンスタントの構成ビットのローテーション処理、または、予め規定したマスクデータとの演算処理である請求項11に記載のデータ変換装置。 - 前記データ変換部は、
最終的に出力するハッシュ値のビット数削減処理として切り詰め処理を行う構成を有し、
前記データ変換部の出力部を構成する複数のデータ出力系列各々の出力ビットに対するビット削減数を、予め規定した算出式に従って算出し、算出結果に従った切り詰め処理を実行する構成である請求項1に記載のデータ変換装置。 - データ変換装置において実行するデータ変換処理方法であり、
攪拌処理部が、入力データに対するデータ攪拌処理を実行する攪拌処理ステップと、
圧縮処理部が、データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行する圧縮処理ステップを有し、
前記攪拌処理部のデータ攪拌処理は、前記圧縮処理部の複数段のデータ圧縮処理毎に前段の圧縮処理部の全出力に対して実行する処理であり、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能としたMD構成(Merkle−Damgard Construction)を有する複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部は、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行し、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行し、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力するデータ変換方法。 - データ変換装置にデータ変換処理を実行させるプログラムであり、
攪拌処理部に、入力データに対するデータ攪拌処理を実行させる攪拌処理ステップと、
圧縮処理部に、データ変換処理対象データであるメッセージデータを分割した分割データを含む入力データに対するデータ圧縮処理を実行させる圧縮処理ステップを有し、
前記攪拌処理部のデータ攪拌処理は、前記圧縮処理部の複数段のデータ圧縮処理毎に前段の圧縮処理部の全出力に対して実行する処理であり、
前記圧縮処理部は、前記メッセージデータの分割データのすべてを入力可能としたMD構成(Merkle−Damgard Construction)を有する複数段の圧縮処理部として構成され、
前記複数段の圧縮処理部の一部に、前記攪拌処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行させ、
前記複数段の圧縮処理部の一部は、前段の圧縮処理部の出力と、メッセージデータの分割データの双方を入力してデータ圧縮処理を実行させ、
前記複数段の圧縮処理部の最終段の圧縮処理部は、前記メッセージデータのハッシュ値を出力させるシーケンスを記録したプログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008214810A JP5504592B2 (ja) | 2008-08-25 | 2008-08-25 | データ変換装置、およびデータ変換方法、並びにプログラム |
CN200980132271XA CN102216967B (zh) | 2008-08-25 | 2009-08-25 | 数据转换装置和数据转换方法 |
US13/059,643 US8380683B2 (en) | 2008-08-25 | 2009-08-25 | Data conversion device, data conversion method, and program |
BRPI0917799A BRPI0917799A2 (pt) | 2008-08-25 | 2009-08-25 | dispositivo de conversão de dados, método de conversão de dados executado em um dispositivo de conversão de dados, e, programa. |
PCT/JP2009/064782 WO2010024247A1 (ja) | 2008-08-25 | 2009-08-25 | データ変換装置、およびデータ変換方法、並びにプログラム |
EP09809898.1A EP2328136A4 (en) | 2008-08-25 | 2009-08-25 | DATA CONVERSION DEVICE, DATA CONVERSION METHOD, AND PROGRAM |
US13/767,394 US8843457B2 (en) | 2008-08-25 | 2013-02-14 | Data conversion device, data conversion method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008214810A JP5504592B2 (ja) | 2008-08-25 | 2008-08-25 | データ変換装置、およびデータ変換方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010049126A JP2010049126A (ja) | 2010-03-04 |
JP5504592B2 true JP5504592B2 (ja) | 2014-05-28 |
Family
ID=41721415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008214810A Expired - Fee Related JP5504592B2 (ja) | 2008-08-25 | 2008-08-25 | データ変換装置、およびデータ変換方法、並びにプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8380683B2 (ja) |
EP (1) | EP2328136A4 (ja) |
JP (1) | JP5504592B2 (ja) |
CN (1) | CN102216967B (ja) |
BR (1) | BRPI0917799A2 (ja) |
WO (1) | WO2010024247A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7451953B2 (ja) | 2019-11-19 | 2024-03-19 | 東ソー株式会社 | 部分水添ジシクロペンタジエン-芳香族系単量体共重合樹脂 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5726635B2 (ja) | 2010-08-25 | 2015-06-03 | 株式会社Nttドコモ | マルチモードフロントエンド回路 |
KR101516573B1 (ko) | 2013-07-26 | 2015-05-04 | 한국전자통신연구원 | 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 |
AU2014297854B2 (en) * | 2013-08-02 | 2016-12-22 | Nec Corporation | Authenticated encryption device, authenticated encryption method, and program for authenticated encryption |
EP3095044B1 (en) * | 2013-11-19 | 2020-09-23 | Top Galore Limited | Block mining methods and apparatus |
KR101688636B1 (ko) | 2015-01-22 | 2016-12-21 | 한국전자통신연구원 | 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치 |
US9942046B2 (en) | 2015-05-06 | 2018-04-10 | 21, Inc. | Digital currency mining circuitry with adaptable difficulty compare capabilities |
JP2017073716A (ja) * | 2015-10-09 | 2017-04-13 | 日本電気株式会社 | タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327994B1 (en) * | 1984-07-19 | 2001-12-11 | Gaudencio A. Labrador | Scavenger energy converter system its new applications and its control systems |
US4908861A (en) * | 1987-08-28 | 1990-03-13 | International Business Machines Corporation | Data authentication using modification detection codes based on a public one way encryption function |
KR960013983B1 (ko) * | 1993-12-03 | 1996-10-10 | 조백제 | 동시 광 압축/역압축장치 |
US5844989A (en) * | 1995-06-05 | 1998-12-01 | Matsushita Electric Industrial Co., Ltd. | Data scrambling method, data scrambling apparatus, data descrambling method, and data descrambling apparatus |
US6404923B1 (en) * | 1996-03-29 | 2002-06-11 | Microsoft Corporation | Table-based low-level image classification and compression system |
US7809138B2 (en) * | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
US6220585B1 (en) * | 1998-10-29 | 2001-04-24 | Timbren Industries Incorporated | Multi-stage compression spring |
US7129860B2 (en) * | 1999-01-29 | 2006-10-31 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
US6480656B1 (en) * | 1999-02-19 | 2002-11-12 | The Regents Of The University Of Michigan | Method and system for generating a broadband spectral continuum, method of making the system and pulse-generating system utilizing same |
US20030041110A1 (en) * | 2000-07-28 | 2003-02-27 | Storymail, Inc. | System, Method and Structure for generating and using a compressed digital certificate |
US20030009694A1 (en) * | 2001-02-25 | 2003-01-09 | Storymail, Inc. | Hardware architecture, operating system and network transport neutral system, method and computer program product for secure communications and messaging |
US20020199001A1 (en) * | 2001-02-25 | 2002-12-26 | Storymail, Inc. | System and method for conducting a secure response communication session |
US20020199096A1 (en) * | 2001-02-25 | 2002-12-26 | Storymail, Inc. | System and method for secure unidirectional messaging |
JP4191915B2 (ja) * | 2001-08-30 | 2008-12-03 | 独立行政法人情報通信研究機構 | 変換装置、暗号化復号化システム、多段変換装置、プログラム、ならびに、情報記録媒体 |
JP4019790B2 (ja) * | 2002-05-23 | 2007-12-12 | 富士ゼロックス株式会社 | 画像処理装置および画像処理プログラム |
DE502004010465D1 (de) * | 2003-08-06 | 2010-01-14 | Basf Se | Verfahren zum betreiben einer kontinuierlichen heterogen katalysierten gasphasen-partialoxidation wenigstens einer organischen verbindung |
JP2007199156A (ja) | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP5000365B2 (ja) * | 2006-04-27 | 2012-08-15 | 株式会社日立製作所 | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 |
CA2546148A1 (en) * | 2006-05-09 | 2007-11-09 | Nikolajs Volkovs | Method, system and computer program for polynomial based hashing and message authentication coding with separate generation of spectrums |
JP4905000B2 (ja) | 2006-09-01 | 2012-03-28 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8891756B2 (en) * | 2008-10-30 | 2014-11-18 | Certicom Corp. | Collision-resistant elliptic curve hash functions |
US9342661B2 (en) * | 2010-03-02 | 2016-05-17 | Time Warner Cable Enterprises Llc | Apparatus and methods for rights-managed content and data delivery |
-
2008
- 2008-08-25 JP JP2008214810A patent/JP5504592B2/ja not_active Expired - Fee Related
-
2009
- 2009-08-25 WO PCT/JP2009/064782 patent/WO2010024247A1/ja active Application Filing
- 2009-08-25 EP EP09809898.1A patent/EP2328136A4/en not_active Withdrawn
- 2009-08-25 BR BRPI0917799A patent/BRPI0917799A2/pt not_active IP Right Cessation
- 2009-08-25 CN CN200980132271XA patent/CN102216967B/zh not_active Expired - Fee Related
- 2009-08-25 US US13/059,643 patent/US8380683B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7451953B2 (ja) | 2019-11-19 | 2024-03-19 | 東ソー株式会社 | 部分水添ジシクロペンタジエン-芳香族系単量体共重合樹脂 |
Also Published As
Publication number | Publication date |
---|---|
EP2328136A1 (en) | 2011-06-01 |
US20110238636A1 (en) | 2011-09-29 |
JP2010049126A (ja) | 2010-03-04 |
CN102216967A (zh) | 2011-10-12 |
CN102216967B (zh) | 2013-12-11 |
BRPI0917799A2 (pt) | 2016-03-01 |
US8380683B2 (en) | 2013-02-19 |
WO2010024247A1 (ja) | 2010-03-04 |
EP2328136A4 (en) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5532560B2 (ja) | データ変換装置、およびデータ変換方法、並びにプログラム | |
JP5504592B2 (ja) | データ変換装置、およびデータ変換方法、並びにプログラム | |
KR100435052B1 (ko) | 암호화장치 | |
DK1686722T3 (en) | Block encryption device and block encryption method comprising rotation key programming | |
US6578150B2 (en) | Block cipher method | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
KR20160106570A (ko) | 블록 마이닝 방법 및 장치 | |
JP5000365B2 (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
JP2005527150A (ja) | ブロックサイファの実施におけるs−ボックス暗号化 | |
JPH1173101A (ja) | 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体 | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
WO2009031883A1 (en) | Encryption processor | |
US20020012430A1 (en) | Encryption apparatus using data encryption standard algorithm | |
US20020018562A1 (en) | Key scheduler for encryption apparatus using data encryption standard algorithm | |
Masoodi et al. | Symmetric Algorithms I | |
US6931127B2 (en) | Encryption device using data encryption standard algorithm | |
JP2010044251A (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
WO1999014889A1 (en) | Improved block cipher method | |
US8843457B2 (en) | Data conversion device, data conversion method, and program | |
JP2000075785A (ja) | 高速暗号処理回路および処理方法 | |
JP2008046151A (ja) | 暗号処理方法 | |
Sardar et al. | An Efficient Hardware Design for Combined AES and AEGIS | |
Tolba et al. | A Novel 256-Bit Block Cipher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20101108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130611 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130806 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140124 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140203 |
|
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: 20140218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140303 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5504592 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |