eTamga
eTamga Dizin
Türkiye E-İmza & E-Dönüşüm Sağlayıcıları Kataloğu
eTamga Ansiklopedi 📅 Son Güncelleme: ⏱️ 4 dk okuma 🛡️ 2026 GİB / VUK Uyumlu

SHA-384 Secure Hash Algorithm

Gelir İdaresi Başkanlığı teknik kılavuzları, Vergi Usul Kanunu ve UBL-TR standartları referans alınarak doğrulanmıştır.

Tanımı ve Standardizasyon Mimarisi

SHA-384 (Secure Hash Algorithm 384-bit), ABD Ulusal Güvenlik Ajansı (NSA) tarafından tasarlanan ve Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından FIPS PUB 180-4 standardıyla yayımlanan, SHA-2 kriptografik özet fonksiyonu ailesine ait yüksek güvenlikli bir algoritmadır.

SHA-384, yapısal olarak 64-bit kelime uzunluğuna sahip SHA-512 algoritması ile birebir aynı matematiksel işlem motorunu ve 80 turluk sıkıştırma döngüsünü kullanır. Temel farkı; SHA-512'den farklı 8 adet 64-bitlik başlangıç sabit vektörü ($H_0 \dots H_7$) kullanması ve 80 turun sonunda elde edilen 512 bitlik durum çıktısının en soldaki 384 bitinin (48 Bayt / 96 karakterli onaltılık dize) nihai özet olarak alınması, kalan 128 bitin ise güvenli bir şekilde budanmasıdır (truncation).

Matematiksel Blok Yapısı ve Algoritmik Adımlar

SHA-384 algoritması, 64-bitlik modern işlemci mimarilerinde azami verimlilik sağlayacak şekilde 1024-bitlik bloklar halinde çalışır:

  1. Mesaj Dolgulama (Padding): Orijinal mesaj uzunluğu $L$ bit olmak üzere, mesajın sonuna '1' biti ve ardından $L + 1 + K \equiv 896 \pmod{1024}$ şartını sağlayacak sayıda '0' biti eklenir. Son 128 bite ise $L$'nin 128-bitlik ikilik gösterimi yazılarak mesaj blokları tam 1024 bite tamamlanır.
  2. Blok Ayrıştırma: Dolgulanmış mesaj her biri 1024 bitlik ($M_1, M_2, \dots, M_n$) bloklara ayrılır ve her blok 16 adet 64-bit kelimeye bölünür.
  3. Mesaj Çizelgesi Genişletme ($W_0 \dots W_{79}$): İlk 16 kelime doğrudan bloktan alınır; sonraki 64 kelime ise $\sigma_0$ ve $\sigma_1$ kaydırma ve XOR operasyonlarıyla üretilir.
  4. 80 Tur Sıkıştırma: 8 çalışma değişkeni ($a, b, c, d, e, f, g, h$) üzerinde 64-bit $Ch$, $Maj$, $\Sigma_0$ ve $\Sigma_1$ mantıksal fonksiyonları işletilir.
  5. Budama (Truncation): 80 tur sonucunda 8 adet 64 bitlik özet çıktısından ilk 6 tanesi ($H_0, H_1, H_2, H_3, H_4, H_5$) birleştirilerek tam 384 bitlik çıktı elde edilir.

NSA CNSA ve Suite B Güvenlik Standartlarındaki Yeri

SHA-384, ABD Ulusal Güvenlik Ajansı'nın gizli ve çok gizli (Top Secret) devlet sırlarının korunması için yayımladığı CNSA (Commercial National Security Algorithm Suite) şartnamesinde zorunlu tutulan tek özet algoritmasıdır. Bu standartta AES-256 simetrik şifreleme ve ECDSA P-384 eliptik eğri dijital imza standardı ile kusursuz bir güvenlik seviyesi eşleşmesi (192-bit güvenlik eşdeğeri) sunar.

Uygulama Alanları ve E-Dönüşüm Entegrasyonu

  • TLS 1.3 ve TLS 1.2 Cipher Suite'leri: TLS_AES_256_GCM_SHA384 ve ECDHE-ECDSA-AES256-GCM-SHA384 gibi en yüksek şifreleme profillerinde anahtar türetimi (HKDF) ve el sıkışma bütünlüğü için kullanılır.
  • Nitelikli Elektronik İmza (QES): 5070 sayılı Kanun ve eIDAS regülasyonlarında 384-bit Eliptik Eğri (NIST P-384 ve brainpoolP384r1) ile üretilen nitelikli sertifikalarda imza özeti olarak zorunludur.
  • Uzatma Saldırılarına Karşı Doğal Koruma (Length-Extension Immunity): Çıktı aşamasında 128 bit budandığı için klasik SHA-256 ve SHA-512'yi etkileyebilen Merkle-Damgård uzatma saldırılarına karşı doğal olarak bağışıktır.

CLI ve Python ile SHA-384 Kullanımı

# Linux / macOS terminalinde SHA-384 özeti alma
sha384sum sozlesme_imzali.pdf

# OpenSSL ile SHA-384 hesaplama
openssl dgst -sha384 -hex e_arsiv_raporu.xml

# Python hashlib ile SHA-384 üretimi
import hashlib
digest = hashlib.sha384("e-Tamga Güvenli Dijital Dönüşüm".encode("utf-8")).hexdigest()
print(f"SHA-384 ({len(digest)*4} bit): {digest}")
Mevzuat İnceleme & Doğrulama: eTamga Editöryal Kurulu (17 Ekim 2026)
GitHub'da İyileştirme Öner