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

Şİ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...

Detaylı