Rsa протокол. Алгоритм шифрования RSA. Шифрование с использованием публичного ключа

RSA-шифрование представляет собой одну из первых практических криптосистем с открытым ключом, которая широко используется для безопасной передачи данных. Ее основное отличие от подобных сервисов в том, что ключ шифрования является открытым и отличается от ключа дешифрования, который держится в секрете. В технологии RSA основана на практической сложности факторингового воспроизведения двух больших простых чисел (проблема факторинга).

История создания

Название RSA состоит из начальных букв фамилий Ривест, Шамир и Адлеман, - ученых, которые впервые публично описали подобные в 1977 году. Клиффорд Кокс, английский математик, работавший на спецслужбы Великобритании, впервые разработал эквивалентную систему в 1973 году, но она не была рассекречена до 1997 г.

Пользователь RSA создает и затем публикует открытый ключ, основанный на двух больших простых числах вместе со вспомогательным значением. должны храниться в тайне. Любой человек может использовать открытый ключ для шифрования сообщения, но если он достаточно большой, то только кто-либо со знанием простых чисел может декодировать сообщение. Раскрытие RSA шифрования известно как основная проблема: сегодня остается открытой дискуссия о том, насколько это надежный механизм.

RSA является относительно медленным алгоритмом, по причине чего он не так широко используется для непосредственного пользователя. Чаще всего этот метод используют для передачи в зашифрованном виде общих ключей для симметричного ключа шифрования, который, в свою очередь, может выполнять операции массового шифрования и дешифрования на гораздо более высокой скорости.

Когда появилась криптосистема в современном виде?

Идея асимметричного ключа криптосистемы приписывается Диффи и Хеллману, которые опубликовали концепцию в 1976 году, представив цифровые подписи и попытавшись применить теорию чисел. Их формулировка использует общий секретный ключ, созданный из экспоненциации некоторого числа по модулю простого числа. Тем не менее, они оставили открытой проблему реализации этой функции, поскольку принципы факторинга не были хорошо изучены в то время.

Ривест, Ади Шамир и Адлеман в Массачусетском технологическом институте предприняли несколько попыток в течение года, чтобы создать однонаправленную функцию, которую трудно раскодировать. Ривест и Шамир (как компьютерные ученые) предложили множество потенциальных функций, в то время как Адлеманом (как математиком) осуществлялся поиск «слабых мест» алгоритма. Они использовали много подходов и в конечном итоге в апреле 1977 года разработали окончательно систему, сегодня известную как RSA.

ЭЦП и открытый ключ

Электронная цифровая подпись, или ЭЦП, представляет собой составную часть документов электронного типа. Она образуется при определенном криптографическом изменении данных. С помощью этого атрибута возможно провести проверку целостности документа, его конфиденциальности, а также установить, кто является его владельцем. По сути, это альтернатива обыкновенной стандартной подписи.

Данная криптосистема (RSA-шифрование) предлагает открытый ключ, чем отличается от симметричных. Принцип ее функционирования в том, что применяют два разных ключа - закрытый (зашифрованный), а также открытый. Первый применяют для того, чтобы сгенерировать ЭЦП и впоследствии получить возможность расшифровки текста. Второй - для собственно шифрования и проверки ЭЦП.

Использование подписи позволяет лучше понять шифрование RSA, пример которого можно привести как обычный засекреченный «закрытый от посторонних глаз» документ.

В чем суть алгоритма?

Алгоритм RSA состоит из четырех этапов: генерации ключей, их распределения, шифрования и дешифрования. Как уже было указано, RSA-шифрование включает в себя открытый ключ и закрытый ключ. Открытый может быть известен всем и используется для шифрования сообщений. Суть его состоит в том, что сообщения, зашифрованные с помощью открытого ключа, могут быть расшифрованы только в определенный промежуток времени с использованием секретного ключа.

В целях безопасности целые числа должны быть выбраны случайным образом и быть одинаковыми по величине, но при этом различаться по длине на несколько цифр, чтобы сделать факторинг сложнее. Одинаковые же числа могут быть эффективно найдены с помощью теста на их простоту, поэтому шифрование информации должно обязательно усложняться.

