diff --git a/03-cryptographic-protocols-and-standards.tex b/03-cryptographic-protocols-and-standards.tex
index af30ddb..743a27c 100644
--- a/03-cryptographic-protocols-and-standards.tex
+++ b/03-cryptographic-protocols-and-standards.tex
@@ -468,6 +468,72 @@ R.Merkle - Secure communication over insecure channel изложил прото
Расшифрование
\[ E_K^{-1} (C_i) = M_i\oplus C_{i-1} \to E_K^{-1}(C_i)\oplus C_{i-1} = M_i \]
+\section{Однонаправленные функции и их применение}
+One-way functions and applications
+
+Data origin authentication - подлинность происхождения данных (сообщения).
+например,
+\[y=GOST_x(m_0)\]
+
+\[y=a^x(vbpn); Z_p^*\]
+
+\[y=x\cdot A; A=EI(F_p)\]
+
+S/Key Bellure Corp
+
+А - клиент S-сервер
+
+Entity authentication (аутентификация сущности). Подлинность чего мы определяем? это может быть объект, субъект, ПО. Identification protocols.
+Сначала выбирается однонаправленная функция и строится цепочка из значений этой однонаправленной функции $x_0, x_1=f(x_0), ..., x_{100}=f(x_{99})$. после этого передаётся пользователю с обязательной подлинностью и целостностью, но не секретностью. Когда нужно авторизоваться клиент отправляет $x_{99}$ который может попасть злоумышленнику. Сервер вычисляет, что $x_{99}$ является праобразом $x_{100}$ и подтверждается подлинность пользователя. В следующий раз, поскольку $x_{99}$ уже перехвачен, клиент посылает $x_{98}$ и сравнение на сервере происходит с $x_{99}$. Если злоумышленник желает выдать себя за клиента, он должен найти праобраз от перехваченной им $x_{99}$, но по определению однонаправленной функции это вычислительно невозможно. Клиент действует до тех пор, пока он не исчерпает всю цепочку $x_{0} .. x_{99}$.
+
+\textbf{Применение однонаправленных функций для микроплатежей.}
+Здесь не нужна надёжность и сложность полноценной ЭЦП. Payward, Micromint, etc. Вся структура простой аутентификации остаётся. \circled{А} - клиент, S - провайдер услуг. Система является системой предоплаты. А передаёт заранее некоторую сумму, выстраивается цепочка и договариваются, что если клиент хочет получить услуги на 10 рублей, он высылает одно значение из цепочки. на 20р - два значения, и так далее.
+
+Клиент провайдера обмануть не может, а провайдер может обмануть клиента. нужна третья сторона. Для доказательства нужно, чтобы провайдер предоставил всю цепочку, чтобы доказать, что клиент переслал её всю. Если у провайдера она не вся, нужно как злоумышленнику восстановить функцию, что вычислительно невозможно.
+
+One time signature (одноразовая подпись, схема Lamport).
+Подлинность, целостность, неотказуемость.
+\begin{enumerate}
+\item алгоритм выработки параметров
+\item алгортим выработки ЦП
+\item алгроитм проверки ЦП
+\end{enumerate}
+
+Лампорт предложил ЦП на однонаправленной функции.
+
+А - подписываюший, B - проверяющий.
+
+\begin{enumerate}
+\item договариваются о выборе ОФ (или можно выбирать хэш-функцию). и вырабатывают секретные ключи. СК - это значения из области определения функции. также генерируются открытые ключи. В справочник помещается ОК и всё готово для подписания.
+\item подписание - документ, строка длины М. ЦП - это цепочка $[X_{\gamma_1}^{(1)}, X_{\gamma_2}^{(2)}, X_{\gamma_m}^{(m)}]$.
+\item Для проверки подписи нужен сам документ, подпись, ОК. Проверка заключается в том, что подписи - это праобразы ОК.
+\end{enumerate}
+
+УЦ содержит ОК, и именно он удостоверяет что ключи принадлежат подписывающему А. Одноразовая подпись, потому что передав сообщение с ОК мы израсходовали и соответствующий ему (праобраз) СК.
+
+\begin{itemize}
+\item [-] одноразовость
+\item [-] размер (если рассматриваем ГОСТ, то размер ЦП при подписании 10 бит информации $256*10$)
+\item [+] одноразовость (есть технология, которая позволяет ОК строить в виде дерева Меркля)
+\item [+] очень быстрая подпись
+\item [+] такие схемы подписи стойкие против квантового компьютера. Нахождение праобраза от функции хэширования не поддаются квантовому компьютеру.
+\end{itemize}
+
+На этом принципе построена hash-based post-quantum crypto systems.
+
+Что нужно, чтобы подделать эту схему подписи?
+Допустим есть документ из трёх подписей и положим какое-то гамма = 0б значит чему равен в подписи соответствующий х? также нулю. а что нужно сделать чтобы заменить гамму на 1? для этого нужно чтобы в этой подписи появился х1 (являющийся праобразом у1).
+
+One time signature Winternitz (1979 в работе Merkle).
+\begin{enumerate}
+\item Берём хэш-функцию, М-документ (подписанный Д - это число из интервала от нуля до W-1 где W это параметр метода). СК - это случайная строка K (вход в ХФ). ОК - это $H^W(K)$. ОК легко получить из строки К. W - это число применений ХФ к К. Размер исходного текста М тоже ограничен.
+\item ЦП будет являться $Q = H^M(K)$.
+\item для проверки нужен ОТ, ЦП и ОК. Проверка заключается в том, что нужно проверить $H^{W-M}(Q) = H^W(K) = PK$. Так если подпись верна, то только обладатель СК мог её вычислить.
+\end{enumerate}
+Стойкость основана на том, что невозможно вычислить праобраз от ХФ. Некоторые минусы в том, что если есть подпись Q к документу M, то возможно легко создать подпись к документу M+1. Чтобы бороться с этим нужно ещё раз подписать документ, но выбрать для этого другую строку, в этом случае подпись будет $Q'=H^{W-M}(K')$.
+
+В качестве праобраза ЦП которая применяется международным сообществом используются именно эти подписи, основанные на трудности нахождения.
+
\end{document}
diff --git a/03-mmt-lab-02-report.tex b/03-mmt-lab-02-report.tex
index b9b3485..98e9adf 100644
--- a/03-mmt-lab-02-report.tex
+++ b/03-mmt-lab-02-report.tex
@@ -11,7 +11,7 @@
\thispagestyle{empty}
\makeBMSTUHeader
-\makeReportTitle{лабораторной}{2}{Мультимедийная веб-презентация}{Мультимедиа технологии}{}{Д.А. Видьманов}
+\makeReportTitle{лабораторной}{3}{Разработка мультимедийного приложения}{Мультимедиа технологии}{}{Д.А. Видьманов}
\newpage
\thispagestyle{empty}
\tableofcontents
@@ -19,277 +19,365 @@
\pagestyle{fancy}
\sloppy
\section{Цель}
-Целью работы является приобретение навыков создания мультимедийной веб-презентации, ознакомление с основными правилами и требованиями к созданию веб-презентаций. Создать мультимедийную веб-презентацию в соответствии с изученными требованиями по заданной теме.
+Целью работы является приобретение навыков создания мультимедийных приложений. Создать мультимедийное приложение.
\section{Задачи}
\begin{enumerate}
-\item Установить \code{node.js};
-\item Создать мультимедиа веб-презентацию, используя инструкции и рекомендации методического указания;
-\item Проверить ещё раз все требовании к презентации и создать отчет.
+\item Установить среду разработки;
+\item Описать критерии создания приложения;
+\item Написать код и отладить работу приложения.
\end{enumerate}
-\section{Методика и порядок выполнения}
-Технология создания мультимедийной веб-презентации к состоит из трёх этапов:
-\textbf{Первый этап.} Планирование презентации. Планирование включает:
-\begin{enumerate}
-\item подготовку инструментария;
-\item определение цели;
-\item определение задач презентации;
-\item подбор необходимой информации;
-\item планирование выступления и определение необходимого времени;
-\item формирование структуры презентации;
-\item проверку логики подачи материала;
-\item подготовку заключения.
-\end{enumerate}
-
-\textbf{Второй этап.} Разработка презентации. Разработка презентации включает:
-\begin{enumerate}
-\item поиск соответствия методологических требований подготовки слайдов с проектируемыми слайдами презентации;
-\item обеспечение вертикальной и горизонтальной логики содержания;
-\item разработку дизайна;
-\item Выбор оптимального соотношения текста и графической информации.
-\end{enumerate}
-
-\textbf{Третий этап.} Отладка и проверка презентации.
-
\section{Выполнение работы}
-\subsection{Создание основной презентации}
-В редакторе файлов гипертекстовой разметки создадим презентацию по теме «Мультимедиа технологии в корпоративных информационных системах», подберем оформление слайдов в соответствии с темой презентации. Первым слайдом презентации должен быть титульный слайд, на который выносятся тема и имя автора. В случае, если авторов несколько, имя докладчика подчеркивается. Слайд с содержанием представлен на рис. \hrf{pic:title}.
+Для написания мультимедйного приложения был выбран Qt Framework версии 5.12, и язык C++. Разрабатываемое приложение - это единый мультимедийный просмотрщик файлов (офисные документы, pdf, видео). Для реализации мультимедийности были выбраны несколько компонентов и создан экран, основной частью которого является область просмотра.
-\begin{figure}[H]
- \centering
- \includegraphics[width=12cm]{03-mmt-lab-02-title.png}
- \caption{Титульный слайд}
- \label{pic:title}
-\end{figure}
+\subsection{Функции. Открытие MPEG}
+Для открытия, воспроизведения и перемотки видеофайлов используются компоненты \code{QMediaPlayer} и \code{QVideoWidget}. Для работы с компонентами были описаны следующие слоты и функции:
+\begin{itemize}
+\item \code{void openMPEG(QString&)}. Достраивает в главном окне необходимые области, добавляет кнопки, инициализирует слайдеры, связывает слоты.
+\item \code{void closeMPEG()}. Отвязывает слоты, удаляет динамические объекты, очищает окно от элементов управления.
+\item \code{void playVideo()}. Начинает/продолжает проигрывание медиафайла.
+\item \code{void stopVideo()}. Завершает проигрывание файла. Позиция проигрывания перемещается в начало. Если после вызова этой функции вызвать \code{playVideo()}, то видео начнется сначала.
+\item \code{void pauseVideo()}. Приостанавливает проигрывание медиа. Позиция сохраняется. Если после вызова этой вызвать \code{playVideo()}, то видео продолжится с момента приостановки видео.
+\item \code{void changeVolume(int)}. Изменяет громкость звука. Слот вызывается сигналом \code{&QSlider::valueChanged} с передачей значения из компонента.
+\item \code{void changePosition()}. Принудительно перематывает видео ползунком. При вызове слота позиции видео присваивается значение с ползунка, отвечающего за перемотку видео.
+\item \code{void updatePosition(qint64)}. Слот реагирует на текущее положение курсора в проигрывателе и передает относительное положение ползунку перемотки видео, чтобы положение ползунка менялось в ходе проигрывания видео.
+\item \code{void updateDuration(qint64)}. При старте видеопотока общая продолжительность видео считается некоторое время, поэтому сразу идентифицировать не удастся. Слот привязан к сигналу о том, что для данного видеофайла изменилось (вычислилось) значение продолжительности.
+\item \code{void updateState(int)}. Справочный слот. Реагирует на Старт, Стоп и Паузу видео. Если необходимо в процессе работы выдавать еще какие-то команды - слот «узнаёт», в каком состоянии проигрывания медиафайл.
+\end{itemize}
-На втором слайде приводится краткий план презентации (рис. \hrf{pic:toc}).
-\begin{figure}[H]
- \centering
- \includegraphics[width=12cm]{03-mmt-lab-02-toc.png}
- \caption{Содержание презентации}
- \label{pic:toc}
-\end{figure}
+\subsection{Функции. Открытие офисных документов (XLSX, DOCX, PPTX)}
+Функции офиса используют компонент ActiveX и отображают содержимое, фактически открытое в приложениях офисного пакета.
-\subsection{Использование мультимедиа}
-Подбор материала для слайда необходимо вести таким образом, чтобы не перегружать его: один слайд, как правило, не должен оставаться на экране дольше одной минуты. Также не следует стремиться к слишком частой смене слайдов (рис. \hrf{pic:pic}).
-\begin{figure}[H]
- \centering
- \includegraphics[width=12cm]{03-mmt-lab-02-pic.png}
- \caption{Изображения в презентации}
- \label{pic:pic}
-\end{figure}
+\begin{itemize}
+\item \code{void openXLSX(QString&)}. Открывает XLSX файл и передает управление файлом приложению MS Excel. Отображение размещается внутри виджета.
+\item \code{void openDOCX(QString&)}. Открывает DOCX файл и передает управление файлом приложению MS Word. Отображение размещается внутри виджета.
+\item \code{void openPPTX(QString&)}. Открывает PPTX файл и передает управление файлом приложению MS PowerPoint. Отображение размещается внутри виджета. Дополнительно, здесь происходит подключение к слоту, вызывющему проигрывание в режиме презентации.
+\end{itemize}
+\subsection{Функции. Открытие документов PDF}
+\code{void openPDF(QString&)}. Открывает PDF файл и передает управление файлом приложению Adobe Acrobat. Отображение размещается внутри виджета.
+
+\subsection{Закрытие документа}
+\code{void closeFile()} - Закрывает открытый документ.
-Использование эффектов анимации (звука, видео) должно быть направлено исключительно на акцентирование внимания зрителя на каких-либо моментах доклада (например, рис. \hrf{pic:vid}).
-\begin{figure}[H]
- \centering
- \includegraphics[width=12cm]{03-mmt-lab-02-vid.png}
- \caption{Видео в презентации}
- \label{pic:vid}
-\end{figure}
-
-\section{Контрольные вопросы}
-\begin{enumerate}
-\item \textbf{Для чего использовался npm? Что это такое и какие команды вы знаете?} Для запуска интерактивности веб-страницы с презентацией. npm - это пакетный менеджер и проектов для node.js.
-\item \textbf{Что такое git? Кратко объясните его суть?} Это система контроля версий. Его суть в распределении хранения исходных кодов проекта.
-\item \textbf{Для чего в проекте нужен git?} Для версионирования исходной презентации.
-\item \textbf{В чём преимущество веб-презентации в сравнении с простой презентацией Powerpoint?} В отсутствии необходимости использовать локальный инструмент и возможности распределения работы над презентацией среди множества исполнителей.
-\item \textbf{Какие есть недостатки веб-презентаций?} Необходимость устанавливать дополнительное нестандартное программное обеспечение и изучать язык разметки.
-\item \textbf{Какие трудности возникают в процессе разработки веб-презентаций?} Не обнаружено.
-\end{enumerate}
\section{Выводы}
-В ходе выполнения лабораторной работы были приобретены навыки создания мультимедийной веб-презентации, произошло ознакомление с основными правилами и требованиями к созданию веб-презентаций а также инструментарием по созданию веб-презентаций Shower. Была создана мультимедийная презентацию в соответствии с изученными требованиями по заданной теме.
+Для разработки мультимедийного приложения необходимо изучить разнообразный инструментарий, позволяющий манипулировать мультимедийными данными. Написание мультимедийнх приложений тесно связано с обработкой больших объёмов данных или использованием внешних библиотек и приложений. Мультимедийные приложения возможно написать для любых платформ и внедрить для любых категорий пользователей.
\newpage
\appendix
\setcounter{secnumdepth}{0}
-\section*{Приложения}
-\addcontentsline{toc}{section}{Приложения}
+\section{Приложения}
\renewcommand{\thesubsection}{\Asbuk{subsection}}
-\subsection{Полный листинг разметки презентации}
-\begin{lstlisting}[language=HTML,style=CCodeStyle]
-
-
-
- МТвКИС
-
-
-
-
-
-
-
-
Мультимедиа технологии в корпоративных информационных системах
-
[ИУ3-31М] И.И.Овчинников
-
+ if (m_filename.endsWith(".pdf")) {
+ openPDF(m_filename);
+ } else if (m_filename.endsWith(".pptx")) {
+ openPPTX(m_filename);
+ } else if (m_filename.endsWith(".docx")) {
+ openDOCX(m_filename);
+ } else if (m_filename.endsWith(".xlsx")) {
+ openXLSX(m_filename);
+ } else if (m_filename.endsWith(".mpeg")) {
+ openMPEG(m_filename);
+ }
+ }
+}
-
-
Мультимедиа технологии в корпоративных информационных системах
-
[ИУ3-31М] И.И.Овчинников
-
-
-
-
-
-
В ближайшие 15 минут
-
-
Что такое мультимедиа и корпоративная система?
-
Что можно хранить, как можно использовать и как это передавать?