Глава 2. Криптоцентр
Глава 2. Криптоцентр
– Толя, я не знаю в Спецуправлении ни одного человека, который бы хорошо о тебе отзывался.
Славик был опытным человеком, успел побывать советником в Афганистане и сейчас работал в нашем отделении. А говорил он так о К., инженере тоже из нашего отделения, но человеке достаточно странном и уж явно не из выпускников 4 факультета.
Где-то в 85 или в 86 году молодые ребята во главе со Славой решили сделать шифратор на базе портативного микрокалькулятора «Электроника МК-85», который серийно выпускался на заводе «Ангстрем» в Зеленограде. Какую выбрать криптосхему для такого шифратора, учитывая, что ресурсы калькулятора (память и скорость процессора) крайне ограничены? Само собой разумеется, что не американо-советского крокодила DES-ГОСТ, это все равно, что двигатель от танка пытаться в горбатый «Запорожец» поставить. Они пришли в Теоретический отдел (в то время я еще был там), где им рассказали про шифратор «Ангстрем-3» и как в нем нужно выбирать параметры. Эта схема их вполне устроила и модернизированный «Ангстрем-3» лег в основу программы, предназначенной для реализации с помощью калькулятора «Электроника МК-85». Эту программу надо было записать в ПЗУ калькулятора вместо серийной программы, предназначенной для бытовых целей. Запись и перепайка серийного ПЗУ была возможна только в заводских условиях, да и к тому же немного изменился дизайн и название клавиш на панели, поэтому нужен был человек, который возьмет на себя эту гнуснейшую функцию: связь с советским заводом конца 80-х годов.
Таким «заводским толкачом» стал К., человек, не имевший специального криптографического или математического образования, не бывший никогда офицером, но обладавший иными качествами, которые мне, к сожалению, пришлось познать позже на своем горьком опыте. А по части отношений с людьми Слава был намного опытнее меня, но его словам о К. я, к сожалению, не придал тогда значения.
Модернизированный калькулятор назвали «Электроника МК-85 С». Он уже не выполнял никаких функций калькулятора, но в него можно было ввести секретный ключ длиной 100 десятичных цифр и с его помощью осуществлять симметричное зашифрование и расшифрование текстовой или чисто цифровой информации, вводимой с клавиатуры, а шифровка или открытый текст высвечивались на экране. Никакие периферийные устройства, кроме сетевого адаптера, к этому калькулятору не подключались.
Этими калькуляторами изначально предполагалось оснастить Советскую Армию, где долгое время использовались очень громоздкие и неудобные переговорные таблицы, предназначенные для засекречивания переговоров на низовых уровнях: отделение, взвод, рота. Но постепенно планы использования «Электроники МК-85 С» все разрастались и потребовалась программная реализация этого калькулятора на персональном компьютере, а также программная система для выработки секретных ключей к калькулятору.
К. был в нашем отделении и, следовательно, формально находился у меня в подчинении. Но он не был офицером, к тому же подробности его работы «заводским толкачом» мне были абсолютно неинтересны, они, как я понял позже, сводились в основном к шушуканью с «нужными» людьми, не всегда, естественно, бескорыстному. Как специалист он был никакой, не мог сам написать или даже грамотно проверить написанную кем-то программу, о криптографии имел представление на уровне солдата из части радиоперехвата, где когда-то служил и, по его словам, красил траву перед приездом в часть генералов-начальников 8 ГУ КГБ. Но у него были те качества, которыми не обладало большинство людей в Спецуправлении: пронырливость, хитрость, жадность, легкость, с которой он раздавал направо-налево различные обещания, а потом обязательно под разными предлогами обманывал связавшихся с ним людей, полное отсутствие такого понятия, как честь и доброе имя в глазах окружающих. На понимание этих простых житейских фактов у меня, к сожалению, ушло несколько печальных лет общения с этой мерзкой личностью.
Но поначалу мне даже нравилась его активность. К. выделялся из общей полусонной массы людей, всегда куда-то спешил, был все время «при деле», производил впечатление делового человека, полного грандиозных замыслов. Казалось, сам бог велел мне попробовать вылезти из КГБшного инкубатора через общение с ним. Какое мне дело до его темных сторон, программировать я научился, теперь пора учиться свои программы рекламировать и продавать, чтобы они не оставались «вещью в себе», а реально работали и приносили взаимное удовлетворение разработчику и потребителю.
Первыми на свет божий появились программные реализации калькулятора «Электроника МК-85 С» и системы выработки секретных ключей к нему. На идею программы выработки секретных ключей меня натолкнули женщины нашего отделения. В Спецуправлении работали, в основном, мужчины, и для того, чтобы коллектив не становился чрезмерно «мужским», начальство старалось в каждой рабочей комнате держать по крайней мере одну женщину. Их функции сводились, в основном, к техническим операциям: подготовкам отчетов, программированию каких-то простых задач и, естественно, раздаче продовольственных заказов, соблюдению очередности дежурства «по заказам» и тому подобное. С появлением компьютеров их основным времяпровождением в нашем отделении стала одна из самых первых и очень популярных компьютерных игр TETRIS. Но ведь это же готовый генератор случайных чисел! Моменты времени при нажатии на клавиши во время игры – это и есть случайная последовательность, которую можно использовать для генерации секретных ключей для «Электроники МК-85 С».
Сказано – сделано. Несложно было подготовить простенькую программку, которая фиксировала моменты времени при нажатии на клавиши и затем я, руководитель отделения, стал просить женщин в рабочее время играть в TETRIS: для проверки генератора надо было набрать статистику вырабатываемых знаков и просчитать ее характеристики. Просчитали: все нормально, практически случайное и равновероятное распределение.
Но все-таки калькулятор «Электроника МК-85 С» был весьма примитивным устройством, разрабатываемым для низовых звеньев Советской Армии. Его первоначальная программная реализация тоже не отличалась богатством функциональных возможностей: зашифровать и расшифровать, результат выдать на экран, такие программы для меня уже были неинтересны. Ведь возможности компьютера позволяли реализовывать практически все мыслимые в то время криптографические фантазии, я уже почувствовал вкус к программированию, к хорошему и удобному интерфейсу, была огромная жажда сделать что-то свое, нетривиальное, но в то же время понятное для пользователя, даже самого непросвещенного в криптографии. Например, используя в качестве прототипа популярный интерфейс типа Norton Commander, сделать систему шифрования и электронной подписи файлов, заложить туда возможности как симметричного, так и асимметричного шифрования, ввести систему выработки секретных и открытых ключей, а также учет использования криптографических функций. Такую систему естественно было назвать Криптоцентр.
Это был конец 1991 года. Жуткое время: магазины пустые в самом что ни на есть прямом смысле этого слова, вечно полуголодное состояние, что будет впереди – непонятно, КГБ, называемое теперь по-другому, но сохранившее все прежние порядки, надоело до чертиков. Надежда только на компьютер, даже скорее не надежда, а почти религиозная вера в него, в его возможности, в то, что когда-нибудь с его помощью удастся вырваться на волю, ощутить себя свободным человеком, не думающим только о том, где и как достать, раздобыть, урвать то, что жизненно необходимо человеку. И вспоминать пережитое, как страшный, кошмарный сон.
Но все это после… А пока, в конце 1991 года, нужно было самому найти себе интересное дело, которое целиком бы поглотило, помогло бы оторваться от жуткой реальности, забыть вечно полуголодное состояние и страх перед будущим. Таким делом стал для меня Криптоцентр, моя первая реальная программа, которая предполагалась для широкого применения. Конечно же, никакие мои начальники не давали насчет Криптоцентра никаких указаний, это было время безвластия в Спецуправлении, когда каждый мог заниматься практически всем, чем пожелает. Кто-то стал подрабатывать в различных коммерческих структурах, кто-то просто слонялся целыми днями без дела, кто-то политизировался до посинения, но мне все это было неинтересно. Гораздо интереснее было писать Криптоцентр, осваивая при этом еще глубже мой любимый компьютер, все его неограниченные интерфейсные возможности, восхищаясь его простотой и надежностью. К тому времени у меня уже появился настоящий Notebook, который я стал таскать к себе домой, и вместо просиживания в своем кабинете допоздна, я стал пораньше уходить с работы, и дома, на кухне, тоскливо глядя на пустой холодильник, пытался окунуться в придуманный и реализуемый мною в абстрактном виртуальном мире Криптоцентр. И это помогало, сильно помогало продержаться в эти труднейшие месяцы, не давало выхода накапливавшемся чувствам безысходности, злости, обиды и несправедливости. Да и, пожалуй, многим в стране уже приелись зрелища, а все больше хотелось хлеба и хоть какой-то стабильности. Хоть какая-то стабильность наступила (впрочем, она и раньше была): самым стабильным в это время в России стало воровство.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Глава 16
Глава 16 16.1. Дескриптор используется совместно родительским и дочерним процессами, поэтому его счетчик ссылок равен 2. Если родительский процесс вызывает функцию close, счетчик ссылок уменьшается с 2 до 1, и пока он больше нуля, сегмент FIN не посылается. Еще одна цель вызова
Глава 8 RPM
Глава 8 RPM Фирма Microsoft и Windows уже приучили нас, что установка любой программы начинается с запуска программ Setup или Install. Затем, после согласия с лицензионным соглашением (по которому фирма-производитель обязывает вас установить программное обеспечение только на один
Глава 17 DNS
Глава 17 DNS DNS – это Доменная Система Имен (Domain Name System). DNS преобразует символические имена машин в IP-адреса и наоборот – из IP-адреса в символическое имя. Для чего это нужно? Во-первых, человеку легче запомнить осмысленное имя – типа vasya.ru чем 195.66.195.42, а для компьютера проще
Глава 20 FTP
Глава 20 FTP Эта глава посвящена протоколу FTP, настройке сервера FTP, проблемам конфигурации и безопасности сервера.Протокол FTPПротокол FTP (File Transfer Protocol, протокол передачи файлов) предназначен для передачи файлов в сети Интернет. Этот протокол был разработан на заре эры
ГЛАВА 16
ГЛАВА 16 Понятие о shell–сценарииВ shell–сценарий может включаться одна или несколько команд; здесь нет общепринятых правил. Зачем же создавать целый сценарий ради двух–трех команд? Все зависит от предпочтений пользователя.В этой главе рассматриваются следующие
ГЛАВА 17
ГЛАВА 17 Проверка условийПри создании сценария уточняется идентичность строк, права доступа к файлу или же выполняется проверка численных значений. На основе результатов проверки предпринимаются дальнейшие действия. Проверка обычно осуществляется с помощью команды test.
ГЛАВА 18
ГЛАВА 18 Управляющие конструкцииВсе функциональные сценарии должны предлагать возможности по выбору возможных вариантов. При определенных условиях сценарии должны выполнять обработку списков. Этим вопросам посвящена настоящая глава. Кроме того, в ней описывается
ГЛАВА 19
ГЛАВА 19 Функции интерпретатора shellДо сих пор весь программный код сценариев данной книги выполнялся последовательно от начала до конца программы. Подобный подход неплох, но при этом некоторые фрагменты кода, рассмотренного в наших примерах, дублируются в пределах
ГЛАВА 20
ГЛАВА 20 Передача параметров сценариюВ предыдущих главах рассматривались способы передачи параметров сценариям с помощью специальных переменных $1...$9. Специальная переменная $# указывает количество передаваемых параметров. Также обсуждалась конструкция usage. Эта
ГЛАВА 21
ГЛАВА 21 Создание экранного выводаС помощью shell–сценариев можно создавать профессионального вида экраны, позволяющие реализовать интерактивное взаимодействие пользователя с системой. Для этого достаточно располагать цветным монитором и использовать команду tput.В
ГЛАВА 22
ГЛАВА 22 Создание экранного вводаКогда речь идет об экранном вводе, или вводе данных, подразумевают ввод информации (в нашем случае с помощью клавиатуры), а затем — проверку достоверности введенных данных. Если данные удовлетворяют неким критериям, они
ГЛАВА 23
ГЛАВА 23 Отладка сценариевОдной из самых сложных задач при создании shell–сценариев является их отладка. Желательно, чтобы пользователь, выполняющий эту задачу, получил консультации на данном этапе. Чтобы избежать распространенных ошибок, достаточно следовать указанному
ГЛАВА 24
ГЛАВА 24 Встроенные команды интерпретатора shellВ предыдущих главах нам уже встречались конструкции, встроенные в интерпретатор shell Напомним, что речь идет о командах, которые не находятся в каталоге /bin или usr/bin, а встроены в интерпретатор Bourne shell. Скорость выполнения
ГЛАВА 25
ГЛАВА 25 Дальнейшее изучение конструкции "документ здесь"При рассмотрении стандартного потока ввода и вывода, а также циклов while уже обсуждалась конструкция "документ здесь". Описывались методика пересылки электронной почты и способы формирования экранов меню, но
ГЛАВА 26
ГЛАВА 26 Утилиты интерпретатора shellВ этой главе рассматриваются следующие темы: • создание датируемых имен файлов и временных файлов; • сигналы; • команда trap и способы перехвата сигналов; • команда eval; • команда
ГЛАВА 28
ГЛАВА 28 Сценарии уровня выполненияЕсли при загрузке системы вам нужно автоматически запустить приложение, службу или сценарий либо корректно завершить их работу при перезапуске системы, то необходимо создать сценарий уровня выполнения. Почти все варианты системы Linux, а