RSA-PSS (Probabilistic Signature Scheme)
Gelir İdaresi Başkanlığı teknik kılavuzları, Vergi Usul Kanunu ve UBL-TR standartları referans alınarak doğrulanmıştır.
Tanımı ve Kriptografik Gelişim Süreci (RFC 8017 / PKCS#1 v2.2)
RSA-PSS (RSA Probabilistic Signature Scheme - Olasılıksal İmza Şeması); Mihir Bellare ve Phillip Rogaway tarafından 1996 yılında tasarlanan, RSA açık anahtarlı şifreleme algoritması üzerinde dijital imza üretimini en yüksek matematiksel güvenlik seviyesine ulaştıran standarttır. İnternet Mühendisliği Görev Gücü (IETF) tarafından RFC 8017 (PKCS#1 v2.2) ve RFC 3447 dokümanlarıyla resmîleştirilmiştir.
Klasik RSA imza standardı olan PKCS#1 v1.5 'deterministik' yapıdadır; yani aynı veri ve aynı özel anahtar kullanıldığında her zaman birebir aynı dijital imza baytları üretilir. RSA-PSS ise her imza işleminde kriptografik rastgele bir 'tuz' (salt) değeri kullanarak imza sürecini olasılıksal (probabilistic) hale getirir. Böylece aynı metin defalarca imzalansa bile her seferinde tamamen farklı bir imza bloğu ortaya çıkar.
Deterministik PKCS#1 v1.5 Zafiyetleri ve PSS Güvenlik Kanıtı
Geleneksel PKCS#1 v1.5 dolgulaması, imza bloklarında sabit bir yapı ($00 \parallel 01 \parallel FF \dots FF \parallel 00 \parallel \text{DigestInfo}$) kullanır. Kriptografi literatüründe Bleichenbacher imza sahteciliği saldırıları ve varyantları, kötü niyetli kişilerin eksik doğrulanmış ASN.1 yapılarını suistimal ederek sahte geçerli imzalar üretmesine yol açabilmektedir.
RSA-PSS'in en büyük bilimsel üstünlüğü, Rastgele Kahin Modeli (Random Oracle Model) altında kesin kanıtlanabilir güvenliğe (Provable Security) sahip olmasıdır. RSA-PSS algoritmasında bir imzanın sahtesini üretmenin matematiksel zorluğu, doğrudan RSA probleminin (büyük tam sayıları çarpanlarına ayırma - Factoring Problem) zorluğuna sıkı sıkıya eşdeğerdir. Dolgu yapısından kaynaklanan hiçbir yan kanal veya sahtecilik zafiyeti barındırmaz.
EMSA-PSS Kodlama ve İmza Üretim Mimarisi
RSA-PSS imza üretim süreci (EMSA-PSS - Encoding Method for Signature Appendix) şu matematiksel adımlarla gerçekleşir:
- Özet Hesaplama: İmzalanacak belgenin kriptografik özeti ($mHash = ext{Hash}(M)$) hesaplanır.
- Tuz (Salt) Üretimi: Kriptografik rastgelelik üretecinden $sLen$ bayt uzunluğunda tekil bir tuz dizisi üretilir.
- Birleştirilmiş Özet: 8 baytlık sabit sıfır dolgusu, $mHash$ ve üretilen tuz birleştirilerek $M'$ oluşturulur; ardından $H = ext{Hash}(M')$ hesaplanır:
$$M' = (0x00)_{8} \parallel mHash \parallel salt, \quad H = \text{Hash}(M')$$
- Veri Bloğu Maskeleme (MGF1): $DB = \text{Padding} \parallel salt$ dizisi oluşturulur. Maske Üretim Fonksiyonu (MGF1) kullanılarak $H$ üzerinden maske ($dbMask = \text{MGF1}(H, \text{emLen} - hLen - 1)$) üretilir ve veri bloğu ile XOR'lanır:
$$maskedDB = DB \oplus dbMask$$
- Kodlanmış Mesaj (EM): Maskelenmiş veri bloğu, özet $H$ ve sabit bitiş baytı ($0xbc$) birleştirilerek kodlanmış mesaj oluşturulur:
$$EM = maskedDB \parallel H \parallel 0xbc$$
- RSA Modüler Üs Alma: Kodlanmış mesaj kullanıcının özel anahtarı ($d, n$) ile üslenerek nihai imza ($s$) elde edilir:
$$s = EM^d \pmod n$$
Doğrulama Mekanizması ve Kriptografik Sağlamlık
İmza doğrulayıcı taraf, imzalayanın açık anahtarını ($e, n$) kullanarak $EM = s^e \pmod n$ işlemini yapar. Ardından bitiş baytının $0xbc$ olduğunu denetler, $H$ değerini ayıklar ve Maske Üretim Fonksiyonuyla $maskedDB$'yi çözerek içerisindeki $salt$ değerine ulaşır. Doğrulayıcı orijinal belgenin özetini ve çıkartılan tuzu kullanarak kendi $H'$ değerini bağımsızca hesaplar; eğer $H == H'$ ise imza kesin olarak geçerli kabul edilir.
TLS 1.3, XAdES/PAdES E-İmza ve 5070 Sayılı Kanun Uyum Standartları
Günümüzün modern dijital güvenliğinde RSA-PSS hızla tek standart haline gelmektedir:
- TLS 1.3 Protokolü: İnternet güvenliğinin omurgası olan TLS 1.3 (RFC 8446), RSA anahtar değişiminde eski PKCS#1 v1.5 imza şemasını tamamen yürürlükten kaldırmış; yalnızca RSA-PSS (
rsa_pss_rsae_sha256,rsa_pss_pss_sha384vb.) kullanımına izin vermiştir. - 5070 Sayılı Elektronik İmza Kanunu ve ETSI Standartları: Türkiye'de Bilgi Teknolojileri ve İletişim Kurumu (BTK) ile Avrupa Telekomünikasyon Standartları Enstitüsü (ETSI EN 319 132 XAdES, ETSI EN 319 142 PAdES) yönergelerine göre; Nitelikli Elektronik İmza (NES) üretiminde 2048 ve 3072 bitlik RSA anahtarları ile birlikte RSA-PSS şeması en yüksek güvenlik profilini temsil eder.