ChaCha20-Poly1305 Şifrele & Çöz

Ücretsiz çevrimiçi ChaCha20-Poly1305 Şifrele & Çöz aracı. %100 yerel işlem — verileriniz asla cihazınızı terk etmez.

National Standards
Legacy
Çıkış

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

Giriş Şifrele

Usage Guide

ChaCha20-Poly1305 Hakkında

ChaCha20-Poly1305, ChaCha20 akış şifresini Poly1305 mesaj doğrulama koduyla birleştiren ilişkili verilerle kimlik doğrulamalı şifreleme (AEAD) algoritmasıdır. Daniel J. Bernstein tarafından tasarlanan bu algoritma RFC 8439'da standartlaştırılmış ve TLS 1.3, SSH ile WireGuard'da birincil şifre paketi olarak benimsenmiştir. Tek bir işlemde hem gizlilik (şifreleme) hem de bütünlük (kimlik doğrulama) sağlayarak hem gizlice dinlemeyi hem de şifreli metin değiştirmeyi önler. ChaCha20-Poly1305, donanım AES hızlandırması olmayan platformlar için AES-GCM'e yazılım dostu bir alternatif olarak geliştirilmiştir.

Modern TLS Standardı: ChaCha20-Poly1305, TLS 1.3'teki iki zorunlu şifre paketinden biridir (AES-256-GCM ile birlikte). Mobil ve IoT cihazlarda tercih edilen seçimdir ve tüm platformlarda AES-256-GCM ile güvenlik açısından karşılaştırılabilir niteliktedir.

Kullanım Adımları

Bu araç hem şifreleme hem de şifre çözmeyi destekler. Anahtar gereklidir; nonce boş bırakılırsa otomatik olarak oluşturulur:

1. Anahtar Oluştur veya GirRastgele 32 baytlık (256 bit) anahtar oluşturmak için 'Secret Key' yanındaki rastgele düğmeye tıklayın, ya da kendi 32 karakterlik dizenizi girin
2. Nonce (isteğe bağlı)Her şifreleme için otomatik olarak rastgele 12 baytlık nonce oluşturmak için boş bırakın. Şifre çözmede nonce, şifreli metne gömülüdür — bu alanı boş bırakın
3. ŞifreleGiriş kutusuna düz metni girin, 'Şifrele'yi seçin ve 'Şifrele'ye tıklayın. Çıktı, şifreli metin+etiket öncesine eklenmiş 12 baytlık nonce içeren bir base64 dizesidir
4. Şifreyi Çözbase64 şifreli metni giriş kutusuna yapıştırın, 'Şifre Çöz'ü seçin, şifrelemede kullanılan aynı anahtarı girin ve 'Şifre Çöz'e tıklayın
Gizlilik Koruması: Tüm ChaCha20-Poly1305 işlemleri WebAssembly kullanılarak tamamen tarayıcınızda çalışır. Hiçbir veri sunucuya gönderilmez — tamamen çevrimdışı işlem.

Anahtar ve Nonce Formatı

ChaCha20-Poly1305 sabit boyutlu parametreler kullanır:

Anahtar32 bayt (256 bit) — 32 karakterlik dize olarak girin veya rastgele oluşturucuyu kullanın
Nonce12 bayt (96 bit) — 12 karakterlik dize olarak girin veya otomatik oluşturma için boş bırakın. Aynı anahtarla aynı nonce'u asla yeniden kullanmayın
Şifreli Metin Formatıbase64(nonce[12 bayt] + şifreli metin + kimlik doğrulama etiketi[16 bayt]). Şifre çözmenin bağımsız olması için nonce başa eklenir
Etiket16 bayt (128 bit) Poly1305 kimlik doğrulama etiketi, şifreleme sırasında otomatik olarak eklenir ve şifre çözme sırasında otomatik olarak doğrulanır
Nonce'ları Asla Yeniden Kullanmayın: Aynı (anahtar, nonce) çiftini yeniden kullanmak ChaCha20-Poly1305 güvenliğini tamamen bozar — bir saldırganın anahtar akışını kurtarmasına ve tüm mesajları çözmesine olanak tanır. Her şifreleme için her zaman benzersiz bir nonce kullanın veya bu aracın otomatik oluşturmasına izin verin.

ChaCha20-Poly1305 ile AES-GCM Karşılaştırması

Her ikisi de TLS 1.3'te AEAD şifreleridir. Her birini ne zaman seçeceğiniz:

