GenerateAsymmetricKeyPair

GenerateAsymmetricKeyPair[]

为使用公钥加密函数随机产生一个 PrivateKey 和对应的 PublicKey 对象.

GenerateAsymmetricKeyPair[type]

随机生成指定类型的私钥和公钥.

GenerateAsymmetricKeyPair[opts]

用指定的选项随机生成密钥.

更多信息和选项

  • GenerateAsymmetricKeyPair 返回形式为 <|"PrivateKey","PublicKey" |> 的关联.
  • GenerateAsymmetricKeyPair[] 默认使用 "RSA" 类型,具有系统特定的高熵随机源.
  • GenerateAsymmetricKeyPair["type"] 中,可指定以下类型:
  • "RSA"具有默认参数的 RSA
    "EllipticCurve"椭圆曲线 secp256k1
    "EdwardsCurve"扭曲爱德华兹曲线 ed25519
    "Bitcoin","Ethereum"适用于区块链的密钥
    Method"curve" 有名椭圆曲线
  • GenerateAsymmetricKeyPair 有以下选项:
  • MethodAutomatic密钥生成方法的详细信息
  • 当设置为 Method->assoc 时,关联 assoc 给出了要使用的密钥生成方法的详细信息.
  • 下列元素应被包括在关联关系中:
  • "Type""RSA"生成的密钥的类型
  • "Type" 的可能的设置为 "RSA""EllipticCurve""EdwardsCurve".
  • 对于 "RSA",可在关联中给出以下元素:
  • "KeySize"2048密钥的目标尺寸(位)
    "PublicExponent"65537公用指数
  • 对于 "EllipticCurve",可在关联中给出以下元素:
  • "CurveName""secp256k1"使用的椭圆曲线
    "Compressed"False公钥是否为压缩形式
  • 对于 "EdwardsCurve",以下元素可在关联关系中给出:
  • "CurveName""ed25519"要使用的扭曲爱德华兹曲线
  • "CurveName"Methodcurve 可能的设置在 $CryptographicEllipticCurveNames 中列出.
  • "Bitcoin" 使用 "CurveName""secp256k1""Compressed"True.
  • "Ethereum" 使用 "CurveName""secp256k1""Compressed"False.

范例

打开所有单元关闭所有单元

基本范例  (3)

产生对应的公钥和私钥:

使用公钥加密:

使用私钥解密:

或者,使用私钥加密:

使用公钥解密:

用默认曲线 secp256k1 生成椭圆曲线密钥对:

使用默认曲线 ed25519 生成扭曲爱德华兹椭圆曲线密钥对:

范围  (6)

默认方法  (1)

用 RSA 作为默认方法生成不带参数的密钥对:

已命名方法  (4)

生成 RSA 密钥对:

用默认曲线 secp256k1 生成椭圆曲线密钥对:

使用默认曲线 ed25519 生成扭曲爱德华兹椭圆曲线:

生成与加密货币网络兼容的密钥对:

特殊设置  (1)

Method 选项中提供有特定设置的关联:

选项  (6)

Method  (6)

产生具有 4096 位密钥的密钥对:

产生具有17 公共指数的密钥对:

使用压缩公钥生成比特币密钥对:

用未压缩的公钥生成以太坊密钥对:

生成指定特定曲线名称的基于扭曲爱德华兹曲线的密钥:

用一种曲线名称作为方法,生成一个基于椭圆曲线的密钥对:

应用  (2)

生成一对基于椭圆曲线的密钥,使用 Elliptic Curve Digital Signature Algorithm 对消息进行签名和验证:

用你的私钥生成数字签名:

用你的公钥验证数字签名:

编写简单的基于 RSA 的签名和验证函数:

生成一对公共和私有 RSA 密钥:

定义签名的表达式:

产生一个签名:

验证签名是真实的:

使用另一个表达式验证将失败:

可能存在的问题  (2)

不兼容的私钥  (1)

目前不支持使用基于椭圆曲线的密钥加密:

用时  (1)

产生较大的密钥花费更长时间:

Wolfram Research (2015),GenerateAsymmetricKeyPair,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html (更新于 2020 年).

文本

Wolfram Research (2015),GenerateAsymmetricKeyPair,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html (更新于 2020 年).

CMS

Wolfram 语言. 2015. "GenerateAsymmetricKeyPair." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html.

APA

Wolfram 语言. (2015). GenerateAsymmetricKeyPair. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html 年

BibTeX

@misc{reference.wolfram_2024_generateasymmetrickeypair, author="Wolfram Research", title="{GenerateAsymmetricKeyPair}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_generateasymmetrickeypair, organization={Wolfram Research}, title={GenerateAsymmetricKeyPair}, year={2020}, url={https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html}, note=[Accessed: 22-November-2024 ]}