 Diasoft Key (C) 1992, Научно-производственное предприятие Diasoft





       ┌───────╖  ┌─╖                               ┌───╖  ┌─╖
       ╘╕ ╔══╕ ║  ╘═╝                               │ ╔═╝  │ ║
        │ ║  │ ║  ┌─╖   ┌─────╖  ┌─────╖  ┌──────╖ ┌┘ ╙╖  ┌┘ ╙╖
        │ ║  │ ║  │ ║   ╘═══╕ ║  │ ╒═══╝  │ ╔══╕ ║ ╘╕ ╔╝  ╘╕ ╔╝
        │ ║  │ ║  │ ║  ┌────┘ ║  │ └───╖  │ ║  │ ║  │ ║    │ ║
        │ ║  │ ║  │ ║  │ ╔══╕ ║  ╘═══╕ ║  │ ║  │ ║  │ ║    │ ║
       ┌┘ ╙──┘ ║  │ ║  │ ╙──┘ ╙╖ ┌───┘ ║  │ ╙──┘ ║  │ ║    │ ╙─╖
       ╘═══════╝  ╘═╝  ╘═══════╝ ╘═════╝  ╘══════╝  ╘═╝    ╘═══╝



            ┌───╖   ┌──╖      ┌─────────╖      ┌──╖     ┌──╖
            │   ║  ┌┘  ║      │   ╔═══╕ ║      │  ╙╖   ┌┘  ║
            │   ║ ┌┘  ╔╝      │   ║   ╘═╝      ╘╕  ╙╖ ┌┘  ╔╝
            │   ╙─┘  ╔╝       │   ║             ╘╕  ╙─┘  ╔╝
            │       ╔╝        │   ╙────╖         ╘╕     ╔╝
            │       ╙╖        │   ╔════╝          ╘╕   ╔╝
            │   ╔═╕  ╙╖       │   ║                │   ║
            │   ║ ╘╕  ╙─╖     │   ║   ┌─╖          │   ║
            │   ║  ╘╕   ║     │   ╙───┘ ║          │   ║
            ╘═══╝   ╘═══╝     ╘═════════╝          ╘═══╝



             Система распределения общественных ключей

                      Руководство пользователя




                            Версия 1.00
                        10 февраля 1992 года














                           г. Уфа -- 1992

ii   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.



                             Оглавление

Введение...................................................iii
   О содержании этого документа............................iii
   Благодарности...........................................iii
Официальная информация.....................................iv
   Общая лицензия на программный продукт...................iv
   Лицензия зарегистрированного пользователя...............iv
   Гарантии................................................v
Как стать зарегистрированным пользователем.................vi
   Платить или не платить?.................................vi
   Решение принято.........................................vi
   Регистрационный лист....................................viii
Глава 1. Установка программы Key на компьютер..............9
   Требования к среде......................................9
   Комплект поставки.......................................9
   Первый старт............................................9
   Сеанс работы с программой...............................10
   Сообщение самому себе...................................12
   В роли шпиона...........................................12
   Меры предосторожности...................................12
Глава 2. Ключи командной строки............................13
   a: упаковка файлов в засекреченный архив................13
   e,x: извлечение файлов из засекреченного архива.........15
   n: смена личного ключа (пароля).........................17
   h: информация о программе...............................18
   Список сообщений об ошибках.............................19
Приложение 1. Система распределения общественных ключей....20
   О секретах и паролях....................................20
   Два ключа к одной шифровке..............................20
   Математические основы системы...........................21
   Советы взломщику........................................21
Приложение 2. Краткий список команд........................23
Приложение 3. Доклад об ошибках............................24
Словарь терминов...........................................25

                             Введение                            iii




                              Введение


     Программный   пакет    Diasoft   Key    обеспечивает   передачу
конфидециальной информации  по  открытым  каналам  связи,  в  первую
очередь через электронную почту Relcom.
     Уязвимость любого  метода шифрования  информации заключается  в
необходимости   рассылать    секретные   ключи   от   шифровок   как
отправителям, так и получателям сообщений.
     Полную гарантию  сохранения тайны  в таком  случае  может  дать
только личная  встреча отправителя  и получателя,  при  которой  они
обменяются секретными  ключами. При  любом другом способе рассылки у
агентов   противника   появляется   возможность   каким-то   образом
перехватить ключ и, пользуясь им, расшифровать сообщение.
     Программа  Key   исключает  необходимость   рассылки  секретных
ключей.  Вместо  этого  реализована  схема  рассылки  общедоступных,
общественных ключей по абонентам сети связи. Схема эта, изобретенная
в свое  время Диффи и Хеллманом, предусматривает наличие у абонентов
двух ключей.  Один из  ключей - секретный, а другой - общедоступный,
известный всем абонентам сети.
     Взломать систему  Diasoft Key, т.е. по известному общественному
ключу восстановить  секретный личный  ключ, практически  невозможно,
поскольку  эта  задача  -  задача  на  полный  перебор  невообразимо
большого количества вариантов.
     Подробнее  о   математических  основах   системы  распределения
общественных ключей Вы прочтете в приложении 1.

  О содержании этого документа

     Мы исходили  из того,  что пользователь имеет право знать ВСЕ о
программе Key.
     Поэтому  данное  руководство  содержмт  наряду  с  обязательной
"внешней" информации  о программе  (формат командной  строки и т.п.)
еще и значительное количество дополнительной "внутренней" информации
(принцип действия,  математические основы, описание временных файлов
etc.). Не  все читатели  захотят вникать в "кухню" программы, но те,
которые проявят такой интерес, смогут его удовлетворить.
     Разумеется, мы  с благодарностью  примем любые Ваши замечания и
предложения об улучшении стиля и содержания документации.

  Благодарности

     Особая наша  благодарность -  сети Relcom, без которой мы так и
не осознали  бы  проблему  передачи  секретных  данных  по  открытым
каналам связи, а программа Key не была бы создана.
     Автор программы  - Яков  Фрадкин -  признателен коллегам по НПП
Diasoft Марку  Фрадкину и  Михаилу Олейникову, принимавшим участие в
обсуждениях программы и подавшим немало ценных советов.

iv   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.




                       Официальная информация


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

          НПП Diasoft,
          450060, г. Уфа-60,
          пр. Октября, 81.

          E-mail:   jack@diasoft.bashkiria.su
          Telex:    124845 PTB SU, DIASOFT
          Телетайп: 162801 ПРИНТ, ДИАСОФТ
          Факс:     (3472)33-16-77, Diasoft.

  Общая лицензия на программный продукт

     Владелец авторских  прав на  программу Key  настояцим разрешает
Вам: использовать  программное  обеспечение;  делать  столько  копий
программного  обеспечения  и  документации,  сколько  Вы  пожелаете;
передавать точные копии оригинального комплекта любым третьим лицам;
распространять программу  и документацию  в неизмененном  виде через
электронные средства.
     Вам запрещается  взимать плату  за  такое  распространение  или
копирование.
     Запрещается  также   распространять  или  передавать  программу
отдельно, без документации.
     Вам также  запрещается вносить любые изменения в документацию и
программу, входящие в оригинальный комплект Diasoft Key.
     Настоящая Общая  Лицензия  действительна  в  течение  30  дней.
Программа Key  не бесплатна! Для продолжения использования программы
по истечении  этого срока  Вы должны  зарегистрироваться, перечислив
соответствующий регистрационный взнос.

  Лицензия зарегистрированного пользователя

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

                        Официальная информация                     v

     В остальном  по отношению  к  Зарегистрированному  Пользователю
сохраняют силу положения Общей Лицензии.

  Гарантии

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

vi   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.




             Как стать зарегистрированным пользователем


     Key  --   это  программа,  поддерживаемая  пользователями,  или
'shareware', прибегая к англоязычной терминологии.
     Вам разрешается  в течение  30 дней пользоваться программой Key
совершенно бесплатно, а также делать неограниченное количество копий
дистрибутивного комплекта  и  распространять  этот  комплект  в  его
исходном виде, при условии, что Вы не будете взимать за это платы.
     Однако  программа   Key  не   бесплатна!  Если  Вы  продолжаете
пользоваться ею  по прошествии  испытательного срока  в 30  дней, то
дело Вашей  совести и  чести -- перечислить держателю авторских прав
регистрационный взнос  в  размере  1750  рублей  (включая  налог  на
добавленную стоимость).  Цена действует в течение 1-го квартала 1992
года и с 1 апреля может быть изменена.
     В обмен на эту сумму, отправленную на счет 467212 в Октябрьском
отделении Социнвестбанка города Уфы (МФО 105778), Вы получите:

     1. Дискету с самой свежей версией программы Diasoft Key;
     2. Список  сетевых адресов  всех  известных  нам  пользователей
программы Key и их общественных ключей;
     3. Лицензию  на право использования полученной версии программы
на одной компьютерной установке;
     4. Право приобретения будущих версий программы со скидкой 50%.

     Для Вашего  удобства в  комплекте поставки  Diasoft Key имеется
бланк  платежного   поручения  (файл   Platezh.prn)  с   банковскими
реквизитами Диасофта.

  Платить или не платить?

     Принимая решение  по столь  тяжелому и  классическому  вопросу,
пожалуйста, примите во внимание следующие соображения.
     Программа Key  разработана  фирмой Diasoft на голом энтузиазме,
в свободное  от работы  время,  без  какой-либо  оплаты.  Теперь,  с
созданием работающей  версии, наша любознательность удовлетворена, и
энтузиазм плавно  переходит в  тверзый расчет. Рассчет простой: если
программа нужна  Вам, пользователям,  то Diasoft и дальше занимается
программой,  сопровождает   ее,  исправляет  замеченные  недостатни,
выпускает в  свет новые версии. Если программа никому не нужна - что
ж, увы!- первая версия станет и последней.
     Нас интересует  Ваша готовность оплатить наш труд. Помните, что
Ваш  регистрационный   взнос  --   это   Ваш   единственный   способ
проголосовать   "за"   продолжение   работ   по   системе   рассылки
общественных ключей Diasoft Key.

  Решение принято

     Зарегистрированный пользователь  становится нашим  естественным
партнером в развитии системы распределения общественных ключей; тем,

              Как стать зарегистрированным пользователем         vii

в интересах  которого мы  работаем  и  к  потребностям  которого  мы
прислушиваемся.
     Зарегистрированные  пользователи,  сообщившие  об  ошибках  или
внесшие  существенные   предложения  в   развитие   программы   Key,
автоматически перерегистрируются  и получают  бесплатную лицензию на
следующую версию программы.
     Всех  пользователей  мы  приглашаем  сообщать  нам  свой  новый
