アプリ版:「スタンプのみでお礼する」機能のリリースについて

RFC1321を読んでいるのですが、3.4のところのメッセージ処理が何をしているのかよく分かりません。

以下が書かれていますが、[]の中身を計算した結果が左辺のaになるのでしょうか?(でも、右辺のaとは違いますよね?…)
また、[]がなんこも並んでいるのは何をするのでしょうか?bit列を結合するということでしょうか?

/* 以下の演算を、[abcd k s i] で表す: a = 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

A 回答 (1件)

> [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)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!