Открытый ключ состоит из модуля и публичной экспоненты. Закрытый состоит из модуля и приватного показателя, который должен храниться в тайне.

Шифрование файлов RSA и слабые места

Однако существует целый ряд механизмов по взлому простого RSA. При шифровании с низкими показателями и малыми значениями чисел шифр может быть легко раскрыт, если подобрать корень шифротекста над целыми числами.

Поскольку RSA-шифрование является детерминированным алгоритмом (т.е. не имеет случайной составляющей), злоумышленник может успешно запустить выбранный открытый текст атаки против криптосистемы путем шифрования вероятных открытых текстов под открытым ключом и проверками на предмет того, равны ли они шифротексту. Криптосистема называется семантически безопасной в том случае, если злоумышленник не сможет отличить две шифровки друг от друга, даже если он знает соответствующие тексты в раскрытом виде. Как было описано выше, RSA без дополнения другими сервисами не является семантически безопасной.

Дополнительные алгоритмы шифрования и защиты

Чтобы избежать вышеуказанных проблем, при практической реализации RSA обычно встраивают некоторую форму структурированного, рандомизированного заполнения перед шифрованием. Это гарантирует, что содержание не попадает в диапазон небезопасных открытых текстов и что данное сообщение не сможет быть раскрыто путем случайного подбора.

Безопасность криптосистемы RSA и шифрование информации основаны на двух математических задачах: проблемы разложения на множители больших чисел и собственно проблемы RSA. Полное раскрытие шифротекста и ЭЦП в RSA считается недопустимым на том предположении, что обе эти проблемы невозможно разрешить в совокупности.

Однако благодаря возможности восстановления простых множителей, злоумышленник может вычислить секретный показатель из открытого ключа, а затем расшифровать текст с помощью стандартной процедуры. Несмотря на то что сегодня ни один существующий метод для факторизации больших чисел на классическом компьютере не найден, не было доказано, что он не существует.

Автоматизация

Инструмент, называемый Yafu, может быть использован для оптимизации этого процесса. Автоматизация в YAFU представляет собой современную функцию, сочетающую алгоритмы факторизации в интеллектуальной и адаптивной методологии, которая сводит к минимуму время, чтобы найти факторы произвольных входных чисел. Большинство реализаций алгоритма многопоточные, что позволяет Yafu в полной мере использовать мульти- или много (в том числе SNFS, SIQS и ECM). Прежде всего, это управляемый инструмент командной строки. Время, затраченное на поиск фактора шифрования с использованием Yafu на обычном компьютере, может быть уменьшено до 103.1746 секунд. Инструмент производит обработку емкостью 320 бит или больше. Это очень сложное программное обеспечение, которое требует определенного количества технических навыков для установки и настройки. Таким образом, RSA-шифрование C может оказаться уязвимым.

Попытки взлома в новейшее время

В 2009 году Бенджамин Муди с помощью битового ключа RSA-512 работал над расшифровкой криптотекста в течение 73 дней, используя только общеизвестное программное обеспечение (GGNFS) и среднестатистический настольный компьютер (двухъядерный Athlon64 при 1900 МГц). Как показал данный опыт, потребовалось чуть менее 5 гигабайт диска и около 2,5 гигабайт оперативной памяти для процесса «просеивания».

По состоянию на 2010 год, самый большой факторизованный номер RSA был 768 бит длиной (232 десятичные цифры, или RSA-768). Его раскрытие длилось два года на нескольких сотнях компьютеров одновременно.

На практике же ключи RSA имеют большую длину - как правило, от 1024 до 4096 бит. Некоторые эксперты считают, что 1024-битные ключи могут стать ненадежными в ближайшем будущем или даже уже могут быть взломаны достаточно хорошо финансируемым атакующим. Однако, мало кто станет утверждать, что 4096-битные ключи могут быть также раскрыты в обозримом будущем.

Перспективы

