12 Temmuz 2020 Pazar

Kriptografi ve Şifreleme Algoritmaları


Kriptografi Nedir ?

Gizli kodları hazırlama ve bunları kırma bilimidir. Genellikle iletişim güvenliği için kullanılır.

Şifre nedir ?

Şifre kelimesinin kökeni İtalyanca'da "sayı" anlamına gelen cifra kelimesine dayanmaktadır. Her ne kadar parola ile karıştırılsa da ikisi tamamen farklı kavramlardır. Şifre, biraz daha açarsak şifrelenmiş metin; adı üstüne bir metinin çeşitli şekillerde şifrelenmesi ile oluşur. Parolalar ise genelde hesap doğrulaması için kullanılan hesap sahibi dışındaki kişilerin bilmesinin sakıncalı olduğu şifrelenmemiş metinlerdir.

Şifreleme Algoritmaları

Dünyada çok çeşitli ve farklı şifreleme algoritmaları bulunmaktadır. Şimdi bunların birkaçına birlikte göz atalım...

Sezar Algoritması

Metindeki harflerin başka harflerle yer değiştirilmesi tekniğine dayanan bir şifreleme algoritmasıdır. Örneğin 3 harf atlamalı Sezar şifresinde deneme yerine ghrhph yazılır.

DES Algoritması

Yapısı itibari ile bir blok şifreleme örneğidir. Şifrelenecek metini önce bloklara ayırır, ondan sonra şifreleme işlemini gerçekleştirir. Şifrelenmiş metini açmak için yine aynı işlemi uygular. Çalışma mantığı aşağıdaki resimde verilmiştir.



RSA Algoritması

Güvenilirliği çok büyük tam sayılarla işlem yapmanın zorluğuna dayanır. Asimetrik bir şifreleme algoritmasıdır. Adını yapımcıları olan Ron Rivest, Adi Shamir ve Leonard Adleman adlı kişilerin soyadlarının baş harflerinden almıştır.

MD5 Algoritması

En çok kullanılan geri dönüşsüz algoritmalardan biridir.Açlımı"Message Digest 5"

olan bu algoritma Massachusets firmasında görev yapan Ron Rivest tarafından 1991 yılında geliştirilmiştir. MD5 basitçe istenilen boyuttaki mesajı 128 bit uzunluğunda bir sonuç üretir. Üretilen bu mesajı 32 bit uzunluğundan 4 eşit parçaya ayıracak olursak ve bu parçaların her birisine A, B, C, ve D isimleri verilirse MD5 algoritmasının çalışması aşağıdaki şekilde gösterilebilir:


Bugünkü yazımızında sonuna gelmiş bulunmaktayız. Benimle iletişim kurmak için Discord adresimi (Electus#8947) kullanabilirsiniz. Sağlıcakla :)

                                                                                                                                    

                                                                                            Ömer Faruk IŞIK



10 Temmuz 2020 Cuma

Fonksiyonlarda Return



Hepinize merhaba bu yazımızda sizlerle Fonksiyonlarda Return konusunu anlamaya çalışacağız. Ben konuyu C++ üzerinden anlatacağım. Syntax yapısı farklı olsa da çoğu dilde bu mantık aynıdır. O yüzden şimdilik konunun mantığını anlamanız yeterlidir.


Fonksiyon Nedir ?

    Kendisine gönderilen parametreler(girdilere) göre işlem yapan ve çoğu zaman geriye değer döndüren alt programlardır. Karışıklığı önlemek ve bir kodu sürekli tekrarlamamak için kullanılırlar. 

Return Nedir ? Nerelerde Kullanılır ?

Bunu şöyle bir örnekle anlamaya çalışalım:

    Bir ATM'ye gidiyorsunuz ve bir miktar para çekmek istiyorsunuz. Kredi kartınızı yerleştirip bilgilerinizi giriyorsunuz ve çekeceğiniz para miktarını yazıyorsunuz. Makina girilen bilgileri işleyip size hesabınızdan istediğiniz miktarda para verecektir. Bu örneği kod formatına çevirecek olursak,

    ATM'ye girdiğiniz veriler Fonksiyonun aldığı parametreler, Makinanın alınan bu bilgilere göre istenilen parayı vermesi de Fonksiyonun geriye değer döndürmesi olarak nitelendirilebilir.

Nerelerde kullanıldığına gelirsek,

Return komutu sadece geriye değer döndüren fonksiyonlarda kullanılır. Mesela C++ dilinde void türü fonksiyonlar geriye değer döndürmediği için bu tür fonksiyonlarda return kullanılmaz.


Örnek olarak:

Üstteki kodda sayi1 ve sayi2 değerlerini alıp bunları toplam değişkenine aktaran sonra da toplam değişkenini geri döndüren(return) bir fonksiyon yazdık. Sonrasında ise, cout yazdırma metodu ile fonksiyonu çağırdık.

    Fonksiyona geriye toplam değişkenini geri döndürmesini belirtmiştik. O yüzden Fonksiyonu çağırdığımız yazdırma metodunu çalıştırdığımızda 2 ile 3 değerlerinin toplamı olan 5 değerini görürüz.

Bir örnek daha görerek kafamıza iyice oturtalım:


Üstteki kodda bir for döngüsü tanımlayarak sayının kendisi dışında herhangi bir böleni olup olmadığını kontrol ettik. Eğer ki kendisinden başka bir bölen varsa sayı asal olmaz ve fonksiyon false değerini döndürür.

Eğer döngü sonlanır da kendisinden başka böleni bulunmazsa sayı asal olacağı için fonksiyon true değerini döndürür.

Sonrasında ise asal_mi_bool adında bool türünde bir değişken oluşturduk ve bu değişkene asal_mi fonksiyonundan dönen değeri atadık. Ardından yaptığımız sorgular ile eğer değişken değeri true ise sayının asal olduğunu yazdırdık. False ise de sayının asal olmadığını ekrana yazdırdık.


Bu günkü konumuz bu kadardı. Yardımcı olabilmişsem ne mutlu bana. Herhangi bir sorunuz olursa bana Discord adresimden (Ömer#8947) ulaşabilirsiniz. Hepinizin yorumlarını bekliyorum. Sağlıcakla kalın...

                                                                                                                 Ömer Faruk IŞIK

Kriptografi ve Şifreleme Algoritmaları

Kriptografi Nedir ? Gizli kodları hazırlama ve bunları kırma bilimidir. Genellikle iletişim güvenliği için kullanılır. Şifre nedir ? Şifre k...