
- •Методы защиты информации в компьютерных технологиях Москва 2011
- •1. Основные направления криптологии.
- •2. Методы криптографических преобразований с открытым ключом.
- •2.1. Алгоритм нахождения числа по модулю.
- •2.2. Вычисление обратных величин в модулярной алгебре.
- •2.3. Алгоритм операции возведения числа в степень по модулю.
- •2.4. Определение односторонней функции.
- •3. Алгоритмы формирования и функционирования криптографических систем с открытым ключом.
- •3.1. Алгоритм криптографической системы rsa (Райвест-Шамир-Адлеман).
- •3.2. Алгоритм криптографической системы на основе вычисления дискретных логарифмов в конечном поле – алгоритм Эль Гамаля.
- •3.3. Алгоритм функционирования криптографической системы на основе дискретного логарифмирования в метрике эллиптических кривых.
- •3.3.1. Основные операции криптографических преобразований в метрике эллиптических кривых.
- •3.4. Преобразование Диффи-Хеллмана в системах криптографии с открытым ключом.
- •XcxпШифратор
- •3.5. Формирование криптограмм открытых сообщений и их дешифрование с использованием методов дискретного логарифмирования в метрике эллиптических кривых.
- •4.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •4.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •4.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •4.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •4.1.6. Вычисление координат точки [64]g , как результат удвоения точки [32]g:
- •4.1.7. Вычисление координат точки [128]g , как результат удвоения точки [64]g:
- •4.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •5. Алгоритм формирования открытого ключа абонента в.
- •5.1. Вычисление множеств точек удвоения заданной эллиптической кривой.
- •5.1.3. Вычисление точки [8]g, как результат удвоения точки [4]g:
- •5.1.4. Вычисление точки [16]g , как результат удвоения точки [8]g:
- •5.1.5. Вычисление точки [32]g , как результат удвоения точки [16]g:
- •5.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •5.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •5.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой ( [2]g; [4]g; [16]g; [32]g; [128]g ).
- •6. Вычисление парного сеансового ключа шифрования-дешифрования для абонентов а и в на основе преобразований Диффи-Хеллмана.
- •6.1. Действие абонента в.
- •6.1.1. Вычисление точки [2]коа , как результат удвоения точки коа:
- •6.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [2]коа; [4] коа; [16] коа; [32] коа; [128]коа).
- •7. Дешифрование абонентом а криптограммы, полученной от абонента в с использованием парного секретного симметричного ключа, сформированного по методу Диффи-Хеллмана в метрике эллиптических кривых.
- •7.1. Вычисление удвоений множества точек заданной эллиптической кривой на стороне абонента «а» по значению точки ков, характеризующей открытый ключ абонента «в».
- •7.1.1. Вычисление значения удвоения точки ков – [2]ков:
- •7.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [4]ков; [8]ков; [32]ков; [64]коа; [128]ков).
- •7. 3. Дешифрование абонентом «а» криптограммы с, полученной от абонента «в».
- •4. Алгоритмы электронной цифровой подписи.
- •4.1. Алгоритм электронной цифровой подписи rsa (Райвест-Шамир-Адлеман).
- •4.2. Алгоритм электронной цифровой подписи Эль Гамаля (egsa). Egsa (el Gamal Signature Algorithm).
- •4. 3. Алгоритм электронной цифровой подписи dsa (Digital Signature Algorithm).
- •4.4. Алгоритм электронной цифровой подписи гост р34.10-94. (Отечественный стандарт электронной цифровой подписи).
- •4.5. Алгоритм электронной цифровой подписи гост р34.10-2001. (Отечественный стандарт электронной цифровой подписи).
- •3.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •3.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •3.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •3.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •3.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •3.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •3.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •4. Действие абонента-отправителя (абонента «а») по формированию электронной цифровой подписи электронного сообщения «м».
- •4.3.2. Вычисление композиций точек удвоения [256]g; [64]g; [16]g; [8]g; [2]g; g заданной эллиптической кривой.
- •4.3.2.3. Вычисление композиции точек [336]g и [8]g;
- •4.3.2.4. Вычисление композиции точек [344]g и [2]g;
- •4.3.2.5. Вычисление композиции точек [346]g и g;
- •4.5. Вычисление параметра электронной цифровой подписи Si .
- •5. Действия абонента «в» по приему и аутентификации подписанного электронного сообщения «м».
- •5.5.2. Вычисление композиции точек [32]g и [8]g;
- •5.5.3. Вычисление композиции точек [40]g и [4]g;
- •5.5.5. Вычисление композиций точек удвоения
- •5.5.5.1. Вычисление композиции точек [128]коа и [64]коа;
- •5.5.5.2. Вычисление композиции точек [192]коа и [32]коа;
- •5.5.5.3. Вычисление композиции точек [224]коа и [2]коа;
- •5.5.5.4. Вычисление композиции точек [u1]g и [u2]коа;
- •5.5.5.5. Сравниваются вычисленные значения параметра «r», принятого в составе эцп от абонента-отправителя и значения абсциссы точки «q» → «xq», вычисленное абонентом получателем.
- •6. Элементы симметричных криптографических преобразований.
- •6.2. Табличное шифрование методом перестановки по ключевому слову или фразе, задающими перестановку.
- •6.3. Табличное шифрование методом двойной перестановки.
- •6.5. Шифры сложной замены.
- •7. Корректирующие коды.
- •6. 1. Блочные коды.
- •6.1.1. Систематические коды.
- •6.1.2. Корректирующие коды с обнаружением искажений, применяемые в системах передачи и обработки информации.
- •7. Windows-кодирование.
- •7.1. Преобразование Windows-кодирования - коды Грея.
- •7.2. Преобразование Windows-кодирования в систематические коды.
- •7.3. Преобразование Windows-кодирования в коды Хэмминга.
- •7.5. Преобразование Windows-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
4.1. Алгоритм электронной цифровой подписи rsa (Райвест-Шамир-Адлеман).
Впервые в мировой практике аутентификации электронных сообщений на основе формирования и подтверждения подлинности электронной цифровой подписи в 1977 году в Массачусетском технологическом институте США тремя учеными в области криптографических преобразований была разработана математическая модель и реализована криптографическая система аутентификации электронных сообщений RSA.
Этот алгоритм основан на методе факторизации больших целых чисел (разложении большого целого числа на простые множители).
Действия абонента «А» по формированию ЭЦП.
1. Отправитель электронного сообщения на своем компьютере случайным образом генерирует два больших простых числа (размерность простых чисел составляет порядка 100 десятичных знака), затем находит их произведение, которое определяется как модуль криптографических преобразований N = P * Q.
2. После вычисления модуля криптографических преобразований системы RSA производится вычисление функции Эйлера φ(N)
φ(N) = (P-1) * (Q-1).
Числовое значение функции Эйлера определяет, сколько в данном модуле N есть чисел взаимно простых с N:
НОД ( {ni}; N} = 1,
где: НОД – наибольший общий делитель;
{ni} – множество чисел взаимно простых с N в диапазоне от 1
до N;
N – модуль системы преобразований.
Детерминированное множество {ni} чисел взаимно простых с N необходимо для выбора случайным образом из этого множества значения открытого ключа абонента-отправителя исходного сообщения «М», ключа КОА при следующих условиях ограничения 1 < КОА ≤ φ(N) и НОД (КОА; φ(N)) = 1, т.е. числа открытого ключа и значения функции Эйлера должны быть взаимно простыми.
3. На следующем шаге алгоритма RSA производится вычисление закрытого (секретного) ключа абонента-отправителя КЗА по следующей формуле:
КЗА = КОА-1 mod φ(N)
Вычисление обратного значения КОА по заданному модулю при условии, что известна функция Эйлера, несколько упрощается и представленная зависимость преобразуется к виду:
КЗА = КОА-1 mod φ(N) = КОАφ(N) – 1 mod φ(N).
4. В результате выполненных операций вычислены открытые и закрытые параметры системы криптографической аутентификации алгоритма RSA:
- закрытыми секретными параметрами являются КЗА – закрытый (секретный) ключ абонента-отправителя сообщения; простые числа P и Q, образующие модуль системы преобразования;
- открытыми параметрами являются КОА – открытый ключ абонента-отправителя сообщения «М» и значение модуля N.
5. Открытые параметры системы аутентификации электронных сообщений по каналам теледоступа передаются абоненту-получателю.
6. После вычисления открытого КОА и закрытого КЗА ключей электронной цифровой подписи выполняется операция формирования ЭЦП электронного сообщения «М». Для чего вычисляется значение хэш-функции исходного сообщения М → h(M)B. При вычислении хэш-значения сообщения «М» формируется кодовая комбинация размером 256 бит, что составляет 32 десятичных знака.
7. После получения отображения сообщения «М» в виде картежа десятичных чисел хэш-функции, состоящего из 32 знаков (независимо от размера сообщения «М»), производится шифрование каждого числового элемента в соответствии со следующей зависимостью:
Si
=
mod
N
8. В результате шифрования каждого элемента хэш-функции закрытым ключом абонента-отправителя исходного сообщения формируется электронная цифровая подпись:
Сh(M) = {Si} = mod N
Исходный открытый текст сообщения «М» и криптограмма значений функции хеширования (ЭЦП) передаются по открытому каналу абоненту-получателю (абоненту «В»).
9. Абонент-получатель, получив электронное сообщение «М» и его ЭЦП проводит операцию аутентификации.
9.1. Для чего изначально выполняется операция дешифрования криптограммы значений функции хеширования Сh(M) = {Si} = mod N по следующей зависимости:
mi
=
mod
N.
9.2. Затем выполняется операция хеширования принятого сообщения «М» и сравнение результатов дешифрования криптограммы хэш-функции Сh(M) → h(M)D с результатом вычисления значения функции хеширования h(M)В из принятого сообщения «М».
На основании результатов сравнения получаемых значений функций хеширования принимается решение о достоверности принятого сообщения «М».
Алгоритм аутентификации RSA может быть продемонстрирован на следующем числовом примере с числовыми значениями меньшего размера для полноты и наглядности иллюстрации. Пример разбирается на авторском макете автоматизированной обучающей системы по асимметричным криптографическим преобразованиям.
Пример. Построить систему аутентификации электронных сообщений по алгоритму RSA.
Действия абонента-отправителя (абонента «А»).
1. Случайным образом выбираются два простых числа P и Q, например P = 23, Q = 41. Вычисляется модуль криптографических преобразований N = P * Q =23 * 41 = 943.
2. Вычисляется значение функции Эйлера φ(N)
φ(N) = (P -1) * (Q-1) = 22 * 40 = 880.
На множестве чисел от 1 до 943 существует 880 чисел взаимно простых с N = 943.
3. Случайным образом из множества чисел от 1 до 880
1 < КОА < φ(N) выбирается значение открытого ключа КОА, например КОА=337 при условии, что НОД (КОА; φ(N)) = НОД (337; 880) = 1, т.е. значения открытого ключа КОА и функции Эйлера φ(N) взаимно просты.
4. Вычисляется значение секретного ключа для формирования криптограммы Ch(M):
КЗА = КОАφ(N) – 1 mod φ(N) = 337879 mod 880 = 833 mod 880 → 833.
5. Задается исходное сообщение «М», для примера введен одно слово «Криптон». Вычисляется значение функции хеширования для слова «Криптон»:
h(M)B = 52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42
6. Производится шифрование числового выражения хэш-функции исходного сообщения «Криптон» с использованием закрытого (секретного) ключа абонента-отправителя.
Сh(M) = {Si} = mod N = mi833 mod 943.
C1 = m1833 mod 943 = 52833 mod 943 = 233 mod 943→233;
C2 = m2833 mod 943 = 48833 mod 943 = 358 mod 943→358;
C3 = m3833 mod 943 = 52833 mod 943 = 233 mod 943→233;
----------------------------------------------------------------------------
C32 = m32833 mod 943 = 42833 mod 943 = 452 mod 943→452.
После преобразования цифровых значений в соответствии с таблицей Windows-кодировки получаем семантическое отображение ЭЦП:
ЭЦП (Криптон) → Сh(M) = {Si} = 233 358 233 358 583 452 759 759 204 842 358 358 583 357 759 452 233 842 842 233 583 583 583 583 700 233 358 358 357 583 759 452 → (Ґ(Ґ¦#vvлЙҐҐ¦¤v#(ЙЙ(¦¦¦¦;(ҐҐ¤¦v#
Таким образом ЭЦП сообщения «Криптон» представляет собой криптограмму Сh(M) = С1 С2 С3 … С32. Исходное сообщение «М» и криптограмма числового значения функции хеширования исходного сообщения передаются абоненту-получателю по каналам телекоммуникаций.
Действия пользователя «В» по аутентификации принятого сообщения «М».
7. Получив сообщение «М» и криптограмму хэш-функции h(M)B абонент-получатель производит дешифрование криптограммы хэш-функции h(M)B с использованием открытого ключа КОА абонента-отправителя по следующей зависимости
h(M)D
= mi
=
mod N =
mod N = Ci337
mod 943
m1 = C1337 mod N = 233337 mod 943 = 52 mod 943 → 52
m2 = C2337 mod N = 358337 mod 943 = 50 mod 943 → 48
m3 = C3337 mod N = 233337 mod 943 = 52 mod 943 → 52
------------------------------------------------------------------------
m32 = C32337 mod N = 452337 mod 943 = 48 mod 943 →42
8. Затем абонент-получатель вычисляет значение функции хеширования принятого сообщения «М» → «Криптон»:
h(M)B = 52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42.
9. Сравнивая значения хэш-функций h(M)D и h(M)B
h(M)D = 52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42
h(M)B = 52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42
абонент-получатель убеждается в достоверности принятого сообщения «М».
Рис.7. Иллюстрация примера аутентификации сообщения «Криптон».
На рис.7 отображен заключительный фрагмент автоматизированной обучающей системы по аутентификации электронных сообщений в алгоритме RSA.
Для примера модификации принимаемого сообщения вводится изменение в исходное сообщение М → Криптон. Допустим, произведена модификация подписанного сообщения М → Краптон. Результат такой модификации отображен на рис. 8. Система аутентификации зафиксировало это изменение и выдало сообщение, что принятый документ был изменен.
Рис. 8. Фрагмент модификации принимаемого сообщения «М».