Python PyCryptodome Алгоритм цифровой подписи с DSS

в Python Pycryptodome пример по умолчанию для DSA-DSS Привет, ребята. Я задал этот вопрос, но, это не умно, я удалил в своем профиле и просто спрашиваю из учетной записи моих друзей.

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

До завтра все будет хорошо, но я сталкиваюсь с DSA-DSS ECDSA. Если вы посмотрите на картинку, я думаю, что есть какая-то проблема, на которую я нацелен. Они делают "подписывающего" с закрытым ключом в DSS, но они не используют его в подписи. Вместо этого он использует ключевой знак.Even на проверочном уровне, (на рисунке не появляется) они вызывают открытый ключ из файла "PEM" и пытаются проверить без вызова DSS new() снова.

Так что, если вы сравните мой код и картинку, вы заметите, что я хочу сказать...

from Crypto.PublicKey import DSA
from Crypto.Signature import DSS
from Crypto.Hash import SHA256
key = DSA.generate(2048)
publickey=key.publickey()
message = b"Hello"
hash_obj = SHA256.new(message)
signer = DSS.new(key, 'fips-186-3')
signature = signer.sign(hash_obj)

Итак, здесь я пытаюсь проверить сообщение. Я не создал объект снова, и я вызвал открытый ключ из ключа, который я показал выше.

pkey=DSS.new(publickey,'fips-186-3')
pkey.verify(hash_obj,signature)
False

Итак, как вы можете видеть, я получил "Ложь" . Я попробовал это на ECDSA - DSS снова вернул то же самое. так что если вы получили то, что я хочу сделать, пожалуйста, помогите, что я хочу?

1 ответ

Документы для verify метод сказать:

Повышает: ValueError - если подпись не является подлинной

и всегда возвращаюсь False если это успешно.

Поэтому вместо проверки возвращаемого значения вам нужно проверить, вызывает ли метод исключение.

В общем, вы захотите что-то вроде:

try:
    pkey.verify(hash_obj,signature)
    valid = True
except ValueError:
    valid = False

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

Другие вопросы по тегам