Skip to content

Commit

Permalink
Дамгарда => Дамгора (дат. Ivan Bjerre Damgård)
Browse files Browse the repository at this point in the history
  • Loading branch information
vlsergey committed Jan 15, 2022
1 parent e1e2006 commit 8063ae5
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion appendix/questions-4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ \section{Курс <<Защита информации>>}
\item Терморектальный криптоанализ. Формулировка основной теоремы, идея доказательства. Свойства, примеры использования.
\item Современные потоковые шифры на примере A5/1. Общий вид, требования, характеристики и анализ защищённости.
\item Современные потоковые шифры на примере RC4. Общий вид, требования, характеристики и анализ защищённости.
\item Задача о словаре и хеш-функции. Коллизии в хеш-фунциях. Криптографически стойкие хеш-функции. Свойства, принципы построения криптографически стойких хеш-функций (стандарта США или ГОСТ Р 34.11-2012 <<СТРИБОГ>>). Структуры Меркла~---~Дамгарда, Миагучи~---~Пренеля. Использование хеш-функций в криптографии.
\item Задача о словаре и хеш-функции. Коллизии в хеш-фунциях. Криптографически стойкие хеш-функции. Свойства, принципы построения криптографически стойких хеш-функций (стандарта США или ГОСТ Р 34.11-2012 <<СТРИБОГ>>). Структуры Меркла~---~Дамгора\index{структура!Меркла~---~Дамгора}, Миагучи~---~Пренеля\index{структура!Миагучи~---~Пренеля}. Использование хеш-функций в криптографии.
\item База данных на основе Echo-сети. Blockchain. Доказательство работы (proof-of-work, proof-of-share). BitCoin.
\item Односторонние функции с потайной дверцей. Пример, не связанный с задачами из области теории чисел (т.е. не факторизация, не дискретный логарифм, etc.) Возможность использования односторонних функций в криптографии. Общие идеи использования криптографии с открытым ключом для шифрования. Проблемы криптографической стойкости, производительности.
\item Цифровые подписи. Цели, основные принципы получения и использования. Конкретные примеры использования цифровых подписей в современных информационных системах.
Expand Down
2 changes: 1 addition & 1 deletion definitions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ \chapter{Основные понятия и определения}

Попытка криптоаналитика нарушить свойство криптографической системы по обеспечению защиты информации (например, получить информацию вопреки свойству обеспечения конфиденциальности) называется \emph{криптографической атакой} (\emph{криптоатакой}). Если данная попытка оказалась успешной, и свойство было нарушено или может быть нарушено в ближайшем будущем, то такое событие называется \emph{взломом криптосистемы} или \emph{вскрытием криптосистемы}. Конкретный метод криптографической атаки также называется \emph{криптоанализом} (например, линейный криптоанализ, дифференциальный криптоанализ и~т.~д.). Криптосистема называется \emph{криптостойкой}, если число стандартных операций для её взлома превышает возможности современных вычислительных средств в течение всего времени ценности информации (до 100 лет).

Для многих криптографических примитивов существует атака полным перебором\index{атака!полным перебором} или аналогичная, которая подразумевает, что если выполнить очень большое количество определённых операций (по одной на каждое значение из области определения одного из аргументов криптографического метода), то один из результатов укажет непосредственно на способ взлома системы (например, укажет на ключ для нарушения конфиденциальности, обеспечиваемой алгоритмом шифрования, или на допустимый прообраз для функции хеширования, приводящий к нарушению аутентичности и целостности). В этом случае под \emph{взломом криптосистемы} понимается построение алгоритма криптоатаки с количеством операций меньшим, чем планировалось при создании этой криптосистемы (часто, но не всегда, это равно именно количеству операций при атаке полным перебором\footnote{Например, сложность построения второго прообраза для хеш-функций на основе конструкции Меркла~---~Дамгарда составляет $2^n / \left|M\right|$ операций, тогда как полный перебор -- $2^n$. См. раздел~\ref{section-stribog}.}). Взлом криптосистемы -- это не обязательно, например, реально осуществлённое извлечение информации, так как количество операций может быть вычислительно недостижимым как в настоящее время, так и в течение всего времени защиты. То есть могут существовать системы, которые формально взломаны, но пока ещё являются криптостойкими.
Для многих криптографических примитивов существует атака полным перебором\index{атака!полным перебором} или аналогичная, которая подразумевает, что если выполнить очень большое количество определённых операций (по одной на каждое значение из области определения одного из аргументов криптографического метода), то один из результатов укажет непосредственно на способ взлома системы (например, укажет на ключ для нарушения конфиденциальности, обеспечиваемой алгоритмом шифрования, или на допустимый прообраз для функции хеширования, приводящий к нарушению аутентичности и целостности). В этом случае под \emph{взломом криптосистемы} понимается построение алгоритма криптоатаки с количеством операций меньшим, чем планировалось при создании этой криптосистемы (часто, но не всегда, это равно именно количеству операций при атаке полным перебором\footnote{Например, сложность построения второго прообраза для хеш-функций на основе конструкции Меркла~---~Дамгора составляет $2^n / \left|M\right|$ операций, тогда как полный перебор -- $2^n$. См. раздел~\ref{section-stribog}.}). Взлом криптосистемы -- это не обязательно, например, реально осуществлённое извлечение информации, так как количество операций может быть вычислительно недостижимым как в настоящее время, так и в течение всего времени защиты. То есть могут существовать системы, которые формально взломаны, но пока ещё являются криптостойкими.

Далее рассмотрим модель передачи информации с отдельными криптографическими методами.

