Kod (kriptografi)
Kodların kriptanalizi

Bir monoalfabetik yerine koyma şifresi, çözmek kolay olsa da, basit bir kodu çözmek bile zordur. Şifreli bir mesajın şifresini çözmek biraz yabancı dilde yazılmış bir belgeyi tercüme etmeye benzer; bu görev temelde kod grupları ve bunların temsil ettiği açık metin sözcüklerinden oluşan bir "sözlük" oluşturmaktan ibarettir.
Basit bir kodun zayıflık noktalarından biri, İngilizcedeki "the" veya "a" gibi bazı kelimelerin diğerlerinden daha yaygın olduğu gerçeğidir. Telgraf mesajlarında "STOP" (yani cümle ya da paragraf sonu) kod grubu genellikle çok yaygındır. Bu, anlamları olmasa da cümleler açısından mesajın yapısını tanımlamaya yardımcı olur ve bu kriptanalitik olarak yararlıdır.
Aynı kodla şifrelenmiş birçok kodeks toplayarak ve daha sonra diğer kaynaklardan gelen bilgileri kullanarak bir koda karşı daha fazla ilerleme kaydedilebilir
ajanlar
gazeteler
diplomatik kokteyl partisi sohbeti
bir mesajın gönderildiği konum
nereye gönderildiği (yani, trafik analizi)
mesajın gönderildiği saat,
mesaj gönderilmeden önce ve sonra meydana gelen olaylar
şifreli mesajları gönderen kişilerin normal alışkanlıkları
vb.
Örneğin, neredeyse sadece belirli bir ordudan gelen mesajlarda bulunan ve başka hiçbir yerde bulunmayan belirli bir kod grubu pekala o ordunun komutanını gösteriyor olabilir. Belirli bir yere yapılan bir saldırıdan önceki mesajlarda görülen bir kod grubu pekala o yeri temsil ediyor olabilir.
Hatılatıcılar, kod gruplarının tanımları için anında bir hediye olabilir. Kod grupları belirlendikçe, bağlamdan ve eğitimli tahminlerden ortaya çıkan daha fazla kod grubu ile kademeli olarak kritik bir kütle oluşturabilirler. Tek parçalı kodlar, iki parçalı kodlara göre bu tür eğitimli tahminlere karşı daha savunmasızdır, çünkü tek parçalı bir kodun "26839" kod numarasının "buldozer" anlamına geldiği belirlenirse, daha düşük kod numarası olan "17598" muhtemelen "a" veya "b" ile başlayan bir düz metin kelimesini temsil edecektir. En azından basit tek parçalı kodlar için.
Örneğin bir düşmana karşı belirli bir zamanda ve yerde bir baskın düzenlemek ve ardından baskından sonra gönderilen kod mesajlarını incelemek suretiyle kodlanmış bir mesaja "ekim" veya bilgi "tohumlama" için çeşitli hileler kullanılabilir. Kodlama hataları bir kodun içine özellikle faydalı bir parmak izidir; insanlar güvenilir bir şekilde hata yaparlar, bazen de feci hatalar. Veri yerleştirmek ve hatalardan faydalanmak şifrelere karşı da işe yarar.
Bir kodu kırmanın en bariz ve en azından prensipte en basit yolu kod kitabını rüşvet, hırsızlık veya baskın yoluyla çalmaktır — bazen "pratik kriptografi" ifadesiyle yüceltilen prosedürler — ve bu hem kodlar hem de şifreler için bir zayıflıktır, ancak kod kitapları genellikle şifreli anahtarlardan daha büyüktür ve daha uzun süre kullanılır. İyi bir kodu kırmak bir şifreyi kırmaktan daha zor olsa da, kod kitaplarını yazma ve dağıtma ihtiyacı ciddi sıkıntılar yaratmaktadır.
Yeni bir kod oluşturmak, yeni bir dil inşa etmek ve bunun için bir sözlük yazmak gibidir; bilgisayarlardan önce bu özellikle büyük bir işti. Bir kod ele geçirilirse, tüm görevin baştan yapılması gerekir ve bu da hem kriptograflar hem de kod kullanıcıları için çok fazla iş anlamına gelir. Pratikte, kodlar yaygın olarak kullanıldığında, kod kırıcıları hayal kırıklığına uğratmak ve çalınan veya kopyalanan kod kitaplarının kullanım ömrünü sınırlamak için genellikle periyodik olarak değiştirilirlerdi.
Kodlar oluşturulduktan sonra, kod kitabı dağıtımı lojistik açıdan hantaldır ve kodun ele geçirilme olasılığını artırır. "İkisi ölmüşse üç kişi bir sırrı saklayabilir" (Benjamin Franklin - Wikiquote) diye bir söz vardır ve biraz abartılı olsa da, bir sır birkaç kişi arasında paylaşılırsa saklanması zorlaşır. Kodlar sadece birkaç dikkatli kişi tarafından kullanılıyorsa makul ölçüde güvenli olduğu düşünülebilir, ancak tüm ordular aynı kod kitabını kullanıyorsa, güvenlik çok daha zor hale gelir.
Buna karşılık, şifrelerin güvenliği genellikle şifre anahtarlarının korunmasına bağlıdır. Şifre anahtarları çalınabilir ve insanlar bunlara ihanet edebilir, ancak değiştirilmeleri ve dağıtılmaları çok daha kolaydır.