ECDSA (P-256) Şifrele & Çöz

Ücretsiz çevrimiçi ECDSA (P-256) Şifrele & Çöz aracı. %100 yerel işlem — verileriniz asla cihazınızı terk etmez.

National Standards
Other
Çıkış

Sonuç burada görüntülenecek...

Giriş Şifrele

Usage Guide

ECDSA (P-256) Hakkında

NIST P-256 eğrisini (secp256r1 veya prime256v1 olarak da bilinir) kullanan ECDSA (Eliptik Eğri Dijital İmza Algoritması), yaygın olarak kullanılan bir dijital imza standardıdır. HTTPS/TLS sertifikalarının, kod imzalama altyapısının ve birçok blok zinciri protokolünün temelini oluşturur. P-256, 128 bitlik güvenlik sağlar — RSA-3072 ile eşdeğer — ve anahtarları kompakt tutar (her biri 32 bayt). WebCrypto, Java, Go, Python ve neredeyse tüm TLS kütüphaneleri P-256'yı yerel olarak destekler.

İmza Algoritması — Şifreleme Değil: ECDSA bir dijital imza algoritmasıdır. Bir mesajın belirli bir özel anahtarın sahibi tarafından imzalandığını kanıtlar — verileri şifrelemez. Verilerin gizliliğini korumak için ECDSA imzalarını ChaCha20-Poly1305 veya AES-256-GCM gibi simetrik bir şifreyle birleştirin.

Kullanım Adımları

Bu araç P-256 anahtar çifti oluşturma, mesaj imzalama ve imza doğrulamayı destekler:

1. Anahtar Çifti OluşturBağlantılı bir özel/genel anahtar çifti oluşturmak için 'Generate Key Pair' düğmesine tıklayın. Her iki anahtar da PEM formatında çıktılanır (-----BEGIN PRIVATE KEY----- / -----BEGIN PUBLIC KEY-----).
2. Mesaj İmzala'Sign' modunu seçin. Giriş alanına mesaj metnini girin ve anahtar parametresine PEM özel anahtarını yapıştırın. 'Encrypt' düğmesine tıklayın — çıktı, IEEE P1363 formatında (r‖s, DER değil) Base64 kodlanmış 64 baytlık bir imzadır.
3. İmza Doğrula'Verify' modunu seçin. Girişi 'message|signature_base64' (dikey çizgi ile ayrılmış) olarak girin. Anahtar parametresine PEM genel anahtarını yapıştırın. 'Decrypt' düğmesine tıklayın — çıktı '✓ Signature verified' veya bir hata olacaktır.
4. Güvenli Anahtar DepolamaPEM özel anahtarını güvenli bir yerde (parola yöneticisi, şifreli kasa) saklayın. Genel anahtar serbestçe paylaşılabilir. Özel anahtarın kaybolması imzalama yeteneğinin kaybolması anlamına gelir — kurtarma yolu yoktur.
Yalnızca Tarayıcı: Tüm anahtar oluşturma ve imzalama işlemleri, WebCrypto API kullanılarak tamamen tarayıcınızda çalışır. Hiçbir anahtar veya mesaj sunucuya iletilmez.

Anahtar Formatı

Bu araçtaki ECDSA P-256 anahtarları PEM kodlamasını (Base64 sarmalı DER) kullanır:

