https://iopscience.iop.org/article/10.1088/1742-6596/978/1/012116/pdf
Each operation performs a nonlinear function on three of a, b, c,and d.
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z) = XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
So MD5 Algorithm is nonlinear?