Dijital İmzalar ve RSA İmza Şeması
Asimetrik şifreleme ile verinin "gizliliğini" (confidentiality) sağlamayı, kriptografik özet (hash) fonksiyonlarıyla da verinin "bütünlüğünü" (integrity) korumayı öğrendik. Ancak dijital dünyada çözülmesi gereken çok büyük bir problem daha vardır: Kimlik Doğrulama (Authentication) ve İnkar Edememezlik (Non-repudiation).
Bana internet üzerinden gelen bir e-postanın veya banka talimatının, gerçekten iddia edilen kişi tarafından gönderildiğini ve sonradan "bunu ben göndermedim" diyemeyeceğini nasıl garanti edebiliriz? İşte bu noktada, asimetrik şifreleme mantığının tam tersi yönünde çalışan Dijital İmzalar (Digital Signatures) devreye girer.
📌 Paradigma Değişimi: Şifreleme vs. İmzalama
Asimetrik sistemlerde (örneğin RSA) anahtar kullanım yönü amaca göre tamamen değişir:
- Gizlilik (Şifreleme) Amacıyla: Mesaj, alıcının Açık Anahtarı ile şifrelenir. Sadece alıcının Gizli Anahtarı ile çözülebilir. (Herkes mesaj gönderebilir, sadece alıcı okuyabilir).
- Kimlik Doğrulama (İmzalama) Amacıyla: Mesaj, göndericinin Gizli Anahtarı ile imzalanır. Herkes göndericinin Açık Anahtarı ile bu imzayı doğrulayabilir. (Sadece sahibi imza atabilir, herkes imzanın doğruluğunu teyit edebilir).
🔒 Dijital İmzanın Formal Tanımı
Bir dijital imza şeması temelde üç algoritmadan oluşan bir bütündür:
Tanım: Dijital İmza Şeması (Digital Signature Scheme)
Bir dijital imza şeması, mesaj uzayı
- Anahtar Üretimi (KeyGen): Göndericiye ait bir
anahtar çifti üretir. Burada herkesin bildiği açık anahtar (public key), ise sadece göndericinin bildiği gizli anahtardır (secret key). - İmza Oluşturma (Sign): Göndericinin
gizli anahtarı ve mesajı girdi olarak alınır, dijital imzası üretilir: - İmza Doğrulama (Verify): Göndericinin
açık anahtarı, mesajı ve imzası girdi olarak alınır. İmza gerçekten bu mesaj için ve bu gizli anahtar ile üretilmişse Geçerli (True), aksi takdirde Geçersiz (False) çıktısı üretilir:
🏗️ Hash ve İmza Paradigması (Hash-and-Sign)
Teorik olarak koca bir dosyayı veya uzun bir metni doğrudan asimetrik anahtarla imzalayabilirsiniz. Ancak matematikte büyük sayılarla üs alma işlemleri son derece yavaştır. 2 GB'lık bir video dosyasını doğrudan RSA ile imzalamak saatler sürer.
Ayrıca doğrudan mesajı imzalamak, "Varoluşsal Sahtecilik" (Existential Forgery) adı verilen matematiksel saldırılara kapı aralar. Bu nedenle modern kriptografide asla doğrudan mesaj imzalanmaz.
💡 Altın Kural: Önce Özetle, Sonra İmzala!
Dijital imza atılmadan önce mesajın, çakışmaya dayanıklı bir
Alıcı da mesajın hash'ini kendi hesaplar ve gelen imzadaki hash ile karşılaştırır. Dosya ne kadar büyük olursa olsun, imzalama işlemi daima sabit boyutlu (örneğin 256 bit) bir sayı üzerinden saniyeler içinde gerçekleşir.
🔑 RSA Dijital İmza Algoritması
Dünyada en çok bilinen ve kök sertifikalarda hala yaygın olarak kullanılan imza yöntemi RSA tabanlıdır. Matematiksel altyapısı, daha önce öğrendiğimiz RSA şifrelemesi ile tamamen aynı asalları ve totient kurallarını kullanır.
Tanım: RSA İmza Şeması
1. Anahtar Üretimi: İki büyük asal sayı
- Açık Anahtar (Doğrulama için):
- Gizli Anahtar (İmzalama için):
2. İmza Oluşturma (Gönderici): Gönderici
Oluşan
3. İmza Doğrulama (Alıcı): Alıcı gelen
Alıcı aynı zamanda gelen
Teorem: RSA İmzasının Doğruluğu
Doğrulama adımında
İspat
İmza oluşturma denkleminden biliyoruz ki
Doğrulama fonksiyonunda
Anahtar üretim adımından
Böylece
📝 Çözümlü Uygulama: Sayısal RSA İmzası
Örnek: RSA İmza Oluşturma ve Doğrulama Adımları
Bir kullanıcının RSA anahtar çifti için başlangıç asalları
Gerekli anahtarları oluşturunuz, dosyanın dijital imzasını (
💡 Çözümü Göster / Gizle
1. Anahtar Üretimi:
- Modül:
- Euler Totient:
- Açık üs
verilmiş. şartı sağlanıyor. - Gizli üs
'nin bulunması ( ): olduğundan 'dir. - Açık Anahtar (Doğrulayıcı):
- Gizli Anahtar (İmzalayıcı):
2. İmza Oluşturma (Gönderici Adımı): Gönderici dosyanın hash değerini (
Hesaplamayı "Ardışık Kare Alma" yöntemiyle küçültelim:
Üs değerini parçalayalım (
Parçalı çarparak mod
Son çarpımı yapalım:
Oluşturulan Dijital İmza:
3. İmza Doğrulama (Alıcı Adımı): Alıcı dosyayı ve
İşlemi yapalım:
Sonuç: Alıcının imzadan çıkardığı değer (