RSA ŞİFRELEME ALGORİTMASI



Benzer belgeler
RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

RSA ŞİFRELEME ALGORİTMASI VE ARİTMETİK MODÜL UYGULAMASI

SİMETRİK ŞİFRELEME. DES (Veri Şifreleme Standardı, Data Encryption Standard)

Açık Anahtarlı Kriptografi ve Uygulamalar

S. N ala l n n T OP OP A B Ğ Fatih i h A BL B AK K

ERDEMLİ ATL TL METEM EĞİTİM ÖĞRETİM YILI NESNE TABANLI PROGRAMLAMA YILLIK ÖDEVİ

ŞİFRELEME BİLİMİ. Prof. Dr. Şeref SAĞIROĞLU Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Maltepe/Ankara

TODAİE edevlet MERKEZİ UYGULAMALI E-İMZA SEMİNERİ KASIM E-imza Teknolojisi. TODAİE Sunumu

GÜVENLİ HABERLEŞME TEKNİKLERİ

RSA Şifreleme Algoritması Kullanılarak SMS İle Güvenli Mesajlaşma Yöntemi

RSA Şifreleme Algoritması Kullanılarak SMS İle Güvenli Mesajlaşma Yöntemi. Secure Messaging Method With SMS Using RSA Encryption Algorithm

ŞİFRELEME YÖNTEMLERİ

Güncel Kriptografik Sistemler

Simetrik (Gizli) Kriptografik Sistemler Blok Şifreler Standartlaştırma. DES-Data Encryption Standard (Bilgi Şifreleme Standardı)

AES (Advanced Encryption Standard)

Veri Şifreleme Teknikleri Kriptoloji (Cryptology)

Kriptoloji. Alibek Erkabayev Mesleki Terminoloji II

:Bilgiyi şifreli hale dönüştürme işlemidir.

RSA ŞİFRELEME ALGORİTMASININ POLLARD RHO YÖNTEMİ İLE KRİPTANALİZİ

ŞİFRELEME YÖNTEMLERİ

M.Ö lü yıllarda Mısırlı bir katip yazdığı kitabelerde standart dışı hiyeroglif işaretleri kullandı.

RSA Şifreleme Algoritmasının Pollard RHO Yöntemi ile Kriptanalizi

Şifreleme Algoritmalarının Sınıflandırılması ve Algoritmalara Saldırı Teknikleri. Yrd.Doç.Dr.Mehmet Tektaş

Bilgisayar ve Ağ Güvenliği

GÜVENLİ BİR E-POSTA UYGULAMASI: GÜ-POSTA

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Internet te Veri Güvenliği

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

KRİPTO ALGORITMALARININ GELİŞİMİ VE ÖNEMİ

International Journal of Innovative Research in Education

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUVARI LİNEER KRİPTANALİZ

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

MODÜLER ARİTMETİK A)1 B)3 C)8 D)11 E)13. TANIM Z tam sayılar kümesinde tanımlı

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

III. Gizli Anahtar Kriptografi

Kriptoloji Nedir? Elektronik Tehditler Haberleşmede Emniyet Kavramları Basit Şifreleme Yöntemleri Simetrik Kriptografi nedir? Simetrik Kriptografi

ELGAMAL ŞİFRELEME ALGORİTMASINI KULLANAN GÜVENLİ BİR E-POSTA UYGULAMASI: MD MESSAGE CONTROLLER

SİMETRİK VE ASİMETRİK ŞİFRELEME ALGORİTMALARININ KARŞILAŞTIRILMASI. Konya. Konya. Şifreleme bilgisayar ağlarında haberleşme güvenliğini sağlamak için

Temel Şifreleme Yöntemleri. Teknoloji Fakültesi / Bilgisayar Mühendisliği

ŞİFRELEME YÖNTEMİNİN TESPİTİ AMACIYLA ÇEŞİTLİ ŞİFRELEME ALGORİTMALARININ ARAŞTIRILMASI

