\documentclass[a4paper,fontsize=14bp]{article} \input{../common-preamble} \input{../fancy-listings-preamble} \input{../bmstu-preamble} \setcounter{secnumdepth}{0} \numerationTop \begin{document} \thispagestyle{empty} \makeBMSTUHeader % ... работе, номер, тема, предмет, ?а, кто \makeReportTitle{лабораторной}{1}{Криптографические преобразования}{Криптографические протоколы и стандарты}{}{Варфоломеев А.А.} \newpage \thispagestyle{empty} \tableofcontents \newpage \pagestyle{fancy} \section{Цель} Целью лабораторной работы является освоение преобразований и практика ручного преобразования данных. Вариант \code{П_6}. \begin{enumerate} \item посчитать многочлен Жегалкина (алгебраическая нормальная форма для $f_i(x_4, x_3, x_2, x_1)$); \item найти спектр Уолша-Адамара $\forall f_i$; \item найти статистическую структуру $\forall f_i$; \item посчитать вероятность $P_i$ изменения выходного бита при изменении одного входного бита; \item посчитать среднее число изменяющихся выходных бит при изменении одного входного бита. \end{enumerate} \section{Выполнение работы} \begin{table}[h!] \centering \begin{tabular}{|c|c|c|c|c|} \hline $X_d$ & $X_h$ & $X_4X_3X_2X_1$ & \code{П_6} & $f_4f_3f_2f_1$\\ [0.5ex] \hline 0 & 0 & 0 0 0 0 & 8 & 0 1 0 0 \\ 1 & 1 & 0 0 0 1 & 14 & 1 1 1 0 \\ 2 & 2 & 0 0 1 0 & 2 & 0 0 1 0 \\ 3 & 3 & 0 0 1 1 & 5 & 0 1 0 1 \\ 4 & 4 & 0 1 0 0 & 6 & 0 1 1 0 \\ 5 & 5 & 0 1 0 1 & 9 & 1 0 0 1 \\ 6 & 6 & 0 1 1 0 & 1 & 0 0 0 1 \\ 7 & 7 & 0 1 1 1 & 12 & 1 1 0 0 \\ 8 & 8 & 1 0 0 0 & 15 & 1 1 1 1 \\ 9 & 9 & 1 0 0 1 & 4 & 0 1 0 0 \\ 10 & A & 1 0 1 0 & 11 & 1 0 1 1 \\ 11 & B & 1 0 1 1 & 0 & 0 0 0 0 \\ 12 & C & 1 1 0 0 & 13 & 1 1 0 1 \\ 13 & D & 1 1 0 1 & 10 & 1 0 1 0 \\ 14 & E & 1 1 1 0 & 3 & 0 0 1 1 \\ 15 & F & 1 1 1 1 & 7 & 0 1 1 1 \\ \hline \end{tabular} \caption{Исходные данные} \label{table:1} \end{table} \subsection{Полином Жегалкина} Поиск полинома осуществляется последовательным поразрядным поиском каждого элемента, при том, что $a_0$ известен, для $f_4$ равен 0. Например: $f(1,0,0,0) = a_{0000} \oplus a_{1000} = 1$, следовательно $a_{1000} = 1$, $f(0,1,0,0) = a_{0000} \oplus a_{0100} = 0$, следовательно $a_{0100} = 0$, и так далее. Полином Жегалкина для 4-го разряда будет иметь вид \[f_4 = x_2 \oplus x_3 \oplus x_1x_3 \oplus x_1x_4 \oplus x_2x_3 \oplus x_2x_4 \oplus x_3x_4,\] поскольку промежуточные значения a будут иметь следующие значения: \begin{equation*} \begin{gathered} a_{0000} = 1; a_{0001} = 0; a_{0010} = 1; a_{0011} = 0\\ a_{0100} = 1; a_{0101} = 1; a_{0110} = 1; a_{0111} = 0\\ a_{1000} = 0; a_{1001} = 1; a_{1010} = 1; a_{1011} = 0\\ a_{1100} = 1; a_{1101} = 0; a_{1110} = 0; a_{1111} = 0\\ \end{gathered} \end{equation*} Полином Жегалкина для 3-го разряда будет иметь вид \[f_3 = x_1 \oplus x_3 \oplus x_4 \oplus x_1x_4 + x_2x_3 + x_2x_4 + x_3x_4 + x_1x_3x_4 + x_2x_3x_4\] поскольку промежуточные значения a будут иметь следующие значения: \begin{equation*} \begin{gathered} a_{0000} = 0; a_{0001} = 1; a_{0010} = 0; a_{0011} = 0 \\ a_{0100} = 1; a_{0101} = 0; a_{0110} = 1; a_{0111} = 0 \\ a_{1000} = 1; a_{1001} = 1; a_{1010} = 1; a_{1011} = 0 \\ a_{1100} = 1; a_{1101} = 1; a_{1110} = 1; a_{1111} = 0 \\ \end{gathered} \end{equation*} Полином Жегалкина для 2-го разряда будет иметь вид \[f_2 = x_1 \oplus x_2 \oplus x_3 \oplus x_4 \oplus x_2x_4 \oplus x_1x_2x_3 \oplus x_2x_3x_4\] поскольку промежуточные значения a будут иметь следующие значения: \begin{equation*} \begin{gathered} a_{0000} = 0; a_{0001} = 1; a_{0010} = 1; a_{0011} = 0 \\ a_{0100} = 1; a_{0101} = 0; a_{0110} = 0; a_{0111} = 1 \\ a_{1000} = 1; a_{1001} = 0; a_{1010} = 1; a_{1011} = 0 \\ a_{1100} = 0; a_{1101} = 0; a_{1110} = 1; a_{1111} = 0 \\ \end{gathered} \end{equation*} Полином Жегалкина для 2-го разряда будет иметь вид \[f_1 = x4 \oplus x1x2 \oplus x1x3 \oplus x1x4 \oplus x2x3 \oplus x1x2x3 \oplus x1x2x4 \oplus x1x3x4 \oplus x2x3x4\] поскольку промежуточные значения a будут иметь следующие значения: \begin{equation*} \begin{gathered} a_{0000} = 0; a_{0001} = 0; a_{0010} = 0; a_{0011} = 1 \\ a_{0100} = 0; a_{0101} = 1; a_{0110} = 1; a_{0111} = 1 \\ a_{1000} = 1; a_{1001} = 1; a_{1010} = 0; a_{1011} = 1 \\ a_{1100} = 0; a_{1101} = 1; a_{1110} = 1; a_{1111} = 0 \\ \end{gathered} \end{equation*} \end{document}