İPUCU

Kriptografi - Şifreleme Şifreleme Ve Şifreleme Sistemleri Hakkında Her şey.

Seçenekler

Vigènere Kriptografi AXPA~THT (Kali Linux Kulübü)

09-05-2018 04:00
#1
AXPA - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
Turkey
Mesajlar:
934
Teşekkür (Etti):
229
Teşekkür (Aldı):
280
Konular:
60
Vigènere Kriptografi



Hatırlanacağı gibi Sezar şifrelemesinde, her bir harf belli sayıda kaydırılarak bir şifre alfabe elde ediliyordu. Şifreleme işlemi boyunca tek bir şifre alfabe kullanıldığı için bu aileden algoritmalar tek alfabeli, düz metindeki her bir harf bir şekilde başka bir harf ile yer değiştirildiği için bu aileden algoritmalar ikame algoritmaları olarak isimlendirilmişti.

Tek alfabeli ikame algoritmaları için genel şifreleme fonksiyonu

En=x+n (mod 29)

deşifre fonksiyonu

Dn=x-n (mod 29)

şeklinde verilmişti. Kaydırma değeri 3 olduğu durumda, orijinal Sezar şifrelemesi elde ediliyordu. İlginç olan şu ki, Türkçe alfabe ile tekil alfabeli üretilecek şifrelerin sayısı 10 üzeri 30 mertebesindedir (milyar kere trilyon kere trilyon). Fakat bütün tekil alfabeli bütün şifreleme metodlarının en zayıf noktası, frekans analizidir. Şifre kırarken frekans analizinden ilk bahseden, Risale fî İstihrâc’ul Muammâ (Şifreli Mesajların Deşifre Edilmesi Hakkında Kitapçık) adlı el yazmasında, Kindî’dir. Şöyle diyor:

“Şifreli bir mesajı çözmenin yollarından biri de, eğer hangi dilde yazıldığını biliyorsak, aynı dilde yazılmış bir yaprak veya yaklaşık uzunlukta başka bir metin bulmak ve harflerin bulunma sıklıklarını saymaktır. En sık geçen harfi birinci, ikinci en sık geçeni ikinci… olarak işaretleriz ve böylece düz metindeki bütün harfleri işaretlemiş oluruz.

Daha sonra çözmek istediğimiz şifreli mesajı alırız ve ondaki sembolleri sınıflandırırız. En sık geçem sembolü alır ve düz metinde en sık geçen harf ile yer değiştiririz ve böylece bütün harfleri eşleştirmiş oluruz.”

Farklı dillerde harflerin geçme sıklıklarına dair çok fazla çalışma yapılmıştır. Türkçe metinler için Serengil ve Akın’ın şu çalışmasına bakılabilir:




Veya daha iyisi, Zemberek sözlüğü üzerinde yazılacak kısa bir programla, harf sıklıkları hesaplanabilir. Bu çalışma, bir adım ileri götürülerek, sözlük çeşitli internet siteleriyle (mesela haber siteleri) beslenerek daha doğru ve güncel bir frekans listesi oluşturulabilir.

Frekans analizine karşı geliştirilmiş metodlardan biri, çoklu alfabe kullanımıdır ve bu aileden algoritmaların atası Vigènere şifrelemesidir.


Klasik Vigènere tablosu şu şekildedir:





Dikkat edilirse bu, alfabedeki harf sayısı kadar, kaydırma değeri bir olan Sezar şifre alfabenin oluşturulması işlemidir. Daha sonra bir anahtar seçilir. Anahtarımız “cezeric” olsun.

Anahtar : cezeric

Düz Metin : merhaba

Şifrelenmiş Metin : oıplrjc

Eğer anahtar düz metinden kısaysa, anahtar düz metinle aynı boya gelene kadar tekrar tekrar yazılır. Daha sonra şifreleme şu şekilde yapılır: Aynı sırada, anahtardaki harf satır, düz metindeki harf sütun olacak şekilde kesişimi bulunur ve şifrelenmiş harf elde edilir.

Çoklu alfabeler için şifreleme fonksiyonu

En= Mn+Kn mod l (mod 29)

Deşifre fonksiyonu

Dn=En- Kn mod l (mod 29)

