Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinin önemli konularından birisi olan veri güvenliği (cryptography) konusunda kullanılan önemli algoritmalardan birisidir. Şifreleme algoritması temel olarak yahut (XOR) işleminin zorluğuna dayanmaktadır. Yani basitçe bir bilgi rastgele herhangi başka bir bilgi ile XOR işlemine tabi tutulursa, orjinal bilginin geri elde edilmesi imkansızdır.
Temel olarak yahut (XOR) şifrelemesi (XOR Cipher) gibi düşünülebilecek olan vernam şifrelemesinin pratik bir kullanımı bulunmamaktadır. Bunun sebebi veri ile aynı boyuta sahip bir anahtar gerektirmesidir.
Dolayısıyla örneğin 1 GB boyutunda bir veriyi şifrelemek için 1GB boyutunda bir anahtara her iki tarafta da ihtiyaç duyulur. Bu bilgi bir kullanımlıktır dolayısıyla bir dahaki kullanımda yeni bir bilginin transferi gerekir. Şayet anahtar güvenli yollardan iletiliyorsa pek ala anahtar boyutundaki veri de bu yollardan iletilebilir.
Yukarıdaki güçlükten dolayı Vernam şifrelemsinin anahtarı basitleştirilmiştir.
Vernam şifrelemesinde basitleştirilmiş olarak bir üretici fonksiyon (generator function) kullanılır ve bu fonksiyonun ürettiği veriler her iki tarafta da anahtar olarak kullanılır. Yani basitçe bir üretici fonksiyonu her iki tarafta doğru şekilde beslerse (seed) sonuçta elde ettikleri veri uzunluğundaki anahtar aynı olur.
İşte tam bu noktada teorik olarak kırılması imkansız olan vernam şifrelemsinin zaafiyeti ortaya çıkar. Yani vernam şifrelemesinin tek zayıf noktası anahtar üreten fonksiyonudur.
Kısacası vernam şifrelemesi kırılması imkansız ancak uygulaması da imkansız bir şifreleme olarak kabul edilebilir. Veya kırılması bir üretici fonksiyon kadar güvenli ve kullanımı da kolay ve basit bir şifreleme algoritması olarak kabul edilir.

Yazan : Merve Köseoğlu

Giriş

Geliştirilen tüm şifreleme metotları içerisinde, sadece bir tek metodun güvenilirliği matematiksel olarak tamamen güvenli olarak ispatlanabilmiştir. Bu şifreleme metodu Vernam Şifrelemesi ya da One-time pad yani tek seferlik bloknot olarak bilinmektedir. Bilinen diğer bütün şifreleme metotları sayısal hesaplama güvenliğine dayanmaktadır. Eğer bir şifre sayısal hesaplamayla güvenliyse bu demektir ki bilinen hesaplama teknolojisi ve algoritmalarla bu şifreleme anahtarının kırılma olasılığı, makul bir zaman içinde inanılmaz derecede küçüktür, buna rağmen yine de imkansız değildir. Teorik olarak, Vernam şifrelemesi hariç diğer bütün kriptoloji algoritmaları yeterli zaman ve şifrelenmiş metin verilirse kırılabilirdir.[1]

Vernam Şifrelemesinin Tarihi

Gilbert Sandford Vernam(1890-7 Şubat 1960) AT&t Bell Labs da çalışan bir mühendisti. 1917 de 1. Dünya Savaşı sırasında Gilbert Vernam ‘a Almanların çözemeyeceği bir şifreleme metodu icat etmekle görevlendirilmişti[1] ve bunun sonucu olarak önce akış şifrelemeyi icat etmiş ve sonrasında Joseph Mauborgne ile mükemmel şifreleme tekniği olan one-time pad (tek kullanımlık bloknot) şifreleme metodunu bulmuşlardır. Vernam daha önceden teleks ile hazırlanmış bir kağıt bandı üzerinde tutulan bir teleks şifresi önerdi. Bu şifre şifreli metinin üretilmesi için kullanılan, asıl mesajın karakterlerinin birleştirildiği şifre karakterleri içeriyordu. Şifreli metni çözmek için, şifrelenirken kullanılan anahtar karakter karakter tekrar kombine edilmekteydi. [2]

Gilbert Vernam bu şifreleme yönteminin patentini yine 1917 de almıştır. Bu dönemde mesajlar 0 ve 1 lerle düşünülmeye başlanmıştı fakat daha bit olarak adlandırılmıyordu.

