署名・検証
電子署名、デジタル署名
鍵生成と署名(Signing)・検証(Verifing)のセット
ハッシュ関数などと暗号などを組み合わせてみたりする仕組み ハッシュは元の文を復元することはできない(秘匿効果はない)が、文から適度にランダムな数値が出てくる。これが公開されているものと一致すれば改竄されていないと見なせる。ハッシュ機能に鍵での署名を組み合わせることで得られるのが署名の値、署名から鍵や元の文は復元できない(ただしRSAは署名からハッシュを復元できる)が適度にランダムな値を出してくれる署名機能ができあがる。
署名者(Signer)による署名(Sign)方法
文(Message)→(ハッシュ関数)→ハッシュや暗号モードの最後→(+鍵)→署名(Signature)
検証者(Verifier)による検証(VerifyやVerification)方法
文(Message)→(ハッシュ関数)→ハッシュや暗号モードの最後 →(鍵で比較)←署名(Signature)
共通鍵:
改竄防止
同じ操作をすることで同じ署名が得られる(乱数を使用しない場合)、または共通鍵を使用した検証用アルゴリズムを持つ
共有鍵/パスワード所持者が誰でも署名・検証できる
限定された範囲(共通鍵を知る範囲)で使用する
なりすまし防止(共通鍵所持者の誰か)
同じ鍵なので送信側にも受信側にも利用可能、鍵の公開は不可
公開鍵:
公開鍵でハッシュ値と署名の関係をなんとなく確認する (RSAの場合は署名をハッシュ側に戻す)
改竄防止 秘密鍵所持者のみ署名できる、(RSAの場合)公開鍵保持者が使用すると署名ではなく暗号になる
公開された範囲(公開鍵は公開範囲を限定されない)で使用可能
なりすまし防止(秘密鍵所持者のみ)
双方向性はなく、送信者側の秘密鍵は署名として機能する、受信者側の秘密鍵は暗号解除用として機能する(RSAの場合)ため双方向性を持たせるには2つの対が必要
署名は本文に影響を与えないので盗聴防止はできない、別途暗号化の併用が必要
間にいろいろな処理を加えて解読を難しくする
署名者の名入りで秘密鍵で署名をすることで、送信者のなりすまし防止・否認防止などができる。
鍵の所有者が署名したこと、その後改変されていないことなどを確認できる
RSA 公開鍵暗号 秘密鍵所持者のみが署名する、公開文書などに使用できる modulus より短いものにはRSASP1/RSAVP1 (あまり推奨はしない)
RSASSA-PKCS1_V1.5
RSASSA-PSS
Ed25519
Ed448
HMAC / KMAC ハッシュアルゴリズムを使用
CMAC OMAC1 / OMAC2 ブロック暗号+CBCモード、サブ鍵はAESとガロアで生成する
PBMAC1 HMACの鍵生成にパスワードを使用
RSAの署名系とMACの比較などをしているものは少ない気がするので一覧をつくってみる
table:署名・検証
署名方式 鍵 アルゴリズム
RSASP1/RSAVP1 RSA公開鍵 RSA
RSASSA RSA公開鍵 MessageDigest,RSA
RSASSA-PKCS1-V1.5 RSA公開鍵 MessageDigest,RSA
RSASSA-PSS RSA公開鍵 +乱数salt
DSA 公開鍵,ドメインパラメータ MessageDigest,乱数
ECDSA 公開鍵,ドメインパラメータ
EdDSA
MAC 共通鍵など
HMAC 共通鍵(ハッシュバイト長以上) MessageDigest
KMAC 共通鍵 SHA-3 cSHAKE
CMAC/OMAC1 共通鍵(ブロック暗号) ブロック暗号 CBC ガロア体
OMAC2 共通鍵(ブロック暗号) ブロック暗号 CBC ガロア体
PBMAC1 パスワード HMAC, KDF
公開鍵暗号でハッシュを使っているものは長文メッセージに対応できる。使っていないものは事前に使うなどする。
電子署名(electronic signature) と デジタル署名(digiral signature)
電子署名は広範囲の意味
デジタル署名は署名者の身元とデータが改竄されていないことを公開鍵暗号技術を使って検証できる技術
AdES (先進電子署名・高度電子署名)というのが登場? CMS Advanced Electronic Signatures (CAdES)
ETSI TS 101 733
ISO 14533-1
JIS X 5092
RFC 5126
XML Advanced Electronic Signatures (XAdES)
ETSI TS 101 903
ISO 14533-2
JIS X 5093
PDF Advanced Electronic Signatures (PAdES)
ETSI TS 102 778
ETSI EN 319 142
ISO 14533-3
ASIC
JAdES
ETSI TS 119 182-1
タイムスタンプ的なもの (TAA)
ITU-R TF.1876
JIS X 5094
ISO/IEC 18014 Part 4
RFC 3110