HSancak Nesne Tabanlı Programlama I Ders Notları

ARALARINDA ASAL SAYILAR

RSA ve Eliptik Eğri Algoritmasının Performans Karşılaştırması

Internet te Veri Güvenliği

ELEKTRONİK İMZADA GÜVENLİK VE STANDARTLAR

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

Demetleme Yönteminin Y 3-Katmanlı Mimari Yapı ile Gerçeklenmesi. eklenmesi. KalacakYer.com

ASİMETRİK ŞİFRELEME ALGORİTMALARINDA ANAHTAR DEĞİŞİM SİSTEMLERİ

public static int Toplam int x, int y

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

Nesneye Dayalı Programlama

Medula Eczane Stok Bilgileri Web Servisleri Kullanım Kılavuzu

NTM ELEKTRİK ELEKTRONİK İNŞ. SAN. VE TİC. LTD. ŞTİ. BİLGİ GÜVENLİĞİ YÖNETİM SİSTEMİ (BGYS)

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta,

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Üst Düzey Programlama

Üst Düzey Programlama

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

MVC. Görüldüğü üzere 2 adet cs. Dosyası oluşturdum. Birincisi çok satır kodu (20-25) içeren büyük işlerin yapılacağı class. İsmi buyuk_isler.

Şifrebilimde Yapay Sinir Ağları

ÇÖZÜM BİLGİSAYAR KOLAY RANDEVU RANDEVU WEB SERVİSLERİ YAZILIM FİRMALARI ENTEGRASYON KILAVUZU Sürüm: 1.0

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Kayıtlı Elektronik Posta e-yazışma Projesi İstemci Kütüphaneleri

Beyhan KARPUZ, Uzman Kütüphaneci Karadeniz Teknik Üniversitesi 2016

KRİPTOLOJİYE GİRİŞ Ders 1. Yrd. Doç. Dr. Barış Koçer

Tanım 5.1.1: n ve d tamsayılar ve d 0 olsun. Eğer n=dq olacak şekilde bir q tamsayısı varsa d sayısı n sayısını böler denir. Burada q sayısına bölüm

API v2 Multi Smart Card ( ) 4- VERİİMZA API ile bir web uygulaması nasıl haberleşir?

Bulut Bilişim Güvenliği için Homomorfik Şifreleme

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

TÜBİTAK KAMU SERTİFİKASYON MERKEZİ EĞİTİM KATALOĞU (2012) Sürüm 1.0

Üst Düzey Programlama

Diziler İndisli Değişkenler

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

SORULAR 1-Simetrik şifreleme sistemi nedir? Asimetrik şifreleme sistemlerine göre avantajları ve dezavantajları nelerdir?

Güvenli Elektronik Belge Yönetim Sistemi İçin Temel Gereksinim: E-İMZA

AKAT oyununda, kırmızı (birinci oyuncu) ve mavi (ikinci oyuncu) şeklinde adlandırılan 2 oyuncu vardır. Oyun şu şekilde oynanır:

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute IActionFilter

4.43. BĠLGĠ GÜVENLĠĞĠ VE RSA ġġfreleme ALGORĠTMASININ ĠNCELENMESĠ. * Hakan ÇAKAR, * Asaf VAROL

TC KİMLİK NO SMS GÖNDERİM SOAP API

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Dr. Akif AKGÜL Oda No: 303 VERİ GİZLEME I HAFTA 3 : ŞİFRELEMENİN TEMELLERİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Timer İle arka plan renk değişimi

DESTEK DOKÜMANI 1.2. MALİ DÖNEM BAĞIMSIZ ÇALIŞMAYA GEÇİŞ İLE BİRLİKTE KARŞILAŞILACAK DEĞİŞİKLİKLER

VIDEOCELL API. Versiyon 1.0.0

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz.

Sunum İçeriği. Programlamaya Giriş

DES ALGORİTMASI KULLANILAN AKILLI KART İLE GÜVENLİK SİSTEMİ TASARIMI ve UYGULAMASI

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Transkript:

