Модуль кривой ECC

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

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


person ademartini    schedule 07.05.2013    source источник
comment
Кажется, я могу подписать/зашифровать только 32-байтовый буфер данных с помощью этого ключа, что звучит очень странно. Как вам это удалось? -- Вы можете подписывать неограниченные размеры сообщений, так как вы хешируете сообщение как часть ECDSA. Что касается шифрования, ECC обычно не используется для шифрования напрямую, он используется для обмена ключами (Diffie-Hellman) вместе с симметричным шифрованием, таким как AES.   -  person CodesInChaos    schedule 08.05.2013
comment
Правильно, вы подписываете хэш сообщения. Я пытаюсь выяснить, какой длины должен быть хеш для данного ключа ECDSA. Похоже, это должен быть 32-байтовый хэш, если это ключ P-256.   -  person ademartini    schedule 08.05.2013
comment
Кстати, я не знаю !*#$ о криптографии, и я просто пытаюсь понять достаточно, чтобы что-то сделать... Так что то, что я говорю, вероятно, не имеет смысла, извините.   -  person ademartini    schedule 08.05.2013


Ответы (2)


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

person Nickolay Olshevsky    schedule 07.05.2013

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

0xFFFFFFFFFF0000000100000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF

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

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

person Chiara Hsieh    schedule 08.05.2013