Я воспитываю себя в криптотерминах, а тема внутри этого сообщества заключается в использовании отдельных «адресов» для каждой транзакции. Поскольку я интерпретирую адрес как хэш открытого ключа для отдельного лица, это заставляет меня думать, что вы можете генерировать несколько открытых ключей для закрытого ключа. Я полностью новичок в этом вопросе, и я использую пакет R PKI как отправную точку для этого самостоятельного учебника.Несколько открытых ключей Пакет PKI [R]
Эта линия мышления противоречит обсуждению на PKI multiple public keys, поэтому я мог бы быть хорошо знаком, но если нет способа создать дополнительный открытый ключ с пакетом PKI?
У меня есть блок кода ниже, который охватывает некоторые мои мысли. Теперь, сказав все это. Я пытаюсь понять около 9 страниц обсуждения относительно того, что это подразумевает, и я не думаю, что я готов к обсуждению конечных групп или компромиссу частного ключа, если выпущены несколько открытых ключей. Так что, если вы можете исправить меня с помощью программирования или дополнительного справочного материала, я был бы признателен. В конечном счете, его и упражнения для улучшения моих навыков R в первую очередь.
require(PKI)
# generate 2048-bit RSA key
key <- PKI.genRSAkey(bits = 2048L)
# extract private and public parts as PEM
priv.pem <- PKI.save.key(key)
pub.pem <- PKI.save.key(key, private=FALSE)
# load back the public key separately
pub.k <- PKI.load.key(pub.pem)
# encrypt with the public key
x <- PKI.encrypt(charToRaw("Hello, world!"), pub.k)
# decrypt with private key
rawToChar(PKI.decrypt(x, key))
# So straight from the Package examples I have the public and private keys.
# Additionally, with the same I can sign a message
x <- charToRaw("My message to sign")
sig <- PKI.sign(x, key)
PKI.verify(x, sig, key)
# Now a slight change from the exapmles I will verify that the public key can verify
PKI.verify(x, sig, pub.k)
# Now I would like to generate another public key based on the same private key
# my nieve attempt is
#PKI.mkRSApubkey(modulus, exponent=65537L, format = c("DER", "PEM", "key"))
pub.k
pub.k2<-PKI.mkRSApubkey(123, exponent=65537L, format = "key")
pub.k2
PKI.verify(x, sig, pub.k2)
PKI.verify(x, sig, pub.k)
priv.pem
Спасибо за руководство. Пытаясь запрограммировать это, вы обнаружите много проблем с размахами рук. Я на самом деле думал, что ключевой сервер предоставит открытый ключ (все еще просто уходит с 9-страничного документа и прыгает прямо, как мне его запрограммировать). Я думаю, что мой выбор ключа RSA-ключа Elliptic Curve Digital Signature Algorithm объясняет хорошую короткую версию открытого ключа и, вероятно, подписи, которую вы представили. Еще раз спасибо. – BabblingREnthusiast