PKCS#1 RSA Cryptography Standard
Gelir İdaresi Başkanlığı teknik kılavuzları, Vergi Usul Kanunu ve UBL-TR standartları referans alınarak doğrulanmıştır.
Tanımı ve Standartın Kapsamı
PKCS#1 (Public-Key Cryptography Standards #1), RSA Laboratories tarafından geliştirilen ve daha sonra IETF tarafından RFC 8017 (PKCS #1 v2.2) adıyla standartlaştırılan, RSA açık anahtarlı şifreleme ve dijital imza mekanizmalarının matematiksel ve algoritmik temellerini belirleyen temel kriptografi standardıdır.
Dünya genelinde ve Türkiye'de 5070 sayılı Elektronik İmza Kanunu kapsamında üretilen tüm Nitelikli Elektronik Sertifikalar (NES) ve kurumsal Mali Mühürler, anahtar çifti oluşturma ve veri imzalama operasyonlarında PKCS#1 standardına dayanmaktadır.
Matematiksel Mantık ve Anahtar Boyutları
PKCS#1, büyük asal sayıların çarpımının çarpanlarına ayrılmasının hesaplama zorluğuna (Integer Factorization Problem) dayanır. Açık anahtar $(n, e)$ şifreleme veya imza doğrulamada kullanılırken; gizli anahtar $(n, d)$ şifre çözme veya imza oluşturma amacıyla güvenli donanımlarda (Akıllı Kart / HSM) korunur.
| RSA Anahtar Uzunluğu | NIST / BTK Güvenlik Seviyesi | Tavsiye Edilen Kullanım Alanı |
|---|---|---|
| 1024 bit | Güvensiz (Kullanımdan Kaldırıldı) | GİB ve BTK tarafından yasaklanmıştır |
| 2048 bit | Standart Güvenli (112-bit güvenlik) | E-İmza, Mali Mühür, SSL/TLS Sertifikaları |
| 3072 bit | Yüksek Güvenlik (128-bit güvenlik) | Kök Sertifika Otoriteleri (Root CA), Uzun Vadeli Arşiv |
| 4096 bit | Maksimum Güvenlik (140+ bit güvenlik) | Ulusal Kimlik Sistemleri ve Askeri Donanımlar |
İmza Doldurma (Padding) Mekanizmaları: v1.5 vs PSS
Bir verinin doğrudan RSA algoritmasıyla imzalanması matematiksel zafiyetlere yol açabileceğinden PKCS#1 standardı özel doldurma (padding) kuralları tanımlar:
- PKCS#1 v1.5 Padding: Belirli bir sabit şablon kullanarak veri özetini (hash) tamamlar. Uzun yıllardır e-Fatura, XAdES ve CAdES yapılarında en yaygın kullanılan biçimdir.
- RSASSA-PSS (Probabilistic Signature Scheme): PKCS#1 v2.1 ile gelen, rastgele tuz (salt) değeri içeren ve matematiksel olarak güvenliği kanıtlanmış modern imza yöntemidir. Yeni nesil kimlik kartlarında ve yüksek güvenlikli e-Devlet servislerinde tercih edilmektedir.
e-İmza ve UBL-TR Entegrasyonundaki Rolü
Bir e-Fatura XML belgesi imzalanırken şu işlem sırası izlenir:
- UBL-TR faturasının kanonik (C14N) XML metni çıkarılır.
- Metnin SHA-256 algoritmasıyla 256-bit özeti (digest) hesaplanır.
- Özet değeri PKCS#1 kurallarına göre doldurulur (padding).
- Akıllı kart içerisindeki RSA gizli anahtarı ile şifrelenerek dijital imza baytları üretilir ve
ds:SignatureValuealanına Base64 olarak yazılır.