% % schieberegister.tex % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % \bgroup \def\ds{0.7} \definecolor{darkgreen}{rgb}{0,0.6,0} \def\punkt#1#2{({(#1)*\ds},{(#2)*\ds})} \def\rahmen{ \draw ({-0.5*\ds},{-0.5*\ds}) rectangle ({7.5*\ds},{0.5*\ds}); \foreach \x in {0.5,1.5,...,6.5}{ \draw ({\x*\ds},{-0.5*\ds}) rectangle ({\x*\ds},{0.5*\ds}); } } \def\polynom#1#2#3#4#5#6#7#8{ \node at \punkt{0}{0} {$#1$}; \node at \punkt{1}{0} {$#2$}; \node at \punkt{2}{0} {$#3$}; \node at \punkt{3}{0} {$#4$}; \node at \punkt{4}{0} {$#5$}; \node at \punkt{5}{0} {$#6$}; \node at \punkt{6}{0} {$#7$}; \node at \punkt{7}{0} {$#8$}; } \begin{frame}[t] \frametitle{Implementation der Multiplikation in $\mathbb{F}_2(\alpha)$\uncover<10->{: Schieberegister}} Rechnen in $\mathbb{F}_2[X]$\only<5->{ und $\mathbb{F}_2(\alpha)$} ist speziell einfach \\ Minimalpolynom von $\alpha$: ${\color{darkgreen}m(X) = X^8 + X^4+X^3+X+1}$ (aus dem AES Standard) \begin{center} \begin{tikzpicture}[>=latex,thick] \uncover<4->{ \fill[color=blue!20] \punkt{-0.5}{-0.5} rectangle \punkt{7.5}{0.5}; } \uncover<2->{ \begin{scope} \rahmen \node at \punkt{-0.5}{1} [left] {$p(X)=\mathstrut$}; \node at \punkt{0}{1} {$X^7$\strut}; \node at \punkt{2.5}{1}{$+$\strut}; \node at \punkt{3}{1} {$X^4$\strut}; \node at \punkt{4.5}{1}{$+$\strut}; \node at \punkt{5}{1} {$X^2$\strut}; \node at \punkt{6.5}{1}{$+$\strut}; \node at \punkt{7}{1} {$1$\strut}; \polynom10010101 \end{scope}} \uncover<3->{ \draw[->] ({7.7*\ds},-0.2) to[out=-45,in=45] ({7.7*\ds},-1.8); \node at ({8*\ds},-1) [right] {$\mathstrut\cdot X = \text{Shift}$}; } \uncover<4->{ \foreach \x in {0,...,7}{ \draw[->,color=blue!40] ({\x*\ds},{-0.6*\ds}) -- ({(\x-1)*\ds},{-2+0.6*\ds}); } } \fill[color=white] (-4.65,0) circle[radius=0.01]; \uncover<3->{ \begin{scope}[yshift=-2cm] \uncover<4->{ \fill[color=blue!20] \punkt{-1.5}{-0.5} rectangle \punkt{6.5}{0.5}; \rahmen \polynom00101010 } \node at \punkt{2}{1} {$X^5$\strut}; \node at \punkt{3.5}{1}{$+$\strut}; \node at \punkt{4}{1} {$X^3$\strut}; \node at \punkt{5.5}{1}{$+$\strut}; \node at \punkt{6}{1} {$X$\strut}; \begin{scope}[xshift=0.4cm] \node at \punkt{-1}{1} [left] {$\uncover<5->{{\color{darkgreen}\alpha^4+\alpha^3+\alpha+1=\alpha^8}}\only<-4>{X^8}$\strut}; \end{scope} \node at \punkt{-1}{0} {$1$\strut}; \end{scope} } \uncover<6->{ {\color<8->{red} \draw[->] (-2.5,-1.5) to[out=-90,in=180] (-0.5,-2.7); } \begin{scope}[yshift=-2.7cm] \rahmen {\color{darkgreen} \polynom00011011 } \end{scope} } \uncover<7->{ \node at ({3.5*\ds},-3.45) {$\|$}; \begin{scope}[yshift=-4.2cm] \rahmen \polynom00110001 \node at \punkt{7.6}{0} [right] {$\mathstrut=\alpha\cdot p(\alpha)$}; \end{scope} } \uncover<8->{ \node[color=red] at (-3.0,-2.5) {Feedback}; } \end{tikzpicture} \end{center} \end{frame} \egroup