署名方式は、鍵生成、Sign(sk, m)、Verify(pk, m, σ) の 3 つのアルゴリズムで構成されます。標準的な安全性の目標は EUF-CMA です。これは、攻撃者が自分で選んだメッセージに対する署名を見た後でも、新しいメッセージに対する有効な署名を作成できないことを意味します。より強い SUF-CMA は、すでに署名されたメッセージに対する 2 つ目の署名の作成も禁じますが、ECDSA はこれを満たしません(展性を参照)。
署名は、機密性も、鮮度(有効な署名付きメッセージは、nonce、タイムスタンプ、オーディエンスを含まない限りリプレイされ得ます)も、身元も提供しません。署名はメッセージを鍵に結び付けるだけで、鍵を人やサービスに結び付けるには、別の何か(証明書、JWKS エンドポイント、known_hosts、ブロックチェーンのアドレス)が必要です。
サイズは、64 バイト(Ed25519、生の P-256 ECDSA、BIP-340)から 256〜512 バイト(RSA)、さらにポスト量子方式のキロバイト単位まで幅があります。ML-DSA は 2,420〜4,627 バイト、SLH-DSA は 7,856〜49,856 バイトです。同じ署名でも、生のバイト列、DER、JWS、COSE_Sign1、CMS の SignedData、OpenPGP の署名パケット、SSHSIG と、形式ごとに異なる方法で包まれます。
HMAC などのメッセージ認証コードも完全性を証明しますが、共有鍵を使うため、どの検証者もそれを作成できたことになります。HMAC と署名の比較を参照してください。