ChaCha20-Poly1305Donanım AES olmadan mobil, ARM ve IoT cihazlarda tercih edilir. Yazılımda sabit zamanlı, zamanlama saldırılarına dirençli. Donanım hızlandırıcısı gerekmez
AES-GCMAES-NI donanım talimatları mevcut olduğunda tercih edilir (çoğu modern x86/x64 CPU). Donanım hızlandırmayla önemli ölçüde daha hızlı
Güvenlik EşdeğerliğiHer ikisi de 256 bit anahtar gücü ve 128 bit kimlik doğrulama etiketleri sağlar. Güvenlik açısından hiçbiri diğerinden daha güçlü kabul edilmez
TLS 1.3 StratejisiTLS 1.3 uygulamaları müzakere eder: AES-NI olan sunucularda/masaüstlerinde AES-GCM; donanım AES olmayan mobil istemcilerde ChaCha20-Poly1305

FAQ

Q: Çıktı neden girişten daha uzun?

A: Şifrelenmiş çıktı base64 kodlamalıdır ve şunları içerir: 12 bayt nonce + düz metin uzunluğu + 16 bayt Poly1305 kimlik doğrulama etiketi. Dolayısıyla ikili ek yük 28 bayttır (12 nonce + 16 etiket) ve base64 kodlama yaklaşık %33 ek uzunluk ekler.

Q: Şifreli metni değiştirirsem ne olur?

A: ChaCha20-Poly1305, değiştirilmiş şifreli metni çözmeyi reddeder. Poly1305 etiketi, tüm şifreli metin üzerinde hesaplanan bir mesaj doğrulama kodudur. Tek bir bit bile olsa herhangi bir değişiklik etiket doğrulamasının başarısız olmasına neden olur ve şifre çözme işlevi bozuk düz metin üretmek yerine hata döndürür.

Q: ChaCha20-Poly1305, düz ChaCha20'den nasıl farklıdır?

A: Düz ChaCha20 yalnızca gizlilik sağlar — verileri şifreler ancak kurcalamayı algılamaz. ChaCha20-Poly1305, ChaCha20 şifrelemesini Poly1305 kimlik doğrulama etiketiyle birleştirerek hem gizlilik hem de bütünlük sağlar. Herhangi bir pratik kullanım için her zaman düz ChaCha20 yerine ChaCha20-Poly1305'i tercih edin.

Q: Birden fazla mesaj için aynı anahtarı kullanabilir miyim?

A: Evet, ancak her mesaj benzersiz bir nonce kullanmalıdır. (anahtar, nonce) çifti asla yeniden kullanılmamalıdır. 12 baytlık nonce'larla, rastgele nonce oluşturma yaklaşık 296'da 1 doğum günü çakışma olasılığı sağlar — milyarlarca mesaj için güvenli.

Q: ChaCha20-Poly1305 kuantum bilgisayarlara karşı dirençli midir?

A: Tüm simetrik şifreler gibi, ChaCha20-Poly1305 da Grover algoritmasından etkilenir ve 256 bit güvenliği 128 bit eşdeğerine düşürür. 128 bit kuantum sonrası güvenlik çoğu uygulama için yeterli kabul edilir. Bu nedenle 256 bit anahtara sahip ChaCha20-Poly1305, 128 bit güvenlik seviyesinde kuantuma dirençli kabul edilir; AES-256-GCM ile aynı düzeydedir.

Q: 'Geçersiz anahtar, nonce veya şifreli metin' ile şifre çözme neden başarısız olur?

A: Bu hata, kimlik doğrulama etiketi doğrulamasının başarısız olduğu anlamına gelir. Yaygın nedenler:
Yanlış anahtar: Anahtar, şifreleme için kullanılanla eşleşmiyor.
Bozuk şifreli metin: Base64 dizesi değiştirildi, kesildi veya yanlış yapıştırıldı.
ChaCha20-Poly1305 dışı verilerin şifresini çözme: Giriş farklı bir algoritma veya araçla şifrelendi.

Use Cases

Önerilen: Simetrik Dosya ve Mesaj Şifreleme

ChaCha20-Poly1305 mükemmel bir genel amaçlı simetrik şifreleme seçimidir. WireGuard VPN'de tüm tünel trafiği için kullanılır ve TLS 1.3'teki iki birincil şifre paketinden biridir. Her mesaj için her zaman yeni bir rastgele nonce oluşturun (bu araç otomatik olarak ekler).

Recommended Configuration:
  • ✅ ChaCha20-Poly1305 (mobil, çapraz platform, yalnızca yazılım için önerilir)
  • AES-256-GCM (AES-NI donanımı mevcut olduğunda önerilir)
  • ✅ XChaCha20-Poly1305 (genişletilmiş 24 baytlık nonce, büyük hacimli mesajlaşma için)
  • ❌ Yeni projeler için kimliği doğrulanmamış şifreleri (AES-CBC, düz ChaCha20) kullanmayın
Önerilen: Mobil ve IoT Şifreleme

Donanım AES hızlandırması olmayan platformlarda ChaCha20-Poly1305, AES-GCM'i geçer. ChaCha20 yazılım dostu olduğundan, zamanlama yan kanal riskleri olmadan tüm platformlarda sabit zamanlı çalışır. Google, Android TLS trafiği için tercih edilen şifre olarak ChaCha20-Poly1305'i bu nedenle seçti.