Поэтому, как правило, предполагается, что RSA является безопасным, если числа достаточно велики. Если же основное число 300 бит или короче, шифротекст и ЭЦП может быть разложен в течение нескольких часов на персональном компьютере с использованием программного обеспечения, имеющегося уже в свободном доступе. Ключи длиной 512 бит, как было доказано, могли быть вскрыты уже в 1999 году с использованием нескольких сотен компьютеров. В наши дни это возможно в течение нескольких недель с использованием общедоступного аппаратного обеспечения. Таким образом, вполне возможно, что в будущембудет легко раскрываться RSA-шифрование на пальцах, и система станет безнадежно устаревшей.

Официально в 2003 году была поставлена под сомнение безопасность 1024-битных ключей. В настоящее время рекомендуется иметь длину не менее 2048 бит.

В зависимости от структуры используемых ключей методы шифрования подразделяются на:

  • симметричное : посторонним лицам может быть известен алгоритм шифрования, но неизвестна небольшая порция секретной информации - ключа, одинакового для отправителя и получателя сообщения; Примеры: DES, 3DES, AES, Blowfish, Twofish, ГОСТ 28147-89
  • асимметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, и, возможно открытый ключ, но неизвестен закрытый ключ, известный только получателю. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), а так же SSH, PGP, S/MIME и т. д. Российский стандарт, использующий асимметричное шифрование - .

На данный момент асимметричное шифрование на основе открытого ключа RSA (расшифровывается, как Rivest, Shamir and Aldeman - создатели алгоритма) использует большинство продуктов на рынке информационной безопасности.

Его криптостойкость основывается на сложности разложения на множители больших чисел, а именно - на исключительной трудности задачи определить секретный ключ на основании открытого, так как для этого потребуется решить задачу о существовании делителей целого числа. Наиболее криптостойкие системы используют 1024-битовые и большие числа.

Рассмотрим алгоритм RSA с практической точки зрения.

Для начала необходимо сгенерировать открытый и секретные ключи:

  • Возьмем два больших простых числа p and q.
  • Определим n, как результат умножения p on q (n= p*q).
  • Выберем случайное число, которое назовем d. Это число должно быть взаимно простым (не иметь ни одного общего делителя, кроме 1) с результатом умножения (p-1)*(q-1).
  • Определим такое число е, для которого является истинным следующее соотношение (e*d) mod ((p-1)*(q-1))=1.
  • Hазовем открытым ключем числа e и n, а секретным - d и n.

Для того, чтобы зашифровать данные по открытому ключу {e,n}, необходимо следующее:

  • разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0,1,2..., n-1(т.е. только до n-1).
  • зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле C(i)=(M(I)^e)mod n.

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: M(i) = (C(i)^d) mod n. В результате будет получено множество чисел M(i), которые представляют собой исходный текст.

Следующий пример наглядно демонстрирует алгоритм шифрования RSA:

Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA. Для простоты возьмем небольшие числа - это сократит наши расчеты.

  • Выберем p=3 and q=11.
  • Определим n= 3*11=33.
  • Hайдем (p-1)*(q-1)=20. Следовательно, d будет равно, например, 3: (d=3).
  • Выберем число е по следующей формуле: (e*3) mod 20=1. Значит е будет равно, например, 7: (e=7).
  • Представим шифруемое сообщение как последовательность чисел в диапозоне от 0 до 32 (незабывайте, что кончается на n-1). Буква А =1, В=2, С=3.

Теперь зашифруем сообщение, используя открытый ключ {7,33}

C1 = (3^7) mod 33 = 2187 mod 33 = 9;
C2 = (1^7) mod 33 = 1 mod 33 = 1;
C3 = (2^7) mod 33 = 128 mod 33 = 29;

Теперь расшифруем данные, используя закрытый ключ {3,33}.

M1=(9^3) mod 33 =729 mod 33 = 3(С);
M2=(1^3) mod 33 =1 mod 33 = 1(А);
M3=(29^3) mod 33 = 24389 mod 33 = 2(В);

Данные расшифрованы!

Криптосистема RSA на каждом такте шифрования преобразует двоичный блок открытого текста m длины size(n), рассматриваемый как целое число, в соответствии с формулой: c = m e (mod n).

