Наистина не разбирам този въпрос:
според: http://www.madboa.com/geek/openssl/#key-rsa , можете да генерирате публичен ключ от частен ключ.
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
Първоначалното ми мислене беше, че те се генерират в двойка заедно. Частният ключ на RSA съдържа ли сумата или публичният ключ?
openssl genrsa -out mykey.pem 1024
всъщност ще създаде двойка публичен и частен ключ. Тази двойка се съхранява в генерирания файл mykey.pem
.
openssl rsa -in mykey.pem -pubout > mykey.pub
ще извлече публичния ключ и ще го отпечата. Тук е даден линк към страница, която описва това по-добре.
EDIT: Проверете раздела с примери тук. За да изведете само публичната част на частния ключ:
openssl rsa -in key.pem -pubout -out pubkey.pem
За да получите използваем публичен ключ за целите на SSH, използвайте ssh-keygen:
ssh-keygen -y -f key.pem > key.pub
В повечето софтуери, които генерират частни ключове RSA, включително openssl's, частният ключ се представя като обект PKCS#1 RSAPrivatekey или някакъв негов вариант:
A.1.2 Синтаксис на частния ключ RSA
Частният ключ RSA трябва да бъде представен с тип ASN.1 RSAPrivateKey:
RSAPrivateKey ::= SEQUENCE { version Версия, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) коефициент INTEGER, -- (обратно на q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL }
Както можете да видите, този формат има редица полета, включително модула и публичния експонент, и по този начин е строго надграждащ информацията в RSA публичен ключ.
тук в този код първо създаваме RSA ключ, който е частен, но има и двойка публични ключове, така че, за да получим действителния си публичен ключ, просто правим това
openssl rsa -in mykey.pem -pubout > mykey.pub
надявам се, че ще го разберете за повече информация вижте това