Изложены основы математического аппарата, используемого в современной криптографии; показано его применение при анализе криптосистем и выборе их параметров. Особое внимание уделено вопросам построения криптосистем с открытым ключом. Описание большинства рассмотренных алгоритмов приведено в виде программ на языке программирования Си. Пособие соответствует курсам лекций, которые авторы читают в МГТУ им. Н.Э. Баумана и в МФТИ. Для студентов и аспирантов, изучающих дисциплины по информационной безопасности.