При этом n = pq, где p и q - случайные простые числа большой разрядности, которые уничтожаются после формирования модуля и ключей. Открытый ключ состоит из пары чисел e и n. Подключ e выбирается как достаточно большое число из диапазона 1 < e < φ(n), с условием: НОД(e, j(n)) = 1, где j(n) - наименьшее общее кратное чисел p–1 и q–1. Далее, решая в целых числах x, y уравнение xe + yφ(n) = 1, полагается d = х, т.е. ed = 1(j(n)). При этом для всех m выполняется соотношение m ed = m(n), поэтому знание d позволяет расшифровывать криптограммы.

Чтобы гарантировать надежную защиту информации, к системам с открытым ключом предъявляются два следующих требования.

1. Преобразование исходного текста должно исключать его восстановление на основе открытого ключа.

2. Определение закрытого ключа на основе открытого также должно быть вычислительно нереализуемым. При этом желательна точная нижняя оценка сложности (количества операций) раскрытия шифра.

Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах.

Рассмотрим построение криптосистемы RSA на простом примере.

1. Выберем p = 3 и q = 11.

2. Определим n = 3 ∙ 11 = 33.

3. Найдем j(n) = (p – 1)(q – 1) = 20.

5. Выберем число d, удовлетворяющее 7d = 1(mоd 20).

Легко увидеть, что d = 3(mоd 20).

Представим шифруемое сообщение как последовательность целых чисел с помощью соответствия: А = 1, B = 2, С = 3, ..., Z = 26. Поскольку size(n) = 6, то наша криптосистема в состоянии зашифровывать буквы латинского алфавита, рассматриваемые как блоки, Опубликуем открытый ключ (e, n) = (7, 33) и предложим прочим участникам системы секретной связи зашифровывать с его помощью сообщения, направляемые в наш адрес.Пусть такимсообщением будет CAB, которое в выбранном нами кодировке принимает вид (3, 1, 2).Отправитель должензашифроватькаждый блок и отправитьзашифрованное сообщение в наш адрес:

RSA(C) = RSA(3) = 3 7 = 2187 = 9(mod 33);
RSA(A) = RSA(1) = 1 7 = 1(mod 33);
RSA(B) = RSA(1) = 2 7 = 128 = 29(mod 33).

Получив зашифрованное сообщение (9, 1, 29), мы сможем его расшифровать на основе секретного ключа (d, n) = (3, 33), возводя каждый блок в степень d = 3:

9 3 = 729 = 3(mоd 33);
1 3 = 1(mоd 33);
29 3 = 24389 = 2(mоd 33).

Для нашего примера легко найти секретный ключ перебором. На практике это невозможно, т.к. для использования на практике рекомендуются в настоящее время следующие значения size(n):


· 512–768 бит - для частных лиц;

· 1024 бит - для коммерческой информации;

· 2048 бит- для секретной информации.

Пример реализации алгоритма RSA представлен в листингах 18.1 и 18.2 (компиляторы - Delphi, FreePascal).

Листинг 18.1. Пример реализации алгоритма RSA на языке Pascal

program Rsa;
{$APPTYPE CONSOLE}
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}

uses SysUtils, uBigNumber;

//Генератор случайных чисел

var t: array of Byte;
var pos: Integer;
var cbox: array of Byte =
(237, 240, 161, 1, 130, 141, 205, 98, 27, 169, 181, 202, 173, 47, 114, 224, 35, 183, 79, 82, 153, 220, 172, 22, 17, 11, 200, 131, 14, 154, 167, 91, 250, 31, 213, 112, 126, 241, 236, 155, 198, 96, 87, 143, 244, 151, 134, 38, 129, 233, 186, 101, 41, 94, 231, 115, 113, 199, 51, 145, 229, 37, 69, 180, 85, 33, 207, 163, 102, 187, 4, 89, 7, 44, 75, 88, 81, 120, 10, 232, 221, 168, 230, 158, 247, 211, 216, 156, 95, 64, 242, 215, 77, 165, 122, 5, 15, 119, 100, 43, 34, 48, 30, 39, 195, 222, 184, 92, 78, 135, 103, 166, 147, 32, 60, 185, 26, 251, 214, 90, 139, 45, 73, 150, 97, 116, 136, 68, 219, 248, 191, 192, 16, 8, 243, 50, 132, 105, 62, 201, 204, 65, 0, 99, 182, 121, 194, 108, 160, 170, 56, 226, 206, 254, 117, 178, 9, 197, 234, 127, 58, 171, 40, 29, 177, 142, 3, 228, 188, 162, 212, 157, 49, 175, 174, 140, 70, 106, 123, 66, 196, 246, 179, 42, 218, 71, 217, 227, 18, 164, 24, 67, 159, 25, 111, 255, 193, 245, 2, 238, 133, 21, 137, 152, 109, 148, 63, 124, 203, 104, 54, 55, 223, 80, 107, 210, 225, 149, 252, 76, 12, 189, 93, 46, 23, 13, 36, 209, 61, 249, 110, 144, 86, 52, 253, 72, 28, 53, 57, 125, 59, 235, 84, 128, 208, 146, 20, 74, 6, 239, 190, 83, 19, 138, 118, 176);

