Transposition Cipher
Transposition Cipher adalah algoritma kriptografi dimana urutan abjad dalam teks biasa disusun ulang untuk membentuk teks sandi. Dalam proses ini, huruf teks biasa yang sebenarnya tidak disertakan.
Contoh
Contoh sederhana untuk sandi transposisi adalah columnar transposition cipherdimana setiap karakter dalam teks biasa ditulis secara horizontal dengan lebar alfabet yang ditentukan. Sandi tersebut ditulis secara vertikal, yang menciptakan teks sandi yang sama sekali berbeda.
Pertimbangkan teks biasa hello world, dan mari kita terapkan teknik transposisi kolom sederhana seperti yang ditunjukkan di bawah ini
Karakter teks biasa ditempatkan secara horizontal dan teks sandi dibuat dengan format vertikal sebagai : holewdlo lr. Sekarang, penerima harus menggunakan tabel yang sama untuk mendekripsi teks sandi menjadi teks biasa.
Kode
Kode program berikut menunjukkan implementasi dasar teknik transposisi kolom -
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'))
Penjelasan
Menggunakan fungsi tersebut split_len(), kita dapat membagi karakter teks biasa, yang dapat ditempatkan dalam format kolom atau baris.
encode Metode membantu untuk membuat teks sandi dengan kunci yang menentukan jumlah kolom dan mencetak teks sandi dengan membaca karakter melalui setiap kolom.
Keluaran
Kode program untuk implementasi dasar teknik transposisi kolom memberikan keluaran sebagai berikut -
Note- Cryptanalysts mengamati peningkatan yang signifikan dalam keamanan kripto ketika teknik transposisi dilakukan. Mereka juga mencatat bahwa mengenkripsi ulang teks sandi menggunakan sandi transposisi yang sama menciptakan keamanan yang lebih baik.