Expand Down
6 changes: 3 additions & 3 deletions hash-functions/GOST_R_34.11-2012.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ \section{Хеш-функция «Стрибог»}\label{section-stribog}\index{
\item максимальная производительность \emph{программной} реализации (процессоры архитектуры \texttt{x64}).
\end{itemize}

В соответствии с данными требованиями алгоритм новой хеш-функции основывается на хорошо изученных конструкциях Меркла~---~Дамгарда\index{структура!Меркла~---~Дамгарда}~\cite{Merkle:1979, Merkle:1990, Damgard:1990} и Миагучи~---~Пренеля\index{структура!Миагучи~---~Пренеля}~\cite{Espen:Mieghem:1989, Miyaguchi:Ohta:Iwata:1990:03, Miyaguchi:Ohta:Iwata:1990:11}, во внешней своей структуре практически полностью повторяя режим HAIFA\index{HAIFA} (\langen{HAsh Iterative FrAmework},~\cite{Biham:Dunkelman:2007}), использовавшийся в хеш-функциях SHAvite-3\index{хеш-функция!SHAvite-3} и BLAKE\index{хеш-функция!BLAKE}.
В соответствии с данными требованиями алгоритм новой хеш-функции основывается на хорошо изученных конструкциях Меркла~---~Дамгора\index{структура!Меркла~---~Дамгора} (см. раздел~\ref{sec:merkle-damgard}) и Миагучи~---~Пренеля\index{структура!Миагучи~---~Пренеля}~\cite{Espen:Mieghem:1989, Miyaguchi:Ohta:Iwata:1990:03, Miyaguchi:Ohta:Iwata:1990:11}, во внешней своей структуре практически полностью повторяя режим HAIFA\index{HAIFA} (\langen{HAsh Iterative FrAmework},~\cite{Biham:Dunkelman:2007}), использовавшийся в хеш-функциях SHAvite-3\index{хеш-функция!SHAvite-3} и BLAKE\index{хеш-функция!BLAKE}.

\begin{figure}[htb]
\centering
\includegraphics[width=0.95\textwidth]{pic/stribog-md}
\caption{Использование структуры Меркла~---~Дамгарда в хеш-функции <<Стрибог>>}
\caption{Использование структуры Меркла~---~Дамгора в хеш-функции <<Стрибог>>}
\label{fig:stribog-md}
\end{figure}

Как показано на рис.~\ref{fig:stribog-md}, входное сообщение разбивается на блоки по 512 бит (64 байта). Последний блок \emph{слева} дополняется последовательностью из нулей и одной единицы до 512 бит (длина дополнения не учитывается в дальнейшем, когда длина сообщения используется как аргумент функций). Для каждой части сообщения вычисляется значение функции $g_N(h, m)$, которая в качестве аргумента использует текущий номер блока (умноженный на 512), результат вычисления для предыдущего блока и очередной блок сообщения. Также есть два завершающих преобразования. Первое вместо блока сообщения использует количество обработанных бит N (то есть длину сообщения), а второе -- арифметическую сумму значений всех блоков сообщения. В предположении, что функция $g_N(h, m)$ является надёжной для создания криптографически стойких хеш-функций, известно, что конструкция Меркла~---~Дамгарда позволяет получить хеш-функцию со следующими параметрами:
Как показано на рис.~\ref{fig:stribog-md}, входное сообщение разбивается на блоки по 512 бит (64 байта). Последний блок \emph{слева} дополняется последовательностью из нулей и одной единицы до 512 бит (длина дополнения не учитывается в дальнейшем, когда длина сообщения используется как аргумент функций). Для каждой части сообщения вычисляется значение функции $g_N(h, m)$, которая в качестве аргумента использует текущий номер блока (умноженный на 512), результат вычисления для предыдущего блока и очередной блок сообщения. Также есть два завершающих преобразования. Первое вместо блока сообщения использует количество обработанных бит N (то есть длину сообщения), а второе -- арифметическую сумму значений всех блоков сообщения. В предположении, что функция $g_N(h, m)$ является надёжной для создания криптографически стойких хеш-функций, известно, что конструкция Меркла~---~Дамгора позволяет получить хеш-функцию со следующими параметрами:

\begin{itemize}
\item сложность построения прообраза: $2^n$ операций;
Expand Down
4 changes: 2 additions & 2 deletions hash-functions/merkle-damgard.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\section{Структура Меркла~---~Дамгора}\index{кострукция!Меркла~---~Дамгора|(}
\section{Структура Меркла~---~Дамгора}\label{sec:merkle-damgard}\index{структура!Меркла~---~Дамгора|(}
\selectlanguage{russian}

Приведём пример метода построения хеш-функции, называемого структурой (конструкцией, методом) Меркла~---~Дамгора (рис.~\ref{fig:merkle-damgard}), впервые описанной в кандидатской диссертации Ральфа Меркла в 1979 году. Меркл и Дамгор независимо друг от друга показали, что если раундовая функция сжатия (обозначенная $f$ на рис.~\ref{fig:merkle-damgard}) устойчива к коллизиям, то итоговая хеш-функция будет также устойчива (\langen{Ralph Charles Merkle}, \langda{Ivan Bjerre Damgård}, \cite{Merkle:1979, Merkle:1990, Damgard:1990}).
Expand Down Expand Up @@ -31,4 +31,4 @@ \section{Структура Меркла~---~Дамгора}\index{костру

С использованием данной конструкции построены такие криптографические хеш-функции, как MD4\index{хеш-функция!MD4}, SHA-1\index{хеш-функция!SHA-1}, SHA-2\index{хеш-функция!SHA-2}, российский стандарт ГОСТ~Р~34.11-2012 (<<Стрибог>>)\index{хеш-функция!Стрибог} и многие другие.

\index{кострукция!Меркла~---~Дамгора|)}
\index{структура!Меркла~---~Дамгора|)}

0 comments on commit 8063ae5

Please sign in to comment.