8-900-374-94-44
[email protected]
Slide Image
Меню

C rsa шифрование: Алгоритм шифрования RSA

Шифрование RSA для первокурсников / Хабр

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

В этой статье я решаю на языке MIT Scheme задачу шифрования и дешифрования методом RSA [1]. По ряду причин, которые рассматриваются в статье, реализация не может использоваться для криптографической защиты информации.

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

Первый этап генерации ключей — случайный выбор двух достаточно больших простых чисел p и q. Натуральное число x называется простым, если у него есть ровно два различных делителя: 1 и x. Все другие делители числа располагаются на отрезке от 2 до квадратного корня из x, однако достаточно проверять на кратность только простые делители, принадлежащие этому отрезку.

(define (Primes n)
  (define (prime? n primes)
    (define (iter divisors)
      (or (null? divisors)
          (let ([divisor (car divisors)])
               (or (> (* divisor divisor) n)
                   (and (< 0 (remainder n (car divisors))) (iter (cdr divisors))))))
      )
    (iter primes)
    )
  (define (iter primes i candidate)
    (cond 
      ((= i n) primes)
      ((prime? candidate (reverse primes)) (iter (cons candidate primes) (+ i 1) (+ candidate 1)))
      (else (iter primes i (+ candidate 1)))
      )
    )
  (iter '() 0 2)
  )
(define primes (Primes 100))
(define p (car primes))
(define q (car (drop 10 primes)))

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

(define n (* p q))

Для вычисления вторых элементов открытого и закрытого ключей используется величина fi, равная функции Эйлера [3], вычисленной на n. Функция Эйлера от x равна количеству натуральных чисел, не больших x и взаимно простых с ним. Для n это количество будет равно произведению p-1 и q-1.

(define fi (* (- p 1) (- q 1)))

Вторым элементом открытого ключа выбирается случайное число e в диапазоне от 1 до fi, являющееся взаимно простым с fi. то есть таким, что наибольшим общим делителем чисел является 1.

(define (CoprimesLess n)
  (define (iter accumulator candidate)
    (cond
      ((= 1 candidate) accumulator)
      ((= 1 (gcd n candidate)) (iter (cons candidate accumulator) (- candidate 1)))
      (else (iter accumulator (- candidate 1)))
      )
    )
  (iter '() (- n 1))
  )
(define e (car (drop 5 (CoprimesLess fi))))

Для поиска наибольшего общего делителя можно использовать алгоритм Евклида [4].

Одним из объектов, изучаемых теорией чисел, является кольцо вычетов [5]. Кольцо вычетов по модулю k — это целые числа от 0 до k-1 и операции сложения и умножения на нём. Сложение в кольце вычетов (a + b mod k) отличается от сложения в группе целых чисел тем, что если результат сложения становится больше k, из него вычитается k, в результате чего этот результат снова оказывается в кольце. Интуитивно, кольцо получается из отрезка соединением его концов.

Как и в группе целых чисел, умножение в кольце вычетов можно задать при помощи сложения, а возведение в степень — при помощи умножения. Как и в группе целых чисел, получившиеся операции сложения и умножения будут обладать ассоциативностью, то есть:
a + (b + c mod k) mod k = (a + b mod k) + c mod k
a * (b * c mod k) mod k = (a * b mod k) * c mod k

Вторым элементом открытого ключа должно быть число d такое, что его произведение с e в кольце вычетов по модулю n является 1, то есть мультипликативно обратный элемент. Привожу алгоритм поиска такого элемента при помощи расширенного алгоритма Евклида [6].

(define (MultInverseModN a n)
  (define (iter a-prev a r-prev r)
    (if (>= 1 r) a (let* ([r-next (remainder r-prev r)]
                          [q (quotient r-prev r)]
                          [a-next (- a-prev (* q a))])
                         (iter a a-next r r-next)))
    )
  (let ([result (iter 0 1 n a)]) (if (< 0 result) result (+ n result)))
)
(define d (MultInverseModN e fi))

При помощи алгоритма RSA можно шифровать сообщения, представленные серией чисел M в диапазоне от 0 до n-1. Шифрование состоит в возведении M в степень e в кольце вычетов по модулю n, дешифрование — в степень d. Благодаря тому, что умножение является ассоциативным, мы можем возводить в степень x за log(x) операций [7].

(define (PowerModN a b n)
  (define (iter accumulator multiplicator power)
    (if
      (= power 0)
      accumulator
      (let
          ((new_accumulator (if (even? power) accumulator (remainder (* accumulator multiplicator) n))))
          (iter new_accumulator (* multiplicator multiplicator) (quotient power 2))
        )
      )
    )
  (iter 1 a b)
  )

В моём примере открытый ключ представляет собой пару (250483 31), закрытый — пару (250483 32191). Зашифрованное сообщение 123456 равно 133240.


  1. en.wikipedia.org/wiki/RSA
  2. en.wikipedia.org/wiki/Integer_factorization
  3. en.wikipedia.org/wiki/Euler%27s_totient_function
  4. en.wikipedia.org/wiki/Euclidean_algorithm
  5. en.
    wikipedia.org/wiki/Modular_arithmetic
  6. en.wikipedia.org/wiki/Extended_Euclidean_algorithm
  7. en.wikipedia.org/wiki/Exponentiation_by_squaring

Схема шифрования RSA и её программная реализация

Автор(ы): Короткова Дарья Алексеевна
Рубрика: Технические науки
Журнал: «Евразийский Научный Журнал №1 2017»  (январь, 2017)
Количество просмотров статьи: 6699
Показать PDF версию Схема шифрования RSA и её программная реализация

Короткова Дарья Алексеевна,
студентка Ульяновский государственный университет
E-mail: [email protected]

Аннотация

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

Чтобы обеспечить безопасность личных данных при передаче, необходимо зашифровывать информацию.

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

В данной статье я рассмотрю метод шифрования RSA и метод дополнительного шифрования OAEP, напишу его программную реализацию и сымитирую атаки на RSA.

Ключевые слова: шифр, C++, безопасность, RSA, OAEP.

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

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

Криптографические системы с открытым ключом используют односторонние функции, обладающие свойствами:

· Если известно x, то вычислить f(x) просто.

· Если известно y=f(x), то для вычисления x нет простого пути.

Алгоритм RSA:

1. Создание открытого и закрытого ключа.

1. Выбирается два простых числа u и v.

2. Вычисляется произведение p=u*v.

3. Вычисляется функция Эйлера φ(p)=(u-1)(v-1)

4. Выбираем открытую экспоненту e (1<e< φ(p))

5. Вычисляем закрытую экспоненту d, где (d*e) mod φ(p) =1

6. Получаем открытый ключ (e, p) и закрытый ключ (d, p).

2. Шифрование и дешифрование.

Посмотрим модель шифрования и дешифрования сообщения на конкретном примере. Пусть Алиса хочет послать Бобу сообщение h.


У Алисы есть открытый ключ Боба. А Боб владеет своим закрытым ключом.

w=G(h)= he mod p h=Q(w)=wd mod p

Безопасность схемы шифрования RSA:

Я написала программу на языке высокого уровня С++, где каждый символ кодируется на основании таблицы ASCII, и затем осуществляется алгоритм RSA.


Например, берем символ I, по таблице ASCII его код равен 73. Генерация ключей такая же, как и в примере написанной программы.

w=G(h)= he mod p = 732075 mod 21823=8774; (посчитано на инженерном стандартном калькуляторе в операционной системе Windows)

h=Q(w)=wd mod p = 877483 mod 21823 = 73 = I

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

Некоторые атаки на RSA.

1. Разложение на множители.

Реализуется на подборе простых чисел u, v, для надёжности числа должны быть большими.

2. Выборка шифрованного текста.

Пусть Ева перехватывает сообщение w от Алисы к Бобу w=ze (mod n), где z- открытый текст, е — открытый ключ; Ева выбирает число r, r<n и вычисляет с помощью открытого ключа x=re (mod n) ,y= x*c (mod n)

Ева передает Y бобу для дешифрования и получает g = yd mod n. Ева может легко найти z

g= yd mod n=(w*xe)d mod n = (wd*xed)mod n = (wd*x) mod n =(z*x)mod n
z= (z*x) mod n -> z=w*x-1 mod n
3. Исходный текст.

Криптосистема RSA обладает низкой криптостойкостью при малой экспоненте на коротком сообщении. Действительно, при c = me < n открытый текст m может быть восстановлен по шифротексту © при помощи процедуры извлечения корня. Однако меры противодействия также очевидны, — либо открытый ключ e должен быть достаточно большим, либо открытый текст не должен быть коротким. Выбор малого e обусловлен соображениями вычислительной эффективности шифрования и проверки подписи.

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

Оптимальное асимметричное дополнение шифрования (OAEP — Optimal Assimetric Encryption Padding) — схема дополнения, обычно используемая совместно с какой-либо односторонней функцией с потайным входом (например RSA или функции Рабина) для повышения криптостойкости последней.

Шифрование. Ниже показаны шаги процесса шифрования.

  1. Дополняем сообщение, чтобы сделать его w -битовым. Обозначим его W.
  2. Выбираем случайное число s (одноразовое число) из k бит.
  3. Используем общедоступную одностороннюю функцию G, которая принимает целое s -битовое число, и создает w -разрядное целое число (w — размера W, и s <w ).
  4. Применяет маску, G (s), чтобы создать первую часть исходного текста P1=W+G(s) является замаскированным сообщением.
  5. Создаём вторую часть исходного текста P2 = H(P1) + s. Функция H — другая общедоступная функция, которая принимает w -битовые входные сообщения и создает k -битовые выходные сообщения.
  6. Cоздаём C = Pe = (P1 || P2) e и передаём C.

Дешифрование. Следующие шаги показывают процесс дешифрования:

  1. Создаём P = Cd = (P1 || P2).
  2. Обновляем значение s, используя H(P1) + P2= H(P1) + H(P2) + s =s.
  3. Применяет G(s) + P = G(s) + G(s) + W=W , чтобы обновить значение дополненного сообщения.
  4. После удаления дополнения W, находим первоначальное сообщение.

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

Литература:

  1. Венбо Мао. Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. — М.: Вильямс, 2005.
  2. Нильс Фергюсон, Брюс Шнайер. Практическая криптография = Practical Cryptography: Designing and Implementing Secure Cryptographic Systems. — М.: Диалектика, 2004.
  3. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002.
Шифрование

RSA | Brilliant Math & Science Wiki

Содержание
  • Обзор
  • Алгоритм
  • Приложения и уязвимости
  • Рекомендации

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

Как Алиса отправила алмаз Бобу?

Решение:

  1. Сначала Боб отправляет Алисе незапертый замок. Обратите внимание, что Боб дал бы кто-нибудь незапертый замок, так как единственное применение от него — отправить что-нибудь Бобу.
  2. Алиса добавляет замок Боба и отправляет пакет Бобу, а
  3. Боб снимает замок и открывает посылку.

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

В RSA открытый ключ генерируется путем умножения двух больших простых чисел \(p\) и \(q\) вместе, а закрытый ключ генерируется с помощью другого процесса, включающего \(p\) и \(q\). ). Затем пользователь может распространить свой открытый ключ \(pq\), и любой, кто пожелает отправить пользователю сообщение, зашифрует свое сообщение с помощью открытого ключа. Для всех практических целей даже компьютеры не могут разлагать большие числа на произведение двух простых чисел, точно так же, как разложить на множители такие числа, как 414863, вручную практически невозможно. Однако умножить на два числа гораздо проще, поэтому потенциальную факторизацию можно быстро проверить, как показывает следующая задача с множественным выбором:

\[577 \times 709\] \[577 \раз 719\] \[587 \раз 709\] \[587 \times 719\]

Что из следующего является правильной простой факторизацией числа 414863?

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

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

  1. Сначала получатель выбирает два больших простых числа \(p\) и \(q\). Их произведение \(n=pq\) будет половиной открытого ключа. {16}+1=65537\), хотя в некоторых случаях оно может быть меньше \(3\). \(e\) будет второй половиной открытого ключа.
  2. Получатель вычисляет модульную обратную \(d\) функции \(e\) по модулю \(\phi(n)\). Другими словами, \(de \equiv 1 \pmod{{\small\phi(n)}}\). \(d\) — это закрытый ключ .
  3. Получатель распространяет обе части открытого ключа: \(n\) и \(e\). \(d\) держится в секрете.

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

  1. Сначала отправитель преобразует свое сообщение в число \(m\). В одном распространенном процессе преобразования используется алфавит ASCII:

    Например, сообщение «HELLO» будет закодировано как 7269767679. Важно, чтобы \(m

    Например, предположим, что получатель выбрал простые числа \(p=11\) и \(q=17\), а также \(e=3\).

    1. Получатель вычисляет \(n=pq=11 \cdot 17=187\), что составляет половину открытого ключа.
    2. Приемник также вычисляет \(\phi(n)=(p-1)(q-1)=10 \cdot 16=160\). \(e=3\) также был выбран.
    3. Приемник вычисляет \(d=107\), так как тогда \(de=321 \эквив 1 \pmod{{\small\phi(n)}}\) \(\big(\)так как \(\phi( п)=160). \) 9{107} \equiv 72 \pmod{187}\), таким образом получая сообщение \(m=72\).
    4. Получатель переводит 72 в ‘H’.

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

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

    Сила RSA измеряется размером ключа, который представляет собой количество битов в \(n=pq\). 512-битный (155 цифр) RSA больше не считается безопасным, поскольку современные атаки грубой силы могут извлекать закрытые ключи всего за несколько часов, а аналогичная атака смогла извлечь 768-битный (232 цифры) закрытый ключ в 2010 году. 2016, 1024-битные (309 цифр) ключи считаются рискованными, а большинство вновь сгенерированных ключей имеют длину 4096 бит (1234 цифры).

    Одна распространенная атака на RSA полностью обходит алгоритм. Компьютер может быстро вычислить наибольший общий делитель двух чисел, используя алгоритм Евклида, поэтому злоумышленник может запустить этот алгоритм на двух открытых ключах. Если их наибольший общий делитель равен , а не 1, то злоумышленник нашел простое число, разделяющее оба ключа, и взломал два ключа одновременно. Например, предположим, что два открытых ключа были 239149 и 166381. Трудно разложить любое из этих двух чисел вручную, но алгоритм Евклида можно выполнить вручную, обнаружив, что два числа имеют наибольший общий делитель 379.

    983 1217 1361 1439e

    Открытый ключ Боба \[n=6 865 653 949 821 276 403 125 067\ \ \text{and}\ \ e=3.\] Алиса отправляет зашифрованный текст \[с=309 717 089 812 744 704\] к Бобу. Какое сообщение Алисы было преобразовано в ASCII?

    (Вы можете предположить, что сообщение Алисы представляет собой английское слово, написанное заглавными буквами.)

    Другой класс атак направлен на аппаратное обеспечение. Управляя уровнями мощности компьютера и вызывая сбои питания, исследователи из Мичигана смогли расшифровать 1024-битный закрытый ключ, используя только стандартное оборудование[1]. Точно так же, изучая звуки, издаваемые компьютером во время работы, израильские исследователи смогли извлечь 4096-битный закрытый ключ менее чем за час[2].

    В 1994 году математик из Массачусетского технологического института Питер Шор разработал теоретический алгоритм для квантовых компьютеров, который вычисляет числа экспоненциально быстрее, чем современные алгоритмы. Однако, поскольку были построены только небольшие квантовые компьютеры, по состоянию на 2016 год алгоритму удалось разложить на множители только 16-битные числа (самое большое на сегодняшний день — 56153).

    [1] Мичиганский университет. Атака на основе сбоя аутентификации RSA . Получено 12 января 2016 г. с http://web.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf 9.0017

    [2] Тель-Авивский университет. Извлечение ключа RSA с помощью акустического криптоанализа с низкой пропускной способностью . Получено 12 января 2016 г. с http://www.tau.ac.il/~tromer/papers/acoustic-20131218.pdf

    Цитировать как: RSA-шифрование. Brilliant.org . Извлекаются из https://brilliant.org/wiki/rsa-encryption/

    Алгоритм шифрования RSA — Javatpoint

    A B C D E F G H I J K L M
    65 66 67 68. 0075 Q R S T U V W X Y Z
    78 79 80 81 82 83 84 85 86 87 88 89 90

    следующий → ← предыдущая

    Алгоритм шифрования

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

    Алгоритм шифрования с открытым ключом:

    Алгоритм шифрования с открытым ключом

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

    • Открытый ключ
    • Закрытый ключ

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

    Алгоритм открытого ключа работает следующим образом:

    • Отправляемые данные шифруются отправителем A с использованием открытого ключа предполагаемого получателя
    • B расшифровывает полученный зашифрованный текст, используя свой закрытый ключ, который известен только B. B отвечает A, шифруя свое сообщение, используя открытый ключ A.
    • А расшифровывает полученный зашифрованный текст, используя свой закрытый ключ, который известен только ему.

    Алгоритм шифрования RSA:

    RSA — наиболее распространенный алгоритм с открытым ключом, названный в честь его изобретателей Ривеста, Шамира и Адельмана (RSA).

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

    • Выберите два больших простых числа, p и q .
    • Умножьте эти числа, чтобы найти n = p x q, , где n называется модулем для шифрования и дешифрования.
    • Выберите номер e меньше n , так что n взаимно простое с (p — 1) x (q -1). Это означает, что e и (p — 1) x (q — 1) не имеют общего делителя, кроме 1. Выберите «e» так, чтобы 1 НОД (e,d(n)) =1
    • Если n = p x q, , то открытый ключ . Открытое текстовое сообщение m зашифровано с использованием открытого ключа . Чтобы найти зашифрованный текст из открытого текста, используется следующая формула для получения зашифрованного текста C.
      C = m e мод n
      Здесь , m должно быть меньше, чем n . Сообщение большего размера (>n) рассматривается как объединение сообщений, каждое из которых зашифровано отдельно.
    • Чтобы определить закрытый ключ, мы используем следующую формулу для вычисления d таким образом, что:
      D e mod {(p — 1) x (q — 1)} = 1
      Или
      D e мод φ (n) = 1
    • Закрытый ключ . Зашифрованное сообщение c расшифровывается с помощью закрытого ключа . Для вычисления открытого текста m из зашифрованного текста c используется следующая формула для получения открытого текста m.
      м = с d мод п

    Давайте рассмотрим пример алгоритма шифрования RSA:

    Пример 1:

    В этом примере показано, как мы можем зашифровать открытый текст 9, используя алгоритм шифрования с открытым ключом RSA. В этом примере используются простые числа 7 и 11 для создания открытого и закрытого ключей.

    Объяснение:

    Шаг 1: Выберите два больших простых числа, p и q .

    р = 7

    д = 11

    Шаг 2: Умножьте эти числа, чтобы найти n = p x q, , где n называется модулем для шифрования и дешифрования.

    Сначала вычисляем

    n = п х кв

    n = 7 х 11

    n = 77

    Шаг 3: Выберите число e меньше n , такое, что n взаимно простое с (p — 1) x (q -1). Это означает, что e и (p — 1) x (q — 1) не имеют общего делителя, кроме 1. Выберите «e» так, чтобы 1

    Во-вторых, мы вычисляем

    φ (n) = (p — 1) x (q-1)

    φ (n) = (7 — 1) x (11 — 1)

    φ (n) = 6 х 10

    φ(n) = 60

    Теперь выберем относительное простое число e числа 60 как 7.

    Таким образом, открытый ключ = (7, 77)

    Шаг 4: Открытое текстовое сообщение m шифруется с использованием открытого ключа . Чтобы найти зашифрованный текст из открытого текста, используется следующая формула для получения зашифрованного текста C.

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

    C = m e мод n

    С = 9 7 мод 77

    С = 37

    Шаг 5: Закрытый ключ . Чтобы определить закрытый ключ, мы используем следующую формулу d, такую ​​что:

    D e mod {(p — 1) x (q — 1)} = 1

    7d mod 60 = 1, что дает d = 43

    Закрытый ключ = (43, 77)

    Шаг 6: Зашифрованное сообщение c расшифровывается с помощью закрытого ключа . Для вычисления открытого текста m из зашифрованного текста c используется следующая формула для получения открытого текста m.

    м = с d мод п

    м = 37 43 мод 77

    м = 9

    В этом примере обычный текст = 9 и зашифрованный текст = 37

    Пример 2:

    В криптосистеме RSA конкретный A использует два простых числа, 13 и 17, для генерации открытого и закрытого ключей. Если общедоступность A равна 35. Тогда закрытый ключ A равен ……………?.

    Объяснение:

    Шаг 1: на первом шаге выберите два больших простых числа, p и q .

    р = 13

    q = 17

    Шаг 2: Умножьте эти числа, чтобы найти n = p x q, , где n называется модулем для шифрования и дешифрования.

    Сначала вычисляем

    n = п х кв

    п = 13 х 17

    n = 221

    Шаг 3: Выберите число e меньше n , такое, что n взаимно простое с (p — 1) x (q -1). Это означает, что e и (p — 1) x (q — 1) не имеют общего делителя, кроме 1. Выберите «e» так, чтобы 1

    Во-вторых, мы вычисляем

    φ (n) = (p — 1) x (q-1)

    φ (n) = (13 — 1) x (17 — 1)

    φ (n) = 12 х 16

    φ (n) = 192

    г.к.д (35, 192) = 1

    Шаг 3: Чтобы определить закрытый ключ, мы используем следующую формулу для вычисления d так, что:

    Вычислить       d = d e mod φ (n) = 1

    d = d x 35 mod 192 = 1

    d = (1 + k.φ (n))/e           [пусть k =0, 1, 2, 3………………]

    Положите k = 0

    д = (1 + 0 х 192)/35

    д = 1/35

    Положите k = 1

    д = (1 + 1 х 192)/35

    д = 193/35

    Положите k = 2

    д = (1 + 2 х 192)/35

    д = 385/35

    д = 11

    Закрытый ключ = (11, 221)

    Следовательно, закрытый ключ, т. е. d = 11

    Пример 3:

    Криптосистема RSA использует два простых числа 3 и 13 для генерации открытого ключа = 3 и закрытого ключа = 7. Каково значение зашифрованного текста для обычного текста?

    Объяснение:

    Шаг 1: На первом этапе выберите два больших простых числа: p и q .

    р = 3

    д = 13

    Шаг 2: Умножьте эти числа, чтобы найти n = p x q, , где n называется модулем для шифрования и дешифрования.

    Сначала вычисляем

    n = п х кв

    п = 3 х 13

    n = 39

    Шаг 3: Если n = p x q, , тогда открытый ключ . Открытое текстовое сообщение m зашифровано с использованием открытого ключа . Таким образом, открытый ключ = (3, 39).

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

    C = m e мод n

    С = 5 3 мод 39

    С = 125 мод 39

    С = 8

    Следовательно, зашифрованный текст, сгенерированный из открытого текста, C = 8.

    Пример 4:

    Криптосистема RSA использует два простых числа, 3 и 11, для генерации закрытого ключа = 7. Каково значение зашифрованного текста для обычного текста 5 с использованием алгоритма шифрования с открытым ключом RSA?

    Объяснение:

    Шаг 1: на первом шаге выберите два больших простых числа, p и q .

    р = 3

    д = 11

    Шаг 2: Умножьте эти числа, чтобы найти n = p x q, , где n называется модулем для шифрования и дешифрования.

    Сначала вычисляем

    n = п х кв

    n = 3 х 11

    n = 33

    Шаг 3: Выберите число e меньше n , такое, что n взаимно простое с (p — 1) x (q -1).

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *