отмечает исследование RSA

В последнее время
игра CTF , которая всегда есть проблемы RSA шифрование и дешифрование

Вот заметка о записи этого RSA тема

Во-первых вводит основные процедуры, которые RSA шифрования и дешифрования:

1, два больших параметры выбора, чтобы вычислить модуль N = р * д

2, вычисление функции Эйлера ф = (р-1) * (Q-1), а затем выбрать е (1 <е <ф) , е и [Phi] и взаимно просты (взаимно просты: только общий делитель двух целых чисел 1 ) F
    = (. 1-Р) * (. 1-й)

3, принимают обратные е по модулю д, вычисляются следующим образом: е * D ≡ 1 ( по модулю φ) ( модульная мультипликативной обратным: Если оба х и п положительных целых чисел взаимно просты, то можно найти такое целое число D, такие , что е * д --1 делится на п, или остаток е * д делится на п в этом случае 1., д е называется «модульным мультипликативный обратная» теорема Эйлера может быть использована , чтобы продемонстрировать наличие двух модульных мультипликативного обратного обязательно целые числа а .. , б, который делится на целое число , равное оставшейся в результате м :. а ≡ Ь ( по модулю т), например, в дополнение к остатку от 3 до 5 , за исключением 3 2,11 остатка также 2, то можно записать в виде 11 ≡ 5 ( по модулю 3))
д = gmpy2.invert (е, модульный мультипликативный обратное)

Шифрование открытого текста м: с = пау (т, е , Н), может быть получено в шифротекста с.
Дешифрование зашифрованного гр: т = мощны (C, D , N), может быть получен открытым текстом м.


Используйте gmpy2 библиотеку расширения питона, высокоточные арифметические операции для библиотеки пакета GNU, который является предшественник gmpy, и после настройки пакета, так что значительно упрощает использование gmpy2

МПЗ большое целое число ,
    чтобы инициализировать большой число
    Import gmpy2
        н-gmpy2.mpz = (1257787) # инициализация
        gmpy2.is_prime (п) # тест вероятностной простоты чисел

д = gmpy2.invert (е, phi_n) по модулю контр-элемент

При этом базовые знания теперь мы можем сделать некоторые из тем, на практике передать его

 


http://ctf5.shiyanbar.com/crypto/rsarsa/rsa.txt

Это простой эксперимент RSA тема

р = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483 
д = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407 
е = 65537 
с = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034 

Использование RSA , чтобы найти секретное сообщение

 

 

 

На gmpy2

код питона:

импорт gmpy2
р = gmpy2.mpz (9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483)
д = gmpy2.mpz (11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407)
е = gmpy2.mpz (65537)
F = (р-1) * (1-Q)
d = gmpy2.invert (д, е)
печати «ключ:»
печать d
с = gmpy2.mpz (83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034)
печати «текст»
печать пау (в, г, д * р)

 

Субъект не означает, что строка чисел и, наконец, · флаг выводится

RSA позже добавить еще один титул здесь

рекомендация

отblog.csdn.net/qq_35811830/article/details/90707536