gpt4 book ai didi

elliptic-curve - ECDSA签名长度

转载 作者:行者123 更新时间:2023-12-01 08:32:20 28 4
gpt4 key购买 nike

ECDSA算法中256位EC key 的签名长度将是多少?
我想验证签名长度是否相同。如果某个机构可以帮助我设置一个EC key ,那将是很棒的。

最佳答案

这取决于您如何对签名进行编码。这是来自OpenSSL的代码段,用于测量DER格式的ECDSA签名的长度。

/** ECDSA_size
* returns the maximum length of the DER encoded signature
* \param eckey pointer to a EC_KEY object
* \return numbers of bytes required for the DER encoded signature
*/

int ECDSA_size(const EC_KEY *r)
{
int ret,i;
ASN1_INTEGER bs;
BIGNUM *order=NULL;
unsigned char buf[4];
const EC_GROUP *group;

if (r == NULL)
return 0;
group = EC_KEY_get0_group(r);
if (group == NULL)
return 0;

if ((order = BN_new()) == NULL) return 0;
if (!EC_GROUP_get_order(group,order,NULL))
{
BN_clear_free(order);
return 0;
}
i=BN_num_bits(order);
bs.length=(i+7)/8;
bs.data=buf;
bs.type=V_ASN1_INTEGER;
/* If the top bit is set the asn1 encoding is 1 larger. */
buf[0]=0xff;

i=i2d_ASN1_INTEGER(&bs,NULL);
i+=i; /* r and s */
ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
BN_clear_free(order);
return(ret);
}

以prime256曲线上的EC_KEY作为参数的上述函数的结果是
sig_len = ECDSA_size(eckey);

其中sig_len是 72

对于使用256位EC key 的DER编码的ECDSA签名,您需要 72字节。

关于elliptic-curve - ECDSA签名长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17269238/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com