forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pgp.tex
38 lines (31 loc) · 5.68 KB
/
pgp.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
\section{Pretty Good Privacy}
\selectlanguage{russian}
В качестве примера передачи файлов по сети с обеспечением аутентификации, конфиденциальности и целостности рассмотрим систему PGP (\langen{Pretty Good Privacy}), разработанную Филом Циммерманном (\langen{Phil Zimmermann}) в 1991 г. Изначально система предлагалась к использованию для защищённой передачи электронной почты. Стандартом PGP является OpenPGP. Примерами реализации стандарта OpenPGP являются GNU Privacy Guard (GPG) и netpgp, разработанные в рамках проектов GNU и NetBSD соответственно.
Каждый пользователь обладает одной или несколькими парами из закрытого и открытого ключей. Ключи используются как для расшифрования получаемых пользователем сообщений, так и для генерации электронных подписей отправляемых сообщений. Также пользователь хранит открытые ключи других участников системы, чтобы иметь возможность отправлять им зашифрованные сообщения и аутентифицировать отправителей принимаемых сообщений.
В системе PGP каждое передаваемое сообщение подписывается закрытым ключом отправителя, затем сообщение шифруется блочной криптосистемой на случайно выбранном секретном сеансовом ключе. Сам сеансовый ключ шифруется криптосистемой с открытым ключом на открытом ключе получателя.
Свои закрытые ключи отправитель хранит в зашифрованном виде. Набор ключей называется связкой закрытых ключей. Шифрование закрытых ключей в связке производится симметричным шифром\index{шифр!симметричный}, ключом которого является функция от пароля, вводимого пользователем. Шифрование закрытых ключей, хранимых на компьютере, является стандартной практикой для защиты от утечки, например, в случае взлома ОС, утери ПК и~т.\,д.
Набор открытых ключей других пользователей называется связкой открытых ключей.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.9\textwidth]{pic/pgp}
\caption{Схема обработки сообщения в PGP\label{fig:pgp}}
\end{figure}
На рис.~\ref{fig:pgp} представлена схема обработки сообщения в PGP для передачи от $A$ к $B$. Использование аутентификации, сжатия и блочного шифрования является опциональным. Обозначения на рисунке следующие:
\begin{itemize}
\item Пароль -- пароль, вводимый отправителем для расшифрования связки своих закрытых ключей;
\item $D$ -- расшифрование блочной криптосистемы для извлечения секретного ключа ЭП отправителя;
\item $SK_A$ -- закрытый ключ ЭП отправителя;
\item $ID_{SKa}$ -- идентификатор ключа ЭП отправителя, по которому получатель определяет, какой ключ из связки открытых ключей использовать для проверки подписи;
\item $m$ -- сообщение (файл) для передачи;
\item $h(m)$ -- криптографическая хэш-функция;
\item $E_{SKa}$ -- схема ЭП на секретном ключе $SK_A$;
\item $\|$ -- конкатенация битовых строк;
\item $Z$ -- сжатие сообщения алгоритмом компрессии;
\item $RND$ -- криптографический генератор псевдослучайной последовательности;
\item $K_s$ -- сгенерированный псевдослучайный сеансовый ключ;
\item $E_{Ks}$ -- блочное шифрование на секретном сеансовом ключе $K_s$;
\item $PK_B$ -- открытый ключ получателя;
\item $ID_{PKb}$ -- идентификатор открытого ключа получателя, по которому получатель определяет, какой ключ из связки закрытых ключей использовать для расшифрования сеансового ключа;
\item $E_{PKb}$ -- шифрование сеансового ключа криптосистемой с открытым ключом на открытом ключе $B$;
\item $c$ -- зашифрованное подписанное сообщение.
\end{itemize}