procedure InicMyRandom;
var i: Integer;
var s: string;
begin
WriteLn("Введите какой-либо текст для инициализации генератора
случайных чисел (до 256 символов):");
ReadLn(s);
i:= 1;
while (i<=255) and (i<=Length(s)) do

Введение 3

Основная часть 5

1История создания 5

2Описание алгоритма 5

2.1Создание ключей 6

2.2Шифрование и расшифрование 6

2.3Пример использования 7

Заключение 9

Список использованных источников 10

Введение

Криптография – специальная система изменения обычного письма, используемая с целью сделать текст понятным лишь для ограниченного числа лиц, знающих эту систему .

Криптография – наука о защите информации с использованием математических методов .

Современная криптография включает в себя:

    симметричные криптосистемы;

    асимметричные криптосистемы;

    системы электронной цифровой подписи (ЭЦП);

    хеш-функции;

    управление ключами;

    получение скрытой информации;

    квантовая криптография.

Симметричное шифрование - симметричными называются алгоритмы, в которых для шифрования и дешифрования используется один и тот же (известный только отправителю и получателю) секретный ключ.

Распространенные алгоритмы симметричного шифрования:

    AES (англ. Advanced Encryption Standard) - американский стандарт шифрования;

    ГОСТ 28147-89 - отечественный стандарт шифрования данных;

    DES (англ. Data Encryption Standard) - стандарт шифрования данных в США до AES;

    3DES (Triple-DES, тройной DES);

    IDEA (англ. International Data Encryption Algorithm);

    SEED - корейский стандарт шифрования данных;

    Camellia - сертифицированный для использовании в Японии шифр;

    XTEA - наиболее простой в реализации алгоритм .

Асимметричные криптоалгоритмы призваны в первую очередь устранить основной недостаток симметричных криптосистем – сложность управления и распространения ключей.

Основой всех асимметричных криптоалгоритмов является большая вычислительная сложность восстановления открытого текста без знания закрытого ключа.

Примеры асимметричных криптоалгритмов:

    Diffie-Hellmann;

    RSA – Rivest, Shamir, Adelman – основан на сложности задачи разложения на множители больших чисел за короткое время;

    DSA – Digital Signature algorithm, стандарт США;

    ГОСТ Р 34.10 – 94, 2001, стандарты РФ .

В данном реферате подробно рассмотрим ассиметричный криптоалгоритм шифрования – алгоритм RSA.

Основная часть

Алгоритм RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) – криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел. Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи.

    История создания

Опубликованная в ноябре 1976 года статья Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии» перевернула представление о криптографических системах, заложив основы криптографии с открытым ключом. Разработанный впоследствии алгоритм Диффи - Хеллмана позволял двум сторонам получить общий секретный ключ, используя незащищенный канал связи. Однако этот алгоритм не решал проблему аутентификации. Без дополнительных средств пользователи не могли быть уверены, с кем именно они сгенерировали общий секретный ключ.

