質問: b + ((a + f(b,c,d) + x[k] + t[i]) <<< s) */ /* 次の16の処理を実行する */ [abcd 0 7 1] [dabc 1 12 2] [cdab 2 17 3] [bcda 3 22 4] [abcd 4 7 5] [dabc 5 12 6] [cdab 6 17 7] [bcda 7 22 8] [abcd 8 7 9] [dabc 9 12 10] [cdab 10 17 11] [bcda 11 22 12] [abcd 12 7 13] [dabc 13 12 14] [cdab 14 17 15] [bcda 15 22 16] http://www.ipa.go.jp/security/rfc/rfc1321ja.html#3
回答: > [abcd k s i] で表す: >a = b + ((a + f(b,c,d) + x[k] + t[i]) <<< s) ですから,「次の16の処理を実行する」のうち最初の4つだけ例示するならこうでしょう。 [abcd 0 7 1] a = b + ((a + f(b,c,d) + x[0] + t[1]) <<< 7) [dabc 1 12 2] d = a + ((d + f(a,b,c) + x[1] + t[2]) <<< 12) [cdab 2 17 3] c = d + ((c + f(d,a,b) + x[2] + t[3]) <<< 17) [bcda 3 22 4] b = c + ((b + f(c,d,a) + x[3] + t[4]) <<< 22)