13 Kasım 2016 Pazar

Sezar Şifreleme Yöntemi

En eski şifreleme yöntemlerinden bir tanesi de Romalı'ların geliştirmiş olduğu şifreleme yöntemidir. Harflerin sırasını kaydırma yöntemi ile yapılır. Kodu çözecek olan kişi kaydırma sayısını biliyorsa iletilen mesajı rahatlıkla çözebiliyor. Örneğin üç harf atlamalaı bir şifrelemede "abi" kelimesi "del" ile kodlanır.

3 harf kaydırmalı Sezar şifreleme
Öte yandan, Sezar Şifresi(Cevrimsel alfabe) kırmak görece kolay olmaktadır: Bir filolog, bir dilde en çok geçen harfleri bulabilir. O harfler ile mesajda en sık geçen harfleri karşılaştırarak hangi harfin hangi harf ile değiştirildiğini bulabilir. Bu adımların ardından, mesaj çözülmüş olur. Sezar Şifresi Hakkında:
  • Kaba kuvvet (brute-force) saldırısıyla çok kolay çözülür. ÇünküŞifreleme/Şifre çözme yöntemi gizli değildir.
  • Sadece 25 (Latin alfabesi harf sayısı) farklı deneme yeterlidir. (Anahtar uzayı 25 elemanlıdır.)
  • Düz metin (plaintext) ve formatı gizli değildir.
  • Harf değiştirme şifrelemelerinde toplam 26! farklı şifre tablosu vardır.
Genel olarak 26 harfli ingiliz alfabesi için çözüm;


kaydirma_indisi = (i + kaydirma_miktari) % 26;
sifreli[i] = alfabe[kaydirma_indisi];

C++ kodları ile Sezar şifreleme aşağıdaki gibi yapılır;

 #include <iostream>   
 #include <string.h>   
  int main() {   
    int slength,i,j,as,indis;   
    char str1[]="abcdefghijklmnopqrstuvwxyz";   
    char str2[256];   
    printf("Lutfen sifrelenecek metni giriniz:");   
    scanf("%s",&str2);   
    printf("Lutfen atlama sayisini giriniz:");   
    scanf("%d",&as);  
    slength = strlen(str2);   
       for(i=0;i<slength;i++)   
    {   
       for(j=0;j<26;j++)  
       {  
             if(str2[i]==str1[j])  
                  {  
                       indis = (j + as)%26;  
                       printf("%c",str1[indis]);  
                  }  
             }  
    }   
  }   


Hiç yorum yok:

Yorum Gönder