Transpozisyon Şifresi

Transposition Cipher, düz metindeki alfabe sırasının bir şifre metni oluşturmak için yeniden düzenlendiği bir kriptografik algoritmadır. Bu süreçte, gerçek düz metin alfabeleri dahil edilmemiştir.

Misal

Transpozisyon şifresinin basit bir örneği columnar transposition cipherdüz metindeki her bir karakter, belirtilen alfabe genişliğinde yatay olarak yazılır. Şifre dikey olarak yazılır ve bu tamamen farklı bir şifre metni oluşturur.

Düz metni düşünün hello worldve aşağıda gösterildiği gibi basit sütunlu transpozisyon tekniğini uygulayalım

Düz metin karakterleri yatay olarak yerleştirilir ve şifreli metin dikey formatta oluşturulur. : holewdlo lr. Şimdi, alıcının şifreli metnin şifresini düz metin olarak çözmek için aynı tabloyu kullanması gerekir.

Kod

Aşağıdaki program kodu, sütunlu aktarım tekniğinin temel uygulamasını gösterir -

def split_len(seq, length):
   return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
   order = {
      int(val): num for num, val in enumerate(key)
   }
ciphertext = ''

for index in sorted(order.keys()):
   for part in split_len(plaintext, len(key)):
      try:ciphertext += part[order[index]]
         except IndexError:
            continue
   return ciphertext
print(encode('3214', 'HELLO'))

Açıklama

  • İşlevi kullanma split_len(), Sütunlu veya satır biçiminde yerleştirilebilen düz metin karakterlerini bölebiliriz.

  • encode yöntemi, sütun sayısını belirten anahtarla şifreli metin oluşturmaya yardımcı olur ve her sütundan karakterleri okuyarak şifre metnini yazdırır.

Çıktı

Sütunlu aktarım tekniğinin temel uygulaması için program kodu aşağıdaki çıktıyı verir:

Note- Kriptanalistler, aktarım tekniği uygulandığında kripto güvenliğinde önemli bir gelişme gözlemledi. Ayrıca, aynı transpozisyon şifresini kullanarak şifre metnini yeniden şifrelemenin daha iyi güvenlik yarattığını da belirttiler.