MathCAD

       

Панели работы с операторами символьных преобразований


Сам оператор символьных преобразований вводится в Mathcad-документ нажатием кнопки g ® на панели Evaluation или Symbolic. После этого на экране дисплея появляется такая заготовка: g g ®. Первый операнд данного оператора – это какая-либо алгебраическая конструкция (выражение, неравенство, уравнение и др.), а второй – ключевое слово, задающее направление символьного преобразования[20]: упростить, решить, факторизировать, вычислить коэффициенты полинома и т.д. Оператор символьного преобразования с ключевым словом существенно богаче по своим возможностям команд меню Symbolic. Поэтому, как было отмечено выше, это меню фактически лишнее. Кроме того, оператор символьного преобразования сразу выдает новый ответ, если в исходном выражении что-то поменяли. Здесь не нужно стирать старый ответ, как это требуется при обращении к командам меню Symbolic.

Само ключевое слово оператора g g ® (второй его операнд) может иметь новый ключ, определяющий детали символьного преобразования. Только две команды (Simplify – Упростить[21]

и Complex – представить в комплексном виде) не имеют дополнительных ключей. Чтобы в них не запутаться, лучше не выводить на экран заготовку оператора g g ®, а поступать по-другому: записать или откуда-то скопировать исходное выражение (a+b×x=0, например) и нажать на кнопку с названием соответствующего преобразования (solve, например). После этого на экране появится уже не заготовка оператора решения уравнения, а его, так сказать, полуфабрикат: a+b×x=0 solve, g ®. В черный квадратик достаточно вставить имя переменной, по которой решается уравнение, чтобы получить ответ: -b/a. Здесь можно оперировать не только переменной, но и новым выражением – x- 1, например:

Особо хочется отметить оператор разложения на множители g factor, g ®. Если его применить не к алгебраическому выражению, а к числу натурального ряда, убрав при этом его ключ (g factor ®), то он будет называться Разложить на простые множители. Простые числа – это такие числа, которые делятся без остатка либо сами на себя (результат – единица), либо на единицу (результат – само простое число). Простые числа (2[22] – единственное четное простое число, 3, 5, 7, 11, 13, 17, 19, 23 и т.д. до бесконечности) – простые и по названию, и по определению, но за ними стоит много проблем теоретического и практического плана, одна из которых такая...


Сэм, Билл и Джон договорились... Нет, не сразиться на дуэли (см. этюд 6), а обмениваться друг с другом шифрованными сообщениями по таким правилам:

  • каждый i-й участник придумывает свой шифрующий (ШАi) и дешифрующий (ДШАi) алгоритмы;


  • шифрующие алгоритмы открыты, они известны всем участникам;


  • свои дешифрующие алгоритмы каждый участник держит в секрете;


  • если i-й участник захочет послать шифрованное сообщение j-му участнику, то он использует ШАj (он, как мы договорились, известен всем);


  • j-й участник, получив сообщение от i-го участника, использует ДШАj, который, как мы знаем, известен только j-му участнику;


  • i-й участник может послать j-му участнику шифрованное сообщение с электронной подписью[23]; для этого i-й участник, посылая сообщение j-му участнику, использует цепочку шифров ДШАi-ШАj. Получив сообщение, j-й участник читает его так: ДШАj-ШАi, восстанавливая исходный текст. При этом j-й участник будет знать, что только i-й участник мог послать такой дважды зашифрованный текст, так как при шифровании был использован ДШАi, известный только i-му участнику.


  • Все это выглядит просто и красиво. Проблема заключается в разработке шифрующих и дешифрующих алгоритмов. Поступим для начала так. Пусть все участники переводят свое сообщение из текста в число N (“АББА” – 01020201, например). Затем по шифрующему алгоритму Сэм возводит число в квадрат, Билл – в куб, а Джон – в четвертую степень (ША1:=N2; ША2:=N3; ША3:=N4). Дешифрующие алгоритмы (их участники должны держать в секрете) сводятся к извлечению квадратного корня, кубического корня и корня четвертой степени соответственно и в переводе полученного числа в текст. Но такая тайна будет тайной Полишинеля, так как криптоаналитику ничего не стоит, просмотрев несколько сообщений, раскрыть не только шифрующий алгоритм (а из этого никто особой тайны не делает), но и дешифрующий. Проблема создания надежных функций-ловушек

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

    Дело в том, что сгенерировать простое число можно довольно быстро. Тем более (тем быстрее) на компьютере. Но если два довольно больших простых числа перемножить и попросить компьютер по произведению найти исходные сомножители, то эта задача окажется неразрешимой, вернее, для ее решения потребуются «миллионы лет работы самого современного компьютера»[24].

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


    Содержание раздела