Скляр Б. Цифровая связь (2003) (1151859), страница 221
Текст из файла (страница 221)
° Пользователь А случайным образом выбирает большое целое число а (это частный ключ пользователя А). ° Открытый ключ пользователя А вычисляется следующим образом: у = е" шод л. ° Пользователь В желает послать пользователю А сообщение М. Сначала пользователь В генерирует случайное число 1, меньшее л. ° Пользователь В вычисляет следующие величины: у, = й" пюд л у, = М х (уг пюд л) (напомним, что у — это открытый ключ пользователя А). ° Пользователь В посылает пользователю А шифрованный текст (у,, уз). ° После получения шифрованного текста (у„уз) пользователь А вычисляет открытое сообщение М. Уз у~" пюдп Пример 14.9.
Примеяеяие алгоритма Днффн-Хэллмана (вариант Элгемала) для шифрования сообщения Пуси обшедоступиыми системными параметрами являются л = !1 и я = 7. Предположим, что пользователь А в качесгие частного ключа выбрал а = 2. Пока:ките, как вычисляется открытый ключ пользователя А. Покажите также, как пользователь В будет шифроаать сообшеиие М= 13, которое должно быть отиравлеио пользователю А, и как пользователь А последовательно дешифрует полученный шифрованный текст. Решение Открытый ключ пользователя А (у = 4' под л) вычисляется следующим образом: у = 7' шод 11 = 5.
Пользователь В лселает послать пользователю А сообщение М = 13. В данном примере пусть пользователь В а качестве случайного значения !с (меиьшего л = 11) выбирает !с = 1. Далее пользователь В вычисляет шифрованную пару. у| — — В' шод л = 7' пюд 11 = 7 уз = М х (у" шод н) = ! 3 х (5' пюд 11) = 13 х 5 = 65 Пользователь А получает шифрованный текст (7, 65) и вычисляет сообщение М. уа июдл 72 июд1! 5 14.6.3. Шифрование сообщения в системе РОР Алгоритмы с частным ключом, применяемые РОР для шифрования сообщения, бъии представлены в разделе 14.6.1.
Алгоритмы с открытым ключом, используемые РОР дяя шифрования ключа частного сеанса, были представлены в разделе 14.6.2. Чтобы проиллюстрировать технологию шифрования РОР, изображенную на рис. 14.20, рассмотрим следующий пример, объединяющий алгоритмы двух типов. оке зли о и-о,чо„. Пример 14.10. Использование алгоритмов КЯА и 1ПЕА для шифрования в РСР Для шифрования ключа сеанса используем алгоритм КБА с открытым ключом с параметрами из раздела 14.5.3.1: л = рп = 2773, ключ шифрования е = 17, а ключ дешифрования г(м 157.
Ключом шифрования является открытый ключ получателя, а ключом дешифрования — частный ключ получателя. Используем ключ сеанса Ка = 0008 0007 0006 0005 0004 0003 0002 0001 и шифрованный текст 30Е9 78В3 Е223 Е2216, представляюший сообщение "Н!", из примера ! 4.8 (все величины представлены в шестнадцатеричной записи). (Отметим, что шифрованный текст был создан с исполшованием только одного цикла алгоритма 1РЕА. В реальной системе производится 8 циклов плюс выходное преобразование.) Зашифруйте ключ сеанса и покажите, какое сообщение должно передаваться. Реиеиие Следуя описанию, приведенному в разделе 14.5.3.1, ключ сеанса будет шифроваться с помощью алгоритма КБА с открытым ключом получателя 17.
Для удобства вычисления при помощи простого калькулятора преобразуем сначала ключ сеанса в группы, составленные из величин в десятичной записи. Согласно требованиям алгоритма К5А, значения, приписанные каждой группе, не должны превышать л — 1 = 2772. Следовательно, выразим 128-битовый ключ в терминах 4-разрядных групп, где самая старшая (самая левая) группа будет представлять 7 бит и 11 групп будут представлять !1 бит каждая. Преобразование чисел из шестнадцатеричных в десятеричные можно рассматривать как двухэтапный процесс: (1) преобразование в двоичную систему и (2) переход к основанию 1О. В результате получаем Ке = 0000 0032 0000 1792 0048 0001 0512 0064 0001 1024 0064 0001.
Напомним, из уравнения (!4.32) следует, что С = (М)' по модулю и, где М— одна из 4-разрядных групп Ке. Левые крайние четыре группы шифруются следующим образом: С, з = (0000)" гпог! 2773 = 0 Сп — — (0032)" пюг( 2773 = 2227 Сю = (0000)'~ пкк1 2773 = 0 Сз — — (1792)'т пюг) 2773 = 2704 Эффективным способом модульного возведения в степень является использование алгоритма "Возведение в квадрат и умножение*' (Бчцаге-апд-Мц10р1у — 5М). Этот алгоритм 121) сводит число необходимых модульных умножений с е — 1 почти до 2!, где ! — число бит в двоичном представлении.
Покажем использование алгоритма 5М, шифруя одну нз десятичных групп ключа сеанса (одиннадцатую группу справа Мп = 0032), где л = 2773 и е = 17, Для применения этого алгоритма сначала запишем число е в его двоичном представлении (17м = 1000!з).
Вычисления даны в тьбл. 14.13. Используется математика цо модулю л, в этом примере я = 2773. Второй столбец содержит двоичный код, где старший бит находится в строке !. Каждая двоичная величина в этом столбце используется для контроля результата в столбце 3. Начальное значение, расположенное в столбце 3, строка О, всегда равно 1. Далее результат в каждой строке столбца 3 зависит от бита в соответствующей строке столбца 2. Если этот бит равен "1", то резулыат предыдущей строки возводится в квадрат и умножается на открытый текст (для этого примера — 32). Если строка во втором столбце содержит "0", то значение соответствующей строки в столбце 3 равно квадрату значения в предыдущей строке.
Окончательным значением является зашифрованный текст (С = 2227). Повторение этого метода для казкдой нз двенадцати десятичных групп, составляющих Ке, дает шифрованный текст ключа сеанса: С = 0000 2227 0000 2704 0753 0001 !278 0272 000! 1405 0272 0001. Этот ключ сеанса (здесь он представлен в десятичной форме), зашифрованный с помощью алгоритма КЗА, вместе с зашифрованным с помощью 1РЕА сообщением вида 30Г9 78В3 Е223 Е221 (здесь оно представлено в шестнадцатеричной форме) может теперь передаваться через незащищенный канал.
Таблица 14.13. Алгоритм ЗМ с открытым текстом = 32 Номер сгроки Двоичное представление е (первым Модульное умножение (модуль 2773) идет старший разрял) 1 1з х 32 = 32 32г = 1024 !024 = 328 328г 1728 1728г х 32 = 2227 14.6.4. Аутентификация с помощью РОР и создание подписи Алгоритмы с открытыми ключами могут использоваться для проверки подлинности (аутентификации) нли "подписания" сообщения. Как показано на рис. 14.!8, отправитель может шифровать документ с помощью своего частного ключа (к которому никто больше не имеет доступа), а затем с помощью открытого ключа получателя, Получатель должен сначала использовать свой частный ключ для дешифрования сообщения. Затем должно последовать второе дешифрование, при котором используется открытый ключ отправителя. С помощью этой технологии засекречивается сообщение, а также обеспечивается проверка подлинности отправителя.
Поскольку алгоритмы с открытыми ключами работают достаточно медленно, РОР допускает разные методы проверки подлинности отправителя. Вместо трудоемкого процесса шифрования всего открытого сообщения, РОР предлагает шифрование профиля сообщения (шемайе 838еи) фиксированной длины„созданного с помогцью односторонней хэш-функции. Шифрование профидя сообщения производится посредством алгоритма открытого ключа. Этот метод, называемый цифровой лодлисью, изображен на рис. 14.22. Цифровая подпись используется для проверки подлинности как отлравишеля, так и сообщения. Проверка подлинности сообщения обеспечивает проверку того, что сообщение не было некоторым образом изменено.
Данная технология основана на том, что если сообщение было изменено (т.е. было постороннее вмешательство), его профиль будет другим. РОР версии 2.6 использует алгоритм М)35 (Меззаяе 13!8езг 5) для создания 128- битового профиля сообщения (или значения хэш-функции) открытого текста. Затем значение хэш-функции шифруется с помощью частного ключа отправителя и посылается с открытым текстом. Когда получатель принимает сообщение, он сначала дешифрует профиль сообщения, используя открытый ключ отправителя.
Затем получатель действует на открытый текст хэш-функцией и сравнивает два профиля сообщения. Если они совпадают, подпись подлинная. На рис. 14.22 сообщение отправляется без шифрования (как открытый текст); впрочем, оно может быть зашифровано с помощью метода, изображенного на рис.
14.20. 933 14.6. Ргв1Ь~ Оооо Рг1ьчасч йц й 2 Б к о Ф й й а $ 14.6.4.1. М06 и ЗНА-1 МР5 н БНА-1 являются хэш-функциями. Вообще, хэш-функция Н(х) принимает аргумент и возвращает строку 6 фиксированного размера, называемую значением хэш-функции (или профилем сообщения). Криптографическая хзш-функция обладает следующими свойствами. 1.