Изучив эту статью, трое учёных Рональд Ривест (англ. Ronald Linn Rivest), Ади Шамир (англ. Adi Shamir) и Леонард Адлеман (англ. Leonard Adleman) из Массачусетского Технологического Института (MIT) приступили к поискам математической функции, которая бы позволяла реализовать сформулированную Уитфилдом Диффи и Мартином Хеллманом модель криптографической системы с открытым ключом. После работы над более чем 40 возможными вариантами, им удалось найти алгоритм, основанный на различии в том, насколько легко находить большие простые числа и насколько сложно раскладывать на множители произведение двух больших простых чисел, получивший впоследствии название RSA. Система была названа по первым буквам фамилий её создателей.

    Описание алгоритма

Первым этапом любого асимметричного алгоритма является создание пары ключей – открытого и закрытого и распространение открытого ключа "по всему миру".

      Создание ключей

Для алгоритма RSA этап создания ключей состоит из следующих операций:

Число называется открытой экспонентой

      Шифрование и расшифрование

Предположим, отправитель хочет послать получателю сообщение .

Сообщениями являются целые числа в интервале от 0 до , т.е. . На рисунке 1 представлена схема алгоритма RSA.

Рисунок 1 – Схема алгоритма RSA

Алгоритм Отправителя:

Алгоритм Получателя:

Уравнения (1) и (2), на которых основана схема RSA, определяют взаимно обратные преобразования множества .

      Пример использования

В таблице 1 представлен пример использования алгоритма RSA. Отправитель отправил зашифрованное сообщение «111111» и получатель, используя свой закрытый ключ, расшифровал его.

Таблица 1 – Поэтапное выполнение алгоритма RSA

Описание операции

Результат операции

Генерация ключей

Выбрать два простых числа

Вычислить модуль

Вычислить функцию Эйлера

Выбрать открытую экспоненту

Вычислить секретную экспоненту

Шифрование

Выбрать текст для зашифровки

Вычислить шифротекст

Расшифрование

Вычислить исходное сообщение

Заключение

В данном реферате был подробно рассмотрен алгоритм ассиметричного шифрования RSA. Была описана история его создания, описаны алгоритмы создания ключей, шифрования и расшифровки. Также представлен пример практического использования алгоритма RSA.

Список использованных источников

    Семенов Ю.А. Протоколы Internet // М.: Проспект, 2011. – 114 с.

    Беляев А.В. Методы и средства защиты информации // ЧФ СПбГТУ, 2010. – 142с.

    Венбо М. Современная криптография. Теория и практика // М.: Вильямс, 2005. - 768 с.

    Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты // М.: Триумф, 2002. - 816 с.

    Алгоритм RSA // Интернет ресурс: http://ru.wikipedia.org/wiki/Rsa

Не все пользователи персональной компьютерной техники знают и понимают, что такое RSA-шифрование и при звучании этого термина удивляются. Но ничего сложного в этом понятии не таится. RSA-шифрование — это все лишь криптосистема, которая позволяет в безопасном ключе использовать все электронные данные, создаваемые на компьютерной технике. Это не дешифрование данных, когда файлы невозможно прочесть, не зная определенного кода. RSA-шифрование подразумевает открытость ключей.

RSA-шифрование работает по принципу факторинга. Как это? А это факторинговое
воспроизведение двух больших числовых данных.

Кто создал систему RSA-шифрования?

Алгоритм RSA-шифрования был создан еще в 1977 году, его создателями являются ученые Ривест, Шамир, Адлеман, аббревиатура из начальных букв фамилий составляет термин RSA. Более ранний алгоритм проработал Клиффорд Кокс, математик из Англии, который работал на спецслужбы страны. В 1973 году ему удалось создать эквивалентную систему, но нею пользовались исключительно засекреченные лица, и методика не распространялась на уровне обычных пользователей персональной компьютерной техники.

Как работает RSA-шифрование?

Пользователь системы сперва создает, а после публикует открытый ключ, который основан на двух больших числах, только со вспомогательным значением. Простейшие числа хранятся в тайне. Чтобы, к примеру, прочесть электронное сообщение, нужно всего лишь использовать отрытый ключ к документу, но если ключ длинный, то здесь возникает трудность с доступом к информации.

