Cryptography 表示160位ECC公钥和私钥的字符数

Cryptography 表示160位ECC公钥和私钥的字符数,cryptography,Cryptography,有谁能帮助我理解一些代表160位椭圆曲线密码(ECC)公钥和私钥的字符吗?在我的理解中,我希望这样一个密钥(例如public)使用20个字节来表示,当以base64和十六进制格式编码时,分别大约为27和40个字符。但令我惊讶的是,角色的数量比预期的要多 公钥和私钥是否具有相同的位大小(因此也具有相同的字符) 一些消息来源谈到压缩和未压缩公钥,但没有提供进一步的细节。非常感谢您的帮助。私钥实际上是160位整数。 公钥是曲线上的一个点,通常由坐标x和y表示,每个坐标160位。因此,公钥的总长度为32

有谁能帮助我理解一些代表160位椭圆曲线密码(ECC)公钥和私钥的字符吗?在我的理解中,我希望这样一个密钥(例如public)使用20个字节来表示,当以base64和十六进制格式编码时,分别大约为27和40个字符。但令我惊讶的是,角色的数量比预期的要多

公钥和私钥是否具有相同的位大小(因此也具有相同的字符)


一些消息来源谈到压缩和未压缩公钥,但没有提供进一步的细节。非常感谢您的帮助。

私钥实际上是160位整数。
公钥是曲线上的一个点,通常由坐标x和y表示,每个坐标160位。因此,公钥的总长度为320位。

私钥实际上是160位整数。
公钥是曲线上的一个点,通常由坐标x和y表示,每个坐标160位。因此,公钥总计为320位。

可以使用点压缩将公钥减少到161位。但根据曲线形式,如果你这样做,你可能会在美国遇到专利问题。这是最小值,没有点压缩,但有ASN.1规范,甚至可能包括域参数(这意味着至少7*密钥大小+开销)。通常在ASN.1参数中存储曲线OID。并非所有的实现都支持由参数曲线指定。可以使用点压缩将公钥减少到161位。但根据曲线形式,如果你这样做,你可能会在美国遇到专利问题。这是最小值,没有点压缩,但有ASN.1规范,甚至可能包括域参数(这意味着至少7*密钥大小+开销)。通常在ASN.1参数中存储曲线OID。并非所有的实现都支持参数曲线指定。您能提供公钥和私钥(测试版本)的十六进制转储吗?它是以十六进制
30
开头的吗?谢谢你的回答,虽然没有完全回答我的问题。我运行了一个使用ECDH(secp160k1)生成公钥和私钥的应用程序。在我的理解中,我希望公钥有20个字节,表示它的确切字符数根据密钥是用十六进制还是base64编码而有所不同。谢谢您的回答,但我需要清楚地解释这些密钥是如何表示的。到目前为止,该应用程序生成base64格式的公钥。公钥包含86个字符和2个等号(=),总共88个字符。表示使用secp160k1曲线生成的公钥的字符数是否正确?是否以字母“M”开头?能否提供公钥和私钥(测试版本)的十六进制转储?它是以十六进制
30
开头的吗?谢谢你的回答,虽然没有完全回答我的问题。我运行了一个使用ECDH(secp160k1)生成公钥和私钥的应用程序。在我的理解中,我希望公钥有20个字节,表示它的确切字符数根据密钥是用十六进制还是base64编码而有所不同。谢谢您的回答,但我需要清楚地解释这些密钥是如何表示的。到目前为止,该应用程序生成base64格式的公钥。公钥包含86个字符和2个等号(=),总共88个字符。表示使用secp160k1曲线生成的公钥的字符数是否正确?是否以字母“M”开头?