1% Illustrative diagram (exact data flow of FIPS 180-4): SHA-256 compression function.2\begin{tikzpicture}[font=\footnotesize, >=Latex,3 reg/.style={draw, minimum width=0.9cm, minimum height=0.6cm, fill=blue!8},4 op/.style={draw, circle, inner sep=1pt, fill=orange!15},5 fn/.style={draw, rounded corners=2pt, fill=green!10, inner sep=3pt}]6 % registers at step t7 \foreach \r/\i in {a/0,b/1,c/2,d/3,e/4,f/5,g/6,h/7} { \node[reg] (\r) at (\i*1.25, 3) {$\r_t$}; }8 \foreach \r/\i in {a/0,b/1,c/2,d/3,e/4,f/5,g/6,h/7} { \node[reg] (\r 2) at (\i*1.25, -1.2) {$\r_{t+1}$}; }9 % functions10 \node[fn] (S0) at (0.4,1.9) {$\SigZ(a)$};11 \node[fn] (Maj) at (1.9,1.9) {$\Maj(a,b,c)$};12 \node[fn] (S1) at (5.4,1.9) {$\SigO(e)$};13 \node[fn] (Ch) at (7.0,1.9) {$\Ch(e,f,g)$};14 \node[fn] (KW) at (8.9,0.9) {$K_t \boxplus W_t$};15 \node[op] (T2) at (1.1,0.9) {$\boxplus$};16 \node[op] (T1) at (6.6,0.9) {$\boxplus$};17 \node[op] (A) at (0,0.0) {$\boxplus$};18 \node[op] (Ea) at (3.75,0.0) {$\boxplus$};19 \draw[->] (a) -- (S0); \draw[->] (a) -- (Maj); \draw[->] (b) -- (Maj); \draw[->] (c) -- (Maj);20 \draw[->] (S0) -- (T2); \draw[->] (Maj) -- (T2);21 \draw[->] (e) -- (S1); \draw[->] (e) -- (Ch); \draw[->] (f) -- (Ch); \draw[->] (g) -- (Ch); \draw[->] (h) -- ++(0,-0.5) -| (T1);22 \draw[->] (S1) -- (T1); \draw[->] (Ch) -- (T1); \draw[->] (KW) -- (T1);23 \node at (6.6,0.35) {$T_1$}; \node at (1.1,0.35) {$T_2$};24 \draw[->] (T1) -- (A); \draw[->] (T2) -- (A); \draw[->] (A) -- (a2);25 \draw[->] (d) -- ++(0,-1.9) -- (Ea); \draw[->] (T1) -- (Ea); \draw[->] (Ea) -- (e2);26 \foreach \s/\t in {a/b2,b/c2,c/d2,e/f2,f/g2,g/h2} { \draw[->, gray] (\s.south) to[out=-90,in=90] (\t.north); }27\end{tikzpicture}28