Özel Anahtar-----BEGIN PRIVATE KEY----- (PKCS#8 formatı) ile başlayan PEM bloğu. 32 baytlık skaler sırrı içerir. Kesinlikle gizli tutun.
Genel Anahtar-----BEGIN PUBLIC KEY----- (SubjectPublicKeyInfo / X.509 formatı) ile başlayan PEM bloğu. 65 baytlık sıkıştırılmamış eğri noktasını (04 || x || y) içerir. Kamuya açık paylaşım güvenlidir.
İmzaBase64 kodlanmış 64 baytlık değer: r (32 bayt) ile s (32 bayt) birleştirilmiş — IEEE P1363 formatı. Not: OpenSSL ve birçok kütüphane DER kodlamalı imzalar kullanır; bunlar doğrudan birbirinin yerine geçemez.
Doğrulama Giriş FormatıDoğrulama sırasında giriş alanı, dikey çizgi karakteriyle birleştirilmiş mesaj ve Base64 imzasını içermelidir: message|signature_base64

ECDSA ve EdDSA Karşılaştırması

ECDSA ve EdDSA her ikisi de eliptik eğri imza algoritmasıdır, ancak kritik güvenlik özelliklerinde farklılık gösterir:

Nonce GüvenliğiECDSA, her imza için kriptografik olarak rastgele bir nonce (k) gerektirir. Nonce iki imzada yeniden kullanılırsa, bir saldırgan özel anahtarı cebirsel olarak tamamen kurtarabilir. Sony PS3 imzalama anahtarı 2010'da tam olarak bu şekilde ele geçirildi. EdDSA, nonce'unu özel anahtar ve mesajdan deterministik olarak türetir — nonce yeniden kullanımı matematiksel olarak imkânsızdır.
Deterministik İmzalamaEdDSA (Ed25519), aynı mesaj+anahtar kombinasyonu için her seferinde aynı imzayı üretir. ECDSA, rastgele nonce nedeniyle her seferinde farklı bir imza üretir. Deterministik imzalama testleri basitleştirir ve yeniden üretilebilir yapı doğrulamasını güvenilir kılar.
Eğri TasarımıP-256 (secp256r1), geniş uyumluluğa sahip NIST tarafından standartlaştırılmış bir eğridir. Ed25519, yan kanal saldırılarına direnç ve daha temiz aritmetik için tasarlanmış Twisted Edwards Curve25519'u kullanır. Her ikisi de ~128 bitlik güvenlik sağlar.
ÖneriYeni projeler için deterministik imzalama ve uygulama hatalarına karşı daha güçlü direniş nedeniyle EdDSA (Ed25519)'u tercih edin. ECDSA P-256'yı yalnızca Ed25519'u henüz desteklemeyen mevcut TLS altyapısı veya donanım güvenlik modülleriyle uyumluluk gerektiğinde kullanın.
Kuantum Direnci: RSA ve EdDSA gibi ECDSA da Shor algoritmasını çalıştıran yeterince güçlü bir kuantum bilgisayarına karşı savunmasızdır. Kuantum sonrası güvenlik için ML-DSA (CRYSTALS-Dilithium) gibi NIST tarafından standartlaştırılmış algoritmalara bakın. ECDSA P-256, klasik (kuantum dışı) tehdit modelleri için bugün hâlâ en iyi pratik seçimdir.

FAQ

Q: ECDSA ve EdDSA arasındaki fark nedir?

A: Hem ECDSA hem de EdDSA eliptik eğri imza algoritmasıdır, ancak kritik açılardan farklılık gösterir. ECDSA (NIST eğrileri P-256, P-384 ile kullanılır) her imza için rastgele bir nonce (k) gerektirir — nonce yeniden kullanılır veya zayıfsa, özel anahtar tamamen kurtarılabilir. Sony PlayStation 3 özel anahtarı 2010'da tam olarak böyle elde edildi. EdDSA, özel anahtar ve mesaj karma değerinden türetilen deterministik bir nonce kullanarak nonce yeniden kullanımını matematiksel olarak imkânsız kılar. Yeni uygulamalar için EdDSA, ECDSA'ya kesinlikle tercih edilir.

Q: ECDSA'da nonce yeniden kullanımı neden bu kadar tehlikelidir?

A: ECDSA'da her imza, gizli bir rastgele değer k (nonce) gerektirir. Aynı nonce k ile iki farklı mesajı imzalarsanız, her iki imzayı gözlemleyen bir saldırgan, basit cebir kullanarak özel anahtarınızı tamamen ve geri dönüşü olmayacak şekilde kurtarabilir. Bu teorik değildir: Sony, tüm ürün yazılımı imzaları için aynı nonce'u yeniden kullandığında PlayStation 3, 2010'da kırıldı. Çözüm ya her imza için kriptografik olarak güvenli bir rastgele sayı üreteci kullanmak (WebCrypto'nun yaptığı gibi) ya da deterministik türetme yoluyla nonce sorununu tamamen ortadan kaldıran EdDSA'ya geçiş yapmaktır.

