Playfair Şifresi nedir? Örnek ve Kurallar

Aşağıdaki makale size yardımcı olacaktır: Playfair Şifresi nedir? Örnek ve Kurallar

Playfair Şifresi nedir?

Playfair Cipher şifreleme tekniği, bir mesajı şifrelemek veya kodlamak için kullanılabilir. Tam olarak tipik şifreleme gibi çalışır. Tek fark, tek bir harf yerine bir digrafı veya iki harften oluşan bir çifti şifrelemesidir.

İlk 5×5 matris anahtar tablosu oluşturulur. Düz metin şifreleme anahtarı, matrisin alfabetik karakterlerinden yapılmıştır. Harfleri tekrar etmemeniz gerektiğine dikkat edin. 26 alfabe var ama harf koyabileceğimiz sadece 25 boşluk var. Bir harf fazlalığı olduğundan (tipik olarak J) matris fazladan harfi siler. Buna rağmen J, I olarak değiştirilmeden önce düz metinde bulunur.

Bu blog, Playfair Cipher, avantajları ve dezavantajları, uygulanabilirliği ve Playfair şifreleme ve şifre çözme algoritmaları hakkında tam bir açıklama sağlar.

İçerik tablosu:

Ağ oluşturma kavramlarını ayrıntılı olarak anlamak için bu youtube videosunu izleyin:

Playfair Cipher’ın Tarihçesi

Playfair Şifresi, simetri şifrelemesini kullanan en eski ve en iyi bilinen digraf ikame şifresidir. Charles Wheatstone şifreyi 1854’te geliştirdi ve kullanımını destekleyen Lord Playfair ona adını verdi. Basitçe tek harfleri şifreleyen basit bir ikame şifresinin aksine, Playfair Şifreleme tekniği harflerin digraflarını veya kısımlarını şifreler.

Playfair Cipher hızlıdır ve kullanmak için herhangi bir ek araç gerektirmez. İngiliz kuvvetleri, Avustralya kuvvetleri gibi I. Dünya Savaşı, İkinci Boer Savaşı ve II. Dünya Savaşı’nda taktiksel olarak kullandı. Şifrelemenin ana amacı, gerçek savaş sırasında kritik olmayan ancak önemli bilgileri korumaktı. Muhalefetin kriptanalistleri şifresini çözebildiğinde, veriler işe yaramazdı.

Siber Güvenlik alanında daha fazla bilgi edinmek ve kariyer yapmak istiyorsanız, Siber Güvenlik Kursuna göz atmayı unutmayın..

Terminolojilere Aşina Olun

  • Düz metin: Görüşmenin tamamı şifrelenmelidir. Aynı zamanda bir mesaj olarak da adlandırılır. Şifreli veya şifreli bir metin mesajıdır.
  • Şifreleme algoritması, düz metni, metin için şifre çözme veya şifreleme anahtarı görevi gören şifreli metne dönüştürür. Sadece gönderen ve alıcı bunun farkındadır. Anahtar tablosu veya anahtar matrisi karakter karakter doldurulur.
  • Şifreleme, düz metni şifreli metne dönüştürme işlemidir.
  • Şifre çözme, düz metni şifreli metinden ayırma işlemidir.
  • Kriptanaliz, şifreli metin için anahtar olmayan kod çözme algoritmaları ve kavramlarının incelenmesidir.

Bu blog aracılığıyla Erişim Kontrol Listesini derinlemesine anlayın!

Playfair Cipher’ın Avantajları:

  • Algoritmayı dikkatli bir şekilde incelersek, sürecin her aşamasının ayrı bir şifreli metinle sonuçlandığını görebiliriz, bu da kriptanalist için işi daha da zorlaştırır.
  • Kaba kuvvet saldırıları onu etkilemez.
  • Kriptanaliz mümkün değildir (anahtarı bilmeden bir şifreyi çözün).
  • basit Playfair kare şifresindeki kusuru ortadan kaldırır.
  • Değiştirme yapmak kolaydır.

Playfair Şifreleme Kısıtlamaları:

Playfair Cipher aşağıdakiler tarafından kısıtlanmıştır:

  • Yalnızca 25 alfabe desteklenir.
  • Bu sayı karakterlerle uyumsuzdur.
  • Yalnızca büyük veya küçük harfler kabul edilir.
  • Boşluk, yeni satır, noktalama vb. özel karakterlere izin verilmez.

Playfair Şifresinin Önemi

