Mangler 関数は、入力として 32 ビットを受け取り、それを 48 ビットに拡張します。32 ビットを 8 つの 4 ビット チャンクに分割し、左右のビットを各チャンクに連結します。私の質問はこれです。最初の 4 ビット チャンクはどこから左ビットを取得しますか? 最後のチャンクの最後のビットから取得しますか? または、単に 0 を連結します。これは、最後の 4 ビット チャンクにも適用されますが、存在しない正しいビットを取得する必要がある場合を除きます。
ありがとう
展開関数は、最後の「チャンク」から最後のビットを取得し、それを最初の「チャンク」の先頭に追加します。最後の「チャンク」は、最初の「チャンク」の左端のビットから右端のビットを取得します。
32 ビット => 48 ビット -------------------------------- 1 2 3 4 => 32 1 2 3 4 5 5 6 7 8 => 4 5 6 7 8 9 9 10 11 12 => 8 9 10 11 12 13 13 14 15 16 => 12 13 14 15 16 17 17 18 19 20 => 16 17 18 19 20 21 21 22 23 24 => 20 21 22 23 24 25 25 26 27 28 => 24 25 26 27 28 29 29 30 31 32 => 28 29 30 31 32 1
この図は、それを非常に明確に示しています。