RSA ŞİFRELEME ALGORİTMASI İlk defa 1977 yılında Ron Rivest, Adi Shamir ve Leonard Adleman tarafından oluşturulan RSA algoritması geliştiricilerinin soyisimlerinin ilk harfleriyle anılmaktadır. Bu yazımızda RSA algoritmasını ve bu algoritmanın Microsoft.NET teknolojileri ile nasıl gerçeklenebileceğini inceleyeceğiz. Anahtar Sözcükler: Şifreleme Algoritması, RSA, Microsoft.NET, Kriptoloji RSA algoritması, Amerika da 1983 yılında MIT ten patent almıştır. Bu patent 21 Eylül 2000 de son bulmuştur. Ancak patenti daha önce bir uygulamaya ait olduğu için bir başka ülkede patent alınamaz. Bir genel anahtarlı şifreleme tekniği olan RSA, çok büyük tamsayıları oluşturma ve bu sayıları işleminin zorluğu üzerine düşünülmüştür. Anahtar oluşturma işlemi için asal sayılar kullanılarak daha güvenli bir yapı oluşturulmuştur. Anahtar oluşturma algoritması şu şekildedir: P ve Q gibi çok büyük iki asal sayı seçilir. Bu iki asal sayının çarpımı N = P.Q ve bu bir eksiklerinin φ(n)=(p-1)(q-1) hesaplanır. 1 den büyük φ(n) den küçük φ(n) ile aralarında asal bir E tamsayısı seçilir. Seçilen E tamsayısının mod φ(n) de tersi alınır, sonuç D gibi bir tamsayıdır. E ve N tamsayıları genel anahtarı, D ve N tamsayıları ise özel anahtarı oluşturur. Genel ve özel anahtarları oluşturduktan sonra gönderilmek istenen bilgi genel anahtar ile şifrelenir. Şifreleme işlemi şu şekilde yapılmaktadır: Şifrelenecek bilginin sayısal karşılığının E ninci kuvveti alınır ve bunun mod N deki karşılığı şifrelenmiş metni oluşturmaktadır. Genel anahtar ile şifrelenmiş bir metin ancak özel anahtar ile açılabilir. Bu yüzden şifrelenmiş metin, yine aynı yolla, şifrelenmiş metnin sayısal karşılığının D ninci kuvveti alınır ve bunun mod N deki karşılığı orijinal metni oluşturur. Basit bir örnek ile algoritmayı tekrar anlatalım. Örneğin basitliği açısından daha küçük asal sayılarla çalışacağız. Öncelikle genel ve özel anahtarlarımızı oluşturalım. P=7 ve Q=17 gibi iki asal sayı seçelim. Bu iki asal sayının çarpımı N=P.Q; N=119 ve bu iki asal sayının bir eksiklerinin çarpımı φ(n)=(p-1)(q-1); φ(n)=96 olarak hesaplanır. 1 den büyük 96 dan küçük 96 ile aralarında asal bir E=5 tamsayısı seçelim. Seçilen E=5 tamsayısının mod 96 da tersi alınır, sonuç D=77 gibi bir tamsayıdır. 5 ve 119 tamsayıları genel anahtarı, 77 ve 119 tamsayıları ise özel anahtarı oluşturur. Bu algoritmada iki asal sayının çarpımını kullanarak anahtar oluşturulmasının sebebi, iki asal sayının çarpımını asal çarpanlarına ayırmak asal olmayan sayıları ayırmaktan daha zorlu olmasıdır. Şimdi oluşturduğumuz 5, 119 ve 77, 119 anahtarlarımızı kullanarak şifreleme yapalım. Örnek olarak, 19 sayısını genel anahtarımızla 5, 119 şifreleyelim. 19 sayısının 5 inci kuvvetinin mod 119 daki karşılığı olan 66, 19 sayısının RSA şifrelenmiş halidir. Özel anahtarımızı 77, 119 kullanarak 66 nın 77 nci kuvvetinin mod 119 daki karşılığı tahmin de edebileceğiniz gibi 19 dur. İki tamsayının aralarında asal olup olmadığının testi için matematikten de bildiğimiz Öklid algoritması kullanılır. Çok büyük asal sayı oluşturmak oldukça zor bir iştir. RSA ile günümüzde 1024 bitlik bir anahtar (yaklaşık 300 basamaklı bir sayı) basit uygulamalar için yeterli bir şifreleme tekniği olarak kullanılabilir. RSA algoritması, bir şifreleme algoritması için oldukça basit bir algoritmadır. Buna karşın sürekli çok büyük asal sayı oluşturmak oldukça zor bir işlemdir. Asal sayılarının bilinen bir formülü 1