Сегодня RSA-шифрование характеризуют как не слишком надежный метод шифрования данных. Это медленный алгоритм, поэтому он не настолько распространен в среде рядовых пользователей компьютеров. Так для чего же тогда создана эта система, если ею практически не пользуются рядовые компьютерщики?

Все дело в том, что он нашел свое применение в передаче в зашифрованном виде общих ключей для симметричного ключа шифровки, который предназначен для массового шифровки и дешифровки на высокой скорости.

Современная криптосистема асимметрических ключей появилась благодаря трудам Диффи и Хеллмана. Они в 1976 году разработали концепцию и представили ее публике в качестве цифровых записей. Им удалось создать общий ключ по принципу экспонации определенного числа по модулю простого числа. Но их принцип остался провисать в воздухе, поскольку на тот момент еще не были отлично изучены сами принципы факторинга.

Ривест, Адим Шамир, Адлеман не остановились на достигнутом ранее не ними, и проработали основательно механизм однонаправленной функции, которую раскодировать не так уж и просто. Ривест и Шамир непосредственно работали над самими функциями, а Адлеман искал слабые места в создаваемых алгоритмах. В конце концов, им удалось создать систему асимметрических ключей RSA.

Цифровая подпись и связь с открытыми ключами

В настоящее время многие компании используют в трудовой деятельности такой электронный элемент, как цифровая подпись. Создаваемые электронные документы,содержащие так называемую цифровую подпись, являются официальными документами, признанными на законном уровне. Электронная цифровая подпись создается при криптографическом изменении данных.

Такая альтернатива обычной подписи дает возможность сделать документ конфиденциальным, обеспечить его целостность и всегда иметь информацию о его создателе и владельце.

Электронная подпись тесно связана с рассматриваемым RSA-шифрованием. Эта система, как уже упоминалось выше, предполагает наличие открытого ключа. Сегодня используется на практике два ключа – открытый – известный всем и закрытый – зашифрованный с целью недопущения к информации посторонних лиц.

Таким образом, открытый ключ позволяет получить доступ к документу с электронной печатью, а закрытый – расшифровать подпись и проверить ее. Иными словами RSA-шифрование позволяет скрывать документы от посторонних глаз, засекретить их, но с возможностью получения к ним доступа в нужный момент.

Давайте разберемся, в чем суть придуманного алгоритма?

RSA-шифрование работает по принципу четырех этапов:
генерация ключей;
распределение ключей;
шифрование ключей;
дешифрование ключей.

Принцип RSA-шифрования объединяет создание открытых и закрытых ключей. Еще раз на этом остановимся. Открытый – известен всем, может использоваться для шифровки сообщений. Эти электронные данные можно расшифровать с помощью секретного ключа. При создании от крытых ключей выбираются случайные и одинаковые по величине числа, но разные по продолжительности записи, чтобы факторинг был сложнее.

Одинаковые числа находятся с помощью проведения тестирования на их простоту. Таким образом, шифрование постепенно усложнилось. Из чего состоит открытый ключ? А состоит он из обычного модуля и так называемой публичной экспоненты. А вот закрытый включает в себя модуль и приватный показатель, который никому не предоставляется, кроме создателя.

Слабые стороны методики RSA-шифрования

Несмотря на продуманный принцип шифрования, его можно запросто сломать. Это удается сделать, если при создании ключей использовались малые числа, раскрыть ключ можно простой подборкой простых целых чисел.

RSA-шифрование само по себе представляет собой алгоритм, исключающий случайные составляющие, что упрощает мошенникам компьютерной сети сломать детерминированный механизм, подобрав к нему открытый текст дос-атаки, которые проверяют, настойчиво равны ли запущенные тексты длине созданным ключам.

А это в первую очередь объясняет, что RSA-шифрование не является той самой криптосистемой безопасной во всех отношениях сохранения электронных данных от посягательств нежеланных лиц. Разве что при добавлении к более совершенным серверам она приобретает такие свойства.

Дополнительные составляющие, обеспечивающие безопасность использования RSA-шифрования

