logo

RSA алгоритъм за криптиране

Алгоритъмът за криптиране RSA е вид алгоритъм за криптиране с публичен ключ. За да разберем по-добре RSA, нека първо разберем какво е алгоритъм за криптиране с публичен ключ.

Алгоритъм за криптиране с публичен ключ:

Алгоритъмът за криптиране с публичен ключ се нарича още асиметричен алгоритъм. Асиметричните алгоритми са тези алгоритми, при които подателят и получателят използват различни ключове за криптиране и декриптиране. На всеки изпращач се присвоява двойка ключове:

    Публичен ключ Личен ключ

The Публичен ключ се използва за криптиране, а Личен ключ се използва за дешифриране. Дешифрирането не може да се извърши с помощта на публичен ключ. Двата ключа са свързани, но частният ключ не може да бъде извлечен от публичния ключ. Публичният ключ е добре известен, но частният ключ е таен и е известен само на потребителя, който притежава ключа. Това означава, че всеки може да изпрати съобщение до потребителя, използвайки публичния ключ на потребителя. Но само потребителят може да декриптира съобщението с помощта на личния си ключ.

Алгоритъмът на публичния ключ работи по следния начин:

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

RSA алгоритъм за криптиране:

RSA е най-разпространеният алгоритъм с публичен ключ, кръстен на своите изобретатели Ривест, Шамир и Аделман (ЮАР).

RSA алгоритъм за криптиране

RSA алгоритъмът използва следната процедура за генериране на публични и частни ключове:

  • Изберете две големи прости числа, p и р .
  • Умножете тези числа, за да намерите n = p x q, където н се нарича модул за криптиране и декриптиране.
  • Изберете номер то е по-малко от н , така че n е относително просто към (p - 1) x (q -1). Означава, че то е и (p - 1) x (q - 1) нямат общ множител освен 1. Изберете 'e' така, че 1 gcd (e,d(n)) =1
  • Ако n = p x q, тогава публичният ключ е . Съобщение в обикновен текст м е криптиран с помощта на публичен ключ. За намиране на шифрован текст от обикновен текст се използва следната формула за получаване на шифрован текст C.
    C = mто есрещу n
    Тук , м трябва да бъде по-малко от н . По-голямо съобщение (>n) се третира като конкатенация от съобщения, всяко от които е шифровано отделно.
  • За да определим частния ключ, използваме следната формула за изчисляване на d, така че:
    дто еmod {(p - 1) x (q - 1)} = 1
    Или
    дто еmod φ (n) = 1
  • Частният ключ е. Съобщение с шифрован текст ° С се дешифрира с помощта на частен ключ. За изчисляване на обикновен текст м от шифрования текст c се използва следната формула за получаване на обикновен текст m.
    m = cдсрещу n

Нека вземем пример за RSA алгоритъм за криптиране:

Пример 1:

Този пример показва как можем да шифроваме обикновен текст 9 с помощта на алгоритъма за криптиране с публичен ключ RSA. Този пример използва прости числа 7 и 11 за генериране на публичен и частен ключ.

Обяснение:

Етап 1: Изберете две големи прости числа, p и р .

p = 7

q = 11

Стъпка 2: Умножете тези числа, за да намерите n = p x q, където н се нарича модул за криптиране и декриптиране.

Първо, изчисляваме

n = p x q

n = 7 x 11

n = 77

Стъпка 3: Изберете номер то е по-малко от това н , така че n е относително просто към (p - 1) x (q -1). Означава, че то е и (p - 1) x (q - 1) нямат общ множител освен 1. Изберете 'e' така, че 1

Второ, изчисляваме

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

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

φ (n) = 6 x 10

φ (n) = 60

Нека сега изберем относително просто e от 60 като 7.

намери в map c++

Така публичният ключ е = (7, 77)

Стъпка 4: Съобщение в обикновен текст м е криптиран с помощта на публичен ключ. За намиране на шифрован текст от обикновен текст се използва следната формула за получаване на шифрован текст C.

