BMSTU/03-cpas-lab-01-report.tex

113 lines
5.8 KiB
TeX
Raw Normal View History

\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}