GenerateAsymmetricKeyPair

GenerateAsymmetricKeyPair[]

公開鍵暗号化関数で使うために,PrivateKeyと対応するPublicKeyオブジェクトをランダムに生成する.

GenerateAsymmetricKeyPair[type]

指定されたタイプの公開鍵と秘密鍵をランダムに生成する.

GenerateAsymmetricKeyPair[opts]

指定されたオプションを使ってランダムに鍵を生成する.

詳細とオプション

  • GenerateAsymmetricKeyPairは,<|"PrivateKey","PublicKey" |>の形式の連想を返す.
  • GenerateAsymmetricKeyPair[]は,デフォルトで,システム特有の高エントロピー乱数生成器で"RSA"タイプを使う.
  • GenerateAsymmetricKeyPair[type]では,次のタイプが指定できる.
  • "RSA"デフォルトパラメータのRSA
    "EllipticCurve"secp256k1の楕円曲線
    "EdwardsCurve"ツイストしたエドワーズ(Edwards)曲線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 Language. 2015. "GenerateAsymmetricKeyPair." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/GenerateAsymmetricKeyPair.html.

APA

Wolfram Language. (2015). GenerateAsymmetricKeyPair. Wolfram Language & System Documentation Center. Retrieved from 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 ]}