общественный ключ  после первоначальной  установки или  смены пароля
(личного  ключа).  Это  позволит  поддерживать  список  общественных
ключей, который  будет регулярно появляться на доске объявлений сети
Relcom.

                                           Директору НПП Diasoft
					   М.Ф.Фрадкину
                                           ---------------------
                                           450060, Уфа-60,
                                           пр. Октября, 81.


исх. N%_______ "___"________199__

                         Регистрационный лист

                 пользователя программного продукта
                       D i a s o f t   K e y


Организация: _____________________________________________________

             _____________________________________________________


Должность,   _____________________________________________________
ФИО
руководителя:_____________________________________________________


Адрес:       _____________________________________________________

             _____________________________________________________

             _____________________________________________________

Телефон:(____)_________ Факс:(____)_________ Тайп:________________

Адрес в сети Relcom: _____________________________________________


     "С  условиями   Лицензии  согласны.   Просим   зарегистрировать
применение нами продукта Diasoft Key.
     Расчет общей стоимости регистрации:

(стоимость одной         (число компьютер-        (всего)
регистрации)             ных установок)
     1750 руб.    *           ____           =    ________руб.

     Копия платежного поручения прилагается."




Руководитель             ______________________

                         "____"__________ 199__
                                   м.п.
             Глава 1. Установка программы Key на компьютер         9




           Глава 1. Установка программы Key на компьютер



  Требования к среде

     Предполагается,  что   Вы  располагаете   IBM   -   совместимым
компьютером под  управлением операционной  системы из  семьи MS-DOS.
Желательно наличие винчестера.

     На одном  из  рабочих  дисков  у  Вас  должен  быть  каталог  с
программами pkzip.exe + pkunzip.exe; именно эти программы вызываются
для упаковки  сообщений в  зашифрованные  архивы.  Путь  к  каталогу
укажите в  переменной PATH,  для чего поправьте файл c:\autoexec.bat
на своей машине.

     Например, программы  pkzip.exe и  pkunzip.exe сидят  в каталоге
C:\SERVICE\, а в файле autoexec.bat была строка
          PATH=c:\;c:\dos;..\;d:\user;
     Эту строку надо изменить так:
          PATH=c:\;c:\dos;..\;d:\user;C:\SERVICE;
     после чего  выйти из  редактора и  перегрузить  машину  (нажать
Ctrl+Alt+Del).

  Комплект поставки

     В оригинальный комплект Diasoft Key входят файлы:

read.me        -- краткая справка о программе;
key.ex$        -- программа распространения общественных ключей;
install.bat    -- пакетный файл для первого запуска программы;
keylist.key    -- список известных пользователей этой программы и их
                 общественных ключей;
manual.txt     -- данное руководство пользователя;
platezh.prn    --   бланк   платежного   поручения   с   реквизитами
                 разработчика;
order.frm      -- ваш регистрационный лист.

  Первый старт

     Запустите команду
                            install.bat
     Инсталляция   состоит    из    двух    действий,    выполняемых
автоматически:
     - файл key.ex$ переименовывается в файл key.exe;
     - стартует программа key.exe.
     Программа опознает,  что запущена  впервые,  и  предлагает  Вам
сообщить свои  анкетные данные. Эти Ваши данные запоминаются прямо в
конце  файла  key.exe.  Таким  образом  происходит  "персонификация"
Вашего экземпляра программы.

10  Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

     Пожалуйста, внимательно  отнеситесь к  запросу Вашего  сетевого
адреса. Если  Вы -  абонент сети,  то  введите  свой  действительный
полный адрес.  Ошибок в ответе на этот запрос быть не должно! А если
Вы еще не подключены к сети, просто придумайте и введите кличку, под
которой желаете  состоять в  справочнике общественных  ключей. Это и
будет Ваш "адрес".
     Например, сетевой адрес автора-
                     jack@diasoft.bashkiria.su
     Не вводите произвольные адреса во избежание путаницы.

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

     Последний вопрос  программы Key  при инсталляции  - предложение
ввести Ваш  пароль. Пароль  - это  Ваш  секретный  личный  ключ.  Не
разболтайте его!  В пароле  могут быть  ЛЮБЫЕ символы,  в том  числе
управляющие коды (Ctrl-...), латинские и русские большие и маленькие
буквы, символы  псевдографики (Alt- ввод с цифровой клавиатуры). Чем
длиннее пароль,  тем  труднее  шпиону  восстановить  его  из  Вашего
общественного ключа. Минимальная длина пароля - 8 символов.
     Запомните свой пароль. Пароль проверяется при любом последующем
обращении к  программе. НИКТО  не сможет  Вам помочь,  если  Вы  его
позабудете...

     По окончании  инсталляции Вы  имеете рабочую  программу  key  с
установленными паролем (личным ключом).
     В файле  keylist.key добавится строка с Вашим сетевым адресом и
общественным ключом.
     Создается также  файл report.key  с Вашими  анкетными данными и
общественным ключом.
     Слово  к   взломщикам:   сам   пароль   нигде   программой   не
запоминается! Запоминается  только порождаемый  паролем общественный
ключ (как  в  текстовом  файле  keylist.key,  так  и  в  теле  самой
программы key.exe).

  Сеанс работы с программой

     После того,  как программа  установлена, с  ней можно работать.
Для начала  Вы можете  сообщить фирме Diasoft свой общественный ключ
для введения его в справочник.
     Издайте команду
          key a /jack@diasoft.bashkiria.su hello report.key
     или просто
          key a /jack hello key.exe.      Здесь
     a - команда "создать зашифрованный архив";
     /jack - предписание зашифровать "для абонента jack... из списка
