Süre 60 dakika s�nav kapal� kitapt�r. S�navda hesaplama aletleri kullan�labilir ancak herhangi bir �ekilde haf�zal� veya programlanabilir cihazlar kesinlikle yasakt�r. Her soru 20 puand�r. Son soru 30 puand�r. Herkese ba�ar�lar J

Soru 0) isminizin ve soy isminizin ilk harflerini shift cipher, substitution cipher ve stream cipher ile �ifreleyiniz.

Çözüm: �sim: �adi �eker , Ba� harfleri �� , �ngiliz alfabesindeki kar��l��� : SS

Alfabe:

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

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25



S -> 18

shift cipher : Anahtar 2 al�nm��t�r : 18 + 2 = 20 , �ifreli mesaj : UU

Substitution cipher: Anahtar için yerine koyma tablosu kullan�lm��t�r Bu tabloda örne�in 18 -> 5 olarak i�aretlenmi� olsun. �ifreli mesaj : FF

Stream Cipher: Örnek stream cipher için birinci �ifrelemenin sonucu ikinci �ifrelemede anahtar olarak kullan�ls�n ve shift cipher her blok için i�leniyor olsun ve ilk anahtar olarak 2 alal�m.

Bu durumda S = 18 + 2 = 20 olarak ilk mesaj �ifrelenecek.

S=18 +20 = 38 mod 26 = 12 = M olarak ikinci blok �ifrelenecek. �ifreli mesaj : UM

Stream cipher için en basit örnek çözüm olup farkl� algoritmalar kullanm�� olabilirsiniz





Soru1) A�a��daki �ifreleme sistemlerinden hangilerinde bilinen aç�k mesaj sald�r�s� (known plain text) ba�ar�l� sonuç verir? �ddialar�n�z� örnek ile gösterip aç�klay�n�z.

a)Viegnere Cipher

b)Hill Cipher (2x2 matris ile kabul edebilirsiniz)

c)Affine Cipher


Çözüm:

Bu yöntemlerin hepsinde bilinen aç�k mesaj sald�r�s� ba�ar�l� sonuçlar verir. K�saca tekalfabeli (monoalphabetic) yerine koyma �ifrelemelerinin (substitution cipher) hepsinin bilinen aç�k mesaj sald�r�s�na kar�� zaafiyeti vard�r. .

a) Viegnere Cipher:

Blok �ifrelemesidir ve her blo�un anahtar kadar kayd�r�lmas� ile �ifreler. Dolay�s�yla sistem a�a��daki �ekilde modellenebilir:

Ci Pi + Ki mod 26

Pi Ci – Ki

Bilinen aç�k mesaj sald�r�s�nda sald�ran taraf hem aç�k mesaj� hem de �ifreli mesaj� bilmektedir. O halde sald�ran ki�i:

Ki Ci – Pi mod 26 , i�lemi ile kolayca anahtar� bulabilir. Bunu bir blok için yapan sald�rgan yeterince uzun bir mesaj bilgisine sahipse (tercihen blok uzunlu�u veya daha fazla) anahtar�n tamam�n� elde edebilir.


b) Hill Cipher:

Blok �ifrelemesidir ve örne�in 2x2 anahtar� için a�a��daki �ekilde �ifreleme yapar:

(Ci,Ci+1) = M (Pi,Pi+1) , buradaki M �ifrelemede kullan�lan matristir.

�ayet kullan�c� aç�k mesaj� ve �ifreli mesaj� ayn� anda biliyorsa

(Ci,Ci+1) (Pi,Pi+1) -1 = M , i�lemiyle anahtar� bulabilir.


c) Affine Cipher:

Bu �ifreleme yöntemi de blok �ifreleme yöntemlerindendir a�a��daki �ekilde �ifreler:

Ci=aPi +b mod 26

Buradaki formül, y = ax + b do�rusal ba�lant�s�na benzedi�i için do�rusal anlam�nda affine �ifrelemesi olarak isimlendirilmi�tir.

�ayet sald�ran ki�i Ci ve Pi de�erlerini biliyorsa basitçe:

Ci – aPi = b denkleminde a ile b aras�nda bir e�itlik bulur. Dikkat edilirse bu e�itlik iki bilinmeyenlidir. (Ci ve Pi bilindi�ine göre) Bu durumda iki bilinmeyenli denklemi çözmek için ikinci bir mesaj�n daha �ifreli haline ihtiyac� vard�r bu mesaj ile birlikte:

Ci – aPi = b

Cj – aPj = b

�eklinde iki adet iki bilinmeyenli denklem elde edilir ve istenilen yöntem ile çözülebilir.



Soru2) RSA algoritmas� kullanarak �ifreleme yapan bir sistem geli�tiriniz. Anahtar kullan�m� için say�lar� siz belirleyiniz ve isminizin ilk harfini �ifreleyiniz.

Çözüm: Öncelikle anahtarlar olu�turulur.

n = p x q �eklinde bir n de�eri seçilir.

Örne�in p = 11ve q = 3 olsun.

Bu durumda n = 33 bulunur.

Bu say�n�n totient fonksiyon de�eri hesaplan�r:

φ(n) = (11-1)(3-1) = 20

