Vikipedi:Deneme tahtası: Revizyonlar arasındaki fark

İçerik silindi İçerik eklendi
Ali Öden (mesaj | katkılar)
Değişiklik özeti yok
Egeyam (mesaj | katkılar)
Sayfa içeriği ' {{/Bu satırı değiştirmeden bırakın}} 16w1ş2ıeug12,pıee' ile değiştirildi
1. satır:
== SSL/TLS Arasındaki Farklılıklar ==
<br />ecdat
 
1. TLS protokol versiyon bölümündeki majör kısmı 1, minör kısmı 0’dır. Mesaj tipi 43 - 274
3. Mesaj kimlik denetimi (Message authentication): Bu alan SSL’ deki MAC’in (Message authentication code) geliştirilmiş halidir. SSL’de anahtar bilgisi ile uygulama verisinin birleştirilmesinden MAC oluşturuluyordu. TLS’de ise veri ve anahtar bilgisi, birleştirdikten sonra hash algoritmasından (MD5, SHA gibi) geçirilerek hash değeri oluşturulur. Bu hash değeri ile anahtar bilgisi ve bir sonraki veri ile birleştirilen paketin sonuna eklenir. <br />
 
4. Anahtar materyali üretimi (KeyMaterial Generation): TLS’ te anahtar üretimi için H-MAC standartı ve onun rastgele sayı fonksiyonu (pseudorandom function-PRF) kullanılır. Her sistem en başta paylaşılan ana şifre (pre-master secret) kullanılır sonra her iki taraf da kendi özel anahtarlarını üretirler. Bunu da oturum anlaşmasında (session negotion), şifreleme takımları (CipherSuite) ve parametreleri ile sağlarlar. Ayrıca SSL’de bu üretimde kullanılan RSA, Diffie Hellman ve Fortezza algoritmalarından Fortezza algoritması TLS’te kullanılmaz.<br />
 
5. Sertifika doğrulama (CertificateVerify): SSL’de sertifika doğrulaması için komplex bir mesaj yapısı kullanılırken TLS’te daha basit bir doğrulama kullanılır. Doğrulama bilgisi el sıkışma mesajlarının içinde oturumdan önce gönderilir. TLS master secret (ana şifre) ve key material (anahtar materyali) oluşturmak için PRF (pseudorandom function) kullanır.<br />
 
6. Sonlandırma (Finished): TLS’te H-MAC’in PRF (pseudorandom function) çıkışı master secret (ana şifre) ve client ya da server finished mesajı, sonlandırma mesajı olarak atanır. Yani handshake mesajını sonlandırmak için PRF kullanılır.<br />
 
7. Temel Şifrelemeler (Baseline Cipher Suites): SSL, Fortezza/DMS içerirken TLS bu algoritmayı içermez.<br />
<ref>https://tr.wikipedia.org/wiki/Secure_Sockets_Layer</ref>
<ref>http://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake</ref>
 
 
 
