
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
3. Алгоритмы формирования и функционирования криптографических систем с открытым ключом.
3.1. Алгоритм криптографической системы rsa (Райвест-Шамир-Адлеман).
Обеспечение стойкости криптографической защиты и аутентификации электронных сообщений в алгоритмах RSA к несанкционированному распознаванию и модификации криптограмм исходных открытых сообщений обосновывается высокой степенью сложности факторизации (разложения на простые множители) больших чисел. Для описания методики функционирования системы криптографических преобразований по алгоритму RSA необходимо ввести следующие условные обозначения:
КО – открытый ключ;
КЗ – закрытый (секретный) ключ;
P и Q – случайные большие простые числа;
N – модуль системы вычислений;
φ(N) – функция Эйлера.
Закрытыми (секретными) параметрами в криптографической системе RSA являются параметры КЗ; Р; Q; φ(N), значения этих параметров хранятся персональных компьютеров абонентов в секрете (при необходимости как правило на съемных носителях) и никогда никому не передаются.
Открытыми параметрами системы RSA являются КО; N, которые передаются всем абонентам корпоративной системы в открытом виде и по открытым каналам теледоступа. Открытая комбинация {KO; N} служит для формирования криптограммы открытого текста (шифрования) абонента-отправителя, закрытый ключ-КЗ и значение модуля N служат для распознавания принятой криптограммы и восстановления переданного сообщения.
Условно примем, что абонент А является отправителем зашифрованного по алгоритму RSA электронного сообщения для абонента-получателя В. Рассмотрим процесс алгоритмизации и организации криптографической системы обмена зашифрованными сообщениями на простом примере, когда параметры P и Q будут являться простыми числами двузначными по размеру. В практически применяемых криптографических системах значения этих параметров составляют более 100 десятичных знаков. Функциональное построение криптографической системы (Рис.1) и алгоритм ее функционирования изначально целесообразно рассмотреть со стороны абонента-получателя, т.е. абонента В. При инсталляции криптографической системы c использованием алгоритма RSA многие процессы выполняются автоматически и незаметны для участников сеанса обмена закриптографированными электронными сообщениями. Однако, для пояснения процессов шифрования открытых исходных сообщений (формирования криптограмм) и дешифрования принимаемых закриптографированных сообщений приведем полное описание всех процессов алгоритмизации.
Действия абонента В – абонента получателя закриптгорафированного (зашифрованного) сообщения.
1. Абонент В на своем компьютере задает два простых числа P и Q (для примера рассматриваются простые двузначные числа, на практике эти числа имеют разрядность более 100 десятичных знаков):
примем Р = 41; Q =37.
2. Вычисляет значение модуля N = P * Q = 41 * 37 = 1517.
3. Вычисляет значение функции Эйлера для полученного значения модуля N; функция Эйлера для двух простых чисел, в частности для выбранных значений P и Q определяется как: φ(N) = (P - 1)*(Q – 1) = 40 * 36 = 1440.
Функция Эйлера указывает, сколько во множестве чисел от 1 до N есть чисел взаимно простых с N, т.е. НОД (КО, φ(N) ) = 1. Это определение необходимо для случайного выбора значения открытого ключа КОВ из подмножества, определяемого численным значением функции Эйлера.
4. После вычисления значения функции Эйлера φ(N) случайным образом из полученного подмножества от 1 до φ(N) в качестве открытого ключа КОВ выбирается число, удовлетворяющее условиям:
1 ≤ КОВ ≤ φ(N); НОД (КОВ; φ(N)) = 1, т.е. это значение выбирается из указанного множества и в то же время должно быть взаимно простым с численным значением функции Эйлера. Для примера примем КОВ = 379.
5. После случайного выбора значения открытого ключа производится вычисление закрытого (секретного) ключа КЗВ для абонента В по заданному значению открытого ключа КОВ = 379, применяя для этого расширенный алгоритм Евклида при решении сравнения КЗВ = КОВ-1 (mod φ(N)), т.е. значение закрытого ключа КЗВ в алгоритме RSA является обратной величиной КОВ в модулярной алгебре, а т.к. число КОВ и численное значение функции Эйлера взаимнопросты, то инверсия значения открытого ключа определяется из следующего соотношения КЗВ =КОВ(φ(N) – 1) mod φ(N). В рассматриваемом примере это значение закрытого (секретного) ключа определяется как:
КЗВ =КОВ(φ(N) – 1) mod φ(N) = 3791439 mod 1440 = 19 mod 1440 ≡ 19.
Таким образом, со стороны абонента В была сформирована система криптографической защиты информации по алгоритму RSA, сформированы закрытые компоненты этой системы, которые хранятся в секрете у абонента В (КЗВ; Р; Q; φ(N)), а открытые компоненты (N; КОВ), которые являются ключом шифрования открытых сообщений абонент В по открытому каналу пересылает абоненту А для шифрования открытых сообщений для абонента В.
Действия абонента А по формированию криптограмм открытых сообщений для абонента В.
1. Свое открытое сообщение, предназначенное для криптографической защиты (шифрования) и передачи криптограммы по открытым каналам теледоступа от абонента А для абонента В, абонент А представляет в виде целых чисел в соответствии с таблицей перевода (например Windows-кодировка). Для примера произведено шифрование слова «Криптон»:
К→171; р→209; и→201; п→208; т →211; о→207; н→206.
Таким образом, слово «Криптон» в цифровой форме по основанию десять в соответствии с выбранной таблицей кодировки будет иметь следующее отображение:
Криптон → 171; 209; 201; 208; 211; 207; 206.
Здесь необходимо дать определение понятию «Кодирование сообщения». В соответствии с терминологией сборника рекомендуемых терминов «Теория передачи информации» Академии наук СССР под кодированием понимается «Преобразование дискретного сообщения в дискретный сигнал, осуществляемое по определенному правилу» или, в соответствии со словарем терминов и определений в области информационной безопасности под кодированием понимается: «Установление соответствия между элементом данных и совокупностью символов, называемой кодовой комбинацией, словом кода». В этом случае под дискретным сообщением понимается множество букв исходного открытого текста, а под дискретным сигналом отображение каждой буквы естественного алфавита в виде соответствующего кода (в рассматриваемом примере отображение символа алфавита в цифру десятичной системы счисления). Следовательно, сообщение М представляется как М = {Mi} = {M1; М2; М3; … Мi}, где: M1=171; М2=209; М3=201; М4=208; М5=211; М6=207; М7=206}.
2. После преобразования элементов семантического алфавита в цифровое десятичное отображение абонент А производит формирование его криптограммы (шифрование), используя для этого открытый ключ КОВ=379 и значение модуля N=1517, полученные в открытом виде по открытым каналам теледоступа от абонента В, в соответствии со следующей зависимостью:
Сi
=
mod
N = Mi379
mod1517.
После выполнения операции возведения числа Мi в степень по модулю получают криптографические значения элементов открытого сообщения для абонента В:
C1 = M1379 mod 1517 = 171379 mod 1517 = 199 mod 1517 → 199;
C2 = M2379 mod 1517 = 209379 mod 1517 = 605 mod 1517 → 605;
C3 = M3379 mod 1517 = 201379 mod 1517 = 830 mod 1517 → 830;
C4 = M4379 mod 1517 = 208379 mod 1517 = 273 mod 1517 → 273;
C5 = M5379 mod 1517 = 211379 mod 1517 = 1469 mod 1517 → 1469;
C6 = M6379 mod 1517 = 207379 mod 1517 = 718 mod 1517 → 718;
C7 = M7379 mod 1517 = 206379 mod 1517 = 206 mod 1517 → 206.
После реализации операции возведения чисел в степень по модулю составляется криптограмма сообщения М, предназначенная для передачи от абонента А к абоненту В. Эта криптограмма может быть расшифрована только с помощью соответствующего закрытого (секретного) ключа КЗВ, который хранится в секрете у абонента-получателя зашифрованного сообщения В, и эта криптограмма недоступна для распознавания всеми другими абонентами и несанкционированными пользователями, имеющими доступ к корпоративной телекоммуникационной системе.
C={Ci}={C1; С2; С3; С4; С5; С6; С7}={199; 605; 830; 273; 1469; 718; 206}→
→ ж; j; S; P; n; М; н.
Действия абонента В по приему и расшифровки криптограммы «С», полученной от абонента А.
3. Абонент В по сетевым каналам телекоммуникаций принимает криптограмму «С», зашифрованную его открытым ключом КОВ, от абонента А. В этом случае абонент В является санкционированным пользователем, который имеет специальный закрытый (секретный) ключ КЗВ, непосредственно связанный с открытым ключом шифрования КОВ. С помощью закрытого ключа КЗВ абонент В расшифровывает принятую криптограмму «С», полученную от абонента А, следующим образом:
Mi
=
mod
N = Ci19
mod 1517,
где: Mi – элемент расшифрованного текста;
Ci – криптограмма элемента открытого текста.
В соответствии с формулой вычисления элемента открытого текста из элемента криптограммы с помощью закрытого (секретного) КЗВ ключа абонента В дешифрование производится путем возведения в степень числа по модулю:
М1 = C119 mod 1517 = 19919 mod 1517 = 171 mod 1517 → 171 → К
M2 = C219 mod 1517 = 60519 mod 1517 = 209 mod 1517 → 209 → р
M3 = C319 mod 1517 = 83019 mod 1517 = 201 mod 1517 → 201 → и
M4 = C419 mod 1517 = 27319 mod 1517 = 208 mod 1517 → 208 → п
M5 = C519 mod 1517 = 146919 mod 1517 = 211 mod 1517 → 211 → т
M6 = C619 mod 1517 = 71819 mod 1517 = 207 mod 1517 → 207 → о
M7 = C719 mod 1517 = 20619 mod 1517 = 206 mod 1517 → 209 → н
Таким образом, на стороне абонента В восстанавливается открытый текст из принятой криптограммы от абонента А:
М = М1 M2 M3 M4 M5 M6 M7 → 171;209;201;208;211;207;206 →
→ К р и п т о н .