Q: ECDSA veri şifreleyebilir mi?

A: Hayır. ECDSA yalnızca bir dijital imza algoritmasıdır — veri şifreleyemez veya çözemez. İmzalama özgünlüğü kanıtlar (mesajı kimin oluşturduğunu) ancak gizlilik sağlamaz (herkes mesajı okuyabilir). Verileri şifrelemek için ChaCha20-Poly1305 veya AES-256-GCM gibi simetrik bir şifre kullanın. Asimetrik anahtar değişimi için X25519 (ECDH) kullanın. P-256 ile asimetrik şifreleme için ECC/ECIES kullanın.

Q: P-256 ve secp256k1 arasındaki fark nedir?

A: Benzer isimlerine rağmen, P-256 (secp256r1, prime256v1) ve secp256k1 farklı parametrelere sahip farklı eliptik eğrilerdir. P-256, TLS sertifikalarında, devlet sistemlerinde ve WebCrypto'da yaygın olarak kullanılan NIST tarafından standartlaştırılmış bir eğridir. secp256k1, Bitcoin ve Ethereum tarafından kullanılan eğridir (normal işlemler için ECDSA imzaları). secp256k1 farklı verimlilik özelliklerine sahiptir ve genellikle TLS kütüphaneleri veya WebCrypto tarafından desteklenmez. Bunları karıştırmayın — iki eğri arasında anahtarlar ve imzalar tamamen uyumsuzdur.

Q: Bir ECDSA P-256 imzası ne kadar büyüktür?

A: Bu araç ve WebCrypto tarafından kullanılan IEEE P1363 formatındaki bir ECDSA P-256 imzası tam olarak 64 bayttır: iki adet 32 baytlık big-endian tam sayı r ve s. Base64 kodlandığında 88 karakterdir. DER formatında (OpenSSL, X.509, TLS tarafından kullanılır), aynı imza değişken uzunluktadır, genellikle 70–72 bayt, çünkü DER, pozitif tam sayılar için baş sıfır baytlarıyla birlikte etiket-uzunluk-değer kodlaması kullanır. OpenSSL veya diğer araçlarla birlikte çalışırken format farkına dikkat edin.

Use Cases

Önerilen: TLS Sertifikaları / HTTPS

ECDSA P-256 sertifikaları, HTTPS için modern standarttır. Tüm önemli tarayıcılar ve TLS 1.3 tarafından desteklenir ve RSA-2048 sertifikalarından çok daha küçük ve hızlıdır. Let's Encrypt gibi Sertifika Yetkilileri ECDSA P-256'yı tam olarak desteklemektedir. CSR için P-256 anahtarı oluşturmak amacıyla openssl ecparam -name prime256v1 -genkey kullanın.

Recommended Configuration:
  • ✅ Yeni TLS sertifikaları için ECDSA P-256 kullanın
  • ✅ Tüm modern tarayıcılar ve TLS 1.3 tarafından yerel olarak desteklenir
  • ✅ RSA sertifikalarından daha hızlı TLS el sıkışmaları
  • ❌ RSA-1024 kullanmayın; P-256, hız ve boyut açısından RSA-2048'den üstündür
Önerilen: Kod İmzalama

ECDSA P-256, macOS, Windows Authenticode, Android APK imzalama ve birçok paket yöneticisi tarafından kod imzalama için kullanılmaktadır. Kompakt 64 baytlık imza (P1363) veya ~71 baytlık DER imzası, manifestolara ve meta verilere kolayca gömülebilir. Sürüm artefaktlarınızı imzalamak, kullanıcıların ikili dosyaların yayından sonra değiştirilmediğini doğrulamasını sağlar.

Recommended Configuration:
  • ✅ Sürüm artefaktlarını ve sağlama toplamlarını ECDSA P-256 ile imzalayın
  • ✅ İmzanın yanında genel anahtarı veya sertifikayı yayımlayın
  • ✅ Üretim imzalama anahtarları için donanım güvenlik modülü (HSM) kullanın
  • ❌ Kriptografik imza olmadan yazılım dağıtmayın
Önerilen: Akıllı Sözleşme Uyumluluğu (uyarılarla)