O zamanki diğer şifrelere kıyasla göreceli karmaşıklığı nedeniyle, I. ve II. Dünya Savaşları sırasında Playfair Şifresi çok iyi tanındı. Ayrıca, verilerin şifrelenmesi veya şifresinin çözülmesi herhangi bir özel araç veya yöntem gerektirmez. Bununla birlikte, bilgisayarların ortaya çıkmasıyla birlikte, bilgisayarlar Playfair Şifrelerinin şifresini çözmek için kırma kodlarını kolayca uygulayabildiğinden, Playfair Cipher artık kullanılmadı.

Sonuç olarak, dijital şifrelemenin ilerlemesi ve zamanın geçmesiyle birlikte, verilerin yanlış ellere geçme olasılığı nedeniyle Playfair Cipher artık uygulanabilir bir mesaj kodlama biçimi değildi. Bu nedenle kurumsal işletmeler için Playfair Cipher kullanılması önerilmez.

Etik bilgisayar korsanlığında ödüllendirici bir kariyer mi arıyorsunuz? Etik Hacking kursumuza kaydolun ve başarıya giden yolu açın.

Eski Kriptografik Sistemler

Önceki tüm kriptografik sistemler veya “şifreler”, simetrik anahtar şifreleme ilkesi üzerine inşa edildi. Verileri ikili sayılar olarak işleyen modern dijital sistemlerin aksine, temel yapı taşları olarak alfabeleri kullanarak çalıştılar. En eski şifreleme sistemlerinden biri, aşağıda listelenen Playfair şifresidir.

Tavsiye Edilen:  Performansa Dayalı Pazarlama Nedir? Kapsamlı Bir Kılavuz

Sezar’ın Şifresi

Yaygın olarak Shift şifresi olarak adlandırılan Sezar şifresi, en temel ikame şifreleme şeması türüdür. Düz metin alfabesinde 0 ile 25 arasında bir sayı ile yer değiştiren her harfin yerine yeni bir harf koyarak, bu şifreyi şifreli metin oluşturmak için kullanabilirsiniz. Düz metnin şifresini çözmek için yalnızca 26 olası anahtar olduğundan, küçük ölçekli bir saldırganın yararlanabileceği güvenli olmayan bir şifreleme sistemidir.

Basit Yer Değiştirme Kullanarak Şifreleme

Bu şifreleme tekniği, alfabetik harflerin farklı permütasyonlarının kullanılmasına dayanır. Her harf için 26 olası seçenek ile 26 tane var! (26 faktöriyel) potansiyel permütasyon, 4 x 10^26 olası kombinasyonlu bir şifreli metin alfabesiyle sonuçlanır. Bu çok sayıda permütasyon, şifrenin gizli anahtarını oluşturur. Bununla birlikte, mevcut bilgisayar makinelerinin kıramayacağı çok sayıda anahtara rağmen, şifre, kolayca tanınabilir bir permütasyonun seçimi gibi tasarım kusurlarına karşı hassastır. Sonuç olarak, şifre güvensiz kabul edilir.

Şifre Vigenere

için anahtar Vigenere şifresi bir metin dizisidir. Düz metnin alfabeleri, anahtardaki her bir alfabe karşılık gelen sayısal değere dönüştürülerek kaydırılır. Sezar şifresi bu şifreyi oluşturmak için değiştirildiğinden, kriptosistem daha sağlamdır.

Chennai’deki Etik Hacking kursumuzla siber güvenlik becerilerinizi yükseltin. Bize katılın ve dijital dünyayı güvence altına alın!

Şifreleme kuralları: Playfair Cipher

  • Düz metni önce digraflara (iki harf çifti) bölün. Düz metinde tek sayıda harf varsa, sonuna Z harfini ekleyin. Örneğin, MANGO düz metninin temel biçimindeki metin bile beş harften oluşur. Sonuç olarak, bir digraf yapmak mümkün değildir. Sonuç olarak düz metni Z harfini sonuna ekleyerek MANGOZ olarak değiştireceğiz.
  • Düz metni bundan sonra digraflara bölün (iki harf çifti). İki kez görünen herhangi bir harf için, oraya (yan yana) bir X koyun. Digrafın CO MX MU NI CA TE ve düz metnin COMMUNICATE olduğu bir senaryo düşünün. Düz metin GREET için digraph GR EX ET olacaktır, ancak düz metin JAZZ için digraph JA ZX ZX olacaktır.
  • Şifre (şifreleme) metnini tanımlamak için 5*5’lik bir anahtar matrisi veya anahtar tablosu oluşturun ve aşağıdaki gibi alfabetik harflerle doldurun:
  1. İlk satır, soldan sağa, sağlanan anahtar kelimenin (ATİNA) harflerini içermelidir. Bir anahtar kelimede yinelenen harfler varsa, bunları kullanmaktan kaçının. Bu, bir mektubun yalnızca bir kez dikkate alınacağı anlamına gelir. Bundan sonra kalan harfleri alfabetik olarak doldurun. ATHENS anahtar sözcüğü için 5*5’lik bir anahtar matris oluşturalım.