keylist.key" (целиком адрес получателя можно не указывать);
     hello - имя архива, который нужно создать;
     report.key -  имя файла  с конфидециальной информацией, который
надо зашифровать.
     Программа выведет строку о владельце авторских прав:

key (C)1992, Diasoft,

             Глава 1. Установка программы Key на компьютер        11


     найдет в файле keylist.key общественный ключ получателя:

jack@diasoft.bashkiria.su kY5@jwRp`K95fdln@mcFqW,

     запросит Ваш  пароль и  создаст (при  помощи  pkzip.exe)  архив
hello.zip, состоящий из 2х файлов:

PKZIP (tm)   FAST!   Create/Update Utility   Version 1.02   10-01-89
Copyright 1989 PKWARE Inc.   All Rights Reserved.   PKZIP/h for help

Creating ZIP: HELLO.ZIP
  Adding: REPORT.KEY    storing   ( 0%), done.

PKZIP (tm)   FAST!   Create/Update Utility   Version 1.02   10-01-89
Copyright 1989 PKWARE Inc.   All Rights Reserved.   PKZIP/h for help

Updating ZIP: HELLO.ZIP
  Adding: SENDER`S.KEY  shrinking (15%), done.

     Первый из  файлов - это тот, который Вы и хотели зашифровать. А
что это  за  файл  SENDER`S.KEY  появился  так  неожиданно?  --  Это
служебный файл, в котором находится строка с Вашим сетевым адресом и
Вашим общественным  ключом. Абонент  - получатель  (в данном случае,
Diasoft) воспользуется  эти ключом  для расшифровки предназначенного
ему сообщения.


     Архив hello.zip  - обычный двоичный файл, для упаковки которого
в письмо  существуют стандартные  средства в программном обеспечении
электронной почты Relcom. А именно, издайте команды

          mail  jack@diasoft.bashkiria.su
          Subject:  привет
          дальше идет засекреченный архив...
          ~u  hello.zip
          .

     На другом  конце провода  находится Ваш  получатель -  Diasoft.
Заимев Ваше  письмо, мы  перекодируем его  обратно в  двоичный  файл
командой uudecode:
          mail
          У вас есть почта ....
          uudecode
     Затем, выйдя из программы mail, мы издадим команду
          key e hello
для расшифровки и извлечения секретной части архива.
     Наш  экземпляр   программы  Key  запросит  пароль,  после  чего
вычислит из  Вашего общественного  ключа и  нашего секретного пароля
комбинированный ключ, при помощи которого и расшифрует архив.


     Кстати, кроме  законного адресата  (получателя), этот  архив не
расшифрует НИКТО;  и даже  для Вас,  отправителья  сообщения,  архив

12    Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

hello.zip на  надежном замке.  (Попробуйте  издать  команду  "key  e
hello" и убедитесь!)

  Сообщение самому себе

     Теперь отправьте сообщение не в Diasoft, а самому себе. Издайте
команду
                key a /ВАШ_АДРЕС  test   c:\autoexec.bat
     где ВАШ_АДРЕС  - это  Ваш сетевой адрес, каким Вы его ввели при
инсталляции программы (или первые несколько символов Вашего сетевого
адреса).
     Образуется архив  test.zip.  Вот  теперь  обратно  расшифровать
полученный архив под силу только Вам; так сделайте это:
                             key e test
     Получилось? А теперь попробуйте себя на роль шпиона:

  В роли шпиона

     "Забудьте", т.е. смените собственный пароль:
                               key n
     и попробуйте расшифровать тот же архив:
                             key e test
     Не получится,  как бы  Вы не  старались. Программа  pkunzip.exe
будет твердить:
     . . .
     Searching ZIP: TEST.ZIP
     PKUNZIP: Warning! Incorrect password for file: AUTOEXEC.BAT
     . . .
     Шпиона из  Вас не  получится. Лучше  вернитесь к старому своему
паролю:
                               key n
     и забудьте,  теперь уже  навсегда, про  шпионские страсти.  КГБ
против Вас  бессилен, разве  что вытрясут из Вас или Вашего абонента
пароль под  пытками, или  же кто-нибудь  из вас  двоих  свой  пароль
разболтает "друзьям".

  Меры предосторожности

     Ваш пароль  должны знать  только Вы один. Не записывайте пароль
на спичечном коробке или в свою записную книжку.
     И еще сказано у Козьмы Пруткова: "Бди!"

                      Глава 2. Ключи командной строки             13




                  Глава 2. Ключи командной строки


     Командная строка  при вызове  к программе  Key имеет  следующий
вид:

          key <КОМАНДА> [/<АДРЕС>]  [zip-ФАЙЛ]  [ФАЙЛы...]

     КОМАНДА   - это  буква латинского  алфавита из множества {a, e,
h, n, x}.
     АДРЕС     - сетевой  адрес абонента  - получателя.  Разрешается
вводить АДРЕС не полностью, только первые его буквы.
     zip-ФАЙЛ  - архивный файл.
     ФАЙЛы     - файл (список файлов).

     Ниже описаны все команды.




  a: упаковка файлов в засекреченный архив

     СИНТАКСИС:
          key  a  /<АДРЕС>  <zip-ФАЙЛ>  [ФАЙЛы...]

     ФАЙЛЫ:
     keylist.key    -   список   адресов   и   общественных   ключей
абонентов, среди  которых программа key ищет заданный АДРЕС (начиная
со второй строки файла).
     SENDER`S.KEY   - временный  файл, автоматически  создаваемый  и
