Hackhell Forum 1,216,503 Üye | 459,784 Konu | 4,517,734 Mesaj | 2408 Online

Go Back   Hackhell Forum > Security - Güvenlik > Kriptoloji

SHA1 (Secure Hash Algorithm)

 Security - Güvenlik Katagorisinde ve  Kriptoloji Forumunda Bulunan  SHA1 (Secure Hash Algorithm) Konusunu Görüntülemektesiniz.=>Veri üzerinde yapılacak çok küçük bir değişiklik, çok büyük ve önceden kestirilemez değişikliklere yol açar. Bu yüzden SHA1 oldukça güvenli ...


Cevapla
 
LinkBack Seçenekler Stil
Alt 25-09-2008, 08:15 PM   #1
DarkCod3r
Key&RC4 Coder
 
DarkCod3r - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Aug 2007
Bulunduğu yer: Artık YENİ bi SOLUK
Mesajlar: 1,614
reklam@hackhell.com
Teşekkürleri: 570
813 mesajına 2,827 kere teşekkür edildi.
DarkCod3r - MSN üzeri Mesaj gönder
pcdepo
Post SHA1 (Secure Hash Algorithm) SHA1 (Secure Hash Algorithm)









Veri üzerinde yapılacak çok küçük bir değişiklik, çok büyük ve önceden kestirilemez değişikliklere yol açar. Bu yüzden SHA1 oldukça güvenli olarak tanımlanmaktadır. NSA(National Security Agency[Ulusal Güvenlik Ajansı]) tarafından tasarlanmış, NIST(National Institute of Standards and Technology[Ulusal Standartlar ve Teknoloji Enstitüsü]) tarafından yayınlanmıştır. 264 bitlik bir bilgiden 160 bitlik bir mesaj çıkartabilmektedir.

Algoritmanın orjinali 1993 yılında Secure Hash Standart, FIPS PUB 180 ismiyle ilk defa özellikleri tanımlanmıştır. Bu versiyonu genellike SHA-0 olarak anılmaktadır. Kısa bir süre sonra NSA tarafından geri alınmış, yayımlanan özellikleri tekrardan gözden geçirilmiş ve 1995 yılında FIPS PUB 180-1 ismiyle yeniden yayımlanmıştır. Bu versiyonu da daha çok SHA-1 olarak anılmaktadır. NSA tarafından iki algoritma arasındaki fark kriptografik güvenliği tehlikeye atan bir akış olarak açıklanmıştı. Bunun dışında, NSA tarafından ek bir açıklama yapılmamıştır. Çok sonra, 1998 yılındaki bir kriptoloji konferansında iki fransız araştırmacı F. Chabaud and A. Joux SHA-0 üzerinde bir saldırı örneği sundular. Aynı saldırı SHA-1 üzerinde uygulanamamıştır. Bunun sebebi NSA’nın belirttiği akış olduğu söylenmiştir. Daha sonra bir çok kriptografi topluluğu tarafından detaylı olarak incelenen SHA-1 üzerinde herhangi bir açık noktaya rastlanamamıştır.

Microsoft .NET Framework’ te SHA1, kendisi gibi soyut bir sınıf olan HashAlgoritm sınıfından türeyen SHA1 sınıfı ile tanımlanmıştır. SHA1CryptoServiceProvider yönetilmeyen, SHA1Managed ise yönetilen SHA1 algoritması implementasyonu içerir. Microsoft .NET Framework’ te, SHA1 algoritması için hash boyutu 160 bittir.
SHA1CryptoServiceProvider ve SHA1Managed sınıfları SHA1 soyut sınıfından türemektedirler. SHA1 soyut sınıfını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 160 bittir. InputBlockSize, kullanılan veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir. 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, SHA1 algoritması tarafından kullanılan kaynakları sisteme geri verir. ComputeHash, kullanılan veri bloğu için hash değerini hesaplar. Create, SHA1 algoritmasını gerçekleştirecek bir nesne oluşturur. 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, SHA1 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.SHA1Managed, SHA1 sınıfından türer ve SHA1 algoritmasının yönetilen implementasyonu içerir. SHA1CryptoServiceProvider ile aynı özelliklere ve metotlara sahiptir. Aralarındaki fark yönetimsel olup olmamalarıdır. Ayrıca SHA1CryptoServiceProvider mühürlü bir sınıftır. Mühürlü sınıf, hiç bir sınıfın kendisinden türetilemeyeceğini ifade eder. Bu iki sınıfın erişebilir özellikleri şunlardı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 160 bittir. InputBlockSize, kullanılan veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir. OutputBlockSize, algoritma sonunda oluşacak veri bloğunun bit olarak büyüklüğünü gösterir. Varsayılan değeri 1 bittir.Bu iki sınıfın erişilebilir metotları ise şunlardır:
Clear, SHA1 algoritması tarafından kullanılan kaynakları sisteme geri verir. ComputeHash, kullanılan veri bloğu için hash değerini hesaplar. Create, SHA1 algoritmasını gerçekleştirecek bir nesne oluşturur. 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, SHA1 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.SHA1 algoritması için, tabi ki de doğru olan SHA1CryptoServiceProvider yerine SHA1Managed kullanımak olacaktır. SHA1 algoritmasını gerçekleyen SHA1Managed sınıfını basit bir örnekle açıklayacağız. Ancak dikkat etmemiz gereken önemli bir nokta var. Veri üzerinde çok küçük bir değişiklik yapıyoruz ama sonuç olarak çok farklı iki hash değeri üretilmektedir. Yapılan tek değişiklik “SHA1” ’in “sHA1” şeklinde yazılmasıdır.
C#using System; using System.Text; using System.Security.Cryptography; namespace TestConsoleApplication { public class TestUygulaması { static void Main() { string stringData = "SHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; SHA1Managed sha1 = new SHA1Managed(); sha1.Initialize(); Console.WriteLine( Encoding.UTF8.GetString( sha1.ComputeHash(Encoding.UTF8.GetBytes(stringData )))); stringData ="sHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; Console.WriteLine( Encoding.UTF8.GetString( sha1.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="SHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!" Dim sha1 As New SHA1Managed sha1.Initialize() Console.WriteLine(Encoding.UTF8.GetString( _ sha1.ComputeHash(Encoding.UTF8.GetBytes(stringData )))) stringData = "sHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!" Console.WriteLine(Encoding.UTF8.GetString( _ sha1.ComputeHash(Encoding.UTF8.GetBytes(stringData )))) Console.Read() End Sub End ModuleC++.NET#include "stdafx.h" #using <mscorlib.dll> using namespace System; using namespace System::Text; using namespace System::Security::Cryptography; int _tmain() { String __gc* stringData = S"SHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; SHA1Managed __gc* sha1= __gc new SHA1Managed(); sha1->Initialize(); Console::WriteLine( Encoding::UTF8->GetString( sha1->ComputeHash( Encoding::UTF8->GetBytes(stringData)))); stringData = S"sHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; Console::WriteLine( Encoding::UTF8->GetString( sha1->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 = "SHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; SHA1Managed sha1 = new SHA1Managed(); sha1.Initialize(); Console.WriteLine( Encoding.get_UTF8().GetString( sha1.ComputeHash(Encoding.get_UTF8().GetBytes(stri ngData)))); stringData = "sHA1 ile çok daha büyük boyutları veri üzerinde hash işlemi yapılabilir !!"; Console.WriteLine( Encoding.get_UTF8().GetString( sha1.ComputeHash(Encoding.get_UTF8().GetBytes(stri ngData)))); Console.Read(); } }NIST, SHA algoritmasını değişik uzunlukta çıktı üreten başka varyasyonlarını yayımladılar. SHA’nın bu versiyonları ürettikleri çıktının boyutları ile anılmıştır: SHA-256, SHA-384, ve SHA-512. Bu versiyonları da 2001 yılında FIPS PUB 180-2 ismiyle yayımlanmıştır. SHA-1, SHA-256, SHA-384 ve SHA-512 algoritmaları Birleşik Devletlerin Federal uygulamalarında kullanılabilecek kadar güvenli olarak tanımlanmıştır.