Vernam ın 22 Temmuz 1919 da US Patent 1,310,719 da yer alan birleştirme fonksiyonu bir XOR operasyonudur. Bu operasyon birbirinden farklı uyarılara yada bitlere Baudot teleks kodundaki karakterlerin şifrelenmesiyle uygulanır. Vernam patentinde XOR terimini kullanmamıştır. Fakat bu operasyonu mantıksal olarak gerçeklemiştir. Vernam’ın verdiği örnekte orijinal mesajdaki ‘A’, ‘++—‘ olarak Baudot da şifrelenmiştir. Anahtar ‘B’ karakteri ise ‘+–++’ olarak şifrelenmiştir. Sonuç olarak şifrelenmiş mesaj ‘-+-++’ şeklinde olacak ve ‘G’ karakteri olarak görülecektir. G karakteriyle B karakterini birleştirecek olan karşı taraf ‘++—‘ yi üretecektir ve bu da orijinal mesaj olan A karakterine denk gelmektedir. NSA “beklide kriptoloji tarihindeki en önemli” patent olarak adlandırmıştır. [2]

Vernam alıcı ve gönderici tarafından paylaşılan bit gibi ayrıcalıklı ya da mesaj akışının 0-1 e dayalı tamamen rastgele sayı ile şifrelenmesini önermiştir.

Örnek olarak;

Gönderilen

——-

message: 0 0 1 0 1 1 0 1 0 1 1 1 …

pad: 1 0 0 1 1 1 0 0 1 0 1 1 …

XOR —————————

cipher: 1 0 1 1 0 0 0 1 1 1 0 0 …

Alınan

———

cipher: 1 0 1 1 0 0 0 1 1 1 0 0 …

pad: 1 0 0 1 1 1 0 0 1 0 1 1 …

XOR —————————

message: 0 0 1 0 1 1 0 1 0 1 1 1 … [3]

Yukarıda da görüldüğü gibi Vernam şifrelemesi akış şifreleme(stream cipher) mantığına dayanmaktadır. Farkıysa anahtarıdır. Üretilen anahtar pad olarak adlandırılmaktadır ve diğer anahtarladan farklı olarak;

  1. Belli bir matematiksel hesaplamaya dayanmadan tamamen rastgele üretilmektedir.
  2. Pad uzunluğu belli bir sayıya bağımlı değildir ve mesaj uzunluğu kadardır.

Vernam Şifrelemesi

Diğer şifreleme metotlarına göre çok kolay bir yönteme sahiptir. One-time pad i kullanmak için anahtar olarak da bilinen pad(bloknot) den iki kopyaya ihtiyaç vardır. Bu padlerde en az yazılmak istenen mesaj uzunluğu kadar tamamen rastgele veri bloğu bulunmalıdır. Eğer padde yer alan veri tamamen rastgele değilse şifreleme yönteminin güvenliği riske girmiş olur. [3]

One-Time Pad Kullanımı

One-time pad ler çiftler halinde kullanılırlar. Eğer verilen padin birden fazla kopyası olursa yakalanabilecek benzerlikler o kadar fazla olacaktır bu durumda sistem tamamen kırılabilir olacaktır. Bu durumda padler karşılıklı her iki kullanıcı tarafından birer kopyası saklanmalı ve bu padler güvenli bir kanal üzerinden(örneğin yüz yüzeyken verilen diskteler) değiş tokuş edilmelidir. [3]

Rusların kullandığı One-time pad, MI5 tarafından yakalanmış [4]

Bir mesajı one-time padle şifrelemenin en hızlı yolu bunu bilgisayarla yapmaktır. Eğer bu metodu seçilip disket, pad CD ya da DVD üzerinde saklanılacaksa bir kere kullanıldıktan sonra bunlar tamamiyle yok edilmelidir. Varsayımsal olarak silinen data manyetik depolama birimlerinden yeniden alınabilir ya da oluşturulabilr dolayısıyla padlerin donanım üzerinde tutulmaması ya da disketlerin bir kere kullanıldıktan sonra saklanmaması gerekmektedir. Mesajı alan karşı tarafın da aynı önlemleri alması gerekmektedir. Hattın olası dinlenmelerine karşı bu şifrelemeyi uygulamak için kesinlikle internet ağı kullanılmamalıdır. [1]

