(57)【要約】  ＭＩＳＴＹ１のＦＩ関数において、ラウンド鍵ＫＩij2を入力する排他的論理和１０２を、第1段のMISTY構造内において９ビットのクリティカルパス１００ａ上に配置された排他的論理和１０１と右系の７ビットのデータパス１１０ａの分岐点３０１に接続されたzero-extend変換１２０Ｕの間に配置する。また、９ビットのラウンド鍵ＫＩij1を７ビットにtruncate変換し、その７ビットとラウンド鍵ＫＩij1の排他的論理和を排他的論理和１１３により演算し、その演算結果を、第２段のMISTY構造内において右系のデータパス１１０ａ上に配置された排他的論理和１１２に入力させる。
2009090688.tif 000002
【特許請求の範囲】
【請求項１】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットをzero-extend変換によりｎビットに変換する、前記２つのデータパス間を結ぶ経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項２】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、
該第１の排他的論理和演算器から出力されるｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項３】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから入力するｍビットとｎビットのラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する第1の排他的論理和演算器と、
該第1の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
前記第1の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する、前記ｍビットのデータパスの前記経路への分岐点の下部に設けられた第２の排他的論理和演算器と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第３の排他的論理和演算器と、
該第３の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項４】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、
該第１の排他的論理和演算器から入力するｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットする、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
ｎビットのラウンド鍵ＫＩij2をｍビットにtruncate変換する第１のtruncate変換手段と、
前記ｎビットのデータパスから分岐入力されるｎビットをｍビットにtruncate変換する、前記２つのデータパス間を接続する第２の経路上に設けられた第２のtruncate変換手段と、
該第２のtruncate変換手段から出力されるｍビットと前記第１のtruncate変換手段から出力されるｍビットの排他的論理和を演算する、前記第２の経路上に設けられた第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力されるｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
該第３の排他的論理和演算器から出力されるｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項５】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、
該第１の排他的論理和演算器から出力されるｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
前記mビットのデータパス上の前記第３の排他的論理和演算器の上部に設けられた分岐点から入力するｍビットと前記第２の排他的論理和演算器から出力されるｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する第２の経路上に設けられた第４の排他的論理和と、
該第４の排他的論理和演算器から出力されるｍビットをｎビットにzero-extend変換する、前記第２の経路上に設けられたzero-extend変換手段と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項６】
請求項１乃至５のいずれか１項に記載のデータ変換関数の処理装置であって、
前記２つのデータパス間を結ぶ経路と前記ｎビットのデータパスとの接続点には、ｎビット入出力の非線形変換器Ｓｎの直下に配置された排他的論理和演算器が設けられていることを特徴とする。
【請求項７】
請求項１乃至５のいずれか１項に記載のデータ変換関数の処理装置であって、
前記２つのデータパス間を結ぶ経路と前記ｍビットのデータパスとの接続点の直下には、ｍビット入出力の非線形変換器Ｓｍが設けられていることを特徴とする。
【請求項８】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットと前記第２の（ｎ＋ｍ）ビットのｎビットの排他的論理和を演算する、前前第1の経路上に設けられた第１の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項９】
請求項８記載のデータ変換関数の処理装置であって、
前記第１の経路と前記ｍビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられていることを特徴とする。
【請求項１０】
請求項８記載のデータ変換関数の処理装置であって、
さらに、
ｎビットのラウンド鍵ＫＩij2と前記ｍビットのデータパスから分岐入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第２の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第２の排他的論理和演算器と、
ｎビットのラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第３の排他的論理和器と、
該第３の排他的論理和演算器から出力されるｍビットが入力する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器を、
備えることを特徴とするデータ変換関数の処理装置。
【請求項１１】
請求項１０記載のデータ変換関数の処理装置であって、
前記第２の経路と前記ｎビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられていることを特徴とする。
【請求項１２】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記第２の（ｎ＋ｍ）ビットのｍビットと前記ｍビットのデータパスから分岐入力するｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記第1の排他的論理和演算器から出力されるｍビットと前記第２の（ｎ＋ｍ）ビットの（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換し、そのｎビットを前記ｎビットのデータパスに出力するconcatenate変換手段と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項１３】
請求項１２記載のデータ変換関数の処理装置であって、
前記分岐入力するｍビットは、前記ｍビットのデータパス上に設けられた、ラウンド鍵ＫＩij1が入力する第２の排他的論理和演算器の出力であることを特徴とする。
【請求項１４】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記第２の（ｎ＋ｍ）ビットの下位ｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第1の排他的論理和演算器と、
前記ｍビットのデータパス上において該第１の排他的論理和演算器の下部に設けられた分岐点から入力するｍビットと前記第２の（ｎ＋ｍ）ビットの上位（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換して、そのｎビットを前記ｎビットのデータパスに出力するconcatenate変換手段と、
前記ｍビットのデータパス上において前記分岐点の下部から入力するｍビットと前記（ｎ＋ｍ）ビットの下位ｍビットの排他的論理和を演算する第２の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項１５】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐点入力するｍビットとｎビットのラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第１の経路上に設けられた第１の排他的論理和演算器と、
該第１の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2第２の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第１の経路上に設けられたconcatenate変換手段と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、  
前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第２の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットと前記第2の（ｎ＋ｍ）ビットの上位ｎビットの排他的論理和を演算する、前記第２の経路上に設けられた第４の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項１６】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第１の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットと前記第2の（ｎ＋ｍ）ビットのｎビットの排他的論理和を演算する、前記第1の経路上に設けられた第１の排他的論理和演算器と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
前記ｍビットのデータパスから分岐点入力するｍビットと前記第２の（ｎ＋ｍ）ビットのｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第４の排他的論理和演算器と、
該第４の排他的論理和演算器から出力されるｍビットと前記第２の（ｎ＋ｍ）ビットの（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第２の経路上に設けられたconcatenate変換手段と、  
を備えることを特徴とするデータ変換関数の処理装置。
【請求項１７】
請求項１６記載のデータ変換関数の処理装置であって、
前記第４の排他的論理和演算器に前記ｍビットのデータパスから入力するｍビットは、前記第３の排他的論理和演算器の出力であることを特徴とする。
【請求項１８】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記２つのデータパス間を結ぶ第１の経路上に設けられた、前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する第１の排他的論理和演算器と、
該第１の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する第1のconcatenate変換手段と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットが入力する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
前記第２の（ｎ＋ｍ）ビットの下位ｍビットと前記ｍビットのデータパスから分岐入力するｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第４の排他的論理和演算器と、
前記第４の排他的論理和演算器から出力されるｍビットと前記第２の（ｎ＋ｍ）ビットの上位（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第２の経路上に設けられた第２のconcatenate変換手段と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項１９】
請求項１８記載のデータ変換関数の処理装置であって、
前記第４の排他的論理和演算器に前記ｍビットのデータパスから分岐入力するｍビットは、前記第３の排他的論理和演算器から出力されることを特徴とするデータ変換関数の処理装置。
【請求項２０】
請求項１９記載のデータ変換関数の処理装置であって、
前記第１及び第２の経路と前記ｎビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられていることを特徴とするデータ変換関数の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通鍵暗号方式の暗号技術に係り、特にMISTY構造のデータ変換関数の処理装置に関する。
【背景技術】
【０００２】
暗号方式は、公開鍵方式と共通鍵方式に大別される。公開鍵方式は、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うために鍵（公開鍵）を一般に公開する代わりに、暗号文を復号するための鍵（秘密鍵）を受信者のみの秘密情報とすることで送信情報の安全性を保つ方式である。これに対し、共通鍵方式は、暗号化と復号で同一の鍵（秘密鍵）を用いる方式であり、秘密鍵を送信者と受信者以外の第三者に分からない情報とすることで、送信情報の安全性保つ方式である。【０００３】
共通鍵方式の暗号（以下、共通鍵暗号と呼ぶ）は、公開鍵方式の暗号（以下、公開鍵暗号と呼ぶ）と比較した場合、処理速度が速くコンパクトに実装できるという利点がある。このため、携帯電話やＩＣカードなどの小型機器に暗号化機能を付加する場合には、共通鍵暗号が利用される。また、処理速度が高速であり、情報をリアルタイムで暗号化／復号化できるので、放送や通信分野における情報通信にも利用されている。【０００４】
共通鍵暗号には、ストリーム暗号とブロック暗号がある。現時点では、安全性の観点から、共通鍵暗号にはブロック暗号が使用されている。ブロック暗号は、平文（暗号化の対象となる文）を一定のビット長のまとまり（これを、ブロックと呼ぶ）に分割し、ブロック単位で暗号化を行う。尚、暗号化の処理単位であるブロックのビット長は“ブロック長”と呼ばれる。【０００５】
共通鍵暗号方式のブロック暗号は、ブロック長に応じて様々なアルゴリズムが知られている。代表的なものとしては、ＤＥＳ、ＡＥＳ、ＳＣ２０００、ＭＩＳＴＹ（ＭＩＳＴＹ１、ＭＩＳＴＹ２）、ＫＡＳＵＭＩなどがある。これらの共通鍵暗号のアルゴリズムは、ソフトウェアもしくはハードウェアにより実装される。【０００６】
図１は、共通鍵暗号方式のデータ変換関数の処理装置の一般的な基本構成を示す図である。
共通鍵暗号方式のデータ変換関数の処理装置１は、拡大鍵生成部１０とラウンド処理部２０から構成される。拡大鍵生成部１０は、入力される秘密鍵（共通鍵）から複数の拡大鍵Ｋ０、Ｋ１、Ｋ２、・・・、Ｋｎ（ｎは自然数）を生成し、これらをラウンド処理部２０に出力する。ラウンド処理部２０は、入力される平文を、拡大鍵生成部１０から入力する上記複数の拡大鍵Ｋ１〜Ｋｎを用いて、暗号文に変換して出力する。【０００７】
ここで、共通鍵暗号の一つであるＭＩＳＴＹ１について説明する。ＭＩＳＴＹ１は、ブロック長６４ビット、鍵長１２８ビットの共通鍵暗号であり、１２８ビットの秘密鍵を用いて、６４ビットの平文を６４ビットの暗号文に変換する。したがって、ＭＩＳＴＹ１のデータ変換関数の処理装置は、拡大鍵生成部１０に１２８ビットの秘密鍵が入力され、ラウンド処理部２０には６４ビットの平文が入力されるように構成される。尚、ＭＩＳＴＹ１の仕様は、例えば、ＩＰＡ（Information-technology Promotion Agency）のホームページ(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/5_02jspec.pdf)に公開されている（非特許文献１参照）。【０００８】
［ＭＩＳＴＹ１の概要］
以下、ＭＩＳＴＹ１のデータ変換関数の処理装置の具体的な実装形態を説明する。
｛ラウンド処理部の構成｝
まず、ラウンド処理部２０の構成から説明する。ＭＩＳＴＹ1では、ラウンド処理の段数は４の倍数と規定されており、８段が推奨されている。したがって、以下の説明では、段数が８段のラウンド処理部２０の構成を説明する。【０００９】
図２Ａ、２Ｂは、ＭＩＳＴＹ１のラウンド処理部の構成図である。図２Ａ、２Ｂは、それぞれ、暗号化用のラウンド処理部、復号用のラウンド処理部の構成を示す。
図２Ａ、２Ｂに示すように、ＭＩＳＴＹ１のラウンド処理部はFeistel構造となっている。ここで、Feistel構造について簡単に説明する。Feistel構造は、入力を左右２つのブロックに分割し、左側のブロック（以後、ブロックＬと呼ぶ）をＦ関数（ＭＩＳＴＹ１の場合はＦＯ関数）に入力し、そのＦ関数の出力と右側のブロック（以後、ブロックＲと呼ぶ）との排他的論理和をとり、その論理演算処理終了後に、ブロックＬとブロックＲの入れ替えを行う構成を持った構造である。尚、Ｆ関数はラウンド関数とも呼ばれる。また、Ｆ関数は広義的には「データ変換関数」である。【００１０】
図２Ａに示すように、ＭＩＳＴＹ１の暗号化用のラウンド処理部２０ａは、ＦＬ関数３０ａ（ＦＬ１〜ＦＬ１０）、ＦＯ関数４０（ＦＯ１〜ＦＯ８）及び排他的論理和５０を構成要素とし、これらの構成要素を組み合わせて構成されている。また、図２Ｂに示すように、復号用のラウンド処理部２０ｂは、暗号化用のラウンド処理部２０ａの各構成要素を上下反転に配置した構成となっており、ＦＬ関数３０ａの代わりに、その逆関数であるＦＬ-1関数３０ｂを配置した構成となっている。ＭＩＳＴＹ1の暗号化用のラウンド処理部２０ａは、６４ビットの平文Ｐを入力し、それを６４ビットの暗号文Ｃに変換して出力する。ＭＩＳＴＹ１の復号用のラウンド処理部２０ｂは、上記６４ビットの暗号文Ｃを入力し、それを６４ビットの平文Ｐに復号して出力する。ＭＩＳＴＹ１の暗号化用のラウンド処理部２０ａと復号用のラウンド処理部２０ｂは、拡大鍵生成部１０によって生成された拡大鍵を用いて、ぞれぞれ、暗号化処理と復号処理を行う。【００１１】
ＭＩＳＴＹ１は、拡大鍵生成処理を実行することで、１２８ビットの秘密鍵Ｋから１２８ビットの拡大鍵Ｋ´を生成する。この拡大鍵Ｋ´は、ＦＯ関数、ＦＬ関数、ＦＬ-1関数及びＦＩ関数で用いられる。尚、拡大鍵の生成処理の詳細については後述する。【００１２】
ＦＯi(i=1〜８)関数の構成を図３に、ＦＩij（i=1〜８、j=1〜８）関数の構成を図４に示す。また、ＦＬi(i=1〜８)関数とＦＬi-1(i=1〜８)関数の構成を、それぞれ、図５Ａ、５Ｂに示す。【００１３】
図３に示すように、ＦＯ関数は、３２ビットのデータを入力し、それを３２ビットのデータに変換して出力するMISTY構造の関数であり、ＦＩ関数と排他的論理和から構成されている。３２ビットの入力データは、１６ビットに２分割されて処理される。ＦＯi関数は、ラウンド鍵ＫＯi1〜ＫＯi4とラウンド鍵ＫＩi1〜ＫＩi3を用いて、ＦＩ関数と排他的論理和によりデータ変換を行う。【００１４】
図４に示すように、ＦＩ関数は、１６ビットのデータを入力し、それを１６ビットのデータに変換して出力するMISTY構造の関数である。ＦＩ関数に入力される１６ビットデータは、左９ビットと右７ビットに分割され、非線形関数（非線形変換）Ｓ７、Ｓ９とzero-extend及びtruncateによって変換される。zero-extendは、７ビットデータに上位２ビット（“００”）を付加して９ビットデータに変換する処理である。truncateは、９ビットデータから上位２ビットを削除して７ビットデータに変換する処理である。ＦＩij関数は、鍵ＫＩij1、ＫＩij2を用いてデータ変換を行う。ＫＩij1はラウンド鍵ＫＩijの左７ビットのデータであり、ＫＩij2はラウンド鍵ＫＩijの右９ビットのデータである。【００１５】
ここで、MISTY構造について説明する。MISTY構造は、ＦＯ関数やＦＩ関数の各段を構成する要素である。図３に示すように、ＦＯ関数におけるMISTY構造は、左系のデータパス上にラウンド鍵ＫＯij(j=1〜3)が入力する第1の排他的論理和、その下部にラウンド鍵ＫＩij(j=1〜3)が入力するＦＩ関数、その下部に第２の排他的論理和を配置し、該第２の排他的論理和により、ＦＩ関数の出力と右系のデータパスから分岐入力するデータの排他的論理和を演算する。そして、その第２の排他的論理和の演算結果を次段の右系のデータパスの入力とする。また、前段の右系のデータパスを流れるデータを次段の左系のデータパスの入力とする。図４に示すように、ＦＩ関数の場合には、上述したＦＯ関数のMISTY構造において、ＦＩ関数を非線形関数Ｓ９またはＳ７に置き換え、その非線形関数の下部に１個または２個の排他的論理和を配置した構成となる。非線形関数Ｓ９またはＳ７の直下に配置された排他的論理和が、ＦＯ関数のMISTY構造における第２の排他的論理和に相当する。尚、以上の説明では、ＦＯ関数とＦＩ関数のMISTY構造を取り上げて、MISTY構造の構成を説明したが、それら以外のデータ変換関数においても、各種形態のMISTY構造がある。【００１６】
図５Ａ、５Ｂに示すように、ＦＬ関数とＦＬ-1関数は、３２ビットのデータを入力し、それを３２ビットのデータに変換して出力する。３２ビットの入力データは、１６ビットに２分割されて処理される。ＦＬ関数は、論理積（ＡＮＤ）と論理和（ＯＲ）によって変換される。ＫＬi1、ＫＬi2は、それぞれ、ラウンド鍵ＫＬiの左から１番目と２番目の１６ビットデータである。ＦＬ-1関数は、ＦＬ関数の各構成要素を上下反転に配置した構成となっている。ＦＬ-1関数は、ＦＬ関数によって変換された３２ビットデータを復号する。
｛拡大鍵生成処理部の構成｝
次に、上記ＦＯ関数、ＦＩ関数、ＦＬ関数及びＦＬ−１関数で用いられるラウンド鍵を生成する拡大鍵生成部１０の構成を説明する。【００１７】
拡大鍵生成部１０は、１２８ビットの秘密鍵Ｋから１２８ビットの拡大鍵Ｋ´を生成する。ここで、秘密鍵Ｋを１６ビット単位で分割し、左からi番目の１６ビットデータをＫｉ（i=1〜8）と定義する。また、拡大鍵Ｋ´を１６ビット単位で分割し、左からi番目の１６ビットデータをＫ´i（i=1〜8）と定義する。尚、Ｋ９＝Ｋ１とする。また、iが８を超える場合には、ＫｉとＫ´iは、それぞれ、Ｋi-8、Ｋ´i-8を意味すると定義する。【００１８】
拡大鍵生成部１０は、ＦＩ関数を用いて、秘密鍵Ｋから拡大鍵Ｋ´を生成する。拡大鍵生成部１０の構成は、上記非特許文献１の図５に開示されている。ラウンド鍵ＫＯi1、ＫＩij、ＫＬijと実際の鍵（秘密鍵Ｋ及び拡大鍵Ｋ´）との関係は、下記の表１に示すようになっている。【００１９】
【表１】
2009090688.tif 000003
上述したように、ＭＩＳＴＹ１はＦＯ関数、ＦＬ関数、ＦＬ-1関数及び排他的論理和から構成される。上述したように、ＦＯ関数は、ＦＩ関数と排他的論理和から構成されている。また、拡大鍵生成部１０において、拡大鍵Ｋ´はＦＩ関数を用いて生成される。したがって、ＦＩ関数の処理時間は、ＭＩＳＴＹ１の全体処理時間（暗号化処理と復号処理に要する時間）の中で大きなウェイトを占める。このため、ＭＩＳＴＹ１のハードウェアの高速実装においては、ＦＩ関数の実装性能がＭＩＳＴＹ１の性能を決定する重要な要素となる。よって、ＭＩＳＴＹ１のハードウェアの高速化には、ＦＩ関数の最適化が求められる。【００２０】
｛従来のＦＩ関数の構成｝
図６は、従来のＦＩ関数の実装方法を示す図である。図６は、図４に示すＭＩＳＴＹ１の仕様書に開示されているＦＩ関数の記述を、論理的に等価な記述に変更したものである。【００２１】
図６に示すように、ＦＩ関数においては、入力する１６ビットデータは、左９ビットと右７ビットに分離される。そして、上記９ビットのデータは左側（左系）のパス１００で、上記７ビットのデータは右側（右系）のパス１１０で処理される。図６において、ＦＩ関数においてクリティカルパスとなる経路（データパス）を太線１００で示している。ここで、クリティカルパスとは、ＦＩ関数において処理時間が最大となる経路（データパス）を意味する。【００２２】
クリティカルパス１００は、２つの非線形関数（非線形変換）Ｓ９と３つの排他的論理和から構成されており、データは全て９ビットで処理される。非線形関数Ｓ９は、９ビット入出力の非線形関数であり、ハードウェア実装は非線形変換テーブルなどによって行われる。この非線形変換テーブルは、例えば、ＲＯＭ(Read Only Memory)などの半導体メモリに実装される。このように、非線形関数Ｓ９の処理は、メモリアクセスを伴うため、排他的論理和の処理に比べて処理時間が長くなる。【００２３】
図７は、図３に示すＦＯ関数の各ラウンドにおける、ＦＩ関数（ＦＩi1〜ＦＩi3）とその直下に位置する排他的論理和６０を含めた構成を示す図である。
図７に示す排他的論理和６０ａ、６０ｂは、図３に示す１６ビットの排他的論理和６０を、９ビットの排他的論理和と７ビットの排他的論理和に分割して示したものである。排他的論理和６０ａが９ビットの排他的論理和、排他的論理和６０ｂが７ビットの排他的論理和である。図７に示すクリティカルパス２００は、２つの非線形関数Ｓ９と４つの排他的論理和を備えており、データは全て９ビットで処理される。また、右系のパス２１０は、１つの非線形関数Ｓ７と３つの排他的論理和を備えており、データは全て７ビットで処理される。【００２４】
ＦＩ関数及びＦＯ関数の処理を高速化するためには、図６、７に示すクリティカルパス１００、２００を短縮すればよい。ここで、「クリティカルパスの短縮」とは、クリティカルパスの構成要素の削減を意味する。しかしながら、ＭＩＳＴＹ１のＦＩ関数においては、１６ビットの入力が９ビットと７ビットという異なるビット数に分割され、それぞれ、左右の２つのパス（データパス）で処理される。このように、ＦＩ関数は、左系と右系のデータパスのビット数が異なるという非均等構造を有するため、等価性を維持しながら論理変換を行うことは容易ではない。したがって、論理変換の困難性が、ＭＩＳＴＹ１のＦＩ関数を高速化する上での障壁となる。
【特許文献１】特開２００４−２４０４２７号公報
【特許文献２】特許３０８８３３７号
【非特許文献１】暗号技術仕様書  ＭＩＳＴＹ１(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/5_02jspec.pdf)
【非特許文献２】松井  充  「ブロック暗号アルゴリズム  ＭＩＳＴＹ」、信学技報、ＩＳＥＣ９６−１１、１９９６−０７
【発明の開示】
【００２５】
本発明の目的は、非均等な構造を有するMISTY構造のデータ変換関数のクリティカルパスを短縮することで、該データ変換関数の処理速度を向上させることである。
本発明の第１のデータ変換関数の処理装置は、ｎビットのデータパスとｍビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行することを前提とする。ここで、ｍ＜ｎである。
【００２６】
第１のデータ変換関数の処理装置の第１の態様は、前記ｍビットのデータパスから分岐入力するｍビットをzero-extend変換によりｎビットに変換する、前記２つのデータパス間を結ぶ経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器とを備える。
【００２７】
第１のデータ変換関数の処理装置の第２の態様は、前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、該第１の排他的論理和演算器から出力されるｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器とを備える。
【００２８】
第１のデータ変換関数の処理装置の第３の態様は、前記ｍビットのデータパスから入力するｍビットとｎビットのラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する第1の排他的論理和演算器と、該第1の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記第1の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する、前記ｍビットのデータパスの前記経路への分岐点の下部に設けられた第２の排他的論理和演算器と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第３の排他的論理和演算器と、該第３の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器とを備える。
【００２９】
第１のデータ変換関数の処理装置の第４の態様は、前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、該第１の排他的論理和演算器から入力するｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットする、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、ｎビットのラウンド鍵ＫＩij2をｍビットにtruncate変換する第１のtruncate変換手段と、前記ｎビットのデータパスから分岐入力されるｎビットをｍビットにtruncate変換する、前記２つのデータパス間を接続する第２の経路上に設けられた第２のtruncate変換手段と、該第２のtruncate変換手段から出力されるｍビットと前記第１のtruncate変換手段から出力されるｍビットの排他的論理和を演算する、前記第２の経路上に設けられた第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力されるｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、該第３の排他的論理和演算器から出力されるｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器とを備える。
【００３０】
第１のデータ変換関数の処理装置の第５の態様は、前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、該第１の排他的論理和演算器から出力されるｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、前記mビットのデータパス上の前記第３の排他的論理和演算器の上部に設けられた分岐点から入力するｍビットと前記第２の排他的論理和演算器から出力されるｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する第２の経路上に設けられた第４の排他的論理和と、該第４の排他的論理和演算器から出力されるｍビットをｎビットにzero-extend変換する、前記第２の経路上に設けられたzero-extend変換手段とを備える。
【００３１】
上記第１のデータ変換関数の処理装置の第１乃至５のいずれかの１つの態様においては、例えば、前記２つのデータパス間を結ぶ経路と前記ｎビットのデータパスとの接続点には、ｎビット入出力の非線形変換器Ｓｎの直下に配置された排他的論理和演算器が設けられている。
【００３２】
上記第１のデータ変換関数の処理装置の第１乃至５のいずれかの１つの態様においては、例えば、前記２つのデータパス間を結ぶ経路と前記ｍビットのデータパスとの接続点の直下には、ｍビット入出力の非線形変換器Ｓｍが設けられている。
【００３３】
本発明の第1のデータ変換関数の処理装置によれば、ｎビットのデータパスとｍビットのデータパスを有する非均等な構造を有するMISTY構造のデータ変換関数の回路構造を、従来はｎビットのデータパス上に配置されていたラウンド鍵ＫＩij2が入力する排他的論理和演算器がｎビットのデータパスから除外された構成に変更する。この変更は、関数全体の論理的な等価性が保証されるように実施される。これにより、上記データ変換関数のクリティカルパス（この場合、ｎビットのデータパス）上に配置される排他的論理和演算器の個数を、従来のデータ変換関数よりも削減できる。したがって、ｎビットのデータパスとｍビットのデータパスを有する非均等な構造を有するMISTY構造のデータ変換関数の処理装置の処理速度を従来よりも高速化できる。
【００３４】
本発明の第２のデータ変換関数の処理装置は、ｎビットのデータパスとｍビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行することを前提とする。ここで、ｍ＜ｎである。
【００３５】
第２のデータ変換関数の処理装置の第１の態様は、前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるｎビットと前記第２の（ｎ＋ｍ）ビットのｎビットの排他的論理和を演算する、前前第1の経路上に設けられた第１の排他的論理和演算器とを備える。
【００３６】
第２のデータ変換関数の処理装置の第１の態様は、例えば、前記第１の経路と前記ｍビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられている。
【００３７】
第２のデータ変換関数の処理装置の第２の態様は、上記第１の態様において、さらに、ｎビットのラウンド鍵ＫＩij2と前記ｍビットのデータパスから分岐入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第２の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第２の排他的論理和演算器と、ｎビットのラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第３の排他的論理和器と、該第３の排他的論理和演算器から出力されるｍビットが入力する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器を備える。
【００３８】
該第２のデータ変換関数の処理装置の第２の態様は、例えば、前記第２の経路と前記ｎビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられている。
【００３９】
第２のデータ変換関数の処理装置の第３の態様は、前記第２の（ｎ＋ｍ）ビットのｍビットと前記ｍビットのデータパスから分岐入力するｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、前記第1の排他的論理和演算器から出力されるｍビットと前記第２の（ｎ＋ｍ）ビットの（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換し、そのｎビットを前記ｎビットのデータパスに出力するconcatenate変換手段とを備える。
【００４０】
上記第２のデータ変換関数の処理装置の第３の態様は、例えば、前記分岐入力するｍビットは、前記ｍビットのデータパス上に設けられた、ラウンド鍵ＫＩij1が入力する第２の排他的論理和演算器の出力である。
【００４１】
第２のデータ変換関数の処理装置の第４の態様は、前記第２の（ｎ＋ｍ）ビットの下位ｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第1の排他的論理和演算器と、前記ｍビットのデータパス上において該第１の排他的論理和演算器の下部に設けられた分岐点から入力するｍビットと前記第２の（ｎ＋ｍ）ビットの上位（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換して、そのｎビットを前記ｎビットのデータパスに出力するconcatenate変換手段と、前記ｍビットのデータパス上において前記分岐点の下部から入力するｍビットと前記（ｎ＋ｍ）ビットの下位ｍビットの排他的論理和を演算する第２の排他的論理和演算器とを備える。
【００４２】
第２のデータ変換関数の処理装置の第５の態様は、前記ｍビットのデータパスから分岐点入力するｍビットとｎビットのラウンド鍵ＫＩij2のｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第１の経路上に設けられた第１の排他的論理和演算器と、該第１の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2第２の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第１の経路上に設けられたconcatenate変換手段と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第２の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるｎビットと前記第2の（ｎ＋ｍ）ビットの上位ｎビットの排他的論理和を演算する、前記第２の経路上に設けられた第４の排他的論理和演算器とを備える。
【００４３】
第２のデータ変換関数の処理装置の第６の態様は、前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第１の経路上に設けられたzero-extend変換手段と、該zero-extend変換手段から出力されるｎビットと前記第2の（ｎ＋ｍ）ビットのｎビットの排他的論理和を演算する、前記第1の経路上に設けられた第１の排他的論理和演算器と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、前記ｍビットのデータパスから分岐点入力するｍビットと前記第２の（ｎ＋ｍ）ビットのｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第４の排他的論理和演算器と、  該第４の排他的論理和演算器から出力されるｍビットと前記第1または第２の（ｎ＋ｍ）ビットの（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第２の経路上に設けられたconcatenate変換手段とを備える。
【００４４】
上記第２のデータ変換関数の処理装置の第６の態様は、例えば、前記第４の排他的論理和演算器に前記ｍビットのデータパスから入力するｍビットは、前記第３の排他的論理和演算器の出力である。
【００４５】
第２のデータ変換関数の処理装置の第７の態様は、前記２つのデータパス間を結ぶ第１の経路上に設けられた、前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する第１の排他的論理和演算器と、該第１の排他的論理和演算器から出力されるｍビットと前記ラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する第1のconcatenate変換手段と、前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、該第２の排他的論理和演算器から出力されるｍビットが入力する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、前記第１または第２の（ｎ＋ｍ）ビットの下位ｍビットと前記ｍビットのデータパスから分岐入力するｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第４の排他的論理和演算器と、前記第４の排他的論理和演算器から出力されるｍビットと前記第１または第２の（ｎ＋ｍ）ビットの上位（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記第２の経路上に設けられた第２のconcatenate変換手段とを備える。
【００４６】
上記第２のデータ変換関数の処理装置の第７の態様は、例えば、前記第４の排他的論理和演算器に前記ｍビットのデータパスから分岐入力するｍビットは、前記第３の排他的論理和演算器から出力される。このような構成において、例えば、前記第１及び第２の経路と前記ｎビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられている。
【００４７】
本発明の第２のデータ変換関数の処理装置によれば、ｎビットのデータパスとｍビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和とから成る処理を実行する装置の回路構造を、従来はｎビットのデータパス上に配置されていた、ラウンド鍵ＫＩij2が入力する排他的論理和演算器と、前記第２の（ｎ＋ｍ）ビットのｎビットが入力する排他的論理和演算器が、ｎビットのデータパスから除外された構成に変更する。この変更は、関数全体の論理的な等価性が保証されるように実施される。これにより、上記データ変換関数の処理と、そのデータ変換関数の（ｎ＋ｍ）ビット出力と外部入力する（ｎ＋ｍ）ビットの排他的論理和を実行するデータ変換関数の処理装置において、その内部のクリティカルパス（この場合、ｎビットのデータパス）上に配置される排他的論理和演算器の個数を、従来のデータ変換関数の処理装置よりも削減できる。したがって、ｎビットのデータパスとｍビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和の処理を実行する、データ変換関数の処理装置の処理速度を従来よりも高速化することができる。
【００４８】
尚、MISTY構造はFeistel構造の一種である。
【図面の簡単な説明】
【００４９】
【図１】共通鍵方式のデータ変換関数の処理装置の一般的な基本構成を示す図である。
【図２Ａ】ＭＩＳＴＹ１の暗号化用のラウンド処理部の構成を示す図である。
【図２Ｂ】ＭＩＳＴＹ１の復号用のラウンド処理部の構成を示す図である。
【図３】ＦＯ関数の構成を示す図である。
【図４】ＦＩ関数の構成を示す図である。
【図５Ａ】ＦＬ関数の構成を示す図である。
【図５Ｂ】ＦＬ-1関数の構成を示す図である。
【図６】従来のＦＩ関数の実装方法を示す図である。
【図７】ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成におけるクリティカルパスを示す図である。
【図８Ａ】ＦＩ関数のみに着目したクリティカルパスの短縮手法を説明する図（その１）である。
【図８Ｂ】ＦＩ関数のみに着目したクリティカルパスの短縮手法を説明する図（その２）である。
【図９Ａ】ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成のクリティカルパスの短縮手法を説明する図（その１）である。
【図９Ｂ】ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成のクリティカルパスの短縮手法を説明する図（その２）である。
【図１０】本発明の第１の実施形態のＦＩ関数の回路構造を示す図である。
【図１１】本発明の第２実施形態であるＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。
【図１２】本発明の第３実施形態であるＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。
【図１３Ａ】本発明の第４の実施形態であるＦＩ関数の回路構成を示す図である。
【図１３Ｂ】上記第４の実施形態のＦＩ関数の第１の変形例を示す図である。
【図１３Ｃ】上記第４の実施形態のＦＩ関数の第２の変形例を示す図である。
【図１３Ｄ】上記第４の実施形態のＦＩ関数の第３の変形例を示す図である。
【図１４】本発明の第５の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。
【図１５Ａ】本発明の第６の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。
【図１５Ｂ】上記第６の実施形態のＦＩ関数及びその直下の排他的論理和の回路構造の変形例を示す図である。
【図１６】本発明の第７の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。
【図１７】本発明の第８の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である
【図１８】zero-extend変換の第１の実装手法を示す図である。
【図１９】zero-extend変換の第２の実装手法を示す図である。
【図２０】truncate変換の第１の実装手法を示す図である。
【図２１】truncate変換の第２の実装手法を示す図である。
【図２２】concatenate変換の実装手法を示す図である。
【発明を実施するための最良の形態】
【００５０】
以下、図面を参照しながら本発明の実施形態について説明する。尚、以下に述べる実施形態は、主に、本発明をＭＩＳＴＹ１のＦＩ関数に適用した例であるが、本発明はＦＩ関数に限定されるものではなく、ＦＩ関数以外のMISTY構造を有するＦ関数にも適用可能である。また、ブロック長も６４ビットに限定されるものではない。また、秘密鍵や拡大鍵のビット長も本実施形態に限定されるものではない。【００５１】
尚、以下の説明では、本発明の実施形態の構成要素を、「排他的論理和」、「非線形関数Ｓ９」、「非線形関数Ｓ７」という用語を用いて説明するが、これらの用語は「排他的論理和」や「非線形関数」という演算や関数を意味すると共に、それらの機能を実現するハードウェアである「排他的論理和演算器」や「非線形変換器」も意味するものとする。したがって、以下に述べる実施形態は、ＦＩ関数及びＦＯ関数関連処理回路の処理アルゴリズムを示すと同時に、それらのハードウェア（処理装置）も示すものである。【００５２】
［ＦＩ関数のみに着目したクリティカルパスの短縮手法］
まず、ＦＩ関数のみに着目したクリティカルパスの短縮手法を説明する。
図８Ａ、８Ｂは、ＦＩ関数のみに着目したクリティカルパスの短縮手法を説明する図である。図８Ａは図６と同様な図であり、従来のＦＩ関数の構成を示す図である。【００５３】
本手法においては、まず、図８Ａに示すＦＩ関数において、そのクリティカルパス１００上の２番目の非線形関数Ｓ９の直前に位置する排他的論理和１０２を、図８Ｂに示すように、最初のzero-extend変換１２０Ｕの直後（出力先）に移動する。この操作により、クリティカルパス１００上の排他的論理和の個数が１つ減少する。上記移動した排他的論理和１０２にはラウンド鍵ＫＩij2が入力しており、位置が移動したことにより、排他的論理和１０２の出力は、排他的論理和１０１とtruncate変換１３０Ｕを経由して右系のパス１１０ａに配置された排他的論理和１１１に入力する。図８Ａに示すように、移動前の排他的論理和１０２の出力は、右系のパス１１０には入力していない。したがって、ＦＩ関数全体における論理の等価性を保証する操作が必要となる。【００５４】
この操作は、図８Ｂに示すように、パス１１０ａ上において排他的論理和１１１の直下に位置し、排他的論理和１１１の出力が入力する排他的論理和１１２のもう一方の入力を変更することによって行う。図８Ａに示すように、排他的論理和１０２を移動する前には、排他的論理和１１２には、排他的論理和１１１の出力とラウンド鍵ＫＩij1が入力していた。そこで、図８Ｂに示すように、ラウンド鍵ＫＩij1の入力を、ラウンド鍵ＫＩij1とラウンド鍵ＫＩij2の排他的論理和の演算結果の入力に変更する。この場合、ラウンド鍵ＫＩij2は９ビットであるため、truncate変換１３０Ｄによりラウンド鍵ＫＩij2の上位２ビットを切り捨て、ラウンド鍵ＫＩij2の下位７ビットを排他的論理和１１３に入力させる。排他的論理和１１３は、ラウンド鍵ＫＩij2の下位７ビットとラウンド鍵ＫＩij1の排他的論理和を演算し、その演算結果を排他的論理和１１２に出力する。この結果、排他的論理和１１２は、排他的論理和１１１の出力とラウンド鍵ＫＩij1の排他的論理和を演算することになるので、ＦＩ関数全体の論理等価性は保証される。尚、ラウンド鍵ＫＩij2の下位７ビットとラウンド鍵ＫＩij1の排他的論理和の演算結果を排他的論理和１１３から入力する上記排他的論理和１１２の配置位置は、図８Ｂに示す位置ではなく、データパス１１０ａ上の非線形関数Ｓ７と排他的論理和１１１の間であってもよい。この場合も、ＦＩ関数全体の論理等価性は保証される。【００５５】
上述したように、ＦＩ関数は非均等な構造を有するため、論理の等価性を保ちながら回路構成を変更することは容易ではない。しかし、本手法では、ラウンド鍵ＫＩij2の上位２ビットを切り捨てた値を用いることで、ビット数が異なるパス１１０ａに対しても、ラウンド鍵ＫＩij2の排他的論理和演算が可能となる。この場合、上位２ビットを切り捨てても、論理の等価性が崩れることはない。以後、上述した排他的論理和１０２の移動操作を「変形１」と呼ぶことにする。また、この変形１を、ラウンド鍵ＫＩij2が入力する排他的論理和１０２をzero-extend変換１２０Ｕの出力先に移動する操作（以後、「変形１Ａ」と呼ぶ）と、排他的論理和１１２に入力する７ビットデータを生成する回路（truncate変換１３０Ｄと排他的論理和１１３から構成される回路）を追加する操作（以後、「変形１Ｂ」と呼ぶ）の２つの操作に分割する。【００５６】
［ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成に着目したクリティカルパスの短縮手法］
次に、ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成に着目したクリティカルパスの短縮手法について説明する。【００５７】
図９Ａ、９Ｂは、ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成のクリティカルパスの短縮手法を説明する図である。図９Ａは、上述した図７と同様な図であり、従来のＦＩ関数の回路構造を示す図である。【００５８】
本手法では、図９Ａに示すＦＩ関数のクリティカルパス２００上に存在するＦＩ関数の直下に位置する排他的論理和６０ａを、図９Ｂに示すように、ＦＩ関数のパス２１０ａとクリティカルパス２００ａを接続する経路に存在するzero-extend変換１２０Ｄの出力先の位置に移動する。より詳細に説明すると、排他的論理和６０ａを、上記zero-extend変換１２０Ｄとクリティカルパス２００ａ上において２番目の非線形関数Ｓ９の直下に位置する排他的論理和１０３との間に挿入する。この操作により、クリティカルパス２００上の排他的論理和の個数が１つ減少するので、クリティカルパス２００の短縮が実現される。排他的論理和６０ａの出力はクリティカルパス２００ａに入力する。排他的論理和６０ａは、元々、クリティカルパス２００ａ上に配置されており、排他的論理和の処理順所を変更しても全体的な論理結果は変わらないので、上記位置に排他的論理和６０ａを移動しても、ＦＩ関数全体の論理の等価性は保証される。以後、上記のような排他的論理和の移動操作を「変形２」と呼ぶことにする。【００５９】
以下に述べる本発明の実施形態は、上記変形１、２を基本として、「ＦＩ関数のクリティカルパス」及び「ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成のクリティカルパス」の短縮を実現する手法である。【００６０】
［第１の実施形態］
図１０は、本発明の第１の実施形態であるＦＩ関数の回路構造を示す図である。
図１０に示すＦＩ関数３００ａの回路は、図６に示す従来のＦＩ関数の回路に上記変形１の操作を施すことにより得られる。【００６１】
ＦＩ関数３００ａの回路構造を詳細に説明する。
ＦＩ関数３００ａのクリティカルパス１００ａは、２つの非線形関数Ｓ９と２つの排他的論理和から構成されている。ＦＩ関数３００ａに入力される１６ビットデータは、９ビットと７ビットに分離され、９ビットがクリティカルパス１００ａに入力され、７ビットが右系のパス１１０ａに入力される。クリティカルパス１００ａは、先頭から順に、第１の非線形関数Ｓ９、排他的論理和１０１、第２の非線形関数Ｓ９、排他的論理和１０３が配置された構成となっている。パス１１０ａは、先頭から順に、非線形関数Ｓ７、排他的論理和１１１、排他的論理和１１２が配置された構成となっている。クリティカルパス１００ａとパス１１０ａは終端で合流されており、その合流点３１１でクリティカルパス１００ａから出力される９ビットとパス１１０ａから出力される７ビットが合成されて１６ビットデータとなる。この合成において、クリティカルパス１００ａの出力が下位ビット、パス１１０ａの出力が上位ビットとなる。【００６２】
パス１１０ａには、２つの分岐点３０１、３０３が設けられている。クリティカルパス１００ａには１つの分岐点３０２が設けられている。パス１１０ａの分岐点３０１は、非線形関数Ｓ７の上部に設けられている。パス１１０ａに入力される７ビットデータは、分岐点３０１を介してzero-extend変換１２０Ｕ（第１のzero-extend変換）に入力する。Zero-extend変換１２０Ｕは、その７ビットデータを９ビットデータに変換して排他的論理和１０２に出力する。この排他的論理和１０２は、クリティカルパス１００ａ上に配置された排他的論理和１０１とzero-extend変換１２０Ｕとの間に設けられている。排他的論理和１０２は、zero-extend変換１２０Ｕから入力する９ビットデータとラウンド鍵ＫＩij2の排他的論理和を演算し、その演算結果を排他的論理和１０１に出力する。このように、zero-extend変換１２０Ｕと排他的論理和１０２は、パス１１０ａとクリティカルパス１００ａを接続する経路上に設けられている。【００６３】
クリティカルパス１００ａの分岐点３０２は、上記排他的論理和１０１の直下に設けられており、分岐点３０２を介して排他的論理和１０１の出力（９ビットデータ）がtruncate変換１３０Ｕに入力する。truncate変換１３０Ｕは、排他的論理和１０１から出力される９ビットデータからその上位２ビットを切り捨て、排他的論理和１０１の出力を７ビットデータに変換する。そして、その７ビットデータを、パス１１０ａ上に設けられた排他的論理和１１１に出力する。このように、truncate変換１３０Ｕは、クリティカルパス１００ａとパス１１０ａを接続する経路上に設けられている。【００６４】
上記排他的論理和１１１は、非線形関数Ｓ７の直下に設けられており、排他的論理和１１１の出力と非線形関数Ｓ７の出力の排他的論理和を演算する。排他的論理和１１１の出力は、パス１１０ａ上の排他的論理和１１２に入力する。排他的論理和１１２は、排他的論理和１１１の出力と排他的論理和１１３の出力の排他的論理和を演算する。排他的論理和１１３は、パス１１０ａの外部に設けられている。排他的論理和１１３は、ラウンド鍵ＫＩij1とtruncate変換１３０Ｄの出力の排他的論理和を演算する。Truncate変換１３０Ｄは、パス１１０ａの外部に設けられており、９ビットのラウンド鍵ＫＩij2を、その上位２ビットを切り捨てることにより、７ビットデータに変換する。そして、その７ビットデータを排他的論理和１１３に出力する。【００６５】
排他的論理和１１２の出力は、パス１１０ａ上に設けられた分岐点３０３を介して、パス１１０ａとクリティカルパス１００ａを接続する経路上に設けられたzero-extend変換１２０Ｄに入力する。Zero-extend変換１２０Ｄは、排他的論理和１１２の出力する７ビットデータを９ビットデータに変換し、その９ビットデータをクリティカルパス１００ａ上に設けられた排他的論理和１０３に出力する。排他的論理和１０３は、排他的論理和１０１の出力データを非線形変換する非線形関数Ｓ９（第２の非線形関数Ｓ９）の直下に設けられている。排他的論理和１０３は、非線形関数Ｓ９の出力とzero-extend変換１２０Ｄの出力の排他的論理和を演算し、その演算結果（９ビットデータ）を上記合流点３１１に出力する。この合流点３１１には、パス１１０ａ上の排他的論理和１１２の出力（７ビットデータ）も入力する。【００６６】
ＦＩ関数３００ａのクリティカルパス２００ａは、２つの非線形関数Ｓ９と２つの排他的論理和１０１、１０３から構成されており、図７に示す従来のＦＩ関数のクリティカルパス２００よりも排他的論理和の個数が２つ少ない。したがって、本実施形態のＦＩ関数３００ａは従来のＦＩ関数よりも処理が速い。【００６７】
［第２の実施形態］
図１１は、本発明の第２実施形態である、「ＦＯ関数における、ＦＩ関数とその直下に位置する排他的論理和を含めた構成の回路構造」（以後、「ＦＩ関数及びその直下の排他的論理和の回路構造」と呼ぶ）の構成を示す図である。図１１において、図１０と同じ構成要素には同じ符号を付与している。【００６８】
図１１に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ａは、図７に示す従来のＦＩ関数及びその直下の排他的論理和の回路構造に上記変形２を施すことにより得られる。【００６９】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ａは、上記ＦＩ関数３００ａの下部に９ビットのクリティカルパス２０１ａと７ビットのパス２１１ａを付加した構成となっている。ＦＩ関数及びその直下の排他的論理和の回路構造４００ａのクリティカルパス２００ａは、ＦＩ関数３００ａのクリティカルパス１００ａに上記クリティカルパス２０１ａを付加した構成となっている。ＦＩ関数及びその直下の排他的論理和の回路構造４００ａのパス２１０ａは、ＦＩ関数３００ａのパス１１０ａに上記データパス２１１ａを付加した構成となっている。ＦＩ関数及びその直下の排他的論理和の回路構造４００ａの構成を説明する。以下の説明では、重複説明を避けるために、ＦＩ関数３００ａと異なる構成を中心に述べる。【００７０】
クリティカルパス２００ａ上の排他的論理和１０１とパス２１０ａの分岐点３０１の間を接続する経路には、zero-extend変換１２０Ｕのみが設けられている。パス２１０ａ上に設けられた排他的論理和１１２にはラウンド鍵ＫＩij1が直接入力している。また、クリティカルパス２００ａ上に設けられた排他的論理和１０３とパス２１０ａの分岐点３０３を接続する経路には、zero-extend変換１２０Ｄに加え、排他的論理和６０ａが設けられている。パス２１０ａの分岐点３０３から出力される７ビットデータはzero-extend変換１２０Ｄにより９ビットデータに変換された後、排他的論理和６０ａに入力する。排他的論理和６０ａは、zero-extend変換１２０Ｄから入力する９ビットデータと、ＦＯ関数に入力される３２ビットデータの右系の１６ビットまたは前段のＦＩ関数の左系のデータパスから出力される１６ビットの下位９ビット１９１（以後、９ビットデータ１９１と呼ぶ）の排他的論理和を演算し、その演算結果をクリティカルパス２００ａ上に配置された排他的論理和１０３に出力する。パス２１１ａ上には、上記１６ビットの上位７ビットとＦＩ関数３００ａのパス１１０ａ上に配置された排他的論理和１１２から出力される７ビットデータを排他的論理和演算する排他的論理和１１３が設けられている。【００７１】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ａのクリティカルパス２００ａは、２つの非線形関数Ｓ９と３つの排他的論理和１０１〜１０３から構成されており、図７に示す従来のＦＩ関数及びその直下の排他的論理和の回路構造のクリティカルパス２００よりも排他的論理和の個数が１つ少ない。したがって、本実施形態のＦＩ関数及びその直下の排他的論理和の回路構造４００ａは、従来のＦＩ関数及びその直下の排他的論理和の回路構造よりも処理が速い。【００７２】
［第３の実施形態］
図１２は、本発明の第３の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。図１２において、図１０及び図１１に示す構成要素と同じ構成要素には同じ符号を付与している。【００７３】
図１２に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｂは、図７に示す従来のＦＩ関数及びその直下の排他的論理和の回路構造に上記変形１と変形２を施すことにより得られる。【００７４】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂは、図１１に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ａに上記変形１を加えた構成となっている。  ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂは、左系のデータパス２００ｂと右系データパス２１０ｂを備え、データパス２００ｂがクリティカルパスとなっている。ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂにおいては、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａのクリティカルパス２００ａ上に存在していた排他的論理和１０２を、上記変形１により、クリティカルパス２００ｂ上の排他的論理和１０１とパス２１０ｂ上の分岐点３０１を結ぶ経路上に移動させている。具体的には、zero-extend変換１２０Ｕと排他的論理和１０１の間に排他的論理和１０２を配置している。この配置に伴い、回路全体での論理等価性を保つために、パス２１０ｂ上に配置された排他的論理和１１２の一方の入力を、ラウンド鍵ＫＩij1から排他的論理和１１３の出力に変更している。【００７５】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂのクリティカルパス２００ｂは、２つの非線形関数Ｓ９と２つの排他的論理和１０１、１０３から構成されている。したがって、本実施形態のＦＩ関数及びその直下の排他的論理和の回路構造４００ｂのクリティカルパス２００ｂは、上述した第２の実施形態のＦＩ関数及びその直下の排他的論理和の回路構造４００ａのクリティカルパス２００ａよりも排他的論理和の個数が１つ少なくなっている。したがって、本実施形態のＦＩ関数及びその直下の排他的論理和の回路構造４００ｂは、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａよりも処理が高速である。【００７６】
［第４の実施形態］
図１３Ａは、本発明の第４の実施形態であるＦＩ関数の回路構成を示す図である。図１３において、図１０に示すＦＩ関数３００ａの回路が備える構成要素と同一の構成要素には同じ符号を付与している。【００７７】
図１３Ａに示すＦＩ関数３００ｂ１は、ＦＩ関数３００ａの上部に配置されたzero-extend変換１２０Ｕをconcatenate変換に置換したものである。したがって、右系のパス（データパス）と左系のパス（データパス）は、ＦＩ関数３００ａと同様である。  concatenate変換は、２入力（２ビット、７ビット）に対して、７ビット入力の上位に２ビット入力をビット結合する処理を行い、該ビット結合により得られた９ビットを出力する処理である。ＦＩ関数３００ｂ１においては、ＦＩ関数３００ａが備えるzero-extend変換１２０Ｕとその出力先である排他的論理和１０２を、concatenate変換１４０Ｕと排他的論理和１５１Ｕに置換している。【００７８】
図１３Ａにおいて破線の矩形枠３１０Ｕで囲まれた回路（以後、置換回路３１０Ｕと呼ぶ）がzero-extend変換１２０Ｕの置換回路である。この置換回路３１０Ｕの構成を詳細に説明する。【００７９】
置換回路３１０Ｕは、concatenate変換１４０Ｕと排他的論理和１５１Ｕを備えている。排他的論理和１５１Ｕは、パス１１０ａの分岐点３０１から７ビット（ＦＩ関数３００ｂ１の１６ビット入力データの７ビット）を入力するとともに、ラウンド鍵ＫＩij2の下位７ビットを入力し、それら２つの入力ビットの排他的論理和を演算する。排他的論理和１５１Ｕは、その論理演算結果をconcatenate変換１４０Ｕに出力する。concatenate変換１４０Ｕは、ラウンド鍵ＫＩij2の上位２ビットも入力する。concatenate変換１４０Ｕは、排他的論理和１５１Ｕから入力する７ビットとラウンド鍵ＫＩij2の上位２ビットをビット結合し、そのビット結合処理により得られた９ビットをクリティカルパス２００ａ上に配置された排他的論理和１０１に出力する。【００８０】
ＦＩ関数３００ｂ１は、ＦＩ関数３００ａが備える９ビットの排他的論理和演算を行う排他的論理和１０２を、７ビットの排他的論理和演算を行う排他的論理和１５１Ｕに置換している。このため、ＦＩ関数３００ｂ１は、排他的論理和演算に要する回路規模を、ＦＩ関数３００ａよりも小さくできる。したがって、回路全体の規模もＦＩ関数３００ａよりも小さくすることが可能である。【００８１】
｛第４の実施形態の第1の変形例｝
図１３Ｂは、上述したＦＩ関数３００ｂ１の第1の変形例を示す図である。図１３Ｂにおいて、図１３Ａに示すＦＩ関数３００ｂ１が備える構成要素と同一の構成要素には同じ符号を付与している。【００８２】
図１３Ｂに示すＦＩ関数３００ｂ２は、ＦＩ関数３００ｂ１の置換回路３１０Ｕを、図１３Ｂにおいて破線の矩形枠で囲まれた置換回路３２０Ｕに変形したものである。置換回路３２０Ｕは、置換回路３１０Ｕ内の排他的論理和１５１Ｕを、２つの排他的論理和１５１Ｕ１、１５１Ｕ２に置き換えた構成となっている。排他的論理和１５１Ｕ１は、パス１１０ａ上の分岐点３０１の直前に配置されており、ＦＩ関数３００ｂ２の１６ビット入力データの右７ビットとラウンド鍵ＫＩij2の下位７ビットを入力する。排他的論理和１５１Ｕ２は、パス１１０ａの分岐点３０１の直後に設けられており、排他的論理和１５１Ｕ１の論理演算結果とラウンド鍵ＫＩij2の下位７ビットを入力する。排他的論理和１５１Ｕ２の論理演算結果はパス１１０ａ上に配置された非線形関数Ｓ７に出力される。【００８３】
｛第４の実施形態の第２の変形例｝
図１３Ｃは、上述したＦＩ関数３００ｂ１の第２の変形例を示す図である。図１３Ｃにおいて、図１３Ａに示すＦＩ関数３００ｂ１が備える構成要素と同一の構成要素には同じ符号を付与している。【００８４】
図１３Ｃに示すＦＩ関数３００ｂ３は、図１３Ａに示すＦＩ関数３００ｂ１の矩形枠４０１で囲まれた部分回路（以後、置換回路４０１と呼ぶ）を、矩形枠４０１ａで囲まれた回路（以後、置換回路４０１ａと呼ぶ）と矩形枠４０１ｂで囲まれた回路（以後、置換回路４０１ｂと呼ぶ）に置換したものである。【００８５】
置換回路４０１ａは、ラウンド鍵ＫＩij1が入力する排他的論理和１１２をパス１１０ａ上に配置した回路であり、図８Ａに示す従来のＦI関数が備える回路と同様の回路である。置換回路４０１ｂは、truncate変換１３０ａと排他的論理和４１１を備えている。排他的論理和４１１は、パス１１０ａ上に配置された排他的論理和１１１とクリティカルパス２００ａ上の分岐点３０２から９ビットを入力するtruncate変換１３０Ｄの間に設けられており、truncate変換１３０Ｄから出力される７ビットを入力する。truncate変換１３０ａは９ビットのラウンド鍵ＫＩij2を７ビットに変換し、その７ビットを排他的論理和４１１に出力する。排他的論理和４１１は、truncate変換１３０Ｄから入力する７ビットとtruncate変換１３０ａから入力する７ビットの排他的論理和を演算し、その演算結果を排他的論理和１１１に出力する。【００８６】
｛第４の実施形態の第３の変形例｝
図１３Ｄは、上記ＦＩ関数３００ｂ１の第３の変形例を示す図である。図１３Ｄにおいて、図１３Ａに示すＦＩ関数３００ｂ１が備える構成要素と同一の構成要素には同じ符号を付与している。【００８７】
図１３Ｄに示すＦＩ関数３００ｂ４は、図１３Ａに示すＦＩ関数３００ｂ１の矩形枠４０１で囲まれた部分回路（以後、置換回路４０１と呼ぶ）を、矩形枠４０２で囲まれた回路（以後、置換回路４０２と呼ぶ）に置換したものである。ＦＩ関数３００ｂ４の左系のパス１００ｂはＦＩ関数３００ｂ１と同様であるが、右系のパス１１０ｂの構成はＦＩ関数３００ｂ１と若干異なっている。具体的には、排他的論理和１１２の右系のパス上での配置位置が異なっている。ＦＩ関数３００ｂ４においては、排他的論理和１１２はパス１１０ｂの分岐点３０３の直下に配置されている。【００８８】
置換回路４０２は、truncate変換１３０Ｄと３つの排他的論理和１１２、１１３、４１１を備えている。truncate変換１３０Ｄと２つの排他的論理和１１２、１１３は、ＦＩ関数３００ｂ１と同様な配置構成となっている。排他的論理和４１３は、パス１１０ｂの分岐点３０３とzero-extend変換１２０Ｄとの間に設けられている。排他的論理和４１３は、分岐点３０３から入力する７ビットと排他的論理和１１１から入力する７ビットの排他的論理和を演算し、その演算結果をzero-extend変換１２０Ｄに出力する。【００８９】
［第５の実施形態］
図１４は、本発明の第５の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。図１４において、図１２に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｂが備える構成要素と同じ構成要素には同一の符号を付与している。【００９０】
図１４に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｃは、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂの上部に設けられたzero-extend変換１２０Ｕをconcatenate変換に置換したものである。ＦＩ関数及びその直下の排他的論理和の回路構造４００ｃにおいては、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂ１が備えるzero-extend変換１２０Ｕと排他的論理和１０２を、concatenate変換１４０Ｕと排他的論理和１５１Ｕに置換している。【００９１】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ｃは、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂが備える９ビットの排他的論理和演算を行う排他的論理和１０２を、７ビットの排他的論理和演算を行う排他的論理和１５１Ｕに置換している。このため、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｃは、排他的論理和演算に要する回路規模を、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂよりも小さくできる。【００９２】
［第６の実施形態］
図１５Ａは、本発明の第６の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。図１５Ａにおいて、図１１に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ａが備える構成要素と同じ構成要素には同一の符号を付与している。【００９３】
図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ1は、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａの下部に設けられたzero-extend変換１２０Ｄをconcatenate変換に置換したものである。ＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ1においては、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａが備えるzero-extend変換１２０Ｄと排他的論理和６０ａを、concatenate変換１４０Ｄと排他的論理和１５１Ｄに置換している。【００９４】
図１５Ａにおいて矩形枠５０１で囲んで示す部分回路（以後、置換回路５０１と呼ぶ）がＦＩ関数及びその直下の排他的論理和の回路構造４００ａが上記置換が行われた回路である。【００９５】
置換回路５０１は、パス２１０ａの分岐点３０３とクリティカルパス２００ａ上に設けられた排他的論理和１０３間に、排他的論理和１５１Ｄとconcatenate変換１４０Ｄを配置した構成となっている。排他的論理和１５１Ｄは、パス２１０ａの分岐点３０３から７ビット（排他的論理和１１２の出力データの７ビット）を入力すると共に、排他的論理和６０ａに入力する上記９ビットデータ１９１の下位７ビットを入力する。排他的論理和１５１Ｄは、それら２つの７ビットの排他的論理和を演算し、その演算結果をconcatenate変換１４０Ｄに出力する。concatenate変換１４０Ｄは、排他的論理和１５１Ｄから入力する７ビットと上記９ビットデータ１９１の上位２ビットをビット結合し、その結合結果をクリティカルパス２００ａ上に配置された排他的論理和１０３に出力する。【００９６】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ1は、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａが備える９ビットの排他的論理和演算を行う排他的論理和６０ａを、７ビットの排他的論理和演算を行う排他的論理和１５１Ｄに置換している。このため、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｃは、排他的論理和演算に要する回路規模を、ＦＩ関数及びその直下の排他的論理和の回路構造４００ａよりも小さくできる。【００９７】
｛第６の実施形態の変形例｝
図１５Ｂは、上記ＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１の変形例を示す図である。図１５Ｂにおいて、図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１が備える構成要素と同じ構成要素には同一の符号を付与している。【００９８】
図１５Ｂに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ２は、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１が備える排他的論理和１５１Ｄを、２つの排他的論理和６０１、６０２に置換した構成となっている。排他的論理和６０１は、パス２１０ａ上において、排他的論理和１１１と排他的論理和１１２の間に設けられている。排他的論理和６０１は、排他的論理和１１１の出力と上記９ビットデータ１９１の下位７ビットを入力し、それら２つの７ビットの排他的論理和を演算する。そして、その論理演算結果を排他的論理和１１２に出力する。排他的論理和６０２は、パス２１０ａの分岐点３０３の直下に設けられている。排他的論理和６０２は、排他的論理和１１２の出力と上記９ビットデータの下位７ビットを入力し、それら２つの７ビットの排他的論理和を演算し、その演算結果をパス１１０ａ上に出力する。【００９９】
［第７の実施形態］
図１６は、本発明の第７の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。図１６において、図１２に示すＦＩ関数及びその直下の排他的論理和の回路構造及び図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１が備える構成要素と同じ構成要素には同一の符号を付与している。【０１００】
図１６に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｅは、図１２に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｂにおいて、その下部のzero-extend変換１２０Ｄと排他的論理和６０ａを、図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１と同様な手法により、concatenate変換１４０Ｄと排他的論理和１５１Ｄに置換したものである。concatenate変換１４０ＤＦＩ関数及びその直下の排他的論理和の回路構造４００ｅが備える排他的論理和１５１Ｄは、７ビットの排他的論理和を演算するので、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂが備える排他的論理和６０ａよりも回路規模が小さい。したがって、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｅは、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｂよりも回路規模を小さくすることができる。【０１０１】
［第８の実施形態］
図１７は、本発明の第８の実施形態である、ＦＩ関数及びその直下の排他的論理和の回路構造の構成を示す図である。図１７において、図１４Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｃ及び図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ１が備える構成要素と同一の構成要素には同じ符号を付与している。【０１０２】
図１７に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｆは、ＦＩ関数及びその直下の排他的論理和の回路構造４００ｃの下部に設けられたzero-extend変換１２０Ｄと排他的論理和６０ａを、図１５Ａに示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｄ1と同様な手法により、concatenate変換１４０Ｄと排他的論理和１５１Ｄに置換したものである。【０１０３】
ＦＩ関数及びその直下の排他的論理和の回路構造４００ｆは、図１４Ａ乃至図１６に示すＦＩ関数及びその直下の排他的論理和の回路構造４００ｃ、４００ｄ1、４００ｅよりも、回路規模を小さくできる。【０１０４】
［zero-extend変換の実装手法］
｛第１の実装手法｝
図１８は、zero-extend変換の第１の実装手法を示す図である。【０１０５】
図１８に示すzero-extend変換器１２０−１は、信号線１２１−１から７ビットデータを入力する。信号線１２１−１は、２ビット“００”が入力する信号線１２１−２と結線されており、その結線部分において、信号線１２１−１から入力する７ビットデータと信号線１２１−１から入力する２ビット“００”が結合される。このとき、７ビットデータが下位、２ビット“００”が上位となる９ビットデータが生成される。この９ビットデータは、信号線１２１−１と信号線１２１−２に結線された信号線１２１−３から出力される。【０１０６】
｛第２の実装手法｝
図１９（ａ）〜（ｃ）は、zero-extend変換の第２の実装手法を示す図である。
zero-extend変換は、９ビットの信号線（パス）の分岐点に設けられた排他的論理和演算器において、９ビット信号の下位７ビットについてのみ排他的論理和演算を行うことによっても実現できる。【０１０７】
図１９（ａ）は、図１０に示すＦＩ関数３００ａの下部に設けられたzero-extend変換１２０Ｄと、そのzero-extend変換１２０Ｄから出力される９ビット信号（９ビットデータ）が入力する、クリティカルパス１００ａ上に設けられた排他的論理和１０３から構成される部分を示す図である。図１９（ａ）に示す回路は、図１９（ｂ）に示す回路で実装できる。図１９（ｂ）に示す回路においては、クリティカルパス１００ａ上に配置された排他的論理和１０３に、７ビットの信号線３１１が接続されている。この信号線３１１は、入力端子がパス１１０ａの分岐点３０１に接続されており、ＦＩ関数３００ａに入力する１６ビット信号（１６ビットデータ）の下位７ビットを排他的論理和１０１に入力させる。【０１０８】
図１９（ｃ）は、図１９（ｂ）において太い円で囲まれた部分の拡大図である。図１９（ｃ）に示すように、排他的論理和１０３は、信号線３１１を介して入力する７ビット信号（７ビットデータ）と、クリティカルパス１００ａを介して入力される９ビット信号（９ビットデータ）の下位７ビットの排他的論理和を演算するように構成されている。すなわち、排他的論理和３０１は、クリティカルパス１００ａから入力する９ビット信号の下位７ビットと信号線３１１から入力する７ビットの排他的論理和を演算する。このように、排他的論理和１０３を図１９（ｃ）に示すように構成することで、排他的論理和１０３にzero-extend変換機能をもたせることができ、zero-extend変換１２０Ｄ用の特別の回路を省略できる。【０１０９】
［truncate変換の実装手法］
｛第１の実装手法｝
図２０は、truncate変換の第１の実装手法を示す図である。【０１１０】
図２０に示すtruncate変換器１３０−１は、信号線１３１−１から９ビットのデータを入力する。信号線１３１−１は、信号線１３１−２と信号線１３１−３と結線されており、上記９ビットデータの上位２ビットは信号線１３１−２に出力されオープン(open)状態となる。一方、上記９ビットデータの下位７ビットは、信号線１３１−３を介して外部に出力される。【０１１１】
｛第２の実装手法｝
図２１（ａ）〜（ｃ）は、truncate変換の第２の実装手法を示す図である。
図２１（ａ）は、図１０に示すＦＩ関数３００ａ内に設けられている、クリティカルパス１００ａ上の分岐点３０２と、その分岐点３０２に接続されたtruncate変換１３０Ｕから構成される部分を示す図である。図２１（ａ）に示す回路は、図２１（ｂ）に示す回路で実装できる。この回路では、分岐点３０２において、クリティカルパス１００ａから７ビットの信号線３１２が分岐している。図２１（ｃ）は、分岐点３０２の拡大図である。図２１（ｃ）に示すように、クリティカルパス１００ａを介して分岐点３０２に入力する９ビット信号（９ビットデータ）の内、下位７ビットの信号は信号線３１２に入力する。このように、分岐点３０２において、９ビットの信号線（クリティカルパス１００ａ）と信号線３１２の結線を工夫することにより、９ビットを７ビットに変換するtruncate変換が実現できる。【０１１２】
［concatenate変換の実装手法］
図２２は、concatenate変換の実装手法を示す図である。
図２２に示すconcatenate変換器１４０−１は、２ビットと７ビットの２つのデータを、それぞれ、信号線１４１−１、１４１−２から入力する。信号線１４１−１と信号線１４１−２は、concatenate変換器１４０−１内部で９ビットの信号線１４１−３と結線されている。このため、上記２ビットデータと上記７ビットデータは、上記結線部位で、上記２ビットデータを上位２ビット、上記７ビットデータを下位７ビットとする９ビットデータに変換され、信号線１４１−３を介して外部に出力される。【０１１３】
本発明の実施形態によれば、ＭＩＳＴＹ１のＦＩ関数、またはＦＩ関数及びその直下の排他的論理和の回路構造のクリティカルパス上に存在する排他的論理和の個数を従来よりも削減できる。したがって、本発明の実施形態のＦＩ関数、ＦＩ関数及びその直下の排他的論理和の回路構造は、ハードウェア実装した場合、従来のＦＩ関数、ＦＩ関数及びその直下の排他的論理和の回路構造よりも高速化が可能である。【０１１４】
例えば、本発明の第１の実施形態のＦＩ関数３００ａのクリティカルパス１００ａは、２つの非線形関数Ｓ９と２つの排他的論理和を備える。これに対し、従来のＦＩ関数のクリティカルパスは、２つの非線形関数Ｓ９と４つの排他的論理和を備える。したがって、両者をハードウェア実装した場合、それぞれのクリティカルパス上に存在する演算器の個数は以下のようになる。【０１１５】
第１の実施形態のＦＩ関数の回路：Ｓ９変換器＝２個、排他的論理和演算器＝２個
従来のＦＩ関数の回路：Ｓ９変換器＝２個、排他的論理和演算器＝４個
ここで、Ｓ９変換器１個あたりのゲート遅延をｘ［ｓ］、排他的論理和演算器１個あたりのゲート遅延をｙ［ｓ］とする。回路の配線遅延を無視すると、第１の実施形態のＦＩ関数の回路と従来のＦＩ関数の回路の遅延比率Ｒは、以下のようになる。【０１１６】
【数１】
2009090688.tif 000004
ここで、ｘ［ｓ］＝７０＊１０−９，ｙ［ｓ］＝１０＊１０−９と仮定すると、Ｒ＝１．１２５となる。【０１１７】
つまり、本発明の第１の実施形態のＦＩ関数３００ａの回路は、従来のＦＩ関数の回路よりも、１２．５％の高速化が可能である。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。例えば、上記実施形態は、本発明をＭＩＳＴＹ１に適用したものであるが、本発明はＭＩＳＴＹ１に限定されるものではない。本発明は、ＭＩＳＴＹ２、ＫＡＳＵＭＩなどMISTY構造の暗号アルゴリズムの全てに適用可能である。
【図１】
2009090688.tif 000005
【図２Ａ】
2009090688.tif 000006
【図２Ｂ】
2009090688.tif 000007
【図３】
2009090688.tif 000008
【図４】
2009090688.tif 000009
【図５Ａ】
2009090688.tif 000010
【図５Ｂ】
2009090688.tif 000011
【図６】
2009090688.tif 000012
【図７】
2009090688.tif 000013
【図８Ａ】
2009090688.tif 000014
【図８Ｂ】
2009090688.tif 000015
【図９Ａ】
2009090688.tif 000016
【図９Ｂ】
2009090688.tif 000017
【図１０】
2009090688.tif 000018
【図１１】
2009090688.tif 000019
【図１２】
2009090688.tif 000020
【図１３Ａ】
2009090688.tif 000021
【図１３Ｂ】
2009090688.tif 000022
【図１３Ｃ】
2009090688.tif 000023
【図１３Ｄ】
2009090688.tif 000024
【図１４】
2009090688.tif 000025
【図１５Ａ】
2009090688.tif 000026
【図１５Ｂ】
2009090688.tif 000027
【図１６】
2009090688.tif 000028
【図１７】
2009090688.tif 000029
【図１８】
2009090688.tif 000030
【図１９】
2009090688.tif 000031
【図２０】
2009090688.tif 000032
【図２１】
2009090688.tif 000033
【図２２】
2009090688.tif 000034
【手続補正書】
【提出日】平成22年5月12日(2010.5.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットをzero-extend変換によりｎビットに変換する、前記２つのデータパス間を結ぶ経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項２】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐入力するｍビットとｎビットのラウンド鍵ＫＩij2の下位ｍビットの排他的論理和を演算する、前記２つのデータパス間を接続する経路上に設けられた第１の排他的論理和演算器と、
該第１の排他的論理和演算器から出力されるｍビットとラウンド鍵ＫＩij2の（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換する、前記２つのデータパス間を接続する経路上に設けられたconcatenate変換手段と、
前記ラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第２の排他的論理和演算器と、
該第２の排他的論理和演算器から出力されるｍビットと前記ｍビットのデータパスから入力するｍビットの排他的論理和を演算する、前記ｍビットのデータパス上に設けられた第３の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項３】
請求項１又は請求項２に記載のデータ変換関数の処理装置であって、
前記２つのデータパス間を結ぶ経路と前記ｎビットのデータパスとの接続点には、ｎビット入出力の非線形変換器Ｓｎの直下に配置された排他的論理和演算器が設けられていることを特徴とする。
【請求項４】
請求項１乃至３のいずれか１項に記載のデータ変換関数の処理装置であって、
前記２つのデータパス間を結ぶ経路と前記ｍビットのデータパスとの接続点の直下には、ｍビット入出力の非線形変換器Ｓｍが設けられていることを特徴とする。
【請求項５】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記ｍビットのデータパスから分岐点入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第1の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットと前記第２の（ｎ＋ｍ）ビットのｎビットの排他的論理和を演算する、前前第1の経路上に設けられた第１の排他的論理和演算器と、
を備えることを特徴とするデータ変換関数の処理装置。
【請求項６】
請求項５記載のデータ変換関数の処理装置であって、
前記第１の経路と前記ｍビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられていることを特徴とする。
【請求項７】
請求項５記載のデータ変換関数の処理装置であって、
さらに、
ｎビットのラウンド鍵ＫＩij2と前記ｍビットのデータパスから分岐入力するｍビットをｎビットにzero-extend変換する、前記２つのデータパス間を結ぶ第２の経路上に設けられたzero-extend変換手段と、
該zero-extend変換手段から出力されるｎビットとｎビットのラウンド鍵ＫＩij2の排他的論理和を演算する、前記２つのデータパス間を結ぶ第２の経路上に設けられた第２の排他的論理和演算器と、
ｎビットのラウンド鍵ＫＩij2の下位ｍビットとｍビットのラウンド鍵ＫＩij1の排他的論理和を演算する第３の排他的論理和器と、
該第３の排他的論理和演算器から出力されるｍビットが入力する、前記ｍビットのデータパス上に設けられた第４の排他的論理和演算器を、
備えることを特徴とするデータ変換関数の処理装置。
【請求項８】
請求項７記載のデータ変換関数の処理装置であって、
前記第２の経路と前記ｎビットのデータパスとの接続点の上部には、ｎビット入出力の非線形変換器Ｓｎが設けられていることを特徴とする。
【請求項９】
ｎビットのデータパスとｍ（ｍ＜ｎ）ビットのデータパスを有し、各段において該２つのデータパスがzero-extend変換またはtruncate変換により接続される、非均等なMISTY構造のデータ変換関数の処理と、前記データ変換関数から出力される第１の（ｎ＋ｍ）ビットデータと前記データ変換関数の外部から入力される第２の（ｎ＋ｍ）ビットデータの排他的論理和を実行するデータ変換関数の処理装置において、
前記第２の（ｎ＋ｍ）ビットのｍビットと前記ｍビットのデータパスから分岐入力するｍビットの排他的論理和を演算する、前記２つのデータパス間を結ぶ経路上に設けられた第1の排他的論理和演算器と、
前記第1の排他的論理和演算器から出力されるｍビットと前記第２の（ｎ＋ｍ）ビットの（ｎ−ｍ）ビットをconcatenate変換により結合してｎビットに変換し、そのｎビットを前記ｎビットのデータパスに出力するconcatenate変換手段と、
を備えることを特徴とするデータ変換関数の処理装置。
【国際調査報告】
2009090688.tif 000035
2009090688.tif 000036
2009090688.tif 000037
2009090688.tif 000038