Содержание
GnuPG использует несколько криптографических методов, включая симметричные шифры, шифры с открытым ключом, и однонаправленное хэширование. Если Вы используете GnuPG, то Вам необходимо, хотя бы в общих чертах, понимать как работают эти методы.
Эта глава содержит краткое описание основных криптографических методов, используемых в GnuPG. Для более серьёзного знакомства с криптографией Вам следует обратиться к другим источникам. Хорошая книга, для дальнейшего изучения: Bruce Schneier ``Applied Cryptography''. (Имеется перевод на русский язык: Б.Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си.-М.:Издательство ТРИУМФ, 2002 - 816с.:ил.)
Предположим, что Алиса хочет переслать Бобу сообщение M таким образом, чтобы никто кроме Боба не мог прочитать это сообщение. Алиса может преобразовать это сообщение в некоторую недоступную для прочтения посторонними лицами форму C=EK(M) и в таком виде переслать Бобу. Боб получив C выполняет обратное преобразование и восстанавливает исходное сообщение M=DK(C). Принято называть исходное сообщение M открытым текстом, его закрытую форму C шифртекстом, преобразование EK(M) функцией зашифрования, а DK(C) функцией расшифрования. Дополнительный параметр K функций зашифрования и расшифрования называется ключом. Преобразования E и D обычно известны и не сохраняются в тайне, но для вычисления значения DK(C) необходимо ещё знать ключ расшифрования K, соответствующий тому ключу, который был использован при зашифровании. Без знания ключа расшифровать сообщение нельзя. Значение ключа выбирается из некоторого множества допустимых значений, достаточно большого, чтобы сделать перебор всех возможных ключей практически нереализуемым.
Вместе функции зашифрования и расшифрования образуют шифр. Если в шифре ключ расшифрования совпадает с ключом зашифрования, или может быть легко из него получен, то шифр называется симметричным. Если ключ расшифрования практически невозможно получить из ключа зашифрования, то шифр называется шифром с открытым ключом или ассиметричным. В ассиметричных шифрах ключ зашифрования называется открытым (public key), а соответствующий ему ключ расшифрования секретным или закрытым (secret key, private key). Открытый и секретный ключи образуют пару ключей (keypair).