JP5056860B2 - データ変換関数の処理装置 - Google Patents
データ変換関数の処理装置 Download PDFInfo
- Publication number
- JP5056860B2 JP5056860B2 JP2009549896A JP2009549896A JP5056860B2 JP 5056860 B2 JP5056860 B2 JP 5056860B2 JP 2009549896 A JP2009549896 A JP 2009549896A JP 2009549896 A JP2009549896 A JP 2009549896A JP 5056860 B2 JP5056860 B2 JP 5056860B2
- Authority
- JP
- Japan
- Prior art keywords
- exclusive
- bit
- function
- bits
- data
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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
- H04L2209/122—Hardware reduction or efficient architectures
-
- 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
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
本発明は、共通鍵暗号方式の暗号技術に係り、特にMISTY構造のデータ変換関数の処理装置に関する。
暗号方式は、公開鍵方式と共通鍵方式に大別される。公開鍵方式は、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うために鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで送信情報の安全性を保つ方式である。これに対し、共通鍵方式は、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、秘密鍵を送信者と受信者以外の第三者に分からない情報とすることで、送信情報の安全性保つ方式である。
共通鍵方式の暗号(以下、共通鍵暗号と呼ぶ)は、公開鍵方式の暗号(以下、公開鍵暗号と呼ぶ)と比較した場合、処理速度が速くコンパクトに実装できるという利点がある。このため、携帯電話やICカードなどの小型機器に暗号化機能を付加する場合には、共通鍵暗号が利用される。また、処理速度が高速であり、情報をリアルタイムで暗号化/復号化できるので、放送や通信分野における情報通信にも利用されている。
共通鍵暗号には、ストリーム暗号とブロック暗号がある。現時点では、安全性の観点から、共通鍵暗号にはブロック暗号が使用されている。ブロック暗号は、平文(暗号化の対象となる文)を一定のビット長のまとまり(これを、ブロックと呼ぶ)に分割し、ブロック単位で暗号化を行う。尚、暗号化の処理単位であるブロックのビット長は“ブロック長”と呼ばれる。
共通鍵暗号方式のブロック暗号は、ブロック長に応じて様々なアルゴリズムが知られている。代表的なものとしては、DES、AES、SC2000、MISTY(MISTY1、MISTY2)、KASUMIなどがある。これらの共通鍵暗号のアルゴリズムは、ソフトウェアもしくはハードウェアにより実装される。
図1は、共通鍵暗号方式のデータ変換関数の処理装置の一般的な基本構成を示す図である。
共通鍵暗号方式のデータ変換関数の処理装置1は、拡大鍵生成部10とラウンド処理部20から構成される。拡大鍵生成部10は、入力される秘密鍵(共通鍵)から複数の拡大鍵K0、K1、K2、・・・、Kn(nは自然数)を生成し、これらをラウンド処理部20に出力する。ラウンド処理部20は、入力される平文を、拡大鍵生成部10から入力する上記複数の拡大鍵K1〜Knを用いて、暗号文に変換して出力する。
共通鍵暗号方式のデータ変換関数の処理装置1は、拡大鍵生成部10とラウンド処理部20から構成される。拡大鍵生成部10は、入力される秘密鍵(共通鍵)から複数の拡大鍵K0、K1、K2、・・・、Kn(nは自然数)を生成し、これらをラウンド処理部20に出力する。ラウンド処理部20は、入力される平文を、拡大鍵生成部10から入力する上記複数の拡大鍵K1〜Knを用いて、暗号文に変換して出力する。
ここで、共通鍵暗号の一つであるMISTY1について説明する。MISTY1は、ブロック長64ビット、鍵長128ビットの共通鍵暗号であり、128ビットの秘密鍵を用いて、64ビットの平文を64ビットの暗号文に変換する。したがって、MISTY1のデータ変換関数の処理装置は、拡大鍵生成部10に128ビットの秘密鍵が入力され、ラウンド処理部20には64ビットの平文が入力されるように構成される。尚、MISTY1の仕様は、例えば、IPA(Information-technology Promotion Agency)のホームページ(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/5_02jspec.pdf)に公開されている(非特許文献1参照)。
[MISTY1の概要]
以下、MISTY1のデータ変換関数の処理装置の具体的な実装形態を説明する。
{ラウンド処理部の構成}
まず、ラウンド処理部20の構成から説明する。MISTY1では、ラウンド処理の段数は4の倍数と規定されており、8段が推奨されている。したがって、以下の説明では、段数が8段のラウンド処理部20の構成を説明する。
以下、MISTY1のデータ変換関数の処理装置の具体的な実装形態を説明する。
{ラウンド処理部の構成}
まず、ラウンド処理部20の構成から説明する。MISTY1では、ラウンド処理の段数は4の倍数と規定されており、8段が推奨されている。したがって、以下の説明では、段数が8段のラウンド処理部20の構成を説明する。
図2A、2Bは、MISTY1のラウンド処理部の構成図である。図2A、2Bは、それぞれ、暗号化用のラウンド処理部、復号用のラウンド処理部の構成を示す。
図2A、2Bに示すように、MISTY1のラウンド処理部はFeistel構造となっている。ここで、Feistel構造について簡単に説明する。Feistel構造は、入力を左右2つのブロックに分割し、左側のブロック(以後、ブロックLと呼ぶ)をF関数(MISTY1の場合はFO関数)に入力し、そのF関数の出力と右側のブロック(以後、ブロックRと呼ぶ)との排他的論理和をとり、その論理演算処理終了後に、ブロックLとブロックRの入れ替えを行う構成を持った構造である。尚、F関数はラウンド関数とも呼ばれる。また、F関数は広義的には「データ変換関数」である。
図2A、2Bに示すように、MISTY1のラウンド処理部はFeistel構造となっている。ここで、Feistel構造について簡単に説明する。Feistel構造は、入力を左右2つのブロックに分割し、左側のブロック(以後、ブロックLと呼ぶ)をF関数(MISTY1の場合はFO関数)に入力し、そのF関数の出力と右側のブロック(以後、ブロックRと呼ぶ)との排他的論理和をとり、その論理演算処理終了後に、ブロックLとブロックRの入れ替えを行う構成を持った構造である。尚、F関数はラウンド関数とも呼ばれる。また、F関数は広義的には「データ変換関数」である。
図2Aに示すように、MISTY1の暗号化用のラウンド処理部20aは、FL関数30a(FL1〜FL10)、FO関数40(FO1〜FO8)及び排他的論理和50を構成要素とし、これらの構成要素を組み合わせて構成されている。また、図2Bに示すように、復号用のラウンド処理部20bは、暗号化用のラウンド処理部20aの各構成要素を上下反転に配置した構成となっており、FL関数30aの代わりに、その逆関数であるFL-1関数30bを配置した構成となっている。MISTY1の暗号化用のラウンド処理部20aは、64ビットの平文Pを入力し、それを64ビットの暗号文Cに変換して出力する。MISTY1の復号用のラウンド処理部20bは、上記64ビットの暗号文Cを入力し、それを64ビットの平文Pに復号して出力する。MISTY1の暗号化用のラウンド処理部20aと復号用のラウンド処理部20bは、拡大鍵生成部10によって生成された拡大鍵を用いて、ぞれぞれ、暗号化処理と復号処理を行う。
MISTY1は、拡大鍵生成処理を実行することで、128ビットの秘密鍵Kから128ビットの拡大鍵K´を生成する。この拡大鍵K´は、FO関数、FL関数、FL-1関数及びFI関数で用いられる。尚、拡大鍵の生成処理の詳細については後述する。
FOi(i=1〜8)関数の構成を図3に、FIij(i=1〜8、j=1〜8)関数の構成を図4に示す。また、FLi(i=1〜8)関数とFLi-1(i=1〜8)関数の構成を、それぞれ、図5A、5Bに示す。
図3に示すように、FO関数は、32ビットのデータを入力し、それを32ビットのデータに変換して出力するMISTY構造の関数であり、FI関数と排他的論理和から構成されている。32ビットの入力データは、16ビットに2分割されて処理される。FOi関数は、ラウンド鍵KOi1〜KOi4とラウンド鍵KIi1〜KIi3を用いて、FI関数と排他的論理和によりデータ変換を行う。
図4に示すように、FI関数は、16ビットのデータを入力し、それを16ビットのデータに変換して出力するMISTY構造の関数である。FI関数に入力される16ビットデータは、左9ビットと右7ビットに分割され、非線形関数(非線形変換)S7、S9とzero-extend及びtruncateによって変換される。zero-extendは、7ビットデータに上位2ビット(“00”)を付加して9ビットデータに変換する処理である。truncateは、9ビットデータから上位2ビットを削除して7ビットデータに変換する処理である。FIij関数は、鍵KIij1、KIij2を用いてデータ変換を行う。KIij1はラウンド鍵KIijの左7ビットのデータであり、KIij2はラウンド鍵KIijの右9ビットのデータである。
ここで、MISTY構造について説明する。MISTY構造は、FO関数やFI関数の各段を構成する要素である。図3に示すように、FO関数におけるMISTY構造は、左系のデータパス上にラウンド鍵KOij(j=1〜3)が入力する第1の排他的論理和、その下部にラウンド鍵KIij(j=1〜3)が入力するFI関数、その下部に第2の排他的論理和を配置し、該第2の排他的論理和により、FI関数の出力と右系のデータパスから分岐入力するデータの排他的論理和を演算する。そして、その第2の排他的論理和の演算結果を次段の右系のデータパスの入力とする。また、前段の右系のデータパスを流れるデータを次段の左系のデータパスの入力とする。図4に示すように、FI関数の場合には、上述したFO関数のMISTY構造において、FI関数を非線形関数S9またはS7に置き換え、その非線形関数の下部に1個または2個の排他的論理和を配置した構成となる。非線形関数S9またはS7の直下に配置された排他的論理和が、FO関数のMISTY構造における第2の排他的論理和に相当する。尚、以上の説明では、FO関数とFI関数のMISTY構造を取り上げて、MISTY構造の構成を説明したが、それら以外のデータ変換関数においても、各種形態のMISTY構造がある。
図5A、5Bに示すように、FL関数とFL-1関数は、32ビットのデータを入力し、それを32ビットのデータに変換して出力する。32ビットの入力データは、16ビットに2分割されて処理される。FL関数は、論理積(AND)と論理和(OR)によって変換される。KLi1、KLi2は、それぞれ、ラウンド鍵KLiの左から1番目と2番目の16ビットデータである。FL-1関数は、FL関数の各構成要素を上下反転に配置した構成となっている。FL-1関数は、FL関数によって変換された32ビットデータを復号する。
{拡大鍵生成処理部の構成}
次に、上記FO関数、FI関数、FL関数及びFL−1関数で用いられるラウンド鍵を生成する拡大鍵生成部10の構成を説明する。
{拡大鍵生成処理部の構成}
次に、上記FO関数、FI関数、FL関数及びFL−1関数で用いられるラウンド鍵を生成する拡大鍵生成部10の構成を説明する。
拡大鍵生成部10は、128ビットの秘密鍵Kから128ビットの拡大鍵K´を生成する。ここで、秘密鍵Kを16ビット単位で分割し、左からi番目の16ビットデータをKi(i=1〜8)と定義する。また、拡大鍵K´を16ビット単位で分割し、左からi番目の16ビットデータをK´i(i=1〜8)と定義する。尚、K9=K1とする。また、iが8を超える場合には、KiとK´iは、それぞれ、Ki-8、K´i-8を意味すると定義する。
拡大鍵生成部10は、FI関数を用いて、秘密鍵Kから拡大鍵K´を生成する。拡大鍵生成部10の構成は、上記非特許文献1の図5に開示されている。ラウンド鍵KOi1、KIij、KLijと実際の鍵(秘密鍵K及び拡大鍵K´)との関係は、下記の表1に示すようになっている。
上述したように、MISTY1はFO関数、FL関数、FL-1関数及び排他的論理和から構成される。上述したように、FO関数は、FI関数と排他的論理和から構成されている。また、拡大鍵生成部10において、拡大鍵K´はFI関数を用いて生成される。したがって、FI関数の処理時間は、MISTY1の全体処理時間(暗号化処理と復号処理に要する時間)の中で大きなウェイトを占める。このため、MISTY1のハードウェアの高速実装においては、FI関数の実装性能がMISTY1の性能を決定する重要な要素となる。よって、MISTY1のハードウェアの高速化には、FI関数の最適化が求められる。
{従来のFI関数の構成}
図6は、従来のFI関数の実装方法を示す図である。図6は、図4に示すMISTY1の仕様書に開示されているFI関数の記述を、論理的に等価な記述に変更したものである。
図6は、従来のFI関数の実装方法を示す図である。図6は、図4に示すMISTY1の仕様書に開示されているFI関数の記述を、論理的に等価な記述に変更したものである。
図6に示すように、FI関数においては、入力する16ビットデータは、左9ビットと右7ビットに分離される。そして、上記9ビットのデータは左側(左系)のパス100で、上記7ビットのデータは右側(右系)のパス110で処理される。図6において、FI関数においてクリティカルパスとなる経路(データパス)を太線100で示している。ここで、クリティカルパスとは、FI関数において処理時間が最大となる経路(データパス)を意味する。
クリティカルパス100は、2つの非線形関数(非線形変換)S9と3つの排他的論理和から構成されており、データは全て9ビットで処理される。非線形関数S9は、9ビット入出力の非線形関数であり、ハードウェア実装は非線形変換テーブルなどによって行われる。この非線形変換テーブルは、例えば、ROM(Read Only Memory)などの半導体メモリに実装される。このように、非線形関数S9の処理は、メモリアクセスを伴うため、排他的論理和の処理に比べて処理時間が長くなる。
図7は、図3に示すFO関数の各ラウンドにおける、FI関数(FIi1〜FIi3)とその直下に位置する排他的論理和60を含めた構成を示す図である。
図7に示す排他的論理和60a、60bは、図3に示す16ビットの排他的論理和60を、9ビットの排他的論理和と7ビットの排他的論理和に分割して示したものである。排他的論理和60aが9ビットの排他的論理和、排他的論理和60bが7ビットの排他的論理和である。図7に示すクリティカルパス200は、2つの非線形関数S9と4つの排他的論理和を備えており、データは全て9ビットで処理される。また、右系のパス210は、1つの非線形関数S7と3つの排他的論理和を備えており、データは全て7ビットで処理される。
図7に示す排他的論理和60a、60bは、図3に示す16ビットの排他的論理和60を、9ビットの排他的論理和と7ビットの排他的論理和に分割して示したものである。排他的論理和60aが9ビットの排他的論理和、排他的論理和60bが7ビットの排他的論理和である。図7に示すクリティカルパス200は、2つの非線形関数S9と4つの排他的論理和を備えており、データは全て9ビットで処理される。また、右系のパス210は、1つの非線形関数S7と3つの排他的論理和を備えており、データは全て7ビットで処理される。
FI関数及びFO関数の処理を高速化するためには、図6、7に示すクリティカルパス100、200を短縮すればよい。ここで、「クリティカルパスの短縮」とは、クリティカルパスの構成要素の削減を意味する。しかしながら、MISTY1のFI関数においては、16ビットの入力が9ビットと7ビットという異なるビット数に分割され、それぞれ、左右の2つのパス(データパス)で処理される。このように、FI関数は、左系と右系のデータパスのビット数が異なるという非均等構造を有するため、等価性を維持しながら論理変換を行うことは容易ではない。したがって、論理変換の困難性が、MISTY1のFI関数を高速化する上での障壁となる。
特開2004−240427号公報
特許3088337号
暗号技術仕様書 MISTY1(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/5_02jspec.pdf)
松井 充 「ブロック暗号アルゴリズム MISTY」、信学技報、ISEC96−11、1996−07
本発明の目的は、非均等な構造を有するMISTY構造のデータ変換関数のクリティカルパスを短縮することで、該データ変換関数の処理速度を向上させることである。
本発明の第1のデータ変換関数の処理装置は、nビットのデータパスとmビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行することを前提とする。ここで、m<nである。
本発明の第1のデータ変換関数の処理装置は、nビットのデータパスとmビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行することを前提とする。ここで、m<nである。
第1のデータ変換関数の処理装置の第1の態様は、前記mビットのデータパスから分岐入力するmビットをzero-extend変換によりnビットに変換する、前記2つのデータパス間を結ぶ経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるnビットとnビットのラウンド鍵KIij2の排他的論理和を演算する、前記2つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器とを備える。
第1のデータ変換関数の処理装置の第2の態様は、前記mビットのデータパスから分岐入力するmビットとnビットのラウンド鍵KIij2の下位mビットの排他的論理和を演算する、前記2つのデータパス間を接続する経路上に設けられた第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるmビットとラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記2つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器とを備える。
第1のデータ変換関数の処理装置の第3の態様は、前記mビットのデータパスから入力するmビットとnビットのラウンド鍵KIij2のmビットの排他的論理和を演算する第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるmビットと前記ラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記2つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記第1の排他的論理和演算器から出力されるmビットと前記ラウンド鍵KIij2のmビットの排他的論理和を演算する、前記mビットのデータパスの前記経路への分岐点の下部に設けられた第2の排他的論理和演算器と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第3の排他的論理和演算器と、該第3の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第4の排他的論理和演算器とを備える。
第1のデータ変換関数の処理装置の第4の態様は、前記mビットのデータパスから分岐入力するmビットとnビットのラウンド鍵KIij2の下位mビットの排他的論理和を演算する、前記2つのデータパス間を接続する経路上に設けられた第1の排他的論理和演算器と、該第1の排他的論理和演算器から入力するmビットとラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットする、前記2つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、nビットのラウンド鍵KIij2をmビットにtruncate変換する第1のtruncate変換手段と、前記nビットのデータパスから分岐入力されるnビットをmビットにtruncate変換する、前記2つのデータパス間を接続する第2の経路上に設けられた第2のtruncate変換手段と、該第2のtruncate変換手段から出力されるmビットと前記第1のtruncate変換手段から出力されるmビットの排他的論理和を演算する、前記第2の経路上に設けられた第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力されるmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、該第3の排他的論理和演算器から出力されるmビットとmビットのラウンド鍵KIij1の排他的論理和を演算する、前記mビットのデータパス上に設けられた第4の排他的論理和演算器とを備える。
第1のデータ変換関数の処理装置の第5の態様は、前記mビットのデータパスから分岐入力するmビットとnビットのラウンド鍵KIij2の下位mビットの排他的論理和を演算する、前記2つのデータパス間を接続する経路上に設けられた第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるmビットとラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記2つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、前記mビットのデータパス上の前記第3の排他的論理和演算器の上部に設けられた分岐点から入力するmビットと前記第2の排他的論理和演算器から出力されるmビットの排他的論理和を演算する、前記2つのデータパス間を接続する第2の経路上に設けられた第4の排他的論理和と、該第4の排他的論理和演算器から出力されるmビットをnビットにzero-extend変換する、前記第2の経路上に設けられたzero-extend変換手段とを備える。
上記第1のデータ変換関数の処理装置の第1乃至5のいずれかの1つの態様においては、例えば、前記2つのデータパス間を結ぶ経路と前記nビットのデータパスとの接続点には、nビット入出力の非線形変換器Snの直下に配置された排他的論理和演算器が設けられている。
上記第1のデータ変換関数の処理装置の第1乃至5のいずれかの1つの態様においては、例えば、前記2つのデータパス間を結ぶ経路と前記mビットのデータパスとの接続点の直下には、mビット入出力の非線形変換器Smが設けられている。
本発明の第1のデータ変換関数の処理装置によれば、nビットのデータパスとmビットのデータパスを有する非均等な構造を有するMISTY構造のデータ変換関数の回路構造を、従来はnビットのデータパス上に配置されていたラウンド鍵KIij2が入力する排他的論理和演算器がnビットのデータパスから除外された構成に変更する。この変更は、関数全体の論理的な等価性が保証されるように実施される。これにより、上記データ変換関数のクリティカルパス(この場合、nビットのデータパス)上に配置される排他的論理和演算器の個数を、従来のデータ変換関数よりも削減できる。したがって、nビットのデータパスとmビットのデータパスを有する非均等な構造を有するMISTY構造のデータ変換関数の処理装置の処理速度を従来よりも高速化できる。
本発明の第2のデータ変換関数の処理装置は、nビットのデータパスとmビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第1の(n+m)ビットデータと前記データ変換関数の外部から入力される第2の(n+m)ビットデータの排他的論理和を実行することを前提とする。ここで、m<nである。
第2のデータ変換関数の処理装置の第1の態様は、前記mビットのデータパスから分岐点入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるnビットと前記第2の(n+m)ビットのnビットの排他的論理和を演算する、前前第1の経路上に設けられた第1の排他的論理和演算器とを備える。
第2のデータ変換関数の処理装置の第1の態様は、例えば、前記第1の経路と前記mビットのデータパスとの接続点の上部には、nビット入出力の非線形変換器Snが設けられている。
第2のデータ変換関数の処理装置の第2の態様は、上記第1の態様において、さらに、nビットのラウンド鍵KIij2と前記mビットのデータパスから分岐入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第2の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるnビットとnビットのラウンド鍵KIij2の排他的論理和を演算する、前記2つのデータパス間を結ぶ第2の経路上に設けられた第2の排他的論理和演算器と、nビットのラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第3の排他的論理和器と、該第3の排他的論理和演算器から出力されるmビットが入力する、前記mビットのデータパス上に設けられた第4の排他的論理和演算器を備える。
該第2のデータ変換関数の処理装置の第2の態様は、例えば、前記第2の経路と前記nビットのデータパスとの接続点の上部には、nビット入出力の非線形変換器Snが設けられている。
第2のデータ変換関数の処理装置の第3の態様は、前記第2の(n+m)ビットのmビットと前記mビットのデータパスから分岐入力するmビットの排他的論理和を演算する、前記2つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、前記第1の排他的論理和演算器から出力されるmビットと前記第2の(n+m)ビットの(n−m)ビットをconcatenate変換により結合してnビットに変換し、そのnビットを前記nビットのデータパスに出力するconcatenate変換手段とを備える。
上記第2のデータ変換関数の処理装置の第3の態様は、例えば、前記分岐入力するmビットは、前記mビットのデータパス上に設けられた、ラウンド鍵KIij1が入力する第2の排他的論理和演算器の出力である。
第2のデータ変換関数の処理装置の第4の態様は、前記第2の(n+m)ビットの下位mビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第1の排他的論理和演算器と、前記mビットのデータパス上において該第1の排他的論理和演算器の下部に設けられた分岐点から入力するmビットと前記第2の(n+m)ビットの上位(n−m)ビットをconcatenate変換により結合してnビットに変換して、そのnビットを前記nビットのデータパスに出力するconcatenate変換手段と、前記mビットのデータパス上において前記分岐点の下部から入力するmビットと前記(n+m)ビットの下位mビットの排他的論理和を演算する第2の排他的論理和演算器とを備える。
第2のデータ変換関数の処理装置の第5の態様は、前記mビットのデータパスから分岐点入力するmビットとnビットのラウンド鍵KIij2のmビットの排他的論理和を演算する、前記2つのデータパス間を結ぶ第1の経路上に設けられた第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるmビットと前記ラウンド鍵KIij2第2の(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記第1の経路上に設けられたconcatenate変換手段と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、前記mビットのデータパスから分岐点入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第2の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるnビットと前記第2の(n+m)ビットの上位nビットの排他的論理和を演算する、前記第2の経路上に設けられた第4の排他的論理和演算器とを備える。
第2のデータ変換関数の処理装置の第6の態様は、前記mビットのデータパスから分岐点入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるnビットと前記第2の(n+m)ビットのnビットの排他的論理和を演算する、前記第1の経路上に設けられた第1の排他的論理和演算器と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、前記mビットのデータパスから分岐点入力するmビットと前記第2の(n+m)ビットのmビットの排他的論理和を演算する、前記2つのデータパス間を結ぶ第2の経路上に設けられた第4の排他的論理和演算器と、 該第4の排他的論理和演算器から出力されるmビットと前記第1または第2の(n+m)ビットの(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記第2の経路上に設けられたconcatenate変換手段とを備える。
上記第2のデータ変換関数の処理装置の第6の態様は、例えば、前記第4の排他的論理和演算器に前記mビットのデータパスから入力するmビットは、前記第3の排他的論理和演算器の出力である。
第2のデータ変換関数の処理装置の第7の態様は、前記2つのデータパス間を結ぶ第1の経路上に設けられた、前記mビットのデータパスから分岐入力するmビットとnビットのラウンド鍵KIij2の下位mビットの排他的論理和を演算する第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるmビットと前記ラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットに変換する第1のconcatenate変換手段と、前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、該第2の排他的論理和演算器から出力されるmビットが入力する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、前記第1または第2の(n+m)ビットの下位mビットと前記mビットのデータパスから分岐入力するmビットの排他的論理和を演算する、前記2つのデータパス間を結ぶ第2の経路上に設けられた第4の排他的論理和演算器と、前記第4の排他的論理和演算器から出力されるmビットと前記第1または第2の(n+m)ビットの上位(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記第2の経路上に設けられた第2のconcatenate変換手段とを備える。
上記第2のデータ変換関数の処理装置の第7の態様は、例えば、前記第4の排他的論理和演算器に前記mビットのデータパスから分岐入力するmビットは、前記第3の排他的論理和演算器から出力される。このような構成において、例えば、前記第1及び第2の経路と前記nビットのデータパスとの接続点の上部には、nビット入出力の非線形変換器Snが設けられている。
本発明の第2のデータ変換関数の処理装置によれば、nビットのデータパスとmビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第1の(n+m)ビットデータと前記データ変換関数の外部から入力される第2の(n+m)ビットデータの排他的論理和とから成る処理を実行する装置の回路構造を、従来はnビットのデータパス上に配置されていた、ラウンド鍵KIij2が入力する排他的論理和演算器と、前記第2の(n+m)ビットのnビットが入力する排他的論理和演算器が、nビットのデータパスから除外された構成に変更する。この変更は、関数全体の論理的な等価性が保証されるように実施される。これにより、上記データ変換関数の処理と、そのデータ変換関数の(n+m)ビット出力と外部入力する(n+m)ビットの排他的論理和を実行するデータ変換関数の処理装置において、その内部のクリティカルパス(この場合、nビットのデータパス)上に配置される排他的論理和演算器の個数を、従来のデータ変換関数の処理装置よりも削減できる。したがって、nビットのデータパスとmビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第1の(n+m)ビットデータと前記データ変換関数の外部から入力される第2の(n+m)ビットデータの排他的論理和の処理を実行する、データ変換関数の処理装置の処理速度を従来よりも高速化することができる。
尚、MISTY構造はFeistel構造の一種である。
以下、図面を参照しながら本発明の実施形態について説明する。尚、以下に述べる実施形態は、主に、本発明をMISTY1のFI関数に適用した例であるが、本発明はFI関数に限定されるものではなく、FI関数以外のMISTY構造を有するF関数にも適用可能である。また、ブロック長も64ビットに限定されるものではない。また、秘密鍵や拡大鍵のビット長も本実施形態に限定されるものではない。
尚、以下の説明では、本発明の実施形態の構成要素を、「排他的論理和」、「非線形関数S9」、「非線形関数S7」という用語を用いて説明するが、これらの用語は「排他的論理和」や「非線形関数」という演算や関数を意味すると共に、それらの機能を実現するハードウェアである「排他的論理和演算器」や「非線形変換器」も意味するものとする。したがって、以下に述べる実施形態は、FI関数及びFO関数関連処理回路の処理アルゴリズムを示すと同時に、それらのハードウェア(処理装置)も示すものである。
[FI関数のみに着目したクリティカルパスの短縮手法]
まず、FI関数のみに着目したクリティカルパスの短縮手法を説明する。
図8A、8Bは、FI関数のみに着目したクリティカルパスの短縮手法を説明する図である。図8Aは図6と同様な図であり、従来のFI関数の構成を示す図である。
まず、FI関数のみに着目したクリティカルパスの短縮手法を説明する。
図8A、8Bは、FI関数のみに着目したクリティカルパスの短縮手法を説明する図である。図8Aは図6と同様な図であり、従来のFI関数の構成を示す図である。
本手法においては、まず、図8Aに示すFI関数において、そのクリティカルパス100上の2番目の非線形関数S9の直前に位置する排他的論理和102を、図8Bに示すように、最初のzero-extend変換120Uの直後(出力先)に移動する。この操作により、クリティカルパス100上の排他的論理和の個数が1つ減少する。上記移動した排他的論理和102にはラウンド鍵KIij2が入力しており、位置が移動したことにより、排他的論理和102の出力は、排他的論理和101とtruncate変換130Uを経由して右系のパス110aに配置された排他的論理和111に入力する。図8Aに示すように、移動前の排他的論理和102の出力は、右系のパス110には入力していない。したがって、FI関数全体における論理の等価性を保証する操作が必要となる。
この操作は、図8Bに示すように、パス110a上において排他的論理和111の直下に位置し、排他的論理和111の出力が入力する排他的論理和112のもう一方の入力を変更することによって行う。図8Aに示すように、排他的論理和102を移動する前には、排他的論理和112には、排他的論理和111の出力とラウンド鍵KIij1が入力していた。そこで、図8Bに示すように、ラウンド鍵KIij1の入力を、ラウンド鍵KIij1とラウンド鍵KIij2の排他的論理和の演算結果の入力に変更する。この場合、ラウンド鍵KIij2は9ビットであるため、truncate変換130Dによりラウンド鍵KIij2の上位2ビットを切り捨て、ラウンド鍵KIij2の下位7ビットを排他的論理和113に入力させる。排他的論理和113は、ラウンド鍵KIij2の下位7ビットとラウンド鍵KIij1の排他的論理和を演算し、その演算結果を排他的論理和112に出力する。この結果、排他的論理和112は、排他的論理和111の出力とラウンド鍵KIij1の排他的論理和を演算することになるので、FI関数全体の論理等価性は保証される。尚、ラウンド鍵KIij2の下位7ビットとラウンド鍵KIij1の排他的論理和の演算結果を排他的論理和113から入力する上記排他的論理和112の配置位置は、図8Bに示す位置ではなく、データパス110a上の非線形関数S7と排他的論理和111の間であってもよい。この場合も、FI関数全体の論理等価性は保証される。
上述したように、FI関数は非均等な構造を有するため、論理の等価性を保ちながら回路構成を変更することは容易ではない。しかし、本手法では、ラウンド鍵KIij2の上位2ビットを切り捨てた値を用いることで、ビット数が異なるパス110aに対しても、ラウンド鍵KIij2の排他的論理和演算が可能となる。この場合、上位2ビットを切り捨てても、論理の等価性が崩れることはない。以後、上述した排他的論理和102の移動操作を「変形1」と呼ぶことにする。また、この変形1を、ラウンド鍵KIij2が入力する排他的論理和102をzero-extend変換120Uの出力先に移動する操作(以後、「変形1A」と呼ぶ)と、排他的論理和112に入力する7ビットデータを生成する回路(truncate変換130Dと排他的論理和113から構成される回路)を追加する操作(以後、「変形1B」と呼ぶ)の2つの操作に分割する。
[FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成に着目したクリティカルパスの短縮手法]
次に、FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成に着目したクリティカルパスの短縮手法について説明する。
次に、FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成に着目したクリティカルパスの短縮手法について説明する。
図9A、9Bは、FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成のクリティカルパスの短縮手法を説明する図である。図9Aは、上述した図7と同様な図であり、従来のFI関数の回路構造を示す図である。
本手法では、図9Aに示すFI関数のクリティカルパス200上に存在するFI関数の直下に位置する排他的論理和60aを、図9Bに示すように、FI関数のパス210aとクリティカルパス200aを接続する経路に存在するzero-extend変換120Dの出力先の位置に移動する。より詳細に説明すると、排他的論理和60aを、上記zero-extend変換120Dとクリティカルパス200a上において2番目の非線形関数S9の直下に位置する排他的論理和103との間に挿入する。この操作により、クリティカルパス200上の排他的論理和の個数が1つ減少するので、クリティカルパス200の短縮が実現される。排他的論理和60aの出力はクリティカルパス200aに入力する。排他的論理和60aは、元々、クリティカルパス200a上に配置されており、排他的論理和の処理順所を変更しても全体的な論理結果は変わらないので、上記位置に排他的論理和60aを移動しても、FI関数全体の論理の等価性は保証される。以後、上記のような排他的論理和の移動操作を「変形2」と呼ぶことにする。
以下に述べる本発明の実施形態は、上記変形1、2を基本として、「FI関数のクリティカルパス」及び「FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成のクリティカルパス」の短縮を実現する手法である。
[第1の実施形態]
図10は、本発明の第1の実施形態であるFI関数の回路構造を示す図である。
図10に示すFI関数300aの回路は、図6に示す従来のFI関数の回路に上記変形1の操作を施すことにより得られる。
図10は、本発明の第1の実施形態であるFI関数の回路構造を示す図である。
図10に示すFI関数300aの回路は、図6に示す従来のFI関数の回路に上記変形1の操作を施すことにより得られる。
FI関数300aの回路構造を詳細に説明する。
FI関数300aのクリティカルパス100aは、2つの非線形関数S9と2つの排他的論理和から構成されている。FI関数300aに入力される16ビットデータは、9ビットと7ビットに分離され、9ビットがクリティカルパス100aに入力され、7ビットが右系のパス110aに入力される。クリティカルパス100aは、先頭から順に、第1の非線形関数S9、排他的論理和101、第2の非線形関数S9、排他的論理和103が配置された構成となっている。パス110aは、先頭から順に、非線形関数S7、排他的論理和111、排他的論理和112が配置された構成となっている。クリティカルパス100aとパス110aは終端で合流されており、その合流点311でクリティカルパス100aから出力される9ビットとパス110aから出力される7ビットが合成されて16ビットデータとなる。この合成において、クリティカルパス100aの出力が下位ビット、パス110aの出力が上位ビットとなる。
FI関数300aのクリティカルパス100aは、2つの非線形関数S9と2つの排他的論理和から構成されている。FI関数300aに入力される16ビットデータは、9ビットと7ビットに分離され、9ビットがクリティカルパス100aに入力され、7ビットが右系のパス110aに入力される。クリティカルパス100aは、先頭から順に、第1の非線形関数S9、排他的論理和101、第2の非線形関数S9、排他的論理和103が配置された構成となっている。パス110aは、先頭から順に、非線形関数S7、排他的論理和111、排他的論理和112が配置された構成となっている。クリティカルパス100aとパス110aは終端で合流されており、その合流点311でクリティカルパス100aから出力される9ビットとパス110aから出力される7ビットが合成されて16ビットデータとなる。この合成において、クリティカルパス100aの出力が下位ビット、パス110aの出力が上位ビットとなる。
パス110aには、2つの分岐点301、303が設けられている。クリティカルパス100aには1つの分岐点302が設けられている。パス110aの分岐点301は、非線形関数S7の上部に設けられている。パス110aに入力される7ビットデータは、分岐点301を介してzero-extend変換120U(第1のzero-extend変換)に入力する。Zero-extend変換120Uは、その7ビットデータを9ビットデータに変換して排他的論理和102に出力する。この排他的論理和102は、クリティカルパス100a上に配置された排他的論理和101とzero-extend変換120Uとの間に設けられている。排他的論理和102は、zero-extend変換120Uから入力する9ビットデータとラウンド鍵KIij2の排他的論理和を演算し、その演算結果を排他的論理和101に出力する。このように、zero-extend変換120Uと排他的論理和102は、パス110aとクリティカルパス100aを接続する経路上に設けられている。
クリティカルパス100aの分岐点302は、上記排他的論理和101の直下に設けられており、分岐点302を介して排他的論理和101の出力(9ビットデータ)がtruncate変換130Uに入力する。truncate変換130Uは、排他的論理和101から出力される9ビットデータからその上位2ビットを切り捨て、排他的論理和101の出力を7ビットデータに変換する。そして、その7ビットデータを、パス110a上に設けられた排他的論理和111に出力する。このように、truncate変換130Uは、クリティカルパス100aとパス110aを接続する経路上に設けられている。
上記排他的論理和111は、非線形関数S7の直下に設けられており、排他的論理和111の出力と非線形関数S7の出力の排他的論理和を演算する。排他的論理和111の出力は、パス110a上の排他的論理和112に入力する。排他的論理和112は、排他的論理和111の出力と排他的論理和113の出力の排他的論理和を演算する。排他的論理和113は、パス110aの外部に設けられている。排他的論理和113は、ラウンド鍵KIij1とtruncate変換130Dの出力の排他的論理和を演算する。Truncate変換130Dは、パス110aの外部に設けられており、9ビットのラウンド鍵KIij2を、その上位2ビットを切り捨てることにより、7ビットデータに変換する。そして、その7ビットデータを排他的論理和113に出力する。
排他的論理和112の出力は、パス110a上に設けられた分岐点303を介して、パス110aとクリティカルパス100aを接続する経路上に設けられたzero-extend変換120Dに入力する。Zero-extend変換120Dは、排他的論理和112の出力する7ビットデータを9ビットデータに変換し、その9ビットデータをクリティカルパス100a上に設けられた排他的論理和103に出力する。排他的論理和103は、排他的論理和101の出力データを非線形変換する非線形関数S9(第2の非線形関数S9)の直下に設けられている。排他的論理和103は、非線形関数S9の出力とzero-extend変換120Dの出力の排他的論理和を演算し、その演算結果(9ビットデータ)を上記合流点311に出力する。この合流点311には、パス110a上の排他的論理和112の出力(7ビットデータ)も入力する。
FI関数300aのクリティカルパス200aは、2つの非線形関数S9と2つの排他的論理和101、103から構成されており、図7に示す従来のFI関数のクリティカルパス200よりも排他的論理和の個数が2つ少ない。したがって、本実施形態のFI関数300aは従来のFI関数よりも処理が速い。
[第2の実施形態]
図11は、本発明の第2実施形態である、「FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成の回路構造」(以後、「FI関数及びその直下の排他的論理和の回路構造」と呼ぶ)の構成を示す図である。図11において、図10と同じ構成要素には同じ符号を付与している。
図11は、本発明の第2実施形態である、「FO関数における、FI関数とその直下に位置する排他的論理和を含めた構成の回路構造」(以後、「FI関数及びその直下の排他的論理和の回路構造」と呼ぶ)の構成を示す図である。図11において、図10と同じ構成要素には同じ符号を付与している。
図11に示すFI関数及びその直下の排他的論理和の回路構造400aは、図7に示す従来のFI関数及びその直下の排他的論理和の回路構造に上記変形2を施すことにより得られる。
FI関数及びその直下の排他的論理和の回路構造400aは、上記FI関数300aの下部に9ビットのクリティカルパス201aと7ビットのパス211aを付加した構成となっている。FI関数及びその直下の排他的論理和の回路構造400aのクリティカルパス200aは、FI関数300aのクリティカルパス100aに上記クリティカルパス201aを付加した構成となっている。FI関数及びその直下の排他的論理和の回路構造400aのパス210aは、FI関数300aのパス110aに上記データパス211aを付加した構成となっている。FI関数及びその直下の排他的論理和の回路構造400aの構成を説明する。以下の説明では、重複説明を避けるために、FI関数300aと異なる構成を中心に述べる。
クリティカルパス200a上の排他的論理和101とパス210aの分岐点301の間を接続する経路には、zero-extend変換120Uのみが設けられている。パス210a上に設けられた排他的論理和112にはラウンド鍵KIij1が直接入力している。また、クリティカルパス200a上に設けられた排他的論理和103とパス210aの分岐点303を接続する経路には、zero-extend変換120Dに加え、排他的論理和60aが設けられている。パス210aの分岐点303から出力される7ビットデータはzero-extend変換120Dにより9ビットデータに変換された後、排他的論理和60aに入力する。排他的論理和60aは、zero-extend変換120Dから入力する9ビットデータと、FO関数に入力される32ビットデータの右系の16ビットまたは前段のFI関数の左系のデータパスから出力される16ビットの下位9ビット191(以後、9ビットデータ191と呼ぶ)の排他的論理和を演算し、その演算結果をクリティカルパス200a上に配置された排他的論理和103に出力する。パス211a上には、上記16ビットの上位7ビットとFI関数300aのパス110a上に配置された排他的論理和112から出力される7ビットデータを排他的論理和演算する排他的論理和113が設けられている。
FI関数及びその直下の排他的論理和の回路構造400aのクリティカルパス200aは、2つの非線形関数S9と3つの排他的論理和101〜103から構成されており、図7に示す従来のFI関数及びその直下の排他的論理和の回路構造のクリティカルパス200よりも排他的論理和の個数が1つ少ない。したがって、本実施形態のFI関数及びその直下の排他的論理和の回路構造400aは、従来のFI関数及びその直下の排他的論理和の回路構造よりも処理が速い。
[第3の実施形態]
図12は、本発明の第3の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図12において、図10及び図11に示す構成要素と同じ構成要素には同じ符号を付与している。
図12は、本発明の第3の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図12において、図10及び図11に示す構成要素と同じ構成要素には同じ符号を付与している。
図12に示すFI関数及びその直下の排他的論理和の回路構造400bは、図7に示す従来のFI関数及びその直下の排他的論理和の回路構造に上記変形1と変形2を施すことにより得られる。
FI関数及びその直下の排他的論理和の回路構造400bは、図11に示すFI関数及びその直下の排他的論理和の回路構造400aに上記変形1を加えた構成となっている。 FI関数及びその直下の排他的論理和の回路構造400bは、左系のデータパス200bと右系データパス210bを備え、データパス200bがクリティカルパスとなっている。FI関数及びその直下の排他的論理和の回路構造400bにおいては、FI関数及びその直下の排他的論理和の回路構造400aのクリティカルパス200a上に存在していた排他的論理和102を、上記変形1により、クリティカルパス200b上の排他的論理和101とパス210b上の分岐点301を結ぶ経路上に移動させている。具体的には、zero-extend変換120Uと排他的論理和101の間に排他的論理和102を配置している。この配置に伴い、回路全体での論理等価性を保つために、パス210b上に配置された排他的論理和112の一方の入力を、ラウンド鍵KIij1から排他的論理和113の出力に変更している。
FI関数及びその直下の排他的論理和の回路構造400bのクリティカルパス200bは、2つの非線形関数S9と2つの排他的論理和101、103から構成されている。したがって、本実施形態のFI関数及びその直下の排他的論理和の回路構造400bのクリティカルパス200bは、上述した第2の実施形態のFI関数及びその直下の排他的論理和の回路構造400aのクリティカルパス200aよりも排他的論理和の個数が1つ少なくなっている。したがって、本実施形態のFI関数及びその直下の排他的論理和の回路構造400bは、FI関数及びその直下の排他的論理和の回路構造400aよりも処理が高速である。
[第4の実施形態]
図13Aは、本発明の第4の実施形態であるFI関数の回路構成を示す図である。図13において、図10に示すFI関数300aの回路が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Aは、本発明の第4の実施形態であるFI関数の回路構成を示す図である。図13において、図10に示すFI関数300aの回路が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Aに示すFI関数300b1は、FI関数300aの上部に配置されたzero-extend変換120Uをconcatenate変換に置換したものである。したがって、右系のパス(データパス)と左系のパス(データパス)は、FI関数300aと同様である。 concatenate変換は、2入力(2ビット、7ビット)に対して、7ビット入力の上位に2ビット入力をビット結合する処理を行い、該ビット結合により得られた9ビットを出力する処理である。FI関数300b1においては、FI関数300aが備えるzero-extend変換120Uとその出力先である排他的論理和102を、concatenate変換140Uと排他的論理和151Uに置換している。
図13Aにおいて破線の矩形枠310Uで囲まれた回路(以後、置換回路310Uと呼ぶ)がzero-extend変換120Uの置換回路である。この置換回路310Uの構成を詳細に説明する。
置換回路310Uは、concatenate変換140Uと排他的論理和151Uを備えている。排他的論理和151Uは、パス110aの分岐点301から7ビット(FI関数300b1の16ビット入力データの7ビット)を入力するとともに、ラウンド鍵KIij2の下位7ビットを入力し、それら2つの入力ビットの排他的論理和を演算する。排他的論理和151Uは、その論理演算結果をconcatenate変換140Uに出力する。concatenate変換140Uは、ラウンド鍵KIij2の上位2ビットも入力する。concatenate変換140Uは、排他的論理和151Uから入力する7ビットとラウンド鍵KIij2の上位2ビットをビット結合し、そのビット結合処理により得られた9ビットをクリティカルパス200a上に配置された排他的論理和101に出力する。
FI関数300b1は、FI関数300aが備える9ビットの排他的論理和演算を行う排他的論理和102を、7ビットの排他的論理和演算を行う排他的論理和151Uに置換している。このため、FI関数300b1は、排他的論理和演算に要する回路規模を、FI関数300aよりも小さくできる。したがって、回路全体の規模もFI関数300aよりも小さくすることが可能である。
{第4の実施形態の第1の変形例}
図13Bは、上述したFI関数300b1の第1の変形例を示す図である。図13Bにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Bは、上述したFI関数300b1の第1の変形例を示す図である。図13Bにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Bに示すFI関数300b2は、FI関数300b1の置換回路310Uを、図13Bにおいて破線の矩形枠で囲まれた置換回路320Uに変形したものである。置換回路320Uは、置換回路310U内の排他的論理和151Uを、2つの排他的論理和151U1、151U2に置き換えた構成となっている。排他的論理和151U1は、パス110a上の分岐点301の直前に配置されており、FI関数300b2の16ビット入力データの右7ビットとラウンド鍵KIij2の下位7ビットを入力する。排他的論理和151U2は、パス110aの分岐点301の直後に設けられており、排他的論理和151U1の論理演算結果とラウンド鍵KIij2の下位7ビットを入力する。排他的論理和151U2の論理演算結果はパス110a上に配置された非線形関数S7に出力される。
{第4の実施形態の第2の変形例}
図13Cは、上述したFI関数300b1の第2の変形例を示す図である。図13Cにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Cは、上述したFI関数300b1の第2の変形例を示す図である。図13Cにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Cに示すFI関数300b3は、図13Aに示すFI関数300b1の矩形枠401で囲まれた部分回路(以後、置換回路401と呼ぶ)を、矩形枠401aで囲まれた回路(以後、置換回路401aと呼ぶ)と矩形枠401bで囲まれた回路(以後、置換回路401bと呼ぶ)に置換したものである。
置換回路401aは、ラウンド鍵KIij1が入力する排他的論理和112をパス110a上に配置した回路であり、図8Aに示す従来のFI関数が備える回路と同様の回路である。置換回路401bは、truncate変換130aと排他的論理和411を備えている。排他的論理和411は、パス110a上に配置された排他的論理和111とクリティカルパス200a上の分岐点302から9ビットを入力するtruncate変換130Dの間に設けられており、truncate変換130Dから出力される7ビットを入力する。truncate変換130aは9ビットのラウンド鍵KIij2を7ビットに変換し、その7ビットを排他的論理和411に出力する。排他的論理和411は、truncate変換130Dから入力する7ビットとtruncate変換130aから入力する7ビットの排他的論理和を演算し、その演算結果を排他的論理和111に出力する。
{第4の実施形態の第3の変形例}
図13Dは、上記FI関数300b1の第3の変形例を示す図である。図13Dにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Dは、上記FI関数300b1の第3の変形例を示す図である。図13Dにおいて、図13Aに示すFI関数300b1が備える構成要素と同一の構成要素には同じ符号を付与している。
図13Dに示すFI関数300b4は、図13Aに示すFI関数300b1の矩形枠401で囲まれた部分回路(以後、置換回路401と呼ぶ)を、矩形枠402で囲まれた回路(以後、置換回路402と呼ぶ)に置換したものである。FI関数300b4の左系のパス100bはFI関数300b1と同様であるが、右系のパス110bの構成はFI関数300b1と若干異なっている。具体的には、排他的論理和112の右系のパス上での配置位置が異なっている。FI関数300b4においては、排他的論理和112はパス110bの分岐点303の直下に配置されている。
置換回路402は、truncate変換130Dと3つの排他的論理和112、113、411を備えている。truncate変換130Dと2つの排他的論理和112、113は、FI関数300b1と同様な配置構成となっている。排他的論理和413は、パス110bの分岐点303とzero-extend変換120Dとの間に設けられている。排他的論理和413は、分岐点303から入力する7ビットと排他的論理和111から入力する7ビットの排他的論理和を演算し、その演算結果をzero-extend変換120Dに出力する。
[第5の実施形態]
図14は、本発明の第5の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図14において、図12に示すFI関数及びその直下の排他的論理和の回路構造400bが備える構成要素と同じ構成要素には同一の符号を付与している。
図14は、本発明の第5の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図14において、図12に示すFI関数及びその直下の排他的論理和の回路構造400bが備える構成要素と同じ構成要素には同一の符号を付与している。
図14に示すFI関数及びその直下の排他的論理和の回路構造400cは、FI関数及びその直下の排他的論理和の回路構造400bの上部に設けられたzero-extend変換120Uをconcatenate変換に置換したものである。FI関数及びその直下の排他的論理和の回路構造400cにおいては、FI関数及びその直下の排他的論理和の回路構造400b1が備えるzero-extend変換120Uと排他的論理和102を、concatenate変換140Uと排他的論理和151Uに置換している。
FI関数及びその直下の排他的論理和の回路構造400cは、FI関数及びその直下の排他的論理和の回路構造400bが備える9ビットの排他的論理和演算を行う排他的論理和102を、7ビットの排他的論理和演算を行う排他的論理和151Uに置換している。このため、FI関数及びその直下の排他的論理和の回路構造400cは、排他的論理和演算に要する回路規模を、FI関数及びその直下の排他的論理和の回路構造400bよりも小さくできる。
[第6の実施形態]
図15Aは、本発明の第6の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図15Aにおいて、図11に示すFI関数及びその直下の排他的論理和の回路構造400aが備える構成要素と同じ構成要素には同一の符号を付与している。
図15Aは、本発明の第6の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図15Aにおいて、図11に示すFI関数及びその直下の排他的論理和の回路構造400aが備える構成要素と同じ構成要素には同一の符号を付与している。
図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1は、FI関数及びその直下の排他的論理和の回路構造400aの下部に設けられたzero-extend変換120Dをconcatenate変換に置換したものである。FI関数及びその直下の排他的論理和の回路構造400d1においては、FI関数及びその直下の排他的論理和の回路構造400aが備えるzero-extend変換120Dと排他的論理和60aを、concatenate変換140Dと排他的論理和151Dに置換している。
図15Aにおいて矩形枠501で囲んで示す部分回路(以後、置換回路501と呼ぶ)がFI関数及びその直下の排他的論理和の回路構造400aが上記置換が行われた回路である。
置換回路501は、パス210aの分岐点303とクリティカルパス200a上に設けられた排他的論理和103間に、排他的論理和151Dとconcatenate変換140Dを配置した構成となっている。排他的論理和151Dは、パス210aの分岐点303から7ビット(排他的論理和112の出力データの7ビット)を入力すると共に、排他的論理和60aに入力する上記9ビットデータ191の下位7ビットを入力する。排他的論理和151Dは、それら2つの7ビットの排他的論理和を演算し、その演算結果をconcatenate変換140Dに出力する。concatenate変換140Dは、排他的論理和151Dから入力する7ビットと上記9ビットデータ191の上位2ビットをビット結合し、その結合結果をクリティカルパス200a上に配置された排他的論理和103に出力する。
FI関数及びその直下の排他的論理和の回路構造400d1は、FI関数及びその直下の排他的論理和の回路構造400aが備える9ビットの排他的論理和演算を行う排他的論理和60aを、7ビットの排他的論理和演算を行う排他的論理和151Dに置換している。このため、FI関数及びその直下の排他的論理和の回路構造400cは、排他的論理和演算に要する回路規模を、FI関数及びその直下の排他的論理和の回路構造400aよりも小さくできる。
{第6の実施形態の変形例}
図15Bは、上記FI関数及びその直下の排他的論理和の回路構造400d1の変形例を示す図である。図15Bにおいて、図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同じ構成要素には同一の符号を付与している。
図15Bは、上記FI関数及びその直下の排他的論理和の回路構造400d1の変形例を示す図である。図15Bにおいて、図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同じ構成要素には同一の符号を付与している。
図15Bに示すFI関数及びその直下の排他的論理和の回路構造400d2は、FI関数及びその直下の排他的論理和の回路構造400d1が備える排他的論理和151Dを、2つの排他的論理和601、602に置換した構成となっている。排他的論理和601は、パス210a上において、排他的論理和111と排他的論理和112の間に設けられている。排他的論理和601は、排他的論理和111の出力と上記9ビットデータ191の下位7ビットを入力し、それら2つの7ビットの排他的論理和を演算する。そして、その論理演算結果を排他的論理和112に出力する。排他的論理和602は、パス210aの分岐点303の直下に設けられている。排他的論理和602は、排他的論理和112の出力と上記9ビットデータの下位7ビットを入力し、それら2つの7ビットの排他的論理和を演算し、その演算結果をパス110a上に出力する。
[第7の実施形態]
図16は、本発明の第7の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図16において、図12に示すFI関数及びその直下の排他的論理和の回路構造及び図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同じ構成要素には同一の符号を付与している。
図16は、本発明の第7の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図16において、図12に示すFI関数及びその直下の排他的論理和の回路構造及び図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同じ構成要素には同一の符号を付与している。
図16に示すFI関数及びその直下の排他的論理和の回路構造400eは、図12に示すFI関数及びその直下の排他的論理和の回路構造400bにおいて、その下部のzero-extend変換120Dと排他的論理和60aを、図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1と同様な手法により、concatenate変換140Dと排他的論理和151Dに置換したものである。concatenate変換140DFI関数及びその直下の排他的論理和の回路構造400eが備える排他的論理和151Dは、7ビットの排他的論理和を演算するので、FI関数及びその直下の排他的論理和の回路構造400bが備える排他的論理和60aよりも回路規模が小さい。したがって、FI関数及びその直下の排他的論理和の回路構造400eは、FI関数及びその直下の排他的論理和の回路構造400bよりも回路規模を小さくすることができる。
[第8の実施形態]
図17は、本発明の第8の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図17において、図14Aに示すFI関数及びその直下の排他的論理和の回路構造400c及び図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同一の構成要素には同じ符号を付与している。
図17は、本発明の第8の実施形態である、FI関数及びその直下の排他的論理和の回路構造の構成を示す図である。図17において、図14Aに示すFI関数及びその直下の排他的論理和の回路構造400c及び図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1が備える構成要素と同一の構成要素には同じ符号を付与している。
図17に示すFI関数及びその直下の排他的論理和の回路構造400fは、FI関数及びその直下の排他的論理和の回路構造400cの下部に設けられたzero-extend変換120Dと排他的論理和60aを、図15Aに示すFI関数及びその直下の排他的論理和の回路構造400d1と同様な手法により、concatenate変換140Dと排他的論理和151Dに置換したものである。
FI関数及びその直下の排他的論理和の回路構造400fは、図14A乃至図16に示すFI関数及びその直下の排他的論理和の回路構造400c、400d1、400eよりも、回路規模を小さくできる。
[zero-extend変換の実装手法]
{第1の実装手法}
図18は、zero-extend変換の第1の実装手法を示す図である。
{第1の実装手法}
図18は、zero-extend変換の第1の実装手法を示す図である。
図18に示すzero-extend変換器120−1は、信号線121−1から7ビットデータを入力する。信号線121−1は、2ビット“00”が入力する信号線121−2と結線されており、その結線部分において、信号線121−1から入力する7ビットデータと信号線121−1から入力する2ビット“00”が結合される。このとき、7ビットデータが下位、2ビット“00”が上位となる9ビットデータが生成される。この9ビットデータは、信号線121−1と信号線121−2に結線された信号線121−3から出力される。
{第2の実装手法}
図19(a)〜(c)は、zero-extend変換の第2の実装手法を示す図である。
zero-extend変換は、9ビットの信号線(パス)の分岐点に設けられた排他的論理和演算器において、9ビット信号の下位7ビットについてのみ排他的論理和演算を行うことによっても実現できる。
図19(a)〜(c)は、zero-extend変換の第2の実装手法を示す図である。
zero-extend変換は、9ビットの信号線(パス)の分岐点に設けられた排他的論理和演算器において、9ビット信号の下位7ビットについてのみ排他的論理和演算を行うことによっても実現できる。
図19(a)は、図10に示すFI関数300aの下部に設けられたzero-extend変換120Dと、そのzero-extend変換120Dから出力される9ビット信号(9ビットデータ)が入力する、クリティカルパス100a上に設けられた排他的論理和103から構成される部分を示す図である。図19(a)に示す回路は、図19(b)に示す回路で実装できる。図19(b)に示す回路においては、クリティカルパス100a上に配置された排他的論理和103に、7ビットの信号線311が接続されている。この信号線311は、入力端子がパス110aの分岐点301に接続されており、FI関数300aに入力する16ビット信号(16ビットデータ)の下位7ビットを排他的論理和101に入力させる。
図19(c)は、図19(b)において太い円で囲まれた部分の拡大図である。図19(c)に示すように、排他的論理和103は、信号線311を介して入力する7ビット信号(7ビットデータ)と、クリティカルパス100aを介して入力される9ビット信号(9ビットデータ)の下位7ビットの排他的論理和を演算するように構成されている。すなわち、排他的論理和301は、クリティカルパス100aから入力する9ビット信号の下位7ビットと信号線311から入力する7ビットの排他的論理和を演算する。このように、排他的論理和103を図19(c)に示すように構成することで、排他的論理和103にzero-extend変換機能をもたせることができ、zero-extend変換120D用の特別の回路を省略できる。
[truncate変換の実装手法]
{第1の実装手法}
図20は、truncate変換の第1の実装手法を示す図である。
{第1の実装手法}
図20は、truncate変換の第1の実装手法を示す図である。
図20に示すtruncate変換器130−1は、信号線131−1から9ビットのデータを入力する。信号線131−1は、信号線131−2と信号線131−3と結線されており、上記9ビットデータの上位2ビットは信号線131−2に出力されオープン(open)状態となる。一方、上記9ビットデータの下位7ビットは、信号線131−3を介して外部に出力される。
{第2の実装手法}
図21(a)〜(c)は、truncate変換の第2の実装手法を示す図である。
図21(a)は、図10に示すFI関数300a内に設けられている、クリティカルパス100a上の分岐点302と、その分岐点302に接続されたtruncate変換130Uから構成される部分を示す図である。図21(a)に示す回路は、図21(b)に示す回路で実装できる。この回路では、分岐点302において、クリティカルパス100aから7ビットの信号線312が分岐している。図21(c)は、分岐点302の拡大図である。図21(c)に示すように、クリティカルパス100aを介して分岐点302に入力する9ビット信号(9ビットデータ)の内、下位7ビットの信号は信号線312に入力する。このように、分岐点302において、9ビットの信号線(クリティカルパス100a)と信号線312の結線を工夫することにより、9ビットを7ビットに変換するtruncate変換が実現できる。
図21(a)〜(c)は、truncate変換の第2の実装手法を示す図である。
図21(a)は、図10に示すFI関数300a内に設けられている、クリティカルパス100a上の分岐点302と、その分岐点302に接続されたtruncate変換130Uから構成される部分を示す図である。図21(a)に示す回路は、図21(b)に示す回路で実装できる。この回路では、分岐点302において、クリティカルパス100aから7ビットの信号線312が分岐している。図21(c)は、分岐点302の拡大図である。図21(c)に示すように、クリティカルパス100aを介して分岐点302に入力する9ビット信号(9ビットデータ)の内、下位7ビットの信号は信号線312に入力する。このように、分岐点302において、9ビットの信号線(クリティカルパス100a)と信号線312の結線を工夫することにより、9ビットを7ビットに変換するtruncate変換が実現できる。
[concatenate変換の実装手法]
図22は、concatenate変換の実装手法を示す図である。
図22に示すconcatenate変換器140−1は、2ビットと7ビットの2つのデータを、それぞれ、信号線141−1、141−2から入力する。信号線141−1と信号線141−2は、concatenate変換器140−1内部で9ビットの信号線141−3と結線されている。このため、上記2ビットデータと上記7ビットデータは、上記結線部位で、上記2ビットデータを上位2ビット、上記7ビットデータを下位7ビットとする9ビットデータに変換され、信号線141−3を介して外部に出力される。
図22は、concatenate変換の実装手法を示す図である。
図22に示すconcatenate変換器140−1は、2ビットと7ビットの2つのデータを、それぞれ、信号線141−1、141−2から入力する。信号線141−1と信号線141−2は、concatenate変換器140−1内部で9ビットの信号線141−3と結線されている。このため、上記2ビットデータと上記7ビットデータは、上記結線部位で、上記2ビットデータを上位2ビット、上記7ビットデータを下位7ビットとする9ビットデータに変換され、信号線141−3を介して外部に出力される。
本発明の実施形態によれば、MISTY1のFI関数、またはFI関数及びその直下の排他的論理和の回路構造のクリティカルパス上に存在する排他的論理和の個数を従来よりも削減できる。したがって、本発明の実施形態のFI関数、FI関数及びその直下の排他的論理和の回路構造は、ハードウェア実装した場合、従来のFI関数、FI関数及びその直下の排他的論理和の回路構造よりも高速化が可能である。
例えば、本発明の第1の実施形態のFI関数300aのクリティカルパス100aは、2つの非線形関数S9と2つの排他的論理和を備える。これに対し、従来のFI関数のクリティカルパスは、2つの非線形関数S9と4つの排他的論理和を備える。したがって、両者をハードウェア実装した場合、それぞれのクリティカルパス上に存在する演算器の個数は以下のようになる。
第1の実施形態のFI関数の回路:S9変換器=2個、排他的論理和演算器=2個
従来のFI関数の回路:S9変換器=2個、排他的論理和演算器=4個
ここで、S9変換器1個あたりのゲート遅延をx[s]、排他的論理和演算器1個あたりのゲート遅延をy[s]とする。回路の配線遅延を無視すると、第1の実施形態のFI関数の回路と従来のFI関数の回路の遅延比率Rは、以下のようになる。
従来のFI関数の回路:S9変換器=2個、排他的論理和演算器=4個
ここで、S9変換器1個あたりのゲート遅延をx[s]、排他的論理和演算器1個あたりのゲート遅延をy[s]とする。回路の配線遅延を無視すると、第1の実施形態のFI関数の回路と従来のFI関数の回路の遅延比率Rは、以下のようになる。
つまり、本発明の第1の実施形態のFI関数300aの回路は、従来のFI関数の回路よりも、12.5%の高速化が可能である。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。例えば、上記実施形態は、本発明をMISTY1に適用したものであるが、本発明はMISTY1に限定されるものではない。本発明は、MISTY2、KASUMIなどMISTY構造の暗号アルゴリズムの全てに適用可能である。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。例えば、上記実施形態は、本発明をMISTY1に適用したものであるが、本発明はMISTY1に限定されるものではない。本発明は、MISTY2、KASUMIなどMISTY構造の暗号アルゴリズムの全てに適用可能である。
Claims (9)
- nビットのデータパスとm(m<n)ビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記mビットのデータパスから分岐入力するmビットをzero-extend変換によりnビットに変換する、前記2つのデータパス間を結ぶ経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるnビットとnビットのラウンド鍵KIij2の排他的論理和を演算する、前記2つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、
該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。 - nビットのデータパスとm(m<n)ビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記mビットのデータパスから分岐入力するmビットとnビットのラウンド鍵KIij2の下位mビットの排他的論理和を演算する、前記2つのデータパス間を接続する経路上に設けられた第1の排他的論理和演算器と、
該第1の排他的論理和演算器から出力されるmビットとラウンド鍵KIij2の(n−m)ビットをconcatenate変換により結合してnビットに変換する、前記2つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
前記ラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第2の排他的論理和演算器と、
該第2の排他的論理和演算器から出力されるmビットと前記mビットのデータパスから入力するmビットの排他的論理和を演算する、前記mビットのデータパス上に設けられた第3の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。 - 請求項1又は請求項2に記載のデータ変換関数の処理装置であって、
前記2つのデータパス間を結ぶ経路と前記nビットのデータパスとの接続点には、nビット入出力の非線形変換器Snの直下に配置された排他的論理和演算器が設けられていることを特徴とする。 - 請求項1乃至3のいずれか1項に記載のデータ変換関数の処理装置であって、
前記2つのデータパス間を結ぶ経路と前記mビットのデータパスとの接続点の直下には、mビット入出力の非線形変換器Smが設けられていることを特徴とする。 - nビットのデータパスとm(m<n)ビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第1の(n+m)ビットデータと前記データ変換関数の外部から入力される第2の(n+m)ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記mビットのデータパスから分岐点入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるnビットと前記第2の(n+m)ビットのnビットの排他的論理和を演算する、前前第1の経路上に設けられた第1の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。 - 請求項5記載のデータ変換関数の処理装置であって、
前記第1の経路と前記mビットのデータパスとの接続点の上部には、nビット入出力の非線形変換器Snが設けられていることを特徴とする。 - 請求項5記載のデータ変換関数の処理装置であって、
さらに、
nビットのラウンド鍵KIij2と前記mビットのデータパスから分岐入力するmビットをnビットにzero-extend変換する、前記2つのデータパス間を結ぶ第2の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるnビットとnビットのラウンド鍵KIij2の排他的論理和を演算する、前記2つのデータパス間を結ぶ第2の経路上に設けられた第2の排他的論理和演算器と、
nビットのラウンド鍵KIij2の下位mビットとmビットのラウンド鍵KIij1の排他的論理和を演算する第3の排他的論理和器と、
該第3の排他的論理和演算器から出力されるmビットが入力する、前記mビットのデータパス上に設けられた第4の排他的論理和演算器を、
備えることを特徴とするデータ変換関数の処理装置。 - 請求項7記載のデータ変換関数の処理装置であって、
前記第2の経路と前記nビットのデータパスとの接続点の上部には、nビット入出力の非線形変換器Snが設けられていることを特徴とする。 - nビットのデータパスとm(m<n)ビットのデータパスを有し、各段において該2つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第1の(n+m)ビットデータと前記データ変換関数の外部から入力される第2の(n+m)ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記第2の(n+m)ビットのmビットと前記mビットのデータパスから分岐入力するmビットの排他的論理和を演算する、前記2つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記第1の排他的論理和演算器から出力されるmビットと前記第2の(n+m)ビットの(n−m)ビットをconcatenate変換により結合してnビットに変換し、そのnビットを前記nビットのデータパスに出力するconcatenate変換手段と、
を備えることを特徴とするデータ変換関数の処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/000051 WO2009090688A1 (ja) | 2008-01-18 | 2008-01-18 | データ変換関数の処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009090688A1 JPWO2009090688A1 (ja) | 2011-05-26 |
JP5056860B2 true JP5056860B2 (ja) | 2012-10-24 |
Family
ID=40885101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009549896A Expired - Fee Related JP5056860B2 (ja) | 2008-01-18 | 2008-01-18 | データ変換関数の処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8295479B2 (ja) |
EP (1) | EP2237245B1 (ja) |
JP (1) | JP5056860B2 (ja) |
WO (1) | WO2009090688A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5387295B2 (ja) * | 2009-09-29 | 2014-01-15 | 富士通株式会社 | 暗号装置及び方法 |
JP2013088879A (ja) * | 2011-10-13 | 2013-05-13 | Kyocera Document Solutions Inc | 情報処理装置 |
KR101924067B1 (ko) * | 2016-10-28 | 2019-02-22 | 삼성에스디에스 주식회사 | 암호화 장치 및 방법 |
US10176369B2 (en) * | 2016-11-23 | 2019-01-08 | Xerox Corporation | Method and apparatus for generating a summary document |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240427A (ja) * | 2003-02-05 | 2004-08-26 | Samsung Electronics Co Ltd | 移動通信システムにおける最適の暗号化関数を設計する方法及び最適の暗号化装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3088337B2 (ja) * | 1997-05-30 | 2000-09-18 | 三菱電機株式会社 | 暗号処理装置、icカード及び暗号処理方法 |
US7212631B2 (en) * | 2001-05-31 | 2007-05-01 | Qualcomm Incorporated | Apparatus and method for performing KASUMI ciphering |
JP3503638B1 (ja) * | 2002-09-26 | 2004-03-08 | 日本電気株式会社 | 暗号装置及び暗号プログラム |
US7796752B2 (en) * | 2002-11-04 | 2010-09-14 | Marvell International Ltd. | Cipher implementation |
US7433469B2 (en) * | 2004-04-27 | 2008-10-07 | Intel Corporation | Apparatus and method for implementing the KASUMI ciphering process |
US7760874B2 (en) * | 2004-07-14 | 2010-07-20 | Broadcom Corporation | Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
-
2008
- 2008-01-18 EP EP08702792.6A patent/EP2237245B1/en not_active Not-in-force
- 2008-01-18 WO PCT/JP2008/000051 patent/WO2009090688A1/ja active Application Filing
- 2008-01-18 JP JP2009549896A patent/JP5056860B2/ja not_active Expired - Fee Related
-
2010
- 2010-07-12 US US12/834,247 patent/US8295479B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240427A (ja) * | 2003-02-05 | 2004-08-26 | Samsung Electronics Co Ltd | 移動通信システムにおける最適の暗号化関数を設計する方法及び最適の暗号化装置 |
Also Published As
Publication number | Publication date |
---|---|
US20100278332A1 (en) | 2010-11-04 |
EP2237245B1 (en) | 2017-07-19 |
WO2009090688A1 (ja) | 2009-07-23 |
US8295479B2 (en) | 2012-10-23 |
JPWO2009090688A1 (ja) | 2011-05-26 |
EP2237245A1 (en) | 2010-10-06 |
EP2237245A4 (en) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4127472B2 (ja) | データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP5200949B2 (ja) | 暗号処理装置 | |
JP5056860B2 (ja) | データ変換関数の処理装置 | |
JP5182295B2 (ja) | 暗号化装置及び暗号処理方法 | |
WO2012141189A1 (ja) | 暗号化方法、暗号化装置および暗号化プログラム | |
KR20080072345A (ko) | 암호화 장치 및 그 방법 | |
JP2004004603A (ja) | 拡大鍵生成装置、暗号化装置および暗号化システム | |
JP5338327B2 (ja) | 暗号処理装置 | |
EP1001398B1 (en) | Ciphering apparatus | |
JP2010256749A (ja) | ハッシュ値生成装置、ハッシュ値生成方法およびプログラム | |
JP2002108205A (ja) | ブロック暗号方法及び復号方法 | |
JP3190648B2 (ja) | データ暗号化装置及びその方法 | |
JP2008139742A (ja) | 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
JP2002023623A (ja) | パラメータ決定装置、パラメータ決定方法、暗号化装置、および復号装置 | |
JP3017726B2 (ja) | データ変換装置 | |
JP3017725B2 (ja) | データ変換装置 | |
JP2008107656A (ja) | 暗号化装置及び認証装置 | |
JPH08307411A (ja) | 逐次暗号方式 | |
JP2020134730A (ja) | ブロック暗号装置、ブロック暗号方法およびプログラム | |
KR19990027040A (ko) | 암호화 방법 및 장치 | |
JP2000155525A (ja) | 暗号強度評価装置 | |
JPH0465939A (ja) | 暗号装置 | |
JPH0385835A (ja) | 巡回符号理論を用いた暗号化方式 | |
JP2014197785A (ja) | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120703 |
|
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: 20120716 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |