Saat (kriptografi) - Clock (cryptography)

In kriptografi , saat tarafından geliştirilen bir yöntem oldu Polonyalı matematikçi-kriptoloji Jerzy Różycki de, Polonya Genelkurmay 'ın Şifreleme Bürosu kolaylaştırmak için, şifresini Alman Enigma şifrelere . Yöntem, farklı devir pozisyonlarından yararlanarak Alman Enigması'nda en sağdaki rotoru belirledi. Kutuplar için, en sağdaki rotoru öğrenmek, rotor sırası arama alanını 3 kat (rotor sayısı) azalttı. İngilizler yöntemi geliştirdi ve sınırlı sayıdaki bombaları daha etkin kullanmalarına izin verdi (İngilizler 5 ila 8 rotorla karşılaştı).

Yöntem

Bu yöntem bazen Enigma makinesinin rotorlarından hangisinin en sağda, yani bir anahtarın her basışında rotorun her zaman döndüğü konumda olduğunu belirlemeyi mümkün kılıyordu . Saat yöntemi, 1933-1935 yılları arasında Jerzy Różycki tarafından geliştirilmiştir.

Marian Rejewski sitesindeki ızgara yöntemi sağ rotor belirleyebilir, ama her biri mümkün olan rotor permütasyon çalışırken içeriyordu onun 26 olası başlangıç devir her birinde (anda üç rotor idi). Izgara yöntemi testleri de bağlantı panosu ayarları nedeniyle karmaşıktı. Aksine, saat yöntemi, santralden etkilenmeyen basit testleri içeriyordu.

1930'ların başında rotor sırasını belirlemek önemli bir yük değildi çünkü Almanlar aynı rotor sırasını her seferinde üç ay kullandılar. Rotor sırası bir kez belirlenebilir ve ardından bu sıra önümüzdeki üç ay boyunca kullanılabilir. 1 Şubat 1936'da Almanlar her ay rotor sırasını değiştirdiler. 1 Kasım 1936'da Almanlar rotor sırasını her gün değiştirdi.

Różycki'nin "saat" yöntemi daha sonra İngiliz kriptolog Alan Turing tarafından Bletchley Park'ta " Banburismus " adlı bir kriptoloji tekniğinin geliştirilmesinde geliştirildi .

Arka fon

Şifreleme Bürosu, Enigma makinesi tarafından şifrelenen Alman telsiz kayıtlarını aldı. 60 ilgili mesajları ile koordineli belirleyebilir Marian Rejewski 'in karakteristik bir yapı mesajı anahtar kodlama için. Büro, zayıf mesaj anahtarlarını kullanarak, mesaj anahtarı kodlamasını belirleyebilir. Bu noktada, kriptanalistler yalnızca mesaj anahtarlarını ve bunların şifreli metnini biliyor olabilir. Kumanda panosu ayarı, halka ayarları, rotor sırası veya ilk ayar gibi günlük anahtarın diğer sırlarını bilmeyebilirler. Bu kadar az bilgi ve biraz şansla, Polonyalılar hala hangi rotorun en doğru olduğunu belirleyebiliyordu.

Günlük trafikte, mesaj anahtarı aynı iki harfle başlayan yaklaşık bir düzine mesaj çifti olabilir. Bu, sol ve orta rotorların aynı konumda olduğu anlamına gelir.

Mesaj çiftinin şifreli metinlerini hizalamanın iki yolu vardır. Her iki hizalama da denenir; hizalamalardan biri özdeş bir çok alfabetik ikame kullanacaktır. Bundan, kriptanalist, belirli bir harf aralığında meydana gelen rotor devrini belirleyebilir.

Rotorların farklı devir pozisyonları vardı. İngilizler anımsatıcı "Yukarıdaki Kraliyet Bayrakları Dalga Kralları" nı kullandı, bu da Rotor I'in R'de, Rotor II'nin F'de, Rotor III'ün W'de, Rotor IV'ün K'da ve diğer tüm rotorların A.

Mesaj çiftleri birlikte çalışırsa, Kutuplar, devrin yalnızca bir rotor içerecek şekilde gerçekleştiği pencereyi daraltabilir. Bir ileti çifti, devrin B - U penceresinde gerçekleştiğini söyleyebilir; bu, rotorlar I (R), II (F) ve IV (K) 'nin yaşayabilir olduğu anlamına geliyordu. İkinci bir mesaj çifti, M'den C'ye bir pencere oluşturabilir; bu, rotorlar I (R), III (W), V + (A) 'nın yaşayabilir olduğu anlamına geliyordu. Yalnızca Rotor I, her iki mesaj çiftini de sağlar, bu nedenle Rotor I, sağ taraftaki rotordur.

Makine ayarları

Enigma şifreleme makinesi, bazı paylaşılan sırlara sahip olan kullanıcılara güveniyordu. İşte 1930 Enigma kılavuzundan gizli günlük ayarlar:

Daily settings (shared secret):
  Rotor Order  : II  I  III
  Ringstellung : 24  13  22 (XMV)
  Reflector    : A
  Plugboard    : A-M, F-I, N-V, P-S, T-U, W-Z
  Grundstellung: 06  15  12 (FOL)

Günlük ayarlar, kod katiplerine makinenin nasıl yapılandırılacağını ve böylece mesajın değiş tokuş edilebileceğini söyledi. Başlangıçta, makinede herhangi bir sırayla (tekerlek sırası veya rotor sırası) düzenlenebilen üç rotor vardı. Her rotorun üzerinde rakamlar veya harfler olan bir halka vardı ve bu halka 26 konumdan herhangi birinde olabilirdi. Bir santral, ek karakterleri değiştirdi.

Her mesaj için, operatör mesajın gövdesini şifrelemek için üç harfli bir mesaj anahtarı seçecektir. Amaç, bu anahtarın rastgele olmasıydı ve her mesaj için rastgele bir anahtar kullanmak iyi bir güvenlik uygulamasıydı. Alıcının mesajın şifresini çözebilmesi için mesaj anahtarının alıcıya iletilmesi gerekiyordu.

Mesaj anahtarlarını açık olarak göndermek yerine, mesaj anahtarları Grundstellung (zemin ayarı) ile şifrelenecektir . Almanlar, ciddi bir prosedür hatasıyla mesaj anahtarını iki kez şifreledi. Mesaj anahtarı "ABL" olsaydı, Almanlar çift anahtar "ABLABL" ı şifreler ve sonucu ("PKPJXI") gönderirdi. Mesaj anahtarının iki kez gönderilmesi, iletim sırasında bozuk anahtarların kurtarılmasına izin verdi, ancak kriptografik hata, şifrelenmiş anahtarı iki kez göndermek yerine (örneğin, "PKPPKP") ikiye katlanmış anahtarı şifrelemekti. İkiye katlanan anahtar, Polonyalılara bir saldırıya neden oldu. Aynı günlük anahtarı (yaklaşık 70 mesaj) kullanan yeterli mesaj trafiği varsa ve kod katipleri zayıf anahtarlar ("CCC" veya "WER" gibi) kullanıyorsa, Polonyalılar tüm günün mesajını belirlemek için Rejewski'nin karakteristik yöntemini kullanabilir. anahtarlar. Şaşırtıcı bir şekilde, Polonyalılar günlük makine ayarlarının önemli sırlarını öğrenmeden mesaj anahtarlarını kırdı: santral ayarları, rotor sırası, rotor konumları veya halka ayarları.

Polonyalılar, kalan sırları elde etmek için başka teknikler kullanmak zorundaydı; saat yöntemi rotor sırasının belirlenmesine yardımcı oldu.

Enigma rotorları. Devir çentiği 13 yakınında sol rotorda görülebilir. Merkeze yakın sağ rotor işareti, rotor II olduğunu gösterir.

Farklı rotorların farklı devir pozisyonları vardır

Saat yöntemi, farklı devir konumlarına sahip üç rotoru (I, II, III) kullandı . Her karakter şifrelenirken en sağdaki rotor hareket etti. Halka üzerinde belirli bir konumda, karakterin şifrelenmesi, soldaki bir sonraki rotorun bir konum (bir devir) hareket etmesine neden olur. Bir sonraki rotorun hareket etmesine neden olan halka pozisyonu her rotor için farklıydı: QR geçişinde ilerletilen rotor I ("kraliyet"); EF'de geliştirilmiş rotor II ("bayraklar"); Rotor III, VW'de ilerlemiştir ("dalga"). Devir tespit edilebiliyorsa, en sağdaki rotor tanımlanabilir.

Polonyalılar, mesaj anahtarını kırdıkları için, her mesajın zil pozisyonlarını biliyorlardı çünkü zil pozisyonları mesaj anahtarıydı.