yoktur. RSA algoritmasını biz de yazabiliriz, ancak algoritmanın tüm detaylarıyla teker teker uğraşmak zorunda kalırdık. Bunun için, Microsoft.NET Framework te hali hazırda RSA uygulaması geliştirebilmek için RSA sınıfı bulunmaktadır. Kullanımı oldukça basit olduğu için bir web servisi ile örneklendirebiliriz. Bunun için bir web servisi oluşturalım. Bu web servisine rsa isimli sınıfından bir değişken tanımlayalım. Bu web servisine şifreleme ve deşifreleme için aşağıdaki iki web metodu ekleyelim. C# [WebMethod] public string Encrypt(string stringtoencrypt) byte[] buffer = Encoding.UTF8.GetBytes(stringToEncrypt); return Encoding.UTF8.GetString(rsa.Encrypt(buffer,false)); [WebMethod] public string Decrypt(string stringtodecrypt) byte[] buffer = Encoding.UTF8.GetBytes(stringToDecrypt); return Encoding.UTF8.GetString(rsa.Decrypt(buffer,false)); VB.NET <WebMethod()> _ Public Function Encrypt(ByVal stringtoencrypt As String) As String Dim buffer As Byte() = Encoding.UTF8.GetBytes(stringToEncrypt) Return Encoding.UTF8.GetString(rsa.Encrypt(buffer, False)) End Function <WebMethod()> _ Public Function Decrypt(ByVal stringtodecrypt As String) As String Dim buffer As Byte() = Encoding.UTF8.GetBytes(stringToDecrypt) Return Encoding.UTF8.GetString(rsa.Decrypt(buffer, False)) End Function C++.NET [System::Web::Services::WebMethod] String gc* Encrypt(String gc * stringtoencrypt) Byte buffer[] = Encoding::UTF8->GetBytes(stringToEncrypt); return Encoding::UTF8->GetString(rsa->Encrypt(buffer,false)); [System::Web::Services::WebMethod] String gc* Decrypt(String gc * stringtodecrypt) Byte buffer[] = Encoding::UTF8->GetBytes(stringToDecrypt); return Encoding::UTF8->GetString(rsa->Decrypt(buffer,false)); J# /** @attribute WebMethod() */ public String Encrypt(String stringtoencrypt) ubyte[] buffer = Encoding.get_UTF8().GetBytes(stringToEncrypt); return Encoding.get_UTF8().GetString( rsa.encrypt(buffer,false) ); /** @attribute WebMethod() */ public String Decrypt(String stringtodecrypt) 2