Son Söz: SHA256 soyut sınıfı HashAlgorithm sınıfından türemiştir ve 256 bitlik anahtar kullanarak yapılır. SHA256Managed sınıfı da SHA256 soyut sınıfından türemiştir. SHA384 soyut sınıfı da HashAlgorithm sınıfından türemiştir ve 384 bitlik anahtar kullanarak yapılır. SHA384Managed sınıfı da SHA384 soyut sınıfından türemiştir. SHA512 soyut sınıfı HashAlgorithm sınıfından türemiştir ve 512 bitlik anahtar kullanarak yapılır. SHA512Managed sınıfı da SHA512 soyut sınıfından türemiştir. Bu sınıfların da tüm özellikleri ve metotları ile SHA1 sınıfı ile aynıdır. Bir sonraki makalemizde görüşünceye kadar güvende kalın...
İlgili Makaleler:
Referanslar:
Yazar : Yunus Emre ALPÖZEN
e-Posta : yunus.alpozen et msakademik.net
DarkCod3r isimli üyemiz çevrimdışıdır. (Offline)  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Mesajı Spurl ile Paylas!
Alıntı ile Cevapla



Tüm yerli ve yabancı diziler HHİzle'de siz dizi severler ile buluşuyor.

Cevapla

Etiketler
algorithm, hash, secure, sha1

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 01:55 PM.

Forum Yasal Uyarı HH
Kullanılan Portal Sürümü : HH Portal
Script Sürümü : vBulletin Version 3.8.4 PL1
Seo Yazılımı : vBSEO ©2009, Crawlability, Inc
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Sitemiz Internet Explorer 6+, Firefox 2.0.0.14+, Opera 9.52+, Safari 3.1.2+, Chrome 0.2.153.1+ ve 1024x768+ Ekran Çözünürlüğünde Test Edilmiştir.

Sponsor Bağlantı : dövme | mirc indir | dövme | mirc | sohbet | sohbet | msn show
Sitemiz, hukuka, yasalara, telif haklarına ve kişilik haklarına saygılı olmayı amaç edinmiştir. Sitemiz, 5651 sayılı yasada tanımlanan .yer sağlayıcı. olarak hizmet vermektedir. İlgili yasaya göre, site yönetiminin hukuka aykırı içerikleri kontrol etme yükümlülüğü yoktur. Bu sebeple, sitemiz .uyar ve kaldır. prensibini benimsemiştir. Telif hakkına konu olan eserlerin yasal olmayan bir biçimde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahipleri veya meslek birlikleri, abuse@hackhell.com mail adresinden bize ulaşabilirler. Buraya ulaşan talep ve şikayetler Hukuk Müşavirimiz tarafından incelenecek, şikayet yerinde görüldüğü takdirde ihlal olduğu düşünülen içerikler sitemizden kaldırılacaktır. Ayrıca, mahkemelerden talep gelmesi halinde hukuka aykırı içerik üreten ve hukuka aykırı paylaşımda bulunan üyelerin tespiti için gerekli teknik veriler sağlanacaktır.
Valid CSS!