そもそもECDSA P-256とED25519の違いはほとんど無い
ED25519の利点は、
パフォーマンスがいい(署名が2倍以上高速で、サーバーサイド、バッチ検証がある。)
署名生成時に乱数に依存を使用しないということくらいで
セキュリティ強度は変わらない。
※一応、パスキーでED25519は使える
WebAuthnでは、Ed25519も普通にサポートされている。
ただ、サイト運営側では最も普及しているECDSA P-256を必須にしてるパターンが多く、結果的にECDSA P-256が使われる場面が多くなっています。
以下Geminiさん
パスキーがECDSA P-256を主に使う理由
-
FIDO U2Fからの歴史的経緯
パスキーの基礎となった規格は、FIDOアライアンスが策定したU2F (Universal 2nd Factor) です。2014年頃に登場したこの規格では、セキュリティキーの暗号方式としてECDSA P-256が必須要件として定められました。当時、このアルゴリズムはハードウェアへの実装実績が豊富で、多くのチップが対応しており、安定した選択肢でした。 -
標準化と普及のタイミング
U2FがWebAuthnとしてW3Cで標準化され、ブラウザやプラットフォームに広く実装される際、この「ECDSA P-256」が基本要件として引き継がれました。そのため、初期のセキュリティキーやプラットフォーム(Windows Hello, Touch IDなど)は、まずこのアルゴリズムに対応することから始まりました。 -
NIST標準カーブの採用
P-256は、米国国立標準技術研究所(NIST)によって標準化された暗号曲線の一つです。政府機関や多くの企業で採用実績があり、信頼性が高いと見なされていたことも、最初の標準として採用される後押しになりました。
SSHでEd25519が推奨される理由
一方、SSHでEd25519が人気なのは、より新しい技術で、いくつかの優れた特徴があるためです。
-
高いパフォーマンス
Ed25519は、ECDSA P-256と比較して署名の生成と検証が高速です。 -
実装の安全性
ECDSAは、署名生成時に質の悪い乱数を使うと秘密鍵が漏洩する脆弱性があり、安全な実装が少し難しいという側面があります。一方、Ed25519は署名生成が決定的(乱数に依存しない) であるため、この種の実装ミスによる脆弱性が原理的に発生しません。この安全性の高さが、ソフトウェアベースの鍵管理が多いSSHなどで特に評価されています。 -
特許の懸念がない
Ed25519はパブリックドメインの技術であり、特許に関する懸念が一切ないクリーンなアルゴリズムとして設計されました。
まとめ
パスキー (ECDSA P-256) | SSH (Ed25519) | |
---|---|---|
背景 | FIDO U2F規格からの歴史的経緯。ハードウェアでの実装実績が豊富だった。 | より新しく、実装上の安全性を重視して設計された。 |
主な理由 | 標準化の先行: 規格の初期段階で必須要件とされたため、デファクトスタンダードになった。 | 実装の堅牢性: 乱数生成の失敗による脆弱性がなく、安全。 |
現状 | Ed25519も規格上は利用可能だが、互換性のためP-256が今も主流。 | パフォーマンスと安全性の観点から、新規作成時の第一推奨になっている。 |