Burada M düz metin mesajı, K anahtarı, l anahtar uzunluğunu belirtir.

Çoklu alfabe şifrelemelerinin deşifresiyle ilgili ilk yayını Kasiski yapmıştır. İlgili kitaba şuradan ulaşılabilir:



Kasiski İncelemesinin (Kasiski Examination) amacı, anahtar uzunluğunu bulabilmektir. Şifrelenmiş mesajda 3 veya daha fazla karakter uzunluklu tekrarlı harf gruplarına bakılır. İki beliriş arasındaki uzunluk, mesaj uzunluğunun tam katıdır. Tekrarlar arası uzunlukların en büyük ortak böleni, mesaj uzunluğudur. Mesaj uzunluğu bir kere elde edildikten sonra mesaj şu şekilde deşifre edilir: Şifrelenmiş mesajın her n. harfi aynı grup altında toplanır ve tekli alfabe ile şifrelenmişçesine (ki öyledir) muamele edilir; mesela frekans analizi uygulanır.

Kasiski İncelemesi’nin elle yapılması çok zordur, bilgisayar programı kullanılması neredeyse zorunludur. Kriptanalist, tekrarlı yapılara bakarken çok dikkat etmesi gerekir zira bazı tekrarlar tamamen tesadüf olabilir.

Dikkatli bir okuyucunun gözünden şu kaçmayacaktır: Anahtar uzunluğu ile mesaj uzunluğu aynıysa, Kasiski İncelemesi hiçbir işe yaramaz. Fakat bu durum, pratiklikten çok uzaktır.


Kaynak kod:

Kod:
#include <iostream>

#include <string>

 

using namespace std;

 

char alfabe[30] = "abcçdefgğhıijklmnoöprsştuüvyz";

 

char alfabeler[30][30];

 

string Vigenere(string metin, string anahtar) {

 

       for (int i = 0; i < 29; i++) {

             for (int j = 0; j < 29; j++) {

                    alfabeler[i][j] = alfabe[(i + j) % 29];

             }

       }

      

       string sifreli_metin;

 

       int satir, sutun;

       for (int m = 0; m < metin.length(); m++) {

             for (int n = 0; n < 29; n++) {

                    if (metin[m] == alfabe[n]) {

                          sutun = n;

                    }

                    if (anahtar[m % anahtar.length()] == alfabe[n]) {

                          satir = n;

                    }

             }

            

             sifreli_metin += alfabeler[satir][sutun];

       }

 

       return sifreli_metin;

      

}

 

int main()

{

      

       string anahtar = "cezeri";

       string metin = "merhaba";

       string sifreli_metin = Vigenere(metin, anahtar);

 

       setlocale(LC_ALL, "Turkish");

       cout << sifreli_metin;

 

}
Not: Dekripsiyon kodu alıştırma olarak bırakılmıştır.
Kullanıcı İmzası
Işık ve Sevgiyle...

© Copyright TurkHackTeam.Net
BufGix, CyberXhackk Teşekkür etti.

09-05-2018 07:32
#2
Y8Y1K6 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
Sizce???
Mesajlar:
406
Teşekkür (Etti):
71
Teşekkür (Aldı):
59
Konular:
86
Elinize sağlık =) ama renklendirirseniz daha iyi olur
@AXPA
Kullanıcı İmzası
HER THT ÜYESİ HACKER DEĞİLDİR LAKİN HER HACKER THT ÜYESİDİR
Konu Y8Y1K6 tarafından (09-05-2018 14:04 Saat 14:04 ) değiştirilmiştir.
22-05-2018 17:30
#3
Üyelik tarihi:
10/2017
Nereden:
T Ü R K
Yaş:
19
Mesajlar:
651
Teşekkür (Etti):
144
Teşekkür (Aldı):
158
Konular:
51
Eline Sağlık
Kullanıcı İmzası
Gâfil ne bilir neş've-i pür-şevk-i vegâyı
Meydân-ı celâdetteki envar-ı sefâyı
Merdân-ı gazâ aşk ile tekbirler alınca
Titretti yine, rû-yı zemin arş-ı semâyı.
Allah yolunda cenk edelim şân alalım şan
Kur'an'da zafer vaadediyor Hazret'i Yezdan.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

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