включаемый в  архив zip-ФАЙЛ.  Содержит адрес  и  общественный  ключ
отправителя (пользователя, создавшего архив zip-ФАЙЛ).
     pkzip.exe      - программа,  которую Key  вызывает для создания
засекреченного архива.

     ТРЕБОВАНИЯ:
     В одном  каталоге с  программой key  должен  находиться  список
адресов - файл keylist.key.
     В среде ДОС должен быть указан путь к программе pkzip.exe.

     ОПИСАНИЕ:
     Программа упаковывает ФАЙЛы в засекреченный архивный zip-ФАЙЛ.
     Если  параметр  ФАЙЛы  пропущен,  то  упаковываются  все  файлы
текущего каталога.
     Для упаковки  архива программа  Key вызывает  архиватор pkzip с
ключом "-s<КОМБИНИРОВАННЫЙ_КЛЮЧ>".  КОМБИНИРОВАННЫЙ_КЛЮЧ вычисляется
предварительно как производная от следующих двух ключей:
     1)  личный  ключ  отправителя  --  запрашивается  программой  в
специальном окне пароля;
     2)  общественный  ключ  получателя  --  извлекается  из  списка
keylist.key па заданному АДРЕСу получателя.

14   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

     В засекреченный  архив zip-ФАЙЛ  включается  также  "файл-ключ"
SENDER`S.KEY, автоматически  создаваемый  программой  Key.  Содержит
реквизиты (адрес  и общественный  ключ) отправителя  и  используется
получателем архива при его расшифровке.

     СООБЩЕНИЯ:
     Программа запрашивает  пользователя ввести  его пароль  (личный
ключ). При ошибке, программа просто завершает работу.

     При просмотре  списка адресов keylist.key на экран выдаются все
строки, в  которых адрес  совпадает с  АДРЕСом, заданным в командной
строке.
     В   найденных    строках   проверяется    на   правдоподобность
общественный ключ  (остаток строки  после адреса). Общественный ключ
должен иметь  длину 22  символа. При  несоответствии длины, выдается
соответствующее сообщение.  Если Вы  не  изменяли  файл  keylist.key
вручную, ошибочных сообщений появляться не должно.

     Строка АДРЕСа должна быть уникальной.
     Например, если файл keylist.key состоит из строк:

           Key (C)1992, Diasoft
          jack@diasoft.bashkiria.su kjYfg58`gsd@.NjhfR64@l
          su@kiae.su qWnjT5H`vkoYtbkkkjYfg5
          root@cmf.su `@jOpmMkje59Ds3BnjN`5N
          root@demos.su Kmn7@yvDwQkmLl9gfhFt53

     то   для    упаковки   секретов,    предназначенных    абоненту
root@demos.su, следует указать адрес как минимум root@d:
               key a /root@d  arc   secret.big  *.txt

     Если Вы зададите слишком короткий адрес, root:
                key a /root  arc   secret.big  *.txt
     программа Key  проинформирует, что  в  списке  адресов  имеется
более одного  адреса,  начинающихся  с  цепочки  root,  и  предложит
повторить командную строку.

     Если Вы ошибетесь в адресе получателя:
              key a /rooot@d  arc   secret.big  *.txt
     то программа  Key сообщит,  что в списке адресоов такого адреса
"rooot@d" вообще нет, и также закончит работу.

     Если в  командной строке  нет имени zip-ФАЙЛа или, больше того,
нет АДРЕСа, как в команде
               key a root@d  arc   secret.big  *.txt
     программа Key закончит выполнения с соответствующим сообщением.
Повторите команду со всеми операндами.

     Ряд  сообщений   выдает  программа  -  архиватор  pkzip;  самая
вероятная ошибка  здесь может  быть - отсутствие свободного места на
рабочем диске.

                      Глава 2. Ключи командной строки             15

  e,x: извлечение файлов из засекреченного архива

     СИНТАКСИС:
          key  e   <zip-ФАЙЛ>   [ФАЙЛы...]
          key  x   <zip-ФАЙЛ>   [ФАЙЛы...]

     ФАЙЛЫ:
     SENDER`S.KEY   - служебный  файл из  архива zip-ФАЙЛ.  Содержит
адрес и  общественный  ключ  отправителя  (пользователя,  создавшего
архив zip-ФАЙЛ).
     keylist.key    -   список   адресов   и   общественных   ключей
абонентов, среди  которых программа key ищет адрес отправителя. Если
такого абонента  в списке не было или запись о нем устарела, то файл
keylist.key соответствующим образом корректитуется.
     pkunzip.exe    - программа, которую Key вызывает для распаковки
засекреченного архива.

     ТРЕБОВАНИЯ:
     В одном  каталоге с  программой key  должен  находиться  список
адресов - файл keylist.key.
     В среде ДОС должен быть указан путь к программе pkunzip.exe.

     ОПИСАНИЕ:
     Программа извлекает  ФАЙЛы  из  засекреченного  архивного  zip-
ФАЙЛа.
     Если параметр ФАЙЛы пропущен, то извлекаются все файлы.
     Для распаковки  архива программа Key вызывает программу pkunzip
