Feistel構造
MARSでは、入力を4つに分割しそれぞれの間で計算を行うような構造で構成されている。一般に n ( n > 2 ) {\displaystyle n(n>2)} 分割する場合を変形ファイステル構造と呼ぶ。ブロック暗号全体のブロック長が大きい場合にラウンド関数のビット幅を小さくすることができる。
DESで採用された構造は、2つのラウンド変数 L r {\displaystyle L_{r}} , R r {\displaystyle R_{r}} (初期入力を L 0 {\displaystyle L_{0}} , R 0 {\displaystyle R_{0}} とする)とラウンド鍵 k r {\displaystyle k_{r}} およびラウンド関数 F {\displaystyle F} から以下の計算を繰り返し施す。
暗号化
復号
暗号化と復号で使用するラウンド関数 F {\displaystyle F} は、暗号化の出力を復号の入力に代入して式変形すれば容易に確認できるが、任意の関数を用いても復号可能性が保証される。暗号化と復号の違いは、ラウンド鍵 k r {\displaystyle k_{r}} の順番が逆になるだけである。
言うまでもないが、安全なブロック暗号を任意の関数で保障できるわけではない。
MISTYでは、ラウンド関数 F {\displaystyle F} の内部にさらにファイステル構造を組み込んでいる。これを入れ子型構造と呼ぶ。MISTYでは3段階の入れ子構造をとっている。入れ子構造は差分攻撃および線形攻撃に対する証明可能安全性を実現するとともに、回路規模の削減に効果がある。