Yeterli trafikle, Kutuplar aynı iki karakterle başlayan mesaj anahtarlarını bulacaktır. Kutupların "AAA" ve "AAT" tuşlarıyla mesaj aldığını söyleyin.

Message Key AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKG
Message Key AAT: SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMX

Tesadüf indeksi

Yeterince uzun bir mesajda rastlantı indeksini kullanarak, Polonyalılar rotor ayarlarının nerede çakıştığını belirleyebilir. Bu belirleme istatistikseldir, ancak aynı zamanda inceliklidir. Bir dildeki tek tip olmayan harf sıklığını kullanır . Harfleri hizalı olarak iki cümle düşünün. Harfler aynı frekansta olsaydı, ilk cümledeki bir harf, ikinci cümlenin aynı konumundaki harfle 1/26 (0.038) olasılıkla eşleşirdi. Doğal diller için, "e" gibi karakterler çok daha olasıdır, bu nedenle tesadüf şansı çok daha yüksektir. İşte ilk 28 karakterde altı çakışma olduğu bir durum (26 karakter başına beklenen 1,73 eşleşmeden çok daha fazla):

WEHOLDTHESETRUTHSTOBESELFEVIDENT
WHENINTHECOURSEOFHUMANEVENTS
*     ***   *         *

Tesadüf indeksi, karşılaştırılan iki dizgenin aynı poli alfabetik anahtar altında şifrelenmesi durumunda da geçerlidir; karakterler eşitse, şifreleri de eşittir. Tersine, dizeler farklı bir poli alfabetik anahtar altında şifrelenmişse, dizeler rastgele hale getirilecek ve tesadüf indeksi yalnızca rastgele eşleşmeleri gösterecektir (26 karakterden 1'i eşleşecektir).

İki dizi yeterince uzunsa (örneğin 260 karakter), çakışma indeksi dizelerin aynı polifabetik anahtar (yani, aynı rotor konfigürasyonu) altında şifrelenip şifrelenmediğine dair bir gösterge verecektir.

Rotor konumu ve tesadüf

Tesadüf endeksini saçma bir seviyeye vurgulamak için, yukarıdaki iki örnek mesaj tamamen "A" harfinden oluşur, bu nedenle tesadüfler aynı rotor pozisyonlarını paylaşan her pozisyonda meydana gelir (normal mesajlarda olmayacak bir şey). Bu, tesadüfün kısa bir mesajda bile net bir şekilde açık olmasına izin verir. Pratikte, iyi bir istatistiksel gösterge elde etmek için uzun mesajlara ihtiyaç vardır.

Polonyalılar, anahtarları aynı iki harfle başlayan bir çift mesaj bulmak için günlük trafiği araştırdı. Örnek anahtar çiftleri ("UIB", "UIW") veya ("GCE", "GCX") olacaktır. Bir mesaj anahtarının ilk iki harfinin başka bir mesajın anahtarıyla eşleşme şansı küçüktür ( 1 / (26 × 26) = 1/576 ), ancak bir mesaj dizisinde böyle bir çift bulunması olası olabilir; böyle bir eşleşme bulmak doğum günü problemine bir örnektir .

Polonyalılar ilk iki harfin eşleşmesini istedi çünkü bu, sol ve orta rotorların aynı dönüşte olduğu ve aynı permütasyonu üreteceği anlamına geliyordu. Kutuplar ayrıca anahtarın farklı üçüncü harfini hesaba katmak için iki mesajı hizalayabilir. Yukarıdan ("AAA", "AAT") örnek çifti verildiğinde, Kutuplar, mesajların ortak bir anahtarı (ortak rotor dönüşleri) paylaşması için mesajların hizalanmasının iki olası yolu olduğunu biliyordu. İki durum, devrin (orta rotorun hareketi) "A" ile "T" arasında mı yoksa "T" ile "A" arasında mı gerçekleştiğini yansıtır.

                 A                  T
right rotor pos: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
Message Key AAA:  BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKG
Message Key AAT:                     SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMX
Coincidence:                         ===============================
Conclusion: same key, so no turnover in A-T.
                 T      A
right rotor pos: TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS
Message Key AAT:  SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMX
Message Key AAA:         BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKG
Coincidence:   
Conclusion: different key, so turnover in T-A                                                    

Orta rotor, hangi rotorun en sağ (hızlı) konumda olduğuna bağlı olarak farklı konumlarda dönecektir. Rotor I, II ve III için değişim noktaları 1, 2 ve 3 ile gösterilir. Orta rotor konumu, sağ rotor I, II veya III olduğu varsayılarak verilir.

Message Key AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKG
turnover             2           1    3        2           1    3
Right           ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY
Middle(I)       AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCC
Middle(II)      AAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCC
Middle(III)     AAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCCC

Message Key AAT:                    SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMX
turnover                              3        2           1    3
Right                              TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY
Middle(I)                          AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBB
Middle(II)                         AAAAAAAAAAAABBBBBBBBBBBBBBBBBBBB
Middle(III)                        AAABBBBBBBBBBBBBBBBBBBBBBBBBBCCC

Dil temelli tesadüflerin meydana gelmesi için, üç rotorun da senkronize olması gerekir. Değilse, düz metin rastgele karıştırılır ve dil özellikleri görünmez. Tesadüfün meydana geldiği bölgeye bakıldığında bazı gözlemler yapılabilir. Rotor I sağda olsaydı, ortadaki rotor asla eşleşmez ve tesadüf indeksi bir tesadüf olduğunu göstermez. Rotor II sağda olsaydı, orta rotor da asla eşleşmezdi. Rotor III, tam bir uyum gösterir. Sonuç olarak, en sağdaki rotor rotor III olacaktır.

Bu noktada, Kutuplar sağ rotorun III olduğunu ve rotor sırasının (I, II, III) veya (II, I, III) olduğunu bileceklerdir. Mesaj anahtarını bilmelerine rağmen, halka ayarlarını bilmiyorlardı, bu nedenle rotorların mutlak konumlarını bilmiyorlardı. Ayrıca santral ayarlarını da bilmiyorlardı. Polonyalılar bu bilgiyi öğrenmek için başka yöntemler kullanabilirdi, ancak bu yöntemler doğru rotoru bilmekle basitleştirilebilirdi.

Yarar

Önceleri, saat yöntemi çok önemli değildi. 1932'de Almanlar aynı rotor sırasını bir seferde üç ay boyunca tuttu. 1 Şubat 1936'da Almanlar her ay rotor sırasını değiştirdiler. Günlük tekerlek düzeni değişiklikleri 1 Kasım 1936'da başladı.

Ekim 1936'da Almanlar fiş sayısını altıdan sekize çıkardı ve bu da ızgara yöntemini karmaşıklaştırdı. Polonyalılar siklometre ve kart kataloğunu geliştirdi. Yeni yöntem bir yıl için hazır olmasa da, çok az işle tüm rotor sırasını (sadece doğru rotoru değil) belirledi. Ne yazık ki katalog, 2 Kasım 1937'de Almanlar reflektörü değiştirdiğinde işe yaramaz hale geldi; yeni bir katalog yapılması gerekiyordu.

15 Eylül 1938'de Almanlar, bir ağdaki mesajların aynı Grundstellung'u kullanmaması için prosedürlerini değiştirdiler . Mesaj anahtarı artık kolayca bilinemeyeceği için değişiklik saat yöntemini karmaşıklaştıracaktır.

İngiliz kod kırıcılar saat yöntemini genişletti; bkz. Banburismus . Alman deniz kuvvetleri Enigma mesajları aynı Grundstellung'u kullanıyordu ve İngiliz kod kırıcılar şifreli mesaj anahtarlarını belirleyebiliyordu. Şifrelenmiş anahtarların son harfi hariç tümü eşleşirse, sağ rotor haricinde aynı rotor konumlarına sahip olurlar. Sorun, İngilizlerin düz metin mesaj anahtarları (Kutuplar gibi) değil, şifreli mesaj anahtarları ile eşleşmesiydi, bu nedenle şifrelenmiş mesaj anahtarının son harfi doğal bir "ABCDE ... WXYZ" sıralamasına sahip değildi, bunun yerine keyfi bir sıraya sahipti. Sadece iki ofsete bakmak yerine, İngilizler, doğru rotoru belirleyebilmeleri için tüm olası ofsetlere bakmak ve üçüncü tekerlek sırasından yeterince çıkarım yapmak zorunda kaldılar. Son rotorun doğru bir şekilde tahmin edilmesi, İngilizlere çok değerli Bombe zamanı kazandırabilir.

Notlar

Referanslar