Page 23 - 4395
P. 23

процедури.  Тому  краще  реалізувати  етапи  шифрування  і
                 дешифрування у двох різних модулях.
                         Щодо вказаних перетворень рядок-число та число-рядок, то їх
                 доцільно здійснити на основі коду ASCII (American standard code for

                 information  interchange),  оскільки  MatLab  має  для  цього  відповідні
                 вбудовані функції DOUBLE i CHAR. Функція  DOUBLE перетворює
                 текстовий рядок на масив десяткових чисел, кожний елемент якого є

                 кодом    ASCII  відповідного  символу.  Функція    CHAR  навпаки  має
                 аргументом  масив  кодів  і  повертає  літерний  текст.  Але,  оскільки
                 MatLab, як стратегічний продукт, було заборонено розповсюджувати
                 на  східну  Європу,  дія    ASCII  була  обмежена  першими  127

                 символами. Це не дозволяло використовувати перші версії програми
                 для  обробки  текстів  на  основі  кирилиці.  У  подальшому  ситуація
                 покращувалась  —  сучасні  версії    MatLab  7  та    MatLab  8  вже  не

                 мають цього недоліку.  MatLab 6.5, яка є найбільш поширеною зараз,
                 допускає  роботу  з  українським  та  російським  текстами  за  одним
                 виключенням:  змінна-рядок  не  сприймає  значення  української  або

                 російської  літери  ‘c’  (на  литеру  ‘C’  обмеження  не  поширюється!).
                 Таким  чином,  при  роботі  з  текстами  у  програмі    MatLab  6.5  слід
                 всюди  замість  символу  ‘c’  з    кирилиці  використовувати  англійську

                 літеру  ‘c’.
                         Таким  чином,  структура  програми  природно  складається  з
                 чотирьох програмних модулів, що працюють послідовно (див. В.1):
                          MAIN_RSA  —  головний  модуль  програми,  обчислення

                 змінних,  які  є  спільними  для  всіх  модулів,  визначення  порядку
                 виклику окремих модулів;

                          KEYS — модуль визначення ключів;
                          ENCRYPT — модуль виконання шифрування;
                          DECRYPT — модуль виконання дешифрування.

                         Відповідно, текст програми містить чотири SCRIPT-файли, що
                 мають вказані імена.
                        Для однакових розрахунків, які часто застосовуються доцільно

                 створити  MatLab-функції.  Такими  є  піднесення  до  степеня  і
                 знаходження оберненого за модулем. Перше як при шифруванні, так
                 і  при  дешифруванні  знаходиться  у  циклі,  кількість  повторювань
                 якого визначається довжиною повідомлення. Друге використовується

                 при  визначенні  ключів  і  може  повторюватись  не  один  раз.  Тому
                 доцільно ввести наступні функції:

                          INVERSE — знаходження оберненого за модулем;

                                                              23
   18   19   20   21   22   23   24   25   26   27   28