Cryptography 如何从OpenSSL证书中获得椭圆曲线密码中使用的有限域和系数的范围?

Cryptography 如何从OpenSSL证书中获得椭圆曲线密码中使用的有限域和系数的范围?,cryptography,openssl,Cryptography,Openssl,与建议的一样,椭圆曲线由素数p定义,即有限域的元素数和一个方程: 曲线=y²=x³+ax+b 在实际情况下,例如对于Google证书,是否可以使用OpenSSL查找a、b、p**? 我试着用谷歌搜索并自己找到这个答案,但我什么都没找到 有三种方法可以在证书中表示EC参数。我将讨论最常用的参数:显式参数和命名曲线 显式EC(域)参数正是名称所暗示的:它们是直接放在证书中的值。读入公钥的应用程序可以直接根据域参数和公共点W的值创建完整的EC公钥 但是,命名曲线仅标识先前指定的一组域参数。在软件中,它

与建议的一样,椭圆曲线由素数p定义,即有限域的元素数和一个方程: 曲线=y²=x³+ax+b

在实际情况下,例如对于Google证书,是否可以使用OpenSSL查找a、b、p**
我试着用谷歌搜索并自己找到这个答案,但我什么都没找到

有三种方法可以在证书中表示EC参数。我将讨论最常用的参数:显式参数和命名曲线

显式EC(域)参数正是名称所暗示的:它们是直接放在证书中的值。读入公钥的应用程序可以直接根据域参数和公共点W的值创建完整的EC公钥

但是,命名曲线仅标识先前指定的一组域参数。在软件中,它们通常简单地表示为字符串。但是,在证书和其他ASN.1 DER对象中,它们由ASN.1 OID表示。OID是表1.2.3等的唯一字符串,首先表示注册办事处,然后表示组织等

如果您将Google证书放入ASN.1解析中,您将发现其中一个OID,它已有效地转换为字符串:

openssl asn1parse -in google_ec.cer
将产生:

...
251:d=3  hl=2 l=  19 cons: SEQUENCE          
253:d=4  hl=2 l=   7 prim: OBJECT            :id-ecPublicKey
262:d=4  hl=2 l=   8 prim: OBJECT            :prime256v1
...

快速搜索将找到(参见2.4.2)或NIST p-256椭圆曲线。后两个定义了曲线的所有参数,当然W除外。通常情况下,从现有软件中查找这些曲线参数会更容易,尽管标准可能无法以适用于特定运行时环境的有用格式表示这些参数。

感谢您的支持。请注意,我假设您需要这些参数来开发软件,当然,否则问题将脱离主题,必须转移到超级用户。。。