Bu say�dan (20'den) küçük ve aralar�nda asal bir ba�ka say� seçilir (hususî anahtar, private key)

d= 3 olsun.

Bu say�n�n n için tersi al�n�r (yani fd = 1 mod n olan say�)

uzat�lm�� öklite göre:

Q

X1

X2

X3

Y1

Y2

Y3

T1

T2

T3

6

1

0

20

0

1

3

1

-6

2

1

0

1

3

1

-6

2

-1

7

1


Yukar�daki yönteme göre say�n�n tersi 7 olarak bulunmu�tur. Dolay�s�yla 3 x 7 = 1 mod 20 denklemini sa�layan de�er bulunmu�tur.

Buna göre umumi �ifre (public key) : (7,33)

hususi �ifre (private key) : (3,33) olarak seçilmi�tir.

Art�k �ifrelemeye geçilebilir:

mesaj olarak ismimizin ilk harfini � -> S -> 18 alal�m. 18 7 mod 33 = 6 , �ifreli mesaj� bulunur. Soru burada bitmektedir ancak sa�lama olarak �ifrenin do�ru aç�ld���n� gösterelim:

6 3 mod 33 = 18 olmal�d�r ki bu durum do�rudur.

Soru 3) �stedi�iniz herhangi bir programlama dilinde y2 = x3 + x + 2 elipsel e�risine (elliptic curve) göre P(1,1) noktas�ndan olu�turulabilecek dairesel grubu (cyclic group) olu�turunuz ve bu grubu kullanarak isminizin ilk harfini �ifreleyiniz (bildi�iniz herhangi bir yöntemi kullanabilirsiniz)

(Hat�rlatma: e�im e�it noktalar için (P) : s = (3xP2 + a) / (2yP ) , farkl� noktalar için(P ve Q) : s = (yP - yQ) / (xP - xQ), Toplam noktas� ( P + Q = R) : xR = s2 - xP - xQ ve yR = -yP + s(xP - xR) formüllerini kullanabilirsiniz)





Soru 4) El Gamal �ifrelemesi için, p bir asal say� g ise Zp için bir üreteç (Generator) ve x de hususî (private) anahtar olsun. Anahtar x bilgisini daha gizli tutmak için 3 parçaya bölerek 3 farkl� sunucuda saklamak istiyorsunuz. Buna göre sunuculardan birisine sald�rarak x anahtar�n�n bir k�sm�n� ele geçiren ki�inin, x anahtar�n�n tamam� hakk�nda fikri olmamal�. Senaryomuza göre 0 ile p-1 aras�nda 3 adet rast gele say� seçiliyor ve bu say�lar�n toplam� (x1+x2+x3 = x mod p-1) olarak kabul ediliyor. Her x de�eri de farkl� bir sunucuda saklan�yor.

a) El Gamal �ifrelemesi hakk�nda aç�klay�c� bilgi vererek �ifreleme algoritmas�n�n nas�l çal��t���n� anlat�n�z.

b) Alice, C �ifreli metnini açmak isterse a�a��daki ad�mlar� yaparak bunu gerçekle�tirebilece�ini ispatlay�n�z:

a. C mesaj�n� 3 sunucuya yollar

b. Her sunucu kendisinde bulunan x parças� ile mesaj� açar ve Mi mesaj�n� Alice’e geri yollar.

c. M1,M2 ve M3 bilgilerini alan Alice, mesaj� olu�turabilir.

c) �ayet 3 sunucuda bulunan anahtarlardan herhangi iki tanesinin mesaj� açmak için kullan�labilmesini isteseydik nas�l bir yöntem geli�tirmemiz gerekti�ini aç�klay�n�z. ( bu soru için sunucular aras� ileti�im olmad���n� kabul ediniz ayr�ca gerekli görürseniz bir sunucuda birden fazla anahtar bar�nd�r�labilir)

Çözüm :

a) http://shedai.net/bilgisayar/2008/04/30/el-gamal-encryption-el-cemal-sifrelemesi/ adresini okuyunuz. (cevab�n�z bu kadar detayl� olmamakla birlikte en az anahtar üretimi, �ifreleme ve �ifre açma a�amalar�n� (Ya da sadece formüllerini) bar�nd�rmal�d�r.) Örne�in a�a��daki cevap tam puan alabilir:

Anahtar üretimi:

Alice q derecesinde bir G grubunu g üreticisi (Generator) ile üretir. Alice bu gruptan { 0 , … , q-1 } rasgele bir x de�erini seçer. Alice h = gx de�erini hesaplar.

Bu i�lemler sonucunda Alice , g, G , q ve h de�erlerini umumî anahtar (public key) olarak yay�nlar. Hususi �ifre olarak (private key) ise x de�erini saklar.

�ifreleme:

c1 = gy

c2 = m hy

Açma:

m = ( c2 / c1x )


b) Her sunucudaki farkl� x parças� ile a�a��daki i�lemin yap�ld���n� dü�ünelim

m1 = c1x1

m2 = c1x2

m3 = c1x3

Bu durumda Alice gelen mesajlar ile ( c2 / c1x ) i�lemini kolayca yapabilir çünkü c1x1 c1x2 c1x3 çarp�m de�eri de�eri için c1x1+x2+x3 �eklinde yaz�labilir. Bu de�er ayn� zamanda c1x de�erine e�ittir ( x = x1 + x2 + x3 oldu�unu hat�rlay�n�z) denklemin pay�nda bulunan terim ise c2 terimidir. Dolay�s�yla mesaj aç�lm��t�r.

c)Bu soru chinese remainder probleminden ö�rendi�imiz yöntem ile ya da moduler aritmetikte kulland���m�z ters alma yöntemine göre (uzat�lm�� öklit ile tersi al�nmas� gibi) çözülebilir.

Örne�in soru 2'de kullan�lan say�lar� kullanal�m. 3 x 7 = 1 mod 20 denklemindeki herhangi 2 say�y� bilen ki�i 3. say�y� bulabilir (buradaki say�lar 3,7 ve 20'dir) ancak 1 tanesini bilen ki�i di�er ikisini bulamaz.