Yukarıdaki matriste yinelenen harf olmadığını unutmayın. İlk harf sırası (yeşil) anahtar kelimeyi temsil ederken, geri kalan harf grupları alfabetik olarak düzenlenmiştir.

Aşağıdaki üç senaryo düşünülebilir:

Ben) İki harf bir digraph olarak bir satırda bir arada bulunuyorsa, Bu durumda digraftaki her harf, hemen sağındaki harfle değiştirilmelidir. Sağda harf yoksa aynı satırdaki ilk harf sağ harf olarak kabul edilir. Z’nin uygun harfin gerekli olduğu bir harf olduğunu varsayarsak, bu durumda uygun harf T olacaktır.

ii) Aynı sütunda bir çift harf (digraph) görünüyorsa

Bu durumda, digrafın her harfini hemen altındaki harflerle değiştirin. Altta harf yoksa, aynı sütunun üstüne sarın. Sanmak, W aşağıdaki harfi gerekli olan bir mektuptur, bu durumda, v W’nin altında olacak.

iii) Bir digraph’ın (bir çift harf) hem ilgili satırda hem de sütunda bulunması durumunda:

33’lük bir matris içindeki bir çift harf için bir şifre oluşturmak üzere, daha büyük bir 5*5’lik matristen 33’lük bir altküme seçilir. Spesifik olarak, matris içinde bir karenin karşılıklı kenarlarına yerleştirilmiş iki kare köşe seçilir. Kalan köşe, verilen digrafın yerine geçer.

Daha basit bir ifadeyle, ilk harfin şifresi, H ve Y harflerinin kesişimi olacaktır.

Tavsiye Edilen:  Sticker Guru'dan Lisa ve Lucy Zhou ile Soru-Cevap

HY digrafı için bir şifre oluşturmamız gereken senaryoyu ele alalım. Görüldüğü gibi, hem H hem de Y farklı satır ve sütunlarda yer almaktadır.

Alanda iş mi arıyorsunuz? İlk 50 Siber Güvenlik Mülakat Soruları başarmak için harika bir başlangıçtır.

Şifre çözme kuralları: Playfair Cipher

Şifre çözme prosedürleri, şifreleme prosedürleri olarak ters sırada kullanılır. Şifre çözerken, şifre simetriktir (satırlar boyunca sola ve sütunlar boyunca yukarı hareket ettirin). Mesajın kodunu çözmek için kullanılan aynı anahtar ve anahtar tablosuna düz metin alıcısı tarafından erişilebilir.

Bir Playfair Şifreleme örneğine bakalım.

Playfair Şifreleme örneği

“İletişim”in düz metin olduğunu ve “bilgisayar”ın şifreleme anahtarı olduğunu varsayalım.

Anahtar herhangi bir kelime veya deyim olabilir. Neyin iletildiğini bulalım.

1. İlk olarak, CO MX MU NI CA TE olan 2. kuralı uygulayarak düz metinden bir digraf oluşturun.

2. 5’e 5 olan bir anahtar matris yapın. (3. kurala göre). Koşullarımızdaki önemli unsur bilgisayardır.3. Şimdi karşılık gelen şifreleyiciyi bulmak için her bir anahtar matris çiftini tek tek inceleyeceğiz.

3. Şimdi karşılık gelen şifreleyiciyi bulmak için her bir anahtar matris çiftini tek tek inceleyeceğiz.

  • İlk digraf CO’dur. İkisi birlikte arka arkaya görüntülenir. CO ve OM, Kural 4(i) kullanılarak şifrelenir.
  • İkinci digraf MX’dir. Her ikisi de aynı sütunda görülebilir. MX ve RM, Kural 4(ii) kullanılarak şifrelenir.
  • Üçüncü digraf MU’dur. İkisi arka arkaya birlikte görüntülenir. MU, Kural 4(i) kullanılarak PC’ye şifrelenir.
  • Dördüncü digraf NI’dir. Çift, birkaç satır ve sütunda görülebilir. NI, Kural 4(iii) kullanılarak SG’ye şifrelenir.
  • Altıncı digraf CA’dır. Çift, birkaç satır ve sütunda görülebilir. Kural 4(iii) durumları, CA tarafından verileri şifrelemek için kullanılır.
  • Bu nedenle, COMMUNICATE düz metni OMRMPCSGPTER kullanılarak şifrelenir.

