Mesaj Doğrulama Kodu

Vikipedi, özgür ansiklopedi

Mesaj doğrulama kodu (kısaca MDK) kriptografi biliminde bir mesajın doğruluğunu kanıtlamak için kullanılan küçük boyutlu bilgilerdir.

Mesaj doğrulama kodu algoritması, (ayrıca anahtarlı (kriptografik) özet fonksiyon olarak da bilinir), girdi olarak gizli anahtar ve doğruluğu ispatlanacak olan herhangi bir uzunlukta mesaj alır. Çıktı olarak Mesaj doğrulama kodu verir. Bu değer mesajın hem veri bütünlüğünü hem de doğruluğunu kontrol etmeyi sağlar. Bu sayede gizli anahtara sahip kişi (doğrulayıcı) gelen mesajda değişiklik olup olmadığını anlayabilir.

Güvenlik[değiştir | kaynağı değiştir]

MDK fonksiyonları kriptografik özet fonksiyonlara benzemelerine rağmen güvenlik gereksinimleri bakımından farklıdırlar. Bir mesaj doğrulama koduna güvenli denilebilmesi için, kullanılan MDK fonksiyonunun seçilmiş açık mesaj saldırısı altında varoluşsal sahtekarlığa dayanıklı olması gereklidir. Bunun anlamı, eğer saldırı yapan kişi, gizli anahtara sahip ve saldıran kişinin istediği mesajların bu anahtar ile oluşturulmuş bir MDK'sini veren bir Kahinli Turing makinesine sahip olsa bile, bu mesajlardan başka bir mesaja karşılık gelen MDK'yi olası bir zaman dilimi içinde oluşturamamalıdır.

MDK'ları sayısal imzalardan ayıran temel özellik, hem oluşturma hem de doğrulama aşamasında aynı gizli anahtarın kullanılıyor olmasıdır. Bu da, simetrik şifrelemeye benzer şekilde, gönderici ve alıcının iletişimden önce ortak bir gizli anahtar üzerinde anlaşmalarını gerektirir. Aynı özellikten dolayı MDK'lar sayısal imzaların sağladığı inkar edilemezlik özelliğini sağlayamazlar. Çünkü herhangi bir MDK'yı doğrulayabilen bir kişi aynı zamanda herhangi bir mesaj için geçerli bir MDK da oluşturabilir.

Mesaj bütünlük kodları (MBK)[değiştir | kaynağı değiştir]

MBK ve MDK birbirlerine kelime olarak çok benzemelerine rağmen kriptografik olarak farklıdırlar. MDK'nın aksine MBK üretilirken herhangi bir gizli anahtar kullanılmaz. Dolayısıyla MBK ile mesajın bütünlüğü kontrol edilmek istendiğinde, oluşturulan MBK ya şifrelenmeli ya da olası değiştirme müdahalelerine karşı korunmaya alınmalıdır.Aynı MBK üretme algoritmasının kullandıldığı varsayımı altında aynı mesaj için her zaman aynı MBK oluşacaktır. Buna karşı, MDK üretirken kullanılan gizli anahtar ve başlangıç vektörüne bağlı olarak oluşan MDK değişiklik gösterecektir. MBK'lar gizli anahtar kullanmadıkları için MDK'lara göre mesaj bütünlüğünü koruma adına daha zayıftırlar.

Uygulama[değiştir | kaynağı değiştir]

MDK algoritmaları kriptografik özet fonksiyonlar ya da blok şifreleme algoritmaları kullanılarak oluşturulabilir. özet fonksiyonlar ile oluşturulan algıritmalara örnek olarak en:HMAC, blok şifreleme kullanılarak oluşturulan algoritmalara ise OMAC, en:CBC-MAC ve PMAC verilebilir. Buna rağmen, en:UMAC ve en:VMAC gibi hızlı MDK üretme algoritmaları evrensel özetlemeye dayalı olarak oluşturulmuştur.[1]

Standartlar[değiştir | kaynağı değiştir]

MDK algoritmalarını tanımlayan çeşitli standartlar mevcuttur. Bunlardan bazıları:

ISO/IEC 9797-1 ve -2 herhangi bir özet fonksiyon ya da blok şifreleme algoritması ve çeşitli parametreler ile kullanılabilecek genel bir model veya algoritma tanımı verir. Bu da paramterelere bağlı olarak daha belirleyici algoritmalar oluşturmayı sağlar. Örneğin FIPS PUB 113 algoritması, ISO/IEC 9797-1 MAC algoritmasına en:padding metodunun 1 olarak seçilmesi ve DES blok şifreleme algoritmasının kullanılması ile denk olur.

Örnek[değiştir | kaynağı değiştir]

Bu örnekte, gönderici, mesajına ait MDK oluşturmak için bir MDK algoritması kullanıyor. Oluşan MDK ve mesaj alıcıya gönderiliyor. Alıcı, ulaşan mesajı, sadece gönderici ve kendisinin sahibi olduğu gizli anahtarı ve gönderici ile aynı MDK algoritmasını kullanarak MDK'yı oluşturur. Oluşan bu MDK, göndericiden mesaj ile birlikte gelen MDK değeri ile karşılaştırılır. Eğer iki MDK birbirine eşit ise, alıcı mesajın bütünlüğünden ve doğruluğundan emin olabilir. Aksi halde mesajın yolda değiştirilmiş ya da hasara uğramış olduğu anlar.

Dış bağlantılar[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "VMAC: Message Authentication Code using Universal Hashing". CFRG Working Group. CFRG Working Group. 15 Nisan 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mart 2010. 
  2. ^ "FIPS PUB 113 Computer Data Authentication". 27 Eylül 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mayıs 2012. 
  3. ^ "Federal Information Processing Standards Publications, Withdrawn FIPS Listed by Number". 1 Ağustos 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mayıs 2012. 
  4. ^ "ISO/IEC 9797-1 Information technology — Security techniques — Message Authentication Codes (MACs) — Part 1: Mechanisms using a block cipher". 9 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mayıs 2012. 
  5. ^ "ISO/IEC 9797-2 Information technology — Security techniques — Message Authentication Codes (MACs) — Part 2: Mechanisms using a dedicated hash-function". 15 Mart 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mayıs 2012.