XOR İşlemi

Oluşturulan padin her biti orijinal mesajın her bitiyle XOR lanarak kullanılır. Mesaj padle bir kere şifrelendikten sonra, pad yok edilir ve şifrelenmiş mesaj gönderilir. Alıcı tarafında, şifreli mesaj padin ikinci kopyasıyla XOR lanır ve orginal mesaj oluşturulur[4].

message: 0 0 1 0 1 1 0 1 0 1 1 1 …

pad: 1 0 0 1 1 1 0 0 1 0 1 1 …

XOR —————————

cipher: 1 0 1 1 0 0 0 1 1 1 0 0 …[3]

Bilgisayarlar bu işlemi basitleştirirler çünkü pad ve şifreli mesaj binary yani ikilik düzende çalışmaktadır. Her bir karakter bilgisayar tarafından bit olarak da adlandırılan 0 ve 1 lerin özel kombinasyonlarıyla teker teker temsil edilir. Örneğin ‘b’ harfi byte olarak da bilinen ‘1100010’ dan oluşan 8 bitle temsil edilir. Bu ikilik tabandaki sayı onluk tabanda 98 e tekabül etmektedir. Şifrelenmemiş mesajdaki her harfin her bitinin bitwise exclusive (ya da XOR ‘a sadeleştirilmiş) olarak adlandırılan bir dönüşüm kullanarak pad içindeki serideki ilgili harflerin biti ile mesaj şifrelenir. Bu basit olarak girişte iki bit alıp çıkışta da tek bit veren bir şema ile aşağıdaki gibi gösterilebilir :

Giriş Bitleri

Çıkış Biti

Mesaj

Pad

0

0

0

0

1

1

1

0

1

1

1

0

Bu operasyon serideki her harf için örneğin mesajın ilk harfi padin ilk harfiyle XOR lanarak şifreli metinin ilk harfini oluşturmaktadır sonrasında masajın ikinci harfinin padin ikinci harfiyle XOR lanarak şifreli metinin ikinci harfini oluşturmasıyla devam eder ve mesajın diğer harfleri de bu şekilde padde karşılık gelen harfle XOR lanarak şifreli metini oluşturmaktadır.

Basit bir örnekle gösterilecek olursa;

