logo
Рожков_Ниссенбаум_ТЧМК_лекции

Введение

Криптография, или тайнопись, известна с незапамятных времен. Нужда в ней возникала всякий раз, когда людям приходило в голову, что-либо скрыть. От противников, обычно, скрывали военные или государственные секреты, а от непосвященных тайные истины и обряды.

Криптографию часто путают с ее сестрой – теорией кодирования. Если вы, просматривая страницу Интернета, случайно, поставите в браузере какой-нибудь экзотический шрифт, то на экране увидите знаменитые «кракозябры», выглядящие как шифртекст. Однако это никакая не криптография. Тот, кто узнает, что означает каждый из экзотических символов, тоже сможет читать «шифртекст» так же как и вы.

Кодирование можно использовать для сокрытия тайны сообщения, но очень ограниченное время, пока способ кодирования не станет общеизвестным. В кодировании сокрытие информации обеспечивается секретностью алгоритма кодирования. В криптографии же тайна обеспечивается секретностью некоторого параметра алгоритма, называемого ключом. Этот параметр может изменяться и его всегда нужно держать в секрете.

Поскольку шифровать приходится тест, звук, изображение, а не просто набор цифр и символов, то, кажется, что чистая математика, а тем более ее самый абстрактный раздел теория чисел, в этом деле может помочь очень мало. К счастью для математиков, и, к сожалению, для потребителей, это совсем не так. В конечном счете, все сводится к математике, к алгебре, к теории чисел.

Представьте себе огромный корабль, перевозящий товары и пассажиров. В нем много всякой всячины, но главное его предназначение – это доставка груза в порт назначения. Корабль перемещается силой винтов, винты вращаются двигателем, а все в движение приводит микровзрыв в маленьком пространстве в головке цилиндра двигателя – это истинное сердце корабля.

Криптографическая система тот же корабль. В ней есть аппаратная часть – шифраторы, компьютеры, вспомогательное оборудование, например, перекодирующее, изображение с видеокамеры в поток бит для шифратора. Программная часть – операционные системы, драйвера, прикладные и сервисные программы. Команда крипто корабля – шифровальщики, администраторы, агенты, охранники, аудиторы, программисты, пользователи и т.д. И все это нужно для того, чтобы крипто контроллер, в который на аппаратном уровне вшит математический алгоритм, выполнил преобразование, переводящее один набор бит в другой.

Конечно, для большинства пользователей не обязательно знать, что именно вшито в этот крипто чип, какие операции запрограммированы в крипто библиотеке Windows или Unix. Но профессиональные защитники информации, конечно, должны об этом иметь представление. Если продолжить сравнение с кораблем. Не обязательно знать всю теорию двигателя внутреннего сгорания, но нужно понимать на каком горючем он работает, для чего нужен карбюратор, и почему под выхлопной трубой плохо дышится.

Все современные крипто алгоритмы используют важные понятия алгебры – векторные пространства, линейные преобразования, неприводимые многочлены, конечные поля, расширения полей и колец, конечные группы, перестановки, эллиптические кривые, признаки простоты простых чисел и т.д.

Чтобы не быть голословным, перечислим понятия, используемые в алгоритме цифровой подписи - основы товарно-денежных отношений в Интернете. Это поле Галуа, эллиптическая кривая над конечным полем, примитивный элемент поля, порождающий элемент группы, простые числа. К обсуждению этих важных алгебраических понятий мы и приступаем.

Главная цель этого обсуждения - показать, как вся теоретико-числовая техника работает в криптографии. Формальности можно уточнить в любом из классических учебников по алгебре и теории чисел. Часть из них приведена в списке литературы.

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