BÖLÜM 1 : KLASİK KRİPTOGRAFİ
1. GİRİŞ : Örnek
Kriptosistemler
Kriptografinin temel amacı, genellikle Alice ve Bob
olarak adlandırılan iki kişinin güvenli olmayan bir kanal üzerinden Oscar
olarak adlandırılan düşmanın ne söylendiğini öğrenmesi önlenerek haberleşmesini
sağlamaktır. Bu kanal bir telefon hattı veya bilgisayar ağı olabilir. Alice’in
Bob’a göndermek istediği bilgi (plaintext) İngilizce bir metin, nümerik bir
veri veya yapısı tamamen keyfe bağlı olan herhangi birşey olabilir. Alice,
önceden kararlaştırılan bir anahtar kullanarak plaintext’i şifreler ve
şifrelenen ciphertext’i kanal üzerinden gönderir. Oscar kanal içindeki
ciphertext’i gözler. Ancak plaintext’in ne olduğunu tespit edemez. Bob ise
şifreleme anahtarını bildiği için ciphertext’in şifresini çözer ve plaintext’i
elde eder.
Bu kavram aşağıdaki matematiksel yaklaşım kullanılarak daha biçimsel olarak
tanımlanmıştır :
TANIM 1.1 Bir kriptosistem aşağıdaki koşulları sağlayan bir beşliden (P, C, k, E, D) meydana
gelir.
- P ; Plaintext’lerin sonlu kümesidir.
- C ; Ciphertext’lerin sonlu kümesidir.
- K ; anahtar alan, anahtarların sonlu kümesidir.
- Her K e k olmak üzere bir eK e E şifreleme kuralı ve buna bağlı olarak bir dK e D şifre çözme kuralı vardır. Her eK : P à C ve dK : C à P fonksiyonları her plaintext xeP için dK (eK (x)) = x sağlar.
Burada temel özellik 4. koşuldur ve
anlatılmak istenen eK
kullanılarak bir plaintext(x) şifrelenir ve elde edilen ciphertext daha sonra dK kullanılarak çözülür ve orjinal plaintext x
elde edilir.
Alice ve Bob aşağıdaki protokolü belirli bir kriptosistem
kullanarak çalıştıracaklardır. Öncelikle, rasgele bir anahtar seçerler (Ke k). Anahtar seçme işlemi Alice ve Bob
aynı yerdeyken ve Oscar tarafından gözetlenmiyorken ya da farklı yerlerdeyken
ancak güvenli bir kanala eriştikleri zaman yapılabilir.
Şekil 1.1 Haberleşme Kanalı
Daha sonra Alice’in Bob’a
güvenli olmayan bir kanal üzerinden bir mesaj göndermek istediğini varsayalım
ve bu mesaj örneğin şu şekilde olsun:
x = x1 x2 ....... xn , n
³ 1 xi e P , 1 £ i £ n
Her xi önceden belirlenen K anahtarı ile ek şifreleme
kuralı kullanılarak şifrelenir. Alice, yi=ek(xi) , 1<=i<=n’i hesaplar ve sonuç olarak
ciphertext’i (y) elde ederek kanal üzerinden gönderir.
y = y1 y2 .......yn
Bob y = y1 y2 .......yn’i aldığı zaman dk şifre çözme kuralını kullanarak
şifreyi çözer ve x = x1
x2 .......
xn plain text’i elde eder. Bu haberleşme kanalı Şekil
1.1’de gösterilmektedir.
Açıkça görüldüğü üzere,
her şifreleme fonksiyonu (ek) bire-bir fonksiyon olmalıdır. Aksi
halde, şifre çözme belirli bir yöntem kullanılarak geliştirilemez. Örneğin
eğer,
y = ek(x1)
= ek(x2) x1
º x2
olduğu bir durumda Bob,
y’nin x1 ile mi yoksa x2 ile mi çözüleceğini bilemez.
Eğer P=C ise, her şifreleme fonksiyonu bir permütasyondur. Yani, eğer
plaintext’lerin ve ciphertext’lerin kümesi özdeş ise, her şifreleme fonksiyonu
bu kümenin elemanlarını tekrardan düzenler.
1.1 Kaydırma Şifresi (The Shift Cipher)
Bu bölümde,
modüler aritmetiğe dayanan kaydırma şifresini tanımlayacağız. Ancak önce
modüler aritmetikle ilgili bazı temel tanımlamaları gözden geçirelim.
TANIM 1.2 a ve b’nin
tamsayılar, m’nin pozitif bir tamsayı olduğunu varsayalım.Eğer m,b-a ’ı
bölebiliyorsa a º b (mod m) yazabiliriz. a º b (mod m) deyimi
“a, b’ye mod m’e göre denktir” şeklinde okunur. m tamsayısına modüler
denir.
a ve b’yi m ile bölüm ve kalanı elde etmek için
böldüğümüzü varsayalım. Kalan 0 ile m-1 arasında bir değer alacaktır. Bu; 0£ r1 £ m-1
ve 0£ r2 £ m-1 olduğu durumlarda a=q1m+r1 ve b=q2m+r2 eşitliklerini verir. Bu eşitliklerden sadece
ve sadece, r1 = r2
olduğu zaman a º b (mod m) olabileceğini kolayca görebiliriz. b mod m ifadesini, a; m ile
bölündüğünde kalanı göstermek için kullanacağız. Böylece, a º b (mod m) sadece ve sadece
a mod m = b mod m olduğu durumda doğrudur. Burda a yerine a mod m koyduk,
a’ya mod m’e göre indirgenmiş denir.
UYARI : Birçok bilgisayar
programlama dili a mod m’i, a ile aynı işarete sahip –m+1,....,m-1 aralığında
kalan olarak tanımlar. Örneğin, -18 mod 7, yukarda tanımladığımız gibi 3 yerine
–4 olacaktır. Ancak a mod m’i her zaman n-negatif olarak tanımlamak daha
kullanışlı olacaktır.
Aritmetik modül m:Zm, + ve x işlemleri ile {0,........,m-1}
kümesi olarak tanımlanır. Zm’deki toplama ve çarpma şlemleri çıkan
sonuçların modül m’e indirgenmesi dışında bilinen toplama ve çarpma işlemleri
ile aynıdır.
Örneğin, 11x13’ü Z16’da
hesaplamak isteyelim. Tamsayılar olarak 11x13=143. 143’ü mod 16’ya indirgemek
için bölme işlemini gerçekleştiririz: 143 = 8x16+15. Böylece 143 mod 16 = 15
yani 11x13=15 Z16’dır.
Zm’de
yaptığımız bu toplama ve çarpma işlemlerinin tanımları, aritmetikte birçok
benzer kuralı karşılamaktadır. Aşağıda bu özellikler listelenmiştir:
- Toplamanın kapalılık özelliği, herhangi
bir a, b e Zm için a+b e Zm’dir.
- Toplamanın değişme özelliği, herhangi a, b e Zm
için a+b = b+a’dır.
- Toplamanın dağılma özelliği, herhangi a, b, c e Zm için (a+b)+c = a+(b+c)
- Toplamada etkisiz eleman 0’dır, herhangi
bir a e Zm için a+0 = 0+a = a
- Herhangi bir a e Zm’in toplamaya göre tersi m-a’dır, a+(m-a) = (m-a)+a = 0
- Çarpmanın kapalılık özelliği, herhangi a, b e Zm
için ab e Zm
- Çarpmanın değişme özelliği, herhangi a, b e Zm
için ab = ba
- Çarpmanın dağılma özelliği, herhangi a, b, c e Zm için (ab)c = a(bc)
- Çarpmada etkisiz eleman 1’dir, herhangi
bir a e Zm için ax1 = 1xa =
a
- Çarpmanın toplama üzerinde dağılma özelliği
vardır, herhangi a, b, c e Zm için, (a+b)c =
(ac)+(bc) ve a(b+c) = (ab)+(ac)
Zm’de toplamaya göre tersi alınabildiği için, 11+13 mod 31=24. diğer bir
yolda, önce 11’den 18’i çıkarıp –7’yi elde ederiz ve daha sonra –7 mod 31=24.
ŞEKİL 1.2
Kaydırma Şifresi
(Shift Cipher)
|
Kaydırma şifresini Şekil 1.2’de gösterdik. İngiliz
alfabesinde 26 harf olduğundan şifreleme Z26’da tanımlandı. Kaydırma
şifresi yukarda tanımlandığı gibi bir kriptosistemi şekillendirir. Örneğin,
bütün x e Z26’da tanımlandı. Kaydırma şifresi yukarıda tanımlandığı gibi
bir kriptosistemi şekillendirir. Örneğin, bütün x e Z26 için dK(eK(x))
= x’dir.
UYARI : k = 3
için kriptosistem Caesar şifresi olarak bilinir.
Kaydırma
şifresini İngilz alfabesindeki harfleri mod 26’ya göre A -> 0, B -> 1,
……Z -> 25 şeklinde şifreleyerek kullanacağız.
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
Örnek 1.1
Kaydırma şifresi k=11 olsun ve plaintext’te
wewillmeetatmidnight. olsun.
Öncelikle plaintext’i
yukarıdaki tabloyu kullanarak tamsayılara çeviririz.
22 4 22
8 11 11
12 4 4 19
0 19
12 8 3
13 8 6
7 19
Daha sonra herbirine mod 26’ya göre 11 ekleriz :
7
15 7 19
22 22 23
15 15 4
11 4
23 19 14
24 19 17
18 4
Son olarak, bu tamsayıları ciphertxt’i elde etmek
üzere alfabetik karakterlere çeviririz.
HPHTWWXPPELEXTOYTRSE.
Ciphertext’in şifresini
çözmek için, Bob öncelikle harfleri tamsayılara çevirir, sonra her değerden mod
26’a göre 11’i çıkarır ve son olarak tamsayıları alfabetik sayılara
dönüştürerek plaintext’i elde eder.
NOT: Yukarıdaki örnekte okunabilirliliği arttırmak için
büyük harfler, plaintext için de küçük harfler kullandık.
Eğer bir kriptosistem pratik olarak kullanılacaksa, bir
takım özellikleri sağlamalıdır:
- Her şifreleme fonksiyonu ek ve her
şifre çözme fonksiyonu dk hesaplanabilir olmalıdır.
- Oscar, cipher text y’i gördüğünde, kullanılan
K anahtarını ya da plaintext x’i belirleyememelidir.
İkinci özellik “güvenlik” fikrini tanımlamaktadır. Verilen bir cipher text
y’den K anahtarını hesaplamaya çalışma işlemine kriptoanaliz denir. Eğer Oscar
K’yı tespit edebilirse, Bob’un yaptığı gibi dk ile y’nin şifresini
çözebilir. K’nın tesbit edilmesi en az plaintext x’in tahmin edilmesi kadar zor
olmalıdır.
Shift Cipher, güvenli bir yöntem değildir. Çünkü “ayrıntılı anahtar arama
yöntemi” ile kriptoanaliz edilebilir. Sadece 26 mümkün anahtar olabileceği
için, anlamlı bir plaintext elde edene kadar olası bütün şifre çözme kuralı (dk)’yı
denemek kolaydır. Bu aşağıdaki örnekte gösterilmiştir.
Örnek 1.2
Verilen ciphertext ;
JBCRCLQRWCRVNBJENBWRWN,
Şifre çözme anahtarları d0,
d1,......vb. kullanarak şunları elde ederiz.
jbcrclqrwcrvnbjenbwrwn
iabqbkpqvbqumaidmavqvm
hzapajopuaptlzhclzhclzupul
gyzozinotzoskygbkytotk
fxynyhmnsynrjxfajxsnsj
ewxmxglmrxmqiweziwrmri
dvwlwfklqwlphvdyhvqlqh
cuvkvejkpvkogucxgupkpg
btujudijoujnftbwftojof
astitchintimesavesnine
Bu noktada, plaintext’i belirleyebildik. Anahtar K=9’dur.
Ortalama olarak bir plaintext 26/2 = 13 şifre çözme kuralı denenerek hesaplanabilir.
Yukardaki örnekte görüldüğü üzere, bir kriptosistemin güvenli olması için,
örneğin anahtar alanın çok büyük olması durumunda olacağı gibi ayrıntılı
anahtar arama yönteminin mümkün olmaması gerekir. Ancak tahmin edilebileceği
gibi büyük bir anahtar alan da güvenliği garanti edebilmek için yeterli
değildir.
1.1.2
Değiştirme
Şifresi (The Substitution Cipher)
Diğer bilinen kriptosistemlerden bir tanesi de
değiştirme şifresidir. Bu kriptosistem yüzlerce yıl boyunca kullanılmıştır. Bu
şifre Şekil 1.3’de tanımlanmıştır.
ŞEKİL 1.3
Değiştirme şifresi
|
Örnek olarak, plaintext karakterleri küçük harflerle ve
ciphertext karakterleri de büyük harflerle yazılmıştır.
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
X
|
N
|
Y
|
A
|
H
|
P
|
O
|
G
|
Z
|
Q
|
W
|
B
|
T
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
S
|
F
|
L
|
R
|
C
|
V
|
M
|
U
|
E
|
K
|
J
|
D
|
I
|
Şifre çözme fonksiyonu
alfabetik sıranın tersidir.
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
d
|
l
|
r
|
y
|
v
|
o
|
h
|
e
|
z
|
x
|
w
|
p
|
t
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
b
|
g
|
f
|
j
|
q
|
n
|
m
|
u
|
s
|
k
|
a
|
c
|
i
|
dp (A) = d , dp(B) = l , .......vb.
Okuyucu bu şifre çözme fonksiyonunu kullanarak aşağıdaki ciphertext’i
şifreleyebilir :
MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA.
Değiştirme şifresi için
gerekli olan bir anahtar sadece 26 alfabetik karakterin bir permütasyonundan
meydana gelmektedir. Bu permütasyonların sayısı 4.0x1026’dan daha
fazla olan 26!’dır. Böylelikle, bir bilgisayar için bile bir ayrıntılı anahtar
araması mümkün değildir. Ancak daha sonra göreceğimiz diğer yöntemlerle
Değiştirme şifresi kolayca kriptoanaliz edilebilir.
1.1.3
Affine
Şifresi
Değiştirme şifresi, kaydırma şifresinin 26
elemanının olası 26!’dan sadece 26’sını içeren özel bir durumudur. Kaydırma
şifresinin başka bir özel durumu da şimdi bahsedeceğimiz Affine şifresidir.
Affin şifresinde, şifreleme fonksiyonları;a,b e Z26
e(x) = (ax+b) mod 26
fonksiyonları şeklinde sınırlandırılır. Bu fonksiyonlara Affin
fonksiyonları denir.(a = 1 iken yerdeğiştirme şifresi elde edilir.)
Şifre çözmenin mümkün
olması için, bir Affin fonksiyonunun ne zaman bire bir olacağını sormak
gereklidir. Başka bir deyişle, herhangi y e Z26 için,
ax+b º y (mod26)
denkliğinin x için tek bir çözümü olmasını isteriz. Bu eşleşim,
ax º y-b
(mod26) ‘ya eşittir.
Bu durumda y, Z26’da farklı değerler aldığı müddetçe, y-b’de Z26’da
farklı değerler alacaktır.
Bu eşleşim her y için sadece ve sadece gcd(a,26) = 1 olduğu zaman tek bir
çözüme sahiptir. (gcd fonksiyonu argümanların en büyük ortak bölenini
göstermektedir.) Öncelikle, gcd(a,26) = d >1 olduğunu varsayalım. Buna göre, ax º 0 (mod 26) denkliği Z26’da x = 0 ve x
= 26/d olmak üzere en azından iki farklı çözüme sahiptir. Bu durumda, e(x) =
ax+b mod 26 bire bir fonksiyon değildir ve buna bağlı olarak da doğru bir
şifreleme fonksiyonu da olamaz.
Örneğin, gcd(4,26) = 2
olduğu için, 4x+7 doğru bir şifreleme fonksiyonu değildir. Çünkü herhangi bir x
e Z26 için x ve x+13 aynı değeri şifreleyecektir.
Şimdi de gcd(a,26) = 1
olduğunu varsayalım. Herhangi x1 ve x2 için
ax1 º ax2 (mod 26) olduğunu varsayalım.
a(x1-x2) º 0 (mod 26)
,
26 | a(x1-x2).
Şimdi bölmenin bir özelliğini kullanacağız. Eğer gcd(a,b) = 1 ve a | bc
ise, a | c’dir.
gcd (a,26) = 1 olduğu için 26 | a(x1-x2)’i
26 | (x1-x2) şeklinde yazabiliriz.
Örneğin, x1 º x2 (mod 26)’dır.
Bu noktada, eğer gcd
(a,26) = 1 ise ax º y (mod 26) denkliğinin Z26’da en çok bir çözümü vardır. Buna
bağlı olarak, x’in Z26’da
değişmesine izin verirsek, ax mod 26; 26 farklı değer alır. Buda her değeri
sadece bir kere alması anlamına gelmektedir. Herhangi bir y e Z26 için ax º y (mod 26) denkliğinin y için tek bir çözümü vardır.
TEOREM 1.1
ax º b (mod m) denkliğinin her b e Zm için, sadece gcd (a,m) = 1
olduğunda tek bir x e Zm çözümü vardır.
26 = 2 x 13 olduğundan, gcd(a,26) = 1 için a e Z26 değerleri , a = 1, 3, 5, 7, 9, 11,
15, 17, 19, 21, 23, ve 25’dir. b parametresi Z26’da herhangi bir
eleman olabilir. Buna bağlı olarak Affine şifresinin 12 x 26 = 312 anahtarı
vardır. (tabiki buda güvenlik için yeterli değildir.)
TANIM 1.3 a ³ 1 ve m ³ 2 tamsayılar olsun. Eğer gcd(a,m) = 1 ise a ve m
aralarında asaldır. m ile aralarında asal olan Zm’deki tamsayıların
sayısı f(m) ile gösterilir. (Bu fonksiyona Euler phi-fonksiyonu denir.)
TEOREM 1.2
pi’lerin asal sayı ve ei > 0.1 £ i £ n olduğu yerlerde
n
m = P pi ei
olduğunu varsayalım.
i=1
Daha sonra,
n
f(m) = P (pi ei
- pi ei –1 )
i=1
Zm üzerindeki Affine şifresi içindeki anahtarların sayısı yukarıdaki
formülde verilen mf(m)’dir. (Şifreleme fonksiyonu e(x) = ax+b olduğu durumda b için seçimlerin
sayısı m, ve a için seçimlerin sayısı f(m)’dir. ) Örneğin m=60 olduğu zaman f(60) = 2x2x4 = 16 ve Affine şifresindeki
anahtarların sayısı da 960’dır.
Şimdi de Affine
şifresinde, m=26 modülle şifre çözme işlemini düşünelim. gcd(a,26) = 1 olduğunu
varsayalım. Şifre çözmek için, x için y º ax+b (mod 26) denkliğini çözmemiz gerekir.
Yukarıda anlatılanlar denkliğin Z26’da tek bir çözümü olacağından
bahsetmektedir. Ancak bu çözüm bize çözümü bulmak için etkin bir yöntem
sunmamaktadır. Bizim için gerekli olan şey bunu yapabilmek için etkin bir
algoritmadır. Neyseki, modüler aritmetikteki bazı sonuçlar bize istenilen şifre
çözme algoritmasını sağlamaktadır.
TANIM 1.4 a e Zm olsun.a’nın tersi aa-1 º a-1a º 1 (mod m) gibi bir a-1 e Zm’dir.
ŞEKİL 1.4
Affine Şifresi
|
y º ax+b (mod 26) denkliğini düşünelim. Bu denklik ax º y-b (mod 26)’ya eşittir. Denkliğin her iki
tarafını da a-1 ile çarpalım :
a-1 (ax) º a-1 (y-b) (mod 26)
a-1 (ax) º (a-1a) x º 1x º x
x º a-1 (y-b) (mod 26)
Şifre çözme fonksiyonu da,
d(y) = a-1 (y-b) (mod 26)
Örnek 1.3
K = (7,3) olsun. 7-1 mod 26 = 15’dir. Şifreleme fonksiyonu,
ek(x) = 7x + 3 ,
ve buna bağlı olarak şifre çözme fonksiyonu da,
dk(y) = 15 (y-3) = 15y – 19
dk(ek(x)) = dk(7x+3)
=15 ( 7x + 3 ) – 19
= x + 45 – 19
= x
Örneklemek için hot plaintext’ini şifreleyelim. Öncelikle, h, o, t
harflerini modül 26’ya göre 7, 14 ve 19 olarak dönüştürürüz. Şimdide
şifreleyelim :
7x7+3 mod 26 = 52 mod 26 = 0
7x14+3 mod 26 = 101 mod 26 = 23
7x19+3 mod 26 = 136 mod 26 = 6
Böylece üç ciphertext karakteri AXG’e karşılık gelen 0, 23 ve 6’dır.
1.1.4
Vigenere
Şifresi
ŞEKİL 1.5
Vigenere Şifresi
|
Kaydırma şifresinde ve Kaydırma şifresinde bir
anahtar seçildikten sonra her alfabetik karakter tek bir alfabetik karaktere
haritalanır. Bu nedenle, bu kriptosistemlere monoalfabetik denir. Şekil
1.5’de Vigenere Şifresi olarak adlandırılan monoalfabetik olmayan bir
kriptosistemi gösterdik.
Daha önceden tanımladığımız A -> 0, B -> 1, ........, Z -> 25 bağlantıları
kullanılarak, her K anahtarını; anahtar kelime(keyword) denilen m uzunluklu bir
alfabetik dizi ile bağlayabiliriz. Vigenere Şifresi, her plaintext elemanı m
alfabetik karaktere eşit olduğu zaman bu karakterleri şifreler.
Küçük bir örnek yapalım.
Örnek 1.4
m = 6 ve anahtar kelime de
CIPHER olsun. Bunun numerik eşdeğeri,
K = (2,8,15,7,4,17)’dir. plaintext’in aşağıdaki diziden oluştuğunu
varsayalım:
Thiscryptosystemisnotsecure.
Bu plaintext elemanlarını aşağıdaki gibi mod 26’ya göre 6’lı gruplar
halinde yazıp, anahtar kelimeyi ekleriz:
Bu alfabetik eşitliğin ciphertext dizisi :
VPXZGIAXIVWPUBTTMJPWIZITWZT.
Şifre çözmek için, aynı anahtar kelimeyi kullanırız ancak, toplama yerine
mod 26’a göre çıkarma yaparız. Vigenere şifresinde, m uzunluğundaki anahtar
kelimelerin sayısı 26m ‘dir.m uzunluğunda anahtar kelimeye sahip bir
Vigenere şifresinde, bir alfabetik karakter; m alfabetik karakterlerden birine
haritalanabilir. (anahtar kelimenin m farklı karakter içerdiğini varsayarsak.)
Böyle bir kriptosisteme polialfabetik denir. Genel olarak, kriptoanaliz
polialfabetik kriptosistemlerde , monoalfabetik kriptosistemlerde olduğundan
daha zordur.
1.1.2
Hill
Şifresi
Bu bölümde Hill Şifresi olarak adlandırılan başka
bir polialfabetik kriptosistemi tanımlayacağız. Bu şifreleme 1929 yılında
Lester S. Hill tarafından bulunmuştur. m pozitif bir tamsayı olsun ve P = C =
(Z26)m olarak tanımlansın. Buradaki temel fikir, bir
plaintext elemanı içindeki m alfabetik karakterlerin, m lineer kombinasyonunu
almaktır. Böylece, bir ciphertext elemanı içinde m alfabetik karakter üretilir.
Örneğin, m = 2 ise, bir plaintext elemanını x = (x1
, x2) ve ciphertext elemanını
da
y = (y1 , y2) olarak yazabiliriz. Burada, y1; x1 ve x2’nin lineer bir
kombinasyonu olucaktır. Aynı durum y2 içinde geçerlidir.
y1
= 11x1 + 3x2
y2 = 8x1 + 7x2 ’i ele alalım.
Tabiki, bunu daha kısa olarak aşağıdaki gibi matris gösterimiyle yazmak da
mümkündür :
Genel olarak, K anahtarı için mxm’lik bir matris kullanacağız. x = (x1,........
,xm) e P ve K e k için, y = ek(x) = (y1,....,ym)
aşağıdaki gibi hesaplanır :
Yani, y = x K’dır. Plaintext’ten ciphertext’i bir lineer dönüşüm ile elde
ederiz. Şifre çözmenin nasıl çalışacağını yani y’den x’i nasıl
hesaplayacağımızı düşünmemiz gerekiyor. Şifre çözmek için K-1 ters
matrisini kullanacağız. Ciphertext şifresinin çözümü için x = yK-1
formülü kullanılır.
Eğer A = (ai,j)
l x m matrisi ve B = (bj,k) m x n matrisi ise, matris çarpımı AB =
(ci,k)’yı aşağıdaki formülle tanımlarız :
m
ci,k = S ai,j
bj,k 1 £ i £ l ve 1 £ k £ n
j=1
mxm birim matris Im ile gösterilir. 2x2’lik birim matris :
Herhangi bir lxm A matrisi ve mxn B matrisi için AIm = A ve BIm = B’dir. mxm A matrisinin
tersi A-1 matrisi için AA-1
= A-1A = Im. Her matrisin ters matrisi yoktur. Ancak eğer
tersi varsa, bu tektir.
Elimizdeki bu açıklamalarla, yukarıda verilen şifre çözme fonksiyonunu
çıkarmak kolaydır :
y = xK denkleminde her iki tarafıda
K-1 ile çarparak :
y K-1 = (xK) K-1 = x (K K-1)
= xIm = x elde edilir.
Yukarıdaki şifreleme matrisinin Z26’da tersi vardır :
Şimdi Hill Şifresindeki şifrelemeyi ve şifre çözmeyi göstermek için bir
örnek yapalım :
det A = a1,1 a2,2 – a1,2
a2,1
Determinantlarda iki önemli özelliklerden bir tanesi det Im = 1 , diğeride
det(AB) = det A x det B
Bir K matrisinin determinantı sıfırdan farklı olduğu durumda tersi vardır.
Ancak biz Z26’da işlemlerimizi yaptığımız için; K matrisinin tersi
sadece gcd(det K,26) = 1 olduğu
durumlarda vardır.
Bunu kanıtlamak için öncelikle gcd(detK,26) = 1 olduğunu varsayalım. O
zaman det K’nın Z26’da tersi vardır. 1 £ i £ m , 1 £ j £ m için K matrisinin i. sırası ve i. sütunu
silinerek elde edilmiş bir Kij matrisi tanımlayalım. Değeri (-1) i+j det Kji olan
bir K* matrisi tanımlayalım. (K*
matrisine adjoint matris denir.)
K-1 = (det K)-1 K*
Buna bağlı olarak K’nın tersi alınabilir.
Tersi olarak, K’nın K-1 tersi olduğunu varsayalım.
Determinantların çarpım kuralından;
1 = det I = det (K K-1) = det K det K-1.
Buna bağlı olarak da K, Z26’da tersi alınabilir bir matristir.
Şekil 1.6’da Hill Şifresi ayrıntılı olarak tanımlanmıştır.
ŞEKİL 1.6
Hill Şifresi
|
ŞEKİL 1.7
Permütasyon Şifresi
|
1.1.2
Permütasyon
Şifresi
Buraya kadar bahsettiğimiz bütün kriptosistemler kaydırmayı içeriyordu.
Plaintext karakterleri yerine, farklı ciphertext karakterlerini koyuyorduk.
Permütasyon şifresinde ise plaintext karakterleri değiştirilmez ancak tekrardan
düzenlenerek yerleri değiştirilir.
Aşağıda Permütasyon şifresi ile ilgili bir örnek verilmiştir:
Örnek 1.6
m = 6 ve anahtarda aşağıdaki gibi p permütasyonu olsun :
1
|
2
|
3
|
4
|
5
|
6
|
3
|
5
|
1
|
6
|
4
|
2
|
Ters permütasyon p-1’de aşağıdaki gibidir :
1
|
2
|
3
|
4
|
5
|
6
|
3
|
6
|
1
|
5
|
2
|
4
|
Plaintext’in
“shesellsseashellsbytheseashore.”
olsun.
Öncelikle plaintext’i altı harf olacak biçimde gruplara ayırırız.
shesel | lsseas | hellsb | ythese | ashore
Daha sonra bu altı harfli grupları p
permütasyonuna göre tekrardan düzenleriz.
EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS
Böylece ciphertext
EESLSHSALSESLSHBLEHSYEETHRAEOS. olur.
p-1 ters permütasyonu kullanılarak
ciphertext’in şifresi benzer şekilde çözülür.
Gerçekte, Permütasyon
şifresi; Hill şifresinin özel bir durumudur. {1,......m} kümesinin verilen bir p
permütasyonu ile aşağıdaki formülle bağlantılı bir mxm’lik
Kp = (kij) permütasyon matrisi tanımlayabiliriz :
Yukarıdaki örnekte kullanılan p
permütasyonu için permütasyon matrisleri :
Bu noktaya kadar incelediğimiz tüm kriptosistemlerde, plaintext elemanları
aynı K anahtarı kullanılarak şifrelendi. Ciphertext dizisi y aşağıdaki gibi
elde edildi :
y = y1y2........ = eK(x1)
eK(x2)..............
Bu tipteki kriptosistemlere blok şifreler denir.
Başka bir yaklaşım ise
stream şifrelerini kullanmaktır. Buradaki temel fikir bir
z =z1 z2 ........ anahtar akımı meydana getirmek ve
plaintext dizisi x = x1 x2........’i aşağıda tanımlanan
kurala göre şifrelemek için kullanmaktır.
y = y1y2........ = ez1(x1)
ez2(x2)..............
K e k anahtar ve
x1 x2........ de plaintext olsun. fi
fonksiyonu zi (anahtar akımının i. elemanı)’yi oluşturmak için
kullanılır. İlk i-1 plaintext
karakterleri :
zi = fi (K, x1........,xi-1)
Anahtar akım elemanı zi , xi’i şifrelemek için kullanılır. Bu
nedenle x = x1 x2........ plaintext’ini şifrelemek
için z1 , y1 , z2
, y2 hesaplarız. y1y2........
ciphertext dizisinin şifresini çözmek için de
z1 , x1 , z2 , x2 hesaplanır.
TANIM 1.6 Bir Stream Şifresi aşağıdaki koşulları sağlayan
(P, C, k, L, F, E, D)’dan oluşmaktadır.
1.
P ;
plaintextlerin sonlu kümesidir.
2.
C ;
ciphertextlerin sonlu kümesidir.
3.
k ; anahtar alan, anahtarların sonlu kümesidir.
4.
L ; keystream alfabesi denilen sonlu bir
kümedir.
5.
F = (f1,f2,......) keystream generator. i ³ 1 için;
Fi : k x Pi-1
-> L
6.
Her z e L için, ez e E olmak üzere bir şifreleme fonksiyonu ve ve buna
bağlı olarak
dz e D olmak üzere de bir şifre çözme fonksiyonu
vardır. ez : P -> C ve dz : C -> P fonksiyonları her x e P plaintext’i için dz(ez
(x) = x’dir.
Block
Cipher’ı, stream cipher’ın özel bir durumu gibi düşünebiliriz : tüm i ³ 1 için
zi = K. Bir stream cipher eğer
keystream plaintext dizisinden bağımsızsa senkron’dur ve bir stream cipher tüm
i ³ 1 tamsayıları için d (zi+d
= zi)periyodu ile periyodiktir.
Stream
cipher’lar çoğunlukla ikili alfabelerle gösterilirler. Örneğin, P = C = L = Z26
Bu durumda, şifreleme ve şifre çözme işlemleri :
ez (x) = (x +
z) mod 2
ve
dz (y) = (y +
z) mod 2
Örnek 1.7
M = 4 ve keystream kuralı da:
zi + 4 = zi
+ zi+1 mod 2 olsun. (i ³ 1)
Eğer keystream
(0, 0, 0, 0)’den farklı herhangi bir vektör ile başlatılmışsa, o zaman
periyodu 15 olan bir keystream elde deriz. Örneğin, (1, 0, 0, 0) ile başlayan
keystream :
1, 0, 0, 0, 1, 0, 0, 1, 1,
0, 1, 0, 1, 1, 1,....................
Lineer Geribeslemeli Kaydırma Regiterı (LFSR)
Bir kaydırma registerını m safhada kullanırız. (k1,.....km)
vektörü kaydırma registerını başlatmak için kullanılır. Herbir birimde,
aşağıdaki işlemler gerçekleştirilir :
1.
k1
bir sonraki keystream biti olarak bağlantı kurulur.
2.
k2,....,km
sola doğru bir safha kaydırılır.
3. km’in
yeni değeri, m-1
S cj kj+1
j = 0
olarak hesaplanır. (Bu “lineer geribeslemedir.”)
Örnek 1.8
Anahtar K = 8 ve plaintext
rendezvous. olsun.
Öncelikle plaintext’i bir sıra tamsayıya dönüştürürüz:
17 4 13
3 4 25
21 14 20
18
Keystream aşağıdaki gibidir :
8 17 4
13 3 4
25 21 14
20
İlgili elemanlara mod 26’a göre ekleme yaparız :
25
21 17 16
7 3 20
9 8 12
ve alfabetik şekilde ciphertext :
ZVRQHDUJIM.
Şimdi Alice’in ciphertext2in şifresini nasıl çözeceğine bakalım. İlk olarak
alfabetik diziyi nümerik diziye çevirir:
25
21 17 16
7 3 20
9 8 12
Daha sonra sırasıyla x1 , x2 ,......hesaplar:
x1 = d8(25) = 25-8 mod 26 = 17
x2 = d17(21) = 21-17 mod 26 = 4
Her seferinde başka bir plaintext karakteri bulur ve bulduğu her karakteri
bir sonraki keystream elemanını bulmak için kullanır.
ŞEKİL 1.9
Autokey Şifresi
|
Autokey Şifresinde sadece 26 olası anahtar olduğu için güvenli bir
şifreleme değildir.
1.2 KRİPTOANALİZ
Bu bölümde bazı kriptoanaliz tekniklerinden
bahsedeceğiz. Genel olarak Oscar’ın kullanılan kriptosistemi bildiği varsayılır
ve buna Kerckhoff prensibi denir. Tabiki, Oscar kullanılan kriptosistemi
bilmiyorsa şifreyi çözebilmesi daha zor olacaktır. Ancak biz Kerckhoff’un
prensibine göre bir kriptosistemi tasarlayacağız. Yani Oscar’ın kullanılan
kriptosistemi bildiğini varsayacağız.
İlk olarak, kriptoanaliz tiplerini tanımlayalım :
Sadece ciphertext
Oscar, y ciphertext
dizisine hükmeder.
Bilinen plaintext
Oscar x plaintext dizisine
ve ona bağlı olarak da y ciphertext dizisine hükmeder.
Seçilen plaintext
Oscar, şifreleme
makinasına geçici olarak erişim sağlar. Böylece, bir x plaintext dizisi
seçebilir ve ona bağlı olarak bir y ciphertext dizisi yapılandırabilir.
Seçilen ciphertext
Oscar, şifre çözme
makinasına geçici olarak erişim elde eder. Böylece, bir y ciphertext dizisi
seçebilir ve ona bağlı olan bir x plaintext dizisi yapılandırabilir.
Her durumda amaç kullanılan anahtarı
belirlemektir. Bunlar arasındaki en zayıf tip kriptoanaliz sadece ciphertext
olandır.
TABLO 1.1
26 Harfin meydana gelme olasılıkları
harf olasılık
|
harf olasılık
|
A .082
B .015
C .028
D .043
E .127
F .022
G .020
H .061
I .070
J .002
K .008
L .040
M .024
|
N .067
O .075
P .019
Q .001
R .060
S .063
T .091
U .028
V .010
W .023
X .001
Y .020
Z .001
|
Tablo 1.1’e göre 26 harfi aşağıdaki
gibi 5’li gruplara ayırabiliriz :
1.
E, 0.120
civarında olasılığı olan
2.
T, A, O, I,
N, S, H, R 0.06 ve
0.09 arasında olasılığı olanlar
3.
D, L 0.04
civarında olasılığı olanlar
4.
C, U, M, W,
F, G, Y, P, B 0.015 ile 0.023 arasında
olasılığı olanlar
5.
V, K, J, X,
Q, Z 0.01’den daha az olasılığı
olanlar.
Bunlar dışında en çok yanyana kullanılan 30 ikili harfler : TH, HE, IN, ER,
AN, RE, ED, ON, ES, ST, EN, AT, TO, NT, HA, ND, OU, EA, NG, AS, OR, TI, IS, ET,
IT, AR, TE, SE, HI VE OF. Yine yanyana çokca kullanılan 12 harf : THE, ING,
AND, HER, ERE, ENT, THA, NTH, WAS, ETH, FOR
ve DTH.
1.2.1 Affine Şifresinin Kriptoanalizi
Örnek 1.9
Affine şifresinden elde edilen ciphertext aşağıdaki gibi olsun :
FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDK
APRKDLYEVLRHHRH
Bu ciphertext’in frekans analizi tablo 1.2’de verilmiştir.
Ciphertext’de sadece 57 karakter vardır . Ancak bu bir Affine şifresini
kriptoanaliz etmek için yeterlidir. Ençok kullanılan ciphertext karakterleri
şunlardır : R (8 kere tekrar etmiş), D
(6 kere tekrar etmiş), E, H, K (herbiri 5 kere tekrar etmiş) ve F,
S, V (herbiri 4 kere tekrar etmiş). İlk tahmin olarak, e harfinin şifresi R ve
t harfinin şifresi de D olarak düşünülebilir. (e ve t en çok kullanılan
harflerdir.) Numerik olarak ifade edersek, ek(4) =17 ve ek(19) = 3. a ve b
bilinmeyenler olmak üzere ek(x) = ax + b denklemini ele alalım.
Böylece iki bilinmeyenli iki eşitlik elde ederiz :
4a + b = 17
19a + b = 3
Bu sistem Z26’da a = 6 ve b = 19 olan tek bir çözüme sahiptir. Ancak bu
doğru olmayan bir anahtardır. Çünkü gcd(a,26) = 2 > 1. Böylece ilk
tahminimiz yanlış çıktı.
TABLO 1.2
26 Ciphertext harflerinin kullanım sıklığı
harf frekans
|
harf frekans
|
A 2
B 1
C 0
D 6
E 5
F 4
G 0
H 5
I 0
J 0
K 5
L 2
M 2
|
N 1
O 1
P 3
Q 0
R 8
S 3
T 0
U 2
V 4
W 0
X 2
Y
1
Z 0
|
Bir sonraki tahminimiz, e harfinin şifresinin R ve t harfinin şifresinin E
olduğu durum olabilir. Ancak yukarda yaptığımız işlemlerle bu seferde a = 13
bulunurki buda doğru bir tahminleme değildir. Bir sonraki olasılık, e harfinin
şifresinin R ve t harfinin şifresinin H olduğu durumdur. Ancak burda da a = 8
olduğu için yanlış bir tahmindir. Bu şekilde devam ederek, e harfinin
şifresinin R ve t harfinin şifresinin K olduğunu varsayalım. Bu durumda da en
azından olası bir anahtar elde ederiz. Çünkü a = 3 ve b = 5 olarak hesaplanır.
K = (3,5)’e göre ciphertext’in şifresi anlamlı bir dizi elde edilecekmi diye
kontrol edilmek üzere çözülür. Bu şekilde (3,5)’in geçerliliği kontrol edilir.
Bu işlemleri gerçekleştirerek, dk(y) = 9y – 19 elde edilir ve verilen
ciphertext’in şifresi aşağıdaki gibi çözülür :
algorithmsarequitegeneraldefinitionsofarit
hmeticprocesses
Doğru anahtarı bulduğumuzu ispatlamış olduk.
1.2.2 Kaydırma Şifresinin Kriptoanalizi
Örnek 1.10
Kaydırma şifresinden elde edilen ciphertext aşağıdaki gibi olsun :
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Bu ciphertext’in frekans analizi Tablo 1.3’de verilmiştir.
TABLO 1.3
26 Ciphertext harflerinin kullanım sıklığı
harf frekans
|
harf frekans
|
A 0
B 1
C 15
D 13
E 7
F 11
G 1
H 4
I 5
J 11
K 1
L 0
M 16
|
N 9
O 0
P 1
Q 4
R 10
S 3
T 2
U 5
V 5
W 8
X 6
Y 10
Z 20
|
Z, diğer ciphertext
karakterlerinden daha fazla kullanıldığı için,
dk(Z) = e varsayımını
yapabiliriz. Geri kalan ciphertext karakterlerinden en az 10 kere
tekrarlananlar da : C, D, F, J, M, R, Y. Bu harflerin, t, a, o, i, n, s, h,
r kümesinin şifrelenmiş şekli olduğunu
düşünebiliriz. Ancak harflerin tekrar sayıları bize yeterli derecede bilgi
vermemektedir.
Bu nedenle, özellikle –Z ve Z– şeklindeki ikililerin kullanım
çokluklarına bakmalıyız. Örneğin, DZ ve ZW (herbiri 4 kere kullanılmış); NZ ve
ZU (herbiri 3 kere kullanılmış); ve RZ, HZ, XZ, FZ, ZR, ZV, ZC, ZD, VE ZJ
(herbiri 2 kere kullanılmış). WZ, 4 kere tekrarlanmış ancak ZW hiç
tekrarlanmadığından dolayı, W diğer
birçok karakterden daha az tekrarlanmıştır. Bu nedenle dK(W)
= d varsayımını yapabiliriz. DZ 4 kere ve ZD de 2 kere tekrarlandığı için DK(D)
e {r,s,t} olarak düşünebiliriz. Ancak üç olasılıktan hangisinin doğru olduğu
açık olarak görülmemektedir.
Eğer dK(Z) = e ve dK(W) = d tahminlemesi üzerinde
hareket edip tekrar ciphertext’e bir göz atarsak, ZRW ve RZW’nun ciphertext’in
başlarına doğru bir yerlerde kullanıldığını ve RW’nun da daha sonra tekrar
kullanıldığını farkederiz. R, ciphertext’de sıkça kullanıldığından ve nd’de
oldukça kullanılan bir ikili olduğundan dolayı
dK(R) = n olasılığını deneyebiliriz.
Bu varsayımla aşağıdakini elde ederiz :
- - - - - - e n d - - -
- - - - - - - e - - - - - n e d - - - - e - - - - - - - - - - - - -
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
- - - - - - - - - e - - - - - e - - - - - - - - -
n - - d - - - en - - - - e - - - - - -e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
- e - - - n - - - - - - -n - - - - - - e d -
- - e - - - e - - -n e – n d – e - e--
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
- e d - - - - - - n - - - - - - - - - -
- - - -e - - - - e d - - - - - - - d -- - - e -- n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Bir sonraki adımımız, NZ ortak bir ikili olduğu ve ZN olmadığı için dK(N)
= h’ı denemek olabilir. Eğer bu doğruysa, o zaman ne – ndhe plaintext parçası dK
(C) = a olmasını gerektirir. Bu tahminlere bağlı olarak aşağıdakini elde ederiz
:
- - - - - - e n
d -
- - - - a - - - - e -a - - - n e d h - - -e - - - - - - a - - - - - -
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
h - - - - - - - e a - - - - e - a
- - - a - - - n h a d -a - en - - a - e -
h - - e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
h e - a - n - - - - - - -n - - - - -
- e d
- - - e - - - e - - -n e a n d h e - e--
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
- e d -
a - - - n h - - - - h a - - - - a
-e - - - - e d - - - - - a - d -- - he -- n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Şimdide ikinci en çok kullanılan ciphertext karakteri olarak da M’i
düşünelim. dK(M) = i ya da o olabilir. (CM) ai, ao’dan daha mantıklı
geldiği için öncelikle dK(M) = i olması durumunu deneyelim. Bu
şekilde aşağıdakini elde ederiz :
- - - - - i e n
d -
- - - - a - i - - e -a - - i n e d
h i - -e - - - - - - a - - - - i -
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
h - - - - -i - e a -
i- - e - a - - - a - i - n h a d -a - en - - a - e -
h i - e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
h e - a - n - - - - - i n
- i
- - - e d - - -
e - - - e - i n e a n d h e - e--
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
- e d - a - - i
n h i - - - h a i - - - a -e - i - - e d
- - - - - a - d -- - he -- n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Bir sonraki aşamada o harfinin hangi harfle şifrelendiğini belirlemeye
çalışacağız. Mümkün olan olasılıklar : D, F, J, Y. Y diğerlerinden daha mümkün
olan gibi gözükmektedir. Bu nedenle dE(Y) = o olduğunu varsayalım.
Üç tane en çok kullanılan ciphertext harfleri de D, F, J’dir ve bu harfler
r, s, t ‘nin herhangi bir sırasını şifrelemek için kullanılabilir. N M D ‘den dE(D)
= s olarak ve H N C M F ‘den
dE(F) = r , dE(H)
= c ve
dE(J) = t olarak
buluruz. O zaman tekrar düzenlersek :
o-r - r i e n d - r o
- - a r i s e - a -
i n e d h i s e - - t - - - a s s
- i t
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
h s -r – r i s e a s i
- e - a - o r a t i on h a d
ta- en - - a c e - h
i - e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
h e - a s n t - o o - i n -
i - o-r e d s o - e – o r e - i n e a n d h e s ett
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
- e d -
a c - i n h i s c
h a i r - a c et i
- t e d - -t o - a r d s t h es-
n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Artık örnek 1.10 için plaintext’i ve anahtarı belirlemek çok kolaydır :
Our friend from Paris examined his empty glass
with surprise, as
if
evaporation had taken place while he wasn’t looking. I poured some
more wine and he settled back in his chair , face
tilted up towards the
sun.
1.2.3 Vigenere Şifresinin Kriptoanalizi
Bu bölümde Vigenere şifresinin kriptoanalizi için bazı yöntemleri
tanımlayacağız. İlk adım, m ile gösterdiğimiz anahtar kelimenin uzunluğunu
belirlemektir. Bunun için kullanılan birkaç teknik vardır. Bunlardan ilki
Kasiski testi olarak adlandırılır, ikincisi ise raslantı indeksi kullanır.
Kasiski testi ilk olarak 1863 yılında Friedrich Kasiski tarafından
tanımlanmıştır. Plaintext’in iki özdeş segmenti aynı ciphertext’e
şifrelenebilir. (x º 0).
Örnek 1.11
Vigenere şifresinden elde edilen ciphertext:
CHREEVOAHMAERATBIAXXWTNXBEEOPHBSBQMQEQERBW
RVXUOAKXAOSXXWEAHBWGJMMQMNKGRFVGXWTRZXWIAK
LXFPSKAUTEMNDCMGTSXMXBTUIADNGMGPSRELXNJELX
VRVPRTULHDNQWTWDTYGBPHXTFALJHASVBFXNGLLCHR
ZBWELEKMSJIKNBHWRJGNMGJSGLXFEYPHAGNRBIEQJT
AMRVLCRREMNDGLXRRIMGNSNRWCHRQHAEYEVTAQEBBI
PEEWEVKAKOEWADREMXMTBHHCHRTKDNVRZCHRCLQOHP
WQAIIWXNRMGWOIIFKEE
Öncelikle Kasiski testini deneyelim. CHR ciphertext dizisi ciphertext
içinde dört yerde tekrarlanmıştır. (1, 166, 236 ve 286). Birinci tekrardan
diğer üç tekrara olan mesafeler : 165, 235, ve 285’dir. Bu üç tamsayının gcd’si
5’dir. Bu da anahtar kelime uzunluğudur.
Şimdide raslantısal
indislerin hesaplanmasıyla aynı sonucu elde edip edemeyeceğimize bakalım. m = 1
ile raslantısal indeks 0.045’dir. m = 2 ile iki indis 0.046 ve 0.041’dir. m = 3
ile 0.043, 0.050, 0.047 elde ederiz. m = 4 ile 0.042, 0.039, 0.046, 0.040
indisleri elde edilir. Daha sonra m = 5 denenir ve 0.063, 0.068, 0.069, 0.061
ve 0.072 değerlerini elde ederiz. Bu da anahtar kelimenin uzunluğunun beş
olduğunu kanıtlar.
Bu varsayım altında anahtar kelimeyi nasıl belirleyeceğiz?
TANIM 1.8 x = x1x2.....xn ve y =
y1y2....yn’ , n ve n’ alfabetik karakterlerin
dizileri olsun. x ve y’nin MIc(x,y) ile gösterilen raslantısal ortak
indeksi, x’in rasgele bir elemanının y’nin rasgele bir elemanı ile özdeş olması
olasılığını tanımlar. Eğer x ve y deki A,B,C,......Z’nin frekansları fo,f1,.....,f25
ve fo’,f1’,.......f25’ olarak gösterilirse o
zaman MIc(x,y) şu şekilde görülür:
25
S
fi f
'i
MIc(x,y)= i=0
nn’
K = (k1,k2,......,km) anahtar kelime olduğunu varsayalım. MIc(yi,yj)’i
tahmin edip edemeyeceğimize bakalım. Yi ve yj’de rasgele bir karakter düşünelim.
TABLO 1.4
Beklenen Raslantısal
İndisler
ilişkili kaydırma
|
Beklenen MIc değeri
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
|
0.065
0.039
0.032
0.034
0.044
0.033
0.036
0.039
0.034
0.034
0.038
0.045
0.039
0.043
|
25 25
MIc(yi,yj) » S Ph-ki,
Ph-kj = S Ph Ph+k,-kj olduğunu tahmin ederiz.
h = 0 h = 0
Dikkat edilirse bu
tahmindeki değer sadece ki-kj arasındaki farklılığa bağlıdır. Buna ilişkili
kaydırma diyoruz. Aynı zamanda,
25 25
S Ph
Ph+1 = S Ph Ph-l
h = 0 h = 0
eşitliğinden, l’nin
ilişkili bir kaydırması ,26-l’nin ilişkili bir kaydırması gibi aynı MIc
tahminini kabul eder.
0 ile 13
arasındaki ilişkili kaydırmalar için
yapılan tahminler Tablo 1.4’de gösterilmiştir.
Burda dikkat edilmesi
gereken nokta, ilişkili kaydırma sıfırdan farklıysa bu tahminler 0.031 ve 0.045
arasında değişmektedir. İlişkili kaydırmanın sıfır olması durumunda 0.065
tahmin olarak kabul edilir. Bu durumu dikkate alarak, yi ve yj’nin
ilişkili kaydırması olarak l = Ki-Kj gibi bir formül
çıkartabiliriz. yi’i sabitlediğimizi varsayalım ve e0,e1,e2
ile yj şifrelemesinin etkisini düşünelim. Sonuç dizilerini yj0,yj1,...vb.
ile gösterelim. MIc (yi,yjg)
, 0 £ g £ 25 indislerini hesaplamak kolaydır. Bu aşağıdaki formül kullanılarak
yapılır :
25
S
fi f
'i-g
MIc(x,yg) = i=0
nn’
g = l ve yi ve yj’nin
ilişkisel kaydırmaları sıfır olduğu zaman, MIc 0.65’e yakın bir
değer olmalıdır. g ¹ l’nin değerleri 0.31 ile 0.45 arasında değişir.
Bu tekniği kullanarak yi altdizilerinin
herhangi iki ilişkisel kaydırmalarını elde edebiliriz.Bu da kolayca elde
edilebilecek 26 olası anahtar kelime eder.
Şimdi Örnek 1.11’e dönerek bu yaptıklarımızı bir
örnekle açıklayalım.
Örnek 1.11 (Devamı)
Anahtar kelimenin uzunluğunu 5 olarak belirlemiştik. Şimdi de ilişkili kaydırmaları hesaplamaya çalışacağız. Bilgisayar ile 1 £ i < j £ 5,0 £ g £ 25 olduğu yerlerde; 260 MIc(yi,yjg) değerini hesaplamak zor bir işlem değildir. Bu değerle Tablo 1.5’de gösterilmiştir. Her (i,j) çifti için, 0.065’e yakın olan MIc(yi,yjg) değerlerini aradık.
Anahtar kelimenin uzunluğunu 5 olarak belirlemiştik. Şimdi de ilişkili kaydırmaları hesaplamaya çalışacağız. Bilgisayar ile 1 £ i < j £ 5,0 £ g £ 25 olduğu yerlerde; 260 MIc(yi,yjg) değerini hesaplamak zor bir işlem değildir. Bu değerle Tablo 1.5’de gösterilmiştir. Her (i,j) çifti için, 0.065’e yakın olan MIc(yi,yjg) değerlerini aradık.
Tablo 1.5’de 6 değer kutu içine alınmıştır. Bu
değerler y1 ve y2’nin ilişkisel kaymasının 9, y1
ve y5’in ilişkisel kaymasının 16, y2 ve y3’ün
ilişkisel kaymasının 13, y2 ve y5’in ilişkisel kaymasının
7, y3 ve y5’in ilişkisel kaymasının 20 ve y4
ve y5’in ilişkisel kaymasının 11 olduğunu gösteren güçlü
kanıtlardır. Bu sonuçlardan K1, K2, K3, K4,
K5 beş tane bilinmeyen olmak üzere aşağıdaki eşitlikleri elde ederiz
:
K1 – K2 = 9
K1 - K5 = 16
K2 - K3 = 13
K2 - K5 = 7
K3 - K5 = 20
K4 - K5 = 11
Bu bize beş Ki’i
K1 cinsinden yazabilmemize olanak verir :
K2 = K1 + 17
K3 = K1 + 4
K4 = K1 + 21
K5 = K1 + 10
TABLO 1.5
Elde edilen Ortak
Raslantısal İndisler
i
|
j
|
MIc(yi,yjg) değeri
|
1
|
2
|
.028 .027
.028 .034 .039
.037 .026 .025
.052
.068
.044 .026 .037
.043 .037 .043
.037 .028
.041 .041
.034 .037 .051
.045 .042 .036
|
1
|
3
|
.039
.033 .040 .034
.028 .053 .048
.033 .029
.056
.050 .045 .039
.040 .036 .037
.032 .027
.037
.036 .031 .037
.055 .029 .024
.037
|
1
|
4
|
.034
.043 .025 .027
.038 .049 .040
.032 .029
.034
.039 .044 .044
.034 .039 .045
.044 .037
.055
.047 .032 .027
.039 .037 .039
.035
|
1
|
5
|
.043
.033 .028 .046
.043 .044 .039
.031 .026
.030
.036 .040 .041
.024 .019 .048
.070 .044
.028
.038 .044 .043
.047 .033 .026
.046
|
2
|
3
|
.046
.048 .041 .032
.036 .035 .036
.030 .024
.039
.034 .029 .040
.067 .041 .033
.037 .05
.033
.033 .027 .033
.045 .052 .042
.030
|
2
|
4
|
.046
.034 .043 .044
.034 .031 .040
.045 .040
.048
.044 .033 .024
.028 .042 .039
.026 .034
.050
.035 .032 .040
.056 .043 .028
.028
|
2
|
5
|
.033
.033 .036 .046
.026 .018 .043
.080 .050
.029
.031 .045 .039
.037 .027 .026
.031 .039
.040
.037 .041 .046
.045 .043 .035
.030
|
3
|
4
|
.038
.036 .040 .033
.036 .060 .035
.041 .029
.058
.035 .035 .034
.053 .030 .032
.035 .036
.036
.028 .046 .032
.051 .032 .034
.030
|
3
|
5
|
.035
.034 .034 .036
.030 .043 .043
.050 .025
.046
.048 .041 .032
.036 .035 .036
.030 .024
.027
.030 .072
.035 .034
.032 .043 .027
|
4
|
5
|
.052
.038 .033 .038
.041 .043 .037
.048 .024
.028
.036 .061
.033 .033
.032 .052 .034
.027
.0392
.043 .033 .027
.030 .039 .048
.035
|
Herhangi K1 e Z26 için, anahtar; (K1, K1+17,
K1+4, K1+21, K1+10) şeklindedir.Şifrenin
tatamıyla çözülmüş şekli aşağıda verilmiştir :
The almond tree was in tentative blossom. The days were longer, often
ending with magnificient evenings of corrugated pink skies. The hunting season
was over, with hounds and guns put away for six months. The vineyards were busy
again as the well-organized farmers treated their vines and the more
lackadaisical neighbors hurried to do the pruning they should have done in
November.
1.2.4 Hill Şifresinin Kriptoanalizi
Hill şifresinin, sadece-ciphertext analizi plaintext analizinden daha
zordur. İlk başta Oscar’ın kullanılan m değerini belirlediğini varsayalım. 1 £ j £ m için yi = eK(xj)
olmak üzere
xj = (x1,j , x2,j , ......., xm,j)
ve
yj = (y1,j , y2,j , ......., ym,j) değerlerini elde etmiş olsun. Eğer
X = (xi,j) ve Y =
(yi,j) mxm’lik matrisleri
tanımlamışsak, K bilinmeyen anahtar olmak üzere Y = XK matris eşitliğini
yazabiliriz. Y matrisi tersi alınabilir bir matris ise, Oscar K = X-1Y
anahtarını hesaplayıp sistemi kırabilir. Değilse başka bir grup m
plaintext-ciphertext çifti alınır.
Hiç yorum yok:
Yorum Gönder
isterseniz anonim seçeneginden kayıtsız gönderebilirsiniz iyi günler