ubyte[] buffer = Encoding.get_UTF8().GetBytes(stringToDecrypt); return Encoding.get_UTF8().GetString( rsa.decrypt(buffer,false) ); Bu iki metot RSA algoritmasını kullanarak şifreleme ve deşifreleme işlemini yapabilmektedir. Ancak bu kodu denerseniz Encrypt metodu ile şifrelediğiniz metni Decrypt ile açamadığınızı göreceksiniz. Bunun sebebi kullanılan anahtarları saklamamızdır. Dikkatinizi çekecek ikinci bir özellikte RSACryptoServiceProvider sınıfının Encrypt ve Decrypt metotlarının ikinci parametresidir. Burada örnek için false verdiğimiz değer, Microsoft Windows XP ve üzeri işletim sistemleri tarafından sağlanan bir özelliktir. OAEP (Optimal Asymmetric Encryption Padding) doldurmanın kullanılıp kullanılmayacağını belirtir. Şimdi System.Security.Cryptgraphy altındaki RSA ve RSACryptoServiceProvider sınıflarını inceleyelim. RSA sınıfı RSA algoritmasını kullanmak isteyen kodların türetilmesi gereken ana sınıfı tanımlar. RSA sınıfı, AsymmetricAlgorithm sınıfından türeyen soyut bir sınıftır. Bu sınıfın erişilebilir özellikleri şunlardır: KeyExchangeAlgorithm, anahtar değişimi algoritmasının ismini belirtir. RSA için RSA- PKCS1-KeyEx tir. KeySize, şifreleme ve deşifreleme için kullanılacak anahtarların kaç bitten oluşacağını gösterir. Bu özelliğin değerini değiştirerek, kullanılacak bit sayısını ayarlayabilirsiniz. Varsayılan anahtar boyutu 1024 bittir. LegalKeySize, bu algoritma tarafından desteklenen geçerli anahtarlar bit olarak büyüklüğünü gösterir. RSA algoritması için anahtar büyüklüğü en az 384 bit en fazla 16384 bittir. 16384 bit 2KB büyüklüğünde bir anahtar anlamına gelmektir. Bu da yaklaşık 5000 basamaklı bir sayı anlamına gelmektedir. SignatureAlgorithm, imzalama için kullanılacak algoritmanın adını gösterir. RSA için http://www.w3.org/2000/09/xmldsig#rsa-sha1 dir. Bu sınıfın erişilebilir metotları ise şunlardır: Clear, RSA tarafından kullanılan tüm kaynakları sisteme geri verir. Create, RSA'nın özel uygulamalarının yazıldığı durumlarda nesnenin oluşturulduğunda yapılacak işleri içerir. DecryptValue, özel anahtar ile verilen bilgiyi deşifrelemek için kullanılır. EncryptValue, genel anahtar ile verilen bilgiyi şifrelemek için kullanılır. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. ExportParameters, RSA'in tüm parametreleri özel ve genel anahtarlar dahil RSAParameter yapısından bir nesne içine kaydeder. FromXmlString, XML Deserileştirme gibidir. ToXMLString metodu ile XML'e aktarılmış nesneyi yeniden oluşturur, nesneyi XML'e yüklenmeden önceki durumuna getirir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. ImportParameters, RSAParameters yapısından bir nesne içindeki, RSA'nın kullanacağı tüm parametreleri özel ve genel anahtarları dahil geri yükler. ToString, şu anki nesneyi ifade eden bir metin oluşturur. ToXmlString, XML Serileştirme gibidir. Nesnenin o anki durumunu yeniden oluşturulabilecek bir şekilde XML'e aktarır. 3

