GenerateFileSignature

GenerateFileSignature["file",key]

指定された秘密鍵を使って file のデジタル署名を生成する.

GenerateFileSignature[{"file",range},key]

file の指定された range のバイトのためのデジタル署名を生成する.

GenerateFileSignature[{{"file1",range1},{"file2",range2},},key]

指定された fileirangeiのためのデジタル署名を生成する.

GenerateFileSignature[key]

ファイルに適用可能なGenerateFileSignatureの演算子形を表す.

詳細とオプション

  • GenerateFileSignatureDigitalSignatureオブジェクトを返す.
  • GenerateFileSignatureによって作成された値はファイルの生のバイトに基づいている.
  • 署名タイプは鍵のタイプで決定される.
  • keyPrivateKeyオブジェクトである.鍵の使用可能なタイプには"EllipticCurve""RSA"がある.
  • GenerateFileSignatureは,次の range 指定をサポートする.
  • n最初の n バイト
    -n最後の n バイト
    {m,n}m から n までのバイト
    00バイト
    Allすべてのバイト
  • 範囲指定のAll{1,-1}に等しい.
  • GenerateFileSignature[File["file"],]GenerateFileSignature[CloudObject[],]もまたサポートされている.
  • GenerateFileSignatureには以下のオプションがある.
  • Method Automatic署名メソッドの詳細
  • Methodassoc の設定のときは,連想 assoc が使用する署名メソッドの詳細を与える.
  • "RSA"については,以下の要素が連想に含まれることがある.
  • "HashingMethod""SHA256"ファイルのコンテンツのハッシュ方法
    "Padding""PKCS1"使用する充填法
  • 現在サポートされている充填法は"PKCS1""X931"である.
  • "RSA"についてサポートされる"HashingMethod"の値はGenerateDigitalSignatureにおけるものと同じである.
  • "EllipticCurve"および"Schnorr"については,次の要素が連想に含まれることがある.
  • "CurveName""secp256k1"使用する楕円曲線
    "HashingMethod""SHA256"ファイルのコンテンツのハッシュ方法
    "SignatureType"Automaticデジタル署名の生成モード
  • "CurveName"の使用可能な設定は$CryptographicEllipticCurveNamesにリストされている.
  • 現在サポートされている唯一の楕円曲線は"secp256k1"である.
  • "HashingMethod""h"は,事実上,Hash[...,"h"]を使ってファイルのバイトをハッシュする.
  • "SignatureType"の使用可能な設定には以下がある.
  • "Deterministic"expr を擬似ランダム性のソースとして使う
    "NonDeterministic"システム特有のランダム性のソースを使う
    Automatic可能な場合は非決定論的方法を使う.不可能であれば決定論的方法を使う
  • "Adler32""CRC32"のハッシュ法については,"SignatureType""Deterministic""SHA256"を使って入力から擬似ランダム性を派生させる.
  • 完全な一般情報についてはGenerateDigitalSignatureを参照のこと.

例題

すべて開くすべて閉じる

  (2)

デジタル署名を生成するファイルを選ぶ:

楕円曲線に基づいた鍵のペアを生成する:

自分の秘密鍵を使ってデジタル署名を生成する:

自分の公開鍵を使ってデジタル署名を検証する:

RSAの鍵のペアを使ってファイルに署名し,その署名を検証する:

スコープ  (5)

ファイルタイプ  (2)

CloudObjectにデジタル署名する:

Fileオブジェクトで指定されたファイルの署名を作成する:

バイト範囲  (1)

ファイルの異なる部分に別々に署名する:

ファイルの最初の100バイトについての署名を計算する:

最後の100バイトについての署名を計算する:

100から200までのバイトのための署名を計算する:

最初の100バイトを除く全バイトのための署名を計算する:

署名をすべて一度に検証する:

演算子形  (1)

楕円曲線に基づいた鍵のペアを生成する:

GenerateDigitalSignatureの演算子形をファイルに適用する:

自分の公開鍵を使ってデジタル署名を検証する:

複数のファイル  (1)

同じ鍵のセットを使っていくつかのファイルに署名する:

署名を検証する:

オプション  (1)

Method  (1)

完全なMethodオプションのレイアウトを使って,SHA512ハッシュ関数を使った入力から派生させた擬似ランダム性に基づいて,決定論的なデジタル署名を生成する:

倍SHA256ハッシュを使って署名を生成する:

特性と関係  (1)

Wolfram Cloudにファイルをアップロードするとファイルのコンテンツがそのまま保持される.もとのファイルとコピーのデジタル署名を検証すると,どちらも有効である:

ファイルをクラウドにコピーする:

ローカルファイル用の署名を作成する:

クラウド内のファイル用の署名を作成する:

ファイルと署名の可能なすべての組合せが有効である:

考えられる問題  (1)

2つのファイルについて選択されたバイト範囲が同一の場合は,ファイルの署名も等しくなる:

最初のファイルを求めて,その最初の150バイトについてデジタル署名する:

2番目のファイルの最初の150バイトを求めて署名する:

上で作成された署名は,どちらのファイルについても検証可能である:

RSAについては,署名も等しい:

Wolfram Research (2020), GenerateFileSignature, Wolfram言語関数, https://reference.wolfram.com/language/ref/GenerateFileSignature.html (2020年に更新).

テキスト

Wolfram Research (2020), GenerateFileSignature, Wolfram言語関数, https://reference.wolfram.com/language/ref/GenerateFileSignature.html (2020年に更新).

CMS

Wolfram Language. 2020. "GenerateFileSignature." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/GenerateFileSignature.html.

APA

Wolfram Language. (2020). GenerateFileSignature. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GenerateFileSignature.html

BibTeX

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

BibLaTeX

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