Recommended Configuration:
  • ✅ ChaCha20-Poly1305 (donanım AES olmadan en iyi performans)
  • ✅ AES-256-GCM (AES donanımına sahip cihazlarda kabul edilebilir)
  • 💡 TLS 1.3 otomatik olarak müzakere eder — her iki şifre paketi de zorunludur
  • ❌ Kısıtlı cihazlarda AES-CBC kullanmayın (kimlik doğrulama yok, daha yavaş)
Kabul Edilebilir: Şifrelenmiş Yerel Depolama

ChaCha20-Poly1305, yerel olarak depolanan hassas verileri koruyabilir. Parolayı doğrudan kullanmak yerine Argon2id kullanarak kullanıcı parolasından anahtar türetin.

Recommended Configuration:
  • ✅ ChaCha20-Poly1305 + Argon2id anahtar türetme (parola tabanlı şifreleme)
  • ✅ AES-256-GCM + PBKDF2 (FIPS uyumlu ortamlar)
  • 💡 Saklayın: Argon2id parametreleri + tuz + ChaCha20 nonce + şifreli metin
  • ❌ Yerel depolama için ECB modu veya kimliği doğrulanmamış şifreleri kullanmayın
Önerilmez: Büyük Dosya Şifreleme

Standart ChaCha20-Poly1305, kimlik doğrulamadan önce tüm şifreli metni tamponlar; bu da büyük dosyalar için bellek yoğundur. Birkaç megabayttan büyük dosyalar için öbeklenmiş şifrelemeyi destekleyen özel bir araç veya kitaplık kullanın (örn. libsodium secretstream, age).

Recommended Configuration:
  • 💡 Birkaç MB'tan büyük dosyalar için öbeklenmiş AEAD kullanın
  • ✅ libsodium secretstream (akış halinde ChaCha20-Poly1305)
  • ✅ age şifreleme aracı (dosya odaklı, dahili olarak ChaCha20-Poly1305 kullanır)
  • ✅ Akış modunda AES-256-GCM (donanım hızlandırmalı ortamlar için)
Önerilmez: Anahtar Değişimi veya Kimlik Doğrulama

ChaCha20-Poly1305 bir simetrik şifredir — her iki taraf da aynı gizli anahtarı zaten paylaşıyor olmalıdır. Anahtar dağıtım sorununu çözmez. Güvenli anahtar değişimi için asimetrik bir protokol veya TLS 1.3 gibi tam bir protokol kullanın. Paylaşılan sır olmadan kimlik doğrulama için RSA veya ECDSA dijital imzaları kullanın.

Recommended Configuration:
  • ❌ ChaCha20-Poly1305 anahtar dağıtımını çözmez
  • ✅ TLS 1.3 (anahtar değişimi + ChaCha20-Poly1305 veri şifrelemeyi yönetir)
  • ✅ X25519 + ChaCha20-Poly1305 (Noise protokol deseni)
  • ✅ Dijital imzalar ve kimlik doğrulama için RSA / ECDSA
Önerilmez: Parola Karma

ChaCha20-Poly1305 bir şifreleme algoritmasıdır, parola karma işlevi değil. Şifreleme tersine çevrilebilir — anahtara sahip olan herkes parolayı çözebilir. Parola depolama için Argon2id (tercih edilir) veya bcrypt kullanın.

Recommended Configuration:
  • ❌ Parola depolama için ChaCha20-Poly1305 kullanmayın (tersine çevrilebilir)
  • Argon2id (tercih edilen parola karma algoritması)
  • bcrypt (geniş çapta desteklenen, mevcut sistemler)
  • ✅ scrypt / PBKDF2 (alternatif parola KDF'leri)

En İyi Uygulama Özeti

  • AES donanım hızlandırmasının mevcut olmadığı yerlerde — mobil, IoT ve çapraz platform yazılımı — simetrik şifreleme için ChaCha20-Poly1305 kullanın.
  • Her şifreleme için her zaman benzersiz bir rastgele nonce kullanın. Nonce alanını boş bırakırsanız araç otomatik olarak oluşturur.
  • Şifreli metin çıktısı 12 baytlık nonce ve 16 baytlık kimlik doğrulama etiketini içerir — şifre çözme için yalnızca tek bir base64 dizesi saklamanız yeterlidir.
  • Hiçbir zaman (anahtar, nonce) çiftini yeniden kullanmayın. Nonce yeniden kullanımı ChaCha20-Poly1305 güvenliğini tamamen bozar.
  • Parola tabanlı şifreleme için önce Argon2id ile anahtarı türetin — bir parolayı asla doğrudan ChaCha20-Poly1305 anahtarı olarak kullanmayın.

Tartışma ve Geri Bildirim

0 yorum
Ben