Информационные технологии шагают по планете. Пожалуй, уже сложно найти организацию, предприятие или фирму, офис которой не освещали бы экраны мониторов. Компьютеризация делопроизводства — свершившийся факт. Вспомним, как все начиналось. Увеличивалась емкость магнитных носителей информации. В популярных статьях авторы вещали о том, сколько страниц текста (потом — книг, «Больших советских энциклопедий», библиотек…) можно записать на дискету или жесткий диск. Появились оптические носители невообразимой емкости. Печатные машинки ушли в прошлое, уступив место компьютерам. Секретари хранят подготовленные шаблоны документов и перед распечаткой лишь подставляют нужные данные вместо того, чтобы всякий раз «отстукивать» полный текст.
В околокомпьютерных кругах витают оптимистические ожидания сокращения объема бумажной документации, оценивается экономический эффект от переноса информации с бумаги «в цифру», подсчитываются кубометры спасенных от вырубки зеленых насаждений. В то же самое время исследования, которые были проведены в странах с развитой информационной инфраструктурой, показали не уменьшение, а, наоборот, увеличение расхода бумаги. И дело не только в том, что современные принтеры в случае небольшой опечатки, допущенной сотрудником в тексте договора или платежного документа, позволяют производить макулатуру со скоростью от 12 листов в минуту. Ведь документ можно было бы вообще не распечатывать, ошибку исправить прямо в файле и передать партнерам или банку файл с корректным документом — и никакой бумаги. Ведь прочитать документ можно и с экрана монитора. Однако, ведя дела таким образом, можно попасть в ситуацию, когда недобросовестный партнер исправит в подготовленном вами договоре сумму сделки и предъявит вам этот файл как исходный. Как определить, что в файле сохранено именно то соглашение, которое было достигнуто в результате переговоров? По дате и времени внесения изменений? Но ведь эта информация подвержена несанкционированному изменению точно так же, как и текст документа! По размеру файла?
Но ведь число «1.000.000» занимает в файле столько же места, что и «9.999.999»! Неужели тупик? Неужели созданная инфраструктура, позволяющая передавать текст, звук и изображения практически мгновенно из одной точки земного шара в другую, способная многократно ускорить ведение бизнеса, а значит, увеличить его прибыльность, бессильна помочь в случаях, когда требуется оттиск печати и собственноручная подпись? Как известно, любая техническая проблема может быть успешно решена, если для ее решения предоставлено достаточное количество времени и денег. Описанная выше ситуация не стала исключением. Информационные технологии оказались слишком привлекательной сферой для большого бизнеса. А отсчет времени начался с тех незапамятных времен, когда Мухамед ибн Муса ал-Хорезми, уроженец Хивы, впервые сформулировал правила выполнения арифметических действий над целыми числами и простыми дробями. Однако обо всем по порядку.
Чтобы рассказать о том, как защитить файлы с текстами договоров, соглашений, обязательств, отчетов, платежных инструкций от несанкционированных изменений, нужно затронуть тему криптографии. За многие века тайнопись (так переводится с греческого слово «криптография») прошла длинный путь от искусства составления головоломок до науки, базирующейся на прочном математическом фундаменте. Именно использование математических методов для выполнения обратимого преобразования текстов в непроизносимую кашу из букв, цифр, знаков препинания и прочих графических символов позволило создать стойкие шифры. Может возникнуть вопрос, какое отношение имеет математика к обработке текстов?
Но ведь текст состоит из слов, а слова, в свою очередь, состоят из букв (в этой статье не рассматриваются тексты на восточных языках, записанные с использованием иероглифов). Упорядоченное множество букв составляет алфавит того языка, на котором написан текст. Буквы алфавита можно пронумеровать, то есть каждой из них можно поставить в соответствие число. Иными словами, существует взаимно однозначное соответствие между множеством букв и подмножеством натуральных чисел. А раз так, то от рассмотрения букв можно перейти к рассмотрению чисел. C числами можно выполнять арифметические действия. Арифметические действия могут выстраиваться в длинные цепочки. Способ, с помощью которого из одного числа получается другое, называется функциональным преобразованием и записывается в виде Y = F (X), где X — аргумент функции F, а Y — ее результат. После выполнения преобразований от чисел можно снова вернуться к буквам, из получившихся букв можно сложить слова и получить текст, который, скорее всего, будет нечитаемым. Таким образом получается шифротекст — запись исходного текста в виде, непригодном для прочтения.