implementing-digital-signatures-with-ed25519 について
開発者やセキュリティ担当者向けに、Ed25519 の鍵生成から署名、ファイル検証までを扱う実装ガイドです。複数署名の検証や RSA、ECDSA との性能比較も含みます。
主な機能
- 01Ed25519 鍵ペアの生成
- 02メッセージとファイルへの署名
- 03署名と改ざんの検証
- 04複数署名の検証
- 05コード署名システムの構築
- 06RSA、ECDSA との性能比較
活用シーン
- 01文書やコードへの署名追加
- 02API メッセージの認証
- 03署名済みファイルの検証
- 04署名性能の評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-digital-signatures-with-ed25519インストール後、Claude Code で/implementing-digital-signatures-with-ed25519を入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Ed25519 によるデジタル署名の実装
概要
Ed25519 は、Edwards 曲線 Curve25519 を用いた高性能なデジタル署名アルゴリズムです。128 ビットのセキュリティを提供し、署名は 64 バイト、鍵は 32 バイトです。決定論的な署名(ランダムな nonce が不要)、サイドチャネル攻撃への耐性、高速な検証などにより、RSA や ECDSA に対して大きな利点があります。このスキルでは、ドキュメント署名、コード署名、API 認証のための Ed25519 の実装を扱います。
使用するタイミング
- 環境に Ed25519 によるデジタル署名機能をデプロイまたは構成するとき
- コンプライアンス要件に沿ったセキュリティ統制を確立するとき
- この分野のセキュリティアーキテクチャを構築または改善するとき
- この実装が必要となるセキュリティ評価を実施するとき
前提条件
- 暗号の概念とツールに関する知識があること
- 安全に実行するためのテストまたは検証環境にアクセスできること
- 必要な依存関係をインストールした Python 3.8 以降の環境があること
- テスト活動について適切な承認を得ていること
目的
- 署名用の Ed25519 鍵ペアを生成する
- Ed25519 でメッセージとファイルに署名する
- 公開鍵を使って署名を検証する
- 複数署名の検証を実装する
- シンプルなコード署名システムを構築する
- Ed25519 の性能を RSA および ECDSA と比較する
主要な概念
Ed25519 と RSA と ECDSA の比較
| 特性 | Ed25519 | RSA-3072 | ECDSA P-256 |
|---|---|---|---|
| セキュリティ | 128 ビット | 128 ビット | 128 ビット |
| 公開鍵サイズ | 32 バイト | 384 バイト | 64 バイト |
| 署名サイズ | 64 バイト | 384 バイト | 64 バイト |
| 鍵生成 | 約 50 us | 約 100 ms | 約 1 ms |
| 署名 | 約 70 us | 約 5 ms | 約 200 us |
| 検証 | 約 200 us | 約 200 us | 約 500 us |
| 決定論的 | はい | いいえ (PSS) | いいえ (RFC 6979 を使用しない場合) |
主な特性
- 決定論的: 同じメッセージと鍵からは常に同じ署名が生成される
- 衝突耐性: 別途ハッシュ関数を用意する必要がない
- サイドチャネル耐性: 定数時間実装
- 小さな鍵: 公開鍵と秘密鍵はそれぞれ 32 バイト
セキュリティ上の考慮事項
- Ed25519 は署名からの鍵復元をサポートしていません
- ハッシュではなく完全なメッセージを検証してください(Ed25519 は内部でハッシュ化を行います)
- 公開鍵は使用前に検証する必要があります(低次数点のチェックを行ってください)
- 秘密鍵は保存時に暗号化して保管してください
- Ed25519 はすべての NIST のユースケースでまだ承認されていません(連邦政府向けには Ed448 が推奨されます)
検証基準
- 鍵ペア生成により有効な Ed25519 鍵が生成される
- 正当なメッセージに対して署名検証が成功する
- 改ざんされたメッセージに対して署名検証が失敗する
- 誤った公開鍵に対して署名検証が失敗する
- 決定論的: 同じ入力から同じ署名が生成される
- ファイルの署名と検証が正しく動作する
- 性能が RSA-3072 以上であること
コメント
Markdown 対応