bilgi teknolojilerinde güvenlik ve kriptografi
Transkript
bilgi teknolojilerinde güvenlik ve kriptografi
T.C. EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİ TEKNOLOJİLERİNDE GÜVENLİK VE KRİPTOGRAFİ LİSANS TEZİ HAZIRLAYAN Tahir Emre KALAYCI DANIŞMAN Prof. Dr. Levent TOKER Haziran, 2003 İZMİR T.C. EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİ TEKNOLOJİLERİNDE GÜVENLİK VE KRİPTOGRAFİ LİSANS TEZİ HAZIRLAYAN Tahir Emre KALAYCI DANIŞMAN Prof. Dr. Levent TOKER Haziran, 2003 İZMİR TEŞEKKÜR Tez çalışması sırasında ilgi ve desteğini üzerimden eksik etmeyen tez danışmanım Prof. Dr. Levent TOKER’e teşekkürü bir borç bilirim.Sahip olduğu insani değerlerle bana örnek teşkil eden ve tezde dahil olmak üzere her türlü çalışmamda yakın ilgi gösteren bölümümün tez koordinatörü Yrd. Doç. Dr. Aybars UĞUR’a minnetimi belirtmek isterim. Ayrıca bu tezi hazırlarken gereksinim duyduğum bilgi birikimini bana kazandıran bölümdeki tüm öğretim görevlilerine, arkadaşlarıma ve aileme teşekkür ederim. ÖZET Bu tez çalışmasına, bilgisayar ve ağ sistemlerindeki güvenlik mekanizmalarının işleyişine duyduğum merak sebep olmuştur. Bilimsel çalışmaların kaynağını oluşturan merak beni de bu konuda geniş bir araştırma yapmaya zorlamış oldu. Geleneksel bilgi teknolojileri güvenliğini araştırmaya başlayıp az bilinen ama en çok kullanılan güvenlik mekanizmalarından olan kriptografi araştırmasıyla yoluma devam ettim. Sonuçta tam olarak çalışan bir sistem üzerinde araştırmalarımı test etmeye zamanım yetmese de yaptığım bu çalışmanın bu tip çalışmalara ön ayak olmasını, kaynak teşkil etmesini umduğum bu belgeyi ortayta çıkarabildim. Bu belge içerisinde bilgi teknolojilerinin, bilgilerin güvenliğinin sağlanması için yöntemler, kriptografinin tarihçesi, bilgisayar çağında kriptografinin hızlı gelişimi, önemli algoritmalara örneklerle açıklamaya çalıştım. Belgeyi yazarken amacım olan yeterince algoritma inceleyip bunları anlamaya çalışmam belirgin bir sonuç vermiş olup, iç sayfalarda da göreceğiniz gibi ağırlıklı olarak ikinci bölümden itibaren algoritmalar üzerinden kriptografi tarihçesini anlatmaya çalıştım. Algoritmaların incelenmesi başlı başına bir bölüm olabileceği gibi burada olduğu gibi tarihsel olarak incelenebilir. Bu çalışmanın bu konudaki araştırma eksikliğini bir nebze olsun kapatmasını umduğum gibi gelecek çalışmalara kaynak teşkil etmesini ümit ediyorum. İçindekiler I Şekil Dizini II Teşekkür III Özet IV Önsöz V Giriş VI 1. Bilgi Teknolojileri Güvenliği 1 1.1 Güvenlik Organizasyonu 1 1.1.1 Roller ve Sorumluluklar 1 1.1.2 Süreçler 3 1.1.3 Güvenlik Bilgi Merkezi 4 1.2 Bilginin Sınıflandırılması 5 1.2.1 Elde Edilebilirliğe Göre Sınıflandırma 5 1.2.2 Duyarlılığa Göre Sınıflandırma 6 1.3 Güvenlik Politikaları 7 1.3.1 Tüzel Politika 8 1.3.2 Bilgi Güvenliği Politikası 8 1.3.3 Personel Güvenlik Politikası 9 1.3.4 Bilgisayar ve Ağ Politikası 12 1.4 Fiziksel Güvenlik 13 1.4.1 Binalar 13 1.4.2 Verinin Taşınması 14 1.4.3 Yedeklemeler 14 1.4.4 Diskler 14 1.4.5 Dizüstü Bilgisayarlar 15 1.4.6 Yazıcılar 15 1.4.7 Bilgisayarlar 15 1.4.8 “Temiz Masaüstü” 16 1.5 Güvenlik Mekanizmaları 2 16 1.5.1 Kriptografi ve Dijital İmzalar 16 1.5.2 Kimlik Doğrulama 18 1.5.3 Erişim Kontrol Listeleri 18 Kriptografi Tarihçesi 2.1 Kağıt,Kalem Sistemleri 19 20 2.1.1 Basit Yerine Koyma Yöntemi Kriptoanalizi 21 2.1.2 Yer Değiştirme Yöntemleri 23 2.1.3 Yerine Koyma Yöntemini Geliştirmek 28 2.1.4 Kod Kitapları 42 2.2 Elektriksel ve Mekanik Şifreleme Makineleri 43 2.2.1 Erken Şifreleme Makineleri 43 2.2.2 Rotor Makineleri ve PURPLE Kuzenleri 47 2.2.3 Enigma:Eşsiz Rotor Makinesi 52 2.3 Bilgisayar Çağı 54 2.3.1 LUCIFER:İlk Blok Cipher 54 2.3.2 “Data Encryption Standard” 57 2.3.3 IDEA (“International Data Encryption Algorithm”) 61 2.3.4 Blowfish 64 2.3.5 ICE 66 2.3.6 Johnson Algoritması 2.4 128 Bit Çağı:AES (“Advanced Encryption Standard”) 69 2.4.1 Twofish 69 2.4.2 SERPENT 73 2.4.3 RC6 75 2.4.4 MARS 76 2.4.5 Rijndael (AES) 81 2.5 Açık (Bilinen) Anahtar Şifreleme (“Public Key Cryptography”) Kaynakça 67 85 2.5.1 Modüler Aritmetik 86 2.5.2 RSA (Rivest-Shamir-Adleman) 87 2.5.3 Diffie-Hellman 88 90 Şekiller Şekil 2.1 Sf. 21 Spartalıların Scytale Yönteminin Kurşun Kalem Üzerinde Uygulanması Şekil 2.2 Sf. 45 Klasik Wheatstone Diski Şekil 2.3 Sf. 51 PURPLE Kablolamasını Gösteren Bir Resim Şekil 2.4 Sf. 51 Enigma’nın Genel Yapısını Şekil 2.5 Sf. 55 LUCIFER’in Bir Turundaki İşlemleri Gösteren Resim Şekil 2.6 Sf. 55 LUCIFER’in S-Box Yapısı Şekil 2.7 Sf. 59 DES’in f Fonksiyon Detayı Şekil 2.8 Sf. 59 DES’in Genel Blok Cipher Yapısı Şekil 2.9 Sf. 62 IDEA Detayı Şekil 2.10 Sf. 63 IDEA Genel Şekil Şekil 2.11 Sf. 66 ICE Şekli Şekil 2.12 Sf. 67 Johnson Algoritmasının Bir Tur Şekli Şekil 2.13 Sf. 74 SERPENT’ten Bir Kesit Şekil 2.14 Sf. 77 MARS’ın Kriptografik Çekirdek İşlemleri Şekil 2.15 Sf. 78 MARS’ın Genel Yapısı Şekil 2.16 Sf. 82 Rijndael’in Bir Turunu Gösteren Şekil 1. 1.1 BİLGİ TEKNOLOJİSİ GÜVENLİĞİ Güvenlik Organizasyonu Bir bilginin güvenliğini sağlamak aşağıdaki işlemleri gerektirmektedir: 1. Güvenlik politika ve stratejilerinin belirlenmesi 2. Politikaların gerçekleştirilmesi:Roller, sorumluluklar ve organizasyon: a. Bilgi Teknolojisi(BT) güvenliği organizasyonu için görev ve stratejilerin açık tanımlarını gerektirir. (Güvenlik roller ve işlem tanımları) b. Kullanıcılar, yöneticiler ve müdürler rol ve sorumluluklarını bilmeli ve haberdar olmalıdır. c. Kullanıcı ve destek personelinin kendi sorumlulukları hakkında bir eğitime ihtiyacı olabilir. 3. Güvenlik mekanizmaları ve kontrolleri güvenliğin yürüyebilmesi için verimli bir şekilde kullanılmalıdır. 4. Belli sistemler için tanımlı açık teknik noktalar ve kontroller elde olmalıdır. 5. Güvence(assurance) (düzenli denetimler, risklerin düzenli olarak gözden geçirilmesi) 1.1.1 Roller ve Sorumluluklar Şirketin büyüklüğüne bağlı olmak üzere roller ve sorumluluklar aşağıdaki şekilde eşlenebilir. Önemli olan nokta sorumluluklarının açık olması ve bu sorumluluğa sahip kişilerin bu sorumluluklarını kolayca yerine getirmeleri gerekmesidir. (örneğin önemli olan bazı kararları almada gerekli olan güç ve tecrübe/bilgiye sahip olmalı ve bunları kullanabilmeli) İdareciler(Executives):Yöneticiler, Üst yöneticiler ve denk olanlar güvenlik stratejilerinden sorumludurlar ve tehlikelere karşı kaynakların aktarılmasını sağlamalıdır. Bu kişiler ayrıca stratejiyi yaymak ve güvenlikten haberdara bir kültür oluşturmakla sorumludurlar. BT Güvenlik Müdürü:Bu kişi güvenlik girişimlerinden sorumludur. Ayrıca BT güvenlik rehberlerini işlemin sahibiyle birlikte hazırlar. Bu kişi güvenliği takip etmeli ve 1 gerekli durumlardan yönetimi bilgilendirmelidir. Risk analizini de yapmalıdır. Bu kişinin güncel güvenlik konularını/sorunlarını/çözümlerini bilmesi önemlidir. Ayrıca çözüm ortağı şirketler ve güvenlik organizasyonları ile eşgüdümü sağlaması da önemlidir. İş Süreci/Veri/İşlem sahibi:Doğrudan doğruya özel bir süreç veya iş parçalarından sorumlu olup üst yönetime raporlar sunar. Kendisinin sorumlu olduğu verinin güvenliği ile ilgili rehberler/süreçler hazırlar ve güvenlik başarısızlıklarının etkilerini analiz eder. Denetimde bir etkisi yoktur. Sistem Sağlayıcı(Supplier):Sistemi kurar ve bakımını yapar. İki tarafında sorumluluklarını ve rollerini belirleyen servis antlaşması olmalıdır. Bu kişi dışarıdaki şirketlerden biri veya şirket içinden biri olabilir. Bu kişi güvenlik mekanizmalarının doğru kullanımından sorumludur. Sistem Tasarımcısı:Sistemi tasarlayan kişi olarak sistemin güvenle kullanılabilmesi için anahtar bir rolü vardır. Yeni geliştirilen projelerde güvenlik gereksinimlerini erken aşamalarda gözden geçirmelidir. Proje Liderleri:Güvenlik rehberlerinin projelerde uygulandığından emin olmalıdır. Hizmet Müdürleri:Personellerinin tam olarak güvenlik politikalarından haberdar olmalarından ve politikalarla çelişen amaçlar içermemelerinden sorumludur. Bu kişi politikaların yapılmasını zorlar ve olağan ilerlemeden sorumludur. Kullanıcılar:Kullanıcılar veya “bilgi işleyiciler/operatörleri” kendi hareketlerinden sorumludurlar. Güvenlik politikalarının farkında olmalıdırlar. Ayrıca yaptıkları hareketlerinin sonuçlarını anlamalı buna göre hareket etmelidirler. İstedikleri gibi kullanabilecekleri güvenlik mekanizmaları vardır. Ve bunlarla güvenlik düzeyini aşmamak üzere diledikleri gibi uğraşabilirler. Kullanıcılar sınıflandırılmamış gizli bilgi aldıkları zaman bu bilgiyi sınıflandırmadan ve dağıtmadan sorumludurlar. Denetleyici:İçeriden yada dışarıdan olabilecek bağımsız bir kişidir. BT güvenliğinin durumunu kontrol ve takip eder, hesaplar kayıtlarının geçerliliğini kontrol eder. Bu kişinin bağımsız olması, güvenlik yönetiminden olmaması önemlidir. Genellikle dışarıdan getirilen danışmanlar politikalar, süreçler, organizasyon ve mekanizmalar hakkında daha objektif bir bakış açısıyla değerlendirme yapabilirler. 2 1.1.2 Süreçler Güvenlik Yardım Masası: • Kullanıcı hesap yönetiminden sorumludur. • Kullanıcılar bir problemleri olduğunda ararlar. Eğer yardım masası sorunu çözemezse problemi takip edip sistem yöneticilerini ve satıcıları bilgilendirmekten sorumludur. • Kullanıcılar bu masaya erişip şifrelerini unuttukları zaman şifrelerini öğrenebilmelidirler. • Telefon üzerinde şifrelerin nasıl değiştirileceği bu süreçte önemlidir. Bir şekilde kanıtlama mekanizması gereklidir. Değiştirme Yönetimi: • Donanımı ve yazılımı kim kuracak ve güncelleyecek? • Yeni kurulan yazılımın test edilmesi gerekir. • Değişiklikler dikkatlice belirlenmeli ve gerçekleştirilmelidir. Değişiklikler negatif bir etkiye sebep olursa kolayca eski haline döndürülebilmelidir. Donanım değişikliklerinde donanıma zarar verebilecek statik elektriği önleyecek giysiler giyilmeli, uygun araçlar kullanılmalıdır. • KISS(“Keep It Simple, Stupid”) denilen yöntemi takip etmek gerekir. Bozulmadıkça onarma, anlayışı geçerli olmalıdır. Sadece güncellemeleri kurmak gerekliyse kurulmalıdır. Sistem Takibi, Gözlemlenmesi:Sistemin kim tarafından, nasıl hangi araçlarla takibinin yapılacağı sürecidir. Büyük organizasyonlarda merkezi olmayan takip en etkili yol olmaktadır. Veri Yedekleme/Eski Haline Getirme:Süreçler ve sorumluluklar güvenilir yedeklerin alınması ve gerektiğinde eski hale getirmelerin sağlanması içi iyi tanımlanmalıdır. Eski haline getirme politikası düzenli olarak test edilmelidir. Sistem Denetimleri: • Sunucular düzenli olarak denetlenmelidir. (Örneğin yılda bir kere) 3 • Basitlik için her güvenlik düzeyi/İşletim Sistemi için denetim kontrol listeleri oluşturulmalıdır. • Denetleyici yöneticilerden bağımsız ve objektif olmalıdır. • Denetleyici şunları kontrol etmelidir:rehberler, politikalar, kullanıcılar, yönetim, BT Güvenlik müdürleri, yöneticiler, BT kaynakları. Kriz Yönetimi/Felaket Planlaması/Tehlike Yanıt Takımı:Katı güvenlik politikasına rağmen eğitimli kullanıcı ve yöneticilerden oluşturulmuş tehlike hali takımı oluşturulması ve felaket senaryoları ile planlar kurulması önemlidir. • Takımda kimler vardır?Ve ciddi bir güvenlik açığında nasıl davranmalıdır? • Eğer iç personelin yeterince deneyimi yoksa dışarıdan bir şirket ile tehlikeler için antlaşma imzalanmalıdır. • Bir güvenlik kazası durumunda kimin talimatlardan sorumlu olacağı ve komuta zinciri (süreçler/sorumluluklarla birlikte) iyice belirlenmelidir. • Önemli isimler, telefon numaraları ve elektronik posta adreslerinin kağıtlara da yazılması gerekir. Bilgisayardaki verilerin bir tehlike anında erişilemez olma ihtimali yüksektir. 1.1.3 Güvenlik Bilgi Merkezi Doğru zamanda doğru bilgiye sahip olmak önemlidir. • Geçerli güvenlik konularıyla ilgili kitaplara sahip olmak, İnternet güvenlik haber gruplarına, e-posta listelerine, www sunucularına ve dosya transfer sunucularına erişebilmek tavsiye edilmektedir. • Güvenlik ve standartlarla ilgili şirket dokümanları ulaşılabilir olmalıdır. • Kuralların, politikaların, dokümanların ve adreslerin kağıt üstünde yer alması faydalı olacaktır. İçsel birimlere aşağıdaki servisler sunulabilir: • Güvenlik Kütüphanesi (yukarıda anlatıldığı gibi) • Risk Analizi 4 • Eğitim:Kullanıcılar, yöneticiler, hizmet müdürleri, vb. için BT güvenlik kursları • Her önemli İşletim Sistemi / uygulama / sistem için ve güvenlik geliştirmede çalışan teknik uzmanlar. Her uzman tüm yeni güvenlik problem ve çözümlerden haberdar olmalıdır. • Yeni sistemlerin geliştirilmesinde ve alınmasında rehberlik • Yeni sistemlerin test edilmesi • Sistemler ve süreçlerin tek bir kere gerçekleşen ve politikalara uygunluklarının ve zayıflıklarının tespit edildiği denetimlerin gerçekleştirilmesi • İstatiksel analizler:sistem kullanımının düzenli raporları, performans, kullanıcı davranışları, teknolojik modalar ve dışsal kullanım hakkında raporlar. 1.2 Bilginin Sınıflandırması Farklı tipteki bilgilerin farklı şekillerde korunması gerekmektedir. Bu yüzden bir sınıflandırma sistemi bilgi içinde gereklidir. Böylece politikalar bilginin sınıfına ve kullanılacak mekanizmaya göre rahatça yazılıp kullanılmaya zorlanabilir. 1.2.1 Elde Edilebilirliğe(“availability”) Göre Sınıflandırma Burada dört adet elde edilebilirlik sınıfı olan bir sınıflandırma sistemi önerilmektedir. Bu tamamen Sean Boran (“IT Security Cookbook” yazarı) tarafından tavsiye edilen ve kendi tecrübelerine dayanan sınıflandırmadır, bu tip sınıflandırma için belli bir standart yoktur. Elde edilebilirliği arttırmak için, engelleyici ölçüler (preventative measures) “downtime” olasılığını düşürür, eski haline getirme ölçüleri(recovery measures) ise bir olaydan sonraki “downtime”ı düşürür. Sınıf Her olayda azami izin verilen sunucu “downtime” Çalışma Günleri? 1.Seviye 2.Seviye 3.Seviye 4.Seviye 1 Hafta 1 Gün 1 Saat 1 Saat Pazartesi- Pazartesi- Pazartesi- 7 Gün 5 Cuma Cuma Çalışma Saatleri? Beklenen ulaşılabilirlik (availability) değeri? Beklenen azami “downtime” 80% 95% 1 gün/hafta 2 saat/hafta Cuma 07:00-18:00 24s 99. 5% 99. 9% 20dk. /hafta 12dk. /ay Tablo 1.1 Bilgilerin Sınıfları ve Özellikleri 1.2.2 Duyarlılığa(sensitivity) Göre Sınıflandırma Bu sınıflandırma sisteminde bilgiyi/süreçleri dört seviyeye ayırmayı teklif etmektedir. En düşük seviye en az duyarlı, en üst seviye ise en önemli bilgi/süreç içindir. Kavramlar: • Her bilginin bir sahibi vardır. • Verinin yada sürecin sahibi bilgiyi güvenlik seviyelerinden biri olarak yasal sorumluluklara, maliyete, politika ve iş ihtiyaçlarına göre tanımlamalıdır. • Eğer sahibi verinin hangi seviyede olması gerektiğini bilmiyorsa 3. seviyeyi kullanmalıdır. • Sahibi veriye kimin erişebileceğini bildirmelidir. • Sahibi bu veriden sorumludur ve güvenliğini sağlamalıdır veya seviyesini uygun olarak belirtip güvenliğinin güvenlik yöneticileri tarafından sağlanmasından emin olmalıdır. • Tüm belgeler sınıflandırılmalı ve bu sınıfları en azından başlık sayfada yazılmalıdır. Bir sistem aşağıdaki sınıflar yardımıyla sınıflandırıldıktan sonra bu sistem aşağıdaki belirtilen kendi sınıfının yönergelerine göre kurulmalıdır. Bu sınıflandırmada her sınıf bir önceki sınıfın yönergelerini de içerir. Örneğin sistem için 3 numaralı sınıfı seçersek bu sistem için 1, 2 ve 3. seviye yönergeleri takip etmeliyiz. 6 1. Seviye(Genel/Sınıflandırılmamış bilgi):Bu tip sistemlerdeki veriler şirket için bir zarar yaratmadan kamuya ulaşabilir. Veri bütünlüğü (data integrity) çok gerekli değildir. İstenmeyen saldırılar sonucu servisin kaybı kabul edilebilir tehlikelerdir. Örnekler:Gizli bilgi içermeyen test servisleri, kamusal bilgi servisleri, geniş alanlara dağıtılan ürün broşürleri, kamusal alandaki veriler, . . . 2. Seviye(İçsel bilgi):Bu bilgiye dışarıdan erişim engellenmektedir. Bu bilginin kamuya açıklanması çok kritik sonuçlar doğurmaz. (Örneğin sadece şirketi sıkıntıya sokar). İçsel erişim seçimliktir. Veri bütünlüğü önemlidir ama hayati değildir. Bu tip veriye örnekler geliştirme gruplarında bulunur(elde yaşayan veri bulunmadığı), bazı üretim kamu servisleri, bazı müşteri bilgileri, “normal” çalışma belgeleri ve proje/toplantı protokolleri, telefon defterleri, . . . 3. Seviye(Gizli bilgi):Bu sınıftaki veriler şirket içinde sır şeklindedir ve dışarıdan erişim tamamen yasaklanmıştır. Bu verilerin dışarıdan erişilmesi şirketin verimini, parasal gelirini düşürebilir, rakip firmalara önemli kazançlar sağlayabilir ve müşteri güvenini düşürebilir. Veri bütünlüğü yaşamsal öneme sahiptir. Örnekler:Ücretler, personel verileri, hesap verileri, şifreler, şirket güvenliğinin zayıflık bilgileri, çok gizli müşteri verileri ve gizli antlaşmalar, . . . 4. Seviye(Çok gizli bilgi):Yetkisiz içeriden yada dışarıdan erişimin engellendiği verilerdir. Bu tip erişimler şirket için çok kritik sonuçlar doğurabilir. Veri bütünlüğü yaşamsal öneme sahiptir. Bu tip veriye ulaşan insan sayısı çok az olmalıdır. Bu tip verinin kullanımında çok kesin kurallar koyulmalıdır. Örnekler:Askeri veri, çok gizli antlaşmalar 1.3 Güvenlik Politikaları Güvenlik politikası güvenlik için uygulanan yönetim stratejisine verilen addır. Bir politika kesin bir güvenlik konusunu irdelemeli, neden gerekiyor/önemli olduğunu ve neye izin var neye yok konularının açıklamasını yapabilmelidir. Değişikliklerin çok fazla gerekmemesi için yeterince genel olmalıdır. Mimariye yada sisteme bağlı olmayan genel yönergeler içermelidir. Politikalar ayrıca yürütmenin de üstesinden gelmelidir ki:politika uygulanmadığı zaman verilecek ceza ölçüleri açık olmalıdır. 7 Politikalar öz olmalıdır, yaratıcılığın ve güvenliğin dengede olması gerekir, uygun araçlarla yedeklenebilmeli ve kolay anlaşılmalıdır. Hizmet müdürleri politikanın uygulanmasında sorumludurlar. Sistem yöneticileri personel politikasını, geliştiriciler de hem personel hem de yönetim politikasını bilmelidirler. Politika personel politikasının mümkün olduğunca kullanıcı dostu ve kısa olabilmesi için farklı bölümlere ayrılmıştır. Böylece personelin onları okuma şansı da artmaktadır. Kritik Başarı Faktörleri:Bilgi güvenliğinin başarılı bir şekilde gerçekleştirimi aşağıdaki şartlara bağlıdır: 1. Güvenlik amaçları ve aktiviteleri iş amaçları ve gereksinimlerini esas almalıdır ve liderliği iş yönetimi tarafından yapılmalıdır. 2. Üst yönetimin gözle görülür destek ve garantisi olmalıdır. 3. Şirketin niteliklerine ve organizasyondaki güvenlik düzeyine göre güvenlik risklerinin(tehditler ve açıklar) iyi anlaşılmış olması gerekir. 4. Güvenlik tüm müdürlere ve çalışanlara iyi anlatılmalı, pazarlanmalıdır. 5. Tüm çalışanlara ve iş ortaklarına güvenlik politikaları ve standartları hakkında ayrıntılı rehberler dağıtılmalıdır. Politika ifadeleri aşağıdaki başlıklar şeklinde gruplanmaktadır: 1.3.1 Tüzel Politika Her iş birimi kendi güvenlik politikasını yaratmaktan sorumludur. Bu politika içerilen risk/tehditlere karşı iş veri ve süreçlerinin korunması için kurallar ve değerlerini, yararlarını ortaya koymalıdır. 1.3.2 Bilgi Güvenliği Politikası • Tüm başlıca bilgilerin bir sahibi olmalıdır. • Sahipleri bilgiyi sınıflandırmalıdır. Bu sınıflandırma yukarıda anlatılan duyarlılığa göre sınıflandırma ile yapılmalı ve gerekli politikalar yukarıda anlatıldığı gibi olmalıdır. Ayrıca sahipleri bilgilerini korumaktan sorumludur. • Sahipleri bu bilgiye kimin ulaşabileceğini açıklamalıdır. 8 • Sahibi verisinden sorumludur ve veriyi güvenli kılmak yada sınıflandırarak başkaları tarafından güvenli kılınmasını sağlamalıdır. 1.3.3 Personel Güvenlik Politikası Etik:Kullanıcılar:hesapları ve şifreleri paylaşmak, sistem şifre dosyalarında şifre kırıcılar çalıştırmak, ağ veri yakalayıcı (sniffer) çalıştırmak, diğer hesapları kırıp girmek, servisi bozmak, sistem kaynaklarını kötüye kullanmak, e-postayı yanış kullanmak, sahibine sormadan diğer bilgisayarlarla ilgilenmek, dosyalarla uğraşmak, PC çalıştırılabilir dosyaları izinsiz indirmek, lisanslanmamış yazılımları kopyalamak ve dağıtmaktan men edilmelidirler. Şifre Politikası:Kullanıcı adı ve şifre kullanıcıyı sisteme tanıtan önemli bir çifttir. İyi bir şifre politikası istenmeyen erişimler için en önemli bariyerdir. İçerik:Sayıların, harflerin, noktalama işaretlerinin karışımı olmalıdır. Bir yere yazmadan hatırlanabilir olmalıdır. Hızlı yazabilme imkanı olmalıdır böylece izleyici takip etmekte zorlanır. Örnekler:Bir şiir veya şarkının birkaç satırındaki kelimelerin ilk harflerini kullanma, iki küçük harfin garip bir karakterle birlikte kullanımı, bir kısaltma yaratımı. Kötü Örnekler:Ayların, günlerin, kişilerin, hayvanların isimleri; telefon, adres, kayıt numaraları; yaygın sözlük kelimeleri; tanımlanabilir harf, sayı serileri, takip edilebilen klavye kombinasyonları;yukarıdaki örneklerin başına yada sonuna sayı getirilmiş hali. Rehberler:bir yere yazma, e-posta ile gönderme, “default” şifreleri kullanma, başkalarına şifre verme, eğer şifreler ele geçirildiyse hemen değiştir, yönetici şifresini paylaşmaktan kaçın, farklı sistemlerde aynı şifrelerin kullanılabilmesine olanak sağla böylece kullanıcı tek şifreyi aklında tutacağı için daha iyi bir seçim yapar, kullanıcıları şifrelerin çalınma yöntemleri hakkında bilgilendir, kurulan programların “default” şifrelerini değiştir, şifreler girilirken görülmemelidir(* karakteri gözükebilir), şifreler için minimum yaş, maksimum yaş, minimum uzunluk ve geçmiş listesi tanımlanmalıdır, izin verilmiş şifreler için belli tanımlar olmalıdır ve seçilen bu tanımlara göre şifre kontrol edilip uygunsa kabul edilmelidir, kullanıcılar başkasının şifresini değiştirememelidir ama hesap operatörleri bunu yapabilmelidir, ilk girişte şifre değiştirmeye kullanıcıyı zorla, daha güçlü tanıma sistemlerini kullanmayı düşünün, mümkünse kullanıcıya otomatik şifre üretme mekanizması sun, zayıf şifreler için bir şifre kontrolcüsü haftada bir sistemi test etmelidir. Genel Yazılım Politikası: 9 • Genel alan yazılımları 1 ve 2. seviyelerde TCB (DOS/Windows olmayan) ile çalışan sistemlerde kullanılmalıdır, eğer sistem yöneticisi kurulumdan sorumlu ise sahip/kaynakların entegrasyonundan sorumludur. • 3. Seviyede genel alan yazılımlarından kaçınılmalıdır. Eğer gerekli ise kaynak kodun incelenmesi yada (kaynak kod çok büyükse) bu yazılımlar daha önce test edilmiş güvenilir bir yazılımsa kullanılmalıdır. • Lisanslanmamış yazılımlar kullanılmamalıdır. • Unix set-user-id (SUID) ve set-group-id (SGID) scriptleri yasaklanmalıdır. Güvenilir perl yada derlenmiş programlar kullanılmalıdır. (SUID ve SGID scriptleri güvenli değilse sisteme giren normal bir kullanıcının bunları kullanarak sisteme yönetici olarak bağlanmasını sağlayabilir.) Ağlar: 1. Gizli Bilgi:Ağlar üzerinden gönderilen önemli, gizli bilgiler şifrelenmelidir. 2. Ağlara Bağlantı:Şirketin ağı dışından bir yerden kullanıcı ağdaki makinelere bağlanamaz. Dış ağlara bağlanmak için bir ateş duvarı kullanılmalıdır. Tüm ateş duvarları şirket güvenliği tarafından kurulmalı ve bakımı yapılmalıdır. 3. Modemler:Kullanıcılar kendi makineleri üzerinden modem bulundurmamalıdır. Dışarıdan modemle şirket ağına bağlantı sadece belli bazı kullanıcıların hakkı olmalı ve bunlar çok güvenli tek-seferlikşifre mantığı gibi mekanizmalar kullanmalıdır. 4. E-Posta:Gizlilik yada iletildiğine dair belge sunmayan geleneksel eposta sistemlerinden kaçınmak gerekir. Çoğu sistemde sistem yöneticisi e-postaları okuyabilmektedir. 2. Seviye veriler iç ağ üzerinde şifrelenmeden gönderilebilirken 3. seviye veriler şifrelenmelidir. 4. Seviye verilerin e-posta ile gönderilmemesi iyi olur. Sadece 1. seviye yada sadece belli projeler için izin verilmiş olan veriler e-posta ile gönderilmelidir. Kullanıcılar e-posta ile gelen herhangi bir dokümanı açmaktan kaçınmalıdır güvenli olduğundan emin olduktan sonra açmalıdır. 10 Internet:Çağımızda İnternete bağlanmak şirketler ve geliştirme birimleri için bir olmazsa olmaz şartlardan biri olmuştur. Fakat İnternetin yapıdan ve kontrolden yoksun olması beraberinde bir sürü tehlike getirmesine olanak sağlamaktadır: • Gizli bilginin açığa çıkması • “Hacker” denilen kırıcılar tarafından şirket ağının saldırıya uğrayıp zarar görmesi • Verinin silinebilme veya değiştirilme olasılığı • Sisteme erişim sistemin aşırı yüklenmesi sonucu zorlaşabilir(DoS Saldırıları-Denial of Service) Eğer kullanıcılar İnternete erişebileceklerse İnternetin tehlikelerinden, tehditlerinden haberdar olmalı ve şirketin belirleyeceği politikalara uymalıdırlar. • Tüm İnternete erişim ve İnternete gönderilen veriler şirket güvenliği için onaylanmış “gateway”ler üzerinden sağlanmalıdır. • Kim standart (WWW) İnternet erişimi hakkına sahiptir? • Ne zaman erişime izin verilmiştir? • Hangi İnternet istemci yazılımına izin verilmiştir? • Internet ne için kullanılamaz?(Örneğin pornografik sitelere erişim, tehlikeli lisanslanmamış yazılım indirme, vb.) • Kim İnternet servislerini hangi şartlarda sağlamalıdır?(Örneğin kabul edilen ateş duvarı politikası, sadece 1. seviye verilerin yayınlanması gibi) Dizüstü ve taşınabilir bilgisayarlar:Çalışanların “yolda” daha verimli olmalarını sağlayan ve mekan önemi olmadan çalışmalarını sağlayan dizüstü/taşınabilir bilgisayarlar verinin çalınması, açığa çıkması ve şirket ağına izinsiz giriş gibi riskler yaratabilir. Bu yüzden özel bir politikaya ihtiyaçları vardır. Önemli noktaları şöyle sıralayabiliriz: • Dizüstü bilgisayar kullanımı konusunda kullanıcılar eğitilmeli • Bazı programlarda şifre koyup koruma yöntemi işini bilen kişiler için aşılması çok kolay bir yöntemdir. Yeterli değildir. • Genellikle taşınabilir disk kullanımı bu diskin daha güvenli yerlerde, cepte, çantada taşınmasına olanak sağlayabilir, tercih edilmelidir. 11 Aşağıda da mümkün olabilecek politikalar görülmektedir: • Dizüstü bilgisayarlar işin uzmanı BT çalışanları tarafından kurulmalı, bakımı yapılmalıdır. • Mümkünse bir dosya şifreleme programı standart olarak kullanılsın. • Unix, NT ve türevlerinden oluşan işletim sistemleri kullanılmalı böylece normal bir kullanıcı sisteme tam erişim sağlayamaz. • Şirket dışında her kullanıcı kullandığı dizüstü bilgisayarından sorumludur. • Otomatik şifre soran ekran koruyucular ve bilgisayar ilk çalıştığında şifre soran mekanizmalar kullanılmalıdır. • Aktif bir virüs tarayıcısı kurulu olmalıdır. • Genel taşıma araçlarında dizüstü bilgisayarlar özel çantasıyla elde taşınmalıdır. • 3. Seviye veriler şifrelenmedikçe dizüstü bilgisayarlarla taşınmamalıdır. • Kullanmıyorken bilgisayarı kapatmalı • Başka ağlardan ulaşabilen bilgisayarlarda şifreler saklanmamalıdır. • İletişim: o Şifrelenmemişse 3. seviye verileri güvensiz ağlarda iletmemeli. (İnternet, Mobil-GSM, Kızılötesi vb.) o Şirketin yerel ağına erişim ağ erişim politikasında tanımlanmalıdır. o Kullanmıyorken modemler kapatılmalıdır. 1.3.4 Bilgisayar ve Ağ politikası Sistem Yönetim Politikası: • Yönetim politikasını kim ve nerede günceller? • Kimin hak verme, kullanım izni verme hakkı vardır?Kim sistem yönetim haklarına sahiptir? • Yöneticinin hak ve sorumlulukları nelerdir? 12 • Kullanıcılar kendi iş istasyonlarında yönetici hakkına sahip olma iznine sahip mi? • Geçerli dizin hiçbir zaman yönetici kullanıcıların dizin arama yolunda olmamalıdır. (Trojan atlarından korunmak için) Erişim Kontrolü: • Tüm kullanıcılar doğrulanmalıdır. • Kullanıcılar kendi alanlarındaki kendi nesnelerinin haklarını ayarlayabilmelidir. • Kullanıcılar paylaşılan dizinlerde başka kullanıcıların dosyalarını silmekten men edilmelidir. • 3. Seviye:Sadece konsol yardımıyla root erişim izni verilmesi uygundur. • 3. Seviye:Sistemdeki tüm nesnelere kullanıcı erişiminin kontrolü belli bir politikaya göre mümkün olmalıdır. • 3. Seviye:Kullanıcılar diğer kullanıcılara verilen erişim kontrolünü gözden geçirmemelidir. • Verilerin seviyelerine göre etiketlenmesi mümkün olmalıdır. • 4. Seviye:Zorunlu erişim kontrolü mümkün kılınmalıdır. 1.4 Fiziksel Güvenlik 1.4.1 Binalar • Alanlar belirlenmelidir. Örneğin: o 1. Alan:Kamuya açık alanlar o 2. Alan:Sadece şirket çalışanlarına açık alanlar o 3. Alan:Korunan alanlar. Sadece kimlikle girilebilen alanlar, erişim katı bir şekilde kontrol edilir. İçeriden eşlik edilmeyen dış erişimlere izin verilmez. • Binalar ofis saatleri dışında mutlaka kilitlenmelidir. Ofis saatlerinde de erişim resepsiyon üzerinden yapılmalıdır. 13 • Kamuya açık alanlarda ateş duvarı olmadan iç bilgiye erişen bilgisayarlar olmamalıdır. • 3. Seviye sunucu odaları kilitlenmeli ve mümkünse elektronik kart ile erişim sağlanmalıdır. • 3. Seviye sunucuları uzaktan monitör izlenmesi, modem izlenmesi, radyasyon ölçümü ile monitör görüntüsü yaratılması(Van Eck Radyasyon yöntemi ile gözetleme(snooping)) yöntemlerine karşı korumak gerekir. • Sistemler elektromanyetik akımlara karşı korumak gerekir. • 4. Seviye sunucu odaları kilitlenmelidir, erişim kartı kullanılmalı ve çok az insanda bu kart olmalıdır. • 4. Seviye sunucu odaları 24 Saat/7 Gün güvenlik personeli tarafından gözlem altında tutulmalıdır. • 3. Seviye için bir felaket, yangın, çalınma, patlama, vb. olaylarda kullanılmak üzere felaket planları, senaryoları yapılmalıdır. 1.4.2 Verinin Taşınması Verinin ne şekilde(aleni, gizli, şirket içi, . .), hangi tip ürünlerle(disk, CD, disket, kaset, kağıt, bilgisayar, . .) taşınacağı hakkında şirket içinde bir politika olması gerekmektedir. Ve her seviye güvenlik için bu politika gerekiyorsa değişmelidir. 1.4.3 Yedeklemeler 3. Seviye verilerin yedekleme üniteleri kilitli dolaplarda veya kilitli odalarda tutulmalıdır. Ayrıca bu veriler için alınan bazı düzenli yedeklemeler (örneğin ayda bir alınan) alandan başka bir yerde saklanmalıdır. (Başka bir bina, departman, vb.) Yedeklemeler sadece güvenli yöntemlerle taşınmalıdır. (Para transferinde olduğu gibi) 1.4.4 Diskler Disketler ve taşınabilir diskler sıklıkla virüs ve yasal olmayan yazılımlar için kaynak olmaktadır(e-postada bu durumdadır). Ayrıca bunlar gizli bilgilerin yasal olmayan bir şekilde kopyalanmasında kullanılabilir. Disketlerden veri silindiği zaman bu veriler bir daha geri getirilemeyecek şekilde silinmelidir. Kullanıcılar güvenilir ağ, ağ yazıcıları, dosya sunucuları, ve e-postaya sahiplerse disket sürücülere gerek yoktur. 14 • Taşınabilir diskler ve disketler(bu kelimeyle sadece disketler değil tüm taşıma ürünleri kastedilmektedir.) sadece gerekli olduklarında kullanılmalıdırlar. • 3. Seviye verilerin disketlere kopyalanmaması gerekir. • 3. Seviye verilerin güvenliği eğer güvenli bir ağ varsa disket sürücülere gerek yoktur. Taşınabilir diskler daha uygundur ama bunlar kilitli bir kasada tutulmalıdır. • 4. Seviye veriler şifrelenmelidir. Eğer iç ağın yeterince güvenilir olmadığı düşünülüyorsa dosyalar yerel olarak şifrelenip daha sonra ağ sunucusuna kaydedilebilir. • 3. Seviye veri güvenliği için gizli disklerin onarılması engellenmelidir, yok edilmelidir. • Veri diskleri sınıflandırılmalı ve seviyeleri üzerlerine yazılmalıdır. • Saklama ürünlerini etkileyecek elektromanyetik akımlara karşı korumak gerekir. 1.4.5 Dizüstü Bilgisayarlar 3. Seviye veri içeren dizüstü bilgisayarların sabit diskleri şifrelenmelidir ve korunmalıdır. Ve bir bilgisayarı korumakta kullanılan mekanizmalarla güvenlik güçlendirilmelidir. (Ateş duvarları, antivirüs yazılımları, vb.) 1.4.6 Yazıcılar Gizli bilgileri yazdırmada sadece yöneticilerin odalarındaki yada erişimin kısıtlandığı odalardaki yazıcılar kullanılmalıdır. 1.4.7 Bilgisayarlar EPROM şifreleri kullanılmalıdır. Açmak için de güvenli işletim sistemleri ve şifre ile erişim kullanılmalıdır. Şifreyle durdurulan ve 15 dakikada devreye giren ekran koruyucuları kullanılmalıdır. Bilgisayarlar mümkünse kilit altında tutulmalıdır. Güvenlik mekanizmaları mutlaka her bilgisayarda bulunmalıdır. 15 1.4.8 “Temiz Masaüstü” Bu yöntemde amaçlanan tüm personelin masaüstünde daha sonra o masayı temizlemeye yada paket bırakmaya gelebilecek kişilerin gizli olan bilgilere erişmemesi için temiz tutma ve gizli bilgiyi sürekli kilit altında tutma konusunda cesaretlendirilmesidir. Fakat bu geliştirme departmanlarda gerçekleştirilmesi zor bir politikadır. Çünkü yaratıcı beyine sahip personel masaüstü yardımıyla yaratıcılığını geliştirmeye çalışabilir ve masaüstünde bir şeyler unutabilir. 1.5 1.5.1 Güvenlik Mekanizmaları Kriptografi ve Dijital İmzalar Kriptografi bir anahtar yardımı ile verinin (düzmetin olarak bilinir) kodlanmış bir şekle (“cipher-text”) getirilmesi işlemidir. Kriptografi genellikle bilginin gizliliğini korumak için kullanılır. Örneğin o bilgiye ulaşabilen insanlar anahtarı bilenler olarak sınırlandırılmıştır. Güçlü bir kriptosistemde düzmetin şifrelimetinden ancak bir çözme(“decryption”) anahtarı yardımıyla elde edilebilir. Böylece düzmetin “meraklı gözlerden” saklanmış oluyor. Kriptografinin bilgisayarlarda kullanılan genel olarak iki yöntemi vardır: Paylaşılmış/Simetrik Anahtar Şifreleme(Shared Key Cryptography): Veriyi değişen iki tarafta anahtara sahiptir. Bu başkalarınca bilinmeyen anahtar verinin iletimden önce şifrelenmesi, iletildikten sonra karşı tarafta şifresinin çözülmesi için kullanılmaktadır. İki çeşit simetrik şifreleme yöntemi vardır:Blok (veriyi bloklar şeklinde şifreler) ve “stream”(her bit/byte veya wordu sıralı olarak şifreler) şifrelemeler. Avantajları:Simetrik şifrelemeler herkese açık(public) anahtar rakiplerine göre çok daha hızlıdırlar. Dezavantajları:Her iki taraf anahtarı bilmeli ve iletimi için güvenli bir yol bulmalıdır. Tipik Uygulamalar:Gizliliğin korunması için bilginin şifrelenmesi, veri oturum şifrelemesi, banka sistemleri(PIN şifreleme) Açık Anahtar Şifreleme(Public Key Cryptography):İki tarafta da bir gizli anahtar ve açık anahtar bulunur. Gizli anahtarlar sadece sahipleri tarafından bilinmektedir. Açık anahtarlar ise herkese açıktır. (telefon numaraları gibi). Gönderen mesajı alıcının açık anahtarı ile şifreler ve alıcı şifreli-mesajı gizli anahtarı ile çözer. Bu Diffie ve Hellman (Stanford Üniversitesi, 1975 Sonbahar) tarafından keşfedilen, algoritmaların ve bir anahtarın şifrelemek, 16 bir başka anahtarın çözmek için kullanılabileceği keşifleri sayesinde mümkün olmaktadır. Açık ve gizli anahtar bir anahtar çiftini oluşturur. Bu şifreleme yöntemleri gerçekten çözülmesi zor olan sonlu alanların logaritmalarını almak(Diffie-Hellman), büyük sayıları asal çarpanlarına ayırmak (RSA) gibi matematiksel yöntemlerle tek-yönlü fonksiyonlardan yararlanır. Bu tip fonksiyonlar tek yönde hesaplama diğer yönde hesaplamaya göre daha kolaydır. Bugünün işleme gücü ve bilgisayarlarıyla bile brute-force kullanarak kırmak sanal olarak imkansızdır. Daha yeni Eliptik eğriler, karışım üreticiler (“mixture generators”) gibi teknikler daha hızlı açık anahtar sistemleri vadetmektedir. Avantajları:Sadece gizli anahtar gizli tutulmalıdır. Açık anahtar için herhangi bir gizli kanal gereksinimi yoktur. Sadece açık anahtar alıcıya bu anahtarın gerçek açık anahtar olduğundan emin olabileceği bir kanaldan gönderilmelidir. Ayrıca açık anahtar şifreleme ile dijital imzalara olanak sağlanmaktadır. Dezavantajları:Matematiksel karmaşıklık içeren algoritmalarından dolayı yavaş olmaları Tipik Uygulamalar:Sadece alıcının çözebileceğinden emin olunmak istenen uygulamalar, simetrik oturum anahtar iletimleri Hashing/Mesaj Şekillendirme(Message Digest):Bir hash fonksiyonu bir blok veriden sabit uzunlukta karakter katarları oluşturur. Eğer fonksiyon tek yönlü ise ayrıca mesaj şekillendirme adını alır. Bu (hızlı) fonksiyonlar bir mesajı alır, analiz eder ve sabit uzunlukta özetler(digest) oluşturur(pratik olarak bu özetler tektir, benzeri yoktur). Çok hızlı bilgisayarlarla bile bir hash yardımı ile mesajların elde edilmesi mümkün değildir. Aynı özete(digeste) sahip bir başka mesajın elde edilmesi için bilinen bir makul yol yoktur. Bu algoritmalar genellikle mesajların bütünlüğünü onaylamak için imzalar hazırlamakta kullanılmaktadır. Avantajlar:Şifrelemeden daha hızlıdır ve sabit bir çıktı üretilir(Bu demektir ki çok büyük dosyalar bile aynı digesti oluşturur, bu veri iletimi için çok verimli olur). Dezavantajları:Sadece bütünlüğü garanti eder. Bazı makalelerde bilinen bazı zayıflıkları anlatılmıştır(B. Preneel ve P. C. van Oorschot, "On the Security of Two MAC Algorithms", Advances in Cryptography- EUROCRYPT '96, Saragosa, Spain, May 1996). 17 Tipik Uygulamalar:Çoğu Internet sunucusu MD5 digestlerini önemli dosyaların indirilmesi durumlarında kullanır. Çoğu dijital imza sistemleri ve güvenli e-posta sistemleri bütünlük için bir digest fonksiyonu kullanır. 1.5.2 Kimlik Doğrulama Bir nesnenin kimliğinin doğrulanması yöntemidir. Nesne kullanıcı, bilgisayar, makine yada bir süreç olabilir. Doğrulama iki tarafın bildiği ama başkalarının bilmediği şeyler kullanır. Bunlar biyolojik ölçüler (el tarama, DNA şekilleri, retina tarama, parmak izi tarama, el yazısı gibi), “passphrase”ler, şifreler, tek seferlik şifre listeleri, kimlik kartları, akıllı tokenler, “challenge-response” listeleri, vb. olabilir. Bazı sistemler yukarıdakilerin kombinasyonlarını içerir. Günümüzde çok karşılaşılan güçlü doğrulama yöntemleri tek seferlik şifreler (kağıt), otomatik şifre üreticileri (akıllı tokenler) ve zeki kimlik kartları diyebiliriz. 1.5.3 Erişim Kontrol Listeleri Bir EKL(Erişim Kontrol Listesi) bir nesneye kimin(neyin), ne şekilde erişebileceğini tutan listelerdir. EKL’ler veri gizliliğini ve bütünlüğünü sağlamakta kullanılan birincil mekanizmadır. Akıllı erişim kontrollü sistemler kullanıcıları ayırt eder ve her nesne için EKL yi yönetebilir. Eğer EKL kullanıcı(yada veri sahibi) tarafından değiştirilebiliyorsa akıllı erişim kontrolü olduğu kabul edilir. Eğer EKL kullanıcı tarafında değiştirilemiyor, sistem tarafından belirleniyorsa zorunlu erişim kontrolü kullanılmaktadır. 18 2. KRİPTOGRAFİ TARİHÇESİ En basit tanımıyla kriptografi, mesajın harflerin değiştirilmesi ile içeriğinin gizlenmesi işlemidir. Harflerin yer değiştirmesinde kullanılan şablona (örneğin a=k, b=l, c=m, d=n, vb.) anahtar, ve anahtarın kullanılmasıyla elde edilen okunamayan, anlaşılması zor metine “ciphertext” denilmektedir. Numaralarda harfler gibi yerine koyulan karakterler olarak kullanılabilmektedir. Numaraların karıştırılması için kullanılan matematiksel işlemler dizisine “encryption” algoritması denilmektedir. Basit bir algoritmaya örnek olarak her sayının kendisinin solundaki sayının kare kökü ile çarpılmasını uygulayan algoritmayı gösterebiliriz. Çocuklar arasında kullanılan basit bir “encryption” algoritması olarak “Kuş dili” gösterilebilir. Bu algoritmada kelimenin uygun yerine -ga eki getirilerek yeni kelimeler oluşturulmaktadır. (Örnek:oynamak=ogoynagamak, çalışmak=çagalıgışmak). “Endüstriyel-Güçlü” algoritmalar elbette kriptoanaliz kullanarak çözmenin çok fazla vakit alacağı karmaşıklıktadır. Anahtarı kullanarak düzmetini “encrypt” ederiz, “ciphertext” i düzmetine çevirmenin en kolay yolu anahtarı kullanarak yaptığımız işlemlerin tersini “ciphertext” e uygulamaktır. Anahtar yok ise anahtarın bulunması ve kodun kırılması bayağı zor olacaktır ve kriptoanaliz teknikleri kullanılmasını gerektirecektir. İnsanlar kelimeleri yazmaya başlar başlamaz, bu kelimeleri meraklı gözlerden saklamaya da başladılar. Kriptotarihçi David Kahn antik Mısır’da 4000 yıllık tarihe sahip gizli hiyeroglifleri incelemiştir[1]. Çağlar boyunca icat edilen sayısız kripto sistemler genellikle mürekkep ve kalem tasarımı olmuştur, genellikle zekice olan bu sistemler “kırılamaz” payesini nadir olarak alabilmişlerdir. Karmaşıklıkları sadece kalem ve kağıt kullanarak uygulanacak algoritma için gereken zaman ile kısıtlıydı. En ilginç erken kripto sistemlerden biri M. Ö. 400 yıllarında Spartalılar tarafından geliştirilmiş olan “scytale” denilen sistemdir[2]. Bu sistemde bir mesajı “encrypt” etmek için uzun bir parşömen yada papirüs silindirik bir sopa etrafına sarılıyordu. Gizlenecek mesajın kelimeleri uzunlamasına sopa üzerine, her bir şerit turunda 1 harf gelecek şekilde yazılıyordu. Daha sonra şerit açılır ve kaldırılırdı böylece anlamsız harflerin oluşturduğu metin ortaya çıkardı. Mesajın “decrypt” edilebilmesi için gereken kritik şart “encrypt” işleminde kullanılan silindirle aynı çapa sahip silindir kullanılması şartıydı. Farklı çaptaki silindirler anlamsız metinlerin ortaya çıkmasına sebep oluyordu. 19 Bu alanda 20. yüzyıla kadar ciddi bir ilerleme olmadı. 20. yüzyılda askeri olarak yaşanan gelişmeler genellikle güvenli olmayan telefon ve radyo hatlarının kullanımını gerektirdiğinden güçlü kripto sistemler, kod üretimi ve kırma teknolojilerinde yoğun yatırımlar ortaya çıktı. Çağın ilk zamanlarında otomatik olarak “encrypt” ve “decrypt” işlemini yapan mekanik makineler ortaya çıktı, ayrıca bunlar yüksek askeri daireler dışında bilinmez olarak kaldı. Bu makineler daha uzun, daha güvenli anahtarlar ve daha karmaşık algoritmalara olanak sağladı. Böylece daha uzun, daha karmaşık mesajların göreceli olarak daha yüksek dereceli “surity” ile kolayca kırılamayan “encryption” ve “decryption” edilebilmesine olanak sağladı. İttifak devletlerinin ünlü Alman “Enigma” ve Japonların “Purple” kodlarını kırmaları -bu iki olay elektro mekanik “encryption/decryption” makinelerinin kullanılmasına bağlıdırII. Dünya Savaşının sonucunu belirleyen faktörler olarak görülür[3]. Nasıl mekanik “encryption” kriptografi alanında dev bir adım ise, savaştan sonra bilgisayarın keşfi ve geliştirilmesi de kriptografiyi tamamen yeni bir boyuta sürükleyen bir adımdı. Böylece anahtarlar daha uzun, “cipher”lerde daha karmaşık olabildi. Anahtar Yönetimi olarak bilinen anahtar seçimi, dağıtımı ve kurulumu böylece tamamen otomatikleşti. Bunlar güvenliğin gelişmesi ve kullanımının artmasına sebep oldu. Ayrıca önceden ordunun elinde hep gizli kalan kriptografi gizliliğini yitirdi. Bu ayrıca, istenmeyen antikriptografik, kırıcı faaliyetlerin artmasına sebep oldu. 2.1 Kağıt, Kalem Sistemleri Bir metini meraklı gözlerden saklamak için yapılan ve en fazla bilinen yöntem olarak bir metini alıp bu metindeki her harfi farklı bir karakterle yer değiştirerek yaptığımız yöntemi örnek olarak gösterebiliriz. Aşağıdaki örnekte bu yöntemin uygulanması daha iyi anlaşılacaktır: ABCÇD EFG ĞHIİ JKL MNOÖP RSŞ TUÜ VYZ ----- --- ---- --- ----- --- --- --$7+Q@ ?)/ 2X3: !8J 9%6*& 15= (;4 {[\ yukarıdaki alfabe kullanıldığı zaman; 20 Bana biraz para gönder lütfen cümlesi 7$%$ 7:1$\ &$1$ /*%@?1 J4(?% şekline dönüşecektir. Bu yönteme yerine koyma (“substitution”) denilir ve geçmişi antik çağlara dayanır. Kullanılabilecek diğer yöntem ise “transposition”(yerlerini değiştirme) denilen ve antik çağlarda da kullanılmış olan yöntemdir. Bu yöntemde harflerin başka karakterlerle betimlenmesi yerine mesajın içerisinde yerlerinin değiştirilmesi yönteminden yararlanılır ve böylece metindeki sıraları korunmaz. Fakat yazarken kullanılan yöntem bilinirse aynı yöntemle çözülebilir. Bu yönteme gösterilebilecek en iyi örnek Spartalıların “scytale” yöntemi olacaktır. Şekil 2.1: 2.1.1 Spartalıların Scytale yönteminin bir kurşun kalem üzerinde uygulanması Basit Yerine Koyma Yöntemi Kriptoanalizi Aşağıda harflerin tutarlı bir şekilde başka harflerle değiştirilmesi sonucu elde edilmiş olan kısa bir mesaj örneği görülmektedir: DRODUDCD EDJÖL EMU OŞCĞAU EZ EMU OAGAO YHTYRMR HYHJMĞH HÖÖM ODĞDU HB EMU FDPM EMU ĞMEHO EMU GHVPH EMU CZRDO EMU GAUAO SOZÖ BH HÖÖM ODĞDU İAEUHÖMOYMU 21 Bu mesajı herhangi biri nasıl okuyabilir? İşte bu soruya cevap verecek olan alan kriptoanaliz alanıdır. Ve bu soruyu aşağıda anlatıldığı şekilde çözecektir. İlk aşamada kullanılması gereken en önemli olgu Türkçe’de bazı harflerin(diğer tüm dillerde olduğu gibi) daha çok kullanılmasıdır. Türkçe’de en çok görülen harf A dır. Onu sırası ile E, İ, N ve R izlemektedir. Bu olguya göre ilk önce mesajdaki harflerin sayısını buluruz: A B C D 6 2 E F G Ğ H İ J L M O Ö P R S Ş T U 3 11 11 1 3 5 13 1 2 1 15 11 7 2 5 1 1 V Y Z 1 14 1 3 3 Bilgisayarda yazdığım bir programla Türkçe bir romanın içerdiği karakterlerin frekanslarını aşağıdaki şekilde buldum: A:%11. 9624 B:% 2. 8141 C:% 1. 1079 Ç:% 1. 2112 D:% 5. 1645 E:% 8. 1245 F:% 0. 3527 G:% 1. 5124 Ğ:% 1. 0603 H:% 1. 0989 I:% 5. 5219 J:% 0. 0107 İ:% 8. 0499 K:% 4. 8574 L:% 5. 6274 M:% 3. 8047 N:% 7. 0825 O:% 2. 6755 Ö:% 0. 9093 P:% 0. 9786 R:% 6. 5908 S:% 2. 8852 Ş:% 1. 6305 T:% 2. 6681 U:% 3. 9686 Ü:% 2. 1213 V:% 1. 1253 Y:% 3. 5586 Z:% 1. 5247 Bu frekansları sıralayıp yazarsak: A:%11. 96 I:% 5. 52 S:% 2. 88 Z:% 1. 52 Ğ:% 1. 06 E:% 8. 12 D:% 5. 16 B:% 2. 81 G:% 1. 51 P:% 0. 97 İ:% 8. 04 K:% 4. 85 O:% 2. 67 Ç:% 1. 21 Ö:% 0. 90 N:% 7. 08 U:% 3. 96 T:% 2. 66 V:% 1. 12 F:% 0. 35 R:% 6. 59 M:% 3. 80 Ü:% 2. 12 C:% 1. 10 J:% 0. 01 L:% 5. 62 Y:% 3. 55 Ş:% 1. 63 H:% 1. 09 Bu frekansla mesaj arasında bağlantı kurarsak: 15: M 6: A 14: U 5: Ğ, R 13: H 3: G, Y, Z, C 11: D, E, O 2: B, P, J 22 7 :Ö 1:F, İ, L, S, Ş, T, V Bu aşamadan sonra frekanslarla bu değerleri eşitlemeye başlayabiliriz: Cipher : MUHÖA ---------------------Düzmetin : AEİRL Bu aşamadan sonra şifreli metinde bu değerleri yerine koyup tahminlemeler yapmaya başlayabiliriz. Bu şekilde bulduğumuz bazı tahminler şifrelenmiş metini çözmemize yardımcı olacak ve hızlı bir şekilde sonuca gidebileceğiz. Bu şekilde çözmek bulmaca sayfalarında sık rastlanan şifreli bulmacalara benzemektedir. Orada harfler yerine sayılar kullanılıyor ve başlamak için bir kelime ile karşılığı olan sayı dizisi veriliyor. Bizim kullandığımız yöntemin zorluğu elimizde hiçbir kelimenin karşılığının olmamasıdır. 2.1.2 “Transposition”(Yer Değiştirme) Yöntemleri Yer değiştirme yöntemleri ile elde edilen şifrelemeler yerine koyma yöntemine göre daha zayıf şifreler oluşturur. Bu yöntemde daha kısa sürede metine ulaşma olasılığı daha yüksektir. Buna rağmen yer değiştirme metotları içlerinde güvenli olurlar ve bunları bilmek faydalıdır. Daha sonra bu yöntemlerle yerine koyma yöntemlerinin karışımı yöntemlerle güvenilirliği yüksek şifreleme yöntemleri geliştirilebilir. En iyi bilinen yer değiştirme yöntemi aşağıdaki şekilde çalışan tek kolonsal yer değiştirmedir: Bir anahtar kelime kullanarak (örnekte PAYLAŞIM) bu anahtardaki her harfe 1 ile başlayan, alfabetik sıralarına göre atanan ve aynı harflere sıralı numara vererek numara atanır. Daha sonra mesaj anahtarın altına her harfin altına bir harf gelecek şekilde yazılır. Daha sonra harflerin numara sırasına göre kolonlar alınıp yan yana yazılır; P A Y L A Ş I M 6 1 8 4 2 7 3 5 ---- ---- ---- ---- ---- ---- ---- ---B U R A D A G İ Z L İ B İ R M E S A J B U L U N U Y O R 23 Bu tablo aşağıdaki gizli metini oluşturur: ULAY DİU GMU ABBR İEN BZSU ARL RİJO Elbette bu şekilde kolonları belirten boşluklarla metini yazmak akıllıca değildir. Kolon sayısı bilinse bile bu şekilde yazılmış bir mesajı çözmek bayağı zordur. İlk yapılması gereken metinin içerdiği harf sayısına bakmak ve her kolonun içerdiği kelime sayısını bulmak olmalıdır. Bu örnekte 28 harf vardır. 8 kolon için ilk 4 kolonun 4 harf, diğer 4 kolonun ise 3 harf içerdiği anlaşılır. Bu şekilde yazarken nerede duracağımızı biliriz. Ve okumak için soldan sağa gidebiliriz. Bu şekilde yer değiştirilen metin neredeyse eşit uzunlukta düzenli bölümlere ayrıldığı için çift kolonsal yer değiştirme bile “multiple anagramming” e gerek kalmadan kırılabilir. “Multiple Anagramming”:aynı uzunlukta, aynı anahtarla şifrelenmiş çok sayıda mesaj kullanarak yer değiştirmenin kırılması için mantıklı harf çiftleri oluşturan kolonları eşleştirme yöntemidir. Diğer bir yer değiştirme yöntemi General Luigi Sacco’nun bir kitabında anlatılan ve kolonsal yer değiştirmenin bir çeşidi olan ve farklı bir şifreli metin üreten aşağıdaki yöntemdir[4]: P A Y L A Ş I M 6 1 8 4 2 7 3 5 ---- ---- ---- ---- ---- ---- ---- ---B U R A D A G İ Z L İ B İ R M E S A J B U L U N U Y O R Gizli metin:UAZEB GBU RU AİAL Y BRİMJOR İN DLSU Bu yöntemde ilk satır 1 numaralı harfe kadar, 2. satır 2 numaralı harfe kadar, . . , n. Satır n numaralı harfe kadar dolduruluyor ve harf sıralarına göre kolonlar yazılıp şifreli mesaj üretiliyor. Bu şekilde kolonsal yer değiştirmenin sürekli farklı çeşitleri üretilip kullanılıyor, böylece sürekli aynı şifrelemenin kullanılmasıyla oluşacak çözme süresinin kısalığının önüne geçiliyor. 24 Örneğin 1. Dünya Savaşında Fransız ordusu köşegen satırlardaki harflerin okunduğu yer değiştirme yöntemini kullanmıştır[5]. Ayrıca muhtelif bazı ülkelerde bazı hücrelerin kullanılmayıp boşaltıldığı farklı kolonsal yer değiştirme yöntemleri kullanmıştır. Bir başka ilginç yer değiştirme için örnek olarak Almanların 1. Dünya Savaşında kullandığı “Turning Grille” yöntemidir[6]. Bir kare parmaklık (grille), karelerden parmaklıklardan oluşur, bir kağıdın üstüne yerleştirilir. Mesaj kağıt üstüne delikler aracılığıyla yazılır, daha sonra “grille” 90 derece çevrilip mesajın yazılmasına devam edilir. Grille 360 derece döndüğünde bir içerideki satıra yazmaya devam ederiz. “Turning Grille” makinesi için aşağıdaki örnek açıklayıcı olacaktır: Gridlerin numaralandırılması: 1 2 3 4 5 16 6 7 8 9 10 17 11 12 13 14 15 18 16 17 18 19 20 19 5 10 15 20 X 20 4 9 14 19 20 19 3 8 13 18 15 14 2 7 12 17 10 9 1 6 11 16 5 4 11 6 1 12 7 2 13 8 3 14 9 4 15 10 5 18 17 16 13 12 11 8 7 6 3 2 1 Çizim:(Yuvarlaklar mesajın harflerinin yazılaca•ı gridleri gösteriyor.) O O - O O - O O O O O - O X O - O O - O O - O O - O O O - 1 4 16 8 2 12 13 18 20 X 9 15 19 5 17 3 14 7 10 6 11 Doldurmaya ba•larız:(Yukarıdan a•a•ı satır satır ilerleyerek doldururuz) •lk pozisyon T H S S M I O - - - O A - O E S - - O S A G - - E T - - H A O - T I A - O M - - O (Mesaj olarak:THIS IS A MESSAGE THAT I I O - - - O - O O - - O - AM) O O - O O - O O - O O O - 25 •kinci pozisyon(Küçük harfler mesajların ilk pozisyonlarını göstermektedir) (Büyük harfler anahtarı göstermektedir.) t E h N i C - O - - O - - O s R Y i - - - O - O - - s P T a - - O - O - - - I m e N s O - - - - - O - G s a W g - - - O . - - O I e T t O - - - - O - - h H A a T - O - O - - - - O t U i R a - - O - - - - O N m I O - - - - - O - (Anahtar:ENCRYPTING WITH A TURNI) Anahtarın harf sayısı mesajın harf sayısına e•ittir. Üçüncü Pozisyon t e h n i N c G s r G y R i s p I t a L i L m e E n s T O g s a w g i P e R t O t h h V a a I t D t u i E r a n m T H i I (Anahtar:NG GRILLE TO PROVIDE - O - - O O - O - O - THI) O O - O O O . O - O O O O O - O O - O O 26 Dördüncü pozisyon t e S h n i n c I g L s r g y L r i U s p i t S a T l O i l m R e e n s A t T o g s I a w g i p V e r t o t E h h v a E a X i t d t i A i M e r a n P m t L h i E i (Anahtar:S ILLUSTRATIVE EXAMPLE) O O O O O - O O - . O O O O O - O O - O O O O O - En sonunda aşağıdaki şifrelenmiş metin elde edilir: TESHN INCIG LSRGY LRIUS PITSA TLILM REENS AITOG SIAWG IPVER TOTEH HVAEA XITDT IAIME RANPM TLHIE I Yer değiştirme yöntemlerinin yerine koyma yöntemleri ile ilgili olarak iki önemli kullanımı vardır. • Yerine koymada kullanılmak üzere karıştırılmış sırada harfler içeren alfabeler üretilmesi • Harflerin parçalara ayrılıp daha sonra parçaların farklı sıralarda birleştirilip farklı harflere ait olmalarını sağlar. 2.1.3 Yerine Koyma Yöntemini Geliştirmek Cipher tabanlı gizli alfabe kullanımı o kadar da güvenli bir yöntem değildir;bu tip cipherler bulmaca dergilerinde bulmacalar olarak sunulmaktadır. Bu yüzden daha fazla güvenliğe erişmek için bu yöntemin üzerinde bazı oynamalar yapıp geliştirmek gerekmektedir. Yerine koyma yönteminin geliştirilmesi için kullanılabilecek temel yollar aşağıdakilerdir: 27 • Sadece alfabedeki harf sayısı kadar karakter kullanmak yerine daha fazla karakter kullanarak zorlaştırmak: o Her harf için birkaç karakter kullanma : (“homophonic substitution”) o Her iki yada üç harfi bunların yerine geçebilecek başka bir şeyle değiştirme (“polygraphic substitution”) o Sık görülen harf, kelime yada ifade kombinasyonlarını değiştirme (“nomenclators and codes”) • Her zaman aynı karakter kümesini kullanmak yerine çözerken gizli bir alfabeyi başka bir alfabe ile değiştirme (“polyalphabetic substitution”) Bugün metinler daktiloda görülen karakterlerden ikili bitlerle ifade edilen ASCII ye çevrilmektedir. Bundan önce metinin yerine mors kodu gibi farklı temsilleri kullanılıyordu. Antik Yunanlılar her harfin birden beşe kadar sinyal ateşlerinden iki grup ile temsili olan “Polybius” alanını kullanıyordu. Eğer bir harf sinyalleme amaçları için daha küçük parçalara ayrılabilirse bu küçük parçalar şifrede(cipher) kullanılabilir. Örneğin biri mesajdaki harfleri daha küçük parçalara ayırır, bu parçaların yerini değiştirir (transpose), ve parçaları tekrar harf şekline dönüştürebilir. Bu yönteme “fractionation”(parçalama) denilmektedir. Farklı boyutta birimlerle uğraştığı (harf parçaları ve harfler, veya harfler ve harf grupları) ve “polygraphic substitution” yönteminde bir yöntem olarak kullanıldığı için “polygraphic substitution” yöntemiyle çok ilgili bir konudur. “Homophones” ve “Nomenclators” :Yerine koyma yönteminden daha güçlü olarak ilk kullanılan yöntemlerinden biri bir harf için birden fazla karşılık kullanan alfabe tablolarının kullanılması yöntemidir(“homophones”), bir diğeri de sık kullanılan isimler yerine kullanılabilecek temsilciler içeren yöntemdir. Uygun isimlere verilen önem dolayısıyla bu yöntemi kullanan sistemlere “nomenclators” denmektedir(Nomenclator sözlük anlamı:bilimsel adlandırma). Bazı erken nomenclatorler karmaşık olmaktan uzaktı. B için temsilciler M harfi de, 4 rakamı da olabiliyordu. C için temsilciler de N harfi yada 5 rakamı olabilmekteydi. Böylece sadece basit bir tahmin yapmak isteyen kriptoanalistin sadece bir Ceasar cipheri(=karıştırılma yerine sadece değiştirilme işlemine maruz kalmış alfabe kullanan bir yerine koyma yöntemi) 28 çözmesi yetiyordu(Böylece tüm semboller için ayrı ayrı temsilcileri bulmakla zaman kaybetmemiş oluyordu.). Homophonic cipher üretmede kullanılan ustaca yapılmış modern yöntemlerden biri Grandpré cipherdir[7]. Bu yöntemde 10 tane 10 harften oluşan kelime seçilir. Bu kelimelerin ilk harfleri 11. kelimeyi oluşturur. Ayrıca 26 harf bu 11 kelimenin içinde geçmektedir. Örneğin: 0 1 2 3 4 5 6 7 8 9 0 S U B M A R I N E S 1 T N A A S E N E F Q 2 R D R J T E V G F U 3 A E K O R X E A E E 4 T R E R O A S T R E 5 I S N I L M T I V Z 6 F T T T O I M V E I 7 I O I I G N E E S N 8 E O N E E E N L C G 9 D D E S R D T Y E S 9 A D G X 1 O L J Y Böylece 1, 2, 7, 8 0, 4, 5 3, 9 6 0,3,8 E H M V 4,7 T R F W 5 I U K Z 2 N B P 6 S C Q tablosunda görüldüğü gibi her harf için elde edilen temsilciler birbiriyle az ilişkilidir ve elde edilen alışılmış homophonic tablolarından farklı tablolar elde edilmesi mümkündür. Meksika ordusu basitçe değiştirilebilen bir anahtar kullanılarak homophonic cipher üreten bir cipher tekerleği kullanmıştır[8]. Tekerlek şeklinden düz şekle çevirirsek aşağıdaki görüntüyü elde ederiz: A 15 43 61 92 B 16 44 62 93 C 17 45 63 94 D 18 46 64 95 E 19 47 65 96 F 20 48 66 97 G 21 49 67 98 H 22 50 68 99 I J K L M N O P 23 24 25 26 01 02 03 04 51 52 27 28 29 30 31 32 69 70 71 72 73 74 75 76 00 79 80 81 Q 05 33 77 82 R 06 34 78 83 S 07 35 53 84 T 08 36 54 85 U 09 37 55 86 V 10 38 56 87 W 11 39 57 88 X 12 40 58 89 Y 13 41 59 90 Z 14 42 60 91 Bu tekerlek 4 tane hareketli disk içermektedir. 1. disk 01-26 , ikinci disk 27-52, üçüncü disk 53-78, dördüncü disk 79-99 arasındaki rakam çiftlerini içeriyor. Ayrıca 4. disk 4 tane boşluk ve 00 rakam çiftlerini de içermektedir. Anahtar 4 adet rakam çiftlerinden oluşup A harfinin altında ayarlanmaktadır ve herhangi bir harf için yerine koyulacak temsilcilerde altındaki 4 rakam çifti(ya da 3 rakam çifti) olmaktadır. Gerçekte alfabe ve rakam çiftleri karıştılabilseydi sistem daha güvenli olabilirdi. 29 Bir homophonic sistemdeki en büyük zayıflık kullanıcının tembellikten dolayı aynı kelime için sürekli üst üste aynı temsilciyi kullanması veya temsilcileri rastgele seçmek yerine belli bir sıralamaya göre seçmesidir. Ayrıca amatörler tarafından keşfedilmiş homophonic sistemler çeşitli hataların anlaşılmasını kolaylaştırır. Örneğin aşağıda bir homophonic sistem verilmiştir[9]: IT AL BQ CN E J G F D O K M H S P R W --------|a b c d e |f g h i j |k l m n o |p q r s t u v x y z --------V X Y Z U Bu cipher bir “straddling checkboard” denilen tiptedir. “Straddling” kelimesi çoğu harfler temsilci olarak iki-harf grupları kullanırken (kolonlardan ve satırlardan aldıkları gruplardan oluşan) , beş tane az-görülen harfin kendilerini temsil ettiği sistemi ifade eder. Böylece arada sırada görülen tek harf sembollerin problemi kriptoanalist için karmaşık bir hale getirdiği görülür. Bu zorluk kriptoanalistin mesajı oluşturan harf çiftlerinin nerede başlayıp nerede bittiklerini anlaması zorluğudur. Her ne kadar yukarıdaki cipher bayağı iyi özelliklere sahip olsa da bazı hatalar içermektedir. • Bir grup herhangi bir alfabenin yarısından başlayabildiği halde diğer harf mutlaka diğer yarıdan olmalıdır. • Ayrıca bir iki-harf grubunun ikinci harfi kendilerini temsil eden harflerden biri olamaz. Bu cipherde oynayıp aşağıdaki gibi yeni bir cipher üretebilir ve daha güvenli bir şifrelemeyi sağlarız: IZ AL BY CX E J G F D O K U H S V W --------|r q l m x| |e u w h n| |c i k z a| |o j t s d| --------E A C F G I B H J L P D O K M Q T R N V DFOQTX CJLNPWY AEGKUV BHIMRSZ b|M f|T g|N p|R v|P y|Q 30 S U Z X W Y Bilinen ilk homophonic cipher örneği 1401 yılından bir örnektir[10]: a b c d e f g h i k l m n o p q r s t u x y z --------------------------------------------Z y x D t s r q p o n l m k j h g f e d c b a 2 4 8 F 3 H 9 T + J L ~ Bu örnekte büyük harfler, özel sembolleri ifade eder. (J Jüpiterin astrolojik sembolü, vb.) “Polygraphic Cipher”lar ve Parçalama(“Fractionation”):Temsilci için bilinen kelime ya da kısaltmalar kullanımı yerine bir çok harfi basit bir sistem kullanarak şifreleyerek de daha iyi bir güvenlik sağlayabiliriz. Bu basit sistem iki harf için tüm kombinasyonları içermelidir. Elbette rastgele elde edilmiş tüm harf çiftlerinin 676 kombinasyonunu kullanabiliriz ve bu bize harf çiftleri için mümkün olabilecek azami güvenliği sağlar. Veya bunun yerine aşağıdaki tablo gibi bir tablo kullanır her harf çifti için farklı bir sembol kullanırız: 31 Tablo 2.1 Porta Tablosu Tablo 2.1 Porta tarafından 20 karakterli alfabe için hazırlanmış 400 sembol içeren bir tablodur[11]. Aslı bazı tekrar eden sembollere sebep veren tipografik hatalar içermektedir. (ZI ile ZO, VM ile LL, NG ile NB için aynı semboller yazılmıştı.) Bu tabloda görüldüğü gibi temsilcileri bulmak çok kolaydır. Belli bir mantık vardır. Ama bu da başkalarına da kolaylık sağlar bunu önlemek için benzer sembolleri çapraz olarak dizeriz böylece bizim için temsilci seçimi hala kolay iken bu tabloya sahip olmayan başkası zorlanabilir. Bu kadar büyük tablolar kullanılmadan da birden fazla harfin birden şifrelendiği metotlar vardır. Parçalama(“Fractionation”) bunlardan biridir. Bayağı güçlü bir tekniktir ama kağıt kalem sistemlerinde az kullanılmaktadır. Bunu nedeni çok karmaşık olması ve hata yapmaya elverişli olmasıdır. Gerçekten kullanılan iki şema vardır biri Almanların 1. Dünya Savaşında kullandığı ADFGX yada ADFGVX cipher, diğeri de Reino Hayhanen tarafından Amerika’daki bir casusluk işi ile meşgul iken kullanılan VIC cipheridir. Aşağıda bu konuyla ilgili örnekleri bulabilirsiniz. Playfair:26 ya 26 tablolar kullanımı zor ve hantal yapılar olup ezberlenmeleri zor olduğu için çeşitli sistematik metotlar yardımıyla aynı anda birden fazla harfin şifrelenmesi sağlanmıştır. En ünlü “polygraphic” sistem “Playfair” denilen şu şekilde çalışan metottur: 5x5 lik aşağıdaki gibi karıştırılmış bir alfabe içeren bir matris verilir, bu matriste yazılmamış olan tek harf için istediğimiz bir ikili harf birleşimini o harf için kullanırız. (Aşağıda Q yerine KW yi kullanabiliriz örneğin.) T L N C F X K Z G B V M O W S H U J Y D R P E A I Daha sonra olası üç kural yardımıyla harf çiftleri şifreli hale çevrilir. Bu kurallar aşağıdaki gibidir: 32 Kural 1. Eğer iki harf aynı kolon ya da satırda değilse her harfi kendi satırında ama diğerinin kolonunda olan harfle değiştir. Örnekler:TI->RF, TW->VC, KA->PG, UB->KD T------>R | K M U | | Z O J | | G W Y | F<------I T-->V | K | | Z | C<--W F B S T T H U J Y D R P E A I Kural 2. Eğer iki harf aynı kolonda ise harfi aynı kolondaki altındaki harfle değiştir. Örnekler:VW->MS, TN->LC, TL->LN, TF->LT, KB->ZX T L N C F X K Z G B V M | W S H U J Y D R P E A I Kural 3. Eğer iki harf aynı satırda ise harfleri aynı satırdaki sağlarındaki harf ile değiştir. Örnekler:TH->XR, KP->ML, NZ->ZO T L N C F T X---H K M U Z O J G W Y B S D R P E A I 33 Tek bir harf çifti içinde aynı harflere izin verilmemiştir. Böyle durumlarda araya null olarak kullanılabilecek bir harf (örneğin X) koyulur aynı harflerin oluşturduğu parça ikiye ayrılır. Eğer Playfair bilgisayarda diğer cipherlarla kombinasyon şeklinde kullanılacak olursa aynı harflerin oluşturduğu parçalar için farklı yöntemler geliştirilebilir. (Örneğin harfin bir alt ve sağındaki harfin kullanılması gibi ZZ->CC olacaktır.) Playfair kullanılarak, geliştirilerek, kuralları değiştirilerek çok sayıda yeni cipher üretmek mümkündür. “Bifid” ve “Trifid” Cipherları: “Playfair”de kullanılan ilk kural iki harflik bir grubun bir başka gruba kolon koordinatlarının kullanılarak değiştirilmesini ifade eder. Bu yöntemlerde önerilen ise satır ve kolon koordinatlarının daha genel bir biçimde kullanımıdır. Örneklemek için gene yukarıda kullandığımız 5x5 matrisi alalım ama bu sefer satır ve sütunları numaralandıralım: 1) 2) 3) 4) 5) 1 2 3 4 5 --------T X V H R L K M U P N Z O J E C G W Y A F B S D I Ve şu şekilde bir şifreleme metodunu tanımlayabiliriz:Mesajı sabit sayıda harf içeren parçalara ayır, daha sonra her harfin altına satır ve kolon numaralarını yaz, THISI SMYSE CRETM ESSAG E 11555 52453 41312 35544 3 14535 33435 15513 53352 5 ve daha sonra her grup içinde kalarak sayıları sırasıyla 11555 14535 52453 33435 . . . şeklinde okuyup ikili rakamlardan oluşan 11 55 51 45 35 52 . . . şeklindeki parçalara ayırırız. Ve bu parçaların tablodaki harf karşılıkları bize gizli bir mesaj verecektir: 1155514535 5245333435 4131215513 3554453352 35 T I F A E B A O J E C N L I V E D A O B E Bu yöntem Delastelle’nin Bifid cipheri olup bu şekildeki cipherlerin genel ilkesine “seriation” denmektedir. Bu yöntem bu işi hobi olarak edinmişlerce hala kullanılan en güvenli kağıt-kalem cipher sistemidir. Bu tip bir cipheri daha güvenli yapmak hiç te zor değildir. Bu işlem fractionation gibi metotlara bağlıdır. 1 den 5 e kadar iki sembol 25 harf, 1 den 3 e kadar 3 sembol 27 harf ve 5 adet ikili bit 32 karakterlik bir alfabe sağlayacaktır. 34 Gene benzer bir cipher olan “Trifid” (Delastelle) 27 harflik ve 1 den 3 e kadar 3 sembolle temsil edilen bir alfabe kullanır: W 111 A 112 K 113 M 121 & 122 B 123 Z 131 Y 132 H 133 N 211 E 212 Q 213 O 221 V 222 R 223 L 231 P 232 S 233 C 311 X 312 I 313 T 321 J 322 F 323 U 331 G 332 D 333 “Seriation” kullanarak bir mesajı aşağıdaki şekilde şifreleriz: THISISM 3132321 2313132 1333331 YSECRET 1223223 3311212 2321321 MESSAGE 1222132 2133131 1233222 Ve daha sonra gene 3132321 2313132 1333331 1223223 şeklinde okuyup üçlü bloklara ayırdığımızda aşağıdaki gibi şifreli mesajı elde ederiz: 313 232 123 131 321 333 331 I P B Z T D U 122 322 333 112 122 321 321 & J D A & T T 122 213 221 331 311 233 222 & Q O U C S V 1 den 5 e kadar sinyal ateşleri ile oluşturulan gruplarla harfleri temsil etmek ve haberleşmede kullanmak Polybius tarafından bir kitabında önerilmiştir[12]. Önerisi aşağıdaki şekilde görülmekteydi: Yunan harfleri 1 den 5 e kadar numaralandırılmış tabletler üzerine numaralandırılarak yerleştirilmişti. Karakterlerin daha küçük parçalara ayrılması uygulaması da iletişimin farklı tipte kanallar üzerinden sürdürülmesi için kullanılmıştır. (ASCII, Baudot, Mors Alfabesi, vb.) VIC Cipher:VIC cipher Sovyetler Birliği tarafından en azından bir ajanı tarafından kullanılmış olan kağıt-kalem cipheri olmasına rağmen bayağı güvenli olması nedeniyle ilgi çekici bir cipherdir[13]. 35 Burada gösterilecek olan örnekte İngilizce mesajları gönderilmekte kullanılacak ve başlangıçta 10 adet rastgele rakam üreten bir metodu olacak. Ajanın 6 rakamı (tarih biçiminde olan) ve bir anahtar cümlenin ilk 20 harfini ezberlemiş olması ve mesaj belirteci olarak kullanmak için 5 adet rastgele rakam üzerinde düşünmelidir. Tarih Temmuz 4, 1776 olsun, bu bize 741776 (Amerikan usulü tarih) rakamlarını verir. Ve rastgele belirteç grubu da 77651 olsun. İlk basamak belirteç gruptan tarihin ilk 5 rakamının rakam rakam çıkarılmasıdır(eldeler olmadan): 77651 (-) 47177 --------03584 İkinci basamak anahtar cümlenin alınıp ikiye ayrılıp her parçada alfabedeki sıralarına göre harflere rakam atanmasıdır:(Burada anahtar:I dream of Jeannie with t) I D R E A M O F J E 6 2 0 3 1 8 9 5 7 4 A N N I E W I T H T 1 6 7 4 2 0 5 8 3 9 İlk basamakta elde ettiğimiz sonucu 10 rakama arttırmak için "chain addition" denilen yöntemi kullanırız. Bu örneğe özgü olmak üzere 5 adet rakamla başlarız, ilk iki rakamı ekler onlar basamağındaki sonucu 5 rakamın sonuna ekleriz, daha sonra 2. ve 3. rakamları toplar onlar basamağını gene 6 rakamın sonuna ekleriz bu şekilde devam ederek 10 rakamı elde ederiz:3058435327 Bu elde ettiğimiz 10 rakam ile ikinci basamakta anahtardan elde ettiğimiz 10 rakama eldeleri hesaplamadan ekleriz: 6 2 0 3 1 8 9 5 7 4 (+) 0 3 5 8 4 3 8 3 2 7 ----------------------6 5 5 1 5 1 7 8 9 1 Daha sonra bu elde ettiğimiz değeri anahtardan elde ettiğimiz ikinci 10 rakamın 1 den 0 kadar kodlanmasıyla oluşan sonuca göre kodlarız: 1 2 3 4 5 6 7 8 9 0 kodunu kullanarak 1 6 7 4 2 0 5 8 3 9 6 5 5 1 5 1 7 8 9 1 ifadesinden 0 2 2 1 2 1 5 8 3 1 ifadesini elde ederiz. Bu elde edilen yeni 10 rakam “chain addition” kullanılarak şifrelemede kullanılacak 50 tane rastgele(pseudorandom) rakamın tespitinde kullanılacak: 0 2 2 1 2 1 5 8 3 1 --------------------- 36 2 6 3 6 1 4 7 3 5 2 3 6 2 7 0 3 6 5 3 4 3 9 8 1 3 6 9 3 2 3 3 4 9 1 9 1 5 2 8 6 4 7 6 8 6 3 9 2 8 9 Bu değerlerden sonuncusunun rakamları aşağıdaki gibi 1 den 9 a kadar(0 10 yerine) denklenir: 1 2 0 4 3 3 9 6 6 9 --------------------1 2 0 5 3 4 8 6 7 9 Ve bu değerler bir karışık dama tahtasının üst satır numaraları olarak kullanılır: 1 2 0 5 3 4 8 6 7 9 ------------------A T O N E S I R ------------------0 B C D F G H J K L M 8 P Q U V W X Y Z . / Karışık dama tahtasını da oluşturduktan sonra mesajımızı şifrelemeye başlayabiliriz. Mesajımız: We are pleased to hear of your success in establishing your false identity. You will be sent some money to cover expenses within a month. olsun. Mesajı tablomuzdan yararlanıp numaralara çeviririz: W EAREP L EASED TOH EAROF Y OU RSU C C ESSINESTAB L ISH ING 834194810741640025044195058858096800202466734621010776047303 Y OU RF AL SEID ENTITY Y OU W IL L B ESENTSOM EM ONEY TOC O 88580905107647004327288885808370707014643265094095348825025 V EREX P ENSESW ITH INAM ONTH 854948481436468372047310953204 Örneğimizde ayrıca ajanımıza bir kişi numarası olarak 8 sayısını vereceğiz. Bu numara transpose işleminde kullanacağımız iki tablonun genişliklerinde kullanılacaktır. Yukarıda üretilen 50 rakamın en sonuncu eşit olmayan iki rakamı(bu durumda son iki rakam olan 6 ve 9) kişi numarasına eklenecek ve 8+6=14, ve 8+9=17 kolon sayılarını elde edeceğiz. 0 sonuncu olmak üzere aşağıda görülen daha önce elde ettiğimiz 50 rakamlı tablodan kolonları ayırıp bitişik yazarız. 0 2 2 1 2 1 5 8 3 1 --------------------2 4 3 3 3 6 3 1 4 3 6 7 6 6 9 9 4 5 7 9 3 3 2 5 8 3 9 2 6 2 6 5 7 3 1 2 1 8 8 8 1 2 0 4 3 3 9 6 6 9 37 36534 69323 39289 47352 36270 39813 4 (Toplam 31 rakam:14+17=31 yukarıda elde etti•imiz kolon sayıları toplamı) İlk yer değiştirmemiş ilk 14 rakamı geleneksel basit kolonsal yer değiştirme için anahtar olarak kullanır: 36534693233928 -------------83419481074164 00250441950588 58096800202466 73462101077604 73038858090510 76470043272888 85808370707014 64326509409534 88250258549484 81436468372047 3109532049 Mesajımız 14 rakamdan oluşan on satır ve bir adet 9 rakamlı satır ile toplam 149 harf uzunlukta olmuş oluyor. Bu mesajı tam 5 in katı olan bir sayı yapmak için 150 rakam uzunluğa getirmek için bir adet null(burada 9 rakamı) ile doldururuz. Null rakam eklenip yukarıdaki anahtara göre orta mesajımız şu şekilde oluşacaktır: 09200274534 6860181384 80577786883 15963702539 11018309880 75079700479 4027027992 90628086065 42040483240 30833654811 44818035243 4864084447 84005470562 1546580540 31 rakamdan geriye kalan 17 rakam(9 47352 36270 39813 4) ikinci yer değiştirmemizde anahtar olarak kullanılacaktır. Mesajımızın 150 rakamdan oluştuğunu bildiğimiz için 8 adet 17 rakamdan oluşan satır ve bir adet 14 rakamdan oluşan satırdan oluşacağını biliriz. (Yerleştirirken ilk satırı ilk okunacak olan kolona kadar yazıp alttaki satırdan yazmaya devam ediyoruz ve her satır atlamada bir sonraki kolonda bitiriyoruz. Son kolona gelince aşağıdaki satırda okunacak bir sonraki kolona kadar yazıp işlemi tekrarlıyoruz. Kalan rakamlarda yukarından aşağıya doğru boşluklara yerleştiriliyor.) 94735236270398134 ----------------09200274534686 018138480577786 8831596370253911 01830988075079700 47940 270279 9290628 08606542 040483240 tablosunu ilk önce oluşturup tabloyu aşağıdaki son haline getiririz: 38 94735236270398134 ----------------09200274534686308 01813848057778633 88315963702539116 01830988075079700 47940548114481803 27027952434864084 92906284478400547 08606542056215465 04048324080540 ve bu tablodan rahatça tam olarak şifrelenmiş mesajı okuyabiliriz. 36178054 289959253 507014400 011342004 746845842 675048425 03100846 918177284 83603475 035007668 483882424 283890960 350713758 689914050 008042900 873786014 472544860 Tarihteki son rakam olan 6 rakamı bize belirtecin sondan 6. sırada mesaja yerleştirilmesi gerektiğini belirtir ve belirtecin eklenmesiyle mesaj aşağıdaki son hali alır: 36178 05428 99592 53507 01440 00113 42004 74684 58426 75048 42503 10084 69181 77284 83603 47503 50076 68483 88242 42838 90960 35071 37586 89914 05000 77651 80429 00873 78601 44725 44860 “Polyalphabetic” Yerine Koyma:En erken “polyalphabetic” cipher Leon Batista Alberti tarafından 1467 yılında bulunmuştur[14]. Bu sistemde cipher metin küçük harflerle yazılıyor ve büyük harflerde mesajda alfabenin değiştirildiği noktaları belirlemede işaretçi olarak kullanılıyordu. Daha sonraları daha gelişmiş sistemler de oluşturuldu: • İlerici-Anahtar sistemleri:Anahtarlar normal sırada birbirlerinin ardında kullanılıyordu. Bu sistemle ilk olarak 1518 yılında Johannes Trithemius’un ölümünden sonra basılan bir kitabında karşılaşıldı. • Alfabeleri belirten bir anahtar kelimenin kullanılması. Bu sistem aslında Vigénere adını alıyor olsa da Giovan Batista Belaso tarafından 1553 tarafından çıkarılmıştır. 1563 yılında da Giovanni Battista Porta’da karışık alfabelerin kullanılmasını bu sisteme ekledi. • Otomatik Anahtar Sistemi:Bu sistemde seçili bir alfabeyle başlanır daha sonra mesaj kullanılacak alfabeyi diğer kısımlar için anahtara göre değiştirir. İlk olarak kullanılamayacak bir şekilde Girolamo Cardano tarafından önerilmiş olsa da bu sistemin modern şeklini Blaise de Vigénere tarafından 1585 yılında önermiştir. Aşağıdaki tablo bize 26 alfabelik bir “polygraphic” cipher oluşturmada yardım edebilecek bir tablodur: B C D E F ZABCDEFGHIJKLMNOPQRSTUVWXY 39 G L Q V H M R W I N S X J O T Y K P U Z UVWXYZABCDEFGHIJKLMNOPQRST PQRSTUVWXYZABCDEFGHIJKLMNO KLMNOPQRSTUVWXYZABCDEFGHIJ FGHIJKLMNOPQRSTUVWXYZABCDE B C D E F G H I J K L M N O P Q R S T U V W X Y Z ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD A alfabesi her harf kendisini temsil edeceği için gösterilmemiştir. A alfabesi kullanılarak yapılacak şifreleme için tabloya bakmadan harfi aynen yazarız. Diğer alfabeler için alfabeyi belirten harf ile ilk 5 satırdan birini ve ikinci 5 satırdan birini seçeriz. İlk seçtiğimiz satır düz metin, ikinci seçtiğimiz satır şifreli hali olacaktır. Örneğin Q alfabesi için ilk seçilen alfabe KLMNO ile başlıyor, ikinci seçilen alfabe ABCDE başlıyor, Q anahtar alfabesine göre K A ya dönüşür, Q G ye dönüşür ve A Q ya dönüşür. İngilizce alfabesinde her harf için sırasıyla sayıları kullanıp temsil edecek olursak 26 Mod aritmetiği bizim için yeterlidir. (A->0, B->1, . . . , Z->25) Vigénere tablosunu oluşturduğumuz zaman bu sistemi daha iyi görebiliriz: Tablo 2.2 İngilizce Alfabe İçin Vigénere Tablosu Elbette başka alfabeler kullanarak, farklı modüler aritmetik sonuçlar elde edebiliriz. Modülo-24 Yunan, modülo-32 Rus, modülo-29 Türkçe veya modülo-22 İbrani alfabeleri için kullanılarak tablolar elde edilebilir. 40 “Wish you were here” mesajı SIAMESE anahtarı yardımıyla üç farklı şekilde şifrelenebilir: Direk olarak anahtar: Mesaj : Anahtar: •ifreli Mesaj: WISHYOUWEREHERE SIAMESESIAMESES OQSTCGYOMRQLWVW •lerici Anahtar("Progressive Key"): (SIAMESE yetmezse bu harflerden sonra gelen harfler anahtar olarak kullanılıyor. Bu böyle devam ediyor.) Mesaj: Anahtar: •ifreli Mesaj: WISHYOUWEREHERE SIAMESETJBNFTFU OQSTCGYPNSRMXWY Otomatik Anahtar: (SIAMESE bitince mesajın ba•ından itibaren anahtara ekleme yapıyoruz.) Mesaj: Anahtar: •ifreli Mesaj: WISHYOUWEREHERE SIAMESEWISHYOUW OQSTCGYSMJLFSLA Direk olarak anahtar yöntemi Kasiski yöntemi ile rahatça kırılabilir;Bu yöntemde tekrar eden harf serilerine bakılıp bunların arasındaki harfler sayılır. Bu şekilde anahtarın uzunluğunun tespiti kolaydır. Bu şekilde harfler dizilip kullanılan benzer alfabeler bulunur. Eğer normal alfabeler kullanılmışsa bu şekilde frekans analizi kullanarak çözüm çok basit olacaktır. Diğer iki metot için sadece normal(en azından bilinen) alfabeler için çözüm vardır. İlerici anahtar yönteminde tekrar eden harfler yerine alfabedeki bitişik harflerin arasındaki tekrar eden uzaklıklara bakılıp, az gözüken anahtarın alfabeden çıkarılması sağlanır. Otomatik anahtar basitçe “brute-force” yöntemiyle çözülebilir. Elbette bu yöntemlerde karışık alfabeler kullanılırsa da çözülme imkanı vardır fakat bunun için istatistik veya aynı anahtarla şifrelenmiş birçok mesajı içeren daha gelişmiş yöntemlere ihtiyaç olacaktır. 2.1.4 Kod Kitapları Karmaşık elektriksel ve mekanik şifreleme makineleri yapılmadan önce bayağı karmaşık işlemler gerektiren şifreleme sistemleri pratik olmayan ve hata üreten sistemlerdi. Binlerce kelime ve ifade için uzun bir eşdeğer listesi içeren bir kod kitabı her kelime için fazla sayıda operasyon gerektiren şifrelemeye gerek kalmadan belli bir güvenlik sunabiliyordu. Kodlar ayrıca ticarette kullanılan belli başlı ifadelerin kodlanması ile daha ucuza telgraf gönderilmesine olanak sağlıyordu. Bu tip kod kitaplarında kodlar ve ifadeler kolay 41 bulunabilecek şekilde düzenleniyordu. Bu şekilde düzenlenen kod kitaplarına tek-parça kod deniliyordu. Çoğu gizli kod kitabı iki-parça kod adını alıyordu;kod grupları şifrelenen kelimelere göre rasgele bir sırada atanıyordu ve kitap kelimelerin alfabetik sıralamasına göre bir şifreleme kısmı ile kod gruplarının alfabetik(yada nümerik)sıralamasına göre bir çözme(“decoding”) kısmı içeriyordu. Bazı kod kitapları kelimelere hem nümerik hem de alfabetik kod grupları atayabilmektedir; alfabetik kod grupları Mors kodu ile daha kolay iletilebilir, ama nümerik kod gruplarının kullanımı daha kolaydır. Bu kitaplara örnek olarak İngiliz ve İttifak Ticaret Gemi kodları(“British and Allied Merchant Ship code”), Amerikan Seferberlik Kuvvetleri Hudson kodu (“Hudson code of the American Expeditionary Force”), İngiliz Deniz Kuvvetleri tarafından 1. Dünya Savaşının son aylarında kullanılan “Cypher SA” gösterilebilir[15]. 2.2 Elektriksel ve Mekanik Şifreleme Makineleri Otomasyon için makinelerin kullanılmasıyla birlikte şifreleme çok daha komplike “cipher”ler kullanmaya başladı. Bu “cipher”ler elle uygulananlardan daha karmaşık ve daha az hatalı olmaya başladı. Hatta makinelerin güvenilir ve ucuz olması gereğine rağmen bu doğrudur ve bu demek oluyor ki bu makineler sadece bazı basit işlemleri içerebilir. (Bugün elbette mikroçip sayesinde daha fazlasını daha ucuza sunuyorlar.) Bu bölümde incelenmesi gereken birkaç şifreleme makinesi olduğu gibi bu bölümde incelenen bazı makineler ilgileri olmasa da bilgisayar çağı için bir fikir sağlayacakları için inceleneceklerdir. 2.2.1 Erken şifreleme makineleri Bazeries Silindiri:Aslında Amerikan başkanı Thomas Jefferson tarafından 18. YY’ da bulunmasına rağmen 19 yy. ’da Kumandan Etienne Bazeries tarafından tekrar bulunana kadar öğrenilemedi[16]. Kabaca 20 ile 30 adet olmak üzere numaralanmış disklerden oluşur. Disklerin her birinde farklı alfabeler (aynı dilin karışmış alfabeleri) ve her diskin ortasında bir mile yığılabilmeleri için bir delik vardır. Disklerin sırası Bazeries silindirinin “anahtar”ı olarak kullanılır. Bu yüzden gönderici ve alıcı aynı disk sırasını kullanmalıdır. 42 Bir mesajın şifrelenebilmesi için gönderici diskleri bir satırda mesajı elde edecek şekilde döndürür ve başka bir satırı şifreli mesaj olarak seçer. Bu şifreli mesajı çözmek için alıcı diskleri “anahtar” olan göndericinin disk sırası ile aynı sırayı oluşturur ve bir satırda şifreli mesajı elde edene kadar diskleri döndürür. Daha sonra eğer alıcı göndericinin seçtiği şifreli mesajın düzmetinden kaç satır ötede olduğunu biliyorsa bu bilgiyi kullanarak şifreli metinden geriye gidip düzmetini bulabilir. Ama bilmiyorsa en mantıklı, en anlamlı satır düzmetinin kendisi olacaktır zaten. Diğer tüm satırlar anlamsız olacaktır. Örnek olarak 10 diskli basit bir Bazeries silindiri aşağıdaki gibi olsun (İngilizce alfabesi kullanan): 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: < ZWAXJGDLUBVIQHKYPNTCRMOSFE < < KPBELNACZDTRXMJQOYHGVSFUWI < < BDMAIZVRNSJUWFHTEQGYXPLOCK < < RPLNDVHGFCUKTEBSXQYIZMJWAO < < IHFRLABEUOTSGJVDKCPMNZQWXY < < AMKGHIWPNYCJBFZDRUSLOQXVET < < GWTHSPYBXIZULVKMRAFDCEONJQ < < NOZUTWDCVRJLXKISEFAPMYGHBQ < < XPLTDSRFHENYVUBMCQWAOIKZGJ < < UDNAJFBOWTGVRSCZQKELMXYIHP < anahtar olarak (disklerin sırası) 7 : 9 : 5 : 10 : 6 : 3 : 8 : 2 : 4 kullanalım: ve gönderilecek mesaj “retreat now” (=şimdi geri çekil) olsun. Gönderici diskleri elindeki “anahtar”a göre tekrar düzenler ve ilk satırda düzmetini(mesajı) elde edene kadar çevirip aşağıdaki şekle getirir: daha sonra 7: 9: 5: 10: 1: 6: 3: 8: 2: 4: <R <E <T <R <E <A <T <N <O <W AFDCE NYVUB SGJVD SCZQK ZWAXJ MKGHI EQGYX OZUTW YHGVS AORPL 6. satırdaki O M K E G W P D F N metini NJQGWTHSPYBXIZULVKM < CQWAOIKZGJXPLTDSRFH < CPMNZQWXYIHFRLABEUO < LMXYIHPUDNAJFBOWTGV < DLUBVIQHKYPNTCRMOSF < PNYCJBFZDRUSLOQXVET < LOCKBDMAIZVRNSJUWFH < CVRJLXKISEFAPMYGHBQ < UWIKPBELNACZDTRXMJQ < DVHGFCUKTEBSXQYIZMJ < şifreli mesaj olarak seçer ve gönderir. (OMKEGWPDFN) Alıcı diskleri “anahtar” a göre yeniden düzenler ve disklerde bir satırda bu şifreli mesajı görene kadar diskleri döndürür ve bulduğu satırdan 6 satır önceki mesaj düzmetindir. 43 Ayrıca silindir üzerinde kaç satır fark olduğunu bilmese de anlamlı olan tek satır mesajın olacağı satırdır. Kryha Şifreleyici:Birçok değişik çeşidi olan bu makinede iki disk bulunur. Disklerin üzerinde kullanıcı tarafından değiştirilebilen karışık alfabeler vardır. Hareket bir mil yardımıyla kontrol edilmektedir. Bu şifreleyicilerin çeşitlerinden biri 1817 yılında Wadsworth tarafından icat edilen ve 1860’lı yıllarda Wheatstone tarafından geliştirilen Wheatstone diskidir[17]. İki eşmerkezli diskin çevresi alfabedeki harfleri taşır(İngilizce). Dış disk alfabenin sırasıyla 26 harfini ve boşluk için bir eleman içerir. İçteki disk ise karışık sıralanmış 26 harfi içerir. İki gösterici çubuk vardır(Saatteki gibi). Bunlar beraber hareket ederler. Dıştaki bir harf yol alınca içteki de bir harf yol alır. Dıştaki tam bir dönüş yapınca içteki bir dönüş ve bir boşluk kadar döner. Dıştaki gösterici devamlı düzmetini gösterirken içteki gösterici ile şifreli metini okuruz. Dıştaki gösterici devamlı saat yönünde ve düzmetindeki harfleri sırasıyla dolaşır. İçteki diskin başlangıç konumu istendiği gibi değiştirilebilir. Şifreli mesajın sadece harfin konumuna bağlı olmayıp, önceki harfe de bağlı olma gibi ilginç bir özelliği vardır. Bu DES’te “cipher block chaining mode”(şifre blok zincirleme modu) işlemiyle oluşan duruma benzemektedir. Şekil 2.2: Klasik Wheatstone Diski 44 Hill Cipher:Bu sistem matrisleri kullanır ve metini aynı uzunlukta başka bir metine çevirir. Lester S. Hill tarafından bulunmuş ve 1929 yılında bir dergide sunulmuştur[18]. Aşağıdaki metin mesajımız olsun: Herbert Yardley wrote The American Black Chamber. Mesajımızı ikili harf bloklarına ayırırız:(Eğer çift sayıda harf içermiyorsa sonuna bir null ekleriz) he rb er ty ar dl ey wr ot et he am er ic an bl ac kc ha mb er ve şimdi her harf çiftinin alfabedeki yerini yazarız: 8 5 18 2 5 18 20 25 1 18 4 12 5 25 23 18 15 20 5 20 8 5 1 13 5 18 9 3 1 14 2 12 1 3 11 3 8 1 13 2 5 18 ⎡3 7 ⎤ ⎥ matris-anahtarını kullanarak şifreleriz: 5 12 ⎣ ⎦ Şimdi her çifti ⎢ İlk çifti kolon matrise çevirir ve anahtar ile çarparız, sonucu mod 26 olarak yazarız. ⎡3 7 ⎤ ⎡8⎤ ⎡ 59 ⎤ ⎢5 12 ⎥ ⎢5⎥ = ⎢100 ⎥ ⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎡ 59 ⎤ ⎡ 7 ⎤ ⎢100 ⎥ ≡ ⎢ 22 ⎥ mod 26 ⎣ ⎦ ⎣ ⎦ Bunu tüm harf çiftlerine uyguladığımızda aşağıdaki şifreli metini elde ederiz. GVPJKGAJYMRHHMMSCCYEGVPEKGVCWQLXXOBMEZAKKG Bu şifreyi çözmek için anahtarla elde edebileceğimiz aşağıdaki işlemin sonucunu bulmalıyız: ⎡3 ⎢5 ⎣ ⎡? ⎢? ⎣ 7 ⎤ ⎡8 ⎤ ⎡ 7 ⎤ mod 26 ≡ 12 ⎥⎦ ⎢⎣5⎥⎦ ⎢⎣ 22 ⎥⎦ ? ⎤ ⎡ 7 ⎤ ⎡8 ⎤ ≡ mod 26 ? ⎥⎦ ⎢⎣ 22 ⎥⎦ ⎢⎣5⎥⎦ +_____________________________ 45 ⎡ ? ? ⎤ ⎡ 3 7 ⎤ ⎡8 ⎤ ⎡8 ⎤ ⎢? ?⎥ ⎢5 12 ⎥ ⎢5⎥ ≡ ⎢5⎥ mod 26 ⎣ ⎦⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎡? ? ⎤ ⎡ 3 7 ⎤ ⎥ ⎢5 12 ⎥ =birim matris olmalı ki bu eşitliği sağlayalım. ? ? ⎣ ⎦⎣ ⎦ olduğuna göre ⎢ ⎡3 7 ⎤ Buna göre istenen çözülmüş hali ⎢ ⎥ ⎣5 12 ⎦ −1 olmaktadır. Bütün şifreli çiftlerin matris terslerini bulduğumuz zaman düzmetini tekrar oluşturabiliriz. Daha büyük (3x3, 4x4) matrisler kullanıp metini daha fazla harf içeren parçalara bölebiliriz. Bu sistemin kriptoanalizini yaptığımız zaman şu sonuçlara ulaşırız. Matrisin boyutu arttıkça farklı matris elde etme oranı artmaktadır. Bu da çözmeyi daha fazla zorlaştırıyor. Ama en önemli nokta Matematikçilerin(ve ağır Matematik eğitimi alan diğerlerinin) matrisleri çok iyi bilmesidir. Biraz Lineer Cebir ve Lineer Matematik ders bilgisi ile sadece iki tane düzmetin-şifreli metin uygunluğunu bilerek 2x2 lik anahtarın kırılabileceği kolayca gösterilebilir. Genelleştirerek n tane düzmetin-şifreli metin uygunluğunun nxn anahtarlı Hill Cipher’in kırılabileceği gösterilebilir. 2.2.2 Rotor makineleri ve PURPLE kuzenleri Rotor makine temelleri:Şifreleme makinesi denilince çoğu insanın aklına ilk gelen rotor makinesi olmaktadır(Alman rotor şifreleme makinesi Enigma’nın ününden dolayı). Rotor, her yüzünde 26 adet eşit-boşluklu elektrik temas noktası bulunan disklere verilen addır. Bir yüzdeki temas noktaları, diğer yüzdeki temas noktalarına karışık bir şekilde bağlanarak her harfin karşılığı elde edilir. Hebern makinelerinde[19] rotorlardaki temas noktaları basit düz metal halkalardır. Bunların birleşmesi için rotorda bir yay sistemi ile bilyeler vardır. Bu daha fazla anahtar olanağı sağlayan rotorların ters konulabilmesine de olanak sağlıyordu. Enigma[20] ise daha ucuza üretilmişti;bir yüz metal temas noktaları, diğer yüz ise yaylı temas noktaları içeriyordu. Böylece gereken temas noktası sayısı yarıya iniyordu. Rotoru döndürerek karışık alfabeyi değiştiriyoruz. Her yüzde 26 temas noktası içeren ve her temasın bir harfi temsil ettiği rotorda döndürmeden önce E, M şekline çevrilirken, 46 döndürme yönüne bağlı olmak üzere rotoru döndürdükten sonra D, L’yi veya F N’ yi temsil etse bile E kablonun nasıl temas ettirildiğine göre tamamen farklı bir harfle temas ettirilebilir. Böylece normal karışık alfabede Vigeneré şifrelemede aşağıdaki eşleşmeler olabilirken ---------------------------| plhzctyqjufebsiwmvnkadxrog | -----------------------------------------------------NDXFPZATLCRVGQOBKMYJIHUESWNDXFPZATLCRVGQOBKMYJIHUESW ------------------------------------------------------ bir rotor makinesinde aşağıdaki gibi rotorun dönmesiyle değişebilecek eşleşmeler olabilir. ---------------------------| abcdefghijklmnopqrstuvwxyz | -----------------------------------------------------11111111112222222 11111111112222222 1234567890123456789012345612345678901234567890123456 21 212 1 2111 1 121 2 2 121 212 1 2111 1 121 2 2 1 2796218535094266184173405327962185350942661841734053 -----------------------------------------------------| ABCDEFGHIJKLMNOPQRSTUVWXYZ | ---------------------------- Hebern makinesindeki 5 rotor bir odyometrede olduğu gibi birbirlerini ateşleyerek dönmeye yaklaşmışlardır. Ama tam olarak odyometre gibi dönememişlerdir. Hızlı rotorlar, her harf şifrelendikten sonra;orta hızlı rotorlar her 26 harf şifrelendikten sonra;yavaş rotorlar her 650den fazla harf(genellikle 676) şifrelendikten sonra dönen ve hiç dönmeyen rotorlar olmak üzere rotor çeşitleri vardır. Hebern 5 rotorlu makinelerinin bazı çeşitleri hangi rotorun hangi hızla döneceğini belirleyen kollar içeriyordu. Aralık Yöntemi:Eğer rotorun sadece bir yüzü çevrilebilirse her 26 harften biri için farklı bir çıktı alınacağı garantisi doğar. Özel bir rotor olan yarım-rotor bu işi yapar. Fakat böyle bir rotor yapısı gereği pahalı olmakta ve fazla hacim kaplamaktadır. Normal bir rotorda farklı çıktı almak içinse kabloların nasıl bağlanacağını belirlemek için Aralık Yöntemi kullanılmaktadır. Rotor düzeninde aralık yöntemi bulmak 8 Vezir probleminin çözümüyle ilgilidir. Kullanılan problem şu şekildedir:bir satranç tahtası, bir köşeden diğer köşeye hareket mümkün, ve vezirler sadece çapraz gidip çaprazdakileri yiyebilirler. Vezirler bu tahtaya birbirini yemeden yerleştirilmek isteniyor. Bu problemin çözümü de ancak tek sayılı 47 tahtalarda olmaktadır. (7x7 tahta, 7 vezir;9x9 tahta, 9 vezir şeklinde). 8 vezir içinse bu problemin çözümü yoktur. Rotorun her iki yüzünde de tel temas noktalarına bağlıdır. Eğer her iki yüzdeki tüm temas noktaları tel ile bağlanmış ise temas noktaları toplamı sıfır olmalıdır. (temas noktalarına harflerin konumları numara olarak verilir ve yüzlerden biri negatif kabul edilirse ayrıca bu sonuç rotorun boyunun moduna göredir)Bunun sebebi tellerin bağlandığı temas noktalarının her iki yüzde de aynı sayıları almasıdır. Eğer biri tüm olabilecek bağlantıları kullanırsa(1 den n ye kadar) çift n için toplam yanlış olacaktır. Aşağıda aralık yöntemi hesaplaması ile kablolama için bir örnek var: Giri•: 1 2 3 4 5 6 7 8 9 Çıkı•: 5 4 3 2 1 9 8 7 6 ----------------------------------------Fark: 4 2 0 7 5 3 1 8 6 Çift sayıda temaslar için kullanılan aralık yöntemi kablolamada tam olarak bir adet fark ihmal edilir ve bir fark ise iki kere görülür. Ama yukarıdaki örnek simetrik olduğu için aralı k kriterini sağlayan ve genellikle rasgele elde edilebilen bir sürü olasılık içerebilir. Aşağıdaki İngiliz alfabesi için bir başka aralık yöntemi ile kablolama örneği vardır:(bu rotor 26 temas noktası içerir) Giri•: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Çıkı•: L N K Y U W Z J X H E I A O G S P V C T D R B Q F M --------------------------------------------------------------------------------------------Fark : 11 12 8 21 16 17 19 2 15 24 20 23 14 1 18 3 25 4 10 0 9 22 5 19 7 13 Bu örnekte fark 6 görülmezken fark 19 iki kere görülmektedir. Tüm rotorun dönü•ünün ve kendisinin tek yüzü ihmali 1-temaslı rotorlar: 2-temaslı rotorlar: 1 3-temaslı rotorlar: 4-temaslı rotorlar: 1 5-temaslı rotorlar: 6-temaslı rotorlar: 4 7-temaslı rotorlar: 8-temaslı rotorlar: 32 9-temaslı rotorlar: 10-temaslı rotorlar: 464 11-temaslı rotorlar: 12-temaslı rotorlar: 8,768 13-temaslı rotorlar: 14-temaslı rotorlar: 227,008 15-temaslı rotorlar: 16-temaslı rotorlar: 7,814,144 Tüm rotorun dönü•ünün ihmali 1 2 1 4 3 24 19 256 225 4,640 3,441 105,216 79,259 3,178,112 2,424,195 125,026,304 Tümü 1 2 3 16 15 144 133 2,048 2,025 46,400 37,851 1,262,592 1,030,367 44,493,568 36,362,925 2,000,420,864 48 17-temaslı rotorlar: - 94,471,089 1,606,008,513 Tablo 2.3 Rotor Temas Sayılarına Göre Kombinasyon Sayıları “Isomorphs”:Her şeye rağmen bir rotor makinesi tarafından üretilen karışık şifreleri bile kırma olasılığı vardır. Özellikle her harf şifrelendikten sonra tek bir rotor hareket ederse -bu rotor ister giriş ister çıkış sonu rotoru olsun- ve 26 harften önce başka rotor hareket etmezse. Elbette elde örnek düzmetin-şifreli metin çiftleri olması yardımcı olacaktır. Böylece gönderenin alıcıya rotorların başlama noktalarını bildirmekte kullandığı yöntem olan “Gösterge Sistemi”de kırılabilir. Sadece tek rotor hareket ederken ve makinenin geri kalanı sabit iken ve hareket eden rotor dışarıda iken 26 harfe uygulanan şifreleme ile diğer tipler arasındaki tek fark bunun bir “monoalphabetic substitution” oluşudur. Eldeki birbirini tamamlayan yeterli örnek düzmetin-şifreli metin eşleşmeleriyle hızlı rotorun(dönen rotor) küçük parçalar şeklinde oluşturulması ve hatta bu parçaların birleştirilmesi mümkün olmaktadır. Hızlı rotorun etkisini bu şekilde oluşturduğumuz basit bir düzenekle yok ederek düzmetini oluşturmaya başladığımızda mesajları çözmek bizim için bir çocuk oyuncağı olacaktır. Eğer rotorların hepsini kablolamayı biliyor ve elimizde bilinen bazı düzmetinler varsa ve hızlı rotor dışarıda ise çözmek için kullanılacak prosedür şöyledir:Hızlı rotordaki gibi her 26 döngüsel pozisyonda (bu 5 rotorlu bir makinede 130 denemedir) her rotoru deneyip elimizdeki örneklere göre sonucu elde etmektir. Eğer hızlı rotor dışarıda ise şifreyi çözme, içeride ise şifreleme kullanıp eşler bulunur. Bu şekilde bulunan düzmetin-şifreli metin eşlerinde bulunan harf eşlemeleri izomorf adını alır. Daha karmaşık rotor hareketi izomorf saldırı yöntemine karşı belli bir koruma getirebilir. Ayrıca hızlı rotor ortada bir yerde ise de böyle bir saldırı zor olacaktır. PURPLE, CORAL ve JADE:Bu üç makinede telefon aşamalı düğmelerinden (telephone stepping switchs) oluşuyordu. Bu düğmeler altı giriş teli içeriyordu. Her bir tel bir “wiper”a bağlıydı. Her “wiper”da yirmi beş terminalden birine bağlanabiliyordu. Bütün bu altı “wiper” beraber hareket ediyor ve her biri kendi yirmi beş terminal kümesini içeriyordu. 49 Bir akım geldiğinde “wiper”lar bir pozisyon ilerliyordu. Ama eğer “wiper” 25. pozisyonda ise bir yay bunları ilk pozisyona geri götürüyordu. Böylece 25 terminal tek yönde gezilebilen bir daire şeklindeymiş gibi düzenlenmiş oluyordu. CORAL beş adet düğmenin oluşturduğu yığıtla bir Hebern makinesindeki bir rotorun yaptığı işi yapıyordu. 26 giriş teli akımı 26 çıkışa 25 farklı şekilde taşıyordu. Her 25 “wiper”in pozisyonundaki alfabeler tamamen bağımsız ve ilgisiz oluyordu. (rotorun farklı pozisyonlarındaki alfabelerden farklı olarak) JADE’in CORAL’dan tek farkı şifrelemede 48 sembol içeren Japon Katakana sembol takımını kullanmasıydı. Bunu gerçekleştirirken klavyelerde kullanılan bir shift yardımıyla 25 sembolün 48 harfli kata ve 2 ek işaret içeren alfabeye dönüştürülmesi mantığını kullanıyordu. PURPLE bu makinelerin en eskisidir. İlginç bir yapıya sahiptir. Bir “plugboard” yardımıyla 20 harf 4 aşamalı düğmeler yardımıyla şifrelenirken, diğer 6 harf sadece tek aşamalı düğmeler yardımıyla şifreleniyordu. Bu makinenin en büyük zaafı bu 6 harf idi. Bu 6 harf frekans sayım yöntemi kullanılarak kolayca tespit edilebiliyordu. Bunda daha önemli olduğu söylenen bir zaafı da aşama düğmelerinin bulunduğu bankaların değiştirilememesi, böylece rotor sırası değiştirmeye benzeyen işlevin gerçekleştirilememesidir. [21] Şekil 2.3: PURPLE Kablolamasını Gösteren Bir Resim 50 2.2.3 Enigma:Eşsiz Rotor Makinesi Şekil 2.4: Enigma’nın Genel Yapısı Yukarıdaki şekilde genel yapısını gözüken Enigma II. Dünya savaşında müttefiklerin işini bayağı zorlaştıran ünlü Alman şifreleme makinesidir. Bu makine de bir rotor makinesidir. 215 AAA FRA "ABIRUXKP" PCDAONONEBCJBOGLYMEEYGSHRYUBUJHMJOQZLEX Cümlesi Enigma tarafından üretilen şifrelenmiş metin olsun. 215 Rotor sıralamasını belirtir:2 sol rotor numarası, 1 orta rotor numarası, 5 sağ rotor numarası (Walzenlage) AAA uygun olan halka ayarıdır (Ringstellung) FRA uygun olan başlama pozisyonudur (Grundstellung) AB IR UX PK “plugboard” bağlantıları (Steckerverbindungen) ANBULMEGRAZGOESTINGSTRENGGEHEIMEMELDUNG şifrelenmiş metindir. 51 Şifrelemeyi bir harf için örnekle açıklayacak olursak: Rotorların I, II, III şeklinde yüklenmiş olduğunu kabul edelim. Ayrıca her rotorun şifreleme esnasında A pozisyonunda olduğunu kabul edelim. G harfini şifrelemek şu şekilde olacaktır: Sağ rotor R yerine koymayı şu şekilde etkileyecek: ABCDEFGHIJKLMNOPQRSTUVWXYZ BDFHJLCPRTXVZNYEIWGAKMUSQO orta rotor M şu şekilde: ABCDEFGHIJKLMNOPQRSTUVWXYZ AJDKSIRUXBLHWTMCQGZNPYFVOE Ve sol rotor L şu şekilde etkiler: ABCDEFGHIJKLMNOPQRSTUVWXYZ EKMFLGDQVZNTOWYHXUSPAIBRCJ Girdimiz G olursa: Sağ rotorda G->C Orta rotorda C->D Sol rotorda D->F olacaktır ve standart reflektör B ye ulaşan akım sonucunda F->S olacaktır: ABCDEFGHIJKLMNOPQRSTUVWXYZ YRUHQSLDPXNGOKMIEBFZCWVJAT Ve şimdi akım rotorlardan ters yönde geçecektir. İşlemler de tersine dönecektir. Böylece şu şekilde eşleşmeleri elde edeceğiz: S->S (Sol rotor tersten) S->E (Orta rotor tersten) E->P (Sağ rotor tersten) Böylece G harfini şifrelemiş olduk: Giriş Anahtarı:G, Çıktı Lambası:P 52 2.3 Bilgisayar Çağı Bilgisayar ve Elektronik çağı cipher tasarımcıları için emsali bir özgürlük getirmiştir. Tasarımcılar kağıt-kalem kullanılmasına göre çok daha az hataya eğilimli ve elektro mekanik makine olarak tasarlanmaya göre çok daha ucuz olabilecek detaylı tasarımlar kullanabildi. Bilgisayar çağında ana patlama “Block Cipher”lerin geliştirilmesiyle yaşandı. Bu IBM in LUCIFER projesiyle başlamıştır. LUCIFER en ünlü blok cipher olan DES in direkt atasıydı. Blok cipherler gücünü sabit uzunlukta bit gruplarından aldığından dolayı polygraphic cipherler grubuna girer(Playfair gibi). Örneğin “Four-Square Cipher” bir yerine koyma(“substitution”)-permütasyon ağı yardımıyla şekil 2.5 teki gibi basitçe gösterilebilir: Şekil 2.5: Yerine “Four-Square Cipher”’in “Substitution-Permutation” Ağı Gösterimi koyma-permütasyon ağı kavramı blok cipherler arkasındaki temel kavramlardan biridir. Bu kavram doğrudan Claude Shannon’un “confusion” ve “diffusion” kavramlarından gerçekleştirilmiştir. 2.3.1 LUCIFER:İlk Blok Cipher DES gibi LUCIFER de Feistel turlarını kullanan yinelemeli blok cipherdi. LUCIFER veri bloğu üzerine birkaç kere şifreleme adımını uygulayıp veri bloğunu karıştırır. Bu şifreleme adımında o adım için olan anahtar ve veri bloğunun yarısı üzerinde işlemler yapılıp sonuç elde edildikten sonra veri bloğunun diğer yarısına Exclusive-OR yardımıyla sonuç uygulanıyordu. Daha sonra her yarı yer değiştiriliyordu, böylece her iki yarı da eşit sayıda değiştirilmiş oluyordu[22]. LUCIFER 128 bitlik blokları, 128 bit anahtar kullanarak şifreliyordu. LUCIFER’in F fonksiyonu yüksek derecede simetri içerir ve mesajın sağ yarısının bir byte’ına uygulanan 53 işlemlerle gerçekleştirilebilir. Bununla birlikte burada LUCIFER DES’in anlatıldığı genel biçimle anlatılacaktır. Alt Anahtar Üretimi:Her tur 72 bitlik alt anahtar kullanmaktadır. İlk turun alt anahtarı asıl anahtarın ilk byte iki kere yazılıyor, sonraki 7 byte sonuna ekleniyor(Alt anahtar=001234567) ve 72 bitlik alt anahtar elde ediliyor. Diğer turlarda aynı şekilde alt anahtar oluşturmadan önce 56 bit sola kaydırma işlemini asıl anahtar üzerine uygulayıp alt anahtarı elde edilen sonuçtan üretiyoruz. f-Fonksiyonu: Mesajın sağ yarısını turun alt anahtarının sağdaki 8 byte’ı ile XOR’ la(Şekil 1. 4), Şekil 2.6: LUCIFER’in Bir Turundaki İşlemleri Gösteren Resim Turun alt anahtarının ilk byte’ındaki bitlere göre sonuçtaki her byte içindeki ilk 4 bit ile ikinci 4 bitin yerini eğer bu byte karşılık gelen bit 1 ise değiştir. Bu işlem için S-box denilen bir yapı kullanılmaktadır. 54 Şekil 2.7: LUCIFER’in S-Box Yapısı Girdi: 0 1 2 3 4 5 6 S-box 0 çıktısı: 12 15 7 10 14 13 11 S-box 1 çıktısı: 7 2 14 9 3 11 0 7 0 4 Girdi: 8 9 10 11 12 13 14 15 S-box 0 çıktısı: 2 6 3 1 9 4 5 8 S-box 1 çıktısı: 12 13 1 10 6 15 8 5 Sonuç olarak elde ettiğimiz 64(0. . 63) biti aşağıdaki sıralamaya göre yeniden sıralarız: (“permutation”) 10 21 52 56 26 37 4 8 42 53 20 24 58 5 36 40 27 1 47 38 43 17 63 54 59 33 15 6 11 49 31 22 18 34 50 2 29 45 61 13 60 0 35 9 55 46 12 16 51 25 7 62 28 32 3 41 23 14 44 48 19 57 39 30 Genel Yapı:LUCIFER 16 tur içerir. Her turda o turun alt anahtarı ve bloğun sol yarısı kullanılarak f-fonksiyonu hesaplanır ve f-fonksiyon sonucu bloğun sağ yarısı ile XOR’lanır, böylece o turda değiştirilen sadece bu oluyor. Her turdan sonrada bloğun sağ sol yarıları (son tur hariç) yer değiştiriliyor. Yorumlar:DES’ten daha fazla anahtar ve blok uzunluğuna sahip olsa da LUCIFER differensiyal kriptoanaliz saldırılarına karşı çok zayıftır. Ayrıca anahtar programının düzenli doğası nedeniyle zayıftır. Bununla birlikte bunlar LUCIFER algoritmasının kullanışsız olduğunu belirtmez. Eğer yeterince iyi “stream cipher” LUCIFER uygulamadan önce ve sonra mesaja uygulanır ve arada LUCIFER uygulanırsa LUCIFER’in zayıflıkları önemsizleşir ama güçlü yanlarını kullanmaya devam edebiliriz. 55 2.3.2 “Data Encryption Standard” LUCIFER’i tanıtırken bitleri 0 ile başlayan şekilde numaralandırdım. Burada ise bitler 1 ile başlayarak numaralanacak. Her iki şekilde de “big-endian” mantığı geçerlidir(Motorola 68000 CPU mantığı, 8086 mantığı değil). DES 64-bit blokları 56 bit anahtar ile şifreler. İlk aşamada bloğun bitleri aşağıdaki şekilde diziliyor: 58 62 57 61 50 54 49 53 42 46 41 45 34 38 33 37 26 30 25 29 18 10 22 14 17 9 21 13 2 6 1 5 60 64 59 63 52 56 51 55 44 48 43 47 36 40 35 39 28 32 27 31 20 24 19 23 12 16 11 15 4 8 3 7 LUCIFER de olduğu gibi bu tablodan şu anlaşılmalıdır:Çıktının ilk biti girdinin 58. biti, çıktının 2. biti girdinin 50. biti, ve bu şekilde devam ediyor. 16 tur için bloğun ilk 32 biti, bloğun sağdaki 32 bitinin bulunduğu durum ve turun alt anahtarı kullanılarak yapılan hesaplama(f-fonksiyonu) sonucuyla XORlanarak değiştiriliyor. İlk 15 turdan sonra yarılar yer değiştiriliyor. f-fonksiyonu:Bloğun sağdaki 32 biti genişletme dizilimi(“expansion permutation”) kullanılarak aşağıdaki şekilde 48 bite genişletiliyor: 32 1 2 3 4 5 12 13 14 15 16 17 24 25 26 27 28 29 4 5 6 7 8 9 16 17 18 19 20 21 28 29 30 31 32 1 8 9 10 11 12 13 20 21 22 23 24 25 Bloğun sağ tarafı yukarıdaki şekilde 48 bite genişletildikten sonra o anki turun alt anahtarıyla(48 bitlik) XORlanır. Sonuç sekiz tane tablodan sonuç üretmede kullanılır(6 bit girişli, 4 bit çıkışlı tablolar=S-box) DES’in “S-Box”’ları: Bit |Bitler 2, 3, 4, ve 5 in olu•turdu•u: 1 6 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 |14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 1 | 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 1 0 | 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 1 1 |15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Bit |Bitler 8, 9, 10, ve 11 olu•turdu•u: 7 12 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 |15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 0 1 | 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 1 0 | 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 1 1 |13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 Bit |Bitler 14, 15, 16, ve 17 olu•turdu•u: 13 18 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 |10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 0 1 |13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 1 0 |13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 56 1 1 | 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 Bit |Bitler 20, 21, 22, ve 23 olu•turdu•u: 19 24 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 | 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 0 1 |13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 1 0 |10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 1 1 | 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 Bit |Bitler 26, 27, 28, ve 29 olu•turdu•u: 25 30 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 | 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 0 1 |14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 1 0 | 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 1 1 |11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 Bit |Bitler 32, 33, 34, ve 35 olu•turdu•u: 31 36 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 |12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 0 1 |10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 1 0 | 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 1 1 | 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 Bit |Bitler 38, 39, 40, ve 41 olu•turdu•u: 37 42 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 | 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 0 1 |13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 0 | 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 1 1 | 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 Bit |Bitler 44, 45, 46, ve 47 olu•turdu•u: 43 48 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |----------------------------------------------0 0 |13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 0 1 | 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 1 0 | 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 1 1 | 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Bu S-boxlardan elde edilen 32 bitlik sonuç aşağıdaki şekilde dizilir: 16 2 7 20 21 29 12 28 17 8 24 14 32 27 3 9 1 15 23 26 5 18 31 10 19 13 30 6 22 11 4 25 57 Şekil 2.8: DES’in f-fonksiyon Detayı Şekil 2.9: DES’in genel blok cipheri Yazılımlarda bitlerin sırasının değiştirilmesi yavaş olacağı için DES’in yazılım gerçekleştirimlerinde S-boxlar için 32-bitlik 4 bit çıkışlı hazır tablolar kullanılır. 58 DES’in 16 turu bittikten sonra son turda yerleri değiştirilmeyen bloğun sağ ve sol yarıları bir kere daha aşağıdaki şekilde dizilirler: 40 38 36 34 8 6 4 2 48 46 44 42 16 14 12 10 56 54 52 50 24 22 20 18 64 62 60 58 32 30 28 26 39 37 35 33 7 5 3 1 47 15 55 23 63 45 13 53 21 61 43 11 51 19 59 41 9 49 17 57 31 29 27 25 Yukarıdaki diziliş bizim en son sonucumuzdur. Alt Anahtar Üretimi:56 bitlik anahtar 8 byte olarak tutulur, her byteın “least significant” biti parity için kullanılmaktadır. Bu yüzden “Permuted Choice 1” anahtarı 28 bitlik iki parçaya böler ve 1 den 7 e, 9 dan 15 e, 17 den 23 e, vs. şeklinde bitler üzerinde işlem yapar. “Permuted Choice 1” aşağıdadır: İlk Yarım: 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 İkinci Yarım: 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Bu işlem ilk permütasyon ve ters ilk permütasyon gibi DESin gücüne hiçbir şey katmaz. Ama genel amaçlı bilgisayarlarda bir güçlü durum yaratır. 28 bitlik değerler daha sonra kendilerinden tur alt anahtarları belirlenmeden önce farklı boyutlarda dairesel olarak sola kaydırılır. Bu dairesel sola kaydırmalar sırasıyla aşağıdaki gibidir: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Şifre çözülürken DESte değişen tek şeyin alt anahtarların ters sırada kullanılması olduğunun altı da çizilmelidir. Her turun 48 bitlik alt anahtarı aşağıdaki permütasyona göre (“Permuted Choice 2”) 28 bitlik iki değerden türetilir: 14 23 41 44 17 19 52 49 11 24 1 5 12 4 26 8 31 37 47 55 39 56 34 53 3 28 15 6 21 10 16 7 27 20 13 2 30 40 51 45 33 48 46 42 50 36 29 32 Bu permütasyon DESin güçlü olması için gereklidir. 59 2.3.3 IDEA(“International Data Encrytion Algorithm”) Popüler şifreleme programı PGP ile kullanılması nedeniyle en çok bilinen blok şifreleme standardıdır. IDEA’nin bazı ilginç noktaları vardır. İçerdiği bazı adımlar ilk başta blok cipher yerine çevrilemez "hash" fonksiyonuymuş izlenimi yaratıyor. Ayrıca ilginç olan bir diğer nokta herhangi bir s-box veya tablo kullanmaktan kaçınmasıdır. IDEA her biri 16 bit uzunluğunda olan 52 adet alt anahtar kullanır. 8 tur içerir. Düzmetin bloğu IDEA da 4 çeyreğe bölünür. Üç adet operasyon iki adet 16 bit değeri tek bir 16 bitlik değere çevirmek için kullanır:toplama, XOR ve çarpma. Toplama bildiğimiz normal toplama işlemi(eldelerle birlikte mod 65536 ya göre). Kullanılan çarpma ise biraz açıklanmalıdır: Sıfır ile çarpmak her zaman 0 sonucunu verir ve ters çevrilemez. Ayrıca mod n e göre çarpma n 2 ye göre asal olmayan bir sayı ile gerçekleşmemişse ters çevrilemez(not invertible). IDEA da kullanılan çarpmanın ters çevrilebilir olması gerekir. 65537 sayısı, yani 2^16+1 bir asal sayıdır(2^8+1=257, 2^4+1=17 de asal sayıdır ama 2^32+1 asal sayı değildir bu yüzden IDEA 128 bitlik bloklar için kullanılamıyor.). Böylece, eğer 1 den 65536 ya kadar sayıların çarpma tablosunu oluşturursak her satır ve sütun her sayıyı sadece 1 kere içerecektir, bu bize ters çevrilebilir işlem sağlayacaktır. 16 bitlik sayılar normalde 0 dan 65535 ya kadar ki sayıları temsil ettiği halde(gerçekte –32768, 32768) IDEA da çarpma için 16 bitlik tümü 0 olan bir wordun değeri 65536 ile temsil ediliyor. Diğer sayılar normal işaretsiz notasyona göre temsil ediliyor, ve çarpma mod asal sayı 65537 göre yapılıyor. IDEA’nın işlemleri Bloğun 4 çeyreğine A, B, C ve D adlarını verelim, ve 52 adet alt anahtar K(1). . K(52) olsun. İlk turdan önce: A yı K(1) ile çarp, B ye K(2) yi ekle, C ye K(3) ekle, D yi K(4) ile çarp 1. Tur: E=A xor C, F=B xor D hesapla, E yi K(5) ile çarp, F ye E nin yeni değerini ekle F nin yeni değerini K(6) ile çarp, F nin yeni değerini(yani sonucu) E ye ekle. 60 A=A xor F, C=C xor F, B=B xor E, D=D xor E değerlerini hesapla. B ve C nin yerlerini değiştir. Yukarıda işlemi ikinci aşamada K(7). . K(12);. . . ;sekizinci aşamada K(43). . K(48) kullanacak şekilde 7 kere daha tekrarla. Sekizinci aşamada B ve C nin yerlerini değiştirme. Daha sonra A yı K(49) ile çarp, B ye K(50) yi ekle, C ye K(51) i ekle, D yi K(52) ile çarp. Şekil 2.10: IDEA detayı 61 Şekil 2.11: Genel Şekil Çözme:Bloğun dört çeyreğinin eski değerlerine dayanan bir fonksiyon yardımıyla değişmesi IDEA nın çözülemeyecekmiş izlenimi yaratıyor. Buradaki incelik A ve C nin aynı değerle XOR’lanması nedeniyle A xor C nin değişmemesidir. Kullanılan değer A xor C de kendini iptal eder. Bu incelik B xor D de de görülmektedir. Kullanılan değerler (A xor C) ve (B xor D) fonksiyonları olduğundan, hala kullanılabiliyorlar. Bu “Feistel Round” değil, “Croos-Footed Round” dir. Bu IDEA’yı S-box kullanmamak için çarpma, toplama ve XOR kullanması gibi tamamen farklı kılan özelliğidir. Eklenenler “two’s complement”leri ile değiştirilir. Çarpılanlar çarpmaya göre tersleriyle değiştirilir(mod 65537). XORlanan anahtarların değiştirilmesi gerekmez ama IDEA da böyle anahtarlar yok. Yer değiştirme yüzünden çözmede ilk dört anahtar aynı işlem için turlar arasında kullanılan anahtarlardan farklı olarak hareket ettiriliyor. Çözme anahtar planı şöyledir: İlk dört alt anahtar: KD(1) = 1/K(49) 62 KD(2) = -K(50) KD(3) = -K(51) KD(4) = 1/K(52) Ve bu anahtarlar a•a•ıda görülen di•er anahtarlarla aynı düzende de•ildir. A•a•ıdaki sekiz kere tekrarlanır, her seferinde çözme anahtarı dizinine 6 eklenir, •ifreleme anahtarı dizininden 6 çıkarılır: KD(5) KD(6) = = K(47) K(48) KD(7) KD(8) KD(9) KD(10) = 1/K(43) = -K(45) = -K(44) = 1/K(46) Bu şekilde elde edilen anahtarlarla şifreli mesajı çözebiliriz. Alt Anahtar Üretimi:128-bitlik IDEA anahtarı ilk 8 alt anahtar olarak alınır. Sonraki 8 anahtar IDEA anahtarı 25-bit dairesel sol kaydırmadan sonra elde edilen değerden elde edilir. Bu şekilde bütün anahtarlar elde edilene kadar kaydırma devam eder. Bu şekilde bir alt anahtar seçimi çok düzgün olduğu için bir zayıflık olarak görülse de Akademik Komite tarafından denenen tüm saldırılara karşı ayakta durduğu için IDEA yüksek güvenlikli bir cipher olarak kabul edilir. 2.3.4 Blowfish Blowfish cipheri yazar ve bilgisayar güvenlik ve kriptografi danışmanı olan Bruce Schneier tarafından geliştirilmiştir. “Feistel Round”a dayanır ve f-fonksiyonu tasarımı DES te kullanılan ilkelerin basitleştirilmiş hallerini yazılımsal olarak gerçekleştirerek aynı güvenliği daha fazla hız ve verimle elde eder. Blok cipherler Khafre ve CAST ta benzer turlara sahiptir. Blowfishin ününün en önemli iddiası anahtar planlama metodudur. Tur anahtarları ve S-Boxların içeriklerinin tümü blok cipherin birçok döngüsü ile yaratılıyor. Bu cipherin güvenliğini arttırır, çünkü kısa anahtarlar için bile anahtar uzayının ayrıntılı araştırmasını çok zorlaştırır. Blowfish Tanımı:DESten farklı olarak Blowfish f-fonksiyonunu bloğun soluna uygular. Sonucu da bloğun sağına XORlar(Burada çelişki yaratan DESin “big-endian”, Blowfishin “low-endian” kullanması. DES için sol olan Blowfish için sağ olacaktır.). Günümüzdeki çoğu tasarımlarda da “low-endian”a uygun tasarımlar yapılmaktadır. Blowfish 16 tur içerir. Her tur için o turun alt anahtarı ile bloğun sol yarısını XORla, sol yarıyı f-fonksiyonundan geçir ve sonuçla bloğun sağ yarısını XORla. Son tur dışındaki turlarda işlemler sonucunda sol ve sağ yarıların yerlerini değiştir. Her tur için sadece bir alt 63 anahtar vardır;f-fonksiyonu hiç alt anahtar kullanmaz ama alt anahtar bağımlı S-boxları kullanır. Son turdan sonra bloğun sağ yarısını 17. alt anahtar ile, sol yarısını 18. alt anahtar ile XORla. f-fonksiyonu:Blowfish dört tane S-box kullanır. Her biri 256 adet 32 bit uzunluğunda girdi içerir. F-fonksiyonunu hesaplamak için:girdinin 32 bitinin ilk byte ilk S-boxta değer bulmak için, ikinci byte 2. S-boxta, ve bu şekilde devam eder. F-fonksiyonunun değeri ((S1(B1) + S2(B2)) XOR S3(B3)) + S4(B4) olur. Toplama işlemi burada mod 2^32 ye göre yapılır. Çözme:Çözmede şifreleme gibi aynı şekildedir. Yalnızca 18 tane alt anahtar ters sırada kullanılmalıdır. Alt Anahtar Üretimi:1 den 18 kadarki alt anahtarların elde edilmesiyle başlanır, daha sonra S-Boxların 0 dan 255 e kadarki elemanları tespit edilir. Daha sonra asıl anahtar(72 byte a kadar uzunlukta olabilir. Daha kısa ise sonuna gene anahtarı ekleyip AA, yada AAA şeklinde elde edilen anahtarlardan yararlanılır) ile 18 alt anahtarın her birini XORlayacağımız 32 bitlik bloklara ayırıp alt anahtar dizisine XOR işlemi uygulamalıyız. . Daha sonra Blowfish algoritmasını 64-Bytelık sıfırlardan oluşan bir metin üzerine uygulayıp alt anahtarları ve S-Box değerlerini değiştiririz. Her yürütmeden sonra Blowfishten aldığımız başarılı çıktıları sırasıyla alt anahtarları ve S-Box değerlerini değiştiririz;ilk döngüden sonra alt anahtar 1 ve 2 yi;10. döngüden sonra S-Box 1 deki 0 ve 1. değeri değiştiririz. Anahtar elde etmedeki her döngüde bir önceki döngünün çıktısını girdi olarak kullanmak gereklidir. Böylece Blowfishi yeni anahtar ve değerlerle yüklemek 521 ((256*4+18)/2) blok şifrelemek için gereken zaman gerektirecektir. 64 2.3.5 ICE Matthew Kwan[23] tarafından geliştirilen bu algoritma diğer blok cipher yöntemlerinde kullanılan anahtar bağımlı döngülerden daha güçlü olan anahtar bağımlı dizmeyi (permutation) kullandığı için incelenmelidir. Aşağıdaki şekilden ICE cipherinin tur ve f-fonksiyonunu görebilirsiniz. Şekil 2.12: ICE Şekli Şekilde de görüldüğü gibi DESe benzeyen bir yapısı var. Dört adet 10 bit girdisi, 8 bit çıktısı olan S-Boxları “Galois Field Exponentiation” ile üretilir. 65 2.3.6 Johnson Algoritması 24-Bit bloklar üzerinde uygulanan ve Dr. Eric E. Johnson [24] tarafından radyo iletişiminde kullanılmak için keşfedilen basit bir cipher olup MIL-STD-188-141A ve FEDSTD-1045 standart adlarını alır. Aşağıdaki şekildeki gibi ilginç tipteki turlardan sekiz tanesini kullanır: Şekil 2.13: Johnson Algoritma Tur Şekli Yirmi dört tane bir bytelık alt anahtarlar, yedi byte anahtarın başarılı tekrarları ve sekiz bytelık bilginin (radyo iletiminin tarih ve saati, frekansı ve mesajdaki şifrelenmiş blok sayısı) başarılı tekrarlarının XORlanması ile elde edilmektedir. Böylece hiçbir iki blok aynı anahtarla şifrelenmemektedir, ama anahtarlar düzgün olarak ilişkilidir. Ayrıca titiz kimseler cipherin anahtarsız adımlarla başlayıp bittiğine dikkati çekecektir. Genel kullanım için güvenli olduğu iddia edilmeyen bu cipherin yapımı ilginç ve özgün bir şeydir. Blok uzunluğunun seçimi Golay Kodu tarafından kabul edilebilecek on ikiye uygunluk için seçilmiştir, ayrıca bu algoritma son derece yüksek kalitede “pseudorandom” üretmek için algoritma arayanlara 24 bitin 32-bit kayan noktalı sayının “mantissa” uzunluğu ile ilgili olması nedeniyle tavsiye edilir. Şekil 1. 9 da görülen ve algoritmada kullanılan S-box’ın içeriği aşağıdaki gibidir: 156 242 151 122 7 76 83 157 3 236 221 86 85 68 9 92 107 2 20 193 142 203 178 101 96 23 146 249 120 65 103 109 102 74 48 125 181 188 195 202 241 4 208 56 176 237 173 196 66 189 160 222 27 129 90 228 80 220 67 99 116 207 14 171 29 61 93 40 231 198 238 180 66 217 42 212 13 17 39 159 244 60 10 163 183 251 138 235 170 239 98 255 205 84 43 5 124 19 150 95 200 230 219 24 55 47 59 194 118 223 246 70 164 204 50 21 26 174 18 25 165 57 38 158 199 225 145 71 115 227 28 253 245 37 104 133 97 69 33 191 54 184 62 8 224 22 136 148 141 89 41 113 233 149 153 73 213 11 248 64 32 35 152 218 166 94 185 186 254 139 209 210 1 226 169 88 30 197 243 49 147 15 247 121 216 72 126 154 108 45 215 34 161 91 31 177 100 132 128 77 201 111 192 137 179 250 206 182 58 134 44 214 187 130 175 123 155 106 252 105 140 167 79 232 143 87 131 172 82 234 12 117 53 6 110 162 51 0 135 240 144 52 36 168 211 78 46 229 114 112 16 127 190 63 119 81 75 we bunun tersi, çözmede kullanılacak olan S-box içeriği: 103 83 207 129 219 67 22 35 211 236 52 156 10 194 199 14 157 107 127 235 44 151 36 250 189 105 34 228 91 174 119 203 2.4 132 56 104 74 226 139 188 90 15 179 247 131 210 142 147 220 47 197 130 171 109 148 133 84 3 173 116 72 122 155 30 13 65 144 249 233 101 80 217 237 42 21 214 50 208 126 191 9 94 176 12 252 87 192 6 92 161 29 124 243 140 222 1 213 32 195 81 46 227 240 95 153 54 255 24 117 55 64 146 110 198 108 196 118 152 61 205 86 28 5 159 121 154 184 180 168 31 230 2 162 143 253 135 136 49 17 232 57 141 77 58 73 149 150 115 0 201 206 71 27 39 209 88 53 51 33 128 134 248 96 225 62 186 85 246 63 218 165 48 66 7 19 238 23 202 123 163 25 82 38 26 43 172 224 187 40 183 37 178 170 254 60 99 164 98 175 242 75 193 167 41 76 20 79 169 244 245 4 89 106 251 241 229 223 69 221 78 45 113 70 185 100 16 204 11 125 112 145 137 231 138 166 190 97 18 181 239 215 111 182 8 120 158 102 160 234 114 59 93 177 68 200 212 216 128 Bit Çağı:AES(“Advanced Encryption Standard”) Mikroişlemci hız ve gücündeki gelişmeler 56-bit anahtar kullanan DESin orta boydaki organizasyonların bile yapabileceği brute-force saldırılarına konu olabileceğini ortaya çıkardı. Bu nedenle “National Institute of Standards and Technology” geliştirilmiş bir blok cipher için 67 kabullere başlamıştır. Bu şekilde bir yarışma benzeri bir uygulamaya gitmiştir. Kabul edilecek cipher “Advanced Encryption Standard”(Gelişmiş Şifreleme Standardı)(AES) adını alacaktı. Bu uygulama sonucundan adaylardan Vincent Rijmen ve Joan Daemen tarafından tasarlanan Rijndael cipheri AES olarak seçildi. Blok cipherlerin modları blok cipherlere stream cipher kullanabilen uygulamalarda sunulabilme esnekliğini sağladığı için bir blok cipher aranmıştır. Sözlük saldırılarını bayağı zorlaştıran 128 bit blok uzunluğu belirtilmiş ve 128, 192 ve 256 bit anahtar uzunluları tasarımlarda kabul edilmiştir. Daha büyük blok uzunluğu tek bir seferde şifrelenecek metin miktarının artmasıyla şifreleme hızını arttırır. Her ne kadar 56 bit anahtar şu anda yeterli güvenlik şartlarını sağlamasa da “Triple-DES”(İki yada üç farklı anahtar kullanarak DES ile üst üste 3 kere şifreleme) kullanımı mümkündür, bu yüzden aranan özelliklerden biri de “Triple-DES”ten daha hızlı olmasıydı. İlerleyen bölümlerde AES finalisti olan algoritmalar ve finali kazanan Rijndael algoritması anlatılmaya çalışılacaktır. 2.4.1 Twofish Bruce Schneier tarafından kendisinin 64-bitlik Blowfish blok cipherinin halefi olarak tasarlanmıştır. Twofish 40 tane 32-bit alt anahtar kullanır. İlk 8 anahtar beyazlaştırma için kullanılır, ilk dördü başlangıçta, diğer dördü sonda tüm blok ile XORlanıyor, her turda da geri kalan 32 alt anahtardan 2 tanesi kullanılıyor. Twofish 16 tur içerir. 128 bit bloğun 4 adet 32 bitlik çeyreğe bölünmesi “little-endian” geleneği kullanılarak yapılmaktadır. Çeyrekler aşağıda Q0 ve Q3 olarak temsil edilecektir. Twofish turu:Bir Twofish turu şu şekilde olmaktadır: Q3 bir bit sola döndürülür, Q0 ve Q1 sola 8 bit döndürülür, daha sonra her biri 4 anahtar-bağımlı, 8 bit girdi ve çıktılı S-boxlara sunulur. Bu anahtar-bağımlı S-boxlar, 8 bit girdi ve çıktısı alt anahtar materyalinin XORlanması ile değiştirilen sabit S-box kullanımına denktir, ve sabit S-boxlar 4 bit girdi ve çıktılı daha küçük S-boxlardan yaratılmıştır. Daha sonra her birindeki byteler aşağıdaki matris ile matris çarpımı ile birleştirilir: 68 01 5B EF EF EF EF 5B 01 5B EF 01 EF 5B 01 EF 5B (2^8 in Galois Alanı üzerinden, modüler polinom x^8+x^6+x^5+x^3+1 yardımıyla) Bunun anlamı bir byte matrisin bir elemanı ile çarpıldığında, gerçek çarpımı yapmak yerine girdi byteni kaydırmak ve onu sonuca eklemek ne zaman bytein son biti matristeki sayının 1 bitinin üzerindeyse , benzer bir operasyon yapılır ama ekleme yerine XOR yapılır. Böylece biri polinomları katsayıların 0 yada 1 olduğu şekilde çarpıyor(eldeleri hesaplamak x bilinmediği için mümkün değil), mod 2 ye göre başa çıkılıyor. Bu “çarpma”nın sonucu 16-bitlik bir sayıdır. Bu sayı şu şekilde 8-bitlik bir sayıya küçültülüyor:modüler polinom ikili karakter katarı 101101001 olarak alınıyor, bu değer sonucun ilk 1 biti ile çakışana kadar sola kaydırılıyor. Daha sonra sayı ile karakter katarı XORlanır ve sonuç ilk biti kalan ilk 1 bitiyle çakışana kadar kaydırılır. Bu işlem sayı 8 bit yada daha az bit içerene kadar sürdürülür. Son olarak, 32-bit değerindeki 2 sonuç “Pseudo-Hadamard Transform”u yardımıyla birbirleriyle karıştırılır;Q1 den şekillendirilen Q0 dan oluşturulana ekleniyor, Q0 dan oluşturulan Q1 den oluşturulana ekleniyor. Daha sonra turun ilk alt anahtarı Q0 dan oluşturulana ekleniyor, sonuç Q2 ile XORlanıyor. Turun ikinci alt anahtarı Q1 den oluşturulan değere ekleniyor, sonuç Q3 ile XORlanıyor. Sonuç olarak Q2 bir bit sağa döndürülüyor, ve bloğun iki yarısı yer değiştiriliyor. (Q0 Q2 ile, Q1 Q3 ile) DESte olduğu gibi son turda yer değiştirme yok. Matris çarpımında normal toplama yerine XOR kullanılması nedeniyle değerler önceden hesaplanıp ve S-box değerleri 8 bit yerine 32 bit genişlikte olabilir. Anahtar Üretimi:Anahtar üretimi asıl anahtarın yarı uzunluğunda olan üç anahtar vektör türetilmesi ile başlar. İlk ikisi anahtarın 32 bitlik parçalara ayrılması ile şekillendiriliyor. Bu parçaları sıfırdan başlayarak numaralarsak, çift sayı ile numaralananlar M(e), tek sayı ile numaralananlar M(o) olur. Üçüncü vektör anahtarın 64 bitlik parçalara bölünüp, anahtar vektörünün 32 bitlik parçasının her 64 bitlik parçayı aşağıdaki matrisle(RS matrisi adını alır) çarpmakla şekillendirilir: 69 01 A4 02 A4 A4 56 A1 55 55 82 FC 87 87 F3 C1 5A 5A 1E 47 58 58 C6 AE DB DB 68 3D 9E 9E E5 19 03 Çarpma Galois Field GF(2^8) üzerinden, x^8+x^6+x^3+x^2+1 modüler polinomu ile yapılır. Bunun anlamı bir XOR çarpımından sonra 101001101 bit deseni sonucu tekrar 8 bite dönüştürmek için kullanılır. Elde edilen 32 bitlik kelimeler ters sırada S adlı anahtar vektörüne yerleştirilir. Sekiz girdi ve çıktılı ve q(0), q(1) adlı sabit S-Boxların her biri dört girdi ve çıktılı dört adet S-Boxtan yapılmıştır. q(0) için S-Boxlar: Girdi T0 T1 T2 T3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -----------------------------------------------8 1 7 13 6 15 3 2 0 11 5 9 14 12 10 4 14 12 11 8 1 2 3 5 15 4 10 6 7 0 9 13 11 10 5 14 6 13 9 0 12 8 15 3 2 4 7 1 13 7 15 4 1 2 6 14 9 11 3 0 8 5 12 10 Ve q(1) için S-Boxlar: Girdi T0 T1 T2 T3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -----------------------------------------------2 8 11 13 15 7 6 14 3 1 9 4 0 10 12 5 1 14 2 11 4 12 3 7 6 13 10 5 15 9 0 8 4 12 7 5 1 6 9 10 0 14 13 8 2 11 3 15 11 9 5 1 12 3 13 14 6 4 7 15 2 0 8 10 Her bir S-Box aşağıdaki gibi şekillendirilmektedir: • Giriş byte’ı en önemli(“most significant”) ve en önemsiz(“least significant”) parçaları A ve B ye parçalanıyor. • A nın yeni değeri A ve B nin eski değerlerinin XOR lanması sonucu • B nin yeni değeri A ve Bnin bir bit sağa döndürülmüş hali ya da A nın eski hali tek sayı ise 8 ile XOR lanması sonucu • A ve B daha sonra T0 ve T1 S-boxlarındaki temsilcileri ile yer değiştiriliyor. • A nın yeni değeri A ve B nin eski değerleri XOR lanması • B nin yeni değeri A ve Bnin bir bit sağa döndürülmüş hali ya da A nın eski hali tek sayı ise 8 ile XOR lanması sonucu • A ve B daha sonra T2 ve T3 S-boxlarındaki temsilcileri ile yer değiştiriliyor. • A ve B ters sırada birleştirilip final byte ı oluşturuluyor. 70 Dört anahtar bağımlı S-Boxları S vektörünün 32 bitlik elemanlarından aşağıdaki şekilde şekillendirilmektedir: Eğer anahtar 256 bit uzunlukta ise S vektörü 4 adet 32 bit eleman içerir, S(0), S(1), S(2), S(3). Dört anahtar bağımlı S-boxlar aşağıdaki işlemlerin yapılmasına eşittir: Ç = q(0)(S(0, 0) xor Ç = q(1)(S(0, 1) xor Ç = q(0)(S(0, 2) xor Ç = q(1)(S(0, 3) xor (Ç=Çıktı, G=Girdi) q(1)(S(1, q(1)(S(1, q(0)(S(1, q(0)(S(1, 0) 1) 2) 3) xor xor xor xor q(1)(S(2, q(0)(S(2, q(1)(S(2, q(0)(S(2, 0) 1) 2) 3) xor xor xor xor q(0)(S(3, q(0)(S(3, q(1)(S(3, q(1)(S(3, 0) 1) 2) 3) xor xor xor xor q(1)(G)))) q(0)(G)))) q(0)(G)))) q(1)(G)))) S(2, 1) in anlamı S anahtar vektöründeki 2. wordun 1. bytedır. Anahtar 192 bit uzunluktayken S-Box tanımlamaları basitleştirilmiştir: Ç = q(0)(S(0, 0) xor Ç = q(1)(S(0, 1) xor Ç = q(0)(S(0, 2) xor Ç = q(1)(S(0, 3) xor (Ç=Çıktı, G=Girdi) q(1)(S(1, q(1)(S(1, q(0)(S(1, q(0)(S(1, 0) 1) 2) 3) xor xor xor xor q(1)(S(2, q(0)(S(2, q(1)(S(2, q(0)(S(2, 0) 1) 2) 3) xor xor xor xor q(0)(G))) q(0)(G))) q(1)(G))) q(1)(G))) Eğer anahtar 128 bit ise S-Boxlar daha da basitleştirilmiştir: Ç = q(0)(S(0, 0) xor Ç = q(1)(S(0, 1) xor Ç = q(0)(S(0, 2) xor Ç = q(1)(S(0, 3) xor (Ç=Çıktı, G=Girdi) q(1)(S(1, q(1)(S(1, q(0)(S(1, q(0)(S(1, 0) 1) 2) 3) xor xor xor xor q(1)(G)) q(0)(G)) q(1)(G)) q(0)(G)) Alt anahtarlar Twofish turuna çok benzeyen bir işlemle üretilmektedir, fakat anahtar bağımlı S-Boxlar S vektörü yerine M(e) ve M(o) anahtar vektörlerinden türetiliyor. Girdiler tur numarası çarpı 2, artı 1 bir yüzde, wordun tüm dört bytelarında, ve sola döndürme fonksiyon öncesi yerine fonksiyon sonrasında yapılır:8 bit döndürme PHT(“PseudoHadamard Transform”) öncesi, ve 9 bit döndürme sonrasına kaldı. 2.4.2 SERPENT Eli Bilham(Differensiyal Kriptoanaliz yaratıcısı) tarafından geliştirilmiştir. SERPENT Feistel Turları kullanmayan, SAFER benzeri “straight-through”(dosdoğru sonuna) bir algoritmadır. Düz 4-bit genişlikte, ek girdisi ve standard bilgisayar mantık operasyonları olmayan S-boxlar kullanan görünüşte basit bir algoritmadır. Ayrıca ilk permütasyon ve ters ilk permütasyon içermesi nedeniyle S-Boxlar tablo bakmaları yerine mantık operasyonları ile gerçekleştirilebilir;bu sekiz S-Boxun algoritmada paralel olarak değil artarda kullanılmasından mümkündür. 71 128 bit bloğunu 0 dan 127 ye kadar bitlerin oluşumu olarak alırsak, soldan sağa, 0 “least significant” bit, ilk yapılan operasyon ilk permütasyondur. Bu permütasyon sonucu sırasıyla sonuç bit kaynakları şöyledir: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 . . . . . . . . . . . . 124 125 126 127 SERPENT 32 tur içerir. Son tur diğer turlardan bir parça farklı operasyon düzenine sahiptir. Normal bir turda ilk adım o turun alt anahtarının 128 bit genişlikte blokla XORlanmasıdır. Daha sonra tüm blok o turun S-Boxuna bağlı olarak “nybble by nybble” dönüştürülür. S-Boxlar S0 da S8 e numaralanıp tekrarlayan sırada kullanılıyor;S0 1, 9, 17 ve 25. turlar için, S1 2, 10, 18 ve 26. turlar için, ve devam ediyor. Daha sonra blok seri şeklinde karıştırma operasyonlarından geçer böylece bloğun farklı “nybble”ları etkileşmiş olur. Süreç 10 adım içerir, bu süreç beş faz olarak organize edilmiş olarak düşünülebilir: Süreç aşağıdaki şekildedir. Bu adımlar ilk permütasyondan sonra yapılmalı, adımların sonunda da ilk permütasyonun tersi olmalı: Bloğu 32 bitlik dört çeyreğe ayıralım:Q(0), Q(1), Q(2) ve Q(3). Soldan sağa işlemler şöyle: Q0 ı 13 bit sola döndür, Q2 yi 3 bit sola döndür, Q1 i Q0, Q2 ile XORlayarak, Q3 ü sola 3 bit kaymış Q0 ve Q2 ile XORlayarak değiştir, Q1 1 bit sola döndür, Q3 ü 7 bit sola döndür Q0 ı Q1, Q3 ile XORlayarak, Q2 yi sola 7 bit kaymış Q1 ve Q3 ile XORlayarak değiştir, Q0 ı 5 bit sola döndür, Q3 ü 22 bit sola döndür Son turda karıştırma işlemleri yapılmaz. 32. turdan sonra SERPENTte final permütasyon denilen ve ilk permütasyonun tersi olan permütasyon(aşağıdaki) bitlere uygulanır 72 0 4 8 12 . . . 28 32 36 40 44 64 96 68 100 72 104 76 108 1 5 9 13 33 37 41 45 65 97 69 101 73 105 77 109 2 6 10 14 34 38 42 46 66 98 70 102 74 106 78 110 3 7 11 15 35 39 43 47 67 99 71 103 75 107 79 111 60 92 124 29 61 93 125 30 62 94 126 31 63 95 127 Şekil 2.14 te cipherin bir kısmını görebilirsiniz. Şekil 2.14: SERPENTten bir kesit Anahtar Üretimi:128 ve 192 bitlik anahtarlar ilk önce 256 bit uzunluğuna, sonlarına 000, 001, . . . bitleri eklenerek (“most significant end”, burada anlatılanlara göre sağ taraf) genişletilir. 256 bit anahtar şu şekilde yönetilir:anahtar 32 bitlik sekiz worda çevrilir. İlk word en eski olarak kabul edilir ve yeni kelimeler şu şekilde üretilir: Word(n) = Word(n-1) XOR Word(n-5) XOR Word(n-8) XOR X'9E3779B9' XOR n 73 Burada ilk üretilen word 0. word olup, 256 bit anahtar –8 den –1 e kadar ki kelimelerden oluşur. 128 word üretilir. Daha sonra bu kelimeler dörtlü gruplara tur alt anahtarlarının üretilmesi için alınır, gruplar S-Boxlara girdi olur. S-Boxlar dört kez tekrarlayan S3, S2, S1, S0, S7, S6, S5, S4 sırasıyla kullanılır. 2.4.3 RC6 Dr. Ronald C. Rivest tarafından keşfedilmiştir. RC6 Feistel turlarına dayanır ama bloğun iki yarısı arasında işlem yapan değil bloğun çeyrek çiftleri arasında işlem yapan Feistel turları, turlar birbirlerine bazı verilerin değişmesi ile bağlanmıştır. Veri tarafından kontrol edilen dairesel kaydırma ölçüsü ve 32 bit tamsayılara uygulanan ikinci dereceden fonksiyonlar, bu blok cipherin güvenliğini sağlayan doğrusal olmayan elemanlarıdır. Bu cipherde tur sayıları, anahtar uzunluğu, blok uzunluğunun tümü esnektir. RC5 blok ciphere(RSA Laboratories) dayanır. Ama RC5 in daha geniş bir blok uzunluğu alacak şekilde genişletilmesi yerine, daha geniş blokları yönetebilecek yazmaçların genişliklerini sınırlama yapılmıştır. Burada sadece belli sayıda turlar ve AES için önerilen blok uzunluğu için işlemler anlatılacaktır. RC6 her biri 32 bitlik 44 alt anahtar kullanır(S0, . . . , S43). Şifrelenecek blok 4 adet 32 bitlik tamsayıya çevrilir(A, B, C, D). İlk 4 byte A olup, “little endian” geleneğine uyulur. RC6 ilk beyazlaştırma işlemi ile başlar:B S0 ile, D S1 ile XORlanır. Her RC6 turu iki adet alt anahtar kullanır. 1. turda S2 ve S3 kullanılır, sonraki turlarda da sonraki alt anahtarlar kullanılır. RC6 nın turu aşağıdaki gibidir: B nin f(x)=x(2x+1) fonksiyonuna koyulmasından elde edilen sonucun sola 5 bit döndürülmesinden elde edilen sonuç A ile XORlanır, D nin aynı f(x) fonksiyonundan elde edilen sonucu sola 5 bit döndürülür, elde edilen sonuç C ile XORlanır. A ya XORlanan değerin(B nin f(x) sonucu) “least significant” 5 biti C nin dairesel sola kaydırma miktarını belirler 74 C ye XORlanan değerin(D nin f(x) sonucu) “least significant” 5 biti A nın dairesel sola kaydırma miktarını belirler. Bütün bu işlemler B ve D yi değiştirmediğinden ters işlemler mümkündür. Daha sonra turun ilk alt anahtarı A ile, ikinci alt anahtar C ile XORlanır. Sonra bloğun dört çeyreği şu şekilde döndürülür:A nın değeri D ye, B nin değeri A ya, C nin değeri B ye ve D nin (özgün) değeri C ye yerleştirilir. 20. tur tamamlanınca ek bir beyazlaştırma işlemi yapılır:A S42 ile, C S43 ile XORlanır. RC6 nın anahtar planlaması ile ilgili veriler olmadığı için planlamanın nasıl yapıldığı bilinmiyor. 2.4.4 MARS IBM tarafından AES yarışmasına katmak için üretilmiş olan algoritmadır. Cipherde “little endian” geleneği kullanılmaktadır. Fakat “little endian” durumunun açıklanması zor olduğu için burada “big endian” geleneği ile açıklanacaktır. Bunun anlamı MARSa başlarken 128 bitlik bloğu dört bytelık dört worda parçalayıp her worddaki dört bytein sırası tersine çevrilecektir. Çıkarken de işlemin tersi yapılacaktır. MARS Yapısı:”Big endian” geleneği ile açıklanacağı için başlamadan önce ve bitirdikten sonra blok byteları aşağıdaki şekilde dizilmelidir: 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12 böylece “little endian” şeklinden “big endian” şekline çevirmiş olduk. Şimdi “big endian” olarak cipheri anlatabiliriz. MARS’taki ilk adım ilk 4 alt anahtar kelimelerini , K0 dan K3 e, bloğun 4 wordu ile XORlamadır. Bloğun ilk wordu , W0, bu cipher tarafından kullanılan 8 bit girişli ve 32 bit çıkışlı iki sabit S-Boxa girdi olarak kullanılır. İkinci word ilk wordun “least significant” byteı ile seçilen S0 daki word ile XORlanır ve ilk wordun ikinci yada üçüncü byteı ile seçilen S1 deki word üstüne eklenir. İlk wordun 2. byteı ile seçilen S0 daki word üçüncü worda eklenir. İlk kelimenin ilk byteı ile seçilen S1 deki kelimede dördüncü kelime ile XORlanır. İlk ve beşinci turda dördüncü word ilk worda eklenir, ikinci ve altıncı turda ikinci word ilk worda eklenir. Bu eklemeyle yapılan karmaşıklık differensiyal kriptoanalize karşı korumak için planlanmıştır. 75 Daha sonra kelimeler sağa döndürülür, böylece eski 1. word 4. word, 2. word ilk word, 3. word 2. word, 4. word 3. word olur. Şekil 2.15 te “kriptografik çekirdek” denilen ve Şekil 2.16 daki genel cipher şeklinde D harfi ile gösterilen yapı incelenebilir. Genel şekilde tüm turların uygulanma sırasını ve kaç kere uygulandığını görebilirsiniz. Şekil 2.15: MARS’ın Kriptografik Çekirdek İşlemleri MARS’ın son 8 turu , ilk 8 turun tersi işlemlerin yapıldığı turlardır. Ama her turun sonunda gerçekleştirilen kelimelerin döndürülmesi işleminden dolayı bu turların tam bir ters işlem turu olduğu söylenemez. Şekil 2.16 daki S(0, 1) 9 girişli, 32 çıkışlı ve sadece S0 ve S1 S-Boxlarının birleştirilmişidir(“concatenation”). 76 Şekil 2.16: MARS’ın Genel Yapısı 77 MARS’taki S-Boxlar aşağıdaki gibidir[25]: S-box 0: 09D0C479 85D0582E AE5F6BF4 83631F83 28F4E826 80F6E831 AE136749 46CAE1D6 28C8FFE0 2A4B5705 0D72EE46 25970205 3A60A81C AB6F04AD E82AAE86 2FE28134 84AA6C39 1CA16A62 FF23DE8A 76AFE784 D340A664 56FB9B53 93365104 5A223942 9DAD7287 C3BD279D B1CF8E83 3A7931D4 7EA820C4 8B2E095C 99404A66 1863CD5B 7DFF9BE3 0F1F25E5 F14902E2 4F846450 526687C5 B68556AE 78A784DC C190C6E3 D4268361 5160372F 3E981E42 5C64C3F6 7EDDD12B D2250B0D B69BA84B 07DFB846 C96DA1D4 C695C1FB 8BF53EB6 210A5F18 32A11D1D 294A7721 04046793 6EB88816 7974CC93 4D7FF1E4 7F4BF8AC C6986A26 9C9EF086 E21FB253 23DB5C1E 2D0DCC4A A4CCAE59 6167D9A8 8F376CD5 FAE527E5 5DED0AB8 FC5D6166 95E8EB8D E5393514 3798670D D1F45763 092C237E 36A1C330 75CE09C8 E35F9288 6699486B 3AF345F0 CBFA9493 4DAA96C3 BFC56593 3412E1AE 9654F93E C079550D 901D7D9B 6241FC4D 4F481D45 3BEC5958 32889D2C F257F462 698C0CCA 0591AEE8 FD6D6E31 460DA3A3 EAFC8CA8 ABABA014 854B3E95 3C4F1D71 243CB3E4 8E531E74 1090ACEF 7BCF3729 DB1129D6 B6CCD201 05BB9B43 30A2E809 2B062B97 75FE3578 E0670DD8 8BF1D1E0 B0449E20 38D6279F 7DCD5DCD 68E5F551 0F3B8D9E 2F6D829A DAB2E692 14AAC070 0F5407FB 02682215 A02E926C 9C61BA44 00E050DF F60B21AE CD6D4365 1587ED55 3AFD7D3E 59A744C1 C33E92B5 41811896 D7C9CD7A A64FC9C6 CE9F8E99 5915EA51 D2F29E01 1D2936A7 D1E0E03D E337EF7E A619CD9E F6957D49 BFFCD770 99F861B7 29A9D1F6 DC580AA6 B322517E D39FB119 BCF09576 38B06A75 C7C275CC C9980A88 EFB10C53 CF574CA8 2092BD13 C97F0DF6 2672C073 DD805FCD 378453A7 1D74FD5F CF3B870F 040A7A10 386B2C4A 68FEA01B F003FB3C 63D094CF 7B21BE33 B0A495F8 B414935C 6CD81807 52E8DD58 A150A6E5 4AB7A50B F51C999E 397F41BD 614DEED0 664465ED 8A98BE4C 58656DFB 55258962 1484126A 1AA4D343 4E94D131 B5778EEA 024ACAC7 ACCEA063 50820371 EB6FF41B 487BA9B1 B8495294 92CC1F98 5941792D FA90C1F8 B203231A 07128DC0 B984737D 21B93F93 DFEA32AA 8D421FC0 1A9A5F08 33F824B4 04297514 0D44DB62 13BA4891 F5176781 659473E3 9B0ED10C FCD651B9 C4965372 2D639306 AFC8D52D C4F8B949 187DFDDE 623F7863 88F1A1E9 25605182 3FF6D550 2EB13149 06316131 A6D6ACB3 E94AEB76 F3346C59 54C1F029 E11FC6C3 4CA5FEC0 16A45272 D838E7CE A215CDCE 2B38FD54 AB3AB685 7DEAD57B B6FD9676 8630E964 532459A0 1BC41D00 8359838B 431DE1DA 3346A90B 8D7BA426 337B3027 5B3FBBD6 8E5F4872 3A2E8C0F 6BD1AA31 AB394825 6B56443E 4CF5178A B7C8EB14 7DA26A48 F966C7D9 EA83837E F579DD52 9AD3048F C6DE01F8 551A7CCA 9E5FD030 6B57E354 E1797A8B E8A5B6C8 D17B978B 8894B022 F4562420 611DFEE3 7796943C AD913CF7 A4A8D57B 848D0704 6D9B58EF 2F511C27 55792E2A 257C3207 FACABF3D 7E16688D 5B5D193B 98DF93C2 0A700DD4 DDFBCC3C 46F5D857 FDD58482 C09730CD 58872A69 C8A8309B 720A1DC3 A73D36BF 006662B6 CEDA25CE 3B14D84F F7679969 2C2FC7DF 73F9A978 684F259A 8E6A0829 117C83FE C3601D3B 23BECB64 DA44E9ED E389CCC6 73398D32 943BA848 8695BC14 4E12B414 6C00AB46 A075F3A3 2C854C12 30738DF1 0F59573E A6370152 E35B3447 C2BCA766 EFAC9C28 088F8EAD 35935FA3 0824A734 E9DF2B03 863B5EA3 933AC568 3A2FEC10 B3C35047 07ADF158 2F057D9F 690624F8 010E65C4 21916A7B 0F9B9D3C 419CF1AD 000399BD 108F8FA4 F8B2C3AF 1CB0BAFD 86A3D963 77B56B86 D6AA295B 2B83C045 67466880 10223EDA DAF7EF70 7B0DBDC6 F907B5A0 951622F9 FE33384A 3723F18A B4174831 92B8B48B CC97D3B7 810F23BB D0042BD3 A6C5E650 C000738E CB5B3089 ACF423B2 7F38D0EE E9614B6C FA929A1A 158D7D03 8CEA17D1 CD67EB2F 160BEAD7 CA815AB3 AB2701D4 2BAEBFF4 6D969A17 287A8255 CD8C62BC E2EB6DC2 5D494656 5A6395E7 0262D415 70F687CF 6742979B BBA8366F A3D63433 97338B02 35F8A74B 302A67C5 AF224A30 386C9156 74AC7D05 096EDC33 358A68FD 06C9F246 1E4E6C9E 8BDB446B B3D88ABA CE092EE5 01E87DA6 183C198E 81B66760 054356DC 63E1D6B8 6CE91E6A 63EEB240 BB2926C1 DE7CED35 C80F9778 BB7BCC84 2DDBF49A 48A0CE0D D51A138B 79C491FD C7922C20 6D5CBA54 A6C0496D 62088CC9 1B4C67F2 9D3B71FD 923750AF AD43507B 35830311 72698D7D 060E41C6 F9E14236 718D496A C96EFCA2 5E368C31 D7590F15 7838162B 9DF057AF 686F86EC F7D95E2E 4E03BB47 59726C72 44B1BDE6 8E77CB68 A1D3493F S-box 1: 78 DCD9433E 896F1552 4BC4CA7A A6D1BAF4 A5A96DCC 0BEF8B46 A169FDA7 74DF40B7 4E208804 9A756607 038E87C8 20211E44 8B7AD4BF C6403F35 1848E36D 80BDB038 1E62891C 643D2107 BF04D6F8 21092C8C F644F389 0778404E 7B78ADB8 A2C52D53 42157ABE BF447469 49DC9A63 3C5CFCAA 692F2F08 1E760F16 ABB96061 159CF22A A2253E2E F26D9483 98C39D98 7D239CA4 134E578E B1136601 5370F85D C298D6E2 7BF3F4AE EE6FAED5 1301C9A2 0297D9DD 36D9E0BF 864E1B9B FFB07E37 2B78EF6A 80F594F9 71371235 389B1BBF D7DC2830 AE8B5FCF D7EA7319 DA30D0FB 61A94AC0 953194E7 DE425F73 0C18588D 4B37802B EDB93ECF 3AB871BD EBC977B6 AB561187 77EB92ED B4E59F43 A421C1BA 7428AB54 2B27248E CFA4D76F 0B98B40F 14EEA0F0 B3816930 7DBE2D4E 7AA3865C AEEE0347 170EB1EF E31BD782 3A4D0FE6 DF0D4164 DA8D9336 2D37B185 71E08558 4B3FBB85 7DC57FD6 0DBEB469 DF4FC26B 19AF70EE Anahtar Üretimi:MARS’ın anahtarları 4 word ile 39 word uzunlukları arasında herhangi bir uzunlukta ve “little endian” biçiminde olabilir. Anahtarı üretmek için –7 ile 39 arasında indislere sahip bir vektörümüz olduğunu kabul ederiz. Bu vektörün ilk 7 wordu S-Box 0’ın ilk 7 wordu ile doldurulur. Daha sonra 0 ile 39 arasındaki kelimeler aşağıdaki şekilde üretilir: Aşağıdaki dört şeyi XORla: • Yedi pozisyon önceki word • İki pozisyon önceki wordun üç bit sola kaydırılmış hali • Anahtarın ilk kelimesi(anahtardaki kelimeler dairesel bir döngü ile kullanılır) • Hesaplanan vektördeki wordun numarası(0 dan 39 a) Vektörün 39. wordu dış anahtardaki kelimelerin numarası ile yüklenir. Bu noktada vektörün –7 ile –1 indisli kelimelerini unutur, vektöre sadece 0 dan 39 a kadar word içeriyormuş gibi davranırız. Daha sonra , yedi kere uygulanmak üzere, vektörün 1. wordundan başlayarak , vektörün her kelimesini, bir önceki vektör kelimesinin sağdaki 9 byte ile erişilebilen S-Box girdisiyle topla. Vektörün 39. kelimesi 0. kelimesinin öncesi olarak kabul edilmiştir. Sonuç olarak bu geçici vektörün i. kelimesi (0<=i<=39) alt anahtar (7*i) mod 40 olur. Alt anahtarlar 5, 7, 9, 11, . . . , 35 bloğun ilk kelimesini çarpmak için E fonksiyonunda kullanılıyor. Bu alt anahtarlar çarpmaya daha uygun değerler yüklenerek değiştirilebilir. Bu anahtarları düzeltmenin içerilmiş olup aşağıdaki gibidir: Alt anahtar SR nin gerçek değerinin çağır, SM=SR OR 3 ve IX=SR AND 3 olsun, 79 Şu şekilde bir MA yarat:SM deki 10 yada daha fazla bite denk gelen MA bitleri üretmek için süreç yaratılır, her turda ilk ve son bitler çıkarılır. MA=MA AND FFFFFFFC olsun(böylece MA nın son iki biti 0 yapıldı) IX i kullanarak aşağıdaki vektörden bir eleman seçilir(vektör S-Boxlardan 4 değer içerir) 0: 1: 2: 3: A4A8D57B 5B5D193B C8A8309B 73F9A978 daha sonra değeri iç anahtarın kelimelerinin vektöründeki üç pozisyon ilerideki eleman kadar sağa döndür, ve şu anki anahtarı buradaki sonucun MA ile ANDlenmesinden elde edilen değerle XORla. Bu şekilde anahtar düzeltildi. 2.4.5 Rijndael (AES) Rijndael sadece basit tam-byte işlemleri kullanan bir tasarımdır. Ayrıca diğer AES adaylarına göre anahtar uzunluğu ve blok uzunluğu bakımından ilave esneklik içerir. Joan Daemen ve Vincent Rijmen tarafından tasarlanmış olup AES yarışmasında AES olarak seçilmiştir. Rijndael bir çok bakımdan oldukça basit bir cipherdir. Rijndael değişken sayıda tur sayısına sahiptir: • Anahtar ve blok 128 bit uzunlukta ise 9 tur • Eğer anahtar ya da bloktan biri 192 bit diğeri bundan fazla değilse 11 tur • Eğer anahtar yada bloktan herhangi biri 256 bit ise 13 tur. 80 Şekil 2.17: Rijndaelin bir turunu gösteren şekil Şekil 2.17 de de görüldüğü gibi her tur 4 alt aşamadan oluşur. İlk aşama “Byte Sub” aşaması olup bloğun her byteı S-Boxtaki temsilcisi ile değiştirilir. S-box: 99 48 202 173 183 52 4 7 9 82 83 106 208 69 81 188 205 196 96 70 224 194 231 108 186 232 112 97 124 1 130 212 253 165 199 18 131 59 209 203 239 249 163 182 12 167 129 238 50 211 200 86 120 221 62 53 119 103 201 162 147 229 35 128 44 214 0 190 170 2 64 218 19 126 79 184 58 172 55 244 37 116 181 87 123 43 125 175 38 241 195 226 26 179 237 57 251 127 143 33 236 61 220 20 10 98 109 234 46 31 102 185 242 254 250 156 54 113 24 235 27 41 32 74 67 80 146 16 95 100 34 222 73 145 141 101 28 75 72 134 107 215 89 164 63 216 150 39 110 227 252 76 77 60 157 255 151 93 42 94 6 149 213 122 166 189 3 193 111 171 71 114 247 49 5 178 90 47 177 88 51 159 56 243 68 25 144 11 36 228 78 174 180 139 246 29 197 118 240 192 204 21 154 117 160 132 91 207 133 168 245 210 23 115 136 219 92 121 169 8 198 138 14 158 81 225 248 152 17 105 217 142 148 155 30 135 233 206 85 40 223 140 161 137 13 191 230 66 104 65 153 45 15 176 84 187 22 Bir sonraki aşama “Shift Row” aşamasıdır. Bu aşamada bloğun 1 den 16 ya numaralı bytelardan oluştuğu varsayılıp, bu bytelar bir dikdörtgen içinde düzenlenip aşağıdaki şekilde kaydırılır: 128 bit blok: Ba•langıç 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 Son 1 5 9 13 6 10 14 2 11 15 3 7 16 4 8 12 192 bit blok: Ba•langıç 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19 4 8 12 16 20 21 22 23 24 256 bit blok: Ba•langıç 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19 4 8 12 16 20 21 22 23 24 Son 1 5 9 13 17 21 6 10 14 18 22 2 11 15 19 23 3 7 16 20 24 4 8 12 25 26 27 28 Son 1 5 9 13 17 21 25 29 6 10 14 18 22 26 30 2 15 19 23 27 31 3 7 11 20 24 28 32 4 8 12 16 29 30 31 32 256 bit blok uzunluğunda diğer durumlardan farklı olarak 1, 3 ve 4 byte sola kaydırma yapıldığı görülmektedir. Daha sonra “Mix Column” aşaması gelir. Bu aşamada matris çarpımı gerçekleştirilir:yukarıda gördüğümüz dizilimdeki her kolon aşağıdaki matris ile çarpılır. 2 1 1 3 3 2 1 1 1 3 2 1 1 1 3 2 Ama bu çarpma GF(2^8) üzerinden yapılır. Bunun anlamı çarpılan byteların bir sayıdan çok bir polinom olarak değerlendirilmesidir. Böylece 3 ile “çarpılması”, o byteın kendisinin 1 bit sola kaydırılmış hali ile XORlanması demek oluyor. Eğer sonuç 8 bitten fazla bit içeriyorsa sonuç 9 bitlik 100011011 ifadesiyle XORlanır. Bu ifade GF(2^8)(GF=Galois Field) olarak bilinen “generating polynomial” yerine geçer. Buna benzer yöntemler CRC(“Cyclic Redundancy Check”) lerde de kullanılmaktadır. Aşağıda 11001010 ikili ifadenin 3 ile Galois Field üzerinden çarpılmasını görebilirsiniz: * 11001010 11 82 --------11001010 11001010 --------101011110 100011011 --------1000101 (Toplama yerine XOR) (256 çıkarma yerine XORlandı.) Son aşama “Add Round Key” aşamasıdır. Bu aşama basitçe tur anahtarı ile XORlar. İlave bir tur olarak “Mix Column” aşaması olmadan yapılır. Aşağıda Rijndaelin aşamalarının sırasını görebilirsiniz: ARK (Add Round Key) BSB (Byte Sub) SR (Shift Row) MC (Mix Column) ARK BSB SR MC ARK . . . BSB SR MC ARK BSB SR ARK Şifrenin çözülmesi için bu sıranın bilinmesi gereklidir. Çözülürken bu işlemlerin tersleri bu sıranın tersi şeklinde uygulanır. Aşamaların tersleri şu şekildedir:ARK bir XOR işlemi olduğu için tersi de kendisine eşittir, MC deki matrisin tersi alınmalı tersine göre MC uygulanmalıdır, BS aşamasında SBoxta tersi ile değiştirilmelidir. MC nin tersi için kullanılacak matris aşağıdadır: 14 11 13 9 9 14 11 13 13 9 14 11 11 13 9 14 83 Anahtar Planlama:128 bit ve 192 bit uzunluktaki anahtarlar için şu şekilde bir alt anahtar üretimi yapılır: Asıl anahtarı wordlara ayırıp bu wordlar üzerine bazı fonksiyonlar uygulanıp, bu fonksiyonlar sonucu elde edilen değer ile bu worddan 4 önceki word XORlanır yeni word elde edilir, aşağıda yazılmış olan sabit sayılarla “Byte Sub” işlemi uygulanmış wordun sola bir bit kaydırılmış hali XORlanır. Tur Sabitleri: 1 2 4 8 16 32 64 128 27 54 108 216 171 77 154 47 94 188 99 198 151 53 106 212 179 125 250 239 197 145 57 114 228 211 189 97. . . 256 bitlik anahtarda “Byte Sub” işlemindeki S-Box tek başına uygulanır. 2.5 Açık(Bilinen) Anahtar Şifreleme (“Public Key Cryptography”) 1970’lerde ortaya çıkmıştır. Bu yöntem kafa karıştıran, yeni ve ilginç bir yöntemdir. Bu yöntemde “Bilinen(Public), herkese açık” denmesinin sebebi anahtarlardan şifrelemede kullanılan anahtarın kanallar üzerinden herkes tarafından görülebilecek şekilde iletilmesinde bir sorun olmamasıdır. Diğer bir anahtar, ki bu anahtar şifrenin çözülmesinde kullanılacaktır, mesajı alan kişiden başkası tarafından bilinmediği için şifrenin başkaları tarafından çözülmesini engellemiş olur. Bu yöntem nasıl yapılır? İki parçalı bir kod kitabımız olsun, bu kitaptaki ilk kısımda şifreleme karşılıkları, ikinci kısımda çözme kısımları olsun ama bunlar tersten elde edilebilecek şekilde dizilmemiş olsun. İlk kısmı (şifreleme kısmını) bize şifreli mesaj göndermek isteyenlere göndeririz ve aldığımız mesajları sadece kendi elimizdeki şifre çözme kısmıyla çözeriz. Bu gösterilebilecek en basit örnektir. Literatürde PKC’ yi(Public Key Cryptography) anlatmak için kullanılan bir başka örnekte şöyledir: Mesaj almak istediğimiz kişiye geniş bir şifreli mesaj gönderelim. Bu şifre kırılabilsin ama zorlasın. Mesajlar şu şekilde olsun: “Anahtar Numarası 2126 EXVRRQM” 84 “Anahtar Numarası 1253 PTXYZLE” .... Bu sistemdeki tüm anahtarlar ve karşılık gelen numaraları rastgele seçilmiş olsun ki belli bir mantık aranıp kırılmasın. Elimizde bu numaralar ve karşılık gelen anahtarları tutan bir tablomuz olsun. Bize mesaj göndermek isteyen kişi gönderdiğimiz şifreli anahtar mesajını çözer, istediği bir anahtarı kullanıp göndereceği mesajı şifreler, ve şifreli mesajın sonuna “2126 nolu anahtarı şifrelemek için kullandım” ifadesini ekleyip mesajı bize yollar. Biz bu mesajı alır almaz ilk önce şifreli mesajın sonundaki 2126 sayısının karşılığı olan anahtarı tablomuzdan okuruz, bu anahtara göre de şifreli mesajı çözeriz ve mesajımızı okuruz. PKC deki en önemli olarak görülebilecek sorunlardan biri de gizli anahtarın dağıtılması sorunudur. Bunu aşmak için de kişiler genellikle çok güvenli kanalları tercih ediyorlar. Örneğin E-Posta şifrelerken kullandığımız bir PKC algoritmasının gizli anahtarını normal posta ile adrese göndermemiz İnternet üzerindeki kanallardan göndermemizden daha güvenli olabilir. PKC, geleneksel kriptografiden çok farklıdır, ve genellikle matematiği altyapı olarak kullanır. Asal sayıları kullanan RSA buna en iyi örnektir. RSA, PKC ye verilebilecek en çok bilinen örneklerden biridir:E anahtarı mesajı şifreler, D anahtarı şifreli mesajı çözer, ama D yi sadece E yi bilerek bilmek mümkün değildir. Kullanılan modun iki asal çarpanının bilinmesi gerekir. Alt konularda PKC nin en çok bilinen yöntemlerinin incelemeye çalışalım. 2.5.1 Modüler Aritmetik Daha önce modüler aritmetik eğitimi alınmış olsa bile bu konunun az da olsa incelenmesi gereklidir. Çünkü bazı temel bilgiler PKC içerisinde sık sık kullanılmaktadır. Aşağıda mod 7 ye göre toplama, çarpma ve üs alma işlem sonuçları görülmektedir: + | 0 1 2 3 4 5 6 * | 0 1 2 3 4 5 6 ------------------- ------------------- ^ | 0 1 2 3 4 5 6 0 | 0 1 2 3 4 5 6 0 | 0 0 0 0 0 0 0 ------------------1 | 1 2 3 4 5 6 0 1 | 0 1 2 3 4 5 6 1 | 1 1 1 1 1 1 1 2 | 2 3 4 5 6 0 1 2 | 0 2 4 6 1 3 5 2 | 1 2 4 1 2 4 1 3 | 3 4 5 6 0 1 2 3 | 0 3 6 2 5 1 4 3 | 1 3 2 6 4 5 1 4 | 4 5 6 0 1 2 3 4 | 0 4 1 5 2 6 3 4 | 1 4 2 1 4 2 1 5 | 5 6 0 1 2 3 4 5 | 0 5 3 1 6 4 2 5 | 1 5 4 6 2 3 1 6 | 6 0 1 2 3 4 5 6 | 0 6 5 4 3 2 1 6 | 1 6 1 6 1 6 1 85 Eğer çarpma tablosundan hepsi 0 olan satır ve sütunu kaldırırsak, her satır ve sütundaki sayıların birbirinden farklı olduğunu görürüz. Bu 7 nin asal sayı olmasından kaynaklanan bir durumdur. Üs tablosunda üs olarak 6 ya geldiğimizde sonucun tekrar ettiğini görüyoruz. Buradan mod 7 de iken üssün mod 6 göre düşünülmesi gerektiği sonucunu çıkarırız. Bu sonuçlar tüm asal tabanlar için geçerlidir. Eğer biz bir sayının 5 ve 7 ile bölündükten sonra kalanını biliyorsak 5 ve 7 nin çarpımı olan 35 sayısından kalanını da buluruz. Bu demektir ki mod 35 aritmetiği, mod 5 ve mod 7 aritmetiğinin bir kombinasyonundan oluşmaktadır. Fakat üs almada mod 34 yerine mod 24 tür. Çünkü üste mod 5 in mod 4, mod 7 nin mod 6, böylece mod 35 in 6*4 =mod 24 olmaktadır. Bu (p-1)(q-1) sayısının RSA daki rolünü çok ta az olsa açıklayacaktır. Ama sadece (p-1)(q-1) e göre asal olan sayılar RSA da şifrelemek ve çözmek için kullanılır. Tüm asal sayılar değil. Ayrıca RSA güvenli olabilmek için çok yüksek (geniş) modüler gerektirir. 2.5.2 RSA(Rivest-Shamir-Adleman) RSA yöntemi, “knapsack” yöntemi güvensiz olduğunu gösterse de, bazı çeşitleri ile birlikte neredeyse tek “doğru” PKCdir, ki mesajları doğrudan açık anahtar ile şifreler. İlk olarak Ağustos 1977 de Ronald Rivest, Adi Shamir, ve Leonard Adleman tarafından tanımlanmış olup, aslında 1973 yılında GCHQ içerisinde Clifford Cocks tarafından keşfedildiği daha sonraki incelemelerde açığa çıkmıştır. RSA metodu aşağıdaki matematiksel gerçeklere dayanmaktadır: Eğer bir sayıyı asal moda göre (d) üssüne yükseltirsek, asıl sayıyı sonucu başka bir üs olan (e) ye yükselterek elde edebiliriz. Diğer üssün ne olduğu asal modu ve 1 üssü bilerek kolayca tespit edilebilir. İşlem şu şekildedir[26]: Mod n=p*q tamsayıları ile işlem yapılır. p ve q çok büyük gizli asal sayılardır. M mesajını şifrelemek için M nin e üssünü alırız(e küçük açık bir üstür). C=me(mod n) elde ettiğimiz şifreli metindir. C yi çözmek için çarpmaya göre tersi olan d= e-1 (mod (p-1)*(q-1)) seçeriz. 86 Cd=Me*d=M (mod n) olacaktır. Gizli anahtar n, p, q, e ve d dir. Açık anahtar ise sadece n ve e den oluşur. [27] Yeterli bir güvenlik için anahtar uzunluğu (modun uzunluğu) 1024 bitten büyük olmalıdır. (10300 ün dereceleri olmalıdır.) 2048 bitlik anahtar 10 yıllarca yetecek bir güvenlik sağlayacaktır. RSA da sorulması gereken çok soru vardır. Bu sorular aşağıdaki gibidir. Ve cevapları Applied Cryptography kitabında bulunabilecektir. • İki çok büyük asal sayıyı nasıl seçerim? • Mod (p-1)*(q-1) in karşılığını nasıl hesaplarım? • Mod p*q ya göre üs almayı nasıl yaparım? 2.5.3 Diffie-Hellman Bu algoritma aslında bir anahtar değişimi algoritması olup mesajı doğrudan DiffieHellman sistemleri ile şifrelemek imkansızdır. Bu anahtaar değişim algoritması 1976 yılında Whitfield Diffie ve Martin Hellman tarafından keşfedilse de aslında daha önce 1974 yılında Malcolm Williamson tarafından İngiltere’de GCHQ içerisinde keşfedilmişti. Diffie-Hellman yöntemi de RSA da olduğu gibi modüler aritmetik kullanır. Fakat burada modumuz bir asal sayıdır. Bu sayıyı P olarak çağıracağız. Ayrıca üs alma işlemini de içerir. Diffie-Hellman yönteminde her iki taraf ta gizli bir rastgele sayı düşünür, x ve y olsun. Her biri birbirlerine A üzeri bu sayıları yollar. Yani bir taraf karşı tarafa AX i diğeri de bu tarafa AY i yollar. Böylece bir taraf X ve AY i, karşı taraf Y ve AX i bilecektir. Her iki taraf ta AX*Y değerini hesaplayabilecektir(AX*Y =AY^X=AX^Y olduğundan). Fakat AX veya AY e erişen biri X ve Y yi bilmeden bunu hesaplayamacaktır. İki taraf bu ifadeyi kullanarak anahtarları geri dönüşümü olmayan şekilde şifreleyebilir ve birbirlerine gönderirler. Böylece anahtar değişimini güvenli bir hale getirmiş olurlar. El Gamal:Diffie-Hellman anahtar değişimi algoritması genellikle iki taraf tarafından aktif olarak gerçekleştirilen bir anahtar değişimi olarak tanımlanır: Bir taraf x i seçer ve Ax mod P yi yollar, Diğer taraf y yi seçer ve Ay mod P yi aktarır. 87 Her iki tarafta sonuç olarak Axy mod P ifadesini oturum anahtarları olarak kullanır ve iletişim kurarlar. El Gamal bunun özel bir durumudur: El Gamalda açık anahtarı Ay mod P olan bir kişiye mesaj göndermek istiyorsak, kendi açık anahtarımız olan Ax mod P yi ona göndeririz, ek olarak mesaj Axy mod P ile çarpılarak şifreleneir. Çarpma da mod P ye göre yapılır. Kaynakça: • IT Security Book, Sean Boran, http://www. boran. com • A Cryptographic Compendium, John Savard, http://home.ecn.ab.ca/~jsavard/crypto/ entry.htm 88 • Handbook of Applied Cryptography, A. Menezes, P Van Oorschot, S. Vanstone, CRC Press, 1996, http://www.cacr.math.uwaterloo.ca/hac [1] David Kahn, “The Codebreakers”, Macmillan, 1967, Sf. 71 [2] David Kahn, “The Codebreakers”, Macmillan, 1967, Sf. 82 [3] David Kahn, “The Codebreakers”, Macmillan, 1967, Sıkça bahsediyor [4] Luigi Sacco(Araştırılıp kitabın adı bulunmalı) [5] 1. Dünya Savaşı Fransız Ordusu Kaynağı bulunmalı [6] Turning Grille kaynağı bulunmalı [7] Grandpré Cipher kaynağı bulunmalı [8] Herbert Osborne Yardley, The American Black Chamber [9] Helen Fouche Gaines, Elementary Cryptanalysis [10] Bkz. [1] de adı geçen eser [11] Giovanni Battista Della Porta, De Furtivis Literatim Notis [12] Polybius, Histories [13] David Kahn, Kahn on Codes [14] Bkz. [1] de adı geçen eser [15] David Kahn, “The Codebreakers”, Macmillan, 1967, Ayrıca “Scientific American” Temmuz 1966 Sayısında yayınlanan bir makalesinde adları geçiyor. [16] Cryptologia v. 5 No. 4 pp. 193-208 [17] (Wheatstone diski) [18] Aylık Amerikan Matematik Dergisi, Cilt 36, Sayı 6 (Haziran-Temmuz 1929), Sf. 306-312 [19] (Hebern Makineleri) [20] (Enigma) [21] (PURPLE, CORAL, JADE) [22] Arthur Sorkin, Cryptologia 89 [23] http://www. darkside. com. au/ice/index. html [24] http://atasanoff. nmsu. edu/ejohnson/ejohnson. html [25] Brian Gladman (http://fp. gladman. plus. com) [26] Cryptography A-Z Online Cryptography Tutorial, http://www.ssh.com [27] Handbook of Applied Cryptography, A. Menezes, P Van Oorschot, S. Vanstone, CRC Press, 1996, http://www.cacr.math.uwaterloo.ca/hac 90
Benzer belgeler
ŞİFRELEME, ŞİFRE ÇÖZME VE ŞİFRE KIRMA
Şekil 1. Vigenere Şifreleme
Eğer yeterli sayıda karakter biliniyorsa bilinen düz-metin atağı başarılı olacaktır, çünkü düzmetinden şifreli-metin mod26’ya göre çıkarılarak anahtar elde edilebilir. a...