Birçok blok zinciri ekosistemi işlem imzalama için ECDSA kullanır. Ethereum, secp256k1 varyantını (P-256 değil) kullandığından, ECDSA P-256 anahtarları Ethereum cüzdanlarıyla doğrudan uyumlu değildir. Ancak bazı yeni zincirler ve Layer-2 çözümleri P-256 (secp256r1) desteği sunar — örneğin Passkey tabanlı hesap soyutlaması (ERC-4337) P-256 imzalarını kullanır. Anahtar oluşturmadan önce belirli bir blok zincirinin hangi eğriyi gerektirdiğini her zaman doğrulayın.

Recommended Configuration:
  • ✅ secp256r1'i açıkça destekleyen zincirler için ECDSA P-256 kullanın
  • ✅ Passkey / WebAuthn tabanlı hesap soyutlaması için uygundur
  • ❌ Bitcoin veya Ethereum için P-256 anahtarları kullanmayın — bunlar secp256k1 kullanır
  • 💡 Blok zinciri kullanımı için anahtar oluşturmadan önce eğriyi doğrulayın
Kabul Edilebilir: JWT İmzalama (ES256)

JSON Web Token'lar (JWT), ES256 algoritma tanımlayıcısı (RFC 7518) aracılığıyla ECDSA P-256'yı destekler. ES256, HS256 (simetrik) yerine daha güvenli ve RS256 (RSA) yerine daha verimlidir. Ancak yeni bir proje başlatıyorsanız, deterministik imzalama özellikleri için JWT'deki EdDSA (Ed25519) algoritmasını değerlendirin.

Recommended Configuration:
  • ✅ ES256 (ECDSA P-256), mevcut sistemlerde JWT için sağlam bir seçimdir
  • ✅ Genel anahtarı /.well-known/jwks.json adresinde yayımlayın
  • ✅ İmzalama anahtarlarını periyodik olarak döndürün
  • 💡 Yeni projeler: deterministik imzalama için EdDSA (Ed25519) değerlendirin
Önerilmez: Yeni Projeler — EdDSA Tercih Edin

Uyumluluk kısıtlamalarının algoritma seçimini belirlemediği yeni projeler için ECDSA P-256 yerine EdDSA (Ed25519) tercih edin. EdDSA'nın deterministik nonce'u, ECDSA'nın en tehlikeli başarısızlık modunu (nonce yeniden kullanımı) ortadan kaldırır ve Ed25519 artık OpenSSH, TLS 1.3 istemci sertifikaları, JWT ve modern kriptografi kütüphanelerinin çoğunda desteklenmektedir.

Recommended Configuration:
  • ❌ EdDSA mevcut olduğunda ve uyumluluk gereksinimi olmadığında ECDSA P-256'dan kaçının
  • ✅ SSH, yeni JWT düzenleyicileri ve modern API'ler için EdDSA (Ed25519) kullanın
  • ✅ TLS sertifikaları ve eski sistem birlikte çalışabilirliği için ECDSA P-256'yı koruyun
  • 💡 ECDSA kırık değildir — sadece EdDSA'dan daha güvenli uygulamak daha zordur

En İyi Uygulama Özeti

  • ECDSA bir imza algoritmasıdır — özgünlüğü kanıtlar ancak şifrelemez. Gizlilik için AES-256-GCM veya ChaCha20-Poly1305 kullanın.
  • ECDSA P-256, imza başına güvenli rastgele nonce gerektirir. Nonce yeniden kullanımı özel anahtarı tamamen açığa çıkarır (PS3 saldırısı). WebCrypto bunu otomatik olarak yönetir.
  • Özel anahtar (PEM formatı) kesinlikle gizli tutulmalıdır. Genel anahtar (PEM formatı) serbestçe dağıtılabilir.
  • İmzaları 'message|signature_base64' giriş formatını kullanarak doğrulayın. Dikey çizgi ayırıcısı zorunludur.
  • Eski kısıtlamaları olmayan yeni projeler için EdDSA (Ed25519) tercih edin — deterministiktir, daha hızlıdır ve ECDSA'dan daha zor yanlış kullanılır.

Tartışma ve Geri Bildirim

0 yorum
Ben