Aşağıdaki makale size yardımcı olacaktır: Vigenere Şifreleme | Wix
Gelelim bu blogda neler konuşulacağına:
Bu Siber Güvenlik Kursu videosunu izleyin:
Vigenere Şifresi nedir?
16. yüzyılda Fransız kriptograf Blaise de Vigenère tarafından icat edilen Vigenère Cipher, mesajları şifrelemek ve şifrelerini çözmek için kullanılan bir yöntemdir. Çok alfabetik bir ikame şifresidir, yani düz metni şifrelemek için birden çok şifre alfabesi kullanır.
Vigenère Cipher, şifreleme temeli olarak bir anahtar kelime, tipik olarak bir kelime veya deyim kullanarak çalışır. Anahtar kelime, düz metin mesajının uzunluğuna uyacak şekilde tekrarlanır. Anahtar kelimedeki her harf daha sonra düz metindeki karşılık gelen harfin kaydırma değerini belirlemek için kullanılır.
Bir mesajı şifrelemek için, düz metnin her harfi, anahtar kelimedeki karşılık gelen harfle kaydırılır. Bu, Vigenère karesi veya Vigenère tablosu adı verilen bir tablo kullanılarak yapılır. Vigenère karesi, her satırın önceki satırın bir konum kaydırmasını temsil ettiği bir alfabe ızgarasıdır. Vigenère karesinde anahtar kelime harfi ile düz metin harfinin kesiştiği noktadaki harf şifreli harfi verir.
Örneğin “HELLO” kelimesini “KEY” anahtar kelimesini kullanarak şifreleyelim. İlk olarak, düz metnin uzunluğuna uyması için anahtar kelimeyi tekrarlayın: “KEYKE”. Ardından, Vigenère karesinde karşılık gelen harfleri bulun. ‘H’ harfi ‘K’ ile kaydırılarak ‘S’ elde edilir. ‘E’, ‘E’ ile kaydırılarak ‘X’ elde edilir. ‘L’, ‘Y’ ile kaydırılarak ‘M’ elde edilir. Ve benzeri. Şifrelenmiş mesaj “SXMMR” olacaktır.
Şifre çözme benzer şekilde çalışır. Şifreli metnin her harfi, Vigenère karesi kullanılarak anahtar kelimedeki karşılık gelen harf kadar geri kaydırılır. İşlemi tersine çevirerek orijinal düz metin mesajı elde edilebilir.
Vigenère Cipher, basit ikame şifrelerine kıyasla daha fazla güvenlik sunar çünkü değişkenlik getirir ve şifrelenmiş mesajdaki kalıpları tanımlamayı zorlaştırır. Ancak, modern şifreleme yöntemleri kadar güçlü değildir ve frekans analizi ve Kasiski incelemesi gibi kriptanaliz tekniklerine karşı savunmasız olabilir.
Yerleştirme Yardımıyla En İyi Etik Hacking Kursumuzla Geleceğinizi Güvence Altına Alın!
Vigenere Şifreleme Tablosu
Tablo, farklı satırlarda 26 kez yazılan tüm alfabelerden oluşur. Sonraki her satır ve sütundaki her alfabe döngüsel olarak sola kaydırılır. Bu, 26 Sezar Şifresi üretir.
Şifreleme işleminde farklı noktalarda farklı satırlardan farklı alfabeler kullanılır. Seçilen alfabe, şifreleme için kullanılan yönteme bağlıdır.
Çevrimiçi güvenliğinizi artırmanın daha iyi yollarını öğrenmek için. Siber Güvenlik Eğitimine Kaydolun!
Vigenere Şifreleme Yöntemleri
Üç ana Vigenere Şifreleme Yöntemi vardır:
- Otomatik Anahtar Yöntemi
- Anahtar Kelime Yöntemi
- Vigenere Şifre Hesaplayıcı
Bunların her biri hakkında ayrıntılı olarak konuşalım.
Otomatik Anahtar Yöntemi
Otomatik Anahtar Yöntemi, düz metni şifrelemek ve şifresini çözmek için Vigenere Cipher tablosunu kullanır. Bu yöntemde hazırlama anahtarı yalnızca bir harftir.
Vigenere Şifre Kodlayıcı Otomatik Anahtar Yönteminde
Otomatik anahtar yöntemindeki ilk adım, bir hazırlama anahtarına karar vermektir. Hem gönderen hem de alıcı bu anahtar üzerinde anlaşmak zorundadır. Hazırlama anahtarı, anahtarı oluşturmaya yardımcı olmak için mesajların başına eklenen tek alfabedir. Gönderen, düz metnin ilk harfini bir satıra ve altındaki hazırlama anahtarını yazarak başlayan mesajı şifreler. Düz metnin geri kalanı olduğu gibi yazılır, bir yer sağa kaydırılır.
düz metin | BEN | N | T | E | L | L | BEN | P | A | A | T |
Anahtar | R | BEN | N | T | E | L | L | BEN | P | A | A |
İlgili adımlar aşağıdaki gibidir:
- Düz metni yazın.
- Vigenere tablosunda bir satır ve bir sütun seçmek için düz metni ve anahtar harfi kullanın.
- Düz metnin ilk harfi ilk satır, anahtar ise ilk sütundur. Örneğin, düz metin INTELLIPAAT ve anahtar R ise, o zaman ilk satır I ile başlayan, sütun ise R ile başlayan satır olacaktır.
- Şifreli metnin ilk harfi, ilk satır ve sütunun kesiştiği harf olacaktır. Örneğimizde bu Z harfi olacaktır.
- Şimdi, bu işlem düz metnin tamamı şifreli metne dönüştürülene kadar devam eder. INTELLIPAAT için bu, ZVGXPWTXPAT olacaktır.
düz metin | BEN | N | T | E | L | L | BEN | P | A | A | T |
Anahtar | R | BEN | N | T | E | L | L | BEN | P | A | A |
şifreli metin | Z | v | G | X | P | W | T | X | P | A | T |
Vigenere Şifre Çözücü Otomatik Anahtar Yönteminde
Şifreli metnin deşifre edilmesi için aşağıdaki adımlar izlenir:
- İlk harf hazırlama tuşu kullanılarak seçilir.
- Şifreli metnin ilk harfi bu satırda bulunur.
- Düz metnin ilk harfi, ilk satır ve sütunun kesiştiği harf olacaktır.
- Bu işlem şifreli metnin tamamı deşifre edilene kadar devam eder.
Anahtar | R | BEN | N | T | E | L | L | BEN | P | A | A |
şifreli metin | Z | v | G | X | P | W | T | X | P | A | T |
düz metin | BEN | N | T | E | L | L | BEN | P | A | A | T |
Güvenlik
Vigenere Cipher için otomatik anahtar yöntemi çok güvenli değildir. Yalnızca 26 anahtar kullanabiliriz, bu da kodun kırılmasını oldukça kolaylaştırır. Kodu kırmak isteyen herkesin mantıklı bir mesaj vermeden önce her bir alfabeyi başlatma anahtarı olarak denemesi yeterlidir. Bu, manuel olarak kısa sürede yapılabilir.
Bunu kontrol et Siber güvenlik Eğitimi Cybersecurity Essentials’ı öğrenmek için!
Anahtar Kelime Yöntemi
Anahtar Sözcük Yöntemi, düz metni şifrelemek ve şifresini çözmek için Vigenere Cipher tablosunu da kullanır. Bu yöntemde anahtar genellikle birden fazla harftir.
Vigenere Şifre Kodlayıcı Anahtar Kelime Yönteminde
Vigenere Cipher kodlayıcı, otomatik anahtar yöntemine benzer. Aradaki fark, Vigenere Cipher kodlayıcının yalnızca bir hazırlama anahtarı kullanmak yerine birden fazla harften oluşan bir anahtar sözcük kullanmasıdır. Yani, olası bir anahtar kelimenin sonsuz olasılıkları vardır. İlgili adımlar aşağıdaki gibidir:
- Gönderen, anahtarı oluşturmak için anahtar sözcüğü düz metnin altına tekrar tekrar yazacaktır.
- Bu daha sonra, tam bir şifreli metin oluşana kadar tıpkı otomatik anahtar yöntemi gibi kodlanacaktır.
Bu örnek için ALL IS WELL ifadesini ve anahtar kelimeyi KEK olarak kullanalım.
düz metin | A | L | L | BEN | S | W | E | L | L |
Anahtar | C | A | K | E | C | A | K | E | C |
şifreli metin | C | L | v | M | sen | W | P | P | N |
Vigenere Şifre Çözücü Anahtar Kelime Yönteminde
Bunu çözmek için aşağıdaki adımlar izlenebilir:
- Anahtar kelimeyi şifreli metnin uzunluğuna kadar art arda yazarak başlayın.
- Altına şifreli metni yazın ve autokey yönteminde yapıldığı gibi kodunu çözün.
Anahtar | C | A | K | E | C | A | K | E | C |
şifreli metin | C | L | v | M | sen | W | P | P | N |
düz metin | A | L | L | BEN | S | W | E | L | L |
Güvenlik
Bu yöntem, otomatik anahtar yönteminden çok daha güvenlidir, ancak bu, savunmasız olmadığı anlamına gelmez. Şifre, daha uzun anahtar kelimelerle daha güvenlidir.
Vigenere Şifre Hesaplayıcı
Vigenere tablosu herhangi bir nedenle mevcut veya erişilebilir değilse, Vigenere cebirsel formülü kullanılarak şifreleme ve şifre çözme işlemleri gerçekleştirilebilir. Bu yöntemin çalışması için alfabelerin sayılara (0-25) dönüştürülmesi gerekir.
Şifreleme formülü:
Ei = (Pi + Ki) mod 26
Şifre çözme formülü:
Di = (Ei – Ki) mod 26
Burada E şifreleyicidir, D şifre çözücüdür, P açık metindir ve K anahtardır.
Di’nin değeri negatifse, bu değere 26 eklenir.
Örneğin düz metnimizi SİBER GÜVENLİK olarak ele alalım.
Bu yüzden,
Anahtar EN İYİ olabilir.
şifreleme: Ei = (Pi + Ki) mod 26
şifre çözme: Di = (Ei – Ki) mod 26
Unutmayın, Di’nin değeri negatifse, bu değere 26 eklenir.
Vigenere Şifresi Python’da kod
Python kodu olarak Vigenere Cipher hesap makinesinin nasıl görüneceğine bir göz atalım.
#Uygulanacak Python kodu # Vigenere Cipher # Bu işlev, # anahtarını # uzunluğu orijinal metnin uzunluğuna # eşit olmayana kadar # anahtarını üretir def createKey(string, key): key = list(key) if len (dize) == len(anahtar): dönüş(anahtar) başka: i için aralıkta(len(dize) – len(anahtar))): key.append(key[i % len(key)]) return(“” . join(key)) # Bu işlev, # anahtarın yardımıyla # oluşturulan şifreli metni döndürür def cipherText(string, key): cipher_text = []
i için aralık(len(string)): x = (ord(string)[i]) + sıra(anahtar[i])) % 26 x += ord(‘A’) cipher_text.append(chr(x)) return(“” . join(cipher_text)) # Bu fonksiyon # şifreli metnin şifresini çözer ve # orijinal metni döndürür def originalText(cipher_text) , anahtar): orig_text = []
i için aralık(len(şifre_metni)): x = (ord(şifre_metin)[i]) – sıra(anahtar[i]) + 26) % 26 x += ord(‘A’) orig_text.append(chr(x)) return(“” . join(orig_text)) # Sürücü kodu if __name__ == “__main__”: string = “CYBERSECURITY” anahtar kelime = “EN İYİ” anahtar = anahtar kelime(dize, anahtar sözcük) cipher_text = cipherText(dize,anahtar) print(“Şifreli metin :”, cipher_text) print(“Orijinal/Şifresi Çözülmüş Metin :”, originalText(cipher_text, key))
Çıktı
şifreli metin: DCTXSWWVVVAMZ Orijinal veya Şifresi Çözülmüş Metin: CYBERSECURITY
Çözüm
Vigenere Cipher, basit bir yöntemden gelişmiş bir yönteme giden basit bir çok alfabetik ikame yöntemidir. Vigenere Karesi veya Tablosu, bu Şifrelemede kullanılan önemli bir araçtır. Bu şifreyi ihtiyaçlarınıza göre üç farklı şekilde kullanabilirsiniz. Her üç yöntem de farklı adımlar içerir. Otomatik anahtar yöntemi en az güvenli yöntemdir. Anahtar kelime yönteminin güvenlik açıkları olsa da, otomatik anahtar yönteminden daha güvenlidir. Python Kodu yöntemi nispeten en güvenli yöntemdir.