ラウンド関数(Round function)
ブロック暗号の各ラウンドで繰り返し適用され、データに鍵の素材を混ぜ込む関数。
ブロック暗号とは、ラウンド関数を何度も適用するものだと言ってよい。DESのラウンド関数は、拡大、鍵混合、Sボックス、置換からなるFeistel構造だ。一方AESはSubBytes、ShiftRows、MixColumns、AddRoundKeyを使い、鍵長に応じて10、12、14ラウンド実行する。
ラウンド関数の設計は、暗号の安全性の大部分を左右する。ラウンド数は、既知の攻撃が完全な暗号に余裕をもって届かないように選ばれ、各ラウンドは十分な拡散を提供しなければならない。独自の暗号を作るなら、本番に近づける前に、差分解読法と線形解読法に対するラウンド関数の耐性を測定すべきだ。