Transposition Şifrelemesi: Harf Pozisyonlarını Değiştirerek Gizlilik Sağlama Sanatı
14 Temmuz 2022 • ☕️ 3 dk okuma • 🏷 bilgisayar, yazılım, şifreleme
Yazar tarafından şu dillere çevrildi: English
Kriptografi iletişimde gizliliği korumak amacıyla kullanılan özel bir alandır. Bu disiplin, bilgilerin güvende kalmasını sağlamak için tasarlanmış yöntemleri içerir ve genellikle hassas verilerin yetkisiz erişimden korunmasını hedefler. Kriptografi, birçok farklı şifreleme yöntemini içerir ve bu yöntemler, bilgi güvenliğini artırmak ve gizliliği korumak için geniş bir yelpazede kullanılır. Bu şifreleme teknikleri, mesajların sadece yetkili kişiler tarafından anlaşılabilir olmasını sağlayarak iletişimin güvenliğini artırır ve gizliliği sağlar.
Transposition Şifrelemesi Nedir?
Transposition şifrelemesi, metindeki harf pozisyonlarını belirli bir düzeni takip ederek yer değiştirerek metni şifreleyen oldukça ilginç bir kriptografi yöntemidir. Temel prensip, metindeki harf sıralamalarını değiştirerek şifrelenmiş bir metin oluşturmaktır. Bu değişiklikler, metni orijinal halinden farklı bir hale getirir ve iletişimi daha güvenli hale getirir.
Bu şifreleme türü, tarihsel olarak askeri ve diplomatik iletişimde kullanılmıştır. Düşmanların mesajları anlamasını zorlaştırmak için harf pozisyonlarının belirli bir anahtarla değiştirilmesi, iletişimin güvenliğini artırır. Ancak, bu yöntem günümüzde daha karmaşık ve güçlü şifreleme teknikleri tarafından yerini almıştır.
Transposition’in Amaçları Nelerdir?
- Gizlilik Sağlama: Transposition şifrelemesi, iletişimin gizliliğini sağlama amacı taşır. Mesajlar şifrelendiğinde, sadece doğru anahtara sahip kişilerin mesajı çözmesi mümkün olur.
- Bilgi Koruma: Transposition şifrelemesi, hassas bilgilerin yetkisiz erişimden korunmasına yardımcı olur. Özellikle askeri ve diplomatik iletişimde, düşmanların mesajları kolayca çözmesini engellemek için kullanılır.
Transposition Şifrelemesinin Türleri
Transposition şifrelemesi, farklı türleri içeren geniş bir kategoriye sahiptir. İşte bazı temel Transposition şifreleme türleri:
- ROUTE Cipher (ROT): Bu tür, metni bir düzlemde belirli bir yolu takip ederek şifreler. Metin belirli bir yönde dolaştırılarak şifrelenir ve çözülür. Saat yönü veya ters yönde dolaşma şeklinde çeşitleri bulunur.
- Rail Fence Cipher: Bu şifreleme türünde, metin bir çit gibi düşünülür ve harfler çit panellerine sırayla yerleştirilir. Şifreli metin, çit panelleri boyunca sırayla alınarak elde edilir.
- Columnar Transposition Cipher: Bu yöntemde, metin bir matrise yerleştirilir ve metin sütunları belirli bir sıra veya anahtarla yer değiştirilir. Şifre çözme işlemi, sütunları doğru sıraya yerleştirerek yapılır.
Transposition Şifrelemesi Hangi Alanlarda Kullanılır?
Transposition şifrelemesi tarihsel olarak askeri ve diplomatik iletişimde kullanılmıştır. Ancak, modern kriptografi standartlarına göre genellikle güvenli değildir, çünkü basit anahtarlarla kırılabilir. Bu nedenle günümüzde daha güçlü ve karmaşık şifreleme yöntemleri tercih edilmektedir.
Transposition şifrelemesi, iletişimde gizlilik sağlamak için kullanılan eski bir kriptografi yöntemidir. Harf pozisyonlarının değiştirilmesi ile çalışır ve birçok farklı türe sahiptir. Ancak, modern kriptografi ihtiyaçlarına cevap vermek için daha güçlü şifreleme yöntemleri geliştirilmiştir.
GoLang’de Transposition Şifrelemesi (Columnar Transposition) uygulaması:
package main
import (
"fmt"
"math"
"strings"
)
func encryptMessage(key int, message string) string {
cipherText := make([]string, key)
for col := 0; col < key; col++ {
pointer := col
for pointer < len(message) {
cipherText[col] += string(message[pointer])
pointer += key
}
}
return strings.Join(cipherText, "")
}
func decryptMessage(key int, message string) string {
numCols := int(math.Ceil(float64(len(message)) / float64(key)))
numRows := key
numShadedBoxes := (numCols * numRows) - len(message)
plainText := make([]string, numCols)
col, row := 0, 0
for _, symbol := range message {
plainText[col] += string(symbol)
col++
if (col == numCols) || (col == numCols-1 && row >= numRows-numShadedBoxes) {
col = 0
row++
}
}
return strings.Join(plainText, "")
}
func main() {
message := "TopSecret"
key := 3
encryptedText := encryptMessage(key, message)
fmt.Printf("Encrypted Message: %s\n", encryptedText)
decryptedText := decryptMessage(key, encryptedText)
fmt.Printf("Decrypted Message: %s\n", decryptedText)
}
Program çalıştırıldığında çıktısı aşağıdaki gibi olacaktır.
Encrypted Message: TSroeepct
Decrypted Message: TopSecret
Programın çalışır haline şuradan erişilebilir.
Kaynaklar
- https://en.wikipedia.org/wiki/Transposition_cipher
- https://www.geeksforgeeks.org/columnar-transposition-cipher/