Ethical Hacking Mülakat Soruları koleksiyonumuzla mülakata hazır olun. Potansiyel işverenleri etkilemek için kendinizi bilgiyle donatın!

Kod Uygulaması

java.awt.Point’i içe aktarın; java.util.Scanner’ı içe aktarın; public class PlayfairCipher { //digraph dizisinin uzunluğu private int uzunluk = 0; // Playfair şifresi için bir matris oluşturur private String [][] masa; //main() yöntemi Playfair yöntemini test etmek için public static void main(String args[]) { PlayfairCipher pf = yeni PlayfairCipher(); } //programın ana çalışması, Playfair yöntemi //özel PlayfairCipher() sınıfının kurucusu { //kullanıcıdan kodlama için kullanılacak anahtar kelimeyi ister ve tablolar oluşturur System.out.print(“Playfair şifresi için anahtarı girin : “); Tarayıcı sc = yeni Tarayıcı(System.in); Dize anahtarı = parseString(sc); while(key.equals(“”)) tuşu = parseString(sc); tablo = this.cipherTable(anahtar); //kullanıcıdan şifrelenecek mesajı sorar System.out.print(“Şifrelenecek düz metni giriniz: “); //System.out.println(“önceden verilen anahtar kelimeyi kullanarak”); Dize girişi = parseString(sc); while(input.equals(“”)) input = parseString(sc); //kodlanmış mesajı kodlar ve sonra çözer String output = cipher(input); String decodedOutput = decode(output); //sonuçları bir kullanıcıya gönder this.keyTable(table); this.printResults(çıktı,decodedOutput); } //bir giriş dizesini sayıları, noktalama işaretlerini kaldırmak için ayrıştırır, //tüm J’leri I’lerle değiştirir ve dizeyi tamamı büyük harf yapar özel String parseString(Scanner sc) { String ayrıştırma = sc.nextLine(); //tüm harfleri büyük harfe çevirir parse = parse.toUpperCase(); //her eşleşme (A’dan Z’ye) için boşlukla değiştirilecek dize ayrıştırma = parse.replaceAll(“[^A-Z]”, “”); //J harfini I ile değiştir parse = parse.replace(“J”, “I”); return parse; } //bazı giriş dizelerine (zaten ayrıştırılmış) dayalı olarak şifre tablosunu oluşturur private String[][] cipherTable(String key) { //5*5 String’den oluşan bir matris oluşturur[][] playfairTable = yeni Dize[5][5]; String keyString = key + “ABCDEFGHIKLMNOPQRSTUVWXYZ”; //dize dizisini boş dizeyle doldurun for(int i = 0; i < 5; i++) for(int j = 0; j < 5; j++) playfairTable[i][j] = ""; for(int k = 0; k < keyString.length(); k++) { boolean tekrar = false; kullanılan boolean = false; for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { if(playfairTable[i][j].equals("" + keyString.charAt(k))) { tekrar = true; } else if(playfairTable[i][j].equals("") && !repeat && !used) { playfairTable[i][j] = "" + keyString.charAt(k); kullanılan = doğru; } } } } playfairTable'ı döndürür; } //şifre: girdiyi alır (tümü büyük harf), kodlar ve çıktıyı döndürür private String cipher(String in) { uzunluk = (int) in.uzunluk() / 2 + in.uzunluk() % 2; //çift harfli digrafların arasına x girin ve "uzunluk"u yeniden tanımlar for(int i = 0; i < (uzunluk - 1); i++) { if(in.charAt(2 * i) == in.charAt(2 * i + 1)) { in = new StringBuffer(in).insert(2 * i + 1, 'X').toString(); uzunluk = (int) in.uzunluk() / 2 + in.uzunluk() % 2; } } //------------ düz metni çift uzunlukta yapar-------------- //digraflardan oluşan bir dizi oluşturur String[] digraph = yeni Dize[length]; //döngü düz metin üzerinde yinelenir for(int j = 0; j < uzunluk ; j++) { //düz metnin çift uzunlukta olup olmadığını kontrol eder if(j == (uzunluk - 1) && in.uzunluk() / 2 == (uzunluk - 1)) //eğer değilse, düz metnin sonuna X ekler = in + "X"; digraf[j] = in.charAt(2 * j) +""+ in.charAt(2 * j + 1); } //digrafları kodlar ve çıktıyı döndürür String out = ""; Sicim[] encDigraphs = yeni Dize[length]; encDigraphs = encodeDigraph(digraph); for(int k = 0; k < uzunluk; k++) out = out + encDigraphs[k]; dışarı çıkmak; } //--------------şifreleme mantığı--- //digraph girişini şifrenin özellikleri ile şifreler private String[] encodeDigraph(Dize di[]) { Sicim[] şifreleyici = yeni Dize[length]; for(int i = 0; i < uzunluk; i++) { char a = di[i].charAt(0); karakter b = di[i].charAt(1); int r1 = (int) getPoint(a).getX(); int r2 = (int) getPoint(b).getX(); int c1 = (int) getPoint(a).getY(); int c2 = (int) getPoint(b).getY(); //digrafın harfleri aynı satırda ise çalışır //bu durumda sütunları sağa kaydır if(r1 == r2) { c1 = (c1 + 1) % 5; c2 = (c2 + 1) % 5; } //digrafın harfleri aynı kolonda ise çalışır //bu durumda satırları aşağı kaydır if(c1 == c2) { r1 = (r1 + 1) % 5; r2 = (r2 + 1) % 5; } //digraph'ın harfleri farklı satırlarda ve farklı sütunlarda görünüyorsa çalışır //bu durumda ilk sütunu ikinci sütunla değiştirin else { int temp = c1; c1 = c2; c2 = sıcaklık; } //tablo aramasını gerçekleştirir ve bu değerleri kodlanmış dizi şifreleyiciye koyar[i] = tablo[r1][c1] + "" + tablo[r2][c2]; } dönüş şifreleyici; } //-------------------------şifre çözme mantığı--------------------- / / cipher ve decode metotlarından verilen çıktıyı çözer (kodlama işleminin tersi) private String decode(String out) { String decoded = ""; for(int i = 0; i < out.length() / 2; i++) { char a = out.charAt(2*i); char b = out.charAt(2*i+1); int r1 = (int) getPoint(a).getX(); int r2 = (int) getPoint(b).getX(); int c1 = (int) getPoint(a).getY(); int c2 = (int) getPoint(b).getY(); eğer(r1 == r2) { c1 = (c1 + 4) % 5; c2 = (c2 + 4) % 5; } başka if(c1 == c2) { r1 = (r1 + 4) % 5; r2 = (r2 + 4) % 5; } else { //değiştirme mantığı int temp = c1; c1 = c2; c2 = sıcaklık; } kodu çözülmüş = kodu çözülmüş + tablo[r1][c1] + masa[r2][c2]; } //kodu çözülmüş mesajı döndürür, kodu çözülmüş olarak döndürür; } // private Point getPoint(char c) { Point pt = new Point(0,0); for(int i = 0; i < 5; i++) for(int j = 0; j < 5; j++) if(c == tablo[i][j].charAt(0)) pt = yeni Nokta(i,j); dönüş noktası; } //işlev, anahtar tablosunu Playfair şifresi için matris biçiminde yazdırır private void keyTable(String[][] printTable) { System.out.println("Playfair Cipher Key Matrix: "); System.out.println(); //döngü satırlar için yinelenir for(int i = 0; i < 5; i++) { //döngü sütun için yinelenir for(int j = 0; j < 5; j++) {//anahtar tablosunu matris biçiminde yazdırır System.out.print(printTable[i][j]+" "); } System.out.println(); } System.out.println(); } //tüm sonuçları yazdıran yöntem private void printResults(String encipher, String dec) { System.out.print("Şifrelenmiş Mesaj: "); //şifreli mesajı yazdırır System.out.println(encipher); System.out.println(); System.out.print("Şifresi Çözülmüş Mesaj: "); //şifresi çözülmüş mesajı yazdırır System.out.println(dec); } }

Tavsiye Edilen:  Çevrimiçi Yorum Yönetimi - Nedir ve Neden İhtiyaç Duyarsınız?

ÇIKTI:

Çözüm

Playfair Cipher, veri şifreleme için en eski ve en etkili tekniklerden biri olarak kabul edilmektedir. Playfair Cipher’in sağlam bir şekilde anlaşılması, veri şifreleme ve makine öğrenimi için temel bir unsur olarak hizmet eder.

Şimdi siber güvenlik alanında kariyer yapmayı düşünüyor musunuz? Daha fazla yardım için lütfen şu adresimizi ziyaret edin: Siber Güvenlik Topluluğu!