Death_AngeL
Banned
- Katılım
- 27 Haz 2005
- Mesajlar
- 602
- Reaction score
- 0
- Puanları
- 0
Mesajlar için 3DES kullanarak, MAC(Message Authentication Code) hesaplama MACTripleDES ile yapılır. MAC, mesaj kimlik denetimi kodu anlamına gelmektedir. Mesajı gönderenin ve alanın paylaştıkları ortak anahtar kullanılarak, güvenli olmayan bir yoldan sağlanan mesaj üzerinde oynama yapılıp yapılmadığını kontrol etmek amacıyla MAC kullanılır. Mesajı gönderen kişi, mesajın MAC değerini hesaplar, ve mesajla beraber tek bir mesajmış gibi gönderir. Mesajı alan kişi, aynı mesaj için tekrar MAC’i hesaplar ve gelen MAC değeri ile karşılaştırır. MAC hesabının yapılabilmesi ve orjinal mesajın değiştirilebilmesi için ortak anahtarın bilinmesi gerekir. Eğer alıcı tarafında MAC değerleri uyuşursa, mesaj kimlik denetimini geçmiş kabul edilir.
Microsoft .NET Framework’ te MACTripleDES sınıfı ile bu işlem yapılabilmektedir. MACTripleDES, 8,16 ve ya 24 byte uzunluğunda bir anahtar kullanır ve 8 byte uzunluğunda bir hash değeri üretir. MACTripleDES sınıfı, KeyedHashAlgorithm soyut sınıfından türemiştir. Bu sınıfın erişilebilir özellikleri şu şekilde tanımlanır:
CanReuseTransform, şu an ki dönüşüm tekrar kullanılıp kullanılmayacağını belirtir,varsayılan değeri true’dur.
CanTransformMultipleBlocks, aynı anda bir çok veri bloğunun dönüştürülüp dönüştürülemeyeceğini belirtir, varsayılan değeri true’dur.
Hash, hesaplanan hash değerini verir.
HashSize, hesaplanan hash değerinin bit olarak büyüklüğünü gösterir. Varsayılan değeri 64 bittir.
InputBlockSize, kullanılan veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Key, hash algoritması tarafından kullanılan anahtarı verir, aynı zamanda dışarıdan da bu değeri değiştirebilirsiniz.
OutputBlockSize, algoritma sonunda oluşacak veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Bu sınıfın erişilebilir metotları ise şunlardır:
Clear, MACTripleDES algoritması tarafından kullanılan kaynakları sisteme geri verir.
ComputeHash, kullanılan veri bloğu için hash değerini hesaplar.
Equals, iki nesnenin birbirine eşit olup olmadığını test eder.
GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur.
GetType, bu nesnenin tipini verir.
Initialize, MACTripleDES nesnesinin ilk değerlerini ayarlar.
ToString, şu an ki nesneyi ifade eden bir metin oluşturur.
TransformBlock, belirtilen veri bloğundaki belirtilen alan için hash değerini hesaplar ve belirtilen sonuç veri bloğunun belirtilen alanına hesaplanan bu hash değerini kopyalar.
TransformFinalBlock, belirtilen byte dizisindeki belirtilen alan için hash değerini hesaplar.
Çok basit anlamda, MACTripleDES ile örnek bir hash değeri oluşturalım. Bu örnekten yola çıkarak çok daha karmaşık hash işlemi yapmanız da mümkündür.
Microsoft .NET Framework’ te MACTripleDES sınıfı ile bu işlem yapılabilmektedir. MACTripleDES, 8,16 ve ya 24 byte uzunluğunda bir anahtar kullanır ve 8 byte uzunluğunda bir hash değeri üretir. MACTripleDES sınıfı, KeyedHashAlgorithm soyut sınıfından türemiştir. Bu sınıfın erişilebilir özellikleri şu şekilde tanımlanır:
CanReuseTransform, şu an ki dönüşüm tekrar kullanılıp kullanılmayacağını belirtir,varsayılan değeri true’dur.
CanTransformMultipleBlocks, aynı anda bir çok veri bloğunun dönüştürülüp dönüştürülemeyeceğini belirtir, varsayılan değeri true’dur.
Hash, hesaplanan hash değerini verir.
HashSize, hesaplanan hash değerinin bit olarak büyüklüğünü gösterir. Varsayılan değeri 64 bittir.
InputBlockSize, kullanılan veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Key, hash algoritması tarafından kullanılan anahtarı verir, aynı zamanda dışarıdan da bu değeri değiştirebilirsiniz.
OutputBlockSize, algoritma sonunda oluşacak veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.
Bu sınıfın erişilebilir metotları ise şunlardır:
Clear, MACTripleDES algoritması tarafından kullanılan kaynakları sisteme geri verir.
ComputeHash, kullanılan veri bloğu için hash değerini hesaplar.
Equals, iki nesnenin birbirine eşit olup olmadığını test eder.
GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur.
GetType, bu nesnenin tipini verir.
Initialize, MACTripleDES nesnesinin ilk değerlerini ayarlar.
ToString, şu an ki nesneyi ifade eden bir metin oluşturur.
TransformBlock, belirtilen veri bloğundaki belirtilen alan için hash değerini hesaplar ve belirtilen sonuç veri bloğunun belirtilen alanına hesaplanan bu hash değerini kopyalar.
TransformFinalBlock, belirtilen byte dizisindeki belirtilen alan için hash değerini hesaplar.
Çok basit anlamda, MACTripleDES ile örnek bir hash değeri oluşturalım. Bu örnekten yola çıkarak çok daha karmaşık hash işlemi yapmanız da mümkündür.