\documentclass[a4paper,12pt]{extarticle}

\usepackage[T2A]{fontenc}
\usepackage[english,russian]{babel}
\usepackage[
  left=2.5cm, right=2.5cm,
  top=1.5cm, bottom=2cm,
]{geometry}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{indentfirst}
\usepackage{underscore}
\usepackage{multirow}
\usepackage{float}
\usepackage{setspace}
\singlespacing
\usepackage{graphicx}
\graphicspath{{./images/}}

\theoremstyle{definition}
\newtheorem{definition}{Definition}[subsection]
\newtheorem*{note}{Note}

\setcounter{tocdepth}{3}

\title{
  {\scshape \bfseries Cryptographic security of information}\\
  {Block ciphers}\\
  {\Large ГОСТ Р 34.12-2015}}
\author{Переведено: Андрей Гущин, КНиИТ, 431 группа}
\date{}

\begin{document}

\maketitle

\section*{Abstract}

This standard contains a description of block encryption algorithms used in
cryptographic techniques of information security.

The need to develop a standard is caused by the need to create block ciphers
with different block lengths that meet modern requirements for cryptographic
strength and operational qualities.

This standard is terminologically and conceptually linked to the international
standards ISO/IEC 10116 and the ISO/IEC 18033 series.


\section{Scope}

This standard defines algorithms of basic block ciphers used in cryptographic
techniques of processing and protecting the information, including ensuring
confidentiality, authenticity and integrity of information during its
transmission, processing and storage in automated systems.

The cryptographic algorithms defined in this standard are designed for hardware
or software implementation, meet modern cryptographic requirements and do not
impose restrictions on the degree of secrecy of the protected information.

The standard is recommended for use in the development, operation and
modernization of general purpose information processing systems.


\section{Terms, definitions and designations}

\subsection{Terms and definitions}

The following terms and definitions are used in this standard.

\begin{definition}
  \textbf{Encryption algorithm} --- algorithm that implements encryption, i.e.
  converting plaintext into ciphertext.
\end{definition}

\begin{definition}
  \textbf{Decryption algorithm} --- algorithm that implements decryption, i.e.
  converting ciphertext into plaintext.
\end{definition}

\begin{definition}
  \textbf{Basic block cipher} --- block cipher that implements for any fixed key
  single reversible mapping from a set of plaintext blocks of fixed length into
  ciphertext blocks of same length.
\end{definition}

\begin{definition}
  \textbf{Block} --- string of bits of a defined length.
\end{definition}

\begin{definition}
  \textbf{Block cipher} --- cipher from a class of symmetric cryptographic
  techniques in which an encryption algorithm is applied to plaintext blocks to
  compute ciphertext blocks.
\end{definition}

\begin{note}
  This standard defines terms ``block cipher'' and ``algorithm of block
  encryption'' to be synonyms.
\end{note}

\begin{definition}
  \textbf{Encryption} --- reversible transformation of data using a cipher that
  forms a ciphertext from plaintext.
\end{definition}

\begin{definition}
  \textbf{Round key} --- sequence of characters computed with the key schedule
  algorithm that defines the transformation in one iteration of the block
  cipher.
\end{definition}

\begin{definition}
  \textbf{Key} --- variable parameter in the form of a sequence of characters
  that defines the cryptographic transformation.
\end{definition}

\begin{note}
  This standard only considers keys in the form of a sequence of binary symbols
  (bits).
\end{note}

\begin{definition}
  \textbf{Plaintext} --- unencrypted information.
\end{definition}

\begin{definition}
  \textbf{Key schedule} --- algorithm of computation of round keys from cipher
  key.
\end{definition}

\begin{definition}
  \textbf{Decryption} --- reversal of the corresponding encryption.
\end{definition}

\begin{note}
  To preserve terminological continuity with scientific and technical
  publications, this standard uses the term ``encryption'' for both operations
  defined by the terms ``encryption'' and ``decryption''. The specific meaning
  of the term ``encryption'' is determined based on the context.
\end{note}

\begin{definition}
  \textbf{Symmetric cryptographic technique} --- cryptographic technique that
  uses same key for the transformation performed by both the sender and the
  recipient.
\end{definition}

\begin{definition}
  \textbf{Cipher} --- cryptographic technique used to ensure confidentiality
  of data, including an encryption algorithm and a decryption algorithm.
\end{definition}

\begin{definition}
  \textbf{Ciphertext} --- plaintext data which has been encrypted to hide its
  content.
\end{definition}

\subsection{Designations}

\dots

\section{General provisions}

This standard defines two basic block ciphers with block lengths of $n = 128$
bits and $n = 64$ bits and with key lengths of $k = 256$ bits.

\begin{note}\hfill
  \begin{enumerate}
    \item
      Cipher with block length of $n = 128$ bits defined in this standard can
      be referred to as ``Kuznyechik'' (``Кузнечик'').
    \item
      Cipher with block length of $n = 64$ bits defined in this standard can
      be referred to as ``Magma'' (``Магма'').
  \end{enumerate}
\end{note}

\dots

\end{document}
