PublicKey

PublicKey[assoc]

表示公开密钥加密系统内一对密钥中的公开密钥.

PublicKey[PrivateKey[]]

为给定的私钥创建一个匹配的公钥.

更多信息

  • PublicKey 对象可与函数 EncryptDecryptVerifyDigitalSignature 一起使用.
  • 被某个特定 PublicKey 对象加密过的数据必须用相应的 PrivateKey 对象才能解密.
  • 可以用 GenerateAsymmetricKeyPair 产生相应的密钥对:PrivateKeyPublicKey 对象.
  • PublicKey[]["prop"] 可用于提取公钥的属性.
  • PublicKey 的基本属性包括:
  • "Type"加密的类型
    "PublicByteArray"以字节数组形式给出的公钥
    "PublicHexString"用十六进制字符串给出的公钥
    "PublicKeySize"公钥的大小(以 bit 为单位)
  • 加密的可能类型包括 "RSA" 和 "EllipticCurve".
  • "RSA" 的其他属性包括:
  • "PublicExponent"公共指数
    "PublicModulus"公共模数
    "Padding"填充模式
  • "EllipticCurve" 的其他属性包括:
  • "CurveName"椭圆曲线名称(例如,"sec256k1")
    "PublicCurvePoint"公共曲线点
    "Compressed"公钥是否是压缩格式
  • $CryptographicEllipticCurveNames 中列出了 "CurveName" 的可能的设置.
  • PublicKey[]["Parameters"] 以关联的形式给出对象中包含的所有信息.
  • PublicKey[]["Properties"] 给出可用属性列表.

范例

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

基本范例  (2)

产生公钥和私钥:

用公钥加密:

用私钥解密:

产生基于椭圆曲线的公钥:

检查用于创建密钥对的椭圆曲线:

检查公钥是否被压缩:

发现所有可用公钥的属性:

范围  (2)

可以将 PublicKey 用作有效公钥对象的构建函数.

生成公钥和私钥:

获取公钥:

根据预先生成的值构建一个有效的公钥对象:

测试其是否与原始密钥匹配:

可以从私钥构建公钥.

生成私钥:

PublicKey 构建相应的公钥对象:

属性和关系  (2)

GenerateAsymmetricKeyPair 创建的 PublicKey 对象包含密钥的一组完整属性:

不必提供所有属性即可重建有效的公钥对象. 对于椭圆曲线,仅指定公共曲线点就足够了:

验证密钥是否相同:

或者,使用公共曲线点的十六进制字符串表示形式:

验证所有密钥是否相同:

使用 ByteArray 表示形式:

验证所有密钥是否相同:

如果想要重建 RSA 的 PublicKey 对象,请以整数、十六进制或 ByteArray 表示形式提供公共模数:

重新创建与最初从 GenerateAsymmetricKeyPair 获得的对象相同的对象:

验证两个密钥是否相同:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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