За намиране на шифрован текст от обикновен текст се използва следната формула за получаване на шифрован текст C.

C = mто есрещу n

С = 97срещу 77

С = 37

Стъпка 5: Частният ключ е. За да определим частния ключ, използваме следната формула d, така че:

дто еmod {(p - 1) x (q - 1)} = 1

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

Частният ключ е = (43, 77)

Стъпка 6: Съобщение с шифрован текст ° С се дешифрира с помощта на частен ключ. За изчисляване на обикновен текст м от шифрования текст c се използва следната формула за получаване на обикновен текст m.

m = cдсрещу n

m = 3743срещу 77

m = 9

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

Пример 2:

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

Обяснение:

Етап 1: в първата стъпка изберете две големи прости числа, стр и р .

p = 13

q = 17

Стъпка 2: Умножете тези числа, за да намерите n = p x q, където н се нарича модул за криптиране и декриптиране.

Първо, изчисляваме

n = p x q

n = 13 x 17

n = 221

Стъпка 3: Изберете номер то е по-малко от това н , така че n е относително просто към (p - 1) x (q -1). Означава, че то е и (p - 1) x (q - 1) нямат общ множител освен 1. Изберете 'e' така, че 1

Второ, изчисляваме

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

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

φ (n) = 12 x 16

φ (n) = 192

g.c.d (35, 192) = 1

Стъпка 3: За да определим частния ключ, използваме следната формула за изчисляване на d, така че:

Изчислете d = dто еmod φ (n) = 1

d = d x 35 mod 192 = 1

d = (1 + k.φ (n))/e [нека k =0, 1, 2, 3………………]

Поставете k = 0

d = (1 + 0 x 192)/35

d = 1/35

Поставете k = 1

d = (1 + 1 x 192)/35

d = 193/35

алгоритми за сортиране чрез вмъкване

Поставете k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Частният ключ е = (11, 221)

Следователно частният ключ, т.е. d = 11

Пример 3:

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

Обяснение:

Етап 1: В първата стъпка изберете две големи прости числа, стр и р .

p = 3

q = 13

Стъпка 2: Умножете тези числа, за да намерите n = p x q, където н се нарича модул за криптиране и декриптиране.

Първо, изчисляваме

n = p x q

n = 3 x 13

n = 39

Стъпка 3: Ако n = p x q, тогава публичният ключ е . Съобщение в обикновен текст м е криптиран с помощта на публичен ключ. Така публичният ключ е = (3, 39).

За намиране на шифрован текст от обикновен текст се използва следната формула за получаване на шифрован текст C.

C = mто есрещу n

С = 53към 39

C = 125 срещу 39

С = 8

Следователно, шифрованият текст, генериран от обикновен текст, C = 8.

Пример 4:

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

Обяснение:

видове мрежи

Етап 1: в първата стъпка изберете две големи прости числа, стр и р .

p = 3

q = 11

Стъпка 2: Умножете тези числа, за да намерите n = p x q, където н се нарича модул за криптиране и декриптиране.

Първо, изчисляваме

n = p x q

n = 3 x 11

n = 33

Стъпка 3: Изберете номер то е по-малко от това н , така че n е относително просто към (p - 1) x (q -1). Означава, че то е и (p - 1) x (q - 1) нямат общ множител освен 1. Изберете 'e' така, че 1

Второ, изчисляваме

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

φ (n) = (3 - 1) x (11 - 1)

φ (n) = 2 x 10

φ (n) = 20

Стъпка 4: За да определим публичния ключ, използваме следната формула за изчисляване на d така, че:

Изчислете e x d = 1 mod φ (n)

e x 7 = 1 срещу 20

e x 7 = 1 срещу 20

e = (1 + k. φ (n))/ d [нека k =0, 1, 2, 3………………]

Поставете k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Поставете k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Публичният ключ е = (3, 33)

Следователно, публичен ключ, т.е. e = 3