Ana içeriğe geç

Açık Anahtarlı Kriptografi

Public-Key Cryptography

İngilizcesi
Public-Key Cryptography
Türkçe karşılığı
asimetrik şifreleme
Okunuşu
pablik ki kriptogrıfi

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/public-key-cryptography

Kısaca

Açık anahtarlı kriptografi, veriyi şifreleyip imzalamak için herkesin görebildiği bir açık anahtar ile gizli tutulan bir özel anahtardan oluşan çift kullanır.

Açık anahtarlı kriptografi nedir?

Asimetrik kriptografi olarak da bilinen açık anahtarlı kriptografi, tek bir ortak sır yerine matematiksel olarak bağlantılı iki anahtar kullanır. Açık anahtar herkese verilebilir, özel anahtar ise sahibi tarafından gizli tutulmalıdır. Açık anahtarla şifrelenen veri yalnızca eşleşen özel anahtarla çözülebilir; özel anahtarla oluşturulan dijital bir imza ise açık anahtara sahip herkes tarafından doğrulanabilir.

Güvenliği, bir yönde hesaplaması kolay ama tersine çevirmesi pratikte imkânsız matematik problemlerine dayanır: RSA'nın kullandığı iki devasa asal sayının çarpımını çarpanlarına ayırmak ya da ECDSA, Ed25519 ve ECDH'nin kullandığı eliptik eğri problemleri gibi. Asimetrik işlemler yavaş olduğundan gerçek sistemler bunları simetrik şifrelemeyle birleştirir: bir TLS el sıkışmasında iki taraf sunucunun kimliğini doğrulamak ve yeni bir ortak anahtar üzerinde anlaşmak için açık anahtarlı yöntemleri kullanır, ardından konuşmanın geri kalanını AES gibi hızlı simetrik şifrelemeyle şifreler.

Klasik bir benzetme, üzerinde yuva olan bir posta kutusudur: yuvadan herkes mektup bırakabilir, bu açık anahtardır; ama kutuyu açan anahtar yalnızca sahibindedir, bu da özel anahtardır. Açık anahtarlı kriptografi; HTTPS sertifikalarının, SSH girişlerinin, imzalı yazılım güncellemelerinin, şifreli e-postanın, passkey'lerin ve RS256 veya ES256 gibi algoritmalarla imzalanan JWT'lerin arkasındadır.

Genellikle, aynı gizli anahtarın hem şifrelediği hem çözdüğü, hızlı ama iki tarafın bu anahtarı önceden güvenle paylaşmasını gerektiren simetrik şifrelemeyle karşılaştırılır. Açık anahtarlı kriptografi anahtar paylaşımı sorununu çözer, ancak tek başına bir açık anahtarın kime ait olduğunu kanıtlayamaz; güvenilir sertifika otoritelerinin imzaladığı sertifikaların açık anahtarları alan adlarına ve kuruluşlara bağlamasının nedeni budur. Gelecekteki büyük ölçekli kuantum bilgisayarlar RSA ve eliptik eğri yöntemlerini kırabileceğinden, NIST'in 2024'te standartlaştırdığı ML-KEM ve ML-DSA gibi kuantum sonrası algoritmalar şimdiden devreye alınıyor.

Bir bakışta

Ada'nın anahtar çifti iki şekilde kullanılır. Şifreleme: herkes “Selam Ada” mesajını Ada'nın açık anahtarıyla şifreler ve sonucu yalnızca onun özel anahtarı çözebilir. İmza: Ada update.zip dosyasını özel anahtarıyla imzalar ve imzayı herkes onun açık anahtarıyla doğrulayabilir.Şifreleme: herkes kilitleyebilir, yalnızca Ada açabilirşifreleaçık anahtarçözözel anahtar"Selam Ada"mesajx9#fQ2…okunamaz"Selam Ada"yalnızca Ada okurİmza: yalnızca Ada imzalayabilir, herkes doğrulayabilirimzalaözel anahtardoğrulaaçık anahtarupdate.zipAda'danupdate.zip+ imzaGeçerligerçekten Ada'dan
Çiftteki bir anahtarın kilitlediğini yalnızca diğeri açabilir: açık anahtar serbestçe paylaşılır, özel anahtar ise sahibinden hiç ayrılmaz.

Önemli noktalar

  • Her tarafın bir anahtar çifti vardır: paylaşılacak bir açık anahtar ve gizli tutulacak bir özel anahtar.
  • Açık anahtarla şifrelenen veri yalnızca eşleşen özel anahtarla çözülebilir.
  • Özel anahtarla yapılan imzaları açık anahtara sahip herkes doğrulayabilir.
  • TLS gibi protokoller bunu hızlı simetrik şifrelemeyle birleştirir.
  • Sertifikalar açık anahtarları alan adları gibi gerçek kimliklere bağlar.

Örnek

Node.js'te bir mesajı imzalamak ve doğrulamakjavascript
import { generateKeyPairSync, sign, verify } from "node:crypto";

// Create a key pair: share the public key, keep the private key secret
const { publicKey, privateKey } = generateKeyPairSync("ed25519");

const message = Buffer.from("Transfer $100 to Ada");

// Sign with the private key...
const signature = sign(null, message, privateKey);

// ...and anyone with the public key can check the signature
console.log(verify(null, message, publicKey, signature)); // true
const tampered = Buffer.from("Transfer $900 to Eve");
console.log(verify(null, tampered, publicKey, signature)); // false

Sık sorulan sorular

Simetrik ve asimetrik şifreleme arasındaki fark nedir?

Simetrik şifreleme hem şifreleme hem çözme için tek bir ortak gizli anahtar kullanır ve hızlıdır. Asimetrik şifreleme bir açık ve özel anahtar çifti kullanır; bu yüzden önceden bir sır paylaşmak gerekmez, ancak daha yavaştır. TLS gibi protokollerin ikisini de kullanmasının nedeni budur.

Bir açık anahtar veriyi çözebilir mi?

Aynı açık anahtarla şifrelenmiş veriyi çözemez; bunu yalnızca eşleşen özel anahtar yapabilir. Açık anahtar, özel anahtarla yapılmış imzaları doğrulamak için kullanılır; bu bazen gevşek biçimde çözme olarak tarif edilir, ancak ayrı bir işlemdir.

Özel anahtarım sızarsa ne olur?

Özel anahtara sahip olan herkes size gönderilen mesajları çözebilir ve adınıza imza oluşturabilir. Anahtarı, örneğin sertifikasını iptal ederek geçersiz kılın, yeni bir anahtar çifti üretin ve eski açık anahtarı kullanıldığı her yerde değiştirin.

Sık karşılaştırılanlar

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar