17 Mayıs 2009 Pazar

Kriptolojideki Düzen:Algoritma...

Öncelikle kriptolojiyi düşüncesini uygulanabilir hale getirmek için, onu belirli bir düzene göre sıralayıp, her adımın birbirini takip ederken aynı zamanda etkide bulunduğu bir sistem yaratmalıyız. İşte algoritma, bu noktada kriptolojiye bir rehber olur. Karmakarışık bir düzene sahip olan bir şehirdeki bir yabancıyı düşünün. Ona bir yere ulaşması için bir yol tarifi vermeniz gerekiyor. Fakat ne yazık ki her sokak birkaç cümleyle ifade edemeyeceğiniz kadar ters noktalarda. Bu nedenle adım adım ve her adımı birbiriyle bağlantılı bir tarifte bulunmanız gerekiyor. Belki de tarifinizi bir krokide ifade etmeniz daha kolay. İşte soyut olarak düşündğümüz bu krokinin şemasal haline algoritma diyoruz. Tabiiki bu en basit tanımı olarak karşınızda. Şunu da düşünmemiz gerek ki: "eğer o yol kapalıysa bu yolu seç" tanımında adımlarımızda olabilirdi. Yani bir çok gereklilikler ve şartlar tarifimize etkide bulunabilirdi. Sonuç olarak algoritma: Belli bir durumdan başlayarak sonlu sayıda adımda belli bir sonucu elde etmenin yöntemini tarif eden iyi tanımlanmış kurallar kümesidir. Algoritmalar özel durumlara çözüm sunmazlar. Genel çözümlerin işlem basamaklarını içerirler. Başka bir örnek olarak:

I. Yoğurdu bir kaba koy
II. Karıştır
III. Aynı miktarda su ilave et
IV. Biraz tuz ekle
V.Tekrar karıştır


Yada şemasal olarak göstermemiz gerekirse:




Bunların yanı sıra kaynağını matematikten alan algoritmanın matematiksel uygulamalarına da örnek verilebilir:

Sonucu bir matematik problemin çözümü olan başka bir basit örnek de Öklid'in ortak bölenlerin en büyüğünü bulan algoritmasıdır.
giriş: iki sayı m, n
1. eğer n = 0 ise, sonuç m dir
2. m'nin yerine n koy, n nin yerine m%n koy, tekrar 1'den başla.
Bu örnekte m%n bölmenin kalanıdır, yani 5%2 = 1'deki gibi. Algoritmayı 33 ve 15'e uygulayalım:
33,15
15,3
3,0
sonuç 3

Bir başka ve algoritma için son olan örnek ise, bigisayar... Her türlü yazılım ve bilgisayar için geçerli olan denklemler bu yolla yapılmaktadır:

A0 --> Başla
A1 --> Sayaç=0 (Sayaç'ın ilk sayısı 0 olarak başlar.)
A2 --> Sayı=? : T=T+Sayı (Sayıyı giriniz. T'ye sayıyı ekle ve T'yi göster.)
A3 --> Sayaç=Sayaç+1 (Sayaç'a 1 ekle ve sayacı göster.)
A4 --> Sayaç<4> O=T/4 (Ortalama için T değerini 4'e böl)
A6 --> O'yu göster. (Ortalamayı göster.)
A7 --> Dur

Algoritmanın kriptolojiyle ilgisi basit olarak ortadadır. Kriptoloji anahtarını kullanarak bir kapıyı kilitlemek ya da açmak için, anahtarın dişlerinin algoritmaya göre kalıplanmış olması gerekmetedir. Kısacası, Kriptolojideki işlem bütünlüğünü sağlayabilmek için gerekli olan "ifade biçimi" algoritmadır. Başka bir deyişle kriptoloji şifreleme algoritmasının uygulamasıdır.

Artık inceleme alanımız biraz daha detaylandırılabilir. Fakat yeni başlığımıza geçmeden önce, algoritmanın örneklerini çoğaltarak düşüncelerimizi daha oturaklı ve yaratmaya müsait hale getirebilceğimizi düşünüyorum. İşte bir kaç örnek daha:

Algoritma Akış Şeması

Adım 1-Başla
Adım 2-A,B'yi oku
Adım 3-A=B ise Adım 7'ye git
Adım 4-A>B ise Adım 6'ya git
Adım 5-B'yi yaz Adım 8'e git
Adım 6-A'yı yaz Adım 8'e git
Adım 7-"A veB eşit"mesajını yaz
Adım 8-DUR



Bir okulda bulunan 10 sınıftaki 30'ar öğrencinin herbirinin 12 şer dersten aldıkları
notların ortalamasını bulan ve öğrenci ismi ile not ortalamasını yazan programın,algoritması ve
akış şeması şöyledir:

Değişkenler

ISS:Sınıf sayacı,
IOS:Öğrenci sayacı,
DN:Ders notu,
DNS:Ders notu sayacı,
DNT:Ders notlarının toplamı,
DNO:Ders notlarının ortalaması,
OGAD:Öğrencinin adı

Algoritma


Adım 1-Başla
Adım 2-SS=0
Adım 3-IOS=0
Adım 4-DNS=DNT=0
Adım 5-OGAD oku
Adım 6-DN oku
Adım 7-DNS=DNS+1(ders notu sayacı 1 artır.
Adım 8-DNT=DNT+DN(notları topla)
Adım 9-Eğer DNS<12 dno="DNT/12(ortalamayı" ios="IOS+1(öğrenci" iss="ISS+1(sınıf">

Akış şeması

Hiç yorum yok:

Yorum Gönder