私钥
ECC 是基于各种标准定义的域参数。我们可以使用以下命令查看 OpenSSL 中所有可用标准定义和推荐曲线的列表:
由于这会产生一个很长的输出,完整的输出未显示并在中间被截断。在以下示例中,使用 SECP256k1 来演示 ECC 的用法。
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
ECC 是基于各种标准定义的域参数。我们可以使用以下命令查看 OpenSSL 中所有可用标准定义和推荐曲线的列表:
Crypt$ openssl ecparam -list_curves
secp112r1 : SECG/WTLS curve over a 112 bit prime field
secp112r2 : SECG curve over a 112 bit prime field
secp128r1 : SECG curve over a 128 bit prime field
secp128r2 : SECG curve over a 128 bit prime field
secp160k1 : SECG curve over a 160 bit prime field
secp160r1 : SECG curve over a 160 bit prime field
secp160r2 : SECG/WTLS curve over a 160 bit prime field
secp192k1 : SECG curve over a 192 bit prime field
secp224k1 : SECG curve over a 224 bit prime field
secp224r1 : NIST/SECG curve over a 224 bit prime field
secp256k1 : SECG curve over a 256 bit prime field
secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
.
.
.
.
brainpoolP384r1: RFC 5639 curve over a 384 bit prime field
brainpoolP384t1: RFC 5639 curve over a 384 bit prime field
brainpoolP512r1: RFC 5639 curve over a 512 bit prime field
brainpoolP512t1: RFC 5639 curve over a 512 bit prime field
由于这会产生一个很长的输出,完整的输出未显示并在中间被截断。在以下示例中,使用 SECP256k1 来演示 ECC 的用法。
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
生成私钥
名为
为了从私钥生成公钥,请发出以下命令:
读取文件产生以下输出,显示生成的公钥:
现在
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
~/Crypt$ openssl ecparam -name secp256k1 -genkey -noout -out ec-privatekey.pem
~/Crypt$ cat ec-privatekey.pem
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIJHUIm9NZAgfpUrSxUk/iINq1ghM/ewn/RLNreuR52h/oAcGBSuBBAAK
oUQDQgAE0G33mCZ4PKbg5EtwQjk6ucv9Qc9DTr8JdcGXYGxHdzr0Jt1NInaYE0GG
ChFMT5pK+wfvSLkYl5ul0oczwWKjng==
-----END EC PRIVATE KEY-----
名为
ec-privatekey.pem的文件现在包含基于 SECP256K1 曲线生成的 EC 私钥。为了从私钥生成公钥,请发出以下命令:
~/Crypt$ openssl ec -in ec-privatekey.pem -pubout -out ec-pubkey.pem
read EC key
writing EC key
读取文件产生以下输出,显示生成的公钥:
~/Crypt$ cat ec-pubkey.pem
-----BEGIN PUBLIC KEY-----
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE0G33mCZ4PKbg5EtwQjk6ucv9Qc9DTr8J
dcGXYGxHdzr0Jt1NInaYE0GGChFMT5pK+wfvSLkYl5ul0oczwWKjng==
-----END PUBLIC KEY-----
现在
ec-pubkey.pem文件包含了从ec-privatekey.pem派生出的公钥。你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
可以使用以下命令进一步探索私钥:
类似地,可以使用以下命令进一步探索公钥:
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
~/Crypt$ openssl ec -in ec-privatekey.pem -text -noout
read EC key
Private-Key: (256 bit)
priv:
00:91:d4:22:6f:4d:64:08:1f:a5:4a:d2:c5:49:3f:
88:83:6a:d6:08:4c:fd:ec:27:fd:12:cd:ad:eb:91:
e7:68:7f
pub:
04:d0:6d:f7:98:26:78:3c:a6:e0:e4:4b:70:42:39:
3a:b9:cb:fd:41:cf:43:4e:bf:09:75:c1:97:60:6c:
47:77:3a:f4:26:dd:4d:22:76:98:13:41:86:0a:11:
4c:4f:9a:4a:fb:07:ef:48:b9:18:97:9b:a5:d2:87:
33:c1:62:a3:9e
ASN1 OID: secp256k1
类似地,可以使用以下命令进一步探索公钥:
drequinox@drequinox-OP7010:~/Crypt$ openssl ec -in ec-pubkey.pem -pubin -text -noout
read EC key
Private-Key: (256 bit)
pub:
04:d0:6d:f7:98:26:78:3c:a6:e0:e4:4b:70:42:39:
3a:b9:cb:fd:41:cf:43:4e:bf:09:75:c1:97:60:6c:
47:77:3a:f4:26:dd:4d:22:76:98:13:41:86:0a:11:
4c:4f:9a:4a:fb:07:ef:48:b9:18:97:9b:a5:d2:87:
33:c1:62:a3:9e
ASN1 OID: secp256k1
drequinox@drequinox-OP7010:~/Crypt$
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
也可以生成一个带有所需参数的文件-在本例中为
该文件现在包含了所有
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
SECP256K1-然后进一步探索以了解底层参数:~/Crypt$ openssl ecparam -name secp256k1 -out secp256k1.pem
drequinox@drequinox-OP7010:~/Crypt$ cat secp256k1.pem
-----BEGIN EC PARAMETERS-----
BgUrgQQACg==
-----END EC PARAMETERS-----
该文件现在包含了所有
SECP256K1参数,并且可以使用以下命令进行分析:drequinox@drequinox-OP7010:~/Crypt$ openssl ecparam -in secp256k1.pem -text -param_enc explicit -noout
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:
ff:fc:2f
A: 0
B: 7 (0x7)
Generator (uncompressed):
04:79:be:66:7e:f9:dc:bb:ac:55:a0:62:95:ce:87:
0b:07:02:9b:fc:db:2d:ce:28:d9:59:f2:81:5b:16:
f8:17:98:48:3a:da:77:26:a3:c4:65:5d:a4:fb:fc:
0e:11:08:a8:fd:17:b4:48:a6:85:54:19:9c:47:d0:
8f:fb:10:d4:b8
Order:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:fe:ba:ae:dc:e6:af:48:a0:3b:bf:d2:5e:8c:d0:
36:41:41
Cofactor: 1 (0x1)
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
加密原语
这种加密原语的分类可以如图所示:
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
这种加密原语的分类可以如图所示:
哈希函数用于将任意长的输入字符串创建为固定长度的摘要。哈希函数是无密钥的,提供数据完整性服务。它们通常使用迭代和专用哈希函数构建技术构建。各种哈希函数族可用,如 MD、SHA1、SHA-2、SHA-3、RIPEMD 和 Whirlpool。哈希函数通常用于数字签名和消息认证码,如 HMACs。它们有三个安全性质,即原像抗性、第二原像抗性和碰撞抗性。这些性质稍后在本节中解释。
哈希函数通常用于提供数据完整性服务。这些可以用作单向函数,并构造其他加密原语,如 MAC 和数字签名。一些应用程序使用哈希函数来生成伪随机数(PRNGs)。哈希函数不需要密钥。哈希函数必须满足两个实用和三个安全性质,具体取决于完整性的要求级别。
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg