2013-05-07 3 views
1

Что такое модуль ключа ECC P-256? Это будет 32 байта? Кажется, я могу только подписать/зашифровать 32-байтовый буфер данных с помощью этого ключа.Модуль кривых ECC

Для RSA я знаю, что 1024-битный ключ RSA имеет модуль 128 байт. Для ECC я смущен тем, что означает «P».

+1

«Кажется, я могу только подписать/зашифровать 32-байтовый буфер данных с помощью этого ключа», звучит очень странно. Как вам это удалось? - Вы можете подписывать неограниченные размеры сообщений, так как вы передаете сообщение как часть ECDSA. Что касается шифрования, ECC обычно не используется для шифрования напрямую, он используется как обмен ключами (Diffie-Hellman) вместе с симметричным шифрованием, таким как AES. – CodesInChaos

+0

Правильно, вы подписываете хэш сообщения. То, что я пытаюсь понять, - это то, что я хочу, чтобы хэш был для данного ключа ECDSA. Похоже, что это должен быть 32-байтовый хеш, если он имеет ключ P-256. – ademartini

+0

BTW, я не знаю! * # $ О криптографии, и я просто пытаюсь понять, чтобы что-то сделать ... Так что, что я говорю, наверное, не имеет смысла, извините. – ademartini

ответ

2

Вы должны узнать больше о ECC. Кривые (-ы) P-256 основаны на 256-битном базовом поле, однако это не порядок базовой точки. RSA имеет гораздо более простую математику и может напрямую шифровать/дешифровать данные, вы никогда не должны сравнивать RSA и ECDSA.

2

Модуль p в X9.62/SECG кривой над 256 битным простым полем является

0xFFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF

Вы можете найти эту информацию в ec_curve.c библиотеки OpenSSL.

И, да, p - это 32-байтовое число. В ECC, в то время как p обычно представляет собой модуль простого поля, P обычно представляет собой точку на эллиптической кривой, где P = [k]G, 0<k<p-1 и G является генератором кривой.