с    ключом     "-s<КОМБИНИРОВАННЫЙ_КЛЮЧ>".     КОМБИНИРОВАННЫЙ_КЛЮЧ
вычисляется предварительно как производная от следующих двух ключей:
     1)  личный   ключ  получателя  --  запрашивается  программой  в
специальном окне пароля;
     2) общественный  ключ отправителя  -- извлекается из служебного
файла SENDER`S.KEY, упакрванного в архив zip-ФАЙЛ.
     Первоначально    "файл-ключ"    SENDER`S.KEY    включается    в
засекреченный архив zip-ФАЙЛ на стороне орправителя.

     СООБЩЕНИЯ:
     Программа запрашивает  пользователя ввести  его пароль  (личный
ключ). При ошибке, программа просто завершает работу.

     При просмотре  списка адресов keylist.key на экран выдаются все
строки, в которых адрес совпадает с адресом, заданным в "файл-ключе"
SENDER`S.KEY.
     Если такой  строки не  найдено, то  она  добавляется  к  списку
адресов  из   "файл-ключа",  т.е.   к  списку   адресов  добавляется
неизвестный ранее  абонент системы распределения общественных ключей
Diasoft Key.
     Если  найдена   хотя  бы   одна  строка,  то  в  таких  строках
проверяется общественный  ключ  (остаток  строки  после  адреса)  на
предмет  совпадения  с  общественным  ключом  отправителя.  Если  не
совпадает -  то в  список адресов  заносится новый общественный ключ
старого абонента.


16   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

     Ряд сообщений  выдает программа  - разархиватор  pkunzip; самая
вероятная ошибка  здесь может  быть - отсутствие свободного места на
рабочем диске.

                      Глава 2. Ключи командной строки             17

  n: смена личного ключа (пароля)

     СИНТАКСИС:
          key  n

     ФАЙЛЫ:
     report.key     - создаваемый  служебный файл. Содержит все Ваши
анкетные данные,  включая новый  общественный ключ. Просьба передать
этот файл  в Diasoft  после каждой  смены пароля, это необходимо для
поддержания списка общественных ключей абонентов сети.
     keylist.key    -   список   адресов   и   общественных   ключей
абонентов,  среди  которых  есть  и  Вы.  После  смены  пароля  файл
keylist.key соответствующим образом корректитуется.

     ТРЕБОВАНИЯ:
     В одном  каталоге с  программой key  должен  находиться  список
адресов - файл keylist.key.

     ОПИСАНИЕ:
     Программа позволяет Вам задать свой новый личный ключ.
     Вам предлагается ввести старый пароль, после чего дважды ввести
новый пароль.
     После  смены   личного  ключа,   Ваш  новый  общественный  ключ
записывается в файлы:
     1) key.exe - в самом конце файла (в двоичном виде - массив из 8
байт);
     2) keylist.key  (в символьном  представлении -  22х  символьная
строка);
     2) report.key - вместе с другими Вашими анкетными данными.

     СООБЩЕНИЯ:
     Программа запрашивает  пользователя ввести  его пароль  (личный
ключ). При ошибке, программа просто завершает работу.


18   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

  h: информация о программе

     СИНТАКСИС:
          key  h

     ФАЙЛЫ: нет

     ТРЕБОВАНИЯ: нет

     ОПИСАНИЕ:
     Программа выдает о себе расширенную справочную информацию.

     СООБЩЕНИЯ:
     Программа выдает о себе расширенную справочную информацию.


                      Глава 2. Ключи командной строки             19

  Список сообщений об ошибках

     Программа  Key   всякий  раз  проверяет  себя  на  правильность
контрольной суммы. При вирусной атаке эта проверка срабатывает.

     Также выдаются  сообщения при  разлмчных  системных  ошибках  -
ошибки открытия/закрытия файлов, чтения/записи.

     Особая   ошибка   -   "нет   памяти"   для   запуска   программ
pkzip/pkunzip. При появлении этой ошибки попробуйте одно из двух:
     - выгрузите ненужные резидентные программы;
     - уберите  из c:\config.sys  ненужные  драйверы  и  перегрызите
систему.

     Более конкретный  список ошибок  будет собран  в документации к
следующей версии  программы, когда она появится (см. по этому поводу
главку "платить или не платить").

20   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.




      Приложение 1. Система распределения общественных ключей


     Diasoft  Key   -  система  распределения  общественных  ключей,
предназначенная специально для защиты информации, передаваемой через
публичные сети передачи данных.

  О секретах и паролях

     Каждому из  нас, применяющих  в работе персональные компьютеры,
когда-то приходилось  засекречивать свою  информацию.  Вы  шифровали
файлы программой lock, запароливали архивы программами pkarc, pkzip,
arj и создавали секретные диски программой diskreet.
     А   теперь    представте,   что    Вам   необходимо    передать
конфидециальное сообщение  по открытому  каналу связи, например, при
помощи модема через публичную компьютерную сеть. Как вы поступите?
     Разумеется, Вы  берете любую  программу-шифратор, шифруете свое
сообщение S  паролем X,  после чего  сообщение  (уже  зашифрованное)
передаете. Уфф... Осталось только сообщить Вашему адресату пароль X,
чтобы он  смог расшифровать  Ваше послание.  Так чего  мы  достигли?
Исходная задача  решена (сообщение  S передано),  но появилась новая
задача  (необходимо   передать  пароль   X,  мы   назовем  его   для
единообразия "сообщением  S"). Впрочем,  и эта  новая задача, как мы
уже знаем, вполне поддается решению. А если Вы не знаете, прочитайте
этот абзац с начала, со слов "разумеется...".
     Поскольку Вы  прервали перечитывание  предыдущего  абзаца,  Ваш
адресат так  и не  расшифрует предназначенное  ему  сообщение  из-за
отсутствия у него пароля (или пароля к паролю (или пароля к паролю к
паролю, и т.д.)).
     Где же выход? Выход есть, и даже два.
     Первый путь  -  обмениваться  паролями  при  личной  встрече  с
абонентом. К сожалению, на этом пути велики командировочные расходы.
Мы пойдем другим путем!

  Два ключа к одной шифровке

     Содержимое шифровки  остается тайной,  пока  не  известен  ключ
шифра.
     В последние  15 лет  в науке о шифровании и дешифровании акцент
делается на  ключах, некоторые  из которых  общеизвестны,  а  другие
предназначены только  для личного  использования [1].  Общедоступный
ключ К  указывается в справочнике сети под именем абонента, а личный
ключ Х  скрывается в хорошо известной задаче, которую никто не может
решить.
     Например, Ваша  пара ключей  - (Х,К),  а у  Вашего  абонента  -
(X',K'). Чтобы  передать сообщение  этому  абоненту,  Вы  найдете  в


____________________
1 Следующие  два раздела  в основном  переписаны из  статьи Дьюдни в
     "Scientific American", N 1, 1989. Отсылаем к этой замечательной
     статье и наших читателей.

         Приложение 1. Система распределения общественных ключей  21

справочнике его  ключ K',  вспомните свой  личный ключ Х и вычислите
комбинированный ключ С(Х,К'), которым и зашифруете послание.
     Система распределения общественных ключей гарантирует, что
                         С(Х',K) = C(X,K'),
поэтому Ваш  адресат, получив  шифровку, найдет  в справочнике  ключ
отправителя К'  (т.е. Ваш  ключ)  и  вычислит  комбинированный  ключ
С(Х',К), которым и воспользуется для дешифрования.

  Математические основы системы

     Система распределения  общественных ключей  основана  на  очень
большом простом  числе Р  и числе  основания А.  Число А подбирается
таким, чтобы  (A**N)(mod P)  [2], где  N- любое  натуральное  число,
давало все целые числа в диапазоне от 1 до Р-1.
     Числа Р и А известны всем абонентам сети.
     Абонент i  выбирает личный  ключ - число Xi. Затем он вычисляет
свой общественный ключ Ki по формуле
                        Ki = (A**Xi)(mod P)
и высылает его администрации сети для обнародования.
     То же делают другие абоненты, скажем, абонент j выбирает личный
ключ Xj и оглашает свой общественный ключ Kj, где
                        Kj = (A**Xj)(mod P).
     При необходимости  передачи сообщения  абоненту  j,  абонент  i
вычисляет комбинированный ключ Cij по формуле
                       Cij = (Kj**Xi)(mod P)
и зашифровывает сообщение этим ключом.
     Для дешифрации  сообщения от  абонента i,  абонент j  вычисляет
комбинированный ключ Cji по формуле
                       Cji = (Ki**Xj)(mod P).
     На самом деле оба абонента пользуются одним ключом, т.е.
                             Cij = Cji.

  Советы взломщику

     Заинтересованный посторонний  наблюдатель может  вторгнуться  в
систему общественных ключей, решив дискретную логарифмическую задачу
за приемлемое время. В формуле
                         K = (A**X)(mod P)
надо просто найти X при известных A, P и K.
     Существует ли метод более быстрый, чем тривиальный перебор всех
возможных значений X с возведением каждый раз в степень X числа A по
модулю P и сравнением результата с числом K ? Теоретики считают, что
не существует,  однако строго  этого пока  никто  не  доказал.  Если
дискретная   логарифмическая    задача   на    самом   деле    такая
трудноразрешимая, насколько  это представляется,  то  очень  большие
значения  чисел   A,  P,   K  и   X  уже   должны  отпугнуть  любого
любопытствующего вычислителя.
     Описываемая здесь реализация системы распределения общественных
ключей фирмы Diasoft основана на простом числе
                          P = 2**127 - 1,



____________________
2 Читается как "А в степени N по модулю Р"

22   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

порождающим более  1.0 Е  38 (10 в 38-й степени) возможных ключей. К
слову, это  число примерно равно отношению размера нашей Вселенной к
размеру атома водорода.
     Даже   если    взломщик   будет    оснащен    суперкомпьютером,
перемалывающим 1.0Е9  ключей в  секунду, за  год он  проверит только
3.2Е16 комбинаций.

     Действительно уязвимое место системы Diasoft Key - в конкретном
методе  использования  комбинированных  ключей,  т.е.  в  алгоритмах
собственно шифрования / дешифрования данных.
     Пока что  (в "beta"  версии  программы)  в  качестве  шифратора
применяется обычный  архиватор przip,  запускаемый с  опцией -s,  за
которой следует  22х-символьная строка  пароля (по  6 значащих бит в
символе).  (Вот  здесь  и  следует  потрудиться  нашим  взломщикам!)
Устойчивость ко  взлому архивов,  упакованных и зашифрованных pkzip,
нами не  проверялась; однако  интуиция подсказывает, что Diasoft Key
достаточно хорошо использует pkzip, передавая ему достаточно длинный
пароль.

                    Приложение 2. Краткий список команд           23




                Приложение 2. Краткий список команд


     Командная строка Key имеет следующий вид:

          key <КОМАНДА> [/<АДРЕС>]  [zip-ФАЙЛ]  [ФАЙЛы...]

     КОМАНДА   - это  буква латинского  алфавита из множества {a, e,
h, n, x}.
     АДРЕС     - сетевой  адрес абонента  - получателя.  Разрешается
вводить АДРЕС не полностью, только первые его буквы.
     zip-ФАЙЛ  - архивный файл.
     ФАЙЛы     - файл (список файлов).
     Ниже описаны команды.


a: упаковка файлов в засекреченный архив

     СИНТАКСИС:          key  a  /<АДРЕС>  <zip-ФАЙЛ>  [ФАЙЛы...]
     ОПИСАНИЕ:
     Программа упаковывает ФАЙЛы в засекреченный архивный zip-ФАЙЛ.
     Если  параметр  ФАЙЛы  пропущен,  то  упаковываются  все  файлы
текущего каталога.


e,x: извлечение файлов из засекреченного архива

     СИНТАКСИС:          key  e   <zip-ФАЙЛ>   [ФАЙЛы...]
                         key  x   <zip-ФАЙЛ>   [ФАЙЛы...]
     ОПИСАНИЕ:
     Программа извлекает  ФАЙЛы  из  засекреченного  архивного  zip-
ФАЙЛа.
     Если параметр ФАЙЛы пропущен, то извлекаются все файлы.


n: смена личного ключа (пароля)

     СИНТАКСИС:          key  n
     ОПИСАНИЕ:
     Программа позволяет Вам задать свой новый личный ключ.
     Вам предлагается ввести старый пароль, после чего дважды ввести
новый пароль.
     После  смены   личного  ключа,   Ваш  новый  общественный  ключ
записывается в файлы: key.exe; keylist.key; common.key&


h: информация о программе
     СИНТАКСИС:          key  h
     ОПИСАНИЕ:
     Программа выдает о себе расширенную справочную информацию.

24   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.




                  Приложение 3. Доклад об ошибках


     При обнаружении Вами ошибки в программе просим проинформировать
об этом  Diasoft через  электронную почту  или письмом.  Сообщите  о
выдаче  программы  Key,  а  также  об  особенностях  Вашей  системы:
содержимое autoexec, config, версию DOS, тип компьютера.
     Разработчик  приложит  все  силы  для  приведения  программы  в
должный вид.
     Зарегистрированные  пользователи,  сообщившие  об  ошибках  или
внесшие  существенные   предложения  в   развитие   программы   Key,
автоматически перерегистрируются  и получают  бесплатную лицензию на
следующую версию программы.

                          Словарь терминов                        25




                          Словарь терминов



Pkunzip, pkzip (tm) -- зарегистрированные торговые марки программ
   поддержки архивов фирмы PKWARE Inc.

Relcom -- национальная советская общественная система электронной
   почты. Имеет выход в цивилизованный мир через европейскую сеть
   EuNet. Разработчики - московские узлы сети - кооператив "Demos/*"
   и ВЦ института атомной энергии им. Курчатова. По-видимому, эта
   сеть самая массовая и перспективная в СНГ.

Shareware -- метод распространения программного обеспечения, при
   котором пользователь имеет возможность испытать программу перед
   тем, как заплатить за нее.

Авторское право -- в цивилизованном мире - форма охраны интересов
   разработчика программного продукта, допускающая судебное
   преследование нарушителей. Владелец а.п. волен определять условия
   лицензии, на основании которой пользователь получает право
   использования программного продукта. В СНГ а.п. отсутствует.

Закрытый канал связи -- канал связи, защищенный от несанкцио-
   нированной утечки информации. Это фельдъегерская связь,
   дипломатическая почта, засекреченная связь (ЗАС), спецсвязь КГБ,
   спецсвязь ракетных войск и пр. Зацита от утечек информации может
   обеспечиватиься либо организационно (например, разбивать
   сообщение на кусочки и отправлять их разными маршрутами в пункт
   назначения, а там осуществлять сборку; также хорошая оргмера -
   курьерская связь, а курьер с пистолетом), либо технически
   (шифрование - дешифрование). Система распределения общественных
   ключей Diasoft Key позволяет внутри открытого канала связи
   организовать закрытый канал передачи информации.

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

Ключ -- число (как правило, секретное), используемое в криптосистеме
   при шифровании и дешифровании информации.

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

26   Diasоft Key 1.00 (C) 1992, Diasoft.            Документация.

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

Лицензия -- договор между владельцем авторских прав и пользователем,
   по которому владелец получает вознаграждение, а пользователь -
   право использования объекта договора на определенных условиях.

Личный ключ -- секретное число, загадываемое всеми абонентами
   системы распределения общественных ключей.

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

Открытый канал связи -- канал связи, не гарантирующий пользователям
   секретность; другими словами, незащищенный от несанкционированной
   утечки информации. Письма вскрываются ("сургуч нынче стал
   плохой"), телефон прослушивается, почта в сетях сначала
   передается по прослушиваемому телефону, а потом подглядывается
   нерадивыми администраторами и злостными хэкерами.

Пароль -- см. Ключ.

Сообщение -- то, что передается по Каналу связи: речь по телефону,
   письмо по почте.

Стандарт Кодирования Данных -- криптосистема, использующая 64х-
   битный ключ. СКД принят в 1977 году в качестве стандарта США;
   широко применяется в системах передачи коммерческой информации.