ECDSA 簽名/驗證

✅ ECDSA Signature / Verify

📐 工作原理與說明
基於橢圓曲線離散對數難題的數字簽名演算法。
  • 簽名:選取隨機數 k,計算 r = (k·G).x mod n、s = k⁻¹(hash + r·d) mod n,輸出 (r, s)。
  • 驗證:用公鑰 Q 與 (r, s) 驗證等式成立,成立即簽名有效且訊息未篡改。
  • 關鍵:k 必須每次簽名都不同且不可預測;k 複用會直接洩露私鑰。
  • 曲線:常用 P-256、secp256k1(比特幣);Ed25519 屬 EdDSA,演算法結構不同。
ECDSA (Elliptic Curve Digital Signature Algorithm) 是基於橢圓曲線的數字簽名演算法。
相比RSA,ECDSA使用更短的金鑰提供同等安全性(256位ECDSA ≈ 3072位RSA)。支援 P-256 (secp256r1) 和 P-384 曲線。
結果將顯示在這裡...

📚 深度解析:ECDSA 橢圓曲線簽名

💡 常見使用場景

  • 比特幣、TLS 證書用 ECDSA 做輕量高安全簽名。
  • 給內部服務簽發 JWT 時用 ES256:驗籤一次確認公鑰與私鑰配對、簽名演算法與頭部 alg 一致,避免上線後才發現金鑰錯配。
曲線示意
以 secp256k1 為例,私鑰 d 生成公鑰 Q=d·G;對訊息雜湊 e 用隨機數 k 產出簽名 (r,s),驗證用公鑰與 G。

❓ 常見問題(FAQ)

ECDSA 為何比 RSA 短?
256 位橢圓曲線安全性≈3072 位 RSA,金鑰更短。
為什麼每次簽名結果都不一樣?
ECDSA 簽名依賴一個隨機數 k,同一訊息兩次簽名會得到不同但都有效的簽名,這是正常且必要的設計——若 k 重複或可預測,攻擊者可直接反推私鑰(2010 年索尼 PS3 被攻破正是因此)。必須使用符合規範的隨機源。
⚠️ 使用說明與注意事項
📖關於「ECDSA 簽名/驗證」 ▼

📝工具簡介

Sign and verify messages with ECDSA in your browser — elliptic-curve digital signatures (secp256k1 and more).