Чтобы предотвратить возможности взломов шифрования формата RSA, программисты встраивают в него форму структурированного, так называемого рандомизированного заполнения, делается это перед самим шифрованием электронной информации. Этот момент дает гарантию того, что содержимое электронных документов не будет представлено всем, кому не лень, что конфиденциальная информация не сможет просматриваться при применении механизма подбора ключей к документам случайным образом.

RSA-шифрование разлаживает математические числа на множители, но до совершенства механизм доведен так и не был. Поэтому на данный момент у злоумышленников остается возможность и множество лазеек для подбора методик взлома шифрования данных. И удается им это делать именно механизму восстановления простых множителей.

Мошенники вычисляют секретный показатель, содержащийся в открытом ключе, и расшифровывают документацию стандартным методом. Так что поле действий для тех, кто реально хочет навредить какой-то компании, существенно большое. Скажем так, проблема безопасности RSA-шифрования до сих пор остается актуальной и открытой, хотя все гласно о ней мало кто говорит.

Автоматизированный процесс шифрования электронных данных

Несмотря на низкий показатель безопасности, рассматриваемое RSA-шифрование применимо во многих отраслях. Особенно оно приветствуется при большом кругообороте электронной документации. Скажем так, RSA-шифрование используется для защиты документов на среднем уровне ответственности.

Программное обеспечение Yafu позволяет выполнять шифрование электронных данных в автоматическом режиме. Эта программка позволяет быстро находить данные для создания ассиметричных ключей, соблюдая правила надежности факторинга. Она сочетается в работе с такими процессорами, как SIQS , ECM, SNFS. Запускается она через командную строку. Введение этой команды в строку позволяет сократить время поиска данных для создания ключей в разы.

С этим программным обеспечением не справится рядовой пользователь персональной компьютерной техники. Для его установки и настройки требуются определенные знания и этим занимаются зачастую ИТ-программисты, специалисты.

RSA-шифрование не на шутку является уязвимым, и это несмотря на то, что для создания ключей открытых и закрытых используются большие числа, составляющие на дисках несколько тысяч бит.

Беджамин Муди в 2009 году доказал, что процесс взлома открытых и закрытых ключей возможен. Пусть на это может и понадобится два или больше лет, но факт остается фактом, что многие компьютерные системы мира могут оказаться в зоне риска быть взломанными.

К примеру, этому специалисту для просеивания сценариев ключей не понадобилось ничего особенного – обычный компьютер пользователя и программное обеспечение GGNFS. Даже практика несколько тысячных битных ключей шифрования не защищает информацию от выхода из поля конфиденциальной и недоступной другим пользователям.

Конечно же, для взлома RSA-шифрования требуется время. Многие хакеры тратят годы для достижения положительного результата. Зачастую это высокооплачиваемые перспективы, которые подогревают интерес к продолжению поиска нужного ключа. В большинстве то случаев от взлома длинных ключей отказываются в поисках более простых перспектив. Но, это не означает, что никто не пытается создать более упрощенный механизм взлома ключей.

Основная защита от навязчивых атак мошенников – это создание объемных и длинных ключей более двух тысяч бит. Уже известны случаи взлома ключей длиной от ста до пятисот бит. Так что нужно держать ухо в остро. Если есть механизм взлома коротких ключей, наверняка кипит работа где-то на стороне недоброжелателей над взломом самых длинных комбинаций шифрования электронных данных.

Заключение

Исходя из выше сказанного RSA-шифрование – это безопасный метод сохранения конфиденциальности электронных данных при условии создания длинных и информационно объемных ключей.

Вручную их сложно подбирать, поэтому используется автоматизированный программный продукт Yafu. Его установкой и настройкой занимаются ИТ-специалисты. Самостоятельная работа может привести к поломке операционной системы компьютера.
Это программное обеспечение рассчитано на работу в тандеме с многоядерными компьютерными процессорами современного поколения.

Основными объектами мошеннических атак являются крупные промышленные и финансовые компании, поэтому без RSA-шифрования их электронный документооборот не работает. Электронная подпись документов также подлежит шифрованию, и к ней применимы такие же стандарты безопасности, как и для иных информационных данных. Принцип – чем больше ключ, тем сложнее взломать документ — должен быть применим абсолютно ко всем данным, которые не предназначены для общего пользования.