
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
2. Методы криптографических преобразований с открытым ключом.
Концепция технологии криптографических преобразований с открытым ключом предоставляет пользователям компьютерных технологий исключить возможность передачи ключа шифрования-дешифрования по специальным закрытым каналам связи. Рассматриваемый криптографический метод позволяет открыто по открытым каналам связи передавать ключ шифрования Ко, а затем по открытым каналам передавать и криптограмму «С» исходного сообщения «М». Возможность распознавания принятой криптограммы предоставляется только лишь санкционированному пользователю обладателю закрытого (секретного) ключа КЗ, который функционально связан с соответствующим открытым ключом КО. Структурная схема процесса шифрования-дешифрования при передаче конфиденциальных сообщений представлена на рис.1.
Абонент А. запрос КОВ запрос КОА Абонент В.
КЗА
КОА
КОВ
КЗВ
Ключ КОВ
Шифратор
А
Дешифратор
В
МА
Криптограмма СА
Ключ КОА
Дешифратор
А АА
Шифратор
В
МВ МВ
Рис.1 Структурная схема шифрования-дешифрования передаваемых сообщений между абонентами «А» и «В» на основе асимметричного алгоритма.
Функционирование системы криптографической защиты передаваемых сообщений от абонента А к абоненту В рассматривается на примере организации конфиденциальной связи между двумя абонентами, причем криптограмма формируется на стороне абонента А с помощью открытого ключа КОВ абонента В.
На каждом рабочем месте (компьютер абонента А и компьютер абонента В) формируются по два ключа:
КЗА – закрытый ключ абонента А;
КОА – открытый ключ абонента А;
КЗВ – закрытый ключ абонента В;
КОВ – открытый ключ абонента В;
М – открытое сообщение от абонента А для абонента В;
СА – криптограмма открытого сообщения М.
Закрытый ключ КЗ на каждом рабочем месте формируется с помощью генератора случайных чисел и в современных криптографических системах его размер определяется 1024 бит. Открытый ключ КО вычисляется как функция закрытого ключа, т.е. КО = f (КЗ). В основе такого вычисления лежит алгоритм однонаправленного преобразования, т.е. если КО = f (КЗ), то вычисление обратной функции невозможно КЗ ≠ f (КО). При таком преобразовании вычисление закрытого ключа КЗ по известному открытому ключу КО является вычислительно неразрешимой задачей.
Алгоритм шифрования открытого сообщения со стороны абонента А для абонента В определяется следующим образом:
1. Абонент А по открытому каналу запрашивает от абонента В его открытый ключ КОВ;
2. Абонент А с помощью открытого ключа абонента В - (КОВ) производит шифрование своего открытого сообщения М для абонента В, т.е. на стороне абонента А формируется криптограмма СА для абонента В с помощью открытого ключа абонента В
ZВ : МА → СА .
3. Сформированная на стороне абонента А криптограмма СА по открытому каналу передается абоненту получателю В.
4. Полученная абонентом В криптограмма СА от абонента А, составленная с помощью открытого ключа абонента В, подается на дешифратор абонента В и с помощью закрытого ключа абонента В происходит дешифрование принятого зашифрованного сообщения от абонента А.
Таким образом, шифрование открытого сообщения со стороны абонента-отправителя осуществляется с помощью открытого ключа абонента-получателя, а дешифрование принятой криптограммы осуществляется с помощью закрытого ключа абонента-получателя.
Впервые концепция криптографических преобразований с открытым ключом была предложена Унтфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman), которая была предложена на Национальной компьютерной конференции (National Computer Conference) в 1976 году. Эта же концепция была заложена и в основу аутентификации электронных сообщений (электронная цифровая подпись). Наибольшее распространение при реализации криптографических систем с открытым ключом получили методы, разработанные еще в 1978 году тремя авторами Р. Райвестом (Rivest), А. Шамиром (Shamir) и А. Адлеманом (Adleman). Этот алгоритм получил наименование по буквам фамилий авторов - алгоритм RSA (Rivest-Shamir-Adleman).
Следующим алгоритмом криптографических преобразований с открытым ключом стал широко применяемый в практической деятельности информационных технологий алгоритм дискретного логарифмирования Эль Гамаля. Эль Гамаль американский учёный-математик арабского происхождения в 1985 году предложил алгоритм шифрования и электронной цифровой подписи, основанный на сложности вычисления дискретных логарифмов в конечном поле.
В 1985 году американскими учеными Нилом Коблицом (Neal Koblitz) и Виктором Миллером (Viktor Miller) был предложен новый метод криптографических преобразований с открытыми ключами – метод дискретного логарифмирования в метрике эллиптических кривых. С 1998 года использование эллиптических кривых в прикладных криптографических задачах шифрования и аутентификации электронных сообщений было закреплено в стандартах США ANSI X9.62 и FIPS 182-2, в 2001 году в Российской Федерации был принят аналогичный стандарт на электронную цифровую подпись ГОСТ Р34.10-2001.
Основное достоинство криптографических систем, построенных на алгоритмах преобразований в метрике эллиптических кривых, по сравнению с методом факторизации больших чисел (разложение больших чисел на простые множители) - алгоритмом RSA и методом дискретного логарифмирования (алгоритм Эль Гамаля) заключается в достижении значительно большей криптостойкости при равных размерах ключей шифрования-дешифрования и одинаковой криптостойкости при значительно меньших размерах ключей шифрования-дешифрования. Например, при одинаковым уровне криптостойкости в алгоритме RSA размеры ключей преобразования составляют 1024 бит, а в алгоритме преобразования на эллиптических кривых размеры ключей преобразования составляют 160 бит, что обеспечивает большую простоту программной и аппаратной реализации криптографических систем защиты и аутентификации электронных сообщений.
Прежде, чем приступить к изучению вышеперечисленных алгоритмов, необходимо ознакомиться с элементами модулярной алгебры, такими как операция нахождения числа по модулю, операция вычисления обратных величин по модулю, малая теорема Ферма, расширенный алгоритм Евклида для нахождения обратных величин, алгоритм возведения в степень по модулю.