forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
public-key_cryptosystems.tex
22 lines (15 loc) · 5.5 KB
/
public-key_cryptosystems.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%\subsubsection{Криптосистемы с открытым ключом}
\subsection{Криптосистемы с открытым ключом}
\selectlanguage{russian}
Криптосистема называется криптосистемой \textbf{с открытым ключом}\index{криптосистема!с открытым ключом} или \textbf{асимметричной} криптосистемой\index{криптосистема!асимметричная}, если один из пары ключей $K_1, К_2$, называемый открытым ключом, известен всем пользователям, включая криптоаналитика, а другой ключ известен одному и только одному из пользователей. Иногда, открытый ключ распространяется только между доверенными пользователями, то есть, он не является секретным, но и не является общедоступным. Естественно, что
\[ K_1 \neq K_2. \]
Пусть $K_1$ -- открытый ключ, а $K_2$ -- секретный ключ известный только пользователю $B$. Тогда криптосистема с открытым ключом реализует \emph{однонаправленную} систему \textbf{шифрования с открытым ключом} от всех участников к одному получателю $B$. Любой из пользователей может зашифровывать сообщения для $B$, используя открытый ключ, и только один $B$ может расшифровывать эти сообщения, пользуясь известным только ему секретным ключом.
Пусть $K_1$ -- секретный ключ известный только $A$, а $K_2$ -- открытый ключ. Тогда криптосистема с открытым ключом реализует \textbf{электронную подпись}. Пользователь $A$ выполняет шифрование (подписание) сообщения своим секретным ключом $K_1$, а все остальные пользователи могут расшифровать подписанное сообщение с помощью открытого ключа $K_2$. Причем, один и только один $A$ может зашифровывать сообщение так, чтобы сообщение можно было расшифровать открытым ключом. Остальные пользователи, расшифровав сообщение (подпись) открытым ключом, могут убедиться, что подписанное сообщение было зашифровано $A$ и никем другим.
В системах шифрования с открытым ключом должны выполняться следующие требования к функциям шифрования и расшифрования:
\begin{itemize}
\item функция $Y = E_{K_1}(X)$ при известном открытом ключе шифрования $K_1$ должна быть \emph{однонаправленной}, т.е. должна легко вычисляться при заданных аргументах $X, K_1$, но вычисление аргумента $X$ при заданном значении $Y$ должно быть вычислительно трудным;
\item вычисление секретного ключа расшифрования $K_2$ при заданном открытом ключе $K_1$ и известных функциях $E_{K_1}(X)$ и $D_{K_2}(Y)$ должно быть вычислительно трудной задачей.
\end{itemize}
Для электронной подписи требования такие же, если пользователей поменять местами.
На сегодняшний день симметричные криптосистемы обладают высокой скоростью шифрования данных (десятки мегабайт в секунду на ПК), а известные криптосистемы с открытым ключом -- низкой скоростью (килобайты в секунду на ПК). В то же время общедоступность открытого ключа для всех пользователей в асимметричной криптосистеме позволяет строить \emph{удобные} системы \textbf{аутентификации}\index{аутентификация} пользователей и последующего распределения ключей для всех пар пользователей, так как нет необходимости держать открытый ключ в секрете.
Поэтому симметричные криптосистемы из-за высокой скорости используют для шифрования данных, тогда как асимметричные -- для аутентификации и создания секретных \textbf{сеансовых} ключей\index{ключ!сеансовый} для симметричного шифрования данных.