{{/Bu satırı değiştirmeden bırakın}}
RSA çok büyük tam sayılarla işlem yapmanın zorluğuna dayanan bir tekniktir.Yani RSA algoritmasını kullanan kişi 2 büyük asal sayı seçer ve bunları saklar.Bu iki asal sayının çarpımı elde edip , random seçtiği başka bir değer ile birlikte ortak anahtar olarak belirler.Ortak anahtarı kullanan başka bir kullanıcı şifreleme yapabilir bu durumda bu mesajın şifresinin çözülüp anlamlı hale getirilebilmesi için ortak anahtar yeterince büyük olduğundan bu büyük sayının ortak çarpanlarının bilinmesi gerekir.Yani aslında RSA çarpanlara ayırma ile birebir ilişkilirdir ki bu algoritma açık anahtarlı şifrelemeyi kullanır.Açık anahtarlı şifrelemede (asimetrik şifreleme) açık anahtarla şifreleme ve gizli anahtarla deşifreleme yapılmasını kolayca gerçekleştirilirken; yalnızca açık anahtarı (iki sayının çarpımını ) bilerek gizli anahtarın bulunmasını zor kılar (büyük olan bu sayının çarpanlarının bilinmesi gerekir) .
RSA 3 basamakta gerçekleştirilir.Bunlar:
1.Anahtar Üretimi(2 büyük asal sayının çarpımı ve random seçilmiş bir sayı ile ortak anahtar üretilmesi)
2.Şifreleme(Oluşan ortak anahtarı kullanan başka bir kullanıcı şifreleme yapabilir)
3.Şifre Çözme(Şifrenin çözülmesi için ortak anahtarın çarpanlarının bilinmesi gerekir)
Özet olarak;
Tamamen random olarak ve birbirine yakın iki asal sayı seçilir.Bu sayılar tutulur.
Mod n olacak şekilde ; n=p*q ve m(=(p-1)*(q-1) çarpımları hesaplanır.
1<e<m arasında bir e tamsayısı seçilir.Öyle ki e ve m’nin en büyük ortak böleni 1 olsun.
Genel üs olarak kullandığımız e ve m sayıları kullanılarak gizli üs d hesaplanır (1<d<m) (Örneğin ed≡1(mod m)).
Genel anahtar (n,e) ve özel anahtar (n,d)’dir. p,q ve m değerleri de gizli tutulmalıdır.
.NET framework teknolojisinde kullanan RSA algoritmasına bakacak olursak
byte[] dataToEncrypt = ByteConverter.GetBytes("Sifrelenecek Veri");
Şifrelenmiş ve deşifrelenmiş olan verilerin tutulduğu veri tanımları yapılır.
byte[] encryptedData;
byte[] decryptedData;
1024 uzunluğunda RSACryptoServiceProvider sınıfından nesne üretilir.
 
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(1024);
 
Aşağıdaki RSAEncrypt metodu veriyi şifrelemeyi sağlar.
Metottaki ilk parametre şifrelenecek veridir.Byte array şeklindedir.
Metottaki ikinci parametre (RSAalg.ExportParameters(false))anahtar bilgisinin dışa verilip verilmeyeceğini ifade eder.false olarak değer atanmışsa public anahtar dışa verilir,true olarak değer atanmışsa public ve private anahtarlar dışa verilir.Kodumuzda false olarak değer atandığı için sadece public anahtar dışa verilir.
Metottaki üçüncü parametre boolean bir değerdir.Padding mode olarak isimlendirilir.Padding boolean değerinin kullanılması gereklidir çünkü metoda gönderilen verinin şifrelenecek verinin tamamının olup olmadığını bu flag değerinden anlarız.Şifrelenecek veri çok büyük boyutlarda olabilir bu da verinin bloklara bölünmesini gerektirir.Bloklara bölünen verinin tamamının şifrelendiği bu flag değerden anlaşılır.Eğer padding değeri true
ise bu halde gelişmiş OAEP 16 kullanılır.Aksi takdirde geleneksel PKCS 1 v1.5 kullanılır.
 
encryptedData = RSAEncrypt(dataToEncrypt,RSAalg.ExportParameters(false), false);
 
Aşağıdaki decryptedData metodu veriyi deşifrelemeye sağlar.
Metottaki ilk parametre deşifrelenecek veridir.Byte array şeklindedir.
Metottaki ikinci parametre (RSAalg.ExportParameters(true))anahtar bilgisinin dışa verilip verilmeyeceğini ifade eder.false olarak değer atanmışsa public anahtar dışa verilir,true olarak değer atanmışsa public ve private anahtarlar dışa verilir.Kodumuzda true olarak değer atandığı için private ve public anahtar dışa verilir.
Metottaki üçüncü parametre boolean bir değerdir.Padding mode olarak isimlendirilir.Padding boolean değerinin kullanılması gereklidir çünkü metoda gönderilen verinin şifrelenecek verinin tamamının olup olmadığını bu flag değerinden anlarız.Şifrelenecek veri çok büyük boyutlarda olabilir bu da verinin bloklara bölünmesini gerektirir.Bloklara bölünen verinin tamamının şifrelendiği bu flag değerden anlaşılır.Eğer padding değeri true
ise bu halde gelişmiş OAEP 16 kullanılır.Aksi takdirde geleneksel PKCS 1 v1.5 kullanılır.
 
lütfen ondalıklı sayılar ilgii bilgi yazın
 
16w1ş2ıeug12,pıee
decryptedData = RSADecrypt(encryptedData,RSAalg.ExportParameters(true), false);