Şimdi, RSA sınıfından bahsederken ismi geçen RSAParameters yapısını inceleyelim. Bu yapı da yine System.Security.Cryptography altında yer almaktadır. Bu yapının en önemli özelliği serileştirilebiliyor olmasıdır. Bu özelliği sayesinde Binary(ikili) ve ya XML olarak bu yapıyı serileştirip, aktarabiliriz. Bu yapı içerisinde algoritmayı anlatırken kullandığımız P ve Q gibi semboller ile ifade ettiğimiz algoritmanın temel parametreleri yer almaktadır. Örneklerimizde de yer alan RSACryptoServiceProvider sınıfı ise doğrudan RSA şifrelemesi için kullanılacak sınıfı ifade eder. Bu sınıf biraz evvel bahsettiğimiz RSA sınıfından türeyen 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 sınıfın erişilebilir özellikleri şunlardır: KeyExchangeAlgorithm, anahtar değişimi algoritmasının ismini belirtir. RSA için RSA- PKCS1-KeyEx tir. KeySize, şifreleme ve deşifreleme için kullanılacak anahtarların kaç bitten oluşacağını gösterir. Bu özelliğin değerini değiştirerek, kullanılacak bit sayısını ayarlayabilirsiniz. Varsayılan anahtar boyutu 1024 bittir. LegalKeySize, bu algoritma tarafından desteklenen geçerli anahtarlar bit olarak büyüklüğünü gösterir. RSA algoritması için anahtar büyüklüğü en az 384 bit en fazla 16384 bittir. 16384 bit 2KB büyüklüğünde bir anahtar anlamına gelmektir. Bu da yaklaşık 5000 basamaklı bir sayı anlamına gelmektedir. PersistKeyInCsp, anahtarın CSP (Cryptographic Service Provider) içerisinde kalıcı olarak tutulup tutulmayacağını belirten özelliktir. Bu özelliğin değerini değiştirerek dışarıdan bu özelliği aktif/pasif kılabilirsiniz. SignatureAlgorithm, imzalama için kullanılacak algoritmanın adını gösterir. RSA için http://www.w3.org/2000/09/xmldsig#rsa-sha1 dir. UseMachineKeyStore, PersistKeyInCsp ile bilgisayar üzerinde kalıcı olarak tutulması istenen anahtarları o an ki kullanıcı profilinde mi yoksa tüm kullanıcılar için ortak olan bir yerde mi tutulacağını belirtir. Bu sınıfın erişilebilir metotları ise şunlardır: Clear, RSA tarafından kullanılan tüm kaynakları sisteme geri verir. Decrypt, RSA algoritması ile verilen bilgiyi deşifre eder. DecryptValue, özel anahtar ile verilen bilgiyi deşifrelemek için kullanılır. Ancak Microsoft.NET Framework ün 1.1 versiyonunda bu metot desteklenmemektedir. Encrypt, RSA algoritması ile verilen bilgiyi şifreler. EncryptValue, genel anahtar ile verilen bilgiyi şifrelemek için kullanılır. Ancak Microsoft.NET Framework ün 1.1 versiyonunda bu metot desteklenmemektedir. Equals, iki nesnenin birbirine eşit olup olmadığını test eder. ExportParameters, RSA'in tüm parametreleri özel ve genel anahtarlar dahil RSAParameter yapısından bir nesne içine kaydeder. FromXmlString, XML Deserileştirme gibidir. ToXMLString metodu ile XML'e aktarılmış nesneyi yeniden oluşturur, nesneyi XML'e yüklenmeden önceki durumuna getirir. GetHashCode, bellekteki o nesneye özgü bir hash kodu oluşturur. GetType, bu nesnenin tipini verir. ImportParameters, RSAParameters yapısından bir nesne içindeki, RSA'nın kullanacağı tüm parametreleri özel ve genel anahtarları dahil geri yükler. SignData, verilen bilginin hash değerini hesaplar ve bu değer ile veriyi imzalar. 4

SignHash, belirtilen hash değeri için imzayı hesaplar ve özel anahtar ile bu bilgiyi şifreler. ToString, şu an ki nesneyi ifade eden bir metin oluşturur. ToXmlString, XML Serileştirme gibidir. Nesnenin o anki durumunu yeniden oluşturulabilecek bir şekilde XML'e aktarır. VerifyData, belirtilen bilgi için imzayı tekrar hesaplayıp var olan imza ile karşılaştırır. VerifyHash, belirtilen hash değeri için imzayı tekrar hesaplayıp var olan imza ile karşılaştırır. RSA şifreleme tekniğini algoritmik olarak incelediğimiz bu makalemizde, RSA sınıfının kullanımından bahsettik. Bir sonraki makalemizde RSA anahtarlarının dağıtımı ve RSA kullanarak dijital imza oluşturmayı inceleyeceğiz. Bir sonraki makalemizde görüşünceye kadar güvende kalın... Yunus Emre ALPÖZEN 25.03.2005 5