GnuPG использует несколько криптографических методов, включая симметричные шифры, шифры с открытым ключом, и однонаправленное хэширование. Вы можете использовать основные функции GnuPG без изучения этих методов, но для более разумного применения желательно, все же, кое-что знать.
Эта глава - введение в основные криптографические методы, используемые в GnuPG. Более подробно эти вопросы рассматриваются в других источниках. Хорошая книга, для дальнейшего изучения: Bruce Schneier ``Applied Cryptography''. (Имеется перевод на русский язык: Б.Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си.-М.:Издательство ТРИУМФ, 2002 - 816с.:ил.)
Симметричный шифр это шифр использующий один ключ для зашифрования и расшифрования. Стороны, общающиеся при помощи симметричного шифра, должны договориться о ключе до начала обмена сообщениями. После того как они договорились, отправитель зашифровывает сообщение, используя ключ, отправляет получателю, и получатель расшифровываетет сообщение, используя тот же самый ключ. Например, немецкая Enigma - симметричный шифр, ежедневные ключи распространялись как книги кодов. Каждый день посылающий или принимающий радист должен был найти в своей копии книги кодов ключ на текущий день. Радиограммы в этот день зашифровывались и расшифровывались этим ключом. Современные примеры симметричных шифров: 3DES, Blowfish, IDEA и ГОСТ.
Хороший шифр заключает всю защиту в ключе, но не в алгоритме. Другими словами, знание используемого алгоритма не должно помочь взломщику. Знание алгоритма понадобится ему, только когда он получит ключ. Шифры, используемые в GnuPG, обладают этим свойством.
Так как вся защита заключена в ключе, то очень важно, чтобы его было трудно подобрать. Другими словами, множество возможных ключей, т.е. пространство ключей, должно быть достаточно велико. Будучи в Лос Аламосе, Ричард Фейнман прославился умением вскрывать сейфы. Для поддержания мистификации он даже приносил с собой набор инструментов, включая старый стетоскоп. В действительности, он использовал набор уловок для уменьшения числа комбинаций, а затем просто подбирал правильную. Проще говоря, он уменьшал размер пространства ключей.
Британия использовала машины для подбора ключей, во время Второй Мировой войны. Немецкая Enigma имела очень большое пространство ключей, но Англичане построили специальные вычислительные механизмы, "Bombes", которые перебирали ключи пока на находили нужный. Иногда они находили ключ на текущий день через несколько часов после начала его использования, а иногда не находили совсем. "Bombes" не являлись компьютерами, но были их предшественниками.
Современные компьютеры могут перебирать ключи с огромной скоростью, поэтому размер ключа так важен в современных криптосистемах. Шифр DES использует ключ длиной 56 бит, т.е. существует 256 возможных ключей. 256 это 72,057,594,037,927,936 ключей. Много, но обычный компьютер может перебрать их за считаные дни, а специализированный за часы. С другой стороны, более поздние алгоритмы - 3DES, Blowfish и IDEA используют ключи длиной 128 бит, что означает 2128 возможных ключей. Это намного больше, и, даже, если все компьютеры на нашей планете объединить, им потребуется времени больше, чем возраст вселенной, для нахождения ключа.