[begin at 17.30] şifresinin [#/KBZaF>TQV^Nc] padi ile şifrelemek istendiğini varsayalım. Öncelikle ‘b’ nin içindeki bütün bitlerle ‘#’ içindeki tüm bitler XOR lanır. Bu ikili tabanda sonuç olarak ‘A’ karakterini oluşturur.

[b] için bit serisi

[#] için bit serisi

Bitwise XOR [A]

1
1
0
0
0
1
0

0
1
0
0
0
1
1

1
0
0
0
0
0
1


Bu işlem diğer harfler için de tekrarlanır; ‘e’ ve ‘/’ XOR lanarak ‘J’, ‘g’ ve ‘K’ XOR lanarak ‘,’ ve diğerleri de bu şekilde devam eder.
Bu işlemi el ile gerçekleştirmek için en önemli şey elinizde bütün karakterlerin bir binary kod listesinin olmasıdır bu yüzden bilgisayarlar daha kullanışlıdır. Örnekteki mesajın şifrelenmiş hali [AJ,+4A’Jt`ap}S] şeklinde görülmektedir. Şifrelenmiş metni karşı taraf elindeki kopyalanmış pad ile tekrar XOR layarak mesajın kendisine ulaşılır. [1]

Vernam Şifrelemesi Algoritması

Vernam şifrelemesinde şifreli mesaj için E (encrypted), ve çözülen mesaj için D (decrypted) kullanılır ve anahtar k, mesaj m, şifreli mesaj da c ile gösterilirse j adet bit karakteri için;

E ( kj, mj ) = kj
U mj = cj

D ( kj, cj ) = kj
U cj = mj dir.

Mesaj m0,m1,m2,……,mj, anahtar pad k0,k1,k2,……,kj, ve şifreli metin c0,c1,c2,……,cj ile gösterilmekte ve j her karakterin (j+1). Bitinin indeksi olarak kullanılmaktadır.

Bu algoritmanın testi için de ;

mj = D ( kj , E ( kj , mj ) ) kullanılmaktadır.

Aşağıda Kuan-San Ooi’ nin Learning Vernam Cipher by Testing makalesinden alınan Vernam Şifreleme için kullanılan diyagram ve Ek-1 de bu diyagramla oluşturulan kod bulunmaktadır.

Vernam Şifrelemesinin Uygulama Adımları

Vernam şifrelemesinin uygulamadaki adımları sırasıyla aşağıdaki gibidir :

  1. Harfler 5 bitle temsil edilmek istendiğinde 25 = 32 olacağından alfabedeki harfler, 0 dan 4 e kadar olan numaralar ve boşluk karakterini temsil edecek bir ‘-‘ karakteriyle bir haritalama tablosu oluşturulmalıdır. (genelde karakterler bytelar(1 byte= 8 bit) la yani 28=256 karakteri içerebilecek tablolarla ifade edilirler). Ardından her bir karaktere 00000 dan 11111 serisine kadar ayrı ve özel bir bit ataması yapılır. Örnek tablo da aşağıdaki gibidir :

Tablo 1

Karakter

Bit Serisi

Karakter

Bit serisi

a

00000

q

10000

b

00001

r

10001

c

00010

s

10010

d

00011

t

10011

e

00100

u

10100

f

00101

v

10101

g

00110

w

10110

h

00111

x

10111

i

01000

y

11000

j

01001

z

11001

k

01010

0

11010

l

01011

1

11011

m

01100

2

11100

n

01101

3

11101

o

01110

4

11110

p

01111

11111

  1. Şifrelenecek kısa bir mesaj oluşturulur. Boşluk yerine ‘-‘ karakterinin kullanılacağı unutulmamalıdır.

  2. Ardından mesajla aynı uzunlukta bir pad oluşturulmalıdır. Bunun için aşağıdaki gibi bir tablo kullanılabilir. Buna göre iki rastgele sayı üretilebilir ve denk gelen karakter pad için kullanılabilir. Eğer rastgele gelen sayı boşluğa denk gelirse tekrar bir rastgele sayı üretilir.

Tablo 2

1

2

3

4

5

6

1

a

g

m

r

w

1

2

b

h

n

s

x

2

3

c

i

o

t

y

3

4

d

j

p

u

z

4

5

e

k

q

v

0

6

f

l


  1. Şifreli metni oluşturmak için orjinal mesajın her bir karakterinin bitlerini oluşturan pad deki ilgili karakterin bitleriyle XOR lanır. Bu el ile yapılacağı gibi eğer tablo 1 deki harita kullanılırsa işlem aşağıdaki tablo 3 e indirgenebilir.
  2. Son olarak elde edilen şifreli metin alıcı tarafından kendi padi ile XORlanarak orijinal mesaj elde edilir.
  3. Son olarak şifreli metin ile orijinal metin XOR lanarak test yapılır. Böylece pad yeniden oluşturulmuş olunur.

Tablo 3


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

0

1

2

3

4

a

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

0

1

2

3

4


b

b

a

d

c

f

e

h

g

j

i

l

k

n

m

p

o

r

q

t

s

v

u

x

w

z

y

1

0

3

2


4

c

c

d

a

b

g

h

e

f

k

l

i

j

o

p

m

n

s

t

q

r

w

x

u

v

0

1

y

z

4


2

3

d

d

c

b

a

h

g

f

e

l

k

j

i

p

o

n

m

t

s

r

q

x

w

v

u

1

0

z

y


4

3

2

e

e

f

g

h

a

b

c

d

m

n

o

p

i

j

k

l

u

v

w

x

q

r

s

t

2

3

4


y

z

0

1

f

f

e

h

g

b

a

d

c

n

m

p

o

j

i

l

k

v

u

x

w

r

q

t

s

3

2


4

z

y

1

0

g

g

h

e

f

c

d

a

b

o

p

m

n

k

l

i

j

w

x

u

v

s

t

q

r

4


2

3

0

1

y

z

h

h

g

f

e

d

c

b

a

p

o

n

m

l

k

j

i

x

w

v

u

t

s

r

q


4

3

2

1

0

z

y

i

i

j

k

l

m

n

o

p

a

b

c

d

e

f

g

h

y

z

0

1

2

3

4


q

r

s

t

u

v

w

x

j

j

i

l

k

n

m

p

o

b

a

d

c

f

e

h

g

z

y

1

0

3

2


4

r

q

t

s

v

u

x

w

k

k

l

i

j

o

p

m

n

c

d

a

b

g

h

e

f

0

1

y

z

4


2

3

s

t

q

r

w

x

u

v

l

l

k

j

i

p

o

n

m

d

c

b

a

h

g

f

e

1

0

z

y


4

3

2

t

s

r

q

x

w

v

u

m

m

n

o

p

i

j

k

l

e

f

g

h

a

b

c

d

2

3

4


y

z

0

1

u

v

w

x

q

r

s

t

n

n

m

p

o

j

i

l

k

f

e

h

g

b

a

d

c

3

2


4

z

y

1

0

v

u

x

w

r

q

t

s

o

o

p

m

n

k

l

i

j

g

h

e

f

c

d

a

b

4


2

3

0

1

y

z

w

x

u

v

s

t

q

r

p

p

o

n

m

l

k

j

i

h

g

f

e

d

c

b

a


4

3

2

1

0

z

y

x

w

v

u

t

s

r

q

q

q

r

s

t

u

v

w

x

y

z

0

1

2

3

4


a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

r

r

q

t

s

v

u

x

w

z

y

1

0

3

2


4

b

a

d

c

f

e

h

g

j

i

l

k

n

m

p

o

s

s

t

q

r

w

x

u

v

0

1

y

z

4


2

3

c

d

a

b

g

h

e

f

k

l

i

j

o

p

m

n

t

t

s

r

q

x

w

v

u

1

0

z

y


4

3

2

d

c

b

a

h

g

f

e

l

k

j

i

p

o

n

m

u

u

v

w

x

q

r

s

t

2

3

4


y

z

0

1

e

f

g

h

a

b

c

d

m

n

o

p

i

j

k

l

v

v

u

x

w

r

q

t

s

3

2


4

z

y

1

0

f

e

h

g

b

a

d

c

n

m

p

o

j

i

l

k

w

w

x

u

v

s

t

q

r

4


2

3

0

1

y

z

g

h

e

f

c

d

a

b

o

p

m

n

k

l

i

j

x

x

w

v

u

t

s

r

q


4

3

2

1

0

z

y

h

g

f

e

d

c

b

a

p

o

n

m

l

k

j

i

y

y

z

0

1

2

3

4


q

r

s

t

u

v

w

x

i

j

k

l

m

n

o

p

a

b

c

d

e

f

g

h

z

z

y

1

0

3

2


4

r

q

t

s

v

u

x

w

j

i

l

k

n

m

p

o

b

a

d

c

f

e

h

g

0

0

1

y

z

4

5

2

3

s

t

q

r

w

x

u

v

k

l

i

j

o

p

m

n

c

d

a

b

g

h

e

f

1

1

0

z

y


4

3

2

t

s

r

q

x

w

v

u

l

k

j

i

p

o

n

m

d

c

b

a

h

g

f

e

2

2

3

4


y

z

0

1

u

v

w

x

q

r

s

t

m

n

o

p

i

j

k

l

e

f

g

h

a

b

c

d

3

3

2


4

z

y

1

0

v

u

x

w

r

q

t

s

n

m

p

o

j

i

l

k

f

e

h

g

b

a

d

c

4

4


2

3

0

1

y

z

w

x

u

v

s

t

q

r

o

p

m

n

k

l

i

j

g

h

e

f

c

d

a

b


4

3

2

1

0

z

y

x

w

v

u

t

s

r

q

p

o

n

m

l

k

j

i

h

g

f

e

d

c

b

a

[1]

Vernam Şifrelemesinin Güvenliği

Eğer one-time pad uygun bir şekilde kullanılırsa kırılamazdır. Bunun için gerekli koşullar :

  1. Pad gerçek rastgele veriden oluşmalıdır.
  2. Bir pad bir kereden fazla kullanılmamalıdır.
  3. Ve kullanılmak üzere hazırlanan pad güvenlik altına alınmalıdır.

Eğer pad serisinin içindeki her anahtar harf gerçekten rastgele bir seri olarak üretilirse kriptanalist, şifreli mesaj içindeki her harfin olası her anahtarla ve her olası yeriyle denemekten daha iyisini yapamaz. Bu şifreyi kırmak isteyen için umutsuz bir durumdur çünkü bu şifrelenebilecek bütün mesajların anahtarlanmasıyla oluşabilecek bütün olasılıkları denemekle aynı şeydir. Örnek olarak yukarda verilen kısa pad ile şifrelenen mesajın bulunma bölgesi 200,000,000,000,000,000,000,000 olasılığa dayanmaktadır. Şifrelenmiş metinin hiçbir şekilde bu olasıklardan hangisinin gerçek mesaj olduğuna dair bir ipucu barındırmaz.[1]

  1. Güvenliğin Matematiksel İspatı

One-time pad in güvenli olduğunu matematiksel ispatla nasıl anlaşılır?

Mesaj : m

Mesajın olasılığı : P(m)

Mesajın anlamsız olması durumda mesajın olasılığı 0 (sıfır) olacaktır. Bazı mesajlar mantıklıdır fakat içerikte anlamsızdır. Bu gibi durumlarda P(m) küçük olacaktır. Aslında P(m) in dağılımındaki detaylar önemsizdir. Sadece başlangıçta bildiğimiz mesaj m’i temsil etme için kullanılır.

Gözlemlenmiş şifreli metin c için bilinen P(m) dağılımıyla ilgili sahip olunan bilgi güncellenir. Buna m in verilen c için koşullu olasılığı denir ve P(m|c) ile gösterilir. Eğer gözlemlenen c ile bilinenden farklı bir şey elde edilemiyorsa bütün m’ ler için P(m) değişmez ve P(m|c) = P(m) ile gösterilir. Eğer bu her m ve her c için de geçerliyse mükemmel gizliliğe sahip olunur. Gözlemlenen c ile sahip olunan m’in bilgisine hiçbir şekilde erişilemezdir.

Koşullu olasılığın tanımı;

P(m|c) = P(m ve c)/P(c),

p= mUc olan pad olmak üzere; (m ve c) için bulunan değer (m ve p) ile bulunan değerle aynıdır.

Mesaj ve pad farklı olaylar olduğu için

P(m and c) = P(m and p) = P(m) P(p)

Şimdi şunu söyleyebilir ki P(c) = P(p) dolayısıyla sadeleşip P(m|c) = P(m) elde edilir.

P(c) nin olasılığı mesaj m ve pad p nin bi araya gelerek c yi oluşturma olasılığyla aynıdır. Her mi mesajı için c ile çözümlenen kesinlikle bir pi vardır ve bu ;

pi = mi
U c

Dolayısıyla,

P(c) = Sumi P(mi ve pi)

= Sumi P(mi) P(pi)

= (1/2n) Sumi P(mi) = 1/2n

Toplamsal olasılık kuralları kullanılarak (c mutlaka (mi ve pi) olaylarından türetilmelidir.) mi ve pi olaylarının bağımsızlığı ve bütün bu mi olasılıkların toplamı 1 e eşittir.

Ayrıca pad deki her pi için

P(pi) = P(p) = 1/2n

Formülünü de kullandık bu da bize sonucu verdi.

Sonuç olarak her pad in eşit uygunlukta olması durumuna bağlı olarak Vernam şifrelemesi mükemmel güvenli varsayımında bulunulabilir. Eğer bir pad birden fazla mesaj şifrelemek için kullanılırsa artık güvenli değildir ve mesaj çözülebilir. Pad in bir kez kullanıldıktan sonra atılması önemlidir. Bu yüzden one-time pad yani tek kullanımlık bloknot adını almıştır ayrıca OTP olarak da bilinir. Eğer bu ayrıntıya dikkat edilmezse, iki şifreli metin çıkarılabilir, böylece pad ortadan kalkmış olur. Kalan tek fark mesajların farklılığı olur ki bu da seçilen pad seçiminin dağılım olasılığının önemine geri döndürmektedir. [3]

  1. Dağıtma Problemi

Vernam şifrelerinin pratikte ciddi bir dejavantajı vardır ve bu da pad olarak adlandırılan anahtardır. Muhtemel kullanıcılar gizlice ve önceden anahtarı 0 ve 1 den oluşan uzun ve rastgele diziyi- kararlaştırmalıdırlar. Bundan sonra anahtarı kodlama ve kırma için kullanabilirler ve kodlanmış yazı mesajın gizliliğinden emin olarak radyo yayını, internet ya da gazete vasıtasıyla açıkça yollanabilir. Ama anahtarın gönderici ve alıcı tarafından  çok gizli bir kanalla bilinmesi gerekir, örneğin çok güvenilir bir telefon hattı, özel bir görüşme ya da emin bir taşıyıcı aracılığıyla.

Güvenilir bir kanal genelde sadece belli zamanlarda ve belirli şartlar altında mümkündür. Böylesi bir haberleşmede tam güvenliği sağlamak için kullanıcılar, sonradan göndermek isteyecekleri mesaja hacimce denk gizli ve anlamsız bir yığın bilgiyi (anahtar-pad) yanlarında taşımak zorunda kalacaklardır.

Dahası, “güvenli” bir kanal bulunsa bile, bu güvenliğin gerçek manada garanti olduğu söylenemez. Şöyle bir problem var ki: prensip olarak, herhangi bir klasik özel kanal, kullanıcıların izlenildiklerini fark ettirmeden pasif olarak takip edilebilir. Çünkü klasik fizik, ortamın hiçbir özelliğini bozmadan bütün fiziksel özelliklerinin ölçülebilmesine fırsat verir. Kodlama anahtarları da dahil olmak üzere her türlü bilgi bir obje yada sinyalin ölçülebilir fiziksel özelliklerinde kodlandığından, klasik teoriler pasif takip olasılığının önüne geçememektedirler. Ama kuantum kodlama sisteminin temelini oluşturan kuantum teorisinde durum farklıdır çözülebilir. [5]

Vernam Şifrelemesi ve Gerçek Rastgelelik

Vernam şifrelemesinin en kritik özelliklerinden biri de pad serisinin rastgeleliğidir. Gerçek rastgelelik seride bir sonraki karakterin, bilinen o noktaya kadar bütün durumlar bilinse dahi bir sonrakinin ne olacağının tahmin edilmesi imkansızsa gerçekleşir. Bilgisayar yazılımları gibi herhangi bir gerçekçi yaklaşım, asla gerçek bir rastgele yayı dizisi oluşturamazlar. Bilgisayarda, CPU ya da RAM çiplerinde çok küçük bir ihtimalle oluşabilecek durumlar dışında, makinenin bir sonraki adımda ne vereceği bilinen makine/ağ/IO da tamamen tahmin edilebilirdir.

Pad için üretilecek rastgele veriler asla tamamen yazılım ile üretilmemelidir. Bu gerçekçi olmayan bir yaklaşımla donanım üzerinden uygulanarak bir araya getirilmelidir. Elektronik parçalardaki radyoaktif bozulma ve elektron tünelleri atom altı kuantum seviyesinde gerçekleşen ve gerçekçi yaklaşıma uymayan iki olaydır. Geirger sayıcılardan ve Zener diyotlardan alınan çıkışların bir araya getirilmesiyle pad için gerçek rastgele olan veri üretmek mümkündür. [1]

Yorumlar

  1. memnune

    Hocam
    Bilgilendirmeleriniz için teşekkür ederim. Ben Java ile programlar geliştirdim ve jar dosyası elde ettim.
    Bu jar dosyasını başka makinada çalıştıracağım. Fakat programın ellerine geçmesini istemiyorum Bu anlamda çalışmalarınız varmı bilgilendirebilirmisiniz

    Teşekür ederim
    Memnune

  2. Şadi Evren ŞEKER Article Author

    Öncelikle belirtmeliyim ki, probleminiz için tamamen güvenli bir çözüm ne yazık ki yok. Java decompiler’ları makine kodundan java kaynak koduna dönüşüm sağlıyor ancak dönüşmüş kod gerçekten üzerinde çalışılması oldukça zor bir halde geliyor. Biraz büyük ölçekli projeler için işin içinden çıkılmaz bir hal alıyor. Ancak bu decompiler karıştırmasının yanına ilave olarak şifreleme de eklemek istiyorsanız, JAVA bunun için doğrudan bir çözüm sunmuyor. JCE (java cryptography extension) kullanılarak verilerinizi şifrelemeniz mümkün ancak bu paket ben uğraştığım zamanlarda ABD dışında indirilip kullanılamıyordu. Son durumda bir değişiklik oldu mu bilmiyorum.
    JAVA’nın sunduğu çözümlerin dışında çeşitli firmaların da JAR dosyalarını şifrelemek için çözümleri bulunuyor (third party) örneğin jarcrypt gibi bir araç kullanabilirsiniz.
    Başarılar

memnune için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir