MACTripleDES

MACTripleDES >Mesajların şifrelenmesi, şifrelenmiş metnin doğruluğunun testi ve dijital imzaların oluşturulması için kriptografik hash kullanılır. Bu makalemizde MACTripleDES algoritmasını ve Microsoft .NET ile nasıl gerçekleneceğini inceleyeceğiz. Yazar: Yunus Emre ALPÖZEN Yazıldığı Tarih: 25.04.2005 İstatistik: Bu makale 318 defa okundu. Zorluk Derecesi: 1 2 3 4 5 Anahtar Sözcükler: Şifreleme Algoritması, RSA, Dijital İmza, Anahtar Dağıtımı, Microsoft .NET, Kriptoloji 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.C# using System; using System.Text; using System.Security.Cryptography; namespace TestConsoleApplication { public class TestUygulaması { static void Main() { string stringData = "MAC Triple DES ile hash işlemi yapılacak !!"; MACTripleDES mac = new MACTripleDES(); mac.Initialize(); Console.WriteLine( Encoding.UTF8.GetString( mac.ComputeHash( Encoding.UTF8.GetBytes(stringData)) ) ); Console.Read(); } } }VB.NETImports System Imports System.Text Imports System.Security.Cryptography Module TestConsoleApplication Sub Main() Dim stringData As String = "MAC Triple DES ile hash işlemi yapılacak !!" Dim mac As New MACTripleDES mac.Initialize() Console.WriteLine(Encoding.UTF8.GetString( mac.ComputeHash( Encoding.UTF8.GetBytes(stringData))) ) Console.Read() End Sub End ModuleC++.NET#include "stdafx.h" #using using namespace System; using namespace System::Text; using namespace System::Security::Cryptography; int _tmain() { String __gc* stringData = S"MAC Triple DES ile hash işlemi yapılacak !!"; MACTripleDES __gc* mac = __gc new MACTripleDES(); mac->Initialize(); Console::WriteLine( Encoding::UTF8->GetString( mac->ComputeHash( Encoding::UTF8->GetBytes(stringData)))); Console::Read(); return 0; }J#package TestConsoleApplication; import System.*; import System.Text.*; import System.Security.Cryptography.*; public class TestUygulaması { public TestUygulaması() { } /** @attribute System.STAThread() */ public static void main(String[] args) { String stringData = "MAC Triple DES ile hash işlemi yapılacak !!"; MACTripleDES mac = new MACTripleDES(); mac.Initialize(); Console.WriteLine( Encoding.get_UTF8().GetString( mac.ComputeHash( Encoding.get_UTF8().GetBytes(stringData) ) ) ); Console.Read(); } } Son Söz: Bu makalemizde kriptografik hash fonksiyonlarından biri olan MACTripleDES algoritmasını ve Microsoft .NET teknolojileri ile nasıl gerçeklenebileceğini inceledik . Bir sonraki makalemizde görüşünceye kadar güvende kalın... İlgili Makaleler: Referanslar: Yazar : Yunus Emre ALPÖZENe-Posta : yunus.alpozen et msakademik.net

Döküman Arama

Başlık :

Kapat