Yusuf Talha ARABACI tarafından yazılmıştır.
Merhaba, bu yazımızda kriptanalizin ne olduğundan ve basit şifreleme tekniklerinin nasıl kırılacağından bahsedeceğim.
Şifreleme bilimi olarak adlandırılan bu bilim türünde, gizli tutulmak istenen şeyler bir sistem dahilinde değişik teknik ve yöntemler ile şifrelenir. Aynı zamanda kriptoloji bilimi, şifrelenen iletilerin istenmeyen kişiler tarafından deşifre edilmemesi için de çalışmalar yapmaktadır.
Kriptografi, bir mesajın anlamını gizlemek amacıyla gizli yazma bilimidir.
Kriptanaliz, kripto sistemleri kırma, deşifre etme bilimidir.
Klasik kriptanaliz, y şifreli metninden x düz metnini kurtarma veya alternatif olarak y şifreli metninden k anahtarını kurtarma bilimidir. Bu işlem iki yolla yapılabilir. Birincisi, şifreleme yönteminin iç yapısından yararlanan matematiksel analizler. İkincisi ise, şifreleme algoritmasını bir kara kutu olarak ele alan ve olası tüm anahtarları test eden kaba kuvvet saldırılarıdır.
Bu yazımızda bahsedeceğimiz kripto sistemlerin kırılmasında genellikle bu yöntemi kullanacağız.
Tersine mühendislik veya güç ölçümü yoluyla gizli anahtarı elde etmeye çalışan saldırı türüdür. Örneğin; gizli anahtar üzerinde çalışan bir işlemcinin elektrik güç tüketimi ölçülüp güç izi, sinyal işleme teknikleriyle anahtarı bulmak için kullanılabilir. Güç tüketimine ek olarak, elektromanyetik radyasyon veya algoritmanın çalışma zamanı davranışı, gizli anahtar hakkında bilgi verebilir.
Uygulama saldırıları çoğunlukla bir saldırganın fiziksel erişiminin olduğu kriptosistemlerle ilgilidir; uzak sistemlere yönelik internet tabanlı saldırıların çoğunda, uygulama saldırıları bir endişe kaynağı değildir.
Kurduğumuz kripto sistem ne kadar güçlü olursa olsun insan faktörü kaynaklı riskler göz ardı edilmemelidir. Bir gizli anahtarı elde etmek için rüşvet, şantaj, kandırma veya klasik casusluk kullanılabilir. Örneğin bir kişinin kafasına silah dayayarak şifreyi söylemeye zorlamak oldukça başarılı olabilir. Daha az şiddet içeren bir başka saldırı da, saldırmak istediğimiz kişileri telefonla arayarak “Şirketinizin IT departmanından arıyoruz. Önemli yazılım güncellemeleri için şifrenize ihtiyacımız var” gibi sosyal mühendislik teknikleridir. Bu gibi durumlarda şifrelerini gerçekten verecek kadar saf olan insanların sayısının hiç de az olmaması şaşırtıcıdır.
Saldırgan her zaman kripto sisteminizdeki en zayıf halkayı arar. Bunun için, güçlü algoritmalar seçmemiz, sosyal mühendislik ve uygulama saldırılarının pratik olmadığından emin olmamız gerekir. Hem uygulama saldırıları hem de sosyal mühendislik saldırıları pratikte oldukça güçlü olabilir.
Bir metni şifrelemek için en basit yöntemlerden biri olan, ikame şifresi(yer değiştirme şifresi) tarihsel süreçte birçok kez kullanılmıştır ve temel kriptografinin iyi bir örneğidir.
Fikir çok basit, alfabenin her harfini bir başkasıyla değiştiriyoruz. Örneğin;
A → k
B → d
C → w
Bu örnekte, ABBA ifadesi kddk olarak şifrelenecektir.
Hangi harfin hangi harfe karşılık geleceğini belirlediğimiz ikame tablosunu tamamen rastgele seçtiğimizi varsayalım. İkame tablosu bu şifreleme sisteminin anahtarı olmuş olur. Her zaman olduğu gibi simetrik kriptografide anahtar gizli tutulmalıdır, yani A ve B arasında güvenli bir şekilde dağıtılmalıdır. Simetrik-Asimetrik kriptografi hakkında detaylı bilgi edinmek için bir önceki yazımıza bakabilirsiniz.
Tahmin edilebileceği gibi bu şifreyi kırmak oldukça kolaydır. Bu noktada klasik kriptanaliz tekniklerinden yararlanabiliriz.
Kaba kuvvet saldırıları basit bir konsepte dayanır: Saldırgan, şifreli metine ve kısa bir düz metin parçasına (örneğin şifrelenmiş metnin başlığına) sahiptir. Bu durumda, tüm olası anahtarları deneyerek şifreli metni çözer. Ortaya çıkan düz metin, kısa düz metin parçasıyla eşleşirse doğru anahtarı bulmuş olur. Pratikte, kaba kuvvet saldırısı daha karmaşık olabilir çünkü yanlış anahtarlar yanlış, pozitif sonuçlar verebilir.
Prensipte simetrik şifrelere karşı kaba kuvvet saldırısının her zaman mümkün olduğuna dikkat etmek önemlidir. Pratikte uygulanabilir olup olmadığı, belirli bir şifre için var olan olası anahtarların sayısına bağlıdır. Tüm anahtarları test etmek çok fazla zaman alıyorsa, yani birkaç on yıl alıyorsa, şifre bir kaba kuvvet saldırısına karşı güvenlidir.
İkame şifresinin anahtar uzayını belirleyelim: İlk A harfinin yerine geçecek olan harfi seçerken alfabenin 26 harfinden rastgele bir harf seçiyoruz (yukarıdaki örnekte k seçtik). Bir sonraki alfabe harfi B’nin karşılığı, kalan 25 harften rasgele seçilmiştir, vb. Bu nedenle, ikame şifresinin anahtar uzayı = 26 · 25 · ….. · 3 · 2 · 1 = 26! olur.
Yüz binlerce yüksek güçlü bilgisayarla bile böyle bir arama birkaç on yıl alacaktır. Bu nedenle, ikame şifresinin güvenli olduğunu düşünebiliriz. Ancak, bu yanlış çünkü daha güçlü bir saldırı daha var.
Frekasn Analizi 9.yy.’da Al-Kindi tarafından önerilmiştir. Dildeki tekrarlara dayanmaktadır.
Herhangi bir dil için, o dildeki harflerin kullanım sıklıkları hesaplanır. İngilizce dilinde harflerin kullanım sıklığını içeren tablo aşağıda verilmiştir.
Tablodan da görüleceği gibi, ingilizce dilinde en sık kullanılan harf ‘E’ harfidir, ikinci en sık kullanılan harf ise ‘T’ harfidir. Eğer şifreli metin uzunsa en çok gözüken harf büyük olasılıkla düz metindeki E’ye denk gelir ve ikinci en çok gözüken harfte büyük olasılıkla T’ye denk gelir, bu şekilde devam eder.
İkame şifresi, böyle bir analitik saldırı ile kolayca kırılabilir. Şifrenin en büyük zayıflığı, düz metnin her karakterinin her seferinde aynı karakterle değiştirilmesidir.
Sezar şifresi diğer adıyla kaydırma şifresi, aslında ikame şifresinin özel bir halidir. Kaydırma şifresinin kendisi son derece basittir: Düz metnin her harfini alfabede sabit sayıda konumla kaydırırız. Örneğin, 3 konum kaydırırsak, A yerine d, B yerine e vb. gelirdi. Tek sorun alfabenin sonuna doğru ortaya çıkıyor: X, Y, Z ile ne yapmalıyız? Bu durumda başa dönüyoruz. Bu durumda, X->a, Y->b ve Z->c ile yer değiştirilir.
Tarihte Julius Sezar bu şifreyi üç konumlu bir kaydırma ile kullanmıştı. Sezar şifresi ismi buradan gelmektedir.
Şifrenin matematiksel ifadesi için alfabenin harfleri aşağıdaki tabloda gösterildiği gibi sayısal olarak kodlanmıştır.
Anahtar k = 17 olsun ve düz metin:
ATTACK = x1,x2,…,x6 = 0,19,19,0,2,10 olsun.s
Şifreli metin şu şekilde hesaplanır:
y1,y2,…,y6 = 17,10,10,17,19,1 = rkkrtb
İkame şifresinde olduğu gibi, kaydırma şifresi de hiç güvenli değildir. Aynı şekilde bu şifreyi kırmak için de iki yolumuz var:
1. Anahtar uzayı 26 anahtardan oluştuğu için, belirli bir şifreli metnin şifresini tüm olası 26 anahtarla çözmeye çalışarak, kaba kuvvet yöntemiyle, kırabiliriz. Ortaya çıkan düz metin okunabilir ise, anahtarı bulmuş oluruz.
2. İkame şifresindeki gibi frekans analizi kullanılabilir.
Charles Wheatstone tarafından 1854’de önerilmiştir , Lord Playfair kullanımını teşvik etmiştir. Birden fazla harf değişimi kullanılarak daha güçlü bir şifreleme yapılması hedeflenmiştir.
Şifrelemede anahtarın ve alfabenin geri kalanının yer aldığı 5×5’lik bir tablo kullanılır. Anahtarı ve 4 basit kuralı bilmek sistemi kullanmak için yeterlidir.
Kurallar:
1- Eğer iki harf de aynıysa ya da en son tek bir harf kaldıysa, ilk harften sonra bir “X” harfi eklenir.
2- Eğer iki harf aynı satırdaysa, her harf sağındaki harfle değiştirilir. (bir harf eğer satır sonundaysa, satır başındakiyle değiştirilir)
3-Eğer iki harf aynı sütundaysa, her harf altındaki harfle değiştirilir(bir harf eğer sütunun sonundaysa, sütun başındakiyle değistirilir)
4-Eğer harfle aynı sütun veya satırda değilse, harfler bir dikdörtgenin iki köşesi olarak düşünülür ve harfler karşılarındaki köşede yer alan harf ile değiştirilir. Bir örnekle açıklayalım.
Bu durumda tablo şekildeki gibi olacaktır. Önce anahtar yazılır. Aynı harfler bir kez kullanılır. 5×5’lik tablonun geri kalanı, kalan harflerle doldurulur. 25 harfe inmek için I ve J harfi aynı kutuya konur.
Plafair gibi ikili harf değişim sistemleri iki harfli frekans analizine dayanıklı değildirler. Bilgisayarlar ile kısa uzunluktaki harf değişimlerini kırmak mümkündür.
Şifreyi kırmak için dilde ikili harf gruplarının ne sıklıkla görüldüğü hesaplanır ve bunun üzerinden mesajın şifresi çözülmeye çalışılır. Bu işlem başta göz korkutabilir ancak bir bilgisayar için hiç de zor değildir. Güçlü bir bilgisayar sistemi, 8-harf’e kadar frekans analizini yapabilecek yeterliktedir
Adına kırılmaz şifreleme de diyebileceğimiz bu yöntem çok güvenilir olmasına rağmen pratikte uygulanması oldukçca zordur. Bu yöntemde, tek sefer kullanılacak rastgele karakterlerden/bitlerden oluşan uzun bir dizi üretilir. Düz metin, one-time pad’le XOR işlemine sokularak şifreli metin elde edilir. Şifreli metin ile one-time pad’in XOR işlemine sokulması düz metni geri getirir.
one-time pad, isminden de anlaşılacağı gibi tek kullanımlık ve tamamen rastgele üretilmiş olmalıdır. .Aynı anahtarın tekrar kullanımı şifrelemede zayıflığa yol açar ve kırılabilmesine olanak tanır.
Bu şifreleme tekniği kusursuz gizlilik sağlar çünkü şifreli metin düz metin hakkında hiçbir bilgi içermemektedir. Frekans analizi bu teknikte kullanılamaz. Bitler yerine harfler ya da karakterler üzerinde çalışan halini de kullanmak mümkündür.
Bunun yanında, anahtarın çok uzun(mesaj ile aynı uzunlukta) ve dağıtımının zor olması bu şifreyi pratikte kullanmayı zor bir hale getirmektedir.
[TR] Kriptanalize Giriş
Merhaba, bu yazımızda kriptanalizin ne olduğundan ve basit şifreleme tekniklerinin nasıl kırılacağından bahsedeceğim.
Kriptolojiye Genel Bakış
Şifreleme bilimi olarak adlandırılan bu bilim türünde, gizli tutulmak istenen şeyler bir sistem dahilinde değişik teknik ve yöntemler ile şifrelenir. Aynı zamanda kriptoloji bilimi, şifrelenen iletilerin istenmeyen kişiler tarafından deşifre edilmemesi için de çalışmalar yapmaktadır.
Kriptografi, bir mesajın anlamını gizlemek amacıyla gizli yazma bilimidir.
Kriptanaliz, kripto sistemleri kırma, deşifre etme bilimidir.
Klasik Kriptanaliz
Klasik kriptanaliz, y şifreli metninden x düz metnini kurtarma veya alternatif olarak y şifreli metninden k anahtarını kurtarma bilimidir. Bu işlem iki yolla yapılabilir. Birincisi, şifreleme yönteminin iç yapısından yararlanan matematiksel analizler. İkincisi ise, şifreleme algoritmasını bir kara kutu olarak ele alan ve olası tüm anahtarları test eden kaba kuvvet saldırılarıdır.
Bu yazımızda bahsedeceğimiz kripto sistemlerin kırılmasında genellikle bu yöntemi kullanacağız.
Uygulama Saldırıları
Tersine mühendislik veya güç ölçümü yoluyla gizli anahtarı elde etmeye çalışan saldırı türüdür. Örneğin; gizli anahtar üzerinde çalışan bir işlemcinin elektrik güç tüketimi ölçülüp güç izi, sinyal işleme teknikleriyle anahtarı bulmak için kullanılabilir. Güç tüketimine ek olarak, elektromanyetik radyasyon veya algoritmanın çalışma zamanı davranışı, gizli anahtar hakkında bilgi verebilir.
Uygulama saldırıları çoğunlukla bir saldırganın fiziksel erişiminin olduğu kriptosistemlerle ilgilidir; uzak sistemlere yönelik internet tabanlı saldırıların çoğunda, uygulama saldırıları bir endişe kaynağı değildir.
Sosyal Mühendislik
Kurduğumuz kripto sistem ne kadar güçlü olursa olsun insan faktörü kaynaklı riskler göz ardı edilmemelidir. Bir gizli anahtarı elde etmek için rüşvet, şantaj, kandırma veya klasik casusluk kullanılabilir. Örneğin bir kişinin kafasına silah dayayarak şifreyi söylemeye zorlamak oldukça başarılı olabilir. Daha az şiddet içeren bir başka saldırı da, saldırmak istediğimiz kişileri telefonla arayarak “Şirketinizin IT departmanından arıyoruz. Önemli yazılım güncellemeleri için şifrenize ihtiyacımız var” gibi sosyal mühendislik teknikleridir. Bu gibi durumlarda şifrelerini gerçekten verecek kadar saf olan insanların sayısının hiç de az olmaması şaşırtıcıdır.
Saldırgan her zaman kripto sisteminizdeki en zayıf halkayı arar. Bunun için, güçlü algoritmalar seçmemiz, sosyal mühendislik ve uygulama saldırılarının pratik olmadığından emin olmamız gerekir. Hem uygulama saldırıları hem de sosyal mühendislik saldırıları pratikte oldukça güçlü olabilir.
Tarihsel Şifreleme Algoritmaları
İkame Şifresi
Bir metni şifrelemek için en basit yöntemlerden biri olan, ikame şifresi(yer değiştirme şifresi) tarihsel süreçte birçok kez kullanılmıştır ve temel kriptografinin iyi bir örneğidir.
Fikir çok basit, alfabenin her harfini bir başkasıyla değiştiriyoruz. Örneğin;
A → k
B → d
C → w
Bu örnekte, ABBA ifadesi kddk olarak şifrelenecektir.
Hangi harfin hangi harfe karşılık geleceğini belirlediğimiz ikame tablosunu tamamen rastgele seçtiğimizi varsayalım. İkame tablosu bu şifreleme sisteminin anahtarı olmuş olur. Her zaman olduğu gibi simetrik kriptografide anahtar gizli tutulmalıdır, yani A ve B arasında güvenli bir şekilde dağıtılmalıdır. Simetrik-Asimetrik kriptografi hakkında detaylı bilgi edinmek için bir önceki yazımıza bakabilirsiniz.
Tahmin edilebileceği gibi bu şifreyi kırmak oldukça kolaydır. Bu noktada klasik kriptanaliz tekniklerinden yararlanabiliriz.
İlk Saldırı: Kaba Kuvvet veya Kapsamlı Anahtar Arama
Kaba kuvvet saldırıları basit bir konsepte dayanır: Saldırgan, şifreli metine ve kısa bir düz metin parçasına (örneğin şifrelenmiş metnin başlığına) sahiptir. Bu durumda, tüm olası anahtarları deneyerek şifreli metni çözer. Ortaya çıkan düz metin, kısa düz metin parçasıyla eşleşirse doğru anahtarı bulmuş olur. Pratikte, kaba kuvvet saldırısı daha karmaşık olabilir çünkü yanlış anahtarlar yanlış, pozitif sonuçlar verebilir.
Prensipte simetrik şifrelere karşı kaba kuvvet saldırısının her zaman mümkün olduğuna dikkat etmek önemlidir. Pratikte uygulanabilir olup olmadığı, belirli bir şifre için var olan olası anahtarların sayısına bağlıdır. Tüm anahtarları test etmek çok fazla zaman alıyorsa, yani birkaç on yıl alıyorsa, şifre bir kaba kuvvet saldırısına karşı güvenlidir.
İkame şifresinin anahtar uzayını belirleyelim: İlk A harfinin yerine geçecek olan harfi seçerken alfabenin 26 harfinden rastgele bir harf seçiyoruz (yukarıdaki örnekte k seçtik). Bir sonraki alfabe harfi B’nin karşılığı, kalan 25 harften rasgele seçilmiştir, vb. Bu nedenle, ikame şifresinin anahtar uzayı = 26 · 25 · ….. · 3 · 2 · 1 = 26! olur.
Yüz binlerce yüksek güçlü bilgisayarla bile böyle bir arama birkaç on yıl alacaktır. Bu nedenle, ikame şifresinin güvenli olduğunu düşünebiliriz. Ancak, bu yanlış çünkü daha güçlü bir saldırı daha var.
İkinci Saldırı: Harf Frekans Analizi
Frekasn Analizi 9.yy.’da Al-Kindi tarafından önerilmiştir. Dildeki tekrarlara dayanmaktadır.
Herhangi bir dil için, o dildeki harflerin kullanım sıklıkları hesaplanır. İngilizce dilinde harflerin kullanım sıklığını içeren tablo aşağıda verilmiştir.
Tablodan da görüleceği gibi, ingilizce dilinde en sık kullanılan harf ‘E’ harfidir, ikinci en sık kullanılan harf ise ‘T’ harfidir. Eğer şifreli metin uzunsa en çok gözüken harf büyük olasılıkla düz metindeki E’ye denk gelir ve ikinci en çok gözüken harfte büyük olasılıkla T’ye denk gelir, bu şekilde devam eder.
İkame şifresi, böyle bir analitik saldırı ile kolayca kırılabilir. Şifrenin en büyük zayıflığı, düz metnin her karakterinin her seferinde aynı karakterle değiştirilmesidir.
Sezar Şifresi
Sezar şifresi diğer adıyla kaydırma şifresi, aslında ikame şifresinin özel bir halidir. Kaydırma şifresinin kendisi son derece basittir: Düz metnin her harfini alfabede sabit sayıda konumla kaydırırız. Örneğin, 3 konum kaydırırsak, A yerine d, B yerine e vb. gelirdi. Tek sorun alfabenin sonuna doğru ortaya çıkıyor: X, Y, Z ile ne yapmalıyız? Bu durumda başa dönüyoruz. Bu durumda, X->a, Y->b ve Z->c ile yer değiştirilir.
Tarihte Julius Sezar bu şifreyi üç konumlu bir kaydırma ile kullanmıştı. Sezar şifresi ismi buradan gelmektedir.
Şifrenin matematiksel ifadesi için alfabenin harfleri aşağıdaki tabloda gösterildiği gibi sayısal olarak kodlanmıştır.
Anahtar k = 17 olsun ve düz metin:
ATTACK = x1,x2,…,x6 = 0,19,19,0,2,10 olsun.s
Şifreli metin şu şekilde hesaplanır:
y1,y2,…,y6 = 17,10,10,17,19,1 = rkkrtb
İkame şifresinde olduğu gibi, kaydırma şifresi de hiç güvenli değildir. Aynı şekilde bu şifreyi kırmak için de iki yolumuz var:
1. Anahtar uzayı 26 anahtardan oluştuğu için, belirli bir şifreli metnin şifresini tüm olası 26 anahtarla çözmeye çalışarak, kaba kuvvet yöntemiyle, kırabiliriz. Ortaya çıkan düz metin okunabilir ise, anahtarı bulmuş oluruz.
2. İkame şifresindeki gibi frekans analizi kullanılabilir.
Playfair şifresi
Charles Wheatstone tarafından 1854’de önerilmiştir , Lord Playfair kullanımını teşvik etmiştir. Birden fazla harf değişimi kullanılarak daha güçlü bir şifreleme yapılması hedeflenmiştir.
Şifrelemede anahtarın ve alfabenin geri kalanının yer aldığı 5×5’lik bir tablo kullanılır. Anahtarı ve 4 basit kuralı bilmek sistemi kullanmak için yeterlidir.
Kurallar:
1- Eğer iki harf de aynıysa ya da en son tek bir harf kaldıysa, ilk harften sonra bir “X” harfi eklenir.
2- Eğer iki harf aynı satırdaysa, her harf sağındaki harfle değiştirilir. (bir harf eğer satır sonundaysa, satır başındakiyle değiştirilir)
3-Eğer iki harf aynı sütundaysa, her harf altındaki harfle değiştirilir(bir harf eğer sütunun sonundaysa, sütun başındakiyle değistirilir)
4-Eğer harfle aynı sütun veya satırda değilse, harfler bir dikdörtgenin iki köşesi olarak düşünülür ve harfler karşılarındaki köşede yer alan harf ile değiştirilir. Bir örnekle açıklayalım.
mesajımız: pwnlabme
şifremiz: keyword
şifremiz: keyword
Bu durumda tablo şekildeki gibi olacaktır. Önce anahtar yazılır. Aynı harfler bir kez kullanılır. 5×5’lik tablonun geri kalanı, kalan harflerle doldurulur. 25 harfe inmek için I ve J harfi aynı kutuya konur.
düz metin: pw nl ab me için
şifreli metin: qy gs bc kn olmuş olur.
Plafair gibi ikili harf değişim sistemleri iki harfli frekans analizine dayanıklı değildirler. Bilgisayarlar ile kısa uzunluktaki harf değişimlerini kırmak mümkündür.
Şifreyi kırmak için dilde ikili harf gruplarının ne sıklıkla görüldüğü hesaplanır ve bunun üzerinden mesajın şifresi çözülmeye çalışılır. Bu işlem başta göz korkutabilir ancak bir bilgisayar için hiç de zor değildir. Güçlü bir bilgisayar sistemi, 8-harf’e kadar frekans analizini yapabilecek yeterliktedir
one-time pad
Adına kırılmaz şifreleme de diyebileceğimiz bu yöntem çok güvenilir olmasına rağmen pratikte uygulanması oldukçca zordur. Bu yöntemde, tek sefer kullanılacak rastgele karakterlerden/bitlerden oluşan uzun bir dizi üretilir. Düz metin, one-time pad’le XOR işlemine sokularak şifreli metin elde edilir. Şifreli metin ile one-time pad’in XOR işlemine sokulması düz metni geri getirir.
one-time pad, isminden de anlaşılacağı gibi tek kullanımlık ve tamamen rastgele üretilmiş olmalıdır. .Aynı anahtarın tekrar kullanımı şifrelemede zayıflığa yol açar ve kırılabilmesine olanak tanır.
Bu şifreleme tekniği kusursuz gizlilik sağlar çünkü şifreli metin düz metin hakkında hiçbir bilgi içermemektedir. Frekans analizi bu teknikte kullanılamaz. Bitler yerine harfler ya da karakterler üzerinde çalışan halini de kullanmak mümkündür.
Bunun yanında, anahtarın çok uzun(mesaj ile aynı uzunlukta) ve dağıtımının zor olması bu şifreyi pratikte kullanmayı zor bir hale getirmektedir.
Moderatör tarafında düzenlendi: